dhnetsdk.h 6.3 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264662656626666267662686626966270662716627266273662746627566276662776627866279662806628166282662836628466285662866628766288662896629066291662926629366294662956629666297662986629966300663016630266303663046630566306663076630866309663106631166312663136631466315663166631766318663196632066321663226632366324663256632666327663286632966330663316633266333663346633566336663376633866339663406634166342663436634466345663466634766348663496635066351663526635366354663556635666357663586635966360663616636266363663646636566366663676636866369663706637166372663736637466375663766637766378663796638066381663826638366384663856638666387663886638966390663916639266393663946639566396663976639866399664006640166402664036640466405664066640766408664096641066411664126641366414664156641666417664186641966420664216642266423664246642566426664276642866429664306643166432664336643466435664366643766438664396644066441664426644366444664456644666447664486644966450664516645266453664546645566456664576645866459664606646166462664636646466465664666646766468664696647066471664726647366474664756647666477664786647966480664816648266483664846648566486664876648866489664906649166492664936649466495664966649766498664996650066501665026650366504665056650666507665086650966510665116651266513665146651566516665176651866519665206652166522665236652466525665266652766528665296653066531665326653366534665356653666537665386653966540665416654266543665446654566546665476654866549665506655166552665536655466555665566655766558665596656066561665626656366564665656656666567665686656966570665716657266573665746657566576665776657866579665806658166582665836658466585665866658766588665896659066591665926659366594665956659666597665986659966600666016660266603666046660566606666076660866609666106661166612666136661466615666166661766618666196662066621666226662366624666256662666627666286662966630666316663266633666346663566636666376663866639666406664166642666436664466645666466664766648666496665066651666526665366654666556665666657666586665966660666616666266663666646666566666666676666866669666706667166672666736667466675666766667766678666796668066681666826668366684666856668666687666886668966690666916669266693666946669566696666976669866699667006670166702667036670466705667066670766708667096671066711667126671366714667156671666717667186671966720667216672266723667246672566726667276672866729667306673166732667336673466735667366673766738667396674066741667426674366744667456674666747667486674966750667516675266753667546675566756667576675866759667606676166762667636676466765667666676766768667696677066771667726677366774667756677666777667786677966780667816678266783667846678566786667876678866789667906679166792667936679466795667966679766798667996680066801668026680366804668056680666807668086680966810668116681266813668146681566816668176681866819668206682166822668236682466825668266682766828668296683066831668326683366834668356683666837668386683966840668416684266843668446684566846668476684866849668506685166852668536685466855668566685766858668596686066861668626686366864668656686666867668686686966870668716687266873668746687566876668776687866879668806688166882668836688466885668866688766888668896689066891668926689366894668956689666897668986689966900669016690266903669046690566906669076690866909669106691166912669136691466915669166691766918669196692066921669226692366924669256692666927669286692966930669316693266933669346693566936669376693866939669406694166942669436694466945669466694766948669496695066951669526695366954669556695666957669586695966960669616696266963669646696566966669676696866969669706697166972669736697466975669766697766978669796698066981669826698366984669856698666987669886698966990669916699266993669946699566996669976699866999670006700167002670036700467005670066700767008670096701067011670126701367014670156701667017670186701967020670216702267023670246702567026670276702867029670306703167032670336703467035670366703767038670396704067041670426704367044670456704667047670486704967050670516705267053670546705567056670576705867059670606706167062670636706467065670666706767068670696707067071670726707367074670756707667077670786707967080670816708267083670846708567086670876708867089670906709167092670936709467095670966709767098670996710067101671026710367104671056710667107671086710967110671116711267113671146711567116671176711867119671206712167122671236712467125671266712767128671296713067131671326713367134671356713667137671386713967140671416714267143671446714567146671476714867149671506715167152671536715467155671566715767158671596716067161671626716367164671656716667167671686716967170671716717267173671746717567176671776717867179671806718167182671836718467185671866718767188671896719067191671926719367194671956719667197671986719967200672016720267203672046720567206672076720867209672106721167212672136721467215672166721767218672196722067221672226722367224672256722667227672286722967230672316723267233672346723567236672376723867239672406724167242672436724467245672466724767248672496725067251672526725367254672556725667257672586725967260672616726267263672646726567266672676726867269672706727167272672736727467275672766727767278672796728067281672826728367284672856728667287672886728967290672916729267293672946729567296672976729867299673006730167302673036730467305673066730767308673096731067311673126731367314673156731667317673186731967320673216732267323673246732567326673276732867329673306733167332673336733467335673366733767338673396734067341673426734367344673456734667347673486734967350673516735267353673546735567356673576735867359673606736167362673636736467365673666736767368673696737067371673726737367374673756737667377673786737967380673816738267383673846738567386673876738867389673906739167392673936739467395673966739767398673996740067401674026740367404674056740667407674086740967410674116741267413674146741567416674176741867419674206742167422674236742467425674266742767428674296743067431674326743367434674356743667437674386743967440674416744267443674446744567446674476744867449674506745167452674536745467455674566745767458674596746067461674626746367464674656746667467674686746967470674716747267473674746747567476674776747867479674806748167482674836748467485674866748767488674896749067491674926749367494674956749667497674986749967500675016750267503675046750567506675076750867509675106751167512675136751467515675166751767518675196752067521675226752367524675256752667527675286752967530675316753267533675346753567536675376753867539675406754167542675436754467545675466754767548675496755067551675526755367554675556755667557675586755967560675616756267563675646756567566675676756867569675706757167572675736757467575675766757767578675796758067581675826758367584675856758667587675886758967590675916759267593675946759567596675976759867599676006760167602676036760467605676066760767608676096761067611676126761367614676156761667617676186761967620676216762267623676246762567626676276762867629676306763167632676336763467635676366763767638676396764067641676426764367644676456764667647676486764967650676516765267653676546765567656676576765867659676606766167662676636766467665676666766767668676696767067671676726767367674676756767667677676786767967680676816768267683676846768567686676876768867689676906769167692676936769467695676966769767698676996770067701677026770367704677056770667707677086770967710677116771267713677146771567716677176771867719677206772167722677236772467725677266772767728677296773067731677326773367734677356773667737677386773967740677416774267743677446774567746677476774867749677506775167752677536775467755677566775767758677596776067761677626776367764677656776667767677686776967770677716777267773677746777567776677776777867779677806778167782677836778467785677866778767788677896779067791677926779367794677956779667797677986779967800678016780267803678046780567806678076780867809678106781167812678136781467815678166781767818678196782067821678226782367824678256782667827678286782967830678316783267833678346783567836678376783867839678406784167842678436784467845678466784767848678496785067851678526785367854678556785667857678586785967860678616786267863678646786567866678676786867869678706787167872678736787467875678766787767878678796788067881678826788367884678856788667887678886788967890678916789267893678946789567896678976789867899679006790167902679036790467905679066790767908679096791067911679126791367914679156791667917679186791967920679216792267923679246792567926679276792867929679306793167932679336793467935679366793767938679396794067941679426794367944679456794667947679486794967950679516795267953679546795567956679576795867959679606796167962679636796467965679666796767968679696797067971679726797367974679756797667977679786797967980679816798267983679846798567986679876798867989679906799167992679936799467995679966799767998679996800068001680026800368004680056800668007680086800968010680116801268013680146801568016680176801868019680206802168022680236802468025680266802768028680296803068031680326803368034680356803668037680386803968040680416804268043680446804568046680476804868049680506805168052680536805468055680566805768058680596806068061680626806368064680656806668067680686806968070680716807268073680746807568076680776807868079680806808168082680836808468085680866808768088680896809068091680926809368094680956809668097680986809968100681016810268103681046810568106681076810868109681106811168112681136811468115681166811768118681196812068121681226812368124681256812668127681286812968130681316813268133681346813568136681376813868139681406814168142681436814468145681466814768148681496815068151681526815368154681556815668157681586815968160681616816268163681646816568166681676816868169681706817168172681736817468175681766817768178681796818068181681826818368184681856818668187681886818968190681916819268193681946819568196681976819868199682006820168202682036820468205682066820768208682096821068211682126821368214682156821668217682186821968220682216822268223682246822568226682276822868229682306823168232682336823468235682366823768238682396824068241682426824368244682456824668247682486824968250682516825268253682546825568256682576825868259682606826168262682636826468265682666826768268682696827068271682726827368274682756827668277682786827968280682816828268283682846828568286682876828868289682906829168292682936829468295682966829768298682996830068301683026830368304683056830668307683086830968310683116831268313683146831568316683176831868319683206832168322683236832468325683266832768328683296833068331683326833368334683356833668337683386833968340683416834268343683446834568346683476834868349683506835168352683536835468355683566835768358683596836068361683626836368364683656836668367683686836968370683716837268373683746837568376683776837868379683806838168382683836838468385683866838768388683896839068391683926839368394683956839668397683986839968400684016840268403684046840568406684076840868409684106841168412684136841468415684166841768418684196842068421684226842368424684256842668427684286842968430684316843268433684346843568436684376843868439684406844168442684436844468445684466844768448684496845068451684526845368454684556845668457684586845968460684616846268463684646846568466684676846868469684706847168472684736847468475684766847768478684796848068481684826848368484684856848668487684886848968490684916849268493684946849568496684976849868499685006850168502685036850468505685066850768508685096851068511685126851368514685156851668517685186851968520685216852268523685246852568526685276852868529685306853168532685336853468535685366853768538685396854068541685426854368544685456854668547685486854968550685516855268553685546855568556685576855868559685606856168562685636856468565685666856768568685696857068571685726857368574685756857668577685786857968580685816858268583685846858568586685876858868589685906859168592685936859468595685966859768598685996860068601686026860368604686056860668607686086860968610686116861268613686146861568616686176861868619686206862168622686236862468625686266862768628686296863068631686326863368634686356863668637686386863968640686416864268643686446864568646686476864868649686506865168652686536865468655686566865768658686596866068661686626866368664686656866668667686686866968670686716867268673686746867568676686776867868679686806868168682686836868468685686866868768688686896869068691686926869368694686956869668697686986869968700687016870268703687046870568706687076870868709687106871168712687136871468715687166871768718687196872068721687226872368724687256872668727687286872968730687316873268733687346873568736687376873868739687406874168742687436874468745687466874768748687496875068751687526875368754687556875668757687586875968760687616876268763687646876568766687676876868769687706877168772687736877468775687766877768778687796878068781687826878368784687856878668787687886878968790687916879268793687946879568796687976879868799688006880168802688036880468805688066880768808688096881068811688126881368814688156881668817688186881968820688216882268823688246882568826688276882868829688306883168832688336883468835688366883768838688396884068841688426884368844688456884668847688486884968850688516885268853688546885568856688576885868859688606886168862688636886468865688666886768868688696887068871688726887368874688756887668877688786887968880688816888268883688846888568886688876888868889688906889168892688936889468895688966889768898688996890068901689026890368904689056890668907689086890968910689116891268913689146891568916689176891868919689206892168922689236892468925689266892768928689296893068931689326893368934689356893668937689386893968940689416894268943689446894568946689476894868949689506895168952689536895468955689566895768958689596896068961689626896368964689656896668967689686896968970689716897268973689746897568976689776897868979689806898168982689836898468985689866898768988689896899068991689926899368994689956899668997689986899969000690016900269003690046900569006690076900869009690106901169012690136901469015690166901769018690196902069021690226902369024690256902669027690286902969030690316903269033690346903569036690376903869039690406904169042690436904469045690466904769048690496905069051690526905369054690556905669057690586905969060690616906269063690646906569066690676906869069690706907169072690736907469075690766907769078690796908069081690826908369084690856908669087690886908969090690916909269093690946909569096690976909869099691006910169102691036910469105691066910769108691096911069111691126911369114691156911669117691186911969120691216912269123691246912569126691276912869129691306913169132691336913469135691366913769138691396914069141691426914369144691456914669147691486914969150691516915269153691546915569156691576915869159691606916169162691636916469165691666916769168691696917069171691726917369174691756917669177691786917969180691816918269183691846918569186691876918869189691906919169192691936919469195691966919769198691996920069201692026920369204692056920669207692086920969210692116921269213692146921569216692176921869219692206922169222692236922469225692266922769228692296923069231692326923369234692356923669237692386923969240692416924269243692446924569246692476924869249692506925169252692536925469255692566925769258692596926069261692626926369264692656926669267692686926969270692716927269273692746927569276692776927869279692806928169282692836928469285692866928769288692896929069291692926929369294692956929669297692986929969300693016930269303693046930569306693076930869309693106931169312693136931469315693166931769318693196932069321693226932369324693256932669327693286932969330693316933269333693346933569336693376933869339693406934169342693436934469345693466934769348693496935069351693526935369354693556935669357693586935969360693616936269363693646936569366693676936869369693706937169372693736937469375693766937769378693796938069381693826938369384693856938669387693886938969390693916939269393693946939569396693976939869399694006940169402694036940469405694066940769408694096941069411694126941369414694156941669417694186941969420694216942269423694246942569426694276942869429694306943169432694336943469435694366943769438694396944069441694426944369444694456944669447694486944969450694516945269453694546945569456694576945869459694606946169462694636946469465694666946769468694696947069471694726947369474694756947669477694786947969480694816948269483694846948569486694876948869489694906949169492694936949469495694966949769498694996950069501695026950369504695056950669507695086950969510695116951269513695146951569516695176951869519695206952169522695236952469525695266952769528695296953069531695326953369534695356953669537695386953969540695416954269543695446954569546695476954869549695506955169552695536955469555695566955769558695596956069561695626956369564695656956669567695686956969570695716957269573695746957569576695776957869579695806958169582695836958469585695866958769588695896959069591695926959369594695956959669597695986959969600696016960269603696046960569606696076960869609696106961169612696136961469615696166961769618696196962069621696226962369624696256962669627696286962969630696316963269633696346963569636696376963869639696406964169642696436964469645696466964769648696496965069651696526965369654696556965669657696586965969660696616966269663696646966569666696676966869669696706967169672696736967469675696766967769678696796968069681696826968369684696856968669687696886968969690696916969269693696946969569696696976969869699697006970169702697036970469705697066970769708697096971069711697126971369714697156971669717697186971969720697216972269723697246972569726697276972869729697306973169732697336973469735697366973769738697396974069741697426974369744697456974669747697486974969750697516975269753697546975569756697576975869759697606976169762697636976469765697666976769768697696977069771697726977369774697756977669777697786977969780697816978269783697846978569786697876978869789697906979169792697936979469795697966979769798697996980069801698026980369804698056980669807698086980969810698116981269813698146981569816698176981869819698206982169822698236982469825698266982769828698296983069831698326983369834698356983669837698386983969840698416984269843698446984569846698476984869849698506985169852698536985469855698566985769858698596986069861698626986369864698656986669867698686986969870698716987269873698746987569876698776987869879698806988169882698836988469885698866988769888698896989069891698926989369894698956989669897698986989969900699016990269903699046990569906699076990869909699106991169912699136991469915699166991769918699196992069921699226992369924699256992669927699286992969930699316993269933699346993569936699376993869939699406994169942699436994469945699466994769948699496995069951699526995369954699556995669957699586995969960699616996269963699646996569966699676996869969699706997169972699736997469975699766997769978699796998069981699826998369984699856998669987699886998969990699916999269993699946999569996699976999869999700007000170002700037000470005700067000770008700097001070011700127001370014700157001670017700187001970020700217002270023700247002570026700277002870029700307003170032700337003470035700367003770038700397004070041700427004370044700457004670047700487004970050700517005270053700547005570056700577005870059700607006170062700637006470065700667006770068700697007070071700727007370074700757007670077700787007970080700817008270083700847008570086700877008870089700907009170092700937009470095700967009770098700997010070101701027010370104701057010670107701087010970110701117011270113701147011570116701177011870119701207012170122701237012470125701267012770128701297013070131701327013370134701357013670137701387013970140701417014270143701447014570146701477014870149701507015170152701537015470155701567015770158701597016070161701627016370164701657016670167701687016970170701717017270173701747017570176701777017870179701807018170182701837018470185701867018770188701897019070191701927019370194701957019670197701987019970200702017020270203702047020570206702077020870209702107021170212702137021470215702167021770218702197022070221702227022370224702257022670227702287022970230702317023270233702347023570236702377023870239702407024170242702437024470245702467024770248702497025070251702527025370254702557025670257702587025970260702617026270263702647026570266702677026870269702707027170272702737027470275702767027770278702797028070281702827028370284702857028670287702887028970290702917029270293702947029570296702977029870299703007030170302703037030470305703067030770308703097031070311703127031370314703157031670317703187031970320703217032270323703247032570326703277032870329703307033170332703337033470335703367033770338703397034070341703427034370344703457034670347703487034970350703517035270353703547035570356703577035870359703607036170362703637036470365703667036770368703697037070371703727037370374703757037670377703787037970380703817038270383703847038570386703877038870389703907039170392703937039470395703967039770398703997040070401704027040370404704057040670407704087040970410704117041270413704147041570416704177041870419704207042170422704237042470425704267042770428704297043070431704327043370434704357043670437704387043970440704417044270443704447044570446704477044870449704507045170452704537045470455704567045770458704597046070461704627046370464704657046670467704687046970470704717047270473704747047570476704777047870479704807048170482704837048470485704867048770488704897049070491704927049370494704957049670497704987049970500705017050270503705047050570506705077050870509705107051170512705137051470515705167051770518705197052070521705227052370524705257052670527705287052970530705317053270533705347053570536705377053870539705407054170542705437054470545705467054770548705497055070551705527055370554705557055670557705587055970560705617056270563705647056570566705677056870569705707057170572705737057470575705767057770578705797058070581705827058370584705857058670587705887058970590705917059270593705947059570596705977059870599706007060170602706037060470605706067060770608706097061070611706127061370614706157061670617706187061970620706217062270623706247062570626706277062870629706307063170632706337063470635706367063770638706397064070641706427064370644706457064670647706487064970650706517065270653706547065570656706577065870659706607066170662706637066470665706667066770668706697067070671706727067370674706757067670677706787067970680706817068270683706847068570686706877068870689706907069170692706937069470695706967069770698706997070070701707027070370704707057070670707707087070970710707117071270713707147071570716707177071870719707207072170722707237072470725707267072770728707297073070731707327073370734707357073670737707387073970740707417074270743707447074570746707477074870749707507075170752707537075470755707567075770758707597076070761707627076370764707657076670767707687076970770707717077270773707747077570776707777077870779707807078170782707837078470785707867078770788707897079070791707927079370794707957079670797707987079970800708017080270803708047080570806708077080870809708107081170812708137081470815708167081770818708197082070821708227082370824708257082670827708287082970830708317083270833708347083570836708377083870839708407084170842708437084470845708467084770848708497085070851708527085370854708557085670857708587085970860708617086270863708647086570866708677086870869708707087170872708737087470875708767087770878708797088070881708827088370884708857088670887708887088970890708917089270893708947089570896708977089870899709007090170902709037090470905709067090770908709097091070911709127091370914709157091670917709187091970920709217092270923709247092570926709277092870929709307093170932709337093470935709367093770938709397094070941709427094370944709457094670947709487094970950709517095270953709547095570956709577095870959709607096170962709637096470965709667096770968709697097070971709727097370974709757097670977709787097970980709817098270983709847098570986709877098870989709907099170992709937099470995709967099770998709997100071001710027100371004710057100671007710087100971010710117101271013710147101571016710177101871019710207102171022710237102471025710267102771028710297103071031710327103371034710357103671037710387103971040710417104271043710447104571046710477104871049710507105171052710537105471055710567105771058710597106071061710627106371064710657106671067710687106971070710717107271073710747107571076710777107871079710807108171082710837108471085710867108771088710897109071091710927109371094710957109671097710987109971100711017110271103711047110571106711077110871109711107111171112711137111471115711167111771118711197112071121711227112371124711257112671127711287112971130711317113271133711347113571136711377113871139711407114171142711437114471145711467114771148711497115071151711527115371154711557115671157711587115971160711617116271163711647116571166711677116871169711707117171172711737117471175711767117771178711797118071181711827118371184711857118671187711887118971190711917119271193711947119571196711977119871199712007120171202712037120471205712067120771208712097121071211712127121371214712157121671217712187121971220712217122271223712247122571226712277122871229712307123171232712337123471235712367123771238712397124071241712427124371244712457124671247712487124971250712517125271253712547125571256712577125871259712607126171262712637126471265712667126771268712697127071271712727127371274712757127671277712787127971280712817128271283712847128571286712877128871289712907129171292712937129471295712967129771298712997130071301713027130371304713057130671307713087130971310713117131271313713147131571316713177131871319713207132171322713237132471325713267132771328713297133071331713327133371334713357133671337713387133971340713417134271343713447134571346713477134871349713507135171352713537135471355713567135771358713597136071361713627136371364713657136671367713687136971370713717137271373713747137571376713777137871379713807138171382713837138471385713867138771388713897139071391713927139371394713957139671397713987139971400714017140271403714047140571406714077140871409714107141171412714137141471415714167141771418714197142071421714227142371424714257142671427714287142971430714317143271433714347143571436714377143871439714407144171442714437144471445714467144771448714497145071451714527145371454714557145671457714587145971460714617146271463714647146571466714677146871469714707147171472714737147471475714767147771478714797148071481714827148371484714857148671487714887148971490714917149271493714947149571496714977149871499715007150171502715037150471505715067150771508715097151071511715127151371514715157151671517715187151971520715217152271523715247152571526715277152871529715307153171532715337153471535715367153771538715397154071541715427154371544715457154671547715487154971550715517155271553715547155571556715577155871559715607156171562715637156471565715667156771568715697157071571715727157371574715757157671577715787157971580715817158271583715847158571586715877158871589715907159171592715937159471595715967159771598715997160071601716027160371604716057160671607716087160971610716117161271613716147161571616716177161871619716207162171622716237162471625716267162771628716297163071631716327163371634716357163671637716387163971640716417164271643716447164571646716477164871649716507165171652716537165471655716567165771658716597166071661716627166371664716657166671667716687166971670716717167271673716747167571676716777167871679716807168171682716837168471685716867168771688716897169071691716927169371694716957169671697716987169971700717017170271703717047170571706717077170871709717107171171712717137171471715717167171771718717197172071721717227172371724717257172671727717287172971730717317173271733717347173571736717377173871739717407174171742717437174471745717467174771748717497175071751717527175371754717557175671757717587175971760717617176271763717647176571766717677176871769717707177171772717737177471775717767177771778717797178071781717827178371784717857178671787717887178971790717917179271793717947179571796717977179871799718007180171802718037180471805718067180771808718097181071811718127181371814718157181671817718187181971820718217182271823718247182571826718277182871829718307183171832718337183471835718367183771838718397184071841718427184371844718457184671847718487184971850718517185271853718547185571856718577185871859718607186171862718637186471865718667186771868718697187071871718727187371874718757187671877718787187971880718817188271883718847188571886718877188871889718907189171892718937189471895718967189771898718997190071901719027190371904719057190671907719087190971910719117191271913719147191571916719177191871919719207192171922719237192471925719267192771928719297193071931719327193371934719357193671937719387193971940719417194271943719447194571946719477194871949719507195171952719537195471955719567195771958719597196071961719627196371964719657196671967719687196971970719717197271973719747197571976719777197871979719807198171982719837198471985719867198771988719897199071991719927199371994719957199671997719987199972000720017200272003720047200572006720077200872009720107201172012720137201472015720167201772018720197202072021720227202372024720257202672027720287202972030720317203272033720347203572036720377203872039720407204172042720437204472045720467204772048720497205072051720527205372054720557205672057720587205972060720617206272063720647206572066720677206872069720707207172072720737207472075720767207772078720797208072081720827208372084720857208672087720887208972090720917209272093720947209572096720977209872099721007210172102721037210472105721067210772108721097211072111721127211372114721157211672117721187211972120721217212272123721247212572126721277212872129721307213172132721337213472135721367213772138721397214072141721427214372144721457214672147721487214972150721517215272153721547215572156721577215872159721607216172162721637216472165721667216772168721697217072171721727217372174721757217672177721787217972180721817218272183721847218572186721877218872189721907219172192721937219472195721967219772198721997220072201722027220372204722057220672207722087220972210722117221272213722147221572216722177221872219722207222172222722237222472225722267222772228722297223072231722327223372234722357223672237722387223972240722417224272243722447224572246722477224872249722507225172252722537225472255722567225772258722597226072261722627226372264722657226672267722687226972270722717227272273722747227572276722777227872279722807228172282722837228472285722867228772288722897229072291722927229372294722957229672297722987229972300723017230272303723047230572306723077230872309723107231172312723137231472315723167231772318723197232072321723227232372324723257232672327723287232972330723317233272333723347233572336723377233872339723407234172342723437234472345723467234772348723497235072351723527235372354723557235672357723587235972360723617236272363723647236572366723677236872369723707237172372723737237472375723767237772378723797238072381723827238372384723857238672387723887238972390723917239272393723947239572396723977239872399724007240172402724037240472405724067240772408724097241072411724127241372414724157241672417724187241972420724217242272423724247242572426724277242872429724307243172432724337243472435724367243772438724397244072441724427244372444724457244672447724487244972450724517245272453724547245572456724577245872459724607246172462724637246472465724667246772468724697247072471724727247372474724757247672477724787247972480724817248272483724847248572486724877248872489724907249172492724937249472495724967249772498724997250072501725027250372504725057250672507725087250972510725117251272513725147251572516725177251872519725207252172522725237252472525725267252772528725297253072531725327253372534725357253672537725387253972540725417254272543725447254572546725477254872549725507255172552725537255472555725567255772558725597256072561725627256372564725657256672567725687256972570725717257272573725747257572576725777257872579725807258172582725837258472585725867258772588725897259072591725927259372594725957259672597725987259972600726017260272603726047260572606726077260872609726107261172612726137261472615726167261772618726197262072621726227262372624726257262672627726287262972630726317263272633726347263572636726377263872639726407264172642726437264472645726467264772648726497265072651726527265372654726557265672657726587265972660726617266272663726647266572666726677266872669726707267172672726737267472675726767267772678726797268072681726827268372684726857268672687726887268972690726917269272693726947269572696726977269872699727007270172702727037270472705727067270772708727097271072711727127271372714727157271672717727187271972720727217272272723727247272572726727277272872729727307273172732727337273472735727367273772738727397274072741727427274372744727457274672747727487274972750727517275272753727547275572756727577275872759727607276172762727637276472765727667276772768727697277072771727727277372774727757277672777727787277972780727817278272783727847278572786727877278872789727907279172792727937279472795727967279772798727997280072801728027280372804728057280672807728087280972810728117281272813728147281572816728177281872819728207282172822728237282472825728267282772828728297283072831728327283372834728357283672837728387283972840728417284272843728447284572846728477284872849728507285172852728537285472855728567285772858728597286072861728627286372864728657286672867728687286972870728717287272873728747287572876728777287872879728807288172882728837288472885728867288772888728897289072891728927289372894728957289672897728987289972900729017290272903729047290572906729077290872909729107291172912729137291472915729167291772918729197292072921729227292372924729257292672927729287292972930729317293272933729347293572936729377293872939729407294172942729437294472945729467294772948729497295072951729527295372954729557295672957729587295972960729617296272963729647296572966729677296872969729707297172972729737297472975729767297772978729797298072981729827298372984729857298672987729887298972990729917299272993729947299572996729977299872999730007300173002730037300473005730067300773008730097301073011730127301373014730157301673017730187301973020730217302273023730247302573026730277302873029730307303173032730337303473035730367303773038730397304073041730427304373044730457304673047730487304973050730517305273053730547305573056730577305873059730607306173062730637306473065730667306773068730697307073071730727307373074730757307673077730787307973080730817308273083730847308573086730877308873089730907309173092730937309473095730967309773098730997310073101731027310373104731057310673107731087310973110731117311273113731147311573116731177311873119731207312173122731237312473125731267312773128731297313073131731327313373134731357313673137731387313973140731417314273143731447314573146731477314873149731507315173152731537315473155731567315773158731597316073161731627316373164731657316673167731687316973170731717317273173731747317573176731777317873179731807318173182731837318473185731867318773188731897319073191731927319373194731957319673197731987319973200732017320273203732047320573206732077320873209732107321173212732137321473215732167321773218732197322073221732227322373224732257322673227732287322973230732317323273233732347323573236732377323873239732407324173242732437324473245732467324773248732497325073251732527325373254732557325673257732587325973260732617326273263732647326573266732677326873269732707327173272732737327473275732767327773278732797328073281732827328373284732857328673287732887328973290732917329273293732947329573296732977329873299733007330173302733037330473305733067330773308733097331073311733127331373314733157331673317733187331973320733217332273323733247332573326733277332873329733307333173332733337333473335733367333773338733397334073341733427334373344733457334673347733487334973350733517335273353733547335573356733577335873359733607336173362733637336473365733667336773368733697337073371733727337373374733757337673377733787337973380733817338273383733847338573386733877338873389733907339173392733937339473395733967339773398733997340073401734027340373404734057340673407734087340973410734117341273413734147341573416734177341873419734207342173422734237342473425734267342773428734297343073431734327343373434734357343673437734387343973440734417344273443734447344573446734477344873449734507345173452734537345473455734567345773458734597346073461734627346373464734657346673467734687346973470734717347273473734747347573476734777347873479734807348173482734837348473485734867348773488734897349073491734927349373494734957349673497734987349973500735017350273503735047350573506735077350873509735107351173512735137351473515735167351773518735197352073521735227352373524735257352673527735287352973530735317353273533735347353573536735377353873539735407354173542735437354473545735467354773548735497355073551735527355373554735557355673557735587355973560735617356273563735647356573566735677356873569735707357173572735737357473575735767357773578735797358073581735827358373584735857358673587735887358973590735917359273593735947359573596735977359873599736007360173602736037360473605736067360773608736097361073611736127361373614736157361673617736187361973620736217362273623736247362573626736277362873629736307363173632736337363473635736367363773638736397364073641736427364373644736457364673647736487364973650736517365273653736547365573656736577365873659736607366173662736637366473665736667366773668736697367073671736727367373674736757367673677736787367973680736817368273683736847368573686736877368873689736907369173692736937369473695736967369773698736997370073701737027370373704737057370673707737087370973710737117371273713737147371573716737177371873719737207372173722737237372473725737267372773728737297373073731737327373373734737357373673737737387373973740737417374273743737447374573746737477374873749737507375173752737537375473755737567375773758737597376073761737627376373764737657376673767737687376973770737717377273773737747377573776737777377873779737807378173782737837378473785737867378773788737897379073791737927379373794737957379673797737987379973800738017380273803738047380573806738077380873809738107381173812738137381473815738167381773818738197382073821738227382373824738257382673827738287382973830738317383273833738347383573836738377383873839738407384173842738437384473845738467384773848738497385073851738527385373854738557385673857738587385973860738617386273863738647386573866738677386873869738707387173872738737387473875738767387773878738797388073881738827388373884738857388673887738887388973890738917389273893738947389573896738977389873899739007390173902739037390473905739067390773908739097391073911739127391373914739157391673917739187391973920739217392273923739247392573926739277392873929739307393173932739337393473935739367393773938739397394073941739427394373944739457394673947739487394973950739517395273953739547395573956739577395873959739607396173962739637396473965739667396773968739697397073971739727397373974739757397673977739787397973980739817398273983739847398573986739877398873989739907399173992739937399473995739967399773998739997400074001740027400374004740057400674007740087400974010740117401274013740147401574016740177401874019740207402174022740237402474025740267402774028740297403074031740327403374034740357403674037740387403974040740417404274043740447404574046740477404874049740507405174052740537405474055740567405774058740597406074061740627406374064740657406674067740687406974070740717407274073740747407574076740777407874079740807408174082740837408474085740867408774088740897409074091740927409374094740957409674097740987409974100741017410274103741047410574106741077410874109741107411174112741137411474115741167411774118741197412074121741227412374124741257412674127741287412974130741317413274133741347413574136741377413874139741407414174142741437414474145741467414774148741497415074151741527415374154741557415674157741587415974160741617416274163741647416574166741677416874169741707417174172741737417474175741767417774178741797418074181741827418374184741857418674187741887418974190741917419274193741947419574196741977419874199742007420174202742037420474205742067420774208742097421074211742127421374214742157421674217742187421974220742217422274223742247422574226742277422874229742307423174232742337423474235742367423774238742397424074241742427424374244742457424674247742487424974250742517425274253742547425574256742577425874259742607426174262742637426474265742667426774268742697427074271742727427374274742757427674277742787427974280742817428274283742847428574286742877428874289742907429174292742937429474295742967429774298742997430074301743027430374304743057430674307743087430974310743117431274313743147431574316743177431874319743207432174322743237432474325743267432774328743297433074331743327433374334743357433674337743387433974340743417434274343743447434574346743477434874349743507435174352743537435474355743567435774358743597436074361743627436374364743657436674367743687436974370743717437274373743747437574376743777437874379743807438174382743837438474385743867438774388743897439074391743927439374394743957439674397743987439974400744017440274403744047440574406744077440874409744107441174412744137441474415744167441774418744197442074421744227442374424744257442674427744287442974430744317443274433744347443574436744377443874439744407444174442744437444474445744467444774448744497445074451744527445374454744557445674457744587445974460744617446274463744647446574466744677446874469744707447174472744737447474475744767447774478744797448074481744827448374484744857448674487744887448974490744917449274493744947449574496744977449874499745007450174502745037450474505745067450774508745097451074511745127451374514745157451674517745187451974520745217452274523745247452574526745277452874529745307453174532745337453474535745367453774538745397454074541745427454374544745457454674547745487454974550745517455274553745547455574556745577455874559745607456174562745637456474565745667456774568745697457074571745727457374574745757457674577745787457974580745817458274583745847458574586745877458874589745907459174592745937459474595745967459774598745997460074601746027460374604746057460674607746087460974610746117461274613746147461574616746177461874619746207462174622746237462474625746267462774628746297463074631746327463374634746357463674637746387463974640746417464274643746447464574646746477464874649746507465174652746537465474655746567465774658746597466074661746627466374664746657466674667746687466974670746717467274673746747467574676746777467874679746807468174682746837468474685746867468774688746897469074691746927469374694746957469674697746987469974700747017470274703747047470574706747077470874709747107471174712747137471474715747167471774718747197472074721747227472374724747257472674727747287472974730747317473274733747347473574736747377473874739747407474174742747437474474745747467474774748747497475074751747527475374754747557475674757747587475974760747617476274763747647476574766747677476874769747707477174772747737477474775747767477774778747797478074781747827478374784747857478674787747887478974790747917479274793747947479574796747977479874799748007480174802748037480474805748067480774808748097481074811748127481374814748157481674817748187481974820748217482274823748247482574826748277482874829748307483174832748337483474835748367483774838748397484074841748427484374844748457484674847748487484974850748517485274853748547485574856748577485874859748607486174862748637486474865748667486774868748697487074871748727487374874748757487674877748787487974880748817488274883748847488574886748877488874889748907489174892748937489474895748967489774898748997490074901749027490374904749057490674907749087490974910749117491274913749147491574916749177491874919749207492174922749237492474925749267492774928749297493074931749327493374934749357493674937749387493974940749417494274943749447494574946749477494874949749507495174952749537495474955749567495774958749597496074961749627496374964749657496674967749687496974970749717497274973749747497574976749777497874979749807498174982749837498474985749867498774988749897499074991749927499374994749957499674997749987499975000750017500275003750047500575006750077500875009750107501175012750137501475015750167501775018750197502075021750227502375024750257502675027750287502975030750317503275033750347503575036750377503875039750407504175042750437504475045750467504775048750497505075051750527505375054750557505675057750587505975060750617506275063750647506575066750677506875069750707507175072750737507475075750767507775078750797508075081750827508375084750857508675087750887508975090750917509275093750947509575096750977509875099751007510175102751037510475105751067510775108751097511075111751127511375114751157511675117751187511975120751217512275123751247512575126751277512875129751307513175132751337513475135751367513775138751397514075141751427514375144751457514675147751487514975150751517515275153751547515575156751577515875159751607516175162751637516475165751667516775168751697517075171751727517375174751757517675177751787517975180751817518275183751847518575186751877518875189751907519175192751937519475195751967519775198751997520075201752027520375204752057520675207752087520975210752117521275213752147521575216752177521875219752207522175222752237522475225752267522775228752297523075231752327523375234752357523675237752387523975240752417524275243752447524575246752477524875249752507525175252752537525475255752567525775258752597526075261752627526375264752657526675267752687526975270752717527275273752747527575276752777527875279752807528175282752837528475285752867528775288752897529075291752927529375294752957529675297752987529975300753017530275303753047530575306753077530875309753107531175312753137531475315753167531775318753197532075321753227532375324753257532675327753287532975330753317533275333753347533575336753377533875339753407534175342753437534475345753467534775348753497535075351753527535375354753557535675357753587535975360753617536275363753647536575366753677536875369753707537175372753737537475375753767537775378753797538075381753827538375384753857538675387753887538975390753917539275393753947539575396753977539875399754007540175402754037540475405754067540775408754097541075411754127541375414754157541675417754187541975420754217542275423754247542575426754277542875429754307543175432754337543475435754367543775438754397544075441754427544375444754457544675447754487544975450754517545275453754547545575456754577545875459754607546175462754637546475465754667546775468754697547075471754727547375474754757547675477754787547975480754817548275483754847548575486754877548875489754907549175492754937549475495754967549775498754997550075501755027550375504755057550675507755087550975510755117551275513755147551575516755177551875519755207552175522755237552475525755267552775528755297553075531755327553375534755357553675537755387553975540755417554275543755447554575546755477554875549755507555175552755537555475555755567555775558755597556075561755627556375564755657556675567755687556975570755717557275573755747557575576755777557875579755807558175582755837558475585755867558775588755897559075591755927559375594755957559675597755987559975600756017560275603756047560575606756077560875609756107561175612756137561475615756167561775618756197562075621756227562375624756257562675627756287562975630756317563275633756347563575636756377563875639756407564175642756437564475645756467564775648756497565075651756527565375654756557565675657756587565975660756617566275663756647566575666756677566875669756707567175672756737567475675756767567775678756797568075681756827568375684756857568675687756887568975690756917569275693756947569575696756977569875699757007570175702757037570475705757067570775708757097571075711757127571375714757157571675717757187571975720757217572275723757247572575726757277572875729757307573175732757337573475735757367573775738757397574075741757427574375744757457574675747757487574975750757517575275753757547575575756757577575875759757607576175762757637576475765757667576775768757697577075771757727577375774757757577675777757787577975780757817578275783757847578575786757877578875789757907579175792757937579475795757967579775798757997580075801758027580375804758057580675807758087580975810758117581275813758147581575816758177581875819758207582175822758237582475825758267582775828758297583075831758327583375834758357583675837758387583975840758417584275843758447584575846758477584875849758507585175852758537585475855758567585775858758597586075861758627586375864758657586675867758687586975870758717587275873758747587575876758777587875879758807588175882758837588475885758867588775888758897589075891758927589375894758957589675897758987589975900759017590275903759047590575906759077590875909759107591175912759137591475915759167591775918759197592075921759227592375924759257592675927759287592975930759317593275933759347593575936759377593875939759407594175942759437594475945759467594775948759497595075951759527595375954759557595675957759587595975960759617596275963759647596575966759677596875969759707597175972759737597475975759767597775978759797598075981759827598375984759857598675987759887598975990759917599275993759947599575996759977599875999760007600176002760037600476005760067600776008760097601076011760127601376014760157601676017760187601976020760217602276023760247602576026760277602876029760307603176032760337603476035760367603776038760397604076041760427604376044760457604676047760487604976050760517605276053760547605576056760577605876059760607606176062760637606476065760667606776068760697607076071760727607376074760757607676077760787607976080760817608276083760847608576086760877608876089760907609176092760937609476095760967609776098760997610076101761027610376104761057610676107761087610976110761117611276113761147611576116761177611876119761207612176122761237612476125761267612776128761297613076131761327613376134761357613676137761387613976140761417614276143761447614576146761477614876149761507615176152761537615476155761567615776158761597616076161761627616376164761657616676167761687616976170761717617276173761747617576176761777617876179761807618176182761837618476185761867618776188761897619076191761927619376194761957619676197761987619976200762017620276203762047620576206762077620876209762107621176212762137621476215762167621776218762197622076221762227622376224762257622676227762287622976230762317623276233762347623576236762377623876239762407624176242762437624476245762467624776248762497625076251762527625376254762557625676257762587625976260762617626276263762647626576266762677626876269762707627176272762737627476275762767627776278762797628076281762827628376284762857628676287762887628976290762917629276293762947629576296762977629876299763007630176302763037630476305763067630776308763097631076311763127631376314763157631676317763187631976320763217632276323763247632576326763277632876329763307633176332763337633476335763367633776338763397634076341763427634376344763457634676347763487634976350763517635276353763547635576356763577635876359763607636176362763637636476365763667636776368763697637076371763727637376374763757637676377763787637976380763817638276383763847638576386763877638876389763907639176392763937639476395763967639776398763997640076401764027640376404764057640676407764087640976410764117641276413764147641576416764177641876419764207642176422764237642476425764267642776428764297643076431764327643376434764357643676437764387643976440764417644276443764447644576446764477644876449764507645176452764537645476455764567645776458764597646076461764627646376464764657646676467764687646976470764717647276473764747647576476764777647876479764807648176482764837648476485764867648776488764897649076491764927649376494764957649676497764987649976500765017650276503765047650576506765077650876509765107651176512765137651476515765167651776518765197652076521765227652376524765257652676527765287652976530765317653276533765347653576536765377653876539765407654176542765437654476545765467654776548765497655076551765527655376554765557655676557765587655976560765617656276563765647656576566765677656876569765707657176572765737657476575765767657776578765797658076581765827658376584765857658676587765887658976590765917659276593765947659576596765977659876599766007660176602766037660476605766067660776608766097661076611766127661376614766157661676617766187661976620766217662276623766247662576626766277662876629766307663176632766337663476635766367663776638766397664076641766427664376644766457664676647766487664976650766517665276653766547665576656766577665876659766607666176662766637666476665766667666776668766697667076671766727667376674766757667676677766787667976680766817668276683766847668576686766877668876689766907669176692766937669476695766967669776698766997670076701767027670376704767057670676707767087670976710767117671276713767147671576716767177671876719767207672176722767237672476725767267672776728767297673076731767327673376734767357673676737767387673976740767417674276743767447674576746767477674876749767507675176752767537675476755767567675776758767597676076761767627676376764767657676676767767687676976770767717677276773767747677576776767777677876779767807678176782767837678476785767867678776788767897679076791767927679376794767957679676797767987679976800768017680276803768047680576806768077680876809768107681176812768137681476815768167681776818768197682076821768227682376824768257682676827768287682976830768317683276833768347683576836768377683876839768407684176842768437684476845768467684776848768497685076851768527685376854768557685676857768587685976860768617686276863768647686576866768677686876869768707687176872768737687476875768767687776878768797688076881768827688376884768857688676887768887688976890768917689276893768947689576896768977689876899769007690176902769037690476905769067690776908769097691076911769127691376914769157691676917769187691976920769217692276923769247692576926769277692876929769307693176932769337693476935769367693776938769397694076941769427694376944769457694676947769487694976950769517695276953769547695576956769577695876959769607696176962769637696476965769667696776968769697697076971769727697376974769757697676977769787697976980769817698276983769847698576986769877698876989769907699176992769937699476995769967699776998769997700077001770027700377004770057700677007770087700977010770117701277013770147701577016770177701877019770207702177022770237702477025770267702777028770297703077031770327703377034770357703677037770387703977040770417704277043770447704577046770477704877049770507705177052770537705477055770567705777058770597706077061770627706377064770657706677067770687706977070770717707277073770747707577076770777707877079770807708177082770837708477085770867708777088770897709077091770927709377094770957709677097770987709977100771017710277103771047710577106771077710877109771107711177112771137711477115771167711777118771197712077121771227712377124771257712677127771287712977130771317713277133771347713577136771377713877139771407714177142771437714477145771467714777148771497715077151771527715377154771557715677157771587715977160771617716277163771647716577166771677716877169771707717177172771737717477175771767717777178771797718077181771827718377184771857718677187771887718977190771917719277193771947719577196771977719877199772007720177202772037720477205772067720777208772097721077211772127721377214772157721677217772187721977220772217722277223772247722577226772277722877229772307723177232772337723477235772367723777238772397724077241772427724377244772457724677247772487724977250772517725277253772547725577256772577725877259772607726177262772637726477265772667726777268772697727077271772727727377274772757727677277772787727977280772817728277283772847728577286772877728877289772907729177292772937729477295772967729777298772997730077301773027730377304773057730677307773087730977310773117731277313773147731577316773177731877319773207732177322773237732477325773267732777328773297733077331773327733377334773357733677337773387733977340773417734277343773447734577346773477734877349773507735177352773537735477355773567735777358773597736077361773627736377364773657736677367773687736977370773717737277373773747737577376773777737877379773807738177382773837738477385773867738777388773897739077391773927739377394773957739677397773987739977400774017740277403774047740577406774077740877409774107741177412774137741477415774167741777418774197742077421774227742377424774257742677427774287742977430774317743277433774347743577436774377743877439774407744177442774437744477445774467744777448774497745077451774527745377454774557745677457774587745977460774617746277463774647746577466774677746877469774707747177472774737747477475774767747777478774797748077481774827748377484774857748677487774887748977490774917749277493774947749577496774977749877499775007750177502775037750477505775067750777508775097751077511775127751377514775157751677517775187751977520775217752277523775247752577526775277752877529775307753177532775337753477535775367753777538775397754077541775427754377544775457754677547775487754977550775517755277553775547755577556775577755877559775607756177562775637756477565775667756777568775697757077571775727757377574775757757677577775787757977580775817758277583775847758577586775877758877589775907759177592775937759477595775967759777598775997760077601776027760377604776057760677607776087760977610776117761277613776147761577616776177761877619776207762177622776237762477625776267762777628776297763077631776327763377634776357763677637776387763977640776417764277643776447764577646776477764877649776507765177652776537765477655776567765777658776597766077661776627766377664776657766677667776687766977670776717767277673776747767577676776777767877679776807768177682776837768477685776867768777688776897769077691776927769377694776957769677697776987769977700777017770277703777047770577706777077770877709777107771177712777137771477715777167771777718777197772077721777227772377724777257772677727777287772977730777317773277733777347773577736777377773877739777407774177742777437774477745777467774777748777497775077751777527775377754777557775677757777587775977760777617776277763777647776577766777677776877769777707777177772777737777477775777767777777778777797778077781777827778377784777857778677787777887778977790777917779277793777947779577796777977779877799778007780177802778037780477805778067780777808778097781077811778127781377814778157781677817778187781977820778217782277823778247782577826778277782877829778307783177832778337783477835778367783777838778397784077841778427784377844778457784677847778487784977850778517785277853778547785577856778577785877859778607786177862778637786477865778667786777868778697787077871778727787377874778757787677877778787787977880778817788277883778847788577886778877788877889778907789177892778937789477895778967789777898778997790077901779027790377904779057790677907779087790977910779117791277913779147791577916779177791877919779207792177922779237792477925779267792777928779297793077931779327793377934779357793677937779387793977940779417794277943779447794577946779477794877949779507795177952779537795477955779567795777958779597796077961779627796377964779657796677967779687796977970779717797277973779747797577976779777797877979779807798177982779837798477985779867798777988779897799077991779927799377994779957799677997779987799978000780017800278003780047800578006780077800878009780107801178012780137801478015780167801778018780197802078021780227802378024780257802678027780287802978030780317803278033780347803578036780377803878039780407804178042780437804478045780467804778048780497805078051780527805378054780557805678057780587805978060780617806278063780647806578066780677806878069780707807178072780737807478075780767807778078780797808078081780827808378084780857808678087780887808978090780917809278093780947809578096780977809878099781007810178102781037810478105781067810778108781097811078111781127811378114781157811678117781187811978120781217812278123781247812578126781277812878129781307813178132781337813478135781367813778138781397814078141781427814378144781457814678147781487814978150781517815278153781547815578156781577815878159781607816178162781637816478165781667816778168781697817078171781727817378174781757817678177781787817978180781817818278183781847818578186781877818878189781907819178192781937819478195781967819778198781997820078201782027820378204782057820678207782087820978210782117821278213782147821578216782177821878219782207822178222782237822478225782267822778228782297823078231782327823378234782357823678237782387823978240782417824278243782447824578246782477824878249782507825178252782537825478255782567825778258782597826078261782627826378264782657826678267782687826978270782717827278273782747827578276782777827878279782807828178282782837828478285782867828778288782897829078291782927829378294782957829678297782987829978300783017830278303783047830578306783077830878309783107831178312783137831478315783167831778318783197832078321783227832378324783257832678327783287832978330783317833278333783347833578336783377833878339783407834178342783437834478345783467834778348783497835078351783527835378354783557835678357783587835978360783617836278363783647836578366783677836878369783707837178372783737837478375783767837778378783797838078381783827838378384783857838678387783887838978390783917839278393783947839578396783977839878399784007840178402784037840478405784067840778408784097841078411784127841378414784157841678417784187841978420784217842278423784247842578426784277842878429784307843178432784337843478435784367843778438784397844078441784427844378444784457844678447784487844978450784517845278453784547845578456784577845878459784607846178462784637846478465784667846778468784697847078471784727847378474784757847678477784787847978480784817848278483784847848578486784877848878489784907849178492784937849478495784967849778498784997850078501785027850378504785057850678507785087850978510785117851278513785147851578516785177851878519785207852178522785237852478525785267852778528785297853078531785327853378534785357853678537785387853978540785417854278543785447854578546785477854878549785507855178552785537855478555785567855778558785597856078561785627856378564785657856678567785687856978570785717857278573785747857578576785777857878579785807858178582785837858478585785867858778588785897859078591785927859378594785957859678597785987859978600786017860278603786047860578606786077860878609786107861178612786137861478615786167861778618786197862078621786227862378624786257862678627786287862978630786317863278633786347863578636786377863878639786407864178642786437864478645786467864778648786497865078651786527865378654786557865678657786587865978660786617866278663786647866578666786677866878669786707867178672786737867478675786767867778678786797868078681786827868378684786857868678687786887868978690786917869278693786947869578696786977869878699787007870178702787037870478705787067870778708787097871078711787127871378714787157871678717787187871978720787217872278723787247872578726787277872878729787307873178732787337873478735787367873778738787397874078741787427874378744787457874678747787487874978750787517875278753787547875578756787577875878759787607876178762787637876478765787667876778768787697877078771787727877378774787757877678777787787877978780787817878278783787847878578786787877878878789787907879178792787937879478795787967879778798787997880078801788027880378804788057880678807788087880978810788117881278813788147881578816788177881878819788207882178822788237882478825788267882778828788297883078831788327883378834788357883678837788387883978840788417884278843788447884578846788477884878849788507885178852788537885478855788567885778858788597886078861788627886378864788657886678867788687886978870788717887278873788747887578876788777887878879788807888178882788837888478885788867888778888788897889078891788927889378894788957889678897788987889978900789017890278903789047890578906789077890878909789107891178912789137891478915789167891778918789197892078921789227892378924789257892678927789287892978930789317893278933789347893578936789377893878939789407894178942789437894478945789467894778948789497895078951789527895378954789557895678957789587895978960789617896278963789647896578966789677896878969789707897178972789737897478975789767897778978789797898078981789827898378984789857898678987789887898978990789917899278993789947899578996789977899878999790007900179002790037900479005790067900779008790097901079011790127901379014790157901679017790187901979020790217902279023790247902579026790277902879029790307903179032790337903479035790367903779038790397904079041790427904379044790457904679047790487904979050790517905279053790547905579056790577905879059790607906179062790637906479065790667906779068790697907079071790727907379074790757907679077790787907979080790817908279083790847908579086790877908879089790907909179092790937909479095790967909779098790997910079101791027910379104791057910679107791087910979110791117911279113791147911579116791177911879119791207912179122791237912479125791267912779128791297913079131791327913379134791357913679137791387913979140791417914279143791447914579146791477914879149791507915179152791537915479155791567915779158791597916079161791627916379164791657916679167791687916979170791717917279173791747917579176791777917879179791807918179182791837918479185791867918779188791897919079191791927919379194791957919679197791987919979200792017920279203792047920579206792077920879209792107921179212792137921479215792167921779218792197922079221792227922379224792257922679227792287922979230792317923279233792347923579236792377923879239792407924179242792437924479245792467924779248792497925079251792527925379254792557925679257792587925979260792617926279263792647926579266792677926879269792707927179272792737927479275792767927779278792797928079281792827928379284792857928679287792887928979290792917929279293792947929579296792977929879299793007930179302793037930479305793067930779308793097931079311793127931379314793157931679317793187931979320793217932279323793247932579326793277932879329793307933179332793337933479335793367933779338793397934079341793427934379344793457934679347793487934979350793517935279353793547935579356793577935879359793607936179362793637936479365793667936779368793697937079371793727937379374793757937679377793787937979380793817938279383793847938579386793877938879389793907939179392793937939479395793967939779398793997940079401794027940379404794057940679407794087940979410794117941279413794147941579416794177941879419794207942179422794237942479425794267942779428794297943079431794327943379434794357943679437794387943979440794417944279443794447944579446794477944879449794507945179452794537945479455794567945779458794597946079461794627946379464794657946679467794687946979470794717947279473794747947579476794777947879479794807948179482794837948479485794867948779488794897949079491794927949379494794957949679497794987949979500795017950279503795047950579506795077950879509795107951179512795137951479515795167951779518795197952079521795227952379524795257952679527795287952979530795317953279533795347953579536795377953879539795407954179542795437954479545795467954779548795497955079551795527955379554795557955679557795587955979560795617956279563795647956579566795677956879569795707957179572795737957479575795767957779578795797958079581795827958379584795857958679587795887958979590795917959279593795947959579596795977959879599796007960179602796037960479605796067960779608796097961079611796127961379614796157961679617796187961979620796217962279623796247962579626796277962879629796307963179632796337963479635796367963779638796397964079641796427964379644796457964679647796487964979650796517965279653796547965579656796577965879659796607966179662796637966479665796667966779668796697967079671796727967379674796757967679677796787967979680796817968279683796847968579686796877968879689796907969179692796937969479695796967969779698796997970079701797027970379704797057970679707797087970979710797117971279713797147971579716797177971879719797207972179722797237972479725797267972779728797297973079731797327973379734797357973679737797387973979740797417974279743797447974579746797477974879749797507975179752797537975479755797567975779758797597976079761797627976379764797657976679767797687976979770797717977279773797747977579776797777977879779797807978179782797837978479785797867978779788797897979079791797927979379794797957979679797797987979979800798017980279803798047980579806798077980879809798107981179812798137981479815798167981779818798197982079821798227982379824798257982679827798287982979830798317983279833798347983579836798377983879839798407984179842798437984479845798467984779848798497985079851798527985379854798557985679857798587985979860798617986279863798647986579866798677986879869798707987179872798737987479875798767987779878798797988079881798827988379884798857988679887798887988979890798917989279893798947989579896798977989879899799007990179902799037990479905799067990779908799097991079911799127991379914799157991679917799187991979920799217992279923799247992579926799277992879929799307993179932799337993479935799367993779938799397994079941799427994379944799457994679947799487994979950799517995279953799547995579956799577995879959799607996179962799637996479965799667996779968799697997079971799727997379974799757997679977799787997979980799817998279983799847998579986799877998879989799907999179992799937999479995799967999779998799998000080001800028000380004800058000680007800088000980010800118001280013800148001580016800178001880019800208002180022800238002480025800268002780028800298003080031800328003380034800358003680037800388003980040800418004280043800448004580046800478004880049800508005180052800538005480055800568005780058800598006080061800628006380064800658006680067800688006980070800718007280073800748007580076800778007880079800808008180082800838008480085800868008780088800898009080091800928009380094800958009680097800988009980100801018010280103801048010580106801078010880109801108011180112801138011480115801168011780118801198012080121801228012380124801258012680127801288012980130801318013280133801348013580136801378013880139801408014180142801438014480145801468014780148801498015080151801528015380154801558015680157801588015980160801618016280163801648016580166801678016880169801708017180172801738017480175801768017780178801798018080181801828018380184801858018680187801888018980190801918019280193801948019580196801978019880199802008020180202802038020480205802068020780208802098021080211802128021380214802158021680217802188021980220802218022280223802248022580226802278022880229802308023180232802338023480235802368023780238802398024080241802428024380244802458024680247802488024980250802518025280253802548025580256802578025880259802608026180262802638026480265802668026780268802698027080271802728027380274802758027680277802788027980280802818028280283802848028580286802878028880289802908029180292802938029480295802968029780298802998030080301803028030380304803058030680307803088030980310803118031280313803148031580316803178031880319803208032180322803238032480325803268032780328803298033080331803328033380334803358033680337803388033980340803418034280343803448034580346803478034880349803508035180352803538035480355803568035780358803598036080361803628036380364803658036680367803688036980370803718037280373803748037580376803778037880379803808038180382803838038480385803868038780388803898039080391803928039380394803958039680397803988039980400804018040280403804048040580406804078040880409804108041180412804138041480415804168041780418804198042080421804228042380424804258042680427804288042980430804318043280433804348043580436804378043880439804408044180442804438044480445804468044780448804498045080451804528045380454804558045680457804588045980460804618046280463804648046580466804678046880469804708047180472804738047480475804768047780478804798048080481804828048380484804858048680487804888048980490804918049280493804948049580496804978049880499805008050180502805038050480505805068050780508805098051080511805128051380514805158051680517805188051980520805218052280523805248052580526805278052880529805308053180532805338053480535805368053780538805398054080541805428054380544805458054680547805488054980550805518055280553805548055580556805578055880559805608056180562805638056480565805668056780568805698057080571805728057380574805758057680577805788057980580805818058280583805848058580586805878058880589805908059180592805938059480595805968059780598805998060080601806028060380604806058060680607806088060980610806118061280613806148061580616806178061880619806208062180622806238062480625806268062780628806298063080631806328063380634806358063680637806388063980640806418064280643806448064580646806478064880649806508065180652806538065480655806568065780658806598066080661806628066380664806658066680667806688066980670806718067280673806748067580676806778067880679806808068180682806838068480685806868068780688806898069080691806928069380694806958069680697806988069980700807018070280703807048070580706807078070880709807108071180712807138071480715807168071780718807198072080721807228072380724807258072680727807288072980730807318073280733807348073580736807378073880739807408074180742807438074480745807468074780748807498075080751807528075380754807558075680757807588075980760807618076280763807648076580766807678076880769807708077180772807738077480775807768077780778807798078080781807828078380784807858078680787807888078980790807918079280793807948079580796807978079880799808008080180802808038080480805808068080780808808098081080811808128081380814808158081680817808188081980820808218082280823808248082580826808278082880829808308083180832808338083480835808368083780838808398084080841808428084380844808458084680847808488084980850808518085280853808548085580856808578085880859808608086180862808638086480865808668086780868808698087080871808728087380874808758087680877808788087980880808818088280883808848088580886808878088880889808908089180892808938089480895808968089780898808998090080901809028090380904809058090680907809088090980910809118091280913809148091580916809178091880919809208092180922809238092480925809268092780928809298093080931809328093380934809358093680937809388093980940809418094280943809448094580946809478094880949809508095180952809538095480955809568095780958809598096080961809628096380964809658096680967809688096980970809718097280973809748097580976809778097880979809808098180982809838098480985809868098780988809898099080991809928099380994809958099680997809988099981000810018100281003810048100581006810078100881009810108101181012810138101481015810168101781018810198102081021810228102381024810258102681027810288102981030810318103281033810348103581036810378103881039810408104181042810438104481045810468104781048810498105081051810528105381054810558105681057810588105981060810618106281063810648106581066810678106881069810708107181072810738107481075810768107781078810798108081081810828108381084810858108681087810888108981090810918109281093810948109581096810978109881099811008110181102811038110481105811068110781108811098111081111811128111381114811158111681117811188111981120811218112281123811248112581126811278112881129811308113181132811338113481135811368113781138811398114081141811428114381144811458114681147811488114981150811518115281153811548115581156811578115881159811608116181162811638116481165811668116781168811698117081171811728117381174811758117681177811788117981180811818118281183811848118581186811878118881189811908119181192811938119481195811968119781198811998120081201812028120381204812058120681207812088120981210812118121281213812148121581216812178121881219812208122181222812238122481225812268122781228812298123081231812328123381234812358123681237812388123981240812418124281243812448124581246812478124881249812508125181252812538125481255812568125781258812598126081261812628126381264812658126681267812688126981270812718127281273812748127581276812778127881279812808128181282812838128481285812868128781288812898129081291812928129381294812958129681297812988129981300813018130281303813048130581306813078130881309813108131181312813138131481315813168131781318813198132081321813228132381324813258132681327813288132981330813318133281333813348133581336813378133881339813408134181342813438134481345813468134781348813498135081351813528135381354813558135681357813588135981360813618136281363813648136581366813678136881369813708137181372813738137481375813768137781378813798138081381813828138381384813858138681387813888138981390813918139281393813948139581396813978139881399814008140181402814038140481405814068140781408814098141081411814128141381414814158141681417814188141981420814218142281423814248142581426814278142881429814308143181432814338143481435814368143781438814398144081441814428144381444814458144681447814488144981450814518145281453814548145581456814578145881459814608146181462814638146481465814668146781468814698147081471814728147381474814758147681477814788147981480814818148281483814848148581486814878148881489814908149181492814938149481495814968149781498814998150081501815028150381504815058150681507815088150981510815118151281513815148151581516815178151881519815208152181522815238152481525815268152781528815298153081531815328153381534815358153681537815388153981540815418154281543815448154581546815478154881549815508155181552815538155481555815568155781558815598156081561815628156381564815658156681567815688156981570815718157281573815748157581576815778157881579815808158181582815838158481585815868158781588815898159081591815928159381594815958159681597815988159981600816018160281603816048160581606816078160881609816108161181612816138161481615816168161781618816198162081621816228162381624816258162681627816288162981630816318163281633816348163581636816378163881639816408164181642816438164481645816468164781648816498165081651816528165381654816558165681657816588165981660816618166281663816648166581666816678166881669816708167181672816738167481675816768167781678816798168081681816828168381684816858168681687816888168981690816918169281693816948169581696816978169881699817008170181702817038170481705817068170781708817098171081711817128171381714817158171681717817188171981720817218172281723817248172581726817278172881729817308173181732817338173481735817368173781738817398174081741817428174381744817458174681747817488174981750817518175281753817548175581756817578175881759817608176181762817638176481765817668176781768817698177081771817728177381774817758177681777817788177981780817818178281783817848178581786817878178881789817908179181792817938179481795817968179781798817998180081801818028180381804818058180681807818088180981810818118181281813818148181581816818178181881819818208182181822818238182481825818268182781828818298183081831818328183381834818358183681837818388183981840818418184281843818448184581846818478184881849818508185181852818538185481855818568185781858818598186081861818628186381864818658186681867818688186981870818718187281873818748187581876818778187881879818808188181882818838188481885818868188781888818898189081891818928189381894818958189681897818988189981900819018190281903819048190581906819078190881909819108191181912819138191481915819168191781918819198192081921819228192381924819258192681927819288192981930819318193281933819348193581936819378193881939819408194181942819438194481945819468194781948819498195081951819528195381954819558195681957819588195981960819618196281963819648196581966819678196881969819708197181972819738197481975819768197781978819798198081981819828198381984819858198681987819888198981990819918199281993819948199581996819978199881999820008200182002820038200482005820068200782008820098201082011820128201382014820158201682017820188201982020820218202282023820248202582026820278202882029820308203182032820338203482035820368203782038820398204082041820428204382044820458204682047820488204982050820518205282053820548205582056820578205882059820608206182062820638206482065820668206782068820698207082071820728207382074820758207682077820788207982080820818208282083820848208582086820878208882089820908209182092820938209482095820968209782098820998210082101821028210382104821058210682107821088210982110821118211282113821148211582116821178211882119821208212182122821238212482125821268212782128821298213082131821328213382134821358213682137821388213982140821418214282143821448214582146821478214882149821508215182152821538215482155821568215782158821598216082161821628216382164821658216682167821688216982170821718217282173821748217582176821778217882179821808218182182821838218482185821868218782188821898219082191821928219382194821958219682197821988219982200822018220282203822048220582206822078220882209822108221182212822138221482215822168221782218822198222082221822228222382224822258222682227822288222982230822318223282233822348223582236822378223882239822408224182242822438224482245822468224782248822498225082251822528225382254822558225682257822588225982260822618226282263822648226582266822678226882269822708227182272822738227482275822768227782278822798228082281822828228382284822858228682287822888228982290822918229282293822948229582296822978229882299823008230182302823038230482305823068230782308823098231082311823128231382314823158231682317823188231982320823218232282323823248232582326823278232882329823308233182332823338233482335823368233782338823398234082341823428234382344823458234682347823488234982350823518235282353823548235582356823578235882359823608236182362823638236482365823668236782368823698237082371823728237382374823758237682377823788237982380823818238282383823848238582386823878238882389823908239182392823938239482395823968239782398823998240082401824028240382404824058240682407824088240982410824118241282413824148241582416824178241882419824208242182422824238242482425824268242782428824298243082431824328243382434824358243682437824388243982440824418244282443824448244582446824478244882449824508245182452824538245482455824568245782458824598246082461824628246382464824658246682467824688246982470824718247282473824748247582476824778247882479824808248182482824838248482485824868248782488824898249082491824928249382494824958249682497824988249982500825018250282503825048250582506825078250882509825108251182512825138251482515825168251782518825198252082521825228252382524825258252682527825288252982530825318253282533825348253582536825378253882539825408254182542825438254482545825468254782548825498255082551825528255382554825558255682557825588255982560825618256282563825648256582566825678256882569825708257182572825738257482575825768257782578825798258082581825828258382584825858258682587825888258982590825918259282593825948259582596825978259882599826008260182602826038260482605826068260782608826098261082611826128261382614826158261682617826188261982620826218262282623826248262582626826278262882629826308263182632826338263482635826368263782638826398264082641826428264382644826458264682647826488264982650826518265282653826548265582656826578265882659826608266182662826638266482665826668266782668826698267082671826728267382674826758267682677826788267982680826818268282683826848268582686826878268882689826908269182692826938269482695826968269782698826998270082701827028270382704827058270682707827088270982710827118271282713827148271582716827178271882719827208272182722827238272482725827268272782728827298273082731827328273382734827358273682737827388273982740827418274282743827448274582746827478274882749827508275182752827538275482755827568275782758827598276082761827628276382764827658276682767827688276982770827718277282773827748277582776827778277882779827808278182782827838278482785827868278782788827898279082791827928279382794827958279682797827988279982800828018280282803828048280582806828078280882809828108281182812828138281482815828168281782818828198282082821828228282382824828258282682827828288282982830828318283282833828348283582836828378283882839828408284182842828438284482845828468284782848828498285082851828528285382854828558285682857828588285982860828618286282863828648286582866828678286882869828708287182872828738287482875828768287782878828798288082881828828288382884828858288682887828888288982890828918289282893828948289582896828978289882899829008290182902829038290482905829068290782908829098291082911829128291382914829158291682917829188291982920829218292282923829248292582926829278292882929829308293182932829338293482935829368293782938829398294082941829428294382944829458294682947829488294982950829518295282953829548295582956829578295882959829608296182962829638296482965829668296782968829698297082971829728297382974829758297682977829788297982980829818298282983829848298582986829878298882989829908299182992829938299482995829968299782998829998300083001830028300383004830058300683007830088300983010830118301283013830148301583016830178301883019830208302183022830238302483025830268302783028830298303083031830328303383034830358303683037830388303983040830418304283043830448304583046830478304883049830508305183052830538305483055830568305783058830598306083061830628306383064830658306683067830688306983070830718307283073830748307583076830778307883079830808308183082830838308483085830868308783088830898309083091830928309383094830958309683097830988309983100831018310283103831048310583106831078310883109831108311183112831138311483115831168311783118831198312083121831228312383124831258312683127831288312983130831318313283133831348313583136831378313883139831408314183142831438314483145831468314783148831498315083151831528315383154831558315683157831588315983160831618316283163831648316583166831678316883169831708317183172831738317483175831768317783178831798318083181831828318383184831858318683187831888318983190831918319283193831948319583196831978319883199832008320183202832038320483205832068320783208832098321083211832128321383214832158321683217832188321983220832218322283223832248322583226832278322883229832308323183232832338323483235832368323783238832398324083241832428324383244832458324683247832488324983250832518325283253832548325583256832578325883259832608326183262832638326483265832668326783268832698327083271832728327383274832758327683277832788327983280832818328283283832848328583286832878328883289832908329183292832938329483295832968329783298832998330083301833028330383304833058330683307833088330983310833118331283313833148331583316833178331883319833208332183322833238332483325833268332783328833298333083331833328333383334833358333683337833388333983340833418334283343833448334583346833478334883349833508335183352833538335483355833568335783358833598336083361833628336383364833658336683367833688336983370833718337283373833748337583376833778337883379833808338183382833838338483385833868338783388833898339083391833928339383394833958339683397833988339983400834018340283403834048340583406834078340883409834108341183412834138341483415834168341783418834198342083421834228342383424834258342683427834288342983430834318343283433834348343583436834378343883439834408344183442834438344483445834468344783448834498345083451834528345383454834558345683457834588345983460834618346283463834648346583466834678346883469834708347183472834738347483475834768347783478834798348083481834828348383484834858348683487834888348983490834918349283493834948349583496834978349883499835008350183502835038350483505835068350783508835098351083511835128351383514835158351683517835188351983520835218352283523835248352583526835278352883529835308353183532835338353483535835368353783538835398354083541835428354383544835458354683547835488354983550835518355283553835548355583556835578355883559835608356183562835638356483565835668356783568835698357083571835728357383574835758357683577835788357983580835818358283583835848358583586835878358883589835908359183592835938359483595835968359783598835998360083601836028360383604836058360683607836088360983610836118361283613836148361583616836178361883619836208362183622836238362483625836268362783628836298363083631836328363383634836358363683637836388363983640836418364283643836448364583646836478364883649836508365183652836538365483655836568365783658836598366083661836628366383664836658366683667836688366983670836718367283673836748367583676836778367883679836808368183682836838368483685836868368783688836898369083691836928369383694836958369683697836988369983700837018370283703837048370583706837078370883709837108371183712837138371483715837168371783718837198372083721837228372383724837258372683727837288372983730837318373283733837348373583736837378373883739837408374183742837438374483745837468374783748837498375083751837528375383754837558375683757837588375983760837618376283763837648376583766837678376883769837708377183772837738377483775837768377783778837798378083781837828378383784837858378683787837888378983790837918379283793837948379583796837978379883799838008380183802838038380483805838068380783808838098381083811838128381383814838158381683817838188381983820838218382283823838248382583826838278382883829838308383183832838338383483835838368383783838838398384083841838428384383844838458384683847838488384983850838518385283853838548385583856838578385883859838608386183862838638386483865838668386783868838698387083871838728387383874838758387683877838788387983880838818388283883838848388583886838878388883889838908389183892838938389483895838968389783898838998390083901839028390383904839058390683907839088390983910839118391283913839148391583916839178391883919839208392183922839238392483925839268392783928839298393083931839328393383934839358393683937839388393983940839418394283943839448394583946839478394883949839508395183952839538395483955839568395783958839598396083961839628396383964839658396683967839688396983970839718397283973839748397583976839778397883979839808398183982839838398483985839868398783988839898399083991839928399383994839958399683997839988399984000840018400284003840048400584006840078400884009840108401184012840138401484015840168401784018840198402084021840228402384024840258402684027840288402984030840318403284033840348403584036840378403884039840408404184042840438404484045840468404784048840498405084051840528405384054840558405684057840588405984060840618406284063840648406584066840678406884069840708407184072840738407484075840768407784078840798408084081840828408384084840858408684087840888408984090840918409284093840948409584096840978409884099841008410184102841038410484105841068410784108841098411084111841128411384114841158411684117841188411984120841218412284123841248412584126841278412884129841308413184132841338413484135841368413784138841398414084141841428414384144841458414684147841488414984150841518415284153841548415584156841578415884159841608416184162841638416484165841668416784168841698417084171841728417384174841758417684177841788417984180841818418284183841848418584186841878418884189841908419184192841938419484195841968419784198841998420084201842028420384204842058420684207842088420984210842118421284213842148421584216842178421884219842208422184222842238422484225842268422784228842298423084231842328423384234842358423684237842388423984240842418424284243842448424584246842478424884249842508425184252842538425484255842568425784258842598426084261842628426384264842658426684267842688426984270842718427284273842748427584276842778427884279842808428184282842838428484285842868428784288842898429084291842928429384294842958429684297842988429984300843018430284303843048430584306843078430884309843108431184312843138431484315843168431784318843198432084321843228432384324843258432684327843288432984330843318433284333843348433584336843378433884339843408434184342843438434484345843468434784348843498435084351843528435384354843558435684357843588435984360843618436284363843648436584366843678436884369843708437184372843738437484375843768437784378843798438084381843828438384384843858438684387843888438984390843918439284393843948439584396843978439884399844008440184402844038440484405844068440784408844098441084411844128441384414844158441684417844188441984420844218442284423844248442584426844278442884429844308443184432844338443484435844368443784438844398444084441844428444384444844458444684447844488444984450844518445284453844548445584456844578445884459844608446184462844638446484465844668446784468844698447084471844728447384474844758447684477844788447984480844818448284483844848448584486844878448884489844908449184492844938449484495844968449784498844998450084501845028450384504845058450684507845088450984510845118451284513845148451584516845178451884519845208452184522845238452484525845268452784528845298453084531845328453384534845358453684537845388453984540845418454284543845448454584546845478454884549845508455184552845538455484555845568455784558845598456084561845628456384564845658456684567845688456984570845718457284573845748457584576845778457884579845808458184582845838458484585845868458784588845898459084591845928459384594845958459684597845988459984600846018460284603846048460584606846078460884609846108461184612846138461484615846168461784618846198462084621846228462384624846258462684627846288462984630846318463284633846348463584636846378463884639846408464184642846438464484645846468464784648846498465084651846528465384654846558465684657846588465984660846618466284663846648466584666846678466884669846708467184672846738467484675846768467784678846798468084681846828468384684846858468684687846888468984690846918469284693846948469584696846978469884699847008470184702847038470484705847068470784708847098471084711847128471384714847158471684717847188471984720847218472284723847248472584726847278472884729847308473184732847338473484735847368473784738847398474084741847428474384744847458474684747847488474984750847518475284753847548475584756847578475884759847608476184762847638476484765847668476784768847698477084771847728477384774847758477684777847788477984780847818478284783847848478584786847878478884789847908479184792847938479484795847968479784798847998480084801848028480384804848058480684807848088480984810848118481284813848148481584816848178481884819848208482184822848238482484825848268482784828848298483084831848328483384834848358483684837848388483984840848418484284843848448484584846848478484884849848508485184852848538485484855848568485784858848598486084861848628486384864848658486684867848688486984870848718487284873848748487584876848778487884879848808488184882848838488484885848868488784888848898489084891848928489384894848958489684897848988489984900849018490284903849048490584906849078490884909849108491184912849138491484915849168491784918849198492084921849228492384924849258492684927849288492984930849318493284933849348493584936849378493884939849408494184942849438494484945849468494784948849498495084951849528495384954849558495684957849588495984960849618496284963849648496584966849678496884969849708497184972849738497484975849768497784978849798498084981849828498384984849858498684987849888498984990849918499284993849948499584996849978499884999850008500185002850038500485005850068500785008850098501085011850128501385014850158501685017850188501985020850218502285023850248502585026850278502885029850308503185032850338503485035850368503785038850398504085041850428504385044850458504685047850488504985050850518505285053850548505585056850578505885059850608506185062850638506485065850668506785068850698507085071850728507385074850758507685077850788507985080850818508285083850848508585086850878508885089850908509185092850938509485095850968509785098850998510085101851028510385104851058510685107851088510985110851118511285113851148511585116851178511885119851208512185122851238512485125851268512785128851298513085131851328513385134851358513685137851388513985140851418514285143851448514585146851478514885149851508515185152851538515485155851568515785158851598516085161851628516385164851658516685167851688516985170851718517285173851748517585176851778517885179851808518185182851838518485185851868518785188851898519085191851928519385194851958519685197851988519985200852018520285203852048520585206852078520885209852108521185212852138521485215852168521785218852198522085221852228522385224852258522685227852288522985230852318523285233852348523585236852378523885239852408524185242852438524485245852468524785248852498525085251852528525385254852558525685257852588525985260852618526285263852648526585266852678526885269852708527185272852738527485275852768527785278852798528085281852828528385284852858528685287852888528985290852918529285293852948529585296852978529885299853008530185302853038530485305853068530785308853098531085311853128531385314853158531685317853188531985320853218532285323853248532585326853278532885329853308533185332853338533485335853368533785338853398534085341853428534385344853458534685347853488534985350853518535285353853548535585356853578535885359853608536185362853638536485365853668536785368853698537085371853728537385374853758537685377853788537985380853818538285383853848538585386853878538885389853908539185392853938539485395853968539785398853998540085401854028540385404854058540685407854088540985410854118541285413854148541585416854178541885419854208542185422854238542485425854268542785428854298543085431854328543385434854358543685437854388543985440854418544285443854448544585446854478544885449854508545185452854538545485455854568545785458854598546085461854628546385464854658546685467854688546985470854718547285473854748547585476854778547885479854808548185482854838548485485854868548785488854898549085491854928549385494854958549685497854988549985500855018550285503855048550585506855078550885509855108551185512855138551485515855168551785518855198552085521855228552385524855258552685527855288552985530855318553285533855348553585536855378553885539855408554185542855438554485545855468554785548855498555085551855528555385554855558555685557855588555985560855618556285563855648556585566855678556885569855708557185572855738557485575855768557785578855798558085581855828558385584855858558685587855888558985590855918559285593855948559585596855978559885599856008560185602856038560485605856068560785608856098561085611856128561385614856158561685617856188561985620856218562285623856248562585626856278562885629856308563185632856338563485635856368563785638856398564085641856428564385644856458564685647856488564985650856518565285653856548565585656856578565885659856608566185662856638566485665856668566785668856698567085671856728567385674856758567685677856788567985680856818568285683856848568585686856878568885689856908569185692856938569485695856968569785698856998570085701857028570385704857058570685707857088570985710857118571285713857148571585716857178571885719857208572185722857238572485725857268572785728857298573085731857328573385734857358573685737857388573985740857418574285743857448574585746857478574885749857508575185752857538575485755857568575785758857598576085761857628576385764857658576685767857688576985770857718577285773857748577585776857778577885779857808578185782857838578485785857868578785788857898579085791857928579385794857958579685797857988579985800858018580285803858048580585806858078580885809858108581185812858138581485815858168581785818858198582085821858228582385824858258582685827858288582985830858318583285833858348583585836858378583885839858408584185842858438584485845858468584785848858498585085851858528585385854858558585685857858588585985860858618586285863858648586585866858678586885869858708587185872858738587485875858768587785878858798588085881858828588385884858858588685887858888588985890858918589285893858948589585896858978589885899859008590185902859038590485905859068590785908859098591085911859128591385914859158591685917859188591985920859218592285923859248592585926859278592885929859308593185932859338593485935859368593785938859398594085941859428594385944859458594685947859488594985950859518595285953859548595585956859578595885959859608596185962859638596485965859668596785968859698597085971859728597385974859758597685977859788597985980859818598285983859848598585986859878598885989859908599185992859938599485995859968599785998859998600086001860028600386004860058600686007860088600986010860118601286013860148601586016860178601886019860208602186022860238602486025860268602786028860298603086031860328603386034860358603686037860388603986040860418604286043860448604586046860478604886049860508605186052860538605486055860568605786058860598606086061860628606386064860658606686067860688606986070860718607286073860748607586076860778607886079860808608186082860838608486085860868608786088860898609086091860928609386094860958609686097860988609986100861018610286103861048610586106861078610886109861108611186112861138611486115861168611786118861198612086121861228612386124861258612686127861288612986130861318613286133861348613586136861378613886139861408614186142861438614486145861468614786148861498615086151861528615386154861558615686157861588615986160861618616286163861648616586166861678616886169861708617186172861738617486175861768617786178861798618086181861828618386184861858618686187861888618986190861918619286193861948619586196861978619886199862008620186202862038620486205862068620786208862098621086211862128621386214862158621686217862188621986220862218622286223862248622586226862278622886229862308623186232862338623486235862368623786238862398624086241862428624386244862458624686247862488624986250862518625286253862548625586256862578625886259862608626186262862638626486265862668626786268862698627086271862728627386274862758627686277862788627986280862818628286283862848628586286862878628886289862908629186292862938629486295862968629786298862998630086301863028630386304863058630686307863088630986310863118631286313863148631586316863178631886319863208632186322863238632486325863268632786328863298633086331863328633386334863358633686337863388633986340863418634286343863448634586346863478634886349863508635186352863538635486355863568635786358863598636086361863628636386364863658636686367863688636986370863718637286373863748637586376863778637886379863808638186382863838638486385863868638786388863898639086391863928639386394863958639686397863988639986400864018640286403864048640586406864078640886409864108641186412864138641486415864168641786418864198642086421864228642386424864258642686427864288642986430864318643286433864348643586436864378643886439864408644186442864438644486445864468644786448864498645086451864528645386454864558645686457864588645986460864618646286463864648646586466864678646886469864708647186472864738647486475864768647786478864798648086481864828648386484864858648686487864888648986490864918649286493864948649586496864978649886499865008650186502865038650486505865068650786508865098651086511865128651386514865158651686517865188651986520865218652286523865248652586526865278652886529865308653186532865338653486535865368653786538865398654086541865428654386544865458654686547865488654986550865518655286553865548655586556865578655886559865608656186562865638656486565865668656786568865698657086571865728657386574865758657686577865788657986580865818658286583865848658586586865878658886589865908659186592865938659486595865968659786598865998660086601866028660386604866058660686607866088660986610866118661286613866148661586616866178661886619866208662186622866238662486625866268662786628866298663086631866328663386634866358663686637866388663986640866418664286643866448664586646866478664886649866508665186652866538665486655866568665786658866598666086661866628666386664866658666686667866688666986670866718667286673866748667586676866778667886679866808668186682866838668486685866868668786688866898669086691866928669386694866958669686697866988669986700867018670286703867048670586706867078670886709867108671186712867138671486715867168671786718867198672086721867228672386724867258672686727867288672986730867318673286733867348673586736867378673886739867408674186742867438674486745867468674786748867498675086751867528675386754867558675686757867588675986760867618676286763867648676586766867678676886769867708677186772867738677486775867768677786778867798678086781867828678386784867858678686787867888678986790867918679286793867948679586796867978679886799868008680186802868038680486805868068680786808868098681086811868128681386814868158681686817868188681986820868218682286823868248682586826868278682886829868308683186832868338683486835868368683786838868398684086841868428684386844868458684686847868488684986850868518685286853868548685586856868578685886859868608686186862868638686486865868668686786868868698687086871868728687386874868758687686877868788687986880868818688286883868848688586886868878688886889868908689186892868938689486895868968689786898868998690086901869028690386904869058690686907869088690986910869118691286913869148691586916869178691886919869208692186922869238692486925869268692786928869298693086931869328693386934869358693686937869388693986940869418694286943869448694586946869478694886949869508695186952869538695486955869568695786958869598696086961869628696386964869658696686967869688696986970869718697286973869748697586976869778697886979869808698186982869838698486985869868698786988869898699086991869928699386994869958699686997869988699987000870018700287003870048700587006870078700887009870108701187012870138701487015870168701787018870198702087021870228702387024870258702687027870288702987030870318703287033870348703587036870378703887039870408704187042870438704487045870468704787048870498705087051870528705387054870558705687057870588705987060870618706287063870648706587066870678706887069870708707187072870738707487075870768707787078870798708087081870828708387084870858708687087870888708987090870918709287093870948709587096870978709887099871008710187102871038710487105871068710787108871098711087111871128711387114871158711687117871188711987120871218712287123871248712587126871278712887129871308713187132871338713487135871368713787138871398714087141871428714387144871458714687147871488714987150871518715287153871548715587156871578715887159871608716187162871638716487165871668716787168871698717087171871728717387174871758717687177871788717987180871818718287183871848718587186871878718887189871908719187192871938719487195871968719787198871998720087201872028720387204872058720687207872088720987210872118721287213872148721587216872178721887219872208722187222872238722487225872268722787228872298723087231872328723387234872358723687237872388723987240872418724287243872448724587246872478724887249872508725187252872538725487255872568725787258872598726087261872628726387264872658726687267872688726987270872718727287273872748727587276872778727887279872808728187282872838728487285872868728787288872898729087291872928729387294872958729687297872988729987300873018730287303873048730587306873078730887309873108731187312873138731487315873168731787318873198732087321873228732387324873258732687327873288732987330873318733287333873348733587336873378733887339873408734187342873438734487345873468734787348873498735087351873528735387354873558735687357873588735987360873618736287363873648736587366873678736887369873708737187372873738737487375873768737787378873798738087381873828738387384873858738687387873888738987390873918739287393873948739587396873978739887399874008740187402874038740487405874068740787408874098741087411874128741387414874158741687417874188741987420874218742287423874248742587426874278742887429874308743187432874338743487435874368743787438874398744087441874428744387444874458744687447874488744987450874518745287453874548745587456874578745887459874608746187462874638746487465874668746787468874698747087471874728747387474874758747687477874788747987480874818748287483874848748587486874878748887489874908749187492874938749487495874968749787498874998750087501875028750387504875058750687507875088750987510875118751287513875148751587516875178751887519875208752187522875238752487525875268752787528875298753087531875328753387534875358753687537875388753987540875418754287543875448754587546875478754887549875508755187552875538755487555875568755787558875598756087561875628756387564875658756687567875688756987570875718757287573875748757587576875778757887579875808758187582875838758487585875868758787588875898759087591875928759387594875958759687597875988759987600876018760287603876048760587606876078760887609876108761187612876138761487615876168761787618876198762087621876228762387624876258762687627876288762987630876318763287633876348763587636876378763887639876408764187642876438764487645876468764787648876498765087651876528765387654876558765687657876588765987660876618766287663876648766587666876678766887669876708767187672876738767487675876768767787678876798768087681876828768387684876858768687687876888768987690876918769287693876948769587696876978769887699877008770187702877038770487705877068770787708877098771087711877128771387714877158771687717877188771987720877218772287723877248772587726877278772887729877308773187732877338773487735877368773787738877398774087741877428774387744877458774687747877488774987750877518775287753877548775587756877578775887759877608776187762877638776487765877668776787768877698777087771877728777387774877758777687777877788777987780877818778287783877848778587786877878778887789877908779187792877938779487795877968779787798877998780087801878028780387804878058780687807878088780987810878118781287813878148781587816878178781887819878208782187822878238782487825878268782787828878298783087831878328783387834878358783687837878388783987840878418784287843878448784587846878478784887849878508785187852878538785487855878568785787858878598786087861878628786387864878658786687867878688786987870878718787287873878748787587876878778787887879878808788187882878838788487885878868788787888878898789087891878928789387894878958789687897878988789987900879018790287903879048790587906879078790887909879108791187912879138791487915879168791787918879198792087921879228792387924879258792687927879288792987930879318793287933879348793587936879378793887939879408794187942879438794487945879468794787948879498795087951879528795387954879558795687957879588795987960879618796287963879648796587966879678796887969879708797187972879738797487975879768797787978879798798087981879828798387984879858798687987879888798987990879918799287993879948799587996879978799887999880008800188002880038800488005880068800788008880098801088011880128801388014880158801688017880188801988020880218802288023880248802588026880278802888029880308803188032880338803488035880368803788038880398804088041880428804388044880458804688047880488804988050880518805288053880548805588056880578805888059880608806188062880638806488065880668806788068880698807088071880728807388074880758807688077880788807988080880818808288083880848808588086880878808888089880908809188092880938809488095880968809788098880998810088101881028810388104881058810688107881088810988110881118811288113881148811588116881178811888119881208812188122881238812488125881268812788128881298813088131881328813388134881358813688137881388813988140881418814288143881448814588146881478814888149881508815188152881538815488155881568815788158881598816088161881628816388164881658816688167881688816988170881718817288173881748817588176881778817888179881808818188182881838818488185881868818788188881898819088191881928819388194881958819688197881988819988200882018820288203882048820588206882078820888209882108821188212882138821488215882168821788218882198822088221882228822388224882258822688227882288822988230882318823288233882348823588236882378823888239882408824188242882438824488245882468824788248882498825088251882528825388254882558825688257882588825988260882618826288263882648826588266882678826888269882708827188272882738827488275882768827788278882798828088281882828828388284882858828688287882888828988290882918829288293882948829588296882978829888299883008830188302883038830488305883068830788308883098831088311883128831388314883158831688317883188831988320883218832288323883248832588326883278832888329883308833188332883338833488335883368833788338883398834088341883428834388344883458834688347883488834988350883518835288353883548835588356883578835888359883608836188362883638836488365883668836788368883698837088371883728837388374883758837688377883788837988380883818838288383883848838588386883878838888389883908839188392883938839488395883968839788398883998840088401884028840388404884058840688407884088840988410884118841288413884148841588416884178841888419884208842188422884238842488425884268842788428884298843088431884328843388434884358843688437884388843988440884418844288443884448844588446884478844888449884508845188452884538845488455884568845788458884598846088461884628846388464884658846688467884688846988470884718847288473884748847588476884778847888479884808848188482884838848488485884868848788488884898849088491884928849388494884958849688497884988849988500885018850288503885048850588506885078850888509885108851188512885138851488515885168851788518885198852088521885228852388524885258852688527885288852988530885318853288533885348853588536885378853888539885408854188542885438854488545885468854788548885498855088551885528855388554885558855688557885588855988560885618856288563885648856588566885678856888569885708857188572885738857488575885768857788578885798858088581885828858388584885858858688587885888858988590885918859288593885948859588596885978859888599886008860188602886038860488605886068860788608886098861088611886128861388614886158861688617886188861988620886218862288623886248862588626886278862888629886308863188632886338863488635886368863788638886398864088641886428864388644886458864688647886488864988650886518865288653886548865588656886578865888659886608866188662886638866488665886668866788668886698867088671886728867388674886758867688677886788867988680886818868288683886848868588686886878868888689886908869188692886938869488695886968869788698886998870088701887028870388704887058870688707887088870988710887118871288713887148871588716887178871888719887208872188722887238872488725887268872788728887298873088731887328873388734887358873688737887388873988740887418874288743887448874588746887478874888749887508875188752887538875488755887568875788758887598876088761887628876388764887658876688767887688876988770887718877288773887748877588776887778877888779887808878188782887838878488785887868878788788887898879088791887928879388794887958879688797887988879988800888018880288803888048880588806888078880888809888108881188812888138881488815888168881788818888198882088821888228882388824888258882688827888288882988830888318883288833888348883588836888378883888839888408884188842888438884488845888468884788848888498885088851888528885388854888558885688857888588885988860888618886288863888648886588866888678886888869888708887188872888738887488875888768887788878888798888088881888828888388884888858888688887888888888988890888918889288893888948889588896888978889888899889008890188902889038890488905889068890788908889098891088911889128891388914889158891688917889188891988920889218892288923889248892588926889278892888929889308893188932889338893488935889368893788938889398894088941889428894388944889458894688947889488894988950889518895288953889548895588956889578895888959889608896188962889638896488965889668896788968889698897088971889728897388974889758897688977889788897988980889818898288983889848898588986889878898888989889908899188992889938899488995889968899788998889998900089001890028900389004890058900689007890088900989010890118901289013890148901589016890178901889019890208902189022890238902489025890268902789028890298903089031890328903389034890358903689037890388903989040890418904289043890448904589046890478904889049890508905189052890538905489055890568905789058890598906089061890628906389064890658906689067890688906989070890718907289073890748907589076890778907889079890808908189082890838908489085890868908789088890898909089091890928909389094890958909689097890988909989100891018910289103891048910589106891078910889109891108911189112891138911489115891168911789118891198912089121891228912389124891258912689127891288912989130891318913289133891348913589136891378913889139891408914189142891438914489145891468914789148891498915089151891528915389154891558915689157891588915989160891618916289163891648916589166891678916889169891708917189172891738917489175891768917789178891798918089181891828918389184891858918689187891888918989190891918919289193891948919589196891978919889199892008920189202892038920489205892068920789208892098921089211892128921389214892158921689217892188921989220892218922289223892248922589226892278922889229892308923189232892338923489235892368923789238892398924089241892428924389244892458924689247892488924989250892518925289253892548925589256892578925889259892608926189262892638926489265892668926789268892698927089271892728927389274892758927689277892788927989280892818928289283892848928589286892878928889289892908929189292892938929489295892968929789298892998930089301893028930389304893058930689307893088930989310893118931289313893148931589316893178931889319893208932189322893238932489325893268932789328893298933089331893328933389334893358933689337893388933989340893418934289343893448934589346893478934889349893508935189352893538935489355893568935789358893598936089361893628936389364893658936689367893688936989370893718937289373893748937589376893778937889379893808938189382893838938489385893868938789388893898939089391893928939389394893958939689397893988939989400894018940289403894048940589406894078940889409894108941189412894138941489415894168941789418894198942089421894228942389424894258942689427894288942989430894318943289433894348943589436894378943889439894408944189442894438944489445894468944789448894498945089451894528945389454894558945689457894588945989460894618946289463894648946589466894678946889469894708947189472894738947489475894768947789478894798948089481894828948389484894858948689487894888948989490894918949289493894948949589496894978949889499895008950189502895038950489505895068950789508895098951089511895128951389514895158951689517895188951989520895218952289523895248952589526895278952889529895308953189532895338953489535895368953789538895398954089541895428954389544895458954689547895488954989550895518955289553895548955589556895578955889559895608956189562895638956489565895668956789568895698957089571895728957389574895758957689577895788957989580895818958289583895848958589586895878958889589895908959189592895938959489595895968959789598895998960089601896028960389604896058960689607896088960989610896118961289613896148961589616896178961889619896208962189622896238962489625896268962789628896298963089631896328963389634896358963689637896388963989640896418964289643896448964589646896478964889649896508965189652896538965489655896568965789658896598966089661896628966389664896658966689667896688966989670896718967289673896748967589676896778967889679896808968189682896838968489685896868968789688896898969089691896928969389694896958969689697896988969989700897018970289703897048970589706897078970889709897108971189712897138971489715897168971789718897198972089721897228972389724897258972689727897288972989730897318973289733897348973589736897378973889739897408974189742897438974489745897468974789748897498975089751897528975389754897558975689757897588975989760897618976289763897648976589766897678976889769897708977189772897738977489775897768977789778897798978089781897828978389784897858978689787897888978989790897918979289793897948979589796897978979889799898008980189802898038980489805898068980789808898098981089811898128981389814898158981689817898188981989820898218982289823898248982589826898278982889829898308983189832898338983489835898368983789838898398984089841898428984389844898458984689847898488984989850898518985289853898548985589856898578985889859898608986189862898638986489865898668986789868898698987089871898728987389874898758987689877898788987989880898818988289883898848988589886898878988889889898908989189892898938989489895898968989789898898998990089901899028990389904899058990689907899088990989910899118991289913899148991589916899178991889919899208992189922899238992489925899268992789928899298993089931899328993389934899358993689937899388993989940899418994289943899448994589946899478994889949899508995189952899538995489955899568995789958899598996089961899628996389964899658996689967899688996989970899718997289973899748997589976899778997889979899808998189982899838998489985899868998789988899898999089991899928999389994899958999689997899988999990000900019000290003900049000590006900079000890009900109001190012900139001490015900169001790018900199002090021900229002390024900259002690027900289002990030900319003290033900349003590036900379003890039900409004190042900439004490045900469004790048900499005090051900529005390054900559005690057900589005990060900619006290063900649006590066900679006890069900709007190072900739007490075900769007790078900799008090081900829008390084900859008690087900889008990090900919009290093900949009590096900979009890099901009010190102901039010490105901069010790108901099011090111901129011390114901159011690117901189011990120901219012290123901249012590126901279012890129901309013190132901339013490135901369013790138901399014090141901429014390144901459014690147901489014990150901519015290153901549015590156901579015890159901609016190162901639016490165901669016790168901699017090171901729017390174901759017690177901789017990180901819018290183901849018590186901879018890189901909019190192901939019490195901969019790198901999020090201902029020390204902059020690207902089020990210902119021290213902149021590216902179021890219902209022190222902239022490225902269022790228902299023090231902329023390234902359023690237902389023990240902419024290243902449024590246902479024890249902509025190252902539025490255902569025790258902599026090261902629026390264902659026690267902689026990270902719027290273902749027590276902779027890279902809028190282902839028490285902869028790288902899029090291902929029390294902959029690297902989029990300903019030290303903049030590306903079030890309903109031190312903139031490315903169031790318903199032090321903229032390324903259032690327903289032990330903319033290333903349033590336903379033890339903409034190342903439034490345903469034790348903499035090351903529035390354903559035690357903589035990360903619036290363903649036590366903679036890369903709037190372903739037490375903769037790378903799038090381903829038390384903859038690387903889038990390903919039290393903949039590396903979039890399904009040190402904039040490405904069040790408904099041090411904129041390414904159041690417904189041990420904219042290423904249042590426904279042890429904309043190432904339043490435904369043790438904399044090441904429044390444904459044690447904489044990450904519045290453904549045590456904579045890459904609046190462904639046490465904669046790468904699047090471904729047390474904759047690477904789047990480904819048290483904849048590486904879048890489904909049190492904939049490495904969049790498904999050090501905029050390504905059050690507905089050990510905119051290513905149051590516905179051890519905209052190522905239052490525905269052790528905299053090531905329053390534905359053690537905389053990540905419054290543905449054590546905479054890549905509055190552905539055490555905569055790558905599056090561905629056390564905659056690567905689056990570905719057290573905749057590576905779057890579905809058190582905839058490585905869058790588905899059090591905929059390594905959059690597905989059990600906019060290603906049060590606906079060890609906109061190612906139061490615906169061790618906199062090621906229062390624906259062690627906289062990630906319063290633906349063590636906379063890639906409064190642906439064490645906469064790648906499065090651906529065390654906559065690657906589065990660906619066290663906649066590666906679066890669906709067190672906739067490675906769067790678906799068090681906829068390684906859068690687906889068990690906919069290693906949069590696906979069890699907009070190702907039070490705907069070790708907099071090711907129071390714907159071690717907189071990720907219072290723907249072590726907279072890729907309073190732907339073490735907369073790738907399074090741907429074390744907459074690747907489074990750907519075290753907549075590756907579075890759907609076190762907639076490765907669076790768907699077090771907729077390774907759077690777907789077990780907819078290783907849078590786907879078890789907909079190792907939079490795907969079790798907999080090801908029080390804908059080690807908089080990810908119081290813908149081590816908179081890819908209082190822908239082490825908269082790828908299083090831908329083390834908359083690837908389083990840908419084290843908449084590846908479084890849908509085190852908539085490855908569085790858908599086090861908629086390864908659086690867908689086990870908719087290873908749087590876908779087890879908809088190882908839088490885908869088790888908899089090891908929089390894908959089690897908989089990900909019090290903909049090590906909079090890909909109091190912909139091490915909169091790918909199092090921909229092390924909259092690927909289092990930909319093290933909349093590936909379093890939909409094190942909439094490945909469094790948909499095090951909529095390954909559095690957909589095990960909619096290963909649096590966909679096890969909709097190972909739097490975909769097790978909799098090981909829098390984909859098690987909889098990990909919099290993909949099590996909979099890999910009100191002910039100491005910069100791008910099101091011910129101391014910159101691017910189101991020910219102291023910249102591026910279102891029910309103191032910339103491035910369103791038910399104091041910429104391044910459104691047910489104991050910519105291053910549105591056910579105891059910609106191062910639106491065910669106791068910699107091071910729107391074910759107691077910789107991080910819108291083910849108591086910879108891089910909109191092910939109491095910969109791098910999110091101911029110391104911059110691107911089110991110911119111291113911149111591116911179111891119911209112191122911239112491125911269112791128911299113091131911329113391134911359113691137911389113991140911419114291143911449114591146911479114891149911509115191152911539115491155911569115791158911599116091161911629116391164911659116691167911689116991170911719117291173911749117591176911779117891179911809118191182911839118491185911869118791188911899119091191911929119391194911959119691197911989119991200912019120291203912049120591206912079120891209912109121191212912139121491215912169121791218912199122091221912229122391224912259122691227912289122991230912319123291233912349123591236912379123891239912409124191242912439124491245912469124791248912499125091251912529125391254912559125691257912589125991260912619126291263912649126591266912679126891269912709127191272912739127491275912769127791278912799128091281912829128391284912859128691287912889128991290912919129291293912949129591296912979129891299913009130191302913039130491305913069130791308913099131091311913129131391314913159131691317913189131991320913219132291323913249132591326913279132891329913309133191332913339133491335913369133791338913399134091341913429134391344913459134691347913489134991350913519135291353913549135591356913579135891359913609136191362913639136491365913669136791368913699137091371913729137391374913759137691377913789137991380913819138291383913849138591386913879138891389913909139191392913939139491395913969139791398913999140091401914029140391404914059140691407914089140991410914119141291413914149141591416914179141891419914209142191422914239142491425914269142791428914299143091431914329143391434914359143691437914389143991440914419144291443914449144591446914479144891449914509145191452914539145491455914569145791458914599146091461914629146391464914659146691467914689146991470914719147291473914749147591476914779147891479914809148191482914839148491485914869148791488914899149091491914929149391494914959149691497914989149991500915019150291503915049150591506915079150891509915109151191512915139151491515915169151791518915199152091521915229152391524915259152691527915289152991530915319153291533915349153591536915379153891539915409154191542915439154491545915469154791548915499155091551915529155391554915559155691557915589155991560915619156291563915649156591566915679156891569915709157191572915739157491575915769157791578915799158091581915829158391584915859158691587915889158991590915919159291593915949159591596915979159891599916009160191602916039160491605916069160791608916099161091611916129161391614916159161691617916189161991620916219162291623916249162591626916279162891629916309163191632916339163491635916369163791638916399164091641916429164391644916459164691647916489164991650916519165291653916549165591656916579165891659916609166191662916639166491665916669166791668916699167091671916729167391674916759167691677916789167991680916819168291683916849168591686916879168891689916909169191692916939169491695916969169791698916999170091701917029170391704917059170691707917089170991710917119171291713917149171591716917179171891719917209172191722917239172491725917269172791728917299173091731917329173391734917359173691737917389173991740917419174291743917449174591746917479174891749917509175191752917539175491755917569175791758917599176091761917629176391764917659176691767917689176991770917719177291773917749177591776917779177891779917809178191782917839178491785917869178791788917899179091791917929179391794917959179691797917989179991800918019180291803918049180591806918079180891809918109181191812918139181491815918169181791818918199182091821918229182391824918259182691827918289182991830918319183291833918349183591836918379183891839918409184191842918439184491845918469184791848918499185091851918529185391854918559185691857918589185991860918619186291863918649186591866918679186891869918709187191872918739187491875918769187791878918799188091881918829188391884918859188691887918889188991890918919189291893918949189591896918979189891899919009190191902919039190491905919069190791908919099191091911919129191391914919159191691917919189191991920919219192291923919249192591926919279192891929919309193191932919339193491935919369193791938919399194091941919429194391944919459194691947919489194991950919519195291953919549195591956919579195891959919609196191962919639196491965919669196791968919699197091971919729197391974919759197691977919789197991980919819198291983919849198591986919879198891989919909199191992919939199491995919969199791998919999200092001920029200392004920059200692007920089200992010920119201292013920149201592016920179201892019920209202192022920239202492025920269202792028920299203092031920329203392034920359203692037920389203992040920419204292043920449204592046920479204892049920509205192052920539205492055920569205792058920599206092061920629206392064920659206692067920689206992070920719207292073920749207592076920779207892079920809208192082920839208492085920869208792088920899209092091920929209392094920959209692097920989209992100921019210292103921049210592106921079210892109921109211192112921139211492115921169211792118921199212092121921229212392124921259212692127921289212992130921319213292133921349213592136921379213892139921409214192142921439214492145921469214792148921499215092151921529215392154921559215692157921589215992160921619216292163921649216592166921679216892169921709217192172921739217492175921769217792178921799218092181921829218392184921859218692187921889218992190921919219292193921949219592196921979219892199922009220192202922039220492205922069220792208922099221092211922129221392214922159221692217922189221992220922219222292223922249222592226922279222892229922309223192232922339223492235922369223792238922399224092241922429224392244922459224692247922489224992250922519225292253922549225592256922579225892259922609226192262922639226492265922669226792268922699227092271922729227392274922759227692277922789227992280922819228292283922849228592286922879228892289922909229192292922939229492295922969229792298922999230092301923029230392304923059230692307923089230992310923119231292313923149231592316923179231892319923209232192322923239232492325923269232792328923299233092331923329233392334923359233692337923389233992340923419234292343923449234592346923479234892349923509235192352923539235492355923569235792358923599236092361923629236392364923659236692367923689236992370923719237292373923749237592376923779237892379923809238192382923839238492385923869238792388923899239092391923929239392394923959239692397923989239992400924019240292403924049240592406924079240892409924109241192412924139241492415924169241792418924199242092421924229242392424924259242692427924289242992430924319243292433924349243592436924379243892439924409244192442924439244492445924469244792448924499245092451924529245392454924559245692457924589245992460924619246292463924649246592466924679246892469924709247192472924739247492475924769247792478924799248092481924829248392484924859248692487924889248992490924919249292493924949249592496924979249892499925009250192502925039250492505925069250792508925099251092511925129251392514925159251692517925189251992520925219252292523925249252592526925279252892529925309253192532925339253492535925369253792538925399254092541925429254392544925459254692547925489254992550925519255292553925549255592556925579255892559925609256192562925639256492565925669256792568925699257092571925729257392574925759257692577925789257992580925819258292583925849258592586925879258892589925909259192592925939259492595925969259792598925999260092601926029260392604926059260692607926089260992610926119261292613926149261592616926179261892619926209262192622926239262492625926269262792628926299263092631926329263392634926359263692637926389263992640926419264292643926449264592646926479264892649926509265192652926539265492655926569265792658926599266092661926629266392664926659266692667926689266992670926719267292673926749267592676926779267892679926809268192682926839268492685926869268792688926899269092691926929269392694926959269692697926989269992700927019270292703927049270592706927079270892709927109271192712927139271492715927169271792718927199272092721927229272392724927259272692727927289272992730927319273292733927349273592736927379273892739927409274192742927439274492745927469274792748927499275092751927529275392754927559275692757927589275992760927619276292763927649276592766927679276892769927709277192772927739277492775927769277792778927799278092781927829278392784927859278692787927889278992790927919279292793927949279592796927979279892799928009280192802928039280492805928069280792808928099281092811928129281392814928159281692817928189281992820928219282292823928249282592826928279282892829928309283192832928339283492835928369283792838928399284092841928429284392844928459284692847928489284992850928519285292853928549285592856928579285892859928609286192862928639286492865928669286792868928699287092871928729287392874928759287692877928789287992880928819288292883928849288592886928879288892889928909289192892928939289492895928969289792898928999290092901929029290392904929059290692907929089290992910929119291292913929149291592916929179291892919929209292192922929239292492925929269292792928929299293092931929329293392934929359293692937929389293992940929419294292943929449294592946929479294892949929509295192952929539295492955929569295792958929599296092961929629296392964929659296692967929689296992970929719297292973929749297592976929779297892979929809298192982929839298492985929869298792988929899299092991929929299392994929959299692997929989299993000930019300293003930049300593006930079300893009930109301193012930139301493015930169301793018930199302093021930229302393024930259302693027930289302993030930319303293033930349303593036930379303893039930409304193042930439304493045930469304793048930499305093051930529305393054930559305693057930589305993060930619306293063930649306593066930679306893069930709307193072930739307493075930769307793078930799308093081930829308393084930859308693087930889308993090930919309293093930949309593096930979309893099931009310193102931039310493105931069310793108931099311093111931129311393114931159311693117931189311993120931219312293123931249312593126931279312893129931309313193132931339313493135931369313793138931399314093141931429314393144931459314693147931489314993150931519315293153931549315593156931579315893159931609316193162931639316493165931669316793168931699317093171931729317393174931759317693177931789317993180931819318293183931849318593186931879318893189931909319193192931939319493195931969319793198931999320093201932029320393204932059320693207932089320993210932119321293213932149321593216932179321893219932209322193222932239322493225932269322793228932299323093231932329323393234932359323693237932389323993240932419324293243932449324593246932479324893249932509325193252932539325493255932569325793258932599326093261932629326393264932659326693267932689326993270932719327293273932749327593276932779327893279932809328193282932839328493285932869328793288932899329093291932929329393294932959329693297932989329993300933019330293303933049330593306933079330893309933109331193312933139331493315933169331793318933199332093321933229332393324933259332693327933289332993330933319333293333933349333593336933379333893339933409334193342933439334493345933469334793348933499335093351933529335393354933559335693357933589335993360933619336293363933649336593366933679336893369933709337193372933739337493375933769337793378933799338093381933829338393384933859338693387933889338993390933919339293393933949339593396933979339893399934009340193402934039340493405934069340793408934099341093411934129341393414934159341693417934189341993420934219342293423934249342593426934279342893429934309343193432934339343493435934369343793438934399344093441934429344393444934459344693447934489344993450934519345293453934549345593456934579345893459934609346193462934639346493465934669346793468934699347093471934729347393474934759347693477934789347993480934819348293483934849348593486934879348893489934909349193492934939349493495934969349793498934999350093501935029350393504935059350693507935089350993510935119351293513935149351593516935179351893519935209352193522935239352493525935269352793528935299353093531935329353393534935359353693537935389353993540935419354293543935449354593546935479354893549935509355193552935539355493555935569355793558935599356093561935629356393564935659356693567935689356993570935719357293573935749357593576935779357893579935809358193582935839358493585935869358793588935899359093591935929359393594935959359693597935989359993600936019360293603936049360593606936079360893609936109361193612936139361493615936169361793618936199362093621936229362393624936259362693627936289362993630936319363293633936349363593636936379363893639936409364193642936439364493645936469364793648936499365093651936529365393654936559365693657936589365993660936619366293663936649366593666936679366893669936709367193672936739367493675936769367793678936799368093681936829368393684936859368693687936889368993690936919369293693936949369593696936979369893699937009370193702937039370493705937069370793708937099371093711937129371393714937159371693717937189371993720937219372293723937249372593726937279372893729937309373193732937339373493735937369373793738937399374093741937429374393744937459374693747937489374993750937519375293753937549375593756937579375893759937609376193762937639376493765937669376793768937699377093771937729377393774937759377693777937789377993780937819378293783937849378593786937879378893789937909379193792937939379493795937969379793798937999380093801938029380393804938059380693807938089380993810938119381293813938149381593816938179381893819938209382193822938239382493825938269382793828938299383093831938329383393834938359383693837938389383993840938419384293843938449384593846938479384893849938509385193852938539385493855938569385793858938599386093861938629386393864938659386693867938689386993870938719387293873938749387593876938779387893879938809388193882938839388493885938869388793888938899389093891938929389393894938959389693897938989389993900939019390293903939049390593906939079390893909939109391193912939139391493915939169391793918939199392093921939229392393924939259392693927939289392993930939319393293933939349393593936939379393893939939409394193942939439394493945939469394793948939499395093951939529395393954939559395693957939589395993960939619396293963939649396593966939679396893969939709397193972939739397493975939769397793978939799398093981939829398393984939859398693987939889398993990939919399293993939949399593996939979399893999940009400194002940039400494005940069400794008940099401094011940129401394014940159401694017940189401994020940219402294023940249402594026940279402894029940309403194032940339403494035940369403794038940399404094041940429404394044940459404694047940489404994050940519405294053940549405594056940579405894059940609406194062940639406494065940669406794068940699407094071940729407394074940759407694077940789407994080940819408294083940849408594086940879408894089940909409194092940939409494095940969409794098940999410094101941029410394104941059410694107941089410994110941119411294113941149411594116941179411894119941209412194122941239412494125941269412794128941299413094131941329413394134941359413694137941389413994140941419414294143941449414594146941479414894149941509415194152941539415494155941569415794158941599416094161941629416394164941659416694167941689416994170941719417294173941749417594176941779417894179941809418194182941839418494185941869418794188941899419094191941929419394194941959419694197941989419994200942019420294203942049420594206942079420894209942109421194212942139421494215942169421794218942199422094221942229422394224942259422694227942289422994230942319423294233942349423594236942379423894239942409424194242942439424494245942469424794248942499425094251942529425394254942559425694257942589425994260942619426294263942649426594266942679426894269942709427194272942739427494275942769427794278942799428094281942829428394284942859428694287942889428994290942919429294293942949429594296942979429894299943009430194302943039430494305943069430794308943099431094311943129431394314943159431694317943189431994320943219432294323943249432594326943279432894329943309433194332943339433494335943369433794338943399434094341943429434394344943459434694347943489434994350943519435294353943549435594356943579435894359943609436194362943639436494365943669436794368943699437094371943729437394374943759437694377943789437994380943819438294383943849438594386943879438894389943909439194392943939439494395943969439794398943999440094401944029440394404944059440694407944089440994410944119441294413944149441594416944179441894419944209442194422944239442494425944269442794428944299443094431944329443394434944359443694437944389443994440944419444294443944449444594446944479444894449944509445194452944539445494455944569445794458944599446094461944629446394464944659446694467944689446994470944719447294473944749447594476944779447894479944809448194482944839448494485944869448794488944899449094491944929449394494944959449694497944989449994500945019450294503945049450594506945079450894509945109451194512945139451494515945169451794518945199452094521945229452394524945259452694527945289452994530945319453294533945349453594536945379453894539945409454194542945439454494545945469454794548945499455094551945529455394554945559455694557945589455994560945619456294563945649456594566945679456894569945709457194572945739457494575945769457794578945799458094581945829458394584945859458694587945889458994590945919459294593945949459594596945979459894599946009460194602946039460494605946069460794608946099461094611946129461394614946159461694617946189461994620946219462294623946249462594626946279462894629946309463194632946339463494635946369463794638946399464094641946429464394644946459464694647946489464994650946519465294653946549465594656946579465894659946609466194662946639466494665946669466794668946699467094671946729467394674946759467694677946789467994680946819468294683946849468594686946879468894689946909469194692946939469494695946969469794698946999470094701947029470394704947059470694707947089470994710947119471294713947149471594716947179471894719947209472194722947239472494725947269472794728947299473094731947329473394734947359473694737947389473994740947419474294743947449474594746947479474894749947509475194752947539475494755947569475794758947599476094761947629476394764947659476694767947689476994770947719477294773947749477594776947779477894779947809478194782947839478494785947869478794788947899479094791947929479394794947959479694797947989479994800948019480294803948049480594806948079480894809948109481194812948139481494815948169481794818948199482094821948229482394824948259482694827948289482994830948319483294833948349483594836948379483894839948409484194842948439484494845948469484794848948499485094851948529485394854948559485694857948589485994860948619486294863948649486594866948679486894869948709487194872948739487494875948769487794878948799488094881948829488394884948859488694887948889488994890948919489294893948949489594896948979489894899949009490194902949039490494905949069490794908949099491094911949129491394914949159491694917949189491994920949219492294923949249492594926949279492894929949309493194932949339493494935949369493794938949399494094941949429494394944949459494694947949489494994950949519495294953949549495594956949579495894959949609496194962949639496494965949669496794968949699497094971949729497394974949759497694977949789497994980949819498294983949849498594986949879498894989949909499194992949939499494995949969499794998949999500095001950029500395004950059500695007950089500995010950119501295013950149501595016950179501895019950209502195022950239502495025950269502795028950299503095031950329503395034950359503695037950389503995040950419504295043950449504595046950479504895049950509505195052950539505495055950569505795058950599506095061950629506395064950659506695067950689506995070950719507295073950749507595076950779507895079950809508195082950839508495085950869508795088950899509095091950929509395094950959509695097950989509995100951019510295103951049510595106951079510895109951109511195112951139511495115951169511795118951199512095121951229512395124951259512695127951289512995130951319513295133951349513595136951379513895139951409514195142951439514495145951469514795148951499515095151951529515395154951559515695157951589515995160951619516295163951649516595166951679516895169951709517195172951739517495175951769517795178951799518095181951829518395184951859518695187951889518995190951919519295193951949519595196951979519895199952009520195202952039520495205952069520795208952099521095211952129521395214952159521695217952189521995220952219522295223952249522595226952279522895229952309523195232952339523495235952369523795238952399524095241952429524395244952459524695247952489524995250952519525295253952549525595256952579525895259952609526195262952639526495265952669526795268952699527095271952729527395274952759527695277952789527995280952819528295283952849528595286952879528895289952909529195292952939529495295952969529795298952999530095301953029530395304953059530695307953089530995310953119531295313953149531595316953179531895319953209532195322953239532495325953269532795328953299533095331953329533395334953359533695337953389533995340953419534295343953449534595346953479534895349953509535195352953539535495355953569535795358953599536095361953629536395364953659536695367953689536995370953719537295373953749537595376953779537895379953809538195382953839538495385953869538795388953899539095391953929539395394953959539695397953989539995400954019540295403954049540595406954079540895409954109541195412954139541495415954169541795418954199542095421954229542395424954259542695427954289542995430954319543295433954349543595436954379543895439954409544195442954439544495445954469544795448954499545095451954529545395454954559545695457954589545995460954619546295463954649546595466954679546895469954709547195472954739547495475954769547795478954799548095481954829548395484954859548695487954889548995490954919549295493954949549595496954979549895499955009550195502955039550495505955069550795508955099551095511955129551395514955159551695517955189551995520955219552295523955249552595526955279552895529955309553195532955339553495535955369553795538955399554095541955429554395544955459554695547955489554995550955519555295553955549555595556955579555895559955609556195562955639556495565955669556795568955699557095571955729557395574955759557695577955789557995580955819558295583955849558595586955879558895589955909559195592955939559495595955969559795598955999560095601956029560395604956059560695607956089560995610956119561295613956149561595616956179561895619956209562195622956239562495625956269562795628956299563095631956329563395634956359563695637956389563995640956419564295643956449564595646956479564895649956509565195652956539565495655956569565795658956599566095661956629566395664956659566695667956689566995670956719567295673956749567595676956779567895679956809568195682956839568495685956869568795688956899569095691956929569395694956959569695697956989569995700957019570295703957049570595706957079570895709957109571195712957139571495715957169571795718957199572095721957229572395724957259572695727957289572995730957319573295733957349573595736957379573895739957409574195742957439574495745957469574795748957499575095751957529575395754957559575695757957589575995760957619576295763957649576595766957679576895769957709577195772957739577495775957769577795778957799578095781957829578395784957859578695787957889578995790957919579295793957949579595796957979579895799958009580195802958039580495805958069580795808958099581095811958129581395814958159581695817958189581995820958219582295823958249582595826958279582895829958309583195832958339583495835958369583795838958399584095841958429584395844958459584695847958489584995850958519585295853958549585595856958579585895859958609586195862958639586495865958669586795868958699587095871958729587395874958759587695877958789587995880958819588295883958849588595886958879588895889958909589195892958939589495895958969589795898958999590095901959029590395904959059590695907959089590995910959119591295913959149591595916959179591895919959209592195922959239592495925959269592795928959299593095931959329593395934959359593695937959389593995940959419594295943959449594595946959479594895949959509595195952959539595495955959569595795958959599596095961959629596395964959659596695967959689596995970959719597295973959749597595976959779597895979959809598195982959839598495985959869598795988959899599095991959929599395994959959599695997959989599996000960019600296003960049600596006960079600896009960109601196012960139601496015960169601796018960199602096021960229602396024960259602696027960289602996030960319603296033960349603596036960379603896039960409604196042960439604496045960469604796048960499605096051960529605396054960559605696057960589605996060960619606296063960649606596066960679606896069960709607196072960739607496075960769607796078960799608096081960829608396084960859608696087960889608996090960919609296093960949609596096960979609896099961009610196102961039610496105961069610796108961099611096111961129611396114961159611696117961189611996120961219612296123961249612596126961279612896129961309613196132961339613496135961369613796138961399614096141961429614396144961459614696147961489614996150961519615296153961549615596156961579615896159961609616196162961639616496165961669616796168961699617096171961729617396174961759617696177961789617996180961819618296183961849618596186961879618896189961909619196192961939619496195961969619796198961999620096201962029620396204962059620696207962089620996210962119621296213962149621596216962179621896219962209622196222962239622496225962269622796228962299623096231962329623396234962359623696237962389623996240962419624296243962449624596246962479624896249962509625196252962539625496255962569625796258962599626096261962629626396264962659626696267962689626996270962719627296273962749627596276962779627896279962809628196282962839628496285962869628796288962899629096291962929629396294962959629696297962989629996300963019630296303963049630596306963079630896309963109631196312963139631496315963169631796318963199632096321963229632396324963259632696327963289632996330963319633296333963349633596336963379633896339963409634196342963439634496345963469634796348963499635096351963529635396354963559635696357963589635996360963619636296363963649636596366963679636896369963709637196372963739637496375963769637796378963799638096381963829638396384963859638696387963889638996390963919639296393963949639596396963979639896399964009640196402964039640496405964069640796408964099641096411964129641396414964159641696417964189641996420964219642296423964249642596426964279642896429964309643196432964339643496435964369643796438964399644096441964429644396444964459644696447964489644996450964519645296453964549645596456964579645896459964609646196462964639646496465964669646796468964699647096471964729647396474964759647696477964789647996480964819648296483964849648596486964879648896489964909649196492964939649496495964969649796498964999650096501965029650396504965059650696507965089650996510965119651296513965149651596516965179651896519965209652196522965239652496525965269652796528965299653096531965329653396534965359653696537965389653996540965419654296543965449654596546965479654896549965509655196552965539655496555965569655796558965599656096561965629656396564965659656696567965689656996570965719657296573965749657596576965779657896579965809658196582965839658496585965869658796588965899659096591965929659396594965959659696597965989659996600966019660296603966049660596606966079660896609966109661196612966139661496615966169661796618966199662096621966229662396624966259662696627966289662996630966319663296633966349663596636966379663896639966409664196642966439664496645966469664796648966499665096651966529665396654966559665696657966589665996660966619666296663966649666596666966679666896669966709667196672966739667496675966769667796678966799668096681966829668396684966859668696687966889668996690966919669296693966949669596696966979669896699967009670196702967039670496705967069670796708967099671096711967129671396714967159671696717967189671996720967219672296723967249672596726967279672896729967309673196732967339673496735967369673796738967399674096741967429674396744967459674696747967489674996750967519675296753967549675596756967579675896759967609676196762967639676496765967669676796768967699677096771967729677396774967759677696777967789677996780967819678296783967849678596786967879678896789967909679196792967939679496795967969679796798967999680096801968029680396804968059680696807968089680996810968119681296813968149681596816968179681896819968209682196822968239682496825968269682796828968299683096831968329683396834968359683696837968389683996840968419684296843968449684596846968479684896849968509685196852968539685496855968569685796858968599686096861968629686396864968659686696867968689686996870968719687296873968749687596876968779687896879968809688196882968839688496885968869688796888968899689096891968929689396894968959689696897968989689996900969019690296903969049690596906969079690896909969109691196912969139691496915969169691796918969199692096921969229692396924969259692696927969289692996930969319693296933969349693596936969379693896939969409694196942969439694496945969469694796948969499695096951969529695396954969559695696957969589695996960969619696296963969649696596966969679696896969969709697196972969739697496975969769697796978969799698096981969829698396984969859698696987969889698996990969919699296993969949699596996969979699896999970009700197002970039700497005970069700797008970099701097011970129701397014970159701697017970189701997020970219702297023970249702597026970279702897029970309703197032970339703497035970369703797038970399704097041970429704397044970459704697047970489704997050970519705297053970549705597056970579705897059970609706197062970639706497065970669706797068970699707097071970729707397074970759707697077970789707997080970819708297083970849708597086970879708897089970909709197092970939709497095970969709797098970999710097101971029710397104971059710697107971089710997110971119711297113971149711597116971179711897119971209712197122971239712497125971269712797128971299713097131971329713397134971359713697137971389713997140971419714297143971449714597146971479714897149971509715197152971539715497155971569715797158971599716097161971629716397164971659716697167971689716997170971719717297173971749717597176971779717897179971809718197182971839718497185971869718797188971899719097191971929719397194971959719697197971989719997200972019720297203972049720597206972079720897209972109721197212972139721497215972169721797218972199722097221972229722397224972259722697227972289722997230972319723297233972349723597236972379723897239972409724197242972439724497245972469724797248972499725097251972529725397254972559725697257972589725997260972619726297263972649726597266972679726897269972709727197272972739727497275972769727797278972799728097281972829728397284972859728697287972889728997290972919729297293972949729597296972979729897299973009730197302973039730497305973069730797308973099731097311973129731397314973159731697317973189731997320973219732297323973249732597326973279732897329973309733197332973339733497335973369733797338973399734097341973429734397344973459734697347973489734997350973519735297353973549735597356973579735897359973609736197362973639736497365973669736797368973699737097371973729737397374973759737697377973789737997380973819738297383973849738597386973879738897389973909739197392973939739497395973969739797398973999740097401974029740397404974059740697407974089740997410974119741297413974149741597416974179741897419974209742197422974239742497425974269742797428974299743097431974329743397434974359743697437974389743997440974419744297443974449744597446974479744897449974509745197452974539745497455974569745797458974599746097461974629746397464974659746697467974689746997470974719747297473974749747597476974779747897479974809748197482974839748497485974869748797488974899749097491974929749397494974959749697497974989749997500975019750297503975049750597506975079750897509975109751197512975139751497515975169751797518975199752097521975229752397524975259752697527975289752997530975319753297533975349753597536975379753897539975409754197542975439754497545975469754797548975499755097551975529755397554975559755697557975589755997560975619756297563975649756597566975679756897569975709757197572975739757497575975769757797578975799758097581975829758397584975859758697587975889758997590975919759297593975949759597596975979759897599976009760197602976039760497605976069760797608976099761097611976129761397614976159761697617976189761997620976219762297623976249762597626976279762897629976309763197632976339763497635976369763797638976399764097641976429764397644976459764697647976489764997650976519765297653976549765597656976579765897659976609766197662976639766497665976669766797668976699767097671976729767397674976759767697677976789767997680976819768297683976849768597686976879768897689976909769197692976939769497695976969769797698976999770097701977029770397704977059770697707977089770997710977119771297713977149771597716977179771897719977209772197722977239772497725977269772797728977299773097731977329773397734977359773697737977389773997740977419774297743977449774597746977479774897749977509775197752977539775497755977569775797758977599776097761977629776397764977659776697767977689776997770977719777297773977749777597776977779777897779977809778197782977839778497785977869778797788977899779097791977929779397794977959779697797977989779997800978019780297803978049780597806978079780897809978109781197812978139781497815978169781797818978199782097821978229782397824978259782697827978289782997830978319783297833978349783597836978379783897839978409784197842978439784497845978469784797848978499785097851978529785397854978559785697857978589785997860978619786297863978649786597866978679786897869978709787197872978739787497875978769787797878978799788097881978829788397884978859788697887978889788997890978919789297893978949789597896978979789897899979009790197902979039790497905979069790797908979099791097911979129791397914979159791697917979189791997920979219792297923979249792597926979279792897929979309793197932979339793497935979369793797938979399794097941979429794397944979459794697947979489794997950979519795297953979549795597956979579795897959979609796197962979639796497965979669796797968979699797097971979729797397974979759797697977979789797997980979819798297983979849798597986979879798897989979909799197992979939799497995979969799797998979999800098001980029800398004980059800698007980089800998010980119801298013980149801598016980179801898019980209802198022980239802498025980269802798028980299803098031980329803398034980359803698037980389803998040980419804298043980449804598046980479804898049980509805198052980539805498055980569805798058980599806098061980629806398064980659806698067980689806998070980719807298073980749807598076980779807898079980809808198082980839808498085980869808798088980899809098091980929809398094980959809698097980989809998100981019810298103981049810598106981079810898109981109811198112981139811498115981169811798118981199812098121981229812398124981259812698127981289812998130981319813298133981349813598136981379813898139981409814198142981439814498145981469814798148981499815098151981529815398154981559815698157981589815998160981619816298163981649816598166981679816898169981709817198172981739817498175981769817798178981799818098181981829818398184981859818698187981889818998190981919819298193981949819598196981979819898199982009820198202982039820498205982069820798208982099821098211982129821398214982159821698217982189821998220982219822298223982249822598226982279822898229982309823198232982339823498235982369823798238982399824098241982429824398244982459824698247982489824998250982519825298253982549825598256982579825898259982609826198262982639826498265982669826798268982699827098271982729827398274982759827698277982789827998280982819828298283982849828598286982879828898289982909829198292982939829498295982969829798298982999830098301983029830398304983059830698307983089830998310983119831298313983149831598316983179831898319983209832198322983239832498325983269832798328983299833098331983329833398334983359833698337983389833998340983419834298343983449834598346983479834898349983509835198352983539835498355983569835798358983599836098361983629836398364983659836698367983689836998370983719837298373983749837598376983779837898379983809838198382983839838498385983869838798388983899839098391983929839398394983959839698397983989839998400984019840298403984049840598406984079840898409984109841198412984139841498415984169841798418984199842098421984229842398424984259842698427984289842998430984319843298433984349843598436984379843898439984409844198442984439844498445984469844798448984499845098451984529845398454984559845698457984589845998460984619846298463984649846598466984679846898469984709847198472984739847498475984769847798478984799848098481984829848398484984859848698487984889848998490984919849298493984949849598496984979849898499985009850198502985039850498505985069850798508985099851098511985129851398514985159851698517985189851998520985219852298523985249852598526985279852898529985309853198532985339853498535985369853798538985399854098541985429854398544985459854698547985489854998550985519855298553985549855598556985579855898559985609856198562985639856498565985669856798568985699857098571985729857398574985759857698577985789857998580985819858298583985849858598586985879858898589985909859198592985939859498595985969859798598985999860098601986029860398604986059860698607986089860998610986119861298613986149861598616986179861898619986209862198622986239862498625986269862798628986299863098631986329863398634986359863698637986389863998640986419864298643986449864598646986479864898649986509865198652986539865498655986569865798658986599866098661986629866398664986659866698667986689866998670986719867298673986749867598676986779867898679986809868198682986839868498685986869868798688986899869098691986929869398694986959869698697986989869998700987019870298703987049870598706987079870898709987109871198712987139871498715987169871798718987199872098721987229872398724987259872698727987289872998730987319873298733987349873598736987379873898739987409874198742987439874498745987469874798748987499875098751987529875398754987559875698757987589875998760987619876298763987649876598766987679876898769987709877198772987739877498775987769877798778987799878098781987829878398784987859878698787987889878998790987919879298793987949879598796987979879898799988009880198802988039880498805988069880798808988099881098811988129881398814988159881698817988189881998820988219882298823988249882598826988279882898829988309883198832988339883498835988369883798838988399884098841988429884398844988459884698847988489884998850988519885298853988549885598856988579885898859988609886198862988639886498865988669886798868988699887098871988729887398874988759887698877988789887998880988819888298883988849888598886988879888898889988909889198892988939889498895988969889798898988999890098901989029890398904989059890698907989089890998910989119891298913989149891598916989179891898919989209892198922989239892498925989269892798928989299893098931989329893398934989359893698937989389893998940989419894298943989449894598946989479894898949989509895198952989539895498955989569895798958989599896098961989629896398964989659896698967989689896998970989719897298973989749897598976989779897898979989809898198982989839898498985989869898798988989899899098991989929899398994989959899698997989989899999000990019900299003990049900599006990079900899009990109901199012990139901499015990169901799018990199902099021990229902399024990259902699027990289902999030990319903299033990349903599036990379903899039990409904199042990439904499045990469904799048990499905099051990529905399054990559905699057990589905999060990619906299063990649906599066990679906899069990709907199072990739907499075990769907799078990799908099081990829908399084990859908699087990889908999090990919909299093990949909599096990979909899099991009910199102991039910499105991069910799108991099911099111991129911399114991159911699117991189911999120991219912299123991249912599126991279912899129991309913199132991339913499135991369913799138991399914099141991429914399144991459914699147991489914999150991519915299153991549915599156991579915899159991609916199162991639916499165991669916799168991699917099171991729917399174991759917699177991789917999180991819918299183991849918599186991879918899189991909919199192991939919499195991969919799198991999920099201992029920399204992059920699207992089920999210992119921299213992149921599216992179921899219992209922199222992239922499225992269922799228992299923099231992329923399234992359923699237992389923999240992419924299243992449924599246992479924899249992509925199252992539925499255992569925799258992599926099261992629926399264992659926699267992689926999270992719927299273992749927599276992779927899279992809928199282992839928499285992869928799288992899929099291992929929399294992959929699297992989929999300993019930299303993049930599306993079930899309993109931199312993139931499315993169931799318993199932099321993229932399324993259932699327993289932999330993319933299333993349933599336993379933899339993409934199342993439934499345993469934799348993499935099351993529935399354993559935699357993589935999360993619936299363993649936599366993679936899369993709937199372993739937499375993769937799378993799938099381993829938399384993859938699387993889938999390993919939299393993949939599396993979939899399994009940199402994039940499405994069940799408994099941099411994129941399414994159941699417994189941999420994219942299423994249942599426994279942899429994309943199432994339943499435994369943799438994399944099441994429944399444994459944699447994489944999450994519945299453994549945599456994579945899459994609946199462994639946499465994669946799468994699947099471994729947399474994759947699477994789947999480994819948299483994849948599486994879948899489994909949199492994939949499495994969949799498994999950099501995029950399504995059950699507995089950999510995119951299513995149951599516995179951899519995209952199522995239952499525995269952799528995299953099531995329953399534995359953699537995389953999540995419954299543995449954599546995479954899549995509955199552995539955499555995569955799558995599956099561995629956399564995659956699567995689956999570995719957299573995749957599576995779957899579995809958199582995839958499585995869958799588995899959099591995929959399594995959959699597995989959999600996019960299603996049960599606996079960899609996109961199612996139961499615996169961799618996199962099621996229962399624996259962699627996289962999630996319963299633996349963599636996379963899639996409964199642996439964499645996469964799648996499965099651996529965399654996559965699657996589965999660996619966299663996649966599666996679966899669996709967199672996739967499675996769967799678996799968099681996829968399684996859968699687996889968999690996919969299693996949969599696996979969899699997009970199702997039970499705997069970799708997099971099711997129971399714997159971699717997189971999720997219972299723997249972599726997279972899729997309973199732997339973499735997369973799738997399974099741997429974399744997459974699747997489974999750997519975299753997549975599756997579975899759997609976199762997639976499765997669976799768997699977099771997729977399774997759977699777997789977999780997819978299783997849978599786997879978899789997909979199792997939979499795997969979799798997999980099801998029980399804998059980699807998089980999810998119981299813998149981599816998179981899819998209982199822998239982499825998269982799828998299983099831998329983399834998359983699837998389983999840998419984299843998449984599846998479984899849998509985199852998539985499855998569985799858998599986099861998629986399864998659986699867998689986999870998719987299873998749987599876998779987899879998809988199882998839988499885998869988799888998899989099891998929989399894998959989699897998989989999900999019990299903999049990599906999079990899909999109991199912999139991499915999169991799918999199992099921999229992399924999259992699927999289992999930999319993299933999349993599936999379993899939999409994199942999439994499945999469994799948999499995099951999529995399954999559995699957999589995999960999619996299963999649996599966999679996899969999709997199972999739997499975999769997799978999799998099981999829998399984999859998699987999889998999990999919999299993999949999599996999979999899999100000100001100002100003100004100005100006100007100008100009100010100011100012100013100014100015100016100017100018100019100020100021100022100023100024100025100026100027100028100029100030100031100032100033100034100035100036100037100038100039100040100041100042100043100044100045100046100047100048100049100050100051100052100053100054100055100056100057100058100059100060100061100062100063100064100065100066100067100068100069100070100071100072100073100074100075100076100077100078100079100080100081100082100083100084100085100086100087100088100089100090100091100092100093100094100095100096100097100098100099100100100101100102100103100104100105100106100107100108100109100110100111100112100113100114100115100116100117100118100119100120100121100122100123100124100125100126100127100128100129100130100131100132100133100134100135100136100137100138100139100140100141100142100143100144100145100146100147100148100149100150100151100152100153100154100155100156100157100158100159100160100161100162100163100164100165100166100167100168100169100170100171100172100173100174100175100176100177100178100179100180100181100182100183100184100185100186100187100188100189100190100191100192100193100194100195100196100197100198100199100200100201100202100203100204100205100206100207100208100209100210100211100212100213100214100215100216100217100218100219100220100221100222100223100224100225100226100227100228100229100230100231100232100233100234100235100236100237100238100239100240100241100242100243100244100245100246100247100248100249100250100251100252100253100254100255100256100257100258100259100260100261100262100263100264100265100266100267100268100269100270100271100272100273100274100275100276100277100278100279100280100281100282100283100284100285100286100287100288100289100290100291100292100293100294100295100296100297100298100299100300100301100302100303100304100305100306100307100308100309100310100311100312100313100314100315100316100317100318100319100320100321100322100323100324100325100326100327100328100329100330100331100332100333100334100335100336100337100338100339100340100341100342100343100344100345100346100347100348100349100350100351100352100353100354100355100356100357100358100359100360100361100362100363100364100365100366100367100368100369100370100371100372100373100374100375100376100377100378100379100380100381100382100383100384100385100386100387100388100389100390100391100392100393100394100395100396100397100398100399100400100401100402100403100404100405100406100407100408100409100410100411100412100413100414100415100416100417100418100419100420100421100422100423100424100425100426100427100428100429100430100431100432100433100434100435100436100437100438100439100440100441100442100443100444100445100446100447100448100449100450100451100452100453100454100455100456100457100458100459100460100461100462100463100464100465100466100467100468100469100470100471100472100473100474100475100476100477100478100479100480100481100482100483100484100485100486100487100488100489100490100491100492100493100494100495100496100497100498100499100500100501100502100503100504100505100506100507100508100509100510100511100512100513100514100515100516100517100518100519100520100521100522100523100524100525100526100527100528100529100530100531100532100533100534100535100536100537100538100539100540100541100542100543100544100545100546100547100548100549100550100551100552100553100554100555100556100557100558100559100560100561100562100563100564100565100566100567100568100569100570100571100572100573100574100575100576100577100578100579100580100581100582100583100584100585100586100587100588100589100590100591100592100593100594100595100596100597100598100599100600100601100602100603100604100605100606100607100608100609100610100611100612100613100614100615100616100617100618100619100620100621100622100623100624100625100626100627100628100629100630100631100632100633100634100635100636100637100638100639100640100641100642100643100644100645100646100647100648100649100650100651100652100653100654100655100656100657100658100659100660100661100662100663100664100665100666100667100668100669100670100671100672100673100674100675100676100677100678100679100680100681100682100683100684100685100686100687100688100689100690100691100692100693100694100695100696100697100698100699100700100701100702100703100704100705100706100707100708100709100710100711100712100713100714100715100716100717100718100719100720100721100722100723100724100725100726100727100728100729100730100731100732100733100734100735100736100737100738100739100740100741100742100743100744100745100746100747100748100749100750100751100752100753100754100755100756100757100758100759100760100761100762100763100764100765100766100767100768100769100770100771100772100773100774100775100776100777100778100779100780100781100782100783100784100785100786100787100788100789100790100791100792100793100794100795100796100797100798100799100800100801100802100803100804100805100806100807100808100809100810100811100812100813100814100815100816100817100818100819100820100821100822100823100824100825100826100827100828100829100830100831100832100833100834100835100836100837100838100839100840100841100842100843100844100845100846100847100848100849100850100851100852100853100854100855100856100857100858100859100860100861100862100863100864100865100866100867100868100869100870100871100872100873100874100875100876100877100878100879100880100881100882100883100884100885100886100887100888100889100890100891100892100893100894100895100896100897100898100899100900100901100902100903100904100905100906100907100908100909100910100911100912100913100914100915100916100917100918100919100920100921100922100923100924100925100926100927100928100929100930100931100932100933100934100935100936100937100938100939100940100941100942100943100944100945100946100947100948100949100950100951100952100953100954100955100956100957100958100959100960100961100962100963100964100965100966100967100968100969100970100971100972100973100974100975100976100977100978100979100980100981100982100983100984100985100986100987100988100989100990100991100992100993100994100995100996100997100998100999101000101001101002101003101004101005101006101007101008101009101010101011101012101013101014101015101016101017101018101019101020101021101022101023101024101025101026101027101028101029101030101031101032101033101034101035101036101037101038101039101040101041101042101043101044101045101046101047101048101049101050101051101052101053101054101055101056101057101058101059101060101061101062101063101064101065101066101067101068101069101070101071101072101073101074101075101076101077101078101079101080101081101082101083101084101085101086101087101088101089101090101091101092101093101094101095101096101097101098101099101100101101101102101103101104101105101106101107101108101109101110101111101112101113101114101115101116101117101118101119101120101121101122101123101124101125101126101127101128101129101130101131101132101133101134101135101136101137101138101139101140101141101142101143101144101145101146101147101148101149101150101151101152101153101154101155101156101157101158101159101160101161101162101163101164101165101166101167101168101169101170101171101172101173101174101175101176101177101178101179101180101181101182101183101184101185101186101187101188101189101190101191101192101193101194101195101196101197101198101199101200101201101202101203101204101205101206101207101208101209101210101211101212101213101214101215101216101217101218101219101220101221101222101223101224101225101226101227101228101229101230101231101232101233101234101235101236101237101238101239101240101241101242101243101244101245101246101247101248101249101250101251101252101253101254101255101256101257101258101259101260101261101262101263101264101265101266101267101268101269101270101271101272101273101274101275101276101277101278101279101280101281101282101283101284101285101286101287101288101289101290101291101292101293101294101295101296101297101298101299101300101301101302101303101304101305101306101307101308101309101310101311101312101313101314101315101316101317101318101319101320101321101322101323101324101325101326101327101328101329101330101331101332101333101334101335101336101337101338101339101340101341101342101343101344101345101346101347101348101349101350101351101352101353101354101355101356101357101358101359101360101361101362101363101364101365101366101367101368101369101370101371101372101373101374101375101376101377101378101379101380101381101382101383101384101385101386101387101388101389101390101391101392101393101394101395101396101397101398101399101400101401101402101403101404101405101406101407101408101409101410101411101412101413101414101415101416101417101418101419101420101421101422101423101424101425101426101427101428101429101430101431101432101433101434101435101436101437101438101439101440101441101442101443101444101445101446101447101448101449101450101451101452101453101454101455101456101457101458101459101460101461101462101463101464101465101466101467101468101469101470101471101472101473101474101475101476101477101478101479101480101481101482101483101484101485101486101487101488101489101490101491101492101493101494101495101496101497101498101499101500101501101502101503101504101505101506101507101508101509101510101511101512101513101514101515101516101517101518101519101520101521101522101523101524101525101526101527101528101529101530101531101532101533101534101535101536101537101538101539101540101541101542101543101544101545101546101547101548101549101550101551101552101553101554101555101556101557101558101559101560101561101562101563101564101565101566101567101568101569101570101571101572101573101574101575101576101577101578101579101580101581101582101583101584101585101586101587101588101589101590101591101592101593101594101595101596101597101598101599101600101601101602101603101604101605101606101607101608101609101610101611101612101613101614101615101616101617101618101619101620101621101622101623101624101625101626101627101628101629101630101631101632101633101634101635101636101637101638101639101640101641101642101643101644101645101646101647101648101649101650101651101652101653101654101655101656101657101658101659101660101661101662101663101664101665101666101667101668101669101670101671101672101673101674101675101676101677101678101679101680101681101682101683101684101685101686101687101688101689101690101691101692101693101694101695101696101697101698101699101700101701101702101703101704101705101706101707101708101709101710101711101712101713101714101715101716101717101718101719101720101721101722101723101724101725101726101727101728101729101730101731101732101733101734101735101736101737101738101739101740101741101742101743101744101745101746101747101748101749101750101751101752101753101754101755101756101757101758101759101760101761101762101763101764101765101766101767101768101769101770101771101772101773101774101775101776101777101778101779101780101781101782101783101784101785101786101787101788101789101790101791101792101793101794101795101796101797101798101799101800101801101802101803101804101805101806101807101808101809101810101811101812101813101814101815101816101817101818101819101820101821101822101823101824101825101826101827101828101829101830101831101832101833101834101835101836101837101838101839101840101841101842101843101844101845101846101847101848101849101850101851101852101853101854101855101856101857101858101859101860101861101862101863101864101865101866101867101868101869101870101871101872101873101874101875101876101877101878101879101880101881101882101883101884101885101886101887101888101889101890101891101892101893101894101895101896101897101898101899101900101901101902101903101904101905101906101907101908101909101910101911101912101913101914101915101916101917101918101919101920101921101922101923101924101925101926101927101928101929101930101931101932101933101934101935101936101937101938101939101940101941101942101943101944101945101946101947101948101949101950101951101952101953101954101955101956101957101958101959101960101961101962101963101964101965101966101967101968101969101970101971101972101973101974101975101976101977101978101979101980101981101982101983101984101985101986101987101988101989101990101991101992101993101994101995101996101997101998101999102000102001102002102003102004102005102006102007102008102009102010102011102012102013102014102015102016102017102018102019102020102021102022102023102024102025102026102027102028102029102030102031102032102033102034102035102036102037102038102039102040102041102042102043102044102045102046102047102048102049102050102051102052102053102054102055102056102057102058102059102060102061102062102063102064102065102066102067102068102069102070102071102072102073102074102075102076102077102078102079102080102081102082102083102084102085102086102087102088102089102090102091102092102093102094102095102096102097102098102099102100102101102102102103102104102105102106102107102108102109102110102111102112102113102114102115102116102117102118102119102120102121102122102123102124102125102126102127102128102129102130102131102132102133102134102135102136102137102138102139102140102141102142102143102144102145102146102147102148102149102150102151102152102153102154102155102156102157102158102159102160102161102162102163102164102165102166102167102168102169102170102171102172102173102174102175102176102177102178102179102180102181102182102183102184102185102186102187102188102189102190102191102192102193102194102195102196102197102198102199102200102201102202102203102204102205102206102207102208102209102210102211102212102213102214102215102216102217102218102219102220102221102222102223102224102225102226102227102228102229102230102231102232102233102234102235102236102237102238102239102240102241102242102243102244102245102246102247102248102249102250102251102252102253102254102255102256102257102258102259102260102261102262102263102264102265102266102267102268102269102270102271102272102273102274102275102276102277102278102279102280102281102282102283102284102285102286102287102288102289102290102291102292102293102294102295102296102297102298102299102300102301102302102303102304102305102306102307102308102309102310102311102312102313102314102315102316102317102318102319102320102321102322102323102324102325102326102327102328102329102330102331102332102333102334102335102336102337102338102339102340102341102342102343102344102345102346102347102348102349102350102351102352102353102354102355102356102357102358102359102360102361102362102363102364102365102366102367102368102369102370102371102372102373102374102375102376102377102378102379102380102381102382102383102384102385102386102387102388102389102390102391102392102393102394102395102396102397102398102399102400102401102402102403102404102405102406102407102408102409102410102411102412102413102414102415102416102417102418102419102420102421102422102423102424102425102426102427102428102429102430102431102432102433102434102435102436102437102438102439102440102441102442102443102444102445102446102447102448102449102450102451102452102453102454102455102456102457102458102459102460102461102462102463102464102465102466102467102468102469102470102471102472102473102474102475102476102477102478102479102480102481102482102483102484102485102486102487102488102489102490102491102492102493102494102495102496102497102498102499102500102501102502102503102504102505102506102507102508102509102510102511102512102513102514102515102516102517102518102519102520102521102522102523102524102525102526102527102528102529102530102531102532102533102534102535102536102537102538102539102540102541102542102543102544102545102546102547102548102549102550102551102552102553102554102555102556102557102558102559102560102561102562102563102564102565102566102567102568102569102570102571102572102573102574102575102576102577102578102579102580102581102582102583102584102585102586102587102588102589102590102591102592102593102594102595102596102597102598102599102600102601102602102603102604102605102606102607102608102609102610102611102612102613102614102615102616102617102618102619102620102621102622102623102624102625102626102627102628102629102630102631102632102633102634102635102636102637102638102639102640102641102642102643102644102645102646102647102648102649102650102651102652102653102654102655102656102657102658102659102660102661102662102663102664102665102666102667102668102669102670102671102672102673102674102675102676102677102678102679102680102681102682102683102684102685102686102687102688102689102690102691102692102693102694102695102696102697102698102699102700102701102702102703102704102705102706102707102708102709102710102711102712102713102714102715102716102717102718102719102720102721102722102723102724102725102726102727102728102729102730102731102732102733102734102735102736102737102738102739102740102741102742102743102744102745102746102747102748102749102750102751102752102753102754102755102756102757102758102759102760102761102762102763102764102765102766102767102768102769102770102771102772102773102774102775102776102777102778102779102780102781102782102783102784102785102786102787102788102789102790102791102792102793102794102795102796102797102798102799102800102801102802102803102804102805102806102807102808102809102810102811102812102813102814102815102816102817102818102819102820102821102822102823102824102825102826102827102828102829102830102831102832102833102834102835102836102837102838102839102840102841102842102843102844102845102846102847102848102849102850102851102852102853102854102855102856102857102858102859102860102861102862102863102864102865102866102867102868102869102870102871102872102873102874102875102876102877102878102879102880102881102882102883102884102885102886102887102888102889102890102891102892102893102894102895102896102897102898102899102900102901102902102903102904102905102906102907102908102909102910102911102912102913102914102915102916102917102918102919102920102921102922102923102924102925102926102927102928102929102930102931102932102933102934102935102936102937102938102939102940102941102942102943102944102945102946102947102948102949102950102951102952102953102954102955102956102957102958102959102960102961102962102963102964102965102966102967102968102969102970102971102972102973102974102975102976102977102978102979102980102981102982102983102984102985102986102987102988102989102990102991102992102993102994102995102996102997102998102999103000103001103002103003103004103005103006103007103008103009103010103011103012103013103014103015103016103017103018103019103020103021103022103023103024103025103026103027103028103029103030103031103032103033103034103035103036103037103038103039103040103041103042103043103044103045103046103047103048103049103050103051103052103053103054103055103056103057103058103059103060103061103062103063103064103065103066103067103068103069103070103071103072103073103074103075103076103077103078103079103080103081103082103083103084103085103086103087103088103089103090103091103092103093103094103095103096103097103098103099103100103101103102103103103104103105103106103107103108103109103110103111103112103113103114103115103116103117103118103119103120103121103122103123103124103125103126103127103128103129103130103131103132103133103134103135103136103137103138103139103140103141103142103143103144103145103146103147103148103149103150103151103152103153103154103155103156103157103158103159103160103161103162103163103164103165103166103167103168103169103170103171103172103173103174103175103176103177103178103179103180103181103182103183103184103185103186103187103188103189103190103191103192103193103194103195103196103197103198103199103200103201103202103203103204103205103206103207103208103209103210103211103212103213103214103215103216103217103218103219103220103221103222103223103224103225103226103227103228103229103230103231103232103233103234103235103236103237103238103239103240103241103242103243103244103245103246103247103248103249103250103251103252103253103254103255103256103257103258103259103260103261103262103263103264103265103266103267103268103269103270103271103272103273103274103275103276103277103278103279103280103281103282103283103284103285103286103287103288103289103290103291103292103293103294103295103296103297103298103299103300103301103302103303103304103305103306103307103308103309103310103311103312103313103314103315103316103317103318103319103320103321103322103323103324103325103326103327103328103329103330103331103332103333103334103335103336103337103338103339103340103341103342103343103344103345103346103347103348103349103350103351103352103353103354103355103356103357103358103359103360103361103362103363103364103365103366103367103368103369103370103371103372103373103374103375103376103377103378103379103380103381103382103383103384103385103386103387103388103389103390103391103392103393103394103395103396103397103398103399103400103401103402103403103404103405103406103407103408103409103410103411103412103413103414103415103416103417103418103419103420103421103422103423103424103425103426103427103428103429103430103431103432103433103434103435103436103437103438103439103440103441103442103443103444103445103446103447103448103449103450103451103452103453103454103455103456103457103458103459103460103461103462103463103464103465103466103467103468103469103470103471103472103473103474103475103476103477103478103479103480103481103482103483103484103485103486103487103488103489103490103491103492103493103494103495103496103497103498103499103500103501103502103503103504103505103506103507103508103509103510103511103512103513103514103515103516103517103518103519103520103521103522103523103524103525103526103527103528103529103530103531103532103533103534103535103536103537103538103539103540103541103542103543103544103545103546103547103548103549103550103551103552103553103554103555103556103557103558103559103560103561103562103563103564103565103566103567103568103569103570103571103572103573103574103575103576103577103578103579103580103581103582103583103584103585103586103587103588103589103590103591103592103593103594103595103596103597103598103599103600103601103602103603103604103605103606103607103608103609103610103611103612103613103614103615103616103617103618103619103620103621103622103623103624103625103626103627103628103629103630103631103632103633103634103635103636103637103638103639103640103641103642103643103644103645103646103647103648103649103650103651103652103653103654103655103656103657103658103659103660103661103662103663103664103665103666103667103668103669103670103671103672103673103674103675103676103677103678103679103680103681103682103683103684103685103686103687103688103689103690103691103692103693103694103695103696103697103698103699103700103701103702103703103704103705103706103707103708103709103710103711103712103713103714103715103716103717103718103719103720103721103722103723103724103725103726103727103728103729103730103731103732103733103734103735103736103737103738103739103740103741103742103743103744103745103746103747103748103749103750103751103752103753103754103755103756103757103758103759103760103761103762103763103764103765103766103767103768103769103770103771103772103773103774103775103776103777103778103779103780103781103782103783103784103785103786103787103788103789103790103791103792103793103794103795103796103797103798103799103800103801103802103803103804103805103806103807103808103809103810103811103812103813103814103815103816103817103818103819103820103821103822103823103824103825103826103827103828103829103830103831103832103833103834103835103836103837103838103839103840103841103842103843103844103845103846103847103848103849103850103851103852103853103854103855103856103857103858103859103860103861103862103863103864103865103866103867103868103869103870103871103872103873103874103875103876103877103878103879103880103881103882103883103884103885103886103887103888103889103890103891103892103893103894103895103896103897103898103899103900103901103902103903103904103905103906103907103908103909103910103911103912103913103914103915103916103917103918103919103920103921103922103923103924103925103926103927103928103929103930103931103932103933103934103935103936103937103938103939103940103941103942103943103944103945103946103947103948103949103950103951103952103953103954103955103956103957103958103959103960103961103962103963103964103965103966103967103968103969103970103971103972103973103974103975103976103977103978103979103980103981103982103983103984103985103986103987103988103989103990103991103992103993103994103995103996103997103998103999104000104001104002104003104004104005104006104007104008104009104010104011104012104013104014104015104016104017104018104019104020104021104022104023104024104025104026104027104028104029104030104031104032104033104034104035104036104037104038104039104040104041104042104043104044104045104046104047104048104049104050104051104052104053104054104055104056104057104058104059104060104061104062104063104064104065104066104067104068104069104070104071104072104073104074104075104076104077104078104079104080104081104082104083104084104085104086104087104088104089104090104091104092104093104094104095104096104097104098104099104100104101104102104103104104104105104106104107104108104109104110104111104112104113104114104115104116104117104118104119104120104121104122104123104124104125104126104127104128104129104130104131104132104133104134104135104136104137104138104139104140104141104142104143104144104145104146104147104148104149104150104151104152104153104154104155104156104157104158104159104160104161104162104163104164104165104166104167104168104169104170104171104172104173104174104175104176104177104178104179104180104181104182104183104184104185104186104187104188104189104190104191104192104193104194104195104196104197104198104199104200104201104202104203104204104205104206104207104208104209104210104211104212104213104214104215104216104217104218104219104220104221104222104223104224104225104226104227104228104229104230104231104232104233104234104235104236104237104238104239104240104241104242104243104244104245104246104247104248104249104250104251104252104253104254104255104256104257104258104259104260104261104262104263104264104265104266104267104268104269104270104271104272104273104274104275104276104277104278104279104280104281104282104283104284104285104286104287104288104289104290104291104292104293104294104295104296104297104298104299104300104301104302104303104304104305104306104307104308104309104310104311104312104313104314104315104316104317104318104319104320104321104322104323104324104325104326104327104328104329104330104331104332104333104334104335104336104337104338104339104340104341104342104343104344104345104346104347104348104349104350104351104352104353104354104355104356104357104358104359104360104361104362104363104364104365104366104367104368104369104370104371104372104373104374104375104376104377104378104379104380104381104382104383104384104385104386104387104388104389104390104391104392104393104394104395104396104397104398104399104400104401104402104403104404104405104406104407104408104409104410104411104412104413104414104415104416104417104418104419104420104421104422104423104424104425104426104427104428104429104430104431104432104433104434104435104436104437104438104439104440104441104442104443104444104445104446104447104448104449104450104451104452104453104454104455104456104457104458104459104460104461104462104463104464104465104466104467104468104469104470104471104472104473104474104475104476104477104478104479104480104481104482104483104484104485104486104487104488104489104490104491104492104493104494104495104496104497104498104499104500104501104502104503104504104505104506104507104508104509104510104511104512104513104514104515104516104517104518104519104520104521104522104523104524104525104526104527104528104529104530104531104532104533104534104535104536104537104538104539104540104541104542104543104544104545104546104547104548104549104550104551104552104553104554104555104556104557104558104559104560104561104562104563104564104565104566104567104568104569104570104571104572104573104574104575104576104577104578104579104580104581104582104583104584104585104586104587104588104589104590104591104592104593104594104595104596104597104598104599104600104601104602104603104604104605104606104607104608104609104610104611104612104613104614104615104616104617104618104619104620104621104622104623104624104625104626104627104628104629104630104631104632104633104634104635104636104637104638104639104640104641104642104643104644104645104646104647104648104649104650104651104652104653104654104655104656104657104658104659104660104661104662104663104664104665104666104667104668104669104670104671104672104673104674104675104676104677104678104679104680104681104682104683104684104685104686104687104688104689104690104691104692104693104694104695104696104697104698104699104700104701104702104703104704104705104706104707104708104709104710104711104712104713104714104715104716104717104718104719104720104721104722104723104724104725104726104727104728104729104730104731104732104733104734104735104736104737104738104739104740104741104742104743104744104745104746104747104748104749104750104751104752104753104754104755104756104757104758104759104760104761104762104763104764104765104766104767104768104769104770104771104772104773104774104775104776104777104778104779104780104781104782104783104784104785104786104787104788104789104790104791104792104793104794104795104796104797104798104799104800104801104802104803104804104805104806104807104808104809104810104811104812104813104814104815104816104817104818104819104820104821104822104823104824104825104826104827104828104829104830104831104832104833104834104835104836104837104838104839104840104841104842104843104844104845104846104847104848104849104850104851104852104853104854104855104856104857104858104859104860104861104862104863104864104865104866104867104868104869104870104871104872104873104874104875104876104877104878104879104880104881104882104883104884104885104886104887104888104889104890104891104892104893104894104895104896104897104898104899104900104901104902104903104904104905104906104907104908104909104910104911104912104913104914104915104916104917104918104919104920104921104922104923104924104925104926104927104928104929104930104931104932104933104934104935104936104937104938104939104940104941104942104943104944104945104946104947104948104949104950104951104952104953104954104955104956104957104958104959104960104961104962104963104964104965104966104967104968104969104970104971104972104973104974104975104976104977104978104979104980104981104982104983104984104985104986104987104988104989104990104991104992104993104994104995104996104997104998104999105000105001105002105003105004105005105006105007105008105009105010105011105012105013105014105015105016105017105018105019105020105021105022105023105024105025105026105027105028105029105030105031105032105033105034105035105036105037105038105039105040105041105042105043105044105045105046105047105048105049105050105051105052105053105054105055105056105057105058105059105060105061105062105063105064105065105066105067105068105069105070105071105072105073105074105075105076105077105078105079105080105081105082105083105084105085105086105087105088105089105090105091105092105093105094105095105096105097105098105099105100105101105102105103105104105105105106105107105108105109105110105111105112105113105114105115105116105117105118105119105120105121105122105123105124105125105126105127105128105129105130105131105132105133105134105135105136105137105138105139105140105141105142105143105144105145105146105147105148105149105150105151105152105153105154105155105156105157105158105159105160105161105162105163105164105165105166105167105168105169105170105171105172105173105174105175105176105177105178105179105180105181105182105183105184105185105186105187105188105189105190105191105192105193105194105195105196105197105198105199105200105201105202105203105204105205105206105207105208105209105210105211105212105213105214105215105216105217105218105219105220105221105222105223105224105225105226105227105228105229105230105231105232105233105234105235105236105237105238105239105240105241105242105243105244105245105246105247105248105249105250105251105252105253105254105255105256105257105258105259105260105261105262105263105264105265105266105267105268105269105270105271105272105273105274105275105276105277105278105279105280105281105282105283105284105285105286105287105288105289105290105291105292105293105294105295105296105297105298105299105300105301105302105303105304105305105306105307105308105309105310105311105312105313105314105315105316105317105318105319105320105321105322105323105324105325105326105327105328105329105330105331105332105333105334105335105336105337105338105339105340105341105342105343105344105345105346105347105348105349105350105351105352105353105354105355105356105357105358105359105360105361105362105363105364105365105366105367105368105369105370105371105372105373105374105375105376105377105378105379105380105381105382105383105384105385105386105387105388105389105390105391105392105393105394105395105396105397105398105399105400105401105402105403105404105405105406105407105408105409105410105411105412105413105414105415105416105417105418105419105420105421105422105423105424105425105426105427105428105429105430105431105432105433105434105435105436105437105438105439105440105441105442105443105444105445105446105447105448105449105450105451105452105453105454105455105456105457105458105459105460105461105462105463105464105465105466105467105468105469105470105471105472105473105474105475105476105477105478105479105480105481105482105483105484105485105486105487105488105489105490105491105492105493105494105495105496105497105498105499105500105501105502105503105504105505105506105507105508105509105510105511105512105513105514105515105516105517105518105519105520105521105522105523105524105525105526105527105528105529105530105531105532105533105534105535105536105537105538105539105540105541105542105543105544105545105546105547105548105549105550105551105552105553105554105555105556105557105558105559105560105561105562105563105564105565105566105567105568105569105570105571105572105573105574105575105576105577105578105579105580105581105582105583105584105585105586105587105588105589105590105591105592105593105594105595105596105597105598105599105600105601105602105603105604105605105606105607105608105609105610105611105612105613105614105615105616105617105618105619105620105621105622105623105624105625105626105627105628105629105630105631105632105633105634105635105636105637105638105639105640105641105642105643105644105645105646105647105648105649105650105651105652105653105654105655105656105657105658105659105660105661105662105663105664105665105666105667105668105669105670105671105672105673105674105675105676105677105678105679105680105681105682105683105684105685105686105687105688105689105690105691105692105693105694105695105696105697105698105699105700105701105702105703105704105705105706105707105708105709105710105711105712105713105714105715105716105717105718105719105720105721105722105723105724105725105726105727105728105729105730105731105732105733105734105735105736105737105738105739105740105741105742105743105744105745105746105747105748105749105750105751105752105753105754105755105756105757105758105759105760105761105762105763105764105765105766105767105768105769105770105771105772105773105774105775105776105777105778105779105780105781105782105783105784105785105786105787105788105789105790105791105792105793105794105795105796105797105798105799105800105801105802105803105804105805105806105807105808105809105810105811105812105813105814105815105816105817105818105819105820105821105822105823105824105825105826105827105828105829105830105831105832105833105834105835105836105837105838105839105840105841105842105843105844105845105846105847105848105849105850105851105852105853105854105855105856105857105858105859105860105861105862105863105864105865105866105867105868105869105870105871105872105873105874105875105876105877105878105879105880105881105882105883105884105885105886105887105888105889105890105891105892105893105894105895105896105897105898105899105900105901105902105903105904105905105906105907105908105909105910105911105912105913105914105915105916105917105918105919105920105921105922105923105924105925105926105927105928105929105930105931105932105933105934105935105936105937105938105939105940105941105942105943105944105945105946105947105948105949105950105951105952105953105954105955105956105957105958105959105960105961105962105963105964105965105966105967105968105969105970105971105972105973105974105975105976105977105978105979105980105981105982105983105984105985105986105987105988105989105990105991105992105993105994105995105996105997105998105999106000106001106002106003106004106005106006106007106008106009106010106011106012106013106014106015106016106017106018106019106020106021106022106023106024106025106026106027106028106029106030106031106032106033106034106035106036106037106038106039106040106041106042106043106044106045106046106047106048106049106050106051106052106053106054106055106056106057106058106059106060106061106062106063106064106065106066106067106068106069106070106071106072106073106074106075106076106077106078106079106080106081106082106083106084106085106086106087106088106089106090106091106092106093106094106095106096106097106098106099106100106101106102106103106104106105106106106107106108106109106110106111106112106113106114106115106116106117106118106119106120106121106122106123106124106125106126106127106128106129106130106131106132106133106134106135106136106137106138106139106140106141106142106143106144106145106146106147106148106149106150106151106152106153106154106155106156106157106158106159106160106161106162106163106164106165106166106167106168106169106170106171106172106173106174106175106176106177106178106179106180106181106182106183106184106185106186106187106188106189106190106191106192106193106194106195106196106197106198106199106200106201106202106203106204106205106206106207106208106209106210106211106212106213106214106215106216106217106218106219106220106221106222106223106224106225106226106227106228106229106230106231106232106233106234106235106236106237106238106239106240106241106242106243106244106245106246106247106248106249106250106251106252106253106254106255106256106257106258106259106260106261106262106263106264106265106266106267106268106269106270106271106272106273106274106275106276106277106278106279106280106281106282106283106284106285106286106287106288106289106290106291106292106293106294106295106296106297106298106299106300106301106302106303106304106305106306106307106308106309106310106311106312106313106314106315106316106317106318106319106320106321106322106323106324106325106326106327106328106329106330106331106332106333106334106335106336106337106338106339106340106341106342106343106344106345106346106347106348106349106350106351106352106353106354106355106356106357106358106359106360106361106362106363106364106365106366106367106368106369106370106371106372106373106374106375106376106377106378106379106380106381106382106383106384106385106386106387106388106389106390106391106392106393106394106395106396106397106398106399106400106401106402106403106404106405106406106407106408106409106410106411106412106413106414106415106416106417106418106419106420106421106422106423106424106425106426106427106428106429106430106431106432106433106434106435106436106437106438106439106440106441106442106443106444106445106446106447106448106449106450106451106452106453106454106455106456106457106458106459106460106461106462106463106464106465106466106467106468106469106470106471106472106473106474106475106476106477106478106479106480106481106482106483106484106485106486106487106488106489106490106491106492106493106494106495106496106497106498106499106500106501106502106503106504106505106506106507106508106509106510106511106512106513106514106515106516106517106518106519106520106521106522106523106524106525106526106527106528106529106530106531106532106533106534106535106536106537106538106539106540106541106542106543106544106545106546106547106548106549106550106551106552106553106554106555106556106557106558106559106560106561106562106563106564106565106566106567106568106569106570106571106572106573106574106575106576106577106578106579106580106581106582106583106584106585106586106587106588106589106590106591106592106593106594106595106596106597106598106599106600106601106602106603106604106605106606106607106608106609106610106611106612106613106614106615106616106617106618106619106620106621106622106623106624106625106626106627106628106629106630106631106632106633106634106635106636106637106638106639106640106641106642106643106644106645106646106647106648106649106650106651106652106653106654106655106656106657106658106659106660106661106662106663106664106665106666106667106668106669106670106671106672106673106674106675106676106677106678106679106680106681106682106683106684106685106686106687106688106689106690106691106692106693106694106695106696106697106698106699106700106701106702106703106704106705106706106707106708106709106710106711106712106713106714106715106716106717106718106719106720106721106722106723106724106725106726106727106728106729106730106731106732106733106734106735106736106737106738106739106740106741106742106743106744106745106746106747106748106749106750106751106752106753106754106755106756106757106758106759106760106761106762106763106764106765106766106767106768106769106770106771106772106773106774106775106776106777106778106779106780106781106782106783106784106785106786106787106788106789106790106791106792106793106794106795106796106797106798106799106800106801106802106803106804106805106806106807106808106809106810106811106812106813106814106815106816106817106818106819106820106821106822106823106824106825106826106827106828106829106830106831106832106833106834106835106836106837106838106839106840106841106842106843106844106845106846106847106848106849106850106851106852106853106854106855106856106857106858106859106860106861106862106863106864106865106866106867106868106869106870106871106872106873106874106875106876106877106878106879106880106881106882106883106884106885106886106887106888106889106890106891106892106893106894106895106896106897106898106899106900106901106902106903106904106905106906106907106908106909106910106911106912106913106914106915106916106917106918106919106920106921106922106923106924106925106926106927106928106929106930106931106932106933106934106935106936106937106938106939106940106941106942106943106944106945106946106947106948106949106950106951106952106953106954106955106956106957106958106959106960106961106962106963106964106965106966106967106968106969106970106971106972106973106974106975106976106977106978106979106980106981106982106983106984106985106986106987106988106989106990106991106992106993106994106995106996106997106998106999107000107001107002107003107004107005107006107007107008107009107010107011107012107013107014107015107016107017107018107019107020107021107022107023107024107025107026107027107028107029107030107031107032107033107034107035107036107037107038107039107040107041107042107043107044107045107046107047107048107049107050107051107052107053107054107055107056107057107058107059107060107061107062107063107064107065107066107067107068107069107070107071107072107073107074107075107076107077107078107079107080107081107082107083107084107085107086107087107088107089107090107091107092107093107094107095107096107097107098107099107100107101107102107103107104107105107106107107107108107109107110107111107112107113107114107115107116107117107118107119107120107121107122107123107124107125107126107127107128107129107130107131107132107133107134107135107136107137107138107139107140107141107142107143107144107145107146107147107148107149107150107151107152107153107154107155107156107157107158107159107160107161107162107163107164107165107166107167107168107169107170107171107172107173107174107175107176107177107178107179107180107181107182107183107184107185107186107187107188107189107190107191107192107193107194107195107196107197107198107199107200107201107202107203107204107205107206107207107208107209107210107211107212107213107214107215107216107217107218107219107220107221107222107223107224107225107226107227107228107229107230107231107232107233107234107235107236107237107238107239107240107241107242107243107244107245107246107247107248107249107250107251107252107253107254107255107256107257107258107259107260107261107262107263107264107265107266107267107268107269107270107271107272107273107274107275107276107277107278107279107280107281107282107283107284107285107286107287107288107289107290107291107292107293107294107295107296107297107298107299107300107301107302107303107304107305107306107307107308107309107310107311107312107313107314107315107316107317107318107319107320107321107322107323107324107325107326107327107328107329107330107331107332107333107334107335107336107337107338107339107340107341107342107343107344107345107346107347107348107349107350107351107352107353107354107355107356107357107358107359107360107361107362107363107364107365107366107367107368107369107370107371107372107373107374107375107376107377107378107379107380107381107382107383107384107385107386107387107388107389107390107391107392107393107394107395107396107397107398107399107400107401107402107403107404107405107406107407107408107409107410107411107412107413107414107415107416107417107418107419107420107421107422107423107424107425107426107427107428107429107430107431107432107433107434107435107436107437107438107439107440107441107442107443107444107445107446107447107448107449107450107451107452107453107454107455107456107457107458107459107460107461107462107463107464107465107466107467107468107469107470107471107472107473107474107475107476107477107478107479107480107481107482107483107484107485107486107487107488107489107490107491107492107493107494107495107496107497107498107499107500107501107502107503107504107505107506107507107508107509107510107511107512107513107514107515107516107517107518107519107520107521107522107523107524107525107526107527107528107529107530107531107532107533107534107535107536107537107538107539107540107541107542107543107544107545107546107547107548107549107550107551107552107553107554107555107556107557107558107559107560107561107562107563107564107565107566107567107568107569107570107571107572107573107574107575107576107577107578107579107580107581107582107583107584107585107586107587107588107589107590107591107592107593107594107595107596107597107598107599107600107601107602107603107604107605107606107607107608107609107610107611107612107613107614107615107616107617107618107619107620107621107622107623107624107625107626107627107628107629107630107631107632107633107634107635107636107637107638107639107640107641107642107643107644107645107646107647107648107649107650107651107652107653107654107655107656107657107658107659107660107661107662107663107664107665107666107667107668107669107670107671107672107673107674107675107676107677107678107679107680107681107682107683107684107685107686107687107688107689107690107691107692107693107694107695107696107697107698107699107700107701107702107703107704107705107706107707107708107709107710107711107712107713107714107715107716107717107718107719107720107721107722107723107724107725107726107727107728107729107730107731107732107733107734107735107736107737107738107739107740107741107742107743107744107745107746107747107748107749107750107751107752107753107754107755107756107757107758107759107760107761107762107763107764107765107766107767107768107769107770107771107772107773107774107775107776107777107778107779107780107781107782107783107784107785107786107787107788107789107790107791107792107793107794107795107796107797107798107799107800107801107802107803107804107805107806107807107808107809107810107811107812107813107814107815107816107817107818107819107820107821107822107823107824107825107826107827107828107829107830107831107832107833107834107835107836107837107838107839107840107841107842107843107844107845107846107847107848107849107850107851107852107853107854107855107856107857107858107859107860107861107862107863107864107865107866107867107868107869107870107871107872107873107874107875107876107877107878107879107880107881107882107883107884107885107886107887107888107889107890107891107892107893107894107895107896107897107898107899107900107901107902107903107904107905107906107907107908107909107910107911107912107913107914107915107916107917107918107919107920107921107922107923107924107925107926107927107928107929107930107931107932107933107934107935107936107937107938107939107940107941107942107943107944107945107946107947107948107949107950107951107952107953107954107955107956107957107958107959107960107961107962107963107964107965107966107967107968107969107970107971107972107973107974107975107976107977107978107979107980107981107982107983107984107985107986107987107988107989107990107991107992107993107994107995107996107997107998107999108000108001108002108003108004108005108006108007108008108009108010108011108012108013108014108015108016108017108018108019108020108021108022108023108024108025108026108027108028108029108030108031108032108033108034108035108036108037108038108039108040108041108042108043108044108045108046108047108048108049108050108051108052108053108054108055108056108057108058108059108060108061108062108063108064108065108066108067108068108069108070108071108072108073108074108075108076108077108078108079108080108081108082108083108084108085108086108087108088108089108090108091108092108093108094108095108096108097108098108099108100108101108102108103108104108105108106108107108108108109108110108111108112108113108114108115108116108117108118108119108120108121108122108123108124108125108126108127108128108129108130108131108132108133108134108135108136108137108138108139108140108141108142108143108144108145108146108147108148108149108150108151108152108153108154108155108156108157108158108159108160108161108162108163108164108165108166108167108168108169108170108171108172108173108174108175108176108177108178108179108180108181108182108183108184108185108186108187108188108189108190108191108192108193108194108195108196108197108198108199108200108201108202108203108204108205108206108207108208108209108210108211108212108213108214108215108216108217108218108219108220108221108222108223108224108225108226108227108228108229108230108231108232108233108234108235108236108237108238108239108240108241108242108243108244108245108246108247108248108249108250108251108252108253108254108255108256108257108258108259108260108261108262108263108264108265108266108267108268108269108270108271108272108273108274108275108276108277108278108279108280108281108282108283108284108285108286108287108288108289108290108291108292108293108294108295108296108297108298108299108300108301108302108303108304108305108306108307108308108309108310108311108312108313108314108315108316108317108318108319108320108321108322108323108324108325108326108327108328108329108330108331108332108333108334108335108336108337108338108339108340108341108342108343108344108345108346108347108348108349108350108351108352108353108354108355108356108357108358108359108360108361108362108363108364108365108366108367108368108369108370108371108372108373108374108375108376108377108378108379108380108381108382108383108384108385108386108387108388108389108390108391108392108393108394108395108396108397108398108399108400108401108402108403108404108405108406108407108408108409108410108411108412108413108414108415108416108417108418108419108420108421108422108423108424108425108426108427108428108429108430108431108432108433108434108435108436108437108438108439108440108441108442108443108444108445108446108447108448108449108450108451108452108453108454108455108456108457108458108459108460108461108462108463108464108465108466108467108468108469108470108471108472108473108474108475108476108477108478108479108480108481108482108483108484108485108486108487108488108489108490108491108492108493108494108495108496108497108498108499108500108501108502108503108504108505108506108507108508108509108510108511108512108513108514108515108516108517108518108519108520108521108522108523108524108525108526108527108528108529108530108531108532108533108534108535108536108537108538108539108540108541108542108543108544108545108546108547108548108549108550108551108552108553108554108555108556108557108558108559108560108561108562108563108564108565108566108567108568108569108570108571108572108573108574108575108576108577108578108579108580108581108582108583108584108585108586108587108588108589108590108591108592108593108594108595108596108597108598108599108600108601108602108603108604108605108606108607108608108609108610108611108612108613108614108615108616108617108618108619108620108621108622108623108624108625108626108627108628108629108630108631108632108633108634108635108636108637108638108639108640108641108642108643108644108645108646108647108648108649108650108651108652108653108654108655108656108657108658108659108660108661108662108663108664108665108666108667108668108669108670108671108672108673108674108675108676108677108678108679108680108681108682108683108684108685108686108687108688108689108690108691108692108693108694108695108696108697108698108699108700108701108702108703108704108705108706108707108708108709108710108711108712108713108714108715108716108717108718108719108720108721108722108723108724108725108726108727108728108729108730108731108732108733108734108735108736108737108738108739108740108741108742108743108744108745108746108747108748108749108750108751108752108753108754108755108756108757108758108759108760108761108762108763108764108765108766108767108768108769108770108771108772108773108774108775108776108777108778108779108780108781108782108783108784108785108786108787108788108789108790108791108792108793108794108795108796108797108798108799108800108801108802108803108804108805108806108807108808108809108810108811108812108813108814108815108816108817108818108819108820108821108822108823108824108825108826108827108828108829108830108831108832108833108834108835108836108837108838108839108840108841108842108843108844108845108846108847108848108849108850108851108852108853108854108855108856108857108858108859108860108861108862108863108864108865108866108867108868108869108870108871108872108873108874108875108876108877108878108879108880108881108882108883108884108885108886108887108888108889108890108891108892108893108894108895108896108897108898108899108900108901108902108903108904108905108906108907108908108909108910108911108912108913108914108915108916108917108918108919108920108921108922108923108924108925108926108927108928108929108930108931108932108933108934108935108936108937108938108939108940108941108942108943108944108945108946108947108948108949108950108951108952108953108954108955108956108957108958108959108960108961108962108963108964108965108966108967108968108969108970108971108972108973108974108975108976108977108978108979108980108981108982108983108984108985108986108987108988108989108990108991108992108993108994108995108996108997108998108999109000109001109002109003109004109005109006109007109008109009109010109011109012109013109014109015109016109017109018109019109020109021109022109023109024109025109026109027109028109029109030109031109032109033109034109035109036109037109038109039109040109041109042109043109044109045109046109047109048109049109050109051109052109053109054109055109056109057109058109059109060109061109062109063109064109065109066109067109068109069109070109071109072109073109074109075109076109077109078109079109080109081109082109083109084109085109086109087109088109089109090109091109092109093109094109095109096109097109098109099109100109101109102109103109104109105109106109107109108109109109110109111109112109113109114109115109116109117109118109119109120109121109122109123109124109125109126109127109128109129109130109131109132109133109134109135109136109137109138109139109140109141109142109143109144109145109146109147109148109149109150109151109152109153109154109155109156109157109158109159109160109161109162109163109164109165109166109167109168109169109170109171109172109173109174109175109176109177109178109179109180109181109182109183109184109185109186109187109188109189109190109191109192109193109194109195109196109197109198109199109200109201109202109203109204109205109206109207109208109209109210109211109212109213109214109215109216109217109218109219109220109221109222109223109224109225109226109227109228109229109230109231109232109233109234109235109236109237109238109239109240109241109242109243109244109245109246109247109248109249109250109251109252109253109254109255109256109257109258109259109260109261109262109263109264109265109266109267109268109269109270109271109272109273109274109275109276109277109278109279109280109281109282109283109284109285109286109287109288109289109290109291109292109293109294109295109296109297109298109299109300109301109302109303109304109305109306109307109308109309109310109311109312109313109314109315109316109317109318109319109320109321109322109323109324109325109326109327109328109329109330109331109332109333109334109335109336109337109338109339109340109341109342109343109344109345109346109347109348109349109350109351109352109353109354109355109356109357109358109359109360109361109362109363109364109365109366109367109368109369109370109371109372109373109374109375109376109377109378109379109380109381109382109383109384109385109386109387109388109389109390109391109392109393109394109395109396109397109398109399109400109401109402109403109404109405109406109407109408109409109410109411109412109413109414109415109416109417109418109419109420109421109422109423109424109425109426109427109428109429109430109431109432109433109434109435109436109437109438109439109440109441109442109443109444109445109446109447109448109449109450109451109452109453109454109455109456109457109458109459109460109461109462109463109464109465109466109467109468109469109470109471109472109473109474109475109476109477109478109479109480109481109482109483109484109485109486109487109488109489109490109491109492109493109494109495109496109497109498109499109500109501109502109503109504109505109506109507109508109509109510109511109512109513109514109515109516109517109518109519109520109521109522109523109524109525109526109527109528109529109530109531109532109533109534109535109536109537109538109539109540109541109542109543109544109545109546109547109548109549109550109551109552109553109554109555109556109557109558109559109560109561109562109563109564109565109566109567109568109569109570109571109572109573109574109575109576109577109578109579109580109581109582109583109584109585109586109587109588109589109590109591109592109593109594109595109596109597109598109599109600109601109602109603109604109605109606109607109608109609109610109611109612109613109614109615109616109617109618109619109620109621109622109623109624109625109626109627109628109629109630109631109632109633109634109635109636109637109638109639109640109641109642109643109644109645109646109647109648109649109650109651109652109653109654109655109656109657109658109659109660109661109662109663109664109665109666109667109668109669109670109671109672109673109674109675109676109677109678109679109680109681109682109683109684109685109686109687109688109689109690109691109692109693109694109695109696109697109698109699109700109701109702109703109704109705109706109707109708109709109710109711109712109713109714109715109716109717109718109719109720109721109722109723109724109725109726109727109728109729109730109731109732109733109734109735109736109737109738109739109740109741109742109743109744109745109746109747109748109749109750109751109752109753109754109755109756109757109758109759109760109761109762109763109764109765109766109767109768109769109770109771109772109773109774109775109776109777109778109779109780109781109782109783109784109785109786109787109788109789109790109791109792109793109794109795109796109797109798109799109800109801109802109803109804109805109806109807109808109809109810109811109812109813109814109815109816109817109818109819109820109821109822109823109824109825109826109827109828109829109830109831109832109833109834109835109836109837109838109839109840109841109842109843109844109845109846109847109848109849109850109851109852109853109854109855109856109857109858109859109860109861109862109863109864109865109866109867109868109869109870109871109872109873109874109875109876109877109878109879109880109881109882109883109884109885109886109887109888109889109890109891109892109893109894109895109896109897109898109899109900109901109902109903109904109905109906109907109908109909109910109911109912109913109914109915109916109917109918109919109920109921109922109923109924109925109926109927109928109929109930109931109932109933109934109935109936109937109938109939109940109941109942109943109944109945109946109947109948109949109950109951109952109953109954109955109956109957109958109959109960109961109962109963109964109965109966109967109968109969109970109971109972109973109974109975109976109977109978109979109980109981109982109983109984109985109986109987109988109989109990109991109992109993109994109995109996109997109998109999110000110001110002110003110004110005110006110007110008110009110010110011110012110013110014110015110016110017110018110019110020110021110022110023110024110025110026110027110028110029110030110031110032110033110034110035110036110037110038110039110040110041110042110043110044110045110046110047110048110049110050110051110052110053110054110055110056110057110058110059110060110061110062110063110064110065110066110067110068110069110070110071110072110073110074110075110076110077110078110079110080110081110082110083110084110085110086110087110088110089110090110091110092110093110094110095110096110097110098110099110100110101110102110103110104110105110106110107110108110109110110110111110112110113110114110115110116110117110118110119110120110121110122110123110124110125110126110127110128110129110130110131110132110133110134110135110136110137110138110139110140110141110142110143110144110145110146110147110148110149110150110151110152110153110154110155110156110157110158110159110160110161110162110163110164110165110166110167110168110169110170110171110172110173110174110175110176110177110178110179110180110181110182110183110184110185110186110187110188110189110190110191110192110193110194110195110196110197110198110199110200110201110202110203110204110205110206110207110208110209110210110211110212110213110214110215110216110217110218110219110220110221110222110223110224110225110226110227110228110229110230110231110232110233110234110235110236110237110238110239110240110241110242110243110244110245110246110247110248110249110250110251110252110253110254110255110256110257110258110259110260110261110262110263110264110265110266110267110268110269110270110271110272110273110274110275110276110277110278110279110280110281110282110283110284110285110286110287110288110289110290110291110292110293110294110295110296110297110298110299110300110301110302110303110304110305110306110307110308110309110310110311110312110313110314110315110316110317110318110319110320110321110322110323110324110325110326110327110328110329110330110331110332110333110334110335110336110337110338110339110340110341110342110343110344110345110346110347110348110349110350110351110352110353110354110355110356110357110358110359110360110361110362110363110364110365110366110367110368110369110370110371110372110373110374110375110376110377110378110379110380110381110382110383110384110385110386110387110388110389110390110391110392110393110394110395110396110397110398110399110400110401110402110403110404110405110406110407110408110409110410110411110412110413110414110415110416110417110418110419110420110421110422110423110424110425110426110427110428110429110430110431110432110433110434110435110436110437110438110439110440110441110442110443110444110445110446110447110448110449110450110451110452110453110454110455110456110457110458110459110460110461110462110463110464110465110466110467110468110469110470110471110472110473110474110475110476110477110478110479110480110481110482110483110484110485110486110487110488110489110490110491110492110493110494110495110496110497110498110499110500110501110502110503110504110505110506110507110508110509110510110511110512110513110514110515110516110517110518110519110520110521110522110523110524110525110526110527110528110529110530110531110532110533110534110535110536110537110538110539110540110541110542110543110544110545110546110547110548110549110550110551110552110553110554110555110556110557110558110559110560110561110562110563110564110565110566110567110568110569110570110571110572110573110574110575110576110577110578110579110580110581110582110583110584110585110586110587110588110589110590110591110592110593110594110595110596110597110598110599110600110601110602110603110604110605110606110607110608110609110610110611110612110613110614110615110616110617110618110619110620110621110622110623110624110625110626110627110628110629110630110631110632110633110634110635110636110637110638110639110640110641110642110643110644110645110646110647110648110649110650110651110652110653110654110655110656110657110658110659110660110661110662110663110664110665110666110667110668110669110670110671110672110673110674110675110676110677110678110679110680110681110682110683110684110685110686110687110688110689110690110691110692110693110694110695110696110697110698110699110700110701110702110703110704110705110706110707110708110709110710110711110712110713110714110715110716110717110718110719110720110721110722110723110724110725110726110727110728110729110730110731110732110733110734110735110736110737110738110739110740110741110742110743110744110745110746110747110748110749110750110751110752110753110754110755110756110757110758110759110760110761110762110763110764110765110766110767110768110769110770110771110772110773110774110775110776110777110778110779110780110781110782110783110784110785110786110787110788110789110790110791110792110793110794110795110796110797110798110799110800110801110802110803110804110805110806110807110808110809110810110811110812110813110814110815110816110817110818110819110820110821110822110823110824110825110826110827110828110829110830110831110832110833110834110835110836110837110838110839110840110841110842110843110844110845110846110847110848110849110850110851110852110853110854110855110856110857110858110859110860110861110862110863110864110865110866110867110868110869110870110871110872110873110874110875110876110877110878110879110880110881110882110883110884110885110886110887110888110889110890110891110892110893110894110895110896110897110898110899110900110901110902110903110904110905110906110907110908110909110910110911110912110913110914110915110916110917110918110919110920110921110922110923110924110925110926110927110928110929110930110931110932110933110934110935110936110937110938110939110940110941110942110943110944110945110946110947110948110949110950110951110952110953110954110955110956110957110958110959110960110961110962110963110964110965110966110967110968110969110970110971110972110973110974110975110976110977110978110979110980110981110982110983110984110985110986110987110988110989110990110991110992110993110994110995110996110997110998110999111000111001111002111003111004111005111006111007111008111009111010111011111012111013111014111015111016111017111018111019111020111021111022111023111024111025111026111027111028111029111030111031111032111033111034111035111036111037111038111039111040111041111042111043111044111045111046111047111048111049111050111051111052111053111054111055111056111057111058111059111060111061111062111063111064111065111066111067111068111069111070111071111072111073111074111075111076111077111078111079111080111081111082111083111084111085111086111087111088111089111090111091111092111093111094111095111096111097111098111099111100111101111102111103111104111105111106111107111108111109111110111111111112111113111114111115111116111117111118111119111120111121111122111123111124111125111126111127111128111129111130111131111132111133111134111135111136111137111138111139111140111141111142111143111144111145111146111147111148111149111150111151111152111153111154111155111156111157111158111159111160111161111162111163111164111165111166111167111168111169111170111171111172111173111174111175111176111177111178111179111180111181111182111183111184111185111186111187111188111189111190111191111192111193111194111195111196111197111198111199111200111201111202111203111204111205111206111207111208111209111210111211111212111213111214111215111216111217111218111219111220111221111222111223111224111225111226111227111228111229111230111231111232111233111234111235111236111237111238111239111240111241111242111243111244111245111246111247111248111249111250111251111252111253111254111255111256111257111258111259111260111261111262111263111264111265111266111267111268111269111270111271111272111273111274111275111276111277111278111279111280111281111282111283111284111285111286111287111288111289111290111291111292111293111294111295111296111297111298111299111300111301111302111303111304111305111306111307111308111309111310111311111312111313111314111315111316111317111318111319111320111321111322111323111324111325111326111327111328111329111330111331111332111333111334111335111336111337111338111339111340111341111342111343111344111345111346111347111348111349111350111351111352111353111354111355111356111357111358111359111360111361111362111363111364111365111366111367111368111369111370111371111372111373111374111375111376111377111378111379111380111381111382111383111384111385111386111387111388111389111390111391111392111393111394111395111396111397111398111399111400111401111402111403111404111405111406111407111408111409111410111411111412111413111414111415111416111417111418111419111420111421111422111423111424111425111426111427111428111429111430111431111432111433111434111435111436111437111438111439111440111441111442111443111444111445111446111447111448111449111450111451111452111453111454111455111456111457111458111459111460111461111462111463111464111465111466111467111468111469111470111471111472111473111474111475111476111477111478111479111480111481111482111483111484111485111486111487111488111489111490111491111492111493111494111495111496111497111498111499111500111501111502111503111504111505111506111507111508111509111510111511111512111513111514111515111516111517111518111519111520111521111522111523111524111525111526111527111528111529111530111531111532111533111534111535111536111537111538111539111540111541111542111543111544111545111546111547111548111549111550111551111552111553111554111555111556111557111558111559111560111561111562111563111564111565111566111567111568111569111570111571111572111573111574111575111576111577111578111579111580111581111582111583111584111585111586111587111588111589111590111591111592111593111594111595111596111597111598111599111600111601111602111603111604111605111606111607111608111609111610111611111612111613111614111615111616111617111618111619111620111621111622111623111624111625111626111627111628111629111630111631111632111633111634111635111636111637111638111639111640111641111642111643111644111645111646111647111648111649111650111651111652111653111654111655111656111657111658111659111660111661111662111663111664111665111666111667111668111669111670111671111672111673111674111675111676111677111678111679111680111681111682111683111684111685111686111687111688111689111690111691111692111693111694111695111696111697111698111699111700111701111702111703111704111705111706111707111708111709111710111711111712111713111714111715111716111717111718111719111720111721111722111723111724111725111726111727111728111729111730111731111732111733111734111735111736111737111738111739111740111741111742111743111744111745111746111747111748111749111750111751111752111753111754111755111756111757111758111759111760111761111762111763111764111765111766111767111768111769111770111771111772111773111774111775111776111777111778111779111780111781111782111783111784111785111786111787111788111789111790111791111792111793111794111795111796111797111798111799111800111801111802111803111804111805111806111807111808111809111810111811111812111813111814111815111816111817111818111819111820111821111822111823111824111825111826111827111828111829111830111831111832111833111834111835111836111837111838111839111840111841111842111843111844111845111846111847111848111849111850111851111852111853111854111855111856111857111858111859111860111861111862111863111864111865111866111867111868111869111870111871111872111873111874111875111876111877111878111879111880111881111882111883111884111885111886111887111888111889111890111891111892111893111894111895111896111897111898111899111900111901111902111903111904111905111906111907111908111909111910111911111912111913111914111915111916111917111918111919111920111921111922111923111924111925111926111927111928111929111930111931111932111933111934111935111936111937111938111939111940111941111942111943111944111945111946111947111948111949111950111951111952111953111954111955111956111957111958111959111960111961111962111963111964111965111966111967111968111969111970111971111972111973111974111975111976111977111978111979111980111981111982111983111984111985111986111987111988111989111990111991111992111993111994111995111996111997111998111999112000112001112002112003112004112005112006112007112008112009112010112011112012112013112014112015112016112017112018112019112020112021112022112023112024112025112026112027112028112029112030112031112032112033112034112035112036112037112038112039112040112041112042112043112044112045112046112047112048112049112050112051112052112053112054112055112056112057112058112059112060112061112062112063112064112065112066112067112068112069112070112071112072112073112074112075112076112077112078112079112080112081112082112083112084112085112086112087112088112089112090112091112092112093112094112095112096112097112098112099112100112101112102112103112104112105112106112107112108112109112110112111112112112113112114112115112116112117112118112119112120112121112122112123112124112125112126112127112128112129112130112131112132112133112134112135112136112137112138112139112140112141112142112143112144112145112146112147112148112149112150112151112152112153112154112155112156112157112158112159112160112161112162112163112164112165112166112167112168112169112170112171112172112173112174112175112176112177112178112179112180112181112182112183112184112185112186112187112188112189112190112191112192112193112194112195112196112197112198112199112200112201112202112203112204112205112206112207112208112209112210112211112212112213112214112215112216112217112218112219112220112221112222112223112224112225112226112227112228112229112230112231112232112233112234112235112236112237112238112239112240112241112242112243112244112245112246112247112248112249112250112251112252112253112254112255112256112257112258112259112260112261112262112263112264112265112266112267112268112269112270112271112272112273112274112275112276112277112278112279112280112281112282112283112284112285112286112287112288112289112290112291112292112293112294112295112296112297112298112299112300112301112302112303112304112305112306112307112308112309112310112311112312112313112314112315112316112317112318112319112320112321112322112323112324112325112326112327112328112329112330112331112332112333112334112335112336112337112338112339112340112341112342112343112344112345112346112347112348112349112350112351112352112353112354112355112356112357112358112359112360112361112362112363112364112365112366112367112368112369112370112371112372112373112374112375112376112377112378112379112380112381112382112383112384112385112386112387112388112389112390112391112392112393112394112395112396112397112398112399112400112401112402112403112404112405112406112407112408112409112410112411112412112413112414112415112416112417112418112419112420112421112422112423112424112425112426112427112428112429112430112431112432112433112434112435112436112437112438112439112440112441112442112443112444112445112446112447112448112449112450112451112452112453112454112455112456112457112458112459112460112461112462112463112464112465112466112467112468112469112470112471112472112473112474112475112476112477112478112479112480112481112482112483112484112485112486112487112488112489112490112491112492112493112494112495112496112497112498112499112500112501112502112503112504112505112506112507112508112509112510112511112512112513112514112515112516112517112518112519112520112521112522112523112524112525112526112527112528112529112530112531112532112533112534112535112536112537112538112539112540112541112542112543112544112545112546112547112548112549112550112551112552112553112554112555112556112557112558112559112560112561112562112563112564112565112566112567112568112569112570112571112572112573112574112575112576112577112578112579112580112581112582112583112584112585112586112587112588112589112590112591112592112593112594112595112596112597112598112599112600112601112602112603112604112605112606112607112608112609112610112611112612112613112614112615112616112617112618112619112620112621112622112623112624112625112626112627112628112629112630112631112632112633112634112635112636112637112638112639112640112641112642112643112644112645112646112647112648112649112650112651112652112653112654112655112656112657112658112659112660112661112662112663112664112665112666112667112668112669112670112671112672112673112674112675112676112677112678112679112680112681112682112683112684112685112686112687112688112689112690112691112692112693112694112695112696112697112698112699112700112701112702112703112704112705112706112707112708112709112710112711112712112713112714112715112716112717112718112719112720112721112722112723112724112725112726112727112728112729112730112731112732112733112734112735112736112737112738112739112740112741112742112743112744112745112746112747112748112749112750112751112752112753112754112755112756112757112758112759112760112761112762112763112764112765112766112767112768112769112770112771112772112773112774112775112776112777112778112779112780112781112782112783112784112785112786112787112788112789112790112791112792112793112794112795112796112797112798112799112800112801112802112803112804112805112806112807112808112809112810112811112812112813112814112815112816112817112818112819112820112821112822112823112824112825112826112827112828112829112830112831112832112833112834112835112836112837112838112839112840112841112842112843112844112845112846112847112848112849112850112851112852112853112854112855112856112857112858112859112860112861112862112863112864112865112866112867112868112869112870112871112872112873112874112875112876112877112878112879112880112881112882112883112884112885112886112887112888112889112890112891112892112893112894112895112896112897112898112899112900112901112902112903112904112905112906112907112908112909112910112911112912112913112914112915112916112917112918112919112920112921112922112923112924112925112926112927112928112929112930112931112932112933112934112935112936112937112938112939112940112941112942112943112944112945112946112947112948112949112950112951112952112953112954112955112956112957112958112959112960112961112962112963112964112965112966112967112968112969112970112971112972112973112974112975112976112977112978112979112980112981112982112983112984112985112986112987112988112989112990112991112992112993112994112995112996112997112998112999113000113001113002113003113004113005113006113007113008113009113010113011113012113013113014113015113016113017113018113019113020113021113022113023113024113025113026113027113028113029113030113031113032113033113034113035113036113037113038113039113040113041113042113043113044113045113046113047113048113049113050113051113052113053113054113055113056113057113058113059113060113061113062113063113064113065113066113067113068113069113070113071113072113073113074113075113076113077113078113079113080113081113082113083113084113085113086113087113088113089113090113091113092113093113094113095113096113097113098113099113100113101113102113103113104113105113106113107113108113109113110113111113112113113113114113115113116113117113118113119113120113121113122113123113124113125113126113127113128113129113130113131113132113133113134113135113136113137113138113139113140113141113142113143113144113145113146113147113148113149113150113151113152113153113154113155113156113157113158113159113160113161113162113163113164113165113166113167113168113169113170113171113172113173113174113175113176113177113178113179113180113181113182113183113184113185113186113187113188113189113190113191113192113193113194113195113196113197113198113199113200113201113202113203113204113205113206113207113208113209113210113211113212113213113214113215113216113217113218113219113220113221113222113223113224113225113226113227113228113229113230113231113232113233113234113235113236113237113238113239113240113241113242113243113244113245113246113247113248113249113250113251113252113253113254113255113256113257113258113259113260113261113262113263113264113265113266113267113268113269113270113271113272113273113274113275113276113277113278113279113280113281113282113283113284113285113286113287113288113289113290113291113292113293113294113295113296113297113298113299113300113301113302113303113304113305113306113307113308113309113310113311113312113313113314113315113316113317113318113319113320113321113322113323113324113325113326113327113328113329113330113331113332113333113334113335113336113337113338113339113340113341113342113343113344113345113346113347113348113349113350113351113352113353113354113355113356113357113358113359113360113361113362113363113364113365113366113367113368113369113370113371113372113373113374113375113376113377113378113379113380113381113382113383113384113385113386113387113388113389113390113391113392113393113394113395113396113397113398113399113400113401113402113403113404113405113406113407113408113409113410113411113412113413113414113415113416113417113418113419113420113421113422113423113424113425113426113427113428113429113430113431113432113433113434113435113436113437113438113439113440113441113442113443113444113445113446113447113448113449113450113451113452113453113454113455113456113457113458113459113460113461113462113463113464113465113466113467113468113469113470113471113472113473113474113475113476113477113478113479113480113481113482113483113484113485113486113487113488113489113490113491113492113493113494113495113496113497113498113499113500113501113502113503113504113505113506113507113508113509113510113511113512113513113514113515113516113517113518113519113520113521113522113523113524113525113526113527113528113529113530113531113532113533113534113535113536113537113538113539113540113541113542113543113544113545113546113547113548113549113550113551113552113553113554113555113556113557113558113559113560113561113562113563113564113565113566113567113568113569113570113571113572113573113574113575113576113577113578113579113580113581113582113583113584113585113586113587113588113589113590113591113592113593113594113595113596113597113598113599113600113601113602113603113604113605113606113607113608113609113610113611113612113613113614113615113616113617113618113619113620113621113622113623113624113625113626113627113628113629113630113631113632113633113634113635113636113637113638113639113640113641113642113643113644113645113646113647113648113649113650113651113652113653113654113655113656113657113658113659113660113661113662113663113664113665113666113667113668113669113670113671113672113673113674113675113676113677113678113679113680113681113682113683113684113685113686113687113688113689113690113691113692113693113694113695113696113697113698113699113700113701113702113703113704113705113706113707113708113709113710113711113712113713113714113715113716113717113718113719113720113721113722113723113724113725113726113727113728113729113730113731113732113733113734113735113736113737113738113739113740113741113742113743113744113745113746113747113748113749113750113751113752113753113754113755113756113757113758113759113760113761113762113763113764113765113766113767113768113769113770113771113772113773113774113775113776113777113778113779113780113781113782113783113784113785113786113787113788113789113790113791113792113793113794113795113796113797113798113799113800113801113802113803113804113805113806113807113808113809113810113811113812113813113814113815113816113817113818113819113820113821113822113823113824113825113826113827113828113829113830113831113832113833113834113835113836113837113838113839113840113841113842113843113844113845113846113847113848113849113850113851113852113853113854113855113856113857113858113859113860113861113862113863113864113865113866113867113868113869113870113871113872113873113874113875113876113877113878113879113880113881113882113883113884113885113886113887113888113889113890113891113892113893113894113895113896113897113898113899113900113901113902113903113904113905113906113907113908113909113910113911113912113913113914113915113916113917113918113919113920113921113922113923113924113925113926113927113928113929113930113931113932113933113934113935113936113937113938113939113940113941113942113943113944113945113946113947113948113949113950113951113952113953113954113955113956113957113958113959113960113961113962113963113964113965113966113967113968113969113970113971113972113973113974113975113976113977113978113979113980113981113982113983113984113985113986113987113988113989113990113991113992113993113994113995113996113997113998113999114000114001114002114003114004114005114006114007114008114009114010114011114012114013114014114015114016114017114018114019114020114021114022114023114024114025114026114027114028114029114030114031114032114033114034114035114036114037114038114039114040114041114042114043114044114045114046114047114048114049114050114051114052114053114054114055114056114057114058114059114060114061114062114063114064114065114066114067114068114069114070114071114072114073114074114075114076114077114078114079114080114081114082114083114084114085114086114087114088114089114090114091114092114093114094114095114096114097114098114099114100114101114102114103114104114105114106114107114108114109114110114111114112114113114114114115114116114117114118114119114120114121114122114123114124114125114126114127114128114129114130114131114132114133114134114135114136114137114138114139114140114141114142114143114144114145114146114147114148114149114150114151114152114153114154114155114156114157114158114159114160114161114162114163114164114165114166114167114168114169114170114171114172114173114174114175114176114177114178114179114180114181114182114183114184114185114186114187114188114189114190114191114192114193114194114195114196114197114198114199114200114201114202114203114204114205114206114207114208114209114210114211114212114213114214114215114216114217114218114219114220114221114222114223114224114225114226114227114228114229114230114231114232114233114234114235114236114237114238114239114240114241114242114243114244114245114246114247114248114249114250114251114252114253114254114255114256114257114258114259114260114261114262114263114264114265114266114267114268114269114270114271114272114273114274114275114276114277114278114279114280114281114282114283114284114285114286114287114288114289114290114291114292114293114294114295114296114297114298114299114300114301114302114303114304114305114306114307114308114309114310114311114312114313114314114315114316114317114318114319114320114321114322114323114324114325114326114327114328114329114330114331114332114333114334114335114336114337114338114339114340114341114342114343114344114345114346114347114348114349114350114351114352114353114354114355114356114357114358114359114360114361114362114363114364114365114366114367114368114369114370114371114372114373114374114375114376114377114378114379114380114381114382114383114384114385114386114387114388114389114390114391114392114393114394114395114396114397114398114399114400114401114402114403114404114405114406114407114408114409114410114411114412114413114414114415114416114417114418114419114420114421114422114423114424114425114426114427114428114429114430114431114432114433114434114435114436114437114438114439114440114441114442114443114444114445114446114447114448114449114450114451114452114453114454114455114456114457114458114459114460114461114462114463114464114465114466114467114468114469114470114471114472114473114474114475114476114477114478114479114480114481114482114483114484114485114486114487114488114489114490114491114492114493114494114495114496114497114498114499114500114501114502114503114504114505114506114507114508114509114510114511114512114513114514114515114516114517114518114519114520114521114522114523114524114525114526114527114528114529114530114531114532114533114534114535114536114537114538114539114540114541114542114543114544114545114546114547114548114549114550114551114552114553114554114555114556114557114558114559114560114561114562114563114564114565114566114567114568114569114570114571114572114573114574114575114576114577114578114579114580114581114582114583114584114585114586114587114588114589114590114591114592114593114594114595114596114597114598114599114600114601114602114603114604114605114606114607114608114609114610114611114612114613114614114615114616114617114618114619114620114621114622114623114624114625114626114627114628114629114630114631114632114633114634114635114636114637114638114639114640114641114642114643114644114645114646114647114648114649114650114651114652114653114654114655114656114657114658114659114660114661114662114663114664114665114666114667114668114669114670114671114672114673114674114675114676114677114678114679114680114681114682114683114684114685114686114687114688114689114690114691114692114693114694114695114696114697114698114699114700114701114702114703114704114705114706114707114708114709114710114711114712114713114714114715114716114717114718114719114720114721114722114723114724114725114726114727114728114729114730114731114732114733114734114735114736114737114738114739114740114741114742114743114744114745114746114747114748114749114750114751114752114753114754114755114756114757114758114759114760114761114762114763114764114765114766114767114768114769114770114771114772114773114774114775114776114777114778114779114780114781114782114783114784114785114786114787114788114789114790114791114792114793114794114795114796114797114798114799114800114801114802114803114804114805114806114807114808114809114810114811114812114813114814114815114816114817114818114819114820114821114822114823114824114825114826114827114828114829114830114831114832114833114834114835114836114837114838114839114840114841114842114843114844114845114846114847114848114849114850114851114852114853114854114855114856114857114858114859114860114861114862114863114864114865114866114867114868114869114870114871114872114873114874114875114876114877114878114879114880114881114882114883114884114885114886114887114888114889114890114891114892114893114894114895114896114897114898114899114900114901114902114903114904114905114906114907114908114909114910114911114912114913114914114915114916114917114918114919114920114921114922114923114924114925114926114927114928114929114930114931114932114933114934114935114936114937114938114939114940114941114942114943114944114945114946114947114948114949114950114951114952114953114954114955114956114957114958114959114960114961114962114963114964114965114966114967114968114969114970114971114972114973114974114975114976114977114978114979114980114981114982114983114984114985114986114987114988114989114990114991114992114993114994114995114996114997114998114999115000115001115002115003115004115005115006115007115008115009115010115011115012115013115014115015115016115017115018115019115020115021115022115023115024115025115026115027115028115029115030115031115032115033115034115035115036115037115038115039115040115041115042115043115044115045115046115047115048115049115050115051115052115053115054115055115056115057115058115059115060115061115062115063115064115065115066115067115068115069115070115071115072115073115074115075115076115077115078115079115080115081115082115083115084115085115086115087115088115089115090115091115092115093115094115095115096115097115098115099115100115101115102115103115104115105115106115107115108115109115110115111115112115113115114115115115116115117115118115119115120115121115122115123115124115125115126115127115128115129115130115131115132115133115134115135115136115137115138115139115140115141115142115143115144115145115146115147115148115149115150115151115152115153115154115155115156115157115158115159115160115161115162115163115164115165115166115167115168115169115170115171115172115173115174115175115176115177115178115179115180115181115182115183115184115185115186115187115188115189115190115191115192115193115194115195115196115197115198115199115200115201115202115203115204115205115206115207115208115209115210115211115212115213115214115215115216115217115218115219115220115221115222115223115224115225115226115227115228115229115230115231115232115233115234115235115236115237115238115239115240115241115242115243115244115245115246115247115248115249115250115251115252115253115254115255115256115257115258115259115260115261115262115263115264115265115266115267115268115269115270115271115272115273115274115275115276115277115278115279115280115281115282115283115284115285115286115287115288115289115290115291115292115293115294115295115296115297115298115299115300115301115302115303115304115305115306115307115308115309115310115311115312115313115314115315115316115317115318115319115320115321115322115323115324115325115326115327115328115329115330115331115332115333115334115335115336115337115338115339115340115341115342115343115344115345115346115347115348115349115350115351115352115353115354115355115356115357115358115359115360115361115362115363115364115365115366115367115368115369115370115371115372115373115374115375115376115377115378115379115380115381115382115383115384115385115386115387115388115389115390115391115392115393115394115395115396115397115398115399115400115401115402115403115404115405115406115407115408115409115410115411115412115413115414115415115416115417115418115419115420115421115422115423115424115425115426115427115428115429115430115431115432115433115434115435115436115437115438115439115440115441115442115443115444115445115446115447115448115449115450115451115452115453115454115455115456115457115458115459115460115461115462115463115464115465115466115467115468115469115470115471115472115473115474115475115476115477115478115479115480115481115482115483115484115485115486115487115488115489115490115491115492115493115494115495115496115497115498115499115500115501115502115503115504115505115506115507115508115509115510115511115512115513115514115515115516115517115518115519115520115521115522115523115524115525115526115527115528115529115530115531115532115533115534115535115536115537115538115539115540115541115542115543115544115545115546115547115548115549115550115551115552115553115554115555115556115557115558115559115560115561115562115563115564115565115566115567115568115569115570115571115572115573115574115575115576115577115578115579115580115581115582115583115584115585115586115587115588115589115590115591115592115593115594115595115596115597115598115599115600115601115602115603115604115605115606115607115608115609115610115611115612115613115614115615115616115617115618115619115620115621115622115623115624115625115626115627115628115629115630115631115632115633115634115635115636115637115638115639115640115641115642115643115644115645115646115647115648115649115650115651115652115653115654115655115656115657115658115659115660115661115662115663115664115665115666115667115668115669115670115671115672115673115674115675115676115677115678115679115680115681115682115683115684115685115686115687115688115689115690115691115692115693115694115695115696115697115698115699115700115701115702115703115704115705115706115707115708115709115710115711115712115713115714115715115716115717115718115719115720115721115722115723115724115725115726115727115728115729115730115731115732115733115734115735115736115737115738115739115740115741115742115743115744115745115746115747115748115749115750115751115752115753115754115755115756115757115758115759115760115761115762115763115764115765115766115767115768115769115770115771115772115773115774115775115776115777115778115779115780115781115782115783115784115785115786115787115788115789115790115791115792115793115794115795115796115797115798115799115800115801115802115803115804115805115806115807115808115809115810115811115812115813115814115815115816115817115818115819115820115821115822115823115824115825115826115827115828115829115830115831115832115833115834115835115836115837115838115839115840115841115842115843115844115845115846115847115848115849115850115851115852115853115854115855115856115857115858115859115860115861115862115863115864115865115866115867115868115869115870115871115872115873115874115875115876115877115878115879115880115881115882115883115884115885115886115887115888115889115890115891115892115893115894115895115896115897115898115899115900115901115902115903115904115905115906115907115908115909115910115911115912115913115914115915115916115917115918115919115920115921115922115923115924115925115926115927115928115929115930115931115932115933115934115935115936115937115938115939115940115941115942115943115944115945115946115947115948115949115950115951115952115953115954115955115956115957115958115959115960115961115962115963115964115965115966115967115968115969115970115971115972115973115974115975115976115977115978115979115980115981115982115983115984115985115986115987115988115989115990115991115992115993115994115995115996115997115998115999116000116001116002116003116004116005116006116007116008116009116010116011116012116013116014116015116016116017116018116019116020116021116022116023116024116025116026116027116028116029116030116031116032116033116034116035116036116037116038116039116040116041116042116043116044116045116046116047116048116049116050116051116052116053116054116055116056116057116058116059116060116061116062116063116064116065116066116067116068116069116070116071116072116073116074116075116076116077116078116079116080116081116082116083116084116085116086116087116088116089116090116091116092116093116094116095116096116097116098116099116100116101116102116103116104116105116106116107116108116109116110116111116112116113116114116115116116116117116118116119116120116121116122116123116124116125116126116127116128116129116130116131116132116133116134116135116136116137116138116139116140116141116142116143116144116145116146116147116148116149116150116151116152116153116154116155116156116157116158116159116160116161116162116163116164116165116166116167116168116169116170116171116172116173116174116175116176116177116178116179116180116181116182116183116184116185116186116187116188116189116190116191116192116193116194116195116196116197116198116199116200116201116202116203116204116205116206116207116208116209116210116211116212116213116214116215116216116217116218116219116220116221116222116223116224116225116226116227116228116229116230116231116232116233116234116235116236116237116238116239116240116241116242116243116244116245116246116247116248116249116250116251116252116253116254116255116256116257116258116259116260116261116262
  1. #ifndef DHNETSDK_H
  2. #define DHNETSDK_H
  3. #if (defined(_MSC_VER))
  4. #include <windows.h>
  5. #ifdef NETSDK_EXPORTS
  6. #if(defined(_WIN64) || defined(WIN64))
  7. #define CLIENT_NET_API
  8. #else
  9. #define CLIENT_NET_API __declspec(dllexport)
  10. #endif
  11. #else
  12. #define CLIENT_NET_API __declspec(dllimport)
  13. #endif
  14. #define CALLBACK __stdcall
  15. #define CALL_METHOD __stdcall //__cdecl
  16. #define INT64 __int64
  17. #define TP_U64 unsigned __int64
  18. #ifndef LLONG
  19. #ifdef _WIN64
  20. #define LLONG INT64
  21. #else
  22. #define LLONG LONG
  23. #endif
  24. #endif
  25. #ifndef LDWORD
  26. #ifdef _WIN64
  27. #define LDWORD INT64
  28. #else
  29. #define LDWORD DWORD
  30. #endif
  31. #endif
  32. #else //non-windows
  33. #define CLIENT_NET_API extern "C"
  34. #define CALL_METHOD
  35. #define CALLBACK
  36. #ifndef INTERNAL_COMPILE
  37. #define RELEASE_HEADER
  38. #endif
  39. #ifdef RELEASE_HEADER
  40. #define WORD unsigned short
  41. #define DWORD unsigned int
  42. #define LONG int
  43. #define LPDWORD DWORD*
  44. #ifdef __OBJC__
  45. #include "objc/objc.h"
  46. #else
  47. #define BOOL int
  48. #endif
  49. #ifndef TRUE
  50. #define TRUE 1
  51. #endif
  52. #ifndef FALSE
  53. #define FALSE 0
  54. #endif
  55. #define BYTE unsigned char
  56. #define UINT unsigned int
  57. #define HDC void*
  58. #define HWND void*
  59. #define LPVOID void*
  60. #ifndef NULL
  61. #define NULL 0
  62. #endif
  63. #define LLONG long
  64. #define INT64 long long
  65. #define TP_U64 unsigned long long
  66. #define LDWORD long
  67. #ifndef MAX_PATH
  68. #define MAX_PATH 260
  69. #endif
  70. #ifndef DEF_RECT
  71. ///@brief rect
  72. typedef struct tagRECT
  73. {
  74. LONG left;
  75. LONG top;
  76. LONG right;
  77. LONG bottom;
  78. } RECT;
  79. #define DEF_RECT
  80. #endif
  81. #else //内部编译
  82. #include "../../SRC/Platform/osIndependent.h"
  83. #define INT64 int64
  84. #define TP_U64 uint64
  85. #endif // RELEASE_HEADER
  86. #endif // linux
  87. #ifndef LDWORD
  88. #if (defined(WIN32) || defined(_WIN32) || defined(_WIN64))
  89. #ifdef _WIN64
  90. #define LDWORD __int64
  91. #else //WIN32
  92. #define LDWORD DWORD
  93. #endif
  94. #else //linux
  95. #define LDWORD long
  96. #endif
  97. #endif
  98. #ifdef __cplusplus
  99. extern "C" {
  100. #endif
  101. /************************************************************************
  102. ** 常量定义
  103. ***********************************************************************/
  104. #define DH_SERIALNO_LEN 48 // 设备序列号字符长度
  105. #define DH_MAX_DISKNUM 256 // 最大硬盘个数
  106. #define DH_MAX_SDCARDNUM 32 // 最大SD卡个数
  107. #define DH_MAX_BURNING_DEV_NUM 32 // 最大刻录设备个数
  108. #define DH_BURNING_DEV_NAMELEN 32 // 刻录设备名字最大长度
  109. #define DH_MAX_LINK 6
  110. #define DH_MAX_CHANNUM 16 // 最大通道个数
  111. #define DH_MAX_DECODER_CHANNUM 64 // 解码器最大通道数
  112. #define DH_MAX_ALARMIN 128 // 最大报警输入个数
  113. #define DH_MAX_ALARMOUT 64 // 最大报警输出个数
  114. #define DH_MAX_RIGHT_NUM 100 // 用户权限个数上限
  115. #define DH_MAX_GROUP_NUM 20 // 用户组个数上限
  116. #define DH_MAX_USER_NUM 200 // 用户个数上限
  117. #define DH_RIGHT_NAME_LENGTH 32 // 权限名长度
  118. #define DH_USER_NAME_LENGTH 8 // 用户名长度
  119. #define DH_USER_PSW_LENGTH 8 // 用户密码长度
  120. #define DH_CUSTOM_NAME_LENGTH 32 // 自定义名称长度
  121. #define DH_USER_NAME_LEN_EX 32 // 用户名长度,用于新平台扩展
  122. #define DH_USER_PSW_LEN_EX 32 // 用户密码长度,用于新平台扩展
  123. #define DH_MEMO_LENGTH 32 // 备注长度
  124. #define DH_MAX_STRING_LEN 128
  125. #define MAX_STRING_LINE_LEN 6 // 最多六行
  126. #define MAX_PER_STRING_LEN 20 // 每行最大长度
  127. #define DH_MAX_MAIL_NAME_LEN 64 // 新的邮件结构体支持的用户名长度
  128. #define DH_MAX_MAIL_PSW_LEN 64 // 新的邮件结构体支持的密码长度
  129. #define DH_SPEEDLIMIT_TYPE_LEN 32 // 限速类型字符串长度
  130. #define DH_VEHICLE_TYPE_LEN 32 // 车载自定义信息类型字符串长度
  131. #define DH_VEHICLE_INFO_LEN 32 // 车载自定义信息字符串长度
  132. #define DH_VEHICLE_DRIVERNO_LEN 32 // 车载自定义信息司机工号字符串长度
  133. #define DH_MAX_CROSSING_NUM 128 // 最大点位
  134. #define DH_MAX_CROSSING_ID 32 // 路口序列号最大长度
  135. #define DH_MAX_CARD_INFO_LEN 256 // 卡号信息最大长度
  136. #define DH_MAX_CHANNUM_EX 32 // 最大通道数扩展
  137. #define DH_MAX_SAERCH_IP_NUM 256 // 最大搜索IP个数
  138. #define DH_MAX_HARDDISK_TYPE_LEN 32 // 硬盘型号最大长度
  139. #define DH_MAX_HARDDISK_SERIAL_LEN 32 // 硬盘序列号最大长度
  140. #define DH_MAX_SIM_LEN 16 // SIM卡的值的最大长度
  141. #define DH_MAX_SIM_NUM 10 // 车载SIM卡最大个数
  142. #define DH_GATEWAY_MAX_SIM_NUM 8 // 网关SIM卡最大个数
  143. #define DH_MAX_VERSION_LEN 32 // 软件版本号最大长度
  144. #define DH_MAX_MDN_LEN 36 // MDN的值的最大长度
  145. #define DH_MAX_NETINTERFACE_NUM 64 // 支持的网卡个数
  146. #define DH_EVENT_NAME_LEN 128 // 事件名称长度
  147. #define DH_STORAGE_NAME_LEN 128 // 存储设备名称长度
  148. #define DH_MAX_CARPORTLIGHT_NUM 4 // 最大车位灯个数
  149. #define DH_STATION_NAME_LEN 32 // 车站站点名称长度
  150. #define PTZ_PRESET_NAME_LEN 64 // 云台预置点名称长度
  151. #define DH_MAX_GUARD_DETECT_ID_COUNT 64 // 最大的岗亭检测ID个数
  152. #define DH_MAX_VERSION_STR 64 // 版本字符串最大长度
  153. #define DH_MAX_AUDIO_MATRIX_OUTPUT 8 // 每个音频矩阵支持的最大输出通道数
  154. #define DH_MAX_CHANNEL_COUNT 16 // 支持最大通道数叠加
  155. #define DH_COMMON_STRING_4 4 // 通用字符串长度4
  156. #define DH_COMMON_STRING_8 8 // 通用字符串长度8
  157. #define DH_COMMON_STRING_16 16 // 通用字符串长度16
  158. #define DH_COMMON_STRING_32 32 // 通用字符串长度32
  159. #define DH_COMMON_STRING_36 36 // 通用字符串长度36
  160. #define DH_COMMON_STRING_64 64 // 通用字符串长度64
  161. #define DH_COMMON_STRING_128 128 // 通用字符串长度128
  162. #define DH_COMMON_STRING_256 256 // 通用字符串长度256
  163. #define DH_COMMON_STRING_512 512 // 通用字符串长度512
  164. #define DH_COMMON_STRING_1024 1024 // 通用字符串长度1024
  165. #define DH_COMMON_STRING_2048 2048 // 通用字符串长度2048
  166. #define DH_MAX_ACCESS_NAME_LEN 64 // 门禁名称长度
  167. #define DH_MAX_EXALARMCHANNEL_NAME_LEN 128 // 扩展模块报警通道名称长度
  168. #define DH_MAX_ALARM_SUBSYSTEM_NUM 256 // 最大报警子系统个数
  169. #define DH_MAX_BELL_NUM 4 // 最大警号个数
  170. #define DH_MAX_KEYBOARD_NUM 256 // 最大键盘数
  171. #define MAX_GOURP_NUM 128 // 目标库最大个数
  172. #define MAX_PWD_MODIFIEDTIME_LEN 20 // 密码修改时间最大长度
  173. #define MAX_ONVIF_USER_NUM 20 // Onvif用户上限个数
  174. #define DH_MAX_POS_EXCHANGE_INFO 64 // 每次查询POS交易信息时,交易信息数组的最大值
  175. #define NET_INTERFACE_DEFAULT_TIMEOUT 3000 // 接口默认超时时间
  176. #define DH_MAX_BUSCARD_NUM 64 // 公交卡号最大长度
  177. #define DH_MAX_POS_MAC_NUM 8 // 刷卡机Mac码最大长度
  178. #define DH_MAX_MARK_FILE_NAME_LEN 124 // 录像控制文件名最大长度
  179. #define NET_MAX_ATTACHMENT_NUM 8 // 最大车辆物件数量
  180. #define NET_MAX_ANNUUALINSPECTION_NUM 8 // 最大年检标识位置
  181. #define NET_MAX_EVENT_PIC_NUM 6 // 最大原始图片张数
  182. #define NET_MAX_MONTH_NUM 31 // 最大月份个数
  183. #define NET_IPADDRSTR_LEN 46 // IP地址字符串长度 支持 ipv4-mapped-on-ipv6
  184. #define NET_MAX_AP_NUM 3 // 最大AP个数
  185. #define MAX_WEP_KEY_NUM 4 // 最大WEP密码个数
  186. #define MAX_CARNO_LEN 20 // 最大车辆号长度
  187. #define MAX_COACHNO_LEN 12 // 最大车厢号长度
  188. #define MAX_WORKPATTERN_NUM 2 // 最大工作模式个数
  189. #define MAX_NETPORT_NUM 5 // 最大网口个数
  190. #define MAX_ANTIFLICKERMODE_COUNT 8 // 最大防闪烁模式最大个数
  191. #define MAX_CATEGORY_LEN 64 // 最大物体类型长度
  192. #define MAX_DANGER_GRADE_NUM 8 // 最大包裹危险等级个数
  193. #define MAX_INSIDE_OBJECT_TYPE_NUM 32 // 最大包裹中物品类型个数
  194. #define MAX_PATH_LEN 260 // 最大路径长度
  195. #define MAX_XRAY_CHANNEL_NUM 10 // 最大X光检各类包裹数量统计信息的通道个数
  196. #define MAX_HISTORY_TEMPERATURE_NUM 64 // 最大历史温度值的个数
  197. #define MAX_TEMPERATURE_POINT_NUM 8 // 最大监测温度点的个数
  198. #define MAX_GROUP_LEN 128 // 最大的组名长度
  199. #define MAX_ILLEGAL_LOGIN_IP_LEN 40 // 最大的非法登陆IP长度
  200. #define DH_COMMON_STRING_20 20 // 通用字符串长度20
  201. #define MAX_EVENT_ID_LEN 52 // 国标事件ID最大长度
  202. #define MAX_HUMANTRAIT_EVENT_LEN 36 // 补充人体特征上报事件最大长度
  203. #define DH_COMMON_STRING_24 24 // 通用字符串长度24
  204. #define MAX_TEMPERATUREEX_POINT_NUM 12 // 最大监测温度点的个数
  205. #define MAX_PIRPARAM_NUM 10 // 最大pir配置的数组个数
  206. #define MAX_ENCRYPT_SYSTEM_INFO_CONTENT_LEN 8192 // 加密系统信息内容的最大长度
  207. #define MAX_LOCAL_EXT_ALARM_NAME_LEN 64 // 最大报警盒子的报警通道名称长度
  208. #define MAX_TASK_ID_LEN 64 // 最大的任务ID长度
  209. #define MAX_FILE_PATH_LEN 256 // 最大的图片路径长度
  210. #define MAX_IMAGE_INFO_NUM 8 // 最大的图片信息个数
  211. #define MAX_DIAL_RESULT_LEN 2048 // 最大的分析结果字符串长度
  212. #define MAX_COUNTRY_CODE_LEN 4 // 最大的国家代号长度
  213. #define MAX_PROVINCE_CODE_LEN 64 // 最大的省份代号长度
  214. #define MAX_CITY_CODE_LEN 64 // 最大的城市代号长度
  215. #define MAX_AREA_CODE_LEN 64 // 最大的区域代号长度
  216. #define MAX_REQ_INFO_LEN 1600 // 最大的请求文件长度
  217. #define MAX_SIP_SVR_ID_LEN 24 // 最大的SIP服务器ID长度
  218. #define MAX_SIP_DOMAIN_LEN 128 // 最大的SIP域长度
  219. #define MAX_SIP_SVR_IP_LEN 128 // 最大的SIP服务器IP长度
  220. #define MAX_SIP_SERVER_DEVICE_ID_LEN 24 // 最大的设备编号长度
  221. #define MAX_REG_PASSWORD_LEN 24 // 最大的注册密码长度
  222. #define MAX_CIVIL_CODE_LEN 24 // 最大的行政区划代码长度
  223. #define MAX_INTERVIDEO_ID_LEN 24 // 最大的接入模块识别码长度
  224. #define MAX_CHANNEL_ID_LEN 24 // 最大的通道编号长度
  225. #define MAX_SIP_SERVER_NUM 5 // 最大的SIP服务器信息个数
  226. #define MAX_GB28181_PROTOCOL_VERSION 16 // 最大的GB28181协议版本长度
  227. #define DH_MAX_FACEDETECT_FEATURE_NUM 32 // 目标特征最大个数
  228. #define MAX_ATTACHMENT_NUM 8 // 最大车内物品个数
  229. #define MAX_ERRORCODE_NUM 512 // 最大错误码个数
  230. #define MAX_PUSH_STREAM_AUTH_SSID 80 // 设备推流鉴权ID最大长度
  231. #define DH_MAX_IPADDRV4_LEN 16 // IPv4地址字符串长度
  232. #define DH_MAX_IPADDRV6_LEN 64 // IPv6地址字符串长度
  233. // 远程配置结构体相关常量
  234. #define DH_MAX_MAIL_ADDR_LEN 128 // 邮件发(收)地址最大长度
  235. #define DH_MAX_MAIL_SUBJECT_LEN 64 // 邮件主题最大长度
  236. #define DH_MAX_IPADDR_LEN 16 // IP地址字符串长度
  237. #define DH_MAX_IPADDR_LEN_EX 40 // 扩展IP地址字符串长度, 支持IPV6
  238. #define DH_MACADDR_LEN 40 // MAC地址字符串长度
  239. #define DH_MAX_URL_LEN 128 // URL字符串长度
  240. #define DH_MAX_DEV_ID_LEN 48 // 机器编号最大长度
  241. #define DH_MAX_HOST_NAMELEN 64 // 主机名长度,
  242. #define DH_MAX_HOST_PSWLEN 32 // 密码长度
  243. #define DH_MAX_NAME_LEN 16 // 通用名字字符串长度
  244. #define DH_MAX_ETHERNET_NUM 2 // 以太网口最大个数
  245. #define DH_MAX_ETHERNET_NUM_EX 10 // 扩展以太网口最大个数
  246. #define DH_DEV_SERIALNO_LEN 48 // 序列号字符串长度
  247. #define DH_DEV_CLASS_LEN 16 // 设备类型字符串(如"IPC")长度
  248. #define DH_DEV_TYPE_LEN 32 // 设备型号字符串(如"IPC-F725")长度
  249. #define DH_N_WEEKS 7 // 一周的天数
  250. #define DH_N_TSECT 6 // 通用时间段个数
  251. #define DH_N_REC_TSECT 6 // 录像时间段个数
  252. #define DH_N_COL_TSECT 2 // 颜色时间段个数
  253. #define DH_CHAN_NAME_LEN 32 // 通道名长度,DVR DSP能力限制,最多32字节
  254. #define DH_N_ENCODE_AUX 3 // 扩展码流个数
  255. #define DH_N_TALK 1 // 最多对讲通道个数
  256. #define DH_N_COVERS 1 // 遮挡区域个数
  257. #define DH_N_CHANNEL 16 // 最大通道个数
  258. #define DH_N_ALARM_TSECT 2 // 报警提示时间段个数
  259. #define DH_MAX_ALARMOUT_NUM 16 // 报警输出口个数上限
  260. #define DH_MAX_AUDIO_IN_NUM 16 // 音频输入口个数上限
  261. #define DH_MAX_VIDEO_IN_NUM 16 // 视频输入口个数上限
  262. #define DH_MAX_ALARM_IN_NUM 16 // 报警输入口个数上限
  263. #define DH_MAX_DISK_NUM 16 // 硬盘个数上限,暂定为16
  264. #define DH_MAX_DECODER_NUM 16 // 解码器(485)个数上限
  265. #define DH_MAX_232FUNCS 10 // 232串口功能个数上限
  266. #define DH_MAX_232_NUM 2 // 232串口个数上限
  267. #define DH_MAX_232_NUM_EX 16 // 扩展串口配置个数上限
  268. #define DH_MAX_DECPRO_LIST_SIZE 100 // 解码器协议列表个数上限
  269. #define DH_FTP_MAXDIRLEN 240 // FTP文件目录最大长度
  270. #define DH_MATRIX_MAXOUT 16 // 矩阵输出口最大个数
  271. #define DH_TOUR_GROUP_NUM 6 // 矩阵输出组最大个数
  272. #define DH_MAX_DDNS_NUM 10 // 设备支持的ddns服务器最大个数
  273. #define DH_MAX_SERVER_TYPE_LEN 32 // ddns服务器类型,最大字符串长度
  274. #define DH_MAX_DOMAIN_NAME_LEN 256 // ddns域名,最大字符串长度
  275. #define DH_MAX_DDNS_ALIAS_LEN 32 // ddns服务器别名,最大字符串长度
  276. #define DH_MAX_DEFAULT_DOMAIN_LEN 60 // ddns默认域名,最大字符串长度
  277. #define DH_MOTION_ROW 32 // 动态检测区域的行数
  278. #define DH_MOTION_COL 32 // 动态检测区域的列数
  279. #define DH_STATIC_ROW 32 // 静态检测区域的行数
  280. #define DH_STATIC_COL 32 // 静态检测区域的列数
  281. #define DH_FTP_USERNAME_LEN 64 // FTP配置,用户名最大长度
  282. #define DH_FTP_PASSWORD_LEN 64 // FTP配置,密码最大长度
  283. #define DH_TIME_SECTION 2 // FTP配置,每天时间段个数
  284. #define DH_FTP_MAX_PATH 240 // FTP配置,文件路径名最大长度
  285. #define DH_FTP_MAX_SUB_PATH 128 // FTP配置,文件路径名最大长度
  286. #define DH_INTERVIDEO_UCOM_CHANID 32 // 平台接入配置,通通道ID
  287. #define DH_INTERVIDEO_UCOM_DEVID 32 // 平台接入配置,通设备ID
  288. #define DH_INTERVIDEO_UCOM_REGPSW 16 // 平台接入配置,通注册密码
  289. #define DH_INTERVIDEO_UCOM_USERNAME 32 // 平台接入配置,通用户名
  290. #define DH_INTERVIDEO_UCOM_USERPSW 32 // 平台接入配置,通密码
  291. #define DH_INTERVIDEO_NSS_IP 32 // 平台接入配置,IP
  292. #define DH_INTERVIDEO_NSS_SERIAL 32 // 平台接入配置,serial
  293. #define DH_INTERVIDEO_NSS_USER 32 // 平台接入配置,user
  294. #define DH_INTERVIDEO_NSS_PWD 50 // 平台接入配置,password
  295. #define DH_MAX_VIDEO_COVER_NUM 16 // 遮挡区域最大个数
  296. #define DH_MAX_WATERMAKE_DATA 4096 // 水印图片数据最大长度
  297. #define DH_MAX_WATERMAKE_LETTER 128 // 水印文字最大长度
  298. #define DH_MAX_WLANDEVICE_NUM 10 // 最多搜索出的无线设备个数
  299. #define DH_MAX_WLANDEVICE_NUM_EX 32 // 最多搜索出的无线设备个数
  300. #define MAX_WLAN_DEVICE_NUM 128 // 最多搜索出的无线设备个数
  301. #define DH_MAX_ALARM_NAME 64 // 地址长度
  302. #define DH_MAX_REGISTER_SERVER_NUM 10 // 主动注册服务器个数
  303. #define DH_SNIFFER_FRAMEID_NUM 6 // 6个FRAME ID 选项
  304. #define DH_SNIFFER_CONTENT_NUM 4 // 每个FRAME对应的4个抓包内容
  305. #define DH_SNIFFER_CONTENT_NUM_EX 8 // 每个FRAME对应的8个抓包内容
  306. #define DH_SNIFFER_PROTOCOL_SIZE 20 // 协议名字长度
  307. #define DH_MAX_PROTOCOL_NAME_LENGTH 20
  308. #define DH_SNIFFER_GROUP_NUM 4 // 4组抓包设置
  309. #define MAX_PATH_STOR 240 // 远程目录的长度
  310. #define DH_ALARM_OCCUR_TIME_LEN 40 // 新的报警上传时间的长度
  311. #define DH_VIDEO_OSD_NAME_NUM 64 // 叠加的名称长度,目前支持32个英文,16个中文
  312. #define DH_VIDEO_CUSTOM_OSD_NUM 8 // 支持的自定义叠加的数目,不包含时间和通道
  313. #define DH_VIDEO_CUSTOM_OSD_NUM_EX 256 // 支持的自定义叠加的数目,不包含时间和通道
  314. #define DH_CONTROL_AUTO_REGISTER_NUM 100 // 支持定向主动注册服务器的个数
  315. #define DH_MMS_RECEIVER_NUM 100 // 支持短信接收者的个数
  316. #define DH_MMS_SMSACTIVATION_NUM 100 // 支持短信发送者的个数
  317. #define DH_MMS_DIALINACTIVATION_NUM 100 // 支持拨号发送者的个数
  318. #define DH_MAX_ALARMOUT_NUM_EX 32 // 报警输出口个数上限扩展
  319. #define DH_MAX_VIDEO_IN_NUM_EX 32 // 视频输入口个数上限扩展
  320. #define DH_MAX_ALARM_IN_NUM_EX 32 // 报警输入口个数上限
  321. #define DH_MAX_IPADDR_OR_DOMAIN_LEN 64 // IP地址字符串长度
  322. #define DH_MAX_CALLID 32 // 呼叫ID
  323. #define DH_MAX_OBJECT_LIST 16 // 智能分析设备检测到的物体ID个数上限
  324. #define DH_MAX_OBJECT_NUM 32 // 最大object个数
  325. #define DH_MAX_RULE_LIST 16 // 智能分析设备规则个数上限
  326. #define DH_MAX_POLYGON_NUM 16 // 多边形最大顶点个数
  327. #define DH_MAX_DETECT_LINE_NUM 20 // 规则检测线最大顶点数
  328. #define DH_MAX_DETECT_REGION_NUM 20 // 规则检测区域最大顶点数
  329. #define MAX_CARGO_CHANNEL_NUM 8 // 最大货物通道数
  330. #define DH_MAX_TRACK_LINE_NUM 20 // 物体运动轨迹最大顶点数
  331. #define DH_MAX_CANDIDATE_NUM 50 // 目标识别最大匹配数
  332. #define DH_MAX_PERSON_IMAGE_NUM 48 // 每个人员对应的最大目标图片数
  333. #define DH_MAX_FENCE_LINE_NUM 2 // 围栏最大曲线数
  334. #define MAX_SMART_VALUE_NUM 30 // 最多的smart信息个数
  335. #define DH_MACHINE_NAME_NUM 64 // 机器名称长度
  336. #define DH_INTERVIDEO_AMP_DEVICESERIAL 48 // 平台接入配置 设备序列号字符串长度
  337. #define DH_INTERVIDEO_AMP_DEVICENAME 16 // 平台接入配置 设备名称字符串长度
  338. #define DH_INTERVIDEO_AMP_USER 32 // 平台接入配置 注册用户名字符串长度
  339. #define DH_INTERVIDEO_AMP_PWD 32 // 平台接入配置 注册密码字符串长度
  340. #define MAX_SUBMODULE_NUM 32 // 最多子模块信息个数
  341. #define DH_MAX_CARWAY_NUM 8 // 交通抓拍,最大车道数
  342. #define DH_MAX_SNAP_SIGNAL_NUM 3 // 一个车道的最大抓拍张数
  343. #define DH_MAX_CARD_NUM 128 // 卡号的最大个数
  344. #define DH_MAX_CARDINFO_LEN 32 // 每条卡号最长字符数
  345. #define MAX_COMPANION_CARD_NUM 6 // 陪同者卡号最大个数
  346. #define DH_MAX_CONTROLER_NUM 64 // 最大支持控制器数目
  347. #define DH_MAX_LIGHT_NUM 32 // 最多控制灯组数
  348. #define DH_MAX_SNMP_COMMON_LEN 64 // snmp 读写数据长度
  349. #define DH_MAX_DDNS_STATE_LEN 128 // DDNS 状态信息长度
  350. #define DH_MAX_PHONE_NO_LEN 16 // 电话号码长度
  351. #define DH_MAX_MSGTYPE_LEN 32 // 导航类型或短信息类型长度
  352. #define DH_MAX_MSG_LEN 256 // 导航和短信息长度
  353. #define DH_MAX_DRIVINGDIRECTION 256 // 行驶方向字符串长度
  354. #define DH_MAX_GRAB_INTERVAL_NUM 4 // 多张图片抓拍个数
  355. #define DH_MAX_FLASH_NUM 5 // 最多支持闪光灯个数
  356. #define DH_MAX_LANE_NUM 8 // 视频分析设备每个通道对应车道数上限
  357. #define DH_MAX_ISCSI_PATH_NUM 64 // ISCSI远程目录最大数量
  358. #define DH_MAX_WIRELESS_CHN_NUM 256 // 无线路由最大信道数
  359. #define DH_PROTOCOL3_BASE 100 // 三代协议版本基数
  360. #define DH_PROTOCOL3_SUPPORT 11 // 只支持3代协议
  361. #define DH_MAX_CHANMASK 64 // 通道掩码最大值
  362. #define DH_MAX_STAFF_NUM 20 // 浓缩视频配置信息中标尺数上限
  363. #define DH_MAX_CALIBRATEBOX_NUM 10 // 浓缩视频配置信息中标定区域数上限
  364. #define DH_MAX_EXCLUDEREGION_NUM 10 // 浓缩视频配置信息中排除区域数上限
  365. #define DH_MAX_POLYLINE_NUM 20 // 浓缩视频配置信息中标尺线数
  366. #define DH_MAX_COLOR_NUM 16 // 最大颜色数目
  367. #define MAX_OBJFILTER_NUM 16 // 最大过滤种类个数
  368. #define DH_MAX_SYNOPSIS_STATE_NAME 64 // 视频浓缩状态字符串长度
  369. #define DH_MAX_SYNOPSIS_QUERY_FILE_COUNT 10 // 视频浓缩相关原始文件按照路径查找时文件个数上限
  370. #define DH_MAX_SSID_LEN 36 // SSID长度
  371. #define DH_MAX_APPIN_LEN 16 // PIN码长度
  372. #define DH_NETINTERFACE_NAME_LEN 260 // 网口名称长度
  373. #define DH_NETINTERFACE_TYPE_LEN 260 // 网络类型长度
  374. #define DH_MAX_CONNECT_STATUS_LEN 260 // 连接状态字符串长度
  375. #define DH_MAX_MODE_LEN 64 // 3G支持的网络模式长度
  376. #define DH_MAX_MODE_NUM 64 // 3G支持的网络模式个数
  377. #define DH_MAX_COMPRESSION_TYPES_NUM 16 // 视频编码格式最多种类个数
  378. #define DH_MAX_CAPTURE_SIZE_NUM 64 // 视频分辨率个数
  379. #define DH_NODE_NAME_LEN 64 // 组织结构节点名称长度
  380. #define MAX_CALIBPOINTS_NUM 256 // 支持最大标定点数
  381. #define DH_MAX_ATTR_NUM 32 // 显示单元属性最大数量
  382. #define DH_MAX_CLOUDCONNECT_STATE_LEN 128 // 云注册连接状态信息长度
  383. #define DH_MAX_IPADDR_EX_LEN 128 // 扩展IP地址最大长度
  384. #define DH_MAX_PLATE_NUMBER_LEN 32 // 车牌字符串长度
  385. #define DH_MAX_AUTHORITY_LIST_NUM 16 // 权限列表最大个数
  386. #define DH_MAX_CITY_NAME_LEN 64 // 城市名称最大长度
  387. #define DH_MAX_PROVINCE_NAME_LEN 64 // 省份名称最大长度
  388. #define DH_MAX_PERSON_ID_LEN 32 // 人员id最大长度
  389. #define MAX_FACE_AREA_NUM 8 // 最大目标区域个数
  390. #define MAX_FACE_DB_NUM 8 // 最大目标数据库个数
  391. #define MAX_EVENT_NAME 128 // 最长事件名
  392. #define DH_MAX_ETH_NAME 64 // 最大网卡名
  393. #define DH_MAX_PERSON_NAME_LEN 64 // 人员名字最大长度
  394. #define DH_N_SCHEDULE_TSECT 8 // 时间表元素个数
  395. #define DH_MAX_URL_NUM 8 // URL最大个数
  396. #define DH_MAX_LOWER_MITRIX_NUM 16 // 最大下位矩阵数
  397. #define DH_MAX_BURN_CHANNEL_NUM 32 // 最大刻录通道数
  398. #define DH_MAX_NET_STRORAGE_BLOCK_NUM 64 // 最大远程存储区块数量
  399. #define DH_MAX_CASE_PERSON_NUM 32 // 案件人员最大数量
  400. #define DH_MAX_MULTIPLAYBACK_CHANNEL_NUM 64 // 最大多通道预览回放通道数
  401. #define DH_MAX_MULTIPLAYBACK_SPLIT_NUM 32 // 最大多通道预览回放分割模式数
  402. #define DH_MAX_AUDIO_ENCODE_TYPE 64 // 最大语音编码类型个数
  403. #define MAX_LOG_PATH_LEN 260 // 日志路径名最大长度
  404. #define MAX_CARD_RECORD_FIELD_NUM 16 // 卡号录像最大域数量
  405. #define DH_BATTERY_NUM_MAX 16 // 最大电池数量
  406. #define DH_POWER_NUM_MAX 16 // 最大电源数量
  407. #define DH_MAX_AUDIO_PATH 260 // 最大音频文件路长度
  408. #define DH_MAX_DOORNAME_LEN 128 // 最大门禁名称长度
  409. #define DH_MAX_CARDPWD_LEN 64 // 最大门禁名称长度
  410. #define NET_MAX_FISHEYE_MOUNTMODE_NUM 4 // 最大鱼眼安装模式个数
  411. #define NET_MAX_FISHEYE_CALIBRATEMODE_NUM 16 // 最大鱼眼矫正模式个数
  412. #define NET_MAX_FISHEYE_EPTZCMD_NUM 64 // 最大鱼眼电子云台操作个数
  413. #define POINT_NUM_IN_PAIR 2 // 标定点对中的点数量
  414. #define MAX_POINT_PAIR_NUM 128 // 标定点最大数量
  415. #define CHANNEL_NUM_IN_POINT_GROUP 2 // 标定点中的视频通道数
  416. #define MAX_POINT_GROUP_NUM 32 // 标定点组最大数量, 每两个通道进行拼接需要一组标定点
  417. #define MAX_LANE_INFO_NUM 32 // 最大车道信息数
  418. #define MAX_LANE_DIRECTION_NUM 8 // 车道方向总数
  419. #define DH_MAX_MONITORWALL_NUM 32 // 电视墙最大数量
  420. #define DH_MAX_OPTIONAL_URL_NUM 8 // 备用url最大数量
  421. #define DH_MAX_CAMERA_CHANNEL_NUM 1024 // 最大摄像机通道数
  422. #define MAX_SIMILARITY_COUNT 1024 // 最大目标对比库阈值个数
  423. #define MAX_FEATURESTATE_NUM 4 // 最大目标组建模状态个数
  424. #define MAX_FILE_SUMMARY_NUM 32 // 最大文件摘要数
  425. #define MAX_AUDIO_ENCODE_NUM 64 // 最大支持音频编码个数
  426. #define MAX_MONITORWALL_NAME_LEN 64 // 电视墙名称最大长度
  427. #define MAX_FLASH_LIGHT_NUM 8 // 最大支持的爆闪灯(闪光灯)个数
  428. #define MAX_STROBOSCOPIC_LIGHT_NUM 8 // 最大支持的频闪灯个数
  429. #define MAX_MOSAIC_NUM 8 // 最大支持的马赛克数量
  430. #define MAX_MOSAIC_CHANNEL_NUM 256 // 支持马赛克叠加的最多通道数量
  431. #define MAX_FIREWARNING_INFO_NUM 4 // 最大热成像着火点报警信息个数
  432. #define MAX_AXLE_NUM 8 // 最大车轴数量
  433. #define DH_MAX_BULLET_HOLES 10 // 最大的弹孔数
  434. #define MAX_PLATE_NUM 64 // 每张图片中包含的最大车牌个数
  435. #define MAX_PREVIEW_CHANNEL_NUM 64 // 最大导播预览的通道数量
  436. #define MAX_EVENT_RESTORE_UUID 36 // 事件重传uuid数组大小
  437. #define MAX_EVENT_RESTORE_CODE_NUM 8 // 最大事件重传类型个数
  438. #define MAX_EVENT_RESOTER_CODE_TYPE 32 // 事件重传类型数组大小
  439. #define MAX_SNAP_TYPE 3 // 抓图类型数量
  440. #define MAX_MAINFORMAT_NUM 4 // 最大支持主码流类型数量
  441. #define CUSTOM_TITLE_LEN 1024 // 自定义标题名称长度(扩充到1024)
  442. #define MAX_CUSTOM_TITLE_NUM 8 // 编码物件自定义标题最大数量
  443. #define FORMAT_TYPE_LEN 16 // 编码类型名最大长度
  444. #define MAX_CHANNEL_NAME_LEN 256 // 通道名称最大长度
  445. #define MAX_VIRTUALINFO_DOMAIN_LEN 64 // 虚拟身份上网域名长度
  446. #define MAX_VIRTUALINFO_TITLE_LEN 64 // 虚拟身份上网标题长度
  447. #define MAX_VIRTUALINFO_USERNAME_LEN 32 // 虚拟身份用户名长度
  448. #define MAX_VIRTUALINFO_PASSWORD_LEN 32 // 虚拟身份密码长度
  449. #define MAX_VIRTUALINFO_PHONENUM_LEN 12 // 虚拟身份手机号长度
  450. #define MAX_VIRTUALINFO_IMEI_LEN 16 // 虚拟身份国际移动设备标识长度
  451. #define MAX_VIRTUALINFO_IMSI_LEN 16 // 虚拟身份国际移动用户识别码长度
  452. #define MAX_VIRTUALINFO_LATITUDE_LEN 16 // 虚拟身份经度长度
  453. #define MAX_VIRTUALINFO_LONGITUDE_LEN 16 // 虚拟身份纬度长度
  454. #define MAX_VIRTUALINFO_NUM 1024 // 最大虚拟身份信息个数
  455. #define MAX_CALL_ID_LEN 64 // 呼叫ID长度
  456. #define MAX_FACE_DATA_LEN 2048 // 目标模版数据最大长度
  457. #define MAX_FACE_DATA_NUM 20 // 目标模版最大个数
  458. #define MAX_PHOTO_COUNT 5 // 目标照片最大个数
  459. #define MAX_FINGERPRINT_NUM 10 // 最大信息个数
  460. #define MAX_RINGFILE_NUM 64 // 最大门铃音频文件个数
  461. #define MAX_VIDEOIN_CONFLICT_NUM 128 // 视频输出能力冲突最大组合数
  462. #define MAX_COURSE_LOGIC_CHANNEL 64 // 录播主机最大逻辑通道数
  463. #define MAX_COMMON_STRING_8 8 // 通用字符串长度8
  464. #define MAX_COMMON_STRING_16 16 // 通用字符串长度16
  465. #define MAX_COMMON_STRING_32 32 // 通用字符串长度32
  466. #define MAX_COMMON_STRING_64 64 // 通用字符串长度64
  467. #define MAX_MAN_LIST_COUNT 64 // 人员列表最大数量
  468. #define MAX_COMMON_STRING_128 128 // 通用字符串长度128
  469. #define MAX_STREAM_NUM 4 // 最大码流个数
  470. #define MAX_CELL_PHONE_NUMBER_LEN 32 // 最大手机号长度
  471. #define MAX_MAIL_LEN 64 // 邮箱最大长度
  472. #define MAX_USER_NAME_LEN 128 // 最大用户名长度
  473. #define MAX_PWD_LEN 128 // 最大密码长度
  474. #define MAX_SECURITY_CODE_LEN 16 // 平台发送到预留手机/邮箱中安全码最大长度
  475. #define MAX_PWD_SPEC_CHARS_ARRAY_LEN 128 // 密码规范中密码特殊字符列表最大长度
  476. #define MAX_PWD_BASIC_CHARS_ARRAY_LEN 128 // 密码规范中支持的基本字符类型列表最大长度
  477. #define MAX_COMMON_STRING_512 512 // 通用字符串长度512
  478. #define MAX_RFIDELETAG_CARDID_LEN 16 // RFID 电子车牌标签信息中卡号最大长度
  479. #define MAX_RFIDELETAG_DATE_LEN 16 // RFID 电子车牌标签信息中时间最大长度
  480. #define MAX_LINK_NAME_LEN 16 // 连接名称长度
  481. #define MAX_SERVER_ADDRESS_LEN 64 // 服务器IP长度
  482. #define LINK_LAYER_VPN_NUM 64 // 链路层VPN配置个数
  483. #define MAX_SERVER_IP_LEN 32 // 服务器IP长度
  484. #define MAX_SCENICSPOT_POINTS_NUM 256 // 总共有多少个景物点信息
  485. #define MAX_ACCESSSUBCONTROLLER_NUM 64 // 最大门禁分控器数量
  486. #define MAX_ACCESSDOOR_NUM 128 // 最大门数量
  487. #define MAX_ACCESS_READER_NUM 32 // 门禁单个门最大读卡器数量
  488. #define MAX_ACCESS_POINT_NUM 32 // 反潜路径最大节点个数
  489. #define MAX_CONFIG_NAME_LEN 128 // 最大配置名称长度
  490. #define MAX_PLATE_NUMBER_LEN 64 // 最大车牌号码长度
  491. #define MAX_MASTER_OF_CAR_LEN 32 // 最大车主姓名长度
  492. #define MAX_USER_TYPE_LEN 32 // 最大用户类型长度
  493. #define MAX_SUB_USER_TYPE_LEN 64 // 最大用户子类型长度
  494. #define MAX_REMARKS_LEN 64 // 最大备注信息长度
  495. #define MAX_PARK_CHARGE_LEN 32 // 最大停车费长度
  496. #define MAX_IN_TIME_LEN 32 // 最大车辆入场时间长度
  497. #define MAX_OUT_TIME_LEN 32 // 最大车辆出场时间长度
  498. #define MAX_CUSTOM_LEN 128 // 最大自定义显示长度
  499. #define MAX_DEAL_NUM_LEN 32 // 最大小票交易号长度
  500. #define MAX_STORE_NO_LEN 32 // 最大店号长度
  501. #define MAX_STORE_NAME_LEN 32 // 最大店名长度
  502. #define MAX_STORE_EMPLOYEE_ID_LEN 32 // 最大收银员工号长度
  503. #define MAX_PRODUCT_NO_LEN 32 // 最大商品代码长度
  504. #define MAX_PRODUCT_NAME_LEN 32 // 最大商品名称长度
  505. #define MAX_PRODUCT_CATEGORY_LEN 32 // 最大商品类别长度
  506. #define DH_MAX_FINGER_PRINT 10 // 信息ID数组最大长度
  507. #define MAX_SUBCHANNEL_NUM 16 // 视频子通道(采集器)最大个数
  508. #define MAX_NAME_LENGTH 32 // 最大姓名长度
  509. #define MAX_SNAP_URL_LEN 128 // 最大抓图地址长度
  510. #define MAX_CODE_LEN 64 // 最大物品编号长度
  511. #define MAX_PERSON_INFO_NUM 4 // 最大目标信息个数
  512. #define MAX_GOOD_INFO_NUM 128 // 最大物品信息个数
  513. #define MAX_SUB_TAG_NUM 20 // 子标签最大个数
  514. #define MAX_MANUFACTURER_LEN 32 // 最大的Mac地址所属制造商长度
  515. #define MAX_MACHISTORY_SSID_LEN 24 // 最大的历史SSID长度
  516. #define MAX_MACHISTORY_SSID_NUM 5 // 历史SSID的最大个数
  517. #define MAX_ROUTE_NUM 16 // 最大路由数量
  518. #define MAX_MCU_NUM 10 // 最大报警主机单片机个数
  519. #define MAX_ALARM_CHANNEL_NAME_LEN 64 // 最大报警名称长度
  520. #define MAX_INSIDEOBJECT_NUM 32 // 最大包裹内物品个数
  521. #define DH_PRETASK_CHANNEL 4 // 视频浓缩预处理任务
  522. #define MAX_AGE_NUM 2 // 最大年龄个数
  523. #define MAX_EMOTION_NUM 8 // 最大表情条件的个数
  524. #define MAX_CLASS_NUMBER_LEN 32 // 最大班级长度
  525. #define MAX_PHONENUMBER_LEN 16 // 最大电话长度
  526. #define MAX_NASFILE_NUM 8 // 最大NAS文件个数
  527. #define MAX_CROWD_DETECTION_NAME_LEN 128 // 最大人群密度检测事件名称长度
  528. #define MAX_CROWD_LIST_NUM 5 // 最大全局拥挤人群密度列表个数
  529. #define MAX_REGION_LIST_NUM 8 // 最大人数超限的报警区域ID列表个数
  530. #define MAX_RECORD_ENCRYPT_PASSWD_LEN 128 // 最大的录像加密密码长度
  531. #define MAX_EVENT_NAME_LEN 128 // 最大事件名称长度
  532. #define MAX_ABSTRACT_INFO_NUM 100 // 最大目标特征向量重建结果个数
  533. #define MAX_ACCESS_FLOOR_NUM 64 // 最大楼层数量
  534. #define MAX_TARGET_OBJECT_NUM 100 // 最大目标物体信息个数
  535. #define MAX_MACADDR_NUM 8 // 最大物理地址个数
  536. #define MAX_ADD_DEVICE_NUM 16 // 最大添加设备个数
  537. #define MAX_LINK_DEVICE_NUM 1024 // 最大连接设备个数
  538. #define MAX_DEVICE_CHANNEL_NUM 1024 // 设备最大通道个数
  539. #define MAX_PLATE_TAILNUM 10 // 最大限号个数
  540. #define MAX_OBJECT_NUM_EX 100 // 对象的最大个数
  541. #define MAX_LOCAL_IP_LEN 64 // 最大本地IP长度
  542. #define MAX_LV_NAME_NUM 64 // 最大的分区名称个数
  543. #define MAX_LV_NAME_LEN 128 // 最大的分区名称长度
  544. #define MAX_KEY_LEN 64 // 最大的关键字长度
  545. #define MAX_FILE_FINDER_PATH_NUM 10 // 最大的查询文件路径个数
  546. #define MAX_FILE_FINDER_PATH_LEN 256 // 最大的查询文件路径长度
  547. #define MAX_FILE_LIST_NUM 16 // 最大的查询文件列表个数
  548. #define MAX_FILE_LIST_LEN 256 // 最大的查询文件列表长度
  549. #define MAX_PARKINGLOCK_STATE_NUM 6 // 最大车位锁状态个数
  550. #define MAX_COMMON_STRING_256 256 // 通用字符串长度256
  551. #define MAX_COMMON_STRING_2048 2048 // 通用字符串长度2048
  552. #define MAX_RESOURCE_LEN 64 // 最大资源文件长度
  553. #define MAX_COMPANY_NAME_LEN 200 // 单位名称最大长度
  554. #define MAX_CONTACT_LEN 16 // 接收安全码的联系方式最大长度
  555. #define MAX_RADAR_SD_NUM 24 // 单雷达联动的最大球机数
  556. #define MAX_FLEXION_INFO_NUM 512 // 拐点信息最大个数
  557. #define MAX_CALIBRATE_PLOYGON_AREA_NUM 20 // 标定多边形区域最大顶点个数
  558. #define MAX_CALIBRATE_RECT_NUM 10 // 标定框最大个数
  559. #define MAX_SCENE_NUM 32 // 最大场景个数
  560. #define MAX_SNAP_SHOT_NUM 8 // 最大抓拍张数
  561. #define MAX_AIRPORT_VEHICLE_OBJECT_NUM 16 // 最大机场保障车检测个数
  562. #define MAX_UPGRADER_SERIAL_INFO 8 // 设备中可升级程序的最大个数
  563. // 查询类型,对应CLIENT_QueryDevState接口
  564. #define DH_DEVSTATE_COMM_ALARM 0x0001 // 查询普通报警状态(包括外部报警,视频丢失,动态检测)
  565. #define DH_DEVSTATE_SHELTER_ALARM 0x0002 // 查询遮挡报警状态
  566. #define DH_DEVSTATE_RECORDING 0x0003 // 查询录象状态
  567. #define DH_DEVSTATE_DISK 0x0004 // 查询硬盘信息
  568. #define DH_DEVSTATE_RESOURCE 0x0005 // 查询系统资源状态
  569. #define DH_DEVSTATE_BITRATE 0x0006 // 查询通道码流
  570. #define DH_DEVSTATE_CONN 0x0007 // 查询设备连接状态
  571. #define DH_DEVSTATE_PROTOCAL_VER 0x0008 // 查询网络协议版本号,pBuf = int*
  572. #define DH_DEVSTATE_TALK_ECTYPE 0x0009 // 查询设备支持的语音对讲格式列表,见结构体DHDEV_TALKFORMAT_LIST
  573. #define DH_DEVSTATE_SD_CARD 0x000A // 查询SD卡信息(IPC类产品)
  574. #define DH_DEVSTATE_BURNING_DEV 0x000B // 查询刻录机信息
  575. #define DH_DEVSTATE_BURNING_PROGRESS 0x000C // 查询刻录进度
  576. #define DH_DEVSTATE_PLATFORM 0x000D // 查询设备支持的接入平台
  577. #define DH_DEVSTATE_CAMERA 0x000E // 查询摄像头属性信息(IPC类产品),pBuf = DHDEV_CAMERA_INFO *,可以有多个结构体
  578. #define DH_DEVSTATE_SOFTWARE 0x000F // 查询设备软件版本信息
  579. #define DH_DEVSTATE_LANGUAGE 0x0010 // 查询设备支持的语音种类
  580. #define DH_DEVSTATE_DSP 0x0011 // 查询DSP能力描述(对应结构体DHDEV_DSP_ENCODECAP)
  581. #define DH_DEVSTATE_OEM 0x0012 // 查询OEM信息
  582. #define DH_DEVSTATE_NET 0x0013 // 查询网络运行状态信息
  583. #define DH_DEVSTATE_TYPE 0x0014 // 查询设备类型
  584. #define DH_DEVSTATE_SNAP 0x0015 // 查询功能属性(IPC类产品)
  585. #define DH_DEVSTATE_RECORD_TIME 0x0016 // 查询最早录像时间和最近录像时间
  586. #define DH_DEVSTATE_NET_RSSI 0x0017 // 查询无线网络信号强度,见结构体DHDEV_WIRELESS_RSS_INFO
  587. #define DH_DEVSTATE_BURNING_ATTACH 0x0018 // 查询附件刻录选项
  588. #define DH_DEVSTATE_BACKUP_DEV 0x0019 // 查询备份设备列表
  589. #define DH_DEVSTATE_BACKUP_DEV_INFO 0x001a // 查询备份设备详细信息
  590. #define DH_DEVSTATE_BACKUP_FEEDBACK 0x001b // 备份进度反馈
  591. #define DH_DEVSTATE_ATM_QUERY_TRADE 0x001c // 查询ATM交易类型
  592. #define DH_DEVSTATE_SIP 0x001d // 查询sip状态
  593. #define DH_DEVSTATE_VICHILE_STATE 0x001e // 查询车载wifi状态
  594. #define DH_DEVSTATE_TEST_EMAIL 0x001f // 查询邮件配置是否成功
  595. #define DH_DEVSTATE_SMART_HARD_DISK 0x0020 // 查询硬盘smart信息
  596. #define DH_DEVSTATE_TEST_SNAPPICTURE 0x0021 // 查询抓图设置是否成功
  597. #define DH_DEVSTATE_STATIC_ALARM 0x0022 // 查询静态报警状态
  598. #define DH_DEVSTATE_SUBMODULE_INFO 0x0023 // 查询设备子模块信息
  599. #define DH_DEVSTATE_DISKDAMAGE 0x0024 // 查询硬盘坏道能力
  600. #define DH_DEVSTATE_IPC 0x0025 // 查询设备支持的IPC能力, 见结构体DH_DEV_IPC_INFO
  601. #define DH_DEVSTATE_ALARM_ARM_DISARM 0x0026 // 查询报警布撤防状态
  602. #define DH_DEVSTATE_ACC_POWEROFF_ALARM 0x0027 // 查询ACC断电报警状态(返回一个DWORD, 1表示断电,0表示通电)
  603. #define DH_DEVSTATE_TEST_FTP_SERVER 0x0028 // 测试FTP服务器连接
  604. #define DH_DEVSTATE_3GFLOW_EXCEED 0x0029 // 查询3G流量超出阈值状态,(见结构体DHDEV_3GFLOW_EXCEED_STATE_INFO)
  605. #define DH_DEVSTATE_3GFLOW_INFO 0x002a // 查询3G网络流量信息,见结构体DH_DEV_3GFLOW_INFO
  606. #define DH_DEVSTATE_VIHICLE_INFO_UPLOAD 0x002b // 车载自定义信息上传(见结构体ALARM_VEHICLE_INFO_UPLOAD)
  607. #define DH_DEVSTATE_SPEED_LIMIT 0x002c // 查询限速报警状态(见结构体 ALARM_SPEED_LIMIT)
  608. #define DH_DEVSTATE_DSP_EX 0x002d // 查询DSP扩展能力描述(对应结构体DHDEV_DSP_ENCODECAP_EX)
  609. #define DH_DEVSTATE_3GMODULE_INFO 0x002e // 查询3G模块信息(对应结构体DH_DEV_3GMODULE_INFO)
  610. #define DH_DEVSTATE_MULTI_DDNS 0x002f // 查询多DDNS状态信息(对应结构体DH_DEV_MULTI_DDNS_INFO)
  611. #define DH_DEVSTATE_CONFIG_URL 0x0030 // 查询设备配置URL信息(对应结构体DH_DEV_URL_INFO)
  612. #define DH_DEVSTATE_HARDKEY 0x0031 // 查询HardKey状态(对应结构体DHDEV_HARDKEY_STATE)
  613. #define DH_DEVSTATE_ISCSI_PATH 0x0032 // 查询ISCSI路径列表(对应结构体DHDEV_ISCSI_PATHLIST)
  614. #define DH_DEVSTATE_DLPREVIEW_SLIPT_CAP 0x0033 // 查询设备本地预览支持的分割模式(对应结构体DEVICE_LOCALPREVIEW_SLIPT_CAP)
  615. #define DH_DEVSTATE_WIFI_ROUTE_CAP 0x0034 // 查询无线路由能力信息(对应结构体DHDEV_WIFI_ROUTE_CAP)
  616. #define DH_DEVSTATE_ONLINE 0x0035 // 查询设备的在线状态(返回一个DWORD, 1表示在线, 0表示断线)
  617. #define DH_DEVSTATE_PTZ_LOCATION 0x0036 // 查询云台状态信息(对应结构体 DH_PTZ_LOCATION_INFO)
  618. #define DH_DEVSTATE_MONITOR_INFO 0x0037 // 画面监控辅助信息(对应结构体DHDEV_MONITOR_INFO)
  619. #define DH_DEVSTATE_SUBDEVICE 0x0300 // 查询子设备(电源, 风扇等)状态(对应结构体CFG_DEVICESTATUS_INFO)
  620. #define DH_DEVSTATE_RAID_INFO 0x0038 // 查询RAID状态(对应结构体ALARM_RAID_INFO)
  621. #define DH_DEVSTATE_TEST_DDNSDOMAIN 0x0039 // 测试DDNS域名是否可用
  622. #define DH_DEVSTATE_VIRTUALCAMERA 0x003a // 查询虚拟摄像头状态(对应 DHDEV_VIRTUALCAMERA_STATE_INFO)
  623. #define DH_DEVSTATE_TRAFFICWORKSTATE 0x003b // 获取设备工作视频/线圈模式状态等(对应DHDEV_TRAFFICWORKSTATE_INFO)
  624. #define DH_DEVSTATE_ALARM_CAMERA_MOVE 0x003c // 获取摄像机移位报警事件状态(对应ALARM_CAMERA_MOVE_INFO)
  625. #define DH_DEVSTATE_ALARM 0x003e // 获取外部报警状态(对应 NET_CLIENT_ALARM_STATE)
  626. #define DH_DEVSTATE_VIDEOLOST 0x003f // 获取视频丢失报警状态(对应 NET_CLIENT_VIDEOLOST_STATE)
  627. #define DH_DEVSTATE_MOTIONDETECT 0x0040 // 获取动态监测报警状态(对应 NET_CLIENT_MOTIONDETECT_STATE)
  628. #define DH_DEVSTATE_DETAILEDMOTION 0x0041 // 获取详细的动态监测报警状态(对应 NET_CLIENT_DETAILEDMOTION_STATE)
  629. #define DH_DEVSTATE_VEHICLE_INFO 0x0042 // 获取车载自身各种硬件信息(对应 DHDEV_VEHICLE_INFO)
  630. #define DH_DEVSTATE_VIDEOBLIND 0x0043 // 获取视频遮挡报警状态(对应 NET_CLIENT_VIDEOBLIND_STATE)
  631. #define DH_DEVSTATE_3GSTATE_INFO 0x0044 // 查询3G模块相关信息(对应结构体DHDEV_VEHICLE_3GMODULE)
  632. #define DH_DEVSTATE_NETINTERFACE 0x0045 // 查询网络接口信息(对应 DHDEV_NETINTERFACE_INFO)
  633. #define DH_DEVSTATE_PICINPIC_CHN 0x0046 // 查询画中画通道号(对应DWORD数组)
  634. #define DH_DEVSTATE_COMPOSITE_CHN 0x0047 // 查询融合屏通道信息(对应DH_COMPOSITE_CHANNEL数组)
  635. #define DH_DEVSTATE_WHOLE_RECORDING 0x0048 // 查询设备整体录像状态(对应BOOL), 只要有一个通道在录像,即为设备整体状态为录像
  636. #define DH_DEVSTATE_WHOLE_ENCODING 0x0049 // 查询设备整体编码状态(对应BOOL), 只要有一个通道在编码,即为设备整体状态为编码
  637. #define DH_DEVSTATE_DISK_RECORDE_TIME 0x004a // 查询设备硬盘录像时间信息(pBuf = DEV_DISK_RECORD_TIME*,可以有多个结构体)
  638. #define DH_DEVSTATE_BURNER_DOOR 0x004b // 是否已弹出刻录机光驱门(对应结构体 NET_DEVSTATE_BURNERDOOR)
  639. #define DH_DEVSTATE_GET_DATA_CHECK 0x004c // 查询光盘数据校验进度(对应 NET_DEVSTATE_DATA_CHECK)
  640. #define DH_DEVSTATE_ALARM_IN_CHANNEL 0x004f // 查询报警输入通道信息(对应NET_ALARM_IN_CHANNEL数组)
  641. #define DH_DEVSTATE_ALARM_CHN_COUNT 0x0050 // 查询报警通道数(对应NET_ALARM_CHANNEL_COUNT)
  642. #define DH_DEVSTATE_PTZ_VIEW_RANGE 0x0051 // 查询云台可视域状态(对应 DH_OUT_PTZ_VIEW_RANGE_STATUS )
  643. #define DH_DEVSTATE_DEV_CHN_COUNT 0x0052 // 查询设备通道信息(对应NET_DEV_CHN_COUNT_INFO)
  644. #define DH_DEVSTATE_RTSP_URL 0x0053 // 查询设备支持的RTSP URL列表,见结构体DEV_RTSPURL_LIST
  645. #define DH_DEVSTATE_LIMIT_LOGIN_TIME 0x0054 // 查询设备登录的在线超时时间,返回一个BTYE,(单位:分钟) ,0表示不限制,非零正整数表示限制的分钟数
  646. #define DH_DEVSTATE_GET_COMM_COUNT 0x0055 // 获取串口数 见结构体NET_GET_COMM_COUNT
  647. #define DH_DEVSTATE_RECORDING_DETAIL 0x0056 // 查询录象状态详细信息(pBuf = NET_RECORD_STATE_DETAIL*)
  648. #define DH_DEVSTATE_PTZ_PRESET_LIST 0x0057 // 获取当前云台的预置点列表(对应结构NET_PTZ_PRESET_LIST)
  649. #define DH_DEVSTATE_EXTERNAL_DEVICE 0x0058 // 外接设备信息(pBuf = NET_EXTERNAL_DEVICE*)
  650. #define DH_DEVSTATE_GET_UPGRADE_STATE 0x0059 // 获取设备升级状态(对应结构DHDEV_UPGRADE_STATE_INFO)
  651. #define DH_DEVSTATE_MULTIPLAYBACK_SPLIT_CAP 0x005a // 获取多通道预览分割能力( 对应结构体 NET_MULTIPLAYBACK_SPLIT_CAP )
  652. #define DH_DEVSTATE_BURN_SESSION_NUM 0x005b // 获取刻录会话总数(pBuf = int*)
  653. #define DH_DEVSTATE_PROTECTIVE_CAPSULE 0x005c // 查询防护舱状态(对应结构体ALARM_PROTECTIVE_CAPSULE_INFO)
  654. #define DH_DEVSTATE_GET_DOORWORK_MODE 0x005d // 获取门锁控制模式( 对应 NET_GET_DOORWORK_MODE)
  655. #define DH_DEVSTATE_PTZ_ZOOM_INFO 0x005e // 查询云台获取光学变倍信息(对应 DH_OUT_PTZ_ZOOM_INFO )
  656. #define DH_DEVSTATE_POWER_STATE 0x0152 // 查询电源状态(对应结构体DH_POWER_STATUS)
  657. #define DH_DEVSTATE_ALL_ALARM_CHANNELS_STATE 0x153 // 查询报警通道状态(对应结构体 NET_CLIENT_ALARM_CHANNELS_STATE)
  658. #define DH_DEVSTATE_ALARMKEYBOARD_COUNT 0x0154 // 查询串口上连接的报警键盘数(对应结构体NET_ALARMKEYBOARD_COUNT)
  659. #define DH_DEVSTATE_EXALARMCHANNELS 0x0155 // 查询扩展报警模块通道映射关系(对应结构体 NET_EXALARMCHANNELS)
  660. #define DH_DEVSTATE_GET_BYPASS 0x0156 // 查询通道旁路状态(对应结构体 NET_DEVSTATE_GET_BYPASS)
  661. #define DH_DEVSTATE_ACTIVATEDDEFENCEAREA 0x0157 // 获取激活的防区信息(对应结构体 NET_ACTIVATEDDEFENCEAREA)
  662. #define DH_DEVSTATE_DEV_RECORDSET 0x0158 // 查询设备记录集信息(对应 NET_CTRL_RECORDSET_PARAM)
  663. #define DH_DEVSTATE_DOOR_STATE 0x0159 // 查询门禁状态(对应NET_DOOR_STATUS_INFO)
  664. #define DH_DEVSTATE_ANALOGALARM_CHANNELS 0x1560 // 模拟量报警输入通道映射关系(对应NET_ANALOGALARM_CHANNELS)
  665. #define DH_DEVSTATE_GET_SENSORLIST 0x1561 // 获取设备支持的传感器列表(对应 NET_SENSOR_LIST)
  666. #define DH_DEVSTATE_ALARM_CHANNELS 0x1562 // 查询开关量报警模块通道映射关系(对应结构体 NET_ALARM_CHANNELS)
  667. // 如果设备不支持查询扩展报警模块通道,可以用该功能查询扩展通道的逻辑通道号,并当做本地报警通道使用
  668. #define DH_DEVSTATE_GET_ALARM_SUBSYSTEM_ACTIVATESTATUS 0x1563 // 获取当前子系统启用状态( 对应 NET_GET_ALARM_SUBSYSTEM_ACTIVATE_STATUES)
  669. #define DH_DEVSTATE_AIRCONDITION_STATE 0x1564 // 获取空调工作状态(对应 NET_GET_AIRCONDITION_STATE)
  670. #define DH_DEVSTATE_ALARMSUBSYSTEM_STATE 0x1565 // 获取子系统状态(对应NET_ALARM_SUBSYSTEM_STATE)
  671. #define DH_DEVSTATE_ALARM_FAULT_STATE 0x1566 // 获取故障状态(对应 NET_ALARM_FAULT_STATE_INFO)
  672. #define DH_DEVSTATE_DEFENCE_STATE 0x1567 // 获取防区状态(对应 NET_DEFENCE_STATE_INFO, 和旁路状态变化事件、本地报警事件、报警信号源事件的状态描述有区别,不能混用,仅个别设备使用)
  673. #define DH_DEVSTATE_CLUSTER_STATE 0x1568 // 获取集群状态(对应 NET_CLUSTER_STATE_INFO)
  674. #define DH_DEVSTATE_SCADA_POINT_LIST 0x1569 // 获取点位表路径信息(对应 NET_SCADA_POINT_LIST_INFO)
  675. #define DH_DEVSTATE_SCADA_INFO 0x156a // 获取监测点位信息(对应 NET_SCADA_INFO)
  676. #define DH_DEVSTATE_SCADA_CAPS 0x156b // 获取SCADA能力集(对应 NET_SCADA_CAPS)
  677. #define DH_DEVSTATE_GET_CODEID_COUNT 0x156c // 获取对码成功的总条数(对应 NET_GET_CODEID_COUNT)
  678. #define DH_DEVSTATE_GET_CODEID_LIST 0x156d // 查询对码信息(对应 NET_GET_CODEID_LIST)
  679. #define DH_DEVSTATE_ANALOGALARM_DATA 0x156e // 查询模拟量通道数据(对应 NET_GET_ANALOGALARM_DATA)
  680. #define DH_DEVSTATE_VTP_CALLSTATE 0x156f // 获取视频电话呼叫状态(对应 NET_GET_VTP_CALLSTATE)
  681. #define DH_DEVSTATE_SCADA_INFO_BY_ID 0x1570 // 通过设备、获取监测点位信息(对应 NET_SCADA_INFO_BY_ID)
  682. #define DH_DEVSTATE_SCADA_DEVICE_LIST 0x1571 // 获取当前主机所接入的外部设备ID(对应 NET_SCADA_DEVICE_LIST)
  683. #define DH_DEVSTATE_DEV_RECORDSET_EX 0x1572 // 查询设备记录集信息(带二进制数据)(对应 NET_CTRL_RECORDSET_PARAM)
  684. #define DH_DEVSTATE_ACCESS_LOCK_VER 0x1573 // 获取门锁软件版本号(对应 NET_ACCESS_LOCK_VER)
  685. #define DH_DEVSTATE_MONITORWALL_TVINFO 0x1574 // 获取电视墙显示信息(对应 NET_CTRL_MONITORWALL_TVINFO)
  686. #define DH_DEVSTATE_GET_ALL_POS 0x1575 // 获取所有用户可用Pos设备配置信息(对应 NET_POS_ALL_INFO)
  687. #define DH_DEVSTATE_GET_ROAD_LIST 0x1576 // 获取城市及路段编码信息(对应 NET_ROAD_LIST_INFO)
  688. #define DH_DEVSTATE_GET_HEAT_MAP 0x1577 // 获取热度统计信息(对应 NET_QUERY_HEAT_MAP)
  689. #define DH_DEVSTATE_GET_WORK_STATE 0x1578 // 获取盒子工作状态信息(对应 NET_QUERY_WORK_STATE)
  690. #define DH_DEVSTATE_GET_WIRESSLESS_STATE 0x1579 // 获取无线设备状态信息(对应 NET_GET_WIRELESS_DEVICE_STATE)
  691. #define DH_DEVSTATE_GET_REDUNDANCE_POWER_INFO 0x157a // 获取冗余电源信息(对应 NET_GET_REDUNDANCE_POWER_INFO)
  692. #define DH_DEVSTATE_GET_ACCESSORY_STATUS 0x157b // 获取配件状态(对应 NET_GET_ACCESSORY_STATUS)
  693. #define DH_DEVSTATE_GET_PTZ_TOURS 0x157c // 获取已经设置的巡航线路列表(对应 NET_GET_PTZ_TOURS_INFO)
  694. #define DH_DEVSTATE_GET_DEVWIRELESSSIGNAL_LIST 0x157d // 获取无线设备信号强度(对应 NET_GET_DEVWIRELESSSIGNAL_LIST )
  695. #define DH_DEVSTATE_GET_ACCESSORY_INFO 0x157e // 获取配件信息(对应 NET_GET_ACCESSORY_INFO)
  696. #define DH_DEVSTATE_GET_UPNP_STATUS 0x157f // 获取UPnP映射状态(对应 NET_GET_UPNPSTATUS_INFO)
  697. //////////////////////////////////////////////////////////////////////
  698. // 用于设置结构体 dwSize 成员的宏
  699. #define _setdwSize(stu) ((stu).dwSize = sizeof(stu))
  700. #define POINTERSIZE sizeof(void*)
  701. //////////////////////////////////////////////////////////////////////
  702. #define CFG_MAX_ACCESSCONTROL_NUM 8 // 最大门禁操作的组合数
  703. #define CFG_MAX_SUMMARY_LEN 1024 // 叠加到JPEG图片的摘要信息最大长度
  704. #define CFG_MAX_DBKEY_NUM 64 // 数据库关键字最大值
  705. #define CFG_MAX_CHANNELNAME_LEN 64 // 最大通道名称长度
  706. #define CFG_MAX_VIDEO_CHANNEL_NUM 256 // 最大通道数256
  707. #define CFG_MAX_CHANNEL_COUNT 16
  708. #define CFG_MAX_PSTN_SERVER_NUM 8 // 最大报警电话服务器数
  709. ///@brief 三态布尔类型
  710. typedef enum tagNET_THREE_STATUS_BOOL
  711. {
  712. BOOL_STATUS_FALSE = 0 ,
  713. BOOL_STATUS_TRUE ,
  714. BOOL_STATUS_UNKNOWN , //未知
  715. }NET_THREE_STATUS_BOOL;
  716. //////////////////////////////////////////////////////////////////////
  717. ///@brief 空调工作模式
  718. typedef enum __EM_AIRCONDITION_MODE
  719. {
  720. AIRCONDITION_MODE_UNKNOWN = 0,
  721. AIRCONDITION_MODE_AUTO, // 自动
  722. AIRCONDITION_MODE_HOT, // 制热
  723. AIRCONDITION_MODE_COLD, // 制冷
  724. AIRCONDITION_MODE_WET, // 除湿
  725. AIRCONDITION_MODE_WIND, // 通风
  726. } EM_AIRCONDITION_MODE;
  727. ///@brief 空调送风模式
  728. typedef enum __EM_AIRCONDITION_WINDMODE
  729. {
  730. AIRCONDITION_WINDMODE_UNKNOWN = 0,
  731. AIRCONDITION_WINDMODE_STOP, // 停止
  732. AIRCONDITION_WINDMODE_AUTO, // 自动
  733. AIRCONDITION_WINDMODE_HIGH, // 高速
  734. AIRCONDITION_WINDMODE_MIDDLE, // 中速
  735. AIRCONDITION_WINDMODE_LOW, // 低速
  736. } EM_AIRCONDITION_WINDMODE;
  737. ///@brief 空调工作状态信息烟雾检测
  738. typedef struct tagNET_AIRCONDITION_STATE_INFO
  739. {
  740. DWORD dwSize;
  741. BOOL bIsOnline; // 是否在线
  742. BOOL bIsON; // 是否开启
  743. int nTemperature; // 空调设定温度
  744. EM_AIRCONDITION_MODE emAirconditionMode; // 空调工作模式
  745. EM_AIRCONDITION_WINDMODE emAirconditionWindMode; // 空调送风模式
  746. float fActualTemperature; // 环境实际温度
  747. }NET_AIRCONDITION_STATE_INFO;
  748. ///@brief 获取空调工作状态(对应DH_DEVSTATE_AIRCONDITION_STATE命令)
  749. typedef struct tagNET_GET_AIRCONDITION_STATE
  750. {
  751. DWORD dwSize;
  752. char szDeviceID[DH_MAX_DEV_ID_LEN]; // 设备惟一标识符
  753. NET_AIRCONDITION_STATE_INFO stuAirConditionState; // 空调工作状态信息
  754. }NET_GET_AIRCONDITION_STATE;
  755. ///@brief 开关量报警通道信息
  756. typedef struct tagNET_ALARM_CHANNEL_INFO
  757. {
  758. DWORD dwSize;
  759. int nSlot; // 根地址, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推
  760. int nChannel; // 非本地报警通道在扩展模块上的通道号, 从0开始
  761. char szName[DH_COMMON_STRING_128]; // 通道名称
  762. }NET_ALARM_CHANNEL_INFO;
  763. ///@brief 本地(或远程)开关量报警通道和逻辑通道号映射关系
  764. typedef struct tagNET_ALARM_CHANNELS
  765. {
  766. DWORD dwSize;
  767. int nMaxAlarmChannels; // 最大通道数
  768. int nRetAlarmChannels; // 返回的通道数
  769. NET_ALARM_CHANNEL_INFO* pstuChannelInfo; // 通道信息,用户分配内存
  770. }NET_ALARM_CHANNELS;
  771. ///@brief 报警子系统状态类型
  772. typedef enum __EM_ALARM_SUBSYSTEM_STATE_TYPE
  773. {
  774. ALARM_SUBSYSTEM_STATE_UNKNOWN = 0,
  775. ALARM_SUBSYSTEM_STATE_ACTIVE, // 已激活
  776. ALARM_SUBSYSTEM_STATE_INACTIVE, // 未激活
  777. ALARM_SUBSYSTEM_STATE_UNDISTRIBUTED, // 未分配
  778. }EM_ALARM_SUBSYSTEM_STATE_TYPE;
  779. ///@brief 报警子系统状态, CLIENT_QueryDevState对应命令DH_DEVSTATE_ALARMSUBSYSTEM_STATE
  780. typedef struct tagNET_ALARM_SUBSYSTEM_STATE
  781. {
  782. DWORD dwSize;
  783. int nMaxAlarmSubSystem; // 有效子系统个数
  784. EM_ALARM_SUBSYSTEM_STATE_TYPE emState[DH_MAX_ALARM_SUBSYSTEM_NUM]; // 子系统状态信息
  785. }NET_ALARM_SUBSYSTEM_STATE;
  786. ///@brief 故障类型
  787. typedef enum __EM_ALARM_FAULT_STATE_TYPE
  788. {
  789. EM_ALARM_FAULT_STATE_ALL = 0, // 所有类型
  790. EM_ALARM_FAULT_STATE_CONNECTFAULT, // 连接故障
  791. EM_ALARM_FAULT_STATE_BELLFAULT, // 警号故障
  792. EM_ALARM_FAULT_STATE_KBFAULT, // 键盘故障
  793. EM_ALARM_FAULT_STATE_KBTAMPER, // 键盘防拆
  794. EM_ALARM_FAULT_STATE_SENSORSHORTOUT, // 传感器短路
  795. EM_ALARM_FAULT_STATE_SENSORTAMPER, // 传感器防拆
  796. }EM_ALARM_FAULT_STATE_TYPE;
  797. ///@brief 报警故障状态, 输入参数
  798. typedef struct tagNET_IN_ALARM_FAULT_STATE
  799. {
  800. DWORD dwSize;
  801. EM_ALARM_FAULT_STATE_TYPE emType; // 待查询的类型
  802. }NET_IN_ALARM_FAULT_STATE;
  803. ///@brief 报警故障状态, 输出参数
  804. typedef struct tagNET_OUT_ALARM_FAULT_STATE
  805. {
  806. DWORD dwSize;
  807. int nConnectFaultState; // 0: 未知, 1: 正常, 2:故障
  808. int nBell; // 警号有效个数
  809. int anBellState[DH_MAX_BELL_NUM]; // 警号故障状态信息 0: 未知, 1: 正常, 2:故障
  810. int nFaultKeyboard; // 键盘故障有效个数
  811. int anFaultKeyboard[DH_MAX_KEYBOARD_NUM]; // 键盘故障信息 0: 未知, 1: 正常, 2:故障
  812. int nTamperKeyboard; // 键盘有效防拆个数
  813. int anTamperKeyboard[DH_MAX_KEYBOARD_NUM]; // 键盘防拆信息 0: 未知, 1: 正常, 2:故障
  814. int nShortOutSensor; // 传感器有效短路个数
  815. int anShortOutSensor[DH_MAX_ALARMIN]; // 传感器短路信息 0: 未知, 1: 正常, 2:故障
  816. int nTamperSensor; // 传感器有效防拆个数
  817. int anTamperSensor[DH_MAX_ALARMIN]; // 传感器防拆信息 0: 未知, 1: 正常, 2:故障
  818. }NET_OUT_ALARM_FAULT_STATE;
  819. ///@brief 报警故障状态, CLIENT_QueryDevState对应命令DH_DEVSTATE_ALARM_FAULT_STATE
  820. typedef struct tagNET_ALARM_FAULT_STATE_INFO
  821. {
  822. DWORD dwSize;
  823. NET_IN_ALARM_FAULT_STATE stuIn; // 输入参数
  824. NET_OUT_ALARM_FAULT_STATE stuOut; // 输出参数
  825. }NET_ALARM_FAULT_STATE_INFO;
  826. ///@brief 防区状态类型
  827. typedef enum __EM_DEFENCE_STATE_TYPE
  828. {
  829. EM_DEFENCE_STATE_UNKNOWN = 0,
  830. EM_DEFENCE_STATE_BYPASS, // 旁路
  831. EM_DEFENCE_STATE_OPEN, // 打开, 指撤防情况下发生报警
  832. EM_DEFENCE_STATE_CLOSE, // 关闭
  833. EM_DEFENCE_STATE_ALARMING, // 报警, 指布防情况下发生报警
  834. EM_DEFENCE_STATE_ISOLATED, //隔离
  835. EM_DEFENCE_STATE_SHORT, //短路
  836. EM_DEFENCE_STATE_BREAK, //断路
  837. EM_DEFENCE_STATE_INTRUDED, //防拆
  838. }EM_DEFENCE_STATE_TYPE;
  839. ///@brief 防区状态信息的输入参数
  840. typedef struct tagNET_IN_DEFENCE_STATE_INFO
  841. {
  842. DWORD dwSize;
  843. int nDefenceNum; // 防区有效个数, -1表示查询所有防区
  844. int anDefence[DH_MAX_ALARMIN]; // 待查询的防区号
  845. }NET_IN_DEFENCE_STATE_INFO;
  846. ///@brief 防区状态信息的输出参数
  847. typedef struct tagNET_OUT_DEFENCE_STATE_INFO
  848. {
  849. DWORD dwSize;
  850. int nDefenceNum; // 防区有效个数
  851. EM_DEFENCE_STATE_TYPE anDefenceState[DH_MAX_ALARMIN]; // 防区状态信息
  852. }NET_OUT_DEFENCE_STATE_INFO;
  853. ///@brief 获取防区状态信息的输入参数
  854. typedef struct tagNET_IN_GET_DEFENCE_STATE_INFO
  855. {
  856. int nDefenceNum; // 防区有效个数, -1表示查询所有防区
  857. int anDefence[512]; // 待查询的防区号
  858. BYTE byReserved[512]; //保留字节
  859. }NET_IN_GET_DEFENCE_STATE_INFO;
  860. ///@brief 获取防区状态信息的输出参数
  861. typedef struct tagNET_OUT_GET_DEFENCE_STATE_INFO
  862. {
  863. int nDefenceNum; // 防区有效个数
  864. EM_DEFENCE_STATE_TYPE anDefenceState[512]; // 防区状态信息
  865. BYTE byReserved[512]; //保留字节
  866. }NET_OUT_GET_DEFENCE_STATE_INFO;
  867. ///@brief 防区状态信息, CLIENT_QueryDevState对应命令DH_DEVSTATE_DEFENCE_STATE
  868. typedef struct tagNET_DEFENCE_STATE_INFO
  869. {
  870. DWORD dwSize; // 结构体大小
  871. NET_IN_DEFENCE_STATE_INFO stuIn; // 输入参数
  872. NET_OUT_DEFENCE_STATE_INFO stuOut; // 输出参数
  873. }NET_DEFENCE_STATE_INFO;
  874. ///@brief 防区状态信息, CLIENT_QueryDevState对应命令DH_DEVSTATE_DEFENCE_STATE
  875. typedef struct tagNET_GET_DEFENCE_STATE_INFO
  876. {
  877. DWORD dwSize;
  878. NET_IN_GET_DEFENCE_STATE_INFO stuIn; // 输入参数
  879. NET_OUT_GET_DEFENCE_STATE_INFO stuOut; // 输出参数
  880. }NET_GET_DEFENCE_STATE_INFO;
  881. ///@brief 视频电话呼叫类型
  882. typedef enum tagEM_NET_VTP_CALL_TYPE
  883. {
  884. EM_NET_VTP_CALL_TYPE_SIP = 0, // SIP呼叫
  885. EM_NET_VTP_CALL_TYPE_GSM, // GSM呼叫
  886. EM_NET_VTP_CALL_TYPE_PRIVATE, // 私有协议呼叫
  887. }EM_NET_VTP_CALL_TYPE;
  888. ///@brief 视频电话呼叫状态类型
  889. typedef enum tagEM_NET_VTP_CALL_STATE_TYPE
  890. {
  891. EM_NET_VTP_CALL_STATE_UNKNOWN = 0,
  892. EM_NET_VTP_CALL_STATE_IDLE, // 初始状态
  893. EM_NET_VTP_CALL_STATE_CALLING, // 主叫呼叫状态(对方未回应)
  894. EM_NET_VTP_CALL_STATE_CALLED, // 被叫呼叫状态
  895. EM_NET_VTP_CALL_STATE_RINGING, // 主叫回铃状态(对方回应, 但没有接听)
  896. EM_NET_VTP_CALL_STATE_CONNECTING, // 通话中状态
  897. EM_NET_VTP_CALL_STATE_CONNECTING2, // 通话中2状态(通话媒体变更后的通话中状态)
  898. EM_NET_VTP_CALL_STATE_DISCONNECT, // 通话挂断状态
  899. }EM_NET_VTP_CALL_STATE_TYPE;
  900. ///@brief 获取视频电话呼叫状态 (对应 DH_DEVSTATE_VTP_CALLSTATE)
  901. typedef struct tagNET_GET_VTP_CALLSTATE
  902. {
  903. DWORD dwSize;
  904. EM_NET_VTP_CALL_TYPE emCallType; // 待查询的呼叫类型, 输入参数
  905. char szCallID[DH_COMMON_STRING_128]; // 待查询的对讲唯一标识, 输入参数
  906. const char* szTargetID; // 待转发的设备ID, 为NULL表示不转发, 输入参数
  907. EM_NET_VTP_CALL_STATE_TYPE emCallState; // 呼叫状态
  908. }NET_GET_VTP_CALLSTATE;
  909. // 查询类型,对应CLIENT_QueryRemotDevState接口
  910. #define DH_DEVSTATE_ALARM_REMOTE 0x1000 // 获取远程设备外部报警(对应 ALARM_REMOTE_ALARM_INFO)
  911. #define DH_DEVSTATE_ALARM_FRONTDISCONNECT 0x1001 // 获取前端IPC断网报警(对应结构体ALARM_FRONTDISCONNET_INFO)
  912. #define DH_DEVSTATE_GET_TRACKMOVESTATUS 0x1002 // 获取联动状态(对应 PTZ_GET_TRACKMOVESTATUS_INFO)
  913. // 配置类型,对应CLIENT_GetDevConfig和CLIENT_SetDevConfig接口
  914. #define DH_DEV_DEVICECFG 0x0001 // 设备属性配置
  915. #define DH_DEV_NETCFG 0x0002 // 网络配置
  916. #define DH_DEV_CHANNELCFG 0x0003 // 图象通道配置
  917. #define DH_DEV_PREVIEWCFG 0x0004 // 预览参数配置
  918. #define DH_DEV_RECORDCFG 0x0005 // 录像配置
  919. #define DH_DEV_COMMCFG 0x0006 // 串口属性配置
  920. #define DH_DEV_ALARMCFG 0x0007 // 报警属性配置
  921. #define DH_DEV_TIMECFG 0x0008 // DVR时间配置
  922. #define DH_DEV_TALKCFG 0x0009 // 对讲参数配置
  923. #define DH_DEV_AUTOMTCFG 0x000A // 自动维护配置
  924. #define DH_DEV_VEDIO_MARTIX 0x000B // 本机矩阵控制策略配置
  925. #define DH_DEV_MULTI_DDNS 0x000C // 多ddns服务器配置
  926. #define DH_DEV_SNAP_CFG 0x000D // 抓图相关配置
  927. #define DH_DEV_WEB_URL_CFG 0x000E // HTTP路径配置
  928. #define DH_DEV_FTP_PROTO_CFG 0x000F // FTP上传配置
  929. #define DH_DEV_INTERVIDEO_CFG 0x0010 // 平台接入配置,此时channel参数代表平台类型,
  930. // channel=4: 代表贝尔阿尔卡特;channel=10:代表力维;channel=11:代表U网通;channel=51:代表天地阳光
  931. #define DH_DEV_VIDEO_COVER 0x0011 // 区域遮挡配置
  932. #define DH_DEV_TRANS_STRATEGY 0x0012 // 传输策略配置,画质优先\流畅性优先
  933. #define DH_DEV_DOWNLOAD_STRATEGY 0x0013 // 录象下载策略配置,高速下载\普通下载
  934. #define DH_DEV_WATERMAKE_CFG 0x0014 // 图象水印配置
  935. #define DH_DEV_WLAN_CFG 0x0015 // 无线网络配置
  936. #define DH_DEV_WLAN_DEVICE_CFG 0x0016 // 搜索无线设备配置
  937. #define DH_DEV_REGISTER_CFG 0x0017 // 主动注册参数配置
  938. #define DH_DEV_CAMERA_CFG 0x0018 // 摄像头属性配置
  939. #define DH_DEV_INFRARED_CFG 0x0019 // 红外报警配置
  940. #define DH_DEV_SNIFFER_CFG 0x001A // Sniffer抓包配置
  941. #define DH_DEV_MAIL_CFG 0x001B // 邮件配置
  942. #define DH_DEV_DNS_CFG 0x001C // DNS服务器配置
  943. #define DH_DEV_NTP_CFG 0x001D // NTP配置
  944. #define DH_DEV_AUDIO_DETECT_CFG 0x001E // 音频检测配置
  945. #define DH_DEV_STORAGE_STATION_CFG 0x001F // 存储位置配置
  946. #define DH_DEV_PTZ_OPT_CFG 0x0020 // 云台操作属性(已经废除,请使用CLIENT_GetPtzOptAttr获取云台操作属性)
  947. #define DH_DEV_DST_CFG 0x0021 // 夏令时配置
  948. #define DH_DEV_ALARM_CENTER_CFG 0x0022 // 报警中心配置
  949. #define DH_DEV_VIDEO_OSD_CFG 0x0023 // 视频OSD叠加配置
  950. #define DH_DEV_CDMAGPRS_CFG 0x0024 // CDMA\GPRS网络配置
  951. #define DH_DEV_IPFILTER_CFG 0x0025 // IP过滤配置
  952. #define DH_DEV_TALK_ENCODE_CFG 0x0026 // 语音对讲编码配置
  953. #define DH_DEV_RECORD_PACKET_CFG 0x0027 // 录像打包长度配置
  954. #define DH_DEV_MMS_CFG 0x0028 // 短信MMS配置
  955. #define DH_DEV_SMSACTIVATION_CFG 0x0029 // 短信激活无线连接配置
  956. #define DH_DEV_DIALINACTIVATION_CFG 0x002A // 拨号激活无线连接配置
  957. #define DH_DEV_SNIFFER_CFG_EX 0x0030 // 网络抓包配置
  958. #define DH_DEV_DOWNLOAD_RATE_CFG 0x0031 // 下载速度限制
  959. #define DH_DEV_PANORAMA_SWITCH_CFG 0x0032 // 全景切换报警配置
  960. #define DH_DEV_LOST_FOCUS_CFG 0x0033 // 失去焦点报警配置
  961. #define DH_DEV_ALARM_DECODE_CFG 0x0034 // 报警解码器配置
  962. #define DH_DEV_VIDEOOUT_CFG 0x0035 // 视频输出参数配置
  963. #define DH_DEV_POINT_CFG 0x0036 // 预制点使能配置
  964. #define DH_DEV_IP_COLLISION_CFG 0x0037 // Ip冲突检测报警配置
  965. #define DH_DEV_OSD_ENABLE_CFG 0x0038 // OSD叠加使能配置
  966. #define DH_DEV_LOCALALARM_CFG 0x0039 // 本地报警配置(结构体DH_ALARMIN_CFG_EX)
  967. #define DH_DEV_NETALARM_CFG 0x003A // 网络报警配置(结构体DH_ALARMIN_CFG_EX)
  968. #define DH_DEV_MOTIONALARM_CFG 0x003B // 动检报警配置(结构体DH_MOTION_DETECT_CFG_EX)
  969. #define DH_DEV_VIDEOLOSTALARM_CFG 0x003C // 视频丢失报警配置(结构体DH_VIDEO_LOST_CFG_EX)
  970. #define DH_DEV_BLINDALARM_CFG 0x003D // 视频遮挡报警配置(结构体DH_BLIND_CFG_EX)
  971. #define DH_DEV_DISKALARM_CFG 0x003E // 硬盘报警配置(结构体DH_DISK_ALARM_CFG_EX)
  972. #define DH_DEV_NETBROKENALARM_CFG 0x003F // 网络中断报警配置(结构体DH_NETBROKEN_ALARM_CFG_EX)
  973. #define DH_DEV_ENCODER_CFG 0x0040 // 数字通道的前端编码器信息(混合DVR使用,结构体DEV_ENCODER_CFG)
  974. #define DH_DEV_TV_ADJUST_CFG 0x0041 // TV调节配置(channel代表TV号(0开始),类型结构体)
  975. #define DH_DEV_ABOUT_VEHICLE_CFG 0x0042 // 车载相关配置
  976. #define DH_DEV_ATM_OVERLAY_ABILITY 0x0043 // 获取atm叠加支持能力信息
  977. #define DH_DEV_ATM_OVERLAY_CFG 0x0044 // atm叠加配置,新atm特有
  978. #define DH_DEV_DECODER_TOUR_CFG 0x0045 // 解码器解码轮巡配置
  979. #define DH_DEV_SIP_CFG 0x0046 // SIP配置
  980. #define DH_DEV_VICHILE_WIFI_AP_CFG 0x0047 // wifi ap配置
  981. #define DH_DEV_STATICALARM_CFG 0x0048 // 静态报警配置
  982. #define DH_DEV_DECODE_POLICY_CFG 0x0049 // 设备的解码策略配置(结构体DHDEV_DECODEPOLICY_CFG,channel为解码通道0开始)
  983. #define DH_DEV_MACHINE_CFG 0x004A // 机器相关的配置(结构体DHDEV_MACHINE_CFG)
  984. #define DH_DEV_MAC_COLLISION_CFG 0x004B // MAC冲突检测配置(结构体 ALARM_MAC_COLLISION_CFG)
  985. #define DH_DEV_RTSP_CFG 0x004C // RTSP配置(对应结构体DHDEV_RTSP_CFG)
  986. #define DH_DEV_232_COM_CARD_CFG 0x004E // 232串口卡号信号事件配置(对应结构体COM_CARD_SIGNAL_LINK_CFG)
  987. #define DH_DEV_485_COM_CARD_CFG 0x004F // 485串口卡号信号事件配置(对应结构体COM_CARD_SIGNAL_LINK_CFG)
  988. #define DH_DEV_FTP_PROTO_CFG_EX 0x0050 // FTP上传扩展配置(对应结构体DHDEV_FTP_PROTO_CFG_EX)
  989. #define DH_DEV_SYSLOG_REMOTE_SERVER 0x0051 // SYSLOG 远程服务器配置(对应结构体DHDEV_SYSLOG_REMOTE_SERVER)
  990. #define DH_DEV_COMMCFG_EX 0x0052 // 扩展串口属性配置(对应结构体DHDEV_COMM_CFG_EX)
  991. #define DH_DEV_NETCARD_CFG 0x0053 // 卡口信息配置(对应结构体DHDEV_NETCARD_CFG)
  992. #define DH_DEV_BACKUP_VIDEO_FORMAT 0x0054 // 视频备份格式配置(对应结构体DHDEV_BACKUP_VIDEO_FORMAT)
  993. #define DH_DEV_STREAM_ENCRYPT_CFG 0x0055 // 码流加密配置(对应结构体DHEDV_STREAM_ENCRYPT)
  994. #define DH_DEV_IPFILTER_CFG_EX 0x0056 // IP过滤配置扩展(对应结构体DHDEV_IPIFILTER_CFG_EX)
  995. #define DH_DEV_CUSTOM_CFG 0x0057 // 用户自定义配置(对应结构体DHDEV_CUSTOM_CFG)
  996. #define DH_DEV_WLAN_DEVICE_CFG_EX 0x0058 // 搜索无线设备扩展配置(对应结构体DHDEV_WLAN_DEVICE_LIST_EX)
  997. #define DH_DEV_ACC_POWEROFF_CFG 0x0059 // ACC断线事件配置(对应结构体DHDEV_ACC_POWEROFF_CFG)
  998. #define DH_DEV_EXPLOSION_PROOF_CFG 0x005a // 防爆盒报警事件配置(对应结构体DHDEV_EXPLOSION_PROOF_CFG)
  999. #define DH_DEV_NETCFG_EX 0x005b // 网络扩展配置(对应结构体DHDEV_NET_CFG_EX)
  1000. #define DH_DEV_LIGHTCONTROL_CFG 0x005c // 灯光控制配置(对应结构体DHDEV_LIGHTCONTROL_CFG)
  1001. #define DH_DEV_3GFLOW_CFG 0x005d // 3G流量信息配置(对应结构体DHDEV_3GFLOW_INFO_CFG)
  1002. #define DH_DEV_IPV6_CFG 0x005e // IPv6配置(对应结构体DHDEV_IPV6_CFG)
  1003. #define DH_DEV_SNMP_CFG 0x005f // Snmp配置(对应结构体DHDEV_NET_SNMP_CFG), 设置完成后需要重启设备
  1004. #define DH_DEV_SNAP_CONTROL_CFG 0x0060 // 抓图开关配置(对应结构体DHDEV_SNAP_CONTROL_CFG)
  1005. #define DH_DEV_GPS_MODE_CFG 0x0061 // GPS定位模式配置(对应结构体DHDEV_GPS_MODE_CFG)
  1006. #define DH_DEV_SNAP_UPLOAD_CFG 0x0062 // 图片上传配置信息(对应结构体 DHDEV_SNAP_UPLOAD_CFG)
  1007. #define DH_DEV_SPEED_LIMIT_CFG 0x0063 // 限速配置信息(对应结构体DHDEV_SPEED_LIMIT_CFG)
  1008. #define DH_DEV_ISCSI_CFG 0x0064 // iSCSI配置(对应结构体DHDEV_ISCSI_CFG), 设置完成后需要重启设备
  1009. #define DH_DEV_WIRELESS_ROUTING_CFG 0x0065 // 无线路由配置(对应结构体DHDEV_WIRELESS_ROUTING_CFG)
  1010. #define DH_DEV_ENCLOSURE_CFG 0x0066 // 电子围栏配置(对应结构体DHDEV_ENCLOSURE_CFG)
  1011. #define DH_DEV_ENCLOSURE_VERSION_CFG 0x0067 // 电子围栏版本号配置(对应结构体DHDEV_ENCLOSURE_VERSION_CFG)
  1012. #define DH_DEV_RIAD_EVENT_CFG 0x0068 // Raid事件配置(对应结构体DHDEV_RAID_EVENT_CFG)
  1013. #define DH_DEV_FIRE_ALARM_CFG 0x0069 // 火警报警配置(对应结构体DHDEV_FIRE_ALARM_CFG)
  1014. #define DH_DEV_LOCALALARM_NAME_CFG 0x006a // 本地名称报警配置(对应Name1&&name2&&name3...格式字符串)
  1015. #define DH_DEV_URGENCY_RECORD_CFG 0x0070 // 紧急存储配置(对应结构体DHDEV_URGENCY_RECORD_CFG)
  1016. #define DH_DEV_ELEVATOR_ATTRI_CFG 0x0071 // 电梯运行参数配置(对应结构体DHDEV_ELEVATOR_ATTRI_CFG)
  1017. #define DH_DEV_ATM_OVERLAY_CFG_EX 0x0072 // atm叠加配置,新atm特有,支持大于32通道的设备(对应结构体DHDEV_ATM_OVERLAY_CONFIG_EX)
  1018. #define DH_DEV_MACFILTER_CFG 0x0073 // MAC过滤配置(对应结构体DHDEV_MACFILTER_CFG)
  1019. #define DH_DEV_MACIPFILTER_CFG 0x0074 // MAC,IP过滤(要求ip,mac是一一对应的)配置(对应结构体DHDEV_MACIPFILTER_CFG)
  1020. #define DH_DEV_STREAM_ENCRYPT_TIME_CFG 0x0075 // 码流加密(加密计划)配置(对应结构体DHEDV_STREAM_ENCRYPT)
  1021. #define DH_DEV_LIMIT_BIT_RATE_CFG 0x0076 // 限码流配置(对应结构体 DHDEV_LIMIT_BIT_RATE)
  1022. #define DH_DEV_SNAP_CFG_EX 0x0077 // 抓图相关配置扩展(对应结构体 DHDEV_SNAP_CFG_EX)
  1023. #define DH_DEV_DECODER_URL_CFG 0x0078 // 解码器url配置(对应结构体DHDEV_DECODER_URL_CFG)
  1024. #define DH_DEV_TOUR_ENABLE_CFG 0x0079 // 轮巡使能配置(对应结构体DHDEV_TOUR_ENABLE_CFG)
  1025. #define DH_DEV_VICHILE_WIFI_AP_CFG_EX 0x007a // wifi ap配置扩展(对应结构体DHDEV_VEHICLE_WIFI_AP_CFG_EX)
  1026. #define DH_DEV_ENCODER_CFG_EX 0x007b // 数字通道的前端编码器信息扩展,(对应结构体 DEV_ENCODER_CFG_EX)
  1027. // 下面几个是虚点测速仪的几个配置项
  1028. #define DH_DEV_ITC_HWS000_RA_CFG 0x007c // 虚点测速仪雷达角度配置(对应一个int值)
  1029. #define DH_DEV_ITC_HWS000_HS_CFG 0x007d // 虚点测速仪超速触发值配置(对应一个int值)
  1030. #define DH_DEV_ITC_HWS000_LS_CFG 0x007e // 虚点测速仪欠速触发值配置(对应一个int值)
  1031. #define DH_DEV_ITC_HWS000_FL_CFG 0x007f // 虚点测速仪闪光灯亮度配置(对应一个int值)
  1032. #define DH_DEV_ITC_HWS000_OC_CFG 0x0080 // 虚点测速仪超速总计数配置(对应一个int值)
  1033. #define DH_DEV_ITC_HWS000_LC_CFG 0x0081 // 虚点测速仪欠速总计数配置(对应一个int值)
  1034. #define DH_DEV_ITC_HWS000_AC_CFG 0x0082 // 虚点测速仪违章总计数配置(对应一个int值)
  1035. #define DH_DEV_ITC_HWS000_FC_CFG 0x0083 // 虚点测速仪闪光灯闪烁次数配置(对应一个int值)
  1036. #define DH_DEV_ITC_HWS000_ALL_CFG 0x0084 // 虚点测速仪查询以上全部的数值配置(对应DEV_ITC_HWS000_ALL_CFG)
  1037. #define DH_DEV_ITC_HWS000_CLEAR_COUNT_CFG 0x0085 // 虚点测速仪清零4种计数配置(OC,LC,AC,FC 对应一个int值)
  1038. #define DH_DEV_IPV4_CFG 0x0086 // IPV4配置(对应结构体 DEV_IPV4_CFG)
  1039. #define DH_DEV_ENCODER_CFG_EX2 0x0087 // 数字通道的前端编码器信息扩展,(对应结构体 DEV_ENCODER_CFG_EX2)
  1040. #define DH_DEV_WLAN_DEVICE_CFG_EX2 0x0088 // 搜索无线设备扩展配置(对应结构体DHDEV_WLAN_DEVICE_LIST_EX2)
  1041. #define DH_DEV_USER_END_CFG 1000
  1042. #define DH_DEV_ITC_HWS000_CFG_ITEM_NUM 8 // 虚点测速仪的配置项数目
  1043. ///@brief 虚点测速仪所有配置项
  1044. typedef struct tagDEV_ITC_HWS000_ALL_CFG
  1045. {
  1046. DWORD dwSize;
  1047. int nValue[DH_DEV_ITC_HWS000_CFG_ITEM_NUM]; // 配置项的值
  1048. // 从索引0开始 依次是雷达角度,超速触发值,欠速触发值,闪光灯亮度,超速总计数,欠速总计数,违章总计数,闪光灯闪烁次数
  1049. }DEV_ITC_HWS000_ALL_CFG;
  1050. // 报警类型,对应CLIENT_StartListen接口
  1051. #define DH_COMM_ALARM 0x1100 // 常规报警(包括外部报警,视频丢失,动态检测)
  1052. #define DH_SHELTER_ALARM 0x1101 // 视频遮挡报警
  1053. #define DH_DISK_FULL_ALARM 0x1102 // 硬盘满报警
  1054. #define DH_DISK_ERROR_ALARM 0x1103 // 硬盘故障报警
  1055. #define DH_SOUND_DETECT_ALARM 0x1104 // 音频检测报警
  1056. #define DH_ALARM_DECODER_ALARM 0x1105 // 报警解码器报警
  1057. // 扩展报警类型,对应CLIENT_StartListenEx接口
  1058. #define DH_ALARM_ALARM_EX 0x2101 // 外部报警,数据字节数与设备报警通道个数相同,每个字节表示一个报警通道的报警状态,1为有报警,0为无报警。
  1059. #define DH_MOTION_ALARM_EX 0x2102 // 动态检测报警,数据字节数与设备视频通道个数相同,每个字节表示一个视频通道的动态检测报警状态,1为有报警,0为无报警。
  1060. #define DH_VIDEOLOST_ALARM_EX 0x2103 // 视频丢失报警,数据字节数与设备视频通道个数相同,每个字节表示一个视频通道的视频丢失报警状态,1为有报警,0为无报警。
  1061. #define DH_SHELTER_ALARM_EX 0x2104 // 视频遮挡报警,数据字节数与设备视频通道个数相同,每个字节表示一个视频通道的遮挡(黑屏)报警状态,1为有报警,0为无报警。
  1062. #define DH_SOUND_DETECT_ALARM_EX 0x2105 // 音频检测报警,数据为16个字节,每个字节表示一个视频通道的音频检测报警状态,1为有报警,0为无报警。
  1063. #define DH_DISKFULL_ALARM_EX 0x2106 // 硬盘满报警,数据为1个字节,1为有硬盘满报警,0为无报警。
  1064. #define DH_DISKERROR_ALARM_EX 0x2107 // 坏硬盘报警,数据为32个字节,每个字节表示一个硬盘的故障报警状态,1为有报警,0为无报警。
  1065. #define DH_ENCODER_ALARM_EX 0x210A // 编码器报警,数据为16个字节,每个字节表示一个通道编码器状态,1为有报警,0为无报警。
  1066. #define DH_URGENCY_ALARM_EX 0x210B // 紧急报警,数据为16个字节,每个字节表示一个通道编码器状态,1为有报警,0为无报警。
  1067. #define DH_WIRELESS_ALARM_EX 0x210C // 无线报警,数据为16个字节,每个字节表示一个通道编码器状态,1为有报警,0为无报警。
  1068. #define DH_NEW_SOUND_DETECT_ALARM_EX 0x210D // 新音频检测报警,报警信息的结构体见DH_NEW_SOUND_ALARM_STATE;
  1069. #define DH_ALARM_DECODER_ALARM_EX 0x210E // 报警解码器报警,报警信息的结构体见 ALARM_DECODER_ALARM
  1070. #define DH_DECODER_DECODE_ABILITY 0x210F // 解码器:解码能力报警,数据为一个字节,0:能正常解码 1:表示超出解码能力。
  1071. #define DH_FDDI_DECODER_ABILITY 0x2110 // 光纤编码器状态报警,报警信息的结构体见 ALARM_FDDI_ALARM
  1072. #define DH_PANORAMA_SWITCH_ALARM_EX 0x2111 // 切换场景报警,数据为16个字节,每个字节表示一个通道编码器状态,1为有报警,0为无报警。
  1073. #define DH_LOSTFOCUS_ALARM_EX 0x2112 // 失去焦点报警,数据为16个字节,每个字节表示一个通道编码器状态,1为有报警,0为无报警。
  1074. #define DH_OEMSTATE_EX 0x2113 // oem报停状态,数据为 1 BYTE。
  1075. #define DH_DSP_ALARM_EX 0x2114 // DSP报警,报警信息的结构体见 DSP_ALARM
  1076. #define DH_ATMPOS_BROKEN_EX 0x2115 // atm和pos机断开报警, 数据为 1 BYTE,0:连接断开 1:连接正常
  1077. #define DH_RECORD_CHANGED_EX 0x2116 // 录像状态变化报警,报警信息为 ALARM_RECORDING_CHANGED 数组
  1078. #define DH_CONFIG_CHANGED_EX 0x2117 // 配置发生变化报警,数据 无
  1079. #define DH_DEVICE_REBOOT_EX 0x2118 // 设备重启报警,数据 无
  1080. #define DH_WINGDING_ALARM_EX 0x2119 // 线圈/车检器故障报警(对应结构体 ALARM_WINGDING_INFO)
  1081. #define DH_TRAF_CONGESTION_ALARM_EX 0x211A // 交通阻塞报警(车辆出现异常停止或者排队)(对应结构体 ALARM_TRAF_CONGESTION_INFO)
  1082. #define DH_TRAF_EXCEPTION_ALARM_EX 0x211B // 交通异常报警(交通流量趋于0或异常空闲)(对应结构体 ALARM_TRAF_EXCEPTION_INFO)
  1083. #define DH_EQUIPMENT_FILL_ALARM_EX 0x211C // 补光设备故障报警(对应结构体 ALARM_EQUIPMENT_FILL_INFO)
  1084. #define DH_ALARM_ARM_DISARM_STATE 0x211D // 报警布撤防状态(对应结构体 ALARM_EQUIPMENT_FILL_INFO)
  1085. #define DH_ALARM_ACC_POWEROFF 0x211E // ACC断电报警,数据为 DWORD 0:ACC通电 1:ACC断电
  1086. #define DH_ALARM_3GFLOW_EXCEED 0x211F // 3G流量超出阈值报警(对应结构体 DHDEV_3GFLOW_EXCEED_STATE_INFO)
  1087. #define DH_ALARM_SPEED_LIMIT 0x2120 // 限速报警(对应结构体 ALARM_SPEED_LIMIT)
  1088. #define DH_ALARM_VEHICLE_INFO_UPLOAD 0x2121 // 车载自定义信息上传 (对应结构体 ALARM_VEHICLE_INFO_UPLOAD)
  1089. #define DH_STATIC_ALARM_EX 0x2122 // 静态检测报警,数据字节数与设备视频通道个数相同,每个字节表示一个视频通道的静态检测报警状态,1为有报警,0为无报警。
  1090. #define DH_PTZ_LOCATION_EX 0x2123 // 云台定位信息(对应结构体 DH_PTZ_LOCATION_INFO)
  1091. #define DH_ALARM_CARD_RECORD_UPLOAD 0x2124 // 卡号录像信息上传(对应结构体 ALARM_CARD_RECORD_INFO_UPLOAD)
  1092. #define DH_ALARM_ATM_INFO_UPLOAD 0x2125 // ATM交易信息上传(对应结构体 ALARM_ATM_INFO_UPLOAD)
  1093. #define DH_ALARM_ENCLOSURE 0x2126 // 电子围栏报警(对应结构体 ALARM_ENCLOSURE_INFO)
  1094. #define DH_ALARM_SIP_STATE 0x2127 // SIP状态报警(对应结构体 ALARM_SIP_STATE)
  1095. #define DH_ALARM_RAID_STATE 0x2128 // RAID异常报警(对应结构体 ALARM_RAID_INFO)
  1096. #define DH_ALARM_CROSSING_SPEED_LIMIT 0x2129 // 路口限速报警(对应结构体 ALARM_SPEED_LIMIT)
  1097. #define DH_ALARM_OVER_LOADING 0x212A // 超载报警(对应结构体ALARM_OVER_LOADING)
  1098. #define DH_ALARM_HARD_BRAKING 0x212B // 急刹车报警(对应机构体ALARM_HARD_BRAKING)
  1099. #define DH_ALARM_SMOKE_SENSOR 0x212C // 烟感报警(对应结构体ALARM_SMOKE_SENSOR)
  1100. #define DH_ALARM_TRAFFIC_LIGHT_FAULT 0x212D // 交通灯故障报警(对应结构体ALARM_TRAFFIC_LIGHT_FAULT)
  1101. #define DH_ALARM_TRAFFIC_FLUX_STAT 0x212E // 交通流量统计报警(对应结构体ALARM_TRAFFIC_FLUX_LANE_INFO)
  1102. #define DH_ALARM_CAMERA_MOVE 0x212F // 摄像机移位报警事件(对应结构体ALARM_CAMERA_MOVE_INFO)
  1103. #define DH_ALARM_DETAILEDMOTION 0x2130 // 详细动检报警上报信息(对应结构体ALARM_DETAILEDMOTION_CHNL_INFO)
  1104. #define DH_ALARM_STORAGE_FAILURE 0x2131 // 存储异常报警(对应结构体 ALARM_STORAGE_FAILURE 数组)
  1105. #define DH_ALARM_FRONTDISCONNECT 0x2132 // 前端IPC断网报警(对应结构体ALARM_FRONTDISCONNET_INFO)
  1106. #define DH_ALARM_ALARM_EX_REMOTE 0x2133 // 远程外部报警(对应结构体 ALARM_REMOTE_ALARM_INFO)
  1107. #define DH_ALARM_BATTERYLOWPOWER 0x2134 // 电池电量低报警(对应结构体ALARM_BATTERYLOWPOWER_INFO)
  1108. #define DH_ALARM_TEMPERATURE 0x2135 // 温度异常报警(对应结构体 ALARM_TEMPERATURE_INFO)
  1109. #define DH_ALARM_TIREDDRIVE 0x2136 // 疲劳驾驶报警(对应结构体 ALARM_TIREDDRIVE_INFO)
  1110. #define DH_ALARM_LOST_RECORD 0x2137 // 丢录像事件报警(对应结构体ALARM_LOST_RECORD)
  1111. #define DH_ALARM_HIGH_CPU 0x2138 // CPU占用率过高事件报警(对应结构体 ALARM_HIGH_CPU)
  1112. #define DH_ALARM_LOST_NETPACKET 0x2139 // 网络发送数据丢包事件报警(对应结构体 ALARM_LOST_NETPACKET)
  1113. #define DH_ALARM_HIGH_MEMORY 0x213A // 内存占用率过高事件报警(对应结构体ALARM_HIGH_MEMORY)
  1114. #define DH_LONG_TIME_NO_OPERATION 0x213B // WEB用户长时间无操作事件(无扩展信息)
  1115. #define DH_BLACKLIST_SNAP 0x213C // 禁止名单车辆抓拍事件(对应结构体DH_BLACKLIST_SNAP_INFO)
  1116. #define DH_ALARM_DISK 0x213E // 硬盘报警(对应 ALARM_DISK_INFO 数组)
  1117. #define DH_ALARM_FILE_SYSTEM 0x213F // 文件系统报警(对应ALARM_FILE_SYSTEM_INFO数组)
  1118. #define DH_ALARM_IVS 0x2140 // 智能报警事件(对应结构体ALARM_IVS_INFO)
  1119. #define DH_ALARM_GOODS_WEIGHT_UPLOAD 0x2141 // 货重信息上报(对应ALARM_GOODS_WEIGHT_UPLOAD_INFO)
  1120. #define DH_ALARM_GOODS_WEIGHT 0x2142 // 货重信息报警(对应ALARM_GOODS_WEIGHT_INFO)
  1121. #define DH_GPS_STATUS 0x2143 // GPS定位信息(对应 NET_GPS_STATUS_INFO)
  1122. #define DH_ALARM_DISKBURNED_FULL 0x2144 // 硬盘刻录满报警(对应 ALARM_DISKBURNED_FULL_INFO)
  1123. #define DH_ALARM_STORAGE_LOW_SPACE 0x2145 // 存储容量不足事件(对应 ALARM_STORAGE_LOW_SPACE_INFO)
  1124. #define DH_ALARM_DISK_FLUX 0x2160 // 硬盘数据异常事件(对应 ALARM_DISK_FLUX)
  1125. #define DH_ALARM_NET_FLUX 0x2161 // 网络数据异常事件(对应 ALARM_NET_FLUX)
  1126. #define DH_ALARM_FAN_SPEED 0x2162 // 风扇转速异常事件(对应 ALARM_FAN_SPEED)
  1127. #define DH_ALARM_STORAGE_FAILURE_EX 0x2163 // 存储错误报警(对应结构体ALARM_STORAGE_FAILURE_EX)
  1128. #define DH_ALARM_RECORD_FAILED 0x2164 // 录像异常报警(对应结构体ALARM_RECORD_FAILED_INFO)
  1129. #define DH_ALARM_STORAGE_BREAK_DOWN 0x2165 // 存储崩溃事件(对应结构体 ALARM_STORAGE_BREAK_DOWN_INFO)
  1130. #define DH_ALARM_VIDEO_ININVALID 0x2166 // 视频输入通道失效事件(例:配置的视频输入通道码流,超出设备处理能力)ALARM_VIDEO_ININVALID_INFO
  1131. #define DH_ALARM_VEHICLE_TURNOVER 0x2167 // 车辆侧翻报警事件(对应结构体ALARM_VEHICEL_TURNOVER_EVENT_INFO)
  1132. #define DH_ALARM_VEHICLE_COLLISION 0x2168 // 车辆撞车报警事件(对应结构体ALARM_VEHICEL_COLLISION_EVENT_INFO)
  1133. #define DH_ALARM_VEHICLE_CONFIRM 0x2169 // 车辆上传信息事件(对应结构体ALARM_VEHICEL_CONFIRM_INFO)
  1134. #define DH_ALARM_VEHICLE_LARGE_ANGLE 0x2170 // 车载摄像头大角度扭转事件(对应结构体ALARM_VEHICEL_LARGE_ANGLE)
  1135. #define DH_ALARM_TALKING_INVITE 0x2171 // 设备请求对方发起对讲事件(对应结构体ALARM_TALKING_INVITE_INFO)
  1136. #define DH_ALARM_ALARM_EX2 0x2175 // 本地报警事件(对应结构体 ALARM_ALARM_INFO_EX2,对DH_ALARM_ALARM_EX升级)
  1137. #define DH_ALARM_VIDEO_TIMING 0x2176 // 视频定时检测事件(对应结构体ALARM_VIDEO_TIMING)
  1138. #define DH_ALARM_COMM_PORT 0x2177 // 串口事件(对应结构体ALARM_COMM_PORT_EVENT_INFO)
  1139. #define DH_ALARM_AUDIO_ANOMALY 0x2178 // 音频异常事件(对应结构体ALARM_AUDIO_ANOMALY)
  1140. #define DH_ALARM_AUDIO_MUTATION 0x2179 // 声强突变事件(对应结构体ALARM_AUDIO_MUTATION)
  1141. #define DH_EVENT_TYREINFO 0x2180 // 轮胎信息上报事件(对应结构体EVENT_TYRE_INFO)
  1142. #define DH_ALARM_POWER_ABNORMAL 0x2181 // 冗余电源异常报警(对应结构体ALARM_POWER_ABNORMAL_INFO)
  1143. #define DH_EVENT_REGISTER_OFF 0x2182 // 车载设备主动下线事件(对应结构体 EVENT_REGISTER_OFF_INFO)
  1144. #define DH_ALARM_NO_DISK 0x2183 // 无硬盘报警(对应结构体ALARM_NO_DISK_INFO)
  1145. #define DH_ALARM_FALLING 0x2184 // 跌落事件报警(对应结构体ALARM_FALLING_INFO)
  1146. #define DH_ALARM_PROTECTIVE_CAPSULE 0x2185 // 防护舱事件(对应结构体ALARM_PROTECTIVE_CAPSULE_INFO)
  1147. #define DH_ALARM_NO_RESPONSE 0x2186 // 呼叫未应答警报(对应结构体ALARM_NO_RESPONSE_INFO)
  1148. #define DH_ALARM_CONFIG_ENABLE_CHANGE 0x2187 // 配置使能改变上报事件(对应结构体 ALARM_CONFIG_ENABLE_CHANGE_INFO)
  1149. #define DH_EVENT_CROSSLINE_DETECTION 0x2188 // 警戒线事件( 对应结构体 ALARM_EVENT_CROSSLINE_INFO )
  1150. #define DH_EVENT_CROSSREGION_DETECTION 0x2189 // 警戒区事件( 对应结构体 ALARM_EVENT_CROSSREGION_INFO )
  1151. #define DH_EVENT_LEFT_DETECTION 0x218a // 物品遗留事件( 对应结构体 ALARM_EVENT_LEFT_INFO )
  1152. #define DH_EVENT_FACE_DETECTION 0x218b // 目标检测事件( 对应结构体 ALARM_EVENT_FACE_INFO )
  1153. #define DH_ALARM_IPC 0x218c // IPC报警,IPC通过DVR或NVR上报的本地报警(对应结构体 ALARM_IPC_INFO)
  1154. #define DH_EVENT_TAKENAWAYDETECTION 0x218d // 物品搬移事件(对应结构体 ALARM_TAKENAWAY_DETECTION_INFO)
  1155. #define DH_EVENT_VIDEOABNORMALDETECTION 0x218e // 视频异常事件(对应结构体 ALARM_VIDEOABNORMAL_DETECTION_INFO)
  1156. #define DH_EVENT_MOTIONDETECT 0x218f // 视频移动侦测事件(对应结构体 ALARM_MOTIONDETECT_INFO)
  1157. #define DH_ALARM_PIR 0x2190 // PIR警报(对应BYTE*, pBuf长度dwBufLen)
  1158. #define DH_ALARM_STORAGE_HOT_PLUG 0x2191 // 存储热插拔事件(对应结构体 ALARM_STORAGE_HOT_PLUG_INFO)
  1159. #define DH_ALARM_FLOW_RATE 0x2192 // 流量使用情况事件(对应结构体 ALARM_FLOW_RATE_INFO)
  1160. #define DH_ALARM_MOVEDETECTION 0x2193 // 移动事件(对应ALARM_MOVE_DETECTION_INFO)
  1161. #define DH_ALARM_WANDERDETECTION 0x2194 // 徘徊事件(对应ALARM_WANDERDETECTION_INFO)
  1162. #define DH_ALARM_CROSSFENCEDETECTION 0x2195 // 翻越围栏事件(对应ALARM_CROSSFENCEDETECTION_INFO)
  1163. #define DH_ALARM_PARKINGDETECTION 0x2196 // 非法停车事件(对应ALARM_PARKINGDETECTION_INFO)
  1164. #define DH_ALARM_RIOTERDETECTION 0x2197 // 人员聚集事件(对应ALARM_RIOTERDETECTION_INFO)
  1165. #define DH_ALARM_FRONTDISCONNECT_V3 0x2198 // 前端IPC断网报警,三代报警(对应结构体ALARM_FRONTDISCONNET_INFO)
  1166. #define DH_ALARM_KEYPAD_TAMPER 0x2199 // 键盘防拆事件(对应结构体 ALARM_KEYPAD_TAMPER_INFO)
  1167. #define DH_ALARM_KEYPAD_FAILURE 0x219A // 键盘掉线事件(对应结构体 ALARM_KEYPAD_FAILURE_INFO)
  1168. #define DH_ALARM_NOT_CLEAR_CAR 0x219B // 未清车告警事件(对应结构体 ALARM_NOT_CLEAR_CAR_INFO)
  1169. #define DH_ALARM_WIRELESS_DEVBATTERY_LOSS 0x219C // 探测器电池丢失事件(对应结构体 ALARM_WIRELESS_DEVBATTERY_LOSS_INFO)
  1170. #define DH_ALARM_SIREN_TAMPER 0x219D // 警号防拆事件(对应结构体 ALARM_SIREN_TAMPER_INFO)
  1171. #define DH_ALARM_KEYPAD_LOCK 0x219E // 键盘锁定事件(对应结构体 ALARM_KEYPAD_LOCK_INFO)
  1172. #define DH_ALARM_ALARMNET 0x219F // 网络报警事件(对应结构体 ALARM_ALARMNET_INFO)
  1173. #define DH_ALARM_PIC_UPLOAD_ALARM 0x21A0 // 图片上传对外通知平台事件(对应结构体 NET_ALARM_PIC_UPLOAD_ALARM_INFO)
  1174. #define DH_ALARM_CHANG_BAI_VEHICLE_PROHIBITED 0x21A1 // 禁行时间段车辆移动上报事件(对应结构体 NET_ALARM_CHANG_BAI_VEHICLE_PROHIBITED_INFO)
  1175. #define DH_ALARM_USER_PASS_CONFIRM 0x21A2 // 用户通过闸机进入或离开事件(对应结构体 NET_ALARM_USER_PASS_CONFIRM_INFO)
  1176. #define DH_ALARM_INSUFFICIENT_QUOTA_SPACE 0x21A4 // 配额容量不足事件(对应结构体 NET_ALARM_INSUFFICIENT_QUOTA_SPACE_INFO)
  1177. #define DH_ALARM_REID_CLUSTER_STATE 0x21A5 // REID项目上报设备聚档状态事件(对应结构体 NET_ALARM_REID_CLUSTER_STATE_INFO)
  1178. #define DH_ALARM_SAMPO_USER_INFORMATION 0x21A6 // 设备向平台上报用户的信息事件(对应结构体 NET_ALARM_SAMPO_USER_INFORMATION_INFO)
  1179. #define DH_ALARM_SAMPO_SERVICE_ALARM 0x21A7 // 设备向平台上报用户请求的服务事件(对应结构体 NET_ALARM_SAMPO_SERVICE_ALARM_INFO)
  1180. #define DH_ALARM_SIA_EVENT 0x21A8 // 上报SIA服务器事件报警(对应结构体 NET_ALARM_SIA_EVENT_INFO)
  1181. #define DH_ALARM_AP_CONNECT 0x21A9 // 连接热点事件报警(对应结构体 NET_ALARM_AP_CONNECT_INFO)
  1182. #define DH_ALARM_DGS_ERROR_REPORT 0x21AA // 诊断故障码上报事件(对应结构体 NET_ALARM_DGS_ERROR_REPORT)
  1183. #define DH_ALARM_RESIDENT_ALARM 0x21AB // 驻留报警(对应结构体 NET_ALARM_RESIDENT_ALARM)
  1184. // 事件类型 0x3000 ~ 0x300c 内部状态通知
  1185. #define DH_CONFIG_RESULT_EVENT_EX 0x3000 // 修改配置的返回码;返回结构见DEV_SET_RESULT
  1186. #define DH_REBOOT_EVENT_EX 0x3001 // 设备重启事件;如果未发送重启命令,当前修改的配置不会立即生效
  1187. #define DH_AUTO_TALK_START_EX 0x3002 // 设备主动邀请开始语音对讲
  1188. #define DH_AUTO_TALK_STOP_EX 0x3003 // 设备主动停止语音对讲
  1189. #define DH_CONFIG_CHANGE_EX 0x3004 // 设备配置发生改变
  1190. #define DH_IPSEARCH_EVENT_EX 0x3005 // IP搜索事件, 返回字符串格式如下:DevName::Manufacturer::MAC::IP::Port::DevType::POEPort::SubMask::GateWay&&DevName::Manufacturer::MAC::IP::Port::DevType::POEPort::SubMask::GateWay &&…
  1191. #define DH_AUTO_RECONNECT_FAILD 0x3006 // 自动重连失败事件
  1192. #define DH_REALPLAY_FAILD_EVENT 0x3007 // 预览失败事件,返回结构体DEV_PLAY_RESULT
  1193. #define DH_PLAYBACK_FAILD_EVENT 0x3008 // 回放失败事件,返回结构体DEV_PLAY_RESULT
  1194. #define DH_IVS_TRAFFIC_REALFLOWINFO 0x3009 // 交通实时流量信息事件ALARM_IVS_TRAFFIC_REALFLOW_INFO
  1195. #define DH_DEVICE_ABORT_EVENT 0x300a // 客户端被踢出, 对应结构体 DEV_CLIENT_ABORT_INFO
  1196. #define DH_TALK_FAILD_EVENT 0x300b // 请求语音对讲失败, 对应结构体 DEV_TALK_RESULT
  1197. #define DH_START_LISTEN_FINISH_EVENT 0x300c // 订阅事件接口完成异步通知事件, 信息为 START_LISTEN_FINISH_RESULT_INFO
  1198. #define DH_YUEQINGLIGHTING_STATE_EVENT 0x300d // 平台统计灯光开关的时间事件, 对应的结构体 DEV_YUEQINGLIGHTING_STATE_INFO
  1199. #define DH_ALARM_VIOLATE_NO_FLY_TIME 0x300e // 违反禁飞事件, 对应结构体 ALARM_VIOLATE_NO_FLY_TIME_INFO
  1200. #define DH_ALARM_BOX_ALARM 0x300f // 报警盒通道的触发报警事件 (对应结构体 ALARM_BOX_ALARM_INFO )
  1201. #define DH_ALARM_SOSALERT 0x3010 // SOS求救报警(对应结构体ALARM_SOSALERT_INFO)
  1202. #define DH_ALARM_GYROABNORMALATTITUDE 0x3011 // 车辆的紧急制动、侧翻等状态导致的姿态异常进行报警(对应 ALARM_GYROABNORMALATTITUDE_INFO)
  1203. #define DH_ALARM_ALARMOUTPUT 0x3012 // 输出通道状态改变事件(对应结构体ALARM_ALARMOUTPUT_INFO)
  1204. #define DH_ALARM_PSTNREPORTFAILURE 0x3013 // 电话报警未接警事件(对应结构体ALARM_PSTNREPORTFAILURE_INFO)
  1205. #define DH_ALARM_NOGSMFIELD 0x3014 // 通信模块掉线或者sim卡没插(对应结构体ALARM_NOGSMFIELD_INFO)
  1206. #define DH_ALARM_SMARTMOTION_HUMAN 0x3015 // 智能视频移动侦测事件(人) (对应结构体 ALARM_SMARTMOTION_HUMAN_INFO)
  1207. #define DH_ALARM_SMARTMOTION_VEHICLE 0x3016 // 智能视频移动侦测事件(车) (对应结构体 ALARM_SMARTMOTION_VEHICLE_INFO)
  1208. #define DH_ALARM_MOTION_RECORD_ALARM 0x3017 // 动检录像报警(对应结构体ALARM_MOTION_RECORD_INFO)
  1209. #define DH_ALARM_SMARTHOME_GET_AUTHORIZED 0x3018 // 室内机告知平台需要获取授权二维码信息 ( 对应结构体 ALARM_SMARTHOME_GET_AUTHORIZED )
  1210. #define DH_ALARM_SMARTHOME_UPDATE_SCENE 0x3019 // 室内机告知平台需要更新智能家居场景列表 ( 对应结构体 ALARM_SMARTHOME_UPDATE_SCENE )
  1211. #define DH_ALARM_ASG 0x3020 // ASG报警 ( 对应结构体 ALARM_ASG_INFO )
  1212. #define DH_ALARM_ASGSTAY 0x3021 // 闸机滞留报警事件( 对应结构体 ALARM_ASGSTAY_INFO )
  1213. #define DH_ALARM_ASGFOLLOWING 0x3022 // 闸机尾随报警事件( 对应结构体 ALARM_ASGFOLLOWING_INFO )
  1214. #define DH_ALARM_ASGCLIMBOVER 0x3023 // 闸机翻越报警事件( 对应结构体 ALARM_ASGCLIMBOVER_INFO )
  1215. #define DH_ALARM_ASGBREAKDOWN 0x3024 // 闸机故障事件( 对应结构体 ALARM_ASGBREAKDOWN_INFO )
  1216. #define DH_ALARM_LIFTCONTROL_REQUEST 0x3025 // 梯控上报事件(对应结构体 ALARM_LIFTCONTROL_REQUEST_INFO)
  1217. #define DH_ALARM_REMOTE_DEVICE_GPS 0x3026 // 远程设备GPS事件(对应结构体 ALARM_REMOTE_DEVICE_GPS_INFO)
  1218. #define DH_ALARM_ENTRANCE_CAR_STAT_INFO 0x3027 // 出入口过车统计信息 (对应结构体 ALARM_ENTRANCE_CAR_STAT_INFO)
  1219. #define DH_ALARM_ASG_INTRUDED 0x3028 // 闸机机箱防拆事件(对应结构体 ALARM_ASG_INTRUDED_INFO)
  1220. #define DH_ALARM_IDCARDINFO_CHECK 0x3029 // 证件信息上报,平台核验开门事件(对应结构体 ALARM_IDCARDINFO_CHECK_INFO)
  1221. #define DH_ALARM_REQUEST_APPOINTMENT_INFO 0x302a // 请求预约信息 (对应 ALARM_REQUEST_APPOINTMENT_INFO )
  1222. #define DH_ALARM_COURSE_RECORD_UPLOAD 0x302b // 录播录像上传结束事件 (对应 ALARM_COURSE_RECORD_UPLOAD_INFO)
  1223. #define DH_ALARM_REQUEST_RECORD 0x302c // 请求录像(对应 ALARM_REQUEST_RECORD_INFO )
  1224. #define DH_ALARM_REQUEST_SNAP 0x302d // 请求抓图(对应 ALARM_REQUEST_SNAP_INFO )
  1225. #define DH_ALARM_PARKING_OVERLOAD 0x302e // 停车场过载事件(对应结构体 ALARM_PARKING_OVERLOAD_INFO)
  1226. #define DH_ALARM_VTS_CALLING_STATE 0x302f // VTS呼叫处理状态事件(对应结构体 ALARM_VTS_CALLING_STATE_INFO)
  1227. #define DH_ALARM_DRUG_EXPLOSIVE_DETECTION 0x3030 // 毒品炸药探测事件(对应结构体 ALARM_DRUG_EXPLOSIVE_DETECTION_INFO)
  1228. #define DH_ALARM_LIQUID_DETECTION 0x3031 // 液体探测事件(对应结构体 ALARM_LIQUID_DETECTION_INFO)
  1229. #define DH_ALARM_ASG_ANTIPINCH 0x3032 // 闸机门翼防夹事件(对应结构体 ALARM_ASG_ANTIPINCH_INFO)
  1230. #define DH_ALARM_STORAGE_NOT_EXIST 0x3167 // 存储组不存在事件(对应结构体 ALARM_STORAGE_NOT_EXIST_INFO)
  1231. #define DH_ALARM_NET_ABORT 0x3169 // 网络故障事件(对应结构体 ALARM_NETABORT_INFO)
  1232. #define DH_ALARM_IP_CONFLICT 0x3170 // IP冲突事件(对应结构体 ALARM_IP_CONFLICT_INFO)
  1233. #define DH_ALARM_MAC_CONFLICT 0x3171 // MAC冲突事件(对应结构体 ALARM_MAC_CONFLICT_INFO)
  1234. #define DH_ALARM_POWERFAULT 0x3172 // 电源故障事件(对应结构体ALARM_POWERFAULT_INFO)
  1235. #define DH_ALARM_CHASSISINTRUDED 0x3173 // 机箱入侵(防拆)报警事件(对应结构体ALARM_CHASSISINTRUDED_INFO)
  1236. #define DH_ALARM_ALARMEXTENDED 0x3174 // 本地扩展报警事件(对应结构体 ALARM_ALARMEXTENDED_INFO)
  1237. #define DH_ALARM_ARMMODE_CHANGE_EVENT 0x3175 // 布撤防状态变化事件(对应结构体ALARM_ARMMODE_CHANGE_INFO)
  1238. #define DH_ALARM_BYPASSMODE_CHANGE_EVENT 0x3176 // 旁路状态变化事件(对应结构体ALARM_BYPASSMODE_CHANGE_INFO)
  1239. #define DH_ALARM_ACCESS_CTL_NOT_CLOSE 0x3177 // 门禁未关事件(对应结构体ALARM_ACCESS_CTL_NOT_CLOSE_INFO)
  1240. #define DH_ALARM_ACCESS_CTL_BREAK_IN 0x3178 // 闯入事件(对应结构体ALARM_ACCESS_CTL_BREAK_IN_INFO)
  1241. #define DH_ALARM_ACCESS_CTL_REPEAT_ENTER 0x3179 // 反复进入事件(对应结构体ALARM_ACCESS_CTL_REPEAT_ENTER_INFO)
  1242. #define DH_ALARM_ACCESS_CTL_DURESS 0x3180 // 胁迫卡刷卡事件(对应结构体ALARM_ACCESS_CTL_DURESS_INFO)
  1243. #define DH_ALARM_ACCESS_CTL_EVENT 0x3181 // 门禁事件(对应结构体 ALARM_ACCESS_CTL_EVENT_INFO)
  1244. #define DH_URGENCY_ALARM_EX2 0x3182 // 紧急报警EX2(对DH_URGENCY_ALARM_EX的升级,对应结构体ALARM_URGENCY_ALARM_EX2, 人为触发的紧急事件, 一般处理是联动外部通讯功能请求帮助
  1245. #define DH_ALARM_INPUT_SOURCE_SIGNAL 0x3183 // 报警输入源信号事件(只要有输入就会产生该事件, 不论防区当前的模式,无法屏蔽, 对应 ALARM_INPUT_SOURCE_SIGNAL_INFO )
  1246. #define DH_ALARM_ANALOGALARM_EVENT 0x3184 // 模拟量报警输入通道事件(对应结构体ALARM_ANALOGALARM_EVENT_INFO)
  1247. #define DH_ALARM_ACCESS_CTL_STATUS 0x3185 // 门禁状态事件(对应结构体ALARM_ACCESS_CTL_STATUS_INFO)
  1248. #define DH_ALARM_ACCESS_SNAP 0x3186 // 门禁抓图事件(对应结构体ALARM_ACCESS_SNAP_INFO)
  1249. #define DH_ALARM_ALARMCLEAR 0x3187 // 消警事件(对应结构体ALARM_ALARMCLEAR_INFO)
  1250. #define DH_ALARM_CIDEVENT 0x3188 // CID事件(对应结构体 ALARM_CIDEVENT_INFO)
  1251. #define DH_ALARM_TALKING_HANGUP 0x3189 // 设备主动挂断对讲事件(对应结构体ALARM_TALKING_HANGUP_INFO)
  1252. #define DH_ALARM_BANKCARDINSERT 0x318a // 银行卡插卡事件(对应结构体ALARM_BANKCARDINSERT_INFO)
  1253. #define DH_ALARM_RCEMERGENCY_CALL 0x318b // 紧急呼叫报警事件(对应结构体 ALARM_RCEMERGENCY_CALL_INFO)
  1254. #define DH_ALARM_OPENDOORGROUP 0x318c // 多人组合开门事件(对应结构体ALARM_OPEN_DOOR_GROUP_INFO)
  1255. #define DH_ALARM_FINGER_PRINT 0x318d // 获取信息事件(对应结构体 ALARM_CAPTURE_FINGER_PRINT_INFO)
  1256. #define DH_ALARM_CARD_RECORD 0x318e // 卡号录像事件(对应结构体 ALARM_CARD_RECORD_INFO)
  1257. #define DH_ALARM_SUBSYSTEM_STATE_CHANGE 0x318f // 子系统状态改变事件(对应结构体ALARM_SUBSYSTEM_STATE_CHANGE_INFO)
  1258. #define DH_ALARM_BATTERYPOWER_EVENT 0x3190 // 电池电量定时通知事件(对应结构体 ALARM_BATTERYPOWER_INFO )
  1259. #define DH_ALARM_BELLSTATUS_EVENT 0x3191 // 警号状态事件(对应结构体ALARM_BELLSTATUS_INFO)
  1260. #define DH_ALARM_DEFENCE_STATE_CHANGE_EVENT 0x3192 // 防区状态变化事件(对应结构体ALARM_DEFENCE_STATUS_CHANGE_INFO),
  1261. // 和布防撤防变化事件、旁路状态变化事件中的状态定义不同,
  1262. // 该状态通过CLIENT_QueryDevState()接口的DH_DEVSTATE_DEFENCE_STATE命令获取
  1263. #define DH_ALARM_TICKET_STATISTIC 0x3193 // 车票统计信息事件(对应结构体 ALARM_TICKET_STATISTIC)
  1264. #define DH_ALARM_LOGIN_FAILIUR 0x3194 // 登陆失败事件(对应结构体ALARM_LOGIN_FAILIUR_INFO)
  1265. #define DH_ALARM_MODULE_LOST 0x3195 // 扩展模块掉线事件(对应结构体 ALARM_MODULE_LOST_INFO)
  1266. #define DH_ALARM_PSTN_BREAK_LINE 0x3196 // PSTN掉线事件(对应结构体ALARM_PSTN_BREAK_LINE_INFO)
  1267. #define DH_ALARM_ANALOG_PULSE 0x3197 // 模拟量报警事件(瞬时型事件), 特定传感器类型时才触发(对应结构体ALARM_ANALOGPULSE_INFO)
  1268. #define DH_ALARM_MISSION_CONFIRM 0x3198 // 任务确认事件(对应结构体 ALARM_MISSION_CONFIRM_INFO)
  1269. #define DH_ALARM_DEVICE_MSG_NOTIFY 0x3199 // 设备向平台发通知的事件(对应结构体 ALARM_DEVICE_MSG_NOTIFY_INFO)
  1270. #define DH_ALARM_VEHICLE_STANDING_OVER_TIME 0x319A // 停车超时报警(对应结构体 ALARM_VEHICLE_STANDING_OVER_TIME_INFO)
  1271. #define DH_ALARM_ENCLOSURE_ALARM 0x319B // 电子围栏事件(对应结构体 ALARM_ENCLOSURE_ALARM_INFO)
  1272. #define DH_ALARM_GUARD_DETECT 0x319C // 岗亭检测事件,此事件岗亭有第一个人时上报start事件,岗亭最后一个人离开时上报stop 事件(对应结构体ALARM_GUARD_DETECT_INFO)
  1273. #define DH_ALARM_GUARD_INFO_UPDATE 0x319D // 岗亭信息更新事件,只要岗亭有人员出入就上报(对应结构体ALARM_GUARD_UPDATE_INFO)
  1274. #define DH_ALARM_NODE_ACTIVE 0x319E // 节点激活事件(对应结构体ALARM_NODE_ACTIVE_INFO)
  1275. #define DH_ALARM_VIDEO_STATIC 0x319F // 视频静态检测事件(对应结构体 ALARM_VIDEO_STATIC_INFO)
  1276. #define DH_ALARM_REGISTER_REONLINE 0x31a0 // 主动注册设备重新登陆事件(对应结构体ALARM_REGISTER_REONLINE_INFO)
  1277. #define DH_ALARM_ISCSI_STATUS 0x31a1 // ISCSI告警事件(对应结构体 ALARM_ISCSI_STATUS_INFO)
  1278. #define DH_ALARM_SCADA_DEV_ALARM 0x31a2 // 检测采集设备报警事件(对应结构体 ALARM_SCADA_DEV_INFO)
  1279. #define DH_ALARM_AUXILIARY_DEV_STATE 0x31a3 // 辅助设备状态(对应结构体ALARM_AUXILIARY_DEV_STATE)
  1280. #define DH_ALARM_PARKING_CARD 0x31a4 // 停车刷卡事件(对应结构体ALARM_PARKING_CARD)
  1281. #define DH_ALARM_PROFILE_ALARM_TRANSMIT 0x31a5 // 报警传输事件(对应结构体ALARM_PROFILE_ALARM_TRANSMIT_INFO)
  1282. #define DH_ALARM_VEHICLE_ACC 0x31a6 // 车辆ACC报警事件(对应结构体 ALARM_VEHICLE_ACC_INFO)
  1283. #define DH_ALARM_TRAFFIC_SUSPICIOUSCAR 0x31a7 // 嫌疑车辆上报事件(对应结构体 ALARM_TRAFFIC_SUSPICIOUSCAR_INFO)
  1284. #define DH_ALARM_ACCESS_LOCK_STATUS 0x31a8 // 门锁状态事件(对应结构体 ALARM_ACCESS_LOCK_STATUS_INFO)
  1285. #define DH_ALARM_FINACE_SCHEME 0x31a9 // 理财经办事件(对应结构体 ALARM_FINACE_SCHEME_INFO)
  1286. #define DH_ALARM_HEATIMG_TEMPER 0x31aa // 热成像测温点温度异常报警事件(对应结构体 ALARM_HEATIMG_TEMPER_INFO)
  1287. #define DH_ALARM_TALKING_IGNORE_INVITE 0x31ab // 设备取消对讲请求事件(对应结构体ALARM_TALKING_IGNORE_INVITE_INFO)
  1288. #define DH_ALARM_BUS_SHARP_TURN 0x31ac // 车辆急转事件(对应结构体ALARM_BUS_SHARP_TURN_INFO)
  1289. #define DH_ALARM_BUS_SCRAM 0x31ad // 车辆急停事件(对应结构体ALARM_BUS_SCRAM_INFO)
  1290. #define DH_ALARM_BUS_SHARP_ACCELERATE 0x31ae // 车辆急加速事件(对应结构体ALARM_BUS_SHARP_ACCELERATE_INFO)
  1291. #define DH_ALARM_BUS_SHARP_DECELERATE 0x31af // 车辆急减速事件(对应结构体ALARM_BUS_SHARP_DECELERATE_INFO)
  1292. #define DH_ALARM_ACCESS_CARD_OPERATE 0x31b0 // 门禁卡数据操作事件(对应结构体ALARM_ACCESS_CARD_OPERATE_INFO)
  1293. #define DH_ALARM_POLICE_CHECK 0x31b1 // 警员签到事件(对应结构体ALARM_POLICE_CHECK_INFO)
  1294. #define DH_ALARM_NET 0x31b2 // 网络报警事件(对应结构体 ALARM_NET_INFO)
  1295. #define DH_ALARM_NEW_FILE 0x31b3 // 新文件事件(对应结构体ALARM_NEW_FILE_INFO)
  1296. #define DH_ALARM_FIREWARNING 0x31b5 // 热成像着火点事件 (对应结构体 ALARM_FIREWARNING_INFO)
  1297. #define DH_ALARM_RECORD_LOSS 0x31b6 // 录像丢失事件,指硬盘完好的情况下,发生误删等原因引起(对应结构体ALARM_RECORD_LOSS_INFO)
  1298. #define DH_ALARM_VIDEO_FRAME_LOSS 0x31b7 // 视频丢帧事件,比如网络不好或编码能力不足引起的丢帧(对应结构体ALARM_VIDEO_FRAME_LOSS_INFO)
  1299. #define DH_ALARM_RECORD_VOLUME_FAILURE 0x31b8 // 由保存录像的磁盘卷发生异常,引起的录像异常(对应结构体 ALARM_RECORD_VOLUME_FAILURE_INFO)
  1300. #define DH_EVENT_SNAP_UPLOAD 0x31b9 // 图上传完成事件(对应结构体EVENT_SNAP_UPLOAD_INFO)
  1301. #define DH_ALARM_AUDIO_DETECT 0x31ba // 音频检测事件(对应结构体 ALARM_AUDIO_DETECT )
  1302. #define DH_ALARM_UPLOADPIC_FAILCOUNT 0x31bb // 上传中盟失败数据个数(对应结构体ALARM_UPLOADPIC_FAILCOUNT_INFO)
  1303. #define DH_ALARM_POS_MANAGE 0x31bc // POS管理事件事件(对应结构体 ALARM_POS_MANAGE_INFO )
  1304. #define DH_ALARM_REMOTE_CTRL_STATUS 0x31bd // 无线遥控器状态事件(对应结构体 ALARM_REMOTE_CTRL_STATUS )
  1305. #define DH_ALARM_PASSENGER_CARD_CHECK 0x31be // 废弃, 乘客刷卡事件(对应结构体 ALARM_PASSENGER_CARD_CHECK )
  1306. #define DH_ALARM_SOUND 0x31bf // 声音事件(对应结构体 ALARM_SOUND )
  1307. #define DH_ALARM_LOCK_BREAK 0x31c0 // 撬锁事件(对应结构体 ALARM_LOCK_BREAK_INFO )
  1308. #define DH_ALARM_HUMAN_INSIDE 0x31c1 // 舱内有人事件(对应结构体ALARM_HUMAN_INSIDE_INFO)
  1309. #define DH_ALARM_HUMAN_TUMBLE_INSIDE 0x31c2 // 舱内有人摔倒事件(对应结构体ALARM_HUMAN_TUMBLE_INSIDE_INFO)
  1310. #define DH_ALARM_DISABLE_LOCKIN 0x31c3 // 闭锁进门按钮触发事件(对应ALARM_DISABLE_LOCKIN_INFO)
  1311. #define DH_ALARM_DISABLE_LOCKOUT 0x31c4 // 闭锁出门按钮触发事件(对应结构体ALARM_DISABLE_LOCKOUT_INFO)
  1312. #define DH_ALARM_UPLOAD_PIC_FAILED 0x31c5 // 违章数据上传失败事件(对应结构体 ALARM_UPLOAD_PIC_FAILED_INFO )
  1313. #define DH_ALARM_FLOW_METER 0x31c6 // 水流量统计信息上报事件(对应结构体 ALARM_FLOW_METER_INFO)
  1314. #define DH_ALARM_WIFI_SEARCH 0x31c7 // 获取到周围环境中WIFI设备上报事件(对应结构体 ALARM_WIFI_SEARCH_INFO)
  1315. #define DH_ALARM_WIRELESSDEV_LOWPOWER 0x31C8 // 获取无线设备低电量上报事件(对应结构体ALARM_WIRELESSDEV_LOWPOWER_INFO)
  1316. #define DH_ALARM_PTZ_DIAGNOSES 0x31c9 // 云台诊断事件(对应结构体ALARM_PTZ_DIAGNOSES_INFO)
  1317. #define DH_ALARM_FLASH_LIGHT_FAULT 0x31ca // 爆闪灯(闪光灯)报警事件 (对应结构体 ALARM_FLASH_LIGHT_FAULT_INFO)
  1318. #define DH_ALARM_STROBOSCOPIC_LIGTHT_FAULT 0x31cb // 频闪灯报警事件 (对应结构体 ALARM_STROBOSCOPIC_LIGTHT_FAULT_INFO)
  1319. #define DH_ALARM_HUMAM_NUMBER_STATISTIC 0x31cc // 人数量/客流量统计事件 (对应结构体 ALARM_HUMAN_NUMBER_STATISTIC_INFO)
  1320. #define DH_ALARM_VIDEOUNFOCUS 0x31ce // 视频虚焦报警(对应结构体 ALARM_VIDEOUNFOCUS_INFO)
  1321. #define DH_ALARM_BUF_DROP_FRAME 0x31cd // 录像缓冲区丢帧事件(对应结构体 ALARM_BUF_DROP_FRAME_INFO)
  1322. #define DH_ALARM_DOUBLE_DEV_VERSION_ABNORMAL 0x31cf // 双控设备主板与备板之间版本信息不一致异常事件 (对应结构体 ALARM_DOUBLE_DEV_VERSION_ABNORMAL_INFO)
  1323. #define DH_ALARM_DCSSWITCH 0x31d0 // 主备切换事件 集群切换报警 (对应结构体 ALARM_DCSSWITCH_INFO)
  1324. #define DH_ALARM_RADAR_CONNECT_STATE 0x31d1 // 雷达状态事件(对应结构体 ALARM_RADAR_CONNECT_STATE_INFO)
  1325. #define DH_ALARM_DEFENCE_ARMMODE_CHANGE 0x31d2 // 防区布撤防状态改变事件(对应结构体 ALARM_DEFENCE_ARMMODECHANGE_INFO)
  1326. #define DH_ALARM_SUBSYSTEM_ARMMODE_CHANGE 0x31d3 // 子系统布撤防状态改变事件(对应结构体 ALARM_SUBSYSTEM_ARMMODECHANGE_INFO)
  1327. #define DH_ALARM_RFID_INFO 0x31d4 // 红外线检测信息事件(对应结构体 ALARM_RFID_INFO)
  1328. #define DH_ALARM_SMOKE_DETECTION 0x31d5 // 烟雾报警事件(对应结构体 ALARM_SMOKE_DETECTION_INFO)
  1329. #define DH_ALARM_BETWEENRULE_TEMP_DIFF 0x31d6 // 热成像规则间温差异常报警(对应结构体 ALARM_BETWEENRULE_DIFFTEMPER_INFO)
  1330. #define DH_ALARM_TRAFFIC_PIC_ANALYSE 0x31d7 // 图片二次分析事件(对应 ALARM_PIC_ANALYSE_INFO)
  1331. #define DH_ALARM_HOTSPOT_WARNING 0x31d8 // 热成像热点异常报警(对应结构体 ALARM_HOTSPOT_WARNING_INFO)
  1332. #define DH_ALARM_COLDSPOT_WARNING 0x31d9 // 热成像冷点异常报警(对应结构体 ALARM_COLDSPOT_WARNING_INFO)
  1333. #define DH_ALARM_FIREWARNING_INFO 0x31da // 热成像火情事件信息上报(对应结构体 ALARM_FIREWARNING_INFO_DETAIL)
  1334. #define DH_ALARM_FACE_OVERHEATING 0x31db // 热成像人体温度异常预警(对应结构体 ALARM_FACE_OVERHEATING_INFO)
  1335. #define DH_ALARM_SENSOR_ABNORMAL 0x31dc // 探测器异常报警(对应结构体 ALARM_SENSOR_ABNORMAL_INFO)
  1336. #define DH_ALARM_PATIENTDETECTION 0x31de // 监控病人活动状态报警事件(对应结构体 ALARM_PATIENTDETECTION_INFO)
  1337. #define DH_ALARM_RADAR_HIGH_SPEED 0x31df // 雷达监测超速报警事件 智能楼宇专用 (对应结构体 ALARM_RADAR_HIGH_SPEED_INFO)
  1338. #define DH_ALARM_POLLING_ALARM 0x31e0 // 设备巡检报警事件 智能楼宇专用 (对应结构体 ALARM_POLLING_ALARM_INFO)
  1339. #define DH_ALARM_ITC_HWS000 0x31e1 // 虚点测速仪设备事件与报警(对应结构体 ALARM_ITC_HWS000)
  1340. #define DH_ALARM_TRAFFICSTROBESTATE 0x31e2 // 道闸栏状态事件(对应结构体 ALARM_TRAFFICSTROBESTATE_INFO)
  1341. #define DH_ALARM_TELEPHONE_CHECK 0x31e3 // 手机号码上报事件(对应结构体 ALARM_TELEPHONE_CHECK_INFO)
  1342. #define DH_ALARM_PASTE_DETECTION 0x31e4 // 贴条事件(对应结构体 ALARM_PASTE_DETECTION_INFO )
  1343. #define DH_ALARM_SHOOTINGSCORERECOGNITION 0x31e5 // 打靶像机事件(对应结构体 ALARM_PIC_SHOOTINGSCORERECOGNITION_INFO)
  1344. #define DH_ALARM_SWIPEOVERTIME 0x31e6 // 超时未刷卡事件(对应结构体 ALARM_SWIPE_OVERTIME_INFO)
  1345. #define DH_ALARM_DRIVING_WITHOUTCARD 0x31e7 // 无卡驾驶事件(对应结构体 ALARM_DRIVING_WITHOUTCARD_INFO)
  1346. #define DH_ALARM_TRAFFIC_PEDESTRIAN_RUN_REDLIGHT_DETECTION 0x31e8 //闯红灯事件(对应结构体 ALARM_TRAFFIC_PEDESTRIAN_RUN_REDLIGHT_DETECTION_INFO )
  1347. #define DH_ALARM_FIGHTDETECTION 0x31e9 // 斗殴事件(对应结构体 NET_ALARM_FIGHTDETECTION)
  1348. #define DH_ALARM_OIL_4G_OVERFLOW 0x31ea // 4G流量超过阈值的报警事件(对应结构体 NET_ALARM_OIL_4G_OVERFLOW_INFO)
  1349. #define DH_ALARM_ACCESSIDENTIFY 0x31eb // VTO目标识别事件(对应结构体 NET_ALARM_ACCESSIDENTIFY)
  1350. #define DH_ALARM_POWER_SWITCHER_ALARM 0x31ec // 供电电源开关状态异常报警事件(对应结构体 DEV_ALRAM_POWERSWITCHER_INFO)
  1351. #define DH_ALARM_SCENNE_CHANGE_ALARM 0x31ed // 场景变更事件(对应结构体 ALARM_PIC_SCENECHANGE_INFO)原来是VideoAbnormalDetection的SceneChange子事件,因需求变更,改为单独事件类型
  1352. #define DH_ALARM_WIFI_VIRTUALINFO_SEARCH 0x31ef // WIFI虚拟身份上报事件(对应结构体 ALARM_WIFI_VIRTUALINFO_SEARCH_INFO)
  1353. #define DH_ALARM_TRAFFIC_OVERSPEED 0x31f0 // 超速事件(对应结构体 ALARM_TRAFFIC_OVERSPEED_INFO)
  1354. #define DH_ALARM_TRAFFIC_UNDERSPEED 0x31f1 // 欠速事件(对应结构体 ALARM_TRAFFIC_UNDERSPEED_INFO)
  1355. #define DH_ALARM_TRAFFIC_PEDESTRAIN 0x31f2 // 交通行人事件(对应结构体 ALARM_TRAFFIC_PEDESTRAIN_INFO)
  1356. #define DH_ALARM_TRAFFIC_JAM 0x31f3 // 交通拥堵事件(对应结构体 ALARM_TRAFFIC_JAM)
  1357. #define DH_ALARM_TRAFFIC_PARKING 0x31f4 // 违章停车事件(对应结构体 ALARM_TRAFFIC_PARKING_INFO)
  1358. #define DH_ALARM_TRAFFIC_THROW 0x31f5 // 交通抛洒物品事件(对应结构体 ALARM_TRAFFIC_THROW_INFO)
  1359. #define DH_ALARM_TRAFFIC_RETROGRADE 0x31f6 // 逆行事件(对应结构体 ALARM_TRAFFIC_RETROGRADE_INFO)
  1360. #define DH_ALARM_VTSTATE_UPDATE 0x31f7 // VTS状态上报(对应结构体 ALARM_VTSTATE_UPDATE_INFO)
  1361. #define DH_ALARM_CALL_NO_ANSWERED 0x31f8 // 直连情况下,呼叫无答应事件(对应结构体 NET_ALARM_CALL_NO_ANSWERED_INFO)
  1362. #define DH_ALARM_USER_LOCK_EVENT 0x31f9 // 用户锁定报警事件
  1363. #define DH_ALARM_RETROGRADE_DETECTION 0x31fa // 人员逆行事件(对应结构体 ALARM_RETROGRADE_DETECTION_INFO)
  1364. #define DH_ALARM_AIO_APP_CONFIG_EVENT 0x31fb // AIO报警事件(对应结构体 ALARM_AIO_APP_CONFIG_EVENT)
  1365. #define DH_ALARM_RAID_STATE_EX 0x31fc // RAID异常报警(对应结构体 ALARM_RAID_INFO_EX)
  1366. #define DH_ALARM_STORAGE_IPC_FAILURE 0x31fd // IPC的存储介质故障事件(IPC SD卡异常)(对应结构体 ALARM_STORAGE_IPC_FAILURE_INFO)
  1367. #define DH_ALARM_DEVICE_STAY 0x31fe // 静止报警,如果设备坐标在指定时间内没有变化,触发静止报警信息(对应的结构体 ALARM_DEVICE_STAY_INFO)
  1368. #define DH_ALARM_SUB_WAY_DOOR_STATE 0x31ff // 地铁车厢门状态(对应结构体 ALARM_SUB_WAY_DOOR_STATE_INFO)
  1369. #define DH_ALARM_SUB_WAY_PECE_SWITCH 0x3200 // 地铁PECE柜门状态(对应结构体 ALARM_SUB_WAY_PECE_SWITCH_INFO)
  1370. #define DH_ALARM_SUB_WAY_FIRE_ALARM 0x3201 // 地铁火警事件(对应结构体 ALARM_SUB_WAY_FIRE_ALARM_INFO)
  1371. #define DH_ALARM_SUB_WAY_EMER_HANDLE 0x3202 // 地铁乘客紧急手柄动作(对应结构体 ALARM_SUB_WAY_EMER_HANDLE_INFO)
  1372. #define DH_ALARM_SUB_WAY_CAB_COVER 0x3203 // 地铁司机室盖板状态(对应结构体 ALARM_SUB_WAY_CAB_COVER_INFO)
  1373. #define DH_ALARM_SUB_WAY_DERA_OBST 0x3204 // 地铁检测到障碍物或脱轨(对应结构体 ALARM_SUB_WAY_DERA_OBST_INFO)
  1374. #define DH_ALARM_SUB_WAY_PECU_CALL 0x3205 // 地铁客室报警器状态(对应结构体 ALARM_SUB_WAY_PECU_CALL_INFO)
  1375. #define DH_ALARM_BOX 0x3206 // 报警盒子报警事件 (对应结构体 ALARM_BOX_INFO)
  1376. #define DH_ALARM_DOOR_CLOSEDMANUALLY 0x3207 // 人为关门事件(对应结构体 ALARM_DOOR_CLOSEDMANUALLY_INFO)
  1377. #define DH_ALARM_DOOR_NOTCLOSED_LONGTIME 0x3208 // 门超长时间未关报警事件(对应结构体 ALARM_DOOR_NOTCLOSED_LONGTIME_INFO)
  1378. #define DH_ALARM_UNDER_VOLTAGE 0x3209 // 电压低于9V, 电源欠压报警, 视频流以红色OSD图标叠加形式报警 (对应结构体 ALARM_UNDER_VOLTAGE_INFO )
  1379. #define DH_ALARM_OVER_VOLTAGE 0x320a // 电压高于19V, 电源过压报警, 视频流以红色OSD图标叠加形式报警 (对应结构体 ALARM_OVER_VOLTAGE_INFO )
  1380. #define DH_ALARM_CUT_LINE 0x320b // 剪断报警(对应结构体ALARM_CUT_LINE_INFO)
  1381. #define DH_ALARM_VIDEOMOTION_EVENT 0x320c // 动检事件(对应结构体 ALARM_VIDEOMOTION_EVENT_INFO)
  1382. #define DH_ALARM_WIDE_VIEW_REGION_EVENT 0x320d // WideViewRegions事件(对应结构体 ALARM_WIDE_VIEW_REGION_EVENT_INFO) A平台发该事件到球机,将该事件转发给B平台
  1383. #define DH_ALARM_FIBRE_OPTIC_ABORT 0x320e // 断纤报警(对应结构体 ALARM_FIBRE_OPTIC_ABORT)
  1384. #define DH_ALARM_TAIL_DETECTION 0x320f // 尾随事件(对应结构体 ALARM_TAIL_DETECTION_INFO)
  1385. #define DH_ALARM_BITRATES_OVERLIMIT 0x3210 // 相机码流大于通道解码规格报警(对应结构体 ALARM_BITRATES_OVERLIMIT_INFO)
  1386. #define DH_ALARM_RECORD_CHANGED_EX 0x3211 // 录像状态变化报警(对应结构体 ALARM_RECORD_CHANGED_INFO_EX)
  1387. #define DH_ALARM_HIGH_DECIBEL 0x3212 // 声音高分贝检测报警(对应结构体 ALARM_HIGH_DECIBEL_INFO)
  1388. #define DH_ALARM_SHAKE_DETECTION 0x3213 // 摇晃检测报警(对应结构体 ALARM_SHAKE_DETECTION_INFO)
  1389. #define DH_ALARM_TUMBLE_DETECTION 0x3214 // 倒地报警事件(对应结构体 ALARM_TUMBLE_DETECTION_INFO)
  1390. #define DH_ALARM_ACCESS_CTL_MALICIOUS 0x3215 // 恶意开门事件(对应结构体 ALARM_ACCESS_CTL_MALICIOUS)
  1391. #define DH_ALARM_ACCESS_CTL_USERID_REGISTER 0x3216 // 用户已注册事件(对应结构体 ALARM_ACCESS_CTL_USERID_REGISTER)
  1392. #define DH_ALARM_ACCESS_CTL_REVERSELOCK 0x3217 // 锁体状态信息变化事件(对应结构体 ALARM_ACCESS_CTL_REVERSELOCK)
  1393. #define DH_ALARM_ACCESS_CTL_USERID_DELETE 0x3218 // 删除用户事件(对应结构体 ALARM_ACCESS_CTL_USERID_DELETE)
  1394. #define DH_ALARM_ACCESS_DOOR_BELL 0x3219 // 响铃事件(对应结构体 ALARM_ACCESS_DOOR_BELL_INFO)
  1395. #define DH_ALARM_ACCESS_FACTORY_RESET 0x321a // 门锁恢复出厂(对应结构体 ALARM_ACCESS_FACTORY_RESET)
  1396. #define DH_ALARM_POLICE_RECORD_PROGRESS 0x321b // MPT录像导入NVR的进度事件(对应结构体 ALARM_POLICE_RECORD_PROGRESS_INFO)
  1397. #define DH_ALARM_POLICE_PLUGIN 0x321c // MPT接入拔出设备事件(对应结构体 ALARM_POLICE_PLUGIN_INFO)
  1398. #define DH_ALARM_GPS_NOT_ALIGNED 0x321d // GPS未定位报警(对应结构体 ALARM_GPS_NOT_ALIGNED_INFO)
  1399. #define DH_ALARM_WIRELESS_NOT_CONNECTED 0x321e // 网络未连接报警(包括wifi,3G/4G)(对应结构体 ALARM_WIRELESS_NOT_CONNECTED_INFO)
  1400. #define DH_ALARM_CABINET 0x321f // 云柜设备发送的物品存放单号信息实时上报事件(对应结构体 ALARM_CABINET_INFO)
  1401. #define DH_SWITCH_SCREEN 0x3220 // 切换屏幕事件
  1402. #define DH_ALARM_NEAR_DISTANCE_DETECTION 0x3221 // 近距离接触报警(对应结构体ALARM_NEAR_DISTANCE_INFO)
  1403. #define DH_ALARM_MAN_STAND_DETECTION 0x3222 // 立体视觉站立报警(对应结构体ALARM_MAN_STAND_INFO)
  1404. #define DH_ALARM_MAN_NUM_DETECTION 0x3223 // 立体视觉区域内人数统计报警(对应结构体ALARM_MAN_NUM_INFO)
  1405. #define DH_MCS_GENERAL_CAPACITY_LOW 0x3224 // 微云常规容量事件(对应结构体ALARM_MCS_GENERAL_CAPACITY_LOW_INFO)
  1406. #define DH_MCS_DATA_NODE_OFFLINE 0x3225 // 微云存储节点下线事件(对应结构体ALARM_MCS_DATA_NODE_OFFLINE_INFO)
  1407. #define DH_MCS_DISK_OFFLINE 0x3226 // 微云磁盘下线事件(对应结构体ALARM_MCS_DISK_OFFLINE_INFO)
  1408. #define DH_MCS_DISK_SLOW 0x3227 // 微云磁盘变慢事件(对应结构体ALARM_MCS_DISK_SLOW_INFO)
  1409. #define DH_MCS_DISK_BROKEN 0x3228 // 微云磁盘损坏事件(对应结构体ALARM_MCS_DISK_BROKEN_INFO)
  1410. #define DH_MCS_DISK_UNKNOW_ERROR 0x3229 // 微云磁盘未知错误事件(对应结构体ALARM_MCS_DISK_UNKNOW_ERROR_INFO)
  1411. #define DH_MCS_METADATA_SERVER_ABNORMAL 0x322a // 微云元数据服务器异常事件(对应结构体ALARM_MCS_METADATA_SERVER_ABNORMAL_INFO)
  1412. #define DH_MCS_CATALOG_SERVER_ABNORMAL 0x322b // 微云目录服务器异常事件(对应结构体ALARM_MCS_CATALOG_SERVER_ABNORMAL_INFO)
  1413. #define DH_MCS_GENERAL_CAPACITY_RESUME 0x322c // 微云常规容量恢复事件(对应结构体ALARM_MCS_GENERAL_CAPACITY_RESUME_INFO)
  1414. #define DH_MCS_DATA_NODE_ONLINE 0x322d // 微云存储节点上线事件(对应结构体ALARM_MCS_DATA_NODE_ONLINE_INFO)
  1415. #define DH_MCS_DISK_ONLINE 0x322e // 微云磁盘上线事件(对应结构体ALARM_MCS_DISK_ONLINE_INFO)
  1416. #define DH_MCS_METADATA_SLAVE_ONLINE 0x322f // 微云元数据备机上线事件(对应结构体ALARM_MCS_METADATA_SLAVE_ONLINE_INFO)
  1417. #define DH_MCS_CATALOG_SERVER_ONLINE 0x3230 // 微云目录服务器上线事件(对应结构体ALARM_MCS_CATALOG_SERVER_ONLINE_INFO)
  1418. #define DH_ALARM_OFFLINE_LOGSYNC 0x3231 // 同步离线日志事件(对应结构体 ALARM_OFFLINE_LOGSYNC_INFO)
  1419. #define DH_ALARM_UPGRADE_STATE 0x3232 // 设备升级状态事件(对应结构体 ALARM_UPGRADE_STATE)
  1420. #define DH_ALARM_LABELINFO 0x3233 // IPC新增(2017.4),RFID标签信息采集事件(对应结构体 ALARM_LABELINFO)
  1421. #define DH_ALARM_TIRED_PHYSIOLOGICAL 0x3234 // 生理疲劳事件(对应结构体 ALARM_TIRED_PHYSIOLOGICAL)
  1422. #define DH_ALARM_CALLING_WHEN_DRIVING 0x3235 // 开车打电话事件(对应结构体 ALARM_CALLING_WHEN_DRIVING)
  1423. #define DH_ALARM_TRAFFIC_DRIVER_SMOKING 0x3236 // 开车抽烟事件(对应结构体 ALARM_TRAFFIC_DRIVER_SMOKING)
  1424. #define DH_ALARM_TRAFFIC_DRIVER_LOWER_HEAD 0x3237 // 开车低头报警事件(对应结构体 ALARM_TRAFFIC_DRIVER_LOWER_HEAD)
  1425. #define DH_ALARM_TRAFFIC_DRIVER_LOOK_AROUND 0x3238 // 开车左顾右盼报警事件(对应结构体 ALARM_TRAFFIC_DRIVER_LOOK_AROUND)
  1426. #define DH_ALARM_TRAFFIC_DRIVER_LEAVE_POST 0x3239 // 开车离岗报警事件(对应结构体 ALARM_TRAFFIC_DRIVER_LEAVE_POST)
  1427. #define DH_ALARM_TRAFFIC_DRIVER_YAWN 0x323a // 开车打哈欠报警事件(对应结构体 ALARM_TRAFFIC_DRIVER_YAWN)
  1428. #define DH_ALARM_AUTO_INSPECTION 0x323b // 设备自检事件(对应结构体 ALARM_AUTO_INSPECTION)
  1429. #define DH_ALARM_TRAFFIC_VEHICLE_POSITION 0x323c // 车辆位置事件(对应的结构体 ALARM_TRAFFIC_VEHICLE_POSITION)
  1430. #define DH_ALARM_FACE_VERIFICATION_ACCESS_SNAP 0x323d // 目标认证开门抓图信息事件(对应结构体 ALARM_FACE_VERIFICATION_ACCESS_SNAP_INFO)
  1431. #define DH_ALARM_VIDEOBLIND 0x323e // 视频遮挡事件(对应结构体ALARM_VIDEO_BLIND_INFO)
  1432. #define DH_ALARM_DRIVER_NOTCONFIRM 0x323f // 司机未按确认按钮报警事件(对应结构体ALARM_DRIVER_NOTCONFIRM_INFO)
  1433. #define DH_ALARM_FACEINFO_COLLECT 0x3240 // 目标信息录入事件(对应ALARM_FACEINFO_COLLECT_INFO)
  1434. #define DH_ALARM_HIGH_SPEED 0x3241 // 车辆超速报警事件(对应 ALARM_HIGH_SPEED_INFO)
  1435. #define DH_ALARM_VIDEO_LOSS 0x3242 // 视频丢失事件(对应 ALARM_VIDEO_LOSS_INFO)
  1436. #define DH_ALARM_MPTBASE_CONNECT 0x3243 // 设备与底座连接状态事件(对应结构体ALARM_MPTBASE_CONNECT)
  1437. #define DH_ALARM_LATEST_SHUTDOWN 0x3244 // 设备上次关机状态事件(对应结构体 ALARM_LATEST_SHUTDOWN)
  1438. // ------------- 机器人专用事件 ------------------
  1439. #define DH_ALARM_ROBOT_COLLISION 0x3245 // 机器人碰撞事件(对应结构体 ALARM_ROBOT_COLLISION)
  1440. #define DH_ALARM_ROBOT_FALLENDOWN 0x3246 // 机器人跌倒事件(对应结构体 ALARM_ROBOT_FALLENDOWN)
  1441. #define DH_ALARM_ROBOT_UNRECOGNIZED2DCODE 0x3247 // 机器人二维码本身码值错误事件(对应结构体 ALARM_ROBOT_UNRECOGNIZED2DCODE)
  1442. #define DH_ALARM_ROBOT_WRONG2DCODE 0x3248 // 机器人错误二位码事件(对应的结构体 ALARM_ROBOT_WRONG2DCODE)
  1443. #define DH_ALARM_ROBOT_ROADBLOCKED 0x3249 // 机器人路障事件(对应结构体 ALARM_ROBOT_ROADBLOCKED)
  1444. #define DH_ALARM_ROBOT_FAULT 0x324a // 机器人故障事件(对应结构体 ALARM_ROBOT_FAULT)
  1445. #define DH_ALARM_ROBOT_OVERLOAD 0x324b // 机器人超载事件(对应结构体 ALARM_ROBOT_OVERLOAD)
  1446. #define DH_ALARM_ROBOT_YAWEXCEPTION 0x324c // 机器人意外偏航事件(对应 ALARM_ROBOT_YAWEXCEPTION)
  1447. #define DH_ALARM_ROBOT_LOADTIMEOUT 0x324e // 机器人上料异常(对应 ALARM_ROBOT_LOADTIMEOUT )
  1448. #define DH_ALARM_ROBOT_UNLOADTIMEOUT 0x324f // 机器人卸料异常事件(对应 ALARM_ROBOT_UNLOADTIMEOUT)
  1449. #define DH_ALARM_ROBOT_MAPUPDATE 0x3250 // 机器人地图更新事件(对应 ALARM_ROBOT_MAPUPDATE)
  1450. #define DH_ALARM_ROBOT_BRAKE 0x3252 // 机器人紧急刹车事件(对应 ALARM_ROBOT_BRAKE)
  1451. #define DH_ALARM_ROBOT_MANUAL_INTERVENTION 0x3253 // 机器人人工干预事件(对应 ALARM_ROBOT_MANUAL_INTERVENTION)
  1452. //机器人事件预留至0x3299
  1453. // -----------------------------------------------
  1454. #define DH_ALARM_VIDEO_TALK_PATH 0x324d // 对讲路径事件(对应结构体 ALARM_VIDEO_TALK_PATH_INFO)
  1455. #define DH_ALARM_CGIRECORD 0x3251 // cgi触发手动录像(对应 ALARM_CGIRECORD)
  1456. #define DH_ALARM_BATTERY_TEMPERATURE 0x3254 // 电池温度上报事件(对应 ALARM_BATTERY_TEMPERATURE_INFO)
  1457. #define DH_ALARM_TIRE_PRESSURE 0x3255 // 胎压上报事件(对应 ALARM_TIRE_PRESSURE_INFO )
  1458. #define DH_ALARM_VTH_CONFLICT 0x3256 // 房间号冲突冲突上报事件(对应 ALARM_VTH_CONFLICT_INFO)
  1459. #define DH_ALARM_ACCESS_CTL_BLACKLIST 0x3257 // 门禁禁止名单刷卡事件上报(对应 ALARM_ACCESS_CTL_BLACKLIST)
  1460. #define DH_ALARM_ROBOT_EMERGENCY_STOP 0x3258 // 机器人紧急停车按钮事件(对应 ALARM_ROBOT_EMERFEBCY_STOP)
  1461. #define DH_ALARM_ROBOT_PATH_PLAN_FAILED 0x3259 // 机器人路径规划失败事件(对应 ALARM_ROBOT_PATH_PLAN_FAILED)
  1462. #define DH_ALARM_ROBOT_LOCAL_MAP_UPLOAD 0x325a // 机器人本地地图上传事件(对应 ALARM_ROBOT_LOCAL_MAP_UPLOAD)
  1463. #define DH_ALARM_ROBOT_SHELF_ERROR 0x325b // 机器人货架异常事件(对应 ALARM_ROBOT_SHELF_ERROR)
  1464. #define DH_ALARM_ROBOT_SENSOR_ERROR 0x325c // 机器人传感器异常事件(对应 ALARM_ROBOT_SENSOR_ERROR)
  1465. #define DH_ALARM_ROBOT_DERAILMENT 0x325d // 机器人脱轨事件(对应 ALARM_ROBOT_DERAILMENT)
  1466. #define DH_ALARM_ROBOT_MOTOR_UNINIT 0x325e // 机器人电机抱闸未使能事件(对应 ALARM_ROBOT_MOTOR_UNINIT)
  1467. #define DH_ALARM_ROBOT_PREVENT_FALLING 0x325f // 机器人防跌落事件(对应 ALARM_ROBOT_PREVENT_FALLING)
  1468. #define DH_ALARM_ROBOT_LOCATION_EXCEPTION 0x3260 // 机器人定位异常事件(对应 ALARM_ROBOT_LOCATION_EXCEPTION )
  1469. #define DH_ALARM_ROBOT_UPGRADER_FAIL 0x3261 // 机器人升级失败反馈(对应 ALARM_ROBOT_UPGRADER_FAIL)
  1470. #define DH_ALARM_ROBOT_CHARGING_ERROR 0x3262 // 机器人充电异常事件(对应 ALARM_ROBOT_CHARGING_ERROR)
  1471. #define DH_ALARM_ROBOT_STATIONCHARGING_ERROR 0x3263 // 机器人充电桩充电异常事件(对应 ALARM_ROBOT_STATIONCHARGING_ERROR)
  1472. #define DH_ALARM_ROBOT_CAMERA_ABNORMAL 0x3264 // 机器人相机异常事件(对应 ALARM_ROBOT_CAMERA_ABNORMAL)
  1473. #define DH_ALARM_ROBOT_ERROR_REPORT 0x3265 // 机器人故障信息(对应 ALARM_ROBOT_ERROR_REPORT)
  1474. #define DH_ALARM_ROBOT_DOOR_CONTROL_REQUEST 0x3266 // 机器人门控制请求事件(对应 ALARM_ROBOT_DOOR_CONTROL_REQUEST_INFO)
  1475. #define DH_ALARM_ROBOT_FAILEDTO_CONTROLROOM 0x3267 // 机器人打开充电房门失败事件(对应 ALARM_ROBOT_FAILEDTO_CONTROLROOM)
  1476. #define DH_ALARM_ROBOT_ABNORMAL2DCODE 0x3268 // 机器人二维码异常事件(对应 ALARM_ROBOT_ABNORMAL2DCODE)
  1477. #define DH_ALARM_ROBOT_SECURITYDOGINVALID 0x3269 // 机器人加密狗无效事件(对应 ALARM_ROBOT_SECURITYDOGINVALID)
  1478. #define DH_ALARM_ROBOT_LOCKAREA_BLOCKED 0x326a // 机器人锁定区域阻塞事件(对应 ALARM_ROBOT_LOCKAREA_BLOCKED)
  1479. #define DH_ALARM_ROBOT_REQUEST_CANCLE_TASK 0x326b // 机器人通知平台取消当前任务事件(对应 ALARM_ROBOT_REQUEST_CANCLE_TASK)
  1480. #define DH_ALARM_ROBOT_FORK_BLOCK 0x326c // 机器人货叉遇障事件(对应 ALARM_ROBOT_FORK_BLOCK)
  1481. #define DH_ALARM_ROBOT_SHUT_DOWN 0x326d // 机器人关机事件(对应 ALARM_ROBOT_SHUT_DOWN)
  1482. #define DH_ALARM_ROBOT_LASER_HEAD_DIRTY 0x326e // 机器人激光头脏事件(对应 ALARM_ROBOT_LASER_HEAD_DIRTY)
  1483. #define DH_ALARM_ROBOT_UNTRACK 0x326f // 机器人不上轨报警事件(对应 ALARM_ROBOT_UNTRACK)
  1484. #define DH_ALARM_ROBOT_IN_ELEVATOR 0x3270 // 机器人到达电梯事件(对应 ALARM_ROBOT_IN_ELEVATOR)
  1485. #define DH_ALARM_ROBOT_CORRECT_LOACATION 0x3271 // 机器人重定位事件(对应 ALARM_ROBOT_CORRECT_LOACATION)
  1486. #define DH_ALARM_ROBOT_SLIP 0x3272 // 机器人打滑事件(对应 ALARM_ROBOT_SLIP)
  1487. #define DH_ALARM_ROBOT_LOAD_HEIGHT_ALARM 0x3273 // 机货物超高事件(对应 ALARM_ROBOT_LOAD_HEIGHT_ALARM)
  1488. #define DH_ALARM_ROBOT_EMERGENCY_STOP_EX 0x3274 // 机器人急停事件扩展(对应 ALARM_ROBOT_EMERGENCY_STOP_EX)
  1489. //新增事件从0x3300开始
  1490. #define DH_ALARM_USERLOCK 0x3300 // 用户锁定报警事件(对应 ALARM_USERLOCK_INFO)
  1491. #define DH_ALARM_DOWNLOAD_REMOTE_FILE 0x3301 // 下载远程文件事件(对应ALARM_DOWNLOAD_REMOTE_FILE_INFO)
  1492. #define DH_ALARM_NASFILE_STATUS 0x3302 // NAS文件状态事件(对应结构体 ALARM_NASFILE_STATUS_INFO)
  1493. #define DH_ALARM_TALKING_CANCELCALL 0x3303 // 设备呼叫中取消呼叫事件(对应结构体 ALARM_TALKING_CANCELCALL_INFO)
  1494. #define DH_ALARM_ACCESS_CTL_UNAUTHORIZED_MALICIOUSWIP 0x3304 // 未授权卡恶意刷卡事件(对应结构体 ALARM_ACCESS_CTL_UNAUTHORIZED_MALICIOUSWIP)已废弃,复用DH_ALARM_ACCESS_CTL_MALICIOUS事件
  1495. #define DH_ALARM_CROWD_DETECTION 0x3305 // 人群密度检测事件(对应结构体 ALARM_CROWD_DETECTION_INFO)
  1496. #define DH_ALARM_FACE_FEATURE_ABSTRACT 0x3306 // 目标特征向量重建结果事件(对应结构体ALARM_FACE_FEATURE_ABSTRACT_INFO)
  1497. #define DH_ALARM_RECORD_SCHEDULE_CHANGE 0x3307 // 录像计划改变事件(对应结构体 ALARM_RECORD_SCHEDULE_CHANGE_INFO)
  1498. #define DH_ALARM_NTP_CHANGE 0x3308 // NTP配置修改事件(对应结构体 ALARM_NTP_CHANGE_INFO)
  1499. #define DH_ALARM_HDD_TEMPERATUREALARM 0x3309 // 硬盘温度报警事件(对应结构体 ALARM_HDD_TEMPERATUREALARM_INFO)
  1500. #define DH_ALARM_HDD_HEALTHALARM 0x330a // 硬盘健康状况报警事件(对应结构体 ALARM_HDD_HEALTHALARM_INFO)
  1501. #define DH_ALARM_HDD_SHAKEALARM 0x330b // 硬盘震动报警事件(对应结构体 ALARM_HDD_SHAKEALARM_INFO)
  1502. #define DH_ALARM_PATROL_STATUS 0x330c // 未巡更报警事件(对应结构体 ALARM_PATROL_STATUS_INFO)
  1503. #define DH_ALARM_CITIZEN_PICTURE_COMPARE 0x330d // 人证比对事件(对应结构体 ALARM_CITIZEN_PICTURE_COMPARE_INFO)
  1504. /* start 报警主机事件,预留58个事件*/
  1505. #define DH_ALARM_AREAARM_MODECHANGE 0x330e // 区域防区模式改变(对应结构体ALARM_AREAARM_MODECHANGE_INFO)
  1506. #define DH_ALARM_ZONEMODULELOST 0x330f // 防区模块掉线(对应结构提ALARM_ZONEMODULE_LOST_INFO)
  1507. #define DH_ALARM_AREAALARM 0x3310 // 区域报警(对应结构体ALARM_AREAALARM_INFO)
  1508. #define DH_ALARM_ZONEOPEN 0x3311 // 防区打开(对应结构体ALARM_ZONEOPEN_INFO)
  1509. #define DH_ALARM_SYSTEMTAMPER 0x3312 // 防拆事件(对应结构体ALARM_SYSTEMTAMPER_INFO)
  1510. #define DH_ALARM_ALARMREGION_MAXEVENTID 0x3348 // 报警主机新品事件最大值,这个值不可用
  1511. /* end 报警主机事件,预留58个事件 */
  1512. #define DH_ALARM_LAW_ENFORCEMENT_INFO 0x3349 // 实时上报执法终端设备信息事件(对应的结构体 ALARM_LAW_ENFORCEMENT_INFO)
  1513. #define DH_ALARM_CONGESTION_DETECTION 0x334A // 道路场景车辆拥堵报警事件(对应 ALARM_CONGESTION_DETECTION_INFO)
  1514. #define DH_ALARM_VEHICLELIMIT_DETECTION 0x334B // 停车场场景下停车车辆上限报警(对应 ALARM_VEHICLELIMIT_DETECTION_INFO)
  1515. #define DH_ALARM_TRAFFIC_PARKING_TIMEOUT 0x334C // 停车时长超限事件(对应的结构体 ALARM_TRAFFIC_PARKING_TIMEOUT_INFO)
  1516. /* end 报警主机事件,预留64个事件*/
  1517. #define DH_ALARM_DISTANCE_DETECTION 0x334e // 异常间距事件(对应 ALARM_DISTANCE_DETECTION_INFO)
  1518. #define DH_ALARM_STAY_DETECTION 0x334f // 停留事件(对应 ALARM_STAY_DETECTION_INFO)
  1519. #define DH_ALARM_DEVBOARDHOTPLUG 0x3350 // 双控设备热插拔事件(对应结构体 ALARM_DEVBOARDHOTPLUG_INFO)
  1520. #define DH_ALARM_HOMESCENE_CHANGE 0x3351 // 智能家居场景变化事件(对应结构体ALARM_HOMESCENE_CHANGE_INFO)
  1521. #define DH_ALARM_STORAGE_WORKDIRECTORY_SWITCH 0x3352 // 当前工作目录切换事件(对应结构体 ALARM_STORAGE_WORKDIRECTORY_SWITCH_INFO)
  1522. #define DH_ALARM_TRAFFIC_LINKAGEALARM 0x3353 // 各种违章事件联动报警输出事件(对应结构体 ALARM_TRAFFIC_LINKAGEALARM_INFO)
  1523. #define DH_ALARM_COAXIAL_ALARM_LOCAL 0x3354 // 同轴开关量报警事件(对应结构体 ALARM_COAXIAL_ALARM_LOCAL_INFO)
  1524. #define DH_ALARM_NAS_FILE_REMOVE_STATUS 0x3355 // NAS文件删除状态事件(对应结构体 ALARM_NAS_FILE_REMOVE_STATUS_INFO)
  1525. #define DH_ALARM_NAS_APK_INSTALL_REQUEST 0x3356 // 请求设备安装APK事件(对应结构体 ALARM_NAS_APK_INSTALL_REQUEST_INFO)
  1526. #define DH_ALARM_NAS_APK_INSTALL_STATUS 0x3357 // 设备安装APK状态事件(对应结构体 ALARM__APK_INSTALL_STATUS_INFO)
  1527. #define DH_ALARM_FILE_COMPRESS_STATUS 0x3358 // 文件压缩解压状态事件(对应结构体 ALARM_FILE_COMPRESSS_STATUS_INFO)
  1528. #define DH_ALARM_STRANGER_ALARM 0x3359 // 陌生人报警事件(对应结构体 ALARM_STRANGER_ALARM_INFO)
  1529. #define DH_ALARM_QR_CODE_CHECK 0x335a // 二维码上报事件(对应结构体 ALARM_QR_CODE_CHECK_INFO)
  1530. #define DH_ALARM_ACCESS_CTL_LOCK_MODE 0x335b // 门锁模式事件(对应结构体 ALARM_ACCESS_CTL_LOCK_MODE_INFO)
  1531. #define DH_ALARM_LOCK_ROOM_NUM_BIND 0x335c // 房间号绑定事件(对应结构体 ALARM_LOCK_ROOM_NUM_BIND_INFO)
  1532. #define DH_ALARM_LEAVE_DETECTION 0x335d // 离岗检测(对应结构体 ALARM_LEAVE_DETECTION_INFO)
  1533. #define DH_ALARM_TRAFFICGZJJ_QUEUE_LEN 0x335e // 交通排队长度事件(对应结构体 ALARM_TRAFFICGZJJ_QUEUE_LEN_INFO)
  1534. #define DH_ALARM_TRAFFIC_XINKONG 0x335f // 交通态势报警事件(对接结构体 ALARM_TRAFFIC_XINKONG_INFO)
  1535. #define DH_ALARM_DEVICE_ABNORMAL 0x3360 // 设备异常事件 (对应结构体 ALARM_DEVICE_ABNORMAL_INFO )
  1536. /* start 雷球联动事件,预留64个事件*/
  1537. #define DH_ALARM_RADAR_REGIONDETECTION 0x3370 // 雷达区域检测事件(对应结构体 ALARM_RADAR_REGIONDETECTION_INFO)
  1538. #define DH_ALARM_RADAR_LINEDETECTION 0x3371 // 雷达警戒线/绊线检测事件(对应结构体ALARM_RADAR_LINEDETECTION_INFO)
  1539. #define DH_ALARM_RADAR_MAXEVENTID 0x3433 // 雷达新品事件最大值,这个值不可用
  1540. /* end 雷球联动事件,预留64个事件*/
  1541. #define DH_ALARM_JABLOTRON_ALARM 0x3434 // 客户报警产品(对应结构体 ALARM_JABLOTRONALARM_INFO)
  1542. #define DH_ALARM_FACE_RECOGNITION 0x3435 // 目标识别事件(对应结构体 ALARM_FACE_RECOGNITION_INFO)
  1543. #define DH_ALARM_VEHICLE_OILLEVEL 0x3436 // 车载燃料液位事件(对应结构体 ALARM_VEHICLE_OILLEVEL_INFO)
  1544. #define DH_ALARM_VEHICLE_LOAD 0x3437 // 车载燃料载重事件(对应结构体 ALARM_VEHICLE_LOAD_INFO)
  1545. #define DH_ALARM_VEHICLE_STATE 0x3438 // 车辆状态事件(对应结构体 ALARM_VEHICLE_STATE_INFO)
  1546. #define DH_ALARM_IMSI_CHECK 0x3439 // IMSI校验事件(对应结构体 ALARM_IMSI_CHECK_INFO)
  1547. #define DH_ALARM_BLIND_ALARM 0x343A // 进入盲区事件(对应结构体 ALARM_BLIND_ALARM_INFO)
  1548. #define DH_ALARM_VEHICLE_MAINTAINCE 0x343B // 车载人员维护事件(对应结构体 ALARM_VEHICLE_MAINTAINCE_INFO)
  1549. #define DH_ALARM_PARKINGLOCK_STATE 0x343C // 车位锁状态变化事件(对应结构体 ALARM_PARKINGLOCK_STATE_INFO)
  1550. #define DH_ALARM_FIRE_DETECTION 0x343D // 火警事件(对于的结构体 ALARM_FIRE_DETECTION_INFO)
  1551. #define DH_ALARM_NAS_SERVER_STATE 0x343E // NAS共享服务器异常报警事件(对应结构体 ALARM_NAS_SERVER_STATE_INFO )
  1552. #define DH_ALARM_VOLUME_GROUP_FAULT 0x343F // 存储池异常报警事件(对应结构体 ALARM_VOLUME_GROUP_FAULT_INFO)
  1553. #define DH_ALARM_DISK_CHECK 0x3440 // 磁盘巡检报警事件(对应结构体 ALARM_DISK_CHECK_INFO)
  1554. #define DH_ALARM_PHONECALL_DETECT 0x3441 // 打电话检测事件(对应结构体 ALARM_PHONECALL_DETECT_INFO)
  1555. #define DH_ALARM_FLOATINGOBJECT_DETECTION 0x3442 // 漂浮物检测事件(对应结构体 ALARM_FLOATINGOBJECT_DETECTION_INFO)
  1556. #define DH_ALARM_WATER_LEVEL_DETECTION 0x3443 // 水位检测事件(对应结构体 ALARM_WATER_LEVEL_DETECTION_INFO)
  1557. #define DH_ALARM_LOW_SPEED 0x3444 // 怠速报警即低速报警(对应结构体 ALARM_LOW_SPEED_INFO)
  1558. #define DH_ALARM_TRAFFIC_VEHICLEINOUT 0x3445 // 车辆进出车道报警(对应结构体 ALARM_TRAFFIC_VEHICLEINOUT_INFO)
  1559. #define DH_ALARM_TRAFFIC_JUNCTION 0x3446 // 交通路口事件(对应结构体 ALARM_TAFFIC_JUNCTION_INFO)
  1560. #define DH_ALARM_DOOR_CONTROL 0x3447 // 报警输出联动开门事件 (对应结构体 ALARM_DOOR_CONTROL_INFO)
  1561. #define DH_ALARM_ARMSTATE 0x3448 // 防区状态事件 (对应结构体 ALARM_ARMSTATE_INFO)
  1562. #define DH_ALARM_TICKET_INFO_REPORT 0x3449 // 车票信息上报事件 (对应 ALARM_TICKET_INFO_REPORT)
  1563. #define DH_ALARM_TRAFFIC_LAMP_WORK_STATE 0x344E // 交通相机通过串口与补光灯连接获取补光灯的状态信息事件 (对应 ALARM_TRAFFIC_LAMP_WORK_STATE_INFO)
  1564. #define DH_ALARM_ENGINE_FAILURE_STATUS 0x344F // 发动机故障状态上报(对应 ALARM_ENGINE_FAILURE_STATUS_INFO)
  1565. #define DH_ALARM_HIGH_TOSS_DETECT 0x3450 // 高空抛物检测事件(对应 ALARM_HIGH_TOSS_DETECT_INFO)
  1566. #define DH_ALARM_PARKING_LOT_STATUS_DETECTION 0X3451 // 室外停车位状态检测事件 (对应结构体 ALARM_PARKING_LOT_STATUS_DETECTION)
  1567. #define DH_ALARM_STORAGE_HEALTH_ABNORMAL 0x3452 // 硬盘健康报警事件(对应 ALARM_STORAGE_HEALTH_ABNORMAL_INFO)
  1568. #define DH_ALARM_CLEAR_CAR 0x3453 // 清车报警事件(对应 ALARM_CLEAR_CAR_INFO)
  1569. #define DH_ALARM_ANATOMY_TEMP_DETECT 0x3454 // 人体温智能检测事件(对应结构体 ALARM_ANATOMY_TEMP_DETECT_INFO)
  1570. #define DH_ALARM_REGULATOR_ABNORMAL 0x3455 // 标准黑体源异常报警事件(对应结构体 ALARM_REGULATOR_ABNORMAL_INFO)
  1571. #define DH_ALARM_DHOP_CUSTOM 0x3456 // Dhop自定义事件(start/stop, 对应 ALARM_DHOP_CUSTOM_INFO)
  1572. #define DH_ALARM_DHOP_CUSTOM_ONCE 0x3457 // Dhop自定义事件(pulse, 对应 ALARM_DHOP_CUSTOM_INFO)
  1573. #define DH_ALARM_TRAFFIC_LIGHT_STATE 0x3458 // 交通灯状态报警(对应 ALARM_TRAFFIC_LIGHT_STATE_INFO)
  1574. #define DH_ALARM_SWIPCARD_STATUS 0x3459 // 刷卡机状态报警(对应 ALARM_SWIPCARD_STATUS_INFO)
  1575. #define DH_ALARM_AUDIOHOST_STATE 0x345A // 音频主机状态报警(对应 ALARM_AUDIOHOST_STATE_INFO)
  1576. #define DH_ALARM_PTZ_ABNORMAL 0x345B // 云台异常检测事件(对应结构体 ALARM_PTZ_ABNORMAL_INFO)
  1577. #define DH_ALARM_STORAGEFORMAT 0x345C // 硬盘格式化事件 (对应结构体 ALARM_STORAGEFORMAT_INFO )
  1578. #define DH_ALARM_APPCMDSTATE 0x345D // 透传信令到Dhop的App事件 (对应结构体 ALARM_APPCMDSTATE_INFO )
  1579. #define DH_ALARM_BLUE_TOOTH_HEADSET_ALARM 0x345E // 蓝牙耳机"一键报警"事件(对应结构体 ALARM_BLUE_TOOTH_HEADSET_ALARM_INFO )
  1580. #define DH_ALARM_SOLARCELL_SYSTEM_INFO 0x345F // 太阳能系统信息上报(对应结构体 ALARM_SOLARCELL_SYSTEM_INFO)
  1581. #define DH_ALARM_REGION_PARKING_TIMEOUT 0x3460 // 区间车位停车超时(对应结构体 ALARM_REGION_PARKING_TIMEOUT_INFO)
  1582. #define DH_ALARM_REGION_PARKING_NO_ENTRY_RECORD 0x3461 // 区间车位停车驶出没有驶入记录(对应结构体 ALARM_REGION_PARKING_NO_ENTRY_RECORD_INFO)
  1583. #define DH_ALARM_OVER_LOAD 0x3462 // 超载(对应的结构体 ALARM_OVER_LOAD_INFO)
  1584. #define DH_ALARM_WIRELESS_LOG_INFO 0x3463 // 智能网关日志或者二进制数据(对应结构体 ALARM_WIRELESS_LOG_INFO)
  1585. #define DH_ALARM_TIME_TO_POWEROFF 0x3464 // 电池相机达到拉流预览时间上限关机通知事件 (对应结构体 ALARM_TIME_TO_POWEROFF_INFO )
  1586. #define DH_ALARM_TRAFFIC_LIGHT_FAULT_STATE 0x3465 // 交通灯故障报警事件(对应结构体 ALARM_TRAFFIC_LIGHT_FAULT_INFO)
  1587. #define DH_ALARM_VEHICLE_PERIPHERAL 0x3466 // 车载外设异常报警 (对应结构体 ALARM_VEHICLE_PERIPHERAL_INFO )
  1588. #define DH_ALARM_FIRE_LANE_DETECTION 0x3467 // 消防占道检测事件(对应 ALARM_FIRE_LANE_DETECTION_INFO )
  1589. #define DH_ALARM_FIRE_LINE_DETECTION 0x3468 // 进入消防通道检测 (对应 ALARM_FIRE_LINE_DETECTION_INFO)
  1590. #define DH_ALARM_DISK_HEALTH_FAILURE 0x3469 // 硬盘健康异常事件 (对应 ALARM_DISK_HEALTH_FAILURE_INFO)
  1591. #define DH_ALARM_VEHICLE_INOUT 0x346A // 车辆出入事件 (对应 ALARM_VEHICLE_INOUT_INFO)
  1592. #define DH_ALARM_REFRIGE_SHUT_DOWN 0x346B // 当制冷机进入关闭倒计时时进行提示(对应 ALARM_REFRIGE_SHUT_DOWN_INFO)
  1593. #define DH_ALARM_AROUD_4G_PROBE_SEARCH 0x346C // 手机识别码探测事件 (对应 ALARM_AROUD_4G_PROBE_SEARCH_INFO )
  1594. #define DH_ALARM_DISS_ASSEMBLY 0x3471 // 设备机体拆解事件 (对应结构体 ALARM_DISS_ASSEMBLY_INFO
  1595. #define DH_ALARM_SLEEP_CONTROL_STATUS 0x3472 // 休眠状态事件 (对应结构体 ALARM_SLEEP_CONTROL_STATUS_INFO )
  1596. #define DH_ALARM_REMOTE_DISASSEMBLY 0x3473 // 远端设备机体拆解事件 ( 对应结构体 ALARM_REMOTE_DISASSEMBLY_INFO )
  1597. #define DH_ALARM_NONMOTOR_ENTRYING 0x3474 // 非机动车进入电梯事件(对应 ALARM_NONMOTOR_ENTRYING_INFO)
  1598. #define DH_ALARM_SCREENSAVER 0x3475 // 智网产品,屏保事件(对应结构体 ALARM_SCREENSAVER_INFO)
  1599. #define DH_ALARM_ABN_POST_DETECTION 0x3476 // 岗位人数或人员异常事件,IPC首次提交 (对应结构体 ALARM_ABN_POST_DETECTION_INFO)
  1600. #define DH_ALARM_CITY_MOTORPARKING 0x3477 // 城市机动车违停事件(对应结构体 ALARM_CITY_MOTORPARKING_INFO)
  1601. #define DH_ALARM_RECORD_BACKUP_FAILURE 0x3478 // 录像备份失败事件 (对应结构体 ALARM_RECORD_BACKUP_FAILURE_INFO )
  1602. #define DH_ALARM_EMERGENCY_FILE_UPLOAD 0x3479 // MPT设备要求主动上传指定文件给平台事件(对应结构体 ALARM_EMERGENCY_FILE_UPLOAD)
  1603. #define DH_ALARM_COAXIAL_HIGH_TEMPERATURE 0x347A // 超温报警事件(对应结构体 ALARM_COAXIAL_HIGH_TEMPERATURE_INFO)
  1604. #define DH_ALARM_COAXIAL_LOW_TEMPERATURE 0x347B // 失温报警事件(对应结构体 ALARM_COAXIAL_LOW_TEMPERATURE_INFO)
  1605. #define DH_ALARM_BREED_DETECTION 0x347C // 智慧养殖检测事件(对应结构体 ALARM_BREED_DETECTION_INFO)
  1606. #define DH_ALARM_CHANNEL_RECSHORTAGE 0x347D // 通道录像不足配置的天数事件(对应结构体 ALARM_CHANNEL_RECSHORTAGE_INFO)
  1607. #define DH_ALARM_EMERGENCY_FILE_UPLOAD_CANCEL 0x347E // MPT设备要求平台取消下载事件(对应结构体 ALARM_EMERGENCY_FILE_UPLOAD_CANCEL_INFO)
  1608. #define DH_ALARM_SECURITY_INSPECTOR_OVERTIME_ON_DUTY 0x347F // 安检员超时在岗事件(对应结构体 ALARM_SECURITY_INSPECTOR_OVERTIME_ON_DUTY_INFO)
  1609. #define DH_ALARM_SECURITY_INSPECTOR_NOT_CONFIRM_PACKAGE 0x3480 // 安检员未确认包裹事件(对应结构体 ALARM_SECURITY_INSPECTOR_NOT_CONFIRM_PACKAGE_INFO)
  1610. #define DH_ALARM_WORKSUIT_FEATURE_ABSTRACT 0x3481 // 工装特征向量建模结果上报事件(对应结构体ALARM_WORKSUIT_FEATURE_ABSTRACT_INFO)
  1611. #define DH_ALARM_RUN_DETECTION 0x3482 // 奔跑检测事件(对应结构体 ALARM_RUN_DETECTION_INFO)
  1612. #define DH_ALARM_ANATOMY_TEMPDETECT_TO_PHONE 0x3483 // 专用于手机推送的人体测温事件(对应结构体ALARM_ANATOMY_TEMPDETECT_TO_PHONE_INFO)
  1613. #define DH_ALARM_CHANNEL_CAPS_CHANGE 0x3484 // 通道智能能力变化事件(对应结构体ALARM_CHANNEL_CAPS_CHANGE_INFO)
  1614. #define DH_ALARM_RAIN_FALL_MSG 0x3485 // 雨量数据上报事件(对应结构体 ALARM_RAIN_FALL_MSG_INFO)
  1615. #define DH_ALARM_VEHICLE_DETENTION 0x3486 // 车道滞留事件(对应结构体ALARM_VEHICLE_DETENTION_INFO)
  1616. #define DH_ALARM_ANIMAL_DETECTION 0x3487 // 动物检测事件(对应结构体ALARM_ANIMAL_DETECTION_INFO)
  1617. #define DH_ALARM_ASG_SELFCHECK 0x3488 // 闸机自检事件(对应结构体ALARM_ASG_SELFCHECK_INFO)
  1618. #define DH_ALARM_GPS_REPORTING_PLATFORM 0x3489 // GPS上报平台事件(对应结构体ALARM_GPS_REPORTING_PLATFORM)
  1619. #define DH_ALARM_HOSPITAL_ALARM 0x348A // 医护对讲的报警事件,用来上报护理、报警、托管等事件(对应结构体 ALARM_HOSPITAL_ALARM_INFO)
  1620. #define DH_ALARM_CUTLINE 0x348B // 报警线剪断报警事件(对应结构体 ALARM_CUTLINE)
  1621. #define DH_ALARM_VIDEOTALK 0x348C // 对讲记录事件(对应结构体 ALARM_VIDEOTALK_INFO)
  1622. #define DH_ALARM_PREVENT_FREE_RIDE 0x348D // 公交系统上报逃票异常报警事件(对应结构体 ALARM_PREVENT_FREE_RIDE_INFO)
  1623. #define DH_ALARM_BLIND_SPOT_DETECTION 0x348E // 右侧盲区报警(对应结构体 ALARM_BLIND_SPOT_DETECTION_INFO)
  1624. #define DH_ALARM_WATER_SPEED_DETECTION 0x348F // 水流速检测事件(对应结构体 ALARM_WATER_SPEED_DETECTION_INFO)
  1625. #define DH_ALARM_HUMIDITY_ALARM 0x3490 // 湿度报警事件(对应结构体 ALARM_HUMIDITY_ALARM_INFO)
  1626. #define DH_ALARM_SIP_REGISTER_RESULT 0x3491 // 注册状态事件(对应结构体 ALARM_SIP_REGISTER_RESULT_INFO)
  1627. #define DH_ALARM_GESTURE_DETECTION 0x3492 // 手势检测事件(对应结构体 ALARM_GESTURE_DETECTION_INFO)
  1628. #define DH_ALARM_DEFENSE_CHANGE 0x3493 // 撤布防事件(对应结构体 ALARM_DEFENSE_CHANGE_INFO)
  1629. #define DH_ALARM_ABNORMAL_RESTART 0x3494 // 异常重启事件,重启后上报(对应结构体 ALARM_ABNORMAL_RESTART_INFO)
  1630. #define DH_ALARM_DOUBLEDOOR 0x3495 // 互锁联动AB门双开/双闭报警 (对应结构体 ALARM_DOUBLEDOOR_INFO)
  1631. #define DH_ALARM_OPENOUT_TIMESECTION 0x3496 // 时间段外开门报警事件 (对应结构体 ALARM_OPENOUT_TIMESECTION_INFO)
  1632. #define DH_ALARM_SERVICESTART 0x3497 // 营业状态事件 (对应结构体 ALARM_SERVICESTART_INFO)
  1633. #define DH_ALARM_WIRELESSDEV_POWERLESS 0x3498 // 探测器主电丢失事件 (对应结构体 ALARM_WIRELESSDEV_POWERLESS_INFO)
  1634. #define DH_ALARM_PUBLISHINFO_CONFIRM 0x3499 // 室内机上报平台通知已经阅读公告事件 (对应结构体 ALARM_PUBLISHINFO_CONFIRM_INFO)
  1635. #define DH_ALARM_LEFUNCTION_STATUS_SYNC 0x349A // App界面显示设备某些特定的状态变化事件(对应结构体 ALARM_LEFUNCTION_STATUS_SYNC_INFO)
  1636. #define DH_ALARM_WATER_QUALITY_DETECTION 0x349B // 水质检测上报事件(对应结构体 ALARM_WATER_QUALITY_DETECTION_INFO)
  1637. #define DH_ALARM_TRAFFIC_FLOW_QUEUE 0x349C // 交通路口排队事件(对应结构体 ALARM_TRAFFIC_FLOW_QUEUE_INFO)
  1638. #define DH_ALARM_TRAFFIC_FLOW_JUNTION 0x349D // 交通路口过车事件(对应结构体 ALARM_TRAFFIC_FLOW_JUNTION_INFO)
  1639. #define DH_ALARM_TRAFFIC_FLOW_VEHICLE_STOP 0x349E // 交通路口停车事件(对应结构体 ALARM_TRAFFIC_FLOW_VEHICLE_STOP_INFO)
  1640. #define DH_ALARM_TRAFFIC_FLOW_STAT 0x349F // 交通路口车道统计事件(对应结构体 ALARM_TRAFFIC_FLOW_STAT_INFO)
  1641. #define DH_ALARM_TRAFFIC_FLOW_STAT_EX 0x34A0 // 交通路口车道统计拓展事件(对应结构体 ALARM_TRAFFIC_FLOW_STAT_EX_INFO)
  1642. #define DH_ALARM_SCREEN_DISPLAY_ALARM 0x34A1 // 设备接入的显示连接状态改变(对应结构体 ALARM_SCREEN_DISPLAY_ALARM_INFO)
  1643. #define DH_ALARM_YE_BAO_ALARM 0x34A2 // 野保相机报警上报事件(对应结构体ALARM_YE_BAO_ALARM_INFO)
  1644. #define DH_ALARM_AI_PICKUP_WORK_STATE 0x34A3 // 拾音器工作状态报警事件(对应结构体 ALARM_AI_PICKUP_WORK_STATE_INFO)
  1645. #define DH_ALARM_INTELLI_TYPE_CHANGE 0x34A4 // 智能方案大类变更报警事件(对应结构体 ALARM_INTELLI_TYPE_CHANGE_INFO)
  1646. #define DH_ALARM_TRAFFIC_CAR_PASSING 0x34A5 // 车辆进出虚拟线圈状态事件(对应结构体 ALARM_TRAFFIC_CAR_PASSING_INFO)
  1647. #define DH_ALARM_HUMAN_ANIMAL_COEXISTENCE 0x34A6 // 人和动物检测事件(对应结构体 ALARM_HUMAN_ANIMAL_COEXISTENCE_INFO)
  1648. #define DH_ALARM_MINIINDOOR_RADAR_ALARM 0x34A7 // Mini雷达报警事件(对应结构体 NET_ALARM_MINIINDOOR_RADAR_ALARM_INFO)
  1649. #define DH_ALARM_MEMORY_OVER_LOAD 0x34A8 // 内存使用率过高事件(对应结构体 NET_ALARM_MEMORY_OVER_LOAD_INFO)
  1650. #define DH_ALARM_CPU_OVER_LOAD 0x34A9 // CPU占用率过高事件(对应结构体 NET_ALARM_CPU_OVER_LOAD_INFO)
  1651. #define DH_ALARM_EAS_ANTITHEFT 0x34AA // EAS防盗报警事件(对应结构体 NET_ALARM_EAS_ANTITHEFT )
  1652. #define DH_ALARM_EAS_TRANSMIT_COIL 0x34AB // EAS发射线圈故障事件(对应结构体 NET_ALARM_EAS_TRANSMIT_COIL)
  1653. #define DH_ALARM_EAS_RECEIVE_COIL 0x34AC // EAS接收线圈故障(对应结构体 NET_ALARM_EAS_RECEIVE_COIL)
  1654. #define DH_ALARM_EAS_TAG_RESIDENT 0x34AD // EAS标签驻留报警(对应结构体 NET_ALARM_EAS_TAG_RESIDENT)
  1655. #define DH_ALARM_EAS_ANTENNA_POWER_FAULT 0x34AE // EAS天线电源故障报警事件(对应结构体 NET_ALARM_EAS_ANTENNA_POWER_FAULT)
  1656. #define DH_ALARM_SAFETY_ABNORMAL 0x34AF // 安全报警事件(对应结构体 NET_ALARM_SAFETY_ABNORMAL_INFO)
  1657. #define DH_ALARM_PARKING_SPACE_DETECTOR_STATE 0x34B0 // 车位状态变化报警(对应结构体 NET_ALARM_PARKING_SPACE_DETECTOR_STATE_INFO)
  1658. #define DH_ALARM_REQUEST_IDLE_MODE 0x34B1 // 请求进入休眠模式事件(对应结构体 NET_ALARM_REQUEST_IDLE_MODE)
  1659. #define DH_ALARM_FORCE_INTO_IDLE_MODE 0x34B2 // 强制进入休眠模式通知(对应结构体 NET_ALARM_FORCE_INTO_IDLE_MODE)
  1660. #define DH_ALARM_REMOTE_APPROVAL 0x34B3 // 金融远程审批事件(对应结构体 NET_ALARM_REMOTE_APPROVAL_INFO)
  1661. #define DH_ALARM_DYNAMIC_PWDLOCK_FOR_INIT 0x34B4 // 动态密码锁发起初始化通知事件(对应结构体 NET_ALARM_DYNAMIC_PWDLOCK_FOR_INIT_INFO)
  1662. #define DH_ALARM_DYNAMIC_PWDLOCK_UPLOAD_RANDOMCODE 0x34B5 // 密码锁上报随机码事件(对应结构体 NET_ALARM_DYNAMIC_LOCK_UPLOAD_RANDOMCODE_INFO)
  1663. #define DH_ALARM_DYNAMIC_PWDLOCK_FOR_OPEN 0x34B6 // 密码锁发起开锁流程通知事件(对应结构体 NET_ALARM_DYNAMIC_PWDLOCK_FOR_OPEN_INFO)
  1664. #define DH_ALARM_DYNAMIC_PWDLOCK_CLOSE 0x34B7 // 密码锁闭锁事件(对应结构体 NET_ALARM_DYNAMIC_PWDLOCK_CLOSE_INFO)
  1665. #define DH_ALARM_SYNCUSER_INFO 0x34B8 // 主备机之间用户信息改变通知事件(对应 NET_ALARM_SYNCUSER_INFO)
  1666. #define DH_ALARM_GAS_TANK_DETECTION 0x34B9 // 煤气罐检测事件(对应结构体 NET_ALARM_GAS_TANK_DETECTION_INFO)
  1667. #define DH_ALARM_LOSS_FRAME_ALARM 0x34BA // 录像丢帧报警事件(对应结构体 NET_ALARM_LOSS_FRAME_ALARM_INFO)
  1668. #define DH_ALARM_INTELLI_MODULE_HIGH_TEMP 0x34BB // 智能模块温度异常事件(对应结构体 NET_ALARM_INTELLI_MODULE_HIGH_TEMP_INFO)
  1669. #define DH_ALARM_INTELLI_MODULE_OFFLINE 0x34BC // 智能模块断线事件(对应结构体 NET_ALARM_INTELLI_MODULE_OFFLINE_INFO)
  1670. #define DH_ALARM_SSD_HEALTH_FAILURE 0x34BD // SSD健康故障事件(对应结构体 NET_ALARM_SSD_HEALTH_FAILURE_INFO)
  1671. #define DH_ALARM_ABNORMALLOGIN 0x34BE // 异常登录事件(对应结构体 NET_ALARM_ABNORMALLOGIN_INFO)
  1672. #define DH_ALARM_INTELLITRACK_EVENT 0x34BF // PTZ信息事件(对应结构体 NET_ALARM_INTELLITRACK_EVENT_INFO)
  1673. #define DH_ALARM_RF_JAMMING 0x34C0 // RF干扰事件(对应结构体 NET_ALARM_RF_JAMMING_INFO)
  1674. #define DH_ALARM_ARMING_FAILURE 0x34C1 // 布防失败事件(对应结构体 NET_ALARM_ARMING_FAILURE_INFO)
  1675. #define DH_ALARM_USER_MODIFIED 0x34C2 // 用户信息被修改(增加、删除、修改)事件(对应结构体 NET_ALARM_USER_MODIFIED_INFO)
  1676. #define DH_ALARM_MANUAL_TEST 0x34C3 // 手动测试事件(对应结构体 NET_ALARM_MANUAL_TEST_INFO)
  1677. #define DH_ALARM_DEVICE_MODIFIED 0x34C4 // 设备设息修改(增加、删除、修改)事件(对应结构体 NET_ALARM_DEVICE_MODIFIED_INFO)
  1678. #define DH_ALARM_ATS_FAULT 0x34C5 // 报警传输系统故障事件(对应结构体 NET_ALARM_ATS_FAULT_INFO)
  1679. #define DH_ALARM_ARC_OFFLINE 0x34C6 // 报警接收中心离线事件(对应结构体 NET_ALARM_ARC_OFFLINE_INFO)
  1680. #define DH_ALARM_WIFI_FAILURE 0x34C7 // wifi故障事件(对应结构体 NET_ALARM_WIFI_FAILURE_INFO)
  1681. #define DH_ALARM_OVER_TEMPERATURE 0x34C8 // 超温报警事件(对应结构体 NET_ALARM_OVER_TEMPERATURE_INFO)
  1682. #define DH_ALARM_TRAFFIC_ROADALERT 0x34C9 // 道路安全预警事件(对应结构体 NET_ALARM_TRAFFIC_ROADALERT_INFO)
  1683. #define DH_ALARM_TRAFFIC_CROSSLANE 0x34CA // 违章变道事件(对应结构体 NET_ALARM_TRAFFIC_CROSSLANE_INFO)
  1684. #define DH_ALARM_TRAFFIC_OVERYELLOWLINE 0x34CB // 压线事件(对应结构体 NET_ALARM_TRAFFIC_OVERYELLOWLINE_INFO)
  1685. #define DH_ALARM_TRAFFIC_ACCIDENT 0x34CC // 交通事故事件(对应结构体 NET_ALARM_TRAFFIC_ACCIDENT_INFO)
  1686. #define DH_ALARM_TRAFFIC_ROADBLOCK 0x34CD // 交通路障检测事件(对应结构体 NET_ALARM_TRAFFIC_ROADBLOCK_INFO)
  1687. #define DH_ALARM_TRAFFIC_ROADCONSTRUCTION 0x34CE // 交通道路施工检测事件(对应结构体 NET_ALARM_TRAFFIC_ROADCONSTRUCTION_INFO)
  1688. #define DH_ALARM_TRAFFIC_CARDISTANCESHORT 0x34CF // 车间距过小报警事件(对应结构体 NET_ALARM_TRAFFIC_CARDISTANCESHORT_INFO)
  1689. #define DH_ALARM_TRAFFIC_VEHICLERACING 0x34D0 // 飙车事件(对应结构体 NET_ALARM_TRAFFIC_VEHICLERACING_INFO)
  1690. #define DH_ALARM_STORAGE_OVERLOAD 0x34D1 // 配额超负荷事件(对应结构体 NET_ALARM_STORAGE_OVERLOAD_INFO)
  1691. #define DH_ALARM_ZONE_MODE_CHANGE 0x34D2 // 防区状态改变事件(对应结构体 NET_ALARM_ZONE_MODE_CHANGE_INFO)
  1692. #define DH_ALARM_PSTN_PERIODIC_TEST 0x34D3 // PSTN定期测试事件(对应结构体 NET_ALARM_PSTN_PERIODIC_TEST_INFO)
  1693. #define DH_ALARM_TALKING_PHONE_CALLING 0x34D4 // 电话呼叫事件(对应结构体NET_ALARM_TALKING_PHONE_CALLING_INFO)
  1694. #define DH_ALARM_NO_PASSAGE 0x34D5 // 人员超时未通行事件(对应结构体 NET_ALARM_NO_PASSAGE_INFO)
  1695. #define DH_ALARM_HOSPITAL_TALK_CONTROL 0x34D6 // 设备上报谈话事件(对应结构体 NET_ALARM_HOSPITAL_TALK_CONTROL_INFO)
  1696. #define DH_ALARM_BLUETOOTH_EVENT 0x34D7 // 蓝牙状态与电量状态上报事件(对应结构体 NET_ALARM_BLUETOOTH_INFO)
  1697. #define DH_ALARM_SENSITIVE_WORDS 0x34D8 // 敏感词报警事件(对应结构体 NET_ALARM_SENSITIVE_WORDS_INFO)
  1698. #define DH_ALARM_DISK_NUMBER_CHANGE 0x34D9 // 硬盘数量变化报警事件(对应结构体 NET_ALARM_DISK_NUMBER_CHANGE_INFO)
  1699. #define DH_ALARM_SMOKING_DETECT 0x34DA // 吸烟行为报警(对应结构体 NET_ALARM_SMOKING_DETECT_INFO)
  1700. #define DH_ALARM_SITE_OVERTIME_ALARM 0x34DB // 站点超时报警(对应结构体 NET_ALARM_SITE_OVERTIME_ALARM_INFO)
  1701. #define DH_ALARM_SMART_SOUND_DETECT 0x34DC // 智能声音检测事件(对应 NET_ALARM_SMART_SOUND_DETECT_INFO)
  1702. #define DH_ALARM_REQ_WORK_TIME_CALC 0x34DD // 查询剩余加班额度事件(对应 NET_ALARM_REQ_WORK_TIME_CALC_INFO)
  1703. #define DH_ALARM_XRAY_EMERGENCY_ALARM 0x34DE // X光机一键报警事件(对应 NET_ALARM_XRAY_EMERGENCY_ALARM_INFO)
  1704. // 信号机事件
  1705. #define DH_ALARM_RTSC_PHASE_RUNING 0x5001 // RTSC跑动暂停事件(对应ALARM_RTSC_PHASE_RUNNING_INFO)
  1706. #define DH_ALARM_RTSC_LAMP_RUNING 0x5002 // RTSC灯暂停事件(对应ALARM_RTSC_LAMP_RUNNING_INFO)
  1707. #define DH_ALARM_RTSC_RUNING 0x5003 // 信号机运行事件(对应ALARM_RTSC_RUNNING_INFO)
  1708. #define DH_ALARM_RTSC_TRAFFIC 0x5004 // 信号机交通信息事件(对应ALARM_RTSC_TRAFFIC_INFO)
  1709. // 消防类报警事件
  1710. #define DH_ALARM_HY_FIRE_DETECTION 0x6001 // 消防类火焰检测事件(对应ALARM_HY_FIRE_DETECTION_INFO)
  1711. #define DH_ALARM_HY_SMOG_DETECTION 0x6002 // 消防类烟雾检测事件(对应ALARM_HY_SMOG_DETECTION_INFO)
  1712. #define DH_ALARM_HY_INFIRE_PASSAGE_DETECTION 0x6003 // 消防类疏散通道阻塞事件(对应ALARM_HY_INFIRE_PASSAGE_DETECTION_INFO)
  1713. #define DH_ALARM_HY_OUTFIRE_PASSAGE_DETECTION 0x6004 // 消防类消防车通道占用/消防登高面占用事件(对应ALARM_HY_OUTFIRE_PASSAGE_DETECTION_INFO)
  1714. #define DH_ALARM_HY_MAN_LEAVING_DETECTION 0x6005 // 消防类消控室人员离岗事件(对应ALARM_HY_MAN_LEAVING_DETECTION_INFO)
  1715. #define DH_ALARM_HY_FIRE_CONTROL_OFFLINE_FAULT 0x6006 // 消防离线故障事件(对应ALARM_HY_FIRE_CONTROL_OFFLINE_FAULT_INFO)
  1716. #define DH_ALARM_HY_FIRE_CONTROL_SENSOR_FAULT 0x6007 // 消防传感器故障事件(对应ALARM_HY_FIRE_CONTROL_SENSOR_FAULT_INFO)
  1717. #define DH_ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT 0x6008 // 消防设备拆除事件(对应ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT_INFO)
  1718. // 安检类报警事件
  1719. #define DH_ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY 0x7001 // X射线画中画通讯异常事件(对应结构体ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY_INFO)
  1720. #define DH_ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY 0x7002 // X光机图像采集系统通信异常事件(对应结构体ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY_INFO)
  1721. #define DH_ALARM_XRAY_EMERGENCY_STOP 0x7003 // X光机紧急停止事件(对应结构体ALARM_XRAY_EMERGENCY_STOP_INFO)
  1722. #define DH_ALARM_XRAY_DETECTOR_PROTECTION_OPEN 0x7004 // X光机接收器件防护装置打开事件(对应结构体ALARM_XRAY_DETECTOR_PROTECTION_OPEN_INFO)
  1723. #define DH_ALARM_XRAY_MACHINE_SHELL_OPEN 0x7005 // X光机外罩打开事件(对应结构体ALARM_XRAY_MACHINE_SHELL_OPEN_INFO)
  1724. #define DH_ALARM_XRAY_KEYBOARD_ABNORMITY 0x7006 // X光机操作键盘通信异常事件(对应结构体ALARM_XRAY_KEYBOARD_ABNORMITY_INFO)
  1725. #define DH_ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY 0x7007 // X光机图像传送带状态异常事件(对应结构体ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY_INFO)
  1726. #define DH_ALARM_POWER_GROUND_DETECTION_ABNORMAL 0x7008 // X光机接地异常检测事件(对应结构体ALARM_POWER_GROUND_DETECTION_ABNORMAL_INFO)
  1727. #define DH_ALARM_XRAY_SOURCE_ABNORMITY 0x7009 // X光机X射线发生器故障事件(对应结构体ALARM_XRAY_SOURCE_ABNORMITY_INFO)
  1728. // 报警上传功能的报警类型,对应CLIENT_StartService接口、NEW_ALARM_UPLOAD结构体.
  1729. #define DH_UPLOAD_ALARM 0x4000 // 外部报警
  1730. #define DH_UPLOAD_MOTION_ALARM 0x4001 // 动态检测报警
  1731. #define DH_UPLOAD_VIDEOLOST_ALARM 0x4002 // 视频丢失报警
  1732. #define DH_UPLOAD_SHELTER_ALARM 0x4003 // 视频遮挡报警
  1733. #define DH_UPLOAD_SOUND_DETECT_ALARM 0x4004 // 音频检测报警
  1734. #define DH_UPLOAD_DISKFULL_ALARM 0x4005 // 硬盘满报警
  1735. #define DH_UPLOAD_DISKERROR_ALARM 0x4006 // 坏硬盘报警
  1736. #define DH_UPLOAD_ENCODER_ALARM 0x4007 // 编码器报警
  1737. #define DH_UPLOAD_DECODER_ALARM 0x400B // 报警解码器报警
  1738. #define DH_UPLOAD_EVENT 0x400C // 定时上传的
  1739. #define DH_UPLOAD_IVS 0x400D // 智能报警, 对应结构体ALARM_UPLOAD_IVS_INFO
  1740. #define DH_UPLOAD_SMOKESENSOR_ALARM 0x400E // 烟感报警, 对应结构体ALARM_UPLOAD_SMOKESENSOR_INFO
  1741. #define DH_UPLOAD_ALARM_EX 0x400F // 外部报警扩展,对应结构体 ALARM_UPLOAD_ALARMEX_INFO
  1742. #define DH_UPLOAD_REMOTE_LOGIN_FAILD_ALARM 0x4010 // 远程登录失败报警, 对应结构体 ALARM_UPLOAD_LOGIN_FAILED_INFO
  1743. #define DH_UPLOAD_CUSTOM 0x4011 // 扩展字段由客户自定义,pParam:扩展数据指针,dwParamLen:扩展数据长度
  1744. #define DH_UPLOAD_FRONTDISCONNECT_ALARM 0x4012 // 前端断网报警, 对应结构体 NEW_ALARM_UPLOAD
  1745. #define DH_UPLOAD_ALARM_IPC 0x4013 // IPC外部报警, 对应结构体 NEW_ALARM_UPLOAD
  1746. #define DH_UPLOAD_NET_ALARM 0x4014 // 网络报警输入(网络触发,而非设备本地输入报警有信号), 对应结构体 NEW_ALARM_UPLOAD
  1747. #define DH_UPLOAD_ALARM_RAID 0x4015 // Raid异常事件, 对应结构体 NEW_ALARM_UPLOAD
  1748. #define DH_UPLOAD_SCENE_CHANGE 0x4016 // 场景变更, 对应结构体 NEW_ALARM_UPLOAD
  1749. #define DH_UPLOAD_PIRDETECTION 0x4017 // pir 设备检测报警, 对应结构体ALARM_UPLOAD_PIRDETECTION_INFO
  1750. #define DH_UPLOAD_PIRTAMPER 0x4018 // pir 设备防拆报警, 对应结构体ALARM_UPLOAD_PIRTAMPER_INFO
  1751. #define DH_UPLOAD_PIRCLOAK 0x4019 // pir 设备光线遮挡报警, 对应结构体 ALARM_UPLOAD_PIRCLOAK_INFO
  1752. #define DH_UPLOAD_PIRSHOCK 0x401A // pir 设备震动报警, 对应结构体ALARM_UPLOAD_PIRSHOCK_INFO
  1753. #define DH_UPLOAD_PIRFAILURE 0x401B // pir 设备传感器故障报警, 对应结构体ALARM_UPLOAD_PIRFAILURE_INFO
  1754. #define DH_UPLOAD_PIRBATTERYLOW 0x401C // pir 设备电池电量低报警, 对应结构体ALARM_UPLOAD_PIRBATTERYLOW_INFO
  1755. #define DH_UPLOAD_PIRMISSINGCALL 0x401D // pir 设备信号丢失报警, 对应结构体ALARM_UPLOAD_PIRMISSINGCALL_INFO
  1756. #define DH_UPLOAD_VIDEO_UNFOCUS 0x401E // 视频虚焦事件, 对应结构体ALARM_UPLOAD_VIDEO_UNFOCUS_INFO
  1757. #define DH_UPLOAD_ALARMPIR 0x401F // PIR报警事件, 对应结构体ALARM_UPLOAD_ALARMPIR_INFO
  1758. #define DH_UPLOAD_ALARM_EX2 0x4020 // 本地报警事件, 对应结构体 ALARM_ALARM_INFO_EX2
  1759. #define DH_UPLOAD_BYPASSMODE_CHANGE_EVENT 0x4021 // 旁路状态变化事件, 对应结构体ALARM_BYPASSMODE_CHANGE_INFO
  1760. #define DH_UPLOAD_CHASSISINTRUDED 0x4022 // 机箱入侵(防拆)报警事件, 对应结构体ALARM_CHASSISINTRUDED_INFO
  1761. #define DH_UPLOAD_RCEMERGENCY_CALL 0x4023 // 紧急呼叫报警事件, 对应结构体 ALARM_RCEMERGENCY_CALL_INFO
  1762. #define DH_UPLOAD_ARMMODE_CHANGE_EVENT 0x4024 // 布撤防状态变化事件, 对应结构体ALARM_ARMMODE_CHANGE_INFO
  1763. #define DH_UPLOAD_SUBSYSTEM_ARMMODE_CHANGE 0x4025 // 子系统布撤防状态改变事件, 对应结构体 ALARM_SUBSYSTEM_ARMMODECHANGE_INFO
  1764. #define DH_UPLOAD_DEFENCE_ARMMODE_CHANGE 0x4026 // 防区布撤防状态改变事件, 对应结构体 ALARM_DEFENCE_ARMMODECHANGE_INFO
  1765. #define DH_UPLOAD_POWERFAULT 0x4027 // 电源故障事件, 对应结构体ALARM_POWERFAULT_INFO
  1766. #define DH_UPLOAD_HEARTBEAT_ALARM 0x4028 // 心跳报警,对应结构体ALARM_UPLOAD_HEARTBEAT_INFO
  1767. #define DH_UPLOAD_ONLINE_ALARM 0x4029 // 在线报警,对应结构体ALARM_UPLOAD_ONLINE_INFO
  1768. #define DH_UPLOAD_KEYPAD_TAMPER 0x402A // 键盘防拆事件,对应结构体ALARM_UPLOAD_KEYPAD_TAMPER_INFO
  1769. #define DH_UPLOAD_PROGRAM_MODE 0x402B // 键盘输入进入/退出编程模式指令,对应结构体ALARM_UPLOAD_PROGRAM_MODE_INFO
  1770. #define DH_UPLOAD_PSTN_PERIODIC_TEST 0x402C // PSTN定期测试事件,对应结构体ALARM_UPLOAD_PSTN_PERIODIC_TEST_INFO
  1771. #define DH_UPLOAD_PROFILE_ALARM_TRANSMIT 0x402D // 报警传输事件, 对应结构体 ALARM_UPLOAD_PROFILE_ALARM_TRANSMIT_INFO
  1772. #define DH_UPLOAD_USER_LOCK 0x402E // 用户登录锁定事件, 对应结构体 ALARM_UPLOAD_USER_LOCK_INFO
  1773. // 订阅Bus状态对应事件上报(CLIENT_AttachBusState)
  1774. #define DH_ALARM_BUS_DRIVER_CHECK 0x0001 // 司机签到事件(对应结构体 ALARM_BUS_DRIVER_CHECK_INFO)
  1775. #define DH_ALARM_BUS_IMPORT_SITE 0x0002 // 进站事件(对应结构体 ALARM_BUS_IMPORT_SITE_INFO)
  1776. #define DH_ALARM_BUS_EXPORT_SITE 0x0003 // 离站事件(对应结构体 ALARM_BUS_EXPORT_SITE_INFO)
  1777. #define DH_ALARM_BUS_ABNORMAL 0x0004 // 车辆异常事件(对应结构体 ALARM_BUS_ABNORMAL_INFO)
  1778. #define DH_ALARM_BUS_DOOR_OPEN 0x0005 // 车门打开事件(对应结构体 ALARM_VEHICLE_DOOR_OPEN_INFO)
  1779. #define DH_ALARM_BUS_CUR_MILEAGE 0x0006 // 当前里程事件(对应结构体 ALARM_BUS_CUR_MILEAGE_INFO)
  1780. #define DH_ALARM_BUS_CUR_OIL 0x0007 // 当前油耗情况事件(对应结构体 ALARM_BUS_CUR_OIL_INFO)
  1781. #define DH_ALARM_BUS_LOW_OIL 0x0008 // 低油量报警事件(对应结构体 ALARM_BUS_LOW_OIL_INFO)
  1782. #define DH_ALARM_BUS_PASSENGER_CARD_CHECK 0x0009 // 乘客刷卡事件(对应结构体 ALARM_PASSENGER_CARD_CHECK )
  1783. #define DH_ALARM_BUS_VEHICLE_STANDING_OVER_TIME 0x000a // 停车超时事件(对应结构体 ALARM_VEHICLE_STANDING_OVER_TIME_INFO )
  1784. #define DH_ALARM_BUS_DRIVE_AFTER_WORK 0x000b // 非工作时间事件(对应结构体 ALARM_DVRIVE_AFTER_WORK )
  1785. #define DH_ALARM_BUS_PAD_SHUTDOWN 0x000c // PAD关机事件, DVR上报PadShutdown消息, PAD收到后自动延时关机(对应结构体 ALARM_BUS_PAD_SHUTDOWN_INFO)
  1786. #define DH_ALARM_BUS_TIRED_DRIVE_CHECK 0x000d // 疲劳驾驶事件(对应结构体 ALARM_TIRED_DRIVE_CHECK_INFO )
  1787. #define DH_ALARM_BUS_STEAL_OIL 0x000e // 偷油事件(对应结构体 ALARM_BUS_STEAL_OIL_INFO)
  1788. #define DH_ALARM_BUS_CIRCUIT_SHIFT 0x000f // 线路偏移事件(对应结构体 ALARM_BUS_CIRCUIT_SHIFT_INFO)
  1789. #define DH_ALARM_BUS_ROUTE_OVERTIME 0x0010 // 线路超时事件(对应结构体 ALARM_BUS_ROUTE_OVERTIME_INFO)
  1790. #define DH_ALARM_BUS_VEHICLE_CARRY_ALARM 0x0011 // 载重报警事件(对应结构体 ALARM_BUS_VEHICLE_CARRY_ALARM_INFO)
  1791. #define DH_ALARM_BUS_VEHICLE_PAULIN_ALARM 0x0012 // 篷布报警事件(对应结构体 ALARM_BUS_VEHICLE_PAULIN_ALARM_INFO)
  1792. #define DH_ALARM_BUS_VEHICLE_LIFT_ALARM 0x0013 // 举升报警事件(对应结构体 ALARM_BUS_VEHICLE_LIFT_ALARM_INFO)
  1793. #define DH_ALARM_BUS_FIRE_PRESSURE_ALARM 0x0014 // 火灾压力传感器报警事件(对应结构体 ALARM_BUS_FIRE_PRESSURE_ALARM_INFO)
  1794. #define DH_ALARM_BUS_ADD_OIL 0x0015 // 油量增加检测事件(对应 NET_ALARM_BUS_ADD_OIL_INFO)
  1795. // 异步接口回调类型
  1796. #define RESPONSE_DECODER_CTRL_TV 0x00000001 // 对应CLIENT_CtrlDecTVScreen接口
  1797. #define RESPONSE_DECODER_SWITCH_TV 0x00000002 // 对应CLIENT_SwitchDecTVEncoder接口
  1798. #define RESPONSE_DECODER_PLAYBACK 0x00000003 // 对应CLIENT_DecTVPlayback接口
  1799. #define RESPONSE_EXCHANGE_DATA 0x00000004 // 对应CLIENT_ExchangeData接口
  1800. #define RESPONSE_ASYN_QUERY_RECORDFILE 0x00000005 // 对应CLIENT_StartQueryRecordFile接口
  1801. // CLIENT_FileTransmit接口传输文件类型
  1802. #define DH_DEV_UPGRADEFILETRANS_START 0x0000 // 开始升级文件上传(对应结构体 DHDEV_UPGRADE_FILE_INFO)
  1803. #define DH_DEV_UPGRADEFILETRANS_SEND 0x0001 // 发送升级文件
  1804. #define DH_DEV_UPGRADEFILETRANS_STOP 0x0002 // 停止发送升级文件
  1805. #define DH_DEV_BLACKWHITETRANS_START 0x0003 // 开始发送禁止/允许名单(对应结构体 DHDEV_BLACKWHITE_LIST_INFO)
  1806. #define DH_DEV_BLACKWHITETRANS_SEND 0x0004 // 发送禁止/允许名单
  1807. #define DH_DEV_BLACKWHITETRANS_STOP 0x0005 // 停止发送禁止/允许名单
  1808. #define DH_DEV_BLACKWHITE_LOAD 0x0006 // 下载禁止/允许名单(对应结构体DHDEV_LOAD_BLACKWHITE_LIST_INFO)
  1809. #define DH_DEV_BLACKWHITE_LOAD_STOP 0x0007 // 停止下载禁止/允许名单
  1810. #define DH_DEV_FILETRANS_STOP 0x002B // 停止文件上传
  1811. #define DH_DEV_FILETRANS_BURN 0x002C // 刻录文件上传
  1812. // 分辨率列表,用于与分辨率掩码进行与、或操作
  1813. #define DH_CAPTURE_SIZE_D1 0x00000001
  1814. #define DH_CAPTURE_SIZE_HD1 0x00000002
  1815. #define DH_CAPTURE_SIZE_BCIF 0x00000004
  1816. #define DH_CAPTURE_SIZE_CIF 0x00000008
  1817. #define DH_CAPTURE_SIZE_QCIF 0x00000010
  1818. #define DH_CAPTURE_SIZE_VGA 0x00000020
  1819. #define DH_CAPTURE_SIZE_QVGA 0x00000040
  1820. #define DH_CAPTURE_SIZE_SVCD 0x00000080
  1821. #define DH_CAPTURE_SIZE_QQVGA 0x00000100
  1822. #define DH_CAPTURE_SIZE_SVGA 0x00000200
  1823. #define DH_CAPTURE_SIZE_XVGA 0x00000400
  1824. #define DH_CAPTURE_SIZE_WXGA 0x00000800
  1825. #define DH_CAPTURE_SIZE_SXGA 0x00001000
  1826. #define DH_CAPTURE_SIZE_WSXGA 0x00002000
  1827. #define DH_CAPTURE_SIZE_UXGA 0x00004000
  1828. #define DH_CAPTURE_SIZE_WUXGA 0x00008000
  1829. #define DH_CAPTURE_SIZE_LFT 0x00010000
  1830. #define DH_CAPTURE_SIZE_720 0x00020000
  1831. #define DH_CAPTURE_SIZE_1080 0x00040000
  1832. #define DH_CAPTURE_SIZE_1_3M 0x00080000
  1833. #define DH_CAPTURE_SIZE_2M 0x00100000
  1834. #define DH_CAPTURE_SIZE_5M 0x00200000
  1835. #define DH_CAPTURE_SIZE_3M 0x00400000
  1836. #define DH_CAPTURE_SIZE_5_0M 0x00800000
  1837. #define DH_CPTRUTE_SIZE_1_2M 0x01000000
  1838. #define DH_CPTRUTE_SIZE_1408_1024 0x02000000
  1839. #define DH_CPTRUTE_SIZE_8M 0x04000000
  1840. #define DH_CPTRUTE_SIZE_2560_1920 0x08000000
  1841. #define DH_CAPTURE_SIZE_960H 0x10000000
  1842. #define DH_CAPTURE_SIZE_960_720 0x20000000
  1843. // 编码模式列表,用于与编码模式掩码进行与、或操作
  1844. #define DH_CAPTURE_COMP_DIVX_MPEG4 0x00000001
  1845. #define DH_CAPTURE_COMP_MS_MPEG4 0x00000002
  1846. #define DH_CAPTURE_COMP_MPEG2 0x00000004
  1847. #define DH_CAPTURE_COMP_MPEG1 0x00000008
  1848. #define DH_CAPTURE_COMP_H263 0x00000010
  1849. #define DH_CAPTURE_COMP_MJPG 0x00000020
  1850. #define DH_CAPTURE_COMP_FCC_MPEG4 0x00000040
  1851. #define DH_CAPTURE_COMP_H264 0x00000080
  1852. #define DH_CAPTURE_COMP_H265 0x00000100
  1853. #define DH_CAPTURE_COMP_SVAC 0x00000200
  1854. // 报警联动动作,用于与报警联动动作掩码进行与、或操作
  1855. #define DH_ALARM_UPLOAD 0x00000001
  1856. #define DH_ALARM_RECORD 0x00000002
  1857. #define DH_ALARM_PTZ 0x00000004
  1858. #define DH_ALARM_MAIL 0x00000008
  1859. #define DH_ALARM_TOUR 0x00000010
  1860. #define DH_ALARM_TIP 0x00000020
  1861. #define DH_ALARM_OUT 0x00000040
  1862. #define DH_ALARM_FTP_UL 0x00000080
  1863. #define DH_ALARM_BEEP 0x00000100
  1864. #define DH_ALARM_VOICE 0x00000200
  1865. #define DH_ALARM_SNAP 0x00000400
  1866. // "恢复默认配置"掩码,可进行与、或操作, 接口CLIENT_ControlDevice类型DH_CTRL_RESTOREDEFAULT
  1867. #define DH_RESTORE_COMMON 0x00000001 // 普通设置
  1868. #define DH_RESTORE_CODING 0x00000002 // 编码设置
  1869. #define DH_RESTORE_VIDEO 0x00000004 // 录像设置
  1870. #define DH_RESTORE_COMM 0x00000008 // 串口设置
  1871. #define DH_RESTORE_NETWORK 0x00000010 // 网络设置
  1872. #define DH_RESTORE_ALARM 0x00000020 // 报警设置
  1873. #define DH_RESTORE_VIDEODETECT 0x00000040 // 视频检测
  1874. #define DH_RESTORE_PTZ 0x00000080 // 云台控制
  1875. #define DH_RESTORE_OUTPUTMODE 0x00000100 // 输出模式
  1876. #define DH_RESTORE_CHANNELNAME 0x00000200 // 通道名称
  1877. #define DH_RESTORE_VIDEOINOPTIONS 0x00000400 // 摄像头属性
  1878. #define DH_RESTORE_CPS 0x00000800 // 智能交通
  1879. #define DH_RESTORE_INTELLIGENT 0x00001000 // 视频分析
  1880. #define DH_RESTORE_REMOTEDEVICE 0x00002000 // 远程设备配置
  1881. #define DH_RESTORE_DECODERVIDEOOUT 0x00004000 // 解码轮巡
  1882. #define DH_RESTORE_LINKMODE 0x00008000 // 连接模式
  1883. #define DH_RESTORE_COMPOSITE 0x00010000 // 融合屏
  1884. #define DH_RESTORE_ALL 0x80000000 // 全部重置
  1885. // 云台属性列表--低四个字节掩码
  1886. #define PTZ_DIRECTION 0x00000001 // 方向
  1887. #define PTZ_ZOOM 0x00000002 // 变倍
  1888. #define PTZ_FOCUS 0x00000004 // 聚焦
  1889. #define PTZ_IRIS 0x00000008 // 光圈
  1890. #define PTZ_ALARM 0x00000010 // 报警功能
  1891. #define PTZ_LIGHT 0x00000020 // 灯光
  1892. #define PTZ_SETPRESET 0x00000040 // 设置预置点
  1893. #define PTZ_CLEARPRESET 0x00000080 // 清除预置点
  1894. #define PTZ_GOTOPRESET 0x00000100 // 转至预置点
  1895. #define PTZ_AUTOPANON 0x00000200 // 水平开始
  1896. #define PTZ_AUTOPANOFF 0x00000400 // 水平结束
  1897. #define PTZ_SETLIMIT 0x00000800 // 设置边界
  1898. #define PTZ_AUTOSCANON 0x00001000 // 自动扫描开始
  1899. #define PTZ_AUTOSCANOFF 0x00002000 // 自动扫描开停止
  1900. #define PTZ_ADDTOUR 0x00004000 // 增加巡航点
  1901. #define PTZ_DELETETOUR 0x00008000 // 删除巡航点
  1902. #define PTZ_STARTTOUR 0x00010000 // 开始巡航
  1903. #define PTZ_STOPTOUR 0x00020000 // 结束巡航
  1904. #define PTZ_CLEARTOUR 0x00040000 // 删除巡航
  1905. #define PTZ_SETPATTERN 0x00080000 // 设置模式
  1906. #define PTZ_STARTPATTERN 0x00100000 // 开始模式
  1907. #define PTZ_STOPPATTERN 0x00200000 // 停止模式
  1908. #define PTZ_CLEARPATTERN 0x00400000 // 清除模式
  1909. #define PTZ_POSITION 0x00800000 // 快速定位
  1910. #define PTZ_AUX 0x01000000 // 辅助开关
  1911. #define PTZ_MENU 0x02000000 // 球机菜单
  1912. #define PTZ_EXIT 0x04000000 // 退出球机菜单
  1913. #define PTZ_ENTER 0x08000000 // 确认
  1914. #define PTZ_ESC 0x10000000 // 取消
  1915. #define PTZ_MENUUPDOWN 0x20000000 // 菜单上下操作
  1916. #define PTZ_MENULEFTRIGHT 0x40000000 // 菜单左右操作
  1917. #define PTZ_OPT_NUM 0x80000000 // 操作的个数
  1918. // 高四个字节掩码
  1919. #define PTZ_DEV 0x00000001 // 云台控制
  1920. #define PTZ_MATRIX 0x00000002 // 矩阵控制
  1921. // 抓图视频编码类型
  1922. #define CODETYPE_MPEG4 0
  1923. #define CODETYPE_H264 1
  1924. #define CODETYPE_JPG 2
  1925. // 码流控制列表
  1926. #define DH_CAPTURE_BRC_CBR 0
  1927. #define DH_CAPTURE_BRC_VBR 1
  1928. // 帧类型掩码定义
  1929. #define FRAME_TYPE_MOTION 0x00000001 // 动检帧
  1930. #define FRAME_TYPE_HUMAN 0x00000002 // 动检帧(人)
  1931. #define FRAME_TYPE_VEHICLE 0x00000004 // 动检帧(车)
  1932. // 智能分析事件类型
  1933. #define EVENT_IVS_ALL 0x00000001 // 订阅所有事件
  1934. #define EVENT_IVS_CROSSLINEDETECTION 0x00000002 // 警戒线事件(对应 DEV_EVENT_CROSSLINE_INFO)
  1935. #define EVENT_IVS_CROSSREGIONDETECTION 0x00000003 // 警戒区事件(对应 DEV_EVENT_CROSSREGION_INFO)
  1936. #define EVENT_IVS_PASTEDETECTION 0x00000004 // 贴条事件(对应 DEV_EVENT_PASTE_INFO)
  1937. #define EVENT_IVS_LEFTDETECTION 0x00000005 // 物品遗留事件(对应 DEV_EVENT_LEFT_INFO)
  1938. #define EVENT_IVS_STAYDETECTION 0x00000006 // 停留事件(对应 DEV_EVENT_STAY_INFO)
  1939. #define EVENT_IVS_WANDERDETECTION 0x00000007 // 徘徊事件(对应 DEV_EVENT_WANDER_INFO)
  1940. #define EVENT_IVS_PRESERVATION 0x00000008 // 物品保全事件(对应 DEV_EVENT_PRESERVATION_INFO)
  1941. #define EVENT_IVS_MOVEDETECTION 0x00000009 // 移动事件(对应 DEV_EVENT_MOVE_INFO)
  1942. #define EVENT_IVS_TAILDETECTION 0x0000000A // 尾随事件(对应 DEV_EVENT_TAIL_INFO)
  1943. #define EVENT_IVS_RIOTERDETECTION 0x0000000B // 聚众事件(对应 DEV_EVENT_RIOTERL_INFO)
  1944. #define EVENT_IVS_FIREDETECTION 0x0000000C // 火警事件(对应 DEV_EVENT_FIRE_INFO)
  1945. #define EVENT_IVS_SMOKEDETECTION 0x0000000D // 烟雾报警事件(对应 DEV_EVENT_SMOKE_INFO)
  1946. #define EVENT_IVS_FIGHTDETECTION 0x0000000E // 斗殴事件(对应 DEV_EVENT_FIGHT_INFO)
  1947. #define EVENT_IVS_FLOWSTAT 0x0000000F // 流量统计事件(对应 DEV_EVENT_FLOWSTAT_INFO)
  1948. #define EVENT_IVS_NUMBERSTAT 0x00000010 // 数量统计事件(对应 DEV_EVENT_NUMBERSTAT_INFO)
  1949. #define EVENT_IVS_CAMERACOVERDDETECTION 0x00000011 // 摄像头覆盖事件(保留)
  1950. #define EVENT_IVS_CAMERAMOVEDDETECTION 0x00000012 // 摄像头移动事件(保留)
  1951. #define EVENT_IVS_VIDEOABNORMALDETECTION 0x00000013 // 视频异常事件(对应 DEV_EVENT_VIDEOABNORMALDETECTION_INFO)
  1952. #define EVENT_IVS_VIDEOBADDETECTION 0x00000014 // 视频损坏事件(保留)
  1953. #define EVENT_IVS_TRAFFICCONTROL 0x00000015 // 交通管理事件(对应 DEV_EVENT_TRAFFICCONTROL_INFO)
  1954. #define EVENT_IVS_TRAFFICACCIDENT 0x00000016 // 交通事故事件(对应 DEV_EVENT_TRAFFICACCIDENT_INFO)
  1955. #define EVENT_IVS_TRAFFICJUNCTION 0x00000017 // 交通路口事件----老规则(对应 DEV_EVENT_TRAFFICJUNCTION_INFO)
  1956. #define EVENT_IVS_TRAFFICGATE 0x00000018 // 交通卡口事件----老规则(对应 DEV_EVENT_TRAFFICGATE_INFO)
  1957. #define EVENT_TRAFFICSNAPSHOT 0x00000019 // 交通抓拍事件(对应 DEV_EVENT_TRAFFICSNAPSHOT_INFO)
  1958. #define EVENT_IVS_FACEDETECT 0x0000001A // 目标检测事件 (对应 DEV_EVENT_FACEDETECT_INFO)
  1959. #define EVENT_IVS_TRAFFICJAM 0x0000001B // 交通拥堵事件(对应 DEV_EVENT_TRAFFICJAM_INFO)
  1960. #define EVENT_IVS_TRAFFIC_NONMOTORINMOTORROUTE 0x0000001C // 非机动车占机动车车道事件(对应 DEV_EVENT_TRAFFIC_NONMOTORINMOTORROUTE_INFO)
  1961. #define EVENT_IVS_TRAFFIC_RUNREDLIGHT 0x00000100 // 交通违章-闯红灯事件(对应 DEV_EVENT_TRAFFIC_RUNREDLIGHT_INFO)
  1962. #define EVENT_IVS_TRAFFIC_OVERLINE 0x00000101 // 交通违章-压车道线事件(对应 DEV_EVENT_TRAFFIC_OVERLINE_INFO)
  1963. #define EVENT_IVS_TRAFFIC_RETROGRADE 0x00000102 // 交通违章-逆行事件(对应 DEV_EVENT_TRAFFIC_RETROGRADE_INFO)
  1964. #define EVENT_IVS_TRAFFIC_TURNLEFT 0x00000103 // 交通违章-违章左转(对应 DEV_EVENT_TRAFFIC_TURNLEFT_INFO)
  1965. #define EVENT_IVS_TRAFFIC_TURNRIGHT 0x00000104 // 交通违章-违章右转(对应 DEV_EVENT_TRAFFIC_TURNRIGHT_INFO)
  1966. #define EVENT_IVS_TRAFFIC_UTURN 0x00000105 // 交通违章-违章掉头(对应 DEV_EVENT_TRAFFIC_UTURN_INFO)
  1967. #define EVENT_IVS_TRAFFIC_OVERSPEED 0x00000106 // 交通违章-超速(对应 DEV_EVENT_TRAFFIC_OVERSPEED_INFO)
  1968. #define EVENT_IVS_TRAFFIC_UNDERSPEED 0x00000107 // 交通违章-低速(对应 DEV_EVENT_TRAFFIC_UNDERSPEED_INFO)
  1969. #define EVENT_IVS_TRAFFIC_PARKING 0x00000108 // 交通违章-违章停车(对应 DEV_EVENT_TRAFFIC_PARKING_INFO)
  1970. #define EVENT_IVS_TRAFFIC_WRONGROUTE 0x00000109 // 交通违章-不按车道行驶(对应 DEV_EVENT_TRAFFIC_WRONGROUTE_INFO)
  1971. #define EVENT_IVS_TRAFFIC_CROSSLANE 0x0000010A // 交通违章-违章变道(对应 DEV_EVENT_TRAFFIC_CROSSLANE_INFO)
  1972. #define EVENT_IVS_TRAFFIC_OVERYELLOWLINE 0x0000010B // 交通违章-压黄线 (对应 DEV_EVENT_TRAFFIC_OVERYELLOWLINE_INFO)
  1973. #define EVENT_IVS_TRAFFIC_DRIVINGONSHOULDER 0x0000010C // 交通违章-路肩行驶事件(对应 DEV_EVENT_TRAFFIC_DRIVINGONSHOULDER_INFO)
  1974. #define EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE 0x0000010E // 交通违章-黄牌车占道事件(对应 DEV_EVENT_TRAFFIC_YELLOWPLATEINLANE_INFO)
  1975. #define EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY 0x0000010F // 交通违章-礼让行人/斑马线行人优先事件(对应 DEV_EVENT_TRAFFIC_PEDESTRAINPRIORITY_INFO)
  1976. #define EVENT_IVS_ELECTROSPARKDETECTION 0x00000110 // 电火花事件(对应 DEV_EVENT_ELECTROSPARK_INFO)
  1977. #define EVENT_IVS_TRAFFIC_NOPASSING 0x00000111 // 交通违章-禁止通行事件(对应 DEV_EVENT_TRAFFIC_NOPASSING_INFO)
  1978. #define EVENT_IVS_ABNORMALRUNDETECTION 0x00000112 // 异常奔跑事件(对应 DEV_EVENT_ABNORMALRUNDETECTION_INFO)
  1979. #define EVENT_IVS_RETROGRADEDETECTION 0x00000113 // 人员逆行事件(对应 DEV_EVENT_RETROGRADEDETECTION_INFO)
  1980. #define EVENT_IVS_INREGIONDETECTION 0x00000114 // 区域内检测事件(对应 DEV_EVENT_INREGIONDETECTION_INFO)
  1981. #define EVENT_IVS_TAKENAWAYDETECTION 0x00000115 // 物品搬移事件(对应 DEV_EVENT_TAKENAWAYDETECTION_INFO)
  1982. #define EVENT_IVS_PARKINGDETECTION 0x00000116 // 非法停车事件(对应 DEV_EVENT_PARKINGDETECTION_INFO)
  1983. #define EVENT_IVS_FACERECOGNITION 0x00000117 // 目标识别事件(对应 DEV_EVENT_FACERECOGNITION_INFO)
  1984. #define EVENT_IVS_TRAFFIC_MANUALSNAP 0x00000118 // 交通手动抓拍事件(对应 DEV_EVENT_TRAFFIC_MANUALSNAP_INFO)
  1985. #define EVENT_IVS_TRAFFIC_FLOWSTATE 0x00000119 // 交通流量统计事件(对应 DEV_EVENT_TRAFFIC_FLOW_STATE)
  1986. #define EVENT_IVS_TRAFFIC_STAY 0x0000011A // 交通滞留事件(对应 DEV_EVENT_TRAFFIC_STAY_INFO)
  1987. #define EVENT_IVS_TRAFFIC_VEHICLEINROUTE 0x0000011B // 有车占道事件(对应 DEV_EVENT_TRAFFIC_VEHICLEINROUTE_INFO)
  1988. #define EVENT_ALARM_MOTIONDETECT 0x0000011C // 视频移动侦测事件(对应 DEV_EVENT_ALARM_INFO)
  1989. #define EVENT_ALARM_LOCALALARM 0x0000011D // 外部报警事件(对应 DEV_EVENT_ALARM_INFO)
  1990. #define EVENT_IVS_PSRISEDETECTION 0x0000011E // 囚犯起身事件(对应 DEV_EVENT_PSRISEDETECTION_INFO)
  1991. #define EVENT_IVS_CROSSFENCEDETECTION 0x0000011F // 翻越围栏事件(对应 DEV_EVENT_CROSSFENCEDETECTION_INFO)
  1992. #define EVENT_IVS_TRAFFIC_TOLLGATE 0x00000120 // 交通违章-卡口事件----新规则(对应 DEV_EVENT_TRAFFICJUNCTION_INFO)
  1993. #define EVENT_IVS_DENSITYDETECTION 0x00000121 // 人员密集度检测(对应 DEV_EVENT_DENSITYDETECTION_INFO)
  1994. #define EVENT_IVS_VIDEODIAGNOSIS 0x00000122 // 视频诊断结果事件(对应 NET_VIDEODIAGNOSIS_COMMON_INFO 和 NET_REAL_DIAGNOSIS_RESULT)
  1995. #define EVENT_IVS_QUEUEDETECTION 0x00000123 // 排队检测报警事件(对应 DEV_EVENT_QUEUEDETECTION_INFO)
  1996. #define EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE 0x00000124 // 占用公交车道事件(对应 DEV_EVENT_TRAFFIC_VEHICLEINBUSROUTE_INFO)
  1997. #define EVENT_IVS_TRAFFIC_BACKING 0x00000125 // 违章倒车事件(对应 DEV_EVENT_IVS_TRAFFIC_BACKING_INFO)
  1998. #define EVENT_IVS_AUDIO_ABNORMALDETECTION 0x00000126 // 声音异常检测(对应 DEV_EVENT_IVS_AUDIO_ABNORMALDETECTION_INFO)
  1999. #define EVENT_IVS_TRAFFIC_RUNYELLOWLIGHT 0x00000127 // 交通违章-闯黄灯事件(对应 DEV_EVENT_TRAFFIC_RUNYELLOWLIGHT_INFO)
  2000. #define EVENT_IVS_CLIMBDETECTION 0x00000128 // 攀高检测事件(对应 DEV_EVENT_IVS_CLIMB_INFO)
  2001. #define EVENT_IVS_LEAVEDETECTION 0x00000129 // 离岗检测事件(对应 DEV_EVENT_IVS_LEAVE_INFO)
  2002. #define EVENT_IVS_TRAFFIC_PARKINGONYELLOWBOX 0x0000012A // 黄网格线抓拍事件(对应 DEV_EVENT_TRAFFIC_PARKINGONYELLOWBOX_INFO)
  2003. #define EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING 0x0000012B // 车位有车事件(对应 DEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO)
  2004. #define EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING 0x0000012C // 车位无车事件(对应 DEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_INFO)
  2005. #define EVENT_IVS_TRAFFIC_PEDESTRAIN 0x0000012D // 交通行人事件(对应 DEV_EVENT_TRAFFIC_PEDESTRAIN_INFO)
  2006. #define EVENT_IVS_TRAFFIC_THROW 0x0000012E // 交通抛洒物品事件(对应 DEV_EVENT_TRAFFIC_THROW_INFO)
  2007. #define EVENT_IVS_TRAFFIC_IDLE 0x0000012F // 交通空闲事件(对应 DEV_EVENT_TRAFFIC_IDLE_INFO)
  2008. #define EVENT_ALARM_VEHICLEACC 0x00000130 // 车载ACC断电报警事件(对应 DEV_EVENT_ALARM_VEHICLEACC_INFO)
  2009. #define EVENT_ALARM_VEHICLE_TURNOVER 0x00000131 // 车辆侧翻报警事件(对应 DEV_EVENT_VEHICEL_ALARM_INFO)
  2010. #define EVENT_ALARM_VEHICLE_COLLISION 0x00000132 // 车辆撞车报警事件(对应 DEV_EVENT_VEHICEL_ALARM_INFO)
  2011. #define EVENT_ALARM_VEHICLE_LARGE_ANGLE 0x00000133 // 车载摄像头大角度扭转事件
  2012. #define EVENT_IVS_TRAFFIC_PARKINGSPACEOVERLINE 0x00000134 // 车位压线事件(对应 DEV_EVENT_TRAFFIC_PARKINGSPACEOVERLINE_INFO)
  2013. #define EVENT_IVS_MULTISCENESWITCH 0x00000135 // 多场景切换事件(对应 DEV_EVENT_IVS_MULTI_SCENE_SWICH_INFO)
  2014. #define EVENT_IVS_TRAFFIC_RESTRICTED_PLATE 0x00000136 // 受限车牌事件(对应 DEV_EVENT_TRAFFIC_RESTRICTED_PLATE)
  2015. #define EVENT_IVS_TRAFFIC_OVERSTOPLINE 0x00000137 // 压停止线事件(对应 DEV_EVENT_TRAFFIC_OVERSTOPLINE)
  2016. #define EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT 0x00000138 // 交通未系安全带事件(对应 DEV_EVENT_TRAFFIC_WITHOUT_SAFEBELT)
  2017. #define EVENT_IVS_TRAFFIC_DRIVER_SMOKING 0x00000139 // 驾驶员抽烟事件(对应 DEV_EVENT_TRAFFIC_DRIVER_SMOKING)
  2018. #define EVENT_IVS_TRAFFIC_DRIVER_CALLING 0x0000013A // 驾驶员打电话事件(对应 DEV_EVENT_TRAFFIC_DRIVER_CALLING)
  2019. #define EVENT_IVS_TRAFFIC_PEDESTRAINRUNREDLIGHT 0x0000013B // 行人闯红灯事件(对应 DEV_EVENT_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO)
  2020. #define EVENT_IVS_TRAFFIC_PASSNOTINORDER 0x0000013C // 未按规定依次通行(对应 DEV_EVENT_TRAFFIC_PASSNOTINORDER_INFO)
  2021. #define EVENT_IVS_OBJECT_DETECTION 0x00000141 // 物体特征检测事件
  2022. #define EVENT_ALARM_ANALOGALARM 0x00000150 // 模拟量报警通道的报警事件(对应DEV_EVENT_ALARM_ANALOGALRM_INFO)
  2023. #define EVENT_IVS_CROSSLINEDETECTION_EX 0x00000151 // 警戒线扩展事件
  2024. #define EVENT_ALARM_COMMON 0x00000152 // 普通录像
  2025. #define EVENT_ALARM_VIDEOBLIND 0x00000153 // 视频遮挡事件(对应 DEV_EVENT_ALARM_VIDEOBLIND)
  2026. #define EVENT_ALARM_VIDEOLOSS 0x00000154 // 视频丢失事件
  2027. #define EVENT_IVS_GETOUTBEDDETECTION 0x00000155 // 下床事件(对应 DEV_EVENT_GETOUTBED_INFO)
  2028. #define EVENT_IVS_PATROLDETECTION 0x00000156 // 巡逻检测事件(对应 DEV_EVENT_PATROL_INFO)
  2029. #define EVENT_IVS_ONDUTYDETECTION 0x00000157 // 站岗检测事件(对应 DEV_EVENT_ONDUTY_INFO)
  2030. #define EVENT_IVS_NOANSWERCALL 0x00000158 // 门口机呼叫未响应事件
  2031. #define EVENT_IVS_STORAGENOTEXIST 0x00000159 // 存储组不存在事件
  2032. #define EVENT_IVS_STORAGELOWSPACE 0x0000015A // 硬盘空间低报警事件
  2033. #define EVENT_IVS_STORAGEFAILURE 0x0000015B // 存储错误事件
  2034. #define EVENT_IVS_PROFILEALARMTRANSMIT 0x0000015C // 报警传输事件(对应 DEV_EVENT_PROFILE_ALARM_TRANSMIT_INFO)
  2035. #define EVENT_IVS_VIDEOSTATIC 0x0000015D // 视频静态检测事件(对应 DEV_EVENT_ALARM_VIDEOSTATIC_INFO)
  2036. #define EVENT_IVS_VIDEOTIMING 0x0000015E // 视频定时检测事件(对应 DEV_EVENT_ALARM_VIDEOTIMING_INFO)
  2037. #define EVENT_IVS_HEATMAP 0x0000015F // 热度图(对应 CFG_IVS_HEATMAP_INFO)
  2038. #define EVENT_IVS_CITIZENIDCARD 0x00000160 // 证件信息读取事件(对应 DEV_EVENT_ALARM_CITIZENIDCARD_INFO)
  2039. #define EVENT_IVS_PICINFO 0x00000161 // 图片信息事件(对应 DEV_EVENT_ALARM_PIC_INFO)
  2040. #define EVENT_IVS_NETPLAYCHECK 0x00000162 // 上网登记事件(对应 DEV_EVENT_ALARM_NETPLAYCHECK_INFO)
  2041. #define EVENT_IVS_TRAFFIC_JAM_FORBID_INTO 0x00000163 // 车辆拥堵禁入事件(对应 DEV_EVENT_ALARM_JAMFORBIDINTO_INFO)
  2042. #define EVENT_IVS_SNAPBYTIME 0x00000164 // 定时抓图事件(对应DEV_EVENT_SNAPBYTIME)
  2043. #define EVENT_IVS_PTZ_PRESET 0x00000165 // 云台转动到预置点事件(对应 DEV_EVENT_ALARM_PTZ_PRESET_INFO)
  2044. #define EVENT_IVS_RFID_INFO 0x00000166 // 红外线检测信息事件(对应 DEV_EVENT_ALARM_RFID_INFO)
  2045. #define EVENT_IVS_STANDUPDETECTION 0x00000167 // 人起立检测事件
  2046. #define EVENT_IVS_QSYTRAFFICCARWEIGHT 0x00000168 // 交通卡口称重事件(对应 DEV_EVENT_QSYTRAFFICCARWEIGHT_INFO)
  2047. #define EVENT_IVS_TRAFFIC_COMPAREPLATE 0x00000169 // 卡口前后车牌合成事件(对应DEV_EVENT_TRAFFIC_COMPAREPLATE_INFO)
  2048. #define EVENT_IVS_SHOOTINGSCORERECOGNITION 0x0000016A // 打靶像机事件(对应 DEV_EVENT_SHOOTING_SCORE_RECOGNITION_INFO,CFG_IVS_SHOOTINGSCORERECOGNITION_INFO)
  2049. #define EVENT_IVS_TRAFFIC_FCC 0x0000016B // 加油站提枪、挂枪事件(对应 DEV_EVENT_TRAFFIC_FCC_INFO)
  2050. #define EVENT_IVS_TRAFFIC_TRANSFINITE 0x0000016C // 违章超限抓图上报事件(对应 DEV_EVENT_TRAFFIC_TRANSFINITE_INFO)
  2051. #define EVENT_IVS_SCENE_CHANGE 0x0000016D // 场景变更事件(对应 DEV_ALRAM_SCENECHANGE_INFO,CFG_VIDEOABNORMALDETECTION_INFO)
  2052. #define EVENT_IVS_LETRACK 0x0000016E // 简单跟踪事件(暂未有具体事件)
  2053. #define EVENT_IVS_OBJECT_ACTION 0x0000016F // 物体检测事件(暂未有具体事件)
  2054. #define EVENT_IVS_TRAFFIC_ANALYSE_PRESNAP 0x00000170 // 预分析抓拍图片事件(对应 DEV_EVENT_TRAFFIC_ANALYSE_PRESNAP_INFO)
  2055. #define EVENT_ALARM_EQSTATE 0x00000171 // 智能插座电量状态上报(暂未有具体事件)
  2056. #define EVENT_IVS_ALARM_IPC 0x00000172 // DVR/NVR设备上的IPC报警(对应 DEV_EVENT_ALARM_IPC_INFO)
  2057. #define EVENT_IVS_POS_RECORD 0x00000173 // POS录像查询事件(暂未有具体事件)
  2058. #define EVENT_IVS_NEAR_DISTANCE_DETECTION 0x00000174 // 近距离接触事件(对应 DEV_EVENT_NEAR_DISTANCE_DETECTION_INFO)
  2059. #define EVENT_IVS_OBJECTSTRUCTLIZE_PERSON 0x00000175 // 行人特征检测事件(对应 DEV_EVENT_OBJECTSTRUCTLIZE_PERSON_INFO)
  2060. #define EVENT_IVS_OBJECTSTRUCTLIZE_NONMOTOR 0x00000176 // 非机动车特征检测事件(对应 DEV_EVENT_OBJECTSTRUCTLIZE_NONMOTOR_INFO)
  2061. #define EVENT_IVS_TUMBLE_DETECTION 0x00000177 // 倒地报警事件(对应 DEV_EVENT_TUMBLE_DETECTION_INFO)
  2062. #define EVENT_IVS_TRAFFIC_ALL 0x000001FF // 所有以traffic开头的事件,目前指的是
  2063. // EVENT_IVS_TRAFFICCONTROL -> EVENT_TRAFFICSNAPSHOT
  2064. // EVENT_IVS_TRAFFIC_RUNREDLIGHT -> EVENT_IVS_TRAFFIC_UNDERSPEED
  2065. #define EVENT_IVS_VIDEOANALYSE 0x00000200 // 所有智能分析事件
  2066. #define EVENT_IVS_LINKSD 0x00000201 // LinkSD事件(对应 DEV_EVENT_LINK_SD)
  2067. #define EVENT_IVS_VEHICLEANALYSE 0x00000202 // 车辆特征检测分析(对应DEV_EVENT_VEHICLEANALYSE)
  2068. #define EVENT_IVS_FLOWRATE 0x00000203 // 流量使用情况事件(对应 DEV_EVENT_FLOWRATE_INFO)
  2069. #define EVENT_IVS_ACCESS_CTL 0x00000204 // 门禁事件 (对应 DEV_EVENT_ACCESS_CTL_INFO)
  2070. #define EVENT_IVS_SNAPMANUAL 0x00000205 // SnapManual事件(对应 DEV_EVENT_SNAPMANUAL)
  2071. #define EVENT_IVS_TRAFFIC_ELETAGINFO 0x00000206 // RFID电子车牌标签事件(对应 DEV_EVENT_TRAFFIC_ELETAGINFO_INFO)
  2072. #define EVENT_IVS_TRAFFIC_TIREDPHYSIOLOGICAL 0x00000207 // 生理疲劳驾驶事件(对应 DEV_EVENT_TIREDPHYSIOLOGICAL_INFO)
  2073. #define EVENT_IVS_TRAFFIC_BUSSHARPTURN 0x00000208 // 车辆急转报警事件(对应DEV_EVENT_BUSSHARPTURN_INFO)
  2074. #define EVENT_IVS_CITIZEN_PICTURE_COMPARE 0x00000209 // 人证比对事件(对应 DEV_EVENT_CITIZEN_PICTURE_COMPARE_INFO)
  2075. #define EVENT_IVS_TRAFFIC_TIREDLOWERHEAD 0x0000020A // 开车低头报警事件(对应DEV_EVENT_TIREDLOWERHEAD_INFO)
  2076. #define EVENT_IVS_TRAFFIC_DRIVERLOOKAROUND 0x0000020B // 开车左顾右盼报警事件(对应DEV_EVENT_DRIVERLOOKAROUND_INFO)
  2077. #define EVENT_IVS_TRAFFIC_DRIVERLEAVEPOST 0x0000020C // 开车离岗报警事件(对应DEV_EVENT_DRIVERLEAVEPOST_INFO)
  2078. #define EVENT_IVS_MAN_STAND_DETECTION 0x0000020D // 立体视觉站立事件(对应DEV_EVENT_MANSTAND_DETECTION_INFO)
  2079. #define EVENT_IVS_MAN_NUM_DETECTION 0x0000020E // 立体视觉区域内人数统计事件(对应DEV_EVENT_MANNUM_DETECTION_INFO)
  2080. #define EVENT_IVS_STEREO_NUMBERSTAT 0x0000020F // 客流量统计事件(暂未有具体事件)
  2081. #define EVENT_IVS_TRAFFIC_DRIVERYAWN 0x00000210 // 开车打哈欠事件(对应DEV_EVENT_DRIVERYAWN_INFO)
  2082. #define EVENT_IVS_NUMBERSTAT_PLAN 0x00000211 // 客流量统计计划(暂未有具体事件,球机使用,对应规则配置结构体 CFG_NUMBERSTAT_INFO)
  2083. #define EVENT_IVS_HEATMAP_PLAN 0x00000212 // 热度图计划(暂未有具体事件,球机使用,对应规则配置结构体 CFG_IVS_HEATMAP_INFO)
  2084. #define EVENT_IVS_CALLNOANSWERED 0x00000213 // 呼叫无答应事件
  2085. #define EVENT_IVS_IGNOREINVITE 0x00000214 // 无视邀请事件
  2086. #define EVENT_IVS_HUMANTRAIT 0x00000215 // 人体特征事件(对应 DEV_EVENT_HUMANTRAIT_INFO)
  2087. #define EVENT_ALARM_LE_HEADDETECTION 0x00000216 // 乐橙人头检测事件(对应 DEV_EVENT_LE_HEADDETECTION_INFO)
  2088. #define EVENT_IVS_FACEANALYSIS 0x00000217 // 目标分析事件 (暂未有具体事件)
  2089. #define EVENT_IVS_TRAFFIC_TURNLEFTAFTERSTRAIGHT 0x00000218 // 左转不礼让直行事件(对应 DEV_EVENT_TURNLEFTAFTERSTRAIGHT_INFO)
  2090. #define EVENT_IVS_TRAFFIC_BIGBENDSMALLTURN 0x00000219 // 大弯小转事件(对应 DEV_EVENT_BIGBENDSMALLTURN_INFO)
  2091. #define EVENT_IVS_ROAD_CONSTRUCTION 0x0000021A // 道路施工监测事件(对应DEV_EVENT_ROAD_CONSTRUCTION_INFO)
  2092. #define EVENT_IVS_ROAD_BLOCK 0x0000021B // 路障检测事件(对应DEV_EVENT_ROAD_BLOCK_INFO)
  2093. #define EVENT_IVS_TRAFFIC_QUEUEJUMP 0x0000021C // 车辆加塞事件(对应 DEV_EVENT_TRAFFIC_QUEUEJUMP_INFO)
  2094. #define EVENT_IVS_VEHICLE_SUSPICIOUSCAR 0x0000021D // 嫌疑车辆事件(对应 DEV_EVENT_VEHICLE_SUSPICIOUSCAR_INFO)
  2095. #define EVENT_IVS_TRAFFIC_TURNRIGHTAFTERSTRAIGHT 0x0000021E // 右转不礼让直行事件(对应 DEV_EVENT_TURNRIGHTAFTERSTRAIGHT_INFO)
  2096. #define EVENT_IVS_TRAFFIC_TURNRIGHTAFTERPEOPLE 0x0000021F // 右转不礼让直行行人(对应 DEV_EVENT_TURNRIGHTAFTERPEOPLE_INFO)
  2097. #define EVENT_IVS_INSTALL_CARDREADER 0x00000220 // 安装读卡器事件(对应 DEV_EVENT_INSTALL_CARDREADER_INFO)
  2098. #define EVENT_ALARM_YALE_DROPBOX_BADTOKEN 0x00000221 // Yale token失效事件,只用于订阅手机推送
  2099. #define EVENT_IVS_ACC_OFF_SNAP 0x00000222 // 车载设备断电前抓拍上传事件(对应 DEV_EVENT_ACC_OFF_SNAP_INFO)
  2100. #define EVENI_IVS_XRAY_DETECTION 0x00000223 // X光检测事件 (对应 DEV_EVENT_XRAY_DETECTION_INFO)
  2101. #define EVENT_IVS_NOTCLEARCAR 0x00000224 // 未清车告警(对应 DEV_EVENT_NOTCLEARCAR_INFO)
  2102. #define EVENT_IVS_SOSALEART 0x00000225 // sos求救报警(对应 DEV_EVENT_SOSALEART_INFO)
  2103. #define EVENT_IVS_OVERLOAD 0x00000226 // 超载抓图(对应 DEV_EVENT_OVERLOAD_INFO)
  2104. #define EVENT_IVS_NONWORKINGTIME 0x00000227 // 非工作时间告警(对应 DEV_EVENT_NONWORKINGTIME_INFO)
  2105. #define EVENT_IVS_TRAFFIC_HIGH_BEAM 0x00000228 // 远光灯违章事件(对应 DEV_EVENT_TRAFFIC_HIGH_BEAM_INFO)
  2106. #define EVENT_IVS_TRAFFIC_TRUCKFORBID 0x00000229 // 禁止货车事件(对应 DEV_EVENT_TRAFFICTRUCKFORBID_INFO)
  2107. #define EVENT_IVS_DRIVINGWITHOUTCARD 0x0000022A // 无卡驾驶报警事件(对应 DEV_EVENT_DRIVINGWITHOUTCARD_INFO)
  2108. #define EVENT_IVS_HIGHSPEED 0x0000022B // 车辆超速报警事件(对应 DEV_EVENT_HIGHSPEED_INFO)
  2109. #define EVENT_IVS_CROWDDETECTION 0x0000022C // 人群密度检测事件(对应结构体 DEV_EVENT_CROWD_DETECTION_INFO)
  2110. #define EVENT_IVS_TRAFFIC_CARDISTANCESHORT 0x0000022D // 车间距过小报警事件(对应 DEV_EVENT_TRAFFIC_CARDISTANCESHORT_INFO)
  2111. #define EVENT_IVS_PEDESTRIAN_JUNCTION 0x00000230 // 行人卡口事件(对应 DEV_EVENT_PEDESTRIAN_JUNCTION_INFO)
  2112. #define EVENT_IVS_VEHICLE_RECOGNITION 0x00000231 // 车牌对比事件(中石化智慧加油站项目)(对应 DEV_EVENT_VEHICLE_RECOGNITION_INFO)
  2113. #define EVENT_IVS_PASS_CHANGE 0x00000232 // 预置点图片变化事件 (对应 DEV_EVENT_PASS_CHANGE_INFO)
  2114. #define EVENT_IVS_TRAFFIC_PARKING_SPACEDETECTION 0x00000233 // 违停相机单球车位检测规则事件
  2115. #define EVENT_IVS_TRAFFIC_WAITINGAREA 0x00000234 // 违章进入待行区事件(对应 DEV_EVENT_TRAFFIC_WAITINGAREA_INFO)
  2116. #define EVENT_IVS_TRAFFIC_BAN 0x00000235 // 机动车违法禁令标识事件(对应 DEV_EVENT_TRAFFIC_BAN_INFO)
  2117. #define EVENT_IVS_POS_EXCHANGE 0x00000236 // POS机交易事件(对应 DEV_EVENT_POS_EXCHANGE_INFO)
  2118. #define EVENT_IVS_STEREO_FIGHTDETECTION 0x00000237 // 立体行为分析打架/剧烈运动检测规则(仅用于规则配置,对应事件 EVENT_IVS_FIGHTDETECTION)
  2119. #define EVENT_IVS_STEREO_DISTANCE_DETECTION 0x00000238 // 立体行为分析间距异常/人员靠近检测(仅用于规则配置,对应事件)
  2120. #define EVENT_IVS_STEREO_STEREOFALLDETECTION 0x00000239 // 立体行为分析跌倒检测规则(仅用于规则配置,对应事件 EVENT_IVS_TUMBLE_DETECTION)
  2121. #define EVENT_IVS_STEREO_STAYDETECTION 0x0000023A // 立体行为分析人员滞留检测规则(仅用于规则配置,对应事件 EVENT_IVS_STAYDETECTION)
  2122. #define EVENT_IVS_BANNER_DETECTION 0x0000023B // 拉横幅事件(对应 DEV_EVENT_BANNER_DETECTION_INFO)
  2123. #define EVENT_IVS_NORMAL_FIGHTDETECTION 0x0000023C // 普通打架事件(只用于普通打架规则, 事件采用EVENT_IVS_FIGHTDETECTION)
  2124. #define EVENT_IVS_ELEVATOR_ABNORMAL 0x0000023D // 电动扶梯运行异常事件 (对应DEV_EVENT_ELEVATOR_ABNORMAL_INFO)
  2125. #define EVENT_IVS_NONMOTORDETECT 0x0000023E // 非机动车检测 (对应结构体 DEV_EVENT_NONMOTORDETECT_INFO)
  2126. #define EVENT_IVS_VEHICLEDETECT 0x0000023F // 机动车检测 (只用于规则配置,事件采用EVENT_IVS_TRAFFICJUNCTION)
  2127. #define EVENT_IVS_TRAFFIC_PARKING_B 0x00000240 // 交通违章-B类违章停车(对应 DEV_EVENT_TRAFFIC_PARKING_B_INFO)
  2128. #define EVENT_IVS_TRAFFIC_PARKING_C 0x00000241 // 交通违章-C类违章停车(对应 DEV_EVENT_TRAFFIC_PARKING_C_INFO)
  2129. #define EVENT_IVS_TRAFFIC_PARKING_D 0x00000242 // 交通违章-D类违章停车(对应 DEV_EVENT_TRAFFIC_PARKING_D_INFO)
  2130. #define EVENT_IVSS_FACEATTRIBUTE 0x00000243 // IVSS目标检测事件 (暂未有具体事件)
  2131. #define EVENT_IVSS_FACECOMPARE 0x00000244 // IVSS目标识别事件 (暂未有具体事件)
  2132. #define EVENT_IVS_FIREWARNING 0x00000245 // 火警事件(对应 DEV_EVENT_FIREWARNING_INFO)
  2133. #define EVENT_IVS_SHOPPRESENCE 0x00000246 // 商铺占道经营事件(对应 DEV_EVENT_SHOPPRESENCE_INFO)
  2134. #define EVENT_IVS_WASTEDUMPED 0x00000247 // 垃圾违章倾倒事件(对应 DEV_EVENT_WASTEDUMPED_INFO)
  2135. #define EVENT_IVS_SPILLEDMATERIAL_DETECTION 0x00000248 // 抛洒物检测事件(对应 DEV_EVENT_SPILLEDMATERIAL_DETECTION_INFO)
  2136. #define EVENT_IVS_STEREO_MANNUM_DETECTION 0x00000249 // 立体行为分析人数异常检测 (仅用于规则配置,对应事件 EVENT_IVS_MAN_NUM_DETECTION)
  2137. #define EVENT_IVS_DISTANCE_DETECTION 0x0000024A // 异常间距事件 (对应 DEV_EVENT_DISTANCE_DETECTION_INFO)
  2138. #define EVENT_IVS_TRAFFIC_NONMOTOR_OVERLOAD 0x0000024B // 非机动车超载事件 (对应 DEV_EVENT_TRAFFIC_NONMOTOR_OVERLOAD_INFO)
  2139. #define EVENT_IVS_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT 0x0000024C // 非机动车未戴安全帽事件 (对应 DEV_EVENT_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT_INFO)
  2140. #define EVENT_IVS_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING 0x0000024D // 拥堵滞留斑马线事件 (对应 DEV_EVENT_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING_INFO)
  2141. #define EVENT_IVS_FLOWBUSINESS 0x0000024E // 流动摊贩事件 (对应 DEV_EVENT_FLOWBUSINESS_INFO)
  2142. #define EVENT_IVS_CITY_MOTORPARKING 0x0000024F // 城市机动车违停事件 (对应 DEV_EVENT_CITY_MOTORPARKING_INFO)
  2143. #define EVENT_IVS_CITY_NONMOTORPARKING 0x00000250 // 城市机非动车违停事件 (对应 DEV_EVENT_CITY_NONMOTORPARKING_INFO)
  2144. #define EVENT_IVS_LANEDEPARTURE_WARNNING 0X00000251 // 车道偏移预警(对应 DEV_EVENT_LANEDEPARTURE_WARNNING_INFO)
  2145. #define EVENT_IVS_FORWARDCOLLISION_WARNNING 0x00000252 // 前向碰撞预警(对应 DEV_EVENT_FORWARDCOLLISION_WARNNING_INFO)
  2146. #define EVENT_IVS_MATERIALSSTAY 0x00000253 // 物料堆放事件(对应 DEV_EVENT_MATERIALSSTAY_INFO)
  2147. #define EVENT_IVS_TRAFFIC_NONMOTOR_HOLDUMBRELLA 0x00000254 // 非机动车装载伞具(对应 DEV_EVENT_TRAFFIC_NONMOTOR_HOLDUMBRELLA_INFO)
  2148. #define EVENT_IVS_JABLOTRON_ALARM 0x00000255 // 客户报警产品
  2149. #define EVENT_IVS_VIDEOUNFOCUS_ALARM 0x00000256 // 视频虚焦事件(对应DEV_EVENT_VIDEOUNFOCUS_INFO)
  2150. #define EVENT_IVS_FLOATINGOBJECT_DETECTION 0x00000257 // 漂浮物检测事件 (对应 DEV_EVENT_FLOATINGOBJECT_DETECTION_INFO)
  2151. #define EVENT_IVS_SHIP_DETECTION 0x00000258 // 船舶检测事件 (对应 DEV_EVENT_SHIP_DETECTION_INFO)
  2152. #define EVENT_IVS_AIRPLANE_DETECTION 0x00000259 // 飞机行为检测事件(对应 DEV_EVENT_AIRPLANE_DETECTION_INFO)
  2153. #define EVENT_IVS_PHONECALL_DETECT 0x0000025A // 打电话检测事件(对应 DEV_EVENT_PHONECALL_DETECT_INFO)
  2154. #define EVENT_IVS_SMOKING_DETECT 0x0000025B // 吸烟检测事件(对应 DEV_EVENT_SMOKING_DETECT_INFO)
  2155. #define EVENT_IVS_RADAR_SPEED_LIMIT_ALARM 0x0000025C // 雷达限速报警事件(对应 DEV_EVENT_RADAR_SPEED_LIMIT_ALARM_INFO)
  2156. #define EVENT_IVS_WATER_LEVEL_DETECTION 0x0000025D // 水位检测事件 (对应 DEV_EVENT_WATER_LEVEL_DETECTION_INFO)
  2157. #define EVENT_IVS_HOLD_UMBRELLA 0x0000025E // 违规撑伞检测事件 (对应 DEV_EVENT_HOLD_UMBRELLA_INFO)
  2158. #define EVENT_IVS_GARBAGE_EXPOSURE 0x0000025F // 垃圾暴露检测事件 (对应 DEV_EVENT_GARBAGE_EXPOSURE_INFO)
  2159. #define EVENT_IVS_DUSTBIN_OVER_FLOW 0x00000260 // 垃圾桶满溢检测事件 (对应 DEV_EVENT_DUSTBIN_OVER_FLOW_INFO)
  2160. #define EVENT_IVS_DOOR_FRONT_DIRTY 0x00000261 // 门前脏乱检测事件 (对应 DEV_EVENT_DOOR_FRONT_DIRTY_INFO)
  2161. #define EVENT_IVS_QUEUESTAY_DETECTION 0X00000262 // 排队滞留时间报警事件 (对应 DEV_EVENT_QUEUESTAY_DETECTION_INFO)
  2162. #define EVENT_IVS_QUEUENUM_DETECTION 0X00000263 // 排队人数异常报警事件(对应 DEV_EVENT_QUEUENUM_DETECTION_INFO)
  2163. #define EVENT_IVS_GENERATEGRAPH_DETECTION 0X00000264 // 生成图规则事件(对应 DEV_EVENT_GENERATEGRAPH_DETECTION_INFO)
  2164. #define EVENT_IVS_TRAFFIC_PARKING_MANUAL 0x00000265 // 交通违章-手动取证(对应 DEV_EVENT_TRAFFIC_PARKING_MANUAL_INFO)
  2165. #define EVENT_IVS_HELMET_DETECTION 0x00000266 // 安全帽检测事件(对应 DEV_EVENT_HELMET_DETECTION_INFO)
  2166. #define EVENT_IVS_DEPOSIT_DETECTION 0x00000267 // 包裹堆积程度检测事件(对应 DEV_EVENT_DEPOSIT_DETECTION_INFO)
  2167. #define EVENT_IVS_HOTSPOT_WARNING 0x00000268 // 热点异常报警事件(对应 DEV_EVENT_HOTSPOT_WARNING_INFO)
  2168. #define EVENT_IVS_WEIGHING_PLATFORM_DETECTION 0x00000269 // 称重平台检测事件(对应 DEV_EVENT_WEIGHING_PLATFORM_DETECTION_INFO)
  2169. #define EVENT_IVS_CLASSROOM_BEHAVIOR 0x0000026A // 课堂行为分析事件(对应 DEV_EVENT_CLASSROOM_BEHAVIOR_INFO)
  2170. #define EVENT_IVS_VEHICLE_DISTANCE_NEAR 0x0000026B // 安全驾驶车距过近报警事件(对应 DEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO)
  2171. #define EVENT_IVS_TRAFFIC_DRIVER_ABNORMAL 0x0000026C // 驾驶员异常报警事件(对应 DEV_EVENT_TRAFFIC_DRIVER_ABNORMAL_INFO)
  2172. #define EVENT_IVS_TRAFFIC_DRIVER_CHANGE 0x0000026D // 驾驶员变更报警事件(对应 DEV_EVENT_TRAFFIC_DRIVER_CHANGE_INFO)
  2173. #define EVENT_IVS_WORKCLOTHES_DETECT 0x0000026E // 工装(安全帽/工作服等)检测事件(对应 DEV_EVENT_WORKCLOTHES_DETECT_INFO)
  2174. #define EVENT_IVS_SECURITYGATE_PERSONALARM 0x0000026F // 安检门人员报警事件(对应 DEV_EVENT_SECURITYGATE_PERSONALARM_INFO)
  2175. #define EVENT_IVS_STAY_ALONE_DETECTION 0x00000270 // 单人独处事件(对应 DEV_EVENT_STAY_ALONE_DETECTION_INFO)
  2176. #define EVENT_IVS_TRAFFIC_ROAD_BLOCK 0x00000271 // 交通路障检测事件(对应 DEV_EVENT_TRAFFIC_ROAD_BLOCK_INFO)
  2177. #define EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION 0x00000272 // 交通道路施工检测事件(对应 DEV_EVENT_TRAFFIC_ROAD_CONSTRUCTION_INFO)
  2178. #define EVENT_IVS_XRAY_DETECT_BYOBJECT 0x00000273 // X光按物体检测规则配置, 对应事件 EVENI_IVS_XRAY_DETECTION
  2179. #define EVENT_IVS_WORKSTATDETECTION 0x00000274 // 作业统计事件(对应 DEV_EVENT_WORKSTATDETECTION_INFO)
  2180. #define EVENT_IVS_INFRAREDBLOCK 0x00000275 // 红外阻断事件(对应 DEV_EVENT_INFRAREDBLOCK_INFO)
  2181. #define EVENT_IVS_FEATURE_ABSTRACT 0x00000276 // 特征提取事件(对应 DEV_EVENT_FEATURE_ABSTRACT_INFO)
  2182. #define EVENT_IVS_INTELLI_SHELF 0x00000277 // 智能补货事件(对应 DEV_EVENT_INTELLI_SHELF_INFO)
  2183. #define EVENT_IVS_PANORAMA_SHOT 0x00000278 // 全景抓拍事件(对应 DEV_EVENT_PANORAMA_SHOT_INFO)
  2184. #define EVENT_ALARM_SMARTMOTION_HUMAN 0x00000279 // 智能视频移动侦测事件(人), (对应 DEV_EVENT_SMARTMOTION_HUMAN_INFO)
  2185. #define EVENT_ALARM_SMARTMOTION_VEHICLE 0x0000027A // 智能视频移动侦测事件(车), (对应 DEV_EVENT_SMARTMOTION_VEHICLE_INFO)
  2186. #define EVENT_IVS_CAR_DRIVING_IN_OUT 0x0000027B // 车辆驶入驶出状态事件(对应 DEV_EVENT_CAR_DRIVING_IN_OUT_INFO)
  2187. #define EVENT_IVS_PARKINGSPACE_STATUS 0x0000027C // 停车位状态事件(对应 DEV_EVENT_PARKINGSPACE_STATUS_INFO)
  2188. #define EVENT_IVS_VIOLENT_THROW_DETECTION 0x0000027D // 暴力抛物检测(对应 DEV_EVENT_VIOLENT_THROW_DETECTION_INFO)
  2189. #define EVENT_IVS_TRAMCARSECTIONS_DETECTION 0x0000027E // 矿车超挂报警事件(对应 DEV_EVENT_TRAMCARSECTIONS_DETECTION_INFO)
  2190. #define EVENT_IVS_ALARM_BOX_ALARM 0x0000027F // 报警盒通道的触发报警事件, 目前只用于订阅手机推送
  2191. #define EVENT_IVS_FACE_COMPARISION 0x00000280 // 目标比对事件, 专用于手机推送的目标识别事件, 目前只用于订阅手机推送
  2192. #define EVENT_IVS_FACEBODY_DETECT 0x00000281 // 人像检测事件(对应 DEV_EVENT_FACEBODY_DETECT_INFO)
  2193. #define EVENT_IVS_FACEBODY_ANALYSE 0x00000282 // 人像识别事件(对应 DEV_EVENT_FACEBODY_ANALYSE_INFO)
  2194. #define EVENT_IVS_GASSTATION_VEHICLE_DETECT 0x00000283 // 加油站车辆检测事件 (对应 DEV_EVENT_GASSTATION_VEHICLE_DETECT_INFO)
  2195. #define EVENT_IVS_CONGESTION_DETECTION 0x00000284 // 道路场景车辆拥堵报警事件(对应 DEV_EVENT_CONGESTION_DETECTION_INFO)
  2196. #define EVENT_IVS_VEHICLELIMIT_DETECTION 0x00000285 // 停车场场景下停车车辆上限报警(对应 DEV_EVENT_VEHICLELIMIT_DETECTION_INFO)
  2197. #define EVENT_IVS_ANIMAL_DETECTION 0x00000286 // 动物检测事件,(对应 DEV_EVENT_ANIMAL_DETECTION_INFO)
  2198. #define EVENT_IVS_SHOP_WINDOW_POST 0x00000287 // 橱窗张贴事件 (对应 DEV_EVENT_SHOP_WINDOW_POST_INFO)
  2199. #define EVENT_IVS_SHOP_SIGN_ABNORMAL 0x00000288 // 店招异常事件 (对应 DEV_EVENT_SHOP_SIGN_ABNORMAL_INFO)
  2200. #define EVENT_IVS_BREED_DETECTION 0x00000289 // 智慧养殖检测事件 (对应 DEV_EVENT_BREED_DETECTION_INFO)
  2201. #define EVENT_IVS_AIRPORT_VEHICLE_DETECT 0x0000028A // 机场智能保障车辆检测事件 (对应 DEV_EVENT_AIRPORT_VEHICLE_DETECT_INFO)
  2202. #define EVENT_IVS_PIG_TEMPERATURE_DETECT 0x0000028B // 智慧养殖猪体温检测 (只用于规则配置)
  2203. #define EVENT_IVS_MAN_CAR_COEXISTANCE 0x0000028C // 人车共存事件 (对应 DEV_EVENT_MAN_CAR_COEXISTANCE_INFO)
  2204. #define EVENT_IVS_HIGH_TOSS_DETECT 0x0000028D // 高空抛物检测(对应DEV_EVENT_HIGH_TOSS_DETECT_INFO)
  2205. #define EVENT_IVS_ELECTRIC_GLOVE_DETECT 0x0000028E // 电力检测手套检测事件(对应DEV_EVENT_ELECTRIC_GLOVE_DETECT_INFO)
  2206. #define EVENT_IVS_ELECTRIC_LADDER_DETECT 0x0000028F // 电力检测梯子检测事件(对应DEV_EVENT_ELECTRIC_LADDER_DETECT_INFO)
  2207. #define EVENT_IVS_ELECTRIC_CURTAIN_DETECT 0x00000290 // 电力检测布幔检测事件(对应DEV_EVENT_ELECTRIC_CURTAIN_DETECT_INFO)
  2208. #define EVENT_IVS_ELECTRIC_FENCE_DETECT 0x00000291 // 电力检测围栏检测事件(对应DEV_EVENT_ELECTRIC_FENCE_DETECT_INFO)
  2209. #define EVENT_IVS_ELECTRIC_SIGNBOARD_DETECT 0x00000292 // 电力检测标识牌检测事件(对应DEV_EVENT_ELECTRIC_SIGNBOARD_DETECT_INFO)
  2210. #define EVENT_IVS_ELECTRIC_BELT_DETECT 0x00000293 // 电力检测安全带检测事件(对应DEV_EVENT_ELECTRIC_BELT_DETECT_INFO)
  2211. #define EVENT_IVS_RADAR_LINE_DETECTION 0x00000294 // 雷达警戒线/绊线检测(对应DEV_EVENT_RADAR_LINE_DETECTION_INFO)
  2212. #define EVENT_IVS_RADAR_REGION_DETECTION 0x00000295 // 雷达警戒区检测事件(对应DEV_EVENT_RADAR_REGION_DETECTION_INFO)
  2213. #define EVENT_IVS_AUDIO_INTENSITY 0x00000296 // 异常音事件(对应 DEV_EVENT_AUDIO_INTENSITY_INFO)
  2214. #define EVENT_IVS_PARKING_LOT_STATUS_DETECTION 0x00000297 // 室外停车位状态检测 (对应 DEV_EVENT_PARKING_LOT_STATUS_DETECTION_INFO)
  2215. #define EVENT_IVS_VEHICLE_COMPARE 0x00000298 // (只用于规则配置)
  2216. #define EVENT_IVS_DREGS_UNCOVERED 0x00000299 // 渣土车未遮盖载货检测事件(对应 DEV_EVENT_DREGS_UNCOVERED_INFO)
  2217. #define EVENT_IVS_WALK_DETECTION 0x0000029A // 走动检测事件(对应 DEV_EVENT_WALK_DETECTION_INFO)
  2218. #define EVENT_IVS_BACK_TO_DETECTION 0x0000029B // 背对检测事件(对应 DEV_EVENT_BACK_TO_DETECTION_INFO)
  2219. #define EVENT_IVS_WRITE_ON_THE_BOARD_DETECTION 0x0000029C // 板书检测事件(对应 DEV_EVENT_WRITE_ON_THE_BOARD_DETECTION_INFO)
  2220. #define EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION 0x0000029D // 智慧厨房穿着检测事件(对不戴口罩、厨师帽以及颜色不符合规定的厨师服进行报警)(对应 DEV_EVENT_SMART_KITCHEN_CLOTHES_DETECTION_INFO)
  2221. #define EVENT_IVS_SLEEP_DETECT 0x0000029E // 睡觉检测事件(对应 DEV_EVENT_SLEEP_DETECT_INFO)
  2222. #define EVENT_IVS_WALK_AROUND_DETECT 0x0000029F // 随意走动检测事件(对应 DEV_EVENT_WALK_AROUND_DETECT_INFO)
  2223. #define EVENT_IVS_PLAY_MOBILEPHONE 0x00000300 // 玩手机事件(对应 DEV_EVENT_PLAY_MOBILEPHONE_INFO)
  2224. #define EVENT_IVS_FINANCE_CONTRABAND_DETECT 0x00000301 // 智慧金融违规物品检测事件(对应 DEV_EVENT_FINANCE_CONTRABAND_DETECT_INFO)
  2225. #define EVENT_IVS_FINANCE_CASH_TRANSACTION 0x00000302 // 智慧金融现金交易检测事件(对应 DEV_EVENT_FINANCE_CASH_TRANSACTION_INFO)
  2226. #define EVENT_IVS_ANATOMY_TEMP_DETECT 0x00000303 // 人体温智能检测事件(对应 DEV_EVENT_ANATOMY_TEMP_DETECT_INFO)
  2227. #define EVENT_IVS_ACTIVITY_ANALYSE 0x00000304 // 活跃度统计规则 (只用于规则配置)
  2228. #define EVENT_IVS_DOOR_STATUS 0x00000305 // 门状态事件(对应 DEV_EVENT_DOOR_STATUS_INFO)
  2229. #define EVENT_IVS_DHOP_CUSTOM 0x00000306 // Dhop自定义事件(start/stop, 对应 DEV_EVENT_DHOP_CUSTOM_INFO)
  2230. #define EVENT_IVS_DHOP_CUSTOM_ONCE 0x00000307 // Dhop自定义事件(Pulse, 对应 DEV_EVENT_DHOP_CUSTOM_INFO)
  2231. #define EVENT_IVS_FOG_DETECTION 0x00000308 // 起雾检测事件(对应 DEV_EVENT_FOG_DETECTION)
  2232. #define EVENT_IVS_TRAFFIC_VEHICLE_BC 0x00000309 // 飙车事件(对应 DEV_EVENT_TRAFFIC_VEHICLE_BC )
  2233. #define EVENT_IVS_TRAFFIC_MOTOR_OVERLOAD 0x0000030A // 机动车超载(对应 DEV_EVENT_TRAFFIC_MOTOR_OVERLOAD_INFO)
  2234. #define EVENT_IVS_TRAFFIC_PLATE_OCCLUSION 0x0000030B // 车牌污损(对应 DEV_EVENT_TRAFFIC_PLATE_OCCLUSION_INFO)
  2235. #define EVENT_IVS_NONMOTOR_ENTRYING 0x0000030C // 非机动车进入电梯(对应 DEV_EVENT_NONMOTOR_ENTRYING_INFO)
  2236. #define EVENT_IVS_WATER_STAGE_MONITOR 0x0000030D // 水位监测事件, 目前仅用于任务型智能分析 (对应 DEV_EVENT_WATER_STAGE_MONITOR_INFO)
  2237. #define EVENT_IVS_TRAFFIC_ROAD_ALERT 0x0000030E // 道路安全预警(对应 DEV_EVENT_TRAFFIC_ROAD_ALERT_INFO)
  2238. #define EVENT_IVS_BREAK_RULE_BUILDING_DETECTION 0x0000030F // 违章建筑检测事件(对应 DEV_EVENT_BREAK_RULE_BUILDIING_DETECTION_INFO)
  2239. #define EVENT_IVS_TRAFFIC_NONMOTOR_RUN_REDLIGHT 0x00000310 // 非机动车闯红灯 (对应 DEV_EVENT_TRAFFIC_NONMOTOR_RUN_REDLIGHT_INFO )
  2240. #define EVENT_IVS_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE 0x00000311 // 占用应急车道事件(对应 DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO )
  2241. #define EVENT_IVS_PRAM_DETECTION 0x00000312 // 婴儿车检测事件 (对应 DEV_EVENT_PRAM_DETECTION_INFO )
  2242. #define EVENT_IVS_STEREO_PRAM_DETECTION 0x00000313 // 立体行为婴儿车检测事件 (只用于规则配置)
  2243. #define EVENT_IVS_BIG_BAGGAGE_DETECTION 0x00000314 // 大件行李箱检测事件 (对应 DEV_EVENT_BIG_BAGGAGE_DETECTION_INFO )
  2244. #define EVENT_IVS_STEREO_BIG_BAGGAGE_DETECTION 0x00000315 // 立体行为大件行李箱检测事件 (只用于规则配置)
  2245. #define EVENT_IVS_TICKET_EVADE_DETECTION 0x00000316 // 逃票检测事件 (对应 DEV_EVENT_TICKET_EVADE_DETECTION_INFO )
  2246. #define EVENT_IVS_STEREO_TICKET_EVADE_DETECTION 0x00000317 // 立体行为逃票检测事件 (只用于规则配置)
  2247. #define EVENT_IVS_POWERLINE_FOREIGN_DETECITON 0x00000318 // 输电线异物检测 (对应 DEV_EVENT_POWERLINE_FOREIGN_DETEC_INFO)
  2248. #define EVENT_IVS_TRAFFIC_OVER_GUIDE_LINE 0x00000319 // 压导流线 (对应 DEV_EVENT_TRAFFIC_OVER_GUIDE_LINE_INFO)
  2249. #define EVENT_IVS_TRAFFIC_CAR_MEASUREMENT 0x00000320 // 交通卡口测量(车辆长、宽、高度、重量等)事件 (对应 DEV_EVENT_TRAFFIC_CAR_MEASUREMENT_INFO)
  2250. #define EVENT_IVS_TRAFFIC_WRONG_TURN_LIGHT 0x00000321 // 不安规定使用转向灯事件(对应 DEV_EVENT_TRAFFIC_WRONG_TURN_LIGHT_INFO)
  2251. #define EVENT_IVS_TRAFFIC_REAREND_ACCIDENT 0x00000322 // 交通事故事件(对应 DEV_EVENT_TRAFFIC_REAREND_ACCIDENT_INFO)
  2252. #define EVENT_IVS_DO_TALK_ACTION 0x00000323 // 对讲动作事件(对应 DEV_EVENT_DO_TALK_ACTION_INFO)
  2253. #define EVENT_IVS_FIRE_LANE_DETECTION 0x00000324 // 消防占道检测事件(对应 DEV_EVENT_FIRE_LANE_DETECTION_INFO)
  2254. #define EVENT_IVS_PARKING_DETECTION_FOR_PRMA 0x00000325 // 全景异常停车事件 (只用于规则配置)
  2255. #define EVENT_IVS_TRAFFIC_JAM_FOR_PRMA 0x00000326 // 全景交通拥堵事件 (只用于规则配置)
  2256. #define EVENT_IVS_TRAFFIC_ACCIDENT_FOR_PRMA 0x00000327 // 全景交通事故事件 (只用于规则配置)
  2257. #define EVENT_IVS_TRAFFIC_NON_MOTOR_RETROGRADE 0x00000328 // 非机动车逆行事件(对应 DEV_EVENT_TRAFFIC_NON_MOTOR_RETROGRADE_INFO)
  2258. #define EVENT_IVS_TRAFFIC_NON_MOTOR_OVER_STOP_LINE 0x00000329 // 非机动车越线停车事件(对应 DEV_EVENT_TRAFFIC_NON_MOTOR_OVER_STOP_LINE_INFO)
  2259. #define EVENT_IVS_CAR_DRIVING_IN 0x00000330 // 车辆驶入事件(对应 DEV_EVENT_CAR_DRIVING_IN_INFO)
  2260. #define EVENT_IVS_CAR_DRIVING_OUT 0x00000331 // 车辆驶出事件(对应 DEV_EVENT_CAR_DRIVING_OUT_INFO)
  2261. #define EVENT_IVS_PORTRAIT_DETECTION 0x00000332 // 人像检测 (只用于规则配置)
  2262. #define EVENT_IVS_TRAFFIC_SPECIAL_VEHICLE_DETECT 0x00000333 // 特殊车辆检测 (对应 DEV_EVENT_TRAFFIC_SPECIAL_VEHICLE_INFO )
  2263. #define EVENT_IVS_TRAFFIC_HEAD_LAMP_OFF 0x00000334 // 未开照明灯事件(对应 DEV_EVENT_TRAFFIC_HEAD_LAMP_OFF_INFO)
  2264. #define EVENT_IVS_TRAFFIC_NONMOTOR 0x00000335 // 交通非机动车事件检测, 智能服务器使用 ( DEV_EVENT_TRAFFIC_NONMOTOR_INFO )
  2265. #define EVENT_IVS_TRAFFIC_BOARD 0x00000336 // 交通违章上下客事件检测 (对应 DEV_EVENT_TRAFFIC_BOARD_INFO )
  2266. #define EVENT_IVS_TRAFFIC_VISIBILITY 0x00000337 // 交通能见度事件检测 (对应 DEV_EVENT_TRAFFIC_VISIBILITY_INFO )
  2267. #define EVENT_IVS_TRAFFIC_VEHICLE_CLEANLINESS 0x00000338 // 交通车辆清洁度检测事件检测 (对应 DEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO)
  2268. #define EVENT_IVS_TRAFFICFLOW_FOR_PRMA 0x00000339 // 全景交通车流 (只用于规则配置)
  2269. #define EVENT_IVS_TRUCKNOTCLEAN_FOR_PRMA 0x0000033A // 工程车未清洗 对应 DEV_EVENT_TRUCKNOTCLEAN_FOR_PRMA_INFO
  2270. #define EVENT_IVS_ROADOCCUPATION_BY_FOREIGNOBJECT 0x0000033B // 异物占道事件 (对应 DEV_EVENT_ROADOCCUPATION_BY_FOREIGNOBJECT_INFO )
  2271. #define EVENT_IVS_TRAFFICFLOW_OVER 0x0000033C // 车流量超过上限 ( 对应 DEV_EVENT_TRAFFICFLOW_OVER_INFO )
  2272. #define EVENT_IVS_GOODS_DETECTION 0x0000033D // 违规物品检测事件 ( 对应 DEV_EVENT_GOODS_DETECTION_INFO )
  2273. #define EVENT_IVS_CONVEYORBLOCK_DETECTION 0x0000033E // 传送带阻塞报警事件 (对应DEV_EVENT_CONVEYORBLOCK_DETECTION_INFO )
  2274. #define EVENT_IVS_ANYTHING_DETECT 0x0000033F // 全物体类型检测事件 ( 对应 DEV_EVENT_ANYTHING_DETECT_INFO )
  2275. #define EVENT_IVS_OBJECT_ABNORMAL 0x00000340 // 目标异常事件(对应 DEV_EVENT_OBJECT_ABNORMAL_INFO )
  2276. #define EVENT_IVS_DRIVE_ASSISTANT 0x00000341 // 辅助驾驶 (只用于规则配置)
  2277. #define EVENT_IVS_DRIVE_ACTION_ANAYLSE 0x00000342 // 驾驶行为分析 (只用于规则配置)
  2278. #define EVENT_IVS_DRIVE_HANDSOFF_STEERING_WHEEL 0x00000343 // 驾驶行为分析 手离开方向盘检测 (对应 DEV_EVENT_DRIVE_HANDSOFF_STEERING_WHEEL_INFO)
  2279. #define EVENT_IVS_DRIVE_BLIND_SPOT 0x00000344 // 驾驶行为分析 盲点检测 (对应 DEV_EVENT_BLIND_SPOT_DETECTION_INFO)
  2280. #define EVENT_IVS_ARTICLE_DETECTION 0x00000345 // 物品检测(只用于规则配置), 对应事件 EVENT_IVS_LEFTDETECTION 或者 EVENT_IVS_TAKENAWAYDETECTION
  2281. #define EVENT_IVS_TRAFFIC_PARKINGSPACE_MANUALSNAP 0x00000346 // 路侧停车位手动抓图 (对应 DEV_EVENT_PARKINGSPACE_MANUALSNAP_INFO )
  2282. #define EVENT_IVS_STREET_SUNCURE 0x00000347 // 沿街晾晒事件 (对应DEV_EVENT_STREET_SUNCURE_INFO )
  2283. #define EVENT_IVS_OUTDOOR_ADVERTISEMENT 0x00000348 // 户外广告事件 (对应DEV_EVENT_OUTDOOR_ADVERTISEMENT_INFO )
  2284. #define EVENT_IVS_HUDDLE_MATERIAL 0x00000349 // 乱堆物料检测事件 (对应DEV_EVENT_HUDDLE_MATERIAL_INFO )
  2285. #define EVENT_IVS_FIRE_LINE_DETECTION 0x0000034A // 进入消防通道检测 (对应 DEV_EVENT_FIRE_LINE_DETECTION_INFO)
  2286. #define EVENT_IVS_OCCUPY_BUS_LANE 0x0000034B // 违法占用公交车道(对应 DEV_EVENT_OCCUPY_BUS_LANE_INFO)
  2287. #define EVENT_IVS_DISTRESS_DETECTION 0x0000034C // 求救检测事件 ( 对应 DEV_EVENT_DISTRESS_DETECTION_INFO )
  2288. #define EVENT_IVS_TRAFFIC_ASSISTANT_WITHOUT_SAFEBELT 0x0000034D // 交通副驾驶未系安全带事件 (对应 DEV_EVENT_TRAFFIC_ASSISTANT_WITHOUT_SAFEBELT )
  2289. #define EVENT_IVS_TRAFFIC_SPEED_CHANGE_DETECTION 0x0000034E // 交通变速检测事件(对应 DEV_EVENT_TRAFFIC_SPEED_CHANGE_DETECTION_INFO )
  2290. #define EVENT_IVS_FOLLOW_CAR_ALARM 0x0000034F // 跟车报警(对应 DEV_EVENT_FOLLOW_CAR_ALARM_INFO)
  2291. #define EVENT_IVS_CONVEYER_BELT_DETECT 0x00000350 // 传送带检测, 仅用于规则配置, 对应规则结构体CFG_CONVEYER_BELT_DETECT_INFO, 对应事件
  2292. // EVENT_IVS_CONVEYER_BELT_BULK/EVENT_IVS_CONVEYER_BELT_NONLOAD/EVENT_IVS_CONVEYER_BELT_RUNOFF/EVENT_IVS_CONVEYORBLOCK_DETECTION/EVENT_IVS_CONVEYER_BELT_COAL_RATIO
  2293. #define EVENT_IVS_CONVEYER_BELT_BULK 0x00000351 // 传送带大块异物检测事件(对应DEV_EVENT_CONVEYER_BELT_BULK_INFO )
  2294. #define EVENT_IVS_CONVEYER_BELT_NONLOAD 0x00000352 // 传送带空载检测事件(对应DEV_EVENT_CONVEYER_BELT_NONLOAD_INFO )
  2295. #define EVENT_IVS_CONVEYER_BELT_RUNOFF 0x00000353 // 传送带跑偏检测事件(对应 DEV_EVENT_CONVEYER_BELT_RUNOFF_INFO )
  2296. #define EVENT_IVS_CONVEYER_BELT_COAL_RATIO 0x00000354 // 传送带煤量检测(对应DEV_EVENT_CONVEYER_BELT_COAL_RATIO_INFO )
  2297. #define EVENT_IVS_PACKBROKEN_DETECTION 0x00000355 // 包裹破损检测事件 ( 对应 DEV_EVENT_PACKBROKEN_DETECTION_INFO )
  2298. #define EVENT_IVS_PACKLAND_DETECTION 0x00000356 // 包裹着地检测事件 ( 对应 DEV_EVENT_PACKLAND_DETECTION_INFO )
  2299. #define EVENT_IVS_PACKOPEN_DETECTION 0x00000357 // 开箱验示检测事件 ( 对应 DEV_EVENT_PACKOPEN_DETECTION_INFO )
  2300. #define EVENT_IVS_TRAFFIC_TURN_RIGHT_NO_STOP 0x00000358 // 右转不停再起步事件 ( 对应 DEV_EVENT_TRAFFIC_TURN_RIGHT_NO_STOP_INFO )
  2301. #define EVENT_IVS_TRAFFIC_CROSSING_GUARDRAIL 0x00000359 // 跨越护栏事件 ( 对应 DEV_EVENT_TRAFFIC_CROSSING_GUARDRAIL_INFO )
  2302. #define EVENT_IVS_EMERGENCY 0x0000035A // 人为触发的紧急事件,一般处理是联动外部通讯功能请求帮助 (对应 DEV_EVENT_EMERGENCY_INFO)
  2303. #define EVENT_IVS_TRAFFIC_PARKING_STATISTICS 0x0000035B // 车位统计事件(对应 DEV_EVENT_TRAFFIC_PARKING_STATISTICS_INFO)
  2304. #define EVENT_IVS_HEAT_IMAGING_TEMPER 0x0000035C // 热成像测温点温度异常报警事件(对应结构体 DEV_EVENT_HEAT_IMAGING_TEMPER_INFO)
  2305. #define EVENT_IVS_SCALPER_ALARM 0x0000035D // 黄牛高频报警事件 (对应 DEV_EVENT_SCALPER_ALARM_INFO)
  2306. #define EVENT_IVS_ROAD_OBSTACLE_DETECTION 0x0000035E // 道路障碍物检测事件(对应 DEV_EVENT_ROAD_OBSTACLE_DETECTION_INFO)
  2307. #define EVENT_IVS_TRAFFIC_BRIGANDAGE_CAR 0x0000035F // 盗抢车辆事件(对应 DEV_EVENT_TRAFFIC_BRIGANDAGE_CAR_INFO)
  2308. #define EVENT_IVS_TRAFFIC_COUNTERFEIT_PLATE_CAR 0x00000360 // 假牌车辆事件(对应 DEV_EVENT_TRAFFIC_COUNTERFEIT_PLATE_CAR_INFO)
  2309. #define EVENT_IVS_TRAFFIC_FAKE_PLATE_CAR 0x00000361 // 套牌车辆事件(对应 DEV_EVENT_TRAFFIC_FAKE_PLATE_CAR_INFO)
  2310. #define EVENT_IVS_SEWAGE_DETECTION 0x00000362 // 排污检测事件(对应 DEV_EVENT_SEWAGE_DETECTION_INFO)
  2311. #define EVENT_IVS_WATERCOLOR_DETECTION 0x00000363 // 水体颜色事件(对应 DEV_EVENT_WATERCOLOR_DETECTION_INFO)
  2312. #define EVENT_IVS_TRAFFIC_MOTORCYCLE_FORBID 0x00000364 // 禁摩事件 (对应 DEV_EVENT_TRAFFIC_MOTORCYCLE_FORBID)
  2313. #define EVENT_IVS_VIDEO_NORMAL_DETECTION 0x00000365 // 视频正常事件,在视频诊断检测周期结束时,将未报错的诊断项上报正常事件 DEV_EVENT_VIDEO_NORMAL_DETECTION_INFO
  2314. #define EVENT_IVS_TRAFFIC_TURN_RIGHT_OVER_LINE 0x00000366 // 右转弯压线事件(对应 DEV_EVENT_TRAFFIC_TURN_RIGHT_OVER_LINE_INFO)
  2315. #define EVENT_IVS_MANUAL_ALARM 0x00000367 // 人工报警事件 (对应 DEV_EVENT_MANUAL_ALARM_INFO )
  2316. #define EVENT_IVS_TRAFFIC_DRIVE_ON_LINE 0x00000368 // 骑线行驶事件(对应DEV_EVENT_TRAFFIC_DRIVE_ON_LINE_INFO)
  2317. #define EVENT_IVS_OBJECT_PLACEMENT_DETECTION 0x00000369 // 物品放置检测事件(对应DEV_EVENT_OBJECT_PLACEMENT_DETECTION_INFO)
  2318. #define EVENT_IVS_OBJECT_REMOVAL_DETECTION 0x0000036A // 物品拿取检测事件(对应DEV_EVENT_OBJECT_REMOVAL_DETECTION_INFO)
  2319. #define EVENT_IVS_FIRE_DOOR_DETECTION 0x0000036B // 防火门检测事件(对应DEV_EVENT_FIRE_DOOR_DETECTION_INFO)
  2320. #define EVENT_IVS_FIRE_EXTINGUISHER_DETECTION 0x0000036C // 灭火器检测事件(对应DEV_EVENT_FIRE_EXTINGUISHER_DETECTION_INFO)
  2321. #define EVENT_IVS_DOOR_NOT_CLOSE 0x0000036D // 门未关事件(对应DEV_EVENT_DOOR_NOT_CLOSE_INFO)
  2322. #define EVENT_IVS_VEHICLE_PERIPHERAL_ALARM 0x0000036E // 车载外设异常报警事件(对应DEV_EVENT_VEHICLE_PERIPHERAL_ALARM_INFO)
  2323. #define EVENT_IVS_PARKING_LIMIT_DETECTION 0x0000036F // 车位阈值变化报警(对应DEV_EVENT_PARKING_LIMIT_DETECTION_INFO)
  2324. #define EVENT_IVS_PARKING_STATUS_CHANGE_DETECTION 0x00000370 // 车位状态变化报警(对应DEV_EVENT_PARKING_STATUS_CHANGE_DETECTION_INFO)
  2325. #define EVENT_IVS_DIALRECOGNITION 0x00000371 // 仪表检测事件(对应DEV_EVENT_DIALRECOGNITION_INFO)
  2326. #define EVENT_IVS_ELECTRICFAULT_DETECT 0x00000372 // 仪表类缺陷检测事件(对应DEV_EVENT_ELECTRICFAULTDETECT_INFO)
  2327. #define EVENT_IVS_TRASH_WITHOUT_COVER_DETECTION 0x00000373 // 垃圾桶未盖盖子检测事件(对应DEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO)
  2328. #define EVENT_IVS_SECURITY_INSPECTOR_LOOKAROUND 0x00000374 // 安检员左顾右盼报警事件(对应DEV_EVENT_SECURITY_INSPECTOR_LOOKAROUND_INFO)
  2329. #define EVENT_IVS_SECURITY_INSPECTOR_LOWERHEAD 0x00000375 // 安检员低头报警事件(对应DEV_EVENT_SECURITY_INSPECTOR_LOWERHEAD_INFO)
  2330. #define EVENT_IVS_SECURITY_INSPECTOR_TIRED 0x00000376 // 安检员疲劳报警事件(对应DEV_EVENT_SECURITY_INSPECTOR_TIRED_INFO)
  2331. #define EVENT_IVS_SECURITY_INSPECTOR_YAWN 0x00000377 // 安检员打哈欠报警事件(对应DEV_EVENT_SECURITY_INSPECTOR_YAWN_INFO)
  2332. #define EVENT_IVS_AIPICK_DETECT 0x00000378 // 智能拾音器语音识别事件(对应DEV_EVENT_AIPICK_DETECT_INFO)
  2333. #define EVENT_IVS_TRAFFIC_LIGHT_FAULT 0x00000379 // 交通灯故障报警事件(对应DEV_EVENT_TRAFFIC_LIGHT_FAULT_INFO)
  2334. #define EVENT_IVS_TRAFFIC_LANE_INDICATOR_FAULT 0x0000037A // 交通变道指示牌故障事件(对应DEV_EVENT_TRAFFIC_LANE_INDICATOR_FAULT_INFO)
  2335. #define EVENT_IVS_WATER_SPEED_DETECTION 0x0000037B // 水流速检测事件(对应 DEV_EVENT_WATER_SPEED_DETECTION_INFO)
  2336. #define EVENT_IVS_TRAFFIC_PARKING_BACKING 0x0000037C // 出入口倒车驶离事件(对应DEV_EVENT_TRAFFIC_PARKING_BACKING_INFO)
  2337. #define EVENT_IVS_VALVE_ABNORMAL 0x0000037D // 阀门异常检测事件(对应 DEV_EVENT_VALVE_ABNORMAL_INFO)
  2338. #define EVENT_IVS_DISCHARGE_PORT_ABNORMAL 0x0000037E // 出料口异常检测事件(对应 DEV_EVENT_DISCHARGE_PORT_ABNORMAL_INFO)
  2339. #define EVENT_IVS_TRAFFIC_MOTOR_STRICTLY_PROHIBIT_MANNED 0x0000037F //违法裁人事件(对应 DEV_EVENT_TRAFFIC_MOTOR_STRICTLY_PROHIBIT_MANNED_INFO)
  2340. #define EVENT_IVS_BARELAND_DETECTION 0x00000380 // 裸土检测事件(DEV_EVENT_BARELAND_DETECTION_INFO)
  2341. #define EVENT_IVS_CONSUMPTION_EVENT 0x00000381 // 消费事件(对应 DEV_EVENT_CONSUMPTION_EVENT_INFO)
  2342. #define EVENT_IVS_TOUCH_ELECTROSTATIC_BALL 0x00000382 // 触摸静电球事件(对应DEV_EVENT_TOUCH_ELECTROSTATIC_BALL_INFO)
  2343. #define EVENT_IVS_OXYGEN_CYLINDER_DETECTION 0x00000383 // 氧气瓶检测事件(对应DEV_EVENT_OXYGEN_CYLINDER_DETECTION_INFO)
  2344. #define EVENT_IVS_XRAY_UNPACKING_CHECK 0x00000384 // X光开包检查事件(对应DEV_EVENT_XRAY_UNPACKING_CHECK_INFO)
  2345. #define EVENT_IVS_GENERAL_ATTITUDE_DETECTION 0x00000385 // 姿态检测事件(对应 DEV_EVENT_GENERAL_ATTITUDE_DETECTION_INFO)
  2346. #define EVENT_IVS_SNAP_TASK 0x00000386 // 非接入式任务抓图事件(对应 DEV_EVENT_SNAP_TASK_INFO)
  2347. #define EVENT_IVS_TRAFFIC_CHANGE_LANE_CONTINUES 0x00000387 //机动车连续变道违法事件(对应 DEV_EVENT_TRAFFIC_CHANGE_LANE_CONTINUES_INFO)
  2348. #define EVENT_IVS_SPRAY_DETECT 0x00000388 //喷洒异常检测事件(对应 DEV_EVENT_SPRAY_DETECT_INFO)
  2349. #define EVENT_IVS_SILICON_FIRE_DETECTION 0x00000389 // 刺火检测事件(对应 DEV_EVENT_SILICON_FIRE_DETECTION_INFO)
  2350. #define EVENT_IVS_TRAFFIC_PARKING_ON_RIGHT_TURN_ROUTE 0x0000038A // 右转道违停(对应DEV_EVENT_TRAFFIC_PARKING_ON_RIGHT_TURN_ROUTE_INFO)
  2351. #define EVENT_IVS_PERSONNEL_COEXISTENCE 0x0000038B // 人员共存事件(对应 DEV_EVENT_PERSONNEL_COEXISTENCE_INFO)
  2352. #define EVENT_IVS_GENEAL_ATTITUDE 0x0000038C // 通用姿态行为事件(对应 DEV_EVENT_GENEAL_ATTITUDE_INFO)
  2353. #define EVENT_IVS_CASH_BOX_STATE 0x0000038D // 款箱状态事件(对应 DEV_EVENT_CASH_BOX_STATE_INFO)
  2354. #define EVENT_IVS_LEAKAGE_DETECTION 0x0000038E // 渗漏检测事件(对应 DEV_EVENT_LEAKAGE_DETECTION_INFO)
  2355. #define EVENT_IVS_LADLE_NO_DETECTION 0x0000038F // 钢包编号识别事件(对应 DEV_EVENT_LADLE_NO_DETECTION_INFO)
  2356. #define EVENT_IVS_FISHING_DETECTION 0x00000390 // 钓鱼检测事件(对应 DEV_EVENT_FISHING_DETECTION_INFO )
  2357. #define EVENT_IVS_ALARM_ACCESSORY 0x00000391 // 报警配件事件(对应 DEV_EVENT_ALARM_ACCESSORY_INFO)
  2358. #define EVENT_IVS_WIRELESS_DEV_LOWPOWER 0x00000392 // 无线设备低电量事件(对应 DEV_EVENT_WIRELESS_DEV_LOWPOWER_INFO)
  2359. #define EVENT_IVS_SENSOR_ABNORMAL 0x00000393 // 探测器异常报警(对应 DEV_EVENT_SENSOR_ABNORMAL_INFO)
  2360. #define EVENT_IVS_MODULE_LOST 0x00000394 // 模块断线报警事件(对应 DEV_EVENT_MODULE_LOST_INFO)
  2361. #define EVENT_IVS_CROWD_LEVEL_DETECTION 0x00000395 // 拥挤程度检测事件(对应 DEV_EVENT_CROWD_LEVEL_DETECTION_INFO)
  2362. #define EVENT_IVS_REGION_DEFENSE_DETECTION 0x00000396 // 区域看防事件(对应 DEV_EVENT_REGION_DEFENSE_DETECTION_INFO)
  2363. #define EVENT_IVS_DUSTBIN_DETECTION 0x00000397 // 垃圾桶检测事件(对应 DEV_EVENT_DUSTBIN_DETECTION_INFO)
  2364. #define EVENT_IVS_DIALRECOGNITION_EX 0x00000398 // 仪表检测事件(对应DEV_EVENT_DIALRECOGNITION_INFO)
  2365. #define EVENT_IVS_OCR_DETECTION 0x00000399 // OCR检测事件(对应 DEV_EVENT_OCR_DETECTION_INFO)
  2366. #define EVENT_IVS_ROAD_CONDITIONS_DETECTION 0x0000039A // 路面检测事件(对应DEV_EVENT_ROAD_CONDITIONS_DETECTION_INFO)
  2367. #define EVENT_IVS_NEAR_OBJECT_DETECT 0x0000039B // 近物体检测事件(对应DEV_EVENT_NEAR_OBJECT_DETECT_INFO)
  2368. #define EVENT_IVS_OBJECT_NUM_DETECTION 0x0000039C // 区域内计数事件(对应 DEV_EVENT_OBJECT_NUM_DETECTION_INFO, 注意该事件不支持单独使用,仅作为“开放智能事件(EVENT_IVS_OPEN_INTELLI)”中的一种规则)
  2369. #define EVENT_IVS_OPEN_INTELLI 0x0000039D // 开放智能事件(对应 DEV_EVENT_OPEN_INTELLI_INFO)
  2370. #define EVENT_IVS_CRANE_LOAD_STAY_DETECTION 0x0000039E // 天车吊物滞留事件(对应 DEV_EVENT_CRANE_LOAD_STAY_DETECTION_INFO)
  2371. #define EVENT_IVS_TRAFFIC_DRIVER_NO_BELT 0x00000400 // 未系安全带报警事件(对应DEV_EVENT_TRAFFIC_DRIVER_NO_BELT_INFO)
  2372. #define EVENT_IVS_RIDING_MOTOR_CYCLE 0x00000401 // 摩托车骑跨检测事件(对应DEV_EVENT_RIDING_MOTOR_CYCLE_INFO)
  2373. #define EVENT_IVS_CONVEYOR_ARTICLE_TYPE 0x00000402 // 传送带异物检测事件(对应DEV_EVENT_CONVEYOR_ARTICLE_TYPE_INFO)
  2374. #define EVENT_IVS_BLIND_ALARM 0x00000403 // 盲区报警事件(对应 DEV_EVENT_BLIND_ALARM_INFO)
  2375. #define EVENT_IVS_TRAFFIC_SPEED_DROP_SHARPLY 0x00000404 // 车辆速度剧减事件(对应 DEV_EVENT_TRAFFIC_SPEED_DROP_SHARPLY_INFO)
  2376. #define EVENT_IVS_GESTURE_DETECTION 0x00000405 // 手势检测事件(对应 DEV_EVENT_GESTURE_DETECTION_INFO)
  2377. #define EVENT_IVS_HEAD_LIFT_DETECTION 0x00000406 // 抬头检测事件(对应 DEV_EVENT_HEAD_LIFT_DETECTION_INFO)
  2378. #define EVENT_IVS_DRAINING_DETECTION 0x00000407 // 排水检测识别事件(对应 DEV_EVENT_DRAINING_DETECTION_INFO)
  2379. #define EVENT_IVS_TRAFFIC_CROSSING_SPEEDY 0x00000408 // 斑马线不减速事件 (对应 DEV_EVENT_TRAFFIC_CROSSING_SPEEDY_INFO)
  2380. #define EVENT_IVS_TRAFFIC_LARGECAR_NO_STOP 0x00000409 // 大车右转不停车事件(对应 DEV_EVENT_TRAFFIC_LARGECAR_NO_STOP_INFO)
  2381. #define EVENT_IVS_TRAFFIC_OVERTAKE_ONRIGHT 0x0000040A // 右侧超车事件(对应 DEV_EVENT_TRAFFIC_OVERTAKE_ONRIGHT_INFO)
  2382. #define EVENT_IVS_TRAFFIC_TRUCK_OCCUPIED 0x0000040B // 大车占道事件(对应 DEV_EVENT_TRAFFIC_TRUCK_OCCUPIED_INFO)
  2383. #define EVENT_IVS_TRAFFIC_SMALL_DISPLACEMENT 0x0000040C // 车辆缓行事件(对应 DEV_EVENT_TRAFFIC_SMALL_DISPLACEMENT_INFO)
  2384. #define EVENT_IVS_GREEN_BELT 0x0000040D // 绿化带报警事件(对应 DEV_EVENT_GREEN_BELT_ALARM_INFO)
  2385. #define EVENT_IVS_ROAD_DAMAGE 0x0000040E // 道路损坏报警事件(对应 DEV_EVENT_ROAD_DAMAGE_ALARM_INFO)
  2386. #define EVENT_IVS_TRAFFIC_SERPENTINE_CHANGE_LANE 0x0000040F // 蛇形变道事件(对应 DEV_EVENT_TRAFFIC_SERPENTINE_CHANGE_LANE_INFO)
  2387. #define EVENT_IVS_PERSON_TRANS_DETECTION 0x00000410 // 人员传输检测事件(对应 DEV_EVENT_IVS_PERSON_TRANS_DETECTION_INFO)
  2388. #define EVENT_IVS_HUMAN_ANIMAL_COEXISTENCE 0x00000411 // 人和动物检测事件(对应 DEV_EVENT_HUMAN_ANIMAL_COEXISTENCE_INFO)
  2389. #define EVENT_IVS_TANK_CAPACITY_DETECTION 0x00000412 // 贮柜储量检测事件(对应 DEV_EVENT_IVS_TANK_CAPACITY_DETECTION_INFO)
  2390. #define EVENT_IVS_TANK_DUMPING_DETECTION 0x00000413 // 周转箱倒料不干净检测事件(对应 DEV_EVENT_IVS_TANK_DUMPING_DETECTION_INFO)
  2391. #define EVENT_IVS_TANK_OVERFLOW_DETECTION 0x00000414 // 尘棒箱满溢检测事件(对应 DEV_EVENT_IVS_TANK_OVERFLOW_DETECTION_INFO)
  2392. #define EVENT_IVS_DUSTBIN_RETREAT 0x00000416 // 垃圾桶撤离检测事件(对应 NET_DEV_EVENT_DUSTBIN_RETREAT_INFO)
  2393. #define EVENT_IVS_SCRAPSTEEL_DETECT 0x00000417 // 废钢检测事件(对应 NET_DEV_EVENT_SCRAPSTEEL_DETECT_INFO)
  2394. #define EVENT_IVS_SIGNAL_LIGHT_ON_DETECTION 0x00000418 // 信号灯同亮检测事件(对应 NET_DEV_EVENT_SIGNAL_LIGHT_ON_DETECTION_INFO)
  2395. #define EVENT_IVS_SIGNAL_LIGHT_FLASHYELLOW_DETECTION 0x00000419 // 单色灯黄闪检测事件(对应 NET_DEV_EVENT_SIGNAL_LIGHT_FLASHYELLOW_DETECTION_INFO)
  2396. #define EVENT_IVS_SIGNAL_LIGHT_NOBRIGHT_DETECTION 0x0000041A // 信号灯亮度不足检测事件(对应 NET_DEV_EVENT_SIGNAL_LIGHT_NOBRIGHT_DETECTION_INFO)
  2397. #define EVENT_IVS_SIGNAL_LIGHT_BLOCKING_DETECTION 0x0000041B // 信号灯遮挡检测事件(对应 NET_DEV_EVENT_SIGNAL_LIGHT_BLOCKING_DETECTION_INFO)
  2398. #define EVENT_IVS_SIGNAL_LIGHT_ALWAYSON_DETECTION 0x0000041C // 单色灯常亮检测事件(对应 NET_DEV_EVENT_SIGNAL_LIGHT_ALWAYSON_DETECTION_INFO)
  2399. #define EVENT_IVS_LEDSCREEN_NOTLIGHTUP_DETECTION 0x0000041D // LED屏不亮检测事件(对应 NET_DEV_EVENT_LEDSCREEN_NOTLIGHTUP_DETECTION_INFO)
  2400. #define EVENT_IVS_SIGNAL_LIGHTOFF_DETECTION 0x0000041E // 信号灯不亮检测事件(对应 NET_DEV_EVENT_SIGNAL_LIGHTOFF_DETECTION_INFO)
  2401. #define EVENT_IVS_PIC_COMPARE_DETECTION 0x0000041F // 图片比对不上报警事件(对应 NET_DEV_EVENT_PIC_COMPARE_DETECTION_INFO)
  2402. #define EVENT_IVS_CHANGE_DETECTION 0x00000420 // 差异检测事件(对应 NET_DEV_EVENT_CHANGE_DETECTION_INFO)
  2403. #define EVENT_IVS_LINK_AGE_RADAR_ALARM 0x00000421 // 联动事件(作为细节事件、联动球机时发送)(对应 NET_DEV_EVENT_LINK_AGE_RADAR_ALARM_INFO)
  2404. #define EVENT_IVS_VEHICLE_STATE 0x00000422 // 车辆状态事件(对应 NET_DEV_EVENT_VEHICLE_STATE_INFO)
  2405. #define EVENT_IVS_PASS_WINDOW_DELIVERY 0x00000423 // 隔窗递物检测事件(对应 NET_DEV_EVENT_PASS_WINDOW_DELIVERY_INFO)
  2406. #define EVENT_IVS_DOOR_STATE_DETECTION 0x00000424 // 开关门检测事件(对应 NET_DEV_EVENT_DOOR_STATE_DETECTION_INFO)
  2407. #define EVENT_IVS_WASTE_MIXED_INVEST 0x00000425 // 垃圾混投事件(对应 NET_DEV_EVENT_WASTE_MIXED_INVEST_INFO)
  2408. #define EVENT_IVS_UNBROKEN_TRASHBAG 0x00000426 // 垃圾袋未破袋检测事件(对应 NET_DEV_EVENT_UNBROKEN_TRASHBAG_INFO)
  2409. #define EVENT_IVS_PERSON_CARRY_TRASHBAG 0x00000427 // 人员拎袋报警事件(对应 NET_DEV_EVENT_PERSON_CARRY_TRASHBAG_INFO)
  2410. #define EVENT_IVS_UNATTENDED_DETENTION 0x00000428 // 无人值守检测事件(对应 NET_DEV_EVENT_UNATTENDED_DETENTION_INFO)
  2411. #define EVENT_IVS_DROP_DETECTION 0x00000429 // 滴漏检测事件(对应 NET_DEV_EVENT_DROP_DETECTION_INFO)
  2412. #define EVENT_IVS_TEMPERATURE_ALARM 0x0000042A // 温度报警事件(对应 NET_DEV_EVENT_TEMPERATURE_ALARM_INFO)
  2413. #define EVENT_IVS_HUMIDITY_ALARM 0x0000042B // 湿度报警事件(对应 NET_DEV_EVENT_HUMIDITY_ALARM_INFO)
  2414. #define EVENT_IVS_POWER_SWITCHER_ALARM 0x0000042C // 电量报警事件(对应 NET_DEV_EVENT_POWER_SWITCHER_ALARM_INFO)
  2415. #define EVENT_IVS_GAS_TANK_DETECTION 0x0000042D // 煤气罐检测事件(对应 NET_DEV_EVENT_GAS_TANK_DETECTION_INFO)
  2416. #define EVENT_IVS_TRAFFIC_OCCUPYING_THEPATH 0x0000042E // 占道事件(对应 NET_EVENT_TRAFFIC_OCCUPYING_THEPATH_INFO)
  2417. #define EVENT_IVS_ILLEGAL_CARRIAGE 0x0000042F // 非法运输事件(对应 NET_DEV_EVENT_ILLEGAL_CARRIAGE_INFO)
  2418. #define EVENT_IVS_SILICON_FIREPUTTER_DETECTION 0x00000430 // 刺火推杆检测事件(对应 NET_EVENT_SILICON_FIREPUTTER_DETECTION_INFO)
  2419. #define EVENT_IVS_ALARM_METHANE_ALARM 0x00000431 // 甲烷报警事件(对应结构体 NET_DEV_EVENT_METHANE_ALARM_INFO)
  2420. #define EVENT_IVS_ALARM_TORPEDO_DETECT 0x00000432 // 鱼雷罐报警事件(对应结构体 NET_DEV_EVENT_TORPEDO_DETECT_ALARM_INFO)
  2421. #define EVENT_IVS_FINANCIAL_CABINET_ALARM_EVENT 0x00000433 // 金融业务库异常事件(对应 NET_DEV_EVENT_FINANCIAL_CABINET_ALARM_EVENT_INFO)
  2422. #define EVENT_IVS_SCRAPSTEEL_DANGER_DETECT 0x00000434 // 废钢危险品事件(对应 NET_DEV_EVENT_SCRAPSTEEL_DANGER_DETECT_INFO)
  2423. #define EVENT_IVS_TRAFFIC_RUNASTOP_SIGN 0x00000435 // 闯行停车标志事件(对应 NET_DEV_EVENT_TRAFFIC_RUNASTOP_SIGN_INFO)
  2424. #define EVENT_IVS_IRCUT_MODESWITCH_ALARM_EVENT 0x00000436 // IRCUT模式切换事件(对应 NET_DEV_EVENT_IRCUT_MODESWITCH_ALARM_INFO)
  2425. #define EVENT_IVS_TRAFFIC_VEHICLE_OVERLOAD 0x00000437 // 超员检测事件(对应 NET_DEV_EVENT_TRAFFIC_VEHICLE_OVERLOAD_INFO)
  2426. #define EVENT_IVS_REMOTE_APPROVAL_ALARM 0x00000438 // 金融远程审批事件(对应 NET_DEV_EVENT_REMOTE_APPROVAL_ALARM_INFO)
  2427. #define EVENT_IVS_ANTI_COUNTERFEIT 0x00000439 // 防造假检测事件(对应 NET_DEV_EVENT_ANTI_COUNTERFEIT_INFO)
  2428. #define EVENT_IVS_TRAFFIC_SPEED_DIFFPREWARNING 0x0000043A // 速度差预警事件(对应 NET_DEV_EVENT_TRAFFIC_SPEED_DIFFPREWARNING_INFO)
  2429. #define EVENT_IVS_TRAFFIC_DRIVER_IDENTIFIED 0x0000043B // 驾驶员比对成功通知事件(对应 NET_DEV_EVENT_TRAFFIC_DRIVER_IDENTIFIED_INFO)
  2430. #define EVENT_IVS_TRAFFIC_QUEUE_OVERFLOW 0x0000043C // 排队溢出事件(对应 NET_DEV_EVENT_TRAFFIC_QUEUE_OVERFLOW_INFO)
  2431. #define EVENT_IVS_TRAFFIC_QUEUE_TIMEOUT 0x0000043D // 排队超限事件(对应 NET_DEV_EVENT_TRAFFIC_QUEUE_TIMEOUT_INFO)
  2432. #define EVENT_IVS_RAILING_PASS_DETECTION 0x0000043E // 隔栏传物事件(对应结构体 NET_DEV_EVENT_RAILING_PASS_DETECTION_INFO)
  2433. #define EVENT_IVS_MULTI_MAN_NUM_DETECTION 0x0000043F // 讯问会见室人数报警事件(对应 NET_DEV_EVENT_MULTI_MAN_NUM_DETECTION_INFO)
  2434. #define EVENT_IVS_OBJECT_QUANTITY_DETECTION 0x00000440 // 目标类型和数量检测报警事件(对应 NET_DEV_EVENT_OBJECT_QUANTITY_DETECTION_INFO)
  2435. #define EVENT_IVS_USERMANAGER_FOR_TWSDK 0x00000441 // 用户信息上报事件(对应 NET_DEV_EVENT_USERMANAGER_FOR_TWSDK_INFO)
  2436. #define EVENT_IVS_DRIVE_ASSISTANT_ALARM 0x00000442 // 驱动辅助报警(对应 NET_DEV_EVENT_DRIVE_ASSISTANT_ALARM_INFO)
  2437. #define EVENT_IVS_CROSSLINE_STAT 0x00000443 // 绊线计数事件(对应 NET_DEV_EVENT_CROSSLINE_STAT_INFO),(注意该事件暂时不支持单独使用,仅作为“开放智能事件(EVENT_IVS_OPEN_INTELLI)”中的一种规则))
  2438. #define EVENT_IVS_REGIONNUM_STAT 0x00000444 // 域内计数事件(对应 NET_DEV_EVENT_REGIONNUM_STAT_INFO),(注意该事件暂时不支持单独使用,仅作为“开放智能事件(EVENT_IVS_OPEN_INTELLI)”中的一种规则))
  2439. #define EVENT_IVS_FISH_STATE_DETECTION 0x00000445 // 鱼类状态检测报警(对应 NET_DEV_EVENT_FISH_STATE_DETECTION_INFO)
  2440. #define EVENT_IVS_CONVEYOR_NTH_TO_STH_DETECTION 0x00000446 // 传送带载体从无到有检测报警事件(对应 NET_DEV_EVENT_CONVEYOR_NTH_TO_STH_DETECTION_INFO)
  2441. #define EVENT_IVS_POSITION_SNAP 0x00000447 // 按位置抓图事件(对应 NET_DEV_EVENT_POSITION_SNAP_INFO)
  2442. #define EVENT_IVS_DRIVER_MISMATCH_CERTIFICATE 0x00000448 // 司机人证不符事件(对应 NET_DEV_EVENT_DRIVER_MISMATCH_CERTIFICATE_INFO)
  2443. #define EVENT_IVS_DRIVER_MISMATCH_VEHICLE 0x00000449 // 司机人车不符事件(对应 NET_DEV_EVENT_DRIVER_MISMATCH_VEHICLE_INFO)
  2444. #define EVENT_IVS_CERTIFICATE_MISMATCH_VEHICLE 0x0000044A // 司机证车不符事件(对应 NET_DEV_EVENT_CERTIFICATE_MISMATCH_VEHICLE_INFO)
  2445. #define EVENI_IVS_XRAY_DETECT_PACKAGE 0x0000044B // X光机检测包裹事件 (对应 NET_EVENT_XRAY_DETECT_PACKAGE_INFO)
  2446. #define EVENT_IVS_CONVEYOR_STH_TO_NTH_DETECTION 0x0000044C // 传送带载体从有到无检测报警事件(对应 NET_DEV_EVENT_CONVEYOR_STH_TO_NTH_DETECTION_INFO)
  2447. #define EVENT_IVS_CO_LOW_ALARM 0x0000044D // CO低浓度报警事件(对应 NET_DEV_EVENT_CO_LOW_ALARM_INFO)
  2448. #define EVENT_IVS_CO_HIGH_ALARM 0x0000044E // CO高浓度报警事件(对应 NET_DEV_EVENT_CO_HIGH_ALARM_INFO)
  2449. #define EVENT_IVS_TIMECHANGE_FOR_TWSDK 0x0000044F // 系统时间被修改报警事件(对应 NET_DEV_EVENT_TIMECHANGE_FOR_TWSDK_INFO)
  2450. #define EVENT_IVS_CIGARETTE_CASE_DETECTION 0x00000450 // 烟盒检测事件(对应 NET_DEV_EVENT_CIGARETTE_CASE_DETECTION_INFO)
  2451. #define EVENT_IVS_CONVEYOR_BELT_STATUS 0x00000451 // 传送带运动状态检测报警事件(对应 NET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO)
  2452. #define EVENT_IVS_HOSPITAL_TALK_CONTROL 0x00000452 // 设备上报谈话事件(对应 NET_DEV_EVENT_HOSPITAL_TALK_CONTROL_INFO)
  2453. #define EVENT_IVS_PASSENGER_FLOW_ALARM 0x00000453 // 校车上下客事件(对应 NET_DEV_EVENT_PASSENGER_FLOW_ALARM_INFO)
  2454. #define EVENT_IVS_SCHOOL_BUS_SWIPE_CARD 0x00000454 // 学生刷卡事件(对应 NET_DEV_EVENT_SCHOOL_BUS_SWIPE_CARD_INFO)
  2455. #define EVENT_IVS_COLD_SPOT_WARNING 0x00000455 // 冷点报警 (对应 NET_DEV_EVENT_COLD_SPOT_WARNING_INFO)
  2456. #define EVENT_IVS_TRAFFIC_PLATE_ABNORMAL 0x00000456 // 车牌异常检测(对应 NET_DEV_EVENT_TRAFFIC_PLATE_ABNORMAL_INFO)
  2457. #define EVENT_IVS_TRAFFIC_ACCELERATION_RAPID 0x00000457 // 急加速事件(对应 NET_DEV_EVENT_TRAFFIC_ACCELERATION_RAPID_INFO)
  2458. #define EVENT_IVS_TRAFFIC_TURN_SHARP 0x00000458 // 急转弯事件(对应 NET_DEV_EVENT_TRAFFIC_TURN_SHARP_INFO)
  2459. #define EVENT_IVS_GARBAGE_PLASTICBAG 0x00000459 // 打包垃圾检测事件(对应 NET_DEV_EVENT_GARBAGE_PLASTICBAG_INFO)
  2460. #define EVENT_IVS_DOOR_STATUS_FOR_BOX 0x0000045A // 智能柜门状态上报 (对应 NET_DEV_EVENT_DOOR_STATUS_FOR_BOX_INFO)
  2461. #define EVENT_IVS_COLLISION_CONFLICT 0x0000045B // 碰撞冲突事件(对应 NET_DEV_EVENT_COLLISION_CONFLICT_INFO)
  2462. #define EVENT_IVS_PHOTOGRAPH_DETECTION 0x0000045C // 拍摄行为检测事件(对应 NET_DEV_EVENT_PHOTOGRAPH_DETECTION_INFO)
  2463. #define EVENT_IVS_REFUELING_GUN_PERSON 0x0000045D // 提枪识别动作事件(对应 NET_DEV_EVENT_REFUELING_GUN_PERSON_INFO)
  2464. // 消防类报警事件
  2465. #define EVENT_HY_FIRE_DETECTION 0x01000001 // 消防类火焰检测事件(对应DEV_EVENT_HY_FIRE_DETECTION_INFO)
  2466. #define EVENT_HY_SMOG_DETECTION 0x01000002 // 消防类烟雾检测事件(对应DEV_EVENT_HY_SMOG_DETECTION_INFO)
  2467. #define EVENT_HY_INFIRE_PASSAGE_DETECTION 0x01000003 // 消防类疏散通道阻塞事件(对应DEV_EVENT_HY_INFIRE_PASSAGE_DETECTION_INFO)
  2468. #define EVENT_HY_OUTFIRE_PASSAGE_DETECTION 0x01000004 // 消防类消防车通道占用/消防登高面占用事件(对应DEV_EVENT_HY_OUTFIRE_PASSAGE_DETECTION_INFO)
  2469. #define EVENT_HY_MAN_LEAVING_DETECTION 0x01000005 // 消防类消控室人员离岗事件(对应DEV_EVENT_HY_MAN_LEAVING_DETECTION_INFO)
  2470. //设备存储点类型,设备的盘组概念
  2471. #define STOR_POINT_READ_WRITE 0x00001001 // 读写组,原型为"ReadWrite*","ReadWrite*",代表读写组, 中间的"*"可以为空,可以为一个数字
  2472. #define STOR_POINT_READ_ONLY 0x00001002 // 只读组
  2473. #define STOR_POINT_REDUNDANT 0x00001003 // 冗余组,和"ReadWirte"组一个冗余副本
  2474. #define STOR_POINT_BACKUP 0x00001004 // 备份组,数据写满后停止,不会循环覆盖
  2475. #define STOR_POINT_DRAW_FRAME 0x00001005 // 历史抽帧组,实时录像在指定时间后,抽帧并写入该组
  2476. #define STOR_POINT_NAS_FTP 0x00001006 // 远程网络存储组(协议类型FTP),可能会有多个
  2477. #define STOR_POINT_NAS_NFS 0x00001007 // 远程网络存储组(协议类型NFS),可能会有多个
  2478. #define STOR_POINT_NAS_SMB 0x00001008 // 远程网络存储组(协议类型SMB),可能会有多个
  2479. #define STOR_POINT_NAS_ISCSI 0x00001009 // 远程网络存储组(协议类型ISCSI),可能会有多个
  2480. #define STOR_POINT_NAS_CLOUD 0x0000100A // 远程网络存储组(协议类型Cloud),可能会有多个
  2481. //流量统计事件使用宏
  2482. #define FLOWSTAT_ADDR_NAME 16 //上下行地点名长
  2483. //针对接口CLIENT_OperateTrafficList各类字符串长度定义
  2484. #define DH_TARFFIC_NAME_LEN 16
  2485. #define DH_CREATE_TIME_LEN 32
  2486. #define DH_AUTHORITY_NUM 16
  2487. // 错误类型代号,对应CLIENT_GetLastError接口的返回值
  2488. #define _EC(x) (0x80000000|x)
  2489. #define NET_NOERROR 0 // 没有错误
  2490. #define NET_ERROR -1 // 未知错误
  2491. #define NET_SYSTEM_ERROR _EC(1) // 系统出错
  2492. #define NET_NETWORK_ERROR _EC(2) // 网络错误,可能是因为网络超时
  2493. #define NET_DEV_VER_NOMATCH _EC(3) // 设备协议不匹配
  2494. #define NET_INVALID_HANDLE _EC(4) // 句柄无效
  2495. #define NET_OPEN_CHANNEL_ERROR _EC(5) // 打开通道失败
  2496. #define NET_CLOSE_CHANNEL_ERROR _EC(6) // 关闭通道失败
  2497. #define NET_ILLEGAL_PARAM _EC(7) // 用户参数不合法
  2498. #define NET_SDK_INIT_ERROR _EC(8) // SDK初始化出错
  2499. #define NET_SDK_UNINIT_ERROR _EC(9) // SDK清理出错
  2500. #define NET_RENDER_OPEN_ERROR _EC(10) // 申请render资源出错
  2501. #define NET_DEC_OPEN_ERROR _EC(11) // 打开解码库出错
  2502. #define NET_DEC_CLOSE_ERROR _EC(12) // 关闭解码库出错
  2503. #define NET_MULTIPLAY_NOCHANNEL _EC(13) // 多画面预览中检测到通道数为0
  2504. #define NET_TALK_INIT_ERROR _EC(14) // 录音库初始化失败
  2505. #define NET_TALK_NOT_INIT _EC(15) // 录音库未经初始化
  2506. #define NET_TALK_SENDDATA_ERROR _EC(16) // 发送音频数据出错
  2507. #define NET_REAL_ALREADY_SAVING _EC(17) // 实时数据已经处于保存状态
  2508. #define NET_NOT_SAVING _EC(18) // 未保存实时数据
  2509. #define NET_OPEN_FILE_ERROR _EC(19) // 打开文件出错
  2510. #define NET_PTZ_SET_TIMER_ERROR _EC(20) // 启动云台控制定时器失败
  2511. #define NET_RETURN_DATA_ERROR _EC(21) // 对返回数据的校验出错
  2512. #define NET_INSUFFICIENT_BUFFER _EC(22) // 没有足够的缓存
  2513. #define NET_NOT_SUPPORTED _EC(23) // 当前SDK未支持该功能
  2514. #define NET_NO_RECORD_FOUND _EC(24) // 查询不到录象
  2515. #define NET_NOT_AUTHORIZED _EC(25) // 无操作权限
  2516. #define NET_NOT_NOW _EC(26) // 暂时无法执行
  2517. #define NET_NO_TALK_CHANNEL _EC(27) // 未发现对讲通道
  2518. #define NET_NO_AUDIO _EC(28) // 未发现音频
  2519. #define NET_NO_INIT _EC(29) // 网络SDK未经初始化
  2520. #define NET_DOWNLOAD_END _EC(30) // 下载已结束
  2521. #define NET_EMPTY_LIST _EC(31) // 查询结果为空
  2522. #define NET_ERROR_GETCFG_SYSATTR _EC(32) // 获取系统属性配置失败
  2523. #define NET_ERROR_GETCFG_SERIAL _EC(33) // 获取序列号失败
  2524. #define NET_ERROR_GETCFG_GENERAL _EC(34) // 获取常规属性失败
  2525. #define NET_ERROR_GETCFG_DSPCAP _EC(35) // 获取DSP能力描述失败
  2526. #define NET_ERROR_GETCFG_NETCFG _EC(36) // 获取网络配置失败
  2527. #define NET_ERROR_GETCFG_CHANNAME _EC(37) // 获取通道名称失败
  2528. #define NET_ERROR_GETCFG_VIDEO _EC(38) // 获取视频属性失败
  2529. #define NET_ERROR_GETCFG_RECORD _EC(39) // 获取录象配置失败
  2530. #define NET_ERROR_GETCFG_PRONAME _EC(40) // 获取解码器协议名称失败
  2531. #define NET_ERROR_GETCFG_FUNCNAME _EC(41) // 获取232串口功能名称失败
  2532. #define NET_ERROR_GETCFG_485DECODER _EC(42) // 获取解码器属性失败
  2533. #define NET_ERROR_GETCFG_232COM _EC(43) // 获取232串口配置失败
  2534. #define NET_ERROR_GETCFG_ALARMIN _EC(44) // 获取外部报警输入配置失败
  2535. #define NET_ERROR_GETCFG_ALARMDET _EC(45) // 获取动态检测报警失败
  2536. #define NET_ERROR_GETCFG_SYSTIME _EC(46) // 获取设备时间失败
  2537. #define NET_ERROR_GETCFG_PREVIEW _EC(47) // 获取预览参数失败
  2538. #define NET_ERROR_GETCFG_AUTOMT _EC(48) // 获取自动维护配置失败
  2539. #define NET_ERROR_GETCFG_VIDEOMTRX _EC(49) // 获取视频矩阵配置失败
  2540. #define NET_ERROR_GETCFG_COVER _EC(50) // 获取区域遮挡配置失败
  2541. #define NET_ERROR_GETCFG_WATERMAKE _EC(51) // 获取图象水印配置失败
  2542. #define NET_ERROR_GETCFG_MULTICAST _EC(52) // 获取配置失败位置:组播端口按通道配置
  2543. #define NET_ERROR_SETCFG_GENERAL _EC(55) // 修改常规属性失败
  2544. #define NET_ERROR_SETCFG_NETCFG _EC(56) // 修改网络配置失败
  2545. #define NET_ERROR_SETCFG_CHANNAME _EC(57) // 修改通道名称失败
  2546. #define NET_ERROR_SETCFG_VIDEO _EC(58) // 修改视频属性失败
  2547. #define NET_ERROR_SETCFG_RECORD _EC(59) // 修改录象配置失败
  2548. #define NET_ERROR_SETCFG_485DECODER _EC(60) // 修改解码器属性失败
  2549. #define NET_ERROR_SETCFG_232COM _EC(61) // 修改232串口配置失败
  2550. #define NET_ERROR_SETCFG_ALARMIN _EC(62) // 修改外部输入报警配置失败
  2551. #define NET_ERROR_SETCFG_ALARMDET _EC(63) // 修改动态检测报警配置失败
  2552. #define NET_ERROR_SETCFG_SYSTIME _EC(64) // 修改设备时间失败
  2553. #define NET_ERROR_SETCFG_PREVIEW _EC(65) // 修改预览参数失败
  2554. #define NET_ERROR_SETCFG_AUTOMT _EC(66) // 修改自动维护配置失败
  2555. #define NET_ERROR_SETCFG_VIDEOMTRX _EC(67) // 修改视频矩阵配置失败
  2556. #define NET_ERROR_SETCFG_COVER _EC(68) // 修改区域遮挡配置失败
  2557. #define NET_ERROR_SETCFG_WATERMAKE _EC(69) // 修改图象水印配置失败
  2558. #define NET_ERROR_SETCFG_WLAN _EC(70) // 修改无线网络信息失败
  2559. #define NET_ERROR_SETCFG_WLANDEV _EC(71) // 选择无线网络设备失败
  2560. #define NET_ERROR_SETCFG_REGISTER _EC(72) // 修改主动注册参数配置失败
  2561. #define NET_ERROR_SETCFG_CAMERA _EC(73) // 修改摄像头属性配置失败
  2562. #define NET_ERROR_SETCFG_INFRARED _EC(74) // 修改红外报警配置失败
  2563. #define NET_ERROR_SETCFG_SOUNDALARM _EC(75) // 修改音频报警配置失败
  2564. #define NET_ERROR_SETCFG_STORAGE _EC(76) // 修改存储位置配置失败
  2565. #define NET_AUDIOENCODE_NOTINIT _EC(77) // 音频编码接口没有成功初始化
  2566. #define NET_DATA_TOOLONGH _EC(78) // 数据过长
  2567. #define NET_UNSUPPORTED _EC(79) // 设备不支持该操作
  2568. #define NET_DEVICE_BUSY _EC(80) // 设备资源不足
  2569. #define NET_SERVER_STARTED _EC(81) // 服务器已经启动
  2570. #define NET_SERVER_STOPPED _EC(82) // 服务器尚未成功启动
  2571. #define NET_LISTER_INCORRECT_SERIAL _EC(83) // 输入序列号有误
  2572. #define NET_QUERY_DISKINFO_FAILED _EC(84) // 获取硬盘信息失败
  2573. #define NET_ERROR_GETCFG_SESSION _EC(85) // 获取连接Session信息
  2574. #define NET_USER_FLASEPWD_TRYTIME _EC(86) // 输入密码错误超过限制次数
  2575. #define NET_LOGIN_ERROR_PASSWORD_EXPIRED _EC(99) // 密码过期
  2576. #define NET_LOGIN_ERROR_PASSWORD _EC(100) // 密码不正确
  2577. #define NET_LOGIN_ERROR_USER _EC(101) // 帐户不存在
  2578. #define NET_LOGIN_ERROR_TIMEOUT _EC(102) // 等待登录返回超时
  2579. #define NET_LOGIN_ERROR_RELOGGIN _EC(103) // 帐号已登录
  2580. #define NET_LOGIN_ERROR_LOCKED _EC(104) // 帐号已被锁定
  2581. #define NET_LOGIN_ERROR_BLACKLIST _EC(105) // 帐号已被列为禁止名单
  2582. #define NET_LOGIN_ERROR_BUSY _EC(106) // 资源不足,系统忙
  2583. #define NET_LOGIN_ERROR_CONNECT _EC(107) // 登录设备超时,请检查网络并重试
  2584. #define NET_LOGIN_ERROR_NETWORK _EC(108) // 网络连接失败
  2585. #define NET_LOGIN_ERROR_SUBCONNECT _EC(109) // 登录设备成功,但无法创建视频通道,请检查网络状况
  2586. #define NET_LOGIN_ERROR_MAXCONNECT _EC(110) // 超过最大连接数
  2587. #define NET_LOGIN_ERROR_PROTOCOL3_ONLY _EC(111) // 只支持3代协议
  2588. #define NET_LOGIN_ERROR_UKEY_LOST _EC(112) // 未插入U盾或U盾信息错误
  2589. #define NET_LOGIN_ERROR_NO_AUTHORIZED _EC(113) // 客户端IP地址没有登录权限
  2590. #define NET_LOGIN_ERROR_USER_OR_PASSOWRD _EC(117) // 账号或密码错误
  2591. #define NET_LOGIN_ERROR_DEVICE_NOT_INIT _EC(118) // 设备尚未初始化,不能登录,请先初始化设备
  2592. #define NET_LOGIN_ERROR_LIMITED _EC(119) // 登录受限,可能是IP受限、时间段受限、有效期受限
  2593. #define NET_RENDER_SOUND_ON_ERROR _EC(120) // Render库打开音频出错
  2594. #define NET_RENDER_SOUND_OFF_ERROR _EC(121) // Render库关闭音频出错
  2595. #define NET_RENDER_SET_VOLUME_ERROR _EC(122) // Render库控制音量出错
  2596. #define NET_RENDER_ADJUST_ERROR _EC(123) // Render库设置画面参数出错
  2597. #define NET_RENDER_PAUSE_ERROR _EC(124) // Render库暂停播放出错
  2598. #define NET_RENDER_SNAP_ERROR _EC(125) // Render库抓图出错
  2599. #define NET_RENDER_STEP_ERROR _EC(126) // Render库步进出错
  2600. #define NET_RENDER_FRAMERATE_ERROR _EC(127) // Render库设置帧率出错
  2601. #define NET_RENDER_DISPLAYREGION_ERROR _EC(128) // Render库设置显示区域出错
  2602. #define NET_RENDER_GETOSDTIME_ERROR _EC(129) // Render库获取当前播放时间出错
  2603. #define NET_GROUP_EXIST _EC(140) // 组名已存在
  2604. #define NET_GROUP_NOEXIST _EC(141) // 组名不存在
  2605. #define NET_GROUP_RIGHTOVER _EC(142) // 组的权限超出权限列表范围
  2606. #define NET_GROUP_HAVEUSER _EC(143) // 组下有用户,不能删除
  2607. #define NET_GROUP_RIGHTUSE _EC(144) // 组的某个权限被用户使用,不能出除
  2608. #define NET_GROUP_SAMENAME _EC(145) // 新组名同已有组名重复
  2609. #define NET_USER_EXIST _EC(146) // 用户已存在
  2610. #define NET_USER_NOEXIST _EC(147) // 用户不存在
  2611. #define NET_USER_RIGHTOVER _EC(148) // 用户权限超出组权限
  2612. #define NET_USER_PWD _EC(149) // 保留帐号,不容许修改密码
  2613. #define NET_USER_FLASEPWD _EC(150) // 密码不正确
  2614. #define NET_USER_NOMATCHING _EC(151) // 密码不匹配
  2615. #define NET_USER_INUSE _EC(152) // 账号正在使用中
  2616. #define NET_ERROR_GETCFG_ETHERNET _EC(300) // 获取网卡配置失败
  2617. #define NET_ERROR_GETCFG_WLAN _EC(301) // 获取无线网络信息失败
  2618. #define NET_ERROR_GETCFG_WLANDEV _EC(302) // 获取无线网络设备失败
  2619. #define NET_ERROR_GETCFG_REGISTER _EC(303) // 获取主动注册参数失败
  2620. #define NET_ERROR_GETCFG_CAMERA _EC(304) // 获取摄像头属性失败
  2621. #define NET_ERROR_GETCFG_INFRARED _EC(305) // 获取红外报警配置失败
  2622. #define NET_ERROR_GETCFG_SOUNDALARM _EC(306) // 获取音频报警配置失败
  2623. #define NET_ERROR_GETCFG_STORAGE _EC(307) // 获取存储位置配置失败
  2624. #define NET_ERROR_GETCFG_MAIL _EC(308) // 获取邮件配置失败
  2625. #define NET_CONFIG_DEVBUSY _EC(309) // 暂时无法设置
  2626. #define NET_CONFIG_DATAILLEGAL _EC(310) // 配置数据不合法
  2627. #define NET_ERROR_GETCFG_DST _EC(311) // 获取夏令时配置失败
  2628. #define NET_ERROR_SETCFG_DST _EC(312) // 设置夏令时配置失败
  2629. #define NET_ERROR_GETCFG_VIDEO_OSD _EC(313) // 获取视频OSD叠加配置失败
  2630. #define NET_ERROR_SETCFG_VIDEO_OSD _EC(314) // 设置视频OSD叠加配置失败
  2631. #define NET_ERROR_GETCFG_GPRSCDMA _EC(315) // 获取CDMA\GPRS网络配置失败
  2632. #define NET_ERROR_SETCFG_GPRSCDMA _EC(316) // 设置CDMA\GPRS网络配置失败
  2633. #define NET_ERROR_GETCFG_IPFILTER _EC(317) // 获取IP过滤配置失败
  2634. #define NET_ERROR_SETCFG_IPFILTER _EC(318) // 设置IP过滤配置失败
  2635. #define NET_ERROR_GETCFG_TALKENCODE _EC(319) // 获取语音对讲编码配置失败
  2636. #define NET_ERROR_SETCFG_TALKENCODE _EC(320) // 设置语音对讲编码配置失败
  2637. #define NET_ERROR_GETCFG_RECORDLEN _EC(321) // 获取录像打包长度配置失败
  2638. #define NET_ERROR_SETCFG_RECORDLEN _EC(322) // 设置录像打包长度配置失败
  2639. #define NET_DONT_SUPPORT_SUBAREA _EC(323) // 不支持网络硬盘分区
  2640. #define NET_ERROR_GET_AUTOREGSERVER _EC(324) // 获取设备上主动注册服务器信息失败
  2641. #define NET_ERROR_CONTROL_AUTOREGISTER _EC(325) // 主动注册重定向注册错误
  2642. #define NET_ERROR_DISCONNECT_AUTOREGISTER _EC(326) // 断开主动注册服务器错误
  2643. #define NET_ERROR_GETCFG_MMS _EC(327) // 获取mms配置失败
  2644. #define NET_ERROR_SETCFG_MMS _EC(328) // 设置mms配置失败
  2645. #define NET_ERROR_GETCFG_SMSACTIVATION _EC(329) // 获取短信激活无线连接配置失败
  2646. #define NET_ERROR_SETCFG_SMSACTIVATION _EC(330) // 设置短信激活无线连接配置失败
  2647. #define NET_ERROR_GETCFG_DIALINACTIVATION _EC(331) // 获取拨号激活无线连接配置失败
  2648. #define NET_ERROR_SETCFG_DIALINACTIVATION _EC(332) // 设置拨号激活无线连接配置失败
  2649. #define NET_ERROR_GETCFG_VIDEOOUT _EC(333) // 查询视频输出参数配置失败
  2650. #define NET_ERROR_SETCFG_VIDEOOUT _EC(334) // 设置视频输出参数配置失败
  2651. #define NET_ERROR_GETCFG_OSDENABLE _EC(335) // 获取osd叠加使能配置失败
  2652. #define NET_ERROR_SETCFG_OSDENABLE _EC(336) // 设置osd叠加使能配置失败
  2653. #define NET_ERROR_SETCFG_ENCODERINFO _EC(337) // 设置数字通道前端编码接入配置失败
  2654. #define NET_ERROR_GETCFG_TVADJUST _EC(338) // 获取TV调节配置失败
  2655. #define NET_ERROR_SETCFG_TVADJUST _EC(339) // 设置TV调节配置失败
  2656. #define NET_ERROR_CONNECT_FAILED _EC(340) // 请求建立连接失败
  2657. #define NET_ERROR_SETCFG_BURNFILE _EC(341) // 请求刻录文件上传失败
  2658. #define NET_ERROR_SNIFFER_GETCFG _EC(342) // 获取抓包配置信息失败
  2659. #define NET_ERROR_SNIFFER_SETCFG _EC(343) // 设置抓包配置信息失败
  2660. #define NET_ERROR_DOWNLOADRATE_GETCFG _EC(344) // 查询下载限制信息失败
  2661. #define NET_ERROR_DOWNLOADRATE_SETCFG _EC(345) // 设置下载限制信息失败
  2662. #define NET_ERROR_SEARCH_TRANSCOM _EC(346) // 查询串口参数失败
  2663. #define NET_ERROR_GETCFG_POINT _EC(347) // 获取预制点信息错误
  2664. #define NET_ERROR_SETCFG_POINT _EC(348) // 设置预制点信息错误
  2665. #define NET_SDK_LOGOUT_ERROR _EC(349) // SDK没有正常登出设备
  2666. #define NET_ERROR_GET_VEHICLE_CFG _EC(350) // 获取车载配置失败
  2667. #define NET_ERROR_SET_VEHICLE_CFG _EC(351) // 设置车载配置失败
  2668. #define NET_ERROR_GET_ATM_OVERLAY_CFG _EC(352) // 获取atm叠加配置失败
  2669. #define NET_ERROR_SET_ATM_OVERLAY_CFG _EC(353) // 设置atm叠加配置失败
  2670. #define NET_ERROR_GET_ATM_OVERLAY_ABILITY _EC(354) // 获取atm叠加能力失败
  2671. #define NET_ERROR_GET_DECODER_TOUR_CFG _EC(355) // 获取解码器解码轮巡配置失败
  2672. #define NET_ERROR_SET_DECODER_TOUR_CFG _EC(356) // 设置解码器解码轮巡配置失败
  2673. #define NET_ERROR_CTRL_DECODER_TOUR _EC(357) // 控制解码器解码轮巡失败
  2674. #define NET_GROUP_OVERSUPPORTNUM _EC(358) // 超出设备支持最大用户组数目
  2675. #define NET_USER_OVERSUPPORTNUM _EC(359) // 超出设备支持最大用户数目
  2676. #define NET_ERROR_GET_SIP_CFG _EC(368) // 获取SIP配置失败
  2677. #define NET_ERROR_SET_SIP_CFG _EC(369) // 设置SIP配置失败
  2678. #define NET_ERROR_GET_SIP_ABILITY _EC(370) // 获取SIP能力失败
  2679. #define NET_ERROR_GET_WIFI_AP_CFG _EC(371) // 获取WIFI ap配置失败
  2680. #define NET_ERROR_SET_WIFI_AP_CFG _EC(372) // 设置WIFI ap配置失败
  2681. #define NET_ERROR_GET_DECODE_POLICY _EC(373) // 获取解码策略配置失败
  2682. #define NET_ERROR_SET_DECODE_POLICY _EC(374) // 设置解码策略配置失败
  2683. #define NET_ERROR_TALK_REJECT _EC(375) // 拒绝对讲
  2684. #define NET_ERROR_TALK_OPENED _EC(376) // 对讲被其他客户端打开
  2685. #define NET_ERROR_TALK_RESOURCE_CONFLICIT _EC(377) // 资源冲突
  2686. #define NET_ERROR_TALK_UNSUPPORTED_ENCODE _EC(378) // 不支持的语音编码格式
  2687. #define NET_ERROR_TALK_RIGHTLESS _EC(379) // 无权限
  2688. #define NET_ERROR_TALK_FAILED _EC(380) // 请求对讲失败
  2689. #define NET_ERROR_GET_MACHINE_CFG _EC(381) // 获取机器相关配置失败
  2690. #define NET_ERROR_SET_MACHINE_CFG _EC(382) // 设置机器相关配置失败
  2691. #define NET_ERROR_GET_DATA_FAILED _EC(383) // 设备无法获取当前请求数据
  2692. #define NET_ERROR_MAC_VALIDATE_FAILED _EC(384) // MAC地址验证失败
  2693. #define NET_ERROR_GET_INSTANCE _EC(385) // 获取服务器实例失败
  2694. #define NET_ERROR_JSON_REQUEST _EC(386) // 生成的json字符串错误
  2695. #define NET_ERROR_JSON_RESPONSE _EC(387) // 响应的json字符串错误
  2696. #define NET_ERROR_VERSION_HIGHER _EC(388) // 协议版本低于当前使用的版本
  2697. #define NET_SPARE_NO_CAPACITY _EC(389) // 热备操作失败, 容量不足
  2698. #define NET_ERROR_SOURCE_IN_USE _EC(390) // 显示源被其他输出占用
  2699. #define NET_ERROR_REAVE _EC(391) // 高级用户抢占低级用户资源
  2700. #define NET_ERROR_NETFORBID _EC(392) // 禁止入网
  2701. #define NET_ERROR_GETCFG_MACFILTER _EC(393) // 获取MAC过滤配置失败
  2702. #define NET_ERROR_SETCFG_MACFILTER _EC(394) // 设置MAC过滤配置失败
  2703. #define NET_ERROR_GETCFG_IPMACFILTER _EC(395) // 获取IP/MAC过滤配置失败
  2704. #define NET_ERROR_SETCFG_IPMACFILTER _EC(396) // 设置IP/MAC过滤配置失败
  2705. #define NET_ERROR_OPERATION_OVERTIME _EC(397) // 当前操作超时
  2706. #define NET_ERROR_SENIOR_VALIDATE_FAILED _EC(398) // 高级校验失败
  2707. #define NET_ERROR_DEVICE_ID_NOT_EXIST _EC(399) // 设备ID不存在
  2708. #define NET_ERROR_UNSUPPORTED _EC(400) // 不支持当前操作
  2709. #define NET_ERROR_PROXY_DLLLOAD _EC(401) // 代理库加载失败
  2710. #define NET_ERROR_PROXY_ILLEGAL_PARAM _EC(402) // 代理用户参数不合法
  2711. #define NET_ERROR_PROXY_INVALID_HANDLE _EC(403) // 代理句柄无效
  2712. #define NET_ERROR_PROXY_LOGIN_DEVICE_ERROR _EC(404) // 代理登入前端设备失败
  2713. #define NET_ERROR_PROXY_START_SERVER_ERROR _EC(405) // 启动代理服务失败
  2714. #define NET_ERROR_SPEAK_FAILED _EC(406) // 请求喊话失败
  2715. #define NET_ERROR_NOT_SUPPORT_F6 _EC(407) // 设备不支持此F6接口调用
  2716. #define NET_ERROR_CD_UNREADY _EC(408) // 光盘未就绪
  2717. #define NET_ERROR_DIR_NOT_EXIST _EC(409) // 目录不存在
  2718. #define NET_ERROR_UNSUPPORTED_SPLIT_MODE _EC(410) // 设备不支持的分割模式
  2719. #define NET_ERROR_OPEN_WND_PARAM _EC(411) // 开窗参数不合法
  2720. #define NET_ERROR_LIMITED_WND_COUNT _EC(412) // 开窗数量超过限制
  2721. #define NET_ERROR_UNMATCHED_REQUEST _EC(413) // 请求命令与当前模式不匹配
  2722. #define NET_RENDER_ENABLELARGEPICADJUSTMENT_ERROR _EC(414) // Render库启用高清图像内部调整策略出错
  2723. #define NET_ERROR_UPGRADE_FAILED _EC(415) // 设备升级失败
  2724. #define NET_ERROR_NO_TARGET_DEVICE _EC(416) // 找不到目标设备
  2725. #define NET_ERROR_NO_VERIFY_DEVICE _EC(417) // 找不到验证设备
  2726. #define NET_ERROR_CASCADE_RIGHTLESS _EC(418) // 无级联权限
  2727. #define NET_ERROR_LOW_PRIORITY _EC(419) // 低优先级
  2728. #define NET_ERROR_REMOTE_REQUEST_TIMEOUT _EC(420) // 远程设备请求超时
  2729. #define NET_ERROR_LIMITED_INPUT_SOURCE _EC(421) // 输入源超出最大路数限制
  2730. #define NET_ERROR_SET_LOG_PRINT_INFO _EC(422) // 设置日志打印失败
  2731. #define NET_ERROR_PARAM_DWSIZE_ERROR _EC(423) // 入参的dwsize字段出错
  2732. #define NET_ERROR_LIMITED_MONITORWALL_COUNT _EC(424) // 电视墙数量超过上限
  2733. #define NET_ERROR_PART_PROCESS_FAILED _EC(425) // 部分过程执行失败
  2734. #define NET_ERROR_TARGET_NOT_SUPPORT _EC(426) // 该功能不支持转发
  2735. #define NET_ERROR_VISITE_FILE _EC(510) // 访问文件失败
  2736. #define NET_ERROR_DEVICE_STATUS_BUSY _EC(511) // 设备忙
  2737. #define NET_USER_PWD_NOT_AUTHORIZED _EC(512) // 修改密码无权限
  2738. #define NET_USER_PWD_NOT_STRONG _EC(513) // 密码强度不够
  2739. #define NET_ERROR_NO_SUCH_CONFIG _EC(514) // 没有对应的配置
  2740. #define NET_ERROR_AUDIO_RECORD_FAILED _EC(515) // 录音失败
  2741. #define NET_ERROR_SEND_DATA_FAILED _EC(516) // 数据发送失败
  2742. #define NET_ERROR_OBSOLESCENT_INTERFACE _EC(517) // 废弃接口
  2743. #define NET_ERROR_INSUFFICIENT_INTERAL_BUF _EC(518) // 内部缓冲不足
  2744. #define NET_ERROR_NEED_ENCRYPTION_PASSWORD _EC(519) // 修改设备ip时,需要校验密码
  2745. #define NET_ERROR_NOSUPPORT_RECORD _EC(520) // 设备不支持此记录集
  2746. #define NET_ERROR_DEVICE_IN_UPGRADING _EC(521) // 设备正在升级
  2747. #define NET_ERROR_ANALYSE_TASK_NOT_EXIST _EC(522) // 智能分析任务不存在
  2748. #define NET_ERROR_ANALYSE_TASK_FULL _EC(523) // 智能分析任务已经满
  2749. #define NET_ERROR_DEVICE_RESTART _EC(524) // 设备重启
  2750. #define NET_ERROR_DEVICE_SHUTDOWN _EC(525) // 设备关机
  2751. #define NET_ERROR_FILE_SYSTEM_ERROR _EC(526) // 文件系统错误
  2752. #define NET_ERROR_HARDDISK_WRITE_ERROR _EC(527) // 硬盘写错误
  2753. #define NET_ERROR_HARDDISK_READ_ERROR _EC(528) // 硬盘读错误
  2754. #define NET_ERROR_NO_HARDDISK_RECORD_LOG _EC(529) // 无硬盘记录日志
  2755. #define NET_ERROR_NO_HARDDISK _EC(530) // 无工作盘(没有读写盘)
  2756. #define NET_ERROR_HARDDISK_OTHER_ERRORS _EC(531) // 硬盘其他错误
  2757. #define NET_ERROR_HARDDISK_BADSECTORS_MINOR_ERRORS _EC(532) // 硬盘坏道轻微错误
  2758. #define NET_ERROR_HARDDISK_BADSECTORS_CRITICAL_ERRORS _EC(533) // 硬盘坏道严重错误
  2759. #define NET_ERROR_HARDDISK_PHYSICAL_BADSECTORS_SLIGHT _EC(534) // 硬盘物理坏道轻微
  2760. #define NET_ERROR_HARDDISK_PHYSICAL_BADSECTORS_SERIOUS _EC(535) // 硬盘物理坏道严重
  2761. #define NET_ERROR_NETWORK_DISCONNECTION_ALARM _EC(536) // 断网报警
  2762. #define NET_ERROR_NETWORK_DISCONNECTION _EC(537) // 网络断开
  2763. #define NET_ERROR_SET_SOURCE_EXCEED _EC(538) // 设置视频源数量超出限制
  2764. #define NET_ERROR_SIZE_EXCEED _EC(539) // 上传文件尺寸超出范围(uploadFile方法)
  2765. #define NET_ERROR_LOGOPEN_DISABLE _EC(540) // 存在日志配置文件,以日志打印配置文件为准,日志打印接口失效
  2766. #define NET_ERROR_STREAM_PACKAGE_ERROR _EC(541) // 封装音频头失败
  2767. #define NET_ERROR_SERIALIZE_ERROR _EC(1010) // 数据序列化错误
  2768. #define NET_ERROR_DESERIALIZE_ERROR _EC(1011) // 数据反序列化错误
  2769. #define NET_ERROR_LOWRATEWPAN_ID_EXISTED _EC(1012) // 该无线ID已存在
  2770. #define NET_ERROR_LOWRATEWPAN_ID_LIMIT _EC(1013) // 无线ID数量已超限
  2771. #define NET_ERROR_LOWRATEWPAN_ID_ABNORMAL _EC(1014) // 无线异常添加
  2772. #define NET_ERROR_ENCRYPT _EC(1015) // 加密数据失败
  2773. #define NET_ERROR_PWD_ILLEGAL _EC(1016) // 新密码不合规范
  2774. #define NET_ERROR_DEVICE_ALREADY_INIT _EC(1017) // 设备已经初始化
  2775. #define NET_ERROR_SECURITY_CODE _EC(1018) // 安全码错误
  2776. #define NET_ERROR_SECURITY_CODE_TIMEOUT _EC(1019) // 安全码超出有效期
  2777. #define NET_ERROR_GET_PWD_SPECI _EC(1020) // 获取密码规范失败
  2778. #define NET_ERROR_NO_AUTHORITY_OF_OPERATION _EC(1021) // 无权限进行该操作
  2779. #define NET_ERROR_DECRYPT _EC(1022) // 解密数据失败
  2780. #define NET_ERROR_2D_CODE _EC(1023) // 2D code校验失败
  2781. #define NET_ERROR_INVALID_REQUEST _EC(1024) // 非法的RPC请求
  2782. #define NET_ERROR_PWD_RESET_DISABLE _EC(1025) // 密码重置功能已关闭
  2783. #define NET_ERROR_PLAY_PRIVATE_DATA _EC(1026) // 显示私有数据,比如规则框等失败
  2784. #define NET_ERROR_ROBOT_OPERATE_FAILED _EC(1027) // 机器人操作失败
  2785. #define NET_ERROR_PHOTOSIZE_EXCEEDSLIMIT _EC(1028) // 图片大小超限
  2786. #define NET_ERROR_USERID_INVALID _EC(1029) // 用户ID不存在
  2787. #define NET_ERROR_EXTRACTFEATURE_FAILED _EC(1030) // 照片特征值提取失败
  2788. #define NET_ERROR_PHOTO_EXIST _EC(1031) // 照片已存在
  2789. #define NET_ERROR_PHOTO_OVERFLOW _EC(1032) // 照片数量超过上限
  2790. #define NET_ERROR_CHANNEL_ALREADY_OPENED _EC(1033) // 通道已经打开
  2791. #define NET_ERROR_CREATE_SOCKET _EC(1034) // 创建套接字失败
  2792. #define NET_ERROR_CHANNEL_NUM _EC(1035) // 通道号错误
  2793. #define NET_ERROR_PHOTO_FORMAT _EC(1036) // 图片格式错误
  2794. #define NET_ERROR_DIGITAL_CERTIFICATE_INTERNAL_ERROR _EC(1037) // 内部错误(比如:相关硬件问题,获取公钥失败,内部接口调用失败,写文件失败等等)
  2795. #define NET_ERROR_DIGITAL_CERTIFICATE_GET_ID_FAILED _EC(1038) // 获取设备ID失败
  2796. #define NET_ERROR_DIGITAL_CERTIFICATE_IMPORT_ILLEGAL _EC(1039) // 证书文件非法(格式不支持或者不是证书文件)
  2797. #define NET_ERROR_DIGITAL_CERTIFICATE_SN_ERROR _EC(1040) // 证书sn重复或错误或不规范
  2798. #define NET_ERROR_DIGITAL_CERTIFICATE_COMMON_NAME_ILLEGAL _EC(1041) // 证书commonName非法(本地设备证书与系统中的不匹配devid_cryptoID,或者对端的不符合规则(devid_crytoID))
  2799. #define NET_ERROR_DIGITAL_CERTIFICATE_NO_ROOT_CERT _EC(1042) // 根证书未导入或不存在
  2800. #define NET_ERROR_DIGITAL_CERTIFICATE_CERT_REVOKED _EC(1043) // 证书被吊销
  2801. #define NET_ERROR_DIGITAL_CERTIFICATE_CERT_INVALID _EC(1044) // 证书不可用或未生效或已过期
  2802. #define NET_ERROR_DIGITAL_CERTIFICATE_CERT_ERROR_SIGN _EC(1045) // 证书签名不匹配
  2803. #define NET_ERROR_DIGITAL_CERTIFICATE_COUNTS_UPPER_LIMIT _EC(1046) // 超出证书导入上限
  2804. #define NET_ERROR_DIGITAL_CERTIFICATE_CERT_NO_EXIST _EC(1047) // 证书文件不存在(导出证书或者获取对应证书的公钥)
  2805. #define NET_ERROR_DEFULAT_SEARCH_PORT _EC(1048) // 默认搜索端口无法使用(5050,37810)
  2806. #define NET_ERROR_FACE_RECOGNITION_SERVER_MULTI_APPEND_STOUP _EC(1049) // 批量添加目标停止
  2807. #define NET_ERROR_FACE_RECOGNITION_SERVER_MULTI_APPEND_ERROR _EC(1050) // 批量添加目标失败
  2808. #define NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_ID_EXCEED _EC(1051) // 组ID超过最大值
  2809. #define NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_ID_NOT_IN_REGISTER_GROUP _EC(1052) // 组ID不存在或为空
  2810. #define NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_NOT_FOUND _EC(1053) // 无图片数据
  2811. #define NET_ERROR_FACE_RECOGNITION_SERVER_GENERATE_GROUP_ID_FAILED _EC(1054) // 生成组ID超出范围
  2812. #define NET_ERROR_FACE_RECOGNITION_SERVER_SET_CONFIG_FAILED _EC(1055) // 设置配置失败
  2813. #define NET_ERROR_FACE_RECOGNITION_SERVER_FILE_OPEN_FAILED _EC(1056) // 图片文件打开失败
  2814. #define NET_ERROR_FACE_RECOGNITION_SERVER_FILE_READ_FAILED _EC(1057) // 图片文件读取失败
  2815. #define NET_ERROR_FACE_RECOGNITION_SERVER_FILE_WRITE_FAILED _EC(1058) // 图片文件写入失败
  2816. #define NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_DPI_ERROR _EC(1059) // 图片分辨率异常
  2817. #define NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_PX_ERROR _EC(1060) // 图片像素异常
  2818. #define NET_ERROR_FACE_RECOGNITION_SERVER_PICTURE_SIZE_ERROR _EC(1061) // 图片大小不对
  2819. #define NET_ERROR_FACE_RECOGNITION_SERVER_DATA_BASE_ERROR _EC(1062) // 数据库操作失败
  2820. #define NET_ERROR_FACE_RECOGNITION_SERVER_FACE_MAX_NUM _EC(1063) // 人员数量超过限制
  2821. #define NET_ERROR_FACE_RECOGNITION_SERVER_BIRTH_DAY_FORMAT_ERROR _EC(1064) // 生日日期格式错误
  2822. #define NET_ERROR_FACE_RECOGNITION_SERVER_UID_ERROR _EC(1065) // 人员UID不存在或为空
  2823. #define NET_ERROR_FACE_RECOGNITION_SERVER_TOKEN_ERROR _EC(1066) // 令牌不存在或为空
  2824. #define NET_ERROR_FACE_RECOGNITION_SERVER_BEGIN_NUM_OVER_RUN _EC(1067) // 查询起始数大于总数
  2825. #define NET_ERROR_FACE_RECOGNITION_SERVER_ABSTRACT_NUM_ZERO _EC(1068) // 需手动建模人数为0
  2826. #define NET_ERROR_FACE_RECOGNITION_SERVER_ABSTRACT_INIT_ERROR _EC(1069) // 建模分析器启动失败
  2827. #define NET_ERROR_FACE_RECOGNITION_SERVER_AUTO_ABSTRACT_STATE _EC(1070) // 设备正在自动建模
  2828. #define NET_ERROR_FACE_RECOGNITION_SERVER_ABSTRACT_STATE _EC(1071) // 设备正在手动建模
  2829. #define NET_ERROR_FACE_RECOGNITION_SERVER_IM_EX_STATE _EC(1072) // 设备正在导入导出
  2830. #define NET_ERROR_FACE_RECOGNITION_SERVER_PIC_WRITE_FAILED _EC(1073) // 图片写入失败
  2831. #define NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_SPACE_EXCEED _EC(1074) // 超出目标库空间大小限制
  2832. #define NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_PIC_COUNT_EXCEED _EC(1075) // 超出目标库图片数量限制
  2833. #define NET_ERROR_FACE_RECOGNITION_SERVER_GROUP_NOT_FOUND _EC(1076) // 目标库不存在
  2834. #define NET_ERROR_FACE_RECOGNITION_SERVER_FIND_RECORDS_ERROR _EC(1077) // 查询原目标库数据结果无效
  2835. #define NET_ERROR_FACE_RECOGNITION_SERVER_DELETE_PERSON_ERROR _EC(1078) // 删除原目标库数据失败
  2836. #define NET_ERROR_FACE_RECOGNITION_SERVER_DELETE_GROUP_ERROR _EC(1079) // 删除目标库失败
  2837. #define NET_ERROR_FACE_RECOGNITION_SERVER_NAME_FORMAT_ERROR _EC(1080) // 命名格式错误
  2838. #define NET_ERROR_FACE_RECOGNITION_SERVER_FILEPATH_NOT_SET _EC(1081) // 图片保存路径未设置
  2839. #define NET_ERROR_DEVICE_PARSE_PROTOCOL _EC(1079) // 设备解析协议错误
  2840. #define NET_ERROR_DEVICE_INVALID_REQUEST _EC(1080) // 设备返回无效请求
  2841. #define NET_ERROR_DEVICE_INTERNAL_ERROR _EC(1081) // 设备内部错误
  2842. #define NET_ERROR_DEVICE_REQUEST_TIMEOUT _EC(1082) // 设备内部请求超时
  2843. #define NET_ERROR_DEVICE_KEEPALIVE_FAIL _EC(1083) // 设备保活失败
  2844. #define NET_ERROR_DEVICE_NETWORK_ERROR _EC(1084) // 设备网络错误
  2845. #define NET_ERROR_DEVICE_UNKNOWN_ERROR _EC(1085) // 设备内部未知错误
  2846. #define NET_ERROR_DEVICE_COM_INTERFACE_NOTFOUND _EC(1086) // 设备组件接口没有找到
  2847. #define NET_ERROR_DEVICE_COM_IMPLEMENT_NOTFOUND _EC(1087) // 设备组件实现没有找到
  2848. #define NET_ERROR_DEVICE_COM_NOTFOUND _EC(1088) // 设备接入组件没有找到
  2849. #define NET_ERROR_DEVICE_COM_INSTANCE_NOTEXIST _EC(1089) // 设备接入组件实例不存在
  2850. #define NET_ERROR_DEVICE_CREATE_COM_FAIL _EC(1090) // 设备组件工厂创建组件失败
  2851. #define NET_ERROR_DEVICE_GET_COM_FAIL _EC(1091) // 设备组件工厂获取组件实例失败
  2852. #define NET_ERROR_DEVICE_BAD_REQUEST _EC(1092) // 设备业务请求不被接受
  2853. #define NET_ERROR_DEVICE_REQUEST_IN_PROGRESS _EC(1093) // 设备已经在处理请求,不接受重复请求
  2854. #define NET_ERROR_DEVICE_LIMITED_RESOURCE _EC(1094) // 设备资源不足
  2855. #define NET_ERROR_DEVICE_BUSINESS_TIMEOUT _EC(1095) // 设备业务超时
  2856. #define NET_ERROR_DEVICE_TOO_MANY_REQUESTS _EC(1096) // 设备接收过多请求
  2857. #define NET_ERROR_DEVICE_NOT_ALREADY _EC(1097) // 设备未准备就绪,不接受业务请求
  2858. #define NET_ERROR_DEVICE_SEARCHRECORD_TIMEOUT _EC(1098) // 设备录像查询超时
  2859. #define NET_ERROR_DEVICE_SEARCHTIME_INVALID _EC(1099) // 设备录像查询时间无效
  2860. #define NET_ERROR_DEVICE_SSID_INVALID _EC(1100) // 设备校验SSID无效
  2861. #define NET_ERROR_DEVICE_CHANNEL_STREAMTYPE_ERROR _EC(1101) // 设备校验通道号或码流类型无效
  2862. #define NET_ERROR_DEVICE_STREAM_PACKINGFORMAT_UNSUPPORT _EC(1102) // 设备不支持该码流打包格式
  2863. #define NET_ERROR_DEVICE_AUDIO_ENCODINGFORMAT_UNSUPPORT _EC(1103) // 设备不支持该语音编码格式
  2864. #define NET_ERROR_SECURITY_ERROR_SUPPORT_GUI _EC(1104) // 校验请求安全码失败,可使用本地GUI方式重置密码
  2865. #define NET_ERROR_SECURITY_ERROR_SUPPORT_MULT _EC(1105) // 校验请求安全码失败,可使用APP、configtool工具重置密码
  2866. #define NET_ERROR_SECURITY_ERROR_SUPPORT_UNIQUE _EC(1106) // 校验请求安全码失败,可登陆Web页面重置密码
  2867. #define NET_ERROR_STREAMCONVERTOR_DEFECT _EC(1107) // 转码库缺失
  2868. #define NET_ERROR_SECURITY_GENERATE_SAFE_CODE _EC(1108) // 调用加密库产生安全码失败
  2869. #define NET_ERROR_SECURITY_GET_CONTACT _EC(1109) // 获取联系方式失败
  2870. #define NET_ERROR_SECURITY_GET_QRCODE _EC(1110) // 获取重置密码的二维码信息失败
  2871. #define NET_ERROR_SECURITY_CANNOT_RESET _EC(1111) // 设备未初始化,无法重置
  2872. #define NET_ERROR_SECURITY_NOT_SUPPORT_CONTACT_MODE _EC(1112) // 不支持设置该种联系方式,如只支持设置手机号,却请求设置邮箱
  2873. #define NET_ERROR_SECURITY_RESPONSE_TIMEOUT _EC(1113) // 对端响应超时
  2874. #define NET_ERROR_SECURITY_AUTHCODE_FORBIDDEN _EC(1114) // 尝试校验AuthCode次数过多,禁止校验
  2875. #define NET_ERROR_TRANCODE_LOGIN_REMOTE_DEV _EC(1115) // (虚拟转码)登陆远程设备失败
  2876. #define NET_ERROR_TRANCODE_NOFREE_CHANNEL _EC(1116) // (虚拟转码)没有可用的通道资源
  2877. #define NET_ERROR_VK_INFO_DECRYPT_FAILED _EC(1117) // VK信息解密失败
  2878. #define NET_ERROR_VK_INFO_DESERIALIZE_FAILED _EC(1118) // VK信息解析失败
  2879. #define NET_ERROR_GDPR_ABILITY_NOT_ENABLE _EC(1119) // SDK GDPR功能未使能
  2880. /*门禁快速导入及复核错误码 start*/
  2881. #define NET_ERROR_FAST_CHECK_NO_AUTH _EC(1120) // 门禁快速复核:无权限
  2882. #define NET_ERROR_FAST_CHECK_NO_FILE _EC(1121) // 门禁快速复核:文件不存在
  2883. #define NET_ERROR_FAST_CHECK_FILE_FAIL _EC(1122) // 门禁快速复核:文件准备失败
  2884. #define NET_ERROR_FAST_CHECK_BUSY _EC(1123) // 门禁快速复核:系统忙
  2885. #define NET_ERROR_FAST_CHECK_NO_PASSWORD _EC(1124) // 门禁快速复核:未定义密码, 不允许导出
  2886. #define NET_ERROR_IMPORT_ACCESS_SEND_FAILD _EC(1125) // 门禁快速导入:发送门禁数据失败
  2887. #define NET_ERROR_IMPORT_ACCESS_BUSY _EC(1126) // 门禁快速导入:系统忙, 已经有导入任务
  2888. #define NET_ERROR_IMPORT_ACCESS_DATAERROR _EC(1127) // 门禁快速导入:数据包检验失败
  2889. #define NET_ERROR_IMPORT_ACCESS_DATAINVALID _EC(1128) // 门禁快速导入:数据包非法
  2890. #define NET_ERROR_IMPORT_ACCESS_SYNC_FALID _EC(1129) // 门禁快速导入:同步失败,数据库无法生成
  2891. #define NET_ERROR_IMPORT_ACCESS_DBFULL _EC(1130) // 门禁快速导入:数据库已满, 无法导入
  2892. #define NET_ERROR_IMPORT_ACCESS_SDFULL _EC(1131) // 门禁快速导入:存储空间已满, 无法导入
  2893. #define NET_ERROR_IMPORT_ACCESS_CIPHER_ERROR _EC(1132) // 门禁快速导入:导入压缩包密码不对
  2894. /*门禁快速导入及复核错误码 end*/
  2895. #define NET_ERROR_INVALID_PARAM _EC(1133) // 参数无效
  2896. #define NET_ERROR_INVALID_PASSWORD _EC(1134) // 密码无效
  2897. #define NET_ERROR_INVALID_FINGERPRINT _EC(1135) // 信息无效
  2898. #define NET_ERROR_INVALID_FACE _EC(1136) // 目标无效
  2899. #define NET_ERROR_INVALID_CARD _EC(1137) // 卡无效
  2900. #define NET_ERROR_INVALID_USER _EC(1138) // 用户无效
  2901. #define NET_ERROR_GET_SUBSERVICE _EC(1139) // 能力集子服务获取失败
  2902. #define NET_ERROR_GET_METHOD _EC(1140) // 获取组件的方法集失败
  2903. #define NET_ERROR_GET_SUBCAPS _EC(1141) // 获取资源实体能力集失败
  2904. #define NET_ERROR_UPTO_INSERT_LIMIT _EC(1142) // 已达插入上限
  2905. #define NET_ERROR_UPTO_MAX_INSERT_RATE _EC(1143) // 已达最大插入速度
  2906. #define NET_ERROR_ERASE_FINGERPRINT _EC(1144) // 清除信息数据失败
  2907. #define NET_ERROR_ERASE_FACE _EC(1145) // 清除目标数据失败
  2908. #define NET_ERROR_ERASE_CARD _EC(1146) // 清除卡数据失败
  2909. #define NET_ERROR_NO_RECORD _EC(1147) // 没有记录
  2910. #define NET_ERROR_NOMORE_RECORDS _EC(1148) // 查找到最后,没有更多记录
  2911. #define NET_ERROR_RECORD_ALREADY_EXISTS _EC(1149) // 下发卡或信息时,数据重复
  2912. #define NET_ERROR_EXCEED_MAX_FINGERPRINT_PERUSER _EC(1150) // 超过个人最大信息记录数
  2913. #define NET_ERROR_EXCEED_MAX_CARD_PERUSER _EC(1151) // 超过个人最大卡片记录数
  2914. #define NET_ERROR_EXCEED_ADMINISTRATOR_LIMIT _EC(1152) // 超过门禁管理员个数限制
  2915. #define NET_LOGIN_ERROR_DEVICE_NOT_SUPPORT_HIGHLEVEL_SECURITY_LOGIN _EC(1153) // 设备不支持高安全等级登录
  2916. #define NET_LOGIN_ERROR_DEVICE_ONLY_SUPPORT_HIGHLEVEL_SECURITY_LOGIN _EC(1154) // 设备只支持高安全等级登录
  2917. #define NET_ERROR_VIDEO_CHANNEL_OFFLINE _EC(1155) // 表示此视频通道处于离线,拉流失败
  2918. #define NET_ERROR_USERID_FORMAT_INCORRECT _EC(1156) // 用户编号不规范
  2919. #define NET_ERROR_CANNOT_FIND_CHANNEL_RELATE_TO_SN _EC(1157) // 找不到该SN对应的通道
  2920. #define NET_ERROR_TASK_QUEUE_OF_CHANNEL_IS_FULL _EC(1158) // 该通道的任务队列满
  2921. #define NET_ERROR_APPLY_USER_INFO_BLOCK_FAIL _EC(1159) // 申请不到新的用户信息(权限)块
  2922. #define NET_ERROR_EXCEED_MAX_PASSWD_PERUSER _EC(1160) // 用户密码数量超过限制
  2923. #define NET_ERROR_PARSE_PROTOCOL _EC(1161) // 设备内部异常引起协议解析错误
  2924. #define NET_ERROR_CARD_NUM_EXIST _EC(1162) // 卡号已存在
  2925. #define NET_ERROR_FINGERPRINT_EXIST _EC(1163) // 信息已存在
  2926. #define NET_ERROR_OPEN_PLAYGROUP_FAIL _EC(1164) // 打开播放组失败
  2927. #define NET_ERROR_ALREADY_IN_PLAYGROUP _EC(1165) // 已位于播放组中
  2928. #define NET_ERROR_QUERY_PLAYGROUP_TIME_FAIL _EC(1166) // 查询播放组时间失败
  2929. #define NET_ERROR_SET_PLAYGROUP_BASECHANNEL_FAIL _EC(1167) // 设置播放组基准通道失败
  2930. #define NET_ERROR_SET_PLAYGROUP_DIRECTION_FAIL _EC(1168) // 设置播放组方向失败
  2931. #define NET_ERROR_SET_PLAYGROUP_SPEED_FAIL _EC(1169) // 设置播放组速度失败
  2932. #define NET_ERROR_ADD_PLAYGROUP_FAIL _EC(1170) // 加入播放组失败
  2933. #define NET_ERROR_EXPORT_AOL_LOGFILE_NO_AUTH _EC(1171) // 导出AOL日志:无权限
  2934. #define NET_ERROR_EXPORT_AOL_LOGFILE_NO_FILE _EC(1172) // 导出AOL日志:文件不存在
  2935. #define NET_ERROR_EXPORT_AOL_LOGFILE_FILE_FAIL _EC(1173) // 导出AOL日志:文件准备失败
  2936. #define NET_ERROR_EXPORT_AOL_LOGFILE_BUSY _EC(1174) // 导出AOL日志:系统忙
  2937. // 设备上APP安装相关错误码
  2938. #define NET_ERROR_EMPTY_LICENSE _EC(1175) // License为空
  2939. #define NET_ERROR_UNSUPPORTED_MODE _EC(1176) // 不支持该模式
  2940. #define NET_ERROR_URL_APP_NOT_MATCH _EC(1177) // URL与APP不匹配
  2941. #define NET_ERROR_READ_INFO_FAILED _EC(1178) // 读取信息失败
  2942. #define NET_ERROR_WRITE_FAILED _EC(1179) // 写入失败
  2943. #define NET_ERROR_NO_SUCH_APP _EC(1180) // 未找到APP
  2944. #define NET_ERROR_VERIFIF_FAILED _EC(1181) // 校验失败
  2945. #define NET_ERROR_LICENSE_OUT_DATE _EC(1182) // License已过期
  2946. #define NET_ERROR_UPGRADE_PROGRAM_TOO_OLD _EC(1183) // 升级程序版本过低
  2947. #define NET_ERROR_SECURE_TRANSMIT_BEEN_CUT _EC(1184) // 加密传输被裁剪
  2948. #define NET_ERROR_DEVICE_NOT_SUPPORT_SECURE_TRANSMIT _EC(1185) // 设备不支持安全传输
  2949. #define NET_ERROR_EXTRA_STREAM_LOGIN_FAIL_CAUSE_BY_MAIN_STREAM _EC(1186) // 主码流成功的情况下,辅码流登录失败
  2950. #define NET_ERROR_EXTRA_STREAM_CLOSED_BY_REMOTE_DEVICE _EC(1187) // 辅码流被前端关闭
  2951. /*目标库导入导出错误码 start*/
  2952. #define NET_ERROR_IMPORT_FACEDB_SEND_FAILD _EC(1188) // 目标库导入:发送目标库数据失败
  2953. #define NET_ERROR_IMPORT_FACEDB_BUSY _EC(1189) // 目标库导入:系统忙, 已经有导入任务
  2954. #define NET_ERROR_IMPORT_FACEDB_DATAERROR _EC(1190) // 目标库导入:数据包检验失败
  2955. #define NET_ERROR_IMPORT_FACEDB_DATAINVALID _EC(1191) // 目标库导入:数据包非法
  2956. #define NET_ERROR_IMPORT_FACEDB_UPGRADE_FAILD _EC(1192) // 目标库导入:上传失败
  2957. #define NET_ERROR_IMPORT_FACEDB_NO_AUTHORITY _EC(1193) // 目标库导入:用户无权限
  2958. #define NET_ERROR_IMPORT_FACEDB_ABNORMAL_FILE _EC(1194) // 目标库导入:文件格式异常
  2959. #define NET_ERROR_IMPORT_FACEDB_SYNC_FALID _EC(1195) // 目标库导入:同步失败,数据库无法生成
  2960. #define NET_ERROR_IMPORT_FACEDB_DBFULL _EC(1196) // 目标库导入:数据库已满, 无法导入
  2961. #define NET_ERROR_IMPORT_FACEDB_SDFULL _EC(1197) // 目标库导入:存储空间已满, 无法导入
  2962. #define NET_ERROR_IMPORT_FACEDB_CIPHER_ERROR _EC(1198) // 目标库导入:导入压缩包密码不对
  2963. #define NET_ERROR_EXPORT_FACEDB_NO_AUTH _EC(1199) // 目标库导出:无权限
  2964. #define NET_ERROR_EXPORT_FACEDB_NO_FILE _EC(1200) // 目标库导出:文件不存在
  2965. #define NET_ERROR_EXPORT_FACEDB_FILE_FAIL _EC(1201) // 目标库导出:文件准备失败
  2966. #define NET_ERROR_EXPORT_FACEDB_BUSY _EC(1202) // 目标库导出:系统忙
  2967. #define NET_ERROR_EXPORT_FACEDB_NO_PASSWORD _EC(1203) // 目标库导出:未定义密码, 不允许导出
  2968. /*目标库导入导出错误码 end*/
  2969. #define NET_ERROR_REQUESTED_TOO_MUCH_DATA _EC(1204) // 获取了过多的数据,设备无法处理
  2970. #define NET_ERROR_BATCH_PROCESS_ERROR _EC(1205) // 在业务批量执行过程中有错误发生
  2971. #define NET_ERROR_OPERATION_CANCELLED _EC(1206) // 某种原因,业务被取消执行
  2972. #define NET_ERROR_DEVICE_INVALID _EC(1207) // 设备型号不对,无法进一步处理
  2973. #define NET_ERROR_DEVICE_UNAVAILABLE _EC(1208) // 无法获取到设备状态信息
  2974. #define NET_ERROR_FINGERPRINT_DOWNLOAD_FAIL _EC(1209) // 信息通过URL下载方式下载失败
  2975. #define NET_ERROR_ACCOUNT_IN_USE _EC(1210) // 账户登录中
  2976. #define NET_ERROR_IRIS_INFO_NOT_EXISTED _EC(1211) // 更新用户眼睛信息时,用户不存在目标
  2977. #define NET_ERROR_INVALID_IRIS_DATA _EC(1212) // 下发的眼睛数据格式、特征值大小错误
  2978. #define NET_ERROR_IRIS_ALREADY_EXIST _EC(1213) // 眼睛信息已存在
  2979. #define NET_ERROR_ERASE_IRIS_FAILED _EC(1214) // 眼睛信息删除失败
  2980. #define NET_ERROR_EXCEED_MAX_IRIS_GROUP_COUNT_PER_USER _EC(1215) // 超出个人所支持的眼睛信息组数量,两个眼睛(左右眼)为一组
  2981. #define NET_ERROR_EXCEED_MAX_IRIS_COUNT_PER_GROUP _EC(1216) // 超出个人单组眼睛信息所能记录的最大数量
  2982. /* 目标图片操作错误码 范围 _EC(1300) ~ _EC(1400) */
  2983. #define NET_ERROR_FACEMANAGER_NO_FACE_DETECTED _EC(1300) // 图片中检测到0个目标
  2984. #define NET_ERROR_FACEMANAGER_MULTI_FACE_DETECTED _EC(1301) // 图片中检测到多个目标,无法返回特征
  2985. #define NET_ERROR_FACEMANAGER_PICTURE_DECODING_ERROR _EC(1302) // 图片解码错误
  2986. #define NET_ERROR_FACEMANAGER_LOW_PICTURE_QUALITY _EC(1303) // 图片质量太低
  2987. #define NET_ERROR_FACEMANAGER_NOT_RECOMMENDED _EC(1304) // 结果不推荐使用,比如:对外国人,特征提取成功,但算法支持不好,容易造成误识别
  2988. #define NET_ERROR_FACEMANAGER_FACE_FEATURE_ALREADY_EXIST _EC(1305) // 目标特征已存在
  2989. #define NET_ERROR_FACEMANAGER_FACE_ANGLE_OVER_THRESHOLDS _EC(1307) // 目标角度超过配置阈值
  2990. #define NET_ERROR_FACEMANAGER_FACE_RADIO_EXCEEDS_RANGE _EC(1308) // 目标占比超出范围,算法建议占比:不要超过2/3;不要小于1/3
  2991. #define NET_ERROR_FACEMANAGER_FACE_OVER_EXPOSED _EC(1309) // 目标过爆
  2992. #define NET_ERROR_FACEMANAGER_FACE_UNDER_EXPOSED _EC(1310) // 目标欠爆
  2993. #define NET_ERROR_FACEMANAGER_BRIGHTNESS_IMBALANCE _EC(1311) // 目标亮度不均衡 ,用于判断阴阳脸
  2994. #define NET_ERROR_FACEMANAGER_FACE_LOWER_CONFIDENCE _EC(1312) // 目标的置信度低
  2995. #define NET_ERROR_FACEMANAGER_FACE_LOW_ALIGN _EC(1313) // 目标对齐分数低
  2996. #define NET_ERROR_FACEMANAGER_FRAGMENTARY_FACE_DETECTED _EC(1314) // 目标存在遮挡、残缺不全
  2997. #define NET_ERROR_FACEMANAGER_PUPIL_DISTANCE_NOT_ENOUGH _EC(1315) // 目标瞳距小于阈值
  2998. #define NET_ERROR_FACEMANAGER_FACE_DATA_DOWNLOAD_FAILED _EC(1316) // 目标数据下载失败
  2999. // 平台下发采集指令错误码
  3000. #define NET_ERROR_CITIZENMANAGER_ERROR_WORKINGMODE_ERROR _EC(1317) // 工作模式错误
  3001. #define NET_ERROR_CITIZENMANAGER_ERROR_CAPTURE_BUSY _EC(1318) // 采集繁忙中
  3002. #define NET_ERROR_CITIZENMANAGER_ERROR_CAPTURE_TYPE_ERROR _EC(1319) // 不支持该采集方式
  3003. #define NET_ERROR_NORMAL_USER_NOTSUPPORT _EC(1320) // 普通用户不支持下发
  3004. // 制冷机
  3005. #define NET_ERROR_THERMOGRAPHY_REF_SENSOR_OPEN_INVALID _EC(1321) // 制冷机强制开机无效,当天开启次数已用完
  3006. #define NET_ERROR_THERMOGRAPHY_REF_DELAY_SHUT_DOWN_INVALID _EC(1322) // 制冷机延迟关闭无效,当天已达到延迟次数
  3007. #define NET_ERROR_CITIZENID_EXIST _EC(1323) // 证件号已存在
  3008. #define NET_ERROR_FACEMANAGER_FACE_FFE_FAILED _EC(1324) // 目标可检测,但特征值提取失败(算法场景)
  3009. #define NET_ERROR_FACEMANAGER_PHOTO_FEATURE_FAILED_FOR_FA _EC(1325) // 目标照片因口罩,帽子,墨镜等目标属性不符合而提取特征值错误
  3010. #define NET_ERROR_FACEMANAGER_FACE_DATA_PHOTO_INCOMPLETE _EC(1326) // 目标照片不完整
  3011. #define NET_ERROR_DATABASE_ERROR_INSERT_OVERFLOW _EC(1327) // 数据库插入越上限
  3012. /*工装检测合规库错误码 start*/
  3013. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_GROUPID_EXCEED _EC(1328) // 工装检测合规库:组ID超过最大值
  3014. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_ABSTRACT_INIT_ERROR _EC(1329) // 工装检测合规库:建模分析器启动失败
  3015. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_GROUPID_NOT_FOUND _EC(1330) // 工装检测合规库:组ID不存在或为空
  3016. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_DATABASE_ERROR _EC(1331) // 工装检测合规库:数据库操作失败(指的是database操作)
  3017. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_TOKEN_ERROR _EC(1332) // 工装检测合规库:令牌不存在或为空
  3018. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_BEGINNUM_OVERRUN _EC(1333) // 工装检测合规库:查询起始数大于总数
  3019. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_ABSTRACT_STATE _EC(1334) // 工装检测合规库:设备正在建模
  3020. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_BIGPIC_MAXNUM _EC(1335) // 工装检测合规库:单次导入全景图数量超过限制
  3021. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_OBJECT_MAXNUM _EC(1336) // 工装检测合规库:工装数量超过限制
  3022. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_GROUP_SPACE_EXCEED _EC(1337) // 工装检测合规库:超出合规库空间大小限制
  3023. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_ABSTRACTNUM_ZERO _EC(1338) // 工装检测合规库:需手动建模数量为0
  3024. #define NET_ERROR_WORKSUIT_COMPARE_SERVER_INVALID_PARAM _EC(1339) // 工装检测合规库:无效参数
  3025. /*工装检测合规库错误码 end*/
  3026. #define NET_ERROR_CARD_NOT_EXIST _EC(1340) // 卡号不存在
  3027. #define NET_ERROR_TEMPORARY_OUTDATED _EC(1341) // 临时库过时
  3028. /*设备分压业务特有错误码start, 范围_EC(1401) ~ _EC(1500)*/
  3029. #define NET_SUBBIZ_INVALID_SOCKET _EC(1401) // 无效的连接
  3030. #define NET_SUBBIZ_PAUSE_ERROR _EC(1402) // 暂停媒体文件下载失败
  3031. #define NET_SUBBIZ_GET_PORT_ERROR _EC(1403) // 获取私有隧道向上侦听端口失败
  3032. /*设备分压业务特有错误码End*/
  3033. /************************************************************************
  3034. ** 枚举定义
  3035. ***********************************************************************/
  3036. ///@brief 获取网卡信息类型 CLIENT_QueryNetStat 接口使用
  3037. typedef enum tagEM_NET_QUERY_TYPE
  3038. {
  3039. NET_APP_DATA_STAT , // 获取协议栈统计数据,(输入结构体NET_IN_NETAPP_NET_DATA_STAT,输出结构体NET_OUT_NETAPP_NET_DATA_STAT)
  3040. NET_APP_LINK_STAT , // 获取物理链路状态,(输入结构体NET_IN_NETAPP_LINK_STATUS,输出结构体NET_OUT_NETAPP_LINK_STATUS)
  3041. }EM_NET_QUERY_TYPE;
  3042. ///@brief 抓图类型 CLIENT_CapturePictureEx 接口使用
  3043. typedef enum tagNET_CAPTURE_FORMATS
  3044. {
  3045. NET_CAPTURE_BMP, // BMP
  3046. NET_CAPTURE_JPEG, // 100%质量的JPEG
  3047. NET_CAPTURE_JPEG_70, // 70%质量的JPEG
  3048. NET_CAPTURE_JPEG_50, // 50%质量的JPEG
  3049. NET_CAPTURE_JPEG_30, // 30%质量的JPEG
  3050. NET_CAPTURE_JPEG_10 // 10%质量的JPEG
  3051. }NET_CAPTURE_FORMATS;
  3052. ///@brief 设备类型
  3053. typedef enum tagNET_DEVICE_TYPE
  3054. {
  3055. NET_PRODUCT_NONE = 0,
  3056. NET_DVR_NONREALTIME_MACE, // 非实时MACE
  3057. NET_DVR_NONREALTIME, // 非实时
  3058. NET_NVS_MPEG1, // 网络视频服务器
  3059. NET_DVR_MPEG1_2, // MPEG1二路录像机
  3060. NET_DVR_MPEG1_8, // MPEG1八路录像机
  3061. NET_DVR_MPEG4_8, // MPEG4八路录像机
  3062. NET_DVR_MPEG4_16, // MPEG4十六路录像机
  3063. NET_DVR_MPEG4_SX2, // LB系列录像机
  3064. NET_DVR_MEPG4_ST2, // GB系列录像机
  3065. NET_DVR_MEPG4_SH2, // HB系列录像机 10
  3066. NET_DVR_MPEG4_GBE, // GBE系列录像机
  3067. NET_DVR_MPEG4_NVSII, // II代网络视频服务器
  3068. NET_DVR_STD_NEW, // 新标准配置协议
  3069. NET_DVR_DDNS, // DDNS服务器
  3070. NET_DVR_ATM, // ATM机
  3071. NET_NB_SERIAL, // 二代非实时NB系列机器
  3072. NET_LN_SERIAL, // LN系列产品
  3073. NET_BAV_SERIAL, // BAV系列产品
  3074. NET_SDIP_SERIAL, // SDIP系列产品
  3075. NET_IPC_SERIAL, // IPC系列产品 20
  3076. NET_NVS_B, // NVS B系列
  3077. NET_NVS_C, // NVS H系列
  3078. NET_NVS_S, // NVS S系列
  3079. NET_NVS_E, // NVS E系列
  3080. NET_DVR_NEW_PROTOCOL, // 从QueryDevState中查询设备类型,以字符串格式
  3081. NET_NVD_SERIAL, // 解码器
  3082. NET_DVR_N5, // N5
  3083. NET_DVR_MIX_DVR, // 混合DVR
  3084. NET_SVR_SERIAL, // SVR系列
  3085. NET_SVR_BS, // SVR-BS 30
  3086. NET_NVR_SERIAL, // NVR系列
  3087. NET_DVR_N51, // N51
  3088. NET_ITSE_SERIAL, // ITSE 智能分析盒
  3089. NET_ITC_SERIAL, // 智能交通像机设备
  3090. NET_HWS_SERIAL, // 雷达测速仪HWS
  3091. NET_PVR_SERIAL, // 便携式音视频录像机
  3092. NET_IVS_SERIAL, // IVS(智能视频服务器系列)
  3093. NET_IVS_B, // 通用智能视频侦测服务器
  3094. NET_IVS_F, // 目标识别服务器
  3095. NET_IVS_V, // 视频质量诊断服务器 40
  3096. NET_MATRIX_SERIAL, // 矩阵
  3097. NET_DVR_N52, // N52
  3098. NET_DVR_N56, // N56
  3099. NET_ESS_SERIAL, // ESS
  3100. NET_IVS_PC, // 人数统计服务器
  3101. NET_PC_NVR, // pc-nvr
  3102. NET_DSCON, // 大屏控制器
  3103. NET_EVS, // 网络视频存储服务器
  3104. NET_EIVS, // 嵌入式智能分析视频系统
  3105. NET_DVR_N6, // DVR-N6 50
  3106. NET_UDS, // 万能解码器
  3107. NET_AF6016, // 银行报警主机
  3108. NET_AS5008, // 视频网络报警主机
  3109. NET_AH2008, // 网络报警主机
  3110. NET_A_SERIAL, // 报警主机系列
  3111. NET_BSC_SERIAL, // 门禁系列产品
  3112. NET_NVS_SERIAL, // NVS系列产品
  3113. NET_VTO_SERIAL, // VTO系列产品
  3114. NET_VTNC_SERIAL, // VTNC系列产品
  3115. NET_TPC_SERIAL, // TPC系列产品, 即热成像设备 60
  3116. NET_ASM_SERIAL, // 无线中继设备
  3117. NET_VTS_SERIAL, // 管理机
  3118. NET_ARC2016C, // 报警主机ARC2016C
  3119. NET_ASA, // 考勤机
  3120. NET_VTT_SERIAL, // 行业对讲终端
  3121. NET_VTA_SERIAL, // 报警柱
  3122. NET_VTNS_SERIAL, // SIP服务器
  3123. NET_VTH_SERIAL, // 室内机
  3124. NET_IVSS, // IVSS产品
  3125. NET_ASG, // 目标道闸
  3126. NET_RADAR, // 雷达产品
  3127. NET_RADAR_PTZ, // 雷达系统
  3128. NET_RADAR_CAM, // 摄像雷达
  3129. NET_ASE, // 梯控设备
  3130. NET_XRAY_SERVER, // 安检服务器
  3131. NET_XRAY_DEVICE, // 安检一体机
  3132. NET_SECURITY_GATE, // 安检门
  3133. NET_TS, // 以太网交换机
  3134. NET_GP, // 工牌相机
  3135. NET_EAS, //商超防盗天线
  3136. }NET_DEVICE_TYPE ;
  3137. ///@brief 语言种类
  3138. typedef enum __LANGUAGE_TYPE
  3139. {
  3140. DH_LANGUAGE_ENGLISH, // 英文
  3141. DH_LANGUAGE_CHINESE_SIMPLIFIED, // 简体中文
  3142. DH_LANGUAGE_CHINESE_TRADITIONAL, // 繁体中文
  3143. DH_LANGUAGE_ITALIAN, // 意大利文
  3144. DH_LANGUAGE_SPANISH, // 西班牙文
  3145. DH_LANGUAGE_JAPANESE, // 日文版
  3146. DH_LANGUAGE_RUSSIAN, // 俄文版
  3147. DH_LANGUAGE_FRENCH, // 法文版
  3148. DH_LANGUAGE_GERMAN, // 德文版
  3149. DH_LANGUAGE_PORTUGUESE, // 葡萄牙语
  3150. DH_LANGUAGE_TURKEY, // 土尔其语
  3151. DH_LANGUAGE_POLISH, // 波兰语
  3152. DH_LANGUAGE_ROMANIAN, // 罗马尼亚
  3153. DH_LANGUAGE_HUNGARIAN, // 匈牙利语
  3154. DH_LANGUAGE_FINNISH, // 芬兰语
  3155. DH_LANGUAGE_ESTONIAN, // 爱沙尼亚语
  3156. DH_LANGUAGE_KOREAN, // 韩语
  3157. DH_LANGUAGE_FARSI, // 波斯语
  3158. DH_LANGUAGE_DANSK, // 丹麦语
  3159. DH_LANGUAGE_CZECHISH, // 捷克文
  3160. DH_LANGUAGE_BULGARIA, // 保加利亚文
  3161. DH_LANGUAGE_SLOVAKIAN, // 斯洛伐克语
  3162. DH_LANGUAGE_SLOVENIA, // 斯洛文尼亚文
  3163. DH_LANGUAGE_CROATIAN, // 克罗地亚语
  3164. DH_LANGUAGE_DUTCH, // 荷兰语
  3165. DH_LANGUAGE_GREEK, // 希腊语
  3166. DH_LANGUAGE_UKRAINIAN, // 乌克兰语
  3167. DH_LANGUAGE_SWEDISH, // 瑞典语
  3168. DH_LANGUAGE_SERBIAN, // 塞尔维亚语
  3169. DH_LANGUAGE_VIETNAMESE, // 越南语
  3170. DH_LANGUAGE_LITHUANIAN, // 立陶宛语
  3171. DH_LANGUAGE_FILIPINO, // 菲律宾语
  3172. DH_LANGUAGE_ARABIC, // 阿拉伯语
  3173. DH_LANGUAGE_CATALAN, // 加泰罗尼亚语
  3174. DH_LANGUAGE_LATVIAN, // 拉脱维亚语
  3175. DH_LANGUAGE_THAI, // 泰语
  3176. DH_LANGUAGE_HEBREW, // 希伯来语
  3177. DH_LANGUAGE_Bosnian, // 波斯尼亚文
  3178. } DH_LANGUAGE_TYPE;
  3179. ///@brief 升级类型
  3180. typedef enum __EM_UPGRADE_TYPE
  3181. {
  3182. DH_UPGRADE_BIOS_TYPE = 1, // BIOS升级
  3183. DH_UPGRADE_WEB_TYPE, // WEB升级
  3184. DH_UPGRADE_BOOT_YPE, // BOOT升级
  3185. DH_UPGRADE_CHARACTER_TYPE, // 汉字库
  3186. DH_UPGRADE_LOGO_TYPE, // LOGO
  3187. DH_UPGRADE_EXE_TYPE, // EXE,例如播放器等
  3188. DH_UPGRADE_DEVCONSTINFO_TYPE, // 设备固有信息设置(如:硬件ID,MAC,序列号)
  3189. DH_UPGRADE_PERIPHERAL_TYPE, // 外设接入从片(如车载287芯片)
  3190. DH_UPGRADE_GEOINFO_TYPE, // 地理信息定位芯片
  3191. DH_UPGRADE_MENU, // 菜单(设备操作界面的图片)
  3192. DH_UPGRADE_ROUTE, // 线路文件(如公交线路)
  3193. DH_UPGRADE_ROUTE_STATE_AUTO, // 报站音频(与线路配套的报站音频)
  3194. DH_UPGRADE_SCREEN, // 调度屏(如公交操作屏)
  3195. } EM_UPGRADE_TYPE;
  3196. ///@brief 录象类型(定时、动态检测、报警)
  3197. typedef enum __REC_TYPE
  3198. {
  3199. DH_REC_TYPE_TIM = 0,
  3200. DH_REC_TYPE_MTD,
  3201. DH_REC_TYPE_ALM,
  3202. DH_REC_TYPE_NUM = 3,
  3203. } REC_TYPE;
  3204. ///@brief 网络类型
  3205. typedef enum __GPRSCDMA_NETWORK_TYPE
  3206. {
  3207. DH_TYPE_AUTOSEL = 0, // 自动选择
  3208. DH_TYPE_TD_SCDMA, // TD-SCDMA网络
  3209. DH_TYPE_WCDMA, // WCDMA网络
  3210. DH_TYPE_CDMA_1x, // CDMA 1.x网络
  3211. DH_TYPE_EDGE, // GPRS网络
  3212. DH_TYPE_EVDO, // EVDO网络
  3213. DH_TYPE_WIFI, // 无线
  3214. } EM_GPRSCDMA_NETWORK_TYPE;
  3215. ///@brief 接口类型,对应CLIENT_SetSubconnCallBack接口
  3216. typedef enum __EM_INTERFACE_TYPE
  3217. {
  3218. DH_INTERFACE_OTHER = 0x00000000, // 未知接口
  3219. DH_INTERFACE_REALPLAY, // 实时预览接口
  3220. DH_INTERFACE_PREVIEW, // 多画面预览接口
  3221. DH_INTERFACE_PLAYBACK, // 回放接口
  3222. DH_INTERFACE_DOWNLOAD, // 下载接口
  3223. DH_INTERFACE_REALLOADPIC, // 下载智能图片接口
  3224. } EM_INTERFACE_TYPE;
  3225. ///@brief 视频预览断开事件类型
  3226. typedef enum _EM_REALPLAY_DISCONNECT_EVENT_TYPE
  3227. {
  3228. DISCONNECT_EVENT_REAVE, // 表示高级用户抢占低级用户资源
  3229. DISCONNECT_EVENT_NETFORBID, // 禁止入网
  3230. DISCONNECT_EVENT_SUBCONNECT, // 动态子链接断开
  3231. }EM_REALPLAY_DISCONNECT_EVENT_TYPE;
  3232. ///@brief 事件文件的文件标签类型
  3233. typedef enum __EM_EVENT_FILETAG
  3234. {
  3235. DH_ATMBEFOREPASTE = 1, // ATM贴条前
  3236. DH_ATMAFTERPASTE, // ATM贴条后
  3237. }EM_EVENT_FILETAG;
  3238. ///@brief IPC类型
  3239. typedef enum __EM_IPC_TYPE
  3240. {
  3241. DH_IPC_PRIVATE, // 私有
  3242. DH_IPC_AEBELL, // AEBELL
  3243. DH_IPC_PANASONIC, // PANASONIC
  3244. DH_IPC_SONY, // SONY
  3245. DH_IPC_DYNACOLOR, // Dynacolor
  3246. DH_IPC_TCWS = 5, // TCWS
  3247. DH_IPC_SAMSUNG, // SAMSUNG
  3248. DH_IPC_YOKO, // YOKO
  3249. DH_IPC_AXIS, // AXIS
  3250. DH_IPC_SANYO, // SANYO
  3251. DH_IPC_BOSH = 10, // Bosch
  3252. DH_IPC_PECLO, // Peclo
  3253. DH_IPC_PROVIDEO, // Provideo
  3254. DH_IPC_ACTI, // ACTi
  3255. DH_IPC_VIVOTEK, // Vivotek
  3256. DH_IPC_ARECONT = 15, // Arecont
  3257. DH_IPC_PRIVATEEH, // PrivateEH
  3258. DH_IPC_IMATEK, // IMatek
  3259. DH_IPC_SHANY, // Shany
  3260. DH_IPC_VIDEOTREC, // VIDEOTREC
  3261. DH_IPC_URA = 20, // Ura
  3262. DH_IPC_BITICINO, // Bticino
  3263. DH_IPC_ONVIF, // Onvif协议类型
  3264. DH_IPC_SHEPHERD, // SHEPHERD
  3265. DH_IPC_YAAN, // YAAN
  3266. DH_IPC_AIRPOINT = 25, // Airpop
  3267. DH_IPC_TYCO, // TYCO
  3268. DH_IPC_XUNMEI, // XUNMEI
  3269. DH_IPC_HIKVISION,
  3270. DH_IPC_LG, // LG
  3271. DH_IPC_AOQIMAN = 30, // AOQIMAN
  3272. DH_IPC_BAOKANG, // BAOKANG
  3273. DH_IPC_WATCHNET, // Watchnet
  3274. DH_IPC_XVISION, // Xvision
  3275. DH_IPC_FUSITSU, // FUSITSU
  3276. DH_IPC_CANON = 35, // Canon
  3277. DH_IPC_GE, // GE
  3278. DH_IPC_Basler, // Basler
  3279. DH_IPC_Patro, // Patro
  3280. DH_IPC_CPKNC, // CPPLUS K系列
  3281. DH_IPC_CPRNC = 40, // CPPLUS R系列
  3282. DH_IPC_CPUNC, // CPPLUS U系列
  3283. DH_IPC_CPPLUS, // CPPLUS IPC
  3284. DH_IPC_XunmeiS, // XunmeiS,实际协议为Onvif
  3285. DH_IPC_GDDW, // GDDW
  3286. DH_IPC_PSIA = 45, // PSIA
  3287. DH_IPC_GB2818, // GB2818
  3288. DH_IPC_GDYX, // GDYX
  3289. DH_IPC_OTHER, // 由用户自定义
  3290. DH_IPC_CPUNR, // CPPLUS NVR
  3291. DH_IPC_CPUAR = 50, // CPPLUS DVR
  3292. DH_IPC_AIRLIVE, // Airlive
  3293. DH_IPC_NPE, // NPE
  3294. DH_IPC_AXVIEW, // AXVIEW
  3295. DH_IPC_DFWL, // DFWL
  3296. DH_IPC_HYUNDAI = 56, // HYUNDAI DVR
  3297. DH_IPC_APHD, // APHD
  3298. DH_IPC_WELLTRANS , // WELLTRANS
  3299. DH_IPC_CDJF, // CDJF
  3300. DH_IPC_JVC = 60, // JVC
  3301. DH_IPC_INFINOVA, // INFINOVA
  3302. DH_IPC_ADT, // ADT
  3303. DH_IPC_SIVIDI, // SIVIDI
  3304. DH_IPC_CPUNP, // CPPLUS 球机
  3305. DH_IPC_HX = 65, // HX
  3306. DH_IPC_TJGS, // TJGS
  3307. DH_IPC_MULTICAST = 79, // 组播
  3308. DH_IPC_RVI = 84, // RVi
  3309. DH_IPC_HONEYWELL = 95, // Honeywell
  3310. }EM_IPC_TYPE;
  3311. ///@brief H264 编码级别
  3312. typedef enum __EM_H264_PROFILE_RANK
  3313. {
  3314. DH_PROFILE_BASELINE = 1, // 提供I/P帧,仅支持progressive(逐行扫描)和CAVLC
  3315. DH_PROFILE_MAIN, // 提供I/P/B帧,支持progressiv和interlaced,提供CAVLC或CABAC
  3316. DH_PROFILE_EXTENDED, // 提供I/P/B/SP/SI帧,仅支持progressive(逐行扫描)和CAVLC
  3317. DH_PROFILE_HIGH = 4, // 即FRExt,Main_Profile基础上新增:8x8 intra prediction(8x8 帧内预测), custom
  3318. // quant(自定义量化), lossless video coding(无损视频编码), 更多的yuv格式
  3319. }EM_H264_PROFILE_RANK;
  3320. ///@brief 硬盘的状态
  3321. typedef enum __EM_DISK_TYPE
  3322. {
  3323. DH_DISK_READ_WRITE, // 读写驱动器
  3324. DH_DISK_READ_ONLY, // 只读驱动器
  3325. DH_DISK_BACKUP, // 备份驱动器或媒体驱动器
  3326. DH_DISK_REDUNDANT, // 冗余驱动器
  3327. DH_DISK_SNAPSHOT, // 快照驱动器
  3328. }EM_DISK_TYPE;
  3329. ///@brief 码流加密算法工作模式
  3330. typedef enum __EM_ENCRYPT_ALOG_WORKMODE
  3331. {
  3332. ENCRYPT_ALOG_WORKMODE_ECB, // ECB模式
  3333. ENCRYPT_ALOG_WORKMODE_CBC, // CBC模式
  3334. ENCRYPT_ALOG_WORKMODE_CFB, // CFB模式
  3335. ENCRYPT_ALOG_WORKMODE_OFB, // OFB模式
  3336. }EM_ENCRYPT_ALOG_WORKMODE;
  3337. ///@brief PPP拨号状态
  3338. typedef enum __EM_MOBILE_PPP_STATE
  3339. {
  3340. MOBILE_PPP_UP = 0, // 链接已经建立
  3341. MOBILE_PPP_DOWN, // ppp连接断开
  3342. MOBILE_PPP_CONNECTING, // 正在创建链接
  3343. MOBILE_PPP_CLOSEING, // 正在关闭PPP链接
  3344. } EM_MOBILE_PPP_STATE;
  3345. ///@brief 网卡所处状态
  3346. typedef enum __EM_3GMOBILE_STATE
  3347. {
  3348. MOBILE_MODULE_OFF, // 表示3g网卡模块关闭
  3349. MOBILE_MODULE_STARTING, // 表示3g网卡模块正在启动
  3350. MOBILE_MODULE_WORKING, // 表示3g网卡模块正在工作中
  3351. }EM_3GMOBILE_STATE;
  3352. ///@brief 登录类型
  3353. typedef enum tagEM_LOGIN_SPAC_CAP_TYPE
  3354. {
  3355. EM_LOGIN_SPEC_CAP_TCP = 0, // TCP登陆, 默认方式
  3356. EM_LOGIN_SPEC_CAP_ANY = 1, // 无条件登陆
  3357. EM_LOGIN_SPEC_CAP_SERVER_CONN = 2, // 主动注册的登入
  3358. EM_LOGIN_SPEC_CAP_MULTICAST = 3, // 组播登陆
  3359. EM_LOGIN_SPEC_CAP_UDP = 4, // UDP方式下的登入
  3360. EM_LOGIN_SPEC_CAP_MAIN_CONN_ONLY = 6, // 只建主连接下的登入
  3361. EM_LOGIN_SPEC_CAP_SSL = 7, // SSL加密方式登陆
  3362. EM_LOGIN_SPEC_CAP_INTELLIGENT_BOX = 9, // 登录智能盒远程设备
  3363. EM_LOGIN_SPEC_CAP_NO_CONFIG = 10, // 登录设备后不做取配置操作
  3364. EM_LOGIN_SPEC_CAP_U_LOGIN = 11, // 用U盾设备的登入
  3365. EM_LOGIN_SPEC_CAP_LDAP = 12, // LDAP方式登录
  3366. EM_LOGIN_SPEC_CAP_AD = 13, // AD(ActiveDirectory)登录方式
  3367. EM_LOGIN_SPEC_CAP_RADIUS = 14, // Radius 登录方式
  3368. EM_LOGIN_SPEC_CAP_SOCKET_5 = 15, // Socks5登陆方式
  3369. EM_LOGIN_SPEC_CAP_CLOUD = 16, // 云登陆方式
  3370. EM_LOGIN_SPEC_CAP_AUTH_TWICE = 17, // 二次鉴权登陆方式
  3371. EM_LOGIN_SPEC_CAP_TS = 18, // TS码流客户端登陆方式
  3372. EM_LOGIN_SPEC_CAP_P2P = 19, // 为P2P登陆方式
  3373. EM_LOGIN_SPEC_CAP_MOBILE = 20, // 手机客户端登陆
  3374. EM_LOGIN_SPEC_CAP_TLS_ADAPTER = 21, // 自适应tls加密
  3375. EM_LOGIN_SPEC_CAP_TLS_COMPEL = 22, // 强制tls加密
  3376. EM_LOGIN_SPEC_CAP_TLS_MAIN_ONLY = 23, // 部分tls加密
  3377. EM_LOGIN_SPEC_CAP_INVALID // 无效的登陆方式
  3378. }EM_LOGIN_SPAC_CAP_TYPE;
  3379. /////////////////////////////预览相关/////////////////////////////////
  3380. ///@brief 预览类型,对应CLIENT_RealPlayEx接口
  3381. typedef enum _RealPlayType
  3382. {
  3383. DH_RType_Realplay = 0, // 实时预览
  3384. DH_RType_Multiplay, // 多画面预览
  3385. DH_RType_Realplay_0, // 实时预览-主码流,等同于DH_RType_Realplay
  3386. DH_RType_Realplay_1, // 实时预览-从码流1
  3387. DH_RType_Realplay_2, // 实时预览-从码流2
  3388. DH_RType_Realplay_3, // 实时预览-从码流3
  3389. DH_RType_Multiplay_1, // 多画面预览-1画面
  3390. DH_RType_Multiplay_4, // 多画面预览-4画面
  3391. DH_RType_Multiplay_8, // 多画面预览-8画面
  3392. DH_RType_Multiplay_9, // 多画面预览-9画面
  3393. DH_RType_Multiplay_16, // 多画面预览-16画面
  3394. DH_RType_Multiplay_6, // 多画面预览-6画面
  3395. DH_RType_Multiplay_12, // 多画面预览-12画面
  3396. DH_RType_Multiplay_25, // 多画面预览-25画面
  3397. DH_RType_Multiplay_36, // 多画面预览-36画面
  3398. DH_RType_Multiplay_64, // 多画面预览-64画面
  3399. DH_RType_Multiplay_255, // 不修改当前预览通道数
  3400. DH_RType_Realplay_Audio, // 只拉音频, 非通用
  3401. DH_RType_Realplay_Test = 255, // 带宽测试码流
  3402. } DH_RealPlayType;
  3403. /////////////////////////////云台相关/////////////////////////////////
  3404. ///@brief 通用云台控制命令
  3405. typedef enum _PTZ_ControlType
  3406. {
  3407. DH_PTZ_UP_CONTROL = 0, // 上 速度对应parma2(1-8)
  3408. DH_PTZ_DOWN_CONTROL, // 下 速度对应parma2(1-8)
  3409. DH_PTZ_LEFT_CONTROL, // 左 速度对应parma2(1-8)
  3410. DH_PTZ_RIGHT_CONTROL, // 右 速度对应parma2(1-8)
  3411. DH_PTZ_ZOOM_ADD_CONTROL, // 变倍+ 对应param2
  3412. DH_PTZ_ZOOM_DEC_CONTROL, // 变倍- 对应param2
  3413. DH_PTZ_FOCUS_ADD_CONTROL, // 调焦- 对应param2
  3414. DH_PTZ_FOCUS_DEC_CONTROL, // 调焦+ 对应param2
  3415. DH_PTZ_APERTURE_ADD_CONTROL, // 光圈+ 对应param2
  3416. DH_PTZ_APERTURE_DEC_CONTROL, // 光圈- 对应param2
  3417. DH_PTZ_POINT_MOVE_CONTROL, // 转至预置点 param2为预置点序号
  3418. DH_PTZ_POINT_SET_CONTROL, // 设置 param2为预置点序号,最大序号可以从云台能力集中获取 param4可以传预置点名称,预置点名称最大有效值为63字节。param3需传入个bool类型,当param3为ture时,预置点名称最大为255字符。
  3419. DH_PTZ_POINT_DEL_CONTROL, // 删除 param2为预置点序号
  3420. DH_PTZ_POINT_LOOP_CONTROL, // 点间巡航 param1为巡航线路
  3421. DH_PTZ_LAMP_CONTROL // 灯光雨刷 对应param1(1-开启,0-关闭)
  3422. } DH_PTZ_ControlType;
  3423. ///@brief 云台控制扩展命令
  3424. typedef enum _EXTPTZ_ControlType
  3425. {
  3426. DH_EXTPTZ_LEFTTOP = 0x20, // 左上
  3427. DH_EXTPTZ_RIGHTTOP, // 右上
  3428. DH_EXTPTZ_LEFTDOWN, // 左下
  3429. DH_EXTPTZ_RIGHTDOWN, // 右下
  3430. DH_EXTPTZ_ADDTOLOOP, // 加入预置点到巡航 巡航线路 预置点值
  3431. DH_EXTPTZ_DELFROMLOOP, // 删除巡航中预置点 巡航线路 预置点值
  3432. DH_EXTPTZ_CLOSELOOP, // 清除巡航 巡航线路
  3433. DH_EXTPTZ_STARTPANCRUISE, // 开始水平旋转
  3434. DH_EXTPTZ_STOPPANCRUISE, // 停止水平旋转
  3435. DH_EXTPTZ_SETLEFTBORDER, // 设置左边界
  3436. DH_EXTPTZ_SETRIGHTBORDER, // 设置右边界
  3437. DH_EXTPTZ_STARTLINESCAN, // 开始线扫
  3438. DH_EXTPTZ_CLOSELINESCAN, // 停止线扫
  3439. DH_EXTPTZ_SETMODESTART, // 设置模式开始 模式线路
  3440. DH_EXTPTZ_SETMODESTOP, // 设置模式结束 模式线路
  3441. DH_EXTPTZ_RUNMODE, // 运行模式 模式线路
  3442. DH_EXTPTZ_STOPMODE, // 停止模式 模式线路
  3443. DH_EXTPTZ_DELETEMODE, // 清除模式 模式线路
  3444. DH_EXTPTZ_REVERSECOMM, // 翻转命令
  3445. DH_EXTPTZ_FASTGOTO, // 快速定位 水平坐标(-8191~8191) 垂直坐标(-8191~8191) 变倍(-16~16)
  3446. DH_EXTPTZ_AUXIOPEN, // 辅助开关开 辅助点(param4对应 PTZ_CONTROL_AUXILIARY,param1、param2、param3无效,dwStop设置为FALSE)
  3447. DH_EXTPTZ_AUXICLOSE, // 辅助开关关 辅助点(param4对应 PTZ_CONTROL_AUXILIARY,param1、param2、param3无效,dwStop设置为FALSE)
  3448. DH_EXTPTZ_OPENMENU = 0x36, // 打开球机菜单
  3449. DH_EXTPTZ_CLOSEMENU, // 关闭菜单
  3450. DH_EXTPTZ_MENUOK, // 菜单确定
  3451. DH_EXTPTZ_MENUCANCEL, // 菜单取消
  3452. DH_EXTPTZ_MENUUP, // 菜单上
  3453. DH_EXTPTZ_MENUDOWN, // 菜单下
  3454. DH_EXTPTZ_MENULEFT, // 菜单左
  3455. DH_EXTPTZ_MENURIGHT, // 菜单右
  3456. DH_EXTPTZ_ALARMHANDLE = 0x40, // 报警联动云台 parm1:报警输入通道;parm2:报警联动类型1-预置点2-线扫3-巡航;parm3:联动值,如预置点号
  3457. DH_EXTPTZ_MATRIXSWITCH = 0x41, // 矩阵切换 parm1:预览器号(视频输出号);parm2:视频输入号;parm3:矩阵号
  3458. DH_EXTPTZ_LIGHTCONTROL, // 灯光控制器
  3459. DH_EXTPTZ_EXACTGOTO, // 三维精确定位 parm1:水平角度(0~3600);parm2:垂直坐标(-1800-1800);parm3:变倍(1~128),变倍为档位,并非实际变倍倍数
  3460. DH_EXTPTZ_RESETZERO, // 三维定位重设零位
  3461. DH_EXTPTZ_MOVE_ABSOLUTELY, // 绝对移动控制命令,param4对应结构 PTZ_CONTROL_ABSOLUTELY
  3462. DH_EXTPTZ_MOVE_CONTINUOUSLY, // 持续移动控制命令,param4对应结构 PTZ_CONTROL_CONTINUOUSLY
  3463. DH_EXTPTZ_GOTOPRESET, // 云台控制命令,以一定速度转到预置位点,parm4对应结构PTZ_CONTROL_GOTOPRESET
  3464. DH_EXTPTZ_SET_VIEW_RANGE = 0x49, // 设置可视域(param4对应结构 PTZ_VIEW_RANGE_INFO)
  3465. DH_EXTPTZ_FOCUS_ABSOLUTELY = 0x4A, // 绝对聚焦(param4对应结构PTZ_FOCUS_ABSOLUTELY)
  3466. DH_EXTPTZ_HORSECTORSCAN = 0x4B, // 水平扇扫(param4对应PTZ_CONTROL_SECTORSCAN,param1、param2、param3无效)
  3467. DH_EXTPTZ_VERSECTORSCAN = 0x4C, // 垂直扇扫(param4对应PTZ_CONTROL_SECTORSCAN,param1、param2、param3无效)
  3468. DH_EXTPTZ_SET_ABS_ZOOMFOCUS = 0x4D, // 设定绝对焦距、聚焦值,param1为焦距,范围:[0,255],param2为聚焦,范围:[0,255],param3、param4无效
  3469. DH_EXTPTZ_SET_FISHEYE_EPTZ = 0x4E, // 控制鱼眼电子云台,param4对应结构 PTZ_CONTROL_SET_FISHEYE_EPTZ
  3470. DH_EXTPTZ_SET_TRACK_START = 0x4F, // 轨道机开始控制(param4对应结构体为 PTZ_CONTROL_SET_TRACK_CONTROL,dwStop传FALSE, param1、param2、param3无效)
  3471. DH_EXTPTZ_SET_TRACK_STOP = 0x50, // 轨道机停止控制(param4对应结构体为 PTZ_CONTROL_SET_TRACK_CONTROL,dwStop传FALSE,param1、param2、param3无效)
  3472. DH_EXTPTZ_RESTART = 0x51, // 云台重启命令(param1、param2、param3 param4 均无效,dwStop设置为FALSE)
  3473. DH_EXTPTZ_INTELLI_TRACKMOVE = 0x52, // 云台连续移动,枪球联动专用,param4对应结构 PTZ_CONTROL_INTELLI_TRACKMOVE
  3474. DH_EXTPTZ_SET_FOCUS_REGION = 0x53, // 设置区域聚焦参数(param4对应结构体为PTZ_CONTROL_SET_FOCUS_REGION,dwStop传FALSE,param1、param2、param3无效)
  3475. DH_EXTPTZ_PAUSELINESCAN = 0x54, // 暂停线扫(param1、param2、param3param4均无效,dwStop设置为FALSE)
  3476. DH_EXTPTZ_INTELLI_SETLENSWISDOMSTATE = 0x55,// 目标跟踪时设置聚焦模式(param4对应结构体为PTZ_CONTROL_INTELLI_SETLENSWISDOMSTATE,dwStop传FALSE,param1、param2、param3无效)
  3477. DH_EXTPTZ_INTELLI_SETFOCUSAREA = 0x56, // 设置聚焦区域(param4对应结构体为PTZ_CONTROL_INTELLI_SETFOCUSAREA,dwStop传FALSE,param1、param2、param3无效)
  3478. // 注:目标跟踪若不需设置聚焦区域,因聚焦区域会沿袭上次主动设置状态,故需主动调用此接口取消设置聚焦区域
  3479. DH_EXTPTZ_UP_TELE = 0x70, // 上 + TELE param1=速度(1-8),下同
  3480. DH_EXTPTZ_DOWN_TELE, // 下 + TELE
  3481. DH_EXTPTZ_LEFT_TELE, // 左 + TELE
  3482. DH_EXTPTZ_RIGHT_TELE, // 右 + TELE
  3483. DH_EXTPTZ_LEFTUP_TELE, // 左上 + TELE
  3484. DH_EXTPTZ_LEFTDOWN_TELE, // 左下 + TELE
  3485. DH_EXTPTZ_TIGHTUP_TELE, // 右上 + TELE
  3486. DH_EXTPTZ_RIGHTDOWN_TELE, // 右下 + TELE
  3487. DH_EXTPTZ_UP_WIDE, // 上 + WIDE param1=速度(1-8),下同
  3488. DH_EXTPTZ_DOWN_WIDE, // 下 + WIDE
  3489. DH_EXTPTZ_LEFT_WIDE, // 左 + WIDE
  3490. DH_EXTPTZ_RIGHT_WIDE, // 右 + WIDE
  3491. DH_EXTPTZ_LEFTUP_WIDE, // 左上 + WIDE
  3492. DH_EXTPTZ_LEFTDOWN_WIDE, // 左下 + WIDE
  3493. DH_EXTPTZ_TIGHTUP_WIDE, // 右上 + WIDE
  3494. DH_EXTPTZ_RIGHTDOWN_WIDE, // 右下 + WIDE
  3495. DH_EXTPTZ_GOTOPRESETSNAP = 0x80, // 转至预置点并抓图
  3496. DH_EXTPTZ_DIRECTIONCALIBRATION = 0x82, // 校准云台方向(双方向校准)
  3497. DH_EXTPTZ_SINGLEDIRECTIONCALIBRATION = 0x83, // 校准云台方向(单防线校准),param4对应结构 NET_IN_CALIBRATE_SINGLEDIRECTION
  3498. DH_EXTPTZ_MOVE_RELATIVELY = 0x84, // 云台相对定位,param4对应结构 NET_IN_MOVERELATIVELY_INFO
  3499. DH_EXTPTZ_SET_DIRECTION = 0x85, // 设置云台方向, param4对应结构 NET_IN_SET_DIRECTION_INFO
  3500. DH_EXTPTZ_BASE_MOVE_ABSOLUTELY = 0x86, // 精准绝对移动控制命令, param4对应结构 NET_IN_PTZBASE_MOVEABSOLUTELY_INFO(通过 CFG_CAP_CMD_PTZ 命令获取云台能力集( CFG_PTZ_PROTOCOL_CAPS_INFO ),若bSupportReal为TRUE则设备支持该操作)
  3501. DH_EXTPTZ_BASE_MOVE_CONTINUOUSLY, // 云台连续移动控制命令, param4 对应结构 NET_IN_PTZBASE_MOVE_CONTINUOUSLY_INFO. 通过 CFG_CAP_CMD_PTZ 命令获取云台能力集
  3502. // 若 CFG_PTZ_PROTOCOL_CAPS_INFO 中 stuMoveContinuously 字段的 stuType.bSupportExtra 为 TRUE, 表示设备支持该操作
  3503. DH_EXTPTZ_BASE_SET_FOCUS_MAP_VALUE, // 设置当前位置聚焦值, param4对应结构体 NET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO
  3504. DH_EXTPTZ_BASE_MOVE_ABSOLUTELY_ONLYPT, // 绝对定位独立控制PT并能以度/秒为单位的速度控制, param4对应结构 NET_IN_PTZBASE_MOVEABSOLUTELY_ONLYPT_INFO
  3505. DH_EXTPTZ_BASE_MOVE_ABSOLUTELY_ONLYZOOM, // 绝对定位独立控制zoom,并能控制变倍速度, param4对应结构 NET_IN_PTZBASE_MOVEABSOLUTELY_ONLYZOOM_INFO
  3506. DH_EXTPTZ_STOP_MOVE, // 云台移动停止,同时也停止巡航模式,param4对应结构体 NET_IN_STOP_MOVE_INFO
  3507. DH_EXTPTZ_START, // 开始云台控制,param4对应结构体 NET_IN_PTZ_START_INFO
  3508. DH_EXTPTZ_STOP, // 结束云台控制,param4对应结构体 NET_IN_PTZ_STOP_INFO
  3509. DH_EXTPTZ_START_PATTERN_RECORD, // 开始模式记录,param4对应结构体 NET_IN_START_PATTERN_RECORD_INFO
  3510. DH_EXTPTZ_STOP_PATTERN_RECORD, // 停止模式记录,param4对应结构体 NET_IN_STOP_PATTERN_RECORD_INFO
  3511. DH_EXTPTZ_START_PATTERN_REPLAY, // 开始模式回放,param4对应结构体 NET_IN_START_PATTERN_REPLAY_INFO
  3512. DH_EXTPTZ_STOP_PATTERN_REPLAY, // 停止模式回放,param4对应结构体 NET_IN_STOP_PATTERN_REPLAY_INFO
  3513. DH_EXTPTZ_MOVE_DIRECTLY, // 云台三维定位, param4对应结构体 NET_IN_MOVE_DIRECTLY_INFO
  3514. DH_EXTPTZ_TOTAL, // 最大命令值
  3515. } DH_EXTPTZ_ControlType;
  3516. ///@brief 鱼眼电子云台控制命令
  3517. typedef enum tagNET_FISHEYE_EPTZ_CMD
  3518. {
  3519. NET_FISHEYE_EPTZ_CMD_UNKOWN, // 未知类型
  3520. NET_FISHEYE_EPTZ_CMD_ZOOMIN, // 放大,dwParam1表示步长,范围1~8
  3521. NET_FISHEYE_EPTZ_CMD_ZOOMOUT, // 缩小,dwParam1表示步长,范围1~8
  3522. NET_FISHEYE_EPTZ_CMD_UP, // 向上移动,dwParam1表示步长,范围1~8
  3523. NET_FISHEYE_EPTZ_CMD_DOWN, // 向下移动,dwParam1表示步长,范围1~8
  3524. NET_FISHEYE_EPTZ_CMD_LEFT, // 向左移动,dwParam1表示步长,范围1~8
  3525. NET_FISHEYE_EPTZ_CMD_RIGHT, // 向右移动,dwParam1表示步长,范围1~8
  3526. NET_FISHEYE_EPTZ_CMD_ROTATECLOCK, // 自动顺时针旋转,dwParam1表示步长,范围1~8
  3527. NET_FISHEYE_EPTZ_CMD_ROTATEANTICLOCK, // 自动逆时针旋转,dwParam1表示步长,范围1~8
  3528. NET_FISHEYE_EPTZ_CMD_STOP, // 终止自动旋转操作
  3529. NET_FISHEYE_EPTZ_CMD_TAPVIEW, // 显示指定位置,即点即看,dwParam1表示eptz(电子云台)的焦点横坐标,即焦点在矫正后的图像中的横坐标,取值不超过矫正后输出图像的宽
  3530. // dwParam2表示eptz(电子云台)的焦点纵坐标,即焦点在矫正后的图像中的纵坐标,取值不超过矫正后输出图像的高
  3531. NET_FISHEYE_EPTZ_CMD_SHOEREGION, // 框选放大,wParam1表示所选矩形中心点的横坐标,
  3532. // dwParam2表示所选矩形中心点的纵坐标,dwParam3表示所选矩形的宽
  3533. // dwParam4表示所选矩形的高
  3534. }NET_FISHEYE_EPTZ_CMD;
  3535. ///@brief 轨道机控制命令
  3536. typedef enum tagNET_TRACK_CONTROL_CMD
  3537. {
  3538. NET_TRACK_CONTROL_CMD_UP, // 向上移动,dwParam1表示步长,范围1~8
  3539. NET_TRACK_CONTROL_CMD_DOWN, // 向下移动,dwParam1表示步长,范围1~8
  3540. NET_TRACK_CONTROL_CMD_LEFT, // 向左移动,dwParam1表示步长,范围1~8
  3541. NET_TRACK_CONTROL_CMD_RIGHT, // 向右移动,dwParam1表示步长,范围1~8
  3542. NET_TRACK_CONTROL_CMD_SETPRESET, // 设置预置点,dwParam1表示预置点值
  3543. NET_TRACK_CONTROL_CMD_CLEARPRESET, // 清除预置点,dwParam1表示预置点值
  3544. NET_TRACK_CONTROL_CMD_GOTOPRESET, // 转至预置点,dwParam1表示预置点值
  3545. } NET_TRACK_CONTROL_CMD;
  3546. ///@brief 鱼眼矫正模式
  3547. typedef enum tagNET_CALIBRATE_MODE
  3548. {
  3549. NET_FISHEYE_CALIBRATE_MODE_UNKOWN, // 未知模式
  3550. NET_FISHEYE_CALIBRATE_MODE_ORIGIAL, // 原始图像模式
  3551. NET_FISHEYE_CALIBRATE_MODE_CONFIG, // 配置模
  3552. NET_FISHEYE_CALIBRATE_MODE_PANORAMA, // 全景模式
  3553. NET_FISHEYE_CALIBRATE_MODE_DOUBLEPANORAMA, // 双全景模式
  3554. NET_FISHEYE_CALIBRATE_MODE_ORIGIALPLUSTHREEEPTZREGION, // 1+3模式(一个原始鱼眼图像加3个EPtz图像)
  3555. NET_FISHEYE_CALIBRATE_MODE_SINGLE, // 单画面EPtz模式(只有一个EPtz画面)
  3556. NET_FISHEYE_CALIBRATE_MODE_FOUREPTZREGION, // 4画面模式(4个EPtz控制画面)
  3557. NET_FISHEYE_CALIBRATE_MODE_NORMAL, // 普通模式
  3558. }NET_FISHEYE_CALIBRATE_MODE;
  3559. ///@brief 鱼眼类型
  3560. typedef enum tagNET_FISHEYE_TYPE
  3561. {
  3562. NET_FISHEYE_UNKOWN =0 , //未知
  3563. NET_FISHEYE_CHIP , //仅支持设备端鱼眼矫正
  3564. NET_FISHEYE_PLUGIN , //仅支持控件鱼眼矫正
  3565. NET_FISHEYE_CHIP_PLUGIN , //二者都支持
  3566. }NET_FISHEYE_TYPE;
  3567. ///@brief 鱼眼安装模式
  3568. typedef enum tagNET_FISHEYE_MOUNT_MODE
  3569. {
  3570. NET_FISHEYE_MOUNT_MODE_UNKOWN, // 未知模式
  3571. NET_FISHEYE_MOUNT_MODE_CEIL, // 顶装模式
  3572. NET_FISHEYE_MOUNT_MODE_WALL, // 壁装模式
  3573. NET_FISHEYE_MOUNT_MODE_FLOOR, // 地装模式
  3574. }NET_FISHEYE_MOUNT_MODE;
  3575. /////////////////////////////日志相关/////////////////////////////////
  3576. ///@brief 日志查询类型
  3577. typedef enum _DH_LOG_QUERY_TYPE
  3578. {
  3579. DHLOG_ALL = 0, // 所有日志
  3580. DHLOG_SYSTEM, // 系统日志
  3581. DHLOG_CONFIG, // 配置日志
  3582. DHLOG_STORAGE, // 存储相关
  3583. DHLOG_ALARM, // 报警日志
  3584. DHLOG_RECORD, // 录象相关
  3585. DHLOG_ACCOUNT, // 帐号相关
  3586. DHLOG_CLEAR, // 清除日志
  3587. DHLOG_PLAYBACK, // 回放相关
  3588. DHLOG_MANAGER // 前端管理运行相关
  3589. } DH_LOG_QUERY_TYPE;
  3590. ///@brief 日志类型
  3591. typedef enum _DH_LOG_TYPE
  3592. {
  3593. DH_LOG_REBOOT = 0x0000, // 设备重启
  3594. DH_LOG_SHUT, // 设备关机
  3595. DH_LOG_REPORTSTOP,
  3596. DH_LOG_REPORTSTART,
  3597. DH_LOG_UPGRADE = 0x0004, // 设备升级
  3598. DH_LOG_SYSTIME_UPDATE = 0x0005, // 系统时间更新
  3599. DH_LOG_GPS_TIME_UPDATE = 0x0006, // GPS时间更新
  3600. DH_LOG_AUDIO_TALKBACK, // 语音对讲, true代表开启,false代表关闭
  3601. DH_LOG_COMM_ADAPTER, // 透明传输, true代表开启,false代表关闭
  3602. DH_LOG_NET_TIMING, // 网络校时
  3603. DH_LOG_CONFSAVE = 0x0100, // 保存配置
  3604. DH_LOG_CONFLOAD, // 读取配置
  3605. DH_LOG_FSERROR = 0x0200, // 文件系统错误
  3606. DH_LOG_HDD_WERR, // 硬盘写错误
  3607. DH_LOG_HDD_RERR, // 硬盘读错误
  3608. DH_LOG_HDD_TYPE, // 设置硬盘类型
  3609. DH_LOG_HDD_FORMAT, // 格式化硬盘
  3610. DH_LOG_HDD_NOSPACE, // 当前工作盘空间不足
  3611. DH_LOG_HDD_TYPE_RW, // 设置硬盘类型为读写盘
  3612. DH_LOG_HDD_TYPE_RO, // 设置硬盘类型为只读盘
  3613. DH_LOG_HDD_TYPE_RE, // 设置硬盘类型为冗余盘
  3614. DH_LOG_HDD_TYPE_SS, // 设置硬盘类型为快照盘
  3615. DH_LOG_HDD_NONE, // 无硬盘记录
  3616. DH_LOG_HDD_NOWORKHDD, // 无工作盘(没有读写盘)
  3617. DH_LOG_HDD_TYPE_BK, // 设置硬盘类型为备份盘
  3618. DH_LOG_HDD_TYPE_REVERSE, // 设置硬盘类型为保留分区
  3619. DH_LOG_HDD_START_INFO = 0x20e , // 记录开机时的硬盘信息
  3620. DH_LOG_HDD_WORKING_DISK, // 记录换盘后的工作盘号
  3621. DH_LOG_HDD_OTHER_ERROR, // 记录硬盘其它错误
  3622. DH_LOG_HDD_SLIGHT_ERR, // 硬盘存在轻微问题
  3623. DH_LOG_HDD_SERIOUS_ERR, // 硬盘存在严重问题
  3624. DH_LOG_HDD_NOSPACE_END, // 当前工作盘空间不足报警结束
  3625. DH_LOG_HDD_TYPE_RAID_CONTROL, // Raid操作
  3626. DH_LOG_HDD_TEMPERATURE_HIGH, // 温度过高
  3627. DH_LOG_HDD_TEMPERATURE_LOW, // 温度过低
  3628. DH_LOG_HDD_ESATA_REMOVE, // 移除eSATA
  3629. DH_LOG_ALM_IN = 0x0300, // 外部输入报警开始
  3630. DH_LOG_NETALM_IN, // 网络报警输入
  3631. DH_LOG_ALM_END = 0x0302, // 外部输入报警停止
  3632. DH_LOG_LOSS_IN, // 视频丢失报警开始
  3633. DH_LOG_LOSS_END, // 视频丢失报警结束
  3634. DH_LOG_MOTION_IN, // 动态检测报警开始
  3635. DH_LOG_MOTION_END, // 动态检测报警结束
  3636. DH_LOG_ALM_BOSHI, // 报警器报警输入
  3637. DH_LOG_NET_ABORT = 0x0308, // 网络断开
  3638. DH_LOG_NET_ABORT_RESUME, // 网络恢复
  3639. DH_LOG_CODER_BREAKDOWN, // 编码器故障
  3640. DH_LOG_CODER_BREAKDOWN_RESUME, // 编码器故障恢复
  3641. DH_LOG_BLIND_IN, // 视频遮挡
  3642. DH_LOG_BLIND_END, // 视频遮挡恢复
  3643. DH_LOG_ALM_TEMP_HIGH, // 温度过高
  3644. DH_LOG_ALM_VOLTAGE_LOW, // 电压过低
  3645. DH_LOG_ALM_BATTERY_LOW, // 电池容量不足
  3646. DH_LOG_ALM_ACC_BREAK, // ACC断电
  3647. DH_LOG_ALM_ACC_RES,
  3648. DH_LOG_GPS_SIGNAL_LOST, // GPS无信号
  3649. DH_LOG_GPS_SIGNAL_RESUME, // GPS信号恢复
  3650. DH_LOG_3G_SIGNAL_LOST, // 3G无信号
  3651. DH_LOG_3G_SIGNAL_RESUME, // 3G信号恢复
  3652. DH_LOG_ALM_IPC_IN, // IPC外部报警
  3653. DH_LOG_ALM_IPC_END, // IPC外部报警恢复
  3654. DH_LOG_ALM_DIS_IN, // 断网报警
  3655. DH_LOG_ALM_DIS_END, // 断网报警恢复
  3656. DH_LOG_ALM_UPS_IN, // UPS告警
  3657. DH_LOG_ALM_UPS_END, // UPS告警恢复
  3658. DH_LOG_ALM_NAS_IN, // NAS服务器异常报警
  3659. DH_LOG_ALM_NAS_END, // NAS服务器异常报警恢复
  3660. DH_LOG_ALM_REDUNDANT_POWER_IN, // 冗余电源告警
  3661. DH_LOG_ALM_REDUNDANT_POWER_END, // 冗余电源告警恢复
  3662. DH_LOG_ALM_RECORD_FAILED_IN, // 录像失败告警
  3663. DH_LOG_ALM_RECORD_FAILED_END, // 录像失败告警恢复
  3664. DH_LOG_ALM_VGEXCEPT_IN, // 存储池异常报警
  3665. DH_LOG_ALM_VGEXCEPT_END, // 存储池异常报警恢复
  3666. DH_LOG_ALM_FANSPEED_IN, // 风扇报警开始
  3667. DH_LOG_ALM_FANSPEED_END, // 风扇报警结束
  3668. DH_LOG_ALM_DROP_FRAME_IN, // 丢帧报警开始
  3669. DH_LOG_ALM_DROP_FRAME_END, // 丢帧报警结束
  3670. DH_LOG_ALM_DISK_STATE_CHECK, // 磁盘预检巡检报警事件日志类型
  3671. DH_LOG_ALARM_COAXIAL_SMOKE, // 同轴烟感报警事件
  3672. DH_LOG_ALARM_COAXIAL_TEMP_HIGH, // 同轴温度报警事件
  3673. DH_LOG_ALARM_COAXIAL_ALM_IN, // 同轴外部报警事件
  3674. DH_LOG_INFRAREDALM_IN = 0x03a0, // 无线报警开始
  3675. DH_LOG_INFRAREDALM_END, // 无线报警结束
  3676. DH_LOG_IPCONFLICT, // IP冲突
  3677. DH_LOG_IPCONFLICT_RESUME, // IP恢复
  3678. DH_LOG_SDPLUG_IN, // SD卡插入(DH_LOG_ITEM中的reserved值为3表示U盘插入)
  3679. DH_LOG_SDPLUG_OUT, // SD卡拔出(DH_LOG_ITEM中的reserved值为3表示U盘拔出)
  3680. DH_LOG_NET_PORT_BIND_FAILED, // 网络端口绑定失败
  3681. DH_LOG_HDD_BEEP_RESET, // 硬盘错误报警蜂鸣结束
  3682. DH_LOG_MAC_CONFLICT, // MAC冲突
  3683. DH_LOG_MAC_CONFLICT_RESUME, // MAC冲突恢复
  3684. DH_LOG_ALARM_OUT, // 报警输出状态
  3685. DH_LOG_ALM_RAID_STAT_EVENT, // RAID状态变化事件
  3686. DH_LOG_ABLAZE_ON, // 火警报警,烟感或温度
  3687. DH_LOG_ABLAZE_OFF, // 火警报警 恢复
  3688. DH_LOG_INTELLI_ALARM_PLUSE, // 智能脉冲型报警
  3689. DH_LOG_INTELLI_ALARM_IN, // 智能报警开始
  3690. DH_LOG_INTELLI_ALARM_END, // 智能报警结束
  3691. DH_LOG_3G_SIGNAL_SCAN, // 3G信号检测
  3692. DH_LOG_GPS_SIGNAL_SCAN, // GPS信号检测
  3693. DH_LOG_AUTOMATIC_RECORD = 0x0400, // 自动录像
  3694. DH_LOG_MANUAL_RECORD = 0x0401, // 手动录象
  3695. DH_LOG_CLOSED_RECORD, // 停止录象
  3696. DH_LOG_LOGIN = 0x0500, // 登录
  3697. DH_LOG_LOGOUT, // 注销
  3698. DH_LOG_ADD_USER, // 添加用户
  3699. DH_LOG_DELETE_USER, // 删除用户
  3700. DH_LOG_MODIFY_USER, // 修改用户
  3701. DH_LOG_ADD_GROUP, // 添加用户组
  3702. DH_LOG_DELETE_GROUP, // 删除用户组
  3703. DH_LOG_MODIFY_GROUP, // 修改用户组
  3704. DH_LOG_NET_LOGIN = 0x0508, // 网络用户登录
  3705. DH_LOG_MODIFY_PASSWORD, // 修改密码
  3706. DH_LOG_CLEAR = 0x0600, // 清除日志
  3707. DH_LOG_SEARCHLOG, // 查询日志
  3708. DH_LOG_SEARCH = 0x0700, // 录像查询
  3709. DH_LOG_DOWNLOAD, // 录像下载
  3710. DH_LOG_PLAYBACK, // 录像回放
  3711. DH_LOG_BACKUP, // 备份录像文件
  3712. DH_LOG_BACKUPERROR, // 备份录像文件失败
  3713. DH_LOG_BACK_UPRT, // 实时备份,即光盘刻录
  3714. DH_LOG_BACKUPCLONE, // 光盘复制。
  3715. DH_LOG_DISK_CHANGED, // 手动换盘
  3716. DH_LOG_IMAGEPLAYBACK, // 图片回放
  3717. DH_LOG_LOCKFILE, // 锁定录像
  3718. DH_LOG_UNLOCKFILE, // 解锁录像
  3719. DH_LOG_ATMPOS, // ATM卡号叠加添加日志
  3720. DH_PLAY_PAUSE, // 暂停回放
  3721. DH_PLAY_START, // 正放
  3722. LOG_PLAY_STOP, // 停止回放
  3723. LOG_PLAY_BACK, // 倒放
  3724. LOG_PLAY_FAST, // 快放
  3725. LOG_PLAY_SLOW, // 慢放
  3726. LOG_SMART_SEARCH, // 智能检索
  3727. LOG_RECORD_SNAP, // 录像抓图
  3728. LOG_ADD_TAG, // 添加标签
  3729. LOG_DEL_TAG, // 删除标签
  3730. LOG_USB_IN, // 发现USB设备
  3731. LOG_USB_OUT, // USB设备断开连接
  3732. LOG_BACKUP_FILE, // 文件备份
  3733. LOG_BACKUP_LOG, // 日志备份
  3734. LOG_BACKUP_CONFIG, // 配置备份
  3735. DH_LOG_TIME_UPDATE = 0x0800, // 时间同步
  3736. DH_LOG_REMOTE_STATE = 0x0850, // 远程日志
  3737. DH_LOG_USER_DEFINE = 0x0900,
  3738. DH_LOG_TYPE_NR = 10,
  3739. } DH_LOG_TYPE;
  3740. ///@brief 扩展日志类型,对应CLIENT_QueryLogEx接口,条件(int nType = 1;参数reserved = &nType)
  3741. typedef enum _DH_NEWLOG_TYPE
  3742. {
  3743. DH_NEWLOG_REBOOT = 0x0000, // 设备重启
  3744. DH_NEWLOG_SHUT, // 设备关机
  3745. DH_NEWLOG_REPORTSTOP,
  3746. DH_NEWLOG_REPORTSTART,
  3747. DH_NEWLOG_UPGRADE = 0x0004, // 设备升级
  3748. DH_NEWLOG_SYSTIME_UPDATE = 0x0005, // 系统时间更新
  3749. DH_NEWLOG_GPS_TIME_UPDATE = 0x0006, // GPS时间更新
  3750. DH_NEWLOG_AUDIO_TALKBACK, // 语音对讲, true代表开启,false代表关闭
  3751. DH_NEWLOG_COMM_ADAPTER, // 透明传输, true代表开启,false代表关闭
  3752. DH_NEWLOG_NET_TIMING, // 网络校时
  3753. DH_NEWLOG_CONFSAVE = 0x0100, // 保存配置
  3754. DH_NEWLOG_CONFLOAD, // 读取配置
  3755. DH_NEWLOG_FSERROR = 0x0200, // 文件系统错误
  3756. DH_NEWLOG_HDD_WERR, // 硬盘写错误
  3757. DH_NEWLOG_HDD_RERR, // 硬盘读错误
  3758. DH_NEWLOG_HDD_TYPE, // 设置硬盘类型
  3759. DH_NEWLOG_HDD_FORMAT, // 格式化硬盘
  3760. DH_NEWLOG_HDD_NOSPACE, // 当前工作盘空间不足
  3761. DH_NEWLOG_HDD_TYPE_RW, // 设置硬盘类型为读写盘
  3762. DH_NEWLOG_HDD_TYPE_RO, // 设置硬盘类型为只读盘
  3763. DH_NEWLOG_HDD_TYPE_RE, // 设置硬盘类型为冗余盘
  3764. DH_NEWLOG_HDD_TYPE_SS, // 设置硬盘类型为快照盘
  3765. DH_NEWLOG_HDD_NONE, // 无硬盘记录日志
  3766. DH_NEWLOG_HDD_NOWORKHDD, // 无工作盘(没有读写盘)
  3767. DH_NEWLOG_HDD_TYPE_BK, // 设置硬盘类型为备份盘
  3768. DH_NEWLOG_HDD_TYPE_REVERSE, // 设置硬盘类型为保留分区
  3769. DH_NEWLOG_HDD_START_INFO = 0x20e, // 记录开机时的硬盘信息
  3770. DH_NEWLOG_HDD_WORKING_DISK, // 记录换盘后的工作盘号
  3771. DH_NEWLOG_HDD_OTHER_ERROR, // 记录硬盘其它错误
  3772. DH_NEWLOG_HDD_SLIGHT_ERR, // 硬盘存在轻微问题
  3773. DH_NEWLOG_HDD_SERIOUS_ERR, // 硬盘存在严重问题
  3774. DH_NEWLOG_HDD_NOSPACE_END, // 当前工作盘空间不足报警结束
  3775. DH_NEWLOG_HDD_TYPE_RAID_CONTROL, // Raid操作
  3776. DH_NEWLOG_HDD_TEMPERATURE_HIGH, // 温度过高
  3777. DH_NEWLOG_HDD_TEMPERATURE_LOW, // 温度过低
  3778. DH_NEWLOG_HDD_ESATA_REMOVE, // 移除eSATA
  3779. DH_NEWLOG_ALM_IN = 0x0300, // 外部输入报警开始
  3780. DH_NEWLOG_NETALM_IN, // 网络报警
  3781. DH_NEWLOG_ALM_END = 0x0302, // 外部输入报警停止
  3782. DH_NEWLOG_LOSS_IN, // 视频丢失报警开始
  3783. DH_NEWLOG_LOSS_END, // 视频丢失报警结束
  3784. DH_NEWLOG_MOTION_IN, // 动态检测报警开始
  3785. DH_NEWLOG_MOTION_END, // 动态检测报警结束
  3786. DH_NEWLOG_ALM_BOSHI, // 报警器报警输入
  3787. DH_NEWLOG_NET_ABORT = 0x0308, // 网络断开
  3788. DH_NEWLOG_NET_ABORT_RESUME, // 网络恢复
  3789. DH_NEWLOG_CODER_BREAKDOWN, // 编码器故障
  3790. DH_NEWLOG_CODER_BREAKDOWN_RESUME, // 编码器故障恢复
  3791. DH_NEWLOG_BLIND_IN, // 视频遮挡
  3792. DH_NEWLOG_BLIND_END, // 视频遮挡恢复
  3793. DH_NEWLOG_ALM_TEMP_HIGH, // 温度过高
  3794. DH_NEWLOG_ALM_VOLTAGE_LOW, // 电压过低
  3795. DH_NEWLOG_ALM_BATTERY_LOW, // 电池容量不足
  3796. DH_NEWLOG_ALM_ACC_BREAK, // ACC断电
  3797. DH_NEWLOG_ALM_ACC_RES,
  3798. DH_NEWLOG_GPS_SIGNAL_LOST, // GPS无信号
  3799. DH_NEWLOG_GPS_SIGNAL_RESUME, // GPS信号恢复
  3800. DH_NEWLOG_3G_SIGNAL_LOST, // 3G无信号
  3801. DH_NEWLOG_3G_SIGNAL_RESUME, // 3G信号恢复
  3802. DH_NEWLOG_ALM_IPC_IN, // IPC外部报警
  3803. DH_NEWLOG_ALM_IPC_END, // IPC外部报警恢复
  3804. DH_NEWLOG_ALM_DIS_IN, // 断网报警
  3805. DH_NEWLOG_ALM_DIS_END, // 断网报警恢复
  3806. DH_NEWLOG_INFRAREDALM_IN = 0x03a0, // 无线报警开始
  3807. DH_NEWLOG_INFRAREDALM_END, // 无线报警结束
  3808. DH_NEWLOG_IPCONFLICT, // IP冲突
  3809. DH_NEWLOG_IPCONFLICT_RESUME, // IP恢复
  3810. DH_NEWLOG_SDPLUG_IN, // SD卡插入
  3811. DH_NEWLOG_SDPLUG_OUT, // SD卡拔出
  3812. DH_NEWLOG_NET_PORT_BIND_FAILED, // 网络端口绑定失败
  3813. DH_NEWLOG_HDD_BEEP_RESET, // 硬盘错误报警蜂鸣结束
  3814. DH_NEWLOG_MAC_CONFLICT, // MAC冲突
  3815. DH_NEWLOG_MAC_CONFLICT_RESUME, // MAC冲突恢复
  3816. DH_NEWLOG_ALARM_OUT, // 报警输出状态
  3817. DH_NEWLOG_ALM_RAID_STAT_EVENT, // RAID状态变化事件
  3818. DH_NEWLOG_ABLAZE_ON, // 火警报警,烟感或温度
  3819. DH_NEWLOG_ABLAZE_OFF, // 火警报警 恢复
  3820. DH_NEWLOG_INTELLI_ALARM_PLUSE, // 智能脉冲型报警
  3821. DH_NEWLOG_INTELLI_ALARM_IN, // 智能报警开始
  3822. DH_NEWLOG_INTELLI_ALARM_END, // 智能报警结束
  3823. DH_NEWLOG_3G_SIGNAL_SCAN, // 3G信号检测
  3824. DH_NEWLOG_GPS_SIGNAL_SCAN, // GPS信号检测
  3825. DH_NEWLOG_AUTOMATIC_RECORD = 0x0400, // 自动录象
  3826. DH_NEWLOG_MANUAL_RECORD, // 手动录象开
  3827. DH_NEWLOG_CLOSED_RECORD, // 停止录象
  3828. DH_NEWLOG_LOGIN = 0x0500, // 登录
  3829. DH_NEWLOG_LOGOUT, // 注销
  3830. DH_NEWLOG_ADD_USER, // 添加用户
  3831. DH_NEWLOG_DELETE_USER, // 删除用户
  3832. DH_NEWLOG_MODIFY_USER, // 修改用户
  3833. DH_NEWLOG_ADD_GROUP, // 添加用户组
  3834. DH_NEWLOG_DELETE_GROUP, // 删除用户组
  3835. DH_NEWLOG_MODIFY_GROUP, // 修改用户组
  3836. DH_NEWLOG_NET_LOGIN = 0x0508, // 网络用户登录
  3837. DH_NEWLOG_CLEAR = 0x0600, // 清除日志
  3838. DH_NEWLOG_SEARCHLOG, // 查询日志
  3839. DH_NEWLOG_SEARCH = 0x0700, // 录像查询
  3840. DH_NEWLOG_DOWNLOAD, // 录像下载
  3841. DH_NEWLOG_PLAYBACK, // 录像回放
  3842. DH_NEWLOG_BACKUP, // 备份录像文件
  3843. DH_NEWLOG_BACKUPERROR, // 备份录像文件失败
  3844. DH_NEWLOG_BACK_UPRT, // 实时备份,即光盘刻录
  3845. DH_NEWLOG_BACKUPCLONE, // 光盘复制。
  3846. DH_NEWLOG_DISK_CHANGED, // 手动换盘
  3847. DH_NEWLOG_IMAGEPLAYBACK, // 图片回放
  3848. DH_NEWLOG_LOCKFILE, // 锁定录像
  3849. DH_NEWLOG_UNLOCKFILE, // 解锁录像
  3850. DH_NEWLOG_ATMPOS, // ATM卡号叠加添加日志
  3851. DH_NEWLOG_TIME_UPDATE = 0x0800, // 时间更新
  3852. DH_NEWLOG_REMOTE_STATE = 0x0850, // 远程日志
  3853. DH_NEWLOG_USER_DEFINE = 0x0900,
  3854. DH_NEWLOG_TYPE_NR = 10,
  3855. } DH_NEWLOG_TYPE;
  3856. ///////////////////////////语音对讲相关///////////////////////////////
  3857. ///@brief 语音编码类型
  3858. typedef enum __TALK_CODING_TYPE
  3859. {
  3860. DH_TALK_UNKNOWN = -1, // 未知
  3861. DH_TALK_DEFAULT = 0, // 无头PCM
  3862. DH_TALK_PCM = 1, // 带头PCM
  3863. DH_TALK_G711a, // G711a
  3864. DH_TALK_AMR, // AMR
  3865. DH_TALK_G711u, // G711u
  3866. DH_TALK_G726, // G726
  3867. DH_TALK_G723_53, // G723_53
  3868. DH_TALK_G723_63, // G723_63
  3869. DH_TALK_AAC, // AAC
  3870. DH_TALK_OGG, // OGG
  3871. DH_TALK_G729 = 10, // G729
  3872. DH_TALK_MPEG2, // MPEG2
  3873. DH_TALK_MPEG2_Layer2, // MPEG2-Layer2
  3874. DH_TALK_G722_1, // G.722.1
  3875. DH_TALK_ADPCM = 21, // ADPCM
  3876. DH_TALK_MP3 = 22, // MP3
  3877. } DH_TALK_CODING_TYPE;
  3878. ///@brief 录像文件类型
  3879. typedef enum __NET_RECORD_TYPE
  3880. {
  3881. NET_RECORD_TYPE_ALL, // 所有录像
  3882. NET_RECORD_TYPE_NORMAL, // 普通录像
  3883. NET_RECORD_TYPE_ALARM, // 外部报警录像
  3884. NET_RECORD_TYPE_MOTION, // 动检报警录像
  3885. }NET_RECORD_TYPE;
  3886. ///@brief 对讲方式
  3887. typedef enum __EM_USEDEV_MODE
  3888. {
  3889. DH_TALK_CLIENT_MODE, // 设置客户端方式进行语音对讲
  3890. DH_TALK_SERVER_MODE, // 设置服务器方式进行语音对讲
  3891. DH_TALK_ENCODE_TYPE, // 设置语音对讲编码格式(对应DHDEV_TALKDECODE_INFO)
  3892. DH_ALARM_LISTEN_MODE, // 设置报警订阅方式
  3893. DH_CONFIG_AUTHORITY_MODE, // 设置通过权限进行配置管理
  3894. DH_TALK_TALK_CHANNEL, // 设置对讲通道(0~MaxChannel-1)
  3895. DH_RECORD_STREAM_TYPE, // 设置待查询及按时间回放的录像码流类型(0-主辅码流,1-主码流,2-辅码流1,3-辅码流2,4-辅码流3,)
  3896. DH_TALK_SPEAK_PARAM, // 设置语音参数,对应结构体 NET_SPEAK_PARAM
  3897. DH_RECORD_TYPE, // 设置按时间录像回放及下载的录像文件类型(详见NET_RECORD_TYPE)
  3898. DH_TALK_MODE3, // 设置三代设备的语音对讲参数, 对应结构体 NET_TALK_EX
  3899. DH_PLAYBACK_REALTIME_MODE , // 设置实时回放功能(0-关闭,1开启)
  3900. DH_TALK_TRANSFER_MODE, // 设置语音对讲是否为转发模式, 对应结构体 NET_TALK_TRANSFER_PARAM
  3901. DH_TALK_VT_PARAM, // 设置VT对讲参数, 对应结构体 NET_VT_TALK_PARAM
  3902. DH_TARGET_DEV_ID, // 设置目标设备标示符, 用以查询新系统能力(非0-转发系统能力消息)
  3903. DH_AUDIO_RECORD_LENGTH = 15, // 设置录音缓存, 对应为一个int
  3904. } EM_USEDEV_MODE;
  3905. ///@brief 鞋子类型
  3906. typedef enum tagEM_SHOES_TYPE
  3907. {
  3908. EM_SHOES_UNKNOWN, // 未知
  3909. EM_SHOES_LEATHER, // 皮鞋
  3910. EM_SHOES_BOOTS, // 靴子
  3911. EM_SHOES_CASUAL, // 休闲鞋
  3912. EM_SHOES_SANDALS, // 凉鞋
  3913. EM_SHOES_SNEAKERS, // 运动鞋
  3914. EM_SHOES_SLIPPER, // 拖鞋
  3915. EM_SHOES_OTHERS , // 其他
  3916. EM_SHOES_SHOECOVER, // 鞋套
  3917. } EM_SHOES_TYPE;
  3918. ///@brief 音频数据
  3919. typedef enum __EM_TALK_DATA_TYPE
  3920. {
  3921. NET_TALK_DATA_LOCAL_AUDIO = 0, // 本地录音库采集的音频数据
  3922. NET_TALK_DATA_RECV_AUDIO, // 收到的设备发过来的音频数据
  3923. NET_TALK_DATA_RESPOND, // 对讲呼叫响应数据
  3924. NET_TALK_DATA_RECV_VIDEO, // 收到的设备发过来的视频数据
  3925. }EM_TALK_DATA_TYPE;
  3926. ///@brief 视频编码格式
  3927. typedef struct tagNET_TALK_VIDEO_FORMAT
  3928. {
  3929. DWORD dwSize;
  3930. DWORD dwCompression; // 视频压缩格式
  3931. int nFrequency; // 视频采样频率
  3932. }NET_TALK_VIDEO_FORMAT;
  3933. ///@brief 三代设备的语音对讲参数,对应CLIENT_SetDeviceMode()的DH_TALK_MODE3命令
  3934. typedef struct tagNET_TALK_EX
  3935. {
  3936. DWORD dwSize;
  3937. int nChannel; // 通道号
  3938. int nAudioPort; // 音频传输侦听端口
  3939. int nWaitTime; // 等待时间, 单位ms,为0则使用默认值
  3940. HWND hVideoWnd; // 可视对讲视频显示窗口
  3941. NET_TALK_VIDEO_FORMAT stuVideoFmt; // 视频编码格式
  3942. char szMulticastAddr[DH_MAX_IPADDR_LEN_EX]; // 组播地址
  3943. WORD wMulticastLocalPort; // 组播本地端口
  3944. WORD wMulticastRemotePort; // 组播远程端口
  3945. }NET_TALK_EX;
  3946. ///@brief AMR编码类型
  3947. typedef enum __EM_ARM_ENCODE_MODE
  3948. {
  3949. DH_TALK_AMR_AMR475 = 1, // AMR475编码
  3950. DH_TALK_AMR_AMR515, // AMR515编码
  3951. DH_TALK_AMR_AMR59, // AMR59编码
  3952. DH_TALK_AMR_AMR67, // AMR67编码
  3953. DH_TALK_AMR_AMR74, // AMR74编码
  3954. DH_TALK_AMR_AMR795, // AMR795编码
  3955. DH_TALK_AMR_AMR102, // AMR102编码
  3956. DH_TALK_AMR_AMR122, // AMR122编码
  3957. } EM_ARM_ENCODE_MODE;
  3958. ///@brief 语音参数
  3959. typedef struct __NET_SPEAK_PARAM
  3960. {
  3961. DWORD dwSize; // 结构体大小
  3962. int nMode; // 0:对讲(默认模式),1:喊话;从喊话切换到对讲要重新设置
  3963. // 2: 单向监听,若切换到其他模式要重新设置
  3964. int nSpeakerChannel; // 扬声器通道号,喊话时有效
  3965. BOOL bEnableWait; // 开启对讲时是否等待设备的响应,默认不等待.TRUE:等待;FALSE:不等待
  3966. // 超时时间由CLIENT_SetNetworkParam设置,对应NET_PARAM的nWaittime字段
  3967. } NET_SPEAK_PARAM;
  3968. ///@brief 是否开启语音对讲的转发模式
  3969. typedef struct tagNET_TALK_TRANSFER_PARAM
  3970. {
  3971. DWORD dwSize;
  3972. BOOL bTransfer; // 是否开启语音对讲转发模式, TRUE: 开启转发, FALSE: 关闭转发
  3973. }NET_TALK_TRANSFER_PARAM;
  3974. /////////////////////////////控制相关/////////////////////////////////
  3975. ///@brief 控制类型,对应 CLIENT_ControlDevice 接口
  3976. typedef enum _CtrlType
  3977. {
  3978. DH_CTRL_REBOOT = 0, // 重启设备
  3979. DH_CTRL_SHUTDOWN, // 关闭设备
  3980. DH_CTRL_DISK, // 硬盘管理
  3981. DH_KEYBOARD_POWER = 3, // 网络键盘
  3982. DH_KEYBOARD_ENTER,
  3983. DH_KEYBOARD_ESC,
  3984. DH_KEYBOARD_UP,
  3985. DH_KEYBOARD_DOWN,
  3986. DH_KEYBOARD_LEFT,
  3987. DH_KEYBOARD_RIGHT,
  3988. DH_KEYBOARD_BTN0,
  3989. DH_KEYBOARD_BTN1,
  3990. DH_KEYBOARD_BTN2,
  3991. DH_KEYBOARD_BTN3,
  3992. DH_KEYBOARD_BTN4,
  3993. DH_KEYBOARD_BTN5,
  3994. DH_KEYBOARD_BTN6,
  3995. DH_KEYBOARD_BTN7,
  3996. DH_KEYBOARD_BTN8,
  3997. DH_KEYBOARD_BTN9,
  3998. DH_KEYBOARD_BTN10,
  3999. DH_KEYBOARD_BTN11,
  4000. DH_KEYBOARD_BTN12,
  4001. DH_KEYBOARD_BTN13,
  4002. DH_KEYBOARD_BTN14,
  4003. DH_KEYBOARD_BTN15,
  4004. DH_KEYBOARD_BTN16,
  4005. DH_KEYBOARD_SPLIT,
  4006. DH_KEYBOARD_ONE,
  4007. DH_KEYBOARD_NINE,
  4008. DH_KEYBOARD_ADDR,
  4009. DH_KEYBOARD_INFO,
  4010. DH_KEYBOARD_REC,
  4011. DH_KEYBOARD_FN1,
  4012. DH_KEYBOARD_FN2,
  4013. DH_KEYBOARD_PLAY,
  4014. DH_KEYBOARD_STOP,
  4015. DH_KEYBOARD_SLOW,
  4016. DH_KEYBOARD_FAST,
  4017. DH_KEYBOARD_PREW,
  4018. DH_KEYBOARD_NEXT,
  4019. DH_KEYBOARD_JMPDOWN,
  4020. DH_KEYBOARD_JMPUP,
  4021. DH_KEYBOARD_10PLUS,
  4022. DH_KEYBOARD_SHIFT,
  4023. DH_KEYBOARD_BACK,
  4024. DH_KEYBOARD_LOGIN , // 新网络键盘功能
  4025. DH_KEYBOARD_CHNNEL , // 切换视频通道
  4026. DH_TRIGGER_ALARM_IN = 100, // 触发报警输入
  4027. DH_TRIGGER_ALARM_OUT, // 触发报警输出
  4028. DH_CTRL_MATRIX, // 矩阵控制
  4029. DH_CTRL_SDCARD, // SD卡控制(IPC产品)参数同硬盘控制
  4030. DH_BURNING_START, // 刻录机控制,开始刻录
  4031. DH_BURNING_STOP, // 刻录机控制,结束刻录
  4032. DH_BURNING_ADDPWD, // 刻录机控制,叠加密码(以'\0'为结尾的字符串,最大长度8位)
  4033. DH_BURNING_ADDHEAD, // 刻录机控制,叠加片头(以'\0'为结尾的字符串,最大长度1024字节,支持分行,行分隔符'\n')
  4034. DH_BURNING_ADDSIGN, // 刻录机控制,叠加打点到刻录信息(参数无)
  4035. DH_BURNING_ADDCURSTOMINFO, // 刻录机控制,自定义叠加(以'\0'为结尾的字符串,最大长度1024字节,支持分行,行分隔符'\n')
  4036. DH_CTRL_RESTOREDEFAULT, // 恢复设备的默认设置
  4037. DH_CTRL_CAPTURE_START, // 触发设备抓图
  4038. DH_CTRL_CLEARLOG, // 清除日志(不支持二次认证和鉴权)
  4039. DH_TRIGGER_ALARM_WIRELESS = 200, // 触发无线报警(IPC产品)
  4040. DH_MARK_IMPORTANT_RECORD, // 标识重要录像文件
  4041. DH_CTRL_DISK_SUBAREA, // 网络硬盘分区
  4042. DH_BURNING_ATTACH, // 刻录机控制,附件刻录.
  4043. DH_BURNING_PAUSE, // 刻录暂停
  4044. DH_BURNING_CONTINUE, // 刻录继续
  4045. DH_BURNING_POSTPONE, // 刻录顺延
  4046. DH_CTRL_OEMCTRL, // 报停控制
  4047. DH_BACKUP_START, // 设备备份开始
  4048. DH_BACKUP_STOP, // 设备备份停止
  4049. DH_VIHICLE_WIFI_ADD, // 车载手动增加WIFI配置
  4050. DH_VIHICLE_WIFI_DEC, // 车载手动删除WIFI配置
  4051. DH_BUZZER_START, // 蜂鸣器控制开始
  4052. DH_BUZZER_STOP, // 蜂鸣器控制结束
  4053. DH_REJECT_USER, // 剔除用户
  4054. DH_SHIELD_USER, // 屏蔽用户
  4055. DH_RAINBRUSH, // 智能交通, 雨刷控制
  4056. DH_MANUAL_SNAP, // 智能交通, 手动抓拍 (对应结构体 MANUAL_SNAP_PARAMETER)
  4057. DH_MANUAL_NTP_TIMEADJUST, // 手动NTP校时
  4058. DH_NAVIGATION_SMS, // 导航信息和短消息
  4059. DH_CTRL_ROUTE_CROSSING, // 路线点位信息
  4060. DH_BACKUP_FORMAT, // 格式化备份设备
  4061. DH_DEVICE_LOCALPREVIEW_SLIPT, // 控制设备端本地预览分割(对应结构体DEVICE_LOCALPREVIEW_SLIPT_PARAMETER)
  4062. DH_CTRL_INIT_RAID, // RAID初始化
  4063. DH_CTRL_RAID, // RAID操作
  4064. DH_CTRL_SAPREDISK, // 热备盘操作
  4065. DH_WIFI_CONNECT, // 手动发起WIFI连接(对应结构体WIFI_CONNECT)
  4066. DH_WIFI_DISCONNECT, // 手动断开WIFI连接(对应结构体WIFI_CONNECT)
  4067. DH_CTRL_ARMED, // 布撤防操作
  4068. DH_CTRL_IP_MODIFY, // 修改前端IP(对应结构体DHCTRL_IPMODIFY_PARAM)
  4069. DH_CTRL_WIFI_BY_WPS, // wps连接wifi(对应结构体DHCTRL_CONNECT_WIFI_BYWPS)
  4070. DH_CTRL_FORMAT_PATITION, // 格式化分区(对应结构体DH_FORMAT_PATITION)
  4071. DH_CTRL_EJECT_STORAGE, // 手动卸载设备(对应结构体DH_EJECT_STORAGE_DEVICE)
  4072. DH_CTRL_LOAD_STORAGE, // 手动装载设备(对应结构体DH_LOAD_STORAGE_DEVICE)
  4073. DH_CTRL_CLOSE_BURNER, // 关闭刻录机光驱门(对应结构体 NET_CTRL_BURNERDOOR) 一般需要等6秒
  4074. DH_CTRL_EJECT_BURNER, // 弹出刻录机光驱门(对应结构体 NET_CTRL_BURNERDOOR) 一般需要等4秒
  4075. DH_CTRL_CLEAR_ALARM, // 消警(对应结构体 NET_CTRL_CLEAR_ALARM)
  4076. DH_CTRL_MONITORWALL_TVINFO, // 电视墙信息显示(对应结构体 NET_CTRL_MONITORWALL_TVINFO)
  4077. DH_CTRL_START_VIDEO_ANALYSE, // 开始视频智能分析(对应结构体 NET_CTRL_START_VIDEO_ANALYSE)
  4078. DH_CTRL_STOP_VIDEO_ANALYSE, // 停止视频智能分析(对应结构体 NET_CTRL_STOP_VIDEO_ANALYSE)
  4079. DH_CTRL_UPGRADE_DEVICE, // 控制启动设备升级,由设备独立完成升级过程,不需要传输升级文件
  4080. DH_CTRL_MULTIPLAYBACK_CHANNALES, // 切换多通道预览回放的通道(对应结构体 NET_CTRL_MULTIPLAYBACK_CHANNALES)
  4081. DH_CTRL_SEQPOWER_OPEN, // 电源时序器打开开关量输出口(对应 NET_CTRL_SEQPOWER_PARAM)
  4082. DH_CTRL_SEQPOWER_CLOSE, // 电源时序器关闭开关量输出口(对应 NET_CTRL_SEQPOWER_PARAM)
  4083. DH_CTRL_SEQPOWER_OPEN_ALL, // 电源时序器打开开关量输出口组(对应 NET_CTRL_SEQPOWER_PARAM)
  4084. DH_CTRL_SEQPOWER_CLOSE_ALL, // 电源时序器关闭开关量输出口组(对应 NET_CTRL_SEQPOWER_PARAM)
  4085. DH_CTRL_PROJECTOR_RISE, // 投影仪上升(对应 NET_CTRL_PROJECTOR_PARAM)
  4086. DH_CTRL_PROJECTOR_FALL, // 投影仪下降(对应 NET_CTRL_PROJECTOR_PARAM)
  4087. DH_CTRL_PROJECTOR_STOP, // 投影仪停止(对应 NET_CTRL_PROJECTOR_PARAM)
  4088. DH_CTRL_INFRARED_KEY, // 红外按键(对应 NET_CTRL_INFRARED_KEY_PARAM)
  4089. DH_CTRL_START_PLAYAUDIO, // 设备开始播放音频文件(对应结构体 NET_CTRL_START_PLAYAUDIO)
  4090. DH_CTRL_STOP_PLAYAUDIO, // 设备停止播放音频文件
  4091. DH_CTRL_START_ALARMBELL, // 开启警号(对应结构体 NET_CTRL_ALARMBELL)
  4092. DH_CTRL_STOP_ALARMBELL, // 关闭警号(对应结构体 NET_CTRL_ALARMBELL)
  4093. DH_CTRL_ACCESS_OPEN, // 门禁控制-开门(对应结构体 NET_CTRL_ACCESS_OPEN)
  4094. DH_CTRL_SET_BYPASS, // 设置旁路功能(对应结构体 NET_CTRL_SET_BYPASS)
  4095. DH_CTRL_RECORDSET_INSERT, // 添加记录,获得记录集编号(对应 NET_CTRL_RECORDSET_INSERT_PARAM)
  4096. DH_CTRL_RECORDSET_UPDATE, // 更新某记录集编号的记录(对应NET_CTRL_RECORDSET_PARAM)
  4097. DH_CTRL_RECORDSET_REMOVE, // 根据记录集编号删除某记录(对应NET_CTRL_RECORDSET_PARAM)
  4098. DH_CTRL_RECORDSET_CLEAR, // 清除所有记录集信息(对应NET_CTRL_RECORDSET_PARAM)
  4099. DH_CTRL_ACCESS_CLOSE, // 门禁控制-关门(对应结构体 NET_CTRL_ACCESS_CLOSE)
  4100. DH_CTRL_ALARM_SUBSYSTEM_ACTIVE_SET, // 报警子系统激活设置(对应结构体NET_CTRL_ALARM_SUBSYSTEM_SETACTIVE)
  4101. DH_CTRL_FORBID_OPEN_STROBE, // 禁止设备端开闸(对应结构体 NET_CTRL_FORBID_OPEN_STROBE)
  4102. DH_CTRL_OPEN_STROBE, // 开启道闸(对应结构体 NET_CTRL_OPEN_STROBE)
  4103. DH_CTRL_TALKING_REFUSE, // 对讲拒绝接听(对应结构体 NET_CTRL_TALKING_REFUSE)
  4104. DH_CTRL_ARMED_EX, // 布撤防操作(对应结构体 CTRL_ARM_DISARM_PARAM_EX), 对CTRL_ARM_DISARM_PARAM 升级,建议用这个
  4105. DH_CTRL_REMOTE_TALK, // 远程对讲控制(对应结构体NET_CTRL_REMOTETALK_PARAM)
  4106. DH_CTRL_NET_KEYBOARD = 400, // 网络键盘控制(对应结构体 DHCTRL_NET_KEYBOARD)
  4107. DH_CTRL_AIRCONDITION_OPEN, // 打开空调(对应结构体 NET_CTRL_OPEN_AIRCONDITION)
  4108. DH_CTRL_AIRCONDITION_CLOSE, // 关闭空调(对应结构体 NET_CTRL_CLOSE_AIRCONDITION)
  4109. DH_CTRL_AIRCONDITION_SET_TEMPERATURE, // 设定空调温度(对应结构体 NET_CTRL_SET_TEMPERATURE)
  4110. DH_CTRL_AIRCONDITION_ADJUST_TEMPERATURE, // 调节空调温度(对应结构体 NET_CTRL_ADJUST_TEMPERATURE)
  4111. DH_CTRL_AIRCONDITION_SETMODE, // 设置空调工作模式(对应结构体 NET_CTRL_ADJUST_TEMPERATURE)
  4112. DH_CTRL_AIRCONDITION_SETWINDMODE, // 设置空调送风模式(对应结构体 NET_CTRL_AIRCONDITION_SETMODE)
  4113. DH_CTRL_RESTOREDEFAULT_EX , // 恢复设备的默认设置新协议(对应结构体NET_CTRL_RESTORE_DEFAULT)
  4114. // 恢复配置优先使用该枚举,如果接口失败,
  4115. // 且CLIENT_GetLastError返回NET_UNSUPPORTED,再尝试使用DH_CTRL_RESTOREDEFAULT恢复配置
  4116. DH_CTRL_NOTIFY_EVENT, // 向设备发送事件(对应结构体 NET_NOTIFY_EVENT_DATA)
  4117. DH_CTRL_SILENT_ALARM_SET, // 无声报警设置
  4118. DH_CTRL_START_PLAYAUDIOEX, // 设备开始语音播报(对应结构体 NET_CTRL_START_PLAYAUDIOEX)
  4119. DH_CTRL_STOP_PLAYAUDIOEX, // 设备停止语音播报
  4120. DH_CTRL_CLOSE_STROBE, // 关闭道闸(对应结构体 NET_CTRL_CLOSE_STROBE)
  4121. DH_CTRL_SET_ORDER_STATE, // 设置车位预定状态(对应结构体 NET_CTRL_SET_ORDER_STATE)
  4122. DH_CTRL_RECORDSET_INSERTEX, // 添加信息记录,获得记录集编号(对应 NET_CTRL_RECORDSET_INSERT_PARAM)
  4123. DH_CTRL_RECORDSET_UPDATEEX, // 更新信息记录集编号的记录(对应NET_CTRL_RECORDSET_PARAM)
  4124. DH_CTRL_CAPTURE_FINGER_PRINT, // 信息采集(对应结构体 NET_CTRL_CAPTURE_FINGER_PRINT)
  4125. DH_CTRL_ECK_LED_SET, // 停车场出入口控制器LED设置(对应结构体 NET_CTRL_ECK_LED_SET_PARAM)
  4126. DH_CTRL_ECK_IC_CARD_IMPORT, // 智能停车系统出入口机IC卡信息导入(对应结构体 NET_CTRL_ECK_IC_CARD_IMPORT_PARAM)
  4127. DH_CTRL_ECK_SYNC_IC_CARD, // 智能停车系统出入口机IC卡信息同步指令,收到此指令后,设备删除原有IC卡信息(对应结构体 NET_CTRL_ECK_SYNC_IC_CARD_PARAM)
  4128. DH_CTRL_LOWRATEWPAN_REMOVE, // 删除指定无线设备(对应结构体 NET_CTRL_LOWRATEWPAN_REMOVE)
  4129. DH_CTRL_LOWRATEWPAN_MODIFY, // 修改无线设备信息(对应结构体 NET_CTRL_LOWRATEWPAN_MODIFY)
  4130. DH_CTRL_ECK_SET_PARK_INFO, // 智能停车系统出入口机设置车位信息(对应结构体 NET_CTRL_ECK_SET_PARK_INFO_PARAM)
  4131. DH_CTRL_VTP_DISCONNECT, // 挂断视频电话(对应结构体 NET_CTRL_VTP_DISCONNECT)
  4132. DH_CTRL_UPDATE_FILES, // 远程投放多媒体文件更新(对应结构体 NET_CTRL_UPDATE_FILES)
  4133. DH_CTRL_MATRIX_SAVE_SWITCH, // 保存上下位矩阵输出关系(对应结构体 NET_CTRL_MATRIX_SAVE_SWITCH)
  4134. DH_CTRL_MATRIX_RESTORE_SWITCH, // 恢复上下位矩阵输出关系(对应结构体 NET_CTRL_MATRIX_RESTORE_SWITCH)
  4135. DH_CTRL_VTP_DIVERTACK, // 呼叫转发响应(对应结构体 NET_CTRL_VTP_DIVERTACK)
  4136. DH_CTRL_RAINBRUSH_MOVEONCE, // 雨刷来回刷一次,雨刷模式配置为手动模式时有效(对应结构体 NET_CTRL_RAINBRUSH_MOVEONCE)
  4137. DH_CTRL_RAINBRUSH_MOVECONTINUOUSLY, // 雨刷来回循环刷,雨刷模式配置为手动模式时有效(对应结构体 NET_CTRL_RAINBRUSH_MOVECONTINUOUSLY)
  4138. DH_CTRL_RAINBRUSH_STOPMOVE, // 雨刷停止刷,雨刷模式配置为手动模式时有效(对应结构体 NET_CTRL_RAINBRUSH_STOPMOVE)
  4139. DH_CTRL_ALARM_ACK, // 报警事件确认(对应结构体 NET_CTRL_ALARM_ACK)
  4140. // DH_CTRL_ALARM_ACK 该操作切勿在报警回调接口中调用
  4141. DH_CTRL_RECORDSET_IMPORT, // 批量导入记录集信息(对应NET_CTRL_RECORDSET_PARAM)
  4142. DH_CTRL_DELIVERY_FILE, // 向视频输出口投放视频和图片文件, 楼宇对讲使用,同一时间投放(对应NET_CTRL_DELIVERY_FILE)
  4143. DH_CTRL_FORCE_BREAKING, // 强制产生违章类型(对应 NET_CTRL_FORCE_BREAKING)
  4144. DH_CTRL_RESTORE_EXCEPT, // 恢复除指定配置外的其他配置为默认(对应 NET_CTRL_RESTORE_EXCEPT)
  4145. DH_CTRL_SET_PARK_INFO, // 设置停车信息,平台设置给相机,内容用于点阵屏显示(对应结构体 NET_CTRL_SET_PARK_INFO)
  4146. DH_CTRL_CLEAR_SECTION_STAT, // 清除当前时间段内人数统计信息, 重新从0开始计算(对应结构体NET_CTRL_CLEAR_SECTION_STAT_INFO)
  4147. DH_CTRL_DELIVERY_FILE_BYCAR, // 向视频输出口投放视频和图片文件, 车载使用,广告单独时间投放(对应NET_CTRL_DELIVERY_FILE_BYCAR)
  4148. DH_CTRL_ECK_GUIDINGPANEL_CONTENT, // 设置诱导屏显示内容(对应结构体 NET_CTRL_ECK_GUIDINGPANEL_CONTENT)
  4149. DH_CTRL_SET_SAFE_LEVEL, // 设置门禁安全等级(对应结构体,pInBuf= NET_IN_SET_SAFE_LEVEL*, pOutBuf= NET_OUT_SET_SAFE_LEVEL * )
  4150. DH_CTRL_VTP_INVITEACK, // 对讲请求回复(对应结构体 NET_CTRL_VTP_INVITEACK)
  4151. DH_CTRL_ACCESS_RESET_PASSWORD, // 门禁控制-重置密码(对应结构体 NET_CTRL_ACCESS_RESET_PASSWORD)
  4152. DH_CTRL_ACCESS_CALL_LIFT, // 门禁控制-呼梯(对应结构体 NET_CTRL_ACCESS_CALL_LIFT)
  4153. DH_CTRL_RECORDSET_REMOVEEX, // 根据记录集编号删除某记录(对应NET_CTRL_RECORDSET_PARAM)
  4154. DH_CTRL_ADJUST_BRIGHT, // 调节灯光亮度(对应结构体 NET_CTRL_ADJUST_BRIGHT)
  4155. DH_CTRL_CLEARLOG_EX, // 清除日志(支持二次认证和鉴权, 对应结构体 NET_CTRL_CLEARLOG_EX)
  4156. // 以下命令只在 CLIENT_ControlDeviceEx 上有效
  4157. DH_CTRL_THERMO_GRAPHY_ENSHUTTER = 0x10000, // 设置热成像快门启用/禁用, pInBuf= NET_IN_THERMO_EN_SHUTTER*, pOutBuf= NET_OUT_THERMO_EN_SHUTTER *
  4158. DH_CTRL_RADIOMETRY_SETOSDMARK, // 设置测温项的osd为高亮, pInBuf= NET_IN_RADIOMETRY_SETOSDMARK*, pOutBuf= NET_OUT_RADIOMETRY_SETOSDMARK *
  4159. DH_CTRL_AUDIO_REC_START_NAME, // 开启音频录音并得到录音名, pInBuf = NET_IN_AUDIO_REC_MNG_NAME *, pOutBuf = NET_OUT_AUDIO_REC_MNG_NAME *
  4160. DH_CTRL_AUDIO_REC_STOP_NAME, // 关闭音频录音并返回文件名称, pInBuf = NET_IN_AUDIO_REC_MNG_NAME *, pOutBuf = NET_OUT_AUDIO_REC_MNG_NAME *
  4161. DH_CTRL_SNAP_MNG_SNAP_SHOT, // 即时抓图(又名手动抓图), pInBuf = NET_IN_SNAP_MNG_SHOT *, pOutBuf = NET_OUT_SNAP_MNG_SHOT *
  4162. DH_CTRL_LOG_STOP, // 强制同步缓存数据到数据库并关闭数据库, pInBuf = NET_IN_LOG_MNG_CTRL *, pOutBuf = NET_OUT_LOG_MNG_CTRL *
  4163. DH_CTRL_LOG_RESUME, // 恢复数据库, pInBuf = NET_IN_LOG_MNG_CTRL *, pOutBuf = NET_OUT_LOG_MNG_CTRL *
  4164. DH_CTRL_POS_ADD, // 增加一个Pos设备, pInBuf = NET_IN_POS_ADD *, pOutBuf = NET_OUT_POS_ADD *
  4165. DH_CTRL_POS_REMOVE, // 删除一个Pos设备, pInBuf = NET_IN_POS_REMOVE *, pOutBuf = NET_OUT_POS_REMOVE *
  4166. DH_CTRL_POS_REMOVE_MULTI, // 批量删除Pos设备, pInBuf = NET_IN_POS_REMOVE_MULTI *, pOutBuf = NET_OUT_POS_REMOVE_MULTI *
  4167. DH_CTRL_POS_MODIFY, // 修改一个Pos设备, pInBuf = NET_IN_POS_ADD *, pOutBuf = NET_OUT_POS_ADD *
  4168. DH_CTRL_SET_SOUND_ALARM, // 触发有声报警, pInBuf = NET_IN_SOUND_ALARM *, pOutBuf = NET_OUT_SOUND_ALARM *
  4169. DH_CTRL_AUDIO_MATRIX_SILENCE, // 音频举证一键静音控制(对应pInBuf = NET_IN_AUDIO_MATRIX_SILENCE, pOutBuf = NET_OUT_AUDIO_MATRIX_SILENCE)
  4170. DH_CTRL_MANUAL_UPLOAD_PICTURE, // 设置手动上传, pInBuf = NET_IN_MANUAL_UPLOAD_PICTURE *, pOutBUf = NET_OUT_MANUAL_UPLOAD_PICTURE *
  4171. DH_CTRL_REBOOT_NET_DECODING_DEV, // 重启网络解码设备, pInBuf = NET_IN_REBOOT_NET_DECODING_DEV *, pOutBuf = NET_OUT_REBOOT_NET_DECODING_DEV *
  4172. DH_CTRL_SET_IC_SENDER, // ParkingControl 设置发卡设备, pInBuf = NET_IN_SET_IC_SENDER *, pOutBuf = NET_OUT_SET_IC_SENDER *
  4173. DH_CTRL_SET_MEDIAKIND, // 设置预览码流组成,如仅音频,仅视频,音视频 pInBuf = NET_IN_SET_MEDIAKIND *, pOutBuf = NET_OUT_SET_MEDIAKIND *
  4174. // 配合功能列表能力集使用, EN_ENCODE_CHN,2-预览支持音视频分开获取
  4175. DH_CTRL_LOWRATEWPAN_ADD, // 增加无线设备信息(对应结构体 pInBuf = NET_CTRL_LOWRATEWPAN_ADD *, pOutBUf = NULL)
  4176. DH_CTRL_LOWRATEWPAN_REMOVEALL, // 删除所有的无线设备信息(对应结构体 pInBuf = NET_CTRL_LOWRATEWPAN_REMOVEALL *, pOutBUf = NULL)
  4177. DH_CTRL_SET_DOOR_WORK_MODE, // 设置门锁工作模式(对应结构体 pInBuf = NET_IN_CTRL_ACCESS_SET_DOOR_WORK_MODE *, pOutBUf = NULL)
  4178. DH_CTRL_TEST_MAIL, // 测试邮件 pInBuf = NET_IN_TEST_MAIL *, pOutBUf = NET_OUT_TEST_MAIL *
  4179. DH_CTRL_CONTROL_SMART_SWITCH, // 控制智能开关 pInBuf = NET_IN_CONTROL_SMART_SWITCH *, pOutBUf = NET_OUT_CONTROL_SMART_SWITCH *
  4180. DH_CTRL_LOWRATEWPAN_SETWORKMODE, // 设置探测器的工作模式(对应结构体pInBuf = NET_IN_CTRL_LOWRATEWPAN_SETWORKMODE *, pOutBUf = NULL)
  4181. DH_CTRL_COAXIAL_CONTROL_IO, // 发送同轴IO控制命令(对应结构体pInBuf = NET_IN_CONTROL_COAXIAL_CONTROL_IO*, pOutBUf = NET_OUT_CONTROL_COAXIAL_CONTROL_IO*)
  4182. DH_CTRL_START_REMOTELOWRATEWPAN_ALARMBELL, // 开启无线警号 (对应结构体pInBuf = NET_IN_START_REMOTELOWRATEWPAN_ALARMBELL*, pOutBUf = NET_OUT_START_REMOTELOWRATEWPAN_ALARMBELL*)
  4183. DH_CTRL_STOP_REMOTELOWRATEWPAN_ALARMBELL, // 关闭无线警号 (对应结构体pInBuf = NET_IN_STOP_REMOTELOWRATEWPAN_ALARMBELL*, pOutBUf = NET_OUT_STOP_REMOTELOWRATEWPAN_ALARMBELL*)
  4184. DH_CTRL_THERMO_DO_FFC, // 热成像FFC校准(对应结构体 pInBuf = NET_IN_THERMO_DO_FFC *,pOutBuf = NET_OUT_THERMO_DO_FFC *)
  4185. DH_CTRL_THERMO_FIX_FOCUS, // 热成像双目定焦调(对应结构体 pInBuf = NET_IN_THERMO_FIX_FOCUS *,pOutBuf = NET_OUT_THERMO_FIX_FOCUS *)
  4186. DH_CTRL_SET_THIRD_CALLSTATUS, // 设置对讲状态(对应结构体pInBuf = NET_IN_VTP_THIRDCALL_STATUS*, pOutBuf = NET_OUT_VTP_THIRDCALL_STATUS*)
  4187. DH_CTRL_ACCESS_CLEAR_STATUS, // 门禁-清除用户进出门状态 (对应结构体pInBuf = NET_IN_ACCESS_CLEAR_STATUS*, pOutBuf = NET_OUT_ACCESS_CLEAR_STATUS *)
  4188. DH_CTRL_ACCESS_DEAL_RECORD, // 门禁-查询/设置用户进出门记录 (对应结构体pInBuf = NET_IN_ACCESS_DEAL_RECORD*, pOutBuf = NET_OUT_ACCESS_DEAL_RECORD*)
  4189. DH_CTRL_QUERY_DELIVERED_FILE, // 向视频输出口查询广告信息,楼宇对讲使用,(对应结构体pInBuf = NET_IN_CTRL_QUERY_DELIVERYE_FILE*, pOutBuf = NET_OUT_CTRL_QUERY_DELIVERYE_FILE*)
  4190. DH_CTRL_SET_PARK_CONTROL_INFO, // 设置停车控制信息(点阵屏和语音播报的控制)(对应结构体pInBuf = NET_IN_SET_PARK_CONTROL_INFO*, pOutBuf = NET_OUT_SET_PARK_CONTROL_INFO*)
  4191. DH_CTRL_CHANGE_SUSTAIN, // 修改图片广告文件的停留时间,(对应结构体pInBuf = NET_IN_CTRL_CHANGE_SUSTAIN*, pOutBuf = NET_OUT_CTRL_CHANGE_SUSTAIN*)
  4192. DH_CTRL_DEVVIDEOINPUT_LIGHT, // 控制灯光,(对应结构体pInBuf = NET_IN_CTRL_DEVVIDEOINPUT_LIGHT*, pOutBuf = NET_OUT_CTRL_DEVVIDEOINPUT_LIGHT*)
  4193. DH_CTRL_SNAP_TASK_ADD, // 下发抓图任务(对应结构体pInBuf = NET_IN_CTRL_SNAP_TASK_ADD*, pOutBuf = NET_OUT_CTRL_SNAP_TASK_ADD*)
  4194. DH_CTRL_QUERY_DELIVERED_FILE_EX, // 向视频输出口查询广告信息扩展,楼宇对讲使用,(对应结构体pInBuf = NET_IN_CTRL_QUERY_DELIVERYE_FILE_EX*, pOutBuf = NET_OUT_CTRL_QUERY_DELIVERYE_FILE_EX*)
  4195. /**********LowRateWPAN控制(0x10100-0x10150)**********************************************************************************/
  4196. DH_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL = 0x10100, // 获取无线设备信号强度(对应结构体 pInBuf = NET_IN_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL *,pOutBuf = NET_OUT_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL *)
  4197. DH_CTRL_LOWRATEWPAN_SET_ACCESSORY_PARAM, // 设置配件信息(对应结构体pInBuf = NET_IN_CTRL_LOWRATEWPAN_ACCESSORY_PARAM *,pOutBuf = NULL)
  4198. } CtrlType;
  4199. #define DH_MAX_WIRELESS_DEV_NUM 80 //无线设备最大数量
  4200. ///@brief 获取无线设备信号强度入参(对应DH_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL)
  4201. typedef struct tagNET_IN_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL
  4202. {
  4203. DWORD dwSize; //结构体大小
  4204. int nStartIndex; //开始的索引号,从0开始
  4205. int nDevStateNum; //本次获取的设备状态条数,此值小于等于能力集中MaxPageSize字段的值
  4206. }NET_IN_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL;
  4207. ///@brief 无线设备信号信息
  4208. typedef struct tagNET_WIRELESSDEVSIGNAL_INFO
  4209. {
  4210. char szDevSN[32]; //设备序列号
  4211. UINT unSignal; //无线信号强度百分比
  4212. BYTE byReserver[512]; //保留字节
  4213. }NET_WIRELESSDEVSIGNAL_INFO;
  4214. ///@brief 获取无线设备信号强度出参(对应DH_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL)
  4215. typedef struct tagNET_OUT_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL
  4216. {
  4217. DWORD dwSize; //结构体大小
  4218. int nWirelessDevNum; //获取无线设备数量
  4219. NET_WIRELESSDEVSIGNAL_INFO stuDevSignal[DH_MAX_WIRELESS_DEV_NUM];//无线设备信号强度
  4220. }NET_OUT_CTRL_LOWRATEWPAN_GETWIRELESSDEVSIGNAL;
  4221. ///@brief 保存上下位矩阵输出关系参数(对应命令DH_CTRL_MATRIX_SAVE_SWITCH)
  4222. typedef struct tagNET_CTRL_MATRIX_SAVE_SWITCH
  4223. {
  4224. DWORD dwSize;
  4225. const char* pszName; // 上下位矩阵输出关系名称
  4226. } NET_CTRL_MATRIX_SAVE_SWITCH;
  4227. ///@brief 恢复上下位矩阵输出关系参数(对应命令DH_CTRL_MATRIX_RESTORE_SWITCH)
  4228. typedef struct tagNET_CTRL_MATRIX_RESTORE_SWITCH
  4229. {
  4230. DWORD dwSize;
  4231. const char* pszName; // 上下位矩阵输出关系名称
  4232. } NET_CTRL_MATRIX_RESTORE_SWITCH;
  4233. ///@brief 恢复默认配置新协议输入参数
  4234. typedef struct tagNET_CTRL_RESTORE_DEFAULT
  4235. {
  4236. DWORD dwSize;
  4237. const char* szCfgNames; // 配置名称以'&&'为间隔,配置名参见dhconfigsdk.h的CLIENT_GetNewDevConfig和CLIENT_SetNewDevConfig接口的配置命令
  4238. }NET_CTRL_RESTORE_DEFAULT;
  4239. ///@brief 恢复相机默认设置输入参数
  4240. typedef struct tagNET_CTRL_RESTORE_EXCEPT
  4241. {
  4242. DWORD dwSize;
  4243. char szCfgName[DH_MAX_STRING_LEN]; // 配置名称;如果有多个配置,则用&&分割;配置名参见dhconfigsdk.h的CLIENT_GetNewDevConfig和CLIENT_SetNewDevConfig接口的配置命令
  4244. }NET_CTRL_RESTORE_EXCEPT;
  4245. ///@brief 打开空调参数(对应命令DH_CTRL_AIRCONDITION_OPEN)
  4246. typedef struct tagNET_CTRL_OPEN_AIRCONDITION
  4247. {
  4248. DWORD dwSize;
  4249. char szDeviceID[DH_MAX_DEV_ID_LEN]; // 设备惟一标识符
  4250. } NET_CTRL_OPEN_AIRCONDITION;
  4251. ///@brief 关闭空调参数(对应命令DH_CTRL_AIRCONDITION_CLOSE)
  4252. typedef struct tagNET_CTRL_CLOSE_AIRCONDITION
  4253. {
  4254. DWORD dwSize;
  4255. char szDeviceID[DH_MAX_DEV_ID_LEN]; // 设备惟一标识符
  4256. } NET_CTRL_CLOSE_AIRCONDITION;
  4257. ///@brief 设置空调温度参数(对应命令DH_CTRL_AIRCONDITION_SET_TEMPERATURE)
  4258. typedef struct tagNET_CTRL_SET_TEMPERATURE
  4259. {
  4260. DWORD dwSize;
  4261. char szDeviceID[DH_MAX_DEV_ID_LEN]; // 设备惟一标识符
  4262. int nTemperature; // 温度值(单位:摄氏度)
  4263. } NET_CTRL_SET_TEMPERATURE;
  4264. ///@brief 调节空调温度参数(对应命令DH_CTRL_AIRCONDITION_ADJUST_TEMPERATURE)
  4265. typedef struct tagNET_CTRL_ADJUST_TEMPERATURE
  4266. {
  4267. DWORD dwSize;
  4268. char szDeviceID[DH_MAX_DEV_ID_LEN]; // 设备惟一标识符
  4269. int nTemperatureScale; // 设置的值, 如-1表示温度下调一度(单位:摄氏度)
  4270. } NET_CTRL_ADJUST_TEMPERATURE;
  4271. ///@brief 设置空调工作模式参数(对应命令DH_CTRL_AIRCONDITION_SETMODE)
  4272. typedef struct tagNET_CTRL_AIRCONDITION_SETMODE
  4273. {
  4274. DWORD dwSize;
  4275. char szDeviceID[DH_MAX_DEV_ID_LEN]; // 设备惟一标识符
  4276. EM_AIRCONDITION_MODE emAirconditionMode; // 空调工作模式
  4277. int nTemperature; // 设置的值(单位:摄氏度)
  4278. } NET_CTRL_AIRCONDITION_SETMODE;
  4279. ///@brief 设置空调送风模式参数(对应命令DH_CTRL_AIRCONDITION_SETWINDMODE)
  4280. typedef struct tagNET_CTRL_AIRCONDITION_SETWINDMODE
  4281. {
  4282. DWORD dwSize;
  4283. char szDeviceID[DH_MAX_DEV_ID_LEN]; // 设备惟一标识符
  4284. EM_AIRCONDITION_WINDMODE emAirconditionWindMode; // 空调送风模式
  4285. } NET_CTRL_AIRCONDITION_SETWINDMODE;
  4286. ///@brief IO控制命令,对应CLIENT_QueryIOControlState接口
  4287. typedef enum _IOTYPE
  4288. {
  4289. DH_ALARMINPUT = 1, // 控制报警输入,对应结构体为ALARM_CONTROL
  4290. DH_ALARMOUTPUT = 2, // 控制报警输出,对应结构体为ALARM_CONTROL
  4291. DH_DECODER_ALARMOUT = 3, // 控制报警解码器输出,对应结构体为DECODER_ALARM_CONTROL
  4292. DH_WIRELESS_ALARMOUT = 5, // 控制无线报警输出,对应结构体为ALARM_CONTROL
  4293. DH_ALARM_TRIGGER_MODE = 7, // 报警触发方式(手动,自动,关闭),使用TRIGGER_MODE_CONTROL结构体
  4294. } DH_IOTYPE;
  4295. /////////////////////////////配置相关/////////////////////////////////
  4296. ///@brief 分辨率枚举,供DH_DSP_ENCODECAP使用
  4297. typedef enum _CAPTURE_SIZE
  4298. {
  4299. CAPTURE_SIZE_D1, // 704*576(PAL) 704*480(NTSC),兼容WWxHH,下同
  4300. CAPTURE_SIZE_HD1, // 352*576(PAL) 352*480(NTSC)
  4301. CAPTURE_SIZE_BCIF, // 704*288(PAL) 704*240(NTSC)
  4302. CAPTURE_SIZE_CIF, // 352*288(PAL) 352*240(NTSC)
  4303. CAPTURE_SIZE_QCIF, // 176*144(PAL) 176*120(NTSC)
  4304. CAPTURE_SIZE_VGA, // 640*480
  4305. CAPTURE_SIZE_QVGA, // 320*240
  4306. CAPTURE_SIZE_SVCD, // 480*480
  4307. CAPTURE_SIZE_QQVGA, // 160*128
  4308. CAPTURE_SIZE_SVGA, // 800*592
  4309. CAPTURE_SIZE_XVGA, // 1024*768
  4310. CAPTURE_SIZE_WXGA, // 1280*800
  4311. CAPTURE_SIZE_SXGA, // 1280*1024
  4312. CAPTURE_SIZE_WSXGA, // 1600*1024
  4313. CAPTURE_SIZE_UXGA, // 1600*1200
  4314. CAPTURE_SIZE_WUXGA, // 1920*1200
  4315. CAPTURE_SIZE_LTF, // 240*192,ND1
  4316. CAPTURE_SIZE_720, // 1280*720
  4317. CAPTURE_SIZE_1080, // 1920*1080
  4318. CAPTURE_SIZE_1_3M, // 1280*960
  4319. CAPTURE_SIZE_2M, // 1872*1408,2_5M
  4320. CAPTURE_SIZE_5M, // 3744*1408
  4321. CAPTURE_SIZE_3M, // 2048*1536
  4322. CAPTURE_SIZE_5_0M, // 2432*2050
  4323. CPTRUTE_SIZE_1_2M, // 1216*1024
  4324. CPTRUTE_SIZE_1408_1024, // 1408*1024
  4325. CPTRUTE_SIZE_8M, // 3296*2472
  4326. CPTRUTE_SIZE_2560_1920, // 2560*1920(5_1M)
  4327. CAPTURE_SIZE_960H, // 960*576(PAL) 960*480(NTSC)
  4328. CAPTURE_SIZE_960_720, // 960*720
  4329. CAPTURE_SIZE_NHD, // 640*360
  4330. CAPTURE_SIZE_QNHD, // 320*180
  4331. CAPTURE_SIZE_QQNHD, // 160*90
  4332. CAPTURE_SIZE_960_540, // 960*540
  4333. CAPTURE_SIZE_640_352, // 640*352
  4334. CAPTURE_SIZE_640_400, // 640*400
  4335. CAPTURE_SIZE_320_192, // 320*192
  4336. CAPTURE_SIZE_320_176, // 320*176
  4337. CAPTURE_SIZE_SVGA1, // 800*600
  4338. CAPTURE_SIZE_2560_1440, // 2560*1440
  4339. CAPTURE_SIZE_2304_1296, // 2304*1296
  4340. CAPTURE_SIZE_2592_1520, // 2592*1520
  4341. CAPTURE_SIZE_4000_3000, // 4000*3000
  4342. CAPTURE_SIZE_2880_2880, // 2880*2880
  4343. CAPTURE_SIZE_2880_2160, // 2880*2160
  4344. CAPTURE_SIZE_2688_1520, // 2688*1520
  4345. CAPTURE_SIZE_2592_1944, // 2592*1944
  4346. CAPTURE_SIZE_3072_1728, // 3072*1728
  4347. CAPTURE_SIZE_3072_2048, // 3072*2048
  4348. CAPTURE_SIZE_3840_2160, // 3840*2160
  4349. CAPTURE_SIZE_NR=255
  4350. } CAPTURE_SIZE;
  4351. ///@brief 分辨率枚举,细分到具体分辨率
  4352. typedef enum tagEM_CAPTURE_SIZE_EX
  4353. {
  4354. EM_CAPTURE_SIZE_EX_D1, // D1 704*576(PAL) 704*480(NTSC),兼容WWxHH,下同
  4355. EM_CAPTURE_SIZE_EX_D1_PAL, // 704*576(PAL)
  4356. EM_CAPTURE_SIZE_EX_D1_NTSC, // 704*480(NTSC)
  4357. EM_CAPTURE_SIZE_EX_HD1, // HD1 352*576(PAL) 352*480(NTSC)
  4358. EM_CAPTURE_SIZE_EX_HD1_PAL, // 352*576(PAL)
  4359. EM_CAPTURE_SIZE_EX_HD1_NTSC, // 352*480(NTSC)
  4360. EM_CAPTURE_SIZE_EX_BCIF, // BCIF 704*288(PAL) 704*240(NTSC)
  4361. EM_CAPTURE_SIZE_EX_BCIF_PAL, // 704*288(PAL)
  4362. EM_CAPTURE_SIZE_EX_BCIF_NTSC, // 704*240(NTSC)
  4363. EM_CAPTURE_SIZE_EX_CIF, // CIF 352*288(PAL) 352*240(NTSC)
  4364. EM_CAPTURE_SIZE_EX_CIF_PAL, // 352*288(PAL)
  4365. EM_CAPTURE_SIZE_EX_CIF_NTSC, // 352*240(NTSC)
  4366. EM_CAPTURE_SIZE_EX_QCIF, // QCIF 176*144(PAL) 176*120(NTSC)
  4367. EM_CAPTURE_SIZE_EX_QCIF_PAL, // 176*144(PAL)
  4368. EM_CAPTURE_SIZE_EX_QCIF_NTSC, // 176*120(NTSC)
  4369. EM_CAPTURE_SIZE_EX_VGA, // 640*480
  4370. EM_CAPTURE_SIZE_EX_QVGA, // 320*240
  4371. EM_CAPTURE_SIZE_EX_SVCD, // 480*480
  4372. EM_CAPTURE_SIZE_EX_QQVGA, // 160*128
  4373. EM_CAPTURE_SIZE_EX_SVGA, // 800*592
  4374. EM_CAPTURE_SIZE_EX_XVGA, // 1024*768
  4375. EM_CAPTURE_SIZE_EX_WXGA, // 1280*800
  4376. EM_CAPTURE_SIZE_EX_SXGA, // 1280*1024
  4377. EM_CAPTURE_SIZE_EX_WSXGA, // 1600*1024
  4378. EM_CAPTURE_SIZE_EX_UXGA, // 1600*1200
  4379. EM_CAPTURE_SIZE_EX_WUXGA, // 1920*1200
  4380. EM_CAPTURE_SIZE_EX_LTF, // 240*192,ND1
  4381. EM_CAPTURE_SIZE_EX_720, // 1280*720
  4382. EM_CAPTURE_SIZE_EX_1080, // 1920*1080
  4383. EM_CAPTURE_SIZE_EX_1_3M, // 1280*960
  4384. EM_CAPTURE_SIZE_EX_2M, // 1872*1408,2_5M
  4385. EM_CAPTURE_SIZE_EX_5M, // 3744*1408
  4386. EM_CAPTURE_SIZE_EX_3M, // 2048*1536
  4387. EM_CAPTURE_SIZE_EX_5_0M, // 2432*2050
  4388. EM_CAPTURE_SIZE_EX_1_2M, // 1216*1024
  4389. EM_CAPTURE_SIZE_EX_1408_1024, // 1408*1024
  4390. EM_CAPTURE_SIZE_EX_8M, // 3296*2472
  4391. EM_CAPTURE_SIZE_EX_2560_1920, // 2560*1920(5_1M)
  4392. EM_CAPTURE_SIZE_EX_960H, // 960H 960*576(PAL) 960*480(NTSC)
  4393. EM_CAPTURE_SIZE_EX_960H_PAL, // 960*576(PAL)
  4394. EM_CAPTURE_SIZE_EX_960H_NTSC, // 960*480(NTSC)
  4395. EM_CAPTURE_SIZE_EX_960_720, // 960*720
  4396. EM_CAPTURE_SIZE_EX_NHD, // 640*360
  4397. EM_CAPTURE_SIZE_EX_QNHD, // 320*180
  4398. EM_CAPTURE_SIZE_EX_QQNHD, // 160*90
  4399. EM_CAPTURE_SIZE_EX_960_540, // 960*540
  4400. EM_CAPTURE_SIZE_EX_640_352, // 640*352
  4401. EM_CAPTURE_SIZE_EX_640_400, // 640*400
  4402. EM_CAPTURE_SIZE_EX_320_192, // 320*192
  4403. EM_CAPTURE_SIZE_EX_320_176, // 320*176
  4404. EM_CAPTURE_SIZE_EX_SVGA1, // 800*600
  4405. EM_CAPTURE_SIZE_EX_2560_1440, // 2560*1440
  4406. EM_CAPTURE_SIZE_EX_2304_1296, // 2304*1296
  4407. EM_CAPTURE_SIZE_EX_2592_1520, // 2592*1520
  4408. EM_CAPTURE_SIZE_EX_4000_3000, // 4000*3000
  4409. EM_CAPTURE_SIZE_EX_2880_2880, // 2880*2880
  4410. EM_CAPTURE_SIZE_EX_2880_2160, // 2880*2160
  4411. EM_CAPTURE_SIZE_EX_2688_1520, // 2688*1520
  4412. EM_CAPTURE_SIZE_EX_2592_1944, // 2592*1944
  4413. EM_CAPTURE_SIZE_EX_3072_1728, // 3072*1728
  4414. EM_CAPTURE_SIZE_EX_3072_2048, // 3072*2048
  4415. EM_CAPTURE_SIZE_EX_3840_2160, // 3840*2160
  4416. EM_CAPTURE_SIZE_EX_NR=255
  4417. } EM_CAPTURE_SIZE_EX;
  4418. ///@brief 配置文件类型,供CLIENT_ExportConfigFile接口使用
  4419. typedef enum __DH_CONFIG_FILE_TYPE
  4420. {
  4421. DH_CONFIGFILE_ALL = 0, // 全部配置文件
  4422. DH_CONFIGFILE_LOCAL, // 本地配置文件
  4423. DH_CONFIGFILE_NETWORK, // 网络配置文件
  4424. DH_CONFIGFILE_USER, // 用户配置文件
  4425. } DH_CONFIG_FILE_TYPE;
  4426. ///@brief NTP
  4427. typedef enum __DH_TIME_ZONE_TYPE
  4428. {
  4429. DH_TIME_ZONE_0, // (0, 0*3600,"GMT+00:00")
  4430. DH_TIME_ZONE_1, // (1, 1*3600,"GMT+01:00")
  4431. DH_TIME_ZONE_2, // (2, 2*3600,"GMT+02:00")
  4432. DH_TIME_ZONE_3, // (3, 3*3600,"GMT+03:00")
  4433. DH_TIME_ZONE_4, // (4, 3*3600+1800,"GMT+03:30")
  4434. DH_TIME_ZONE_5, // (5, 4*3600,"GMT+04:00")
  4435. DH_TIME_ZONE_6, // (6, 4*3600+1800,"GMT+04:30")
  4436. DH_TIME_ZONE_7, // (7, 5*3600,"GMT+05:00")
  4437. DH_TIME_ZONE_8, // (8, 5*3600+1800,"GMT+05:30")
  4438. DH_TIME_ZONE_9, // (9, 5*3600+1800+900,"GMT+05:45")
  4439. DH_TIME_ZONE_10, // (10, 6*3600,"GMT+06:00")
  4440. DH_TIME_ZONE_11, // (11, 6*3600+1800,"GMT+06:30")
  4441. DH_TIME_ZONE_12, // (12, 7*3600,"GMT+07:00")
  4442. DH_TIME_ZONE_13, // (13, 8*3600,"GMT+08:00")
  4443. DH_TIME_ZONE_14, // (14, 9*3600,"GMT+09:00")
  4444. DH_TIME_ZONE_15, // (15, 9*3600+1800,"GMT+09:30")
  4445. DH_TIME_ZONE_16, // (16, 10*3600,"GMT+10:00")
  4446. DH_TIME_ZONE_17, // (17, 11*3600,"GMT+11:00")
  4447. DH_TIME_ZONE_18, // (18, 12*3600,"GMT+12:00")
  4448. DH_TIME_ZONE_19, // (19, 13*3600,"GMT+13:00")
  4449. DH_TIME_ZONE_20, // (20, -1*3600,"GMT-01:00")
  4450. DH_TIME_ZONE_21, // (21, -2*3600,"GMT-02:00")
  4451. DH_TIME_ZONE_22, // (22, -3*3600,"GMT-03:00")
  4452. DH_TIME_ZONE_23, // (23, -3*3600-1800,"GMT-03:30")
  4453. DH_TIME_ZONE_24, // (24, -4*3600,"GMT-04:00")
  4454. DH_TIME_ZONE_25, // (25, -5*3600,"GMT-05:00")
  4455. DH_TIME_ZONE_26, // (26, -6*3600,"GMT-06:00")
  4456. DH_TIME_ZONE_27, // (27, -7*3600,"GMT-07:00")
  4457. DH_TIME_ZONE_28, // (28, -8*3600,"GMT-08:00")
  4458. DH_TIME_ZONE_29, // (29, -9*3600,"GMT-09:00")
  4459. DH_TIME_ZONE_30, // (30, -10*3600,"GMT-10:00")
  4460. DH_TIME_ZONE_31, // (31, -11*3600,"GMT-11:00")
  4461. DH_TIME_ZONE_32, // (32, -12*3600,"GMT-12:00")
  4462. } DH_TIME_ZONE_TYPE;
  4463. ///@brief 抓图类型
  4464. typedef enum _SNAP_TYPE
  4465. {
  4466. SNAP_TYP_TIMING = 0,
  4467. SNAP_TYP_ALARM,
  4468. SNAP_TYP_NUM = 2,
  4469. } SNAP_TYPE;
  4470. ///@brief 连接状态
  4471. typedef enum _CONNECT_STATE
  4472. {
  4473. CONNECT_STATE_UNCONNECT = 0, // 未连连接
  4474. CONNECT_STATE_CONNECTING, // 正在连接
  4475. CONNECT_STATE_CONNECTED, // 已连接
  4476. CONNECT_STATE_EMPTY, // 通道未配置,无信息
  4477. CONNECT_STATE_CHANGED, // 连接的设备信息有改动
  4478. CONNECT_STATE_ERROR = 255, // 未知设备状态
  4479. } CONNECT_STATE;
  4480. ///@brief 抓拍模式
  4481. typedef enum tagDH_TRAFFIC_SNAP_MODE
  4482. {
  4483. DH_TRAFFIC_SNAP_MODE_COIL = 1, // 线圈抓拍
  4484. DH_TRAFFIC_SNAP_MODE_COIL_PICANALYSIS, // 线圈抓拍, 图片分析
  4485. DH_TRAFFIC_SNAP_MODE_STREAM, // 视频抓拍
  4486. DH_TRAFFIC_SNAP_MODE_STREAM_IDENTIFY, // 视频抓拍, 并且识别
  4487. } DH_TRAFFIC_SNAP_MODE;
  4488. ///@brief 车位灯类型
  4489. typedef enum
  4490. {
  4491. NET_CARPORTLIGHT_TYPE_RED, // 红灯
  4492. NET_CARPORTLIGHT_TYPE_GREEN, // 绿灯
  4493. }NET_CARPORTLIGHT_TYPE;
  4494. ///@brief 车位灯亮灯方式
  4495. typedef enum
  4496. {
  4497. NET_CARPORTLIGHT_MODE_OFF, // 灭
  4498. NET_CARPORTLIGHT_MODE_ON, // 亮
  4499. NET_CARPORTLIGHT_MODE_GLINT, // 闪烁
  4500. }NET_CARPORTLIGHT_MODE;
  4501. /////////////////////////////智能交通相关/////////////////////////////////
  4502. ///@brief 禁止/允许名单操作类型
  4503. typedef enum _EM_OPERATE_TYPE
  4504. {
  4505. NET_TRAFFIC_LIST_INSERT, // 增加记录操作(对应结构体 NET_INSERT_RECORD_INFO)
  4506. NET_TRAFFIC_LIST_UPDATE, // 更新记录操作(对应结构体 NET_UPDATE_RECORD_INFO)
  4507. NET_TRAFFIC_LIST_REMOVE, // 删除记录操作(对应结构体 NET_REMOVE_RECORD_INFO)
  4508. NET_TRAFFIC_LIST_MAX,
  4509. }EM_RECORD_OPERATE_TYPE ;
  4510. ///@brief 车牌类型
  4511. typedef enum _EM_NET_PLATE_TYPE
  4512. {
  4513. NET_PLATE_TYPE_UNKNOWN,
  4514. NET_PLATE_TYPE_NORMAL, // "Normal" 蓝牌黑牌
  4515. NET_PLATE_TYPE_YELLOW, // "Yellow" 黄牌
  4516. NET_PLATE_TYPE_DOUBLEYELLOW, // "DoubleYellow" 双层黄尾牌
  4517. NET_PLATE_TYPE_POLICE, // "Police" 警牌
  4518. NET_PLATE_TYPE_WJ,
  4519. NET_PLATE_TYPE_OUTERGUARD,
  4520. NET_PLATE_TYPE_DOUBLEOUTERGUARD,
  4521. NET_PLATE_TYPE_SAR, // "SAR" 港澳特区号牌
  4522. NET_PLATE_TYPE_TRAINNING, // "Trainning" 教练车号牌
  4523. NET_PLATE_TYPE_PERSONAL, // "Personal" 个性号牌
  4524. NET_PLATE_TYPE_AGRI, // "Agri" 农用牌
  4525. NET_PLATE_TYPE_EMBASSY, // "Embassy" 使馆号牌
  4526. NET_PLATE_TYPE_MOTO, // "Moto" 摩托车号牌
  4527. NET_PLATE_TYPE_TRACTOR, // "Tractor" 拖拉机号牌
  4528. NET_PLATE_TYPE_OFFICIALCAR, // "OfficialCar" 公务车
  4529. NET_PLATE_TYPE_PERSONALCAR, // "PersonalCar" 私家车
  4530. NET_PLATE_TYPE_WARCAR,
  4531. NET_PLATE_TYPE_OTHER, // "Other" 其他号牌
  4532. NET_PLATE_TYPE_CIVILAVIATION, // "Civilaviation" 民航号牌
  4533. NET_PLATE_TYPE_BLACK, // "Black" 黑牌
  4534. NET_PLATE_TYPE_PURENEWENERGYMICROCAR, // "PureNewEnergyMicroCar" 纯电动新能源小车
  4535. NET_PLATE_TYPE_MIXEDNEWENERGYMICROCAR, // "MixedNewEnergyMicroCar" 混合新能源小车
  4536. NET_PLATE_TYPE_PURENEWENERGYLARGECAR, // "PureNewEnergyLargeCar" 纯电动新能源大车
  4537. NET_PLATE_TYPE_MIXEDNEWENERGYLARGECAR, // "MixedNewEnergyLargeCar" 混合新能源大车
  4538. NET_PLATE_TYPE_HONGKONG, // "Hongkong" 香港号牌
  4539. NET_PLATE_TYPE_MAKAO, // "Makao" 澳门号牌
  4540. }EM_NET_PLATE_TYPE;
  4541. ///@brief 车牌颜色
  4542. typedef enum _EM_NET_PLATE_COLOR_TYPE
  4543. {
  4544. NET_PLATE_COLOR_OTHER, // 其他颜色
  4545. NET_PLATE_COLOR_BLUE, // 蓝色 "Blue"
  4546. NET_PLATE_COLOR_YELLOW, // 黄色 "Yellow"
  4547. NET_PLATE_COLOR_WHITE, // 白色 "White"
  4548. NET_PLATE_COLOR_BLACK, // 黑色 "Black"
  4549. NET_PLATE_COLOR_YELLOW_BOTTOM_BLACK_TEXT, // 黄底黑字 "YellowbottomBlackText"
  4550. NET_PLATE_COLOR_BLUE_BOTTOM_WHITE_TEXT, // 蓝底白字 "BluebottomWhiteText"
  4551. NET_PLATE_COLOR_BLACK_BOTTOM_WHITE_TEXT, // 黑底白字 "BlackBottomWhiteText"
  4552. NET_PLATE_COLOR_SHADOW_GREEN, // 渐变绿 "ShadowGreen"
  4553. NET_PLATE_COLOR_YELLOW_GREEN, // 黄绿双拼 "YellowGreen"
  4554. }EM_NET_PLATE_COLOR_TYPE;
  4555. ///@brief 车辆类型
  4556. typedef enum _EM_NET_VEHICLE_TYPE
  4557. {
  4558. NET_VEHICLE_TYPE_UNKNOW, // 未知类型
  4559. NET_VEHICLE_TYPE_MOTOR, // "Motor" 机动车
  4560. NET_VEHICLE_TYPE_NON_MOTOR, // "Non-Motor"非机动车
  4561. NET_VEHICLE_TYPE_BUS, // "Bus"公交车
  4562. NET_VEHICLE_TYPE_BICYCLE, // "Bicycle" 自行车
  4563. NET_VEHICLE_TYPE_MOTORCYCLE, // "Motorcycle"摩托车
  4564. NET_VEHICLE_TYPE_UNLICENSEDMOTOR, // "UnlicensedMotor": 无牌机动车
  4565. NET_VEHICLE_TYPE_LARGECAR, // "LargeCar" 大型汽车
  4566. NET_VEHICLE_TYPE_MICROCAR, // "MicroCar" 小型汽车
  4567. NET_VEHICLE_TYPE_EMBASSYCAR, // "EmbassyCar" 使馆汽车
  4568. NET_VEHICLE_TYPE_MARGINALCAR, // "MarginalCar" 领馆汽车
  4569. NET_VEHICLE_TYPE_AREAOUTCAR, // "AreaoutCar" 境外汽车
  4570. NET_VEHICLE_TYPE_FOREIGNCAR, // "ForeignCar" 外籍汽车
  4571. NET_VEHICLE_TYPE_DUALTRIWHEELMOTORCYCLE, // "DualTriWheelMotorcycle"两、三轮摩托车
  4572. NET_VEHICLE_TYPE_LIGHTMOTORCYCLE, // "LightMotorcycle" 轻便摩托车
  4573. NET_VEHICLE_TYPE_EMBASSYMOTORCYCLE, // "EmbassyMotorcycle "使馆摩托车
  4574. NET_VEHICLE_TYPE_MARGINALMOTORCYCLE, // "MarginalMotorcycle "领馆摩托车
  4575. NET_VEHICLE_TYPE_AREAOUTMOTORCYCLE, // "AreaoutMotorcycle "境外摩托车
  4576. NET_VEHICLE_TYPE_FOREIGNMOTORCYCLE, // "ForeignMotorcycle "外籍摩托车
  4577. NET_VEHICLE_TYPE_FARMTRANSMITCAR, // "FarmTransmitCar" 农用运输车
  4578. NET_VEHICLE_TYPE_TRACTOR, // "Tractor" 拖拉机
  4579. NET_VEHICLE_TYPE_TRAILER, // "Trailer" 挂车
  4580. NET_VEHICLE_TYPE_COACHCAR, // "CoachCar"教练汽车
  4581. NET_VEHICLE_TYPE_COACHMOTORCYCLE, // "CoachMotorcycle "教练摩托车
  4582. NET_VEHICLE_TYPE_TRIALCAR, // "TrialCar" 试验汽车
  4583. NET_VEHICLE_TYPE_TRIALMOTORCYCLE, // "TrialMotorcycle "试验摩托车
  4584. NET_VEHICLE_TYPE_TEMPORARYENTRYCAR, // "TemporaryEntryCar"临时入境汽车
  4585. NET_VEHICLE_TYPE_TEMPORARYENTRYMOTORCYCLE, // "TemporaryEntryMotorcycle"临时入境摩托车
  4586. NET_VEHICLE_TYPE_TEMPORARYSTEERCAR, // "TemporarySteerCar"临时行驶车
  4587. NET_VEHICLE_TYPE_PASSENGERCAR, // "PassengerCar" 客车
  4588. NET_VEHICLE_TYPE_LARGETRUCK, // "LargeTruck" 大货车
  4589. NET_VEHICLE_TYPE_MIDTRUCK, // "MidTruck" 中货车
  4590. NET_VEHICLE_TYPE_SALOONCAR, // "SaloonCar" 轿车
  4591. NET_VEHICLE_TYPE_MICROBUS, // "Microbus"面包车
  4592. NET_VEHICLE_TYPE_MICROTRUCK, // "MicroTruck"小货车
  4593. NET_VEHICLE_TYPE_TRICYCLE, // "Tricycle"三轮车
  4594. NET_VEHICLE_TYPE_PASSERBY, // "Passerby" 行人
  4595. }EM_NET_VEHICLE_TYPE;
  4596. ///@brief 车身颜色
  4597. typedef enum _EM_NET_VEHICLE_COLOR_TYPE
  4598. {
  4599. NET_VEHICLE_COLOR_OTHER, //其他颜色
  4600. NET_VEHICLE_COLOR_WHITE, //白色 "White"
  4601. NET_VEHICLE_COLOR_BLACK, //黑色 "Black"
  4602. NET_VEHICLE_COLOR_RED, //红色 "Red"
  4603. NET_VEHICLE_COLOR_YELLOW, //黄色 "Yellow"
  4604. NET_VEHICLE_COLOR_GRAY, //灰色 "Gray"
  4605. NET_VEHICLE_COLOR_BLUE, //蓝色 "Blue"
  4606. NET_VEHICLE_COLOR_GREEN, //绿色 "Green"
  4607. NET_VEHICLE_COLOR_PINK, //粉红色 "Pink"
  4608. NET_VEHICLE_COLOR_PURPLE, //紫色 "Purple"
  4609. NET_VEHICLE_COLOR_BROWN, //棕色 "Brown"
  4610. }EM_NET_VEHICLE_COLOR_TYPE;
  4611. ///@brief 布控类型
  4612. typedef enum _EM_NET_TRAFFIC_CAR_CONTROL_TYPE
  4613. {
  4614. NET_CAR_CONTROL_OTHER, // 其他
  4615. NET_CAR_CONTROL_OVERDUE_NO_CHECK, // "OverdueNoCheck"
  4616. NET_CAR_CONTROL_BRIGANDAGE_CAR, // "BrigandageCar"
  4617. NET_CAR_CONTROL_BREAKING, // "Breaking"
  4618. NET_CAR_CONTROL_CAUSETROUBLE_ESCAPE, // "CausetroubleEscape"
  4619. NET_CAR_CONTROL_CAUSETROUBLE_OVERDUEPARKING, // "OverdueParking"
  4620. NET_CAR_CONTROL_COUNTERFEI_PLATE_CAR, // "CounterfeitPlateCar"
  4621. NET_CAR_CONTROL_FAKE_PLATE_CAR, // "FakePlateCar"
  4622. NET_CAR_CONTROL_FOCAL_CAR, // "FocalCar"
  4623. NET_CAR_CONTROL_GUARANTEE_CAR, // "GuaranteeCar"
  4624. NET_CAR_CONTROL_FOLLOW_CAR, // "FollowCar"
  4625. }EM_NET_TRAFFIC_CAR_CONTROL_TYPE;
  4626. ///@brief 权限类型
  4627. typedef enum _EM_NET_AUTHORITY_TYPE
  4628. {
  4629. NET_AUTHORITY_UNKNOW,
  4630. NET_AUTHORITY_OPEN_GATE, //开闸权限
  4631. }EM_NET_AUTHORITY_TYPE;
  4632. ///@brief 记录集信息类型
  4633. typedef enum _EM_NET_RECORD_TYPE
  4634. {
  4635. NET_RECORD_UNKNOWN,
  4636. NET_RECORD_TRAFFICREDLIST, // 交通允许名单账户记录
  4637. // 查询条件对应 FIND_RECORD_TRAFFICREDLIST_CONDITION 结构体
  4638. // 记录信息对应 NET_TRAFFIC_LIST_RECORD 结构体
  4639. NET_RECORD_TRAFFICBLACKLIST, // 交通禁止名单账号记录
  4640. // 查询条件对应 FIND_RECORD_TRAFFICREDLIST_CONDITION 结构体
  4641. // 记录信息对应 NET_TRAFFIC_LIST_RECORD 结构体
  4642. NET_RECORD_BURN_CASE, // 刻录案件记录
  4643. // 查询条件对应 FIND_RECORD_BURN_CASE_CONDITION 结构体
  4644. // 记录信息对应 NET_BURN_CASE_INFO 结构体
  4645. NET_RECORD_ACCESSCTLCARD, // 门禁卡
  4646. // 查询条件对应 FIND_RECORD_ACCESSCTLCARD_CONDITION 结构体
  4647. // 记录信息对应 NET_RECORDSET_ACCESS_CTL_CARD 结构体
  4648. NET_RECORD_ACCESSCTLPWD, // 门禁密码
  4649. // 查询条件对应 FIND_RECORD_ACCESSCTLPWD_CONDITION 结构体
  4650. // 记录信息对应 NET_RECORDSET_ACCESS_CTL_PWD
  4651. NET_RECORD_ACCESSCTLCARDREC, // 门禁出入记录(必须同时按卡号和时间段查询,建议用NET_RECORD_ACCESSCTLCARDREC_EX查询)
  4652. // 查询条件对应 FIND_RECORD_ACCESSCTLCARDREC_CONDITION 结构体
  4653. // 记录信息对应 NET_RECORDSET_ACCESS_CTL_CARDREC 结构体
  4654. NET_RECORD_ACCESSCTLHOLIDAY, // 假日记录集
  4655. // 查询条件对应 FIND_RECORD_ACCESSCTLHOLIDAY_CONDITION 结构体
  4656. // 记录信息对应 NET_RECORDSET_HOLIDAY 结构体
  4657. NET_RECORD_TRAFFICFLOW_STATE, // 查询交通流量记录
  4658. // 查询条件对应 FIND_RECORD_TRAFFICFLOW_CONDITION 结构体
  4659. // 记录信息对应 NET_RECORD_TRAFFIC_FLOW_STATE 结构体
  4660. NET_RECORD_VIDEOTALKLOG, // 通话记录
  4661. // 查询条件对应 FIND_RECORD_VIDEO_TALK_LOG_CONDITION 结构体
  4662. // 记录信息对应 NET_RECORD_VIDEO_TALK_LOG 结构体
  4663. NET_RECORD_REGISTERUSERSTATE, // 状态记录
  4664. // 查询条件对应 FIND_RECORD_REGISTER_USER_STATE_CONDITION 结构体
  4665. // 记录信息对应 NET_RECORD_REGISTER_USER_STATE 结构体
  4666. NET_RECORD_VIDEOTALKCONTACT, // 联系人记录
  4667. // 查询条件对应 FIND_RECORD_VIDEO_TALK_CONTACT_CONDITION 结构体
  4668. // 记录信息对应 NET_RECORD_VIDEO_TALK_CONTACT 结构体
  4669. NET_RECORD_ANNOUNCEMENT, //公告记录
  4670. //查询条件对应 FIND_RECORD_ANNOUNCEMENT_CONDITION 结构体
  4671. //记录信息对应 NET_RECORD_ANNOUNCEMENT_INFO 结构体
  4672. NET_RECORD_ALARMRECORD, //报警记录
  4673. //查询条件对应 FIND_RECORD_ALARMRECORD_CONDITION 结构体
  4674. //记录信息对应 NET_RECORD_ALARMRECORD_INFO 结构体
  4675. NET_RECORD_COMMODITYNOTICE, // 下发商品记录
  4676. // 查询条件对应 FIND_RECORD_COMMODITY_NOTICE_CONDITION 结构体
  4677. // 记录信息对应 NET_RECORD_COMMODITY_NOTICE 结构体
  4678. NET_RECORD_HEALTHCARENOTICE, // 就诊信息记录
  4679. // 查询条件对应 FIND_RECORD_HEALTH_CARE_NOTICE_CONDITION 结构体
  4680. // 记录信息对应 NET_RECORD_HEALTH_CARE_NOTICE 结构体
  4681. NET_RECORD_ACCESSCTLCARDREC_EX, // 门禁出入记录(可选择部分条件查询,建议替代NET_RECORD_ACCESSCTLCARDREC)
  4682. // 查询条件对应 FIND_RECORD_ACCESSCTLCARDREC_CONDITION_EX 结构体
  4683. // 记录信息对应 NET_RECORDSET_ACCESS_CTL_CARDREC 结构体
  4684. NET_RECORD_GPS_LOCATION, // GPS位置信息记录, 只实现import和clear
  4685. // 记录信息对应 NET_RECORD_GPS_LOCATION_INFO 结构体
  4686. NET_RECORD_RESIDENT, // 公租房租户信息
  4687. // 查询条件对应 FIND_RECORD_RESIDENT_CONDTION结构体
  4688. // 记录信息对应 NET_RECORD_RESIDENT_INFO 结构体
  4689. NET_RECORD_SENSORRECORD, // 监测量数据记录
  4690. // 查询条件对应 FIND_RECORD_SENSORRECORD_CONDITION 结构体
  4691. // 记录信息对应 NET_RECORD_SENSOR_RECORD 结构体
  4692. NET_RECORD_ACCESSQRCODE, //开门二维码记录集
  4693. //记录信息对应 NET_RECORD_ACCESSQRCODE_INFO 结构体
  4694. NET_RECORD_ELECTRONICSTAG, // 电子车牌查询
  4695. // 查询条件对应FIND_RECORD_ELECTRONICSTAG_CONDITION 结构体
  4696. // 记录信息对应NET_RECORD_ELECTRONICSTAG_INFO 结构体
  4697. NET_RECORD_ACCESS_BLUETOOTH, // 蓝牙开门记录集
  4698. // 查询条件对应 FIND_RECORD_ACCESS_BLUETOOTH_INFO_CONDITION 结构体
  4699. // 记录信息对应 NET_RECORD_ACCESS_BLUETOOTH_INFO 结构体
  4700. NET_RECORD_ACCESS_ALARMRECORD, // 门禁报警记录集
  4701. // 查询条件对应 FIND_NET_RECORD_ACCESS_ALARMRECORD_INFO_CONDITION 结构体
  4702. // 记录信息对应 NET_RECORD_ACCESS_ALARMRECORD_INFO 结构体
  4703. NET_RECORD_ACCESS_DOORSTATUS, // 开关门事件记录
  4704. // 查询条件对应 FIND_RECORD_ACCESS_DOORSTATUS_INFO_CONDITION 结构体
  4705. // 记录信息对应 NET_RECORD_ACCESS_DOORSTATUS_INFO 结构体
  4706. NET_RECORD_ACCESSCTL_COMMON_PASSWORD, // 楼宇通用开门密码
  4707. // 查询条件对应 FIND_RECORD_ACCESS_CTL_COMMONPASSWORD_INFO_CONDITION 结构体
  4708. // 记录信息对应 NET_RECORD_ACCESS_CTL_COMMONPASSWORD_INFO 结构体
  4709. NET_RECORD_ACCESS_MOBILE_PUSH_RESULT, // VTO设备推送信息记录
  4710. // 条件查询对应 FIND_RECORD_ACCESS_MOBILE_PUSH_RESULT_INFO_CONDITION 结构体
  4711. // 记录信息对应 NET_RECORD_ACCESS_MOBILE_PUSH_RESULT_INFO
  4712. NET_RECORD_HOSPITAL_USER, // 医院人员信息表
  4713. // 查询条件对应 FIND_RECORD_HOSPITAL_USER_CONDITION 结构体
  4714. // 记录信息对应 NET_RECORD_HOSPITAL_USER_INFO 结构体
  4715. NET_RECORD_HOSPITAL_DEVICE, // 医院设备信息表
  4716. // 查询条件对应 FIND_RECORD_HOSPITAL_DEVICE_CONDITION 结构体
  4717. // 记录信息对应 NET_RECORD_HOSPITAL_DEVICE_INFO 结构体
  4718. NET_RECORD_ACCESS_CONSUMPTION, // 消费记录
  4719. // 查询条件对应 FIND_RECORD_ACCESS_CTL_CONSUMPTION_INFO_CONDITION 结构体
  4720. // 记录信息对应 NET_RECORD_ACCESS_CTL_CONSUMPTION_INFO 结构体
  4721. }EM_NET_RECORD_TYPE;
  4722. ///@brief 时间类型
  4723. typedef enum
  4724. {
  4725. NET_TIME_TYPE_ABSLUTE, // 绝对时间
  4726. NET_TIME_TYPE_RELATIVE, // 相对时间,相对于视频文件头帧为时间基点,头帧对应于UTC(0000-00-00 00:00:00)
  4727. }EM_TIME_TYPE;
  4728. ///@brief 颜色类型
  4729. typedef enum
  4730. {
  4731. NET_COLOR_TYPE_RED, // 红色
  4732. NET_COLOR_TYPE_YELLOW, // 黄色
  4733. NET_COLOR_TYPE_GREEN, // 绿色
  4734. NET_COLOR_TYPE_CYAN, // 青色
  4735. NET_COLOR_TYPE_BLUE, // 蓝色
  4736. NET_COLOR_TYPE_PURPLE, // 紫色
  4737. NET_COLOR_TYPE_BLACK, // 黑色
  4738. NET_COLOR_TYPE_WHITE, // 白色
  4739. NET_COLOR_TYPE_MAX = 8,
  4740. }EM_COLOR_TYPE;
  4741. /////////////////////////////目标识别相关/////////////////////////////////
  4742. ///@brief 人员类型
  4743. typedef enum
  4744. {
  4745. PERSON_TYPE_UNKNOWN,
  4746. PERSON_TYPE_NORMAL, // 普通人员
  4747. PERSON_TYPE_SUSPICION, // 嫌疑人员
  4748. PERSON_TYPE_ARGXT, // ARGXT
  4749. PERSON_TYPE_VIP, // 重要人员
  4750. PERSON_TYPE_FATECHECK, // 打假人员
  4751. PERSON_TYPE_STAFF, // 工作人员
  4752. }EM_PERSON_TYPE;
  4753. ///@brief 证件类型
  4754. typedef enum
  4755. {
  4756. CERTIFICATE_TYPE_UNKNOWN,
  4757. CERTIFICATE_TYPE_IC, // 证件
  4758. CERTIFICATE_TYPE_PASSPORT, // 护照
  4759. CERTIFICATE_TYPE_OUTERGUARD, // 军官证
  4760. CERTIFICATE_TYPE_STUDENT, // 学生证
  4761. CERTIFICATE_TYPE_POLICE, // 警官证
  4762. CERTIFICATE_TYPE_LAWYER, // 律师
  4763. }EM_CERTIFICATE_TYPE;
  4764. ///@brief 目标识别数据库操作
  4765. typedef enum
  4766. {
  4767. NET_FACERECONGNITIONDB_UNKOWN,
  4768. NET_FACERECONGNITIONDB_ADD, // 添加人员信息和目标样本,如果人员已经存在,图片数据和原来的数据合并
  4769. NET_FACERECONGNITIONDB_DELETE, // 删除人员信息和目标样本
  4770. NET_FACERECONGNITIONDB_MODIFY, // 修改人员信息和目标样本,人员的UID标识必填
  4771. NET_FACERECONGNITIONDB_DELETE_BY_UID, // 通过UID删除人员信息和目标样本
  4772. NET_FACERECONGNITIONDB_DELETE_BY_UUID, // 通过UUID删除人员信息和目标样本
  4773. }EM_OPERATE_FACERECONGNITIONDB_TYPE;
  4774. ///@brief 目标对比模式
  4775. typedef enum
  4776. {
  4777. NET_FACE_COMPARE_MODE_UNKOWN,
  4778. NET_FACE_COMPARE_MODE_NORMAL, // 正常
  4779. NET_FACE_COMPARE_MODE_AREA, // 指定目标区域组合区域
  4780. NET_FACE_COMPARE_MODE_AUTO, // 智能模式,算法根据目标各个区域情况自动选取组合
  4781. }EM_FACE_COMPARE_MODE;
  4782. ///@brief 目标区域
  4783. typedef enum
  4784. {
  4785. NET_FACE_AREA_TYPE_UNKOWN,
  4786. NET_FACE_AREA_TYPE_EYEBROW, // 眉毛
  4787. NET_FACE_AREA_TYPE_EYE, // 眼睛
  4788. NET_FACE_AREA_TYPE_NOSE, // 鼻子
  4789. NET_FACE_AREA_TYPE_MOUTH, // 嘴巴
  4790. NET_FACE_AREA_TYPE_CHEEK, // 脸颊
  4791. }EM_FACE_AREA_TYPE;
  4792. ///@brief 目标数据类型
  4793. typedef enum
  4794. {
  4795. NET_FACE_DB_TYPE_UNKOWN,
  4796. NET_FACE_DB_TYPE_HISTORY, // 历史数据库,存放的是检测出的目标信息,一般没有包含目标对应人员信息
  4797. NET_FACE_DB_TYPE_BLACKLIST, // 禁止名单数据库(现在用作注册库)
  4798. NET_FACE_DB_TYPE_WHITELIST, // 允许名单数据库,废弃
  4799. NET_FACE_DB_TYPE_ALARM , // 报警库, 废弃
  4800. NET_FACE_DB_TYPE_PASSERBY, // 路人库
  4801. }EM_FACE_DB_TYPE;
  4802. ///@brief 目标识别事件类型
  4803. typedef enum
  4804. {
  4805. NET_FACERECOGNITION_ALARM_TYPE_UNKOWN,
  4806. NET_FACERECOGNITION_ALARM_TYPE_ALL, // 禁止/允许名单
  4807. NET_FACERECOGNITION_ALARM_TYPE_BLACKLIST, // 禁止名单
  4808. NET_FACERECOGNITION_ALARM_TYPE_WHITELIST, // 允许名单
  4809. }EM_FACERECOGNITION_ALARM_TYPE;
  4810. ///@brief 目标识别目标类型
  4811. typedef enum
  4812. {
  4813. EM_FACERECOGNITION_FACE_TYPE_UNKOWN,
  4814. EM_FACERECOGNITION_FACE_TYPE_ALL, // 所有目标
  4815. EM_FACERECOGNITION_FACE_TYPE_REC_SUCCESS, // 识别成功
  4816. EM_FACERECOGNITION_FACE_TYPE_REC_FAIL, // 识别失败
  4817. }EM_FACERECOGNITION_FACE_TYPE;
  4818. ///@brief 帧类型枚举值
  4819. typedef enum __EM_FRAME_TYPE
  4820. {
  4821. EM_FRAME_UNKOWN, // 未知类型
  4822. EM_FRAME_TYPE_MOTION, // 动检帧,对应帧信息结构体 NET_MOTION_FRAME_INFO
  4823. }EM_FRAME_TYPE;
  4824. /////////////////////////////淘汰类型/////////////////////////////////
  4825. ///@brief 配置类型,目前使用该枚举的接口已淘汰,请不要使用
  4826. typedef enum _CFG_INDEX
  4827. {
  4828. CFG_GENERAL = 0, // 普通
  4829. CFG_COMM, // 串口
  4830. CFG_NET, // 网络
  4831. CFG_RECORD, // 录像
  4832. CFG_CAPTURE, // 图像设置
  4833. CFG_PTZ, // 云台
  4834. CFG_DETECT, // 动态检测
  4835. CFG_ALARM, // 报警
  4836. CFG_DISPLAY, // 显示
  4837. CFG_RESERVED, // 保留,使类型连贯
  4838. CFG_TITLE = 10, // 通道标题
  4839. CFG_MAIL = 11, // 邮件功能
  4840. CFG_EXCAPTURE = 12, // 预览图像设置
  4841. CFG_PPPOE = 13, // pppoe设置
  4842. CFG_DDNS = 14, // DDNS设置
  4843. CFG_SNIFFER = 15, // 网络预览捕获设置
  4844. CFG_DSPINFO = 16, // 编码能力信息
  4845. CFG_COLOR = 126, // 颜色配置信息
  4846. CFG_ALL, // 保留
  4847. } CFG_INDEX;
  4848. /************************************************************************
  4849. ** 结构体定义
  4850. ***********************************************************************/
  4851. ///@brief 显示区域相对于原显示窗口的坐标
  4852. typedef struct
  4853. {
  4854. double dleft; //显示区域相对于原显示窗口的左坐标
  4855. double dright; //显示区域相对于原显示窗口的右坐标
  4856. double dtop; //显示区域相对于原显示窗口的上坐标
  4857. double dbottom; //显示区域相对于原显示窗口的下坐标
  4858. } DH_DISPLAYRREGION;
  4859. ///@brief 时间信息
  4860. typedef struct tagNET_TIME
  4861. {
  4862. DWORD dwYear; // 年
  4863. DWORD dwMonth; // 月
  4864. DWORD dwDay; // 日
  4865. DWORD dwHour; // 时
  4866. DWORD dwMinute; // 分
  4867. DWORD dwSecond; // 秒
  4868. } NET_TIME,*LPNET_TIME;
  4869. ///@brief 时间信息
  4870. typedef struct tagNET_TIME_EX
  4871. {
  4872. DWORD dwYear; // 年
  4873. DWORD dwMonth; // 月
  4874. DWORD dwDay; // 日
  4875. DWORD dwHour; // 时
  4876. DWORD dwMinute; // 分
  4877. DWORD dwSecond; // 秒
  4878. DWORD dwMillisecond; // 毫秒
  4879. DWORD dwUTC; // utc时间(获取时0表示无效,非0有效 下发无效)
  4880. DWORD dwReserved[1]; // 预留字段
  4881. } NET_TIME_EX,*LPNET_TIME_EX;
  4882. ///@brief 时间信息
  4883. typedef struct tagNET_TIME_EX1
  4884. {
  4885. DWORD dwHour; // 时
  4886. DWORD dwMinute; // 分
  4887. DWORD dwSecond; // 秒
  4888. } NET_TIME_EX1;
  4889. ///@brief UTC时间
  4890. typedef struct tagUTCTime
  4891. {
  4892. unsigned int utc; // utc时间
  4893. unsigned int tolerance; // 容差,表示容许设置时间和当前差多少秒内不做修改 (下发时用到)
  4894. char reserved[8]; // 预留字段
  4895. }NET_UTCTIME, *LPNET_UTCTIME;
  4896. ///@brief 日志信息里的时间定义
  4897. typedef struct _DHDEVTIME
  4898. {
  4899. DWORD second:6; // 秒 1-60
  4900. DWORD minute:6; // 分 1-60
  4901. DWORD hour:5; // 时 1-24
  4902. DWORD day:5; // 日 1-31
  4903. DWORD month:4; // 月 1-12
  4904. DWORD year:6; // 年 2000-2063
  4905. } DHDEVTIME, *LPDHDEVTIME;
  4906. ///@brief 能力
  4907. typedef struct tagRANGE
  4908. {
  4909. float fMax; // 最大值
  4910. float fMin; // 最小值
  4911. BOOL abStep; // 是否启用步长
  4912. float fStep; // 步长
  4913. BOOL abDefault; // 是否启用默认值
  4914. float fDefault; // 默认值
  4915. char reserved[16];
  4916. } RANGE;
  4917. ///@brief 平场自动校正周期范围
  4918. typedef struct tagNET_FFCPERIOD_RANGE
  4919. {
  4920. int nMaxN; // 最大值(NTSC制式)
  4921. int nMaxP; // 最大值(PAL制式)
  4922. int nMin; // 最小值
  4923. int nStep; // 步长
  4924. BYTE reserved[16];
  4925. } NET_FFCPERIOD_RANGE;
  4926. ///@brief 回调数据(异步接口)
  4927. typedef struct __NET_CALLBACK_DATA
  4928. {
  4929. int nResultCode; // 返回码;0:成功
  4930. char *pBuf; // 接收数据, 缓冲是由用户开辟的,从接口形参传入,大小为nRetLen
  4931. int nRetLen; // 接收长度
  4932. LLONG lOperateHandle; // 操作句柄
  4933. void* userdata; // 操作对应用户参数
  4934. char reserved[16];
  4935. } NET_CALLBACK_DATA, *LPNET_CALLBACK_DATA;
  4936. ///@brief 事件公共字段扩展结构体: 该结构体仅用于 普通报警事件类型(不带图报警事件类型) 和 智能报警事件类型(带图报警事件类型) 的公共字段扩展使用
  4937. typedef struct tagNET_EVENT_INFO_EXTEND
  4938. {
  4939. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 stuRealUTC,否则 stuRealUTC 字段无效(用原事件结构体中的 事件发生时间/事件触发时间(UTC) 字段)
  4940. char byReserved[4]; // 仅用于字节对齐
  4941. NET_TIME_EX stuRealUTC; // 事件发生的时间(标准UTC时间(不带时区夏令时偏差)), 由于事件的UTC时间在产品线之间使用的差异性, 故增加RealUTC作为标准UTC时间, 平台在收到事件解析首优先级是RealUTC, 其次是UTC.
  4942. BOOL bIsEventsTypeValid; // 事件类型是否有效
  4943. UINT szEventsType; // 事件类型, bIsEventsTypeValid为TRUE时有效, 0:正常抓图事件, 1:邮件联动抓图事件(图片通过第二路抓图码流上来,和正常抓图的图片可以不一样)
  4944. char szReserved[1012]; // 保留字节
  4945. }NET_EVENT_INFO_EXTEND;
  4946. ///////////////////////////预览相关定义///////////////////////////////
  4947. ///@brief 回调视频数据帧的帧参数结构体
  4948. typedef struct _tagVideoFrameParam
  4949. {
  4950. BYTE encode; // 编码类型
  4951. BYTE frametype; // I = 0, P = 1, B = 2...
  4952. BYTE format; // PAL - 0, NTSC - 1
  4953. BYTE size; // CIF - 0, HD1 - 1, 2CIF - 2, D1 - 3, VGA - 4, QCIF - 5, QVGA - 6 ,
  4954. // SVCD - 7,QQVGA - 8, SVGA - 9, XVGA - 10,WXGA - 11,SXGA - 12,WSXGA - 13,UXGA - 14,WUXGA - 15, LFT - 16, 720 - 17, 1080 - 18 ,1_3M-19
  4955. // 2M-20, 5M-21;当size=255时,成员变量width,height 有效
  4956. DWORD fourcc; // 如果是H264编码则总为0,否则值为*( DWORD*)"DIVX",即0x58564944
  4957. WORD width; // 宽,单位是像素,当size=255时有效
  4958. WORD height; // 高,单位是像素,当size=255时有效
  4959. NET_TIME struTime; // 时间信息
  4960. } tagVideoFrameParam;
  4961. ///@brief 回调音频数据帧的帧参数结构体
  4962. typedef struct _tagCBPCMDataParam
  4963. {
  4964. BYTE channels; // 声道数
  4965. BYTE samples; // 采样 0 - 8000, 1 - 11025, 2 - 16000, 3 - 22050, 4 - 32000, 5 - 44100, 6 - 48000
  4966. BYTE depth; // 采样深度 取值8或者16等。直接表示
  4967. BYTE param1; // 0 - 指示无符号,1-指示有符号
  4968. DWORD reserved; // 保留
  4969. } tagCBPCMDataParam;
  4970. ///@brief 转码帧数据类型
  4971. typedef enum tagEM_STREAMCONVERT_FRAMEDATA_TYPE
  4972. {
  4973. EM_STREAMCONVERT_FRAMEDATA_UNKNOWN, // 未知
  4974. EM_STREAMCONVERT_FRAMEDATA_VIDEO, // 视频帧
  4975. EM_STREAMCONVERT_FRAMEDATA_AUDIO, // 音频帧
  4976. } EM_STREAMCONVERT_FRAMEDATA_TYPE;
  4977. ///@brief 转码流数据信息
  4978. typedef struct tagNET_STREAMCONVERT_INFO
  4979. {
  4980. EM_STREAMCONVERT_FRAMEDATA_TYPE emDataType; // 转码帧数据类型
  4981. void* pFrameInfo; // 帧信息
  4982. // 当emDataType 为 EM_STREAMCONVERT_FRAMEDATA_VIDEO 时,对应 tagVideoFrameParam 结构体
  4983. // 当emDataType 为 EM_STREAMCONVERT_FRAMEDATA_AUDIO 时,对应 tagCBPCMDataParam 结构体
  4984. }NET_STREAMCONVERT_INFO;
  4985. ///@brief 通道画面字幕叠加的数据结构
  4986. typedef struct _DH_CHANNEL_OSDSTRING
  4987. {
  4988. BOOL bEnable; // 使能
  4989. DWORD dwPosition[MAX_STRING_LINE_LEN]; //各行字符的位置 用1-9整数表示,与小键盘位置对应
  4990. // 7左上 8上 9右上
  4991. // 4左 5中 6右
  4992. // 1左下 2下 3右下
  4993. char szStrings[MAX_STRING_LINE_LEN][MAX_PER_STRING_LEN]; // 最多六行字符,每行最多20个字节
  4994. } DH_CHANNEL_OSDSTRING;
  4995. ///@brief 回调YUV数据的参数结构体
  4996. typedef struct _tagCBYUVDataParam
  4997. {
  4998. long nWidth; // 图象的宽
  4999. long nHeight; // 图象的高
  5000. NET_TIME stNetTime; // 码流中的时间
  5001. DWORD reserved[2]; // 保留
  5002. } tagCBYUVDataParam;
  5003. ///////////////////////////回放相关定义///////////////////////////////
  5004. ///@brief 录像查询类型
  5005. typedef enum tagEmQueryRecordType
  5006. {
  5007. EM_RECORD_TYPE_ALL = 0, // 所有录像
  5008. EM_RECORD_TYPE_ALARM = 1, // 外部报警录像
  5009. EM_RECORD_TYPE_MOTION_DETECT = 2, // 动态检测报警录像
  5010. EM_RECORD_TYPE_ALARM_ALL = 3, // 所有报警录像
  5011. EM_RECORD_TYPE_CARD = 4, // 卡号查询
  5012. EM_RECORD_TYPE_CONDITION = 5, // 按条件查询
  5013. EM_RECORD_TYPE_JOIN = 6, // 组合查询
  5014. EM_RECORD_TYPE_CARD_PICTURE = 8, // 按卡号查询图片,HB-U、NVS等使用
  5015. EM_RECORD_TYPE_PICTURE = 9, // 查询图片,HB-U、NVS等使用
  5016. EM_RECORD_TYPE_FIELD = 10, // 按字段查询
  5017. EM_RECORD_TYPE_INTELLI_VIDEO = 11, // 智能录像查询
  5018. EM_RECORD_TYPE_NET_DATA = 15, // 查询网络数据,金桥网吧等使用
  5019. EM_RECORD_TYPE_TRANS_DATA = 16, // 查询透明串口数据录像
  5020. EM_RECORD_TYPE_IMPORTANT = 17, // 查询重要录像
  5021. EM_RECORD_TYPE_TALK_DATA = 18, // 查询录音文件
  5022. EM_RECORD_TYPE_POS = 19, // POS录像
  5023. EM_RECORD_TYPE_INVALID = 256, // 无效的查询类型
  5024. }EM_QUERY_RECORD_TYPE;
  5025. ///@brief 录像文件信息
  5026. typedef struct tagNET_RECORDFILE_INFO
  5027. {
  5028. unsigned int ch; // 通道号
  5029. char filename[124]; // 文件名
  5030. unsigned int framenum; // 文件总帧数
  5031. unsigned int size; // 文件长度, 单位为Kbyte
  5032. NET_TIME starttime; // 开始时间
  5033. NET_TIME endtime; // 结束时间
  5034. unsigned int driveno; // 磁盘号(区分网络录像和本地录像的类型,0-127表示本地录像,其中64表示光盘1,128表示网络录像)
  5035. unsigned int startcluster; // 起始簇号
  5036. BYTE nRecordFileType; // 录象文件类型 0:普通录象;1:报警录象;2:移动检测;3:卡号录象;4:图片, 5: 智能录像, 19: POS录像, 255:所有录像
  5037. BYTE bImportantRecID; // 0:普通录像 1:重要录像
  5038. BYTE bHint; // 文件定位索引(nRecordFileType==4<图片>时,bImportantRecID<<8 +bHint ,组成图片定位索引 )
  5039. BYTE bRecType; // 0-主码流录像 1-辅码1流录像 2-辅码流2 3-辅码流3录像
  5040. } NET_RECORDFILE_INFO, *LPNET_RECORDFILE_INFO;
  5041. ///@brief 录像或抓图文件标志
  5042. typedef enum _EM_RECORD_SNAP_FLAG_TYPE
  5043. {
  5044. FLAG_TYPE_UNKNOW = -1 , //未知
  5045. FLAG_TYPE_TIMING , //定时文件
  5046. FLAG_TYPE_MANUAL , //手动文件
  5047. FLAG_TYPE_MARKED , //重要文件
  5048. FLAG_TYPE_EVENT , //事件文件
  5049. FLAG_TYPE_MOSAIC , //合成图片
  5050. FLAG_TYPE_CUTOUT , //抠图图片
  5051. FLAG_TYPE_LEAVE_WORD , //留言文件
  5052. FLAG_TYPE_TALKBACK_LOCAL_SIDE , //对讲本地方文件
  5053. FLAG_TYPE_TALKBACK_REMOTE_SIDE , //对讲远程方文件
  5054. FLAG_TYPE_SYNOPSIS_VIDEO , //浓缩视频
  5055. FLAG_TYPE_ORIGINAL_VIDEO , //原始视频
  5056. FLAG_TYPE_PRE_ORIGINAL_VIDEO , //已经预处理的原始视频
  5057. FLAG_TYPE_BLACK_PLATE , //禁止名单图片
  5058. FLAG_TYPE_ORIGINAL_PIC , //原始图片
  5059. FLAG_TYPE_CARD, //卡号录像
  5060. FLAG_TYPE_MAX = 128,
  5061. }EM_RECORD_SNAP_FLAG_TYPE;
  5062. ///@brief 录像文件信息(扩展)
  5063. typedef struct tagNET_RECORDFILE_INFOEX
  5064. {
  5065. NET_RECORDFILE_INFO stuRecordFileInfo; // 录像文件信息
  5066. BYTE bReserved1[4]; // 字节对齐
  5067. int nEventLists[256]; // 关联的事件列表,事件类型列表,参见智能分析事件类型
  5068. int nEventCount; // 事件总数
  5069. EM_RECORD_SNAP_FLAG_TYPE emFlagsList[128]; // 文件标志
  5070. int nFlagCount; // 文件标志总个数;
  5071. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuRecordFileInfo中的starttime和endtime有效(仅使用stuRecordFileInfo中的starttime和endtime)
  5072. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  5073. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  5074. BYTE bReserved[452]; // 预留字节
  5075. } NET_RECORDFILE_INFOEX, *LPNET_RECORDFILE_INFOEX;
  5076. ///@brief 浓缩录像文件信息
  5077. typedef struct tagNET_SynopsisFileInfo
  5078. {
  5079. DWORD dwSize; // 该结构体大小
  5080. char szFileName[MAX_PATH]; // 文件名,例如C:\a.dav
  5081. NET_TIME stuStartTime; // 开始时间
  5082. NET_TIME stuEndTime; // 结束时间
  5083. unsigned int nTaskID; // 在服务器里的标示,与文件名2选1使用
  5084. BYTE bFileType; // 1-视频浓缩录像文件,2-视频浓缩源文件
  5085. BYTE byMode; // 下载模式: 0-按文件下载, 1-按时间下载, 2-按文件偏移下载
  5086. BYTE bReserved[2];
  5087. unsigned int nFileLength; // 文件大小,单位:KB
  5088. unsigned int nStartFileOffset; // 起始文件偏移, 单位: KB
  5089. unsigned int nEndFileOffset; // 结束文件偏移, 单位: KB
  5090. int nChannel; // 通道号, NVR回放专用(没有TaskID), 对浓缩服务器无效
  5091. int nCluster; // 簇号, NVR回放专用(没有TaskID), 对浓缩服务器无效
  5092. }NET_SYNOPSISFILE_INFO, *LPNET_SYNOPSISFILE_INFO;
  5093. ///@brief 回放数据回调函数原形
  5094. // pBuffer: 数据缓冲区,内存由SDK内部申请释放
  5095. // 若设备传过来的码流是不加密的,dwDataType:0-不加密的录像文件原始数据
  5096. // 若设备传过来的码流是加密的,dwDataType: 0-解密后的私有码流(帧数据),2-加密的原始码流
  5097. typedef int (CALLBACK *fDataCallBack)(LLONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  5098. ///@brief 回放数据原始回调函数原形
  5099. // pBuffer: 数据缓冲区,内存由SDK内部申请释放
  5100. // 无论设备传的码流是不是加密的,都回调原始码流
  5101. typedef int (CALLBACK *fOriDataCallBack)(LLONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  5102. ///@brief 回放进度回调函数原形
  5103. // dwDownLoadSize == -1 表示用户回放或者下载进度完成
  5104. // dwDownLoadSize ==- 2 表示用户没有回放或者下载操作权限
  5105. typedef void (CALLBACK *fDownLoadPosCallBack)(LLONG lPlayHandle, DWORD dwTotalSize, DWORD dwDownLoadSize, LDWORD dwUser);
  5106. ///@brief 多通道回放预览参数
  5107. typedef struct __NET_MULTI_PLAYBACK_PARAM
  5108. {
  5109. DWORD dwSize;
  5110. int nChannels[DH_MAX_MULTIPLAYBACK_CHANNEL_NUM]; // 预览通道号
  5111. int nChannelNum; // 预览通道数
  5112. int nType; // 回放文件类型,0:普通录象;1:报警录象;2:移动检测;3:卡号录象;4:图片
  5113. NET_TIME stStartTime; // 回放开始时间
  5114. NET_TIME stEndTime; // 回放结束时间
  5115. int nFPS; // 帧率,1~25
  5116. int nBitRate; // 码流值,192~1024
  5117. char szResolution[DH_MAX_CAPTURE_SIZE_NUM]; // 分辨率,"D1"、"HD1"、"2CIF"、"CIF"、"QCIF"
  5118. int nWaitTime; // 超时等待时间
  5119. HWND hWnd; // 视频播放窗口句柄
  5120. fDataCallBack fDownLoadDataCallBack; // 视频数据回调
  5121. LDWORD dwDataUser; // 视频数据用户数据
  5122. fDownLoadPosCallBack cbDownLoadPos; // 回放进度回调
  5123. LDWORD dwPosUser; // 进度回调用户数据
  5124. }NET_MULTI_PLAYBACK_PARAM;
  5125. ///@brief 某月的各天是否存在录像的状态信息
  5126. typedef struct
  5127. {
  5128. BYTE flag[32]; //某月内的各天是否存在录像的状态掩码,0表示没有,1表示有。
  5129. BYTE Reserved[64]; //保留
  5130. }NET_RECORD_STATUS, *LPNET_RECORD_STATUS;
  5131. ///@brief 异步查询结果回调函数原形,
  5132. // nError = 0 表示查询成功;
  5133. // nError = 1 表示内存申请失败;
  5134. // nError = 2 表示超时, 即超时时间内未查完指定时间段的情况, pFileinfos,nFileNum返回已查到的录像列表;
  5135. // nError = 3 表示设备返回数据校验不通过;
  5136. // nError = 4 发送查询请求失败
  5137. // nError = 5 参数错误
  5138. // nError = 6 打开通道失败
  5139. // nError = 7 无权限
  5140. typedef void (CALLBACK *fQueryRecordFileCallBack)(LLONG lQueryHandle, LPNET_RECORDFILE_INFO pFileinfos, int nFileNum, int nError, void *pReserved, LDWORD dwUser);
  5141. ///@brief 异步查询结果回调函数原形(扩展), nError含义与非扩展回调fQueryRecordFileCallBack 中返回的一样
  5142. typedef void (CALLBACK *fQueryRecordFileCallBackEx)(LLONG lQueryHandle, LPNET_RECORDFILE_INFOEX pFileinfos, int nFileNum, int nError, void *pReserved, LDWORD dwUser);
  5143. ///@brief 是否合并录像
  5144. typedef enum tagNET_EM_COMBINATION_MODE
  5145. {
  5146. EM_COMBINATION_MODE_DEFAULT = 0, // 默认为合并
  5147. EM_COMBINATION_MODE_YES, // 合并
  5148. EM_COMBINATION_MODE_NO, // 不合并
  5149. }NET_EM_COMBINATION_MODE;
  5150. ///@brief CLIENT_StartQueryRecordFile接口输入参数
  5151. typedef struct tagNET_IN_START_QUERY_RECORDFILE
  5152. {
  5153. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  5154. int nChannelId; // 待查询通道号, 从0开始
  5155. int nRecordFileType; // 待查询录像类型, 详见 EM_QUERY_RECORD_TYPE 类型
  5156. int nStreamType; // 查询码流类型,0-主辅码流,1-主码流,2-辅码流
  5157. NET_TIME stStartTime; // 查询起始时间
  5158. NET_TIME stEndTime; // 查询结束时间
  5159. char* pchCardid; // 卡号信息,仅当按照卡号查询时有效,由用户分配内存
  5160. // 如果nRecordFileType = 4或5或10,内存大小不超过256字节
  5161. // 如果nRecordFileType = 8,内存大小不超过20字节
  5162. int nWaitTime; // 超时等待时间,单位ms
  5163. fQueryRecordFileCallBack cbFunc; // 查询结果回调函数
  5164. LDWORD dwUser; // 用户信息
  5165. BOOL bByTime; // 是否根据时间查询
  5166. NET_EM_COMBINATION_MODE emCombination; // 查询结果是否合并录像文件
  5167. fQueryRecordFileCallBackEx cbFuncEx; // 查询结果回调函数(扩展), 与非扩展回调cbFunc 共用dwUser
  5168. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stStartTime, stEndTime), 为FALSE表示仅下发stStartTime, stEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  5169. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stStartTime, stEndTime)互斥
  5170. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stStartTime, stEndTime)互斥
  5171. }NET_IN_START_QUERY_RECORDFILE;
  5172. ///@brief CLIENT_StartQueryRecordFile接口输出参数
  5173. typedef struct tagNET_OUT_START_QUERY_RECORDFILE
  5174. {
  5175. DWORD dwSize; // 结构体大小
  5176. LLONG lQueryHandle; // 返回句柄
  5177. }NET_OUT_START_QUERY_RECORDFILE;
  5178. ///@brief 对象目标类型
  5179. typedef enum tagEM_OBJECT_TYPE
  5180. {
  5181. EM_OBJECT_TYPE_UNKNOWN = -1, // 未知
  5182. EM_OBJECT_TYPE_FACE, // 目标
  5183. EM_OBJECT_TYPE_HUMAN, // 人体
  5184. EM_OBJECT_TYPE_VECHILE, // 机动车
  5185. EM_OBJECT_TYPE_NOMOTOR, // 非机动车
  5186. EM_OBJECT_TYPE_ALL, // 所有类型
  5187. } EM_OBJECT_TYPE;
  5188. ///@brief 事件信息
  5189. typedef struct tagEVENT_INFO
  5190. {
  5191. int nEvent; // 事件类型,参见智能事件类型,如 EVENT_IVS_ALL
  5192. EM_OBJECT_TYPE arrayObejctType[16]; // 支持的物体类型,当前支持 EM_OBJECT_TYPE_HUMAN, EM_OBJECT_TYPE_VECHILE, EM_OBJECT_TYPE_NOMOTOR, EM_OBJECT_TYPE_ALL
  5193. int nObjectCount; // szObejctType 数量
  5194. BYTE byReserved[512]; // 预留字段
  5195. }EVENT_INFO;
  5196. ///@brief 从设备类型
  5197. typedef enum tagEM_SUBCLASSID_TYPE
  5198. {
  5199. EM_SUBCLASSID_UNKNOWN, // 未知
  5200. EM_SUBCLASSID_ASSISTDEVICE, // 辅助设备 (ITSE使用)
  5201. }EM_SUBCLASSID_TYPE;
  5202. ///@brief 加密算法类型
  5203. typedef enum tagEM_ALGORITHM_TYPE
  5204. {
  5205. EM_ALGORITHM_TYPE_UNKNOWN, // 未知加密算法
  5206. EM_ALGORITHM_TYPE_AES256_OFB, // AES256-OFB加密算法
  5207. EM_ALGORITHM_TYPE_SM4_OFB, // SM加密算法
  5208. }EM_ALGORITHM_TYPE;
  5209. ///@brief 是否加密
  5210. typedef enum tagEM_IS_ENCRYPT
  5211. {
  5212. EM_IS_ENCRYPT_UNKNOWN, // 未知
  5213. EM_IS_ENCRYPT_YES, // 已加密
  5214. EM_IS_ENCRYPT_NO, // 未加密
  5215. }EM_IS_ENCRYPT;
  5216. ///@brief 是否当前vk
  5217. typedef enum tagEM_IS_CURRENT_VK
  5218. {
  5219. EM_IS_CURRENT_VK_UNKNOWN, // 未知
  5220. EM_IS_CURRENT_VK_CURRENT, // 当前
  5221. EM_IS_CURRENT_VK_PRE, // 之前
  5222. }EM_IS_CURRENT_VK;
  5223. ///@brief VK二值对信息
  5224. typedef struct tagNET_VKINFO
  5225. {
  5226. char szVKID[128]; // VKID
  5227. char szVK[128]; // VK
  5228. EM_ALGORITHM_TYPE emAlgorithmType; // 加密算法类型
  5229. int nRetVKIDLen; // 返回的VKID字段的实际大小
  5230. int nRetVKLen; // 返回的VK实际大小
  5231. EM_IS_ENCRYPT emIsEncrypt; // 是否加密
  5232. EM_IS_CURRENT_VK emIsCurrent; // 是否是当前VK 0 :未知,1:当前, 2:之前
  5233. BYTE byReserved[492]; // 保留字节
  5234. }NET_VKINFO;
  5235. ///@brief VK信息回调(pBuffer内存由SDK内部申请释放),dwError值可以dhnetsdk.h中找到相应的解释,比如NET_NOERROR,NET_ERROR_VK_INFO_DECRYPT_FAILED等
  5236. typedef void (CALLBACK *fVKInfoCallBack)(LLONG lRealHandle, NET_VKINFO* pBuffer, DWORD dwError, LDWORD dwUser, void* pReserved);
  5237. ///@brief 录像回放入参信息
  5238. typedef struct tagNET_IN_PLAY_BACK_BY_TIME_INFO
  5239. {
  5240. NET_TIME stStartTime; // 开始时间
  5241. NET_TIME stStopTime; // 结束时间
  5242. HWND hWnd; // 播放窗格, 可为NULL
  5243. fDownLoadPosCallBack cbDownLoadPos; // 进度回调
  5244. LDWORD dwPosUser; // 进度回调用户信息
  5245. fDataCallBack fDownLoadDataCallBack; // 数据回调
  5246. LDWORD dwDataUser; // 数据回调用户信息
  5247. int nPlayDirection; // 播放方向, 0:正放; 1:倒放;
  5248. int nWaittime; // 接口超时时间, 目前倒放使用
  5249. EVENT_INFO* pstuEventInfo; // 事件信息,用户分配内存,不用时赋值为NULL
  5250. UINT nEventInfoCount; // pstuEventInfo 个数,最大为 16
  5251. EM_SUBCLASSID_TYPE emSubClass; // 从设备类型
  5252. fVKInfoCallBack pVKInfoCallBack; // VK信息回调
  5253. LDWORD dwVKInfoUser; // VK信息回调用户信息
  5254. fOriDataCallBack pOriDataCallBack; //原始数据回调
  5255. LDWORD dwOriDataUser; //原始数据回调用户信息
  5256. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stStartTime, stStopTime), 为FALSE表示仅下发stStartTime, stStopTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  5257. NET_TIME stuStartTimeRealUTC; // 录像的起始UTC时间(标准UTC时间)
  5258. NET_TIME stuEndTimeRealUTC; // 录像的结束UTC时间(标准UTC时间)
  5259. BYTE bReserved[940-2*POINTERSIZE]; // 预留字段
  5260. }NET_IN_PLAY_BACK_BY_TIME_INFO;
  5261. ///@brief 录像回放出参信息
  5262. typedef struct tagNET_OUT_PLAY_BACK_BY_TIME_INFO
  5263. {
  5264. BYTE bReserved[1024]; // 预留字节
  5265. }NET_OUT_PLAY_BACK_BY_TIME_INFO;
  5266. ///@brief 录像回放速度
  5267. typedef enum tagEM_PLAY_BACK_SPEED
  5268. {
  5269. EM_PLAY_BACK_SPEED_SLOW_32 = -5, // 1/32倍慢放
  5270. EM_PLAY_BACK_SPEED_SLOW_16 = -4, // 1/16倍慢放
  5271. EM_PLAY_BACK_SPEED_SLOW_8, // 1/8倍慢放
  5272. EM_PLAY_BACK_SPEED_SLOW_4, // 1/4倍慢放
  5273. EM_PLAY_BACK_SPEED_SLOW_2, // 1/2倍慢放
  5274. EM_PLAY_BACK_SPEED_NORMAL = 0, // 正常速度
  5275. EM_PLAY_BACK_SPEED_FAST_2, // 2倍快放
  5276. EM_PLAY_BACK_SPEED_FAST_4, // 4倍快放
  5277. EM_PLAY_BACK_SPEED_FAST_8, // 8倍快放
  5278. EM_PLAY_BACK_SPEED_FAST_16, // 16倍快放
  5279. EM_PLAY_BACK_SPEED_FAST_32, // 32倍快放
  5280. }EM_PLAY_BACK_SPEED;
  5281. ///@brief 动检帧检索区域
  5282. typedef struct
  5283. {
  5284. unsigned short left; // 0~8191
  5285. unsigned short right; // 0~8191
  5286. unsigned short top; // 0~8191
  5287. unsigned short bottom; // 0~8191
  5288. } MotionDetectRect;
  5289. ///@brief 智能回放信息
  5290. typedef struct
  5291. {
  5292. MotionDetectRect motion_rect; // 动检帧检索区域
  5293. NET_TIME stime; // 回放的开始时间
  5294. NET_TIME etime; // 回放的结束时间
  5295. BYTE bStart; // 开始停止命令: 1,开始,2:停止
  5296. BYTE reserved[116];
  5297. } IntelligentSearchPlay, *LPIntelligentSearchPlay;
  5298. ///@brief 最早录像时间
  5299. typedef struct
  5300. {
  5301. int nChnCount; // 通道数目
  5302. NET_TIME stuFurthestTime[16]; // 最早录像时间,有效值为前面0 到 (nChnCount-1)个.如果某通道没有录象的话,最早录象时间全为0
  5303. DWORD dwFurthestTimeAllSize; // 当通道个数大于16时,使用。表示下面pStuFurthestTimeAll这块内存大小。
  5304. NET_TIME* pStuFurthestTimeAll; // 当通道个数大于16时,使用。此部分内存需要用户申请,申请大小为(通道个数*sizeof(NET_TIME))。
  5305. BYTE bReserved[376]; // 保留字段
  5306. } NET_FURTHEST_RECORD_TIME;
  5307. ///@brief CLIENT_FindFrameInfo 接口输入参数
  5308. typedef struct __NET_IN_FIND_FRAMEINFO_PRAM
  5309. {
  5310. DWORD dwSize; // 结构体大小
  5311. BOOL abFileName; // 文件名是否作为有效的查询条件,若文件名有效,则不用填充文件信息(stRecordInfo)
  5312. char szFileName[MAX_PATH]; // 文件名
  5313. NET_RECORDFILE_INFO stuRecordInfo; // 文件信息
  5314. DWORD dwFramTypeMask; // 帧类型掩码,FRAME_TYPE_MOTION 动检帧; FRAME_TYPE_HUMAN动检帧(人); FRAME_TYPE_VEHICLE动检帧(车)
  5315. BOOL bSendByUTCTime; // 是否使用UTC时间
  5316. NET_TIME stuStartTimeRealUTC; // UTC开始时间
  5317. NET_TIME stuEndTimeRealUTC; // UTC结束时间
  5318. }NET_IN_FIND_FRAMEINFO_PRAM;
  5319. ///@brief CLIENT_FindFrameInfo 接口输出参数
  5320. typedef struct __NET_OUT_FIND_FRAMEINFO_PRAM
  5321. {
  5322. DWORD dwSize; // 结构体大小
  5323. LLONG lFindHandle; // 文件查找句柄
  5324. }NET_OUT_FIND_FRAMEINFO_PRAM;
  5325. ///@brief 动检帧信息
  5326. typedef struct __NET_MOTION_FRAME_INFO
  5327. {
  5328. DWORD dwSize; // 结构体大小
  5329. NET_TIME stuTime; // 当前帧,时间戳
  5330. int nMotionRow; // 动态检测区域的行数
  5331. int nMotionCol; // 动态检测区域的列数
  5332. BYTE byRegion[DH_MOTION_ROW][DH_MOTION_COL];// 检测区域,最多32*32块区域
  5333. int nHumanMotionRow; // 人动态检测区域的行数
  5334. int nHumanMotionCol; // 人动态检测区域的列数
  5335. BYTE byHumanRegion[DH_MOTION_ROW][DH_MOTION_COL]; // 人检测区域, 最多32*32块区域
  5336. int nVehicleMotionRow; // 车动态检测区域的行数
  5337. int nVehicleMotionCol; // 车动态检测区域的列数
  5338. BYTE byVehicleRegion[DH_MOTION_ROW][DH_MOTION_COL]; // 车检测区域, 最多32*32块区域
  5339. }NET_MOTION_FRAME_INFO;
  5340. ///@brief 文件帧信息
  5341. typedef struct __NET_FILE_FRAME_INFO
  5342. {
  5343. DWORD dwSize; // 结构体大小
  5344. int nChannelId; // 通道号
  5345. NET_TIME stuStartTime; // 开始时间
  5346. NET_TIME stuEndTime; // 结束时间
  5347. WORD wRecType; // 0-主码流录像 1-辅码1流录像 2-辅码流2 3-辅码流3录像
  5348. WORD wFameType; // 帧类型,详见EM_FRAME_TYPE
  5349. void* pFramInfo; // 对应类型帧信息,空间由用户申请,建议申请内存大小为sizeof(NET_MOTION_FRAME_INFO)
  5350. NET_TIME stuStartTimeRealUTC; // UTC开始时间
  5351. NET_TIME stuEndTimeRealUTC; // UTC结束时间
  5352. }NET_FILE_FRAME_INFO;
  5353. ///@brief CLIENT_FindNextFrameInfo 接口输入参数
  5354. typedef struct __NET_IN_FINDNEXT_FRAMEINFO_PRAM
  5355. {
  5356. DWORD dwSize; // 结构体大小
  5357. int nFramCount; // 待查询帧条数,0,表示查询符合查询条件的所有帧信息
  5358. }NET_IN_FINDNEXT_FRAMEINFO_PRAM;
  5359. ///@brief CLIENT_FindNextFrameInfo 接口输出参数
  5360. typedef struct __NET_OUT_FINDNEXT_FRAMEINFO_PRAM
  5361. {
  5362. DWORD dwSize; // 结构体大小
  5363. NET_FILE_FRAME_INFO* pFramInfos; // 帧信息,由用户申请空间,空间大小为 sizeof(NET_FILE_FRAME_INFO) * nMaxFramCount
  5364. int nMaxFramCount; // 用户申请的帧信息个数
  5365. int nRetFramCount; // 实际返回的帧信息个数
  5366. }NET_OUT_FINDNEXT_FRAMEINFO_PRAM;
  5367. #define MAX_LABEL_ARRAY 1024
  5368. ///@brief 标签数组
  5369. typedef struct tagNET_FILE_STREAM_TAG_INFO
  5370. {
  5371. DWORD dwSize; // 结构体大小
  5372. NET_TIME stuTime; // 标签时间
  5373. char szContext[DH_COMMON_STRING_64]; // 标签内容,中文必须使用utf8编码
  5374. char szUserName[DH_COMMON_STRING_32]; // 用户名,中文必须使用utf8编码,EVS增加
  5375. char szChannelName[DH_COMMON_STRING_64]; // 通道名称,中文必须使用utf8编码,EVS增加
  5376. int nDuration; // 打标的录像持续时间,单位秒
  5377. } NET_FILE_STREAM_TAG_INFO;
  5378. ///@brief 文件类型
  5379. typedef enum tagNET_FILE_STREAM_TYPE
  5380. {
  5381. NET_FILE_STREAM_TYPE_UNKNOWN = 0, // 未知
  5382. NET_FILE_STREAM_TYPE_NORMAL, // 普通
  5383. NET_FILE_STREAM_TYPE_ALARM, // 报警
  5384. NET_FILE_STREAM_TYPE_DETECTION, // 动检
  5385. } NET_FILE_STREAM_TYPE;
  5386. ///@brief 查询到的标签信息
  5387. typedef struct tagNET_FILE_STREAM_TAG_INFO_EX
  5388. {
  5389. DWORD dwSize;
  5390. NET_TIME stuTime; // 标签所对于视频的时间,精确到秒
  5391. int nMillisecond; // 毫秒
  5392. int nSequence; // 视频序列号
  5393. char szContext[DH_COMMON_STRING_64]; // 标签内容,中文必须使用utf8编码
  5394. NET_TIME stuStartTime; // 录像文件开始时间
  5395. NET_TIME stuEndTime; // 录像文件结束时间
  5396. NET_FILE_STREAM_TYPE emType; // 文件类型
  5397. char szUserName[DH_COMMON_STRING_32]; // 用户名,中文必须使用utf8编码,EVS增加
  5398. char szChannelName[DH_COMMON_STRING_64]; // 通道名称,中文必须使用utf8编码,EVS增加
  5399. int nDuration; // 打标的录像持续时间,单位秒
  5400. } NET_FILE_STREAM_TAG_INFO_EX;
  5401. ///@brief CLIENT_FileStreamClearTags / CLIENT_FileStreamSetTags 接口输入参数
  5402. typedef struct tagNET_IN_FILE_STREAM_TAGS_INFO
  5403. {
  5404. DWORD dwSize; // 结构体大小
  5405. int nArrayCount; // 标签数组个数
  5406. NET_FILE_STREAM_TAG_INFO* pstuTagInfo; // 标签数组,各项内容关系为"且", 用户分配内存,大小为sizeof(NET_FILE_STREAM_TAG_INFO)*nArrayCount
  5407. } NET_IN_FILE_STREAM_TAGS_INFO;
  5408. ///@brief CLIENT_FileStreamClearTags / CLIENT_FileStreamSetTags 接口输出参数
  5409. typedef struct tagNET_OUT_FILE_STREAM_TAGS_INFO
  5410. {
  5411. DWORD dwSize; // 结构体大小
  5412. } NET_OUT_FILE_STREAM_TAGS_INFO;
  5413. ///@brief CLIENT_FileStreamGetTags 接口输入参数
  5414. typedef struct tagNET_IN_FILE_STREAM_GET_TAGS_INFO
  5415. {
  5416. DWORD dwSize; // 结构体大小
  5417. } NET_IN_FILE_STREAM_GET_TAGS_INFO;
  5418. ///@brief CLIENT_FileStreamGetTags / CLIENT_FileStreamfilterTags 接口输出参数
  5419. typedef struct tagNET_OUT_FILE_STREAM_GET_TAGS_INFO
  5420. {
  5421. DWORD dwSize; // 结构体大小
  5422. int nMaxNumber; // 标签数组最大个数
  5423. int nRetTagsNumber; // 标签数组实际返回的个数
  5424. NET_FILE_STREAM_TAG_INFO_EX* pstuTagInfo; // 标签数组
  5425. } NET_OUT_FILE_STREAM_GET_TAGS_INFO;
  5426. ///@brief CLIENT_FileStreamFilterTags 接口输入参数
  5427. typedef struct tagNET_IN_FILE_STREAM_FILTER_TAGS_INFO
  5428. {
  5429. DWORD dwSize; // 结构体大小
  5430. char szContext[DH_COMMON_STRING_64]; // 标签内容,中文必须使用utf8编码
  5431. char szUserName[DH_COMMON_STRING_32]; // 用户名,中文必须使用utf8编码,EVS增加
  5432. char szChannelName[DH_COMMON_STRING_64]; // 通道名称,中文必须使用utf8编码,EVS增加
  5433. } NET_IN_FILE_STREAM_FILTER_TAGS_INFO;
  5434. ///@brief 子标签信息
  5435. typedef struct tagNET_TAGMANAGER_SUB_TAG_INFO
  5436. {
  5437. NET_TIME stuTime; // 子标签时间
  5438. char szSubTagName[DH_COMMON_STRING_64]; // 子标签名字
  5439. BYTE byReserved[512]; // 保留字段
  5440. }NET_TAGMANAGER_SUB_TAG_INFO;
  5441. ///@brief 标签信息。该标签有开始和结束时间,与 NET_FILE_STREAM_TAG_INFO_EX 不同
  5442. typedef struct tagNET_TAGMANAGER_TAG_INFO
  5443. {
  5444. char szContext[DH_COMMON_STRING_64]; // 标签内容
  5445. NET_TIME stuStartTime; // 录像标签开始时间
  5446. NET_TIME stuEndTime; // 录像标签结束时间
  5447. int nSubTagVaildNum; // 子标签有效个数
  5448. NET_TAGMANAGER_SUB_TAG_INFO stuSubTag[MAX_SUB_TAG_NUM]; // 子标签数组
  5449. BYTE byReserved[1024]; // 保留字段
  5450. }NET_TAGMANAGER_TAG_INFO;
  5451. ///@brief 标签查询的条件信息
  5452. typedef struct tagNET_FINDTAGS_CONDITION_INFO
  5453. {
  5454. char szContext[DH_COMMON_STRING_64]; // 标签内容
  5455. BYTE byReserved[1024]; // 保留字段
  5456. }NET_FINDTAGS_CONDITION_INFO;
  5457. ///@brief 查询标签信息, CLIENT_FileStreamFindTags 输入参数
  5458. typedef struct tagNET_IN_FINDTAGS_INFO
  5459. {
  5460. DWORD dwSize;
  5461. BOOL bConditionEnable; // 为True时, stuCondition有效, lToken无效; 为False时, stuCondition无效, lToken有效
  5462. NET_FINDTAGS_CONDITION_INFO stuCondition; // 查询条件,第一次查询时使用
  5463. UINT lToken; // 查询句柄,第二次查询时开始使用,由第一次的 NET_OUT_FINDTAGS_INFO 获取
  5464. int nOffset; // 查询偏移量
  5465. int nCount; // 单次查询数量,不超过60
  5466. }NET_IN_FINDTAGS_INFO;
  5467. ///@brief // 查询标签信息, CLIENT_FileStreamFindTags 输出参数
  5468. typedef struct tagNET_OUT_FINDTAGS_INFO
  5469. {
  5470. DWORD dwSize;
  5471. UINT lToken; // 查询句柄,第一次查询返回
  5472. int nTotal; // 设备返回的记录总数
  5473. int nMaxTagsNumber; // 标签数组(pstuTagInfo)最大个数, 不小于 NET_IN_FINDTAGS_INFO 的nCount字段
  5474. int nRetTagsNumber; // 标签数组(pstuTagInfo)实际返回的个数
  5475. NET_TAGMANAGER_TAG_INFO* pstuTagInfo; // 标签数组指针, 用户分配内存, 大小为sizeof(NET_TAGMANAGER_TAG_INFO)*nMaxTagsNumber
  5476. }NET_OUT_FINDTAGS_INFO;
  5477. ///@brief 标签状态
  5478. typedef struct tagNET_TAGMANAGER_TAGSTATE_INFO
  5479. {
  5480. int nChannel; // 通道号
  5481. char szContext[DH_COMMON_STRING_64]; // 标签内容,废弃,请使用szContextEx
  5482. NET_TIME stuStartTime; // 标签开始时间
  5483. int nSubTagVaildNum; // 子标签(stuSubTag)有效个数
  5484. NET_TAGMANAGER_SUB_TAG_INFO stuSubTag[MAX_SUB_TAG_NUM]; // 子标签数组
  5485. char szContextEx[DH_COMMON_STRING_256]; // 标签内容扩展
  5486. BYTE byReserved[768]; // 保留字段
  5487. }NET_TAGMANAGER_TAGSTATE_INFO;
  5488. ///@brief 获取设备打标签状态, CLIENT_TagManagerGetTagState 输入参数
  5489. typedef struct tagNET_IN_TAGMANAGER_GETTAGSTATE_INFO
  5490. {
  5491. DWORD dwSize;
  5492. }NET_IN_TAGMANAGER_GETTAGSTATE_INFO;
  5493. ///@brief 获取设备打标签状态, CLIENT_TagManagerGetTagState 输出参数
  5494. typedef struct tagNET_OUT_TAGMANAGER_GETTAGSTATE_INFO
  5495. {
  5496. DWORD dwSize; // 结构体大小
  5497. int nState; // 打标签状态, 0未打标签, 1正在打标签
  5498. int nMaxTagStaeNumber; // 标签数组(pstuTagStateInfo)的最大个数
  5499. int nRetTagStaeNumber; // 标签数组(pstuTagStateInfo)的实际返回的个数
  5500. NET_TAGMANAGER_TAGSTATE_INFO* pstuTagStateInfo; // 标签数组的指针, 用户分配内存, 大小为sizeof(NET_TAGMANAGER_TAGSTATE_INFO)*nMaxTagStaeNumber
  5501. }NET_OUT_TAGMANAGER_GETTAGSTATE_INFO;
  5502. ///@brief 开始打标签, CLIENT_TagManagerStartTag 输入参数
  5503. typedef struct tagNET_IN_TAGMANAGER_STARTTAG_INFO
  5504. {
  5505. DWORD dwSize; // 结构体大小
  5506. int nChannel; // 通道号
  5507. char szContext[DH_COMMON_STRING_64]; // 标签内容
  5508. char szContextEx[DH_COMMON_STRING_256]; // 标签内容扩展
  5509. bool bIsUsingContextEx; // 扩展标签是否有用
  5510. }NET_IN_TAGMANAGER_STARTTAG_INFO;
  5511. ///@brief 开始打标签, CLIENT_TagManagerStartTag 输出参数
  5512. typedef struct tagNET_OUT_TAGMANAGER_STARTTAG_INFO
  5513. {
  5514. DWORD dwSize;
  5515. }NET_OUT_TAGMANAGER_STARTTAG_INFO;
  5516. ///@brief 打子标签, CLIENT_TagManagerSetSubTag 输入参数
  5517. typedef struct tagNET_IN_TAGMANAGER_SETSUBTAG_INFO
  5518. {
  5519. DWORD dwSize;
  5520. int nChannel; // 通道号
  5521. char szSubTagName[DH_COMMON_STRING_64]; // 子标签名字
  5522. }NET_IN_TAGMANAGER_SETSUBTAG_INFO;
  5523. ///@brief 打子标签, CLIENT_TagManagerSetSubTag 输出参数
  5524. typedef struct tagNET_OUT_TAGMANAGER_SETSUBTAG_INFO
  5525. {
  5526. DWORD dwSize;
  5527. }NET_OUT_TAGMANAGER_SETSUBTAG_INFO;
  5528. ///@brief 停止打标签, CLIENT_TagManagerStopTag 输入参数
  5529. typedef struct tagNET_IN_TAGMANAGER_STOPTAG_INFO
  5530. {
  5531. DWORD dwSize;
  5532. int nChannel; // 通道号
  5533. }NET_IN_TAGMANAGER_STOPTAG_INFO;
  5534. ///@brief 停止打标签, CLIENT_TagManagerStopTag 输出参数
  5535. typedef struct tagNET_OUT_TAGMANAGER_STOPTAG_INFO
  5536. {
  5537. DWORD dwSize;
  5538. }NET_OUT_TAGMANAGER_STOPTAG_INFO;
  5539. ///@brief 获取标签查询能力, CLIENT_TagManagerGetCaps 输入参数
  5540. typedef struct tagNET_IN_TAGMANAGER_GETCAPS_INFO
  5541. {
  5542. DWORD dwSize; // 结构体大小
  5543. }NET_IN_TAGMANAGER_GETCAPS_INFO;
  5544. ///@brief 获取标签查询能力, CLIENT_TagManagerGetCaps 输出参数
  5545. typedef struct tagNET_OUT_TAGMANAGER_GETCAPS_INFO
  5546. {
  5547. DWORD dwSize; // 结构体大小
  5548. UINT nMaxCount; // 每次最大查询条数
  5549. }NET_OUT_TAGMANAGER_GETCAPS_INFO;
  5550. ///@brief 开始查询标签信息, CLIENT_TagManagerStartFind 输入参数
  5551. typedef struct tagNET_IN_TAGMANAGER_STARTFIND_INFO
  5552. {
  5553. DWORD dwSize; // 结构体大小
  5554. int nChannel; // 通道
  5555. char szContext[DH_COMMON_STRING_256]; // 标签内容
  5556. NET_TIME stuStartTime; // 开始时间
  5557. NET_TIME stuEndTime; // 结束时间
  5558. }NET_IN_TAGMANAGER_STARTFIND_INFO;
  5559. ///@brief 开始查询标签信息, CLIENT_TagManagerStartFind 输出参数
  5560. typedef struct tagNET_OUT_TAGMANAGER_STARTFIND_INFO
  5561. {
  5562. DWORD dwSize; // 结构体大小
  5563. int nTotalCount; // 查询返回的条数
  5564. }NET_OUT_TAGMANAGER_STARTFIND_INFO;
  5565. ///@brief 获取标签查询结果信息, CLIENT_TagManagerDoFind 输入参数
  5566. typedef struct tagNET_IN_TAGMANAGER_DOFIND_INFO
  5567. {
  5568. DWORD dwSize; // 结构体大小
  5569. int nBeginNumber; // 起始查询编号
  5570. int nCount; // 查询数量, 最大请参考CLIENT_TagManagerGetCaps返回的设备查询能力
  5571. }NET_IN_TAGMANAGER_DOFIND_INFO;
  5572. ///@brief 子标签信息
  5573. typedef struct tagNET_FINDSUBTAG_INFO
  5574. {
  5575. NET_TIME stuStartTime; // 子标签开始时间
  5576. char szSubTagName[DH_COMMON_STRING_64]; // 子标签内容
  5577. BYTE byReserved[128]; // 保留字节
  5578. }NET_FINDSUBTAG_INFO;
  5579. ///@brief 录像标签信息
  5580. typedef struct tagNET_FINDTAG_INFO
  5581. {
  5582. char szContext[DH_COMMON_STRING_256]; // 标签内容
  5583. NET_TIME stuStartTime; // 开始时间
  5584. NET_TIME stuEndTime; // 结束时间
  5585. int nSubtagInfoCount; // 子标签信息个数
  5586. NET_FINDSUBTAG_INFO stuSubTagInfo[20]; // 子标签信息
  5587. BYTE byReserved[1020]; // 保留字节
  5588. }NET_FINDTAG_INFO;
  5589. ///@brief 获取标签查询结果信息, CLIENT_TagManagerDoFind 输出参数
  5590. typedef struct tagNET_OUT_TAGMANAGER_DOFIND_INFO
  5591. {
  5592. DWORD dwSize; // 结构体大小
  5593. UINT nMaxTagInfoCount; // 本次查询最多可以接受到标签数量,用户预先分配好的pstuTagInfo内存个数
  5594. UINT nRetTagInfoCount; // 设备返回的实际标签数量,返回0或者小于CLIENT_TagManagerDoFind查询的Count都代表查询结束
  5595. NET_FINDTAG_INFO* pstuTagInfo; // 查找的标签信息,需要用户预先分配好内存
  5596. }NET_OUT_TAGMANAGER_DOFIND_INFO;
  5597. ///////////////////////////报警相关定义///////////////////////////////
  5598. ///@brief 普通报警信息
  5599. typedef struct
  5600. {
  5601. int channelcount;
  5602. int alarminputcount;
  5603. unsigned char alarm[16]; // 外部报警
  5604. unsigned char motiondection[16]; // 动态检测
  5605. unsigned char videolost[16]; // 视频丢失
  5606. } NET_CLIENT_STATE;
  5607. ///@brief 普通报警信息
  5608. typedef struct
  5609. {
  5610. int channelcount;
  5611. int alarminputcount;
  5612. unsigned char alarm[32]; // 外部报警
  5613. unsigned char motiondection[32]; // 动态检测
  5614. unsigned char videolost[32]; // 视频丢失
  5615. BYTE bReserved[32];
  5616. } NET_CLIENT_STATE_EX;
  5617. ///@brief 外部报警状态信息对应结构体
  5618. typedef struct
  5619. {
  5620. DWORD dwSize;
  5621. int alarminputcount;
  5622. DWORD dwAlarmState[DH_MAX_CHANMASK]; //每一个DWORD按位表示32通道的报警状态, 0-表示无报警, 1-表示有报警
  5623. }NET_CLIENT_ALARM_STATE;
  5624. ///@brief 视频丢失报警状态信息对应结构体
  5625. typedef struct
  5626. {
  5627. DWORD dwSize;
  5628. int channelcount;
  5629. DWORD dwAlarmState[DH_MAX_CHANMASK]; //每一个DWORD按位表示32通道的报警状态, 0-表示无报警, 1-表示有报警
  5630. }NET_CLIENT_VIDEOLOST_STATE;
  5631. ///@brief 动态检测报警状态信息对应结构体
  5632. typedef struct
  5633. {
  5634. DWORD dwSize;
  5635. int channelcount;
  5636. DWORD dwAlarmState[DH_MAX_CHANMASK]; //每一个DWORD按位表示32通道的报警状态, 0-表示无报警, 1-表示有报警
  5637. }NET_CLIENT_MOTIONDETECT_STATE;
  5638. ///@brief 视频遮挡报警状态信息对应结构体
  5639. typedef struct
  5640. {
  5641. DWORD dwSize;
  5642. int channelcount;
  5643. DWORD dwAlarmState[DH_MAX_CHANMASK]; //每一个DWORD按位表示32通道的报警状态, 0-表示无报警, 1-表示有报警
  5644. }NET_CLIENT_VIDEOBLIND_STATE;
  5645. ///@brief 查询 动态检测报警状态详细信息对应结构体
  5646. typedef struct
  5647. {
  5648. DWORD dwSize;
  5649. int nChannelID; // 通道号
  5650. BOOL bAlarm; // 是否报警 TRUE/FALSE
  5651. int nLevel; // 报警级别,单位千分之,以动检发生小格数除以总小格数计算
  5652. }NET_CLIENT_DETAILEDMOTION_STATE;
  5653. ///@brief 报警IO控制
  5654. typedef struct
  5655. {
  5656. unsigned short index; // 端口序号
  5657. unsigned short state; // 端口状态,0 - 关闭,1 - 打开
  5658. } ALARM_CONTROL;
  5659. ///@brief 触发方式
  5660. typedef struct
  5661. {
  5662. unsigned short index; // 端口序号
  5663. unsigned short mode; // 触发方式(0关闭1手动2自动);不设置的通道,sdk默认将保持原来的设置。
  5664. BYTE bReserved[28];
  5665. } TRIGGER_MODE_CONTROL;
  5666. ///@brief 报警解码器控制
  5667. typedef struct
  5668. {
  5669. int decoderNo; // 报警解码器号,从0开始
  5670. unsigned short alarmChn; // 报警输出口,从0开始
  5671. unsigned short alarmState; // 报警输出状态;1:打开,0:关闭
  5672. } DECODER_ALARM_CONTROL;
  5673. ///@brief 呼叫无应答报警事件
  5674. typedef struct __ALARM_NO_RESPONSE_INFO
  5675. {
  5676. DWORD dwSize;
  5677. char szCallID[DH_MAX_CALLID]; //Call ID
  5678. }ALARM_NO_RESPONSE_INFO;
  5679. ///@brief 报警上传功能的报警信息
  5680. typedef struct
  5681. {
  5682. DWORD dwAlarmType; // 报警类型,dwAlarmType = DH_UPLOAD_EVENT时,dwAlarmMask和bAlarmDecoderIndex是无效的
  5683. DWORD dwAlarmMask; // 报警信息掩码,按位表示各报警通道状态
  5684. char szGlobalIP[DH_MAX_IPADDR_LEN]; // 客户端IP地址,建议使用szGlobalIPEx
  5685. char szDomainName[DH_MAX_DOMAIN_NAME_LEN]; // 客户端域名
  5686. int nPort; // 报警上传时客户端连接的端口
  5687. char szAlarmOccurTime[DH_ALARM_OCCUR_TIME_LEN]; // 报警发生的时间
  5688. BYTE bAlarmDecoderIndex; // 表示第几个报警解码器,dwAlarmType = DH_UPLOAD_DECODER_ALARM 才有效.
  5689. BYTE bChannelIndex; // 通道掩码起始值(0,1,2...)大于0有效,和 dwHighAlarmMask 共同表示高于32通道的报警状态
  5690. // 如 bChannelIndex=1,表示dwHighAlarmMask为通道33-64的报警状态
  5691. BYTE bReserved[2];
  5692. DWORD dwHighAlarmMask; // 高于32通道的报警信息掩码,按位表示各报警通道状态
  5693. BYTE bReservedSpace[8];
  5694. char szGlobalIPEx[MAX_LOCAL_IP_LEN]; // 客户端IP地址,支持IPv6
  5695. } NEW_ALARM_UPLOAD;
  5696. ///@brief 报警中心: pir 设备检查报警
  5697. typedef struct tagALARM_UPLOAD_PIRDETECTION_INFO
  5698. {
  5699. int nIndex; // 序列号
  5700. NET_TIME_EX UTC; // 事件发生的时间
  5701. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  5702. int nAction; // 事件动作, 0表示脉冲事件,1表示事件开始,2表示事件结束;
  5703. BYTE byReserved[1024]; // 保留
  5704. } ALARM_UPLOAD_PIRDETECTION_INFO;
  5705. ///@brief 报警中心: pir 设备防拆报警
  5706. typedef struct tagALARM_UPLOAD_PIRTAMPER_INFO
  5707. {
  5708. int nIndex; // 序列号
  5709. NET_TIME_EX UTC; // 事件发生的时间
  5710. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  5711. int nAction; // 事件动作, 0表示脉冲事件,1表示事件开始,2表示事件结束;
  5712. BYTE byReserved[1024]; // 保留
  5713. } ALARM_UPLOAD_PIRTAMPER_INFO;
  5714. ///@brief 报警中心: pir 设备光线遮挡报警
  5715. typedef struct tagALARM_UPLOAD_PIRCLOAK_INFO
  5716. {
  5717. int nIndex; // 序列号
  5718. NET_TIME_EX UTC; // 事件发生的时间
  5719. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  5720. int nAction; // 事件动作, 0表示脉冲事件,1表示事件开始,2表示事件结束;
  5721. BYTE byReserved[1024]; // 保留
  5722. } ALARM_UPLOAD_PIRCLOAK_INFO;
  5723. ///@brief 报警中心: pir 设备震动报警
  5724. typedef struct tagALARM_UPLOAD_PIRSHOCK_INFO
  5725. {
  5726. int nIndex; // 序列号
  5727. NET_TIME_EX UTC; // 事件发生的时间
  5728. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  5729. int nAction; // 事件动作, 0表示脉冲事件,1表示事件开始,2表示事件结束;
  5730. BYTE byReserved[1024]; // 保留
  5731. } ALARM_UPLOAD_PIRSHOCK_INFO;
  5732. ///@brief 报警中心: pir 设备传感器故障报警
  5733. typedef struct tagALARM_UPLOAD_PIRFAILURE_INFO
  5734. {
  5735. int nIndex; // 序列号
  5736. NET_TIME_EX UTC; // 事件发生的时间
  5737. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  5738. int nAction; // 事件动作, 0表示脉冲事件,1表示事件开始,2表示事件结束;
  5739. BYTE byReserved[1024]; // 保留
  5740. } ALARM_UPLOAD_PIRFAILURE_INFO;
  5741. ///@brief 报警中心: pir 设备电池电量低报警
  5742. typedef struct tagALARM_UPLOAD_PIRBATTERYLOW_INFO
  5743. {
  5744. int nIndex; // 序列号
  5745. NET_TIME_EX UTC; // 事件发生的时间
  5746. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  5747. int nAction; // 事件动作, 0表示脉冲事件,1表示事件开始,2表示事件结束;
  5748. BYTE byReserved[1024]; // 保留
  5749. } ALARM_UPLOAD_PIRBATTERYLOW_INFO;
  5750. ///@brief 报警中心: pir 设备信号丢失报警
  5751. typedef struct tagALARM_UPLOAD_PIRMISSINGCALL_INFO
  5752. {
  5753. int nIndex; // 序列号
  5754. NET_TIME_EX UTC; // 事件发生的时间
  5755. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  5756. int nAction; // 事件动作, 0表示脉冲事件,1表示事件开始,2表示事件结束;
  5757. BYTE byReserved[1024]; // 保留
  5758. } ALARM_UPLOAD_PIRMISSINGCALL_INFO;
  5759. ///@brief 报警中心: 视频虚焦事件
  5760. typedef struct tagALARM_UPLOAD_VIDEO_UNFOCUS_INFO
  5761. {
  5762. int nIndex; // 序列号
  5763. NET_TIME_EX UTC; // 事件发生的时间
  5764. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  5765. int nAction; // 事件动作, 0表示脉冲事件,1表示事件开始,2表示事件结束;
  5766. BYTE byReserved[1024]; // 保留
  5767. } ALARM_UPLOAD_VIDEO_UNFOCUS_INFO;
  5768. ///@brief 报警中心: PIR报警事件
  5769. typedef struct tagALARM_UPLOAD_ALARMPIR_INFO
  5770. {
  5771. int nIndex; // 序列号
  5772. NET_TIME_EX UTC; // 事件发生的时间
  5773. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  5774. int nAction; // 事件动作, 0表示脉冲事件,1表示事件开始,2表示事件结束;
  5775. BYTE byReserved[1024]; // 保留
  5776. } ALARM_UPLOAD_ALARMPIR_INFO;
  5777. ///@brief 报警中心心跳事件
  5778. typedef struct tagALARM_UPLOAD_HEARTBEAT_INFO
  5779. {
  5780. char szGlobalIP[DH_MAX_IPADDR_LEN]; // 客户端IP地址,建议使用szGlobalIPEx
  5781. char szMAC[DH_MACADDR_LEN]; // MAC地址
  5782. int nKeepAlive; // 设备端保活时间,即多久会发一个保活包。单位:秒
  5783. NET_TIME_EX stuTime; // 事件发生时间
  5784. char szGlobalIPEx[MAX_LOCAL_IP_LEN]; // 客户端IP地址,支持IPv6
  5785. BYTE byReserved[960]; // 保留字节
  5786. }ALARM_UPLOAD_HEARTBEAT_INFO;
  5787. ///@brief 报警中心上线/断线事件
  5788. typedef struct tagALARM_UPLOAD_ONLINE_INFO
  5789. {
  5790. char szGlobalIP[DH_MAX_IPADDR_LEN]; // 客户端IP地址,建议使用szGlobalIPEx
  5791. int nPort; // 客户端端口
  5792. NET_TIME_EX stuTime; // 事件发生时间
  5793. BOOL bOnLine; // 在线:TRUE(在线) FALSE(断线)
  5794. char szGlobalIPEx[MAX_LOCAL_IP_LEN]; // 客户端IP地址,支持IPv6
  5795. BYTE byReserved[956]; // 保留字节
  5796. }ALARM_UPLOAD_ONLINE_INFO;
  5797. ///@brief 报警中心烟感报警事件
  5798. typedef struct __ALARM_UPLOAD_SMOKESENSOR_INFO
  5799. {
  5800. DWORD dwSize;
  5801. char szGlobalIP[DH_MAX_IPADDR_LEN]; // 客户端IP地址,建议使用szGlobalIPEx
  5802. char szDomainName[DH_MAX_DOMAIN_NAME_LEN]; // 客户端域名
  5803. int nPort; // 报警上传时客户端连接的端口
  5804. char szAlarmOccurTime[DH_ALARM_OCCUR_TIME_LEN]; // 报警发生的时间
  5805. int nChannel; // 报警通道 从0开始
  5806. BYTE byHighTemperature; // 1:温度异常报警开始,0:温度异常报警结束
  5807. BYTE bySmoke; // 1:烟感报警开始,0:烟感报警结束
  5808. char szGlobalIPEx[MAX_LOCAL_IP_LEN]; // 客户端IP地址,支持IPv6
  5809. }ALARM_UPLOAD_SMOKESENSOR_INFO;
  5810. ///@brief 警戒区入侵方向
  5811. typedef enum tagNET_CROSSREGION_DIRECTION_INFO
  5812. {
  5813. EM_CROSSREGION_DIRECTION_UNKNOW = 0 ,
  5814. EM_CROSSREGION_DIRECTION_ENTER , //进入
  5815. EM_CROSSREGION_DIRECTION_LEAVE , //离开
  5816. EM_CROSSREGION_DIRECTION_APPEAR , //出现
  5817. EM_CROSSREGION_DIRECTION_DISAPPEAR , //消失
  5818. }NET_CROSSREGION_DIRECTION_INFO;
  5819. ///@brief 报警中心智能报警事件
  5820. typedef struct __ALARM_UPLOAD_IVS_INFO
  5821. {
  5822. DWORD dwSize;
  5823. NET_TIME stuTime; // 事件发生时间
  5824. char szDomainName[DH_MAX_DOMAIN_NAME_LEN]; // 客户端域名
  5825. int nChannelID; // 通道号,从0开始
  5826. char szType[MAX_PATH]; // 报警类型, 检测规则
  5827. // "CrossLineDetection" 警戒线
  5828. // "CrossFenceDetection" 穿越围栏
  5829. // "CrossRegionDetection" 警戒区
  5830. // "PasteDetection" ATM贴条
  5831. // "LeftDetection" 物品遗留
  5832. // "Preservation" 物品保全
  5833. // "TakenAwayDetection" 物品搬移
  5834. // "StayDetection" 停留/滞留
  5835. // "ParkingDetection" 非法停车
  5836. // "WanderDetection" 徘徊
  5837. // "MoveDetection" 运动
  5838. // "TailDetection" 尾随
  5839. // "RioterDetection" 聚集
  5840. // "FightDetection" 打架
  5841. // "RetrogradeDetection" 逆行
  5842. // "FireDetection" 火焰
  5843. // "SmokeDetection" 烟雾
  5844. // "NumberStat" 数量统计
  5845. // "VideoAbnormalDetection" 视频异常
  5846. // "FaceDetection" 目标检测
  5847. // "TargetRecognition" 目标识别
  5848. // "DensityDetection" 密集度检测
  5849. // "QueueDetection" 排队检测
  5850. int nState; // 报警状态,0-报警复位,1-报警置位, 2-脉冲式报警
  5851. char szRuleName[DH_COMMON_STRING_128]; // 规则名称
  5852. char szIPAddress[DH_MAX_IPADDR_LEN_EX]; // 设备IP地址
  5853. int nPort; // 设备端口号
  5854. char szMacAddress[DH_MACADDR_LEN]; // 设备端mac地址
  5855. char szPicFilePath[MAX_PATH]; // 图片存放文件夹路径
  5856. int nPicFileNum; // 当前报警对应的图片文件个数
  5857. int nUploadPicFileNum; // 已上传FTP的图片文件个数
  5858. DWORD dwChannelMask; // 抓图视频通道的掩码,15表示此次报警抓图的有1,2,3,4通道
  5859. NET_CROSSREGION_DIRECTION_INFO emDirection; // 警戒区入侵方向, 仅在szType 为CrossRegionDetection 时有效
  5860. } ALARM_UPLOAD_IVS_INFO;
  5861. ///@brief 报警中心外部报警扩展信息
  5862. typedef struct _ALARM_UPLOAD_ALARMEX_INFO
  5863. {
  5864. DWORD dwSize;
  5865. NET_TIME stuTime; // 事件发生时间
  5866. char szDomainName[DH_MAX_DOMAIN_NAME_LEN]; // 客户端域名
  5867. DWORD dwAlarmMask; // 报警信息掩码,按位表示各报警通道状态, 7表示1,2,3报警输入通道
  5868. char szDevMac[DH_MACADDR_LEN]; // 设备端mac地址
  5869. char szPicFilePath[MAX_PATH]; // 图片存放文件夹路径
  5870. int nPicFileNum; // 当前报警对应的图片文件个数
  5871. int nUploadPicFileNum; // 已上传FTP的图片文件个数
  5872. char szAreaName[DH_COMMON_STRING_128]; // 防区名称
  5873. DWORD dwChannelMask; // 抓图视频通道的掩码,15表示此次报警抓图的有1,2,3,4通道
  5874. }ALARM_UPLOAD_ALARMEX_INFO;
  5875. ///@brief 登陆失败类型
  5876. typedef enum _EM_LOGIN_FAILED_TYPE
  5877. {
  5878. LOGIN_FAILED_UNKNOW = 0 ,
  5879. LOGIN_FAILED_PASSWORD , //密码不正确
  5880. LOGIN_FAILED_USER , //帐号不存在
  5881. LOGIN_FAILED_TIMEOUT , //等待登录返回超时
  5882. LOGIN_FAILED_RELOGGIN , //帐号已经登录
  5883. LOGIN_FAILED_LOCKED , //帐号已被锁定
  5884. LOGIN_FAILED_BLACKLIST , //帐号被列入禁止名单
  5885. LOGIN_FAILED_ERROR_BUSY , //资源不足,系统忙
  5886. LOGIN_FAILED_VERSION , //版本不对,无法登陆
  5887. }EM_LOGIN_FAILED_TYPE;
  5888. ///@brief 远程登录失败报警信息
  5889. typedef struct __ALARM_UPLOAD_LOGIN_FAILED_INFO
  5890. {
  5891. DWORD dwSize;
  5892. EM_LOGIN_FAILED_TYPE emFailedType; //登陆失败类型
  5893. char szDeviceIP[DH_COMMON_STRING_64]; //登入设备IP
  5894. DWORD nDevicePort; //登入设备端口
  5895. }ALARM_UPLOAD_LOGIN_FAILED_INFO;
  5896. ///@brief 录像状态变化报警信息
  5897. typedef struct
  5898. {
  5899. int nChannel; // 录像通道号
  5900. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  5901. char reserved[12];
  5902. } ALARM_RECORDING_CHANGED;
  5903. ///@brief 视频码流类型
  5904. typedef enum tagNET_STREAM_TYPE
  5905. {
  5906. NET_EM_STREAM_ERR, // 其它
  5907. NET_EM_STREAM_MAIN, // "Main"-主码流
  5908. NET_EM_STREAM_EXTRA_1, // "Extra1"-辅码流1
  5909. NET_EM_STREAM_EXTRA_2, // "Extra2"-辅码流2
  5910. NET_EM_STREAM_EXTRA_3, // "Extra3"-辅码流3
  5911. NET_EM_STREAM_SNAPSHOT, // "Snapshot"-抓图码流
  5912. NET_EM_STREAM_OBJECT, // "Object"-物体流
  5913. NET_EM_STREAM_AUTO, // "Auto"-自动选择合适码流
  5914. NET_EM_STREAM_PREVIEW, // "Preview"-预览裸数据码流
  5915. NET_EM_STREAM_NONE, // 无视频码流(纯音频)
  5916. }NET_STREAM_TYPE;
  5917. ///@brief 录像状态变化报警(DH_ALARM_RECORD_CHANGED_EX)
  5918. typedef struct __ALARM_RECORD_CHANGED_INFO_EX
  5919. {
  5920. int nAction; // 0:开始 1:停止
  5921. int nChannel; // 通道
  5922. char szStoragePoint[DH_COMMON_STRING_64]; // 录像存储点
  5923. NET_STREAM_TYPE emStreamType; // 录像码流
  5924. char szUser[DH_COMMON_STRING_128]; // 操作用户
  5925. BYTE byReserved[828]; // 保留
  5926. } ALARM_RECORD_CHANGED_INFO_EX;
  5927. ///@brief MPT录像导入NVR的进度事件(DH_ALARM_POLICE_RECORD_PROGRESS)
  5928. typedef struct tagALARM_POLICE_RECORD_PROGRESS_INFO
  5929. {
  5930. int nAction; // 0:pulse,-1未知
  5931. int nUsbSlot; // MPT所在USB槽位号
  5932. UINT nTotalSize; // 文件总大小,单位KB
  5933. UINT nTransferSize; // 已经导入NVR的文件大小,单位KB
  5934. BYTE byReserved[1024]; // 保留
  5935. }ALARM_POLICE_RECORD_PROGRESS_INFO;
  5936. ///@brief MPT设备状态
  5937. typedef enum tagEM_MPT_STATE
  5938. {
  5939. EM_MPT_STATE_UNKNOWN, // 未知
  5940. EM_MPT_STATE_PLUGIN_OUT, // 设备拔出
  5941. EM_MPT_STATE_PLUGIN_IN_WORKING_PROPERLY, // 设备插入且工作正常
  5942. EM_MPT_STATE_PLUGIN_IN_STORAGE_ERROR, // 设备插入但存储介质损坏
  5943. }EM_MPT_STATE;
  5944. ///@brief MPT插入拔出设备事件(DH_ALARM_POLICE_PLUGIN)
  5945. typedef struct tagALARM_POLICE_PLUGIN_INFO
  5946. {
  5947. int nAction; // 0:pulse,-1未知
  5948. int nUsbSlot; // MPT所在USB槽位号
  5949. EM_MPT_STATE eState; // MPT状态
  5950. char szSerialNumber[DH_COMMON_STRING_32]; // MPT设备序列号
  5951. BYTE byReserved[1024]; // 保留
  5952. }ALARM_POLICE_PLUGIN_INFO;
  5953. ///@brief GPS未定位报警(DH_ALARM_GPS_NOT_ALIGNED)
  5954. typedef struct tagALARM_GPS_NOT_ALIGNED_INFO
  5955. {
  5956. int nAction; // 事件动作,0表示脉冲事件,1表示报警开始,2表示报警结束;
  5957. NET_TIME_EX stuTime; // 事件发生的时间
  5958. NET_TIME_EX stuStartTime; // 开始时间,nAction为2时上报此字段
  5959. BYTE byReserved[988]; // 保留字节
  5960. }ALARM_GPS_NOT_ALIGNED_INFO;
  5961. ///@brief 网络未连接报警(包括wifi,3G/4G)(DH_ALARM_WIRELESS_NOT_CONNECTED)
  5962. typedef struct tagALARM_WIRELESS_NOT_CONNECTED_INFO
  5963. {
  5964. int nAction; // 事件动作,0表示脉冲事件,1表示报警开始,2表示报警结束;
  5965. NET_TIME_EX stuTime; // 事件发生的时间
  5966. BYTE byReserved[1024]; // 保留字节
  5967. }ALARM_WIRELESS_NOT_CONNECTED_INFO;
  5968. ///@brief 离线日志同步状态
  5969. typedef enum tagEM_OFFLINE_LOGSYNC_STATE
  5970. {
  5971. EM_OFFLINE_LOGSYNC_STATE_UNKNOWN, // 未知
  5972. EM_OFFLINE_LOGSYNC_STATE_SUCCEEDED, // 成功
  5973. EM_OFFLINE_LOGSYNC_STATE_FAILED, // 失败
  5974. }EM_OFFLINE_LOGSYNC_STATE;
  5975. ///@brief 同步离线日志事件
  5976. typedef struct tagALARM_OFFLINE_LOGSYNC_INFO
  5977. {
  5978. int nAction; // 事件动作,0表示脉冲事件,1表示报警开始,2表示报警结束;
  5979. NET_TIME_EX stuTime; // 事件发生的时间
  5980. int nDevAddrs; // 分控制器ID
  5981. EM_OFFLINE_LOGSYNC_STATE emState; //同步情况
  5982. BYTE byReserved[1024]; // 保留字节
  5983. }ALARM_OFFLINE_LOGSYNC_INFO;
  5984. #define NET_MAX_WINDINGID_NUM 8
  5985. ///@brief 线圈/车检器报警
  5986. typedef struct __ALARM_WINGDING_INFO
  5987. {
  5988. int nDriveWayID; // 车道号
  5989. int nWindingID; // 线圈ID,此字段废除,以nWindingIDs为准
  5990. NET_TIME stuTime; // 报警发生时间
  5991. int nState; // 设备状态,0表示故障恢复,1表示发生故障
  5992. DWORD dwChannel; // 报警的通道号
  5993. char reserve[28];
  5994. int nWindingIDNum; // 线圈ID个数
  5995. int nWindingIDs[NET_MAX_WINDINGID_NUM]; // 具体线圈ID
  5996. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  5997. } ALARM_WINGDING_INFO;
  5998. ///@brief 交通拥塞报警
  5999. typedef struct __ALARM_TRAF_CONGESTION_INFO
  6000. {
  6001. int nDriveWayID; // 车道号
  6002. int nCongestionLevel; // 交通拥塞等级:1,2,3,4,5,6;1级最严重
  6003. NET_TIME stuTime; // 报警发生时间
  6004. int nState; // 设备状态,0表示故障恢复,1表示发生故障
  6005. DWORD dwChannel; // 报警的通道号
  6006. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6007. char reserve[28];
  6008. } ALARM_TRAF_CONGESTION_INFO;
  6009. ///@brief 交通异常报警
  6010. typedef struct __ALARM_TRAF_EXCEPTION_INFO
  6011. {
  6012. int nDriveWayID; // 车道号
  6013. NET_TIME stuTime; // 报警发生时间
  6014. int nState; // 设备状态,0表示故障恢复,1表示发生故障
  6015. DWORD dwChannel; // 报警的通道号
  6016. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6017. char reserve[28];
  6018. } ALARM_TRAF_EXCEPTION_INFO;
  6019. ///@brief 补光设备故障报警
  6020. typedef struct __ALARM_EQUIPMENT_FILL_INFO
  6021. {
  6022. int nDriveWayID; // 车道号
  6023. NET_TIME stuTime; // 报警发生时间
  6024. int nState; // 设备状态,0表示故障恢复,1表示发生故障
  6025. DWORD dwChannel; // 报警的通道号
  6026. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6027. char reserve[28]; // 保留字节
  6028. } ALARM_EQUIPMENT_FILL_INFO;
  6029. ///@brief 报警布撤防状态信息
  6030. typedef struct __ALARM_ARM_DISARM_STATE_INFO
  6031. {
  6032. BYTE bState; // 布撤防状态,0表示撤防,1表示布防,2表示强制布防
  6033. char reserve1[3]; // 字节对齐
  6034. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6035. char reserve[32]; // 保留字节
  6036. } ALARM_ARM_DISARM_STATE_INFO;
  6037. ///@brief 3G流量超出阈值状态信息
  6038. typedef struct __DHDEV_3GFLOW_EXCEED_STATE_INFO
  6039. {
  6040. BYTE bState; // 3G流量超出阈值状态,0表示未超出阀值,1表示超出阀值
  6041. char reserve1[3]; // 字节对齐
  6042. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6043. char reserve[32]; // 保留字节
  6044. } DHDEV_3GFLOW_EXCEED_STATE_INFO;
  6045. ///@brief 限速报警或路口限速报警 (DH_DEVSTATE_SPEED_LIMIT)
  6046. typedef struct __ALARM_SPEED_LIMIT
  6047. {
  6048. char szType[DH_SPEEDLIMIT_TYPE_LEN]; // 限速报警类别:LowerSpeed, UpperSpeed
  6049. int iSpeedLimit; // 限速 单位KM/H
  6050. int iSpeed; // 速度 单位KM/H
  6051. char szCrossingID[DH_MAX_CROSSING_ID]; // 路口序列号
  6052. DWORD dwLongitude; // 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
  6053. DWORD dwLatidude; // 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
  6054. // 经纬度的具体转换方式可以参考结构体 NET_WIFI_GPS_INFO 中的注释
  6055. DHDEVTIME stTime; // 报警发生时间
  6056. BYTE bOffline; // 0-实时 1-补传
  6057. char reserve1[3]; // 字节对齐
  6058. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6059. char reserve[24];
  6060. }ALARM_SPEED_LIMIT;
  6061. ///@brief 超载报警
  6062. typedef struct __ALARM_OVER_LOADING
  6063. {
  6064. NET_TIME stuCurTime; // 当前时间
  6065. DWORD dwLatidude; // 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
  6066. DWORD dwLongitude; // 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
  6067. // 经纬度的具体转换方式可以参考结构体 NET_WIFI_GPS_INFO 中的注释
  6068. char szDriverNo[DH_VEHICLE_DRIVERNO_LEN];// 驾驶员ID
  6069. DWORD dwCurSpeed; // 当前速度
  6070. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6071. BYTE byReserved[128];
  6072. }ALARM_OVER_LOADING;
  6073. ///@brief 急刹车报警
  6074. typedef struct __ALARM_HARD_BRAKING
  6075. {
  6076. NET_TIME stuCurTime; // 当前时间
  6077. DWORD dwLatidude; // 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
  6078. DWORD dwLongitude; // 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
  6079. // 经纬度的具体转换方式可以参考结构体 NET_WIFI_GPS_INFO 中的注释
  6080. char szDriverNo[DH_VEHICLE_DRIVERNO_LEN]; // 驾驶员ID
  6081. DWORD dwCurSpeed; // 当前速度
  6082. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6083. BYTE byReserved[128];
  6084. }ALARM_HARD_BRAKING;
  6085. ///@brief 烟感报警
  6086. typedef struct __ALARM_SMOKE_SENSOR
  6087. {
  6088. NET_TIME stuCurTime; // 当前时间
  6089. int nChannel; // 报警通道
  6090. BYTE byHighTemperature; // 1:温度异常报警开始,0:温度异常报警结束
  6091. BYTE bySmoke; // 1:烟感报警开始,0:烟感报警结束
  6092. char reserve1[2]; // 字节对齐
  6093. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6094. BYTE byReservrd[128];
  6095. }ALARM_SMOKE_SENSOR;
  6096. ///@brief 交通灯故障报警
  6097. typedef struct _LIGHT_INFO
  6098. {
  6099. BYTE byDirection; // 交通灯方向: 1-左行,2-右行,3-直行, 4-掉头
  6100. BYTE byState; // 交通灯状态: 1-故障,2-正常
  6101. BYTE byReserved[62]; // 保留字节
  6102. }LIGHT_INFO;
  6103. ///@brief 交通灯故障原因
  6104. typedef struct __ALARM_TRAFFIC_LIGHT_FAULT
  6105. {
  6106. NET_TIME stTime; // 报警发生时间
  6107. int nInfoNumber; // 故障信息数
  6108. LIGHT_INFO stLightInfo[8]; // 交通灯故障信息
  6109. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6110. BYTE byReserved[128]; // 保留字段
  6111. }ALARM_TRAFFIC_LIGHT_FAULT;
  6112. ///@brief 流量统计报警通道信息
  6113. typedef struct __ALARM_TRAFFIC_FLUX_LANE_INFO
  6114. {
  6115. NET_TIME stuCurTime; // 当前时间
  6116. int nLane; // 车道号
  6117. int nState; // 状态值:1-表示拥堵, 2-表示拥堵恢复, 3-表示正常, 4-表示中断, 5-表示中断恢复
  6118. int nFlow; // 流量值,单位:辆/分
  6119. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6120. BYTE byReserved[124]; // 保留
  6121. }ALARM_TRAFFIC_FLUX_LANE_INFO;
  6122. ///@brief SIP状态改变报警()
  6123. typedef struct __ALARM_SIP_STATE
  6124. {
  6125. int nChannelID;
  6126. BYTE byStatus; //0:注册成功,1:未注册,2:无效,3:注册中,4:通话中
  6127. char reserve1[3]; // 字节对齐
  6128. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6129. BYTE bReserved[64]; // 保留
  6130. }ALARM_SIP_STATE;
  6131. ///@brief 车载自定义信息上传(DH_DEVSTATE_VIHICLE_INFO_UPLOAD)
  6132. typedef struct __ALARM_VEHICLE_INFO_UPLOAD
  6133. {
  6134. char szType[DH_VEHICLE_TYPE_LEN]; // 信息类别: DriverCheck:司机签入签出
  6135. char szCheckInfo[DH_VEHICLE_INFO_LEN]; // 签入:CheckIn、签出:CheckOut
  6136. char szDirverNO[DH_VEHICLE_DRIVERNO_LEN]; // 司机工号字符串
  6137. DHDEVTIME stTime; // 报警发生时间
  6138. BYTE bOffline; // 0-实时 1-补传
  6139. char reserve1[3]; // 字节对齐
  6140. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6141. char reserved[64];
  6142. }ALARM_VEHICLE_INFO_UPLOAD;
  6143. ///@brief 卡号录像信息上传
  6144. typedef struct __ALARM_CARD_RECORD_INFO_UPLOAD
  6145. {
  6146. int nChannel; // 通道号
  6147. BOOL bEnable; // 是否正在卡号录像
  6148. char szCardInfo[DH_MAX_CARD_INFO_LEN]; // 卡号信息
  6149. NET_TIME stuTime; // 该卡号生效起始时间
  6150. BOOL bPreviewOverlayEn; // 预览叠加使能
  6151. BYTE byOverlayPos; // 叠加位置,1-左上,2-左下,3-右上,4-右下
  6152. char reserve1[3]; // 字节对齐
  6153. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6154. char reserved[64];
  6155. }ALARM_CARD_RECORD_INFO_UPLOAD;
  6156. ///@brief 交易类型
  6157. typedef enum __ATMTradeTypes{
  6158. TRADE_TYPE_INC = 0, //插卡INSERTCARD
  6159. TRADE_TYPE_WDC, //退卡WITHDRAWCARD
  6160. TRADE_TYPE_CKT, //校时CHECKTIME
  6161. TRADE_TYPE_INQ, //查询
  6162. TRADE_TYPE_CWD, //取款
  6163. TRADE_TYPE_PIN, //改密
  6164. TRADE_TYPE_TFR, //转帐
  6165. TRADE_TYPE_DEP, //存款
  6166. TRADE_TYPE_NCINQ, //无卡查询
  6167. TRADE_TYPE_NCDEP, //无卡存款
  6168. TRADE_TYPE_OTHERS, //其它
  6169. TRADE_TYPE_ALL, //总
  6170. }DH_eATMTradeTypes;
  6171. ///@brief 交易信息
  6172. typedef struct __ALARM_ATM_INFO_UPLOAD_CHNL
  6173. {
  6174. int nChannel; // 查询的第几通道ATM叠加信息,范围0-N-1(N表示通道数)
  6175. char szATMID[32]; // ATM终端号
  6176. char szCardNo[32]; // 卡号 例:6222421541208230456
  6177. char szTradetime[32]; // 交易时间 例:20111118112200表示2011-11-18 11:22:00
  6178. DH_eATMTradeTypes emTradeType; // 交易类型 范围: ATMTradeTypes
  6179. int nAmount; // 交易金额 0-4294967296
  6180. BYTE byRerved[32]; // 保留
  6181. }ALARM_ATM_INFO_UPLOAD_CHNL;
  6182. ///@brief ATM交易信息上传(DH_ALARM_ATM_INFO_UPLOAD)事件对应结构体
  6183. typedef struct __ALARM_ATM_INFO_UPLOAD
  6184. {
  6185. int nCnt;
  6186. ALARM_ATM_INFO_UPLOAD_CHNL m_stAtmInfo[DH_MAX_CHANNUM];
  6187. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6188. }ALARM_ATM_INFO_UPLOAD;
  6189. ///@brief 摄像机移位报警事件
  6190. typedef struct __ALARM_CAMERA_MOVE_INFO
  6191. {
  6192. int nChannelNum; // 报警发生通道数
  6193. unsigned char alarmChannels[DH_MAX_CHANNUM_EX]; // 发生报警通道号信息
  6194. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6195. BYTE byReserved[128];
  6196. }ALARM_CAMERA_MOVE_INFO;
  6197. ///@brief 详细动检报警信息
  6198. typedef struct __ALARM_DETAILEDMOTION_CHNL_INFO
  6199. {
  6200. DWORD dwSize;
  6201. int nChannelID; // 通道号
  6202. BOOL bAlarm; // 是否报警 TRUE/FALSE
  6203. int nLevel; // 报警级别,单位千分之,以动检发生小格数除以总小格数计算
  6204. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6205. }ALARM_DETAILEDMOTION_CHNL_INFO;
  6206. ///@brief 存储异常报警
  6207. typedef struct __ALARM_STORAGE_FAILURE
  6208. {
  6209. DWORD dwSize; // 结构体大小
  6210. UINT ActionType; // 0:停止, 1:开始
  6211. char szProtocol[DH_MAX_STRING_LEN]; // 协议类型,目前只支持FTP
  6212. char szServerAddr[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // 服务器IP地址
  6213. DWORD dwPort; // 端口号
  6214. NET_TIME stuTime; // 事件发生时间
  6215. int nChannel; // 通道号, 从1开始, 0表示不区分通道
  6216. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6217. }ALARM_STORAGE_FAILURE;
  6218. ///@brief 数据来源
  6219. typedef enum tagEM_DATE_SOURCE
  6220. {
  6221. EM_DATE_SOURCE_GPS, // GPS
  6222. EM_DATE_SOURCE_INERTIALNAVIGATION, // 惯性导航数据
  6223. }EM_DATE_SOURCE;
  6224. ///@brief GPS状态信息
  6225. typedef struct _NET_GPS_STATUS_INFO
  6226. {
  6227. NET_TIME revTime; // 定位时间
  6228. char DvrSerial[50]; // 设备序列号
  6229. BYTE byRserved1[6]; // 对齐字节
  6230. double longitude; // 经度(单位是百万分之度,范围0-360度)
  6231. double latidude; // 纬度(单位是百万分之度,范围0-180度)
  6232. double height; // 高度(米)
  6233. double angle; // 方向角(正北方向为原点,顺时针为正)
  6234. double speed; // 速度(单位km/H)
  6235. WORD starCount; // 定位星数, emDateSource为 EM_DATE_SOURCE_GPS时有效
  6236. BYTE byRserved2[2]; // 对齐字节
  6237. NET_THREE_STATUS_BOOL antennaState; // 天线状态, emDateSource为 EM_DATE_SOURCE_GPS时有效
  6238. NET_THREE_STATUS_BOOL orientationState; // 定位状态
  6239. int workStae; // 工作状态(0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算
  6240. // emDateSource为 EM_DATE_SOURCE_GPS时有效
  6241. int nAlarmCount; // 发生的报警位置个数
  6242. int nAlarmState[128]; // 发生的报警位置,值可能多个, emDateSource为 EM_DATE_SOURCE_GPS时有效
  6243. BYTE bOffline; // 0-实时 1-补传
  6244. BYTE bSNR; // GPS信噪比,表示GPS信号强度,值越大,信号越强 范围:0~100,0表示不可用
  6245. BYTE byRserved3[2]; // 对齐字节
  6246. EM_DATE_SOURCE emDateSource; // 数据来源
  6247. int nSignalStrength; // 在当前工作模式下(GPS或北斗等系统)的信号强度
  6248. float fHdop; // 水平精度因子惯性导航时无效
  6249. float fPdop; // 位置精度因子,惯性导航时无效
  6250. int nMileage; // 总里程, 单位 米
  6251. BYTE byRserved[96]; // 保留字节
  6252. } NET_GPS_STATUS_INFO,*LPNET_GPS_STATUS_INFO;
  6253. ///@brief 前端断网报警信息
  6254. typedef struct __ALARM_FRONTDISCONNET_INFO
  6255. {
  6256. DWORD dwSize; // 结构体大小
  6257. int nChannelID; // 通道号 从1开始
  6258. int nAction; // 0:开始 1:停止
  6259. NET_TIME stuTime; // 事件发生时间
  6260. char szIpAddress[MAX_PATH]; // 前端IPC的IP地址
  6261. NET_GPS_STATUS_INFO stGPSStatus; // GPS信息 仅部分设备有效。报警类型为DH_ALARM_FRONTDISCONNECT时,此字段无效。
  6262. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6263. }ALARM_FRONTDISCONNET_INFO;
  6264. ///@brief 事件类型DH_ALARM_KEYPAD_TAMPER (键盘防拆事件)对应的数据块描述信息
  6265. typedef struct tagALARM_KEYPAD_TAMPER_INFO
  6266. {
  6267. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6268. int nChannelID; // 通道号
  6269. NET_TIME_EX stuTime; // 事件发生的时间
  6270. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6271. char szReserved[1024]; // 保留字节
  6272. } ALARM_KEYPAD_TAMPER_INFO;
  6273. ///@brief 事件类型DH_ALARM_KEYPAD_FAILURE (键盘掉线事件)对应的数据块描述信息
  6274. typedef struct tagALARM_KEYPAD_FAILURE_INFO
  6275. {
  6276. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6277. int nChannelID; // 通道号
  6278. NET_TIME_EX stuTime; // 事件发生的时间
  6279. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6280. char szReserved[1024]; // 保留字节
  6281. } ALARM_KEYPAD_FAILURE_INFO;
  6282. ///@brief 事件类型DH_ALARM_NOT_CLEAR_CAR (未清车告警事件)对应的数据块描述信息
  6283. typedef struct tagALARM_NOT_CLEAR_CAR_INFO
  6284. {
  6285. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6286. int nChannelID; // 通道号
  6287. NET_TIME_EX stuTime; // 事件发生的时间
  6288. char szReserved[1024]; // 保留字节
  6289. } ALARM_NOT_CLEAR_CAR_INFO;
  6290. ///@brief 事件类型DH_ALARM_WIRELESS_DEVBATTERY_LOSS (探测器电池丢失事件)对应的数据块描述信息
  6291. typedef struct tagALARM_WIRELESS_DEVBATTERY_LOSS_INFO
  6292. {
  6293. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6294. int nChannelID; // 通道号
  6295. NET_TIME_EX stuTime; // 事件发生的时间
  6296. char szAreaName[32]; // 探测器所属区域名称
  6297. char szModel[32]; // 探测器类型
  6298. char szName[32]; // 探测器名称
  6299. char szSN[32]; // 探测器序列号
  6300. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6301. char szReserved[1024]; // 保留字节
  6302. } ALARM_WIRELESS_DEVBATTERY_LOSS_INFO;
  6303. ///@brief 事件类型DH_ALARM_SIREN_TAMPER (警号防拆事件)对应的数据块描述信息
  6304. typedef struct tagALARM_SIREN_TAMPER_INFO
  6305. {
  6306. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6307. int nChannelID; // 通道号
  6308. NET_TIME_EX stuTime; // 事件发生的时间
  6309. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6310. char szReserved[1024]; // 保留字节
  6311. } ALARM_SIREN_TAMPER_INFO;
  6312. ///@brief 事件类型DH_ALARM_KEYPAD_LOCK (键盘锁定事件)对应的数据块描述信息
  6313. typedef struct tagALARM_KEYPAD_LOCK_INFO
  6314. {
  6315. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6316. int nChannelID; // 通道号
  6317. NET_TIME_EX stuTime; // 事件发生的时间
  6318. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6319. char szReserved[1024]; // 保留字节
  6320. } ALARM_KEYPAD_LOCK_INFO;
  6321. ///@brief 事件类型DH_ALARM_ALARMNET (网络报警事件)对应的数据块描述信息
  6322. typedef struct tagALARM_ALARMNET_INFO
  6323. {
  6324. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6325. int nChannelID; // 通道号
  6326. NET_TIME_EX stuTime; // 事件发生的时间
  6327. char byReserved[4]; // 仅用于字节对齐
  6328. char szName[128]; // 报警名称
  6329. char szTrigger[32]; // 触发源信息
  6330. char szDesc[128]; // 报警描述信息
  6331. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6332. char szReserved[1024]; // 保留字节
  6333. } ALARM_ALARMNET_INFO;
  6334. ///@brief 事件类型DH_ALARM_PIC_UPLOAD_ALARM (图片上传对外通知平台事件)对应的数据块描述信息
  6335. typedef struct tagNET_ALARM_PIC_UPLOAD_ALARM_INFO
  6336. {
  6337. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6338. int nChannelID; // 通道号
  6339. NET_TIME_EX stuTime; // 事件发生的时间
  6340. char byReserved[4]; // 仅用于字节对齐
  6341. char szProtocol[16]; // 协议类型
  6342. char szPicDirectory[128]; // 图片上传目录文件夹,可以是设备名,设备IP,用户自定义内容
  6343. char szReserved[1024]; // 保留字节
  6344. } NET_ALARM_PIC_UPLOAD_ALARM_INFO;
  6345. ///@brief 事件类型DH_ALARM_CHANG_BAI_VEHICLE_PROHIBITED (禁行时间段车辆移动上报事件)对应的数据块描述信息
  6346. typedef struct tagNET_ALARM_CHANG_BAI_VEHICLE_PROHIBITED_INFO
  6347. {
  6348. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6349. int nChannelID; // 通道号
  6350. NET_TIME_EX stuTime; // 事件发生的时间
  6351. char byReserved[4]; // 仅用于字节对齐
  6352. NET_TIME stuVehicleProhibitedStartTime; // 禁行开始时间(本地时间)
  6353. NET_TIME stuVehicleProhibitedEndTime; // 禁行结束时间(本地时间)
  6354. NET_GPS_STATUS_INFO stGPSStatus; // GPS信息
  6355. char szReserved[1024]; // 保留字节
  6356. } NET_ALARM_CHANG_BAI_VEHICLE_PROHIBITED_INFO;
  6357. ///@brief 进出方向
  6358. typedef enum tagEM_USER_PASS_TYPE
  6359. {
  6360. EM_USER_PASS_TYPE_UNKNOWN,
  6361. EM_USER_PASS_TYPE_ENTRY, // 进门
  6362. EM_USER_PASS_TYPE_EXIT, // 出门
  6363. }EM_USER_PASS_TYPE;
  6364. ///@brief 事件类型DH_ALARM_USER_PASS_CONFIRM (用户通过闸机进入或离开事件)对应的数据块描述信息
  6365. typedef struct tagNET_ALARM_USER_PASS_CONFIRM_INFO
  6366. {
  6367. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6368. int nChannelID; // 通道号
  6369. NET_TIME_EX stuTime; // 事件发生的时间
  6370. BOOL bRealUTC; // stuRealUTC 是否有效,bRealUTC 为 TRUE 时,用 stuRealUTC,否则用 stuTime 字段
  6371. NET_TIME_EX stuRealUTC; // 事件发生的时间(标准UTC时间)
  6372. char byReserved[4]; // 仅用于字节对齐
  6373. UINT nCount; // 通过人数数量
  6374. EM_USER_PASS_TYPE emType; // 进出方向(事件类型)
  6375. char szReserved[1024]; // 保留字节
  6376. } NET_ALARM_USER_PASS_CONFIRM_INFO;
  6377. ///@brief 事件类型DH_ALARM_INSUFFICIENT_QUOTA_SPACE (配额容量不足事件)对应的数据块描述信息
  6378. typedef struct tagNET_ALARM_INSUFFICIENT_QUOTA_SPACE_INFO
  6379. {
  6380. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6381. int nChannelID; // 通道号
  6382. NET_TIME_EX stuTime; // 事件发生的时间
  6383. char szReserved[1020]; // 保留字节
  6384. } NET_ALARM_INSUFFICIENT_QUOTA_SPACE_INFO;
  6385. ///@brief 事件类型DH_ALARM_REID_CLUSTER_STATE (REID项目上报设备聚档状态事件)对应的数据块描述信息
  6386. typedef struct tagNET_ALARM_REID_CLUSTER_STATE_INFO
  6387. {
  6388. int nChannelID; // 通道号
  6389. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6390. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6391. NET_TIME_EX stuUTC; // 事件发生的时间
  6392. int nClusterState; // 当前聚档状态 1.已完成. 2.进行中 3.聚档失败
  6393. int nClusterDate; // 上次聚档触发时间,按照年月日记录,作为聚档的唯一key,单设备每日只有一条聚档记录.如20220530则表示在20220530当日已经聚档
  6394. int nClusterType; // 上次聚档类型: 1.自动每日聚档 2.平台下发手动聚档 3.手动测试触发 4.聚档主动失败重试
  6395. NET_TIME_EX stuDealTime; // 记录更新时间,已设备本地时间为准
  6396. char szReserved[1020]; // 保留字节
  6397. } NET_ALARM_REID_CLUSTER_STATE_INFO;
  6398. ///@brief 用户信息
  6399. typedef struct tagNET_SAMPO_PARAMTER
  6400. {
  6401. char szName[128]; // 参数名称
  6402. float fValue; // 参数数值
  6403. char szReserved[512]; // 保留字节
  6404. } NET_SAMPO_PARAMTER;
  6405. ///@brief 事件类型DH_ALARM_SAMPO_USER_INFORMATION (设备向平台上报用户的信息事件)对应的数据块描述信息
  6406. typedef struct tagNET_ALARM_SAMPO_USER_INFORMATION_INFO
  6407. {
  6408. int nChannelID; // 通道号
  6409. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  6410. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6411. NET_TIME_EX stuUTC; // 事件发生的时间
  6412. NET_SAMPO_PARAMTER stuParamter[6]; // 用户信息
  6413. int nParamterCount; // 用户信息个数
  6414. char szReserved[1020]; // 保留字节
  6415. } NET_ALARM_SAMPO_USER_INFORMATION_INFO;
  6416. ///@brief 事件类型DH_ALARM_SAMPO_SERVICE_ALARM (设备向平台上报用户请求的服务事件)对应的数据块描述信息
  6417. typedef struct tagNET_ALARM_SAMPO_SERVICE_ALARM_INFO
  6418. {
  6419. int nChannelID; // 通道号
  6420. int nAction; // 事件动作,0:开始 1:停止
  6421. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6422. NET_TIME_EX stuUTC; // 事件发生的时间
  6423. char szServiceAlarm[128]; // 请求的服务名称
  6424. char szReserved[1024]; // 保留字节
  6425. } NET_ALARM_SAMPO_SERVICE_ALARM_INFO;
  6426. ///@brief SIA格式
  6427. typedef enum tagEM_SIA_EVENT_FORMAT
  6428. {
  6429. EM_SIA_EVENT_FORMAT_UNKNOWN, // 未知
  6430. EM_SIA_EVENT_FORMAT_SIA_DC_04, // SIA DC-04
  6431. EM_SIA_EVENT_FORMAT_CONTACT_ID_DC_05, // Contact ID DC-05
  6432. }EM_SIA_EVENT_FORMAT;
  6433. ///@brief 事件类型DH_ALARM_SIA_EVENT (上报SIA服务器事件报警)对应的数据块描述信息
  6434. typedef struct tagNET_ALARM_SIA_EVENT_INFO
  6435. {
  6436. int nChannelID; // 通道号
  6437. int nAction; // 0:脉冲,1:开始, 2:停止
  6438. NET_TIME_EX stuUTC; // 事件发生的时间
  6439. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  6440. EM_SIA_EVENT_FORMAT emSIAFormat; // SIA格式
  6441. char szMessageData[32]; // 对应SIA DC0-09协议事件消息报文中的data部分
  6442. char szURL[512]; // 音频, 图片, 视频等和事件相关联的文件路径
  6443. char szAreaName[128]; // Area名称, 例如"LivingRoom"
  6444. char szUserID[32]; // 用户编号ID
  6445. char szUserName[128]; // 用户名称
  6446. char szReserved[1024]; // 预留字节
  6447. } NET_ALARM_SIA_EVENT_INFO;
  6448. ///@brief 事件类型 DH_ALARM_AP_CONNECT (连接热点事件报警)对应的数据块描述信息
  6449. typedef struct tagNET_ALARM_AP_CONNECT_INFO
  6450. {
  6451. int nChannelID; // 通道号
  6452. int nAction; // 0:脉冲,1:开始, 2:停止
  6453. NET_TIME_EX stuUTC; // 事件发生的时间
  6454. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  6455. char szMacAddress[32]; // 连接wifi后ap的mac地址
  6456. char szReserved[1024]; // 预留字节
  6457. } NET_ALARM_AP_CONNECT_INFO;
  6458. ///@brief 事件类型 DH_ALARM_DGS_ERROR_REPORT (诊断故障码上报事件)对应的数据块描述信息
  6459. typedef struct tagNET_ALARM_DGS_ERROR_REPORT
  6460. {
  6461. int nChannelID; // 通道号
  6462. int nAction; // 0:脉冲,1:开始, 2:停止
  6463. NET_TIME_EX stuUTC; // 事件发生的时间
  6464. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  6465. UINT nErrorCode; // 故障诊断错误码, 取值参考诊断码值定义表
  6466. char szReserved[1024]; // 预留字节
  6467. } NET_ALARM_DGS_ERROR_REPORT;
  6468. ///@brief 事件类型 DH_ALARM_RESIDENT_ALARM (驻留报警)对应的数据块描述信息
  6469. typedef struct tagNET_ALARM_RESIDENT_ALARM
  6470. {
  6471. int nChannelID; // 通道号
  6472. int nAction; // 0:脉冲,1:开始, 2:停止
  6473. NET_TIME_EX stuUTC; // 事件发生的时间
  6474. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  6475. UINT nTime; // 单位秒,驻留时间
  6476. int nTriggerType; // 触发类型 -1: 未知 0: 车检器 1: 雷达 2: 视频
  6477. char szMac[32]; // 事件触发源的Mac地址
  6478. char szReserved[988]; // 预留字节
  6479. } NET_ALARM_RESIDENT_ALARM;
  6480. ///@brief 电池电压过低报警
  6481. typedef struct __ALARM_BATTERYLOWPOWER_INFO
  6482. {
  6483. DWORD dwSize; // 结构体大小
  6484. int nAction; // 0:开始 1:停止
  6485. int nBatteryLeft; // 剩余电量百分比,单位%
  6486. NET_TIME stTime; // 事件发生时间
  6487. int nChannelID; // 通道号, 标识子设备电池, 从0开始
  6488. NET_GPS_STATUS_INFO stGPSStatus; // GPS信息
  6489. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6490. }ALARM_BATTERYLOWPOWER_INFO;
  6491. ///@brief 温度过高报警
  6492. typedef struct __ALARM_TEMPERATURE_INFO
  6493. {
  6494. DWORD dwSize; // 结构体大小
  6495. char szSensorName[DH_MACHINE_NAME_NUM];// 温度传感器名称
  6496. int nChannelID; // 通道号
  6497. int nAction; // 0:开始 1:停止
  6498. float fTemperature; // 当前温度值, 单位摄氏度
  6499. NET_TIME stTime; // 事件发生时间
  6500. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  6501. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6502. }ALARM_TEMPERATURE_INFO;
  6503. ///@brief 疲劳驾驶报警
  6504. typedef struct __ALARM_TIREDDRIVE_INFO
  6505. {
  6506. DWORD dwSize; // 结构体大小
  6507. int nAction; // 0:开始 1:停止
  6508. int nDriveTime; // 持续驾驶时间,单位分钟
  6509. NET_TIME stTime; // 事件发生时间
  6510. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6511. }ALARM_TIREDDRIVE_INFO;
  6512. ///@brief 丢录像事件报警
  6513. typedef struct __ALARM_LOST_RECORD
  6514. {
  6515. DWORD dwSize; //结构体大小
  6516. UINT ActionType; // 0:停止, 1:开始
  6517. UINT nChannelID; // 通道号,从1开始
  6518. UINT nStreamType; // 码流类型,0:主码流;1:辅码流1;2:辅码流2;3:辅码流3;4:抓图码流
  6519. NET_TIME stuTime; // 事件发生时间
  6520. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6521. }ALARM_LOST_RECORD;
  6522. ///@brief CPU占用率过高事件报警,暂定上限95%。
  6523. typedef struct __ALARM_HIGH_CPU
  6524. {
  6525. DWORD dwSize; //结构体大小
  6526. UINT ActionType; // 0:停止, 1:开始
  6527. UINT nUsed; // CPU占用率的1000倍
  6528. NET_TIME stuTime; // 事件发生时间
  6529. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6530. }ALARM_HIGH_CPU;
  6531. ///@brief 网络发送数据丢包事件报警
  6532. typedef struct __ALARM_LOST_NETPACKET
  6533. {
  6534. DWORD dwSize; //结构体大小
  6535. UINT ActionType; // 0:停止, 1:开始
  6536. UINT nChannelID; // 通道号,从1开始
  6537. UINT nStreamType; // 码流类型,0:主码流;1:辅码流1;2:辅码流2;3:辅码流3;4:抓图码流
  6538. char szRemoteIP[DH_MAX_IPADDR_LEN]; // 发送端IP地址
  6539. DWORD dwRemotePort; // 发送端的端口地址
  6540. NET_TIME stuTime; // 事件发生时间
  6541. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6542. }ALARM_LOST_NETPACKET;
  6543. ///@brief 内存占用率过高事件报警,暂定上限95%。
  6544. typedef struct __ALARM_HIGH_MEMORY
  6545. {
  6546. DWORD dwSize; //结构体大小
  6547. UINT ActionType; // 0:停止, 1:开始
  6548. UINT nUsed; // 内存占用率的1000倍
  6549. NET_TIME stuTime; // 事件发生时间
  6550. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6551. }ALARM_HIGH_MEMORY;
  6552. ///@brief 禁止名单车辆抓拍事件
  6553. typedef struct __DH_BLACKLIST_SNAP_INFO
  6554. {
  6555. DWORD dwSize;
  6556. char szPlateNumber[32]; // 车牌号
  6557. NET_TIME stuTime; // 事件发生时间
  6558. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6559. }DH_BLACKLIST_SNAP_INFO;
  6560. ///@brief 硬盘流量异常事件
  6561. typedef struct __ALARM_DISK_FLUX
  6562. {
  6563. DWORD dwSize;
  6564. DWORD dwAction; // 0-开始, 1-停止
  6565. DWORD dwDataFlux; // 当前数据流量, KB
  6566. NET_TIME stuTime; // 事件发生时间
  6567. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6568. } ALARM_DISK_FLUX;
  6569. ///@brief 网络流量异常事件
  6570. typedef struct __ALARM_NET_FLUX
  6571. {
  6572. DWORD dwSize;
  6573. DWORD dwAction; // 0-开始, 1-停止
  6574. DWORD dwDataFlux; // 当前数据流量, KB
  6575. NET_TIME stuTime; // 事件发生时间
  6576. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6577. } ALARM_NET_FLUX;
  6578. ///@brief 风扇转速异常事件
  6579. typedef struct __ALARM_FAN_SPEED
  6580. {
  6581. DWORD dwSize;
  6582. DWORD dwAction; // 0-开始, 1-停止
  6583. DWORD dwIndex; // 风扇序号
  6584. char szName[DH_MACHINE_NAME_NUM]; // 传感器名称
  6585. NET_TIME stuTime; // 事件发生时间
  6586. DWORD dwCurrent; // 当前转速
  6587. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6588. } ALARM_FAN_SPEED;
  6589. ///@brief 硬盘报警
  6590. typedef struct __ALARM_DISK_INFO
  6591. {
  6592. DWORD dwSize;
  6593. DWORD nChannel; // 硬盘通道号
  6594. DWORD nHDDNumber; // 磁盘列阵号, 0: 主柜,1: 扩展柜1, 2: 扩展柜2
  6595. DWORD nHDDState; // 硬盘状态, 0: Unknown, 1: Running, 2: Offline, 3: Warning, 4: Failed
  6596. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6597. } ALARM_DISK_INFO;
  6598. ///@brief 文件系统告警
  6599. typedef struct __ALARM_FILE_SYSTEM_INFO
  6600. {
  6601. DWORD dwSize;
  6602. char szMountDir[MAX_PATH]; // 文件系统挂载名
  6603. DWORD nState; // 文件系统状态, 0: Unkown, 1: Normal, 2: Error
  6604. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6605. } ALARM_FILE_SYSTEM_INFO;
  6606. ///@brief 远程外部报警信息
  6607. typedef struct __ALARM_REMOTE_ALARM_INFO
  6608. {
  6609. DWORD dwSize;
  6610. int nChannelID; // 通道号,从1开始
  6611. int nState; // 报警状态,0-报警复位,1-报警置位
  6612. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6613. }ALARM_REMOTE_ALARM_INFO;
  6614. ///@brief 智能报警事件
  6615. typedef struct __ALARM_IVS_INFO
  6616. {
  6617. DWORD dwSize;
  6618. NET_TIME stuTime; // 事件发生时间
  6619. int nChannelID; // 通道号,从0开始
  6620. char szType[MAX_PATH]; // 报警类型
  6621. int nState; // 报警状态,0-报警复位,1-报警置位, 2-脉冲式报警
  6622. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6623. }ALARM_IVS_INFO;
  6624. ///@brief 车载货重报警
  6625. typedef struct __ALARM_GOODS_WEIGHT_INFO
  6626. {
  6627. DWORD dwSize;
  6628. int nAction; // 0-开始, 1-停止
  6629. int nAlarmType; // 0-大于最大货重, 1-小于最小货重, 2-货重变化超过报警阈值
  6630. DWORD dwGoodsWeight; // 当前货重(kg)
  6631. DWORD dwSelfWeight; // 自重(kg)
  6632. DWORD dwTotalWeight; // 总重(kg)
  6633. DWORD dwStandardWeight; // 核定货重(kg)
  6634. DWORD dwWeightScale; // 货重比例
  6635. DWORD dwMaxGoodsWeight; // 最大货重(kg)
  6636. DWORD dwMinGoodsWeight; // 最小货重(kg)
  6637. DWORD dwAlarmWeight; // 报警阈值(kg)
  6638. int nWeightChange; // 采集时间间隔内货重变化(kg)
  6639. int nCheckTime; // 静止采集时间(s)
  6640. } ALARM_GOODS_WEIGHT_INFO;
  6641. ///@brief 车载货重信息上传
  6642. typedef struct __ALARM_GOODS_WEIGHT_UPLOAD_INFO
  6643. {
  6644. DWORD dwSize;
  6645. DWORD dwGoodsWeight; // 当前货重(kg)
  6646. DWORD dwSelfWeight; // 自重(kg)
  6647. DWORD dwTotalWeight; // 总重(kg)
  6648. DWORD dwStandardWeight; // 核定货重(kg)
  6649. DWORD dwWeightScale; // 货重比例
  6650. char szCardNO[DH_MAX_CARDINFO_LEN]; // 卡号
  6651. } ALARM_GOODS_WEIGHT_UPLOAD_INFO;
  6652. ///@brief 硬盘刻录满报警事件
  6653. typedef struct __ALARM_DISKBURNED_FULL_INFO
  6654. {
  6655. DWORD dwSize;
  6656. int nIndex; //光盘号
  6657. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6658. }ALARM_DISKBURNED_FULL_INFO;
  6659. ///@brief 存储容量不足事件
  6660. typedef struct tagALARM_STORAGE_LOW_SPACE_INFO
  6661. {
  6662. DWORD dwSize;
  6663. int nAction; // 0:开始 1:停止
  6664. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  6665. char szDevice[DH_STORAGE_NAME_LEN]; // 存储设备名称
  6666. char szGroup[DH_STORAGE_NAME_LEN]; // 存储组名称
  6667. INT64 nTotalSpace; // 总容量, byte
  6668. INT64 nFreeSpace; // 剩余容量, byte
  6669. int nPercent; // 已经使用的百分比
  6670. NET_TIME_EX stuTime; // 事件触发时间
  6671. NET_GPS_STATUS_INFO stGPSStatus; // GPS信息
  6672. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6673. } ALARM_STORAGE_LOW_SPACE_INFO;
  6674. ///@brief 存储错误类型
  6675. typedef enum __EM_STORAGE_ERROR
  6676. {
  6677. STORAGE_ERROR_NONE, // 无
  6678. STORAGE_ERROR_PATITION, // 分区错误
  6679. STORAGE_ERROR_INIT_FS, // 初始化文件系统错误
  6680. STORAGE_ERROR_READ_DATA, // 读数据失败
  6681. STORAGE_ERROR_WRITE_DATA, // 写数据失败
  6682. STORAGE_ERROR_RAID_FAILED, // RAID错误
  6683. STORAGE_ERROR_RAID_DEGRADED, // RAID降级
  6684. STORAGE_ERROR_ISCSI_FAILED, // iSCSI错误
  6685. STORAGE_ERROR_POOL_FAILED, // 存储池错误
  6686. STORAGE_ERROR_DISK_FAILED, // 硬盘错误
  6687. STORAGE_ERROR_FS_ABNORMAL, // 文件系统异常
  6688. STORAGE_ERROR_RECOGNITION_FAILED, // 存储硬盘识别错误
  6689. STORAGE_ERROR_CAPACITY_FAILED, // 容量异常错误
  6690. STORAGE_ERROR_PREDICT_DISK_FAILED, // 硬盘状态预测硬盘错误
  6691. STORAGE_ERROR_IO_ERROR, // I/O错误
  6692. STORAGE_ERROR_IO_HUNG, // I/O挂起
  6693. STORAGE_ERROR_IO_SLOW, // I/O慢
  6694. STORAGE_ERROR_CONTROL_OR_OTHER_ERROR, // 硬盘控制器或其他错误
  6695. } EM_STORAGE_ERROR;
  6696. ///@brief 存储错误报警
  6697. typedef struct __ALARM_STORAGE_FAILURE_EX
  6698. {
  6699. DWORD dwSize;
  6700. int nAction; // 0:开始 1:停止
  6701. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  6702. char szDevice[DH_STORAGE_NAME_LEN]; // 存储设备名称
  6703. char szGroup[DH_STORAGE_NAME_LEN]; // 存储组名称
  6704. char szPath[MAX_PATH]; // 路径
  6705. EM_STORAGE_ERROR emError; // 错误类型
  6706. int nPhysicNo; // 硬盘所在槽编码, 从1开始
  6707. NET_TIME_EX stuTime; // 事件发生的时间
  6708. NET_GPS_STATUS_INFO stGPSStatus; // GPS信息
  6709. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6710. } ALARM_STORAGE_FAILURE_EX;
  6711. ///@brief 录像异常报警
  6712. typedef struct __ALARM_RECORD_FAILED_INFO
  6713. {
  6714. DWORD dwSize;
  6715. int nAction; // 0:开始 1:停止
  6716. int nIndex; // 通道号
  6717. } ALARM_RECORD_FAILED_INFO;
  6718. ///@brief 存储崩溃事件
  6719. typedef struct __ALARM_STORAGE_BREAK_DOWN_INFO
  6720. {
  6721. DWORD dwSize;
  6722. int nAction; // 0:开始 1:停止
  6723. } ALARM_STORAGE_BREAK_DOWN_INFO;
  6724. ///@brief 热插拔动作类型
  6725. typedef enum tagEM_STORAGE_HOT_PLUG_ACTION
  6726. {
  6727. HOT_PLUG_ACTION_UNKNOW = 0 ,
  6728. HOT_PLUG_ACTION_ADD , //插入设备
  6729. HOT_PLUG_ACTION_REMOVE , //拔出设备
  6730. }EM_STORAGE_HOT_PLUG_ACTION;
  6731. ///@brief 存储热插拔事件(对应事件 DH_ALARM_STORAGE_HOT_PLUG)
  6732. typedef struct __ALARM_STORAGE_HOT_PLUG_INFO
  6733. {
  6734. int nAction; // 0:开始 1:停止
  6735. EM_STORAGE_HOT_PLUG_ACTION emHotPLugAction; // 热插拔动作类型
  6736. char szDevice[DH_STORAGE_NAME_LEN]; // 存储设备名称
  6737. char szMediaType[DH_COMMON_STRING_32]; // 介质类型
  6738. char szBusType[DH_COMMON_STRING_32]; // 总线类型
  6739. char szMountOn[DH_COMMON_STRING_128]; // 设备挂载点
  6740. // 如果非空,插入时表示设备已挂载
  6741. // 拔出时表示设备没有正常卸载
  6742. int nPhysicNo; // 物理编号,从1开始
  6743. int nLogicNo; // 逻辑编号
  6744. BYTE bReserved[256]; // 保留字节,留待扩展.
  6745. }ALARM_STORAGE_HOT_PLUG_INFO;
  6746. ///@brief 流量使用情况事件(对应事件DH_ALARM_FLOW_RATE)
  6747. typedef struct tagALARM_FLOW_RATE_INFO
  6748. {
  6749. int nAction; // 0:暂停, 1:开始, 2:停止
  6750. int nChannelID; // 通道号
  6751. UINT nFlowRate; // 传输的流量值(单位:MB)
  6752. BYTE bReserved[512]; // 保留字节
  6753. } ALARM_FLOW_RATE_INFO;
  6754. ///@brief 网络系统状态
  6755. typedef enum tagEM_NET_UPS_STATUS
  6756. {
  6757. EM_NET_UPS_SYS_SIGN=0, //系统温度值符号位. 1:表示温度负; 0:表示温度正
  6758. EM_NET_UPS_SYS_SHUTDOWN, //系统关机. 1:表示关机激活状态
  6759. EM_NET_UPS_SYS_TEST, //系统测试中. 1:表示测试中
  6760. EM_NET_UPS_SYS_TYPE, //UPS 类型. 1:表示后备机 ; 0:表示在线机
  6761. EM_NET_UPS_SYS_FAULT, //UPS 故障. 1:表示UPS内部故障 ; 0:正常
  6762. EM_NET_UPS_ELE_SUPPLY, //旁路/逆变状态. 1:AC供电 ; 0:电池供电
  6763. EM_NET_UPS_VOL_LOW, //电池电压低. 1:表示电池电压低 ; 0:表示电池正常
  6764. EM_NET_UPS_BYPASS_STATUS, //市电故障. 1:表示市电故障 ; 0:表示市电正常
  6765. EM_NET_UPS_MAX = 64, //
  6766. }EM_NET_UPS_STATUS;
  6767. ///@brief UPS串口信息
  6768. typedef struct tagNET_UPS_INFO
  6769. {
  6770. DWORD dwSize;
  6771. float fInputVoltage; //输入电压 具体参考 智能交通专用电源通信协议(V1.2)
  6772. float fInputAbnormalVoltage; //输入异常电压
  6773. float fOutputVoltage; //输出电压
  6774. float fOutputCurrent; //输出电流百分比,单位(%)
  6775. float fInputFrequency; //输入频率
  6776. float fVoltage; //电压
  6777. float fTemp; //温度
  6778. BYTE bStatusInfo[EM_NET_UPS_MAX]; //UPS状态集,参见NET_UPS_STATUS枚举
  6779. char szVersionInfo[DH_MAX_VERSION_STR]; //版本
  6780. }NET_UPS_INFO;
  6781. ///@brief UPS串口事件
  6782. typedef struct tagALARM_COMM_PORT_EVENT_INFO
  6783. {
  6784. DWORD dwSize;
  6785. UINT nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  6786. NET_UPS_INFO stUPSInfo; // UPS串口信息
  6787. }ALARM_COMM_PORT_EVENT_INFO;
  6788. ///@brief 视频输入通道失效事件(例:配置的视频输入通道码流,超出设备处理能力)DH_ALARM_VIDEO_ININVALID
  6789. typedef struct __ALARM_VIDEO_ININVALID_INFO
  6790. {
  6791. DWORD dwSize; // 结构体大小
  6792. int nChannelID; // 通道号,从0开始
  6793. } ALARM_VIDEO_ININVALID_INFO;
  6794. ///@brief 存储组不存在事件信息
  6795. typedef struct tagALARM_STORAGE_NOT_EXIST_INFO
  6796. {
  6797. DWORD dwSize;
  6798. int nAction; // 0:开始 1:停止
  6799. char szGroup[DH_STORAGE_NAME_LEN]; // 在录像或抓图存储点中设置但不存在的组
  6800. NET_TIME stuTime; // 事件触发时间
  6801. NET_GPS_STATUS_INFO stGPSStatus; // GPS信息
  6802. }ALARM_STORAGE_NOT_EXIST_INFO;
  6803. ///@brief 网络故障事件类型
  6804. typedef enum __EM_NETABORT_EVENT_TYPE
  6805. {
  6806. EM_NETABORT_EVENT_TYPE_WIRE = 0, // 有线网络故障事件
  6807. EM_NETABORT_EVENT_TYPE_WIRELESS, // 无线网络故障事件
  6808. EM_NETABORT_EVENT_TYPE_3G, // 3G网络故障事件
  6809. }EM_NETABORT_EVENT_TYPE;
  6810. ///@brief 网络故障事件
  6811. typedef struct tagALARM_NETABORT_INFO
  6812. {
  6813. DWORD dwSize;
  6814. int nAction; // 0:开始 1:停止
  6815. EM_NETABORT_EVENT_TYPE emNetAbortType; // 事件类型
  6816. NET_TIME stuTime; // 事件触发时间
  6817. char szInterface[DH_MAX_ETH_NAME]; //冲突网卡名
  6818. }ALARM_NETABORT_INFO;
  6819. ///@brief IP冲突事件
  6820. typedef struct tagALARM_IP_CONFLICT_INFO
  6821. {
  6822. DWORD dwSize;
  6823. int nAction; // 0:开始 1:停止
  6824. NET_TIME stuTime; // 事件触发时间
  6825. char szInterface[8]; // IP冲突网卡名
  6826. int nMacNum; // 主机Mac地址个数
  6827. char szMac[8][18]; // 与Interface网卡IP地址冲突的主机Mac地址列表
  6828. }ALARM_IP_CONFLICT_INFO;
  6829. ///@brief MAC冲突事件
  6830. typedef struct tagALARM_MAC_CONFLICT_INFO
  6831. {
  6832. DWORD dwSize;
  6833. int nAction; // 0:开始 1:停止
  6834. NET_TIME stuTime; // 事件触发时间
  6835. char szInterface[8]; // IP冲突网卡名
  6836. }ALARM_MAC_CONFLICT_INFO;
  6837. ///@brief 电源类型
  6838. typedef enum __EM_POWER_TYPE
  6839. {
  6840. EM_POWER_TYPE_MAIN = 0, // 主电源
  6841. EM_POWER_TYPE_BACKUP, // 备用电源
  6842. }EM_POWER_TYPE;
  6843. ///@brief 电源故障事件类型
  6844. typedef enum __EM_POWERFAULT_EVENT_TYPE
  6845. {
  6846. EM_POWERFAULT_EVENT_UNKNOWN = -1, // 未知
  6847. EM_POWERFAULT_EVENT_LOST = 0, // 掉电、电池不在位
  6848. EM_POWERFAULT_EVENT_LOST_ADAPTER, // 适配器不在位
  6849. EM_POWERFAULT_EVENT_LOW_BATTERY, // 电池欠压
  6850. EM_POWERFAULT_EVENT_LOW_ADAPTER, // 适配器欠压
  6851. EM_POWERFAULT_EVENT_LOW_ADAPTER_LOST_BATTERY, // 适配器欠压,电池掉电
  6852. EM_POWERFAULT_EVENT_LESS_ADAPTER_LOW_BATTERY, // 适配器低压供电,电池欠压
  6853. EM_POWERFAULT_EVENT_LESS_ADAPTER_LOST_BATTERY, // 适配器低压供电,电池掉电
  6854. EM_POWERFAULT_EVENT_LOST_ADAPTER_LOST_BATTERY, // 适配器与电池都掉电
  6855. EM_POWERFAULT_EVENT_LOW_ADAPTER_LOW_BATTERY, // 适配器与电池都欠压
  6856. }EM_POWERFAULT_EVENT_TYPE;
  6857. ///@brief 电源故障事件
  6858. typedef struct tagALARM_POWERFAULT_INFO
  6859. {
  6860. DWORD dwSize;
  6861. EM_POWER_TYPE emPowerType; // 电源类型
  6862. EM_POWERFAULT_EVENT_TYPE emPowerFaultEvent; // 电源故障事件
  6863. NET_TIME stuTime; // 报警事件发生的时间
  6864. int nAction; // 0:开始 1:停止
  6865. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  6866. }ALARM_POWERFAULT_INFO;
  6867. ///@brief 键盘防拆事件
  6868. typedef struct tagALARM_UPLOAD_KEYPAD_TAMPER_INFO
  6869. {
  6870. DWORD dwSize;
  6871. NET_TIME stuTime; // 报警事件发生的时间
  6872. int nAction; // 0:开始 1:停止
  6873. }ALARM_UPLOAD_KEYPAD_TAMPER_INFO;
  6874. ///@brief 键盘输入进入/退出编程模式指令
  6875. typedef struct tagALARM_UPLOAD_PROGRAM_MODE_INFO
  6876. {
  6877. DWORD dwSize;
  6878. NET_TIME stuTime; // 报警事件发生的时间
  6879. int nAction; // 0:开始 1:停止
  6880. }ALARM_UPLOAD_PROGRAM_MODE_INFO;
  6881. ///@brief PSTN定期测试事件
  6882. typedef struct tagALARM_UPLOAD_PSTN_PERIODIC_TEST_INFO
  6883. {
  6884. DWORD dwSize;
  6885. NET_TIME stuTime; // 报警事件发生的时间
  6886. int nAction; // 0:脉冲 1:开始 2:停止
  6887. }ALARM_UPLOAD_PSTN_PERIODIC_TEST_INFO;
  6888. ///@brief 传感器感应方式枚举类型
  6889. typedef enum tagNET_SENSE_METHOD
  6890. {
  6891. NET_SENSE_UNKNOWN = -1, //未知类型
  6892. NET_SENSE_DOOR=0, //门磁
  6893. NET_SENSE_PASSIVEINFRA, //被动红外
  6894. NET_SENSE_GAS, //气感
  6895. NET_SENSE_SMOKING, //烟感
  6896. NET_SENSE_WATER, //水感
  6897. NET_SENSE_ACTIVEFRA, //主动红外
  6898. NET_SENSE_GLASS, //玻璃破碎
  6899. NET_SENSE_EMERGENCYSWITCH, //紧急开关
  6900. NET_SENSE_SHOCK, //震动
  6901. NET_SENSE_DOUBLEMETHOD, //双鉴(红外+微波)
  6902. NET_SENSE_THREEMETHOD, //三技术
  6903. NET_SENSE_TEMP, //温度
  6904. NET_SENSE_HUMIDITY, //湿度
  6905. NET_SENSE_WIND, //风速
  6906. NET_SENSE_CALLBUTTON, //呼叫按钮
  6907. NET_SENSE_GASPRESSURE, //气体压力
  6908. NET_SENSE_GASCONCENTRATION, //燃气浓度
  6909. NET_SENSE_GASFLOW, //气体流量
  6910. NET_SENSE_OTHER, //其他
  6911. NET_SENSE_OIL, // 油量检测,汽油、柴油等车辆用油检测
  6912. NET_SENSE_MILEAGE, // 里程数检测
  6913. NET_SENSE_URGENCYBUTTON, //紧急按钮
  6914. NET_SENSE_STEAL, //盗窃
  6915. NET_SENSE_PERIMETER, //周界
  6916. NET_SENSE_PREVENTREMOVE, //防拆
  6917. NET_SENSE_DOORBELL, //门铃
  6918. NET_SENSE_ALTERVOLT, //交流电压传感器
  6919. NET_SENSE_DIRECTVOLT, //直流电压传感器
  6920. NET_SENSE_ALTERCUR, //交流电流传感器
  6921. NET_SENSE_DIRECTCUR, //直流电流传感器
  6922. NET_SENSE_RSUGENERAL, //通用模拟量 4~20mA或0~5V
  6923. NET_SENSE_RSUDOOR, //门禁感应
  6924. NET_SENSE_RSUPOWEROFF, //断电感应
  6925. NET_SENSE_TEMP1500 , //1500温度传感器
  6926. NET_SENSE_TEMPDS18B20 , //DS18B20温度传感器
  6927. NET_SENSE_HUMIDITY1500, //1500湿度传感器
  6928. NET_SENSE_INFRARED, //红外报警
  6929. NET_SENSE_FIREALARM, //火警
  6930. NET_SENSE_CO2, //CO2浓度检测,典型值:0~5000ppm
  6931. NET_SNESE_SOUND, //噪音检测,典型值:30~130dB
  6932. NET_SENSE_PM25, //PM2.5检测,典型值:0~1000ug/m3
  6933. NET_SENSE_SF6, //SF6浓度检测,典型值:0~3000ppm
  6934. NET_SENSE_O3, //臭氧浓度检测,典型值:0~100ppm
  6935. NET_SENSE_AMBIENTLIGHT, //环境光照检测,典型值:0~20000Lux
  6936. NET_SENSE_SIGNINBUTTON, //签入按钮
  6937. NET_SENSE_LIQUIDLEVEL, //液位
  6938. NET_SENSE_DISTANCE, //测距
  6939. NET_SENSE_WATERFLOW, //水流量
  6940. NET_SENSE_KEYPRESSS, //按键传感器
  6941. NET_SENSE_TEMP_AND_HUMI_SM7820B, //SM7820B温湿度传感器
  6942. NET_SENSE_WATT_HUR_DDSU666, //DSU666单相电子式电能表D
  6943. NET_SENSE_CURTAIN_SENSOR, // 幕帘传感器
  6944. NET_SENSE_CASEPREVENTREMOVE, //机壳防拆
  6945. NET_SENSE_NUM //枚举类型总数
  6946. }NET_SENSE_METHOD;
  6947. ///@brief 报警源设备的类型
  6948. typedef enum tagEM_PROFILE_ALARM_TRANSMIT_DEVSRC_TYPE
  6949. {
  6950. EM_PROFILE_ALARM_TRANSMIT_DEVSRC_TYPE_UNKNOWN, // 未知
  6951. EM_PROFILE_ALARM_TRANSMIT_DEVSRC_TYPE_DIGIT, // 数字
  6952. EM_PROFILE_ALARM_TRANSMIT_DEVSRC_TYPE_ANALOG, // 模拟
  6953. EM_PROFILE_ALARM_TRANSMIT_DEVSRC_TYPE_SMARTLOCK, // 智能锁
  6954. }EM_PROFILE_ALARM_TRANSMIT_DEVSRC_TYPE;
  6955. ///@brief 报警类型
  6956. typedef enum tagEM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE
  6957. {
  6958. EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE_UNKNOWN, // 未知
  6959. EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE_PREVENTREMOVE, // "PreventRemove" 防拆
  6960. EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE_LOWERPOWER, // "LowerPower" 低电压
  6961. EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE_KEY, // "Key" 钥匙
  6962. EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE_DURESS, // "Duress" 胁迫
  6963. EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE_BATTERY_LOST, // "BatteryLost":电池不在位
  6964. EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE_PSTNB_BREAKLINE, // "PSTNBreakLine":电话线断开
  6965. EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE_EMERGENCY_HELP, // "EmergencyHelp":紧急求助
  6966. EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE_ALARMIN, // "AlarmIn":报警输入
  6967. }EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE;
  6968. ///@brief 低电压附带信息
  6969. typedef struct tagNET_PROFILE_ALARM_TRANSMIT_LOWERPOWER
  6970. {
  6971. int nPercent; // 当前电量
  6972. char szReserved[64]; // 预留字节
  6973. }NET_PROFILE_ALARM_TRANSMIT_LOWERPOWER;
  6974. ///@brief 报警输入附带信息
  6975. typedef struct tagNET_PROFILE_ALARM_TRANSMIT_ALARMIN
  6976. {
  6977. int nChannel; // 报警输入通道号
  6978. char szReserved[64]; // 预留字节
  6979. }NET_PROFILE_ALARM_TRANSMIT_ALARMIN;
  6980. ///@brief 对接国内乐橙,paas库需要上报的云附带信息
  6981. typedef struct tagNET_PROFILE_ALARM_TRANSMIT_CLOUDINFO
  6982. {
  6983. int nVideoLinkChannel; // 报警输入通道号
  6984. char szReserved[64]; // 预留字节
  6985. }NET_PROFILE_ALARM_TRANSMIT_CLOUDINFO;
  6986. ///@brief AlarmType字段中指定报警类型的附带信息
  6987. typedef struct tagNET_PROFILE_ALARM_TRANSMIT_ALARM_INFO
  6988. {
  6989. NET_PROFILE_ALARM_TRANSMIT_LOWERPOWER stuLowerPower; // 低电压附带信息
  6990. NET_PROFILE_ALARM_TRANSMIT_ALARMIN stuAlarmIn; // 报警输入附带信息
  6991. NET_PROFILE_ALARM_TRANSMIT_CLOUDINFO stuCloudInfo; // 对接国内乐橙,paas库需要上报的云附带信息
  6992. char szReserved[64]; // 预留字节
  6993. }NET_PROFILE_ALARM_TRANSMIT_ALARM_INFO;
  6994. ///@brief 报警传输事件
  6995. typedef struct tagALARM_UPLOAD_PROFILE_ALARM_TRANSMIT_INFO
  6996. {
  6997. DWORD dwSize; // 结构体大小
  6998. int nAction; // 0:脉冲 1:开始 2:停止
  6999. NET_TIME_EX stuTime; // 报警事件发生的时间
  7000. UINT nRealUTC; // 标准UTC时间(不带时区夏令时偏差)
  7001. char szUserID[32]; // 报警用户,室内机为模拟机时,用于区分不同的模拟机
  7002. NET_SENSE_METHOD emSenseMethod; // 传感器类型
  7003. EM_PROFILE_ALARM_TRANSMIT_DEVSRC_TYPE emDevSrcType; // 报警源设备的类型
  7004. EM_PROFILE_ALARM_TRANSMIT_ALARM_TYPE emAlarmType; // 报警类型
  7005. NET_PROFILE_ALARM_TRANSMIT_ALARM_INFO stuAlarmInfo; // AlarmType字段中指定报警类型的附带信息
  7006. char szSN[32]; // 设备编号
  7007. char szSnapURL[128]; // 抓拍照片存储地址
  7008. }ALARM_UPLOAD_PROFILE_ALARM_TRANSMIT_INFO;
  7009. ///@brief 用户登录锁定事件
  7010. typedef struct tagALARM_UPLOAD_USER_LOCK_INFO
  7011. {
  7012. DWORD dwSize; // 结构体大小
  7013. int nAction; //1:开始 该事件为脉冲事件,目前SDK只上报开始事件给客户
  7014. NET_TIME_EX stuTime; // 事件发生的时间
  7015. char szDeviceIP[40]; // 设备IP地址
  7016. char szDeviceMac[24]; // 设备Mac地址
  7017. char szUserName[128]; // 用户名
  7018. char szGroup[128]; // 组名
  7019. char szIllegalLoginIP[40]; // 非法登录的IP
  7020. }ALARM_UPLOAD_USER_LOCK_INFO;
  7021. ///@brief 设备类型
  7022. typedef enum tagEM_ALARM_CHASSISINTRUDED_DEV_TYPE
  7023. {
  7024. EM_ALARM_CHASSISINTRUDED_DEV_UNKNOWN, // 未知
  7025. EM_ALARM_CHASSISINTRUDED_DEV_CONTROLLER, // 控制器(如:报警主机)
  7026. EM_ALARM_CHASSISINTRUDED_DEV_RS485EXPANSIONMODULE, // RS485扩展报警输入/输出模块
  7027. EM_ALARM_CHASSISINTRUDED_DEV_MBUSEXPANSIONMODULE, // MBUS扩展报警输入/输出模块
  7028. EM_ALARM_CHASSISINTRUDED_DEV_KEYBOARD, // 键盘
  7029. EM_ALARM_CHASSISINTRUDED_DEV_SIREN, // 警号
  7030. }EM_ALARM_CHASSISINTRUDED_DEV_TYPE;
  7031. ///@brief 防拆报警事件
  7032. typedef struct tagALARM_CHASSISINTRUDED_INFO
  7033. {
  7034. DWORD dwSize;
  7035. int nAction; // 0:开始 1:停止
  7036. NET_TIME stuTime; // 报警事件发生的时间
  7037. int nChannelID; // 通道号
  7038. char szReaderID[DH_COMMON_STRING_32]; // 读卡器ID
  7039. UINT nEventID; // 事件ID
  7040. char szSN[32]; // 无线设备序列号
  7041. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  7042. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  7043. EM_ALARM_CHASSISINTRUDED_DEV_TYPE emDevType; // 设备类型
  7044. }ALARM_CHASSISINTRUDED_INFO;
  7045. ///@brief 扩展模块报警事件
  7046. typedef struct tagALARM_ALARMEXTENDED_INFO
  7047. {
  7048. DWORD dwSize;
  7049. int nChannelID; // 通道号
  7050. int nAction; // 0:开始 1:停止
  7051. NET_TIME stuTime; // 报警事件发生的时间
  7052. }ALARM_ALARMEXTENDED_INFO;
  7053. ///@brief 对讲发起方
  7054. typedef enum __EM_TALKING_CALLER
  7055. {
  7056. EM_TALKING_CALLER_UNKNOWN = 0, // 未知发起方
  7057. EM_TALKING_CALLER_PLATFORM, // 对讲发起方为平台
  7058. EM_TALKING_CALLER_LEADER, // 领导办公室
  7059. EM_TALKING_CALLER_SECURITY, // 保安室
  7060. }EM_TALKING_CALLER;
  7061. ///@brief Invite事件远程设备协议
  7062. typedef enum tagTALKINGINVITE_REMOTEDEVICE_PROTOCOL
  7063. {
  7064. EM_TALKINGINVITE_REMOTEDEVICE_PROTOCOL_UNKNOWN = 0,
  7065. EM_TALKINGINVITE_REMOTEDEVICE_PROTOCOL_HIKVISION
  7066. }EM_TALKINGINVITE_REMOTEDEVICE_PROTOCOL;
  7067. #define MAX_REMOTEDEVICEINFO_IPADDR_LEN 128 // 远程设备IP地址最大长度
  7068. #define MAX_REMOTEDEVICEINFO_USERNAME_LEN 128 // 远程设备用户名最大长度
  7069. #define MAX_REMOTEDEVICEINFO_USERPSW_LENGTH 128 // 远程设备密码最大长度
  7070. ///@brief Invite事件远端设备信息
  7071. typedef struct tagTALKINGINVITE_REMOTEDEVICEINFO
  7072. {
  7073. char szIP[MAX_REMOTEDEVICEINFO_IPADDR_LEN]; // 设备IP
  7074. int nPort; // 端口
  7075. EM_TALKINGINVITE_REMOTEDEVICE_PROTOCOL emProtocol; // 协议类型
  7076. char szUser[MAX_REMOTEDEVICEINFO_USERNAME_LEN]; // 用户名
  7077. char szPassword[MAX_REMOTEDEVICEINFO_USERPSW_LENGTH];// 密码
  7078. char szReverse[1024]; // 保留字段
  7079. }TALKINGINVITE_REMOTEDEVICEINFO;
  7080. ///@brief 报警事件类型DH_ALARM_TALKING_INVITE(设备请求对方发起对讲事件)对应的数据描述信息
  7081. typedef struct tagALARM_TALKING_INVITE_INFO
  7082. {
  7083. DWORD dwSize;
  7084. EM_TALKING_CALLER emCaller; // 设备希望的对讲发起方
  7085. NET_TIME stuTime; // 事件触发时间
  7086. char szCallID[DH_COMMON_STRING_64]; // 呼叫惟一标识符
  7087. int nLevel; // 表示所呼叫设备所处层级
  7088. TALKINGINVITE_REMOTEDEVICEINFO stuRemoteDeviceInfo; // 远端设备信息
  7089. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  7090. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  7091. }ALARM_TALKING_INVITE_INFO;
  7092. ///@brief 报警事件类型DH_ALARM_TALKING_IGNORE_INVITE(设备取消对讲请求事件)对应的数据描述信息
  7093. typedef struct tagALARM_TALKING_IGNORE_INVITE_INFO
  7094. {
  7095. DWORD dwSize;
  7096. NET_TIME_EX UTC; // 事件触发时间
  7097. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 UTC,否则用 stuTime 字段
  7098. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  7099. } ALARM_TALKING_IGNORE_INVITE_INFO;
  7100. ///@brief 报警事件类型DH_ALARM_TALKING_HANGUP对应的数据描述信息
  7101. typedef struct tagALARM_TALKING_HANGUP_INFO
  7102. {
  7103. DWORD dwSize;
  7104. NET_TIME stuTime; // 事件触发时间
  7105. char szRoomNo[128]; // 挂断的房间号
  7106. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  7107. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  7108. char szCaller[32]; // 语音挂断发起方
  7109. }ALARM_TALKING_HANGUP_INFO;
  7110. ///@brief 报警事件类型DH_ALARM_TALKING_PHONE_CALLING对应的数据描述信息
  7111. typedef struct tagNET_ALARM_TALKING_PHONE_CALLING_INFO
  7112. {
  7113. DWORD dwSize;
  7114. int nChannelID; // 通道号
  7115. int nAction; // 1 开始; 2 停止
  7116. NET_TIME_EX stuUTC; // 事件发生的时间
  7117. NET_EVENT_INFO_EXTEND stuEventinfo; // 事件统一新增拓展结构体
  7118. char szNetcardName[16]; // 对应蜂窝网卡名称
  7119. char szPhonenum[32]; // 来电电话号码
  7120. }NET_ALARM_TALKING_PHONE_CALLING_INFO;
  7121. ///@brief 报警事件类型DH_ALARM_NO_PASSAGE 对应的数据描述信息
  7122. typedef struct tagNET_ALARM_NO_PASSAGE_INFO
  7123. {
  7124. DWORD dwSize; // 结构体大小
  7125. int nChannelID; // 通道号
  7126. int nAction; // 1 开始; 2 停止
  7127. NET_TIME_EX stuUTC; // 事件发生的时间
  7128. NET_EVENT_INFO_EXTEND stuEventinfo; // 事件统一新增拓展结构体
  7129. }NET_ALARM_NO_PASSAGE_INFO;
  7130. ///@brief 图片类型
  7131. typedef enum tagEM_USERMANAGER_IMAGE_TYPE
  7132. {
  7133. EM_USERMANAGER_IMAGE_TYPE_UNKNOWN = -1, // 未知
  7134. EM_USERMANAGER_IMAGE_TYPE_LOCAL, // 本地目标库图
  7135. EM_USERMANAGER_IMAGE_TYPE_SCENE, // 拍摄场景图
  7136. EM_USERMANAGER_IMAGE_TYPE_FACE, // 目标抠图
  7137. EM_USERMANAGER_IMAGE_TYPE_INFRARED, // 红外抓图
  7138. EM_USERMANAGER_IMAGE_TYPE_ENTOURAGE, // 陪同人员抓图
  7139. EM_USERMANAGER_IMAGE_TYPE_THERMOGRAM, // 热图
  7140. } EM_USERMANAGER_IMAGE_TYPE;
  7141. ///@brief 用户信息图片信息
  7142. typedef struct tagNET_USERMANAGER_IMAGE_INFO
  7143. {
  7144. unsigned int nOffset; // 在二进制数据块中的偏移,单位:字节
  7145. unsigned int nLength; // 图片大小,单位:字节
  7146. unsigned short nWidth; // 图片宽度
  7147. unsigned short nHeight; // 图片高度
  7148. EM_USERMANAGER_IMAGE_TYPE emImageType; // 图片类型
  7149. char szReserved[64]; // 保留字节
  7150. } NET_USERMANAGER_IMAGE_INFO;
  7151. ///@brief 报警事件类型DH_ALARM_HOSPITAL_TALK_CONTROL 对应的数据描述信息
  7152. typedef struct tagNET_ALARM_HOSPITAL_TALK_CONTROL_INFO
  7153. {
  7154. DWORD dwSize; // 结构体大小
  7155. int nChannelID; // 通道号
  7156. int nAction; // 0:脉冲,1:开始, 2:停止
  7157. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  7158. NET_TIME_EX stuUTC; // 事件发生的时间
  7159. char szCitizenIDNo[20]; // 证件卡号
  7160. char szCitizenName[128]; // 姓名。证件、社保卡上的正式公民姓名
  7161. char szPatientIdentity[20]; // 病人证件
  7162. UINT nMode; // 谈话模式 0:病人谈话,1:家属谈话
  7163. UINT nStatus; // 上报状态类型 0: 开始,1: 结束,2: 暂停,3: 继续
  7164. UINT nImageInfoNum; // 实际图片信息个数
  7165. NET_USERMANAGER_IMAGE_INFO stuImageInfo[6]; // 图片信息数组
  7166. UINT nCardType; // 刷卡类型 1:证件,2:社保卡
  7167. }NET_ALARM_HOSPITAL_TALK_CONTROL_INFO;
  7168. ///@brief 报警事件类型DH_ALARM_BLUETOOTH_EVENT 对应的数据描述信息
  7169. typedef struct tagNET_ALARM_BLUETOOTH_INFO
  7170. {
  7171. int nChannelID; // 通道号
  7172. int nAction; // 0:脉冲,1:开始, 2:停止
  7173. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  7174. NET_TIME_EX stuUTC; // 事件发生的时间
  7175. int nStatus; // 在线状态 -1:未知 0:在线 其他:不在线
  7176. int nPower; // 电量
  7177. int nResult; // 开门结果 -1:未知 0:成功 其他:失败
  7178. BYTE byReserved[1024]; // 保留字节
  7179. }NET_ALARM_BLUETOOTH_INFO;
  7180. ///@brief 敏感词报警事件DH_ALARM_SENSITIVE_WORDS 对应的数据描述信息
  7181. typedef struct tagNET_ALARM_SENSITIVE_WORDS_INFO
  7182. {
  7183. int nChannelID; // 通道号
  7184. int nAction; // 0:脉冲,1:开始, 2:停止
  7185. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  7186. NET_TIME_EX stuUTC; // 事件发生的时间
  7187. UINT nAlarmType; // 触发报警敏感词
  7188. BYTE byReserved[1024]; // 保留字节
  7189. }NET_ALARM_SENSITIVE_WORDS_INFO;
  7190. ///@brief 硬盘数量变化类型
  7191. typedef enum tagEM_DISK_NUMBER_CHANGE_TYPE
  7192. {
  7193. EM_DISK_CHANGE_TYPE_UNKNOW, //未知
  7194. EM_DISK_CHANGE_TYPE_ADD, //增加
  7195. EM_DISK_CHANGE_TYPE_DEL, //删除
  7196. }EM_DISK_NUMBER_CHANGE_TYPE;
  7197. ///@brief 硬盘数量变化报警事件DH_ALARM_DISK_NUMBER_CHANGE 对应的数据描述信息
  7198. typedef struct tagNET_ALARM_DISK_NUMBER_CHANGE_INFO
  7199. {
  7200. int nChannelID; // 通道号
  7201. int nAction; // 0:脉冲,1:开始, 2:停止
  7202. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  7203. NET_TIME_EX stuUTC; // 事件发生的时间
  7204. UINT nPreDiskNumber; // 事件发生前硬盘数量
  7205. UINT nCurDiskNumber; // 当前硬盘数量
  7206. EM_DISK_NUMBER_CHANGE_TYPE emType; // 硬盘数量变化类型
  7207. BYTE byReserved[1020]; // 保留字节
  7208. }NET_ALARM_DISK_NUMBER_CHANGE_INFO;
  7209. ///@brief 岗亭更新事件状态
  7210. typedef enum tagEM_GUARD_EVENT_STATE
  7211. {
  7212. EM_GUARD_EVENT_STATE_UNKNOWN = 0, // 未知状态
  7213. EM_GUARD_EVNET_STATE_ONGUARD, // 到岗
  7214. EM_GUARD_EVENT_STATE_OFFGUARD // 离岗
  7215. }EM_GUARD_EVENT_STATE;
  7216. ///@brief 岗亭信息更新事件,DH_ALARM_GUARD_INFO_UNPDATE对用的数据描述信息
  7217. typedef struct tagALARM_GUARD_UPDATE_INFO
  7218. {
  7219. DWORD dwSize;
  7220. EM_GUARD_EVENT_STATE emEventState; // 岗亭更新事件状态
  7221. int nIDCount; // 触发检测事件的人员ID个数
  7222. int nIDArray[DH_MAX_GUARD_DETECT_ID_COUNT];// 人员ID数组
  7223. NET_TIME stuTime; // 事件触发时间
  7224. }ALARM_GUARD_UPDATE_INFO;
  7225. ///@brief 岗亭检测事件,DH_ALARM_GUARD_DETECT对应的数据描述信息
  7226. typedef struct tagALARM_GUARD_DETECT_INFO
  7227. {
  7228. DWORD dwSize;
  7229. int nAction; // 0:开始 1:停止
  7230. int nIndex; // 岗亭检测配置下标
  7231. int nIDCount; // 触发检测事件的人员ID个数
  7232. int nIDArray[DH_MAX_GUARD_DETECT_ID_COUNT]; // 人员ID数组
  7233. NET_TIME stuTime; // 事件触发时间
  7234. }ALARM_GUARD_DETECT_INFO;
  7235. ///@brief 银行卡插卡事件DH_ALARM_BANKCARDINSERT对应的数据描述信息
  7236. typedef struct tagALARM_BANKCARDINSERT_INFO
  7237. {
  7238. DWORD dwSize;
  7239. int nAction; // -1:未知 0:开始 1:停止
  7240. }ALARM_BANKCARDINSERT_INFO;
  7241. ///@brief 事件触发录像,stop时的保存策略
  7242. typedef enum tagNET_RECORD_SAVEFLAG
  7243. {
  7244. NET_RECORD_SAVEFLAG_UNKNOWN = 0, //未知类型
  7245. NET_RECORD_SAVEFLAG_MARK, //保存录像、并加锁
  7246. NET_RECORD_SAVEFLAG_SAVE, //仅保存录像
  7247. }NET_RECORD_SAVEFLAG;
  7248. ///@brief 卡号录像事件 DH_ALARM_CARD_RECORD 对应的数据描述信息
  7249. typedef struct tagALARM_CARD_RECORD_INFO
  7250. {
  7251. DWORD dwSize;
  7252. int nAction; // -1:未知 0:开始 1:停止
  7253. int nChannelID; // 通道号,从0开始
  7254. unsigned int nFieldCount; // 域数量
  7255. char szFields[MAX_CARD_RECORD_FIELD_NUM][DH_COMMON_STRING_256]; // 域信息
  7256. NET_RECORD_SAVEFLAG emRecordSaveFlag; // 事件触发录像,stop时的保存策略,详见枚举 NET_RECORD_SAVEFLAG
  7257. }ALARM_CARD_RECORD_INFO;
  7258. ///@brief 网络报警事件 DH_ALARM_CARD_RECORD 对应的数据描述信息
  7259. typedef struct tagALARM_NET_INFO
  7260. {
  7261. DWORD dwSize;
  7262. int nAction; // -1:未知 0:开始 1:停止
  7263. int nChannelID; // 通道号,从0开始
  7264. } ALARM_NET_INFO;
  7265. ///@brief 动检事件对应 DH_ALARM_VIDEOMOTION_EVENT
  7266. typedef struct tagALARM_VIDEOMOTION_EVENT_INFO
  7267. {
  7268. DWORD dwSize;
  7269. int nAction; // -1:未知 0:开始 1:停止
  7270. int nChannelID; // 通道号,从0开始
  7271. }ALARM_VIDEOMOTION_EVENT_INFO;
  7272. ///@brief WideViewRegions事件 对应 DH_ALARM_WIDE_VIEW_REGION_EVENT
  7273. typedef struct tagALARM_WIDE_VIEW_REGION_EVENT_INFO
  7274. {
  7275. DWORD dwSize;
  7276. int nAction; // -1:未知 0:脉冲(Pusle)
  7277. }ALARM_WIDE_VIEW_REGION_EVENT_INFO;
  7278. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_NOTIFY_EVNENT 命令参数(向设备发送事件)
  7279. typedef struct tagNET_NOTIFY_EVENT_DATA
  7280. {
  7281. DWORD dwSize;
  7282. LONG lCommand; // 事件类型
  7283. void* pEventData; // 事件内容,与lCommand对应的结构体指针
  7284. }NET_NOTIFY_EVENT_DATA;
  7285. ///@brief 传感器感应方式对应单位的枚举类型
  7286. typedef enum tagEM_SENSE_METHOD_UNIT
  7287. {
  7288. EM_SENSE_UNIT_UNKOWN =-1, // 未知类型
  7289. EM_SENSE_TEMP_CENTIGRADE = 0, // 温度单位: Centigrade
  7290. EM_SENSE_TEMP_FAHRENHEIT, // 温度单位:Fahrenheit
  7291. EM_SENSE_WIND_SPEED, // 风速单位:m/s
  7292. EM_SENSE_HUMIDITY_PERCENT, // 湿度单位: Percent
  7293. }EM_SENSE_METHOD_UNIT;
  7294. ///@brief 布撤防模式
  7295. typedef enum tagNET_ALARM_MODE
  7296. {
  7297. NET_ALARM_MODE_UNKNOWN = -1, // 未知
  7298. NET_ALARM_MODE_DISARMING, // 撤防
  7299. NET_ALARM_MODE_ARMING, // 布防
  7300. NET_ALARM_MODE_FORCEON, // 强制布防
  7301. NET_ALARM_MODE_PARTARMING, // 部分布防
  7302. }NET_ALARM_MODE;
  7303. ///@brief 布撤防场景模式
  7304. typedef enum tagNET_SCENE_MODE
  7305. {
  7306. NET_SCENE_MODE_UNKNOWN, // 未知场景
  7307. NET_SCENE_MODE_OUTDOOR, // 外出模式
  7308. NET_SCENE_MODE_INDOOR, // 室内模式
  7309. NET_SCENE_MODE_WHOLE, // 全局模式
  7310. NET_SCENE_MODE_RIGHTNOW, // 立即模式
  7311. NET_SCENE_MODE_SLEEPING, // 就寝模式
  7312. NET_SCENE_MODE_CUSTOM, // 自定义模式
  7313. }NET_SCENE_MODE;
  7314. ///@brief 触发方式
  7315. typedef enum tagNET_EM_TRIGGER_MODE
  7316. {
  7317. NET_EM_TRIGGER_MODE_UNKNOWN = 0,
  7318. NET_EM_TRIGGER_MODE_NET, // 网络用户(平台或Web)
  7319. NET_EM_TRIGGER_MODE_KEYBOARD, // 键盘
  7320. NET_EM_TRIGGER_MODE_REMOTECONTROL, // 遥控器
  7321. }NET_EM_TRIGGER_MODE;
  7322. ///@brief 布撤防状态变化事件的信息
  7323. typedef struct tagALARM_ARMMODE_CHANGE_INFO
  7324. {
  7325. DWORD dwSize;
  7326. NET_TIME stuTime; // 报警事件发生的时间
  7327. NET_ALARM_MODE bArm; // 变化后的状态
  7328. NET_SCENE_MODE emSceneMode; // 情景模式
  7329. DWORD dwID; // ID号, 遥控器编号或键盘地址, emTriggerMode为NET_EM_TRIGGER_MODE_NET类型时为0
  7330. NET_EM_TRIGGER_MODE emTriggerMode; // 触发方式
  7331. char szNetClientAddr[64]; //网络用户IP地址或网络地址
  7332. UINT nUserCode; //用户ID,0:管理员,1~20:普通用户,21:安装员,22:挟持用户
  7333. }ALARM_ARMMODE_CHANGE_INFO;
  7334. ///@brief 防区类型
  7335. typedef enum
  7336. {
  7337. NET_DEFENCEAREA_TYPE_UNKNOWN, // 未知类型防区
  7338. NET_DEFENCEAREA_TYPE_ALARM, // 开关量防区
  7339. NET_DEFENCEAREA_TYPE_ANALOGALARM, // 模拟报警
  7340. }NET_DEFENCEAREA_TYPE;
  7341. ///@brief 旁路状态类型
  7342. typedef enum
  7343. {
  7344. NET_BYPASS_MODE_UNKNOW, //未知状态
  7345. NET_BYPASS_MODE_BYPASS, //旁路
  7346. NET_BYPASS_MODE_NORMAL, //正常
  7347. NET_BYPASS_MODE_ISOLATED, //隔离
  7348. }NET_BYPASS_MODE;
  7349. ///@brief 旁路状态变化事件的信息
  7350. typedef struct tagALARM_BYPASSMODE_CHANGE_INFO
  7351. {
  7352. DWORD dwSize;
  7353. int nChannelID; // 通道号
  7354. NET_TIME stuTime; // 报警事件发生的时间
  7355. NET_DEFENCEAREA_TYPE emDefenceType; // 防区类型
  7356. int nIsExtend; // 是否为扩展(通道)防区, 1:扩展通道, 0: 非扩展通道
  7357. NET_BYPASS_MODE emMode; // 变化后的模式
  7358. DWORD dwID; // ID号, 遥控器编号或键盘地址, emTriggerMode为NET_EM_TRIGGER_MODE_NET类型时为0
  7359. NET_EM_TRIGGER_MODE emTriggerMode; // 触发方式
  7360. }ALARM_BYPASSMODE_CHANGE_INFO;
  7361. ///@brief 紧急事件(对应DH_URGENCY_ALARM_EX2, 对原有的DH_URGENCY_ALARM_EX类型的升级, 指人为触发的紧急事件, 一般处理是联动外部通讯功能请求帮助)
  7362. typedef struct tagALARM_URGENCY_ALARM_EX2
  7363. {
  7364. DWORD dwSize;
  7365. NET_TIME stuTime; // 事件产生的时间
  7366. DWORD nID; // 用于标识不同的紧急事件
  7367. int nAction; // 0:脉冲
  7368. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  7369. char szImei[16]; // 国际移动设备辨识码15位数字标识
  7370. UINT nDistance; // 距离上次上报的GPS移动距离, 单位0.1Km
  7371. char szPlateNumber[64]; // 车牌号码
  7372. char szReplyNumber[16]; // 应答号码
  7373. char szLine[64]; // 线路信息
  7374. }ALARM_URGENCY_ALARM_EX2;
  7375. ///@brief 报警输入源事件详情(只要有输入就会产生改事件,不论防区当前的模式,无法屏蔽)
  7376. typedef struct tagALARM_INPUT_SOURCE_SIGNAL_INFO
  7377. {
  7378. DWORD dwSize;
  7379. int nChannelID; // 通道号
  7380. int nAction; // 0:开始 1:停止
  7381. NET_TIME stuTime; // 报警事件发生的时间
  7382. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  7383. }ALARM_INPUT_SOURCE_SIGNAL_INFO;
  7384. ///@brief 温度单位
  7385. typedef enum tagNET_TEMPERATURE_UNIT
  7386. {
  7387. NET_TEMPERATURE_UNIT_UNKNOWN,
  7388. NET_TEMPERATURE_UNIT_CENTIGRADE, // 摄氏度
  7389. NET_TEMPERATURE_UNIT_FAHRENHEIT, // 华氏度
  7390. } NET_TEMPERATURE_UNIT;
  7391. ///@brief 模拟量报警输入通道事件信息(对应DH_ALARM_ANALOGALARM_EVENT)
  7392. typedef struct tagALARM_ANALOGALARM_EVENT_INFO
  7393. {
  7394. DWORD dwSize;
  7395. int nChannelID; // 通道号
  7396. int nAction; // 0:开始 1:停止
  7397. NET_TIME stuTime; // 报警事件发生的时间
  7398. NET_SENSE_METHOD emSensorType; // 传感器类型
  7399. char szName[DH_COMMON_STRING_128]; // 通道名称
  7400. int nIsValid; // 数据是否有效,-1:未知,0:无效,1:有效
  7401. int nStatus; // 数据状态, -1:未知,0:正常,1:数据无效(超过量程),
  7402. // 2:超过阈值1,3:超过阈值2,4:超过阈值3,5:超过阈值4,
  7403. // 6:低于阈值1,7:低于阈值2,8:低于阈值3,9:低于阈值4
  7404. float fValue; // 探测器数值
  7405. NET_TIME stuCollectTime; // 数据采集时间(UTC)
  7406. NET_GPS_STATUS_INFO stGPSStatus; // GPS信息
  7407. NET_TEMPERATURE_UNIT emTemperatureUnit; // 传感器数值单位
  7408. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  7409. }ALARM_ANALOGALARM_EVENT_INFO;
  7410. ///@brief 门禁状态类型
  7411. typedef enum tagNET_ACCESS_CTL_STATUS_TYPE
  7412. {
  7413. NET_ACCESS_CTL_STATUS_TYPE_UNKNOWN = 0,
  7414. NET_ACCESS_CTL_STATUS_TYPE_OPEN, // 开门
  7415. NET_ACCESS_CTL_STATUS_TYPE_CLOSE, // 关门
  7416. NET_ACCESS_CTL_STATUS_TYPE_ABNORMAL, // 异常
  7417. NET_ACCESS_CTL_STATUS_TYPE_FAKELOCKED, // 假锁
  7418. NET_ACCESS_CTL_STATUS_TYPE_CLOSEALWAYS, // 常闭
  7419. NET_ACCESS_CTL_STATUS_TYPE_OPENALWAYS, // 常开
  7420. NET_ACCESS_CTL_STATUS_TYPE_NORMAL, // 正常
  7421. }NET_ACCESS_CTL_STATUS_TYPE;
  7422. ///@brief 门禁状态事件
  7423. typedef struct tagALARM_ACCESS_CTL_STATUS_INFO
  7424. {
  7425. DWORD dwSize;
  7426. int nDoor; // 门通道号
  7427. NET_TIME stuTime; // 事件发生的时间
  7428. NET_ACCESS_CTL_STATUS_TYPE emStatus; // 门禁状态
  7429. char szSerialNumber[256]; // 无线设备序列号(智能锁)
  7430. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  7431. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  7432. }ALARM_ACCESS_CTL_STATUS_INFO;
  7433. ///@brief 门禁抓图类型
  7434. typedef enum tagNET_ACCESS_SNAP_TYPE
  7435. {
  7436. NET_ACCESS_SNAP_TYPE_UNKNOWN = 0,
  7437. NET_ACCESS_SNAP_TYPE_CARD, // 刷卡
  7438. NET_ACCESS_SNAP_TYPE_PASSWORD, // 密码
  7439. NET_ACCESS_SNAP_TYPE_REMOTE, // 远程开门
  7440. NET_ACCESS_SNAP_TYPE_BUTTON, // 开门按钮
  7441. NET_ACCESS_SNAP_TYPE_FINGERPRINT, // 信息
  7442. NET_ACCESS_SNAP_TYPE_QRCODE, // 二维码
  7443. NET_ACCESS_SNAP_TYPE_BLUETOOTH, // 蓝牙
  7444. NET_ACCESS_SNAP_TYPE_FACE, // 目标
  7445. }NET_ACCESS_SNAP_TYPE;
  7446. ///@brief 门禁抓图事件
  7447. typedef struct tagALARM_ACCESS_SNAP_INFO
  7448. {
  7449. DWORD dwSize;
  7450. NET_ACCESS_SNAP_TYPE emType; // 类型
  7451. char szCardNO[DH_COMMON_STRING_32]; // 卡号, 刷卡开门时有效
  7452. char szPassword[DH_COMMON_STRING_64]; // 密码, 密码开门时才有效
  7453. char szFtpUrl[MAX_PATH]; // ftp上传地址, 图片路径
  7454. int nImageNum; // 抓图张数
  7455. NET_TIME stuTime; // 事件发生的时间
  7456. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  7457. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  7458. }ALARM_ACCESS_SNAP_INFO;
  7459. ///@brief 消警类型
  7460. typedef enum tagEM_ALARM_CLEAR_TYPE
  7461. {
  7462. EM_ALARM_CLEAR_TYPE_UNKNOWN = 0, // 未知
  7463. EM_ALARM_CLEAR_TYPE_ALL, // 全消警
  7464. EM_ALARM_CLEAR_TYPE_ALARM_AREA, // 子系统消警
  7465. EM_ALARM_CLEAR_TYPE_ALARM_LOCAL, // 单防区消警
  7466. } EM_ALARM_CLEAR_TYPE;
  7467. ///@brief 消警事件
  7468. typedef struct tagALARM_ALARMCLEAR_INFO
  7469. {
  7470. DWORD dwSize;
  7471. int nChannelID; // 通道号
  7472. NET_TIME stuTime; // 报警事件发生的时间
  7473. int bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  7474. EM_ALARM_CLEAR_TYPE emType; // 消警类型
  7475. int nAreasCount; // 消警子系统个数
  7476. UINT nAreas[64]; // 消警子系统, 当emType为EM_ALARM_CLEAR_TYPE_ALARM_AREA时有效
  7477. int nZonesCount; // 消警防区个数
  7478. UINT nZones[256]; // 消警放区, 当emType为EM_ALARM_CLEAR_TYPE_ALARM_LOCAL时有效
  7479. }ALARM_ALARMCLEAR_INFO;
  7480. ///@brief CID事件
  7481. typedef struct tagALARM_CIDEVENT_INFO
  7482. {
  7483. DWORD dwSize;
  7484. NET_TIME stuTime; // 报警事件发生的时间
  7485. char szCID[DH_COMMON_STRING_32]; // CID码,标准协议码 字符串长度为16,字符数值为0~F
  7486. // 4位用户码 + 2位识别码 + 1位事件限定码 + 3位事件码 + 2位系统号 + 3位防区码 + 1位校验码
  7487. }ALARM_CIDEVENT_INFO;
  7488. ///@brief 紧急救助事件类型
  7489. typedef enum tagEM_RCEMERGENCY_CALL_TYPE
  7490. {
  7491. EM_RCEMERGENCY_CALL_UNKNOWN = 0,
  7492. EM_RCEMERGENCY_CALL_FIRE, // 火警
  7493. EM_RCEMERGENCY_CALL_DURESS, // 胁迫
  7494. EM_RCEMERGENCY_CALL_ROBBER, // 匪警
  7495. EM_RCEMERGENCY_CALL_MEDICAL, // 医疗
  7496. EM_RCEMERGENCY_CALL_EMERGENCY, // 紧急
  7497. EM_RCEMERGENCY_CALL_PANIC, // 恐慌
  7498. }EM_RCEMERGENCY_CALL_TYPE;
  7499. ///@brief 报警方式
  7500. typedef enum tagEM_RCEMERGENCY_MODE_TYPE
  7501. {
  7502. EM_RCEMERGENCY_MODE_UNKNOWN = 0,
  7503. EM_RCEMERGENCY_MODE_KEYBOARD, // 键盘
  7504. EM_RCEMERGENCY_MODE_WIRELESS_CONTROL, // 遥控器
  7505. }EM_RCEMERGENCY_MODE_TYPE;
  7506. ///@brief 紧急救助事件详情
  7507. typedef struct tagALARM_RCEMERGENCY_CALL_INFO
  7508. {
  7509. DWORD dwSize;
  7510. int nAction; // -1:未知 0:开始 1:停止
  7511. EM_RCEMERGENCY_CALL_TYPE emType; // 紧急类型
  7512. NET_TIME stuTime; // 事件发生时间
  7513. EM_RCEMERGENCY_MODE_TYPE emMode; // 报警方式
  7514. DWORD dwID; // 用于标示不同的紧急事件(只有emMode是遥控器类型时有效, 表示遥控器的编号, 0表示无效ID)
  7515. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  7516. }ALARM_RCEMERGENCY_CALL_INFO;
  7517. ///@brief 多人组合开门事件(对应DH_ALARM_OPENDOORGROUP类型)
  7518. typedef struct tagALARM_OPEN_DOOR_GROUP_INFO
  7519. {
  7520. DWORD dwSize;
  7521. int nChannelID; // 门通道号(从0开始)
  7522. NET_TIME stuTime; // 事件时间
  7523. }ALARM_OPEN_DOOR_GROUP_INFO;
  7524. ///@brief 获取信息事件(对应DH_ALARM_FINGER_PRINT类型)
  7525. typedef struct tagALARM_CAPTURE_FINGER_PRINT_INFO
  7526. {
  7527. DWORD dwSize;
  7528. int nChannelID; // 门通道号(从0开始)
  7529. NET_TIME stuTime; // 事件时间
  7530. char szReaderID[DH_COMMON_STRING_32]; // 门读卡器ID
  7531. int nPacketLen; // 单个信息数据包长度
  7532. int nPacketNum; // 信息数据包个数
  7533. char* szFingerPrintInfo; // 信息数据(数据总长度即nPacketLen*nPacketNum)
  7534. BOOL bCollectResult; // 采集结果
  7535. char szCardNo[32]; // 信息所属人员卡号
  7536. char szUserID[32]; // 信息所属人员ID
  7537. }ALARM_CAPTURE_FINGER_PRINT_INFO;
  7538. ///@brief 子系统状态类型
  7539. typedef enum __EM_SUBSYSTEM_STATE_TYPE
  7540. {
  7541. EM_SUBSYSTEM_STATE_UNKNOWN = 0, // 未知
  7542. EM_SUBSYSTEM_STATE_ACTIVE, // 已激活
  7543. EM_SUBSYSTEM_STATE_INACTIVE, // 未激活
  7544. }EM_SUBSYSTEM_STATE_TYPE;
  7545. ///@brief 子系统状态改变事件
  7546. typedef struct tagALARM_SUBSYSTEM_STATE_CHANGE_INFO
  7547. {
  7548. DWORD dwSize;
  7549. int nChannelID; // 子系统序号(从0开始)
  7550. NET_TIME stuTime; // 事件发生的时间
  7551. EM_SUBSYSTEM_STATE_TYPE emState; // 变化后的状态
  7552. }ALARM_SUBSYSTEM_STATE_CHANGE_INFO;
  7553. ///@brief 电池电量定时通知事件
  7554. typedef struct tagALARM_BATTERYPOWER_INFO
  7555. {
  7556. DWORD dwSize;
  7557. int nChannel; // 电池序号
  7558. NET_TIME stuTime; // 事件时间
  7559. int nPercent; // 电池电量百分比
  7560. float fVoltage; // 电压,单位:伏
  7561. BOOL bCharging; // 是否正在充电 true:正在充电 false:没有充电
  7562. }ALARM_BATTERYPOWER_INFO;
  7563. ///@brief 警号状态事件
  7564. typedef struct tagALARM_BELLSTATUS_INFO
  7565. {
  7566. DWORD dwSize;
  7567. int nChannel; // 警号通道号
  7568. NET_TIME stuTime; // 事件时间
  7569. int nAction; // 0:开始 1:停止
  7570. }ALARM_BELLSTATUS_INFO;
  7571. ///@brief 防区状态变化事件, 对应事件类型DH_ALARM_DEFENCE_STATE_CHANGE_EVENT
  7572. typedef struct tagALARM_DEFENCE_STATUS_CHANGE_INFO
  7573. {
  7574. DWORD dwSize;
  7575. int nChannelID; // 防区ID,即报警输入通道号(从0开始)
  7576. NET_TIME stuTime; // 事件发生的时间
  7577. EM_DEFENCE_STATE_TYPE emStatus; // 防区变化后的状态
  7578. }ALARM_DEFENCE_STATUS_CHANGE_INFO;
  7579. ///@brief 登陆失败事件
  7580. typedef struct tagALARM_LOGIN_FAILIUR_INFO
  7581. {
  7582. DWORD dwSize;
  7583. int nAction; // 0:开始 1:停止
  7584. unsigned int nSequence; // 序号
  7585. char szName[DH_EVENT_NAME_LEN]; // 事件名,填用户名称
  7586. char szType[DH_COMMON_STRING_128]; // 登录类型
  7587. char szAddr[DH_MAX_IPADDR_EX_LEN]; // 来源IP地址
  7588. int nError; // 用户登陆失败错误码
  7589. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  7590. }ALARM_LOGIN_FAILIUR_INFO;
  7591. ///@brief 车票统计信息事件 对应事件类型 DH_ALARM_TICKET_STATISTIC
  7592. typedef struct tagALARM_TICKET_STATISTIC
  7593. {
  7594. DWORD dwSize;
  7595. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  7596. NET_TIME stuTime; // 事件上报时间
  7597. int nNormalCount; // 普通票张数
  7598. int nDiscountCount; // 优惠票张数
  7599. int nSubsidyCount; // 老幼补贴票张数
  7600. int nDriverCount; // 司机票张数
  7601. int nNormalPrice; // 普通票价格
  7602. int nDiscountPrice; // 优惠票价格
  7603. int nSubsidyPrice; // 老幼补贴票价格
  7604. }ALARM_TICKET_STATISTIC;
  7605. #define MAX_ALARMEXT_MODULE_NUM 256 // 最大扩展模块数目
  7606. ///@brief 总线类型
  7607. typedef enum tagNET_BUS_TYPE
  7608. {
  7609. NET_BUS_TYPE_UNKNOWN = 0,
  7610. NET_BUS_TYPE_MBUS, // M-BUS总线
  7611. NET_BUS_TYPE_RS485, // RS-485总线
  7612. NET_BUS_TYPE_CAN, // CAN总线
  7613. NET_BUS_TYPE_NET, // 网络设备
  7614. }NET_BUS_TYPE;
  7615. ///@brief 扩展模块掉线事件 对应事件类型 DH_ALARM_MODULE_LOST
  7616. typedef struct tagALARM_MODULE_LOST_INFO
  7617. {
  7618. DWORD dwSize;
  7619. NET_TIME stuTime; // 事件上报时间
  7620. int nSequence; // 扩展模块接的总线的序号(从0开始)
  7621. NET_BUS_TYPE emBusType; // 总线类型
  7622. int nAddr; // 掉线的扩展模块数目
  7623. int anAddr[MAX_ALARMEXT_MODULE_NUM];// 掉线的扩展模块的序号(从0开始)
  7624. char szDevType[DH_COMMON_STRING_64]; // 设备类型 "SmartLock",是级联设备;当设备类型"AlarmDefence"接口序号为报警序号
  7625. // "LiftController":梯控设备
  7626. BOOL bOnline; // 在线情况,默认FALSE. false:不在线;true:在线
  7627. char szSN[32]; // 无线配件序列号
  7628. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  7629. }ALARM_MODULE_LOST_INFO;
  7630. ///@brief PSTN掉线事件
  7631. typedef struct tagALARM_PSTN_BREAK_LINE_INFO
  7632. {
  7633. DWORD dwSize;
  7634. int nChannelID; // 电话线序号(从0开始)
  7635. int nAction; // 0:开始 1:停止
  7636. NET_TIME stuTime; // 事件发生的时间
  7637. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  7638. }ALARM_PSTN_BREAK_LINE_INFO;
  7639. ///@brief 模拟量报警事件(瞬时型事件), 特定传感器类型时(如超速、里程、油量)才触发
  7640. typedef struct tagALARM_ANALOGPULSE_INFO
  7641. {
  7642. DWORD dwSize;
  7643. int nChannelID; // 模拟量报警通道号
  7644. NET_TIME stuEventTime; // 报警事件发生的时间
  7645. NET_SENSE_METHOD emSense; // 传感器类型
  7646. char szName[DH_COMMON_STRING_128]; // 传感器名称
  7647. int nStatus; // 数据状态, -1:未知,0:正常,1:数据无效(超过量程),
  7648. // 2:超过阈值1,3:超过阈值2,4:超过阈值3,5:超过阈值4,
  7649. // 6:低于阈值1,7:低于阈值2,8:低于阈值3,9:低于阈值4
  7650. float fValue; // 传感器数值
  7651. NET_TIME stuCollectTime; // 采集时间
  7652. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  7653. float fTempture; // 温度
  7654. float fHumidity; // 湿度
  7655. float fVoltage; // 电压(单位:V)
  7656. float fCurrent; // 电流(单位:A)
  7657. float fActivePower; // 有供功率(单位:KW)
  7658. float fElmp; // 正向有功电能(单位:kWh)
  7659. float fEExp; // 反向有供电能(单位:kWh)
  7660. float fComEp; // 组合有供电能(单位:kWh)
  7661. float fComEq; // 组合无供电能(单位:kWh)
  7662. }ALARM_ANALOGPULSE_INFO;
  7663. ///@brief 调度信息确认动作类型
  7664. typedef enum tagNET_MISSION_CONFIRM_TYPE
  7665. {
  7666. NET_MISSION_CONFIRM_UNKNOWN = 0 , //未知
  7667. NET_MISSION_CONFIRM_YES , //同意并执行
  7668. NET_MISSION_CONFIRM_NO , //拒绝执行
  7669. }NET_MISSION_CONFIRM_TYPE;
  7670. ///@brief 任务确认事件(对应命令DH_ALARM_MISSION_CONFIRM)
  7671. typedef struct tagALARM_MISSION_CONFIRM_INFO
  7672. {
  7673. DWORD dwSize;
  7674. char szTitle[DH_COMMON_STRING_256]; // 任务名称
  7675. char szMissionID[DH_COMMON_STRING_256];// 任务ID
  7676. char szComment[DH_COMMON_STRING_256]; // 回复内容
  7677. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  7678. NET_MISSION_CONFIRM_TYPE emConfirmType; //调度信息确认动作类型
  7679. }ALARM_MISSION_CONFIRM_INFO;
  7680. ///@brief 集群节点分组类型
  7681. typedef enum tagNET_CLUSTER_GROUP_TYPE
  7682. {
  7683. NET_CLUSTER_GROUP_UNKNOWN, // 未知
  7684. NET_CLUSTER_GROUP_IDLE, // 单机
  7685. NET_CLUSTER_GROUP_MASTER, // 主用
  7686. NET_CLUSTER_GROUP_SLAVE, // 备用
  7687. }NET_CLUSTER_GROUP_TYPE;
  7688. ///@brief 节点激活事件, 对应事件类型 DH_ALARM_NODE_ACTIVE
  7689. typedef struct tagALARM_NODE_ACTIVE_INFO
  7690. {
  7691. DWORD dwSize;
  7692. int nChannelID; // 集群中的节点号
  7693. NET_TIME stuTime; // 事件发生事件
  7694. NET_CLUSTER_GROUP_TYPE emGroup; // 当前节点所属组
  7695. }ALARM_NODE_ACTIVE_INFO;
  7696. ///@brief 集群节点状态
  7697. typedef struct tagNET_CLUSTER_STATE_INFO
  7698. {
  7699. DWORD dwSize;
  7700. NET_CLUSTER_GROUP_TYPE emGroup; // 当前节点所属组
  7701. }NET_CLUSTER_STATE_INFO;
  7702. ///@brief 设备报警的模式
  7703. typedef enum tagEM_ALARM_VIDEO_STATIC_MODE
  7704. {
  7705. EM_ALARM_VIDEO_STATIC_MODE_UNKNOWN, // 未知
  7706. EM_ALARM_VIDEO_STATIC_MODE_INDOOR, // 室内模式 "Indoor"
  7707. EM_ALARM_VIDEO_STATIC_MODE_OUTDOOR, // 室外模式 "Outdoor"
  7708. }EM_ALARM_VIDEO_STATIC_MODE;
  7709. ///@brief 视频静态检测事件, 对应事件类型 DH_ALARM_VIDEO_STATIC
  7710. typedef struct tagALARM_VIDEO_STATIC_INFO
  7711. {
  7712. DWORD dwSize;
  7713. DWORD dwAction; // 事件动作, 0:Start, 1:Stop
  7714. EM_ALARM_VIDEO_STATIC_MODE emMode; // 设备报警的模式
  7715. int nChannelID; // 视频静态检测报警通道号
  7716. }ALARM_VIDEO_STATIC_INFO;
  7717. ///@brief 主动注册设备重新登陆事件, 对应事件类型 DH_ALARM_REGISTER_REONLINE
  7718. typedef struct tagALARM_REGISTER_REONLINE_INFO
  7719. {
  7720. DWORD dwSize;
  7721. }ALARM_REGISTER_REONLINE_INFO;
  7722. ///@brief 连接状态
  7723. typedef enum tagEM_ALARM_ISCSI_STATUS
  7724. {
  7725. EM_ALARM_ISCSI_STATUS_UNKNOWN, // 未知
  7726. EM_ALARM_ISCSI_STATUS_CONNECTED, // 已连接
  7727. EM_ALARM_ISCSI_STATUS_NOT_CONNECTED, // 未连接
  7728. EM_ALARM_ISCSI_STATUS_CONNECT_FAILED, // 连接失败
  7729. EM_ALARM_ISCSI_STATUS_AUTHENTICATION_FAILED, // 认证失败
  7730. EM_ALARM_ISCSI_STATUS_CONNECT_TIMEOUT, // 连接超时
  7731. EM_ALARM_ISCSI_STATUS_NOT_EXIST, // 设备不存在
  7732. }EM_ALARM_ISCSI_STATUS;
  7733. ///@brief ISCSI告警事件, 对应事件类型 DH_ALARM_ISCSI_STATUS
  7734. typedef struct tagALARM_ISCSI_STATUS_INFO
  7735. {
  7736. DWORD dwSize;
  7737. int nIndex; // 表示ISCSI设备索引号
  7738. char szAddress[DH_COMMON_STRING_32]; // 服务器地址
  7739. char szName[DH_COMMON_STRING_64]; // Target名称
  7740. char szUserName[DH_COMMON_STRING_64]; // 用户名
  7741. EM_ALARM_ISCSI_STATUS emStatus; // 连接状态
  7742. }ALARM_ISCSI_STATUS_INFO;
  7743. ///@brief SCADA类型
  7744. typedef enum tagEM_ALARM_SCADA_DEV_TYPE
  7745. {
  7746. EM_ALARM_SCADA_DEV_UNKNOWN, // 未知
  7747. EM_ALARM_SCADA_DEV_LEAKAGE, // 漏水检测
  7748. EM_ALARM_SCADA_DEV_THCONTROLLER, // 湿温度
  7749. EM_ALARM_SCADA_DEV_UPS, // UPS
  7750. EM_ALARM_SCADA_DEV_SWITCH, // 开关电源
  7751. EM_ALARM_SCADA_DEV_ELECTRICMETER, // 智能电表
  7752. EM_ALARM_SCADA_DEV_COMMERCIALPOWER, // 市电检测
  7753. EM_ALARM_SCADA_DEV_BATTERY, // 蓄电池
  7754. EM_ALARM_SCADA_DEV_AIRCONDITION, // 空调
  7755. EM_ALARM_SCADA_DEV_ACCESS, // 门禁
  7756. EM_ALARM_SCADA_DEV_SMOKINGSENSOR, // 烟感
  7757. EM_ALARM_SCADA_DEV_INFRARED, // 红外
  7758. EM_ALARM_SCADA_DEV_CHEMICAL, // 化工
  7759. EM_ALARM_SCADA_DEV_PERIMETER, // 周界
  7760. EM_ALARM_SCADA_DEV_DOORMAGNETISM, // 门磁
  7761. EM_ALARM_SCADA_DEV_DISTANCE, // 测距
  7762. EM_ALARM_SCADA_DEV_WINDSENSOR, // 风速
  7763. EM_ALARM_SCADA_DEV_LOCATION, // 位置
  7764. EM_ALARM_SCADA_DEV_ATMOSPHERE, // 大气
  7765. EM_ALARM_SCADA_DEV_SOLARPOWER, // 太阳能
  7766. }EM_ALARM_SCADA_DEV_TYPE;
  7767. ///@brief 设备状态
  7768. typedef enum tagEM_SCADA_DEVICE_STATUS
  7769. {
  7770. EM_SCADA_DEVICE_STATUS_KNOWN = -1, // 未知
  7771. EM_SCADA_DEVICE_STATUS_NORMAL, // 正常
  7772. EM_SCADA_DEVICE_STATUS_ALARM, // 报警
  7773. EM_SCADA_DEVICE_STATUS_OFFLINE, // 离线
  7774. }EM_SCADA_DEVICE_STATUS;
  7775. ///@brief 检测采集设备报警事件, 对应事件类型 DH_ALARM_SCADA_DEV_ALARM
  7776. typedef struct tagALARM_SCADA_DEV_INFO
  7777. {
  7778. DWORD dwSize;
  7779. int nChannel; // 通道号
  7780. NET_TIME stuTime; // 事件发生的时间
  7781. char szDevName[DH_COMMON_STRING_64]; // 故障设备名称
  7782. char szDesc[DH_COMMON_STRING_256]; // 报警描述
  7783. int nAction; // -1:未知 0:脉冲 1:开始 2:停止
  7784. char szID[DH_COMMON_STRING_32]; // 点位ID, 目前使用16字节
  7785. char szSensorID[DH_COMMON_STRING_32]; // 设备ID, 目前使用16字节
  7786. char szDevID[DH_COMMON_STRING_32]; // 报警主机ID, 目前使用16字节
  7787. char szPointName[DH_COMMON_STRING_64]; // 点位名,与点表匹配
  7788. int nAlarmFlag; // 0:开始, 1:结束
  7789. EM_ALARM_SCADA_DEV_TYPE emDevType; // 设备类型
  7790. EM_SCADA_DEVICE_STATUS emDevStatus; // 设备状态
  7791. }ALARM_SCADA_DEV_INFO;
  7792. ///@brief 车辆ACC报警事件, 对应事件类型 DH_ALARM_VEHICLE_ACC
  7793. typedef struct tagALARM_VEHICLE_ACC_INFO
  7794. {
  7795. DWORD dwSize;
  7796. int nACCStatus; // ACC状态, 0:无效, 1:开启, 2:关闭
  7797. int nAction; // 事件动作, 0:Start, 1:Stop
  7798. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  7799. int nConstantElectricStatus; // 常电状态, 0:未知, 1:连接, 2:断开
  7800. NET_TIME_EX stuTime; // 事件发生的时间
  7801. unsigned int nTotalMileage; // 总的里程数,单位:米,当nACCStatus为2时,将ntotalMileage进行上报
  7802. NET_TIME_EX stuStartTime; // nACCStatus为1时刻的时间
  7803. NET_GPS_STATUS_INFO stuStartGPS; // nACCStatus为1时刻的GPS信息
  7804. }ALARM_VEHICLE_ACC_INFO;
  7805. typedef NET_ACCESS_CTL_STATUS_TYPE NET_ACCESS_LOCK_STATUS_TYPE;
  7806. ///@brief 门锁状态事件, 对应事件类型 DH_ALARM_ACCESS_LOCK_STATUS
  7807. typedef struct tagALARM_ACCESS_LOCK_STATUS_INFO
  7808. {
  7809. DWORD dwSize;
  7810. int nChannel; // 门通道号(从0开始)
  7811. NET_TIME stuTime; // 事件发生的时间
  7812. NET_ACCESS_LOCK_STATUS_TYPE emLockStatus; // 门锁状态
  7813. }ALARM_ACCESS_LOCK_STATUS_INFO;
  7814. ///@brief 业务类型
  7815. typedef enum tagEM_ALARM_FINACE_SCHEME_BUSINESS_SEVER_TYPE
  7816. {
  7817. EM_ALARM_FINACE_SCHEME_BUSINESS_SEVER_TYPE_UNKNOWN, // 未知
  7818. EM_ALARM_FINACE_SCHEME_BUSINESS_SEVER_TYPE_ORGANIZATION, // 机构性理财
  7819. EM_ALARM_FINACE_SCHEME_BUSINESS_SEVER_TYPE_SEAL, // 封闭式理财
  7820. EM_ALARM_FINACE_SCHEME_BUSINESS_SEVER_TYPE_EXCLUSIVE, // 专属理财
  7821. EM_ALARM_FINACE_SCHEME_BUSINESS_SEVER_TYPE_GATHER, // 集合理财计划
  7822. EM_ALARM_FINACE_SCHEME_BUSINESS_SEVER_TYPE_EVEN, // 保本理财
  7823. }EM_ALARM_FINACE_SCHEME_BUSINESS_SEVER_TYPE;
  7824. ///@brief 理财经办事件, 对应事件类型 DH_ALARM_FINACE_SCHEME
  7825. typedef struct tagALARM_FINACE_SCHEME_INFO
  7826. {
  7827. DWORD dwSize;
  7828. int nChannel; // 视频通道号
  7829. char szBusinessSeverID[DH_COMMON_STRING_64]; // 业务单号
  7830. EM_ALARM_FINACE_SCHEME_BUSINESS_SEVER_TYPE emBusinessSeverType; // 业务类型
  7831. NET_TIME stuFinaceSchemeTime; // 理财经办时间
  7832. NET_TIME stuSchemeStartTime; // 理财生效时间
  7833. NET_TIME stuSchemeEndTime; // 理财失效时间
  7834. char szProductName[DH_COMMON_STRING_128]; // 理财产品名称
  7835. char szCardNo[DH_COMMON_STRING_64]; // 银行卡号
  7836. char szPersonID[DH_COMMON_STRING_64]; // 客户证件
  7837. char szPersonName[DH_COMMON_STRING_64]; // 客户姓名
  7838. char szOrgNo[DH_COMMON_STRING_64]; // 支行机构号
  7839. char szStuffID[DH_COMMON_STRING_64]; // 银行员工工号
  7840. NET_TIME stuRecStartTime; // 录像开始时间
  7841. NET_TIME stuRecEndTime; // 录像结束时间
  7842. }ALARM_FINACE_SCHEME_INFO;
  7843. //////////////////////////////////////////////////////////////////////
  7844. ///@brief 记录集新增操作(insert)输入参数
  7845. typedef struct tagNET_CTRL_RECORDSET_IN
  7846. {
  7847. DWORD dwSize;
  7848. EM_NET_RECORD_TYPE emType; // 记录集信息类型
  7849. void* pBuf; // 记录集信息缓存,详见EM_NET_RECORD_TYPE注释,由用户申请内存.
  7850. int nBufLen; // 记录集信息缓存大小,大小参照记录集信息类型对应的结构体
  7851. }NET_CTRL_RECORDSET_INSERT_IN;
  7852. ///@brief 记录集新增操作(insert)输出参数
  7853. typedef struct tagNET_CTRL_RECORDSET_OUT
  7854. {
  7855. DWORD dwSize;
  7856. int nRecNo; // 记录编号(新增insert时设备返回)
  7857. }NET_CTRL_RECORDSET_INSERT_OUT;
  7858. ///@brief 记录集新增操作(insert)参数
  7859. typedef struct tagNET_CTRL_RECORDSET_INSERT_PARAM
  7860. {
  7861. DWORD dwSize;
  7862. NET_CTRL_RECORDSET_INSERT_IN stuCtrlRecordSetInfo; // 记录集信息(用户填写)
  7863. NET_CTRL_RECORDSET_INSERT_OUT stuCtrlRecordSetResult; // 记录集信息(设备返回)
  7864. }NET_CTRL_RECORDSET_INSERT_PARAM;
  7865. ///@brief 批量删除记录集参数
  7866. typedef struct tagNET_CTRL_RECORDSET_REMOVEEX_PARAM
  7867. {
  7868. DWORD dwSize; // 结构体大小
  7869. BOOL bTimeEnable; // 启用时间段删除
  7870. NET_TIME stuStartTime; // 开始时间
  7871. NET_TIME stuEndTime; // 结束时间
  7872. } NET_CTRL_RECORDSET_REMOVEEX_PARAM;
  7873. ///@brief 记录集操作参数
  7874. typedef struct tagNET_CTRL_RECORDSET_PARAM
  7875. {
  7876. DWORD dwSize;
  7877. EM_NET_RECORD_TYPE emType; // 记录集信息类型
  7878. void* pBuf; // 新增\更新\查询\导入时,为记录集信息缓存,详见 EM_NET_RECORD_TYPE 注释,由用户申请内存,长度为nBufLen
  7879. // 删除时,为存放记录集编号的内存地址(类型为int*), 批量删除时,为NET_CTRL_RECORDSET_REMOVEEX_PARAM, 由用户申请内存, 长度为nBufLen
  7880. int nBufLen; // 记录集信息缓存大小,大小参照记录集信息类型对应的结构体
  7881. }NET_CTRL_RECORDSET_PARAM;
  7882. ///@brief 时间段结构
  7883. typedef struct tagDH_TSECT
  7884. {
  7885. int bEnable; // 当表示录像时间段时,按位表示四个使能,从低位到高位分别表示动检录象、报警录象、普通录象、动检和报警同时发生才录像
  7886. // 当表示布撤防时间段时, 表示使能
  7887. // 当表示推送时间段时, 表示使能:1表示使能,0表示非使能
  7888. int iBeginHour;
  7889. int iBeginMin;
  7890. int iBeginSec;
  7891. int iEndHour;
  7892. int iEndMin;
  7893. int iEndSec;
  7894. } DH_TSECT, *LPDH_TSECT;
  7895. ///@brief 时间表信息
  7896. typedef struct tagNET_CFG_TIME_SCHEDULE
  7897. {
  7898. BOOL bEnableHoliday; // 是否支持节假日配置,默认为不支持,除非获取配置后返回为TRUE,不要使能假日配置
  7899. DH_TSECT stuTimeSection[DH_N_SCHEDULE_TSECT][DH_N_REC_TSECT]; // 第一维前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段
  7900. } NET_CFG_TIME_SCHEDULE;
  7901. ///@brief 视频播放模式
  7902. typedef enum tagEM_VIDEO_PLAY_MODE_TYPE
  7903. {
  7904. EM_VIDEO_PLAY_MODE_TYPE_UNKNOWN, // 未知
  7905. EM_VIDEO_PLAY_MODE_TYPE_ONCE, // 播放一次
  7906. EM_VIDEO_PLAY_MODE_TYPE_REPEAT, // 循环播放
  7907. EM_VIDEO_PLAY_MODE_TYPE_ALONE, // 插播(单独播放)
  7908. }EM_VIDEO_PLAY_MODE_TYPE;
  7909. #define MAX_DELIVERY_FILE_NUM 128 // 最大投放文件数量
  7910. #define DELIVERY_FILE_URL_LEN 128 // 投放文件的URL长度
  7911. #define MAX_VIDEO_FILE_LIST_NUM 20 // 视频文件列表
  7912. ///@brief 投放的文件类型
  7913. typedef enum tagEM_DELIVERY_FILE_TYPE
  7914. {
  7915. EM_DELIVERY_FILE_TYPE_UNKNOWN, // 未知
  7916. EM_DELIVERY_FILE_TYPE_VIDEO, // 视频
  7917. EM_DELIVERY_FILE_TYPE_IMAGE, // 图片
  7918. EM_DELIVERY_FILE_TYPE_AUDIO, // 音频
  7919. EM_DELIVERY_FILE_TYPE_TXT, // 文本
  7920. }EM_DELIVERY_FILE_TYPE;
  7921. ///@brief 文件所属的模式
  7922. typedef enum tagEM_PLAY_WITH_MODE
  7923. {
  7924. EM_PLAY_WITH_MODE_UNKNOWN, // 未知
  7925. EM_PLAY_WITH_MODE_RECOGNITION, // 识别模式
  7926. EM_PLAY_WITH_MODE_INFORMATION_RELEASE, // 信息发布模式
  7927. EM_PLAY_WITH_MODE_MAIN_INTERFACE, // 主界面模式
  7928. } EM_PLAY_WITH_MODE;
  7929. ///@brief 投放文件信息
  7930. typedef struct tagNET_DELIVERY_FILE_INFO
  7931. {
  7932. EM_DELIVERY_FILE_TYPE emFileType; // 文件类型
  7933. char szFileURL[DELIVERY_FILE_URL_LEN]; // 文件的资源地址
  7934. int nImageSustain; // 每张图片停留多长时间,单位秒 (emFileType为EM_DELIVERY_FILE_TYPE_IMAGE时此字段有效)
  7935. EM_PLAY_WITH_MODE emPlayWithMode; // 文件所属的模式
  7936. char szFileURLEx[512]; // NET_OUT_GET_ADVERTIMENT_CAPS中bSupport为true时填写此字段,并且szFileURL填空
  7937. BYTE byReserved[508]; // 保留字节
  7938. }NET_DELIVERY_FILE_INFO;
  7939. ///@brief 投放文件信息
  7940. typedef struct tagNET_DELIVERY_FILE_INFOEX
  7941. {
  7942. EM_DELIVERY_FILE_TYPE emFileType; // 文件类型
  7943. char szFileURL[DELIVERY_FILE_URL_LEN]; // 文件的资源地址
  7944. int nImageSustain; // 每张图片停留多长时间,单位秒 (emFileType为EM_DELIVERY_FILE_TYPE_IMAGE时此字段有效)
  7945. EM_PLAY_WITH_MODE emPlayWithMode; // 文件所属的模式
  7946. char szFileURLEx[512]; // NET_OUT_GET_ADVERTIMENT_CAPS中bSupport为true时填写此字段,并且szFileURL填空
  7947. NET_CFG_TIME_SCHEDULE stuTimeSection; //播放时间段。
  7948. int nSize; // 文件大小
  7949. int nID; // 文件编号
  7950. char szTXTContents[1024]; // 文字广告
  7951. }NET_DELIVERY_FILE_INFOEX;
  7952. ///@brief 操作类型
  7953. typedef enum tagEM_VIDEO_PLAY_OPERATE_TYPE
  7954. {
  7955. EM_VIDEO_PLAY_OPERATE_TYPE_UNKNOWN, // 未知
  7956. EM_VIDEO_PLAY_OPERATE_TYPE_REPLACE, // 替换
  7957. EM_VIDEO_PLAY_OPERATE_TYPE_ADD, // 新增
  7958. EM_VIDEO_PLAY_OPERATE_TYPE_REMOVE, // 删除
  7959. EM_VIDEO_PLAY_OPERATE_TYPE_CLEAR, // 清空
  7960. }EM_VIDEO_PLAY_OPERATE_TYPE;
  7961. ///@brief 向视频输出口投放视频和图片文件
  7962. typedef struct tagNET_CTRL_DELIVERY_FILE
  7963. {
  7964. DWORD dwSize; // 结构体大小
  7965. int nPort; // 视频输出口
  7966. EM_VIDEO_PLAY_MODE_TYPE emPlayMode; // 播放类型
  7967. NET_TIME stuStartPlayTime; // 开始播放的时间
  7968. NET_TIME stuStopPlayTime; // 结束播放的时间,emPlayMode为EM_VIDEO_PLAY_MODE_TYPE_REPEAT时,此值有效
  7969. int nFileCount; // 投放的文件个数
  7970. NET_DELIVERY_FILE_INFO stuFileInfo[MAX_DELIVERY_FILE_NUM]; // 投放的文件信息(推荐使用stuFileInfoEx,二者互斥)
  7971. // 如果nFileCountEx不为0,视为使用stuFileInfoEx,stuFileInfo值无效
  7972. EM_VIDEO_PLAY_OPERATE_TYPE emOperateType; // 操作类型。如无该字段,默认为EM_VIDEO_PLAY_OPERATE_TYPE_REPLACE
  7973. int nFileCountEx; // 投放的文件个数
  7974. NET_DELIVERY_FILE_INFOEX stuFileInfoEx[MAX_DELIVERY_FILE_NUM]; // 投放的文件信息
  7975. int nNumber; // 当前广告计划编号,调用者可以通过此编号来设置不同广告计划
  7976. NET_CFG_TIME_SCHEDULE stuTimeSection; // 播放时间段
  7977. BOOL bEnable; // 播放使能
  7978. char szName[128]; // 广告名称
  7979. }NET_CTRL_DELIVERY_FILE;
  7980. ///@brief 投放文件信息
  7981. typedef struct tagNET_DELIVERY_FILE_BYCAR_INFO
  7982. {
  7983. EM_DELIVERY_FILE_TYPE emFileType; // 文件类型
  7984. char szFileURL[DELIVERY_FILE_URL_LEN]; // 文件的资源地址
  7985. int nImageSustain; // 每张图片停留多长时间,单位秒 (emFileType为EM_DELIVERY_FILE_TYPE_IMAGE时此字段有效)
  7986. NET_TIME stuStartPlayTime; // 开始播放的时间
  7987. NET_TIME stuStopPlayTime; // 结束播放的时间,emPlayMode为EM_VIDEO_PLAY_MODE_TYPE_REPEAT时,此值有效
  7988. BYTE byReserved[1024]; // 保留字节
  7989. }NET_DELIVERY_FILE_BYCAR_INFO;
  7990. ///@brief 向视频输出口投放视频和图片文件, 车载使用,广告单独时间投放
  7991. typedef struct tagNET_CTRL_DELIVERY_FILE_BYCAR
  7992. {
  7993. DWORD dwSize; // 结构体大小
  7994. int nPort; // 视频输出口
  7995. EM_VIDEO_PLAY_MODE_TYPE emPlayMode; // 播放类型
  7996. int nFileCount; // 投放的文件个数
  7997. NET_DELIVERY_FILE_BYCAR_INFO stuFileInfo[MAX_DELIVERY_FILE_NUM]; // 投放的文件信息
  7998. }NET_CTRL_DELIVERY_FILE_BYCAR;
  7999. ///@brief 卡状态
  8000. typedef enum tagNET_ACCESSCTLCARD_STATE
  8001. {
  8002. NET_ACCESSCTLCARD_STATE_UNKNOWN = -1,
  8003. NET_ACCESSCTLCARD_STATE_NORMAL = 0, // 正常
  8004. NET_ACCESSCTLCARD_STATE_LOSE = 0x01, // 挂失
  8005. NET_ACCESSCTLCARD_STATE_LOGOFF = 0x02, // 注销
  8006. NET_ACCESSCTLCARD_STATE_FREEZE = 0x04, // 冻结
  8007. NET_ACCESSCTLCARD_STATE_ARREARAGE = 0x08, // 欠费
  8008. NET_ACCESSCTLCARD_STATE_OVERDUE = 0x10, // 逾期
  8009. NET_ACCESSCTLCARD_STATE_PREARREARAGE = 0x20, // 预欠费(还是可以开门,但有语音提示)
  8010. }NET_ACCESSCTLCARD_STATE;
  8011. ///@brief 卡类型
  8012. typedef enum tagNET_ACCESSCTLCARD_TYPE
  8013. {
  8014. NET_ACCESSCTLCARD_TYPE_UNKNOWN = -1,
  8015. NET_ACCESSCTLCARD_TYPE_GENERAL, // 一般卡
  8016. NET_ACCESSCTLCARD_TYPE_VIP, // VIP卡
  8017. NET_ACCESSCTLCARD_TYPE_GUEST, // 来宾卡
  8018. NET_ACCESSCTLCARD_TYPE_PATROL, // 巡逻卡
  8019. NET_ACCESSCTLCARD_TYPE_BLACKLIST, // 禁止名单卡
  8020. NET_ACCESSCTLCARD_TYPE_CORCE, // 胁迫卡
  8021. NET_ACCESSCTLCARD_TYPE_POLLING, // 巡检卡
  8022. NET_ACCESSCTLCARD_TYPE_GB_CUSTOM1, // 国标自定义1卡,不支持配套
  8023. NET_ACCESSCTLCARD_TYPE_GB_CUSTOM2, // 国标自定义2卡,不支持配套
  8024. NET_ACCESSCTLCARD_TYPE_TEMPORARY_PERSON = 0x09, // 临时人员,不支持配套
  8025. NET_ACCESSCTLCARD_TYPE_INVENTORY_PERSON, // 清分人员,不支持配套
  8026. NET_ACCESSCTLCARD_TYPE_INVENTORY_DIRECTOR, // 清分主管,不支持配套
  8027. NET_ACCESSCTLCARD_TYPE_SECURITY_GUARD, // 保卫人员,不支持配套
  8028. NET_ACCESSCTLCARD_TYPE_SECURITYGUARD_DIRECTOR, // 保卫主管,不支持配套
  8029. NET_ACCESSCTLCARD_TYPE_STORE_KEEPER, // 库管员,不支持配套
  8030. NET_ACCESSCTLCARD_TYPE_STORE_DIRECTOR, // 库主管,不支持配套
  8031. NET_ACCESSCTLCARD_TYPE_ESCORT_PERSON, // 押运人员,不支持配套
  8032. NET_ACCESSCTLCARD_TYPE_REPAIR_PERSON, // 维修人员,不支持配套
  8033. NET_ACCESSCTLCARD_TYPE_INSPECTOR = 0x12, // 检查人员,不支持配套
  8034. NET_ACCESSCTLCARD_TYPE_SHENZHENLINK = 0x13, // 不支持配套
  8035. NET_ACCESSCTLCARD_TYPE_MOTHERCARD = 0xff, // 母卡
  8036. }NET_ACCESSCTLCARD_TYPE;
  8037. #define DH_MAX_DOOR_NUM 32 // 最大有权限门禁数目
  8038. #define DH_MAX_TIMESECTION_NUM 32 // 最大有效时间段数目
  8039. #define DH_MAX_CARDNAME_LEN 64 // 门禁卡命名最大长度
  8040. #define DH_MAX_CARDNO_LEN 32 // 门禁卡号最大长度
  8041. #define DH_MAX_USERID_LEN 32 // 门禁卡用户ID最大长度
  8042. #define DH_MAX_IC_LEN 32 // 证件最大长度
  8043. #define DH_MAX_QRCODE_LEN 128 // QRCode 最大长度
  8044. ///@brief 信息数据,只用于下发信息
  8045. typedef struct tagNET_ACCESSCTLCARD_FINGERPRINT_PACKET
  8046. {
  8047. DWORD dwSize;
  8048. int nLength; // 单个数据包长度,单位字节
  8049. int nCount; // 包个数
  8050. char* pPacketData; // 所有信息数据包,用户申请内存并填充,长度为 nLength*nCount
  8051. }NET_ACCESSCTLCARD_FINGERPRINT_PACKET;
  8052. ///@brief 信息数据扩展,可用于下发和获取信息
  8053. typedef struct tagNET_ACCESSCTLCARD_FINGERPRINT_PACKET_EX
  8054. {
  8055. int nLength; // 单个数据包长度,单位字节
  8056. int nCount; // 包个数
  8057. char* pPacketData; // 所有信息数据包, 用户申请内存,大小至少为nLength * nCount
  8058. int nPacketLen; // pPacketData 指向内存区的大小,用户填写
  8059. int nRealPacketLen; // 返回给用户实际信息总大小
  8060. int nDuressIndex; // 胁迫信息序号,范围1~nCount
  8061. BYTE byReverseed[1020]; //保留大小
  8062. }NET_ACCESSCTLCARD_FINGERPRINT_PACKET_EX;
  8063. #define MAX_REPEATENTERROUTE_NUM 12 //反潜路径个数
  8064. ///@brief 帽子款式
  8065. typedef enum tagEM_HAT_STYLE
  8066. {
  8067. EM_HAT_UNKNOWN, // 未知
  8068. EM_HAT_ORDINARY, // 普通帽子
  8069. EM_HAT_HELMET, // 头盔
  8070. EM_HAT_SAFETYHAT, // 安全帽
  8071. EM_HAT_EAVELESS, // 无檐帽
  8072. EM_HAT_PEAKEDCAP, // 鸭舌帽
  8073. EM_HAT_FISHERMANHAT, // 渔夫帽
  8074. EM_HAT_NONE, // 未戴帽
  8075. } EM_HAT_STYLE;
  8076. ///@brief 统一后的颜色枚举
  8077. typedef enum tagEM_UNIFIED_COLOR_TYPE
  8078. {
  8079. EM_UNIFIED_COLOR_TRANSPARENT = -1, // 透明
  8080. EM_UNIFIED_COLOR_UNKNOWN, // 未知
  8081. EM_UNIFIED_COLOR_WHITE, // 白色
  8082. EM_UNIFIED_COLOR_ORANGE, // 橙色
  8083. EM_UNIFIED_COLOR_PINK, // 粉色
  8084. EM_UNIFIED_COLOR_BLACK, // 黑色
  8085. EM_UNIFIED_COLOR_RED, // 红色
  8086. EM_UNIFIED_COLOR_YELLOW, // 黄色
  8087. EM_UNIFIED_COLOR_GRAY, // 灰色
  8088. EM_UNIFIED_COLOR_BLUE, // 蓝色
  8089. EM_UNIFIED_COLOR_GREEN, // 绿色
  8090. EM_UNIFIED_COLOR_PURPLE, // 紫色
  8091. EM_UNIFIED_COLOR_BROWN, // 棕色
  8092. }EM_UNIFIED_COLOR_TYPE;
  8093. ///@brief 性别
  8094. typedef enum tagNET_ACCESSCTLCARD_SEX
  8095. {
  8096. NET_ACCESSCTLCARD_SEX_UNKNOWN,
  8097. NET_ACCESSCTLCARD_SEX_MALE, // 男
  8098. NET_ACCESSCTLCARD_SEX_FEMALE, // 女
  8099. }NET_ACCESSCTLCARD_SEX;
  8100. ///@brief 用户权限
  8101. typedef enum tagNET_ACCESSCTLCARD_AUTHORITY
  8102. {
  8103. NET_ACCESSCTLCARD_AUTHORITY_UNKNOWN, // 未知
  8104. NET_ACCESSCTLCARD_AUTHORITY_ADMINISTRATORS, // 管理员
  8105. NET_ACCESSCTLCARD_AUTHORITY_CUSTOMER, // 普通用户
  8106. }NET_ACCESSCTLCARD_AUTHORITY;
  8107. ///@brief 楼层号(梯控需求)
  8108. typedef struct tagNET_FLOORS_INFO
  8109. {
  8110. int nFloorNumEx2; // 有效的楼层数量再次扩展
  8111. char szFloorEx[256][8]; // 楼层号(梯控需求)最多不超过256个,楼层号不超过999
  8112. BYTE byReserved[512]; // 保留字节
  8113. }NET_FLOORS_INFO;
  8114. ///@brief 测试项目
  8115. typedef enum tagEM_TEST_ITEMS
  8116. {
  8117. EM_TEST_ITEMS_UNKNOWN = -1, // 未知
  8118. EM_TEST_ITEMS_OTHER, // 其他项目
  8119. EM_TEST_ITEMS_HAND_TEST, // 手部测试静电电阻
  8120. EM_TEST_ITEMS_TWOFEET_TEST, // 双脚测试静电电阻
  8121. EM_TEST_ITEMS_HANDTWOFEET_TEST, // 手部和双脚测试静电电阻
  8122. EM_TEST_ITEMS_NONE // 全部不测
  8123. }EM_TEST_ITEMS;
  8124. ///@brief 测试结果
  8125. typedef enum tagEM_ESD_RESULT
  8126. {
  8127. EM_ESD_RESULT_UNKNOWN = -1, // 未知
  8128. EM_ESD_RESULT_OTHER_ABERRANT, // 其他异常
  8129. EM_ESD_RESULT_TEST_PASS, // 测试通过
  8130. EM_ESD_RESULT_HAND_TEST_FAIL, // 手测试未通过
  8131. EM_ESD_RESULT_LEFTFOOT_TEST_FAIL, // 左脚测试未通过
  8132. EM_ESD_RESULT_RIGHTFOOT_TEST_FAIL, // 右脚测试未通过
  8133. EM_ESD_RESULT_FOOT_TEST_FAIL, // 双脚测试未通过
  8134. EM_ESD_RESULT_TEST_FAIL // 全部测试未通过
  8135. }EM_ESD_RESULT;
  8136. ///@brief ESD阻值测试结果
  8137. typedef struct tagNET_TEST_RESULT
  8138. {
  8139. UINT nHandValue; // k欧姆(阻值单位)
  8140. UINT nLeftFootValue; // k欧姆(阻值单位)
  8141. UINT nRightFootValue; // k欧姆(阻值单位)
  8142. EM_ESD_RESULT emEsdResult; // 测试结果
  8143. BYTE bReserved[128]; // 预留字节
  8144. }NET_TEST_RESULT;
  8145. ///@brief 人员健康状态
  8146. typedef enum tagEM_GREENCNHEALTH_STATUS
  8147. {
  8148. EM_GREENCNHEALTH_STATUS_UNKNOWN = 0, // 未知
  8149. EM_GREENCNHEALTH_STATUS_GREEN, // 绿码
  8150. EM_GREENCNHEALTH_STATUS_YELLOW, // 黄码
  8151. EM_GREENCNHEALTH_STATUS_RED, // 红码
  8152. EM_GREENCNHEALTH_STATUS_INVALID, // 无效
  8153. }EM_GREENCNHEALTH_STATUS;
  8154. ///@brief 电子通行证状态
  8155. typedef enum tagEM_ALLOW_PERMIT_FLAG
  8156. {
  8157. EM_ALLOW_PERMIT_FLAG_UNKNOWN = 0, // 未知
  8158. EM_ALLOW_PERMIT_FLAG_NO, // 没有电子通行证
  8159. EM_ALLOW_PERMIT_FLAG_EFFECTIVE, // 电子通行证有效
  8160. EM_ALLOW_PERMIT_FLAG_INVALID, // 电子通行证无效
  8161. }EM_ALLOW_PERMIT_FLAG;
  8162. ///@brief 对接第三方平台数据
  8163. typedef enum tagEM_RENT_STATE
  8164. {
  8165. EM_RENT_STATE_UNKNOWN = 0, // 未知
  8166. EM_RENT_STATE_NORMAL_PAYMENT, // 正常缴费
  8167. EM_RENT_STATE_0_TO_3_MONTHS_IN_ARREARS, // 欠费0~3个月
  8168. EM_RENT_STATE_3_TO_6_MONTHS_IN_ARREARS, // 欠费3~6个月
  8169. EM_RENT_STATE_6_TO_12_MONTHS_IN_ARREARS, // 欠费6~12个月
  8170. EM_RENT_STATE_MORE_THAN_12_MONTHS_IN_ARREARS, // 欠费12个月以上
  8171. EM_RENT_STATE_TEMPORARY_VISITOR, // 临时访客
  8172. } EM_RENT_STATE;
  8173. ///@brief 门禁卡记录集信息
  8174. typedef struct tagNET_RECORDSET_ACCESS_CTL_CARD
  8175. {
  8176. DWORD dwSize;
  8177. int nRecNo; // 记录集编号,只读
  8178. NET_TIME stuCreateTime; // 创建时间
  8179. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  8180. char szUserID[DH_MAX_USERID_LEN]; // 用户ID, 设备暂不支持
  8181. NET_ACCESSCTLCARD_STATE emStatus; // 卡状态
  8182. NET_ACCESSCTLCARD_TYPE emType; // 卡类型
  8183. char szPsw[DH_MAX_CARDPWD_LEN]; // 卡密码
  8184. int nDoorNum; // 有效的门数目;
  8185. int sznDoors[DH_MAX_DOOR_NUM]; // 有权限的门序号,即CFG_CMD_ACCESS_EVENT配置的数组下标
  8186. int nTimeSectionNum; // 有效的的开门时间段数目
  8187. int sznTimeSectionNo[DH_MAX_TIMESECTION_NUM]; // 开门时间段索引,即CFG_ACCESS_TIMESCHEDULE_INFO的数组下标
  8188. int nUserTime; // 使用次数,仅当来宾卡时有效
  8189. NET_TIME stuValidStartTime; // 开始有效期, 设备暂不支持时分秒
  8190. NET_TIME stuValidEndTime; // 结束有效期, 设备暂不支持时分秒
  8191. BOOL bIsValid; // 是否有效,TRUE有效;FALSE无效
  8192. NET_ACCESSCTLCARD_FINGERPRINT_PACKET stuFingerPrintInfo;// 下发数据信息,仅为兼容性保留,请使用 stuFingerPrintInfoEx
  8193. BOOL bFirstEnter; // 是否拥有首卡权限
  8194. char szCardName[DH_MAX_CARDNAME_LEN]; // 卡命名
  8195. char szVTOPosition[DH_COMMON_STRING_64]; // 门口机关联位置
  8196. BOOL bHandicap; // 是否为残障人士卡
  8197. BOOL bEnableExtended; // 启用成员 stuFingerPrintInfoEx
  8198. NET_ACCESSCTLCARD_FINGERPRINT_PACKET_EX stuFingerPrintInfoEx; // 数据信息
  8199. int nFaceDataNum; // 目标数据个数不超过20
  8200. char szFaceData[MAX_FACE_DATA_NUM][MAX_FACE_DATA_LEN]; // 目标模版数据
  8201. char szDynamicCheckCode[MAX_COMMON_STRING_16]; // 动态校验码。
  8202. // VTO等设备会保存此校验码,以后每次刷卡都以一定的算法生成新校验码并写入IC卡中,同时更新VTO设备的校验码,只有卡号和此校验码同时验证通过时才可开门。
  8203. // 缺点:目前方案只支持一卡刷一个设备。
  8204. int nRepeatEnterRouteNum; // 反潜路径个数
  8205. int arRepeatEnterRoute[MAX_REPEATENTERROUTE_NUM]; // 反潜路径
  8206. int nRepeatEnterRouteTimeout; // 反潜超时时间
  8207. BOOL bNewDoor; // 是否启动新开门授权字段,TRUE表示使用nNewDoorNum和nNewDoors字段下发开门权限
  8208. int nNewDoorNum; // 有效的门数目;
  8209. int nNewDoors[MAX_ACCESSDOOR_NUM]; // 有权限的门序号,即CFG_CMD_ACCESS_EVENT配置的数组下标
  8210. int nNewTimeSectionNum; // 有效的的开门时间段数目
  8211. int nNewTimeSectionNo[MAX_ACCESSDOOR_NUM]; // 开门时间段索引,即CFG_ACCESS_TIMESCHEDULE_INFO的数组下标
  8212. char szCitizenIDNo[MAX_COMMON_STRING_32]; // 证件号码
  8213. int nSpecialDaysScheduleNum; // 假日计划表示数量
  8214. int arSpecialDaysSchedule[MAX_ACCESSDOOR_NUM]; // 假日计划标识
  8215. UINT nUserType; // 用户类型, 0 普通用户, 1 禁止名单用户
  8216. int nFloorNum; // 有效的楼层数量
  8217. char szFloorNo[MAX_ACCESS_FLOOR_NUM][DH_COMMON_STRING_4]; // 楼层号
  8218. char szSection[MAX_COMMON_STRING_64]; // 部门名称
  8219. int nScore; // 信用积分
  8220. char szCompanyName[MAX_COMPANY_NAME_LEN]; // 单位名称
  8221. UINT nSectionID; // 部门ID
  8222. NET_ACCESSCTLCARD_SEX emSex; // 性别
  8223. char szRole[MAX_COMMON_STRING_32]; // 角色
  8224. char szProjectNo[MAX_COMMON_STRING_32]; // 项目ID
  8225. char szProjectName[MAX_COMMON_STRING_64]; // 项目名称
  8226. char szBuilderName[MAX_COMMON_STRING_64]; // 施工单位全称
  8227. char szBuilderID[MAX_COMMON_STRING_32]; // 施工单位ID
  8228. char szBuilderType[MAX_COMMON_STRING_32]; // 施工单位类型
  8229. char szBuilderTypeID[MAX_COMMON_STRING_8]; // 施工单位类别ID
  8230. char szPictureID[MAX_COMMON_STRING_64]; // 人员照片ID
  8231. char szContractID[MAX_COMMON_STRING_16]; // 原合同系统合同编号
  8232. char szWorkerTypeID[MAX_COMMON_STRING_8]; // 工种ID
  8233. char szWorkerTypeName[MAX_COMMON_STRING_32]; // 工种名称
  8234. BOOL bPersonStatus; // 人员状态, TRUE:启用, FALSE:禁用
  8235. NET_ACCESSCTLCARD_AUTHORITY emAuthority; // 用户权限
  8236. char szCompanionName[120]; // 陪同人姓名
  8237. char szCompanionCompany[200]; // 陪同人单位
  8238. NET_TIME stuTmpAuthBeginTime; // 临时授权开始时间,当该时间和其他时间同时生效时,以此时间为最高优先级
  8239. NET_TIME stuTmpAuthEndTime; // 临时授权结束时间,当该时间和其他时间同时生效时,以此时间为最高优先级
  8240. BOOL bFloorNoExValid; // 楼层号扩展 szFloorNoEx 是否有效
  8241. int nFloorNumEx; // 有效的楼层数量扩展
  8242. char szFloorNoEx[512][DH_COMMON_STRING_4]; // 楼层号扩展
  8243. char szSubUserID[32]; // 用户ID
  8244. char szPhoneNumber[32]; // 人员电话号码
  8245. char szPhotoPath[256]; // 人员照片对应在ftp上的路径
  8246. char szCause[64]; // 来访原因
  8247. char szCompanionCard[32]; // 陪同人员证件号
  8248. char szCitizenAddress[128]; // 证件地址
  8249. NET_TIME stuBirthDay; // 出生日期(年月日有效)
  8250. BOOL bFloorNoEx2Valid; // stuFloors2 是否有效
  8251. NET_FLOORS_INFO* pstuFloorsEx2; // 楼层号(再次扩展)
  8252. char szDefaultFloor[8]; // 默认楼层号(梯控需求)
  8253. int nUserTimeSectionNum; // 用户时间段有效个数
  8254. char szUserTimeSections[6][20]; // 针对用户自身的开门时间段校验,最多支持6个时间段
  8255. char szWorkClass[256]; // 工作班别
  8256. NET_TIME stuStartTimeInPeriodOfValidity; // 有效时间段内启动时间
  8257. EM_TEST_ITEMS emTestItems; // 测试项目
  8258. UINT nAuthOverdueTime; // 授权时间、过期时间,时间单位: 小时
  8259. EM_GREENCNHEALTH_STATUS emGreenCNHealthStatus; // 人员健康状态
  8260. EM_ALLOW_PERMIT_FLAG emAllowPermitFlag; // 电子通行证状态
  8261. EM_RENT_STATE emRentState; // 对接第三方平台数据
  8262. int nConsumptionTimeSectionsNum; // 用户消费时间段
  8263. char szConsumptionTimeSections[42][34]; // 消费时间段.每天最多6个时间段,每6个元素对应一天。一共7天;
  8264. // 每个时段格式为"星期 时:分:秒-时:分:秒 消费类型 可消费次数 可消费金额"
  8265. }NET_RECORDSET_ACCESS_CTL_CARD;
  8266. ///@brief 门禁密码记录集信息
  8267. typedef struct tagNET_RECORDSET_ACCESS_CTL_PWD
  8268. {
  8269. DWORD dwSize;
  8270. int nRecNo; // 记录集编号,只读
  8271. NET_TIME stuCreateTime; // 创建时间
  8272. char szUserID[DH_MAX_USERID_LEN]; // 用户ID, 设备暂不支持
  8273. char szDoorOpenPwd[DH_MAX_CARDPWD_LEN]; // 开门密码
  8274. char szAlarmPwd[DH_MAX_CARDPWD_LEN]; // 报警密码
  8275. int nDoorNum; // 有效的的门数目
  8276. int sznDoors[DH_MAX_DOOR_NUM]; // 有权限的门序号,即CFG_CMD_ACCESS_EVENT配置CFG_ACCESS_EVENT_INFO的数组下标
  8277. char szVTOPosition[DH_COMMON_STRING_64]; // 门口机关联位置
  8278. int nTimeSectionNum; // 开门时间段个数
  8279. int nTimeSectionIndex[DH_MAX_TIMESECTION_NUM]; // 开门时间段索引,是个数组,每个元素与sznDoors中的门对应
  8280. BOOL bNewDoor; // 是否启动新开门授权字段,TRUE表示使用nNewDoorNum和nNewDoors字段下发开门权限
  8281. int nNewDoorNum; // 有效的门数目;
  8282. int nNewDoors[MAX_ACCESSDOOR_NUM]; // 有权限的门序号,即CFG_CMD_ACCESS_EVENT配置的数组下标
  8283. int nNewTimeSectionNum; // 有效的的开门时间段数目
  8284. int nNewTimeSectionNo[MAX_ACCESSDOOR_NUM]; // 开门时间段索引,即CFG_ACCESS_TIMESCHEDULE_INFO的数组下标
  8285. NET_TIME stuValidStartTime; // 开始有效期
  8286. NET_TIME stuValidEndTime; // 结束有效期
  8287. int nValidCounts; // 有效次数
  8288. char szCitizenIDNo[20]; // 证件号码
  8289. }NET_RECORDSET_ACCESS_CTL_PWD;
  8290. ///@brief 开门方式(门禁配置,门的一种工作模式)
  8291. typedef enum tagNET_DOOR_OPEN_METHOD
  8292. {
  8293. NET_DOOR_OPEN_METHOD_UNKNOWN = 0,
  8294. NET_DOOR_OPEN_METHOD_PWD_ONLY, // 只允许密码开锁
  8295. NET_DOOR_OPEN_METHOD_CARD, // 只允许刷卡开锁
  8296. NET_DOOR_OPEN_METHOD_PWD_OR_CARD, // 密码或刷卡开锁
  8297. NET_DOOR_OPEN_METHOD_CARD_FIRST, // 先刷卡后密码开锁
  8298. NET_DOOR_OPEN_METHOD_PWD_FIRST, // 先密码后刷卡开锁
  8299. NET_DOOR_OPEN_METHOD_SECTION, // 分时段开门
  8300. }NET_DOOR_OPEN_METHOD;
  8301. ///@brief 开门方式(门禁事件,门禁出入记录,实际的开门方式)
  8302. typedef enum tagNET_ACCESS_DOOROPEN_METHOD
  8303. {
  8304. NET_ACCESS_DOOROPEN_METHOD_UNKNOWN = 0,
  8305. NET_ACCESS_DOOROPEN_METHOD_PWD_ONLY, // 密码开锁
  8306. NET_ACCESS_DOOROPEN_METHOD_CARD, // 刷卡开锁
  8307. NET_ACCESS_DOOROPEN_METHOD_CARD_FIRST, // 先刷卡后密码开锁
  8308. NET_ACCESS_DOOROPEN_METHOD_PWD_FIRST, // 先密码后刷卡开锁
  8309. NET_ACCESS_DOOROPEN_METHOD_REMOTE, // 远程开锁,如通过室内机或者平台对门口机开锁
  8310. NET_ACCESS_DOOROPEN_METHOD_BUTTON, // 开锁按钮进行开锁
  8311. NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT, // 信息开锁
  8312. NET_ACCESS_DOOROPEN_METHOD_PWD_CARD_FINGERPRINT, // 密码+刷卡+信息组合开锁
  8313. NET_ACCESS_DOOROPEN_METHOD_PWD_FINGERPRINT = 10, // 密码+信息组合开锁
  8314. NET_ACCESS_DOOROPEN_METHOD_CARD_FINGERPRINT = 11, // 刷卡+信息组合开锁
  8315. NET_ACCESS_DOOROPEN_METHOD_PERSONS = 12, // 多人开锁
  8316. NET_ACCESS_DOOROPEN_METHOD_KEY = 13, // 钥匙开门
  8317. NET_ACCESS_DOOROPEN_METHOD_COERCE_PWD = 14, // 胁迫密码开门
  8318. NET_ACCESS_DOOROPEN_METHOD_QRCODE = 15, // 二维码开门
  8319. NET_ACCESS_DOOROPEN_METHOD_FACE_RECOGNITION = 16, // 目标识别开门
  8320. NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD = 18, // 人证对比
  8321. NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD_AND_IDCARD = 19, // 证件+ 人证比对
  8322. NET_ACCESS_DOOROPEN_METHOD_BLUETOOTH = 20, //蓝牙开门
  8323. NET_ACCESS_DOOROPEN_METHOD_CUSTOM_PASSWORD = 21, // 个性化密码开门
  8324. NET_ACCESS_DOOROPEN_METHOD_USERID_AND_PWD = 22, // UserID+密码
  8325. NET_ACCESS_DOOROPEN_METHOD_FACE_AND_PWD = 23, // 目标+密码开锁
  8326. NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_PWD = 24, // 信息+密码开锁
  8327. NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_FACE = 25, // 信息+目标开锁
  8328. NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FACE = 26, // 刷卡+目标开锁
  8329. NET_ACCESS_DOOROPEN_METHOD_FACE_OR_PWD = 27, // 目标或密码开锁
  8330. NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_PWD = 28, // 信息或密码开锁
  8331. NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_FACE = 29, // 信息或开锁
  8332. NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FACE = 30, // 刷卡或目标开锁
  8333. NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT = 31, // 刷卡或信息开锁
  8334. NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_AND_FACE_AND_PWD = 32, // 信息+目标+密码开锁
  8335. NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FACE_AND_PWD = 33, // 刷卡+目标+密码开锁
  8336. NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FINGERPRINT_AND_PWD = 34, // 刷卡+信息+密码开锁
  8337. NET_ACCESS_DOOROPEN_METHOD_CARD_AND_PWD_AND_FACE = 35, // 卡+信息+目标组合开锁
  8338. NET_ACCESS_DOOROPEN_METHOD_FINGERPRINT_OR_FACE_OR_PWD = 36, // 信息或目标或密码
  8339. NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FACE_OR_PWD = 37, // 卡或目标或密码开锁
  8340. NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE = 38, // 卡或信息或目标开锁
  8341. NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FINGERPRINT_AND_FACE_AND_PWD = 39, // 卡+信息+目标+密码组合开锁
  8342. NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE_OR_PWD = 40, // 卡或信息或目标或密码开锁
  8343. NET_ACCESS_DOOROPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FACE = 41, //(证件+人证比对)或 刷卡 或 目标
  8344. NET_ACCESS_DOOROPEN_METHOD_FACEIDCARD_OR_CARD_OR_FACE = 42, // 人证比对 或 刷卡(二维码) 或 目标
  8345. NET_ACCESS_DOOROPEN_METHOD_DTMF = 43, //DTMF开锁(包括SIPINFO,RFC2833,INBAND)
  8346. NET_ACCESS_DOOROPEN_METHOD_REMOTE_QRCODE = 44, // 远程二维码开门
  8347. NET_ACCESS_DOOROPEN_METHOD_REMOTE_FACE = 45, // 远程目标开门
  8348. NET_ACCESS_DOOROPEN_METHOD_CITIZEN_FINGERPRINT = 46, // 人证比对开门(信息)
  8349. NET_ACCESS_DOOROPEN_METHOD_TEMPORARY_PASSWORD = 47, // 临时密码开门
  8350. NET_ACCESS_DOOROPEN_METHOD_HEALTHCODE = 48, // 健康码开门
  8351. NET_ACCESS_DOOROPEN_METHOD_IRIS = 49, // 目标识别开锁
  8352. NET_ACCESS_DOOROPEN_METHOD_IRIS_AND_PASSWORD = 50, // 眼睛+密码组合开锁
  8353. NET_ACCESS_DOOROPEN_METHOD_FACE_AND_IRIS = 51, // 目标+眼睛组合开锁
  8354. NET_ACCESS_DOOROPEN_METHOD_CARD_AND_IRIS = 52, // 卡+眼睛组合开锁
  8355. NET_ACCESS_DOOROPEN_METHOD_IRIS_OR_PASSWORD = 53, // 眼睛或密码开锁
  8356. NET_ACCESS_DOOROPEN_METHOD_FACE_OR_IRIS = 54, // 目标或眼睛开锁
  8357. NET_ACCESS_DOOROPEN_METHOD_CARD_OR_IRIS = 55, // 卡或眼睛开锁
  8358. NET_ACCESS_DOOROPEN_METHOD_FACE_AND_IRIS_AND_PASSWORD = 56, // 目标+眼睛+密码组合开锁
  8359. NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FACE_AND_IRIS = 57, // 卡+目标+眼睛组合开锁
  8360. NET_ACCESS_DOOROPEN_METHOD_CARD_AND_IRIS_AND_PASSWORD = 58, // 卡+眼睛+密码组合开锁
  8361. NET_ACCESS_DOOROPEN_METHOD_FACE_OR_IRIS_OR_PASSWORD = 59, // 目标或眼睛或密码开锁
  8362. NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FACE_OR_IRIS = 60, // 卡或目标或眼睛开锁
  8363. NET_ACCESS_DOOROPEN_METHOD_CARD_OR_IRIS_OR_PASSWORD = 61, // 卡或眼睛或密码开锁
  8364. NET_ACCESS_DOOROPEN_METHOD_CARD_AND_FACE_AND_IRIS_AND_PASSWORD = 62,// 卡+目标+眼睛+密码组合开锁
  8365. NET_ACCESS_DOOROPEN_METHOD_CARD_OR_FACE_OR_IRIS_OR_PASSWORD = 63, // 卡或目标或眼睛或密码开锁
  8366. }NET_ACCESS_DOOROPEN_METHOD;
  8367. ///@brief 考勤状态
  8368. typedef enum tagNET_ATTENDANCESTATE
  8369. {
  8370. NET_ATTENDANCESTATE_UNKNOWN,
  8371. NET_ATTENDANCESTATE_SIGNIN, //签入
  8372. NET_ATTENDANCESTATE_GOOUT, //外出
  8373. NET_ATTENDANCESTATE_GOOUT_AND_RETRUN, //外出归来
  8374. NET_ATTENDANCESTATE_SIGNOUT, // 签出
  8375. NET_ATTENDANCESTATE_WORK_OVERTIME_SIGNIN, // 加班签到
  8376. NET_ATTENDANCESTATE_WORK_OVERTIME_SIGNOUT, // 加班签出
  8377. }NET_ATTENDANCESTATE;
  8378. ///@brief 开门方向
  8379. typedef enum tagNET_ENUM_DIRECTION_ACCESS_CTL
  8380. {
  8381. NET_ENUM_DIRECTION_UNKNOWN,
  8382. NET_ENUM_DIRECTION_ENTRY, // 进门
  8383. NET_ENUM_DIRECTION_EXIT, // 出门
  8384. }NET_ENUM_DIRECTION_ACCESS_CTL;
  8385. ///@brief 民族
  8386. typedef enum tagEM_CITIZENIDCARD_EC_TYPE
  8387. {
  8388. EM_CITIZENIDCARD_EC_Unknown = 0, // 未知
  8389. EM_CITIZENIDCARD_EC_Han, // 汉族
  8390. EM_CITIZENIDCARD_EC_Mongolian, // 蒙古族
  8391. EM_CITIZENIDCARD_EC_Hui, // 回族
  8392. EM_CITIZENIDCARD_EC_Tibetan, // 藏族
  8393. EM_CITIZENIDCARD_EC_Uygur, // 维吾尔族
  8394. EM_CITIZENIDCARD_EC_Miao, // 苗族
  8395. EM_CITIZENIDCARD_EC_Yi, // 彝族
  8396. EM_CITIZENIDCARD_EC_Zhuang, // 壮族
  8397. EM_CITIZENIDCARD_EC_Bouyei, // 布依族
  8398. EM_CITIZENIDCARD_EC_Korean, // 朝鲜族
  8399. EM_CITIZENIDCARD_EC_Manchu, // 满族
  8400. EM_CITIZENIDCARD_EC_Dong, // 侗族
  8401. EM_CITIZENIDCARD_EC_Yao, // 瑶族
  8402. EM_CITIZENIDCARD_EC_Bai, // 白族
  8403. EM_CITIZENIDCARD_EC_Tujia, // 土家族
  8404. EM_CITIZENIDCARD_EC_Hani, // 哈尼族
  8405. EM_CITIZENIDCARD_EC_Kazak, // 哈萨克族
  8406. EM_CITIZENIDCARD_EC_Dai, // 傣族
  8407. EM_CITIZENIDCARD_EC_Li, // 黎族
  8408. EM_CITIZENIDCARD_EC_Lisu, // 傈僳族
  8409. EM_CITIZENIDCARD_EC_Va, // 佤族
  8410. EM_CITIZENIDCARD_EC_She, // 畲族
  8411. EM_CITIZENIDCARD_EC_Gaoshan, // 高山族
  8412. EM_CITIZENIDCARD_EC_Lahu, // 拉祜族
  8413. EM_CITIZENIDCARD_EC_Shui, // 水族
  8414. EM_CITIZENIDCARD_EC_Dongxiang, // 东乡族
  8415. EM_CITIZENIDCARD_EC_Naxi, // 纳西族
  8416. EM_CITIZENIDCARD_EC_Jingpo, // 景颇族
  8417. EM_CITIZENIDCARD_EC_Kirgiz, // 柯尔克孜族
  8418. EM_CITIZENIDCARD_EC_Tu, // 土族
  8419. EM_CITIZENIDCARD_EC_Daur, // 达斡尔族
  8420. EM_CITIZENIDCARD_EC_Mulam, // 仫佬族
  8421. EM_CITIZENIDCARD_EC_Qoiang, // 羌族
  8422. EM_CITIZENIDCARD_EC_Blang, // 布朗族
  8423. EM_CITIZENIDCARD_EC_Salar, // 撒拉族
  8424. EM_CITIZENIDCARD_EC_Maonan, // 毛南族
  8425. EM_CITIZENIDCARD_EC_Gelo, // 仡佬族
  8426. EM_CITIZENIDCARD_EC_Xibe, // 锡伯族
  8427. EM_CITIZENIDCARD_EC_Achang, // 阿昌族
  8428. EM_CITIZENIDCARD_EC_Pumi, // 普米族
  8429. EM_CITIZENIDCARD_EC_Tajik, // 塔吉克族
  8430. EM_CITIZENIDCARD_EC_Nu, // 怒族
  8431. EM_CITIZENIDCARD_EC_Ozbek, // 乌孜别克族
  8432. EM_CITIZENIDCARD_EC_Russian, // 俄罗斯族
  8433. EM_CITIZENIDCARD_EC_Ewenkl, // 鄂温克族
  8434. EM_CITIZENIDCARD_EC_Deang, // 德昂族
  8435. EM_CITIZENIDCARD_EC_Bonan, // 保安族
  8436. EM_CITIZENIDCARD_EC_Yugur, // 裕固族
  8437. EM_CITIZENIDCARD_EC_Jing, // 京族
  8438. EM_CITIZENIDCARD_EC_Tatar, // 塔塔尔族
  8439. EM_CITIZENIDCARD_EC_Drung, // 独龙族
  8440. EM_CITIZENIDCARD_EC_Oroqen, // 鄂伦春族
  8441. EM_CITIZENIDCARD_EC_Hezhen, // 赫哲族
  8442. EM_CITIZENIDCARD_EC_Moinba, // 门巴族
  8443. EM_CITIZENIDCARD_EC_Lhoba, // 珞巴族
  8444. EM_CITIZENIDCARD_EC_Jino // 基诺族
  8445. }EM_CITIZENIDCARD_EC_TYPE;
  8446. ///@brief 性别
  8447. typedef enum tagEM_CITIZENIDCARD_SEX_TYPE
  8448. {
  8449. EM_CITIZENIDCARD_SEX_TYPE_UNKNOWN, // 未知
  8450. EM_CITIZENIDCARD_SEX_TYPE_MALE, // 男
  8451. EM_CITIZENIDCARD_SEX_TYPE_FEMALE, // 女
  8452. EM_CITIZENIDCARD_SEX_TYPE_UNTOLD, // 未说明
  8453. }EM_CITIZENIDCARD_SEX_TYPE;
  8454. ///@brief 人体测温温度单位
  8455. typedef enum tagEM_HUMAN_TEMPERATURE_UNIT
  8456. {
  8457. EM_HUMAN_TEMPERATURE_UNKNOWN = -1, // 未知
  8458. EM_HUMAN_TEMPERATURE_CENTIGRADE, // 摄氏度
  8459. EM_HUMAN_TEMPERATURE_FAHRENHEIT, // 华氏度
  8460. EM_HUMAN_TEMPERATURE_KELVIN, // 开尔文
  8461. } EM_HUMAN_TEMPERATURE_UNIT;
  8462. ///@brief 人体测温状态
  8463. typedef enum tagEM_HUMAN_TEMPERATURE_STATUS
  8464. {
  8465. EM_HUMAN_TEMPERATURE_STATUS_UNKNOWN = -1, // 未知
  8466. EM_HUMAN_TEMPERATURE_STATUS_LOW, // 温度异常
  8467. EM_HUMAN_TEMPERATURE_STATUS_NORMAL, // 正常
  8468. EM_HUMAN_TEMPERATURE_STATUS_HIGH, // 温度异常
  8469. }EM_HUMAN_TEMPERATURE_STATUS;
  8470. ///@brief 人员温度信息
  8471. typedef struct tagNET_MAN_TEMPERATURE_INFO
  8472. {
  8473. float fCurrentTemperature; // 人员体温
  8474. EM_HUMAN_TEMPERATURE_UNIT emTemperatureUnit; // 温度单位
  8475. BOOL bIsOverTemperature; // 是否超温
  8476. EM_HUMAN_TEMPERATURE_STATUS emTemperatureStatus; // 人体测温状态
  8477. BYTE byReserved[256]; // 预留字节
  8478. } NET_MAN_TEMPERATURE_INFO;
  8479. ///@brief 陪同人员信息
  8480. typedef struct tagNET_COMPANION_INFO
  8481. {
  8482. char szCompanionCard[32]; // 陪同者卡号
  8483. char szCompanionUserID[32]; // 陪同者ID
  8484. char szCompanionName[120]; // 陪同者姓名
  8485. char szCompanionCompany[200]; // 陪同者单位
  8486. BYTE byReserved[56]; // 预留字段
  8487. }NET_COMPANION_INFO;
  8488. ///@brief 口罩状态
  8489. typedef enum tagEM_MASK_STATE_TYPE
  8490. {
  8491. EM_MASK_STATE_UNKNOWN, // 未知
  8492. EM_MASK_STATE_NODISTI, // 未识别
  8493. EM_MASK_STATE_NOMASK, // 没戴口罩
  8494. EM_MASK_STATE_WEAR, // 戴口罩
  8495. } EM_MASK_STATE_TYPE;
  8496. ///@brief 刷卡开门时,门禁后台校验目标是否是同一个人
  8497. typedef enum tagEM_FACE_CHECK
  8498. {
  8499. EM_FACE_CHECK_UNKNOWN = -1, // 未知
  8500. EM_FACE_CHECK_NODATA, // 该人员无目标数据
  8501. EM_FACE_CHECK_CONSISTENT, // 刷卡和目标人员一致
  8502. EM_FACE_CHECK_NOT_CONSISTENT // 刷卡和目标人员不一致
  8503. }EM_FACE_CHECK;
  8504. ///@brief 二维码是否过期
  8505. typedef enum tagEM_QRCODE_IS_EXPIRED
  8506. {
  8507. EM_QRCODE_EXPIRED_UNKNOWN, // 未知
  8508. EM_QRCODE_NO_EXPIRED, // 未过期
  8509. EM_QRCODE_EXPIRED, // 过期
  8510. }EM_QRCODE_IS_EXPIRED;
  8511. ///@brief 二维码状态
  8512. typedef enum tagEM_QRCODE_STATE
  8513. {
  8514. EM_QRCODE_STATE_UNKNOWN, // 未知
  8515. EM_QRCODE_STATE_CLEARED, // 已批准
  8516. EM_QRCODE_STATE_NOCLEARED, // 未批准
  8517. }EM_QRCODE_STATE;
  8518. ///@brief 梯控方式触发者
  8519. typedef enum tagEM_LIFT_CALLER_TYPE
  8520. {
  8521. EM_LIFT_CALLER_TYPE_UNKNOWN = 0, // 未知
  8522. EM_LIFT_CALLER_TYPE_VTO, // VTO 呼叫
  8523. EM_LIFT_CALLER_TYPE_PLATFORM, // 平台呼叫
  8524. EM_LIFT_CALLER_TYPE_LOCAL_AUTH, // 本机鉴权呼叫
  8525. EM_LIFT_CALLER_TYPE_ACCESS_CONTROL, // 门禁呼梯(梯控需求)
  8526. }EM_LIFT_CALLER_TYPE;
  8527. ///@brief 行程码状态
  8528. typedef enum tagEM_TRAVEL_CODE_COLOR
  8529. {
  8530. EM_TRAVEL_CODE_COLOR_UNKNOWN, // 未知
  8531. EM_TRAVEL_CODE_COLOR_RED, // 红
  8532. EM_TRAVEL_CODE_COLOR_GREEN, // 绿
  8533. EM_TRAVEL_CODE_COLOR_YELLOW, // 黄
  8534. EM_TRAVEL_CODE_COLOR_ORANGE, // 橙
  8535. } EM_TRAVEL_CODE_COLOR;
  8536. ///@brief 门禁刷卡记录记录集信息
  8537. typedef struct tagNET_RECORDSET_ACCESS_CTL_CARDREC
  8538. {
  8539. DWORD dwSize;
  8540. int nRecNo; // 记录集编号,只读
  8541. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  8542. char szPwd[DH_MAX_CARDPWD_LEN]; // 密码
  8543. NET_TIME stuTime; // 刷卡时间
  8544. BOOL bStatus; // 刷卡结果,TRUE表示成功,FALSE表示失败
  8545. NET_ACCESS_DOOROPEN_METHOD emMethod; // 开门方式
  8546. int nDoor; // 门号,即CFG_CMD_ACCESS_EVENT配置CFG_ACCESS_EVENT_INFO的数组下标
  8547. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  8548. int nReaderID; // 读卡器ID (废弃,不再使用)
  8549. char szSnapFtpUrl[MAX_PATH]; // 开锁抓拍上传的FTP地址
  8550. char szReaderID[DH_COMMON_STRING_32]; // 读卡器ID // 开门并上传抓拍照片,在记录集记录存储地址,成功才有
  8551. NET_ACCESSCTLCARD_TYPE emCardType; // 卡类型
  8552. int nErrorCode; // 开门失败的原因,仅在bStatus为FALSE时有效
  8553. // 0x00 没有错误
  8554. // 0x10 未授权
  8555. // 0x11 卡挂失或注销
  8556. // 0x12 没有该门权限
  8557. // 0x13 开门模式错误
  8558. // 0x14 有效期错误
  8559. // 0x15 防反潜模式
  8560. // 0x16 胁迫报警未打开
  8561. // 0x17 门常闭状态
  8562. // 0x18 AB互锁状态
  8563. // 0x19 巡逻卡
  8564. // 0x1A 设备处于闯入报警状态
  8565. // 0x20 时间段错误
  8566. // 0x21 假期内开门时间段错误
  8567. // 0x23 卡逾期
  8568. // 0x30 需要先验证有首卡权限的卡片
  8569. // 0x40 卡片正确,输入密码错误
  8570. // 0x41 卡片正确,输入密码超时
  8571. // 0x42 卡片正确,输入信息错误
  8572. // 0x43 卡片正确,输入信息超时
  8573. // 0x44 信息正确,输入密码错误
  8574. // 0x45 信息正确,输入密码超时
  8575. // 0x50 组合开门顺序错误
  8576. // 0x51 组合开门需要继续验证
  8577. // 0x60 验证通过,控制台未授权
  8578. // 0x61 卡片正确,目标错误
  8579. // 0x62 卡片正确,目标超时
  8580. // 0x63 重复进入
  8581. // 0x64 未授权,需要后端平台识别
  8582. // 0x65 体温过高
  8583. // 0x66 未戴口罩
  8584. // 0x67 健康码获取失败
  8585. // 0x68 黄码禁止通行
  8586. // 0x69 红码禁止通行
  8587. // 0x6a 健康码无效
  8588. // 0x6b 绿码验证通过
  8589. // 0x6c 绿码,核酸为异常
  8590. // 0x6d 绿码,未接种
  8591. // 0x6f 绿码,抗原为异常
  8592. // 0x70 获取健康码信息
  8593. char szRecordURL[MAX_COMMON_STRING_128]; // 刷卡录像的地址
  8594. int nNumbers; // 抓图的张数
  8595. NET_ATTENDANCESTATE emAttendanceState; // 考勤状态
  8596. NET_ENUM_DIRECTION_ACCESS_CTL emDirection; // 开门方向
  8597. char szClassNumber[MAX_CLASS_NUMBER_LEN]; // 班级(考勤)
  8598. char szPhoneNumber[MAX_PHONENUMBER_LEN]; // 电话(考勤)
  8599. char szCardName[DH_MAX_CARDNAME_LEN]; // 卡命名
  8600. char szSN[DH_COMMON_STRING_32]; // 智能锁序列号,无线配件需要该字段
  8601. BOOL bCitizenIDResult; // 人证比对结果
  8602. char szCitizenIDName[30]; // 名字
  8603. BYTE byReserved1[2]; // 字节对齐
  8604. EM_CITIZENIDCARD_SEX_TYPE emCitizenIDSex; // 性别
  8605. EM_CITIZENIDCARD_EC_TYPE emCitizenIDEC; // 民族
  8606. NET_TIME stuCitizenIDBirth; // 出生日期(时分秒无效)
  8607. char szCitizenIDAddress[108]; // 住址
  8608. char szCitizenIDAuthority[48]; // 签发机关
  8609. NET_TIME stuCitizenIDStart; // 有效起始日期(时分秒无效)
  8610. NET_TIME stuCitizenIDEnd; // 有效截止日期(时分秒无效, 年为负数时表示长期有效)
  8611. BOOL bIsEndless; // 是否长期有效
  8612. char szSnapFaceURL[DH_COMMON_STRING_128]; // 目标图片保存地址
  8613. char szCitizenPictureURL[DH_COMMON_STRING_128]; // 证件图片保存地址
  8614. char szCitizenIDNo[20]; // 证件号码
  8615. NET_ACCESSCTLCARD_SEX emSex; // 性别
  8616. char szRole[MAX_COMMON_STRING_32]; // 角色
  8617. char szProjectNo[MAX_COMMON_STRING_32]; // 项目ID
  8618. char szProjectName[MAX_COMMON_STRING_64]; // 项目名称
  8619. char szBuilderName[MAX_COMMON_STRING_64]; // 施工单位全称
  8620. char szBuilderID[MAX_COMMON_STRING_32]; // 施工单位ID
  8621. char szBuilderType[MAX_COMMON_STRING_32]; // 施工单位类型
  8622. char szBuilderTypeID[MAX_COMMON_STRING_8]; // 施工单位类别ID
  8623. char szPictureID[MAX_COMMON_STRING_64]; // 人员照片ID
  8624. char szContractID[MAX_COMMON_STRING_16]; // 原合同系统合同编号
  8625. char szWorkerTypeID[MAX_COMMON_STRING_8]; // 工种ID
  8626. char szWorkerTypeName[MAX_COMMON_STRING_32]; // 工种名称
  8627. BOOL bPersonStatus; // 人员状态, TRUE:启用, FALSE:禁用
  8628. EM_HAT_STYLE emHatStyle; // 帽子类型
  8629. EM_UNIFIED_COLOR_TYPE emHatColor; // 帽子颜色
  8630. NET_MAN_TEMPERATURE_INFO stuManTemperatureInfo; // 人员温度信息
  8631. int nCompanionInfo; // 陪同人员 stuCompanionInfo 个数
  8632. NET_COMPANION_INFO stuCompanionInfo[12]; // 陪同人员信息:姓名、卡号字段有效
  8633. EM_MASK_STATE_TYPE emMask; // 口罩状态(EM_MASK_STATE_UNKNOWN、EM_MASK_STATE_NOMASK、EM_MASK_STATE_WEAR 有效)
  8634. UINT nFaceIndex; // 一人多脸的目标序号
  8635. int nScore; // 目标质量评分
  8636. int nLiftNo; // 电梯编号
  8637. char szQRCode[512]; // 二维码
  8638. EM_FACE_CHECK emFaceCheck; // 刷卡开门时,门禁后台校验目标是否是同一个人
  8639. EM_QRCODE_IS_EXPIRED emQRCodeIsExpired; // 二维码是否过期。默认值0
  8640. EM_QRCODE_STATE emQRCodeState; // 二维码状态
  8641. NET_TIME stuQRCodeValidTo; // 二维码截止日期
  8642. EM_LIFT_CALLER_TYPE emLiftCallerType; // 梯控方式触发者
  8643. UINT nBlockId; // 上报事件数据序列号从1开始自增
  8644. char szSection[64]; // 部门名称
  8645. char szWorkClass[256]; // 工作班级
  8646. EM_TEST_ITEMS emTestItems; // 测试项目
  8647. NET_TEST_RESULT stuTestResult; // ESD阻值测试结果
  8648. BOOL bUseCardNameEx; // 是否使用卡命名扩展
  8649. char szCardNameEx[128]; // 卡命名扩展
  8650. int nHSJCResult; //核酸检测报告结果 -1: 未知 0: 异常 1: 正常 2: 未检测 3: 过期
  8651. int nVaccinateFlag; //是否已接种新冠疫苗(0:否,1:是)
  8652. char szVaccineName[128]; //新冠疫苗名称
  8653. int nDateCount; //历史接种日期有效数
  8654. char szVaccinateDate[8][32]; //历史接种日期 历史接种日期 (yyyy-MM-dd)。 ”0000-00-00”,表示已接种,但无具体日期。
  8655. EM_TRAVEL_CODE_COLOR emTravelCodeColor; //返回行程码状态信息
  8656. int nCityCount; //最近14天经过的城市名有效数
  8657. char szPassingCity[16][128]; //最近14天经过的城市名(按照时间顺序排列)最早经过的城市放第一个。
  8658. char szTrafficPlate[32]; //车牌
  8659. char szRecordLocalUrl[128]; // 刷卡录像的地址
  8660. char szHSJCReportDate[32]; // 核酸检测报告日期(格式: yyyy-MM-dd)
  8661. int nHSJCExpiresIn; // 核酸检测报告有效期(单位:天)
  8662. char szAntigenReportDate[32]; // 抗原检测报告日期(格式: yyyy-MM-dd)
  8663. int nAntigenStatus; // 抗原检测报告结果: -1:未知 0: 异常 1: 正常 2: 未检测 3: 过期
  8664. int nAntigenExpiresIn; // 抗原检测报告有效期(单位:天)
  8665. char szCheckOutType[32]; // 签出类型
  8666. char szCheckOutCause[512]; // 签出原因
  8667. NET_TIME stuCreateTimeRealUTC; // 刷卡时间,真实UTC时间
  8668. char szLocationName[256]; // 场所码名称
  8669. char szLocationAddress[256]; // 场所码详细地址
  8670. char szLocationType[256]; // 场所码类型
  8671. }NET_RECORDSET_ACCESS_CTL_CARDREC;
  8672. ///@brief 假日记录集信息
  8673. typedef struct tagNET_RECORDSET_HOLIDAY
  8674. {
  8675. DWORD dwSize;
  8676. int nRecNo; // 记录集编号,只读
  8677. int nDoorNum; // 有效的的门数目
  8678. int sznDoors[DH_MAX_DOOR_NUM]; // 有权限的门序号,即CFG_CMD_ACCESS_EVENT配置CFG_ACCESS_EVENT_INFO的数组下标
  8679. NET_TIME stuStartTime; // 开始时间
  8680. NET_TIME stuEndTime; // 结束时间
  8681. BOOL bEnable; // 假期使能
  8682. char szHolidayNo[DH_COMMON_STRING_32]; // 假期编号
  8683. char szHolidayName[DH_COMMON_STRING_128]; // 假期名称
  8684. }NET_RECORDSET_HOLIDAY;
  8685. ///@brief 卡号省份
  8686. typedef enum tagEM_CARD_PROVINCE
  8687. {
  8688. EM_CARD_UNKNOWN = 10, // 解析出错,未知省份
  8689. EM_CARD_BEIJING = 11, // 北京
  8690. EM_CARD_TIANJIN = 12, // 天津
  8691. EM_CARD_HEBEI = 13, // 河北
  8692. EM_CARD_SHANXI_TAIYUAN = 14, // 山西
  8693. EM_CARD_NEIMENGGU = 15, // 内蒙古
  8694. EM_CARD_LIAONING = 21, // 辽宁
  8695. EM_CARD_JILIN = 22, // 吉林
  8696. EM_CARD_HEILONGJIANG = 23, // 黑龙江
  8697. EM_CARD_SHANGHAI = 31, // 上海
  8698. EM_CARD_JIANGSU = 32, // 江苏
  8699. EM_CARD_ZHEJIANG = 33, // 浙江
  8700. EM_CARD_ANHUI = 34, // 安徽
  8701. EM_CARD_FUJIAN = 35, // 福建
  8702. EM_CARD_JIANGXI = 36, // 江西
  8703. EM_CARD_SHANDONG = 37, // 山东
  8704. EM_CARD_HENAN = 41, // 河南
  8705. EM_CARD_HUBEI = 42, // 湖北
  8706. EM_CARD_HUNAN = 43, // 湖南
  8707. EM_CARD_GUANGDONG = 44, // 广东
  8708. EM_CARD_GUANGXI = 45, // 广西
  8709. EM_CARD_HAINAN = 46, // 海南
  8710. EM_CARD_CHONGQING = 50, // 重庆
  8711. EM_CARD_SICHUAN = 51, // 四川
  8712. EM_CARD_GUIZHOU = 52, // 贵州
  8713. EM_CARD_YUNNAN = 53, // 云南
  8714. EM_CARD_XIZANG = 54, // 西藏
  8715. EM_CARD_SHANXI_XIAN = 61, // 陕西
  8716. EM_CARD_GANSU = 62, // 甘肃
  8717. EM_CARD_QINGHAI = 63, // 青海
  8718. EM_CARD_NINGXIA = 64, // 宁夏
  8719. EM_CARD_XINJIANG = 65, // 新疆
  8720. EM_CARD_XIANGGANG = 71, // 香港
  8721. EM_CARD_AOMEN = 82, // 澳门
  8722. EM_CARD_TAIWAN = 83, // 台湾
  8723. } EM_CARD_PROVINCE;
  8724. ///@brief 车辆类型
  8725. typedef enum tagEM_CAR_TYPE
  8726. {
  8727. EM_CAR_0, //其他车辆
  8728. EM_CAR_1, //大型普通客车
  8729. EM_CAR_2, //大型双层客车
  8730. EM_CAR_3, //大型卧铺客车
  8731. EM_CAR_4, //大型铰接客车
  8732. EM_CAR_5, //大型越野客车
  8733. EM_CAR_6, //大型轿车
  8734. EM_CAR_7, //大型专用客车
  8735. EM_CAR_8, //大型专用校车
  8736. EM_CAR_9, //中型普通客车
  8737. EM_CAR_10, //中型双层客车
  8738. EM_CAR_11, //中型卧铺客车
  8739. EM_CAR_12, //中型铰接客车
  8740. EM_CAR_13, //中型越野客车
  8741. EM_CAR_14, //中型轿车
  8742. EM_CAR_15, //中型专用客车
  8743. EM_CAR_16, //中型专用校车
  8744. EM_CAR_17, //小型普通客车
  8745. EM_CAR_18, //小型越野客车
  8746. EM_CAR_19, //小型轿车
  8747. EM_CAR_20, //小型专用客车
  8748. EM_CAR_21, //小型专用校车
  8749. EM_CAR_22, //小型面包车
  8750. EM_CAR_23, //微型普通客车
  8751. EM_CAR_24, //微型越野客车
  8752. EM_CAR_25, //微型轿车
  8753. EM_CAR_26, //微型面包车
  8754. EM_CAR_27, //重型半挂牵引车
  8755. EM_CAR_28, //重型全挂牵引车
  8756. EM_CAR_29, //中型半挂牵引车
  8757. EM_CAR_30, //中型全挂牵引车
  8758. EM_CAR_31, //轻型半挂牵引车
  8759. EM_CAR_32, //轻型全挂牵引车
  8760. EM_CAR_33, //大型非载货专项作业车
  8761. EM_CAR_34, //大型载货专项作业车
  8762. EM_CAR_35, //中型非载货专项作业车
  8763. EM_CAR_36, //中型载货专项作业车
  8764. EM_CAR_37, //小型非载货专项作业车
  8765. EM_CAR_38, //小型载货专项作业车
  8766. EM_CAR_39, //微型非载货专项作业车
  8767. EM_CAR_40, //微型载货专项作业车
  8768. EM_CAR_41, //重型非载货专项作业车
  8769. EM_CAR_42, //重型载货专项作业车
  8770. EM_CAR_43, //轻型非载货专项作业车
  8771. EM_CAR_44, //轻型载货专项作业车
  8772. EM_CAR_45, //普通正三轮摩托车
  8773. EM_CAR_46, //轻便正三轮摩托车
  8774. EM_CAR_47, //正三轮载客摩托车
  8775. EM_CAR_48, //正三轮载货摩托车
  8776. EM_CAR_49, //侧三轮摩托车
  8777. EM_CAR_50, //普通二轮摩托车
  8778. EM_CAR_51, //轻便二轮摩托车
  8779. EM_CAR_52, //无轨电车
  8780. EM_CAR_53, //有轨电车
  8781. EM_CAR_54, //三轮汽车
  8782. EM_CAR_55, //轮式装载机械
  8783. EM_CAR_56, //轮式挖掘机械
  8784. EM_CAR_57, //轮式平地机械
  8785. EM_CAR_58, //重型普通货车
  8786. EM_CAR_59, //重型厢式货车
  8787. EM_CAR_60, //重型封闭货车
  8788. EM_CAR_61, //重型罐式货车
  8789. EM_CAR_62, //重型平板货车
  8790. EM_CAR_63, //重型集装箱车
  8791. EM_CAR_64, //重型自卸货车
  8792. EM_CAR_65, //重型特殊结构货车
  8793. EM_CAR_66, //重型仓栅式货车
  8794. EM_CAR_67, //重型车辆运输车
  8795. EM_CAR_68, //重型厢式自卸货车
  8796. EM_CAR_69, //重型罐式自卸货车
  8797. EM_CAR_70, //重型平板自卸货车
  8798. EM_CAR_71, //重型集装箱自卸货车
  8799. EM_CAR_72, //重型特殊结构自卸货车
  8800. EM_CAR_73, //重型仓栅式自卸货车
  8801. EM_CAR_74, //中型普通货车
  8802. EM_CAR_75, //中型厢式货车
  8803. EM_CAR_76, //中型封闭货车
  8804. EM_CAR_77, //中型罐式货车
  8805. EM_CAR_78, //中型平板货车
  8806. EM_CAR_79, //中型集装箱车
  8807. EM_CAR_80, //中型自卸货车
  8808. EM_CAR_81, //中型特殊结构货车
  8809. EM_CAR_82, //中型仓栅式货车
  8810. EM_CAR_83, //中型车辆运输车
  8811. EM_CAR_84, //中型厢式自卸货车
  8812. EM_CAR_85, //中型罐式自卸货车
  8813. EM_CAR_86, //中型平板自卸货车
  8814. EM_CAR_87, //中型集装箱自卸货车
  8815. EM_CAR_88, //中型特殊结构自卸货车
  8816. EM_CAR_89, //中型仓栅式自卸货车
  8817. EM_CAR_90, //轻型普通货车
  8818. EM_CAR_91, //轻型厢式货车
  8819. EM_CAR_92, //轻型封闭货车
  8820. EM_CAR_93, //轻型罐式货车
  8821. EM_CAR_94, //轻型平板货车
  8822. EM_CAR_95, //轻型自卸货车
  8823. EM_CAR_96, //轻型特殊结构货车
  8824. EM_CAR_97, //轻型仓栅式货车
  8825. EM_CAR_98, //轻型车辆运输车
  8826. EM_CAR_99, //轻型厢式自卸货车
  8827. EM_CAR_100, //轻型罐式自卸货车
  8828. EM_CAR_101, //轻型平板自卸货车
  8829. EM_CAR_102, //轻型特殊结构自卸货车
  8830. EM_CAR_103, //轻型仓栅式自卸货车
  8831. EM_CAR_104, //微型普通货车
  8832. EM_CAR_105, //微型厢式货车
  8833. EM_CAR_106, //微型封闭货车
  8834. EM_CAR_107, //微型罐式货车
  8835. EM_CAR_108, //微型自卸货车
  8836. EM_CAR_109, //微型特殊结构货车
  8837. EM_CAR_110, //微型仓栅式货车
  8838. EM_CAR_111, //微型车辆运输车
  8839. EM_CAR_112, //微型厢式自卸货车
  8840. EM_CAR_113, //微型罐式自卸货车
  8841. EM_CAR_114, //微型特殊结构自卸货车
  8842. EM_CAR_115, //微型仓栅式自卸货车
  8843. EM_CAR_116, //普通低速货车
  8844. EM_CAR_117, //厢式低速货车
  8845. EM_CAR_118, //罐式低速货车
  8846. EM_CAR_119, //自卸低速货车
  8847. EM_CAR_120, //仓栅式低速货车
  8848. EM_CAR_121, //厢式自卸低速货车
  8849. EM_CAR_122, //罐式自卸低速货车
  8850. EM_CAR_123, //重型普通全挂车
  8851. EM_CAR_124, //重型厢式全挂车
  8852. EM_CAR_125, //重型罐式全挂车
  8853. EM_CAR_126, //重型平板全挂车
  8854. EM_CAR_127, //重型集装箱全挂车
  8855. EM_CAR_128, //重型自卸全挂车
  8856. EM_CAR_129, //重型仓栅式全挂车
  8857. EM_CAR_130, //重型旅居全挂车
  8858. EM_CAR_131, //重型专项作业全挂车
  8859. EM_CAR_132, //重型厢式自卸全挂车
  8860. EM_CAR_133, //重型罐式自卸全挂车
  8861. EM_CAR_134, //重型平板自卸全挂车
  8862. EM_CAR_135, //重型集装箱自卸全挂车
  8863. EM_CAR_136, //重型仓栅式自卸全挂车
  8864. EM_CAR_137, //重型专项作业自卸全挂车
  8865. EM_CAR_138, //中型普通全挂车
  8866. EM_CAR_139, //中型厢式全挂车
  8867. EM_CAR_140, //中型罐式全挂车
  8868. EM_CAR_141, //中型平板全挂车
  8869. EM_CAR_142, //中型集装箱全挂车
  8870. EM_CAR_143, //中型自卸全挂车
  8871. EM_CAR_144, //中型仓栅式全挂车
  8872. EM_CAR_145, //中型旅居全挂车
  8873. EM_CAR_146, //中型专项作业全挂车
  8874. EM_CAR_147, //中型厢式自卸全挂车
  8875. EM_CAR_148, //中型罐式自卸全挂车
  8876. EM_CAR_149, //中型平板自卸全挂车
  8877. EM_CAR_150, //中型集装箱自卸全挂车
  8878. EM_CAR_151, //中型仓栅式自卸全挂车
  8879. EM_CAR_152, //中型专项作业自卸全挂车
  8880. EM_CAR_153, //轻型普通全挂车
  8881. EM_CAR_154, //轻型厢式全挂车
  8882. EM_CAR_155, //轻型罐式全挂车
  8883. EM_CAR_156, //轻型平板全挂车
  8884. EM_CAR_157, //轻型自卸全挂车
  8885. EM_CAR_158, //轻型仓栅式全挂车
  8886. EM_CAR_159, //轻型旅居全挂车
  8887. EM_CAR_160, //轻型专项作业全挂车
  8888. EM_CAR_161, //轻型厢式自卸全挂车
  8889. EM_CAR_162, //轻型罐式自卸全挂车
  8890. EM_CAR_163, //轻型平板自卸全挂车
  8891. EM_CAR_164, //轻型集装箱自卸全挂车
  8892. EM_CAR_165, //轻型仓栅式自卸全挂车
  8893. EM_CAR_166, //轻型专项作业自卸全挂车
  8894. EM_CAR_167, //重型普通半挂车
  8895. EM_CAR_168, //重型厢式半挂车
  8896. EM_CAR_169, //重型罐式半挂车
  8897. EM_CAR_170, //重型平板半挂车
  8898. EM_CAR_171, //重型集装箱半挂车
  8899. EM_CAR_172, //重型自卸半挂车
  8900. EM_CAR_173, //重型特殊结构半挂车
  8901. EM_CAR_174, //重型仓栅式半挂车
  8902. EM_CAR_175, //重型旅居半挂车
  8903. EM_CAR_176, //重型专项作业半挂车
  8904. EM_CAR_177, //重型低平板半挂车
  8905. EM_CAR_178, //重型车辆运输半挂车
  8906. EM_CAR_179, //重型罐式自卸半挂车
  8907. EM_CAR_180, //重型平板自卸半挂车
  8908. EM_CAR_181, //重型集装箱自卸半挂车
  8909. EM_CAR_182, //重型特殊结构自卸半挂车
  8910. EM_CAR_183, //重型仓栅式自卸半挂车
  8911. EM_CAR_184, //重型专项作业自卸半挂车
  8912. EM_CAR_185, //重型低平板自卸半挂车
  8913. EM_CAR_186, //重型中置轴旅居挂车
  8914. EM_CAR_187, //重型中置轴车辆运输车
  8915. EM_CAR_188, //重型中置轴普通挂车
  8916. EM_CAR_189, //中型普通半挂车
  8917. EM_CAR_190, //中型厢式半挂车
  8918. EM_CAR_191, //中型罐式半挂车
  8919. EM_CAR_192, //中型平板半挂车
  8920. EM_CAR_193, //中型集装箱半挂车
  8921. EM_CAR_194, //中型自卸半挂车
  8922. EM_CAR_195, //中型特殊结构半挂车
  8923. EM_CAR_196, //中型仓栅式半挂车
  8924. EM_CAR_197, //中型旅居半挂车
  8925. EM_CAR_198, //中型专项作业半挂车
  8926. EM_CAR_199, //中型低平板半挂车
  8927. EM_CAR_200, //中型车辆运输半挂车
  8928. EM_CAR_201, //中型罐式自卸半挂车
  8929. EM_CAR_202, //中型平板自卸半挂车
  8930. EM_CAR_203, //中型集装箱自卸半挂车
  8931. EM_CAR_204, //中型特殊结构自卸挂车
  8932. EM_CAR_205, //中型仓栅式自卸半挂车
  8933. EM_CAR_206, //中型专项作业自卸半挂车
  8934. EM_CAR_207, //中型低平板自卸半挂车
  8935. EM_CAR_208, //中型中置轴旅居挂车
  8936. EM_CAR_209, //中型中置轴车辆运输车
  8937. EM_CAR_210, //中型中置轴普通挂车
  8938. EM_CAR_211, //轻型普通半挂车
  8939. EM_CAR_212, //轻型厢式半挂车
  8940. EM_CAR_213, //轻型罐式半挂车
  8941. EM_CAR_214, //轻型平板半挂车
  8942. EM_CAR_215, //轻型自卸半挂车
  8943. EM_CAR_216, //轻型仓栅式半挂车
  8944. EM_CAR_217, //轻型旅居半挂车
  8945. EM_CAR_218, //轻型专项作业半挂车
  8946. EM_CAR_219, //轻型低平板半挂车
  8947. EM_CAR_220, //轻型车辆运输半挂车
  8948. EM_CAR_221, //轻型罐式自卸半挂车
  8949. EM_CAR_222, //轻型平板自卸半挂车
  8950. EM_CAR_223, //轻型集装箱自卸半挂车
  8951. EM_CAR_224, //轻型特殊结构自卸挂车
  8952. EM_CAR_225, //轻型仓栅式自卸半挂车
  8953. EM_CAR_226, //轻型专项作业自卸半挂车
  8954. EM_CAR_227, //轻型低平板自卸半挂车
  8955. EM_CAR_228, //轻型中置轴旅居挂车
  8956. EM_CAR_229, //轻型中置轴车辆运输车
  8957. EM_CAR_230, //轻型中置轴普通挂车
  8958. } EM_CAR_TYPE;
  8959. ///@brief 号牌类型
  8960. typedef enum tagEM_PLATE_TYPE
  8961. {
  8962. EM_PLATE_OTHER, // 其他车
  8963. EM_PLATE_BIG_CAR, // 大型汽车
  8964. EM_PLATE_SMALL_CAR, // 小型汽车
  8965. EM_PLATE_EMBASSY_CAR, // 使馆汽车
  8966. EM_PLATE_CONSULATE_CAR, // 领馆汽车
  8967. EM_PLATE_ABROAD_CAR, // 境外汽车
  8968. EM_PLATE_FOREIGN_CAR, // 外籍汽车
  8969. EM_PLATE_LOW_SPEED_CAR, // 低速车
  8970. EM_PLATE_COACH_CAR, // 教练车
  8971. EM_PLATE_MOTORCYCLE, // 摩托车
  8972. EM_PLATE_NEW_POWER_CAR, // 新能源车
  8973. EM_PLATE_POLICE_CAR, // 警用车
  8974. EM_PLATE_HONGKONG_MACAO_CAR, // 港澳两地车
  8975. EM_PLATE_WJPOLICE_CAR,
  8976. EM_PLATE_OUTERGUARD_CAR,
  8977. EM_PLATE_TEMPORARY_LICENSE_FOR_NON_MOTOR_VEHICLES, // 非机动车临时牌照
  8978. EM_PLATE_OFFICIAL_LICENSE_PLATE_FOR_NON_MOTOR_VEHICLE, // 非机动车牌正式牌照
  8979. } EM_PLATE_TYPE;
  8980. ///@brief 车身颜色
  8981. typedef enum tagEM_CAR_COLOR_TYPE
  8982. {
  8983. EM_CAR_COLOR_WHITE, // 白色
  8984. EM_CAR_COLOR_BLACK, // 黑色
  8985. EM_CAR_COLOR_RED, // 红色
  8986. EM_CAR_COLOR_YELLOW, // 黄色
  8987. EM_CAR_COLOR_GRAY, // 灰色
  8988. EM_CAR_COLOR_BLUE, // 蓝色
  8989. EM_CAR_COLOR_GREEN, // 绿色
  8990. EM_CAR_COLOR_PINK, // 粉色
  8991. EM_CAR_COLOR_PURPLE, // 紫色
  8992. EM_CAR_COLOR_DARK_PURPLE, // 暗紫色
  8993. EM_CAR_COLOR_BROWN, // 棕色
  8994. EM_CAR_COLOR_MAROON, // 粟色
  8995. EM_CAR_COLOR_SILVER_GRAY, // 银灰色
  8996. EM_CAR_COLOR_DARK_GRAY, // 暗灰色
  8997. EM_CAR_COLOR_WHITE_SMOKE, // 白烟色
  8998. EM_CAR_COLOR_DEEP_ORANGE, // 深橙色
  8999. EM_CAR_COLOR_LIGHT_ROSE, // 浅玫瑰色
  9000. EM_CAR_COLOR_TOMATO_RED, // 番茄红色
  9001. EM_CAR_COLOR_OLIVE, // 橄榄色
  9002. EM_CAR_COLOR_GOLDEN, // 金色
  9003. EM_CAR_COLOR_DARK_OLIVE, // 暗橄榄色
  9004. EM_CAR_COLOR_YELLOW_GREEN, // 黄绿色
  9005. EM_CAR_COLOR_GREEN_YELLOW, // 绿黄色
  9006. EM_CAR_COLOR_FOREST_GREEN, // 森林绿
  9007. EM_CAR_COLOR_OCEAN_BLUE, // 海洋绿
  9008. EM_CAR_COLOR_DEEP_SKYBLUE, // 深天蓝
  9009. EM_CAR_COLOR_CYAN, // 青色
  9010. EM_CAR_COLOR_DEEP_BLUE, // 深蓝色
  9011. EM_CAR_COLOR_DEEP_RED, // 深红色
  9012. EM_CAR_COLOR_DEEP_GREEN, // 深绿色
  9013. EM_CAR_COLOR_DEEP_YELLOW, // 深黄色
  9014. EM_CAR_COLOR_DEEP_PINK, // 深粉色
  9015. EM_CAR_COLOR_DEEP_PURPLE, // 深紫色
  9016. EM_CAR_COLOR_DEEP_BROWN, // 深棕色
  9017. EM_CAR_COLOR_DEEP_CYAN, // 深青色
  9018. EM_CAR_COLOR_ORANGE, // 橙色
  9019. EM_CAR_COLOR_DEEP_GOLDEN, // 深金色
  9020. EM_CAR_COLOR_OTHER = 255, // 未识别、其他
  9021. } EM_CAR_COLOR_TYPE;
  9022. ///@brief 使用性质
  9023. typedef enum tagEM_USE_PROPERTY_TYPE
  9024. {
  9025. EM_USE_PROPERTY_NONOPERATING, // 非营运
  9026. EM_USE_PROPERTY_HIGWAY, // 公路客运,旅游客运
  9027. EM_USE_PROPERTY_BUS, // 公交客运
  9028. EM_USE_PROPERTY_TAXI, // 出租客运
  9029. EM_USE_PROPERTY_FREIGHT, // 货运
  9030. EM_USE_PROPERTY_LEASE, // 租赁
  9031. EM_USE_PROPERTY_SECURITY, // 警用,消防,救护,工程救险
  9032. EM_USE_PROPERTY_COACH, // 教练
  9033. EM_USE_PROPERTY_SCHOOLBUS, // 幼儿校车,小学生校车,其他校车
  9034. EM_USE_PROPERTY_FOR_DANGE_VEHICLE, // 危化品运输
  9035. EM_USE_PROPERTY_OTHER, // 其他
  9036. EM_USE_PROPERTY_ONLINE_CAR_HAILING, // 网约车
  9037. EM_USE_PROPERTY_NON_MOTORIZED_TAKE_OUT_VEHICLE, // 非机动外卖车
  9038. EM_USE_PROPERTY_NON_MOTORIZED_EXPRESS_CAR, // 非机动快递车
  9039. } EM_USE_PROPERTY_TYPE;
  9040. ///@brief RFID 电子车牌标签信息
  9041. typedef struct tagNET_RFIDELETAG_INFO
  9042. {
  9043. BYTE szCardID[MAX_RFIDELETAG_CARDID_LEN]; // 卡号
  9044. int nCardType; // 卡号类型, 0:交通管理机关发行卡, 1:新车出厂预装卡
  9045. EM_CARD_PROVINCE emCardPrivince; // 卡号省份
  9046. char szPlateNumber[DH_MAX_PLATE_NUMBER_LEN]; // 车牌号码
  9047. char szProductionDate[MAX_RFIDELETAG_DATE_LEN]; // 出厂日期
  9048. EM_CAR_TYPE emCarType; // 车辆类型
  9049. int nPower; // 功率,单位:千瓦时,功率值范围0~254;255表示该车功率大于可存储的最大功率值
  9050. int nDisplacement; // 排量,单位:百毫升,排量值范围0~254;255表示该车排量大于可存储的最大排量值
  9051. int nAntennaID; // 天线ID,取值范围:1~4
  9052. EM_PLATE_TYPE emPlateType; // 号牌种类
  9053. char szInspectionValidity[MAX_RFIDELETAG_DATE_LEN]; // 检验有效期,年-月
  9054. int nInspectionFlag; // 逾期未年检标志, 0:已年检, 1:逾期未年检
  9055. int nMandatoryRetirement; // 强制报废期,从检验有效期开始,距离强制报废期的年数
  9056. EM_CAR_COLOR_TYPE emCarColor; // 车身颜色
  9057. int nApprovedCapacity; // 核定载客量,该值<0时:无效;此值表示核定载客,单位为人
  9058. int nApprovedTotalQuality; // 此值表示总质量,单位为百千克;该值<0时:无效;该值的有效范围为0~0x3FF,0x3FF(1023)表示数据值超过了可存储的最大值
  9059. NET_TIME_EX stuThroughTime; // 过车时间
  9060. EM_USE_PROPERTY_TYPE emUseProperty; // 使用性质
  9061. char szPlateCode[MAX_COMMON_STRING_8]; // 发牌代号,UTF-8编码
  9062. char szPlateSN[MAX_COMMON_STRING_16]; // 号牌号码序号,UTF-8编码
  9063. char szTID[MAX_COMMON_STRING_64]; // 标签(唯一标识), UTF-8编码
  9064. BYTE bReserved[40]; // 保留字节,留待扩展.
  9065. } NET_RFIDELETAG_INFO;
  9066. ///@brief 电子车牌记录信息
  9067. typedef struct tagNET_RECORD_ELECTRONICSTAG_INFO
  9068. {
  9069. DWORD dwSize;
  9070. int nRecNo; // 记录集编号,只读
  9071. BOOL bMatch; // 是否已匹配图片
  9072. UINT unDevID; // 读写器序号,从0开始
  9073. NET_RFIDELETAG_INFO stuEleTagInfo; // 电子车牌标签信息
  9074. } NET_RECORD_ELECTRONICSTAG_INFO;
  9075. ///@brief GPS位置记录集信息
  9076. typedef struct tagNET_RECORD_GPS_LOCATION_INFO
  9077. {
  9078. DWORD dwSize; // 结构体大小
  9079. int nRecNo; // 记录集编号,只读
  9080. double dLongitude; // GPS坐标经度值, 单位度
  9081. double dLatitude; // GPS坐标纬度值, 单位度
  9082. char szPlaceName[128]; // GPS坐标对应的地名
  9083. char szRadius[16]; // 半径
  9084. } NET_RECORD_GPS_LOCATION_INFO;
  9085. ///@brief 公租房租户记录集信息
  9086. typedef struct tagNET_RECORD_RESIDENT_INFO
  9087. {
  9088. DWORD dwSize; // 结构体大小
  9089. int nRecNo; // 记录集编号,只读
  9090. char szResidentName[DH_MAX_USERID_LEN]; // 用户姓名
  9091. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  9092. NET_TIME stuStartTime; // 有效期开始时间
  9093. NET_TIME stuEndTime; // 有效期截止时间
  9094. char szICNum[DH_MAX_IC_LEN]; // 证件
  9095. }NET_RECORD_RESIDENT_INFO;
  9096. ///@brief 监测量数据记录信息
  9097. typedef struct tagNET_RECORD_SENSOR_RECORD
  9098. {
  9099. DWORD dwSize; // 结构体大小
  9100. UINT uRecNo; // 记录集编号,只读
  9101. NET_TIME stuTime; // 采集时间, 字段为"time"
  9102. UINT uDeviceID; // 采集设备ID号, 高8位表示仪表类型,低24位表示仪表组内序号。仪表类型如下:0-电力; 1-模拟传感器。
  9103. BYTE byStatus; // 数据状态, 0:正常,1:异常
  9104. BYTE byExceptionCode; // 异常数据状态掩码,与具体仪表关联。Status =1时有效。
  9105. // 当设备类型为电力时,掩码为:Bit0-欠压,Bit1-过压,Bit2-欠流,Bit3-过流,Bit4-状态无效,此状态不与其他同时置位
  9106. BYTE bySwitchOn; // 开、关,0:关,1:开
  9107. BYTE byReserved; // 保留字节
  9108. int nPowerVoltage; // 电压,单位:mV
  9109. int nPowerCurrent; // 电流,单位:mA
  9110. int nPowerValue; // 功率,单位:mW
  9111. BYTE byReservedSpace[4]; // 保留字节
  9112. double dActualValue; // 模拟量使用。计量值,与具体模拟量仪表关联
  9113. char szName[128]; // 仪表名称
  9114. NET_SENSE_METHOD emSenseMethod; // SenseMethod, 感应方式,参见具体枚举定义
  9115. EM_SENSE_METHOD_UNIT emUnit; // 单位, 具体单位和emSenseMethod变量有关
  9116. } NET_RECORD_SENSOR_RECORD;
  9117. ///@brief 开门二维码记录集信息
  9118. typedef struct tagNET_RECORD_ACCESSQRCODE_INFO
  9119. {
  9120. DWORD dwSize; // 结构体大小
  9121. int nRecNo; // 记录集编号,只读
  9122. char szQRCode[DH_MAX_QRCODE_LEN]; // 二维码
  9123. UINT nLeftTimes; // 剩余的有效次数
  9124. NET_TIME stuStartTime; // 有效期开始时间
  9125. NET_TIME stuEndTime; // 有效期截止时间
  9126. char szRoomNumber[16]; // 房间号
  9127. char szUserID[32]; // 用户ID
  9128. }NET_RECORD_ACCESSQRCODE_INFO;
  9129. ///@brief 蓝牙开门记录集信息
  9130. typedef struct tagNET_RECORD_ACCESS_BLUETOOTH_INFO
  9131. {
  9132. DWORD dwSize; // 结构体大小
  9133. int nRecNo; // 记录集编号,只读
  9134. char szUserName[DH_COMMON_STRING_128]; // 用户名
  9135. char szPassword[DH_COMMON_STRING_128]; // 密码
  9136. char szMac[DH_COMMON_STRING_32]; // mac地址
  9137. char szNote[DH_COMMON_STRING_128]; // 用户备注信息
  9138. }NET_RECORD_ACCESS_BLUETOOTH_INFO;
  9139. ///@brief 蓝牙开门记录集信息查询条件
  9140. typedef struct tagFIND_RECORD_ACCESS_BLUETOOTH_INFO_CONDITION
  9141. {
  9142. DWORD dwSize;
  9143. char szUserName[DH_COMMON_STRING_128]; // 用户名
  9144. } FIND_RECORD_ACCESS_BLUETOOTH_INFO_CONDITION;
  9145. ///@brief 报警类型
  9146. typedef enum tagEM_RECORD_ACCESS_ALARM_TYPE
  9147. {
  9148. EM_RECORD_ACCESS_ALARM_TYPE_UNKNOWN, // 未知
  9149. EM_RECORD_ACCESS_ALARM_TYPE_DOOR_NOTCLOSE, // 门未关
  9150. EM_RECORD_ACCESS_ALARM_TYPE_BREAK_IN, // 闯入
  9151. EM_RECORD_ACCESS_ALARM_TYPE_REPEAT_ENTER, // 反潜
  9152. EM_RECORD_ACCESS_ALARM_TYPE_DURESS, // 胁迫
  9153. EM_RECORD_ACCESS_ALARM_TYPE_ALARMLOCAL, // 本地
  9154. EM_RECORD_ACCESS_ALARM_TYPE_CHASSIS_INTRUDED, // 防拆
  9155. EM_RECORD_ACCESS_ALARM_TYPE_MALICIOUS, // 恶意开门
  9156. EM_RECORD_ACCESS_ALARM_TYPE_BLACKLIST, // 禁止名单
  9157. }EM_RECORD_ACCESS_ALARM_TYPE;
  9158. ///@brief 门禁记录集开门方式
  9159. typedef enum tagEM_RECORD_ACCESS_ALARM_OPEN_METHOD
  9160. {
  9161. EM_RECORD_ACCESS_ALARM_OPEN_METHOD_UNKNOWN, // 未知
  9162. EM_RECORD_ACCESS_ALARM_OPEN_METHOD_PWD, // 密码方式
  9163. EM_RECORD_ACCESS_ALARM_OPEN_METHOD_FINGERPRINT, // 信息方式
  9164. EM_RECORD_ACCESS_ALARM_OPEN_METHOD_CARD, // 卡方式
  9165. }EM_RECORD_ACCESS_ALARM_OPEN_METHOD;
  9166. ///@brief 门禁报警记录集信息
  9167. typedef struct tagNET_RECORD_ACCESS_ALARMRECORD_INFO
  9168. {
  9169. DWORD dwSize; // 结构体大小
  9170. int nRecNo; // 记录集编号,只读
  9171. char szUserID[DH_COMMON_STRING_128]; // 用户ID
  9172. EM_RECORD_ACCESS_ALARM_TYPE emAlarmType; // 报警类型
  9173. int nDevAddress; // 分控器ID,0 表示集中控制器或者直连设备本身 大于0 表示分控制器
  9174. int nChannel; // 通道号
  9175. EM_RECORD_ACCESS_ALARM_OPEN_METHOD emAlarmOpenMethod; // 开门方式,当EventCode为 MaliciousAccessControl恶意开门事件时有效.
  9176. NET_TIME stuTime; // 事件发生的时间
  9177. char szReaderID[32]; // 门读卡器ID
  9178. NET_TIME_EX stuCreateTimeRealUTC; // 事件发生的时间,真实UTC时间
  9179. }NET_RECORD_ACCESS_ALARMRECORD_INFO;
  9180. ///@brief 门禁报警记录集
  9181. typedef struct tagFIND_NET_RECORD_ACCESS_ALARMRECORD_INFO_CONDITION
  9182. {
  9183. DWORD dwSize;
  9184. char szUserID[DH_COMMON_STRING_128]; // 用户ID
  9185. NET_TIME stStartTime; // 起始时间
  9186. NET_TIME stEndTime; // 结束时间
  9187. NET_TIME stuCreateTimeRealUTC[2]; // 事件发生的时间范围,真实UTC时间
  9188. }FIND_NET_RECORD_ACCESS_ALARMRECORD_INFO_CONDITION;
  9189. ///@brief 门禁状态
  9190. typedef enum tagEM_DOOR_STATUS
  9191. {
  9192. EM_DOOR_STATUS_UNKNOWN, // 未知
  9193. EM_DOOR_STATUS_OPEN, // 开门
  9194. EM_DOOR_STATUS_CLOSE, // 关门
  9195. EM_DOOR_STATUS_CLOSE_ALWAYS, // 常闭
  9196. EM_DOOR_STATUS_OPEN_ALWAYS, // 常开
  9197. } EM_DOOR_STATUS;
  9198. ///@brief 开关门事件记录信息
  9199. typedef struct tagNET_RECORD_ACCESS_DOORSTATUS_INFO
  9200. {
  9201. DWORD dwSize; // 结构体大小
  9202. UINT nRecNo; // 记录集编号,只读
  9203. NET_TIME stuCreateTime; // 创建时间
  9204. EM_DOOR_STATUS emDoorStatus; // 开关门状态
  9205. char szURL[256]; // 抓拍图片,门开关状态抓拍照片
  9206. UINT nDoorIndex; // 门序号
  9207. }NET_RECORD_ACCESS_DOORSTATUS_INFO;
  9208. ///@brief 开关门事件记录信息查询条件
  9209. typedef struct tagFIND_RECORD_ACCESS_DOORSTATUS_INFO_CONDITION
  9210. {
  9211. DWORD dwSize; // 结构体大小
  9212. EM_DOOR_STATUS emDoorStatus; // 门状态, unknown 表示查询所有状态
  9213. NET_TIME stuStartTime; // 起始时间
  9214. NET_TIME stuEndTime; // 结束时间
  9215. }FIND_RECORD_ACCESS_DOORSTATUS_INFO_CONDITION;
  9216. ///@brief 楼宇公共开门密码记录信息
  9217. typedef struct tagNET_RECORD_ACCESS_CTL_COMMONPASSWORD_INFO
  9218. {
  9219. DWORD dwSize; // 结构体大小
  9220. UINT nRecNo; // 记录集编号,只读
  9221. NET_TIME stuCreateTime; // 创建时间
  9222. char szUserID[256]; // 用户ID
  9223. char szCommonPassword[128]; // 公共开门密码
  9224. char szVTONo[16]; // 门口机号码
  9225. UINT nDoors; // nDoorsAuth 个数
  9226. UINT nDoorsAuth[128]; // 门权限,值对应到AccessControl的下标
  9227. NET_TIME stuValidFrom; // 开始有效期
  9228. NET_TIME stuValidTo; // 截止有效期
  9229. UINT nUseTimes; // 通行次数上限。为0代表没有限制
  9230. UINT nLeftTimes; // 剩余通行次数
  9231. }NET_RECORD_ACCESS_CTL_COMMONPASSWORD_INFO;
  9232. ///@brief 楼宇公共开门密码记录查询条件
  9233. typedef struct tagFIND_RECORD_ACCESS_CTL_COMMONPASSWORD_INFO_CONDITION
  9234. {
  9235. DWORD dwSize; // 结构体大小
  9236. char szVTONo[16]; // 门口机号码
  9237. char szUserID[256]; // 用户ID
  9238. }FIND_RECORD_ACCESS_CTL_COMMONPASSWORD_INFO_CONDITION;
  9239. ///@brief 消费结果
  9240. typedef enum tagEM_CONSUMPTION_STATUS
  9241. {
  9242. EM_CONSUMPTION_STATUS_UNKNOWN = -1, // 未知
  9243. EM_CONSUMPTION_STATUS_FAIL, // 失败
  9244. EM_CONSUMPTION_STATUS_SUCC, // 成功
  9245. } EM_CONSUMPTION_STATUS;
  9246. ///@brief 消费记录类型
  9247. typedef enum tagEM_CONSUMPTION_RECORD_TYPE
  9248. {
  9249. EM_CONSUMPTION_RECORD_TYPE_UNKNOWN = -1, // 未知
  9250. EM_CONSUMPTION_RECORD_TYPE_QUOTA, // 定额消费记录
  9251. EM_CONSUMPTION_RECORD_TYPE_NONQUOTA, // 非定额消费记录
  9252. EM_CONSUMPTION_RECORD_TYPE_DEPOSIT, // 充值记录
  9253. } EM_CONSUMPTION_RECORD_TYPE;
  9254. ///@brief 消费记录信息
  9255. typedef struct tagNET_RECORD_ACCESS_CTL_CONSUMPTION_INFO
  9256. {
  9257. DWORD dwSize; // 结构体大小
  9258. UINT nRecNo; // 记录集编号,只读
  9259. UINT nBlockId; // 上报事件数据序列号从1开始自增
  9260. NET_TIME stuCreateTime; // 刷卡时间
  9261. char szCardNo[16]; // 卡号
  9262. char szCardName[128]; // 卡命名
  9263. NET_ACCESSCTLCARD_TYPE emCardType; // 卡类型
  9264. char szUserID[12]; // 用户ID
  9265. NET_ENUM_DIRECTION_ACCESS_CTL emType; // 事件类型
  9266. EM_CONSUMPTION_STATUS emStatus; // 消费结果
  9267. NET_ACCESS_DOOROPEN_METHOD emMethod; // 开门方式
  9268. UINT nDoor; // 门号
  9269. char szReaderID[32]; // 读卡器ID
  9270. UINT nErrorCode; // 消费失败的原因,配合 emStatus 使用
  9271. // 0x00 没有错误
  9272. // 0x10 未授权
  9273. // 0x11 卡挂失或注销
  9274. // 0x12 没有该门权限
  9275. // 0x13 开门模式错误
  9276. // 0x14 有效期错误
  9277. // 0x15 防反潜模式
  9278. // 0x16 胁迫报警未打开
  9279. // 0x17 门常闭状态
  9280. // 0x18 AB互锁状态
  9281. // 0x19 巡逻卡
  9282. // 0x1A 设备处于闯入报警状态
  9283. // 0x20 时间段错误
  9284. // 0x21 假期内开门时间段错误
  9285. // 0x30 需要先验证有首卡权限的卡片
  9286. // 0x40 卡片正确,输入密码错误
  9287. // 0x41 卡片正确,输入密码超时
  9288. // 0x42 卡片正确,输入信息错误
  9289. // 0x43 卡片正确,输入信息超时
  9290. // 0x44 信息正确,输入密码错误
  9291. // 0x45 信息正确,输入密码超时
  9292. // 0x50 组合开门顺序错误
  9293. // 0x51 组合开门需要继续验证
  9294. // 0x60 验证通过,控制台未授权
  9295. // 0x61 卡片正确,目标错误
  9296. // 0x62 卡片正确,目标超时
  9297. // 0x63 重复进入
  9298. // 0x64 未授权,需要后端平台识别
  9299. // 0x65 体温过高
  9300. // 0x66 未戴口罩
  9301. // 0x67 健康码获取失败
  9302. // 0x68 黄码禁止通行
  9303. // 0x69 红码禁止通行
  9304. // 0x6a 健康码无效
  9305. // 0x6b 绿码验证通过
  9306. // 0x70 获取健康码信息
  9307. // 0x71 校验证件信息(平台下发对应证件号的校验结果)
  9308. UINT nSimilarity; // 目标识别相似度,开门方式为目标开门时有效
  9309. char szSnapFaceURL[128]; // 目标抠图保存的本地路径
  9310. EM_CONSUMPTION_RECORD_TYPE emRecordType; // 记录类型
  9311. UINT nConsumptionAmount; // 消费金额。单位(分)101 = 1.01 元
  9312. UINT nRechargeAmount; // 充值金额。单位(分)101 = 1.01 元
  9313. char szTransactionSerialNumber[128]; // 交易流水号
  9314. }NET_RECORD_ACCESS_CTL_CONSUMPTION_INFO;
  9315. ///@brief 消费记录查询条件
  9316. typedef struct tagFIND_RECORD_ACCESS_CTL_CONSUMPTION_INFO_CONDITION
  9317. {
  9318. DWORD dwSize; // 结构体大小
  9319. BOOL bUserIDEnable; // 启用用户查询
  9320. char szUserID[256]; // 用户ID
  9321. BOOL bCardNoEnable; // 启用卡号查询
  9322. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  9323. BOOL bTimeEnable; // 启用时间段查询
  9324. NET_TIME stStartTime; // 起始时间
  9325. NET_TIME stEndTime; // 结束时间
  9326. }FIND_RECORD_ACCESS_CTL_CONSUMPTION_INFO_CONDITION;
  9327. ///@brief VTO推送信息到达平台类型
  9328. typedef enum tagEM_VTO_PUSH_TO_SERVER_TYPE
  9329. {
  9330. EM_VTO_PUSH_TO_SERVER_TYPE_UNKNOWN, // 未知
  9331. EM_VTO_PUSH_TO_SERVER_TYPE_IOS, // IOS
  9332. EM_VTO_PUSH_TO_SERVER_TYPE_ANDROID, // Android
  9333. EM_VTO_PUSH_TO_SERVER_TYPE_DAHUA_CLOUD, // 云
  9334. }EM_VTO_PUSH_TO_SERVER_TYPE;
  9335. ///@brief VTO设备推送结果相关信息
  9336. typedef enum tagEM_VTO_PUSH_RESULT_TYPE
  9337. {
  9338. EM_VTO_PUSH_RESULT_TYPE_UNKNOWN, // 未知
  9339. EM_VTO_PUSH_RESULT_TYPE_SUCCESS, // 推送成功
  9340. EM_VTO_PUSH_RESULT_TYPE_TCP_CONNECT_ERROR, // 与服务器TCP连接失败, 可能网络较差
  9341. EM_VTO_PUSH_RESULT_TYPE_SSL_WRITE_TIME_OUT_ERROR, // 向推送服务器Ssl写数据超时
  9342. EM_VTO_PUSH_RESULT_TYPE_SSL_ERROR, // 与推送服务器Ssl连接失败
  9343. EM_VTO_PUSH_RESULT_TYPE_SSL_READ_TIME_OUT_ERROR, // 读推送服务器SSL数据超时
  9344. EM_VTO_PUSH_RESULT_TYPE_SSL_SEND_ERROR, // 设备SSL发送数据失败
  9345. EM_VTO_PUSH_RESULT_TYPE_DNS_ERROR, // 设备DNS解析失败
  9346. EM_VTO_PUSH_RESULT_TYPE_MSG_TIME_OUT, // 网络异常导致消息超时
  9347. EM_VTO_PUSH_RESULT_TYPE_CERT_ERROR, // 设备保存的证书有误
  9348. EM_VTO_PUSH_RESULT_TYPE_SSL_RECV_ERROR, // 设备SSL接收失败
  9349. EM_VTO_PUSH_RESULT_TYPE_TOO_LONG_ERROR, // 推送的消息过长
  9350. EM_VTO_PUSH_RESULT_TYPE_FCM_INVALID_REGISTRATION_ERROR, // 在FCM上为非法的注册ID
  9351. EM_VTO_PUSH_RESULT_TYPE_FCM_NOT_REGISTERED_ERROR, // 未在FCM上进行注册
  9352. EM_VTO_PUSH_RESULT_TYPE_FCM_MSG_RATE_EXCEEDED_ERROR, // 推送FCM上的消息频率过高
  9353. EM_VTO_PUSH_RESULT_TYPE_FCM_AUTH_ERROR, // FCM鉴权失败
  9354. EM_VTO_PUSH_RESULT_TYPE_FCM_JSON_ERROR, // FCM Json 格式错误
  9355. EM_VTO_PUSH_RESULT_TYPE_FCM_UNAVAILABLE_ERROR, // FCM 资源错误
  9356. EM_VTO_PUSH_RESULT_TYPE_FCM_OTHER_ERROR, // FCM其它错误
  9357. EM_VTO_PUSH_RESULT_TYPE_NORMAL_FULL_ERROR, // 普通事件队列满错误
  9358. EM_VTO_PUSH_RESULT_TYPE_HIGH_FULL_ERROR, // 高优先级队列满错误
  9359. EM_VTO_PUSH_RESULT_TYPE_DNS_CHECK_ERROR, // 目前暂无可用推送服务器IP
  9360. EM_VTO_PUSH_RESULT_TYPE_ATTTACH_ERROR, // 内部attach错误
  9361. EM_VTO_PUSH_RESULT_TYPE_TIME_NOT_IN_SCHEDULE, // 时间不在推送时间表内
  9362. EM_VTO_PUSH_RESULT_TYPE_EVENT_CUSTOM_FILERED, // 事件自定义条件过滤
  9363. EM_VTO_PUSH_RESULT_TYPE_OTHER_ERROR, // 其他内部错误
  9364. }EM_VTO_PUSH_RESULT_TYPE;
  9365. ///@brief VTO设备推送信息记录(NET_RECORD_ACCESS_MOBILE_PUSH_RESULT)
  9366. typedef struct tagNET_RECORD_ACCESS_MOBILE_PUSH_RESULT_INFO
  9367. {
  9368. DWORD dwSize; // 结构体大小
  9369. UINT nRecNo; // 记录编号
  9370. UINT nCreateTime; // 事件产生的时间(UTC时间)
  9371. EM_VTO_PUSH_TO_SERVER_TYPE emPushToServerType; // 平台类型
  9372. char szEventName[30]; // 事件名称
  9373. char byReserved[2]; // 字节对齐
  9374. EM_VTO_PUSH_RESULT_TYPE emPushResult; // 推送结果
  9375. int nChannel; // APP订阅通道
  9376. char szAppRegisterID[256]; // App注册ID
  9377. char szAppID[256]; // AppID
  9378. char szDevName[64]; // 设备名称(手机端设置显示)
  9379. }NET_RECORD_ACCESS_MOBILE_PUSH_RESULT_INFO;
  9380. ///@brief 查询VTO推送记录信息类型
  9381. typedef enum tagEM_FIND_VTO_PUSH_RESULT_TYPE
  9382. {
  9383. EM_FIND_VTO_PUSH_RESULT_TYPE_UNKNOWN, // 未知
  9384. EM_FIND_VTO_PUSH_RESULT_TYPE_ALL, // 全部
  9385. EM_FIND_VTO_PUSH_RESULT_TYPE_SUCCESS, // 成功
  9386. EM_FIND_VTO_PUSH_RESULT_TYPE_FAILD, // 失败
  9387. }EM_FIND_VTO_PUSH_RESULT_TYPE;
  9388. ///@brief VTO设备推送记录信息查询条件(NET_RECORD_ACCESS_MOBILE_PUSH_RESULT)
  9389. typedef struct tagFIND_RECORD_ACCESS_MOBILE_PUSH_RESULT_INFO_CONDITION
  9390. {
  9391. DWORD dwSize; // 结构体大小
  9392. BOOL bValidChannel; // 按通道查询条件是否有效,TRUE:指定通道查询,FALSE:查询所有通道
  9393. int nChannel; // App订阅通道
  9394. BOOL bValidTime; // 按时间查询条件是否有效,TRUE:指定时间段查询,FALSE:查询所有时间
  9395. UINT nStartTime; // 起始时间(UTC时间)
  9396. UINT nStopTime; // 结束时间(UTC时间)
  9397. EM_FIND_VTO_PUSH_RESULT_TYPE emFindPushResultType; // 记录类型
  9398. }FIND_RECORD_ACCESS_MOBILE_PUSH_RESULT_INFO_CONDITION;
  9399. ///@brief 呼叫类型
  9400. typedef enum tagEM_VIDEO_TALK_LOG_CALLTYPE
  9401. {
  9402. EM_VIDEO_TALK_LOG_CALLTYPE_UNKNOWN = 0, // 未知
  9403. EM_VIDEO_TALK_LOG_CALLTYPE_INCOMING, // 呼入
  9404. EM_VIDEO_TALK_LOG_CALLTYPE_OUTGOING, // 呼出
  9405. EM_VIDEO_TALK_LOG_CALLTYPE_MAX, //
  9406. }EM_VIDEO_TALK_LOG_CALLTYPE;
  9407. ///@brief 最终状态
  9408. typedef enum tagEM_VIDEO_TALK_LOG_ENDSTATE
  9409. {
  9410. EM_VIDEO_TALK_LOG_ENDSTATE_UNKNOWN = 0, // 未知
  9411. EM_VIDEO_TALK_LOG_ENDSTATE_MISSED, // 未接
  9412. EM_VIDEO_TALK_LOG_ENDSTATE_RECEIVED, // 已接
  9413. EM_VIDEO_TALK_LOG_ENDSTATE_MAX, //
  9414. }EM_VIDEO_TALK_LOG_ENDSTATE;
  9415. ///@brief 对方类型
  9416. typedef enum tagEM_VIDEO_TALK_LOG_PEERTYPE
  9417. {
  9418. EM_VIDEO_TALK_LOG_PEERTYPE_UNKNOWN = 0, // 未知
  9419. EM_VIDEO_TALK_LOG_PEERTYPE_VTO, // 门口机
  9420. EM_VIDEO_TALK_LOG_PEERTYPE_VTH, // 室内机
  9421. EM_VIDEO_TALK_LOG_PEERTYPE_VTS, // 管理中心
  9422. }EM_VIDEO_TALK_LOG_PEERTYPE;
  9423. ///@brief 记录是否已经浏览
  9424. typedef enum tagNET_RECORD_READFLAG
  9425. {
  9426. NET_RECORD_READFLAG_UNREADED = 0, //未读
  9427. NET_RECORD_READFLAG_READED, //已读
  9428. NET_RECORD_READFLAG_UNKNOWN, //未知
  9429. }NET_RECORD_READFLAG;
  9430. ///@brief 平台呼出类型
  9431. typedef enum tagNET_EM_OFFLINE_CALL_TYPE
  9432. {
  9433. NET_EM_OFFLINE_CALL_UNKNOWN = -1, // 未知
  9434. NET_EM_OFFLINE_CALL_ONLINECALL, // 在线呼出
  9435. NET_EM_OFFLINE_CALL_OFFLINECALL, // 断线呼出
  9436. NET_EM_OFFLINE_CALL_NONE = 255, // 其他
  9437. }NET_EM_OFFLINE_CALL_TYPE;
  9438. ///@brief 通话记录记录集信息
  9439. typedef struct tagNET_RECORD_VIDEO_TALK_LOG
  9440. {
  9441. DWORD dwSize;
  9442. int nRecNo; // 记录集编号,只读
  9443. NET_TIME stuCreateTime; // 开始时间
  9444. EM_VIDEO_TALK_LOG_CALLTYPE emCallType; // 呼叫类型
  9445. EM_VIDEO_TALK_LOG_ENDSTATE emEndState; // 最终状态
  9446. char szPeerNumber[DH_COMMON_STRING_64]; // 对方号码 可以是短号,中号或长号
  9447. EM_VIDEO_TALK_LOG_PEERTYPE emPeerType; // 对方类型
  9448. char szLocalNumber[DH_COMMON_STRING_64]; // 本机号码 可以是短号,中号或长号
  9449. int nTalkTime; // 通话时间 单位秒
  9450. int nMessageTime; // 留言时间 单位秒
  9451. char szPicturePath[DH_COMMON_STRING_128];// 照片路径
  9452. NET_EM_OFFLINE_CALL_TYPE emOfflineCall; // 平台断线是否呼出
  9453. NET_TIME_EX stuCreateTimeRealUTC; // 真实UTC开始时间
  9454. }NET_RECORD_VIDEO_TALK_LOG;
  9455. ///@brief 语音对讲状态
  9456. typedef enum tagEM_REGISTER_USER_STATE
  9457. {
  9458. EM_REGISTER_USER_STATE_UNKNOWN = 0, // 未知
  9459. EM_REGISTER_USER_STATE_IDLE, // 初始状态
  9460. EM_REGISTER_USER_STATE_CALLING, // 呼叫状态(对方未回应)
  9461. EM_REGISTER_USER_STATE_RINGING, // 回铃状态(对方回应,但没有接听)
  9462. EM_REGISTER_USER_STATE_PREVIEWING, // 正在预览
  9463. EM_REGISTER_USER_STATE_LEAVINGMESSAGE, // 正在留言
  9464. EM_REGISTER_USER_STATE_TALKING, // 通话中
  9465. EM_REGISTER_USER_STATE_MAX, //
  9466. }EM_REGISTER_USER_STATE;
  9467. ///@brief 设备类型
  9468. typedef enum tagEM_REGISTER_USER_STATE_DEV_TYPE
  9469. {
  9470. EM_REGISTER_USER_STATE_DEV_TYPE_UNKNOWN = 0, // 未知
  9471. EM_REGISTER_USER_STATE_DEV_TYPE_DIGIT_VTH, // 数字VTH
  9472. EM_REGISTER_USER_STATE_DEV_TYPE_ANALOG_VTH, // 模拟VTH
  9473. EM_REGISTER_USER_STATE_DEV_TYPE_DIGIT_VTO, // 数字VTO
  9474. EM_REGISTER_USER_STATE_DEV_TYPE_ANALOG_VTO, // 模拟VTO
  9475. EM_REGISTER_USER_STATE_DEV_TYPE_MAX, //
  9476. }EM_REGISTER_USER_STATE_DEV_TYPE;
  9477. ///@brief 是否支持锁
  9478. typedef enum tagEM_REGISTER_USER_STATE_SUPPORTLOCK_TYPE
  9479. {
  9480. EM_REGISTER_USER_STATE_SUPPORTLOCK_TYPE_UNKNOWN = 0, // 未知
  9481. EM_REGISTER_USER_STATE_SUPPORTLOCK_TYPE_SUPPORTLOCK, // 支持
  9482. EM_REGISTER_USER_STATE_SUPPORTLOCK_TYPE_NOT_SUPPORTLOCK, // 不支持
  9483. }EM_REGISTER_USER_STATE_SUPPORTLOCK_TYPE;
  9484. ///@brief 预览状态
  9485. typedef enum tagNET_MONITORSTATE_TYPE
  9486. {
  9487. NET_MONITORSTATE_TYPE_UNMONITORED = 0, // 0 未预览(初始状态)
  9488. NET_MONITORSTATE_TYPE_MONITORREQUEST, // 1 收到预览请求
  9489. NET_MONITORSTATE_TYPE_MONITORED, // 2 被预览状态
  9490. NET_MONITORSTATE_TYPE_UNKNOWN, // 未知状态
  9491. }NET_MONITORSTATE_TYPE;
  9492. ///@brief 状态记录记录集信息
  9493. typedef struct tagNET_RECORD_REGISTER_USER_STATE
  9494. {
  9495. DWORD dwSize;
  9496. int nRecNo; // 记录集编号,只读
  9497. NET_TIME stuCreateTime; // 创建时间
  9498. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  9499. BOOL bOnline; // 是否在线
  9500. char szAddress[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // 网络地址
  9501. int nPort; // 端口号
  9502. EM_REGISTER_USER_STATE emVideoTalkState; // 语音对讲状态
  9503. NET_TIME stuOnlineTime; // 上线时间
  9504. NET_TIME stuOfflineTime; // 下线时间
  9505. EM_REGISTER_USER_STATE_DEV_TYPE emDevType; // 设备类型
  9506. EM_REGISTER_USER_STATE_SUPPORTLOCK_TYPE emSupportLock; // 是否支持锁
  9507. NET_MONITORSTATE_TYPE emMonitorState; // 预览状态
  9508. }NET_RECORD_REGISTER_USER_STATE;
  9509. ///@brief 可视对讲模拟室内机接入时的模式
  9510. typedef enum tagEM_VIDEO_TALK_CONTACT_VTSLAVEBINDMODE
  9511. {
  9512. EM_VIDEO_TALK_CONTACT_VTSLAVEBINDMODE_UNKNOWN, // 未知
  9513. EM_VIDEO_TALK_CONTACT_VTSLAVEBINDMODE_SLAVEADDRESS, // 通过SlaveAddress
  9514. EM_VIDEO_TALK_CONTACT_VTSLAVEBINDMODE_SLAVEID_SLAVEPORT, // 通过SlaveID+SlavePort
  9515. }EM_VIDEO_TALK_CONTACT_VTSLAVEBINDMODE;
  9516. ///@brief 用户类型
  9517. typedef enum tagEM_VIDEO_TALK_CONTACT_TYPE
  9518. {
  9519. EM_VIDEO_TALK_CONTACT_TYPE_UNKNOWN, // 未知
  9520. EM_VIDEO_TALK_CONTACT_TYPE_VTH, // "VTH" 室内机
  9521. EM_VIDEO_TALK_CONTACT_TYPE_VTO, // "VTO" 门口机
  9522. }EM_VIDEO_TALK_CONTACT_TYPE;
  9523. ///@brief 注册方式
  9524. typedef enum tagEM_VIDEO_TALK_CONTACT_REGISTER_TYPE
  9525. {
  9526. EM_VIDEO_TALK_CONTACT_REGISTER_TYPE_UNKNOWN, // 未知
  9527. EM_VIDEO_TALK_CONTACT_REGISTER_TYPE_PUBLIC, // "public"
  9528. EM_VIDEO_TALK_CONTACT_REGISTER_TYPE_LOCAL, // "local"
  9529. }EM_VIDEO_TALK_CONTACT_REGISTER_TYPE;
  9530. ///@brief 联系人记录记录集信息
  9531. typedef struct tagNET_RECORD_VIDEO_TALK_CONTACT
  9532. {
  9533. DWORD dwSize;
  9534. int nRecNo; // 记录集编号,只读
  9535. NET_TIME stuCreateTime; // 创建时间
  9536. char szFirstName[DH_COMMON_STRING_32]; // 名字
  9537. char szFamilyName[DH_COMMON_STRING_32]; // 姓
  9538. char szVTShortNumber[DH_COMMON_STRING_16]; // 可视对讲短号
  9539. char szVTMiddleNumber[DH_COMMON_STRING_32]; // 可视对讲中号
  9540. char szVTLongNumber[DH_COMMON_STRING_64]; // 可视对讲长号,或VTH模拟室内机的序列号
  9541. char szVTNetAddress[DH_MAX_IPADDR_LEN_EX]; // 可视对讲网络地址
  9542. char szVTOPosition[DH_COMMON_STRING_64]; // 室内机关联的门口机位置
  9543. EM_VIDEO_TALK_CONTACT_VTSLAVEBINDMODE emVTSlaveBindMode; // 可视对讲模拟室内机接入时的模式
  9544. char szVTSlaveId[DH_COMMON_STRING_32]; // 该字段已废弃,使用 nVTSlaveId
  9545. char szVTSlavePort[DH_COMMON_STRING_32]; // 该字段已废弃,使用 nVTSlavePort
  9546. char szVTSlaveAddress[DH_COMMON_STRING_64]; // 可视对讲模拟室内机的地址
  9547. char szNickname[DH_COMMON_STRING_64]; // 昵称
  9548. char szNotes[DH_COMMON_STRING_64]; // 备注
  9549. EM_VIDEO_TALK_CONTACT_TYPE emType; // 用户类型
  9550. EM_VIDEO_TALK_CONTACT_REGISTER_TYPE emRegisterType; // 注册方式
  9551. char szVTHPassword[DH_COMMON_STRING_64]; // 注册密码
  9552. char szVTOBuilding[DH_COMMON_STRING_64]; // 所属幢号
  9553. char szVTOUnit[DH_COMMON_STRING_64]; // 所属单元号
  9554. char szGroupNumber[DH_COMMON_STRING_64]; // 所属群组
  9555. int nVTSlaveId; // 可视对讲模拟室内机接入时的分配器地址
  9556. int nVTSlavePort; // 可视对讲模拟室内机接入时的分配器端口
  9557. }NET_RECORD_VIDEO_TALK_CONTACT;
  9558. ///@brief 性别
  9559. typedef enum tagEM_SEX_TYPE
  9560. {
  9561. EM_SEX_TYPE_UNKNOWN, //未知
  9562. EM_SEX_TYPE_MALE, //男性
  9563. EM_SEX_TYPE_FEMALE, //女性
  9564. }EM_SEX_TYPE;
  9565. ///@brief 人员类型
  9566. typedef enum tagEM_HOSPITAL_USER_TYPE
  9567. {
  9568. EM_HOSPITAL_USER_TYPE_UNKNOWN, // 未知
  9569. EM_HOSPITAL_USER_TYPE_PATIENT, // 病人
  9570. EM_HOSPITAL_USER_TYPE_ATTENDING_PHYSICIAN, // 主治医师
  9571. EM_HOSPITAL_USER_TYPE_RESPONSIBLE_NURSE, // 责任护士
  9572. }EM_HOSPITAL_USER_TYPE;
  9573. ///@brief 护理等级
  9574. typedef enum tagEM_HOSPITAL_CARE_LEVEL
  9575. {
  9576. EM_HOSPITAL_CARE_LEVEL_UNKNOWN, // 未知
  9577. EM_HOSPITAL_CARE_LEVEL_PREMIUM, // 特级护理
  9578. EM_HOSPITAL_CARE_LEVEL_ONE, // 一级护理
  9579. EM_HOSPITAL_CARE_LEVEL_TWO, // 二级护理
  9580. EM_HOSPITAL_CARE_LEVEL_THREE, // 三级护理
  9581. }EM_HOSPITAL_CARE_LEVEL;
  9582. ///@brief 联系人记录记录集信息
  9583. typedef struct tagNET_RECORD_HOSPITAL_USER_INFO
  9584. {
  9585. DWORD dwSize;
  9586. int nRecNo; // 记录编号
  9587. char szID[32]; // 人员编号
  9588. int nDoctorCount; // 护理病人的医生ID个数
  9589. char szDoctorID[5][32]; // 护理病人的医生ID列表
  9590. char szCitizenID[64]; // 人员证件号
  9591. char szName[64]; // 人员姓名
  9592. EM_SEX_TYPE emSex; // 性别
  9593. UINT nAge; // 年龄
  9594. EM_HOSPITAL_USER_TYPE emType; // 人员类型
  9595. char szRoomNumber[16]; // 病房号
  9596. char szBedNumber[8]; // 床位号
  9597. EM_HOSPITAL_CARE_LEVEL emLevel; // 护理等级
  9598. NET_TIME_EX stuInUTC; // 入院时间
  9599. NET_TIME_EX stuOutUTC; // 出院时间
  9600. char szAdviceInfo[4096]; // 医嘱信息
  9601. char szExpenseInfo[4096]; // 费用信息
  9602. char szSurgeryInfo[4096]; // 手术信息
  9603. char szDeviceCode[64]; // 人员对应床位的设备编码
  9604. char szIntro[4096]; // 人员信息介绍
  9605. int nCareLabelsNum; // 护理标签个数
  9606. char szCareLabels[50][64]; // 护理标签
  9607. }NET_RECORD_HOSPITAL_USER_INFO;
  9608. ///@brief 医护设备类型
  9609. typedef enum tagEM_HOSPITAL_DEVICE_TYPE
  9610. {
  9611. EM_HOSPITAL_DEVICE_TYPE_UNKNOWN, // 未知
  9612. EM_HOSPITAL_DEVICE_TYPE_MEDICAL_HOST, // 医护主机
  9613. EM_HOSPITAL_DEVICE_TYPE_MEDICAL_EXTENSION, // 医护分机
  9614. EM_HOSPITAL_DEVICE_TYPE_WARD_DOOR_MACHINE, // 病房门口机
  9615. EM_HOSPITAL_DEVICE_TYPE_WARD_EXTENSION, // 病房分机
  9616. EM_HOSPITAL_DEVICE_TYPE_AREA_DOOR_MACHINE, // 病区门口机
  9617. }EM_HOSPITAL_DEVICE_TYPE;
  9618. ///@brief 医院设备信息表
  9619. typedef struct tagNET_RECORD_HOSPITAL_DEVICE_INFO
  9620. {
  9621. DWORD dwSize; // 结构体大小
  9622. int nRecNo; // 记录编号
  9623. char szDeviceCode[64]; // 设备编号
  9624. char szDeviceName[128]; // 设备名称
  9625. char szCallNumber[32]; // 设备的呼叫号码
  9626. char szRoomNumber[16]; // 病房号
  9627. char szBedNumber[8]; // 病床号
  9628. EM_HOSPITAL_DEVICE_TYPE emDeviceType; // 医护设备类型
  9629. char szAddress[24]; // 设备的IP地址
  9630. char szUserName[33]; // 用户名
  9631. char szReserved1[3]; // 字节对齐
  9632. char szPassword[33]; // 密码
  9633. char szReserved2[3]; // 字节对齐
  9634. int nHostCodeCount; // 医护主机设备个数
  9635. char szHostCode[10][64]; // 医护主机设备编码, 用来表示当前设备是哪台医护主机下的设备
  9636. int nOnlineStatus; // 针对病房主机展示病房分机的状态,0代表无效非法值, 1代表病房分机在线,2代表病房分机离线
  9637. }NET_RECORD_HOSPITAL_DEVICE_INFO;
  9638. ///@brief 公告的状态
  9639. typedef enum tagNET_ANNOUNCE_STATE
  9640. {
  9641. NET_ANNOUNCE_STATE_UNSENDED = 0, //初始状态(未发送)
  9642. NET_ANNOUNCE_STATE_SENDED, //已经发送
  9643. NET_ANNOUNCE_STATE_EXPIRED, //已经过期
  9644. NET_ANNOUNCE_STATE_UNKNOWN, //未知
  9645. }NET_ANNOUNCE_STATE;
  9646. ///@brief 公告是否已经浏览
  9647. typedef enum tagNET_ANNOUNCE_READFLAG
  9648. {
  9649. NET_ANNOUNCE_READFLAG_UNREADED = 0, //未读
  9650. NET_ANNOUNCE_READFLAG_READED, //已读
  9651. NET_ANNOUNCE_READFLAG_UNKNOWN, //未知
  9652. }NET_ANNOUNCE_READFLAG;
  9653. ///@brief 公告记录信息
  9654. typedef struct tagNET_RECORD_ANNOUNCEMENT_INFO
  9655. {
  9656. DWORD dwSize;
  9657. int nRecNo; // 记录集编号,只读
  9658. NET_TIME stuCreateTime; // 创建时间
  9659. NET_TIME stuIssueTime; // 公告发布时间
  9660. char szAnnounceTitle[DH_COMMON_STRING_64]; // 公告标题
  9661. char szAnnounceContent[DH_COMMON_STRING_256]; //公告内容
  9662. char szAnnounceDoor[DH_COMMON_STRING_16]; //公告要发送的房间号
  9663. NET_TIME stuExpireTime; //公告过期的时间
  9664. NET_ANNOUNCE_STATE emAnnounceState; //公告的状态
  9665. NET_ANNOUNCE_READFLAG emAnnounceReadFlag; //公告是否已经浏览
  9666. UINT nBackgroundPicture; // 门禁公告可以选择背景图片(具体图片由色设备绑定): 0 : 图片1 , 1:图片2 , 2 : 图片3
  9667. BOOL bUseEx; // 是否使用szAnnounceTitleEx/szAnnounceContentEx字段
  9668. char szAnnounceTitleEx[256]; // 公告标题
  9669. char szAnnounceContentEx[1024]; // 公告内容
  9670. NET_TIME_EX stuCreateTimeRealUTC; // 真UTC创建时间
  9671. NET_TIME stuIssueTimeRealUTC; // 真UTC公告发布时间
  9672. NET_TIME stuExpirTimeRealUTC; // 真UTC公告过期的时间
  9673. }NET_RECORD_ANNOUNCEMENT_INFO;
  9674. ///@brief 公告记录信息查询条件
  9675. typedef struct tagFIND_RECORD_ANNOUNCEMENT_CONDITION
  9676. {
  9677. DWORD dwSize;
  9678. BOOL bTimeEnable; // 启用时间段查询
  9679. NET_TIME stStartTime; // 起始时间
  9680. NET_TIME stEndTime; // 结束时间
  9681. }FIND_RECORD_ANNOUNCEMENT_CONDITION;
  9682. ///@brief 报警记录信息
  9683. typedef struct tagNET_RECORD_ALARMRECORD_INFO
  9684. {
  9685. DWORD dwSize;
  9686. int nRecNo; // 记录集编号,只读
  9687. NET_TIME stuCreateTime; // 报警时间,UTC秒数,只读
  9688. int nChannelID; // 报警通道号
  9689. NET_SENSE_METHOD emSenseMethod; // 传感器感应方式
  9690. char szRoomNumber[DH_MAX_DOOR_NUM]; // 报警房间号
  9691. NET_ANNOUNCE_READFLAG emReadFlag; // 0未读,1已读
  9692. char szNotes[128]; // 备注
  9693. }NET_RECORD_ALARMRECORD_INFO;
  9694. ///@brief 报警记录信息查询条件
  9695. typedef struct tagFIND_RECORD_ALARMRECORD_CONDITION
  9696. {
  9697. DWORD dwSize;
  9698. BOOL bTimeEnable; // 启用时间段查询
  9699. NET_TIME stStartTime; // 起始时间
  9700. NET_TIME stEndTime; // 结束时间
  9701. }FIND_RECORD_ALARMRECORD_CONDITION;
  9702. ///@brief 门禁未关事件详细信息
  9703. typedef struct tagALARM_ACCESS_CTL_NOT_CLOSE_INFO
  9704. {
  9705. DWORD dwSize;
  9706. int nDoor; // 门通道号
  9707. char szDoorName[DH_MAX_DOORNAME_LEN]; // 门禁名称
  9708. NET_TIME stuTime; // 报警事件发生的时间
  9709. int nAction; // 0:开始 1:停止
  9710. UINT nEventID; //事件ID
  9711. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  9712. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  9713. }ALARM_ACCESS_CTL_NOT_CLOSE_INFO;
  9714. ///@brief 闯入方式
  9715. typedef enum tagEM_BREAK_IN_METHOD
  9716. {
  9717. EM_BREAK_IN_METHOD_UNKNOWN, // 未知
  9718. EM_BREAK_IN_METHOD_ILLEGAL, // 非法闯入:未授权的时候闯入
  9719. EM_BREAK_IN_METHOD_REVERSE, // 反向闯入:授权门开后,对面有人进入
  9720. } EM_BREAK_IN_METHOD;
  9721. ///@brief 闯入事件详细信息
  9722. typedef struct tagALARM_ACCESS_CTL_BREAK_IN_INFO
  9723. {
  9724. DWORD dwSize;
  9725. int nDoor; // 门通道号
  9726. char szDoorName[DH_MAX_DOORNAME_LEN]; // 门禁名称
  9727. NET_TIME stuTime; // 报警事件发生的时间
  9728. UINT nEventID; // 事件ID
  9729. EM_BREAK_IN_METHOD emMethod; // 闯入方式
  9730. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  9731. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  9732. BYTE reserved[4]; // 字节对齐
  9733. }ALARM_ACCESS_CTL_BREAK_IN_INFO;
  9734. ///@brief 反复进入事件详细信息
  9735. typedef struct tagALARM_ACCESS_CTL_REPEAT_ENTER_INFO
  9736. {
  9737. DWORD dwSize;
  9738. int nDoor; // 门通道号
  9739. char szDoorName[DH_MAX_DOORNAME_LEN]; // 门禁名称
  9740. NET_TIME stuTime; // 报警事件发生的时间
  9741. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  9742. UINT nEventID; //事件ID
  9743. }ALARM_ACCESS_CTL_REPEAT_ENTER_INFO;
  9744. ///@brief 胁迫卡刷卡事件详细信息
  9745. typedef struct tagALARM_ACCESS_CTL_DURESS_INFO
  9746. {
  9747. DWORD dwSize;
  9748. int nDoor; // 门通道号
  9749. char szDoorName[DH_MAX_DOORNAME_LEN]; // 门禁名称
  9750. char szCardNo[DH_MAX_CARDNO_LEN]; // 胁迫卡号
  9751. NET_TIME stuTime; // 报警事件发生的时间
  9752. UINT nEventID; // 事件ID
  9753. char szSN[32]; // 无线设备序列号
  9754. char szUserID[12]; // 用户ID
  9755. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  9756. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  9757. char szUserIDEx[32]; // 用户ID扩展
  9758. }ALARM_ACCESS_CTL_DURESS_INFO;
  9759. ///@brief 门禁事件类型
  9760. typedef enum tagNET_ACCESS_CTL_EVENT_TYPE
  9761. {
  9762. NET_ACCESS_CTL_EVENT_UNKNOWN = 0,
  9763. NET_ACCESS_CTL_EVENT_ENTRY, // 进门
  9764. NET_ACCESS_CTL_EVENT_EXIT, // 出门
  9765. }NET_ACCESS_CTL_EVENT_TYPE;
  9766. ///@brief 当前门采集状态
  9767. typedef enum tagEM_CARD_STATE
  9768. {
  9769. EM_CARD_STATE_UNKNOWN = -1, // 未知
  9770. EM_CARD_STATE_SWIPE, // 门禁刷卡
  9771. EM_CARD_STATE_COLLECTION, // 门禁采集卡
  9772. }EM_CARD_STATE;
  9773. ///@brief 用户类型
  9774. typedef enum tagEM_USER_TYPE
  9775. {
  9776. EM_USER_TYPE_UNKNOWN=-1,
  9777. EM_USER_TYPE_ORDINARY,
  9778. EM_USER_TYPE_BLACKLIST,
  9779. EM_USER_TYPE_VIP,
  9780. EM_USER_TYPE_GUEST,
  9781. EM_USER_TYPE_PATROL,
  9782. EM_USER_TYPE_DISABLED,
  9783. EM_USER_TYPE_FROZEN,
  9784. EM_USER_TYPE_LOGOUT,
  9785. EM_USER_TYPE_LOSSCARD
  9786. }EM_USER_TYPE;
  9787. ///@brief 新冠疫苗接种信息
  9788. typedef struct tagNET_VACCINE_INFO
  9789. {
  9790. int nVaccinateFlag; // 是否已接种新冠疫苗, 0: 否, 1: 是 2: 全接种
  9791. char szVaccineName[128]; // 新冠疫苗名称
  9792. int nDateCount; // 历史接种日期有效个数
  9793. char szVaccinateDate[8][32]; // 历史接种日期 (yyyy-MM-dd). 如提供不了时间, 则填"0000-00-00", 表示已接种
  9794. int nVaccineIntensifyFlag; // 是否已接种新冠疫苗加强针, 0: 未知, 1:否 2: 是
  9795. char szReserved[1020]; // 保留字节
  9796. } NET_VACCINE_INFO;
  9797. ///@brief 行程码信息
  9798. typedef struct tagNET_TRAVEL_INFO
  9799. {
  9800. EM_TRAVEL_CODE_COLOR emTravelCodeColor; // 行程码状态
  9801. int nCityCount; // 最近14天经过的城市个数
  9802. char szPassingCity[16][128]; // 最近14天经过的城市名. 按时间顺序排列, 最早经过的城市放第一个
  9803. char szReserved[1024]; // 保留字节
  9804. }NET_TRAVEL_INFO;
  9805. ///@brief 核酸检测信息
  9806. typedef struct tagNET_HSJC_INFO
  9807. {
  9808. char szHSJCReportDate[32]; // 核酸检测报告日期 (yyyy-MM-dd)
  9809. int nHSJCExpiresIn; // 核酸检测报告有效期(天)
  9810. int nHSJCResult; // 核酸检测报告结果, -1:未知, 0: 异常, 1: 正常, 2: 未检测, 3: 过期
  9811. char szHSJCInstitution[256]; // 核酸检测机构
  9812. char szReserved[768]; // 保留字节
  9813. } NET_HSJC_INFO;
  9814. ///@brief 抗原检测信息
  9815. typedef struct tagNET_ANTIGEN_INFO
  9816. {
  9817. char szAntigenReportDate[32]; // 抗原检测报告日期
  9818. int nAntigenStatus; // 抗原检测报告结果: 0:异常 1:正常 2:未检测 3:过期
  9819. int nAntigenExpiresIn; // 抗原检测报告有效期(单位:天)
  9820. char szResvered[256]; // 保留字节
  9821. }NET_ANTIGEN_INFO;
  9822. ///@brief 门禁事件
  9823. typedef struct tagALARM_ACCESS_CTL_EVENT_INFO
  9824. {
  9825. DWORD dwSize;
  9826. int nDoor; // 门通道号
  9827. char szDoorName[DH_MAX_DOORNAME_LEN]; // 门禁名称
  9828. NET_TIME stuTime; // 报警事件发生的时间
  9829. NET_ACCESS_CTL_EVENT_TYPE emEventType; // 门禁事件类型
  9830. BOOL bStatus; // 刷卡结果,TRUE表示成功,FALSE表示失败
  9831. NET_ACCESSCTLCARD_TYPE emCardType; // 卡类型
  9832. NET_ACCESS_DOOROPEN_METHOD emOpenMethod; // 开门方式
  9833. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  9834. char szPwd[DH_MAX_CARDPWD_LEN]; // 密码
  9835. char szReaderID[DH_COMMON_STRING_32]; // 门读卡器ID
  9836. char szUserID[DH_COMMON_STRING_64]; // 开门用户
  9837. char szSnapURL[DH_COMMON_STRING_256]; // 抓拍照片存储地址
  9838. int nErrorCode; // 开门操作码,配合 bStatus 使用
  9839. // 0x00 没有错误
  9840. // 0x10 未授权
  9841. // 0x11 卡挂失或注销
  9842. // 0x12 没有该门权限
  9843. // 0x13 开门模式错误
  9844. // 0x14 有效期错误
  9845. // 0x15 防反潜模式
  9846. // 0x16 胁迫报警未打开
  9847. // 0x17 门常闭状态
  9848. // 0x18 AB互锁状态
  9849. // 0x19 巡逻卡
  9850. // 0x1A 设备处于闯入报警状态
  9851. // 0x20 时间段错误
  9852. // 0x21 假期内开门时间段错误
  9853. // 0x23 卡逾期
  9854. // 0x30 需要先验证有首卡权限的卡片
  9855. // 0x40 卡片正确,输入密码错误
  9856. // 0x41 卡片正确,输入密码超时
  9857. // 0x42 卡片正确,输入信息错误
  9858. // 0x43 卡片正确,输入信息超时
  9859. // 0x44 信息正确,输入密码错误
  9860. // 0x45 信息正确,输入密码超时
  9861. // 0x50 组合开门顺序错误
  9862. // 0x51 组合开门需要继续验证
  9863. // 0x60 验证通过,控制台未授权
  9864. // 0x61 卡片正确,目标错误
  9865. // 0x62 卡片正确,目标超时
  9866. // 0x63 重复进入
  9867. // 0x64 未授权,需要后端平台识别
  9868. // 0x65 体温过高
  9869. // 0x66 未戴口罩
  9870. // 0x67 健康码获取失败
  9871. // 0x68 黄码禁止通行
  9872. // 0x69 红码禁止通行
  9873. // 0x6a 健康码无效
  9874. // 0x6b 绿码验证通过
  9875. // 0x6e 绿码,行程码非绿码
  9876. // 0x6f 绿码,抗原为异常
  9877. // 0x70 获取健康码信息
  9878. // 0x71 校验证件信息(平台下发对应证件号的校验结果)
  9879. // 0xA8 未佩戴安全帽
  9880. // 0xB1 授权信息不足,待补充
  9881. // 0xB2 中心化互锁
  9882. int nPunchingRecNo; // 刷卡记录集中的记录编号
  9883. int nNumbers; // 抓图张数
  9884. NET_ACCESSCTLCARD_STATE emStatus; // 卡状态
  9885. char szSN[32]; // 智能锁序列号
  9886. NET_ATTENDANCESTATE emAttendanceState; // 考勤状态
  9887. char szQRCode[512]; // 二维码
  9888. char szCallLiftFloor[16]; // 呼梯楼层号
  9889. EM_CARD_STATE emCardState; // 是否为采集卡片
  9890. char szCitizenIDNo[20]; // 证件号
  9891. char szCompanionCards[MAX_COMPANION_CARD_NUM][DH_MAX_CARDINFO_LEN]; // 陪同者卡号信息
  9892. int nCompanionCardCount; // 陪同者卡号个数
  9893. EM_HAT_STYLE emHatStyle; // 帽子类型
  9894. EM_UNIFIED_COLOR_TYPE emHatColor; // 帽子颜色
  9895. EM_LIFT_CALLER_TYPE emLiftCallerType; // 梯控方式触发者
  9896. BOOL bManTemperature; // 人员温度信息是否有效
  9897. NET_MAN_TEMPERATURE_INFO stuManTemperatureInfo; // 人员温度信息, bManTemperature 为TRUE 时有效
  9898. char szCitizenName[256]; // 证件姓名
  9899. EM_MASK_STATE_TYPE emMask; // 口罩状态(EM_MASK_STATE_UNKNOWN、EM_MASK_STATE_NOMASK、EM_MASK_STATE_WEAR 有效)
  9900. char szCardName[DH_MAX_CARDNAME_LEN]; // 卡命名
  9901. UINT nFaceIndex; // 一目标时的目标序号
  9902. EM_USER_TYPE emUserType; // 用户类型( EM_USER_TYPE_ORDINARY 至 EM_USER_TYPE_DISABLED 有效 )
  9903. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  9904. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  9905. char szCompanyName[200]; // 公司名称
  9906. int nScore; // 目标质量评分
  9907. int nLiftNo; // 电梯编号
  9908. EM_QRCODE_IS_EXPIRED emQRCodeIsExpired; // 二维码是否过期。默认值0
  9909. EM_QRCODE_STATE emQRCodeState; // 二维码状态
  9910. NET_TIME stuQRCodeValidTo; // 二维码截止日期
  9911. char szDynPWD[32]; // 平台通过密码校验权限。用于动态密码校验,动态密码由手机APP生成,设备仅透传给平台
  9912. UINT nBlockId; // 上报事件数据序列号从1开始自增
  9913. char szSection[64]; // 部门名称
  9914. char szWorkClass[256]; // 工作班级
  9915. EM_TEST_ITEMS emTestItems; // 测试项目
  9916. NET_TEST_RESULT stuTestResult; // ESD阻值测试结果
  9917. char szDeviceID[128]; // 门禁设备编号
  9918. char szUserUniqueID[128]; // 用户唯一表示ID
  9919. BOOL bUseCardNameEx; // 是否使用卡命名扩展
  9920. char szCardNameEx[128]; // 卡命名扩展
  9921. char szTempPassword[64]; // 临时密码
  9922. char szNote[512]; // 摘要信息
  9923. int nHSJCResult; //核酸检测报告结果 -1: 未知 0: 异常 1: 正常 2: 未检测 3: 过期
  9924. NET_VACCINE_INFO stuVaccineInfo; // 新冠疫苗接种信息
  9925. NET_TRAVEL_INFO stuTravelInfo; // 行程码信息
  9926. char szQRCodeEx[2048]; //用来上传大二维码内容
  9927. NET_HSJC_INFO stuHSJCInfo; // 核酸信息
  9928. NET_ANTIGEN_INFO stuAntigenInfo; // 抗原检测信息
  9929. char szHealthGreenStatus[20]; // 个人健康状态 绿码:"Green" 红码:"Red" 黄码:"Yellow" 橙:"Orange" 未知:"None"
  9930. int nAge; // 年龄
  9931. char szCheckOutType[32]; // 签出类型
  9932. char szCheckOutCause[512]; // 签出原因
  9933. int nTargetCheck; // 刷卡开门时,门禁后台目标校验是否为同一人,
  9934. // 0:该人员无目标数据
  9935. // 1:刷卡和目标人员一致
  9936. // 2:刷卡和目标人员不一致
  9937. char szReserved[1496]; // 预留字节
  9938. }ALARM_ACCESS_CTL_EVENT_INFO;
  9939. ///@brief 货品类型
  9940. typedef enum tagEM_NET_RECORD_COMMODITY_NOTICE_SOURCE_TYPE
  9941. {
  9942. EM_NET_RECORD_COMMODITY_NOTICE_SOURCE_TYPE_UNKNOWN, // 未知
  9943. EM_NET_RECORD_COMMODITY_NOTICE_SOURCE_TYPE_SUPERMARKET, // 超市
  9944. EM_NET_RECORD_COMMODITY_NOTICE_SOURCE_TYPE_RESTAURANT, // 餐厅
  9945. EM_NET_RECORD_COMMODITY_NOTICE_SOURCE_TYPE_FRUITSTORE, // 水果店
  9946. }EM_NET_RECORD_COMMODITY_NOTICE_SOURCE_TYPE;
  9947. ///@brief 是否特价商品
  9948. typedef enum tagEM_NET_RECORD_COMMODITY_NOTICE_BARGAIN_TYPE
  9949. {
  9950. EM_NET_RECORD_COMMODITY_NOTICE_BARGAIN_TYPE_UNKNOWN, // 未知
  9951. EM_NET_RECORD_COMMODITY_NOTICE_BARGAIN_TYPE_YES, // 特价
  9952. EM_NET_RECORD_COMMODITY_NOTICE_BARGAIN_TYPE_NO, // 不是特价
  9953. }EM_NET_RECORD_COMMODITY_NOTICE_BARGAIN_TYPE;
  9954. ///@brief 下发商品记录记录集信息
  9955. typedef struct tagNET_RECORD_COMMODITY_NOTICE
  9956. {
  9957. DWORD dwSize;
  9958. int nRecNo; // 记录集编号,只读
  9959. NET_TIME stuSaleTime; // 货品上架时间
  9960. char szName[DH_COMMON_STRING_128]; // 货品名称
  9961. EM_NET_RECORD_COMMODITY_NOTICE_SOURCE_TYPE emSource; // 货品类型
  9962. char szURL[DH_COMMON_STRING_256]; // 货品图片路径, ftp 路径
  9963. float fPrice; // 货品价格, 单位:元 float
  9964. char szID[DH_COMMON_STRING_64]; // ID号,由平台统一管理 一种货品有唯一的ID标识
  9965. EM_NET_RECORD_COMMODITY_NOTICE_BARGAIN_TYPE emBargain; // 是否特价商品
  9966. }NET_RECORD_COMMODITY_NOTICE;
  9967. ///@brief 科室类型
  9968. typedef enum tagEM_NET_RECORD_HEALTH_CARE_NOTICE_OFFICE_TYPE
  9969. {
  9970. EM_NET_RECORD_HEALTH_CARE_NOTICE_OFFICE_TYPE_UNKNOWN, // 未知
  9971. EM_NET_RECORD_HEALTH_CARE_NOTICE_OFFICE_TYPE_DIGEST, // 消化科
  9972. EM_NET_RECORD_HEALTH_CARE_NOTICE_OFFICE_TYPE_STOMATOLOGY, // 口腔科
  9973. }EM_NET_RECORD_HEALTH_CARE_NOTICE_OFFICE_TYPE;
  9974. ///@brief 就诊信息记录记录集信息
  9975. typedef struct tagNET_RECORD_HEALTH_CARE_NOTICE
  9976. {
  9977. DWORD dwSize;
  9978. int nRecNo; // 记录集编号,只读
  9979. NET_TIME stuStartTime; // 上班时间
  9980. NET_TIME stuEndTime; // 下班时间
  9981. char szHospital[DH_COMMON_STRING_128]; // 就诊医院
  9982. EM_NET_RECORD_HEALTH_CARE_NOTICE_OFFICE_TYPE emOffice; // 科室
  9983. char szOfficeNumber[DH_COMMON_STRING_64]; // 科室号
  9984. char szDoctorName[DH_COMMON_STRING_128]; // 医生姓名
  9985. char szID[DH_COMMON_STRING_64]; // ID号,由平台统一管理 一种货品有唯一的ID标识
  9986. }NET_RECORD_HEALTH_CARE_NOTICE;
  9987. ///////////////////// 智能交通报警事件[CLIENT_StartListenEx] /////////////////////////////////////
  9988. ///@brief 事件类型 DH_IVS_TRAFFIC_REALFLOWINFO(交通实时流量信息事件)对应的数据块描述信息
  9989. typedef struct tagALARM_IVS_TRAFFIC_REALFLOW_INFO
  9990. {
  9991. int nChannelID; // 通道号
  9992. char szName[128]; // 事件名称
  9993. char bReserved1[4]; // 字节对齐
  9994. double PTS; // 时间戳(单位是毫秒)
  9995. NET_TIME_EX UTC; // 事件发生的时间
  9996. int nEventID; // 事件ID
  9997. unsigned int nSequence; // 序号
  9998. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  9999. BYTE byReserved[3];
  10000. int nLane; // 对应车道号
  10001. int nCount; // 车辆总数
  10002. int nSpeed; // 车速,km/h
  10003. int nOverPercent; // 平均超速百分比
  10004. int nMetersUints; // 速度单位,0:公里,1:英里
  10005. BYTE bReserved[1024]; // 保留字节,留待扩展.
  10006. }ALARM_IVS_TRAFFIC_REALFLOW_INFO;
  10007. ///@brief 事件类型 DH_YUEQINGLIGHTING_STATE_EVENT(平台统计灯光开关的时间事件)对应的数据块描述信息
  10008. typedef struct tagDEV_YUEQINGLIGHTING_STATE_INFO
  10009. {
  10010. DWORD dwAction; // 事件动作, 0:开始, 1:结束
  10011. int nChannelID; // 通道号
  10012. NET_TIME_EX UTC; // 事件发生的时间
  10013. BYTE bReserved[1024]; // 保留字节,留待扩展.
  10014. }DEV_YUEQINGLIGHTING_STATE_INFO;
  10015. ///@brief 报警事件类型 DH_ALARM_VEHICLE_TURNOVER(车辆侧翻事件)对应的数据描述信息
  10016. typedef struct tagALARM_VEHICEL_TURNOVER_EVENT_INFO
  10017. {
  10018. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  10019. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  10020. BYTE byRserved[3]; // 对齐
  10021. NET_TIME_EX UTC; // 事件发生的时间
  10022. BYTE bReserved[984]; // 保留字节,留待扩展.
  10023. }ALARM_VEHICEL_TURNOVER_EVENT_INFO;
  10024. ///@brief 报警事件类型DH_ALARM_VEHICLE_COLLISION(车辆撞车事件)对应的数据描述信息
  10025. typedef struct tagALARM_VEHICEL_COLLISION_EVENT_INFO
  10026. {
  10027. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  10028. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  10029. BYTE byRserved[3]; // 对齐
  10030. NET_TIME_EX UTC; // 事件发生的时间
  10031. BYTE bReserved[984]; // 保留字节,留待扩展.
  10032. }ALARM_VEHICEL_COLLISION_EVENT_INFO;
  10033. ///@brief 报警事件类型DH_ALARM_VEHICLE_CONFIRM(车辆上传信息事件)对应的数据描述信息
  10034. typedef struct tagALARM_VEHICEL_CONFIRM_INFO
  10035. {
  10036. DWORD dwStructSize; // 结构体大小
  10037. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  10038. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  10039. BYTE byRserved[3]; // 对齐
  10040. char szInfo[128]; // 上传报警具体信息
  10041. }ALARM_VEHICEL_CONFIRM_INFO;
  10042. ///@brief 事件类型DH_EVENT_REGISTER_OFF(车载设备主动下线事件)对应的数据描述信息
  10043. typedef struct tagEVENT_REGISTER_OFF_INFO
  10044. {
  10045. DWORD dwStructSize; // 结构体大小
  10046. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  10047. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  10048. BYTE byRserved[3]; // 对齐
  10049. }EVENT_REGISTER_OFF_INFO;
  10050. ///@brief 报警事件类型DH_ALARM_VIDEO_TIMING(视频定时检测事件)对应的数据描述信息
  10051. typedef struct tagALARM_VIDEO_TIMING
  10052. {
  10053. DWORD dwStructSize; // 结构体大小
  10054. DWORD dwAction; // 事件动作, 0:Pause, 1:Start, 2:Stop
  10055. DWORD dwChannelID; // 视频通道号
  10056. }ALARM_VIDEO_TIMING;
  10057. ///@brief 报警事件类型DH_ALARM_VEHICLE_LARGE_ANGLE(车载摄像头大角度扭转事件)对应的数据描述信息
  10058. typedef struct tagALARM_VEHICEL_LARGE_ANGLE
  10059. {
  10060. DWORD dwStructSize; // 结构体大小
  10061. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  10062. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  10063. BYTE byRserved[3]; // 对齐
  10064. unsigned int nSequence; // 序号
  10065. }ALARM_VEHICEL_LARGE_ANGLE;
  10066. ///@brief 报警事件类型DH_ALARM_AUDIO_ANOMALY(音频异常事件)对应的数据描述信息
  10067. typedef struct tagALARM_AUDIO_ANOMALY
  10068. {
  10069. DWORD dwStructSize; // 结构体大小
  10070. DWORD dwAction; // 事件动作, 0:Start, 1:Stop
  10071. DWORD dwChannelID; // 音频通道号
  10072. int nDecibel; // 声音强度
  10073. int nFrequency; // 声音频率
  10074. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  10075. }ALARM_AUDIO_ANOMALY;
  10076. ///@brief 声音类型枚举
  10077. typedef enum tagEM_AUDIO_MUTATION_ALARM_TYPE
  10078. {
  10079. AUDIO_MUTATION_UNKNOW,
  10080. AUDIO_MUTATION_CRY,
  10081. AUDIO_MUTATION_ALARM,
  10082. AUDIO_MUTATION_GUNSHOT,
  10083. AUDIO_MUTATION_EXPLOSION,
  10084. AUDIO_MUTATION_SCREAM,
  10085. AUDIO_MUTATION_CRASHINGGLASS,
  10086. }EM_AUDIO_MUTATION_ALARM_TYPE;
  10087. ///@brief 报警事件类型DH_ALARM_AUDIO_MUTATION(声强突变事件)对应的数据描述信息
  10088. typedef struct tagALARM_AUDIO_MUTATION
  10089. {
  10090. DWORD dwStructSize; // 结构体大小
  10091. DWORD dwAction; // 事件动作, 0:Start, 1:Stop
  10092. DWORD dwChannelID; // 音频通道号
  10093. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  10094. EM_AUDIO_MUTATION_ALARM_TYPE emAudioType; // 声音类型
  10095. char reserved[512]; // 保留字段
  10096. }ALARM_AUDIO_MUTATION;
  10097. ///@brief 报警事件类型 DH_ALARM_AUDIO_DETECT (音频检测事件)对应的数据描述信息
  10098. typedef struct tagALARM_AUDIO_DETECT
  10099. {
  10100. DWORD dwAction; // 事件动作, 1:Start, 2:Stop
  10101. DWORD dwChannelID; // 音频通道号
  10102. char reserved[512]; // 保留
  10103. } ALARM_AUDIO_DETECT;
  10104. #define MAX_SENSORID_NUMBER 20 // 传感器最大个数
  10105. #define MAX_TYRE_NUM 128 // 最大轮胎个数
  10106. ///@brief 轮胎告警标志位对应枚举
  10107. typedef enum tagAlarmTyreFlag
  10108. {
  10109. ALARM_TYRE_FLAG_NONE, // 无有效数据
  10110. ALARM_TYRE_FLAG_NORMAL, // 正常
  10111. ALARM_TYRE_FLAG_HIGHPRESSURE, // 高压
  10112. ALARM_TYRE_FLAG_LOWERPRESSURE, // 低压
  10113. ALARM_TYRE_FLAG_HIGHTEMP, // 温度异常
  10114. ALARM_TYRE_FLAG_HIGHTEMP_HIGHPRESSURE, // 温度异常、高压
  10115. ALARM_TYRE_FLAG_HIGHTEMP_LOWERPRESSURE, // 温度异常、低压
  10116. ALARM_TYRE_FLAG_INVALID, // 非法的标志位数据
  10117. }EM_ALARM_TYER_FALG;
  10118. ///@brief 轮胎信息结构
  10119. typedef struct tagTYRE_INFO_UNIT
  10120. {
  10121. DWORD dwStructSize; // 结构体大小
  10122. DWORD dwSensorIDNum; // 传感器个数
  10123. DWORD dwSensorID[MAX_SENSORID_NUMBER]; // 传感器ID信息
  10124. DWORD dwTyreNum; // 胎位编号
  10125. DWORD dwTyrePlace; // 轮胎位于第几轴
  10126. EM_ALARM_TYER_FALG emAlarmFlag; // 轮胎告警标志位
  10127. int nTemp; // 温度,单位℃
  10128. int nTempLimit; // 温度,单位℃
  10129. float fPressure; // 压力,单位Kpa
  10130. float fUpperLimit; // 告警压力阈值上限,单位Kpa
  10131. float fLowerLimit; // 告警压力阈值下限,单位Kpa
  10132. float fVoltage; // 当前的传感器电压,单位 V
  10133. }TYRE_INFO_UNIT;
  10134. ///@brief 报警事件类型DH_EVENT_TYREINFO(轮胎信息上报事件)对应的数据描述信息
  10135. typedef struct tagEVENT_TYRE_INFO
  10136. {
  10137. DWORD dwStructSize; // 结构体大小
  10138. DWORD dwAction; // 事件动作, 0:Pause, 1:Stop
  10139. DWORD dwTyreNum; // 轮胎个数
  10140. TYRE_INFO_UNIT *pstuTyre; // 轮胎信息
  10141. }EVENT_TYRE_INFO;
  10142. /////////////////////////语音对讲相关定义/////////////////////////////
  10143. ///@brief 音频格式信息
  10144. typedef struct
  10145. {
  10146. BYTE byFormatTag; // 编码类型,如0:PCM
  10147. WORD nChannels; // 声道数
  10148. WORD wBitsPerSample; // 采样深度
  10149. DWORD nSamplesPerSec; // 采样率
  10150. } DH_AUDIO_FORMAT, *LPDH_AUDIO_FORMAT;
  10151. /////////////////////////用户管理相关定义/////////////////////////////
  10152. ///@brief 支持用户名最大长度为8位的设备,对应CLIENT_QueryUserInfo和CLIENT_OperateUserInfo接口
  10153. ///@brief 权限信息
  10154. typedef struct _OPR_RIGHT
  10155. {
  10156. DWORD dwID;
  10157. char name[DH_RIGHT_NAME_LENGTH];
  10158. char memo[DH_MEMO_LENGTH];
  10159. } OPR_RIGHT;
  10160. ///@brief 用户信息
  10161. typedef struct _USER_INFO
  10162. {
  10163. DWORD dwID;
  10164. DWORD dwGroupID;
  10165. char name[DH_USER_NAME_LENGTH];
  10166. char passWord[DH_USER_PSW_LENGTH];
  10167. DWORD dwRightNum;
  10168. DWORD rights[DH_MAX_RIGHT_NUM];
  10169. char memo[DH_MEMO_LENGTH];
  10170. DWORD dwReusable; // 是否复用;1:复用,0:不复用
  10171. } USER_INFO;
  10172. ///@brief 用户组信息
  10173. typedef struct _USER_GROUP_INFO
  10174. {
  10175. DWORD dwID;
  10176. char name[DH_USER_NAME_LENGTH];
  10177. DWORD dwRightNum;
  10178. DWORD rights[DH_MAX_RIGHT_NUM];
  10179. char memo[DH_MEMO_LENGTH];
  10180. } USER_GROUP_INFO;
  10181. ///@brief 用户信息表
  10182. typedef struct _USER_MANAGE_INFO
  10183. {
  10184. DWORD dwRightNum; // 权限信息
  10185. OPR_RIGHT rightList[DH_MAX_RIGHT_NUM];
  10186. DWORD dwGroupNum; // 用户组信息
  10187. USER_GROUP_INFO groupList[DH_MAX_GROUP_NUM];
  10188. DWORD dwUserNum; // 用户信息
  10189. USER_INFO userList[DH_MAX_USER_NUM];
  10190. DWORD dwSpecial; // 用户复用能力;1:支持用户复用,0:不支持用户复用
  10191. } USER_MANAGE_INFO;
  10192. // 支持用户名最大长度为8位或16位的设备,对应扩展接口CLIENT_QueryUserInfoEx和CLIENT_OperateUserInfoEx
  10193. #define DH_USER_NAME_LENGTH_EX 16 // 用户名长度
  10194. #define DH_USER_PSW_LENGTH_EX 16 // 密码
  10195. ///@brief 权限信息
  10196. typedef struct _OPR_RIGHT_EX
  10197. {
  10198. DWORD dwID;
  10199. char name[DH_RIGHT_NAME_LENGTH];
  10200. char memo[DH_MEMO_LENGTH];
  10201. } OPR_RIGHT_EX;
  10202. ///@brief 用户信息
  10203. typedef struct _USER_INFO_EX
  10204. {
  10205. DWORD dwID;
  10206. DWORD dwGroupID;
  10207. char name[DH_USER_NAME_LENGTH_EX];
  10208. char passWord[DH_USER_PSW_LENGTH_EX];
  10209. DWORD dwRightNum;
  10210. DWORD rights[DH_MAX_RIGHT_NUM];
  10211. char memo[DH_MEMO_LENGTH];
  10212. DWORD dwFouctionMask; // 掩码,0x00000001 - 支持用户复用
  10213. BYTE byReserve[32];
  10214. } USER_INFO_EX;
  10215. ///@brief 用户组信息
  10216. typedef struct _USER_GROUP_INFO_EX
  10217. {
  10218. DWORD dwID;
  10219. char name[DH_USER_NAME_LENGTH_EX];
  10220. DWORD dwRightNum;
  10221. DWORD rights[DH_MAX_RIGHT_NUM];
  10222. char memo[DH_MEMO_LENGTH];
  10223. } USER_GROUP_INFO_EX;
  10224. ///@brief 用户信息表
  10225. typedef struct _USER_MANAGE_INFO_EX
  10226. {
  10227. DWORD dwRightNum; // 权限信息
  10228. OPR_RIGHT_EX rightList[DH_MAX_RIGHT_NUM];
  10229. DWORD dwGroupNum; // 用户组信息
  10230. USER_GROUP_INFO_EX groupList[DH_MAX_GROUP_NUM];
  10231. DWORD dwUserNum; // 用户信息
  10232. USER_INFO_EX userList[DH_MAX_USER_NUM];
  10233. DWORD dwFouctionMask; // 掩码;0x00000001 - 支持用户复用,0x00000002 - 密码修改需要校验
  10234. BYTE byNameMaxLength; // 支持的用户名最大长度
  10235. BYTE byPSWMaxLength; // 支持的密码最大长度
  10236. BYTE byReserve[254];
  10237. } USER_MANAGE_INFO_EX;
  10238. // 最大支持64通道的设备,对应扩展接口CLIENT_QueryUserInfoNew和CLIENT_OperateUserInfoNew
  10239. #define DH_NEW_MAX_RIGHT_NUM 1024
  10240. #define DH_NEW_USER_NAME_LENGTH 128 // 用户名长度
  10241. #define DH_NEW_USER_PSW_LENGTH 128 // 密码
  10242. ///@brief 权限信息
  10243. typedef struct _OPR_RIGHT_NEW
  10244. {
  10245. DWORD dwSize;
  10246. DWORD dwID;
  10247. char name[DH_RIGHT_NAME_LENGTH];
  10248. char memo[DH_MEMO_LENGTH];
  10249. } OPR_RIGHT_NEW;
  10250. ///@brief 用户信息
  10251. typedef struct _USER_INFO_NEW
  10252. {
  10253. DWORD dwSize;
  10254. DWORD dwID;
  10255. DWORD dwGroupID;
  10256. char name[DH_NEW_USER_NAME_LENGTH];
  10257. char passWord[DH_NEW_USER_PSW_LENGTH];
  10258. DWORD dwRightNum;
  10259. DWORD rights[DH_NEW_MAX_RIGHT_NUM];
  10260. char memo[DH_MEMO_LENGTH];
  10261. DWORD dwFouctionMask; // 掩码,0x00000001 - 支持用户复用
  10262. NET_TIME stuTime; // 最后修改时间
  10263. BYTE byIsAnonymous; // 是否可以匿名登录, 0:不可匿名登录, 1: 可以匿名登录
  10264. BYTE byReserve[7];
  10265. } USER_INFO_NEW;
  10266. ///@brief 用户信息扩展,权限数组增加
  10267. typedef struct tagNET_USER_INFO_NEW_EX
  10268. {
  10269. DWORD dwSize;
  10270. DWORD dwID; // 用户ID
  10271. DWORD dwGroupID; // 用户所属的用户组ID
  10272. char szName[128]; // 用户名称
  10273. char szPassWord[128]; // 用户密码
  10274. DWORD dwRightNum; // 用户权限个数
  10275. DWORD dwRights[3072]; // 用户权限列表
  10276. char szMemo[32]; // 用户信息备注
  10277. DWORD dwFouctionMask; // 掩码,0x00000001 - 支持用户复用
  10278. NET_TIME stuTime; // 最后修改时间
  10279. BYTE byIsAnonymous; // 是否可以匿名登录, 0:不可匿名登录, 1: 可以匿名登录
  10280. BYTE byReserve[3];
  10281. } NET_USER_INFO_NEW_EX;
  10282. ///@brief 剩余修改密码的尝试次数和锁定时间
  10283. typedef struct tagREMAIN_MODIFY_TIME_AND_LOCK_SECOND
  10284. {
  10285. DWORD dwSize; // 结构体大小
  10286. int nRemainModifytimes; // 旧密码输错,剩余可尝试的次数
  10287. int nRemainLockSecond; // 旧密码输入次数达到限定值,剩余锁定时间,单位是秒
  10288. }REMAIN_MODIFY_TIME_AND_LOCK_SECOND;
  10289. ///@brief 用户组信息
  10290. typedef struct _USER_GROUP_INFO_NEW
  10291. {
  10292. DWORD dwSize;
  10293. DWORD dwID;
  10294. char name[DH_USER_NAME_LENGTH_EX];
  10295. DWORD dwRightNum;
  10296. DWORD rights[DH_NEW_MAX_RIGHT_NUM];
  10297. char memo[DH_MEMO_LENGTH];
  10298. } USER_GROUP_INFO_NEW;
  10299. ///@brief 用户组信息扩展,用户组名加长
  10300. typedef struct _USER_GROUP_INFO_EX2
  10301. {
  10302. DWORD dwSize;
  10303. DWORD dwID;
  10304. char name[DH_NEW_USER_NAME_LENGTH];
  10305. DWORD dwRightNum;
  10306. DWORD rights[DH_NEW_MAX_RIGHT_NUM];
  10307. char memo[DH_MEMO_LENGTH];
  10308. } USER_GROUP_INFO_EX2;
  10309. ///@brief 用户组信息扩展3,权限数组增加
  10310. typedef struct tagNET_USER_GROUP_INFO_EX3
  10311. {
  10312. DWORD dwSize;
  10313. DWORD dwID; // 用户组ID
  10314. char szName[128]; // 用户组名称
  10315. DWORD dwRightNum; // 权限个数
  10316. DWORD dwRights[3072]; // 权限数组
  10317. char szMemo[32]; // 备注信息
  10318. BYTE byReserve[4];
  10319. } NET_USER_GROUP_INFO_EX3;
  10320. ///@brief 用户信息表
  10321. typedef struct _USER_MANAGE_INFO_NEW
  10322. {
  10323. DWORD dwSize;
  10324. DWORD dwRightNum; // 权限信息
  10325. OPR_RIGHT_NEW rightList[DH_NEW_MAX_RIGHT_NUM];
  10326. DWORD dwGroupNum; // 用户组数
  10327. USER_GROUP_INFO_NEW groupList[DH_MAX_GROUP_NUM]; // 用户组信息,此参数废弃,请使用groupListEx
  10328. DWORD dwUserNum; // 用户信息
  10329. USER_INFO_NEW userList[DH_MAX_USER_NUM];
  10330. DWORD dwFouctionMask; // 掩码;0x00000001 - 支持用户复用,0x00000002 - 密码修改需要校验
  10331. BYTE byNameMaxLength; // 支持的用户名最大长度
  10332. BYTE byPSWMaxLength; // 支持的密码最大长度
  10333. BYTE byReserve[254];
  10334. USER_GROUP_INFO_EX2 groupListEx[DH_MAX_GROUP_NUM]; // 用户组信息扩展
  10335. } USER_MANAGE_INFO_NEW;
  10336. ///@brief 用户信息表扩展
  10337. typedef struct tagNET_USER_MANAGE_INFO_NEW_EX
  10338. {
  10339. DWORD dwSize;
  10340. BYTE byRightListFlag; // 由接口返回,大于0时,表示调用者申请的pstuRightList数组个数小于设备实际返回的个数,
  10341. // 0:个数足够, [1,254]:不足的个数, 255:不足个数大于254
  10342. BYTE byGroupListFlag; // 由接口返回,大于0时,表示调用者申请的pstuGroupList数组个数小于设备实际返回的个数,
  10343. // 0:个数足够, [1,254]:不足的个数, 255:不足个数大于254
  10344. BYTE byUserListFlag; // 由接口返回,大于0时,表示调用者申请的pstuUserList数组个数小于设备实际返回的个数,
  10345. // 0:个数足够, [1,254]:不足的个数, 255:不足个数大于254
  10346. BYTE byReserved1[9];
  10347. DWORD dwMaxRightNum; // 调用者申请的权限信息数组长度,最大不超过3*1024
  10348. DWORD dwRetRightNum; // 权限信息数组有效长度,由接口返回
  10349. OPR_RIGHT_NEW* pstuRightList; // 权限信息数组,由调用者分配内存
  10350. DWORD dwMaxGroupNum; // 调用者申请的用户组扩展信息数组长度,最大不超过64
  10351. DWORD dwRetGroupNum; // 用户组扩展信息数组有效长度,由接口返回
  10352. NET_USER_GROUP_INFO_EX3* pstuGroupList; // 用户组扩展信息数组,由调用者分配内存
  10353. DWORD dwMaxUserNum; // 调用者申请的用户信息数组长度,最大不超过200
  10354. DWORD dwRetUserNum; // 用户信息数组的有效长度,由接口返回
  10355. NET_USER_INFO_NEW_EX* pstuUserList; // 用户信息数组,由调用者分配内存
  10356. DWORD dwFouctionMask; // 掩码;0x00000001 - 支持用户复用,0x00000002 - 密码修改需要校验
  10357. BYTE byNameMaxLength; // 支持的用户名最大长度
  10358. BYTE byPSWMaxLength; // 支持的密码最大长度
  10359. BYTE byReserved[2];
  10360. } NET_USER_MANAGE_INFO_NEW_EX;
  10361. ///@brief CLIENT_OperateUserInfoNew接口参数 nOperateType 对应的值含义
  10362. typedef enum tagEM_OPERATE_USERINFO_TYPE
  10363. {
  10364. // 权限列表长度 1024
  10365. EM_OPERATE_USERINFO_TYPE_ADD_USER = 3, // 增加用户,opParam对应结构体 USER_INFO_NEW
  10366. EM_OPERATE_USERINFO_TYPE_DEL_USER, // 删除用户,opParam对应结构体 USER_INFO_NEW
  10367. EM_OPERATE_USERINFO_TYPE_MODIFY_USER, // 修改用户,opParam为修改后的用户信息 对应结构体 USER_INFO_NEW, subParam为原始用户信息 对应结构体 USER_INFO_NEW
  10368. EM_OPERATE_USERINFO_TYPE_MODIFY_PWD, // 修改密码,opParam为修改后的密码 对应结构体 USER_INFO_NEW, subParam为原始密码 对应结构体 USER_INFO_NEW
  10369. EM_OPERATE_USERINFO_TYPE_ADD_GROUP, // 增加用户组,opParam对应结构体 USER_GROUP_INFO_EX2
  10370. EM_OPERATE_USERINFO_TYPE_DEL_GROUP, // 删除用户组,opParam对应结构体 USER_GROUP_INFO_EX2
  10371. EM_OPERATE_USERINFO_TYPE_MODIFY_GROUP, // 修改用户组,opParam为修改后的用户组信息 对应结构体 USER_GROUP_INFO_EX2,subParam为原始用户组信息 对应结构体 USER_GROUP_INFO_EX2
  10372. // 权限列表长度 3072
  10373. EM_OPERATE_USERINFO_TYPE_ADD_USER_EX = 10, // 增加用户扩展,opParam对应结构体 NET_USER_INFO_NEW_EX
  10374. EM_OPERATE_USERINFO_TYPE_DEL_USER_EX, // 删除用户扩展,opParam对应结构体 NET_USER_INFO_NEW_EX
  10375. EM_OPERATE_USERINFO_TYPE_MODIFY_USER_EX, // 修改用户扩展,opParam为修改后的用户信息 对应结构体 NET_USER_INFO_NEW_EX, subParam为原始用户信息 对应结构体 NET_USER_INFO_NEW_EX
  10376. EM_OPERATE_USERINFO_TYPE_MODIFY_PWD_EX, // 修改密码扩展,opParam为修改后的密码 对应结构体 NET_USER_INFO_NEW_EX, subParam为原始密码 对应结构体 NET_USER_INFO_NEW_EX
  10377. EM_OPERATE_USERINFO_TYPE_ADD_GROUP_EX, // 增加用户组扩展,opParam对应结构体 NET_USER_GROUP_INFO_EX3
  10378. EM_OPERATE_USERINFO_TYPE_DEL_GROUP_EX, // 删除用户组扩展,opParam对应结构体 NET_USER_GROUP_INFO_EX3
  10379. EM_OPERATE_USERINFO_TYPE_MODIFY_GROUP_EX, // 修改用户组扩展,opParam为修改后的用户组信息 对应结构体 NET_USER_GROUP_INFO_EX3,subParam为原始用户组信息 对应结构体 NET_USER_GROUP_INFO_EX3
  10380. }EM_OPERATE_USERINFO_TYPE;
  10381. ///////////////////////////查询相关定义///////////////////////////////
  10382. ///@brief 设备支持语言种类
  10383. typedef struct _DH_LANGUAGE_DEVINFO
  10384. {
  10385. DWORD dwLanguageNum; // 支持语言个数
  10386. BYTE byLanguageType[252]; // 枚举值,详见DH_LANGUAGE_TYPE
  10387. } DH_DEV_LANGUAGE_INFO, *LPDH_DEV_LANGUAGE_INFO;
  10388. ///@brief 查询设备支持的IPC能力信息
  10389. typedef struct
  10390. {
  10391. int nTypeCount; // 支持的IPC个数
  10392. BYTE bSupportTypes[128]; // 枚举值,详见EM_IPC_TYPE
  10393. }DH_DEV_IPC_INFO;
  10394. ///@brief 3G网络流量信息
  10395. typedef struct
  10396. {
  10397. int nStrategy; // 包月策略,0-按流量包月,1-按时间包月
  10398. int nUplimit; // 流量上限, 与策略对应, 按流量, 单位MB; 按时间,单位小时
  10399. int nUsed; // 已使用流量,单位与nUplimit相同
  10400. BYTE bReserved[64]; // 保留字段
  10401. }DH_DEV_3GFLOW_INFO;
  10402. ///@brief 3G模块信息
  10403. typedef struct
  10404. {
  10405. BYTE byEthNum; // 3G模块数
  10406. BYTE byReserved[255]; // 保留字节
  10407. }DH_DEV_3GMODULE_INFO;
  10408. ///@brief DDNS信息
  10409. typedef struct
  10410. {
  10411. DWORD dwId; // ddns 服务器id号
  10412. char szState[DH_MAX_DDNS_STATE_LEN]; // ddns 状态
  10413. BYTE bReserved[512]; // 保留字段
  10414. }DH_DEV_DNS_INFO;
  10415. ///@brief 查询多DDNS状态信息
  10416. typedef struct
  10417. {
  10418. DWORD dwDdnsServerNum;
  10419. DH_DEV_DNS_INFO stDdns[DH_MAX_DDNS_NUM];
  10420. }DH_DEV_MULTI_DDNS_INFO;
  10421. ///@brief 设备URL信息
  10422. typedef struct
  10423. {
  10424. char szURLInfo[512]; //设备URL信息, 由字符串组成
  10425. BYTE bReserved[512];
  10426. }DH_DEV_URL_INFO;
  10427. ///@brief 硬盘信息
  10428. typedef struct
  10429. {
  10430. DWORD dwVolume; // 硬盘的容量, 单位MB(B表示字节)
  10431. DWORD dwFreeSpace; // 硬盘的剩余空间, 单位MB(B表示字节)
  10432. BYTE dwStatus; // 高四位的值表示硬盘类型,具体见枚举类型EM_DISK_TYPE;低四位的值表示硬盘的状态,0-休眠,1-活动,2-故障等;将DWORD拆成四个BYTE
  10433. BYTE bDiskNum; // 硬盘号
  10434. BYTE bSubareaNum; // 分区号
  10435. BYTE bSignal; // 标识,0为本地 1为远程
  10436. } NET_DEV_DISKSTATE,*LPNET_DEV_DISKSTATE;
  10437. ///@brief 设备硬盘信息
  10438. typedef struct _DH_HARDDISK_STATE
  10439. {
  10440. DWORD dwDiskNum; // 个数
  10441. NET_DEV_DISKSTATE stDisks[DH_MAX_DISKNUM]; // 硬盘或分区信息
  10442. } DH_HARDDISK_STATE, *LPDH_HARDDISK_STATE;
  10443. typedef DH_HARDDISK_STATE DH_SDCARD_STATE; // SD卡,数据结构同硬盘信息
  10444. ///@brief 语音编码信息
  10445. typedef struct
  10446. {
  10447. DH_TALK_CODING_TYPE encodeType; // 编码类型
  10448. int nAudioBit; // 位数,如8或16等
  10449. DWORD dwSampleRate; // 采样率,如8000或16000等
  10450. int nPacketPeriod; // 打包周期, 单位ms
  10451. char reserved[60];
  10452. } DHDEV_TALKDECODE_INFO;
  10453. ///@brief 设备支持的语音对讲类型
  10454. typedef struct
  10455. {
  10456. int nSupportNum; // 个数
  10457. DHDEV_TALKDECODE_INFO type[64]; // 编码类型
  10458. char reserved[64];
  10459. } DHDEV_TALKFORMAT_LIST;
  10460. #define NAME_MAX_LEN 16
  10461. ///@brief 云台属性信息
  10462. typedef struct
  10463. {
  10464. DWORD dwHighMask; // 操作的掩码高位
  10465. DWORD dwLowMask; // 操作的掩码低位
  10466. char szName[NAME_MAX_LEN]; // 操作的协议名
  10467. WORD wCamAddrMin; // 通道地址的最小值
  10468. WORD wCamAddrMax; // 通道地址的最大值
  10469. WORD wMonAddrMin; // 预览地址的最小值
  10470. WORD wMonAddrMax; // 预览地址的最大值
  10471. BYTE bPresetMin; // 预置点的最小值
  10472. BYTE bPresetMax; // 预置点的最大值
  10473. BYTE bTourMin; // 自动巡航线路的最小值
  10474. BYTE bTourMax; // 自动巡航线路的最大值
  10475. BYTE bPatternMin; // 轨迹线路的最小值
  10476. BYTE bPatternMax; // 轨迹线路的最大值
  10477. BYTE bTileSpeedMin; // 垂直速度的最小值
  10478. BYTE bTileSpeedMax; // 垂直速度的最大值
  10479. BYTE bPanSpeedMin; // 水平速度的最小值
  10480. BYTE bPanSpeedMax; // 水平速度的最大值
  10481. BYTE bAuxMin; // 辅助功能的最小值
  10482. BYTE bAuxMax; // 辅助功能的最大值
  10483. int nInternal; // 发送命令的时间间隔
  10484. char cType; // 协议的类型
  10485. BYTE bReserved_1; // 保留
  10486. BYTE bFuncMask; // 协议功能掩码,按位表示,置1表示支持,第一位表示内置云台功能,其它7位暂时保留
  10487. BYTE bReserved_2;
  10488. char Reserved[4];
  10489. } PTZ_OPT_ATTR;
  10490. ///@brief 光驱托盘状态
  10491. typedef enum tagEM_NET_BURN_DEV_TRAY_TYPE
  10492. {
  10493. EM_NET_BURN_DEV_TRAY_TYPE_UNKNOWN, // 未知
  10494. EM_NET_BURN_DEV_TRAY_TYPE_READY, // 光盘就绪
  10495. EM_NET_BURN_DEV_TRAY_TYPE_OPEN, // 托盘弹出
  10496. EM_NET_BURN_DEV_TRAY_TYPE_NODISK, // 无盘
  10497. EM_NET_BURN_DEV_TRAY_TYPE_NOT_READY, // 光盘未就绪
  10498. }EM_NET_BURN_DEV_TRAY_TYPE;
  10499. ///@brief 光驱使用状态
  10500. typedef enum tagEM_NET_BURN_DEV_OPERATE_TYPE
  10501. {
  10502. EM_NET_BURN_DEV_OPERATE_TYPE_UNKNOWN, // 未知
  10503. EM_NET_BURN_DEV_OPERATE_TYPE_WRITE, // 执行写
  10504. EM_NET_BURN_DEV_OPERATE_TYPE_READ, // 执行读
  10505. EM_NET_BURN_DEV_OPERATE_TYPE_IDLE, // 空闲
  10506. }EM_NET_BURN_DEV_OPERATE_TYPE;
  10507. ///@brief 刻录机信息
  10508. typedef struct _NET_DEV_BURNING
  10509. {
  10510. DWORD dwDriverType; // 刻录驱动器类型;0:DHFS,1:DISK,2:CDRW
  10511. DWORD dwBusType; // 总线类型;0:USB,1:1394,2:IDE, 3: SATA, 4: ESATA
  10512. DWORD dwTotalSpace; // 总容量(KB)
  10513. DWORD dwRemainSpace; // 剩余容量(KB)
  10514. BYTE dwDriverName[DH_BURNING_DEV_NAMELEN]; // 刻录驱动器名称
  10515. EM_NET_BURN_DEV_TRAY_TYPE emTrayType; // 光驱托盘状态
  10516. EM_NET_BURN_DEV_OPERATE_TYPE emOperateType; // 光盘使用状态
  10517. } NET_DEV_BURNING, *LPNET_DEV_BURNING;
  10518. ///@brief 设备刻录机信息
  10519. typedef struct _DH_BURNING_DEVINFO
  10520. {
  10521. DWORD dwDevNum; // 刻录设备个数
  10522. NET_DEV_BURNING stDevs[DH_MAX_BURNING_DEV_NUM]; // 各刻录设备信息
  10523. } DH_BURNING_DEVINFO, *LPDH_BURNING_DEVINFO;
  10524. ///@brief 刻录进度
  10525. typedef struct _DH_BURNING_PROGRESS
  10526. {
  10527. BYTE bBurning; // 刻录机状态;0:可以刻录,1:刻录机类型不对,是一个非光盘设备,
  10528. // 2:未找到刻录机(即剩余空间为0),3:有其它光盘在刻录,4:刻录机处于非空闲状态,即在备份、刻录或回放中
  10529. BYTE bRomType; // 盘片类型;0:私有文件系统,1:移动硬盘或U盘,2:光盘
  10530. BYTE bOperateType; // 操作类型;0:空闲,1:正在备份中,2:正在刻录中,3:正在进行光盘回放, 4: 无盘刻录
  10531. BYTE bType; // 备份或刻录过程状态;0-停止 1-开始 2-出错 3-满 4-结束 5-正在初始化 6-暂停 7-等待附件
  10532. NET_TIME stTimeStart; // 开始时间 
  10533. DWORD dwTimeElapse; // 已刻录时间(秒)
  10534. DWORD dwTotalSpace; // 光盘总容量
  10535. DWORD dwRemainSpace; // 光盘剩余容量
  10536. DWORD dwBurned; // 已刻录容量
  10537. WORD dwStatus; // 保留
  10538. WORD wChannelMask; // 正在刻录的通道掩码
  10539. } DH_BURNING_PROGRESS, *LPDH_BURNING_PROGRESS;
  10540. ///@brief 日志信息,对应接口CLIENT_QueryLog接口
  10541. typedef struct _DH_LOG_ITEM
  10542. {
  10543. DHDEVTIME time; // 日期
  10544. unsigned short type; // 日志类型,对应结构体 DH_LOG_TYPE
  10545. unsigned char reserved; // 保留
  10546. unsigned char data; // 数据
  10547. unsigned char context[8]; // 内容
  10548. } DH_LOG_ITEM, *LPDH_LOG_ITEM;
  10549. ///@brief 日志信息,对应扩展接口CLIENT_QueryLogEx,参数reserved(int nType=1;reserved=&nType;)
  10550. typedef struct _DH_NEWLOG_ITEM
  10551. {
  10552. DHDEVTIME time; // 日期
  10553. WORD type; // 扩展日志类型,对应结构体 DH_NEWLOG_TYPE
  10554. WORD data; // 数据
  10555. char szOperator[8]; // 用户名
  10556. BYTE context[16]; // 内容
  10557. } DH_NEWLOG_ITEM, *LPDH_NEWLOG_ITEM;
  10558. ///@brief 日志信息,对应接口CLIENT_QueryDeviceLog接口
  10559. typedef struct _DH_DEVICE_LOG_ITEM
  10560. {
  10561. int nLogType; // 日志类型
  10562. DHDEVTIME stuOperateTime; // 日期
  10563. char szOperator[16]; // 操作者
  10564. BYTE bReserved[3];
  10565. BYTE bUnionType; // union结构类型,0:szLogContext;1:stuOldLog。
  10566. union
  10567. {
  10568. char szLogContext[64]; // 日志备注信息
  10569. struct
  10570. {
  10571. DH_LOG_ITEM stuLog; // 旧的日志结构体
  10572. BYTE bReserved[48]; // 保留
  10573. }stuOldLog;
  10574. };
  10575. char reserved[16];
  10576. } DH_DEVICE_LOG_ITEM, *LPDH_DEVICE_LOG_ITEM;
  10577. ///@brief 新日志信息结构,对应接口CLIENT_QueryDeviceLog接口
  10578. typedef struct _DH_DEVICE_LOG_ITEM_EX
  10579. {
  10580. int nLogType; // 日志类型
  10581. DHDEVTIME stuOperateTime; // 日期
  10582. char szOperator[16]; // 操作者
  10583. BYTE bReserved[3];
  10584. BYTE bUnionType; // union结构类型,0:szLogContext;1:stuOldLog。
  10585. union
  10586. {
  10587. char szLogContext[64]; // 日志备注信息
  10588. struct
  10589. {
  10590. DH_LOG_ITEM stuLog; // 旧的日志结构体
  10591. BYTE bReserved[48]; // 保留
  10592. }stuOldLog;
  10593. };
  10594. char szOperation[32]; // 具体的操作内容
  10595. char szDetailContext[4*1024]; // 详细日志信息描述
  10596. } DH_DEVICE_LOG_ITEM_EX, *LPDH_DEVICE_LOG_ITEM_EX;
  10597. ///@brief 录象日志信息,对应日志结构体里的context
  10598. typedef struct _LOG_ITEM_RECORD
  10599. {
  10600. DHDEVTIME time; // 时间
  10601. BYTE channel; // 通道
  10602. BYTE type; // 录像类型
  10603. BYTE reserved[2];
  10604. } LOG_ITEM_RECORD, *LPLOG_ITEM_RECORD;
  10605. ///@brief 查询记录数条件
  10606. typedef struct _QUERY_DEVICE_LOG_PARAM
  10607. {
  10608. DH_LOG_QUERY_TYPE emLogType; // 查询日志类型
  10609. NET_TIME stuStartTime; // 查询日志的开始时间
  10610. NET_TIME stuEndTime; // 查询日志的结束时间
  10611. int nStartNum; // 在时间段中从第几条日志开始查询,开始第一次查询可设为0
  10612. int nEndNum; // 一次查询中到第几条日志结束,日志返回条数的最大值为1024
  10613. BYTE nLogStuType; // 日志数据结构体类型,0:表示DH_DEVICE_LOG_ITEM;1:表示DH_DEVICE_LOG_ITEM_EX
  10614. BYTE reserved[3]; // 保留 对齐
  10615. unsigned int nChannelID; // 通道号,0:兼容之前表示所有通道号,所以通道号从1开始; 1:第一个通道
  10616. BYTE bReserved[40];
  10617. } QUERY_DEVICE_LOG_PARAM;
  10618. ///@brief 订阅上报日志类型
  10619. typedef enum tagNET_EM_LOG_QUERY_TYPE
  10620. {
  10621. EM_LOG_QUERY_TYPE_UNKNOWN,
  10622. EM_LOG_QUERY_TYPE_TEXT = 1, //文本类型日志
  10623. }NET_EM_LOG_QUERY_TYPE;
  10624. ///@brief 设备硬盘里的录象信息
  10625. typedef struct __DEV_DISK_RECORD_INFO
  10626. {
  10627. NET_TIME stuBeginTime; // 最早录象时间
  10628. NET_TIME stuEndTime; // 最近录象时间
  10629. char reserved[128];
  10630. } DEV_DISK_RECORD_INFO;
  10631. ///@brief 设备硬盘录像时间信息
  10632. typedef struct __DEV_DISK_RECORD_TIME
  10633. {
  10634. NET_TIME stuStartTime1; // 录像时间段1开始时间
  10635. NET_TIME stuEndTime1; // 录像时间段1结束时间
  10636. BOOL bTwoPart; // 是否有第二段
  10637. NET_TIME stuStartTime2; // 录像时间段2开始时间
  10638. NET_TIME stuEndTime2; // 录像时间段2结束时间
  10639. BYTE bDiskNum; // 硬盘号
  10640. BYTE bSubareaNum; // 分区号
  10641. BYTE byReserved[62]; // 保留字节
  10642. }DEV_DISK_RECORD_TIME;
  10643. ///////////////////////////控制相关定义///////////////////////////////
  10644. ///@brief 新网络键盘控制
  10645. typedef struct _NKB_PARAM
  10646. {
  10647. BYTE bAddressCode; // 为DVR等设备的物理地址号,0xFF为广播地址
  10648. BYTE bKeyStatus; // 状态码 0/1 0表示按键按下 1表示按键放开
  10649. BYTE bExtern1; // 扩展字节1
  10650. BYTE bExtern2; // 扩展字节2
  10651. BYTE bReserved[60];
  10652. }NKB_PARAM;
  10653. ///@brief 硬盘操作
  10654. typedef struct _DISKCTRL_PARAM
  10655. {
  10656. DWORD dwSize; // 结构体大小,版本控制用
  10657. int nIndex; // 为硬盘信息结构体DH_HARDDISK_STATE里的数组stDisks下标,从0开始
  10658. int ctrlType; // 操作类型,
  10659. // 0 - 清除数据, 1 - 设为读写盘, 2 - 设为只读盘
  10660. // 3 - 设为冗余盘, 4 - 恢复错误, 5 - 设为快照盘,7 - 弹出SD卡(对SD卡操作有效)
  10661. NET_DEV_DISKSTATE stuDisk; // 磁盘信息, 由于磁盘顺序可能改变导致下标不准, 用来代替下标
  10662. } DISKCTRL_PARAM;
  10663. ///@brief 硬盘信息
  10664. typedef struct
  10665. {
  10666. BYTE bSubareaNum; // 预分区的个数
  10667. BYTE bIndex; // 为硬盘信息结构体DH_HARDDISK_STATE里的数组stDisks下标,从0开始
  10668. BYTE bSubareaSize[32]; // 分区大小(百分比)
  10669. BYTE bReserved[30]; // 保留
  10670. } DISKCTRL_SUBAREA;
  10671. ///@brief 报警状态
  10672. typedef struct _ALARMCTRL_PARAM
  10673. {
  10674. DWORD dwSize;
  10675. int nAlarmNo; // 报警通道号,从0开始
  10676. int nAction; // 1:触发报警,0:停止报警
  10677. } ALARMCTRL_PARAM;
  10678. ///@brief 矩阵控制
  10679. typedef struct _MATRIXCTRL_PARAM
  10680. {
  10681. DWORD dwSize;
  10682. int nChannelNo; // 视频输入号,从0开始
  10683. int nMatrixNo; // 矩阵输出号,从0开始
  10684. } MATRIXCTRL_PARAM;
  10685. ///@brief 刻录控制
  10686. typedef struct _BURNING_PARM
  10687. {
  10688. int channelMask; // 通道掩码,按位表示要刻录的通道
  10689. BYTE devMask; // 刻录机掩码,根据查询到的刻录机列表,按位表示
  10690. BYTE bySpicalChannel; // 画中画通道(通道数+31,例如对于4通道设备,该值应为35)
  10691. BYTE byReserved[2]; // 保留字段
  10692. } BURNNG_PARM;
  10693. ///@brief 附件刻录
  10694. typedef struct _BURNING_PARM_ATTACH
  10695. {
  10696. BOOL bAttachBurn; // 是否为附件刻录,0:不是; 1:是
  10697. BYTE bReserved[12]; // 保留字段
  10698. } BURNING_PARM_ATTACH;
  10699. ///@brief 手动抓拍参数
  10700. typedef struct _MANUAL_SNAP_PARAMETER{
  10701. int nChannel; // 抓图通道,从0开始
  10702. BYTE bySequence[64]; // 抓图序列号字符串 部分设备需要在这个序号后面#n,作为抓拍第n个车道的信号。如123#3,就表示抓拍第3个车道,抓图序列号为123。
  10703. BYTE byReserved[60]; // 保留字段
  10704. }MANUAL_SNAP_PARAMETER;
  10705. ///@brief 控制设备端本地预览分割参数
  10706. typedef struct _DEVICE_LOCALPREVIEW_SLIPT_PARAMETER
  10707. {
  10708. int nSliptMode; // 分割模式,见设备端本地预览支持的分割模式
  10709. int nSubSliptNum; // 当前要预览的子分割,从1开始
  10710. BYTE byReserved[64]; // 保留字段
  10711. }DEVICE_LOCALPREVIEW_SLIPT_PARAMETER;
  10712. ///@brief 设备端本地预览支持的分割模式
  10713. typedef struct _DEVICE_LOCALPREVIEW_SLIPT_CAP
  10714. {
  10715. int nModeNumber;
  10716. int nSliptMode[36]; // 支持的分割模式,
  10717. BYTE byReserved[64]; // 保留字段
  10718. }DEVICE_LOCALPREVIEW_SLIPT_CAP;
  10719. ///@brief 路口信息
  10720. typedef struct _CROSSING_INFO
  10721. {
  10722. char szCrossingID[DH_MAX_CROSSING_ID]; // 路口序列号
  10723. DWORD dwLatitude; // 纬度(单位是百万分之度,范围0-180度)如北纬30(.)183382度表示为120183382)
  10724. DWORD dwLongitude; // 经度(单位是百万分之度,范围0-360度) 如东经100(.)178274度表示为280178274)
  10725. // 经纬度的具体转换方式可以参考结构体 NET_WIFI_GPS_INFO 中的注释
  10726. WORD wSpeedLimit; // 路口限速值,单位Km/h 0表示不限速,其他表示限速值上限
  10727. BYTE byReserved[22];
  10728. }CROSSING_INFO;
  10729. ///@brief 路线点位信息
  10730. typedef struct _ROUTE_CROSSING_INFO
  10731. {
  10732. BYTE byCrossingNum; // 路口有效数量范围1~DH_MAX_CROSSING_NUM
  10733. BYTE byReserved1;
  10734. WORD wCrossingRange; // 定位精度范围单位m
  10735. CROSSING_INFO stCrossingInfo[DH_MAX_CROSSING_NUM];// 路口信息最大支持128个路口
  10736. BYTE byReserved2[2044];
  10737. }ROUTE_CROSSING_INFO;
  10738. ///@brief raid操作
  10739. typedef struct _CTRL_RAID_INFO
  10740. {
  10741. char szAction[16]; // Add增加,Delete删除
  10742. char szName[16]; // Raid名称
  10743. int nType; // 类型 1:Jbod 2:Raid0 3:Raid1 4:Raid5
  10744. int nStatus; // 状态 0:unknown ,1:active,2:degraded,3:inactive,4:recovering
  10745. int nCntMem; // nMember数组的有效数据个数
  10746. int nMember[32]; // 1,2,3,... 组成磁盘通道,是个数组
  10747. int nCapacity; // 容量,单位G
  10748. int nRemainSpace; // 剩余容量,单位M
  10749. int nTank; // 扩展柜 0:主机,1:扩展柜1,2:扩展柜2,……
  10750. char reserved[128];
  10751. }CTRL_RAID_INFO;
  10752. ///@brief 热备操作
  10753. typedef struct _CTRL_SPARE_DISK_INFO
  10754. {
  10755. char szAction[16]; // Enable,使能,Unable,不使能
  10756. char szScope[16]; // Global,全局热备,Local,非全局热备
  10757. char szName[16]; // 热备名字,若Scope为Global,则为热备池的名称,否则表示Raid组的名称
  10758. unsigned int nIndex; // 磁盘序号
  10759. const char* pszDevName; // 存储设备名称,由用户申请内存
  10760. char reserved[124];
  10761. }CTRL_SPARE_DISK_INFO;
  10762. ///@brief 热备操作扩展信息
  10763. typedef struct _CTRL_SPARE_DISK_INFO_A
  10764. {
  10765. int nCnt; // 热备盘的个数
  10766. CTRL_SPARE_DISK_INFO stSpaceDiskInfo[32];
  10767. }CTRL_SPARE_DISK_INFO_A;
  10768. ///@brief 报警布撤防控制
  10769. typedef struct __CTRL_ARM_DISARM_PARAM
  10770. {
  10771. BYTE bState; // 布撤防状态,0表示撤防,1表示布防,2表示强制布防
  10772. char reserve[3];
  10773. const char* szDevPwd; // 用户密码
  10774. NET_SCENE_MODE emSceneMode; // 情景模式
  10775. const char* szDevID; // 转发目标设备ID,为NULL表示不转发
  10776. char reserve1[16];
  10777. } CTRL_ARM_DISARM_PARAM;
  10778. ///@brief 报警布撤防控制扩展输入参数
  10779. typedef struct tagCTRL_ARM_DISARM_PARAM_EX_IN
  10780. {
  10781. DWORD dwSize;
  10782. NET_ALARM_MODE emState; // 布撤防状态
  10783. const char* szDevPwd; // 用户密码
  10784. NET_SCENE_MODE emSceneMode; // 情景模式
  10785. const char* szDevID; // 转发目标设备ID,为NULL表示不转发
  10786. } CTRL_ARM_DISARM_PARAM_EX_IN;
  10787. #define ARM_DISARM_ZONE_MAX (256) // 防区最大个数
  10788. ///@brief 报警布撤防控制扩展输出参数
  10789. typedef struct tagCTRL_ARM_DISARM_PARAM_EX_OUT
  10790. {
  10791. DWORD dwSize;
  10792. DWORD dwSourceNum; // 有报警源输入布防失败的防区个数
  10793. int nSource[ARM_DISARM_ZONE_MAX]; // 有报警源输入失败的防区号, 防区号从0开始
  10794. DWORD dwLinkNum; // 有联动报警布防失败的防区个数
  10795. int nLink[ARM_DISARM_ZONE_MAX]; // 有联动报警失败的防区号, 防区号从0开始
  10796. } CTRL_ARM_DISARM_PARAM_EX_OUT;
  10797. ///@brief 报警布撤防控制扩展(对应DH_CTRL_ARMED_EX)
  10798. typedef struct tagCTRL_ARM_DISARM_PARAM_EX
  10799. {
  10800. DWORD dwSize;
  10801. CTRL_ARM_DISARM_PARAM_EX_IN stuIn; // 报警布撤防控制输入
  10802. CTRL_ARM_DISARM_PARAM_EX_OUT stuOut; // 报警布撤防控制输出
  10803. } CTRL_ARM_DISARM_PARAM_EX;
  10804. ///@brief 连接参数
  10805. typedef struct tagDHCTRL_CONNECT_WIFI_BYWPS_IN
  10806. {
  10807. DWORD dwSize;
  10808. int nType; // WPS连接类型,0:虚拟按钮方式; 1:(设备端)pin码方式; 2:(wifi热点端)pin码方式
  10809. char szSSID[DH_MAX_SSID_LEN]; // SSID,nType为1或2时有效,最大支持32位
  10810. char szApPin[DH_MAX_APPIN_LEN]; // APPIN码, nType为2时有效,PIN码为8位数字,这个pin码是从wifi热点端拿到的
  10811. char szWLanPin[DH_MAX_APPIN_LEN]; // 设备pin码,nType为1时有效:为空时由设备产生;不为空时即表示由用户设定,最大支持8位数字,这个pin码要在WIFI热点端增加
  10812. }DHCTRL_CONNECT_WIFI_BYWPS_IN;
  10813. ///@brief 返回数据
  10814. typedef struct tagDHCTRL_CONNECT_WIFI_BYWPS_OUT
  10815. {
  10816. DWORD dwSize;
  10817. char szRetWLanPin[DH_MAX_APPIN_LEN];// 返回设备PIN码,当WPS连接类型为(设备端)pin码方式时该输出参数有效
  10818. }DHCTRL_CONNECT_WIFI_BYWPS_OUT;
  10819. ///@brief CLIENT_ControlDevice接口的DH_CTRL_WIFI_BY_WPS命令参数(WPS快速配置WIFI)
  10820. typedef struct tagDHCTRL_CONNECT_WIFI_BYWPS
  10821. {
  10822. DWORD dwSize;
  10823. DHCTRL_CONNECT_WIFI_BYWPS_IN stuWpsInfo; // 连接参数(由用户填写)
  10824. DHCTRL_CONNECT_WIFI_BYWPS_OUT stuWpsResult; // 返回数据(由设备返回)
  10825. } DHCTRL_CONNECT_WIFI_BYWPS;
  10826. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_CLOSE_BURNER 等 命令参数
  10827. typedef struct tagNET_CTRL_BURNERDOOR
  10828. {
  10829. DWORD dwSize;
  10830. const char* szBurnerName; // 光盘名称,如“/dev/sda”
  10831. BOOL bResult; // 操作结果
  10832. BOOL bSafeEject; // 是否安全弹出光驱, TRUE-弹出前做数据保存, FALSE-直接弹出
  10833. }NET_CTRL_BURNERDOOR;
  10834. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_START_PLAYAUDIO 命令参数
  10835. typedef struct tagNET_CTRL_START_PLAYAUDIO
  10836. {
  10837. DWORD dwSize;
  10838. char szAudioPath[DH_MAX_AUDIO_PATH];
  10839. }NET_CTRL_START_PLAYAUDIO;
  10840. ///@brief 播报单元类型
  10841. typedef enum tagNET_PLAYAUDIO_TYPE
  10842. {
  10843. NET_PLAYAUDIO_TYPE_UNKNOWN = 0,
  10844. NET_PLAYAUDIO_TYPE_PHRASE, // 短语类型,不进行解析,依次读每个字,有该字的语音文件支持
  10845. NET_PLAYAUDIO_TYPE_FILE, // 播放指定路径的语音文件(设备端完整路径)
  10846. NET_PLAYAUDIO_TYPE_PLATERNUM, // 播报车牌号码,按车牌号码格式读出
  10847. NET_PLAYAUDIO_TYPE_MONEY, // 播报金额,按金额形式读出
  10848. NET_PLAYAUDIO_TYPE_DATE, // 播报日期,按日期形式读出
  10849. NET_PLAYAUDIO_TYPE_TIME, // 播报时间,按时间形式读出
  10850. NET_PLAYAUDIO_TYPE_EMPTY, // 空类型,停顿一个字符时间
  10851. }NET_PLAYAUDIO_TYPE;
  10852. ///@brief 语音播报优先级
  10853. typedef enum EM_PLAYAUDIO_PRIORITY
  10854. {
  10855. EM_PLAYAUDIO_PRIORITY_UNKNOWN, // 未知
  10856. EM_PLAYAUDIO_PRIORITY_FRONT, // 插入播放队列最前端,播放完该文件后播放原来的文件
  10857. EM_PLAYAUDIO_PRIORITY_BACK, // 插入播放队列最后,等待其它文件播放完再播放该文件
  10858. EM_PLAYAUDIO_PRIORITY_EMERGENCY, // 优先级同 EM_PLAYAUDIO_PRIORITY_FRONT,但取消队列中正在播放文件
  10859. }EM_PLAYAUDIO_PRIORITY;
  10860. ///@brief 语音播报内容
  10861. typedef struct tagNET_CTRL_PLAYAUDIO_INFO
  10862. {
  10863. DWORD dwSize;
  10864. NET_PLAYAUDIO_TYPE emPlayAudioType; // 播报单元类型,详见NET_PLAYAUDIO_TYPE
  10865. char szDetail[DH_COMMON_STRING_128]; // 详细内容各类型详细内容:
  10866. // Phrase类型:"欢迎"
  10867. // File类型: "/home/停车.pcm"
  10868. // PlateNumbe类型: "浙A12345"
  10869. // Money类型: "80.12元"
  10870. // Date类型: "2014年4月10日"
  10871. // Time类型: "1天10小时20分5秒
  10872. int nRepeatTimes; // 播放重复次数
  10873. EM_PLAYAUDIO_PRIORITY emPriority; // 播放优先级
  10874. }NET_CTRL_PLAYAUDIO_INFO;
  10875. #define DH_MAX_PLAYAUDIO_COUNT 16 // 最大播报内容数目
  10876. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_START_PLAYAUDIOEX 命令参数
  10877. typedef struct tagNET_CTRL_START_PLAYAUDIOEX
  10878. {
  10879. DWORD dwSize;
  10880. unsigned int nAudioCount; // 播报内容数目
  10881. NET_CTRL_PLAYAUDIO_INFO stuAudioInfos[DH_MAX_PLAYAUDIO_COUNT]; // 语音播报内容
  10882. UINT nListRepeatTimes; // 语音播报内容重复次数, 描述所有播报单元
  10883. }NET_CTRL_START_PLAYAUDIOEX;
  10884. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_START_ALARMBELL、DH_CTRL_STOP_ALARMBELL命令参数
  10885. typedef struct tagNET_CTRL_ALARMBELL
  10886. {
  10887. DWORD dwSize;
  10888. int nChannelID; // 通道号(0开始)
  10889. }NET_CTRL_ALARMBELL;
  10890. ///@brief 门禁控制--开门方式
  10891. typedef enum tagEM_OPEN_DOOR_TYPE
  10892. {
  10893. EM_OPEN_DOOR_TYPE_UNKNOWN = 0,
  10894. EM_OPEN_DOOR_TYPE_REMOTE, // 远程开门
  10895. EM_OPEN_DOOR_TYPE_LOCAL_PASSWORD, // 本地密码开门
  10896. EM_OPEN_DOOR_TYPE_LOCAL_CARD, // 本地刷卡开门
  10897. EM_OPEN_DOOR_TYPE_LOCAL_BUTTON, // 本地按钮开门
  10898. }EM_OPEN_DOOR_TYPE;
  10899. ///@brief 开门方向
  10900. typedef enum tagEM_OPEN_DOOR_DIRECTION
  10901. {
  10902. EM_OPEN_DOOR_DIRECTION_UNKNOWN, // 未知,设备自行决定
  10903. EM_OPEN_DOOR_DIRECTION_FROM_ENTER, // 朝进门方向开门
  10904. EM_OPEN_DOOR_DIRECTION_FROM_LEAVE, // 朝出门方向开门
  10905. }EM_OPEN_DOOR_DIRECTION;
  10906. ///@brief 远程权限验证结果
  10907. typedef enum tagEM_REMOTE_CHECK_CODE
  10908. {
  10909. EM_REMOTE_CHECK_CODE_UNKNOWN = -1, // 未知
  10910. EM_REMOTE_CHECK_CODE_SUCCESS, // 成功
  10911. EM_REMOTE_CHECK_CODE_FAIL, // 失败
  10912. }EM_REMOTE_CHECK_CODE;
  10913. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_ACCESS_OPEN 命令参数
  10914. typedef struct tagNET_CTRL_ACCESS_OPEN
  10915. {
  10916. DWORD dwSize;
  10917. int nChannelID; // 通道号(0开始)
  10918. const char* szTargetID; // 转发目标设备ID,为NULL表示不转发
  10919. char szUserID[MAX_COMMON_STRING_32]; // 远程用户ID
  10920. EM_OPEN_DOOR_TYPE emOpenDoorType; // 开门方式
  10921. EM_OPEN_DOOR_DIRECTION emOpenDoorDirection; // 开门方向
  10922. EM_REMOTE_CHECK_CODE emRemoteCheckCode; // 远程权限验证结果
  10923. char szShortNumber[16]; // 兼容字段
  10924. }NET_CTRL_ACCESS_OPEN;
  10925. ///@brief 门禁工作模式类型
  10926. typedef enum tagEM_NET_DOOR_WORK_MODE_TYPE
  10927. {
  10928. NET_DOOR_WORK_MODE_UNKNOWN, // 未知
  10929. NET_DOOR_WORK_MODE_NORMAL, // 正常模式
  10930. NET_DOOR_WORK_MODE_SHUTDOWN, // 关闭
  10931. NET_DOOR_WORK_MODE_UNUSED, // 停用
  10932. NET_DOOR_WORK_MODE_OPEN_DOOR_CONTINUE, // 持续打开
  10933. }EM_NET_DOOR_WORK_MODE_TYPE;
  10934. ///@brief 设置门禁工作模式(入参)
  10935. typedef struct tagNET_IN_CTRL_ACCESS_SET_DOOR_WORK_MODE
  10936. {
  10937. DWORD dwSize;
  10938. EM_NET_DOOR_WORK_MODE_TYPE emWorkMode; // 工作模式类型
  10939. int nChannelID; // 通道ID
  10940. }NET_IN_CTRL_ACCESS_SET_DOOR_WORK_MODE;
  10941. ///@brief 设置门禁工作模式(出参)
  10942. typedef struct tagNET_OUT_CTRL_ACCESS_SET_DOOR_WORK_MODE
  10943. {
  10944. DWORD dwSize;
  10945. }NET_OUT_CTRL_ACCESS_SET_DOOR_WORK_MODE;
  10946. ///@brief 同步防护舱LED的时间(入参)
  10947. typedef struct tagNET_IN_CTRL_SYNC_CABINLED_TIME
  10948. {
  10949. DWORD dwSize;
  10950. }NET_IN_CTRL_SYNC_CABINLED_TIME;
  10951. ///@brief 同步防护舱LED的时间(出参)
  10952. typedef struct tagNET_OUT_CTRL_SYNC_CABINLED_TIME
  10953. {
  10954. DWORD dwSize;
  10955. }NET_OUT_CTRL_SYNC_CABINLED_TIME;
  10956. ///@brief 防护舱LED播放控制类型
  10957. typedef enum tagEM_NET_CABIN_LED_PLAY_CONTROL_MODE
  10958. {
  10959. NET_CABIN_LED_PLAY_CONTROL_MODE_UNKNOWN, // 未知
  10960. NET_CABIN_LED_PLAY_CONTROL_MODE_NORMAL_TURN_ON, // 正常播放 ( 开屏 )
  10961. NET_CABIN_LED_PLAY_CONTROL_MODE_NEXT_PROGRAM, // 后一节目
  10962. NET_CABIN_LED_PLAY_CONTROL_MODE_PREVIOUS_PROGRAM, // 前一节目
  10963. NET_CABIN_LED_PLAY_CONTROL_MODE_PAUSE, // 暂停播放
  10964. NET_CABIN_LED_PLAY_CONTROL_MODE_PAUSE_TURN_OFF, // 暂停播放 ( 关屏 )
  10965. NET_CABIN_LED_PLAY_CONTROL_MODE_PLAY_GO_ON, // 继续播放
  10966. NET_CABIN_LED_PLAY_CONTROL_MODE_GO_TO_TEST_ITSELF,// 进入自测
  10967. NET_CABIN_LED_PLAY_CONTROL_MODE_EXIT_TEST_ITSELF, // 退出自测
  10968. NET_CABIN_LED_PLAY_CONTROL_MODE_SYSTEM_RESET, // 复位系统
  10969. }EM_NET_CABIN_LED_PLAY_CONTROL_MODE;
  10970. ///@brief 防护舱LED播放控制(入参)
  10971. typedef struct tagNET_IN_CTRL_CABINLED_PLAYCONTROL
  10972. {
  10973. DWORD dwSize;
  10974. EM_NET_CABIN_LED_PLAY_CONTROL_MODE emAction; // 播放类型
  10975. }NET_IN_CTRL_CABINLED_PLAYCONTROL;
  10976. ///@brief 防护舱LED播放控制(出参)
  10977. typedef struct tagNET_OUT_CTRL_CABINLED_PLAYCONTROL
  10978. {
  10979. DWORD dwSize;
  10980. }NET_OUT_CTRL_CABINLED_PLAYCONTROL;
  10981. ///@brief 防护舱LED更改内容的命令类型
  10982. typedef enum tagEM_NET_CABIN_LED_MODIFY_CONTENT_CMD_TYPE
  10983. {
  10984. NET_CABIN_LED_MODIFY_CONTENT_CMD_TYPE_UNKNOWN,
  10985. NET_CABIN_LED_MODIFY_CONTENT_CMD_TYPE_ADD = 0, // 增加
  10986. NET_CABIN_LED_MODIFY_CONTENT_CMD_TYPE_MODIFY = 1, // 修改
  10987. NET_CABIN_LED_MODIFY_CONTENT_CMD_TYPE_DELETE = 2, // 删除
  10988. }EM_NET_CABIN_LED_MODIFY_CONTENT_CMD_TYPE;
  10989. ///@brief 防护舱LED播放控制效果
  10990. typedef enum tagEM_NET_CABIN_LED_MODIFY_CONTENT_EFFECT_TYPE
  10991. {
  10992. NET_MODIFY_CONTENT_EFFECT_TYPE_UNKNOWN = -1,
  10993. NET_MODIFY_CONTENT_EFFECT_TYPE_SHOW = 0, // 立即显示
  10994. NET_MODIFY_CONTENT_EFFECT_TYPE_MOVE_LEFT, // 左移
  10995. NET_MODIFY_CONTENT_EFFECT_TYPE_MOVE_RIGHT, // 右移
  10996. NET_MODIFY_CONTENT_EFFECT_TYPE_MOVE_UP, // 上移
  10997. NET_MODIFY_CONTENT_EFFECT_TYPE_MOVE_DOWN, // 下移
  10998. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_LEFT, // 左填充
  10999. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_RIGHT, // 右填充
  11000. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_UP, // 上填充
  11001. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_DOWN, // 下填充
  11002. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_UP_LEFT, // 从左上角填充
  11003. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_DOWN_LEFT, // 从左下角填充
  11004. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_UP_RIGHT, // 从右上角填充
  11005. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_DOWN_RIGHT, // 从右下角填充
  11006. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_LEFT_RIGHT_TO_CENTER, // 两边向中间填充
  11007. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_CENTER_TO_LEFT_RIGHT, // 中间向两边填充
  11008. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_UP_DOWN_TO_CENTER, // 上下向中间填充
  11009. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_CENTER_TO_UP_DOWN, // 中间向上下填充
  11010. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_LEFT_CROSS_RIGHT, // 左右交叉填充
  11011. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_UP_CROSS_DOWN, // 上下交叉填充
  11012. NET_MODIFY_CONTENT_EFFECT_TYPE_VERTICAL_BLINDS, // 垂直百叶窗
  11013. NET_MODIFY_CONTENT_EFFECT_TYPE_HORIZONTAL_BLINDS, // 水平百叶窗
  11014. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_CENTER_TO_SIDES, // 中间向四边填充
  11015. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_SIDES_TO_CENTER, // 四边向中间填充
  11016. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_CENTER_TO_CORNER, // 中间向四角填充
  11017. NET_MODIFY_CONTENT_EFFECT_TYPE_FILL_UP_CORNER_TO_CENTER, // 四角向中间填充
  11018. NET_MODIFY_CONTENT_EFFECT_TYPE_ROTATE_360, // 旋转360度
  11019. NET_MODIFY_CONTENT_EFFECT_TYPE_ROTATE_180, // 旋转180度
  11020. }EM_NET_CABIN_LED_MODIFY_CONTENT_EFFECT_TYPE;
  11021. ///@brief 防护舱LED内容更改(入参)
  11022. typedef struct tagNET_IN_CTRL_CABINLED_MODIFY_CONTENT
  11023. {
  11024. DWORD dwSize;
  11025. EM_NET_CABIN_LED_MODIFY_CONTENT_CMD_TYPE emCmd; // 消息类型
  11026. int nMsgID; // 消息ID 取值1-5
  11027. EM_NET_CABIN_LED_MODIFY_CONTENT_EFFECT_TYPE emEffect; // 特效类型
  11028. int nSpeed; // 显示速度 取值为0到15
  11029. int nDuration; // 停留时间 单位为秒
  11030. char szText[512]; // 文本行内容
  11031. }NET_IN_CTRL_CABINLED_MODIFY_CONTENT;
  11032. ///@brief 防护舱LED内容更改(出参)
  11033. typedef struct tagNET_OUT_CTRL_CABINLED_MODIFY_CONTENT
  11034. {
  11035. DWORD dwSize;
  11036. }NET_OUT_CTRL_CABINLED_MODIFY_CONTENT;
  11037. ///@brief 获取防护舱LED内容(入参)
  11038. typedef struct tagNET_IN_CTRL_CABINLED_GET_CONTENT
  11039. {
  11040. DWORD dwSize;
  11041. int nMsgID; // 消息ID 取值1-5
  11042. }NET_IN_CTRL_CABINLED_GET_CONTENT;
  11043. ///@brief 获取防护舱LED内容(出参)
  11044. typedef struct tagNET_OUT_CTRL_CABINLED_GET_CONTENT
  11045. {
  11046. DWORD dwSize;
  11047. int nMsgID; // 消息ID 取值1-5
  11048. EM_NET_CABIN_LED_MODIFY_CONTENT_EFFECT_TYPE emEffect; // 特效类型
  11049. int nSpeed; // 显示速度 取值为0到15
  11050. int nDuration; // 停留时间 单位为秒
  11051. char szText[512]; // 文本行内容
  11052. }NET_OUT_CTRL_CABINLED_GET_CONTENT;
  11053. #define NET_CABINLED_SCHEDULE_TIME_SECTION_NUM 8 // 防护舱LED显示计划时间段的最大数目
  11054. ///@brief 设置防护舱LED显示设置计划(入参)
  11055. typedef struct tagNET_IN_CTRL_CABINLED_SET_SCHEDULE
  11056. {
  11057. DWORD dwSize;
  11058. int nIndex; // 计划索引号 0 表示周日 1~6 表示周一到周六
  11059. DH_TSECT stuTimeSection[NET_CABINLED_SCHEDULE_TIME_SECTION_NUM]; // 时间段数据数组 DH_TSECT中的字段bEnable 为0表示无效,正值表示消息号
  11060. }NET_IN_CTRL_CABINLED_SET_SCHEDULE;
  11061. ///@brief 设置防护舱LED显示设置计划(出参)
  11062. typedef struct tagNET_OUT_CTRL_CABINLED_SET_SCHEDULE
  11063. {
  11064. DWORD dwSize;
  11065. }NET_OUT_CTRL_CABINLED_SET_SCHEDULE;
  11066. ///@brief 获取防护舱LED显示设置计划(入参)
  11067. typedef struct tagNET_IN_CTRL_CABINLED_GET_SCHEDULE
  11068. {
  11069. DWORD dwSize;
  11070. int nIndex; // 计划索引号 0 表示周日 1~6 表示周一到周六
  11071. }NET_IN_CTRL_CABINLED_GET_SCHEDULE;
  11072. ///@brief 获取防护舱LED显示设置计划(出参)
  11073. typedef struct tagNET_OUT_CTRL_CABINLED_GET_SCHEDULE
  11074. {
  11075. DWORD dwSize;
  11076. DH_TSECT stuTimeSection[NET_CABINLED_SCHEDULE_TIME_SECTION_NUM]; // 时间段数据数组 DH_TSECT中的字段bEnable 为0表示无效,正值表示消息号
  11077. }NET_OUT_CTRL_CABINLED_GET_SCHEDULE;
  11078. ///@brief 获取防护舱LED显示字符编码方式(入参)
  11079. typedef struct tagNET_IN_CTRL_CABINLED_GET_CHAR_ENCODING
  11080. {
  11081. DWORD dwSize; // 结构体大小
  11082. }NET_IN_CTRL_CABINLED_GET_CHAR_ENCODING;
  11083. ///@brief 获取防护舱LED显示字符编码方式(出参)
  11084. typedef struct tagNET_OUT_CTRL_CABINLED_GET_CHAR_ENCODING
  11085. {
  11086. DWORD dwSize; // 结构体大小
  11087. int nCharacterEncoding; // 字符编码方式 0-GB2312 1-Unicode
  11088. }NET_OUT_CTRL_CABINLED_GET_CHAR_ENCODING;
  11089. ///@brief 防护舱LED控制类型
  11090. typedef enum tagEM_CABIN_LED_CONTROL_TYPE
  11091. {
  11092. DH_CABIN_LED_CONTROL_UNKNOWN, // 未知
  11093. DH_CABIN_LED_CONTROL_SYNC_TIME, // 同步防护舱LED的时间(pInParam对应结构体NET_IN_CTRL_SYNC_CABINLED_TIME,pOutParam对应结构体NET_OUT_CTRL_SYNC_CABINLED_TIME)
  11094. DH_CABIN_LED_CONTROL_PLAY_CONTROL, // 防护舱LED播放控制(pInParam对应结构体NET_IN_CTRL_CABINLED_PLAYCONTROL,pOutParam对应结构体NET_OUT_CTRL_CABINLED_PLAYCONTROL)
  11095. DH_CABIN_LED_CONTROL_MODIFY_CONTENT, // 防护舱LED更改内容(pInParam对应结构体NET_IN_CTRL_CABINLED_MODIFY_CONTENT,pOutParam对应结构体NET_OUT_CTRL_CABINLED_MODIFY_CONTENT)
  11096. DH_CABIN_LED_CONTROL_GET_CONTENT, // 获取防护舱LED内容(pInParam对应结构体NET_IN_CTRL_CABINLED_GET_CONTENT,pOutParam对应结构体NET_OUT_CTRL_CABINLED_GET_CONTENT)
  11097. DH_CABIN_LED_CONTROL_SET_SCHEDULE, // 设置防护舱LED显示计划(pInParam对应结构体NET_IN_CTRL_CABINLED_SET_SCHEDULE,pOutParam对应结构体NET_OUT_CTRL_CABINLED_SET_SCHEDULE)
  11098. DH_CABIN_LED_CONTROL_GET_SCHEDULE, // 获取防护舱LED显示计划(pInParam对应结构体NET_IN_CTRL_CABINLED_GET_SCHEDULE,pOutParam对应结构体NET_OUT_CTRL_CABINLED_GET_SCHEDULE)
  11099. DH_CABIN_LED_CONTROL_GET_CHAR_ENCODING, // 获取防护舱LED显示字符编码方式(pInParam对应结构体NET_IN_CTRL_CABINLED_GET_CHAR_ENCODING,pOutParam对应结构体NET_OUT_CTRL_CABINLED_GET_CHAR_ENCODING)
  11100. }EM_CABIN_LED_CONTROL_TYPE;
  11101. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_ACCESS_CLOSE 命令参数
  11102. typedef struct tagNET_CTRL_ACCESS_CLOSE
  11103. {
  11104. DWORD dwSize; // 结构体大小
  11105. int nChannelID; // 通道号(0开始)
  11106. }NET_CTRL_ACCESS_CLOSE;
  11107. ///@brief 事件类型
  11108. typedef enum tagNET_ALARM_TYPE
  11109. {
  11110. NET_ALARM_LOCAL = 0, //开关量防区的报警事件(对应 DH_ALARM_ALARM_EX2 事件)
  11111. NET_ALARM_ALARMEXTENDED, //扩展模块报警事件(对应 DH_ALARM_ALARMEXTENDED 事件)
  11112. NET_ALARM_TEMP, //温度报警事件(对应 DH_ALARM_TEMPERATURE 事件)
  11113. NET_ALARM_URGENCY, //紧急报警事件(对应 DH_URGENCY_ALARM_EX 事件)
  11114. NET_ALARM_RCEMERGENCYCALL, //紧急呼叫报警事件(对应 DH_ALARM_RCEMERGENCY_CALL 事件)
  11115. NET_ALARM_ALL, //所有报警事件
  11116. }NET_ALARM_TYPE;
  11117. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_CLEAR_ALARM 命令参数
  11118. typedef struct tagNET_CTRL_CLEAR_ALARM
  11119. {
  11120. DWORD dwSize;
  11121. int nChannelID; // 防区通道号, -1 表示所有通道
  11122. NET_ALARM_TYPE emAlarmType; // 事件类型(支持的类型较少,建议用nEventType字段)
  11123. const char* szDevPwd; // 登陆设备的密码,如不使用加密消警,直接赋值为NULL
  11124. BOOL bEventType; // 表示是否启用nEventType字段, TRUE:nEventType代替emAlarmType字段, FALSE:沿用emAlarmType字段,忽略nEventType字段
  11125. int nEventType; // 事件类型, 对应 fMessCallBack 回调来上的lCommand字段, 即CLIENT_StartListenEx接口获得事件类型
  11126. // 比如DH_ALARM_ALARM_EX2表示本地报警事件
  11127. }NET_CTRL_CLEAR_ALARM;
  11128. ///@brief 电视墙显示信息控制参数
  11129. typedef struct tagNET_CTRL_MONITORWALL_TVINFO
  11130. {
  11131. DWORD dwSize;
  11132. int nMonitorWallID; // 电视墙ID, DH_CTRL_MONITORWALL_TVINFO 和 DH_DEVSTATE_MONITORWALL_TVINFO都需要填写
  11133. BOOL bDecodeChannel; // 显示解码通道信息, DH_CTRL_MONITORWALL_TVINFO 填写
  11134. BOOL bControlID; // 显示屏幕控制ID, DH_CTRL_MONITORWALL_TVINFO 填写
  11135. BOOL bCameraID; // 显示解码通道视频源控制ID, DH_CTRL_MONITORWALL_TVINFO 填写
  11136. } NET_CTRL_MONITORWALL_TVINFO;
  11137. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_START_VIDEO_ANALYSE 命令参数
  11138. typedef struct tagNET_CTRL_START_VIDEO_ANALYSE
  11139. {
  11140. DWORD dwSize;
  11141. int nChannelId; // 通道号
  11142. }NET_CTRL_START_VIDEO_ANALYSE;
  11143. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_STOP_VIDEO_ANALYSE 命令参数
  11144. typedef struct tagNET_CTRL_STOP_VIDEO_ANALYSE
  11145. {
  11146. DWORD dwSize;
  11147. int nChannelId; // 通道号
  11148. }NET_CTRL_STOP_VIDEO_ANALYSE;
  11149. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_MULTIPLAYBACK_CHANNALES 命令参数
  11150. typedef struct tagNET_CTRL_MULTIPLAYBACK_CHANNALES
  11151. {
  11152. DWORD dwSize;
  11153. LLONG lPlayBackHandle; // 回放句柄,CLIENT_MultiPlayBack接口返回值
  11154. int nChannels[DH_MAX_MULTIPLAYBACK_CHANNEL_NUM];// 预览通道号
  11155. int nChannelNum; // 预览通道数
  11156. }NET_CTRL_MULTIPLAYBACK_CHANNALES;
  11157. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_SET_BYPASS 命令参数
  11158. typedef struct tagNET_CTRL_SET_BYPASS
  11159. {
  11160. DWORD dwSize;
  11161. const char* szDevPwd; // 登入设备的密码
  11162. NET_BYPASS_MODE emMode; // 通道状态
  11163. int nLocalCount; // 本地报警输入通道个数
  11164. int* pnLocal; // 本地报警输入通道号
  11165. int nExtendedCount; // 扩展模块报警输入通道个数
  11166. int* pnExtended; // 扩展模块报警输入通道号
  11167. }NET_CTRL_SET_BYPASS;
  11168. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_SET_MEDIAKIND 命令参数
  11169. typedef struct tagNET_CTRL_SET_MEDIAKIND
  11170. {
  11171. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_CTRL_SET_MEDIAKIND)
  11172. int nMediaKind; // 媒体种类,0:包含音频和视频,1:只包含视频,2:只包含音频
  11173. DWORD dwChannelCount; // 有效通道数
  11174. int nChannels[256]; // 视频通道号(从0开始)
  11175. } NET_IN_SET_MEDIAKIND;
  11176. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_SET_MEDIAKIND 输出参数
  11177. typedef struct tagNET_OUT_SET_MEDIAKIND
  11178. {
  11179. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_OUT_SET_MEDIAKIND)
  11180. } NET_OUT_SET_MEDIAKIND;
  11181. ///////////////////////////////////////////////////////////////////////////////////////////////////
  11182. ///@brief CLIENT_QueryDevState接口的 DH_DEVSTATE_GET_BYPASS 命令参数
  11183. typedef struct tagNET_DEVSTATE_GET_BYPASS
  11184. {
  11185. DWORD dwSize;
  11186. int nLocalCount; // 本地报警输入通道个数
  11187. int* pnLocal; // 本地报警输入通道号
  11188. int nExtendedCount; // 扩展模块报警输入通道个数
  11189. int* pnExtended; // 扩展模块报警输入通道号
  11190. NET_BYPASS_MODE* pemLocal; // 本地报警输入通道状态
  11191. NET_BYPASS_MODE* pemExtended; // 扩展模块报警输入通道状态
  11192. }NET_DEVSTATE_GET_BYPASS;
  11193. ///@brief CLIENT_QueryDevState接口的 DH_DEVSTATE_BURNERDOOR 命令参数
  11194. typedef struct tagNET_DEVSTATE_BURNERDOOR
  11195. {
  11196. DWORD dwSize;
  11197. const char* szBurnerName; // 光盘名称,如“/dev/sda”
  11198. bool bEjected; // 是否已经弹出
  11199. BYTE Reserved[3]; // 保留
  11200. }NET_DEVSTATE_BURNERDOOR;
  11201. ///@brief CLIENT_QueryDevState接口的 DH_DEVSTATE_GET_DATA_CHECK 命令参数
  11202. typedef struct tagNET_DEVSTATE_DATA_CHECK
  11203. {
  11204. DWORD dwSize; // 结构体大小
  11205. const char* szBurnerName; // 光盘名称,如“/dev/s",如果是多光盘的话,任何一个光盘都可以
  11206. char szState[DH_MAX_STRING_LEN]; // "NotStart":尚未开始,"Verifying":校验中,"Failed":失败,"Successed":成功
  11207. int nPercent; // 校验百分比:0-100,state是Verifying时才有效
  11208. }NET_DEVSTATE_DATA_CHECK;
  11209. ///@brief 设备信息
  11210. typedef enum {
  11211. DH_DVR_DISCONNECT=-1, // 验证期间设备断线回调
  11212. DH_DVR_SERIAL_RETURN=1, // 设备注册携带序列号 对应 char* szDevSerial
  11213. NET_DEV_AUTOREGISTER_RETURN, // 设备注册携带序列号和令牌 对应NET_CB_AUTOREGISTER
  11214. NET_DEV_NOTIFY_IP_RETURN, // 设备仅上报IP, 不作为主动注册用, 用户获取ip后只能按照约定的端口按照非主动注册的类型登录
  11215. }EM_DEV_INFO;
  11216. ///@brief CLIENT_ListenServer 接口回调fServiceCallBack函数支持的命令类型
  11217. typedef struct tagNET_CB_AUTOREGISTER
  11218. {
  11219. DWORD dwSize; // 结构体大小
  11220. char szDevSerial[DH_DEV_SERIALNO_LEN];// 序列号
  11221. char szToken[MAX_PATH]; // 令牌
  11222. }NET_CB_AUTOREGISTER;
  11223. ///@brief 公网代理注册相关结构体
  11224. typedef struct tagCLOUDSERVICE_CONNECT_PARAM
  11225. {
  11226. DWORD dwSize;
  11227. char szDstIp[DH_MAX_IPADDR_EX_LEN]; // 服务器IP
  11228. int nDstPort; // 服务器端口号
  11229. DWORD dwConnectType; // 连接类型:0表示主连接,1表示隧道连接,2数据连接, 3动态注册子连接(使用0xb4注册)
  11230. char szToken[MAX_PATH]; // 使用者自定义设备通道唯一ID令牌
  11231. }NET_CLOUDSERVICE_CONNECT_PARAM;
  11232. ///@brief 公网代理注册
  11233. typedef struct tagCLOUDSERVICE_CONNECT_RESULT
  11234. {
  11235. DWORD dwSize;
  11236. DWORD dwConnectState; // 当前连接状态:1成功,0失败
  11237. char szMessage[DH_MAX_CLOUDCONNECT_STATE_LEN]; // 连接状态信息,"Success","Password Error","Network Error","Timeout"
  11238. }NET_CLOUDSERVICE_CONNECT_RESULT;
  11239. ///////////////////////////配置相关定义///////////////////////////////
  11240. ///@brief 设备信息
  11241. typedef struct tagNET_DEVICEINFO
  11242. {
  11243. BYTE sSerialNumber[DH_SERIALNO_LEN]; // 序列号
  11244. BYTE byAlarmInPortNum; // DVR报警输入个数
  11245. BYTE byAlarmOutPortNum; // DVR报警输出个数
  11246. BYTE byDiskNum; // DVR硬盘个数
  11247. BYTE byDVRType; // DVR类型,见枚举 NET_DEVICE_TYPE
  11248. union
  11249. {
  11250. BYTE byChanNum; // DVR通道个数,登陆成功时有效
  11251. BYTE byLeftLogTimes; // 当登陆失败原因为密码错误时,通过此参数通知用户,剩余登陆次数,为0时表示此参数无效
  11252. };
  11253. } NET_DEVICEINFO, *LPNET_DEVICEINFO;
  11254. ///@brief 设备信息扩展
  11255. typedef struct
  11256. {
  11257. BYTE sSerialNumber[DH_SERIALNO_LEN]; // 序列号
  11258. int nAlarmInPortNum; // DVR报警输入个数
  11259. int nAlarmOutPortNum; // DVR报警输出个数
  11260. int nDiskNum; // DVR硬盘个数
  11261. int nDVRType; // DVR类型,见枚举 NET_DEVICE_TYPE
  11262. int nChanNum; // DVR通道个数
  11263. BYTE byLimitLoginTime; // 在线超时时间,为0表示不限制登陆,非0表示限制的分钟数
  11264. BYTE byLeftLogTimes; // 当登陆失败原因为密码错误时,通过此参数通知用户,剩余登陆次数,为0时表示此参数无效
  11265. BYTE bReserved[2]; // 保留字节,字节对齐
  11266. int nLockLeftTime; // 当登陆失败,用户解锁剩余时间(秒数), -1表示设备未设置该参数
  11267. char Reserved[24]; // 保留
  11268. } NET_DEVICEINFO_Ex, *LPNET_DEVICEINFO_Ex;
  11269. ///@brief 设备软件版本信息,高16位表示主版本号,低16位表示次版本号
  11270. typedef struct
  11271. {
  11272. DWORD dwSoftwareVersion;
  11273. DWORD dwSoftwareBuildDate;
  11274. DWORD dwDspSoftwareVersion;
  11275. DWORD dwDspSoftwareBuildDate;
  11276. DWORD dwPanelVersion;
  11277. DWORD dwPanelSoftwareBuildDate;
  11278. DWORD dwHardwareVersion;
  11279. DWORD dwHardwareDate;
  11280. DWORD dwWebVersion;
  11281. DWORD dwWebBuildDate;
  11282. } DH_VERSION_INFO, *LPDH_VERSION_INFO;
  11283. ///@brief 设备软件版本信息,对应CLIENT_QueryDevState接口
  11284. typedef struct
  11285. {
  11286. char szDevSerialNo[DH_DEV_SERIALNO_LEN]; // 序列号
  11287. char byDevType; // 设备类型,见枚举NET_DEVICE_TYPE
  11288. char szDevType[DH_DEV_TYPE_LEN]; // 设备详细型号,字符串格式,可能为空
  11289. int nProtocalVer; // 协议版本号
  11290. char szSoftWareVersion[DH_MAX_URL_LEN];
  11291. DWORD dwSoftwareBuildDate;
  11292. char szPeripheralSoftwareVersion[DH_MAX_URL_LEN];// 从片版本信息,字符串格式,可能为空
  11293. DWORD dwPeripheralSoftwareBuildDate;
  11294. char szGeographySoftwareVersion[DH_MAX_URL_LEN]; // 地理信息定位芯片版本信息,字符串格式,可能为空
  11295. DWORD dwGeographySoftwareBuildDate;
  11296. char szHardwareVersion[DH_MAX_URL_LEN];
  11297. DWORD dwHardwareDate;
  11298. char szWebVersion[DH_MAX_URL_LEN];
  11299. DWORD dwWebBuildDate;
  11300. char szDetailType[MAX_COMMON_STRING_64]; // 设备详细型号,字符串格式,可能为空
  11301. char reserved[192];
  11302. } DHDEV_VERSION_INFO;
  11303. ///@brief DSP能力描述,对应CLIENT_GetDevConfig接口
  11304. typedef struct
  11305. {
  11306. DWORD dwVideoStandardMask; // 视频制式掩码,按位表示设备能够支持的视频制式
  11307. DWORD dwImageSizeMask; // 分辨率掩码,按位表示设备能够支持的分辨率设置
  11308. DWORD dwEncodeModeMask; // 编码模式掩码,按位表示设备能够支持的编码模式设置
  11309. DWORD dwStreamCap; // 按位表示设备支持的多媒体功能,
  11310. // 第一位表示支持主码流
  11311. // 第二位表示支持辅码流1
  11312. // 第三位表示支持辅码流2
  11313. // 第五位表示支持jpg抓图
  11314. DWORD dwImageSizeMask_Assi[8]; // 表示主码流为各分辨率时,支持的辅码流分辨率掩码。
  11315. DWORD dwMaxEncodePower; // DSP支持的最高编码能力
  11316. WORD wMaxSupportChannel; // 每块DSP支持最多输入视频通道数
  11317. WORD wChannelMaxSetSync; // DSP每通道的最大编码设置是否同步;0:不同步,1:同步
  11318. } DH_DSP_ENCODECAP, *LPDH_DSP_ENCODECAP;
  11319. ///@brief DSP能力描述,扩展类型,对应CLIENT_QueryDevState接口
  11320. typedef struct
  11321. {
  11322. DWORD dwVideoStandardMask; // 视频制式掩码,按位表示设备能够支持的视频制式
  11323. DWORD dwImageSizeMask; // 分辨率掩码,按位表示设备能够支持的分辨率
  11324. DWORD dwEncodeModeMask; // 编码模式掩码,按位表示设备能够支持的编码模式
  11325. DWORD dwStreamCap; // 按位表示设备支持的多媒体功能,
  11326. // 第一位表示支持主码流
  11327. // 第二位表示支持辅码流1
  11328. // 第三位表示支持辅码流2
  11329. // 第五位表示支持jpg抓图
  11330. DWORD dwImageSizeMask_Assi[32]; // 表示主码流为各分辨率时,支持的辅码流分辨率掩码。
  11331. DWORD dwMaxEncodePower; // DSP支持的最高编码能力
  11332. WORD wMaxSupportChannel; // 每块DSP支持最多输入视频通道数
  11333. WORD wChannelMaxSetSync; // DSP每通道的最大编码设置是否同步;0:不同步,1:同步
  11334. BYTE bMaxFrameOfImageSize[32]; // 不同分辨率下的最大采集帧率,与dwVideoStandardMask按位对应
  11335. BYTE bEncodeCap; // 标志,配置时要求符合下面条件,否则配置不能生效;
  11336. // 0:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
  11337. // 1:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
  11338. // 辅码流的编码能力 <= 主码流的编码能力,
  11339. // 辅码流的分辨率 <= 主码流的分辨率,
  11340. // 主码流和辅码流的帧率 <= 前端视频采集帧率
  11341. // 2:N5的计算方法
  11342. // 辅码流的分辨率 <= 主码流的分辨率
  11343. // 查询支持的分辨率和相应最大帧率
  11344. char reserved[95];
  11345. } DHDEV_DSP_ENCODECAP, *LPDHDEV_DSP_ENCODECAP;
  11346. ///@brief DSP扩展能力描述,对应CLIENT_QueryDevState接口
  11347. typedef struct
  11348. {
  11349. DWORD dwVideoStandardMask; // 视频制式掩码,按位表示设备能够支持的视频制式
  11350. DWORD dwImageSizeMask; // 分辨率掩码,按位表示设备能够支持的分辨率
  11351. DWORD dwEncodeModeMask; // 编码模式掩码,按位表示设备能够支持的编码模式
  11352. DWORD dwStreamCap; // 按位表示设备支持的多媒体功能,
  11353. // 第一位表示支持主码流
  11354. // 第二位表示支持辅码流1
  11355. // 第三位表示支持辅码流2
  11356. // 第四位表示支持辅码流3
  11357. // 第五位表示支持jpg抓图
  11358. DWORD dwImageSizeMask_Assi[3][64];// 表示主码流为各分辨率时,支持的辅码流分辨率掩码, 数组中的0,1,2元素分别代表辅码流1,2,3
  11359. DWORD dwMaxEncodePower; // DSP支持的最高编码能力
  11360. WORD wMaxSupportChannel; // 每块DSP支持最多输入视频通道数
  11361. WORD wChannelMaxSetSync; // DSP每通道的最大编码设置是否同步;0:不同步,1:同步
  11362. BYTE bMaxFrameOfImageSize[32]; // 不同分辨率下的最大采集帧率,与dwVideoStandardMask按位对应
  11363. BYTE bEncodeCap; // 标志,配置时要求符合下面条件,否则配置不能生效;
  11364. // 0:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
  11365. // 1:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
  11366. // 辅码流的编码能力 <= 主码流的编码能力,
  11367. // 辅码流的分辨率 <= 主码流的分辨率,
  11368. // 主码流和辅码流的帧率 <= 前端视频采集帧率
  11369. // 2:N5的计算方法
  11370. // 辅码流的分辨率 <= 主码流的分辨率
  11371. // 查询支持的分辨率和相应最大帧率
  11372. BYTE btReserve1[3]; // 字节对齐
  11373. DWORD dwExtraStream; // 第0位表示主码流, 其它按位依次表示辅码流, 如第一位表示辅码流1,第二们表示辅码流2
  11374. DWORD dwCompression[3]; // 每一个值表示对应辅码流的编码格式支持
  11375. char reserved[108];
  11376. } DHDEV_DSP_ENCODECAP_EX, *LPDHDEV_DSP_ENCODECAP_EX;
  11377. ///@brief 系统信息
  11378. typedef struct
  11379. {
  11380. DWORD dwSize;
  11381. /* 下面是设备的只读部分 */
  11382. DH_VERSION_INFO stVersion;
  11383. DH_DSP_ENCODECAP stDspEncodeCap; // DSP能力描述
  11384. BYTE szDevSerialNo[DH_DEV_SERIALNO_LEN]; // 序列号
  11385. BYTE byDevType; // 设备类型,见枚举NET_DEVICE_TYPE
  11386. BYTE szDevType[DH_DEV_TYPE_LEN]; // 设备详细型号,字符串格式,可能为空
  11387. BYTE byVideoCaptureNum; // 视频口数量
  11388. BYTE byAudioCaptureNum; // 音频口数量
  11389. BYTE byTalkInChanNum; // 对讲输入接口数量
  11390. BYTE byTalkOutChanNum; // 对讲输出接口数量
  11391. BYTE byDecodeChanNum; // NSP
  11392. BYTE byAlarmInNum; // 报警输入口数
  11393. BYTE byAlarmOutNum; // 报警输出口数
  11394. BYTE byNetIONum; // 网络口数
  11395. BYTE byUsbIONum; // USB口数量
  11396. BYTE byIdeIONum; // IDE数量
  11397. BYTE byComIONum; // 串口数量
  11398. BYTE byLPTIONum; // 并口数量
  11399. BYTE byVgaIONum; // NSP
  11400. BYTE byIdeControlNum; // NSP
  11401. BYTE byIdeControlType; // NSP
  11402. BYTE byCapability; // NSP,扩展描述
  11403. BYTE byMatrixOutNum; // 视频矩阵输出口数
  11404. /* 下面是设备的可写部分 */
  11405. BYTE byOverWrite; // 硬盘满处理方式(覆盖、停止)
  11406. BYTE byRecordLen; // 录象打包长度
  11407. BYTE byDSTEnable; // 是否实行夏令时 1-实行 0-不实行
  11408. WORD wDevNo; // 设备编号,用于遥控
  11409. BYTE byVideoStandard; // 视频制式:0-PAL,1-NTSC
  11410. BYTE byDateFormat; // 日期格式
  11411. BYTE byDateSprtr; // 日期分割符(0:".",1:"-",2:"/")
  11412. BYTE byTimeFmt; // 时间格式 (0-24小时,1-12小时)
  11413. BYTE byLanguage; // 枚举值详见DH_LANGUAGE_TYPE
  11414. } DHDEV_SYSTEM_ATTR_CFG, *LPDHDEV_SYSTEM_ATTR_CFG;
  11415. ///@brief 修改设备配置返回信息
  11416. typedef struct
  11417. {
  11418. DWORD dwType; // 类型(即GetDevConfig和SetDevConfig的类型)
  11419. WORD wResultCode; // 返回码;0:成功,1:失败,2:数据不合法,3:暂时无法设置,4:没有权限
  11420. WORD wRebootSign; // 重启标志;0:不需要重启,1:需要重启才生效
  11421. DWORD dwReserved[2]; // 保留
  11422. } DEV_SET_RESULT;
  11423. // 动态子链接错误码起始处
  11424. #define DYNAMIC_RESPONSE_ERROR_CODE_BEGIN 1000
  11425. ///@brief 请求预览或回放的错误返回信息
  11426. typedef struct
  11427. {
  11428. DWORD dwResultCode; // 错误返回码
  11429. // 1:无权限,2:设备不支持此操作,3:资源不足, 4:设备无法获取当前请求数据
  11430. // 11:表示高级用户抢占低级用户资源
  11431. // 12:禁止入网
  11432. // 13:磁盘读数据限制
  11433. // 14: 多画面预览已打开,资源不足,压缩回放失败
  11434. // 15: 压缩回放功能已打开,导致失败
  11435. // 16: 表示此视频通道处于离线,拉流失败
  11436. // 21: 未知的压缩失败原因,
  11437. // 22: 超出解码能力,导致压缩失败
  11438. // 23: 超出压缩能力,导致压缩失败
  11439. // 24: 无原始码流,导致压缩失败
  11440. // 25: 压缩通道所在的从片掉线,导致压缩失败
  11441. // 26: 主码流成功的情况下,拉辅码流时登录失败
  11442. // 27: 辅码流被前端关闭
  11443. // 28: KMS服务器未连接或者异常,导致加密录像回放失败
  11444. // 动态子链接中返回的错误码从1000开始
  11445. // DYNAMIC_RESPONSE_ERROR_CODE_BEGIN + 1(1001): 通道未添加
  11446. LLONG lPlayHandle; // 相应句柄值
  11447. BYTE byReserved[32]; // 保留字节
  11448. }DEV_PLAY_RESULT;
  11449. ///@brief 请求语音对讲的错误返回信息
  11450. typedef struct
  11451. {
  11452. DWORD dwResultCode; // 错误返回码 CLIENT_GetLastError接口的返回值
  11453. // NET_ERROR_TALK_REJECT _EC(375) // 拒绝对讲
  11454. // NET_ERROR_TALK_RESOURCE_CONFLICIT _EC(377) // 资源冲突
  11455. // NET_ERROR_TALK_UNSUPPORTED_ENCODE _EC(378) // 不支持的语音编码格式
  11456. // NET_ERROR_TALK_RIGHTLESS _EC(379) // 无权限
  11457. LLONG lTalkHandle; // 相应句柄值
  11458. BYTE byReserved[32]; // 保留字节
  11459. }DEV_TALK_RESULT;
  11460. ///@brief DST(夏令时)配置
  11461. typedef struct tagDH_DST_POINT
  11462. {
  11463. int nYear; // 年[200 - 2037]
  11464. int nMonth; // 月[1 - 12]
  11465. int nHour; // 小时 [0 - 23]
  11466. int nMinute; // 分钟 [0 - 59]
  11467. int nWeekOrDay; // [-1 - 4]0:表示使用按日期计算的方法
  11468. // 1: 按周计算: 第一周,2: 第二周,3: 第三周,4: 第四周,-1: 最后一周
  11469. union
  11470. {
  11471. int iWeekDay; // 周[0 - 6](nWeekOrDay:按周计算时)0:星期日, 1:星期一, 2:星期二,3:星期三,4:星期四,5:星期五,6:星期六
  11472. int iDay; // 日期[1 - 31] (nWeekOrDay:按日期计算)
  11473. };
  11474. DWORD dwReserved[8]; // 保留
  11475. }DH_DST_POINT;
  11476. ///@brief DST(夏令时)配置
  11477. typedef struct
  11478. {
  11479. DWORD dwSize;
  11480. int nDSTType; // 夏令时定位方式 0:按日期定位方式, 1:按周定位方式
  11481. DH_DST_POINT stDSTStart; // 开始夏令时
  11482. DH_DST_POINT stDSTEnd; // 结束夏令时
  11483. DWORD dwReserved[16]; // 保留
  11484. }DHDEV_DST_CFG;
  11485. ///@brief 自动维护配置
  11486. typedef struct
  11487. {
  11488. DWORD dwSize;
  11489. BYTE byAutoRebootDay; // 自动重启;0:从不, 1:每天,2:每星期日,3:每星期一,......
  11490. BYTE byAutoRebootTime; // 0:0:00,1:1:00,......23:23:00
  11491. BYTE byAutoDeleteFilesTime; // 自动删除文件;0:从不,1:24H,2:48H,3:72H,4:96H,5:ONE WEEK,6:ONE MONTH
  11492. BYTE reserved[13]; // 保留位
  11493. } DHDEV_AUTOMT_CFG;
  11494. ///@brief 车载中硬盘信息
  11495. typedef struct
  11496. {
  11497. DWORD dwSize; // 结构体大小,此属性必须初始化
  11498. DWORD dwVolume; // 硬盘容量
  11499. DWORD dwFreeSpace; // 硬盘的剩余空间, 单位MB(B表示字节)
  11500. BYTE byModle[DH_MAX_HARDDISK_TYPE_LEN]; // 硬盘型号
  11501. BYTE bySerialNumber[DH_MAX_HARDDISK_SERIAL_LEN]; // 硬盘序列号
  11502. }DHDEV_VEHICLE_DISK;
  11503. ///@brief 车载相关的3G模块信息,最大支持DH_MAX_SIM_NUM个模块
  11504. typedef struct
  11505. {
  11506. DWORD dwSize; // 结构体大小,此属性必须初始化
  11507. BYTE szIMSI[DH_MAX_SIM_LEN]; // SIM卡的值例如460012002778636 ,前3位为国家代号MCC,4-6位为网络代号MNC,后面的为移动用户身份标识MSIN,总共不会超过15个字符
  11508. BYTE szMDN[DH_MAX_MDN_LEN]; // SIM卡MDN值
  11509. }DHDEV_VEHICLE_3GMODULE;
  11510. ///@brief 车载的基本信息
  11511. typedef struct
  11512. {
  11513. DWORD dwSize; // 结构体大小,此属性必须初始化
  11514. DWORD dwSoftwareBuildDate; // 软件生成日期
  11515. char szVersion[DH_MAX_VERSION_LEN]; // 软件版本
  11516. char szDevSerialNo[DH_DEV_SERIALNO_LEN]; // 主板序列号
  11517. char szDevType[DH_DEV_TYPE_LEN]; // 设备详细型号,字符串格式,可能为空
  11518. DWORD dwDiskNum; // 硬盘个数
  11519. DHDEV_VEHICLE_DISK stuHarddiskInfo[DH_MAX_DISKNUM]; // 硬盘相关信息
  11520. DWORD dw3GModuleNum; // 3G模块个数
  11521. DHDEV_VEHICLE_3GMODULE stu3GModuleInfo[DH_MAX_SIM_NUM]; // 3G模块相关信息
  11522. }DHDEV_VEHICLE_INFO;
  11523. ///@brief 网络接口,最大支持DH_MAX_NETINTERFACE_NUM个网卡
  11524. typedef struct tagDHDEV_NETINTERFACE_INFO
  11525. {
  11526. int dwSize;
  11527. BOOL bValid; // 是否有效
  11528. BOOL bVirtual; // 是否虚拟网卡
  11529. int nSpeed; // 网卡理论速度(Mbps)
  11530. int nDHCPState; // 0-未使能, 1-正在获取, 2-获取成功
  11531. char szName[DH_NETINTERFACE_NAME_LEN]; // 网口名称
  11532. char szType[DH_NETINTERFACE_TYPE_LEN]; // 网络类型
  11533. char szMAC[DH_MACADDR_LEN]; // MAC地址
  11534. char szSSID[DH_MAX_SSID_LEN]; // SSID, 只对无线网络有效(szType == "Wireless")
  11535. char szConnStatus[DH_MAX_CONNECT_STATUS_LEN]; // Wifi、3G的连接状态,"Inexistence" : 网络不存在 "Down":关闭 "Disconn":未连接 "Connecting":正连接 "Connected": 已连接
  11536. int nSupportedModeNum; // 实际3G支持的网络模式个数
  11537. char szSupportedModes[DH_MAX_MODE_NUM][DH_MAX_MODE_LEN];// 3G支持的网络模式 "TD-SCDMA", "WCDMA", "CDMA1x", "EDGE", "EVDO"
  11538. BOOL bSupportLongPoE; // 是否支持长距离POE速度协商,需要网卡和交换机协商后才能确定
  11539. char szNetCardName[8]; // 真实网卡名
  11540. char szModuleName[32]; // 模块名称
  11541. char szIMEI[16]; // 国际移动用户识别码
  11542. char szICCID[24]; // 集成电路卡识别码即SIM卡卡号,20位数字组成
  11543. } DHDEV_NETINTERFACE_INFO;
  11544. ///@brief 区域;各边距按整长8192的比例
  11545. typedef struct
  11546. {
  11547. long left;
  11548. long top;
  11549. long right;
  11550. long bottom;
  11551. } DH_RECT, *LPDH_RECT;
  11552. ///@brief 区域;各边距按整长8192的比例
  11553. typedef struct tagNET_RECT
  11554. {
  11555. int nLeft;
  11556. int nTop;
  11557. int nRight;
  11558. int nBottom;
  11559. } NET_RECT;
  11560. ///@brief 区域;各边距按整长8192的比例
  11561. typedef struct tagNET_RECT_EX
  11562. {
  11563. unsigned short nLeft;
  11564. unsigned short nTop;
  11565. unsigned short nRight;
  11566. unsigned short nBottom;
  11567. } NET_RECT_EX;
  11568. ///@brief 二维空间点
  11569. typedef struct
  11570. {
  11571. short nx;
  11572. short ny;
  11573. } DH_POINT, *LPDH_POINT, NET_POINT, *LPNET_POINT;
  11574. ///@brief 二维空间点
  11575. typedef struct
  11576. {
  11577. unsigned short nx;
  11578. unsigned short ny;
  11579. } DH_POINT_EX, NET_POINT_EX;
  11580. ///@brief 区域或曲线顶点信息
  11581. typedef struct
  11582. {
  11583. int nPointNum; // 顶点数
  11584. DH_POINT stuPoints[DH_MAX_DETECT_REGION_NUM]; // 顶点信息
  11585. }DH_POLY_POINTS;
  11586. ///@brief OSD属性结构
  11587. typedef struct tagENCODE_WIDGET
  11588. {
  11589. DWORD rgbaFrontground; // 物件的前景;按字节表示,分别为红、绿、蓝和透明度
  11590. DWORD rgbaBackground; // 物件的背景;按字节表示,分别为红、绿、蓝和透明度
  11591. DH_RECT rcRect; // 位置
  11592. BYTE bShow; // 显示使能
  11593. BYTE bExtFuncMask; // 扩展使能 ,掩码
  11594. // bit0 表示是否显示星期几,0-不显示 1-显示
  11595. BYTE byReserved[2];
  11596. } DH_ENCODE_WIDGET, *LPDH_ENCODE_WIDGET;
  11597. ///@brief 通道音视频属性
  11598. typedef struct
  11599. {
  11600. // 视频参数
  11601. BYTE byVideoEnable; // 视频使能;1:打开,0:关闭
  11602. BYTE byBitRateControl; // 码流控制;参照常量"码流控制"定义
  11603. BYTE byFramesPerSec; // 帧率
  11604. BYTE byEncodeMode; // 编码模式;参照常量"编码模式"定义
  11605. BYTE byImageSize; // 分辨率;参照常量"分辨率"定义
  11606. BYTE byImageQlty:7; // 将byImageQlty进行扩展,若byImageQlty为0,抓图配置的ImgQlty为10/30/50/60/80/100六个值,码流配置的ImgQlty值为1-6,兼容之前的1-6档次,若//ImgQltyType为1,则ImgQlty范围为0~100
  11607. BYTE byImageQltyType:1;
  11608. WORD wLimitStream; // 限码流参数
  11609. /* 音频参数 */
  11610. BYTE byAudioEnable; // 音频使能;1:打开,0:关闭
  11611. BYTE wFormatTag; // 音频编码类型: 0:G711A,1:PCM,2:G711U,3:AMR,4:AAC
  11612. WORD nChannels; // 声道数
  11613. WORD wBitsPerSample; // 采样深度
  11614. BYTE bAudioOverlay; // 音频叠加使能
  11615. BYTE bH264ProfileRank; // H.264 Profile等级(当编码模式为H264时此参数值有效),参照枚举类型EM_H264_PROFILE_RANK,传0,兼容以前,表示该字段无效,不需要考虑级别。
  11616. DWORD nSamplesPerSec; // 采样率
  11617. BYTE bIFrameInterval; // I帧间隔帧数量,描述两个I帧之间的P帧个数,0-149
  11618. BYTE bScanMode; // NSP
  11619. BYTE bReserved_3;
  11620. BYTE bReserved_4;
  11621. } DH_VIDEOENC_OPT, *LPDH_VIDEOENC_OPT;
  11622. ///@brief 画面颜色属性
  11623. typedef struct
  11624. {
  11625. DH_TSECT stSect;
  11626. BYTE byBrightness; // 亮度;0-100
  11627. BYTE byContrast; // 对比度;0-100
  11628. BYTE bySaturation; // 饱和度;0-100
  11629. BYTE byHue; // 色度;0-100
  11630. BYTE byGainEn; // 增益使能
  11631. BYTE byGain; // 增益;0-100
  11632. BYTE byGamma; // 伽马值 0-100
  11633. BYTE byReserved[1];
  11634. } DH_COLOR_CFG, *LPDH_COLOR_CFG;
  11635. ///@brief 图像通道属性结构体
  11636. typedef struct
  11637. {
  11638. WORD dwSize;
  11639. BYTE bNoise;
  11640. BYTE bMode; // (车载特殊需求)模式一(画质优先):录像分辨率采用4路D1,帧率2fps,码率128kbps(每小时225MB)
  11641. // 模式二(流畅优先):录像分辨率采用4路CIF,帧率12fps,码率256kbps(每小时550MB)
  11642. // 模式三(自定义)录像分辨率可以由用户自定义,限定最大能力为4CIF/25fps
  11643. char szChannelName[DH_CHAN_NAME_LEN];
  11644. DH_VIDEOENC_OPT stMainVideoEncOpt[DH_REC_TYPE_NUM];
  11645. DH_VIDEOENC_OPT stAssiVideoEncOpt[DH_N_ENCODE_AUX];
  11646. DH_COLOR_CFG stColorCfg[DH_N_COL_TSECT];
  11647. DH_ENCODE_WIDGET stTimeOSD;
  11648. DH_ENCODE_WIDGET stChannelOSD;
  11649. DH_ENCODE_WIDGET stBlindCover[DH_N_COVERS]; // 单区域遮挡
  11650. BYTE byBlindEnable; // 区域遮盖开关;0x00:不使能遮盖,0x01:仅遮盖设备本地预览,0x10:仅遮盖录像及网络预览,0x11:都遮盖
  11651. BYTE byBlindMask; // 区域遮盖掩码;第一位:设备本地预览;第二位:录像(及网络预览) */
  11652. BYTE bVolume; // 音量阀值(0~100可调)
  11653. BYTE bVolumeEnable; // 音量阀值使能
  11654. } DHDEV_CHANNEL_CFG, *LPDHDEV_CHANNEL_CFG;
  11655. ///@brief 预览图像参数
  11656. typedef struct
  11657. {
  11658. DWORD dwSize;
  11659. DH_VIDEOENC_OPT stPreView;
  11660. DH_COLOR_CFG stColorCfg[DH_N_COL_TSECT];
  11661. }DHDEV_PREVIEW_CFG;
  11662. ///@brief 抓图控制配置
  11663. typedef struct _config_snap_control
  11664. {
  11665. BYTE bySnapState[32]; // 每个通道对应抓图开关 0:自动(则表示是否抓图,由其他配置和事件控制); 1:抓图开启; 2:抓图关闭
  11666. BYTE byReserved[480];
  11667. }DHDEV_SNAP_CONTROL_CFG;
  11668. ///@brief GPS模式
  11669. typedef enum _gps_mode
  11670. {
  11671. GPS_OR_GLONASS_MODE, // GPS、GLONASS混合模式(模块定位数据从GPS、GLONASS两者中获取,但具体来源于哪个系统不能确定,可能模块内部自动会处理)
  11672. GLONASS_MODE, // GLONASS模式(即模块的定位数据从俄罗斯的GLONASS定位系统中获取)
  11673. GPS_MODE, // GPS模式(即模块的定位数据从美国的GPS系统中获取)
  11674. }_gps_mode;
  11675. ///@brief DH_DEV_GPS_MODE_CFG 配置结构
  11676. typedef struct tagDHDEV_GPS_MODE_CFG
  11677. {
  11678. BYTE byGPSMode; // GPS定位模式,见
  11679. BYTE byRev[255];
  11680. }DHDEV_GPS_MODE_CFG;
  11681. ///@brief 图片上传配置信息 DH_DEV_SNAP_UPLOAD_CFG 配置结构
  11682. typedef struct tagDHDEV_SNAP_UPLOAD_CFG
  11683. {
  11684. int nUploadInterval; //定时抓图图片上传间隔,单位秒
  11685. BYTE byReserved[252];
  11686. }DHDEV_SNAP_UPLOAD_CFG;
  11687. ///@brief DHDEV_SPEED_LIMIT_CFG 配置结构
  11688. typedef struct tagDHDEV_SPEED_LIMIT_CFG
  11689. {
  11690. BYTE byEnable; // 限速使能1:使能;0:不使能。
  11691. BYTE byReserved1; // 保留字段
  11692. WORD wMaxSpeed; // 速度上限值:单位KM/H 0表示不限速,大于0表示限速
  11693. WORD wMinSpeed; // 速度下限值:单位KM/H 0表示不限速,大于0表示限速
  11694. BYTE byReserved2[122]; // 保留字段
  11695. }DHDEV_SPEED_LIMIT_CFG;
  11696. ///@brief 无线路由配置
  11697. typedef struct
  11698. {
  11699. BOOL bEnable; // 使能
  11700. char szSSID[36]; // SSID名称
  11701. BOOL bHideSSID; // 是否隐藏SSID
  11702. char szIP[DH_MAX_IPADDR_LEN]; // IP
  11703. char szSubMark[DH_MAX_IPADDR_LEN]; // 子网掩码
  11704. char szGateWay[DH_MAX_IPADDR_LEN]; // 网关
  11705. char szCountry[32]; // 国家, Default默认不指定。国家名称列表参考无线路由能力信息
  11706. int nSafeType; // 鉴权模式: 1-不加密; 2-WEP模式; 2-WPA-PSK模式; 3-WPA2-PSK模式
  11707. int nEncryption; // 加密方式: WEP模式(1-自动 2-开放 3-共享); WPA-PSK模式/WPA2-PSK模式(4-TKIP 5-AES)
  11708. char szKey[32]; // 连接密钥
  11709. int nChannel; // 信道, 有效信道列表参考无线路由能力信息
  11710. BOOL bAutoChannelSelect; // 自动选择信道
  11711. }DHDEV_WIRELESS_ROUTING_CFG;
  11712. //-------------------------------串口属性---------------------------------
  11713. ///@brief 串口基本属性
  11714. typedef struct
  11715. {
  11716. BYTE byDataBit; // 数据位;0:5,1:6,2:7,3:8
  11717. BYTE byStopBit; // 停止位;0:1位,1:1.5位,2:2位
  11718. BYTE byParity; // 校验位;0:无校验,1:奇校验;2:偶校验; 3:标志校验; 4:空校验
  11719. BYTE byBaudRate; // 波特率;0:300,1:600,2:1200,3:2400,4:4800,
  11720. // 5:9600,6:19200,7:38400,8:57600,9:115200
  11721. } DH_COMM_PROP;
  11722. ///@brief 485解码器配置
  11723. typedef struct
  11724. {
  11725. DH_COMM_PROP struComm;
  11726. BYTE wProtocol; // 协议类型,对应"协议名列表"下标
  11727. BYTE bPTZType; // 0-兼容,本地云台 1-远程网络云台,通过能力查询(见DEV_ENCODER_CFG)。
  11728. BYTE wDecoderAddress; // 解码器地址;0 - 255
  11729. BYTE byMartixID; // 矩阵号
  11730. } DH_485_CFG;
  11731. ///@brief 232串口配置
  11732. typedef struct
  11733. {
  11734. DH_COMM_PROP struComm;
  11735. BYTE byFunction; // 串口功能,对应"功能名列表"下标
  11736. BYTE byReserved[3];
  11737. } DH_RS232_CFG;
  11738. ///@brief 串口配置结构体
  11739. typedef struct
  11740. {
  11741. DWORD dwSize;
  11742. DWORD dwDecProListNum; // 解码器协议个数
  11743. char DecProName[DH_MAX_DECPRO_LIST_SIZE][DH_MAX_NAME_LEN]; // 协议名列表
  11744. DH_485_CFG stDecoder[DH_MAX_DECODER_NUM]; // 各解码器当前属性
  11745. DWORD dw232FuncNameNum; // 232功能个数
  11746. char s232FuncName[DH_MAX_232FUNCS][DH_MAX_NAME_LEN]; // 功能名列表
  11747. DH_RS232_CFG st232[DH_MAX_232_NUM]; // 各232串口当前属性
  11748. } DHDEV_COMM_CFG;
  11749. ///@brief 扩展串口配置结构体
  11750. typedef struct
  11751. {
  11752. DWORD dwSize;
  11753. DWORD dwDecProListNum; // 解码器协议个数
  11754. char DecProName[DH_MAX_DECPRO_LIST_SIZE][DH_MAX_NAME_LEN]; // 协议名列表
  11755. DH_485_CFG stDecoder[DH_MAX_DECODER_NUM]; // 各解码器当前属性
  11756. DWORD dw232FuncNameNum; // 232功能个数
  11757. char s232FuncName[DH_MAX_232FUNCS][DH_MAX_NAME_LEN]; // 功能名列表
  11758. DWORD dw232ComNum; // 232串口个数
  11759. DH_RS232_CFG st232[DH_MAX_232_NUM_EX]; // 各232串口当前属性
  11760. } DHDEV_COMM_CFG_EX;
  11761. ///@brief 串口状态
  11762. typedef struct
  11763. {
  11764. unsigned int uBeOpened;
  11765. unsigned int uBaudRate;
  11766. unsigned int uDataBites;
  11767. unsigned int uStopBits;
  11768. unsigned int uParity;
  11769. BYTE bReserved[32];
  11770. } DH_COMM_STATE;
  11771. ///@brief 定时录象
  11772. typedef struct
  11773. {
  11774. DWORD dwSize;
  11775. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  11776. BYTE byPreRecordLen; // 预录时间,单位是s,0表示不预录
  11777. BYTE byRedundancyEn; // 录像冗余开关
  11778. BYTE byRecordType; // 录像码流类型:0-主码流 1-辅码流1 2-辅码流2 3-辅码流3
  11779. BYTE byReserved;
  11780. } DHDEV_RECORD_CFG, *LPDH_RECORD_CFG;
  11781. ///@brief NTP配置
  11782. typedef struct
  11783. {
  11784. BOOL bEnable; // 是否启用
  11785. int nHostPort; // NTP服务器默认端口为123
  11786. char szHostIp[32]; // 主机IP
  11787. char szDomainName[128]; // 域名
  11788. int nType; // 不可设置,0:表示IP,1:表示域名,2:表示IP和域名
  11789. int nUpdateInterval; // 更新时间(分钟)
  11790. int nTimeZone; // 见DH_TIME_ZONE_TYPE
  11791. char reserved[128];
  11792. } DHDEV_NTP_CFG;
  11793. ///@brief 时间段
  11794. typedef struct tagNET_PERIOD
  11795. {
  11796. DH_TSECT struSect; // 该时间段内的“使能”无效,可忽略
  11797. BOOL bMdEn; // 上传动态检测录象
  11798. BOOL bAlarmEn; // 上传外部报警录象
  11799. BOOL bTimerEn; // 上传普通定时录像
  11800. DWORD dwRev[4];
  11801. } NET_PERIOD;
  11802. ///@brief FTP上传配置
  11803. typedef struct
  11804. {
  11805. NET_PERIOD struPeriod[DH_TIME_SECTION];
  11806. } DH_FTP_UPLOAD_CFG;
  11807. ///@brief FTP原有功能,扩展通道数
  11808. typedef struct
  11809. {
  11810. DWORD dwSize;
  11811. BOOL bEnable; // 是否启用
  11812. char szHostIp[DH_MAX_IPADDR_LEN]; // 主机IP
  11813. WORD wHostPort; // 主机端口
  11814. char szDirName[DH_FTP_MAX_PATH]; // FTP目录路径
  11815. char szUserName[DH_FTP_USERNAME_LEN]; // 用户名
  11816. char szPassword[DH_FTP_PASSWORD_LEN]; // 密码
  11817. int iFileLen; // 文件长度
  11818. int iInterval; // 相邻文件时间间隔(1~600),单位秒
  11819. DH_FTP_UPLOAD_CFG struUploadCfg[DH_MAX_CHANNUM][DH_N_WEEKS];
  11820. char protocol; // 0-FTP 1-SMB 2-NFS,3-ISCSI
  11821. char NASVer; // 网络存储服务器版本0=老的FTP(界面上显示时间段),1=NAS存储(界面上屏蔽时间段)
  11822. DWORD dwFunctionMask; // 功能能力掩码,按位表示,低16位(网络存储)依次表示FTP,SMB,NFS,ISCSI, 高16位(本地存储)依次为DISK,U
  11823. BYTE bDataType; // 数据类型, 0-所有类型, 1-视频, 2-图片
  11824. BYTE reserved[123];
  11825. } DHDEV_FTP_PROTO_CFG;
  11826. ///@brief FTP上传扩展配置(支持通道独立设置FTP存储路径,最大存储图片数等)
  11827. typedef struct
  11828. {
  11829. int nMaxPictures; // 总存储张数,每一个通道文件夹中的图片数量可以限制,
  11830. // 超过限制就覆盖老的文件,0:表示不限制,写满为止
  11831. char szPreChannelName[DH_FTP_MAX_SUB_PATH]; // 图片文件名
  11832. char szFTPChannelPath[DH_FTP_MAX_SUB_PATH]; // ftp存储路径(存储子目录)
  11833. char szRev[128]; // 保留字段
  11834. }DHDEV_FTP_CHANNEL_CFG;
  11835. ///@brief FTP上传扩展配置
  11836. typedef struct
  11837. {
  11838. DHDEV_FTP_PROTO_CFG stuFtpNormalSet; // FTP原有功能,扩展通道数
  11839. DHDEV_FTP_CHANNEL_CFG stuFtpChannelSet[DH_MAX_CHANNUM]; // FTP扩展功能
  11840. char szRev[128]; // 保留字段
  11841. }DHDEV_FTP_PROTO_CFG_EX;
  11842. ///@brief 以太网配置
  11843. typedef struct
  11844. {
  11845. char sDevIPAddr[DH_MAX_IPADDR_LEN]; // DVR IP 地址
  11846. char sDevIPMask[DH_MAX_IPADDR_LEN]; // DVR IP 地址掩码
  11847. char sGatewayIP[DH_MAX_IPADDR_LEN]; // 网关地址
  11848. /*
  11849. * 1:10Mbps 全双工
  11850. * 2:10Mbps 自适应
  11851. * 3:10Mbps 半双工
  11852. * 4:100Mbps 全双工
  11853. * 5:100Mbps 自适应
  11854. * 6:100Mbps 半双工
  11855. * 7:自适应
  11856. */
  11857. // 为了扩展将DWORD拆成四个
  11858. BYTE dwNetInterface; // NSP
  11859. BYTE bTranMedia; // 0:有线,1:无线
  11860. BYTE bValid; // 按位表示,第一位:1:有效 0:无效;第二位:0:DHCP关闭 1:DHCP使能;第三位:0:不支持DHCP 1:支持DHCP
  11861. BYTE bDefaultEth; // 是否作为默认的网卡 1:默认 0:非默认
  11862. char byMACAddr[DH_MACADDR_LEN]; // MAC地址,只读
  11863. } DH_ETHERNET;
  11864. ///@brief 远程主机配置
  11865. typedef struct
  11866. {
  11867. BYTE byEnable; // 连接使能
  11868. BYTE byAssistant; // 目前只对于PPPoE服务器有用,0:在有线网卡拨号;1:在无线网卡上拨号
  11869. WORD wHostPort; // 远程主机 端口
  11870. char sHostIPAddr[DH_MAX_IPADDR_LEN]; // 远程主机 IP 地址
  11871. char sHostUser[DH_MAX_HOST_NAMELEN]; // 远程主机 用户名
  11872. char sHostPassword[DH_MAX_HOST_PSWLEN]; // 远程主机 密码
  11873. } DH_REMOTE_HOST;
  11874. ///@brief 邮件配置
  11875. typedef struct
  11876. {
  11877. char sMailIPAddr[DH_MAX_IPADDR_LEN]; // 邮件服务器IP地址
  11878. WORD wMailPort; // 邮件服务器端口
  11879. WORD wReserved; // 保留
  11880. char sSenderAddr[DH_MAX_MAIL_ADDR_LEN]; // 发送地址
  11881. char sUserName[DH_MAX_NAME_LEN]; // 用户名
  11882. char sUserPsw[DH_MAX_NAME_LEN]; // 用户密码
  11883. char sDestAddr[DH_MAX_MAIL_ADDR_LEN]; // 目的地址
  11884. char sCcAddr[DH_MAX_MAIL_ADDR_LEN]; // 抄送地址
  11885. char sBccAddr[DH_MAX_MAIL_ADDR_LEN]; // 暗抄地址
  11886. char sSubject[DH_MAX_MAIL_SUBJECT_LEN]; // 标题
  11887. } DH_MAIL_CFG;
  11888. ///@brief 网络配置结构体
  11889. typedef struct
  11890. {
  11891. DWORD dwSize;
  11892. char sDevName[DH_MAX_NAME_LEN]; // 设备主机名
  11893. WORD wTcpMaxConnectNum; // TCP最大连接数
  11894. WORD wTcpPort; // TCP帧听端口
  11895. WORD wUdpPort; // UDP侦听端口
  11896. WORD wHttpPort; // HTTP端口号
  11897. WORD wHttpsPort; // HTTPS端口号
  11898. WORD wSslPort; // SSL端口号
  11899. DH_ETHERNET stEtherNet[DH_MAX_ETHERNET_NUM]; // 以太网口
  11900. DH_REMOTE_HOST struAlarmHost; // 报警服务器
  11901. DH_REMOTE_HOST struLogHost; // 日志服务器
  11902. DH_REMOTE_HOST struSmtpHost; // SMTP服务器
  11903. DH_REMOTE_HOST struMultiCast; // 多播组
  11904. DH_REMOTE_HOST struNfs; // NFS服务器
  11905. DH_REMOTE_HOST struPppoe; // PPPoE服务器
  11906. char sPppoeIP[DH_MAX_IPADDR_LEN]; // PPPoE注册返回的IP
  11907. DH_REMOTE_HOST struDdns; // DDNS服务器
  11908. char sDdnsHostName[DH_MAX_HOST_NAMELEN]; // DDNS主机名
  11909. DH_REMOTE_HOST struDns; // DNS服务器
  11910. DH_MAIL_CFG struMail; // 邮件配置
  11911. } DHDEV_NET_CFG;
  11912. ///@brief 以太网扩展配置
  11913. typedef struct
  11914. {
  11915. char sDevIPAddr[DH_MAX_IPADDR_LEN]; // DVR IP 地址
  11916. char sDevIPMask[DH_MAX_IPADDR_LEN]; // DVR IP 地址掩码
  11917. char sGatewayIP[DH_MAX_IPADDR_LEN]; // 网关地址
  11918. /*
  11919. * 1:10Mbps 全双工
  11920. * 2:10Mbps 自适应
  11921. * 3:10Mbps 半双工
  11922. * 4:100Mbps 全双工
  11923. * 5:100Mbps 自适应
  11924. * 6:100Mbps 半双工
  11925. * 7:自适应
  11926. */
  11927. // 为了扩展将DWORD拆成四个
  11928. BYTE dwNetInterface; // NSP
  11929. BYTE bTranMedia; // 0:有线,1:无线
  11930. BYTE bValid; // 按位表示,第一位:1:有效 0:无效;第二位:0:DHCP关闭 1:DHCP使能;第三位:0:不支持DHCP 1:支持DHCP
  11931. BYTE bDefaultEth; // 是否作为默认的网卡 1:默认 0:非默认
  11932. char byMACAddr[DH_MACADDR_LEN]; // MAC地址,只读
  11933. BYTE bMode; // 网卡所处模式, 0:绑定模式, 1:负载均衡模式, 2:多址模式, 3:容错模式
  11934. BYTE bReserved1[3]; // 字节对齐
  11935. char szEthernetName[DH_MAX_NAME_LEN]; // 网卡名,只读
  11936. BYTE bReserved[12]; // 保留字节
  11937. } DH_ETHERNET_EX;
  11938. ///@brief 扩展网络配置结构体
  11939. typedef struct
  11940. {
  11941. DWORD dwSize;
  11942. char sDevName[DH_MAX_NAME_LEN]; // 设备主机名
  11943. WORD wTcpMaxConnectNum; // TCP最大连接数
  11944. WORD wTcpPort; // TCP帧听端口
  11945. WORD wUdpPort; // UDP侦听端口
  11946. WORD wHttpPort; // HTTP端口号
  11947. WORD wHttpsPort; // HTTPS端口号
  11948. WORD wSslPort; // SSL端口号
  11949. int nEtherNetNum; // 以太网口数
  11950. DH_ETHERNET_EX stEtherNet[DH_MAX_ETHERNET_NUM_EX]; // 以太网口
  11951. DH_REMOTE_HOST struAlarmHost; // 报警服务器
  11952. DH_REMOTE_HOST struLogHost; // 日志服务器
  11953. DH_REMOTE_HOST struSmtpHost; // SMTP服务器
  11954. DH_REMOTE_HOST struMultiCast; // 多播组
  11955. DH_REMOTE_HOST struNfs; // NFS服务器
  11956. DH_REMOTE_HOST struPppoe; // PPPoE服务器
  11957. char sPppoeIP[DH_MAX_IPADDR_LEN]; // PPPoE注册返回的IP
  11958. DH_REMOTE_HOST struDdns; // DDNS服务器
  11959. char sDdnsHostName[DH_MAX_HOST_NAMELEN]; // DDNS主机名
  11960. DH_REMOTE_HOST struDns; // DNS服务器
  11961. DH_MAIL_CFG struMail; // 邮件配置
  11962. BYTE bReserved[128]; // 保留字节
  11963. } DHDEV_NET_CFG_EX;
  11964. ///@brief IPV4配置
  11965. typedef struct tagDEV_IPV4_CFG
  11966. {
  11967. DWORD dwSize; // 结构体大小
  11968. char szDevName[DH_MAX_NAME_LEN]; // 设备主机名
  11969. WORD wTcpMaxConnectNum; // TCP最大连接数
  11970. WORD wTcpPort; // TCP帧听端口
  11971. WORD wUdpPort; // UDP侦听端口
  11972. WORD wHttpPort; // HTTP端口号
  11973. WORD wHttpsPort; // HTTPS端口号
  11974. WORD wSslPort; // SSL端口号
  11975. DH_ETHERNET_EX stuEtherNet[DH_MAX_ETHERNET_NUM_EX];// 以太网口
  11976. int nEtherNetNum; // stuEtherNet 个数
  11977. }DEV_IPV4_CFG;
  11978. ///@brief 多ddns配置结构体
  11979. typedef struct
  11980. {
  11981. DWORD dwId; // ddns服务器id号
  11982. BOOL bEnable; // 使能,同一时间只能有一个ddns服务器处于使能状态
  11983. char szServerType[DH_MAX_SERVER_TYPE_LEN]; // 服务器类型,希网..
  11984. char szServerIp[DH_MAX_DOMAIN_NAME_LEN]; // 服务器ip或者域名
  11985. DWORD dwServerPort; // 服务器端口
  11986. char szDomainName[DH_MAX_DOMAIN_NAME_LEN]; // dvr域名,如jeckean.3322.org
  11987. char szUserName[DH_MAX_HOST_NAMELEN]; // 用户名
  11988. char szUserPsw[DH_MAX_HOST_PSWLEN]; // 密码
  11989. char szAlias[DH_MAX_DDNS_ALIAS_LEN]; // 服务器别名
  11990. DWORD dwAlivePeriod; // DDNS 保活时间
  11991. BYTE ByMode; // 域名模式:0-手动输入域名,szDomainName有效; 1-默认域名szDefaultDomainName有效。
  11992. char szDefaultDomainName[DH_MAX_DEFAULT_DOMAIN_LEN]; // 默认域名,只读
  11993. BYTE bReserved[3]; // 字节对齐
  11994. char szEmailUserName[DH_MAX_MAIL_NAME_LEN]; // 邮箱用户名
  11995. char reserved[128];
  11996. } DH_DDNS_SERVER_CFG;
  11997. ///@brief DDNS配置结构体
  11998. typedef struct
  11999. {
  12000. DWORD dwSize;
  12001. DWORD dwDdnsServerNum;
  12002. DH_DDNS_SERVER_CFG struDdnsServer[DH_MAX_DDNS_NUM];
  12003. } DHDEV_MULTI_DDNS_CFG;
  12004. ///@brief 邮件配置结构体
  12005. typedef struct
  12006. {
  12007. char sMailIPAddr[DH_MAX_DOMAIN_NAME_LEN]; // 邮件服务器地址(IP或者域名)
  12008. char sSubMailIPAddr[DH_MAX_DOMAIN_NAME_LEN];
  12009. WORD wMailPort; // 邮件服务器端口
  12010. WORD wSubMailPort;
  12011. WORD wReserved; // 保留
  12012. char sSenderAddr[DH_MAX_MAIL_ADDR_LEN]; // 发送地址
  12013. char sUserName[DH_MAX_MAIL_NAME_LEN]; // 用户名
  12014. char sUserPsw[DH_MAX_MAIL_NAME_LEN]; // 用户密码
  12015. char sDestAddr[DH_MAX_MAIL_ADDR_LEN]; // 目的地址
  12016. char sCcAddr[DH_MAX_MAIL_ADDR_LEN]; // 抄送地址
  12017. char sBccAddr[DH_MAX_MAIL_ADDR_LEN]; // 暗抄地址
  12018. char sSubject[DH_MAX_MAIL_SUBJECT_LEN]; // 标题
  12019. BYTE bEnable; // 使能0:false, 1:true
  12020. BYTE bSSLEnable; // SSL使能
  12021. WORD wSendInterval; // 发送时间间隔,[0,3600]秒
  12022. BYTE bAnonymous; // 匿名选项[0,1], 0表示FALSE,1表示TRUE.
  12023. BYTE bAttachEnable; // 附件使能[0,1], 0表示FALSE,1表示TRUE.
  12024. char reserved[154];
  12025. } DHDEV_MAIL_CFG;
  12026. ///@brief DNS服务器配置
  12027. typedef struct
  12028. {
  12029. char szPrimaryIp[DH_MAX_IPADDR_LEN];
  12030. char szSecondaryIp[DH_MAX_IPADDR_LEN];
  12031. char reserved[256];
  12032. } DHDEV_DNS_CFG;
  12033. ///@brief 录象下载策略配置
  12034. typedef struct
  12035. {
  12036. DWORD dwSize;
  12037. BOOL bEnable; // TRUE:高速下载,FALSE:普通下载
  12038. }DHDEV_DOWNLOAD_STRATEGY_CFG;
  12039. ///@brief 网络传输策略配置
  12040. typedef struct
  12041. {
  12042. DWORD dwSize;
  12043. BOOL bEnable;
  12044. int iStrategy; // 0:画质优先,1:流畅性优先,2:自动
  12045. }DHDEV_TRANSFER_STRATEGY_CFG;
  12046. ///@brief 设置登入时的相关参数
  12047. typedef struct
  12048. {
  12049. int nWaittime; // 等待超时时间(毫秒为单位),为0默认5000ms
  12050. int nConnectTime; // 连接超时时间(毫秒为单位),为0默认1500ms
  12051. int nConnectTryNum; // 连接尝试次数,为0默认1次
  12052. int nSubConnectSpaceTime; // 子连接之间的等待时间(毫秒为单位),为0默认10ms
  12053. int nGetDevInfoTime; // 获取设备信息超时时间,为0默认1000ms
  12054. int nConnectBufSize; // 每个连接接收数据缓冲大小(字节为单位),为0默认250*1024
  12055. int nGetConnInfoTime; // 获取子连接信息超时时间(毫秒为单位),为0默认3000ms
  12056. int nSearchRecordTime; // 按时间查询录像文件的超时时间(毫秒为单位),为0默认为3000ms
  12057. int nsubDisconnetTime; // 检测子链接断线等待时间(毫秒为单位),为0默认为60000ms
  12058. BYTE byNetType; // 网络类型, 0-LAN, 1-WAN
  12059. BYTE byPlaybackBufSize; // 回放数据接收缓冲大小(M为单位),为0默认为4M
  12060. BYTE bDetectDisconnTime; // 心跳检测断线时间(单位为秒),为0默认为60s,最小时间为2s
  12061. BYTE bKeepLifeInterval; // 心跳包发送间隔(单位为秒),为0默认为10s,最小间隔为2s
  12062. int nPicBufSize; // 实时图片接收缓冲大小(字节为单位),为0默认为2*1024*1024
  12063. BYTE bReserved[4]; // 保留字段字段
  12064. } NET_PARAM;
  12065. ///@brief UDP和组播参数
  12066. typedef struct tagNET_UDP_OPTION
  12067. {
  12068. unsigned int nPacketArriveTimeout; // 等待乱序包到达超时时间, 单位为ms, 默认为50ms, 最大值为200ms, 为0表示不更改当前值
  12069. unsigned int nRetransmitPacketArriveTimeout; // 等待重传包的超时时间, 单位为ms, 默认为100ms, 最大值为400ms, 为0表示不更改当前值
  12070. unsigned int nMaxLostNumOfMulitcastSeqNo; // 最大的可接受的组播丢包个数, 默认为1000, 最大值为2000, 为0表示不更改当前值
  12071. unsigned int nMaxWaitNumOfUdpSeqNo; // 最大的等待UDP乱序到达的包个数, 默认为30, 最大值为1000, 为0表示不更改当前值
  12072. unsigned int nMultiSocketSendBufferSize; // 组播套接字发送缓存大小, 单位:Byte, 默认64K, 最小8K, 最大1M, 为0表示不更改当前值
  12073. unsigned int nMultiSocketRecvBufferSize; // 组播套接字接受缓存大小, 单位:Byte, 默认1M, 最小8K, 最大1M, 为0表示不更改当前值
  12074. unsigned int nUdpSocketSendBufferSize; // UDP套接字发送缓存大小, 单位:Byte, 默认64K, 最小8K, 最大1M, 为0表示不更改当前值
  12075. unsigned int nUdpSocketRecvBufferSize; // UDP套接字接受缓存大小, 单位:Byte, 默认1M, 最小8K, 最大1M, 为0表示不更改当前值
  12076. BYTE bReserved[128]; // 保留字段字段
  12077. }NET_UDP_OPTION;
  12078. ///@brief 对应CLIENT_SearchDevices接口
  12079. typedef struct
  12080. {
  12081. char szIP[DH_MAX_IPADDR_LEN]; // IP
  12082. int nPort; // tcp端口
  12083. char szSubmask[DH_MAX_IPADDR_LEN]; // 子网掩码
  12084. char szGateway[DH_MAX_IPADDR_LEN]; // 网关
  12085. char szMac[DH_MACADDR_LEN]; // MAC地址
  12086. char szDeviceType[DH_DEV_TYPE_LEN]; // 设备类型
  12087. BYTE byManuFactory; // 目标设备的生产厂商,具体参考EM_IPC_TYPE类
  12088. BYTE byIPVersion; // 4: IPv4, szXXX为点分字符串形式; 6:IPv6, szXXX为128位(16字节)数值形式
  12089. BYTE byInitStatus; // 设备初始化状态,按位确定初始化状态
  12090. // bit0~1:0-老设备,没有初始化功能 1-未初始化账号 2-已初始化账户
  12091. // bit2~3:0-老设备,保留 1-公网接入未使能 2-公网接入已使能
  12092. // bit4~5:0-老设备,保留 1-手机直连未使能 2-手机直连使能
  12093. BYTE byPwdResetWay; // 支持密码重置方式:按位确定密码重置方式,只在设备有初始化账号时有意义
  12094. // bit0-支持预置手机号 bit1-支持预置邮箱 bit2-支持文件导出
  12095. BYTE bySpecialAbility; // 设备初始化能力,按位确定初始化状态,bit0-2D Code修改IP: 0 不支持 1 支持,bit1-PN制:0 不支持 1 支持
  12096. BYTE byAbroadInfo; // 用于区分是海外还是国内设备,0 未知、1 国内、2 海外
  12097. BYTE bReserved[26]; // 保留字节
  12098. } DEVICE_NET_INFO;
  12099. #define DH_DEV_CUSTOM_DEVICEID_LEN 24 // ID长度
  12100. ///@brief IP类型
  12101. typedef enum tagEM_IPVERSION
  12102. {
  12103. EM_IPVERSION_IPV4, // IPv4
  12104. EM_IPVERSION_IPV6, // IPv6
  12105. } EM_IPVERSION;
  12106. ///@brief 对应CLIENT_StartSearchDevices接口
  12107. typedef struct
  12108. {
  12109. int iIPVersion; // 4 for IPV4, 6 for IPV6
  12110. char szIP[64]; // IP IPV4形如"192.168.0.1" IPV6形如"2008::1/64"
  12111. int nPort; // tcp端口
  12112. char szSubmask[64]; // 子网掩码 IPV6无子网掩码
  12113. char szGateway[64]; // 网关
  12114. char szMac[DH_MACADDR_LEN]; // MAC地址
  12115. char szDeviceType[DH_DEV_TYPE_LEN]; // 设备类型
  12116. BYTE byManuFactory; // 目标设备的生产厂商,具体参考EM_IPC_TYPE类
  12117. BYTE byDefinition; // 1-标清 2-高清
  12118. bool bDhcpEn; // Dhcp使能状态, true-开, false-关
  12119. BYTE byReserved1; // 字节对齐
  12120. char verifyData[88]; // 校验数据 通过异步搜索回调获取(在修改设备IP时会用此信息进行校验)
  12121. char szSerialNo[DH_DEV_SERIALNO_LEN]; // 序列号
  12122. char szDevSoftVersion[DH_MAX_URL_LEN]; // 设备软件版本号
  12123. char szDetailType[DH_DEV_TYPE_LEN]; // 设备型号
  12124. char szVendor[DH_MAX_STRING_LEN]; // OEM客户类型
  12125. char szDevName[DH_MACHINE_NAME_NUM]; // 设备名称
  12126. char szUserName[DH_USER_NAME_LENGTH_EX]; // 登陆设备用户名(在修改设备IP时需要填写)
  12127. char szPassWord[DH_USER_NAME_LENGTH_EX]; // 登陆设备密码(在修改设备IP时需要填写)
  12128. unsigned short nHttpPort; // HTTP服务端口号
  12129. WORD wVideoInputCh; // 视频输入通道数
  12130. WORD wRemoteVideoInputCh; // 远程视频输入通道数
  12131. WORD wVideoOutputCh; // 视频输出通道数
  12132. WORD wAlarmInputCh; // 报警输入通道数
  12133. WORD wAlarmOutputCh; // 报警输出通道数)
  12134. BOOL bNewWordLen; // TRUE使用新密码字段szNewPassWord
  12135. char szNewPassWord[DH_COMMON_STRING_64]; // 登陆设备密码(在修改设备IP时需要填写)
  12136. BYTE byInitStatus; // 设备初始化状态,按位确定初始化状态
  12137. // bit0~1:0-老设备,没有初始化功能 1-未初始化账号 2-已初始化账户
  12138. // bit2~3:0-老设备,保留 1-公网接入未使能 2-公网接入已使能
  12139. // bit4~5:0-老设备,保留 1-手机直连未使能 2-手机直连使能
  12140. // bit6~7: 0- 未知 1-不支持密码重置 2-支持密码重置
  12141. BYTE byPwdResetWay; // 支持密码重置方式:按位确定密码重置方式,只在设备有初始化账号时有意义
  12142. // bit0-支持预置手机号 bit1-支持预置邮箱 bit2-支持文件导出 bit3-支持密保问题 bit4-支持更换手机号
  12143. BYTE bySpecialAbility; // 设备初始化能力,按位确定初始化能力,高八位 bit0-2D Code修改IP: 0 不支持 1 支持, bit1-PN制:0 不支持 1支持
  12144. char szNewDetailType[DH_COMMON_STRING_64]; // 设备型号
  12145. BOOL bNewUserName; // TRUE表示使用新用户名(szNewUserName)字段
  12146. char szNewUserName[DH_COMMON_STRING_64]; // 登陆设备用户名(在修改设备IP时需要填写)
  12147. BYTE byPwdFindVersion; // 密码找回的版本号,设备支持密码重置时有效;
  12148. // 0-设备使用的是老方案的密码重置版本;1-支持预留联系方式进行密码重置操作;
  12149. // 2-支持更换联系方式进行密码重置操作;
  12150. char szDeviceID[DH_DEV_CUSTOM_DEVICEID_LEN]; // 不作为通用协议,不对接通用客户端
  12151. DWORD dwUnLoginFuncMask; // 未登陆功能掩码
  12152. // Bit0-Wifi列表扫描及WLan设置
  12153. // Bit1-支持会话外修改过期密码
  12154. // Bit2-设备是否支持串口日志重定向(提前引导功能)
  12155. char szMachineGroup[64]; // 设备分组
  12156. EM_IPVERSION emIPVersionFrom; // 通过哪种网络搜索方式发现该设备;0:从IPv4组播地址发现设备 1:从IPv6组播地址发现设备
  12157. char szCountryCode[3]; // 设备wifi国家码
  12158. BYTE byAbroadInfo; // 用于区分是海外还是国内设备,0 未知、1 国内、2 海外
  12159. char cReserved[4]; // 扩展字段
  12160. }DEVICE_NET_INFO_EX;
  12161. ///@brief 对应CLIENT_StartSearchDevicesEx接口
  12162. typedef struct
  12163. {
  12164. DEVICE_NET_INFO_EX stuDevInfo; // 设备信息结构体
  12165. char szLocalIP[MAX_LOCAL_IP_LEN]; // 搜索到设备的本地IP地址
  12166. char cReserved[2048]; // 扩展字段
  12167. }DEVICE_NET_INFO_EX2;
  12168. ///@brief 对应CLIENT_SearchDevicesByIPs接口
  12169. typedef struct
  12170. {
  12171. DWORD dwSize; // 结构体大小
  12172. int nIpNum; // 当前搜索的IP个数
  12173. char szIP[DH_MAX_SAERCH_IP_NUM][64]; // 具体待搜索的IP信息
  12174. }DEVICE_IP_SEARCH_INFO;
  12175. ///@brief 设备搜索参数
  12176. typedef struct tagNET_DEVICE_SEARCH_PARAM
  12177. {
  12178. DWORD dwSize; // 结构体大小
  12179. BOOL bUseDefault; // 是否使用默认配置,默认为TRUE
  12180. WORD wBroadcastLocalPort; // 广播本地端口, 默认5050, 值为0时使用最近一次配置
  12181. WORD wBroadcastRemotePort; // 广播远程端口, 默认5050, 值为0时使用最近一次配置
  12182. WORD wMulticastRemotePort; // 组播远程端口, 默认37810, 值为0时使用最近一次配置
  12183. BOOL bMulticastModifyRespond; // 组播修改设备时是否只支持组播回复,默认FALSE表示单播或组播回复
  12184. WORD wMulticastLocalPort; // 组播本地端口, 默认37810, 值为0时使用最近一次配置
  12185. int iAutoUpdatePortTimes; // 端口不可用时自动更新端口次数,默认50次,范围[0-65534]
  12186. WORD wAOLMulticastRemotePort; // AOL 组播远程端口, 默认8087, 值为0时使用最近一次配置
  12187. WORD wAOLMulticastLocalPort; // AOL 组播本地端口, 默认37811, 值为0时使用最近一次配置
  12188. }NET_DEVICE_SEARCH_PARAM;
  12189. ///@brief struct SNMP配置结构
  12190. typedef struct
  12191. {
  12192. BOOL bEnable; // SNMP使能
  12193. int iSNMPPort; // SNMP端口
  12194. char szReadCommon[DH_MAX_SNMP_COMMON_LEN]; // 读共同体
  12195. char szWriteCommon[DH_MAX_SNMP_COMMON_LEN]; // 写共同体
  12196. char szTrapServer[64]; // trap地址
  12197. int iTrapPort; // trap端口
  12198. BYTE bSNMPV1; // 设备是否开启支持版本1格式,0不使能;1使能
  12199. BYTE bSNMPV2; // 设备是否开启支持版本2格式,0不使能;1使能
  12200. BYTE bSNMPV3; // 设备是否开启支持版本3格式,0不使能;1使能
  12201. char szReserve[125];
  12202. }DHDEV_NET_SNMP_CFG;
  12203. ///@brief ISCSI服务器结构定义
  12204. typedef struct tagDHDEV_ISCSI_SERVER
  12205. {
  12206. char szServerName[32]; // 名称
  12207. union
  12208. {
  12209. BYTE c[4];
  12210. WORD s[2];
  12211. DWORD l;
  12212. } stuIP; // IP地址
  12213. int nPort; // 端口号
  12214. char szUserName[32]; // 用户名
  12215. char szPassword[32]; // 密码
  12216. BOOL bAnonymous; // 是否匿名登录
  12217. }DHDEV_ISCSI_SERVER;
  12218. ///@brief ISCSI配置结构
  12219. typedef struct
  12220. {
  12221. BOOL bEnable; // 使能
  12222. DHDEV_ISCSI_SERVER stuServer; // 服务器
  12223. char szRemotePath[240]; // 远程目录
  12224. BYTE reserved[256];
  12225. }DHDEV_ISCSI_CFG;
  12226. ///@brief 云台联动
  12227. typedef struct
  12228. {
  12229. int iType; // 0-None,1-Preset,2-Tour,3-Pattern
  12230. int iValue;
  12231. } DH_PTZ_LINK, *LPDH_PTZ_LINK;
  12232. ///@brief 报警联动结构体
  12233. typedef struct
  12234. {
  12235. /* 消息处理方式,可以同时多种处理方式,包括
  12236. * 0x00000001 - 报警上传
  12237. * 0x00000002 - 联动录象
  12238. * 0x00000004 - 云台联动
  12239. * 0x00000008 - 发送邮件
  12240. * 0x00000010 - 本地轮巡
  12241. * 0x00000020 - 本地提示
  12242. * 0x00000040 - 报警输出
  12243. * 0x00000080 - Ftp上传
  12244. * 0x00000100 - 蜂鸣
  12245. * 0x00000200 - 语音提示
  12246. * 0x00000400 - 抓图
  12247. */
  12248. DWORD dwActionMask; // 当前报警所支持的处理方式,按位掩码表示
  12249. DWORD dwActionFlag; // 触发动作,按位掩码表示,具体动作所需要的参数在各自的配置中体现
  12250. BYTE byRelAlarmOut[DH_MAX_ALARMOUT_NUM]; // 报警触发的输出通道,报警触发的输出,为1表示触发该输出
  12251. DWORD dwDuration; // 报警持续时间
  12252. BYTE byRecordChannel[DH_MAX_VIDEO_IN_NUM]; // 报警触发的录象通道,为1表示触发该通道
  12253. DWORD dwRecLatch; // 录象持续时间
  12254. BYTE bySnap[DH_MAX_VIDEO_IN_NUM]; // 抓图通道
  12255. BYTE byTour[DH_MAX_VIDEO_IN_NUM]; // 轮巡通道
  12256. DH_PTZ_LINK struPtzLink[DH_MAX_VIDEO_IN_NUM]; // 云台联动
  12257. DWORD dwEventLatch; // 联动开始延时时间,s为单位,范围是0~15,默认值是0
  12258. BYTE byRelWIAlarmOut[DH_MAX_ALARMOUT_NUM]; // 报警触发的无线输出通道,报警触发的输出,为1表示触发该输出
  12259. BYTE bMessageToNet;
  12260. BYTE bMMSEn; // 短信报警使能
  12261. BYTE bySnapshotTimes; // 短信发送抓图张数
  12262. BYTE bMatrixEn; // 矩阵使能
  12263. DWORD dwMatrix; // 矩阵掩码
  12264. BYTE bLog; // 日志使能,目前只有在WTN动态检测中使用
  12265. BYTE bSnapshotPeriod; // 抓图帧间隔,每隔多少帧抓一张图片,一定时间内抓拍的张数还与抓图帧率有关。0表示不隔帧,连续抓拍
  12266. BYTE byEmailType; // 0,图片附件,1,录像附件
  12267. BYTE byEmailMaxLength; // 附件录像时的最大长度,单位MB
  12268. BYTE byEmailMaxTime; // 附件是录像时最大时间长度,单位秒
  12269. BYTE byReserved[99];
  12270. } DH_MSG_HANDLE;
  12271. ///@brief 外部报警
  12272. typedef struct
  12273. {
  12274. BYTE byAlarmType; // 报警器类型,0:常闭,1:常开
  12275. BYTE byAlarmEn; // 报警使能
  12276. BYTE byReserved[2];
  12277. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  12278. DH_MSG_HANDLE struHandle; // 处理方式
  12279. } DH_ALARMIN_CFG, *LPDHDEV_ALARMIN_CFG;
  12280. ///@brief 动态检测报警
  12281. typedef struct
  12282. {
  12283. BYTE byMotionEn; // 动态检测报警使能
  12284. BYTE byReserved;
  12285. WORD wSenseLevel; // 灵敏度
  12286. WORD wMotionRow; // 动态检测区域的行数
  12287. WORD wMotionCol; // 动态检测区域的列数
  12288. BYTE byDetected[DH_MOTION_ROW][DH_MOTION_COL]; // 检测区域,最多32*32块区域
  12289. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  12290. DH_MSG_HANDLE struHandle; //处理方式
  12291. } DH_MOTION_DETECT_CFG;
  12292. ///@brief 视频丢失报警
  12293. typedef struct
  12294. {
  12295. BYTE byAlarmEn; // 视频丢失报警使能
  12296. BYTE byReserved[3];
  12297. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  12298. DH_MSG_HANDLE struHandle; // 处理方式
  12299. } DH_VIDEO_LOST_CFG;
  12300. ///@brief 图像遮挡报警
  12301. typedef struct
  12302. {
  12303. BYTE byBlindEnable; // 使能
  12304. BYTE byBlindLevel; // 灵敏度1-6
  12305. BYTE byReserved[2];
  12306. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; // NSP
  12307. DH_MSG_HANDLE struHandle; // 处理方式
  12308. } DH_BLIND_CFG;
  12309. ///@brief 硬盘消息(内部报警)
  12310. typedef struct
  12311. {
  12312. BYTE byNoDiskEn; // 无硬盘时报警
  12313. BYTE byReserved_1[3];
  12314. DH_TSECT stNDSect[DH_N_WEEKS][DH_N_REC_TSECT]; // NSP
  12315. DH_MSG_HANDLE struNDHandle; // 处理方式
  12316. BYTE byLowCapEn; // 硬盘低容量时报警
  12317. BYTE byLowerLimit; // 容量阀值,0-99
  12318. BYTE byReserved_2[2];
  12319. DH_TSECT stLCSect[DH_N_WEEKS][DH_N_REC_TSECT]; // NSP
  12320. DH_MSG_HANDLE struLCHandle; // 处理方式
  12321. BYTE byDiskErrEn; // 硬盘故障报警
  12322. BYTE bDiskNum;
  12323. BYTE byReserved_3[2];
  12324. DH_TSECT stEDSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  12325. DH_MSG_HANDLE struEDHandle; // 处理方式
  12326. } DH_DISK_ALARM_CFG;
  12327. ///@brief 网络中断报警配置
  12328. typedef struct
  12329. {
  12330. BYTE byEnable;
  12331. BYTE byReserved[3];
  12332. DH_MSG_HANDLE struHandle;
  12333. } DH_NETBROKEN_ALARM_CFG;
  12334. ///@brief 报警布防
  12335. typedef struct
  12336. {
  12337. DWORD dwSize;
  12338. DH_ALARMIN_CFG struLocalAlmIn[DH_MAX_ALARM_IN_NUM];
  12339. DH_ALARMIN_CFG struNetAlmIn[DH_MAX_ALARM_IN_NUM];
  12340. DH_MOTION_DETECT_CFG struMotion[DH_MAX_VIDEO_IN_NUM];
  12341. DH_VIDEO_LOST_CFG struVideoLost[DH_MAX_VIDEO_IN_NUM];
  12342. DH_BLIND_CFG struBlind[DH_MAX_VIDEO_IN_NUM];
  12343. DH_DISK_ALARM_CFG struDiskAlarm;
  12344. DH_NETBROKEN_ALARM_CFG struNetBrokenAlarm;
  12345. } DHDEV_ALARM_SCHEDULE;
  12346. #define DECODER_OUT_SLOTS_MAX_NUM 16
  12347. #define DECODER_IN_SLOTS_MAX_NUM 16
  12348. ///@brief 报警解码器配置
  12349. typedef struct
  12350. {
  12351. DWORD dwAddr; // 报警解码器地址
  12352. BOOL bEnable; // 报警解码器使能
  12353. DWORD dwOutSlots[DECODER_OUT_SLOTS_MAX_NUM]; // 现在只支持8个.
  12354. int nOutSlotNum; // dwOutSlots数组有效元素个数.
  12355. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  12356. DH_MSG_HANDLE struHandle[DECODER_IN_SLOTS_MAX_NUM]; // 现在只支持8个.
  12357. int nMsgHandleNum; // stuHandle数组有效元素个数.
  12358. BYTE bReserved[120];
  12359. } DH_ALARMDEC_CFG;
  12360. ///@brief 报警上传的配置
  12361. typedef struct
  12362. {
  12363. BYTE byEnable; // 上传使能
  12364. BYTE bReserverd; // 保留
  12365. WORD wHostPort; // 报警中心侦听端口
  12366. char sHostIPAddr[DH_MAX_IPADDR_LEN]; // 报警中心IP
  12367. int nByTimeEn; // 定时上传使能,可以用来向中心上传IP或域名等
  12368. int nUploadDay; // 设置上传日期
  12369. // "Never = 0", "Everyday = 1", "Sunday = 2",
  12370. // "Monday = 3", Tuesday = 4", "Wednesday = 5",
  12371. // "Thursday = 6", "Friday = 7", "Saturday = 8"
  12372. int nUploadHour; // 设置上传时间 ,[0~23]点
  12373. DWORD dwReserved[300]; // 保留待扩展。
  12374. } ALARMCENTER_UP_CFG;
  12375. ///@brief 全景切换报警配置
  12376. typedef struct __DH_PANORAMA_SWITCH_CFG
  12377. {
  12378. BOOL bEnable; // 使能
  12379. int nReserved[5]; // 保留
  12380. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  12381. DH_MSG_HANDLE struHandle; // 报警联动
  12382. } DH_PANORAMA_SWITCH_CFG;
  12383. ///@brief 事件信息
  12384. typedef struct __ALARM_PANORAMA_SWITCH_CFG
  12385. {
  12386. int nAlarmChnNum; // 报警通道个数
  12387. DH_PANORAMA_SWITCH_CFG stuPanoramaSwitch[DH_MAX_VIDEO_IN_NUM];
  12388. } ALARM_PANORAMA_SWITCH_CFG;
  12389. ///@brief 失去焦点报警配置
  12390. typedef struct __DH_LOST_FOCUS_CFG
  12391. {
  12392. BOOL bEnable; // 使能
  12393. int nReserved[5]; // 保留
  12394. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  12395. DH_MSG_HANDLE struHandle; // 报警联动
  12396. } DH_LOST_FOCUS_CFG;
  12397. ///@brief 事件信息
  12398. typedef struct __ALARM_LOST_FOCUS_CFG
  12399. {
  12400. int nAlarmChnNum; // 报警通道个数
  12401. DH_LOST_FOCUS_CFG stuLostFocus[DH_MAX_VIDEO_IN_NUM];
  12402. } ALARM_LOST_FOCUS_CFG;
  12403. ///@brief IP冲突检测报警配置
  12404. typedef struct __ALARM_IP_COLLISION_CFG
  12405. {
  12406. BOOL bEnable; // 使能
  12407. DH_MSG_HANDLE struHandle; // 报警联动
  12408. int nReserved[300]; // 保留
  12409. } ALARM_IP_COLLISION_CFG;
  12410. ///@brief MAC冲突检测配置
  12411. typedef struct __ALARM_MAC_COLLISION_CFG
  12412. {
  12413. BOOL bEnable; // 使能
  12414. DH_MSG_HANDLE struHandle; // 报警联动
  12415. int nReserved[300]; // 保留
  12416. } ALARM_MAC_COLLISION_CFG;
  12417. ///@brief 232串口卡号信号、485串口卡号信号事件配置
  12418. typedef struct __COM_CARD_SIGNAL_INFO
  12419. {
  12420. WORD wCardStartPose; // 卡号起始位
  12421. WORD wCardLenth; // 卡号长度
  12422. char cStartCharacter[32]; // 开始符
  12423. char cEndCharacter[32]; // 结束符
  12424. BYTE byReserved[28]; // 保留字段
  12425. }COM_CARD_SIGNAL_INFO;
  12426. ///@brief 232串口卡号信号、485串口卡号信号联动配置(在串口发过来的卡号信息满足配置的卡号信息后,将触发设备抓图)
  12427. typedef struct __COM_CARD_SIGNAL_LINK_CFG
  12428. {
  12429. COM_CARD_SIGNAL_INFO struCardInfo; // 卡号信息
  12430. DH_MSG_HANDLE struHandle; // 事件联动
  12431. BYTE byReserved[24]; // 保留字段
  12432. }COM_CARD_SIGNAL_LINK_CFG;
  12433. ///@brief 遮挡信息
  12434. typedef struct __VIDEO_COVER_ATTR
  12435. {
  12436. DH_RECT rcBlock; // 覆盖的区域坐标
  12437. int nColor; // 覆盖的颜色
  12438. BYTE bBlockType; // 覆盖方式;0:黑块,1:马赛克
  12439. BYTE bEncode; // 编码级遮挡;1:生效,0:不生效
  12440. BYTE bPriview; // 预览遮挡; 1:生效,0:不生效
  12441. char reserved[29]; // 保留
  12442. } VIDEO_COVER_ATTR;
  12443. ///@brief 多区域遮挡配置
  12444. typedef struct __DHDEV_VIDEOCOVER_CFG
  12445. {
  12446. DWORD dwSize;
  12447. char szChannelName[DH_CHAN_NAME_LEN]; // 只读
  12448. BYTE bTotalBlocks; // 支持的遮挡块数
  12449. BYTE bCoverCount; // 已设置的遮挡块数
  12450. VIDEO_COVER_ATTR CoverBlock[DH_MAX_VIDEO_COVER_NUM]; // 覆盖的区域
  12451. char reserved[30]; // 保留
  12452. }DHDEV_VIDEOCOVER_CFG;
  12453. ///@brief 设备的解码策略配置
  12454. typedef struct __DHDEV_DECODEPOLICY_CFG
  12455. {
  12456. int nMinTime; // 码缓冲时间范围(只读):最小缓冲时间(单位:ms)
  12457. int nMaxTime; // 码缓冲时间范围(只读):最大缓冲时间(单位:ms)
  12458. int nDeocdeBufTime; // 目标设备解码缓冲时间(单位:ms)
  12459. char reserved[128]; // 保留
  12460. }DHDEV_DECODEPOLICY_CFG;
  12461. ///@brief 机器相关的配置
  12462. typedef struct __DHDEV_MACHINE_CFG
  12463. {
  12464. char szMachineName[DH_MACHINE_NAME_NUM]; // 机器名称或编号
  12465. char szMachineAddress[DH_MACHINE_NAME_NUM]; // 机器部署地点
  12466. char reserved[128]; // 保留
  12467. }DHDEV_MACHINE_CFG;
  12468. ////////////////////////////IPC产品支持////////////////////////////////
  12469. ///@brief 配置无线网络信息
  12470. typedef struct tagDHDEV_WLAN_INFO
  12471. {
  12472. int nEnable; // 无线使能, 0: 使能, 1: 关闭
  12473. char szSSID[36]; // SSID
  12474. int nLinkMode; // 连接模式;0:auto,1:adhoc,2:Infrastructure
  12475. int nEncryption; // 加密 0:off,2:WEP64bit,3:WEP128bit, 4:WPA-PSK-TKIP, 5: WPA-PSK-CCMP(AES), 6:WPA2-PSK-TKIP 7:WPA2-PSK-AES 8:WPA-TKIP 9:WPA-AES
  12476. // 10:WPA2-TKIP 11:WPA2-AES 12:AUTO 13:WEP-OPEN 14:WEP-SHARED
  12477. int nKeyType; // 0:Hex,1:ASCII
  12478. int nKeyID; // 序号
  12479. union
  12480. {
  12481. char szKeys[4][32]; // 四组密码, WEP加密方式,nEncryption为2、3、13、14时使用
  12482. char szWPAKeys[128]; // nEncryption为WPA相关方式时使用,传128长度,不用结束符。
  12483. };
  12484. int nKeyFlag;
  12485. BYTE byConnectedFlag; // 0: 无连接, 1: 连接
  12486. char reserved[11];
  12487. } DHDEV_WLAN_INFO;
  12488. ///@brief 选择使用某个无线设备
  12489. typedef struct
  12490. {
  12491. char szSSID[36];
  12492. int nLinkMode; // 连接模式;0:adhoc,1:Infrastructure
  12493. int nEncryption; // 加密;0:off,2:WEP64bit,3:WEP128bit
  12494. char reserved[48];
  12495. } DHDEV_WLAN_DEVICE;
  12496. ///@brief 搜索到的无线设备列表
  12497. typedef struct
  12498. {
  12499. DWORD dwSize;
  12500. BYTE bWlanDevCount; // 搜索到的无线设备个数
  12501. DHDEV_WLAN_DEVICE lstWlanDev[DH_MAX_WLANDEVICE_NUM];
  12502. char reserved[255];
  12503. } DHDEV_WLAN_DEVICE_LIST;
  12504. ///@brief 无线设备扩展配置
  12505. typedef struct
  12506. {
  12507. char szSSID[36]; // 服务名称
  12508. char szMacAddr[18]; // mac地址
  12509. BYTE byApConnected; // 是否连接成功 0:没有,1: 连接成功
  12510. BYTE byLinkMode; // 连接模式 0:adhoc 1:Infrastructure;
  12511. int nRSSIQuality; // 信号强度(dbm)
  12512. unsigned int unApMaxBitRate; // 站点的最大传输速率
  12513. BYTE byAuthMode; // 认证模式0:OPEN;1:SHARED;2:WPA;3:WPA-PSK;4:WPA2;5:WPA2-PSK;
  12514. // 6:WPA-NONE(用在adhoc网络模式),
  12515. // 7-11是混合模式,选择其中任何一种都可以进行连接
  12516. // 7:WPA-PSK | WPA2-PSK; 8:WPA | WPA2; 9:WPA | WPA-PSK;
  12517. // 10:WPA2 | WPA2-PSK; 11:WPA | WPA-PSK |WPA2 |WPA2-PSK //12: UnKnown
  12518. // 13:WPA3-SAE; 14:WPA3-SAE/PSK
  12519. BYTE byEncrAlgr; // 加密模式0:off; 2:WEP64bit; 3:WEP128bit; 4:WEP; 5:TKIP; 6:AES(CCMP); 7:TKIP+AES(混合模式) 8:UnKnown
  12520. BYTE byLinkQuality; // 连接强度 0~100(%)
  12521. BYTE byWifiType; // WIFI频段类型 0 : 2.4G(默认) ; 1 : 5G
  12522. BYTE byReserved[128]; // Reserved
  12523. }DHDEV_WLAN_DEVICE_EX;
  12524. ///@brief 搜索到的无线设备扩展配置列表
  12525. typedef struct
  12526. {
  12527. DWORD dwSize;
  12528. BYTE bWlanDevCount; // 搜索到的无线设备个数
  12529. DHDEV_WLAN_DEVICE_EX lstWlanDev[DH_MAX_WLANDEVICE_NUM_EX];
  12530. char reserved[255];
  12531. } DHDEV_WLAN_DEVICE_LIST_EX;
  12532. ///@brief 搜索到的无线设备扩展配置列表
  12533. typedef struct
  12534. {
  12535. DWORD dwSize;
  12536. BYTE bWlanDevCount; // 搜索到的无线设备个数
  12537. DHDEV_WLAN_DEVICE_EX lstWlanDev[MAX_WLAN_DEVICE_NUM];
  12538. } DHDEV_WLAN_DEVICE_LIST_EX2;
  12539. ///@brief 测试设置有效性
  12540. typedef struct
  12541. {
  12542. int nResult; // 0:表示设置成功,1:表示设置失败
  12543. BYTE reserved[32];
  12544. } DHDEV_FUNC_TEST;
  12545. ///@brief FTP服务器信息
  12546. typedef struct
  12547. {
  12548. char szServerName[32]; // 服务器名
  12549. char szIp[16]; // IP地址
  12550. int nPort; // 端口号
  12551. char szUserName[32]; // 用户名
  12552. char szPassword[32]; // 密码
  12553. BOOL bAnonymity; // 是否匿名登录
  12554. BYTE byReserved[256]; // 保留字节
  12555. }FTP_SERVER_CFG;
  12556. ///@brief ftp服务器连接测试
  12557. typedef struct
  12558. {
  12559. FTP_SERVER_CFG stuFtpServerInfo; // ftp服务器信息(由用户填写)
  12560. DHDEV_FUNC_TEST stuTestResult; // ftp服务器连接状态(由设备返回)
  12561. BYTE byReserved[64];
  12562. }DHDEV_FTP_SERVER_TEST;
  12563. ///@brief DDNS域名信息
  12564. typedef struct
  12565. {
  12566. char szServerType[DH_MAX_SERVER_TYPE_LEN]; // 服务器类型,希网..
  12567. char szServerIp[DH_MAX_DOMAIN_NAME_LEN]; // 服务器ip或者域名
  12568. DWORD dwServerPort; // 服务器端口
  12569. char szDomainName[DH_MAX_DOMAIN_NAME_LEN]; // dvr域名,如jeckean.3322.org
  12570. char szUserName[DH_MAX_HOST_NAMELEN]; // 用户名
  12571. char szUserPsw[DH_MAX_HOST_PSWLEN]; // 密码
  12572. BYTE byReserved[256]; // 保留字节
  12573. }DDNS_DOMAIN_INFO;
  12574. ///@brief DDNS域名是否可用测试
  12575. typedef struct
  12576. {
  12577. DDNS_DOMAIN_INFO stuDomainInfo; // DDNS域名信息(由用户填写)
  12578. DHDEV_FUNC_TEST stuTestResult; // 测试结果
  12579. char szMemo[128]; // 测试结果描述
  12580. BYTE byReserved[64];
  12581. }DHDEV_DDNS_DOMAIN_TEST;
  12582. ///@brief 表示硬盘的基本信息
  12583. typedef struct
  12584. {
  12585. BYTE byModle[32]; // 型号
  12586. BYTE bySerialNumber[32]; // 序列号
  12587. BYTE byFirmWare[32]; // 固件号
  12588. int nAtaVersion; // ATA协议版本号
  12589. int nSmartNum ; // smart 信息数
  12590. INT64 Sectors;
  12591. int nStatus; // 磁盘状态 0-正常 1-异常
  12592. int nReserved[33]; // 保留字节
  12593. } DHDEV_DEVICE_INFO;
  12594. ///@brief 硬盘的smart信息,可能会有很多条,最多不超过30个  
  12595. typedef struct
  12596. {
  12597. BYTE byId; // ID
  12598. BYTE byCurrent; // 属性值
  12599. BYTE byWorst; // 最大出错值
  12600. BYTE byThreshold; // 阈值
  12601. char szName[64]; // 属性名
  12602. char szRaw[8]; // 实际值
  12603. int nPredict; // 状态
  12604. char reserved[128];
  12605. } DHDEV_SMART_VALUE;
  12606. ///@brief 硬盘smart信息查询
  12607. typedef struct
  12608. {
  12609. BYTE nDiskNum; // 硬盘号
  12610. BYTE byRaidNO; // Raid子盘,0表示单盘
  12611. BYTE byReserved[2]; // 保留字节
  12612. DHDEV_DEVICE_INFO deviceInfo;
  12613. DHDEV_SMART_VALUE smartValue[MAX_SMART_VALUE_NUM];
  12614. } DHDEV_SMART_HARDDISK;
  12615. ///@brief 各子模块信息
  12616. typedef struct
  12617. {
  12618. char szModuleName[64]; // 子模块名称
  12619. char szHardWareVersion[32]; // 子模块硬件版本号
  12620. char szSoftwareVersion[32]; // 子模块软件版本号
  12621. BYTE reserved[128];
  12622. } DHDEV_SUBMODELE_VALUE;
  12623. ///@brief 查询设备子模块信息
  12624. typedef struct
  12625. {
  12626. int nSubModuleNum; // 返回子模块总数
  12627. DHDEV_SUBMODELE_VALUE stuSubmoduleValue[MAX_SUBMODULE_NUM]; // 子模块详细信息
  12628. BYTE bReserved[256];
  12629. } DHDEV_SUBMODULE_INFO;
  12630. ///@brief 查询硬盘坏道能力
  12631. typedef struct
  12632. {
  12633. BYTE bDiskDamageLevel[DH_MAX_DISK_NUM]; //各磁盘坏道等级
  12634. BYTE bReserved[128];
  12635. } DHDEV_DISKDAMAGE_INFO;
  12636. ///@brief syslog的远程服务器配置
  12637. typedef struct
  12638. {
  12639. char szServerIp[DH_MAX_IPADDR_OR_DOMAIN_LEN]; //服务器地址
  12640. int nServerPort; //服务器端口
  12641. BYTE bEnable; //服务器使能
  12642. BYTE bReserved[255]; //保留字节
  12643. }DHDEV_SYSLOG_REMOTE_SERVER;
  12644. ///@brief 视频备份配置
  12645. typedef struct
  12646. {
  12647. BYTE backupVideoFormat; // 备份文件类型, 0:dav, 1:asf
  12648. BYTE password[6]; // 备份密码
  12649. BYTE reversed[505];
  12650. }DHDEV_BACKUP_VIDEO_FORMAT;
  12651. ///@brief 主动注册参数配置
  12652. typedef struct
  12653. {
  12654. char szServerIp[32]; // 注册服务器IP
  12655. int nServerPort; // 端口号
  12656. BYTE byReserved[3]; // 对齐
  12657. BYTE bServerIpExEn; // 注册服务器IP扩展使能,0-表示无效, 1-表示有效
  12658. char szServerIpEx[60]; // 注册服务器IP扩展,支持ipv4,ipv6,域名等类型的IP
  12659. } DHDEV_SERVER_INFO;
  12660. ///@brief 主动注册服务
  12661. typedef struct
  12662. {
  12663. DWORD dwSize;
  12664. BYTE bServerNum; // 支持的最大ip数
  12665. DHDEV_SERVER_INFO lstServer[DH_MAX_REGISTER_SERVER_NUM];
  12666. BYTE bEnable; // 使能
  12667. char szDeviceID[32]; // 设备id
  12668. char reserved[94];
  12669. } DHDEV_REGISTER_SERVER;
  12670. ///@brief 摄像头属性
  12671. typedef struct __DHDEV_CAMERA_INFO
  12672. {
  12673. BYTE bBrightnessEn; // 亮度可调;1:可,0:不可
  12674. BYTE bContrastEn; // 对比度可调
  12675. BYTE bColorEn; // 色度可调
  12676. BYTE bGainEn; // 增益可调
  12677. BYTE bSaturationEn; // 饱和度可调
  12678. BYTE bBacklightEn; // 背光补偿 0表示不支持背光补偿,1表示支持一级补偿(开,关),2表示支持两级补偿(关,高,低),3表示支持三级补偿(关,高,中,低)
  12679. BYTE bExposureEn; // 曝光选择: 0:表示不支持曝光控制 1:表示只支持自动曝光 n:曝光的等级数(1表示支持自动曝光 2~n表示支持的手动控制曝光的等级)
  12680. BYTE bColorConvEn; // 自动彩黑转换可调
  12681. BYTE bAttrEn; // 属性选项;1:可,0:不可
  12682. BYTE bMirrorEn; // 镜像;1:支持,0:不支持
  12683. BYTE bFlipEn; // 翻转;1:支持,0:不支持
  12684. BYTE iWhiteBalance; // 白平衡 0-不支持白平衡,1-支持自动白平衡,2-支持预置白平衡(即情景模式) 3-支持自定义白平衡
  12685. BYTE iSignalFormatMask; // 信号格式掩码,按位从低到高位分别为:0-Inside(内部输入) 1- BT656 2-720p 3-1080i 4-1080p 5-1080sF
  12686. BYTE bRotate90; // 90度旋转 0-不支持 1-支持
  12687. BYTE bLimitedAutoExposure; // 是否支持带时间上下限的自动曝光
  12688. BYTE bCustomManualExposure; // 是否支持用户自定义手动曝光时间
  12689. BYTE bFlashAdjustEn; // 是否支持闪光灯调节
  12690. BYTE bNightOptions; // 是否支持夜晚选项
  12691. BYTE iReferenceLevel; // 是否支持参考电平设置
  12692. BYTE bExternalSyncInput; // 是否支持外部同步信号输入,0-不支持,1-支持
  12693. unsigned short usMaxExposureTime; // 自定义曝光区间最大曝光时间,单位毫秒
  12694. unsigned short usMinExposureTime; // 自定义曝光区间最小曝光时间,单位毫秒
  12695. BYTE bWideDynamicRange; // 宽动态能力范围,0-表示不支持,2~n表示最大的范围值
  12696. BYTE bDoubleShutter; // 双快门0不支持,1-支持双快门全帧率,即图像和视频只有快门参数不同,2-支持双快门半帧率,即图像和视频快门及白平衡参数均不同,3-支持双快门全帧率和半帧率
  12697. BYTE byExposureCompensation; // 1支持, 0 不支持
  12698. BYTE bRev[109]; // 保留
  12699. } DHDEV_CAMERA_INFO;
  12700. ///@brief 夜晚特殊配置选项,在晚上光线较暗时自动切换到夜晚的配置参数
  12701. typedef struct __DHDEV_NIGHTOPTIONS
  12702. {
  12703. BYTE bEnable; // 0-不切换,1-切换
  12704. // 大致日出和日落时间,日落之后日出之前,将采用夜晚特殊的配置。
  12705. // 00:00:00 ~23:59:59
  12706. BYTE bSunriseHour;
  12707. BYTE bSunriseMinute;
  12708. BYTE bSunriseSecond;
  12709. BYTE bSunsetHour;
  12710. BYTE bSunsetMinute;
  12711. BYTE bSunsetSecond;
  12712. BYTE bWhiteBalance ; // 白平衡 0:unable,1:Auto 2:sunny 3:cloudy 4:home 5:office 6:night 7: Custom
  12713. BYTE bGainRed; // 红色增益调节,白平衡为"Custom"模式下有效 0~100
  12714. BYTE bGainBlue; // 绿色增益调节,白平衡为"Custom"模式下有效 0~100
  12715. BYTE bGainGreen; // 蓝色增益调节,白平衡为"Custom"模式下有效 0~100
  12716. BYTE bGain; // 0~100
  12717. BYTE bGainAuto; // 0-不自动增益 1-自动增益
  12718. BYTE bBrightnessThreshold ; // 亮度值 0~100
  12719. BYTE ReferenceLevel; // 电平参考值 0~100
  12720. BYTE bExposureSpeed; // 取值范围取决于设备能力集:0-自动曝光 1~n-1-手动曝光等级 n-带时间上下限的自动曝光 n+1-自定义时间手动曝光 (n表示支持的曝光等级数)
  12721. float ExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  12722. float ExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
  12723. BYTE bAutoApertureEnable; // 自动光圈使能,1开启,0关闭
  12724. BYTE bWideDynamicRange; // 宽动态值 取值范围由能力决定
  12725. WORD wNightSyncValue; // 夜晚相位 0~360
  12726. WORD wNightSyncValueMillValue; // 夜晚相位0~999(千分之一度),与wNightSyncValue组合构成夜晚相位值
  12727. BYTE res[10]; // 保留
  12728. } DHDEV_NIGHTOPTIONS;
  12729. ///@brief 摄像头属性配置
  12730. typedef struct __DHDEV_CAMERA_CFG
  12731. {
  12732. DWORD dwSize;
  12733. BYTE bExposure; // 曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n==bExposureEn)
  12734. BYTE bBacklight; // 背光补偿:背光补偿等级取值范围取决于设备能力集,0-关闭,1-背光补偿强度1,2-背光补偿强度2…n-最大背光补偿等级数
  12735. BYTE bAutoColor2BW; // 日/夜模式;3-根据时间自动切换 2:开(黑白),1:根据亮度启动切换,0:关(彩色)
  12736. BYTE bMirror; // 镜像;1:开,0:关
  12737. BYTE bFlip; // 翻转;1:开,0:关
  12738. BYTE bLensEn; // 自动光圈功能能力: 1:支持;0 :不支持
  12739. BYTE bLensFunction; // 自动光圈功能: 1:开启自动光圈;0: 关闭自动光圈
  12740. BYTE bWhiteBalance; // 白平衡 0:unable,1:Auto 2:sunny 3:cloudy 4:home 5:office 6:night 7: Custom
  12741. BYTE bSignalFormat; // 信号格式0-Inside(内部输入) 1- BT656 2-720p 3-1080i 4-1080p 5-1080sF
  12742. BYTE bRotate90; // 0-不旋转,1-顺时针90°,2-逆时针90°
  12743. BYTE bReferenceLevel; // 电平参考值 0~100
  12744. BYTE byReserve; // 保留
  12745. float ExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  12746. float ExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
  12747. DHDEV_NIGHTOPTIONS stuNightOptions; // 夜晚配置参数选项
  12748. BYTE bGainRed; // 红色增益调节,白平衡为"Custom"模式下有效 0~100
  12749. BYTE bGainBlue; // 绿色增益调节,白平衡为"Custom"模式下有效 0~100
  12750. BYTE bGainGreen; // 蓝色增益调节,白平衡为"Custom"模式下有效 0~100
  12751. BYTE bFlashMode; // 闪光灯工作模式,0-关闭,1-始终,2-自动
  12752. BYTE bFlashValue; // 闪光灯工作值, 0-0us, 1-64us, 2-128us,...15-960us
  12753. BYTE bFlashPole; // 闪光灯触发模式0-低电平 1-高电平
  12754. BYTE bExternalSyncPhase; // 外部同步信号输入,0-内部同步 1-外部同步
  12755. BYTE bFlashInitValue; // 闪光灯亮度预设值 区间0~100
  12756. WORD wExternalSyncValue ; // 外同步的相位设置 0~360(小数点后3位数字有效)
  12757. WORD wExternalSyncValueMillValue;// 外同步的相位设置0~999(千分之一度),与wExternalSyncValue组合构成外同步的相位值
  12758. BYTE bWideDynamicRange; //宽动态值 取值范围由能力决定
  12759. BYTE byExposureCompensation; // 曝光补偿值,默认为7,范围0~14
  12760. char bRev[54]; // 保留
  12761. } DHDEV_CAMERA_CFG;
  12762. #define ALARM_MAX_NAME 64
  12763. ///@brief (无线)红外报警配置
  12764. typedef struct
  12765. {
  12766. BOOL bEnable; // 报警输入使能
  12767. char szAlarmName[DH_MAX_ALARM_NAME]; // 报警输入名称
  12768. int nAlarmInPattern; // 报警器输入波形
  12769. int nAlarmOutPattern; // 报警输出波形
  12770. char szAlarmInAddress[DH_MAX_ALARM_NAME];// 报警输入地址
  12771. int nSensorType; // 外部设备传感器类型常开 or 常闭
  12772. int nDefendEfectTime; // 布撤防延时时间,在此时间后该报警输入有效
  12773. int nDefendAreaType; // 防区类型
  12774. int nAlarmSmoothTime; // 报警平滑时间,即在此时间内如果只有一个报警输入连续输入两次则忽略掉后面一次
  12775. char reserved[128];
  12776. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  12777. DH_MSG_HANDLE struHandle; // 处理方式
  12778. } DH_INFRARED_INFO;
  12779. ///@brief 无线遥控器配置
  12780. typedef struct
  12781. {
  12782. BYTE address[ALARM_MAX_NAME]; // 遥控器地址
  12783. BYTE name[ALARM_MAX_NAME]; // 遥控器名称
  12784. BYTE reserved[32]; // 保留字段
  12785. } DH_WI_CONFIG_ROBOT;
  12786. ///@brief 无线报警输出配置
  12787. typedef struct
  12788. {
  12789. BYTE address[ALARM_MAX_NAME]; // 报警输出地址
  12790. BYTE name[ALARM_MAX_NAME]; // 报警输出名称
  12791. BYTE reserved[32]; // 保留字段
  12792. } DH_WI_CONFIG_ALARM_OUT;
  12793. ///@brief 报警信息
  12794. typedef struct
  12795. {
  12796. DWORD dwSize;
  12797. BYTE bAlarmInNum; // 无线报警输入数
  12798. BYTE bAlarmOutNum; // 无线报警输出数
  12799. DH_WI_CONFIG_ALARM_OUT AlarmOutAddr[16]; // 报警输出地址
  12800. BYTE bRobotNum; // 遥控器个数
  12801. DH_WI_CONFIG_ROBOT RobotAddr[16]; // 遥控器地址
  12802. DH_INFRARED_INFO InfraredAlarm[16];
  12803. char reserved[256];
  12804. } DH_INFRARED_CFG;
  12805. ///@brief 新音频检测报警信息
  12806. typedef struct
  12807. {
  12808. int channel; // 报警通道号
  12809. int alarmType; // 报警类型;0:音频值过低,1:音频值过高
  12810. unsigned int volume; // 音量值
  12811. BYTE byState; // 音频报警状态, 0: 音频报警出现, 1: 音频报警消失
  12812. char reserved[255];
  12813. } NET_NEW_SOUND_ALARM_STATE;
  12814. ///@brief 新音频检测报警
  12815. typedef struct
  12816. {
  12817. int channelcount; // 报警的通道个数
  12818. NET_NEW_SOUND_ALARM_STATE SoundAlarmInfo[DH_MAX_ALARM_IN_NUM];
  12819. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  12820. } DH_NEW_SOUND_ALARM_STATE;
  12821. ///@brief 抓图功能属性结构体
  12822. typedef struct
  12823. {
  12824. int nChannelNum; // 通道号
  12825. DWORD dwVideoStandardMask; // 分辨率(按位),具体查看枚举 CAPTURE_SIZE
  12826. int nFramesCount; // Frequence[128]数组的有效长度
  12827. char Frames[128]; // 帧率(按数值)
  12828. // -25:25秒1帧;-24:24秒1帧;-23:23秒1帧;-22:22秒1帧
  12829. // ……
  12830. // 0:无效;1:1秒1帧;2:1秒2帧;3:1秒3帧
  12831. // 4:1秒4帧;5:1秒5帧;17:1秒17帧;18:1秒18帧
  12832. // 19:1秒19帧;20:1秒20帧
  12833. // ……
  12834. // 25: 1秒25帧
  12835. int nSnapModeCount; // SnapMode[16]数组的有效长度
  12836. char SnapMode[16]; // (按数值)0:定时触发抓图,1:手动触发抓图
  12837. int nPicFormatCount; // Format[16]数组的有效长度
  12838. char PictureFormat[16]; // (按数值)0:BMP格式,1:JPG格式
  12839. int nPicQualityCount; // Quality[32]数组的有效长度
  12840. char PictureQuality[32]; // 按数值
  12841. // 100:图象质量100%;80:图象质量80%;60:图象质量60%
  12842. // 50:图象质量50%;30:图象质量30%;10:图象质量10%
  12843. char nReserved[128]; // 保留
  12844. } DH_QUERY_SNAP_INFO;
  12845. ///@brief 抓图功能结构体
  12846. typedef struct
  12847. {
  12848. int nChannelCount; // 通道个数
  12849. DH_QUERY_SNAP_INFO stuSnap[DH_MAX_CHANNUM];
  12850. } DH_SNAP_ATTR_EN;
  12851. /* IP过滤功能配置 */
  12852. #define DH_IPIFILTER_NUM 200 // IP
  12853. #define DH_IPIFILTER_NUM_EX 512 // IP
  12854. ///@brief IP信息
  12855. typedef struct
  12856. {
  12857. DWORD dwIPNum; // IP个数
  12858. char SZIP[DH_IPIFILTER_NUM][DH_MAX_IPADDR_LEN]; // IP
  12859. char byReserve[32]; // 保留
  12860. } IPIFILTER_INFO;
  12861. ///@brief IP过滤配置结构体
  12862. typedef struct
  12863. {
  12864. DWORD dwSize;
  12865. DWORD dwEnable; // 使能
  12866. DWORD dwType; // 当前名单类型:0:允许名单 1:禁止名单(设备只能使一种名单生效,或者是允许名单或者是禁止名单)
  12867. IPIFILTER_INFO BannedIP; // 禁止名单
  12868. IPIFILTER_INFO TrustIP; // 允许名单
  12869. char byReserve[256]; // 保留
  12870. } DHDEV_IPIFILTER_CFG;
  12871. ///@brief IP信息扩展
  12872. typedef struct
  12873. {
  12874. DWORD dwIPNum; // IP个数
  12875. char SZIP[DH_IPIFILTER_NUM_EX][DH_MAX_IPADDR_LEN]; // IP
  12876. char byReserve[32]; // 保留
  12877. } IPIFILTER_INFO_EX;
  12878. ///@brief IP过滤配置结构体扩展
  12879. typedef struct
  12880. {
  12881. DWORD dwSize;
  12882. DWORD dwEnable; // 使能
  12883. DWORD dwType; // 当前名单类型:0:允许名单 1:禁止名单(设备只能使一种名单生效,或者是允许名单或者是禁止名单)
  12884. IPIFILTER_INFO_EX BannedIP; // 禁止名单
  12885. IPIFILTER_INFO_EX TrustIP; // 允许名单
  12886. char byReserve[256]; // 保留
  12887. } DHDEV_IPIFILTER_CFG_EX;
  12888. /* MAC过滤配置 */
  12889. #define DH_MACFILTER_NUM 512 // MAC
  12890. ///@brief MAC信息
  12891. typedef struct
  12892. {
  12893. DWORD dwSize; // 使用时,用初始化为本结构体大小
  12894. DWORD dwMacNum; // MAC个数
  12895. char szMac[DH_MACFILTER_NUM][DH_MACADDR_LEN]; // MAC
  12896. } MACFILTER_INFO;
  12897. ///@brief MAC过滤配置结构体
  12898. typedef struct
  12899. {
  12900. DWORD dwSize; // 使用时,用初始化为本结构体大小
  12901. DWORD dwEnable; // 使能
  12902. DWORD dwType; // 当前名单类型:0:允许名单 1:禁止名单(设备只能使一种名单生效,或者是允许名单或者是禁止名单)
  12903. MACFILTER_INFO stuBannedMac; // 禁止名单Mac
  12904. MACFILTER_INFO stuTrustMac; // 允许名单Mac
  12905. } DHDEV_MACFILTER_CFG;
  12906. /* MAC,IP过滤配置 */
  12907. #define DH_MACIPFILTER_NUM 512 // MAC,IP
  12908. ///@brief MAC,IP过滤信息
  12909. typedef struct
  12910. {
  12911. DWORD dwSize; // 使用时,用初始化为本结构体大小
  12912. char szMac[DH_MACADDR_LEN]; // mac
  12913. char szIp[DH_MAX_IPADDR_LEN]; // ip
  12914. }MACIP_INFO;
  12915. ///@brief MAC,IP过滤配置结构体
  12916. typedef struct
  12917. {
  12918. DWORD dwSize; // 使用时,用初始化为本结构体大小
  12919. DWORD dwEnable; // 使能
  12920. DWORD dwType; // 当前名单类型:0:允许名单 1:禁止名单(设备只能使一种名单生效,或者是允许名单或者是禁止名单)
  12921. DWORD dwBannedMacIpNum; // 禁止名单MAC,IP个数(MAC,IP一一对应)
  12922. MACIP_INFO stuBannedMacIp[DH_MACIPFILTER_NUM]; // 禁止名单Mac,IP
  12923. DWORD dwTrustMacIpNum; // 允许名单MAC,IP个数(MAC,IP一一对应)
  12924. MACIP_INFO stuTrustMacIp[DH_MACIPFILTER_NUM]; // 允许名单Mac,IP
  12925. } DHDEV_MACIPFILTER_CFG;
  12926. ///@brief 卡口信息配置
  12927. typedef struct
  12928. {
  12929. int nCardNum; // 有效卡号数
  12930. char cardInfo [DH_MAX_CARD_NUM][DH_MAX_CARDINFO_LEN]; // 卡号信息字符串
  12931. BYTE byReserve[32]; // 保留字段
  12932. }DHDEV_NETCARD_CFG;
  12933. ///@brief RTSP 配置
  12934. typedef struct
  12935. {
  12936. WORD wPort; // 端口号
  12937. BYTE byReserved[62]; // 保留字段
  12938. }DHDEV_RTSP_CFG;
  12939. ///@brief 具体密钥信息36个字节
  12940. typedef struct _ENCRYPT_KEY_INFO
  12941. {
  12942. BYTE byEncryptEnable; // 是否加密0:不加密, 1:加密
  12943. BYTE byReserved[3];
  12944. union
  12945. {
  12946. BYTE byDesKey[8]; // des密钥
  12947. BYTE by3DesKey[3][8]; // 3des密钥
  12948. BYTE byAesKey[32]; // aes密钥
  12949. };
  12950. }ENCRYPT_KEY_INFO;
  12951. ///@brief 加密算法参数
  12952. typedef struct _ALGO_PARAM_INFO
  12953. {
  12954. WORD wEncryptLenth; // 密钥长度,当前为AES算法类型时,表示密钥位数(目前支持128,192,256位三种, 如: wEncryptLenth为128,则密钥信息ENCRYPT_KEY_INFO里的byAesKey[0]~[15])
  12955. // 为DES算法类型时,密钥长度固定为64位
  12956. // 为3DES算法类型时,表示密钥的个数(2或3个密钥)
  12957. BYTE byAlgoWorkMode ; // 工作模式,参考枚举类型 EM_ENCRYPT_ALOG_WORKMODE
  12958. BYTE reserved[13]; // 保留字段
  12959. }ALGO_PARAM_INFO;
  12960. ///@brief 码流加密配置信息
  12961. typedef struct _DHEDV_STREAM_ENCRYPT
  12962. {
  12963. BYTE byEncrptAlgoType; // 加密算法类型:00: AES、01:DES、02: 3DES
  12964. BYTE byReserved1[3];
  12965. ALGO_PARAM_INFO stuEncrptAlgoparam; // 加密算法参数
  12966. ENCRYPT_KEY_INFO stuEncryptKeys[32]; // 各通道的密钥信息
  12967. BYTE byEncrptPlanEnable; // 加密计划使能
  12968. BYTE byReserved3[3];
  12969. NET_TIME stuPreTime; // 加密计划的开始时间
  12970. BYTE reserved2[1360];
  12971. }DHEDV_STREAM_ENCRYPT;
  12972. ///@brief 限码流配置
  12973. typedef struct _DHDEV_BIT_RATE
  12974. {
  12975. DWORD nExpectCodeRate; // 限制码流,单位kps
  12976. BYTE byReserved[64]; // 保留字节
  12977. }DHDEV_LIMIT_BIT_RATE;
  12978. ///@brief 用户自定义配置
  12979. typedef struct _DHDEV_CUSTOM_CFG
  12980. {
  12981. char szData[1024]; // 用户自定义配置信息
  12982. char reserved[3072]; // 保留字段
  12983. }DHDEV_CUSTOM_CFG;
  12984. ///@brief 语音对讲编码配置
  12985. typedef struct
  12986. {
  12987. DWORD dwSize;
  12988. int nCompression; // 压缩格式,枚举值,相见DH_TALK_CODING_TYPE,请根据设备支持的语音对讲类型设置压缩格式。
  12989. int nMode; // 编码模式,枚举值,为0时表示该压缩格式不支持编码模式。
  12990. // 根据压缩格式可以设置对应的编码格式,如
  12991. // AMR详见EM_ARM_ENCODE_MODE
  12992. char byReserve[256]; // 保留
  12993. } DHDEV_TALK_ENCODE_CFG;
  12994. ///@brief 以下是mobile功能相关
  12995. ///@brief (事件触发多媒体彩信/短信发送)MMS配置结构体
  12996. typedef struct
  12997. {
  12998. DWORD dwSize;
  12999. DWORD dwEnable; // 使能
  13000. DWORD dwReceiverNum; // 短信接收者个数
  13001. char SZReceiver[DH_MMS_RECEIVER_NUM][32]; // 短信接收者,一般为手机号码
  13002. BYTE byType; // 短信信息类型 0:MMS;1:SMS
  13003. char SZTitle[32]; // 短信信息标题
  13004. char byReserve[223]; // 保留
  13005. } DHDEV_MMS_CFG;
  13006. ///@brief (短信激活无线连接配置)
  13007. typedef struct
  13008. {
  13009. DWORD dwSize;
  13010. DWORD dwEnable; // 使能
  13011. DWORD dwSenderNum; // 短信发送者个数
  13012. char SZSender[DH_MMS_SMSACTIVATION_NUM][32]; // 短信发送者,一般为手机号码
  13013. char byReserve[256]; // 保留
  13014. }DHDEV_SMSACTIVATION_CFG;
  13015. ///@brief (拨号激活无线连接配置)
  13016. typedef struct
  13017. {
  13018. DWORD dwSize;
  13019. DWORD dwEnable; // 使能
  13020. DWORD dwCallerNum; // 发送者个数
  13021. char SZCaller[DH_MMS_DIALINACTIVATION_NUM][32];// 发送者, 一般为手机号码
  13022. char byReserve[256]; // 保留
  13023. }DHDEV_DIALINACTIVATION_CFG;
  13024. ///@brief 无线网络信号强度结构体
  13025. typedef struct
  13026. {
  13027. DWORD dwSize;
  13028. DWORD dwTDSCDMA; // TD-SCDMA强度,范围:0-100
  13029. DWORD dwWCDMA; // WCDMA强度,范围:0-100
  13030. DWORD dwCDMA1x; // CDMA1x强度,范围:0-100
  13031. DWORD dwEDGE; // EDGE强度,范围:0-100
  13032. DWORD dwEVDO; // EVDO强度,范围:0-100
  13033. int nCurrentType; // 当前类型
  13034. // 0 设备不支持这一项
  13035. // 1 TD-SCDMA
  13036. // 2 WCDMA
  13037. // 3 CDMA_1x
  13038. // 4 EDGE
  13039. // 5 EVDO
  13040. // 6 TD-LTE
  13041. // 7 FDD-LTE
  13042. DWORD dwTDLTE; // TD-LTE强度,范围:0-100
  13043. DWORD dwFDDLTE; // FDD-LTE强度,范围:0-100
  13044. char byReserve[244]; // 保留
  13045. } DHDEV_WIRELESS_RSS_INFO;
  13046. ///@brief SIP配置
  13047. typedef struct _DHDEV_SIP_CFG
  13048. {
  13049. BOOL bUnregOnBoot; //Unregister on Reboot
  13050. char szAccoutName[64]; //Account Name
  13051. char szSIPServer[128]; //SIP Server
  13052. char szOutBoundProxy[128]; //Outbound Proxy
  13053. DWORD dwSIPUsrID; //SIP User ID
  13054. DWORD dwAuthID; //Authenticate ID
  13055. char szAuthPsw[64]; //Authenticate Password
  13056. char szSTUNServer[128]; //STUN Server
  13057. DWORD dwRegExp; //Registration Expiration
  13058. DWORD dwLocalSIPPort; //Local SIP Port
  13059. DWORD dwLocalRTPPort; //Local RTP Port
  13060. BOOL bEnable; // 使能
  13061. char szNotifyID[128]; // 联动ID
  13062. NET_TIME stuRegTime; // 注册成功的时间;只读字段,设备指定。
  13063. BYTE bReserved[868]; //reserved
  13064. } DHDEV_SIP_CFG;
  13065. ///@brief SIP状态
  13066. typedef struct _DHDEV_SIP_STATE
  13067. {
  13068. int nStatusNum; //状态信息总的个数
  13069. BYTE byStatus[64]; //0:注册成功,1:未注册,2:无效,3:注册中,4:通话中
  13070. BYTE bReserved[64]; //保留
  13071. }DHDEV_SIP_STATE;
  13072. ///@brief 查询HardKey状态
  13073. typedef struct _DHDEV_HARDKEY_STATE
  13074. {
  13075. BOOL bState; // 0:未插入HardKey, 1:已插入HardKey
  13076. BYTE bReserved[64]; // 保留
  13077. }DHDEV_HARDKEY_STATE;
  13078. ///@brief 查询ISCSI路径列表
  13079. typedef struct _DHDEV_ISCSI_PATHLIST
  13080. {
  13081. int nCount;
  13082. char szPaths[DH_MAX_ISCSI_PATH_NUM][MAX_PATH_STOR]; // 远程目录数组
  13083. } DHDEV_ISCSI_PATHLIST;
  13084. ///@brief 无线路由能力信息
  13085. typedef struct _DHDEV_WIFI_ROUTE_CAP_COUNTRY
  13086. {
  13087. char szCountry[32]; // 国家
  13088. int nValidChnNum; // 有效通道数量
  13089. int nValideChannels[32]; // 有效通道列表
  13090. char reserved[64]; // 保留
  13091. } DHDEV_WIFI_ROUTE_CAP_COUNTRY;
  13092. ///@brief 查询无线路由能力信息
  13093. typedef struct _DHDEV_WIFI_ROUTE_CAP
  13094. {
  13095. int nCountryNum; // 国家数量
  13096. DHDEV_WIFI_ROUTE_CAP_COUNTRY stuCountry[256]; // 不同国家的配置信息
  13097. char reserved[256]; // 保留
  13098. } DHDEV_WIFI_ROUTE_CAP;
  13099. ///@brief 画面监控辅助信息
  13100. typedef struct _MONITOR_INFO
  13101. {
  13102. int nPresetObjectNum; // 预置应有目标数目
  13103. int nActualObjectNum; // 现场实际目标数目
  13104. char reserved[64];
  13105. }MONITOR_INFO;
  13106. ///@brief 画面监控辅助信息
  13107. typedef struct _DHDEV_MONITOR_INFO
  13108. {
  13109. int nChannelNumber;
  13110. MONITOR_INFO stMonitorInfo[64]; // 画面监控辅助信息
  13111. char reserved[128];
  13112. }DHDEV_MONITOR_INFO;
  13113. ///@brief 多通道预览回放分割能力
  13114. typedef struct tagNET_MULTIPLAYBACK_SPLIT_CAP
  13115. {
  13116. DWORD dwSize;
  13117. int nSliptMode[DH_MAX_MULTIPLAYBACK_SPLIT_NUM]; // 支持的分割模式,
  13118. int nModeNumber;
  13119. }NET_MULTIPLAYBACK_SPLIT_CAP;
  13120. ///@brief 云台预制点配置
  13121. typedef struct _POINTEANBLE
  13122. {
  13123. BYTE bPoint; //预制点的有效范围闭区间[1,80],无效设置为0。
  13124. BYTE bEnable; //是否有效,0无效,1有效
  13125. BYTE bReserved[2];
  13126. } POINTEANBLE;
  13127. ///@brief 预制点配置
  13128. typedef struct _POINTCFG
  13129. {
  13130. char szIP[DH_MAX_IPADDR_LEN]; // ip
  13131. int nPort; // 端口
  13132. POINTEANBLE stuPointEnable[80]; // 预制点使能
  13133. BYTE bReserved[256];
  13134. }POINTCFG;
  13135. ///@brief 预制点配置
  13136. typedef struct _DHDEV_POINT_CFG
  13137. {
  13138. int nSupportNum; // 只读参数,设置的时候需要返回给sdk,表示支持的预制点数
  13139. POINTCFG stuPointCfg[16]; // 二维下标表示通道号。要设置的点数值放在前nSupportNum个下标里面。
  13140. BYTE bReserved[256]; // 保留
  13141. }DHDEV_POINT_CFG;
  13142. ////////////////////////////车载DVR支持////////////////////////////////
  13143. ///@brief GPS信息(车载设备)
  13144. typedef struct _GPS_Info
  13145. {
  13146. NET_TIME revTime; // 定位时间
  13147. char DvrSerial[50]; // 设备序列号
  13148. double longitude; // 经度(单位是百万分之度,范围0-360度)
  13149. double latidude; // 纬度(单位是百万分之度,范围0-180度)
  13150. double height; // 高度(米)
  13151. double angle; // 方向角(正北方向为原点,顺时针为正)
  13152. double speed; // 速度(单位是海里,speed/1000*1.852公里/小时)
  13153. WORD starCount; // 定位星数
  13154. BOOL antennaState; // 天线状态(true 好,false 坏)
  13155. BOOL orientationState; // 定位状态(true 定位,false 不定位)
  13156. } GPS_Info,*LPGPS_Info;
  13157. ///@brief 报警状态信息
  13158. typedef struct
  13159. {
  13160. int nAlarmCount; // 发生的报警事件个数
  13161. int nAlarmState[128]; // 发生的报警事件类型
  13162. BYTE byRserved[128]; // 保留字节
  13163. }ALARM_STATE_INFO;
  13164. ///@brief Gps定位信息
  13165. typedef struct tagNET_GPS_LOCATION_INFO
  13166. {
  13167. GPS_Info stuGpsInfo; // GPS信息
  13168. ALARM_STATE_INFO stuAlarmStateInfo; // 报警状态信息
  13169. int nTemperature; // 温度(单位:0.1摄氏度)
  13170. int nHumidity; // 湿度(单位:0.1%)
  13171. unsigned int nIdleTime; // 怠速时长(单位:秒)
  13172. unsigned int nMileage; // 里程(单位:0.1km)
  13173. int nVoltage; // 设置电压值(单位:0.1伏)
  13174. BYTE bOffline; // 0-实时 1-补传
  13175. BYTE byReserved[1023];
  13176. }NET_GPS_LOCATION_INFO, *LPNET_GPS_LOCATION_INFO;
  13177. ///@brief 抓图参数结构体
  13178. typedef struct _snap_param
  13179. {
  13180. unsigned int Channel; // 抓图的通道
  13181. unsigned int Quality; // 画质;1~6
  13182. unsigned int ImageSize; // 画面大小;0:QCIF,1:CIF,2:D1
  13183. unsigned int mode; // 抓图模式;-1:表示停止抓图, 0:表示请求一帧, 1:表示定时发送请求, 2:表示连续请求
  13184. unsigned int InterSnap; // 时间单位秒;若mode=1表示定时发送请求时
  13185. // 只有部分特殊设备(如:车载设备)支持通过该字段实现定时抓图时间间隔的配置
  13186. // 建议通过 CFG_CMD_ENCODE 配置的stuSnapFormat[nSnapMode].stuVideoFormat.nFrameRate字段实现相关功能
  13187. unsigned int CmdSerial; // 请求序列号,有效值范围 0~65535,超过范围会被截断为 unsigned short
  13188. unsigned int Reserved[4];
  13189. } SNAP_PARAMS, *LPSNAP_PARAMS;
  13190. ///@brief 抓图功能配置
  13191. typedef struct
  13192. {
  13193. DWORD dwSize;
  13194. BYTE bTimingEnable; // 定时抓图开关(报警抓图开关在各报警联动配置中体现)
  13195. BYTE bPicIntervalHour; // 定时抓图时间间隔小时数
  13196. short PicTimeInterval; // 定时抓图时间间隔,单位为秒,目前设备支持最大的抓图时间间隔为30分钟
  13197. DH_VIDEOENC_OPT struSnapEnc[SNAP_TYP_NUM]; // 抓图编码配置,现支持其中的分辨率、画质、帧率设置,帧率在这里是负数,表示一秒抓图的次数。
  13198. } DHDEV_SNAP_CFG;
  13199. ///@brief 抓图功能配置扩展
  13200. typedef struct
  13201. {
  13202. DWORD dwSize;
  13203. BYTE bTimingEnable; // 定时抓图开关(报警抓图开关在各报警联动配置中体现)
  13204. BYTE bPicIntervalHour; // 定时抓图时间间隔小时数
  13205. short PicTimeInterval; // 定时抓图时间间隔,单位为秒,目前设备支持最大的抓图时间间隔为30分钟
  13206. DH_VIDEOENC_OPT struSnapEnc[SNAP_TYP_NUM]; // 抓图编码配置,现支持其中的分辨率、画质、帧率设置,帧率在这里是负数,表示一秒抓图的次数。
  13207. DWORD dwTrigPicIntervalSecond; // 报警触发后每次抓图时间间隔时间 单位秒
  13208. BYTE byRserved[256]; // 保留字节
  13209. } DHDEV_SNAP_CFG_EX;
  13210. ///@brief 车载wifi状态
  13211. typedef struct
  13212. {
  13213. char szSSID[128]; //SSID
  13214. BOOL bEnable; //是否启用wifi功能, 0:不使能 1:使能
  13215. int nSafeType; //校验类型
  13216. //0:OPEN
  13217. //1:RESTRICTE
  13218. //2:WEP
  13219. //3:WPA
  13220. //4:WPA2
  13221. //5:WPA-PSK
  13222. //6:WPA2-PSK
  13223. int nEncryprion; //加密方式
  13224. //0:OPEN
  13225. //1:TKIP
  13226. //2:WEP
  13227. //3:AES
  13228. //4:NONE(不校验)
  13229. //5:AUTO
  13230. //6:SHARED
  13231. int nStrength; //AP站点信号
  13232. char szHostIP[128]; //主机地址
  13233. char szHostNetmask[128]; //主机掩码
  13234. char szHostGateway[128]; //主机网关
  13235. int nPriority; //优先级,(1-32)
  13236. int nEnDHCP; //0:不使能; 1:使能(扫描到的dhcp默认使能打开)
  13237. BYTE bReserved[1016];
  13238. } DHDEV_VEHICLE_WIFI_STATE;
  13239. ///@brief 车载wifi配置
  13240. typedef struct
  13241. {
  13242. char szSSID[128]; //SSID
  13243. int nPriority; //优先级,(1-32)
  13244. int nSafeType; //校验类型
  13245. //0:OPEN
  13246. //1:RESTRICTE
  13247. //2:WEP
  13248. //3:WPA
  13249. //4:WPA2
  13250. //5:WPA-PSK
  13251. //6:WPA2-PSK
  13252. int nEncryprion; //加密方式
  13253. //0:OPEN
  13254. //1:TKIP
  13255. //2:WEP
  13256. //3:AES
  13257. //4:NONE(不校验)
  13258. //5:AUTO
  13259. //6:SHARED
  13260. char szKey[128]; //连接密钥
  13261. char szHostIP[128]; //主机地址
  13262. char szHostNetmask[128]; //主机掩码
  13263. char szHostGateway[128]; //主机网关
  13264. int nEnDHCP; //0:不使能; 1:使能(扫描到的dhcp默认使能打开)
  13265. BYTE byKeyIndex; //WEP校验类型下的密钥索引,0:不支持密钥索引 >0:密钥索引值,范围1-4
  13266. BYTE bReserved[1019];
  13267. } DHDEV_VEHICLE_WIFI_CONFIG;
  13268. ///@brief wifi配置
  13269. typedef struct
  13270. {
  13271. char szSSID[128]; // SSID
  13272. BYTE bReserved[256]; // 保留字节
  13273. }WIFI_CONNECT;
  13274. ///@brief IP修改配置
  13275. typedef struct __DHCTRL_IPMODIFY_PARAM
  13276. {
  13277. int nStructSize;
  13278. char szRemoteIP[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // 前端设备IP
  13279. char szSubmask[DH_MAX_IPADDR_LEN]; // 子网掩码
  13280. char szGateway[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // 网关
  13281. char szMac[DH_MACADDR_LEN]; // MAC地址
  13282. char szDeviceType[DH_DEV_TYPE_LEN]; // 设备类型
  13283. }DHCTRL_IPMODIFY_PARAM;
  13284. ///@brief 单个WIFI AP配置
  13285. typedef struct
  13286. {
  13287. BOOL bIsScan; //0:非扫描wifi (手动添加的), 1扫描到的wifi
  13288. char szSSID[128]; //SSID
  13289. int nSafeType; //校验类型
  13290. //0:OPEN
  13291. //1:RESTRICTE
  13292. //2:WEP
  13293. //3:WPA
  13294. //4:WPA2
  13295. //5:WPA-PSK
  13296. //6:WPA2-PSK
  13297. int nEncryprion; //加密方式
  13298. //0:OPEN
  13299. //1:TKIP
  13300. //2:WEP
  13301. //3:AES
  13302. //4:NONE(不校验)
  13303. //5:AUTO
  13304. //6:SHARED
  13305. char szKey[128]; //连接密钥
  13306. int nStrength; //AP站点信号
  13307. int nMaxBitRate; //AP站点的最大传输速率,带单位 只读
  13308. int nIsCnnted; //是否连接成功只读
  13309. int nIsSaved; //是否已经保存只读
  13310. int nPriority; //优先级,(1-32)
  13311. char szHostIP[128]; //主机地址
  13312. char szHostNetmask[128]; //主机掩码
  13313. char szHostGateway[128]; //主机网关
  13314. int nWifiFreq; //无线频率,采用通道标识
  13315. int nEnDHCP; //0:不使能 1:使能(扫描到的dhcp默认使能打开)
  13316. BYTE byKeyIndex; //WEP校验类型下的密钥索引,0:不支持密钥索引 >0:密钥索引值,范围1-4
  13317. BYTE bReserved[1019];
  13318. }DHDEV_VEHICLE_SINGLE_WIFI_AP_CFG;
  13319. ///@brief wifi ap配置
  13320. typedef struct
  13321. {
  13322. BOOL bEnable; //是否启用wifi功能, 0:不使能 1:使能
  13323. int nWifiApNum; //DHDEV_VEHICLE_WIFI_AP_CFG结构体有效个数
  13324. DHDEV_VEHICLE_SINGLE_WIFI_AP_CFG struWifiAp[64];//单个WIFI AP配置
  13325. int nReserved[512]; //保留
  13326. }DHDEV_VEHICLE_WIFI_AP_CFG;
  13327. ///@brief wifi ap配置
  13328. typedef struct
  13329. {
  13330. BOOL bEnable; //是否启用wifi功能, 0:不使能 1:使能
  13331. int nRetWifiApNum; //解析得到的DHDEV_VEHICLE_WIFI_AP_CFG结构体有效个数
  13332. int nMaxWifiApNum; //申请的DHDEV_VEHICLE_SINGLE_WIFI_AP_CFG个数
  13333. DHDEV_VEHICLE_SINGLE_WIFI_AP_CFG* pWifiAp; //单个WIFI AP配置
  13334. int nReserved[512]; //保留
  13335. }DHDEV_VEHICLE_WIFI_AP_CFG_EX;
  13336. ///@brief GPS日志信息结构体
  13337. typedef struct _DH_DEVICE_GPS_LOG_ITEM
  13338. {
  13339. DHDEVTIME stuDevTime; // 设备时间
  13340. DWORD dwLatidude; // 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
  13341. DWORD dwLongitude; // 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
  13342. // 经纬度的具体转换方式可以参考结构体 NET_WIFI_GPS_INFO 中的注释
  13343. DWORD dwSpeed; // 速度,单位是海里,speed/1000*1.852公里/小时
  13344. DWORD dwHight; // 高度,米
  13345. DWORD dwAngle; // 方向,角度0~360,正北方向为原点,顺时针为正
  13346. DHDEVTIME stuGpsTime; // GPS时间
  13347. BYTE bAntStatus; // GPS天线状态,为0表示好;不为0表示异常
  13348. BYTE bOriStatus; // 定位状态,不为0表示定位成功
  13349. BYTE bSatCount; // 卫星数量
  13350. BYTE bGPSStatus; // GPS状态,0,未定位 1,无差分定位信息 2,带差分定位信息
  13351. DWORD dwTemp; // 温度值(摄氏度),实际值的1000倍,如30.0摄氏度表示为30000
  13352. DWORD dwHumidity; // 湿度值(%),实际值的1000倍,如30.0%表示为30000
  13353. BYTE bReserved[24]; // 保留字节
  13354. }DH_DEVICE_GPS_LOG_ITEM;
  13355. ///@brief GPS 日志查询参数结构体
  13356. typedef struct _QUERY_GPS_LOG_PARAM
  13357. {
  13358. NET_TIME stuStartTime; // 查询日志的开始时间
  13359. NET_TIME stuEndTime; // 查询日志的结束时间
  13360. int nStartNum; // 在时间段中从第几条日志开始查询,开始第一次查询可设为0
  13361. BYTE bReserved[20];
  13362. } QUERY_GPS_LOG_PARAM;
  13363. ///@brief GPS温湿度信息
  13364. typedef struct _GPS_TEMP_HUMIDITY_INFO
  13365. {
  13366. double dTemperature; // 温度值(摄氏度),实际值的1000倍,如30.0摄氏度表示为30000
  13367. double dHumidity; // 湿度值(%),实际值的1000倍,如30.0%表示为30000
  13368. BYTE bReserved[128]; // 保留字节
  13369. }GPS_TEMP_HUMIDITY_INFO;
  13370. ///@brief 电子围栏类型枚举
  13371. typedef enum
  13372. {
  13373. ENCLOSURE_UNKNOWN = 0x00, // 未知
  13374. ENCLOSURE_LIMITSPEED = 0x01, // 限速区
  13375. ENCLOSURE_DRIVEALLOW = 0x02, // 驾驶区
  13376. ENCLOSURE_FORBIDDRIVE = 0x04, // 禁止区
  13377. ENCLOSURE_LOADGOODS = 0x08, // 装货区
  13378. ENCLOSURE_UPLOADGOODS = 0x10, // 卸货区
  13379. ENCLOSURE_FLYALLOW = 0x20, // 飞行区
  13380. ENCLOSURE_MANUALFORBIDFLY = 0x40, // 禁飞区(手动设置)
  13381. ENCLOSURE_FIXEDFORBIDFLY = 0x80, // 禁飞区(机场) - 不可配置
  13382. ENCLOSURE_FiXEDLIMITFLY = 0x81, // 限制飞行 - 不可配置
  13383. }ENCLOSURE_TYPE;
  13384. ///@brief 报警类型
  13385. typedef enum
  13386. {
  13387. ENCLOSURE_ALARM_DRIVEIN , // 驶入
  13388. ENCLOSURE_ALARM_DRIVEOUT, // 驶出
  13389. ENCLOSURE_ALARM_OVERSPEED, // 超速
  13390. ENCLOSURE_ALARM_SPEEDCLEAR, // 超速消失
  13391. ENCLOSURE_ALARM_FLYNEAR, // 飞行靠近
  13392. }ENCLOSURE_ALARM_TYPE;
  13393. ///@brief 电子围栏区域信息
  13394. typedef struct
  13395. {
  13396. DWORD dwLongitude; // 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
  13397. DWORD dwLatidude; // 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
  13398. // 经纬度的具体转换方式可以参考结构体 NET_WIFI_GPS_INFO 中的注释
  13399. }GPS_POINT;
  13400. ///@brief 电子围栏配置
  13401. typedef struct _DHDEV_ENCLOSURE_CFG
  13402. {
  13403. UINT unType; // 电子围栏类型掩码,见 ENCLOSURE_TYPE
  13404. BYTE bRegion[8]; // 前四位分别代表国家、省、市或区、县(0-255),后4bytes保留
  13405. UINT unId; // 一个区域以一个ID标识
  13406. UINT unSpeedLimit; // 限速,单位km/h
  13407. UINT unPointNum; // 电子围栏区域顶点数
  13408. GPS_POINT stPoints[128]; // 电子围栏区域信息
  13409. char szStationName[DH_STATION_NAME_LEN]; // 电子围栏包围的车站站点名称
  13410. BYTE bDisenable; // 去使能。 0 启用 ;1 不启用
  13411. BYTE bShape; // 围栏形状 0 多边形 1 圆形;
  13412. BYTE bLimitType; // 围栏限制类型 0 无; 1 限高; 2 限半径; 3 限高限半径
  13413. BYTE bAction; // 触发围栏后,设备的动作;0 无,兼容以前; 1 只报告; 2 悬停; 3 返航;
  13414. int nLimitAltitude; // 高度 单位:厘米。 0 无效
  13415. int nAlarmAltitude; // 预警高度单位:厘米。 0 无效
  13416. UINT unLimitRadius; // 半径单位:厘米。0 无效
  13417. UINT unAlarmRadius; // 预警半径:厘米。0 无效
  13418. BYTE reserved[12]; // 保留
  13419. }DHDEV_ENCLOSURE_CFG;
  13420. ///@brief 电子围栏版本号配置
  13421. typedef struct _DHDEV_ENCLOSURE_VERSION_CFG
  13422. {
  13423. UINT unType; // 围栏类型掩码,如LIMITSPEED | DRIVEALLOW
  13424. UINT unVersion[32]; // 每个类型一个版本号,用于统一平台与设备上的围栏配置
  13425. int nReserved; // 保留
  13426. }DHDEV_ENCLOSURE_VERSION_CFG;
  13427. ///@brief 围栏报警类型
  13428. typedef enum tagEM_ENCLOSURE_TYPE_EX
  13429. {
  13430. EM_ENCLOSURE_TYPE_EX_UNKNOWN, // 未知
  13431. EM_ENCLOSURE_TYPE_EX_LIMITSPEED, // 限速区
  13432. EM_ENCLOSURE_TYPE_EX_DRIVEALLOW, // 驾驶区
  13433. EM_ENCLOSURE_TYPE_EX_FORBIDDRIVE, // 禁止区
  13434. EM_ENCLOSURE_TYPE_EX_LOADGOODS, // 装货区
  13435. EM_ENCLOSURE_TYPE_EX_UPLOADGOODS, // 卸货区
  13436. }EM_ENCLOSURE_TYPE_EX;
  13437. ///@brief 详细类型
  13438. typedef enum tagEM_ENCLOSURE_ALARM_TYPE_EX
  13439. {
  13440. ENCLOSURE_ALARM_EX_UNKNOWN, // 未知
  13441. ENCLOSURE_ALARM_EX_DRIVEIN , // 驶入
  13442. ENCLOSURE_ALARM_EX_DRIVEOUT, // 驶出
  13443. ENCLOSURE_ALARM_EX_OVERSPEED, // 超速
  13444. ENCLOSURE_ALARM_EX_SPEEDCLEAR, // 超速消失
  13445. }EM_ENCLOSURE_ALARM_TYPE_EX;
  13446. ///@brief 电子围栏报警拓展结构体
  13447. typedef struct tagALARM_ENCLOSURE_INFO_EX
  13448. {
  13449. int nChannelID; // 通道号
  13450. int nAction; // 1:开始 2:停止
  13451. NET_TIME_EX stuUTC; // 事件发生的时间
  13452. EM_ENCLOSURE_TYPE_EX emType; // 围栏报警类型
  13453. int nActionNum; // 返回详细类型个数
  13454. EM_ENCLOSURE_ALARM_TYPE_EX emAction[16]; // 详细类型
  13455. int nDriverNo; // 司机编号
  13456. int nEnclosureID; // 围栏编号
  13457. DWORD dwLongitude; // 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
  13458. DWORD dwLatidude; // 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
  13459. int nLimitSpeed; // 限制车速
  13460. int nSpeed; // 当前速度
  13461. char szDeviceID[32]; // 设备ID
  13462. int nStartEnclosureID; // 出发围栏编号
  13463. int nEndEnclosureID; // 目的围栏编号
  13464. NET_TIME_EX stuStartTime; // 出发时间,本地时间
  13465. NET_TIME_EX stuEndTime; // 出发时间,本地时间
  13466. int nMileage; // 本趟行驶行驶里程数,单位0.1Km
  13467. int nTriggerCount; // 趟数
  13468. char szReserved[1024]; // 保留
  13469. }ALARM_ENCLOSURE_INFO_EX;
  13470. ///@brief 电子围栏报警
  13471. typedef struct __ALARM_ENCLOSURE_INFO
  13472. {
  13473. int nTypeNumber; // 有效电子围栏类型个数
  13474. BYTE bType[16]; // 电子围栏类型, 见 ENCLOSURE_TYPE
  13475. int nAlarmTypeNumber; // 有效报警类型个数
  13476. BYTE bAlarmType[16]; // 报警类型,见ENCLOSURE_ALARM_TYPE
  13477. char szDriverId[DH_VEHICLE_DRIVERNO_LEN]; // 司机工号
  13478. UINT unEnclosureId; // 电子围栏ID
  13479. UINT unLimitSpeed; // 限速,单位km/h
  13480. UINT unCurrentSpeed; // 当前速度
  13481. NET_TIME stAlarmTime; // 报警发生时间
  13482. DWORD dwLongitude; // 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
  13483. DWORD dwLatidude; // 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
  13484. // 经纬度的具体转换方式可以参考结构体 NET_WIFI_GPS_INFO 中的注释
  13485. BYTE bOffline; // 0-实时 1-补传
  13486. char reserve[3]; // 字节对齐
  13487. UINT unTriggerCount; // 围栏触发次数
  13488. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体 注:该结构体走 ALARM_ENCLOSURE_INFO_EX 时依然有效
  13489. BOOL bIsAlarmEnclosureInfoEx; // 该值为TRUE时应使用 ALARM_ENCLOSURE_INFO_EX 结构体中字段
  13490. ALARM_ENCLOSURE_INFO_EX stuAlarmEnclosureInfoEx; // 当走三代事件时数据存在该结构体
  13491. BYTE byReserved[128]; // 保留字节
  13492. }ALARM_ENCLOSURE_INFO;
  13493. ///@brief 订阅事件接口完成异步通知事件(DH_START_LISTEN_FINISH_EVENT)信息结构体
  13494. typedef struct tagSTART_LISTEN_FINISH_RESULT_INFO
  13495. {
  13496. DWORD dwEventResult; // 事件订阅返回结果 NET_NOERROR:成功 非0:失败,值为错误码,详见_EC(x)
  13497. BYTE byReserved[508]; // 保留字节
  13498. }START_LISTEN_FINISH_RESULT_INFO;
  13499. #define DH_MAX_RAID_NUM 16
  13500. #define DH_MAX_RAID_DEVICE_NAME 16
  13501. ///@brief RAID异常信息
  13502. typedef struct __RAID_STATE_INFO
  13503. {
  13504. char szName[16]; // Raid名称
  13505. BYTE byType; // 类型 1:Jbod 2:Raid0 3:Raid1 4:Raid5
  13506. BYTE byStatus; // 状态 0:unknown ,1:active,2:degraded,3:inactive,4:recovering
  13507. BYTE byReserved[2];
  13508. int nCntMem; // nMember数组的有效数据个数
  13509. int nMember[32]; // 1,2,3,... 组成磁盘通道,是个数组
  13510. int nCapacity; // 容量,单位G
  13511. int nRemainSpace; // 剩余容量,单位M
  13512. int nTank; // 扩展柜 0:主机,1:扩展柜1,2:扩展柜2,……
  13513. char reserved[32];
  13514. }RAID_STATE_INFO;
  13515. ///@brief RAID异常信息
  13516. typedef struct __ALARM_RAID_INFO
  13517. {
  13518. int nRaidNumber; // 上报的RAID个数
  13519. RAID_STATE_INFO stuRaidInfo[DH_MAX_RAID_NUM]; // 异常的RAID信息
  13520. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  13521. char reserved[128];
  13522. }ALARM_RAID_INFO;
  13523. ///@brief RAID错误类型
  13524. typedef enum tagEM_RAID_ERROR
  13525. {
  13526. EM_RAID_ERROR_UNKNOW, // 未知
  13527. EM_RAID_ERROR_FAILED, // RAID错误
  13528. EM_RAID_ERROR_DEGRADED, // RAID降级
  13529. } EM_RAID_ERROR;
  13530. ///@brief 故障子盘状态
  13531. typedef enum tagEM_RAID_ERR_SUBDISK
  13532. {
  13533. EM_RAID_ERR_SUBDISK_UNKNOWN, // 未知
  13534. EM_RAID_ERR_SUBDISK_OFFLINE, // 离线
  13535. EM_RAID_ERR_SUBDISK_FAULTY, // 异常
  13536. EM_RAID_ERR_SUBDISK_WRITEERR, // 写错误
  13537. } EM_RAID_ERR_SUBDISK;
  13538. ///@brief 故障子盘详细信息
  13539. typedef struct tagNET_RAID_ERR_DETAIL_INFO
  13540. {
  13541. DWORD dwSlotNum; // 子盘槽位号
  13542. EM_RAID_ERR_SUBDISK emErrSubDisk; // 子盘状态
  13543. BYTE byReserved[24]; // 保留
  13544. }NET_RAID_ERR_DETAIL_INFO;
  13545. ///@brief 新RAID异常信息 对应DH_ALARM_RAID_STATE_EX报警
  13546. typedef struct tagALARM_RAID_INFO_EX
  13547. {
  13548. DWORD nAction; // 0-开始, 1-停止
  13549. char szDevice[DH_MAX_RAID_DEVICE_NAME]; // 设备名称
  13550. EM_RAID_ERROR emErrorType; // 错误类型
  13551. int nDetailNum; // 有效的故障子盘个数
  13552. NET_RAID_ERR_DETAIL_INFO stuErrDetail[16]; // 故障子盘详细信息
  13553. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  13554. BYTE byReserved[508]; // 保留
  13555. }ALARM_RAID_INFO_EX;
  13556. ///@brief IPC的存储介质故障事件(SD卡异常)结构体 对应 DH_ALARM_STORAGE_IPC_FAILURE 报警
  13557. typedef struct tagALARM_STORAGE_IPC_FAILURE_INFO
  13558. {
  13559. int nAction; // 0:开始 1:停止
  13560. int nChannelID; // 发生报警的通道号
  13561. BYTE byReserved[1024]; // 保留字节
  13562. }ALARM_STORAGE_IPC_FAILURE_INFO;
  13563. ///@brief 静止报警,如果设备坐标在指定时间内没有变化,触发静止报警信息对应 DH_ALARM_DEVICE_STAY
  13564. typedef struct tagALARM_DEVICE_STAY_INFO
  13565. {
  13566. int nAction; // 0:开始 1:停止
  13567. int nChannelID; // 发生报警的通道号
  13568. BYTE byReserved[1024]; // 保留字节
  13569. }ALARM_DEVICE_STAY_INFO;
  13570. ///@brief 地铁车厢门状态类型
  13571. typedef enum tagEM_SUB_WAY_DOOR_STATE_TYPE
  13572. {
  13573. EM_SUB_WAY_DOOR_STATE_TYPE_UNKNOWN, // 未知的
  13574. EM_SUB_WAY_DOOR_STATE_TYPE_LOST, // 状态丢失
  13575. EM_SUB_WAY_DOOR_STATE_TYPE_ISOLATION, // 隔离
  13576. EM_SUB_WAY_DOOR_STATE_TYPE_UNLOCK, // 解锁
  13577. EM_SUB_WAY_DOOR_STATE_TYPE_NORMAL, // 正常
  13578. }EM_SUB_WAY_DOOR_STATE_TYPE;
  13579. ///@brief 地铁车厢号类型
  13580. typedef enum tagEM_SUB_WAY_CARRIAGE_NUMBER_TYPE
  13581. {
  13582. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE_UNKNOWN, // 未知的
  13583. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE_TC1, // TC1
  13584. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE_M1, // M1
  13585. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE_M2, // M2
  13586. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE_TC2, // TC2
  13587. }EM_SUB_WAY_CARRIAGE_NUMBER_TYPE;
  13588. ///@brief 地铁车厢门状态 对应 DH_ALARM_SUB_WAY_DOOR_STATE 报警
  13589. typedef struct tagALARM_SUB_WAY_DOOR_STATE_INFO
  13590. {
  13591. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  13592. int nEventID; // 事件ID
  13593. double dbPTS; // 时间戳(单位是毫秒)
  13594. NET_TIME_EX stuTime; // 事件发生的时间
  13595. int nDoorNumber; // 门号
  13596. EM_SUB_WAY_DOOR_STATE_TYPE emDoorState; // 状态
  13597. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE emCarriageNumber; // 车厢号
  13598. BYTE byReserved[1024]; // 保留字节
  13599. }ALARM_SUB_WAY_DOOR_STATE_INFO;
  13600. ///@brief 地铁PECE柜门状态 对应 DH_ALARM_SUB_WAY_PECE_SWITCH 报警
  13601. typedef struct tagALARM_SUB_WAY_PECE_SWITCH_INFO
  13602. {
  13603. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  13604. int nEventID; // 事件ID
  13605. double dbPTS; // 时间戳(单位是毫秒)
  13606. NET_TIME_EX stuTime; // 事件发生的时间
  13607. int nDoorNumber; // 门号
  13608. int nState; // 状态,1表示打开,0表示关闭,其他值表示未知
  13609. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE emCarriageNumber; // 车厢号
  13610. BYTE byReserved[1024]; // 保留字节
  13611. }ALARM_SUB_WAY_PECE_SWITCH_INFO;
  13612. ///@brief 地铁火警事件 对应 DH_ALARM_SUB_WAY_FIRE_ALARM 报警
  13613. typedef struct tagALARM_SUB_WAY_FIRE_ALARM_INFO
  13614. {
  13615. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  13616. int nEventID; // 事件ID
  13617. double dbPTS; // 时间戳(单位是毫秒)
  13618. NET_TIME_EX stuTime; // 事件发生的时间
  13619. int nSourceNumber; // 火警源号
  13620. BOOL bState; // 状态,TRUE表示有火警,FALSE表示无火警
  13621. BYTE byReserved[1024]; // 保留字节
  13622. }ALARM_SUB_WAY_FIRE_ALARM_INFO;
  13623. ///@brief 地铁乘客紧急手柄动作 对应 DH_ALARM_SUB_WAY_EMER_HANDLE 报警
  13624. typedef struct tagALARM_SUB_WAY_EMER_HANDLE_INFO
  13625. {
  13626. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  13627. int nEventID; // 事件ID
  13628. double dbPTS; // 时间戳(单位是毫秒)
  13629. NET_TIME_EX stuTime; // 事件发生的时间
  13630. BOOL bState; // 状态,TRUE表示有动作,FALSE表示无动作
  13631. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE emCarriageNumber; // 车厢号
  13632. BYTE byReserved[1024]; // 保留字节
  13633. }ALARM_SUB_WAY_EMER_HANDLE_INFO;
  13634. ///@brief 地铁司机室盖板状态 对应 DH_ALARM_SUB_WAY_CAB_COVER 报警
  13635. typedef struct tagALARM_SUB_WAY_CAB_COVER_INFO
  13636. {
  13637. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  13638. int nEventID; // 事件ID
  13639. double dbPTS; // 时间戳(单位是毫秒)
  13640. NET_TIME_EX stuTime; // 事件发生的时间
  13641. int nState; // 状态,1表示打开,0表示关闭,其他值表示未知
  13642. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE emCarriageNumber; // 车厢号
  13643. BYTE byReserved[1024]; // 保留字节
  13644. }ALARM_SUB_WAY_CAB_COVER_INFO;
  13645. ///@brief 地铁检测到障碍物或脱轨 对应 DH_ALARM_SUB_WAY_DERA_OBST 报警
  13646. typedef struct tagALARM_SUB_WAY_DERA_OBST_INFO
  13647. {
  13648. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  13649. int nEventID; // 事件ID
  13650. double dbPTS; // 时间戳(单位是毫秒)
  13651. NET_TIME_EX stuTime; // 事件发生的时间
  13652. BOOL bState; // 状态,TRUE表示检测到障碍物或脱轨,FALSE表示未检测到障碍物或脱轨
  13653. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE emCarriageNumber; // 车厢号
  13654. BYTE byReserved[1024]; // 保留字节
  13655. }ALARM_SUB_WAY_DERA_OBST_INFO;
  13656. ///@brief 地铁客室报警器状态 对应 DH_ALARM_SUB_WAY_PECU_CALL 报警
  13657. typedef struct tagALARM_SUB_WAY_PECU_CALL_INFO
  13658. {
  13659. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  13660. int nEventID; // 事件ID
  13661. double dbPTS; // 时间戳(单位是毫秒)
  13662. NET_TIME_EX stuTime; // 事件发生的时间
  13663. int nCallNumber; // 报警器号
  13664. BOOL bState; // 状态,TRUE表示报警,FALSE表示无报警
  13665. EM_SUB_WAY_CARRIAGE_NUMBER_TYPE emCarriageNumber; // 车厢号
  13666. BYTE byReserved[1024]; // 保留字节
  13667. }ALARM_SUB_WAY_PECU_CALL_INFO;
  13668. ///@brief 人为关门结构体对应 DH_ALARM_DOOR_CLOSEDMANUALLY 报警
  13669. typedef struct tagALARM_DOOR_CLOSEDMANUALLY_INFO
  13670. {
  13671. int nAction; // 事件动作,-1未知1表示持续性事件开始,2表示持续性事件结束
  13672. int nEventID; // 事件ID
  13673. double dbPTS; // 时间戳(单位是毫秒)
  13674. NET_TIME_EX stuTime; // 事件发生的时间
  13675. int nDoor; // 门通道号
  13676. char szDoorName[DH_MAX_DOORNAME_LEN]; // 门禁名称
  13677. BYTE byReserved[1024]; // 保留字节
  13678. }ALARM_DOOR_CLOSEDMANUALLY_INFO;
  13679. ///@brief 门超长时间未关对应 DH_ALARM_DOOR_NOTCLOSED_LONGTIME 报警
  13680. typedef struct tagALARM_DOOR_NOTCLOSED_LONGTIME_INFO
  13681. {
  13682. int nAction; // 事件动作,-1未知1表示持续性事件开始,2表示持续性事件结束
  13683. int nEventID; // 事件ID
  13684. double dbPTS; // 时间戳(单位是毫秒)
  13685. NET_TIME_EX stuTime; // 事件发生的时间
  13686. int nDoor; // 门通道号
  13687. char szDoorName[DH_MAX_DOORNAME_LEN]; // 门禁名称
  13688. BYTE byReserved[1024]; // 保留字节
  13689. }ALARM_DOOR_NOTCLOSED_LONGTIME_INFO;
  13690. ///@brief 剪断报警信息,对应DH_ALARM_CUT_LINE报警
  13691. typedef struct tagALARM_CUT_LINE_INFO
  13692. {
  13693. int nChannel; // 通道号
  13694. int nAction; // 事件动作,-1表示未知动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  13695. NET_TIME_EX stuTime; // 事件发生的时间
  13696. BYTE byReserved[1024]; // 保留字节
  13697. } ALARM_CUT_LINE_INFO;
  13698. ///@brief 断纤报警信息,对应 DH_ALARM_FIBRE_OPTIC_ABORT 报警
  13699. typedef struct tagALARM_FIBRE_OPTIC_ABORT
  13700. {
  13701. int nAlarmIn; // 报警输入号
  13702. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  13703. NET_TIME_EX UTC; // 事件发生的时间
  13704. BYTE byReserved[1024]; // 保留字节
  13705. }ALARM_FIBRE_OPTIC_ABORT;
  13706. ///@brief 尾随报警事件信息,对应 DH_ALARM_TAIL_DETECTION 报警
  13707. typedef struct tagALARM_TAIL_DETECTION_INFO
  13708. {
  13709. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  13710. int nChannelID; // 通道号
  13711. double dbPTS; // 时间戳(单位是毫秒)
  13712. NET_TIME_EX stuTime; // 事件发生的时间
  13713. int nEventID; // 事件ID
  13714. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  13715. // 缺省时为空字符串,表示无此信息
  13716. // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
  13717. BYTE byReserved[992]; // 保留字节
  13718. }ALARM_TAIL_DETECTION_INFO;
  13719. ///@brief 近距离接触报警信息,对应DH_ALARM_NEAR_DISTANCE_DETECTION 报警
  13720. typedef struct tagALARM_NEAR_DISTANCE_INFO
  13721. {
  13722. int nChannel; // 通道号
  13723. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  13724. int nEventID; // 事件ID
  13725. double dbPTS; // 时间戳(单位是毫秒)
  13726. NET_TIME_EX stuTime; // 事件发生的时间
  13727. BYTE byReserved[1024]; // 保留字节
  13728. } ALARM_NEAR_DISTANCE_INFO;
  13729. ///@brief 立体视觉站立事件区域内人员列表
  13730. typedef struct tagMAN_STAND_LIST_INFO
  13731. {
  13732. DH_POINT stuCenter; // 站立人员所在位置,8192坐标系
  13733. char szSerialUUID[22]; // 智能物体全局唯一物体标识
  13734. // 有效数据位21位,包含’\0’
  13735. // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
  13736. // 中间14位YYYYMMDDhhmmss:年月日时分秒
  13737. // 后5位%u%u%u%u%u:物体ID,如00001
  13738. DH_RECT stuBoundingBox; // 包围盒
  13739. char szReversed[90]; // 保留字节
  13740. } MAN_STAND_LIST_INFO;
  13741. ///@brief 立体视觉站立报警信息,对应DH_ALARM_MAN_STAND_DETECTION 报警
  13742. typedef struct tagALARM_MAN_STAND_INFO
  13743. {
  13744. int nChannel; // 通道号
  13745. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  13746. int nEventID; // 事件ID
  13747. double dbPTS; // 时间戳(单位是毫秒)
  13748. NET_TIME_EX stuTime; // 事件发生的时间
  13749. int nManListCount; // 区域人员列表数量
  13750. MAN_STAND_LIST_INFO stuManList[MAX_MAN_LIST_COUNT]; // 区域内人员列表
  13751. BYTE byReserved[1024]; // 保留字节
  13752. } ALARM_MAN_STAND_INFO;
  13753. ///@brief 立体视觉区域内人数统计事件区域人员列表
  13754. typedef struct tagMAN_NUM_LIST_INFO
  13755. {
  13756. DH_RECT stuBoudingBox; // 人员包围盒,8192坐标系
  13757. int nStature; // 人员身高,单位cm
  13758. char szReversed[128]; // 保留字节
  13759. } MAN_NUM_LIST_INFO;
  13760. ///@brief 立体视觉区域内人数统计报警,对应DH_ALARM_MAN_NUM_DETECTION 报警
  13761. typedef struct tagALARM_MAN_NUM_INFO
  13762. {
  13763. int nChannel; // 通道号
  13764. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  13765. int nEventID; // 事件ID
  13766. double dbPTS; // 时间戳(单位是毫秒)
  13767. NET_TIME_EX stuTime; // 事件发生的时间
  13768. int nManListCount; // 区域人员列表数量
  13769. MAN_NUM_LIST_INFO stuManList[MAX_MAN_LIST_COUNT]; // 区域内人员列表
  13770. char szName[128]; // 事件名称
  13771. UINT nPrevNumber; // 变化前人数
  13772. UINT nCurrentNumber; // 当前人数
  13773. char szRuleName[128]; // 规则名称
  13774. UINT nAlertNum; // 实际触发报警的人数
  13775. int nAlarmType; // 报警类型. 0:未知, 1:从人数正常到人数异常, 2:从人数异常到人数正常
  13776. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  13777. BYTE byReserved[752]; // 保留字节
  13778. } ALARM_MAN_NUM_INFO;
  13779. ///@brief 相机码流大于通道解码规格报警信息,对应DH_ALARM_BITRATES_OVERLIMIT 报警
  13780. typedef struct tagALARM_BITRATES_OVERLIMIT_INFO
  13781. {
  13782. int nChannel; // 视频通道号
  13783. int nAction; // 事件动作,1表示报警开始,2表示报警结束;
  13784. int nLimitBps; // 限制码率,单位Kbps
  13785. int nCurrentBps; // 当前码率,单位Kbps
  13786. BYTE byReserved[1024]; // 保留字节
  13787. }ALARM_BITRATES_OVERLIMIT_INFO;
  13788. ///@brief 声音高分贝检测报警信息,对应 DH_ALARM_HIGH_DECIBEL 报警
  13789. typedef struct tagALARM_HIGH_DECIBEL_INFO
  13790. {
  13791. int nAudioChannel; // 音频通道号
  13792. int nAction; // 事件动作,0表示脉冲事件,1表示报警开始,2表示报警结束;
  13793. NET_TIME_EX stuTime; // 事件发生的时间
  13794. BYTE byReserved[1024]; // 保留字节
  13795. }ALARM_HIGH_DECIBEL_INFO;
  13796. ///@brief 摇晃检测报警信息,对应 DH_ALARM_SHAKE_DETECTION 报警
  13797. typedef struct tagALARM_SHAKE_DETECTION_INFO
  13798. {
  13799. int nAction; // 事件动作,0表示脉冲事件,1表示报警开始,2表示报警结束;
  13800. NET_TIME_EX stuTime; // 事件发生的时间
  13801. BYTE byReserved[1024]; // 保留字节
  13802. }ALARM_SHAKE_DETECTION_INFO;
  13803. ///@brief 控制方式
  13804. typedef enum tagNET_ACCESS_METHOD
  13805. {
  13806. NET_ACCESS_METHOD_UNKNOWN, // 未知
  13807. NET_ACCESS_METHOD_CARD, // 卡
  13808. NET_ACCESS_METHOD_PASSWORD, // 密码
  13809. NET_ACCESS_METHOD_FINGERPRINT, // 信息
  13810. } NET_ACCESS_METHOD;
  13811. ///@brief 恶意开门事件, 对应 DH_ALARM_ACCESS_CTL_MALICIOUS
  13812. typedef struct tagALARM_ACCESS_CTL_MALICIOUS
  13813. {
  13814. int nAction; // 事件动作,0表示脉冲事件,1表示报警开始,2表示报警结束;
  13815. NET_TIME_EX stuTime; // 事件发生的时间
  13816. NET_ACCESS_METHOD emMethod; // 开门方式
  13817. char szSerialNum[MAX_COMMON_STRING_32]; // 无线配件序列号
  13818. int nChannel; // 门通道号
  13819. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  13820. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  13821. BYTE byReserved[970]; // 保留字节
  13822. }ALARM_ACCESS_CTL_MALICIOUS;
  13823. ///@brief 用户已注册事件, 对应 DH_ALARM_ACCESS_CTL_USERID_REGISTER
  13824. typedef struct tagALARM_ACCESS_CTL_USERID_REGISTER
  13825. {
  13826. int nAction; // 事件动作,0表示脉冲事件,1表示报警开始,2表示报警结束;
  13827. NET_TIME_EX stuTime; // 事件发生的时间
  13828. char UserID[DH_USER_NAME_LEN_EX]; // 用户名
  13829. NET_ACCESS_METHOD emMethod; // 注册方式
  13830. char szSerialNum[MAX_COMMON_STRING_32]; // 智能锁序列号
  13831. BYTE byReserved[1024]; // 保留字节
  13832. }ALARM_ACCESS_CTL_USERID_REGISTER;
  13833. ///@brief 上锁方式
  13834. typedef enum tagNET_ACCESS_CTL_LOCKTYPE
  13835. {
  13836. NET_ACCESS_CTL_LOCKTYPE_UNKNOWN, // 未知
  13837. NET_ACCESS_CTL_LOCKTYPE_DEADBOLT, // 方舌
  13838. NET_ACCESS_CTL_LOCKTYPE_STAYBOLT, // 呆舌
  13839. }NET_ACCESS_CTL_LOCKTYPE;
  13840. ///@brief 锁体信息上报事件, 对应 DH_ALARM_ACCESS_CTL_REVERSELOCK
  13841. typedef struct tagALARM_ACCESS_CTL_REVERSELOCK
  13842. {
  13843. int nAction; // 事件动作,0表示脉冲事件,1表示报警开始,2表示报警结束;
  13844. NET_TIME_EX stuTime; // 事件发生的时间
  13845. BOOL bStatus; // 上锁结果
  13846. NET_ACCESS_CTL_LOCKTYPE emMethod; // 上锁方式
  13847. char szSerialNum[MAX_COMMON_STRING_32]; // 智能锁序列号
  13848. BYTE byReserved[1024]; // 保留字节
  13849. }ALARM_ACCESS_CTL_REVERSELOCK;
  13850. ///@brief 删除用户上报事件, 对应 DH_ALARM_ACCESS_CTL_USERID_DELETE
  13851. typedef struct tagALARM_ACCESS_CTL_USERID_DELETE
  13852. {
  13853. int nAction; // 事件动作,0表示脉冲事件,1表示报警开始,2表示报警结束;
  13854. NET_TIME_EX stuTime; // 事件发生的时间
  13855. NET_ACCESS_METHOD emMethod; // 注册方式
  13856. char szSerialNum[MAX_COMMON_STRING_32]; // 智能锁序列号
  13857. BYTE byReserved[1024]; // 保留字节
  13858. }ALARM_ACCESS_CTL_USERID_DELETE;
  13859. ///@brief 事件类型DH_ALARM_ACCESS_DOOR_BELL(响铃事件)对应的数据描述信息
  13860. typedef struct tagALARM_ACCESS_DOOR_BELL_INFO
  13861. {
  13862. int nChannelID; // 通道号
  13863. NET_TIME_EX stuTime; // 事件发生的UTC 时间
  13864. char szName[DH_MAX_NAME_LEN]; // 门禁名称
  13865. char szWirelessDevSN[DH_MAX_ACCESS_NAME_LEN]; // 无线设备序列号
  13866. BYTE bReserved[512]; // 保留字节
  13867. }ALARM_ACCESS_DOOR_BELL_INFO;
  13868. ///@brief 事件类型DH_ALARM_ACCESS_FACTORY_RESET(门锁恢复出厂设置)对应的描述信息
  13869. typedef struct tagALARM_ACCESS_FACTORY_RESET_INFO
  13870. {
  13871. NET_TIME_EX stuTime; // 事件发生的UTC 时间
  13872. char szSmartLockSN[DH_MAX_ACCESS_NAME_LEN]; // 智能锁序列号
  13873. BYTE bReserved[512]; // 保留字节
  13874. }ALARM_ACCESS_FACTORY_RESET_INFO;
  13875. ///@brief 柜门开关动作类型
  13876. typedef enum tagEM_NET_CABINET_SWITCH_ACTION_TYPE
  13877. {
  13878. NET_CABINET_SWITCH_ACTION_TYPE_UNKNOWN, // 未知
  13879. NET_CABINET_SWITCH_ACTION_TYPE_OPEN, // 开柜门
  13880. NET_CABINET_SWITCH_ACTION_TYPE_CLOSE, // 关柜门
  13881. } EM_NET_CABINET_SWITCH_ACTION_TYPE;
  13882. // 存放设备关联的视频监控通道最大数量
  13883. #define MAX_LINK_CHANNEL_NUMBER 16
  13884. ///@brief 云柜设备发送的物品存放单号信息实时上报事件(DH_ALARM_CABINET)
  13885. typedef struct tagALARM_CABINET_INFO
  13886. {
  13887. int nAction; // 0:Pulse,1:Start,2:Stop,3:State
  13888. NET_TIME_EX stuTime; // 事件发生的时间
  13889. EM_NET_CABINET_SWITCH_ACTION_TYPE emType; // 柜门开关动作类型
  13890. char szSerialNo[MAX_COMMON_STRING_32]; // 物品序列号
  13891. int nLinkChannelNum; // 存放设备关联的视频监控通道数量
  13892. int nLinkChannel[MAX_LINK_CHANNEL_NUMBER]; // 存放设备关联的视频监控通道
  13893. BYTE byReserved[1024]; // 保留
  13894. } ALARM_CABINET_INFO;
  13895. ///@brief 事件类型DH_SWITCH_SCREEN (切换屏幕事件 )对应的描述信息
  13896. typedef struct tagDH_SWITCH_SCREEN_INFO
  13897. {
  13898. int nChannelID; //通道号
  13899. BYTE bReserved[512];
  13900. }DH_SWITCH_SCREEN_INFO;
  13901. #define MAX_EVENT_INFO_LEN 128 // 事件详细信息最大长度
  13902. ///@brief 微云常规容量事件信息, 对应 DH_MCS_GENERAL_CAPACITY_LOW
  13903. typedef struct tagALARM_MCS_GENERAL_CAPACITY_LOW_INFO
  13904. {
  13905. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13906. BYTE byReserved[1024]; // 保留字节
  13907. }ALARM_MCS_GENERAL_CAPACITY_LOW_INFO;
  13908. ///@brief 微云存储节点下线事件信息, 对应 DH_MCS_DATA_NODE_OFFLINE
  13909. typedef struct tagALARM_MCS_DATA_NODE_OFFLINE_INFO
  13910. {
  13911. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13912. BYTE byReserved[1024]; // 保留字节
  13913. }ALARM_MCS_DATA_NODE_OFFLINE_INFO;
  13914. ///@brief 微云磁盘下线事件信息, 对应 DH_MCS_DISK_OFFLINE
  13915. typedef struct tagALARM_MCS_DISK_OFFLINE_INFO
  13916. {
  13917. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13918. BYTE byReserved[1024]; // 保留字节
  13919. }ALARM_MCS_DISK_OFFLINE_INFO;
  13920. ///@brief 微云磁盘变慢事件信息, 对应 DH_MCS_DISK_SLOW
  13921. typedef struct tagALARM_MCS_DISK_SLOW_INFO
  13922. {
  13923. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13924. BYTE byReserved[1024]; // 保留字节
  13925. }ALARM_MCS_DISK_SLOW_INFO;
  13926. ///@brief 微云磁盘损坏事件信息, 对应 DH_MCS_DISK_BROKEN
  13927. typedef struct tagALARM_MCS_DISK_BROKEN_INFO
  13928. {
  13929. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13930. BYTE byReserved[1024]; // 保留字节
  13931. }ALARM_MCS_DISK_BROKEN_INFO;
  13932. ///@brief 微云磁盘未知错误事件信息, 对应 DH_MCS_DISK_UNKNOW_ERROR
  13933. typedef struct tagALARM_MCS_DISK_UNKNOW_ERROR_INFO
  13934. {
  13935. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13936. BYTE byReserved[1024]; // 保留字节
  13937. }ALARM_MCS_DISK_UNKNOW_ERROR_INFO;
  13938. ///@brief 微云元数据服务器异常事件信息, 对应 DH_MCS_METADATA_SERVER_ABNORMAL
  13939. typedef struct tagALARM_MCS_METADATA_SERVER_ABNORMAL_INFO
  13940. {
  13941. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13942. BYTE byReserved[1024]; // 保留字节
  13943. }ALARM_MCS_METADATA_SERVER_ABNORMAL_INFO;
  13944. ///@brief 微云目录服务器异常事件信息, 对应 DH_MCS_CATALOG_SERVER_ABNORMAL
  13945. typedef struct tagALARM_MCS_CATALOG_SERVER_ABNORMAL_INFO
  13946. {
  13947. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13948. BYTE byReserved[1024]; // 保留字节
  13949. }ALARM_MCS_CATALOG_SERVER_ABNORMAL_INFO;
  13950. ///@brief 微云常规容量恢复事件信息信息, 对应 DH_MCS_GENERAL_CAPACITY_RESUME
  13951. typedef struct tagALARM_MCS_GENERAL_CAPACITY_RESUME_INFO
  13952. {
  13953. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13954. BYTE byReserved[1024]; // 保留字节
  13955. }ALARM_MCS_GENERAL_CAPACITY_RESUME_INFO;
  13956. ///@brief 微云存储节点上线事件信息, 对应 DH_MCS_DATA_NODE_ONLINE
  13957. typedef struct tagALARM_MCS_DATA_NODE_ONLINE_INFO
  13958. {
  13959. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13960. BYTE byReserved[1024]; // 保留字节
  13961. }ALARM_MCS_DATA_NODE_ONLINE_INFO;
  13962. ///@brief 微云磁盘上线事件信息, 对应 DH_MCS_DISK_ONLINE
  13963. typedef struct tagALARM_MCS_DISK_ONLINE_INFO
  13964. {
  13965. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13966. BYTE byReserved[1024]; // 保留字节
  13967. }ALARM_MCS_DISK_ONLINE_INFO;
  13968. ///@brief 微云元数据备机上线事件信息, 对应 DH_MCS_METADATA_SLAVE_ONLINE
  13969. typedef struct tagALARM_MCS_METADATA_SLAVE_ONLINE_INFO
  13970. {
  13971. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13972. BYTE byReserved[1024]; // 保留字节
  13973. }ALARM_MCS_METADATA_SLAVE_ONLINE_INFO;
  13974. ///@brief 微云目录服务器上线事件, 对应 DH_MCS_CATALOG_SERVER_ONLINE
  13975. typedef struct tagALARM_MCS_CATALOG_SERVER_ONLINE_INFO
  13976. {
  13977. char szEventInfo[MAX_EVENT_INFO_LEN]; // 事件详细信息
  13978. BYTE byReserved[1024]; // 保留字节
  13979. }ALARM_MCS_CATALOG_SERVER_ONLINE_INFO;
  13980. //////////////////////////////ATM支持//////////////////////////////////
  13981. ///@brief 每个FRAME ID 选项
  13982. typedef struct
  13983. {
  13984. int Offset; // 标志位的位偏移
  13985. int Length; // 标志位的长度
  13986. char Key[16]; // 标志位的值
  13987. } DH_SNIFFER_FRAMEID;
  13988. ///@brief 每个FRAME对应的4个抓包内容
  13989. typedef struct
  13990. {
  13991. int Offset; // 标志位的位偏移
  13992. int Offset2; // 目前没有应用
  13993. int Length; // 标志位的长度
  13994. int Length2; // 目前没有应用
  13995. char Title[12]; // 标题的值
  13996. char Key[12]; // 关键字的值
  13997. } DH_SNIFFER_CONTENT;
  13998. ///@brief 网络抓包配置
  13999. typedef struct
  14000. {
  14001. DH_SNIFFER_FRAMEID snifferFrameId; // 每个FRAME ID 选项
  14002. DH_SNIFFER_CONTENT snifferContent[DH_SNIFFER_CONTENT_NUM]; // 每个FRAME对应的4个抓包内容
  14003. } DH_SNIFFER_FRAME;
  14004. ///@brief 每组抓包对应的配置结构
  14005. typedef struct
  14006. {
  14007. char SnifferSrcIP[DH_MAX_IPADDR_LEN]; // 抓包源地址
  14008. int SnifferSrcPort; // 抓包源端口
  14009. char SnifferDestIP[DH_MAX_IPADDR_LEN]; // 抓包目标地址
  14010. int SnifferDestPort; // 抓包目标端口
  14011. char reserved[28]; // 保留字段
  14012. DH_SNIFFER_FRAME snifferFrame[DH_SNIFFER_FRAMEID_NUM]; // 6个FRAME 选项
  14013. int displayPosition; // 显示位置
  14014. int recdChannelMask; // 通道掩码
  14015. } DH_ATM_SNIFFER_CFG;
  14016. ///@brief sniffer配置
  14017. typedef struct
  14018. {
  14019. DWORD dwSize;
  14020. DH_ATM_SNIFFER_CFG SnifferConfig[4];
  14021. char reserved[256]; // 保留字段
  14022. } DHDEV_SNIFFER_CFG;
  14023. typedef DH_SNIFFER_FRAMEID DH_SNIFFER_FRAMEID_EX;
  14024. typedef DH_SNIFFER_CONTENT DH_SNIFFER_CONTENT_EX;
  14025. ///@brief 网络抓包配置
  14026. typedef struct
  14027. {
  14028. DH_SNIFFER_FRAMEID snifferFrameId; // 每个FRAME ID 选项
  14029. DH_SNIFFER_CONTENT snifferContent[DH_SNIFFER_CONTENT_NUM_EX]; // 每个FRAME对应的8个抓包内容
  14030. } DH_SNIFFER_FRAME_EX;
  14031. ///@brief 每组抓包对应的配置结构
  14032. typedef struct
  14033. {
  14034. char SnifferSrcIP[DH_MAX_IPADDR_LEN]; // 抓包源地址
  14035. int SnifferSrcPort; // 抓包源端口
  14036. char SnifferDestIP[DH_MAX_IPADDR_LEN]; // 抓包目标地址
  14037. int SnifferDestPort; // 抓包目标端口
  14038. DH_SNIFFER_FRAME_EX snifferFrame[DH_SNIFFER_FRAMEID_NUM]; // 6个FRAME 选项
  14039. int displayPosition; // 显示位置
  14040. int recdChannelMask; // 通道掩码 0 ~ 31 通道
  14041. BOOL bDateScopeEnable; // 数据来源使能
  14042. BOOL bProtocolEnable; // 协议使能
  14043. char szProtocolName[DH_SNIFFER_PROTOCOL_SIZE]; // 协议名字
  14044. int nSnifferMode; // 抓包方式,0:net,1:232.
  14045. int recdChannelMask1; // 通道掩码 32 ~ 63 通道
  14046. char reserved[252];
  14047. } DH_ATM_SNIFFER_CFG_EX;
  14048. #define ATM_MAX_TRADE_TYPE_NAME 64
  14049. #define ATM_MAX_TRADE_NUM 1024
  14050. ///@brief Atm交易类型查询返回结构体
  14051. typedef struct __DH_ATM_QUERY_TRADE
  14052. {
  14053. int nTradeTypeNum; // 实际交易类型数量
  14054. int nExceptionTypeNum; // 实际异常事件数量
  14055. char szSupportTradeType[ATM_MAX_TRADE_NUM][ATM_MAX_TRADE_TYPE_NAME]; // 交易事件名数组
  14056. char szSupportExceptionType[ATM_MAX_TRADE_NUM][ATM_MAX_TRADE_TYPE_NAME];// 异常事件名数组
  14057. } DH_ATM_QUERY_TRADE, *LPDH_ATM_QUERY_TRADE;
  14058. /////////////////////////////解码器支持/////////////////////////////////
  14059. #define nEncoderID nDecoderID
  14060. #define byEncoderID byDecoderID
  14061. ///@brief 解码器信息
  14062. typedef struct __DEV_DECODER_INFO
  14063. {
  14064. char szDecType[64]; // 类型
  14065. int nMonitorNum; // TV个数
  14066. int nEncoderNum; // 解码通道个数
  14067. BYTE szSplitMode[16]; // 支持的TV画面分割数,以数组形式表示,0为结尾
  14068. BYTE bMonitorEnable[16]; // 各TV使能
  14069. BYTE bTVTipDisplay; // 指示是否支持TV提示信息叠加设置, 0:不支持 1:支持.
  14070. BYTE reserved1[3];
  14071. BYTE byLayoutEnable[48]; // 各解码通道显示叠加信息使能
  14072. DWORD dwLayoutEnMask[2]; // 各解码通道显示叠加信息使能掩码,从低位到高位支持64个通道,其中dwLayoutEnMask[0]是低32位
  14073. char reserved[4];
  14074. } DEV_DECODER_INFO, *LPDEV_DECODER_INFO;
  14075. ///@brief 连接的编码器信息
  14076. typedef struct __DEV_ENCODER_INFO
  14077. {
  14078. char szDevIp[DH_MAX_IPADDR_LEN]; // 前端DVR的IP地址
  14079. WORD wDevPort; // 前端DVR的端口号
  14080. BYTE bDevChnEnable; // 解码通道使能
  14081. BYTE byDecoderID; // 该字段已废弃,后续开发请用 dwDecoderID
  14082. char szDevUser[DH_USER_NAME_LENGTH_EX]; // 用户名
  14083. char szDevPwd[DH_USER_PSW_LENGTH_EX]; // 密码
  14084. int nDevChannel; // 通道号
  14085. int nStreamType; // 码流类型,0:主码流;1:辅码流1; 2:snap; 3: 辅码流2
  14086. BYTE byConnType; // -1: auto, 0:TCP;1:UDP;2:组播
  14087. BYTE byWorkMode; // 0:直连;1:转发
  14088. WORD wListenPort; // 指示侦听服务的端口,转发时有效
  14089. DWORD dwProtoType; // 协议类型,
  14090. // 0:兼容以前
  14091. // 1:二代协议
  14092. // 2:集成协议
  14093. // 3:DSS协议
  14094. // 4:rtsp协议
  14095. char szDevName[64]; // 前端设备名称
  14096. BYTE byVideoInType; // 该解码通道当前视频源类型:0-标清(SD),1-高清(HD),注:设备支持高清通道才有效
  14097. char szDevIpEx[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // szDevIp扩展,前端DVR的IP地址(可以输入域名)
  14098. BYTE bySnapMode; // 抓图模式(nStreamType==2时有效) 0:表示请求一帧,1:表示定时发送请求
  14099. BYTE byManuFactory; // 目标设备的生产厂商,具体参考EM_IPC_TYPE类
  14100. BYTE byDeviceType; // 目标设备的设备类型,0:IPC
  14101. BYTE byDecodePolicy; // 目标设备的解码策略,0:兼容以前
  14102. // 1:实时等级高 2:实时等级中
  14103. // 3:实时等级低 4:默认等级
  14104. // 5:流畅等级高 6:流畅等级中
  14105. // 7:流畅等级低
  14106. BYTE bReserved[3]; // 保留字节
  14107. DWORD dwHttpPort; // Http端口号,0-65535
  14108. DWORD dwRtspPort; // Rtsp端口号,0-65535
  14109. char szChnName[32]; // 远程通道名称, 只有读取到的名称不为空时才可以修改该通道的名称
  14110. DWORD dwDecoderID; // 对应解码通道号
  14111. } DEV_ENCODER_INFO, *LPDEV_ENCODER_INFO;
  14112. ///@brief 解码器rtsp url配置
  14113. typedef struct __DHDEV_DECODER_URL_CFG
  14114. {
  14115. DWORD dwSize;
  14116. char szMainStreamUrl[MAX_PATH]; // 主码流url
  14117. char szExtraStreamUrl[MAX_PATH]; // 辅码流url
  14118. } DHDEV_DECODER_URL_CFG;
  14119. ///@brief 显示通道
  14120. typedef enum tagDH_SPLIT_DISPLAY_TYPE
  14121. {
  14122. DH_SPLIT_DISPLAY_TYPE_GENERAL=1, // 普通显示类型
  14123. DH_SPLIT_DISPLAY_TYPE_PIP=2, // 画中画显示类型
  14124. DH_SPLIT_DISPLAY_TYPE_CUSTOM=3, // 自由组合分割模式
  14125. } DH_SPLIT_DISPLAY_TYPE;
  14126. ///@brief CLIENT_CtrlDecTVScreen 接口参数
  14127. typedef struct tagDH_CTRL_DECTV_SCREEN
  14128. {
  14129. DWORD dwSize; // 结构体大小
  14130. int nSplitType; // 分割模式
  14131. BYTE * pEncoderChannel; // 显示通道,dwDisplayType=DH_SPLIT_DISPLAY_TYPE_GENERAL时有效,由用户申请内存,调用者分配的内存长度不能小于nSplitType的大小
  14132. BYTE byGroupNo; // 输入通道组号,dwDisplayType=DH_SPLIT_DISPLAY_TYPE_PIP时表示画中画显示类型下有效;
  14133. char reserved[3]; // 保留字节
  14134. DWORD dwDisplayType; // 显示类型;具体见DH_SPLIT_DISPLAY_TYPE(注释各模式下显示内容由"PicInPic"决定, 各模式下显示内容按NVD旧有规则决定(即DisChn字段决定)。兼容,没有这一个项时,默认为普通显示类型,即"General")
  14135. }DH_CTRL_DECTV_SCREEN;
  14136. ///@brief TV参数信息
  14137. typedef struct __DEV_DECODER_TV
  14138. {
  14139. int nID; // TV号
  14140. BOOL bEnable; // 使能,开启或关闭
  14141. int nSplitType; // 画面分割数
  14142. DEV_ENCODER_INFO stuDevInfo[16]; // 各画面编码器信息dwDisplayType=DH_SPLIT_DISPLAY_TYPE_GENERAL时有效
  14143. BYTE bySupportSplit[10]; // 支持的分割模式
  14144. BYTE byGroupNo; // 输入通道组号,dwDisplayType=DH_SPLIT_DISPLAY_TYPE_PIP时表示画中画显示类型下有效;
  14145. char reserved[1]; // 保留字节
  14146. DWORD dwDisplayType; // 显示类型;具体见DH_SPLIT_DISPLAY_TYPE(注释各模式下显示内容由"PicInPic"决定, 各模式下显示内容按NVD旧有规则决定(即DisChn字段决定)。兼容,没有这一个项时,默认为普通显示类型,即"General")
  14147. } DEV_DECODER_TV, *LPDEV_DECODER_TV;
  14148. ///@brief 解码器画面组合信息
  14149. typedef struct __DEC_COMBIN_INFO
  14150. {
  14151. int nCombinID; // 组合ID
  14152. int nSplitType; // 画面分割数
  14153. BYTE bDisChn[16]; // 显示通道
  14154. char reserved[16];
  14155. } DEC_COMBIN_INFO, *LPDEC_COMBIN_INFO;
  14156. #define DEC_COMBIN_NUM 32 // 轮巡组合个数
  14157. ///@brief 解码器轮巡信息
  14158. typedef struct __DEC_TOUR_COMBIN
  14159. {
  14160. int nTourTime; // 轮巡间隔(秒)
  14161. int nCombinNum; // 组合个数
  14162. BYTE bCombinID[DEC_COMBIN_NUM]; // 组合表
  14163. char reserved1[32];
  14164. BYTE bCombinState[DEC_COMBIN_NUM]; // 组合项的使能状态,0:关;1:开
  14165. char reserved2[32];
  14166. } DEC_TOUR_COMBIN, *LPDEC_TOUR_COMBIN;
  14167. ///@brief 解码器回放类型
  14168. typedef enum __DEC_PLAYBACK_MODE
  14169. {
  14170. Dec_By_Device_File = 0, // 前端设备-按文件方式
  14171. Dec_By_Device_Time, // 前端设备-按时间方式
  14172. } DEC_PLAYBACK_MODE;
  14173. ///@brief 解码器回放控制类型
  14174. typedef enum __DEC_CTRL_PLAYBACK_TYPE
  14175. {
  14176. Dec_Playback_Seek = 0, // 拖动
  14177. Dec_Playback_Play, // 播放
  14178. Dec_Playback_Pause, // 暂停
  14179. Dec_Playback_Stop, // 停止
  14180. } DEC_CTRL_PLAYBACK_TYPE;
  14181. ///@brief 轮巡控制类型
  14182. typedef enum __DEC_CTRL_TOUR_TYPE
  14183. {
  14184. Dec_Tour_Stop = 0, // 停止
  14185. Dec_Tour_Start, // 开始
  14186. Dec_Tour_Pause, // 暂停
  14187. Dec_Tour_Resume, // 恢复
  14188. } DEC_CTRL_TOUR_TYPE;
  14189. ///@brief 按文件回放前端设备条件
  14190. typedef struct __DEC_PLAYBACK_FILE_PARAM
  14191. {
  14192. char szDevIp[DH_MAX_IPADDR_LEN]; // 前端DVR的IP地址
  14193. WORD wDevPort; // 前端DVR的端口号
  14194. BYTE bDevChnEnable; // 解码通道使能
  14195. BYTE byDecoderID; // 对应解码通道号
  14196. char szDevUser[DH_USER_NAME_LENGTH_EX]; // 用户名
  14197. char szDevPwd[DH_USER_PSW_LENGTH_EX]; // 密码
  14198. NET_RECORDFILE_INFO stuRecordInfo; // 录像文件信息
  14199. char reserved[12];
  14200. } DEC_PLAYBACK_FILE_PARAM, *LPDEC_PLAYBACK_FILE_PARAM;
  14201. ///@brief 按时间回放前端设备条件
  14202. typedef struct __DEC_PLAYBACK_TIME_PARAM
  14203. {
  14204. char szDevIp[DH_MAX_IPADDR_LEN]; // 前端DVR的IP地址
  14205. WORD wDevPort; // 前端DVR的端口号
  14206. BYTE bDevChnEnable; // 解码通道使能
  14207. BYTE byDecoderID; // 对应解码通道号
  14208. char szDevUser[DH_USER_NAME_LENGTH_EX]; // 用户名
  14209. char szDevPwd[DH_USER_PSW_LENGTH_EX]; // 密码
  14210. int nChannelID;
  14211. NET_TIME startTime;
  14212. NET_TIME endTime;
  14213. char reserved[12];
  14214. } DEC_PLAYBACK_TIME_PARAM, *LPDEC_PLAYBACK_TIME_PARAM;
  14215. ///@brief 当前解码通道状态信息(包括通道状态,解码流信息等)
  14216. typedef struct __DEV_DECCHANNEL_STATE
  14217. {
  14218. BYTE byDecoderID; // 对应解码通道号
  14219. BYTE byChnState; // 当前解码通道正在操作状态:0-空闲,1-实时预览,2-回放 3 - 轮巡
  14220. BYTE byFrame; // 当前数据帧率
  14221. BYTE byReserved; // 保留
  14222. int nChannelFLux; // 解码通道数据总量
  14223. int nDecodeFlux; // 解码数据量
  14224. char szResolution[16]; // 当前数据分辨率
  14225. char reserved[256];
  14226. } DEV_DECCHANNEL_STATE, *LPDEV_DECCHANNEL_STATE;
  14227. ///@brief 设备TV输出参数信息
  14228. typedef struct __DEV_VIDEOOUT_INFO
  14229. {
  14230. DWORD dwVideoStandardMask; // NSP,视频制式掩码,按位表示设备能够支持的视频制式(暂不支持)
  14231. int nVideoStandard; // NSP,当前的制式(暂不支持,请使用DHDEV_SYSTEM_ATTR_CFG的byVideoStandard对制式读取和配置)
  14232. DWORD dwImageSizeMask; // 分辨率掩码,按位表示设备能够支持的分辨率
  14233. int nImageSize; // 当前的分辨率
  14234. char reserved[256];
  14235. }DEV_VIDEOOUT_INFO, *LPDEV_VIDEOOUT_INFO;
  14236. ///@brief 调节TV输出
  14237. typedef struct __DEV_TVADJUST_CFG
  14238. {
  14239. int nTop; // 上测边距(0-100)
  14240. int nBotton; // 下测边距(0-100)
  14241. int nLeft; // 左测边距(0-100)
  14242. int nRight; // 右测边距(0-100)
  14243. int reserved[32];
  14244. }DHDEV_TVADJUST_CFG, *LPDHDEV_TVADJUST_CFG;
  14245. ///@brief 云台控制坐标单元
  14246. typedef struct tagPTZ_SPEED_UNIT
  14247. {
  14248. float fPositionX; //云台水平方向速率,归一化到-1~1
  14249. float fPositionY; //云台垂直方向速率,归一化到-1~1
  14250. float fZoom; //云台光圈放大倍率,归一化到 0~1
  14251. char szReserve[32]; //预留32字节
  14252. }PTZ_SPEED_UNIT;
  14253. ///@brief 云台控制(相对)坐标单元
  14254. typedef struct tagPTZ_SPACE_RELATIVELY_UNIT
  14255. {
  14256. float fPositionX; // 云台水平方向,有效范围-1~1
  14257. float fPositionY; // 云台垂直方向,有效范围-1~1
  14258. float fZoom; // 云台光圈放大倍率,有效范围-1~1
  14259. char szReserve[32]; // 预留32字节
  14260. } PTZ_SPACE_RELATIVELY_UNIT;
  14261. ///@brief 云台控制坐标单元
  14262. typedef struct tagPTZ_SPACE_UNIT
  14263. {
  14264. int nPositionX; //云台水平运动位置,有效范围:[0,3600]
  14265. int nPositionY; //云台垂直运动位置,有效范围:[-1800,1800]
  14266. int nZoom; //云台光圈变动位置,有效范围:[0,128]
  14267. char szReserve[32]; //预留32字节
  14268. }PTZ_SPACE_UNIT;
  14269. ///@brief 云台定位中非归一化坐标和变倍
  14270. typedef struct tagNET_PTZSPACE_UNNORMALIZED
  14271. {
  14272. int nPosX; // x坐标
  14273. int nPosY; // y坐标
  14274. int nZoom; // 放大倍率
  14275. BYTE byReserved[52]; // 预留字节
  14276. }NET_PTZSPACE_UNNORMALIZED;
  14277. ///@brief 解码轮巡配置
  14278. typedef struct __DEV_DECODER_TOUR_SINGLE_CFG
  14279. {
  14280. char szIP[128]; // 前端设备ip.例如"10.7.5.21". 保留对域名的支持.需要以'\0'结束.
  14281. int nPort; // 前端设备端口.(0, 65535).
  14282. int nPlayChn; // 请求前端设备通道[1, 16].
  14283. int nPlayType; // 请求前端码流类型, 0:主码流; 1:辅码流.
  14284. char szUserName[32]; // 登陆前端设备的用户名,需要以'\0'结束.
  14285. char szPassword[32]; // 登陆前端设备的密码,需要以'\0'结束.
  14286. int nInterval; // 轮巡间隔时间[10, 120],单位秒.
  14287. DWORD nManuFactory; // 目标设备厂商(枚举 详见IPC_TYPE)
  14288. UINT nHttpPport; // 目标设备的端口(Http端口)
  14289. UINT nRtspPort; // 目标设备的端口(Rtsp端口)
  14290. BYTE byServiceType; // 服务类型, -1: auto, 0:TCP;1:UDP;2:组播
  14291. BYTE bReserved[51]; // 保留字节,留待扩展.
  14292. }DHDEV_DECODER_TOUR_SINGLE_CFG;
  14293. ///@brief 配置
  14294. typedef struct __DEV_DECODER_TOUR_CFG
  14295. {
  14296. int nCfgNum; // 配置结构体数目. 现在最大支持32个.具体支持数目可以通过能力查询.
  14297. DHDEV_DECODER_TOUR_SINGLE_CFG tourCfg[64]; // 轮询配置数组,有效结构体个数由成员"nCfgNum"指定. 保留32个留待扩展.
  14298. BYTE bReserved[256]; // 保留字节,留待扩展.
  14299. }DHDEV_DECODER_TOUR_CFG;
  14300. /////////////////////////////智能支持/////////////////////////////////
  14301. ///@brief 物体对应图片文件信息
  14302. typedef struct
  14303. {
  14304. DWORD dwOffSet; // 文件在二进制数据块中的偏移位置, 单位:字节
  14305. DWORD dwFileLenth; // 文件大小, 单位:字节
  14306. WORD wWidth; // 图片宽度, 单位:像素
  14307. WORD wHeight; // 图片高度, 单位:像素
  14308. char* pszFilePath; // 鉴于历史原因,该成员只在事件上报时有效
  14309. // 文件路径
  14310. // 用户使用该字段时需要自行申请空间进行拷贝保存
  14311. BYTE bIsDetected; // 图片是否算法检测出来的检测过的提交识别服务器时,
  14312. // 则不需要再时检测定位抠图,1:检测过的,0:没有检测过
  14313. BYTE bReserved[2]; // 预留字节数
  14314. BYTE byQulityScore; // 目标抓拍质量分数, 0-100
  14315. int nFilePathLen; // 文件路径长度 既pszFilePath 用户申请的大小
  14316. DH_POINT stuPoint; // 小图左上角在大图的位置,使用绝对坐标系
  14317. UINT nIndexInData; // 在上传图片数据中的图片序号
  14318. }DH_PIC_INFO;
  14319. ///@brief 图片类型
  14320. typedef enum tagEM_IMAGE_TYPE_EX2
  14321. {
  14322. EM_IMAGE_TYPE_UNKNOWN, // 未知
  14323. EM_IMAGE_TYPE_SCENE_IMAGE, // 全景广角度
  14324. EM_IMAGE_TYPE_GLOBAL_SCENE, // 大图
  14325. EM_IMAGE_TYPE_THUM_IMAGE, // 大图(全景图)的缩略图
  14326. EM_IMAGE_TYPE_FACE_SCENE_IMAGE, // 目标全景图
  14327. EM_IMAGE_TYPE_FACE_IMAGE, // 目标图
  14328. EM_IMAGE_TYPE_HUMAN_IMAGE, // 人体图
  14329. EM_IMAGE_TYPE_ALONG_WITH_FACE_HUMAN_IMAGE, // 与最优目标同画面的人体图
  14330. EM_IMAGE_TYPE_ALONG_WITH_FACE_HUMAN_SCENE_IMAGE, // 与最优目标同画面人体的全景图
  14331. EM_IMAGE_TYPE_PARKING_IMAGE, // 车位抠图
  14332. EM_IMAGE_TYPE_BINARIZED_PLATE, // 车身特写抠图
  14333. EM_IMAGE_TYPE_DEPOSIT_IMAGE_INFO, // 格口抠图
  14334. EM_IMAGE_TYPE_IMAGE_INFO, // 普通图,图片名称未定义情况使用
  14335. }EM_IMAGE_TYPE_EX2;
  14336. ///@brief 图片信息
  14337. typedef struct tagNET_IMAGE_INFO_EX2
  14338. {
  14339. EM_IMAGE_TYPE_EX2 emType; // 图片类型
  14340. UINT nOffset; // 在二进制数据块中的偏移
  14341. UINT nLength; // 图片大小,单位:字节
  14342. char byReserverd[4]; // 用于字节对齐
  14343. char szPath[256]; // 图片存储位置
  14344. }NET_IMAGE_INFO_EX2;
  14345. ///@brief 图片扩展信息
  14346. typedef struct tagNET_IMAGE_INFO_EX3
  14347. {
  14348. EM_IMAGE_TYPE_EX2 emType; // 图片类型
  14349. UINT nOffset; // 在二进制数据块中的偏移
  14350. UINT nLength; // 图片大小,单位:字节
  14351. char byReserverd[4]; // 用于字节对齐
  14352. char szPath[256]; // 图片存储位置
  14353. char szEncryptKey[128]; // 二进制图片加密秘钥,设备传过来的是Base64编码之后的,SDK不做解码处理
  14354. BYTE byReserverd2[1024]; // 用于字节对齐
  14355. }NET_IMAGE_INFO_EX3;
  14356. ///@brief 图片信息(目前仅用于机动车和非机动车)
  14357. typedef struct tagNET_PIC_INFO_EX
  14358. {
  14359. UINT nLength; // 图片大小,单位:字节
  14360. UINT nWidth; // 图片宽度
  14361. UINT nHeight; // 图片高度
  14362. char byReserverd[4]; // 用于字节对齐
  14363. char szFilePath[256]; // 图片路径
  14364. char szReserverd[256]; // 保留字节
  14365. }NET_PIC_INFO_EX;
  14366. ///@brief 违章关联的多个视频信息
  14367. typedef struct tagNET_RELATING_VIDEO_INFO
  14368. {
  14369. char szVideoPath[256]; // 违章关联视频FTP上传路径
  14370. char szReserved[128]; // 保留字节
  14371. }NET_RELATING_VIDEO_INFO;
  14372. ///@brief 图片与智能事件信息
  14373. typedef struct tagNET_FILE_PROCESS_INFO
  14374. {
  14375. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  14376. int nImageInfoNum; // 图片信息个数
  14377. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  14378. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  14379. char szReserved[1024]; // 保留字节
  14380. }NET_FILE_PROCESS_INFO;
  14381. ///@brief 物体对应图片文件信息(包含图片路径)
  14382. typedef struct tagDH_PIC_INFO_EXX
  14383. {
  14384. DWORD dwSize;
  14385. char szFilePath[DH_COMMON_STRING_256]; // 鉴于历史原因,该成员在设置/获取时有效
  14386. // 文件路径
  14387. DH_PIC_INFO stuPicInfo; // 图片信息
  14388. }DH_PIC_INFO_EX2;
  14389. ///@brief 物体对应图片文件信息(包含图片路径)
  14390. typedef struct
  14391. {
  14392. DWORD dwOffSet; // 文件在二进制数据块中的偏移位置, 单位:字节
  14393. DWORD dwFileLenth; // 文件大小, 单位:字节
  14394. WORD wWidth; // 图片宽度, 单位:像素
  14395. WORD wHeight; // 图片高度, 单位:像素
  14396. char szFilePath[64]; // 文件路径
  14397. BYTE bIsDetected; // 图片是否算法检测出来的检测过的提交识别服务器时,
  14398. // 则不需要再时检测定位抠图,1:检测过的,0:没有检测过
  14399. BYTE bReserved[11]; // 保留
  14400. }DH_PIC_INFO_EX3;
  14401. #ifndef LINUX64_JNA
  14402. #pragma pack(push)
  14403. #pragma pack(4)
  14404. #endif
  14405. ///@brief 视频分析物体信息结构体
  14406. typedef struct
  14407. {
  14408. int nObjectID; // 物体ID,每个ID表示一个唯一的物体
  14409. char szObjectType[128]; // 物体类型
  14410. int nConfidence; // 置信度(0~100),值越大表示置信度越高
  14411. int nAction; // 物体动作:1:Appear 2:Move 3:Stay 4:Remove 5:Disappear 6:Split 7:Merge 8:Rename
  14412. DH_RECT BoundingBox; // 包围盒
  14413. DH_POINT Center; // 物体型心
  14414. int nPolygonNum; // 多边形顶点个数
  14415. DH_POINT Contour[DH_MAX_POLYGON_NUM]; // 较精确的轮廓多边形
  14416. DWORD rgbaMainColor; // 表示车牌、车身等物体主要颜色;按字节表示,分别为红、绿、蓝和透明度,例如:RGB值为(0,255,0),透明度为0时, 其值为0x00ff0000.
  14417. char szText[128]; // 物体上相关的带0结束符文本,比如车牌,集装箱号等等
  14418. // "ObjectType"为"Vehicle"或者"Logo"时(尽量使用Logo。Vehicle是为了兼容老产品)表示车标,支持:
  14419. // "Unknown"未知
  14420. // "Audi" 奥迪
  14421. // "Honda" 本田
  14422. // "Buick" 别克
  14423. // "Volkswagen" 大众
  14424. // "Toyota" 丰田
  14425. // "BMW" 宝马
  14426. // "Peugeot" 标致
  14427. // "Ford" 福特
  14428. // "Mazda" 马自达
  14429. // "Nissan" 尼桑(日产)
  14430. // "Hyundai" 现代
  14431. // "Suzuki" 铃木
  14432. // "Citroen" 雪铁龙
  14433. // "Benz" 奔驰
  14434. // "BYD" 比亚迪
  14435. // "Geely" 吉利
  14436. // "Lexus" 雷克萨斯
  14437. // "Chevrolet" 雪佛兰
  14438. // "Chery" 奇瑞
  14439. // "Kia" 起亚
  14440. // "Charade" 夏利
  14441. // "DF" 东风
  14442. // "Naveco" 依维柯
  14443. // "SGMW" 五菱
  14444. // "Jinbei" 金杯
  14445. // "JAC" 江淮
  14446. // "Emgrand" 帝豪
  14447. // "ChangAn" 长安
  14448. // "Great Wall" 长城
  14449. // "Skoda" 斯柯达
  14450. // "BaoJun" 宝骏
  14451. // "Subaru" 斯巴鲁
  14452. // "LandWind" 陆风
  14453. // "Luxgen" 纳智捷
  14454. // "Renault" 雷诺
  14455. // "Mitsubishi" 三菱
  14456. // "Roewe" 荣威
  14457. // "Cadillac" 凯迪拉克
  14458. // "MG" 名爵
  14459. // "Zotye" 众泰
  14460. // "ZhongHua" 中华
  14461. // "Foton" 福田
  14462. // "SongHuaJiang" 松花江
  14463. // "Opel" 欧宝
  14464. // "HongQi" 一汽红旗
  14465. // "Fiat" 菲亚特
  14466. // "Jaguar" 捷豹
  14467. // "Volvo" 沃尔沃
  14468. // "Acura" 讴歌
  14469. // "Porsche" 保时捷
  14470. // "Jeep" 吉普
  14471. // "Bentley" 宾利
  14472. // "Bugatti" 布加迪
  14473. // "ChuanQi" 传祺
  14474. // "Daewoo" 大宇
  14475. // "DongNan" 东南
  14476. // "Ferrari" 法拉利
  14477. // "Fudi" 福迪
  14478. // "Huapu" 华普
  14479. // "HawTai" 华泰
  14480. // "JMC" 江铃
  14481. // "JingLong" 金龙客车
  14482. // "JoyLong" 九龙
  14483. // "Karry" 开瑞
  14484. // "Chrysler" 克莱斯勒
  14485. // "Lamborghini" 兰博基尼
  14486. // "RollsRoyce" 劳斯莱斯
  14487. // "Linian" 理念
  14488. // "LiFan" 力帆
  14489. // "LieBao" 猎豹
  14490. // "Lincoln" 林肯
  14491. // "LandRover" 路虎
  14492. // "Lotus" 路特斯
  14493. // "Maserati" 玛莎拉蒂
  14494. // "Maybach" 迈巴赫
  14495. // "Mclaren" 迈凯轮
  14496. // "Youngman" 青年客车
  14497. // "Tesla" 特斯拉
  14498. // "Rely" 威麟
  14499. // "Lsuzu" 五十铃
  14500. // "Yiqi" 一汽
  14501. // "Infiniti" 英菲尼迪
  14502. // "YuTong" 宇通客车
  14503. // "AnKai" 安凯客车
  14504. // "Canghe" 昌河
  14505. // "HaiMa" 海马
  14506. // "Crown" 丰田皇冠
  14507. // "HuangHai" 黄海
  14508. // "JinLv" 金旅客车
  14509. // "JinNing" 精灵
  14510. // "KuBo" 酷博
  14511. // "Europestar" 莲花
  14512. // "MINI" 迷你
  14513. // "Gleagle" 全球鹰
  14514. // "ShiDai" 时代
  14515. // "ShuangHuan" 双环
  14516. // "TianYe" 田野
  14517. // "WeiZi" 威姿
  14518. // "Englon" 英伦
  14519. // "ZhongTong" 中通客车
  14520. // "Changan" 长安轿车
  14521. // "Yuejin" 跃进
  14522. // "Taurus" 金牛星
  14523. // "Alto" 奥拓
  14524. // "Weiwang" 威旺
  14525. // "Chenglong" 乘龙
  14526. // "Haige" 海格
  14527. // "Shaolin" 少林客车
  14528. // "Beifang" 北方客车
  14529. // "Beijing" 北京汽车
  14530. // "Hafu" 哈弗
  14531. // "BeijingTruck" 北汽货车
  14532. // "Besturn" 奔腾
  14533. // "ChanganBus" 长安客车
  14534. // "Dodge" 道奇
  14535. // "DongFangHong" 东方红
  14536. // "DongFengTruck" 东风货车
  14537. // "DongFengBus" 东风客车
  14538. // "MultiBrand" 多品牌
  14539. // "FotonTruck" 福田货车
  14540. // "FotonBus" 福田客车
  14541. // "GagcTruck" 广汽货车
  14542. // "HaFei" 哈飞
  14543. // "HowoBus" 豪沃客车
  14544. // "JACTruck" 江淮货车
  14545. // "JACBus" 江淮客车
  14546. // "JMCTruck" 江铃货车
  14547. // "JieFangTruck" 解放货车
  14548. // "JinBeiTruck" 金杯货车
  14549. // "KaiMaTruck" 凯马货车
  14550. // "CoasterBus" 柯斯达客车
  14551. // "MudanBus" 牡丹客车
  14552. // "NanJunTruck" 南骏货车
  14553. // "QingLing" 庆铃
  14554. // "NissanCivilian" 日产碧莲客车
  14555. // "NissanTruck" 日产货车
  14556. // "MitsubishiFuso" 三菱扶桑
  14557. // "SanyTruck" 三一货车
  14558. // "ShanQiTruck" 陕汽货车
  14559. // "ShenLongBus" 申龙客车
  14560. // "TangJunTruck" 唐骏货车
  14561. // "MicroTruck" 微货车
  14562. // "VolvoBus" 沃尔沃客车
  14563. // "LsuzuTruck" 五十铃货车
  14564. // "WuZhengTruck" 五征货车
  14565. // "Seat" 西雅特
  14566. // "YangZiBus" 扬子客车
  14567. // "YiqiBus" 一汽客车
  14568. // "YingTianTruck" 英田货车
  14569. // "YueJinTruck" 跃进货车
  14570. // "ZhongDaBus" 中大客车
  14571. // "ZxAuto"
  14572. // "ZhongQiWangPai" 重汽王牌
  14573. // "WAW" 奥驰
  14574. // "BeiQiWeiWang" 北汽威旺
  14575. // "BYDDaimler" 比亚迪戴姆勒
  14576. // "ChunLan" 春兰
  14577. // "DaYun" 大运
  14578. // "DFFengDu" 东风风度
  14579. // "DFFengGuang" 东风风光
  14580. // "DFFengShen" 东风风神
  14581. // "DFFengXing" 东风风行
  14582. // "DFLiuQi" 东风柳汽
  14583. // "DFXiaoKang" 东风小康
  14584. // "FeiChi" 飞驰
  14585. // "FordMustang" 福特野马
  14586. // "GuangQi" 广汽
  14587. // "GuangTong" 广通
  14588. // "HuiZhongTruck" 汇众重卡
  14589. // "JiangHuai" 江环
  14590. // "SunWin" 申沃
  14591. // "ShiFeng" 时风
  14592. // "TongXin" 同心
  14593. // "WZL" 五洲龙
  14594. // "XiWo" 西沃
  14595. // "XuGong" 徐工
  14596. // "JingGong" 精工
  14597. // "SAAB" 萨博
  14598. // "SanHuanShiTong" 三环十通
  14599. // "KangDi" 康迪
  14600. // "YaoLong" 耀隆
  14601. char szObjectSubType[62]; // 物体子类别,根据不同的物体类型,可以取以下子类型:
  14602. // Vehicle Category:"Unknown" 未知,"Motor" 机动车,"Non-Motor":非机动车,"Bus": 公交车,"Bicycle" 自行车,"Motorcycle":摩托车,"PassengerCar":客车,
  14603. // "LargeTruck":大货车, "MidTruck":中货车,"SaloonCar":轿车,"Microbus":面包车,"MicroTruck":小货车,"Tricycle":三轮车, "Passerby":行人
  14604. // "DregsCar":渣土车, "Excavator":挖掘车, "Bulldozer":推土车, "Crane":吊车, "PumpTruck":泵车, "MachineshopTruck":工程车, "Forklift"叉车, "Electricbike":二轮电瓶车
  14605. // Plate Category:"Unknown" 未知,"Normal" 蓝牌黑牌,"Yellow" 黄牌,"DoubleYellow" 双层黄尾牌,"Police" 警牌,"SAR" 港澳特区号牌,"Trainning" 教练车号牌
  14606. // "Personal" 个性号牌,"Agri" 农用牌,"Embassy" 使馆号牌,"Moto" 摩托车号牌,"Tractor" 拖拉机号牌,"Other" 其他号牌
  14607. // "Civilaviation"民航号牌,"Black"黑牌
  14608. // "PureNewEnergyMicroCar"纯电动新能源小车,"MixedNewEnergyMicroCar,"混合新能源小车,"PureNewEnergyLargeCar",纯电动新能源大车
  14609. // "MixedNewEnergyLargeCar"混合新能源大车
  14610. // Human Category:"Normal" 普通目标,"HideEye" 眼部遮挡,"HideNose" 鼻子遮挡,"HideMouth" 嘴部遮挡,"TankCar"槽罐车(装化学药品、危险品)
  14611. // "ExtinguisherGeneral"普通类型灭火器,8kg左右,"ExtinguisherHandpush"35kg推车式灭火器, "SignboardGeneral" 普通标识牌
  14612. // "SignboardStaticEletricity "静电标示牌, "SignboardOilCap"加油口盖标示牌,"RoadCone"路锥,"CoverPlate"盖子
  14613. WORD wColorLogoIndex; // 车标索引
  14614. WORD wSubBrand; // 车辆子品牌 需要通过映射表得到真正的子品牌 映射表详见开发手册
  14615. BYTE byReserved1;
  14616. bool bPicEnble; // 是否有物体对应图片文件信息
  14617. DH_PIC_INFO stPicInfo; // 物体对应图片信息
  14618. bool bShotFrame; // 是否是抓拍张的识别结果
  14619. bool bColor; // 物体颜色(rgbaMainColor)是否可用
  14620. BYTE byReserved2;
  14621. BYTE byTimeType; // 时间表示类型,详见EM_TIME_TYPE说明
  14622. NET_TIME_EX stuCurrentTime; // 针对视频浓缩,当前时间戳(物体抓拍或识别时,会将此识别智能帧附在一个视频帧或jpeg图片中,此帧所在原始视频中的出现时间)
  14623. NET_TIME_EX stuStartTime; // 开始时间戳(物体开始出现时)
  14624. NET_TIME_EX stuEndTime; // 结束时间戳(物体最后出现时)
  14625. DH_RECT stuOriginalBoundingBox; // 包围盒(绝对坐标)
  14626. DH_RECT stuSignBoundingBox; // 车标坐标包围盒
  14627. DWORD dwCurrentSequence; // 当前帧序号(抓下这个物体时的帧)
  14628. DWORD dwBeginSequence; // 开始帧序号(物体开始出现时的帧序号)
  14629. DWORD dwEndSequence; // 结束帧序号(物体消逝时的帧序号)
  14630. INT64 nBeginFileOffset; // 开始时文件偏移, 单位: 字节(物体开始出现时,视频帧在原始视频文件中相对于文件起始处的偏移)
  14631. INT64 nEndFileOffset; // 结束时文件偏移, 单位: 字节(物体消逝时,视频帧在原始视频文件中相对于文件起始处的偏移)
  14632. BYTE byColorSimilar[NET_COLOR_TYPE_MAX]; // 物体颜色相似度,取值范围:0-100,数组下标值代表某种颜色,详见EM_COLOR_TYPE
  14633. BYTE byUpperBodyColorSimilar[NET_COLOR_TYPE_MAX]; // 上半身物体颜色相似度(物体类型为人时有效)
  14634. BYTE byLowerBodyColorSimilar[NET_COLOR_TYPE_MAX]; // 下半身物体颜色相似度(物体类型为人时有效)
  14635. int nRelativeID; // 相关物体ID
  14636. char szSubText[20]; // "ObjectType"为"Vehicle"或者"Logo"时,表示车标下的某一车系,比如奥迪A6L,由于车系较多,SDK实现时透传此字段,设备如实填写。
  14637. WORD wBrandYear; // 车辆品牌年款 需要通过映射表得到真正的年款 映射表详见开发手册
  14638. } DH_MSG_OBJECT;
  14639. ///@brief 视频分析物体信息补充字段,与 DH_MSG_OBJECT 的合集表示视频分析物体信息
  14640. typedef struct tagDH_MSG_OBJECT_SUPPLEMENT
  14641. {
  14642. char szObjectUUID[48]; // 智能物体全局唯一物体标识
  14643. UINT nMuckHide; // 渣土车是否遮盖识别,0:渣土车是否遮盖未知,1:渣土车遮盖,2:渣土车无遮盖空载,3:渣土车无遮盖满载.
  14644. UINT nCarryType; // 货车载货类型,0:货车是否载货未知,1:沙子,2:泥浆,3:石头,4:石渣.
  14645. char szCategory[32]; // 物体类型
  14646. char szReserved[216]; // Reserved
  14647. }DH_MSG_OBJECT_SUPPLEMENT;
  14648. ///@brief 入侵方向
  14649. typedef enum tagEM_MSG_OBJ_PERSON_DIRECTION
  14650. {
  14651. EM_MSG_OBJ_PERSON_DIRECTION_UNKOWN, // 未知方向
  14652. EM_MSG_OBJ_PERSON_DIRECTION_LEFT_TO_RIGHT, // 从左向右
  14653. EM_MSG_OBJ_PERSON_DIRECTION_RIGHT_TO_LEFT // 从右向左
  14654. }EM_MSG_OBJ_PERSON_DIRECTION;
  14655. ///@brief 视频分析物体信息扩展结构体
  14656. typedef struct tagDH_MSG_OBJECT_EX
  14657. {
  14658. DWORD dwSize;
  14659. int nObjectID; // 物体ID,每个ID表示一个唯一的物体
  14660. char szObjectType[128]; // 物体类型
  14661. int nConfidence; // 置信度(0~255),值越大表示置信度越高
  14662. int nAction; // 物体动作:1:Appear 2:Move 3:Stay 4:Remove 5:Disappear 6:Split 7:Merge 8:Rename
  14663. DH_RECT BoundingBox; // 包围盒
  14664. DH_POINT Center; // 物体型心
  14665. int nPolygonNum; // 多边形顶点个数
  14666. DH_POINT Contour[DH_MAX_POLYGON_NUM]; // 较精确的轮廓多边形
  14667. DWORD rgbaMainColor; // 表示车牌、车身等物体主要颜色;按字节表示,分别为红、绿、蓝和透明度,例如:RGB值为(0,255,0),透明度为0时, 其值为0x00ff0000.
  14668. char szText[128]; // 同DH_MSG_OBJECT相应字段
  14669. char szObjectSubType[64]; // 物体子类别,根据不同的物体类型,可以取以下子类型:
  14670. // 同DH_MSG_OBJECT相应字段
  14671. BYTE byReserved1[3];
  14672. bool bPicEnble; // 是否有物体对应图片文件信息
  14673. DH_PIC_INFO stPicInfo; // 物体对应图片信息
  14674. bool bShotFrame; // 是否是抓拍张的识别结果
  14675. bool bColor; // 物体颜色(rgbaMainColor)是否可用
  14676. BYTE bLowerBodyColor; // 下半身颜色(rgbaLowerBodyColor)是否可用
  14677. BYTE byTimeType; // 时间表示类型,详见EM_TIME_TYPE说明
  14678. NET_TIME_EX stuCurrentTime; // 针对视频浓缩,当前时间戳(物体抓拍或识别时,会将此识别智能帧附在一个视频帧或jpeg图片中,此帧所在原始视频中的出现时间)
  14679. NET_TIME_EX stuStartTime; // 开始时间戳(物体开始出现时)
  14680. NET_TIME_EX stuEndTime; // 结束时间戳(物体最后出现时)
  14681. DH_RECT stuOriginalBoundingBox; // 包围盒(绝对坐标)
  14682. DH_RECT stuSignBoundingBox; // 车标坐标包围盒
  14683. DWORD dwCurrentSequence; // 当前帧序号(抓下这个物体时的帧)
  14684. DWORD dwBeginSequence; // 开始帧序号(物体开始出现时的帧序号)
  14685. DWORD dwEndSequence; // 结束帧序号(物体消逝时的帧序号)
  14686. INT64 nBeginFileOffset; // 开始时文件偏移, 单位: 字节(物体开始出现时,视频帧在原始视频文件中相对于文件起始处的偏移)
  14687. INT64 nEndFileOffset; // 结束时文件偏移, 单位: 字节(物体消逝时,视频帧在原始视频文件中相对于文件起始处的偏移)
  14688. BYTE byColorSimilar[NET_COLOR_TYPE_MAX]; // 物体颜色相似度,取值范围:0-100,数组下标值代表某种颜色,详见EM_COLOR_TYPE
  14689. BYTE byUpperBodyColorSimilar[NET_COLOR_TYPE_MAX]; // 上半身物体颜色相似度(物体类型为人时有效)
  14690. BYTE byLowerBodyColorSimilar[NET_COLOR_TYPE_MAX]; // 下半身物体颜色相似度(物体类型为人时有效)
  14691. int nRelativeID; // 相关物体ID
  14692. char szSubText[20]; // "ObjectType"为"Vehicle"或者"Logo"时,表示车标下的某一车系,比如奥迪A6L,由于车系较多,SDK实现时透传此字段,设备如实填写。
  14693. int nPersonStature; // 入侵人员身高,单位cm
  14694. EM_MSG_OBJ_PERSON_DIRECTION emPersonDirection; // 人员入侵方向
  14695. DWORD rgbaLowerBodyColor; // 使用方法同rgbaMainColor,物体类型为人时有效
  14696. } DH_MSG_OBJECT_EX;
  14697. ///@brief 视频分析物体信息扩展结构体,扩展版本2
  14698. typedef struct tagDH_MSG_OBJECT_EX2
  14699. {
  14700. DWORD dwSize;
  14701. int nObjectID; // 物体ID,每个ID表示一个唯一的物体
  14702. char szObjectType[128]; // 物体类型
  14703. int nConfidence; // 置信度(0~255),值越大表示置信度越高
  14704. int nAction; // 物体动作:1:Appear 2:Move 3:Stay 4:Remove 5:Disappear 6:Split 7:Merge 8:Rename
  14705. DH_RECT BoundingBox; // 包围盒
  14706. DH_POINT Center; // 物体型心
  14707. int nPolygonNum; // 多边形顶点个数
  14708. DH_POINT Contour[DH_MAX_POLYGON_NUM]; // 较精确的轮廓多边形
  14709. DWORD rgbaMainColor; // 表示车牌、车身等物体主要颜色;按字节表示,分别为红、绿、蓝和透明度,例如:RGB值为(0,255,0),透明度为0时, 其值为0x00ff0000.
  14710. char szText[128]; // 同DH_MSG_OBJECT相应字段
  14711. char szObjectSubType[64]; // 物体子类别,根据不同的物体类型,可以取以下子类型:
  14712. // 同DH_MSG_OBJECT相应字段
  14713. BYTE byReserved1[3];
  14714. bool bPicEnble; // 是否有物体对应图片文件信息
  14715. DH_PIC_INFO stPicInfo; // 物体对应图片信息
  14716. bool bShotFrame; // 是否是抓拍张的识别结果
  14717. bool bColor; // 物体颜色(rgbaMainColor)是否可用
  14718. BYTE bLowerBodyColor; // 下半身颜色(rgbaLowerBodyColor)是否可用
  14719. BYTE byTimeType; // 时间表示类型,详见EM_TIME_TYPE说明
  14720. NET_TIME_EX stuCurrentTime; // 针对视频浓缩,当前时间戳(物体抓拍或识别时,会将此识别智能帧附在一个视频帧或jpeg图片中,此帧所在原始视频中的出现时间)
  14721. NET_TIME_EX stuStartTime; // 开始时间戳(物体开始出现时)
  14722. NET_TIME_EX stuEndTime; // 结束时间戳(物体最后出现时)
  14723. DH_RECT stuOriginalBoundingBox; // 包围盒(绝对坐标)
  14724. DH_RECT stuSignBoundingBox; // 车标坐标包围盒
  14725. DWORD dwCurrentSequence; // 当前帧序号(抓下这个物体时的帧)
  14726. DWORD dwBeginSequence; // 开始帧序号(物体开始出现时的帧序号)
  14727. DWORD dwEndSequence; // 结束帧序号(物体消逝时的帧序号)
  14728. INT64 nBeginFileOffset; // 开始时文件偏移, 单位: 字节(物体开始出现时,视频帧在原始视频文件中相对于文件起始处的偏移)
  14729. INT64 nEndFileOffset; // 结束时文件偏移, 单位: 字节(物体消逝时,视频帧在原始视频文件中相对于文件起始处的偏移)
  14730. BYTE byColorSimilar[NET_COLOR_TYPE_MAX]; // 物体颜色相似度,取值范围:0-100,数组下标值代表某种颜色,详见EM_COLOR_TYPE
  14731. BYTE byUpperBodyColorSimilar[NET_COLOR_TYPE_MAX]; // 上半身物体颜色相似度(物体类型为人时有效)
  14732. BYTE byLowerBodyColorSimilar[NET_COLOR_TYPE_MAX]; // 下半身物体颜色相似度(物体类型为人时有效)
  14733. int nRelativeID; // 相关物体ID
  14734. char szSubText[20]; // "ObjectType"为"Vehicle"或者"Logo"时,表示车标下的某一车系,比如奥迪A6L,由于车系较多,SDK实现时透传此字段,设备如实填写。
  14735. int nPersonStature; // 入侵人员身高,单位cm
  14736. EM_MSG_OBJ_PERSON_DIRECTION emPersonDirection; // 人员入侵方向
  14737. DWORD rgbaLowerBodyColor; // 使用方法同rgbaMainColor,物体类型为人时有效
  14738. /*视频浓缩额外信息*/
  14739. int nSynopsisSpeed; // 浓缩速度域值,共分1~10共十个档位,5表示浓缩后只保留5以上速度的物体。是个相对单位
  14740. // 为0时,该字段无效
  14741. int nSynopsisSize; // 浓缩尺寸域值,共分1~10共十个档位,3表示浓缩后只保留3以上大小的物体。是个相对单位
  14742. // 为0时,该字段无效
  14743. BOOL bEnableDirection; // 为True时,对物体运动方向做过滤
  14744. // 为False时,不对物体运动方向做过滤,
  14745. DH_POINT stuSynopsisStartLocation; // 浓缩运动方向,起始坐标点,点的坐标归一化到[0,8191]区间,bEnableDirection为True时有效
  14746. DH_POINT stuSynopsisEndLocation; // 浓缩运动方向,终止坐标点,点的坐标归一化到[0,8191]区间,bEnableDirection为True时有效
  14747. char szSerialUUID[22]; // 智能物体全局唯一物体标识
  14748. // 有效数据位21位,包含’\0’
  14749. // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
  14750. // 中间14位YYYYMMDDhhmmss:年月日时分秒
  14751. // 后5位%u%u%u%u%u:物体ID,如00001
  14752. char szReserved[2]; // 对齐
  14753. BYTE byReserved[2024]; // 扩展字节
  14754. } DH_MSG_OBJECT_EX2;
  14755. #ifndef LINUX64_JNA
  14756. #pragma pack(pop)
  14757. #endif
  14758. ///@brief 抓拍信息
  14759. typedef struct
  14760. {
  14761. short snSpeed; // 当前车的速度,km/h
  14762. short snCarLength; // 当前车长,分米为单位
  14763. float fRedTime; // 当前车道红灯时间,秒.毫秒
  14764. float fCapTime; // 当前车道抓拍时间,秒.毫秒
  14765. BYTE bSigSequence; // 当前抓拍序号
  14766. BYTE bType; // 当前车道的抓拍类型
  14767. // 0: 雷达高限速;1: 雷达低限速;2: 车检器高限速;3:车检器低限速
  14768. // 4: 逆向;5: 闯红灯;6: 红灯亮;7: 红灯灭;8: 全部抓拍或者卡口
  14769. BYTE bDirection; // 闯红灯类型:01:左转红灯;02:直行红灯;03:右转红灯
  14770. BYTE bLightColor; // 当前车道的红绿灯状态,0: 绿灯, 1: 红灯, 2: 黄灯
  14771. BYTE bSnapFlag[16]; // 设备产生的抓拍标识
  14772. }DH_SIG_CARWAY_INFO;
  14773. ///@brief 车检器冗余信息
  14774. typedef struct
  14775. {
  14776. BYTE byRedundance[8]; // 由车检器产生抓拍信号冗余信息
  14777. BYTE bReserved[120]; // 保留字段
  14778. }DH_SIG_CARWAY_INFO_EX;
  14779. ///@brief 每个车道的相关信息
  14780. typedef struct
  14781. {
  14782. BYTE bCarWayID; // 当前车道号
  14783. BYTE bReserve[2]; // 保留字段
  14784. BYTE bSigCount; // 被触发抓拍的个数
  14785. DH_SIG_CARWAY_INFO stuSigInfo[DH_MAX_SNAP_SIGNAL_NUM]; // 当前车道上,被触发抓拍对应的抓拍信息
  14786. BYTE bReserved[12]; // 保留字段
  14787. }DH_CARWAY_INFO;
  14788. ///@brief 事件对应文件信息
  14789. typedef struct
  14790. {
  14791. BYTE bCount; // 当前文件所在文件组中的文件总数
  14792. BYTE bIndex; // 当前文件在文件组中的文件编号(编号1开始)
  14793. BYTE bFileTag; // 文件标签, EM_EVENT_FILETAG
  14794. BYTE bFileType; // 文件类型,0-普通 1-合成 2-抠图
  14795. NET_TIME_EX stuFileTime; // 文件时间
  14796. DWORD nGroupId; // 同一组抓拍文件的唯一标识
  14797. }DH_EVENT_FILE_INFO;
  14798. ///@brief 图片分辨率
  14799. typedef struct
  14800. {
  14801. unsigned short snWidth; // 宽
  14802. unsigned short snHight; // 高
  14803. }DH_RESOLUTION_INFO;
  14804. ///@brief 颜色RGBA
  14805. typedef struct tagDH_COLOR_RGBA
  14806. {
  14807. int nRed; // 红
  14808. int nGreen; // 绿
  14809. int nBlue; // 蓝
  14810. int nAlpha; // 透明
  14811. } DH_COLOR_RGBA, NET_COLOR_RGBA;
  14812. #define NET_COUNTRY_LENGTH 3 // 国家缩写长度
  14813. #define NET_COMMENT_LENGTH 100 // 备注信息长度
  14814. #define NET_GROUPID_LENGTH 64 // group id 信息长度
  14815. #define NET_GROUPNAME_LENGTH 128 // group name 信息长度
  14816. #define NET_FEATUREVALUE_LENGTH 128 // 目标特征 信息长度
  14817. ///@brief 目标检测对应目标特征类型
  14818. typedef enum tagEM_DEV_EVENT_FACEDETECT_FEATURE_TYPE
  14819. {
  14820. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_UNKNOWN, // 未知
  14821. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_WEAR_GLASSES, // 戴眼镜
  14822. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_SMILE, // 微笑
  14823. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_ANGER, // 愤怒
  14824. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_SADNESS, // 悲伤
  14825. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_DISGUST, // 厌恶
  14826. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_FEAR, // 害怕
  14827. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_SURPRISE, // 惊讶
  14828. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_NEUTRAL, // 正常
  14829. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_LAUGH, // 大笑
  14830. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_NOGLASSES, // 没戴眼镜
  14831. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_HAPPY, // 高兴
  14832. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_CONFUSED, // 困惑
  14833. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_SCREAM, // 尖叫
  14834. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE_WEAR_SUNGLASSES, // 戴太阳眼镜
  14835. }EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE;
  14836. ///@brief 人员信息
  14837. typedef struct tagFACERECOGNITION_PERSON_INFO
  14838. {
  14839. char szPersonName[DH_MAX_NAME_LEN]; // 姓名,此参数作废
  14840. WORD wYear; // 出生年,作为查询条件时,此参数填0,则表示此参数无效
  14841. BYTE byMonth; // 出生月,作为查询条件时,此参数填0,则表示此参数无效
  14842. BYTE byDay; // 出生日,作为查询条件时,此参数填0,则表示此参数无效
  14843. char szID[DH_MAX_PERSON_ID_LEN]; // 人员唯一标示(证件号码,工号,或其他编号)
  14844. BYTE bImportantRank; // 人员重要等级,1~10,数值越高越重要,作为查询条件时,此参数填0,则表示此参数无效
  14845. BYTE bySex; // 性别,1-男,2-女,作为查询条件时,此参数填0,则表示此参数无效
  14846. WORD wFacePicNum; // 图片张数
  14847. DH_PIC_INFO szFacePicInfo[DH_MAX_PERSON_IMAGE_NUM]; // 当前人员对应的图片信息
  14848. BYTE byType; // 人员类型,详见 EM_PERSON_TYPE
  14849. BYTE byIDType; // 证件类型,详见 EM_CERTIFICATE_TYPE
  14850. BYTE byGlasses; // 是否戴眼镜,0-未知 1-不戴 2-戴
  14851. BYTE byAge; // 年龄,0表示未知
  14852. char szProvince[DH_MAX_PROVINCE_NAME_LEN]; // 省份
  14853. char szCity[DH_MAX_CITY_NAME_LEN]; // 城市
  14854. char szPersonNameEx[DH_MAX_PERSON_NAME_LEN]; // 姓名,因存在姓名过长,16字节无法存放问题,故增加此参数,
  14855. char szUID[DH_MAX_PERSON_ID_LEN]; // 人员唯一标识符,首次由服务端生成,区别于ID字段
  14856. // 修改,删除操作时必填
  14857. char szCountry[NET_COUNTRY_LENGTH]; // 国籍,符合ISO3166规范
  14858. BYTE byIsCustomType; // 人员类型是否为自定义: 0 使用Type规定的类型 1 自定义,使用szPersonName字段
  14859. char *pszComment; // 备注信息, 用户自己申请内存的情况时,
  14860. // 下方bCommentLen需填写对应的具体长度值,推荐长度 NET_COMMENT_LENGTH
  14861. char *pszGroupID; // 人员所属组ID, 用户自己申请内存的情况时,
  14862. // 下方bGroupIdLen需填写对应的具体长度值,推荐长度 NET_GROUPID_LENGTH
  14863. char *pszGroupName; // 人员所属组名, 用户自己申请内存的情况时,
  14864. // 下方bGroupNameLen需填写对应的具体长度值,推荐长度 NET_GROUPNAME_LENGTH
  14865. char *pszFeatureValue; // 目标特征, 用户自己申请内存的情况时,
  14866. // 下方bFeatureValueLen需填写对应的具体长度值,推荐长度 NET_FEATUREVALUE_LENGTH
  14867. BYTE bGroupIdLen; // pszGroupID的长度
  14868. BYTE bGroupNameLen; // pszGroupName的长度
  14869. BYTE bFeatureValueLen; // pszFeatureValue的长度
  14870. BYTE bCommentLen; // pszComment的长度
  14871. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotion; // 表情
  14872. }FACERECOGNITION_PERSON_INFO;
  14873. ///@brief 眼镜类型
  14874. typedef enum tagEM_GLASSES_TYPE
  14875. {
  14876. EM_GLASSES_UNKNOWN, // 未知
  14877. EM_GLASSES_SUNGLASS, // 太阳眼镜
  14878. EM_GLASSES_GLASS, // 普通眼镜
  14879. } EM_GLASSES_TYPE;
  14880. ///@brief 眼睛状态
  14881. typedef enum tagEM_EYE_STATE_TYPE
  14882. {
  14883. EM_EYE_STATE_UNKNOWN, // 未知
  14884. EM_EYE_STATE_NODISTI, // 未识别
  14885. EM_EYE_STATE_CLOSE, // 闭眼
  14886. EM_EYE_STATE_OPEN, // 睁眼
  14887. } EM_EYE_STATE_TYPE;
  14888. ///@brief 戴眼镜状态
  14889. typedef enum tagEM_GLASS_STATE_TYPE
  14890. {
  14891. EM_GLASS_STATE_TYPE_UNKNOWN, // 未知
  14892. EM_GLASS_STATE_TYPE_NOT_WEARING, // 未戴
  14893. EM_GLASS_STATE_TYPE_CONVENTIONAL_GLASSES, // 戴常规眼镜
  14894. EM_GLASS_STATE_TYPE_SUN_GLASSES, // 戴太阳眼镜
  14895. EM_GLASS_STATE_TYPE_BLACK_GLASSES, // 戴黑框眼镜
  14896. }EM_GLASS_STATE_TYPE;
  14897. ///@brief 嘴巴状态
  14898. typedef enum tagEM_MOUTH_STATE_TYPE
  14899. {
  14900. EM_MOUTH_STATE_UNKNOWN, // 未知
  14901. EM_MOUTH_STATE_NODISTI, // 未识别
  14902. EM_MOUTH_STATE_CLOSE, // 闭嘴
  14903. EM_MOUTH_STATE_OPEN, // 张嘴
  14904. } EM_MOUTH_STATE_TYPE;
  14905. ///@brief 胡子状态
  14906. typedef enum tagEM_BEARD_STATE_TYPE
  14907. {
  14908. EM_BEARD_STATE_UNKNOWN, // 未知
  14909. EM_BEARD_STATE_NODISTI, // 未识别
  14910. EM_BEARD_STATE_NOBEARD, // 没胡子
  14911. EM_BEARD_STATE_HAVEBEARD, // 有胡子
  14912. } EM_BEARD_STATE_TYPE;
  14913. ///@brief 目标检测目标戴眼镜特征类型
  14914. typedef enum tagEM_FACEDETECT_GLASSES_TYPE
  14915. {
  14916. EM_FACEDETECT_GLASSES_UNKNOWN, // 未知
  14917. EM_FACEDETECT_WITH_GLASSES, // 戴眼镜
  14918. EM_FACEDETECT_WITHOUT_GLASSES, // 不戴眼镜
  14919. EM_FACEDETECT_SUN_GLASSES, // 戴太阳眼镜
  14920. EM_FACEDETECT_BLACKFRAME_GLASSES, // 戴黑框眼镜
  14921. }EM_FACEDETECT_GLASSES_TYPE;
  14922. ///@brief 人员建模状态
  14923. typedef enum tagEM_PERSON_FEATURE_STATE
  14924. {
  14925. EM_PERSON_FEATURE_UNKNOWN, // 未知
  14926. EM_PERSON_FEATURE_FAIL, // 建模失败,可能是图片不符合要求,需要换图片
  14927. EM_PERSON_FEATURE_USEFUL, // 有可用的特征值
  14928. EM_PERSON_FEATURE_CALCULATING, // 正在计算特征值
  14929. EM_PERSON_FEATURE_UNUSEFUL, // 已建模,但算法升级导致数据不可用,需要重新建模
  14930. } EM_PERSON_FEATURE_STATE;
  14931. ///@brief 建模失败原因
  14932. typedef enum tagEM_PERSON_FEATURE_ERRCODE
  14933. {
  14934. EM_PERSON_FEATURE_ERRCODE_UNKNOWN, // 未知
  14935. EM_PERSON_FEATURE_ERRCODE_PIC_FORMAT, // 图片格式问题
  14936. EM_PERSON_FEATURE_ERRCODE_NO_FACE, // 无目标或不清晰
  14937. EM_PERSON_FEATURE_ERRCODE_MULTI_FACE, // 多个目标
  14938. EM_PERSON_FEATURE_ERRCODE_PIC_DECODE_FAIL, // 图片解码失败
  14939. EM_PERSON_FEATURE_ERRCODE_NOT_RECOMMEND, // 不推荐入库
  14940. EM_PERSON_FEATURE_ERRCODE_FACEDB_FAIL, // 数据库操作失败
  14941. EM_PERSON_FEATURE_ERRCODE_GET_PICTURE, // 获取图片失败
  14942. EM_PERSON_FEATURE_ERRCODE_SYSTEM_ERROR, // 系统异常
  14943. } EM_PERSON_FEATURE_ERRCODE;
  14944. #define DH_MAX_PERSON_INFO_LEN 64 // 人员扩展信息最大长度
  14945. ///@brief 注册人员信息扩展结构体
  14946. typedef struct tagCUSTOM_PERSON_INFO
  14947. {
  14948. char szPersonInfo[DH_MAX_PERSON_INFO_LEN]; //人员扩展信息
  14949. BYTE byReserved[124]; // 保留字节
  14950. } CUSTOM_PERSON_INFO;
  14951. ///@brief 注册库属性
  14952. typedef enum tagEM_REGISTER_DB_TYPE
  14953. {
  14954. EM_REGISTER_DB_TYPE_UNKNOWN, // 未知
  14955. EM_REGISTER_DB_TYPE_NORMAL, // 普通库
  14956. EM_REGISTER_DB_TYPE_BLACKLIST, // 禁止名单
  14957. EM_REGISTER_DB_TYPE_WHITELIST, // 允许名单
  14958. EM_REGISTER_DB_TYPE_VIP, // VIP库
  14959. EM_REGISTER_DB_TYPE_STAFF, // 员工库
  14960. EM_REGISTER_DB_TYPE_LEADER, // 领导库
  14961. } EM_REGISTER_DB_TYPE;
  14962. ///@brief 图片操作类型
  14963. typedef enum tagEM_PIC_OPERATE_TYPE
  14964. {
  14965. EM_PIC_OPERATE_UNKNOWN, // 未知
  14966. EM_PIC_OPERATE_MODIFY, // 修改
  14967. EM_PIC_OPERATE_ADD, // 新增
  14968. EM_PIC_OPERATE_DEL, // 删除
  14969. } EM_PIC_OPERATE_TYPE;
  14970. ///@brief 目标图片信息
  14971. typedef struct tagNET_FACE_PIC_INFO
  14972. {
  14973. DWORD dwOffSet; // 文件在二进制数据块中的偏移位置, 单位:字节
  14974. DWORD dwFileLenth; // 文件大小, 单位:字节
  14975. DWORD dwWidth; // 图片宽度, 单位:像素
  14976. DWORD dwHeight; // 图片高度, 单位:像素
  14977. BOOL bIsDetected; // 图片是否算法检测出来的检测过的提交识别服务器时,
  14978. // 则不需要再时检测定位抠图,1:检测过的,0:没有检测过
  14979. int nFilePathLen; // 文件路径长度 既pszFilePath 的大小
  14980. char* pszFilePath; // 文件路径, 由用户申请空间, 作为输入条件时不需要
  14981. char szPictureID[32]; // 图片ID, 针对一人多目标的情况, 用于区分不同目标
  14982. EM_PERSON_FEATURE_STATE emFeatureState; // 图片建模状态
  14983. EM_PERSON_FEATURE_ERRCODE emFeatureErrCode; // 建模失败原因
  14984. EM_PIC_OPERATE_TYPE emPicOperate; // 图片操作类型
  14985. BYTE bReserved[20]; // 预留字节
  14986. } NET_FACE_PIC_INFO;
  14987. ///@brief 人员特征信息
  14988. typedef struct tagNET_PERSON_FEATURE_VALUE_INFO
  14989. {
  14990. UINT nOffset; // 二进制数据块中的偏移值
  14991. UINT nLength; // 特征值大小
  14992. BYTE byReserved[128]; // 保留字节
  14993. }NET_PERSON_FEATURE_VALUE_INFO;
  14994. ///@brief 报警类型
  14995. typedef enum tagEM_FREQUENCY_ALARM_TYPE
  14996. {
  14997. EM_FREQUENCY_ALARM_UNKNOWN = -1, // 未知
  14998. EM_FREQUENCY_ALARM_HIGH, // 高频报警
  14999. EM_FREQUENCY_ALARM_LOW, // 低频报警
  15000. } EM_FREQUENCY_ALARM_TYPE;
  15001. ///@brief 频次报警信息
  15002. typedef struct tagNET_PERSON_FREQUENCY_INFO
  15003. {
  15004. EM_FREQUENCY_ALARM_TYPE emAlarmType; // 报警类型
  15005. int nTimes; // 频次
  15006. char szReserved[128]; // 保留字节
  15007. }NET_PERSON_FREQUENCY_INFO;
  15008. #define DH_MAX_CUSTOM_PERSON_INFO_NUM 4 // 注册人员信息扩展最大个数
  15009. ///@brief 目标库路人信息
  15010. typedef struct tagFACERECOGNITION_CUSTOM_PASSER_BY_INFO
  15011. {
  15012. int nStorageAddrChannel; // 入库地点对应的通道号
  15013. int nStoragePresetID; // 入库地点(首次抓拍到的地点)对应的预置点号
  15014. NET_TIME stuStorageTime; // 入库时间
  15015. NET_TIME stuLastAppearTime; // 最近出现时间
  15016. int nLastAppearAddrChannel; // 最近出现地点对应的通道号
  15017. int nLastAppearPresetID; // 最近出现地点对应的预置点号(球机预置点从1开始)
  15018. unsigned int nOccurrenceNumber; // 出现次数
  15019. char szReserved[1020]; // 保留字段
  15020. }FACERECOGNITION_CUSTOM_PASSER_BY_INFO;
  15021. ///@brief 人员信息扩展结构体
  15022. typedef struct tagFACERECOGNITION_PERSON_INFOEX
  15023. {
  15024. char szPersonName[DH_MAX_PERSON_NAME_LEN]; // 姓名
  15025. WORD wYear; // 出生年,作为查询条件时,此参数填0,则表示此参数无效
  15026. BYTE byMonth; // 出生月,作为查询条件时,此参数填0,则表示此参数无效
  15027. BYTE byDay; // 出生日,作为查询条件时,此参数填0,则表示此参数无效
  15028. BYTE bImportantRank; // 人员重要等级,1~10,数值越高越重要,作为查询条件时,此参数填0,则表示此参数无效
  15029. BYTE bySex; // 性别,1-男,2-女,作为查询条件时,此参数填0,则表示此参数无效
  15030. char szID[DH_MAX_PERSON_ID_LEN]; // 人员唯一标示(证件号码,工号,或其他编号)
  15031. WORD wFacePicNum; // 图片张数
  15032. DH_PIC_INFO szFacePicInfo[DH_MAX_PERSON_IMAGE_NUM]; // 当前人员对应的图片信息
  15033. BYTE byType; // 人员类型,详见 EM_PERSON_TYPE
  15034. BYTE byIDType; // 证件类型,详见 EM_CERTIFICATE_TYPE
  15035. BYTE byGlasses; // 是否戴眼镜,0-未知 1-不戴 2-戴
  15036. BYTE byAge; // 年龄,0表示未知
  15037. char szProvince[DH_MAX_PROVINCE_NAME_LEN]; // 省份
  15038. char szCity[DH_MAX_CITY_NAME_LEN]; // 城市
  15039. char szUID[DH_MAX_PERSON_ID_LEN]; // 人员唯一标识符,首次由服务端生成,区别于ID字段
  15040. // 修改,删除操作时必填
  15041. char szCountry[NET_COUNTRY_LENGTH]; // 国籍,符合ISO3166规范
  15042. BYTE byIsCustomType; // 人员类型是否为自定义: 0 使用Type规定的类型 1 自定义,使用szCustomType字段
  15043. char szCustomType[DH_COMMON_STRING_16]; // 人员自定义类型
  15044. char szComment[NET_COMMENT_LENGTH]; // 备注信息
  15045. char szGroupID[NET_GROUPID_LENGTH]; // 人员所属组ID
  15046. char szGroupName[NET_GROUPNAME_LENGTH]; // 人员所属组名, 用户自己申请内存的情况时,
  15047. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotion; // 表情
  15048. char szHomeAddress[DH_COMMON_STRING_128]; // 注册人员家庭地址
  15049. EM_GLASSES_TYPE emGlassesType; // 眼镜类型
  15050. char szReserved1[4];
  15051. EM_EYE_STATE_TYPE emEye; // 眼睛状态
  15052. EM_MOUTH_STATE_TYPE emMouth; // 嘴巴状态
  15053. EM_MASK_STATE_TYPE emMask; // 口罩状态
  15054. EM_BEARD_STATE_TYPE emBeard; // 胡子状态
  15055. int nAttractive; // 魅力值, -1表示无效, 0未识别,识别时范围1-100,得分高魅力高
  15056. EM_PERSON_FEATURE_STATE emFeatureState; // 人员建模状态
  15057. BOOL bAgeEnable; // 是否指定年龄段
  15058. int nAgeRange[2]; // 年龄范围
  15059. int nEmotionValidNum; // 目标特征数组有效个数,与 emFeature 结合使用, 如果为0则表示查询所有表情
  15060. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotions[DH_MAX_FACEDETECT_FEATURE_NUM]; // 目标特征数组,与 byFeatureValidNum 结合使用 设置查询条件的时候使用
  15061. int nCustomPersonInfoNum; // 注册人员信息扩展个数
  15062. CUSTOM_PERSON_INFO szCustomPersonInfo[DH_MAX_CUSTOM_PERSON_INFO_NUM]; //注册人员信息扩展
  15063. EM_REGISTER_DB_TYPE emRegisterDbType; // 注册库类型
  15064. NET_TIME stuEffectiveTime; // 有效期时间
  15065. EM_PERSON_FEATURE_ERRCODE emFeatureErrCode; // 建模失败原因
  15066. DWORD wFacePicNumEx; // 目标图片张数
  15067. NET_FACE_PIC_INFO szFacePicInfoEx[6]; // 当前人员对应的图片信息
  15068. NET_PERSON_FEATURE_VALUE_INFO stuPersonFeatureValue; // 人员特征信息
  15069. BOOL bFrozenStatus; // 人员冻结状态
  15070. char szReserved[4]; // 保留字节
  15071. NET_PERSON_FREQUENCY_INFO stuFrequencyInfo; // 频次报警信息
  15072. char szUUID[64]; // 平台唯一标识目标字段,区别于UID,IVSS根据faceRecognitionServer.getCaps能力,SupportIDFromServer值为true时,支持UUID有效
  15073. FACERECOGNITION_CUSTOM_PASSER_BY_INFO* pstuCustomPasserbyInfo; // 路人信息,由用户申请内存,一次申请一个
  15074. BYTE byReserved[188-POINTERSIZE]; // 保留字节
  15075. } FACERECOGNITION_PERSON_INFOEX;
  15076. ///@brief 候选人员信息
  15077. typedef struct tagCANDIDATE_INFO
  15078. {
  15079. FACERECOGNITION_PERSON_INFO stPersonInfo; // 人员信息
  15080. // 布控(禁止名单)库,指布控库中人员信息;
  15081. // 历史库,指历史库中人员信息
  15082. // 报警库,指布控库的人员信息
  15083. BYTE bySimilarity; // 和查询图片的相似度,百分比表示,1~100
  15084. BYTE byRange; // 人员所属数据库范围,详见EM_FACE_DB_TYPE
  15085. BYTE byReserved1[2];
  15086. NET_TIME stTime; // 当byRange为历史数据库时有效,表示查询人员出现的时间
  15087. char szAddress[MAX_PATH]; // 当byRange为历史数据库时有效,表示查询人员出现的地点
  15088. BOOL bIsHit; // 是否有识别结果,指这个检测出的目标在库中有没有比对结果
  15089. DH_PIC_INFO_EX3 stuSceneImage; // 目标全景图
  15090. int nChannelID; // 通道号
  15091. char szChannelString[32]; // 视频通道号
  15092. }CANDIDATE_INFO;
  15093. ///@brief 衣服颜色
  15094. typedef enum tagEM_CLOTHES_COLOR
  15095. {
  15096. EM_CLOTHES_COLOR_UNKNOWN, // 未知
  15097. EM_CLOTHES_COLOR_WHITE, // 白色
  15098. EM_CLOTHES_COLOR_ORANGE, // 橙色
  15099. EM_CLOTHES_COLOR_PINK, // 粉色
  15100. EM_CLOTHES_COLOR_BLACK, // 黑色
  15101. EM_CLOTHES_COLOR_RED, // 红色
  15102. EM_CLOTHES_COLOR_YELLOW, // 黄色
  15103. EM_CLOTHES_COLOR_GRAY, // 灰色
  15104. EM_CLOTHES_COLOR_BLUE, // 蓝色
  15105. EM_CLOTHES_COLOR_GREEN, // 绿色
  15106. EM_CLOTHES_COLOR_PURPLE, // 紫色
  15107. EM_CLOTHES_COLOR_BROWN, // 棕色
  15108. EM_CLOTHES_COLOR_DARKORANGE, // 深橙色
  15109. EM_CLOTHES_COLOR_OTHER, // 其他颜色(该选项设备协议已不支持, 此处为了兼容保留)
  15110. EM_CLOTHES_COLOR_SILVER, // 银色
  15111. EM_CLOTHES_COLOR_DARKVIOLET, // 暗紫罗兰色
  15112. EM_CLOTHES_COLOR_MARRON, // 栗色
  15113. EM_CLOTHES_COLOR_DIMGRAY, // 暗灰色
  15114. EM_CLOTHES_COLOR_WHITESMOKE, // 白烟色
  15115. EM_CLOTHES_COLOR_MISTYROSE, // 浅玫瑰色
  15116. EM_CLOTHES_COLOR_TOMATO, // 番茄红色
  15117. EM_CLOTHES_COLOR_OLIVE, // 橄榄色
  15118. EM_CLOTHES_COLOR_GLOD, // 金色
  15119. EM_CLOTHES_COLOR_DARKOLIVEGREEN, // 暗橄榄绿色
  15120. EM_CLOTHES_COLOR_CHARTREUSE, // 黄绿色
  15121. EM_CLOTHES_COLOR_GREENYELLOW, // 绿黄色
  15122. EM_CLOTHES_COLOR_FORESTGREEN, // 森林绿色
  15123. EM_CLOTHES_COLOR_SEAGREEN, // 海洋绿色
  15124. EM_CLOTHES_COLOR_DEEPSKYBLUE, // 深天蓝色
  15125. EM_CLOTHES_COLOR_CYAN, // 青色
  15126. EM_CLOTHES_COLOR_LIGHTGREEN, // 浅绿色
  15127. }EM_CLOTHES_COLOR;
  15128. ///@brief 上衣类型
  15129. typedef enum tagEM_COAT_TYPE
  15130. {
  15131. EM_COAT_TYPE_UNKNOWN, // 未知
  15132. EM_COAT_TYPE_LONG_SLEEVE, // 长袖
  15133. EM_COAT_TYPE_COTTA, // 短袖
  15134. EM_COAT_TYPE_SLEEVELESS, //无袖
  15135. }EM_COAT_TYPE;
  15136. ///@brief 裤子类型
  15137. typedef enum tagEM_TROUSERS_TYPE
  15138. {
  15139. EM_TROUSERS_TYPE_UNKNOWN, // 未知
  15140. EM_TROUSERS_TYPE_TROUSERS, // 长裤
  15141. EM_TROUSERS_TYPE_SHORTS, // 短裤
  15142. EM_TROUSERS_TYPE_SKIRT, // 裙子
  15143. }EM_TROUSERS_TYPE;
  15144. ///@brief 是否戴帽子
  15145. typedef enum tagEM_HAS_HAT
  15146. {
  15147. EM_HAS_HAT_UNKNOWN, // 未知
  15148. EM_HAS_HAT_NO, // 不戴帽子
  15149. EM_HAS_HAT_YES, // 戴帽子
  15150. }EM_HAS_HAT;
  15151. ///@brief 是否戴包(包括背包或拎包)
  15152. typedef enum tagEM_HAS_BAG
  15153. {
  15154. EM_HAS_BAG_UNKNOWN, // 未知
  15155. EM_HAS_BAG_NO, // 不带包
  15156. EM_HAS_BAG_YES, // 带包
  15157. }EM_HAS_BAG;
  15158. ///@brief 是否有背包
  15159. typedef enum tagEM_HAS_BACK_BAG
  15160. {
  15161. EM_HAS_BACK_BAG_UNKNOWN, // 未知
  15162. EM_HAS_BACK_BAG_NO, // 没有背包
  15163. EM_HAS_BACK_BAG_YES, // 有背包
  15164. } EM_HAS_BACK_BAG;
  15165. ///@brief 是否有手提包
  15166. typedef enum tagEM_HAS_CARRIER_BAG
  15167. {
  15168. EM_HAS_CARRIER_BAG_UNKNOWN, // 未知
  15169. EM_HAS_CARRIER_BAG_NO, // 没有手提包
  15170. EM_HAS_CARRIER_BAG_YES, // 有手提包
  15171. } EM_HAS_CARRIER_BAG;
  15172. ///@brief 是否有肩包
  15173. typedef enum tagEM_HAS_SHOULDER_BAG
  15174. {
  15175. EM_HAS_SHOULDER_BAG_UNKNOWN, // 未知
  15176. EM_HAS_SHOULDER_BAG_NO, // 没有肩包
  15177. EM_HAS_SHOULDER_BAG_YES, // 有肩包
  15178. } EM_HAS_SHOULDER_BAG;
  15179. ///@brief 是否有斜挎包
  15180. typedef enum tagEM_HAS_MESSENGER_BAG
  15181. {
  15182. EM_HAS_MESSENGER_BAG_UNKNOWN, // 未知
  15183. EM_HAS_MESSENGER_BAG_NO, // 没有斜挎包
  15184. EM_HAS_MESSENGER_BAG_YES, // 有斜挎包
  15185. } EM_HAS_MESSENGER_BAG;
  15186. ///@brief 角度
  15187. typedef enum tagEM_ANGLE_TYPE
  15188. {
  15189. EM_ANGLE_UNKNOWN = 0, // 未知
  15190. EM_ANGLE_FRONT, // 正面
  15191. EM_ANGLE_SIDE, // 侧面
  15192. EM_ANGLE_BACK, // 背面
  15193. }EM_ANGLE_TYPE;
  15194. ///@brief 是否打伞
  15195. typedef enum tagEM_HAS_UMBRELLA
  15196. {
  15197. EM_HAS_UMBRELLA_UNKNOWN, // 未知
  15198. EM_HAS_UMBRELLA_NO, // 未打伞
  15199. EM_HAS_UMBRELLA_YES, // 打伞
  15200. } EM_HAS_UMBRELLA;
  15201. ///@brief 包类型
  15202. typedef enum tagEM_BAG_TYPE
  15203. {
  15204. EM_BAG_UNKNOWN, // 未知
  15205. EM_BAG_HANDBAG, // 手提包
  15206. EM_BAG_SHOULDERBAG, // 肩包
  15207. EM_BAG_KNAPSACK, // 背包
  15208. EM_BAG_DRAWBARBOX, // 拉杆箱
  15209. EM_BAG_WAISTPACK, // 腰包
  15210. EM_BAG_NONE, // 无包
  15211. } EM_BAG_TYPE;
  15212. ///@brief 帽子类型
  15213. typedef enum tagEM_CAP_TYPE
  15214. {
  15215. EM_CAP_UNKNOWN, // 未知
  15216. EM_CAP_ORDINARY, // 普通帽子
  15217. EM_CAP_HELMET, // 头盔
  15218. EM_CAP_SAFE, // 安全帽
  15219. } EM_CAP_TYPE;
  15220. ///@brief 衣服图案
  15221. typedef enum tagEM_CLOTHES_PATTERN
  15222. {
  15223. EM_CLOTHES_PATTERN_UNKNOWN, // 未知
  15224. EM_CLOTHES_PATTERN_PURE, // 纯色
  15225. EM_CLOTHES_PATTERN_STRIPE, // 条纹
  15226. EM_CLOTHES_PATTERN_PATTERN, // 图案
  15227. EM_CLOTHES_PATTERN_GAP, // 缝隙
  15228. EM_CLOTHES_PATTERN_LATTICE, // 格子
  15229. EM_CLOTHES_PATTERN_SPLITJOIN, // 拼接
  15230. EM_CLOTHES_PATTERN_FLORAL, // 碎花
  15231. } EM_CLOTHES_PATTERN;
  15232. ///@brief 头发样式
  15233. typedef enum tagEM_HAIR_STYLE
  15234. {
  15235. EM_HAIR_UNKNOWN = 0, // 未知
  15236. EM_HAIR_LONG_HAIR, // 长发
  15237. EM_HAIR_SHORT_HAIR, // 短发
  15238. EM_HAIR_PONYTAIL, // 马尾
  15239. EM_HAIR_UPDO, // 盘发
  15240. EM_HAIR_HEAD_BLOCKED, // 头部被遮挡
  15241. EM_HAIR_NONE, // 无头发
  15242. } EM_HAIR_STYLE;
  15243. ///@brief 历史库人体图片信息
  15244. typedef struct tagNET_HISTORY_HUMAN_IMAGE_INFO
  15245. {
  15246. int nLength; // 图片大小,单位:字节
  15247. int nWidth; // 图片宽度
  15248. int nHeight; // 图片高度
  15249. char szFilePath[260]; // 文件路径
  15250. } NET_HISTORY_HUMAN_IMAGE_INFO;
  15251. ///@brief 历史库人体信息
  15252. typedef struct tagNET_HISTORY_HUMAN_INFO
  15253. {
  15254. EM_CLOTHES_COLOR emCoatColor; // 上衣颜色
  15255. EM_COAT_TYPE emCoatType; // 上衣类型
  15256. EM_CLOTHES_COLOR emTrousersColor; // 裤子颜色
  15257. EM_TROUSERS_TYPE emTrousersType; // 裤子类型
  15258. EM_HAS_HAT emHasHat; // 是否戴帽子
  15259. EM_HAS_BAG emHasBag; // 是否带包
  15260. NET_RECT stuBoundingBox; // 包围盒(8192坐标系)
  15261. int nAge; // 年龄
  15262. EM_SEX_TYPE emSex; // 性别
  15263. EM_ANGLE_TYPE emAngle; // 角度
  15264. EM_HAS_UMBRELLA emHasUmbrella; // 是否打伞
  15265. EM_BAG_TYPE emBag; // 包类型
  15266. EM_CLOTHES_PATTERN emUpperPattern; // 上半身衣服图案
  15267. EM_HAIR_STYLE emHairStyle; // 头发样式
  15268. EM_CAP_TYPE emCap; // 帽类型
  15269. EM_HAS_BACK_BAG emHasBackBag; // 是否有背包
  15270. EM_HAS_CARRIER_BAG emHasCarrierBag; // 是否带手提包
  15271. EM_HAS_SHOULDER_BAG emHasShoulderBag; // 是否有肩包
  15272. EM_HAS_MESSENGER_BAG emMessengerBag; // 是否有斜跨包
  15273. NET_HISTORY_HUMAN_IMAGE_INFO stuImageInfo; // 人体图片信息
  15274. NET_HISTORY_HUMAN_IMAGE_INFO stuFaceImageInfo; // 图片信息
  15275. BYTE byReserved[256]; // 保留字节
  15276. } NET_HISTORY_HUMAN_INFO;
  15277. ///@brief 候选人员信息扩展结构体
  15278. typedef struct tagCANDIDATE_INFOEX
  15279. {
  15280. FACERECOGNITION_PERSON_INFOEX stPersonInfo; // 人员信息扩展
  15281. // 布控(禁止名单)库,指布控库中人员信息;
  15282. // 历史库,指历史库中人员信息
  15283. // 报警库,指布控库的人员信息
  15284. BYTE bySimilarity; // 和查询图片的相似度,百分比表示,1~100
  15285. BYTE byRange; // 人员所属数据库范围,详见EM_FACE_DB_TYPE
  15286. BYTE byReserved1[2];
  15287. NET_TIME stTime; // 当byRange为历史数据库时有效,表示查询人员出现的时间
  15288. char szAddress[MAX_PATH]; // 当byRange为历史数据库时有效,表示查询人员出现的地点
  15289. BOOL bIsHit; // 是否有识别结果,指这个检测出的目标在库中有没有比对结果
  15290. DH_PIC_INFO_EX3 stuSceneImage; // 全景图
  15291. int nChannelID; // 通道号
  15292. char szFilePathEx[256]; // 文件路径
  15293. NET_HISTORY_HUMAN_INFO stuHistoryHumanInfo; // 历史库人体信息
  15294. char szChannelString[32]; // 视频通道号
  15295. BYTE byReserved[104]; // 保留字节
  15296. } CANDIDATE_INFOEX;
  15297. ///@brief 大类业务方案
  15298. typedef enum tagEM_CLASS_TYPE
  15299. {
  15300. EM_CLASS_UNKNOWN = 0, // 未知业务
  15301. EM_CLASS_VIDEO_SYNOPSIS = 1, // 视频浓缩
  15302. EM_CLASS_TRAFFIV_GATE = 2, //卡口
  15303. EM_CLASS_ELECTRONIC_POLICE = 3, // 电警
  15304. EM_CLASS_SINGLE_PTZ_PARKING = 4, // 单球违停
  15305. EM_CLASS_PTZ_PARKINBG = 5, // 主从违停
  15306. EM_CLASS_TRAFFIC = 6, // 交通事件"Traffic"
  15307. EM_CLASS_NORMAL = 7, // 通用行为分析"Normal"
  15308. EM_CLASS_PS = 8,
  15309. EM_CLASS_ATM = 9, // 金融行为分析"ATM"
  15310. EM_CLASS_METRO = 10, // 地铁行为分析
  15311. EM_CLASS_FACE_DETECTION = 11, // 目标检测"FaceDetection"
  15312. EM_CLASS_FACE_RECOGNITION = 12, // 目标识别"TargetRecognition"
  15313. EM_CLASS_NUMBER_STAT = 13, // 人数统计"NumberStat"
  15314. EM_CLASS_HEAT_MAP = 14, // 热度图"HeatMap"
  15315. EM_CLASS_VIDEO_DIAGNOSIS = 15, // 视频诊断"VideoDiagnosis"
  15316. EM_CLASS_VIDEO_ENHANCE = 16, // 视频增强
  15317. EM_CLASS_SMOKEFIRE_DETECT = 17, // 烟火检测
  15318. EM_CLASS_VEHICLE_ANALYSE = 18, // 车辆特征识别"VehicleAnalyse"
  15319. EM_CLASS_PERSON_FEATURE = 19, // 人员特征识别
  15320. EM_CLASS_SDFACEDETECTION = 20, // 多预置点检测"SDFaceDetect"
  15321. //配置一条规则但可以在不同预置点下生效
  15322. EM_CLASS_HEAT_MAP_PLAN = 21, // 球机热度图计划"HeatMapPlan"
  15323. EM_CLASS_NUMBERSTAT_PLAN = 22, // 球机客流量统计计划 "NumberStatPlan"
  15324. EM_CLASS_ATMFD = 23, // 金融目标检测
  15325. EM_CLASS_HIGHWAY = 24, // 高速交通事件检测"Highway"
  15326. EM_CLASS_CITY = 25, // 城市交通事件检测 "City"
  15327. EM_CLASS_LETRACK = 26, // 民用简易跟踪"LeTrack"
  15328. EM_CLASS_SCR = 27, // 打靶相机"SCR"
  15329. EM_CLASS_STEREO_VISION = 28, // 立体视觉(双目)"StereoVision"
  15330. EM_CLASS_HUMANDETECT = 29, // 人体检测"HumanDetect"
  15331. EM_CLASS_FACE_ANALYSIS = 30, // 目标分析 "FaceAnalysis"
  15332. EM_CALSS_XRAY_DETECTION = 31, // X光检测 "XRayDetection"
  15333. EM_CLASS_STEREO_NUMBER = 32, // 双目相机客流量统计 "StereoNumber"
  15334. EM_CLASS_CROWDDISTRIMAP = 33, // 人群分布图
  15335. EM_CLASS_OBJECTDETECT = 34, // 目标检测
  15336. EM_CLASS_FACEATTRIBUTE = 35, // IVSS目标检测 "FaceAttribute"
  15337. EM_CLASS_FACECOMPARE = 36, // IVSS目标识别 "FaceCompare"
  15338. EM_CALSS_STEREO_BEHAVIOR = 37, // 立体行为分析 "StereoBehavior"
  15339. EM_CALSS_INTELLICITYMANAGER = 38, // 智慧城管 "IntelliCityMgr"
  15340. EM_CALSS_PROTECTIVECABIN = 39, // 防护舱(ATM舱内)"ProtectiveCabin"
  15341. EM_CALSS_AIRPLANEDETECT = 40, // 飞机行为检测 "AirplaneDetect"
  15342. EM_CALSS_CROWDPOSTURE = 41, // 人群态势(人群分布图服务)"CrowdPosture"
  15343. EM_CLASS_PHONECALLDETECT = 42, // 打电话检测 "PhoneCallDetect"
  15344. EM_CLASS_SMOKEDETECTION = 43, // 烟雾检测 "SmokeDetection"
  15345. EM_CLASS_BOATDETECTION = 44, // 船只检测 "BoatDetection"
  15346. EM_CLASS_SMOKINGDETECT = 45, // 吸烟检测 "SmokingDetect"
  15347. EM_CLASS_WATERMONITOR = 46, // 水利监测 "WaterMonitor"
  15348. EM_CLASS_GENERATEGRAPHDETECTION = 47, // 生成图规则 "GenerateGraphDetection"
  15349. EM_CLASS_TRAFFIC_PARK = 48, // 交通停车 "TrafficPark"
  15350. EM_CLASS_OPERATEMONITOR = 49, // 作业检测 "OperateMonitor"
  15351. EM_CLASS_INTELLI_RETAIL = 50, // 智慧零售大类 "IntelliRetail"
  15352. EM_CLASS_CLASSROOM_ANALYSE = 51, // 教育智慧课堂"ClassroomAnalyse"
  15353. EM_CLASS_FEATURE_ABSTRACT = 52, // 特征向量提取大类 "FeatureAbstract"
  15354. EM_CLASS_FACEBODY_DETECT = 53, // 人体检测大类 "FaceBodyDetect"
  15355. EM_CLASS_FACEBODY_ANALYSE = 54, // 人体识别大类 "FaceBodyAnalyse"
  15356. EM_CLASS_VEHICLES_DISTRI = 55, // 车辆密度 "VehiclesDistri"
  15357. EM_CLASS_INTELLI_BREED = 56, // 智慧养殖检测 "IntelliBreed"
  15358. EM_CLASS_INTELLI_PS = 57,
  15359. EM_CLASS_ELECTRIC_DETECT = 58, // 电力检测 "ElectricDetect"
  15360. EM_CLASS_RADAR_DETECT = 59, // 雷达检测 "RadarDetect"
  15361. EM_CLASS_PARKINGSPACE = 60, // 车位检测大类 "ParkingSpace"
  15362. EM_CLASS_INTELLI_FINANCE = 61, // 智慧金融 "IntelliFinance"
  15363. EM_CLASS_CROWD_ABNORMAL = 62, // 人群异常检测 "CrowdAbnormal"
  15364. EM_CLASS_ANATOMY_TEMP_DETECT = 63, // 人体温智能检测 "AnatomyTempDetect"
  15365. EM_CLASS_WEATHER_MONITOR = 64, // 天气监控 "WeatherMonitor"
  15366. EM_CLASS_ELEVATOR_ACCESS_CONTROL = 65, // 电梯门禁 "ElevatorAccessControl"
  15367. EM_CLASS_BREAK_RULE_BUILDING = 66, // 违章建筑 "BreakRuleBuilding"
  15368. EM_CLASS_FOREIGN_DETECT = 67, // 异物检测 "ForeignDetection"
  15369. EM_CLASS_PANORAMA_TRAFFIC = 68, // 全景交通 "PanoramaTraffic"
  15370. EM_CLASS_CONVEY_OR_BLOCK = 69, // 传送带阻塞 "ConveyorBlock"
  15371. EM_CLASS_KITCHEN_ANIMAL = 70, // 厨房有害动物检测 "KitchenAnimal"
  15372. EM_CLASS_ALLSEEINGEYE = 71, // 万物检测 "AllSeeingEye"
  15373. EM_CLASS_INTELLI_FIRE_CONTROL = 72, // 智慧消防 "IntelliFireControl"
  15374. EM_CLASS_CONVERYER_BELT = 73, // 传送带检测 "ConveyerBelt"
  15375. EM_CLASS_INTELLI_LOGISTICS = 74, // 智慧物流 "IntelliLogistics"
  15376. EM_CLASS_SMOKE_FIRE = 75, // 烟火检测"SmokeFire"
  15377. EM_CLASS_OBJECT_MONITOR = 76, // 物品监控"ObjectMonitor"
  15378. EM_CLASS_INTELLI_PARKING = 77, // 智能停车"IntelliParking"
  15379. EM_CLASS_FIRE_CONTROL = 78, // 智慧消防 "FireControl"
  15380. EM_CLASS_ANIMAL_DETECTION = 79, // 动物检测 "AnimalDetection"
  15381. EM_CLASS_FIRE_CONTROL_MONITOR = 80, // 火警监控 "FireControlMonitor"
  15382. EM_CLASS_FISH_MONITOR = 81, // 鱼群监测 "FishMonitor"
  15383. EM_CLASS_SHOPTRUCK_DETECT = 82,// 工程车检测“ShopTruckDetect”
  15384. } EM_CLASS_TYPE;
  15385. ///@brief 大类业务方案,内容与EM_SCENE_TYPE一致
  15386. typedef enum tagEM_SCENE_CLASS_TYPE
  15387. {
  15388. EM_SCENE_CLASS_UNKNOW, // 未知
  15389. EM_SCENE_CLASS_NORMAL, // "Normal" 普通场景
  15390. EM_SCENE_CLASS_TRAFFIC, // "Traffic" 交通场景
  15391. EM_SCENE_CLASS_TRAFFIC_PATROL, // "TrafficPatrol" 交通巡视
  15392. EM_SCENE_CLASS_FACEDETECTION, // "FaceDetection" 目标检测/目标识别
  15393. EM_SCENE_CLASS_ATM, // "ATM"
  15394. EM_SENCE_CLASS_INDOOR, // "Indoor" 室内行为分析,和普通规则相同,对室内场景的算法优化版
  15395. EM_SENCE_CLASS_FACERECOGNITION, // "TargetRecognition" 目标识别
  15396. EM_SENCE_CLASS_PS,
  15397. EM_SENCE_CLASS_NUMBERSTAT, // "NumberStat" 客流量统计
  15398. EM_SENCE_CLASS_HEAT_MAP, // "HeatMap" 热度图
  15399. EM_SENCE_CLASS_VIDEODIAGNOSIS, // "VideoDiagnosis" 视频诊断
  15400. EM_SENCE_CLASS_VEHICLEANALYSE, // "VehicleAnalyse" 车辆特征检测分析
  15401. EM_SENCE_CLASS_COURSERECORD, // "CourseRecord" 自动录播
  15402. EM_SENCE_CLASS_VEHICLE, // "Vehicle" 车载场景(车载行业用,不同于智能交通的Traffic)
  15403. EM_SENCE_CLASS_STANDUPDETECTION,// "StandUpDetection" 起立检测
  15404. EM_SCENE_CLASS_GATE, // "Gate" 卡口
  15405. EM_SCENE_CLASS_SDFACEDETECTION, // "SDFaceDetect" 多预置点目标检测,配置一条规则但可以在不同预置点下生效
  15406. EM_SCENE_CLASS_HEAT_MAP_PLAN, // "HeatMapPlan" 球机热度图计划
  15407. EM_SCENE_CLASS_NUMBERSTAT_PLAN, // "NumberStatPlan" 球机客流量统计计划
  15408. EM_SCENE_CLASS_ATMFD, // "ATMFD"金融目标检测
  15409. EM_SCENE_CLASS_HIGHWAY, // "Highway" 高速交通事件检测
  15410. EM_SCENE_CLASS_CITY, // "City" 城市交通事件检测
  15411. EM_SCENE_CLASS_LETRACK, // "LeTrack" 民用简易跟踪
  15412. EM_SCENE_CLASS_SCR, // "SCR" 打靶相机
  15413. EM_SCENE_CLASS_STEREO_VISION, // "StereoVision" 立体视觉(双目)
  15414. EM_SCENE_CLASS_HUMANDETECT, // "HumanDetect"人体检测
  15415. EM_SCENE_CLASS_FACEANALYSIS, // "FaceAnalysis" 目标分析
  15416. EM_SCENE_CLASS_XRAY_DETECTION, // "XRayDetection" X光检测
  15417. EM_SCENE_CLASS_STEREO_NUMBER, // "StereoNumber" 双目相机客流量统计
  15418. EM_SCENE_CLASS_CROWDDISTRIMAP, // "CrowdDistriMap"人群分布图
  15419. EM_SCENE_CLASS_OBJECTDETECT, // "ObjectDetect"目标检测
  15420. EM_SCENE_CLASS_FACEATTRIBUTE, // "FaceAttribute" IVSS目标检测
  15421. EM_SCENE_CLASS_FACECOMPARE, // "FaceCompare" IVSS目标识别
  15422. EM_SCENE_CLASS_STEREO_BEHAVIOR, // "StereoBehavior" 立体行为分析(典型场景ATM舱)
  15423. EM_SCENE_CLASS_INTELLICITYMANAGER, // "IntelliCityMgr" 智慧城管
  15424. EM_SCENE_CLASS_PROTECTIVECABIN, // "ProtectiveCabin" 防护舱(ATM舱内)
  15425. EM_SCENE_CLASS_AIRPLANEDETECT, // "AirplaneDetect" 飞机行为检测
  15426. EM_SCENE_CLASS_CROWDPOSTURE, // "CrowdPosture" 人群态势(人群分布图服务)
  15427. EM_SCENE_CLASS_PHONECALLDETECT, // "PhoneCallDetect" 打电话检测
  15428. EM_SCENE_CLASS_SMOKEDETECTION, // "SmokeDetection" 烟雾检测
  15429. EM_SCENE_CLASS_BOATDETECTION, // "BoatDetection" 船只检测
  15430. EM_SCENE_CLASS_SMOKINGDETECT, // "SmokingDetect" 吸烟检测
  15431. EM_SCENE_CLASS_WATERMONITOR, // "WaterMonitor" 水利监测
  15432. EM_SCENE_CLASS_GENERATEGRAPHDETECTION,// "GenerateGraphDetection" 生成图规则
  15433. EM_SCENE_CLASS_TRAFFIC_PARK, // "TrafficPark" 交通停车
  15434. EM_SCENE_CLASS_OPERATEMONITOR, // "OperateMonitor" 作业检测
  15435. EM_SCENE_CLASS_INTELLI_RETAIL, // IntelliRetail" 智慧零售大类
  15436. EM_SCENE_CLASS_CLASSROOM_ANALYSE,// "ClassroomAnalyse" 教育智慧课堂
  15437. EM_SCENE_CLASS_FEATURE_ABSTRACT, // "FeatureAbstract" 特征向量提取大类
  15438. EM_SCENE_CLASS_FACEBODY_DETECT, // "FaceBodyDetect" 人像检测大类
  15439. EM_SCENE_CLASS_FACEBODY_ANALYSE,// "FaceBodyAnalyse"人像识别大类
  15440. EM_SCENE_CLASS_VEHICLES_DISTRI, // "VehiclesDistri" 车辆密度
  15441. EM_SCENE_CLASS_INTELLI_BREED, // "IntelliBreed"智慧养殖检测
  15442. EM_SCENE_CLASS_INTELLI_PS,
  15443. EM_SCENE_CLASS_ELECTRIC_DETECT, // "ElectricDetect" 电力检测
  15444. EM_SCENE_CLASS_RADAR_DETECT, // "RadarDetect"雷达检测
  15445. EM_SCENE_CLASS_PARKINGSPACE, // "ParkingSpace" 车位检测大类
  15446. EM_SCENE_CLASS_INTELLI_FINANCE, // "IntelliFinance"智慧金融
  15447. EM_SCENE_CLASS_CROWD_ABNORMAL, // "CrowdAbnormal" 人群异常检测
  15448. EM_SCENE_CLASS_ANATOMYTEMP_DETECT, // "AnatomyTempDetect"
  15449. EM_SCENE_CLASS_WEATHER_MONITOR, // "WeatherMonitor"天气监控
  15450. EM_SCENE_CLASS_ELEVATOR_ACCESS_CONTROL, // "ElevatorAccessControl" 电梯门禁
  15451. EM_SCENE_CLASS_BREAK_RULE_BUILDING, // "BreakRuleBuilding"违章建筑
  15452. EM_SCENE_CLASS_PANORAMA_TRAFFIC, // "PanoramaTraffic"全景交通
  15453. EM_SCENE_CLASS_PORTRAIT_DETECT, // "PortraitDetect"人像检测
  15454. EM_SCENE_CLASS_CONVEY_OR_BLOCK, // "ConveyorBlock" 传送带阻塞
  15455. EM_SCENE_CLASS_KITCHEN_ANIMAL, // "KitchenAnimal" 厨房有害动物检测
  15456. EM_SCENE_CLASS_ALLSEEINGEYE, // "AllSeeingEye" 万物检测
  15457. EM_SCENE_CLASS_DRIVE, // "Drive" 驾驶行为分析
  15458. EM_SCENE_CLASS_DRIVEASSISTANT, // "DriveAssistant" 高级驾驶辅助系统
  15459. EM_SCENE_CLASS_INCABINMONITOR, // "InCabinMonitor" 车内驾驶舱监测
  15460. EM_SCENE_CLASS_BLINDSPOTDETECTION, // "BlindSpotDetection" 盲区检测
  15461. EM_SCENE_CLASS_CONVERYER_BELT, // "ConveyerBelt" 传送带检测
  15462. EM_SCENE_CLASS_INTELLI_LOGISTICS, // "IntelliLogistics" 智慧物流
  15463. EM_SCENE_CLASS_SMOKE_FIRE, // "SmokeFire" 烟火检测
  15464. EM_SCENE_CLASS_OBJECT_MONITOR, // "ObjectMonitor" 物品监控
  15465. EM_SCENE_CLASS_FIRE_FACILITIES, // "FireFacilities" 消防设施检测
  15466. EM_SCENE_CLASS_FIRE_CONTROL, // "IntelliFireControl" 智慧消防
  15467. EM_SCENE_CLASS_INTELLI_PARKING, // "IntelliParking" 智能停车
  15468. EM_SCENE_CLASS_FINANCE_REGULATION, // "FinanceRegulation" 金融常规
  15469. EM_SCENE_CLASS_ENERGY, // "Energy" 智慧能源
  15470. EM_SCENE_CLASS_FIRE_CONTROL_EX, // "FireControl" 智慧消防
  15471. EM_SCENE_CLASS_ANIMAL_DETECTION, // "AnimalDetection" 动物检测
  15472. EM_SCENE_CLASS_FIRE_CONTROL_MONITOR, // "FireControlMonitor" 火警监控
  15473. EM_SCENE_CLASS_PROTECTIVE_SUIT, // "ProtectiveSuit" 防护服或工作服检测
  15474. EM_SCENE_CLASS_FISH_MONITOR, // "FishMonitor" 鱼群监测
  15475. EM_SCENE_CLASS_SHOPTRUCK_DETECT, // "ShopTruckDetect"工程车检测
  15476. } EM_SCENE_CLASS_TYPE;
  15477. ///@brief 智能报警事件公共信息
  15478. typedef struct tagEVENT_INTELLI_COMM_INFO
  15479. {
  15480. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  15481. int nPresetID; // 该事件触发的预置点,取值范围为0~255,大于0表示在此预置点时有效。
  15482. BYTE bReserved[124]; // 保留字节,留待扩展.
  15483. } EVENT_INTELLI_COMM_INFO;
  15484. ///@brief 智能事件抓图信息
  15485. typedef struct tagNET_INTELLIGENCE_IMAGE_INFO
  15486. {
  15487. UINT nOffSet; // 在二进制数据块中的偏移
  15488. UINT nLength; // 图片大小,单位字节
  15489. UINT nWidth; // 图片宽度(像素)
  15490. UINT nHeight; // 图片高度(像素)
  15491. UINT nIndexInData; // 在上传图片数据中的图片序号
  15492. BYTE byReserved[44]; // 预留字节
  15493. }NET_INTELLIGENCE_IMAGE_INFO;
  15494. ///@brief 交通车辆部分信息
  15495. typedef struct tagEVENT_TRAFFIC_CAR_PART_INFO
  15496. {
  15497. char szMachineName[128]; // 本地或远程设备名称 来源于普通配置General.MachineName
  15498. char szRoadwayNo[32]; // 道路编号
  15499. char szPlateNumber[32]; // 车牌号码
  15500. char szCategory[32]; // 车辆子类型
  15501. BYTE bReserved[288]; // 保留字节
  15502. }EVENT_TRAFFIC_CAR_PART_INFO;
  15503. ///@brief 交通车辆行驶方向类型
  15504. typedef enum tagEM_TRAFFICCAR_MOVE_DIRECTION
  15505. {
  15506. EM_TRAFFICCAR_MOVE_DIRECTION_UNKNOWN, // 未知的
  15507. EM_TRAFFICCAR_MOVE_DIRECTION_STRAIGHT, // 直行
  15508. EM_TRAFFICCAR_MOVE_DIRECTION_TURN_LEFT, // 左转
  15509. EM_TRAFFICCAR_MOVE_DIRECTION_TURN_RIGHT, // 右转
  15510. EM_TRAFFICCAR_MOVE_DIRECTION_TURN_AROUND, // 掉头
  15511. }EM_TRAFFICCAR_MOVE_DIRECTION;
  15512. ///@brief 允许名单权限列表
  15513. typedef struct tagNET_WHITE_LIST_AUTHORITY_LIST
  15514. {
  15515. BOOL bOpenGate; // 是否有开闸权限
  15516. BYTE bReserved[16]; // 保留字节
  15517. }NET_WHITE_LIST_AUTHORITY_LIST;
  15518. ///@brief 允许名单信息
  15519. typedef struct tagNET_TRAFFICCAR_WHITE_LIST
  15520. {
  15521. BOOL bTrustCar; // 车牌是否属于允许名单
  15522. NET_TIME stuBeginTime; // 允许名单起始时间
  15523. NET_TIME stuCancelTime; // 允许名单过期时间
  15524. NET_WHITE_LIST_AUTHORITY_LIST stuAuthorityList; // 允许名单权限列表
  15525. BYTE bReserved[32]; // 保留字节
  15526. }NET_TRAFFICCAR_WHITE_LIST;
  15527. ///@brief 禁止名单信息
  15528. typedef struct tagNET_TRAFFICCAR_BLACK_LIST
  15529. {
  15530. BOOL bEnable; // 是否已启用禁止名单
  15531. BOOL bIsBlackCar; // 车牌是否属于禁止名单
  15532. NET_TIME stuBeginTime; // 禁止名单起始时间
  15533. NET_TIME stuCancelTime; // 禁止名单过期时间
  15534. EM_NET_TRAFFIC_CAR_CONTROL_TYPE emControlType; // 布控类型
  15535. UINT nControlledRouteID; // 布控路线ID
  15536. BYTE bReserved[24]; // 保留字节
  15537. }NET_TRAFFICCAR_BLACK_LIST;
  15538. ///@brief 车辆类型
  15539. typedef enum tagEM_TRAFFICCAR_CAR_TYPE
  15540. {
  15541. EM_TRAFFICCAR_CAR_TYPE_UNKNOWN, // 未知
  15542. EM_TRAFFICCAR_CAR_TYPE_TRUST_CAR, // 允许名单车辆
  15543. EM_TRAFFICCAR_CAR_TYPE_SUSPICIOUS_CAR, // 禁止名单车辆
  15544. EM_TRAFFICCAR_CAR_TYPE_NORMAL_CAR, // 非允许名单且非禁止名单车辆
  15545. }EM_TRAFFICCAR_CAR_TYPE;
  15546. ///@brief 车道类型
  15547. typedef enum tagEM_TRAFFICCAR_LANE_TYPE
  15548. {
  15549. EM_TRAFFICCAR_LANE_TYPE_UNKNOWN, // 未知
  15550. EM_TRAFFICCAR_LANE_TYPE_NORMAL, // 普通车道
  15551. EM_TRAFFICCAR_LANE_TYPE_NONMOTOR, // 非机动车车道
  15552. EM_TRAFFICCAR_LANE_TYPE_LIGHT_DUTY, // 小型车车道
  15553. EM_TRAFFICCAR_LANE_TYPE_BUS, // 公交车车道
  15554. EM_TRAFFICCAR_LANE_TYPE_EMERGENCY, // 应急车道
  15555. EM_TRAFFICCAR_LANE_TYPE_DANGEROUS, // 危险品车道
  15556. EM_TRAFFICCAR_LANE_TYPE_TIDAL, // 潮汐车道
  15557. }EM_TRAFFICCAR_LANE_TYPE;
  15558. ///@brief 车流量方向
  15559. typedef enum tagEM_VEHICLE_DIRECTION
  15560. {
  15561. NET_VEHICLE_DIRECTION_UNKOWN, // 未知
  15562. NET_VEHICLE_DIRECTION_HEAD, // 车头
  15563. NET_VEHICLE_DIRECTION_TAIL, // 车尾
  15564. NET_VEHICLE_DIRECTION_VEHBODYSIDE, // 车身(侧面)
  15565. }EM_VEHICLE_DIRECTION;
  15566. ///@brief 收费公路车辆通行费车型分类
  15567. typedef enum tagEM_TOLLS_VEHICLE_TYPE
  15568. {
  15569. EM_TOLLS_VEHICLE_TYPE_UNKNOWN, // 未知
  15570. EM_TOLLS_VEHICLE_TYPE_PASSENGER_CAR1, // 一型客车
  15571. EM_TOLLS_VEHICLE_TYPE_PASSENGER_CAR2, // 二型客车
  15572. EM_TOLLS_VEHICLE_TYPE_PASSENGER_CAR3, // 三型客车
  15573. EM_TOLLS_VEHICLE_TYPE_PASSENGER_CAR4, // 四型客车
  15574. EM_TOLLS_VEHICLE_TYPE_TRUCK1 = 11, // 一型货车
  15575. EM_TOLLS_VEHICLE_TYPE_TRUCK2, // 二型货车
  15576. EM_TOLLS_VEHICLE_TYPE_TRUCK3, // 三型货车
  15577. EM_TOLLS_VEHICLE_TYPE_TRUCK4, // 四型货车
  15578. EM_TOLLS_VEHICLE_TYPE_TRUCK5, // 五型货车
  15579. EM_TOLLS_VEHICLE_TYPE_TRUCK6 = 16, // 六型货车
  15580. EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE1 = 21, // 一型专项作业车
  15581. EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE2, // 二型专项作业车
  15582. EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE3, // 三型专项作业车
  15583. EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE4, // 四型专项作业车
  15584. EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE5, // 五型专项作业车
  15585. EM_TOLLS_VEHICLE_TYPE_OPERATION_VEHICLE6 = 26, // 六型专项作业车
  15586. }EM_TOLLS_VEHICLE_TYPE;
  15587. ///@brief 车身抠图
  15588. typedef struct tagNET_TRAFFICCAR_ORIGINAL_VEHICLE
  15589. {
  15590. UINT nOffset; // 在二进制数据块中的偏移
  15591. UINT nLength; // 数据大小,单位:字节
  15592. UINT nIndexInData; // 在上传图片数据中的图片序号
  15593. char szReserved[60]; // 保留字节
  15594. }NET_TRAFFICCAR_ORIGINAL_VEHICLE;
  15595. ///@brief 按功能划分的车辆类型
  15596. typedef enum tagEM_VEHICLE_TYPE_BY_FUNC
  15597. {
  15598. EM_VEHICLE_TYPE_BY_FUNC_UNKNOWN, // 未知
  15599. /*以下为特种车辆类型*/
  15600. EM_VEHICLE_TYPE_BY_FUNC_TANK_CAR, // 危化品车辆
  15601. EM_VEHICLE_TYPE_BY_FUNC_SLOT_TANK_CAR, // 槽罐车
  15602. EM_VEHICLE_TYPE_BY_FUNC_DREGS_CAR, // 渣土车
  15603. EM_VEHICLE_TYPE_BY_FUNC_CONCRETE_MIXER_TRUCK, // 混凝土搅拌车
  15604. EM_VEHICLE_TYPE_BY_FUNC_TAXI, // 出租车
  15605. EM_VEHICLE_TYPE_BY_FUNC_POLICE, // 警车
  15606. EM_VEHICLE_TYPE_BY_FUNC_AMBULANCE, // 救护车
  15607. EM_VEHICLE_TYPE_BY_FUNC_GENERAL, // 普通车
  15608. EM_VEHICLE_TYPE_BY_FUNC_WATERING_CAR, // 洒水车
  15609. EM_VEHICLE_TYPE_BY_FUNC_FIRE_ENGINE, // 消防车
  15610. EM_VEHICLE_TYPE_BY_FUNC_MACHINESHOP_TRUCK, // 工程车
  15611. EM_VEHICLE_TYPE_BY_FUNC_POWER_LOT_VEHICLE, // 粉粒物料车
  15612. EM_VEHICLE_TYPE_BY_FUNC_SUCTION_SEWAGE_TRUCK, // 吸污车
  15613. EM_VEHICLE_TYPE_BY_FUNC_NORMAL_TANK_TRUCK, // 普通罐车
  15614. EM_VEHICLE_TYPE_BY_FUNC_SCHOOL_BUS, // 校车
  15615. EM_VEHICLE_TYPE_BY_FUNC_EXCAVATOR, // 挖掘机
  15616. EM_VEHICLE_TYPE_BY_FUNC_BULLDOZER, // 推土车
  15617. EM_VEHICLE_TYPE_BY_FUNC_CRANE, // 吊车
  15618. EM_VEHICLE_TYPE_BY_FUNC_PUMP_TRUCK, // 泵车
  15619. EM_VEHICLE_TYPE_BY_FUNC_POULTRY, // 禽畜车
  15620. EM_VEHICLE_TYPE_BY_FUNC_TRACTOR, // 拖拉机
  15621. /*以上为特种车辆类型*/
  15622. } EM_VEHICLE_TYPE_BY_FUNC;
  15623. ///@brief 车牌属性
  15624. typedef enum tagEM_PLATE_ATTRIBUTE
  15625. {
  15626. EM_PLATE_ATTRIBUTE_UNKNOWN, // 未知
  15627. EM_PLATE_ATTRIBUTE_NORMAL, // 正常
  15628. EM_PLATE_ATTRIBUTE_NO_PLATE, // 无牌
  15629. EM_PLATE_ATTRIBUTE_PARTIAL_OCCLUSION, // 部分遮挡/污损
  15630. EM_PLATE_ATTRIBUTE_FULL_OCCLUSION, // 完全遮挡/污损
  15631. } EM_PLATE_ATTRIBUTE;
  15632. ///@brief TrafficCar 交通车辆信息
  15633. typedef struct tagDEV_EVENT_TRAFFIC_TRAFFICCAR_INFO
  15634. {
  15635. char szPlateNumber[32]; // 车牌号码
  15636. char szPlateType[32]; // 号牌类型 "Unknown" 未知; "Normal" 蓝牌黑牌; "Yellow" 黄牌; "DoubleYellow" 双层黄尾牌
  15637. // "Police" 警牌;"SAR" 港澳特区号牌; "Trainning" 教练车号牌; "Personal" 个性号牌; "Agri" 农用牌
  15638. // "Embassy" 使馆号牌; "Moto" 摩托车号牌; "Tractor" 拖拉机号牌; "Other" 其他号牌
  15639. char szPlateColor[32]; // 车牌颜色 "Blue","Yellow", "White","Black","YellowbottomBlackText","BluebottomWhiteText","BlackBottomWhiteText","ShadowGreen","YellowGreen"
  15640. char szVehicleColor[32]; // 车身颜色 "White", "Black", "Red", "Yellow", "Gray", "Blue","Green"
  15641. int nSpeed; // 速度 单位Km/H
  15642. char szEvent[64]; // 触发的相关事件 参见事件列表Event List,只包含交通相关事件。
  15643. char szViolationCode[32]; // 违章代码 详见TrafficGlobal.ViolationCode
  15644. char szViolationDesc[64]; // 违章描述
  15645. int nLowerSpeedLimit; // 速度下限
  15646. int nUpperSpeedLimit; // 速度上限
  15647. int nOverSpeedMargin; // 限高速宽限值 单位:km/h
  15648. int nUnderSpeedMargin; // 限低速宽限值 单位:km/h
  15649. int nLane; // 车道 参见事件列表Event List中卡口和路口事件。
  15650. int nVehicleSize; // 车辆大小,-1表示未知,否则按位
  15651. // 第0位:"Light-duty", 小型车
  15652. // 第1位:"Medium", 中型车
  15653. // 第2位:"Oversize", 大型车
  15654. // 第3位:"Minisize", 微型车
  15655. // 第4位:"Largesize", 长车
  15656. float fVehicleLength; // 车辆长度 单位米
  15657. int nSnapshotMode; // 抓拍方式 0-未分类,1-全景,2-近景,4-同向抓拍,8-反向抓拍,16-号牌图像
  15658. char szChannelName[32]; // 本地或远程的通道名称,可以是地点信息 来源于通道标题配置ChannelTitle.Name
  15659. char szMachineName[256]; // 本地或远程设备名称 来源于普通配置General.MachineName
  15660. char szMachineGroup[256]; // 机器分组或叫设备所属单位 默认为空,用户可以将不同的设备编为一组,便于管理,可重复。
  15661. char szRoadwayNo[64]; // 道路编号
  15662. char szDrivingDirection[3][DH_MAX_DRIVINGDIRECTION]; //
  15663. // 行驶方向 , "DrivingDirection"
  15664. // "Approach"-上行,即车辆离设备部署点越来越近;"Leave"-下行,
  15665. // 即车辆离设备部署点越来越远,第二和第三个参数分别代表上行和
  15666. // 下行的两个地点
  15667. char *szDeviceAddress; // 设备地址,OSD叠加到图片上的,来源于配置TrafficSnapshot.DeviceAddress,'\0'结束
  15668. char szVehicleSign[32]; // 车辆标识
  15669. DH_SIG_CARWAY_INFO_EX stuSigInfo; // 由车检器产生抓拍信号冗余信息
  15670. char *szMachineAddr; // 设备部署地点
  15671. float fActualShutter; // 当前图片曝光时间,单位为毫秒
  15672. BYTE byActualGain; // 当前图片增益,范围为0~100
  15673. BYTE byDirection; // 车道方向,0-南向北 1-西南向东北 2-西向东 3-西北向东南 4-北向南 5-东北向西南 6-东向西 7-东南向西北 8-未知 9-自定义
  15674. BYTE byReserved[2];
  15675. char* szDetailedAddress; // 详细地址, 作为szDeviceAddress的补充
  15676. char szDefendCode[DH_COMMON_STRING_64]; // 图片防伪码
  15677. int nTrafficBlackListID; // 关联禁止名单数据库记录默认主键ID, 0,无效;> 0,禁止名单数据记录
  15678. DH_COLOR_RGBA stuRGBA; // 车身颜色RGBA
  15679. NET_TIME stSnapTime; // 抓拍时间
  15680. int nRecNo; // 记录编号
  15681. char szCustomParkNo[DH_COMMON_STRING_32 + 1]; // 自定义车位号(停车场用)
  15682. BYTE byReserved1[3];
  15683. int nDeckNo; // 车板位号
  15684. int nFreeDeckCount; // 空闲车板数量
  15685. int nFullDeckCount; // 占用车板数量
  15686. int nTotalDeckCount; // 总共车板数量
  15687. char szViolationName[64]; // 违章名称
  15688. unsigned int nWeight; // 车重(单位 Kg)
  15689. char szCustomRoadwayDirection[32]; // 自定义车道方向,byDirection为9时有效
  15690. BYTE byPhysicalLane; // 物理车道号,取值0到5
  15691. BYTE byReserved2[3];
  15692. EM_TRAFFICCAR_MOVE_DIRECTION emMovingDirection; // 车辆行驶方向
  15693. NET_TIME stuEleTagInfoUTC; // 对应电子车牌标签信息中的过车时间(ThroughTime)
  15694. NET_RECT stuCarWindowBoundingBox; // 车窗包围盒,0~8191
  15695. NET_TRAFFICCAR_WHITE_LIST stuWhiteList; // 允许名单信息
  15696. EM_TRAFFICCAR_CAR_TYPE emCarType; // 车辆类型
  15697. EM_TRAFFICCAR_LANE_TYPE emLaneType; // 车道类型
  15698. char szVehicleBrandYearText[64]; // 车系年款翻译后文本内容
  15699. char szCategory[32]; // 车辆子类型
  15700. NET_TRAFFICCAR_BLACK_LIST stuBlackList; // 禁止名单信息
  15701. EM_VEHICLE_DIRECTION emFlowDirection; // 车流量方向
  15702. EM_TOLLS_VEHICLE_TYPE emTollsVehicleType; // 收费公路车辆通行费车型分类
  15703. UINT nAxleType; // 轴型代码,参考轴型国标 0代表其他
  15704. UINT nAxleCount; // 车轴数量
  15705. UINT nWheelNum; // 车轮数量
  15706. NET_TRAFFICCAR_ORIGINAL_VEHICLE stuOriginalVehicle; // 车身抠图
  15707. EM_VEHICLE_TYPE_BY_FUNC emVehicleTypeByFunc; // 按功能划分的车辆类型
  15708. unsigned short nSunBrand; // 车辆子品牌
  15709. unsigned short nBrandYear; // 车辆年款
  15710. int nTrafficLightType; // 交通灯类型,仅在EVENT_IVS_TRAFFIC_RUNREDLIGHT中有效, 0;未知, 1:箭头灯, 2:圆形灯
  15711. EM_PLATE_ATTRIBUTE emPlateAttribute; // 车牌属性
  15712. BYTE bReserved[132]; // 保留字节,留待扩展.
  15713. }DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO;
  15714. #ifndef LINUX64_JNA
  15715. #pragma pack(push)
  15716. #pragma pack(4)
  15717. #endif
  15718. ///@brief GPS信息
  15719. typedef struct tagNET_GPS_INFO
  15720. {
  15721. unsigned int nLongitude; // 经度(单位是百万分之一度)
  15722. // 西经:0 - 180000000 实际值应为: 180*1000000 – dwLongitude
  15723. // 东经:180000000 - 360000000 实际值应为: dwLongitude – 180*1000000
  15724. // 如: 300168866应为(300168866 - 180*1000000)/1000000 即东经120.168866度
  15725. unsigned int nLatidude; // 纬度(单位是百万分之一度)
  15726. // 南纬:0 - 90000000 实际值应为: 90*1000000 – dwLatidude
  15727. // 北纬:90000000 – 180000000 实际值应为: dwLatidude – 90*1000000
  15728. // 如: 120186268应为 (120186268 - 90*1000000)/1000000 即北纬30. 186268度
  15729. double dbAltitude; // 高度,单位为米
  15730. double dbSpeed; // 速度,单位km/H
  15731. double dbBearing; // 方向角,单位°
  15732. BYTE bReserved[8]; // 保留字段
  15733. }NET_GPS_INFO;
  15734. #ifndef LINUX64_JNA
  15735. #pragma pack(pop)
  15736. #endif
  15737. ///@brief GPS信息
  15738. typedef struct tagNET_GPS_INFO_EX
  15739. {
  15740. int nLongitude; // 经度(单位是百万分之一度)
  15741. // 西经:0 - 180000000 实际值应为: 180*1000000 – dwLongitude
  15742. // 东经:180000000 - 360000000 实际值应为: dwLongitude – 180*1000000
  15743. // 如: 300168866应为(300168866 - 180*1000000)/1000000 即东经120.168866度
  15744. int nLatidude; // 纬度(单位是百万分之一度)
  15745. // 南纬:0 - 90000000 实际值应为: 90*1000000 – dwLatidude
  15746. // 北纬:90000000 – 180000000 实际值应为: dwLatidude – 90*1000000
  15747. // 如: 120186268应为 (120186268 - 90*1000000)/1000000 即北纬30. 186268度
  15748. double nAltitude; // 高度,单位为米
  15749. char szReserved[48]; // 保留字段
  15750. } NET_GPS_INFO_EX;
  15751. ///@brief 事件扩展信息
  15752. typedef struct tagNET_EXTENSION_INFO
  15753. {
  15754. char szEventID[MAX_EVENT_ID_LEN]; // 国标事件ID
  15755. BYTE byReserved[80]; // 保留字节
  15756. } NET_EXTENSION_INFO;
  15757. ///@brief 全景广角图
  15758. typedef struct tagSCENE_IMAGE_INFO_EX
  15759. {
  15760. unsigned int nOffSet; // 在二进制数据块中的偏移
  15761. unsigned int nLength; // 图片大小,单位字节
  15762. unsigned int nWidth; // 图片宽度(像素)
  15763. unsigned int nHeight; // 图片高度(像素)
  15764. char szFilePath[260]; // 全景图片路径
  15765. UINT nIndexInData; // 在上传图片数据中的图片序号
  15766. char szImageID[42]; // 图片ID
  15767. char szReserved[6]; // 预留字节
  15768. BYTE byReserved[460]; // 预留字节
  15769. }SCENE_IMAGE_INFO_EX;
  15770. ///@brief 制服样式
  15771. typedef enum tagEM_UNIFORM_STYLE
  15772. {
  15773. EM_UNIFORM_STYLE_UNKNOWN, // 未知
  15774. EM_UNIFORM_STYLE_POLICE, // 警服
  15775. EM_UNIFORM_STYLE_NOUNIFORM, // 无制服
  15776. EM_UNIFORM_STYLE_SINOPEC, // 中石化制服
  15777. EM_UNIFORM_STYLE_GUARD, // 防护服
  15778. EM_UNIFORM_STYLE_VEST, // 马甲
  15779. EM_UNIFORM_STYLE_SATNITATION, // 环卫服
  15780. EM_UNIFORM_STYLE_TAKEOUT, // 外卖服
  15781. EM_UNIFORM_STYLE_JUN,
  15782. EM_UNIFORM_STYLE_EXPRESS, // 快递服
  15783. EM_UNIFORM_STYLE_SECURITY // 保安服
  15784. }EM_UNIFORM_STYLE;
  15785. ///@brief 检测到的人信息
  15786. typedef struct tagNET_VAOBJECT_NUMMAN
  15787. {
  15788. UINT nObjectID; // 物体ID,每个ID表示一个唯一的物体
  15789. EM_UNIFORM_STYLE emUniformStyle; // 制服样式
  15790. NET_RECT stuBoundingBox; // 包围盒,手套对象在全景图中的框坐标,为0~8191相对坐标
  15791. NET_RECT stuOriginalBoundingBox; // 包围盒,绝对坐标
  15792. BYTE byReserved[128]; // 预留字节
  15793. }NET_VAOBJECT_NUMMAN;
  15794. ///@brief 事件级别
  15795. typedef enum tagEM_EVENT_LEVEL
  15796. {
  15797. EM_EVENT_LEVEL_UNKNOWN = -1, // 未知
  15798. EM_EVENT_LEVEL_HINT, // 提示
  15799. EM_EVENT_LEVEL_GENERAL, // 普通
  15800. EM_EVENT_LEVEL_WARNING // 警告
  15801. }EM_EVENT_LEVEL;
  15802. ///@brief 预置点的坐标和放大倍数
  15803. typedef struct tagNET_PRESET_POSITION
  15804. {
  15805. int nHorizontal; // 水平坐标
  15806. int nVertical; // 垂直坐标
  15807. int nMagnification; // 放大倍数
  15808. }NET_PRESET_POSITION;
  15809. ///@brief 物体动作支持类型
  15810. typedef enum tagEM_ACTION
  15811. {
  15812. EM_ACTION_UNKNOWN, // 未知类型
  15813. EM_ACTION_APPEAR, // 第一次出现在检测区域中,或者跟踪时物理分离动作中尚未确认的新物体
  15814. EM_ACTION_MOVE, // 正在运动,物体被正常跟踪
  15815. EM_ACTION_STAY, // 物体停止运动,这个物体不会在出现在下一帧物体列表中,物体开始移动后再恢复在列表中
  15816. EM_ACTION_REMOVE, // 物体从原来的区域移除,或者被遮盖,或者跟踪失败,移除的物体ID不会被自动删除,并且物体重现出现是有可能再次被使用
  15817. EM_ACTION_DISAPPEAR, // 运动到跟踪区域之外,或者达到了算法跟踪物体的上限而被清除,消失的物体ID将不再出现
  15818. EM_ACTION_SPLIT, // 从其他物体中分离出来,可以用来检测物体遗留,关联ID表示从这个ID对应物体分离
  15819. EM_ACTION_MERGE, // 合并到其他物体,可以用来检查物体保全,关联ID表示合并到这个ID对相应的物体
  15820. EM_ACTION_RENAME, // 如果算法无法确定分离动作中某个物体是原先同一个物体,应该创建先一个新的物体,证据充分后再重命名为旧的物体ID,关联ID表示暂时使用的新的ID。
  15821. }EM_ACTION;
  15822. ///@brief 船只行驶方向
  15823. typedef enum tagEM_BOAT_DIRECTION
  15824. {
  15825. EM_BOAT_DIRECTION_UNKNOWN, // 未知
  15826. EM_BOAT_DIRECTION_OPPOSITE, // 逆向
  15827. EM_BOAT_DIRECTION_POSITIVE, // 正向
  15828. }EM_BOAT_DIRECTION;
  15829. ///@brief 船只物体信息
  15830. typedef struct tagNET_BOAT_OBJECT
  15831. {
  15832. UINT nObjectID; // 物体ID,每个ID表示一个唯一的物体,不同的物体不能共用一个ID,已经使用过的ID也不能再次使用。
  15833. int nDistance; // 船身体到相机的距离,单位米 取值范围0-65535
  15834. int nHeight; // 船的高度,单位米 取值范围0-255
  15835. int nWidth; // 船的长度,单位米 取值范围0-2000
  15836. int nSpeed; // 船的速度,单位米/秒 取值范围0-255
  15837. EM_ACTION emActionType; // 物体动作支持类型
  15838. NET_RECT stuBoundingBox; // 矩形范围,点的坐标归一化到[0,8191]区间
  15839. NET_RECT stuOriginalBoundingBox; // 包围盒(绝对坐标)
  15840. EM_BOAT_DIRECTION emDirection; // 行驶方向
  15841. char szBoatCode[64]; // 船名或船舷号
  15842. BYTE byReserved[60]; // 预留字节
  15843. }NET_BOAT_OBJECT;
  15844. ///@brief 事件类型EVENT_IVS_CROSSLINEDETECTION(警戒线事件)对应的数据块描述信息
  15845. typedef struct tagDEV_EVENT_CROSSLINE_INFO
  15846. {
  15847. int nChannelID; // 通道号
  15848. char szName[128]; // 事件名称
  15849. char bReserved1[4]; // 字节对齐
  15850. double PTS; // 时间戳(单位是毫秒)
  15851. NET_TIME_EX UTC; // 事件发生的时间
  15852. int nEventID; // 事件ID
  15853. DH_MSG_OBJECT stuObject; // 检测到的物体
  15854. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  15855. DH_POINT DetectLine[DH_MAX_DETECT_LINE_NUM]; // 规则检测线
  15856. int nDetectLineNum; // 规则检测线顶点数
  15857. DH_POINT TrackLine[DH_MAX_TRACK_LINE_NUM]; // 物体运动轨迹
  15858. int nTrackLineNum; // 物体运动轨迹顶点数
  15859. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  15860. BYTE bDirection; // 表示入侵方向, 0-由左至右, 1-由右至左
  15861. BYTE byReserved[1];
  15862. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  15863. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  15864. int nSourceIndex; // 事件源设备上的index,-1表示数据无效,-1表示数据无效
  15865. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  15866. unsigned int nOccurrenceCount; // 事件触发累计次数
  15867. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  15868. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  15869. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  15870. UINT nObjetcHumansNum; // 检测到人的数量
  15871. NET_VAOBJECT_NUMMAN stuObjetcHumans[100]; // 检测的到人
  15872. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  15873. EM_EVENT_LEVEL emEventType; // 事件级别
  15874. NET_PRESET_POSITION stPosition; // 预置点的坐标和放大倍数
  15875. UINT nVisibleHFOV; // 可见光横向视场角,单位度 实际角度乘以100
  15876. UINT nVisibleVFOV; // 可见光纵向视场角,单位度 实际角度乘以100
  15877. UINT nCurChannelHFOV; // 当前报警通道的横向视场角,单位度,实际角度乘以100
  15878. UINT nCurChannelVFOV; // 当前报警通道的纵向视场角,单位度,实际角度乘以100
  15879. int nImageNum; // 图片信息个数
  15880. NET_IMAGE_INFO_EX2* pImageArray; // 图片信息数组
  15881. int nCarMirrorStatus; // 车的后视镜状态,-1: 未知, 0: 正常, 1: 不正常(如数量缺失等)
  15882. int nCarLightStatus; // 车的车灯状态,-1: 未知, 0: 正常, 1:不正常(如灯未亮等)
  15883. UINT nObjectBoatsNum; // 船只物体个数
  15884. NET_BOAT_OBJECT stuBoatObjects[100]; // 船只物品信息
  15885. int nUpDownGoing; // 车道/航道方向, 0:未知, 1:上行, 2:下行
  15886. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  15887. BYTE byReserved1[452]; // 预留字节
  15888. } DEV_EVENT_CROSSLINE_INFO;
  15889. ///@brief 事件类型EVENT_IVS_CROSSLINEDETECTION_EX(警戒线事件)对应的数据块描述信息
  15890. typedef struct tagDEV_EVENT_CROSSLINE_INFO_EX
  15891. {
  15892. DWORD dwSize;
  15893. int nChannelID; // 通道号
  15894. char szName[128]; // 事件名称
  15895. char bReserved1[4]; // 字节对齐
  15896. float PTS; // 时间戳(单位是毫秒)
  15897. NET_TIME_EX UTC; // 事件发生的时间
  15898. int nEventID; // 事件ID
  15899. DH_MSG_OBJECT_EX stuObject; // 检测到的物体
  15900. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  15901. DH_POINT DetectLine[DH_MAX_DETECT_LINE_NUM]; // 规则检测线
  15902. int nDetectLineNum; // 规则检测线顶点数
  15903. DH_POINT TrackLine[DH_MAX_TRACK_LINE_NUM]; // 物体运动轨迹
  15904. int nTrackLineNum; // 物体运动轨迹顶点数
  15905. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  15906. BYTE bDirection; // 表示入侵方向, 0-由左至右, 1-由右至左
  15907. BYTE byReserved[1];
  15908. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  15909. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  15910. int nSourceIndex; // 事件源设备上的index,-1表示数据无效,-1表示数据无效
  15911. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  15912. unsigned int nOccurrenceCount; // 事件触发累计次数
  15913. int nMsgObjArrayCount; // 检测到的物体信息个数
  15914. DH_MSG_OBJECT_EX* pMsgObjArray; // 检测到的物体信息数组指针
  15915. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  15916. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  15917. UINT nObjetcHumansNum; // 检测到人的数量
  15918. NET_VAOBJECT_NUMMAN stuObjetcHumans[100]; // 检测的到人
  15919. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  15920. EM_EVENT_LEVEL emEventType; // 事件级别
  15921. NET_PRESET_POSITION stPosition; // 预置点的坐标和放大倍数
  15922. UINT nVisibleHFOV; // 可见光横向视场角,单位度 实际角度乘以100
  15923. UINT nVisibleVFOV; // 可见光纵向视场角,单位度 实际角度乘以100
  15924. UINT nCurChannelHFOV; // 当前报警通道的横向视场角,单位度,实际角度乘以100
  15925. UINT nCurChannelVFOV; // 当前报警通道的纵向视场角,单位度,实际角度乘以100
  15926. int nImageNum; // 图片信息个数
  15927. NET_IMAGE_INFO_EX2* pImageArray; // 图片信息数组
  15928. int nCarMirrorStatus; // 车的后视镜状态,-1: 未知 0-正常,1-不正常(如数量缺失等)
  15929. int nCarLightStatus; // 车的车灯状态,-1: 未知 0-正常,1-不正常(如灯未亮等)
  15930. UINT nObjectBoatsNum; // 船只物体个数
  15931. NET_BOAT_OBJECT stuBoatObjects[100]; // 船只物品信息
  15932. int nUpDownGoing; // 车道/航道方向, 0:未知, 1:上行, 2:下行
  15933. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  15934. BYTE byReserved1[452]; // 预留字节
  15935. } DEV_EVENT_CROSSLINE_INFO_EX;
  15936. ///@brief 货物通道信息(IPC捷克物流定制)
  15937. typedef struct tagNET_CUSTOM_INFO
  15938. {
  15939. int nCargoChannelNum; // 货物通道个数
  15940. float fCoverageRate[MAX_CARGO_CHANNEL_NUM]; // 货物覆盖率
  15941. BYTE byReserved[40]; // 保留字节
  15942. } NET_CUSTOM_INFO;
  15943. ///@brief 特殊区域类型
  15944. typedef enum tagEM_SPECIAL_REGION_TYPE
  15945. {
  15946. EM_SPEICAL_REGION_UNKNOW = 0 , // 未知
  15947. EM_SPEICAL_REGION_HIGH_LIGHT , // 高亮;ATM键盘区
  15948. EM_SPEICAL_REGION_REGULAR_BLINK , // 规律的闪烁;ATM插卡区
  15949. EM_SPEICAL_REGION_IRREGULAR_BLINK , // 不规律的闪烁;ATM屏幕区
  15950. }EM_SPECIAL_REGION_TYPE;
  15951. ///@brief 事件类型EVENT_IVS_PASTEDETECTION(贴条事件)对应的数据块描述信息
  15952. typedef struct tagDEV_EVENT_PASTE_INFO
  15953. {
  15954. int nChannelID; // 通道号
  15955. char szName[128]; // 事件名称
  15956. char bReserved1[4]; // 字节对齐
  15957. double PTS; // 时间戳(单位是毫秒)
  15958. NET_TIME_EX UTC; // 事件发生的时间
  15959. int nEventID; // 事件ID
  15960. DH_MSG_OBJECT stuObject; // 检测到的物体
  15961. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  15962. int nDetectRegionNum; // 规则检测区域顶点数
  15963. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  15964. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  15965. BYTE byReserved[2];
  15966. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  15967. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  15968. unsigned int nOccurrenceCount; // 事件触发累计次数
  15969. EM_SPECIAL_REGION_TYPE emSpecialRegion; // 特殊区域类型
  15970. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  15971. BYTE bReserved[748]; // 保留字节,留待扩展.
  15972. } DEV_EVENT_PASTE_INFO;
  15973. ///@brief 事件类型EVENT_IVS_LEFTDETECTION(物品遗留事件)对应的数据块描述信息
  15974. typedef struct tagDEV_EVENT_LEFT_INFO
  15975. {
  15976. int nChannelID; // 通道号
  15977. char szName[128]; // 事件名称
  15978. char bReserved1[4]; // 字节对齐
  15979. double PTS; // 时间戳(单位是毫秒)
  15980. NET_TIME_EX UTC; // 事件发生的时间
  15981. int nEventID; // 事件ID
  15982. DH_MSG_OBJECT stuObject; // 检测到的物体
  15983. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  15984. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  15985. BYTE byReserved[2];
  15986. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  15987. int nDetectRegionNum; // 规则检测区域顶点数
  15988. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  15989. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  15990. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  15991. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  15992. unsigned int nOccurrenceCount; // 事件触发累计次数
  15993. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  15994. short nPreserID; // 事件触发的预置点号,从1开始(没有表示未知)
  15995. char szPresetName[64]; // 事件触发的预置名称
  15996. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  15997. BYTE byReserved2[2]; // 字节对齐
  15998. NET_GPS_INFO stuGPSInfo; // GPS信息
  15999. char szVideoPath[256]; // 违章关联视频FTP上传路径
  16000. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  16001. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  16002. int nImageInfoNum; // 图片信息个数
  16003. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16004. } DEV_EVENT_LEFT_INFO;
  16005. ///@brief 全景广角图
  16006. typedef struct tagSCENE_IMAGE_INFO
  16007. {
  16008. UINT nOffSet; // 在二进制数据块中的偏移
  16009. UINT nLength; // 图片大小,单位字节
  16010. UINT nWidth; // 图片宽度(像素)
  16011. UINT nHeight; // 图片高度(像素)
  16012. UINT nIndexInData; // 在上传图片数据中的图片序号
  16013. BYTE byReserved[52]; // 预留字节
  16014. }SCENE_IMAGE_INFO;
  16015. ///@brief 事件类型EVENT_IVS_PRESERVATION(物品保全事件)对应的数据块描述信息
  16016. typedef struct tagDEV_EVENT_PRESERVATION_INFO
  16017. {
  16018. int nChannelID; // 通道号
  16019. char szName[128]; // 事件名称
  16020. char bReserved1[4]; // 字节对齐
  16021. double PTS; // 时间戳(单位是毫秒)
  16022. NET_TIME_EX UTC; // 事件发生的时间
  16023. int nEventID; // 事件ID
  16024. DH_MSG_OBJECT stuObject; // 检测到的物体
  16025. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16026. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16027. BYTE byReserved[2];
  16028. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16029. int nDetectRegionNum; // 规则检测区域顶点数
  16030. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16031. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16032. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16033. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16034. unsigned int nOccurrenceCount; // 事件触发累计次数
  16035. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16036. SCENE_IMAGE_INFO stuSceneImage; // 广角图
  16037. int nObjectCount; // 检测目标物体的个数
  16038. DH_MSG_OBJECT_EX2 stuObjects[128]; // 表示检测到的物体信息 有Objects, 以Objects为准,无Objects, 以Object为准,为兼容老的客户端,有Objects的,Object也要填数据
  16039. char szReserved[1024]; // 保留字节,留待扩展.
  16040. } DEV_EVENT_PRESERVATION_INFO;
  16041. ///@brief 预置点的坐标和放大倍数
  16042. typedef struct tagPTZ_PRESET_UNIT
  16043. {
  16044. int nPositionX; //水平坐标,范围[0,3599],表示0度到359.9度,度数扩大10倍表示。
  16045. int nPositionY; //垂直坐标,范围[-1800,1800],表示-180.0度到+180.0度,度数扩大10倍表示。
  16046. int nZoom; //放大参数,范围[0,127],表示最小倍到最大倍的变倍位置
  16047. char szReserve[32]; //预留32字节
  16048. }PTZ_PRESET_UNIT;
  16049. ///@brief 联动信息,保存其他设备传输的信息
  16050. typedef struct tagNET_LINK_INFO
  16051. {
  16052. UINT nLinkObjectID; // 联动物体ID
  16053. UINT nLinkEventID; // 联动事件ID
  16054. UINT nSpeedValue; // 联动物体速度,单位米/秒,扩大100倍
  16055. UINT nAlarmType; // 报警类型, 第0bit位表示是否超速(1表示超速,0表示未超速), 第1bit位表示是否AIS匹配, 第2bit位表示是否禁行, 第3bit位表示是否逆行
  16056. UINT nLongitude; // 联动物体经度,(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
  16057. UINT nLatitude; // 联动物体纬度,(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
  16058. // 经纬度的具体转换方式可以参考结构体 NET_WIFI_GPS_INFO 中的注释
  16059. UINT nDistance; // 联动物体距离,单位米,扩大100倍
  16060. char szObjectType[16]; // 跟踪物体类型
  16061. NET_TIME_EX stuLinkRealUTC; // 外部设备(如雷达)识别到目标上报报警的真实UTC时间
  16062. char szResvered[176]; // 保留字节
  16063. }NET_LINK_INFO;
  16064. ///@brief 事件类型EVENT_IVS_STAYDETECTION(停留事件)对应的数据块描述信息
  16065. typedef struct tagDEV_EVENT_STAY_INFO
  16066. {
  16067. int nChannelID; // 通道号
  16068. char szName[128]; // 事件名称
  16069. char bReserved1[4]; // 字节对齐
  16070. double PTS; // 时间戳(单位是毫秒)
  16071. NET_TIME_EX UTC; // 事件发生的时间
  16072. int nEventID; // 事件ID
  16073. DH_MSG_OBJECT stuObject; // 检测到的物体
  16074. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16075. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16076. BYTE byReserved[2];
  16077. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16078. int nDetectRegionNum; // 规则检测区域顶点数
  16079. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16080. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16081. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16082. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16083. unsigned int nOccurrenceCount; // 事件触发累计次数
  16084. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16085. int nObjectNum; // 检测到的物体个数
  16086. DH_MSG_OBJECT stuObjectIDs[DH_MAX_OBJECT_NUM]; // 检测到的物体
  16087. UINT nAreaID; // 区域ID(一个预置点可以对应多个区域ID)
  16088. BOOL bIsCompliant; // 该场景下是否合规
  16089. PTZ_PRESET_UNIT stPosition; // 预置点的坐标和放大倍数
  16090. UINT nCurChannelHFOV; // 当前报警通道的横向视场角,单位:度,实际角度乘以100
  16091. UINT nCurChannelVFOV; // 当前报警通道的垂直视场角,单位:度,实际角度乘以100
  16092. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  16093. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  16094. int nImageInfoNum; // 图片信息个数
  16095. NET_LINK_INFO stuLinkInfo; // 联动信息,保存其他设备传输的信息
  16096. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16097. NET_BOAT_OBJECT* pstuBoatObject; // 船只物体信息
  16098. int nBoatObjectNum; // 船只物体信息个数
  16099. BYTE bReserved[620 - POINTERSIZE]; // 保留字节,留待扩展.
  16100. } DEV_EVENT_STAY_INFO;
  16101. ///@brief 坐标与放大倍数
  16102. typedef struct tagNET_POSTION
  16103. {
  16104. int nHorizontalCoordinate; // 水平坐标, 范围[0, 3599],表示0度到359.9度,度数扩大10倍表示。
  16105. int nVerticalCoordinate; // 垂直坐标,范围[-1800,1800],表示-180.0度到+180.0度,度数扩大10倍表示。
  16106. int nMagnification; // 放大倍数, 范围[0,127],表示最小倍到最大倍的变倍位置
  16107. } NET_POSTION;
  16108. ///@brief 事件类型EVENT_IVS_WANDERDETECTION(徘徊事件)对应的数据块描述信息
  16109. typedef struct tagDEV_EVENT_WANDER_INFO
  16110. {
  16111. int nChannelID; // 通道号
  16112. char szName[128]; // 事件名称
  16113. char bReserved1[4]; // 字节对齐
  16114. double PTS; // 时间戳(单位是毫秒)
  16115. NET_TIME_EX UTC; // 事件发生的时间
  16116. int nEventID; // 事件ID
  16117. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16118. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16119. BYTE byReserved[2]; // 保留字节
  16120. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16121. int nObjectNum; // 检测到的物体个数
  16122. DH_MSG_OBJECT stuObjectIDs[DH_MAX_OBJECT_LIST]; // 检测到的物体
  16123. int nTrackNum; // 轨迹数(与检测到的物体个数对应)
  16124. DH_POLY_POINTS stuTrackInfo[DH_MAX_OBJECT_LIST]; // 轨迹信息(与检测到的物体对应)
  16125. int nDetectRegionNum; // 规则检测区域顶点数
  16126. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16127. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16128. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16129. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16130. unsigned int nOccurrenceCount; // 事件触发累计次数
  16131. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16132. short nPreserID; // 事件触发的预置点号,从1开始(没有表示未知)
  16133. char szPresetName[64]; // 事件触发的预置名称
  16134. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  16135. NET_POSTION stuPostion; // 坐标与放大倍数
  16136. char byReserved2[4]; // 字节对齐
  16137. UINT nCurChannelHFOV; // 当前报警通道的横向视场角,单位:度,实际角度乘以100
  16138. UINT nCurChannelVFOV; // 当前报警通道的垂直视场角,单位:度,实际角度乘以100
  16139. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  16140. int nImageInfoNum; // 图片信息个数
  16141. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16142. BYTE szReserved[402]; // 保留字节,留待扩展.
  16143. } DEV_EVENT_WANDER_INFO;
  16144. ///@brief 物体截图
  16145. typedef struct tagNET_OBJECT_IMAGE_INFO
  16146. {
  16147. unsigned int nOffSet; // 在二进制数据块中的偏移
  16148. unsigned int nLength; // 图片大小,单位字节
  16149. unsigned int nWidth; // 图片宽度(像素)
  16150. unsigned int nHeight; // 图片高度(像素)
  16151. char szFilePath[260]; // 全景图片路径
  16152. UINT nIndexInData; //图片序号
  16153. BYTE byReserved[504]; // 预留字节
  16154. }NET_OBJECT_IMAGE_INFO;
  16155. ///@brief 动物类型
  16156. typedef enum tagEM_ANINAL_CATEGORY
  16157. {
  16158. EM_ANINAL_CATEGORY_UNKNOWN, // 未知类型
  16159. EM_ANINAL_CATEGORY_PIG, // 猪
  16160. EM_ANINAL_CATEGORY_CAT, // 猫
  16161. EM_ANINAL_CATEGORY_DOG, // 狗
  16162. EM_ANINAL_CATEGORY_BIRD, // 鸟
  16163. EM_ANINAL_CATEGORY_GOLDEN_MONKEY, // 金丝猴
  16164. EM_ANINAL_CATEGORY_BLACK_BECKED_CRANE, // 黑颈鹤
  16165. EM_ANINAL_CATEGORY_RAT, // 老鼠
  16166. }EM_ANINAL_CATEGORY;
  16167. ///@brief 运动状态
  16168. typedef enum tagENUM_MOTION_STATUS
  16169. {
  16170. ENUM_MOTION_STATUS_UNKNOWN, // 未知
  16171. ENUM_MOTION_STATUS_STATIC, // 静止
  16172. ENUM_MOTION_STATUS_MOVE, // 运动
  16173. }ENUM_MOTION_STATUS;
  16174. ///@brief 区域内状态
  16175. typedef enum tagENUM_IN_REGION_STATUS
  16176. {
  16177. ENUM_IN_REGION_STATUS_UNKNOWN, // 未知
  16178. ENUM_IN_REGION_STATUS_YES, // 在区域内
  16179. ENUM_IN_REGION_STATUS_NO, // 不在区域内
  16180. }ENUM_IN_REGION_STATUS;
  16181. ///@brief 视频分析物体(动物)
  16182. typedef struct tagVA_OBJECT_ANIMAL
  16183. {
  16184. UINT nObjectID; // 物体ID, 每个ID表示一个唯一的物体
  16185. EM_ANINAL_CATEGORY emCategory; // 目标动物类型
  16186. NET_RECT stuBoundingBox; // 包围盒 动物对象在全景图中的框坐标,为0~8191相对坐标
  16187. UINT nObjectWeight; // 动物对象重量,单位:g
  16188. NET_OBJECT_IMAGE_INFO stuImage; // 物体截图
  16189. ENUM_MOTION_STATUS emMoveStatus; // 运动状态
  16190. ENUM_IN_REGION_STATUS emInRegionStatus; // 区域内状态
  16191. int nResultType; // 结果类型 0-实时 1-非实时
  16192. BYTE bReserved[1024]; // 保留字节,留待扩展
  16193. }VA_OBJECT_ANIMAL;
  16194. ///@brief 事件类型EVENT_IVS_MOVEDETECTION(移动事件)对应的数据块描述信息
  16195. typedef struct tagDEV_EVENT_MOVE_INFO
  16196. {
  16197. int nChannelID; // 通道号
  16198. char szName[128]; // 事件名称
  16199. char bReserved1[4]; // 字节对齐
  16200. double PTS; // 时间戳(单位是毫秒)
  16201. NET_TIME_EX UTC; // 事件发生的时间
  16202. int nEventID; // 事件ID
  16203. DH_MSG_OBJECT stuObject; // 检测到的物体
  16204. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16205. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16206. BYTE byReserved[2];
  16207. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16208. int nDetectRegionNum; // 规则检测区域顶点数
  16209. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16210. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16211. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16212. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16213. int nTrackLineNum; // 物体运动轨迹顶点数
  16214. DH_POINT stuTrackLine[DH_MAX_TRACK_LINE_NUM];// 物体运动轨迹
  16215. unsigned int nOccurrenceCount; // 事件触发累计次数
  16216. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16217. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  16218. int nAnimalNum; // 动物个数
  16219. VA_OBJECT_ANIMAL *pstuAnimals; // 动物信息
  16220. int nMsgObjArrayCount; // 检测到的物体信息个数
  16221. DH_MSG_OBJECT_EX* pMsgObjArray; // 检测到的物体信息数组指针
  16222. int nImageNum; // 图片信息个数
  16223. NET_IMAGE_INFO_EX2* pImageArray; // 图片信息数组
  16224. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16225. BYTE bReserved[236]; // 保留字节,留待扩展.
  16226. } DEV_EVENT_MOVE_INFO;
  16227. ///@brief 事件类型EVENT_IVS_TAILDETECTION(尾随事件)对应的数据块描述信息
  16228. typedef struct tagDEV_EVENT_TAIL_INFO
  16229. {
  16230. int nChannelID; // 通道号
  16231. char szName[128]; // 事件名称
  16232. char bReserved1[4]; // 字节对齐
  16233. double PTS; // 时间戳(单位是毫秒)
  16234. NET_TIME_EX UTC; // 事件发生的时间
  16235. int nEventID; // 事件ID
  16236. DH_MSG_OBJECT stuObject; // 检测到的物体
  16237. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16238. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16239. BYTE byReserved[2];
  16240. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16241. int nDetectRegionNum; // 规则检测区域顶点数
  16242. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16243. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16244. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16245. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16246. unsigned int nOccurrenceCount; // 事件触发累计次数
  16247. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16248. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16249. NET_IMAGE_INFO_EX3 *pstuImageInfo; // 图片信息数组
  16250. int nImageInfoNum; // 图片信息个数
  16251. BYTE bReserved[484-POINTERSIZE]; // 保留字节,留待扩展.
  16252. } DEV_EVENT_TAIL_INFO;
  16253. ///@brief 事件类型 EVENT_IVS_RIOTERDETECTION (聚众事件)对应的数据块描述信息
  16254. typedef struct tagDEV_EVENT_RIOTER_INFO
  16255. {
  16256. int nChannelID; // 通道号
  16257. char szName[128]; // 事件名称
  16258. char bReserved1[4]; // 字节对齐
  16259. double PTS; // 时间戳(单位是毫秒)
  16260. NET_TIME_EX UTC; // 事件发生的时间
  16261. int nEventID; // 事件ID
  16262. int nObjectNum; // 检测到的物体个数
  16263. DH_MSG_OBJECT stuObjectIDs[DH_MAX_OBJECT_LIST]; // 检测到的物体列表
  16264. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16265. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16266. BYTE byReserved[2]; // 保留字节
  16267. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16268. int nDetectRegionNum; // 规则检测区域顶点数
  16269. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16270. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16271. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16272. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16273. unsigned int nOccurrenceCount; // 事件触发累计次数
  16274. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16275. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  16276. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  16277. // 缺省时为空字符串,表示无此信息
  16278. // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
  16279. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  16280. int nImageInfoNum; // 图片信息个数
  16281. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16282. BYTE bReserved[328]; // 保留字节,留待扩展.
  16283. } DEV_EVENT_RIOTERL_INFO;
  16284. ///@brief 动作类型
  16285. typedef enum tagEM_STEREO_ACTION_TYPE
  16286. {
  16287. EM_STEREO_ACTION_TYPE_UNKNOWN, // 未知
  16288. EM_STEREO_ACTION_TYPE_DRASTIC_MOTION, // 剧烈运动
  16289. EM_STEREO_ACTION_TYPE_SINGLE_FIGHT, // 单人打砸
  16290. EM_STEREO_ACTION_TYPE_MULTI_FIGHT, // 多人打架
  16291. }EM_STEREO_ACTION_TYPE;
  16292. ///@brief 事件类型EVENT_IVS_FIGHTDETECTION(斗殴事件)对应的数据块描述信息
  16293. typedef struct tagDEV_EVENT_FIGHT_INFO
  16294. {
  16295. int nChannelID; // 通道号
  16296. char szName[128]; // 事件名称
  16297. char bReserved1[4]; // 字节对齐
  16298. double PTS; // 时间戳(单位是毫秒)
  16299. NET_TIME_EX UTC; // 事件发生的时间
  16300. int nEventID; // 事件ID
  16301. int nObjectNum; // 检测到的物体个数
  16302. DH_MSG_OBJECT stuObjectIDs[DH_MAX_OBJECT_LIST]; // 检测到的物体列表
  16303. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16304. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16305. BYTE byReserved[2]; // 保留字节
  16306. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16307. int nDetectRegionNum; // 规则检测区域顶点数
  16308. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16309. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16310. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16311. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16312. unsigned int nOccurrenceCount; // 事件触发累计次数
  16313. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16314. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  16315. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  16316. // 缺省时为空字符串,表示无此信息
  16317. // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
  16318. EM_STEREO_ACTION_TYPE emActionType; // 动作类型
  16319. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  16320. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  16321. int nImageInfoNum; // 图片信息个数
  16322. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16323. BYTE bReserved[240]; // 保留字节,留待扩展.
  16324. } DEV_EVENT_FIGHT_INFO;
  16325. ///@brief 事件类型EVENT_IVS_GETOUTBEDDETECTION(下床事件)对应的数据块描述信息
  16326. typedef struct tagDEV_EVENT_GETOUTBED_INFO
  16327. {
  16328. /* 公共字段 */
  16329. int nChannelID; // 通道号
  16330. char szName[128]; // 事件名称
  16331. char bReserved1[4]; // 字节对齐
  16332. double PTS; // 时间戳(单位是毫秒)
  16333. NET_TIME_EX UTC; // 事件发生的时间
  16334. int nEventID; // 事件ID
  16335. /*事件对应字段*/
  16336. DH_MSG_OBJECT stuObject; // Object表示下床的物体信息
  16337. int nDetectRegionNum; // 规则检测区域顶点数
  16338. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16339. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16340. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16341. BYTE byReserved[2]; // 保留字节
  16342. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16343. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16344. BYTE bReserved[1024]; // 保留字节,留待扩展.
  16345. } DEV_EVENT_GETOUTBED_INFO;
  16346. ///@brief 事件类型EVENT_IVS_PATROLDETECTION(巡逻检测事件)对应的数据块描述信息
  16347. typedef struct tagDEV_EVENT_PATROL_INFO
  16348. {
  16349. /* 公共字段 */
  16350. int nChannelID; // 通道号
  16351. char szName[128]; // 事件名称
  16352. char bReserved1[4]; // 字节对齐
  16353. double PTS; // 时间戳(单位是毫秒)
  16354. NET_TIME_EX UTC; // 事件发生的时间
  16355. int nEventID; // 事件ID
  16356. /*事件对应字段*/
  16357. DH_MSG_OBJECT stuObject; // Object表示巡逻的物体信息
  16358. int nDetectRegionNum; // 规则检测区域顶点数
  16359. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16360. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16361. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16362. BYTE byReserved[2]; // 保留字节
  16363. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16364. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16365. BYTE bReserved[1024]; // 保留字节,留待扩展.
  16366. } DEV_EVENT_PATROL_INFO;
  16367. ///@brief 事件类型 EVENT_IVS_ONDUTYDETECTION(站岗检测事件)对应的数据块描述信息
  16368. typedef struct tagDEV_EVENT_ONDUTY_INFO
  16369. {
  16370. /* 公共字段 */
  16371. int nChannelID; // 通道号
  16372. char szName[128]; // 事件名称
  16373. char bReserved1[4]; // 字节对齐
  16374. double PTS; // 时间戳(单位是毫秒)
  16375. NET_TIME_EX UTC; // 事件发生的时间
  16376. int nEventID; // 事件ID
  16377. /*事件对应字段*/
  16378. DH_MSG_OBJECT stuObject; // Object表示巡逻的物体信息
  16379. int nDetectRegionNum; // 规则检测区域顶点数
  16380. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16381. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16382. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16383. BYTE byReserved[2]; // 保留字节
  16384. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16385. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16386. BYTE bReserved[1024]; // 保留字节,留待扩展.
  16387. } DEV_EVENT_ONDUTY_INFO;
  16388. ///@brief 事件类型 EVENT_IVS_ELECTROSPARKDETECTION(电火花事件)对应的数据块描述信息
  16389. typedef struct tagDEV_EVENT_ELECTROSPARK_INFO
  16390. {
  16391. int nChannelID; // 通道号
  16392. char szName[128]; // 事件名称
  16393. char bReserved1[4]; // 字节对齐
  16394. double PTS; // 时间戳(单位是毫秒)
  16395. NET_TIME_EX UTC; // 事件发生的时间
  16396. int nEventID; // 事件ID
  16397. DH_MSG_OBJECT stuObject; // 检测到的物体
  16398. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16399. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16400. BYTE byReserved[2];
  16401. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16402. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16403. BYTE bReserved[972]; // 保留字节,留待扩展.
  16404. } DEV_EVENT_ELECTROSPARK_INFO;
  16405. ///@brief 事件类型EVENT_IVS_FLOWSTAT(流量统计事件)对应的数据块描述信息
  16406. typedef struct tagDEV_EVENT_FLOWSTAT_INFO
  16407. {
  16408. int nChannelID; // 通道号
  16409. char szName[128]; // 事件名称
  16410. char bReserved1[4]; // 字节对齐
  16411. double PTS; // 时间戳(单位是毫秒)
  16412. NET_TIME_EX UTC; // 事件发生的时间
  16413. int nEventID; // 事件ID
  16414. int nNumberLeft; // 从左边穿越的人的个数
  16415. int nNumberRight; // 从右边穿越的人的个数
  16416. int nUpperLimit; // 设置的上限
  16417. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16418. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16419. BYTE byReserved[2];
  16420. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16421. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16422. unsigned int nOccurrenceCount; // 事件触发累计次数
  16423. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16424. BYTE bReserved[972]; // 保留字节,留待扩展.
  16425. } DEV_EVENT_FLOWSTAT_INFO;
  16426. ///@brief 表示人数越上限类型
  16427. typedef enum tagEM_NUMBER_STAT_TYPE
  16428. {
  16429. EM_NUMBERSTAT_TYPE_UNKNOWN, // 未知
  16430. EM_NUMBERSTAT_TYPE_ENTEROVER, // 进入
  16431. EM_NUMBERSTAT_TYPE_EXITOVER, // 退出
  16432. EM_NUMBERSTAT_TYPE_INSIDEOVER, // 在里面
  16433. EM_NUMBERSTAT_TYPE_PASSOVER, // 经过
  16434. }EM_NUMBER_STAT_TYPE;
  16435. ///@brief 事件类型EVENT_IVS_NUMBERSTAT(数量统计事件)对应的数据块描述信息
  16436. typedef struct tagDEV_EVENT_NUMBERSTAT_INFO
  16437. {
  16438. int nChannelID; // 通道号
  16439. char szName[128]; // 事件名称
  16440. char bReserved2[4]; // 字节对齐
  16441. double PTS; // 时间戳(单位是毫秒)
  16442. NET_TIME_EX UTC; // 事件发生的时间
  16443. int nEventID; // 事件ID
  16444. int nNumber; // 区域内物体的个数
  16445. int nUpperLimit; // 设置的上限
  16446. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16447. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16448. BYTE bReserved1[2]; // 字节对齐
  16449. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16450. int nEnteredNumber; // 表示进入区域或者出入口的内物体的个数
  16451. int nExitedNumber; // 表示出来区域或者出入口的内物体的个数
  16452. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16453. unsigned int nOccurrenceCount; // 事件触发累计次数
  16454. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16455. UINT nAreaID; // 区域ID,一个预置点可以有多个区域ID
  16456. BOOL bIsCompliant; // 该场景下是否合规
  16457. EM_NUMBER_STAT_TYPE emType; // 表示人数越上限类型
  16458. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  16459. int nImageInfoNum; // 图片信息个数
  16460. int nPassedNumber; // 经过区域物体的个数
  16461. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16462. BYTE bReserved[800]; // 保留字节,留待扩展.
  16463. } DEV_EVENT_NUMBERSTAT_INFO;
  16464. ///@brief 事件类型EVENT_IVS_CROSSFENCEDETECTION(翻越围栏事件)对应的数据块描述信息
  16465. typedef struct tagDEV_EVENT_CROSSFENCEDETECTION_INFO
  16466. {
  16467. int nChannelID; // 通道号
  16468. char szName[128]; // 事件名称
  16469. char bReserved1[4]; // 字节对齐
  16470. double PTS; // 时间戳(单位是毫秒)
  16471. NET_TIME_EX UTC; // 事件发生的时间
  16472. int nEventID; // 事件ID
  16473. DH_MSG_OBJECT stuObject; // 检测到的物体
  16474. int nUpstairsLinePointNumber; // 围栏上边线顶点数
  16475. DH_POINT stuUpstairsLine[DH_MAX_DETECT_LINE_NUM]; // 围栏上边线信息
  16476. int nDownstairsLinePointNumber; // 围栏下边线顶点数
  16477. DH_POINT stuDownstairsLine[DH_MAX_DETECT_LINE_NUM]; // 围栏下边线信息
  16478. int nTrackLineNum; // 物体运动轨迹顶点数
  16479. DH_POINT TrackLine[DH_MAX_TRACK_LINE_NUM]; // 物体运动轨迹
  16480. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16481. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16482. BYTE bDirection; // 表示入侵方向, 0-由左至右, 1-由右至左
  16483. BYTE byReserved[1];
  16484. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16485. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16486. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16487. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16488. unsigned int nOccurrenceCount; // 事件触发累计次数
  16489. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16490. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  16491. int nImageInfoNum; // 图片信息个数
  16492. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16493. BYTE bReserved[616]; // 保留字节,留待扩展.
  16494. } DEV_EVENT_CROSSFENCEDETECTION_INFO;
  16495. ///@brief 事件类型EVENT_IVS_INREGIONDETECTION(区域内检测事件)对应的数据块描述信息
  16496. typedef struct tagDEV_EVENT_INREGIONDETECTION_INFO
  16497. {
  16498. int nChannelID; // 通道号
  16499. char szName[128]; // 事件名称
  16500. char bReserved1[4]; // 字节对齐
  16501. double PTS; // 时间戳(单位是毫秒)
  16502. NET_TIME_EX UTC; // 事件发生的时间
  16503. int nEventID; // 事件ID
  16504. int nObjectNum; // 检测到的物体个数
  16505. DH_MSG_OBJECT stuObjectIDs[DH_MAX_OBJECT_LIST]; // 检测到的物体
  16506. int nTrackNum; // 轨迹数(与检测到的物体个数对应)
  16507. DH_POLY_POINTS stuTrackInfo[DH_MAX_OBJECT_LIST]; // 轨迹信息(与检测到的物体对应)
  16508. int nDetectRegionNum; // 规则检测区域顶点数
  16509. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16510. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16511. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16512. BYTE byReserved[2];
  16513. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16514. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16515. BYTE bReserved[1016]; // 保留字节,留待扩展.
  16516. } DEV_EVENT_INREGIONDETECTION_INFO;
  16517. ///@brief 事件类型EVENT_IVS_TAKENAWAYDETECTION(物品搬移事件)对应的数据块描述信息
  16518. typedef struct tagDEV_EVENT_TAKENAWAYDETECTION_INFO
  16519. {
  16520. int nChannelID; // 通道号
  16521. char szName[128]; // 事件名称
  16522. char bReserved1[4]; // 字节对齐
  16523. double PTS; // 时间戳(单位是毫秒)
  16524. NET_TIME_EX UTC; // 事件发生的时间
  16525. int nEventID; // 事件ID
  16526. DH_MSG_OBJECT stuObject; // 检测到的物体
  16527. int nDetectRegionNum; // 规则检测区域顶点数
  16528. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16529. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16530. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16531. BYTE byReserved[2];
  16532. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16533. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16534. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16535. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16536. unsigned int nOccurrenceCount; // 事件触发累计次数
  16537. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16538. short nPreserID; // 事件触发的预置点号,从1开始(没有表示未知)
  16539. char szPresetName[64]; // 事件触发的预置名称
  16540. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  16541. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  16542. int nImageInfoNum; // 图片信息个数
  16543. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16544. BYTE bReserved[418]; // 保留字节,留待扩展.
  16545. } DEV_EVENT_TAKENAWAYDETECTION_INFO;
  16546. ///@brief 事件类型 EVENT_IVS_VIDEOABNORMALDETECTION(视频异常事件)对应的数据块描述信息
  16547. typedef struct tagDEV_EVENT_VIDEOABNORMALDETECTION_INFO
  16548. {
  16549. int nChannelID; // 通道号
  16550. char szName[128]; // 事件名称
  16551. char bReserved1[4]; // 字节对齐
  16552. double PTS; // 时间戳(单位是毫秒)
  16553. NET_TIME_EX UTC; // 事件发生的时间
  16554. int nEventID; // 事件ID
  16555. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16556. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16557. BYTE bType; // 异常类型, 255-无意义(通常是设备了返回错误值)0-视频丢失, 1-视频冻结, 2-摄像头遮挡, 3-摄像头移动(场景变化), 4-过暗, 5-过亮, 6-图像偏色, 7-噪声干扰
  16558. // 8-条纹检测 , 9-视频模糊检测 , 10-对比度异常检测 11-视频运动 , 12-视频闪烁 , 13-视频颜色 , 14-虚焦检测 , 15-过曝检测, 16-场景巨变 17-雪花噪声,18-无码流数据
  16559. BYTE byReserved[1];
  16560. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16561. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16562. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16563. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16564. unsigned int nOccurrenceCount; // 事件触发累计次数
  16565. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16566. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图信息
  16567. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  16568. int nImageInfoNum; // 图片信息个数
  16569. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16570. char byReserved2[1024]; // 保留字节
  16571. } DEV_EVENT_VIDEOABNORMALDETECTION_INFO;
  16572. ///@brief 事件类型EVENT_IVS_PARKINGDETECTION(非法停车事件)对应的数据块描述信息
  16573. typedef struct tagDEV_EVENT_PARKINGDETECTION_INFO
  16574. {
  16575. int nChannelID; // 通道号
  16576. char szName[128]; // 事件名称
  16577. char bReserved1[4]; // 字节对齐
  16578. double PTS; // 时间戳(单位是毫秒)
  16579. NET_TIME_EX UTC; // 事件发生的时间
  16580. int nEventID; // 事件ID
  16581. DH_MSG_OBJECT stuObject; // 检测到的物体
  16582. int nDetectRegionNum; // 规则检测区域顶点数
  16583. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16584. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16585. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16586. BYTE byReserved[2];
  16587. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16588. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16589. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16590. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16591. unsigned int nOccurrenceCount; // 事件触发累计次数
  16592. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16593. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  16594. char szCustomParkNo[64]; // 车位名称
  16595. NET_PRESET_POSITION stPosition; // 预置点的坐标和放大倍数 是一个数组,每个成员是int类型
  16596. // 第一个参数是水平坐标,范围[0,3599],表示0度到359.9度,度数扩大10倍表示。
  16597. // 第二个参数是垂直坐标,范围[-1800,1800],表示-180.0度到+180.0度,度数扩大10倍表示。
  16598. // 第三个参数是放大参数,范围[0,127],表示最小倍到最大倍的变倍位置
  16599. UINT nCurChannelHFOV; // 当前报警通道的横向视场角,单位度,实际角度乘以100
  16600. UINT nCurChannelVFOV; // 当前报警通道的纵向视场角,单位度,实际角度乘以100
  16601. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  16602. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  16603. int nImageInfoNum; // 图片信息个数
  16604. UINT nObjectBoatsNum; // 船只物体个数
  16605. NET_BOAT_OBJECT stuBoatObjects[100]; // 船只物品信息
  16606. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16607. BYTE bReserved[400]; // 保留字节,留待扩展.
  16608. } DEV_EVENT_PARKINGDETECTION_INFO;
  16609. #define HDBJ_MAX_OBJECTS_NUM 200 // 检测到目标的最大个数
  16610. ///@brief 事件类型EVENT_IVS_SHOPPRESENCE(商铺占道经营事件)对应的数据块描述信息
  16611. typedef struct tagDEV_EVENT_SHOPPRESENCE_INFO
  16612. {
  16613. int nChannelID; // 通道号
  16614. char szName[128]; // 事件名称
  16615. char bReserved1[4]; // 字节对齐
  16616. double PTS; // 时间戳(单位是毫秒)
  16617. NET_TIME_EX UTC; // 事件发生的时间
  16618. int nEventID; // 事件ID
  16619. DH_MSG_OBJECT stuObject; // 检测到的物体,推荐使用字段stuObjects获取物体信息
  16620. int nDetectRegionNum; // 规则检测区域顶点数
  16621. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16622. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16623. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16624. BYTE byReserved[2];
  16625. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16626. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16627. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16628. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16629. unsigned int nOccurrenceCount; // 事件触发累计次数
  16630. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16631. char szPresetName[DH_COMMON_STRING_64]; // 事件触发的预置点名称
  16632. EM_EVENT_LEVEL emEventLevel; // 事件级别
  16633. char szShopAddress[DH_COMMON_STRING_256]; // 商铺地址
  16634. UINT nViolationDuration; // 违法持续时长,单位:秒,缺省值0表示无意义
  16635. int nObjectNum; // 检测到的物体个数
  16636. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  16637. char szSourceID[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  16638. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  16639. int nImageInfoNum; // 图片信息个数
  16640. BYTE byReserved2[2044-POINTERSIZE]; // 保留字节
  16641. } DEV_EVENT_SHOPPRESENCE_INFO;
  16642. ///@brief 事件类型EVENT_IVS_WASTEDUMPED(垃圾违章倾倒事件)对应的数据块描述信息
  16643. typedef struct tagDEV_EVENT_WASTEDUMPED_INFO
  16644. {
  16645. int nChannelID; // 通道号
  16646. char szName[128]; // 事件名称
  16647. char bReserved1[4]; // 字节对齐
  16648. double PTS; // 时间戳(单位是毫秒)
  16649. NET_TIME_EX UTC; // 事件发生的时间
  16650. int nEventID; // 事件ID
  16651. DH_MSG_OBJECT stuObject; // 检测到的物体
  16652. int nDetectRegionNum; // 规则检测区域顶点数
  16653. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16654. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16655. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16656. BYTE byReserved[2];
  16657. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16658. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16659. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16660. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16661. unsigned int nOccurrenceCount; // 事件触发累计次数
  16662. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16663. char szPresetName[DH_COMMON_STRING_64]; // 事件触发的预置点名称
  16664. EM_EVENT_LEVEL emEventLevel; // 事件级别
  16665. BYTE byReserved2[512]; // 保留字节,留待扩展.
  16666. } DEV_EVENT_WASTEDUMPED_INFO;
  16667. ///@brief 事件类型EVENT_IVS_ABNORMALRUNDETECTION(异常奔跑事件)对应的数据块描述信息
  16668. typedef struct tagDEV_EVENT_ABNORMALRUNDETECTION
  16669. {
  16670. int nChannelID; // 通道号
  16671. char szName[128]; // 事件名称
  16672. char bReserved1[4]; // 字节对齐
  16673. double PTS; // 时间戳(单位是毫秒)
  16674. NET_TIME_EX UTC; // 事件发生的时间
  16675. int nEventID; // 事件ID
  16676. DH_MSG_OBJECT stuObject; // 检测到的物体
  16677. double dbSpeed; // 物体运动速度,km/h
  16678. double dbTriggerSpeed; // 触发速度,km/h
  16679. int nDetectRegionNum; // 规则检测区域顶点数
  16680. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16681. int nTrackLineNum; // 物体运动轨迹顶点数
  16682. DH_POINT TrackLine[DH_MAX_TRACK_LINE_NUM]; // 物体运动轨迹
  16683. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16684. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16685. BYTE bRunType; // 异常奔跑类型, 0-快速奔跑, 1-突然加速, 2-突然减速
  16686. BYTE byReserved[1];
  16687. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16688. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16689. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16690. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16691. unsigned int nOccurrenceCount; // 事件触发累计次数
  16692. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16693. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  16694. int nImageInfoNum; // 图片信息个数
  16695. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16696. BYTE bReserved[604]; // 保留字节,留待扩展.
  16697. } DEV_EVENT_ABNORMALRUNDETECTION_INFO;
  16698. ///@brief 事件类型EVENT_IVS_RETROGRADEDETECTION(人员逆行事件)对应的数据块描述信息
  16699. typedef struct tagDEV_EVENT_RETROGRADEDETECTION_INFO
  16700. {
  16701. int nChannelID; // 通道号
  16702. char szName[128]; // 事件名称
  16703. char bReserved1[4]; // 字节对齐
  16704. double PTS; // 时间戳(单位是毫秒)
  16705. NET_TIME_EX UTC; // 事件发生的时间
  16706. int nEventID; // 事件ID
  16707. DH_MSG_OBJECT stuObject; // 检测到的物体
  16708. int nTrackLineNum; // 物体运动轨迹顶点数
  16709. DH_POINT TrackLine[DH_MAX_TRACK_LINE_NUM]; // 物体运动轨迹
  16710. int nDirectionPointNum; // 规则里规定的方向顶点数
  16711. DH_POINT stuDirections[DH_MAX_DETECT_LINE_NUM]; // 规则里规定的方向
  16712. int nDetectRegionNum; // 规则检测区域顶点数
  16713. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16714. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16715. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16716. BYTE byReserved[2];
  16717. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16718. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16719. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16720. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16721. unsigned int nOccurrenceCount; // 事件触发累计次数
  16722. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16723. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  16724. int nImageInfoNum; // 图片信息个数
  16725. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  16726. BYTE bReserved[604]; // 保留字节,留待扩展.
  16727. } DEV_EVENT_RETROGRADEDETECTION_INFO;
  16728. ///@brief 目标检测对应性别类型
  16729. typedef enum tagEM_DEV_EVENT_FACEDETECT_SEX_TYPE
  16730. {
  16731. EM_DEV_EVENT_FACEDETECT_SEX_TYPE_UNKNOWN, // 未知
  16732. EM_DEV_EVENT_FACEDETECT_SEX_TYPE_MAN, // 男性
  16733. EM_DEV_EVENT_FACEDETECT_SEX_TYPE_WOMAN, // 女性
  16734. }EM_DEV_EVENT_FACEDETECT_SEX_TYPE;
  16735. ///@brief 姿态角数据
  16736. typedef struct tagNET_EULER_ANGLE
  16737. {
  16738. int nPitch; // 仰俯角
  16739. int nYaw; // 偏航角
  16740. int nRoll; // 翻滚角
  16741. } NET_EULER_ANGLE;
  16742. ///@brief 目标抓拍角度范围
  16743. typedef struct tagNET_ANGEL_RANGE
  16744. {
  16745. int nMin; // 角度最小值
  16746. int nMax; // 角度最大值
  16747. } NET_ANGEL_RANGE;
  16748. ///@brief 算法目标分析时的实际目标图片尺寸
  16749. typedef struct tagNET_FACE_ORIGINAL_SIZE
  16750. {
  16751. UINT nWidth; // 目标图片宽度
  16752. UINT nHeight; // 目标图片高
  16753. }NET_FACE_ORIGINAL_SIZE;
  16754. ///@brief 目标数据
  16755. typedef struct tagNET_FACE_DATA
  16756. {
  16757. EM_DEV_EVENT_FACEDETECT_SEX_TYPE emSex; // 性别
  16758. int nAge; // 年龄,-1表示该字段数据无效
  16759. unsigned int nFeatureValidNum; // 目标特征数组有效个数,与 emFeature 结合使用
  16760. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emFeature[DH_MAX_FACEDETECT_FEATURE_NUM]; // 目标特征数组,与 nFeatureValidNum 结合使用
  16761. char szReserved1[4];
  16762. EM_EYE_STATE_TYPE emEye; // 眼睛状态
  16763. EM_MOUTH_STATE_TYPE emMouth; // 嘴巴状态
  16764. EM_MASK_STATE_TYPE emMask; // 口罩状态
  16765. EM_BEARD_STATE_TYPE emBeard; // 胡子状态
  16766. int nAttractive; // 魅力值
  16767. BYTE bReserved1[4]; // 保留字节
  16768. NET_EULER_ANGLE stuFaceCaptureAngle; // 目标在抓拍图片中的角度信息, nPitch:抬头低头的俯仰角, nYaw左右转头的偏航角, nRoll头在平面内左偏右偏的翻滚角
  16769. // 角度值取值范围[-90,90], 三个角度值都为999表示此角度信息无效
  16770. UINT nFaceQuality; // 目标抓拍质量分数
  16771. int nFaceAlignScore; // 目标对齐得分分数,范围 0~10000,-1为无效值
  16772. int nFaceClarity; // 目标清晰度分数,范围 0~10000,-1为无效值
  16773. double dbTemperature; // 温度, bAnatomyTempDetect 为TRUE时有效
  16774. BOOL bAnatomyTempDetect; //
  16775. EM_HUMAN_TEMPERATURE_UNIT emTemperatureUnit; // 温度单位, bAnatomyTempDetect 为TRUE时有效
  16776. BOOL bIsOverTemp; // bAnatomyTempDetect 为TRUE时有效
  16777. BOOL bIsUnderTemp; // bAnatomyTempDetect 为TRUE时有效
  16778. NET_FACE_ORIGINAL_SIZE stuOriginalSize; // 算法目标分析时的实际目标图片尺寸, 宽高为0时无效
  16779. EM_GLASS_STATE_TYPE emGlass; // 戴眼镜状态
  16780. BYTE bReserved[64]; // 保留字节,留待扩展.
  16781. } NET_FACE_DATA;
  16782. ///@brief 存储IVSS项目招行VIP需求,特征值信息
  16783. typedef struct tagNET_FEATURE_VECTOR
  16784. {
  16785. DWORD dwOffset; // 目标小图特征值在二进制数据块中的偏移
  16786. DWORD dwLength; // 目标小图特征值长度,单位:字节
  16787. BOOL bFeatureEnc; // 标识特征值是否加密
  16788. BYTE byReserved[116]; // 保留
  16789. }NET_FEATURE_VECTOR;
  16790. ///@brief 目标在摄像机画面中的状态
  16791. typedef enum tagEM_FACE_DETECT_STATUS
  16792. {
  16793. EM_FACE_DETECT_UNKNOWN, // 未知
  16794. EM_FACE_DETECT_APPEAR, // 出现
  16795. EM_FACE_DETECT_INPICTURE, // 在画面中
  16796. EM_FACE_DETECT_EXIT, // 离开
  16797. } EM_FACE_DETECT_STATUS;
  16798. ///@brief 路人信息
  16799. typedef struct tagNET_PASSERBY_INFO
  16800. {
  16801. char szPasserbyUID[MAX_COMMON_STRING_32]; // 路人唯一标识符
  16802. char szPasserbyGroupId[MAX_COMMON_STRING_64]; // 路人库ID
  16803. char szPasserbyGroupName[MAX_COMMON_STRING_128]; // 路人库名称
  16804. BYTE byReserved[128]; // 保留
  16805. } NET_PASSERBY_INFO;
  16806. ///@brief 目标比对事件触发对应球机信息
  16807. typedef struct tagNET_FACECOMPARISON_PTZ_INFO
  16808. {
  16809. char szPresetName[64]; // 球机抓拍到目标时预置点名称
  16810. DWORD dwPresetNumber; // 球机抓拍到目标时预置点编号
  16811. BYTE byReserved1[4]; // 字节对齐
  16812. BYTE byReserved[256]; // 保留字节
  16813. }NET_FACECOMPARISON_PTZ_INFO;
  16814. ///@brief 项目定制信息
  16815. typedef struct tagNET_CUSTOM_PROJECTS_INFO
  16816. {
  16817. NET_GPS_INFO stuGPSInfo; // GPS位置信息
  16818. NET_FACECOMPARISON_PTZ_INFO stuFaceComparisonPTZInfo; // 目标比对事件触发对应球机信息
  16819. char szPlateNumber[64]; // 目标比对时车牌信息
  16820. BOOL bIsAlarm; // 是否报警
  16821. int nStayEvent; // 滞留类型 0-未知 1-基础滞留 2-异常滞留
  16822. int nWanderEvent; // 徘徊类型 0-未知 1-基础徘徊 2-异常徘徊
  16823. BYTE byReserved[1012]; // 保留字节
  16824. }NET_CUSTOM_PROJECTS_INFO;
  16825. ///@brief 事件类型EVENT_IVS_FACERECOGNITION(目标识别)对应的数据块描述信息
  16826. typedef struct tagDEV_EVENT_FACERECOGNITION_INFO
  16827. {
  16828. int nChannelID; // 通道号
  16829. char szName[128]; // 事件名称
  16830. int nEventID; // 事件ID
  16831. NET_TIME_EX UTC; // 事件发生的时间
  16832. DH_MSG_OBJECT stuObject; // 检测到的物体
  16833. int nCandidateNum; // 当前目标匹配到的候选对象数量
  16834. CANDIDATE_INFO stuCandidates[DH_MAX_CANDIDATE_NUM]; // 当前目标匹配到的候选对象信息
  16835. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16836. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16837. BYTE byReserved1[2]; // 对齐
  16838. BOOL bGlobalScenePic; // 全景图是否存在
  16839. DH_PIC_INFO stuGlobalScenePicInfo; // 全景图片信息
  16840. char szSnapDevAddress[MAX_PATH]; // 抓拍当前目标的设备地址,如:滨康路37号
  16841. unsigned int nOccurrenceCount; // 事件触发累计次数
  16842. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16843. NET_FACE_DATA stuFaceData; // 目标数据
  16844. char szUID[DH_COMMON_STRING_32]; // 抓拍人员写入数据库的唯一标识符
  16845. NET_FEATURE_VECTOR stuFeatureVector; // 特征值信息
  16846. char szFeatureVersion[32]; // 特征值算法版本
  16847. EM_FACE_DETECT_STATUS emFaceDetectStatus; // 目标在摄像机画面中的状态
  16848. char szSourceID[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  16849. NET_PASSERBY_INFO stuPasserbyInfo; // 路人库信息
  16850. unsigned int nStayTime; // 路人逗留时间 单位:秒
  16851. NET_GPS_INFO stuGPSInfo; // GPS信息(与 stuCustomProjects下的 stuGPSInfo信息一致)
  16852. char szCameraID[64]; // 国标编码
  16853. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  16854. int nPerFlag; // ICC目标子系统定制, 目标标签标志位, -1:未知, 0:授权目标, 1:未授权目标, 2:陌生人
  16855. BYTE bReserved[360]; // 保留字节,留待扩展.
  16856. int nRetCandidatesExNum; // 当前目标匹配到的候选对象数量实际返回值
  16857. CANDIDATE_INFOEX stuCandidatesEx[DH_MAX_CANDIDATE_NUM]; // 当前目标匹配到的候选对象信息扩展
  16858. char szSerialUUID[22]; // 级联物体ID唯一标识
  16859. // 格式如下:前2位%d%d:01-视频片段,02-图片,03-文件,99-其他;
  16860. // 中间14位YYYYMMDDhhmmss:年月日时分秒;后5位%u%u%u%u%u:物体ID,如00001
  16861. BYTE byReserved[2]; // 对齐
  16862. NET_CUSTOM_PROJECTS_INFO stuCustomProjects; // 项目定制信息
  16863. BOOL bIsDuplicateRemove; // 智慧零售,是否符合去重策略(TRUE:符合 FALSE:不符合)
  16864. BYTE byReserved2[4]; // 字节对齐
  16865. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  16866. int nImageInfoNum; // 图片信息个数
  16867. DH_MSG_OBJECT_SUPPLEMENT stuObjectSupplement; // 检测到的物体补充字段
  16868. UINT nMode; // 0-普通 1-开启陌生人模式
  16869. SCENE_IMAGE_INFO stuThumImageInfo; // 大图(全景图)的缩略图信息
  16870. SCENE_IMAGE_INFO stuHumanImageInfo; // 人体图片信息
  16871. char szVideoPath[256]; // 违章关联视频FTP上传路径
  16872. BOOL bIsHighFrequencyAlarm; // 是否是高频次报警
  16873. char szFrequencyAlarmName[32]; // 频次报警名称, 当bIsHighFrequencyAlarm字段值为TRUE时才有效,表示高频次报警名称
  16874. double PTS; // 时间戳(单位是毫秒)
  16875. char byReserved3[272]; // 保留字节
  16876. }DEV_EVENT_FACERECOGNITION_INFO;
  16877. ///@brief 事件类型EVENT_IVS_DENSITYDETECTION(人员密度检测)对应数据块描述信息
  16878. typedef struct tagDEV_EVENT_DENSITYDETECTTION_INFO
  16879. {
  16880. int nChannelID; // 通道号
  16881. char szName[128]; // 事件名称
  16882. char bReserved1[4]; // 字节对齐
  16883. double PTS; // 时间戳(单位是毫秒)
  16884. NET_TIME_EX UTC; // 事件发生的时间
  16885. int nEventID; // 事件ID
  16886. int nObjectNum; // 检测到的物体个数
  16887. DH_MSG_OBJECT stuObjectIDs[DH_MAX_OBJECT_LIST]; // 检测到的物体列表
  16888. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16889. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16890. BYTE byReserved[2]; // 保留字节
  16891. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16892. int nDetectRegionNum; // 规则检测区域顶点数
  16893. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  16894. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16895. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  16896. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  16897. unsigned int nOccurrenceCount; // 事件触发累计次数
  16898. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  16899. int nUnit; // 密度检测数值单位(0-Level,1-Percent)
  16900. int nValue; // 密度值,单位为Level时,取值0~3,分别表示(很稀疏,稀疏,密集,很密集)单位为Percent时,取值0~100
  16901. BYTE bReserved[612]; // 保留字节,留待扩展.
  16902. }DEV_EVENT_DENSITYDETECTION_INFO;
  16903. ///@brief 事件类型 EVENT_IVS_QUEUEDETECTION(排队检测报警事件)对应数据块描述信息
  16904. typedef struct tagDEV_EVENT_QUEUEDETECTION_INFO
  16905. {
  16906. int nChannelID; // 通道号
  16907. char szName[128]; // 事件名称
  16908. char bReserved2[4]; // 字节对齐
  16909. double PTS; // 时间戳(单位是毫秒)
  16910. NET_TIME_EX UTC; // 事件发生的时间
  16911. int nEventID; // 事件ID
  16912. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16913. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16914. BYTE bReserved1[2]; // 保留字节,留待扩展.
  16915. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16916. DH_POINT stuDetectLine[2]; // 规则检测线
  16917. unsigned int nOccurrenceCount; // 事件触发累计次数
  16918. BYTE bReserved[1012]; // 保留字节,留待扩展.
  16919. }DEV_EVENT_QUEUEDETECTION_INFO;
  16920. ///@brief 事件类型EVENT_IVS_TRAFFICCONTROL(交通管理事件)对应的数据块描述信息
  16921. typedef struct tagDEV_EVENT_TRAFFICCONTROL_INFO
  16922. {
  16923. int nChannelID; // 通道号
  16924. char szName[128]; // 事件名称
  16925. char bReserved1[4]; // 字节对齐
  16926. double PTS; // 时间戳(单位是毫秒)
  16927. NET_TIME_EX UTC; // 事件发生的时间
  16928. int nEventID; // 事件ID
  16929. DH_MSG_OBJECT stuObject; // 检测到的物体
  16930. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16931. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16932. BYTE byReserved[2];
  16933. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16934. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16935. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  16936. BYTE bReserved[932]; // 保留字节,留待扩展.
  16937. } DEV_EVENT_TRAFFICCONTROL_INFO;
  16938. ///@brief 事件类型EVENT_IVS_TRAFFICACCIDENT(交通事故事件)对应的数据块描述信息
  16939. typedef struct tagDEV_EVENT_TRAFFICACCIDENT_INFO
  16940. {
  16941. int nChannelID; // 通道号
  16942. char szName[128]; // 事件名称
  16943. char bReserved1[4]; // 字节对齐
  16944. double PTS; // 时间戳(单位是毫秒)
  16945. NET_TIME_EX UTC; // 事件发生的时间
  16946. int nEventID; // 事件ID
  16947. int nObjectNum; // 检测到的物体个数
  16948. DH_MSG_OBJECT stuObjectIDs[DH_MAX_OBJECT_LIST]; // 检测到的物体列表
  16949. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  16950. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  16951. BYTE byReserved[2];
  16952. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  16953. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  16954. EVENT_TRAFFIC_CAR_PART_INFO stuTrafficCarPartInfo; // 交通车辆部分信息
  16955. UINT nLane; // 车道号
  16956. BYTE bReserved[460]; // 保留字节,留待扩展.
  16957. } DEV_EVENT_TRAFFICACCIDENT_INFO;
  16958. #define DH_EVENT_MAX_CARD_NUM 16 // 事件上报信息包含最大卡片个数
  16959. #define DH_EVENT_CARD_LEN 36 // 卡片名称长度
  16960. ///@brief 事件上报携带卡片信息
  16961. typedef struct tagEVENT_CARD_INFO
  16962. {
  16963. char szCardNumber[DH_EVENT_CARD_LEN]; // 卡片序号字符串
  16964. BYTE bReserved[32]; // 保留字节,留待扩展.
  16965. }EVENT_CARD_INFO;
  16966. ///@brief 开闸状态类型
  16967. typedef enum tagEM_OPEN_STROBE_STATE
  16968. {
  16969. NET_OPEN_STROBE_STATE_UNKOWN, // 未知状态
  16970. NET_OPEN_STROBE_STATE_CLOSE, // 关闸
  16971. NET_OPEN_STROBE_STATE_AUTO, // 自动开闸
  16972. NET_OPEN_STROBE_STATE_MANUAL, // 手动开闸
  16973. }EM_OPEN_STROBE_STATE;
  16974. ///@brief NTP校时状态
  16975. typedef enum tagEM_NTP_STATUS
  16976. {
  16977. NET_NTP_STATUS_UNKNOWN = 0 ,
  16978. NET_NTP_STATUS_DISABLE ,
  16979. NET_NTP_STATUS_SUCCESSFUL ,
  16980. NET_NTP_STATUS_FAILED ,
  16981. }EM_NTP_STATUS;
  16982. #define COMMON_SEAT_MAX_NUMBER 8 // 默认检测最大座驾个数
  16983. ///@brief 座驾类型
  16984. typedef enum tagEM_COMMON_SEAT_TYPE
  16985. {
  16986. COMMON_SEAT_TYPE_UNKNOWN = 0, // 未识别
  16987. COMMON_SEAT_TYPE_MAIN = 1, // 主驾驶
  16988. COMMON_SEAT_TYPE_SLAVE = 2, // 副驾驶
  16989. }EM_COMMON_SEAT_TYPE;
  16990. ///@brief 违规状态
  16991. typedef struct tagEVENT_COMM_STATUS
  16992. {
  16993. BYTE bySmoking; // 是否抽烟, 0:未知, 1:抽烟, 2:未抽烟
  16994. BYTE byCalling; // 是否打电话, 0:未知, 1:打电话, 2:未打电话
  16995. char szReserved[14]; // 预留字段
  16996. }EVENT_COMM_STATUS;
  16997. ///@brief 安全带状态
  16998. typedef enum tagNET_SAFEBELT_STATE
  16999. {
  17000. SS_NUKNOW = 0 , //未知
  17001. SS_WITH_SAFE_BELT , //已系安全带
  17002. SS_WITHOUT_SAFE_BELT , //未系安全带
  17003. }NET_SAFEBELT_STATE;
  17004. ///@brief 遮阳板状态
  17005. typedef enum tagNET_SUNSHADE_STATE
  17006. {
  17007. SS_NUKNOW_SUN_SHADE = 0 , // 未知
  17008. SS_WITH_SUN_SHADE, // 有遮阳板
  17009. SS_WITHOUT_SUN_SHADE, // 无遮阳板
  17010. }NET_SUNSHADE_STATE;
  17011. ///@brief 打电话的动作类型
  17012. typedef enum tagEM_CALL_ACTION_TYPE
  17013. {
  17014. EM_CALL_ACTION_TYPE_UNKNOWN, // 未知
  17015. EM_CALL_ACTION_TYPE_CALL_BY_EAR, // 贴耳
  17016. EM_CALL_ACTION_TYPE_CALL_HAND_HOLD, // 手持
  17017. }EM_CALL_ACTION_TYPE;
  17018. ///@brief 驾驶位违规信息
  17019. typedef struct tagEVENT_COMM_SEAT
  17020. {
  17021. BOOL bEnable; // 是否检测到座驾信息
  17022. EM_COMMON_SEAT_TYPE emSeatType; // 座驾类型, 0:未识别; 1:主驾驶; 2:副驾驶
  17023. EVENT_COMM_STATUS stStatus; // 违规状态
  17024. NET_SAFEBELT_STATE emSafeBeltStatus; // 安全带状态
  17025. NET_SUNSHADE_STATE emSunShadeStatus; // 遮阳板状态
  17026. EM_CALL_ACTION_TYPE emCallAction; // 打电话动作
  17027. UINT nSafeBeltConf; // 安全带确信度
  17028. UINT nPhoneConf; // 打电话置信度
  17029. UINT nSmokeConf; // 抽烟置信度
  17030. char szReserved[8]; // 预留字节
  17031. }EVENT_COMM_SEAT;
  17032. ///@brief 车辆物件类型
  17033. typedef enum tagEM_COMM_ATTACHMENT_TYPE
  17034. {
  17035. COMM_ATTACHMENT_TYPE_UNKNOWN = 0, // 未知类型
  17036. COMM_ATTACHMENT_TYPE_FURNITURE = 1, // 摆件
  17037. COMM_ATTACHMENT_TYPE_PENDANT = 2, // 挂件
  17038. COMM_ATTACHMENT_TYPE_TISSUEBOX = 3, // 纸巾盒
  17039. COMM_ATTACHMENT_TYPE_DANGER = 4, // 危险品
  17040. COMM_ATTACHMENT_TYPE_PERFUMEBOX = 5, // 香水
  17041. }EM_COMM_ATTACHMENT_TYPE;
  17042. ///@brief 车辆物件
  17043. typedef struct tagEVENT_COMM_ATTACHMENT
  17044. {
  17045. EM_COMM_ATTACHMENT_TYPE emAttachmentType; // 物件类型
  17046. NET_RECT stuRect; // 坐标
  17047. UINT nConf; // 置信度
  17048. BYTE bReserved[16]; // 预留字节
  17049. }EVENT_COMM_ATTACHMENT;
  17050. ///@brief 交通抓图图片信息
  17051. typedef struct tagEVENT_PIC_INFO
  17052. {
  17053. DWORD nOffset; // 原始图片偏移,单位字节
  17054. DWORD nLength; // 原始图片长度,单位字节
  17055. UINT nIndexInData; // 在上传图片数据中的图片序号
  17056. }EVENT_PIC_INFO;
  17057. ///@brief 收费站车型分类
  17058. typedef enum tagEM_VEHICLE_TYPE
  17059. {
  17060. EM_VEHICLE_TYPE_UNKNOWN, // 未知
  17061. EM_VEHICLE_TYPE_PASSENGERCAR1, // 客1
  17062. EM_VEHICLE_TYPE_TRUCK1, // 货1
  17063. EM_VEHICLE_TYPE_PASSENGERCAR2, // 客2
  17064. EM_VEHICLE_TYPE_TRUCK2, // 货2
  17065. EM_VEHICLE_TYPE_PASSENGERCAR3, // 客3
  17066. EM_VEHICLE_TYPE_TRUCK3, // 货3
  17067. EM_VEHICLE_TYPE_PASSENGERCAR4, // 客4
  17068. EM_VEHICLE_TYPE_TRUCK4, // 货4
  17069. EM_VEHICLE_TYPE_PASSENGERCAR5, // 客5
  17070. EM_VEHICLE_TYPE_TRUCK5, // 货5
  17071. }EM_VEHICLE_TYPE;
  17072. ///@brief 抓拍的类型
  17073. typedef enum tagEM_SNAPCATEGORY
  17074. {
  17075. EM_SNAPCATEGORY_MOTOR, // 机动车
  17076. EM_SNAPCATEGORY_NONMOTOR, // 非机动车
  17077. }EM_SNAPCATEGORY;
  17078. ///@brief 标准车辆类型
  17079. typedef enum tagEM_STANDARD_VEHICLE_TYPE
  17080. {
  17081. EM_STANDARD_VEHICLE_UNKNOWN, // 未知
  17082. EM_STANDARD_VEHICLE_MOTOR, // 机动车
  17083. EM_STANDARD_VEHICLE_BUS, // 公交车
  17084. EM_STANDARD_VEHICLE_UNLICENSED_MOTOR, // 无牌机动车
  17085. EM_STANDARD_VEHICLE_LARGE_CAR, // 大型汽车
  17086. EM_STANDARD_VEHICLE_MICRO_CAR, // 小型汽车
  17087. EM_STANDARD_VEHICLE_EMBASSY_CAR, // 使馆汽车
  17088. EM_STANDARD_VEHICLE_MARGINAL_CAR, // 领馆汽车
  17089. EM_STANDARD_VEHICLE_AREAOUT_CAR, // 境外汽车
  17090. EM_STANDARD_VEHICLE_FOREIGN_CAR, // 外籍汽车
  17091. EM_STANDARD_VEHICLE_FARM_TRANS_CAR, // 农用运输车
  17092. EM_STANDARD_VEHICLE_TRACTOR, // 拖拉机
  17093. EM_STANDARD_VEHICLE_TRAILER, // 挂车
  17094. EM_STANDARD_VEHICLE_COACH_CAR, // 教练汽车
  17095. EM_STANDARD_VEHICLE_TRIAL_CAR, // 试验汽车
  17096. EM_STANDARD_VEHICLE_TEMPORARYENTRY_CAR, // 临时入境汽车
  17097. EM_STANDARD_VEHICLE_TEMPORARYENTRY_MOTORCYCLE, // 临时入境摩托
  17098. EM_STANDARD_VEHICLE_TEMPORARY_STEER_CAR, // 临时行驶车
  17099. EM_STANDARD_VEHICLE_LARGE_TRUCK, // 大货车
  17100. EM_STANDARD_VEHICLE_MID_TRUCK, // 中货车
  17101. EM_STANDARD_VEHICLE_MICRO_TRUCK, // 小货车
  17102. EM_STANDARD_VEHICLE_MICROBUS, // 面包车
  17103. EM_STANDARD_VEHICLE_SALOON_CAR, // 轿车
  17104. EM_STANDARD_VEHICLE_CARRIAGE, // 小轿车
  17105. EM_STANDARD_VEHICLE_MINI_CARRIAGE, // 微型轿车
  17106. EM_STANDARD_VEHICLE_SUV_MPV, // SUV或者MPV
  17107. EM_STANDARD_VEHICLE_SUV, // SUV
  17108. EM_STANDARD_VEHICLE_MPV, // MPV
  17109. EM_STANDARD_VEHICLE_PASSENGER_CAR, // 客车
  17110. EM_STANDARD_VEHICLE_MOTOR_BUS, // 大客车
  17111. EM_STANDARD_VEHICLE_MID_PASSENGER_CAR, // 中客车
  17112. EM_STANDARD_VEHICLE_MINI_BUS, // 小客车
  17113. EM_STANDARD_VEHICLE_PICKUP, // 皮卡车
  17114. EM_STANDARD_VEHICLE_OILTANK_TRUCK, // 油罐车
  17115. } EM_STANDARD_VEHICLE_TYPE;
  17116. ///@brief 雷达检测车型
  17117. typedef enum tagEM_RADAR_DETECTION_VEHICLE_TYPE
  17118. {
  17119. EM_RADAR_DETECTION_VEHICLE_TYPE_UNKNOWN, // 未知
  17120. EM_RADAR_DETECTION_VEHICLE_TYPE_MID_PASSENGER_CAR, // 中小客车
  17121. EM_RADAR_DETECTION_VEHICLE_TYPE_MOTOR_BUS, // 大客车
  17122. EM_RADAR_DETECTION_VEHICLE_TYPE_MICRO_TRUCK, // 小货车
  17123. EM_RADAR_DETECTION_VEHICLE_TYPE_MID_TRUCK, // 中型货车
  17124. EM_RADAR_DETECTION_VEHICLE_TYPE_LARGE_TRUCK, // 大型货车
  17125. EM_RADAR_DETECTION_VEHICLE_TYPE_SUPER_TRUCK, // 特大货车
  17126. EM_RADAR_DETECTION_VEHICLE_TYPE_CONTAINER_CAR, // 集装箱车
  17127. EM_RADAR_DETECTION_VEHICLE_TYPE_MOTORCYCLE, // 摩托车
  17128. EM_RADAR_DETECTION_VEHICLE_TYPE_TRACTOR, // 拖拉机
  17129. }EM_RADAR_DETECTION_VEHICLE_TYPE;
  17130. ///@brief 车辆类型中的子类别,一个车辆只能是子类型的某一种。
  17131. typedef enum tagEM_OVERSEA_VEHICLE_CATEGORY_TYPE
  17132. {
  17133. EM_OVERSEA_VEHICLE_CATEGORY_UNKNOWN, // 未知
  17134. EM_OVERSEA_VEHICLE_CATEGORY_MOTORCYCLE, //摩托车
  17135. EM_OVERSEA_VEHICLE_CATEGORY_LIGHT_GOODS_VEHICLE, //轻型货车
  17136. EM_OVERSEA_VEHICLE_CATEGORY_COMPANY_VEHICLE, //公司用私家车
  17137. EM_OVERSEA_VEHICLE_CATEGORY_PRIVATE_VEHICLE, //个人用私家车
  17138. EM_OVERSEA_VEHICLE_CATEGORY_TAXI, //TAXI或者快线车
  17139. EM_OVERSEA_VEHICLE_CATEGORY_TRAILER, //拖车
  17140. EM_OVERSEA_VEHICLE_CATEGORY_ENGINEERING_PLANT_VEHICLE, //工程车
  17141. EM_OVERSEA_VEHICLE_CATEGORY_VERY_HEAVY_GOODS_VEHICLE, //超大货车
  17142. EM_OVERSEA_VEHICLE_CATEGORY_HEAVY_GOODS_VEHICLE, //大货车
  17143. EM_OVERSEA_VEHICLE_CATEGORY_PUBLIC_BUS, //公共BUS
  17144. EM_OVERSEA_VEHICLE_CATEGORY_PRIVATE_BUS, //私营BUS
  17145. EM_OVERSEA_VEHICLE_CATEGORY_SPECIAL_VEHICLE, //特殊车辆
  17146. }EM_OVERSEA_VEHICLE_CATEGORY_TYPE;
  17147. ///@brief 物体在雷达坐标系中的信息
  17148. typedef struct tagNET_EVENT_RADAR_INFO
  17149. {
  17150. float fCoordinateX; // X轴坐标(横向距离),单位:米
  17151. float fCoordinateY; // Y轴坐标(纵向距离),单位:米
  17152. float fAccelerationX; // 雷达目标横向加速度ax, 横向指设备视角的右手方向; 数据为正表示车辆加速, 数据为负表示车辆减速; 单位为m/s2
  17153. float fAccelerationY; // 雷达目标纵向加速度ay,纵向指设备视角的正前方向;数据为正表示车辆加速,数据为负表示车辆减速;单位为m/s2
  17154. BYTE bReserved[16]; // 预留字节
  17155. }NET_EVENT_RADAR_INFO;
  17156. ///@brief 触发事件时物体的GPS信息
  17157. typedef struct tagNET_EVENT_GPS_INFO
  17158. {
  17159. double dLongitude; // 经度,单位:度,正为东经,负为西经,取值范围[-180,180]
  17160. double dLatitude; // 纬度,单位:度,正为北纬,负为南纬,取值范围[-90,90]
  17161. BYTE bReserved[24]; // 预留字节
  17162. }NET_EVENT_GPS_INFO;
  17163. ///@brief 辅车牌信息
  17164. typedef struct tagNET_EXTRA_PLATES
  17165. {
  17166. UINT nOffset; // 车牌图片在二进制数据内偏移,单位字节
  17167. UINT nLength; // 车牌图片长度,单位字节
  17168. char szText[64]; // 辅车牌号码,UTF8格式
  17169. EM_NET_PLATE_TYPE emCategory; // 车牌类型
  17170. EM_NET_PLATE_COLOR_TYPE emColor; // 车牌颜色
  17171. NET_RECT stuArea; // 辅车牌的包围盒,坐标已算上黑边高度车牌矩形框,绝对坐标,即真正的像素点坐标
  17172. char bReserved[32]; // 预留字节
  17173. }NET_EXTRA_PLATES;
  17174. ///@brief 公共信息
  17175. typedef struct tagEVENT_COMM_INFO
  17176. {
  17177. EM_NTP_STATUS emNTPStatus; // NTP校时状态
  17178. int nDriversNum; // 驾驶员信息数
  17179. DH_MSG_OBJECT_EX *pstDriversInfo; // 驾驶员信息数据
  17180. char* pszFilePath; // 本地硬盘或者sd卡成功写入路径,为NULL时,路径不存在
  17181. char* pszFTPPath; // 设备成功写到ftp服务器的路径
  17182. char* pszVideoPath; // 当前接入需要获取当前违章的关联视频的FTP上传路径
  17183. EVENT_COMM_SEAT stCommSeat[COMMON_SEAT_MAX_NUMBER]; // 驾驶位信息
  17184. int nAttachmentNum; // 车辆物件个数
  17185. EVENT_COMM_ATTACHMENT stuAttachment[NET_MAX_ATTACHMENT_NUM]; // 车辆物件信息
  17186. int nAnnualInspectionNum; // 年检标志个数
  17187. NET_RECT stuAnnualInspection[NET_MAX_ANNUUALINSPECTION_NUM]; // 年检标志
  17188. float fHCRatio; // HC所占比例,单位:%/1000000
  17189. float fNORatio; // NO所占比例,单位:%/1000000
  17190. float fCOPercent; // CO所占百分比,单位:% 取值0~100
  17191. float fCO2Percent; // CO2所占百分比,单位:% 取值0~100
  17192. float fLightObscuration; // 不透光度,单位:% 取值0~100
  17193. int nPictureNum; // 原始图片张数
  17194. EVENT_PIC_INFO stuPicInfos[NET_MAX_EVENT_PIC_NUM]; // 原始图片信息
  17195. float fTemperature; // 温度值,单位摄氏度
  17196. int nHumidity; // 相对湿度百分比值
  17197. float fPressure; // 气压值,单位Kpa
  17198. float fWindForce; // 风力值,单位m/s
  17199. UINT nWindDirection; // 风向,单位度,范围:[0,360]
  17200. float fRoadGradient; // 道路坡度值,单位度
  17201. float fAcceleration; // 加速度值,单位:m/s2
  17202. NET_RFIDELETAG_INFO stuRFIDEleTagInfo; // RFID 电子车牌标签信息
  17203. EVENT_PIC_INFO stuBinarizedPlateInfo; // 二值化车牌抠图
  17204. EVENT_PIC_INFO stuVehicleBodyInfo; // 车身特写抠图
  17205. EM_VEHICLE_TYPE emVehicleTypeInTollStation; // 收费站车型分类
  17206. EM_SNAPCATEGORY emSnapCategory; // 抓拍的类型,默认为机动车
  17207. int nRegionCode; // 车牌所属地区代码,默认-1表示未识别
  17208. EM_VEHICLE_TYPE_BY_FUNC emVehicleTypeByFunc; // 按功能划分的车辆类型
  17209. EM_STANDARD_VEHICLE_TYPE emStandardVehicleType; // 标准车辆类型
  17210. UINT nExtraPlateCount; // 额外车牌数量
  17211. char szExtraPlateNumber[3][32]; // 额外车牌信息
  17212. EM_OVERSEA_VEHICLE_CATEGORY_TYPE emOverseaVehicleCategory; // 海外车辆类型中的子类别
  17213. char szProvince[64]; // 车牌所属国家的省、州等地区名
  17214. NET_EVENT_RADAR_INFO stuRadarInfo; // 物体在雷达坐标系中的信息,单位:米,设备视角:右手方向为X轴正向,正前方为Y轴正向
  17215. NET_EVENT_GPS_INFO stuGPSInfo; // 触发事件时物体的GPS信息
  17216. NET_EXTRA_PLATES stuExtraPlates[2]; // 辅车牌信息,某些国家或地区一车多牌
  17217. int nExtraPlatesCount; // 辅车牌有效个数
  17218. UINT nPlateRecogniseConf; //车牌识别置信度
  17219. UINT nVecPostureConf; //车辆姿态置信度
  17220. UINT nVecColorConf; //车身颜色置信度
  17221. UINT nSpecialVehConf; //特殊车辆识别结果置信度
  17222. UINT nIsLargeAngle; //机动车是否为大角度
  17223. UINT nIsRelatedPlate; //当前机动车车身是否曾经关联车牌
  17224. UINT nDetectConf; //机动车检测置信度
  17225. UINT nClarity; //机动车清晰度分值
  17226. UINT nCompleteScore; //机动车完整度评分
  17227. UINT nQeScore; //机动车优选分数
  17228. float fSpeedFloat; // 浮点型速度值,单位km/h
  17229. double dbHeadingAngle; // 航向角, 以正北方向为基准输出车辆运动方向同正北方向的角度; 范围 0~360,顺时针正,单位为度;
  17230. UINT nDriverNum; // 车辆前排驾驶室人员数量
  17231. BYTE bReserved[112]; // 预留字节
  17232. char szCountry[20]; // 国家
  17233. }EVENT_COMM_INFO;
  17234. ///@brief 温度单位
  17235. typedef enum tagEM_TEMPERATURE_UNIT
  17236. {
  17237. EM_TEMPERATURE_UNKNOWN = -1, // 未知
  17238. EM_TEMPERATURE_CENTIGRADE, // 摄氏度
  17239. EM_TEMPERATURE_FAHRENHEIT, // 华氏度
  17240. EM_TEMPERATURE_KELVIN, // 开尔文
  17241. } EM_TEMPERATURE_UNIT;
  17242. ///@brief 建委地磅定制称重信息
  17243. typedef struct tagEVENT_CUSTOM_WEIGHT_INFO
  17244. {
  17245. DWORD dwRoughWeight; // 毛重,车辆满载货物重量。单位KG
  17246. DWORD dwTareWeight; // 皮重,空车重量。单位KG
  17247. DWORD dwNetWeight; // 净重,载货重量。单位KG
  17248. BYTE bReserved[28]; // 预留字节
  17249. }EVENT_CUSTOM_WEIGHT_INFO;
  17250. ///@brief 雷达自由流信息
  17251. typedef struct tagNET_RADAR_FREE_STREAM
  17252. {
  17253. TP_U64 nABSTime; // 1年1月1日0时起至今的毫秒数
  17254. int nVehicleID; // 车辆ID
  17255. UINT unOBUMAC; // OBU的MAC地址
  17256. }NET_RADAR_FREE_STREAM;
  17257. ///@brief 测温信息
  17258. typedef struct tagNET_CUSTOM_MEASURE_TEMPER
  17259. {
  17260. float fLeft; // 车辆左侧温度值
  17261. float fRight; // 车辆右侧温度值
  17262. float fHead; // 车辆发动机位置温度值 (车头)
  17263. EM_TEMPERATURE_UNIT emUnit; // 温度单位
  17264. }NET_CUSTOM_MEASURE_TEMPER;
  17265. ///@brief 卡口事件专用定制上报内容,定制需求增加到Custom下
  17266. typedef struct tagEVENT_JUNCTION_CUSTOM_INFO
  17267. {
  17268. EVENT_CUSTOM_WEIGHT_INFO stuWeightInfo; // 原始图片信息
  17269. DWORD nCbirFeatureOffset; // 数据偏移,单位字节 (由于结构体保留字节有限的限制,添加在此处, 下同)
  17270. DWORD nCbirFeatureLength; // 数据大小,单位字节
  17271. DWORD dwVehicleHeadDirection; // 车头朝向 0:未知 1:左 2:中 3:右
  17272. UINT nAvailableSpaceNum; // 停车场车位余位数量
  17273. NET_RADAR_FREE_STREAM stuRadarFreeStream; // 雷达自由流信息
  17274. NET_CUSTOM_MEASURE_TEMPER stuMeasureTemper; // 测温信息
  17275. BOOL bCbirFeatureEnc; // 标识车身特征值是否加密
  17276. UINT nRadarTriggerLineNo; // 雷达触发线序号上报 1 :触发线1, 2 :触发线2, 0 : 未知
  17277. BYTE bReserved[4]; // 预留字节
  17278. }EVENT_JUNCTION_CUSTOM_INFO;
  17279. ///@brief 驾驶位信息
  17280. typedef struct tagNET_SEAT_INFO
  17281. {
  17282. NET_RECT stuFaceRect; // 目标矩形框信息(8192坐标系)
  17283. BYTE bySunShade; // 遮阳板状态 0: 未知 1:无遮阳板 2:有遮阳板
  17284. BYTE byDriverCalling; // 打电话状态 0: 未知 1:未打电话 2:打电话
  17285. BYTE byDriverSmoking; // 抽烟状态 0: 未知 1:未吸烟 2:吸烟
  17286. BYTE bySafeBelt; // 安全带状态 0: 未知 1:未系安全带 2:系安全带
  17287. BYTE byReserved[32]; // 保留字节
  17288. }NET_SEAT_INFO;
  17289. ///@brief 车上附件
  17290. typedef struct tagNET_VEHICLE_ATTACH
  17291. {
  17292. int nType; // 附件类型 0-未知 1-年检标志 2-挂件 3-纸巾盒 4-香水盒
  17293. NET_RECT stuBoundingBox; // 包围盒信息(8192坐标系)
  17294. BYTE byReserved[32];
  17295. }NET_VEHICLE_ATTACH;
  17296. ///@brief 目标全景图
  17297. typedef struct tagFACE_SCENE_IMAGE
  17298. {
  17299. unsigned int nOffSet; // 在二进制数据块中的偏移
  17300. unsigned int nLength; // 图片大小,单位字节
  17301. unsigned int nWidth; // 图片宽度(像素)
  17302. unsigned int nHeight; // 图片高度(像素)
  17303. UINT nIndexInData; // 在上传图片数据中的图片序号
  17304. BYTE byReserved[52]; // 预留字节
  17305. } FACE_SCENE_IMAGE;
  17306. ///@brief 颜色类型
  17307. typedef enum tagEM_OBJECT_COLOR_TYPE
  17308. {
  17309. EM_OBJECT_COLOR_TYPE_UNKNOWN, // 未知
  17310. EM_OBJECT_COLOR_TYPE_WHITE, // 白色
  17311. EM_OBJECT_COLOR_TYPE_ORANGE, // 橙色
  17312. EM_OBJECT_COLOR_TYPE_PINK, // 粉色
  17313. EM_OBJECT_COLOR_TYPE_BLACK, // 黑色
  17314. EM_OBJECT_COLOR_TYPE_RED, // 红色
  17315. EM_OBJECT_COLOR_TYPE_YELLOW, // 黄色
  17316. EM_OBJECT_COLOR_TYPE_GRAY, // 灰色
  17317. EM_OBJECT_COLOR_TYPE_BLUE, // 蓝色
  17318. EM_OBJECT_COLOR_TYPE_GREEN, // 绿色
  17319. EM_OBJECT_COLOR_TYPE_PURPLE, // 紫色
  17320. EM_OBJECT_COLOR_TYPE_BROWN, // 棕色
  17321. EM_OBJECT_COLOR_TYPE_SLIVER, // 银色
  17322. EM_OBJECT_COLOR_TYPE_DARKVIOLET, // 暗紫罗兰色
  17323. EM_OBJECT_COLOR_TYPE_MAROON, // 栗色
  17324. EM_OBJECT_COLOR_TYPE_DIMGRAY, // 暗灰色
  17325. EM_OBJECT_COLOR_TYPE_WHITESMOKE, // 白烟色
  17326. EM_OBJECT_COLOR_TYPE_DARKORANGE, // 深橙色
  17327. EM_OBJECT_COLOR_TYPE_MISTYROSE, // 浅玫瑰色
  17328. EM_OBJECT_COLOR_TYPE_TOMATO, // 番茄红色
  17329. EM_OBJECT_COLOR_TYPE_OLIVE, // 橄榄色
  17330. EM_OBJECT_COLOR_TYPE_GOLD, // 金色
  17331. EM_OBJECT_COLOR_TYPE_DARKOLIVEGREEN, // 暗橄榄绿色
  17332. EM_OBJECT_COLOR_TYPE_CHARTREUSE, // 黄绿色
  17333. EM_OBJECT_COLOR_TYPE_GREENYELLOW, // 绿黄色
  17334. EM_OBJECT_COLOR_TYPE_FORESTGREEN, // 森林绿色
  17335. EM_OBJECT_COLOR_TYPE_SEAGREEN, // 海洋绿色
  17336. EM_OBJECT_COLOR_TYPE_DEEPSKYBLUE, // 深天蓝色
  17337. EM_OBJECT_COLOR_TYPE_CYAN, // 青色
  17338. EM_OBJECT_COLOR_TYPE_OTHER, // 无法识别
  17339. }EM_OBJECT_COLOR_TYPE;
  17340. ///@brief 是否带眼镜
  17341. typedef enum tagEM_HAS_GLASS
  17342. {
  17343. EM_HAS_GLASS_UNKNOWN, // 未知
  17344. EM_HAS_GLASS_NO, // 未戴
  17345. EM_HAS_GLASS_NORMAL, // 戴普通眼镜
  17346. EM_HAS_GLASS_SUN, // 戴太阳眼镜
  17347. EM_HAS_GLASS_BLACK, // 戴黑框眼镜
  17348. } EM_HAS_GLASS;
  17349. ///@brief 事件/物体状态
  17350. typedef enum tagEM_NONMOTOR_OBJECT_STATUS
  17351. {
  17352. EM_NONMOTOR_OBJECT_STATUS_UNKNOWN, // 未识别
  17353. EM_NONMOTOR_OBJECT_STATUS_NO, // 否
  17354. EM_NONMOTOR_OBJECT_STATUS_YES, // 是
  17355. }EM_NONMOTOR_OBJECT_STATUS;
  17356. ///@brief 表情
  17357. typedef enum tagEM_EMOTION_TYPE
  17358. {
  17359. EM_EMOTION_TYPE_UNKNOWN, // 未知
  17360. EM_EMOTION_TYPE_NORMAL, // 普通/正常
  17361. EM_EMOTION_TYPE_SMILE, // 微笑
  17362. EM_EMOTION_TYPE_ANGER, // 愤怒
  17363. EM_EMOTION_TYPE_SADNESS, // 悲伤
  17364. EM_EMOTION_TYPE_DISGUST, // 厌恶
  17365. EM_EMOTION_TYPE_FEAR, // 害怕
  17366. EM_EMOTION_TYPE_SURPRISE, // 惊讶
  17367. EM_EMOTION_TYPE_NEUTRAL, // 正常
  17368. EM_EMOTION_TYPE_LAUGH, // 大笑
  17369. EM_EMOTION_TYPE_HAPPY, // 高兴
  17370. EM_EMOTION_TYPE_CONFUSED, // 困惑
  17371. EM_EMOTION_TYPE_SCREAM, // 尖叫
  17372. EM_EMOTION_TYPE_CALMNESS, // 平静
  17373. }EM_EMOTION_TYPE;
  17374. ///@brief 衣类型
  17375. typedef enum tagEM_CLOTHES_TYPE
  17376. {
  17377. EM_CLOTHES_TYPE_UNKNOWN, //未知
  17378. EM_CLOTHES_TYPE_LONG_SLEEVE, //长袖
  17379. EM_CLOTHES_TYPE_SHORT_SLEEVE, //短袖
  17380. EM_CLOTHES_TYPE_TROUSERS, //长裤
  17381. EM_CLOTHES_TYPE_SHORTS, //短裤
  17382. EM_CLOTHES_TYPE_SKIRT, //裙子
  17383. EM_CLOTHES_TYPE_WAISTCOAT, //背心
  17384. EM_CLOTHES_TYPE_MINIPANTS, //超短裤
  17385. EM_CLOTHES_TYPE_MINISKIRT, //超短裙
  17386. }EM_CLOTHES_TYPE;
  17387. ///@brief 新上衣类型
  17388. typedef enum tagEM_NEWUPCLOTHES_TYPE
  17389. {
  17390. EM_NEWUPCLOTHES_TYPE_UNKNOWN, //未知
  17391. EM_NEWUPCLOTHES_TYPE_LONG_SLEEVE, //长袖
  17392. EM_NEWUPCLOTHES_TYPE_SHORT_SLEEVE, //短袖
  17393. EM_NEWUPCLOTHES_TYPE_LONGCOAT, //长款大衣
  17394. EM_NEWUPCLOTHES_TYPE_JACKET_AND_JEANS, //夹克及牛仔服
  17395. EM_NEWUPCLOTHES_TYPE_TSHIRT, //T恤
  17396. EM_NEWUPCLOTHES_TYPE_SPORTWEAR, //运动装
  17397. EM_NEWUPCLOTHES_TYPE_DOWNJACKETS, //羽绒服
  17398. EM_NEWUPCLOTHES_TYPE_SHIRT, //衬衫
  17399. EM_NEWUPCLOTHES_TYPE_DRESS, //连衣裙
  17400. EM_NEWUPCLOTHES_TYPE_SUIT, //西装
  17401. EM_NEWUPCLOTHES_TYPE_SWEATER, //毛衣
  17402. EM_NEWUPCLOTHES_TYPE_SLEEVELESS, //无袖
  17403. EM_NEWUPCLOTHES_TYPE_VEST, //背心
  17404. }EM_NEWUPCLOTHES_TYPE;
  17405. ///@brief 新下衣类型
  17406. typedef enum tagEM_NEWDOWNCLOTHES_TYPE
  17407. {
  17408. EM_NEWDOWNCLOTHES_TYPE_UNKNOWN, //未知
  17409. EM_NEWDOWNCLOTHES_TYPE_TROUSERS, //长裤
  17410. EM_NEWDOWNCLOTHES_TYPE_SHORTS, //短裤
  17411. EM_NEWDOWNCLOTHES_TYPE_SKIRT, //裙子
  17412. }EM_NEWDOWNCLOTHES_TYPE;
  17413. ///@brief 非机动车子类型
  17414. typedef enum tagEM_CATEGORY_NONMOTOR_TYPE
  17415. {
  17416. EM_CATEGORY_NONMOTOR_TYPE_UNKNOWN, // 未知
  17417. EM_CATEGORY_NONMOTOR_TYPE_TRICYCLE, // "Tricycle" 三轮车
  17418. EM_CATEGORY_NONMOTOR_TYPE_MOTORCYCLE, // "Motorcycle" 摩托车
  17419. EM_CATEGORY_NONMOTOR_TYPE_NON_MOTOR, // "Non-Motor" 非机动车
  17420. EM_CATEGORY_NONMOTOR_TYPE_BICYCLE, // "Bicycle" 自行车
  17421. EM_CATEGORY_NONMOTOR_TYPE_DUALTRIWHEELMOTORCYCLE, // "DualTriWheelMotorcycle"两、三轮摩托车
  17422. EM_CATEGORY_NONMOTOR_TYPE_LIGHTMOTORCYCLE, // "LightMotorcycle" 轻便摩托车
  17423. EM_CATEGORY_NONMOTOR_TYPE_EMBASSYMOTORCYCLE, // "EmbassyMotorcycle "使馆摩托车
  17424. EM_CATEGORY_NONMOTOR_TYPE_MARGINALMOTORCYCLE, // "MarginalMotorcycle " 领馆摩托车
  17425. EM_CATEGORY_NONMOTOR_TYPE_AREAOUTMOTORCYCLE, // "AreaoutMotorcycle " 境外摩托车
  17426. EM_CATEGORY_NONMOTOR_TYPE_FOREIGNMOTORCYCLE, // "ForeignMotorcycle " 外籍摩托车
  17427. EM_CATEGORY_NONMOTOR_TYPE_TRIALMOTORCYCLE, // "TrialMotorcycle " 试验摩托车
  17428. EM_CATEGORY_NONMOTOR_TYPE_COACHMOTORCYCLE, // "CoachMotorcycle " 教练摩托车
  17429. EM_CATEGORY_NONMOTOR_TYPE_PASSERBY, // "Passerby" 行人
  17430. EM_CATEGORY_NONMOTOR_TYPE_VANTRICYCLE, // "VanTricycle" 厢式三轮车
  17431. EM_CATEGORY_NONMOTOR_TYPE_MANNEDCONVERTIBLETRICYCLE, // "MannedConvertibleTricycle" 载人敞篷三轮车
  17432. EM_CATEGORY_NONMOTOR_TYPE_NOMANNEDCONVERTIBLETRICYCLE, // "NoMannedConvertibleTricycle" 不载人敞篷三轮车
  17433. EM_CATEGORY_NONMOTOR_TYPE_ELECTRICBIKE, // "Electricbike" 二轮电瓶车
  17434. EM_CATEGORY_NONMOTOR_TYPE_FOURWHEELER, // "FourWheelerNonMotor" 四轮非机动车
  17435. EM_CATEGORY_NONMOTOR_TYPE_SCOOTER, // "Scooter" 滑板车
  17436. }EM_CATEGORY_NONMOTOR_TYPE;
  17437. ///@brief 非机动车抠图信息
  17438. typedef struct tagNET_NONMOTOR_PIC_INFO
  17439. {
  17440. UINT uOffset; // 在二进制数据块中的偏移
  17441. UINT uLength; // 图片大小,单位:字节
  17442. UINT uWidth; // 图片宽度
  17443. UINT uHeight; // 图片高度
  17444. char szFilePath[MAX_PATH_LEN]; // 文件路径
  17445. UINT nIndexInData; // 在上传图片数据中的图片序号
  17446. BYTE byReserved[508]; // 保留
  17447. }NET_NONMOTOR_PIC_INFO;
  17448. ///@brief 骑车目标图片信息
  17449. typedef struct tagRIDER_FACE_IMAGE_INFO
  17450. {
  17451. unsigned int nOffSet; // 在二进制数据块中的偏移
  17452. unsigned int nLength; // 图片大小,单位字节
  17453. unsigned int nWidth; // 图片宽度(像素)
  17454. unsigned int nHeight; // 图片高度(像素)
  17455. UINT nIndexInData; // 图片的序号
  17456. BYTE byReserved[44]; // 保留
  17457. }RIDER_FACE_IMAGE_INFO;
  17458. ///@brief 斜视状态
  17459. typedef enum tagEM_STRABISMUS_TYPE
  17460. {
  17461. EM_STRABISMUS_UNKNOWN, // 未知
  17462. EM_STRABISMUS_NORMAL, // 正常
  17463. EM_STRABISMUS_YES, // 斜视
  17464. } EM_STRABISMUS_TYPE;
  17465. ///@brief 目标属性
  17466. typedef struct tagNET_FACE_ATTRIBUTE_EX
  17467. {
  17468. EM_SEX_TYPE emSex; // 性别
  17469. int nAge; // 年龄,-1表示该字段数据无效
  17470. char szReserved[4];
  17471. EM_EYE_STATE_TYPE emEye; // 眼睛状态
  17472. EM_MOUTH_STATE_TYPE emMouth; // 嘴巴状态
  17473. EM_MASK_STATE_TYPE emMask; // 口罩状态
  17474. EM_BEARD_STATE_TYPE emBeard; // 胡子状态
  17475. int nAttractive; // 魅力值, 0未识别,识别时范围1-100,得分高魅力高
  17476. EM_HAS_GLASS emGlass; // 眼镜
  17477. EM_EMOTION_TYPE emEmotion; // 表情
  17478. DH_RECT stuBoundingBox; // 包围盒(8192坐标系)
  17479. BYTE bReserved1[4]; // 保留字节
  17480. EM_STRABISMUS_TYPE emStrabismus; // 斜视状态
  17481. int nAngle[3]; // 目标, 三个角度依次分别是
  17482. // Pitch(仰俯角), 指抬头低头的角度, 范围是-70~60;
  17483. // yaw(偏航角), 指左右转头的角度, 范围是-90~90;
  17484. // Roll(翻滚角), 指左右倾斜的角度, 范围是-90~90;
  17485. // [180,180,180]表示未识别到角度
  17486. NET_POINT stuObjCenter; // 物体型心(不是包围盒中心), 0-8191相对坐标, 相对于大图
  17487. BYTE byReserved[48]; // 保留字节,留待扩展.
  17488. } NET_FACE_ATTRIBUTE_EX;
  17489. ///@brief 目标特征值数据在二进制数据中的位置信息
  17490. typedef struct tagNET_FACE_FEATURE_VECTOR_INFO
  17491. {
  17492. UINT nOffset; // 目标特征值在二进制数据中的偏移, 单位:字节
  17493. UINT nLength; // 目标特征值数据长度, 单位:字节
  17494. BOOL bFeatureEnc; // 用于标识特征值是否加密
  17495. BYTE byReserved[28]; // 保留字节
  17496. } NET_FACE_FEATURE_VECTOR_INFO;
  17497. ///@brief 人体特征值数据在二进制数据中的位置信息
  17498. typedef struct tagNET_HUMAN_FEATURE_VECTOR_INFO
  17499. {
  17500. UINT nOffset; // 人体特征值在二进制数据中的偏移, 单位:字节
  17501. UINT nLength; // 人体特征值数据长度, 单位:字节
  17502. BOOL bFeatureEnc; // 用于标识特征值是否加密
  17503. BYTE byReserved[28]; // 保留字节
  17504. } NET_HUMAN_FEATURE_VECTOR_INFO;
  17505. ///@brief 特征值版本类型
  17506. typedef enum tagEM_FEATURE_VERSION
  17507. {
  17508. EM_FEATURE_VERSION_UNKNOWN, // 未知
  17509. EM_FEATURE_VERSION_FACE_LARGE_1_01_001 = 1, // 目标,大模型,1.01.001
  17510. EM_FEATURE_VERSION_FACE_LARGE_1_02_001, // 目标,大模型,1.02.001
  17511. EM_FEATURE_VERSION_FACE_LARGE_1_03_001, // 目标,大模型,1.03.001
  17512. EM_FEATURE_VERSION_FACE_LARGE_1_04_001, // 目标,大模型,1.04.001
  17513. EM_FEATURE_VERSION_FACE_MIDDLE_1_01_002 = 31, // 目标,中模型,1.01.002
  17514. EM_FEATURE_VERSION_FACE_MIDDLE_1_02_002, // 目标,中模型,1.02.002
  17515. EM_FEATURE_VERSION_FACE_MIDDLE_1_03_002, // 目标,中模型,1.03.002
  17516. EM_FEATURE_VERSION_FACE_MIDDLE_1_04_002, // 目标,中模型,1.04.002
  17517. EM_FEATURE_VERSION_FACE_MIDDLE_1_09_002 = 39, // 目标,中模型,1.09.002
  17518. EM_FEATURE_VERSION_FACE_SMALL_1_01_003 = 61, // 目标,小模型,1.01.003
  17519. EM_FEATURE_VERSION_FACE_SMALL_1_02_003, // 目标,小模型,1.02.003
  17520. EM_FEATURE_VERSION_HUMAN_NONMOTOR = 91, // 人和非机动车,全局无版本号
  17521. EM_FEATURE_VERSION_HUMAN_NONMOTOR_FLOAT_1_00_01, // 人和非机动车,全局浮点,1.00.01
  17522. EM_FEATURE_VERSION_HUMAN_NONMOTOR_HASH_1_00_01, // 人和非机动车,全局哈希,1.00.01
  17523. EM_FEATURE_VERSION_HUMAN_NONMOTOR_FLOAT_1_01_00, // 人和非机动车,全局浮点,1.01.00
  17524. EM_FEATURE_VERSION_HUMAN_NONMOTOR_HASH_1_01_00, // 人和非机动车,全局哈希,1.01.00
  17525. EM_FEATURE_VERSION_HUMAN_NONMOTOR_FLOAT_1_01_01, // 人和非机动车,全局浮点,1.01.01
  17526. EM_FEATURE_VERSION_HUMAN_NONMOTOR_HASH_1_01_01, // 人和非机动车,全局哈希,1.01.01
  17527. EM_FEATURE_VERSION_HUMAN_NONMOTOR_FLOAT_1_01_03, // 人和非机动车,全局浮点,1.01.03
  17528. EM_FEATURE_VERSION_HUMAN_NONMOTOR_HASH_1_01_03, // 人和非机动车,全局哈希,1.01.03
  17529. EM_FEATURE_VERSION_TRAFFIC = 121, // 机动车,全局无版本号
  17530. EM_FEATURE_VERSION_TRAFFIC_FLOAT, // 机动车,全局浮点版本号0
  17531. EM_FEATURE_VERSION_TRAFFIC_FLOAT_1_00_01, // 机动车,全局浮点版本号1.00.01
  17532. EM_FEATURE_VERSION_TRAFFIC_HASH_1_00_01, // 机动车,全局哈希版本号1.00.01
  17533. EM_FEATURE_VERSION_TRAFFIC_FLOAT_1_00_02, // 机动车,全局浮点版本号1.00.02
  17534. EM_FEATURE_VERSION_TRAFFIC_HASH_1_00_02, // 机动车,全局哈希版本号1.00.02
  17535. EM_FEATURE_VERSION_SHANGTANG_FACE_1_5_0 = 151, // 目标,1.5.0
  17536. EM_FEATURE_VERSION_SHANGTANG_FACE_1_8_1, // 目标,1.8.1
  17537. EM_FEATURE_VERSION_SHANGTANG_FACE_2_1_3, // 目标,2.1.3
  17538. EM_FEATURE_VERSION_SHANGTANG_FACE_2_39_6, // 目标,2.39.6
  17539. EM_FEATURE_VERSION_SHANGTANG_FACE_2_39_7, // 目标,2.39.7
  17540. EM_FEATURE_VERSION_SHANGTANG_FACE_2_39_8, // 目标,2.39.8
  17541. EM_FEATURE_VERSION_SHANGTANG_FACE_239, // 目标,239
  17542. EM_FEATURE_VERSION_SHANGTANG_FACE_242, // 目标,242
  17543. EM_FEATURE_VERSION_SHANGTANG_FACE_244, // 目标,244
  17544. EM_FEATURE_VERSION_SHANGTANG_FACE_245, // 目标,245
  17545. EM_FEATURE_VERSION_SHENMO_HUMAN_TRAFFIC_NON_2_4_2 = 181, // 目标/机动车/非机动车,2.4.2
  17546. EM_FEATURE_VERSION_SHENMO_HUMAN_TRAFFIC_NON_2_5_7, // 目标/机动车/非机动车,2.5.7
  17547. } EM_FEATURE_VERSION;
  17548. ///@brief 年龄段
  17549. typedef enum tagEM_AGE_SEG
  17550. {
  17551. EM_AGE_SEG_UNKOWN = 0, // 未知
  17552. EM_AGE_SEG_BABY = 2, // 婴儿
  17553. EM_AGE_SEG_CHILD = 10, // 幼儿
  17554. EM_AGE_SEG_YOUTH = 28, // 青年
  17555. EM_AGE_SEG_MIDDLE = 50, // 中年
  17556. EM_AGE_SEG_OLD = 60, // 老年
  17557. }EM_AGE_SEG;
  17558. ///@brief 骑车人信息
  17559. typedef struct tagNET_RIDER_INFO
  17560. {
  17561. BOOL bFeatureValid; // 是否识别到特征信息, TRUE时下面数据才有效
  17562. EM_SEX_TYPE emSex; // 性别
  17563. int nAge; // 年龄
  17564. EM_NONMOTOR_OBJECT_STATUS emHelmet; // 头盔状态
  17565. EM_NONMOTOR_OBJECT_STATUS emCall; // 是否在打电话
  17566. EM_NONMOTOR_OBJECT_STATUS emBag; // 是否有背包
  17567. EM_NONMOTOR_OBJECT_STATUS emCarrierBag; // 有没有手提包
  17568. EM_NONMOTOR_OBJECT_STATUS emUmbrella; // 是否打伞
  17569. EM_NONMOTOR_OBJECT_STATUS emGlasses; // 是否有带眼镜
  17570. EM_NONMOTOR_OBJECT_STATUS emMask; // 是否带口罩
  17571. EM_EMOTION_TYPE emEmotion; // 表情
  17572. EM_CLOTHES_TYPE emUpClothes; // 上衣类型
  17573. EM_CLOTHES_TYPE emDownClothes; // 下衣类型
  17574. EM_OBJECT_COLOR_TYPE emUpperBodyColor; // 上衣颜色
  17575. EM_OBJECT_COLOR_TYPE emLowerBodyColor; // 下衣颜色
  17576. BOOL bHasFaceImage; // 是否有骑车人目标抠图信息
  17577. RIDER_FACE_IMAGE_INFO stuFaceImage; // 骑车人目标特写描述
  17578. BOOL bHasFaceAttributes; // 是否有目标属性
  17579. NET_FACE_ATTRIBUTE_EX stuFaceAttributes; // 目标属性
  17580. EM_HAS_HAT emHasHat; // 是否戴帽子
  17581. EM_CAP_TYPE emCap; // 帽类型
  17582. EM_HAIR_STYLE emHairStyle; // 头发样式
  17583. NET_FACE_FEATURE_VECTOR_INFO stuFaceFeatureVectorInfo; // 目标特征值数据在二进制数据中的位置信息
  17584. EM_FEATURE_VERSION emFaceFeatureVersion; // 目标特征值版本号
  17585. NET_HUMAN_FEATURE_VECTOR_INFO stuHumanFeatureVectorInfo; // 人体特征值数据在二进制数据中的位置信息
  17586. EM_FEATURE_VERSION emHumanFeatureVersion; // 人体特征值版本号
  17587. UINT nAgeConf; //年龄段置信度
  17588. UINT nUpColorConf; //上衣颜色置信度
  17589. UINT nDownColorConf; //下衣颜色置信度
  17590. UINT nUpTypeConf; //上衣种类置信度
  17591. UINT nDownTypeConf; //下衣种类置信度
  17592. UINT nHatTypeConf; //帽子类型置信度
  17593. UINT nHairTypeConf; //发型种类置信度
  17594. EM_CLOTHES_PATTERN emUpperPattern; //上半身衣服图案
  17595. UINT nUpClothes; //上衣类型 0:未知 1:长袖 2:短袖 3:长款大衣 4:夹克及牛仔服 5:T恤
  17596. //6:运动装 7:羽绒服 8:衬衫 9:连衣裙 10:西装 11:毛衣 12:无袖 13:背心
  17597. EM_UNIFORM_STYLE emUniformStyle; //制服类型
  17598. UINT nRainCoat; //是否有雨披 0:未识别 1:无 2:有
  17599. EM_COAT_TYPE emCoatStyle; //上衣款式
  17600. EM_AGE_SEG emAgeSeg; // 年龄段
  17601. UINT nShoulderBag; // 是否有肩包 0-未识别 1-无 2-有
  17602. UINT nMessengerBag; // 是否有斜挎包 0-未识别 1-无 2-有
  17603. BOOL bNewUpClothes; // 是否支持新上衣类型
  17604. EM_NEWUPCLOTHES_TYPE emNewUpClothes; // 新上衣类型
  17605. BOOL bNewDownClothes; // 是否支持新下衣类型
  17606. EM_NEWDOWNCLOTHES_TYPE emNewDownClothes; // 新下衣类型
  17607. BYTE byReserved[140]; //保留
  17608. }NET_RIDER_INFO;
  17609. #define MAX_RIDER_NUM 16 // 骑车人数组上限
  17610. ///@brief 非机动车特征值数据在二进制数据中的位置信息
  17611. typedef struct tagNET_NONMOTOR_FEATURE_VECTOR_INFO
  17612. {
  17613. UINT nOffset; // 非机动车特征值在二进制数据中的偏移, 单位:字节
  17614. UINT nLength; // 非机动车特征值数据长度, 单位:字节
  17615. BOOL bFeatureEnc; // 用于标识特征值是否加密
  17616. BYTE byReserved[28]; // 保留字节
  17617. } NET_NONMOTOR_FEATURE_VECTOR_INFO;
  17618. ///@brief 非机动车车牌图片信息
  17619. typedef struct tagNET_NONMOTOR_PLATE_IMAGE
  17620. {
  17621. UINT nOffset; // 在二进制数据块中的偏移
  17622. UINT nLength; // 图片大小
  17623. UINT nWidth; // 图片宽度
  17624. UINT nHeight; // 图片高度
  17625. UINT nIndexInData; // 在上传图片数据中的图片序号
  17626. BYTE byReserved[508]; // 保留字节
  17627. }NET_NONMOTOR_PLATE_IMAGE;
  17628. ///@brief 车牌颜色
  17629. typedef enum tagEM_PLATE_COLOR_TYPE
  17630. {
  17631. EM_PLATE_COLOR_UNKNOWN, // 未知 "Unknown"
  17632. EM_PLATE_COLOR_OTHER, // 其他颜色 "Other"
  17633. EM_PLATE_COLOR_BLUE, // 蓝色 "Blue"
  17634. EM_PLATE_COLOR_YELLOW, // 黄色 "Yellow"
  17635. EM_PLATE_COLOR_WHITE, // 白色 "White"
  17636. EM_PLATE_COLOR_BLACK, // 黑色 "Black"
  17637. EM_PLATE_COLOR_RED, // 红色 "Red"
  17638. EM_PLATE_COLOR_GREEN, // 绿色 "Green"
  17639. EM_PLATE_COLOR_SHADOW_GREEN, // 渐变绿 "ShadowGreen"
  17640. EM_PLATE_COLOR_YELLOW_GREEN, // 黄绿双拼 "YellowGreen""
  17641. EM_PLATE_COLOR_YELLOW_BOTTOM_BLACK_TEXT, // 黄底黑字 "YellowbottomBlackText"
  17642. EM_PLATE_COLOR_BLUE_BOTTOM_WHITE_TEXT, // 蓝底白字 "BluebottomWhiteText"
  17643. EM_PLATE_COLOR_BLACK_BOTTOM_WHITE_TEXT, // 黑底白字 "BlackBottomWhiteText"
  17644. }EM_PLATE_COLOR_TYPE;
  17645. ///@brief 非机动车配牌信息
  17646. typedef struct tagNET_NONMOTOR_PLATE_INFO
  17647. {
  17648. char szPlateNumber[128]; // 非机动车车牌号
  17649. NET_RECT stuBoundingBox; // 包围盒, 非机动车矩形框,0~8191相对坐标
  17650. NET_RECT stuOriginalBoundingBox; // 包围盒, 非机动车矩形框,绝对坐标
  17651. NET_NONMOTOR_PLATE_IMAGE stuPlateImage; // 非机动车车牌抠图
  17652. EM_PLATE_COLOR_TYPE emPlateColor; // 车牌颜色
  17653. BYTE byReserved[132]; // 保留
  17654. }NET_NONMOTOR_PLATE_INFO;
  17655. ///@brief 非机动车的角度
  17656. typedef enum tagEM_OBJECT_NONMOTORANGLE_TYPE // 非机动车的角度
  17657. {
  17658. EM_OBJECT_NONMOTORANGLE_TYPE_UNKNOWN, // 未知
  17659. EM_OBJECT_NONMOTORANGLE_TYPE_FRONT, // 正面
  17660. EM_OBJECT_NONMOTORANGLE_TYPE_SIDE, // 侧面
  17661. EM_OBJECT_NONMOTORANGLE_TYPE_BEHIND, // 后面
  17662. }EM_OBJECT_NONMOTORANGLE_TYPE;
  17663. ///@brief 非机动车车篮
  17664. typedef enum tagEM_OBJECT_BASKET_TYPE // 非机动车车篮
  17665. {
  17666. EM_OBJECT_BASKET_UNKNOWN, // 未知
  17667. EM_OBJECT_BASKET_NO, // 无
  17668. EM_OBJECT_BASKET_YES, // 有
  17669. }EM_OBJECT_BASKET_TYPE;
  17670. ///@brief 非机动车后备箱
  17671. typedef enum tagEM_OBJECT_STORAGEBOX_TYPE //非机动车后备箱
  17672. {
  17673. EM_OBJECT_STORAGEBOX_UNKNOWN, // 未知
  17674. EM_OBJECT_STORAGEBOX_NO, // 无后备箱
  17675. EM_OBJECT_STORAGEBOX_OWNBOX, // 自带箱
  17676. EM_OBJECT_STORAGEBOX_SELFPACK, // 自装箱
  17677. EM_OBJECT_STORAGEBOX_ALL, // 自装箱和自带箱都有
  17678. }EM_OBJECT_STORAGEBOX_TYPE;
  17679. ///@brief 雨棚(伞)类型
  17680. typedef enum tagEM_RAIN_SHED_TYPE
  17681. {
  17682. EM_RAIN_SHED_TYPE_NONE = -1, // 无
  17683. EM_RAIN_SHED_TYPE_NO_UMBRELLA, // 不撑伞
  17684. EM_RAIN_SHED_TYPE_NOT_PEOPLE_HOLD, // 人非手撑伞
  17685. EM_RAIN_SHED_TYPE_UNKOWN, // 未知
  17686. EM_RAIN_SHED_TYPE_NO_MOTOR_UMBRELLA, // 非机动车装载雨伞
  17687. EM_RAIN_SHED_TYPE_NO_MOTOR_CANOPY, // 非机动车装载雨棚
  17688. }EM_RAIN_SHED_TYPE;
  17689. ///@brief 非机动车对象
  17690. typedef struct tagVA_OBJECT_NONMOTOR
  17691. {
  17692. int nObjectID; // 物体ID,每个ID表示一个唯一的物体
  17693. EM_CATEGORY_NONMOTOR_TYPE emCategory; // 非机动车子类型
  17694. DH_RECT stuBoundingBox; // 包围盒, 非机动车矩形框,0~8191相对坐标
  17695. DH_RECT stuOriginalBoundingBox; // 包围盒, 非机动车矩形框,绝对坐标
  17696. NET_COLOR_RGBA stuMainColor; // 非机动车颜色, RGBA
  17697. EM_OBJECT_COLOR_TYPE emColor; // 非机动车颜色, 枚举
  17698. BOOL bHasImage; // 是否有抠图
  17699. NET_NONMOTOR_PIC_INFO stuImage; // 物体截图
  17700. int nNumOfCycling; // 骑车人数量
  17701. NET_RIDER_INFO stuRiderList[MAX_RIDER_NUM]; // 骑车人特征,个数和nNumOfCycling关联
  17702. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  17703. FACE_SCENE_IMAGE stuFaceSceneImage; // 目标全景广角图
  17704. int nNumOfFace; // 检测到的目标数量
  17705. float fSpeed; // 物体速度,单位为km/h
  17706. NET_NONMOTOR_FEATURE_VECTOR_INFO stuNonMotorFeatureVectorInfo; // 非机动车特征值数据在二进制数据中的位置信息
  17707. EM_FEATURE_VERSION emNonMotorFeatureVersion; // 非机动车特征值版本号
  17708. NET_NONMOTOR_PLATE_INFO stuNomotorPlateInfo; // 非机动车牌信息
  17709. NET_POINT stuObjCenter; // 物体型心(不是包围盒中心), 0-8191相对坐标, 相对于大图
  17710. NET_FACE_FEATURE_VECTOR_INFO stuFaceFeatureVectorInfo; // 目标特征值数据在二进制数据中的位置信息, 废弃
  17711. EM_FEATURE_VERSION emFaceFeatureVersion; // 目标特征值版本号, 废弃
  17712. int nCategoryConf; // 非机动车类型置信度
  17713. char szNonMotorFeatureVersion[32]; // 非机动车特征值版本号-字符串
  17714. EM_OBJECT_NONMOTORANGLE_TYPE emNonMotorAngle; // 非机动车的角度
  17715. EM_OBJECT_BASKET_TYPE emBasket; // 非机动车车篮
  17716. EM_OBJECT_STORAGEBOX_TYPE emStorageBox; // 非机动车后备箱
  17717. UINT nCompleteScore; // 非机动车完整度评分,范围[0,100],越大越完整
  17718. UINT nClarityScore; // 非机动车清晰度分值 取值范围为[1,100], 越大越清晰, 0为无效值
  17719. UINT nStartSequence; // 目标出现的帧号
  17720. UINT nEndSequence; // 目标消失的帧号
  17721. BOOL bIsErrorDetect; // 非机动车车身及骑手整体,是否虚检,0: 否,1: 是
  17722. UINT nImageLightType; // 图像成像光源类型, 0:未知, 1:可见光成像, 2:近红外成像(灰度图), 3:热红外成像(伪彩色)
  17723. UINT nAbsScore; // 非机动车综合质量评分,范围[0,100],越大质量越好
  17724. EM_RAIN_SHED_TYPE emRainShedType; // 雨棚(伞)类型
  17725. char szSerialUUID[22]; // 智能物体全局唯一物体标识
  17726. // 有效数据位21位,包含’\0’
  17727. // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
  17728. // 中间14位YYYYMMDDhhmmss:年月日时分秒
  17729. // 后5位%u%u%u%u%u:物体ID,如00001
  17730. char szReserved[2]; // 对齐
  17731. UINT nHumanFeatureExtractSingle; // 非机动车的骑手和车身是否单独提取, 0:否, 1:是
  17732. BYTE byReserved[2920]; // 保留
  17733. }VA_OBJECT_NONMOTOR;
  17734. ///@brief 车辆信息,记录了车头、车尾车牌号和车牌颜色
  17735. typedef struct tagEVENT_PLATE_INFO
  17736. {
  17737. char szFrontPlateNumber[64]; // 车头车牌号码
  17738. EM_PLATE_COLOR_TYPE emFrontPlateColor; // 车头车牌颜色
  17739. char szBackPlateNumber[64]; // 车尾车牌号码
  17740. EM_PLATE_COLOR_TYPE emBackPlateColor; // 车尾车牌颜色
  17741. BYTE reversed[128]; // 保留
  17742. } EVENT_PLATE_INFO;
  17743. ///@brief 车辆姿势
  17744. typedef enum tagEM_VEHICLE_POSTURE_TYPE
  17745. {
  17746. EM_VEHICLE_POSTURE_TYPE_UNKNOWN, // 未知
  17747. EM_VEHICLE_POSTURE_TYPE_VEHICLE_HEAD, // 车头
  17748. EM_VEHICLE_POSTURE_TYPE_VEHICLE_SIDE, // 车侧
  17749. EM_VEHICLE_POSTURE_TYPE_VEHICLE_TAIL, // 车尾
  17750. }EM_VEHICLE_POSTURE_TYPE;
  17751. ///@brief 车辆跟踪状态
  17752. typedef enum tagEM_TRACK_CAR_STATUS
  17753. {
  17754. EM_TRACK_CAR_STATUS_UNKNOWN, // 未知
  17755. EM_TRACK_CAR_STATUS_START, // 跟踪开始
  17756. EM_TRACK_CAR_STATUS_END, // 跟踪结束
  17757. } EM_TRACK_CAR_STATUS;
  17758. ///@brief 规则区内车辆行驶方向
  17759. typedef enum tagEM_CAR_DRIVING_DIRECTION
  17760. {
  17761. EM_CAR_DRIVING_DIRECTION_UNKNOWN, // 未知
  17762. EM_CAR_DRIVING_DIRECTION_DRIVE_IN_AREA, // 驶入区域
  17763. EM_CAR_DRIVING_DIRECTION_EXIT_AREA, // 驶出区域
  17764. }EM_CAR_DRIVING_DIRECTION;
  17765. ///@brief 事件类型EVENT_IVS_TRAFFICJUNCTION(交通路口老规则事件/视频电警上的交通卡口老规则事件)对应的数据块描述信息
  17766. ///@brief 由于历史原因,如果要处理卡口事件,DEV_EVENT_TRAFFICJUNCTION_INFO和EVENT_IVS_TRAFFICGATE要一起处理,以防止有视频电警和线圈电警同时接入平台的情况发生
  17767. ///@brief 另外EVENT_IVS_TRAFFIC_TOLLGATE只支持新卡口事件的配置
  17768. typedef struct tagDEV_EVENT_TRAFFICJUNCTION_INFO
  17769. {
  17770. int nChannelID; // 通道号
  17771. char szName[128]; // 事件名称
  17772. BYTE byMainSeatBelt; // 主驾驶座,系安全带状态,1-系安全带,2-未系安全带
  17773. BYTE bySlaveSeatBelt; // 副驾驶座,系安全带状态,1-系安全带,2-未系安全带
  17774. BYTE byVehicleDirection; // 当前被抓拍到的车辆是车头还是车尾,具体请见 EM_VEHICLE_DIRECTION
  17775. BYTE byOpenStrobeState; // 开闸状态,具体请见 EM_OPEN_STROBE_STATE
  17776. double PTS; // 时间戳(单位是毫秒)
  17777. NET_TIME_EX UTC; // 事件发生的时间
  17778. int nEventID; // 事件ID
  17779. DH_MSG_OBJECT stuObject; // 检测到的物体
  17780. int nLane; // 对应车道号
  17781. DWORD dwBreakingRule; // 违反规则掩码,第一位:闯红灯;
  17782. // 第二位:不按规定车道行驶;
  17783. // 第三位:逆行; 第四位:违章掉头;
  17784. // 第五位:交通堵塞; 第六位:交通异常空闲
  17785. // 第七位:压线行驶; 否则默认为:交通路口事件
  17786. NET_TIME_EX RedLightUTC; // 红灯开始UTC时间
  17787. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  17788. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  17789. int nSpeed; // 车辆实际速度Km/h
  17790. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  17791. BYTE byDirection; // 路口方向,1-表示正向,2-表示反向
  17792. BYTE byLightState; // LightState表示红绿灯状态:0 未知,1 绿灯,2 红灯,3 黄灯
  17793. BYTE byReserved; // 保留字节
  17794. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  17795. DH_MSG_OBJECT stuVehicle; // 车身信息
  17796. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  17797. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  17798. char szRecordFile[DH_COMMON_STRING_128]; // 报警对应的原始录像文件信息
  17799. EVENT_JUNCTION_CUSTOM_INFO stuCustomInfo; // 自定义信息
  17800. BYTE byPlateTextSource; // 车牌识别来源, 0:本地算法识别,1:后端服务器算法识别
  17801. BYTE bReserved1[3]; // 保留字节,留待扩展.
  17802. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  17803. BYTE byNoneMotorInfo; // 0-无非机动车人员信息信息,1-有非机动车人员信息信息
  17804. // 此字段为1时下面11个字段生效
  17805. BYTE byBag; // 是否背包, 0-未知 1-不背包 2-背包
  17806. BYTE byUmbrella; // 是否打伞, 0-未知 1-不打伞 2-打伞
  17807. BYTE byCarrierBag; // 手提包状态,0-未知 1-没有 2-有
  17808. BYTE byHat; // 是否戴帽子, 0-未知 1-不戴帽子 2-戴帽子
  17809. BYTE byHelmet; // 头盔状态,0-未知 1-没有 2-有
  17810. BYTE bySex; // 性别,0-未知 1-男性 2-女性
  17811. BYTE byAge; // 年龄
  17812. NET_COLOR_RGBA stuUpperBodyColor; // 上身颜色
  17813. NET_COLOR_RGBA stuLowerBodyColor; // 下身颜色
  17814. BYTE byUpClothes; // 上身衣服类型 0:未知 1:长袖 2:短袖 3:长裤 4:短裤 5:裙子 6:背心 7:超短裤 8:超短裙
  17815. BYTE byDownClothes; // 下身衣服类型 0:未知 1:长袖 2:短袖 3:长裤 4:短裤 5:裙子 6:背心 7:超短裤 8:超短裙
  17816. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  17817. BYTE bReserved[22]; // 保留字节,留待扩展
  17818. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频,3RSU
  17819. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  17820. DWORD dwRetCardNumber; // 卡片个数
  17821. EVENT_CARD_INFO stuCardInfo[DH_EVENT_MAX_CARD_NUM]; // 卡片信息
  17822. EVENT_COMM_INFO stCommInfo; // 公共信息
  17823. BOOL bNonMotorInfoEx; // 是否有非机动车信息
  17824. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  17825. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  17826. EVENT_PLATE_INFO stuPlateInfo; // 车辆信息,记录了车头、车尾车牌号和车牌颜色
  17827. BOOL bSceneImage; // 全景图是否有效
  17828. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景图
  17829. DH_MSG_OBJECT* pstObjects; // 检测到的多个车牌信息
  17830. int nObjectNum; // 检测到的多个车牌个数
  17831. EM_VEHICLE_POSTURE_TYPE emVehiclePosture; // 车辆姿势
  17832. UINT nVehicleSignConfidence; // 车标置信度(范围:0~100)
  17833. UINT nVehicleCategoryConfidence; // 车型置信度(范围:0~100)
  17834. EM_CAR_DRIVING_DIRECTION emCarDrivingDirection; // 规则区内车辆行驶方向
  17835. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  17836. int nImageInfoNum; // 图片信息个数
  17837. char szSerialNo[128]; // 和客户端请求的抓图序列号对应
  17838. UINT nAlarmCompliance; // 报警合规, 0:未知, 1:不合规, 2:合规
  17839. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  17840. DH_MSG_OBJECT_SUPPLEMENT stObjectInfoEx; // 视频分析物体信息补充字段,与 DH_MSG_OBJECT 的合集表示视频分析物体信息
  17841. DH_MSG_OBJECT_EX2* pstuObjectEx2; // 检测到的物体扩展
  17842. DH_MSG_OBJECT_EX2* pstuVehicleEx2; // 车身信息扩展
  17843. DH_MSG_OBJECT_EX2* pstuObjectsEx2; // 检测到的多个车牌信息扩展,数量为nObjectNum
  17844. UINT nPresetID; // 事件触发的预置点号,从1开始, 0表示未知
  17845. int nTransfer; // 文件传输状态, -1: 未知, 0-实时数据下载,1-离线数据下载, 2-离线数据传输完成, 3-离线数据传输中断
  17846. char szFeatureVersion[32]; // 特征值的版本号
  17847. UINT nDetectMode; // 检测物体具体包含的信息类型: 0: 只包含属性 1: 只包含特征值 2: 属性、特征值都包含 3:属性和特征值都不包含
  17848. char byReserved2[544-3*POINTERSIZE]; // 保留字节
  17849. } DEV_EVENT_TRAFFICJUNCTION_INFO;
  17850. ///@brief 事件类型 EVENT_IVS_TRAFFIC_NONMOTORINMOTORROUTE (非机动车占用机动车道)对应的数据块描述信息
  17851. typedef struct tagDEV_EVENT_TRAFFIC_NONMOTORINMOTORROUTE_INFO
  17852. {
  17853. int nChannelID; // 通道号
  17854. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  17855. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  17856. BYTE bReserved1[3]; // 保留字节.
  17857. double PTS; // 时间戳(单位是毫秒)
  17858. NET_TIME_EX UTC; // 事件发生的时间
  17859. int nEventID; // 事件ID
  17860. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  17861. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  17862. DH_MSG_OBJECT stuObject; // 检测到的物体
  17863. DH_MSG_OBJECT stuVehicle; // 车身信息
  17864. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  17865. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  17866. char szRecordFile[DH_COMMON_STRING_128]; // 报警对应的原始录像文件信息
  17867. int nLane; // 对应车道号
  17868. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  17869. EVENT_COMM_INFO stCommInfo; // 公共信息
  17870. BOOL bHasNonMotor; // 是否有非机动车对象
  17871. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
  17872. BYTE bReserved[4096]; // 保留字节,留待扩展.
  17873. } DEV_EVENT_TRAFFIC_NONMOTORINMOTORROUTE_INFO;
  17874. ///@brief 车辆信息
  17875. typedef struct tagNET_VEHICLE_INFO
  17876. {
  17877. UINT nUID; // 车辆唯一标识符,由服务端生成用于程序中表示惟一
  17878. char szGroupID[64]; // 车辆所属组ID
  17879. char szGroupName[128]; // 车辆所属组名
  17880. char szPlateNumber[64]; // 车牌号码
  17881. char szPlateCountry[4]; // 车辆所在国家,2字节,符合ISO3166规范
  17882. int nPlateType; // 车牌类型
  17883. // 01 大型汽车号牌 黄底黑字
  17884. // 02 小型汽车号牌 蓝底白字
  17885. // 03 使馆汽车号牌 黑底白字、红“使”字
  17886. // 04 领馆汽车号牌 黑底白字、红“领”字
  17887. // 05 境外汽车号牌 黑底白、红字
  17888. // 06 外籍汽车号牌 黑底白字
  17889. // 13 农用运输车号牌 黄底黑字黑框线
  17890. // 15 挂车号牌 黄底黑字黑框线
  17891. // 16 教练汽车号牌 黄底黑字黑框线
  17892. // 18 试验汽车号牌
  17893. // 20 临时入境汽车号牌 白底红字黑“临时入境”
  17894. // 22 临时行驶车号牌 白底黑字黑线框
  17895. // 23 公安警用汽车号牌
  17896. int nVehicleType; // 车型(轿车、卡车等)
  17897. // 001 巡逻车
  17898. // 002 交警车辆
  17899. // 003 消防车
  17900. // 004 单兵
  17901. // 005 其他警车
  17902. // 006 其他设备
  17903. // 020 政府车辆
  17904. // 031 校车
  17905. // 032 运钞车
  17906. // 033 客运车辆
  17907. // 034 公交车
  17908. // 035 出租车
  17909. // 036 危险品车辆
  17910. int nBrand; // 车辆车标,需要通过映射表得到真正的车标.同卡口事件的CarLogoIndex
  17911. int nCarSeries; // 车辆子品牌,需要通过映射表得到真正的子品牌,同卡口事件的SubBrand
  17912. int nCarSeriesModelYearIndex; // 车辆品牌年款,需要通过映射表得到真正的年款,同卡口事件的BrandYear 车头年款序号范围1~999;车尾年款序号范围1001~1999;0表示未知;1000预留。
  17913. NET_COLOR_RGBA stuVehicleColor; // 车色 第一个元素表示红色分量值; 第二个元素表示绿色分量值; 第三个元素表示蓝色分量值; 第四个元素表示透明度分量(无意义)
  17914. NET_COLOR_RGBA stuPlateColor; // 车牌颜色,规则同车色
  17915. char szOwnerName[64]; // 车主名称
  17916. int nSex; // 车主性别 0-未知,1-男,2,女
  17917. int nCertificateType; // 车主证件类型 0-未知 1-证件 2-护照 3-军官证
  17918. char szPersonID[32]; // 人员证件号码,工号,或其他编号
  17919. char szOwnerCountry[4]; // 车主国籍,2字节,符合ISO3166规范
  17920. char szProvince[64]; // 省份
  17921. char szCity[64]; // 城市
  17922. char szHomeAddress[128]; // 注册人员家庭地址(IVSS需求)
  17923. char szEmail[32]; // 车主电子邮箱
  17924. char szPhoneNo[128]; // 注册车主电话号码
  17925. int nVehicleColorState; //车色状态:0-未知,1-已知 该字段为未知时, CLIENT_StartFindVehicleRegisterDB下发的车色颜色为默认的[0,0,0,255]
  17926. int nPlateColorState; //车牌颜色状态:0-未知,1-已知 该字段为未知时, CLIENT_StartFindVehicleRegisterDB下发的车牌颜色为默认的[0,0,0,255]
  17927. BYTE bReserved[504];
  17928. }NET_VEHICLE_INFO;
  17929. #define MAX_CAR_CANDIDATE_NUM (50)
  17930. ///@brief 候选车辆信息
  17931. typedef struct tagNET_CAR_CANDIDATE_INFO
  17932. {
  17933. NET_VEHICLE_INFO stuVehicleInfo; // 车辆信息
  17934. int nDifferentAttributresNum; // 和数据库不相符的属性数目
  17935. int nDifferentAttributres[16]; // 和数据库不相符的属性集合,元素值取值意义:0-未知 1-车牌属地 2-车标 3-车型 4-车色 5-车牌颜色
  17936. BYTE byReserved[512];
  17937. }NET_CAR_CANDIDATE_INFO;
  17938. ///@brief 车牌识别比对事件信息
  17939. typedef struct tagDEV_EVENT_VEHICLE_RECOGNITION_INFO
  17940. {
  17941. char szName[128]; // 事件名称
  17942. double PTS; // 时间戳(单位是毫秒)
  17943. NET_TIME_EX UTC; // 事件发生的时间
  17944. int nEventID; // 事件ID
  17945. int nVehicleAction; // 车辆动作 0-未知,1-在检测区域内,2-离开检测区域
  17946. DH_MSG_OBJECT stuObject; // 检测到的物体
  17947. DH_MSG_OBJECT stuVehicle; // 车身信息
  17948. NET_SEAT_INFO stuMainSeatInfo; // 主驾驶位信息
  17949. NET_SEAT_INFO stuSlaveSeatInfo; // 副驾驶位信息
  17950. int nVehicleAttachNum; // 车上附件数量
  17951. NET_VEHICLE_ATTACH stuVehicleAttach[8]; // 车上附件数据
  17952. char szCountry[32]; // 国家,2字节,符合ISO3166规范
  17953. int nCarCandidateNum; // 候选车辆数量
  17954. NET_CAR_CANDIDATE_INFO stuCarCandidate[MAX_CAR_CANDIDATE_NUM]; // 候选车辆数据
  17955. EVENT_COMM_INFO stCommInfo; // 公共信息
  17956. int nChannel; // 通道号
  17957. int nImageInfoNum; // 图片信息个数
  17958. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  17959. BYTE bReserved[1020-POINTERSIZE];
  17960. } DEV_EVENT_VEHICLE_RECOGNITION_INFO;
  17961. ///@brief 事件类型EVENT_IVS_TRAFFICGATE(交通卡口老规则事件/线圈电警上的交通卡口老规则事件)对应的数据块描述信息
  17962. ///@brief 由于历史原因,如果要处理卡口事件,DEV_EVENT_TRAFFICJUNCTION_INFO和EVENT_IVS_TRAFFICGATE要一起处理,以防止有视频电警和线圈电警同时接入平台的情况发生
  17963. ///@brief 另外EVENT_IVS_TRAFFIC_TOLLGATE只支持新卡口事件的配置
  17964. typedef struct tagDEV_EVENT_TRAFFICGATE_INFO
  17965. {
  17966. int nChannelID; // 通道号
  17967. char szName[128]; // 事件名称
  17968. BYTE byOpenStrobeState; // 开闸状态,具体请见EM_OPEN_STROBE_STATE
  17969. char bReserved1[3]; // 字节对齐
  17970. double PTS; // 时间戳(单位是毫秒)
  17971. NET_TIME_EX UTC; // 事件发生的时间
  17972. int nEventID; // 事件ID
  17973. DH_MSG_OBJECT stuObject; // 检测到的物体,车标
  17974. int nLane; // 对应车道号
  17975. int nSpeed; // 车辆实际速度Km/h
  17976. int nSpeedUpperLimit; // 速度上限 单位:km/h
  17977. int nSpeedLowerLimit; // 速度下限 单位:km/h
  17978. DWORD dwBreakingRule; // 违反规则掩码,第一位:逆行;
  17979. // 第二位:压线行驶; 第三位:超速行驶;
  17980. // 第四位:欠速行驶; 第五位:闯红灯;第六位:穿过路口(卡口事件)
  17981. // 第七位: 压黄线; 第八位: 有车占道; 第九位: 黄牌占道;否则默认为:交通卡口事件
  17982. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  17983. DH_MSG_OBJECT stuVehicle; // 车身信息,有存放车牌信息
  17984. BYTE szManualSnapNo[64]; // 手动抓拍序号
  17985. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  17986. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  17987. BYTE byReserved[3]; // 保留字节
  17988. BYTE szSnapFlag[16]; // 设备产生的抓拍标识
  17989. BYTE bySnapMode; // 抓拍方式,0-未分类 1-全景 2-近景 4-同向抓拍 8-反向抓拍 16-号牌图像
  17990. BYTE byOverSpeedPercentage; // 超速百分比
  17991. BYTE byUnderSpeedingPercentage; // 欠速百分比
  17992. BYTE byRedLightMargin; // 红灯容许间隔时间,单位:秒
  17993. BYTE byDriveDirection; // 行驶方向,0-上行(即车辆离设备部署点越来越近),1-下行(即车辆离设备部署点越来越远)
  17994. char szRoadwayNo[32]; // 道路编号
  17995. char szViolationCode[16]; // 违章代码
  17996. char szViolationDesc[128]; // 违章描述
  17997. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  17998. char szVehicleType[32]; // 车辆大小类型 Minisize"微型车,"Light-duty"小型车,"Medium"中型车,
  17999. // "Oversize"大型车,"Huge"超大车,"Largesize"长车 "Unknown"未知
  18000. BYTE byVehicleLenth; // 车辆长度, 单位米
  18001. BYTE byLightState; // LightState表示红绿灯状态:0 未知,1 绿灯,2 红灯,3 黄灯
  18002. BYTE byReserved1; // 保留字节,留待扩展
  18003. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18004. int nOverSpeedMargin; // 限高速宽限值 单位:km/h
  18005. int nUnderSpeedMargin; // 限低速宽限值 单位:km/h
  18006. char szDrivingDirection[3][DH_MAX_DRIVINGDIRECTION]; //
  18007. // "DrivingDirection" ,行驶方向
  18008. // "Approach"-上行,即车辆离设备部署点越来越近;"Leave"-下行,
  18009. // 即车辆离设备部署点越来越远,第二和第三个参数分别代表上行和
  18010. // 下行的两个地点,UTF-8编码
  18011. char szMachineName[256]; // 本地或远程设备名称
  18012. char szMachineAddress[256]; // 机器部署地点、道路编码
  18013. char szMachineGroup[256]; // 机器分组、设备所属单位
  18014. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18015. DH_SIG_CARWAY_INFO_EX stuSigInfo; // 由车检器产生抓拍信号冗余信息
  18016. char szFilePath[MAX_PATH]; // 文件路径
  18017. NET_TIME_EX RedLightUTC; // 红灯开始UTC时间
  18018. char * szDeviceAddress; // 设备地址,OSD叠加到图片上的,来源于配置TrafficSnapshot.DeviceAddress,'\0'结束
  18019. float fActualShutter; // 当前图片曝光时间,单位为毫秒
  18020. BYTE byActualGain; // 当前图片增益,范围为0~100
  18021. BYTE byDirection; // 0-南向北 1-西南向东北 2-西向东 3-西北向东南 4-北向南 5-东北向西南 6-东向西 7-东南向西北 8-未知
  18022. BYTE bReserve; // 保留字节, 字节对齐
  18023. BYTE bRetCardNumber; // 卡片个数
  18024. EVENT_CARD_INFO stuCardInfo[DH_EVENT_MAX_CARD_NUM]; // 卡片信息
  18025. char szDefendCode[DH_COMMON_STRING_64]; // 图片防伪码
  18026. int nTrafficBlackListID; // 关联禁止名单数据库记录默认主键ID, 0,无效;> 0,禁止名单数据记录
  18027. EVENT_COMM_INFO stCommInfo; // 公共信息
  18028. EM_VEHICLE_DIRECTION emVehicleDirection; // 抓拍方向
  18029. BYTE bReserved[448]; // 保留字节,留待扩展.
  18030. } DEV_EVENT_TRAFFICGATE_INFO;
  18031. ///@brief 事件类型EVENT_TRAFFICSNAPSHOT(交通抓拍事件)对应的数据块描述信息
  18032. typedef struct tagDEV_EVENT_TRAFFICSNAPSHOT_INFO
  18033. {
  18034. int nChannelID; // 通道号
  18035. char szName[128]; // 事件名称
  18036. char bReserved1[4]; // 字节对齐
  18037. double PTS; // 时间戳(单位是毫秒)
  18038. NET_TIME_EX UTC; // 事件发生的时间
  18039. int nEventID; // 事件ID
  18040. BYTE bReserv[3]; // 保留字节
  18041. BYTE bCarWayCount; // 触发抓拍的车道个数
  18042. DH_CARWAY_INFO stuCarWayInfo[DH_MAX_CARWAY_NUM]; // 触发抓拍的车道相关信息
  18043. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18044. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18045. BYTE byReserved[2];
  18046. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18047. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18048. BYTE bReserved[344]; // 保留字节,留待扩展
  18049. EVENT_COMM_INFO stCommInfo; // 公共信息
  18050. } DEV_EVENT_TRAFFICSNAPSHOT_INFO;
  18051. ///@brief 闯红灯方向
  18052. typedef enum tagEM_RED_LIGHT_DIRECTION
  18053. {
  18054. EM_RED_LIGHT_DIRECTION_UNKNOWN, // 未知
  18055. EM_RED_LIGHT_DIRECTION_STRAIGHT, // 直行
  18056. EM_RED_LIGHT_DIRECTION_TURNLEFT, // 左转
  18057. EM_RED_LIGHT_DIRECTION_TURNRIGHT, // 右转
  18058. EM_RED_LIGHT_DIRECTION_UTURN, // 掉头
  18059. EM_RED_LIGHT_DIRECTION_FORWARDLEFT, // 左前方
  18060. EM_RED_LIGHT_DIRECTION_FORWARDRIGHT, // 右前方
  18061. }EM_RED_LIGHT_DIRECTION;
  18062. ///@brief 事件类型EVENT_IVS_TRAFFIC_RUNREDLIGHT(交通-闯红灯事件)对应的数据块描述信息
  18063. typedef struct tagDEV_EVENT_TRAFFIC_RUNREDLIGHT_INFO
  18064. {
  18065. int nChannelID; // 通道号
  18066. char szName[128]; // 事件名称
  18067. char bReserved1[4]; // 字节对齐
  18068. double PTS; // 时间戳(单位是毫秒)
  18069. NET_TIME_EX UTC; // 事件发生的时间
  18070. int nEventID; // 事件ID
  18071. int nLane; // 对应车道号
  18072. DH_MSG_OBJECT stuObject; // 车牌信息
  18073. DH_MSG_OBJECT stuVehicle; // 车身信息
  18074. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18075. int nLightState; // 红绿灯状态 0:未知 1:绿灯 2:红灯 3:黄灯
  18076. int nSpeed; // 车速,km/h
  18077. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18078. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18079. BYTE byReserved[2];
  18080. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18081. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18082. NET_TIME_EX stRedLightUTC; // 红灯开始时间
  18083. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18084. BYTE byRedLightMargin; // 红灯容许间隔时间,单位:秒
  18085. BYTE byAlignment[3]; // 字节对齐
  18086. int nRedLightPeriod; // 表示红灯周期时间,单位毫秒
  18087. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  18088. int nDirectionCount; // 闯红灯方向个数
  18089. EM_RED_LIGHT_DIRECTION emDirection[8]; // 闯红灯方向
  18090. BYTE bReserved[892]; // 保留字节
  18091. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18092. EVENT_COMM_INFO stCommInfo; // 公共信息
  18093. BOOL bHasNonMotor; // 是否有非机动车对象
  18094. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
  18095. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18096. } DEV_EVENT_TRAFFIC_RUNREDLIGHT_INFO;
  18097. ///@brief 事件类型EVENT_IVS_TRAFFIC_PEDESTRAINRUNREDLIGHT(交通-行人闯红灯事件)对应的数据块描述信息
  18098. typedef struct tagDEV_EVENT_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO
  18099. {
  18100. int nChannelID; // 通道号
  18101. char szName[128]; // 事件名称
  18102. char bReserved1[4]; // 字节对齐
  18103. double PTS; // 时间戳(单位是毫秒)
  18104. NET_TIME_EX UTC; // 事件发生的时间
  18105. int nEventID; // 事件ID
  18106. int nLane; // 对应车道号
  18107. DH_MSG_OBJECT stuObject; // 行人信息
  18108. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18109. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18110. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18111. BYTE byReserved[2];
  18112. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18113. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18114. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18115. BYTE bReserved[1024]; // 保留字节
  18116. EVENT_COMM_INFO stCommInfo; // 公共信息
  18117. }DEV_EVENT_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO;
  18118. ///@brief 事件类型EVENT_IVS_TRAFFIC_PASSNOTINORDER(交通-未按规定依次通过)对应的数据块描述信息
  18119. typedef struct tagDEV_EVENT_TRAFFIC_PASSNOTINORDER_INFO
  18120. {
  18121. int nChannelID; // 通道号
  18122. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  18123. char bReserved1[4]; // 字节对齐
  18124. double PTS; // 时间戳(单位是毫秒)
  18125. NET_TIME_EX UTC; // 事件发生的时间
  18126. int nEventID; // 事件ID
  18127. int nLane; // 对应车道号
  18128. DH_MSG_OBJECT stuObject; // 车牌信息
  18129. DH_MSG_OBJECT stuVehicle; // 车身信息
  18130. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18131. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18132. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18133. BYTE byReserved[2];
  18134. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18135. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18136. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18137. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18138. EVENT_COMM_INFO stCommInfo; // 公共信息
  18139. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  18140. BYTE bReserved[984]; // 保留字节
  18141. }DEV_EVENT_TRAFFIC_PASSNOTINORDER_INFO;
  18142. ///@brief 事件类型EVENT_IVS_TRAFFIC_OVERLINE(交通-压线事件)对应的数据块描述信息
  18143. typedef struct tagDEV_EVENT_TRAFFIC_OVERLINE_INFO
  18144. {
  18145. int nChannelID; // 通道号
  18146. char szName[128]; // 事件名称
  18147. char bReserved1[4]; // 字节对齐
  18148. double PTS; // 时间戳(单位是毫秒)
  18149. NET_TIME_EX UTC; // 事件发生的时间
  18150. int nEventID; // 事件ID
  18151. int nLane; // 对应车道号
  18152. DH_MSG_OBJECT stuObject; // 车牌信息
  18153. DH_MSG_OBJECT stuVehicle; // 车身信息
  18154. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18155. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18156. int nSpeed; // 车辆实际速度,Km/h
  18157. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18158. BYTE byReserved[2];
  18159. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18160. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18161. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18162. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  18163. BYTE bReserved[968]; // 保留字节
  18164. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18165. EVENT_COMM_INFO stCommInfo; // 公共信息
  18166. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18167. } DEV_EVENT_TRAFFIC_OVERLINE_INFO;
  18168. ///@brief 事件类型EVENT_IVS_TRAFFIC_RETROGRADE(交通-逆行事件)对应的数据块描述信息
  18169. typedef struct tagDEV_EVENT_TRAFFIC_RETROGRADE_INFO
  18170. {
  18171. int nChannelID; // 通道号
  18172. char szName[128]; // 事件名称
  18173. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  18174. double PTS; // 时间戳(单位是毫秒)
  18175. NET_TIME_EX UTC; // 事件发生的时间
  18176. int nEventID; // 事件ID
  18177. int nLane; // 对应车道号
  18178. DH_MSG_OBJECT stuObject; // 车牌信息
  18179. DH_MSG_OBJECT stuVehicle; // 车身信息
  18180. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18181. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18182. int nSpeed; // 车辆实际速度,Km/h
  18183. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18184. BYTE byReserved[2];
  18185. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18186. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18187. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18188. BOOL bIsExistAlarmRecord; // rue:有对应的报警录像; false:无对应的报警录像
  18189. DWORD dwAlarmRecordSize; // 录像大小
  18190. char szAlarmRecordPath[DH_COMMON_STRING_256]; // 录像路径
  18191. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  18192. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  18193. BYTE bReserved[484]; // 保留字节
  18194. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18195. int nDetectNum; // 规则检测区域顶点数
  18196. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  18197. EVENT_COMM_INFO stCommInfo; // 公共信息
  18198. BOOL bHasNonMotor; // 是否有非机动车对象
  18199. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
  18200. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18201. } DEV_EVENT_TRAFFIC_RETROGRADE_INFO;
  18202. ///@brief 事件类型EVENT_IVS_TRAFFIC_TURNLEFT(交通-违章左转)对应的数据块描述信息
  18203. typedef struct tagDEV_EVENT_TRAFFIC_TURNLEFT_INFO
  18204. {
  18205. int nChannelID; // 通道号
  18206. char szName[128]; // 事件名称
  18207. char bReserved1[4]; // 字节对齐
  18208. double PTS; // 时间戳(单位是毫秒)
  18209. NET_TIME_EX UTC; // 事件发生的时间
  18210. int nEventID; // 事件ID
  18211. int nLane; // 对应车道号
  18212. DH_MSG_OBJECT stuObject; // 车牌信息
  18213. DH_MSG_OBJECT stuVehicle; // 车身信息
  18214. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18215. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18216. int nSpeed; // 车辆实际速度,Km/h
  18217. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18218. BYTE byReserved[2];
  18219. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18220. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18221. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18222. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  18223. BYTE bReserved[968]; // 保留字节
  18224. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18225. EVENT_COMM_INFO stCommInfo; // 公共信息
  18226. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  18227. BOOL bHasNonMotor; // 是否有非机动车对象
  18228. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18229. } DEV_EVENT_TRAFFIC_TURNLEFT_INFO;
  18230. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TURNRIGHT (交通-违章右转)对应的数据块描述信息
  18231. typedef struct tagDEV_EVENT_TRAFFIC_TURNRIGHT_INFO
  18232. {
  18233. int nChannelID; // 通道号
  18234. char szName[128]; // 事件名称
  18235. char bReserved1[4]; // 字节对齐
  18236. double PTS; // 时间戳(单位是毫秒)
  18237. NET_TIME_EX UTC; // 事件发生的时间
  18238. int nEventID; // 事件ID
  18239. int nLane; // 对应车道号
  18240. DH_MSG_OBJECT stuObject; // 车牌信息
  18241. DH_MSG_OBJECT stuVehicle; // 车身信息
  18242. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18243. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18244. int nSpeed; // 车辆实际速度,Km/h
  18245. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18246. BYTE byReserved[2];
  18247. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18248. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18249. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18250. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  18251. BYTE bReserved[968]; // 保留字节
  18252. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18253. EVENT_COMM_INFO stCommInfo; // 公共信息
  18254. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  18255. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18256. } DEV_EVENT_TRAFFIC_TURNRIGHT_INFO;
  18257. ///@brief 事件类型EVENT_IVS_TRAFFIC_UTURN(违章调头事件)对应的数据块描述信息
  18258. typedef struct tagDEV_EVENT_TRAFFIC_UTURN_INFO
  18259. {
  18260. int nChannelID; // 通道号
  18261. char szName[128]; // 事件名称
  18262. char bReserved1[4]; // 字节对齐
  18263. double PTS; // 时间戳(单位是毫秒)
  18264. NET_TIME_EX UTC; // 事件发生的时间
  18265. int nEventID; // 事件ID
  18266. int nLane; // 对应车道号
  18267. DH_MSG_OBJECT stuObject; // 检测到的物体
  18268. DH_MSG_OBJECT stuVehicle; // 车身信息
  18269. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18270. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18271. int nSpeed; // 车辆实际速度,Km/h
  18272. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18273. BYTE byReserved[2];
  18274. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18275. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18276. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18277. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  18278. BYTE bReserved[968]; // 保留字节
  18279. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18280. EVENT_COMM_INFO stCommInfo; // 公共信息
  18281. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  18282. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18283. }DEV_EVENT_TRAFFIC_UTURN_INFO;
  18284. ///@brief 区间测速信息
  18285. typedef struct tagNET_REGION_INFO
  18286. {
  18287. NET_TIME stuDriveInTime; // 驶入时间
  18288. NET_TIME stuDriveOutTime; // 驶出时间
  18289. BYTE bReserved[1024]; // 保留字节
  18290. }NET_REGION_INFO;
  18291. ///@brief 事件类型EVENT_IVS_TRAFFIC_OVERSPEED(交通超速事件)对应的数据块描述信息
  18292. typedef struct tagDEV_EVENT_TRAFFIC_OVERSPEED_INFO
  18293. {
  18294. int nChannelID; // 通道号
  18295. char szName[128]; // 事件名称
  18296. char bReserved1[4]; // 字节对齐
  18297. double PTS; // 时间戳(单位是毫秒)
  18298. NET_TIME_EX UTC; // 事件发生的时间
  18299. int nEventID; // 事件ID
  18300. int nLane; // 对应车道号
  18301. DH_MSG_OBJECT stuObject; // 检测到的物体
  18302. DH_MSG_OBJECT stuVehicle; // 车身信息
  18303. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18304. int nSpeed; // 车辆实际速度Km/h
  18305. int nSpeedUpperLimit; // 速度上限 单位:km/h
  18306. int nSpeedLowerLimit; // 速度下限 单位:km/h
  18307. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18308. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18309. BYTE byReserved[2];
  18310. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18311. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18312. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18313. char szFilePath[MAX_PATH]; // 文件路径
  18314. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  18315. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  18316. int nSpeedingPercentage; // 超速百分比
  18317. BYTE bReserved[572]; // 保留字节
  18318. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18319. EVENT_COMM_INFO stCommInfo; // 公共信息
  18320. NET_REGION_INFO stRegionInfo; // 区间测速信息
  18321. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18322. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  18323. BOOL bHasNonMotor; // 是否有非机动车对象
  18324. }DEV_EVENT_TRAFFIC_OVERSPEED_INFO;
  18325. ///@brief 事件类型EVENT_IVS_TRAFFIC_UNDERSPEED(交通欠速事件)对应的数据块描述信息
  18326. typedef struct tagDEV_EVENT_TRAFFIC_UNDERSPEED_INFO
  18327. {
  18328. int nChannelID; // 通道号
  18329. char szName[128]; // 事件名称
  18330. char bReserved2[4]; // 字节对齐
  18331. double PTS; // 时间戳(单位是毫秒)
  18332. NET_TIME_EX UTC; // 事件发生的时间
  18333. int nEventID; // 事件ID
  18334. int nLane; // 对应车道号
  18335. DH_MSG_OBJECT stuObject; // 检测到的物体
  18336. DH_MSG_OBJECT stuVehicle; // 车身信息
  18337. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18338. int nSpeed; // 车辆实际速度Km/h
  18339. int nSpeedUpperLimit; // 速度上限 单位:km/h
  18340. int nSpeedLowerLimit; // 速度下限 单位:km/h
  18341. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18342. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18343. BYTE bReserved1[2]; // 对齐
  18344. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18345. int nUnderSpeedingPercentage; // 欠速百分比
  18346. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18347. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18348. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  18349. NET_GPS_INFO stuGPSInfo; // GPS信息
  18350. BYTE bReserved[832]; // 保留字节
  18351. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18352. EVENT_COMM_INFO stCommInfo; // 公共信息
  18353. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18354. }DEV_EVENT_TRAFFIC_UNDERSPEED_INFO;
  18355. ///@brief 事件类型EVENT_IVS_TRAFFIC_JAM_FORBID_INTO(交通拥堵禁入事件)对应的数据块描述信息
  18356. typedef struct tagDEV_EVENT_ALARM_JAMFORBIDINTO_INFO
  18357. {
  18358. int nChannelID; // 通道号
  18359. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  18360. char bReserved1[4]; // 字节对齐
  18361. DWORD PTS; // 时间戳(单位是毫秒)
  18362. NET_TIME_EX UTC; // 事件发生的时间
  18363. int nEventID; // 事件ID
  18364. /*以上为公共字段*/
  18365. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18366. int nMark; // 底层产生的触发抓拍帧标记
  18367. int nSource; // 视频分析的数据源地址
  18368. int nSequence; // 表示抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  18369. int nFrameSequence; // 帧序号
  18370. int nLane; // 车道号
  18371. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18372. DH_MSG_OBJECT stuObject; // 检测到的物体
  18373. NET_GPS_INFO stuGPSInfo; // GPS信息
  18374. BYTE bReserved[984]; // 保留字节
  18375. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  18376. EVENT_COMM_INFO stCommInfo; // 公共信息
  18377. DH_MSG_OBJECT stuVehicle; // 车身信息
  18378. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18379. } DEV_EVENT_ALARM_JAMFORBIDINTO_INFO;
  18380. ///@brief 事件类型EVENT_IVS_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING(拥堵滞留斑马线违章事件)对应的数据块描述信息
  18381. typedef struct tagDEV_EVENT_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING_INFO
  18382. {
  18383. int nChannelID; // 通道号
  18384. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  18385. char bReserved1[4]; // 字节对齐
  18386. double PTS; // 时间戳(单位是毫秒)
  18387. NET_TIME_EX UTC; // 事件发生的时间
  18388. int nEventID; // 事件ID
  18389. /*以上为公共字段*/
  18390. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18391. int nSequence; // 表示抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  18392. int nLane; // 车道号
  18393. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18394. BYTE byReserved[3];
  18395. DH_MSG_OBJECT stuObject; // 检测到的物体
  18396. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  18397. EVENT_COMM_INFO stuCommInfo; // 公共信息
  18398. DH_MSG_OBJECT stuVehicle; // 车身信息
  18399. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18400. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18401. BYTE bReserved[2048]; // 保留字节
  18402. } DEV_EVENT_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING_INFO;
  18403. ///@brief 分析的信息
  18404. typedef struct tagEVENT_PIC_ANALYSE_INFO
  18405. {
  18406. DH_MSG_OBJECT stuObject; // 车牌信息
  18407. DH_MSG_OBJECT stuVehicle; // 车身信息
  18408. EVENT_COMM_INFO stuCommInfo; // 公共信息
  18409. BYTE bReserved[1024]; // 预留字节
  18410. }EVENT_PIC_ANAKYSE_INFO;
  18411. ///@brief 事件类型 DH_ALARM_TRAFFIC_PIC_ANALYSE(图片二次分析事件)对应的数据块描述信息
  18412. typedef struct tagDEV_ALARM_PIC_ANALYSE_INFO
  18413. {
  18414. int nIndex; // 通道号
  18415. char szName[128]; // 事件名称
  18416. double PTS; // 时间戳(单位是毫秒)
  18417. NET_TIME_EX UTC; // 事件发生的时间
  18418. int nEventID; // 事件ID
  18419. DH_MSG_OBJECT stuObject; // 车牌信息
  18420. DH_MSG_OBJECT stuVehicle; // 车身信息
  18421. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同
  18422. int nCountInGroup; // 一个事件组内的抓拍张数
  18423. int nIndexInGroup; // 一个事件组内的抓拍序号
  18424. char szFilePath[MAX_PATH]; // 图片路径
  18425. EVENT_COMM_INFO stuCommInfo; // 公共信息
  18426. EVENT_PIC_ANAKYSE_INFO stuAnalyseInfo; // 分析的信息
  18427. BYTE bReserved[1024]; // 保留字节
  18428. } ALARM_PIC_ANALYSE_INFO;
  18429. ///@brief 检测到的弹孔
  18430. typedef struct tagNET_BULLET_HOLES_INFO
  18431. {
  18432. int nObjectID; // 物体ID,每个ID表示一个唯一的物体
  18433. char szObjectType[128]; // 物体类型,支持以下: "Unknown", "Human", "Vehicle",
  18434. DH_RECT stuBoundingBox; // 包围盒
  18435. DH_POINT stuCenter; // 物体型心
  18436. int nSequence; // 序号
  18437. int nScore; // 环数
  18438. BYTE byReserved[512]; // 保留字节
  18439. }NET_BULLET_HOLES_INFO;
  18440. ///@brief 打靶像机事件
  18441. typedef struct tagDEV_ALARM_PIC_SHOOTINGSCORERECOGNITION_INFO
  18442. {
  18443. int nIndex; // 通道号
  18444. char szName[128]; // 事件名称
  18445. double dbPTS; // 时间戳(单位是毫秒)
  18446. NET_TIME_EX stuUTC; // 事件发生的时间
  18447. int nEventID; // 事件ID
  18448. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同
  18449. int nCountInGroup; // 一个事件组内的抓拍张数
  18450. int nIndexInGroup; // 一个事件组内的抓拍序号
  18451. char szFilePath[MAX_PATH]; // 图片路径
  18452. DH_POINT stuDetectRegion; // 规则检测区域
  18453. int nValidBulletHolesNum; // 检测到的有效弹孔个数
  18454. NET_BULLET_HOLES_INFO stuBulletHolesInfo[DH_MAX_BULLET_HOLES]; // 检测到的弹孔
  18455. BYTE bReserved[1024]; // 保留字节
  18456. } ALARM_PIC_SHOOTINGSCORERECOGNITION_INFO;
  18457. ///@brief 4G流量超过阈值的报警事件(对应事件 DH_ALARM_OIL_4G_OVERFLOW)
  18458. typedef struct tagNET_ALARM_OIL_4G_OVERFLOW_INFO
  18459. {
  18460. int nChannelID; // 通道号从0开始
  18461. double dbPTS; // 时间戳(单位是毫秒)
  18462. NET_TIME_EX stuTime; // 事件发生的时间
  18463. int nFlowRateCur; // 当前使用了的流量 单位MB
  18464. int nFlowRateMax; // 当月流量的阈值 单位MB
  18465. BYTE byReserved[1024]; // 保留字节
  18466. }NET_ALARM_OIL_4G_OVERFLOW_INFO;
  18467. ///@brief 感应器相位电压类型
  18468. typedef enum tagEM_ALARM_INTERFACE_TYPE
  18469. {
  18470. EM_ALARM_INTERFACE_TYPE_UNKNOWN, // 未知
  18471. EM_ALARM_INTERFACE_TYPE_A, // A相电压
  18472. EM_ALARM_INTERFACE_TYPE_B, // B相电压
  18473. EM_ALARM_INTERFACE_TYPE_C, // C相电压
  18474. }EM_ALARM_INTERFACE_TYPE;
  18475. ///@brief 供电电源开关状态异常事件
  18476. typedef struct tagDEV_ALARM_POWERSWITCHER_INFO
  18477. {
  18478. int nEventAction; // 持续型事件动作, 1表示开始, 2表示停止
  18479. int nEventIndex; // 供电电源开关序号, 与PowerSwitcher配置下标序号一致
  18480. char szName[128]; // 供电电源开关名称, 与PowerSwitcher配置名称对应
  18481. NET_TIME_EX stuUTC; // 事件采集时间
  18482. int nPowerVoltage; // 电压值, 单位:mV
  18483. int nPowerCurrent; // 电流值, 单位:mA
  18484. int nPowerValue; // 功率, 单位:mW
  18485. int nSwitchOn; // 开关通断, 1为开,0为关
  18486. int nPowerState; // 数据状态掩码,全0表示正常, bit0表示欠压, bit1表示过压, bit2表示欠流, bit3表示过流, bit4表示无状态(此状态不与其他同时置位)
  18487. EM_ALARM_INTERFACE_TYPE emInterfaceType; // 感应器相位电压
  18488. BYTE byReserved[1020]; // 保留字节
  18489. }DEV_ALRAM_POWERSWITCHER_INFO;
  18490. ///@brief 场景变更事件 StartListen(对应事件 DH_ALARM_SCENNE_CHANGE_ALARM)
  18491. typedef struct tagDEV_ALARM_PIC_SCENECHANGE_INFO
  18492. {
  18493. int nChannelID; // 通道号
  18494. int nEventAction; // 持续型事件动作, 1表示开始, 2表示停止
  18495. double dbPTS; // 时间戳(单位是毫秒)
  18496. NET_TIME_EX stuUTC; // 事件发生的时间
  18497. int nEventID; // 事件ID
  18498. BYTE bReserved[1024]; // 保留字节
  18499. } ALARM_PIC_SCENECHANGE_INFO;
  18500. ///@brief 场景变更事件,ReloadPicture(对应事件 EVENT_IVS_SCENE_CHANGE)
  18501. typedef struct tagDEV_ALRAM_SCENECHANGE_INFO
  18502. {
  18503. int nChannelID; // 通道号
  18504. int nEventAction; // 持续型事件动作, 1表示开始, 2表示停止
  18505. double dbPTS; // 时间戳(单位是毫秒)
  18506. NET_TIME_EX stuUTC; // 事件发生的时间
  18507. int nEventID; // 事件ID
  18508. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18509. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18510. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  18511. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18512. BYTE bReserved[1024]; // 保留字节,留待扩展.
  18513. } DEV_ALRAM_SCENECHANGE_INFO;
  18514. ///@brief 事件类型 EVENT_IVS_SNAPMANUAL(SnapManual事件)对应数据块描述信息
  18515. typedef struct tagDEV_EVENT_SNAPMANUAL
  18516. {
  18517. int nChannelID; // 通道号
  18518. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  18519. char bReserved1[4]; // 字节对齐
  18520. double PTS; // 时间戳(单位是毫秒)
  18521. NET_TIME_EX UTC; // 事件发生的时间
  18522. int nEventID; // 事件ID
  18523. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18524. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18525. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  18526. BYTE bReserved[1024]; // 保留字节,留待扩展.
  18527. }DEV_EVENT_SNAPMANUAL;
  18528. ///@brief 超时未刷卡事件
  18529. typedef struct tagALARM_SWIPE_OVERTIME_INFO
  18530. {
  18531. NET_TIME_EX stuTime; // 事件发生的时间
  18532. BYTE bReserved[1024];
  18533. }ALARM_SWIPE_OVERTIME_INFO;
  18534. ///@brief 无卡驾驶事件
  18535. typedef struct tagALARM_DRIVING_WITHOUTCARD_INFO
  18536. {
  18537. NET_TIME_EX stuTime; // 事件发生的时间
  18538. BYTE bReserved[1024];
  18539. }ALARM_DRIVING_WITHOUTCARD_INFO;
  18540. ///@brief 多目标检测信息
  18541. typedef struct tagNET_FACE_INFO
  18542. {
  18543. int nObjectID; // 物体ID,每个ID表示一个唯一的物体
  18544. char szObjectType[128]; // 物体类型
  18545. int nRelativeID; // 这张目标抠图所属的大图的ID
  18546. DH_RECT BoundingBox; // 包围盒
  18547. DH_POINT Center; // 物体型心
  18548. } NET_FACE_INFO;
  18549. ///@brief 人体温信息
  18550. typedef struct tagNET_HUMAN_TEMPERATURE_INFO
  18551. {
  18552. double dbTemperature; // 温度
  18553. EM_HUMAN_TEMPERATURE_UNIT emTemperatureUnit; // 温度单位
  18554. BOOL bIsOverTemp; // 是否温度异常高
  18555. BOOL bIsUnderTemp; // 是否温度异常低
  18556. BYTE bReserved[132]; // 预留字段
  18557. } NET_HUMAN_TEMPERATURE_INFO;
  18558. ///@brief 事件类型EVENT_IVS_FACEDETECT(目标检测事件)对应的数据块描述信息
  18559. typedef struct tagDEV_EVENT_FACEDETECT_INFO
  18560. {
  18561. int nChannelID; // 通道号
  18562. char szName[128]; // 事件名称
  18563. char bReserved1[4]; // 字节对齐
  18564. double PTS; // 时间戳(单位是毫秒)
  18565. NET_TIME_EX UTC; // 事件发生的时间
  18566. int nEventID; // 事件ID
  18567. DH_MSG_OBJECT stuObject; // 检测到的物体
  18568. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18569. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18570. BYTE reserved[2]; // 保留字节
  18571. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18572. int nDetectRegionNum; // 规则检测区域顶点数
  18573. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  18574. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18575. char szSnapDevAddress[MAX_PATH]; // 抓拍当前目标的设备地址,如:滨康路37号
  18576. unsigned int nOccurrenceCount; // 事件触发累计次数
  18577. EM_DEV_EVENT_FACEDETECT_SEX_TYPE emSex; // 性别
  18578. int nAge; // 年龄,-1表示该字段数据无效
  18579. unsigned int nFeatureValidNum; // 目标特征数组有效个数,与 emFeature 结合使用
  18580. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emFeature[DH_MAX_FACEDETECT_FEATURE_NUM]; // 目标特征数组,与 nFeatureValidNum 结合使用
  18581. int nFacesNum; // 指示stuFaces有效数量
  18582. NET_FACE_INFO stuFaces[10]; // 多张目标时使用,此时没有Object
  18583. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  18584. char szReserved1[4];
  18585. EM_EYE_STATE_TYPE emEye; // 眼睛状态
  18586. EM_MOUTH_STATE_TYPE emMouth; // 嘴巴状态
  18587. EM_MASK_STATE_TYPE emMask; // 口罩状态
  18588. EM_BEARD_STATE_TYPE emBeard; // 胡子状态
  18589. int nAttractive; // 魅力值, -1表示无效, 0未识别,识别时范围1-100,得分高魅力高
  18590. char szUID[DH_COMMON_STRING_32]; // 抓拍人员写入数据库的唯一标识符
  18591. BYTE bReserved2[4]; // 保留字节
  18592. NET_FEATURE_VECTOR stuFeatureVector; // 特征值信息
  18593. char szFeatureVersion[32]; // 特征值算法版本
  18594. EM_FACE_DETECT_STATUS emFaceDetectStatus; // 目标在摄像机画面中的状态
  18595. NET_EULER_ANGLE stuFaceCaptureAngle; // 目标在抓拍图片中的角度信息, nPitch:抬头低头的俯仰角, nYaw左右转头的偏航角, nRoll头在平面内左偏右偏的翻滚角
  18596. // 角度值取值范围[-90,90], 三个角度值都为999表示此角度信息无效
  18597. UINT nFaceQuality; // 目标抓拍质量分数,范围 0~10000
  18598. double dHumanSpeed; // 人的运动速度, km/h
  18599. int nFaceAlignScore; // 目标对齐得分分数,范围 0~10000,-1为无效值
  18600. int nFaceClarity; // 目标清晰度分数,范围 0~10000,-1为无效值
  18601. BOOL bHumanTemperature; // 人体温信息是否有效
  18602. NET_HUMAN_TEMPERATURE_INFO stuHumanTemperature; // 人体温信息, bHumanTemperature为TURE时有效
  18603. char szCameraID[64]; // 国标编码
  18604. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18605. NET_FACE_ORIGINAL_SIZE stuOriginalSize; // 算法目标分析时的实际目标尺寸. 宽高为0是无效
  18606. EM_GLASS_STATE_TYPE emGlass; // 戴眼镜状态
  18607. EM_HAT_STYLE emHat; // 帽子状态
  18608. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18609. NET_IMAGE_INFO_EX3* pstuImageInfo; // 图片信息数组
  18610. int nImageInfoNum; // 图片信息个数
  18611. BYTE bReserved[392 - POINTERSIZE]; // 保留字节,留待扩展
  18612. } DEV_EVENT_FACEDETECT_INFO;
  18613. ///@brief 事件类型EVENT_IVS_TRAFFICJAM(交通拥堵事件)对应的数据块描述信息
  18614. typedef struct tagDEV_EVENT_TRAFFICJAM_INFO
  18615. {
  18616. int nChannelID; // 通道号
  18617. char szName[128]; // 事件名称
  18618. char bReserved1[4]; // 字节对齐
  18619. double PTS; // 时间戳(单位是毫秒)
  18620. NET_TIME_EX UTC; // 事件发生的时间
  18621. int nEventID; // 事件ID
  18622. int nLane; // 对应车道号
  18623. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18624. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18625. BYTE bJamLenght; // 表示拥堵长度(总车道长度百分比)0-100
  18626. BYTE reserved; // 保留字节
  18627. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18628. NET_TIME_EX stuStartJamTime; // 开始停车时间
  18629. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束(bEventAction=2时此参数有效)
  18630. int nAlarmIntervalTime; // 报警时间间隔,单位:秒。(此事件为连续性事件,在收到第一个此事件之后,若在超过间隔时间后未收到此事件的后续事件,则认为此事件异常结束了)
  18631. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18632. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18633. int nJamRealLength; // 表实际的拥堵长度,单位米
  18634. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  18635. BOOL bJamRegionFlagValid; // 区域拥堵标志是否有效
  18636. UINT nJamRegionFlag; // 区域拥堵标志 0-车道拥堵 1-区域拥堵
  18637. BYTE bReserved[868]; // 保留字节,留待扩展.
  18638. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18639. EVENT_COMM_INFO stCommInfo; // 公共信息
  18640. } DEV_EVENT_TRAFFICJAM_INFO;
  18641. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PARKING(交通违章停车事件)对应的数据块描述信息
  18642. typedef struct tagDEV_EVENT_TRAFFIC_PARKING_INFO
  18643. {
  18644. int nChannelID; // 通道号
  18645. char szName[128]; // 事件名称
  18646. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  18647. double PTS; // 时间戳(单位是毫秒)
  18648. NET_TIME_EX UTC; // 事件发生的时间
  18649. int nEventID; // 事件ID
  18650. DH_MSG_OBJECT stuObject; // 检测到的物体
  18651. DH_MSG_OBJECT stuVehicle; // 车身信息
  18652. int nLane; // 对应车道号
  18653. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18654. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18655. BYTE reserved[2]; // 保留字节
  18656. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18657. NET_TIME_EX stuStartParkingTime; // 开始停车时间
  18658. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束(bEventAction=2时此参数有效)
  18659. int nAlarmIntervalTime; // 报警时间间隔,单位:秒。(此事件为连续性事件,在收到第一个此事件之后,若在超过间隔时间后未收到此事件的后续事件,则认为此事件异常结束了)
  18660. int nParkingAllowedTime; // 允许停车时长,单位:秒。
  18661. int nDetectRegionNum; // 规则检测区域顶点数
  18662. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  18663. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESEED_COMMON
  18664. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18665. BOOL bIsExistAlarmRecord; // rue:有对应的报警录像; false:无对应的报警录像
  18666. DWORD dwAlarmRecordSize; // 录像大小
  18667. char szAlarmRecordPath[DH_COMMON_STRING_256]; // 录像路径
  18668. char szFTPPath[DH_COMMON_STRING_256]; // FTP路径
  18669. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  18670. BYTE byPreAlarm; // 是否为违章预警图片,0 违章停车事件1 预警事件(预警触发后一定时间,车辆还没有离开,才判定为违章)由于此字段会导致事件含义改变,必须和在平台识别预警事件后,才能有此字段,
  18671. BYTE bReserved2[3]; // 保留字节,留待扩展.
  18672. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  18673. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  18674. int nImageInfoNum; // 图片信息个数
  18675. int nPresetID; // 预置点编号,从1开始
  18676. char szSN[32]; // 设备SN号
  18677. BYTE bReserved[184]; // 保留字节,留待扩展.
  18678. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18679. EVENT_COMM_INFO stCommInfo; // 公共信息
  18680. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
  18681. BOOL bHasNonMotor; // 是否有非机动车对象
  18682. UINT nParkingDuration; // 违停持续时间,单位:秒, 0表示无意义
  18683. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18684. } DEV_EVENT_TRAFFIC_PARKING_INFO, DEV_EVENT_TRAFFIC_PARKING_B_INFO, DEV_EVENT_TRAFFIC_PARKING_C_INFO, DEV_EVENT_TRAFFIC_PARKING_D_INFO,DEV_EVENT_TRAFFIC_PARKING_MANUAL_INFO;
  18685. ///@brief 事件类型EVENT_IVS_TRAFFIC_WRONGROUTE(交通违章-不按车道行驶)对应的数据块描述信息
  18686. typedef struct tagDEV_EVENT_TRAFFIC_WRONGROUTE_INFO
  18687. {
  18688. int nChannelID; // 通道号
  18689. char szName[128]; // 事件名称
  18690. char bReserved1[4]; // 字节对齐
  18691. double PTS; // 时间戳(单位是毫秒)
  18692. NET_TIME_EX UTC; // 事件发生的时间
  18693. int nEventID; // 事件ID
  18694. DH_MSG_OBJECT stuObject; // 检测到的物体
  18695. DH_MSG_OBJECT stuVehicle; // 车身信息
  18696. int nLane; // 对应车道号
  18697. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18698. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18699. BYTE byReserved[2];
  18700. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18701. int nSpeed; // 车辆实际速度,km/h
  18702. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18703. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18704. NET_GPS_INFO stuGPSInfo; // GPS信息
  18705. BYTE bReserved[972]; // 保留字节,留待扩展.
  18706. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18707. EVENT_COMM_INFO stCommInfo; // 公共信息
  18708. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18709. } DEV_EVENT_TRAFFIC_WRONGROUTE_INFO;
  18710. ///@brief 事件类型EVENT_IVS_TRAFFIC_CROSSLANE(交通违章-违章变道)对应的数据块描述信息
  18711. typedef struct tagDEV_EVENT_TRAFFIC_CROSSLANE_INFO
  18712. {
  18713. int nChannelID; // 通道号
  18714. char szName[128]; // 事件名称
  18715. char bReserved1[4]; // 字节对齐
  18716. double PTS; // 时间戳(单位是毫秒)
  18717. NET_TIME_EX UTC; // 事件发生的时间
  18718. int nEventID; // 事件ID
  18719. DH_MSG_OBJECT stuObject; // 检测到的物体
  18720. DH_MSG_OBJECT stuVehicle; // 车身信息
  18721. int nLane; // 对应车道号
  18722. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18723. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18724. BYTE byReserved[2];
  18725. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18726. int nSpeed; // 车辆实际速度,km/h
  18727. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18728. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18729. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  18730. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  18731. BYTE bReserved[836]; // 保留字节,留待扩展.留待扩展.
  18732. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  18733. EVENT_COMM_INFO stCommInfo; // 公共信息
  18734. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18735. } DEV_EVENT_TRAFFIC_CROSSLANE_INFO;
  18736. ///@brief 事件类型EVENT_IVS_TRAFFIC_OVERYELLOWLINE(交通违章-压黄线)对应的数据块描述信息
  18737. typedef struct tagDEV_EVENT_TRAFFIC_OVERYELLOWLINE_INFO
  18738. {
  18739. int nChannelID; // 通道号
  18740. char szName[128]; // 事件名称
  18741. char bReserved1[4]; // 字节对齐
  18742. double PTS; // 时间戳(单位是毫秒)
  18743. NET_TIME_EX UTC; // 事件发生的时间
  18744. int nEventID; // 事件ID
  18745. DH_MSG_OBJECT stuObject; // 检测到的物体
  18746. DH_MSG_OBJECT stuVehicle; // 车身信息
  18747. int nLane; // 对应车道号
  18748. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18749. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18750. BYTE byReserved[2];
  18751. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18752. int nSpeed; // 车辆实际速度,km/h
  18753. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18754. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18755. BOOL bIsExistAlarmRecord; // rue:有对应的报警录像; false:无对应的报警录像
  18756. DWORD dwAlarmRecordSize; // 录像大小
  18757. char szAlarmRecordPath[DH_COMMON_STRING_256]; // 录像路径
  18758. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  18759. BYTE bReserved[532]; // 保留字节,留待扩展.
  18760. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18761. int nDetectNum; // 规则检测区域顶点数
  18762. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  18763. EVENT_COMM_INFO stCommInfo; // 公共信息
  18764. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  18765. } DEV_EVENT_TRAFFIC_OVERYELLOWLINE_INFO;
  18766. ///@brief 事件类型EVENT_IVS_TRAFFIC_DRIVINGONSHOULDER(交通违章-路肩行驶事件)对应的数据块描述信息
  18767. typedef struct tagDEV_EVENT_TRAFFIC_DRIVINGONSHOULDER_INFO
  18768. {
  18769. int nChannelID; // 通道号
  18770. char szName[128]; // 事件名称
  18771. char bReserved1[4]; // 字节对齐
  18772. double PTS; // 时间戳(单位是毫秒)
  18773. NET_TIME_EX UTC; // 事件发生的时间
  18774. int nEventID; // 事件ID
  18775. DH_MSG_OBJECT stuObject; // 检测到的物体
  18776. DH_MSG_OBJECT stuVehicle; // 车身信息
  18777. int nLane; // 对应车道号
  18778. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18779. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18780. BYTE byReserved[2];
  18781. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18782. int nSpeed; // 车辆实际速度,km/h
  18783. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18784. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18785. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18786. EVENT_COMM_INFO stCommInfo; // 公共信息
  18787. } DEV_EVENT_TRAFFIC_DRIVINGONSHOULDER_INFO;
  18788. ///@brief 事件类型EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE(交通违章-黄牌车占道事件)对应的数据块描述信息
  18789. typedef struct tagDEV_EVENT_TRAFFIC_YELLOWPLATEINLANE_INFO
  18790. {
  18791. int nChannelID; // 通道号
  18792. char szName[128]; // 事件名称
  18793. char bReserved1[4]; // 字节对齐
  18794. double PTS; // 时间戳(单位是毫秒)
  18795. NET_TIME_EX UTC; // 事件发生的时间
  18796. int nEventID; // 事件ID
  18797. DH_MSG_OBJECT stuObject; // 检测到的物体
  18798. DH_MSG_OBJECT stuVehicle; // 车身信息
  18799. int nLane; // 对应车道号
  18800. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18801. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18802. BYTE byReserved[2];
  18803. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18804. int nSpeed; // 车辆实际速度,km/h
  18805. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18806. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18807. BYTE bReserved[1016]; // 保留字节,留待扩展.
  18808. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18809. EVENT_COMM_INFO stCommInfo; // 公共信息
  18810. } DEV_EVENT_TRAFFIC_YELLOWPLATEINLANE_INFO;
  18811. ///@brief 事件类型EVENT_IVS_TRAFFIC_NOPASSING(交通违章-禁止通行事件)对应的数据块描述信息
  18812. typedef struct tagDEV_EVENT_TRAFFIC_NOPASSING_INFO
  18813. {
  18814. int nChannelID; // 通道号
  18815. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  18816. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  18817. DWORD PTS; // 时间戳(单位是毫秒)
  18818. NET_TIME_EX UTC; // 事件发生的时间
  18819. int nEventID; // 事件ID
  18820. int UTCMS; //
  18821. int nMark; // 底层产生的触发抓拍帧标记
  18822. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  18823. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18824. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18825. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  18826. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18827. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18828. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18829. BYTE byReserved1[3];
  18830. int nLane; // 对应车道号
  18831. DH_MSG_OBJECT stuObject; // 检测到的物体
  18832. DH_MSG_OBJECT stuVehicle; // 车身信息
  18833. int nFrameSequence; // 视频分析帧序号
  18834. int nSource; // 视频分析的数据源地址
  18835. NET_GPS_INFO stuGPSInfo; // GPS信息
  18836. BYTE byReserved[984]; // 保留字节
  18837. EVENT_COMM_INFO stCommInfo; // 公共信息
  18838. }DEV_EVENT_TRAFFIC_NOPASSING_INFO;
  18839. ///@brief 流量统计记录
  18840. typedef struct tagDH_TRAFFICFLOWSTAT
  18841. {
  18842. char szMachineAddress[256]; // 同DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO.MachineGroup
  18843. char szMachineName[256]; // 同DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO.MachineName
  18844. char szDrivingDirection[3][32]; // 行驶方向"Approach"-上行,即车辆离设备部署点越来越近;"Leave"-下行,即车辆离设备部署点越来越远,第二和第三个参数分别代表上行和下行的两个地点,UTF-8编码
  18845. int nLane; // 车道号 使用用户配置的车道编号
  18846. NET_TIME_EX UTC; // 统计时间,转换到UTC
  18847. int nPeriod; // 统计周期,单位分钟
  18848. int nVehicles; // 通过车辆总数
  18849. float fAverageSpeed; // 平均车速,单位km/h
  18850. float fAverageLength; // 平均车长,单位米
  18851. float fTimeOccupyRatio; // 时间占有率,即单位时间内通过断面的车辆所用时间的总和占单位时间的比例
  18852. float fSpaceOccupyRatio; // 空间占有率,即按百分率计量的车辆长度总和除以时间间隔内车辆平均行驶距离
  18853. float fSpaceHeadway; // 车头间距,相邻车辆之间的距离,单位米/辆
  18854. float fTimeHeadway; // 车头时距,单位秒/辆
  18855. float fDensity; // 车辆密度,每公里的车辆数,单位辆/km
  18856. int nOverSpeedVehicles; // 超速车辆数
  18857. int nUnderSpeedVehicles; // 低速车辆数
  18858. int nLargeVehicles; // 大车数量 车辆类型判断标准参见TrafficSnapshot配置表
  18859. int nMediumVehicles; // 中型车数量
  18860. int nSmallVehicles; // 小车数量
  18861. int nMotoVehicles; // 摩托车数量
  18862. int nLongVehicles; // 超长车数量
  18863. char szChannel[64]; // 流量数据所属通道号
  18864. char szResvered[1024]; // 保留字段
  18865. }DH_TRAFFICFLOWSTAT;
  18866. ///@brief 事件类型 TrafficFlowStat Info(交通流量统计事件)对应的数据块描述信息
  18867. typedef struct tagDEV_EVENT_TRAFFIC_FLOWSTAT_INFO
  18868. {
  18869. char szName[128]; // 事件名称
  18870. double PTS; // 时间戳(单位是毫秒)
  18871. NET_TIME_EX UTC; // 事件发生的时间
  18872. int nEventID; // 事件ID
  18873. int nLaneCnt; // 通道总数
  18874. DH_TRAFFICFLOWSTAT stTrafficFlowStats[DH_MAX_LANE_NUM]; // 流量统计记录,是一个数组
  18875. char Reserved[4]; // 保留字节对齐
  18876. }DEV_EVENT_TRAFFIC_FLOWSTAT_INFO;
  18877. ///@brief 手动抓拍专用上报定制内容
  18878. typedef struct tagEVENT_MANUALSNAP_CUSTOM_DATA
  18879. {
  18880. EVENT_CUSTOM_WEIGHT_INFO stuWeighInfo; // 建委地磅定制称重信息
  18881. BYTE byReserved[472]; // 保留字节
  18882. }EVENT_MANUALSNAP_CUSTOM_DATA;
  18883. ///@brief 停车位数据信息
  18884. typedef struct tagEVENT_MANUALSNAP_PARKING_INFO
  18885. {
  18886. UINT nChannel; // 通道号,从0开始, -1表示未知通道
  18887. UINT nStatus; // 车位是否有车标记:0:未知 1:有车 2:无车
  18888. char szPlateNumber[64]; // 车牌号码
  18889. char szParkingNo[32]; // 车牌号码
  18890. char szReserved[128]; // 保留字节
  18891. }EVENT_MANUALSNAP_PARKING_INFO;
  18892. ///@brief 事件类型EVENT_IVS_TRAFFIC_MANUALSNAP(交通手动抓拍事件)对应的数据块描述信息
  18893. typedef struct tagDEV_EVENT_TRAFFIC_MANUALSNAP_INFO
  18894. {
  18895. int nChannelID; // 通道号
  18896. char szName[128]; // 事件名称
  18897. char bReserved1[4]; // 字节对齐
  18898. double PTS; // 时间戳(单位是毫秒)
  18899. NET_TIME_EX UTC; // 事件发生的时间
  18900. int nEventID; // 事件ID
  18901. int nLane; // 对应车道号
  18902. BYTE szManualSnapNo[64]; // 手动抓拍序号
  18903. DH_MSG_OBJECT stuObject; // 检测到的物体
  18904. DH_MSG_OBJECT stuVehicle; // 检测到的车身信息
  18905. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
  18906. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18907. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18908. BYTE byOpenStrobeState; // 开闸状态, 具体请见 EM_OPEN_STROBE_STATE
  18909. BYTE byReserved[1];
  18910. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18911. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18912. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18913. int nParkingInfoNum; // 停车位数据信息数组实际有效大小
  18914. BYTE bReserved[500]; // 保留字节,留待扩展.
  18915. EVENT_MANUALSNAP_CUSTOM_DATA stuCustom; // 手动抓拍专用上报内容
  18916. EVENT_COMM_INFO stCommInfo; // 公共信息
  18917. EVENT_MANUALSNAP_PARKING_INFO stuParkingInfo[32]; // 停车位数据信息
  18918. }DEV_EVENT_TRAFFIC_MANUALSNAP_INFO;
  18919. ///@brief 停车位的数据信息
  18920. typedef struct tagNET_MANUALSNAP_PARKINGSPACE_INFO
  18921. {
  18922. int nStatus; // 0:未知 1:有车 2:无车
  18923. char szPlateNumber[64]; // 车牌号码
  18924. char szParkingNo[32]; // 车位号
  18925. BYTE byReserved[412]; // 保留字节
  18926. }NET_MANUALSNAP_PARKINGSPACE_INFO;
  18927. ///@brief 事件 EVENT_IVS_TRAFFIC_PARKINGSPACE_MANUALSNAP (路侧停车位手动抓图) 对应的数据块描述信息
  18928. typedef struct tagDEV_EVENT_PARKINGSPACE_MANUALSNAP_INFO
  18929. {
  18930. int nChannelID; // 通道号
  18931. char szName[128]; // 事件名称
  18932. char bReserved1[4]; // 字节对齐
  18933. double PTS; // 时间戳(单位是毫秒)
  18934. NET_TIME_EX UTC; // 事件发生的时间
  18935. int nEventID; // 事件ID
  18936. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18937. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
  18938. char szSerialNo[128]; // 和客户端请求的抓图序列号对应
  18939. int nParkingNum; // 有效停车个数
  18940. NET_MANUALSNAP_PARKINGSPACE_INFO stuParkingInfo[32]; // 停车信息
  18941. char szSN[32]; // 设备序列号
  18942. BYTE bReserved[484]; // 保留字节,留待扩展.
  18943. }DEV_EVENT_PARKINGSPACE_MANUALSNAP_INFO;
  18944. ///@brief 事件类型 EVENT_IVS_TRAFFIC_STAY(交通滞留事件)对应的数据块描述信息
  18945. typedef struct tagDEV_EVENT_TRAFFIC_STAY_INFO
  18946. {
  18947. int nChannelID; // 通道号
  18948. char szName[128]; // 事件名称
  18949. char bReserved1[4]; // 字节对齐
  18950. double PTS; // 时间戳(单位是毫秒)
  18951. NET_TIME_EX UTC; // 事件发生的时间
  18952. int nEventID; // 事件ID
  18953. DH_MSG_OBJECT stuObject; // 检测到的物体
  18954. DH_MSG_OBJECT stuVehicle; // 车身信息
  18955. int nLane; // 对应车道号
  18956. int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  18957. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
  18958. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18959. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18960. BYTE byReserved0[2];
  18961. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18962. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18963. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18964. BYTE byReserved[1012];
  18965. EVENT_COMM_INFO stCommInfo; // 公共信息
  18966. }DEV_EVENT_TRAFFIC_STAY_INFO;
  18967. ///@brief 事件类型 EVENT_IVS_TRAFFIC_VEHICLEINROUTE(有车占道事件)对应的数据块描述信息
  18968. typedef struct tagDEV_EVENT_TRAFFIC_VEHICLEINROUTE_INFO
  18969. {
  18970. int nChannelID; // 通道号
  18971. char szName[128]; // 事件名称
  18972. char bReserved1[4]; // 字节对齐
  18973. double PTS; // 时间戳(单位是毫秒)
  18974. NET_TIME_EX UTC; // 事件发生的时间
  18975. int nEventID; // 事件ID
  18976. DH_MSG_OBJECT stuObject; // 检测到的物体
  18977. DH_MSG_OBJECT stuVehicle; // 车身信息
  18978. int nLane; // 对应车道号
  18979. int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  18980. int nSpeed; // 车速
  18981. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
  18982. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  18983. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  18984. BYTE byReserved0[2];
  18985. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  18986. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  18987. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  18988. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  18989. BYTE byReserved[884];
  18990. EVENT_COMM_INFO stCommInfo; // 公共信息
  18991. }DEV_EVENT_TRAFFIC_VEHICLEINROUTE_INFO;
  18992. ///@brief 报警事件类型EVENT_IVS_CONVEYER_BELT_BULK (传送带大块异物检测事件) 对应的数据块描述信息
  18993. typedef struct tagDEV_EVENT_CONVEYER_BELT_BULK_INFO
  18994. {
  18995. int nChannelID; // 通道号
  18996. int nEventAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  18997. char szName[128]; // 事件名称
  18998. double PTS; // 时间戳(单位是毫秒)
  18999. NET_TIME_EX UTC; // 事件发生的时间
  19000. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  19001. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  19002. int nDetectLineNum; // 规则检测线顶点数
  19003. DH_POINT stuDetectLine[20]; // 规则检测线
  19004. UINT nEventID; // 事件ID
  19005. int nDetectRegionNum; // 规则检测区域顶点数
  19006. DH_POINT stuDetectRegion[20]; // 规则检测区域
  19007. UINT nSizeFilterThreshold; // 大块物占比值, 尺寸大于SizeFilterThreshold / 10* ComparetLine表示的传送带平均宽度 的物体被认为是大块异物取值[2-8]
  19008. UINT nObjectNum; // 检测到的物体个数
  19009. DH_MSG_OBJECT stuObjects[20]; // 检测到的物体信息
  19010. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图信息
  19011. UINT nConveyorBeltWidth; // 皮带实际物理宽度,范围[0-1000],单位cm
  19012. UINT nBulkEventCount; // 大块物事件累计次数
  19013. BYTE byReserved[1012]; // 保留字节
  19014. } DEV_EVENT_CONVEYER_BELT_BULK_INFO;
  19015. ///@brief 报警事件类型EVENT_IVS_CONVEYER_BELT_NONLOAD (传送带空载检测事件) 对应的数据块描述信息
  19016. typedef struct tagDDEV_EVENT_CONVEYER_BELT_NONLOAD_INFO
  19017. {
  19018. int nChannelID; // 通道号
  19019. int nEventAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  19020. char szName[128]; // 事件名称
  19021. double PTS; // 时间戳(单位是毫秒)
  19022. NET_TIME_EX UTC; // 事件发生的时间
  19023. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  19024. UINT nEventID; // 事件ID
  19025. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  19026. DH_POINT stuDetectRegion[20]; // 规则检测区域
  19027. int nDetectRegionNum; // 规则检测区域顶点数
  19028. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图信息
  19029. int nAlarmLevel; //装载率报警等级
  19030. int nEventDataType; // 0:未知 1:实时数据 2:报警数据
  19031. BYTE byReserved[1016]; // 保留字节
  19032. } DEV_EVENT_CONVEYER_BELT_NONLOAD_INFO;
  19033. ///@brief 报警事件类型EVENT_IVS_CONVEYER_BELT_RUNOFF (传送带跑偏检测事件) 对应的数据块描述信息
  19034. typedef struct tagDEV_EVENT_CONVEYER_BELT_RUNOFF_INFO
  19035. {
  19036. int nChannelID; // 通道号
  19037. int nEventAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  19038. char szName[128]; // 事件名称
  19039. UINT nEventID; // 事件ID
  19040. BYTE byReserved1[4]; // 字节对齐
  19041. double PTS; // 时间戳(单位是毫秒)
  19042. NET_TIME_EX UTC; // 事件发生的时间
  19043. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  19044. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  19045. int nDetectRegionNum; // 规则检测区域顶点数
  19046. DH_POINT stuDetectRegion[20]; // 规则检测区域
  19047. UINT nWarningThreshold; // 预警值,用于界定跑偏的程度;0<预警值<停机值<10取值[1-9]
  19048. UINT nDowntimeThreshold; // 停机值,用于界定跑偏的程度;0<预警值<停机值<10取值[1-9]
  19049. UINT nAlarmType; // 皮带跑偏报警类型,0代表不报警,1代表预警报警,2代表停机报警
  19050. UINT nObjectNum; // 检测到的物体个数
  19051. DH_MSG_OBJECT stuObjects[20]; // 检测到的物体信息
  19052. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图信息
  19053. int nRunOffEventCount; // 跑偏事件累计次数
  19054. BYTE byReserved[1016]; // 保留字节
  19055. } DEV_EVENT_CONVEYER_BELT_RUNOFF_INFO;
  19056. ///@brief 8192坐标点
  19057. typedef struct tagNET_UINT_POINT
  19058. {
  19059. UINT nx;
  19060. UINT ny;
  19061. } NET_UINT_POINT;
  19062. ///@brief 报警事件类型EVENT_IVS_CONVEYER_BELT_COAL_RATIO (传送带煤量检测) 对应的数据块描述信息
  19063. typedef struct tagDEV_EVENT_CONVEYER_BELT_COAL_RATIO_INFO
  19064. {
  19065. int nChannelID; // 通道号
  19066. int nEventAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  19067. char szName[128]; // 事件名称
  19068. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  19069. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  19070. NET_TIME_EX UTC; // 事件发生的时间
  19071. UINT UTCMS; // 事件时间毫秒数
  19072. UINT nEventID; // 事件编号,用来唯一标志一个事件
  19073. int nDetectRegionNum; // 规则检测区域顶点数
  19074. NET_UINT_POINT stuDetectRegion[20]; // 规则检测区域
  19075. float fCoalData; // 当前煤量占比值
  19076. UINT nAlarmOutMode; // 本次事件触发对应的报警模式
  19077. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图信息
  19078. char szReserved[1024]; // 保留字节
  19079. }DEV_EVENT_CONVEYER_BELT_COAL_RATIO_INFO;
  19080. ///@brief 图片类型
  19081. typedef enum tagEM_IMAGE_TYPE
  19082. {
  19083. EM_IMAGE_UNKNOWN = -1, // 未知
  19084. EM_IMAGE_INSPECTOR, // 安检员图片
  19085. EM_IMAGE_PACKAGE // 包裹图片
  19086. }EM_IMAGE_TYPE;
  19087. ///@brief 图片信息扩展
  19088. typedef struct tagNET_IMAGE_INFO_EX
  19089. {
  19090. UINT nIndexInData; // 在上传图片数据中的图片序号
  19091. UINT nOffset; // 在二进制数据块中的偏移
  19092. UINT nLength; // 图片大小,单位:字节
  19093. EM_IMAGE_TYPE emType; // 图片类型
  19094. }NET_IMAGE_INFO_EX;
  19095. ///@brief 报警事件类型 EVENT_ALARM_VIDEOBLIND(视频遮挡报警)
  19096. typedef struct tagDEV_EVENT_ALARM_VIDEOBLIND
  19097. {
  19098. int nChannelID; // 通道号
  19099. char szName[128]; // 事件名称
  19100. char Reserved[4]; // 保留字节对齐
  19101. double PTS; // 时间戳(单位是毫秒)
  19102. NET_TIME_EX UTC; // 事件发生的时间
  19103. int nEventID; // 事件ID
  19104. NET_TIME_EX stuTime; // 事件发生的时间, (设备时间, 不一定是utc时间)
  19105. char szDriverID[32]; // 司机ID
  19106. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  19107. char szVideoPath[256]; // 违章关联视频FTP上传路径
  19108. NET_IMAGE_INFO_EX stuImageInfo[6]; // 图片信息扩展
  19109. int nImageInfo; // 图片信息扩展的个数
  19110. NET_IMAGE_INFO_EX2 stuImageInfoEx2[32]; // 图片信息数组
  19111. int nImageInfoEx2Num; // 图片信息个数
  19112. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  19113. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  19114. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19115. char byReserved[1023]; // 保留字节
  19116. }DEV_EVENT_ALARM_VIDEOBLIND;
  19117. ///@brief 报警事件类型 EVENT_ALARM_ANALOGALARM(模拟量报警通道报警),
  19118. typedef struct tagDEV_EVENT_ALARM_ANALOGALRM_INFO
  19119. {
  19120. int nChannelID; // (视频)通道号
  19121. char szName[DH_COMMON_STRING_128]; // 模拟量报警通道名称
  19122. char Reserved[4]; // 保留字节对齐
  19123. double PTS; // 时间戳(单位是毫秒)
  19124. NET_TIME_EX UTC; // 事件发生的时间
  19125. int nEventID; // 事件ID
  19126. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19127. int nIndex; // 模拟量报警通道号
  19128. NET_SENSE_METHOD emSensor; // 传感器类型
  19129. int nStatus; // 数据状态, -1:未知,0:正常,1:数据无效(超过量程),
  19130. // 2:超过阈值1,3:超过阈值2,4:超过阈值3,5:超过阈值4,
  19131. // 6:低于阈值1,7:低于阈值2,8:低于阈值3,9:低于阈值4
  19132. float fValue; // 探测器数值
  19133. NET_TIME stuCollectTime; // 数据采集时间(UTC)
  19134. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19135. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19136. NET_TEMPERATURE_UNIT emTemperatureUnit; // 传感器数值单位
  19137. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  19138. BYTE byReserved2[1019]; // 保留字节,留待扩展
  19139. }DEV_EVENT_ALARM_ANALOGALRM_INFO;
  19140. ///@brief EVENT_ALARM_VEHICLEACC(ACC断电报警)
  19141. typedef struct tagDEV_EVENT_ALARM_VEHICLEACC_INFO
  19142. {
  19143. int nChannelID; // 通道号
  19144. char szName[DH_COMMON_STRING_128]; // 事件名称
  19145. char Reserved[4]; // 保留字节对齐
  19146. double PTS; // 时间戳(单位是毫秒)
  19147. NET_TIME_EX UTC; // 事件发生的时间
  19148. int nEventID; // 事件ID
  19149. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  19150. int nACCStatus; // ACC状态 0:无效(兼容用) , 1:开启 , 2:关闭
  19151. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19152. BYTE bConstantElectricStatus; // 常电状态 , 0:无效(兼容用) , 1:连接 , 2:断开
  19153. BYTE bReserved[1022]; // 保留字节,留待扩展.
  19154. }DEV_EVENT_ALARM_VEHICLEACC_INFO;
  19155. ///@brief 报警事件类型 EVENT_ALARM_VEHICLE_TURNOVER(车辆侧翻) , EVENT_ALARM_VEHICLE_COLLISION(车辆撞车)
  19156. typedef struct tagDEV_EVENT_VEHICEL_ALARM_INFO
  19157. {
  19158. int nChannelID; // 通道号
  19159. char szName[128]; // 事件名称
  19160. char Reserved[4]; // 保留字节对齐
  19161. double PTS; // 时间戳(单位是毫秒)
  19162. NET_TIME_EX UTC; // 事件发生的时间
  19163. int nEventID; // 事件ID
  19164. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  19165. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19166. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19167. BYTE byReserved[2]; // 字节对齐用
  19168. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19169. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19170. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19171. BYTE bReserved[1024]; // 保留字节,留待扩展.
  19172. }DEV_EVENT_VEHICEL_ALARM_INFO;
  19173. ///@brief 事件类型 EVENT_IVS_PSRISEDETECTION (囚犯起身事件) 对应的数据块描述信息
  19174. typedef struct tagDEV_EVENT_PSRISEDETECTION_INFO
  19175. {
  19176. int nChannelID; // 通道号
  19177. char szName[128]; // 事件名称
  19178. char bReserved1[4]; // 字节对齐
  19179. double PTS; // 时间戳(单位是毫秒)
  19180. NET_TIME_EX UTC; // 事件发生的时间
  19181. int nEventID; // 事件ID
  19182. DH_MSG_OBJECT stuObject; // 检测到的物体
  19183. int nDetectRegionNum; // 规则检测区域顶点数
  19184. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  19185. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19186. double dInitialUTC; // 事件初始UTC时间 UTC为事件的UTC (1970-1-1 00:00:00)秒数。
  19187. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19188. BYTE byReserved[2];
  19189. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19190. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19191. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  19192. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  19193. unsigned int nOccurrenceCount; // 事件触发累计次数
  19194. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  19195. char szSerialUUID[22]; // 智能物体全局唯一物体标识
  19196. // 有效数据位21位,包含’\0’
  19197. // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
  19198. // 中间14位YYYYMMDDhhmmss:年月日时分秒
  19199. // 后5位%u%u%u%u%u:物体ID,如00001
  19200. BYTE bReserved[594]; // 保留字节,留待扩展.
  19201. }DEV_EVENT_PSRISEDETECTION_INFO;
  19202. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY(斑马线行人优先事件)对应的数据块描述信息
  19203. typedef struct tagDEV_EVENT_TRAFFIC_PEDESTRAINPRIORITY_INFO
  19204. {
  19205. int nChannelID; // 通道号
  19206. char szName[128]; // 事件名称
  19207. char bReserved1[4]; // 字节对齐
  19208. double PTS; // 时间戳(单位是毫秒)
  19209. NET_TIME_EX UTC; // 事件发生的时间
  19210. int nEventID; // 事件ID
  19211. DH_MSG_OBJECT stuObject; // 检测到的物体
  19212. DH_MSG_OBJECT stuVehicle; // 车身信息
  19213. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19214. int nLane; // 对应车道号
  19215. double dInitialUTC; // 事件初始UTC时间 UTC为事件的UTC (1970-1-1 00:00:00)秒数。
  19216. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19217. BYTE byReserved[2];
  19218. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19219. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19220. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
  19221. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19222. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  19223. BYTE bReserved[984]; // 保留字节,留待扩展.
  19224. EVENT_COMM_INFO stCommInfo; // 公共信息
  19225. }DEV_EVENT_TRAFFIC_PEDESTRAINPRIORITY_INFO;
  19226. ///@brief 事件类型 EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE(占用公交车道事件)对应的数据块描述信息
  19227. typedef struct tagDEV_EVENT_TRAFFIC_VEHICLEINBUSROUTE_INFO
  19228. {
  19229. int nChannelID; // 通道号
  19230. char szName[128]; // 事件名称
  19231. char bReserved1[4]; // 字节对齐
  19232. double PTS; // 时间戳(单位是毫秒)
  19233. NET_TIME_EX UTC; // 事件发生的时间
  19234. int nEventID; // 事件ID
  19235. DH_MSG_OBJECT stuObject; // 检测到的物体
  19236. DH_MSG_OBJECT stuVehicle; // 车身信息
  19237. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19238. int nLane; // 对应车道号
  19239. int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  19240. int nSpeed; // 车速,km/h
  19241. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19242. BYTE byReserved[2];
  19243. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19244. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19245. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
  19246. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19247. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  19248. BYTE bReserved[980]; // 保留字节,留待扩展.
  19249. EVENT_COMM_INFO stCommInfo; // 公共信息
  19250. }DEV_EVENT_TRAFFIC_VEHICLEINBUSROUTE_INFO;
  19251. ///@brief 事件类型 EVENT_IVS_TRAFFIC_BACKING(违章倒车事件)对应的数据块描述信息
  19252. typedef struct tagDEV_EVENT_IVS_TRAFFIC_BACKING_INFO
  19253. {
  19254. int nChannelID; // 通道号
  19255. char szName[128]; // 事件名称
  19256. char bReserved1[4]; // 字节对齐
  19257. double PTS; // 时间戳(单位是毫秒)
  19258. NET_TIME_EX UTC; // 事件发生的时间
  19259. int nEventID; // 事件ID
  19260. DH_MSG_OBJECT stuObject; // 检测到的物体
  19261. DH_MSG_OBJECT stuVehicle; // 车身信息
  19262. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19263. int nLane; // 对应车道号
  19264. int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  19265. int nSpeed; // 车速,km/h
  19266. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19267. BYTE byReserved[2];
  19268. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19269. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19270. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 表示交通车辆的数据库记录
  19271. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19272. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  19273. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  19274. BYTE bReserved[848]; // 保留字节,留待扩展.
  19275. EVENT_COMM_INFO stCommInfo; // 公共信息
  19276. }DEV_EVENT_IVS_TRAFFIC_BACKING_INFO;
  19277. ///@brief 事件类型EVENT_IVS_AUDIO_ABNORMALDETECTION(声音异常检测)对应数据块描述信息
  19278. typedef struct tagDEV_EVENT_IVS_AUDIO_ABNORMALDETECTION_INFO
  19279. {
  19280. int nChannelID; // 通道号
  19281. char szName[128]; // 事件名称
  19282. char bReserved1[4]; // 字节对齐
  19283. double PTS; // 时间戳(单位是毫秒)
  19284. NET_TIME_EX UTC; // 事件发生的时间
  19285. int nEventID; // 事件ID
  19286. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19287. int nDecibel; // 声音强度
  19288. int nFrequency; // 声音频率
  19289. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19290. BYTE byReserved[2];
  19291. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19292. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19293. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19294. BYTE bReserved[1024]; // 保留字节,留待扩展.
  19295. }DEV_EVENT_IVS_AUDIO_ABNORMALDETECTION_INFO;
  19296. ///@brief 事件类型 EVENT_IVS_TRAFFIC_RUNYELLOWLIGHT(交通违章-闯黄灯事件)对应数据块描述信息
  19297. typedef struct tagDEV_EVENT_TRAFFIC_RUNYELLOWLIGHT_INFO
  19298. {
  19299. int nChannelID; // 通道号
  19300. char szName[128]; // 事件名称
  19301. char bReserved1[4]; // 字节对齐
  19302. double PTS; // 时间戳(单位是毫秒)
  19303. NET_TIME_EX UTC; // 事件发生的时间
  19304. int nEventID; // 事件ID
  19305. int nLane; // 对应车道号
  19306. DH_MSG_OBJECT stuObject; // 车牌信息
  19307. DH_MSG_OBJECT stuVehicle; // 车身信息
  19308. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19309. int nLightState; // 红绿灯状态 0:未知 1:绿灯 2:红灯 3:黄灯
  19310. int nSpeed; // 车速,km/h
  19311. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  19312. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19313. BYTE byReserved[2];
  19314. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19315. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19316. NET_TIME_EX stYellowLightUTC; // 黄灯开始时间
  19317. unsigned int nYellowLightPeriod; // 黄灯周期间隔时间,单位秒
  19318. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19319. BYTE byRedLightMargin; // 黄灯容许间隔时间,单位:秒
  19320. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  19321. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  19322. BYTE bReserved[1024]; // 保留字节
  19323. EVENT_COMM_INFO stCommInfo; // 公共信息
  19324. } DEV_EVENT_TRAFFIC_RUNYELLOWLIGHT_INFO;
  19325. ///@brief 离岗的触发模式
  19326. typedef enum tagEM_LEAVEDETECTION_TRIGGER_MODE
  19327. {
  19328. EM_LEAVEDETECTION_TRIGGER_UNKNOEN, // 未知
  19329. EM_LEAVEDETECTION_TRIGGER_NOPERSON, // 无人
  19330. EM_LEAVEDETECTION_TRIGGER_LEAVE, // 离开
  19331. EM_LEAVEDETECTION_TRIGGER_STATIC, // 静止(睡岗)
  19332. EM_LEAVEDETECTION_TRIGGER_OUTPERSONLIMIT, // 不在允许值岗人数范围内(值岗人数异常)
  19333. }EM_LEAVEDETECTION_TRIGGER_MODE;
  19334. ///@brief 检测状态
  19335. typedef enum tagEM_LEAVEDETECTION_STATE
  19336. {
  19337. EM_LEAVEDETECTION_STATE_UNKNOWN = 0, // 未知
  19338. EM_LEAVEDETECTION_STATE_LEAVE, // 离岗
  19339. EM_LEAVEDETECTION_STATE_ON_THE_JOB, // 在岗
  19340. }EM_LEAVEDETECTION_STATE;
  19341. ///@brief 事件类型 EVENT_IVS_LEAVEDETECTION(离岗检测事件)对应数据块描述信息
  19342. typedef struct tagDEV_EVENT_IVS_LEAVE_INFO
  19343. {
  19344. int nChannelID; // 通道号
  19345. char szName[128]; // 事件名称
  19346. char bReserved1[4]; // 字节对齐
  19347. double PTS; // 时间戳(单位是毫秒)
  19348. NET_TIME_EX UTC; // 事件发生的时间
  19349. int nEventID; // 事件ID
  19350. DH_MSG_OBJECT stuObject; // 检测到的物体
  19351. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19352. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19353. int nDetectRegionNum; // 规则检测区域顶点数
  19354. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  19355. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19356. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19357. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  19358. EM_LEAVEDETECTION_TRIGGER_MODE emTriggerMode; // 离岗的触发模式
  19359. EM_LEAVEDETECTION_STATE emState; // 检测状态
  19360. BOOL bSceneImage; // stuSceneImage 是否有效
  19361. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  19362. char szUserName[32]; // 用户名称
  19363. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  19364. int nImageInfoNum; // 图片信息个数
  19365. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  19366. BYTE bReserved[50]; // 保留字节
  19367. } DEV_EVENT_IVS_LEAVE_INFO;
  19368. ///@brief 事件类型 EVENT_IVS_CLIMBDETECTION(攀高检测事件)对应数据块描述信息
  19369. typedef struct tagDEV_EVENT_IVS_CLIMB_INFO
  19370. {
  19371. int nChannelID; // 通道号
  19372. char szName[128]; // 事件名称
  19373. char bReserved1[4]; // 字节对齐
  19374. double PTS; // 时间戳(单位是毫秒)
  19375. NET_TIME_EX UTC; // 事件发生的时间
  19376. int nEventID; // 事件ID
  19377. DH_MSG_OBJECT stuObject; // 检测到的物体
  19378. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19379. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19380. int nDetectLineNum; // 规则检测线顶点数
  19381. DH_POINT DetectLine[DH_MAX_DETECT_LINE_NUM]; // 规则检测线
  19382. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19383. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19384. unsigned int nOccurrenceCount; // 事件触发累计次数
  19385. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  19386. BYTE bReserved[890]; // 保留字节
  19387. }DEV_EVENT_IVS_CLIMB_INFO;
  19388. ///@brief 事件类型 EVENT_IVS_MULTISCENESWITCH(多场景切换事件)对应数据块描述信息
  19389. typedef struct tagDEV_EVENT_IVS_MULTI_SCENE_SWICH_INFO
  19390. {
  19391. int nChannelID; // 通道号
  19392. char szName[128]; // 事件名称
  19393. char bReserved1[4]; // 字节对齐
  19394. double PTS; // 时间戳(单位是毫秒)
  19395. NET_TIME_EX UTC; // 事件发生的时间
  19396. int nEventID; // 事件ID
  19397. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19398. BYTE bReserved[1027]; // 保留字节
  19399. } DEV_EVENT_IVS_MULTI_SCENE_SWICH_INFO;
  19400. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PARKINGONYELLOWBOX(黄网格线抓拍事件)对应的数据块描述信息
  19401. typedef struct tagDEV_EVENT_TRAFFIC_PARKINGONYELLOWBOX_INFO
  19402. {
  19403. int nChannelID; // 通道号
  19404. char szName[128]; // 事件名称
  19405. char bReserved1[8]; // 字节对齐
  19406. DWORD PTS; // 时间戳(单位是毫秒)
  19407. NET_TIME_EX UTC; // 事件发生的时间
  19408. int nEventID; // 事件ID
  19409. int nLane; // 对应车道号
  19410. DH_MSG_OBJECT stuObject; // 检测到的物体
  19411. DH_MSG_OBJECT stuVehicle; // 车身信息
  19412. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19413. int nInterval1; // 第二张和第一张的延时时间,单位秒
  19414. int nInterval2; // 第三张和第二张的延时时间,单位秒
  19415. int nFollowTime; // 跟随时间,如果一辆车与前一辆车进入黄网格的时间差小于此值,就认为是跟车进入,跟车进入情况下如果停车则不算违章
  19416. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19417. BYTE byReserved[2];
  19418. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19419. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19420. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19421. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  19422. NET_GPS_INFO stuGPSInfo; // GPS信息
  19423. BYTE bReserved[984]; // 保留字节
  19424. EVENT_COMM_INFO stCommInfo; // 公共信息
  19425. }DEV_EVENT_TRAFFIC_PARKINGONYELLOWBOX_INFO;
  19426. ///@brief 停车场信息
  19427. typedef struct tagDEV_TRAFFIC_PARKING_INFO
  19428. {
  19429. int nFeaturePicAreaPointNum; // 特征图片区点个数
  19430. DH_POINT stFeaturePicArea[DH_MAX_POLYGON_NUM]; // 特征图片区信息
  19431. BYTE bReserved[572]; // 保留字节
  19432. }DEV_TRAFFIC_PARKING_INFO;
  19433. ///@brief 一位多车信息
  19434. typedef struct tagDEV_OCCUPIED_WARNING_INFO
  19435. {
  19436. char szParkingNo[32]; // 车位号
  19437. char szPlateNumber[5][64]; // 车牌号码
  19438. int nPlateNumber; // 车牌数量
  19439. BYTE bReserved[508]; // 预留字节
  19440. } DEV_OCCUPIED_WARNING_INFO;
  19441. ///@brief 停车方向
  19442. typedef enum tagEM_PARKINGSPACE_DIRECTION
  19443. {
  19444. EM_PARKINGSPACE_DIRECTION_UNKNOWN, // 未知
  19445. EM_PARKINGSPACE_DIRECTION_REVERSE, // 逆向
  19446. EM_PARKINGSPACE_DIRECTION_FORWARD, // 正向
  19447. }EM_PARKINGSPACE_DIRECTION;
  19448. ///@brief 禁停状态
  19449. typedef enum tagEM_FORBID_PARKING_STATUS
  19450. {
  19451. EM_FORBID_PARKING_STATUS_UNKNOWN, // 未知
  19452. EM_FORBID_PARKING_STATUS_NOT_FORBID,// 未禁止
  19453. EM_FORBID_PARKING_STATUS_FORBID, // 禁止
  19454. }EM_FORBID_PARKING_STATUS;
  19455. ///@brief 是否跨位
  19456. typedef enum tagEM_ACROSS_PARKING
  19457. {
  19458. EM_ACROSS_PARKING_UNKNOWN, // 未知
  19459. EM_ACROSS_PARKING_NO, // 未跨位
  19460. EM_ACROSS_PARKING_YES, // 跨位
  19461. } EM_ACROSS_PARKING;
  19462. ///@brief 车位抓拍触发类型
  19463. typedef enum tagEM_PARKING_TRIGGER_TYPE
  19464. {
  19465. EM_PARKING_TRIGGER_TYPE_UNKNOWN = -1, // 未知
  19466. EM_PARKING_TRIGGER_TYPE_NONMANUAL, // 非手动触发
  19467. EM_PARKING_TRIGGER_TYPE_MANUAL, // 手动触发
  19468. }EM_PARKING_TRIGGER_TYPE;
  19469. ///@brief 车位有车事件类型
  19470. typedef enum tagEM_PARKING_SPACE_TYPE
  19471. {
  19472. EM_PARKING_SPACE_TYPE_UNKNOWN = -1, // 未知
  19473. EM_PARKING_SPACE_TYPE_NORMAL, // 正常驶入
  19474. EM_PARKING_SPACE_TYPE_CHANGE, // 泊车变更事件
  19475. }EM_PARKING_SPACE_TYPE;
  19476. ///@brief 是否小车占大车位
  19477. typedef enum tagEM_SMALL_OCCUPY_LARGE
  19478. {
  19479. EM_SMALL_OCCUPY_LARGE_UNKNOWN = 0, // 未知
  19480. EM_SMALL_OCCUPY_LARGE_NO, // 未小车占大车位
  19481. EM_SMALL_OCCUPY_LARGE_YES, // 小车占大车位
  19482. }EM_SMALL_OCCUPY_LARGE;
  19483. ///@brief 是否为非允许名单车辆
  19484. typedef enum tagEM_NON_ALLOW_LIST_CAR
  19485. {
  19486. EM_NON_ALLOW_LIST_CAR_UNKNOWN = 0, // 未知
  19487. EM_NON_ALLOW_LIST_CAR_NO, // 允许名单车辆
  19488. EM_NON_ALLOW_LIST_CAR_YES, // 非允许名单车辆
  19489. }EM_NON_ALLOW_LIST_CAR;
  19490. ///@brief 是否为非新能源车辆
  19491. typedef enum tagEM_NON_NEW_ENERGY_CAR
  19492. {
  19493. EM_NON_NEW_ENERGY_CAR_UNKNOWN = 0, // 未知
  19494. EM_NON_NEW_ENERGY_CAR_NO, // 新能源车辆
  19495. EM_NON_NEW_ENERGY_CAR_YES, // 非新能源车辆
  19496. }EM_NON_NEW_ENERGY_CAR;
  19497. ///@brief 停车变更信息
  19498. typedef struct tagNET_PARKING_CHANGE_INFO
  19499. {
  19500. char szPreParkingNo[32]; // 变更前的车位
  19501. char szAfterParkingNo[32]; // 变更后的车位
  19502. UINT nStrandTime; // 变更车位停车时长,单位:秒
  19503. BYTE byReserved[252]; // 保留字节
  19504. }NET_PARKING_CHANGE_INFO;
  19505. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING(车位有车事件)对应的数据块描述信息
  19506. typedef struct tagDEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO
  19507. {
  19508. int nChannelID; // 通道号
  19509. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  19510. char bReserved1[8]; // 字节对齐
  19511. DWORD PTS; // 时间戳(单位是毫秒)
  19512. NET_TIME_EX UTC; // 事件发生的时间
  19513. int nEventID; // 事件ID
  19514. int nLane; // 对应车道号
  19515. DH_MSG_OBJECT stuObject; // 检测到的物体
  19516. DH_MSG_OBJECT stuVehicle; // 车身信息
  19517. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19518. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  19519. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19520. BYTE byReserved[2];
  19521. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19522. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19523. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19524. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  19525. int nParkingSpaceStatus; // 车位综合的状态,0-占用,1-空闲,2-压线
  19526. DEV_TRAFFIC_PARKING_INFO stTrafficParingInfo; // 停车场信息
  19527. BYTE byPlateTextSource; // 车牌识别来源, 0:本地算法识别,1:后端服务器算法识别
  19528. BYTE byReserved2[3]; // 字节对齐
  19529. char szParkingNum[32]; // 车位(地磁)编号,球机定制项目
  19530. DWORD dwPresetNum; // 球机预置位编号,球机定制项目
  19531. BOOL bParkingFault; // 车位是否有故障,球机定制项目
  19532. BYTE bReserved[364]; // 保留字节
  19533. EVENT_COMM_INFO stCommInfo; // 公共信息
  19534. NET_INTELLIGENCE_IMAGE_INFO stuParkingImage; // 车位图片信息
  19535. UINT nConfidence; // 车位置信度(0-100)
  19536. EM_ACROSS_PARKING emAcrossParking; // 是否跨位
  19537. EM_PARKINGSPACE_DIRECTION emParkingDirection; // 停车方向
  19538. EM_FORBID_PARKING_STATUS emForbidParkingStatus; // 禁停状态
  19539. EM_SMALL_OCCUPY_LARGE emSmallOccupyLarge; // 是否小车占大车位
  19540. EM_NON_ALLOW_LIST_CAR emNonAllowListCar; // 是否为非允许名单车辆
  19541. EM_NON_NEW_ENERGY_CAR emNonNewEnergyCar; // 是否为非新能源车辆
  19542. BYTE byReserved1[992]; // 为图片信息做预留字节,新增的字段请在该保留字节下面添加
  19543. EM_PARKING_TRIGGER_TYPE emTriggerType; // 触发类型
  19544. DEV_OCCUPIED_WARNING_INFO stuOccupiedWarningInfo; // 一位多车信息, 如果车位此前没有车占用, 不会带有本字段信息
  19545. char szAllParkingNo[12][32]; // 所有使能的车位号
  19546. int nParkingNoNum; // 使能车位号的个数
  19547. EM_PARKING_SPACE_TYPE emParkingSpaceType; // 车位有车的事件类型
  19548. NET_PARKING_CHANGE_INFO stuParkingChangeInfo; // 停车变更信息
  19549. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  19550. int nImageInfoNum; // 图片信息个数
  19551. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  19552. char szReserved[4]; // 字节对齐
  19553. }DEV_EVENT_TRAFFIC_PARKINGSPACEPARKING_INFO;
  19554. ///@brief 匹配到的车辆驶入信息
  19555. typedef struct tagDEV_MATCH_PARKING_INFO
  19556. {
  19557. char szParkingNo[32]; // 驶入的车位号
  19558. char szPlateNum[64]; // 驶入的车牌号信息
  19559. UINT nSimilarity; // 驶出车牌号码与匹配到的驶入车牌号码的相似度, 全匹配成功为100, 失败为0。
  19560. // 如果开启模糊匹配, 全匹配不为100则进行模糊匹配, 如下
  19561. // 1. 除汉字外,所有的数字和字母一样 为95
  19562. // 2. 有一位数字或字母不一样,则为90
  19563. // 3. 有两位数字或字母不一样,则为80
  19564. // 其他的情况则认为没有匹配到,则为0
  19565. BYTE bReserved[508]; // 保留字节
  19566. } DEV_MATCH_PARKING_INFO;
  19567. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING(车位无车事件)对应的数据块描述信息
  19568. typedef struct tagDEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_INFO
  19569. {
  19570. int nChannelID; // 通道号
  19571. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  19572. char bReserved1[8]; // 字节对齐
  19573. DWORD PTS; // 时间戳(单位是毫秒)
  19574. NET_TIME_EX UTC; // 事件发生的时间
  19575. int nEventID; // 事件ID
  19576. int nLane; // 对应车道号
  19577. DH_MSG_OBJECT stuObject; // 检测到的物体
  19578. DH_MSG_OBJECT stuVehicle; // 车身信息
  19579. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19580. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  19581. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19582. BYTE byReserved[2];
  19583. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19584. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19585. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19586. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  19587. DEV_TRAFFIC_PARKING_INFO stTrafficParingInfo; // 停车场信息
  19588. BYTE byPlateTextSource; // 车牌识别来源, 0:本地算法识别,1:后端服务器算法识别
  19589. BYTE byReserved2[3]; // 字节对齐
  19590. char szParkingNum[32]; // 车位(地磁)编号,球机定制项目
  19591. DWORD dwPresetNum; // 球机预置位编号,球机定制项目
  19592. BOOL bParkingFault; // 车位是否有故障,球机定制项目
  19593. NET_IMAGE_INFO_EX3 *pstuImageInfo; // 图片信息数组
  19594. int nImageInfoNum; // 图片信息个数
  19595. BYTE bReserved[364-POINTERSIZE]; // 保留字节
  19596. EVENT_COMM_INFO stCommInfo; // 公共信息
  19597. NET_INTELLIGENCE_IMAGE_INFO stuGlobalImage; // 全景大图信息
  19598. NET_INTELLIGENCE_IMAGE_INFO stuParkingImage; // 车位图片信息
  19599. UINT nConfidence; // 车位置信度(0-100)
  19600. BYTE byReserved1[1016]; // 为图片信息做预留字节,新增的字段请在该保留字节下面添加
  19601. EM_PARKING_TRIGGER_TYPE emTriggerType; // 触发方式
  19602. DEV_MATCH_PARKING_INFO stuMatchParkingInfo[5]; // 匹配到的车辆驶入信息
  19603. int nMatchParkingNum; // 匹配到的车辆驶入信息个数
  19604. char szAllParkingNo[12][32]; // 所有使能的车位号
  19605. int nParkingNoNum; // 使能车位号的个数
  19606. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  19607. }DEV_EVENT_TRAFFIC_PARKINGSPACENOPARKING_INFO;
  19608. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACEOVERLINE (车位压线事件)对应的数据块描述信息
  19609. typedef struct tagDEV_EVENT_TRAFFIC_PARKINGSPACEOVERLINE_INFO
  19610. {
  19611. int nChannelID; // 通道号
  19612. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  19613. DWORD PTS; // 时间戳(单位是毫秒)
  19614. NET_TIME_EX UTC; // 事件发生的时间
  19615. int nEventID; // 事件ID
  19616. int nLane; // 对应车道号
  19617. DH_MSG_OBJECT stuObject; // 检测到的物体
  19618. DH_MSG_OBJECT stuVehicle; // 车身信息
  19619. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19620. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  19621. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19622. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19623. BYTE byReserved1[2];
  19624. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19625. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19626. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  19627. DEV_TRAFFIC_PARKING_INFO stTrafficParingInfo; // 停车场信息
  19628. BYTE byReserved[384]; // 保留字节
  19629. EVENT_COMM_INFO stCommInfo; // 公共信息
  19630. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  19631. }DEV_EVENT_TRAFFIC_PARKINGSPACEOVERLINE_INFO;
  19632. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TURNLEFTAFTERSTRAIGHT (左转未礼让直行事件)对应的数据块描述信息
  19633. typedef struct tagDEV_EVENT_TURNLEFTAFTERSTRAIGHT_INFO
  19634. {
  19635. int nChannelID; // 通道号
  19636. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  19637. char Reserved[4]; // 保留字节对齐
  19638. double PTS; // 时间戳(单位是毫秒)
  19639. NET_TIME_EX UTC; // 事件发生的时间
  19640. DWORD nEventID; // 事件ID
  19641. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19642. DH_MSG_OBJECT stuObject; // 车牌信息
  19643. DH_MSG_OBJECT stuVehicle; // 车身信息
  19644. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 车辆信息
  19645. int nLane; // 对应车道号
  19646. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  19647. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19648. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19649. BYTE byReserved1[2];
  19650. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19651. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19652. NET_GPS_INFO stuGPSInfo; // GPS信息
  19653. BYTE byReserved[984]; // 保留字节
  19654. EVENT_COMM_INFO stCommInfo; // 公共信息
  19655. }DEV_EVENT_TURNLEFTAFTERSTRAIGHT_INFO;
  19656. ///@brief 事件类型 EVENT_IVS_TRAFFIC_BIGBENDSMALLTURN (大弯小转事件)对应的数据块描述信息
  19657. typedef struct tagDEV_EVENT_BIGBENDSMALLTURN_INFO
  19658. {
  19659. int nChannelID; // 通道号
  19660. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  19661. char Reserved[4]; // 保留字节对齐
  19662. double PTS; // 时间戳(单位是毫秒)
  19663. NET_TIME_EX UTC; // 事件发生的时间
  19664. DWORD nEventID; // 事件ID
  19665. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  19666. DH_MSG_OBJECT stuObject; // 车牌信息
  19667. DH_MSG_OBJECT stuVehicle; // 车身信息
  19668. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 车辆信息
  19669. int nLane; // 对应车道号
  19670. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  19671. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19672. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  19673. BYTE byReserved1[2];
  19674. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  19675. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  19676. BYTE byReserved[1024]; // 保留字节
  19677. EVENT_COMM_INFO stCommInfo; // 公共信息
  19678. }DEV_EVENT_BIGBENDSMALLTURN_INFO;
  19679. ///@brief 事件类型EVENT_IVS_ROAD_CONSTRUCTION (道路施工监测事件) 对应的数据块描述信息
  19680. typedef struct tagDEV_EVENT_ROAD_CONSTRUCTION_INFO
  19681. {
  19682. int nChannelID; // 通道号
  19683. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  19684. char Reserved[4]; // 保留字节对齐
  19685. double PTS; // 时间戳(单位是毫秒)
  19686. NET_TIME_EX UTC; // 事件发生的时间
  19687. DWORD nEventID; // 事件ID
  19688. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19689. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  19690. DH_RECT stuBoudingBox; // 施工位置包围盒,8192坐标系
  19691. BYTE byReserved[512]; // 保留字节
  19692. } DEV_EVENT_ROAD_CONSTRUCTION_INFO;
  19693. ///@brief 事件类型EVENT_IVS_ROAD_BLOCK (路障监测事件) 对应的数据块描述信息
  19694. typedef struct tagDEV_EVENT_ROAD_BLOCK_INFO
  19695. {
  19696. int nChannelID; // 通道号
  19697. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  19698. char Reserved[4]; // 保留字节对齐
  19699. double PTS; // 时间戳(单位是毫秒)
  19700. NET_TIME_EX UTC; // 事件发生的时间
  19701. DWORD nEventID; // 事件ID
  19702. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  19703. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  19704. DH_RECT stuBoudingBox; // 路障位置包围盒,8192坐标系
  19705. BYTE byReserved[512]; // 保留字节
  19706. } DEV_EVENT_ROAD_BLOCK_INFO;
  19707. ///@brief 事件类型 EVENT_IVS_INSTALL_CARDREADER (安装读卡器事件)对应的数据块描述信息
  19708. typedef struct tagDEV_EVENT_INSTALL_CARDREADER_INFO
  19709. {
  19710. int nChannelID; // 通道号
  19711. char szName[128]; // 事件名称
  19712. char Reserved[4]; // 保留字节对齐
  19713. double PTS; // 时间戳(单位是毫秒)
  19714. NET_TIME_EX UTC; // 事件发生的时间
  19715. int nEventID; // 事件ID
  19716. BYTE byReserved[1024]; // 保留字节,留待扩展
  19717. }DEV_EVENT_INSTALL_CARDREADER_INFO;
  19718. ///@brief 事件类型 EVENT_IVS_ACC_OFF_SNAP (车载设备断电前抓拍上传事件)对应的数据块描述信息
  19719. typedef struct tagDEV_EVENT_ACC_OFF_SNAP_INFO
  19720. {
  19721. int nChannelID; // 通道号
  19722. char szName[128]; // 事件名称
  19723. char Reserved[4]; // 保留字节对齐
  19724. double PTS; // 时间戳(单位是毫秒)
  19725. NET_TIME_EX UTC; // 事件发生的时间
  19726. int nEventID; // 事件ID
  19727. BYTE byReserved[1024]; // 保留字节,留待扩展
  19728. }DEV_EVENT_ACC_OFF_SNAP_INFO;
  19729. ///@brief 危险等级
  19730. typedef enum tagEM_DANGER_GRADE_TYPE
  19731. {
  19732. EM_DANGER_GRADE_UNKNOWN = -1, // 未知
  19733. EM_DANGER_GRADE_NORMAL, // 普通级别
  19734. EM_DANGER_GRADE_WARN, // 警示级别
  19735. EM_DANGER_GRADE_DANGER, // 危险级别
  19736. } EM_DANGER_GRADE_TYPE;
  19737. ///@brief 包裹信息
  19738. typedef struct tagNET_PACKAGE_INFO
  19739. {
  19740. EM_DANGER_GRADE_TYPE emDangerGrade; // 包裹危险等级, 一个包裹内有多个危险等级显示最高危等级
  19741. BYTE byReserved[128]; // 保留字节,留待扩展
  19742. } NET_PACKAGE_INFO;
  19743. ///@brief 物品类型
  19744. typedef enum tagEM_INSIDE_OBJECT_TYPE
  19745. {
  19746. EM_INSIDE_OBJECT_UNKNOWN, // 算法未识别物品
  19747. EM_INSIDE_OBJECT_KNIFE, // 刀具
  19748. EM_INSIDE_OBJECT_BOTTLELIQUID, // 瓶装液体
  19749. EM_INSIDE_OBJECT_GUN, // 枪支
  19750. EM_INSIDE_OBJECT_UMBRELLA, // 雨伞
  19751. EM_INSIDE_OBJECT_PHONE, // 手机
  19752. EM_INSIDE_OBJECT_NOTEBOOK, // 笔记本
  19753. EM_INSIDE_OBJECT_POWERBANK, // 充电宝
  19754. EM_INSIDE_OBJECT_SHOES, // 鞋子
  19755. EM_INSIDE_OBJECT_ROD, // 杠子
  19756. EM_INSIDE_OBJECT_METAL, // 金属
  19757. EM_INSIDE_OBJECT_EXPLOSIVE, // 爆炸物
  19758. EM_INSIDE_OBJECT_CONTAINERSPRAY, // 喷雾喷灌
  19759. EM_INSIDE_OBJECT_EXPLOSIVE_FIREWORKS, // 烟花爆竹
  19760. EM_INSIDE_OBJECT_LIGHTER, // 打火机
  19761. EM_INSIDE_OBJECT_STICK, // 警棍
  19762. EM_INSIDE_OBJECT_BRASSKNUCKLE, // 指虎
  19763. EM_INSIDE_OBJECT_HANDCUFFS, // 手铐
  19764. EM_INSIDE_OBJECT_IVORY, // 象牙
  19765. EM_INSIDE_OBJECT_BOOK, // 书籍
  19766. EM_INSIDE_OBJECT_CD, // 光盘
  19767. EM_INSIDE_OBJECT_HAMMERS, // 锤子
  19768. EM_INSIDE_OBJECT_PLIERS, // 钳子
  19769. EM_INSIDE_OBJECT_AXE, // 斧头
  19770. EM_INSIDE_OBJECT_SCREW_DRIVER, // 螺丝刀
  19771. EM_INSIDE_OBJECT_WRENCH, // 扳手
  19772. EM_INSIDE_OBJECT_ELECTRIC_SHOCK_STICK, // 电击棍
  19773. EM_INSIDE_OBJECT_THERMOS, // 保温杯
  19774. EM_INSIDE_OBJECT_GLASS_BOTTLES, // 玻璃杯
  19775. EM_INSIDE_OBJECT_PLASTIC_BOTTLE, // 塑料瓶
  19776. EM_INSIDE_OBJECT_IGNITION_OIL, // 打火机油
  19777. EM_INSIDE_OBJECT_NAIL_POLISH, // 指甲油
  19778. EM_INSIDE_OBJECT_BLUNT_INSTRUMENT, // 工具
  19779. EM_INSIDE_OBJECT_SCISSORS, // 剪刀
  19780. EM_INSIDE_OBJECT_ELECTRONIC, // 电子产品
  19781. EM_INSIDE_OBJECT_PISTOL, // 手枪
  19782. EM_INSIDE_OBJECT_FOLDINGKNIFE, // 折叠刀
  19783. EM_INSIDE_OBJECT_SHARPKNIFE, // 尖刀
  19784. EM_INSIDE_OBJECT_KITCHENKNIFE, // 菜刀
  19785. EM_INSIDE_OBJECT_UTILITYKNIFE, // 美工刀
  19786. EM_INSIDE_OBJECT_FIREWORKS, // 烟花
  19787. EM_INSIDE_OBJECT_FIRECRACKER, // 爆竹
  19788. EM_INSIDE_OBJECT_POWDER, // 粉末
  19789. EM_INSIDE_OBJECT_IMPENETERABLE_MATERALS, // 难穿透物品
  19790. } EM_INSIDE_OBJECT_TYPE;
  19791. ///@brief 物品信息
  19792. typedef struct tagNET_INSIDE_OBJECT
  19793. {
  19794. EM_DANGER_GRADE_TYPE emDangerGrade; // 物品危险等级
  19795. EM_INSIDE_OBJECT_TYPE emObjType; // 物品类型
  19796. UINT nSimilarity; // 相似度
  19797. NET_RECT stuBoundingBox; // 包围盒
  19798. char szObjectType[32]; // 自定义物品类型,emObjType为 EM_INSIDE_OBJECT_UNKNOWN 时使用
  19799. BYTE byReserved[76]; // 保留字节,留待扩展
  19800. } NET_INSIDE_OBJECT;
  19801. ///@brief X光机图片类型
  19802. typedef enum tagEM_XRAY_IMAGE_TYPE
  19803. {
  19804. EM_XRAY_IMAGE_TYPE_UNKNOWN = -1, // 未知
  19805. EM_XRAY_IMAGE_TYPE_COLOR, // 彩图
  19806. EM_XRAY_IMAGE_COLOR_TYPE_OVERLAY, // 彩色叠加图
  19807. }EM_XRAY_IMAGE_TYPE;
  19808. ///@brief X光机视角类型
  19809. typedef enum tagEM_XRAY_VIEW_TYPE
  19810. {
  19811. EM_XRAY_VIEW_TYPE_UNKNOWN = -1, // 未知
  19812. EM_XRAY_VIEW_TYPE_MASTER, // 主视角
  19813. EM_XRAY_VIEW_TYPE_SLAVE, // 从视角
  19814. }EM_XRAY_VIEW_TYPE;
  19815. ///@brief 图片列表
  19816. typedef struct tagNET_XRAY_IMAGE_INFO
  19817. {
  19818. EM_XRAY_VIEW_TYPE emViewType; // 视图类型
  19819. EM_XRAY_IMAGE_TYPE emImageType; // 图片类型
  19820. unsigned int nOffset; // 在二进制数据块中的偏移
  19821. unsigned int nLength; // 图片大小,单位:字节
  19822. BYTE byReserved[1024]; // 预留字节
  19823. }NET_XRAY_IMAGE_INFO;
  19824. ///@brief 客户自定义信息, X光机定制专用
  19825. typedef struct tagNET_XRAY_CUSTOM_INFO
  19826. {
  19827. EM_XRAY_VIEW_TYPE emViewType; // 视角类型
  19828. char szSerialNumber[128]; // 流水号
  19829. BYTE byReserved[124]; // 保留字节
  19830. } NET_XRAY_CUSTOM_INFO;
  19831. ///@brief 包裹产生方式
  19832. typedef enum tagEM_XRAY_PACKAGE_MODE
  19833. {
  19834. EM_XRAY_PACKAGE_MODE_UNKNOWN = -1, // 未知方式
  19835. EM_XRAY_PACKAGE_MODE_LOCAL, // 本地判图结果
  19836. EM_XRAY_PACKAGE_MODE_CENTRAL, // 集中判图模式中的本地预判结果
  19837. }EM_XRAY_PACKAGE_MODE;
  19838. ///@brief X光机关联图片类型
  19839. typedef enum tagEM_XRAY_RELATED_IMAGE_TYPE
  19840. {
  19841. EM_XRAY_RELATED_IMAGE_TYPE_UNKNOWN = -1, // 未知
  19842. EM_XRAY_RELATED_IMAGE_TYPE_LARGE_FACE, // 表示目标大图
  19843. EM_XRAY_RELATED_IMAGE_TYPE_SMALL_FACE, // 表示目标小图
  19844. EM_XRAY_RELATED_IMAGE_TYPE_PACKAGE_VISIBLE_LIGHT, // 表示包裹可见光图
  19845. }EM_XRAY_RELATED_IMAGE_TYPE;
  19846. ///@brief 关联图片
  19847. typedef struct tagNET_XRAY_RELATED_IMAGE_INFO
  19848. {
  19849. EM_XRAY_RELATED_IMAGE_TYPE emImageType; // 图片类型
  19850. UINT nOffset; // 在二进制数据块中的偏移
  19851. UINT nLength; // 图片大小,单位:字节
  19852. char byReserved[64]; // 预留字节
  19853. }NET_XRAY_RELATED_IMAGE_INFO;
  19854. ///@brief 条码可见光图
  19855. typedef struct tagNET_BAR_CODE_IMAGE
  19856. {
  19857. UINT nOffset; // 在二进制数据块中的偏移
  19858. UINT nLength; // 图片大小,单位:字节
  19859. char szResvered[248]; // 保留字节
  19860. }NET_BAR_CODE_IMAGE;
  19861. ///@brief 与包裹关联的单号的内容
  19862. typedef struct tagNET_BAR_CODE_INFO
  19863. {
  19864. int nCodeCount; // 条码个数
  19865. char szCode[32][128]; // 条码信息
  19866. NET_BAR_CODE_IMAGE stuImage; // 条码可见光图
  19867. char szReserved[256]; // 保留字节
  19868. }NET_BAR_CODE_INFO;
  19869. ///@brief 是否使用远程判图
  19870. typedef enum tagEM_XRAY_DETECTION_JUDGE_REMOTELY
  19871. {
  19872. EM_XRAY_DETECTION_JUDGE_REMOTELY_UNKNOWN = -1, // 未知, 当表示为未知时意为本地不送远程判图,集中判图时送到远程判图
  19873. EM_XRAY_DETECTION_JUDGE_REMOTELY_NOT_SEND_JUDGE, // 不送远端三方进行判图
  19874. EM_XRAY_DETECTION_JUDGE_REMOTELY_SEND_JUDGE, // 送远端三方进行判图
  19875. }EM_XRAY_DETECTION_JUDGE_REMOTELY;
  19876. ///@brief 事件类型EVENI_IVS_XRAY_DETECTION (X光检测事件)对应的数据块描述信息
  19877. typedef struct tagDEV_EVENT_XRAY_DETECTION_INFO
  19878. {
  19879. int nChannelID; // 通道号
  19880. char szName[128]; // 事件名称
  19881. char Reserved[4]; // 保留字节对齐
  19882. double PTS; // 时间戳(单位是毫秒)
  19883. NET_TIME_EX UTC; // 事件发生的时间
  19884. int nEventID; // 事件ID
  19885. EM_CLASS_TYPE emClassType; // 所属大类
  19886. NET_PACKAGE_INFO stuPacketInfo; // 包裹信息
  19887. char Reserved1[4]; // 保留字节对齐
  19888. UINT nObjectNum; // 主视角包裹内物品个数
  19889. NET_INSIDE_OBJECT stuInsideObj[MAX_INSIDEOBJECT_NUM]; // 主视角包裹内物品信息
  19890. UINT nSlaveViewObjectNum; // 从视角包裹内物品个数
  19891. NET_INSIDE_OBJECT stuSlaveViewInsideObj[MAX_INSIDEOBJECT_NUM];// 从视角包裹内物品信息
  19892. UINT nImageCount; // 图片数量
  19893. NET_XRAY_IMAGE_INFO stuImageInfo[8]; // 图片信息
  19894. UINT nViewCustomInfoNum; // 客户自定义信息个数
  19895. NET_XRAY_CUSTOM_INFO stuViewCustomInfo[4]; // 客户自定义信息, X光机定制专用
  19896. char szPackageTag[32]; // 包裹标识, 用来唯一标识一个包裹
  19897. EM_XRAY_PACKAGE_MODE emPackageMode; // 包裹产生方式
  19898. int nRelatedImageNum; // 关联图片数量
  19899. NET_XRAY_RELATED_IMAGE_INFO stuRelatedImageInfo[8]; // 关联图片
  19900. int nBarCodeCount; // 与包裹关联的单号的个数
  19901. NET_BAR_CODE_INFO stuBarCodeInfo[32]; // 与包裹关联的单号的内容
  19902. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  19903. EM_XRAY_DETECTION_JUDGE_REMOTELY emJudgeRemotely; // 是否使用远程判图
  19904. BYTE byReserved[368]; // 保留字节,留待扩展
  19905. } DEV_EVENT_XRAY_DETECTION_INFO;
  19906. ///@brief X光机关联图片类型
  19907. typedef enum tagEM_XRAY_IMAGELIST_TYPE
  19908. {
  19909. EM_XRAY_IMAGELIST_TYPE_UNKNOWN, // 未知
  19910. EM_XRAY_IMAGELIST_TYPE_ENERGY, // 能量图
  19911. EM_XRAY_IMAGELIST_TYPE_COLOR, // 彩色图
  19912. EM_XRAY_IMAGELIST_TYPE_COLOR_OVERLAY, // 彩色叠加图
  19913. EM_XRAY_IMAGELIST_TYPE_VISIBLE_LIGHT, // 可见光图
  19914. }EM_XRAY_IMAGELIST_TYPE;
  19915. ///@brief 图片位置列表
  19916. typedef struct tagNET_XRAY_IMAGE_LIST
  19917. {
  19918. EM_XRAY_IMAGELIST_TYPE emType; // 图片类型
  19919. UINT nOffset; // 在二进制数据块中的偏移
  19920. UINT nLength; // 图片大小,单位:字节
  19921. UINT nWorkDirID; // 工作目录ID
  19922. char szPath[128]; // 图片路径
  19923. UINT nFileID; // 文件ID
  19924. UINT nWidth; // 图片宽度
  19925. UINT nHeight; // 图片高度
  19926. UINT nXOffset; // 相对于包裹背景的x坐标
  19927. UINT nYOffset; // 相对于包裹背景的y坐标
  19928. char szReserved[128]; // 保留字节
  19929. }NET_XRAY_IMAGE_LIST;
  19930. ///@brief 包裹背景
  19931. typedef struct tagNET_XRAY_BACKGROUND_INFO
  19932. {
  19933. UINT nOffset; // 在二进制数据块中的偏移
  19934. UINT nLength; // 图片大小,单位:字节
  19935. UINT nWidth; // 图片宽度
  19936. UINT nHeight; // 图片高度
  19937. BYTE nPartFlag; // 该字段废弃,请使用NET_XRAY_CHANNEL_INFO_LIST下的nPartFlag
  19938. char szReserved1[3]; // 保留字节
  19939. char szReserved[124]; // 保留字节
  19940. }NET_XRAY_BACKGROUND_INFO;
  19941. ///@brief 分组安全等级
  19942. typedef enum tagEM_GROUP_GRADE_TYPE
  19943. {
  19944. EM_GROUP_GRADE_TYPE_UNKNOWN = -1, // 未知
  19945. EM_GROUP_GRADE_TYPE_NORMAL, // 普通级别
  19946. EM_GROUP_GRADE_TYPE_WARN, // 警示级别
  19947. EM_GROUP_GRADE_TYPE_DANGER, // 危险级别
  19948. } EM_GROUP_GRADE_TYPE;
  19949. ///@brief 包裹内危险物品信息
  19950. typedef struct tagNET_XRAY_INSIDE
  19951. {
  19952. UINT nID; // 物品ID
  19953. NET_RECT stuBoundingBox; // 物品框图坐标
  19954. EM_GROUP_GRADE_TYPE emGrade; // 物品危险等级
  19955. UINT nSimilarity; // 物品检测相似度
  19956. EM_INSIDE_OBJECT_TYPE emType; // 物品类型
  19957. EM_INSIDE_OBJECT_TYPE emSubType; // 物品子类型
  19958. EM_INSIDE_OBJECT_TYPE emGroupType; // 物品分组类型
  19959. char szReserved[128]; // 保留字节
  19960. }NET_XRAY_INSIDE;
  19961. ///@brief 包裹切包信息
  19962. typedef struct tagNET_XRAY_APPEAR_INFO
  19963. {
  19964. NET_RECT stuRect; // 切包时,包裹位置
  19965. TP_U64 nTimeMS; // 包裹切包的运行时刻,单位是ms
  19966. TP_U64 nUTCTimeMS; // 包裹切包的第一时间,即生成原始图完毕的时间戳(标准UTC时间),单位为ms
  19967. char szReserved[128]; // 保留字节
  19968. }NET_XRAY_APPEAR_INFO;
  19969. ///@brief 通道信息列表
  19970. typedef struct tagNET_XRAY_CHANNEL_INFO_LIST
  19971. {
  19972. UINT nChannel; // 通道号,从0开始
  19973. UINT nImageListNum; // 图片位置列表个数
  19974. NET_XRAY_IMAGE_LIST stuImageList[16]; // 图片位置列表
  19975. NET_XRAY_BACKGROUND_INFO stuBackGround; // 包裹背景
  19976. UINT nInsideNum; // 包裹内危险物品信息个数
  19977. NET_XRAY_INSIDE stuInside[16]; // 包裹内危险物品信息
  19978. NET_XRAY_APPEAR_INFO stuAppearInfo; // 包裹切包信息
  19979. BYTE nPartFlag; // 半包状态 0 表示未知; 1 表示完整包裹; 2 表示不完整包裹
  19980. char szReserved1[3]; // 保留字节
  19981. char szReserved[252]; // 保留字节
  19982. }NET_XRAY_CHANNEL_INFO_LIST;
  19983. ///@brief 融合视角的图片信息
  19984. typedef struct tagNET_XRAY_ALLCHANNEL_INFO_LIST
  19985. {
  19986. NET_XRAY_IMAGE_LIST stuAllImageList[16]; // 图片位置列表
  19987. UINT nAllImageListNum; // 图片位置列表个数
  19988. char szReserved[256]; // 保留字节
  19989. }NET_XRAY_ALLCHANNEL_INFO_LIST;
  19990. ///@brief 事件类型EVENI_IVS_XRAY_DETECT_PACKAGE (X光机检测包裹事件)对应的数据块描述信息
  19991. typedef struct tagNET_EVENT_XRAY_DETECT_PACKAGE_INFO
  19992. {
  19993. char szName[128]; // 事件名称
  19994. double PTS; // 时间戳(单位是毫秒)
  19995. NET_TIME_EX UTC; // 事件发生的时间
  19996. int nChannelID; // 通道号
  19997. UINT nEventID; // 事件ID
  19998. EM_CLASS_TYPE emClassType; // 所属大类
  19999. UINT nPackageID; // 包裹ID
  20000. char szModelName[512]; // 模型名称
  20001. NET_XRAY_CHANNEL_INFO_LIST stuChannelInfoList[32]; // 通道信息列表
  20002. UINT nChannelInfoListNum; // 通道信息列表个数
  20003. UINT nRelatedImageNum; // 关联图片个数
  20004. NET_XRAY_RELATED_IMAGE_INFO stuRelatedImageInfo[32]; // 关联图片
  20005. NET_XRAY_ALLCHANNEL_INFO_LIST stuAllChannelInfoList; // 融合视角的图片信息
  20006. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  20007. int nAction; // 0:脉冲,1:开始, 2:停止
  20008. unsigned int UTCMS; // UTC时间对应的毫秒数
  20009. BYTE byReserved[1016]; // 保留字节,留待扩展
  20010. } NET_EVENT_XRAY_DETECT_PACKAGE_INFO;
  20011. ///@brief 事件类型 EVENT_IVS_NOTCLEARCAR(未清车告警)对应的数据块描述信息
  20012. typedef struct tagDEV_EVENT_NOTCLEARCAR_INFO
  20013. {
  20014. int nChannelID; // 通道号
  20015. NET_TIME_EX UTC; // 事件发生的时间
  20016. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20017. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20018. BYTE byReserved1[2];
  20019. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  20020. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20021. BYTE byReserved[1024]; // 保留字节
  20022. EVENT_COMM_INFO stCommInfo; // 公共信息
  20023. }DEV_EVENT_NOTCLEARCAR_INFO;
  20024. ///@brief 事件类型 EVENT_IVS_SOSALEART(sos求救报警)对应的数据块描述信息
  20025. typedef struct tagDEV_EVENT_SOSALEART_INFO
  20026. {
  20027. int nChannelID; // 通道号
  20028. NET_TIME_EX UTC; // 事件发生的时间
  20029. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20030. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20031. BYTE byReserved1[2];
  20032. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  20033. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20034. BYTE byReserved[1024]; // 保留字节
  20035. EVENT_COMM_INFO stCommInfo; // 公共信息
  20036. }DEV_EVENT_SOSALEART_INFO;
  20037. ///@brief 事件类型 EVENT_IVS_OVERLOAD(超载抓图)对应的数据块描述信息
  20038. typedef struct tagDEV_EVENT_OVERLOAD_INFO
  20039. {
  20040. int nChannelID; // 通道号
  20041. NET_TIME_EX UTC; // 事件发生的时间
  20042. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20043. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20044. BYTE byReserved1[2];
  20045. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  20046. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20047. BYTE byReserved[1024]; // 保留字节
  20048. EVENT_COMM_INFO stCommInfo; // 公共信息
  20049. }DEV_EVENT_OVERLOAD_INFO;
  20050. ///@brief 事件类型 EVENT_IVS_NONWORKINGTIME(非工作时间告警)对应的数据块描述信息
  20051. typedef struct tagDEV_EVENT_NONWORKINGTIME_INFO
  20052. {
  20053. int nChannelID; // 通道号
  20054. NET_TIME_EX UTC; // 事件发生的时间
  20055. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20056. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20057. BYTE byReserved1[2];
  20058. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  20059. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20060. BYTE byReserved[1024]; // 保留字节
  20061. EVENT_COMM_INFO stCommInfo; // 公共信息
  20062. }DEV_EVENT_NONWORKINGTIME_INFO;
  20063. ///@brief 事件类型 EVENT_IVS_TRAFFIC_HIGH_BEAM(远光灯违章事件)对应数据块描述信息
  20064. typedef struct tagDEV_EVENT_TRAFFIC_HIGH_BEAM_INFO
  20065. {
  20066. int nChannelID; // 通道号
  20067. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20068. BYTE byReserved1[4]; // 保留字节对齐
  20069. double PTS; // 时间戳(单位是毫秒)
  20070. int nEventID; // 事件ID
  20071. NET_TIME_EX UTC; // 事件发生的时间
  20072. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20073. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20074. BYTE byReserved2[3]; // 保留字节对齐
  20075. DH_MSG_OBJECT stuObject; // 车牌信息
  20076. DH_MSG_OBJECT stuVehicle; // 车身信息
  20077. int nLane; // 车道号
  20078. int nSequence; // 抓拍结束状态,3/2/1表示抓拍正常结束,0表示抓拍异常结束
  20079. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 车辆信息
  20080. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  20081. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20082. EVENT_COMM_INFO stuCommInfo; // 公共信息
  20083. BYTE byReserved[1024]; // 保留字节
  20084. }DEV_EVENT_TRAFFIC_HIGH_BEAM_INFO;
  20085. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TRUCKFORBID(货车禁止事件)对应的数据块描述信息
  20086. typedef struct tagDEV_EVENT_TRAFFICTRUCKFORBID_INFO
  20087. {
  20088. int nChannel; // 通道号
  20089. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20090. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同
  20091. int nCountInGroup; // 一个事件组内的抓拍张数
  20092. int nIndexInGroup; // 一个事件组内的抓拍序号
  20093. double PTS; // 时间戳(单位是毫秒)
  20094. NET_TIME_EX UTC; // 事件发生的时间
  20095. int UTCMS; // UTC时间对应的毫秒数
  20096. int nEventID; // 事件ID
  20097. DH_MSG_OBJECT stuObject; // 车牌信息
  20098. DH_MSG_OBJECT stuVehicle; // 车身信息
  20099. int nLane; // 车道号
  20100. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  20101. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 车辆信息
  20102. EVENT_COMM_INFO stCommInfo; // 公共信息
  20103. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20104. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  20105. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20106. BYTE byReserved[1016]; // 保留字节
  20107. } DEV_EVENT_TRAFFICTRUCKFORBID_INFO;
  20108. ///@brief 事件类型 EVENT_IVS_DRIVINGWITHOUTCARD(无人驾驶报警事件)对应的数据块描述信息
  20109. typedef struct tagDEV_EVENT_DRIVINGWITHOUTCARD_INFO
  20110. {
  20111. int nChannelID; // 通道号
  20112. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20113. BYTE byReserved[3]; // 保留对齐字节
  20114. double PTS; // 时间戳(单位是毫秒)
  20115. NET_TIME_EX UTC; // 事件发生的时间
  20116. DWORD nEventID; // 事件ID
  20117. BYTE byReserved1[1024]; // 保留字节
  20118. }DEV_EVENT_DRIVINGWITHOUTCARD_INFO;
  20119. ///@brief 事件类型 EVENT_IVS_HIGHSPEED(车辆超速报警事件)对应的数据块描述信息
  20120. typedef struct tagDEV_EVENT_HIGHSPEED_INFO
  20121. {
  20122. int nChannelID; // 通道号
  20123. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  20124. NET_TIME_EX UTC; // 事件发生的时间
  20125. BYTE byReserved[4]; // 保留字节
  20126. double dbPTS; // 时间戳(单位是毫秒)
  20127. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  20128. int nSpeedLimit; // 车连限速值(km/h)
  20129. int nCurSpeed; // 当前车辆速度(km/h)
  20130. int nMaxSpeed; // 最高速度(Km/h)
  20131. NET_TIME_EX stuStartTime; // 开始时间,nAction为2时上报此字段
  20132. BYTE byReserved1[1024]; // 保留字节
  20133. }DEV_EVENT_HIGHSPEED_INFO;
  20134. ///@brief 全局拥挤人群密度列表(圆形)信息
  20135. typedef struct tagNET_CROWD_LIST_INFO
  20136. {
  20137. DH_POINT stuCenterPoint; // 中心点坐标,8192坐标系
  20138. unsigned int nRadiusNum; // 半径像素点个数
  20139. BYTE byReserved[1024]; // 保留字节
  20140. }NET_CROWD_LIST_INFO;
  20141. ///@brief 人数超限的报警区域ID列表信息
  20142. typedef struct tagNET_REGION_LIST_INFO
  20143. {
  20144. unsigned int nRegionID; // 配置的区域下标
  20145. unsigned int nPeopleNum; // 区域内人数统计值
  20146. char szName[32]; // 配置的名称
  20147. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 配置的检测区域坐标
  20148. int nDetectRegionNum; // 配置的检测区域坐标个数
  20149. BYTE byReserved[908]; // 保留字节
  20150. }NET_REGION_LIST_INFO;
  20151. ///@brief 报警业务类型
  20152. typedef enum tagEM_ALARM_TYPE
  20153. {
  20154. EM_ALARM_TYPE_UNKNOWN, // 未知类型
  20155. EM_ALARM_TYPE_CROWD_DENSITY, // 拥挤人群密度报警
  20156. EM_ALARM_TYPE_NUMBER_EXCEED, // 人数超限报警
  20157. EM_ALARM_TYPE_CROWD_DENSITY_AND_NUMBER_EXCEED, // 拥挤人群密度报警和人数超限报警
  20158. }EM_ALARM_TYPE;
  20159. #define RECT_POINT 2 // 表示矩形的2个点(左上角与右下角)
  20160. #define MAX_CROWD_RECT_LIST 5 // 矩形描述信息的最大个数
  20161. ///@brief 全局拥挤人群密度列表(矩形)信息
  20162. typedef struct tagNET_CROWD_RECT_LIST_INFO
  20163. {
  20164. DH_POINT stuRectPoint[RECT_POINT]; // 矩形的左上角点与右下角点,8192坐标系,表示矩形的人群密度矩形框
  20165. BYTE byReserved[32]; // 保留字节
  20166. }NET_CROWD_RECT_LIST_INFO;
  20167. ///@brief 事件类型 EVENT_IVS_CROWDDETECTION(人群密度检测事件)对应的数据块描述信息
  20168. typedef struct tagDEV_EVENT_CROWD_DETECTION_INFO
  20169. {
  20170. int nChannelID; // 通道号
  20171. int nEventID; // 事件ID
  20172. double PTS; // 时间戳(单位是毫秒)
  20173. NET_TIME_EX UTC; // 事件发生的时间
  20174. int nEventAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  20175. EM_ALARM_TYPE emAlarmType; // 报警业务类型
  20176. char szName[MAX_CROWD_DETECTION_NAME_LEN]; // 事件名称
  20177. int nCrowdListNum; // 返回的全局拥挤人群密度列表个数 (圆形描述)
  20178. int nRegionListNum; // 返回的人数超限的报警区域ID列表个数
  20179. NET_CROWD_LIST_INFO stuCrowdList[MAX_CROWD_LIST_NUM]; // 全局拥挤人群密度列表信息(圆形描述)
  20180. NET_REGION_LIST_INFO stuRegionList[MAX_REGION_LIST_NUM]; // 人数超限的报警区域ID列表信息
  20181. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  20182. int nCrowdRectListNum; // 返回的全局拥挤人群密度列表个数 (矩形描述)
  20183. NET_CROWD_RECT_LIST_INFO stuCrowdRectList[MAX_CROWD_RECT_LIST]; // 全局拥挤人群密度列表信息(矩形描述)
  20184. int nGlobalPeopleNum; // 检测区全局总人数
  20185. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  20186. int nImageInfoNum; // 图片信息个数
  20187. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  20188. BYTE byReserved[680]; // 保留扩展字节
  20189. }DEV_EVENT_CROWD_DETECTION_INFO;
  20190. ///@brief 事件类型
  20191. typedef struct tagNET_EVENT_TYPE
  20192. {
  20193. BOOL bIsAlarmEvent; // 报警事件 TRUE:报警事件
  20194. BOOL bIsViolation; // 违章事件 TRUE:违章事件
  20195. BYTE byReserved[24]; // 保留
  20196. }NET_EVENT_TYPE;
  20197. ///@brief 事件类型 EVENT_IVS_TRAFFIC_CARDISTANCESHORT (车间距过小报警事件)对应的数据块描述信息
  20198. typedef struct tagDEV_EVENT_TRAFFIC_CARDISTANCESHORT_INFO
  20199. {
  20200. int nChannelID; // 通道号
  20201. BYTE byReserved[4]; // 保留字节,为了对齐
  20202. char szName[MAX_EVENT_NAME_LEN]; // 事件名称
  20203. double dbPTS; // 时间戳(单位是毫秒)
  20204. NET_TIME_EX UTC; // 事件发生的时间
  20205. int nEventID; // 事件ID
  20206. DH_MSG_OBJECT stuObject; // 车牌信息
  20207. DH_MSG_OBJECT stuVehicle; // 车身信息
  20208. int nLane; // 车道号
  20209. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  20210. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 车辆信息
  20211. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20212. BYTE byReserved1[992]; // 保留字节
  20213. EVENT_COMM_INFO stCommInfo; // 公共信息
  20214. NET_EVENT_TYPE stuEventType; // 事件类型
  20215. }DEV_EVENT_TRAFFIC_CARDISTANCESHORT_INFO;
  20216. ///@brief 事件类型 EVENT_IVS_TRAFFIC_QUEUEJUMP (车辆加塞事件)对应的数据块描述信息
  20217. typedef struct tagDEV_EVENT_TRAFFIC_QUEUEJUMP_INFO
  20218. {
  20219. int nChannelID; // 通道号
  20220. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20221. char Reserved[4]; // 保留字节对齐
  20222. double PTS; // 时间戳(单位是毫秒)
  20223. NET_TIME_EX UTC; // 事件发生的时间
  20224. DWORD nEventID; // 事件ID
  20225. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20226. DH_MSG_OBJECT stuObject; // 车牌信息
  20227. DH_MSG_OBJECT stuVehicle; // 车身信息
  20228. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 车辆信息
  20229. int nLane; // 对应车道号
  20230. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  20231. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20232. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20233. BYTE byReserved1[2];
  20234. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  20235. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20236. EVENT_COMM_INFO stCommInfo; // 公共信息
  20237. UINT nEventType; // 事件类型掩码,bit0表示报警事件,bit1表示违章事件。若bit0和bit1都置位则既是报警事件又是违章事件,默认bit0置位,报警事件
  20238. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  20239. BYTE byReserved[1020]; // 保留字节
  20240. } DEV_EVENT_TRAFFIC_QUEUEJUMP_INFO;
  20241. ///@brief 事件类型 EVENT_IVS_PEDESTRIAN_JUNCTION (行人卡口事件) 对应的数据块描述信息
  20242. typedef struct tagDEV_EVENT_PEDESTRIAN_JUNCTION_INFO
  20243. {
  20244. int nChannelID; // 通道号
  20245. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20246. int nGroupID; // 事件组ID, 同一个人抓拍过程内nGroupID相同
  20247. int nCountInGroup; // 一个事件组内的抓拍张数
  20248. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  20249. double PTS; // 事件戳(单位是毫秒)
  20250. NET_TIME_EX UTC; // 事件发生的时间
  20251. int UTCMS; // UTC时间对应的毫秒数
  20252. int nEventID; // 事件ID
  20253. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20254. DH_MSG_OBJECT stuObject; // 目标信息
  20255. int nLane; // 人行道号
  20256. int nSequence; // 表示抓拍序号,如3/2/1,1表示抓拍结束,0表示异常结束
  20257. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  20258. BOOL bHasNonMotor; // stuNonMotor 字段是否有效
  20259. DH_MSG_OBJECT stuVehicle; // 行人信息
  20260. char szReserved[344-POINTERSIZE]; // 保留字节
  20261. } DEV_EVENT_PEDESTRIAN_JUNCTION_INFO;
  20262. ///@brief 事件类型 EVENT_IVS_VEHICLE_SUSPICIOUSCAR (嫌疑车辆事件)对应的数据块描述信息
  20263. typedef struct tagDEV_EVENT_VEHICLE_SUSPICIOUSCAR_INFO
  20264. {
  20265. int nChannelID; // 通道号
  20266. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20267. char Reserved[4]; // 保留字节对齐
  20268. double PTS; // 时间戳(单位是毫秒)
  20269. NET_TIME_EX UTC; // 事件发生的时间
  20270. DWORD nEventID; // 事件ID
  20271. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20272. DH_MSG_OBJECT stuObject; // 车牌信息
  20273. DH_MSG_OBJECT stuVehicle; // 车身信息
  20274. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  20275. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20276. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20277. BYTE byReserved1[2];
  20278. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  20279. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20280. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  20281. BYTE byReserved[4096]; // 保留字节
  20282. }DEV_EVENT_VEHICLE_SUSPICIOUSCAR_INFO;
  20283. ///@brief 行人信息
  20284. typedef struct tagEVENT_VEHICLE_INFO
  20285. {
  20286. char szCategory[MAX_CATEGORY_LEN]; // 物体类型,Passerby表示行人
  20287. BYTE byReserved[64]; // 预留字节
  20288. }EVENT_VEHICLE_INFO;
  20289. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PEDESTRAIN(交通行人事件)对应数据块描述信息
  20290. typedef struct tagDEV_EVENT_TRAFFIC_PEDESTRAIN_INFO
  20291. {
  20292. int nChannelID; // 通道号
  20293. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20294. char bReserved1[8]; // 字节对齐
  20295. DWORD PTS; // 时间戳(单位是毫秒)
  20296. NET_TIME_EX UTC; // 事件发生的时间
  20297. int nEventID; // 事件ID
  20298. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20299. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20300. DWORD dwSnapFlagMask; // 抓图标志(按位),0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
  20301. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20302. BYTE bReserved2[2];
  20303. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20304. int nLane; // 对应车道号
  20305. DH_MSG_OBJECT stuObject; // 检测到的物体
  20306. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  20307. EVENT_TRAFFIC_CAR_PART_INFO stuTrafficCarPartInfo; // 交通车辆部分信息
  20308. EVENT_VEHICLE_INFO stuVehicle; // 行人信息
  20309. BYTE bReserved[252]; // 保留字节
  20310. EVENT_COMM_INFO stCommInfo; // 公共信息
  20311. }DEV_EVENT_TRAFFIC_PEDESTRAIN_INFO;
  20312. ///@brief 事件类型 EVENT_IVS_TRAFFIC_THROW(交通抛洒物品事件)对应数据块描述信息
  20313. typedef struct tagDEV_EVENT_TRAFFIC_THROW_INFO
  20314. {
  20315. int nChannelID; // 通道号
  20316. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20317. char bReserved1[8]; // 字节对齐
  20318. DWORD PTS; // 时间戳(单位是毫秒)
  20319. NET_TIME_EX UTC; // 事件发生的时间
  20320. int nEventID; // 事件ID
  20321. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20322. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20323. DWORD dwSnapFlagMask; // 抓图标志(按位),0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
  20324. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20325. BYTE bReserved2[2];
  20326. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20327. int nLane; // 对应车道号
  20328. DH_MSG_OBJECT stuObject; // 检测到的物体
  20329. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  20330. EVENT_TRAFFIC_CAR_PART_INFO stuTrafficCarPartInfo; // 交通车辆部分信息
  20331. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  20332. BYTE bReserved[340]; // 保留字节
  20333. EVENT_COMM_INFO stCommInfo; // 公共信息
  20334. }DEV_EVENT_TRAFFIC_THROW_INFO;
  20335. ///@brief 事件类型 EVENT_IVS_TRAFFIC_IDLE(交通空闲事件)对应数据块描述信息
  20336. typedef struct tagDEV_EVENT_TRAFFIC_IDLE_INFO
  20337. {
  20338. int nChannelID; // 通道号
  20339. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20340. char bReserved1[8]; // 字节对齐
  20341. DWORD PTS; // 时间戳(单位是毫秒)
  20342. NET_TIME_EX UTC; // 事件发生的时间
  20343. int nEventID; // 事件ID
  20344. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20345. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20346. DWORD dwSnapFlagMask; // 抓图标志(按位),0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout"
  20347. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20348. BYTE bReserved2[2];
  20349. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20350. int nLane; // 对应车道号
  20351. BYTE bReserved[1024]; // 保留字节
  20352. EVENT_COMM_INFO stCommInfo; // 公共信息
  20353. }DEV_EVENT_TRAFFIC_IDLE_INFO;
  20354. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TURNRIGHTAFTERSTRAIGHT(右转不礼让横向直行)对应数据块描述信息
  20355. typedef struct tagDEV_EVENT_TURNRIGHTAFTERSTRAIGHT_INFO
  20356. {
  20357. int nChannelID; // 通道号
  20358. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20359. char bReserved[4]; // 字节保留
  20360. double dPTS; // 时间戳(单位是毫秒)
  20361. NET_TIME_EX stuUTC; // 事件发生的时间
  20362. int nEventID; // 事件ID
  20363. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20364. DH_MSG_OBJECT stuObject; // 车牌信息
  20365. DH_MSG_OBJECT stuVehicle; // 车身信息
  20366. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 车辆信息
  20367. int nLane; // 车道号
  20368. int nSequence; // 抓拍序号, 如3, 2, 1, 1表示抓拍结束, 0表示异常结束
  20369. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20370. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20371. BYTE byReserved1[2];
  20372. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  20373. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20374. BYTE byReserved[1012]; // 保留字节
  20375. EVENT_COMM_INFO stCommInfo; // 公共信息
  20376. }DEV_EVENT_TURNRIGHTAFTERSTRAIGHT_INFO;
  20377. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TURNRIGHTAFTERPEOPLE(右转不礼让直行行人)对应数据块描述信息
  20378. typedef struct tagDEV_EVENT_TURNRIGHTAFTERPEOPLE_INFO
  20379. {
  20380. int nChannelID; // 通道号
  20381. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20382. char bReserved[4]; // 字节保留
  20383. double dPTS; // 时间戳(单位是毫秒)
  20384. NET_TIME_EX stuUTC; // 事件发生的时间
  20385. int nEventID; // 事件ID
  20386. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20387. DH_MSG_OBJECT stuObject; // 车牌信息
  20388. DH_MSG_OBJECT stuVehicle; // 车身信息
  20389. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 车辆信息
  20390. int nLane; // 车道号
  20391. int nSequence; // 抓拍序号,如3, 2, 1, 1表示抓拍正常结束,0表示抓拍异常结束
  20392. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20393. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20394. BYTE byReserved1[2];
  20395. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  20396. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  20397. BYTE byReserved[1012]; // 保留字节
  20398. EVENT_COMM_INFO stCommInfo; // 公共信息
  20399. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  20400. }DEV_EVENT_TURNRIGHTAFTERPEOPLE_INFO;
  20401. #define MAX_DRIVING_DIR_NUM 16 // 车道行驶方向最大个数
  20402. ///@brief 车辆行驶方向
  20403. typedef enum tagNET_FLOWSTAT_DIRECTION
  20404. {
  20405. DRIVING_DIR_UNKNOW = 0 , //兼容之前
  20406. DRIVING_DIR_APPROACH , //上行,即车辆离设备部署点越来越近
  20407. DRIVING_DIR_LEAVE , //下行,即车辆离设备部署点越来越远
  20408. }NET_FLOWSTAT_DIRECTION;
  20409. ///@brief 道路方向
  20410. typedef enum tagNET_ROAD_DIRECTION
  20411. {
  20412. ROAD_DIR_UNKNOW, // 未知
  20413. ROAD_DIR_TURNLEFT, // 左转
  20414. ROAD_DIR_TURNRIGHT, // 右转
  20415. ROAD_DIR_STRAIGHT, // 直行
  20416. ROAD_DIR_UTURU, // 掉头
  20417. ROAD_DIR_NUM,
  20418. }NET_ROAD_DIRECTION;
  20419. ///@brief 车辆流量统计车辆行驶方向信息
  20420. typedef struct tagNET_TRAFFIC_FLOWSTAT_INFO_DIR
  20421. {
  20422. NET_FLOWSTAT_DIRECTION emDrivingDir; //行驶方向
  20423. char szUpGoing[FLOWSTAT_ADDR_NAME]; //上行地点
  20424. char szDownGoing[FLOWSTAT_ADDR_NAME]; //下行地点
  20425. BYTE reserved[32]; //保留字节
  20426. }NET_TRAFFIC_FLOWSTAT_INFO_DIR;
  20427. ///@brief 道路拥挤状况
  20428. typedef enum tagNET_TRAFFIC_JAM_STATUS
  20429. {
  20430. JAM_STATUS_UNKNOW =0 , //未知
  20431. JAM_STATUS_CLEAR , //通畅
  20432. JAM_STATUS_JAMMED , //拥堵
  20433. JAM_STATUS_SLOWED , //拥堵
  20434. }NET_TRAFFIC_JAM_STATUS;
  20435. ///@brief 道路等级
  20436. typedef enum tagNET_TRAFFIC_ROAD_RANK
  20437. {
  20438. ROAD_RANK_UNKNOWN =0 ,
  20439. ROAD_RANK_RAPID =1 , //快速路
  20440. ROAD_RANK_TRUNK =2 , //主干路
  20441. ROAD_RANK_SUBTRUNK =3 , //次干路
  20442. ROAD_RANK_BRANCH =4 , //支路
  20443. }NET_TRAFFIC_ROAD_RANK;
  20444. ///@brief 车道流量信息属性
  20445. typedef enum tagNET_EM_FLOW_ATTRIBUTE
  20446. {
  20447. EM_FLOW_ATTRIBUTE_UNKNOWN = 0,
  20448. EM_FLOW_ATTRIBUTE_FLOW_DETECTION, // 流量监测
  20449. EM_FLOW_ATTRIBUTE_QUEUE_DETECTION, // 排队检测
  20450. }NET_EM_FLOW_ATTRIBUTE;
  20451. ///@brief 车辆排队长度溢出状态
  20452. typedef enum tagNET_EM_OVER_FLOW_STATE
  20453. {
  20454. EM_OVER_FLOW_STATE_UNKNOWN = 0, // 状态未知
  20455. EM_OVER_FLOW_STATE_NOT_OVERFLOW, // 未溢出
  20456. EM_OVER_FLOW_STATE_OVERFLOW // 溢出
  20457. }NET_EM_OVER_FLOW_STATE;
  20458. ///@brief 空间占有率统计信息
  20459. typedef struct tagNET_SPACE_OCCUPY_RATIO_MULTI
  20460. {
  20461. UINT nID; // 空间占有率统计区域的ID
  20462. float fSpaceOccupyRatio; // 对应ID的空间占有率,即按百分率计量的车辆长度总和除以时间间隔内车辆平均行驶距离
  20463. char szReserverd[8]; // 保留字节
  20464. }NET_SPACE_OCCUPY_RATIO_MULTI;
  20465. ///@brief 流量状态
  20466. typedef struct tagNET_TRAFFIC_FLOW_STATE
  20467. {
  20468. int nLane; // 车道号
  20469. DWORD dwState; // 状态值 若emJamState字段为有效值(不为 JAM_STATUS_UNKNOW) ,则dwState字段无效
  20470. // 1- 流量过大
  20471. // 2- 流量过大恢复
  20472. // 3- 正常
  20473. // 4- 流量过小
  20474. // 5- 流量过小恢复
  20475. DWORD dwFlow; // 流量值, 单位: 辆
  20476. DWORD dwPeriod; // 流量值对应的统计时间, 单位:分钟。与dwPeriodByMili一起使用。
  20477. NET_TRAFFIC_FLOWSTAT_INFO_DIR stTrafficFlowDir; // 车道方向信息
  20478. int nVehicles; // 通过车辆总数
  20479. float fAverageSpeed; // 平均车速,单位km/h
  20480. float fAverageLength; // 平均车长,单位米
  20481. float fTimeOccupyRatio; // 时间占有率,即单位时间内通过断面的车辆所用时间的总和占单位时间的比例
  20482. float fSpaceOccupyRatio; // 空间占有率,即按百分率计量的车辆长度总和除以时间间隔内车辆平均行驶距离
  20483. float fSpaceHeadway; // 车头间距,相邻车辆之间的距离,单位米/辆
  20484. float fTimeHeadway; // 车头时距,单位秒/辆
  20485. float fDensity; // 车辆密度,每公里的车辆数,单位辆/km
  20486. int nOverSpeedVehicles; // 超速车辆数
  20487. int nUnderSpeedVehicles; // 低速车辆数
  20488. int nLargeVehicles; // 大车交通量(9米<车长<12米),辆/单位时间
  20489. int nMediumVehicles; // 中型车交通量(6米<车长<9米),辆/单位时间
  20490. int nSmallVehicles; // 小车交通量(4米<车长<6米),辆/单位时间,
  20491. int nMotoVehicles; // 摩托交通量(微型车,车长<4米),辆/单位时间,
  20492. int nLongVehicles; // 超长交通量(车长>=12米),辆/单位时间,
  20493. int nVolume; // 交通量, 辆/单位时间, 某时间间隔通过车道、道路或其他通道上一点的车辆数,常以1小时计,
  20494. int nFlowRate; // 流率小车当量,辆/小时, 车辆通过车道、道路某一断面或某一路段的当量小时流量
  20495. int nBackOfQueue; // 排队长度,单位:米, 从信号交叉口停车线到上游排队车辆末端之间的距离(建议废掉 改用dBackOfQueue下面)
  20496. int nTravelTime; // 旅行时间,单位:秒, 车辆通过某一条道路所用时间。包括所有停车延误
  20497. int nDelay; // 延误,单位:秒,驾驶员、乘客或行人花费的额外的行程时间
  20498. BYTE byDirection[MAX_DRIVING_DIR_NUM]; // 车道方向,详见NET_ROAD_DIRECTION
  20499. BYTE byDirectionNum; // 车道行驶方向个数
  20500. BYTE reserved1[3]; // 字节对齐
  20501. NET_TRAFFIC_JAM_STATUS emJamState; // 道路拥挤状况 若此字段为有效值(不为 JAM_STATUS_UNKNOW) ,则以此字段为准, dwState字段无效
  20502. /* 按车辆类型统计交通量 */
  20503. int nPassengerCarVehicles; // 客车交通量(辆/单位时间)
  20504. int nLargeTruckVehicles; // 大货车交通量(辆/单位时间)
  20505. int nMidTruckVehicles; // 中货车交通量(辆/单位时间)
  20506. int nSaloonCarVehicles; // 轿车交通量(辆/单位时间)
  20507. int nMicrobusVehicles; // 面包车交通量(辆/单位时间)
  20508. int nMicroTruckVehicles; // 小货车交通量(辆/单位时间)
  20509. int nTricycleVehicles; // 三轮车交通量(辆/单位时间)
  20510. int nMotorcycleVehicles; // 摩托车交通量(辆/单位时间)
  20511. int nPasserbyVehicles; // 行人交通量(辆/单位时间)
  20512. NET_TRAFFIC_ROAD_RANK emRank; // 道路等级
  20513. int nState; // 流量状态
  20514. // 1- 流量过大(拥堵)
  20515. // 2- 流量过大恢复(略堵)
  20516. // 3- 正常
  20517. // 4- 流量过小(通畅)
  20518. // 5- 流量过小恢复(良好)
  20519. BOOL bOccupyHeadCoil; // 车头虚拟线圈是否被占用 TURE表示占用,FALSE表示未占用
  20520. BOOL bOccupyTailCoil; // 车尾虚拟线圈是否被占用 TURE表示占用,FALSE表示未占用
  20521. BOOL bStatistics; // 流量数据是否有效 TURE表示有效,FALSE表示无效
  20522. int nLeftVehicles; // 左转车辆总数,单位:分钟
  20523. int nRightVehicles; // 右转车辆总数,单位:分钟
  20524. int nStraightVehicles; // 直行车辆总数,单位:分钟
  20525. int nUTurnVehicles; // 掉头车辆总数,单位:分钟
  20526. DH_POINT stQueueEnd; // 每个车道的最后一辆车坐标,采用8192坐标系
  20527. double dBackOfQueue; // 排队长度,单位:米, 从信号交叉口停车线到上游排队车辆末端之间的距离
  20528. DWORD dwPeriodByMili; // 流量值的毫秒时间,值不超过60000,和dwPeriod一起使用,流量值总时间:dwPeriod*60*1000+dwPeriodByMili(单位:毫秒)
  20529. int nBusVehicles; // 公交车交通量(辆/单位时间)
  20530. int nMPVVehicles; // MPV交通量(辆/单位时间)
  20531. int nMidPassengerCarVehicles; // 中客车交通量(辆/单位时间)
  20532. int nMiniCarriageVehicles; // 微型轿车交通量(辆/单位时间)
  20533. int nOilTankTruckVehicles; // 油罐车交通量(辆/单位时间)
  20534. int nPickupVehicles; // 皮卡车交通量(辆/单位时间)
  20535. int nSUVVehicles; // SUV交通量(辆/单位时间)
  20536. int nSUVorMPVVehicles; // SUV或者MPV交通量(辆/单位时间)
  20537. int nTankCarVehicles; // 槽罐车交通量(辆/单位时间)
  20538. int nUnknownVehicles; // 未知车辆交通量(辆/单位时间)
  20539. NET_EM_FLOW_ATTRIBUTE emCustomFlowAttribute; // 车道流量信息属性
  20540. int nRoadFreeLength; // 道路空闲长度,例:如设定路段长度为100米,实际检测到排队长度为30米,那么道路空闲长度就为70米,单位:米
  20541. NET_EM_OVER_FLOW_STATE emOverflowState; // 溢出状态。例:如给当前路段设定允许排队长度阀值,实际排队长度超过阀值后就判定当前时刻该路段有溢出。
  20542. int nQueueVehicleNum; // 排队车辆数,单位:辆
  20543. int nSpaceOccupyRatioMultiCount; // 空间占有率统计个数
  20544. NET_SPACE_OCCUPY_RATIO_MULTI stuSpaceOccupyRatioMulti[32]; // 空间占有率统计信息
  20545. UINT nTotalStopNum; // 停车次数,周期内该车道内所有目标的总停车次数,单位:次
  20546. UINT nTotalDelayTime; // 延误时间,周期内该车道内所有目标的总延误时间,单位:毫秒
  20547. UINT nTotalNum; // 目标总数量,周期内进入该车道内所有目标总数量,单位 辆
  20548. float fAverageStopNum; // 平均停车次数,周期内该车道所有目标的平均停车次数。单位:次
  20549. float fAverageDelayTime; // 平均延误时间,周期内该车道所有目标的平均延误时间。单位:毫秒
  20550. float fFlowSaturationRatio; // 流量饱和度,该车道内的流量饱和度
  20551. float fMaxQueueLen; // 最大排队长度,周期内最大排队长度,单位:米
  20552. float fQueueStartingPoint; // 排队开始位置,排队时队首距设备的位置,以设备方向为正,负数表示队首在设备后方,单位:米
  20553. float fQueueFinishingPoint; // 排队结束位置,排队时队尾距设备的位置,以设备方向为正,负数表示队尾在设备后方,单位:米
  20554. char szSpaceOccupyNum[64]; // 空间占有目标个数,即区域车辆数,该车道内指定区域的车辆数目,支持车道内多区域统计,不同区域车辆数使用|符号分隔。
  20555. BYTE reserved[92]; // 保留字节
  20556. }NET_TRAFFIC_FLOW_STATE;
  20557. ///@brief 交通流量事件信息trafficflowstatinfo 对应结构体
  20558. typedef struct tagNET_TRAFFICFLOWSTATINFO
  20559. {
  20560. DH_TRAFFICFLOWSTAT stuTrafficFlowStat; // 交通流量状态
  20561. double dbBackOfQueue; // 排队长度
  20562. NET_TRAFFIC_ROAD_RANK emRank; // 道路等级
  20563. int nState; // 流量状态
  20564. // 1- 流量过大(拥堵)
  20565. // 2- 流量过大恢复(略堵)
  20566. // 3- 正常
  20567. // 4- 流量过小(通畅)
  20568. // 5- 流量过小恢复(良好)
  20569. BYTE reserved[1024]; // 保留字节
  20570. }NET_TRAFFICFLOWSTATINFO;
  20571. ///@brief 事件类型 EVENT_IVS_TRAFFIC_FLOWSTATE(交通流量事件)对应数据块描述信息
  20572. typedef struct tagDEV_EVENT_TRAFFIC_FLOW_STATE
  20573. {
  20574. int nChannelID; // 通道号
  20575. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20576. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  20577. char bReserved1[4]; // 字节对齐
  20578. DWORD PTS; // 时间戳(单位是毫秒)
  20579. NET_TIME_EX UTC; // 事件发生的时间
  20580. int nEventID; // 事件ID
  20581. int nSequence; // 序号
  20582. int nStateNum; // 流量状态数量
  20583. NET_TRAFFIC_FLOW_STATE stuStates[DH_MAX_LANE_NUM]; // 流量状态, 每个车道对应数组中一个元素
  20584. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  20585. int nStopVehiclenum; // 静止车辆数,当前时刻检测范围内车速小于某个阀值的车辆数,单位:辆
  20586. int nDetectionAreaVehicleNum; // 车辆总数,当前时刻检测范围内检测到的所有车道内的车辆总数,单位:辆
  20587. BYTE bReserved[884]; // 保留字节
  20588. }DEV_EVENT_TRAFFIC_FLOW_STATE;
  20589. ///@brief 事件类型EVENT_IVS_VIDEOSTATIC(视频静态检测事件)对应数据块描述信息,
  20590. typedef struct tagDEV_EVENT_ALARM_VIDEOSTATIC_INFO
  20591. {
  20592. int nChannelID; // 通道号
  20593. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20594. char bReserved1[8]; // 字节对齐
  20595. DWORD PTS; // 时间戳(单位是毫秒)
  20596. NET_TIME_EX UTC; // 事件发生的时间
  20597. int nEventID; // 事件ID
  20598. EM_ALARM_VIDEO_STATIC_MODE emMode; // 设备报警的模式
  20599. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20600. BYTE bReserved[1027]; // 保留字节
  20601. }DEV_EVENT_ALARM_VIDEOSTATIC_INFO;
  20602. ///@brief 事件类型EVENT_IVS_VIDEOTIMING(视频定时检测时间)对应数据块描述信息
  20603. typedef struct tagDEV_EVENT_ALARM_VIDEOTIMING_INFO
  20604. {
  20605. int nChannelID; // 通道号
  20606. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20607. char bReserved1[8]; // 字节对齐
  20608. DWORD PTS; // 时间戳(单位是毫秒)
  20609. NET_TIME_EX UTC; // 事件发生的时间
  20610. int nEventID; // 事件ID
  20611. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  20612. BYTE bReserved[1027]; // 保留字节
  20613. }DEV_EVENT_ALARM_VIDEOTIMING_INFO;
  20614. ///@brief 事件源信息结构
  20615. typedef struct tagDEV_SRC_INFO
  20616. {
  20617. char szSrcEvent[DH_COMMON_STRING_32];// 事件源
  20618. NET_TIME_EX stSrcTime; // 事件源发生的时间
  20619. int iSrcChannel; // 事件源发生的通道号
  20620. BYTE reserved[512]; // 保留字节
  20621. }DEV_SRC_INFO;
  20622. ///@brief 事件类型EVENT_IVS_LINKSD(LinkSD事件)对应的数据块描述信息
  20623. typedef struct tagDEV_EVENT_LINK_SD
  20624. {
  20625. /*公共字段*/
  20626. int nChannelID; // 通道号
  20627. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20628. char bReserved1[8]; // 字节对齐
  20629. DWORD PTS; // 时间戳(单位是毫秒)
  20630. NET_TIME_EX UTC; // 事件发生的时间
  20631. int nEventID; // 事件ID
  20632. /*事件对应字段*/
  20633. DEV_SRC_INFO *pstSrcInfo; // 事件源信息
  20634. NET_TIME_EX stStartTime; // 预置点到达的时间
  20635. NET_TIME_EX stEndTime; //预置点结束的时间
  20636. int iPresetID; //联动球机转到的对应预置点
  20637. BYTE reserved[512]; //保留字节
  20638. }DEV_EVENT_LINK_SD;
  20639. ///@brief 事件类型EVENT_IVS_FLOWRATE(流量使用情况事件)对应的数据块描述信息
  20640. typedef struct tagDEV_EVENT_FLOWRATE_INFO
  20641. {
  20642. /*公共字段*/
  20643. int nChannelID; // 通道号
  20644. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20645. char bReserved1[8]; // 字节对齐
  20646. double dbPTS; // 时间戳(单位是毫秒)
  20647. NET_TIME_EX stuTime; // 事件发生的时间
  20648. int nEventID; // 事件ID
  20649. /*事件对应字段*/
  20650. unsigned int nFlowRate; // 传输流量的值(MB)
  20651. BYTE reserved[1024]; // 保留字节
  20652. } DEV_EVENT_FLOWRATE_INFO;
  20653. ///@brief 事件类型 EVENT_IVS_CITIZENIDCARD(证件信息读取事件)对应数据块描述信息
  20654. typedef struct tagDEV_EVENT_ALARM_CITIZENIDCARD_INFO
  20655. {
  20656. int nChannelID; // 通道号
  20657. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20658. char bReserved1[8]; // 字节对齐
  20659. DWORD PTS; // 时间戳(单位是毫秒)
  20660. NET_TIME_EX UTC; // 事件发生的时间
  20661. int nEventID; // 事件ID
  20662. /*以上为公共字段*/
  20663. int nGroupID; // nGroupID事件组ID,同一物体抓拍过程内nGroupID相同
  20664. int nCountInGroup; // nCountInGroup一个事件组内的抓拍张数
  20665. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号
  20666. char szCitizen[DH_COMMON_STRING_64]; // 姓名
  20667. EM_CITIZENIDCARD_SEX_TYPE emSex; // 性别
  20668. int nECType; // 民族
  20669. // 0 无效数据
  20670. // 1 汉族
  20671. // 2 蒙古族
  20672. // 3 回族
  20673. // 4 藏族
  20674. // 5 维吾尔族
  20675. // 6 苗族
  20676. // 7 彝族
  20677. // 8 壮族
  20678. // 9 布依族
  20679. // 10 朝鲜族
  20680. // 11 满族
  20681. // 12 侗族
  20682. // 13 瑶族
  20683. // 14 白族
  20684. // 15 土家族
  20685. // 16 哈尼族
  20686. // 17 哈萨克族
  20687. // 18 傣族
  20688. // 19 黎族
  20689. // 20 傈僳族
  20690. // 21 佤族
  20691. // 22 畲族
  20692. // 23 高山族
  20693. // 24 拉祜族
  20694. // 25 水族
  20695. // 26 东乡族
  20696. // 27 纳西族
  20697. // 28 景颇族
  20698. // 29 柯尔克孜族
  20699. // 30 土族
  20700. // 31 达斡尔族
  20701. // 32 仫佬族
  20702. // 33 羌族
  20703. // 34 布朗族
  20704. // 35 撒拉族
  20705. // 36 毛南族
  20706. // 37 仡佬族
  20707. // 38 锡伯族
  20708. // 39 阿昌族
  20709. // 40 普米族
  20710. // 41 塔吉克族
  20711. // 42 怒族
  20712. // 43 乌孜别克族
  20713. // 44 俄罗斯族
  20714. // 45 鄂温克族
  20715. // 46 德昂族
  20716. // 47 保安族
  20717. // 48 裕固族
  20718. // 49 京族
  20719. // 50 塔塔尔族
  20720. // 51 独龙族
  20721. // 52 鄂伦春族
  20722. // 53 赫哲族
  20723. // 54 门巴族
  20724. // 55 珞巴族
  20725. // 56 基诺族
  20726. // 57 穿青族
  20727. NET_TIME stuBirth; // 出生日期
  20728. char szAddress[DH_COMMON_STRING_256]; // 住址
  20729. char szNumber[DH_COMMON_STRING_64]; // 证件号
  20730. char szAuthority[DH_COMMON_STRING_256]; // 签发机关
  20731. NET_TIME stuStart; // 起始日期
  20732. BOOL bLongTimeValidFlag; // 该值为 TRUE, 截止日期 表示长期有效,此时 stuEnd 值无意义
  20733. // 该值为 FALSE, 此时 截止日期 查看 stuEnd 值
  20734. NET_TIME stuEnd; // 截止日期,bLongTimeValidFlag 为 FALSE 时有效
  20735. char szReversed[1024]; // 保留字节
  20736. }DEV_EVENT_ALARM_CITIZENIDCARD_INFO;
  20737. ///@brief 事件类型 EVENT_IVS_PICINFO(图片信息事件)对应数据块描述信息
  20738. typedef struct tagDEV_EVENT_ALARM_PIC_INFO
  20739. {
  20740. int nChannelID; // 通道号
  20741. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20742. char bReserved1[8]; // 字节对齐
  20743. DWORD PTS; // 时间戳(单位是毫秒)
  20744. NET_TIME_EX UTC; // 事件发生的时间(车载设备不支持)
  20745. int nEventID; // 事件ID
  20746. /*以上为公共字段*/
  20747. NET_TIME_EX stuTime; // 事件发生的时间, (设备时间, 不一定是utc时间)
  20748. DWORD dwEventType; // 事件类型
  20749. DWORD dwSpeed; // 车速,单位km/h
  20750. DWORD dwSpeedHighLine; // 高速上限报警值, 单位km/h
  20751. DWORD dwDisk; // 磁盘号
  20752. DWORD dwCluster; // 簇号
  20753. DWORD dwPartition; // 分区号
  20754. char szSnapAddr[DH_COMMON_STRING_128]; // 抓图地点, 有效64字节
  20755. char szPicID[DH_COMMON_STRING_32]; // 图片唯一ID
  20756. char szPlate[DH_COMMON_STRING_16]; // 车牌
  20757. char szReversed[2000]; // 保留字节
  20758. }DEV_EVENT_ALARM_PIC_INFO;
  20759. ///@brief 图片类型
  20760. typedef enum tagEM_ACCESS_CTL_IMAGE_TYPE
  20761. {
  20762. EM_ACCESS_CTL_IMAGE_UNKNOWN = -1, // 未知
  20763. EM_ACCESS_CTL_IMAGE_LOCAL, // 本地目标图库
  20764. EM_ACCESS_CTL_IMAGE_SCENE, // 拍摄场景抠图
  20765. EM_ACCESS_CTL_IMAGE_FACE, // 目标抠图
  20766. EM_ACCESS_CTL_IMAGE_INFRARED, // 红外抓图
  20767. EM_ACCESS_CTL_IMAGE_COMPANION, // 陪同人员抓图
  20768. EM_ACCESS_CTL_IMAGE_HEAT, // 热图
  20769. }EM_ACCESS_CTL_IMAGE_TYPE;
  20770. ///@brief 图片信息
  20771. typedef struct tagDEV_ACCESS_CTL_IMAGE_INFO
  20772. {
  20773. EM_ACCESS_CTL_IMAGE_TYPE emType; // 图片类型
  20774. UINT nOffSet; // 二进制块偏移字节
  20775. UINT nLength; // 图片大小
  20776. UINT nWidth; // 图片宽度(单位:像素)
  20777. UINT nHeight; // 图片高度(单位:像素)
  20778. NET_RECT stuBoundingBox; // 包围盒
  20779. BYTE byReserved[48]; // 保留字节
  20780. }DEV_ACCESS_CTL_IMAGE_INFO;
  20781. ///@brief 定制人员信息
  20782. typedef struct tagDEV_ACCESS_CTL_CUSTOM_WORKER_INFO
  20783. {
  20784. NET_ACCESSCTLCARD_SEX emSex; // 性别
  20785. char szRole[MAX_COMMON_STRING_32]; // 角色
  20786. char szProjectNo[MAX_COMMON_STRING_32]; // 项目ID
  20787. char szProjectName[MAX_COMMON_STRING_64]; // 项目名称
  20788. char szBuilderName[MAX_COMMON_STRING_64]; // 施工单位全称
  20789. char szBuilderID[MAX_COMMON_STRING_32]; // 施工单位ID
  20790. char szBuilderType[MAX_COMMON_STRING_32]; // 施工单位类型
  20791. char szBuilderTypeID[MAX_COMMON_STRING_8]; // 施工单位类别ID
  20792. char szPictureID[MAX_COMMON_STRING_64]; // 人员照片ID
  20793. char szContractID[MAX_COMMON_STRING_16]; // 原合同系统合同编号
  20794. char szWorkerTypeID[MAX_COMMON_STRING_8]; // 工种ID
  20795. char szWorkerTypeName[MAX_COMMON_STRING_32]; // 工种名称
  20796. BOOL bPersonStatus; // 人员状态, TRUE:启用, FALSE:禁用
  20797. BYTE byReserved[256]; // 保留字节
  20798. }DEV_ACCESS_CTL_CUSTOM_WORKER_INFO;
  20799. ///@brief 事件类型 EVENT_IVS_ACCESS_CTL(门禁事件)对应数据块描述信息
  20800. typedef struct tagDEV_EVENT_ACCESS_CTL_INFO
  20801. {
  20802. int nChannelID; // 门通道号
  20803. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20804. char bReserved1[4]; // 字节对齐
  20805. double PTS; // 时间戳(单位是毫秒)
  20806. NET_TIME_EX UTC; // 事件发生的时间
  20807. int nEventID; // 事件ID
  20808. DH_MSG_OBJECT stuObject; // 检测到的物体
  20809. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  20810. NET_ACCESS_CTL_EVENT_TYPE emEventType; // 门禁事件类型
  20811. BOOL bStatus; // 刷卡结果,TRUE表示成功,FALSE表示失败
  20812. NET_ACCESSCTLCARD_TYPE emCardType; // 卡类型
  20813. NET_ACCESS_DOOROPEN_METHOD emOpenMethod; // 开门方式
  20814. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  20815. char szPwd[DH_MAX_CARDPWD_LEN]; // 密码
  20816. char szReaderID[DH_COMMON_STRING_32]; // 门读卡器ID
  20817. char szUserID[DH_COMMON_STRING_64]; // 开门用户
  20818. char szSnapURL[DH_COMMON_STRING_128]; // 抓拍照片存储地址
  20819. int nErrorCode; // 开门操作码,配合 bStatus 使用
  20820. // 0x00 没有错误
  20821. // 0x10 未授权
  20822. // 0x11 卡挂失或注销
  20823. // 0x12 没有该门权限
  20824. // 0x13 开门模式错误
  20825. // 0x14 有效期错误
  20826. // 0x15 防反潜模式
  20827. // 0x16 胁迫报警未打开
  20828. // 0x17 门常闭状态
  20829. // 0x18 AB互锁状态
  20830. // 0x19 巡逻卡
  20831. // 0x1A 设备处于闯入报警状态
  20832. // 0x20 时间段错误
  20833. // 0x21 假期内开门时间段错误
  20834. // 0x23 卡逾期
  20835. // 0x30 需要先验证有首卡权限的卡片
  20836. // 0x40 卡片正确,输入密码错误
  20837. // 0x41 卡片正确,输入密码超时
  20838. // 0x42 卡片正确,输入信息错误
  20839. // 0x43 卡片正确,输入信息超时
  20840. // 0x44 信息正确,输入密码错误
  20841. // 0x45 信息正确,输入密码超时
  20842. // 0x50 组合开门顺序错误
  20843. // 0x51 组合开门需要继续验证
  20844. // 0x60 验证通过,控制台未授权
  20845. // 0x61 卡片正确,目标错误
  20846. // 0x62 卡片正确,目标超时
  20847. // 0x63 重复进入
  20848. // 0x64 未授权,需要后端平台识别
  20849. // 0x65 体温过高
  20850. // 0x66 未戴口罩
  20851. // 0x67 健康码获取失败
  20852. // 0x68 黄码禁止通行
  20853. // 0x69 红码禁止通行
  20854. // 0x6a 健康码无效
  20855. // 0x6b 绿码验证通过
  20856. // 0x6e 绿码,行程码非绿码
  20857. // 0x70 获取健康码信息
  20858. // 0x71 校验证件信息(平台下发对应证件号的校验结果)
  20859. // 0xA8 未佩戴安全帽(定制)
  20860. // 0xB1 授权信息不足,待补充
  20861. // 0xB2 中心化互锁
  20862. int nPunchingRecNo; // 刷卡记录集中的记录编号
  20863. int nNumbers; // 抓图张数
  20864. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  20865. BYTE byReserved[3]; // 字节对齐
  20866. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  20867. NET_ATTENDANCESTATE emAttendanceState; // 考勤状态
  20868. char szClassNumber[MAX_CLASS_NUMBER_LEN]; // 班级(定制,废弃,建议用szClassNumberEx)
  20869. char szPhoneNumber[MAX_PHONENUMBER_LEN]; // 电话(定制)
  20870. char szCardName[DH_MAX_CARDNAME_LEN]; // 卡命名
  20871. UINT uSimilarity; // 目标识别相似度,范围为0~100
  20872. DEV_ACCESS_CTL_IMAGE_INFO stuImageInfo[6]; // 图片信息
  20873. int nImageInfoCount; // 图片信息数量
  20874. char szCitizenIDNo[20]; // 证件号
  20875. UINT nGroupID; // 事件组ID
  20876. int nCompanionCardCount; // 陪同者卡号个数
  20877. char szCompanionCards[MAX_COMPANION_CARD_NUM][DH_MAX_CARDINFO_LEN]; // 陪同者卡号信息(废弃,使用 stuCompanionInfo )
  20878. DEV_ACCESS_CTL_CUSTOM_WORKER_INFO stuCustomWorkerInfo; // 定制人员信息
  20879. EM_CARD_STATE emCardState; // 当前事件是否为采集卡片
  20880. char szSN[32]; // 设备序列号
  20881. EM_HAT_STYLE emHatStyle; // 帽子类型
  20882. EM_UNIFIED_COLOR_TYPE emHatColor; // 帽子颜色
  20883. EM_LIFT_CALLER_TYPE emLiftCallerType; // 梯控方式触发者
  20884. BOOL bManTemperature; // 人员温度信息是否有效
  20885. NET_MAN_TEMPERATURE_INFO stuManTemperatureInfo; // 人员温度信息, bManTemperature 为TRUE时有效
  20886. char szCitizenName[256]; // 证件姓名
  20887. int nCompanionInfo; // 陪同人员 stuCompanionInfo 个数
  20888. NET_COMPANION_INFO stuCompanionInfo[12]; // 陪同人员信息
  20889. EM_MASK_STATE_TYPE emMask; // 口罩状态(EM_MASK_STATE_UNKNOWN、EM_MASK_STATE_NOMASK、EM_MASK_STATE_WEAR 有效)
  20890. UINT nFaceIndex; // 一人多脸的目标序号
  20891. BOOL bClassNumberEx; // szClassNumberEx 是否有效,为TRUE时,szClassNumberEx 有效
  20892. char szClassNumberEx[512]; // 班级(定制)
  20893. char szDormitoryNo[64]; // 宿舍号(定制)
  20894. char szStudentNo[64]; // 学号(定制)
  20895. EM_USER_TYPE emUserType; // 用户类型( EM_USER_TYPE_ORDINARY 至 EM_USER_TYPE_DISABLED 有效 )
  20896. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 UTC 字段
  20897. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  20898. char szQRCode[512]; // 二维码信息
  20899. char szCompanyName[200]; // 公司名称
  20900. int nScore; // 目标质量评分
  20901. EM_FACE_CHECK emFaceCheck; // 刷卡开门时,门禁后台校验目标是否是同一个人(定制)
  20902. EM_QRCODE_IS_EXPIRED emQRCodeIsExpired; // 二维码是否过期。默认值0
  20903. EM_QRCODE_STATE emQRCodeState; // 二维码状态
  20904. NET_TIME stuQRCodeValidTo; // 二维码截止日期
  20905. UINT nBlockId; // 上报事件数据序列号从1开始自增
  20906. char szSection[64]; // 部门名称
  20907. char szWorkClass[256]; // 工作班级
  20908. EM_TEST_ITEMS emTestItems; // 测试项目
  20909. NET_TEST_RESULT stuTestResult; // ESD阻值测试结果
  20910. char szDeviceID[128]; // 门禁设备编号
  20911. char szUserUniqueID[128]; // 用户唯一表示ID
  20912. BOOL bUseCardNameEx; // 是否使用卡命名扩展
  20913. char szCardNameEx[128]; // 卡命名扩展
  20914. int nHSJCResult; //核酸检测报告结果 -1: 未知 0: 阳性 1: 阴性 2: 未检测 3: 过期
  20915. NET_VACCINE_INFO stuVaccineInfo; // 新冠疫苗接种信息
  20916. NET_TRAVEL_INFO stuTravelInfo; // 行程码信息
  20917. char szTrafficPlate[32]; // 车牌
  20918. char szQRCodeEx[2048]; //国康码项目,用来上传大二维码内容
  20919. char szRecordUrl[128]; // 设备开门录制15-30s的视频, 上报事件中通知录制视频的地址,视频名以编号和时间命名.
  20920. NET_HSJC_INFO stuHSJCInfo; // 核酸信息
  20921. NET_ANTIGEN_INFO stuAntigenInfo; // 抗原检测信息
  20922. char szHealthGreenStatus[20]; // 个人健康状态 绿码:"Green" 红码:"Red" 黄码:"Yellow" 橙:"Orange" 未知:"None"
  20923. char szCitizenIDAddress[108]; // 住址
  20924. UINT nCitizenIDEC; // 民族(参照DEV_EVENT_ALARM_CITIZENIDCARD_INFO的nECType定义)
  20925. NET_TIME stuCitizenIDBirth; // 出生日期(年月日有效)
  20926. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  20927. int nAge; // 年龄
  20928. char szCheckOutType[32]; // 签出类型(定制)
  20929. char szCheckOutCause[512]; // 签出原因(定制)
  20930. char szLocationName[256]; // 场所码名称
  20931. char szLocationAddress[256]; // 场所码所在省市区县
  20932. char szLocationType[256]; // 场所码类型
  20933. char szCallLiftFloor[16]; // 呼梯楼层号
  20934. BYTE szReversed[384]; // 预留字节
  20935. }DEV_EVENT_ACCESS_CTL_INFO;
  20936. ///@brief 事件类型 EVENT_IVS_NETPALYCHECK(上网登记事件)对应数据块描述信息
  20937. typedef struct tagDEV_EVENT_ALARM_NETPLAYCHECK_INFO
  20938. {
  20939. int nChannelID; // 通道号
  20940. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20941. char bReserved1[8]; // 字节对齐
  20942. DWORD PTS; // 时间戳(单位是毫秒)
  20943. NET_TIME_EX UTC; // 事件发生的时间
  20944. int nEventID; // 事件ID
  20945. /*以上为公共字段*/
  20946. NET_TIME_EX stuTime; // 事件发生的时间, (设备时间, 不一定是utc时间)
  20947. char szIdentityCard[DH_COMMON_STRING_32]; //上网人员证件
  20948. char szNetBarName[DH_COMMON_STRING_32]; //网吧名称
  20949. char szNetBarID[DH_COMMON_STRING_32]; //网吧编号
  20950. char szNetBarAddr[DH_COMMON_STRING_64]; //网吧地址
  20951. }DEV_EVENT_ALARM_NETPLAYCHECK_INFO;
  20952. #define MAX_SNAPBYTIME_DATA_NUM 20
  20953. ///@brief 用户数据
  20954. typedef struct tagEVENT_SNAPBYTIME_DATA
  20955. {
  20956. DWORD dwLiquidLevel; // 液位值,单位mm
  20957. DWORD dwDistMeasure; // 测距值,单位mm
  20958. int nTemperature; // 温度值,单位℃
  20959. int nHumidity; // 湿度值,单位RH
  20960. DWORD dwWaterFlow; // 流量值,单位m^3
  20961. BOOL bAlarmFlag; // 报警状态: 正常 FALSE, 报警 TRUE
  20962. char szReversed[40]; // 保留字节
  20963. }EVENT_SNAPBYTIME_DATA;
  20964. ///@brief 事件类型 EVENT_IVS_SNAPBYTIME(定时抓图事件)对应数据块描述信息
  20965. typedef struct tagDEV_EVENT_SNAPBYTIME
  20966. {
  20967. int nChannelID; // 通道号
  20968. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20969. char bReserved1[4]; // 字节对齐
  20970. double PTS; // 时间戳(单位是毫秒)
  20971. NET_TIME_EX UTC; // 事件发生的时间
  20972. int nEventID; // 事件ID
  20973. /*以上为公共字段,除nChannelID外的其他字段是为了预留公共字段空间*/
  20974. NET_TIME_EX stuSnapTime; // 抓图时间
  20975. unsigned int uLiquidLevel; // 液位值,单位mm
  20976. unsigned int uDistMeasure; // 测距值,单位mm
  20977. int nTemperature; // 温度值,单位℃
  20978. int nHumidity; // 湿度值,单位RH
  20979. int nDataNum; // 数据个数
  20980. EVENT_SNAPBYTIME_DATA stuDataList[MAX_SNAPBYTIME_DATA_NUM]; // 数据列表
  20981. char szReversed[748]; // 保留字节
  20982. }DEV_EVENT_SNAPBYTIME;
  20983. ///@brief 事件类型EVENT_IVS_MAN_STAND_DETECTION(立体视觉站立事件)对应数据块描述信息
  20984. typedef struct tagDEV_EVENT_MANSTAND_DETECTION_INFO
  20985. {
  20986. int nChannelID; // 通道号
  20987. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  20988. char bReserved1[4]; // 字节对齐,非保留字节
  20989. double PTS; // 时间戳(单位是毫秒)
  20990. NET_TIME_EX UTC; // 事件发生的时间
  20991. int nEventID; // 事件ID
  20992. /*以上为公共字段,除nChannelID外的其他字段是为了预留公共字段空间*/
  20993. int nAction; // 0:脉冲 1:开始 2:停止
  20994. int nManListCount; // 区域人员列表数量
  20995. MAN_STAND_LIST_INFO stuManList[MAX_MAN_LIST_COUNT]; // 区域内人员列表
  20996. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  20997. char szReversed[2048]; // 保留字节
  20998. } DEV_EVENT_MANSTAND_DETECTION_INFO;
  20999. ///@brief 检测模式
  21000. typedef enum tagEM_EVENT_DETECT_TYPE
  21001. {
  21002. EM_EVENT_DETECT_TYPE_UNKNOWN = -1, // 未知
  21003. EM_EVENT_DETECT_TYPE_LESS_OR_EQUAL, // 小于等于阈值报警
  21004. EM_EVENT_DETECT_TYPE_GREATER_OR_EQUAL, // 大于等于阈值报警
  21005. EM_EVENT_DETECT_TYPE_EQUAL, // 等于阀值报警
  21006. EM_EVENT_DETECT_TYPE_NOEQUAL, // 不等于阀值报警
  21007. EM_EVENT_DETECT_TYPE_CHANGE, // 人数变化报警
  21008. EM_EVENT_DETECT_TYPE_GREATER, // 大于阈值报警
  21009. EM_EVENT_DETECT_TYPE_LESS, // 小于阈值报警
  21010. EM_EVENT_DETECT_TYPE_IN_INTERVAL, // 区间内报警,检测人数在区间范围内报警,包括边界值。区间值对应PersonNum字段
  21011. EM_EVENT_DETECT_TYPE_OUT_INTERVAL, // 区间外报警,检测人数在区间范围外报警,不包括边界值。区间值对应PersonNum字段
  21012. }EM_EVENT_DETECT_TYPE;
  21013. ///@brief 事件类型EVENT_IVS_MAN_NUM_DETECTION(立体视觉区域内人数统计事件)对应数据块描述信息
  21014. typedef struct tagDEV_EVENT_MANNUM_DETECTION_INFO
  21015. {
  21016. int nChannelID; // 通道号
  21017. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21018. char bReserved1[4]; // 字节对齐, 非保留字节
  21019. double PTS; // 时间戳(单位是毫秒)
  21020. NET_TIME_EX UTC; // 事件发生的时间
  21021. int nEventID; // 事件ID
  21022. /*以上为公共字段,除nChannelID外的其他字段是为了预留公共字段空间*/
  21023. int nAction; // 0:脉冲 1:开始 2:停止
  21024. int nManListCount; // 区域人员列表数量
  21025. MAN_NUM_LIST_INFO stuManList[MAX_MAN_LIST_COUNT]; // 区域内人员列表
  21026. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21027. UINT nAreaID; // 区域ID(一个预置点可以对应多个区域ID)
  21028. UINT nPrevNumber; // 变化前人数
  21029. UINT nCurrentNumber; // 当前人数
  21030. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  21031. // 缺省时为空字符串,表示无此信息
  21032. // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
  21033. char szRuleName[128]; // 规则名称
  21034. EM_EVENT_DETECT_TYPE emDetectType; // 检测模式
  21035. UINT nAlertNum; // 实际触发报警的人数
  21036. int nAlarmType; // 报警类型. 0:未知, 1:从人数正常到人数异常, 2:从人数异常到人数正常
  21037. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  21038. int nImageInfoNum; // 图片信息个数
  21039. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  21040. int nDetectRegionNum; // 检测区个数
  21041. NET_POINT_EX stuDetectRegion[20]; // 检测区
  21042. char szReversed[700]; // 保留字节
  21043. } DEV_EVENT_MANNUM_DETECTION_INFO;
  21044. ///@brief 事件类型 EVENT_IVS_QUEUENUM_DETECTION(排队人数异常报警事件)对应数据块描述信息
  21045. typedef struct tagDEV_EVENT_QUEUENUM_DETECTION_INFO
  21046. {
  21047. int nChannelID; // 通道号
  21048. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21049. char bReserved1[4]; // 字节对齐, 非保留字节
  21050. double PTS; // 时间戳(单位是毫秒)
  21051. NET_TIME_EX UTC; // 事件发生的时间
  21052. DWORD nEventID; // 事件ID
  21053. int nAction; // 0:脉冲 1:开始 2:停止
  21054. /*以上为公共字段,除nChannelID外的其他字段是为了预留公共字段空间*/
  21055. UINT nAreaID; // 区域ID(一个预置点可以对应多个区域ID)
  21056. int nMaxManListNum; // 区域内检测到的人员个数
  21057. MAN_NUM_LIST_INFO stuManList[MAX_MAN_LIST_COUNT]; // 区域内人员列表
  21058. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21059. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21060. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  21061. int nImageInfoNum; // 图片信息个数
  21062. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  21063. BYTE byReversed[1012]; // 保留字节
  21064. } DEV_EVENT_QUEUENUM_DETECTION_INFO;
  21065. ///@brief 事件类型 EVENT_IVS_GENERATEGRAPH_DETECTION(生成图规则)对应的数据块描述信息
  21066. typedef struct tagDEV_EVENT_GENERATEGRAPH_DETECTION_INFO
  21067. {
  21068. int nChannelID; // 通道号
  21069. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21070. char bReserved1[4]; // 字节对齐, 非保留字节
  21071. double PTS; // 时间戳(单位是毫秒)
  21072. NET_TIME_EX UTC; // 事件发生的时间
  21073. int nEventID; // 事件ID
  21074. int nAction; // 0:脉冲 1:开始 2:停止
  21075. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21076. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21077. /*以上为公共字段,除nChannelID外的其他字段是为了预留公共字段空间*/
  21078. BYTE byReversed[1024]; // 保留字节
  21079. } DEV_EVENT_GENERATEGRAPH_DETECTION_INFO;
  21080. ///@brief 事件类型EVENT_IVS_TIREDPHYSIOLOGICAL(生理疲劳驾驶事件)对应的数据块描述信息
  21081. typedef struct tagDEV_EVENT_TIREDPHYSIOLOGICAL_INFO
  21082. {
  21083. int nChannelID; // 通道号
  21084. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21085. char bReserved1[4]; // 字节对齐
  21086. double PTS; // 时间戳(单位是毫秒)
  21087. NET_TIME_EX UTC; // 事件发生的时间
  21088. int nEventID; // 事件ID
  21089. int nAction; // 0:脉冲 1:开始 2:停止
  21090. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  21091. char szDriverID[32]; // 司机ID
  21092. char szVideoPath[256]; // 违章关联视频FTP上传路径
  21093. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  21094. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  21095. BYTE bReserved[736]; // 保留字节,留待扩展.
  21096. } DEV_EVENT_TIREDPHYSIOLOGICAL_INFO;
  21097. ///@brief 事件类型EVENT_IVS_TRAFFIC_TIREDLOWERHEAD(开车低头报警事件)对应的数据块描述信息
  21098. typedef struct tagDEV_EVENT_TIREDLOWERHEAD_INFO
  21099. {
  21100. int nChannelID; // 通道号
  21101. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21102. char bReserved1[4]; // 字节对齐
  21103. double PTS; // 时间戳(单位是毫秒)
  21104. NET_TIME_EX UTC; // 事件发生的时间
  21105. int nEventID; // 事件ID
  21106. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  21107. char szDriverID[32]; // 司机ID
  21108. char szVideoPath[256]; // 违章关联视频FTP上传路径
  21109. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  21110. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  21111. BYTE bReserved[736]; // 保留字节,留待扩展.
  21112. } DEV_EVENT_TIREDLOWERHEAD_INFO;
  21113. ///@brief 事件类型EVENT_IVS_TRAFFIC_DRIVERLOOKAROUND(开车左顾右盼报警事件)对应的数据块描述信息
  21114. typedef struct tagDEV_EVENT_DRIVERLOOKAROUND_INFO
  21115. {
  21116. int nChannelID; // 通道号
  21117. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21118. char bReserved1[4]; // 字节对齐
  21119. double PTS; // 时间戳(单位是毫秒)
  21120. NET_TIME_EX UTC; // 事件发生的时间
  21121. int nEventID; // 事件ID
  21122. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  21123. char szDriverID[32]; // 司机ID
  21124. char szVideoPath[256]; // 违章关联视频FTP上传路径
  21125. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  21126. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  21127. BYTE bReserved[736]; // 保留字节,留待扩展.
  21128. } DEV_EVENT_DRIVERLOOKAROUND_INFO;
  21129. ///@brief 事件类型EVENT_IVS_INFRAREDBLOCK(红外阻断报警事件)对应的数据块描述信息
  21130. typedef struct tagDEV_EVENT_INFRAREDBLOCK_INFO
  21131. {
  21132. int nChannelID; // 通道号
  21133. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21134. char bReserved1[4]; // 字节对齐
  21135. double PTS; // 时间戳(单位是毫秒)
  21136. NET_TIME_EX UTC; // 事件发生的时间
  21137. int nEventID; // 事件ID
  21138. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  21139. char szDriverID[32]; // 司机ID
  21140. char szVideoPath[256]; // 违章关联视频FTP上传路径
  21141. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  21142. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  21143. BYTE bReserved[736]; // 保留字节,留待扩展.
  21144. } DEV_EVENT_INFRAREDBLOCK_INFO;
  21145. ///@brief 事件类型EVENT_IVS_TRAFFIC_DRIVERLEAVEPOST(开车离岗报警事件)对应的数据块描述信息
  21146. typedef struct tagDEV_EVENT_DRIVERLEAVEPOST_INFO
  21147. {
  21148. int nChannelID; // 通道号
  21149. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21150. char bReserved1[4]; // 字节对齐
  21151. double PTS; // 时间戳(单位是毫秒)
  21152. NET_TIME_EX UTC; // 事件发生的时间
  21153. int nEventID; // 事件ID
  21154. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  21155. char szDriverID[32]; // 司机ID
  21156. char szVideoPath[256]; // 违章关联视频FTP上传路径
  21157. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  21158. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  21159. BYTE bReserved[736]; // 保留字节,留待扩展.
  21160. } DEV_EVENT_DRIVERLEAVEPOST_INFO;
  21161. ///@brief 事件类型 EVENT_IVS_TRAFFIC_DRIVERYAWN (开车打哈欠事件) 对应的数据块描述信息
  21162. typedef struct tagDEV_EVENT_DRIVERYAWN_INFO
  21163. {
  21164. int nChannelID; // 通道号
  21165. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21166. char szReserved1[4]; // 字节对齐
  21167. double PTS; // 时间戳(单位是毫秒)
  21168. NET_TIME_EX UTC; // 事件发生的时间
  21169. int nEventID; // 事件ID
  21170. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  21171. char szDriverID[32]; // 司机ID
  21172. char szVideoPath[256]; // 违章关联视频FTP上传路径
  21173. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  21174. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  21175. BYTE byReserved[736]; // 保留字节,留待扩展.
  21176. } DEV_EVENT_DRIVERYAWN_INFO;
  21177. ///@brief 图片类型
  21178. typedef enum tagEM_FIREWARNING_PIC_TYPE
  21179. {
  21180. EM_PIC_UNKNOWN, // 未知
  21181. EM_PIC_NONE, // 无
  21182. EM_PIC_OVERVIEW, // 全景图
  21183. EM_PIC_DETAIL, // 细节图
  21184. }EM_FIREWARNING_PIC_TYPE;
  21185. ///@brief 事件类型 EVENT_IVS_FIREWARNING(火警事件) 对应的数据块描述信息
  21186. typedef struct tagDEV_EVENT_FIREWARNING_INFO
  21187. {
  21188. int nChannelID; // 通道号
  21189. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21190. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21191. int nAction; // 1:开始 2:停止
  21192. UINT nFSID; // Uint32 火情编号ID
  21193. EM_FIREWARNING_PIC_TYPE emPicType; // 图片类型
  21194. BOOL bIsLeaveFireDetect; // 是否属于离岗火点检测(TRUE:是 FALSE:不是)
  21195. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  21196. int nImageInfoNum; // 图片信息个数
  21197. BYTE byReserved[1008 - POINTERSIZE]; // 保留字节
  21198. }DEV_EVENT_FIREWARNING_INFO;
  21199. ///@brief 检测到的人的信息
  21200. typedef enum tagEM_DETECT_OBJECT
  21201. {
  21202. EM_DETECT_OBJECT_UNKNOWN, // 未知信息
  21203. EM_DETECT_OBJECT_HUMAN_BODY_AND_FACE, // 人体和目标都有
  21204. EM_DETECT_OBJECT_HUMAN_BODY, // 仅有人体
  21205. EM_DETECT_OBJECT_HUMAN_FACE, // 仅有目标
  21206. }EM_DETECT_OBJECT;
  21207. ///@brief 人体图片信息
  21208. typedef struct tagHUMAN_IMAGE_INFO
  21209. {
  21210. UINT nOffSet; // 偏移
  21211. UINT nLength; // 图片大小,单位字节
  21212. UINT nWidth; // 图片宽度
  21213. UINT nHeight; // 图片高度
  21214. UINT nIndexInData; // 在上传图片数据中的图片序号
  21215. BYTE byReserved[52]; // 预留字节
  21216. }HUMAN_IMAGE_INFO;
  21217. ///@brief 目标图片信息
  21218. typedef struct tagFACE_IMAGE_INFO
  21219. {
  21220. UINT nOffSet; // 偏移
  21221. UINT nLength; // 图片大小,单位字节
  21222. UINT nWidth; // 图片宽度
  21223. UINT nHeight; // 图片高度
  21224. UINT nIndexInData; // 在上传图片数据中的图片序号
  21225. BYTE byReserved[52]; // 预留字节
  21226. }FACE_IMAGE_INFO;
  21227. ///@brief 是否有反光背心
  21228. typedef enum tagEM_HAS_VEST
  21229. {
  21230. EM_HAS_VEST_UNKNOWN = 0, // 未知
  21231. EM_HAS_VEST_NO, // 无
  21232. EM_HAS_VEST_YES, // 有
  21233. }EM_HAS_VEST;
  21234. ///@brief 是否佩戴工牌
  21235. typedef enum tagEM_HAS_BADGE
  21236. {
  21237. EM_HAS_BADGE_UNKNOWN = 0, // 未知
  21238. EM_HAS_BADGE_NO, // 无
  21239. EM_HAS_BADGE_YES, // 有
  21240. }EM_HAS_BADGE;
  21241. ///@brief 是否推婴儿车
  21242. typedef enum tagEM_HAS_BABYCARRIAGE
  21243. {
  21244. EM_HAS_BABYCARRIAGE_UNKNOWN = 0, // 未知
  21245. EM_HAS_BABYCARRIAGE_NO, // 无
  21246. EM_HAS_BABYCARRIAGE_YES, // 有
  21247. }EM_HAS_BABYCARRIAGE;
  21248. ///@brief 是否虚检
  21249. typedef enum tagEM_IS_ERRORDETECT
  21250. {
  21251. EM_IS_ERRORDETECT_UNKNOWN = -1, // 未知
  21252. EM_IS_ERRORDETECT_NO, // 无
  21253. EM_IS_ERRORDETECT_YES, // 有
  21254. }EM_IS_ERRORDETECT;
  21255. ///@brief 人体部位是否有头
  21256. typedef enum tagEM_HAS_HEAD
  21257. {
  21258. EM_HAS_HEAD_UNKNOWN = -1, // 未知
  21259. EM_HAS_HEAD_NO, // 无
  21260. EM_HAS_HEAD_YES, // 有
  21261. }EM_HAS_HEAD;
  21262. ///@brief 人体部位是否有下半身
  21263. typedef enum tagEM_HAS_DOWNBODY
  21264. {
  21265. EM_HAS_DOWNBODY_UNKNOWN = -1, // 未知
  21266. EM_HAS_DOWNBODY_NO, // 无
  21267. EM_HAS_DOWNBODY_YES, // 有
  21268. }EM_HAS_DOWNBODY;
  21269. ///@brief 是否有雨披
  21270. typedef enum tagEM_HAS_RAINCOAT
  21271. {
  21272. EM_HAS_RAINCOAT_UNKNOWN = 0, // 未知
  21273. EM_HAS_RAINCOAT_NO, // 无
  21274. EM_HAS_RAINCOAT_YES, // 有
  21275. }EM_HAS_RAINCOAT;
  21276. ///@brief 是否与其他目标关联
  21277. typedef enum tagEM_ASSOCIATED_RECORD_SOURCE
  21278. {
  21279. EM_ASSOCIATED_RECORD_SOURCE_UNKNOWN = -1, // 未知
  21280. EM_ASSOCIATED_RECORD_SOURCE_NONE, // 未关联
  21281. EM_ASSOCIATED_RECORD_SOURCE_HUMAN, // 与人体有关联成功
  21282. EM_ASSOCIATED_RECORD_SOURCE_MOTOR_VEHICLE_PASSING, // 与机动车过车有关联
  21283. EM_ASSOCIATED_RECORD_SOURCE_MOTOR_VEHICLE_VIOLATION, // 与机动车违章有关联
  21284. EM_ASSOCIATED_RECORD_SOURCE_STRUCTURED_MOTOR_VEHICLE, // 与结构化机动车有关联
  21285. EM_ASSOCIATED_RECORD_SOURCE_FACE, // 与目标有关联
  21286. EM_ASSOCIATED_RECORD_SOURCE_NON_MOTOR_VEHICLE, // 与非机动车有关联
  21287. }EM_ASSOCIATED_RECORD_SOURCE;
  21288. ///@brief 人体属性信息
  21289. typedef struct tagHUMAN_ATTRIBUTES_INFO
  21290. {
  21291. EM_CLOTHES_COLOR emCoatColor; // 上衣颜色
  21292. EM_COAT_TYPE emCoatType; // 上衣类型
  21293. EM_CLOTHES_COLOR emTrousersColor; // 裤子颜色
  21294. EM_TROUSERS_TYPE emTrousersType; // 裤子类型
  21295. EM_HAS_HAT emHasHat; // 是否戴帽子
  21296. EM_HAS_BAG emHasBag; // 是否带包
  21297. NET_RECT stuBoundingBox; // 包围盒(8192坐标系)
  21298. int nAge; // 年龄
  21299. EM_SEX_TYPE emSex; // 性别
  21300. EM_ANGLE_TYPE emAngle; // 角度
  21301. EM_HAS_UMBRELLA emHasUmbrella; // 是否打伞
  21302. EM_BAG_TYPE emBag; // 包类型
  21303. EM_CLOTHES_PATTERN emUpperPattern; // 上半身衣服图案
  21304. EM_HAIR_STYLE emHairStyle; // 头发样式
  21305. EM_CAP_TYPE emCap; // 帽类型
  21306. NET_POINT stuHumanCenter; // 人体型心(不是包围盒中心), 0-8191相对坐标, 相对于大图
  21307. EM_HAS_VEST emHasVest; // 是否有反光背心;
  21308. EM_HAS_BADGE emHasBadge; // 是否佩戴工牌
  21309. EM_HAS_BABYCARRIAGE emHasBabyCarriage; // 是否推婴儿车
  21310. EM_IS_ERRORDETECT emIsErrorDetect; // 是否虚检(背景误检,仅头,仅下半身都会判定为虚检)
  21311. EM_HAS_HEAD emHasHead; // 人体部位是否有头
  21312. EM_HAS_DOWNBODY emHasDownBody; // 人体部位是否有下半身
  21313. UINT nAngleConf; // 姿态置信度,质量评估总分0到100
  21314. UINT nUpColorConf; // 上衣颜色置信度,质量评估总分0到100
  21315. UINT nDownColorConf; // 下衣颜色置信度,质量评估总分0到100
  21316. UINT nGenderConf; // 性别置信度,质量评估总分0到100
  21317. UINT nAgeConf; // 年龄段置信度,质量评估总分0到100
  21318. UINT nHatTypeConf; // 帽子类型置信度,质量评估总分0到100
  21319. UINT nUpTypeConf; // 上衣种类置信度,质量评估总分0到100
  21320. UINT nDownTypeConf; // 下衣种类置信度,质量评估总分0到100
  21321. UINT nHairTypeConf; // 发型种类置信度,质量评估总分0到100
  21322. UINT nHasHeadConf; // 人体部位是否有头的置信度,质量评估总分0到100
  21323. UINT nHasDownBodyConf; // 人体部位是否有下半身置信度,质量评估总分0到100
  21324. UINT nUniformStyleConf; // 制服类型置信度,质量评估总分0到100
  21325. char nCoatType; // 上衣类型,emCoatType实现和协议不一致,兼容处理,
  21326. // 0:未知 1:长袖 2:短袖 3:长款大衣 4:夹克及牛仔服 5:T恤;
  21327. // 6:运动装 7:羽绒服 8:衬衫 9:连衣裙 10:西装 11:毛衣 12:无袖 13:背心
  21328. BYTE byReserved[3]; // 预留字节
  21329. }HUMAN_ATTRIBUTES_INFO;
  21330. ///@brief 人体属性信息扩展(原先HUMAN_ATTRIBUTES_INFO预留字段不足,增加扩展结构体)
  21331. typedef struct tagHUMAN_ATTRIBUTES_INFO_EX
  21332. {
  21333. EM_HAS_RAINCOAT emHasRainCoat; // 是否戴帽子
  21334. EM_CLOTHES_COLOR emMaskColor; // 口罩颜色
  21335. UINT nQeScore; // 人体优选分数
  21336. UINT nIntegrality; // 目标完整性,0-完整,非0-不完整,视频流时值有效。
  21337. EM_ASSOCIATED_RECORD_SOURCE emExtRecordSource; // 是否与其他目标关联
  21338. EM_CLOTHES_COLOR emCapColor; // 帽子颜色
  21339. EM_UNIFORM_STYLE emUniformStyle; // 制服类型
  21340. int nHumanClarity; // 人体清晰度分数取值范围 1~100,0为无效值
  21341. int nHumanCompleteScore; // 人体完整度评分
  21342. BOOL bIsRelatedFace; // 表示当前人体是否曾经关联过目标
  21343. EM_COAT_TYPE emCoatStyle; // 上衣款式
  21344. EM_SHOES_TYPE emShoesType; // 鞋子款式
  21345. EM_CLOTHES_COLOR emShoesColor; // 鞋子颜色
  21346. EM_AGE_SEG emAgeSeg; // 年龄段
  21347. int nMask; // 口罩状态, -1:未知, 0:未做识别, 1:不带口罩, 2:带口罩
  21348. BYTE byReserved[984]; // 预留字节
  21349. }HUMAN_ATTRIBUTES_INFO_EX;
  21350. ///@brief 目标属性
  21351. typedef struct tagNET_FACE_ATTRIBUTE
  21352. {
  21353. EM_DEV_EVENT_FACEDETECT_SEX_TYPE emSex; // 性别
  21354. int nAge; // 年龄,-1表示该字段数据无效
  21355. unsigned int nFeatureValidNum; // 目标特征数组有效个数,与 emFeature 结合使用
  21356. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emFeatures[DH_MAX_FACEDETECT_FEATURE_NUM]; // 目标特征数组,与 nFeatureValidNum 结合使用
  21357. char szReserved[4];
  21358. EM_EYE_STATE_TYPE emEye; // 眼睛状态
  21359. EM_MOUTH_STATE_TYPE emMouth; // 嘴巴状态
  21360. EM_MASK_STATE_TYPE emMask; // 口罩状态
  21361. EM_BEARD_STATE_TYPE emBeard; // 胡子状态
  21362. int nAttractive; // 魅力值, 0未识别,识别时范围1-100,得分高魅力高
  21363. NET_RECT stuBoundingBox; // 包围盒(8192坐标系)
  21364. NET_EULER_ANGLE stuFaceCaptureAngle; // 目标在抓拍图片中的角度信息, nPitch:抬头低头的俯仰角, nYaw左右转头的偏航角, nRoll头在平面内左偏右偏的翻滚角
  21365. // 角度值取值范围[-90,90], 三个角度值都为999表示此角度信息无效
  21366. UINT nFaceQuality; // 目标抓拍质量分数,范围 0~10000
  21367. int nFaceAlignScore; // 目标对齐得分分数,范围 0~10000,-1为无效值
  21368. int nFaceClarity; // 目标清晰度分数,范围 0~10000,-1为无效值
  21369. NET_POINT stuFaceCenter; // 目标型心(不是包围盒中心), 0-8191相对坐标, 相对于大图
  21370. EM_FACEDETECT_GLASSES_TYPE emGlass; // 是否戴眼镜
  21371. UINT nFaceDetectConf; // 目标检测置信度,取值0~100
  21372. NET_FACE_ORIGINAL_SIZE stuOriginalSize; // 算法目标分析时的实际目标图片尺寸, 宽高为0时无效
  21373. int arrAngleStatus[3]; // 目标抓拍角度(Angle)状态
  21374. UINT nIlluminationScore; // 目标光照值,范围[0,255]
  21375. char nLeftEyeCoverConf; // 目标左眼遮挡置信度,范围[0,100]
  21376. char nLeftCheekCoverConf; // 目标左脸颊遮挡置信度,范围[0,100]
  21377. char nMouthCoverConf; // 目标嘴巴遮挡置信度,范围[0,100]
  21378. char nRightEyeCoverConf; // 目标右眼遮挡置信度,范围[0,100]
  21379. char nRightCheekCoverConf; // 目标右脸颊遮挡置信度,范围[0,100]
  21380. char nChinCoverConf; // 目标下巴遮挡置信度,范围[0,100]
  21381. char nIsCompleteFace; // 目标完整度评价 目标完整度评价,取值0和1 0为不完整(轮廓超出图像边界) 1为完整
  21382. char nSaturationScore; // 目标图片饱和度评分,范围[0,100]
  21383. char nBrowCoverConf; // 目标额头遮挡置信度,范围[0,100]
  21384. char nNoseCoverConf; // 目标鼻子遮挡置信度,范围[0,100]
  21385. BYTE bReserved0[2]; // 保留字节,留待扩展
  21386. EM_AGE_SEG emAgeSeg; // 年龄段
  21387. BYTE bReserved[36]; // 保留字节,留待扩展.
  21388. } NET_FACE_ATTRIBUTE;
  21389. ///@brief 当前人体特征是由什么事件产生的
  21390. typedef struct tagNET_HUMANTRAIT_EXTENSION_INFO
  21391. {
  21392. char szAdditionalCode[MAX_HUMANTRAIT_EVENT_LEN]; // 当前人体特征是由什么事件产生的,设备刚好返回32个字节数据,多加4个字节用于字节对齐和添加字符结束符
  21393. BYTE byReserved[32]; // 保留字节
  21394. } NET_HUMANTRAIT_EXTENSION_INFO;
  21395. ///@brief 判断是否合规的属性列表信息
  21396. typedef enum tagEM_COMPLIANTDETAIL_TYPE
  21397. {
  21398. EM_COMPLIANTDETAIL_UNKNOWN, // 未知
  21399. EM_COMPLIANTDETAIL_MASK, // 面具
  21400. EM_COMPLIANTDETAIL_HELMET, // 头盔
  21401. EM_COMPLIANTDETAIL_VEST, // 反光背心
  21402. EM_COMPLIANTDETAIL_GLASSESS, // 反光眼镜
  21403. EM_COMPLIANTDETAIL_COATCOLOR, // 上装颜色
  21404. EM_COMPLIANTDETAIL_TROUSESCOLOR, // 下装颜色
  21405. }EM_COMPLIANTDETAIL_TYPE;
  21406. ///@brief 关联的人体消息类型
  21407. typedef enum EM_HUMAN_POSTURE_TYPE
  21408. {
  21409. EM_HUMAN_POSTURE_UNKNOWN, // 未知
  21410. EM_HUMAN_POSTURE_ALONG_WITH_FACE, // 与最优目标同画面的人体
  21411. }EM_HUMAN_POSTURE_TYPE;
  21412. ///@brief 图像成像光源类型
  21413. typedef enum EM_IMAGE_LIGHT_TYPE
  21414. {
  21415. EM_IMAGE_LIGHT_TYPE_UNKNOWN = 0, // 未知
  21416. EM_IMAGE_LIGHT_TYPE_VISIBLE, // 可见光成像
  21417. EM_IMAGE_LIGHT_TYPE_NEAR_INFRARED, // 近红外成像(灰度图)
  21418. EM_IMAGE_LIGHT_TYPE_THERMAL_INFRARED, // 热红外成像(伪彩色)
  21419. }EM_IMAGE_LIGHT_TYPE;
  21420. ///@brief 事件类型 EVENT_IVS_HUMANTRAIT(人体特征事件)对应的数据块描述信息
  21421. typedef struct tagDEV_EVENT_HUMANTRAIT_INFO
  21422. {
  21423. int nChannelID; // 通道号
  21424. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21425. int nEventID; // 事件ID
  21426. double PTS; // 时间戳(单位是毫秒)
  21427. NET_TIME_EX UTC; // 事件发生的时间
  21428. int nAction; // 1:开始 2:停止
  21429. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  21430. int nGroupID; // 事件组ID,一次检测的多个人体特征nGroupID相同
  21431. int nCountInGroup; // 一个事件组内的抓拍张数(人体个数),一次检测的多个人体特征nCountInGroup相同
  21432. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  21433. HUMAN_IMAGE_INFO stuHumanImage; // 人体图片信息
  21434. FACE_IMAGE_INFO stuFaceImage; // 目标图片信息
  21435. EM_DETECT_OBJECT emDetectObject; // 检测到的人的信息
  21436. HUMAN_ATTRIBUTES_INFO stuHumanAttributes; // 人体属性
  21437. SCENE_IMAGE_INFO stuSceneImage; // 全景大图信息
  21438. NET_FACE_ATTRIBUTE stuFaceAttributes; // 目标属性
  21439. FACE_SCENE_IMAGE stuFaceSceneImage; // 目标全景图
  21440. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  21441. NET_HUMANTRAIT_EXTENSION_INFO stuHumanTrait; // 补充事件,表示当前人体特征是由该事件产生的
  21442. NET_HUMAN_FEATURE_VECTOR_INFO stuHumanFeatureVectorInfo; // 人体特征值数据在二进制数据中的位置信息
  21443. EM_FEATURE_VERSION emHumanFeatureVersion; // 人体特征值版本号
  21444. NET_FACE_FEATURE_VECTOR_INFO stuFaceFeatureVectorInfo; // 目标特征值数据在二进制数据中的位置信息
  21445. EM_FEATURE_VERSION emFaceFeatureVersion; // 目标特征值版本号
  21446. UINT nCompliantMark; // 合规标记0:不合规,1:合规,没有开启合规检测,无此字段。 此字段已废弃
  21447. int nCompliantDetailsNum; // 判断是否合规的属性列表个数
  21448. EM_COMPLIANTDETAIL_TYPE emCompliantDetailType[32]; // 判断是否合规的属性列表,不合规检测报不合规的属性字段,合规检测报合规的属性字段,没有开启合规检测,无此字段。
  21449. int nHumanPostureTypeNum; // 关联的人体消息类型列表个数
  21450. EM_HUMAN_POSTURE_TYPE emHumanPostureType[32]; //关联的人体消息类型列表
  21451. HUMAN_IMAGE_INFO stuAlongWithFaceHumanImage; //与最优目标同画面的人体信息,emHumanPostureType包含EM_HUMAN_POSTURE_ALONG_WITH_FACE时有效
  21452. SCENE_IMAGE_INFO stuAlongWithFaceHumanSceneImage; //与最优目标同画面人体的全景图,emHumanPostureType包含EM_HUMAN_POSTURE_ALONG_WITH_FACE时有效
  21453. HUMAN_ATTRIBUTES_INFO stuAlongWithFaceHumanAttributes; //与最优目标同画面人体的属性,emHumanPostureType包含EM_HUMAN_POSTURE_ALONG_WITH_FACE时有效
  21454. BOOL bCompliantMarkEnable; // 是否开启合规检测
  21455. NET_HUMAN_FEATURE_VECTOR_INFO stuAlongWithFaceHumanVectorInfo; // 人体特征值数据在二进制数据中的位置信息
  21456. EM_FEATURE_VERSION emAlongWithFaceHumanVersion; // 人体特征值版本号
  21457. UINT nCompliantMode; // 合规模式: 0-不合规,1-合规,没有开启合规检测,无此字段
  21458. UINT nAlarmCompliance; // 1:不合规 2:合规
  21459. UINT nStartSequence; // 目标在视频中出现时的视频帧编号。视频帧编号只能在一个通道内表示唯一,且不连续。视频流时该值有效
  21460. UINT nEndSequence; // 目标在视频中消失时的视频帧编号。视频帧编号只能在一个通道内表示唯一,且不连续。视频流时该值有效。
  21461. EM_IMAGE_LIGHT_TYPE emImageLightType; // 图像成像光源类型
  21462. HUMAN_ATTRIBUTES_INFO_EX stuHumanAttributesEx; // stuHumanAttributes 的扩展
  21463. HUMAN_ATTRIBUTES_INFO_EX stuAlongWithFaceHumanAttributesEx;// stuAlongWithFaceHumanAttributes 的扩展
  21464. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  21465. int nImageInfoNum; // 图片信息个数
  21466. char szObjectUUID[48]; // 智能物体全局唯一物体标识
  21467. char szHumanFeatureVersion[32]; // 人体特征值版本号-字符串
  21468. char szFaceFeatureVersion[32]; // 目标特征值版本号-字符串
  21469. char szAlongWithFaceHumanVersion[32]; // 人体特征值版本号-字符串
  21470. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  21471. char szSerialUUID[22]; // 智能物体全局唯一物体标识
  21472. // 有效数据位21位,包含’\0’
  21473. // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
  21474. // 中间14位YYYYMMDDhhmmss:年月日时分秒
  21475. // 后5位%u%u%u%u%u:物体ID,如00001
  21476. char szReserved[2]; // 对齐
  21477. NET_IMAGE_INFO_EX3* pstuImageInfo; // 图片信息数组
  21478. UINT nDetectMode; // 检测物体具体包含的信息类型: 0: 只包含属性 1: 只包含特征值 2: 属性、特征值都包含 3:属性和特征值都不包含
  21479. char byReserved[852-POINTERSIZE]; // 保留字节
  21480. }DEV_EVENT_HUMANTRAIT_INFO;
  21481. ///@brief 乐橙人头检测事件
  21482. typedef struct tagDEV_EVENT_LE_HEADDETECTION_INFO
  21483. {
  21484. int nChannelID; // 通道号
  21485. int nAction; // 1:开始 2:停止
  21486. char szName[128]; // 事件名称
  21487. double PTS; // 时间戳(单位是毫秒)
  21488. NET_TIME_EX UTC; // 事件发生的时间
  21489. int nEventID; // 事件ID
  21490. BYTE bReserved[1024]; // 保留字节,留待扩展.
  21491. } DEV_EVENT_LE_HEADDETECTION_INFO;
  21492. ///@brief 事件类型EVENT_IVS_BUSSHARPTURN(车辆急转报警事件)对应的数据块描述信息
  21493. typedef struct tagDEV_EVENT_BUSSHARPTURN_INFO
  21494. {
  21495. int nChannelID; // 通道号
  21496. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21497. char bReserved1[4]; // 字节对齐
  21498. double PTS; // 时间戳(单位是毫秒)
  21499. NET_TIME_EX UTC; // 事件发生的时间
  21500. int nEventID; // 事件ID
  21501. int nAction; // 0:脉冲 1:开始 2:停止
  21502. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  21503. BYTE bReserved[1024]; // 保留字节,留待扩展.
  21504. } DEV_EVENT_BUSSHARPTURN_INFO;
  21505. ///@brief 事件类型 EVENT_IVS_TRAFFIC_ELETAGINFO(RFID电子车牌标签事件)对应数据块描述信息
  21506. typedef struct tagDEV_EVENT_TRAFFIC_ELETAGINFO_INFO
  21507. {
  21508. int nChannelID; // 通道号
  21509. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21510. char bReserved1[4]; // 字节对齐
  21511. double PTS; // 时间戳(单位是毫秒)
  21512. NET_TIME_EX UTC; // 事件发生的时间
  21513. int nEventID; // 事件ID
  21514. /*以上为公共字段*/
  21515. int nAction; // 0:脉冲 1:开始 2:停止
  21516. NET_RFIDELETAG_INFO stuRFIDEleTagInfo; // RFID电子车牌标签信息
  21517. int nRetChannelNum; // 返回通道数
  21518. int nLinkChannel[DH_MAX_CHANNUM]; // 关联的相机通道,通道号从0开始
  21519. BYTE bReserved[956]; // 保留字节,留待扩展.
  21520. } DEV_EVENT_TRAFFIC_ELETAGINFO_INFO;
  21521. ///@brief 图片文件类型
  21522. typedef enum tagEM_PASS_CHANGE_PICTURE_TYPE
  21523. {
  21524. EM_PASS_CHANGE_PICTURE_TYPE_UNKNOWN, // 未知
  21525. EM_PASS_CHANGE_PICTURE_TYPE_PASS, // 历史图片
  21526. EM_PASS_CHANGE_PICTURE_TYPE_REAL, // 实时图片
  21527. } EM_PASS_CHANGE_PICTURE_TYPE;
  21528. ///@brief 事件类型 EVENT_IVS_PASS_CHANGE(预置点图片变化事件)对应数据块描述信息
  21529. typedef struct tagDEV_EVENT_PASS_CHANGE_INFO
  21530. {
  21531. int nChannelID; // 通道号
  21532. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21533. char szReserved1[4]; // 字节对齐
  21534. double dbPTS; // 时间戳(单位是毫秒)
  21535. NET_TIME_EX UTC; // 事件发生的时间
  21536. int nEventID; // 事件ID
  21537. int nPresetID; // 预置点编号,从1开始
  21538. int nGroupID; // 事件组ID
  21539. int nCountInGroup; // 一个事件组内的抓拍张数
  21540. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  21541. EM_PASS_CHANGE_PICTURE_TYPE emPictureType; // 图片文件类型,用于回调时指定
  21542. BYTE byReserved1[1020]; // 保留字节
  21543. } DEV_EVENT_PASS_CHANGE_INFO;
  21544. ///@brief 事件类型 EVENT_IVS_TRAFFIC_WAITINGAREA(违章进入待行区事件)对应数据块描述信息
  21545. typedef struct tagDEV_EVENT_TRAFFIC_WAITINGAREA_INFO
  21546. {
  21547. int nChannelID; // 通道号
  21548. BYTE byReserved[4]; // 保留字节,为了对齐
  21549. char szName[MAX_EVENT_NAME_LEN]; // 事件名称
  21550. double dbPTS; // 时间戳(单位是毫秒)
  21551. NET_TIME_EX UTC; // 事件发生的时间
  21552. int nEventID; // 事件ID
  21553. DH_MSG_OBJECT stuObject; // 车牌信息
  21554. DH_MSG_OBJECT stuVehicle; // 车身信息
  21555. int nLane; // 车道号
  21556. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  21557. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 车辆信息
  21558. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21559. BYTE byReserved1[1024]; // 保留字节
  21560. EVENT_COMM_INFO stCommInfo; // 公共信息
  21561. }DEV_EVENT_TRAFFIC_WAITINGAREA_INFO;
  21562. #define MAX_OBJECT_NUM 32 // 最大物体个数
  21563. ///@brief 事件类型 EVENT_IVS_QUEUESTAY_DETECTION(排队滞留时间报警事件)对应数据块描述信息
  21564. typedef struct tagDEV_EVENT_QUEUESTAY_DETECTION_INFO
  21565. {
  21566. int nChannelID; // 通道号
  21567. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21568. char bReserved1[4]; // 字节对齐, 非保留字节
  21569. double PTS; // 时间戳(单位是毫秒)
  21570. NET_TIME_EX UTC; // 事件发生的时间
  21571. int nEventID; // 事件ID
  21572. int nAction; // 0:脉冲 1:开始 2:停止
  21573. /*以上为公共字段,除nChannelID外的其他字段是为了预留公共字段空间*/
  21574. int nGroupID; // 事件组ID,一次检测的多个人体特征nGroupID相同
  21575. int nCountInGroup; // 一个事件组内的抓拍张数(人体个数),一次检测的多个人体特征nCountInGroup相同
  21576. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  21577. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  21578. int nObjectNum; // 检测到的物体个数
  21579. DH_MSG_OBJECT stuObjects[MAX_OBJECT_NUM]; // 检测到的多个物体
  21580. int nDetectRegionNum; // 实际检测到区域个数
  21581. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  21582. UINT nAreaID; // 区域ID(一个预置点可以对应多个区域ID)
  21583. int nCount; // 事件被触发的次数
  21584. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21585. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21586. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  21587. int nImageInfoNum; // 图片信息个数
  21588. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  21589. BYTE byReversed[1012]; // 保留字节
  21590. } DEV_EVENT_QUEUESTAY_DETECTION_INFO;
  21591. ///@brief 事件类型EVENT_IVS_BANNER_DETECTION(拉横幅事件)对应数据块描述信息
  21592. typedef struct tagDEV_EVENT_BANNER_DETECTION_INFO
  21593. {
  21594. int nChannelID; // 通道号
  21595. int nEventID; // 事件ID
  21596. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21597. double PTS; // 时间戳(单位是毫秒)
  21598. NET_TIME_EX UTC; // 事件发生的时间
  21599. int nAction; // 1:开始 2:停止
  21600. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  21601. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21602. int nObjectNum; // 检测到的物体个数
  21603. DH_MSG_OBJECT stuObjects[MAX_OBJECT_NUM]; // 检测到的物体
  21604. int nDetectRegionNum; // 检测区域顶点数
  21605. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  21606. int nCount; // 事件触发次数
  21607. int nPresetID; // 预置点
  21608. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  21609. BYTE byReserved[1028]; // 保留字节,留待扩展.
  21610. } DEV_EVENT_BANNER_DETECTION_INFO;
  21611. ///@brief 非机动车抠图信息
  21612. typedef struct tagNONMOTOR_IMAGE_INFO
  21613. {
  21614. int nOffset; // 在二进制数据块中的偏移
  21615. int nLength; // 图片大小,单位字节
  21616. }NONMOTOR_IMAGE_INFO;
  21617. ///@brief 事件类型EVENT_IVS_NONMOTORDETECT(非机动车检测) 对应数据块描述信息
  21618. typedef struct tagDEV_EVENT_NONMOTORDETECT_INFO
  21619. {
  21620. int nChannelID; // 通道号
  21621. int nEventID; // 事件ID
  21622. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21623. double PTS; // 时间戳(单位是毫秒)
  21624. NET_TIME_EX UTC; // 事件发生的时间
  21625. int nAction; // 0:脉冲 1:开始 2:停止
  21626. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21627. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  21628. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  21629. NONMOTOR_IMAGE_INFO stuImageInfo; // 非机动车抠图信息
  21630. int nNumOfCycling; // 骑车人数量
  21631. EM_OBJECT_COLOR_TYPE emNonMotorColor; // 非机动车颜色
  21632. DH_RECT stuBoundingBox; // 包围盒
  21633. EM_SEX_TYPE emSex; // 车上一人时的性别
  21634. int nAge; // 车上一人时的年龄
  21635. EM_NONMOTOR_OBJECT_STATUS emHelmet; // 车上人员头盔状态
  21636. EM_NONMOTOR_OBJECT_STATUS emCall; // 车上一人时是否在打电话
  21637. EM_NONMOTOR_OBJECT_STATUS emHat; // 车上一人时是否戴帽子
  21638. EM_NONMOTOR_OBJECT_STATUS emBag; // 车上一人时是否有背包
  21639. EM_NONMOTOR_OBJECT_STATUS emCarrierBag; // 车上一人时有没有手提包
  21640. EM_NONMOTOR_OBJECT_STATUS emUmbrella; // 是否打伞
  21641. EM_NONMOTOR_OBJECT_STATUS emGlasses; // 车上一人时是否有带眼镜
  21642. EM_NONMOTOR_OBJECT_STATUS emMask; // 车上一人时是否带口罩
  21643. EM_EMOTION_TYPE emEmotion; // 车上一人时的表情
  21644. EM_CLOTHES_TYPE emUpClothes; // 车上一人时上衣类型
  21645. EM_CLOTHES_TYPE emDownClothes; // 车上一人时下衣类型
  21646. EM_OBJECT_COLOR_TYPE emUpperBodyColor; // 车上一人时上衣颜色
  21647. EM_OBJECT_COLOR_TYPE emLowerBodyColor; // 车上一人时下衣颜色
  21648. EM_CATEGORY_NONMOTOR_TYPE emCategoryType; // 物体类型(NonMotor)中的子类别
  21649. BYTE byReserved[1024]; // 保留字节,留待扩展.
  21650. }DEV_EVENT_NONMOTORDETECT_INFO;
  21651. ///@brief 触发类型
  21652. typedef enum tagEM_TRIGGER_TYPE
  21653. {
  21654. EM_TRIGGER_TYPE_UNKNOWN = -1, // 未知类型
  21655. EM_TRIGGER_TYPE_CAR_INSPECTION_DEV, // 车检器
  21656. EM_TRIGGER_TYPE_DADAR, // 雷达
  21657. EM_TRIGGER_TYPE_VIDEO, // 视频
  21658. }EM_TRIGGER_TYPE;
  21659. ///@brief 违章事件类型
  21660. typedef enum tagEM_VIOLATION_ALARM_TYPE
  21661. {
  21662. EM_VIOLATION_ALARM_TYPE_UNKNOWN = -1, // 未知类型
  21663. EM_VIOLATION_ALARM_TYPE_PARKING_VIOLATION, // 违章停车事件
  21664. EM_VIOLATION_ALARM_TYPE_PREALARM, // 预警事件
  21665. }EM_VIOLATION_ALARM_TYPE;
  21666. ///@brief 车载定制GPS信息
  21667. typedef struct tagNET_CUSTOM_GPS_INFO
  21668. {
  21669. double dbLongitude; // 经度(单位是百万分之度,范围0-360度)
  21670. double dbLatidude; // 纬度(单位是百万分之度,范围0-180度)
  21671. double dbAltitude; // 高度,单位:米
  21672. double dbSpeed; // 速度,单位:km/H
  21673. double dbBearing; // 方向角,单位:度
  21674. BYTE byReserved[1024]; // 保留字节
  21675. }NET_CUSTOM_GPS_INFO;
  21676. ///@brief 机动车违法禁令标识事件(对应EVENT_IVS_TRAFFIC_BAN)
  21677. typedef struct tagDEV_EVENT_TRAFFIC_BAN_INFO
  21678. {
  21679. int nChannelID; // 通道号
  21680. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  21681. char szName[MAX_EVENT_NAME_LEN]; // 事件名称
  21682. double dbPTS; // 时间戳(单位是毫秒)
  21683. NET_TIME_EX UTC; // 事件发生的时间
  21684. int nEventID; // 事件ID
  21685. DH_MSG_OBJECT stuObject; // 车牌信息
  21686. DH_MSG_OBJECT stuVehicle; // 车身信息
  21687. int nMark; // 底层产生的触发抓拍帧标记
  21688. int nSource; // 视频分析的数据源地址
  21689. int nFrameSequence; // 视频分析帧序号
  21690. int nLane; // 车道编号
  21691. NET_TIME stuStartParkingTime; // 开始停车时间
  21692. int nAlarmInterval; // 报警间隔时间,单位:秒
  21693. int nParkingAllowedTime; // 允许停车时间,单位:秒
  21694. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 车辆信息
  21695. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21696. NET_CUSTOM_GPS_INFO stuCustomGPSStatus; // 定制GPS信息
  21697. EM_VIOLATION_ALARM_TYPE emViolationAlarmType; // 违章事件类型
  21698. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  21699. BYTE byReserved[1024]; // 保留字节
  21700. EVENT_COMM_INFO stCommInfo; // 公共信息
  21701. }DEV_EVENT_TRAFFIC_BAN_INFO;
  21702. ///@brief 事件类型EVENT_IVS_ELEVATOR_ABNORMAL(电动扶梯运行异常事件)对应的数据块描述信息
  21703. typedef struct tagDEV_EVENT_ELEVATOR_ABNORMAL_INFO
  21704. {
  21705. int nChannelID; // 通道号
  21706. int nEventID; // 事件ID
  21707. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21708. double dbPTS; // 时间戳(单位是毫秒)
  21709. NET_TIME_EX UTC; // 事件发生的时间
  21710. int nAction; // 1:开始 2:停止
  21711. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  21712. int nDetectRegionPointNum; // 扶梯检测区顶点数
  21713. NET_POINT stuDetectRegion[20]; // 扶梯检测区多边形类型,多边形中每个顶点的坐标归一化到[0,8191]区间。
  21714. NET_POINT stuDirection[2]; // 扶梯的运动方向,第一个点是起点,第二个点是终点。坐标归一化到[0,8191]区间。
  21715. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  21716. int nImageInfoNum; // 图片信息个数
  21717. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  21718. BYTE byReserved1[908]; // 保留字节
  21719. } DEV_EVENT_ELEVATOR_ABNORMAL_INFO;
  21720. ///@brief POS交易中的商品清单信息
  21721. typedef struct tagNET_POS_ITEM_INFO
  21722. {
  21723. char szItemName[DH_COMMON_STRING_32]; // 商品名称
  21724. double dbPrice; // 商品单价
  21725. double dbQuantity; // 数量
  21726. double dbAmount; // 总价
  21727. char szUnit[DH_COMMON_STRING_8]; // 计价单位
  21728. BYTE byReserved[256]; // 保留字节
  21729. } NET_POS_ITEM_INFO;
  21730. ///@brief 事件类型 EVENT_IVS_POS_EXCHANGE(POS机交易事件)对应数据块描述信息
  21731. typedef struct tagDEV_EVENT_POS_EXCHANGE_INFO
  21732. {
  21733. int nChannelID; // 通道号
  21734. int nAction; // 0:脉冲 1:开始 2:停止
  21735. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21736. double dbPTS; // 时间戳(单位是毫秒)
  21737. NET_TIME_EX UTC; // 事件发生的时间
  21738. int nEventID; // 事件ID
  21739. char szDealNum[DH_COMMON_STRING_16]; // 交易号
  21740. char szCardID[DH_COMMON_STRING_16]; // 卡号
  21741. BYTE byReserved1[4]; // 字节对齐
  21742. int nItemListCount; // 商品清单数量
  21743. NET_POS_ITEM_INFO *pstItemList; // 商品清单信息, 大小为nItemListCount*sizeof(NET_POS_ITEM_INFO)
  21744. NET_RECT stRect; // POS采集内容在视频上的叠加位置,矩形区域
  21745. NET_COLOR_RGBA stFrontColor; // OSD前景颜色
  21746. unsigned int nFontSize; // 字体大小, 单位px
  21747. BYTE byReserved[1020]; // 保留字节
  21748. } DEV_EVENT_POS_EXCHANGE_INFO;
  21749. ///@brief 事件类型 EVENT_IVS_DISTANCE_DETECTION (异常间距事件) 对应的数据块描述信息
  21750. typedef struct tagDEV_EVENT_DISTANCE_DETECTION_INFO
  21751. {
  21752. int nChannelID; // 通道号
  21753. char szName[128]; // 事件名称
  21754. int nAction; // 0:脉冲 1:开始 2:停止
  21755. double PTS; // 时间戳(单位是毫秒)
  21756. NET_TIME_EX UTC; // 事件发生的时间
  21757. int nEventID; // 事件ID
  21758. DH_MSG_OBJECT stuObject; // 检测到的物体
  21759. int nDetectRegionNum; // 检测区域顶点数
  21760. NET_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  21761. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21762. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  21763. // 缺省时为空字符串,表示无此信息
  21764. // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
  21765. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  21766. int nImageInfoNum; // 图片信息个数
  21767. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  21768. BYTE byReserved[980]; // 保留字节
  21769. } DEV_EVENT_DISTANCE_DETECTION_INFO;
  21770. ///@brief 事件类型 EVENT_IVS_FORWARDCOLLISION_WARNNING(前向碰撞预警) 对应的数据块描述信息
  21771. typedef struct tagDEV_EVENT_FORWARDCOLLISION_WARNNING_INFO
  21772. {
  21773. int nChannelID; // 通道号
  21774. int nEventID; // 事件ID
  21775. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21776. double PTS; // 时间戳(单位是毫秒)
  21777. NET_TIME_EX UTC; // 事件发生的时间
  21778. int nAction; // 0:脉冲 1:开始 2:停止
  21779. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  21780. char szDriverID[32]; // 司机ID
  21781. char szVideoPath[256]; // 违章关联视频FTP上传路径
  21782. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  21783. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  21784. BYTE byReserved[736]; // 保留字节
  21785. } DEV_EVENT_FORWARDCOLLISION_WARNNING_INFO;
  21786. ///@brief 事件类型 EVENT_IVS_MATERIALSSTAY(物料堆放事件) 对应的数据块描述信息
  21787. typedef struct tagDEV_EVENT_MATERIALSSTAY_INFO
  21788. {
  21789. int nChannelID; // 通道号
  21790. int nEventID; // 事件ID
  21791. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21792. double PTS; // 时间戳(单位是毫秒)
  21793. NET_TIME_EX UTC; // 事件发生的时间
  21794. int nAction; // 0:脉冲 1:开始 2:停止
  21795. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21796. int nDetectRegionNum; // 检测区域顶点数
  21797. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  21798. char szPresetName[64]; // 事件触发的预置名称
  21799. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21800. BYTE byReserved[4092]; // 保留字节
  21801. } DEV_EVENT_MATERIALSSTAY_INFO;
  21802. ///@brief 事件类型 EVNET_IVS_LANEDEPARTURE_WARNNING(车道偏移预警) 对应的数据块描述信息
  21803. typedef struct tagDEV_EVENT_LANEDEPARTURE_WARNNING_INFO
  21804. {
  21805. int nChannelID; // 通道号
  21806. int nEventID; // 事件ID
  21807. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21808. double PTS; // 时间戳(单位是毫秒)
  21809. NET_TIME_EX UTC; // 事件发生的时间
  21810. int nAction; // 0:脉冲 1:开始 2:停止
  21811. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  21812. char szDriverID[32]; // 司机ID
  21813. char szVideoPath[256]; // 违章关联视频FTP上传路径
  21814. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  21815. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  21816. BYTE byReserved[736]; // 保留字节
  21817. } DEV_EVENT_LANEDEPARTURE_WARNNING_INFO;
  21818. ///@brief 事件类型 EVENT_IVS_TRAFFIC_NONMOTOR_OVERLOAD (非机动车超载事件) 对应的数据块描述信息
  21819. typedef struct tagDEV_EVENT_TRAFFIC_NONMOTOR_OVERLOAD_INFO
  21820. {
  21821. int nChannelID; // 通道号
  21822. char szName[128]; // 事件名称
  21823. int nAction; // 0:脉冲 1:开始 2:停止
  21824. double PTS; // 时间戳(单位是毫秒)
  21825. NET_TIME_EX UTC; // 事件发生的时间
  21826. int nEventID; // 事件ID
  21827. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21828. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21829. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  21830. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  21831. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  21832. int nLane; // 车道号
  21833. int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  21834. EVENT_COMM_INFO stuCommInfo; // 公共信息
  21835. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  21836. BYTE byReserved[2048]; // 保留字节
  21837. } DEV_EVENT_TRAFFIC_NONMOTOR_OVERLOAD_INFO;
  21838. ///@brief 事件类型 EVENT_IVS_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT (非机动车未戴安全帽事件) 对应的数据块描述信息
  21839. typedef struct tagDEV_EVENT_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT_INFO
  21840. {
  21841. int nChannelID; // 通道号
  21842. char szName[128]; // 事件名称
  21843. int nAction; // 0:脉冲 1:开始 2:停止
  21844. double PTS; // 时间戳(单位是毫秒)
  21845. NET_TIME_EX UTC; // 事件发生的时间
  21846. int nEventID; // 事件ID
  21847. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21848. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21849. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  21850. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  21851. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  21852. int nLane; // 车道号
  21853. int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  21854. EVENT_COMM_INFO stuCommInfo; // 公共信息
  21855. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  21856. BYTE byReserved[2048]; // 保留字节
  21857. } DEV_EVENT_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT_INFO;
  21858. ///@brief 事件类型 EVENT_IVS_TRAFFIC_NONMOTOR_HOLDUMBRELLA (非机动车装载伞具事件) 对应的数据块描述信息
  21859. typedef struct tagDEV_EVENT_TRAFFIC_NONMOTOR_HOLDUMBRELLA_INFO
  21860. {
  21861. int nChannelID; // 通道号
  21862. int nAction; // 0:脉冲 1:开始 2:停止
  21863. char szName[128]; // 事件名称
  21864. double PTS; // 时间戳(单位是毫秒)
  21865. NET_TIME_EX UTC; // 事件发生的时间
  21866. int nEventID; // 事件ID
  21867. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21868. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21869. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  21870. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  21871. DH_MSG_OBJECT stuObject; // 检测到的物体
  21872. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  21873. int nLane; // 车道号
  21874. int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  21875. EVENT_COMM_INFO stCommInfo; // 公共信息
  21876. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  21877. BYTE byReserved[1368]; // 保留字节
  21878. }DEV_EVENT_TRAFFIC_NONMOTOR_HOLDUMBRELLA_INFO;
  21879. ///@brief 事件类型EVENT_IVS_VIDEOUNFOCUS (视频虚焦事件)
  21880. typedef struct tagDEV_EVENT_VIDEOUNFOCUS_INFO
  21881. {
  21882. int nChannelID; // 通道号
  21883. int nEventID; // 事件ID
  21884. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  21885. double PTS; // 时间戳(单位是毫秒)
  21886. NET_TIME_EX UTC; // 事件发生的时间
  21887. int nAction; // 0:脉冲 1:开始 2:停止
  21888. BYTE byReserved[4096]; // 保留字节
  21889. }DEV_EVENT_VIDEOUNFOCUS_INFO;
  21890. ///@brief 事件类型 EVENT_IVS_FLOWBUSINESS (流动摊贩事件) 对应的数据块描述信息
  21891. typedef struct tagDEV_EVENT_FLOWBUSINESS_INFO
  21892. {
  21893. int nChannelID; // 通道号
  21894. int nAction; // 0:脉冲 1:开始 2:停止
  21895. char szName[128]; // 事件名称
  21896. double PTS; // 时间戳(单位是毫秒)
  21897. NET_TIME_EX UTC; // 事件发生的时间
  21898. int nEventID; // 事件ID
  21899. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21900. int nDetectRegionNum; // 检测区域顶点数
  21901. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  21902. char szPresetName[64]; // 事件触发的预置名称
  21903. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21904. UINT nViolationDuration; // 违法持续时长,单位:秒 缺省值0表示无意义
  21905. int nObjectNum; // 检测到的物体个数
  21906. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  21907. char szSourceID[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  21908. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  21909. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  21910. int nImageInfoNum; // 图片信息个数
  21911. BYTE byReserved[2040 - POINTERSIZE]; // 保留字节
  21912. } DEV_EVENT_FLOWBUSINESS_INFO;
  21913. ///@brief 归一化的云台控制坐标单元
  21914. typedef struct tagPTZ_NORMALIZED_POSITION_UNIT
  21915. {
  21916. double dbPositionX; // 云台水平方向角度,范围[-1, 1]
  21917. double dbPositionY; // 云台垂直方向角度,范围[-1, 1]
  21918. double dbZoom; // 云台光圈放大倍率,范围[0, 1]
  21919. char szReserved[32]; // 预留
  21920. }PTZ_NORMALIZED_POSITION_UNIT;
  21921. ///@brief 车辆状态
  21922. typedef enum tagEM_CITYMOTOR_STATUS
  21923. {
  21924. EM_CITYMOTOR_STATUS_UNKNOWN, // 未知
  21925. EM_CITYMOTOR_STATUS_DRIVE_IN, // 驶入
  21926. EM_CITYMOTOR_STATUS_DRIVE_OUT, // 驶离
  21927. } EM_CITYMOTOR_STATUS;
  21928. ///@brief 是否为违规预警图片
  21929. typedef enum tagEM_PREALARM
  21930. {
  21931. EM_PREALARM_UNKNOWN = -1, //未知
  21932. EM_PREALARM_VIOLATION_EVENT, //机动车违章事件
  21933. EM_PREALARM_VIOLATION_WARNING_EVENT, //机动车违章预警事件
  21934. }EM_PREALARM;
  21935. ///@brief 事件类型 EVENT_IVS_CITY_MOTORPARKING (城市机动车违停事件) 对应的数据块描述信息
  21936. typedef struct tagDEV_EVENT_CITY_MOTORPARKING_INFO
  21937. {
  21938. int nChannelID; // 通道号
  21939. int nAction; // 0:脉冲 1:开始 2:停止
  21940. char szName[128]; // 事件名称
  21941. double PTS; // 时间戳(单位是毫秒)
  21942. NET_TIME_EX UTC; // 事件发生的时间
  21943. int nEventID; // 事件ID
  21944. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21945. int nObjectNum; // 检测到的物体个数
  21946. DH_MSG_OBJECT stuObjects[MAX_OBJECT_NUM]; // 检测到的物体
  21947. int nDetectRegionNum; // 检测区域顶点数
  21948. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM];// 检测区域
  21949. char szPresetName[64]; // 事件触发的预置名称
  21950. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21951. UINT nParkingDuration; // 违停持续时长,单位:秒 缺省值0表示无意义
  21952. char szSourceID[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  21953. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  21954. BOOL bPtzPosition; // stuPtzPosition 是否有效
  21955. PTZ_NORMALIZED_POSITION_UNIT stuPtzPosition; // 云台信息
  21956. EM_CITYMOTOR_STATUS emMotorStatus; // 车辆状态
  21957. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图信息
  21958. EM_PREALARM emPreAlarm; //是否为违规预警图片(预警触发后一定时间,违规物体还没有离开,才判定为违规)
  21959. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  21960. int nImageInfoNum; // 图片信息个数
  21961. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  21962. BYTE byVehicleHeadDirection; // 车头朝向 0-未知,1-正面,2-侧面,3-背面
  21963. char byReserved[1011]; // 保留字节
  21964. } DEV_EVENT_CITY_MOTORPARKING_INFO;
  21965. ///@brief 事件类型 EVENT_IVS_CITY_NONMOTORPARKING (城市非机动车违停事件) 对应的数据块描述信息
  21966. typedef struct tagDEV_EVENT_CITY_NONMOTORPARKING_INFO
  21967. {
  21968. int nChannelID; // 通道号
  21969. int nAction; // 0:脉冲 1:开始 2:停止
  21970. char szName[128]; // 事件名称
  21971. double PTS; // 时间戳(单位是毫秒)
  21972. NET_TIME_EX UTC; // 事件发生的时间
  21973. int nEventID; // 事件ID
  21974. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  21975. int nDetectRegionNum; // 检测区域顶点数
  21976. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  21977. int nAlarmNum; // 报警阈值
  21978. int nNoMotorNum; // 非机动车的个数
  21979. char szPresetName[64]; // 事件触发的预置名称
  21980. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  21981. UINT nViolationDuration; // 违法持续时长,单位:秒 缺省值0表示无意义
  21982. int nObjectNum; // 检测到的物体个数
  21983. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  21984. char szSourceID[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  21985. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  21986. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  21987. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  21988. int nImageInfoNum; // 图片信息个数
  21989. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  21990. BYTE byReserved[892]; // 保留字节
  21991. } DEV_EVENT_CITY_NONMOTORPARKING_INFO;
  21992. ///@brief 飞机行为状态
  21993. typedef enum tagEM_AIRPLANE_STATE
  21994. {
  21995. EM_AIRPLANE_STATE_UNKNOWN = 0,
  21996. EM_AIRPLANE_STATE_ENTER, // 飞机入位
  21997. EM_AIRPLANE_STATE_LEAVE, // 飞机离位
  21998. EM_AIRPLANE_STATE_CHOCKON, // 上轮挡
  21999. EM_AIRPLANE_STATE_CHOCKOFF, // 下轮挡
  22000. EM_AIRPLANE_STATE_NEARBRIDGE, // 靠廊桥
  22001. EM_AIRPLANE_STATE_LEAVEBRIDGE, // 撤廊桥
  22002. EM_AIRPLANE_STATE_OPENDOOR, // 舱门开
  22003. EM_AIRPLANE_STATE_CLOSEDOOR, // 舱门关
  22004. EM_AIRPLANE_STATE_FUELSTART, // 加油开始
  22005. EM_AIRPLANE_STATE_FUELEND, // 加油结束
  22006. EM_AIRPLANE_STATE_FOODSTART, // 送餐开始
  22007. EM_AIRPLANE_STATE_FOODEND, // 送餐结束
  22008. EM_AIRPLANE_STATE_BELTSTART, // 行李开始
  22009. EM_AIRPLANE_STATE_BELTEND, // 行李结束
  22010. EM_AIRPLANE_STATE_TRACTORIN, // 牵引车达到
  22011. EM_AIRPLANE_STATE_TRACTOROUT, // 牵引车离开
  22012. EM_AIRPLANE_STATE_GUIDEIN, // 引导车到达
  22013. EM_AIRPLANE_STATE_GUIDEOUT, // 引导车离开
  22014. }EM_AIRPLANE_STATE;
  22015. ///@brief 事件类型 EVENT_IVS_AIRPLANE_DETECTION (飞机行为检测事件) 对应的数据块描述信息
  22016. typedef struct tagDEV_EVENT_AIRPLANE_DETECTION_INFO
  22017. {
  22018. int nChannelID; // 通道号
  22019. int nAction; // 0:脉冲 1:开始 2:停止
  22020. char szName[128]; // 事件名称
  22021. double PTS; // 时间戳(单位是毫秒)
  22022. NET_TIME_EX UTC; // 事件发生的时间
  22023. int nEventID; // 事件ID
  22024. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  22025. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  22026. NET_POINT stuGuideLine[2]; // 配置的导向线
  22027. NET_POINT stuStopLine[10][2]; // 配置的停止线
  22028. int nStopLineNum; // 配置的停止线数量
  22029. int nAirPlaneID; // 飞机ID
  22030. NET_POINT stuAirPlaneStopLine[2]; // 飞机停止位置线
  22031. NET_RECT stuRect; // 检测飞机的位置
  22032. EM_AIRPLANE_STATE emAirPlaneState; // 飞机行为状态
  22033. BYTE byReserved[4096]; // 保留字节
  22034. } DEV_EVENT_AIRPLANE_DETECTION_INFO;
  22035. ///@brief 事件类型 EVENT_IVS_PHONECALL_DETECT(打电话检测事件) 对应的数据块描述信息
  22036. typedef struct tagDEV_EVENT_PHONECALL_DETECT_INFO
  22037. {
  22038. int nChannelID; // 通道号
  22039. int nAction; // 0:脉冲 1:开始 2:停止
  22040. char szName[MAX_EVENT_NAME]; // 事件名称
  22041. double PTS; // 时间戳(单位是毫秒)
  22042. NET_TIME_EX UTC; // 事件发生的时间
  22043. int nEventID; // 事件ID
  22044. int nGroupID; // 事件组ID
  22045. int nCountInGroup; // 一个事件组内的抓拍张数
  22046. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  22047. unsigned int UTCMS; // UTC对应的毫秒数
  22048. DH_MSG_OBJECT stuObject; // 检测到的物体
  22049. int nDetectRegionNum; // 规则检测区域顶点数
  22050. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  22051. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  22052. UINT nRuleID; // 智能事件规则编号
  22053. UINT nObjectNum; // 检测到的物体数量
  22054. DH_MSG_OBJECT stuObjects[128]; // 多个检测到的物体信息
  22055. UINT nSerialUUIDNum; // 智能物体数量
  22056. char szSerialUUID[128][22]; // 智能物体全局唯一物体标识
  22057. // 有效数据位21位,包含’\0’
  22058. // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
  22059. // 中间14位YYYYMMDDhhmmss:年月日时分秒
  22060. // 后5位%u%u%u%u%u:物体ID,如00001
  22061. BOOL bSceneImage; // stuSceneImage 是否有效
  22062. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  22063. char szUserName[32]; // 用户名称
  22064. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  22065. int nImageInfoNum; // 图片信息个数
  22066. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  22067. BYTE byReserved[188]; // 保留字节
  22068. } DEV_EVENT_PHONECALL_DETECT_INFO;
  22069. ///@brief 事件类型 EVENT_IVS_SMOKING_DETECT(吸烟检测事件)对应的数据块描述信息
  22070. typedef struct tagDEV_EVENT_SMOKING_DETECT_INFO
  22071. {
  22072. int nChannelID; // 通道号
  22073. int nAction; // 0:脉冲 1:开始 2:停止
  22074. char szName[MAX_EVENT_NAME]; // 事件名称
  22075. double PTS; // 时间戳(单位是毫秒)
  22076. NET_TIME_EX UTC; // 事件发生的时间
  22077. int nEventID; // 事件ID
  22078. int nGroupID; // 事件组ID
  22079. int nCountInGroup; // 一个事件组内的抓拍张数
  22080. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  22081. unsigned int UTCMS; // UTC对应的毫秒数
  22082. DH_MSG_OBJECT stuObject; // 检测到的物体
  22083. int nDetectRegionNum; // 规则检测区域顶点数
  22084. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  22085. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  22086. char szSerialUUID[22]; // 智能物体全局唯一物体标识
  22087. // 有效数据位21位,包含’\0’
  22088. // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
  22089. // 中间14位YYYYMMDDhhmmss:年月日时分秒
  22090. // 后5位%u%u%u%u%u:物体ID,如00001
  22091. SCENE_IMAGE_INFO stuSceneImageInfo; // 全景广角图
  22092. char szUserName[32]; // 用户名称
  22093. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  22094. int nImageInfoNum; // 图片信息个数
  22095. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  22096. char byReserved[1024]; // 保留字节
  22097. } DEV_EVENT_SMOKING_DETECT_INFO;
  22098. ///@brief 事件类型 EVENT_IVS_RADAR_SPEED_LIMIT_ALARM(雷达限速报警事件)对应的数据块描述信息
  22099. typedef struct tagDEV_EVENT_RADAR_SPEED_LIMIT_ALARM_INFO
  22100. {
  22101. int nChannelID; // 通道号
  22102. int nAction; // 0:脉冲 1:开始 2:停止
  22103. char szAddress[32]; // 设备IP地址
  22104. int nSpeed; // 时速, 单位km/h
  22105. NET_TIME_EX UTC; // 事件发生时间;
  22106. int nGroupID; // 事件组ID
  22107. int nCountInGroup; // 一个事件组内的抓拍张数
  22108. int nIndexInGroup; // 一个事件组内的抓拍序号,测速过程第n张图片,从1开始
  22109. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  22110. BYTE byReserved[1024]; // 保留字节
  22111. }DEV_EVENT_RADAR_SPEED_LIMIT_ALARM_INFO;
  22112. ///@brief 水果类型
  22113. typedef enum tagEM_FRUIT_TYPE
  22114. {
  22115. EM_FRUIT_TYPE_UNKNOWN, // 未知
  22116. EM_FRUIT_TYPE_GREEN_TANGERINE, // 青橘
  22117. EM_FRUIT_TYPE_YELLOW_TANGERINE_ORANGE, // 黄橘,橙类
  22118. EM_FRUIT_TYPE_GRAPEFRUIT, // 柚子
  22119. EM_FRUIT_TYPE_LEMON, // 柠檬
  22120. EM_FRUIT_TYPE_WATERMELON, // 西瓜
  22121. EM_FRUIT_TYPE_BANANA, // 香蕉
  22122. EM_FRUIT_TYPE_RED_APPLE, // 红苹果
  22123. EM_FRUIT_TYPE_GREEN_APPLE, // 青苹果
  22124. EM_FRUIT_TYPE_MUSKMELON, // 香瓜
  22125. EM_FRUIT_TYPE_HAMIMELON, // 哈密瓜
  22126. EM_FRUIT_TYPE_PEAR, // 梨
  22127. EM_FRUIT_TYPE_KIWI, // 奇异果
  22128. EM_FRUIT_TYPE_PAPAYA, // 木瓜
  22129. EM_FRUIT_TYPE_PINEAPPLE, // 菠萝
  22130. EM_FRUIT_TYPE_MANGO, // 芒果
  22131. EM_FRUIT_TYPE_LONGAN, // 龙眼
  22132. EM_FRUIT_TYPE_GINSENG_FRUIT, // 人参果
  22133. EM_FRUIT_TYPE_POMEGRABATE, // 石榴
  22134. EM_FRUIT_TYPE_COCONUT, // 椰子
  22135. EM_FRUIT_TYPE_CREAM_JUJUBE, // 奶油枣
  22136. EM_FRUIT_TYPE_WINTER_JUJUBE, // 冬枣
  22137. EM_FRUIT_TYPE_AVOCADO, // 牛油果
  22138. EM_FRUIT_TYPE_RED_PLUM, // 红布林
  22139. EM_FRUIT_TYPE_PITAYA, // 火龙果
  22140. EM_FRUIT_TYPE_GUAVA, // 芭乐
  22141. EM_FRUIT_TYPE_PERSIMMON, // 柿子
  22142. EM_FRUIT_TYPE_YACON, // 雪莲果
  22143. } EM_FRUIT_TYPE;
  22144. ///@brief 检测到的水果信息
  22145. typedef struct tagNET_CANDIDATE_FRUIT_INFO
  22146. {
  22147. UINT nSimilarity; // 相似度
  22148. EM_FRUIT_TYPE emFruitType; // 检测到的水果类型
  22149. BYTE byReserved[1024]; // 保留字节
  22150. } NET_CANDIDATE_FRUIT_INFO;
  22151. ///@brief 事件类型 EVENT_IVS_WEIGHING_PLATFORM_DETECTION(称重平台检测事件) 对应的数据块描述信息
  22152. typedef struct tagDEV_EVENT_WEIGHING_PLATFORM_DETECTION_INFO
  22153. {
  22154. int nChannelID; // 通道号
  22155. int nAction; // 0:脉冲 1:开始 2:停止
  22156. char szName[MAX_EVENT_NAME]; // 事件名称
  22157. double PTS; // 时间戳(单位是毫秒)
  22158. NET_TIME_EX UTC; // 事件发生的时间
  22159. int nEventID; // 事件ID
  22160. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  22161. UINT nCandidateFruitNum; // 检测到的水果信息个数
  22162. NET_CANDIDATE_FRUIT_INFO stuFruitInfos[100]; // 检测到的水果信息
  22163. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景图
  22164. SCENE_IMAGE_INFO_EX stuFruitImage; // 水果抠图
  22165. BYTE byReserved[1024]; // 保留字节
  22166. } DEV_EVENT_WEIGHING_PLATFORM_DETECTION_INFO;
  22167. ///@brief media文件查询条件
  22168. typedef enum __EM_FILE_QUERY_TYPE
  22169. {
  22170. DH_FILE_QUERY_TRAFFICCAR, // 交通车辆信息,对应结构体为MEDIA_QUERY_TRAFFICCAR_PARAM
  22171. DH_FILE_QUERY_ATM, // ATM信息
  22172. DH_FILE_QUERY_ATMTXN, // ATM交易信息
  22173. DH_FILE_QUERY_FACE, // 目标信息 MEDIAFILE_FACERECOGNITION_PARAM 和 MEDIAFILE_FACERECOGNITION_INFO
  22174. DH_FILE_QUERY_FILE, // 文件信息对应 NET_IN_MEDIA_QUERY_FILE 和 NET_OUT_MEDIA_QUERY_FILE
  22175. DH_FILE_QUERY_TRAFFICCAR_EX, // 交通车辆信息, 扩展DH_FILE_QUERY_TRAFFICCAR, 支持更多的字段,对应结构体为MEDIA_QUERY_TRAFFICCAR_PARAM_EX
  22176. DH_FILE_QUERY_FACE_DETECTION, // 目标检测事件信息 MEDIAFILE_FACE_DETECTION_PARAM 和 MEDIAFILE_FACE_DETECTION_INFO
  22177. DH_FILE_QUERY_IVS_EVENT, // 智能事件信息 MEDIAFILE_IVS_EVENT_PARAM 和 MEDIAFILE_IVS_EVENT_INFO
  22178. DH_FILE_QUERY_ANALYSE_OBJECT, // 智能分析其他物体(人和车除外) MEDIAFILE_ANALYSE_OBJECT_PARAM 和 MEDIAFILE_ANALYSE_OBJECT_INFO
  22179. DH_FILE_QUERY_MPT_RECORD_FILE, // MPT设备的录像文件 MEDIAFILE_MPT_RECORD_FILE_PARAM 和 MEDIAFILE_MPT_RECORD_FILE_INFO
  22180. DH_FILE_QUERY_XRAY_DETECTION, // X光检包裹信息对应 MEDIAFILE_XRAY_DETECTION_PARAM 和 MEDIAFILE_XRAY_DETECTION_INFO
  22181. DH_FILE_QUERY_HUMAN_TRAIT, // 人体检测 MEDIAFILE_HUMAN_TRAIT_PARAM 和 MEDIAFILE_HUMAN_TRAIT_INFO
  22182. DH_FILE_QUERY_NONMOTOR, // 非机动车查询, MEDIAFILE_NONMOTOR_PARAM 和 MEDIAFILE_NONMOTOR_INFO
  22183. DH_FILE_QUERY_DOORCONTROL_RECORD, // 门打开事件查询, MEDIAFILE_DOORCONTROL_RECORD_PARAM 和 MEDIAFILE_DOORCONTROL_RECORD_INFO
  22184. DH_FILE_QUERY_FACEBODY_DETECT, // 人像检测查询,MEDIAFILE_FACEBODY_DETECT_PARAM 和 MEDIAFILE_FACEBODY_DETECT_INFO
  22185. DH_FILE_QUERY_FACEBODY_ANALYSE, // 人像识别查询,MEDIAFILE_FACEBODY_ANALYSE_PARAM 和 MEDIAFILE_FACEBODY_ANALYSE_INFO
  22186. DH_FILE_QUERY_FILE_EX, // 文件信息扩展(定制),对应 NET_IN_MEDIA_QUERY_FILE 和 NET_OUT_MEDIA_QUERY_FILE
  22187. // 此时 NET_IN_MEDIA_QUERY_FILE 中的 stuEventInfo 字段有效, nEventLists 及 nEventCount字段无效
  22188. DH_FILE_QUERY_SNAPSHOT_WITH_MARK, // 标记抓图查询, 对应MEDIAFILE_SNAPSHORT_WITH_MARK_PARAM 和MEDIAFILE_SNAPSHORT_WITH_MARK_INFO
  22189. DH_FILE_QUERY_ANATOMY_TEMP_DETECT, // 人体测温信息查询, 对应 MEDIAFILE_ANATOMY_TEMP_DETECT_PARAM 和 MEDIAFILE_ANATOMY_TEMP_DETECT_INFO
  22190. DH_FILE_QUERY_ILLEGAL_TRAFFIC, // 违停车辆查询,对应 MEDIAFILE_ILLEGAL_TRAFFIC_PARAM 和 MEDIAFILE_ILLEGAL_TRAFFIC_INFO
  22191. DH_FILE_QUERY_SMOKE_FIRE, // 烟火检测查询,对应 MEDIAFILE_SMOKE_FIRE_PARAM 和 MEDIAFILE_SMOKE_FIRE_INFO
  22192. DH_FILE_QUERY_FIRE_CONTROL_MONITOR, // 消控室值班行为检测事件查询,对应 MEDIAFILE_FIRE_CONTROL_MONITOR_PARAM 和 MEDIAFILE_FIRE_CONTROL_MONITOR_INFO
  22193. DH_FILE_QUERY_FIRE_LANE_DETECTION, // 消防通道占道检测查询,对应 MEDIAFILE_FIRE_LANE_DETECTION_PARAM 和 MEDIAFILE_FIRE_LANE_DETECTION_INFO
  22194. DH_FILE_QUERY_NONMOTOR_ENTRYING, // 安全隐患检测查询,对应 MEDIAFILE_NONMOTOR_ENTRYING_PARAM 和 MEDIAFILE_NONMOTOR_ENTRYING_INFO
  22195. DH_FILE_QUERY_WORK_CLOTHES_DETECTION, // 作业管控查询,对应 MEDIAFILE_WORK_CLOTHES_DETECTION_PARAM 和 MEDIAFILE_WORK_CLOTHES_DETECTION_INFO
  22196. DH_FILE_QUERY_INTELLIGENT_CITY_MANAGER, // 智慧城管查询查询,对应 MEDIAFILE_INTELLIGENT_CITY_MANAGER_PARAM 和 MEDIAFILE_INTELLIGENT_CITY_MANAGER_INFO
  22197. DH_FILE_QUERY_SMD_RECORD_FILE, // 智能动态监测(SMD) 录像查询, 对应 MEDIAFILE_SMD_RECORD_FILE_PARAM 和 MEDIAFILE_SMD_RECORD_FILE_INFO
  22198. DH_FILE_QUERY_MOBILE_ENFORCE, // 采集站和手持终端文件信息查询,对应 MEDIAFILE_MOBILE_ENFORCE_PARAM 和 MEDIAFILE_MOBILE_ENFORCE_INFO
  22199. DH_FILE_QUERY_SMART_KITCHEN_CLOTHES_DETECTION, // 智慧厨房查询,对应 MEDIAFILE_SMART_KITCHEN_CLOTHES_DETECTION_PARAM 和 MEDIAFILE_SMART_KITCHEN_CLOTHES_DETECTION_INFO
  22200. DH_FILE_QUERY_WATER_CONSERVANCY_SEARCH, // 水利查询, 对应MEDIAFILE_WATER_CONSERVANCY_SEARCH_PARAM和MEDIAFILE_WATER_CONSERVANCY_SEARCH_INFO
  22201. DH_FILE_QUERY_BREAK_RULE_BUILDING_SEARCH, // 违章建筑查询, 对应MEDIAFILE_BREAK_RULE_BUILDING_SEARCH_PARAM和MEDIAFILE_BREAK_RULE_BUILDING_SEARCH_INFO
  22202. DH_FILE_QUERY_BOAT_SEARCH, // 船只查询, 对应MEDIAFILE_BOAT_SEARCH_PARAM和MEDIAFILE_BOAT_SEARCH_INFO
  22203. DH_FILE_QUERY_RADAR_REGION_DETECTION, // 雷达报警事件查询, 对应 MEDIAFILE_RADAR_REGION_DETECTION_PARAM 和 MEDIAFILE_RADAR_REGION_DETECTION_INFO
  22204. DH_FILE_QUERY_EXAM, // 按照考生或考场信息查找录像, 对应 NET_MEDIAFILE_EXAM_PARAM 和 NET_MEDIAFILE_EXAM_INFO
  22205. DH_FILE_QUERY_POLICEID, // 通过用户 ID、警车 ID、警察局 ID搜索录像, 对应 NET_MEDIAFILE_POLICEID_PARAM和 NET_OUT_MEDIA_QUERY_FILE
  22206. } EM_FILE_QUERY_TYPE;
  22207. ///@brief ATM交易类型
  22208. typedef enum
  22209. {
  22210. ATM_TRADE_ALL, // 所有类型
  22211. ATM_TRADE_ENQUIRY, // 查询
  22212. ATM_TRADE_WITHDRAW, // 取款
  22213. ATM_TRADE_MODIFY_PASSWORD, // 修改密码
  22214. ATM_TRADE_TRANSFER, // 转账
  22215. ATM_TRADE_DEPOSIT, // 存款
  22216. ATM_TRADE_CARDLESS_ENQUIRY, // 无卡查询
  22217. ATM_TRADE_CARDLESS_DEPOSIT, // 无卡存款
  22218. ATM_TRADE_OTHER, // 其他
  22219. }EM_ATM_TRADE_TYPE;
  22220. ///@brief 卡号录像信息
  22221. typedef struct
  22222. {
  22223. DWORD dwSize;
  22224. int nType; // 类型, 0-Card, 1-Field
  22225. char szCardNo[DH_MAX_CARD_INFO_LEN]; // 卡号
  22226. EM_ATM_TRADE_TYPE emTradeType; // 交易类型
  22227. char szAmount[DH_COMMON_STRING_64]; // 交易金额, 空字符串表示不限金额
  22228. int nError; // 错误码, 0-所有错误, 1-吞钞, 2-吞卡
  22229. int nFieldCount; // 域数量, 按域查询时有效
  22230. char szFields[MAX_CARD_RECORD_FIELD_NUM][DH_COMMON_STRING_256]; // 域信息, 按域查询时有效
  22231. char szChange[DH_COMMON_STRING_32]; // 零钱
  22232. }NET_RECORD_CARD_INFO;
  22233. #define MAX_IVS_EVENT_NUM 256
  22234. #define MAX_QUERY_USER_NUM 4 // 最大查询用户个数
  22235. ///@brief 查询结果排序方式
  22236. typedef enum tagEM_RESULT_ORDER_TYPE
  22237. {
  22238. EM_RESULT_ORDER_UNKNOWN, // 未知
  22239. EM_RESULT_ORDER_ASCENT_BYTIME, // 按时间升序排序
  22240. EM_RESULT_ORDER_DESCENT_BYTIME, // 按时间降序排序
  22241. }EM_RESULT_ORDER_TYPE;
  22242. ///@brief 录像信息对应 CLIENT_FindFileEx 接口的 DH_FILE_QUERY_FILE / DH_FILE_QUERY_FILE_EX 命令 查询条件
  22243. ///@brief 目前支持通过路径查询
  22244. typedef struct tagNET_IN_MEDIA_QUERY_FILE
  22245. {
  22246. DWORD dwSize; // 结构体大小
  22247. char* szDirs; // 工作目录列表,一次可查询多个目录,为空表示查询所有目录。目录之间以分号分隔,如“/mnt/dvr/sda0;/mnt/dvr/sda1”,szDirs==null 或"" 表示查询所有
  22248. int nMediaType; // 文件类型,0:查询任意类型,1:查询jpg图片,2:查询dav
  22249. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  22250. NET_TIME stuStartTime; // 开始时间
  22251. NET_TIME stuEndTime; // 结束时间
  22252. int nEventLists[MAX_IVS_EVENT_NUM]; // 事件类型列表,参见智能分析事件类型
  22253. int nEventCount; // 事件总数
  22254. BYTE byVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3 5-所有的辅码流类型
  22255. BYTE bReserved[3]; // 字节对齐
  22256. EM_RECORD_SNAP_FLAG_TYPE emFalgLists[FLAG_TYPE_MAX]; // 录像或抓图文件标志, 不设置标志表示查询所有文件
  22257. int nFalgCount; // 标志总数
  22258. NET_RECORD_CARD_INFO stuCardInfo; // 卡号录像信息, emFalgLists包含卡号录像时有效
  22259. int nUserCount; // 用户名有效个数
  22260. char szUserName[MAX_QUERY_USER_NUM][DH_NEW_USER_NAME_LENGTH]; // 用户名
  22261. EM_RESULT_ORDER_TYPE emResultOrder; // 查询结果排序方式
  22262. BOOL bTime; // 是否按时间查询
  22263. NET_EM_COMBINATION_MODE emCombination; // 查询结果是否合并录像文件
  22264. EVENT_INFO stuEventInfo[16]; // 事件信息(定制),当查询为 DH_FILE_QUERY_FILE_EX 类型时有效
  22265. int nEventInfoCount; // stuEventInfo 个数
  22266. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  22267. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  22268. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  22269. }NET_IN_MEDIA_QUERY_FILE;
  22270. ///@brief 文件摘要信息
  22271. typedef struct
  22272. {
  22273. char szKey[DH_COMMON_STRING_64]; // 摘要名称
  22274. char szValue[DH_COMMON_STRING_512]; // 摘要内容
  22275. BYTE bReserved[256]; // 保留字段
  22276. }NET_FILE_SUMMARY_INFO;
  22277. ///@brief 录像文件的状态
  22278. typedef enum tagEM_VIDEO_FILE_STATE
  22279. {
  22280. EM_VIDEO_FILE_STATE_UNKNOWN, // 未知
  22281. EM_VIDEO_FILE_STATE_TEMPORARY, // 正在写
  22282. EM_VIDEO_FILE_STATE_COMPLETE, // 已写完并正常关闭文件句柄
  22283. } EM_VIDEO_FILE_STATE;
  22284. ///@brief 录像信息对应 CLIENT_FindFileEx 接口的 DH_FILE_QUERY_FILE / DH_FILE_QUERY_FILE_EX 命令 查询结果
  22285. typedef struct
  22286. {
  22287. DWORD dwSize; // 结构体大小
  22288. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  22289. NET_TIME stuStartTime; // 开始时间
  22290. NET_TIME stuEndTime; // 结束时间
  22291. unsigned int nFileSize; // 文件长度,该字段废弃,使用nFileSizeEx字段
  22292. BYTE byFileType; // 文件类型 1:jpg图片, 2: dav
  22293. BYTE byDriveNo; // 该字段已废弃,后续开发使用 nDriveNo成员
  22294. BYTE byPartition; // 分区号
  22295. BYTE byVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流 4-辅码流
  22296. unsigned int nCluster; // 簇号
  22297. char szFilePath[MAX_PATH]; // 文件路径
  22298. int nEventLists[MAX_IVS_EVENT_NUM]; // 关联的事件列表,事件类型列表,参见智能分析事件类型
  22299. int nEventCount; //事件总数
  22300. EM_RECORD_SNAP_FLAG_TYPE emFalgLists[FLAG_TYPE_MAX]; // 录像或抓图文件标志
  22301. int nFalgCount; //标志总数
  22302. unsigned int nDriveNo; // 磁盘号
  22303. /*频浓缩文件相关信息*/
  22304. char szSynopsisPicPath[DH_COMMON_STRING_512]; // 预处理文件提取到的快照 文件路径
  22305. // 支持HTTP URL表示
  22306. // 支持FTP URL表示
  22307. // 支持服务器本地路径
  22308. // a)"C:/pic/1.jpg"
  22309. // b)"/mnt//2010/8/11/dav/15:40:50.jpg"
  22310. int nSynopsisMaxTime; // 支持浓缩视频最大时间长度,单位 秒
  22311. int nSynopsisMinTime; // 支持浓缩视频最小时间长度,单位 秒
  22312. /*文件摘要信息*/
  22313. int nFileSummaryNum; // 文件摘要信息数
  22314. NET_FILE_SUMMARY_INFO stFileSummaryInfo[MAX_FILE_SUMMARY_NUM]; // 文件摘要信息
  22315. INT64 nFileSizeEx; // 文件长度扩展,支持文件长度大于4G,单位字节
  22316. UINT nTotalFrame; // 查询录像段内所有帧总和,不区分帧类型(定制)
  22317. EM_VIDEO_FILE_STATE emFileState; // 录像文件的状态
  22318. char szWorkDir[256]; // 录像文件的存储目录
  22319. char szThumbnail[260]; // 缩略图路径,可根据该路径下载缩略图
  22320. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  22321. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  22322. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  22323. }NET_OUT_MEDIA_QUERY_FILE;
  22324. ///@brief 安全带状态
  22325. typedef enum tagEM_SAFE_BELT_STATE
  22326. {
  22327. EM_SAFE_BELT_UNKNOWN, // 未知
  22328. EM_SAFE_BELT_OTHER, // 未识别
  22329. EM_SAFE_BELT_WITH, // 有安全带
  22330. EM_SAFE_BELT_WITHOUT, // 无安全带
  22331. } EM_SAFE_BELT_STATE;
  22332. ///@brief 车内饰品类型
  22333. typedef enum tagEM_ATTACHMENT_TYPE
  22334. {
  22335. EM_ATTACHMENT_UNKNOWN, // 未知
  22336. EM_ATTACHMENT_OTHER, // 其他类型
  22337. EM_ATTACHMENT_FURNITURE, // 摆件
  22338. EM_ATTACHMENT_PENDANT, // 挂件
  22339. EM_ATTACHMENT_TISSUEBOX, // 纸巾盒
  22340. EM_ATTACHMENT_DANGER, // 危险品
  22341. EM_ATTACHMENT_PERFUMEBOX, // 香水
  22342. } EM_ATTACHMENT_TYPE;
  22343. ///@brief 打电话状态
  22344. typedef enum tagEM_CALLING_STATE
  22345. {
  22346. EM_CALLING_UNKNOWN, // 未知
  22347. EM_CALLING_OTHER, // 未识别
  22348. EM_CALLING_NO, // 未打电话
  22349. EM_CALLING_YES, // 打电话
  22350. } EM_CALLING_STATE;
  22351. ///@brief 车辆类型
  22352. typedef enum tagEM_CATEGORY_TYPE
  22353. {
  22354. EM_CATEGORY_UNKNOWN, // 未知
  22355. EM_CATEGORY_OTHER, // 其他
  22356. EM_CATEGORY_MOTOR, // 机动车
  22357. EM_CATEGORY_BUS, // 公交车
  22358. EM_CATEGORY_UNLICENSED_MOTOR, // 无牌机动车
  22359. EM_CATEGORY_LARGE_CAR, // 大型汽车
  22360. EM_CATEGORY_MICRO_CAR, // 小型汽车
  22361. EM_CATEGORY_EMBASSY_CAR, // 使馆汽车
  22362. EM_CATEGORY_MARGINAL_CAR, // 领馆汽车
  22363. EM_CATEGORY_AREAOUT_CAR, // 境外汽车
  22364. EM_CATEGORY_FOREIGN_CAR, // 外籍汽车
  22365. EM_CATEGORY_FARMTRANSMIT_CAR, // 农用运输车
  22366. EM_CATEGORY_TRACTOR, // 拖拉机
  22367. EM_CATEGORY_TRAILER, // 挂车
  22368. EM_CATEGORY_COACH_CAR, // 教练汽车
  22369. EM_CATEGORY_TRIAL_CAR, // 试验汽车
  22370. EM_CATEGORY_TEMPORARY_ENTRY_CAR, // 临时入境汽车
  22371. EM_CATEGORY_TEMPORARY_ENTRY_MOTORCYCLE, // 临时入境摩托
  22372. EM_CATEGORY_TEMPORARY_STEER_CAR, // 临时行驶车
  22373. EM_CATEGORY_LARGE_TRUCK, // 大货车
  22374. EM_CATEGORY_MID_TRUCK, // 中货车
  22375. EM_CATEGORY_MICRO_TRUCK, // 小货车
  22376. EM_CATEGORY_MICROBUS, // 面包车
  22377. EM_CATEGORY_SALOON_CAR, // 轿车
  22378. EM_CATEGORY_CARRIAGE, // 小轿车
  22379. EM_CATEGORY_MINI_CARRIAGE, // 微型轿车
  22380. EM_CATEGORY_SUV_MPV, // SUV或者MPV
  22381. EM_CATEGORY_SUV, // SUV
  22382. EM_CATEGORY_MPV, // MPV
  22383. EM_CATEGORY_PASSENGER_CAR, // 客车
  22384. EM_CATEGORY_MOTOR_BUS, // 大客
  22385. EM_CATEGORY_MID_PASSENGER_CAR, // 中客车
  22386. EM_CATEGORY_MINI_BUS, // 小客车
  22387. EM_CATEGORY_PICKUP, // 皮卡车
  22388. EM_CATEGORY_OILTANK_TRUCK, // 油罐车
  22389. EM_CATEGORY_TANK_CAR, // 危化品车辆
  22390. EM_CATEGORY_SLOT_TANK_CAR, // 槽罐车
  22391. EM_CATEGORY_DREGS_CAR, // 渣土车
  22392. EM_CATEGORY_CONCRETE_MIXER_TRUCK, // 混凝土搅拌车
  22393. EM_CATEGORY_TAXI, // 出租车
  22394. EM_CATEGORY_POLICE, // 警车
  22395. EM_CATEGORY_AMBULANCE, // 救护车
  22396. EM_CATEGORY_GENERAL, // 普通车
  22397. EM_CATEGORY_WATERING_CAR, // 洒水车
  22398. EM_CATEGORY_FIRE_ENGINE, // 消防车
  22399. EM_CATEGORY_MACHINE_TRUCK, // 工程车
  22400. EM_CATEGORY_POWER_LOT_VEHICLE, // 粉粒物料车
  22401. EM_CATEGORY_SUCTION_SEWAGE_TRUCK, // 吸污车
  22402. EM_CATEGORY_NORMAL_TANK_TRUCK, // 普通罐车
  22403. EM_CATEGORY_SCHOOL_BUS, // 校车
  22404. EM_CATEGORY_EXCAVATOR, // 挖掘车
  22405. EM_CATEGORY_BULLDOZER, // 推土车
  22406. EM_CATEGORY_CRANE, // 吊车
  22407. EM_CATEGORY_PIMP_TRUCK, // 泵车
  22408. EM_CATEGORY_FORKLIFT, // 叉车
  22409. EM_CATEGORY_ELECTRICBIKE, // 二轮电瓶车
  22410. EM_CATEGORY_NON_MOTOR, // 非机动车
  22411. } EM_CATEGORY_TYPE;
  22412. ///@brief DH_MEDIA_QUERY_TRAFFICCAR对应的查询条件 参数扩展
  22413. typedef struct tagNET_MEDIA_QUERY_TRAFFICCAR_PARAM_EX
  22414. {
  22415. char szViolationCode[16]; // 违法代码
  22416. char szCountry[4]; // 国籍,2字节,符合ISO3166规范
  22417. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发StartTime, EndTime), 为FALSE表示仅下发StartTime, EndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  22418. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(StartTime, EndTime)互斥
  22419. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(StartTime, EndTime)互斥
  22420. char szPlateCode[16]; //车牌代码
  22421. BYTE byReserved[952]; // 保留字节
  22422. }NET_MEDIA_QUERY_TRAFFICCAR_PARAM_EX;
  22423. ///@brief DH_MEDIA_QUERY_TRAFFICCAR对应的查询条件
  22424. typedef struct
  22425. {
  22426. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  22427. NET_TIME StartTime; // 开始时间
  22428. NET_TIME EndTime; // 结束时间
  22429. int nMediaType; // 文件类型,0:任意类型, 1:jpg图片, 2:dav文件
  22430. int nEventType; // 事件类型,详见"智能分析事件类型", 0:表示查询任意事件,此参数废弃,请使用pEventTypes
  22431. char szPlateNumber[32]; // 车牌号, "\0"则表示查询任意车牌号
  22432. int nSpeedUpperLimit; // 查询的车速范围; 速度上限 单位: km/h
  22433. int nSpeedLowerLimit; // 查询的车速范围; 速度下限 单位: km/h
  22434. BOOL bSpeedLimit; // 是否按速度查询; TRUE:按速度查询,nSpeedUpperLimit和nSpeedLowerLimit有效。
  22435. DWORD dwBreakingRule; // 违章类型:
  22436. // 当事件类型为 EVENT_IVS_TRAFFICGATE时
  22437. // 第一位:逆行; 第二位:压线行驶; 第三位:超速行驶;
  22438. // 第四位:欠速行驶; 第五位:闯红灯;
  22439. // 当事件类型为 EVENT_IVS_TRAFFICJUNCTION
  22440. // 第一位:闯红灯; 第二位:不按规定车道行驶;
  22441. // 第三位:逆行; 第四位:违章掉头;
  22442. // 第五位:压线行驶;
  22443. char szPlateType[32]; // 车牌类型,"Unknown" 未知,"Normal" 蓝牌黑牌,"Yellow" 黄牌,"DoubleYellow" 双层黄尾牌,"Police" 警牌,"SAR" 港澳特区号牌,"Trainning" 教练车号牌
  22444. // "Personal" 个性号牌,"Agri" 农用牌,"Embassy" 使馆号牌,"Moto" 摩托车号牌,"Tractor" 拖拉机号牌,"Other" 其他号牌
  22445. // "Civilaviation"民航号牌,"Black"黑牌
  22446. // "PureNewEnergyMicroCar"纯电动新能源小车,"MixedNewEnergyMicroCar,"混合新能源小车,"PureNewEnergyLargeCar",纯电动新能源大车
  22447. // "MixedNewEnergyLargeCar"混合新能源大车
  22448. char szPlateColor[16]; // 车牌颜色, "Blue"蓝色,"Yellow"黄色, "White"白色,"Black"黑色
  22449. char szVehicleColor[16]; // 车身颜色:"White"白色, "Black"黑色, "Red"红色, "Yellow"黄色, "Gray"灰色, "Blue"蓝色,"Green"绿色
  22450. char szVehicleSize[16]; // 车辆大小类型:"Light-duty":小型车;"Medium":中型车; "Oversize":大型车; "Unknown": 未知
  22451. int nGroupID; // 事件组编号(此值>=0时有效)
  22452. short byLane; // 车道号(此值>=0时表示具体车道,-1表示所有车道,即不下发此字段)
  22453. BYTE byFileFlag; // 文件标志, 0xFF-使用nFileFlagEx, 0-表示所有录像, 1-定时文件, 2-手动文件, 3-事件文件, 4-重要文件, 5-合成文件
  22454. BYTE byRandomAccess; // 是否需要在查询过程中随意跳转,0-不需要,1-需要
  22455. int nFileFlagEx; // 文件标志, 按位表示: bit0-定时文件, bit1-手动文件, bit2-事件文件, bit3-重要文件, bit4-合成文件, bit5-禁止名单图片 0xFFFFFFFF-所有录像
  22456. int nDirection; // 车道方向(车开往的方向) 0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北 8-未知 -1-所有方向
  22457. char* szDirs; // 工作目录列表,一次可查询多个目录,为空表示查询所有目录。目录之间以分号分隔,如“/mnt/dvr/sda0;/mnt/dvr/sda1”,szDirs==null 或"" 表示查询所有
  22458. int* pEventTypes; // 待查询的事件类型数组指针,事件类型,详见"智能分析事件类型",若为NULL则认为查询所有事件(缓冲需由用户申请)
  22459. int nEventTypeNum; // 事件类型数组大小
  22460. char* pszDeviceAddress; // 设备地址, NULL表示该字段不起作用
  22461. char* pszMachineAddress; // 机器部署地点, NULL表示该字段不起作用
  22462. char* pszVehicleSign; // 车辆标识, 例如 "Unknown"-未知, "Audi"-奥迪, "Honda"-本田... NULL表示该字段不起作用
  22463. WORD wVehicleSubBrand; // 车辆子品牌 需要通过映射表得到真正的子品牌 映射表详见开发手册
  22464. WORD wVehicleYearModel; // 车辆品牌年款 需要通过映射表得到真正的年款 映射表详见开发手册
  22465. EM_SAFE_BELT_STATE emSafeBeltState; // 安全带状态
  22466. EM_CALLING_STATE emCallingState; // 打电话状态
  22467. EM_ATTACHMENT_TYPE emAttachMentType; // 车内饰品类型
  22468. EM_CATEGORY_TYPE emCarType; // 车辆类型
  22469. NET_MEDIA_QUERY_TRAFFICCAR_PARAM_EX* pstuTrafficCarParamEx; // 参数扩展
  22470. int bReserved[4]; // 保留字段
  22471. } MEDIA_QUERY_TRAFFICCAR_PARAM;
  22472. ///@brief 加油类型
  22473. typedef enum tagEM_REFUEL_TYPE
  22474. {
  22475. EM_REFUEL_TYPE_UNKNOWN = 0, // unknown
  22476. EM_REFUEL_TYPE_NINETY_EIGHT, // "98#"
  22477. EM_REFUEL_TYPE_NINETY_SEVEN, // "97#"
  22478. EM_REFUEL_TYPE_NINETY_FIVE, // "95#"
  22479. EM_REFUEL_TYPE_NINETY_THREE, // "93#"
  22480. EM_REFUEL_TYPE_NINETY, // "90#"
  22481. EM_REFUEL_TYPE_TEN, // "10#"
  22482. EM_REFUEL_TYPE_FIVE, // "5#"
  22483. EM_REFUEL_TYPE_ZERO, // "0#"
  22484. EM_REFUEL_TYPE_NEGATIVE_TEN, // "-10#"
  22485. EM_REFUEL_TYPE_NEGATIVE_TWENTY, // "-20#"
  22486. EM_REFUEL_TYPE_NEGATIVE_THIRTY_FIVE, // "-35#"
  22487. EM_REFUEL_TYPE_NEGATIVE_FIFTY, // "-50#"
  22488. }EM_REFUEL_TYPE;
  22489. ///@brief DH_MEDIA_QUERY_TRAFFICCAR查询出来的media文件信息
  22490. typedef struct
  22491. {
  22492. unsigned int ch; // 通道号
  22493. char szFilePath[128]; // 文件路径
  22494. unsigned int size; // 文件长度,该字段废弃,请使用sizeEx
  22495. NET_TIME starttime; // 开始时间
  22496. NET_TIME endtime; // 结束时间
  22497. unsigned int nWorkDirSN; // 工作目录编号
  22498. BYTE nFileType; // 文件类型 1:图片 2:视频
  22499. BYTE bHint; // 文件定位索引
  22500. BYTE bDriveNo; // 磁盘号
  22501. BYTE bReserved2;
  22502. unsigned int nCluster; // 簇号
  22503. BYTE byPictureType; // 图片类型或文件标记, 0-普通, 1-合成, 2-抠图。更多文件标记信息请参考 MEDIAFILE_TRAFFICCAR_INFO_EX 的 emFalgLists 字段
  22504. BYTE byVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流
  22505. BYTE byPartition; // 精确定位号
  22506. BYTE bReserved[1]; // 保留字段
  22507. /*以下是交通车辆信息*/
  22508. char szPlateNumber[32]; // 车牌号码
  22509. char szPlateType[32]; // 号牌类型"Unknown" 未知; "Normal" 蓝牌黑牌; "Yellow" 黄牌; "DoubleYellow" 双层黄尾牌
  22510. // "Police" 警牌; "SAR" 港澳特区号牌; "Trainning" 教练车号牌; "Personal" 个性号牌; "Agri" 农用牌
  22511. // "Embassy" 使馆号牌; "Moto" 摩托车号牌; "Tractor" 拖拉机号牌; "Other" 其他号牌
  22512. // "Civilaviation"民航号牌,"Black"黑牌
  22513. // "PureNewEnergyMicroCar"纯电动新能源小车,"MixedNewEnergyMicroCar,"混合新能源小车,"PureNewEnergyLargeCar",纯电动新能源大车
  22514. // "MixedNewEnergyLargeCar"混合新能源大车
  22515. char szPlateColor[16]; // 车牌颜色:"Blue","Yellow", "White","Black"
  22516. char szVehicleColor[16]; // 车身颜色:"White", "Black", "Red", "Yellow", "Gray", "Blue","Green"
  22517. int nSpeed; // 车速,单位Km/H
  22518. int nEventsNum; // 关联的事件个数
  22519. int nEvents[32]; // 关联的事件列表,数组值表示相应的事件,详见"智能分析事件类型"
  22520. DWORD dwBreakingRule; // 具体违章类型掩码,第一位:闯红灯; 第二位:不按规定车道行驶;
  22521. // 第三位:逆行; 第四位:违章掉头;否则默认为:交通路口事件
  22522. char szVehicleSize[16]; // 车辆大小类型:"Light-duty":小型车;"Medium":中型车; "Oversize":大型车
  22523. char szChannelName[DH_CHAN_NAME_LEN]; // 本地或远程的通道名称
  22524. char szMachineName[DH_MAX_NAME_LEN]; // 本地或远程设备名称
  22525. int nSpeedUpperLimit; // 速度上限 单位: km/h
  22526. int nSpeedLowerLimit; // 速度下限 单位: km/h
  22527. int nGroupID; // 事件里的组编号
  22528. BYTE byCountInGroup; // 一个事件组内的抓拍张数
  22529. BYTE byIndexInGroup; // 一个事件组内的抓拍序号
  22530. BYTE byLane; // 车道,参见MEDIA_QUERY_TRAFFICCAR_PARAM
  22531. BYTE bReserved1[21]; // 保留
  22532. NET_TIME stSnapTime; // 抓拍时间
  22533. int nDirection; // 车道方向,参见MEDIA_QUERY_TRAFFICCAR_PARAM
  22534. char szMachineAddress[MAX_PATH]; // 机器部署地点
  22535. INT64 sizeEx; // 文件长度扩展,支持文件长度大于4G,单位字节
  22536. } MEDIAFILE_TRAFFICCAR_INFO, *LPMEDIAFILE_TRAFFICCAR_INFO;
  22537. ///@brief DH_MEDIA_QUERY_TRAFFICCAR_EX对应的查询条件
  22538. typedef struct tagMEDIA_QUERY_TRAFFICCAR_PARAM_EX
  22539. {
  22540. DWORD dwSize;
  22541. MEDIA_QUERY_TRAFFICCAR_PARAM stuParam; // 基本查询参数
  22542. } MEDIA_QUERY_TRAFFICCAR_PARAM_EX;
  22543. ///@brief 车内饰品信息
  22544. typedef struct tagNET_ATTACH_MENET_INFO
  22545. {
  22546. EM_ATTACHMENT_TYPE emAttachMentType; // 车内物品类型
  22547. BYTE bReserved1[128]; // 保留字节
  22548. } NET_ATTACH_MENET_INFO;
  22549. ///@brief 是否抽烟
  22550. typedef enum tagEM_SMOKING_STATE
  22551. {
  22552. EM_SMOKING_UNKNOWN, // 未知
  22553. EM_SMOKING_NO, // 未抽烟
  22554. EM_SMOKING_YES, // 抽烟
  22555. }EM_SMOKING_STATE;
  22556. ///@brief 上传标识
  22557. typedef enum tagEM_UPLOAD_FLAG
  22558. {
  22559. EM_UPLOAD_FLAG_UNKNOWN = 0, // 未知
  22560. EM_UPLOAD_FLAG_SUCCEED, // 成功
  22561. EM_UPLOAD_FLAG_FAILED, // 失败
  22562. }EM_UPLOAD_FLAG;
  22563. ///@brief 客户端信息
  22564. typedef struct tagNET_UPLOAD_CLIENT_INFO
  22565. {
  22566. char szClientID[20]; // 平台客户端的标识,当前是IPv4地址或者MAC地址
  22567. EM_UPLOAD_FLAG emUploadFlag; // 平台上传标识
  22568. NET_TIME stuUploadTime; // 上传到平台的UTC时间
  22569. BYTE byReserved[64]; // 预留
  22570. }NET_UPLOAD_CLIENT_INFO;
  22571. ///@brief 车牌图片信息
  22572. typedef struct tagNET_PLATE_IMAGE_INFO
  22573. {
  22574. char szFilePath[128]; // 图片文件路径
  22575. int nLength; // 图片文件大小,单位:字节
  22576. char szReserved[252]; // 预留字段
  22577. }NET_PLATE_IMAGE_INFO;
  22578. ///@brief 车身图片信息
  22579. typedef struct tagNET_CARBODY_IMAGE_INFO
  22580. {
  22581. char szFilePath[128]; // 图片文件路径
  22582. int nLength; // 图片文件大小,单位:字节
  22583. char szReserved[252]; // 预留字段
  22584. }NET_CARBODY_IMAGE_INFO;
  22585. ///@brief DH_MEDIA_QUERY_TRAFFICCAR_EX查询出来的文件信息
  22586. typedef struct tagMEDIAFILE_TRAFFICCAR_INFO_EX
  22587. {
  22588. DWORD dwSize;
  22589. MEDIAFILE_TRAFFICCAR_INFO stuInfo; // 基本信息
  22590. char szDeviceAddr[DH_COMMON_STRING_256]; // 设备地址
  22591. char szVehicleSign[DH_COMMON_STRING_32]; // 车辆标识, 例如 "Unknown"-未知, "Audi"-奥迪, "Honda"-本田...
  22592. char szCustomParkNo[DH_COMMON_STRING_64]; // 自定义车位号(停车场用)
  22593. WORD wVehicleSubBrand; // 车辆子品牌,需要通过映射表得到真正的子品牌
  22594. WORD wVehicleYearModel; // 车辆年款,需要通过映射表得到真正的年款
  22595. NET_TIME stuEleTagInfoUTC; // 对应电子车牌标签信息中的过车时间(ThroughTime)
  22596. EM_RECORD_SNAP_FLAG_TYPE emFalgLists[FLAG_TYPE_MAX]; // 录像或抓图文件标志
  22597. int nFalgCount; // 标志总数
  22598. EM_SAFE_BELT_STATE emSafeBelSate; // 安全带状态
  22599. EM_CALLING_STATE emCallingState; // 打电话状态
  22600. int nAttachMentNum; // 车内物品个数
  22601. NET_ATTACH_MENET_INFO stuAttachMent[MAX_ATTACHMENT_NUM]; // 车内物品信息
  22602. char szCountry[DH_COMMON_STRING_32]; // 车牌所属国家和地区
  22603. EM_CATEGORY_TYPE emCarType; // 车辆类型
  22604. NET_SUNSHADE_STATE emSunShadeState; // 遮阳板状态
  22605. EM_SMOKING_STATE emSmokingState; // 是否抽烟
  22606. int nAnnualInspection; // 年检标个数
  22607. BYTE byReserved[4]; // 字节对齐
  22608. int nPicIDHigh; // PictureID高四字节
  22609. int nPicIDLow; // PictureID低四字节
  22610. NET_UPLOAD_CLIENT_INFO stuClient1; // 平台客户端1上传信息
  22611. NET_UPLOAD_CLIENT_INFO stuClient2; // 平台客户端2上传信息
  22612. char szExtraPlateNumber[3][32]; // 三地车牌
  22613. int nExtraPlateNumberNum; // 车牌个数
  22614. UINT nEntranceTime; // 车辆进站时间,时间格式:UTC时间
  22615. UINT nOilTime; // 车辆加油时间,时间格式:UTC时间
  22616. UINT nExitTime; // 车辆出站时间,时间格式:UTC时间
  22617. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅starttime和endtime有效(仅使用starttime和endtime, starttime和endtime在MEDIAFILE_TRAFFICCAR_INFO中)
  22618. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  22619. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  22620. NET_PLATE_IMAGE_INFO stuPlateImageInfo; //车牌图片信息
  22621. NET_CARBODY_IMAGE_INFO stuCarBodyImageInfo; //车身图片信息
  22622. char szPlateCode[16]; //车牌代码
  22623. } MEDIAFILE_TRAFFICCAR_INFO_EX;
  22624. ///@brief FINDNEXT查询输入参数
  22625. typedef struct __NET_FINDNEXT_RESERVED
  22626. {
  22627. DWORD dwSize; // 结构体大小
  22628. unsigned int nBeginNumber; // 查询起始序号,表示从beginNumber条记录开始查 0<=beginNumber<= totalCount-1
  22629. }NET_FINDNEXT_RESERVED;
  22630. ///@brief 查询跳转条件
  22631. typedef struct __NET_FINDING_JUMP_OPTION_INFO
  22632. {
  22633. DWORD dwSize;
  22634. int nOffset; // 查询结果偏移量, 是相对于当前查询的第一条查询结果的位置偏移
  22635. }NET_FINDING_JUMP_OPTION_INFO;
  22636. ///@brief DH_FILE_QUERY_FACE对应的目标识别服务查询参数
  22637. typedef struct __MEDIAFILE_FACERECOGNITION_PARAM
  22638. {
  22639. DWORD dwSize; // 结构体大小
  22640. /* 查询过滤条件 */
  22641. NET_TIME stStartTime; // 开始时间
  22642. NET_TIME stEndTime; // 结束时间
  22643. char szMachineAddress[MAX_PATH]; // 地点,支持模糊匹配
  22644. int nAlarmType; // 待查询报警类型,详见 EM_FACERECOGNITION_ALARM_TYPE
  22645. BOOL abPersonInfo; // 人员信息是否有效
  22646. FACERECOGNITION_PERSON_INFO stPersonInfo; // 人员信息
  22647. int nChannelId; // 通道号
  22648. int nGroupIdNum; // 人员组数
  22649. char szGroupId[MAX_GOURP_NUM][DH_COMMON_STRING_64]; // 人员组ID
  22650. BOOL abPersonInfoEx; // 人员信息扩展是否有效
  22651. FACERECOGNITION_PERSON_INFOEX stPersonInfoEx; // 人员信息扩展
  22652. BOOL bSimilaryRangeEnable; //相似度是否有效
  22653. int nSimilaryRange[2]; //相似度范围
  22654. int nFileType; // 文件类型,0:查询任意类型,1:查询jpg图片,2:查询dav
  22655. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stStartTime, stEndTime), 为FALSE表示仅下发stStartTime, stEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  22656. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stStartTime, stEndTime)互斥
  22657. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stStartTime, stEndTime)互斥
  22658. }MEDIAFILE_FACERECOGNITION_PARAM;
  22659. ///@brief 文件信息
  22660. typedef struct tagDH_PIC_INFO_EX
  22661. {
  22662. DWORD dwSize; // 结构体大小
  22663. DWORD dwFileLenth; // 文件大小, 单位:字节
  22664. char szFilePath[MAX_PATH]; // 文件路径
  22665. }DH_PIC_INFO_EX;
  22666. ///@brief 文件信息
  22667. typedef struct tagNET_PIC_INFO
  22668. {
  22669. DWORD dwFileLenth; // 文件大小, 单位:字节
  22670. char szFilePath[MAX_PATH]; // 文件路径
  22671. BYTE bReserved[256]; // 保留字段
  22672. }NET_PIC_INFO;
  22673. ///@brief 当前目标匹配到的候选对象图片文件路径
  22674. typedef struct __NET_CANDIDAT_PIC_PATHS
  22675. {
  22676. DWORD dwSize; // 结构体大小
  22677. int nFileCount; // 实际文件个数
  22678. DH_PIC_INFO_EX stFiles[DH_MAX_PERSON_IMAGE_NUM];//文件信息
  22679. }NET_CANDIDAT_PIC_PATHS;
  22680. ///@brief 当前目标匹配到的候选对象图片文件路径
  22681. typedef struct tagNET_CANDIDAT_PIC_PATHS_EX
  22682. {
  22683. int nFileCount; // 实际文件个数
  22684. NET_PIC_INFO stFiles[DH_MAX_PERSON_IMAGE_NUM];// 文件信息
  22685. BYTE bReserved[256]; // 保留字段
  22686. }NET_CANDIDAT_PIC_PATHS_EX;
  22687. ///@brief 物体截图信息
  22688. typedef struct tagIMAGE_INFO
  22689. {
  22690. int nLength; // 图片大小,单位:字节
  22691. int nWidth; // 图片宽度
  22692. int nHeight; // 图片高度
  22693. char szFilePath[260]; // 文件路径
  22694. BYTE byReserved[512]; // 预留字节
  22695. }IMAGE_INFO;
  22696. ///@brief 目标目标信息
  22697. typedef struct tagFACE_INFO_OBJECT
  22698. {
  22699. IMAGE_INFO stuImageInfo; // 物体截图信息
  22700. EM_DEV_EVENT_FACEDETECT_SEX_TYPE emSex; // 性别类型
  22701. unsigned int nAge; // 年龄
  22702. EM_FACEDETECT_GLASSES_TYPE emGlasses; // 是否戴眼镜
  22703. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotion; // 目标表情
  22704. char szReserved[4];
  22705. EM_EYE_STATE_TYPE emEye; // 眼睛状态
  22706. EM_MOUTH_STATE_TYPE emMouth; // 嘴巴状态
  22707. EM_MASK_STATE_TYPE emMask; // 是否带口罩
  22708. EM_BEARD_STATE_TYPE emBeard; // 是否有胡子
  22709. int nAttractive; // 魅力值,0表示未识别,识别时范围1-100,得分高魅力高
  22710. NET_EULER_ANGLE stuFaceCaptureAngle; // 目标在抓拍图片中的角度信息, nPitch:抬头低头的俯仰角, nYaw左右转头的偏航角, nRoll头在平面内左偏右偏的翻滚角
  22711. // 角度值取值范围[-90,90], 三个角度值都为999表示此角度信息无效
  22712. UINT nFaceQuality; // 目标抓拍质量分数
  22713. double dMaxTemp; // 温度信息
  22714. UINT nIsOverTemp; // 是否温度异常
  22715. UINT nIsUnderTemp; // 是否温度异常
  22716. EM_TEMPERATURE_UNIT emTempUnit; // 温度单位
  22717. BYTE byReserved1[4]; // 预留字段1
  22718. BYTE byReserved[2008]; // 保留字段
  22719. }FACE_INFO_OBJECT;
  22720. ///@brief 通用信息
  22721. typedef struct tagNET_MEDIAFILE_GENERAL_INFO
  22722. {
  22723. char szFilePath[MAX_PATH]; // 图片文件路径
  22724. int nObjectUrlNum; // ObjectUrls的个数
  22725. char szObjectUrls[8][MAX_PATH]; // 小图路径
  22726. BYTE byReserved[4096]; // 保留字段
  22727. }NET_MEDIAFILE_GENERAL_INFO;
  22728. ///@brief DH_FILE_QUERY_FACE对应的目标识别服务FINDNEXT查询返回参数
  22729. typedef struct __MEDIAFILE_FACERECOGNITION_INFO
  22730. {
  22731. DWORD dwSize; // 结构体大小
  22732. BOOL bGlobalScenePic; // 全景图是否存在
  22733. DH_PIC_INFO_EX stGlobalScenePic; // 全景图片文件路径
  22734. DH_MSG_OBJECT stuObject; // 目标目标物体信息
  22735. DH_PIC_INFO_EX stObjectPic; // 目标目标文件路径
  22736. int nCandidateNum; // 当前目标匹配到的候选对象数量
  22737. CANDIDATE_INFO stuCandidates[DH_MAX_CANDIDATE_NUM]; // 当前目标匹配到的候选对象信息
  22738. NET_CANDIDAT_PIC_PATHS stuCandidatesPic[DH_MAX_CANDIDATE_NUM]; // 当前目标匹配到的候选对象图片文件路径
  22739. NET_TIME stTime; // 报警发生时间
  22740. char szAddress[MAX_PATH]; // 报警发生地点
  22741. int nChannelId; // 通道号
  22742. BOOL bUseCandidatesEx; // 是否使用候选对象扩展结构体,
  22743. // 若为TRUE, 则表示使用stuCandidatesEx, 且stuCandidates无效, 否则相反
  22744. int nCandidateExNum; // 当前目标匹配到的候选对象(扩展结构体) 数量
  22745. CANDIDATE_INFOEX stuCandidatesEx[DH_MAX_CANDIDATE_NUM]; // 当前目标匹配到的候选对象信息, 实际返回个数同nCandidateNum
  22746. FACE_INFO_OBJECT stuFaceInfoObject; // 目标目标信息
  22747. NET_POINT stuFaceCenter; // 目标型心(不是包围盒中心), 0-8191相对坐标, 相对于小图
  22748. NET_MEDIAFILE_GENERAL_INFO stuGeneralInfo; // 通用信息
  22749. int nRecNo; // 数据库记录号
  22750. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示stuStartTimeRealUTC和stuEndTimeRealUTC无效
  22751. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  22752. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  22753. }MEDIAFILE_FACERECOGNITION_INFO;
  22754. ///@brief 图片类型
  22755. typedef enum __EM_FACEPIC_TYPE
  22756. {
  22757. NET_FACEPIC_TYPE_UNKOWN, // 未知类型
  22758. NET_FACEPIC_TYPE_GLOBAL_SENCE, // 目标全景大图
  22759. NET_FACEPIC_TYPE_SMALL, // 目标小图
  22760. }EM_FACEPIC_TYPE;
  22761. #define NET_MAX_FRAMESEQUENCE_NUM 2
  22762. #define NET_MAX_TIMESTAMP_NUM 2
  22763. ///@brief 参数详细信息
  22764. typedef struct __MEDIAFILE_FACE_DETECTION_DETAIL_PARAM
  22765. {
  22766. DWORD dwSize;
  22767. DWORD dwObjectId; // 物体ID
  22768. DWORD dwFrameSequence; // 帧序号
  22769. NET_TIME_EX stTime; // 发生时间
  22770. }MEDIAFILE_FACE_DETECTION_DETAIL_PARAM;
  22771. ///@brief DH_FILE_QUERY_FACE_DETECTION 对应的目标识别服务查询参数
  22772. typedef struct __MEDIAFILE_FACE_DETECTION_PARAM
  22773. {
  22774. DWORD dwSize; // 结构体大小
  22775. /* 查询过滤条件 */
  22776. int nChannelID; // 通道号
  22777. NET_TIME stuStartTime; // 起始时间
  22778. NET_TIME stuEndTime; // 结束时间
  22779. EM_FACEPIC_TYPE emPicType; // 图片类型,详见 EM_FACEPIC_TYPE
  22780. BOOL bDetailEnable; // 是否有详细信息
  22781. MEDIAFILE_FACE_DETECTION_DETAIL_PARAM stuDetail; // 参数详细信息
  22782. EM_DEV_EVENT_FACEDETECT_SEX_TYPE emSex; // 性别类型
  22783. BOOL bAgeEnable; // 是否指定年龄段
  22784. int nAgeRange[2]; // 年龄范围
  22785. int nEmotionValidNum; // 目标特征数组有效个数,与 emFeature 结合使用, 如果为0则表示查询所有表情
  22786. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotion[DH_MAX_FACEDETECT_FEATURE_NUM]; // 目标特征数组,与 byFeatureValidNum 结合使用
  22787. EM_FACEDETECT_GLASSES_TYPE emGlasses; // 是否戴眼镜
  22788. EM_MASK_STATE_TYPE emMask; // 是否带口罩
  22789. EM_BEARD_STATE_TYPE emBeard; // 是否有胡子
  22790. int nIsStranger; // 0-都查询;1-仅查未开启陌生人模式;2-仅查开启陌生人模式
  22791. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  22792. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  22793. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  22794. int nChannelIDs[256]; // 通道号数组
  22795. int nChannelNum; // 通道号数组数量
  22796. }MEDIAFILE_FACE_DETECTION_PARAM;
  22797. ///@brief 目标检测记录大图信息
  22798. typedef struct tagNET_FACEDETECT_IMAGE_INFO
  22799. {
  22800. UINT nLength; // 文件大小
  22801. char szFilePath[260]; // 文件路径
  22802. BYTE byReserved[128]; // 保留字段
  22803. } NET_FACEDETECT_IMAGE_INFO;
  22804. ///@brief DH_FILE_QUERY_FACE_DETECTION对应的目标识别服务FINDNEXT查询返回参数
  22805. typedef struct __MEDIAFILE_FACE_DETECTION_INFO
  22806. {
  22807. DWORD dwSize; // 结构体大小
  22808. unsigned int ch; // 通道号
  22809. char szFilePath[128]; // 文件路径
  22810. unsigned int size; // 文件长度,该字段废弃,请使用sizeEx
  22811. NET_TIME starttime; // 开始时间
  22812. NET_TIME endtime; // 结束时间
  22813. unsigned int nWorkDirSN; // 工作目录编号
  22814. BYTE nFileType; // 文件类型 1:jpg图片
  22815. BYTE bHint; // 文件定位索引
  22816. BYTE bDriveNo; // 磁盘号
  22817. BYTE byPictureType; // 图片类型, 0-普通, 1-合成, 2-抠图
  22818. unsigned int nCluster; // 簇号
  22819. EM_FACEPIC_TYPE emPicType; // 图片类型,详见 EM_FACEPIC_TYPE
  22820. DWORD dwObjectId; // 物体ID
  22821. DWORD dwFrameSequence[NET_MAX_FRAMESEQUENCE_NUM]; // 帧序号,数组有2个元素时,第一个表示小图,第二个表示大图
  22822. int nFrameSequenceNum; // 帧序号个数
  22823. NET_TIME_EX stTimes[NET_MAX_TIMESTAMP_NUM]; // 发生时间,数组有2个元素时,第一个表示小图,第二个表示大图
  22824. int nTimeStampNum;
  22825. int nPicIndex; // 表示在簇中的图片序号
  22826. // 对于同一个簇中打包多张图片,提供索引方式定位图片
  22827. EM_DEV_EVENT_FACEDETECT_SEX_TYPE emSex; // 性别类型
  22828. int nAge; // 年龄
  22829. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotion; // 目标表情
  22830. EM_FACEDETECT_GLASSES_TYPE emGlasses; // 否戴眼镜
  22831. INT64 sizeEx; // 文件长度扩展,支持文件长度大于4G,单位字节
  22832. EM_MASK_STATE_TYPE emMask; // 是否带口罩
  22833. EM_BEARD_STATE_TYPE emBeard; // 是否有胡子
  22834. char szReserved1[4];
  22835. EM_EYE_STATE_TYPE emEye; // 眼睛状态
  22836. EM_MOUTH_STATE_TYPE emMouth; // 嘴巴状态
  22837. int nAttractive; // 魅力值
  22838. int nIsStranger; // 0-未知;1-未开启陌生人模式;2-开启了陌生人模式
  22839. char szFaceObjectUrl[128]; // 当 emPicType 为 NET_FACEPIC_TYPE_GLOBAL_SENCE 时, 代表目标小图路径
  22840. NET_EULER_ANGLE stuFaceCaptureAngle; // 目标在抓拍图片中的角度信息, nPitch:抬头低头的俯仰角, nYaw左右转头的偏航角, nRoll头在平面内左偏右偏的翻滚角
  22841. // 角度值取值范围[-90,90], 三个角度值都为999表示此角度信息无效
  22842. UINT nFaceQuality; // 目标抓拍质量分数
  22843. NET_FACEDETECT_IMAGE_INFO stuSceneImage; // 大图信息
  22844. NET_POINT stuFaceCenter; // 目标型心(不是包围盒中心), 0-8191相对坐标, 相对于小图
  22845. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅starttime和endtime有效(仅使用starttime和endtime)
  22846. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  22847. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  22848. }MEDIAFILE_FACE_DETECTION_INFO;
  22849. ///@brief 区域检测事件动作
  22850. typedef enum tagNET_CROSSREGION_ACTION_INFO
  22851. {
  22852. EM_CROSSREGION_ACTION_UNKNOW = 0 ,
  22853. EM_CROSSREGION_ACTION_INSIDE , //在区域内
  22854. EM_CROSSREGION_ACTION_CROSS , //穿越区域
  22855. EM_CROSSREGION_ACTION_APPEAR , //出现
  22856. EM_CROSSREGION_ACTION_DISAPPEAR , //消失
  22857. }NET_CROSSREGION_ACTION_INFO;
  22858. ///@brief 查询智能事件信息的对象类型
  22859. typedef enum tagEM_MEDIAFILE_IVS_OBJECT
  22860. {
  22861. EM_MEDIAFILE_IVS_UNKNOWN, // unknown
  22862. EM_MEDIAFILE_IVS_OTHER, // other
  22863. EM_MEDIAFILE_IVS_HUMAN, // human
  22864. EM_MEDIAFILE_IVS_VEHICLE, // vehicle
  22865. EM_MEDIAFILE_IVS_NONMOTOR, // nonmotor
  22866. } EM_MEDIAFILE_IVS_OBJECT;
  22867. ///@brief DH_FILE_QUERY_IVS_EVENT 对应的智能事件查询参数
  22868. typedef struct __MEDIAFILE_IVS_EVENT_PARAM
  22869. {
  22870. DWORD dwSize; // 结构体大小
  22871. /* 查询过滤条件 */
  22872. int nChannelID; // 通道号
  22873. NET_TIME stuStartTime; // 起始时间
  22874. NET_TIME stuEndTime; // 结束时间
  22875. int nMediaType; // 文件类型,0:任意类型, 1:jpg图片, 2:dav文件
  22876. int nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3
  22877. int nEventLists[MAX_IVS_EVENT_NUM]; // 事件类型列表,参见智能分析事件类型
  22878. int nEventCount; // 事件总数
  22879. EM_RECORD_SNAP_FLAG_TYPE emFalgLists[FLAG_TYPE_MAX]; // 录像或抓图文件标志, 不设置标志表示查询所有文件
  22880. int nFalgCount; // 标志总数
  22881. int nRuleType; // 智能分析事件名, 事件类型,详见"智能分析事件类型"
  22882. NET_CROSSREGION_ACTION_INFO emAction; // 事件动作
  22883. int nIvsObjectNum; // 对象类型个数
  22884. EM_MEDIAFILE_IVS_OBJECT emIvsObject[DH_MAX_OBJECT_LIST]; // 规则触发的对象类型
  22885. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  22886. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  22887. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  22888. }MEDIAFILE_IVS_EVENT_PARAM;
  22889. ///@brief 事件抠图信息
  22890. typedef struct tagNET_EVENT_IMAGE_INFO
  22891. {
  22892. int nImageLength; // 图片长度
  22893. char szImagePath[DH_COMMON_STRING_128]; // 图片路径
  22894. BYTE bReserved[256]; // 保留字段
  22895. } NET_EVENT_IMAGE_INFO;
  22896. ///@brief DH_FILE_QUERY_IVS_EVENT 查询出来的media文件信息
  22897. typedef struct __MEDIAFILE_IVS_EVENT_INFO
  22898. {
  22899. DWORD dwSize; // 结构体大小
  22900. int nChannelID; // 通道号
  22901. NET_TIME stuStartTime; // 起始时间
  22902. NET_TIME stuEndTime; // 结束时间
  22903. char szFilePath[128]; // 文件路径
  22904. int nMediaType; // 文件类型,0:任意类型, 1:jpg图片, 2:dav文件
  22905. unsigned int nFileLength; // 文件长度,该字段废弃,请使用nFileLengthEx
  22906. unsigned int nCluster; // 簇号
  22907. unsigned int nHint; // 文件定位索引
  22908. unsigned int nDriveNo; // 磁盘号
  22909. int nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3
  22910. int nEventLists[MAX_IVS_EVENT_NUM]; // 事件类型列表,参见智能分析事件类型
  22911. int nEventCount; // 事件总数
  22912. EM_RECORD_SNAP_FLAG_TYPE emFalgLists[FLAG_TYPE_MAX]; // 录像或抓图文件标志, 不设置标志表示查询所有文件
  22913. int nFalgCount; // 标志总数
  22914. int nRuleType; // 智能分析事件名, 事件类型,详见"智能分析事件类型"
  22915. NET_CROSSREGION_ACTION_INFO emAction; // 事件动作
  22916. INT64 nFileLengthEx; // 文件长度扩展,支持文件长度大于4G,单位字节
  22917. EM_MEDIAFILE_IVS_OBJECT emIvsObject; // 规则触发的对象类型
  22918. NET_EVENT_IMAGE_INFO stuEventImageInfo; // 事件抠图信息
  22919. NET_POINT stuObjCenter; // 物体型心(不是包围盒中心), 0-8191相对坐标, 相对于小图
  22920. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  22921. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  22922. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  22923. }MEDIAFILE_IVS_EVENT_INFO;
  22924. ///@brief 视频分析支持的对象类型
  22925. typedef enum tagEM_ANALYSE_OBJECT_TYPE
  22926. {
  22927. EM_ANALYSE_OBJECT_TYPE_UNKNOWN, // 未知的
  22928. EM_ANALYSE_OBJECT_TYPE_HUMAN, // 人
  22929. EM_ANALYSE_OBJECT_TYPE_VEHICLE, // 车辆
  22930. EM_ANALYSE_OBJECT_TYPE_FIRE, // 火
  22931. EM_ANALYSE_OBJECT_TYPE_SMOKE, // 烟雾
  22932. EM_ANALYSE_OBJECT_TYPE_PLATE, // 片状物体
  22933. EM_ANALYSE_OBJECT_TYPE_HUMANFACE, // 目标
  22934. EM_ANALYSE_OBJECT_TYPE_CONTAINER, // 货柜
  22935. EM_ANALYSE_OBJECT_TYPE_ANIMAL, // 动物
  22936. EM_ANALYSE_OBJECT_TYPE_TRAFFICLIGHT, // 红绿灯
  22937. EM_ANALYSE_OBJECT_TYPE_PASTEPAPER, // 贴纸 贴片
  22938. EM_ANALYSE_OBJECT_TYPE_HUMANHEAD, // 人的头部
  22939. EM_ANALYSE_OBJECT_TYPE_ENTITY, // 普通物体
  22940. EM_ANALYSE_OBJECT_TYPE_PACKAGE, // 包裹
  22941. EM_ANALYSE_OBJECT_TYPE_SCRAPSTEEL_DANGER, //废钢危险品
  22942. }EM_ANALYSE_OBJECT_TYPE;
  22943. ///@brief DH_FILE_QUERY_ANALYSE_OBJECT 对应的智能分析其他物体参数
  22944. typedef struct __MEDIAFILE_ANALYSE_OBJECT_PARAM
  22945. {
  22946. DWORD dwSize; // 结构体大小
  22947. /* 查询过滤条件 */
  22948. int nChannelID; // 通道号
  22949. NET_TIME stuStartTime; // 起始时间
  22950. NET_TIME stuEndTime; // 结束时间
  22951. int nMediaType; // 文件类型,0:任意类型, 1:jpg图片, 2:dav文件
  22952. int nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3
  22953. int nEventLists[MAX_IVS_EVENT_NUM]; // 事件类型列表,参见智能分析事件类型
  22954. int nEventCount; // 事件总数
  22955. EM_RECORD_SNAP_FLAG_TYPE emFalgLists[FLAG_TYPE_MAX]; // 录像或抓图文件标志, 不设置标志表示查询所有文件
  22956. int nFalgCount; // 标志总数
  22957. EM_ANALYSE_OBJECT_TYPE emObject; // 查找的物体类型
  22958. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  22959. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  22960. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  22961. }MEDIAFILE_ANALYSE_OBJECT_PARAM;
  22962. ///@brief DH_FILE_QUERY_ANALYSE_OBJECT 查询出来的media文件信息
  22963. typedef struct __MEDIAFILE_ANALYSE_OBJECT_INFO
  22964. {
  22965. DWORD dwSize; // 结构体大小
  22966. int nChannelID; // 通道号
  22967. NET_TIME stuStartTime; // 起始时间
  22968. NET_TIME stuEndTime; // 结束时间
  22969. char szFilePath[128]; // 文件路径
  22970. int nMediaType; // 文件类型,0:任意类型, 1:jpg图片, 2:dav文件
  22971. unsigned int nFileLength; // 文件长度,该字段废弃,使用nFileLengthEx
  22972. unsigned int nCluster; // 簇号
  22973. unsigned int nHint; // 文件定位索引
  22974. unsigned int nDriveNo; // 磁盘号
  22975. int nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3
  22976. int nEventLists[MAX_IVS_EVENT_NUM]; // 事件类型列表,参见智能分析事件类型
  22977. int nEventCount; // 事件总数
  22978. EM_RECORD_SNAP_FLAG_TYPE emFalgLists[FLAG_TYPE_MAX]; // 录像或抓图文件标志, 不设置标志表示查询所有文件
  22979. int nFalgCount; // 标志总数
  22980. EM_ANALYSE_OBJECT_TYPE emObject; // 查找的物体类型
  22981. INT64 nFileLengthEx; // 文件长度扩展,支持文件长度大于4G,单位字节
  22982. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  22983. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  22984. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  22985. }MEDIAFILE_ANALYSE_OBJECT_INFO;
  22986. ///@brief DH_FILE_QUERY_MPT_RECORD_FILE 对应的录像文件查询参数
  22987. typedef struct __MEDIAFILE_MPT_RECORD_FILE_PARAM
  22988. {
  22989. DWORD dwSize; // 结构体大小
  22990. /* 查询过滤条件 */
  22991. int nChannelID; // 通道号
  22992. NET_TIME stuStartTime; // 起始时间
  22993. NET_TIME stuEndTime; // 结束时间
  22994. int nMediaType; // 文件类型,0:任意类型, 1:jpg图片, 2:dav文件
  22995. int nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3
  22996. char szPoliceID[DH_COMMON_STRING_32]; // 警员ID,为空时表示该字段无效
  22997. int nCrimeType; // 犯罪类型,值为0表示该字段无效
  22998. int nCrimeTag; // 犯罪标记,值为0表示该字段无效
  22999. char szSerialNumber[DH_COMMON_STRING_32]; // MPT设备序列号,为空时表示该字段无效
  23000. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23001. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23002. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23003. }MEDIAFILE_MPT_RECORD_FILE_PARAM;
  23004. ///@brief DH_FILE_QUERY_MPT_RECORD_FILE 查询出来的media文件信息
  23005. typedef struct __MEDIAFILE_MPT_RECORD_FILE_INFO
  23006. {
  23007. DWORD dwSize; // 结构体大小
  23008. int nChannelID; // 通道号
  23009. NET_TIME stuStartTime; // 起始时间
  23010. NET_TIME stuEndTime; // 结束时间
  23011. char szFilePath[DH_COMMON_STRING_128];// 文件路径
  23012. int nMediaType; // 文件类型,0:任意类型, 1:jpg图片, 2:dav文件
  23013. int nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3
  23014. unsigned int nFileLength; // 文件长度,该字段废弃,请使用nFileLengthEx
  23015. unsigned int nCluster; // 簇号
  23016. unsigned int nHint; // 文件定位索引
  23017. unsigned int nDriveNo; // 磁盘号
  23018. int nCrimeType; // 犯罪类型
  23019. int nCrimeTag; // 犯罪标记
  23020. char szComment[DH_COMMON_STRING_256]; // 用户对文件做的备注
  23021. INT64 nFileLengthEx; // 文件长度扩展,支持文件长度大于4G,单位字节
  23022. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  23023. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23024. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23025. }MEDIAFILE_MPT_RECORD_FILE_INFO;
  23026. ///@brief 包裹内危险物品信息的查询类型
  23027. typedef enum tagNET_EM_INSIDE_TYPE
  23028. {
  23029. NET_EM_INSIDE_TYPE_GRADE, // 危险物品等级
  23030. NET_EM_INSIDE_TYPE_OBJECT, // 物品类型
  23031. }NET_EM_INSIDE_TYPE;
  23032. ///@brief DH_FILE_QUERY_XRAY_DETECTION 对应的文件查询参数
  23033. typedef struct tagMEDIAFILE_XRAY_DETECTION_PARAM
  23034. {
  23035. DWORD dwSize; // 结构体大小
  23036. /* 查询过滤条件 */
  23037. int nChannelID; // 通道号
  23038. NET_TIME stuStartTime; // 起始时间
  23039. NET_TIME stuEndTime; // 结束时间
  23040. NET_EM_INSIDE_TYPE emInsideType; // 包裹内危险物品信息的查询类型,必填
  23041. int nDangerGradeNum; // 包裹的危险等级有效个数
  23042. EM_DANGER_GRADE_TYPE emDangerGrade[MAX_DANGER_GRADE_NUM]; // 包裹的危险等级,当emInsideType字段为NET_EM_INSIDE_TYPE_GRADE时有效
  23043. int nInsideObjTypeNum; // 包裹中的物品类型有效个数
  23044. EM_INSIDE_OBJECT_TYPE emInsideObjType[MAX_INSIDE_OBJECT_TYPE_NUM]; // 包裹中的物品类型,当emInsideType字段为NET_EM_INSIDE_TYPE_OBJECT时有效
  23045. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23046. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23047. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23048. }MEDIAFILE_XRAY_DETECTION_PARAM;
  23049. ///@brief DH_FILE_QUERY_XRAY_DETECTION 查询出来的media文件信息
  23050. typedef struct tagMEDIAFILE_XRAY_DETECTION_INFO
  23051. {
  23052. DWORD dwSize; // 结构体大小
  23053. int nChannelID; // 通道号
  23054. NET_TIME stuStartTime; // 起始时间
  23055. NET_TIME stuEndTime; // 结束时间
  23056. char szProcessedFilePath[MAX_PATH_LEN]; // 处理后的X光图片文件路径
  23057. char szOriginalPath[MAX_PATH_LEN]; // X光检包裹原始图片的路径
  23058. unsigned int nOriginalLength; // 原始图片的长度,单位字节
  23059. EM_DANGER_GRADE_TYPE emDangerGrade; // 包裹的危险等级
  23060. EM_INSIDE_OBJECT_TYPE emInsideObjectType[MAX_INSIDE_OBJECT_TYPE_NUM]; // 包裹中包含的物品类型
  23061. int nRetInsideObjectTypeNum; // 返回的包裹中包含的物品类型个数
  23062. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  23063. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23064. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23065. }MEDIAFILE_XRAY_DETECTION_INFO;
  23066. #define MAX_CLOTH_NUM 4 // 最大衣裤件数
  23067. #define MAX_CLOTHTYPE_NUM 2 // 最大衣裤类型数量
  23068. ///@brief DH_FILE_QUERY_HUMAN_TRAIT人体检测对应查询参数
  23069. typedef struct tagMEDIAFILE_HUMAN_TRAIT_PARAM
  23070. {
  23071. DWORD dwSize; // 结构体大小
  23072. int nChannel; // 通道
  23073. NET_TIME stStartTime; // 开始时间
  23074. NET_TIME stEndTime; // 结束时间
  23075. EM_CLOTHES_COLOR emCoatColor[MAX_CLOTH_NUM]; // 上衣颜色
  23076. EM_CLOTHES_COLOR emTrousersColor[MAX_CLOTH_NUM]; // 裤子颜色
  23077. EM_COAT_TYPE emCoatType[MAX_CLOTHTYPE_NUM]; // 上衣类型
  23078. EM_TROUSERS_TYPE emTrousersType[MAX_CLOTHTYPE_NUM]; // 裤子类型
  23079. UINT nCoatColorNum; // 需要查询的上衣颜色个数
  23080. UINT nTrousersColorNum; // 需要查询的裤子颜色个数
  23081. UINT nCoatTypeNum; // 需要查询的上衣类型个数
  23082. UINT nTrousersTypeNum; // 需要查询的裤子类型个数
  23083. EM_HAS_HAT emHasHat; // 是否戴帽子
  23084. EM_HAS_BAG emHasBag; // 是否带包
  23085. EM_SEX_TYPE emSex; // 性别
  23086. EM_HAIR_STYLE emHairStyle; // 头发样式
  23087. UINT nAgeMin; // 查询年龄段的最小年龄
  23088. UINT nAgeMax; // 查询年龄段的最大年龄
  23089. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stStartTime, stEndTime), 为FALSE表示仅下发stStartTime, stEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23090. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23091. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23092. }MEDIAFILE_HUMAN_TRAIT_PARAM;
  23093. ///@brief 查询到的人体检测相关信息
  23094. typedef struct tagHUMAN_TRAIT_INFO
  23095. {
  23096. EM_CLOTHES_COLOR emCoatColor; // 上衣颜色
  23097. EM_CLOTHES_COLOR emTrousersColor; // 裤子颜色
  23098. EM_COAT_TYPE emCoatType; // 上衣类型
  23099. EM_TROUSERS_TYPE emTrousersType; // 裤子类型
  23100. EM_HAS_HAT emHasHat; // 是否戴帽子
  23101. EM_HAS_BAG emHasBag; // 是否带包
  23102. EM_SEX_TYPE emSex; // 性别
  23103. UINT nAge; // 年龄
  23104. EM_HAIR_STYLE emHairStyle; // 头发样式
  23105. EM_HAS_UMBRELLA emHasUmbrella; // 是否打伞
  23106. EM_BAG_TYPE emBagType; // 包类型
  23107. EM_CAP_TYPE emCapType; // 帽子类型
  23108. BYTE byReserved[1024]; // 保留字段
  23109. }HUMAN_TRAIT_INFO;
  23110. ///@brief 查询到的目标属性信息
  23111. typedef struct tagNET_HUMAN_FACE_ATTRIBUTE
  23112. {
  23113. EM_SEX_TYPE emSex; // 性别
  23114. int nAge; // 年龄
  23115. EM_MASK_STATE_TYPE emMask; // 口罩状态
  23116. EM_BEARD_STATE_TYPE emBeard; // 胡子状态
  23117. EM_HAS_GLASS emHasGlass; // 是否戴眼镜
  23118. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotion; // 表情
  23119. BYTE byReserved[1024]; // 保留字段
  23120. } NET_HUMAN_FACE_ATTRIBUTE;
  23121. ///@brief DH_FILE_QUERY_HUMAN_TRAIT人体检测对应FINDNEXT查询返回参数
  23122. typedef struct tagMEDIAFILE_HUMAN_TRAIT_INFO
  23123. {
  23124. DWORD dwSize; // 结构体大小
  23125. /* 文件属性 */
  23126. int nChannel; // 通道
  23127. NET_TIME stStartTime; // 开始时间
  23128. NET_TIME stEndTime; // 结束时间
  23129. char szFilePath[MAX_PATH]; // 文件路径
  23130. int nFileSize; // 文件大小
  23131. char szFacePath[MAX_PATH]; // 目标小图路径
  23132. char szFaceScenePath[MAX_PATH]; // 目标小图对应的全景图路径
  23133. char szHumanPath[MAX_PATH]; // 人体小图路径
  23134. char szHumanSceneImage[MAX_PATH];// 人体小图对应的全景图路径
  23135. UINT nFaceImageLength; // 目标小图大小, 单位: 字节
  23136. UINT nFaceSceneImageLength; // 目标小图对应的全景图大小, 单位: 字节
  23137. UINT nHumanImageLength; // 人体小图大小, 单位: 字节
  23138. UINT nHumanSceneImageLength; // 人体小图对应的全景图大小, 单位: 字节
  23139. /* 人体信息 */
  23140. HUMAN_TRAIT_INFO stuHumanTrait; // 人体检测信息
  23141. /* 目标属性信息 */
  23142. NET_HUMAN_FACE_ATTRIBUTE stuFaceAttribute; // 目标属性信息
  23143. NET_POINT stuFaceCenter; // 目标型心(不是包围盒中心), 0-8191相对坐标, 相对于小图
  23144. NET_POINT stuHumanCenter; // 人体型心(不是包围盒中心), 0-8191相对坐标, 相对于小图
  23145. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stStartTime和stEndTime有效(仅使用stStartTime和stEndTime)
  23146. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23147. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23148. }MEDIAFILE_HUMAN_TRAIT_INFO;
  23149. ///@brief 非机动车颜色类型
  23150. typedef enum tagEM_NONMOTOR_COLOR
  23151. {
  23152. EM_NONMOTOR_UNKNOWN, // 未知
  23153. EM_NONMOTOR_COLOR_OTHER, // 无法识别
  23154. EM_NONMOTOR_COLOR_WHITE, // 白色
  23155. EM_NONMOTOR_COLOR_ORANGE, // 橙色
  23156. EM_NONMOTOR_COLOR_PINK, // 粉色
  23157. EM_NONMOTOR_COLOR_BLACK, // 黑色
  23158. EM_NONMOTOR_COLOR_RED, // 红色
  23159. EM_NONMOTOR_COLOR_YELLOW, // 黄色
  23160. EM_NONMOTOR_COLOR_GRAY, // 灰色
  23161. EM_NONMOTOR_COLOR_BLUE, // 蓝色
  23162. EM_NONMOTOR_COLOR_GREEN, // 绿色
  23163. EM_NONMOTOR_COLOR_PURPLE, // 紫色
  23164. EM_NONMOTOR_COLOR_BROWN, // 棕色
  23165. EM_NONMOTOR_COLOR_SLIVER, // 银色
  23166. EM_NONMOTOR_COLOR_DARKVIOLET, // 暗紫罗兰色
  23167. EM_NONMOTOR_COLOR_MAROON, // 栗色
  23168. EM_NONMOTOR_COLOR_DIMGRAY, // 暗灰色
  23169. EM_NONMOTOR_COLOR_WHITESMOKE, // 白烟色
  23170. EM_NONMOTOR_COLOR_DARKORANGE, // 深橙色
  23171. EM_NONMOTOR_COLOR_MISTYROSE, // 浅玫瑰色
  23172. EM_NONMOTOR_COLOR_TOMATO, // 番茄红色
  23173. EM_NONMOTOR_COLOR_OLIVE, // 橄榄色
  23174. EM_NONMOTOR_COLOR_GOLD, // 金色
  23175. EM_NONMOTOR_COLOR_DARKOLIVEGREEN, // 暗橄榄绿色
  23176. EM_NONMOTOR_COLOR_CHARTREUSE, // 黄绿色
  23177. EM_NONMOTOR_COLOR_GREENYELLOW, // 绿黄色
  23178. EM_NONMOTOR_COLOR_FORESTGREEN, // 森林绿
  23179. EM_NONMOTOR_COLOR_SEAGREEN, // 海洋绿
  23180. EM_NONMOTOR_COLOR_DEEPSKYBLUE, // 深天蓝
  23181. EM_NONMOTOR_COLOR_CYAN, // 青色
  23182. } EM_NONMOTOR_COLOR;
  23183. ///@brief 非机动车子类型
  23184. typedef enum tagEM_NONMOTOR_SUBTYPE
  23185. {
  23186. EM_NONMOTOR_SUBTYPE_UNKNOWN, // 未知
  23187. EM_NONMOTOR_SUBTYPE_NONMOTOR, // 非机动车
  23188. EM_NONMOTOR_SUBTYPE_BICYCLE, // 自行车
  23189. EM_NONMOTOR_SUBTYPE_TRICYCLE, // 三轮车
  23190. EM_NONMOTOR_SUBTYPE_MOTORCYCLE, // 摩托车
  23191. EM_NONMOTOR_SUBTYPE_DUALTRIWHEEL, // (两) 三轮摩托车
  23192. EM_NONMOTOR_SUBTYPE_LIGHT_MOTORCYCLE, // 轻便摩托车
  23193. EM_NONMOTOR_SUBTYPE_EMBASSY_MOTORCYCLE, // 使馆摩托车
  23194. EM_NONMOTOR_SUBTYPE_MARGINAL_MOTORCYCLE, // 领馆摩托车
  23195. EM_NONMOTOR_SUBTYPE_AREAOUT_MOTORCYCLE, // 境外摩托车
  23196. EM_NONMOTOR_SUBTYPE_FOREIGN_MOTORCYCLE, // 外籍摩托车
  23197. EM_NONMOTOR_SUBTYPE_TRIAL_MOTORCYCLE, // 试验摩托车
  23198. EM_NONMOTOR_SUBTYPE_COACH_MOTORCYCLE, // 教练摩托车
  23199. EM_NONMOTOR_SUBTYPE_PASSERBY, // 行人
  23200. }EM_NONMOTOR_SUBTYPE;
  23201. ///@brief 头盔状态
  23202. typedef enum tagEM_HELMET_STATE
  23203. {
  23204. EM_HELMET_UNKNOWN, // 未知
  23205. EM_HELMET_OTHER, // 未识别
  23206. EM_HELMET_NO, // 未戴头盔
  23207. EM_HELMET_YES, // 戴头盔
  23208. } EM_HELMET_STATE;
  23209. ///@brief DH_FILE_QUERY_NONMOTOR 非机动车对应查询参数
  23210. typedef struct tagMEDIAFILE_NONMOTOR_PARAM
  23211. {
  23212. DWORD dwSize; // 结构体大小
  23213. int nChannel; // 通道
  23214. NET_TIME stStartTime; // 开始时间
  23215. NET_TIME stEndTime; // 结束时间
  23216. UINT nNumOfCyclingMin; // 骑车人数最小值
  23217. UINT nNumOfCyclingMax; // 骑车人数最大值
  23218. EM_NONMOTOR_COLOR emNonmotorColor; // 非机动车颜色
  23219. EM_NONMOTOR_SUBTYPE emNonmotorSubtype; // 非机动车子类型
  23220. EM_HELMET_STATE emHelmetState; // 头盔状态
  23221. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stStartTime, stEndTime), 为FALSE表示仅下发stStartTime, stEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23222. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23223. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23224. } MEDIAFILE_NONMOTOR_PARAM;
  23225. ///@brief DH_FILE_QUERY_NONMOTOR 非机动车对应FINDNEXT查询返回参数
  23226. typedef struct tagMEDIAFILE_NONMOTOR_INFO
  23227. {
  23228. DWORD dwSize; // 结构体大小
  23229. /* 文件属性 */
  23230. int nChannel; // 通道
  23231. NET_TIME stStartTime; // 开始时间
  23232. NET_TIME stEndTime; // 结束时间
  23233. char szFilePath[MAX_PATH]; // 文件路径
  23234. int nFileSize; // 文件大小
  23235. /* 非机动车信息 */
  23236. UINT nNumOfCycling; // 骑车人数
  23237. EM_NONMOTOR_COLOR emNonmotorColor; // 非机动车颜色
  23238. EM_NONMOTOR_SUBTYPE emNonmotorSubtype; // 非机动车子类型
  23239. EM_HELMET_STATE emHelmetState; // 头盔状态
  23240. NET_POINT stuFaceCenter; // 目标型心(不是包围盒中心), 0-8191相对坐标, 相对于小图
  23241. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stStartTime和stEndTime有效(仅使用stStartTime和stEndTime)
  23242. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23243. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23244. } MEDIAFILE_NONMOTOR_INFO;
  23245. ///@brief 目标图片信息
  23246. typedef struct tagNET_FACE_IMAGE_INFO
  23247. {
  23248. DWORD dwOffSet; // 图片在二进制数据块中的偏移位置, 单位:字节
  23249. DWORD dwFileLength; // 图片大小, 单位:字节
  23250. DWORD dwWidth; // 图片宽度
  23251. DWORD dwHeight; // 图片高度
  23252. BOOL bIsDetected; // 图片是否算法检测出来的,检测过的提交识别服务器时,
  23253. // 则不需要再时检测定位抠图,TRUE:检测过的,FALSE:没有检测过
  23254. char szPicFilePath[DH_COMMON_STRING_256]; // 目标图片文件路径, 与dwOffSet和dwFileLenth互斥
  23255. BYTE bReserved[512]; // 预留字节数
  23256. } NET_FACE_IMAGE_INFO;
  23257. ///@brief 查询文件的类型
  23258. typedef enum tagEM_FINDFILE_TYPE
  23259. {
  23260. EM_FINDFILE_UNKNOWN, // 未知
  23261. EM_FINDFILE_JPG, // 泛指图片
  23262. EM_FINDFILE_DAV, // 泛指视频
  23263. EM_FINDFILE_LOG, // log信息
  23264. EM_FINDFILE_GPS, // gps信息
  23265. EM_FINDFILE_JPK, // jpk信息,图片打包文件,指文件中存有多张图片的文件,该类型和jpg类型互斥,同一个查询条件里面不能既有jpg又有jpk
  23266. EM_FINDFILE_MP4, // MP4信息,(因与二代协议不兼容删除mp4,用dav表示所有视频)无Types字段,且有DB字段,默认查询"jpg"类型
  23267. EM_FINDFILE_AUDIO, // AUDIO信息,泛指音频
  23268. } EM_FINDFILE_TYPE;
  23269. ///@brief 开门方式
  23270. typedef enum tagEM_OPEN_DOOR_METHOD
  23271. {
  23272. EM_OPEN_DOOR_METHOD_UNKNOWN = -1, // 未知
  23273. EM_OPEN_DOOR_METHOD_OTHER, // 其他方式
  23274. EM_OPEN_DOOR_METHOD_FACE, // 目标
  23275. } EM_OPEN_DOOR_METHOD;
  23276. ///@brief 开门结果
  23277. typedef enum tagEM_OPEN_DOOR_STATE
  23278. {
  23279. EM_OPEN_DOOR_STATE_UNKNOWN = -1, // 未知
  23280. EM_OPEN_DOOR_STATE_FAIL, // 失败
  23281. EM_OPEN_DOOR_STATE_SUCCESS, // 成功
  23282. } EM_OPEN_DOOR_STATE;
  23283. ///@brief DH_FILE_QUERY_DOORCONTROL_RECORD 门打开事件对应查询参数
  23284. typedef struct tagMEDIAFILE_DOORCONTROL_RECORD_PARAM
  23285. {
  23286. DWORD dwSize; // 结构体大小
  23287. /* 文件属性 */
  23288. int nChannel; // 通道
  23289. NET_TIME stStartTime; // 开始时间
  23290. NET_TIME stEndTime; // 结束时间
  23291. UINT nFileTypeNum; // 文件类型个数, 为0表示查询任意类型
  23292. EM_FINDFILE_TYPE emFileType[32]; // 文件类型
  23293. /* 门打开事件信息 */
  23294. EM_OPEN_DOOR_METHOD emOpenDoorMethod; // 开门方式, EM_OPEN_DOOR_METHOD_UNKNOWN 表示查所有方式
  23295. EM_OPEN_DOOR_STATE emOpenDoorState; // 开门结果, EM_OPEN_DOOR_STATE_UNKNOWN 表示查询所有结果
  23296. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stStartTime, stEndTime), 为FALSE表示仅下发stStartTime, stEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23297. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23298. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23299. } MEDIAFILE_DOORCONTROL_RECORD_PARAM;
  23300. ///@brief 表情
  23301. typedef enum tagEM_FACE_TRAIT_EMOTION_TYPE
  23302. {
  23303. EM_FACE_TRAIT_EMOTION_UNKNOWN, // 未知
  23304. EM_FACE_TRAIT_EMOTION_UNRECOGNIZE, // 未识别
  23305. EM_FACE_TRAIT_EMOTION_ANGRY, // 生气
  23306. EM_FACE_TRAIT_EMOTION_SAD, // 悲伤
  23307. EM_FACE_TRAIT_EMOTION_DISGUST, // 厌恶
  23308. EM_FACE_TRAIT_EMOTION_FEAR, // 恐惧
  23309. EM_FACE_TRAIT_EMOTION_SURPRISE, // 诧异
  23310. EM_FACE_TRAIT_EMOTION_CALM, // 平静
  23311. EM_FACE_TRAIT_EMOTION_SMILE, // 微笑
  23312. EM_FACE_TRAIT_EMOTION_LAUGH, // 大笑
  23313. EM_FACE_TRAIT_EMOTION_HAPPY, // 高兴
  23314. EM_FACE_TRAIT_EMOTION_CONFUSED, // 困惑
  23315. EM_FACE_TRAIT_EMOTION_SCREAM, // 尖叫
  23316. }EM_FACE_TRAIT_EMOTION_TYPE;
  23317. ///@brief 活体
  23318. typedef enum tagEM_FACE_TRAIT_ALIVE_TYPE
  23319. {
  23320. EM_FACE_TRAIT_ALIVE_UNKNOWN, // 未知
  23321. EM_FACE_TRAIT_ALIVE_NON, // 非活体
  23322. EM_FACE_TRAIT_ALIVE, // 活体
  23323. }EM_FACE_TRAIT_ALIVE_TYPE;
  23324. ///@brief 目标属性(定制)
  23325. typedef struct tagFACE_TRAIT
  23326. {
  23327. EM_SEX_TYPE emSex; // 性别
  23328. UINT nAge; // 年龄
  23329. EM_HAS_GLASS emGlass; // 眼镜
  23330. EM_BEARD_STATE_TYPE emBeard; // 胡子
  23331. char szReserved[4];
  23332. EM_MASK_STATE_TYPE emMask; // 口罩
  23333. EM_FACE_TRAIT_EMOTION_TYPE emEmotion; // 表情
  23334. NET_TIME_EX stuSnapTime; // 抓拍时间
  23335. EM_FACE_TRAIT_ALIVE_TYPE emAlive; // 活体信息
  23336. BYTE byReserved[1020]; // 预留字段
  23337. }FACE_TRAIT;
  23338. ///@brief 年龄组
  23339. typedef enum tagEM_AGE_GROUP_TYPE
  23340. {
  23341. EM_AGE_GROUP_UNKNOWN, // 未知
  23342. EM_AGE_GROUP_OLD, // 老人
  23343. EM_AGE_GROUP_ADULT, // 成年人
  23344. EM_AGE_GROUP_CHILD, // 小孩
  23345. }EM_AGE_GROUP_TYPE;
  23346. ///@brief 胸前是否有东西
  23347. typedef enum tagEM_HAS_HOLD
  23348. {
  23349. EM_HAS_HOLD_UNKNOWN, // 未知
  23350. EM_HAS_HOLD_NO, // 无东西
  23351. EM_HAS_HOLD_YES, // 有东西
  23352. } EM_HAS_HOLD;
  23353. ///@brief 上衣类型
  23354. typedef enum tagEM_UPPER_TYPE
  23355. {
  23356. EM_UPPER_UNKNOWN, // 未知
  23357. EM_UPPER_LONGCOAT, // 1-长款大衣
  23358. EM_UPPER_JACKETORJEANS, // 2-夹克及牛仔服
  23359. EM_UPPER_TSHIRT, // 3-T恤
  23360. EM_UPPER_SPORTSWEAR, // 4-运动服
  23361. EM_UPPER_DOWNJACKET, // 5-羽绒服
  23362. EM_UPPER_SHIRT, // 6-衬衫
  23363. EM_UPPER_DRESS, // 7-连衣裙
  23364. EM_UPPER_SUIT, // 8-西装
  23365. }EM_UPPER_TYPE;
  23366. ///@brief 是否戴口罩
  23367. typedef enum tagEM_MASK_TYPE
  23368. {
  23369. EM_MASK_UNKNOWN, // 未知
  23370. EM_MASK_NO, // 无
  23371. EM_MASK_YES, // 戴
  23372. }EM_MASK_TYPE;
  23373. ///@brief 人体属性(定制)
  23374. typedef struct tagBODY_TRAIT
  23375. {
  23376. EM_SEX_TYPE emSex; // 性别
  23377. EM_AGE_GROUP_TYPE emAgeGroup; // 年龄组
  23378. EM_COAT_TYPE emCoatType; // 上衣类型
  23379. EM_TROUSERS_TYPE emTrousersType; // 裤子类型
  23380. EM_ANGLE_TYPE emAngle; // 人体角度
  23381. EM_CLOTHES_PATTERN emUpperPattern; // 上衣模式
  23382. EM_UNIFIED_COLOR_TYPE emTrousersColor; // 裤子颜色
  23383. EM_HAS_UMBRELLA emUmbrella; // 打伞
  23384. EM_UNIFIED_COLOR_TYPE emUmbrellaColor; // 雨伞颜色
  23385. EM_HAS_HOLD emHold; // 胸前抱东西
  23386. EM_CLOTHES_PATTERN emTrousersPattern; // 裤子模式
  23387. EM_HAT_STYLE emHatType; // 帽子款式
  23388. EM_UNIFIED_COLOR_TYPE emHatColor; // 帽子颜色
  23389. EM_UPPER_TYPE emUpperType; // 上衣类型
  23390. EM_UNIFIED_COLOR_TYPE emCoatColor; // 上衣颜色
  23391. EM_HAIR_STYLE emHairStyle; // 发型
  23392. EM_UNIFIED_COLOR_TYPE emHairColor; // 头发颜色
  23393. EM_SHOES_TYPE emShoesType; // 鞋子款式
  23394. EM_UNIFIED_COLOR_TYPE emShoesColor; // 鞋子颜色
  23395. EM_BAG_TYPE emBagType; // 箱包款式
  23396. EM_UNIFIED_COLOR_TYPE emBagColor; // 箱包颜色
  23397. EM_MASK_TYPE emMaskType; // 口罩
  23398. EM_UNIFIED_COLOR_TYPE emMaskColor; // 口罩颜色
  23399. NET_TIME_EX stuSnapTime; // 抓图时间
  23400. BYTE szReserved[1024]; // 预留字段
  23401. }BODY_TRAIT;
  23402. ///@brief 人像检测查询人员属性过滤信息
  23403. typedef struct tagFACEBODY_DETECT_RECORDFILTER
  23404. {
  23405. int nAgeRange[2]; // 查询年龄区间:[0, 0]表示查询未知,[0, 200]表示查询所有(默认)
  23406. FACE_TRAIT stuFaceTrait; // 目标特征
  23407. BODY_TRAIT stuBodyTrait; // 人体特征
  23408. BYTE byReserved[1024]; // 预留字段
  23409. }FACEBODY_DETECT_RECORDFILTER;
  23410. ///@brief 事件图片偏移信息
  23411. typedef struct tagNET_EVENT_IMAGE_OFFSET_INFO
  23412. {
  23413. unsigned int nOffSet; // 偏移
  23414. unsigned int nLength; // 图片大小,单位字节
  23415. unsigned int nWidth; // 图片宽度
  23416. unsigned int nHeight; // 图片高度
  23417. char szPath[260]; // 图片路径
  23418. UINT nIndexInData; // 在上传图片数据中的图片序号
  23419. BYTE byReserved[248]; // 预留字节
  23420. }NET_EVENT_IMAGE_OFFSET_INFO;
  23421. ///@brief DH_FILE_QUERY_FACEBODY_DETECT 对应查询参数
  23422. typedef struct tagMEDIAFILE_FACEBODY_DETECT_PARAM
  23423. {
  23424. DWORD dwSize; // 结构体大小
  23425. int nFileType; // 文件类型,0:查询任意类型,1:查询jpg图片,2:查询dav
  23426. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  23427. UINT nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3 5-所有的辅码流类型
  23428. NET_TIME stuBeginTime; // 开始时间
  23429. NET_TIME stuEndTime; // 结束时间
  23430. EM_RECORD_SNAP_FLAG_TYPE emFlagList[FLAG_TYPE_MAX]; // 录像或抓图文件标志, 不设置标志表示查询所有文件
  23431. int nFlagCount; // 标志总数
  23432. NET_RECORD_CARD_INFO stuCardInfo; // 卡号录像信息, emFlagList包含卡号录像时有效
  23433. EM_RESULT_ORDER_TYPE emResultOrder; // 查询结果排序方式
  23434. BOOL bTime; // 是否按时间查询
  23435. FACEBODY_DETECT_RECORDFILTER stuFilter; // 人像检测过滤条件
  23436. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23437. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23438. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23439. } MEDIAFILE_FACEBODY_DETECT_PARAM;
  23440. ///@brief DH_FILE_QUERY_FACEBODY_DETECT 对应 FINDNEXT 查询返回结果
  23441. typedef struct tagMEDIAFILE_FACEBODY_DETECT_INFO
  23442. {
  23443. DWORD dwSize; // 结构体大小
  23444. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  23445. NET_TIME stuBeginTime; // 开始时间
  23446. NET_TIME stuEndTime; // 结束时间
  23447. UINT nFileType; // 文件类型 1:jpg图片, 2: dav
  23448. UINT nFileSize; // 文件长度
  23449. UINT nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3
  23450. UINT nPartition; // 分区号
  23451. UINT nCluster; // 簇号
  23452. char szFilePath[MAX_PATH]; // 文件路径
  23453. EM_RECORD_SNAP_FLAG_TYPE emFlagList[FLAG_TYPE_MAX]; // 录像或抓图文件标志
  23454. int nFlagCount; // 标志总数
  23455. UINT nDriveNo; // 磁盘号
  23456. FACE_TRAIT stuFaceTrait; // 目标特征
  23457. BODY_TRAIT stuBodyTrait; // 人体特征
  23458. NET_EVENT_IMAGE_OFFSET_INFO stuFaceImage; // 目标图片信息
  23459. NET_EVENT_IMAGE_OFFSET_INFO stuBodyImage; // 人体图片信息
  23460. NET_EVENT_IMAGE_OFFSET_INFO stuSceneImage; // 全景图片信息
  23461. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuBeginTime和stuEndTime有效(仅使用stuBeginTime和stuEndTime)
  23462. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23463. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23464. } MEDIAFILE_FACEBODY_DETECT_INFO;
  23465. ///@brief 人像识别查询人员属性信息过滤信息
  23466. typedef struct tagFACEBODY_ANALYSE_RECORDFILTER
  23467. {
  23468. int nAgeRange[2]; // 查询年龄区间:[0, 0]表示查询未知,[0, 200]表示查询所有(默认)
  23469. EM_SEX_TYPE emSex; // 性别
  23470. char szCountry[NET_COUNTRY_LENGTH]; // 国籍,符合ISO3166规范
  23471. BYTE byReserved1; // 字节对齐
  23472. char szProvince[DH_MAX_PROVINCE_NAME_LEN]; // 省份
  23473. char szCity[DH_MAX_CITY_NAME_LEN]; // 城市
  23474. char szID[DH_MAX_PERSON_ID_LEN]; // 人员唯一标示(证件号码,护照号,军官证,或其他编号)
  23475. EM_CERTIFICATE_TYPE emCertificateType; // 证件类型
  23476. BYTE byReserved[1028]; // 预留字段
  23477. } FACEBODY_ANALYSE_RECORDFILTER;
  23478. ///@brief DH_FILE_QUERY_FACEBODY_ANALYSE 对应查询参数
  23479. typedef struct tagMEDIAFILE_FACEBODY_ANALYSE_PARAM
  23480. {
  23481. DWORD dwSize; // 结构体大小
  23482. int nFileType; // 文件类型,0:查询任意类型,1:查询jpg图片,2:查询dav
  23483. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  23484. UINT nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3 5-所有的辅码流类型
  23485. NET_TIME stuBeginTime; // 开始时间
  23486. NET_TIME stuEndTime; // 结束时间
  23487. EM_RECORD_SNAP_FLAG_TYPE emFlagLists[FLAG_TYPE_MAX]; // 录像或抓图文件标志, 不设置标志表示查询所有文件
  23488. int nFlagCount; // 标志总数
  23489. NET_RECORD_CARD_INFO stuCardInfo; // 卡号录像信息, emFlagLists包含卡号录像时有效
  23490. EM_RESULT_ORDER_TYPE emResultOrder; // 查询结果排序方式
  23491. BOOL bTime; // 是否按时间查询
  23492. FACEBODY_ANALYSE_RECORDFILTER stuFilter; // 人像识别过滤条件
  23493. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23494. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  23495. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  23496. } MEDIAFILE_FACEBODY_ANALYSE_PARAM;
  23497. ///@brief DH_FILE_QUERY_FACEBODY_ANALYSE 对应 FINDNEXT 查询返回结果
  23498. typedef struct tagMEDIAFILE_FACEBODY_ANALYSE_INFO
  23499. {
  23500. DWORD dwSize; // 结构体大小
  23501. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  23502. NET_TIME stuBeginTime; // 开始时间
  23503. NET_TIME stuEndTime; // 结束时间
  23504. UINT nFileSize; // 文件长度
  23505. UINT nFileType; // 文件类型 1:jpg图片, 2: dav
  23506. UINT nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流 4-辅码流
  23507. UINT nPartition; // 分区号
  23508. UINT nCluster; // 簇号
  23509. char szFilePath[MAX_PATH]; // 文件路径
  23510. EM_RECORD_SNAP_FLAG_TYPE emFlagLists[FLAG_TYPE_MAX]; // 录像或抓图文件标志
  23511. int nFlagCount; // 标志总数
  23512. UINT nDriveNo; // 磁盘号
  23513. FACE_TRAIT stuFaceTrait; // 目标特征
  23514. BODY_TRAIT stuBodyTrait; // 人体特征
  23515. NET_EVENT_IMAGE_OFFSET_INFO stuFaceImage; // 目标图片信息
  23516. NET_EVENT_IMAGE_OFFSET_INFO stuBodyImage; // 人体图片信息
  23517. NET_EVENT_IMAGE_OFFSET_INFO stuSceneImage; // 全景图片信息
  23518. CANDIDATE_INFOEX stuCandidates[DH_MAX_CANDIDATE_NUM]; // 候选目标列表
  23519. int nCandidateNum; // 返回的候选目标个数
  23520. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuBeginTime和stuEndTime有效(仅使用stuBeginTime和stuEndTime)
  23521. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23522. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23523. } MEDIAFILE_FACEBODY_ANALYSE_INFO;
  23524. ///@brief CLIENT_FindFileEx+DH_FILE_QUERY_SNAPSHOT_WITH_MARK 对应查询参数
  23525. typedef struct tagMEDIAFILE_SNAPSHORT_WITH_MARK_PARAM
  23526. {
  23527. DWORD dwSize; // 结构体大小
  23528. NET_TIME stuStartTime; // 开始时间
  23529. NET_TIME stuEndTime; // 结束时间
  23530. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23531. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23532. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  23533. } MEDIAFILE_SNAPSHORT_WITH_MARK_PARAM;
  23534. ///@brief 抓图标记信息
  23535. typedef struct tagNET_SNAPSHOT_MARK_INFO
  23536. {
  23537. NET_POINT stuPosition; // 标记的坐标位置, 绝对坐标系
  23538. BYTE byReserved[1020]; // 预留字段
  23539. } NET_SNAPSHOT_MARK_INFO;
  23540. ///@brief DH_FILE_QUERY_SNAPSHOT_WITH_MARK 对应 FINDNEXT 查询返回结果
  23541. typedef struct tagMEDIAFILE_SNAPSHORT_WITH_MARK_INFO
  23542. {
  23543. DWORD dwSize; // 结构体大小
  23544. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  23545. NET_TIME stuStartTime; // 开始时间
  23546. NET_TIME stuEndTime; // 结束时间
  23547. UINT nFileSize; // 文件长度
  23548. char szFilePath[MAX_PATH]; // 文件路径
  23549. NET_SNAPSHOT_MARK_INFO stuMarkInfo; // 抓图标记信息
  23550. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  23551. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23552. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23553. } MEDIAFILE_SNAPSHORT_WITH_MARK_INFO;
  23554. ///@brief 目标目标信息
  23555. typedef struct tagNET_DOORCONTROL_FACE_OBJECT
  23556. {
  23557. NET_RECT stuBoundingBox; // 包围盒
  23558. IMAGE_INFO stuFaceImageInfo; // 目标图片信息
  23559. BYTE byReserved[512]; // 预留字节
  23560. } NET_DOORCONTROL_FACE_OBJECT;
  23561. ///@brief 注册库人员信息
  23562. typedef struct tagNET_REGISTER_PERSON_INFO
  23563. {
  23564. char szUID[DH_MAX_PERSON_ID_LEN]; // 人员唯一标识符,首次由服务端生成,区别于ID字段
  23565. // 修改,删除操作时必填
  23566. char szGroupID[NET_GROUPID_LENGTH]; // 人员所属组ID
  23567. char szGroupName[NET_GROUPNAME_LENGTH]; // 人员所属组名
  23568. EM_REGISTER_DB_TYPE emRegisterDbType; // 注册库类型
  23569. EM_SEX_TYPE emSexType; // 性别
  23570. UINT nFacePicNum; // 图片张数
  23571. NET_FACE_IMAGE_INFO stuFacePicInfo[DH_MAX_PERSON_IMAGE_NUM]; // 当前人员对应的图片信息
  23572. EM_PERSON_FEATURE_STATE emFeatureState; // 人员建模状态
  23573. char szPersonName[DH_MAX_PERSON_NAME_LEN]; // 姓名
  23574. NET_TIME stuBirthday; // 生日
  23575. char szCountry[NET_COUNTRY_LENGTH]; // 国籍,符合ISO3166规范
  23576. char szProvince[DH_MAX_PROVINCE_NAME_LEN]; // 省份
  23577. char szCity[DH_MAX_CITY_NAME_LEN]; // 城市
  23578. char szHomeAddress[DH_COMMON_STRING_128]; // 注册人员家庭地址
  23579. EM_CERTIFICATE_TYPE emCertificateType; // 证件类型
  23580. char szID[DH_MAX_PERSON_ID_LEN]; // 人员证件号码,工号,或其他编号
  23581. UINT nImportant; // 人员重要等级, [1,10],数值越高越重要
  23582. char szComment[NET_COMMENT_LENGTH]; // 备注信息
  23583. BYTE byReserved[2048]; // 保留字节
  23584. } NET_REGISTER_PERSON_INFO;
  23585. ///@brief 门打开事件中候选人信息
  23586. typedef struct tagNET_DOORCONTROL_CANDIDATE
  23587. {
  23588. UINT nSimilarity; // 相似度, [1,100]
  23589. NET_REGISTER_PERSON_INFO stuPersonInfo; // 人员信息
  23590. BYTE byReserved[1024]; // 保留字节
  23591. } NET_DOORCONTROL_CANDIDATE;
  23592. ///@brief DH_FILE_QUERY_DOORCONTROL_RECORD 门打开事件对应FINDNEXT查询返回参数
  23593. typedef struct tagMEDIAFILE_DOORCONTROL_RECORD_INFO
  23594. {
  23595. DWORD dwSize; // 结构体大小
  23596. /* 文件属性 */
  23597. int nChannel; // 通道
  23598. UINT nDriveNo; // 磁盘号
  23599. UINT nCluster; // 簇号
  23600. UINT nHint; // 精确定位号
  23601. char szFilePath[MAX_PATH]; // 文件路径
  23602. int nFileSize; // 文件大小
  23603. /* 门打开事件信息 */
  23604. EM_OPEN_DOOR_METHOD emOpenDoorMethod; // 开门方式
  23605. EM_OPEN_DOOR_STATE emOpenDoorState; // 开门结果
  23606. IMAGE_INFO stuSceneImageInfo; // 全景大图信息
  23607. NET_TIME stuSnapTime; // 抓拍时间
  23608. NET_DOORCONTROL_FACE_OBJECT stuFaceObject; // 目标目标信息
  23609. UINT nCandidatesNum; // 候选人数量
  23610. NET_DOORCONTROL_CANDIDATE stuCandidates[DH_MAX_CANDIDATE_NUM]; // 候选人信息
  23611. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示stuStartTimeRealUTC和stuEndTimeRealUTC无效
  23612. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23613. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23614. } MEDIAFILE_DOORCONTROL_RECORD_INFO;
  23615. ///@brief 视频浓缩相关文件查询参数
  23616. typedef struct __MEDIA_QUERY_VIDEOSYNOPSIS_PARAM
  23617. {
  23618. DWORD dwSize;
  23619. NET_TIME StartTime; // 开始时间
  23620. NET_TIME EndTime; // 结束时间
  23621. int nMediaType; // 文件类型,0:查询任意类型,1:图片,2:录像
  23622. int nQueryType; // 查询类型,1:原始视频文件 2:浓缩后的视频文件
  23623. }MEDIA_QUERY_VIDEOSYNOPSIS_PARAM;
  23624. ///@brief 查询录像信息
  23625. typedef struct __MEDIAFILE_VIDEOSYNOPSIS_INFO
  23626. {
  23627. char szFilePath[128]; // 文件路径
  23628. unsigned int size; // 文件长度
  23629. NET_TIME starttime; // 开始时间
  23630. NET_TIME endtime; // 结束时间
  23631. unsigned int nWorkDirSN; // 工作目录编号
  23632. BYTE nFileType; // 文件类型 1:jpg图片
  23633. BYTE bHint; // 文件定位索引
  23634. BYTE bDriveNo; // 磁盘号
  23635. BYTE bReserved2;
  23636. unsigned int nCluster; // 簇号
  23637. BYTE byPictureType; // 图片类型, 0-普通, 1-合成, 2-抠图
  23638. BYTE bReserved[3]; // 保留字段
  23639. /* 视频源文件相关信息 */
  23640. int nTaskID; // 任务ID
  23641. char szCurrentState[DH_MAX_SYNOPSIS_STATE_NAME]; // 视频浓缩状态
  23642. int nProgress; // 对应浓缩状态
  23643. int nObjectNum; // 浓缩得到的物体个数
  23644. /* 浓缩后的视频文件相关信息 */
  23645. int nDurationTime; // 持续时间,单位s
  23646. }MEDIAFILE_VIDEOSYNOPSIS_INFO;
  23647. ///@brief 温度类型
  23648. typedef enum tagEM_QUERY_TEMPERATURE_TYPE
  23649. {
  23650. EM_QUERY_TEMPERATURE_TYPE_UNKNOWN = -1, // 未知
  23651. EM_QUERY_TEMPERATURE_TYPE_ALL, // 全部
  23652. EM_QUERY_TEMPERATURE_TYPE_LOW, // 低
  23653. EM_QUERY_TEMPERATURE_TYPE_NORMAL, // 正常
  23654. EM_QUERY_TEMPERATURE_TYPE_HIGH, // 高
  23655. }EM_QUERY_TEMPERATURE_TYPE;
  23656. ///@brief 人员过滤信息
  23657. typedef struct tagANATOMY_TEMP_DETECT_PERSON_FILTER
  23658. {
  23659. char szName[64]; // 姓名
  23660. BYTE byReserved[1024]; // 保留字节
  23661. } ANATOMY_TEMP_DETECT_PERSON_FILTER;
  23662. ///@brief 人体测温过滤条件
  23663. typedef struct tagNET_ANATOMY_TEMP_DETECT_FILTER
  23664. {
  23665. EM_QUERY_TEMPERATURE_TYPE emTempType; // 温度类型
  23666. BYTE byReserved1[4]; // 预留字段
  23667. double dbTemperature; // 温度值
  23668. ANATOMY_TEMP_DETECT_PERSON_FILTER stuPersonInfo; // 人员信息
  23669. BYTE byReserved[1024]; // 保留字节
  23670. }NET_ANATOMY_TEMP_DETECT_FILTER;
  23671. ///@brief 热成像人体测温查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_ANATOMY_TEMP_DETECT )
  23672. typedef struct tagMEDIAFILE_ANATOMY_TEMP_DETECT_PARAM
  23673. {
  23674. DWORD dwSize; // 结构体大小
  23675. int nChannelID; // 通道号,从0开始,-1表示查询所有通道
  23676. NET_TIME stuBeginTime; // 开始时间
  23677. NET_TIME stuEndTime; // 结束时间
  23678. NET_ANATOMY_TEMP_DETECT_FILTER stuFilter; // 过滤信息
  23679. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23680. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  23681. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  23682. }MEDIAFILE_ANATOMY_TEMP_DETECT_PARAM;
  23683. ///@brief MEDIAFILE_ANATOMY_TEMP_DETECT_INFO 中 nEventType 为 EVENT_IVS_ANATOMY_TEMP_DETECT 时,pEventData 类型
  23684. typedef struct tagNET_ANATOMY_TEMP_DETECT_ANATOMYTEMPDETECT_RESULT
  23685. {
  23686. BYTE byReserved[1024]; // 预留字段
  23687. }NET_ANATOMY_TEMP_DETECT_ANATOMYTEMPDETECT_RESULT;
  23688. ///@brief 目标检测信息
  23689. typedef struct tagMEDIAFILE_ANATOMY_TEMP_DETECT_FACEDETECT_RESULT
  23690. {
  23691. EM_SEX_TYPE emSex; // 性别
  23692. int nAge; // 年龄
  23693. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotion; // 目标表情
  23694. char szReserved1[4];
  23695. EM_EYE_STATE_TYPE emEye; // 眼睛状态
  23696. EM_MOUTH_STATE_TYPE emMouth; // 嘴巴状态
  23697. EM_MASK_STATE_TYPE emMask; // 口罩状态
  23698. EM_BEARD_STATE_TYPE emBeard; // 胡子状态
  23699. int nAttractive; // 魅力值, -1表示无效, 0未识别,识别时范围1-100,得分高魅力高
  23700. BYTE byReserved1[4]; // 预留字段1
  23701. EM_FACEDETECT_GLASSES_TYPE emGlasses; // 眼镜类型
  23702. BYTE byReserved[1020]; // 预留字段
  23703. }MEDIAFILE_ANATOMY_TEMP_DETECT_FACEDETECT_RESULT;
  23704. ///@brief 测温查询候选人信息
  23705. typedef struct tagMEDIAFILE_ANATOMY_TEMP_DETECT_CANDIDATE_INFO
  23706. {
  23707. int nSimilarity; // 相似度,值越大,越相似
  23708. FACERECOGNITION_PERSON_INFOEX stuPersonInfo; // 人信息
  23709. BYTE byReserved[2048]; // 预留字段
  23710. }MEDIAFILE_ANATOMY_TEMP_DETECT_CANDIDATE_INFO;
  23711. ///@brief 目标识别信息
  23712. typedef struct tagMEDIAFILE_ANATOMY_TEMP_DETECT_FACERECOGNITION_RESULT
  23713. {
  23714. BOOL bGlobalScenePic; // 全景图是否存在
  23715. DH_PIC_INFO_EX stuGlobalScenePic; // 全景图片文件路径
  23716. int nCandidateNum; // 当前目标匹配到的候选对象数量
  23717. MEDIAFILE_ANATOMY_TEMP_DETECT_CANDIDATE_INFO stuCandidates[DH_MAX_CANDIDATE_NUM]; // 当前目标匹配到的候选对象信息, 实际返回个数为 nCandidateNum
  23718. FACE_INFO_OBJECT stuFaceInfo; // 目标小图信息
  23719. BYTE byReserved[1024]; // 预留字段
  23720. }MEDIAFILE_ANATOMY_TEMP_DETECT_FACERECOGNITION_RESULT;
  23721. ///@brief 文件类型
  23722. typedef enum tagEM_FILE_TYPE
  23723. {
  23724. EM_FILE_TYPE_UNKNOWN, // 未知
  23725. EM_FILE_TYPE_JPG, // jpg 图片
  23726. EM_FILE_TYPE_DAV, // dav 文件
  23727. }EM_FILE_TYPE;
  23728. ///@brief 热成像人体测温查询结果 ( CLIENT_FindFileEx + DH_FILE_QUERY_ANATOMY_TEMP_DETECT )
  23729. typedef struct tagMEDIAFILE_ANATOMY_TEMP_DETECT_INFO
  23730. {
  23731. DWORD dwSize; // 结构体大小
  23732. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  23733. NET_TIME stuBeginTime; // 开始时间
  23734. NET_TIME stuEndTime; // 结束时间
  23735. NET_TIME stuEventTime; // 事件发生时间
  23736. INT64 nFileSize; // 文件长度
  23737. EM_FILE_TYPE emFileType; // 文件类型
  23738. char szFilePath[MAX_PATH]; // 文件路径
  23739. int nEventList[MAX_IVS_EVENT_NUM]; // 关联的事件列表,事件类型列表,参见智能分析事件类型
  23740. int nEventCount; // 事件总数
  23741. int nPartition; // 分区号
  23742. int nDriveNo; // 磁盘号
  23743. int nCluster; // 簇号
  23744. int nPicIndex; // 表示在簇中的图片序号
  23745. // 对于同一个簇中打包多张图片,提供索引方式定位图片
  23746. EM_QUERY_TEMPERATURE_TYPE emTempType; // 温度信息
  23747. double dbTemperature; // 温度值
  23748. BYTE byReserved1[4]; // 预留字段
  23749. int nEventType; // 关联的智能事件码: EVENT_IVS_ANATOMY_TEMP_DETECT,EVENT_IVS_FACEDETECT,EVENT_IVS_FACERECOGNITION
  23750. NET_ANATOMY_TEMP_DETECT_ANATOMYTEMPDETECT_RESULT stuAnatomyDetectResult; // nEventType 为 EVENT_IVS_ANATOMY_TEMP_DETECT 时,有效
  23751. MEDIAFILE_ANATOMY_TEMP_DETECT_FACEDETECT_RESULT stuFaceDetectResult; // nEventType 为 EVENT_IVS_FACEDETECT 时,有效
  23752. MEDIAFILE_ANATOMY_TEMP_DETECT_FACERECOGNITION_RESULT stuFaceRecognitionResult; // nEventType 为 EVENT_IVS_FACERECOGNITION 时,有效
  23753. char szObjectPath[8][MAX_PATH]; // 目标图路径
  23754. int nObjectPathNum; // szObjectPath 的个数
  23755. char szFacePicturePath[MAX_PATH]; // 目标图路径
  23756. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuBeginTime和stuEndTime有效(仅使用stuBeginTime和stuEndTime)
  23757. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23758. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23759. }MEDIAFILE_ANATOMY_TEMP_DETECT_INFO;
  23760. ///@brief 比对操作类型
  23761. typedef enum tagEM_COMPARE_OPERATOR_TYPE
  23762. {
  23763. EM_COMPARE_OPERATOR_TYPE_UNKNOWN, // 未知
  23764. EM_COMPARE_OPERATOR_TYPE_EQUAL, // 相等
  23765. EM_COMPARE_OPERATOR_TYPE_OR, // 或
  23766. }EM_COMPARE_OPERATOR_TYPE;
  23767. ///@brief 查询文件类型
  23768. typedef enum tagEM_QUERY_FILE_TYPE
  23769. {
  23770. EM_QUERY_FILE_TYPE_UNKNOWN, // 未知
  23771. EM_QUERY_FILE_TYPE_ORIGIN, // 原始图
  23772. EM_QUERY_FILE_TYPE_COMPOSITE, // 合成图
  23773. EM_QUERY_FILE_TYPE_DAV, // dav 录像
  23774. EM_QUERY_FILE_TYPE_AVI, // avi 录像
  23775. EM_QUERY_FILE_TYPE_MP4, // mp4 录像
  23776. }EM_QUERY_FILE_TYPE;
  23777. ///@brief 车牌号过滤条件
  23778. typedef struct tagNET_PLATE_NUMBER_FILTER
  23779. {
  23780. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 操作类型
  23781. char szPlateNumber[16][64]; // 车牌号,如"*8888"
  23782. int nPlateNumberCount; // szPlateNumber 数量
  23783. BYTE byReserved[128]; // 预留字段
  23784. }NET_PLATE_NUMBER_FILTER;
  23785. ///@brief 违章事件类型
  23786. typedef enum tagEM_ILLEGAL_TRAFFIC_EVENT_TYPE
  23787. {
  23788. EM_ILLEGAL_TRAFFIC_EVENT_TYPE_UNKNOWN, // 未知
  23789. EM_ILLEGAL_TRAFFIC_EVENT_TYPE_TRAFFIC_PARKING, // 违法停车
  23790. EM_ILLEGAL_TRAFFIC_EVENT_TYPE_TRAFFIC_PARKING_A, // A类违法停车
  23791. EM_ILLEGAL_TRAFFIC_EVENT_TYPE_TRAFFIC_PARKING_B, // B类违法停车
  23792. EM_ILLEGAL_TRAFFIC_EVENT_TYPE_TRAFFIC_PARKING_C, // C类违法停车
  23793. EM_ILLEGAL_TRAFFIC_EVENT_TYPE_TRAFFIC_PARKING_D, // D类违法停车
  23794. }EM_ILLEGAL_TRAFFIC_EVENT_TYPE;
  23795. ///@brief 事件类型过滤条件
  23796. typedef struct tagNET_EVENT_TYPE_FILTER
  23797. {
  23798. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 操作类型
  23799. EM_ILLEGAL_TRAFFIC_EVENT_TYPE emEventType[16]; // 事件类型
  23800. int nEventTypeCount; // emEventType 数量
  23801. BYTE byReserved[128]; // 预留字段
  23802. }NET_EVENT_TYPE_FILTER;
  23803. ///@brief 车牌颜色过滤条件
  23804. typedef struct tagNET_PLATE_COLOR_FILTER
  23805. {
  23806. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 操作类型
  23807. char szColor[16][64]; // 车牌颜色 "黑牌","蓝牌", "绿牌","紫牌","灰牌",
  23808. // "棕牌","红牌","黄牌","白牌","渐变绿","黄绿双拼"
  23809. int nColorCount; // szColor 数量
  23810. BYTE byReserved[128]; // 预留字段
  23811. }NET_PLATE_COLOR_FILTER;
  23812. ///@brief 车辆颜色过滤条件
  23813. typedef struct tagNET_VEHICLE_COLOR_FILTER
  23814. {
  23815. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 操作类型
  23816. char szColor[16][64]; // 车辆颜色 "黑色","蓝色","绿色", "紫色", "灰色", "棕色","红色","黄色",
  23817. // "白色","暗紫罗兰色", "棕色", "栗色","银灰色","暗灰色","白烟色","深橙色",
  23818. // "浅玫瑰色","番茄红色", "橄榄色","金色","暗橄榄绿色","黄绿色","绿黄色",
  23819. // "森林绿色", "海洋绿色", "深天蓝色","青色", "无法识别"
  23820. int nColorCount; // emColor 数量
  23821. BYTE byReserved[128]; // 预留字段
  23822. }NET_VEHICLE_COLOR_FILTER;
  23823. ///@brief 车辆类型过滤条件
  23824. typedef struct tagNET_VEHICLE_TYPE_FILTER
  23825. {
  23826. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 操作类型
  23827. char szType[16][64]; // 车辆类型 "未知", "客车", "大货车", "中货车", "轿车", "面包车", "小货车", "三轮车", "摩托车"
  23828. // "行人", "suv-mpv", "中客车", "危化品车辆", "SUV", "MPV", "公交车", "皮卡车", "微型车", "油罐车"
  23829. int nTypeCount; // szType 数量
  23830. BYTE byReserved[128]; // 预留字段
  23831. }NET_VEHICLE_TYPE_FILTER;
  23832. ///@brief 车辆Logo过滤条件
  23833. typedef struct tagNET_VEHICLE_LOGO_FILTER
  23834. {
  23835. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 操作类型
  23836. char szLogo[16][64]; // Logo, "Audi"-奥迪, "Honda"-本田 ...
  23837. int nLogoCount; // szLogo 数量
  23838. BYTE byReserved[128]; // 预留字段
  23839. }NET_VEHICLE_LOGO_FILTER;
  23840. ///@brief 车系过滤条件
  23841. typedef struct tagNET_VEHICLE_SERIES_FILTER
  23842. {
  23843. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 操作类型
  23844. char szSeries[16][64]; // 车系,如"*Audi"
  23845. int nSeriesCount; // szSeries 数量
  23846. BYTE byReserved[128]; // 预留字段
  23847. }NET_VEHICLE_SERIES_FILTER;
  23848. ///@brief 事件码过滤条件
  23849. typedef struct tagNET_EVENT_CODE_FILTER
  23850. {
  23851. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 操作类型
  23852. char szEventCode[16][64]; // 事件码,如"*7002"
  23853. int nEventCodeCount; // szEventCode 数量
  23854. BYTE byReserved[128]; // 预留字段
  23855. }NET_EVENT_CODE_FILTER;
  23856. ///@brief 防伪码过滤条件
  23857. typedef struct tagNET_DEFEND_CODE_FILTER
  23858. {
  23859. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 操作类型
  23860. char szDefendCode[16][64]; // 防伪码,如"*888*"
  23861. int nDefendCodeCount; // szDefendCode 数量
  23862. BYTE byReserved[128]; // 预留字段
  23863. }NET_DEFEND_CODE_FILTER;
  23864. ///@brief 文件类型过滤条件
  23865. typedef struct tagNET_FILE_TYPE_FILTER
  23866. {
  23867. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 操作类型
  23868. EM_QUERY_FILE_TYPE emFileType[16]; // 文件类型
  23869. int nFileTypeCount; // emFileType 数量
  23870. BYTE byReserved[128]; // 预留字段
  23871. }NET_FILE_TYPE_FILTER;
  23872. ///@brief 违停车辆查询过滤条件
  23873. ///@brief 对于车辆Logo、车系、事件码等字段参考 DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO 结构体
  23874. typedef struct tagNET_ILLEGAL_TRAFFIC_FILTER
  23875. {
  23876. NET_PLATE_NUMBER_FILTER stuPlateNumberFilter; // 车牌号过滤器
  23877. NET_PLATE_COLOR_FILTER stuPlateColorFilter; // 车牌颜色过滤器
  23878. NET_EVENT_TYPE_FILTER stuEventTypeFilter; // 事件类型过滤器
  23879. NET_VEHICLE_COLOR_FILTER stuVehicleColorFilter; // 车辆颜色过滤器
  23880. NET_VEHICLE_TYPE_FILTER stuVehicleTypeFilter; // 车辆类型过滤器
  23881. NET_VEHICLE_LOGO_FILTER stuVehicleLogoFilter; // 车辆Logo过滤器
  23882. NET_VEHICLE_SERIES_FILTER stuVehicleSeriesFilter; // 车系过滤器
  23883. NET_EVENT_CODE_FILTER stuEventCodeFilter; // 事件码过滤器
  23884. NET_DEFEND_CODE_FILTER stuDefendCodeFilter; // 防伪码过滤器
  23885. NET_FILE_TYPE_FILTER stuFileTypeFilter; // 文件类型过滤器
  23886. BYTE byReserved[2048]; // 预留字段
  23887. }NET_ILLEGAL_TRAFFIC_FILTER;
  23888. ///@brief 违停车辆查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_ILLEGAL_TRAFFIC )
  23889. typedef struct tagMEDIAFILE_ILLEGAL_TRAFFIC_PARAM
  23890. {
  23891. DWORD dwSize; // 结构体大小
  23892. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  23893. NET_TIME stuBeginTime; // 开始时间
  23894. NET_TIME stuEndTime; // 结束时间
  23895. NET_ILLEGAL_TRAFFIC_FILTER stuFilter; // 过滤信息
  23896. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23897. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  23898. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  23899. }MEDIAFILE_ILLEGAL_TRAFFIC_PARAM;
  23900. ///@brief 违停车辆查询结果 ( CLIENT_FindFileEx + DH_FILE_QUERY_ILLEGAL_TRAFFIC )
  23901. typedef struct tagMEDIAFILE_ILLEGAL_TRAFFIC_INFO
  23902. {
  23903. DWORD dwSize; // 结构体大小
  23904. int nChannelID; // 通道号
  23905. char szFilePath[MAX_PATH]; // 文件路径
  23906. INT64 nFileSize; // 文件长度
  23907. EM_QUERY_FILE_TYPE emFileType; // 文件类型
  23908. EM_ILLEGAL_TRAFFIC_EVENT_TYPE emEventType; // 事件类型
  23909. char szEventCode[64]; // 违章码
  23910. NET_TIME stuEventTime; // 违章时间,UTC
  23911. char szEventAddress[128]; // 违章地点
  23912. int nGroupID; // 事件组ID
  23913. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  23914. int nParkingTime; // 停车时间,单位秒
  23915. BYTE byReserved[4]; // 字节对齐
  23916. char szVehicleColor[64]; // 车辆颜色
  23917. char szMachineName[64]; // 机器名称
  23918. char szDefendCode[64]; // 防伪码
  23919. char szPlateColor[64]; // 车牌颜色
  23920. char szPlateNumber[64]; // 车牌号
  23921. char szVehicleLogo[64]; // 车辆logo
  23922. char szVehicleSeries[64]; // 车系
  23923. char szVehicleType[64]; // 车型
  23924. BOOL bRealUTC; // 为TRUE表示stuStartTimeRealUTC和stuEndTimeRealUTC有效(使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示stuStartTimeRealUTC和stuEndTimeRealUTC无效
  23925. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23926. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23927. }MEDIAFILE_ILLEGAL_TRAFFIC_INFO;
  23928. ///@brief 烟火检测查询过滤条件
  23929. typedef struct tagNET_SMOKE_FIRE_FILTER
  23930. {
  23931. char szRule[64]; // 智能分析规则,当szRule不为""时,MEDIAFILE_SMOKE_FIRE_PARAM 中 nEventList 无效
  23932. // 通配符"*"代表任意规则、"SmokeDetection"、"FireDetection"
  23933. BYTE byReserved[1024]; // 预留字段
  23934. }NET_SMOKE_FIRE_FILTER;
  23935. ///@brief 烟火检测查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_SMOKE_FIRE )
  23936. typedef struct tagMEDIAFILE_SMOKE_FIRE_PARAM
  23937. {
  23938. DWORD dwSize; // 结构体大小
  23939. int nFileType; // 文件类型,0:查询任意类型,1:查询jpg图片,2:查询dav
  23940. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  23941. NET_TIME stuBeginTime; // 开始时间
  23942. NET_TIME stuEndTime; // 结束时间
  23943. int nEventList[256]; // 事件类型列表,参见智能分析事件类型,如EVENT_IVS_ALL、EVENT_IVS_SMOKEDETECTION
  23944. int nEventCount; // 事件总数
  23945. NET_SMOKE_FIRE_FILTER stuFilter; // 过滤规则
  23946. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23947. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  23948. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  23949. }MEDIAFILE_SMOKE_FIRE_PARAM;
  23950. ///@brief 烟火检测查询结果 ( CLIENT_FindFileEx + DH_FILE_QUERY_SMOKE_FIRE )
  23951. typedef struct tagMEDIAFILE_SMOKE_FIRE_INFO
  23952. {
  23953. DWORD dwSize; // 结构体大小
  23954. int nChannelID; // 通道号
  23955. NET_TIME stuBeginTime; // 开始时间
  23956. NET_TIME stuEndTime; // 结束时间
  23957. char szGlobalSceneFilePath[260]; // 文件路径
  23958. int nGlobalSceneFileSize; // 文件长度
  23959. char szRule[64]; // 规则
  23960. NET_RECT stuBoundingBox; // 包围盒,8192坐标系
  23961. NET_EVENT_IMAGE_INFO stuImageInfo; // 小图信息
  23962. int nFileType; // 文件类型,1:jpg, 2:dav,默认:jpg
  23963. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuBeginTime和stuEndTime有效(仅使用stuBeginTime和stuEndTime)
  23964. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  23965. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  23966. }MEDIAFILE_SMOKE_FIRE_INFO;
  23967. ///@brief 烟火检测查询过滤条件
  23968. typedef struct tagNET_FIRE_CONTROL_MONITOR_FILTER
  23969. {
  23970. char szRule[64]; // 智能分析规则,当szRule不为""时,MEDIAFILE_FIRE_CONTROL_MONITOR_PARAM 中 nEventList 无效
  23971. // 通配符"*"代表任意规则、"SleepDetect"、"PlayMobilephone"、"PhoneCallDetect"
  23972. BYTE byReserved[1024]; // 预留字段
  23973. }NET_FIRE_CONTROL_MONITOR_FILTER;
  23974. ///@brief 消控室值班行为检测事件查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_FIRE_CONTROL_MONITOR )
  23975. typedef struct tagMEDIAFILE_FIRE_CONTROL_MONITOR_PARAM
  23976. {
  23977. DWORD dwSize; // 结构体大小
  23978. int nFileType; // 文件类型,0:查询任意类型,1:查询jpg图片,2:查询dav
  23979. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  23980. NET_TIME stuBeginTime; // 开始时间
  23981. NET_TIME stuEndTime; // 结束时间
  23982. int nEventList[256]; // 事件类型列表,参见智能分析事件类型,如EVENT_IVS_ALL、EVENT_IVS_SLEEP_DETECT
  23983. int nEventCount; // 事件总数
  23984. NET_FIRE_CONTROL_MONITOR_FILTER stuFilter; // 过滤规则
  23985. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  23986. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  23987. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  23988. }MEDIAFILE_FIRE_CONTROL_MONITOR_PARAM;
  23989. ///@brief 消控室值班行为检测事件查询结果 ( CLIENT_FindFileEx + DH_FILE_QUERY_FIRE_CONTROL_MONITOR )
  23990. typedef struct tagMEDIAFILE_FIRE_CONTROL_MONITOR_INFO
  23991. {
  23992. DWORD dwSize; // 结构体大小
  23993. int nChannelID; // 通道号
  23994. NET_TIME stuBeginTime; // 开始时间
  23995. NET_TIME stuEndTime; // 结束时间
  23996. char szGlobalSceneFilePath[260]; // 文件路径
  23997. int nGlobalSceneFileSize; // 文件长度
  23998. char szRule[64]; // 规则
  23999. NET_RECT stuBoundingBox; // 包围盒,8192坐标系
  24000. NET_EVENT_IMAGE_INFO stuImageInfo; // 小图信息
  24001. int nFileType; // 文件类型,1:jpg, 2:dav,默认:jpg
  24002. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuBeginTime和stuEndTime有效(仅使用stuBeginTime和stuEndTime)
  24003. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24004. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24005. }MEDIAFILE_FIRE_CONTROL_MONITOR_INFO;
  24006. ///@brief 消防占道物体类型
  24007. typedef enum tagEM_FIRE_LANE_OBJECT_TYPE
  24008. {
  24009. EM_FIRE_LANE_OBJECT_TYPE_UNKNOWN, // 未知
  24010. EM_FIRE_LANE_OBJECT_TYPE_ANY, // 任意
  24011. EM_FIRE_LANE_OBJECT_TYPE_CARTON, // 盒子
  24012. EM_FIRE_LANE_OBJECT_TYPE_BOX, // 箱子
  24013. EM_FIRE_LANE_OBJECT_TYPE_NONMOTOR, // 非机动车
  24014. }EM_FIRE_LANE_OBJECT_TYPE;
  24015. ///@brief 消防通道占道检测查询过滤条件
  24016. typedef struct tagNET_FIRE_LANE_DETECTION_FILTER
  24017. {
  24018. EM_FIRE_LANE_OBJECT_TYPE emObjectTypes[32]; // 规则触发的对象类型
  24019. int nObjectTypes; // emObjectTypes 个数
  24020. BYTE byReserved[1020]; // 预留字段
  24021. }NET_FIRE_LANE_DETECTION_FILTER;
  24022. ///@brief 消防通道占道检测查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_FIRE_LANE_DETECTION )
  24023. typedef struct tagMEDIAFILE_FIRE_LANE_DETECTION_PARAM
  24024. {
  24025. DWORD dwSize; // 结构体大小
  24026. int nFileType; // 文件类型,0:查询任意类型,1:查询jpg图片,2:查询dav
  24027. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24028. NET_TIME stuBeginTime; // 开始时间
  24029. NET_TIME stuEndTime; // 结束时间
  24030. int nEventList[256]; // 事件类型列表,参见智能分析事件类型,如EVENT_IVS_ALL
  24031. int nEventCount; // 事件总数
  24032. NET_FIRE_LANE_DETECTION_FILTER stuFilter; // 过滤规则
  24033. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  24034. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  24035. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  24036. }MEDIAFILE_FIRE_LANE_DETECTION_PARAM;
  24037. ///@brief 消防通道占道检测查询结果 ( CLIENT_FindFileEx + DH_FILE_QUERY_FIRE_LANE_DETECTION )
  24038. typedef struct tagMEDIAFILE_FIRE_LANE_DETECTION_INFO
  24039. {
  24040. DWORD dwSize; // 结构体大小
  24041. int nChannelID; // 通道号
  24042. NET_TIME stuBeginTime; // 开始时间
  24043. NET_TIME stuEndTime; // 结束时间
  24044. char szGlobalSceneFilePath[260]; // 文件路径
  24045. int nGlobalSceneFileSize; // 文件长度
  24046. int nFileType; // 文件类型,1:jpg, 2:dav,默认:jpg
  24047. EM_FIRE_LANE_OBJECT_TYPE emObjectType; // 规则触发的对象类型
  24048. NET_RECT stuBoundingBox; // 包围盒,8192坐标系
  24049. NET_EVENT_IMAGE_INFO stuImageInfo; // 小图信息
  24050. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuBeginTime和stuEndTime有效(仅使用stuBeginTime和stuEndTime)
  24051. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24052. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24053. }MEDIAFILE_FIRE_LANE_DETECTION_INFO;
  24054. ///@brief 安全隐患物体类型
  24055. typedef enum tagEM_NONMOTOR_ENTRYING_OBJECT_TYPE
  24056. {
  24057. EM_NONMOTOR_ENTRYING_OBJECT_TYPE_UNKNOWN, // 未知
  24058. EM_NONMOTOR_ENTRYING_OBJECT_TYPE_ANY, // 任意
  24059. EM_NONMOTOR_ENTRYING_OBJECT_TYPE_NONMOTOR, // 非机动车
  24060. }EM_NONMOTOR_ENTRYING_OBJECT_TYPE;
  24061. ///@brief 安全隐患检测查询过滤条件
  24062. typedef struct tagNET_NONMOTOR_ENTRYING_FILTER
  24063. {
  24064. EM_NONMOTOR_ENTRYING_OBJECT_TYPE emObjectTypes[32]; // 规则触发的对象类型
  24065. int nObjectTypes; // emObjectTypes 个数
  24066. BYTE byReserved[1020]; // 预留字段
  24067. }NET_NONMOTOR_ENTRYING_FILTER;
  24068. ///@brief 安全隐患检测查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_NONMOTOR_ENTRYING )
  24069. typedef struct tagMEDIAFILE_NONMOTOR_ENTRYING_PARAM
  24070. {
  24071. DWORD dwSize; // 结构体大小
  24072. int nFileType; // 文件类型,0:查询任意类型,1:查询jpg图片,2:查询dav
  24073. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24074. NET_TIME stuBeginTime; // 开始时间
  24075. NET_TIME stuEndTime; // 结束时间
  24076. int nEventList[256]; // 事件类型列表,参见智能分析事件类型,如EVENT_IVS_ALL
  24077. int nEventCount; // 事件总数
  24078. NET_NONMOTOR_ENTRYING_FILTER stuFilter; // 过滤规则
  24079. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  24080. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  24081. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  24082. }MEDIAFILE_NONMOTOR_ENTRYING_PARAM;
  24083. ///@brief 安全隐患检测查询结果 ( CLIENT_FindFileEx + DH_FILE_QUERY_NONMOTOR_ENTRYING )
  24084. typedef struct tagMEDIAFILE_NONMOTOR_ENTRYING_INFO
  24085. {
  24086. DWORD dwSize; // 结构体大小
  24087. int nChannelID; // 通道号
  24088. NET_TIME stuBeginTime; // 开始时间
  24089. NET_TIME stuEndTime; // 结束时间
  24090. char szGlobalSceneFilePath[260]; // 文件路径
  24091. int nGlobalSceneFileSize; // 文件长度
  24092. int nFileType; // 文件类型,1:jpg, 2:dav,默认:jpg
  24093. EM_NONMOTOR_ENTRYING_OBJECT_TYPE emObjectType; // 规则触发的对象类型
  24094. NET_RECT stuBoundingBox; // 包围盒,8192坐标系
  24095. NET_EVENT_IMAGE_INFO stuImageInfo; // 小图信息
  24096. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuBeginTime和stuEndTime有效(仅使用stuBeginTime和stuEndTime)
  24097. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24098. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24099. }MEDIAFILE_NONMOTOR_ENTRYING_INFO;
  24100. ///@brief 安全帽佩戴状态
  24101. typedef enum tagEM_WORK_HELMET_STATE
  24102. {
  24103. EM_HELMET_STATE_UNKNOWN, // 未知
  24104. EM_HELMET_STATE_NOTWEAR, // 不带安全帽
  24105. EM_HELMET_STATE_WEAR, // 有带安全帽
  24106. EM_HELMET_STATE_INCONFORMITY_COLOR, // 不存在指定颜色的安全帽
  24107. } EM_WORK_HELMET_STATE;
  24108. ///@brief 工作服穿戴状态
  24109. typedef enum tagEM_WORKCLOTHES_STATE
  24110. {
  24111. EM_WORKCLOTHES_STATE_UNKNOWN, // 未知
  24112. EM_WORKCLOTHES_STATE_NOTWEAR, // 无工作服
  24113. EM_WORKCLOTHES_STATE_WEAR, // 有工作服
  24114. } EM_WORKCLOTHES_STATE;
  24115. ///@brief 安全帽过滤信息
  24116. typedef struct tagNET_HELMET_FILTER
  24117. {
  24118. EM_CLOTHES_COLOR emColors[16]; // 安全帽颜色
  24119. UINT nColorsCount; // emColors 数量
  24120. EM_WORK_HELMET_STATE emStates[8]; // 安全帽状态
  24121. UINT nStatesCount; // emStates 个数
  24122. char byReserved[512]; // 预留字段
  24123. }NET_HELMET_FILTER;
  24124. ///@brief 工作服过滤信息
  24125. typedef struct tagNET_CLOTHES_FILTER
  24126. {
  24127. EM_CLOTHES_COLOR emColors[16]; // 衣服颜色
  24128. UINT nColorsCount; // emColors 数量
  24129. EM_WORKCLOTHES_STATE emStates[8]; // 衣服状态
  24130. UINT nStatesCount; // emStates 个数
  24131. char byReserved[512]; // 预留字段
  24132. }NET_CLOTHES_FILTER;
  24133. ///@brief 作业管控查询过滤条件
  24134. typedef struct tagNET_WORK_CLOTHER_DETECTION_FILTER
  24135. {
  24136. NET_HELMET_FILTER stuHelmetFilter; // 安全帽过滤信息
  24137. NET_CLOTHES_FILTER stuClothesFilter; // 工作服过滤信息
  24138. BYTE byReserved[1024]; // 预留字段
  24139. }NET_WORK_CLOTHER_DETECTION_FILTER;
  24140. ///@brief 作业管控查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_WORK_CLOTHES_DETECTION )
  24141. typedef struct tagMEDIAFILE_WORK_CLOTHES_DETECTION_PARAM
  24142. {
  24143. DWORD dwSize; // 结构体大小
  24144. int nFileType; // 文件类型,0:查询任意类型,1:查询jpg图片,2:查询dav
  24145. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24146. NET_TIME stuBeginTime; // 开始时间
  24147. NET_TIME stuEndTime; // 结束时间
  24148. int nEventList[256]; // 事件类型列表,参见智能分析事件类型,如EVENT_IVS_ALL
  24149. int nEventCount; // 事件总数
  24150. NET_WORK_CLOTHER_DETECTION_FILTER stuFilter; // 过滤规则
  24151. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  24152. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24153. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24154. }MEDIAFILE_WORK_CLOTHES_DETECTION_PARAM;
  24155. ///@brief 安全帽信息
  24156. typedef struct tagMEDIAFILE_HELMET_INFO
  24157. {
  24158. EM_CLOTHES_COLOR emColor; // 安全帽颜色
  24159. EM_WORK_HELMET_STATE emState; // 安全帽状态
  24160. char byReserved[512]; // 预留字段
  24161. }MEDIAFILE_HELMET_INFO;
  24162. ///@brief 工作服信息
  24163. typedef struct tagMEDIAFILE_CLOTHES_INFO
  24164. {
  24165. EM_CLOTHES_COLOR emColor; // 工作服颜色
  24166. EM_WORKCLOTHES_STATE emState; // 工作服状态
  24167. char byReserved[512]; // 预留字段
  24168. }MEDIAFILE_CLOTHES_INFO;
  24169. ///@brief 作业管控查询结果 ( CLIENT_FindFileEx + DH_FILE_QUERY_WORK_CLOTHES_DETECTION )
  24170. typedef struct tagMEDIAFILE_WORK_CLOTHES_DETECTION_INFO
  24171. {
  24172. DWORD dwSize; // 结构体大小
  24173. int nChannelID; // 通道号
  24174. NET_TIME stuBeginTime; // 开始时间
  24175. NET_TIME stuEndTime; // 结束时间
  24176. MEDIAFILE_HELMET_INFO stuHelmetInfo; // 安全帽信息
  24177. MEDIAFILE_CLOTHES_INFO stuClothesInfo; // 工作服信息
  24178. char szGlobalSceneImageFilePath[260];// 全景图路径
  24179. UINT nGlobalSceneImageFileLength; // 全景图长度
  24180. char szHumanSmallImageFilePath[260]; // 人体小图路径
  24181. UINT nHumanSmallImageFileLength; // 人体小图长度
  24182. NET_RECT stuHumanBoundingBox; // 包围盒,8192坐标系
  24183. int nFileType; // 文件类型,1:jpg, 2:dav,默认:jpg
  24184. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuBeginTime和stuEndTime有效(仅使用stuBeginTime和stuEndTime)
  24185. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24186. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24187. BYTE byReserved[968]; // 预留字段
  24188. }MEDIAFILE_WORK_CLOTHES_DETECTION_INFO;
  24189. ///@brief 智慧城管查询事件过滤条件
  24190. typedef struct tagNET_INTELLIGENT_CITY_MANAGER_EVENT_FILTER
  24191. {
  24192. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 事件操作类型
  24193. int nEventList[64]; // 事件类型列表,参见智能分析事件类型:EVENT_IVS_ALL、EVENT_IVS_CITY_MOTORPARKING、EVENT_IVS_SHOPPRESENCE、
  24194. // EVENT_IVS_CITY_NONMOTORPARKING、EVENT_IVS_FLOWBUSINESS、EVENT_IVS_TRAFFIC_NONMOTOR_HOLDUMBRELLA
  24195. // EVENT_IVS_GARBAGE_EXPOSURE、EVENT_IVS_DUSTBIN_OVER_FLOW、EVENT_IVS_DOOR_FRONT_DIRTY
  24196. // EVENT_IVS_SHOP_SIGN_ABNORMAL、EVENT_IVS_SHOP_WINDOW_POST
  24197. int nEventCount; // 事件数
  24198. BYTE byReserved[1024]; // 预留字段
  24199. }NET_INTELLIGENT_CITY_MANAGER_EVENT_FILTER;
  24200. ///@brief 智慧城管查询车牌号过滤条件
  24201. typedef struct tagNET_INTELLIGENT_CITY_MANAGER_PLATENO_FILTER
  24202. {
  24203. EM_COMPARE_OPERATOR_TYPE emOperatorType; // 车牌操作类型
  24204. char szPlateNo[16][32]; // 车牌信息
  24205. int nPlateCount; // 车牌数
  24206. BYTE byReserved[1024]; // 预留字段
  24207. }NET_INTELLIGENT_CITY_MANAGER_PLATENO_FILTER;
  24208. ///@brief 智慧城管查询过滤条件
  24209. typedef struct tagNET_INTELLIGENT_CITY_MANAGER_FILTER
  24210. {
  24211. NET_INTELLIGENT_CITY_MANAGER_EVENT_FILTER stuEventFilter; // 事件过滤条件
  24212. NET_INTELLIGENT_CITY_MANAGER_PLATENO_FILTER stuPlateNoFilter; // 车牌号过滤条件
  24213. BYTE byReserved[2048]; // 预留字段
  24214. }NET_INTELLIGENT_CITY_MANAGER_FILTER;
  24215. ///@brief 智慧城管查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_INTELLIGENT_CITY_MANAGER )
  24216. typedef struct tagMEDIAFILE_INTELLIGENT_CITY_MANAGER_PARAM
  24217. {
  24218. DWORD dwSize; // 结构体大小
  24219. int nFileType; // 文件类型,0:查询任意类型,1:查询jpg图片,2:查询dav
  24220. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24221. NET_TIME stuBeginTime; // 开始时间
  24222. NET_TIME stuEndTime; // 结束时间
  24223. NET_INTELLIGENT_CITY_MANAGER_FILTER stuFilter; // 过滤规则
  24224. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  24225. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24226. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24227. }MEDIAFILE_INTELLIGENT_CITY_MANAGER_PARAM;
  24228. ///@brief 合成图信息
  24229. typedef struct tagMEDIAFILE_COMPOSITE_PICTURE_INFO
  24230. {
  24231. char szPicturePath[260]; // 合成图图片路径
  24232. UINT nPictureLength; // 合成图图片长度
  24233. UINT nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  24234. UINT nCountInGroup; // 一个事件组内的抓拍张数
  24235. UINT nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  24236. char szDefendCode[64]; // 防伪码
  24237. BYTE byReserved[1020]; // 预留字段
  24238. }MEDIAFILE_COMPOSITE_PICTURE_INFO;
  24239. ///@brief 原始图信息
  24240. typedef struct tagMEDIAFILE_ORIGINAL_PICTURE_INFO
  24241. {
  24242. char szPicturePath[260]; // 原始图片路径
  24243. UINT nPictureLength; // 原始图图片长度
  24244. UINT nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  24245. UINT nCountInGroup; // 一个事件组内的抓拍张数
  24246. UINT nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  24247. char szDefendCode[64]; // 防伪码
  24248. BYTE byReserved[1020]; // 预留字段
  24249. }MEDIAFILE_ORIGINAL_PICTURE_INFO;
  24250. ///@brief 机动车信息
  24251. typedef struct tagNET_INTELLIGENT_CITY_TRAFFIC_CAR_INFO
  24252. {
  24253. char szPlateColor[32]; // 车牌颜色
  24254. char szPlateNo[128]; // 车牌号
  24255. char szVehicleColor[32]; // 车身颜色
  24256. char szVehicleLogo[32]; // 车标
  24257. char szVehicleSeries[32]; // 车系
  24258. char szVehicleType[32]; // 车型
  24259. UINT nParkingDuration; // 违停持续时间,单位:秒
  24260. BYTE byReserved[1020]; // 预留字段
  24261. }NET_INTELLIGENT_CITY_TRAFFIC_CAR_INFO;
  24262. ///@brief 智慧城管查询结果 ( CLIENT_FindFileEx + DH_FILE_QUERY_INTELLIGENT_CITY_MANAGER )
  24263. typedef struct tagMEDIAFILE_INTELLIGENT_CITY_MANAGER_INFO
  24264. {
  24265. DWORD dwSize; // 结构体大小
  24266. int nChannelID; // 通道号
  24267. NET_TIME stuBeginTime; // 开始时间
  24268. NET_TIME stuEndTime; // 结束时间
  24269. int nEvent; // 事件类型,EVENT_IVS_CITY_MOTORPARKING、EVENT_IVS_SHOPPRESENCE、
  24270. // EVENT_IVS_CITY_NONMOTORPARKING、EVENT_IVS_FLOWBUSINESS、EVENT_IVS_TRAFFIC_NONMOTOR_HOLDUMBRELLA
  24271. // EVENT_IVS_GARBAGE_EXPOSURE、EVENT_IVS_DUSTBIN_OVER_FLOW、EVENT_IVS_DOOR_FRONT_DIRTY
  24272. // EVENT_IVS_SHOP_SIGN_ABNORMAL、EVENT_IVS_SHOP_WINDOW_POST
  24273. int nFileType; // 文件类型,1:jpg, 2:dav,默认:jpg
  24274. NET_TIME stuEventTime; // 违章时间
  24275. char szEventCode[128]; // 违章码
  24276. char szEventAddress[256]; // 违章地点
  24277. char szSourceID[32]; // 事件关联ID:应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同。
  24278. // 如 022019030714003000001,格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位。
  24279. // 类型:02-图像
  24280. // 时间:YYYYMMDDhhmmss
  24281. // 序列号:00001
  24282. MEDIAFILE_COMPOSITE_PICTURE_INFO stuCompositePicInfo[16]; // 组合图信息
  24283. UINT nCompositePicCount; // stuCompositePicInfo 数量
  24284. MEDIAFILE_ORIGINAL_PICTURE_INFO stuOriginPicInfo[16]; // 原始图信息
  24285. UINT nOriginPicCount; // stuOriginPicInfo 数量
  24286. NET_INTELLIGENT_CITY_TRAFFIC_CAR_INFO stuTrafficCar; // 机动车信息
  24287. BOOL bTrafficCar; // stuTrafficCar是否有效
  24288. UINT nPresetID; // 事件触发的预置点号,从1开始
  24289. char szShopAddress[256]; // 商铺地址
  24290. char szPresetName[128]; // 预置点名称
  24291. UINT nViolationDuration; // 违法持续时间,单位:秒
  24292. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuBeginTime和stuEndTime有效(仅使用stuBeginTime和stuEndTime)
  24293. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24294. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24295. }MEDIAFILE_INTELLIGENT_CITY_MANAGER_INFO;
  24296. ///@brief SMD 录像类型
  24297. typedef enum tagEM_SMD_RECORD_TYPE
  24298. {
  24299. EM_SMD_RECORD_UNKNWON, // 未知
  24300. EM_SMD_RECORD_HUMAN, // 人
  24301. EM_SMD_RECORD_VEHICLE, // 车
  24302. EM_SMD_RECORD_HUMAN_AND_VEHICLE, // 人和车
  24303. } EM_SMD_RECORD_TYPE;
  24304. ///@brief 视频流类型
  24305. typedef enum tagEM_SMD_VIDEO_STREAM
  24306. {
  24307. EM_SMD_VIDEO_STREAM_UNKNOWN, // 未知
  24308. EM_SMD_VIDEO_STREAM_MAIN, // 主码流
  24309. EM_SMD_VIDEO_STREAM_EXTRA1, // 辅码流1
  24310. EM_SMD_VIDEO_STREAM_EXTRA2, // 辅码流2
  24311. EM_SMD_VIDEO_STREAM_EXTRA3, // 辅码流3
  24312. EM_SMD_VIDEO_STREAM_EXTRAX, // 所有的辅码流
  24313. }EM_SMD_VIDEO_STREAM;
  24314. ///@brief 智能动态监测(SMD) 录像查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_SMD_RECORD_FILE )
  24315. typedef struct tagMEDIAFILE_SMD_RECORD_FILE_PARAM
  24316. {
  24317. DWORD dwSize; // 结构体大小
  24318. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24319. NET_TIME stuBeginTime; // 开始时间
  24320. NET_TIME stuEndTime; // 结束时间
  24321. EM_SMD_RECORD_TYPE emSmdRecordType[8]; // 需要查询的SMD录像类型
  24322. UINT nSmdRecordTypeNum; // SMD 录像类型个数
  24323. EM_SMD_VIDEO_STREAM emVideoStream; // 视频码流,无此参数表示查询所有
  24324. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  24325. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  24326. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  24327. } MEDIAFILE_SMD_RECORD_FILE_PARAM;
  24328. ///@brief 文件上传标志
  24329. typedef enum tagEM_MOBILE_ENFORCE_UPLOAD_FLAG
  24330. {
  24331. EM_MOBILE_ENFORCE_UPLOAD_FLAG_UNKNWON = -1, // 未知
  24332. EM_MOBILE_ENFORCE_UPLOAD_FLAG_NOTUPLOAD, // 未上传
  24333. EM_MOBILE_ENFORCE_UPLOAD_FLAG_UPLOADED, // 已上传
  24334. EM_MOBILE_ENFORCE_UPLOAD_FLAG_BACKEDUP = 3, // 已备份
  24335. } EM_MOBILE_ENFORCE_UPLOAD_FLAG;
  24336. ///@brief 采集站和手持终端文件信息查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_MOBILE_ENFORCE )
  24337. typedef struct tagMEDIAFILE_MOBILE_ENFORCE_PARAM
  24338. {
  24339. DWORD dwSize; // 结构体大小
  24340. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24341. NET_TIME stuBeginTime; // 开始时间
  24342. NET_TIME stuEndTime; // 结束时间
  24343. EM_MOBILE_ENFORCE_UPLOAD_FLAG emUploadFlag; // 文件上传标志
  24344. UINT nFileTypeNum; // 文件类型个数, 为0表示查询任意类型
  24345. EM_FINDFILE_TYPE emFileType[32]; // 文件类型
  24346. int nSerialNoNum; // 手持设备序列号个数
  24347. char szSerialNo[256][128]; // 文件对应手持设备序列号,和RegistID条件互斥, 2个条件同时存在,SerialNo优先,忽略RegistID
  24348. int nRegistIDNum; // 手持设备序列号个数
  24349. char szRegistID[256][128]; // 文件对应手持设备平台注册ID,和SerialNo条件互斥, 2个条件同时存在,SerialNo优先,忽略RegistID
  24350. NET_TIME stuCollectStartTime; // 采集开始时间
  24351. NET_TIME stuCollectEndTime; // 采集结束时间
  24352. BOOL bIsColloectTime; // 是否使用采集时间, TRUE: stuCollectEndTime和stuCollectEndTime有效, FALSE: stuCollectEndTime和stuCollectEndTime无效
  24353. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  24354. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  24355. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24356. NET_TIME stuCollectStartTimeRealUTC; // 采集UTC开始时间(标准UTC时间), 文件的采集时间是一个时间点;如果stuCollectStartTimeRealUTC和stuCollectEndTimeRealUTC同时存在时,则按采集时间段查询,stuStartTimeRealUTC和stuEndTimeRealUTC无效
  24357. NET_TIME stuCollectEndTimeRealUTC; // 采集UTC结束时间(标准UTC时间), 文件的采集时间是一个时间点;如果stuCollectStartTimeRealUTC和stuCollectEndTimeRealUTC同时存在时,则按采集时间段查询,stuStartTimeRealUTC和stuEndTimeRealUTC无效
  24358. } MEDIAFILE_MOBILE_ENFORCE_PARAM;
  24359. ///@brief SMD录像属性信息
  24360. typedef struct tagNET_SMD_RECORD_ATTRIBUTE_INFO
  24361. {
  24362. EM_SMD_RECORD_TYPE emSmdRecordType; // smd录像类型
  24363. BYTE byReserved[2044]; // 预留字段
  24364. } NET_SMD_RECORD_ATTRIBUTE_INFO;
  24365. ///@brief 智能动态监测(SMD) 录像查询结果 ( CLIENT_FindFileEx + DH_FILE_QUERY_SMD_RECORD_FILE )
  24366. typedef struct tagMEDIAFILE_SMD_RECORD_FILE_INFO
  24367. {
  24368. DWORD dwSize; // 结构体大小
  24369. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24370. NET_TIME stuStartTime; // 开始时间
  24371. NET_TIME stuEndTime; // 结束时间
  24372. INT64 nFileSize; // 文件长度扩展,支持文件长度大于4G,单位字节
  24373. UINT nFileType; // 文件类型 1:jpg图片, 2: dav
  24374. UINT nVideoStream; // 视频码流 0-未知 1-主码流 2-辅码流1 3-辅码流 4-辅码流
  24375. char szFilePath[260]; // 文件路径
  24376. BYTE byReserved[4]; // 字节对齐
  24377. int nEventLists[256]; // 关联的事件列表,事件类型列表,参见智能分析事件类型
  24378. int nEventCount; // 事件总数
  24379. UINT nPartition; // 分区号
  24380. UINT nDriveNo; // 磁盘号
  24381. UINT nCluster; // 簇号
  24382. NET_SMD_RECORD_ATTRIBUTE_INFO stuSmdAttribute; // SMD录像属性信息
  24383. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  24384. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24385. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24386. } MEDIAFILE_SMD_RECORD_FILE_INFO;
  24387. ///@brief 文件的真实类型
  24388. typedef enum tagEM_MOBILE_ENFORCE_FORMAT
  24389. {
  24390. EM_MOBILE_ENFORCE_FORMAT_UNKNOWN, // 未知
  24391. EM_MOBILE_ENFORCE_FORMAT_VIDEO, // 视频
  24392. EM_MOBILE_ENFORCE_FORMAT_AUDIO, // 音频
  24393. EM_MOBILE_ENFORCE_FORMAT_IMAGE, // 图片
  24394. }EM_MOBILE_ENFORCE_FORMAT;
  24395. ///@brief 文件后缀类型
  24396. typedef enum tagEM_MOBILE_ENFORCE_FILE_TYPE
  24397. {
  24398. EM_MOBILE_ENFORCE_FILE_TYPE_UNKNOWN = 0, // 未知
  24399. EM_MOBILE_ENFORCE_FILE_TYPE_DAV, // dav
  24400. EM_MOBILE_ENFORCE_FILE_TYPE_MP4, // mp4
  24401. EM_MOBILE_ENFORCE_FILE_TYPE_AAC, // aac
  24402. EM_MOBILE_ENFORCE_FILE_TYPE_MP3, // mp3
  24403. EM_MOBILE_ENFORCE_FILE_TYPE_JPG, // jpg
  24404. }EM_MOBILE_ENFORCE_FILE_TYPE;
  24405. ///@brief 码流类型
  24406. typedef enum tagEM_MOBILE_ENFORCE_VIDEO_STREAM
  24407. {
  24408. EM_MOBILE_ENFORCE_VIDEO_STREAM_UNKNOWN, // 未知
  24409. EM_MOBILE_ENFORCE_VIDEO_STREAM_MAIN, // 主码流
  24410. EM_MOBILE_ENFORCE_VIDEO_STREAM_EXTRA1, // 辅码流1
  24411. EM_MOBILE_ENFORCE_VIDEO_STREAM_EXTRA2, // 辅码流2
  24412. EM_MOBILE_ENFORCE_VIDEO_STREAM_EXTRA3, // 辅码流3
  24413. }EM_MOBILE_ENFORCE_VIDEO_STREAM;
  24414. ///@brief 采集站和手持终端文件信息查询结果 ( CLIENT_FindFileEx + DH_FILE_QUERY_MOBILE_ENFORCE )
  24415. typedef struct tagMEDIAFILE_MOBILE_ENFORCE_INFO
  24416. {
  24417. DWORD dwSize; // 结构体大小
  24418. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24419. NET_TIME stuStartTime; // 开始时间
  24420. NET_TIME stuEndTime; // 结束时间
  24421. char szFilePath[260]; // 文件路径
  24422. UINT nLength; // 如果查询条件中指定的时间在文件内,此处Length表示整个文件长度,而不表示指定时间段的长度,单位字节
  24423. char szUniqueID[128]; // 对应文件的唯一标示
  24424. char szOriginalDeviceID[128];// 表示原始文件创建设备的序列号ID
  24425. EM_MOBILE_ENFORCE_FORMAT emFormat; // 文件的真实类型
  24426. EM_MOBILE_ENFORCE_FILE_TYPE emFileType; // 文件后缀类型
  24427. char szFileName[256]; // 文件名称
  24428. char szExtraInfos[256]; // 录像文件附加信息
  24429. NET_TIME stuCollectTime; // 文件采集时间
  24430. char szIntegrityCheckID[128];// 文件完整性校验ID
  24431. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  24432. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24433. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24434. NET_TIME stuCollectTimeRealUTC; // 文件UTC采集时间(标准UTC时间)
  24435. } MEDIAFILE_MOBILE_ENFORCE_INFO;
  24436. ///@brief 厨师装备状态
  24437. typedef enum tagEM_SMART_KITCHEN_CLOTHES_STATE
  24438. {
  24439. EM_SMART_KITCHEN_CLOTHES_STATE_UNKNOWN, // 未知
  24440. EM_SMART_KITCHEN_CLOTHES_STATE_LACK, // 没有
  24441. EM_SMART_KITCHEN_CLOTHES_STATE_HAS, // 有
  24442. }EM_SMART_KITCHEN_CLOTHES_STATE;
  24443. ///@brief 口罩相关属性状态信息
  24444. typedef struct tagNET_SMART_KITCHEN_CLOTHES_CHEF_MASK
  24445. {
  24446. BOOL bChefMask; // 口罩相关属性是否生效,true 生效 ,false 不生效
  24447. EM_SMART_KITCHEN_CLOTHES_STATE emHasMask[3]; // 是否有带口罩
  24448. char szReserved[1024]; // 预留字段
  24449. } NET_SMART_KITCHEN_CLOTHES_CHEF_MASK;
  24450. ///@brief 厨师帽相关属性状态信息
  24451. typedef struct tagNET_SMART_KITCHEN_CLOTHES_CHEF_HAT
  24452. {
  24453. BOOL bChefHat; // 厨师帽相关属性是否生效,true 生效 ,false 不生效
  24454. EM_SMART_KITCHEN_CLOTHES_STATE emHasChefHat[3]; // 是否有带厨师帽
  24455. char szReserved[1024]; // 预留字段
  24456. } NET_SMART_KITCHEN_CLOTHES_CHEF_HAT;
  24457. ///@brief 厨师服颜色
  24458. typedef enum tagEM_SMART_KITCHEN_CLOTHES_COLOUR
  24459. {
  24460. EM_SMART_KITCHEN_CLOTHES_COLOUR_UNKNOWN, // 未知
  24461. EM_SMART_KITCHEN_CLOTHES_COLOUR_RED, // 红
  24462. EM_SMART_KITCHEN_CLOTHES_COLOUR_BLACK, // 黑
  24463. EM_SMART_KITCHEN_CLOTHES_COLOUR_WHITE, // 白
  24464. }EM_SMART_KITCHEN_CLOTHES_COLOUR;
  24465. ///@brief 厨师服相关属性状态信息
  24466. typedef struct tagNET_SMART_KITCHEN_CLOTHES_CHEF_CLOTHES
  24467. {
  24468. BOOL bChefClothes; // 厨师服相关属性是否生效,true 生效 ,false 不生效
  24469. EM_SMART_KITCHEN_CLOTHES_STATE emHasChefClothes[3]; // 是否有带厨师服
  24470. EM_SMART_KITCHEN_CLOTHES_COLOUR emChefClothesColor[3]; // 厨师服颜色
  24471. char szReserved[1024]; // 预留字段
  24472. } NET_SMART_KITCHEN_CLOTHES_CHEF_CLOTHES;
  24473. ///@brief 智慧厨房查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_SMART_KITCHEN_CLOTHES_DETECTION )
  24474. typedef struct tagMEDIAFILE_SMART_KITCHEN_CLOTHES_DETECTION_PARAM
  24475. {
  24476. DWORD dwSize; // 结构体大小
  24477. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24478. NET_TIME stuBeginTime; // 开始时间
  24479. NET_TIME stuEndTime; // 结束时间
  24480. NET_SMART_KITCHEN_CLOTHES_CHEF_MASK stuChefMask; // 口罩相关属性状态信息
  24481. NET_SMART_KITCHEN_CLOTHES_CHEF_HAT stuChefHat; // 厨师帽相关属性状态信息
  24482. NET_SMART_KITCHEN_CLOTHES_CHEF_CLOTHES stuChefClothes; // 厨师服相关属性状态信息
  24483. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuBeginTime, stuEndTime), 为FALSE表示仅下发stuBeginTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  24484. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  24485. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuBeginTime, stuEndTime)互斥
  24486. } MEDIAFILE_SMART_KITCHEN_CLOTHES_DETECTION_PARAM;
  24487. ///@brief 智慧厨房查询结果 ( CLIENT_FindNextFileEx + DH_FILE_QUERY_SMART_KITCHEN_CLOTHES_DETECTION )
  24488. typedef struct tagMEDIAFILE_SMART_KITCHEN_CLOTHES_DETECTION_INFO
  24489. {
  24490. DWORD dwSize; // 结构体大小
  24491. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24492. NET_TIME stuStartTime; // 开始时间
  24493. NET_TIME stuEndTime; // 结束时间
  24494. EM_SMART_KITCHEN_CLOTHES_STATE emHasMask; // 是否有带口罩
  24495. EM_SMART_KITCHEN_CLOTHES_STATE emHasChefHat; // 是否有带厨师帽
  24496. EM_SMART_KITCHEN_CLOTHES_STATE emHasChefClothes; // 是否有带厨师服
  24497. EM_SMART_KITCHEN_CLOTHES_COLOUR emChefClothesColor; // 厨师服颜色
  24498. char szFaceImagePath[260]; // 目标小图路径
  24499. UINT nFaceImageLength; // 目标小图图片大小,单位字节
  24500. char szHumanImagePath[260]; // 人体小图路径
  24501. UINT nHumanImageLength; // 人体小图图片大小,单位字节
  24502. char szSceneImagePath[260]; // 人体小图对应的全景图路径
  24503. UINT nSceneImageLength; // 人体小图对应的全景图图片大小,单位字节
  24504. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  24505. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24506. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24507. } MEDIAFILE_SMART_KITCHEN_CLOTHES_DETECTION_INFO;
  24508. ///@brief 水利查询事件类型
  24509. typedef enum tagNET_EM_WATER_CONSERVANCY_SEARCH_EVENT_TYPE
  24510. {
  24511. NET_EM_WATER_CONSERVANCY_SEARCH_EVENT_TYPE_UNKNOWN, // 未知
  24512. NET_EM_WATER_CONSERVANCY_SEARCH_EVENT_TYPE_FLOATING_OBJECT_DETECTION, // 漂浮物检测
  24513. NET_EM_WATER_CONSERVANCY_SEARCH_EVENT_TYPE_WATER_LEVEL_DETECTION, // 虚拟水尺检测
  24514. NET_EM_WATER_CONSERVANCY_SEARCH_EVENT_TYPE_SEWAGE_DETECTION, // 排水检测
  24515. NET_EM_WATER_CONSERVANCY_SEARCH_EVENT_TYPE_WATER_COLOR_DETECTION, // 水体颜色检测
  24516. } NET_EM_WATER_CONSERVANCY_SEARCH_EVENT_TYPE;
  24517. ///@brief 水体颜色检测搜索颜色
  24518. typedef enum tagNET_EM_WATER_CONSERVANCY_SEARCH_WATER_COLOR
  24519. {
  24520. NET_EM_WATER_CONSERVANCY_SEARCH_WATER_COLOR_UNKNOWN, // 未知
  24521. NET_EM_WATER_CONSERVANCY_SEARCH_WATER_COLOR_BLACK, // 黑色
  24522. NET_EM_WATER_CONSERVANCY_SEARCH_WATER_COLOR_RED, // 红色
  24523. NET_EM_WATER_CONSERVANCY_SEARCH_WATER_COLOR_GREEN, // 绿色
  24524. NET_EM_WATER_CONSERVANCY_SEARCH_WATER_COLOR_YELLOW, // 黄色
  24525. NET_EM_WATER_CONSERVANCY_SEARCH_WATER_COLOR_ALL, // 查询全部
  24526. }NET_EM_WATER_CONSERVANCY_SEARCH_WATER_COLOR;
  24527. ///@brief 水利查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_WATER_CONSERVANCY_SEARCH )
  24528. typedef struct tagMEDIAFILE_WATER_CONSERVANCY_SEARCH_PARAM
  24529. {
  24530. DWORD dwSize; // 结构体大小
  24531. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24532. NET_TIME stuStartTime; // 开始时间
  24533. NET_TIME stuEndTime; // 结束时间
  24534. NET_EM_WATER_CONSERVANCY_SEARCH_EVENT_TYPE emEventType; // 水利查询事件类型
  24535. NET_EM_WATER_CONSERVANCY_SEARCH_WATER_COLOR emWaterColor; // 水体颜色检测搜索颜色, emEventType为NET_EM_WATER_CONSERVANCY_SEARCH_EVENT_TYPE_WATER_COLOR_DETECTION时有效
  24536. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  24537. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24538. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24539. } MEDIAFILE_WATER_CONSERVANCY_SEARCH_PARAM;
  24540. ///@brief 水位状态
  24541. typedef enum tagNET_EM_WATER_STATUS
  24542. {
  24543. NET_EM_WATER_STATUS_UNKNOWN, // 未知
  24544. NET_EM_WATER_STATUS_NORMAL, // 正常
  24545. NET_EM_WATER_STATUS_ABOVE_UPPER_THRESHOLD, // 高于上限阈值
  24546. NET_EM_WATER_STATUS_BELOW_LOWER_THRESHOLD, // 低于下限阈值
  24547. } NET_EM_WATER_STATUS;
  24548. ///@brief 抠图信息
  24549. typedef struct tagNET_WATER_CONSERVANCY_SEARCH_IMAGE_INFO
  24550. {
  24551. int nLength; // 抠图长度
  24552. char szFilePath[128]; // 抠图路径
  24553. char szReserved[892]; // 预留字段
  24554. } NET_WATER_CONSERVANCY_SEARCH_IMAGE_INFO;
  24555. ///@brief 水利查询结果 ( CLIENT_FindNextFileEx + DH_FILE_QUERY_WATER_CONSERVANCY_SEARCH )
  24556. typedef struct tagMEDIAFILE_WATER_CONSERVANCY_SEARCH_INFO
  24557. {
  24558. DWORD dwSize; // 结构体大小
  24559. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24560. NET_TIME stuStartTime; // 开始时间
  24561. NET_TIME stuEndTime; // 结束时间
  24562. NET_EM_WATER_CONSERVANCY_SEARCH_EVENT_TYPE emEventType; // 事件类型
  24563. int nCurrentRatio; // 漂浮物占比
  24564. NET_EM_WATER_STATUS emWaterStatus; // 水位状态
  24565. float fWaterValue; // 水位值(对于有拼接的情况,该值为标定的基准值加上当前刻度值,单位:米)
  24566. NET_EM_WATER_CONSERVANCY_SEARCH_WATER_COLOR emWaterColor; // 污水颜色
  24567. char szGlobalSceneFilePath[256]; // 全景大图图片路径
  24568. int nGlobalScenePicLength; // 全景大图图片长度
  24569. NET_WATER_CONSERVANCY_SEARCH_IMAGE_INFO stuImageInfo; // 抠图信息
  24570. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  24571. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24572. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24573. } MEDIAFILE_WATER_CONSERVANCY_SEARCH_INFO;
  24574. ///@brief 违章建筑查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_BREAK_RULE_BUILDING_SEARCH )
  24575. typedef struct tagMEDIAFILE_BREAK_RULE_BUILDING_SEARCH_PARAM
  24576. {
  24577. DWORD dwSize; // 结构体大小
  24578. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24579. NET_TIME stuStartTime; // 开始时间
  24580. NET_TIME stuEndTime; // 结束时间
  24581. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  24582. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24583. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24584. } MEDIAFILE_BREAK_RULE_BUILDING_SEARCH_PARAM;
  24585. ///@brief 违章建筑查询结果 ( CLIENT_FindNextFileEx + DH_FILE_QUERY_BREAK_RULE_BUILDING_SEARCH )
  24586. typedef struct tagMEDIAFILE_BREAK_RULE_BUILDING_SEARCH_INFO
  24587. {
  24588. DWORD dwSize; // 结构体大小
  24589. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24590. NET_TIME stuStartTime; // 开始时间
  24591. NET_TIME stuEndTime; // 结束时间
  24592. char szGlobalSceneFilePath[256]; // 全景大图图片路径
  24593. int nGlobalScenePicLength; // 全景大图图片长度
  24594. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  24595. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24596. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24597. } MEDIAFILE_BREAK_RULE_BUILDING_SEARCH_INFO;
  24598. ///@brief 船只查询规则
  24599. typedef enum tagNET_EM_BOAT_SEARCH_RULE
  24600. {
  24601. NET_EM_BOAT_SEARCH_RULE_UNKNOWN, // 未知
  24602. NET_EM_BOAT_SEARCH_RULE_CROSS_LINE_DETECTION, // 船只拌线
  24603. NET_EM_BOAT_SEARCH_RULE_CROSS_REGION_DETECTION, // 船只入侵
  24604. NET_EM_BOAT_SEARCH_RULE_PARKING_DETECTION, // 船只停留
  24605. NET_EM_BOAT_SEARCH_RULE_FISHING_DETECTION, // 钓鱼检测
  24606. } NET_EM_BOAT_SEARCH_RULE;
  24607. ///@brief 船只查询规则动作
  24608. typedef enum tagNET_EM_BOAT_SEARCH_ACTION
  24609. {
  24610. NET_EM_BOAT_SEARCH_ACTION_UNKNOWN, // 未知
  24611. NET_EM_BOAT_SEARCH_ACTION_APPEAR, // 出现
  24612. NET_EM_BOAT_SEARCH_ACTION_DISAPPEAR, // 消失
  24613. NET_EM_BOAT_SEARCH_ACTION_INSIDE, // 进入
  24614. NET_EM_BOAT_SEARCH_ACTION_CROSS, // 穿越
  24615. } NET_EM_BOAT_SEARCH_ACTION;
  24616. ///@brief 船只查询方向
  24617. typedef enum tagNET_EM_BOAT_SEARCH_DIRECTION
  24618. {
  24619. NET_EM_BOAT_SEARCH_DIRECTION_UNKNOW = 0 ,
  24620. NET_EM_BOAT_SEARCH_DIRECTION_LEFT_TO_RIGHT , //左到右
  24621. NET_EM_BOAT_SEARCH_DIRECTION_RIGHT_TO_LEFT , //右到左
  24622. } NET_EM_BOAT_SEARCH_DIRECTION;
  24623. ///@brief 船只查询条件 ( CLIENT_FindFileEx + DH_FILE_QUERY_BOAT_SEARCH )
  24624. typedef struct tagMEDIAFILE_BOAT_SEARCH_PARAM
  24625. {
  24626. DWORD dwSize; // 结构体大小
  24627. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24628. NET_TIME stuStartTime; // 开始时间
  24629. NET_TIME stuEndTime; // 结束时间
  24630. int nRuleNum; // 查询规则个数
  24631. NET_EM_BOAT_SEARCH_RULE emRule[4]; // 查询规则
  24632. NET_EM_BOAT_SEARCH_ACTION emAction; // 规则动作
  24633. NET_EM_BOAT_SEARCH_DIRECTION emDirection; // 方向
  24634. BOOL bOnlySupportRealUTC;// 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  24635. NET_TIME stuStartTimeRealUTC;// UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24636. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  24637. } MEDIAFILE_BOAT_SEARCH_PARAM;
  24638. ///@brief 船只查询结果 ( CLIENT_FindNextFileEx + DH_FILE_QUERY_BOAT_SEARCH )
  24639. typedef struct tagMEDIAFILE_BOAT_SEARCH_INFO
  24640. {
  24641. DWORD dwSize; // 结构体大小
  24642. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24643. NET_TIME stuStartTime; // 开始时间
  24644. NET_TIME stuEndTime; // 结束时间
  24645. NET_EM_BOAT_SEARCH_RULE emRule; // 查询规则
  24646. NET_EM_BOAT_SEARCH_ACTION emAction; // 规则动作
  24647. NET_EM_BOAT_SEARCH_DIRECTION emDirection; // 方向
  24648. char szGlobalSceneFilePath[256]; // 全景大图图片路径
  24649. int nGlobalScenePicLength; // 全景大图图片长度
  24650. BOOL bRealUTC; // 为TRUE表示仅stuStartTimeRealUTC和stuEndTimeRealUTC有效(仅使用stuStartTimeRealUTC和stuEndTimeRealUTC), 为FALSE表示仅stuStartTime和stuEndTime有效(仅使用stuStartTime和stuEndTime)
  24651. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用
  24652. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用
  24653. } MEDIAFILE_BOAT_SEARCH_INFO;
  24654. ///@brief 雷达报警事件查询 ( CLIENT_FindFileEx + DH_FILE_QUERY_RADAR_REGION_DETECTION )
  24655. typedef struct tagMEDIAFILE_RADAR_REGION_DETECTION_PARAM
  24656. {
  24657. DWORD dwSize; // 结构体大小
  24658. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24659. NET_TIME stuStartTime; // 开始时间
  24660. NET_TIME stuEndTime; // 结束时间
  24661. } MEDIAFILE_RADAR_REGION_DETECTION_PARAM;
  24662. ///@brief 雷达报警事件查询结果 ( CLIENT_FindNextFileEx + DH_FILE_QUERY_RADAR_REGION_DETECTION )
  24663. typedef struct tagMEDIAFILE_RADAR_REGION_DETECTION_INFO
  24664. {
  24665. DWORD dwSize; // 结构体大小
  24666. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24667. NET_TIME stuStartTime; // 开始时间
  24668. NET_TIME stuEndTime; // 结束时间
  24669. SCENE_IMAGE_INFO_EX stuSceneImage[10]; // 全景地图数组
  24670. int nSceneImageNum; // 全景地图数组大小
  24671. } MEDIAFILE_RADAR_REGION_DETECTION_INFO;
  24672. ///@brief 考场录像查询 ( CLIENT_FindFileEx + DH_FILE_QUERY_EXAM )
  24673. typedef struct tagNET_MEDIAFILE_EXAM_PARAM
  24674. {
  24675. DWORD dwSize; // 结构体大小
  24676. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24677. NET_TIME stuStartTime; // 开始时间
  24678. NET_TIME stuEndTime; // 结束时间
  24679. char szName[64]; // 考生姓名
  24680. char szNumber[64]; // 考生考号
  24681. char szCameraIP[32]; // 摄像头IP
  24682. } NET_MEDIAFILE_EXAM_PARAM;
  24683. ///@brief 考场录像查询结果 ( CLIENT_FindNextFileEx + DH_FILE_QUERY_EXAM )
  24684. typedef struct tagNET_MEDIAFILE_EXAM_INFO
  24685. {
  24686. DWORD dwSize; // 结构体大小
  24687. int nChannelID; // 通道号从0开始,-1表示查询所有通道
  24688. NET_TIME stuStartTime; // 开始时间
  24689. NET_TIME stuEndTime; // 结束时间
  24690. char szName[64]; // 考生姓名
  24691. char szNumber[64]; // 考生考号
  24692. char szCameraIP[32]; // 摄像头IP
  24693. } NET_MEDIAFILE_EXAM_INFO;
  24694. ///@brief 通过用户 ID、警车 ID、警察局 ID搜索录像 ( CLIENT_FindFileEx + DH_FILE_QUERY_POLICEID )
  24695. typedef struct tagNET_MEDIAFILE_POLICEID_PARAM
  24696. {
  24697. DWORD dwSize; // 结构体大小
  24698. NET_TIME stuStartTime; // 查询开始时间
  24699. NET_TIME stuEndTime; // 查询结束时间
  24700. char szPoliceManID[32]; // 警员ID
  24701. char szPoliceCarID[32]; // 警车ID
  24702. char szPoliceOfficeID[64]; // 警局ID
  24703. } NET_MEDIAFILE_POLICEID_PARAM;
  24704. ///@brief 结构体(NET_IN_SNAPSHOT)成员 闪关灯调节控制是一个数组,每个元素对应一个闪光灯配置
  24705. typedef struct __NET_FLASHCONTROL
  24706. {
  24707. DWORD dwSize; // 此结构体大小
  24708. int nMode; // 工作模式 0-禁止闪光,1-始终闪光,2-自动闪光
  24709. }NET_FLASHCONTROL;
  24710. ///@brief 抓拍客户端类型
  24711. typedef enum tagSNAP_CLIENT_TYPE
  24712. {
  24713. SNAP_CLIENT_TYPE_COMMON, // 对应"Common"类型, 默认类型
  24714. SNAP_CLIENT_TYPE_PARKINGSPACE, // 对应"ParkingSpace"类型, 停车场
  24715. }SNAP_CLIENT_TYPE;
  24716. #define DH_MAX_USER_DEFINE_INFO 1024
  24717. ///@brief nTriggerType==2时 客户端触发抓拍参数
  24718. typedef struct _NET_CLIENT_SNAP_INFO
  24719. {
  24720. DWORD dwSize; // 此结构体大小
  24721. unsigned int nFrameSequence; // 帧序号
  24722. double PTS; // 时间戳,64位毫秒时间戳
  24723. char szUserDefinedInfo[DH_MAX_USER_DEFINE_INFO]; // 字符串,客户端自定义,"\0"结尾
  24724. SNAP_CLIENT_TYPE emSNAP_CLIENT_TYPE; // 客户端类型
  24725. DWORD dwRetCardNumber; // 卡片个数
  24726. EVENT_CARD_INFO stuCardInfo[DH_EVENT_MAX_CARD_NUM]; // 卡片信息
  24727. }NET_CLIENT_SNAP_INFO;
  24728. ///@brief 接口(CLIENT_TrafficSnapByNetwork)输入参数
  24729. typedef struct __NET_IN_SNAPSHOT
  24730. {
  24731. DWORD dwSize; // 此结构体大小
  24732. int nTriggerType; // 触发类型
  24733. int nLaneID; // 车道号
  24734. int nGroupID; // 组序号
  24735. int nGrabTimes; // 抓拍图片数量
  24736. int nStartPicNum; // 第一张图片开始序号
  24737. int nDirection; // 车道方向(车开往的方向) 0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北 8-未知
  24738. //NET_GRAB_WAITTIME stGrabWaitTime; // 多张图片之间抓拍间隔
  24739. int nGrabWaitTime; // pGrabWaitTime数组成员个数
  24740. DWORD* pGrabWaitTime; // 多张图片之间抓拍间隔,由用户申请内存,大小为nGrabWaitTime
  24741. int nLowerSpeedLimit; // 速度下限,单位km/h
  24742. int nUpperSpeedLimit; // 速度下限,单位km/h
  24743. int nSpeed; // 车速,单位km/h
  24744. int nViolationNo; // 违法编号 0-未违法
  24745. // 1-禁止名单
  24746. // 2-超速不超过50%
  24747. // 3-超速在50%到100%之间
  24748. // 4-超速超过100%
  24749. // 5-逆行
  24750. // 6-闯红灯
  24751. // 7-低于限速
  24752. // 8-禁行,不按车道行驶
  24753. int nRedLightTime; // 红灯时间,即红灯点亮多少时间后触发抓拍,单位秒
  24754. //NET_FLASHCONTROL stFlashControl; // 闪关灯调节控制
  24755. int nFlashControl; // pFlashControl数组个数
  24756. NET_FLASHCONTROL* pFlashControl; // 闪关灯调节控制,由用户申请内存,大小为sizeof(NET_FLASHCONTROL)*nFlashControl
  24757. DWORD dwUser; // 用户数据 NSP
  24758. NET_CLIENT_SNAP_INFO stClientInfo; // 客户端触发时传入的抓拍参数
  24759. }NET_IN_SNAPSHOT;
  24760. ///@brief 接口(CLIENT_TrafficSnapByNetwork)输出参数
  24761. typedef struct __NET_OUT_SNAPSHOT
  24762. {
  24763. DWORD dwSize; // 此结构体大小
  24764. }NET_OUT_SNAPSHOT;
  24765. ///@brief 接口(CLIENT_TrafficForceLightState)输入参数
  24766. typedef struct __NET_IN_FORCELIGHTSTATE
  24767. {
  24768. DWORD dwSize; // 此结构体大小
  24769. unsigned int nDirection; // 按位表示:0位:"Straight",1位:"TurnLeft",2位:"TurnRight",3位:"U-Turn"
  24770. }NET_IN_FORCELIGHTSTATE;
  24771. ///@brief 接口(CLIENT_TrafficForceLightState)输出参数
  24772. typedef struct __NET_OUT_FORCELIGHTSTATE
  24773. {
  24774. DWORD dwSize; // 此结构体大小
  24775. }NET_OUT_FORCELIGHTSTATE;
  24776. ///@brief 接口(CLIENT_StartTrafficFluxStat)回调
  24777. typedef int (CALLBACK *fFluxStatDataCallBack)(LLONG lFluxStatHandle, DWORD dwEventType, void* pEventInfo, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser, int nSequence, void *reserved);
  24778. ///@brief 接口(CLIENT_StartTrafficFluxStat)输入参数
  24779. typedef struct __NET_IN_TRAFFICFLUXSTAT
  24780. {
  24781. DWORD dwSize; // 此结构体大小
  24782. fFluxStatDataCallBack cbData; // 回调函数指针
  24783. LDWORD dwUser; // 用户数据
  24784. }NET_IN_TRAFFICFLUXSTAT;
  24785. ///@brief 接口(CLIENT_StartTrafficFluxStat)输出参数
  24786. typedef struct __NET_OUT_TRAFFICFLUXSTAT
  24787. {
  24788. DWORD dwSize; // 此结构体大小
  24789. }NET_OUT_TRAFFICFLUXSTAT;
  24790. ///@brief 查询要求返回的统计信息粒度
  24791. typedef enum tagEM_GRANULARITY_STARTFIND_TYPE
  24792. {
  24793. EM_GRANULARITY_TYPE_UNKNOWN, // 未知
  24794. EM_GRANULARITY_TYPE_MINUTE, // 按5分钟(时报表)
  24795. EM_GRANULARITY_TYPE_HOUR, // 按小时(日报表)
  24796. EM_GRANULARITY_TYPE_DAY, // 按天(月报表)
  24797. EM_GRANULARITY_TYPE_MONTH, // 按月(年报表)
  24798. }EM_GRANULARITY_STARTFIND_TYPE;
  24799. ///@brief 统计方向查询条件
  24800. typedef enum tagEM_STARTFIND_DIRECTION
  24801. {
  24802. EM_STARTFIND_DIRECTION_UNKNOWN, // 未知
  24803. EM_STARTFIND_DIRECTION_BOTH, // 全部
  24804. EM_STARTFIND_DIRECTION_LEFTTORIGHT, // 左到右
  24805. EM_STARTFIND_DIRECTION_RIGHTTOLEFT, // 右到左
  24806. }EM_STARTFIND_DIRECTION;
  24807. ///@brief 接口(CLIENT_StartFindFluxStat)输入参数
  24808. typedef struct __NET_IN_TRAFFICSTARTFINDSTAT
  24809. {
  24810. DWORD dwSize; // 此结构体大小
  24811. NET_TIME stStartTime; // 开始时间 暂时精确到小时
  24812. NET_TIME stEndTime; // 结束时间 暂时精确到小时
  24813. int nWaittime; // 等待接收数据的超时时间
  24814. int nChannelCount; // 查询的通道号个数
  24815. int nChannels[256]; // 查询的通道号
  24816. int nLaneCount; // 查询的车道号个数
  24817. int nLanes[16]; // 查询的车道号
  24818. int nClassType; // 数据库表类型 0表示视频结构化,1表示道路监控
  24819. EM_GRANULARITY_STARTFIND_TYPE emGranularity; // 查询要求返回的统计信息粒度 默认按小时
  24820. EM_STARTFIND_DIRECTION emDirection; // 统计方向查询条件
  24821. }NET_IN_TRAFFICSTARTFINDSTAT;
  24822. ///@brief 接口(CLIENT_StartFindFluxStat)输出参数
  24823. typedef struct __NET_OUT_TRAFFICSTARTFINDSTAT
  24824. {
  24825. DWORD dwSize; // 此结构体大小
  24826. DWORD dwTotalCount; // 符合此次查询条件的结果总条数
  24827. }NET_OUT_TRAFFICSTARTFINDSTAT;
  24828. ///@brief 接口(CLIENT_DoFindFluxStat)输入参数
  24829. typedef struct __NET_IN_TRAFFICDOFINDSTAT
  24830. {
  24831. DWORD dwSize; // 此结构体大小
  24832. unsigned int nCount; // 每次查询的流量统计条数
  24833. int nWaittime; // 等待接收数据的超时时间
  24834. }NET_IN_TRAFFICDOFINDSTAT;
  24835. ///@brief 统计信息指针
  24836. typedef struct
  24837. {
  24838. DWORD dwSize; // 此结构体大小
  24839. int nStatInfo; // 统计信息个数
  24840. DH_TRAFFICFLOWSTAT *pStatInfo; // 统计信息指针,由用户申请内存,大小为sizeof(DH_TRAFFICFLOWSTAT)*nStatInfo
  24841. }DH_TRAFFICFLOWSTAT_OUT;
  24842. ///@brief 接口(CLIENT_DoFindFluxStat)输出参数
  24843. typedef struct __NET_OUT_TRAFFICDOFINDSTAT
  24844. {
  24845. DWORD dwSize; // 此结构体大小
  24846. DH_TRAFFICFLOWSTAT_OUT stStatInfo; // 统计信息指针
  24847. }NET_OUT_TRAFFICDOFINDSTAT;
  24848. ///@brief 规则类型
  24849. typedef enum tagEM_RULE_TYPE
  24850. {
  24851. EM_RULE_UNKNOWN, // 未知
  24852. EM_RULE_NUMBER_STAT, // 人数统计
  24853. EM_RULE_MAN_NUM_DETECTION, // 区域内人数统计
  24854. EM_RULE_QUEUE_DETECTION, // 排队检测
  24855. EM_RULE_ANATOMYTEMP_DETECT, // 人体温度数据统计
  24856. } EM_RULE_TYPE;
  24857. ///@brief 其他规则
  24858. typedef enum tagEM_OTHER_RULE_TYPE
  24859. {
  24860. EM_OTHER_RULE_TYPE_UNKOWN, // 未知
  24861. EM_OTHER_RULE_TYPE_AVERAGE_STAYTIME, // 平均滞留时间
  24862. } EM_OTHER_RULE_TYPE;
  24863. ///@brief 接口(CLIENT_StartFindNumberStat)输入参数
  24864. typedef struct __NET_IN_FINDNUMBERSTAT
  24865. {
  24866. DWORD dwSize; // 此结构体大小
  24867. int nChannelID; // 要进行查询的通道号
  24868. NET_TIME stStartTime; // 开始时间 暂时精确到小时
  24869. NET_TIME stEndTime; // 结束时间 暂时精确到小时
  24870. int nGranularityType; // 查询粒度0:分钟,1:小时,2:日,3:周,4:月,5:季,6:年,
  24871. // 7:即时, 8:人员 (7和8只在emRuleType为EM_RULE_MAN_NUM_DETECTION时有效)
  24872. int nWaittime; // 等待接收数据的超时时间
  24873. UINT nPlanID; // 计划ID,仅球机有效,从1开始
  24874. EM_RULE_TYPE emRuleType; // 规则类型
  24875. int nMinStayTime; // 区域人数查询最小滞留时间,不填默认为0,返回滞留时长大于等于该时间的人数信息
  24876. // NumberStat时不需要此参数
  24877. int nAreaIDNum; // 区域ID个数
  24878. UINT nAreaID[20]; // 区域ID(一个预置点可以对应多个区域ID)
  24879. EM_OTHER_RULE_TYPE emOtherRule; // 其他规则
  24880. int nGranularityExt; // 当查询粒度为分钟时,用以细化具体粒度 不填默认5分钟粒度
  24881. }NET_IN_FINDNUMBERSTAT;
  24882. ///@brief 接口(CLIENT_StartFindNumberStat)输出参数
  24883. typedef struct __NET_OUT_FINDNUMBERSTAT
  24884. {
  24885. DWORD dwSize; // 此结构体大小
  24886. DWORD dwTotalCount; // 符合此次查询条件的结果总条数
  24887. }NET_OUT_FINDNUMBERSTAT;
  24888. ///@brief 接口(CLIENT_DoFindNumberStat)输入参数
  24889. typedef struct __NET_IN_DOFINDNUMBERSTAT
  24890. {
  24891. DWORD dwSize; // 此结构体大小
  24892. unsigned int nBeginNumber; // [0, totalCount-1], 查询起始序号,表示从beginNumber条记录开始,取count条记录返回;
  24893. unsigned int nCount; // 每次查询的流量统计条数
  24894. int nWaittime; // 等待接收数据的超时时间
  24895. }NET_IN_DOFINDNUMBERSTAT;
  24896. ///@brief 温度统计信息
  24897. typedef struct tagNET_TEMPERATURE_STATISTICS_INFO
  24898. {
  24899. UINT nTotalCount; // 总人数
  24900. UINT nHighTempCount; // 温度异常次数
  24901. UINT nLowTempCount; // 温度异常次数
  24902. UINT nNormalTempCount; // 温度正常次数
  24903. UINT nNoMaskCount; // 未带口罩总人数
  24904. UINT nTimeKey; // 记录编号
  24905. BYTE byReserved[1024]; // 预留字段
  24906. }NET_TEMPERATURE_STATISTICS_INFO;
  24907. ///@brief 返回的人数统计信息
  24908. typedef struct __DH_NUMBERSTAT
  24909. {
  24910. DWORD dwSize;
  24911. int nChannelID; // 统计通道号
  24912. char szRuleName[DH_CHAN_NAME_LEN]; // 规则名称
  24913. NET_TIME stuStartTime; // 开始时间
  24914. NET_TIME stuEndTime; // 结束时间
  24915. int nEnteredSubTotal; // 进入人数小计
  24916. int nExitedSubtotal; // 出去人数小计
  24917. int nAvgInside; // 平均保有人数(除去零值)
  24918. int nMaxInside; // 最大保有人数
  24919. int nEnteredWithHelmet; // 戴安全帽进入人数小计
  24920. int nEnteredWithoutHelmet; // 不戴安全帽进入人数小计
  24921. int nExitedWithHelmet; // 戴安全帽出去人数小计
  24922. int nExitedWithoutHelmet; // 不戴安全帽出去人数小计
  24923. int nInsideSubtotal; // 在区域内人数小计
  24924. UINT nPlanID; // 计划ID,仅球机有效,从1开始
  24925. UINT nAreaID; // 区域ID(一个预置点可以对应多个区域ID)
  24926. UINT nAverageStayTime; // 区域内平均滞留时间
  24927. NET_TEMPERATURE_STATISTICS_INFO stuTempInfo; // 温度统计信息(NET_IN_FINDNUMBERSTAT 字段 emRuleType 取值为 EM_RULE_ANATOMYTEMP_DETECT 时有效)
  24928. int nPassedSubtotal; // 经过人数小计
  24929. }DH_NUMBERSTAT;
  24930. ///@brief 接口(CLIENT_DoFindNumberStat)输出参数
  24931. typedef struct __NET_OUT_DOFINDNUMBERSTAT
  24932. {
  24933. DWORD dwSize; // 此结构体大小
  24934. int nCount; // 查询返回的人数统计信息个数
  24935. DH_NUMBERSTAT *pstuNumberStat; // 返回的人数统计信息数组
  24936. // 由用户申请内存,大小为nBufferLen
  24937. int nBufferLen; // 用户申请的内存大小,以DH_NUMBERSTAT中的dwsize大小为单位
  24938. int nMinStayTime; // 区域人数查询时指定的最小滞留时间
  24939. }NET_OUT_DOFINDNUMBERSTAT;
  24940. ///@brief 视频统计小计信息
  24941. typedef struct tagNET_VIDEOSTAT_SUBTOTAL
  24942. {
  24943. int nTotal; // 设备运行后人数统计总数
  24944. int nHour; // 小时内的总人数
  24945. int nToday; // 当天的总人数, 不可手动清除
  24946. int nOSD; // 统计人数, 用于OSD显示, 可手动清除
  24947. unsigned int nTotalNonMotor; // 设备运行后非机动车统计总数,重启后从上次总数开始继续累加
  24948. unsigned int nHourNonMotor; // 小时内的总非机动车数量
  24949. unsigned int nTodayNonMotor; // 当天的总非机动车数(自然天)
  24950. UINT nTotalPig; // 设备运行后猪只统计总数,重启后从上次总数开始继续累加
  24951. UINT nHourPig; // 小时内的总猪只数量
  24952. UINT nTodayPig; // 当天的总猪只数(自然天)
  24953. UINT nTotalPigInTimeSection; // IPC专用,如果不执行clearSectionStat操作,等同于TodayPig猪只数。
  24954. char reserved[224]; // 保留字段
  24955. } NET_VIDEOSTAT_SUBTOTAL;
  24956. #define MAX_EXIT_MAN_NUM 32 // 最大支持的离开人员数量
  24957. ///@brief 离开人员的滞留时间信息
  24958. typedef struct tagNET_EXITMAN_STAY_STAT
  24959. {
  24960. NET_TIME stuEnterTime; // 人员进入区域时间
  24961. NET_TIME stuExitTime; // 人员离开区域时间
  24962. BYTE reserved[128]; // 保留字节
  24963. } NET_EXITMAN_STAY_STAT;
  24964. ///@brief 非机动车的滞留时间信息
  24965. typedef struct tagNET_NONMOTOR_STAY_STAT
  24966. {
  24967. NET_TIME stuEnterTime; // 非机动车进入区域的时间
  24968. NET_TIME stuExitTime; // 非机动车离开区域的时间
  24969. BYTE reserved[128]; // 保留字节
  24970. } NET_NONMOTOR_STAY_STAT;
  24971. ///@brief 猪只离开开滞留时间信息
  24972. typedef struct tagNET_PIG_STAY_STAT
  24973. {
  24974. NET_TIME stuEnterTime; // 猪只进入区域的时间
  24975. NET_TIME stuExitTime; // 猪只离开区域的时间
  24976. char szReserved[208]; // 保留字节
  24977. }NET_PIG_STAY_STAT;
  24978. ///@brief 经过小计信息
  24979. typedef struct tagNET_PASSED_SUBTOTAL_INFO
  24980. {
  24981. int nTotal; // 设备运行后经过人数统计总数
  24982. int nHour; // 小时内的总人数
  24983. int nToday; // 当天的总人数(自然天)
  24984. int nTotalInTimeSection; // IPC专用,如果不执行clearSectionStat操作,等同于Today人数
  24985. char szReserved[112]; // 保留字节
  24986. }NET_PASSED_SUBTOTAL_INFO;
  24987. ///@brief 视频统计摘要信息
  24988. typedef struct tagNET_VIDEOSTAT_SUMMARY
  24989. {
  24990. int nChannelID; // 通道号
  24991. char szRuleName[32]; // 规则名称
  24992. NET_TIME_EX stuTime; // 统计时间
  24993. NET_VIDEOSTAT_SUBTOTAL stuEnteredSubtotal; // 进入小计
  24994. NET_VIDEOSTAT_SUBTOTAL stuExitedSubtotal; // 出去小计
  24995. UINT nInsidePeopleNum; // 区域内人数
  24996. EM_RULE_TYPE emRuleType; // 规则类型
  24997. int nRetExitManNum; // 离开的人数个数
  24998. NET_EXITMAN_STAY_STAT stuExitManStayInfo[MAX_EXIT_MAN_NUM]; // 离开人员的滞留时间信息
  24999. UINT nPlanID; // 计划ID,仅球机有效,从1开始
  25000. UINT nAreaID; // 区域ID(一个预置点可以对应多个区域ID)
  25001. UINT nCurrentDayInsidePeopleNum; // 当天区域内总人数
  25002. UINT nInsideTotalNonMotor; // 区域内非机动车总数
  25003. UINT nInsideTodayNonMotor; // 当天的非机动车数
  25004. int nRetNonMotorNum; // 非机动车的滞留个数
  25005. NET_NONMOTOR_STAY_STAT stuNonMotorStayStat[MAX_EXIT_MAN_NUM]; // 非机动车的滞留时间信息
  25006. UINT nInsideTotalPig; // 区域内猪只数
  25007. int nPigStayStatCount; // 猪只离开滞留时间信息个数
  25008. NET_PIG_STAY_STAT stuPigStayStatInfo[32]; // 猪只离开滞留时间信息
  25009. UINT nInsideTodayPig; // 当天的猪只数
  25010. char szReserved[4]; // 字节对齐
  25011. NET_PASSED_SUBTOTAL_INFO stuPassedSubtotal; // 经过小计
  25012. BYTE reserved[884]; // 保留字节
  25013. } NET_VIDEOSTAT_SUMMARY;
  25014. ///@brief 视频统计摘要信息回调函数原形,lAttachHandle 是 CLIENT_AttachVideoStatSummary 返回值
  25015. typedef void (CALLBACK *fVideoStatSumCallBack) (LLONG lAttachHandle, NET_VIDEOSTAT_SUMMARY* pBuf, DWORD dwBufLen, LDWORD dwUser);
  25016. ///@brief CLIENT_AttachVideoStatSummary 入参
  25017. typedef struct tagNET_IN_ATTACH_VIDEOSTAT_SUM
  25018. {
  25019. DWORD dwSize;
  25020. int nChannel; // 视频通道号
  25021. fVideoStatSumCallBack cbVideoStatSum; // 视频统计摘要信息回调
  25022. LDWORD dwUser; // 用户数据
  25023. } NET_IN_ATTACH_VIDEOSTAT_SUM;
  25024. ///@brief CLIENT_AttachVideoStatSummary 出参
  25025. typedef struct tagNET_OUT_ATTACH_VIDEOSTAT_SUM
  25026. {
  25027. DWORD dwSize;
  25028. } NET_OUT_ATTACH_VIDEOSTAT_SUM;
  25029. ///@brief 热度图类型
  25030. typedef enum tagEM_HEATMAP_TYPE
  25031. {
  25032. EM_HEATMAP_UNKNOWN, // 未知
  25033. EM_HEATMAP_AVERAGESTAYTIME, // 平均滞留时间热度图
  25034. EM_HEATMAP_HUMANSTATISTICS, // 人数统计热度图
  25035. EM_HEATMAP_HUMANTRACK, // 行人轨迹图
  25036. }EM_HEATMAP_TYPE;
  25037. ///@brief 获取热图数据接口入参
  25038. typedef struct tagNET_IN_GET_VIDEOSTAT_HEATMAP
  25039. {
  25040. DWORD dwSize; // 此结构体大小
  25041. int nPlanID; // 计划(预置点,仅球机有效,范围1~MaxNumberStatPlan)
  25042. NET_TIME stuStartTime; // 开始时间
  25043. NET_TIME stuEndTime; // 结束时间
  25044. EM_HEATMAP_TYPE emHeatMapType; // Ai 热度图类型
  25045. }NET_IN_GET_VIDEOSTAT_HEATMAP;
  25046. ///@brief 获取热图数据接口出参
  25047. typedef struct tagNET_OUT_GET_VIDEOSTAT_HEATMAP
  25048. {
  25049. DWORD dwSize; // 此结构体大小
  25050. UINT nToken; // 查询的Token
  25051. }NET_OUT_GET_VIDEOSTAT_HEATMAP;
  25052. ///@brief 热度图数据信息
  25053. typedef struct tagNET_CB_VIDEOSTAT_HEATMAP
  25054. {
  25055. UINT nToken;
  25056. EM_HEATMAP_TYPE emHeatMapType; // 热度图类型
  25057. BYTE byReserved[1024]; // 保留字节
  25058. }NET_CB_VIDEOSTAT_HEATMAP;
  25059. ///@brief 热度图数据回调函数
  25060. typedef void (CALLBACK *fVideoStatHeatMapCallBack) (LLONG lAttachHandle, NET_CB_VIDEOSTAT_HEATMAP* pBuf, const char* pBinData, DWORD dwBinDataLen, LDWORD dwUser);
  25061. ///@brief 订阅热度图信息入参
  25062. typedef struct tagNET_IN_ATTACH_VIDEOSTAT_HEATMAP
  25063. {
  25064. DWORD dwSize; // 此结构体大小
  25065. int nChannel; // 视频通道号
  25066. fVideoStatHeatMapCallBack cbVideoStatHeatMap; // 热图数据回调
  25067. LDWORD dwUser; // 用户数据
  25068. } NET_IN_ATTACH_VIDEOSTAT_HEATMAP;
  25069. ///@brief 订阅热度图信息出参
  25070. typedef struct tagNET_OUT_ATTACH_VIDEOSTAT_HEATMAP
  25071. {
  25072. DWORD dwSize; // 此结构体大小
  25073. } NET_OUT_ATTACH_VIDEOSTAT_HEATMAP;
  25074. ///@brief 粒度模式
  25075. typedef enum tagEM_STAT_GRANULARITY
  25076. {
  25077. EM_STAT_GRANULARITY_UNKNOWN, // 未知
  25078. EM_STAT_GRANULARITY_MINUTE, // 分钟粒度
  25079. }EM_STAT_GRANULARITY;
  25080. ///@brief 本周期区域内滞留人员统计信息
  25081. typedef struct tagNET_INSIDE_SUB_TOTAL_INFO
  25082. {
  25083. int nTotal; // 本周期上报的区域内总人数
  25084. int nTotalStayTime; // 当前周期,所有人的总滞留时长
  25085. int nManStaySummaryValidNum; // 人次数据有效个数
  25086. int nManStaySummary[8]; // 人次数据, 例此处下发的规则为滞留时间大于3,5,10,300秒的规则.此处结果就是滞留时间大于3秒共10人次,大于5秒的6人次,10秒的3人次,300秒的0人次
  25087. int nTotalStayTimeSummaryValidNum; // 总滞留时长有效个数
  25088. int nTotalStayTimeSummary[8]; // 总滞留时长,单位秒, 例此处下发的规则为滞留时间大于3,5,10,300秒的规则,此处结果就是滞留时间大于3秒的人员的总滞留时长50秒,大于5秒的48秒,10秒的30秒,300秒的0秒
  25089. } NET_INSIDE_SUB_TOTAL_INFO;
  25090. ///@brief 统计通道数据信息
  25091. typedef struct tagNET_CB_VIDEOSTAT_STREAM
  25092. {
  25093. int nChannel; // 统计通道号
  25094. int nPtzPresetId; // 预置点编号默认值为0,球机必填,范围1~PtzPresetMax,IPC可不填。
  25095. char szRuleNanme[128]; // 规则名称
  25096. char szStartTime[20]; // 当前这一统计周期的开始时间
  25097. char szRuleType[32]; // "NumberStat":人数统计
  25098. EM_STAT_GRANULARITY emStatGranularity; // 粒度
  25099. unsigned short nCycle; // 与Granularity结合使用,如emGranularity为 EM_GRANULARITY_MINUTE, Cycle 值为5,表示以5分钟统计周期上报数据
  25100. unsigned short nAreaID; // 区域ID,没有该字段或者为0,为单区域
  25101. UINT nEnteredSubtotal; // 本周期内进入人数小计
  25102. UINT nExitedSubtotal; // 本周期内离开人数小计
  25103. UINT nPassedSubtotal; // 本周期内经过人数小计
  25104. NET_INSIDE_SUB_TOTAL_INFO stuInsideSubtotal; // 本周期区域内滞留人员统计信息, bIsSendMinStayTime为TRUE时有效
  25105. char szReserved[940]; // 保留字节
  25106. }NET_CB_VIDEOSTAT_STREAM;
  25107. ///@brief 统计通道数据回调函数
  25108. typedef void (CALLBACK *fVideoStatStreamCallBack) (LLONG lAttachHandle, NET_CB_VIDEOSTAT_STREAM* pBuf, int nBufLen, LDWORD dwUser);
  25109. ///@brief 订阅统计通道数据入参
  25110. typedef struct tagNET_IN_ATTACH_VIDEOSTAT_STREAM
  25111. {
  25112. DWORD dwSize; // 结构体大小
  25113. int nVideoChannel; // 视频通道号
  25114. EM_STAT_GRANULARITY emGranularity; // 粒度
  25115. char szReserved1[4]; // 字节对齐
  25116. char szRuleType[32]; // "NumberStat":人数统计,统计进入离开数量; "ManNumDetection":区域内人数统计,统计区域内人员数量及滞留时间
  25117. char szStartTime[20]; // 开始时间,表示从什么时间开始统计上报,开始时间,需按周期取整。如推送周期是10分钟一次,那么开始时间,只能为,每个小时的 第0分,10分、20分、30分、40、分、50分。
  25118. fVideoStatStreamCallBack cbVideoStatStream; // 统计通道数据回调
  25119. LDWORD dwUser; // 用户数据
  25120. unsigned short nCycle; // 与Granularity结合使用,如emGranularity为 EM_GRANULARITY_MINUTE, Cycle 值为5,表示以5分钟统计周期上报数据
  25121. char szReserved2[2]; // 字节对齐
  25122. int nSendMinStayTimeValidNum; // 滞留情况数组大小,如填0则不下发该字段
  25123. int nMinStayTime[8]; // 上报时间段内区域人员滞留情况, 表示统计的间隔结果中返回滞留时间大于3秒,大于5秒,大于10秒的记录,单位秒, 不下发时回调仅返回总人数和总滞留时长
  25124. }NET_IN_ATTACH_VIDEOSTAT_STREAM;
  25125. ///@brief 订阅统计通道数据出参
  25126. typedef struct tagNET_OUT_ATTACH_VIDEOSTAT_STREAM
  25127. {
  25128. DWORD dwSize; // 此结构体大小
  25129. }NET_OUT_ATTACH_VIDEOSTAT_STREAM;
  25130. ///@brief 接口 CLIENT_GetParkingSpaceStatus 的输入参数
  25131. typedef struct tagNET_IN_GET_PARKINGSPACE_STATUS
  25132. {
  25133. DWORD dwSize; // 此结构体大小
  25134. DWORD dwWaitTime; // 接口超时等待时间
  25135. int nChannelID; // 通道号
  25136. int * pLaneID; // 取值范围[0,255], pLaneID==NULL表示所有车位,车位最大数同DH_PRODUCTION_DEFNITION.nMaxRoadWays
  25137. int nLaneCount; // 申请的内存为sizeof(int)*nLaneCount
  25138. } NET_IN_GET_PARKINGSPACE_STATUS;
  25139. ///@brief 返回的车位状态
  25140. typedef struct tagNET_LANE_PARKINGSPACE_STATUS
  25141. {
  25142. DWORD dwSize; // 此结构体大小
  25143. int nLaneID; // 车位号
  25144. unsigned int nPictureId; // 图片ID,用于获取图片数据
  25145. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  25146. } NET_LANE_PARKINGSPACE_STATUS;
  25147. ///@brief 接口 CLIENT_GetParkingSpaceStatus 的输出参数
  25148. typedef struct tagNET_OUT_GET_PARKINGSPACE_STATUS
  25149. {
  25150. DWORD dwSize; // 此结构体大小
  25151. NET_LANE_PARKINGSPACE_STATUS* pStatus; // 返回的车位状态,由用户申请内存
  25152. int nMaxStatus; // 需要事先申请的内存为sizeof(NET_LANE_PARKINGSPACE_STATUS)*nMaxStatus,且nMaxStatus == DH_PRODUCTION_DEFNITION.nMaxRoadWays
  25153. int nRetStatus; // 实际返回的车位状态数
  25154. } NET_OUT_GET_PARKINGSPACE_STATUS;
  25155. ///@brief 接口 CLIENT_AttachParkingSpaceData 的输入参数
  25156. typedef struct tagNET_CB_PARKINGSPACE_DATA
  25157. {
  25158. DWORD dwSize; // 此结构体大小
  25159. void* pPicBuffer; // 图片二进制数据,由用户申请内存,大小为sizeof(unsigned int)*nPicLength
  25160. unsigned int nPicLength; // 图片总长度
  25161. } NET_CB_PARKINGSPACE_DATA;
  25162. ///@brief 接口 CLIENT_AttachParkingSpaceData 回调函数,pBuf是json和图片数据,nBufLen是pBuf相应长度,用于转发服务
  25163. typedef int (CALLBACK *fNotifySnapData)(LLONG lParkingHandle, NET_CB_PARKINGSPACE_DATA* pDiagnosisInfo, void* pBuf, int nBufLen, LDWORD dwUser);
  25164. ///@brief 接口 CLIENT_AttachParkingSpaceData 的输入参数
  25165. typedef struct tagNET_IN_ATTACH_PARKINGSPACE
  25166. {
  25167. DWORD dwSize; // 此结构体大小
  25168. DWORD dwWaitTime; // 接口超时等待时间
  25169. int nChannelID; // 通道号
  25170. unsigned int nPictureId; // 图片ID,见NET_LANE_PARKINGSPACE_STATUS.nPictureId
  25171. fNotifySnapData cbNotifySnapData; // 回调函数
  25172. LDWORD dwUser; // 用户自定义参数
  25173. } NET_IN_ATTACH_PARKINGSPACE;
  25174. ///@brief 信息信息
  25175. typedef struct tagNET_CB_FINGERPRINT_INFO
  25176. {
  25177. UINT nIndex; // 信息索引号,从左手小指依次到右手小指为0到9
  25178. char szFingerprintData[DH_COMMON_STRING_2048]; // 信息数据,经过Base64后的字符串
  25179. BYTE bReserved[256]; // 保留字段
  25180. }NET_CB_FINGERPRINT_INFO;
  25181. ///@brief 回调函数中目标信息
  25182. typedef struct tagNET_CB_PERSON_INFO
  25183. {
  25184. UINT nSID; // 服务器订阅ID号
  25185. UINT nPicLength; // 采集的人员图片长度
  25186. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  25187. UINT nRetFaceDataNum; // 返回的目标模版数据个数
  25188. char szFaceData[MAX_FACE_DATA_NUM][MAX_FACE_DATA_LEN]; // 目标数据
  25189. char szPassword[DH_COMMON_STRING_64];//卡密码
  25190. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  25191. char szCardName[DH_COMMON_STRING_32];//卡命名
  25192. UINT nFingerPrintNum; // 返回信息个数
  25193. NET_CB_FINGERPRINT_INFO stuFingerPrintInfo[MAX_FINGERPRINT_NUM];//信息信息
  25194. BYTE bReserved[2048]; // 保留字段
  25195. }NET_CB_PERSON_INFO;
  25196. ///@brief 目标信息采集回调函数
  25197. typedef int (CALLBACK *fNotifyPersonInfo)(LLONG lLoginID, LLONG lPersonHandle, NET_CB_PERSON_INFO *pstuPersonInfo, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser, void *reserved);
  25198. ///@brief CLIENT_AttachPersonInfoCollect 入参
  25199. typedef struct tagNET_IN_ATTACH_PERSONINFOCOLLECT
  25200. {
  25201. DWORD dwSize; // 结构体大小
  25202. DWORD dwWaitTime; // 接口超时等待时间
  25203. fNotifyPersonInfo cbNotifyPersonInfo; // 回调函数
  25204. LDWORD dwUser; // 用户自定义参数
  25205. }NET_IN_ATTACH_PERSONINFOCOLLECT;
  25206. ///@brief CLIENT_AttachPersonInfoCollect 出参
  25207. typedef struct tagNET_OUT_ATTACH_PERSONINFOCOLLECT
  25208. {
  25209. DWORD dwSize; // 结构体大小
  25210. }NET_OUT_ATTACH_PERSONINFOCOLLECT;
  25211. ///@brief CLIENT_DetachPersonInfoColloect 入参
  25212. typedef struct tagNET_IN_DETACH_PERSONINFOCOLLECT
  25213. {
  25214. DWORD dwSize; //结构体大小
  25215. DWORD dwWaitTime; // 接口超时等待时间
  25216. LLONG lPersonHandle; // CLIENT_AttachPersonInfoCollect 返回的句柄
  25217. }NET_IN_DETACH_PERSONINFOCOLLECT;
  25218. ///@brief CLIENT_DetachPersonInfoColloect 出参
  25219. typedef struct tagNET_OUT_DETACH_PERSONINFOCOLLECT
  25220. {
  25221. DWORD dwSize; // 结构体大小
  25222. }NET_OUT_DETACH_PERSONINFOCOLLECT;
  25223. ///@brief 订阅目标信息采集
  25224. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachPersonInfoCollect(LLONG lLoginID, NET_IN_ATTACH_PERSONINFOCOLLECT *pstuInParam, NET_OUT_ATTACH_PERSONINFOCOLLECT *pstuOutParam);
  25225. ///@brief 取消订阅目标信息采集
  25226. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachPersonInfoColloect(NET_IN_DETACH_PERSONINFOCOLLECT* pstuInParam, NET_OUT_DETACH_PERSONINFOCOLLECT* pstuOutParam);
  25227. ///@brief NET_CAR_PASS_INFOS 相关枚举类型
  25228. typedef enum tagNET_CAR_SIZE
  25229. {
  25230. CAR_SIZE_UNKNOWN = 0 , //未知
  25231. CAR_SIZE_SAMLL , //小车
  25232. CAR_SIZE_BIG , //大车
  25233. }NET_CAR_SIZE;
  25234. ///@brief 车辆动作类型
  25235. typedef enum tagNET_CAR_ACTION
  25236. {
  25237. CAR_ACTION_UNKNOWN = 0 ,
  25238. CAR_ACTION_ENTER , //进入检测区域
  25239. CAR_ACTION_LEAVE , //离开检测区域
  25240. }NET_CAR_ACTION;
  25241. ///@brief CLIENT_AttachCarPassInfo 回调函数返回的过车信息结构体
  25242. typedef struct tagNET_CAR_PASS_INFO
  25243. {
  25244. DWORD dwSize;
  25245. DWORD nID; // 车辆物体ID
  25246. DWORD nLaneNumber; // 从0开始,比如现有3个车道,则车道号分别为0 1 2
  25247. DWORD nRoadwayNumber; // 自定义车道号,用户配置的车道号,目前取值范围为1-16
  25248. DWORD nSpeed; // 车速,单位(km/h)
  25249. NET_CAR_SIZE emCarSize; // 车辆大小类型
  25250. NET_CAR_ACTION emCarAction; // 车辆动作类型
  25251. NET_TIME_EX stuTime; // 动作发生的时间,精确到毫秒
  25252. }NET_CAR_PASS_INFO;
  25253. ///@brief 接口 CLIENT_AttachCarPassInfo 回调函数
  25254. // nInfoNum 过车信息数
  25255. // pstuCarPassInfos 过车信息数组
  25256. typedef int (CALLBACK *fNotifyCarPassInfo)(LLONG lCarPassHandle, NET_CAR_PASS_INFO* pstuCarPassInfos, int nInfoNum , LDWORD dwUser);
  25257. ///@brief 接口 CLIENT_AttachCarPassInfo 的输入参数
  25258. typedef struct tagNET_IN_ATTACH_CAR_PASS_INFO
  25259. {
  25260. DWORD dwSize; // 此结构体大小,必须赋值
  25261. int nChannelID; // 通道号
  25262. fNotifyCarPassInfo cbNotifyCarPassInfo; // 回调函数,有过车信息时,回调给上层
  25263. LDWORD dwUser; // 用户自定义参数
  25264. }NET_IN_ATTACH_CAR_PASS_INFO;
  25265. ///@brief 接口 CLIENT_AttachCarPassInfo 的输出参数
  25266. typedef struct tagNET_OUT_ATTACH_CAR_PASS_INFO
  25267. {
  25268. DWORD dwSize; //此结构体大小,必须赋值
  25269. }NET_OUT_ATTACH_CAR_PASS_INFO;
  25270. ///@brief 接口 CLIENT_AttachParkingSpaceData 的输出参数
  25271. typedef struct tagNET_OUT_ATTACH_PARKINGSPACE
  25272. {
  25273. DWORD dwSize; // 此结构体大小
  25274. } NET_OUT_ATTACH_PARKINGSPACE;
  25275. ///@brief 接口 CLIENT_DetachParkingSpaceData 的输入参数
  25276. typedef struct tagNET_IN_DETACH_PARKINGSPACE
  25277. {
  25278. DWORD dwSize; // 此结构体大小
  25279. DWORD dwWaitTime; // 接口超时等待时间
  25280. LLONG lParkingHandle; // CLIENT_AttachParkingSpaceData返回的句柄
  25281. } NET_IN_DETACH_PARKINGSPACE;
  25282. ///@brief 接口 CLIENT_DetachParkingSpaceData 的输出参数
  25283. typedef struct tagNET_OUT_DETACH_PARKINGSPACE
  25284. {
  25285. DWORD dwSize; // 此结构体大小
  25286. } NET_OUT_DETACH_PARKINGSPACE;
  25287. ///@brief 获取车位锁状态接口,CLIENT_GetParkingLockState 入参
  25288. typedef struct tagNET_IN_GET_PARKINGLOCK_STATE_INFO
  25289. {
  25290. DWORD dwSize; // 结构体大小
  25291. } NET_IN_GET_PARKINGLOCK_STATE_INFO;
  25292. ///@brief 车位锁状态
  25293. typedef enum tagEM_STATE_TYPE
  25294. {
  25295. EM_STATE_TYPE_UNKNOW, // 未知
  25296. EM_STATE_TYPE_LOCKRISE, // 车位锁升起
  25297. EM_STATE_TYPE_LOCKDOWN, // 车位锁降下
  25298. EM_STATE_TYPE_LOCKERROR, // 车位锁异常
  25299. } EM_STATE_TYPE;
  25300. ///@brief 车位锁状态通信接口参数
  25301. typedef struct tagNET_STATE_LIST_INFO
  25302. {
  25303. unsigned int nLane; // 车位号
  25304. EM_STATE_TYPE emState; // 车位锁状态
  25305. BYTE byReserved[256]; // 保留
  25306. } NET_STATE_LIST_INFO;
  25307. ///@brief 获取车位锁状态, CLIENT_GetParkingLockState 出参
  25308. typedef struct tagNET_OUT_GET_PARKINGLOCK_STATE_INFO
  25309. {
  25310. DWORD dwSize; // 结构体大小
  25311. int nStateListNum; // 车位锁状态个数
  25312. NET_STATE_LIST_INFO stuStateList[MAX_PARKINGLOCK_STATE_NUM]; // 车位锁状态
  25313. } NET_OUT_GET_PARKINGLOCK_STATE_INFO;
  25314. ///@brief 设置车位锁状态接口,CLIENT_SetParkingLockState 入参
  25315. typedef struct tagNET_IN_SET_PARKINGLOCK_STATE_INFO
  25316. {
  25317. DWORD dwSize; // 结构体大小
  25318. int nStateListNum; // 车位锁状态个数
  25319. NET_STATE_LIST_INFO stuStateList[MAX_PARKINGLOCK_STATE_NUM]; // 车位锁状态
  25320. int nControlType; // 控制车位锁状态类型, 0:未知, 1:平台正常控制, 2:平台手动控制
  25321. } NET_IN_SET_PARKINGLOCK_STATE_INFO;
  25322. ///@brief 设置车位锁状态接口,CLIENT_SetParkingLockState 出参
  25323. typedef struct tagNET_OUT_SET_PARKINGLOCK_STATE_INFO
  25324. {
  25325. DWORD dwSize; // 结构体大小
  25326. } NET_OUT_SET_PARKINGLOCK_STATE_INFO;
  25327. ///@brief 设置停车规则接口,CLIENT_SetParkingRule 入参
  25328. typedef struct tagNET_IN_SET_PARKINGRULE_INFO
  25329. {
  25330. DWORD dwSize; // 结构体大小
  25331. UINT nParkingTimeThreshold; // 停车时长阈值,单位秒
  25332. } NET_IN_SET_PARKINGRULE_INFO;
  25333. ///@brief 设置停车规则接口,CLIENT_SetParkingRule 出参
  25334. typedef struct tagNET_OUT_SET_PARKINGRULE_INFO
  25335. {
  25336. DWORD dwSize; // 结构体大小
  25337. } NET_OUT_SET_PARKINGRULE_INFO;
  25338. ///@brief 车位状态
  25339. typedef enum tagEM_PARKINGSPACE_STATE
  25340. {
  25341. EM_PARKINGSPACE_STATE_UNKNOWN = -1, // 未知
  25342. EM_PARKINGSPACE_STATE_NOPARKING, // 车位无车
  25343. EM_PARKINGSPACE_STATE_PARKING // 车位有车
  25344. }EM_PARKINGSPACE_STATE;
  25345. ///@brief 设置停车车位状态 CLIENT_SetParkingSpaceState 入参
  25346. typedef struct tagNET_IN_SET_PARKINGSPACE_STATE_INFO
  25347. {
  25348. DWORD dwSize; // 结构体大小
  25349. int nChannel; // 通道号
  25350. char szPlateNumber[64]; // 车牌号码
  25351. char szParkingNo[32]; // 车位号
  25352. EM_PARKINGSPACE_STATE emState; // 车位状态
  25353. BOOL bUnNeedPic; // 是否不需要图片, 默认FALSE
  25354. }NET_IN_SET_PARKINGSPACE_STATE_INFO;
  25355. ///@brief 设置停车车位状态 CLIENT_SetParkingSpaceState 出参
  25356. typedef struct tagNET_OUT_SET_PARKINGSPACE_STATE_INFO
  25357. {
  25358. DWORD dwSize; // 结构体大小
  25359. }NET_OUT_SET_PARKINGSPACE_STATE_INFO;
  25360. ///@brief 设置停车车位余位信息 CLIENT_SetParkingRemainInfo 入参
  25361. typedef struct tagNET_IN_SET_PARKING_REMAIN_INFO
  25362. {
  25363. DWORD dwSize; // 结构体大小
  25364. UINT nRemainSpace; // 停车场余位数
  25365. } NET_IN_SET_PARKING_REMAIN_INFO;
  25366. ///@brief 设置停车车位余位信息 CLIENT_SetParkingRemainInfo 出参
  25367. typedef struct tagNET_OUT_SET_PARKING_REMAIN_INFO
  25368. {
  25369. DWORD dwSize; // 结构体大小
  25370. } NET_OUT_SET_PARKING_REMAIN_INFO;
  25371. ///@brief 停车位记录信息
  25372. typedef struct tagNET_PARKINGRECORD_INFO
  25373. {
  25374. int nChannel; // 通道号
  25375. char szPlateNumber[64]; // 车牌号码
  25376. char szParkingNo[32]; // 车位号
  25377. BYTE byReserverd[512]; // 保留字节
  25378. }NET_PARKINGRECORD_INFO;
  25379. ///@brief 修改停车记录信息 CLIENT_ModifyParkingRecord 入参
  25380. typedef struct tagNET_IN_MODIFY_PARKINGRECORD_INFO
  25381. {
  25382. DWORD dwSize; // 结构体大小
  25383. NET_PARKINGRECORD_INFO stuOld; // 老的记录
  25384. NET_PARKINGRECORD_INFO stuNew; // 新的记录
  25385. }NET_IN_MODIFY_PARKINGRECORD_INFO;
  25386. ///@brief 修改停车记录信息 CLIENT_ModifyParkingRecord 出参
  25387. typedef struct tagNET_OUT_MODIFY_PARKINGRECORD_INFO
  25388. {
  25389. DWORD dwSize; // 结构体大小
  25390. }NET_OUT_MODIFY_PARKINGRECORD_INFO;
  25391. ///@brief 文件批量下载
  25392. // 下载进度回调函数原型, nError表示在下载过程出现的错误,1-缓存不足,2-对返回数据的校验出错,3-下载当前文件失败,4-创建对应保存文件失败
  25393. // 按文件下载时,ID为用户设置的dwFileID,按条件下载时,ID为用户设置的dwConditionID
  25394. // pReserved 为 NET_DOWNLOADFILE_RESERVED_INFO
  25395. typedef void (CALLBACK *fMultiFileDownLoadPosCB)(LLONG lDownLoadHandle, DWORD dwID, DWORD dwFileTotalSize, DWORD dwDownLoadSize, int nError, LDWORD dwUser, void* pReserved);
  25396. ///@brief 文件批量下载回调扩展
  25397. typedef struct tagNET_DOWNLOADFILE_RESERVED_INFO
  25398. {
  25399. DWORD dwSize;
  25400. BYTE* pPieceBuff; // 文件二进制片信息
  25401. UINT nPieceLen; // 文件二进制片长度
  25402. }NET_DOWNLOADFILE_RESERVED_INFO;
  25403. ///@brief 下载文件方式
  25404. typedef enum tagEM_DOWNLOAD_FILE_TYPE
  25405. {
  25406. EM_DOWNLOAD_BY_FILENAME = 0 , //按文件名下载
  25407. EM_DOWNLOAD_BY_CONDITION , //按条件下载
  25408. }EM_DOWNLOAD_FILE_TYPE;
  25409. ///@brief 下载时间类型
  25410. typedef enum tagEM_DOWNLOAD_TIME_TYPE
  25411. {
  25412. EM_DOWNLOAD_TIME_SNAP = 0 , //抓拍时间
  25413. EM_DOWNLOAD_TIME_STORAGE , //存储时间
  25414. }EM_DOWNLOAD_TIME_TYPE;
  25415. ///@brief 下载数据类型
  25416. typedef enum tagEM_DOWNLOAD_DATA_TYPE
  25417. {
  25418. EM_DOWNLOAD_DATA_RECORD = 0 , //录像
  25419. EM_DOWNLOAD_DATA_PICTURE , //图片
  25420. }EM_DOWNLOAD_DATA_TYPE;
  25421. ///@brief CLIENT_DownLoadMultiFile 接口参数
  25422. typedef struct tagNET_DOWNLOADFILE_INFO
  25423. {
  25424. DWORD dwSize;
  25425. DWORD dwFileID; // 文件ID, 由用户自己分配
  25426. int nFileSize; // 查询到的文件大小
  25427. char szSourceFilePath[MAX_PATH]; // 查询到的文件路径
  25428. char szSavedFileName[MAX_PATH]; // 文件保存路径
  25429. }NET_DOWNLOADFILE_INFO;
  25430. ///@brief 下载条件
  25431. typedef struct tagNET_DOWNLOAD_CONDITION_INFO
  25432. {
  25433. DWORD dwSize;
  25434. DWORD dwConditionID; // 条件ID, 由用户自己分配
  25435. int nChannel; // 通道号
  25436. NET_TIME stuStartTime; // 开始时间
  25437. NET_TIME stuEndTime; // 结束时间
  25438. EM_DOWNLOAD_TIME_TYPE emTimeType; // 时间类型
  25439. EM_DOWNLOAD_DATA_TYPE emDataType; // 数据类型
  25440. char szSavedFileName[MAX_PATH]; // 文件保存路径
  25441. }NET_DOWNLOAD_CONDITION_INFO;
  25442. ///@brief 文件方式下载选项
  25443. typedef struct tagNET_DOWNLOADFILE_OPTIONS_INFO
  25444. {
  25445. int nChannel; // 通道号
  25446. BYTE byReserved[508]; // 预留字段
  25447. }NET_DOWNLOADFILE_OPTIONS_INFO;
  25448. ///@brief CLIENT_DownLoadMultiFile输入参数
  25449. typedef struct tagNET_IN_DOWNLOAD_MULTI_FILE
  25450. {
  25451. DWORD dwSize;
  25452. /*按文件名下载*/
  25453. int nFileCount; // 待下载文件数,emDownloadType为EM_DOWNLOAD_BY_FILENAME有效
  25454. NET_DOWNLOADFILE_INFO* pFileInfos; // 待下载文件信息,emDownloadType为EM_DOWNLOAD_BY_FILENAME有效
  25455. // 由用户申请内存,大小为sizeof(NET_DOWNLOADFILE_INFO)*nFileCount
  25456. fMultiFileDownLoadPosCB cbPosCallBack; // 进度回调函数
  25457. LDWORD dwUserData; // 用户数据
  25458. EM_DOWNLOAD_FILE_TYPE emDownloadType; // 下载方式
  25459. /*按查询条件下载*/
  25460. int nConditionCount; // 下载条件数,emDownloadType为EM_DOWNLOAD_BY_CONDITION有效
  25461. NET_DOWNLOAD_CONDITION_INFO* pConditionInfos; // 下载条件,emDownloadType为EM_DOWNLOAD_BY_CONDITION有效
  25462. // 由用户申请内存,大小为sizeof(NET_DOWNLOAD_CONDITION_INFO)*nConditionCount
  25463. EM_SUBCLASSID_TYPE emSubClass; // 从设备类型(定制)
  25464. NET_DOWNLOADFILE_OPTIONS_INFO *pFileOptions; // 待下载文件信息, 下载选项;emDownloadType为EM_DOWNLOAD_BY_FILENAME有效
  25465. }NET_IN_DOWNLOAD_MULTI_FILE;
  25466. ///@brief CLIENT_DownLoadMultiFile输出参数
  25467. typedef struct tagNET_OUT_DOWNLOAD_MULTI_FILE
  25468. {
  25469. DWORD dwSize;
  25470. LLONG lDownLoadHandle; // 下载句柄
  25471. }NET_OUT_DOWNLOAD_MULTI_FILE;
  25472. ///@brief 回调信息
  25473. typedef struct __NET_VIDEOANALYSE_STATE
  25474. {
  25475. DWORD dwSize;
  25476. DWORD dwProgress; // 分析进度,0-100
  25477. char szState[DH_COMMON_STRING_64]; // 通道状态,Running":运行,"Stop":停止,"NoStart":未启动,"Failed":失败,"Successed":成功
  25478. char szFailedCode[DH_COMMON_STRING_64]; // 错误码
  25479. }NET_VIDEOANALYSE_STATE;
  25480. ///@brief 视频分析进度状态实时回调函数
  25481. typedef int (CALLBACK *fVideoAnalyseState)(LLONG lAttachHandle, NET_VIDEOANALYSE_STATE* pAnalyseStateInfos, LDWORD dwUser, void* pReserved);
  25482. ///@brief CLIENT_AttachVideoAnalyseState接口输入参数
  25483. typedef struct __NET_IN_ATTACH_VIDEOANALYSE_STATE
  25484. {
  25485. DWORD dwSize;
  25486. int nChannleId; // 通道号
  25487. fVideoAnalyseState cbVideoAnalyseState; // 视频分析状态回调函数
  25488. LDWORD dwUser; // 用户信息
  25489. }NET_IN_ATTACH_VIDEOANALYSE_STATE;
  25490. ///@brief CLIENT_AttachVideoAnalyseState接口输出参数
  25491. typedef struct __NET_OUT_ATTACH_VIDEOANALYSE_STATE
  25492. {
  25493. DWORD dwSize;
  25494. LLONG lAttachHandle; // 分析进度句柄,唯一标识某一通道的分析进度
  25495. }NET_OUT_ATTACH_VIDEOANALYSE_STATE;
  25496. ///@brief 目标类型
  25497. typedef enum tagEM_TRACK_OBJECT_TYPE
  25498. {
  25499. EM_TRACK_OBJECT_TYPE_UNKNOWN = -1, // 未知
  25500. EM_TRACK_OBJECT_TYPE_FACE, // 目标
  25501. EM_TRACK_OBJECT_TYPE_HUMAN, // 人体
  25502. EM_TRACK_OBJECT_TYPE_VECHILE, // 机动车
  25503. EM_TRACK_OBJECT_TYPE_NOMOTOR, // 非机动车
  25504. } EM_TRACK_OBJECT_TYPE;
  25505. ///@brief 视频目标信息
  25506. typedef struct tagNET_VIDEO_TRACK_OBJECT_INFO
  25507. {
  25508. char szObjectUUID[128]; // 目标uuid
  25509. EM_TRACK_OBJECT_TYPE emObjectType[32]; // 目标类型
  25510. int nObjectTypeNum; // 目标类型的个数
  25511. NET_RECT stuBoundingBox; // 包围盒
  25512. }NET_VIDEO_TRACK_OBJECT_INFO;
  25513. ///@brief 外部轨迹的信息
  25514. typedef struct tagNET_VIDEO_ANALYSE_TRACK_PROC
  25515. {
  25516. DWORD dwSize; // 结构体大小
  25517. int nChannelId; // 通道号
  25518. NET_VIDEO_TRACK_OBJECT_INFO stuTrackObject[128]; // 视频目标信息
  25519. int nTrackObjectNum; // 视频目标个数
  25520. char szReserved[256]; // 保留字节
  25521. }NET_VIDEO_ANALYSE_TRACK_PROC;
  25522. ///@brief 外部轨迹的回调函数
  25523. typedef void (CALLBACK *fVideoAnalyseTrackProc)(LLONG lAttachHandle, NET_VIDEO_ANALYSE_TRACK_PROC* pstuVideoAnalyseTrackProc, LDWORD dwUser);
  25524. ///@brief CLIENT_AttachVideoAnalyseTrackProc 输入参数
  25525. typedef struct tagNET_IN_ATTACH_VIDEO_ANALYSE_TRACK_PROC
  25526. {
  25527. DWORD dwSize; // 此结构体大小,必须赋值
  25528. int nChannelId; // 通道号
  25529. fVideoAnalyseTrackProc cbVideoAnalyseTrackProc; // 回调函数
  25530. LDWORD dwUser; // 用户信息
  25531. }NET_IN_ATTACH_VIDEO_ANALYSE_TRACK_PROC;
  25532. ///@brief CLIENT_AttachVideoAnalyseTrackProc 输出参数
  25533. typedef struct tagNET_OUT_ATTACH_VIDEO_ANALYSE_TRACK_PROC
  25534. {
  25535. DWORD dwSize; // 此结构体大小,必须赋值
  25536. }NET_OUT_ATTACH_VIDEO_ANALYSE_TRACK_PROC;
  25537. ///@brief 订阅外部轨迹
  25538. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachVideoAnalyseTrackProc(LLONG lLoginID, NET_IN_ATTACH_VIDEO_ANALYSE_TRACK_PROC* pstInParam, NET_OUT_ATTACH_VIDEO_ANALYSE_TRACK_PROC* pstOutParam , int nWaitTime);
  25539. ///@brief 取消订阅外部轨迹
  25540. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVideoAnalyseTrackProc(LLONG lAttachHandle);
  25541. ///@brief CLIENT_GetWaterLevelInfobyEvent 输入参数
  25542. typedef struct tagNET_IN_GET_WATER_LEVELINFO_BY_EVENT
  25543. {
  25544. DWORD dwSize; // 此结构体大小,必须赋值
  25545. UINT nChannel; // 通道号
  25546. int nPresetId; // 事件触发的预置点号,从1开始
  25547. }NET_IN_GET_WATER_LEVELINFO_BY_EVENT;
  25548. ///@brief CLIENT_GetWaterLevelInfobyEvent 输出参数
  25549. typedef struct tagNET_OUT_GET_WATER_LEVELINFO_BY_EVENT
  25550. {
  25551. DWORD dwSize; // 此结构体大小,必须赋值
  25552. }NET_OUT_GET_WATER_LEVELINFO_BY_EVENT;
  25553. ///@brief 上海防汛门五期水利球水位报警对接高诚平台定制,用于平台主动查询水位信息,设备通过水位监测事件上报实时数据
  25554. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetWaterLevelInfobyEvent(LLONG lLoginID, NET_IN_GET_WATER_LEVELINFO_BY_EVENT* pstInParam, NET_OUT_GET_WATER_LEVELINFO_BY_EVENT* pstOutParam , int nWaitTime);
  25555. ///@brief 语音对讲状态
  25556. typedef enum tagEM_TALK_STATE
  25557. {
  25558. EM_TALK_STATE_UNKNOWN, // 未知
  25559. EM_TALK_STATE_INVITING, // 主叫
  25560. EM_TALK_STATE_RINGING, // 被叫
  25561. EM_TALK_STATE_ANSWER, // 应答
  25562. EM_TALK_STATE_REFUSE, // 拒绝
  25563. EM_TALK_STATE_HANGUP, // 挂断
  25564. EM_TALK_STATE_BUSYING, // 忙碌
  25565. EM_TALK_STATE_CANCEL, // 取消呼叫
  25566. } EM_TALK_STATE;
  25567. #define NET_CALL_NUM_MAX 128 // 最大通话号码数量
  25568. ///@brief CLIENT_AttachTalkState 回调函数返回的语音对讲状态
  25569. typedef struct tagNET_TALK_STATE
  25570. {
  25571. DWORD dwSize;
  25572. char szCallID[DH_COMMON_STRING_64]; // 呼叫惟一标识符
  25573. int nAudioPort; // 音频端口
  25574. int nVideoPort; // 视频端口
  25575. char szMediaAddr[DH_MAX_IPADDR_LEN]; // 取流地址
  25576. EM_TALK_STATE emState; // 状态
  25577. int nNumberCount; // 呼叫号码数
  25578. char szNumbers[NET_CALL_NUM_MAX][DH_COMMON_STRING_32]; // 呼叫号码列表
  25579. } NET_TALK_STATE;
  25580. ///@brief 接口 CLIENT_AttachTalkState 的回调函数
  25581. typedef void (CALLBACK *fNotifyTalkState)(LLONG lAttachHandle, NET_TALK_STATE* pstuState, int nLen, LDWORD dwUser);
  25582. ///@brief 接口 CLIENT_AttachTalkState 的输入参数
  25583. typedef struct tagNET_IN_ATTACH_TALK_STATE
  25584. {
  25585. DWORD dwSize; // 此结构体大小,必须赋值
  25586. int nChnId; // 通道号,用于标识对讲单元
  25587. fNotifyTalkState cbCallBack; // 回调函数,有对讲状态时,回调给上层
  25588. LDWORD dwUser; // 用户自定义参数
  25589. }NET_IN_ATTACH_TALK_STATE;
  25590. ///@brief 接口 CLIENT_AttachTalkState 的输出参数
  25591. typedef struct tagNET_OUT_ATTACH_TALK_STATE
  25592. {
  25593. DWORD dwSize; // 此结构体大小,必须赋值
  25594. char szCallID[DH_COMMON_STRING_64]; // 呼叫惟一标识符
  25595. }NET_OUT_ATTACH_TALK_STATE;
  25596. ///////////////////////////// IVS 服务器视频诊断模块 /////////////////////////////////
  25597. // 视频诊断上报结果检测类型定义
  25598. #define NET_DIAGNOSIS_DITHER "VideoDitherDetection" // 视频抖动检测 对应结构体(NET_VIDEO_DITHER_DETECTIONRESULT)
  25599. #define NET_DIAGNOSIS_STRIATION "VideoStriationDetection" // 视频条纹检测 对应结构体(NET_VIDEO_STRIATION_DETECTIONRESULT)
  25600. #define NET_DIAGNOSIS_LOSS "VideoLossDetection" // 视频丢失检测 对应结构体(NET_VIDEO_LOSS_DETECTIONRESULT)
  25601. #define NET_DIAGNOSIS_COVER "VideoCoverDetection" // 视频遮挡检测 对应结构体(NET_VIDEO_COVER_DETECTIONRESULT)
  25602. #define NET_DIAGNOSIS_FROZEN "VideoFrozenDetection" // 视频冻结检测 对应结构体(NET_VIDEO_FROZEN_DETECTIONRESULT)
  25603. #define NET_DIAGNOSIS_BRIGHTNESS "VideoBrightnessDetection" // 视频亮度异常检测 对应结构体(NET_VIDEO_BRIGHTNESS_DETECTIONRESULT)
  25604. #define NET_DIAGNOSIS_CONTRAST "VideoContrastDetection" // 视频对比度异常检测 对应结构体(NET_VIDEO_CONTRAST_DETECTIONRESULT)
  25605. #define NET_DIAGNOSIS_UNBALANCE "VideoUnbalanceDetection" // 视频偏色检测 对应结构体(NET_VIDEO_UNBALANCE_DETECTIONRESULT)
  25606. #define NET_DIAGNOSIS_NOISE "VideoNoiseDetection" // 视频噪声检测 对应结构体(NET_VIDEO_NOISE_DETECTIONRESULT)
  25607. #define NET_DIAGNOSIS_BLUR "VideoBlurDetection" // 视频模糊检测 对应结构体(NET_VIDEO_BLUR_DETECTIONRESULT)
  25608. #define NET_DIAGNOSIS_SCENECHANGE "VideoSceneChangeDetection" // 视频场景变化检测 对应结构体(NET_VIDEO_SCENECHANGE_DETECTIONRESULT)
  25609. #define NET_DIAGNOSIS_VIDEO_DELAY "VideoDelay" // 视频延时检测 对应结构体(NET_VIDEO_DELAY_DETECTIONRESUL)
  25610. #define NET_DIAGNOSIS_PTZ_MOVING "PTZMoving" // 云台移动检测 对应结构体(NET_PTZ_MOVING_DETECTIONRESULT)
  25611. #define NET_DIAGNOSIS_BLACK_WHITE "VideoBlackAndWhite" // 黑白图像检测, 对应结构体(NET_BLACK_WHITE_DETECTIONRESULT)
  25612. #define NET_DIAGNOSIS_DRAMATIC_CHANGE "VideoDramaticChange" // 场景剧变检测, 对应结构体(NET_DIAGNOSIS_DRAMATIC_DETECTIONRESULT)
  25613. #define NET_DIAGNOSIS_VIDEO_AVAILABILITY "VideoAvailability" // 视频完好率监测, 对应结构体(NET_VIDEO_AVAILABILITY_DETECTIONRESULT)
  25614. #define NET_DIAGNOSIS_SNOWFLAKE "SnowflakeDetection" // 雪花屏检测, 对应结构体(NET_VIDEO_SNOWFLAKE_DETECTIONRESULT)
  25615. #define NET_DIAGNOSIS_VIDEO_ALGORITHMTYPE "VideoAlgorithmType" // 视频算法类型检测,对应结构体(NET_VIDEO_ALGORITHMTYPE_DETECTIONRESULT)
  25616. #define NET_DIAGNOSIS_VIDEO_FILCKERING_DETECTION "VideoFilckeringDetection" // 视频闪频检测, 对应结构体(NET_VIDEO_FILCKERING_DETECTION_RESULT)
  25617. #define NET_DIAGNOSIS_VIDEO_LOSS_FRAME_DETECTION "VideoLossFrameDetection" // 视频丢帧检测, 对应结构体(NET_VIDEO_LOSS_FRAME_DETECTION_RESULT)
  25618. ///@brief 检测结果状态
  25619. typedef enum tagNET_STATE_TYPE
  25620. {
  25621. NET_EM_STATE_ERR, // 其它
  25622. NET_EM_STATE_NORMAL, // "Normal" 正常
  25623. NET_EM_STATE_WARNING, // "Warning" 警告
  25624. NET_EM_STATE_ABNORMAL, // "Abnormal" 异常
  25625. }NET_STATE_TYPE;
  25626. ///@brief 视频诊断结果类型
  25627. typedef enum tagNET_VIDEODIAGNOSIS_RESULT_TYPE
  25628. {
  25629. NET_EM_ROTATION, // "Rotation" -视频轮巡分析结果
  25630. NET_EM_REAL, // "Real" -实时视频分析结果
  25631. NET_EM_NR_UNKNOW, // 未定义
  25632. }NET_VIDEODIAGNOSIS_RESULT_TYPE;
  25633. ///@brief 视频诊断错误原因
  25634. typedef enum tagNET_VIDEODIAGNOSIS_FAIL_TYPE
  25635. {
  25636. NET_EM_NO_ERROR, // 诊断成功
  25637. NET_EM_DISCONNECT, // "Disconnect" - 末能连接设备
  25638. NET_EM_CH_NOT_EXIST, // "ChannelNotExist" - 通道不存在
  25639. NET_EM_LOGIN_OVER_TIME, // "LoginOverTime" - 登录超时
  25640. NET_EM_NO_VIDEO, // "NoVideo" - 登录成功无视频
  25641. NET_EM_NO_RIGHT, // "NoRight" - 无操作权限
  25642. NET_EM_PLATFROM_LOGIN_FAILED, // "PlatformLoginFailed" - 平台登入失败
  25643. NET_EM_PLATFROM_DISCONNECT, // "PlatformDisconnect" - 平台断开连接
  25644. NET_EM_GET_STREAM_OVER_TIME, // "GetStreamOverTime" - 获取码流超时
  25645. NET_EM_GET_NO_ENOUGH_STREAM, // "NoEnoughStream" - 码流不足
  25646. NET_EM_DECODE_STREAM_FAILED, // "DecodeStreamFailed" - 解码失败
  25647. NET_EM_GET_OFF_LINE, // "OffLine" - 前端设备离线
  25648. NET_EM_NF_UNKNOW, // 其他原因,详见结构体里的失败原因描述
  25649. NET_EM_NOT_SD, // "NotSD" - 设备非球机,云台类检测无效
  25650. NET_EM_RTSP_PROCESS_FAILED, // "RtspProcesssFailed" - RTSP过程失败
  25651. NET_EM_PLAY_FAILED, // "PlayFailed" - 播放失败
  25652. NET_EM_SNAP_FAILED, // "SnapFailed" - 抓图失败
  25653. NET_EM_FULL_CHANNEL_LINKS, // "FullChannelLinks" - 由于资源管控,该角色的用户连接数已满,导致拉流失败
  25654. NET_EM_LICENSE_ERROR, // "LicenseError" - 证书错误
  25655. NET_EM_AUTHORIZATION_ERROR, // "AuthorizationError" - 授权错误, 超出最大最大授权路
  25656. }NET_VIDEODIAGNOSIS_FAIL_TYPE;
  25657. ///@brief 通用变长字符串以‘\0’结束
  25658. typedef struct tagNET_ARRAY
  25659. {
  25660. DWORD dwSize; // 此结构体大小
  25661. char* pArray; // 缓冲区 目前最小260字节,调用者申请内存 填充数据保证是'\0'结束
  25662. DWORD dwArrayLen; // 缓冲空间长度
  25663. }NET_ARRAY;
  25664. #define MAX_BACKPIC_COUNT 8 // 最大背景图片个数
  25665. ///@brief 视频诊断结果上报通用数据
  25666. typedef struct tagNET_VIDEODIAGNOSIS_COMMON_INFO
  25667. {
  25668. DWORD dwSize; // 此结构体大小
  25669. int nDiagnosisID; // 检测通道
  25670. NET_ARRAY stProject; // 计划名称
  25671. NET_ARRAY stTask; // 任务名称
  25672. NET_ARRAY stProfile; // 参数表名称
  25673. NET_ARRAY stDeviceID; // 设备唯一标志
  25674. NET_TIME stStartTime; // 开始时间
  25675. NET_TIME stEndTime; // 结束时间
  25676. int nVideoChannelID; // 视频通道号 前端设备比如DVR,IPC的通道
  25677. NET_STREAM_TYPE emVideoStream; // 视频码流
  25678. NET_VIDEODIAGNOSIS_RESULT_TYPE emResultType; // 诊断结果类型
  25679. BOOL bCollectivityState; // 诊断结果
  25680. NET_VIDEODIAGNOSIS_FAIL_TYPE emFailedCause; // 失败原因
  25681. char szFailedCode[DH_COMMON_STRING_64]; // 失败原因描述
  25682. char szResultAddress[DH_COMMON_STRING_128]; // 诊断结果存放地址,建议使用szResultAddressEx字段
  25683. int nFrameRate; // 码率 单位 kb/s, 每天上报一次
  25684. int nFrameWidth; // 宽 每天上报一次
  25685. int nFrameHeight; // 高 每天上报一次
  25686. int nBackPic; // 背景图片个数
  25687. char szBackPicAddress[MAX_BACKPIC_COUNT][DH_COMMON_STRING_128]; // 背景图片路径
  25688. char szResultAddressEx[DH_COMMON_STRING_256]; // 诊断结果存放地址扩展
  25689. NET_TIME stStreamStartTime; // 流开始时间
  25690. NET_TIME stStreamEndTime; // 流结束时间
  25691. }NET_VIDEODIAGNOSIS_COMMON_INFO;
  25692. ///@brief 对应检测类型(NET_DIAGNOSIS_DITHER) 视频抖动检测结果 -- 画面变化 风吹,晃动,转动包括云台转动
  25693. typedef struct tagNET_VIDEO_DITHER_DETECTIONRESULT
  25694. {
  25695. DWORD dwSize; // 此结构体大小
  25696. int nValue; // 检测结果量化值
  25697. NET_STATE_TYPE emState; // 检测结果状态 一般小于是正常,大于是异常,中间是警告
  25698. int nDuration; // 状态持续时间 检测项持续检测时间 暂时无用
  25699. char szPicUrl[256]; // 异常检测结果图片地址
  25700. }NET_VIDEO_DITHER_DETECTIONRESULT;
  25701. ///@brief 对应检测类型(NET_DIAGNOSIS_STRIATION)视频条纹检测结果 -- 相机受到干扰出现异常条纹
  25702. typedef struct tagNET_VIDEO_STRIATION_DETECTIONRESULT
  25703. {
  25704. DWORD dwSize; // 此结构体大小
  25705. int nValue; // 检测结果量化值
  25706. NET_STATE_TYPE emState; // 检测结果状态
  25707. int nDuration; // 状态持续时间
  25708. char szPicUrl[256]; // 异常检测结果图片地址
  25709. }NET_VIDEO_STRIATION_DETECTIONRESULT;
  25710. ///@brief 对应检测类型(NET_DIAGNOSIS_LOSS)视频丢失检测结果 -- 断电 断线等造成的
  25711. typedef struct tagNET_VIDEO_LOSS_DETECTIONRESULT
  25712. {
  25713. DWORD dwSize; // 此结构体大小
  25714. NET_STATE_TYPE emState; // 检测结果状态
  25715. int nDuration; // 状态持续时间
  25716. char szPicUrl[256]; // 异常检测结果图片地址
  25717. }NET_VIDEO_LOSS_DETECTIONRESULT;
  25718. ///@brief 对应检测类型(NET_DIAGNOSIS_COVER)视频遮挡检测结果 -- 相机被遮挡了
  25719. typedef struct tagNET_VIDEO_COVER_DETECTIONRESULT
  25720. {
  25721. DWORD dwSize; // 此结构体大小
  25722. int nValue; // 检测结果量化值
  25723. NET_STATE_TYPE emState; // 检测结果状态
  25724. int nDuration; // 状态持续时间
  25725. char szPicUrl[256]; // 异常检测结果图片地址
  25726. }NET_VIDEO_COVER_DETECTIONRESULT;
  25727. ///@brief 对应检测类型(NET_DIAGNOSIS_FROZEN)视频冻结检测结果 -- 画面不动多久为冻结
  25728. typedef struct tagNET_VIDEO_FROZEN_DETECTIONRESULT
  25729. {
  25730. DWORD dwSize; // 此结构体大小
  25731. NET_STATE_TYPE emState; // 检测结果状态
  25732. int nDuration; // 状态持续时间
  25733. char szPicUrl[256]; // 异常检测结果图片地址
  25734. }NET_VIDEO_FROZEN_DETECTIONRESULT;
  25735. ///@brief 对应检测类型(NET_DIAGNOSIS_BRIGHTNESS)视频亮度异常检测结果 --以下是相机配置不正确的一些现象检测
  25736. typedef struct tagNET_VIDEO_BRIGHTNESS_DETECTIONRESULT
  25737. {
  25738. DWORD dwSize; // 此结构体大小
  25739. int nValue; // 检测结果量化值
  25740. NET_STATE_TYPE emState; // 检测结果状态
  25741. int nDuration; // 状态持续时间
  25742. char szPicUrl[256]; // 异常检测结果图片地址
  25743. }NET_VIDEO_BRIGHTNESS_DETECTIONRESULT;
  25744. ///@brief 对应检测类型(NET_DIAGNOSIS_CONTRAST)视频对比度异常检测结果
  25745. typedef struct tagNET_VIDEO_CONTRAST_DETECTIONRESULT
  25746. {
  25747. DWORD dwSize; // 此结构体大小
  25748. int nValue; // 检测结果量化值
  25749. NET_STATE_TYPE emState; // 检测结果状态
  25750. int nDuration; // 状态持续时间
  25751. char szPicUrl[256]; // 异常检测结果图片地址
  25752. }NET_VIDEO_CONTRAST_DETECTIONRESULT;
  25753. ///@brief 对应检测类型(NET_DIAGNOSIS_UNBALANCE)视频偏色异常检测结果
  25754. typedef struct tagNET_VIDEO_UNBALANCE_DETECTIONRESULT
  25755. {
  25756. DWORD dwSize; // 此结构体大小
  25757. int nValue; // 检测结果量化值
  25758. NET_STATE_TYPE emState; // 检测结果状态
  25759. int nDuration; // 状态持续时间
  25760. char szPicUrl[256]; // 异常检测结果图片地址
  25761. }NET_VIDEO_UNBALANCE_DETECTIONRESULT;
  25762. ///@brief 对应检测类型(NET_DIAGNOSIS_NOISE)视频噪声异常检测结果
  25763. typedef struct tagNET_VIDEO_NOISE_DETECTIONRESULT
  25764. {
  25765. DWORD dwSize; // 此结构体大小
  25766. int nValue; // 检测结果量化值
  25767. NET_STATE_TYPE emState; // 检测结果状态
  25768. int nDuration; // 状态持续时间
  25769. char szPicUrl[256]; // 异常检测结果图片地址
  25770. }NET_VIDEO_NOISE_DETECTIONRESULT;
  25771. ///@brief 对应检测类型(NET_DIAGNOSIS_BLUR)视频模糊异常检测结果
  25772. typedef struct tagNET_VIDEO_BLUR_DETECTIONRESULT
  25773. {
  25774. DWORD dwSize; // 此结构体大小
  25775. int nValue; // 检测结果量化值
  25776. NET_STATE_TYPE emState; // 检测结果状态
  25777. int nDuration; // 状态持续时间
  25778. char szPicUrl[256]; // 异常检测结果图片地址
  25779. }NET_VIDEO_BLUR_DETECTIONRESULT;
  25780. ///@brief 对应检测类型(NET_DIAGNOSIS_SCENECHANGE)视频场景变化检测结果
  25781. typedef struct tagNET_VIDEO_SCENECHANGE_DETECTIONRESULT
  25782. {
  25783. DWORD dwSize; // 此结构体大小
  25784. int nValue; // 检测结果量化值
  25785. NET_STATE_TYPE emState; // 检测结果状态
  25786. int nDuration; // 状态持续时间
  25787. char szPicUrl[256]; // 异常检测结果图片地址
  25788. }NET_VIDEO_SCENECHANGE_DETECTIONRESULT;
  25789. ///@brief 运动移动检测结果类型
  25790. typedef enum tagEM_PTZ_MOVING_RESULT_TYPE
  25791. {
  25792. EM_PTZ_MOVING_UNKNOWN , // 未知
  25793. EM_PTZ_MOVING_NORMAL , // 检测正常
  25794. EM_PTZ_MOVING_NOTOBEY , // 不按指令运动
  25795. EM_PTZ_MOVING_NOTMOVE , // 不能运动
  25796. EM_PTZ_MOVING_NOTDETECT , // 未做检测
  25797. }EM_PTZ_MOVING_RESULT_TYPE;
  25798. ///@brief 对应检测类型(NET_DIAGNOSIS_PTZ_MOVING)云台移动检测结果
  25799. typedef struct tagNET_PTZ_MOVING_DETECTIONRESULT
  25800. {
  25801. DWORD dwSize; // 此结构体大小
  25802. EM_PTZ_MOVING_RESULT_TYPE emPTZMovingUp; // 向上运动检测结果
  25803. EM_PTZ_MOVING_RESULT_TYPE emPTZMovingDown; // 向下运动检测结果
  25804. EM_PTZ_MOVING_RESULT_TYPE emPTZMovingLeft; // 向左运动检测结果
  25805. EM_PTZ_MOVING_RESULT_TYPE emPTZMovingRight; // 向右运动检测结果
  25806. EM_PTZ_MOVING_RESULT_TYPE emPTZMovingZoomWide; // 变倍(大)运动检测结果
  25807. EM_PTZ_MOVING_RESULT_TYPE emPTZMovingZoomTele; // 变倍(小)运动检测结果
  25808. }NET_PTZ_MOVING_DETECTIONRESULT;
  25809. ///@brief 对应检测类型(NET_DIAGNOSIS_BLACK_WHITE) 黑白图像检测结果
  25810. typedef struct tagNET_BLACK_WHITE_DETECTIONRESULT
  25811. {
  25812. DWORD dwSize; // 此结构体大小
  25813. int nValue; // 检测结果量化值
  25814. NET_STATE_TYPE emState; // 检测结果状态
  25815. int nDuration; // 状态持续时间
  25816. char szPicUrl[256]; // 异常检测结果图片地址
  25817. } NET_BLACK_WHITE_DETECTIONRESULT;
  25818. ///@brief 对应检测类型(NET_DIAGNOSIS_DRAMATIC_CHANGE) 场景剧变检测结果
  25819. typedef struct tagNET_DIAGNOSIS_DRAMATIC_DETECTIONRESULT
  25820. {
  25821. DWORD dwSize; // 此结构体大小
  25822. int nValue; // 检测结果量化值
  25823. NET_STATE_TYPE emState; // 检测结果状态
  25824. int nDuration; // 状态持续时间
  25825. char szPicUrl[256]; // 异常检测结果图片地址
  25826. } NET_DIAGNOSIS_DRAMATIC_DETECTIONRESULT;
  25827. ///@brief 对应检测类型(NET_DIAGNOSIS_VIDEO_DELAY)视频延时检测结果
  25828. typedef struct tagNET_VIDEO_DELAY_DETECTIONRESUL
  25829. {
  25830. DWORD dwSize; // 此结构体大小
  25831. int nSignalDelay; // 信令延时,-1表示检测失败, 单位ms
  25832. int nStreamDelay; // 视频流延时,-1表示检测失败, 单位ms
  25833. int nIFrameDelay; // I帧延时,-1表示检测失败 单位ms
  25834. }NET_VIDEO_DELAY_DETECTIONRESUL;
  25835. ///@brief 一次诊断结果数据
  25836. typedef struct tagNET_DIAGNOSIS_RESULT_HEADER
  25837. {
  25838. DWORD dwSize; // 此结构体大小
  25839. char szDiagnosisType[MAX_PATH]; // 诊断类型,详见dhnetsdk.h中"视频诊断上报结果检测类型定义" 如NET_DIAGNOSIS_DITHER
  25840. int nDiagnosisTypeLen; // 该诊断类型结构体大小
  25841. }NET_DIAGNOSIS_RESULT_HEADER;
  25842. ///@brief cbVideoDiagnosis 回调参数类型
  25843. typedef struct tagNET_REAL_DIAGNOSIS_RESULT
  25844. {
  25845. DWORD dwSize; // 此结构体大小
  25846. NET_VIDEODIAGNOSIS_COMMON_INFO* pstDiagnosisCommonInfo; //视频诊断通用信息
  25847. int nTypeCount; // 诊断结果数据诊断类型个数
  25848. void* pDiagnosisResult; // 一次诊断结果数据,格式如NET_DIAGNOSIS_RESULT_HEADER+诊断类型1+NET_DIAGNOSIS_RESULT_HEADER+诊断类型2+...
  25849. DWORD dwBufSize; // 缓冲长度
  25850. }NET_REAL_DIAGNOSIS_RESULT;
  25851. ///@brief 视频诊断结果上报回调函数
  25852. typedef int (CALLBACK *fRealVideoDiagnosis)(LLONG lDiagnosisHandle, NET_REAL_DIAGNOSIS_RESULT* pDiagnosisInfo, void* pBuf, int nBufLen, LDWORD dwUser);
  25853. ///@brief 接口 CLIENT_StartVideoDiagnosis 的输入参数
  25854. typedef struct tagNET_IN_VIDEODIAGNOSIS
  25855. {
  25856. DWORD dwSize; // 此结构体大小
  25857. int nDiagnosisID; // 视频诊断ID,从0开始
  25858. DWORD dwWaitTime; // 接口超时等待时间
  25859. fRealVideoDiagnosis cbVideoDiagnosis; // 视频诊断结果回调函数
  25860. LDWORD dwUser; // 用户自定义参数
  25861. }NET_IN_VIDEODIAGNOSIS;
  25862. ///@brief 接口 CLIENT_StartVideoDiagnosis 的输出参数
  25863. typedef struct tagNET_OUT_ATTACH_REALDIAGNOSIS
  25864. {
  25865. DWORD dwSize; // 此结构体大小
  25866. LLONG lDiagnosisHandle; // 订阅句柄
  25867. }NET_OUT_VIDEODIAGNOSIS;
  25868. ///@brief 诊断结果状态
  25869. typedef enum tagEM_COLLECTIVITY_STATE
  25870. {
  25871. EM_COLLECTIVITY_STATE_SUCCESSED, // 成功
  25872. EM_COLLECTIVITY_STATE_FAILED, // 失败
  25873. } EM_COLLECTIVITY_STATE;
  25874. ///@brief 接口 CLIENT_StartFindDiagnosisResult 的输入参数
  25875. typedef struct tagNET_IN_FIND_DIAGNOSIS
  25876. {
  25877. DWORD dwSize; // 此结构体大小
  25878. int nDiagnosisID; // 视频诊断ID,从0开始
  25879. DWORD dwWaitTime; // 接口超时等待时间
  25880. NET_ARRAY stuDeviceID; // 设备唯一标志,pArray:NULL表示不使用设备ID查询
  25881. NET_TIME stuStartTime; // 开始时间
  25882. NET_TIME stuEndTime; // 结束时间
  25883. int nVideoChannel; // 视频通道号,-1:所有通道号
  25884. int nTypeCount; // 诊断类型个数,0:不使用诊断类型查询
  25885. NET_ARRAY* pstDiagnosisTypes; // 诊断类型数组,表示需要查询的诊断类型
  25886. // 由用户申请内存,大小为sizeof(NET_ARRAY)*nTypeCount
  25887. char szProjectName[MAX_PATH]; // 计划名称
  25888. int nCollectivityStateNum; // 需要查询的诊断结果状态个数, 为0时表示需要查询的诊断结果类型为成功
  25889. EM_COLLECTIVITY_STATE emCollectivityState[2]; // 需要查询的诊断结果状态数组, 表示需要查询的诊断结果类型
  25890. } NET_IN_FIND_DIAGNOSIS;
  25891. ///@brief 接口 CLIENT_StartFindDiagnosisResult 的输出参数
  25892. typedef struct tagNET_OUT_FIND_DIAGNOSIS
  25893. {
  25894. DWORD dwSize; // 此结构体大小
  25895. LLONG lFindHandle; // 查询句柄
  25896. DWORD dwTotalCount; // 符合条件的总个数
  25897. }NET_OUT_FIND_DIAGNOSIS;
  25898. ///@brief 接口 CLIENT_DoFindDiagnosisResult 的输入参数
  25899. typedef struct tagNET_IN_DIAGNOSIS_INFO
  25900. {
  25901. DWORD dwSize; // 此结构体大小
  25902. int nDiagnosisID; // 视频诊断ID,从0开始
  25903. DWORD dwWaitTime; // 接口超时等待时间
  25904. int nFindCount; // 每次查询的视频诊断结果条数
  25905. int nBeginNumber; // 查询起始序号 0<=beginNumber<= totalCount-1
  25906. }NET_IN_DIAGNOSIS_INFO;
  25907. ///@brief CLIENT_StartRealTimeProject 接口输入参数
  25908. typedef struct tagNET_IN_START_RT_PROJECT_INFO
  25909. {
  25910. DWORD dwSize; // 此结构体大小
  25911. char* pszProjectInfo; // 实时计划信息,通过调用dhconfigsdk.dll中接口CLIENT_PacketData封装得到
  25912. // 对应的封装命令为 CFG_CMD_VIDEODIAGNOSIS_REALPROJECT
  25913. }NET_IN_START_RT_PROJECT_INFO;
  25914. ///@brief CLIENT_StartRealTimeProject 接口输出参数
  25915. typedef struct tagNET_OUT_START_RT_PROJECT_INFO
  25916. {
  25917. DWORD dwSize; // 此结构体大小
  25918. }NET_OUT_START_RT_PROJECT_INFO;
  25919. ///@brief CLIENT_UpdateProjectBackGround 接口输入参数
  25920. typedef struct tagNET_IN_UPDATE_PROJECT_BCKGROUND_INFO
  25921. {
  25922. DWORD dwSize; // 此结构体大小
  25923. char szProjectName[MAX_PATH]; // 计划名,值为""表示更新所有执行计划的背景
  25924. char szTaskName[MAX_PATH]; // 任务名,值为""表示更新所有任务的背景
  25925. char szDeviceID[MAX_PATH]; // 设备唯一标志,值为""表示更新所有设备的背景
  25926. int nChannelID; // 视频通道号,值为-1(此时Device必然不为空)表示更新该设备所有通道的背景
  25927. } NET_IN_UPDATE_PROJECT_BACKGROUND_INFO;
  25928. ///@brief CLIENT_UpdateProjectBackGround 接口输出参数
  25929. typedef struct tagNET_OUT_UPDATE_PROJECT_BACKGROUND_INFO
  25930. {
  25931. DWORD dwSize; // 此结构体大小
  25932. } NET_OUT_UPDATE_PROJECT_BACKGROUND_INFO;
  25933. ///@brief CLIENT_StopRealTimeProject 接口输入参数
  25934. typedef struct tagNET_IN_STOP_RT_PROJECT_INFO
  25935. {
  25936. DWORD dwSize; // 此结构体大小
  25937. char* pszProjectNames; // 计划名称,以&&作为名字的分割符,示例:Project1&&Project2
  25938. }NET_IN_STOP_RT_PROJECT_INFO;
  25939. ///@brief CLIENT_StopRealTimeProject 接口输出参数
  25940. typedef struct tagNET_OUT_STOP_RT_PROJECT_INFO
  25941. {
  25942. DWORD dwSize; // 此结构体大小
  25943. }NET_OUT_STOP_RT_PROJECT_INFO;
  25944. #define MAX_VIDEODIAGNOSIS_PROJECT_NAME_LEN 260 // 视频诊断计划名称最大长度
  25945. #define MAX_VIDEODIAGNOSIS_TASK_NAME_LEN 260 // 视频诊断任务名称最大长度
  25946. ///@brief CLIENT_StartManualDiagnosisProject 接口输入参数
  25947. typedef struct tagNET_IN_START_MANUAL_PROJECT_INFO
  25948. {
  25949. DWORD dwSize; // 此结构体大小
  25950. char szProjectName[MAX_VIDEODIAGNOSIS_PROJECT_NAME_LEN]; // 诊断计划名称
  25951. NET_TIME stuStartTime; // 计划预计的开始时间
  25952. BOOL bIsCycle; // 任务是否循环
  25953. char szTaskName[MAX_VIDEODIAGNOSIS_TASK_NAME_LEN]; // 计划使用的任务名称
  25954. } NET_IN_START_MANUAL_PROJECT_INFO;
  25955. ///@brief CLIENT_StartManualDiagnosisProject 接口输出参数
  25956. typedef struct tagNET_OUT_START_MANUAL_PROJECT_INFO
  25957. {
  25958. DWORD dwSize; // 此结构体大小
  25959. } NET_OUT_START_MANUAL_PROJECT_INFO;
  25960. ///@brief CLIENT_StopManualDiagnosisProject 接口输入参数
  25961. typedef struct tagNET_IN_STOP_MANUAL_PROJECT_INFO
  25962. {
  25963. DWORD dwSize; // 此结构体大小
  25964. char szProjectName[MAX_VIDEODIAGNOSIS_PROJECT_NAME_LEN]; // 诊断计划名称
  25965. } NET_IN_STOP_MANUAL_PROJECT_INFO;
  25966. ///@brief CLIENT_StopManualDiagnosisProject 接口输出参数
  25967. typedef struct tagNET_OUT_STOP_MANUAL_PROJECT_INFO
  25968. {
  25969. DWORD dwSize; // 此结构体大小
  25970. } NET_OUT_STOP_MANUAL_PROJECT_INFO;
  25971. ///@brief 车位灯信息
  25972. typedef struct tagNET_CARPORTLIGHT_INFO
  25973. {
  25974. DWORD dwSize;
  25975. NET_CARPORTLIGHT_TYPE emType; // 车位灯类型
  25976. NET_CARPORTLIGHT_MODE emMode; // 车位灯亮灯方式
  25977. }NET_CARPORTLIGHT_INFO;
  25978. ///@brief 车位灯状态
  25979. typedef struct tagNET_CARPORTLIGHT_STATUS
  25980. {
  25981. DWORD dwSize; // 此结构体大小
  25982. int nLightNum; // 车位灯数
  25983. NET_CARPORTLIGHT_INFO stuLights[DH_MAX_CARPORTLIGHT_NUM]; // 车位灯信息,数组中emType不能重复,一个红灯和一个绿灯
  25984. int nFiringTime; // 状态启动时间,单位秒
  25985. int nHoldTime; // 状态保持时间,单位秒,-1表示无限保持,0表示自行控制
  25986. }NET_CARPORTLIGHT_STATUS;
  25987. ///@brief 接口CLIENT_GetCarPortLightStatus的输入参数
  25988. typedef struct tagNET_IN_GET_CARPORTLIGHT_STATUS
  25989. {
  25990. DWORD dwSize; // 此结构体大小
  25991. int nChannelId; // 通道号
  25992. }NET_IN_GET_CARPORTLIGHT_STATUS;
  25993. ///@brief 接口CLIENT_GetCarPortLightStatus的输出参数
  25994. typedef struct tagNET_OUT_GET_CARPORTLIGHT_STATUS
  25995. {
  25996. DWORD dwSize; // 此结构体大小
  25997. NET_CARPORTLIGHT_STATUS stuLightStatus; // 车位灯状态
  25998. }NET_OUT_GET_CARPORTLIGHT_STATUS;
  25999. ///@brief 接口 CLIENT_SetCarPortLightStatus 的输入参数
  26000. typedef struct tagNET_IN_SET_CARPORTLIGHT_STATUS
  26001. {
  26002. DWORD dwSize; // 此结构体大小
  26003. int nChannelId;
  26004. NET_CARPORTLIGHT_STATUS stuLightStatus; // 车位灯状态
  26005. }NET_IN_SET_CARPORTLIGHT_STATUS;
  26006. ///@brief 接口 CLIENT_SetCarPortLightStatus 的输出参数
  26007. typedef struct tagNET_OUT_SET_CARPORTLIGHT_STATUS
  26008. {
  26009. DWORD dwSize; // 此结构体大小
  26010. }NET_OUT_SET_CARPORTLIGHT_STATUS;
  26011. ///@brief 视频完好率监测结果
  26012. typedef struct tagNET_VIDEO_AVAILABILITY_DETECTIONRESULT
  26013. {
  26014. DWORD dwSize; // 结构体大小
  26015. int nSignalDelay; // 信令延时,-1表示检测失败, 单位ms
  26016. int nStreamDelay; // 视频流延时,-1表示检测失败, 单位ms
  26017. int nIFrameDelay; // I帧延时,-1表示检测失败 单位ms
  26018. }NET_VIDEO_AVAILABILITY_DETECTIONRESULT;
  26019. ///@brief 雪花屏检测
  26020. typedef struct tagNET_VIDEO_SNOWFLAKE_DETECTIONRESULT
  26021. {
  26022. DWORD dwSize; // 结构体大小
  26023. int nValue; // 检测结果量化值
  26024. NET_STATE_TYPE emState; // 检测结果状态
  26025. int nDuration; // 状态持续时间,单位:秒
  26026. char szPicUrl[256]; // 异常检测结果图片地址
  26027. } NET_VIDEO_SNOWFLAKE_DETECTIONRESULT;
  26028. ///@brief 视频算法类型检测
  26029. typedef struct tagNET_VIDEO_ALGORITHMTYPE_DETECTIONRESULT
  26030. {
  26031. DWORD dwSize; // 结构体大小
  26032. BOOL bFaceAlgorithm; // 是否满足目标算法条件
  26033. int nFaceAlgorithmValue; // 目标算法分值
  26034. BOOL bHumanBodyAlgorithm; // 是否满足人体算法条件
  26035. int nHumanBodyAlgorithmValue; // 人体算法分值
  26036. BOOL bVehicleAlgorithm; // 是否满足车辆算法条件
  26037. int nVehicleAlgorithmValue; // 车辆算法分值
  26038. BOOL bPlateNumAlgorithm; // 是否满足车牌算法条件
  26039. int nPlateNumAlgorithmValue; // 车牌算法分值
  26040. } NET_VIDEO_ALGORITHMTYPE_DETECTIONRESULT;
  26041. ///@brief 视频闪频检测
  26042. typedef struct tagNET_VIDEO_FILCKERING_DETECTION_RESULT
  26043. {
  26044. DWORD dwSize; // 结构体大小
  26045. int nValue; // 检测结果量化值
  26046. NET_STATE_TYPE emState; // 检测结果状态
  26047. int nDuration; // 状态持续时间,单位:秒
  26048. char szPicUrl[256]; // 异常检测结果图片地址
  26049. } NET_VIDEO_FILCKERING_DETECTION_RESULT;
  26050. ///@brief 视频丢帧检测
  26051. typedef struct tagNET_VIDEO_LOSS_FRAME_DETECTION_RESULT
  26052. {
  26053. DWORD dwSize; // 结构体大小
  26054. int nValue; // 检测结果量化值
  26055. NET_STATE_TYPE emState; // 检测结果状态
  26056. int nDuration; // 状态持续时间,单位:秒
  26057. char szPicUrl[256]; // 异常检测结果图片地址
  26058. } NET_VIDEO_LOSS_FRAME_DETECTION_RESULT;
  26059. ///@brief 结果数据
  26060. typedef struct tagNET_DEV_VIDEODIAGNOSIS_MULTI_INFO
  26061. {
  26062. DWORD dwSize; // 此结构体大小
  26063. NET_VIDEODIAGNOSIS_COMMON_INFO* pstDiagnosisCommonInfo;//视频诊断通用信息 以下结构体指针需要调用者分配
  26064. BOOL abDither; // 用于表示此次结果中这个诊断项是否有效
  26065. NET_VIDEO_DITHER_DETECTIONRESULT* pstDither; // 视频抖动检测
  26066. BOOL abStration;
  26067. NET_VIDEO_STRIATION_DETECTIONRESULT* pstStration; // 视频条纹检测
  26068. BOOL abLoss;
  26069. NET_VIDEO_LOSS_DETECTIONRESULT* pstLoss; // 视频丢失检测
  26070. BOOL abCover;
  26071. NET_VIDEO_COVER_DETECTIONRESULT* pstCover; // 视频遮挡检测
  26072. BOOL abFrozen;
  26073. NET_VIDEO_FROZEN_DETECTIONRESULT* pstFrozen; // 视频冻结检测
  26074. BOOL abBrightness;
  26075. NET_VIDEO_BRIGHTNESS_DETECTIONRESULT* pstBrightness; // 视频亮度异常检测
  26076. BOOL abContrast;
  26077. NET_VIDEO_CONTRAST_DETECTIONRESULT* pstContrast; // 视频对比度异常检测
  26078. BOOL abUnbalance;
  26079. NET_VIDEO_UNBALANCE_DETECTIONRESULT* pstUnbalance; // 视频偏色检测
  26080. BOOL abNoise;
  26081. NET_VIDEO_NOISE_DETECTIONRESULT* pstNoise; // 视频噪声检测
  26082. BOOL abBlur;
  26083. NET_VIDEO_BLUR_DETECTIONRESULT* pstBlur; // 视频模糊检测
  26084. BOOL abSceneChange;
  26085. NET_VIDEO_SCENECHANGE_DETECTIONRESULT* pstSceneChange; // 视频场景变化检测
  26086. BOOL abVideoDelay;
  26087. NET_VIDEO_DELAY_DETECTIONRESUL* pstVideoDelay; // 视频延迟检测
  26088. BOOL abPTZMoving;
  26089. NET_PTZ_MOVING_DETECTIONRESULT* pstPTZMoving; // 云台操作检测
  26090. BOOL abBlackAndWhite;
  26091. NET_BLACK_WHITE_DETECTIONRESULT* pstBlackAndWhite; // 黑白图像检测
  26092. BOOL abDramaticChange;
  26093. NET_DIAGNOSIS_DRAMATIC_DETECTIONRESULT* pstDramaticChange; // 场景剧变检测
  26094. BOOL abVideoAvailability; // 是否支持视频完好率监测
  26095. NET_VIDEO_AVAILABILITY_DETECTIONRESULT* pstVideoAvailability; // 视频完好率监测结果
  26096. BOOL abSnowflake; // 是否支持雪花屏检测
  26097. NET_VIDEO_SNOWFLAKE_DETECTIONRESULT* pstSnowflake; // 雪花屏检测
  26098. BOOL abAlgorithmType; //是否支持视频算法类型检测结果
  26099. NET_VIDEO_ALGORITHMTYPE_DETECTIONRESULT* pstAlgorithmType; //视频算法类型检测结果
  26100. BOOL abVideoFilckering; //是否支持视频闪频检测
  26101. NET_VIDEO_FILCKERING_DETECTION_RESULT* pstVideoFilckering; //视频闪频检测
  26102. BOOL abVideoLossFrame; //是否支持视频丢帧检测
  26103. NET_VIDEO_LOSS_FRAME_DETECTION_RESULT* pstVideoLossFrame; //视频丢帧检测
  26104. }NET_VIDEODIAGNOSIS_RESULT_INFO;
  26105. ///@brief 接口 CLIENT_DoFindDiagnosisResult 的输出参数
  26106. typedef struct tagNET_OUT_DIAGNOSIS_INFO
  26107. {
  26108. DWORD dwSize; // 此结构体大小
  26109. int nInputNum; // 用户分配的NET_DEV_RESULT_VIDEODIAGNOSIS_INFO个数
  26110. int nReturnNum; // 返回结果个数
  26111. NET_VIDEODIAGNOSIS_RESULT_INFO* pstDiagnosisResult; // 结果数据 结构体指针需要调用者分配
  26112. // 申请内存大小为sizeof(NET_VIDEODIAGNOSIS_RESULT_INFO)*nInputNum
  26113. }NET_OUT_DIAGNOSIS_INFO;
  26114. ///////////////////////////// 主从式设备控制模块 //////////////////////////////////////////////////////
  26115. ///////////////////////////// CLIENT_OperateMasterSlaveDevice接口参数定义 /////////////////////////////////
  26116. #define MASTERSLAVE_CMD_START "masterSlaveTracker.start" // 开启主从式跟踪器工作
  26117. #define MASTERSLAVE_CMD_STOP "masterSlaveTracker.stop" // 停止主从式跟踪器工作
  26118. #define MASTERSLAVE_CMD_MANUALTRACK "masterSlaveTracker.manualSelectObjectTrack" // 手动选定目标跟踪
  26119. #define MASTERSLAVE_CMD_POINTTRACK "masterSlaveTracker.selectPointTrack" // 定点跟踪
  26120. #define MASTERSLAVE_CMD_GETCALIBPOINTS "masterSlaveTracker.getCalibratePoints" // 得到所有标定点
  26121. #define MASTERSLAVE_CMD_CALIBRATE "masterSlaveTracker.calibrate" // 保存标定点
  26122. #define MASTERSLAVE_CMD_ADDCALIBPOINT "masterSlaveTracker.addCalibratePoint" // 增加标定点
  26123. #define MASTERSLAVE_CMD_REMOVECALIBPOINT "masterSlaveTracker.removeCalibratePoint" // 删除标定点
  26124. #define MASTERSLAVE_CMD_MARKMAXZOOM "masterSlaveTracker.markSceneMaxZoom" // 标定场景最大跟踪倍率, 把当前倍率作为最大倍率
  26125. ///@brief 主从式设备点对
  26126. typedef struct __NET_MS_PAIRPOINTS
  26127. {
  26128. int nStructSize;
  26129. DH_POINT stMasterPoint; // 主相机标定点,点的坐标归一化到[0,8191]区间
  26130. DH_POINT stSlavePoint; // 从相机标定点,点的坐标归一化到[0,8191]区间
  26131. }NET_MS_PAIRPOINTS;
  26132. ///@brief MASTERSLAVE_CMD_START命令的输入结构体
  26133. typedef struct __NET_IN_MS_START
  26134. {
  26135. int nStructSize;
  26136. }NET_IN_MS_START;
  26137. ///@brief MASTERSLAVE_CMD_START命令的输出结构体
  26138. typedef struct __NET_OUT_MS_START
  26139. {
  26140. int nStructSize;
  26141. }NET_OUT_MS_START;
  26142. ///@brief MASTERSLAVE_CMD_STOP命令的输入结构体
  26143. typedef struct __NET_IN_MS_STOP
  26144. {
  26145. int nStructSize;
  26146. }NET_IN_MS_STOP;
  26147. ///@brief MASTERSLAVE_CMD_STOP命令的输出结构体
  26148. typedef struct __NET_OUT_MS_STOP
  26149. {
  26150. int nStructSize;
  26151. }NET_OUT_MS_STOP;
  26152. ///@brief MASTERSLAVE_CMD_MANUALTRACK命令的输入结构体
  26153. typedef struct __NET_IN_MS_MANUALTRACK
  26154. {
  26155. int nStructSize;
  26156. DWORD dwObject; // -1 表示整个区域的任意位置物体, >=0表示指定的物体(可以从设备返回智能帧得到)
  26157. }NET_IN_MS_MANUALTRACK;
  26158. ///@brief MASTERSLAVE_CMD_MANUALTRACK命令的输出结构体
  26159. typedef struct __NET_OUT_MS_MANUALTRACK
  26160. {
  26161. int nStructSize;
  26162. }NET_OUT_MS_MANUALTRACK;
  26163. ///@brief MASTERSLAVE_CMD_POINTTRACK命令的输入结构体
  26164. typedef struct __NET_IN_MS_POINTTRACK
  26165. {
  26166. int nStructSize;
  26167. DH_POINT stTrackerPoint; // 跟踪点,点的坐标归一化到[0,8191]区间
  26168. }NET_IN_MS_POINTTRACK;
  26169. ///@brief MASTERSLAVE_CMD_POINTTRACK命令的输出结构体
  26170. typedef struct __NET_OUT_MS_POINTTRACK
  26171. {
  26172. int nStructSize;
  26173. }NET_OUT_MS_POINTTRACK;
  26174. ///@brief MASTERSLAVE_CMD_GETCALIBPOINTS命令的输入结构体
  26175. typedef struct __NET_IN_MS_GETCALIBPOINTS
  26176. {
  26177. int nStructSize;
  26178. }NET_IN_MS_GETCALIBPOINTS;
  26179. ///@brief MASTERSLAVE_CMD_GETCALIBPOINTS命令的输出结构体
  26180. typedef struct __NET_OUT_MS_GETCALIBPOINTS
  26181. {
  26182. int nStructSize;
  26183. int nPointsNum; // 实际标定点数
  26184. NET_MS_PAIRPOINTS stPairPoints[MAX_CALIBPOINTS_NUM]; // 标定坐标点组
  26185. }NET_OUT_MS_GETCALIBPOINTS;
  26186. ///@brief MASTERSLAVE_CMD_CALIBRATE命令的输入结构体
  26187. typedef struct __NET_IN_MS_CALIBRATE
  26188. {
  26189. int nStructSize;
  26190. }NET_IN_MS_CALIBRATE;
  26191. ///@brief MASTERSLAVE_CMD_CALIBRATE命令的输出结构体
  26192. typedef struct __NET_OUT_MS_CALIBRATE
  26193. {
  26194. int nStructSize;
  26195. }NET_OUT_MS_CALIBRATE;
  26196. ///@brief MASTERSLAVE_CMD_ADDCALIBPOINT命令的输入结构体
  26197. typedef struct __NET_IN_MS_ADDCALIBPOINT
  26198. {
  26199. int nStructSize;
  26200. BOOL bSlavePointEn; // 从相机标定点使能位, TURE设置从相机标定点有效;FASLE则无效, 设备自己获取当前的从相机标定点。
  26201. NET_MS_PAIRPOINTS stPairPoints; // 主从相机定标点对
  26202. }NET_IN_MS_ADDCALIBPOINT;
  26203. ///@brief MASTERSLAVE_CMD_ADDCALIBPOINT命令的输出结构体
  26204. typedef struct __NET_OUT_MS_ADDCALIBPOINT
  26205. {
  26206. int nStructSize;
  26207. DH_POINT stPoint; // 从标定点
  26208. }NET_OUT_MS_ADDCALIBPOINT;
  26209. ///@brief MASTERSLAVE_CMD_REMOVECALIBPOINT命令的输入结构体
  26210. typedef struct __NET_IN_MS_REMOVECALIBPOINT
  26211. {
  26212. int nStructSize;
  26213. DH_POINT stPoint; // 主标定点
  26214. }NET_IN_MS_REMOVECALIBPOINT;
  26215. ///@brief MASTERSLAVE_CMD_REMOVECALIBPOINT命令的输出结构体
  26216. typedef struct __NET_OUT_MS_REMOVECALIBPOINT
  26217. {
  26218. int nStructSize;
  26219. }NET_OUT_MS_REMOVECALIBPOINT;
  26220. ///@brief MASTERSLAVE_CMD_MARKMAXZOOM命令输入结构体
  26221. typedef struct __NET_IN_MS_MARKMAXZOOM
  26222. {
  26223. int nStructSize;
  26224. }NET_IN_MS_MARKMAXZOOM;
  26225. ///@brief MASTERSLAVE_CMD_MARKMAXZOOM命令输出结构体
  26226. typedef struct __NET_OUT_MS_MARKMAXZOOM
  26227. {
  26228. int nStructSize;
  26229. }NET_OUT_MS_MARKMAXZOOM;
  26230. ///////////////////////////// CLIENT_OperateCommDevice 接口参数定义 /////////////////////////////////
  26231. #define COMMDEV_GET_EXTERNLDATA "devComm.getExternalData" //获取串口外接数据 用于第三方通用数据
  26232. #define MAX_EXTERN_DATA_LEN 2048
  26233. ///@brief COMMDEV_GET_EXTERNLDATA 输入参数
  26234. typedef struct __COMMDEV_IN_GET_EXTERNDATA
  26235. {
  26236. DWORD dwSize;
  26237. }COMMDEV_IN_GET_EXTERNDATA;
  26238. ///@brief COMMDEV_GET_EXTERNLDATA 输出参数
  26239. typedef struct __COMMDEV_OUT_GET_EXTERNDATA
  26240. {
  26241. DWORD dwSize;
  26242. char szGetData[MAX_EXTERN_DATA_LEN]; //串口外接设备采集数据(数据格式根据项目自定义)
  26243. }COMMDEV_OUT_GET_EXTERNDATA;
  26244. ///////////////////////////// CLIENT_OperateVideoAnalyseDevice 接口参数定义 /////////////////////////////////
  26245. #define NET_SET_MODULESTATE "devVideoAnalyse.setModuleState" // 设置模块状态
  26246. #define NET_TEST_WITH_SCREENPOINTS "devVideoAnalyse.testCalibrateWithScreenPoints" // 根据屏幕坐标测试景深参数,得到的是两点之间的实际距离。在测试之前,需要先完成参数设置。
  26247. #define NET_TEST_WITH_METRICLENGTH "devVideoAnalyse.testCalibrateWithMetricLength" // 根据实际长度、起始点及方向点坐标,测试景深参数
  26248. #define NET_GET_INTERNALOPTIONS "devVideoAnalyse.getInternalOptions" // 获取内部选项
  26249. #define NET_TUNE_INTERNALOPTIONS "devVideoAnalyse.tuneInternalOptions" // 调试内部选项
  26250. #define NET_RESET_INTERNALOPTIONS "devVideoAnalyse.resetInternalOptions" // 复位所有调试内部选项
  26251. #define NET_SET_PTZ_PRESET_STATUS "devVideoAnalyse.setPtzPresetStatus" // 获取预置点信息
  26252. ///@brief 线段类型
  26253. typedef enum tagNET_EM_LINETYPE
  26254. {
  26255. NET_EM_HORIZONTAL,
  26256. NET_EM_VERTICAL,
  26257. }NET_EM_LINETYPE;
  26258. ///@brief 预置点状态枚举
  26259. typedef enum tagEM_DH_PTZ_PRESET_STATUS
  26260. {
  26261. EM_DH_PTZ_PRESET_STATUS_UNKNOWN, // 未知
  26262. EM_DH_PTZ_PRESET_STATUS_REACH, // 预置点到达
  26263. EM_DH_PTZ_PRESET_STATUS_UNREACH, // 预置点未到达
  26264. }EM_DH_PTZ_PRESET_STATUS;
  26265. ///@brief 云台P/T运动状态
  26266. typedef enum tagEM_DH_PTZ_PAN_TILT_STATUS
  26267. {
  26268. EM_DH_PTZ_PAN_TILT_STATUS_UNKNOWN, // 未知
  26269. EM_DH_PTZ_PAN_TILT_STATUS_IDLE, // 空闲状态
  26270. EM_DH_PTZ_PAN_TILT_STATUS_MOVING, // 运动状态
  26271. }EM_DH_PTZ_PAN_TILT_STATUS;
  26272. ///@brief 云台定位信息报警
  26273. typedef struct
  26274. {
  26275. int nChannelID; // 通道号
  26276. int nPTZPan; // 云台水平运动位置,有效范围:[0,3600]
  26277. int nPTZTilt; // 云台垂直运动位置,有效范围:[-1800,1800]
  26278. int nPTZZoom; // 云台光圈变动位置,有效范围:[0,128]
  26279. BYTE bState; // 云台运动状态, 0-未知 1-运动 2-空闲
  26280. BYTE bAction; // 云台动作,255-未知,0-预置点,1-线扫,2-巡航,3-巡迹,4-水平旋转,5-普通移动,6-巡迹录制,7-全景云台扫描,8-热度图
  26281. // 9-精确定位,10-设备校正,11-智能配置,12-云台重启
  26282. BYTE bFocusState; // 云台聚焦状态, 0-未知, 1-运动状态, 2-空闲
  26283. BYTE bEffectiveInTimeSection; // 在时间段内预置点状态是否有效
  26284. // 如果当前上报的预置点是时间段内的预置点,则为1,其他情况为0
  26285. int nPtzActionID; // 巡航ID号
  26286. DWORD dwPresetID; // 云台所在预置点编号
  26287. float fFocusPosition; // 聚焦位置
  26288. BYTE bZoomState; // 云台ZOOM状态,0-未知,1-ZOOM,2-空闲
  26289. BYTE bReserved[3]; // 对齐
  26290. DWORD dwSequence; // 包序号,用于校验是否丢包
  26291. DWORD dwUTC; // 对应的UTC(1970-1-1 00:00:00)秒数。
  26292. EM_DH_PTZ_PRESET_STATUS emPresetStatus; // 预置点位置
  26293. int nZoomValue; // 真实变倍值 当前倍率(扩大100倍表示)
  26294. NET_PTZSPACE_UNNORMALIZED stuAbsPosition;// 云台方向与放大倍数(扩大100倍表示)
  26295. // 第一个元素为水平角度,0-36000;
  26296. // 第二个元素为垂直角度,(-18000)-(18000);
  26297. // 第三个元素为显示放大倍数,0-MaxZoom*100
  26298. int nFocusMapValue; // 聚焦映射值
  26299. int nZoomMapValue; // 变倍映射值
  26300. EM_DH_PTZ_PAN_TILT_STATUS emPanTiltStatus; //云台P/T运动状态
  26301. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  26302. char reserved[696]; // 保留字段
  26303. }DH_PTZ_LOCATION_INFO;
  26304. ///@brief NET_SET_PTZ_PRESET_STATUS
  26305. typedef struct __NET_IN_PTZ_PRESET_STATUS
  26306. {
  26307. DWORD dwSize;
  26308. DH_PTZ_LOCATION_INFO stPTZStatus;
  26309. }NET_IN_PTZ_PRESET_STATUS;
  26310. ///@brief NET_OUT_PTZ_PRESET_STATUS
  26311. typedef struct __NET_OUT_PTZ_PRESET_STATUS
  26312. {
  26313. DWORD dwSize;
  26314. }NET_OUT_PTZ_PRESET_STATUS;
  26315. ///@brief NET_TEST_WITH_SCREENPOINTS
  26316. typedef struct __NET_IN_CALIBRATE_BY_POINTS
  26317. {
  26318. DWORD dwSize; // 此结构体大小
  26319. DH_POINT stStartPoint; // 线段起点坐标 点的坐标坐标归一化到[0,8191]区间。
  26320. DH_POINT stEndPoint; // 终止点坐标 点的坐标坐标归一化到[0,8191]区间。
  26321. NET_EM_LINETYPE emType; // 线段类型 em_Horizontal("Horizontal") 水平线段 em_Vertical("Vertical")垂直线段
  26322. }NET_IN_CALIBRATE_BY_POINTS;
  26323. ///@brief NET_OUT_CALIBRATE_BY_POINTS
  26324. typedef struct __NET_OUT_CALIBRATE_BY_POINTS
  26325. {
  26326. DWORD dwSize; // 此结构体大小
  26327. double dlength; // 两点之间的实际长度 单位为米
  26328. }NET_OUT_CALIBRATE_BY_POINTS;
  26329. ///@brief NET_TEST_WITH_METRICLENGTH
  26330. typedef struct __NET_IN_CALIBRATE_BY_LENGTH
  26331. {
  26332. DWORD dwSize; // 此结构体大小
  26333. double nLength; // 两点之间的实际长度,米为单位
  26334. DH_POINT stStartPoint; // 线段起点坐标,点的坐标坐标归一化到[0,8191]区间。
  26335. DH_POINT stDirection; // 线段方向点坐标,只对垂直线段有效。点的坐标坐标归一化到[0,8191]区间。
  26336. NET_EM_LINETYPE emType; // 线段类型,em_Horizontal("Horizontal") 水平线段 em_Vertical("Vertical")垂直线段
  26337. }NET_IN_CALIBRATE_BY_LENGTH;
  26338. ///@brief NET_OUT_CALIBRATE_BY_LENGTH
  26339. typedef struct __NET_OUT_CALIBRATE_BY_LENGTH
  26340. {
  26341. DWORD dwSize; // 此结构体大小
  26342. DH_POINT stEndPoint; // 线段终点屏幕坐标 点的坐标坐标归一化到[0,8191]区间。
  26343. }NET_OUT_CALIBRATE_BY_LENGTH;
  26344. ///@brief 选项列表
  26345. typedef struct __NET_INTERNAL_OPTION
  26346. {
  26347. DWORD dwSize; // 此结构体大小
  26348. int nIndex; // 选项序号
  26349. NET_ARRAY stKey; // 选项名称,包括‘\0’共256字节,加密数据
  26350. int nValue; // 选项取值
  26351. int nMinValue; // 最小值
  26352. int nMaxValue; // 最大值
  26353. }NET_INTERNAL_OPTION;
  26354. ///@brief 调试内部选项 NET_GET_INTERNALOPTIONS
  26355. typedef struct __NET_IN_GETINTERNAL_OPTIONS
  26356. {
  26357. DWORD dwSize; // 此结构体大小
  26358. }NET_IN_GETINTERNAL_OPTIONS;
  26359. ///@brief 调试内部选项 NET_OUT_GETINTERNAL_OPTIONS
  26360. typedef struct __NET_OUT_GETINTERNAL_OPTIONS
  26361. {
  26362. DWORD dwSize; // 此结构体大小
  26363. int nTotalOptionNum; // 选项个数 最大值查询能力
  26364. int nReturnOptionNum; // 返回的实际选项个数
  26365. NET_INTERNAL_OPTION* pstInternalOption; // 选项列表 调用者分配地址
  26366. // 由用户申请内存,大小为sizeof(NET_INTERNAL_OPTION)*nTotalOptionNum
  26367. }NET_OUT_GETINTERNAL_OPTIONS;
  26368. ///@brief NET_TUNE_INTERNALOPTIONS
  26369. typedef struct __NET_IN_TUNEINTERNAL_OPTION
  26370. {
  26371. DWORD dwSize; // 此结构体大小
  26372. int nOptionCount; // 选项个数
  26373. NET_INTERNAL_OPTION* pstInternalOption; // 选项列表 能力来体现个数
  26374. // 由用户申请内存,大小为sizeof(NET_INTERNAL_OPTION)*nOptionCount
  26375. }NET_IN_TUNEINTERNAL_OPTION;
  26376. ///@brief NET_OUT_TUNEINTERNAL_OPTION
  26377. typedef struct __NET_OUT_TUNEINTERNAL_OPTION
  26378. {
  26379. DWORD dwSize; // 此结构体大小
  26380. }NET_OUT_TUNEINTERNAL_OPTION;
  26381. ///@brief NET_RESET_INTERNALOPTIONS
  26382. typedef struct __NET_IN_RESETINTERNAL_OPTION
  26383. {
  26384. DWORD dwSize; // 此结构体大小
  26385. }NET_IN_RESETINTERNAL_OPTION;
  26386. ///@brief NET_OUT_RESETINTERNAL_OPTION
  26387. typedef struct __NET_OUT_RESETINTERNAL_OPTION
  26388. {
  26389. DWORD dwSize; // 此结构体大小
  26390. }NET_OUT_RESETINTERNAL_OPTION;
  26391. ///@brief NET_SET_MODULESTATE
  26392. typedef enum tagNET_EM_MODULESTATE
  26393. {
  26394. NET_EM_MODULESTATE_OK,
  26395. NET_EM_MODULESTATE_PAUSE,
  26396. }NET_EM_MODULESTATE;
  26397. ///@brief NET_IN_SETMODULESTATE
  26398. typedef struct __NET_IN_SETMODULESTATE
  26399. {
  26400. DWORD dwSize; // 此结构体大小
  26401. NET_EM_MODULESTATE emState; // 0-正常工作,1-暂停,再次切换到正常后画面可能已经发生变化,需要重建背景。
  26402. int nIndex; // 模块编号 -1指所有模块
  26403. }NET_IN_SETMODULESTATE;
  26404. ///@brief NET_OUT_SETMODULESTATE
  26405. typedef struct __NET_OUT_SETMODULESTATE
  26406. {
  26407. DWORD dwSize; // 此结构体大小
  26408. }NET_OUT_SETMODULESTATE;
  26409. /////////////////////////////CLIENT_DeleteDevConfig 接口参数/////////////////////////////////
  26410. ///@brief 选项
  26411. typedef enum tagNET_EM_CONFIGOPTION
  26412. {
  26413. NET_EM_CONFIGOPTION_OK,
  26414. NET_EM_CONFIGOPTION_NEEDRESTART,
  26415. NET_EM_CONFIGOPTION_NEEDREBOOT=2,
  26416. NET_EM_CONFIGOPTION_WRITEFILEERROR=4,
  26417. NET_EM_CONFIGOPTION_CAPSNOTSUPPORT=8,
  26418. NET_EM_CONFIGOPTION_VALIDATEFAILED=16,
  26419. }NET_EM_CONFIGOPTION;
  26420. ///@brief CLIENT_DeleteDevConfig 输入参数
  26421. typedef struct tagNET_IN_DELETECFG
  26422. {
  26423. DWORD dwSize; // 结构体大小
  26424. char* szCommand; // 配置命令
  26425. }NET_IN_DELETECFG;
  26426. ///@brief CLIENT_DeleteDevConfig 输出参数
  26427. typedef struct tagNET_OUT_DELETECFG
  26428. {
  26429. DWORD dwSize; // 结构体大小
  26430. int nError; // 设备返回的错误码
  26431. int nRestart; // 设备是否重启
  26432. DWORD dwOptionMask; // 选项 具体见枚举NET_EM_CONFIGOPTION
  26433. }NET_OUT_DELETECFG;
  26434. /////////////////////////////CLIENT_GetMemberNames 接口参数/////////////////////////////////
  26435. ///@brief CLIENT_GetMemberNames 输入参数
  26436. typedef struct tagNET_IN_MEMBERNAME
  26437. {
  26438. DWORD dwSize; // 结构体大小
  26439. char* szCommand; // 配置命令
  26440. }NET_IN_MEMBERNAME;
  26441. ///@brief CLIENT_GetMemberNames 输出参数
  26442. typedef struct tagNET_OUT_MEMBERNAME
  26443. {
  26444. DWORD dwSize; // 结构体大小
  26445. int nError; // 设备返回的错误码
  26446. int nRestart; // 设备是否重启
  26447. int nTotalNameCount; // 名称个数 通过能力集得到,调用者填写
  26448. int nRetNameCount; // 返回的实际名称个数
  26449. NET_ARRAY* pstNames; // 名称数组 调用者申请内存,个数是nTotalNameCount个
  26450. // 由用户申请内存,大小为sizeof(NET_ARRAY)*nTotalNameCount
  26451. }NET_OUT_MEMBERNAME;
  26452. ////////////////////////////////视频浓缩相关结构体//////////////////////////////////////
  26453. ///@brief 标尺类型
  26454. typedef enum tagNET_EM_STAFF_TYPE
  26455. {
  26456. NET_EM_STAFF_TYPE_ERR,
  26457. NET_EM_STAFF_TYPE_HORIZONTAL, // "Horizontal" 水平线段
  26458. NET_EM_STAFF_TYPE_VERTICAL, // "Vertical" 垂直线段
  26459. NET_EM_STAFF_TYPE_ANY, // "Any" 任意线段
  26460. NET_EM_STAFF_TYPE_CROSS, // "Cross" 垂直面交线段
  26461. }NET_EM_STAFF_TYPE;
  26462. ///@brief 区域类型
  26463. typedef enum tagNET_EM_CALIBRATEAREA_TYPE
  26464. {
  26465. NET_EM_CALIBRATEAREA_TYPE_ERR,
  26466. NET_EM_CALIBRATEAREA_TYPE_GROUD, // "Groud" : 地面,需要N条竖直线段+M条水平线段((N=3,M=1);(N=2,M=2);今后扩展)。
  26467. NET_EM_CALIBRATEAREA_TYPE_HORIZONTAL, // "Horizontal" : 水平面,需要水平面上一点到地面点的投影垂直线段。
  26468. NET_EM_CALIBRATEAREA_TYPE_VERTICAL, // "Vertical" : 垂直面,需要垂直面与地面的交线。
  26469. NET_EM_CALIBRATEAREA_TYPE_ANY, // "Any" 任意平面,N条竖直线段,及每条长度(N=3,及今后扩展)。
  26470. }NET_EM_CALIBRATEAREA_TYPE;
  26471. ///@brief 浓缩后的输出资料子类型
  26472. typedef enum tagNET_EM_OUTPUT_SUB_TYPE
  26473. {
  26474. NET_EM_OUTPUT_SUB_TYPE_ERR,
  26475. NET_EM_OUTPUT_SUB_TYPE_NORMAL, // 普通播放速度(父类型为浓缩视频时有效)
  26476. NET_EM_OUTPUT_SUB_TYPE_SYNOPSIS, // 按浓缩后的播放速度(父类型为浓缩视频时有效),在没有物体时快放,在物体出现时按正常速度播放
  26477. }NET_EM_OUTPUT_SUB_TYPE;
  26478. ///@brief 标尺信息
  26479. typedef struct tagNET_STAFF_INFO
  26480. {
  26481. DH_POINT stuStartLocation; // 起始坐标点
  26482. DH_POINT stuEndLocation; // 终止坐标点
  26483. float nLenth; // 实际长度,单位米
  26484. NET_EM_STAFF_TYPE emType; // 标尺类型
  26485. }NET_STAFF_INFO;
  26486. ///@brief 标定区域,普通场景使用
  26487. typedef struct tagNET_CALIBRATEAREA_INFO
  26488. {
  26489. int nLinePoint; // 水平方向标尺线顶点数
  26490. DH_POINT stuLine[DH_MAX_POLYLINE_NUM]; // 水平方向标尺线
  26491. float fLenth; // 实际长度
  26492. DH_POLY_POINTS stuArea; // 区域
  26493. int nStaffNum; // 垂直标尺数
  26494. NET_STAFF_INFO stuStaffs[DH_MAX_STAFF_NUM]; // 垂直标尺
  26495. NET_EM_CALIBRATEAREA_TYPE emType; // 区域类型
  26496. }NET_CALIBRATEAREA_INFO;
  26497. ///@brief 本地文件信息
  26498. typedef struct tagNET_LOCALFILE_INFO
  26499. {
  26500. DWORD dwSize;
  26501. char szFilePath[MAX_PATH]; // 文件绝对路径
  26502. NET_TIME stuStartTime; // 开始时间(设备本地时间)
  26503. NET_TIME stuEndTime; // 结束时间(设备本地时间)
  26504. UINT nFileLength; // 文件大小, 单位: 字节
  26505. }NET_LOCALFILE_INFO;
  26506. ///@brief 远程文件信息
  26507. typedef struct tagNET_REMOTEFILE_INFO
  26508. {
  26509. DWORD dwSize;
  26510. char szIP[MAX_PATH]; // 远程设备IP
  26511. unsigned int nPort; // 远程设备端口
  26512. char szName[DH_MAX_NAME_LEN]; // 登陆远程设备用户名
  26513. char szPassword[DH_MAX_NAME_LEN]; // 登陆远程设备密码
  26514. BYTE byProtocolType; // 远程设备使用的协议类型,2-私有二代,3-私有三代
  26515. BYTE byReserved[3]; // 字节对齐
  26516. char szFilePath[MAX_PATH]; // 文件绝对路径,byProtocolType为3时有效
  26517. int nStartCluster; // 起始簇号,byProtocolType为2时有效
  26518. int nDriverNo; // 盘号,byProtocolType为2时有效
  26519. NET_TIME stuStartTime; // 开始时间(设备本地时间),优先使用磁盘号和分区号
  26520. NET_TIME stuEndTime; // 结束时间(设备本地时间),优先使用磁盘号和分区号
  26521. int nChannel; // 录像通道号, 优先使用磁盘号和分区号
  26522. NET_STREAM_TYPE emStreamType; // 码流类型, 只支持主码流和辅码流1/ 2
  26523. }NET_REMOTEFILE_INFO;
  26524. ///@brief 文件位置信息
  26525. typedef struct tagNET_FILEPATH_INFO
  26526. {
  26527. DWORD dwSize;
  26528. BOOL bFileType; // TRUE: 服务器本地文件; FALSE: 远程设备文件
  26529. NET_LOCALFILE_INFO stuLocalFile; // 本地文件信息, bFileType==TRUE有效
  26530. NET_REMOTEFILE_INFO stuRemoteFile; // 远程文件信息, bFileType==FALSE有效
  26531. }NET_FILEPATH_INFO;
  26532. ///@brief 全局参数
  26533. typedef struct tagNET_GLOBAL_INFO
  26534. {
  26535. DWORD dwSize;
  26536. char szSceneType[DH_MAX_NAME_LEN]; // 应用场景
  26537. int nStaffNum; // 标尺数
  26538. NET_STAFF_INFO stuStaffs[DH_MAX_STAFF_NUM]; // 标尺
  26539. int nCalibrateAreaNum; // 标定区域数
  26540. NET_CALIBRATEAREA_INFO stuCalibrateArea[DH_MAX_CALIBRATEBOX_NUM]; // 标定区域(若该字段不存在,则以整幅场景为标定区域)
  26541. int nJitter; // 摄像机抖动率 : 摄像机抖动率,取值0-100,反应静止摄像机抖动程度,抖动越厉害,值越大。
  26542. BOOL bDejitter; // 是否开启去抖动模块
  26543. BOOL bSceneTypeEx; // szSceneTypeEx 是否有效
  26544. char szSceneTypeEx[128]; // 应用场景扩展字段
  26545. }NET_GLOBAL_INFO;
  26546. ///@brief 模块参数
  26547. typedef struct tagNET_MODULE_INFO
  26548. {
  26549. DWORD dwSize; // 该结构体大小
  26550. BYTE bSensitivity; // 灵敏度,取值1-10,值越小灵敏度越低
  26551. BYTE bReserved[3];
  26552. int nDetectRegionPoint; // 检测区域顶点数
  26553. DH_POINT stuDetectRegion[DH_MAX_POLYGON_NUM]; // 检测区域
  26554. int nExcludeRegionNum; // 排除区域数
  26555. DH_POLY_POINTS stuExcludeRegion[DH_MAX_EXCLUDEREGION_NUM]; // 排除区域
  26556. }NET_MODULE_INFO;
  26557. ///@brief 物体过滤信息
  26558. typedef struct tagNET_OBJFILTER_INFO
  26559. {
  26560. DWORD dwSize; // 该结构体大小
  26561. NET_TIME stuStartTime; // 开始时间
  26562. NET_TIME stuEndTime; // 结束时间
  26563. char szObjectType[DH_MAX_NAME_LEN]; // 物体类型,支持以下:
  26564. //"Unknown", "Human", "Vehicle",
  26565. //"Fire", "Smoke", "Plate", "HumanFace", "Container", "Animal", "TrafficLight", "PastePaper", "HumanHead", "Entity"
  26566. char szObjectSubType[64]; // 物体子类别,根据不同的物体类型,可以取以下子类型:
  26567. // Vehicle Category:"Unknown" 未知,"Motor" 机动车,"Non-Motor":非机动车,"Bus": 公交车,"Bicycle" 自行车,"Motorcycle":摩托车
  26568. // Plate Category:"Unknown" 未知,"Normal" 蓝牌黑牌,"Yellow" 黄牌,"DoubleYellow" 双层黄尾牌,"Police" 警牌,,"SAR" 港澳特区号牌,"Trainning" 教练车号牌
  26569. // "Personal" 个性号牌,"Agri" 农用牌,"Embassy" 使馆号牌,"Moto" 摩托车号牌,"Tractor" 拖拉机号牌,"Other" 其他号牌
  26570. // "Civilaviation"民航号牌,"Black"黑牌
  26571. // "PureNewEnergyMicroCar"纯电动新能源小车,"MixedNewEnergyMicroCar,"混合新能源小车,"PureNewEnergyLargeCar",纯电动新能源大车
  26572. // "MixedNewEnergyLargeCar"混合新能源大车
  26573. // HumanFace Category:"Normal" 普通目标,"HideEye" 眼部遮挡,"HideNose" 鼻子遮挡,"HideMouth" 嘴部遮挡
  26574. DWORD dwRGBMainColor[DH_MAX_COLOR_NUM]; // 物体主要颜色,物体为人时表示上半身颜色;按字节表示,分别为红、绿、蓝和透明度,例如:RGB值为(0,255,0),透明度为0时, 其值为0x00ff0000
  26575. DWORD dwLowerBodyColor[DH_MAX_COLOR_NUM]; // 物体为人时表示下半身颜色;按字节表示,分别为红、绿、蓝和透明度,例如:RGB值为(0,255,0),透明度为0时, 其值为0x00ff0000
  26576. int nMinSize; // 物体最小尺寸, m
  26577. int nMaxSize; // 物体最大尺寸, m
  26578. int nMinSpeed; // 最小速度, km/h
  26579. int nMaxSpeed; // 最大速度, km/h
  26580. DWORD dwRGBMainColorNum; // 当物体类型为人,标志dwRGBMainColor有效的颜色种类数
  26581. DWORD dwLowerBodyColorNum; // 当物体类型为人且bRGBMainColor==true,标志下半身有效的颜色种类数
  26582. BOOL bRGBMainColor; // true-dwRGBMainColor表示上半身颜色,dwLowerBodyColor表示下半身颜色; false-dwRGBMainColor表示人主要颜色,dwLowerBodyColor无效
  26583. }NET_OBJFILTER_INFO;
  26584. ///@brief 规则参数
  26585. typedef struct tagNET_VIDEOSYNOPSISRULE_INFO
  26586. {
  26587. DWORD dwSize; // 该结构体大小
  26588. BYTE byOutputType; // 浓缩后输出资料的类型,1-视频大纲(一组快照);2-浓缩视频;3-既有快照又有视频
  26589. BYTE byDensity; // 密度, 1-10, 值越大, 浓缩密度越高
  26590. bool bShowTime; // 浓缩结果是否显示时标
  26591. bool bShowBox; // 浓缩结果是否显示物标
  26592. bool bEnableRecordResult; // 浓缩结果是否记录入数据库
  26593. BYTE byTime; // 视频浓缩后时长,单位:分钟
  26594. BYTE byReserved[2];
  26595. NET_OBJFILTER_INFO stuFilter[MAX_OBJFILTER_NUM]; // 物体过滤信息
  26596. DWORD dwObjFilterNum; // 物体过滤信息数目
  26597. /* NET_OUT_QUERY_VIDEOSYNOPSIS和TYPE_CB_VIDEOSYNOPSIS_RULE回调解析时, 按照CFG_CMD_ANALYSERULE命令调用dhconfigsdk.dll中接口CLIENT_ParseData解析,得到对应的结构体,这时要先分配足够内存 */
  26598. /* NET_IN_ADD_VIDEOSYNOPSIS中,按照CFG_CMD_ANALYSERULE命令调用dhconfigsdk.dll中接口CLIENT_PacketData封装,得到此信息 */
  26599. char* szAnalyseRuleInfo; // JSON封装规则信息
  26600. int nBufferLen; // TYPE_CB_VIDEOSYNOPSIS_RULE, NET_OUT_QUERY_VIDEOSYNOPSIS用时,申请的szAnalyseRuleInfo长度
  26601. BOOL bCustomResolution; // 自定义分辨率使能, TRUE-分辨率由emResolution确定, FALSE-根据原始视频分辨率生产浓缩视频
  26602. CAPTURE_SIZE emResolution; // 分辨率, bCustomResolution为TRUE才有效
  26603. BOOL bEnableMaxUsedCPU; // 是否最大化占有需求的CPU资源
  26604. BOOL bEnableSmoothBorder; // 是否平滑目标边框
  26605. NET_EM_OUTPUT_SUB_TYPE emOutputSubType; // 浓缩后输出资料的子类型,详见NET_EM_OUTPUT_SUB_TYPE
  26606. int nExtractFrameRate; // 浓缩视频的抽帧速率 1-32,值越大,抽帧速率越高,客户端呈现的播放速度越快
  26607. // 该字段仅在浓缩后的输出资料子类型(emOutputSubType)是NET_EM_OUTPUT_SUB_TYPE_SYNOPSIS有效
  26608. /*视频浓缩额外信息*/
  26609. int nSynopsisSpeed; // 浓缩速度域值,共分1~10共十个档位,5表示浓缩后只保留5以上速度的物体。是个相对单位
  26610. // 为0时,该字段无效
  26611. int nSynopsisSize; // 浓缩尺寸域值,共分1~10共十个档位,3表示浓缩后只保留3以上大小的物体。是个相对单位
  26612. // 为0时,该字段无效
  26613. BOOL bEnableDirection; // 为True时,对物体运动方向做过滤
  26614. // 为False时,不对物体运动方向做过滤,
  26615. DH_POINT stuSynopsisStartLocation; // 浓缩运动方向,起始坐标点,点的坐标归一化到[0,8191]区间,bEnableDirection为True时有效
  26616. DH_POINT stuSynopsisEndLocation; // 浓缩运动方向,终止坐标点,点的坐标归一化到[0,8191]区间,bEnableDirection为True时有效
  26617. }NET_VIDEOSYNOPSISRULE_INFO;
  26618. ///@brief 添加浓缩视频任务输入参数
  26619. typedef struct tagNET_IN_ADD_VIDEOSYNOPSIS
  26620. {
  26621. DWORD dwSize; // 该结构体大小
  26622. NET_FILEPATH_INFO* pFilePathInfo; // 文件位置信息,用户分配空间
  26623. // 由用户分配内存,大小为sizeof(NET_FILEPATH_INFO)*dwFileCount
  26624. DWORD dwFileCount; // 有效文件个数
  26625. NET_GLOBAL_INFO stuGlobalInfo; // 全局信息
  26626. NET_MODULE_INFO stuModuleInfo; // 模块信息
  26627. NET_VIDEOSYNOPSISRULE_INFO stuRuleInfo; // 规则信息
  26628. unsigned int nWaitTime; // 等待超时时间,单位ms
  26629. }NET_IN_ADD_VIDEOSYNOPSIS;
  26630. ///@brief 添加浓缩视频任务输出参数
  26631. typedef struct tagNET_OUT_ADD_VIDEOSYNOPSIS
  26632. {
  26633. DWORD dwSize; // 该结构体大小
  26634. DWORD* pnTaskID; // TaskID数组,用户分配空间.按顺序一一对应添加任务的文件;等于0表示对应任务添加失败
  26635. DWORD nTaskIDCount; // TaskID个数
  26636. }NET_OUT_ADD_VIDEOSYNOPSIS;
  26637. ///@brief 浓缩视频预处理任务输入参数
  26638. typedef struct tagNET_IN_PRE_HANDLE_VIDEOSYNOPSIS
  26639. {
  26640. DWORD dwSize; // 该结构体大小
  26641. NET_FILEPATH_INFO* pFilePathInfo; // 文件位置信息,用户分配空间,大小为sizeof(NET_FILEPATH_INFO)*dwFileCount
  26642. DWORD dwFileCount; // 有效文件个数
  26643. unsigned int nWaitTime; // 等待超时时间,单位ms
  26644. char szTaskName[DH_COMMON_STRING_64];// 浓缩任务名称,可以为空
  26645. }NET_IN_PRE_HANDLE_VIDEOSYNOPSIS;
  26646. ///@brief 浓缩视频预处理任务输出参数
  26647. typedef struct tagNET_OUT_PRE_HANDLE_VIDEOSYNOPSIS
  26648. {
  26649. DWORD dwSize; // 该结构体大小
  26650. DWORD* pnTaskID; // TaskID数组,用户分配空间.按顺序一一对应添加任务的文件;等于0表示对应任务添加失败
  26651. // 由用户分配内存,大小为sizeof(DWORD)*nTaskIDCount
  26652. DWORD nTaskIDCount; // TaskID个数
  26653. }NET_OUT_PRE_HANDLE_VIDEOSYNOPSIS;
  26654. ///@brief 以视频通道为单位执行视频浓缩预处理任务入参
  26655. typedef struct tagNET_IN_PRETASK_BYCHANNEL
  26656. {
  26657. DWORD dwSize;
  26658. int nChannelCount; // 下发通道个数
  26659. int nChannel[DH_PRETASK_CHANNEL]; // 下发通道
  26660. NET_TIME stuStartTime; // 浓缩录像开始时间
  26661. NET_TIME stuEndTime; // 浓缩录像结束时间
  26662. unsigned int nWaitTime; // 等待超时时间
  26663. }NET_IN_PRETASK_BYCHANNEL;
  26664. ///@brief 以视频通道为单位执行视频浓缩预处理任务出参
  26665. typedef struct tagNET_OUT_PRETASK_BYCHANNEL
  26666. {
  26667. DWORD dwSize;
  26668. int nTaskCount; // 需要申请的预处理任务ID个数
  26669. int nRealCount; // 实际返回的预处理任务ID个数
  26670. DWORD* pnTaskID; // 视频浓缩预处理任务ID, 与通道一一对应,大小为sizeof(DWORD)*nTaskCount
  26671. // 0表示该任务添加创建失败;>0表示成功
  26672. }NET_OUT_PRETASK_BYCHANNEL;
  26673. ///@brief 获取浓缩任务进度入参
  26674. typedef struct tagNET_IN_GET_VIDEOSYNOPSIS_STATE
  26675. {
  26676. DWORD dwSize;
  26677. unsigned int nTaskID; // 视频浓缩任务ID
  26678. unsigned int nWaitTime; // 等待超时时间
  26679. }NET_IN_GET_VIDEOSYNOPSIS_STATE;
  26680. ///@brief 视频浓缩当前状态
  26681. typedef enum tagEM_VIDEOSYNOPSIS_STATE
  26682. {
  26683. EM_VIDEOSYNOPSIS_STATE_UNKNOWN, // 未知
  26684. EM_VIDEOSYNOPSIS_STATE_SUCESSED, // 浓缩成功
  26685. EM_VIDEOSYNOPSIS_STATE_FAILED, // 浓缩失败
  26686. EM_VIDEOSYNOPSIS_STATE_PRETASK, // 在addPreTask阶段
  26687. EM_VIDEOSYNOPSIS_STATE_SYNO // 在addSynoInfo阶段
  26688. }EM_VIDEOSYNOPSIS_STATE;
  26689. ///@brief 获取浓缩任务进度出参
  26690. typedef struct tagNET_OUT_GET_VIDEOSYNOPSIS_STATE
  26691. {
  26692. DWORD dwSize;
  26693. int nProcess; // 单位: %百分数。空闲为-1
  26694. EM_VIDEOSYNOPSIS_STATE emState; // 浓缩任务当前状态
  26695. }NET_OUT_GET_VIDEOSYNOPSIS_STATE;
  26696. ///@brief 开始查询智能录像浓缩历史入参
  26697. typedef struct tagNET_IN_VIDEOSYNOPSIS_STARTFIND
  26698. {
  26699. DWORD dwSize;
  26700. int nChannelCount; // 视频通道个数
  26701. int* pnChannel; // 视频通道号, 大小为sizeof(pnChannel)*nChannelCount;
  26702. NET_TIME stuStartTime; // 开始时间
  26703. NET_TIME stuEndTime; // 结束时间
  26704. unsigned int nWaitTime; // 等待超时时间
  26705. }NET_IN_VIDEOSYNOPSIS_STARTFIND;
  26706. ///@brief 开始查询智能录像浓缩历史出参
  26707. typedef struct tagNET_OUT_VIDEOSYNOPSIS_STARTFIND
  26708. {
  26709. DWORD dwSize;
  26710. int nToken; // 取到的查询令牌
  26711. int nTotalCount; // 符合此次查询条件的结果总条数
  26712. }NET_OUT_VIDEOSYNOPSIS_STARTFIND;
  26713. ///@brief 获取历史搜索结果信息入参
  26714. typedef struct tagNET_IN_VIDEOSYNOPSIS_DOFIND
  26715. {
  26716. DWORD dwSize;
  26717. int nToken; // 查询令牌
  26718. int nBeginNumber; // 查询起始序号,表示从nBeginNumber条记录开始,取nCount条记录返回;
  26719. int nCount; // 每次查询的结果个数
  26720. unsigned int nWaitTime; // 等待超时时间
  26721. }NET_IN_VIDEOSYNOPSIS_DOFIND;
  26722. ///@brief 获取历史搜索结果信息
  26723. typedef struct tagNET_VIDEOSYNOPSIS_DOFIND_INFO
  26724. {
  26725. int nChannel; // 录像通道
  26726. NET_TIME stuStartTime; // 原始视频开始时间
  26727. NET_TIME stuEndTime; // 原始视频结束时间
  26728. int nDisk; // 磁盘号
  26729. int nPartition; // 分区号
  26730. int nCluster; // 簇号
  26731. int nFileLength; // 浓缩视频的时间长度, 单位秒
  26732. int nFileSize; // 浓缩视频文件长度, 下载时需要,单位K
  26733. BOOL bLocked; // 是否被锁定
  26734. NET_TIME stuBeginWriteTime; // 浓缩视频文件开始写入的时间
  26735. NET_TIME stuEndWriteTime; // 浓缩视频文件结束写入的时间
  26736. BYTE byReserved[976]; // 保留字节
  26737. }NET_VIDEOSYNOPSIS_DOFIND_INFO;
  26738. ///@brief 获取历史搜索结果信息出参
  26739. typedef struct tagNET_OUT_VIDEOSYNOPSIS_DOFIND
  26740. {
  26741. DWORD dwSize;
  26742. int nMaxFind; // 要查询的最大条数
  26743. int nRealFound; // 实际查询到的条数
  26744. NET_VIDEOSYNOPSIS_DOFIND_INFO* pstuFindInfo; // 查询信息,由用户申请,大小为sizeof(NET_VIDEOSYNOPSIS_DOFIND_INFO) * nMaxFind
  26745. }NET_OUT_VIDEOSYNOPSIS_DOFIND;
  26746. ///@brief 结束浓缩历史查询入参
  26747. typedef struct tagNET_IN_VIDEOSYNOPSIS_STOPFIND
  26748. {
  26749. DWORD dwSize;
  26750. int nToken; // 查询令牌
  26751. unsigned int nWaitTime; // 等待超时时间
  26752. }NET_IN_VIDEOSYNOPSIS_STOPFIND;
  26753. ///@brief 结束浓缩历史查询出参
  26754. typedef struct tagNET_OUT_VIDEOSYNOPSIS_STOPFIND
  26755. {
  26756. DWORD dwSize;
  26757. }NET_OUT_VIDEOSYNOPSIS_STOPFIND;
  26758. ///@brief 执行浓缩视频任务输入参数
  26759. typedef struct tagNET_IN_RUN_VIDEOSYNOPSIS_TASK
  26760. {
  26761. DWORD dwSize; // 该结构体大小
  26762. DWORD nTaskID; // 任务ID,CLIENT_PreHandleVideoSynopsisTask接口输出函数返回
  26763. NET_GLOBAL_INFO stuGlobalInfo; // 全局信息
  26764. NET_MODULE_INFO stuModuleInfo; // 模块信息
  26765. NET_VIDEOSYNOPSISRULE_INFO stuRuleInfo; // 规则信息
  26766. unsigned int nWaitTime; // 等待超时时间,单位ms
  26767. }NET_IN_RUN_VIDEOSYNOPSIS_TASK;
  26768. ///@brief 执行浓缩视频任务输出参数
  26769. typedef struct tagNET_OUT_RUN_VIDEOSYNOPSIS_TASK
  26770. {
  26771. DWORD dwSize; // 该结构体大小
  26772. DWORD nPlayID; // 回放ID,等于0表示接口失败,否则传入CLIENT_PlayBackBySynopsisFile接口用于回放视频
  26773. DWORD nTime; // 浓缩视频时长,单位:秒
  26774. }NET_OUT_RUN_VIDEOSYNOPSIS_TASK;
  26775. ///@brief 暂停视频浓缩任务输入参数
  26776. typedef struct tagNET_IN_PAUSE_VIDEOSYNOPSIS
  26777. {
  26778. DWORD dwSize; // 该结构体大小
  26779. BOOL bPause; // TRUE-表示暂停任务 FALSE-表示恢复任务
  26780. DWORD* pnTaskID; // TaskID数组,用户分配空间,大小为sizeof(DWORD)*nTaskIDCount
  26781. DWORD nTaskIDCount; // TaskID个数
  26782. DWORD nWaitTime; // 等待超时时间,单位ms
  26783. }NET_IN_PAUSE_VIDEOSYNOPSIS;
  26784. ///@brief 要移除的任务类型
  26785. typedef enum tagNET_SYNOPSIS_REMOVE_TYPE
  26786. {
  26787. EM_SYNOPSIS_REMOVE_UNKNOW =0 , // 未知
  26788. EM_SYNOPSIS_REMOVE_PRETASK , // 预处理任务
  26789. EM_SYNOPSIS_REMOVE_SYNO , // 浓缩任务
  26790. }NET_SYNOPSIS_REMOVE_TYPE;
  26791. ///@brief 移除视频浓缩任务输入参数
  26792. typedef struct tagNET_IN_REMOVE_VIDEOSYNOPSIS
  26793. {
  26794. DWORD dwSize; // 该结构体大小
  26795. DWORD* pnTaskID; // TaskID数组,用户分配空间,大小为sizeof(DWORD)*nTaskIDCount
  26796. DWORD nTaskIDCount; // TaskID个数
  26797. DWORD nWaitTime; // 等待超时时间,单位ms
  26798. NET_SYNOPSIS_REMOVE_TYPE emRemoveType; // 要移除的任务类型
  26799. }NET_IN_REMOVE_VIDEOSYNOPSIS;
  26800. ///@brief 视频浓缩返回的物体信息
  26801. typedef struct tagNET_REAL_SYNOPSIS_OBJECT_INFO
  26802. {
  26803. DWORD dwSize;
  26804. DWORD dwTaskID; // 当前物体对应的任务ID
  26805. DH_MSG_OBJECT_EX2 stuObjectInfo; // 物体具体信息
  26806. }NET_REAL_SYNOPSIS_OBJECT_INFO;
  26807. ///@brief 视频浓缩进度状态
  26808. typedef struct tagNET_REAL_SYNOPSIS_STATE_INFO
  26809. {
  26810. DWORD dwSize;
  26811. DWORD dwTaskID; // 任务ID
  26812. int nObjectNum; // 目前浓缩过程中已发现的物体数量
  26813. int nTaolProgress; // 当前浓缩源(整个过程的,含下载、准备、浓缩)的完成进度,0~100
  26814. char szState[DH_MAX_SYNOPSIS_STATE_NAME];// 对应视频浓缩状态,"Downloading"-正在下载","Synopsising"-正在浓缩",
  26815. // "DownloadFailed"-下载失败","DownloadSucceeded"-下载成功
  26816. // "SynopsisFailed"-浓缩失败","Succeeded"-浓缩成功
  26817. // "DownloadPause"-下载暂停,"SynopsisPause"-浓缩暂停
  26818. int nProgressOfCurrentState; // 当前浓缩步骤对应的完成进度,0~100
  26819. char szFailedCode[DH_MAX_STRING_LEN]; // 失败码,szState="SynopsisFailed"有效
  26820. // "OutOfMemory" 内存不足;
  26821. // "TooMany_TargetInVideo" 整个视频目标数过多;
  26822. // "InvalidFilePointer" 文件指针无效;
  26823. // "InvalidFilePath" 文件路径无效;
  26824. // "CreateDirectoryFailed" 创建文件夹路径失败;
  26825. // "WriteDataFailed" 写Tube中间文件失败
  26826. // "DataSizeTooLarge" Tube文件太大
  26827. // "Detect_Nothing" 场景中无运动目标
  26828. // "OpenDataFailed" 打开中间文件失败
  26829. // "InvalidSynopsisBackgroud" 浓缩背景无效
  26830. // "ColorRetrieval" 错误的颜色检索配置
  26831. // "UnsupportRuleType" 不支持的规则类型
  26832. // "RuleNumberExceedLimit" 规则数超限
  26833. // "NoFunctionCfgInfo" 指定了相应功能但没有配置信息
  26834. // "FunctionNumberExceedLimit" 每条规则的功能数目数量超限
  26835. // "PointsExceedLimit" 线或者区域的点数超限
  26836. // "BadFunctionType" 错误的功能类型
  26837. // "RulePointNumber" 规则点数错误
  26838. // "MaskRegionNumberExceedLimit" 屏蔽区域数量超限
  26839. // "CameraSceneSwitch" 相机场景切换
  26840. // "TooManyTargeInFrame" 单帧中目标数过多
  26841. // "InalidSynopsisDesity" 浓缩密度无效
  26842. // "ExtrackColorFeatureFailed" 提取颜色特征失败
  26843. // "JpegEncodeFrameFailed" Jpeg编码失败
  26844. // "JpegParamRestFailed" Jpeg重置编码参数失败
  26845. // "JpegDecodeFrameFailed" Jpeg解码失败
  26846. // "RetrieveObjectIdInvalid" 检索目标ID无效
  26847. // "RetrieveImageInvalid" 检索图像无效
  26848. // "NetworkAnomaly" 映射盘网络异常
  26849. // "ObjectNumberLimit" 超过分析目标数目限制
  26850. // "CreateChannelFailed" 创建通道失败
  26851. // "ReadUGFileFailed" 读取UG文件失败
  26852. // "GetSynopsisInfoFailed" 获取浓缩视频信息失败
  26853. // "ObjectNumberExceedLimit" 场景中目标数目超过限制
  26854. // "RebuildBackgroudFailed" 重建背景失败
  26855. // "NotExistMiddleFile" 中间文件不存在
  26856. // "NotExistSourceFile" 原始文件不存在
  26857. // "NotDog" 没有加密狗
  26858. // "NotEnoughFreeDisk" 磁盘空间不够
  26859. // "StartDecodeFail" 开始解码失败
  26860. // "DecodeTimeOut" 解码等待超时
  26861. // "EncodeTimeOut" 编码等待超时
  26862. // "ExactTimeOut" 提取快照等待超时
  26863. // "ReadMidlleFileFail" 读取中间文件失败
  26864. // "ExactPictureFail" 提取图片失败
  26865. char szPicPath[DH_COMMON_STRING_512]; // 预处理文件提取到的快照 文件路径
  26866. // 支持HTTP URL表示
  26867. // 支持FTP URL表示
  26868. // 支持服务器本地路径
  26869. // a)"C:/pic/1.jpg"
  26870. // b)"/mnt//2010/8/11/dav/15:40:50.jpg"
  26871. int nMaxTime; // 支持浓缩视频最大时间长度,单位 秒
  26872. int nMinTime; // 支持浓缩视频最小时间长度,单位 秒
  26873. char szVideoPath[DH_COMMON_STRING_512]; // 浓缩录像路径, 当前面的浓缩状态szState 为Succeeded 时有效
  26874. }NET_REAL_SYNOPSIS_STATE_INFO;
  26875. ///@brief 视频浓缩物体信息实时回调函数
  26876. typedef int (CALLBACK *fVideoSynopsisObjData)(LLONG lRealLoadHandle, NET_REAL_SYNOPSIS_OBJECT_INFO* pSynopsisObjectInfo, void* pBuf, int nBufLen, LDWORD dwUser, void* pReserved);
  26877. ///@brief 视频浓缩进度状态实时回调函数
  26878. typedef int (CALLBACK *fVideoSynopsisState)(LLONG lRealLoadHandle, NET_REAL_SYNOPSIS_STATE_INFO* pSynopsisStateInfos, int nInfoCount, LDWORD dwUser, void* pReserved);
  26879. ///@brief CLIENT_RealLoadObjectData接口参数定义
  26880. typedef struct tagNET_IN_REALLOAD_OBJECTDATA
  26881. {
  26882. DWORD dwSize; // 结构体大小
  26883. int nTaskIDNum; // 任务ID个数
  26884. DWORD *pTaskIDs; // 具体任务ID,由用户分配内存,大小为sizeof(DWORD)*nTaskIDNum
  26885. BOOL bNeedPicFile; // 是否下载对应的图片文件
  26886. int nWaitTime; // 等待时间,单位ms
  26887. fVideoSynopsisObjData cbVideoSynopsisObjData; // 视频浓缩物体信息实时回调函数指针
  26888. LDWORD dwUser;
  26889. }NET_IN_REALLOAD_OBJECTDATA;
  26890. ///@brief CLIENT_RealLoadObjectData接口参数定义
  26891. typedef struct tagNET_OUT_REALLOAD_OBJECTDATA
  26892. {
  26893. DWORD dwSize; // 结构体大小
  26894. LLONG lRealLoadHandle; // 接口返回的订阅句柄,可唯一标识某个订阅
  26895. }NET_OUT_REALLOAD_OBJECTDATA;
  26896. ///@brief CLIENT_StopLoadObjectData接口参数定义
  26897. typedef struct tagNET_IN_STOPLOAD_OBJECTDATA
  26898. {
  26899. DWORD dwSize;
  26900. int nTackIDNum; // 任务ID个数
  26901. DWORD *pTaskIDs; // 具体任务ID, 由用户分配内存,大小为sizeof(DWORD)*nTaskIDNum
  26902. }NET_IN_STOPLOAD_OBJECTDATA;
  26903. ///@brief CLIENT_RealLoadSynopsisState接口参数定义
  26904. typedef struct tagNET_IN_REALLAOD_SYNOPSISSTATE
  26905. {
  26906. DWORD dwSize; // 结构体大小
  26907. int nTaskIDNum; // 任务ID个数, 0 表示订阅全部
  26908. DWORD *pTaskIDs; // 具体任务ID,由用户申请内存,大小为sizeof(DWORD)*nTaskIDNum
  26909. int nWaitTime; // 等待时间,单位ms
  26910. fVideoSynopsisState cbVideoSynopsisState; // 视频浓缩物体信息实时回调函数指针
  26911. LDWORD dwUser;
  26912. }NET_IN_REALLAOD_SYNOPSISSTATE;
  26913. ///@brief CLIENT_RealLoadSynopsisState接口参数定义
  26914. typedef struct tagNET_OUT_REALLOAD_SYNOPSISSTATE
  26915. {
  26916. DWORD dwSize; // 结构体大小
  26917. LLONG lRealLoadHandle; // 接口返回的下载句柄,可唯一标识某个下载
  26918. }NET_OUT_REALLOAD_SYNOPSISSTATE;
  26919. ///@brief CLIENT_StopLoadSynopsisState接口参数定义
  26920. typedef struct tagNET_IN_STOPLOAD_SYNOPSISSTATE
  26921. {
  26922. DWORD dwSize;
  26923. int nTackIDNum; // 任务ID个数
  26924. DWORD *pTaskIDs; // 具体任务ID,由用户申请内存,大小为sizeof(DWORD)*nTaskIDNum
  26925. }NET_IN_STOPLOAD_SYNOPSISSTATE;
  26926. ///@brief 浓缩视频信息的查找类型
  26927. typedef enum tagEM_VIDEOSYNOPSIS_QUERY_TYPE
  26928. {
  26929. EM_VIDEOSYNOPSIS_TASK, // 任务信息
  26930. EM_VIDEOSYNOPSIS_OBJ, // 物体对应的快照
  26931. }EM_VIDEOSYNOPSIS_QUERY_TYPE;
  26932. ///@brief 查询浓缩视频的任务信息的条件
  26933. typedef struct tagNET_QUERY_VSTASK_INFO
  26934. {
  26935. DWORD dwSize; // 该结构体大小
  26936. DWORD dwTaskID; // 该任务ID,为0时表示查询所有任务
  26937. }NET_QUERY_VSTASK_INFO;
  26938. ///@brief 浓缩物体颜色信息, 物体相对于某一颜色的相似度
  26939. typedef struct tagNET_VSO_COLORSIMILAR_INFO
  26940. {
  26941. int nRed; // 红色相似度, 范围0到100, 0表示不关心该颜色
  26942. int nYellow; // 黄色相似度, 范围0到100, 0表示不关心该颜色
  26943. int nGreen; // 绿色相似度, 范围0到100, 0表示不关心该颜色
  26944. int nCyan; // 青色相似度, 范围0到100, 0表示不关心该颜色
  26945. int nBlue; // 蓝色相似度, 范围0到100, 0表示不关心该颜色
  26946. int nPurple; // 紫色相似度, 范围0到100, 0表示不关心该颜色
  26947. int nBlack; // 黑色相似度, 范围0到100, 0表示不关心该颜色
  26948. int nWhite; // 白色相似度, 范围0到100, 0表示不关心该颜色
  26949. BYTE byReserved[512]; // 保留字节
  26950. } NET_VSO_COLORSIMILAR_INFO;
  26951. ///@brief 查询浓缩视频任务中物体信息的条件
  26952. typedef struct tagNET_QUERY_VSOBJECT_INFO
  26953. {
  26954. DWORD dwSize; // 该结构体大小
  26955. DWORD* pdwTaskID; // 物体所在任务的ID,为-1表示查询所有任务
  26956. DWORD dwTaskIDCount; // 有效的任务数目
  26957. DH_MSG_OBJECT stuObjInfo; // 物体信息,objectID为非0时表示查询该任务中所有物体
  26958. int nSpeed; // 物体速度, 单位为km/h, -1表示不关心速度
  26959. int nDirection; // 目标方向, 单位度, 范围为-1到360, 12点钟方向为0, 顺时针旋转, -1表示不关心方向
  26960. NET_TIME_EX stuStartTime; // 开始时间(设备本地时间)
  26961. NET_TIME_EX stuEndTime; // 结束时间(设备本地时间)
  26962. NET_VSO_COLORSIMILAR_INFO stuColorSimilarInfo; // 浓缩物体颜色信息, 物体相对于某一颜色的相似度
  26963. }NET_QUERY_VSOBJECT_INFO;
  26964. ///@brief --CLIENT_QueryVideoSynopsisInfo接口输入参数定义
  26965. typedef struct tagNET_IN_QUERY_VIDEOSYNOPSIS
  26966. {
  26967. DWORD dwSize; // 该结构体大小
  26968. EM_VIDEOSYNOPSIS_QUERY_TYPE emQueryType; // 查找类型
  26969. DWORD dwCount; // 查询的条数
  26970. DWORD dwBeginNumber; // 查询起始序号
  26971. void* pQueryInfo; // 查询条件信息,用户分配空间;
  26972. // 如果emQueryType==EM_VIDEOSYNOPSIS_TASK,对应NET_QUERY_VSTASK_INFO,大小为sizeof(NET_QUERY_VSTASK_INFO)*dwCount
  26973. // 如果emQueryType==EM_VIDEOSYNOPSIS_OBJ,对应NET_QUERY_VSOBJECT_INFO,大小为sizeof(NET_QUERY_VSOBJECT_INFO)*dwCount
  26974. DWORD dwWaitTime; // 等待超时时间,单位ms
  26975. }NET_IN_QUERY_VIDEOSYNOPSIS;
  26976. ///@brief 查询到的每个浓缩视频任务的信息
  26977. typedef struct tagNET_VSTASK_INFO
  26978. {
  26979. DWORD dwSize; // 该结构体大小
  26980. DWORD dwTaskID; // 任务ID
  26981. NET_MODULE_INFO stuModuleInfo; // 模块信息
  26982. NET_VIDEOSYNOPSISRULE_INFO stuRuleInfo; // 任务的规则信息
  26983. NET_GLOBAL_INFO stuGlobalInfo; // 全局参数
  26984. NET_TIME stuCreateTime; // 任务的创建时间
  26985. char szCurrState[DH_MAX_SYNOPSIS_STATE_NAME]; // 当前视频浓缩状态,"Downloading"-正在下载","Synopsising"-正在浓缩",
  26986. // "DownloadFailed"-下载失败","DownloadSucceeded"-下载成功
  26987. // "SynopsisFailed"-浓缩失败","Succeeded"-浓缩成功
  26988. // "DownloadPause"-下载暂停,"SynopsisPause"-浓缩暂停
  26989. char szCreateUser[DH_MAX_NAME_LEN]; // 创建任务的用户
  26990. int nProgressOfCurrentState; // 当前浓缩步骤对应的完成进度,0~100
  26991. char szLocalFilePath[MAX_PATH]; // 本地文件路径或远端视频源文件下载后在本地的路径
  26992. int nObjectNum; // 目前浓缩过程中已发现的物体数量
  26993. NET_FILEPATH_INFO stuVideoSourceFilePath; // 源视频文件路径
  26994. NET_FILEPATH_INFO stuSynopsisVideoFilePath; // 浓缩视频文件路径
  26995. char szFailedCode[DH_MAX_STRING_LEN]; // 浓缩视频失败错误码,szCurrState为"SynopsisFailed"时有效
  26996. // "OutOfMemory" 内存不足;
  26997. // "TooMany_TargetInVideo" 整个视频目标数过多;
  26998. // "InvalidFilePointer" 文件指针无效;
  26999. // "InvalidFilePath" 文件路径无效;
  27000. // "CreateDirectoryFailed" 创建文件夹路径失败;
  27001. // "WriteDataFailed" 写Tube中间文件失败
  27002. // "DataSizeTooLarge" Tube文件太大
  27003. // "Detect_Nothing" 场景中无运动目标
  27004. // "OpenDataFailed" 打开中间文件失败
  27005. // "InvalidSynopsisBackgroud" 浓缩背景无效
  27006. // "ColorRetrieval" 错误的颜色检索配置
  27007. // "UnsupportRuleType" 不支持的规则类型
  27008. // "RuleNumberExceedLimit" 规则数超限
  27009. // "NoFunctionCfgInfo" 指定了相应功能但没有配置信息
  27010. // "FunctionNumberExceedLimit" 每条规则的功能数目数量超限
  27011. // "PointsExceedLimit" 线或者区域的点数超限
  27012. // "BadFunctionType" 错误的功能类型
  27013. // "RulePointNumber" 规则点数错误
  27014. // "MaskRegionNumberExceedLimit" 屏蔽区域数量超限
  27015. // "CameraSceneSwitch" 相机场景切换
  27016. // "TooManyTargeInFrame" 单帧中目标数过多
  27017. // "InalidSynopsisDesity" 浓缩密度无效
  27018. // "ExtrackColorFeatureFailed" 提取颜色特征失败
  27019. // "JpegEncodeFrameFailed" Jpeg编码失败
  27020. // "JpegParamRestFailed" Jpeg重置编码参数失败
  27021. // "JpegDecodeFrameFailed" Jpeg解码失败
  27022. // "RetrieveObjectIdInvalid" 检索目标ID无效
  27023. // "RetrieveImageInvalid" 检索图像无效
  27024. // "NetworkAnomaly" 映射盘网络异常
  27025. // "ObjectNumberLimit" 超过分析目标数目限制
  27026. // "CreateChannelFailed" 创建通道失败
  27027. // "ReadUGFileFailed" 读取UG文件失败
  27028. // "GetSynopsisInfoFailed" 获取浓缩视频信息失败
  27029. // "ObjectNumberExceedLimit" 场景中目标数目超过限制
  27030. // "RebuildBackgroudFailed" 重建背景失败
  27031. // "NotExistMiddleFile" 中间文件不存在
  27032. // "NotExistSourceFile" 原始文件不存在
  27033. // "NotDog" 没有加密狗
  27034. // "NotEnoughFreeDisk" 磁盘空间不够
  27035. // "StartDecodeFail" 开始解码失败
  27036. // "DecodeTimeOut" 解码等待超时
  27037. // "EncodeTimeOut" 编码等待超时
  27038. // "ExactTimeOut" 提取快照等待超时
  27039. // "ReadMidlleFileFail" 读取中间文件失败
  27040. // "ExactPictureFail" 提取图片失败
  27041. char szTaskName[DH_COMMON_STRING_64]; // 浓缩任务名称
  27042. }NET_VSTASK_INFO;
  27043. ///@brief 浓缩视频任务中每个物体信息
  27044. typedef struct tagNET_VSOBJECT_INFO
  27045. {
  27046. DWORD dwSize; // 该结构体大小
  27047. DWORD dwTaskID; // 物体对应任务ID
  27048. DH_MSG_OBJECT stuObjInfo; // 物体信息,建议使用stuObjInfoEx
  27049. NET_FILEPATH_INFO stuFilePathInfo; // 物体对应的文件信息
  27050. DWORD dwFileLength; // 快照文件的字节数大小
  27051. int nDirection; // 目标方向, 单位度, 范围有效值[0,360], -1表示不关心方向, 12点钟方向为0, 顺时针旋转
  27052. DH_MSG_OBJECT_EX2 stuObjInfoEx; // 物体信息扩展
  27053. }NET_VSOBJECT_INFO;
  27054. ///@brief --CLIENT_QueryVideoSynopsisInfo接口输出参数定义
  27055. typedef struct tagNET_OUT_QUERY_VIDEOSYNOPSIS
  27056. {
  27057. DWORD dwSize; // 该结构体大小
  27058. DWORD dwTotalCount; // 符合此次查询条件的结果总条数
  27059. DWORD dwFoundCount; // 本次查询返回的条数
  27060. void* pResult; // 返回的信息,用户分配空间
  27061. // 如果emQueryType==EM_VIDEOSYNOPSIS_TASK,对应NET_VSTASK_INFO,大小为sizeof(NET_VSTASK_INFO)*dwMaxCount
  27062. // 如果emQueryType==EM_VIDEOSYNOPSIS_OBJ,对应NET_VSOBJECT_INFO,大小为sizeof(NET_VSOBJECT_INFO)*dwMaxCount
  27063. DWORD dwMaxCount; // 用户希望的结果的个数
  27064. }NET_OUT_QUERY_VIDEOSYNOPSIS;
  27065. ///@brief CLIENT_FindSynopsisFile接口参数定义
  27066. ///@brief 浓缩相关文件查询类型
  27067. typedef enum tagNET_EM_QUERY_SYNOPSIS_FILE
  27068. {
  27069. DH_FILE_QUERY_VIDEO, // 普通录像文件信息,对应查询结构体:NET_SYNOPSIS_QUERY_VIDEO_PARAM, 返回结果结构体:NET_SYNOPSISFILE_VIDEO_INFO
  27070. DH_FILE_QUERY_SYNOPSISVIDEO, // 浓缩视频信息, 对应查询结构体:NET_QUERY_SYNOPSISVIDEO_PARAM,返回结果结构体:NET_QUERY_SYNOPSISVIDEO_INFO
  27071. }NET_EM_QUERY_SYNOPSIS_FILE;
  27072. ///@brief 查询条件
  27073. typedef struct __NET_SYNOPSIS_QUERY_VIDEO_PARAM
  27074. {
  27075. DWORD dwSize;
  27076. DWORD dwQueryMask; // 查询类型掩码, 按照从低到高位,第一位按时间段、第二位按文件路径
  27077. NET_TIME stuStartTime; // 开始时间
  27078. NET_TIME stuEndTime; // 结束时间
  27079. char szFilePath[DH_MAX_SYNOPSIS_QUERY_FILE_COUNT][MAX_PATH]; // 待查询文件的绝对路径
  27080. DWORD dwFileCount; // 待查询文件的个数
  27081. }NET_SYNOPSIS_QUERY_VIDEO_PARAM;
  27082. ///@brief 具体浓缩任务信息
  27083. typedef struct
  27084. {
  27085. DWORD dwSize;
  27086. int nTaskId; // 任务ID
  27087. DWORD dwOutPutTypeMask; // 当前任务的输出类型,第1位.视频大纲(一组快照);第2位浓缩视频
  27088. char szCurrentState[DH_MAX_SYNOPSIS_STATE_NAME]; // 当前浓缩状态
  27089. }NET_VIDEOSYNOPSIS_TASK_INFO;
  27090. ///@brief DH_FILE_QUERY_VIDEO 返回的录像文件信息
  27091. typedef struct
  27092. {
  27093. DWORD dwSize;
  27094. unsigned int nchannelId; // 通道号
  27095. char szFilePath[MAX_PATH]; // 文件路径
  27096. unsigned int nFileLenth; // 文件长度,字节为单位,该字段废弃,请使用nFileLengthEx
  27097. NET_TIME stuStarttime; // 开始时间
  27098. NET_TIME stuEndtime; // 结束时间
  27099. unsigned int nWorkDirSN; // 工作目录编号
  27100. unsigned int nCluster; // 簇号
  27101. BYTE bHint; // 文件定位索引
  27102. BYTE bDriveNo; // 磁盘号
  27103. BYTE bReserved[18]; // 保留字段
  27104. int nTaskInfoNum; // 录像文件对应的浓缩任务个数
  27105. NET_VIDEOSYNOPSIS_TASK_INFO stuTaskInfo[16]; // 具体浓缩任务信息
  27106. /*频浓缩文件相关信息*/
  27107. char szSynopsisPicPath[DH_COMMON_STRING_512]; // 预处理文件提取到的快照 文件路径
  27108. // 支持HTTP URL表示
  27109. // 支持FTP URL表示
  27110. // 支持服务器本地路径
  27111. // a)"C:/pic/1.jpg"
  27112. // b)"/mnt//2010/8/11/dav/15:40:50.jpg"
  27113. int nSynopsisMaxTime; //支持浓缩视频最大时间长度,单位 秒
  27114. int nSynopsisMinTime; //支持浓缩视频最小时间长度,单位 秒
  27115. INT64 nFileLengthEx; //文件长度扩展,支持文件长度大于4G,单位字节
  27116. }NET_SYNOPSISFILE_VIDEO_INFO;
  27117. ///@brief DH_FILE_QUERY_SYNOPSISVIDEO 浓缩视频文件查询参数
  27118. typedef struct __NET_QUERY_SYNOPSISVIDEO_PARAM
  27119. {
  27120. DWORD dwSize;
  27121. int nTaskID; // 任务ID
  27122. }NET_QUERY_SYNOPSISVIDEO_PARAM;
  27123. ///@brief DH_FILE_QUERY_SYNOPSISVIDEO浓缩视频查询结果
  27124. typedef struct __NET_QUERY_SYNOPSISVIDEO_INFO
  27125. {
  27126. DWORD dwSize;
  27127. char szFilePath[MAX_PATH]; // 文件路径
  27128. unsigned int nFileLenth; // 文件长度,该字段废弃,请使用nFileLengthEx
  27129. int nDurationTime; // 持续时间,单位s
  27130. INT64 nFileLengthEx; // 文件长度扩展,支持文件长度大于4G,单位字节
  27131. }NET_QUERY_SYNOPSISVIDEO_INFO;
  27132. ///@brief CLIENT_FindSynopsisFile 接口参数
  27133. typedef struct tagNET_IN_FIND_SYNOPSISFILE
  27134. {
  27135. DWORD dwSize;
  27136. NET_EM_QUERY_SYNOPSIS_FILE emQueryType; // 查询类型
  27137. void* pQueryCondition; // 查询条件,由用户分配内存
  27138. // 若查询类型为DH_FILE_QUERY_VIDEO,对应查询结构体:NET_SYNOPSIS_QUERY_VIDEO_PARAM,申请大小为sizeof(NET_SYNOPSIS_QUERY_VIDEO_PARAM)
  27139. // 若查询类型为DH_FILE_QUERY_SYNOPSISVIDEO,对应查询结构体:NET_QUERY_SYNOPSISVIDEO_PARAM,申请大小为sizeof(NET_QUERY_SYNOPSISVIDEO_PARAM)
  27140. int nWaitTime; // 等待超时时间,单位ms
  27141. }NET_IN_FIND_SYNOPSISFILE;
  27142. ///@brief CLIENT_FindSynopsisFile 接口参数
  27143. typedef struct tagNET_OUT_FIND_SYNOPSISFILE
  27144. {
  27145. DWORD dwSize;
  27146. LLONG lFindHandle; // 查询句柄
  27147. }NET_OUT_FIND_SYNOPSISFILE;
  27148. ///@brief CLIENT_FindNextSynopsisFile 接口参数
  27149. typedef struct tagNET_IN_FINDNEXT_SYNOPSISFILE
  27150. {
  27151. DWORD dwSize;
  27152. int nFileCount; // 待查询的文件条数
  27153. NET_EM_QUERY_SYNOPSIS_FILE emQueryType; // 查询类型
  27154. void* pSynopsisFileInfo; // 文件信息存放缓冲,由用户申请内存,大小为nMaxlen
  27155. int nMaxlen; // 缓冲区大小
  27156. int nWaitTime; // 等待超时时间,单位ms
  27157. }NET_IN_FINDNEXT_SYNOPSISFILE;
  27158. ///@brief CLIENT_FindNextSynopsisFile 接口参数
  27159. typedef struct tagNET_OUT_FINDNEXT_SYNOPSISFILE
  27160. {
  27161. DWORD dwSize;
  27162. int nRetFileCount; // 接口实际返回的信息条数,返回值<nFileCount(输入参数)则相应时间段内的文件查询完毕
  27163. }NET_OUT_FINDNEXT_SYNOPSISFILE;
  27164. ///@brief 下载进度回调函数原形, nError表示在下载过程出现的错误,1-缓存不足,2-对返回数据的校验出错,3-下载当前文件失败,4-创建对应保存文件失败
  27165. typedef void (CALLBACK *fSynopsisFileDownLoadPosCB)(LLONG lDownLoadHandle, DWORD dwFileID, DWORD dwFileTotalSize, DWORD dwDownLoadSize, int nError, LDWORD dwUser, void* pReserved);
  27166. typedef NET_DOWNLOADFILE_INFO NET_SYNOPSIS_DOWNLOADFILE_INFO;
  27167. ///@brief CLIENT_DownLoadSynosisFile 接口参数
  27168. typedef struct tagNET_IN_DOWNLOAD_SYNOPSISFILE
  27169. {
  27170. DWORD dwSize;
  27171. int nFileCount; // 待下载文件数
  27172. NET_SYNOPSIS_DOWNLOADFILE_INFO* pFileInfos; // 待下载文件信息,由用户申请内存,大小为sizeof(NET_SYNOPSIS_DOWNLOADFILE_INFO)*nFileCount
  27173. fSynopsisFileDownLoadPosCB cbPosCallBack; // 进度回调函数
  27174. LDWORD dwUserData; // 用户数据
  27175. int nWaitTime; // 等待超时时间,单位ms
  27176. }NET_IN_DOWNLOAD_SYNOPSISFILE;
  27177. ///@brief CLIENT_DownLoadSynosisFile 接口参数
  27178. typedef struct tagNET_OUT_DOWNLOAD_SYNOPSISFILE
  27179. {
  27180. DWORD dwSize;
  27181. LLONG lDownLoadHandle; // 下载句柄
  27182. }NET_OUT_DOWNLOAD_SYNOPSISFILE;
  27183. ///@brief 文件(夹)路径信息
  27184. typedef struct tagNET_SET_FILEPATH_INFO
  27185. {
  27186. DWORD dwSize;
  27187. char szFilePath[MAX_PATH]; // 可以是文件夹路径,也可以是文件路径。目前浓缩视频服务器只支持dav格式的文件
  27188. }NET_SET_FILEPATH_INFO;
  27189. ///@brief CLIENT_SetFilePathInfo()接口输入参数
  27190. typedef struct tagNET_IN_SET_FILEPATHINFO
  27191. {
  27192. DWORD dwSize;
  27193. DWORD dwCount; // 添加的文件路径信息个数
  27194. void* pFilePathInfo; // 指向文件路径信息NET_SET_FILEPATH_INFO数组
  27195. // 由用户申请内存,大小为sizeof(NET_SET_FILEPATH_INFO)*dwCount
  27196. DWORD dwWaitTime; // 等待超时时间,单位ms
  27197. }NET_IN_SET_FILEPATHINFO;
  27198. ///@brief fAddFileStateCB 参数
  27199. typedef struct tagNET_CB_ADDFILESTATE
  27200. {
  27201. DWORD dwSize;
  27202. const char* szFileName; // 文件名称
  27203. const char* szState; // 文件分析状态, "Successed",成功; "Failed",失败;
  27204. }NET_CB_ADDFILESTATE;
  27205. ///@brief 刻录设备回调函数原形, 每次1条,pBuf->dwSize == nBufLen
  27206. typedef void (CALLBACK *fAddFileStateCB) (LLONG lLoginID, LLONG lAttachHandle, NET_CB_ADDFILESTATE* pBuf, int nBufLen, LDWORD dwUser);
  27207. ///@brief CLIENT_AttacAddFileState()接口输入参数
  27208. typedef struct tagNET_IN_ADDFILE_STATE
  27209. {
  27210. DWORD dwSize;
  27211. fAddFileStateCB cbAttachState; // 监听增加文件状态回调
  27212. LDWORD dwUser; // 用户数据
  27213. }NET_IN_ADDFILE_STATE;
  27214. ///@brief CLIENT_AttacAddFileState()接口输入参数
  27215. typedef struct tagNET_OUT_ADDFILE_STATE
  27216. {
  27217. DWORD dwSize;
  27218. }NET_OUT_ADDFILE_STATE;
  27219. ///////////////////////////////目标识别模块相关结构体///////////////////////////////////////
  27220. ///@brief 人员唯一标识符
  27221. typedef struct tagNET_UID_CHAR
  27222. {
  27223. char szUID[DH_MAX_PERSON_ID_LEN]; //UID内容
  27224. }NET_UID_CHAR;
  27225. ///@brief 人员唯一标识符
  27226. typedef struct tagNET_UUID_CHAR
  27227. {
  27228. char szUUID[DH_MAX_PERSON_ID_LEN]; //UUID内容
  27229. }NET_UUID_CHAR;
  27230. ///@brief CLIENT_OperateFaceRecognitionDB接口输入参数
  27231. typedef struct __NET_IN_OPERATE_FACERECONGNITIONDB
  27232. {
  27233. DWORD dwSize;
  27234. EM_OPERATE_FACERECONGNITIONDB_TYPE emOperateType; // 操作类型
  27235. FACERECOGNITION_PERSON_INFO stPersonInfo; // 人员信息
  27236. /*emOperateType操作类型为ET_FACERECONGNITIONDB_DELETE_BY_UID时使用,stPeronInfo字段无效*/
  27237. DWORD nUIDNum; //UID个数
  27238. NET_UID_CHAR *stuUIDs; //人员唯一标识符,首次由服务端生成,区别于ID字段
  27239. // 由用户申请内存,大小为sizeof(NET_UID_CHAR)*nUIDNum
  27240. /* 图片二进制数据 */
  27241. char *pBuffer; // 缓冲地址
  27242. int nBufferLen; // 缓冲数据长度
  27243. BOOL bUsePersonInfoEx; // 使用人员扩展信息
  27244. FACERECOGNITION_PERSON_INFOEX stPersonInfoEx; // 人员信息扩展
  27245. /*emOperateType操作类型为NET_FACERECONGNITIONDB_DELETE_BY_UUID时使用,stPeronInfo字段无效*/
  27246. DWORD nUUIDNum; //UUID个数
  27247. NET_UUID_CHAR *stuUUIDs; //人员唯一标识符,由平台端下发,区别于UID字段
  27248. // 由用户申请内存,大小为sizeof(NET_UUID_CHAR)*nUUIDNum
  27249. }NET_IN_OPERATE_FACERECONGNITIONDB;
  27250. ///@brief 错误代码,emOperateType操作类型为ET_FACERECONGNITIONDB_DELETE_BY_UID时使用
  27251. typedef enum tagEM_ERRORCODE_TYPE
  27252. {
  27253. EM_ERRORCODE_TYPE_UNKNOWN = -1, // 未知错误
  27254. EM_ERRORCODE_TYPE_SUCCESS, // 成功
  27255. EM_ERRORCODE_TYPE_PERSON_NOT_EXIST, // 人员不存在
  27256. EM_ERRORCODE_TYPE_DATABASE_ERROR, // 数据库操作失败
  27257. } EM_ERRORCODE_TYPE;
  27258. ///@brief CLIENT_OperateFaceRecognitionDB接口输出参数
  27259. typedef struct __NET_OUT_OPERATE_FACERECONGNITIONDB
  27260. {
  27261. DWORD dwSize;
  27262. char szUID[DH_MAX_PERSON_ID_LEN]; // 人员唯一标识符, 只有在操作类型为NET_FACERECONGNITIONDB_ADD时有效
  27263. /*emOperateType操作类型为NET_FACERECONGNITIONDB_DELETE_BY_UID, NET_FACERECONGNITIONDB_DELETE_BY_UUID时使用*/
  27264. int nErrorCodeNum; // 错误码个数
  27265. EM_ERRORCODE_TYPE emErrorCodes[MAX_ERRORCODE_NUM]; // 错误码
  27266. /* emOperateType操作类型为NET_FACERECONGNITIONDB_DELETE_BY_UID, NET_FACERECONGNITIONDB_DELETE_BY_UUID时使用*/
  27267. }NET_OUT_OPERATE_FACERECONGNITIONDB;
  27268. ///@brief 目标导入的状态
  27269. typedef enum tagEM_FACE_APPEND_STATE
  27270. {
  27271. EM_FACE_APPEND_STATE_UNKNOWN, //未知
  27272. EM_FACE_APPEND_STATE_START, //开始导入
  27273. EM_FACE_APPEND_STATE_RUN, //正在导入
  27274. EM_FACE_APPEND_STATE_STOP, //导入结束
  27275. EM_FACE_APPEND_STATE_CANCLE, //导入取消
  27276. }EM_FACE_APPEND_STATE;
  27277. ///@brief 扩展信息
  27278. typedef struct tagNET_MULTI_APPEND_EXTENDED_INFO
  27279. {
  27280. UINT nToken; // 该次目标导入的token值
  27281. EM_FACE_APPEND_STATE emState; // 目标导入状态
  27282. char szResvered[248]; // 保留字节
  27283. }NET_MULTI_APPEND_EXTENDED_INFO;
  27284. ////@brief CLIENT_BatchAppendFaceRecognition 接口输入参数
  27285. typedef struct tagNET_IN_BATCH_APPEND_FACERECONGNITION
  27286. {
  27287. DWORD dwSize; // 结构体大小
  27288. UINT nPersonNum; // 需要添加的人员数量
  27289. FACERECOGNITION_PERSON_INFOEX *pstPersonInfo; // 人员信息,内存由用户申请,大小为nPersonNum * sizeof(FACERECOGNITION_PERSON_INFOEX)
  27290. /* 图片二进制数据 */
  27291. char *pBuffer; // 缓冲地址
  27292. UINT nBufferLen; // 缓冲数据长度
  27293. BYTE bReserved[4]; // 字节对齐
  27294. NET_MULTI_APPEND_EXTENDED_INFO stuInfo; // 扩展信息
  27295. } NET_IN_BATCH_APPEND_FACERECONGNITION;
  27296. ///@brief 批量添加人员结果信息
  27297. typedef struct tagNET_BATCH_APPEND_PERSON_RESULT
  27298. {
  27299. UINT nUID; // 人员UID
  27300. DWORD dwErrorCode; // 错误码信息
  27301. char szUID2[64]; // 添加人员UID, 根据UIDType指定UID使用字段
  27302. BYTE bReserved[448]; // 保留字段
  27303. } NET_BATCH_APPEND_PERSON_RESULT;
  27304. ///@brief CLIENT_BatchAppendFaceRecognition 接口输出参数
  27305. typedef struct tagNET_OUT_BATCH_APPEND_FACERECONGNITION
  27306. {
  27307. DWORD dwSize; // 结构体大小
  27308. UINT nResultNum; // 批量添加结果个数,由用户指定,数值与NET_IN_BATCH_APPEND_FACERECONGNITION中的nPersonNum一致
  27309. NET_BATCH_APPEND_PERSON_RESULT *pstResultInfo; // 批量添加结果信息
  27310. UINT nUIDType; // 指定NET_BATCH_APPEND_PERSON_RESULT中的UID使用字段,不存在本字段或值为0则使用UID字段,若值为1则使用UID2字段
  27311. } NET_OUT_BATCH_APPEND_FACERECONGNITION;
  27312. ///@brief 以图搜图查询模式
  27313. typedef enum tagEM_FINDPIC_QUERY_MODE
  27314. {
  27315. EM_FINDPIC_QUERY_UNKNOWN, // 未知
  27316. EM_FINDPIC_QUERY_PASSIVE, // 被动查询
  27317. EM_FINDPIC_QUERY_ACTIVE, // 主动推送
  27318. } EM_FINDPIC_QUERY_MODE;
  27319. ///@brief 以图搜图结果上报排序方式
  27320. typedef enum tagEM_FINDPIC_QUERY_ORDERED
  27321. {
  27322. EM_FINDPIC_QUERY_BY_SIMILARITY, // 按相似度从高到底
  27323. EM_FINDPIC_QUERY_BY_TIME_FORWARD, // 按时间正序
  27324. EM_FINDPIC_QUERY_BY_TIME_REVERSE, // 按时间倒序
  27325. } EM_FINDPIC_QUERY_ORDERED;
  27326. ///@brief 目标匹配选项
  27327. typedef struct __NET_FACE_MATCH_OPTIONS
  27328. {
  27329. DWORD dwSize;
  27330. unsigned int nMatchImportant; // 人员重要等级 1~10,数值越高越重要,(查询重要等级大于等于此等级的人员)
  27331. EM_FACE_COMPARE_MODE emMode; // 目标比对模式,详见EM_FACE_COMPARE_MODE
  27332. int nAreaNum; // 目标区域个数
  27333. EM_FACE_AREA_TYPE szAreas[MAX_FACE_AREA_NUM]; // 目标区域组合,emMode为NET_FACE_COMPARE_MODE_AREA时有效
  27334. int nAccuracy; // 识别精度(取值1~10,随着值增大,检测精度提高,检测速度下降。最小值为1 表示检测速度优先,最大值为10表示检测精度优先。 暂时只对目标检测有效)
  27335. int nSimilarity; // 相似度(必须大于该相识度才报告;百分比表示,1~100)
  27336. int nMaxCandidate; // 报告的最大候选个数(根据相似度进行排序,取相似度最大的候选人数报告)
  27337. EM_FINDPIC_QUERY_MODE emQueryMode; // 以图搜图查询模式
  27338. EM_FINDPIC_QUERY_ORDERED emOrdered; // 以图搜图结果上报排序方式
  27339. }NET_FACE_MATCH_OPTIONS;
  27340. ///@brief 查询过滤条件
  27341. typedef struct __NET_FACE_FILTER_CONDTION
  27342. {
  27343. DWORD dwSize;
  27344. NET_TIME stStartTime; // 开始时间
  27345. NET_TIME stEndTime; // 结束时间
  27346. char szMachineAddress[MAX_PATH]; // 地点,支持模糊匹配
  27347. int nRangeNum; // 实际数据库个数
  27348. BYTE szRange[MAX_FACE_DB_NUM]; // 待查询数据库类型,详见 EM_FACE_DB_TYPE
  27349. EM_FACERECOGNITION_FACE_TYPE emFaceType; // 待查询目标类型,详见 EM_FACERECOGNITION
  27350. int nGroupIdNum; // 人员组数
  27351. char szGroupId[MAX_GOURP_NUM][DH_COMMON_STRING_64]; // 人员组ID
  27352. NET_TIME stBirthdayRangeStart; // 生日起始时间
  27353. NET_TIME stBirthdayRangeEnd; // 生日结束时间
  27354. BYTE byAge[MAX_AGE_NUM]; // 年龄区间,当byAge[0]=0与byAge[1]=0时,表示查询全年龄
  27355. BYTE byReserved[2]; // 保留字节对齐
  27356. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotion[MAX_EMOTION_NUM]; // 表情条件
  27357. int nEmotionNum; // 表情条件的个数
  27358. int nUIDNum; // 人员唯一标识数
  27359. char szUIDs[64][32]; // 人员唯一标识列表
  27360. int nUUIDNum; // 平台端人员唯一标识数
  27361. char szUUIDs[64][32]; // 平台端人员唯一标识列表,根据faceRecognitionServer.getCaps获取到的能力是否存在字段SupportIDFromServer且值为true时有效
  27362. }NET_FACE_FILTER_CONDTION;
  27363. #define MAX_SMALLPIC_NUM 32 // 最大小图张数
  27364. ///@brief CLIENT_StartFindFaceRecognition接口输入参数
  27365. typedef struct __NET_IN_STARTFIND_FACERECONGNITION
  27366. {
  27367. DWORD dwSize;
  27368. BOOL bPersonEnable; // 人员信息查询条件是否有效
  27369. FACERECOGNITION_PERSON_INFO stPerson; // 人员信息查询条件
  27370. NET_FACE_MATCH_OPTIONS stMatchOptions; // 目标匹配选项
  27371. NET_FACE_FILTER_CONDTION stFilterInfo; // 查询过滤条件
  27372. /* 图片二进制数据 */
  27373. char *pBuffer; // 缓冲地址
  27374. int nBufferLen; // 缓冲数据长度
  27375. int nChannelID; // 通道号
  27376. BOOL bPersonExEnable; // 人员信息查询条件是否有效, 并使用扩展结构体
  27377. FACERECOGNITION_PERSON_INFOEX stPersonInfoEx; // 人员信息扩展
  27378. int nSmallPicIDNum; // 小图ID数量
  27379. int nSmallPicID[MAX_SMALLPIC_NUM]; // 小图ID
  27380. EM_OBJECT_TYPE emObjectType; // 搜索的目标类型
  27381. char szChannel[DH_COMMON_STRING_32]; // 通道号(定制使用)
  27382. }NET_IN_STARTFIND_FACERECONGNITION;
  27383. ///@brief CLIENT_StartFindFaceRecognition接口输出参数
  27384. typedef struct __NET_OUT_STARTFIND_FACERECONGNITION
  27385. {
  27386. DWORD dwSize;
  27387. int nTotalCount; // 返回的符合查询条件的记录个数
  27388. // -1表示总条数未生成,要推迟获取
  27389. // 使用CLIENT_AttachFaceFindState接口状态
  27390. LLONG lFindHandle; // 查询句柄
  27391. int nToken; // 获取到的查询令牌
  27392. }NET_OUT_STARTFIND_FACERECONGNITION;
  27393. ///@brief CLIENT_StartMultiFindFaceRecognition 接口输入参数
  27394. typedef struct tagNET_IN_STARTMULTIFIND_FACERECONGNITION
  27395. {
  27396. DWORD dwSize;
  27397. int* pChannelID; // 通道号
  27398. int nChannelCount; // 通道申请个数
  27399. BOOL bPersonEnable; // 人员信息查询条件是否有效
  27400. FACERECOGNITION_PERSON_INFO stPerson; // 人员信息查询条件
  27401. NET_FACE_MATCH_OPTIONS stMatchOptions; // 目标匹配选项
  27402. NET_FACE_FILTER_CONDTION stFilterInfo; // 查询过滤条件
  27403. /* 图片二进制数据 */
  27404. char *pBuffer; // 缓冲地址
  27405. int nBufferLen; // 缓冲数据长度
  27406. BOOL bPersonExEnable; // 人员信息查询条件是否有效, 并使用人员信息扩展结构体
  27407. FACERECOGNITION_PERSON_INFOEX stPersonInfoEx; // 人员信息扩展
  27408. EM_OBJECT_TYPE emObjectType; // 搜索的目标类型
  27409. int nChannelNum; // 通道有效个数
  27410. char szChannelString[512][32]; // 通道号(定制使用)
  27411. int nProcessType; // 以图搜图类型, -1: 未知, 0: 特征值搜索, 1: SMD属性特征搜索
  27412. }NET_IN_STARTMULTIFIND_FACERECONGNITION;
  27413. ///@brief CLIENT_StartMultiFindFaceRecognition 接口输出参数
  27414. typedef struct tagNET_OUT_STARTMULTIFIND_FACERECONGNITION
  27415. {
  27416. DWORD dwSize;
  27417. int nTotalCount; // 返回的符合查询条件的记录个数
  27418. // -1表示总条数未生成,要推迟获取
  27419. // 使用CLIENT_AttachFaceFindState接口状态
  27420. LLONG lFindHandle; // 查询句柄
  27421. int nToken; // 获取到的查询令牌
  27422. }NET_OUT_STARTMULTIFIND_FACERECONGNITION;
  27423. ///@brief CLIENT_StartMultiPersonFindFaceR 接口输入参数
  27424. typedef struct tagNET_IN_STARTMULTIPERSONFIND_FACER
  27425. {
  27426. DWORD dwSize; // 结构体大小
  27427. NET_FACE_FILTER_CONDTION stFilterInfo; // 查询过滤条件
  27428. int* pChannelID; // 通道号,过滤条件szRange为NET_FACE_DB_TYPE_HISTORY有效,用户分配内存
  27429. int nChannelCount; // 通道申请个数
  27430. int nTaskIdCount; // 任务ID数量
  27431. int* pTaskId; // 任务ID,过滤条件szRange为NET_FACE_DB_TYPE_HISTORY有效,和channel字段二选一,用户分配内存
  27432. FACERECOGNITION_PERSON_INFOEX stPerson; // 人员信息查询条件,和smallID二选一
  27433. NET_FACE_MATCH_OPTIONS stMatchOptions; // 目标匹配选项
  27434. int nSmallPicIDNum; // 小图ID数量
  27435. int nSmallPicID[32]; // 小图ID
  27436. EM_OBJECT_TYPE emObjectType; // 搜索的目标类型
  27437. /* 图片二进制数据 */
  27438. int nBufferLen; // 缓冲数据长度
  27439. char *pBuffer; // 缓冲地址
  27440. }NET_IN_STARTMULTIPERSONFIND_FACER;
  27441. ///@brief CLIENT_StartMultiPersonFindFaceR 接口输出参数
  27442. typedef struct tagNET_OUT_STARTMULTIPERSONFIND_FACER
  27443. {
  27444. DWORD dwSize; // 结构体大小
  27445. int nTotalCount; // 返回的符合查询条件的记录个数
  27446. // -1表示总条数未生成,要推迟获取
  27447. // 使用CLIENT_AttachFaceFindState接口状态
  27448. LLONG lFindHandle; // 查询句柄
  27449. UINT nToken; // 获取到的查询令牌
  27450. }NET_OUT_STARTMULTIPERSONFIND_FACER;
  27451. ///@brief CLIENT_FaceRServerGetDetectToken 接口输入参数
  27452. typedef struct tagNET_IN_FACERSERVER_GETDETEVTTOKEN
  27453. {
  27454. DWORD dwSize; // 结构体大小
  27455. }NET_IN_FACERSERVER_GETDETEVTTOKEN;
  27456. ///@brief CLIENT_FaceRServerGetDetectToken 接口输出参数
  27457. typedef struct tagNET_OUT_FACERSERVER_GETDETEVTTOKEN
  27458. {
  27459. DWORD dwSize; // 结构体大小
  27460. UINT nToken; // 获取到的查询令牌
  27461. }NET_OUT_FACERSERVER_GETDETEVTTOKEN;
  27462. ///@brief 获取目标检测令牌
  27463. ///@param[in] lLoginID 登录句柄
  27464. ///@param[in] pInParam 接口输入参数
  27465. ///@param[out]pOutParam 接口输出参数
  27466. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  27467. ///@return TRUE表示成功 FALSE表示失败
  27468. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceRServerGetDetectToken(LLONG lLoginID, NET_IN_FACERSERVER_GETDETEVTTOKEN *pInParam, NET_OUT_FACERSERVER_GETDETEVTTOKEN *pOutParam, int nWaitTime);
  27469. ///@brief CLIENT_StartMultiFindFaceRecognitionRecord 输入参数(对应的开始识别目标多通道查询)
  27470. typedef struct tagNET_IN_STARTMULTIFIND_FACERECONGNITIONRECORD
  27471. {
  27472. DWORD dwSize; // 结构体大小
  27473. /* 查询过滤条件 */
  27474. NET_TIME stStartTime; // 开始时间
  27475. NET_TIME stEndTime; // 结束时间
  27476. char szMachineAddress[MAX_PATH]; // 地点,支持模糊匹配
  27477. int nAlarmType; // 待查询报警类型,详见 EM_FACERECOGNITION_ALARM_TYPE
  27478. BOOL abPersonInfo; // 人员信息是否有效
  27479. FACERECOGNITION_PERSON_INFO stPersonInfo; // 人员信息
  27480. int* pChannelID; // 通道号
  27481. int nChannelCount; // 通道个数
  27482. int nGroupIdNum; // 人员组数
  27483. char szGroupId[MAX_GOURP_NUM][DH_COMMON_STRING_64]; // 人员组ID
  27484. BOOL abPersonExInfo; // 人员信息是否有效, 并使用人员信息扩展结构体
  27485. FACERECOGNITION_PERSON_INFOEX stPersonInfoEx; // 人员信息扩展
  27486. }NET_IN_STARTMULTIFIND_FACERECONGNITIONRECORD;
  27487. ///@brief CLIENT_StartMultiFindFaceRecognitionRecord 输出参数(对应的开始识别目标多通道查询)
  27488. typedef struct tagNET_OUT_STARTMULTIFIND_FACERECONGNITIONRECORD
  27489. {
  27490. DWORD dwSize;
  27491. int nTotalCount; // 返回的符合查询条件的记录个数
  27492. // -1表示总条数未生成,要推迟获取
  27493. // 使用CLIENT_AttachFaceFindState接口状态
  27494. LLONG lFindHandle; // 查询句柄
  27495. int nToken; // 获取到的查询令牌
  27496. }NET_OUT_STARTMULTIFIND_FACERECONGNITIONRECORD;
  27497. ///@brief CLIENT_DoFindFaceRecognitionRecord 输入参数(对应的开始识别目标多通道查询)
  27498. typedef struct tagNET_IN_DOFIND_FACERECONGNITIONRECORD
  27499. {
  27500. DWORD dwSize;
  27501. int nTotalCount; // 查询条件的记录个数
  27502. LLONG lFindHandle; // 查询句柄
  27503. int nBeginNumber; // 查询起始序号,表示从beginNumber条记录开始,取count条记录返回;
  27504. }NET_IN_DOFIND_FACERECONGNITIONRECORD;
  27505. ///@brief 目标识别信息数据
  27506. typedef struct tagNET_DOFIND_FACERECONGNITIONRECORD_INFO
  27507. {
  27508. BOOL bGlobalScenePic; // 全景图是否存在
  27509. NET_PIC_INFO stGlobalScenePic; // 全景图片文件路径
  27510. DH_MSG_OBJECT stuObject; // 目标目标物体信息
  27511. NET_PIC_INFO stObjectPic; // 目标目标文件路径
  27512. int nCandidateNum; // 当前目标匹配到的候选对象数量
  27513. CANDIDATE_INFO stuCandidates[DH_MAX_CANDIDATE_NUM]; // 当前目标匹配到的候选对象信息
  27514. NET_CANDIDAT_PIC_PATHS_EX stuCandidatesPic[DH_MAX_CANDIDATE_NUM]; // 当前目标匹配到的候选对象图片文件路径
  27515. NET_TIME stTime; // 报警发生时间
  27516. char szAddress[MAX_PATH]; // 报警发生地点
  27517. int nChannelId; // 通道号
  27518. BYTE bReserved[256]; // 保留
  27519. }NET_DOFIND_FACERECONGNITIONRECORD_INFO;
  27520. ///@brief CLIENT_DoFindFaceRecognitionRecord 输出参数(对应的开始识别目标多通道查询)
  27521. typedef struct tagNET_OUT_DOFIND_FACERECONGNITIONRECORD
  27522. {
  27523. DWORD dwSize;
  27524. NET_DOFIND_FACERECONGNITIONRECORD_INFO *stuResults; // 返回的目标识别信息数据(内存申请释放由用户管理)
  27525. int nResultNum; // 申请的目标识别信息的内存个数
  27526. int nTotalCount; // 实际返回个数
  27527. }NET_OUT_DOFIND_FACERECONGNITIONRECORD;
  27528. ///@brief CLIENT_DoFindFaceRecognitionRecordEx 输入参数(对应的开始识别目标多通道查询)
  27529. typedef struct tagNET_IN_DOFIND_FACERECONGNITIONRECORD_EX
  27530. {
  27531. DWORD dwSize;
  27532. int nTotalCount; // 每次需要获取的条数
  27533. LLONG lFindHandle; // 查询句柄
  27534. int nBeginNumber; // 查询起始序号,表示从beginNumber条记录开始,取count条记录返回;
  27535. }NET_IN_DOFIND_FACERECONGNITIONRECORD_EX;
  27536. ///@brief 目标识别信息数据扩展
  27537. typedef struct tagNET_DOFIND_FACERECONGNITIONRECORD_INFO_EX
  27538. {
  27539. BOOL bGlobalScenePic; // 全景图是否存在
  27540. NET_PIC_INFO stGlobalScenePic; // 全景图片文件路径
  27541. DH_MSG_OBJECT stuObject; // 目标目标物体信息
  27542. NET_PIC_INFO stObjectPic; // 目标目标文件路径
  27543. int nCandidateNum; // 当前目标匹配到的候选对象数量
  27544. CANDIDATE_INFOEX stuCandidates[DH_MAX_CANDIDATE_NUM]; // 当前目标匹配到的候选对象信息
  27545. NET_CANDIDAT_PIC_PATHS_EX stuCandidatesPic[DH_MAX_CANDIDATE_NUM]; // 当前目标匹配到的候选对象图片文件路径
  27546. NET_TIME stTime; // 报警发生时间
  27547. char szAddress[MAX_PATH]; // 报警发生地点
  27548. int nChannelId; // 通道号
  27549. BYTE bReserved[1024]; // 保留
  27550. }NET_DOFIND_FACERECONGNITIONRECORD_INFO_EX;
  27551. ///@brief CLIENT_DoFindFaceRecognitionRecordEx 输出参数(对应的开始识别目标多通道查询)
  27552. typedef struct tagNET_OUT_DOFIND_FACERECONGNITIONRECORD_EX
  27553. {
  27554. DWORD dwSize;
  27555. NET_DOFIND_FACERECONGNITIONRECORD_INFO_EX *pstResults; // 返回的目标识别信息数据(内存申请释放由用户管理)
  27556. int nMaxResultNum; // 申请的目标识别信息的内存个数
  27557. int nRetResultNum; // 实际返回个数
  27558. }NET_OUT_DOFIND_FACERECONGNITIONRECORD_EX;
  27559. #define MAX_FIND_COUNT 20
  27560. ///@brief 查询结果返回图片的格式
  27561. typedef enum tagEM_NEEDED_PIC_RETURN_TYPE
  27562. {
  27563. EM_NEEDED_PIC_TYPE_UNKOWN, // 未知类型
  27564. EM_NEEDED_PIC_TYPE_HTTP_URL, // 返回图片HTTP链接
  27565. EM_NEEDED_PIC_TYPE_BINARY_DATA, // 返回图片二进制数据
  27566. EM_NEEDED_PIC_TYPE_HTTP_AND_BINARY, // 返回二进制和HTTP链接
  27567. }EM_NEEDED_PIC_RETURN_TYPE;
  27568. ///@brief CLIENT_DoFindFaceRecognition 接口输入参数
  27569. typedef struct __NET_IN_DOFIND_FACERECONGNITION
  27570. {
  27571. DWORD dwSize;
  27572. LLONG lFindHandle; // 查询句柄
  27573. int nBeginNum; // 查询起始序号
  27574. int nCount; // 当前想查询的记录条数
  27575. EM_NEEDED_PIC_RETURN_TYPE emDataType; // 指定查询结果返回图片的格式
  27576. }NET_IN_DOFIND_FACERECONGNITION;
  27577. ///@brief CLIENT_DoFindFaceRecognition接口输出参数
  27578. typedef struct __NET_OUT_FINDNEXT_FACERECONGNITION
  27579. {
  27580. DWORD dwSize;
  27581. int nCadidateNum; // 实际返回的候选信息结构体个数
  27582. CANDIDATE_INFO stCadidateInfo[MAX_FIND_COUNT]; // 候选信息数组
  27583. /* 图片二进制数据 */
  27584. char *pBuffer; // 缓冲地址
  27585. int nBufferLen; // 缓冲数据长度
  27586. BOOL bUseCandidatesEx; // 是否使用候选对象扩展结构体,
  27587. // 若为TRUE, 则表示使用stuCandidatesEx, 且stuCandidates无效, 否则相反
  27588. int nCadidateExNum; // 实际返回的候选信息结构体个数
  27589. CANDIDATE_INFOEX stuCandidatesEx[MAX_FIND_COUNT];// 当前目标匹配到的候选对象信息, 实际返回个数同nCandidateNum
  27590. }NET_OUT_DOFIND_FACERECONGNITION;
  27591. ///@brief 眼镜状态
  27592. typedef enum tagEM_GLASSES_STATE
  27593. {
  27594. EM_GLASSES_STATE_UNKNOWN, // 未知
  27595. EM_GLASSES_STATE_NO, // 不戴
  27596. EM_GLASSES_STATE_WEAR, // 戴
  27597. } EM_GLASSES_STATE;
  27598. ///@brief 历史库人员信息
  27599. typedef struct tagNET_HISTORY_PERSON_INFO
  27600. {
  27601. char szUID[DH_MAX_PERSON_ID_LEN]; // 人员唯一标识符,首次由服务端生成,区别于ID字段
  27602. // 修改,删除操作时必填
  27603. EM_SEX_TYPE emSexType; // 性别
  27604. UINT nAge; // 年龄, 0表示未知
  27605. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotion; // 表情
  27606. EM_GLASSES_STATE emGlassesState; // 眼镜状态
  27607. EM_GLASSES_TYPE emGlassesType; // 眼镜类型
  27608. char szReserved1[4];
  27609. EM_EYE_STATE_TYPE emEye; // 眼睛状态
  27610. EM_MOUTH_STATE_TYPE emMouth; // 嘴巴状态
  27611. EM_MASK_STATE_TYPE emMask; // 口罩状态
  27612. EM_BEARD_STATE_TYPE emBeard; // 胡子状态
  27613. int nAttractive; // 魅力值, -1表示无效, 0未识别,识别时范围1-100,得分高魅力高
  27614. UINT nFacePicNum; // 图片张数
  27615. NET_FACE_IMAGE_INFO stuFacePicInfo[DH_MAX_PERSON_IMAGE_NUM]; // 当前人员对应的图片信息
  27616. BYTE bReserved[2048]; // 预留字节数
  27617. } NET_HISTORY_PERSON_INFO;
  27618. ///@brief 历史库以图搜图主动上报的候选人信息
  27619. typedef struct tagNET_HISTORY_ACTIVE_CANDIDATE
  27620. {
  27621. UINT nSimilarity; // 相似度
  27622. int nChannelID; // 抓拍通道号
  27623. NET_HISTORY_PERSON_INFO stuHistoryPerson; // 历史库人员信息
  27624. NET_TIME stuTime; // 查询人员出现的时间
  27625. NET_FACE_IMAGE_INFO stuSceneImage; // 目标全景图
  27626. char szChannelString[32]; // 通道号(定制使用)
  27627. BYTE bReserved[1204]; // 预留字节数
  27628. } NET_HISTORY_ACTIVE_CANDIDATE;
  27629. #define MAX_CANDIDATE_NUM 50 // 候选人员最大数量
  27630. ///@brief 历史库以图搜图主动上报结果信息
  27631. typedef struct tagNET_RESULT_OF_FINDHISTORY_BYPIC
  27632. {
  27633. UINT nSmallPicID; // 小图ID
  27634. UINT nPictureID; // 目标图ID
  27635. UINT nCandidateNum; // 候选人员数量
  27636. NET_HISTORY_ACTIVE_CANDIDATE stuCandidateInfo[MAX_CANDIDATE_NUM]; // 候选人员信息
  27637. BYTE bReserved[1024]; // 预留字节数
  27638. } NET_RESULT_OF_FINDHISTORY_BYPIC;
  27639. #define MAX_FINDPERSON_RESULT_NUM 32 // 以图搜图主动上报结果最大数量
  27640. ///@brief 历史库以图搜图回调信息
  27641. typedef struct tagNET_CB_RESULT_OF_FIND_HISTORY_BYPIC
  27642. {
  27643. UINT nToken; // 查询令牌
  27644. UINT nProgress; // 查询进度百分比
  27645. UINT nTotalCount; // 满足条件的总条数
  27646. int nHistoryResultNum; // 历史库以图搜图查询结果数量
  27647. NET_RESULT_OF_FINDHISTORY_BYPIC stuHistoryResult[MAX_FINDPERSON_RESULT_NUM]; // 历史库以图搜图查询结果信息
  27648. BYTE bReserved[1024]; // 预留字节数
  27649. } NET_CB_RESULT_OF_FIND_HISTORY_BYPIC;
  27650. ///@brief 订阅历史库以图搜图回调函数原型, lAttachHandle为CLIENT_AttachResultOfFindHistoryByPic接口的返回值
  27651. typedef void (CALLBACK *fResultOfFindHistory)(LLONG lAttachHandle, NET_CB_RESULT_OF_FIND_HISTORY_BYPIC* pstesult, const char *pBinBuf, int nBinBufLen, LDWORD dwUser);
  27652. ///@brief CLIENT_AttachResultOfFindHistoryByPic接口输入参数
  27653. typedef struct tagNET_IN_ATTACH_RESULT_FINDHISTORY_BYPIC
  27654. {
  27655. DWORD dwSize; // 结构体大小
  27656. UINT nToken; // 查询令牌, 由CLIENT_StartFindFaceRecognition返回
  27657. fResultOfFindHistory cbResultOfFindHistory; // 订阅历史库以图搜图回调函数
  27658. LDWORD dwUser; // 用户数据
  27659. } NET_IN_ATTACH_RESULT_FINDHISTORY_BYPIC;
  27660. ///@brief CLIENT_AttachResultOfFindHistoryByPic接口输出参数
  27661. typedef struct tagNET_OUT_ATTACH_RESULT_FINDHISTORY_BYPIC
  27662. {
  27663. DWORD dwSize; // 结构体大小
  27664. } NET_OUT_ATTACH_RESULT_FINDHISTORY_BYPIC;
  27665. ///@brief 人体历史库以图搜图主动上报的候选人信息
  27666. typedef struct tagNET_HUMANHISTORY_CANDIDATE
  27667. {
  27668. UINT nSimilarity; // 相似度
  27669. int nChannelID; // 抓拍通道号
  27670. NET_HISTORY_HUMAN_INFO stuHistoryHuman; // 历史库人体信息
  27671. NET_TIME stuTime; // 查询人员出现的时间
  27672. NET_FACE_IMAGE_INFO stuSceneImage; // 人体全景图
  27673. BYTE bReserved[748]; // 预留字节数
  27674. } NET_HUMANHISTORY_CANDIDATE;
  27675. ///@brief 人体历史库以图搜图主动上报结果信息
  27676. typedef struct tagNET_RESULT_OF_HUMANHISTORY_BYPIC
  27677. {
  27678. UINT nSmallPicID; // 小图ID
  27679. UINT nPictureID; // 目标图ID
  27680. NET_HUMANHISTORY_CANDIDATE stuCandidateInfo[50]; // 候选人员信息
  27681. UINT nCandidateNum; // 候选人员数量
  27682. BYTE bReserved[1028]; // 预留字节数
  27683. } NET_RESULT_OF_HUMANHISTORY_BYPIC;
  27684. ///@brief 人体历史库以图搜图回调信息
  27685. typedef struct tagNET_CB_RESULT_OF_HUMAN_HISTORY_BYPIC
  27686. {
  27687. UINT nToken; // 查询令牌
  27688. UINT nProgress; // 查询进度百分比
  27689. UINT nTotalCount; // 满足条件的总条数
  27690. int nHistoryResultNum; // 历史库以图搜图查询结果数量
  27691. NET_RESULT_OF_HUMANHISTORY_BYPIC stuHistoryResult[32]; // 历史库以图搜图查询结果信息
  27692. BYTE bReserved[1024]; // 预留字节数
  27693. } NET_CB_RESULT_OF_HUMAN_HISTORY_BYPIC;
  27694. ///@brief 订阅人体历史库以图搜图回调函数原型, lAttachHandle为CLIENT_AttachResultOfHumanHistoryByPic接口的返回值
  27695. typedef void (CALLBACK *fResultOfHumanHistory)(LLONG lAttachHandle, NET_CB_RESULT_OF_HUMAN_HISTORY_BYPIC* pstesult, const char *pBinBuf, int nBinBufLen, LDWORD dwUser);
  27696. ///@brief CLIENT_AttachResultOfHumanHistoryByPic 接口输入参数
  27697. typedef struct tagNET_IN_ATTACH_RESULT_HUMAN_HISTORY_BYPIC
  27698. {
  27699. DWORD dwSize; // 结构体大小
  27700. UINT nToken; // 查询令牌, 由CLIENT_StartFindFaceRecognition返回
  27701. fResultOfHumanHistory cbResultOfHumanHistory; // 订阅人体历史库以图搜图回调函数
  27702. LDWORD dwUser; // 用户数据
  27703. } NET_IN_ATTACH_RESULT_HUMAN_HISTORY_BYPIC;
  27704. ///@brief CLIENT_AttachResultOfHumanHistoryByPic 接口输出参数
  27705. typedef struct tagNET_OUT_ATTACH_RESULT_HUMAN_HISTORY_BYPIC
  27706. {
  27707. DWORD dwSize; // 结构体大小
  27708. } NET_OUT_ATTACH_RESULT_HUMAN_HISTORY_BYPIC;
  27709. ///@brief 机动车信息
  27710. typedef struct tagNET_HISTORY_TRAFFIC_CAR_INFO
  27711. {
  27712. char szUID[64]; // 非机动车唯一标识符
  27713. NET_RECT stuBoundingBox; // 包围盒(8192坐标系)
  27714. char szPlateNumber[32]; // 车牌号码
  27715. char szPlateType[32]; // 车牌类型
  27716. char szPlateColor[32]; // 车牌颜色
  27717. char szVehicleColor[32]; // 车身颜色
  27718. char szCategory[32]; // 车辆类型
  27719. char szSpecialCar[32]; // 特种车辆
  27720. char szVehicleSign[64]; // 车辆标识
  27721. UINT nSubBrand; // 车辆子品牌
  27722. UINT nBrandYear; // 车辆年款
  27723. UINT nFurnitureCount; // 摆件数量
  27724. UINT nPendantCount; // 挂件数量
  27725. UINT nAnnualInspectionCount; // 年检标数量
  27726. int nAnnualInspectionShape; // 年检标顺序, 0: 未知 1: 乱排 2: 横排 3: 竖排
  27727. NET_SUNSHADE_STATE emSunShade; // 主驾驶遮阳板状态
  27728. NET_SUNSHADE_STATE emSubSeatSunShade; // 副驾驶遮阳板状态
  27729. UINT nCardCount; // 卡片数量
  27730. NET_SAFEBELT_STATE emSafeBelt; // 主驾驶安全带
  27731. int nCalling; // 是否在打电话, 0: 未知 1: 否 2: 是
  27732. int nPlayPhone; // 是否在玩手机, 0: 未知 1: 否 2: 是
  27733. int nSmoking; // 是否在抽烟, 0: 未知 1: 否 2: 是
  27734. int nSubSeatPeople; // 副驾驶是否有人, 0: 未知 1: 否 2: 是
  27735. NET_SAFEBELT_STATE emSubSeatSafeBelt; // 副驾驶安全带
  27736. int nHoldBaby; // 是否抱小孩, 0: 未知 1: 否 2: 是
  27737. int nSunroof; // 是否有天窗, 0: 未知 1: 否 2: 是
  27738. int nLuggageRack; // 是否有行李架, 0: 未知 1: 否 2: 是
  27739. int nVehicleCollision; // 是否有车辆撞损, 0: 未知 1: 否 2: 是
  27740. int nVehiclePrint; // 是否有喷绘, 0: 未知 1: 否 2: 是
  27741. int nBackupTire; // 是否有备胎, 0: 未知 1: 否 2: 是
  27742. int nTrunk; // 后备箱状态, 0: 未知 1: 关闭 2: 打开
  27743. int nPlateAttribute; // 车牌污损状态, 0: 未知 1: 正常 2: 无牌 3: 部分遮挡/污损 4: 完全遮挡/污损
  27744. int nMuskHide; // 渣土车遮盖状态, 0: 未知 1: 有遮盖 2: 无遮盖空载 3: 无遮盖满载
  27745. NET_PIC_INFO_EX stuImage; // 机动车图片信息
  27746. int nPressParkingStatus; // 车辆停车是否压线, 0: 未知 1: 未压线停车 2: 压线停车
  27747. char szReserved[256]; // 保留字节
  27748. } NET_HISTORY_TRAFFIC_CAR_INFO;
  27749. ///@brief 人体历史库以图搜图主动上报的候选人信息
  27750. typedef struct tagNET_VEHICLEHISTORY_CANDIDATE
  27751. {
  27752. UINT nSimilarity; // 相似度
  27753. int nChannelID; // 抓拍通道号
  27754. NET_HISTORY_TRAFFIC_CAR_INFO stuHistoryTrafficCar; // 历史库人体信息
  27755. NET_TIME stuTime; // 查询人员出现的时间
  27756. NET_FACE_IMAGE_INFO stuSceneImage; // 人体全景图
  27757. char szReserved[748]; // 预留字节数
  27758. } NET_VEHICLEHISTORY_CANDIDATE;
  27759. ///@brief 人体历史库以图搜图主动上报结果信息
  27760. typedef struct tagNET_RESULT_OF_VEHICLEHISTORY_BYPIC
  27761. {
  27762. UINT nSmallPicID; // 小图ID
  27763. UINT nPictureID; // 目标图ID
  27764. NET_VEHICLEHISTORY_CANDIDATE stuCandidateInfo[50]; // 候选人员信息
  27765. UINT nCandidateNum; // 候选人员数量
  27766. char szReserved[1028]; // 预留字节数
  27767. } NET_RESULT_OF_VEHICLEHISTORY_BYPIC;
  27768. ///@brief 人体历史库以图搜图回调信息
  27769. typedef struct tagNET_CB_RESULT_OF_VEHICLE_HISTORY_BYPIC
  27770. {
  27771. UINT nToken; // 查询令牌
  27772. UINT nProgress; // 查询进度百分比
  27773. UINT nTotalCount; // 满足条件的总条数
  27774. int nHistoryResultNum; // 历史库以图搜图查询结果数量
  27775. NET_RESULT_OF_VEHICLEHISTORY_BYPIC stuHistoryResult[32]; // 历史库以图搜图查询结果信息
  27776. char szReserved[1024]; // 预留字节数
  27777. } NET_CB_RESULT_OF_VEHICLE_HISTORY_BYPIC;
  27778. ///@brief 订阅车辆历史库以图搜图回调函数原型, lAttachHandle为CLIENT_AttachResultOfVehicleHistoryByPic接口的返回值
  27779. typedef void (CALLBACK *fResultOfVehicleHistory)(LLONG lAttachHandle, NET_CB_RESULT_OF_VEHICLE_HISTORY_BYPIC* pstuResult, const char *pBinBuf, int nBinBufLen, LDWORD dwUser);
  27780. ///@brief CLIENT_AttachResultOfVehicleHistoryByPic 接口输入参数
  27781. typedef struct tagNET_IN_ATTACH_RESULT_VEHICLE_HISTORY_BYPIC
  27782. {
  27783. DWORD dwSize; // 结构体大小
  27784. UINT nToken; // 查询令牌, 由CLIENT_StartFindFaceRecognition返回
  27785. fResultOfVehicleHistory cbResultOfVehicleHistory; // 订阅人体历史库以图搜图回调函数
  27786. LDWORD dwUser; // 用户数据
  27787. } NET_IN_ATTACH_RESULT_VEHICLE_HISTORY_BYPIC;
  27788. ///@brief CLIENT_AttachResultOfVehicleHistoryByPic 接口输出参数
  27789. typedef struct tagNET_OUT_ATTACH_RESULT_VEHICLE_HISTORY_BYPIC
  27790. {
  27791. DWORD dwSize; // 结构体大小
  27792. } NET_OUT_ATTACH_RESULT_VEHICLE_HISTORY_BYPIC;
  27793. ///@brief CLIENT_DetectFace接口输入参数
  27794. typedef struct __NET_IN_DETECT_FACE
  27795. {
  27796. DWORD dwSize;
  27797. DH_PIC_INFO stPicInfo; // 大图信息
  27798. /* 图片二进制数据 */
  27799. char *pBuffer; // 缓冲地址
  27800. int nBufferLen; // 缓冲数据长度
  27801. }NET_IN_DETECT_FACE;
  27802. ///@brief CLIENT_DetectFace接口输出参数
  27803. typedef struct __NET_OUT_DETECT_FACE
  27804. {
  27805. DWORD dwSize;
  27806. DH_PIC_INFO *pPicInfo; // 检测出的目标图片信息,由用户申请空间,大小为sizeof(DH_PIC_INFO)*nMaxPicNum
  27807. int nMaxPicNum; // 最大目标图片信息个数
  27808. int nRetPicNum; // 实际返回的目标图片个数
  27809. /* 图片二进制数据 */
  27810. char *pBuffer; // 缓冲地址,由用户申请空间,存放检测出的目标图片数据
  27811. int nBufferLen; // 缓冲数据长度
  27812. }NET_OUT_DETECT_FACE;
  27813. ///@brief 人员组操作枚举
  27814. typedef enum tagEM_OPERATE_FACERECONGNITION_GROUP_TYPE
  27815. {
  27816. NET_FACERECONGNITION_GROUP_UNKOWN,
  27817. NET_FACERECONGNITION_GROUP_ADD, // 添加人员组信息
  27818. NET_FACERECONGNITION_GROUP_MODIFY, // 修改人员组信息
  27819. NET_FACERECONGNITION_GROUP_DELETE, // 删除人员组信息
  27820. }EM_OPERATE_FACERECONGNITION_GROUP_TYPE;
  27821. ///@brief 路人库满时覆盖策略
  27822. typedef enum tagEM_PASSERBY_DB_OVERWRITE_TYPE
  27823. {
  27824. EM_OVERWRITE_TYPE_UNKNOWN = -1, // 未知
  27825. EM_OVERWRITE_TYPE_FULL_STOP, // 满停止
  27826. EM_OVERWRITE_TYPE_FULL_COVERAGE, // 满覆盖
  27827. }EM_PASSERBY_DB_OVERWRITE_TYPE;
  27828. ///@brief 路人库去重策略类型
  27829. typedef enum tagEM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE
  27830. {
  27831. EM_DUPLICATE_REMOVE_TYPE_UNKNOWN = -1, // 未知
  27832. EM_DUPLICATE_REMOVE_TYPE_ALL, // 无条件去重
  27833. EM_DUPLICATE_REMOVE_TYPE_TIME, // 按时间间隔去重
  27834. EM_DUPLICATE_REMOVE_TYPE_TIME_SLOT, // 按时间段间隔去重
  27835. }EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE;
  27836. ///@brief 路人库去重策略配置(选填)
  27837. typedef struct tagPASSERBY_DB_DUPLICATE_REMOVE_CONFIG_INFO
  27838. {
  27839. BOOL bEnable; // 使能开关,TRUE:开 FALSE:关
  27840. EM_PASSERBY_DB_DUPLICATE_REMOVE_TYPE emDuplicateRemoveType; // 路人库去重策略类型
  27841. DH_TSECT stuTimeSection[8][6]; // 时间段间隔(EM_DUPLICATE_REMOVE_TYPE 为 EM_DUPLICATE_REMOVE_TYPE_TIME_SLOT有效)
  27842. DWORD dwInterval; // 时间间隔,单位分钟(EM_DUPLICATE_REMOVE_TYPE 为 EM_DUPLICATE_REMOVE_TYPE_TIME有效)
  27843. BYTE byReserved1[4]; // 字节保留
  27844. BYTE byReserved[256]; // 字节保留
  27845. }PASSERBY_DB_DUPLICATE_REMOVE_CONFIG_INFO;
  27846. ///@brief 路人库配置(选填)
  27847. typedef struct tagNET_PASSERBY_DB_CONFIG_INFO
  27848. {
  27849. DWORD dwCapacity; // 路人库最大注册数目
  27850. EM_PASSERBY_DB_OVERWRITE_TYPE emOverWriteType; // 路人库满时覆盖策略
  27851. PASSERBY_DB_DUPLICATE_REMOVE_CONFIG_INFO stuDuplicateRemoveConfigInfo; // 路人库去重策略配置(选填)
  27852. DWORD dwFileHoldTime; // 设置文件保留天数【范围:0~31】单位:天,超过时间将被删除 0:永不过期
  27853. BYTE byReserved1[4]; // 字节对齐
  27854. BYTE byReserved[256]; // 字节保留
  27855. }NET_PASSERBY_DB_CONFIG_INFO;
  27856. ///@brief 人员组信息
  27857. typedef struct tagNET_FACERECONGNITION_GROUP_INFO
  27858. {
  27859. DWORD dwSize;
  27860. EM_FACE_DB_TYPE emFaceDBType; // 人员组类型,详见 EM_FACE_DB_TYPE
  27861. char szGroupId[DH_COMMON_STRING_64]; // 人员组ID,唯一标识一组人员
  27862. char szGroupName[DH_COMMON_STRING_128]; // 人员组名称
  27863. char szGroupRemarks[DH_COMMON_STRING_256]; // 人员组备注信息
  27864. int nGroupSize; // 当前组内人员数
  27865. int nRetSimilarityCount; // 实际返回的库相似度阈值个数
  27866. int nSimilarity[MAX_SIMILARITY_COUNT]; // 库相似度阈值,目标比对高于阈值认为匹配成功
  27867. int nRetChnCount; // 实际返回的通道号个数
  27868. int nChannel[DH_MAX_CAMERA_CHANNEL_NUM]; // 当前组绑定到的视频通道号列表
  27869. UINT nFeatureState[MAX_FEATURESTATE_NUM]; // 目标组建模状态信息:
  27870. // [0]-准备建模的人员数量,不保证一定建模成功
  27871. // [1]-建模失败的人员数量,图片不符合算法要求,需要更换图片
  27872. // [2]-已建模成功人员数量,数据可用于算法进行目标识别
  27873. // [3]-曾经建模成功,但因算法升级变得不可用的数量,重新建模就可用
  27874. EM_REGISTER_DB_TYPE emRegisterDbType; // 注册库类型
  27875. BYTE byReserved1[4]; // 字节对齐
  27876. NET_PASSERBY_DB_CONFIG_INFO stuPasserbyDBConfig; // 路人库配置(选填)
  27877. UINT nGroupSimilarity; // 组相似度阈值,人脸比对高于阈值认为匹配成功
  27878. UINT nMaskSimilarity; // 库口罩相似度阈值,取值范围0-100,可用于口罩检测
  27879. }NET_FACERECONGNITION_GROUP_INFO;
  27880. ///@brief 添加人员组信息
  27881. typedef struct tagNET_ADD_FACERECONGNITION_GROUP_INFO
  27882. {
  27883. DWORD dwSize;
  27884. NET_FACERECONGNITION_GROUP_INFO stuGroupInfo; // 人员组信息
  27885. }NET_ADD_FACERECONGNITION_GROUP_INFO;
  27886. ///@brief 删除人员组信息
  27887. typedef struct tagNET_DELETE_FACERECONGNITION_GROUP_INFO
  27888. {
  27889. DWORD dwSize;
  27890. char szGroupId[DH_COMMON_STRING_64];// 人员组ID,唯一标识一组人员
  27891. }NET_DELETE_FACERECONGNITION_GROUP_INFO;
  27892. ///@brief 修改人员组信息
  27893. typedef struct tagNET_MODIFY_FACERECONGNITION_GROUP_INFO
  27894. {
  27895. DWORD dwSize;
  27896. NET_FACERECONGNITION_GROUP_INFO stuGroupInfo; // 人员组信息
  27897. }NET_MODIFY_FACERECONGNITION_GROUP_INFO;
  27898. ///@brief CLIENT_OperateFaceRecognitionGroup接口输入参数
  27899. typedef struct tagNET_IN_OPERATE_FACERECONGNITION_GROUP
  27900. {
  27901. DWORD dwSize;
  27902. EM_OPERATE_FACERECONGNITION_GROUP_TYPE emOperateType; // 操作类型
  27903. void *pOPerateInfo; // 相关操作信息,由用户申请内存,申请大小参照操作类型对应的结构体
  27904. // 若操作类型为NET_FACERECONGNITION_GROUP_ADD,对应结构体为NET_ADD_FACERECONGNITION_GROUP_INFO;
  27905. // 若操作类型为NET_FACERECONGNITION_GROUP_MODIFY,对应结构体为NET_MODIFY_FACERECONGNITION_GROUP_INFO
  27906. // 若操作类型为NET_FACERECONGNITION_GROUP_DELETE,对应结构体为NET_DELETE_FACERECONGNITION_GROUP_INFO
  27907. }NET_IN_OPERATE_FACERECONGNITION_GROUP;
  27908. ///@brief CLIENT_OperateFaceRecognitionGroup接口输出参数
  27909. typedef struct tagNET_OUT_OPERATE_FACERECONGNITION_GROUP
  27910. {
  27911. DWORD dwSize;
  27912. char szGroupId[DH_COMMON_STRING_64]; // 新增记录的人员组ID,唯一标识一组人员
  27913. }NET_OUT_OPERATE_FACERECONGNITION_GROUP;
  27914. // 获取人员类型最大个数
  27915. #define MAX_FACE_RECOGNITION_SERVER_PERSON_TYPE 64
  27916. ///@brief CLIENT_GetFaceRecognitionPersonType接口输入参数
  27917. typedef struct tagNET_IN_GET_FACERECOGNITION_PERSON_TYPE
  27918. {
  27919. DWORD dwSize; // 结构体大小
  27920. } NET_IN_GET_FACERECOGNITION_PERSON_TYPE;
  27921. ///@brief CLIENT_GetFaceRecognitionPersonType接口输出参数
  27922. typedef struct tagNET_OUT_GET_FACERECOGNITION_PERSON_TYPE
  27923. {
  27924. DWORD dwSize; // 结构体大小
  27925. char szPersonType[MAX_FACE_RECOGNITION_SERVER_PERSON_TYPE][DH_COMMON_STRING_16]; // 人员类型
  27926. int nPersonTypeNum; // 实际返回的人员类型个数
  27927. BYTE byDefault[DH_COMMON_STRING_16]; // 人员类型,详见 EM_PERSON_TYPE
  27928. int nDefaultNum; // 返回的人员个数
  27929. } NET_OUT_GET_FACERECOGNITION_PERSON_TYPE;
  27930. ///@brief CLIENT_GetDevCaps 对应的类型(NET_FACERECOGNITIONSE_CAPS) 输入参数
  27931. typedef struct tagNET_IN_FACERECOGNITIONSERVER_CAPSBILITYQUERY
  27932. {
  27933. DWORD dwSize; // 结构体大小
  27934. } NET_IN_FACERECOGNITIONSERVER_CAPSBILITYQUERY;
  27935. ///@brief 目标检测框颜色
  27936. typedef struct tagNET_FACEBOXCOLOR_CAPS
  27937. {
  27938. BOOL bSupport; // 是否支持目标检测框颜色上报
  27939. NET_COLOR_RGBA stuDefaultColor; // 默认颜色
  27940. BYTE byReserved[1024]; // 保留
  27941. }NET_FACEBOXCOLOR_CAPS;
  27942. ///@brief 是否支持以图搜图
  27943. typedef enum tagEM_SUPPORT_SEARCH_BY_PIC
  27944. {
  27945. EM_SUPPORT_SEARCH_BY_PIC_UNKNOWN, // 未知, IVSS, NVR, DVR大概率支持目标以图搜图,IPC-FR不支持
  27946. EM_SUPPORT_SEARCH_BY_PIC_UNSUPPORT, //不支持
  27947. EM_SUPPORT_SEARCH_BY_PIC_SUPPORT, // 支持
  27948. } EM_SUPPORT_SEARCH_BY_PIC;
  27949. ///@brief CLIENT_GetDevCaps 对应的类型(NET_FACERECOGNITIONSE_CAPS)输出参数
  27950. typedef struct tagNET_OUT_FACERECOGNITIONSERVER_CAPSBILITYQUERY
  27951. {
  27952. DWORD dwSize; // 结构体大小
  27953. BOOL bmultiFind; // 是否支持多通道查找
  27954. UINT nmaxFaceType; // 最多支持添加自定义目标类型数量
  27955. NET_FACEBOXCOLOR_CAPS stuFaceBoxColor; // 目标检测框颜色能力
  27956. BOOL bAsynPush; // 是否支持以图搜图数据推送
  27957. UINT nMaxGroupNum; // 最大目标库数量, 0表示无效
  27958. UINT nMaxPersonNum; // 最大存储目标容量, 0表示无效
  27959. UINT nMultiAppendPicLength; // 批量导图每次接收图片的大小, 单位KB
  27960. EM_SUPPORT_SEARCH_BY_PIC emSupportSearchByPic; // 是否支持以图搜图
  27961. DWORD dwSearchTypeMask; // 以图搜图支持的目标类型掩码, emSupportSearchByPic为EM_SUPPORT_SEARCH_BY_PIC_SUPPORT时有效
  27962. // bit0:目标, bit1:人体, bit2:机动车, bit3:非机动车
  27963. UINT nSinglePicMaxLength; // 单个图片最大大小的值,单位KB
  27964. BOOL bPersonWithMultiFace; // 设备目标注册库是否支持一人多图
  27965. BOOL bSupportIDFromServer; // 是否支持使用目标库GroupID和人员UUID分别对目标库和人员进行管理
  27966. UINT nSupportSMDPicSearchMask; // 是否支持SMD属性特征以图搜图的类型掩码, bit0: 人脸, bit1: 人体, bit2: 机动车, bit3: 非机动车
  27967. } NET_OUT_FACERECOGNITIONSERVER_CAPSBILITYQUERY;
  27968. ///@brief 人员类型操作枚举
  27969. typedef enum tagEM_OPERATE_FACERECOGNITION_PERSON_TYPE
  27970. {
  27971. NET_PERSON_TYPE_UNKOWN, // 未知
  27972. NET_PERSON_TYPE_ADD, // 添加自定义人员类型
  27973. NET_PERSON_TYPE_MODIFY, // 修改人员类型
  27974. NET_PERSON_TYPE_DELETE, // 删除人员类型
  27975. } EM_OPERATE_FACERECOGNITION_PERSON_TYPE;
  27976. ///@brief 添加人员类型信息
  27977. typedef struct tagNET_ADD_FACERECOGNITION_PERSON_TYPE_INFO
  27978. {
  27979. DWORD dwSize; // 结构体大小
  27980. char szType[DH_COMMON_STRING_16]; // 人员类型
  27981. } NET_ADD_FACERECOGNITION_PERSON_TYPE_INFO;
  27982. ///@brief 修改人员类型信息
  27983. typedef struct tagNET_MODIFY_FACERECOGNITION_PERSON_TYPE_INFO
  27984. {
  27985. DWORD dwSize; // 结构体大小
  27986. char szType[DH_COMMON_STRING_16]; // 修改的人员类型
  27987. char szNewType[DH_COMMON_STRING_16]; // 新的人员类型
  27988. } NET_MODIFY_FACERECOGNITION_PERSON_TYPE_INFO;
  27989. ///@brief 删除人员类型信息
  27990. typedef struct tagNET_DELETE_FACERECOGNITION_PERSON_TYPE_INFO
  27991. {
  27992. DWORD dwSize; // 结构体大小
  27993. char szType[DH_COMMON_STRING_16]; // 人员类型
  27994. } NET_DELETE_FACERECOGNITION_PERSON_TYPE_INFO;
  27995. ///@brief CLIENT_OperateFaceRecognitionPersonType接口输入参数
  27996. typedef struct tagNET_IN_OPERATE_FACERECOGNITION_PERSON_TYPE
  27997. {
  27998. DWORD dwSize; // 结构体大小
  27999. EM_OPERATE_FACERECOGNITION_PERSON_TYPE emOperateType; // 操作类型
  28000. void *pOPerateInfo; // 相关操作信息,由用户申请内存,申请大小参照操作类型对应的结构体
  28001. // 若操作类型为NET_PERSON_TYPE_ADD,对应结构体为NET_ADD_FACERECOGNITION_PERSON_TYPE_INFO;
  28002. // 若操作类型为NET_PERSON_TYPE_MODIFY,对应结构体为NET_MODIFY_FACERECOGNITION_PERSON_TYPE_INFO
  28003. // 若操作类型为NET_PERSON_TYPE_DELETE,对应结构体为NET_DELETE_FACERECOGNITION_PERSON_TYPE_INFO
  28004. } NET_IN_OPERATE_FACERECOGNITION_PERSON_TYPE;
  28005. ///@brief CLIENT_OperateFaceRecognitionPersonType接口输出参数 (删除人员类型时有效)
  28006. typedef struct tagNET_OUT_OPERATE_FACERECOGNITION_PERSON_TYPE
  28007. {
  28008. DWORD dwSize; // 结构体大小
  28009. char szFailedCode[DH_COMMON_STRING_16]; // 错误代码
  28010. } NET_OUT_OPERATE_FACERECOGNITION_PERSON_TYPE;
  28011. ///@brief CLIENT_FindGroupInfo接口输入参数
  28012. typedef struct tagNET_IN_FIND_GROUP_INFO
  28013. {
  28014. DWORD dwSize;
  28015. char szGroupId[DH_COMMON_STRING_64];// 人员组ID,唯一标识一组人员,为空表示查询全部人员组信息
  28016. }NET_IN_FIND_GROUP_INFO;
  28017. ///@brief CLIENT_FindGroupInfo接口输出参数
  28018. typedef struct tagNET_OUT_FIND_GROUP_INFO
  28019. {
  28020. DWORD dwSize;
  28021. NET_FACERECONGNITION_GROUP_INFO *pGroupInfos; // 人员组信息,由用户申请空间,大小为sizeof(NET_FACERECONGNITION_GROUP_INFO)*nMaxGroupNum
  28022. int nMaxGroupNum; // 当前申请的数组大小
  28023. int nRetGroupNum; // 设备返回的人员组个数
  28024. }NET_OUT_FIND_GROUP_INFO;
  28025. ///@brief CLIENT_SetGroupInfoForChannel接口输入参数
  28026. typedef struct tagNET_IN_SET_GROUPINFO_FOR_CHANNEL
  28027. {
  28028. DWORD dwSize;
  28029. int nChannelID; // 通道号
  28030. int nGroupIdNum; // 人员组数
  28031. char szGroupId[MAX_GOURP_NUM][DH_COMMON_STRING_64]; // 人员组ID, 填[""]表示视频通道不布控目标组,此时目标识别退化为目标检测
  28032. int nSimilaryNum; // 相似度阈值个数, 与人员组数相同
  28033. int nSimilary[MAX_GOURP_NUM]; // 每个目标组的相似度阈值, 0-100
  28034. }NET_IN_SET_GROUPINFO_FOR_CHANNEL;
  28035. ///@brief CLIENT_SetGroupInfoForChannel接口输出参数
  28036. typedef struct tagNET_OUT_SET_GROUPINFO_FOR_CHANNEL
  28037. {
  28038. DWORD dwSize;
  28039. }NET_OUT_SET_GROUPINFO_FOR_CHANNEL;
  28040. ///@brief CLIENT_GetGroupInfoForChannel接口输入参数
  28041. typedef struct tagNET_IN_GET_GROUPINFO_FOR_CHANNEL
  28042. {
  28043. DWORD dwSize;
  28044. int nChannelID; // 通道号
  28045. }NET_IN_GET_GROUPINFO_FOR_CHANNEL;
  28046. ///@brief CLIENT_GetGroupInfoForChannel接口输出参数
  28047. typedef struct tagNET_OUT_GET_GROUPINFO_FOR_CHANNEL
  28048. {
  28049. DWORD dwSize;
  28050. int nGroupIdNum; // 人员组数
  28051. char szGroupId[MAX_GOURP_NUM][DH_COMMON_STRING_64]; // 人员组ID
  28052. int nSimilaryNum; // 相似度阈值个数, 与人员组数相同
  28053. int nSimilary[MAX_GOURP_NUM]; // 每个目标组的相似度阈值, 0-100
  28054. }NET_OUT_GET_GROUPINFO_FOR_CHANNEL;
  28055. ///@brief 目标查询状态信息回调函数, lAttachHandle是CLIENT_AttachFaceFindState的返回值
  28056. typedef struct tagNET_CB_FACE_FIND_STATE
  28057. {
  28058. DWORD dwSize;
  28059. int nToken; //视频浓缩任务数据库主键ID
  28060. int nProgress; //正常取值范围:0-100,-1,表示查询token不存在(当订阅一个不存在或结束的查询时)
  28061. int nCurrentCount; //目前符合查询条件的目标数量
  28062. }NET_CB_FACE_FIND_STATE;
  28063. ///@brief 回调函数
  28064. typedef void (CALLBACK *fFaceFindState)(LLONG lLoginID, LLONG lAttachHandle, NET_CB_FACE_FIND_STATE* pstStates, int nStateNum, LDWORD dwUser);
  28065. ///@brief CLIENT_AttachFaceFindState接口输入参数
  28066. typedef struct tagNET_IN_FACE_FIND_STATE
  28067. {
  28068. DWORD dwSize; //结构体大小,必须填写
  28069. int nTokenNum; //查询令牌数,为0时,表示订阅所有的查询任务
  28070. int *nTokens; //查询令牌,由用户申请内存,大小为sizeof(int)*nTokenNum
  28071. fFaceFindState cbFaceFindState; //回调函数
  28072. LDWORD dwUser; //用户数据
  28073. }NET_IN_FACE_FIND_STATE;
  28074. ///@brief CLIENT_AttachFaceFindState接口输出参数
  28075. typedef struct tagNET_OUT_FACE_FIND_STATE
  28076. {
  28077. DWORD dwSize;
  28078. }NET_OUT_FACE_FIND_STATE;
  28079. ///@brief CLIENT_FaceRecognitionSetSearchImageInfo 接口输入参数
  28080. typedef struct tagNET_IN_FACE_RECOGNITION_SET_SEARCH_IMAGE_INFO
  28081. {
  28082. DWORD dwSize;
  28083. int nChannel; // 视频分析通道号
  28084. char szFilePath[DH_COMMON_STRING_256]; // 人文件路径,目标图片路径
  28085. }NET_IN_FACE_RECOGNITION_SET_SEARCH_IMAGE_INFO;
  28086. ///@brief CLIENT_FaceRecognitionSetSearchImageInfo 接口输出参数
  28087. typedef struct tagNET_OUT_FACE_RECOGNITION_SET_SEARCH_IMAGE_INFO
  28088. {
  28089. DWORD dwSize;
  28090. }NET_OUT_FACE_RECOGNITION_SET_SEARCH_IMAGE_INFO;
  28091. ///@brief 布控的视频通道信息
  28092. typedef struct tagNET_DISPOSITION_CHANNEL_INFO
  28093. {
  28094. int nChannelID; // 视频通道号
  28095. int nSimilary; // 相似度阈值, 0-100
  28096. char szChannelCode[64]; // 平台下发的通道唯一编码,与实际视频通道号一一对应
  28097. BYTE bReserved[192]; // 保留
  28098. } NET_DISPOSITION_CHANNEL_INFO;
  28099. ///@brief CLIENT_FaceRecognitionPutDisposition 接口输入参数
  28100. typedef struct tagNET_IN_FACE_RECOGNITION_PUT_DISPOSITION_INFO
  28101. {
  28102. DWORD dwSize;
  28103. char szGroupId[DH_COMMON_STRING_64]; // 人员组ID
  28104. int nDispositionChnNum; // 布控视频通道个数
  28105. NET_DISPOSITION_CHANNEL_INFO stuDispositionChnInfo[DH_MAX_CAMERA_CHANNEL_NUM]; // 布控视频通道信息
  28106. } NET_IN_FACE_RECOGNITION_PUT_DISPOSITION_INFO;
  28107. ///@brief CLIENT_FaceRecognitionPutDisposition 接口输出参数
  28108. typedef struct tagNET_OUT_FACE_RECOGNITION_PUT_DISPOSITION_INFO
  28109. {
  28110. DWORD dwSize;
  28111. int nReportCnt; // 通道布控结果个数
  28112. BOOL bReport[DH_MAX_CAMERA_CHANNEL_NUM]; // 通道布控结果, TRUE追加成功, FALSE追加失败
  28113. } NET_OUT_FACE_RECOGNITION_PUT_DISPOSITION_INFO;
  28114. ///@brief CLIENT_FaceRecognitionDelDisposition 接口输入参数
  28115. typedef struct tagNET_IN_FACE_RECOGNITION_DEL_DISPOSITION_INFO
  28116. {
  28117. DWORD dwSize;
  28118. char szGroupId[DH_COMMON_STRING_64]; // 人员组ID
  28119. int nDispositionChnNum; // 撤控视频通道个数
  28120. int nDispositionChn[DH_MAX_CAMERA_CHANNEL_NUM]; // 撤控视频通道列表
  28121. } NET_IN_FACE_RECOGNITION_DEL_DISPOSITION_INFO;
  28122. ///@brief CLIENT_FaceRecognitionDelDisposition 接口输出参数
  28123. typedef struct tagNET_OUT_FACE_RECOGNITION_DEL_DISPOSITION_INFO
  28124. {
  28125. DWORD dwSize;
  28126. int nReportCnt; // 通道布控结果个数
  28127. BOOL bReport[DH_MAX_CAMERA_CHANNEL_NUM]; // 通道布控结果, TRUE删除成功, FALSE删除失败
  28128. } NET_OUT_FACE_RECOGNITION_DEL_DISPOSITION_INFO;
  28129. #define MAX_BIG_PIC_NUM 50 // 大图搜小图最大支持的大图数量
  28130. #define MAX_TOKEN_NUM 128 // 最大查询令牌数量
  28131. ///@brief 目标类型
  28132. typedef enum tagEM_DETECT_OBJECT_TYPE
  28133. {
  28134. EM_DETECT_OBJECT_TYPE_UNKNOWN = 0, // 未知
  28135. EM_DETECT_OBJECT_TYPE_FACE, // 目标
  28136. EM_DETECT_OBJECT_TYPE_VEHICLE, // 车辆
  28137. EM_DETECT_OBJECT_TYPE_STRUCTLIZE, // 结构化
  28138. } EM_DETECT_OBJECT_TYPE;
  28139. ///@brief 处理类型
  28140. typedef enum tagEM_DETECT_PROCESS_TYPE
  28141. {
  28142. EM_DETECT_PROCESS_TYPE_UNKNOWN = 0, // 当此值为0或者不存在,就做检测,与EM_DETECT_PROCESS_TYPE_DETECT一致
  28143. EM_DETECT_PROCESS_TYPE_FEATURE, // 提取特征
  28144. EM_DETECT_PROCESS_TYPE_ATTRIBUTE, // 提取属性
  28145. EM_DETECT_PROCESS_TYPE_DETECT, // 检测
  28146. } EM_DETECT_PROCESS_TYPE;
  28147. ///@brief 坐标系类型
  28148. typedef enum tagEM_COORDINATE_TYPE
  28149. {
  28150. EM_COORDINATE_TYPE_UNKNOWN = 0, // 未知
  28151. EM_COORDINATE_TYPE_ABSOLUTE, // 绝对坐标
  28152. EM_COORDINATE_TYPE_8192, // 8192坐标
  28153. } EM_COORDINATE_TYPE;
  28154. ///@brief 大图信息(大图抠小图功能)
  28155. typedef struct tagNET_DETECT_BIG_PIC_INFO
  28156. {
  28157. int nPicID; // 大图ID
  28158. DWORD dwOffSet; // 文件在二进制数据块中的偏移位置, 单位:字节
  28159. DWORD dwFileLenth; // 文件大小, 单位:字节
  28160. DWORD dwWidth; // 图片宽度, 单位:像素
  28161. DWORD dwHeight; // 图片高度, 单位:像素
  28162. int nDetectRegionNum; // 规则检测区域顶点数
  28163. NET_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  28164. BYTE bReserved[44]; // 保留字节
  28165. }NET_DETECT_BIG_PIC_INFO;
  28166. ///@brief 大图信息(大图抠小图功能)
  28167. typedef struct tagNET_DETECT_BIG_PIC_INFO_EX
  28168. {
  28169. int nPicID; // 大图ID
  28170. DWORD dwOffSet; // 文件在二进制数据块中的偏移位置, 单位:字节
  28171. DWORD dwFileLenth; // 文件大小, 单位:字节
  28172. DWORD dwWidth; // 图片宽度, 单位:像素
  28173. DWORD dwHeight; // 图片高度, 单位:像素
  28174. int nDetectRegionNum; // 规则检测区域顶点数
  28175. NET_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  28176. char szRequestID[64]; // 请求图片ID
  28177. char szPath[256]; // 通过URL下载图片
  28178. EM_COORDINATE_TYPE emCoordinateType; // 坐标系类型
  28179. EM_DETECT_OBJECT_TYPE emObjectType; // 目标类型
  28180. UINT nTargetType; // 按位组合,全1表示全检测,1表示目标,2表示人体,4表示机动车,8表示非机动整体, 16表示非机动车
  28181. int nProcessTypeNum; // 处理类型个数
  28182. EM_DETECT_PROCESS_TYPE emProcessType[8]; // 处理类型
  28183. char* szData; // 全景大图数据,经过Base64后的字符串 无该字段或该字段为空则使用二进制图片数据
  28184. int nDataLen; // 全景大图数据长度
  28185. BYTE bReserved[1016]; // 保留字节
  28186. }NET_DETECT_BIG_PIC_INFO_EX;
  28187. ///@brief CLIENT_FaceRecognitionDetectMultiFace 接口输入参数
  28188. typedef struct tagNET_IN_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO
  28189. {
  28190. DWORD dwSize; // 此结构体的大小
  28191. int nBigPicNum; // 大图张数
  28192. NET_DETECT_BIG_PIC_INFO stuBigPicInfo[MAX_BIG_PIC_NUM]; // 大图信息(推荐使用stuBigPicInfoEx)
  28193. /* 图片二进制数据 */
  28194. char *pBuffer; // 缓冲地址
  28195. int nBufferLen; // 缓冲数据长度
  28196. EM_OBJECT_TYPE emDetectObjType; // 目标类型
  28197. BOOL bBigPicInfoExEnable; // stuBigPicInfoEx是否有效
  28198. int nBigPicNumEx; // 大图张数
  28199. NET_DETECT_BIG_PIC_INFO_EX stuBigPicInfoEx[MAX_BIG_PIC_NUM]; // 大图信息(扩展)
  28200. UINT nToken; // 查询令牌,没有则为0
  28201. } NET_IN_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO;
  28202. ///@brief CLIENT_FaceRecognitionDetectMultiFace 接口输出参数
  28203. typedef struct tagNET_OUT_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO
  28204. {
  28205. DWORD dwSize; // 此结构体的大小
  28206. } NET_OUT_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO;
  28207. ///@brief 大图中小图的信息
  28208. typedef struct tagNET_SMALL_PIC_INFO
  28209. {
  28210. int nSmallPicId; // 小图ID
  28211. NET_RECT stuRect; // 小图在大图中的位置
  28212. EM_OBJECT_TYPE emDetectObjType; // 目标类型
  28213. BYTE bReserved[124]; // 保留字节
  28214. } NET_SMALL_PIC_INFO;
  28215. ///@brief 大图检测小图结果错误码
  28216. typedef enum tagEM_MULTIFACE_DETECT_ERRCODE
  28217. {
  28218. EM_MULTIFACE_DETECT_UNKNOWN = -1, // 未知
  28219. EM_MULTIFACE_DETECT_SUCCESS, // 成功
  28220. EM_MULTIFACE_DETECT_DECODE_FAIL, // 解码失败
  28221. EM_MULTIFACE_DETECT_NO_OBJECT, // 未检测到有效目标
  28222. } EM_MULTIFACE_DETECT_ERRCODE;
  28223. ///@brief 一张大图检测到小图的结果
  28224. typedef struct tagNET_IMAGE_RELATION
  28225. {
  28226. int nBigPicId; // 大图ID
  28227. int nSmallPicNum; // 大图中小图张数
  28228. NET_SMALL_PIC_INFO stuSmallPicInfo[MAX_SMALLPIC_NUM]; // 大图中小图的信息
  28229. EM_MULTIFACE_DETECT_ERRCODE emDetectErrCode; // 大图检测小图结果错误码
  28230. BYTE bReserved[124]; // 保留字节
  28231. } NET_IMAGE_RELATION;
  28232. ///@brief 订阅大图检测小图进度回调结构体
  28233. typedef struct tagNET_CB_MULTIFACE_DETECT_STATE
  28234. {
  28235. int nProgress; // 检测进度
  28236. NET_IMAGE_RELATION stuImageRelation; // 大图检测小图的检测结果
  28237. BYTE byReserved[512]; //保留字节
  28238. } NET_CB_MULTIFACE_DETECT_STATE;
  28239. ///@brief 订阅大图检测小图进度回调函数原型
  28240. typedef void (CALLBACK *fMultiFaceDetectState)(LLONG lAttachHandle, NET_CB_MULTIFACE_DETECT_STATE *pstStates, LDWORD dwUser);
  28241. ///@brief 一张大图检测结果列表
  28242. typedef struct tagNET_IMAGE_RELATION_LIST
  28243. {
  28244. char* pszFeature; // base64特征值
  28245. int nFeatureLen; // base64特征值长度
  28246. char szFeatureID[64]; // 特征ID
  28247. NET_FACE_DATA stuFaceData; // 目标数据
  28248. HUMAN_ATTRIBUTES_INFO stuHumanAttributes; // 人体属性
  28249. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  28250. char szAlgorithmVersion[32]; // 特征版本号
  28251. char szVendor[32]; // 厂商
  28252. EM_OBJECT_TYPE emObjectType; // 目标类型
  28253. DH_POINT stuRectPoint[2]; // 矩形区域
  28254. NET_HISTORY_TRAFFIC_CAR_INFO stuHistoryTrafficCar; // 机动车属性
  28255. BYTE bReserved[1024]; // 保留字节
  28256. } NET_IMAGE_RELATION_LIST;
  28257. ///@brief 小图信息
  28258. typedef struct tagNET_IMAGE_RELATION_EX_IMAGEINFO
  28259. {
  28260. int nOffset; // 在二进制数据块中的偏移
  28261. int nLength; // 图片大小,单位字节
  28262. char szReserved[16]; // 预留字节
  28263. }NET_IMAGE_RELATION_EX_IMAGEINFO;
  28264. ///@brief 一张大图检测到小图的结果
  28265. typedef struct tagNET_IMAGE_RELATION_EX
  28266. {
  28267. char szRequestID[64]; // 图片的请求ID
  28268. int nBigPicId; // 大图ID
  28269. int nSmallPicNum; // 大图中小图张数
  28270. NET_SMALL_PIC_INFO stuSmallPicInfo[MAX_SMALLPIC_NUM]; // 大图中小图的信息
  28271. EM_MULTIFACE_DETECT_ERRCODE emDetectErrCode; // 大图检测小图结果错误码
  28272. NET_IMAGE_RELATION_LIST stuImageRelation[32]; // 大图检测结果列表
  28273. int nstuImageRelationNum; // 大图检测结果列表个数
  28274. UINT nToken; // 查询令牌
  28275. NET_IMAGE_RELATION_EX_IMAGEINFO stuImageInfo[32]; // 小图信息
  28276. int nImageNum; // 小图信息个数
  28277. char* pData; // 小图图片数据
  28278. BYTE bReserved[248]; // 保留字节
  28279. } NET_IMAGE_RELATION_EX;
  28280. ///@brief 订阅大图检测小图进度回调结构体
  28281. typedef struct tagNET_CB_MULTIFACE_DETECT_STATE_EX
  28282. {
  28283. int nProgress; // 检测进度
  28284. NET_IMAGE_RELATION_EX stuImageRelation; // 大图检测小图的检测结果
  28285. BYTE byReserved[512]; // 保留字节
  28286. } NET_CB_MULTIFACE_DETECT_STATE_EX;
  28287. ///@brief 订阅大图检测小图进度回调函数原型
  28288. typedef void (CALLBACK *fMultiFaceDetectStateEx)(LLONG lAttachHandle, NET_CB_MULTIFACE_DETECT_STATE_EX *pstStates, LDWORD dwUser);
  28289. ///@brief CLIENT_AttachDetectMultiFaceState 接口输入参数
  28290. typedef struct tagNET_IN_MULTIFACE_DETECT_STATE
  28291. {
  28292. DWORD dwSize; // 此结构体大小
  28293. BYTE bReserved[4]; // 用于字节对齐
  28294. fMultiFaceDetectState cbMultiFaceDetectState; //回调函数
  28295. LDWORD dwUser; //用户数据
  28296. fMultiFaceDetectStateEx cbMultiFaceDetectStateEx; // 回调函数扩展(推荐使用)
  28297. UINT nTokens[10]; // 查询令牌
  28298. int nTokensNum; // 查询令牌个数, 若为0,则默认订阅token为0的检测, 若为-1表示订阅全部token
  28299. } NET_IN_MULTIFACE_DETECT_STATE;
  28300. ///@brief CLIENT_AttachDetectMultiFaceState 接口输出参数
  28301. typedef struct tagNET_OUT_MULTIFACE_DETECT_STATE
  28302. {
  28303. DWORD dwSize; // 此结构体大小
  28304. } NET_OUT_MULTIFACE_DETECT_STATE;
  28305. ///@brief 人员重建信息
  28306. typedef struct tagNET_REABSTRACT_PERSON_INFO
  28307. {
  28308. char szUID[DH_MAX_PERSON_ID_LEN]; // 人员唯一标识符
  28309. BYTE bReserved[1024];
  28310. } NET_REABSTRACT_PERSON_INFO;
  28311. ///@brief CLIENT_FaceRecognitionReAbstract 接口输入参数
  28312. typedef struct tagNET_IN_FACE_RECOGNITION_REABSTRACT_INFO
  28313. {
  28314. DWORD dwSize; // 此结构体大小
  28315. int nPersonNum; // 重新建模的人员个数
  28316. NET_REABSTRACT_PERSON_INFO *pstReAbstractPersonInfo; // 重新建模的人员信息
  28317. } NET_IN_FACE_RECOGNITION_REABSTRACT_INFO;
  28318. ///@brief CLIENT_FaceRecognitionReAbstract 接口输出参数
  28319. typedef struct tagNET_OUT_FACE_RECOGNITION_REABSTRACT_INFO
  28320. {
  28321. DWORD dwSize; // 此结构体大小
  28322. } NET_OUT_FACE_RECOGNITION_REABSTRACT_INFO;
  28323. ///@brief CLIENT_FaceRecognitionGroupReAbstract 接口输入参数
  28324. typedef struct tagNET_IN_FACE_RECOGNITION_GROUP_REABSTRACT_INFO
  28325. {
  28326. DWORD dwSize; // 此结构体大小
  28327. int nGroupNum; // 人员组个数
  28328. char szGroupId[MAX_GOURP_NUM][DH_COMMON_STRING_64]; // 人员组ID
  28329. } NET_IN_FACE_RECOGNITION_GROUP_REABSTRACT_INFO;
  28330. ///@brief CLIENT_FaceRecognitionGroupReAbstract 接口输出参数
  28331. typedef struct tagNET_OUT_FACE_RECOGNITION_GROUP_REABSTRACT_INFO
  28332. {
  28333. DWORD dwSize; // 此结构体大小
  28334. UINT nToken; // 重建令牌,可以用该令牌来中止重建
  28335. } NET_OUT_FACE_RECOGNITION_GROUP_REABSTRACT_INFO;
  28336. ///@brief CLIENT_FaceRecognitionStopGroupReAbstract 接口输入参数
  28337. typedef struct tagNET_IN_FACE_RECOGNITION_STOP_GROUP_REABSTRACT_INFO
  28338. {
  28339. DWORD dwSize; // 此结构体大小
  28340. UINT nToken; // 重建令牌
  28341. } NET_IN_FACE_RECOGNITION_STOP_GROUP_REABSTRACT_INFO;
  28342. ///@brief CLIENT_FaceRecognitionStopGroupReAbstract 接口输出参数
  28343. typedef struct tagNET_OUT_FACE_RECOGNITION_STOP_GROUP_REABSTRACT_INFO
  28344. {
  28345. DWORD dwSize; // 此结构体大小
  28346. } NET_OUT_FACE_RECOGNITION_STOP_GROUP_REABSTRACT_INFO;
  28347. ///@brief CLIENT_GetFaceParam 接口输入参数
  28348. typedef struct tagNET_IN_GET_FACE_PARAM
  28349. {
  28350. DWORD dwSize; // 此结构体大小
  28351. int nChannel; // 通道号
  28352. } NET_IN_GET_FACE_PARAM;
  28353. ///@brief CLIENT_GetFaceParam 接口输出参数
  28354. typedef struct tagNET_OUT_GET_FACE_PARAM
  28355. {
  28356. DWORD dwSize; // 此结构体大小
  28357. int nRegMinQuality; // 图片质量阀值, 1-100
  28358. UINT nMinFaceSize; // 入库最小目标像素过滤, 真实分辨率下, 单位像素, 默认0表示不生效
  28359. unsigned short nConfidence; // 入库目标检测置信度过滤, 1-100, 默认0表示不生效
  28360. unsigned short nAlignScore; // 入库目标关键点置信度过滤, 1-100, 默认0表示不生效
  28361. short nRoll; // 入库目标角度过滤 翻滚角, -90~90, 默认0表示不生效
  28362. short nPitch; // 入库目标角度过滤 俯仰角, -90~90, 默认0表示不生效
  28363. short nYaw; // 入库目标角度过滤 航偏角, -90~90, 默认0表示不生效
  28364. BYTE reserved[2]; // 保留字节
  28365. } NET_OUT_GET_FACE_PARAM;
  28366. ///@brief CLIENT_SetFaceParam 接口输入参数
  28367. typedef struct tagNET_IN_SET_FACE_PARAM
  28368. {
  28369. DWORD dwSize; // 此结构体大小
  28370. int nChannel; // 通道号
  28371. int nRegMinQuality; // 图片质量阀值, 1-100
  28372. UINT nMinFaceSize; // 入库最小目标像素过滤, 真实分辨率下, 单位像素, 默认0表示不生效
  28373. unsigned short nConfidence; // 入库目标检测置信度过滤, 1-100, 默认0表示不生效
  28374. unsigned short nAlignScore; // 入库目标关键点置信度过滤, 1-100, 默认0表示不生效
  28375. short nRoll; // 入库目标角度过滤 翻滚角, -90~90, 默认0表示不生效
  28376. short nPitch; // 入库目标角度过滤 俯仰角, -90~90, 默认0表示不生效
  28377. short nYaw; // 入库目标角度过滤 航偏角, -90~90, 默认0表示不生效
  28378. BYTE reserved[6]; // 保留字节
  28379. } NET_IN_SET_FACE_PARAM;
  28380. ///@brief CLIENT_SetFaceParam 接口输出参数
  28381. typedef struct tagNET_OUT_SET_FACE_PARAM
  28382. {
  28383. DWORD dwSize; // 此结构体大小
  28384. } NET_OUT_SET_FACE_PARAM;
  28385. ///@brief 权限组信息
  28386. typedef struct tagNET_PER_GROUP_INFO
  28387. {
  28388. UINT nPerGroupID; // 权限组编号
  28389. char szName[128]; // 权限组名称
  28390. DH_TSECT stuTimeSection[DH_N_SCHEDULE_TSECT][DH_N_REC_TSECT]; // 第一维前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段
  28391. int nChannelCount; // 拥有权限的通道个数
  28392. UINT nPerChannel[600]; // 拥有权限的通道
  28393. char szComment[256]; // 备注
  28394. BYTE byReserved[256]; // 保留字节
  28395. } NET_PER_GROUP_INFO;
  28396. ///@brief 更新权限错误码
  28397. typedef enum tagNET_EM_OPERATE_ERROR_CODE
  28398. {
  28399. NET_EM_OPERATE_ERROR_CODE_UNKNOWN = -1, // 未知
  28400. NET_EM_OPERATE_ERROR_CODE_SUCCESS = 0, // 成功
  28401. NET_EM_OPERATE_ERROR_CODE_GROUP_NOT_EXIST = 1, // 权限组不存在
  28402. } NET_EM_OPERATE_ERROR_CODE;
  28403. ///@brief 修改权限错误码
  28404. typedef enum tagNET_EM_MODIFY_ERROR_CODE
  28405. {
  28406. NET_EM_MODIFY_ERROR_CODE_UNKNOWN = -1, // 未知
  28407. NET_EM_MODIFY_ERROR_CODE_SUCCESS = 0, // 成功
  28408. NET_EM_MODIFY_ERROR_CODE_GROUP_NOT_EXIST = 1, // 权限组不存在
  28409. NET_EM_MODIFY_ERROR_CODE_UID_NOT_EXIST = 2, // 人员UID不存在或为空
  28410. } NET_EM_MODIFY_ERROR_CODE;
  28411. ///@brief 权限操作类型
  28412. typedef enum tagNET_EM_PERMISSSION_OPERATE_TYPE
  28413. {
  28414. NET_EM_OPERATE_TYPE_UNKNOWN = -1, // 未知
  28415. NET_EM_OPERATE_TYPE_ADD = 0, // 增加权限
  28416. NET_EM_OPERATE_TYPE_MODIFY = 1, // 修改权限
  28417. NET_EM_OPERATE_TYPE_DELETE = 2, // 删除权限
  28418. } NET_EM_PERMISSSION_OPERATE_TYPE;
  28419. ///@brief CLIENT_OperatePerGroup 接口输入参数
  28420. typedef struct tagNET_IN_OPERATE_PER_GROUP
  28421. {
  28422. DWORD dwSize; // 结构体大小
  28423. int nGroupCount; // 实际权限组个数
  28424. NET_PER_GROUP_INFO stuGroupInfo[100]; // 权限组信息
  28425. NET_EM_PERMISSSION_OPERATE_TYPE emOperateType; // 操作类型
  28426. } NET_IN_OPERATE_PER_GROUP;
  28427. ///@brief CLIENT_OperatePerGroup 接口输出参数
  28428. typedef struct tagNET_OUT_OPERATE_PER_GROUP
  28429. {
  28430. DWORD dwSize; // 结构体大小
  28431. int nGroupCount; // 权限组个数
  28432. int nPerGroupID[100]; // 权限组编号
  28433. int nErrCodeCount; // 错误码个数
  28434. NET_EM_OPERATE_ERROR_CODE emErrCode[100]; // 错误码
  28435. } NET_OUT_OPERATE_PER_GROUP;
  28436. ///@brief 人员权限信息
  28437. typedef struct tagNET_PERMISSION_PERSON_INFO
  28438. {
  28439. UINT nUID; // 人员的UID
  28440. int nGroupCount; // 人员权限组个数
  28441. int nPerGroupID[100]; // 人员的权限组编号, 范围0-99
  28442. BYTE byReserved[128]; // 保留字节
  28443. } NET_PERMISSION_PERSON_INFO;
  28444. ///@brief CLIENT_ModifyPermission 接口输入参数
  28445. typedef struct tagNET_IN_MODIFY_PERMISSION
  28446. {
  28447. DWORD dwSize; // 结构体大小
  28448. int nPersonCount; // 人员个数
  28449. NET_PERMISSION_PERSON_INFO stuPersonInfo[300]; // 人员权限信息
  28450. } NET_IN_MODIFY_PERMISSION;
  28451. ///@brief CLIENT_ModifyPermission 接口输出参数
  28452. typedef struct tagNET_OUT_MODIFY_PERMISSION
  28453. {
  28454. DWORD dwSize; // 结构体大小
  28455. int nUIDCount; // UID个数
  28456. int nUID[300]; // UID
  28457. int nErrCodeCount; // 错误码个数
  28458. NET_EM_MODIFY_ERROR_CODE emErrCode[300]; // 错误码
  28459. } NET_OUT_MODIFY_PERMISSION;
  28460. ///@brief 人员的权限组信息开始查询条件
  28461. typedef struct tagNET_STARTFIND_PERMISSION_CONDITION
  28462. {
  28463. UINT nUIDCount; // 人员唯一标识个数,值为0表示查询组内的所有人员权限信息
  28464. UINT nUIDs[1024]; // 人员唯一标识列表
  28465. UINT nGroupIDCount; // 查询库个数,值为0表示查询所有组内的人员权限信息
  28466. UINT nGroupID[128]; // 查询库列表
  28467. char szReserved[2048]; // 保留字节
  28468. }NET_STARTFIND_PERMISSION_CONDITION;
  28469. ///@brief CLIENT_StartFindPermission 接口输入参数
  28470. typedef struct tagNET_IN_STARTFIND_PERMISSION
  28471. {
  28472. DWORD dwSize; // 结构体大小
  28473. char szReserved[4]; // 字节对齐
  28474. NET_STARTFIND_PERMISSION_CONDITION stuPermissionCondition; // 查询条件,值为空时表示查询设备上的所有人员的权限信息
  28475. }NET_IN_STARTFIND_PERMISSION;
  28476. ///@brief CLIENT_StartFindPermission 接口输出参数
  28477. typedef struct tagNET_OUT_STARTFIND_PERMISSION
  28478. {
  28479. DWORD dwSize; // 结构体大小
  28480. int nTotalCount; // 符合此次查询条件的结果总条数
  28481. }NET_OUT_STARTFIND_PERMISSION;
  28482. ///@brief 人员的权限组信息查询条件
  28483. typedef struct tagNET_DOFIND_PERMISSION_CONDITION
  28484. {
  28485. UINT nBeginNumber; // 查询起始序号,表示从nBeginNumber条记录开始,取nCount条记录返回,最大值不超过CLIENT_StartFindPermission出参中nTotalCount
  28486. int nCount; // 每次获取的条数,不应超过1024
  28487. char szReserved[128]; // 保留字节
  28488. }NET_DOFIND_PERMISSION_CONDITION;
  28489. ///@brief CLIENT_DoFindPermission 接口输入参数
  28490. typedef struct tagNET_IN_DOFIND_PERMISSION
  28491. {
  28492. DWORD dwSize; // 结构体大小
  28493. char szReserved[4]; // 字节对齐
  28494. NET_DOFIND_PERMISSION_CONDITION stuPermissionCondition; // 查询条件,值为空时表示查询设备上的所有人员的权限信息
  28495. }NET_IN_DOFIND_PERMISSION;
  28496. ///@brief 候选人员信息
  28497. typedef struct tagNET_PERMISSION_CANDIDATES_INFO
  28498. {
  28499. UINT nUID; // 人员UID
  28500. int nPerGroupIDCount; // 权限组编号个数
  28501. UINT nPerGroupID[100]; // 权限组编号,范围0-99
  28502. char szReserved[1024]; // 保留字节
  28503. }NET_PERMISSION_CANDIDATES_INFO;
  28504. ///@brief CLIENT_DoFindPermission 接口输出参数
  28505. typedef struct tagNET_OUT_DOFIND_PERMISSION
  28506. {
  28507. DWORD dwSize; // 结构体大小
  28508. int nCadidatesFound; // 实际返回的查询到的条数
  28509. NET_PERMISSION_CANDIDATES_INFO* pstCandidates; // 候选人员信息列表,不超过1024, 实际返回个数同nCadidatesFound,内存由用户申请释放,申请大小不小于nMaxNum*sizeof(NET_PERMISSION_CANDIDATES_INFO)
  28510. int nMaxNum; // 用户分配内存的个数
  28511. char szReserved[4]; // 字节对齐
  28512. }NET_OUT_DOFIND_PERMISSION;
  28513. ///@brief CLIENT_GetFaceRecognitionAppendToken 接口输入参数
  28514. typedef struct tagNET_IN_GET_FACE_RECOGNITION_APPEND_TOKEN
  28515. {
  28516. DWORD dwSize; // 结构体大小
  28517. }NET_IN_GET_FACE_RECOGNITION_APPEND_TOKEN;
  28518. ///@brief CLIENT_GetFaceRecognitionAppendToken 接口输出参数
  28519. typedef struct tagNET_OUT_GET_FACE_RECOGNITION_APPEND_TOKEN
  28520. {
  28521. DWORD dwSize; // 结构体大小
  28522. UINT nToken; // 导入的令牌
  28523. }NET_OUT_GET_FACE_RECOGNITION_APPEND_TOKEN;
  28524. ///////////////////////////// 刻录上传 /////////////////////////////////
  28525. ///@brief fBurnCheckCallBack 参数
  28526. typedef struct tagNET_CB_BURN_CHECK_STATE
  28527. {
  28528. DWORD dwSize;
  28529. const char* szType; // 消息类型
  28530. // "Checking": 校验中
  28531. // "CheckResult": 校验结果
  28532. BOOL bCheckResult; // 校验结果, 用于"CheckResult", TRUE-成功, FALSE-失败
  28533. BYTE byProgress; // 校验进度, 用于"Checking", 百分比, 0~100
  28534. BYTE reserved[3];
  28535. } NET_CB_BURN_CHECK_STATE;
  28536. ///@brief 刻录校验回调函数原形, lAttachHandle是CLIENT_AttachBurnCheckState的返回值
  28537. typedef void (CALLBACK *fBurnCheckCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_CB_BURN_CHECK_STATE* pstState, void* reserved, LDWORD dwUser);
  28538. ///@brief CLIENT_AttachBurnCheckState 接口的输入参数(监听刻录校验状态)
  28539. typedef struct tagNET_IN_ATTACH_BURN_CHECK
  28540. {
  28541. DWORD dwSize;
  28542. fBurnCheckCallBack cbBurnCheck; // 刻录校验回调
  28543. LDWORD dwUser; // 用户数据
  28544. } NET_IN_ATTACH_BURN_CHECK;
  28545. ///@brief CLIENT_AttachBurnCheckState 接口的输出参数(监听刻录校验状态)
  28546. typedef struct tagNET_OUT_ATTACH_BURN_CHECK
  28547. {
  28548. DWORD dwSize;
  28549. } NET_OUT_ATTACH_BURN_CHECK;
  28550. ///////////////////////////// 逻辑设备 /////////////////////////////////
  28551. ///@brief 回调信息
  28552. typedef struct tagNET_CB_CAMERASTATE
  28553. {
  28554. DWORD dwSize;
  28555. int nChannel; // 通道
  28556. CONNECT_STATE emConnectState; // 连接状态
  28557. }NET_CB_CAMERASTATE;
  28558. ///@brief CLIENT_AttachCameraState()回调函数原形, 每次1条,pBuf->dwSize == nBufLen
  28559. typedef void (CALLBACK *fCameraStateCallBack) (LLONG lLoginID, LLONG lAttachHandle, const NET_CB_CAMERASTATE *pBuf, int nBufLen, LDWORD dwUser);
  28560. ///@brief CLIENT_AttachCameraState()输入参数
  28561. typedef struct tagNET_IN_CAMERASTATE
  28562. {
  28563. DWORD dwSize;
  28564. int * pChannels; // 观察的通道号,数组元素中,有一个是-1,则观察所有通道
  28565. // 由用户申请内存,大小为sizeof(int)*nChannels
  28566. int nChannels; // pChannels指针指向的数组元素个数
  28567. fCameraStateCallBack cbCamera; // 状态回调函数
  28568. LDWORD dwUser; // 用户数据
  28569. }NET_IN_CAMERASTATE;
  28570. ///@brief CLIENT_AttachCameraState()输出参数
  28571. typedef struct tagNET_OUT_CAMERASTATE
  28572. {
  28573. DWORD dwSize;
  28574. int nObjectID; // 物体ID,每个ID表示一个唯一的物体
  28575. }NET_OUT_CAMERASTATE;
  28576. /////////////////////////////特殊版本/////////////////////////////////
  28577. ///@brief 触发设备抓图,叠加卡号信息
  28578. typedef struct __NET_SNAP_COMMANDINFO
  28579. {
  28580. char szCardInfo[16]; // 卡号信息
  28581. char reserved[64]; // 保留
  28582. } NET_SNAP_COMMANDINFO, LPNET_SNAP_COMMANDINFO;
  28583. ///@brief 通道状态
  28584. typedef struct
  28585. {
  28586. int nChannelNum; // 通道号
  28587. char szUseType[32]; // 通道用途
  28588. DWORD dwStreamSize; // 流量大小(单位:kb/s)
  28589. char reserved[32]; // 保留
  28590. } DHDEV_USE_CHANNEL_STATE;
  28591. ///@brief 用户信息
  28592. typedef struct
  28593. {
  28594. char szUserName[32]; // 用户名
  28595. char szUserGroup[32]; // 用户组
  28596. NET_TIME time; // 登入时间
  28597. int nOpenedChannelNum; // 开启的通道个数
  28598. DHDEV_USE_CHANNEL_STATE channelInfo[DH_MAX_CHANNUM];
  28599. char szIpAddress[DH_MAX_IPADDR_LEN_EX]; // ip地址
  28600. char reserved[24];
  28601. } DHDEV_USER_NET_INFO;
  28602. ///@brief 网络运行状态信息
  28603. typedef struct
  28604. {
  28605. int nUserCount; // 用户数量
  28606. DHDEV_USER_NET_INFO stuUserInfo[32];
  28607. char reserved[256];
  28608. }DHDEV_TOTAL_NET_STATE;
  28609. ///@brief 用户信息
  28610. typedef struct
  28611. {
  28612. char szIpAddress[DH_MAX_IPADDR_LEN]; // ip地址
  28613. char szUserGroup[32]; // 用户组
  28614. char szUserName[32]; // 用户名
  28615. char reserved[64];
  28616. }DHDEV_USER_REJECT_INFO;
  28617. ///@brief 剔除用户
  28618. typedef struct
  28619. {
  28620. int nUserCount; // 用户数量
  28621. DHDEV_USER_REJECT_INFO stuUserInfo[10];
  28622. char reserved[256];
  28623. }DHDEV_REJECT_USER;
  28624. ///@brief 用户信息
  28625. typedef struct
  28626. {
  28627. char szIpAddress[DH_MAX_IPADDR_LEN]; // ip地址
  28628. char szUserGroup[32]; // 用户组
  28629. char szUserName[32]; // 用户名
  28630. int nForbiddenTime; // 屏蔽时间
  28631. char reserved[64];
  28632. }DHDEV_USER_SHIELD_INFO;
  28633. ///@brief 屏蔽用户
  28634. typedef struct
  28635. {
  28636. int nUserCount; // 用户数量
  28637. DHDEV_USER_SHIELD_INFO stuUserInfo[10];
  28638. char reserved[256];
  28639. }DHDEV_SHIELD_USER;
  28640. ///@brief 经纬度
  28641. typedef struct
  28642. {// 经度在前,维度在后
  28643. char chPreLogi; // 经度前置标志:N、S、W、E,分别表示北、南、西、东。
  28644. char chPreLati; // 纬度前置标志:N、S、W、E,分别表示北、南、西、东。
  28645. BYTE reserved[6]; // 保留字节,对齐
  28646. double dbLongitude; // 经度
  28647. double dbLatitude; // 纬度
  28648. }DHDEV_LONGI_LATI;
  28649. ///@brief 导航信息和短消息
  28650. typedef struct
  28651. {
  28652. char szPhoneNum[DH_MAX_PHONE_NO_LEN]; // 电话号码
  28653. NET_TIME stMsgTime; // 信息发送时间
  28654. char szMsgType[DH_MAX_MSGTYPE_LEN]; // 信息类型(导航信息-Navigation; 短消息--SMS)
  28655. char szSmsContext[DH_MAX_MSG_LEN]; // 发送的信息内容
  28656. DHDEV_LONGI_LATI stLogiLati; // 起始经纬度
  28657. unsigned int uFlag; // 01:标志发来的是真实经纬度
  28658. char szNavigationType[16]; // TNC,为凯立德地图中心导航格式,TXZ,为天行者地图中心导航格式
  28659. char szAddress[32]; // 地点信息
  28660. char szNavigationMode[32]; // 导航模式 有Recommend推荐,Economical经济型,Fastest 最快;Shortest 最短;
  28661. DHDEV_LONGI_LATI stPassLogiLati[5]; // 经由点
  28662. DHDEV_LONGI_LATI stNoPassLogiLati[5]; // 不经由点
  28663. BYTE reserved[256];
  28664. }DHDEV_NAVIGATION_SMSS;
  28665. ///@brief 图象水印配置
  28666. typedef struct __DHDEV_WATERMAKE_CFG
  28667. {
  28668. DWORD dwSize;
  28669. int nEnable; // 使能
  28670. int nStream; // 码流(1~n)0-所有码流
  28671. int nKey; // 数据类型(1-文字,2-图片)
  28672. char szLetterData[DH_MAX_WATERMAKE_LETTER]; // 文字
  28673. char szData[DH_MAX_WATERMAKE_DATA]; // 图片数据
  28674. BYTE bReserved[512]; // 保留
  28675. } DHDEV_WATERMAKE_CFG;
  28676. ///@brief 存储位置设置结构体,每通道独立设置,每通道可以选择各种存储类型, 目前包括本地, 可移动, 远程存储.
  28677. typedef struct
  28678. {
  28679. DWORD dwSize;
  28680. DWORD dwLocalMask; // 本地存储掩码;按位表示:
  28681. // 第一位:系统预录,第二位:定时录像,第三位:动检录像,
  28682. // 第四位:报警录像,第五位:卡号录像,第六位:手动录像
  28683. DWORD dwMobileMask; // 可移动存储掩码 存储掩码如本地存储掩码
  28684. int RemoteType; // 远程存储类型 0: Ftp 1: Smb
  28685. DWORD dwRemoteMask; // 远程存储掩码 存储掩码如本地存储掩码
  28686. DWORD dwRemoteSecondSelLocal; // 远程异常时本地存储掩码
  28687. DWORD dwRemoteSecondSelMobile; // 远程异常时可移动存储掩码
  28688. char SubRemotePath[MAX_PATH_STOR]; // 远程目录, 其中长度为240
  28689. DWORD dwFunctionMask; // 功能屏蔽位,按位表示,bit0 = 1:屏蔽抓图事件触发存储位置功能
  28690. DWORD dwAutoSyncMask; // 是否同步掩码;远程存储网络故障恢复后,自动将本地存储的数据同步到远程存储。
  28691. BYTE bAutoSyncRange; // 从网络恢复的时刻开始,需要往前同步的数据时间范围,小时为单位。0:同步所有数据 1:1小时内的数据 n:n小时内的数据
  28692. char reserved[119];
  28693. } DH_STORAGE_STATION_CFG;
  28694. #define MAX_ALARM_DECODER_NUM 16
  28695. ///@brief 报警解码器
  28696. typedef struct
  28697. {
  28698. DWORD dwAlarmDecoder; // 现在最多支持8个报警输入口,留8位待以后扩展
  28699. BYTE bDecoderIndex; // 表示第几个报警解码器
  28700. BYTE bReserved[3];
  28701. } ALARM_DECODER;
  28702. ///@brief 报警解码器报警
  28703. typedef struct
  28704. {
  28705. int nAlarmDecoderNum;
  28706. ALARM_DECODER stuAlarmDecoder[MAX_ALARM_DECODER_NUM];
  28707. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  28708. BYTE bReserved[32];
  28709. } ALARM_DECODER_ALARM;
  28710. ///@brief DSP报警
  28711. typedef struct
  28712. {
  28713. BOOL bError; //0,DSP正常 1,DSP异常
  28714. DWORD dwErrorMask; //按位表示,非0表示有此错误,0表示没有。(目前每次报警只有一位有效)
  28715. //bit DSP报警
  28716. // 1 DSP加载失败
  28717. // 2 DSP错误
  28718. // 3 制式不对
  28719. // 4 分辨率不支持
  28720. // 5 数据格式不支持
  28721. // 6 找不到I帧
  28722. DWORD dwDecChnnelMask; //按位表示,报警的解码通道号,dwErrorMask为DSP错误,制式不对,分辨率不支持,数据格式不支持时此项有效
  28723. DWORD dwDecChnnelMask1; //按位表示,33-64通道的报警的解码通道号, dwErrorMask为DSP错误,制式不对,分辨率不支持,数据格式不支持时此项有效
  28724. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  28725. BYTE bReserved[24];
  28726. }DSP_ALARM;
  28727. ///@brief 光纤编码能力报警
  28728. typedef struct
  28729. {
  28730. int nFDDINum;
  28731. BYTE bAlarm[256];
  28732. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  28733. } ALARM_FDDI_ALARM;
  28734. #define ALARM_PTZ_LOCATION_INFO DH_PTZ_LOCATION_INFO
  28735. ///@brief 新音频检测报警配置
  28736. typedef struct
  28737. {
  28738. BOOL bEnable; // 报警输入使能
  28739. int Volume_min; // 音量的最小值
  28740. int Volume_max; // 音量的最大值
  28741. char reserved[128];
  28742. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT];
  28743. DH_MSG_HANDLE struHandle; // 处理方式
  28744. } DH_AUDIO_DETECT_INFO;
  28745. ///@brief 音频检测配置
  28746. typedef struct
  28747. {
  28748. DWORD dwSize;
  28749. int AlarmNum;
  28750. DH_AUDIO_DETECT_INFO AudioDetectAlarm[DH_MAX_AUDIO_IN_NUM];
  28751. char reserved[256];
  28752. } DH_AUDIO_DETECT_CFG;
  28753. ///@brief 矩阵配置
  28754. typedef struct
  28755. {
  28756. BOOL bTourEnable; // 轮巡使能
  28757. int nTourPeriod; // 轮巡间隔,单位秒, 5-300
  28758. DWORD dwChannelMask; // 轮巡的通道,掩码形式表示
  28759. char reserved[64];
  28760. }DH_VIDEOGROUP_CFG;
  28761. ///@brief 本机矩阵控制策略配置
  28762. typedef struct
  28763. {
  28764. DWORD dwSize;
  28765. int nMatrixNum; // 矩阵个数(注:不允许修改)
  28766. DH_VIDEOGROUP_CFG struVideoGroup[DH_MATRIX_MAXOUT];
  28767. char reserved[32];
  28768. } DHDEV_VIDEO_MATRIX_CFG;
  28769. ///@brief WEB路径配置
  28770. typedef struct
  28771. {
  28772. DWORD dwSize;
  28773. BOOL bSnapEnable; // 是否抓图
  28774. int iSnapInterval; // 抓图周期
  28775. char szHostIp[DH_MAX_IPADDR_LEN]; // HTTP主机IP
  28776. WORD wHostPort;
  28777. int iMsgInterval; // 状态消息发送间隔
  28778. char szUrlState[DH_MAX_URL_LEN]; // 状态消息上传URL
  28779. char szUrlImage[DH_MAX_URL_LEN]; // 图片上传Url
  28780. char szDevId[DH_MAX_DEV_ID_LEN]; // 机器的web编号
  28781. BYTE byReserved[2];
  28782. } DHDEV_URL_CFG;
  28783. ///@brief OEM查询
  28784. typedef struct
  28785. {
  28786. char szVendor[DH_MAX_STRING_LEN];
  28787. char szType[DH_MAX_STRING_LEN];
  28788. char reserved[128];
  28789. } DHDEV_OEM_INFO;
  28790. ///@brief 视频OSD叠加配置
  28791. typedef struct
  28792. {
  28793. DWORD rgbaFrontground; // 物件的前景;按字节表示,分别为红、绿、蓝和透明度
  28794. DWORD rgbaBackground; // 物件的背景;按字节表示,分别为红、绿、蓝和透明度
  28795. RECT rcRelativePos; // 位置,物件边距与整长的比例*8191
  28796. BOOL bPreviewBlend; // 预览叠加使能
  28797. BOOL bEncodeBlend; // 编码叠加使能
  28798. BYTE bReserved[4]; // 保留
  28799. } DH_DVR_VIDEO_WIDGET;
  28800. ///@brief OSD信息
  28801. typedef struct
  28802. {
  28803. DH_DVR_VIDEO_WIDGET StOSD_POS; // OSD叠加的位置和背景色
  28804. char SzOSD_Name[DH_VIDEO_OSD_NAME_NUM]; // OSD叠加的名称
  28805. }DH_DVR_VIDEOITEM;
  28806. ///@brief 每个通道的OSD信息
  28807. typedef struct
  28808. {
  28809. DWORD dwSize;
  28810. DH_DVR_VIDEOITEM StOSDTitleOpt [DH_VIDEO_CUSTOM_OSD_NUM]; // 每个通道的OSD信息
  28811. BYTE bReserved[16]; // 保留
  28812. } DH_DVR_VIDEOOSD_CFG;
  28813. ///@brief 配置CDMA/GPRS网络信息
  28814. ///@brief 时间段结构
  28815. typedef struct
  28816. {
  28817. BYTE bEnable; // 时间段使能,1表示该时间段有效,0表示该时间段无效。
  28818. BYTE bBeginHour;
  28819. BYTE bBeginMin;
  28820. BYTE bBeginSec;
  28821. BYTE bEndHour;
  28822. BYTE bEndMin;
  28823. BYTE bEndSec;
  28824. BYTE bReserved; //保留
  28825. } DH_3G_TIMESECT, *LPDH_3G_TIMESECT;
  28826. ///@brief 配置
  28827. typedef struct
  28828. {
  28829. DWORD dwSize;
  28830. BOOL bEnable; // 无线模块使能标志
  28831. DWORD dwTypeMask; // 设备支持网络类型掩码;按位表示,第一位;自动选择;
  28832. // 第二位:TD-SCDMA网络;第三位:WCDMA网络;
  28833. // 第四位:CDMA 1.x网络;第五位:CDMA2000网络;第六位:GPRS网络;
  28834. // 第七位:EVDO网络;第八位:WIFI
  28835. DWORD dwNetType; // 当前的无线网络类型,为EM_GPRSCDMA_NETWORK_TYPE值
  28836. char szAPN[128]; // 接入点名称
  28837. char szDialNum[128]; // 拨号号码
  28838. char szUserName[128]; // 拨号用户名
  28839. char szPWD[128]; // 拨号密码
  28840. /* 下面是设备的只读部分 */
  28841. BOOL iAccessStat; // 无线网络注册状态
  28842. char szDevIP[16]; // 前端设备拨号IP,字符串, 包括'\0'结束符共16byte
  28843. char szSubNetMask [16]; // 前端设备拨号子网掩码,字符串, 包括'\0'结束符共16byte
  28844. char szGateWay[16]; // 前端设备拨号网关,字符串, 包括'\0'结束符共16byte
  28845. /* 上面是设备的只读部分 */
  28846. int iKeepLive; // 保活时间
  28847. DH_3G_TIMESECT stSect[DH_N_WEEKS][DH_N_TSECT]; // 3G拨号时间段,有效时间段之内,开启拨号;有效时间段之外,关闭拨号。
  28848. BYTE byActivate; // 是否需要被语音或短信激活
  28849. BYTE bySimStat; // SIM(UIM)状态:存在1,不存在0 (只读数据) 占用Reserved的1个字节
  28850. char szIdentify[128]; // 鉴权方式
  28851. bool bPPPEnable; // PPP拨号,0-断开ppp连接,1-ppp拨号
  28852. BYTE bPPPState; // PPP拨号状态(只读),具体含义见EM_MOBILE_PPP_STATE
  28853. BYTE bNetCardState; // 网卡所处状态(只读),具体含义见EM_3GMOBILE_STATE
  28854. char szPhyCardNo[32]; // 物理卡号
  28855. char Reserved[4]; // 保留字节,用于扩展
  28856. BYTE byPinShow; // PIN码是否显示(只读), 0-不支持, 1-显示, 2-不显示
  28857. BYTE byPinEnable; // PIN码设置使能(只读), 0-不使能, 1-使能
  28858. BYTE byPinCount; // PIN码剩余设置次数(只读), 0~3
  28859. /*-------------------------------以下字段设置dwSize后才有效------------------------------------*/
  28860. char szPinNo[16]; // PIN码值, 字母或数字的任意组合
  28861. } DHDEV_CDMAGPRS_CFG;
  28862. ///@brief 录像打包长度配置
  28863. typedef struct
  28864. {
  28865. DWORD dwSize;
  28866. int nType; // 0:按时间,1:按大小
  28867. int nValue; // nType = 0时:单位分钟,nType = 1时:单位KB
  28868. char Reserved[128]; // 保留字节,用于扩展
  28869. } DHDEV_RECORD_PACKET_CFG;
  28870. ///@brief (定向)主动注册服务器信息
  28871. typedef struct __DEV_AUTOREGISTER_INFO
  28872. {
  28873. LONG lConnectionID; // 连接ID
  28874. char szServerIp[DH_MAX_IPADDR_LEN]; // 主动注册服务器的IP
  28875. int nPort; // 主动注册服务器端口0- 65535
  28876. int nState; // 服务器的状态:0-注册失败;1-注册成功; 2-连接失败
  28877. char reserved[16];
  28878. } DEV_AUTOREGISTER_INFO;
  28879. ///@brief 查询设备上主动注册服务器信息
  28880. typedef struct __DEV_SERVER_AUTOREGISTER
  28881. {
  28882. DWORD dwSize;
  28883. int nRegisterSeverCount; // 主动注册服务器个数
  28884. DEV_AUTOREGISTER_INFO stuDevRegisterSeverInfo[DH_CONTROL_AUTO_REGISTER_NUM]; // 各主动注册服务器信息
  28885. char reserved[256];
  28886. } DEV_SERVER_AUTOREGISTER, *LPDEV_SERVER_AUTOREGISTER;
  28887. ///@brief 附件刻录附件上传
  28888. typedef struct
  28889. {
  28890. DWORD dwSize;
  28891. char szSourFile[MAX_PATH_STOR]; // 源文件路径
  28892. int nFileSize; // 源文件大小,如果小于等于0,sdk自行计算文件大小.
  28893. char szBurnFile[MAX_PATH_STOR]; // 刻录后的文件名
  28894. BYTE bReserved[64];
  28895. } DHDEV_BURNFILE_TRANS_CFG;
  28896. ///@brief 升级文件上传
  28897. typedef struct
  28898. {
  28899. char szFile[MAX_PATH_STOR]; // 升级文件路径
  28900. int nFileSize; // 升级文件大小
  28901. BYTE byChannelId; // 通道号
  28902. BYTE byManufactryType; // 厂商类型,详见EM_IPC_TYPE
  28903. BYTE byReserved[126]; // 保留
  28904. }DHDEV_UPGRADE_FILE_INFO;
  28905. ///@brief 禁止/允许名单上传
  28906. typedef struct
  28907. {
  28908. char szFile[MAX_PATH_STOR]; // 禁止/允许名单文件路径
  28909. int nFileSize; // 升级文件大小
  28910. BYTE byFileType; // 当前文件类型,0-禁止名单,1-允许名单
  28911. BYTE byAction; // 动作,0-覆盖,1-追加
  28912. BYTE byReserved[126]; // 保留
  28913. }DHDEV_BLACKWHITE_LIST_INFO;
  28914. ///@brief 禁止/允许名单下载
  28915. typedef struct
  28916. {
  28917. char szFile[MAX_PATH_STOR]; // 禁止/允许名单文件保存路径
  28918. BYTE byFileType; // 当前文件类型,0-禁止名单,1-允许名单
  28919. BYTE byReserved[127]; // 保留
  28920. }DHDEV_LOAD_BLACKWHITE_LIST_INFO;
  28921. ///@brief 郑州威科姆EC_U视频数据叠加使能配置
  28922. typedef struct
  28923. {
  28924. BOOL bEnable; // 使能
  28925. int nPort; // 端口
  28926. BYTE bReserved[64];
  28927. } DHDEV_OSD_ENABLE_CFG;
  28928. ///@brief 车载相关配置:北京公交使用配置
  28929. typedef struct
  28930. {
  28931. BOOL bAutoBootEnable; //自动开机使能
  28932. DWORD dwAutoBootTime; //每天自动开机时间点, 单位秒,从0算起.[0,82800]
  28933. BOOL bAutoShutDownEnable; //自动关机使能
  28934. DWORD dwAutoShutDownTime; //每天自动关机时间点, 单位秒,从0算起.[0,82800]
  28935. DWORD dwShutDownDelayTime; //延时关机时间,单位秒.
  28936. BYTE bEventNoDisk; //1,(Ignore:忽略); 2,(Reboot:重起系统)
  28937. BYTE bWifiEnable; //是否支持车载无线模块.
  28938. BYTE bUpperSpeedEnable; //是否使用超速判断
  28939. BYTE bLowerSpeedEnable; //是否使用低速判断
  28940. DWORD dwUpperSpeedValue; //超速值开区间(1,1000).公里/小时
  28941. DWORD dwLowerSpeedValue; //低速值开区间(1,1000).公里/小时
  28942. DWORD dwUpperSpeedDelayTime; //设置超速持续值
  28943. DWORD dwLowerSpeedDelayTime; //设置低速持续值
  28944. DWORD dwAlarmMaskEnable; //查询/设置叠加报警信息使能,0:关闭,1:打开, 每一位从低到高表示各个外部报警通道0-N使能
  28945. BOOL bSpeedOverAlarmRecordEnable; // 超速报警联动录像使能
  28946. BOOL bSpeedLowAlarmRecordEnable; // 低速报警联动录像使能
  28947. BYTE bReserved[480]; //reserved byte.
  28948. } DHDEV_ABOUT_VEHICLE_CFG;
  28949. ///@brief atm:查询叠加相关能力信息
  28950. typedef struct
  28951. {
  28952. DWORD dwDataSource; //按位, 位0:Net(网络), 位1:Com(串口), 位2:Com422(串口422)
  28953. char szProtocol[32][33]; //协议名字,最大长度32(保留一个结束符).
  28954. BYTE bReserved[256];
  28955. } DHDEV_ATM_OVERLAY_GENERAL;
  28956. ///@brief atm:配置叠加设置
  28957. typedef struct
  28958. {
  28959. DWORD dwDataSource; // 1:Net(网络), 2:Com(串口), 3:Com422(串口422)
  28960. char szProtocol[33]; // 协议名字,由DHDEV_ATM_OVERLAY_GENERAL返回
  28961. BYTE bReserved_1[3];
  28962. DWORD dwChannelMask; // 叠加的通道号,掩码表示。
  28963. BYTE bMode; // 1:Preview(预览叠加), 2:Encode(编码叠加), 3:Preview&Encode(预览和编码叠加)
  28964. BYTE bLocation; // 1:LeftTop(左上), 2:LeftBottom(左下), 3:RightTop(右上), 4:RightBottom(右下)
  28965. BYTE bReserved_3[2];
  28966. int nLatchTime; // 叠加显示延迟时间,卡号录像延时关闭时间,0~65535s
  28967. BYTE bReserved_4[3];
  28968. BYTE bRecordSrcKeyNum; // 关键字个数
  28969. int nRecordSrcKey[32]; // 各视频通道对应数据源关键字(不同通道可以对应不同的数据源)
  28970. BYTE bReserved_2[120];
  28971. } DHDEV_ATM_OVERLAY_CONFIG;
  28972. ///@brief atm:配置叠加设置
  28973. typedef struct
  28974. {
  28975. DWORD dwSize; // 结构体大小
  28976. DWORD dwDataSource; // 1:Net(网络), 2:Com(串口), 3:Com422(串口422)
  28977. char szProtocol[33]; // 协议名字,
  28978. BYTE bReserved_1[3];
  28979. DWORD dwChannelMask[8]; // 叠加的通道号,掩码表示, dwChannelMask[0]表示0-31通道,依此类推。
  28980. BYTE bMode; // 1:Preview(预览叠加), 2:Encode(编码叠加), 3:Preview&Encode(预览和编码叠加)
  28981. BYTE bLocation; // 1:LeftTop(左上), 2:LeftBottom(左下), 3:RightTop(右上), 4:RightBottom(右下)
  28982. BYTE bReserved_3[2];
  28983. int nLatchTime; // 叠加显示延迟时间,卡号录像延时关闭时间,0~65535s
  28984. BYTE bReserved_4[3];
  28985. BYTE bRecordSrcKeyNum; // 关键字个数
  28986. int nRecordSrcKey[256]; // 各视频通道对应数据源关键字(不同通道可以对应不同的数据源)
  28987. } DHDEV_ATM_OVERLAY_CONFIG_EX;
  28988. ///@brief 雷达配置——车速
  28989. typedef struct tagNET_RADAR_CARSPEED_INFO
  28990. {
  28991. int nTriggerLower; // 触发值下限 范围 1~255km/h
  28992. int nTriggerUpper; // 触发值上限 范围 1~255km/h
  28993. int nLimitLower; // 限速值下限 范围 5~255km/h
  28994. int nLimitUpper; // 限速值上限 范围 5~255km/h
  28995. } NET_RADAR_CARSPEED_INFO;
  28996. ///@brief 雷达配置
  28997. typedef struct tagDEV_DAHUA_RADAR_CONFIG
  28998. {
  28999. int nAngle; // 角度,用于修正雷达探头安装的角度造成的速度误差 单位度,范围0~45
  29000. BOOL bLowSpeed; // 是否启用低限速,为 TRUE NET_RADAR_CARSPEED_INFO 结构中各下限值有效
  29001. BOOL bSpeedForSize; // 是否启用大小车限速,为 FALSE 时仅小车速度配置(stuSmallCarSpeed)有效
  29002. NET_RADAR_CARSPEED_INFO stuSmallCarSpeed; // 小车速度配置,bSpeedForSize 为 TRUE 时 nTriggerLower 成员同时也代表中车和大车的触发值下限
  29003. NET_RADAR_CARSPEED_INFO stuMediumCarSpeed; // 中车速度配置,bSpeedForSize 为 TRUE 时有效,但 nTriggerLower 成员始终无效
  29004. NET_RADAR_CARSPEED_INFO stuBigCarSpeed; // 大车速度配置,bSpeedForSize 为 TRUE 时有效,但 nTriggerLower 成员始终无效
  29005. char szName[256]; // 设备安装地址
  29006. int nSensitivity; // 灵敏度 范围0~5,0最高
  29007. int nDetectMode; // 检测模式,取值:-1 无意义 0 前向来车 1 前向去车 2 后向来车 3 后向去车 4 前向双向 5 后向双向
  29008. BYTE bReserved[1024];
  29009. } DEV_DAHUA_RADAR_CONFIG;
  29010. ///@brief 森思泰克77Ghz网络雷达配置
  29011. typedef struct tagNET_STJ77D5_RADAR_CONFIG
  29012. {
  29013. UINT nLaneNumber; // 车道个数, 范围1~4
  29014. UINT nDetectMode; // 道路方向, 取值:17 来向, 18 去向, 19 双向
  29015. double dbHeight; // 雷达安装高度 ,0.01m/bit; 范围0~25
  29016. double dbHorizonShift; // 水平偏移, 0.2m/bit; 范围-25~25
  29017. UINT nLaneCount; // 车道个数
  29018. double dbLaneWidth[4]; // 车道1-4宽度, 0.01m/bit; 范围2~5。第一个元素是车道1宽度, 以此类推
  29019. double dbStopLine; // 停止线距离, 0.1m/bit; 范围20~60
  29020. UINT nSceneMode; // 雷达工作场景模式, 0:未知, 1:主路模式, 2:路口模式
  29021. double dbShiftAngle; // 角度修正 ,0.1/bit; 范围-12~12
  29022. double dbLengthwayShiftDistance; // 纵向距离修正, 0.2m/bit; 范围-25~25
  29023. double dbSensitive; // 灵敏度设置, 0.1/bit; 范围0~3
  29024. UINT nIDset; // ID设置; 范围0~4
  29025. UINT nWorkMode; // 雷达工作模式, 0:调试模式 1:工作模式
  29026. UINT nRadarFlowTime; // 雷达流量统计时间间隔, 单位:s
  29027. UINT nRadarFlowSwitch; // 雷达流量输出开关, 0:未知, 1:开启, 2:关闭
  29028. UINT nNonMotorDiscern; // 非机动车/行人识别控制开关, 0:未知, 1:开启, 2:关闭
  29029. int nVehicleDistinguish; // 车型分别能力;范围-10~10, 负值:大车门限降低, 正值:大车门限升高
  29030. UINT nStopTargetDisappearTime; // 停止目标消失时间,1s/bit, 0:关闭, 非0时:停止目标消失的时间
  29031. UINT nStartLane; // 雷达的起始车道号, 取值范围: 0~7
  29032. UINT nRadarLanNumber; // 雷达支持的车道数目, 取值范围:1~8
  29033. UINT nVirtualCoilTriggerCount; // 虚拟线圈个数
  29034. UINT nVirtualCoilTrigger[4]; // 虚拟线圈触发方式: 1:头线圈, 2:尾线圈, 3:头尾线圈, 90:线圈,不统计
  29035. UINT nVirtualCoilDistanceCount; // 虚拟线圈个数
  29036. double dbVirtualCoilDistance[4]; // 虚拟线圈起始位置(下边沿,y向距离雷达距离), 单位:m
  29037. UINT nVirtualCoilLengthCount; // 虚拟线圈个数
  29038. double dbVirtualCoilLength[4]; // 虚拟线圈长度, 单位:m
  29039. double dbCameraToRoadEndDistance; // 相机到车道监控面路口距离, 单位:m, 0.1m/bit(精确到小数点后一位,步长0.1m)
  29040. double dbCameraToStopLane; // 相机到停止线距离, 单位:m, 0.1m/bit(精确到小数点后一位,步长0.1m)
  29041. UINT nLaneDirection[4]; // 车道方向
  29042. UINT nLaneDirectionCount; // 车道个数
  29043. BYTE bReserved[1020];
  29044. }NET_STJ77D5_RADAR_CONFIG;
  29045. ///@brief 雷达配置
  29046. typedef struct tagDEV_RADAR_CONFIG
  29047. {
  29048. DWORD dwSize;
  29049. BOOL bEnable; // 是否开启功能
  29050. int nPort; // 串口端口号
  29051. DH_COMM_PROP stuCommAttr; // 串口属性
  29052. int nAddress; // 设备地址,如果串口上挂了多个串口设备,通过地址区分
  29053. int nPreSpeedWait; // 速度先来情况下等待时间,速度来时尚未抓拍 范围 (1 -- 5000ms)
  29054. int nDelaySpeedWait; // 速度后来情况下等待时间,抓拍时还没有来速度 范围 (1 -- 5000ms)
  29055. BOOL bDahuaRadarEnable; // 雷达配置是否可用
  29056. DEV_DAHUA_RADAR_CONFIG stuDhRadarConfig; // 雷达参数配置
  29057. BOOL bSTJ77D5RadarEnable; // 森思泰克77Ghz网络雷达配置是否可用
  29058. NET_STJ77D5_RADAR_CONFIG stuSTJ77D5RadarConfig; // 森思泰克77Ghz网络雷达配置
  29059. }DEV_RADAR_CONFIG;
  29060. ///@brief 雷达RFID卡片信息
  29061. typedef struct tagNET_RADAR_RFIDCARD_CONFIG
  29062. {
  29063. char szCardID[24]; // 卡片ID
  29064. UINT nValidTime; // 卡片有效时间的utc时间戳,单位秒
  29065. UINT nInvalidTime; // 卡片过期时间的utc时间戳,单位秒
  29066. char byReserved[256]; // 保留字节
  29067. }NET_RADAR_RFIDCARD_CONFIG;
  29068. ///@brief 雷达RFID卡片信息配置
  29069. typedef struct tagNET_CFG_RADAR_RFIDCARD_INFO
  29070. {
  29071. DWORD dwSize; // 结构体大小
  29072. int nCardNum; // RFID卡片数量
  29073. NET_RADAR_RFIDCARD_CONFIG stuCardInfo[256]; // RFID卡片配置信息
  29074. }NET_CFG_RADAR_RFIDCARD_INFO;
  29075. ///@brief 遥控器卡片信息
  29076. typedef struct tagNET_REMOTE_CARD_INFO
  29077. {
  29078. BOOL bEnable; // 卡片是否有效
  29079. char szCardID[24]; // 卡片ID
  29080. char szName[128]; // 使用卡片的用户名
  29081. char szReserved[868]; // 保留字节
  29082. }NET_REMOTE_CARD_INFO;
  29083. ///@brief 雷达一体机RFID遥控器卡片配置
  29084. typedef struct tagNET_CFG_RADAR_REMOTE_CARD_INFO
  29085. {
  29086. DWORD dwSize; // 结构体大小
  29087. UINT nMode; // 遥控器卡片模式, 0表示普通模式, 1表示管理模式
  29088. int nCardNum; // 遥控器卡片数量
  29089. NET_REMOTE_CARD_INFO stuCardInfo[1024]; // 遥控器卡片信息
  29090. }NET_CFG_RADAR_REMOTE_CARD_INFO;
  29091. ///@brief RFID识别距离配置
  29092. typedef struct tagNET_CFG_RADAR_RFID_READ_DISTANCE_INFO
  29093. {
  29094. DWORD dwSize; // 结构体大小
  29095. BOOL bEnable; // RFIDReadDistance配置是否生效
  29096. int nDistance; // 有效距离(激光雷达的扫射半径), 扩大100倍使用, 单位:米
  29097. int nWidth; // 有效宽度(平行于法线的距离), 扩大100倍使用, 单位:米
  29098. }NET_CFG_RADAR_RFID_READ_DISTANCE_INFO;
  29099. ///@brief 激光雷达地图构建静态背景阈值配置
  29100. typedef struct tagNET_CFG_RADAR_STATIC_BACKGROUND_INFO
  29101. {
  29102. DWORD dwSize; // 结构体大小
  29103. int nValue; // 静态背景阈值
  29104. }NET_CFG_RADAR_STATIC_BACKGROUND_INFO;
  29105. #define DH_MAX_BACKUPDEV_NUM 16
  29106. #define DH_MAX_BACKUP_NAME 32
  29107. ///@brief 备份设备列表
  29108. typedef struct
  29109. {
  29110. int nBackupDevNum; // 实际的备份设备数量
  29111. char szBackupDevNames[DH_MAX_BACKUPDEV_NUM][DH_MAX_BACKUP_NAME]; // 备份设备的名称
  29112. } DHDEV_BACKUP_LIST, *LPDHDEV_BACKUP_LIST;
  29113. ///@brief 备份设备介质类型
  29114. typedef enum __BACKUP_TYPE
  29115. {
  29116. BT_DHFS = 0, // 私有文件系统
  29117. BT_DISK, // 移动硬盘
  29118. BT_CDRW // 光盘刻录
  29119. } DHDEV_BACKUP_TYPE;
  29120. ///@brief 备份设备接口类型
  29121. typedef enum __BACKUP_BUS
  29122. {
  29123. BB_USB = 0, // usb接口
  29124. BB_1394, // 1394接口
  29125. BB_IDE, // ide接口
  29126. BB_ESATA, // esata接口
  29127. } DHDEV_BACKUP_BUS;
  29128. ///@brief 备份信息
  29129. typedef struct
  29130. {
  29131. char szName[32]; // 设备名
  29132. BYTE byType; // 备份设备的介质类型 枚举值见BACKUP_TYPE
  29133. BYTE byBus; // 备份设备的接口类型 枚举值见BACKUP_BUS
  29134. UINT nCapability; // 总容量, 以kBytes为单位
  29135. UINT nRemain; // 剩余容量,以kBytes为单位
  29136. char szDirectory[128]; // 远程备份的目录
  29137. } DHDEV_BACKUP_INFO, *LPDHDEV_BACKUP_INFO;
  29138. ///@brief 备份信息
  29139. typedef struct
  29140. {
  29141. char szName[32]; // 设备名
  29142. UINT nCapability; // 总容量, 以kBytes为单位
  29143. UINT nRemain; // 当前备份剩余容量,以kBytes为单位
  29144. } DHDEV_BACKUP_FEEDBACK, *LPDHDEV_BACKUP_FEEDBACK;
  29145. #define DH_MAX_BACKUPRECORD_NUM 1024
  29146. ///@brief 备份记录
  29147. typedef struct
  29148. {
  29149. char szDeviceName[DH_MAX_BACKUP_NAME]; //备份设备名称
  29150. int nRecordNum; //备份记录数量
  29151. NET_RECORDFILE_INFO stuRecordInfo[DH_MAX_BACKUPRECORD_NUM]; //备份记录信息
  29152. } BACKUP_RECORD, *LPBACKUP_RECORD;
  29153. ///@brief 多通道打开视频输入
  29154. typedef struct
  29155. {
  29156. int iChannelID; // 通道号
  29157. DH_RealPlayType realplayType; // 视频类型
  29158. char reserve[32];
  29159. }DHDEV_IN_MULTIPLAY_PARAM;
  29160. ///@brief 多通道打开视频输出
  29161. typedef struct
  29162. {
  29163. int iChannelID; // 通道号
  29164. LLONG lRealHandle; // 实时预览句柄
  29165. char reserve[32];
  29166. }DHDEV_OUT_MULTIPLAY_PARAM;
  29167. /////////////////////////////平台接入/////////////////////////////////
  29168. ///@brief 平台接入配置 - U网通
  29169. typedef struct
  29170. {
  29171. BOOL bChnEn;
  29172. char szChnId[DH_INTERVIDEO_UCOM_CHANID];
  29173. } DH_INTERVIDEO_UCOM_CHN_CFG;
  29174. ///@brief ucom配置
  29175. typedef struct
  29176. {
  29177. DWORD dwSize;
  29178. BOOL bFuncEnable; // 接入功能使能
  29179. BOOL bAliveEnable; // 心跳使能
  29180. DWORD dwAlivePeriod; // 心跳周期,单位秒,0-3600
  29181. char szServerIp[DH_MAX_IPADDR_LEN]; // CMS的IP
  29182. WORD wServerPort; // CMS的Port
  29183. char szRegPwd[DH_INTERVIDEO_UCOM_REGPSW]; // 注册密码
  29184. char szDeviceId[DH_INTERVIDEO_UCOM_DEVID]; // 设备id
  29185. char szUserName[DH_INTERVIDEO_UCOM_USERNAME];
  29186. char szPassWord[DH_INTERVIDEO_UCOM_USERPSW];
  29187. DH_INTERVIDEO_UCOM_CHN_CFG struChnInfo[DH_MAX_CHANNUM]; // 通道id,en
  29188. } DHDEV_INTERVIDEO_UCOM_CFG;
  29189. ///@brief 平台接入配置 - 阿尔卡特
  29190. typedef struct
  29191. {
  29192. DWORD dwSize;
  29193. unsigned short usCompanyID[2]; // 公司ID,数值,不同的第三方服务公司,考虑4字节对齐,目前只用数组第一个
  29194. char szDeviceNO[32]; // 前端设备序列号,字符串,包括'\0'结束符共32byte
  29195. char szVSName[32]; // 前端设备名称,字符串,包括'\0'结束符共16byte
  29196. char szVapPath[32]; // VAP路径
  29197. unsigned short usTcpPort; // TCP端口,数值:数值 1~65535
  29198. unsigned short usUdpPort; // UDP端口,数值:数值 1~65535
  29199. bool bCsEnable[4]; // 中心服务器使能标志,数值:true使能,false不使能,考虑4字节对齐,目前只用数组第一个
  29200. char szCsIP[16]; // 中心服务器IP地址,字符串,包括'\0'结束符共16byte
  29201. unsigned short usCsPort[2]; // 中心服务器端口,数值:数值 1~65535,考虑4字节对齐,目前只用数组第一个
  29202. bool bHsEnable[4]; // 心跳服务器使能标志,数值:true使能,false不使能,考虑4字节对齐,目前只用数组第一个
  29203. char szHsIP[16]; // 心跳服务器IP地址,字符串,包括'\0'结束符共16byte
  29204. unsigned short usHsPort[2]; // 心跳服务器端口,数值:数值 1~65535,考虑4字节对齐,目前只用数组第一个
  29205. int iHsIntervalTime; // 心跳服务器间隔周期,数值(单位:秒)
  29206. bool bRsEnable[4]; // 注册服务器使能标志,数值:true使能,false不使能,考虑4字节对齐,目前只用数组第一个
  29207. char szRsIP[16]; // 注册服务器IP地址,字符串,包括'\0'结束符共16byte
  29208. unsigned short usRsPort[2]; // 注册服务器端口,数值:数值 1~65535,考虑4字节对齐,目前只用数组第一个
  29209. int iRsAgedTime; // 注册服务器有效时间,数值(单位:小时)
  29210. char szAuthorizeServerIp[16]; // 鉴权服务器IP
  29211. unsigned short usAuthorizePort[2]; // 鉴权服务器端口,考虑4字节对齐,目前只用数组第一个
  29212. char szAuthorizeUsername[32]; // 鉴权服务器帐号
  29213. char szAuthorizePassword[36]; // 鉴权服务器密码
  29214. char szIpACS[16]; // ACS(自动注册服务器) IP
  29215. unsigned short usPortACS[2]; // ACS Port,考虑4字节对齐,目前只用数组第一个
  29216. char szUsernameACS[32]; // ACS用户名
  29217. char szPasswordACS[36]; // ACS密码
  29218. bool bVideoMonitorEnabled[4]; // DVS是否定期上报前端视频信号监控信息,数值:true使能,false不使能
  29219. int iVideoMonitorInterval; // 上报周期(分钟)
  29220. char szCoordinateGPS[64]; // GPS坐标
  29221. char szPosition[32]; // 设备位置
  29222. char szConnPass[36]; // 设备接入码
  29223. } DHDEV_INTERVIDEO_BELL_CFG;
  29224. ///@brief 平台接入配置 - 力维
  29225. typedef struct
  29226. {
  29227. DWORD dwSize;
  29228. unsigned short nSevPort; // 服务器端口,数值,数值1~65535
  29229. char szSevIp[DH_INTERVIDEO_NSS_IP]; // 服务器IP地址,字符串,包括'\0'结束符共32byte
  29230. char szDevSerial[DH_INTERVIDEO_NSS_SERIAL]; // 前端设备序列号,字符串,包括'\0'结束符共32byte
  29231. char szUserName[DH_INTERVIDEO_NSS_USER];
  29232. char szPwd[DH_INTERVIDEO_NSS_PWD];
  29233. } DHDEV_INTERVIDEO_NSS_CFG;
  29234. ///@brief 平台接入配置 - 天地阳光
  29235. typedef struct
  29236. {
  29237. char szDevSerial[DH_INTERVIDEO_AMP_DEVICESERIAL]; //前端设备序列号,即编码器的序列号,该参数只读
  29238. char szDevName[DH_INTERVIDEO_AMP_DEVICENAME]; //前端设备名称,编码器的名称,该参数只读
  29239. char szRegUserName[DH_INTERVIDEO_AMP_USER]; //注册服务器用户名
  29240. char szRegPwd[DH_INTERVIDEO_AMP_PWD]; //注册服务器密码
  29241. BYTE bReserved[128];
  29242. } DHDEV_INTERVIDEO_AMP_CFG;
  29243. ////////////////////////////HDVR专用//////////////////////////////////
  29244. ///@brief 报警联动扩展结构体
  29245. typedef struct
  29246. {
  29247. /* 消息处理方式,可以同时多种处理方式,包括
  29248. * 0x00000001 - 报警上传
  29249. * 0x00000002 - 联动录象
  29250. * 0x00000004 - 云台联动
  29251. * 0x00000008 - 发送邮件
  29252. * 0x00000010 - 本地轮巡
  29253. * 0x00000020 - 本地提示
  29254. * 0x00000040 - 报警输出
  29255. * 0x00000080 - Ftp上传
  29256. * 0x00000100 - 蜂鸣
  29257. * 0x00000200 - 语音提示
  29258. * 0x00000400 - 抓图
  29259. */
  29260. DWORD dwActionMask; // 当前报警所支持的处理方式,按位掩码表示
  29261. DWORD dwActionFlag; // 触发动作,按位掩码表示,具体动作所需要的参数在各自的配置中体现
  29262. BYTE byRelAlarmOut[DH_MAX_ALARMOUT_NUM_EX]; // 报警触发的输出通道,报警触发的输出,为1表示触发该输出
  29263. DWORD dwDuration; // 报警持续时间
  29264. /* 联动录象 */
  29265. BYTE byRecordChannel[DH_MAX_VIDEO_IN_NUM_EX]; // 报警触发的录象通道,为1表示触发该通道
  29266. DWORD dwRecLatch; // 录象持续时间
  29267. /* 抓图通道 */
  29268. BYTE bySnap[DH_MAX_VIDEO_IN_NUM_EX]; // 抓图通道
  29269. BYTE byTour[DH_MAX_VIDEO_IN_NUM_EX]; // 轮巡通道 0-31路
  29270. /* 云台联动 */
  29271. DH_PTZ_LINK struPtzLink[DH_MAX_VIDEO_IN_NUM_EX];
  29272. DWORD dwEventLatch; // 联动开始延时时间,s为单位,范围是0~15,默认值是0
  29273. BYTE byRelWIAlarmOut[DH_MAX_ALARMOUT_NUM_EX]; // 报警触发的无线输出通道,报警触发的输出,为1表示触发该输出
  29274. BYTE bMessageToNet;
  29275. BYTE bMMSEn; // 短信报警使能
  29276. BYTE bySnapshotTimes; // 短信发送抓图张数
  29277. BYTE bMatrixEn; // 矩阵使能
  29278. DWORD dwMatrix; // 矩阵掩码
  29279. BYTE bLog; // 日志使能,目前只有在WTN动态检测中使用
  29280. BYTE bSnapshotPeriod; // 抓图帧间隔,每隔多少帧抓一张图片,一定时间内抓拍的张数还与抓图帧率有关。0表示不隔帧,连续抓拍
  29281. BYTE byTour2[DH_MAX_VIDEO_IN_NUM_EX]; // 轮巡通道 32-63路*/
  29282. BYTE byEmailType; // 0,图片附件,1,录像附件>
  29283. BYTE byEmailMaxLength; // 附件录像时的最大长度,单位MB>
  29284. BYTE byEmailMaxTime; // 附件是录像时最大时间长度,单位秒>
  29285. BYTE byReserved[475];
  29286. } DH_MSG_HANDLE_EX;
  29287. ///@brief 外部报警扩展
  29288. typedef struct
  29289. {
  29290. BYTE byAlarmType; // 报警器类型,0:常闭,1:常开
  29291. BYTE byAlarmEn; // 报警使能
  29292. BYTE byReserved[2];
  29293. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  29294. DH_MSG_HANDLE_EX struHandle; // 处理方式
  29295. } DH_ALARMIN_CFG_EX, *LPDHDEV_ALARMIN_CFG_EX;
  29296. ///@brief 动态检测报警
  29297. typedef struct
  29298. {
  29299. BYTE byMotionEn; // 动态检测报警使能
  29300. BYTE byReserved;
  29301. WORD wSenseLevel; // 灵敏度
  29302. WORD wMotionRow; // 动态检测区域的行数
  29303. WORD wMotionCol; // 动态检测区域的列数
  29304. BYTE byDetected[DH_MOTION_ROW][DH_MOTION_COL]; // 检测区域,最多32*32块区域
  29305. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  29306. DH_MSG_HANDLE_EX struHandle; //处理方式
  29307. } DH_MOTION_DETECT_CFG_EX;
  29308. ///@brief 火警报警
  29309. typedef struct
  29310. {
  29311. BOOL byFireEn; // 火警报警时能;
  29312. DH_MSG_HANDLE_EX struHandle; // 处理方式
  29313. BYTE byReserved[128];
  29314. }DHDEV_FIRE_ALARM_CFG;
  29315. ///@brief 静态检测报警
  29316. typedef struct
  29317. {
  29318. BYTE byStaticEn; // 静态检测报警使能
  29319. BYTE byLatch; // 检测延时(范围0-127,若超出范围则用nLatch)
  29320. WORD wSenseLevel; // 灵敏度
  29321. WORD wStaticRow; // 静态检测区域的行数
  29322. WORD wStaticCol; // 静态检测区域的列数
  29323. BYTE byDetected[DH_STATIC_ROW][DH_STATIC_COL]; // 检测区域,最多32*32块区域
  29324. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; // NSP
  29325. DH_MSG_HANDLE_EX struHandle; // 处理方式
  29326. int nLatch; // 检测延时
  29327. BYTE bReserved[64]; // 保留字段
  29328. } DH_STATIC_DETECT_CFG_EX;
  29329. ///@brief ACC断线报警事件配置
  29330. typedef struct _DHDEV_ACC_POWEROFF_CFG
  29331. {
  29332. BOOL bEnable; // ACC断线报警使能
  29333. int nDelayTime; // ACC断线报警延时时间,单位分钟
  29334. DH_MSG_HANDLE_EX struHandle; // 处理方式
  29335. BYTE Reserved[128]; // 保留字段
  29336. }DHDEV_ACC_POWEROFF_CFG;
  29337. ///@brief 防爆盒报警事件配置
  29338. typedef struct _DHDEV_EXPLOSION_PROOF_CFG
  29339. {
  29340. BOOL bEnable; // 防爆盒报警使能
  29341. DH_MSG_HANDLE_EX struHandle; // 处理方式
  29342. BYTE Reserved[128]; // 保留字段
  29343. }DHDEV_EXPLOSION_PROOF_CFG;
  29344. ///@brief Raid事件配置
  29345. typedef struct _DHDEV_RAID_EVENT_CFG
  29346. {
  29347. BOOL bEnable; // Raid事件使能
  29348. DH_MSG_HANDLE_EX struHandle; // 处理方式
  29349. BYTE Reserved[128]; // 保留字段
  29350. }DHDEV_RAID_EVENT_CFG;
  29351. ///@brief 视频丢失报警
  29352. typedef struct
  29353. {
  29354. BYTE byAlarmEn; // 视频丢失报警使能
  29355. BYTE byReserved[3];
  29356. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; // NSP
  29357. DH_MSG_HANDLE_EX struHandle; // 处理方式
  29358. } DH_VIDEO_LOST_CFG_EX;
  29359. ///@brief 图像遮挡报警
  29360. typedef struct
  29361. {
  29362. BYTE byBlindEnable; // 使能
  29363. BYTE byBlindLevel; // 灵敏度1-6
  29364. BYTE byReserved[2];
  29365. DH_TSECT stSect[DH_N_WEEKS][DH_N_REC_TSECT]; // NSP
  29366. DH_MSG_HANDLE_EX struHandle; // 处理方式
  29367. } DH_BLIND_CFG_EX;
  29368. ///@brief 硬盘消息(内部报警)
  29369. typedef struct
  29370. {
  29371. BYTE byNoDiskEn; // 无硬盘时报警
  29372. BYTE byReserved_1[3];
  29373. DH_TSECT stNDSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  29374. DH_MSG_HANDLE_EX struNDHandle; // 处理方式
  29375. BYTE byLowCapEn; // 硬盘低容量时报警
  29376. BYTE byLowerLimit; // 容量阀值,0-99
  29377. BYTE byReserved_2[2];
  29378. DH_TSECT stLCSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  29379. DH_MSG_HANDLE_EX struLCHandle; // 处理方式
  29380. BYTE byDiskErrEn; // 硬盘故障报警
  29381. BYTE bDiskNum;
  29382. BYTE byReserved_3[2];
  29383. DH_TSECT stEDSect[DH_N_WEEKS][DH_N_REC_TSECT]; //NSP
  29384. DH_MSG_HANDLE_EX struEDHandle; // 处理方式
  29385. } DH_DISK_ALARM_CFG_EX;
  29386. ///@brief 网络中断报警配置
  29387. typedef struct
  29388. {
  29389. BYTE byEnable;
  29390. BYTE byReserved[3];
  29391. DH_MSG_HANDLE_EX struHandle;
  29392. } DH_NETBROKEN_ALARM_CFG_EX;
  29393. ///@brief 前端接入配置参数信息
  29394. typedef struct __DEV_ENCODER_CFG
  29395. {
  29396. int nChannels; // 数字通道个数
  29397. DEV_ENCODER_INFO stuDevInfo[32]; // 各数字通道的前端编码器信息
  29398. BYTE byHDAbility; // 数字通道中最多可支持高清视频个数(为0表示不支持高清设置)
  29399. // 注:如果支持高清设置,高清通道为0~N-1,若将N之后的数字通道设置为高清,有可能保存不成功
  29400. BYTE bTVAdjust; // 设备是否支持TV调节, 0:不支持 1:支持.
  29401. BYTE bDecodeTour; // 设备是否支持解码轮巡, 0:不支持 大于0:表示前端支持轮巡最大设备数.
  29402. BYTE bRemotePTZCtl; // 指示是否支持远程云台控制。
  29403. char reserved[12];
  29404. } DEV_ENCODER_CFG, *LPDEV_ENCODER_CFG;
  29405. ///@brief 前端接入配置参数信息扩展
  29406. typedef struct __DEV_ENCODER_CFG_EX
  29407. {
  29408. int nChannels; // 数字通道个数
  29409. DEV_ENCODER_INFO stuDevInfo[128]; // 各数字通道的前端编码器信息
  29410. BYTE byHDAbility; // 数字通道中最多可支持高清视频个数(为0表示不支持高清设置)
  29411. // 注:如果支持高清设置,高清通道为0~N-1,若将N之后的数字通道设置为高清,有可能保存不成功
  29412. BYTE bTVAdjust; // 设备是否支持TV调节, 0:不支持 1:支持.
  29413. BYTE bDecodeTour; // 设备是否支持解码轮巡, 0:不支持 大于0:表示前端支持轮巡最大设备数.
  29414. BYTE bRemotePTZCtl; // 指示是否支持远程云台控制。
  29415. char reserved[256];
  29416. } DEV_ENCODER_CFG_EX, *LPDEV_ENCODER_CFG_EX;
  29417. ///@brief 前端接入配置参数信息扩展
  29418. typedef struct __DEV_ENCODER_CFG_EX2
  29419. {
  29420. int nChannels; // 实际获取/设置的数字通道个数
  29421. int nDevInfoMaxNum; // 最大申请数字通道个数
  29422. DEV_ENCODER_INFO *pstuDevInfo; // 各数字通道的前端编码器信息,大小为sizeof(DEV_ENCODER_INFO)*nDevInfoMaxNum;
  29423. BYTE byHDAbility; // 数字通道中最多可支持高清视频个数(为0表示不支持高清设置)
  29424. // 注:如果支持高清设置,高清通道为0~N-1,若将N之后的数字通道设置为高清,有可能保存不成功
  29425. BYTE bTVAdjust; // 设备是否支持TV调节, 0:不支持 1:支持.
  29426. BYTE bDecodeTour; // 设备是否支持解码轮巡, 0:不支持 大于0:表示前端支持轮巡最大设备数.
  29427. BYTE bRemotePTZCtl; // 指示是否支持远程云台控制。
  29428. char reserved[256];
  29429. } DEV_ENCODER_CFG_EX2, *LPDEV_ENCODER_CFG_EX2;
  29430. ///@brief struct 控制器
  29431. typedef struct tagDHCONFIG_CONTROLER{
  29432. DH_COMM_PROP struComm; // 串口属性
  29433. BYTE bLightGroup[DH_MAX_LIGHT_NUM]; // 受控灯数组(灯序号从1开始计数,比如[1,3,8,0…0]表示控制序号为1,3,8的灯
  29434. BYTE bDeviceAddr; // 控制器地址
  29435. BYTE bComPortType; // 串口类型 0:485串口, 1:232串口
  29436. BYTE bReserved[6]; // 保留
  29437. } DH_CONFIG_CONTROLER;
  29438. ///@brief 灯光控制配置
  29439. typedef struct __DHDEV_LIGHTCONTROL_CFG
  29440. {
  29441. DH_CONFIG_CONTROLER struControlers[DH_MAX_CONTROLER_NUM]; // 控制配置
  29442. BYTE bControlerNum; // 有效控制器数目
  29443. BYTE bReserved[1023]; // 保留
  29444. } DHDEV_LIGHTCONTROL_CFG, *LPDHDEV_LIGHTCONTROL_CFG;
  29445. ///@brief 3G流量信息配置
  29446. typedef struct
  29447. {
  29448. int nStrategy; //流量使用策略, 0:按流量包月 1:按时间包月
  29449. int nUpLimit; //流量使用上限, 按流量: 单位MB 按时间: 单位小时
  29450. int nreserved[22]; //保留字节
  29451. }DHDEV_3GFLOW_INFO_CFG;
  29452. ///@brief IPv6配置
  29453. typedef struct
  29454. {
  29455. char szLinkAddr[44]; // 链路地址: 字符串, 长度为44;(局域网内每台主机拥有唯一的链路地址,只读)
  29456. char szHostIP[40]; // 主机IP
  29457. DWORD dwPreFix; // 网络前缀(范围:1-128,可读可写)
  29458. char szGateWay[40]; // 默认网关
  29459. BOOL bAutoGet; // 自动获取使能
  29460. char szPrimaryDns[40]; // 首选DNS
  29461. char szSecondDns[40]; // 备选DNS
  29462. char cReserved[256]; // 保留字段
  29463. }DHDEV_IPV6_CFG;
  29464. ///@brief 紧急存储配置
  29465. typedef struct __DEV_URGENCY_RECORD_CFG
  29466. {
  29467. DWORD dwSize; // 结构体大小
  29468. BOOL bEnable; // 是否使能,1使能,0不使能
  29469. UINT nMaxRecordTime; // 最大录像时间,单位秒
  29470. char szClientMac[64]; // 客户端标识,手动传mac地址时需要自己去掉':';此处若不填写,将使用默认网卡作为标识
  29471. // (注意,如果手动设置非默认网卡的标识,将无法获取到该配置)
  29472. }DHDEV_URGENCY_RECORD_CFG;
  29473. ///@brief 电梯运行参数配置
  29474. typedef struct __DEV_ELEVATOR_ATTRI_CFG
  29475. {
  29476. DWORD dwSize; // 结构体大小
  29477. UINT nMAXFloorNum; //最大楼层 最小2
  29478. UINT nFloorDelayTime; //停靠判断时间,5-60;保持此时间长度认为是电梯停靠此楼层。
  29479. UINT nIntervalTime; //电梯上行或下行经过一层的最大时间,如果超过此时间,则认为电梯故障,轿厢停止了两层之间。
  29480. }DHDEV_ELEVATOR_ATTRI_CFG;
  29481. ///@brief 虚拟摄像头状态查询
  29482. typedef struct tagDHDEV_VIRTUALCAMERA_STATE_INFO
  29483. {
  29484. DWORD nStructSize; // 结构体大小
  29485. int nChannelID; // 通道号
  29486. CONNECT_STATE emConnectState; // 连接状态
  29487. UINT uiPOEPort; // 此虚拟摄像头所连接的POE端口号,0表示不是POE连接
  29488. char szDeviceName[64]; // 设备名称
  29489. char szDeviceType[128]; // 设备类型
  29490. char szSystemType[128]; // 系统版本
  29491. char szSerialNo[DH_SERIALNO_LEN]; // 序列号
  29492. int nVideoInput; // 视频输入
  29493. int nAudioInput; // 音频输入
  29494. int nAlarmOutput; // 外部报警
  29495. }DHDEV_VIRTUALCAMERA_STATE_INFO;
  29496. ///@brief 设备工作视频/线圈模式状态等信息查询
  29497. typedef struct tagDHDEV_TRAFFICWORKSTATE_INFO
  29498. {
  29499. DWORD nStructSize; // 结构体大小
  29500. int nChannelID; // 通道号
  29501. DH_TRAFFIC_SNAP_MODE emSnapMode; // 抓拍模式
  29502. }DHDEV_TRAFFICWORKSTATE_INFO;
  29503. ///@brief 防区类型
  29504. typedef enum tagEM_NET_DEFENCE_AREA_TYPE
  29505. {
  29506. EM_NET_DEFENCE_AREA_TYPE_UNKNOW, // 未知
  29507. EM_NET_DEFENCE_AREA_TYPE_INTIME, // 即时防区
  29508. EM_NET_DEFENCE_AREA_TYPE_DELAY, // 延时防区
  29509. EM_NET_DEFENCE_AREA_TYPE_FULLDAY, // 24小时防区
  29510. EM_NET_DEFENCE_AREA_TYPE_Follow, // 跟随防区
  29511. EM_NET_DEFENCE_AREA_TYPE_MEDICAL, // 医疗紧急防区
  29512. EM_NET_DEFENCE_AREA_TYPE_PANIC, // 恐慌防区
  29513. EM_NET_DEFENCE_AREA_TYPE_FIRE, // 火警防区
  29514. EM_NET_DEFENCE_AREA_TYPE_FULLDAYSOUND, // 24小时有声防区
  29515. EM_NET_DEFENCE_AREA_TYPE_FULLDATSLIENT, // 24小时无声防区
  29516. EM_NET_DEFENCE_AREA_TYPE_ENTRANCE1, // 出入防区1
  29517. EM_NET_DEFENCE_AREA_TYPE_ENTRANCE2, // 出入防区2
  29518. EM_NET_DEFENCE_AREA_TYPE_INSIDE, // 内部防区
  29519. EM_NET_DEFENCE_AREA_TYPE_OUTSIDE, // 外部防区
  29520. EN_NET_DEFENCE_AREA_TYPE_PEOPLEDETECT, // 人员检测防区
  29521. EM_NET_DEFENCE_AREA_TYPE_ROBBERY, // 匪警防区(西欧报警主机需求)
  29522. } EM_NET_DEFENCE_AREA_TYPE;
  29523. ///@brief 本地报警事件(对DH_ALARM_ALARM_EX升级)
  29524. typedef struct tagALARM_ALARM_INFO_EX2
  29525. {
  29526. DWORD dwSize;
  29527. int nChannelID; // 通道号
  29528. int nAction; // 0:开始 1:停止
  29529. NET_TIME stuTime; // 报警事件发生的时间
  29530. NET_SENSE_METHOD emSenseType; // 传感器类型
  29531. DH_MSG_HANDLE_EX stuEventHandler; // 联动信息
  29532. EM_NET_DEFENCE_AREA_TYPE emDefenceAreaType; // 防区类型
  29533. UINT nEventID; //事件ID
  29534. char szName[DH_COMMON_STRING_32]; // 通道名称
  29535. int nCount; // 事件发生次数
  29536. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  29537. char szUserID[32]; // 本地报警时登陆的用户ID
  29538. char szUserName[128]; // 本地报警时登陆的用户名
  29539. char szSN[32]; // 设备序列号
  29540. BOOL bExAlarmIn; // 外部输入报警
  29541. int nAreaNums; // 报警通道所属区域的个数
  29542. int nAreas[64]; // 报警通道所属的区域
  29543. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  29544. BYTE byReserved[568]; // 保留字节
  29545. }ALARM_ALARM_INFO_EX2;
  29546. ///@brief 事件类型EVENT_IVS_ALARM_IPC(DVR/NVR设备上的IPC报警 )对应的数据块描述信息
  29547. typedef struct tagDEV_EVENT_ALARM_IPC_INFO
  29548. {
  29549. int nChannelID; // 通道号
  29550. char szName[128]; // 事件名称
  29551. char bReserved1[4]; // 字节对齐
  29552. double PTS; // 时间戳(单位是毫秒)
  29553. NET_TIME_EX UTC; // 事件发生的时间
  29554. int nEventID; // 事件ID
  29555. int nAction; // 0:开始 1:停止
  29556. BYTE byReserved[1024]; // 保留字节
  29557. } DEV_EVENT_ALARM_IPC_INFO;
  29558. /////////////////////////////智能交通图片订阅接口参数/////////////////////////////////
  29559. ///@brief 数据类型
  29560. typedef struct RESERVED_DATA_INTEL_BOX
  29561. {
  29562. DWORD dwEventCount; //事件个数
  29563. DWORD* dwPtrEventType; //指向连续的事件类型的值。空间由用户自己申请,大小为sizeof(DWORD)*dwEventCount
  29564. DWORD dwInternalTime; // 图片上传间隔时间,单位:s
  29565. BYTE bReserved[1020]; //保留字节
  29566. }ReservedDataIntelBox;
  29567. #define RESERVED_TYPE_FOR_INTEL_BOX 0x00000001
  29568. ///@brief ReservedPara
  29569. typedef struct RESERVED_PARA
  29570. {
  29571. DWORD dwType; //pData的数据类型
  29572. //当[dwType]为 RESERVED_TYPE_FOR_INTEL_BOX 时,pData 对应为结构体ReservedDataIntelBox的地址
  29573. //当[dwType]为 RESERVED_TYPE_FOR_COMMON 时,[pData]对应为结构体NET_RESERVED_COMMON的结构体地址
  29574. //当[dwType]为 RESERVED_TYPE_FOR_PATH 时,[pData]对应结构体NET_RESERVED_PATH的结构体地址
  29575. void* pData; //数据,由用户申请内存,大小参考对应的结构体
  29576. }ReservedPara;
  29577. #define RESERVED_TYPE_FOR_PATH 0x00000100
  29578. ///@brief 图片路径类型
  29579. typedef enum tagNET_PICTURE_PATH_TYPE
  29580. {
  29581. NET_PATH_LOCAL_PATH , //本地硬盘或者sd卡成功写入路径
  29582. NET_PATH_FTP_PATH , //设备成功写到ftp服务器的路径
  29583. NET_PATH_VIDEO_PATH , //当前接入需要获取当前违章的关联视频的FTP上传路径
  29584. }NET_PICTURE_PATH_TYPE;
  29585. #define MAX_PIC_PATH_NUM 16
  29586. ///@brief 路径类型
  29587. typedef struct tagNET_RESERVED_PATH
  29588. {
  29589. int nMaxPathNum; //图片路径总数,为0时采用设备默认路径
  29590. NET_PICTURE_PATH_TYPE emPictruePaths[MAX_PIC_PATH_NUM]; //图片路径类型
  29591. }NET_RESERVED_PATH;
  29592. #define RESERVED_TYPE_FOR_COMMON 0x00000010
  29593. ///@brief 离线传输参数
  29594. typedef struct tagNET_OFFLINE_PARAM
  29595. {
  29596. char szClientID[20]; // 客户端mac地址,冒号分隔形式
  29597. BYTE byReserved[108]; // 保留
  29598. }NET_OFFLINE_PARAM;
  29599. ///@brief 返回的图片存储路径模式
  29600. typedef enum tagEM_PATH_MODE
  29601. {
  29602. EM_PATH_MODE_UNKNOWN = -1, // 未知
  29603. EM_PATH_MODE_ASYNC, // 异步
  29604. EM_PATH_MODE_SYNC, // 同步
  29605. } EM_PATH_MODE;
  29606. ///@brief 返回的图片类型
  29607. typedef enum tagNET_FILTER_IMAGE_TYPE
  29608. {
  29609. EM_FILTER_IMAGE_UNKNOWN, // 未知
  29610. EM_FILTER_IMAGE_OBJECT, // 上报目标抠图
  29611. EM_FILTER_IMAGE_SCENE, // 上报场景大图
  29612. }EM_FILTER_IMAGE_TYPE;
  29613. ///@brief 事件类型描述
  29614. typedef enum tagNET_EVENT_TYPE_DESCEIBEINFO
  29615. {
  29616. EM_EVENT_NORMAL = 0, // 正常抓图事件
  29617. EM_EVENT_EMAIL, // 邮件联动抓图事件
  29618. }EM_EVENT_TYPE_DESCEIBEINFO;
  29619. ///@brief 设备给客户端传离线图片需要按照的顺序
  29620. typedef enum tagEM_EVENT_ORDER
  29621. {
  29622. EM_EVENT_ORDER_UNKNOWN, // 未知
  29623. EM_EVENT_ORDER_ASCENT, // 正序上传
  29624. EM_EVENT_ORDER_DESCENT, // 倒序上传
  29625. }EM_EVENT_ORDER;
  29626. ///@brief 抓图标志
  29627. typedef struct tagNET_RESERVED_COMMON
  29628. {
  29629. DWORD dwStructSize;
  29630. ReservedDataIntelBox* pIntelBox; // 兼容RESERVED_TYPE_FOR_INTEL_BOX
  29631. DWORD dwSnapFlagMask; // 抓图标志(按位),0位:"*",1位:"Timing",2位:"Manual",3位:"Marked",4位:"Event",5位:"Mosaic",6位:"Cutout", 7位:"Task"(当Flags为"Task"时,channel需要填-1)
  29632. NET_OFFLINE_PARAM* pstuOfflineParam; // 离线传输参数
  29633. NET_RESERVED_PATH* pstuPath; // 兼容RESERVED_TYPE_FOR_PATH
  29634. EM_PATH_MODE emPathMode; // 返回的图片存储路径模式
  29635. EM_FILTER_IMAGE_TYPE* pImageType; // 返回的图片类型, 由用户申请释放
  29636. int nImageTypeNum; // pImageType 有效个数
  29637. BOOL bFlagCustomInfo; // szCustomInfo 标志位 TRUE时 使用szCustomInfo字段
  29638. char szCustomInfo[512]; // 客户自定义信息 customInfo是getFiltercaps中能力对应的订阅参数的格式化字符串表示,字符串格式为:订阅参数以&分隔,订阅参数的名字和值用=连接
  29639. BOOL bSetEventsType; // 是否设置事件类型
  29640. char szRserved[4]; // 字节对齐
  29641. EM_EVENT_ORDER emOrder; // 设备给客户端传离线图片需要按照的顺序,如果是倒序上传:越晚产生的优先上传,越早产生的后传
  29642. }NET_RESERVED_COMMON;
  29643. /////////////////////////////智能球控制接口参数/////////////////////////////////
  29644. ///@brief 场景结构信息
  29645. typedef struct
  29646. {
  29647. DWORD dwSize;
  29648. int nScene; //场景编号
  29649. }DHDEV_INTELLI_SCENE_INFO;
  29650. ///@brief 场景边界限位信息
  29651. typedef struct
  29652. {
  29653. DWORD dwSize;
  29654. int nScene; //场景编号
  29655. int nType; //0:上边界限位,1:下边界限位,2:左边界,3:右边界
  29656. }DHDEV_INTELLI_SCENELIMIT_INFO;
  29657. ///@brief 手动跟踪目标结构体信息
  29658. typedef struct
  29659. {
  29660. DWORD dwSize;
  29661. int nObjectID; // 物体ID,-1 表示web上框选的是智能帧上传框外任意位置物体,>=0表示框选的是智能帧上传的物体
  29662. RECT stuBound; // 矩形范围,点的坐标归一化到[0,8191]区间
  29663. int nTrackTimeOut; // 跟踪持续时间,单位为秒
  29664. int nStaticTimeOut; // 静止等待时间,单位为秒
  29665. }DHDEV_INTELLI_TRACKOBJECT_INFO;
  29666. ///@brief 控制类型
  29667. typedef enum __TRACKCONTROL_TYPE
  29668. {
  29669. DH_TRACK_MARKSCENE, // 标定场景, 对应于DHDEV_INTELLI_SCENE_INFO结构体
  29670. DH_TRACK_GOTOSCENE, // 转动到场景,对应于DHDEV_INTELLI_SCENE_INFO结构体
  29671. DH_TRACK_MARKSCENELIMIT, // 标定场景边界限位,对应于DHDEV_INTELLI_SCENELIMIT_INFO结构体
  29672. DH_TRACK_GOTOSCENELIMIT, // 转动到场景边界限位处,对应于DHDEV_INTELLI_SCENELIMIT_INFO结构体
  29673. DH_TRACK_MARKSCENEMAXZOOM, // 标定场景最大跟踪倍率, 对应于DHDEV_INTELLI_SCENE_INFO结构体
  29674. DH_TRACK_OBJECT, // 选中场景中的跟踪目标,对应于DHDEV_INTELLI_TRACKOBJECT_INFO机构体
  29675. DH_TRACK_START, // 开始智能跟踪,无需指定参数信息
  29676. DH_TRACK_STOP, // 停止智能跟踪,无需指定参数信息
  29677. DH_TRACK_TYPE_NUM,
  29678. }DH_TRACKCONTROL_TYPE;
  29679. ///@brief 智能球机控制输入参数
  29680. typedef struct tagNET_IN_CONTROL_INTELLITRACKER
  29681. {
  29682. DWORD dwSize;
  29683. int nChannelID; // 通道ID
  29684. DH_TRACKCONTROL_TYPE emCtrlType; // 控制类型
  29685. void* pCtrlInfo; // 控制类型对应控制信息结构体指针,参见DH_TRACKCONTROL_TYPE定义。由用户申请内存
  29686. int nMaxLen; // 控制信息结构体大小
  29687. int nWaittime; // 等待超时时间
  29688. }NET_IN_CONTROL_INTELLITRACKER;
  29689. ///@brief 智能球机控制输出参数
  29690. typedef struct tagNET_OUT_CONTROL_INTELLITRACKER
  29691. {
  29692. DWORD dwSize;
  29693. }NET_OUT_CONTROL_INTELLITRACKER;
  29694. ///@brief CLIENT_GetLastEventInfo 入参
  29695. typedef struct tagNET_IN_GET_LAST_EVENT_INFO
  29696. {
  29697. DWORD dwSize; // 结构体大小
  29698. int nChannelID; // 通道号
  29699. EM_CLASS_TYPE emClassType; // 业务大类
  29700. DWORD dwAlarmType; // 智能分析事件类型
  29701. BOOL bOnlySendFrame; // 是否事件仅通过事件帧发送
  29702. }NET_IN_GET_LAST_EVENT_INFO;
  29703. ///@brief CLIENT_GetLastEventInfo 出参
  29704. typedef struct tagNET_OUT_GET_LAST_EVENT_INFO
  29705. {
  29706. DWORD dwSize; // 结构体大小
  29707. int nState; // 智能规则当前查询时的状态 0-关闭状态,1-开启状态
  29708. LPVOID pEventInfo; // 事件结构体-内存由用户分配和释放
  29709. LDWORD dwBufferSize; // 事件结构体大小
  29710. DWORD dwOutBufferSize; // 实际使用的大小
  29711. }NET_OUT_GET_LAST_EVENT_INFO;
  29712. /////////////////////////////视频分析接口参数/////////////////////////////////
  29713. #define MAX_TEMPLATEIMAGE_NUM 32 //有效图片个数上限
  29714. ///@brief 获取视频分析对象输入参数
  29715. typedef struct tagNET_IN_VIDEOANALYSE_GETTEMPLATEIMAGE
  29716. {
  29717. DWORD dwSize;
  29718. int nChannelID; // 通道ID
  29719. char szRule[DH_COMMON_STRING_128]; // 模板图片对应的规则
  29720. }NET_IN_VIDEOANALYSE_GETTEMPLATEIMAGE;
  29721. ///@brief 获取视频分析对象输出参数
  29722. typedef struct tagNET_OUT_VIDEOANALYSE_GETTEMPLATEIMAGE
  29723. {
  29724. DWORD dwSize;
  29725. unsigned int nImageNum; // 有效图片个数
  29726. DH_PIC_INFO_EX2 stuImage[MAX_TEMPLATEIMAGE_NUM]; // 图片信息
  29727. char* pBuffer; // 图片缓冲区指针, 由用户自己申请
  29728. int nBufLen; // 图片缓冲区大小, 由用户自己填写
  29729. int nRetLen; // 获取的图片数据总长度, 无需用户填写, 可以根据此参数判断分配的缓存区大小是否足够
  29730. }NET_OUT_VIDEOANALYSE_GETTEMPLATEIMAGE;
  29731. ///@brief 设置视频分析对象输入参数
  29732. typedef struct tagNET_IN_VIDEOANALYSE_SETTEMPLATEIMAGE
  29733. {
  29734. DWORD dwSize;
  29735. int nChannelID; // 通道ID
  29736. char szRule[DH_COMMON_STRING_128]; // 模板图片对应的规则
  29737. unsigned int nImageNum; // 有效图片个数
  29738. DH_PIC_INFO_EX2 stuImage[MAX_TEMPLATEIMAGE_NUM]; // 图片信息
  29739. char* pBuffer; // 图片缓冲区指针,由用户申请内存,大小为nBufLen
  29740. int nBufLen; // 图片缓冲区大小
  29741. }NET_IN_VIDEOANALYSE_SETTEMPLATEIMAGE;
  29742. ///@brief 设置视频分析对象输出参数
  29743. typedef struct tagNET_OUT_VIDEOANALYSE_SETTEMPLATEIMAGE
  29744. {
  29745. DWORD dwSize;
  29746. }NET_OUT_VIDEOANALYSE_SETTEMPLATEIMAGE;
  29747. /////////////////////////////淘汰类型/////////////////////////////////
  29748. ///@brief 查询设备工作状态通道信息,相关接口已淘汰,请不要使用
  29749. typedef struct
  29750. {
  29751. BYTE byRecordStatic; // 通道是否在录像;0:不录像,1:手动录像,2:自动录象
  29752. BYTE bySignalStatic; // 连接的信号状态;0:正常,1:信号丢失
  29753. BYTE byHardwareStatic; // 通道硬件状态;0:正常,1:异常,例如DSP死掉
  29754. char reserve;
  29755. DWORD dwBitRate; // 实际码率
  29756. DWORD dwLinkNum; // 客户端连接的个数
  29757. DWORD dwClientIP[DH_MAX_LINK]; // 客户端的IP地址
  29758. } NET_DEV_CHANNELSTATE, *LPNET_DEV_CHANNELSTATE;
  29759. ///@brief 查询设备工作状态,相关接口已淘汰,请不要使用
  29760. typedef struct
  29761. {
  29762. DWORD dwDeviceStatic; // 设备的状态;0x00:正常,0x01:CPU占用过高,0x02:硬件错误
  29763. NET_DEV_DISKSTATE stHardDiskStatic[DH_MAX_DISKNUM];
  29764. NET_DEV_CHANNELSTATE stChanStatic[DH_MAX_CHANNUM]; //通道的状态
  29765. BYTE byAlarmInStatic[DH_MAX_ALARMIN]; //报警端口的状态;0:没有报警,1:有报警
  29766. BYTE byAlarmOutStatic[DH_MAX_ALARMOUT]; //报警输出端口的状态;0:没有输出,1:有报警输出
  29767. DWORD dwLocalDisplay; // 本地显示状态;0:正常,1:不正常
  29768. } NET_DEV_WORKSTATE, *LPNET_DEV_WORKSTATE;
  29769. ///@brief 协议信息
  29770. typedef struct
  29771. {
  29772. char protocolname[12]; // 协议名
  29773. unsigned int baudbase; // 波特率
  29774. unsigned char databits; // 数据位
  29775. unsigned char stopbits; // 停止位
  29776. unsigned char parity; // 校验位
  29777. unsigned char reserve;
  29778. } PROTOCOL_INFO, *LPPROTOCOL_INFO;
  29779. ///@brief 语音对讲参数配置
  29780. typedef struct
  29781. {
  29782. /* 音频输入参数 */
  29783. BYTE byInFormatTag; // 编码类型,如PCM
  29784. BYTE byInChannels; // 声道数
  29785. WORD wInBitsPerSample; // 采样深度
  29786. DWORD dwInSamplesPerSec; // 采样率
  29787. /* 音频输出参数 */
  29788. BYTE byOutFormatTag; // 编码类型,如PCM
  29789. BYTE byOutChannels; // 声道数
  29790. WORD wOutBitsPerSample; // 采样深度
  29791. DWORD dwOutSamplesPerSec; // 采样率
  29792. } DHDEV_TALK_CFG, *LPDHDEV_TALK_CFG;
  29793. /////////////////////////////// 矩阵 ///////////////////////////////////////
  29794. #define DH_MATRIX_INTERFACE_LEN 16 // 信号接口名称长度
  29795. #define DH_MATRIX_MAX_CARDS 128 // 矩阵子卡最大数量
  29796. #define DH_SPLIT_PIP_BASE 1000 // 分割模式画中画的基础值
  29797. #define DH_MAX_SPLIT_MODE_NUM 64 // 最大分割模式数
  29798. #define DH_MATRIX_MAX_CHANNEL_IN 1500 // 矩阵最大输入通道数
  29799. #define DH_MATRIX_MAX_CHANNEL_OUT 256 // 矩阵最大输出通道数
  29800. #define DH_DEVICE_NAME_LEN 64 // 设备名称长度
  29801. #define DH_MAX_CPU_NUM 16 // 最大CPU数量
  29802. #define DH_MAX_FAN_NUM 16 // 最大风扇数量
  29803. #define DH_MAX_POWER_NUM 16 // 最大电源数量
  29804. #define DH_MAX_BATTERY_NUM 16 // 最大电池数量
  29805. #define DH_MAX_TEMPERATURE_NUM 256 // 最大温度传感器数量
  29806. #define DH_MAX_ISCSI_NAME_LEN 128 // ISCSI名称长度
  29807. #define DH_VERSION_LEN 64 // 版本信息长度
  29808. #define DH_MAX_STORAGE_PARTITION_NUM 32 // 存储分区最大数量
  29809. #define DH_STORAGE_MOUNT_LEN 64 // 挂载点长度
  29810. #define DH_STORAGE_FILE_SYSTEM_LEN 16 // 文件系统名称长度
  29811. #define DH_MAX_MEMBER_PER_RAID 32 // RAID成员最大数量
  29812. #define DH_DEV_ID_LEN_EX 128 // 设备ID最大长度
  29813. #define DH_MAX_BLOCK_NUM 32 // 最大区块数量
  29814. #define DH_MAX_SPLIT_WINDOW 128 // 最大分割窗口数量
  29815. #define DH_FILE_TYPE_LEN 64 // 文件类型长度
  29816. #define DH_DEV_ID_LEN 128 // 设备ID最大长度
  29817. #define DH_DEV_NAME_LEN 128 // 设备名称最大长度
  29818. #define DH_TSCHE_DAY_NUM 8 // 时间表第一维大小, 表示天数
  29819. #define DH_TSCHE_SEC_NUM 6 // 时间表第二维大小, 表示时段数
  29820. #define DH_SPLIT_INPUT_NUM 256 // 设备二级切换时第一级split支持的输入通道数
  29821. #define DH_TSCHE_SEC_NUM_EX 36 // 时间表第二维大小, 表示时段数
  29822. #define DH_DEVICE_ID_LOCAL "Local" // 本地设备ID
  29823. #define DH_DEVICE_ID_REMOTE "Remote" // 远程设备ID
  29824. #define DH_DEVICE_ID_UNIQUE "Unique" // 设备内统一编号
  29825. ///@brief 分割模式
  29826. typedef enum tagDH_SPLIT_MODE
  29827. {
  29828. DH_SPLIT_1 = 1, // 1画面
  29829. DH_SPLIT_2 = 2, // 2画面
  29830. DH_SPLIT_4 = 4, // 4画面
  29831. DH_SPLIT_5 = 5, // 5画面
  29832. DH_SPLIT_6 = 6, // 6画面
  29833. DH_SPLIT_8 = 8, // 8画面
  29834. DH_SPLIT_9 = 9, // 9画面
  29835. DH_SPLIT_12 = 12, // 12画面
  29836. DH_SPLIT_16 = 16, // 16画面
  29837. DH_SPLIT_20 = 20, // 20画面
  29838. DH_SPLIT_25 = 25, // 25画面
  29839. DH_SPLIT_36 = 36, // 36画面
  29840. DH_SPLIT_64 = 64, // 64画面
  29841. DH_SPLIT_144 = 144, // 144画面
  29842. DH_PIP_1 = DH_SPLIT_PIP_BASE + 1, // 画中画模式, 1个全屏大画面+1个小画面窗口
  29843. DH_PIP_3 = DH_SPLIT_PIP_BASE + 3, // 画中画模式, 1个全屏大画面+3个小画面窗口
  29844. DH_SPLIT_FREE = DH_SPLIT_PIP_BASE * 2, // 自由开窗模式,可以自由创建、关闭窗口,自由设置窗口位置和Z轴次序
  29845. DH_COMPOSITE_SPLIT_1 = DH_SPLIT_PIP_BASE * 3 + 1, // 融合屏成员1分割
  29846. DH_COMPOSITE_SPLIT_4 = DH_SPLIT_PIP_BASE * 3 + 4, // 融合屏成员4分割
  29847. DH_SPLIT_3 = 10, // 3画面
  29848. DH_SPLIT_3B = 11, // 3画面倒品
  29849. DH_SPLIT_4A = DH_SPLIT_PIP_BASE * 4 + 1, // 4个画面, 一个大画面在左边,3个小画面在右边排成一列
  29850. } DH_SPLIT_MODE;
  29851. #define DH_PROTOCOL_DAHUA2 DH_PROTOCOL_PRIVATE2
  29852. #define DH_PROTOCOL_DAHUA3 DH_PROTOCOL_PRIVATE3
  29853. ///@brief 设备协议类型
  29854. typedef enum tagDH_DEVICE_PROTOCOL
  29855. {
  29856. DH_PROTOCOL_PRIVATE2, // 私有2代协议
  29857. DH_PROTOCOL_PRIVATE3, // 私有3代协议
  29858. DH_PROTOCOL_ONVIF, // Onvif
  29859. DH_PROTOCOL_VNC, // 虚拟网络计算机
  29860. DH_PROTOCOL_TS, // 标准TS
  29861. DH_PROTOCOL_ECLOUD, // 云睿接入
  29862. DH_PROTOCOL_GENERAL, // 以URL形式添加
  29863. DH_PROTOCOL_PRIVATE = 100, // 私有协议
  29864. DH_PROTOCOL_AEBELL, // 美电贝尔
  29865. DH_PROTOCOL_PANASONIC, // 松下
  29866. DH_PROTOCOL_SONY, // 索尼
  29867. DH_PROTOCOL_DYNACOLOR, // Dynacolor
  29868. DH_PROTOCOL_TCWS, // 天城威视
  29869. DH_PROTOCOL_SAMSUNG, // 三星
  29870. DH_PROTOCOL_YOKO, // YOKO
  29871. DH_PROTOCOL_AXIS, // 安讯视
  29872. DH_PROTOCOL_SANYO, // 三洋
  29873. DH_PROTOCOL_BOSH, // Bosch
  29874. DH_PROTOCOL_PECLO, // Peclo
  29875. DH_PROTOCOL_PROVIDEO, // Provideo
  29876. DH_PROTOCOL_ACTI, // ACTi
  29877. DH_PROTOCOL_VIVOTEK, // Vivotek
  29878. DH_PROTOCOL_ARECONT, // Arecont
  29879. DH_PROTOCOL_PRIVATEEH, // PrivateEH
  29880. DH_PROTOCOL_IMATEK, // IMatek
  29881. DH_PROTOCOL_SHANY, // Shany
  29882. DH_PROTOCOL_VIDEOTREC, // 动力盈科
  29883. DH_PROTOCOL_URA, // Ura
  29884. DH_PROTOCOL_BITICINO, // Bticino
  29885. DH_PROTOCOL_ONVIF2, // Onvif协议类型, 同DH_PROTOCOL_ONVIF
  29886. DH_PROTOCOL_SHEPHERD, // 视霸
  29887. DH_PROTOCOL_YAAN, // 亚安
  29888. DH_PROTOCOL_AIRPOINT, // Airpop
  29889. DH_PROTOCOL_TYCO, // TYCO
  29890. DH_PROTOCOL_XUNMEI, // XM
  29891. DH_PROTOCOL_HIKVISION, // HIK
  29892. DH_PROTOCOL_LG, // LG
  29893. DH_PROTOCOL_AOQIMAN, // 奥奇曼
  29894. DH_PROTOCOL_BAOKANG, // 宝康
  29895. DH_PROTOCOL_WATCHNET, // Watchnet
  29896. DH_PROTOCOL_XVISION, // Xvision
  29897. DH_PROTOCOL_FUSITSU, // 富士通
  29898. DH_PROTOCOL_CANON, // Canon
  29899. DH_PROTOCOL_GE, // GE
  29900. DH_PROTOCOL_Basler, // 巴斯勒
  29901. DH_PROTOCOL_Patro, // 帕特罗
  29902. DH_PROTOCOL_CPKNC, // CPPLUS K系列
  29903. DH_PROTOCOL_CPRNC, // CPPLUS R系列
  29904. DH_PROTOCOL_CPUNC, // CPPLUS U系列
  29905. DH_PROTOCOL_CPPLUS, // CPPLUS IPC
  29906. DH_PROTOCOL_XunmeiS, // Xms
  29907. DH_PROTOCOL_GDDW, // GDDW
  29908. DH_PROTOCOL_PSIA, // PSIA
  29909. DH_PROTOCOL_GB2818, // GB2818
  29910. DH_PROTOCOL_GDYX, // GDYX
  29911. DH_PROTOCOL_OTHER, // 由用户自定义
  29912. DH_PROTOCOL_MULTICAST = 179, // 组播,实现组播功能,当成第三方设备接入来处理
  29913. DH_PROTOCOL_MULTICASTTS = 185, // 组播,处理TS组播功能,当成第三方设备接入来处理
  29914. } DH_DEVICE_PROTOCOL;
  29915. ///@brief 一屏幕的分割模式信息
  29916. typedef struct tagDH_SPLIT_MODE_INFO
  29917. {
  29918. DWORD dwSize;
  29919. DH_SPLIT_MODE emSplitMode; // 分割模式
  29920. int nGroupID; // 分组序号
  29921. DWORD dwDisplayType; // 显示类型;具体见DH_SPLIT_DISPLAY_TYPE(注释各模式下显示内容由"PicInPic"决定, 各模式下显示内容按NVD旧有规则决定(即DisChn字段决定)。兼容,没有这一个项时,默认为普通显示类型,即"General")
  29922. } DH_SPLIT_MODE_INFO;
  29923. ///@brief 分割能力
  29924. typedef struct tagDH_SPLIT_CAPS
  29925. {
  29926. DWORD dwSize;
  29927. int nModeCount; // 支持的分割模式数量
  29928. DH_SPLIT_MODE emSplitMode[DH_MAX_SPLIT_MODE_NUM]; // 支持的分割模式
  29929. int nMaxSourceCount; // 最大显示源配置数
  29930. int nFreeWindowCount; // 支持的最大自由开窗数目
  29931. BOOL bCollectionSupported; // 是否支持区块收藏
  29932. DWORD dwDisplayType; // 掩码表示多个显示类型,具体见DH_SPLIT_DISPLAY_TYPE(注释各模式下显示内容由"PicInPic"决定, 各模式下显示内容按NVD旧有规则决定(即DisChn字段决定)。兼容,没有这一个项时,默认为普通显示类型,即"General")
  29933. int nPIPModeCount; // 画中画支持的分割模式数量
  29934. DH_SPLIT_MODE emPIPSplitMode[DH_MAX_SPLIT_MODE_NUM]; // 画中画支持的分割模式
  29935. int nInputChannels[DH_SPLIT_INPUT_NUM]; // 支持的输入通道
  29936. int nInputChannelCount; // 支持的输入通道个数, 0表示没有输入通道限制
  29937. int nBootModeCount; // 启动分割模式数量
  29938. DH_SPLIT_MODE emBootMode[DH_MAX_SPLIT_MODE_NUM]; // 支持的启动默认画面分割模式
  29939. } DH_SPLIT_CAPS;
  29940. ///@brief 级联权限验证信息
  29941. typedef struct tagDH_CASCADE_AUTHENTICATOR
  29942. {
  29943. DWORD dwSize;
  29944. char szUser[DH_NEW_USER_NAME_LENGTH]; // 用户名
  29945. char szPwd[DH_NEW_USER_PSW_LENGTH]; // 密码
  29946. char szSerialNo[DH_SERIALNO_LEN]; // 设备序列号
  29947. } DH_CASCADE_AUTHENTICATOR;
  29948. ///@brief 推流方式的码流类型
  29949. typedef enum tagEM_SRC_PUSHSTREAM_TYPE
  29950. {
  29951. EM_SRC_PUSHSTREAM_AUTO, // 设备端根据码流头自动识别,默认值
  29952. EM_SRC_PUSHSTREAM_HIKVISION, // 海康私有码流
  29953. EM_SRC_PUSHSTREAM_PS, // PS流
  29954. EM_SRC_PUSHSTREAM_TS, // TS流
  29955. EM_SRC_PUSHSTREAM_SVAC, // SVAC码流
  29956. }EM_SRC_PUSHSTREAM_TYPE;
  29957. ///@brief 加密等级
  29958. typedef enum tagEM_ENCRYPT_LEVEL
  29959. {
  29960. EM_ENCRYPT_LEVEL_UNKNOWN, // 未知
  29961. EM_ENCRYPT_LEVEL_NONE, // 不加密
  29962. EM_ENCRYPT_LEVEL_IFRAME256, // 加密I帧前256字节
  29963. EM_ENCRYPT_LEVEL_IFRAME_WHOLE, // 加密整个I帧
  29964. EM_ENCRYPT_LEVEL_IAXFRAME, // 对I帧, 音频帧及其他辅助帧进行加密
  29965. }EM_ENCRYPT_LEVEL;
  29966. ///@brief 码流加密方式
  29967. typedef enum tagEM_ENCRYPT_ALGORITHM_TYPE
  29968. {
  29969. EM_ENCRYPT_ALGORITHM_UNKNOWN, // 未知
  29970. EM_ENCRYPT_ALGORITHM_AES, // AES加密
  29971. EM_ENCRYPT_ALGORITHM_DES, // DES加密
  29972. EM_ENCRYPT_ALGORITHM_3DES, // 3DES加密
  29973. }EM_ENCRYPT_ALGORITHM_TYPE;
  29974. ///@brief 密钥交换方式
  29975. typedef enum tagEM_KEY_EXCHANGE_TYPE
  29976. {
  29977. EM_KEY_EXCHANGE_UNKNOWN, // 未知
  29978. EM_KEY_EXCHANGE_MIKEY, // Mikey密钥
  29979. EM_KEY_EXCHANGE_PSK, // 预共享密钥
  29980. EM_KEY_EXCHANGE_PK, // 公共密钥
  29981. EM_KEY_EXCHANGE_DH, // 霍夫曼密钥
  29982. }EM_KEY_EXCHANGE_TYPE;
  29983. ///@brief 显示源码流加密方式
  29984. typedef struct tagNET_SOURCE_STREAM_ENCRYPT
  29985. {
  29986. EM_ENCRYPT_LEVEL emEncryptLevel; // 加密等级
  29987. EM_ENCRYPT_ALGORITHM_TYPE emAlgorithm; // 加密算法
  29988. EM_KEY_EXCHANGE_TYPE emExchange; // 密钥交换方式
  29989. BOOL bUnvarnished; // MTS使用场景,true为交互MIKEY后让数据不进行加/解密
  29990. char szPSK[1032]; // 密钥
  29991. BYTE byReserved[1024]; // 保留字节
  29992. }NET_SOURCE_STREAM_ENCRYPT;
  29993. ///@brief 显示源
  29994. typedef struct tagDH_SPLIT_SOURCE
  29995. {
  29996. DWORD dwSize;
  29997. BOOL bEnable; // 使能
  29998. char szIp[DH_MAX_IPADDR_LEN]; // IP, 空表示没有设置
  29999. char szUser[DH_USER_NAME_LENGTH]; // 用户名, 建议使用szUserEx
  30000. char szPwd[DH_USER_PSW_LENGTH]; // 密码, 建议使用szPwdEx
  30001. int nPort; // 端口
  30002. int nChannelID; // 通道号
  30003. int nStreamType; // 视频码流, -1-自动, 0-主码流, 1-辅码流1, 2-辅码流2, 3-辅码流3, 4-snap, 5-预览, 6-多画面预览
  30004. int nDefinition; // 清晰度, 0-标清, 1-高清
  30005. DH_DEVICE_PROTOCOL emProtocol; // 协议类型
  30006. char szDevName[DH_DEVICE_NAME_LEN]; // 设备名称
  30007. int nVideoChannel; // 视频输入通道数
  30008. int nAudioChannel; // 音频输入通道数
  30009. /*--------------------------------------------------------------------------------------*/
  30010. /* 以下只对解码器有效 */
  30011. BOOL bDecoder; // 是否是解码器
  30012. BYTE byConnType; // -1: auto, 0:TCP;1:UDP;2:组播
  30013. BYTE byWorkMode; // 0:直连;1:转发
  30014. WORD wListenPort; // 指示侦听服务的端口,转发时有效; byConnType为组播时,则作为多播端口
  30015. char szDevIpEx[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // szDevIp扩展,前端DVR的IP地址(可以输入域名)
  30016. BYTE bySnapMode; // 抓图模式(nStreamType==4时有效) 0:表示请求一帧,1:表示定时发送请求
  30017. BYTE byManuFactory; // 目标设备的生产厂商, 具体参考EM_IPC_TYPE类
  30018. BYTE byDeviceType; // 目标设备的设备类型, 0:IPC
  30019. BYTE byDecodePolicy; // 目标设备的解码策略, 0:兼容以前
  30020. // 1:实时等级高 2:实时等级中
  30021. // 3:实时等级低 4:默认等级
  30022. // 5:流畅等级高 6:流畅等级中
  30023. // 7:流畅等级低
  30024. /*--------------------------------------------------------------------------------------*/
  30025. DWORD dwHttpPort; // Http端口号, 0-65535
  30026. DWORD dwRtspPort; // Rtsp端口号, 0-65535
  30027. char szChnName[DH_DEVICE_NAME_LEN]; // 远程通道名称, 只有读取到的名称不为空时才可以修改该通道的名称
  30028. char szMcastIP[DH_MAX_IPADDR_LEN]; // 多播IP地址, byConnType为组播时有效
  30029. char szDeviceID[DH_DEV_ID_LEN_EX]; // 设备ID, ""-null, "Local"-本地通道, "Remote"-远程通道, 或者填入具体的RemoteDevice中的设备ID
  30030. BOOL bRemoteChannel; // 是否远程通道(只读)
  30031. unsigned int nRemoteChannelID; // 远程通道ID(只读), bRemoteChannel=TRUE时有效
  30032. char szDevClass[DH_DEV_TYPE_LEN]; // 设备类型, 如IPC, DVR, NVR等
  30033. char szDevType[DH_DEV_TYPE_LEN]; // 设备具体型号, 如IPC-HF3300
  30034. char szMainStreamUrl[MAX_PATH]; // 主码流url地址, byManuFactory为DH_IPC_OTHER时有效
  30035. char szExtraStreamUrl[MAX_PATH]; // 辅码流url地址, byManuFactory为DH_IPC_OTHER时有效
  30036. int nUniqueChannel; // 设备内统一编号的唯一通道号, 只读
  30037. DH_CASCADE_AUTHENTICATOR stuCascadeAuth; // 级联认证信息, 设备ID为"Local/Cascade/SerialNo"时有效, 其中SerialNo是设备序列号
  30038. int nHint; // 0-普通视频源, 1-报警视频源
  30039. int nOptionalMainUrlCount; // 备用主码流地址数量
  30040. char szOptionalMainUrls[DH_MAX_OPTIONAL_URL_NUM][MAX_PATH]; // 备用主码流地址列表
  30041. int nOptionalExtraUrlCount; // 备用辅码流地址数量
  30042. char szOptionalExtraUrls[DH_MAX_OPTIONAL_URL_NUM][MAX_PATH]; // 备用辅码流地址列表
  30043. /*--------------------------------------------------------------------------------------*/
  30044. /*协议后续添加字段*/
  30045. int nInterval; // 轮巡时间间隔 单位:秒
  30046. char szUserEx[DH_NEW_USER_NAME_LENGTH]; // 用户名
  30047. char szPwdEx[DH_NEW_USER_PSW_LENGTH]; // 密码
  30048. EM_SRC_PUSHSTREAM_TYPE emPushStream; // 推流方式的码流类型,只有byConnType为TCP-Push或UDP-Push才有该字段
  30049. NET_RECT stuSRect; // 视频源区域,当szDeviceID不为空时有效,若区域为(0,0,0,0)表示数据无效,设备使用默认值(0,0,8192,8192)
  30050. NET_SOURCE_STREAM_ENCRYPT stuSourceStreamEncrypt; // 码流加密方式
  30051. char szSerialNo[DH_SERIALNO_LEN]; // 设备序列号,当连接设备的协议类型为云睿接入,该字段必填
  30052. char szCaption[128]; // 通道备注,可用于在OSD显示
  30053. BOOL bUserStreamUrlEx; // 是否使用szMainStreamUrlEx/szExtraStreamUrlEx字段
  30054. char szMainStreamUrlEx[1024]; // 主码流url地址, byManuFactory为DH_IPC_OTHER时有效
  30055. char szExtraStreamUrlEx[1024]; // 辅码流url地址, byManuFactory为DH_IPC_OTHER时有效
  30056. } DH_SPLIT_SOURCE;
  30057. ///@brief 视频输出能力集
  30058. typedef struct tagDH_VIDEO_OUT_CAPS
  30059. {
  30060. DWORD dwSize;
  30061. BOOL bColor; // 是否支持输出颜色设置
  30062. BOOL bMargin; // 是否支持边界设置
  30063. int nLayers; // 支持同时显示的图层数
  30064. BOOL bPowerMode; // 是否支持电源控制
  30065. int bSplitMode; // 支持的画面分割模式, 0-单画面, 1-'#'字型模式(包括单画面), 2-任意模式
  30066. unsigned int nBackground; // 支持的背景方式, 按位表示, 0-颜色, 1-图片
  30067. BOOL bBindOutput; // 是否支持输出屏分辨率绑定设置
  30068. BOOL bAudioSupport; // 是否支持音频输出
  30069. DWORD dwAudioMode; // 支持的音频模式, 按位表示, bit0-主控输出, bit1-子卡输出
  30070. } DH_VIDEO_OUT_CAPS;
  30071. ///@brief 颜色BCSH
  30072. typedef struct tagDH_COLOR_BCSH
  30073. {
  30074. int nBirghtness; // 亮度
  30075. int nContrast; // 对比度
  30076. int nSaturation; // 饱和度
  30077. int nHue; // 色调
  30078. } DH_COLOR_BCSH;
  30079. ///@brief 尺寸
  30080. typedef struct tagDH_SIZE
  30081. {
  30082. int nWidth; // 宽度
  30083. int nHeight; // 高度
  30084. } DH_SIZE;
  30085. ///@brief 热拔插模式
  30086. typedef struct tagDH_HOT_PLUG_MODE
  30087. {
  30088. DWORD dwSize;
  30089. int nMode; // 热拔插模式, 0-热插拔模式, 1-强制输出模式
  30090. } DH_HOT_PLUG_MODE;
  30091. ///@brief 视频输出选项
  30092. typedef struct tagDH_VIDEO_OUT_OPT
  30093. {
  30094. DWORD dwSize;
  30095. DH_RECT* pstuMargin; // 边界范围
  30096. DH_COLOR_BCSH* pstuColor; // 输出颜色
  30097. DH_COLOR_RGBA* pstuBackground; // 背景色
  30098. DH_SIZE* pstuSize; // 输出尺寸
  30099. DH_HOT_PLUG_MODE* pstuHotPlugMode; // 热拔插模式
  30100. } DH_VIDEO_OUT_OPT;
  30101. #define NET_VIDEOANALYSE_SCENES (32)
  30102. #define NET_VIDEOANALYSE_RULES (64)
  30103. ///@brief 智能分析
  30104. typedef struct tagNET_PD_VIDEOANALYSE
  30105. {
  30106. BOOL bSupport; // 是否支持智能分析
  30107. char szSupportScenes[NET_VIDEOANALYSE_SCENES][DH_COMMON_STRING_64]; // 支持的场景
  30108. char SupportRules[NET_VIDEOANALYSE_RULES][DH_COMMON_STRING_64]; // 支持的规则
  30109. } NET_PD_VIDEOANALYSE;
  30110. ///@brief 设备声道支持类型
  30111. typedef enum tagEM_AUDIO_CHANNEL_TYPE
  30112. {
  30113. EM_AUDIO_CHANNEL_SINGLE, // 单声道
  30114. EM_AUDIO_CHANNEL_DOUBLE, // 双声道
  30115. }EM_AUDIO_CHANNEL_TYPE;
  30116. ///@brief WIFI扫描及配置支持的版本类型
  30117. typedef enum tagEM_WLAN_SCAN_AND_CONFIG_TYPE
  30118. {
  30119. EM_WLAN_SCAN_AND_CONFIG_UNKNOWN, // 未知
  30120. EM_WLAN_SCAN_AND_CONFIG_V2, // V2:二代协议
  30121. EM_WLAN_SCAN_AND_CONFIG_V3, // v3:三代协议
  30122. }EM_WLAN_SCAN_AND_CONFIG_TYPE;
  30123. ///@brief 产品定义
  30124. typedef struct tagDH_PRODUCTION_DEFNITION
  30125. {
  30126. DWORD dwSize;
  30127. int nVideoInChannel; // 视频输入通道数
  30128. int nVideoOutChannel; // 视频输出通道数
  30129. int nRemoteDecChannel; // 远程解码通道数
  30130. char szDevType[DH_DEV_TYPE_LEN]; // 设备类型
  30131. char szVendor[DH_MAX_NAME_LEN]; // OEM客户
  30132. int nOEMVersion; // OEM版本
  30133. int nMajorVerion; // 主版本号
  30134. int nMinorVersion; // 次版本号
  30135. int nRevision; // 修订版本
  30136. char szWebVerion[DH_MAX_NAME_LEN]; // Web版本
  30137. char szDefLanguage[DH_MAX_NAME_LEN]; // 默认语言
  30138. NET_TIME stuBuildDateTime; // 发布时间, 精确到秒
  30139. int nAudioInChannel; // 音频输入通道数
  30140. int nAudioOutChannel; // 音频输出通道数
  30141. BOOL bGeneralRecord; // 是否支持定时存储
  30142. BOOL bLocalStore; // 是否支持本地存储
  30143. BOOL bRemoteStore; // 是否支持网络存储
  30144. BOOL bLocalurgentStore; // 是否支持紧急存储到本地
  30145. BOOL bRealtimeCompress; // 是否支持实时压缩存储
  30146. DWORD dwVideoStandards; // 支持的视频制式列表, bit0-PAL, bit1-NTSC
  30147. int nDefVideoStandard; // 默认视频制式, 0-PAL, 1-NTSC
  30148. int nMaxExtraStream; // 最大辅码流路数
  30149. int nRemoteRecordChannel; // 远程录像通道数
  30150. int nRemoteSnapChannel; // 远程抓图通道数
  30151. int nRemoteVideoAnalyseChannel; // 远程视频分析通道数
  30152. int nRemoteTransmitChannel; // 远程实时流转发最大通道数
  30153. int nRemoteTransmitFileChannel; // 远程文件流竹筏通道通道数
  30154. int nStreamTransmitChannel; // 最大网络传输通道总数
  30155. int nStreamReadChannel; // 最大读文件流通道总数
  30156. int nMaxStreamSendBitrate; // 最大码流网络发送能力, kbps
  30157. int nMaxStreamRecvBitrate; // 最大码流网络接口能力, kbps
  30158. BOOL bCompressOldFile; // 是否压缩旧文件, 去除P帧, 保留I帧
  30159. BOOL bRaid; // 是否支持RAID
  30160. int nMaxPreRecordTime; // 最大预录时间, s
  30161. BOOL bPtzAlarm; // 是否支持云台报警
  30162. BOOL bPtz; // 是否支持云台
  30163. BOOL bATM; // 是否显示ATM相关功能
  30164. BOOL b3G; // 是否支持3G模块
  30165. BOOL bNumericKey; // 是否带数字键
  30166. BOOL bShiftKey; // 是否带Shift键
  30167. BOOL bCorrectKeyMap; // 数字字母映射表是否正确
  30168. BOOL bNewATM; // 新的二代ATM前面板
  30169. BOOL bDecoder; // 是否是解码器
  30170. DEV_DECODER_INFO stuDecoderInfo; // 解码器信息, bDecoder=true时有效
  30171. int nVideoOutputCompositeChannels; // 融合屏输出通道上限
  30172. BOOL bSupportedWPS; // 是否支持WPS功能
  30173. int nVGAVideoOutputChannels; // VGA视频输出通道数
  30174. int nTVVideoOutputChannels; // TV视频输出通道数
  30175. int nMaxRemoteInputChannels; // 最大远程通道数
  30176. int nMaxMatrixInputChannels; // 最大矩阵通道数
  30177. int nMaxRoadWays; // 智能交通最大车道数 1~6
  30178. int nMaxParkingSpaceScreen; // 和相机对接最多支持的区域屏个数 0~20
  30179. int nPtzHorizontalAngleMin; // 云台水平最小角度, [0-360]
  30180. int nPtzHorizontalAngleMax; // 云台水平最大角度, [0-360]
  30181. int nPtzVerticalAngleMin; // 云台垂直最小角度, [-90,90]
  30182. int nPtzVerticalAngleMax; // 云台垂直最大角度, [-90,90]
  30183. BOOL bPtzFunctionMenu; // 是否支持云台功能菜单
  30184. BOOL bLightingControl; // 是否支持灯光控制
  30185. DWORD dwLightingControlMode; // 手动灯光控制模式, 按位, 见NET_LIGHTING_CTRL_ON_OFF
  30186. int nNearLightNumber; // 近光灯组数量, 0表示不支持
  30187. int nFarLightNumber; // 远光灯组数量, 0表示不支持
  30188. BOOL bFocus; // 是否支持控制聚焦
  30189. BOOL bIris; // 是否支持控制光圈
  30190. char szPtzProtocolList[DH_COMMON_STRING_1024];// 云台支持的协议列表, 可以是多个, 每个用';'分隔
  30191. BOOL bRainBrushControl; // 是否支持雨刷控制
  30192. int nBrushNumber; // 雨刷数量, 为0时表示不支持
  30193. int nLowerMatrixInputChannels[DH_MAX_LOWER_MITRIX_NUM]; // 下位矩阵视频输入通道, 下标对应矩阵编号
  30194. int nLowerMatrixOutputChannels[DH_MAX_LOWER_MITRIX_NUM];// 下位矩阵视频输出通道, 下标对应矩阵编号
  30195. BOOL bSupportVideoAnalyse; // 是否支持智能分析
  30196. BOOL bSupportIntelliTracker; // 是否支持智能跟踪
  30197. DWORD nSupportBreaking; //设备支持的违章类型掩码(按位获取)
  30198. //0-闯红灯 1-压线 2-逆行 3-欠速 4-超速 5-有车占道 6-黄牌占道 7-违章行驶(左转、右转、调头)
  30199. //8-违章进入待行区 9-违章停车 10-交通拥堵 11-不按车道行驶 12-违章变道 13-压黄线 14-路肩行驶
  30200. //15-手动抓拍 16-违章滞留 17-斑马线行人优先 18-流量过大 19-流量过小 20-违章占道 21-违章倒车
  30201. //22-压停止线 23-闯黄灯 24-黄网格线停车 25-车位有车 26-车位无车 27-车位有车压线 28-受限车牌
  30202. //29-禁行 30-不系安全带 31-驾驶员抽烟
  30203. DWORD nSupportBreaking1; //0-驾驶员打电话 1-行人闯红灯 2-车辆拥堵禁入 3-未按规定依次交替通行
  30204. NET_PD_VIDEOANALYSE stuVideoAnalyse; //智能分析
  30205. BOOL bTalkTransfer; //是否支持转发对讲功能
  30206. BOOL bCameraAttribute; // 是否支持球机摄像头属性页面
  30207. BOOL bPTZFunctionViaApp; // 是否支持由应用主控的云台功能逻辑
  30208. BOOL bAudioProperties; // 喇叭是否支持语音播报
  30209. BOOL bIsCameraIDOsd; // 是否支持摄像机编号叠加
  30210. BOOL bIsPlaceOsd; // 是否支持地点信息叠加
  30211. unsigned int nMaxGeographyTitleLine; // 地理位置叠加最大支持行数
  30212. EM_AUDIO_CHANNEL_TYPE emAudioChannel; // 设备声道支持类型
  30213. char szVendorAbbr[DH_COMMON_STRING_32]; // 厂商缩写
  30214. char szTypeVersion[DH_COMMON_STRING_32]; // 软件发布类型
  30215. BOOL bIsVideoNexus;
  30216. EM_WLAN_SCAN_AND_CONFIG_TYPE emWlanScanAndConfig; // WIFI扫描及配置支持的版本类型
  30217. BOOL bSupportLensMasking; // IPC是否支持镜头调节到负角度,进行结构遮挡
  30218. } DH_PRODUCTION_DEFNITION;
  30219. // 手动灯光控制模式
  30220. #define NET_LIGHTING_CTRL_ON_OFF 0x01 // 直接开关模式
  30221. #define NET_LIGHTING_CTRL_ADJUST_BRIGHTNESS 0x02 // 手动调节亮度模式
  30222. #define NET_LIGHTING_CTRL_ZOOM_PRIO 0x04 // 倍率优先
  30223. // 矩阵子卡类型, 多种类型可以组合
  30224. #define DH_MATRIX_CARD_MAIN 0x10000000 // 主卡
  30225. #define DH_MATRIX_CARD_INPUT 0x00000001 // 输入卡
  30226. #define DH_MATRIX_CARD_OUTPUT 0x00000002 // 输出卡
  30227. #define DH_MATRIX_CARD_ENCODE 0x00000004 // 编码卡
  30228. #define DH_MATRIX_CARD_DECODE 0x00000008 // 解码卡
  30229. #define DH_MATRIX_CARD_CASCADE 0x00000010 // 级联卡
  30230. #define DH_MATRIX_CARD_INTELLIGENT 0x00000020 // 智能卡
  30231. #define DH_MATRIX_CARD_ALARM 0x00000040 // 报警卡
  30232. #define DH_MATRIX_CARD_RAID 0x00000080 // 硬Raid卡
  30233. #define DH_MATRIX_CARD_NET_DECODE 0x00000100 // 网络解码卡
  30234. ///@brief 矩阵子卡信息
  30235. typedef struct tagDH_MATRIX_CARD
  30236. {
  30237. DWORD dwSize;
  30238. BOOL bEnable; // 是否有效
  30239. DWORD dwCardType; // 子卡类型
  30240. char szInterface[DH_MATRIX_INTERFACE_LEN]; // 子卡接口类型, "CVBS", "VGA", "DVI", "BT656","BT1120", "Fiber","HD-SDI", "HDCVI","HDMI","Dual-Link","3G-SDI", "RJ45"...
  30241. char szAddress[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // 设备ip或域名, 无网络接口的子卡可以为空
  30242. int nPort; // 端口号, 无网络接口的子卡可以为0
  30243. int nDefinition; // 清晰度, 0=标清, 1=高清
  30244. int nVideoInChn; // 视频输入通道数
  30245. int nAudioInChn; // 音频输入通道数
  30246. int nVideoOutChn; // 视频输出通道数
  30247. int nAudioOutChn; // 音频输出通道数
  30248. int nVideoEncChn; // 视频编码通道数
  30249. int nAudioEncChn; // 音频编码通道数
  30250. int nVideoDecChn; // 视频解码通道数
  30251. int nAudioDecChn; // 音频解码通道数
  30252. int nStauts; // 状态: -1-未知, 0-正常, 1-无响应, 2-网络掉线, 3-冲突, 4-正在升级, 5-链路状态异常, 6-子板背板未插好, 7-程序版本出错
  30253. int nCommPorts; // 串口数
  30254. int nVideoInChnMin; // 视频输入通道号最小值
  30255. int nVideoInChnMax; // 视频输入通道号最大值
  30256. int nAudioInChnMin; // 音频输入通道号最小值
  30257. int nAudioInChnMax; // 音频输入通道号最大值
  30258. int nVideoOutChnMin; // 视频输出通道号最小值
  30259. int nVideoOutChnMax; // 视频输出通道号最大值
  30260. int nAudioOutChnMin; // 音频输出通道号最小值
  30261. int nAudioOutChnMax; // 音频输出通道号最大值
  30262. int nVideoEncChnMin; // 视频编码通道号最小值
  30263. int nVideoEncChnMax; // 视频编码通道号最大值
  30264. int nAudioEncChnMin; // 音频编码通道号最小值
  30265. int nAudioEncChnMax; // 音频编码通道号最大值
  30266. int nVideoDecChnMin; // 视频解码通道号最小值
  30267. int nVideoDecChnMax; // 视频解码通道号最大值
  30268. int nAudioDecChnMin; // 音频解码通道号最小值
  30269. int nAudioDecChnMax; // 音频解码通道号最大值
  30270. int nCascadeChannels; // 级联通道数
  30271. int nCascadeChannelBitrate; // 级联通道带宽, 单位Mbps
  30272. int nAlarmInChnCount; // 报警输入通道数
  30273. int nAlarmInChnMin; // 报警输入通道号最小值
  30274. int nAlarmInChnMax; // 报警输入通道号最大值
  30275. int nAlarmOutChnCount; // 报警输出通道数
  30276. int nAlarmOutChnMin; // 报警输入通道号最小值
  30277. int nAlarmOutChnMax; // 报警输入通道号最大值
  30278. int nVideoAnalyseChnCount; // 智能分析通道数
  30279. int nVideoAnalyseChnMin; // 智能分析通道号最小值
  30280. int nVideoAnalyseChnMax; // 智能分析通道号最大值
  30281. int nCommPortMin; // 串口号最小值
  30282. int nCommPortMax; // 串口号最大值
  30283. char szVersion[DH_COMMON_STRING_32]; // 版本信息
  30284. NET_TIME stuBuildTime; // 编译时间
  30285. char szBIOSVersion[DH_COMMON_STRING_64]; // BIOS版本号
  30286. char szMAC[DH_MACADDR_LEN]; // MAC地址
  30287. } DH_MATRIX_CARD;
  30288. ///@brief 矩阵子卡列表
  30289. typedef struct tagDH_MATRIX_CARD_LIST
  30290. {
  30291. DWORD dwSize;
  30292. int nCount; // 子卡数量
  30293. DH_MATRIX_CARD stuCards[DH_MATRIX_MAX_CARDS]; // 子卡列表
  30294. } DH_MATRIX_CARD_LIST;
  30295. ///@brief 视频输出窗口
  30296. typedef struct tagDH_VIDEO_OUT_WINDOW
  30297. {
  30298. DWORD dwSize;
  30299. int nBackboardID; // 背板号
  30300. int nScreenID; // 屏幕号
  30301. int nWindowID; // 窗口号
  30302. } DH_VIDEO_OUT_WINDOW;
  30303. ///@brief 设置备份源信息,输入参数
  30304. typedef struct tagNET_IN_SETBACKUP_SOURCES_INFO
  30305. {
  30306. DWORD dwSize;
  30307. int nSetSourcesNum; // 设置源信息个数
  30308. DH_SPLIT_SOURCE * pSource; // 源信息指针(内存由用户申请释放)
  30309. } NET_IN_SETBACKUP_SOURCES_INFO;
  30310. ///@brief 设置备份源信息,输出参数
  30311. typedef struct tagNET_OUT_SETBACKUP_SOURCES_INFO
  30312. {
  30313. DWORD dwSize;
  30314. } NET_OUT_SETBACKUP_SOURCES_INFO;
  30315. ///@brief CLIENT_GetISCSITargets接口输入参数
  30316. typedef struct tagDH_IN_ISCSI_TARGETS
  30317. {
  30318. DWORD dwSize;
  30319. const char* pszAddress; // 服务器地址
  30320. int nPort; // 端口
  30321. const char* pszUser; // 用户名
  30322. const char* pszPwd; // 密码
  30323. } DH_IN_ISCSI_TARGETS;
  30324. ///@brief ISCSI Target信息
  30325. typedef struct tagDH_ISCSI_TARGET
  30326. {
  30327. DWORD dwSize;
  30328. char szName[DH_MAX_ISCSI_NAME_LEN]; // 名称
  30329. char szAddress[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // 服务器地址
  30330. char szUser[DH_NEW_USER_NAME_LENGTH]; // 用户名
  30331. int nPort; // 端口
  30332. UINT nStatus; // 状态, 0-未知, 1-已连接, 2-未连接, 3-连接失败, 4-认证失败, 5-连接超时, 6-不存在
  30333. } DH_ISCSI_TARGET;
  30334. ///@brief CLIENT_GetISCSITargets接口输出参数
  30335. typedef struct tagDH_OUT_ISCSI_TARGETS
  30336. {
  30337. DWORD dwSize;
  30338. DH_ISCSI_TARGET* pstuTargets; // iscsi数组,由用户申请内存,大小为sizeof(DH_ISCSI_TARGET)*nMaxCount
  30339. int nMaxCount; // iscsi数组大小
  30340. int nRetCount; // 获取到的iscsi信息数
  30341. } DH_OUT_ISCSI_TARGETS;
  30342. ///@brief 位图精度
  30343. typedef enum tagDH_BITMAP_ACCURACY
  30344. {
  30345. BA_DAY , //天
  30346. BA_HOUR , //小时
  30347. BA_5MIN , //5分钟
  30348. }DH_BITMAP_ACCURACY;
  30349. #define DH_MAX_BITMAPS 256 // 位图字节数,DH_MAX_BITMAPS*8位
  30350. #define DH_MAX_CHN_NUM 256 // 最大通道数
  30351. ///@brief CLIENT_GetBitmap接口输入参数
  30352. typedef struct tagDH_IN_BITMAP
  30353. {
  30354. DWORD dwSize;
  30355. NET_TIME stuStartTime; // 开始时间, 精确到秒
  30356. NET_TIME stuEndTime; // 结束时间, 精确到秒
  30357. int nChnList[DH_MAX_CHN_NUM]; // [1, …, 10] 通道号列表,-1表示全部通道,0表示列表结束
  30358. DH_BITMAP_ACCURACY emAccuracy; // 位图精度
  30359. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  30360. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  30361. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  30362. }DH_IN_BITMAP;
  30363. ///@brief bitmap
  30364. typedef struct tagDH_BITMAP_INFO
  30365. {
  30366. DWORD dwSize;
  30367. int nChnID; //通道号,通道号位0,表示列表结束
  30368. BYTE bBitmap[DH_MAX_BITMAPS]; //位图(每一比特位表示一个查询刻度,由低位向高位填充)
  30369. //支持DH_MAX_BITMAPS * 8个刻度
  30370. int nBitNum; //获取的位图位数
  30371. }DH_BITMAP_INFO;
  30372. ///@brief CLIENT_GetBitmap接口输出参数
  30373. typedef struct tagDH_OUT_BITMAP
  30374. {
  30375. DWORD dwSize;
  30376. DH_BITMAP_INFO *pstBitmapInfos; // 由用户申请内存,大小为sizeof(DH_BITMAP_INFO)*nMaxBitmapInfo
  30377. int nGetBitmapInfo;
  30378. int nMaxBitmapInfo;
  30379. }DH_OUT_BITMAP;
  30380. ///@brief 存储设备名称
  30381. typedef struct tagDH_STORAGE_DEVICE_NAME
  30382. {
  30383. DWORD dwSize;
  30384. char szName[DH_STORAGE_NAME_LEN];
  30385. } DH_STORAGE_DEVICE_NAME;
  30386. // RAID状态
  30387. #define DH_RAID_STATE_ACTIVE 0x00000001
  30388. #define DH_RAID_STATE_INACTIVE 0x00000002
  30389. #define DH_RAID_STATE_CLEAN 0x00000004
  30390. #define DH_RAID_STATE_FAILED 0x00000008
  30391. #define DH_RAID_STATE_DEGRADED 0x00000010
  30392. #define DH_RAID_STATE_RECOVERING 0x00000020
  30393. #define DH_RAID_STATE_RESYNCING 0x00000040
  30394. #define DH_RAID_STATE_RESHAPING 0x00000080
  30395. #define DH_RAID_STATE_CHECKING 0x00000100
  30396. #define DH_RAID_STATE_NOTSTARTED 0x00000200
  30397. ///@brief RAID成员信息
  30398. typedef struct tagNET_RAID_MEMBER_INFO
  30399. {
  30400. DWORD dwSize;
  30401. DWORD dwID; // 磁盘号, 可用于描述磁盘在磁柜的槽位
  30402. BOOL bSpare; // 是否局部热备, true-局部热备, false-RAID子盘
  30403. } NET_RAID_MEMBER_INFO;
  30404. ///@brief RAID信息
  30405. typedef struct tagDH_STORAGE_RAID
  30406. {
  30407. DWORD dwSize;
  30408. int nLevel; // 等级
  30409. int nState; // RAID状态组合, 如 DH_RAID_STATE_ACTIVE | DH_RAID_STATE_DEGRADED
  30410. int nMemberNum; // 成员数量
  30411. char szMembers[DH_MAX_MEMBER_PER_RAID][DH_STORAGE_NAME_LEN]; // RAID成员
  30412. float fRecoverPercent; // 同步百分比, 0~100, RAID状态中有"Recovering"或"Resyncing"时有效
  30413. float fRecoverMBps; // 同步速度, 单位MBps, RAID状态中有"Recovering"或"Resyncing"时有效
  30414. float fRecoverTimeRemain; // 同步剩余时间, 单位分钟, RAID状态中有"Recovering"或"Resyncing"时有效
  30415. NET_RAID_MEMBER_INFO stuMemberInfos[DH_MAX_MEMBER_PER_RAID]; // RAID成员信息
  30416. int nRaidDevices; // RAID设备个数
  30417. int nTotalDevices; // RAID设备总数
  30418. int nActiveDevices; // 活动设备个数
  30419. int nWorkingDevices; // 工作设备个数
  30420. int nFailedDevices; // 失败设备个数
  30421. int nSpareDevices; // 热备设备个数
  30422. char szAliasName[DH_COMMON_STRING_24]; // RAID别名,UTF-8编码
  30423. } DH_STORAGE_RAID;
  30424. ///@brief 存储分区信息
  30425. typedef struct tagDH_STORAGE_PARTITION
  30426. {
  30427. DWORD dwSize;
  30428. char szName[DH_STORAGE_NAME_LEN]; // 名称
  30429. INT64 nTotalSpace; // 总空间, byte
  30430. INT64 nFreeSpace; // 剩余空间, byte
  30431. char szMountOn[DH_STORAGE_MOUNT_LEN]; // 挂载点
  30432. char szFileSystem[DH_STORAGE_FILE_SYSTEM_LEN]; // 文件系统
  30433. int nStatus; // 分区状态, 0-LV不可用, 1-LV可用
  30434. BOOL bIsSupportFs; // 设备是否支持当前文件系统, TRUE:支持, FALSE:不支持
  30435. } DH_STORAGE_PARTITION;
  30436. ///@brief 扩展柜信息
  30437. typedef struct tagDH_STORAGE_TANK
  30438. {
  30439. DWORD dwSize;
  30440. int nLevel; // 级别, 主机是第0级,其它下属级别类推
  30441. int nTankNo; // 同一级扩展柜内的扩展口编号, 从0开始
  30442. int nSlot; // 对应主柜上的板卡号, 从0开始编号
  30443. } DH_STORAGE_TANK;
  30444. // 存储设备状态
  30445. #define NET_STORAGE_DEV_OFFLINE 0 // 物理硬盘脱机状态
  30446. #define NET_STORAGE_DEV_RUNNING 1 // 物理硬盘运行状态
  30447. #define NET_STORAGE_DEV_ACTIVE 2 // RAID活动
  30448. #define NET_STORAGE_DEV_SYNC 3 // RAID同步
  30449. #define NET_STORAGE_DEV_SPARE 4 // RAID热备(局部)
  30450. #define NET_STORAGE_DEV_FAULTY 5 // RAID失效
  30451. #define NET_STORAGE_DEV_REBUILDING 6 // RAID重建
  30452. #define NET_STORAGE_DEV_REMOVED 7 // RAID移除
  30453. #define NET_STORAGE_DEV_WRITE_ERROR 8 // RAID写错误
  30454. #define NET_STORAGE_DEV_WANT_REPLACEMENT 9 // RAID需要被替换
  30455. #define NET_STORAGE_DEV_REPLACEMENT 10 // RAID是替代设备
  30456. #define NET_STORAGE_DEV_GLOBAL_SPARE 11 // 全局热备
  30457. #define NET_STORAGE_DEV_ERROR 12 // 错误, 部分分区可用
  30458. #define NET_STORAGE_DEV_RAIDSUB 13 // 该盘目前是单盘, 原先是块Raid子盘, 有可能在重启后自动加入Raid
  30459. #define NET_STORAGE_DEV_FATAL 14 // 严重错误,全部分区坏(DVR新增错误类型)
  30460. #define NET_STORAGE_DEV_SNAPSHOT_PARENT 15 // 快照母盘
  30461. #define NET_STORAGE_DEV_SNAPSHOT_CHILD 16 // 快照子盘
  30462. #define NET_STORAGE_DEV_VOLUMECLONE_PARENT 17 // 卷克隆母盘
  30463. #define NET_STORAGE_DEV_VOLUMECLONE_CHILD 18 // 卷克隆子盘
  30464. ///@brief 硬盘电源状态
  30465. typedef enum tagEM_STORAGE_DISK_POWERMODE
  30466. {
  30467. EM_STORAGE_DISK_POWERMODE_UNKNOWN, // UNKnown状态(不是以下状态中的值)
  30468. EM_STORAGE_DISK_POWERMODE_NONE, // 未知状态
  30469. EM_STORAGE_DISK_POWERMODE_ACTIVE, // 活动状态
  30470. EM_STORAGE_DISK_POWERMODE_STANDBY, // 休眠状态
  30471. EM_STORAGE_DISK_POWERMODE_IDLE, // 空闲状态
  30472. }EM_STORAGE_DISK_POWERMODE;
  30473. ///@brief 硬盘预检状态(EVS定制字段,配合磁盘预检功能使用)
  30474. typedef enum tagEM_STORAGE_DISK_PREDISKCHECK
  30475. {
  30476. EM_STORAGE_DISK_PREDISKCHECK_UNKNOWN, // UnKnown状态
  30477. EM_STORAGE_DISK_PREDISKCHECK_GOOD, // 硬盘读速度到120以上,smart信息里有少量的错误,其他无任何错误.
  30478. EM_STORAGE_DISK_PREDISKCHECK_WARN, // cmd信息里有少量错误记录,smart信息有错误记录
  30479. EM_STORAGE_DISK_PREDISKCHECK_ERROR, // cmd信息有错误记录,smart信息由错误记录.坏扇区有坏扇区记录
  30480. EM_STORAGE_DISK_PREDISKCHECK_WILLFAIL, // 硬盘速度比较低64M以下.cmd信息有错误记录,smart信息由错误记录.坏扇区有坏扇区记录
  30481. EM_STORAGE_DISK_PREDISKCHECK_FAIL, // 硬盘返回错误
  30482. EM_STORAGE_DISK_PREDISKCHECK_NONE, // 未知状态
  30483. EM_STORAGE_DISK_PREDISKCHECK_BECHECK, // 正在查询中状态
  30484. EM_STORAGE_DISK_PREDISKCHECK_CHECKFAIL, // 查询失败状态
  30485. }EM_STORAGE_DISK_PREDISKCHECK;
  30486. ///@brief 存储设备信息
  30487. typedef struct tagDH_STORAGE_DEVICE
  30488. {
  30489. DWORD dwSize;
  30490. char szName[DH_STORAGE_NAME_LEN]; // 名称
  30491. INT64 nTotalSpace; // 总空间, byte
  30492. INT64 nFreeSpace; // 剩余空间, byte
  30493. BYTE byMedia; // 介质, 0-DISK, 1-CDROM, 2-FLASH
  30494. BYTE byBUS; // 总线, 0-ATA, 1-SATA, 2-USB, 3-SDIO, 4-SCSI
  30495. BYTE byVolume; // 卷类型, 0-物理卷, 1-Raid卷, 2-VG虚拟卷, 3-ISCSI, 4-独立物理卷, 5-全局热备卷, 6-NAS卷(包括FTP, SAMBA, NFS)
  30496. BYTE byState; // 物理硬盘状态, 取值为 NET_STORAGE_DEV_OFFLINE 和 NET_STORAGE_DEV_RUNNING 等
  30497. int nPhysicNo; // 同类设备存储接口的物理编号
  30498. int nLogicNo; // 同类设备存储接口的逻辑编号
  30499. char szParent[DH_STORAGE_NAME_LEN]; // 上级存储组名称
  30500. char szModule[DH_STORAGE_NAME_LEN]; // 设备模块
  30501. char szSerial[DH_SERIALNO_LEN]; // 设备序列号
  30502. char szFirmware[DH_VERSION_LEN]; // 固件版本
  30503. int nPartitionNum; // 分区数
  30504. DH_STORAGE_PARTITION stuPartitions[DH_MAX_STORAGE_PARTITION_NUM]; // 分区信息
  30505. DH_STORAGE_RAID stuRaid; // RAID信息, 只对RAID有效(byVolume == 1)
  30506. DH_ISCSI_TARGET stuISCSI; // ISCSI信息, 只对ISCSI盘有效(byVolume == 3)
  30507. BOOL abTank; // 扩展柜使能
  30508. DH_STORAGE_TANK stuTank; // 硬盘所在扩展柜信息, abTank为TRUE时有效
  30509. EM_STORAGE_DISK_POWERMODE emPowerMode; // 硬盘电源状态
  30510. EM_STORAGE_DISK_PREDISKCHECK emPreDiskCheck; // 硬盘预检状态(EVS定制字段,配合磁盘预检功能使用)
  30511. int nOpState; // 设备操作状态: 0: 正常工作状态, 1: 休眠中, 2: 等待格式化, 3: 格式化进行中,
  30512. // 4: 等待碎片整理, 5: 碎片整理中, 6: 等待创建RAID 7: 创建RAID中, 8: 等待删除RAID, 9: 删除RAID中,
  30513. // 10: 等待文件系统修复, 11: 文件系统修复中, 12: 等待预检, 13: 正在预检
  30514. } DH_STORAGE_DEVICE;
  30515. ///@brief 分割窗口OSD信息
  30516. typedef struct tagNET_SPLIT_OSD
  30517. {
  30518. DWORD dwSize;
  30519. BOOL bEnable; // 使能
  30520. DH_COLOR_RGBA stuFrontColor; // 前景颜色
  30521. DH_COLOR_RGBA stuBackColor; // 背景颜色
  30522. DH_RECT stuFrontRect; // 前景区域
  30523. DH_RECT stuBackRect; // 背景区域
  30524. BOOL bRoll; // 是否滚动显示, 只对文本有效
  30525. BYTE byRollMode; // 滚动模式, 只对文本有效, 0-从左往右, 1-从右往左, 2-从上往下滚动, 3-从下往上滚动
  30526. BYTE byRoolSpeed; // 滚动速率, 只对文本有效, 0~4, 数值越大滚动越快
  30527. BYTE byFontSize; // 字体大小, 只对文本有效
  30528. BYTE byTextAlign; // 对齐方式, 0-靠左, 1-居中, 2-靠右
  30529. BYTE byType; // OSD类型, 0-文本, 1-图标, 2-时间, 3-星期, 4-日期, 5-日期+星期, 6-日期+时间, 7-星期+时间, 8-日期+星期+时间
  30530. BYTE Reserved[3]; // 保留字节
  30531. char szContent[MAX_PATH]; // OSD内容(已废弃,请使用szContentEx)
  30532. // 若类型为图标, 内容为图标名称
  30533. // 若类型为Time,内容为”Date”(日期),”Week”(星期),”Time”(时间),”\n”(换行)的自由组合。
  30534. // 例如:不同行显示,需要将此字段填为"Date\nTime",在屏幕上就会显示
  30535. // 2018年4月23日
  30536. // 16:49:15
  30537. // 同行显示,需要将此字段填为"DateTime",在屏幕上就会显示
  30538. // 2018年4月23日16:49:15
  30539. float fPitch; // 字符间距, 0.0 ~ 5.0
  30540. char szFontType[DH_COMMON_STRING_64]; // 字体类型
  30541. char szPattern[8]; // 文本显示模式 Row:横排(默认) Column:竖排
  30542. char szContentEx[1024]; // OSD内容
  30543. } NET_SPLIT_OSD;
  30544. ///@brief CLIENT_GetSplitOSD 接口输入参数(获取解码窗口输出OSD信息)
  30545. typedef struct tagDH_IN_SPLIT_GET_OSD
  30546. {
  30547. DWORD dwSize;
  30548. int nChannel; // 通道号
  30549. int nWindow; // 窗口号
  30550. } DH_IN_SPLIT_GET_OSD;
  30551. ///@brief CLIENT_GetSplitOSD 接口输出参数(获取解码窗口输出OSD信息)
  30552. typedef struct tagDH_OUT_SPLIT_GET_OSD
  30553. {
  30554. DWORD dwSize;
  30555. int nOSDNum; // OSD数量
  30556. NET_SPLIT_OSD stuOSD[DH_VIDEO_CUSTOM_OSD_NUM]; // OSD信息
  30557. } DH_OUT_SPLIT_GET_OSD;
  30558. ///@brief CLIENT_SetSplitOSD 接口输入参数(设置解码窗口输出OSD信息)
  30559. typedef struct tagDH_IN_SPLIT_SET_OSD
  30560. {
  30561. DWORD dwSize;
  30562. int nChannel; // 通道号
  30563. int nWindow; // 窗口号
  30564. int nOSDNum; // OSD数量
  30565. NET_SPLIT_OSD stuOSD[DH_VIDEO_CUSTOM_OSD_NUM]; // OSD信息
  30566. } DH_IN_SPLIT_SET_OSD;
  30567. ///@brief CLIENT_SetSplitOSD 接口输出参数(设置解码窗口输出OSD信息)
  30568. typedef struct tagDH_OUT_SPLIT_SET_OSD
  30569. {
  30570. DWORD dwSize;
  30571. } DH_OUT_SPLIT_SET_OSD;
  30572. ///@brief CLIENT_GetSplitOSDEx 接口输入参数(获取解码窗口输出OSD信息)
  30573. typedef struct tagNET_IN_SPLIT_GET_OSD_EX
  30574. {
  30575. DWORD dwSize;
  30576. int nChannel; // 通道号
  30577. int nWindow; // 窗口号
  30578. } NET_IN_SPLIT_GET_OSD_EX;
  30579. ///@brief CLIENT_GetSplitOSDEx 接口输出参数(获取解码窗口输出OSD信息)
  30580. typedef struct tagNET_OUT_SPLIT_GET_OSD_EX
  30581. {
  30582. DWORD dwSize;
  30583. int nOSDNum; // OSD数量
  30584. NET_SPLIT_OSD stuOSD[DH_VIDEO_CUSTOM_OSD_NUM_EX]; // OSD信息
  30585. } NET_OUT_SPLIT_GET_OSD_EX;
  30586. ///@brief CLIENT_SetSplitOSDEx接口输入参数(设置解码窗口输出OSD信息)
  30587. typedef struct tagNET_IN_SPLIT_SET_OSD_EX
  30588. {
  30589. DWORD dwSize;
  30590. int nChannel; // 通道号
  30591. int nWindow; // 窗口号
  30592. int nOSDNum; // OSD数量
  30593. NET_SPLIT_OSD stuOSD[DH_VIDEO_CUSTOM_OSD_NUM_EX]; // OSD信息
  30594. }NET_IN_SPLIT_SET_OSD_EX;
  30595. ///@brief CLIENT_SetSplitOSDEx 接口输出参数(设置解码窗口输出OSD信息)
  30596. typedef struct tagNET_OUT_SPLIT_SET_OSD_EX
  30597. {
  30598. DWORD dwSize;
  30599. } NET_OUT_SPLIT_SET_OSD_EX;
  30600. ///@brief 视频输出控制方式
  30601. typedef enum
  30602. {
  30603. EM_VIDEO_OUT_CTRL_CHANNEL, // 逻辑通道号控制方式, 对物理屏和拼接屏都有效
  30604. EM_VIDEO_OUT_CTRL_COMPOSITE_ID, // 拼接屏ID控制方式, 只对拼接屏有效
  30605. } EM_VIDEO_OUT_CTRL_TYPE;
  30606. ///@brief CLIENT_SetSplitSourceEx 接口的输入参数
  30607. typedef struct tagNET_IN_SET_SPLIT_SOURCE
  30608. {
  30609. DWORD dwSize;
  30610. EM_VIDEO_OUT_CTRL_TYPE emCtrlType; // 视频输出控制方式
  30611. int nChannel; // 视频输出逻辑通道号, emCtrlType为EM_VIDEO_OUT_CTRL_CHANNEL时有效
  30612. const char* pszCompositeID; // 拼接屏ID, emCtrlType为EM_VIDEO_OUT_CTRL_COMPOSITE_ID时有效
  30613. int nWindow; // 窗口号, -1表示当前分割模式下的所有窗口
  30614. DH_SPLIT_SOURCE* pstuSources; // 视频源信息, 当nWindow=-1时, 视频源是个数组, 且数量与窗口数一致
  30615. // 由用户申请内存,大小为sizeof(DH_SPLIT_SOURCE)*nSourceCount
  30616. int nSourceCount; // 视频源数量
  30617. } NET_IN_SET_SPLIT_SOURCE;
  30618. ///@brief 设置视频源的返回结果
  30619. typedef struct tagNET_SET_SPLIT_SOURCE_RESULT
  30620. {
  30621. DWORD dwSize;
  30622. int nPushPort; // 推流模式的设备端监听端口号
  30623. } NET_SET_SPLIT_SOURCE_RESULT;
  30624. ///@brief CLIENT_SetSplitSourceEx 接口的输出参数
  30625. typedef struct tagNET_OUT_SET_SPLIT_SOURCE
  30626. {
  30627. DWORD dwSize;
  30628. NET_SET_SPLIT_SOURCE_RESULT* pstuResults; // 设置成功后的返回值, 对应NET_IN_SET_SPLIT_SOURCE中的窗口数组, 用户分配内存,大小为sizeof(NET_SET_SPLIT_SOURCE_RESULT)*nMaxResultCount, 如果不需要可以为NULL
  30629. int nMaxResultCount; // pstuResults数组的大小
  30630. int nRetCount; // 返回的数量
  30631. } NET_OUT_SET_SPLIT_SOURCE;
  30632. ///@brief CLIENT_SplitExchangeSource 接口输入参数
  30633. typedef struct tagNET_IN_SPLIT_EXCHANGE_SOURCE
  30634. {
  30635. DWORD dwSize;
  30636. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  30637. const char* pszCompositeID; // 融合屏ID
  30638. int nWindowID1; // 窗口号1
  30639. int nWindowID2; // 窗口号2
  30640. }NET_IN_SPLIT_EXCHANGE_SOURCE;
  30641. ///@brief CLIENT_SplitExchangeSource 接口输出参数
  30642. typedef struct tagNET_OUT_SPLIT_EXCHANGE_SOURCE
  30643. {
  30644. DWORD dwSize;
  30645. }NET_OUT_SPLIT_EXCHANGE_SOURCE;
  30646. ///@brief 卷类型枚举
  30647. typedef enum tagNET_VOLUME_TYPE
  30648. {
  30649. VOLUME_TYPE_ALL = 0 , //所有卷
  30650. VOLUME_TYPE_PHYSICAL , //物理卷
  30651. VOLUME_TYPE_RAID , //Raid卷
  30652. VOLUME_TYPE_VOLUME_GROUP , //VG虚拟卷组
  30653. VOLUME_TYPE_ISCSI , //iSCSI卷
  30654. VOLUME_TYPE_INVIDUAL_PHY , //独立物理卷(这个物理盘,没有加入到, RAID,虚拟卷组等等组中)
  30655. VOLUME_TYPE_GLOBAL_SPARE , //全局热备卷
  30656. VOLUME_TYPE_NAS , //NAS盘(包括FTP, SAMBA, NFS)
  30657. VOLUME_TYPE_INVIDUAL_RAID, //独立RAID卷(指没有加入到,虚拟卷组等组中)
  30658. VOLUME_TYPE_MAX ,
  30659. }NET_VOLUME_TYPE;
  30660. #define MAX_DEVICE_VOLUME_NUMS 128 //卷类型的最大上限
  30661. ///@brief CLIENT_QueryDevInfo , NET_QUERY_DEV_STORAGE_NAMES类型接口输入参数
  30662. typedef struct tagNET_IN_STORAGE_DEV_NAMES
  30663. {
  30664. DWORD dwSize;
  30665. NET_VOLUME_TYPE emVolumeType; //要获取的卷类型
  30666. } NET_IN_STORAGE_DEV_NAMES;
  30667. ///@brief CLIENT_QueryDevInfo , NET_QUERY_DEV_STORAGE_NAMES类型接口输出参数
  30668. typedef struct tagNET_OUT_STORAGE_DEV_NAMES
  30669. {
  30670. DWORD dwSize;
  30671. int nDevNamesNum; //获取到设备的存储模块名数量
  30672. char szStoregeDevNames[MAX_DEVICE_VOLUME_NUMS][DH_STORAGE_NAME_LEN]; //设备名列表
  30673. }NET_OUT_STORAGE_DEV_NAMES;
  30674. ///@brief CLIENT_QueryDevInfo , NET_QUERY_DEV_STORAGE_INFOS接口输入参数
  30675. typedef struct tagNET_IN_STORAGE_DEV_INFOS
  30676. {
  30677. DWORD dwSize;
  30678. NET_VOLUME_TYPE emVolumeType; //要获取的卷类型
  30679. } NET_IN_STORAGE_DEV_INFOS;
  30680. ///@brief CLIENT_QueryDevInfo , NET_QUERY_DEV_STORAGE_INFOS接口输出参数
  30681. typedef struct tagNET_OUT_STORAGE_DEV_INFOS
  30682. {
  30683. DWORD dwSize;
  30684. int nDevInfosNum; //获取到设备的存储模块信息列表
  30685. DH_STORAGE_DEVICE stuStoregeDevInfos[MAX_DEVICE_VOLUME_NUMS]; //设备信息列表,DH_STORAGE_DEVICE的dwsize需赋值
  30686. } NET_OUT_STORAGE_DEV_INFOS;
  30687. ///@brief 获取车辆信息的类型
  30688. typedef enum tagNET_RECENCY_CAR_INFO
  30689. {
  30690. RECENCY_CAR_INFO_UNKNOW = 0 ,
  30691. RECENCY_CAR_INFOO_NEWEST , //最新
  30692. RECENCY_CAR_INFO_ODLEST , //最旧
  30693. RECENCY_CAR_INFO_MAX ,
  30694. }NET_RECENCY_CAR_INFO;
  30695. ///@brief CLIENT_QueryDevInfo , NET_QUERY_RECENCY_JNNCTION_CAR_INFO接口输入参数
  30696. typedef struct tagNET_IN_GET_RECENCY_JUNCTION_CAR_INFO
  30697. {
  30698. DWORD dwSize;
  30699. int nChannel; //抓拍通道号
  30700. NET_RECENCY_CAR_INFO emRecencyType; //获取车辆信息的类型,最新的还是最旧的
  30701. DWORD nIndex; //第几个车辆信息,从1开始,如果为0也表示第1个
  30702. }NET_IN_GET_RECENCY_JUNCTION_CAR_INFO;
  30703. ///@brief CLIENT_QueryDevInfo , NET_QUERY_RECENCY_JNNCTION_CAR_INFO接口输出参数
  30704. typedef struct tagNET_OUT_GET_RECENCY_JUNCTION_CAR_INFO
  30705. {
  30706. DWORD dwSize;
  30707. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  30708. }NET_OUT_GET_RECENCY_JUNCTION_CAR_INFO;
  30709. #define NET_MAX_FISHEYE_WINDOW_NUM 8 // 最大鱼眼窗口数
  30710. ///@brief 窗口位置信息
  30711. typedef struct tagNET_FISHEYE_WINDOW_INFO
  30712. {
  30713. DWORD dwSize;
  30714. DWORD dwWindowID; // 窗口ID
  30715. int nFocusX; // EPtz(电子云台)的焦点横坐标
  30716. int nFocusY; // EPtz (电子云台)的焦点纵坐标
  30717. int nHorizontalAngle; // EPtz的水平角度
  30718. int nVerticalAngle; // EPtz的垂直角度
  30719. }NET_FISHEYE_WINDOW_INFO;
  30720. ///@brief 对应CLIENT_QueryDevInfo接口,NET_QUERY_DEV_FISHEYE_WININFO查询鱼眼窗口信息输入参数
  30721. typedef struct tagNET_IN_FISHEYE_WININFO
  30722. {
  30723. DWORD dwSize;
  30724. int nChannelId; // 通道号
  30725. int nWindowNum; // 待查询的窗口数
  30726. int nWindows[NET_MAX_FISHEYE_WINDOW_NUM]; // 窗口id,不可重复
  30727. }NET_IN_FISHEYE_WININFO;
  30728. ///@brief 对应CLIENT_QueryDevInfo接口,NET_QUERY_DEV_FISHEYE_WININFO查询鱼眼窗口信息输出参数
  30729. typedef struct tagNET_OUT_FISHEYE_WININFO
  30730. {
  30731. DWORD dwSize;
  30732. int nWindowNum; //的窗口数
  30733. NET_FISHEYE_WINDOW_INFO stuWindows[NET_MAX_FISHEYE_WINDOW_NUM]; // 窗口具体信息
  30734. }NET_OUT_FISHEYE_WININFO;
  30735. ///@brief CLIENT_QueryDevInfo , NET_QUERY_LANES_STATE接口输入参数
  30736. typedef struct tagNET_IN_GET_LANES_STATE
  30737. {
  30738. DWORD dwSize;
  30739. int nLaneNumber; //-1代表查询所有车道,>=0时表示查询指定车道
  30740. }NET_IN_GET_LANES_STATE;
  30741. ///@brief 信号灯指示状态
  30742. typedef enum tagNET_TRAFFIC_LIGHT_STATUS
  30743. {
  30744. LIGHT_STATUS_UNKNOWN = 0 , //未知
  30745. LIGHT_STATUS_RED , //红灯
  30746. LIGHT_STATUS_GREEN , //绿灯
  30747. LIGHT_STATUS_YELLOW , //黄灯
  30748. }NET_TRAFFIC_LIGHT_STATUS;
  30749. ///@brief 信号灯指示信息
  30750. typedef struct tatNET_TRAFFIC_LIGHT_INFO
  30751. {
  30752. DWORD dwSize;
  30753. NET_TRAFFIC_LIGHT_STATUS emStraightLightInfo; //直行信号灯状态
  30754. NET_TRAFFIC_LIGHT_STATUS emLeftLightInfo; //左转信号灯状态
  30755. NET_TRAFFIC_LIGHT_STATUS emRightLightInfo; //右转信号灯状态
  30756. NET_TRAFFIC_LIGHT_STATUS emUTurnLightInfo; //调头信号灯状态
  30757. }NET_TRAFFIC_LIGHT_INFO;
  30758. ///@brief 车道方向
  30759. typedef enum tagNET_TRAFFIC_DIRECTION
  30760. {
  30761. DIRECTION_UNKNOW = 0 , //未知
  30762. DIRECTION_STRAIGHT , //直行
  30763. DIRECTION_LEFT , //左转
  30764. DIRECTION_RIGHT , //右转
  30765. DIRECTION_UTURN , //调头
  30766. }NET_TRAFFIC_DIRECTION;
  30767. ///@brief 车道信息
  30768. typedef struct tagNET_TRAFFIC_LANE_INFO
  30769. {
  30770. DWORD dwSize;
  30771. UINT nLaneNumber; //车道号,0开始
  30772. UINT nSupportDirectionNum; //车道可以行使的方向数
  30773. NET_TRAFFIC_DIRECTION emTrafficDirections[MAX_LANE_DIRECTION_NUM]; //车道方向,表示此车道可以行使的所有方向
  30774. NET_TRAFFIC_JAM_STATUS emJamState; //道路拥挤状况
  30775. /*流量信息*/
  30776. UINT nLargeVehicleNum; //大型车数量
  30777. UINT nMediumVehicleNum; //中型车数量
  30778. UINT nSmallVehicleNum; //小型车数量
  30779. UINT nMotoNum; //摩托车数量
  30780. }NET_TRAFFIC_LANE_INFO;
  30781. ///@brief CLIENT_QueryDevInfo , NET_QUERY_LANES_STATE接口输出参数
  30782. typedef struct tagNET_OUT_GET_LANES_STATE
  30783. {
  30784. DWORD dwSize;
  30785. int nGetLaneInfoNum; //获取到的车道信息数
  30786. NET_TRAFFIC_LANE_INFO stLaneInfos[MAX_LANE_INFO_NUM]; //获取到的车道信息
  30787. NET_TRAFFIC_LIGHT_INFO stLightInfo; //信号灯指示状态
  30788. }NET_OUT_GET_LANES_STATE;
  30789. ///@brief CLIENT_QueryDevInfo , NET_QUERY_SYSTEM_INFO 类型接口输入参数
  30790. typedef struct tagNET_IN_SYSTEM_INFO
  30791. {
  30792. DWORD dwSize;
  30793. } NET_IN_SYSTEM_INFO;
  30794. ///@brief CLIENT_QueryDevInfo , NET_QUERY_SYSTEM_INFO 类型接口输出参数
  30795. typedef struct tagNET_OUT_SYSTEM_INFO
  30796. {
  30797. DWORD dwSize;
  30798. BOOL bHasRTC; //是否有RTC芯片(记录系统时间用)默认TRUE,表示有RTC
  30799. int nRetMCUNum; // 返回的单片机个数
  30800. char szMCUVersion[MAX_MCU_NUM][DH_MAX_VERSION_LEN]; // 单片机软件版本号
  30801. }NET_OUT_SYSTEM_INFO;
  30802. ///@brief CLIENT_QueryDevInfo , NET_QUERY_REG_DEVICE_NET_INFO 类型接口输入参数
  30803. typedef struct tagNET_IN_REGDEV_NET_INFO
  30804. {
  30805. DWORD dwSize;
  30806. char szDevSerial[DH_DEV_SERIALNO_LEN]; // 主动注册时上报的设备序列号
  30807. }NET_IN_REGDEV_NET_INFO;
  30808. ///@brief 主动注册连接使用的网络类型
  30809. typedef enum tagNET_CELLUAR_NET_TYPE
  30810. {
  30811. EM_CELLUAR_NET_UNKNOW = -1 , //未知
  30812. EM_CELLUAR_NET_PRIVATE_3G_4G = 0 , //专有3G/4G网络,(如公安内网)
  30813. EM_CELLUAR_NET_COMMERCIAL_3G_4G = 1 , //商用的3G/4G网络,(如移动、电信等)
  30814. EM_CELLUAR_NET_MAX ,
  30815. }NET_CELLUAR_NET_TYPE;
  30816. ///@brief CLIENT_QueryDevInfo , NET_QUERY_REG_DEVICE_NET_INFO 类型接口输出参数
  30817. typedef struct tagNET_OUT_REGDEV_NET_INFO
  30818. {
  30819. DWORD dwSize;
  30820. NET_CELLUAR_NET_TYPE emCelluarNetType; //主动注册连接使用的网络类型
  30821. }NET_OUT_REGDEV_NET_INFO;
  30822. ///@brief 获取视频通道属性命令的子类型
  30823. typedef enum tagNET_VIDEO_CHANNEL_TYPE
  30824. {
  30825. NET_VIDEO_CHANNEL_TYPE_ALL, // 全部
  30826. NET_VIDEO_CHANNEL_TYPE_INPUT, // 输入
  30827. NET_VIDEO_CHANNEL_TYPE_OUTPUT, // 输出
  30828. } NET_VIDEO_CHANNEL_TYPE;
  30829. ///@brief CLIENT_QueryDevInfo , NET_QUERY_VIDEOCHANNELSINFO 命令输入参数
  30830. typedef struct tagNET_IN_GET_VIDEOCHANNELSINFO
  30831. {
  30832. DWORD dwSize;
  30833. NET_VIDEO_CHANNEL_TYPE emType; // 需要获取的通道类型
  30834. } NET_IN_GET_VIDEOCHANNELSINFO;
  30835. ///@brief 输入通道信息
  30836. typedef struct tagNET_VIDEOCHANNELS_INPUT
  30837. {
  30838. int nThermographyCount; // 热成像通道个数
  30839. int nThermography[64]; // 热成像通道的通道号
  30840. int nMultiPreviewCount; // 多画面预览通道个数
  30841. int nMultiPreview[4]; // 多画面预览通道号
  30842. int nPIPCount; // 画中画通道个数
  30843. int nPIP[4]; // 画中画通道号
  30844. int nCompressPlayCount; // 二次压缩回放通道个数
  30845. int nCompressPlay[4]; // 二次压缩回放通道号
  30846. int nSDCount; // 球机通道个数
  30847. int nSD[64]; // 球机通道号
  30848. int nPTZCount; // 支持云台程序的通道数量
  30849. short nPTZ[64]; // 支持云台程序的通道号
  30850. int nFuseRadarCount; // 支持融合雷达流,可见光叠加雷达流的通道数量
  30851. int nFuseRadar[64]; // 支持融合雷达流,可见光叠加雷达流的通道号
  30852. int nPureRadarCount; // 支持纯雷达流,无可见光的通道数量
  30853. int nPureRadar[64]; // 支持纯雷达流,无可见光的通道号
  30854. BOOL bIsPTZValid; // nPTZ是否有效
  30855. char reserved[4092];
  30856. } NET_VIDEOCHANNELS_INPUT;
  30857. ///@brief 输入通道扩展信息
  30858. typedef struct tagNET_VIDEOCHANNELS_INPUT_EX
  30859. {
  30860. int nSDCount; // 球机通道个数
  30861. unsigned short nSD[1024]; // 支持云台程序的通道数量(扩展)
  30862. int nPTZCount; // 支持云台程序的通道数量
  30863. unsigned short nPTZ[1024]; // 支持云台程序的通道号(扩展)
  30864. BOOL bIsPTZValid; // nPTZ是否有效
  30865. char reserved[1020]; // 预留字段
  30866. }NET_VIDEOCHANNELS_INPUT_EX;
  30867. ///@brief 输出通道信息
  30868. typedef struct tagNET_VIDEOCHANNELS_OUTPUT
  30869. {
  30870. int nVGACount; // VGA输出个数
  30871. int nVGA[128]; // VGA输出
  30872. int nTVCount; // TV输出个数
  30873. int nTV[128]; // TV输出
  30874. char reserved[512];
  30875. } NET_VIDEOCHANNELS_OUTPUT;
  30876. ///@brief CLIENT_QueryDevInfo , NET_QUERY_VIDEOCHANNELSINFO 命令输出参数
  30877. typedef struct tagNET_OUT_GET_VIDEOCHANNELSINFO
  30878. {
  30879. DWORD dwSize;
  30880. NET_VIDEOCHANNELS_INPUT stInputChannels; // 输入通道信息,获取类型为NET_VIDEO_CHANNEL_TYPE_ALL/INPUT时有效
  30881. NET_VIDEOCHANNELS_OUTPUT stOutputChannels; // 输出通道信息,获取类型为NET_VIDEO_CHANNEL_TYPE_ALL/OUTPUT时有效
  30882. NET_VIDEOCHANNELS_INPUT_EX stInputChannelsEx; // 输入通道扩展信息,获取类型为NET_VIDEO_CHANNEL_TYPE_ALL/INPUT时有效
  30883. } NET_OUT_GET_VIDEOCHANNELSINFO;
  30884. ///@brief CLIENT_QueryDevInfo , NET_QUERY_WORKGROUP_NAMES 命令输入参数
  30885. typedef struct tagNET_IN_WORKGROUP_NAMES
  30886. {
  30887. DWORD dwSize;
  30888. } NET_IN_WORKGROUP_NAMES;
  30889. // 工作目录组名最大长度
  30890. #define WORKGROUP_NAME_LEN 32
  30891. ///@brief CLIENT_QueryDevInfo , NET_QUERY_WORKGROUP_NAMES 命令输出参数
  30892. typedef struct tagNET_OUT_WORKGROUP_NAMES
  30893. {
  30894. DWORD dwSize;
  30895. int nCount; // 工作组个数
  30896. char szName[64][WORKGROUP_NAME_LEN]; // 每个工作组的名字
  30897. } NET_OUT_WORKGROUP_NAMES;
  30898. ///@brief CLIENT_QueryDevInfo , NET_QUERY_WORKGROUP_INFO 命令输入参数
  30899. typedef struct tagNET_IN_WORKGROUP_INFO
  30900. {
  30901. DWORD dwSize;
  30902. char szName[WORKGROUP_NAME_LEN]; // 需要获取信息的工作组
  30903. } NET_IN_WORKGROUP_INFO;
  30904. ///@brief CLIENT_QueryDevInfo , NET_QUERY_WORKGROUP_INFO 命令输出参数
  30905. typedef struct tagNET_OUT_WORKGROUP_INFO
  30906. {
  30907. DWORD dwSize;
  30908. int nState; // 状态:0 无意义,1 正常,2 损坏,3 错误
  30909. int nTotalSpace; // 总空间 单位:MB -1表示获取失败
  30910. int nFreeSpace; // 剩余空间 单位:MB -1表示获取失败
  30911. } NET_OUT_WORKGROUP_INFO;
  30912. ///@brief CLIENT_QueryDevInfo , NET_QUERY_WLAN_ACCESSPOINT 命令输入参数
  30913. typedef struct tagNET_IN_WLAN_ACCESSPOINT
  30914. {
  30915. DWORD dwSize;
  30916. char szSSID[DH_MAX_SSID_LEN]; // 需要获取信息的无线网络名称,为空时搜索所有网络
  30917. char szName[MAX_COMMON_STRING_32]; // 网卡名称, 为空时, 默认为eth2
  30918. } NET_IN_WLAN_ACCESSPOINT;
  30919. ///@brief 接入点信息
  30920. typedef struct tagNET_WLAN_ACCESSPOINT_INFO
  30921. {
  30922. char szSSID[DH_MAX_SSID_LEN]; // 无线网络名称
  30923. int nStrength; // 信号强度 范围0-100
  30924. int nAuthMode; // 认证模式0:OPEN;1:SHARED;2:WPA;3:WPA-PSK;4:WPA2;5:WPA2-PSK;
  30925. // 6:WPA-NONE(用在adhoc网络模式),
  30926. // 7-11是混合模式,选择其中任何一种都可以进行连接
  30927. // 7:WPA-PSK | WPA2-PSK; 8:WPA | WPA2; 9:WPA | WPA-PSK;
  30928. // 10:WPA2 | WPA2-PSK; 11:WPA | WPA-PSK |WPA2 |WPA2-PSK //12: UnKnown
  30929. int nEncrAlgr; // 0:NONE, 1:WEP, 2:TKIP, 3:AES(CCMP), 4:TKIP+AES( mix Mode), 5:UnKnown
  30930. char reserved[1016];
  30931. } NET_WLAN_ACCESSPOINT_INFO;
  30932. ///@brief CLIENT_QueryDevInfo , NET_QUERY_WLAN_ACCESSPOINT 命令输出参数
  30933. typedef struct tagNET_OUT_WLAN_ACCESSPOINT
  30934. {
  30935. DWORD dwSize;
  30936. int nCount; // 无线网络接入点个数
  30937. NET_WLAN_ACCESSPOINT_INFO stuInfo[128]; // 接入点信息
  30938. } NET_OUT_WLAN_ACCESSPOINT;
  30939. ///@brief CLIENT_QueryDevInfo , NET_QUERY_TRAFFICRADAR_VERSION 命令输入参数
  30940. typedef struct tagNET_IN_TRAFFICRADAR_VERSION
  30941. {
  30942. DWORD dwSize;
  30943. int nChannel; // 串口号
  30944. } NET_IN_TRAFFICRADAR_VERSION;
  30945. ///@brief CLIENT_QueryDevInfo , NET_QUERY_TRAFFICRADAR_VERSION 命令输出参数
  30946. typedef struct tagNET_OUT_TRAFFICRADAR_VERSION
  30947. {
  30948. DWORD dwSize;
  30949. char szVersion[DH_MAX_VERSION_LEN]; // 版本号
  30950. } NET_OUT_TRAFFICRADAR_VERSION;
  30951. typedef NET_OUT_GET_LANES_STATE NET_CB_LANES_STATE;
  30952. ///@brief 接口 CLIENT_AttachLanesState 回调函数
  30953. typedef void (CALLBACK *fNotifyLanesState)(LLONG lLanesStateHandle, NET_CB_LANES_STATE* pLanesStateInfo, LDWORD dwUser, void *reserved);
  30954. ///@brief 接口 CLIENT_AttachLanesState 的输入参数
  30955. typedef struct tagNET_IN_ATTACH_LANES_STATE
  30956. {
  30957. DWORD dwSize; // 此结构体大小
  30958. int nChannelID; // 通道号
  30959. int nLaneNumber; // -1代表订阅所有车道,>=0时表示订阅指定车道
  30960. fNotifyLanesState cbNotifyLanesState; // 回调函数
  30961. LDWORD dwUser; // 用户自定义参数
  30962. } NET_IN_ATTACH_LANES_STATE;
  30963. ///@brief 接口 CLIENT_AttachLanesState 的输出参数
  30964. typedef struct tagNET_OUT_ATTACH_LANES_STATE
  30965. {
  30966. DWORD dwSize; // 此结构体大小
  30967. } NET_OUT_ATTACH_LANES_STATE;
  30968. ///@brief CLIENT_MatrixSwitch 输入参数
  30969. typedef struct tagNET_IN_MATRIX_SWITCH
  30970. {
  30971. DWORD dwSize;
  30972. DH_SPLIT_MODE emSplitMode; // 分割模式
  30973. int* pnOutputChannels; // 输出通道, 可同时指定多个输出通道一起切换, 内容一致
  30974. // 由用户申请内存,大小为sizeof(int)*nOutputChannelCount
  30975. int nOutputChannelCount; // 输出通道数
  30976. int* pnInputChannels; // 输入通道, 每个分割窗口一个对应一个输入通道
  30977. // 由用户申请内存,大小为sizeof(int)*nInputChannelCount
  30978. int nInputChannelCount; // 输入通道数
  30979. } NET_IN_MATRIX_SWITCH;
  30980. ///@brief CLIENT_MatrixSwitch 输出参数
  30981. typedef struct tagNET_OUT_MATRIX_SWITCH
  30982. {
  30983. DWORD dwSize;
  30984. } NET_OUT_MATRIX_SWITCH;
  30985. ///@brief CLIENT_SplitSetMultiSource 接口的输入参数
  30986. typedef struct tagNET_IN_SPLIT_SET_MULTI_SOURCE
  30987. {
  30988. DWORD dwSize;
  30989. EM_VIDEO_OUT_CTRL_TYPE emCtrlType; // 视频输出控制方式
  30990. int nChannel; // 视频输出逻辑通道号, emCtrlType为EM_VIDEO_OUT_CTRL_CHANNEL时有效
  30991. const char* pszCompositeID; // 拼接屏ID, emCtrlType为EM_VIDEO_OUT_CTRL_COMPOSITE_ID时有效
  30992. BOOL bSplitModeEnable; // 是否改变分割模式
  30993. DH_SPLIT_MODE emSplitMode; // 分割模式, bSplitModeEnable=TRUE时有效
  30994. int nGroupID; // 分割分组号, bSplitModeEnable=TRUE时有效
  30995. int* pnWindows; // 窗口号数组,由用户申请内存,大小为sizeof(int)*nWindowCount
  30996. int nWindowCount; // 窗口数量
  30997. DH_SPLIT_SOURCE* pstuSources; // 视频源信息, 分别对应每个窗口, 数量同窗口数,由用户申请内存,大小为sizeof(DH_SPLIT_SOURCE)*nWindowCount
  30998. } NET_IN_SPLIT_SET_MULTI_SOURCE;
  30999. ///@brief CLIENT_SplitSetMultiSource 接口的输出参数
  31000. typedef struct tagNET_OUT_SPLIT_SET_MULTI_SOURCE
  31001. {
  31002. DWORD dwSize;
  31003. } NET_OUT_SPLIT_SET_MULTI_SOURCE;
  31004. ///@brief 视频分割操作类型
  31005. typedef enum tagNET_SPLIT_OPERATE_TYPE
  31006. {
  31007. NET_SPLIT_OPERATE_SET_BACKGROUND, // 设置背景图片, 对应 NET_IN_SPLIT_SET_BACKGROUND 和 NET_OUT_SPLIT_SET_BACKBROUND
  31008. NET_SPLIT_OPERATE_GET_BACKGROUND, // 获取背景图片, 对应 NET_IN_SPLIT_GET_BACKGROUND 和 NET_OUT_SPLIT_GET_BACKGROUND
  31009. NET_SPLIT_OPERATE_SET_PREPULLSRC, // 设置预拉流源, 对应 NET_IN_SPLIT_SET_PREPULLSRC 和 NET_OUT_SPLIT_SET_PREPULLSRC
  31010. NET_SPLIT_OPERATE_SET_HIGHLIGHT, // 设置源边框高亮使能开关, 对应 NET_IN_SPLIT_SET_HIGHLIGHT 和 NET_OUT_SPLIT_SET_HIGHLIGHT
  31011. NET_SPLIT_OPERATE_SET_ZORDER, // 调整窗口Z序, 对应 NET_IN_SPLIT_SET_ZORDER 和 NET_OUT_SPLIT_SET_ZORDER
  31012. NET_SPLIT_OPERATE_SET_TOUR, // 窗口轮巡控制, 对应 NET_IN_SPLIT_SET_TOUR 和 NET_OUT_SPLIT_SET_TOUR
  31013. NET_SPLIT_OPERATE_GET_TOUR_STATUS, // 获取窗口轮巡状态, 对应 NET_IN_SPLIT_GET_TOUR_STATUS 和 NET_OUT_SPLIT_GET_TOUR_STATUS
  31014. NET_SPLIT_OPERATE_GET_SCENE, // 获取屏内窗口信息, 对应 NET_IN_SPLIT_GET_SCENE 和 NET_OUT_SPLIT_GET_SCENE
  31015. NET_SPLIT_OPERATE_OPEN_WINDOWS, // 批量开窗, 对应 NET_IN_SPLIT_OPEN_WINDOWS 和 NET_OUT_SPLIT_OPEN_WINDOWS
  31016. NET_SPLIT_OPERATE_SET_WORK_MODE, // 设置工作模式, 对应 NET_IN_SPLIT_SET_WORK_MODE 和 NET_OUT_SPLIT_SET_WORK_MODE
  31017. NET_SPLIT_OPERATE_GET_PLAYER, // 获取播放器实例,对应 NET_IN_SPLIT_GET_PLAYER 和 NET_OUT_SPLIT_GET_PLAYER
  31018. NET_WM_OPERATE_SET_WORK_MODE, // 设置窗口工作模式,对应 NET_IN_WM_SET_WORK_MODE 和 NET_OUT_WM_SET_WORK_MODE
  31019. NET_WM_OPERATE_GET_WORK_MODE, // 获取窗口工作模式,对应 NET_IN_WM_GET_WORK_MODE 和 NET_OUT_WM_GET_WORK_MODE
  31020. NET_SPLIT_OPERATE_CLOSE_WINDOWS, // 批量关窗, 对应 NET_IN_SPLIT_CLOSE_WINDOWS 和 NET_OUT_SPLIT_CLOSE_WINDOWS
  31021. NET_WM_OPERATE_SET_FISH_EYE_PARAM, // 设置输出屏的鱼眼矫正规则 , 对应NET_IN_WM_SET_FISH_EYE_PARAM 和 NET_OUT_WM_SET_FISH_EYE_PARAM
  31022. NET_WM_OPERATE_SET_CORRIDOR_MODE, // 设置窗口走廊模式,对应NET_IN_WM_SET_CORRIDOR_MODE和NET_OUT_WM_SET_CORRIDOR_MODE
  31023. NET_WM_OPERATE_GET_CORRIDOR_MODE, // 获取窗口走廊模式,对应NET_IN_WM_GET_CORRIDOR_MODE和NET_OUT_WM_GET_CORRIDOR_MODE
  31024. NET_WM_OPERATE_SET_VOLUME_COLUMN, // 设置显示音量柱使能模式,对应NET_IN_WM_SET_VOLUME_COLUMN和NET_OUT_WM_SET_VOLUME_COLUMN
  31025. NET_WM_OPERATE_GET_VOLUME_COLUMN, // 获取显示音量柱使能模式,对应NET_IN_WM_GET_VOLUME_COLUMN和NET_OUT_WM_GET_VOLUME_COLUMN
  31026. NET_WM_OPERATE_SET_BACKGROUND, // 设置窗口背景图片,对应NET_IN_WM_SET_BACKGROUND和NET_OUT_WM_SET_BACKGROUND
  31027. NET_WM_OPERATE_GET_BACKGROUND, // 获取窗口背景图片,对应NET_IN_WM_GET_BACKGROUND和NET_OUT_WM_GET_BACKGROUND
  31028. NET_WM_OPERATE_SET_ROTATE_MODE, // 设置图像画面旋转模式,对应NET_IN_WM_SET_ROTATE_MODE和NET_OUT_WM_SET_ROTATE_MODE
  31029. NET_WM_OPERATE_SET_MEETING_MODE, // 设置视频源显示区域的模式,对应NET_IN_WM_SET_MEETING_MODE和NET_OUT_WM_SET_MEETING_MODE
  31030. NET_WM_OPERATE_SET_LOCK_POSITION, // 设置锁定窗口当前位置,对应NET_IN_WM_SET_LOCK_POSITION和NET_OUT_WM_SET_LOCK_POSITION
  31031. NET_WM_OPERATE_SET_COLLECTION_CTRL_ID, // 修改预案控制ID,对应NET_IN_WM_SET_COLLECTION_CTRL_ID和NET_OUT_WM_SET_COLLECTION_CTRL_ID
  31032. NET_SPLIT_OPERATES_SET_SOURCE_ATTRIBUTE, // 设置信号源属性,对应NET_IN_SPLIT_SET_SOURCE_ATTRIBUTE和NET_OUT_SPLIT_SET_SOURCE_ATTRIBUTE
  31033. NET_SPLIT_OPERATES_SET_DOCK_CONTROL, // 设置窗口粘附状态,对应NET_IN_SPLIT_SET_DOCK_CONTROL和NET_OUT_SPLIT_SET_DOCK_CONTROL
  31034. NET_WM_OPERATE_SET_MODE, // 设置窗口分割模式,对应NET_IN_WM_SET_MODE和NET_OUT_WM_SET_MODE
  31035. } NET_SPLIT_OPERATE_TYPE;
  31036. ///@brief 设置源边框高亮使能开关输入参数
  31037. typedef struct tagNET_IN_SPLIT_SET_HIGHLIGHT
  31038. {
  31039. DWORD dwSize;
  31040. int nChannel; // 视频输出通道
  31041. int nWindow; // 窗口号
  31042. BOOL bHighLightEn; // 边框高亮使能,TRUE-表示高亮
  31043. DH_COLOR_RGBA stuColor; // 边框颜色
  31044. int nBlinkTimes; // 边框闪烁次数
  31045. int nBlinkInterval; // 闪烁间隔时间,单位ms
  31046. }NET_IN_SPLIT_SET_HIGHLIGHT;
  31047. ///@brief 设置源边框高亮使能开关输出参数
  31048. typedef struct tagNET_OUT_SPLIT_SET_HIGHLIGHT
  31049. {
  31050. DWORD dwSize;
  31051. }NET_OUT_SPLIT_SET_HIGHLIGHT;
  31052. ///@brief 设置预拉流源输入参数
  31053. typedef struct tagNET_IN_SPLIT_SET_PREPULLSRC
  31054. {
  31055. DWORD dwSize;
  31056. int nChannel; // 视频输出通道
  31057. int nWindow; // 窗口号
  31058. int nSrcCount; // 预拉流源数量
  31059. DH_SPLIT_SOURCE* pSources; // 预拉流源信息,由用户申请内存,大小为sizeof(DH_SPLIT_SOURCE)*nSrcCount
  31060. } NET_IN_SPLIT_SET_PREPULLSRC;
  31061. ///@brief 设置预拉流源的返回结果
  31062. typedef struct tagNET_SPLIT_SET_PREPULLSRC_RESULT
  31063. {
  31064. DWORD dwSize;
  31065. BOOL bResult; // 设置结果, TRUE-成功, FALSE-失败
  31066. DWORD dwErrorCode; // 失败错误码
  31067. } NET_SPLIT_SET_PREPULLSRC_RESULT;
  31068. ///@brief 设置预拉流源输出参数
  31069. typedef struct tagNET_OUT_SPLIT_SET_PREPULLSRC
  31070. {
  31071. DWORD dwSize;
  31072. int nResultCount; // 结果数量, 与预拉流源数量相同
  31073. NET_SPLIT_SET_PREPULLSRC_RESULT* pResults; // 结果
  31074. } NET_OUT_SPLIT_SET_PREPULLSRC;
  31075. ///@brief 设置视频输出背景图输入参数
  31076. typedef struct tagNET_IN_SPLIT_SET_BACKGROUND
  31077. {
  31078. DWORD dwSize;
  31079. int nChannel; // 视频输出通道号
  31080. BOOL bEnable; // 使能
  31081. const char* pszFileName; // 背景图名称
  31082. } NET_IN_SPLIT_SET_BACKGROUND;
  31083. ///@brief 设置视频输出背景图输出参数
  31084. typedef struct tagNET_OUT_SPLIT_SET_BACKGROUND
  31085. {
  31086. DWORD dwSize;
  31087. } NET_OUT_SPLIT_SET_BACKGROUND;
  31088. ///@brief 获取视频输出背景图输入参数
  31089. typedef struct tagNET_IN_SPLIT_GET_BACKGROUND
  31090. {
  31091. DWORD dwSize;
  31092. int nChannel; // 视频输出通道号
  31093. } NET_IN_SPLIT_GET_BACKGROUND;
  31094. ///@brief 获取视频输出背景图输出参数
  31095. typedef struct tagNET_OUT_SPLIT_GET_BACKGROUND
  31096. {
  31097. DWORD dwSize;
  31098. BOOL bEnable; // 使能
  31099. char szFileName[DH_COMMON_STRING_256]; // 背景图名称
  31100. } NET_OUT_SPLIT_GET_BACKGROUND;
  31101. ///@brief 设置窗口背景图输入参数
  31102. typedef struct tagNET_IN_WM_SET_BACKGROUND
  31103. {
  31104. DWORD dwSize;
  31105. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31106. char *pszCompositeID; // 融合屏ID
  31107. int nWindowID; // 窗口号
  31108. BOOL bEnable; // 是否叠加底图
  31109. char szFileName[DH_COMMON_STRING_128]; // 背景图片名称
  31110. } NET_IN_WM_SET_BACKGROUND;
  31111. ///@brief 设置窗口背景图输出参数
  31112. typedef struct tagNET_OUT_WM_SET_BACKGROUND
  31113. {
  31114. DWORD dwSize;
  31115. } NET_OUT_WM_SET_BACKGROUND;
  31116. ///@brief 获取窗口背景图输入参数
  31117. typedef struct tagNET_IN_WM_GET_BACKGROUND
  31118. {
  31119. DWORD dwSize;
  31120. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31121. char *pszCompositeID; // 融合屏ID
  31122. int nWindowID; // 窗口号
  31123. } NET_IN_WM_GET_BACKGROUND;
  31124. ///@brief 获取窗口背景图输出参数
  31125. typedef struct tagNET_OUT_WM_GET_BACKGROUND
  31126. {
  31127. DWORD dwSize;
  31128. BOOL bEnable; // 是否叠加底图
  31129. char szFileName[DH_COMMON_STRING_128]; // 背景图名称
  31130. } NET_OUT_WM_GET_BACKGROUND;
  31131. ///@brief 窗口Z次序
  31132. typedef enum tagNET_WINDOW_ZORDER
  31133. {
  31134. NET_WINDOW_ZORDER_TOP, // 顶层
  31135. NET_WINDOW_ZORDER_BOTTOM, // 底层
  31136. NET_WINDOW_ZORDER_UP, // 往上一层
  31137. NET_WINDOW_ZORDER_DOWN, // 往下一层
  31138. } NET_WINDOW_ZORDER;
  31139. ///@brief 窗口层叠次序
  31140. typedef struct tagDH_WND_ZORDER
  31141. {
  31142. DWORD dwSize;
  31143. unsigned int nWindowID; // 窗口序号
  31144. unsigned int nZOrder; // Z次序
  31145. } DH_WND_ZORDER;
  31146. ///@brief 设置窗口Z序输入参数
  31147. typedef struct tagNET_IN_SPLIT_SET_ZORDER
  31148. {
  31149. DWORD dwSize;
  31150. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31151. const char* pszCompositeID; // 融合屏ID
  31152. int nWindow; // 窗口号
  31153. NET_WINDOW_ZORDER emZOrder; // 调整的Z序
  31154. } NET_IN_SPLIT_SET_ZORDER;
  31155. ///@brief 设置窗口Z序输出参数, 调整一个窗口的Z序会影响所有窗口, 返回调整后所有窗口的Z序
  31156. typedef struct tagNET_OUT_SPLIT_SET_ZORDER
  31157. {
  31158. DWORD dwSize;
  31159. DH_WND_ZORDER* pZOders; // 窗口次序数组, 用户分配内存,大小为sizeof(DH_WND_ZORDER)*nMaxWndCount
  31160. int nMaxWndCount; // 窗口次序数组大小
  31161. int nWndCount; // 返回的窗口数量
  31162. } NET_OUT_SPLIT_SET_ZORDER;
  31163. ///@brief 窗口轮巡动作
  31164. typedef enum tagEM_NET_WINDOW_TOUR_ACTION
  31165. {
  31166. EM_NET_WND_TOUR_ACTION_START, // 开始
  31167. EM_NET_WND_TOUR_ACTION_STOP, // 停止
  31168. } EM_NET_WINDOW_TOUR_ACTION;
  31169. ///@brief 窗口轮巡控制输入参数, 对应NET_SPLIT_OPERATE_SET_TOUR
  31170. typedef struct tagNET_IN_SPLIT_SET_TOUR
  31171. {
  31172. DWORD dwSize;
  31173. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31174. const char* pszCompositeID; // 融合屏ID
  31175. int nWindow; // 窗口号
  31176. EM_NET_WINDOW_TOUR_ACTION emAction; // 轮巡动作
  31177. } NET_IN_SPLIT_SET_TOUR;
  31178. ///@brief 窗口轮巡控制输出参数, 对应NET_SPLIT_OPERATE_SET_TOUR
  31179. typedef struct tagNET_OUT_SPLIT_SET_TOUR
  31180. {
  31181. DWORD dwSize;
  31182. } NET_OUT_SPLIT_SET_TOUR;
  31183. ///@brief 获取窗口轮巡状态输入参数, 对应NET_SPLIT_OPERATE_GET_TOUR_STATUS
  31184. typedef struct tagNET_IN_SPLIT_GET_TOUR_STATUS
  31185. {
  31186. DWORD dwSize;
  31187. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31188. const char* pszCompositeID; // 融合屏ID
  31189. int nWindow; // 窗口号, -1表示所有窗口
  31190. } NET_IN_SPLIT_GET_TOUR_STATUS;
  31191. ///@brief 轮巡状态
  31192. typedef enum tagNET_TOUR_STATUS
  31193. {
  31194. NET_TOUR_UNKNOWN, // 未知
  31195. NET_TOUR_START, // 轮巡中
  31196. NET_TOUR_STOP, // 轮巡停止
  31197. }NET_TOUR_STATUS;
  31198. ///@brief 窗口轮巡状态信息
  31199. typedef struct tagNET_WINDOW_TOUR_STATUS_INFO
  31200. {
  31201. DWORD dwSize;
  31202. int nWindow; // 窗口号
  31203. NET_TOUR_STATUS emStatus; // 状态
  31204. } NET_WINDOW_TOUR_STATUS_INFO;
  31205. ///@brief 获取窗口轮巡状态输出参数, 对应NET_SPLIT_OPERATE_GET_TOUR_STATUS
  31206. typedef struct tagNET_OUT_SPLIT_GET_TOUR_STATUS
  31207. {
  31208. DWORD dwSize;
  31209. NET_WINDOW_TOUR_STATUS_INFO* pstuStatus; // 状态信息指针, 用户分配内存. 查询窗口号为-1时表示多个窗口的信息数组.
  31210. int nMaxStatusCount; // 状态信息最大数量, 用户输入
  31211. int nRetStatusCount; // 状态信息实际数量, 查询得到
  31212. } NET_OUT_SPLIT_GET_TOUR_STATUS;
  31213. ///@brief 批量开窗输入参数, 对应NET_SPLIT_OPERATE_OPEN_WINDOWS
  31214. typedef struct tagNET_IN_SPLIT_OPEN_WINDOWS
  31215. {
  31216. DWORD dwSize;
  31217. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31218. const char* pszCompositeID; // 融合屏id
  31219. int nWindowNum; // 窗口数量
  31220. NET_RECT* pstuWindowRects; // 窗口区域数组,由用户申请内存,大小为sizeof(NET_RECT)*nWindowNum
  31221. BOOL bDirectable; // 满足直通条件
  31222. } NET_IN_SPLIT_OPEN_WINDOWS;
  31223. ///@brief 窗口信息
  31224. typedef struct tagNET_SPLIT_WINDOW_INFO
  31225. {
  31226. DWORD dwSize;
  31227. int nWindowID; // 窗口号
  31228. int nZOrder; // Z次序
  31229. char szControlID[DH_DEV_ID_LEN]; // 控制编号
  31230. } NET_SPLIT_WINDOW_INFO;
  31231. ///@brief 批量开窗输出参数, 对应NET_SPLIT_OPERATE_OPEN_WINDOWS
  31232. typedef struct tagNET_OUT_SPLIT_OPEN_WINDOWS
  31233. {
  31234. DWORD dwSize;
  31235. NET_SPLIT_WINDOW_INFO* pstuWindows; // 窗口信息, 用户分配内存,大小为sizeof(NET_SPLIT_WINDOW_INFO)*nMaxWindowCount
  31236. int nMaxWindowCount; // 窗口信息最大数量, 用户输入
  31237. int nRetWindowCount; // 开窗数量
  31238. } NET_OUT_SPLIT_OPEN_WINDOWS;
  31239. ///@brief 画面分割工作模式
  31240. typedef enum tagNET_SPLIT_WORK_MODE
  31241. {
  31242. NET_SPLIT_WORK_MODE_UNKNOWN, // 未知
  31243. NET_SPLIT_WORK_MODE_LOCAL, // 本地普通模式
  31244. NET_SPLIT_WORK_MODE_REPLAY, // 回放模式
  31245. }NET_SPLIT_WORK_MODE;
  31246. ///@brief 设置工作模式输入参数, 对应 NET_SPLIT_OPERATE_SET_WORK_MODE
  31247. typedef struct tagNET_IN_SPLIT_SET_WORK_MODE
  31248. {
  31249. DWORD dwSize;
  31250. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31251. const char* pszCompositeID; // 融合屏ID
  31252. NET_SPLIT_WORK_MODE emMode; // 工作模式
  31253. }NET_IN_SPLIT_SET_WORK_MODE;
  31254. ///@brief 设置工作模式输出参数, 对应 NET_SPLIT_OPERATE_SET_WORK_MODE
  31255. typedef struct tagNET_OUT_SPLIT_SET_WORK_MODE
  31256. {
  31257. DWORD dwSize;
  31258. }NET_OUT_SPLIT_SET_WORK_MODE;
  31259. ///@brief 播放器类型
  31260. typedef enum tagNET_SPLIT_PLAYER_TYPE
  31261. {
  31262. NET_SPLIT_PLAYER_TYPE_UNKNOWN, // 未知
  31263. NET_SPLIT_PLAYER_TYPE_FILE_LIST, // 文件列表播放器
  31264. NET_SPLIT_PLAYER_TYPE_FILE, // 文件播放器
  31265. }NET_SPLIT_PLAYER_TYPE;
  31266. ///@brief 获取播放器实例输入参数, 对应 NET_SPLIT_OPERATE_GET_PLAYER
  31267. typedef struct tagNET_IN_SPLIT_GET_PLAYER
  31268. {
  31269. DWORD dwSize;
  31270. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31271. const char* pszCompositeID; // 融合屏ID
  31272. NET_SPLIT_PLAYER_TYPE emType; // 播放器类型
  31273. int nWindow; // 播放器所在的窗口号
  31274. }NET_IN_SPLIT_GET_PLAYER;
  31275. ///@brief 获取播放器实例输出参数, 对应 NET_SPLIT_OPERATE_GET_PLAYER
  31276. typedef struct tagNET_OUT_SPLIT_GET_PLAYER
  31277. {
  31278. DWORD dwSize;
  31279. LLONG lPlayerID; // 播放器实例ID
  31280. }NET_OUT_SPLIT_GET_PLAYER;
  31281. ///@brief 窗口工作模式
  31282. typedef enum tagNET_WM_WORK_MODE
  31283. {
  31284. NET_WM_WORK_MODE_UNKNOWN, // 未知
  31285. NET_WM_WORK_MODE_DISPLAY, // 预览模式
  31286. NET_WM_WORK_MODE_REPLAY, // 回放模式
  31287. }NET_WM_WORK_MODE;
  31288. ///@brief 设置窗口工作模式输入参数, 对应 NET_WM_OPERATE_SET_WORK_MODE
  31289. typedef struct tagNET_IN_WM_SET_WORK_MODE
  31290. {
  31291. DWORD dwSize;
  31292. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31293. const char* pszCompositeID; // 融合屏ID
  31294. int nWindow; // 窗口号
  31295. NET_WM_WORK_MODE emMode; // 窗口工作模式
  31296. }NET_IN_WM_SET_WORK_MODE;
  31297. ///@brief 设置窗口工作模式输出参数, 对应 NET_WM_OPERATE_SET_WORK_MODE
  31298. typedef struct tagNET_OUT_WM_SET_WORK_MODE
  31299. {
  31300. DWORD dwSize;
  31301. }NET_OUT_WM_SET_WORK_MODE;
  31302. ///@brief 获取窗口工作模式输入参数, 对应 NET_WM_OPERATE_GET_WORK_MODE
  31303. typedef struct tagNET_IN_WM_GET_WORK_MODE
  31304. {
  31305. DWORD dwSize;
  31306. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31307. const char* pszCompositeID; // 融合屏ID
  31308. int nWindow; // 窗口号
  31309. }NET_IN_WM_GET_WORK_MODE;
  31310. ///@brief 获取窗口工作模式输出参数, 对应 NET_WM_OPERATE_GET_WORK_MODE
  31311. typedef struct tagNET_OUT_WM_GET_WORK_MODE
  31312. {
  31313. DWORD dwSize;
  31314. NET_WM_WORK_MODE emMode; // 窗口工作模式
  31315. }NET_OUT_WM_GET_WORK_MODE;
  31316. ///@brief 设置窗口走廊模式输入参数,对应NET_WM_OPERATE_SET_CORRIDOR_MODE
  31317. typedef struct tagNET_IN_WM_SET_CORRIDOR_MODE
  31318. {
  31319. DWORD dwSize; // 用户使用时赋值为结构体大小
  31320. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31321. const char* pszCompositeID; // 融合屏ID
  31322. int nWindow; // 窗口号
  31323. BOOL bIsCorridor; // 窗口走廊模式(TRUE:打开 FALSE:关闭)
  31324. } NET_IN_WM_SET_CORRIDOR_MODE;
  31325. ///@brief 设置窗口走廊模式输出参数,对应NET_WM_OPERATE_SET_CORRIDOR_MODE
  31326. typedef struct tagNET_OUT_WM_SET_CORRIDOR_MODE
  31327. {
  31328. DWORD dwSize; // 用户使用时赋值为结构体大小
  31329. } NET_OUT_WM_SET_CORRIDOR_MODE;
  31330. ///@brief 获取窗口走廊模式输入参数,对应NET_WM_OPERATE_GET_CORRIDOR_MODE
  31331. typedef struct tagNET_IN_WM_GET_CORRIDOR_MODE
  31332. {
  31333. DWORD dwSize; // 用户使用时赋值为结构体大小
  31334. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31335. const char* pszCompositeID; // 融合屏ID
  31336. int nWindow; // 窗口号
  31337. } NET_IN_WM_GET_CORRIDOR_MODE;
  31338. ///@brief 获取窗口走廊模式输出参数,对应NET_WM_OPERATE_GET_CORRIDOR_MODE
  31339. typedef struct tagNET_OUT_WM_GET_CORRIDOR_MODE
  31340. {
  31341. DWORD dwSize; // 用户使用时赋值为结构体大小
  31342. BOOL bIsCorridor; // 窗口走廊模式(TRUE:打开 FALSE:关闭)
  31343. } NET_OUT_WM_GET_CORRIDOR_MODE;
  31344. ///@brief 设置显示音量柱使能模式输入参数,对应NET_WM_OPERATE_SET_VOLUME_COLUMN
  31345. typedef struct tagNET_IN_WM_SET_VOLUME_COLUMN
  31346. {
  31347. DWORD dwSize; // 用户使用时赋值为结构体大小
  31348. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31349. const char* pszCompositeID; // 融合屏ID
  31350. BOOL bIsEnable; // 是否显示音量柱(TRUE:显示 FALSE:关闭)
  31351. } NET_IN_WM_SET_VOLUME_COLUMN;
  31352. ///@brief 设置显示音量柱使能模式输出参数,对应NET_WM_OPERATE_SET_VOLUME_COLUMN
  31353. typedef struct tagNET_OUT_WM_SET_VOLUME_COLUMN
  31354. {
  31355. DWORD dwSize; // 用户使用时赋值为结构体大小
  31356. } NET_OUT_WM_SET_VOLUME_COLUMN;
  31357. ///@brief 获取显示音量柱使能模式输人参数,对应NET_WM_OPERATE_GET_VOLUME_COLUMN
  31358. typedef struct tagNET_IN_WM_GET_VOLUME_COLUMN
  31359. {
  31360. DWORD dwSize; // 用户使用时赋值为结构体大小
  31361. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31362. const char* pszCompositeID; // 融合屏ID
  31363. } NET_IN_WM_GET_VOLUME_COLUMN;
  31364. ///@brief 获取显示音量柱使能模式输出参数,对应NET_WM_OPERATE_GET_VOLUME_COLUMN
  31365. typedef struct tagNET_OUT_WM_GET_VOLUME_COLUMN
  31366. {
  31367. DWORD dwSize; // 用户使用时赋值为结构体大小
  31368. BOOL bIsEnable; // 是否显示音量柱(TRUE:显示 FALSE:关闭)
  31369. } NET_OUT_WM_GET_VOLUME_COLUMN;
  31370. ///@brief 批量关窗输入参数, 对应NET_SPLIT_OPERATE_CLOSE_WINDOWS
  31371. typedef struct tagNET_IN_SPLIT_CLOSE_WINDOWS
  31372. {
  31373. DWORD dwSize;
  31374. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31375. const char* pszCompositeID; // 融合屏ID
  31376. int* pnWindows; // 窗口号数组指针,由用户申请内存,大小为sizeof(int)*nWindowCount
  31377. int nWindowCount; // 窗口数量
  31378. } NET_IN_SPLIT_CLOSE_WINDOWS;
  31379. ///@brief 关窗操作结果
  31380. typedef struct tagNET_SPLIT_CLOSE_WINDOW_RESULT
  31381. {
  31382. BOOL bResult; // 结果
  31383. char reserved[256]; // 保留字节
  31384. } NET_SPLIT_CLOSE_WINDOW_RESULT ;
  31385. ///@brief 批量关窗输出参数, 对应NET_SPLIT_OPERATE_CLOSE_WINDOWS
  31386. typedef struct tagNET_OUT_SPLIT_CLOSE_WINDOWS
  31387. {
  31388. DWORD dwSize;
  31389. NET_SPLIT_CLOSE_WINDOW_RESULT* pstuResults; // 结果数组, 用户分配内存,大小为sizeof(NET_SPLIT_CLOSE_WINDOW_RESULT)*nMaxResultCount. 如果不需要返回结果, 可以为NULL
  31390. int nMaxResultCount; // 结果数组最大数量, 用户填写.
  31391. int nRetResultCount; // 返回的结果数量
  31392. } NET_OUT_SPLIT_CLOSE_WINDOWS;
  31393. ///@brief 输出屏鱼眼矫正模式
  31394. typedef enum tagNET_WM_FISHEYE_CALIBRATE_MODE
  31395. {
  31396. NET_WM_FISHEYE_CALIBRATE_MODE_UNKOWN , // 未知模式
  31397. NET_WM_FISHEYE_CALIBRATE_MODE_CLOSE , // 关闭鱼眼算法
  31398. NET_WM_FISHEYE_CALIBRATE_MODE_ORIGINAL, // 原始模式(正方形) 带缩放比例
  31399. NET_WM_FISHEYE_CALIBRATE_MODE_PANORAMA, // 1P
  31400. NET_WM_FISHEYE_CALIBRATE_MODE_PAN_PLUS_ONE, // 1P+1
  31401. NET_WM_FISHEYE_CALIBRATE_MODE_DOUBLE_PANORAMA, // 2P
  31402. NET_WM_FISHEYE_CALIBRATE_MODE_ORI_DOUBLE_PAN, // 1+2p
  31403. NET_WM_FISHEYE_CALIBRATE_MODE_ORI_PLUS_THREEE, // 1+3
  31404. NET_WM_FISHEYE_CALIBRATE_MODE_PAN_PLUS_THREEE, // 1p+3
  31405. NET_WM_FISHEYE_CALIBRATE_MODE_ORI_PLUS_TWO, // 1+2
  31406. NET_WM_FISHEYE_CALIBRATE_MODE_ORI_PLUS_FOUR, // 1+4
  31407. NET_WM_FISHEYE_CALIBRATE_MODE_PAN_PLUS_FOUR, // 1p+4
  31408. NET_WM_FISHEYE_CALIBRATE_MODE_PAN_PLUS_SIX, // 1p+6
  31409. NET_WM_FISHEYE_CALIBRATE_MODE_ORI_PLUS_EIGHT, // 1+8
  31410. NET_WM_FISHEYE_CALIBRATE_MODE_PAN_PLUS_EIGHT, // 1P+8
  31411. }NET_WM_FISHEYE_CALIBRATE_MODE;
  31412. ///@brief 鱼眼矫正窗口区域参数
  31413. typedef struct tagNET_WM_FISH_EYE_REGION_PARAM
  31414. {
  31415. int nCoordinateX; // 窗口中心对应到原始圆的横坐标
  31416. int nCoordinateY; // 窗口中心对应到原始圆的横坐标纵坐标
  31417. int nAngleH; // 以X、Y为中心,校正区域范围的水平角度
  31418. int nAngleV; // 以X、Y为中心,校正区域范围的垂直角度
  31419. int nAvailable; // 表示是否可用
  31420. BYTE Reserved[124]; // 保留字节
  31421. }NET_WM_FISH_EYE_REGION_PARAM;
  31422. #define MAX_FISH_EYE_REGION_NUM 9
  31423. ///@brief 模式初始化各画面信息,适用于模式切换恢复到上一次的状态
  31424. typedef struct tagNET_WM_SET_FISHEYE_INIT_PARAM
  31425. {
  31426. BOOL bUseRegion; // 为TRUE时,使用以下成员进行初始化,为FALSE时以下成员无效
  31427. int nCircular; // 环形偏移(鱼眼显示模式中带原始图时有意义。如1+3、1+8等模式的1画面)
  31428. int nPanorama; // 全景偏移(鱼眼显示模式带全景时有意义,如1P、2P等模式)
  31429. int nFishEyeRegionNum; // 鱼眼矫正窗口区域参数个数(数组个数等于实际的矫正模式.如1+3,则有4个元素)
  31430. NET_WM_FISH_EYE_REGION_PARAM stFishEyeRegions[MAX_FISH_EYE_REGION_NUM]; // 鱼眼矫正窗口区域参数信息
  31431. BYTE Reserved[1024]; // 保留字节
  31432. }NET_WM_SET_FISHEYE_INIT_PARAM;
  31433. ///@brief 电子云台缩放移动参数
  31434. typedef struct tagNET_WM_SET_FISHEYE_EPTZ_PARAM
  31435. {
  31436. int nOptWayType; // 操作类型(表示鱼眼云台控制时的arg1,表示是移动还是放大)
  31437. int nOptWinNum; // 小窗口号(当前正在操作的小窗口号)
  31438. int nOptWayData; // 操作数据(表示鱼眼云台控制时的数据大小。和OptWayType配合使用)
  31439. BYTE Reserved[512]; // 保留字节
  31440. }NET_WM_SET_FISHEYE_EPTZ_PARAM;
  31441. ///@brief 设置输出屏的鱼眼矫正规则输入参数, 对应NET_IN_WM_SET_FISH_EYE_PARAM
  31442. typedef struct tagNET_IN_WM_SET_FISH_EYE_PARAM
  31443. {
  31444. DWORD dwSize;
  31445. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31446. const char* pszCompositeID; // 融合屏ID
  31447. int nWindowID; // 对应输出屏的窗口号
  31448. NET_FISHEYE_MOUNT_MODE emMount; // 鱼眼安装模式
  31449. NET_WM_FISHEYE_CALIBRATE_MODE emCalibrate; // 鱼眼矫正模式
  31450. NET_WM_SET_FISHEYE_INIT_PARAM stInitParam; // 模式初始化各画面信息
  31451. NET_WM_SET_FISHEYE_EPTZ_PARAM stEPtzParam; // 电子云台缩放移动参数
  31452. }NET_IN_WM_SET_FISH_EYE_PARAM;
  31453. ///@brief 设置输出屏的鱼眼矫正规则输出参数, 对应NET_OUT_WM_SET_FISH_EYE_PARAM
  31454. typedef struct tagNET_OUT_WM_SET_FISH_EYE_PARAM
  31455. {
  31456. DWORD dwSize;
  31457. }NET_OUT_WM_SET_FISH_EYE_PARAM;
  31458. ///@brief 图像旋转方式
  31459. typedef enum tagEM_WM_ROTATE_TYPE
  31460. {
  31461. EM_WM_ROTATE_TYPE_NO_ROTATE, // 不旋转
  31462. EM_WM_ROTATE_TYPE_90_ROTATE, // 旋转90°
  31463. EM_WM_ROTATE_TYPE_180_ROTATE, // 旋转180°
  31464. EM_WM_ROTATE_TYPE_270_ROTATE, // 旋转270°
  31465. }EM_WM_ROTATE_TYPE;
  31466. ///@brief 设置图像旋转模式输入参数
  31467. typedef struct tagNET_IN_WM_SET_ROTATE_MODE
  31468. {
  31469. DWORD dwSize;
  31470. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31471. const char* pszCompositeID; // 融合屏ID
  31472. int nWindowID; // 窗口号
  31473. EM_WM_ROTATE_TYPE emRotateType; // 图像旋转方式
  31474. } NET_IN_WM_SET_ROTATE_MODE;
  31475. ///@brief 设置图像旋转模式输出参数
  31476. typedef struct tagNET_OUT_WM_SET_ROTATE_MODE
  31477. {
  31478. DWORD dwSize;
  31479. } NET_OUT_WM_SET_ROTATE_MODE;
  31480. ///@brief 信号源属性
  31481. typedef struct tagNET_SOURCE_ATTRIBUTE_INFO
  31482. {
  31483. unsigned char ucBrightness; // 亮度,范围0~255
  31484. unsigned char ucContrast; // 对比度,范围0~255
  31485. unsigned char ucSaturation; // 色彩饱和度,范围0~255
  31486. unsigned char ucEQ; // 视频高频信号的补偿调节,范围0~10
  31487. BYTE byReserver1[4]; // 保留字节,用于字节对齐
  31488. int nMargin[4]; // 边距,每一项分别表示信号源左上右下四个边的边距,每项-50~50
  31489. BYTE byReserver[512]; // 保留字节
  31490. }NET_SOURCE_ATTRIBUTE_INFO;
  31491. ///@brief 设置信号源属性 输入参数
  31492. typedef struct tagNET_IN_SPLIT_SET_SOURCE_ATTRIBUTE
  31493. {
  31494. DWORD dwSize; // 结构体大小
  31495. char szCompositeID[64]; // 拼接屏ID
  31496. int nChannel; // 通道号
  31497. int nWindow; // 窗口号
  31498. NET_SOURCE_ATTRIBUTE_INFO stuAttribute; // 信号源属性
  31499. }NET_IN_SPLIT_SET_SOURCE_ATTRIBUTE;
  31500. ///@brief 设置信号源属性 输出参数
  31501. typedef struct tagNET_OUT_SPLIT_SET_SOURCE_ATTRIBUTE
  31502. {
  31503. DWORD dwSize; // 结构体大小
  31504. }NET_OUT_SPLIT_SET_SOURCE_ATTRIBUTE;
  31505. ///@brief 设置窗口粘附状态 输入参数
  31506. typedef struct tagNET_IN_SPLIT_SET_DOCK_CONTROL
  31507. {
  31508. DWORD dwSize; // 结构体大小
  31509. char szCompositeID[64]; // 拼接屏ID
  31510. int nChannel; // 通道号
  31511. int nWindow; // 窗口号
  31512. BOOL bDock; // 是否开启窗口粘附效果
  31513. }NET_IN_SPLIT_SET_DOCK_CONTROL;
  31514. ///@brief 设置窗口粘附状态 输出参数
  31515. typedef struct tagNET_OUT_SPLIT_SET_DOCK_CONTROL
  31516. {
  31517. DWORD dwSize; // 结构体大小
  31518. }NET_OUT_SPLIT_SET_DOCK_CONTROL;
  31519. ///@brief 设置视频源显示区域的模式 输入参数
  31520. typedef struct tagNET_IN_WM_SET_MEETING_MODE
  31521. {
  31522. DWORD dwSize; // 结构体大小
  31523. char szComposite[64]; // 拼接屏号
  31524. int nChannel; // 输出通道号或融合屏虚拟通道号, szComposite为空时有效
  31525. int nWindow; // 窗口号
  31526. BOOL bEnable; // TRUE:会议室模式; FALSE:标准模式
  31527. }NET_IN_WM_SET_MEETING_MODE;
  31528. ///@brief 设置视频源显示区域的模式 输出参数
  31529. typedef struct tagNET_OUT_WM_SET_MEETING_MODE
  31530. {
  31531. DWORD dwSize; // 结构体大小
  31532. }NET_OUT_WM_SET_MEETING_MODE;
  31533. ///@brief 设置锁定窗口当前位置 输入参数
  31534. typedef struct tagNET_IN_WM_SET_LOCK_POSITION
  31535. {
  31536. DWORD dwSize; // 结构体大小
  31537. char szComposite[64]; // 拼接屏号
  31538. int nChannel; // 输出通道号或融合屏虚拟通道号, szComposite为空时有效
  31539. int nWindow; // 窗口ID,-1代表所有窗口
  31540. BOOL bLock; // 是否锁定
  31541. }NET_IN_WM_SET_LOCK_POSITION;
  31542. ///@brief 设置锁定窗口当前位置 输出参数
  31543. typedef struct tagNET_OUT_WM_SET_LOCK_POSITION
  31544. {
  31545. DWORD dwSize; // 结构体大小
  31546. }NET_OUT_WM_SET_LOCK_POSITION;
  31547. ///@brief 修改预案控制ID 输入参数
  31548. typedef struct tagNET_IN_WM_SET_COLLECTION_CTRL_ID
  31549. {
  31550. DWORD dwSize; // 结构体大小
  31551. int nChannel; // 输出通道号或融合屏虚拟通道号, szComposite为空时有效
  31552. char szComposite[64]; // 拼接屏号
  31553. char szName[128]; // 预案名称
  31554. char szControlID[8]; // 预案新的控制ID(数值范围:1-255)
  31555. }NET_IN_WM_SET_COLLECTION_CTRL_ID;
  31556. ///@brief 修改预案控制ID 输出参数
  31557. typedef struct tagNET_OUT_WM_SET_COLLECTION_CTRL_ID
  31558. {
  31559. DWORD dwSize; // 结构体大小
  31560. }NET_OUT_WM_SET_COLLECTION_CTRL_ID ;
  31561. ///@brief 设置窗口分割模式 输入参数
  31562. typedef struct tagNET_IN_WM_SET_MODE
  31563. {
  31564. DWORD dwSize; // 结构体大小
  31565. int nChannel; // 输出通道号或融合屏虚拟通道号
  31566. int nWindow; // 窗口号
  31567. DH_SPLIT_MODE emSplitMode; // 分割模式
  31568. }NET_IN_WM_SET_MODE ;
  31569. ///@brief 分割后的窗口信息
  31570. typedef struct tagNET_SPLITED_WINDOW_INFO
  31571. {
  31572. NET_RECT stuRect; // 窗口区域,8192坐标系[0-8191]
  31573. int nWindow; // 窗口号,这个窗口是拆分后的新窗口和原来的窗口号是不同的
  31574. int nZOrder; // 窗口Z序
  31575. char szControlID[32]; // 窗口控制ID
  31576. BYTE byReserver[512]; // 保留字节
  31577. }NET_SPLITED_WINDOW_INFO;
  31578. ///@brief 设置窗口分割模式 输出参数
  31579. typedef struct tagNET_OUT_WM_SET_MODE
  31580. {
  31581. DWORD dwSize; // 结构体大小
  31582. UINT nSplitedWindowNum; // 分割后的窗口个数
  31583. NET_SPLITED_WINDOW_INFO stuSplitedWindow[144]; // 分割后的窗口信息
  31584. }NET_OUT_WM_SET_MODE;
  31585. ////////////////////////////// 系统状态 ////////////////////////////////////////
  31586. ///@brief CPU信息
  31587. typedef struct tagDH_CPU_INFO
  31588. {
  31589. DWORD dwSize;
  31590. int nUsage; // CPU利用率
  31591. } DH_CPU_INFO;
  31592. ///@brief CPU状态
  31593. typedef struct tagDH_CPU_STATUS
  31594. {
  31595. DWORD dwSize;
  31596. BOOL bEnable; // 查询是否成功
  31597. int nCount; // CPU数量
  31598. DH_CPU_INFO stuCPUs[DH_MAX_CPU_NUM]; // CPU信息
  31599. } DH_CPU_STATUS;
  31600. ///@brief 内存信息
  31601. typedef struct tagDH_MEMORY_INFO
  31602. {
  31603. DWORD dwSize;
  31604. DWORD dwTotal; // 总内存, M
  31605. DWORD dwFree; // 剩余内存, M
  31606. } DH_MEMORY_INFO;
  31607. ///@brief 内存状态
  31608. typedef struct tagDH_MEMORY_STATUS
  31609. {
  31610. DWORD dwSize;
  31611. BOOL bEnable; // 查询是否成功
  31612. DH_MEMORY_INFO stuMemory; // 内存信息
  31613. } DH_MEMORY_STATUS;
  31614. ///@brief 风扇信息
  31615. typedef struct tagDH_FAN_INFO
  31616. {
  31617. DWORD dwSize;
  31618. char szName[DH_DEVICE_NAME_LEN]; // 名称
  31619. DWORD nSpeed; // 速度
  31620. } DH_FAN_INFO;
  31621. ///@brief 风扇状态
  31622. typedef struct tagDH_FAN_STATUS
  31623. {
  31624. DWORD dwSize;
  31625. BOOL bEnable; // 查询是否成功
  31626. int nCount; // 风扇数量
  31627. DH_FAN_INFO stuFans[DH_MAX_FAN_NUM]; // 风扇状态
  31628. } DH_FAN_STATUS;
  31629. ///@brief 电源电流状态类型
  31630. typedef enum __EM_CURRENT_STATE_TYPE
  31631. {
  31632. EM_CURRENT_STATE_UNKNOWN = 0,
  31633. EM_CURRENT_STATE_OVER_CURRENT, // 电流过载
  31634. EM_CURRENT_STATE_NORMAL, // 电流正常
  31635. EM_CURRENT_STATE_UNDER_CURRENT, // 电源欠流
  31636. }EM_CURRENT_STATE_TYPE;
  31637. ///@brief 电源电压状态类型
  31638. typedef enum tagEM_VOLTAGE_STATE_TYPE
  31639. {
  31640. EM_VOLTAGE_STATE_UNKNOWN, // 未知
  31641. EM_VOLTAGE_STATE_OVER, // 过压
  31642. EM_VOLTAGE_STATE_NORMAL, // 正常
  31643. EM_VOLTAGE_STATE_UNDER, // 欠压
  31644. } EM_VOLTAGE_STATE_TYPE;
  31645. ///@brief 电源信息
  31646. typedef struct tagDH_POWER_INFO
  31647. {
  31648. DWORD dwSize;
  31649. BOOL bPowerOn; // 电源状态, 0-关闭, 1-打开, 2-打开但有故障
  31650. EM_CURRENT_STATE_TYPE emCurrentState; // 电源电流状态
  31651. EM_VOLTAGE_STATE_TYPE emVoltageState; // 电源电压状态
  31652. } DH_POWER_INFO;
  31653. ///@brief 电池在位状态
  31654. typedef enum __EM_BATTERY_EXIST_STATE
  31655. {
  31656. EM_BATTERY_EXIST_STATE_UNKNOWN = 0,
  31657. EM_BATTERY_EXIST_STATE_EXIST, // 电池在位
  31658. EM_BATTERY_EXIST_STATE_MISSING, // 电池丢失
  31659. }EM_BATTERY_EXIST_STATE;
  31660. ///@brief 电池电量状态
  31661. typedef enum __EM_BATTERY_STATE
  31662. {
  31663. EM_BATTERY_STATE_UNKNOWN = 0,
  31664. EM_BATTERY_STATE_NORMAL, // 电量正常
  31665. EM_BATTERY_STATE_LOW, // 电量低
  31666. }EM_BATTERY_STATE;
  31667. ///@brief 电池温度状态
  31668. typedef enum tagEM_BATTERY_TEMPER_STATE
  31669. {
  31670. EM_BATTERY_TEMPER_STATE_UNKNOWN, // 未知
  31671. EM_BATTERY_TEMPER_STATE_LOW_TEMPER, // 低温
  31672. EM_BATTERY_TEMPER_STATE_NORMAL_TEMPER, // 常温
  31673. EM_BATTERY_TEMPER_STATE_HIGH_TEMPER, // 高温
  31674. EM_BATTERY_TEMPER_STATE_OVER_TEMPER, // 超温
  31675. EM_BATTERY_TEMPER_STATE_ABNORMAL_TEMPER, // 异常
  31676. }EM_BATTERY_TEMPER_STATE;
  31677. ///@brief 电池信息, CLIENT_QueryDevState接口的 DH_DEVSTATE_POWER_STATE 命令参数
  31678. typedef struct tagDH_BATTERY_INFO
  31679. {
  31680. DWORD dwSize;
  31681. int nPercent; // 电池容量百分比
  31682. BOOL bCharging; // 是否正在充电
  31683. EM_BATTERY_EXIST_STATE emExistState; // 电池在位状态
  31684. EM_BATTERY_STATE emState; // 电池电量状态
  31685. float fVoltage; // 电池电压
  31686. EM_BATTERY_TEMPER_STATE emTemperState; // 电池温度状态
  31687. } DH_BATTERY_INFO;
  31688. ///@brief 电源状态
  31689. typedef struct tagDH_POWER_STATUS
  31690. {
  31691. DWORD dwSize;
  31692. BOOL bEnable; // 查询是否成功
  31693. int nCount; // 电源数量
  31694. DH_POWER_INFO stuPowers[DH_MAX_POWER_NUM]; // 电源状态
  31695. int nBatteryNum; // 电池数量
  31696. DH_BATTERY_INFO stuBatteries[DH_MAX_BATTERY_NUM]; // 电池状态
  31697. } DH_POWER_STATUS;
  31698. ///@brief 温度信息
  31699. typedef struct tagDH_TEMPERATURE_INFO
  31700. {
  31701. DWORD dwSize;
  31702. char szName[DH_DEVICE_NAME_LEN]; // 传感器名称
  31703. float fTemperature; // 温度
  31704. } DH_TEMPERATURE_INFO;
  31705. ///@brief 温度状态
  31706. typedef struct tagDH_TEMPERATURE_STATUS
  31707. {
  31708. DWORD dwSize;
  31709. BOOL bEnable; // 查询是否成功
  31710. int nCount; // 温度数量
  31711. DH_TEMPERATURE_INFO stuTemps[DH_MAX_TEMPERATURE_NUM]; // 温度信息
  31712. } DH_TEMPERATURE_STATUS;
  31713. ///@brief 系统状态
  31714. typedef struct tagDH_SYSTEM_STATUS
  31715. {
  31716. DWORD dwSize;
  31717. DH_CPU_STATUS* pstuCPU; // CPU状态
  31718. DH_MEMORY_STATUS* pstuMemory; // 内存状态
  31719. DH_FAN_STATUS* pstuFan; // 风扇状态
  31720. DH_POWER_STATUS* pstuPower; // 电源状态
  31721. DH_TEMPERATURE_STATUS* pstuTemp; // 温度状态
  31722. } DH_SYSTEM_STATUS;
  31723. ///@brief 对应CLIENT_QueryDevState()接口的 DH_DEVSTATE_ALL_ALARM_CHANNELS_STATE命令参数
  31724. ///@brief 获取报警通道状态
  31725. typedef enum tagNET_ALARM_CHANNEL_TYPE
  31726. {
  31727. NET_ALARM_CHANNEL_TYPE_ALL, // 所有通道(包含以下所有)
  31728. NET_ALARM_CHANNEL_TYPE_ALARMIN, // 报警输入通道
  31729. NET_ALARM_CHANNEL_TYPE_ALARMOUT, // 报警输出通道
  31730. NET_ALARM_CHANNEL_TYPE_ALARMBELL, // 警号通道
  31731. NET_ALARM_CHANNEL_TYPE_EXALARMIN, // 扩展模块报警输入通道
  31732. NET_ALARM_CHANNEL_TYPE_EXALARMOUT, // 扩展模块报警输出通道
  31733. }NET_ALARM_CHANNEL_TYPE;
  31734. ///@brief 查询报警通道状态
  31735. typedef struct tagNET_CLIENT_ALARM_CHANNELS_STATE
  31736. {
  31737. DWORD dwSize;
  31738. NET_ALARM_CHANNEL_TYPE emType; // 查询报警通道的类型
  31739. int nAlarmInCount; // 报警输入个数,由用户指定
  31740. int nAlarmInRetCount; // 报警输入返回个数
  31741. BOOL* pbAlarmInState; // 报警输入状态数组,由用户分配内存,每个元素表示一个通道状态,TRUE为有输入,FALSE为无输入
  31742. // 由用户申请内存,大小sizeof(BOOL)*nAlarmInCount
  31743. int nAlarmOutCount; // 报警输出个数,由用户指定
  31744. int nAlarmOutRetCount; // 报警输出个数
  31745. BOOL* pbAlarmOutState; // 报警输出状态数组,由用户分配内存,每个元素表示一个通道状态,TRUE为有输出,FALSE为输出
  31746. // 由用户申请内存,大小sizeof(BOOL)*nAlarmOutCount
  31747. int nAlarmBellCount; // 警号个数,由用户指定
  31748. int nAlarmBellRetCount; // 警号返回个数
  31749. BOOL* pbAlarmBellState; // 警号状态数组,由用户分配内存,每个元素表示一个通道状态,TRUE为有输出,FALSE为无输出
  31750. // 由用户申请内存,大小sizeof(BOOL)*nAlarmBellCount
  31751. int nExAlarmInCount; // 扩展模块报警输入个数,由用户指定
  31752. int nExAlarmInRetCount; // 扩展模块报警输入返回个数
  31753. BOOL* pbExAlarmInState; // 扩展模块报警输入状态数组,由用户分配内存,每个元素表示一个通道状态,TRUE为有输出,FALSE为无输出
  31754. // 由用户申请内存,大小sizeof(BOOL)*nExAlarmInCount
  31755. int* pnExAlarmInDestionation; // 扩展模块报警输入有效通道的位置,由用户申请内存,大小sizeof(int)*nExAlarmInCount
  31756. int nExAlarmOutCount; // 扩展模块报警输出个数,由用户指定
  31757. int nExAlarmOutRetCount; // 扩展模块报警输出个数
  31758. BOOL* pbExAlarmOutState; // 扩展模块报警输出状态数组,由用户分配内存,每个元素表示一个通道状态,TRUE为有输出,FALSE为无输出
  31759. // 由用户申请内存,大小为sizeof(BOOL)*nExAlarmOutCount
  31760. int* pnExAlarmOutDestionation; // 扩展模块报警输出有效通道的位置,由用户申请内存,大小为sizeof(int)*nExAlarmOutCount
  31761. }NET_CLIENT_ALARM_CHANNELS_STATE;
  31762. ///@brief 串口上连接的报警键盘数
  31763. typedef struct tagNET_ALARMKEYBOARD_COUNT
  31764. {
  31765. DWORD dwSize;
  31766. int nAlarmKeyboardCount; // 连接着的报警键盘数目
  31767. }NET_ALARMKEYBOARD_COUNT;
  31768. ///@brief 设备串口连接的设备类型
  31769. typedef enum tagEM_COM_PORT_DEVICE_TYPE
  31770. {
  31771. EM_COM_PORT_DEVICE_TYPE_UNKNOWN, // 未知的
  31772. EM_COM_PORT_DEVICE_TYPE_PTZ, // ptz
  31773. EM_COM_PORT_DEVICE_TYPE_GPS, // GPS
  31774. EM_COM_PORT_DEVICE_TYPE_ALARMKEYBOARD, // 报警键盘
  31775. EM_COM_PORT_DEVICE_TYPE_EXALARMBOX, // 扩展报警盒子
  31776. }EM_COM_PORT_DEVICE_TYPE;
  31777. ///@brief 获取设备COM端口连接的设备通道信息(入参)
  31778. typedef struct tagNET_IN_GET_COM_PORT_DEVICE_CHANNEL_INFO
  31779. {
  31780. DWORD dwSize;
  31781. EM_COM_PORT_DEVICE_TYPE emDeviceType; // 设备类型
  31782. }NET_IN_GET_COM_PORT_DEVICE_CHANNEL_INFO;
  31783. ///@brief 获取设备COM端口连接的设备通道信息(出参)
  31784. typedef struct tagNET_OUT_GET_COM_PORT_DEVICE_CHANNEL_INFO
  31785. {
  31786. DWORD dwSize;
  31787. int nDeviceCount; // 设备数目(出参,包括不在线和在线的)
  31788. int nMaxOnlineDeviceCount; // 在线的设备的最大个数(入参)
  31789. int nRetOnlineDeviceCount; // 设备返回的当前在线的设备数量(出参)
  31790. int* pOnlineChannel; // 当前在线的设备的通道索引数组(入参,由用户申请释放内存)
  31791. }NET_OUT_GET_COM_PORT_DEVICE_CHANNEL_INFO;
  31792. ///@brief 获取设备COM端口连接的设备通道信息,pInParam与pInParamOut由用户申请内存
  31793. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetComPortDeviceChannelInfo(LLONG lLoginID,const NET_IN_GET_COM_PORT_DEVICE_CHANNEL_INFO* pInParam,NET_OUT_GET_COM_PORT_DEVICE_CHANNEL_INFO* pOutParam,int nWaitTime);
  31794. ////////////////////////////// 大屏控制 ////////////////////////////////////////
  31795. ///@brief CLIENT_OpenSplitWindow接口输入参数(开窗)
  31796. typedef struct tagDH_IN_SPLIT_OPEN_WINDOW
  31797. {
  31798. DWORD dwSize;
  31799. int nChannel; // 通道号(屏号)
  31800. DH_RECT stuRect; // 窗口位置, 0~8191
  31801. BOOL bDirectable; // 坐标是否满足直通条件, 直通是指拼接屏方式下,此窗口区域正好为物理屏区域
  31802. } DH_IN_SPLIT_OPEN_WINDOW;
  31803. ///@brief CLIENT_OpenSplitWindow接口输出参数(开窗)
  31804. typedef struct tagDH_OUT_SPLIT_OPEN_WINDOW
  31805. {
  31806. DWORD dwSize;
  31807. unsigned int nWindowID; // 窗口序号
  31808. unsigned int nZOrder; // 窗口次序
  31809. } DH_OUT_SPLIT_OPEN_WINDOW;
  31810. ///@brief CLIENT_CloseSplitWindow接口输入参数(关窗)
  31811. typedef struct tagDH_IN_SPLIT_CLOSE_WINDOW
  31812. {
  31813. DWORD dwSize;
  31814. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  31815. UINT nWindowID; // 窗口序号
  31816. const char* pszCompositeID; // 融合屏ID
  31817. } DH_IN_SPLIT_CLOSE_WINDOW;
  31818. ///@brief CLIENT_CloseSplitWindow接口输出参数(关窗)
  31819. typedef struct tagDH_OUT_SPLIT_CLOSE_WINDOW
  31820. {
  31821. DWORD dwSize;
  31822. } DH_OUT_SPLIT_CLOSE_WINDOW;
  31823. ///@brief CLIENT_SetSplitWindowRect输入参数(设置窗口位置)
  31824. typedef struct tagDH_IN_SPLIT_SET_RECT
  31825. {
  31826. DWORD dwSize;
  31827. int nChannel; // 通道号(屏号)
  31828. UINT nWindowID; // 窗口序号
  31829. DH_RECT stuRect; // 窗口位置, 0~8191
  31830. BOOL bDirectable; // 坐标是否满足直通条件, 直通是指拼接屏方式下,此窗口区域正好为物理屏区域
  31831. } DH_IN_SPLIT_SET_RECT;
  31832. ///@brief CLIENT_SetSplitWindowRect接口输出参数(设置窗口位置)
  31833. typedef struct tagDH_OUT_SPLIT_SET_RECT
  31834. {
  31835. DWORD dwSize;
  31836. } DH_OUT_SPLIT_SET_RECT;
  31837. ///@brief CLIENT_GetSplitWindowRect接口输入参数(获取窗口位置)
  31838. typedef struct tagDH_IN_SPLIT_GET_RECT
  31839. {
  31840. DWORD dwSize;
  31841. int nChannel; // 通道号(屏号)
  31842. UINT nWindowID; // 窗口序号
  31843. } DH_IN_SPLIT_GET_RECT;
  31844. ///@brief CLIENT_GetSplitWindowRect接口输出参数(获取窗口位置)
  31845. typedef struct tagDH_OUT_SPLIT_GET_RECT
  31846. {
  31847. DWORD dwSize;
  31848. DH_RECT stuRect; // 窗口位置, 0~8191
  31849. } DH_OUT_SPLIT_GET_RECT;
  31850. ///@brief CLIENT_SetSplitWindowLevels接口输入参数(设置窗口次序)
  31851. typedef struct tagDH_IN_SPLIT_SET_TOP_WINDOW
  31852. {
  31853. DWORD dwSize;
  31854. int nChannel; // 通道号(屏号)
  31855. int nWindowID; // 窗口序号
  31856. } DH_IN_SPLIT_SET_TOP_WINDOW;
  31857. ///@brief CLIENT_SetSplitWindowLevels接口输出参数(设置窗口次序)
  31858. typedef struct tagDH_OUT_SPLIT_SET_TOP_WINDOW
  31859. {
  31860. DWORD dwSize;
  31861. DH_WND_ZORDER* pZOders; // 窗口次序数组,由用户申请内存,大小为sizeof(DH_WND_ZORDER)*nMaxWndCount
  31862. int nMaxWndCount; // 窗口次序数组大小
  31863. int nWndCount; // 返回的窗口数量
  31864. } DH_OUT_SPLIT_SET_TOP_WINDOW;
  31865. ///@brief CLIENT_SetDisplayMode接口输入参数(电视墙显示模式设置)
  31866. typedef struct tagDH_IN_WM_SET_DISPLAY_MODE
  31867. {
  31868. DWORD dwSize;
  31869. int nMonitorWallID; // 电视墙序号
  31870. const char* pszBlockID; // 区块ID, NULL/""-所有区块
  31871. int nTVID; // 显示单元序号, -1表示区块中所有显示单元
  31872. UINT nDisplayMode; // 显示模式, 0-标准, 1-高亮, 2-节能
  31873. } DH_IN_WM_SET_DISPLAY_MODE;
  31874. ///@brief CLIENT_SetDisplayMode接口输出参数(电视墙显示模式设置)
  31875. typedef struct tagDH_OUT_WM_SET_DISPLAY_MODE
  31876. {
  31877. DWORD dwSize;
  31878. } DH_OUT_WM_SET_DISPLAY_MODE;
  31879. ///@brief 区块中所有显示单元的显示模式
  31880. typedef struct tagDH_BLOCK_DISPLAY_MODE
  31881. {
  31882. DWORD dwSize;
  31883. int* pTVModes; // TV显示模式数组
  31884. int nMaxTVCount; // TV显示模式数组大小
  31885. int nRetTVCount; // 实际TV数量
  31886. } DH_BLOCK_DISPLAY_MODE;
  31887. ///@brief CLIENT_GetDisplayMode接口的输入参数(获取电视墙显示模式)
  31888. typedef struct tagDH_IN_WM_GET_DISPLAY_MODE
  31889. {
  31890. DWORD dwSize;
  31891. int nMonitorWallID; // 电视墙序号
  31892. const char* pszBlockID; // 区块ID, NULL/""-所有区块
  31893. int nTVID; // 显示单元序号, -1表示区块中所有显示单元
  31894. } DH_IN_WM_GET_DISPLAY_MODE;
  31895. ///@brief CLIENT_GetDisplayMode接口的输出参数(获取电视墙显示模式)
  31896. typedef struct tagDH_OUT_WM_GET_DISPLAY_MODE
  31897. {
  31898. DWORD dwSize;
  31899. DH_BLOCK_DISPLAY_MODE* pBlockModes; // 区块显示模式数组,由用户申请内存,大小为sizeof(DH_BLOCK_DISPLAY_MODE)*nMaxBlockCount
  31900. int nMaxBlockCount; // 区块显示模式数组大小
  31901. int nRetBlockCount; // 实际区块数量
  31902. } DH_OUT_WM_GET_DISPLAY_MODE;
  31903. ///@brief CLIENT_PowerControl接口输入参数(电视墙电源控制)
  31904. typedef struct tagDH_IN_WM_POWER_CTRL
  31905. {
  31906. DWORD dwSize;
  31907. int nMonitorWallID; // 电视墙序号
  31908. const char* pszBlockID; // 区块ID, NULL/""-所有区块
  31909. int nTVID; // 显示单元序号, -1表示区块中所有显示单元
  31910. BOOL bPowerOn; // 是否打开电源
  31911. } DH_IN_WM_POWER_CTRL;
  31912. ///@brief CLIENT_PowerControl接口输出参数(电视墙电源控制)
  31913. typedef struct tagDH_OUT_WM_POWER_CTRL
  31914. {
  31915. DWORD dwSize;
  31916. } DH_OUT_WM_POWER_CTRL;
  31917. ///@brief CLIENT_LoadMonitorWallCollection接口输入参数(载入电视墙预案)
  31918. typedef struct tagDH_IN_WM_LOAD_COLLECTION
  31919. {
  31920. DWORD dwSize;
  31921. int nMonitorWallID; // 电视墙序号
  31922. const char* pszName; // 预案名称
  31923. } DH_IN_WM_LOAD_COLLECTION;
  31924. ///@brief CLIENT_LoadMonitorWallCollection接口输出参数(载入电视墙预案)
  31925. typedef struct tagDH_OUT_WM_LOAD_COLLECTION
  31926. {
  31927. DWORD dwSize;
  31928. } DH_OUT_WM_LOAD_COLLECTION;
  31929. ///@brief 预案类型
  31930. typedef enum tagEM_SAVE_COLLECTION_TYPE
  31931. {
  31932. EM_SAVE_COLLECTION_UNKNOWN, // 未知
  31933. EM_SAVE_COLLECTION_VIDEO, // 视频预案
  31934. EM_SAVE_COLLECTION_ADDITIONAL, // 附加预案
  31935. }EM_SAVE_COLLECTION_TYPE;
  31936. ///@brief CLIENT_SaveMonitorWallCollection接口输入参数(保存电视墙预案)
  31937. typedef struct tagDH_IN_WM_SAVE_COLLECTION
  31938. {
  31939. DWORD dwSize;
  31940. int nMonitorWallID; // 电视墙序号
  31941. const char* pszName; // 预案名称
  31942. const char* pszControlID; // 控制id
  31943. BYTE bReserverd[4]; // 保留字节,用于字节对齐
  31944. EM_SAVE_COLLECTION_TYPE emType; // 预案类型
  31945. } DH_IN_WM_SAVE_COLLECTION;
  31946. ///@brief CLIENT_SaveMonitorWallCollection接口输出参数(保存电视墙预案)
  31947. typedef struct tagDH_OUT_WM_SAVE_COLLECTION
  31948. {
  31949. DWORD dwSize;
  31950. } DH_OUT_WM_SAVE_COLLECTION;
  31951. ///@brief CLIENT_RenameMonitorWallCollection接口输入参数(预案重命名)
  31952. typedef struct tagDH_IN_WM_RENAME_COLLECTION
  31953. {
  31954. DWORD dwSize;
  31955. int nMonitorWallID; // 电视墙序号
  31956. const char* pszOldName; // 原名称
  31957. const char* pszNewName; // 新名称
  31958. } DH_IN_WM_RENAME_COLLECTION;
  31959. ///@brief CLIENT_RenameMonitorWallCollection接口输出参数(预案重命名)
  31960. typedef struct tagDH_OUT_WM_RENAME_COLLECTION
  31961. {
  31962. DWORD dwSize;
  31963. } DH_OUT_WM_RENAME_COLLECTION;
  31964. ///@brief 设备详细信息
  31965. typedef struct tagNET_MONITOR_WALL_DEVICE_INFO
  31966. {
  31967. char szName[64]; // 机器名称
  31968. char szPassword[64]; // 密码
  31969. char szUserName[64]; // 用户名
  31970. UINT nPort; // 端口
  31971. char byReserverd[256]; // 保留字节
  31972. }NET_MONITOR_WALL_DEVICE_INFO;
  31973. ///@brief 区块窗口信息
  31974. typedef struct tagDH_WINDOW_COLLECTION
  31975. {
  31976. DWORD dwSize;
  31977. int nWindowID; // 窗口ID
  31978. BOOL bWndEnable; // 窗口是否有效
  31979. DH_RECT stuRect; // 窗口区域, 自由分割模式下有效
  31980. BOOL bDirectable; // 坐标是否满足直通条件
  31981. int nZOrder; // 窗口Z次序
  31982. BOOL bSrcEnable; // 显示源是否有效
  31983. char szDeviceID[DH_DEV_ID_LEN_EX]; // 设备ID
  31984. int nVideoChannel; // 视频通道号
  31985. int nVideoStream; // 视频码流类型
  31986. int nAudioChannel; // 音频通道
  31987. int nAudioStream; // 音频码流类型
  31988. int nUniqueChannel; // 设备内统一编号的唯一通道号
  31989. NET_MONITOR_WALL_DEVICE_INFO stuDeviceInfo; // 设备详细信息
  31990. int nInterval; // 轮巡时间间隔,单位秒 (窗口轮巡有效,否则忽略)
  31991. } DH_WINDOW_COLLECTION;
  31992. ///@brief 拼接区底图信息
  31993. typedef struct tagNET_SCREEEN_BACKGROUD
  31994. {
  31995. BOOL bEnable; // 底图是否开启
  31996. char szName[130]; // 底图名称,底图是已经上传的文件,不带路径名称
  31997. BYTE byReserved[130]; // 保留字节用
  31998. } NET_SCREEEN_BACKGROUD;
  31999. ///@brief 区块收藏
  32000. typedef struct tagDH_BLOCK_COLLECTION
  32001. {
  32002. DWORD dwSize;
  32003. DH_SPLIT_MODE emSplitMode; // 分割模式
  32004. DH_WINDOW_COLLECTION stuWnds[DH_MAX_SPLIT_WINDOW]; // 窗口信息数组
  32005. int nWndsCount; // 窗口数量
  32006. char szName[DH_DEVICE_NAME_LEN]; // 收藏夹名称
  32007. int nScreen; // 输出通道号, 包括拼接屏
  32008. char szCompositeID[DH_DEV_ID_LEN_EX]; // 拼接屏ID
  32009. DH_WINDOW_COLLECTION* pstuWndsEx; // 窗口信息数组指针, 由用户分配内存. 当stuWnds数组大小不够用时可以使用
  32010. int nMaxWndsCountEx; // 最大窗口数量, 用户填写. pstuWndsEx数组的元素个数
  32011. int nRetWndsCountEx; // 返回窗口数量
  32012. int nSplitOsdCount; // OSD的个数
  32013. NET_SPLIT_OSD stuSplitOsd[20]; // 拼接区OSD叠加信息,
  32014. NET_SCREEEN_BACKGROUD stuScreenBackground; // 拼接区底图信息,目前仅预案获取时使用
  32015. } DH_BLOCK_COLLECTION;
  32016. ///@brief 电视墙输出模式信息
  32017. typedef struct tagNET_MONITOR_WALL_OUT_MODE_INFO
  32018. {
  32019. int nWidth; // 水平分辨率
  32020. int nHeight; // 垂直分辨率
  32021. BYTE byReserved[256]; // 保留字节
  32022. }NET_MONITOR_WALL_OUT_MODE_INFO;
  32023. ///@brief 电视墙显示单元
  32024. typedef struct tagDH_MONITORWALL_OUTPUT
  32025. {
  32026. DWORD dwSize;
  32027. char szDeviceID[DH_DEV_ID_LEN]; // 设备ID, 本机时为""
  32028. int nChannel; // 通道号
  32029. char szName[DH_DEV_NAME_LEN]; // 屏幕名称
  32030. BOOL bIsVirtual; // 是否是虚拟屏(虚拟屏表示在本设备上不存在的屏)TRUE:虚拟屏 FALSE:非虚拟屏
  32031. char szAddress[40]; // 归属设备地址IP
  32032. NET_MONITOR_WALL_OUT_MODE_INFO stuOutMode; // 输出模式信息
  32033. } DH_MONITORWALL_OUTPUT;
  32034. ///@brief 电视墙显示区块
  32035. typedef struct tagDH_MONITORWALL_BLOCK
  32036. {
  32037. DWORD dwSize;
  32038. char szName[DH_DEV_NAME_LEN]; // 区块名称
  32039. char szCompositeID[DH_DEV_ID_LEN]; // 拼接屏ID
  32040. char szControlID[DH_DEV_ID_LEN]; // 控制ID
  32041. int nSingleOutputWidth; // 单个显示单元所占的网格列数
  32042. int nSingleOutputHeight; // 单个显示单元所占的网格行数
  32043. DH_RECT stuRect; // 区域坐标
  32044. DH_TSECT stuPowerSchedule[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 开机时间表, 第一维各元素表示周日~周六和节假日
  32045. DH_MONITORWALL_OUTPUT* pstuOutputs; // 显示单元数组, 用户分配内存
  32046. int nMaxOutputCount; // 显示单元数组大小, 用户填写
  32047. int nRetOutputCount; // 返回的显示单元数量
  32048. char szBlockType[DH_COMMON_STRING_32]; // 显示单元组类型,为支持由接收卡组成单元的小间距LED区块而增加该字段,其他类型的区块填写为"LCD",如不存在该字段,默认采用LCD
  32049. int nOutputDelay; // 输出延迟,单位:毫秒
  32050. } DH_MONITORWALL_BLOCK;
  32051. ///@brief 电视墙配置
  32052. typedef struct tagDH_MONITORWALL
  32053. {
  32054. DWORD dwSize;
  32055. char szName[DH_DEV_NAME_LEN]; // 名称
  32056. int nGridLine; // 网格行数
  32057. int nGridColume; // 网格列数
  32058. DH_MONITORWALL_BLOCK* pstuBlocks; // 显示区块数组, 用户分配内存
  32059. int nMaxBlockCount; // 显示区块数组大小, 用户填写
  32060. int nRetBlockCount; // 返回的显示区块数量
  32061. BOOL bDisable; // 是否禁用, 0-该电视墙有效, 1-该电视墙无效
  32062. char szDesc[DH_COMMON_STRING_256]; // 电视墙描述信息
  32063. } DH_MONITORWALL;
  32064. ///@brief 电视墙预案
  32065. typedef struct tagDH_MONITORWALL_COLLECTION
  32066. {
  32067. DWORD dwSize;
  32068. char szName[DH_DEVICE_NAME_LEN]; // 电视墙预案名称
  32069. DH_BLOCK_COLLECTION stuBlocks[DH_MAX_BLOCK_NUM]; // 区块数组
  32070. int nBlocksCount; // 区块数量
  32071. char szControlID[DH_DEV_ID_LEN_EX]; // 控制ID
  32072. DH_MONITORWALL stuMonitorWall; // 电视墙配置
  32073. EM_SAVE_COLLECTION_TYPE emType; // 预案类型
  32074. BYTE byReserved[4]; // 保留字节用,于字节对齐
  32075. } DH_MONITORWALL_COLLECTION;
  32076. ///@brief CLIENT_GetMonitorWallCollections接口输入参数(获取电视墙预案信息)
  32077. typedef struct tagDH_IN_WM_GET_COLLECTIONS
  32078. {
  32079. DWORD dwSize;
  32080. int nMonitorWallID; // 电视墙ID
  32081. } DH_IN_WM_GET_COLLECTIONS;
  32082. ///@brief CLIENT_GetMonitorWallCollections接口输出参数(获取电视墙预案信息)
  32083. typedef struct tagDH_OUT_WM_GET_COLLECTIONS
  32084. {
  32085. DWORD dwSize;
  32086. DH_MONITORWALL_COLLECTION* pCollections; // 电视墙预案数组
  32087. int nMaxCollectionsCount; // 电视墙预案数组大小
  32088. int nCollectionsCount; // 电视墙预案数量
  32089. } DH_OUT_WM_GET_COLLECTIONS;
  32090. ///@brief CLIENT_GetSplitWindowsInfo接口输入参数
  32091. typedef struct tagDH_IN_SPLIT_GET_WINDOWS
  32092. {
  32093. DWORD dwSize;
  32094. int nChannel; // 通道号
  32095. } DH_IN_SPLIT_GET_WINDOWS;
  32096. ///@brief CLIENT_GetSplitWindowsInfo接口输出参数
  32097. typedef struct tagDH_OUT_SPLIT_GET_WINDOWS
  32098. {
  32099. DWORD dwSize;
  32100. DH_BLOCK_COLLECTION stuWindows; // 窗口信息
  32101. } DH_OUT_SPLIT_GET_WINDOWS;
  32102. ///@brief CLIENT_LoadSplitCollection接口输入参数(载入收藏)
  32103. typedef struct tagDH_IN_SPLIT_LOAD_COLLECTION
  32104. {
  32105. DWORD dwSize;
  32106. int nChannel; // 输出通道号
  32107. const char* pszName; // 收藏夹名称
  32108. } DH_IN_SPLIT_LOAD_COLLECTION;
  32109. ///@brief CLIENT_LoadSplitCollection接口输出参数(载入收藏)
  32110. typedef struct tagDH_OUT_SPLIT_LOAD_COLLECTION
  32111. {
  32112. DWORD dwSize;
  32113. } DH_OUT_SPLIT_LOAD_COLLECTION;
  32114. ///@brief CLIENT_SaveSplitCollection接口输入参数(保存收藏)
  32115. typedef struct tagDH_IN_SPLIT_SAVE_COLLECTION
  32116. {
  32117. DWORD dwSize;
  32118. int nChannel; // 输出通道号
  32119. const char* pszName; // 收藏夹名称
  32120. } DH_IN_SPLIT_SAVE_COLLECTION;
  32121. ///@brief CLIENT_SaveSplitCollection接口输出参数(保存收藏)
  32122. typedef struct tagDH_OUT_SPLIT_SAVE_COLLECTION
  32123. {
  32124. DWORD dwSize;
  32125. } DH_OUT_SPLIT_SAVE_COLLECTION;
  32126. ///@brief CLIENT_RenameSplitCollection接口输入参数(收藏重命名)
  32127. typedef struct tagDH_IN_SPLIT_RENAME_COLLECTION
  32128. {
  32129. DWORD dwSize;
  32130. int nChannel; // 输出通道号
  32131. const char* pszOldName; // 原名称
  32132. const char* pszNewName; // 新名称
  32133. } DH_IN_SPLIT_RENAME_COLLECTION;
  32134. ///@brief CLIENT_RenameSplitCollection接口输出参数(收藏重命名)
  32135. typedef struct tagDH_OUT_SPLIT_RENAME_COLLECTION
  32136. {
  32137. DWORD dwSize;
  32138. } DH_OUT_SPLIT_RENAME_COLLECTION;
  32139. ///@brief CLIENT_GetSplitCollections接口输入参数(获取收藏夹信息)
  32140. typedef struct tagDH_IN_SPLIT_GET_COLLECTIONS
  32141. {
  32142. DWORD dwSize;
  32143. int nChannel; // 输出通道号
  32144. } DH_IN_SPLIT_GET_COLLECTIONS;
  32145. ///@brief CLIENT_GetSplitCollections接口输出参数(获取收藏夹信息)
  32146. typedef struct tagDH_OUT_SPLIT_GET_COLLECTIONS
  32147. {
  32148. DWORD dwSize;
  32149. DH_BLOCK_COLLECTION* pCollections; // 收藏夹数组,由用户申请内存,大小为sizeof(DH_BLOCK_COLLECTION)*nMaxCollectionsCount
  32150. int nMaxCollectionsCount; // 收藏夹数组大小
  32151. int nCollectionsCount; // 返回的收藏夹数量
  32152. } DH_OUT_SPLIT_GET_COLLECTIONS;
  32153. ///@brief CLIENT_DeleteSplitCollection接口的输入参数(删除收藏夹)
  32154. typedef struct tagDH_IN_SPLIT_DELETE_COLLECTION
  32155. {
  32156. DWORD dwSize;
  32157. int nChannel; // 输出通道号
  32158. const char** ppszNames; // 收藏夹名称数组
  32159. int nNameCount; // 收藏夹名称数组大小
  32160. } DH_IN_SPLIT_DELETE_COLLECTION;
  32161. ///@brief CLIENT_DeleteSplitCollection接口的输出参数(删除收藏夹)
  32162. typedef struct tagDH_OUT_SPLIT_DELETE_COLLECTION
  32163. {
  32164. DWORD dwSize;
  32165. } DH_OUT_SPLIT_DELETE_COLLECTION;
  32166. ///@brief 融合屏通道信息
  32167. typedef struct tagDH_COMPOSITE_CHANNEL
  32168. {
  32169. DWORD dwSize;
  32170. char szMonitorWallName[DH_DEVICE_NAME_LEN]; // 电视墙名称
  32171. char szCompositeID[DH_DEV_ID_LEN_EX]; // 融合屏ID
  32172. int nVirtualChannel; // 虚拟通道号
  32173. } DH_COMPOSITE_CHANNEL;
  32174. ///@brief 轮巡使能配置
  32175. typedef struct tagDHDEV_TOUR_ENABLE
  32176. {
  32177. DWORD dwSize;
  32178. BOOL bEnable; // 轮巡使能
  32179. BOOL bStart; // 是否正在轮巡(只读). 轮巡使能打开但没有配置轮巡输入源时, bStart=FALSE
  32180. } DHDEV_TOUR_ENABLE_CFG;
  32181. ///@brief CLIENT_SetDecodePolicy接口输入参数(设置解码策略)
  32182. typedef struct tagDH_IN_SET_DEC_POLICY
  32183. {
  32184. DWORD dwSize;
  32185. int nChannel; // 通道号
  32186. int nWindow; // 窗口号, -1表示通道内所有窗口
  32187. int nPolicyLevel; // 解码策略等级, 共5档(-2, -1, 0, 1, 2), 值越大越流畅但延迟越大
  32188. // -2表示实时性最好, 2表示流畅性最好, 0默认
  32189. } DH_IN_SET_DEC_POLICY;
  32190. ///@brief CLIENT_SetDecodePolicy接口输出参数(设置解码策略)
  32191. typedef struct tagDH_OUT_SET_DEC_POLICY
  32192. {
  32193. DWORD dwSize;
  32194. } DH_OUT_SET_DEC_POLICY;
  32195. ///@brief CLIENT_GetDecodePolicy接口输入参数(获取解码策略)
  32196. typedef struct tagDH_IN_GET_DEC_POLICY
  32197. {
  32198. DWORD dwSize;
  32199. int nChannel; // 通道号
  32200. int nWindow; // 窗口号, -1表示通道内所有窗口
  32201. } DH_IN_GET_DEC_POLICY;
  32202. ///@brief CLIENT_GetDecodePolicy接口输出参数(获取解码策略)
  32203. typedef struct tagDH_OUT_GET_DEC_POLICY
  32204. {
  32205. DWORD dwSize;
  32206. int nPolicyLevel; // 解码策略等级, 共5档(-2, -1, 0, 1, 2), 值越大越流畅但延迟越大
  32207. // -2表示实时性最好, 2表示流畅性最好, 0默认
  32208. } DH_OUT_GET_DEC_POLICY;
  32209. ///@brief 音频输出模式
  32210. typedef enum
  32211. {
  32212. DH_AUDIO_AUTO, // 自动切换音频输出, 只有一个音频窗口
  32213. DH_AUDIO_DISABLE, // 禁止所有音频输出
  32214. DH_AUDIO_FORCE, // 强制输出用户指定的某个窗口的音频, 只有一个音频窗口
  32215. DH_AUDIO_ENABLE_ONE, // 开启指定窗口音频, 可以有多路音频输出
  32216. DH_AUDIO_DISABLE_ONE, // 关闭指定窗口音频, 可以有多路音频输出
  32217. DH_AUDIO_MULTI, // 多路音频输出, 查询时可用, 设置时该值无效
  32218. } DH_AUDIO_OUTPUT_MODE;
  32219. ///@brief CLIENT_SetSplitAudioOuput接口输入参数(设置音频输出模式)
  32220. typedef struct tagDH_IN_SET_AUDIO_OUTPUT
  32221. {
  32222. DWORD dwSize;
  32223. int nChannel; // 通道号
  32224. DH_AUDIO_OUTPUT_MODE emMode; // 音频输出模式
  32225. int nWindow; // 输出窗口号, emMode为DH_AUDIO_FORCE/DH_AUDIO_ENABLE_ONE/DH_AUDIO_DISABLE_ONE时有效, 指定输出音频的窗口号
  32226. } DH_IN_SET_AUDIO_OUTPUT;
  32227. ///@brief CLIENT_SetSplitAudioOuput接口输出参数(设置音频输出模式)
  32228. typedef struct tagDH_OUT_SET_AUDIO_OUTPUT
  32229. {
  32230. DWORD dwSize;
  32231. } DH_OUT_SET_AUDIO_OUTPUT;
  32232. ///@brief CLIENT_GetSplitAudioOuput接口输入参数(获取音频输出模式)
  32233. typedef struct tagDH_IN_GET_AUDIO_OUTPUT
  32234. {
  32235. DWORD dwSize;
  32236. int nChannel; // 通道号
  32237. } DH_IN_GET_AUDIO_OUTPUT;
  32238. ///@brief CLIENT_GetSplitAudioOuput接口输出参数(获取音频输出模式)
  32239. typedef struct tagDH_OUT_GET_AUDIO_OUTPUT
  32240. {
  32241. DWORD dwSize;
  32242. DH_AUDIO_OUTPUT_MODE emMode; // 音频输出模式
  32243. int nWindow; // 输出窗口号, emMode为DH_AUDIO_FORCE时有效
  32244. int* pMultiWindows; // 输出窗口号列表, emMode为DH_AUDIO_MULTI时有效, 用户分配内存,大小为sizeof(int)*nMaxMultiWindowCount
  32245. int nMaxMultiWindowCount; // 输出窗口号列表最大数量, 用户填写
  32246. int nRetMultiWindowCount; // 输出窗口号数量, emMode为DH_AUDIO_MULTI时有效
  32247. } DH_OUT_GET_AUDIO_OUTPUT;
  32248. ///@brief CLIENT_GetEncodePlan 接口输入参数(获取刻录光盘时使用的编码参数)
  32249. typedef struct tagDH_IN_GET_ENCODE_PLAN
  32250. {
  32251. DWORD dwSize;
  32252. unsigned int nChannel; // 指定要获取的编码通道号
  32253. unsigned int nExpectTime; // 业务预期时长 整型,单位:分钟
  32254. unsigned int nCapacity; // 可用的设备容量,整型,单位:M
  32255. }DH_IN_GET_ENCODE_PLAN;
  32256. ///@brief CLIENT_GetEncodePlan 接口输出参数(获取刻录光盘时使用的编码参数)
  32257. typedef struct tagDH_OUT_GET_ENCODE_PLAN
  32258. {
  32259. DWORD dwSize;
  32260. int nResolutionType; // emResolutionTypes成员个数
  32261. CAPTURE_SIZE emResolutionTypes[DH_MAX_CAPTURE_SIZE_NUM];// 视频分辨率范围
  32262. CAPTURE_SIZE emResolution; // 推荐视频分辨率
  32263. unsigned int nBitRate; // 视频固定码流值
  32264. }DH_OUT_GET_ENCODE_PLAN;
  32265. ///@brief CLIENT_GetEncodePlanByResolution 接口输入参数(根据指定的光盘容量和分辨率码率计算业务时长)
  32266. typedef struct tagNET_IN_GET_ENCODEPLANE_BY_RESOLUTION
  32267. {
  32268. DWORD dwSize;
  32269. unsigned int nChannel; // 指定要获取的编码通道号
  32270. CAPTURE_SIZE emResolution; // 视频分辨率
  32271. unsigned int nBitRate; // 视频码流值
  32272. unsigned int nCapacity; // 可用的设备容量
  32273. } NET_IN_GET_ENCODEPLANE_BY_RESOLUTION;
  32274. ///@brief CLIENT_GetEncodePlanByResolution 接口输出参数(根据指定的光盘容量和分辨率码率计算业务时长)
  32275. typedef struct tagNET_OUT_GET_ENCODEPLANE_BY_RESOLUTION
  32276. {
  32277. DWORD dwSize;
  32278. unsigned int nExpectTime; // 业务预期时长
  32279. } NET_OUT_GET_ENCODEPLANE_BY_RESOLUTION;
  32280. ///@brief 组织目录逻辑对象
  32281. typedef struct tagDH_ORGANIZATION_NODE_LOGIC_OBJECT
  32282. {
  32283. DWORD dwSize;
  32284. char szName[DH_NODE_NAME_LEN]; // 名称
  32285. char szType[DH_DEV_TYPE_LEN]; // 类型
  32286. char szDevID[DH_DEV_ID_LEN_EX]; // 设备ID
  32287. char szControlID[DH_DEV_ID_LEN_EX]; // 控制ID, 只读
  32288. int nChannel; // 通道号
  32289. } DH_ORGANIZATION_NODE_LOGIC_OBJECT;
  32290. ///@brief 组织目录
  32291. typedef struct tagDH_ORGANIZATION_NODE_DIRECTORY
  32292. {
  32293. DWORD dwSize;
  32294. char szName[DH_NODE_NAME_LEN]; // 名称
  32295. char szControlID[DH_DEV_ID_LEN_EX]; // 控制ID
  32296. } DH_ORGANIZATION_NODE_DIRECTORY;
  32297. ///@brief 组织目录节点信息
  32298. typedef struct tagDH_ORGANIZATION_NODE
  32299. {
  32300. DWORD dwSize;
  32301. int nNodeType; // 节点类型, 0-逻辑对象, 1-目录
  32302. DH_ORGANIZATION_NODE_LOGIC_OBJECT stuLogicObject; // 逻辑对象, nNodeType==0时有效
  32303. DH_ORGANIZATION_NODE_DIRECTORY stuDirectory; // 目录, nNodeType==1时有效
  32304. } DH_ORGANIZATION_NODE;
  32305. ///@brief 增加节点参数
  32306. typedef struct tagDH_ORGANIZATION_ADD_NODE_PARAM
  32307. {
  32308. DWORD dwSize;
  32309. int nPosition; // 插入位置, -1-开始, -2-末尾, 0~n
  32310. DH_ORGANIZATION_NODE stuNode; // 节点信息
  32311. } DH_ORGANIZATION_ADD_NODE_PARAM;
  32312. ///@brief CLIENT_OrganizationAddNodes接口的输入参数(增加节点)
  32313. typedef struct tagDH_IN_ORGANIZATION_ADD_NODES
  32314. {
  32315. DWORD dwSize;
  32316. char* pszPath; // 路径
  32317. DH_ORGANIZATION_ADD_NODE_PARAM* pstuNodes; // 节点信息数组指针,由用户申请内存,大小为sizeof(DH_ORGANIZATION_ADD_NODE_PARAM)*nNodeCount
  32318. int nNodeCount; // 节点数量
  32319. } DH_IN_ORGANIZATION_ADD_NODES;
  32320. ///@brief 增加节点的结果
  32321. typedef struct tagDH_ORGANIZATION_ADD_NODE_RESULT
  32322. {
  32323. DWORD dwSize;
  32324. BOOL bResult; // 结果
  32325. char szPath[MAX_PATH]; // 路径, 成功返回node路径,失败返回添加node时的路径
  32326. } DH_ORGANIZATION_ADD_NODE_RESULT;
  32327. ///@brief CLIENT_OrganizationAddNodes接口的输出参数(增加节点)
  32328. typedef struct tagDH_OUT_ORGANIZATION_ADD_NODES
  32329. {
  32330. DWORD dwSize;
  32331. DH_ORGANIZATION_ADD_NODE_RESULT* pstuResults; // 结果数组指针
  32332. int nMaxResultCount; // 结果数组大小
  32333. int nRetResultCount; // 返回的结果数量
  32334. } DH_OUT_ORGANIZATION_ADD_NODES;
  32335. ///@brief 节点路径
  32336. typedef struct tagDH_ORGANIZATION_NODE_PATH
  32337. {
  32338. DWORD dwSize;
  32339. char szPath[MAX_PATH]; // 路径
  32340. } DH_ORGANIZATION_NODE_PATH;
  32341. ///@brief CLIENT_OrganizationDeleteNodes接口的输入参数(删除节点)
  32342. typedef struct tagDH_IN_ORGANIZATION_DELETE_NODES
  32343. {
  32344. DWORD dwSize;
  32345. DH_ORGANIZATION_NODE_PATH* pstuPath; // 节点路径数组,由用户申请内存,大小为sizeof(DH_ORGANIZATION_NODE_PATH)*nPathCount
  32346. int nPathCount; // 节点数量
  32347. } DH_IN_ORGANIZATION_DELETE_NODES;
  32348. ///@brief CLIENT_OrganizationDeleteNodes接口的输出参数(删除节点)
  32349. typedef struct tagDH_OUT_ORGANIZATION_DELETE_NODES
  32350. {
  32351. DWORD dwSize;
  32352. } DH_OUT_ORGANIZATION_DELETE_NODES;
  32353. ///@brief CLIENT_OrganizationGetNodes接口的输入参数(获取节点信息)
  32354. typedef struct tagDH_IN_ORGANIZATION_GET_NODES
  32355. {
  32356. DWORD dwSize;
  32357. char* pszPath; // 路径
  32358. int nLevel; // 级别, 0-本级, 1-下一级
  32359. } DH_IN_ORGANIZATION_GET_NODES;
  32360. ///@brief CLIENT_OrganizationGetNodes接口的输出参数(获取节点信息)
  32361. typedef struct tagDH_OUT_ORGANIZATION_GET_NODES
  32362. {
  32363. DWORD dwSize;
  32364. DH_ORGANIZATION_NODE* pstuNodes; // 节点数组, 用户分配内存,大小为sizeof(DH_ORGANIZATION_NODE)*nMaxNodeCount
  32365. int nMaxNodeCount; // 节点数组大小
  32366. int nRetNodeCount; // 返回的节点数量
  32367. } DH_OUT_ORGANIZATION_GET_NODES;
  32368. ///@brief CLIENT_OrganizationSetNode接口的输入参数(设置节点)
  32369. typedef struct tagDH_IN_ORGANIZATION_SET_NODE
  32370. {
  32371. DWORD dwSize;
  32372. char* pszPath; // 路径
  32373. DH_ORGANIZATION_NODE stuNode; // 节点信息
  32374. } DH_IN_ORGANIZATION_SET_NODE;
  32375. ///@brief CLIENT_OrganizationSetNode接口的输出参数(设置节点)
  32376. typedef struct tagDH_OUT_ORGANIZATION_SET_NODE
  32377. {
  32378. DWORD dwSize;
  32379. } DH_OUT_ORGANIZATION_SET_NODE;
  32380. ///@brief 指码流传输的服务类型
  32381. typedef enum tagEM_STREAM_TRANSMISSION_SERVICE_TYPE
  32382. {
  32383. EM_STREAM_TRANSMISSION_SERVICE_TYPE_UNKNOWN, // 未知
  32384. EM_STREAM_TRANSMISSION_SERVICE_TYPE_TCP, // TCP
  32385. EM_STREAM_TRANSMISSION_SERVICE_TYPE_UDP, // UDP
  32386. EM_STREAM_TRANSMISSION_SERVICE_TYPE_MCAST, // MCAST
  32387. EM_STREAM_TRANSMISSION_SERVICE_TYPE_AUTO, // AUTO
  32388. } EM_STREAM_TRANSMISSION_SERVICE_TYPE;
  32389. ///@brief 视频输入通道信息
  32390. typedef struct tagDH_VIDEO_INPUTS
  32391. {
  32392. DWORD dwSize;
  32393. char szChnName[DH_DEVICE_NAME_LEN]; // 通道名称
  32394. BOOL bEnable; // 使能
  32395. char szControlID[DH_DEV_ID_LEN_EX]; // 控制ID
  32396. char szMainStreamUrl[MAX_PATH]; // 主码流url地址
  32397. char szExtraStreamUrl[MAX_PATH]; // 辅码流url地址
  32398. int nOptionalMainUrlCount; // 备用主码流地址数量
  32399. char szOptionalMainUrls[DH_MAX_OPTIONAL_URL_NUM][MAX_PATH]; // 备用主码流地址列表
  32400. int nOptionalExtraUrlCount; // 备用辅码流地址数量
  32401. char szOptionalExtraUrls[DH_MAX_OPTIONAL_URL_NUM][MAX_PATH]; // 备用辅码流地址列表
  32402. char szCaption[32]; // 通道备注
  32403. EM_STREAM_TRANSMISSION_SERVICE_TYPE emServiceType; // 指码流传输的服务类型
  32404. NET_SOURCE_STREAM_ENCRYPT stuSourceStreamEncrypt; // 码流加密方式
  32405. } DH_VIDEO_INPUTS;
  32406. ///@brief 远程设备信息扩展
  32407. typedef struct tagNET_REMOTE_DEVICE_EX
  32408. {
  32409. char szPwdEx2[128]; // 密码
  32410. BOOL bUsePwdEx2; // 是否使用szPwdEx2密码
  32411. char szIpEx[64]; // IP
  32412. BOOL bUseIpEx; // 是否使用szIpEx IP
  32413. char szReserved[952]; // 保留字节
  32414. }NET_REMOTE_DEVICE_EX;
  32415. ///@brief 远程设备信息
  32416. typedef struct tagDH_REMOTE_DEVICE
  32417. {
  32418. DWORD dwSize;
  32419. BOOL bEnable; // 使能
  32420. char szIp[DH_MAX_IPADDR_LEN]; // IP
  32421. char szUser[DH_USER_NAME_LENGTH]; // 用户名,建议使用szUserEx
  32422. char szPwd[DH_USER_PSW_LENGTH]; // 密码,建议使用szPwdEx
  32423. int nPort; // 端口
  32424. int nDefinition; // 清晰度, 0-标清, 1-高清
  32425. DH_DEVICE_PROTOCOL emProtocol; // 协议类型
  32426. char szDevName[DH_DEVICE_NAME_LEN]; // 设备名称
  32427. int nVideoInputChannels; // 视频输入通道数
  32428. int nAudioInputChannels; // 音频输入通道数
  32429. char szDevClass[DH_DEV_TYPE_LEN]; // 设备类型, 如IPC, DVR, NVR等
  32430. char szDevType[DH_DEV_TYPE_LEN]; // 设备具体型号, 如IPC-HF3300
  32431. int nHttpPort; // Http端口
  32432. int nMaxVideoInputCount; // 视频输入通道最大数
  32433. int nRetVideoInputCount; // 返回实际通道个数
  32434. DH_VIDEO_INPUTS* pstuVideoInputs; // 视频输入通道信息,由用户申请内存,大小为sizeof(DH_VIDEO_INPUTS)*nMaxVideoInputCount
  32435. char szMachineAddress[DH_MAX_CARD_INFO_LEN]; // 设备部署地
  32436. char szSerialNo[DH_SERIALNO_LEN]; // 设备序列号
  32437. int nRtspPort; // Rtsp端口
  32438. /*以下用于新平台扩展*/
  32439. char szUserEx[DH_USER_NAME_LEN_EX]; // 用户名
  32440. char szPwdEx[DH_USER_PSW_LEN_EX]; // 密码,szPwdEx只支持31位密码长度,当密码需要大于等于32位时,使用pstuRemoteDevEx里的szPwdEx2
  32441. char szVendorAbbr[DH_COMMON_STRING_32]; // 厂商缩写
  32442. char szSoftwareVersion[DH_COMMON_STRING_64]; // 设备软件版本
  32443. NET_TIME stuActivationTime; // 启动时间
  32444. char szMac[20]; // MAC地址
  32445. int nHttpsPort; // HttpsPort
  32446. BYTE byReserved[4]; // 保留字段
  32447. NET_REMOTE_DEVICE_EX* pstuRemoteDevEx; // 用于DH_REMOTE_DEVICE新增字段扩展,由用户申请内存,大小为sizeof(NET_REMOTE_DEVICE_EX)
  32448. } DH_REMOTE_DEVICE;
  32449. ///@brief 通道类型
  32450. typedef enum tagNET_LOGIC_CHANNEL_TYPE
  32451. {
  32452. LOGIC_CHN_UNKNOWN, // 未知
  32453. LOGIC_CHN_LOCAL, // 本地通道
  32454. LOGIC_CHN_REMOTE, // 远程通道
  32455. LOGIC_CHN_COMPOSE, // 合成通道, 对于庭审设备包含画中画通道和混音通道
  32456. LOGIC_CHN_MATRIX, // 模拟矩阵通道
  32457. LOGIC_CHN_CASCADE, // 级联通道
  32458. } NET_LOGIC_CHN_TYPE;
  32459. ///@brief 视频码流
  32460. typedef enum tagEM_VIDEO_STREAM
  32461. {
  32462. EM_VIDEO_STREAM_UNKNOWN, // 未知
  32463. EM_VIDEO_STREAM_MAIN, // 主码流
  32464. EM_VIDEO_STREAM_EXTRA1, // 辅码流1
  32465. EM_VIDEO_STREAM_EXTRA2, // 辅码流2
  32466. EM_VIDEO_STREAM_EXTRA3, // 辅码流3
  32467. EM_VIDEO_STREAM_AUTO, // 自动选择合适码流
  32468. EM_VIDEO_STREAM_PREVIEW, // 预览裸数据码流
  32469. EM_VIDEO_STREAM_NO_VIDEO_JUST_AUDIO, // 无视频码流(纯音频流)
  32470. } EM_VIDEO_STREAM;
  32471. ///@brief 可用的显示源信息
  32472. typedef struct tagDH_MATRIX_CAMERA_INFO
  32473. {
  32474. DWORD dwSize;
  32475. char szName[DH_DEV_ID_LEN_EX]; // 名称
  32476. char szDevID[DH_DEV_ID_LEN_EX]; // 设备ID
  32477. char szControlID[DH_DEV_ID_LEN_EX]; // 控制ID
  32478. int nChannelID; // 通道号, DeviceID设备内唯一
  32479. int nUniqueChannel; // 设备内统一编号的唯一通道号
  32480. BOOL bRemoteDevice; // 是否远程设备
  32481. DH_REMOTE_DEVICE stuRemoteDevice; // 远程设备信息
  32482. NET_STREAM_TYPE emStreamType; // 视频码流类型
  32483. NET_LOGIC_CHN_TYPE emChannelType; // 通道类型
  32484. BOOL bEnable; // 仅在使用DeviceID添加/删除设备时的使能,通过DeviceInfo操作不要使用
  32485. EM_VIDEO_STREAM emVideoStream; // 视频码流
  32486. } DH_MATRIX_CAMERA_INFO;
  32487. ///@brief CLIENT_MatrixGetCameras接口的输入参数
  32488. typedef struct tagDH_IN_MATRIX_GET_CAMERAS
  32489. {
  32490. DWORD dwSize;
  32491. } DH_IN_MATRIX_GET_CAMERAS;
  32492. ///@brief CLIENT_MatrixGetCameras接口的输出参数
  32493. typedef struct tagDH_OUT_MATRIX_GET_CAMERAS
  32494. {
  32495. DWORD dwSize;
  32496. DH_MATRIX_CAMERA_INFO* pstuCameras; // 显示源信息数组, 用户分配内存,大小为sizeof(DH_MATRIX_CAMERA_INFO)*nMaxCameraCount
  32497. int nMaxCameraCount; // 显示源数组大小
  32498. int nRetCameraCount; // 返回的显示源数量
  32499. } DH_OUT_MATRIX_GET_CAMERAS;
  32500. ///@brief CLIENT_QueryDevInfo , NET_QUERY_DEV_REMOTE_DEVICE_INFO 查询远程设备信息输入参数
  32501. typedef struct tagNET_IN_GET_DEVICE_INFO
  32502. {
  32503. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_IN_GET_DEVICE_INFO)
  32504. char szDevice[DH_DEV_ID_LEN_EX]; // 设备ID
  32505. /* 设备属性,当 szDevice 字段为空时,以下字段生效 */
  32506. char szAttributeIP[DH_COMMON_STRING_32]; // 设备地址
  32507. int nAttributePort; // 设备端口
  32508. char szAttributeUsername[DH_COMMON_STRING_128]; // 用户名
  32509. char szAttributePassword[DH_COMMON_STRING_128]; // 密码
  32510. char szAttributeManufacturer[DH_COMMON_STRING_128]; // 厂商协议
  32511. }NET_IN_GET_DEVICE_INFO;
  32512. ///@brief CLIENT_QueryDevInfo , NET_QUERY_DEV_REMOTE_DEVICE_INFO 查询远程设备信息输出参数
  32513. typedef struct tagNET_OUT_GET_DEVICE_INFO
  32514. {
  32515. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_OUT_GET_DEVICE_INFO)
  32516. DH_REMOTE_DEVICE stuInfo; // 设备信息,该结构体内部成员 dwSize 需用户赋值
  32517. }NET_OUT_GET_DEVICE_INFO;
  32518. ///@brief CLIENT_MatrixSetCameras接口的输入参数
  32519. typedef struct tagDH_IN_MATRIX_SET_CAMERAS
  32520. {
  32521. DWORD dwSize;
  32522. DH_MATRIX_CAMERA_INFO* pstuCameras; // 显示源信息数组, 用户分配内存,大小为sizeof(DH_MATRIX_CAMERA_INFO)*nCameraCount
  32523. int nCameraCount; // 显示源数组大小
  32524. } DH_IN_MATRIX_SET_CAMERAS;
  32525. ///@brief CLIENT_MatrixSetCameras接口的输出参数
  32526. typedef struct tagDH_OUT_MATRIX_SET_CAMERAS
  32527. {
  32528. DWORD dwSize;
  32529. } DH_OUT_MATRIX_SET_CAMERAS;
  32530. ///@brief 窗口显示源信息
  32531. typedef struct tagDH_SPLIT_WND_SOURCE
  32532. {
  32533. DWORD dwSize;
  32534. BOOL bEnable; // 显示源是否有效
  32535. char szDeviceID[DH_DEV_ID_LEN]; // 设备ID
  32536. char szControlID[DH_DEV_ID_LEN]; // 控制ID
  32537. int nVideoChannel; // 视频通道号
  32538. int nVideoStream; // 视频码流类型
  32539. int nAudioChannel; // 音频通道
  32540. int nAudioStream; // 音频码流类型
  32541. int nUniqueChannel; // 设备内统一编号的唯一通道号, 只读
  32542. BOOL bRemoteDevice; // 是否远程设备
  32543. DH_REMOTE_DEVICE stuRemoteDevice; // 远程设备信息
  32544. NET_RECT stuSRect; // 视频源区域,若区域为(0,0,0,0)表示数据无效,设备使用默认值(0,0,8192,8192)
  32545. int nInterval; // 轮巡时间间隔,单位:秒
  32546. } DH_SPLIT_WND_SOURCE;
  32547. ///@brief 分割窗口信息
  32548. typedef struct tagDH_SPLIT_WINDOW
  32549. {
  32550. DWORD dwSize;
  32551. BOOL bEnable; // 窗口是否有视频源
  32552. int nWindowID; // 窗口ID
  32553. char szControlID[DH_DEV_ID_LEN]; // 控制ID
  32554. DH_RECT stuRect; // 窗口区域, 自由分割模式下有效
  32555. BOOL bDirectable; // 坐标是否满足直通条件
  32556. int nZOrder; // 窗口Z次序
  32557. DH_SPLIT_WND_SOURCE stuSource; // 显示信息
  32558. UINT nOSDNum; // OSD个数
  32559. NET_SPLIT_OSD stuOSD[DH_VIDEO_CUSTOM_OSD_NUM_EX]; // OSD信息
  32560. BOOL bLock; // 窗口是否被锁定位置
  32561. BOOL bDock; // 窗口是否具有粘附效果
  32562. BOOL bMeetingMode; // 窗口是否为会议模式状态
  32563. BOOL bAudioEnable; // 窗口是否开启音频使能
  32564. BOOL bTourEnable; // 窗口是否开启轮询
  32565. } DH_SPLIT_WINDOW;
  32566. ///@brief 拼接屏场景
  32567. typedef struct tagDH_SPLIT_SCENE
  32568. {
  32569. DWORD dwSize;
  32570. char szCompositeID[DH_DEV_ID_LEN]; // 拼接屏ID
  32571. char szControlID[DH_DEV_ID_LEN]; // 控制ID
  32572. DH_SPLIT_MODE emSplitMode; // 分割模式
  32573. DH_SPLIT_WINDOW* pstuWnds; // 窗口信息数组, 用户分配内存,大小为sizeof(DH_SPLIT_WINDOW)*nMaxWndCount
  32574. int nMaxWndCount; // 窗口信息数组大小, 用户填写
  32575. int nRetWndCount; // 返回的窗口数量
  32576. } DH_SPLIT_SCENE;
  32577. ///@brief 电视墙场景
  32578. typedef struct tagDH_MONITORWALL_SCENE
  32579. {
  32580. DWORD dwSize;
  32581. char szName[DH_DEV_NAME_LEN]; // 当前预案名称
  32582. char szControlID[DH_DEV_ID_LEN]; // 控制ID
  32583. DH_MONITORWALL stuMonitorWall; // 电视墙配置
  32584. DH_SPLIT_SCENE* pstuSplitScene; // 拼接屏场景信息数组, 用户分配内存,大小为sizeof(DH_SPLIT_SCENE)*nMaxSplitSceneCount
  32585. int nMaxSplitSceneCount; // 拼接屏场景数组大小, 用户填写
  32586. int nRetSplitSceneCount; // 返回的拼接屏场景数量
  32587. } DH_MONITORWALL_SCENE;
  32588. ///@brief CLIENT_MonitorWallGetScene接口输入参数(获取电视墙场景)
  32589. typedef struct tagDH_IN_MONITORWALL_GET_SCENE
  32590. {
  32591. DWORD dwSize;
  32592. int nMonitorWallID; // 电视墙序号
  32593. } DH_IN_MONITORWALL_GET_SCENE;
  32594. ///@brief CLIENT_MonitorWallGetScene接口输出参数(获取电视墙场景)
  32595. typedef struct tagDH_OUT_MONITORWALL_GET_SCENE
  32596. {
  32597. DWORD dwSize;
  32598. char szName[DH_DEV_NAME_LEN]; // 当前预案名称, 可以为空
  32599. DH_MONITORWALL_SCENE stuScene; // 电视墙场景
  32600. } DH_OUT_MONITORWALL_GET_SCENE;
  32601. ///@brief CLIENT_MonitorWallSetScene接口输入参数(设置电视墙场景)
  32602. typedef struct tagDH_IN_MONITORWALL_SET_SCENE
  32603. {
  32604. DWORD dwSize;
  32605. int nMonitorWallID; // 电视墙序号
  32606. DH_MONITORWALL_SCENE stuScene; // 电视墙场景
  32607. } DH_IN_MONITORWALL_SET_SCENE;
  32608. ///@brief CLIENT_MonitorWallSetScene接口输出参数(设置电视墙场景)
  32609. typedef struct tagDH_OUT_MONITORWALL_SET_SCENE
  32610. {
  32611. DWORD dwSize;
  32612. } DH_OUT_MONITORWALL_SET_SCENE;
  32613. ///@brief CLIENT_QueryNetStat接口,查询类型为NET_APP_DATA_STAT时的输入参数(获取协议栈统计数据)
  32614. typedef struct tagNET_IN_NETAPP_NET_DATA_STAT
  32615. {
  32616. DWORD dwSize;
  32617. char szEthName[DH_MAX_ETH_NAME]; //网卡名
  32618. }NET_IN_NETAPP_NET_DATA_STAT;
  32619. ///@brief 接收相关统计数据,意义与ifconfig同
  32620. typedef struct tagNET_NETAPP_RECEIVE_STAT
  32621. {
  32622. DWORD dwSize;
  32623. DWORD dwPackets;
  32624. DWORD dwBytes;
  32625. DWORD dwErrors;
  32626. DWORD dwDroped;
  32627. DWORD dwOverruns;
  32628. DWORD dwFrame;
  32629. DWORD dwSpeed; // 下行流量速度
  32630. }NET_NETAPP_RECEIVE_STAT;
  32631. ///@brief 传输相关统计数据,意义与ifconfig同
  32632. typedef struct tagNET_NETAPP_TRANSMIT_STAT
  32633. {
  32634. DWORD dwSize;
  32635. DWORD dwPackets;
  32636. DWORD dwBytes;
  32637. DWORD dwErrors;
  32638. DWORD dwDroped;
  32639. DWORD dwOverruns;
  32640. DWORD dwCarrier;
  32641. DWORD dwCollisions;
  32642. DWORD dwTxQueue;
  32643. DWORD dwSpeed; // 上行流量速度
  32644. }NET_NETAPP_TRANSMIT_STAT;
  32645. ///@brief CLIENT_QueryNetStat接口,查询类型为NET_APP_DATA_STAT时的输出参数(获取协议栈统计数据)
  32646. typedef struct tagNET_OUT_NETAPP_NET_DATA_STAT
  32647. {
  32648. DWORD dwSize;
  32649. NET_NETAPP_RECEIVE_STAT stuReceiveStat; // 接收相关统计数据,意义与ifconfig同
  32650. NET_NETAPP_TRANSMIT_STAT stuTransmitStat; // 传输相关统计数据,意义与ifconfig同
  32651. int nSpeed; // 网卡速度,单位Mbps
  32652. }NET_OUT_NETAPP_NET_DATA_STAT;
  32653. ///@brief CLIENT_QueryNetStat接口,查询类型为NET_APP_LINK_STAT 时的输入参数(获取物理链路状态)
  32654. typedef struct tagNET_IN_NETAPP_LINK_STATUS
  32655. {
  32656. DWORD dwSize;
  32657. char szEthName[DH_MAX_ETH_NAME]; //网卡名
  32658. }NET_IN_NETAPP_LINK_STATUS;
  32659. ///@brief CLIENT_QueryNetStat接口,查询类型为NET_APP_LINK_STAT 时的输出参数(获取物理链路状态)
  32660. typedef struct tagNET_OUT_NETAPP_LINK_STATUS
  32661. {
  32662. DWORD dwSize;
  32663. BOOL bWorking; // 是否正在工作
  32664. BOOL bIPConflict; // IP是否冲突
  32665. }NET_OUT_NETAPP_LINK_STATUS;
  32666. // 输入信号类型
  32667. #define DH_VIDEO_SIGNAL_CVBS 0x0001
  32668. #define DH_VIDEO_SIGNAL_SDI 0x0002
  32669. #define DH_VIDEO_SIGNAL_VGA 0x0004
  32670. #define DH_VIDEO_SIGNAL_DVI 0x0008
  32671. #define DH_VIDEO_SIGNAL_HDMI 0x0010
  32672. #define DH_VIDEO_SIGNAL_YPBPR 0x0020
  32673. #define DH_VIDEO_SIGNAL_SFP 0x0040
  32674. #define DH_VIDEO_SIGNAL_HDCVI 0x0080
  32675. #define DH_VIDEO_SIGNAL_DUAL_LINK 0x0100
  32676. ///@brief 视频输入能力集
  32677. typedef struct tagDH_VIDEO_IN_CAPS
  32678. {
  32679. DWORD dwSize;
  32680. DWORD dwSignalType; // 输入信号类型
  32681. BOOL bAutoFocusPeak; // 是否支持聚焦峰值计算
  32682. BOOL bElectricFocus; // 是否支持电动调焦
  32683. BOOL bSyncFocus; // 是否支持同步对焦
  32684. BOOL bSetColor; // 是否支持视频颜色设置
  32685. BOOL bGain; // 是否支持增益控制
  32686. BOOL bPhase; // 是否支持相位控制
  32687. int nSubChannel; // 视频子通道(采集器)个数
  32688. DH_RECT stuRect[MAX_SUBCHANNEL_NUM]; // 每个sensor画面在整个拼接画面中的位置
  32689. } DH_VIDEO_IN_CAPS;
  32690. ///@brief CLIENT_GetVideoInCaps接口输入参数
  32691. typedef struct tagDH_IN_GET_VIDEO_IN_CAPS
  32692. {
  32693. DWORD dwSize;
  32694. int nChannel; // 视频输入通道号
  32695. } DH_IN_GET_VIDEO_IN_CAPS;
  32696. ///@brief CLIENT_GetVideoInCaps接口输出参数
  32697. typedef struct tagDH_OUT_GET_VIDEO_IN_CAPS
  32698. {
  32699. DWORD dwSize;
  32700. DH_VIDEO_IN_CAPS stuCaps; // 能力
  32701. } DH_OUT_GET_VIDEO_IN_CAPS;
  32702. ///@brief 视频输出模式
  32703. typedef struct tagDH_VIDEO_OUT_MODE
  32704. {
  32705. DWORD dwSize;
  32706. int nWidth; // 水平分辨率
  32707. int nHeight; // 垂直分辨率
  32708. int nBPP; // 颜色深度
  32709. int nFormat; // 输出信号模式, 0-Auto, 1-TV, 2-VGA, 3-DVI
  32710. int nRefreshRate; // 刷新频率
  32711. int nPhysicalPort; // 物理输出口, VGA, TV, DVI各自独立编号, 各自从0开始
  32712. int nScanFormat; // 扫描模式, 0-逐行, 1-隔行
  32713. } DH_VIDEO_OUT_MODE;
  32714. ///@brief CLIENT_EnumVideoOutModes接口输入参数
  32715. typedef struct tagDH_IN_ENUM_VIDEO_OUT_MODES
  32716. {
  32717. DWORD dwSize;
  32718. int nChannel;
  32719. } DH_IN_ENUM_VIDEO_OUT_MODES;
  32720. ///@brief CLIENT_EnumVideoOutModes接口输出参数
  32721. typedef struct tagDH_OUT_ENUM_VIDEO_OUT_MODES
  32722. {
  32723. DWORD dwSize;
  32724. DH_VIDEO_OUT_MODE* pstuModes; // 模式数组, 用户分配内存,大小为sizeof(DH_VIDEO_OUT_MODE)*nMaxModeCount
  32725. int nMaxModeCount; // 模式数组大小, 用户填写
  32726. int nRetModeCount; // 返回的模式数量
  32727. } DH_OUT_ENUM_VIDEO_OUT_MODES;
  32728. ///@brief 电视墙屏幕能力类型
  32729. typedef enum tagDH_OUTPUT_ATTRIBUTE_TYPE
  32730. {
  32731. DH_OUTPUT_ATTRIBUTE_VIDEO,
  32732. DH_OUTPUT_ATTRIBUTE_YPBPR,
  32733. DH_OUTPUT_ATTRIBUTE_VGA,
  32734. DH_OUTPUT_ATTRIBUTE_DVI,
  32735. DH_OUTPUT_ATTRIBUTE_MENU,
  32736. } DH_OUTPUT_ATTRIBUTE_TYPE;
  32737. // 电视墙显示单元屏幕调节能力集(DH_OUTPUT_ATTRIBUTE_CAPS) Video能力
  32738. #define DH_ATTR_VIDEO_BRIGHTNESS 0X00000001
  32739. #define DH_ATTR_VIDEO_CONTRAST 0X00000002
  32740. #define DH_ATTR_VIDEO_SATURATION 0X00000004
  32741. #define DH_ATTR_VIDEO_SHAPENESS 0X00000008
  32742. #define DH_ATTR_VIDEO_DENOISE 0X00000010
  32743. // 电视墙显示单元屏幕调节能力集(DH_OUTPUT_ATTRIBUTE_CAPS) YPbPr能力
  32744. #define DH_ATTR_YPBPR_BRIGHTNESS 0X00000001
  32745. #define DH_ATTR_YPBPR_CONTRAST 0X00000002
  32746. #define DH_ATTR_YPBPR_SATURATION 0X00000004
  32747. #define DH_ATTR_YPBPR_SHAPENESS 0X00000008
  32748. #define DH_ATTR_YPBPR_DENOISE 0X00000010
  32749. // 电视墙显示单元屏幕调节能力集(DH_OUTPUT_ATTRIBUTE_CAPS) VGA能力
  32750. #define DH_ATTR_VGA_BRIGHTNESS 0X00000001
  32751. #define DH_ATTR_VGA_CONTRAST 0X00000002
  32752. #define DH_ATTR_VGA_HORPOSITION 0X00000004
  32753. #define DH_ATTR_VGA_VERPOSITION 0X00000008
  32754. #define DH_ATTR_VGA_CLOCK 0X00000010
  32755. // 电视墙显示单元屏幕调节能力集(DH_OUTPUT_ATTRIBUTE_CAPS) DVI能力
  32756. #define DH_ATTR_DVI_BRIGHTNESS 0X00000001
  32757. #define DH_ATTR_DVI_CONTRAST 0X00000002
  32758. #define DH_ATTR_DVI_HORPOSITION 0X00000004
  32759. #define DH_ATTR_DVI_VERPOSITION 0X00000008
  32760. #define DH_ATTR_DVI_CLOCK 0X00000010
  32761. // 电视墙显示单元屏幕调节能力集(DH_OUTPUT_ATTRIBUTE_CAPS) Menu能力
  32762. #define DH_ATTR_MENU_MENU 0X00000001
  32763. #define DH_ATTR_MENU_UP 0X00000002
  32764. #define DH_ATTR_MENU_DOWN 0X00000004
  32765. #define DH_ATTR_MENU_LEFT 0X00000008
  32766. #define DH_ATTR_MENU_RIGHT 0X00000010
  32767. #define DH_ATTR_MENU_FACTORYMENU 0X00000020
  32768. ///@brief 电视墙显示单元屏幕调节能力集
  32769. typedef struct tagDH_OUTPUT_ATTRIBUTE_CAPS
  32770. {
  32771. DWORD dwSize;
  32772. BOOL abVideo; // Video能力是否有效
  32773. DWORD dwVideo; // Video能力, 按位表示, 具体见DH_ATTR_VIDEO_BRIGHTNESS等
  32774. BOOL abYPbPr; // YPbPr能力是否有效
  32775. DWORD dwYPbPr; // YPbPr能力, 按位表示, 具体见DH_ATTR_VGA_BRIGHTNESS等
  32776. BOOL abVGA; // VGA能力是否有效
  32777. DWORD dwVGA; // VGA能力, 按位表示, 具体见DH_ATTR_VGA_BRIGHTNESS等
  32778. BOOL abDVI; // DVI能力是否有效
  32779. DWORD dwDVI; // DVI能力, 按位表示, 具体见DH_ATTR_DVI_BRIGHTNESS
  32780. BOOL abMenu; // Menu能力是否有效
  32781. DWORD dwMemu; // Menu能力, 按位表示, 具体见DH_ATTR_MENU_MENU等
  32782. } DH_OUTPUT_ATTRIBUTE_CAPS;
  32783. ///@brief CLIENT_MonitorWallGetAttributeCaps 接口输入参数
  32784. typedef struct tagDH_IN_MONITORWALL_GET_ARRT_CAPS
  32785. {
  32786. DWORD dwSize;
  32787. int nMonitorWallID; // 电视墙序号
  32788. const char* pszCompositeID; // 拼接屏ID
  32789. int nOutputID; // 显示单元序号
  32790. } DH_IN_MONITORWALL_GET_ARRT_CAPS;
  32791. ///@brief CLIENT_MonitorWallGetAttributeCaps 接口输出参数
  32792. typedef struct tagDH_OUT_MONITORWALL_GET_ARRT_CAPS
  32793. {
  32794. DWORD dwSize;
  32795. DH_OUTPUT_ATTRIBUTE_CAPS stuCaps; // 属性能力集
  32796. } DH_OUT_MONITORWALL_GET_ARRT_CAPS;
  32797. ///@brief CLIENT_MonitorWallAutoAdjust 接口输入参数
  32798. typedef struct tagDH_IN_MONITORWALL_AUTO_ADJUST
  32799. {
  32800. DWORD dwSize;
  32801. int nMonitorWallID; // 电视墙序号
  32802. const char* pszCompositeID; // 拼接屏ID
  32803. int* pOutputs; // 显示单元序号数组指针, 数组元素是显示单元ID, 用户申请内存,大小为sizeof(int)*nOutputCount
  32804. int nOutputCount; // 显示单元数量, pOutputs元素数量
  32805. } DH_IN_MONITORWALL_AUTO_ADJUST;
  32806. ///@brief CLIENT_MonitorWallAutoAdjust 接口输出参数
  32807. typedef struct tagDH_OUT_MONITORWALL_AUTO_ADJUST
  32808. {
  32809. DWORD dwSize;
  32810. } DH_OUT_MONITORWALL_AUTO_ADJUST;
  32811. ///@brief 显示单元属性键值对
  32812. typedef struct tagDH_ATTR_PAIR
  32813. {
  32814. DWORD dwKey; // 属性键
  32815. // 类型为DH_OUTPUT_ATTRIBUTE_VIDEO时, 使用宏DH_ATTR_VIDEO_BRIGHTNESS等
  32816. // 类型为DH_OUTPUT_ATTRIBUTE_YPBPR时, 使用宏DH_ATTR_YPBPR_BRIGHTNESS等
  32817. // 其他的类型以此类推
  32818. int nValue; // 属性值, 0-减少 1-增加, 2-不变
  32819. } DH_ATTR_PAIR;
  32820. ///@brief CLIENT_MonitorWallSetAttribute 接口输入参数
  32821. typedef struct tagDH_IN_MONITORWALL_SET_ATTR
  32822. {
  32823. DWORD dwSize;
  32824. int nMonitorWallID; // 电视墙序号
  32825. const char* pszCompositeID; // 拼接屏ID
  32826. int nOutputID; // 显示单元序号
  32827. DH_OUTPUT_ATTRIBUTE_TYPE emAttrType; // 属性类型, 类型不同时, 对应的属性(stuAttrs)也不同
  32828. DH_ATTR_PAIR stuAttrs[DH_MAX_ATTR_NUM]; // 属性值
  32829. } DH_IN_MONITORWALL_SET_ATTR;
  32830. ///@brief CLIENT_MonitorWallSetAttribute 接口输出参数
  32831. typedef struct tagDH_OUT_MONITORWALL_SET_ATTR
  32832. {
  32833. DWORD dwSize;
  32834. } DH_OUT_MONITORWALL_SET_ATTR;
  32835. ///@brief CLIENT_MonitorWallSetBackLight 接口输入参数
  32836. typedef struct tagDH_IN_MONITORWALL_SET_BACK_LIGHT
  32837. {
  32838. DWORD dwSize;
  32839. int nMonitorWallID; // 电视墙序号
  32840. const char* pszCompositeID; // 拼接屏ID
  32841. int nOutputID; // 显示单元序号
  32842. int nMode; // 背光模式, 0-循环设置背光模式,1-非循环模式
  32843. } DH_IN_MONITORWALL_SET_BACK_LIGHT;
  32844. ///@brief CLIENT_MonitorWallSetBackLight 接口输出参数
  32845. typedef struct tagDH_OUT_MONITORWALL_SET_BACK_LIGHT
  32846. {
  32847. DWORD dwSize;
  32848. } DH_OUT_MONITORWALL_SET_BACK_LIGHT;
  32849. ///@brief CLIENT_MonitorWallGetPowerSchedule 接口输入参数
  32850. typedef struct tagNET_IN_WM_GET_POWER_SCHEDULE
  32851. {
  32852. DWORD dwSize;
  32853. int nMonitorWallID; // 电视墙序号
  32854. const char* pszCompositeID; // 拼接屏ID
  32855. } NET_IN_MW_GET_POWER_SCHEDULE;
  32856. ///@brief CLIENT_MonitorWallGetPowerSchedule 接口输出参数
  32857. typedef struct tagNET_OUT_MW_GET_POWER_SCHEDULE
  32858. {
  32859. DWORD dwSize;
  32860. DH_TSECT stuPowerSchedule[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 开机时间表, 第一维各元素表示周日~周六和节假日
  32861. } NET_OUT_MW_GET_POWER_SCHEDULE;
  32862. ///@brief CLIENT_MonitorWallSetPowerSchedule 接口输入参数
  32863. typedef struct tagNET_IN_MW_SET_POWER_SCHEDULE
  32864. {
  32865. DWORD dwSize;
  32866. int nMonitorWallID; // 电视墙序号
  32867. const char* pszCompositeID; // 拼接屏ID, NULL表示所有屏
  32868. DH_TSECT stuPowerSchedule[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 开机时间表, 第一维各元素表示周日~周六和节假日
  32869. } NET_IN_MW_SET_POWER_SCHEDULE;
  32870. ///@brief CLIENT_MonitorWallSetPowerSchedule 接口输出参数
  32871. typedef struct tagNET_OUT_MW_SET_POWER_SCHEDULE
  32872. {
  32873. DWORD dwSize;
  32874. } NET_OUT_MW_SET_POWER_SCHEDULE;
  32875. ///@brief CLIENT_MonitorWallGetScrnCtrlParam 接口输入参数
  32876. typedef struct tagNET_IN_MW_GET_SCRN_CTRL_PARAM
  32877. {
  32878. DWORD dwSize;
  32879. int nMonitorWallID; // 电视墙序号
  32880. const char* pszCompositeID; // 拼接屏ID
  32881. } NET_IN_MW_GET_SCRN_CTRL_PARAM;
  32882. #define DH_MAX_SCREEN_PORT_NUM 16 // 最大屏幕输入端口数
  32883. #define DH_MAX_COMPSITE_SCREEN_NUM 256 // 最大拼接屏数量
  32884. ///@brief 屏幕输入端口信息
  32885. typedef struct tagNET_SCREEN_PORT_INFO
  32886. {
  32887. DWORD dwSize;
  32888. char szType[DH_COMMON_STRING_16]; // 端口类型, "DVI", "VGA", "HDMI"等, 允许存在相同类型的多个端口
  32889. char szAddress[DH_COMMON_STRING_16]; // 端口地址
  32890. char szDeviceID[DH_DEV_ID_LEN_EX]; // 绑定的视频输出设备号
  32891. int nOutputChannel; // 视频输出通道号
  32892. } NET_SCREEN_PORT_INFO;
  32893. ///@brief 屏幕输入端口信息
  32894. typedef struct tagNET_SCREEN_PORT_GROUP
  32895. {
  32896. DWORD dwSize;
  32897. int nPortNum; // 端口数
  32898. NET_SCREEN_PORT_INFO stuPorts[DH_MAX_SCREEN_PORT_NUM]; // 端口信息
  32899. } NET_SCREEN_PORT_GROUP;
  32900. ///@brief 电视墙屏幕控制参数
  32901. typedef struct tagNET_WM_SCRN_CTRL_PARAM
  32902. {
  32903. DWORD dwSize;
  32904. int nCommPort; // 串口号
  32905. DH_COMM_PROP stuCommProp; // 串口属性
  32906. char szProtocol[DH_COMMON_STRING_32]; // 串口协议
  32907. int nResolutionNum; // 分辨率数量
  32908. CAPTURE_SIZE emResolutions[DH_MAX_CAPTURE_SIZE_NUM]; // 视频分辨率列表
  32909. int nScreenCodeNum; // 屏幕编码数
  32910. char szScreenCode[DH_MAX_COMPSITE_SCREEN_NUM][DH_COMMON_STRING_16]; // 屏幕编码, 串口命令寻址用, 该编码由用户配置, 可以相同
  32911. int nScreenPortsNum; // 屏幕输入端口信息数量
  32912. NET_SCREEN_PORT_GROUP stuScreenPorts[DH_MAX_COMPSITE_SCREEN_NUM]; // 屏幕输入端口信息
  32913. } NET_WM_SCRN_CTRL_PARAM;
  32914. ///@brief CLIENT_MonitorWallGetScrnCtrlParam 接口输入参数
  32915. typedef struct tagNET_OUT_MW_GET_SCRN_CTRL_PARAM
  32916. {
  32917. DWORD dwSize;
  32918. NET_WM_SCRN_CTRL_PARAM stuScrnCtrlParam; // 屏幕控制参数
  32919. } NET_OUT_MW_GET_SCRN_CTRL_PARAM;
  32920. ///@brief CLIENT_MonitorWallSetScrnCtrlParam 接口输入参数
  32921. typedef struct tagNET_IN_MW_SET_SCRN_CTRL_PARAM
  32922. {
  32923. DWORD dwSize;
  32924. int nMonitorWallID; // 电视墙序号
  32925. const char* pszCompositeID; // 拼接屏ID
  32926. NET_WM_SCRN_CTRL_PARAM stuScrnCtrlParam; // 屏幕控制参数
  32927. } NET_IN_MW_SET_SCRN_CTRL_PARAM;
  32928. ///@brief CLIENT_MonitorWallSetScrnCtrlParam 接口输出参数
  32929. typedef struct tagNET_OUT_MW_SET_SCRN_CTRL_PARAM
  32930. {
  32931. DWORD dwSize;
  32932. } NET_OUT_MW_SET_SCRN_CTRL_PARAM;
  32933. ///@brief CLIENT_MonitorWallGetBackgroudColor 接口输入参数
  32934. typedef struct tagNET_IN_MW_GET_BACKGROUDND_COLOR
  32935. {
  32936. DWORD dwSize;
  32937. int nMonitorWallID; // 电视墙序号
  32938. } NET_IN_MW_GET_BACKGROUDND_COLOR;
  32939. ///@brief CLIENT_MonitorWallGetBackgroudColor 接口输出参数
  32940. typedef struct tagNET_OUT_MW_GET_BACKGROUDND_COLOR
  32941. {
  32942. DWORD dwSize;
  32943. DH_COLOR_RGBA stuScreenColor; // 屏幕背景色
  32944. DH_COLOR_RGBA stuWindowColor; // 窗口背景色
  32945. } NET_OUT_MW_GET_BACKGROUDND_COLOR;
  32946. ///@brief CLIENT_MonitorWallSetBackgroudColor 接口输入参数
  32947. typedef struct tagNET_IN_MW_SET_BACKGROUD_COLOR
  32948. {
  32949. DWORD dwSize;
  32950. int nMonitorWallID; // 电视墙序号
  32951. DH_COLOR_RGBA stuScreenColor; // 屏幕背景色
  32952. DH_COLOR_RGBA stuWindowColor; // 窗口背景色
  32953. } NET_IN_MW_SET_BACKGROUD_COLOR;
  32954. ///@brief CLIENT_MonitorWallSetBackgroudColor 接口输出参数
  32955. typedef struct tagNET_OUT_MW_SET_BACKGROUD_COLOR
  32956. {
  32957. DWORD dwSize;
  32958. } NET_OUT_MW_SET_BACKGROUD_COLOR;
  32959. ///@brief 信号源类型
  32960. typedef enum tagEM_SIGNAL_TYPE
  32961. {
  32962. EM_SIGNAL_TYPE_UNKNOWN, // 未知类型
  32963. EM_SIGNAL_TYPE_VIDEO, // "Video"
  32964. EM_SIGNAL_TYPE_VGA, // "VGA"
  32965. EM_SIGNAL_TYPE_YPBPR, // "YPbPr"
  32966. EM_SIGNAL_TYPE_HDMI, // "HDMI"
  32967. EM_SIGNAL_TYPE_DVI, // "DVI"
  32968. EM_SIGNAL_TYPE_SDI, // "SDI"
  32969. EM_SIGNAL_TYPE_CVBS, // "CVBS"
  32970. }EM_SIGNAL_TYPE;
  32971. ///@brief CLIENT_MonitorWallSwitchDisplaySignal 接口输入参数
  32972. typedef struct tagNET_IN_MW_SWITCH_DISPLAY_SIGNAL
  32973. {
  32974. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_INT_SWITCH_DISPLAYSIGNAL)
  32975. int nMonitorWallID; // 电视墙序号
  32976. char* pszCompositeID; // 显示单元组ID
  32977. int nOutputID; // 显示单元索引号, -1表示区块中的所有显示单元
  32978. EM_SIGNAL_TYPE emSignalType; // 信号源类型
  32979. int nIndex; // 输入信号端子序号, 从0开始, 有多个相同信号源端子时, 用于指明哪个端子
  32980. }NET_IN_MW_SWITCH_DISPLAY_SIGNAL;
  32981. ///@brief CLIENT_MonitorWallSwitchDisplaySignal 接口输出参数
  32982. typedef struct tagNET_OUT_MW_SWITCH_DISPLAY_SIGNAL
  32983. {
  32984. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_OUT_SWICH_DISPLAYSIGNAL)
  32985. }NET_OUT_MW_SWITCH_DISPLAY_SIGNAL;
  32986. //////////////////////////////////////////////////////////////////////
  32987. ///@brief CLIENT_OperateMonitorWall接口参数
  32988. //////////////////////////////////////////////////////////////////////
  32989. ///@brief 电视墙操作类型
  32990. typedef enum tagNET_MONITORWALL_OPERATE_TYPE
  32991. {
  32992. NET_MONITORWALL_OPERATE_ADD, // 添加电视墙, 对应 NET_IN_MONITORWALL_ADD 和 NET_OUT_MONITORWALL_ADD
  32993. NET_MONITORWALL_OPERATE_CTRL_TOUR, // 预案轮巡控制, 对应 NET_IN_CTRL_COLLECTIONTOUR 和 NET_OUT_CTRL_COLLECTIONTOUR
  32994. NET_MONITORWALL_OPERATE_GET_STATUS, // 获取矩阵当前状态, 对应 NET_IN_MONITORWALL_GET_STATUS 和 NET_OUT_MONITORWALL_GET_STATUS
  32995. NET_MONITORWALL_OPERATE_SET_COLL_SCHD, // 设置预案时间表, 对应 NET_IN_MONITORWALL_SET_COLL_SCHD 和 NET_OUT_MONITORWALL_SET_COLL_SCHD
  32996. NET_MONITORWALL_OPERATE_GET_COLL_SCHD, // 获取预案时间表, 对应 NET_IN_MONITORWALL_GET_COLL_SCHD 和 NET_OUT_MONITORWALL_GET_COLL_SCHD
  32997. NET_MONITORWALL_OPERATE_REMOVE, // 删除电视墙, 对应 NET_IN_MONITORWALL_REMOVE 和 NET_OUT_MONITORWALL_REMOVE
  32998. NET_MONITORWALL_OPERATE_SET_ENABLE, // 设置使能, 对应 NET_IN_MONITORWALL_SET_ENABLE 和 NET_OUT_MONITORWALL_SET_ENABLE
  32999. NET_MONITORWALL_OPERATE_GET_ENABLE, // 获取使能, 对应 NET_IN_MONITORWALL_GET_ENABLE 和 NET_OUT_MONITORWALL_GET_ENABLE
  33000. NET_MONITORWALL_OPERATE_NAME_EXIST, // 电视墙是否存在, 对应 NET_IN_MONITORWALL_NAME_EXIST 和 NET_OUT_MONITORWALL_NAME_EXIST
  33001. NET_MONITORWALL_OPERATE_RENAME, // 修改电视墙名称, 对应 NET_IN_MONITORWALL_RENAME 和 NET_OUT_MONITORWALL_RENAME
  33002. NET_MONITORWALL_OPERATE_UPDATE_SOURCE_URL, // 更新已上墙的视频源URL, 对应 NET_IN_MONITORWALL_UPDATE_SOURCE_URL 和 NET_OUT_MONITORWALL_UPDATE_SOURCE_URL
  33003. NET_MONITORWALL_OPERATE_GET_LOCK_STATUS,// 获取电视墙锁定状态, 对应 NET_IN_MONITORWALL_GET_LOCK_STATUS 和 NET_OUT_MONITORWALL_GET_LOCK_STATUS
  33004. NET_MONITORWALL_OPERATE_LOCK, // 锁定电视墙(自由开窗的窗口不能再移动,防止用户误操作), 对应 NET_IN_MONITORWALL_LOCK 和 NET_OUT_MONITORWALL_LOCK
  33005. NET_MONITORWALL_OPERATE_SET_VSYNC, // 电视墙Vsync校准, 对应NET_IN_MONITORWALL_SET_VSYNC 和 NET_OUT_MONITORWALL_SET_VSYNC
  33006. } NET_MONITORWALL_OPERATE_TYPE;
  33007. ///@brief 添加电视墙输入参数
  33008. typedef struct tagNET_IN_MONITORWALL_ADD
  33009. {
  33010. DWORD dwSize;
  33011. DH_MONITORWALL stuMonitorWall; // 电视墙信息
  33012. } NET_IN_MONITORWALL_ADD;
  33013. ///@brief 添加电视墙输出参数
  33014. typedef struct tagNET_OUT_MONITORWALL_ADD
  33015. {
  33016. DWORD dwSize;
  33017. unsigned int nMonitorWallID; // 电视墙ID
  33018. } NET_OUT_MONITORWALL_ADD;
  33019. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_CTRL_TOUR
  33020. typedef struct tagNET_IN_CTRL_COLLECTIONTOUR
  33021. {
  33022. DWORD dwSize;
  33023. int nChannel; // 通道号
  33024. int nAction; // 轮巡动作, 0:结束, 1:开始
  33025. } NET_IN_CTRL_COLLECTIONTOUR;
  33026. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_CTRL_TOUR
  33027. typedef struct tagNET_OUT_CTRL_COLLECTIONTOUR
  33028. {
  33029. DWORD dwSize;
  33030. } NET_OUT_CTRL_COLLECTIONTOUR;
  33031. ///@brief 矩阵运行状态
  33032. typedef enum tagNET_MATRIX_STATUS
  33033. {
  33034. MATRIX_STATUS_UNKNOWN, // 未知
  33035. MATRIX_STATUS_TOUR, // 预案轮巡
  33036. MATRIX_STATUS_NORMAL, // 普通预览
  33037. } NET_MATRIX_STATUS;
  33038. #define DH_MAX_COLLECTION_NUM 64 // 最大预案数
  33039. ///@brief 矩阵状态信息
  33040. typedef struct tagNET_MONITORWALL_STATUS_INFO
  33041. {
  33042. DWORD dwSize;
  33043. int nInterval; // 轮巡时间间隔
  33044. int nCollectionNum; // 预案轮巡数
  33045. char szCollections[DH_MAX_COLLECTION_NUM][DH_DEVICE_NAME_LEN]; // 预案轮巡组内容
  33046. char szName[DH_DEVICE_NAME_LEN]; // 当前显示的预案名称
  33047. } NET_MONITORWALL_STATUS_INFO;
  33048. ///@brief // CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_GET_STATUS
  33049. typedef struct tagNET_IN_MONITORWALL_GET_STATUS
  33050. {
  33051. DWORD dwSize;
  33052. int nChannel; // 通道号
  33053. } NET_IN_MONITORWALL_GET_STATUS;
  33054. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_GET_STATUS
  33055. typedef struct tagNET_OUT_MONITORWALL_GET_STATUS
  33056. {
  33057. DWORD dwSize;
  33058. NET_MATRIX_STATUS emMatrixStatus; // 运行状态
  33059. NET_MONITORWALL_STATUS_INFO stuStatusInfo; // 状态信息
  33060. } NET_OUT_MONITORWALL_GET_STATUS;
  33061. ///@brief 电视墙预案时间表
  33062. typedef struct tagMONITORWALL_COLLECTION_SCHEDULE
  33063. {
  33064. DWORD dwSize;
  33065. char szName[DH_DEVICE_NAME_LEN]; // 预案名称
  33066. DH_TSECT stuSchedule[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 时间表, 第一维各元素表示周日~周六和节假日
  33067. } MONITORWALL_COLLECTION_SCHEDULE;
  33068. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_SET_COLL_SCHD
  33069. typedef struct tagNET_IN_MONITORWALL_SET_COLL_SCHD
  33070. {
  33071. DWORD dwSize;
  33072. int nCollectionNum; // 预案数
  33073. MONITORWALL_COLLECTION_SCHEDULE stuCollShedule[DH_MAX_COLLECTION_NUM]; // 预案时间表
  33074. int nMonitorWallID; // 电视墙ID
  33075. } NET_IN_MONITORWALL_SET_COLL_SCHD;
  33076. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_SET_COLL_SCHD
  33077. typedef struct tagNET_OUT_MONITORWALL_SET_COLL_SCHD
  33078. {
  33079. DWORD dwSize;
  33080. } NET_OUT_MONITORWALL_SET_COLL_SCHD;
  33081. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_GET_COLL_SCHD
  33082. typedef struct tagNET_IN_MONITORWALL_GET_COLL_SCHD
  33083. {
  33084. DWORD dwSize;
  33085. BOOL bAllCollections; // TRUE-查询所有预案, 不需要指定预案名称. FALSE-查询名称所对应的预案
  33086. int nCollectionNum; // 预案数, bAllCollections为FALSE时有效
  33087. char szCollections[DH_MAX_COLLECTION_NUM][DH_DEVICE_NAME_LEN]; // 预案名称
  33088. int nMonitorWallID; // 电视墙ID
  33089. } NET_IN_MONITORWALL_GET_COLL_SCHD;
  33090. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_GET_COLL_SCHD
  33091. typedef struct tagNET_OUT_MONITORWALL_GET_COLL_SCHD
  33092. {
  33093. DWORD dwSize;
  33094. int nCollectionNum; // 预案数
  33095. MONITORWALL_COLLECTION_SCHEDULE stuCollShedule[DH_MAX_COLLECTION_NUM]; // 预案时间表
  33096. } NET_OUT_MONITORWALL_GET_COLL_SCHD;
  33097. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_REMOVE
  33098. typedef struct tagNET_IN_MONITORWALL_REMOVE
  33099. {
  33100. DWORD dwSize;
  33101. int nMonitorWallNum; // 要删除的电视墙数量
  33102. char szNames[DH_MAX_MONITORWALL_NUM][DH_COMMON_STRING_128]; // 电视墙名称
  33103. } NET_IN_MONITORWALL_REMOVE;
  33104. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_REMOVE
  33105. typedef struct tagNET_OUT_MONITORWALL_REMOVE
  33106. {
  33107. DWORD dwSize;
  33108. } NET_OUT_MONITORWALL_REMOVE;
  33109. ///@brief 电视墙使能信息
  33110. typedef struct tagNET_MONITORWALL_ENABLE_INFO
  33111. {
  33112. DWORD dwSize;
  33113. BOOL bEanble; // 使能
  33114. char szName[DH_COMMON_STRING_128]; // 电视墙名称
  33115. } NET_MONITORWALL_ENABLE_INFO;
  33116. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_SET_ENABLE
  33117. typedef struct tagNET_IN_MONITORWALL_SET_ENABLE
  33118. {
  33119. DWORD dwSize;
  33120. int nMonitorWallNum; // 要设置的电视墙数量
  33121. NET_MONITORWALL_ENABLE_INFO stuEnable[DH_MAX_MONITORWALL_NUM]; // 电视墙使能
  33122. } NET_IN_MONITORWALL_SET_ENABLE;
  33123. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_SET_ENABLE
  33124. typedef struct tagNET_OUT_MONITORWALL_SET_ENABLE
  33125. {
  33126. DWORD dwSize;
  33127. } NET_OUT_MONITORWALL_SET_ENABLE;
  33128. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_GET_ENABLE
  33129. typedef struct tagNET_IN_MONITORWALL_GET_ENABLE
  33130. {
  33131. DWORD dwSize;
  33132. int nMonitorWallNum; // 要查询的电视墙数量, -1表示查询所有电视墙
  33133. char szNames[DH_MAX_MONITORWALL_NUM][DH_COMMON_STRING_128]; // 电视墙名称, nMonitorWallNum>0时有效
  33134. } NET_IN_MONITORWALL_GET_ENABLE;
  33135. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_SET_ENABLE
  33136. typedef struct tagNET_OUT_MONITORWALL_GET_ENABLE
  33137. {
  33138. DWORD dwSize;
  33139. int nMonitorWallNum; // 电视墙数量
  33140. NET_MONITORWALL_ENABLE_INFO stuEnable[DH_MAX_MONITORWALL_NUM]; // 电视墙使能
  33141. } NET_OUT_MONITORWALL_GET_ENABLE;
  33142. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_NAME_EXIST
  33143. typedef struct tagNET_IN_MONITORWALL_NAME_EXIST
  33144. {
  33145. DWORD dwSize;
  33146. const char* pszName; // 电视墙名称
  33147. } NET_IN_MONITORWALL_NAME_EXIST;
  33148. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_NAME_EXIST
  33149. typedef struct tagNET_OUT_MONITORWALL_NAME_EXIST
  33150. {
  33151. DWORD dwSize;
  33152. BOOL bExist; // 电视墙是否已存在
  33153. } NET_OUT_MONITORWALL_NAME_EXIST;
  33154. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_RENAME修改电视墙名称
  33155. typedef struct tagNET_IN_MONITORWALL_RENAME
  33156. {
  33157. DWORD dwSize;
  33158. unsigned int unMonitorWallID; // 电视墙ID
  33159. char szNewName[MAX_MONITORWALL_NAME_LEN]; // 新的电视墙名称
  33160. } NET_IN_MONITORWALL_RENAME;
  33161. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_RENAME修改电视墙名称
  33162. typedef struct tagNET_OUT_MONITORWALL_RENAME
  33163. {
  33164. DWORD dwSize;
  33165. } NET_OUT_MONITORWALL_RENAME;
  33166. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_GET_LOCK_STATUS获取电视墙锁定状态
  33167. typedef struct tagNET_IN_MONITORWALL_GET_LOCK_STATUS
  33168. {
  33169. DWORD dwSize;
  33170. int nChannel; // 通道
  33171. } NET_IN_MONITORWALL_GET_LOCK_STATUS;
  33172. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_GET_LOCK_STATUS获取电视墙锁定状态
  33173. typedef struct tagNET_OUT_MONITORWALL_GET_LOCK_STATUS
  33174. {
  33175. DWORD dwSize;
  33176. BOOL bLock; // 是否锁定,true:锁定;false:解除锁定
  33177. } NET_OUT_MONITORWALL_GET_LOCK_STATUS;
  33178. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_LOCK锁定电视墙
  33179. typedef struct tagNET_IN_MONITORWALL_LOCK
  33180. {
  33181. DWORD dwSize;
  33182. int nChannel; // 通道
  33183. BOOL bLock; // 是否锁定,true:锁定;false:解除锁定
  33184. BYTE byReserved[4]; // 保留字节
  33185. } NET_IN_MONITORWALL_LOCK;
  33186. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_LOCK锁定电视墙
  33187. typedef struct tagNET_OUT_MONITORWALL_LOCK
  33188. {
  33189. DWORD dwSize;
  33190. } NET_OUT_MONITORWALL_LOCK;
  33191. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_SET_VSYNC 电视墙Vsync校准
  33192. typedef struct tagNET_IN_MONITORWALL_SET_VSYNC
  33193. {
  33194. DWORD dwSize; // 结构体大小
  33195. int nChannel; // 通道号
  33196. char szCompositeID[64]; // 拼接屏ID
  33197. }NET_IN_MONITORWALL_SET_VSYNC;
  33198. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_SET_VSYNC 电视墙Vsync校准
  33199. typedef struct tagNET_OUT_MONITORWALL_SET_VSYNC
  33200. {
  33201. DWORD dwSize; // 结构体大小
  33202. }NET_OUT_MONITORWALL_SET_VSYNC;
  33203. ///@brief 需要更新的URL信息
  33204. typedef struct tagNET_UPDATE_URL_INFO
  33205. {
  33206. char szOldURL[512]; // 已上墙的视频源URL
  33207. char szNewURL[512]; // 需更新的视频源URL
  33208. BYTE bReserved[1024]; // 保留字节
  33209. } NET_UPDATE_URL_INFO;
  33210. ///@brief CLIENT_OperateMonitorWall接口输入参数=>NET_MONITORWALL_OPERATE_UPDATE_SOURCE_URL 更新已上墙的视频源URL
  33211. typedef struct tagNET_IN_MONITORWALL_UPDATE_SOURCE_URL
  33212. {
  33213. DWORD dwSize; // 结构体大小
  33214. UINT nUpdateURLNum; // 需要更新的URL信息个数, 最大支持256个
  33215. NET_UPDATE_URL_INFO *pstuUpdateURL; // 需要更新的URL信息, 资源由用户申请和释放,申请大小nUpdateURLNum*sizeof(NET_UPDATE_URL_INFO)
  33216. } NET_IN_MONITORWALL_UPDATE_SOURCE_URL;
  33217. ///@brief CLIENT_OperateMonitorWall接口输出参数=>NET_MONITORWALL_OPERATE_UPDATE_SOURCE_URL 更新已上墙的视频源URL
  33218. typedef struct tagNET_OUT_MONITORWALL_UPDATE_SOURCE_URL
  33219. {
  33220. DWORD dwSize; // 结构体大小
  33221. } NET_OUT_MONITORWALL_UPDATE_SOURCE_URL;
  33222. /************************************************************************/
  33223. /* U盘抓包 */
  33224. /************************************************************************/
  33225. ///@brief 过滤协议类型
  33226. typedef enum tagEM_SNIFFER_FILTER_PROTOCOL
  33227. {
  33228. EM_SNIFFER_FILTER_PROTOCOL_UNKNOWN, // 未知
  33229. EM_SNIFFER_FILTER_PROTOCOL_TCP, // TCP
  33230. EM_SNIFFER_FILTER_PROTOCOL_UDP, // UDP
  33231. }EM_SNIFFER_FILTER_PROTOCOL;
  33232. ///@brief 抓包过滤元素
  33233. typedef struct tagNET_SNIFFER_FILTER_ELEMENT
  33234. {
  33235. char szSrcIP[64]; // 源地址
  33236. char szDstIP[64]; // 目的地址
  33237. int nSrcPort; // 源端口
  33238. int nDstPort; // 目的端口
  33239. EM_SNIFFER_FILTER_PROTOCOL emProtocol; // 协议类型
  33240. BYTE byReserved[60]; // 保留字段
  33241. }NET_SNIFFER_FILTER_ELEMENT;
  33242. ///@brief 抓包过滤规则
  33243. typedef struct tagNET_SNIFFER_FILTER
  33244. {
  33245. int nMaxElemet; // 有效的stElemetsge个数
  33246. NET_SNIFFER_FILTER_ELEMENT stuElemets[8]; // 过滤五元组的数组
  33247. int nFilterType; // 0: 取上述全部五元组的或集作为过滤条件; 1: 取上述五元组或非作为过滤条件。
  33248. BYTE byReserved[256]; // 保留字段
  33249. }NET_SNIFFER_FILTER;
  33250. ///@brief CLIENT_StartSniffer 接口输入参数
  33251. typedef struct tagDH_IN_START_SNIFFER
  33252. {
  33253. DWORD dwSize;
  33254. const char* pszNetInterface; // 网卡名称
  33255. const char* pszPath; // 抓包存储文件名, 空表示保存到默认路径
  33256. int nSaveType; // 文件类型, 0-Wireshark/Tcpdump 1-Remotecap 流式远程抓包,即通过 CLIENT_AttachSniffer
  33257. const char* pszFilter; // 过滤条件, 如"host 172.9.88.200 and port 8080 and tcp"
  33258. int nCaptureTime; // 抓包超时时间,单位:秒, 0 则默认不超时.
  33259. unsigned int nCurrentFileSize; // 指定此次抓包的最大大小, 单位kb
  33260. BOOL bFilterEx; // 高优先级规则使能,若为真,则不采用pszFilter里的过滤规则
  33261. NET_SNIFFER_FILTER stuFilterEx; // 高优先级的过滤规则
  33262. } DH_IN_START_SNIFFER;
  33263. ///@brief CLIENT_StartSniffer 接口输出参数
  33264. typedef struct tagDH_OUT_START_SNIFFER
  33265. {
  33266. DWORD dwSize;
  33267. } DH_OUT_START_SNIFFER;
  33268. ///@brief 抓包信息
  33269. typedef struct tagDH_SNIFFER_INFO
  33270. {
  33271. DWORD dwSize;
  33272. DWORD nSnifferID; // 抓包ID, 无抓包ID为0
  33273. char szPath[256]; // 抓包存储文件名。若当前网卡无正在进行的抓包任务,则为空
  33274. char szPathEx[10][256]; // 默认路径及start路径传入下的抓包文件。按时间从新到旧排序。
  33275. int nRetPathEx; // 实际返回的szPathEx有效个数
  33276. UINT nFileSize[10]; // szPathEx元素对应文件大小, 单位字节
  33277. } DH_SNIFFER_INFO;
  33278. ///@brief CLIENT_GetSnifferInfo 接口输入参数
  33279. typedef struct tagDH_IN_GET_SNIFFER_INFO
  33280. {
  33281. DWORD dwSize;
  33282. const char* pszNetInterface;
  33283. } DH_IN_GET_SNIFFER_INFO;
  33284. ///@brief CLIENT_GetSnifferInfo 接口输入参数
  33285. typedef struct tagDH_OUT_GET_SNIFFER_INFO
  33286. {
  33287. DWORD dwSize;
  33288. DH_SNIFFER_INFO* pstuSniffers; // 抓包信息数组, 用户分配内存
  33289. int nMaxSnifferCount; // 抓包信息数组大小, 用户填写
  33290. int nRetSnifferCount; // 返回的抓包信息数量
  33291. } DH_OUT_GET_SNIFFER_INFO;
  33292. ///@brief 调试日志回调函数
  33293. typedef void (CALLBACK *fAttachSniffer)(LLONG lAttchHandle, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  33294. ///@brief CLIENT_AttachSniffer 接口入参
  33295. typedef struct tagNET_IN_ATTACH_SNIFFER
  33296. {
  33297. DWORD dwSize;
  33298. fAttachSniffer cbSniffer; // 回调函数
  33299. LDWORD dwUser; // 用户信息
  33300. }NET_IN_ATTACH_SNIFFER;
  33301. ///@brief CLIENT_AttachSniffer 接口出参
  33302. typedef struct tagNET_OUT_ATTACH_SNIFFER
  33303. {
  33304. DWORD dwSize;
  33305. }NET_OUT_ATTACH_SNIFFER;
  33306. ///@brief CLIENT_GetSnifferCaps 接口入参
  33307. typedef struct tagNET_IN_GET_SNIFFER_CAP
  33308. {
  33309. DWORD dwSize;
  33310. }NET_IN_GET_SNIFFER_CAP;
  33311. ///@brief CLIENT_GetSnifferCaps 接口出参
  33312. typedef struct tagNET_OUT_GET_SNIFFER_CAP
  33313. {
  33314. DWORD dwSize;
  33315. BOOL bRemoteCap; // 是否支持远程流式抓包
  33316. }NET_OUT_GET_SNIFFER_CAP;
  33317. /************************************************************************/
  33318. /* 文件管理 */
  33319. /************************************************************************/
  33320. ///@brief 格式化分区信息
  33321. typedef struct tagDH_FORMAT_PATITION
  33322. {
  33323. DWORD dwSize;
  33324. const char* pszStorageName; // 存储设备名称
  33325. const char* pszPatitionName; // 分区名
  33326. const char* pszFileSystem; // 文件系统格式
  33327. } DH_FORMAT_PATITION;
  33328. ///@brief CLIENT_CreateRemoteFile 接口输入参数
  33329. typedef struct tagDH_IN_CREATE_REMOTE_FILE
  33330. {
  33331. DWORD dwSize;
  33332. const char* pszPath; // 文件名
  33333. BOOL bDirectory; // 是否文件夹
  33334. } DH_IN_CREATE_REMOTE_FILE;
  33335. ///@brief CLIENT_CreateRemoteFile 接口输出参数
  33336. typedef struct tagDH_OUT_CREATE_REMOTE_FILE
  33337. {
  33338. DWORD dwSize;
  33339. } DH_OUT_CREATE_REMOTE_FILE;
  33340. ///@brief CLIENT_RemoveRemoteFiles 接口输入参数
  33341. typedef struct tagDH_IN_REMOVE_REMOTE_FILES
  33342. {
  33343. DWORD dwSize;
  33344. const char** pszPath; // 文件路径数组指针
  33345. int nFileCount; // 文件路径数量
  33346. } DH_IN_REMOVE_REMOTE_FILES;
  33347. ///@brief CLIENT_RemoveRemoteFiles 接口输出参数
  33348. typedef struct tagDH_OUT_REMOVE_REMOTE_FILES
  33349. {
  33350. DWORD dwSize;
  33351. } DH_OUT_REMOVE_REMOTE_FILES;
  33352. ///@brief CLIENT_RenameRemoteFile 接口输入参数
  33353. typedef struct tagDH_IN_RENAME_REMOTE_FILE
  33354. {
  33355. DWORD dwSize;
  33356. const char* pszOldPath; // 旧文件名
  33357. const char* pszNewPath; // 新文件名
  33358. } DH_IN_RENAME_REMOTE_FILE;
  33359. ///@brief CLIENT_RenameRemoteFile 接口输出参数
  33360. typedef struct tagDH_OUT_RENAME_REMOTE_FILE
  33361. {
  33362. DWORD dwSize;
  33363. } DH_OUT_RENAME_REMOTE_FILE;
  33364. ///@brief 文件/目录信息
  33365. typedef struct tagDH_REMOTE_FILE_INFO
  33366. {
  33367. DWORD dwSize;
  33368. BOOL bDirectory; // 是否文件夹
  33369. char szPath[MAX_PATH]; // 路径
  33370. NET_TIME stuCreateTime; // 创建时间
  33371. NET_TIME stuModifyTime; // 修改时间
  33372. INT64 nFileSize; // 文件大小
  33373. char szFileType[DH_FILE_TYPE_LEN]; // 文件类型
  33374. } DH_REMOTE_FILE_INFO;
  33375. ///@brief 获取文件的条件
  33376. typedef enum tagDH_REMOTE_FILE_COND
  33377. {
  33378. DH_REMOTE_FILE_COND_NONE, // 无条件
  33379. DH_REMOTE_FILE_COND_VOICE, // 语音联动的文件,*无法*按路径获取,*只能*获取获取文件名称
  33380. } DH_REMOTE_FILE_COND;
  33381. ///@brief CLIENT_ListRemoteFile 接口输入参数
  33382. typedef struct tagDH_IN_LIST_REMOTE_FILE
  33383. {
  33384. DWORD dwSize;
  33385. const char* pszPath; // 路径 当emCondition为DH_REMOTE_FILE_COND_VOICE时,这个字段无效
  33386. BOOL bFileNameOnly; // 只获取文件名称, 不返回文件夹信息, 文件信息中只有文件名有效 当emCondition为DH_REMOTE_FILE_COND_VOICE时,这个字段无效
  33387. DH_REMOTE_FILE_COND emCondition; // 指定获取文件的条件
  33388. } DH_IN_LIST_REMOTE_FILE;
  33389. ///@brief CLIENT_ListRemoteFile 接口输出参数
  33390. typedef struct tagDH_OUT_LIST_REMOTE_FILE
  33391. {
  33392. DWORD dwSize;
  33393. DH_REMOTE_FILE_INFO* pstuFiles; // 文件信息数组, 用户分配内存,大小为sizeof(DH_REMOTE_FILE_INFO)*nMaxFileCount
  33394. int nMaxFileCount; // 文件信息数组大小, 用户填写
  33395. int nRetFileCount; // 返回的文件数量
  33396. } DH_OUT_LIST_REMOTE_FILE;
  33397. ///@brief 设置文件属性—属性名称
  33398. typedef enum tagNET_SET_FILEATTR_ACTION
  33399. {
  33400. EM_SET_FILEATTR_ACTION_UNKNOWN = 0, // 未知
  33401. EM_SET_FILEATTR_ACTION_MARK, // 文件加锁
  33402. } NET_SET_FILEATTR_ACTION;
  33403. ///@brief CLIENT_SetFileAttribute 接口输入参数
  33404. typedef struct tagDH_IN_SET_FILEATTRIBUTE
  33405. {
  33406. DWORD dwSize;
  33407. unsigned int nDriveNo; // 磁盘号
  33408. unsigned int nPartition; // 分区号
  33409. unsigned int nCluster; // 簇号
  33410. NET_SET_FILEATTR_ACTION emAction; // 每种属性对应一种key,设置值由value决定
  33411. // 设置key:Mark 文件加锁,对应value,延长加锁时间(单位:天)
  33412. char szValue[DH_COMMON_STRING_64]; // 属性值
  33413. } DH_IN_SET_FILEATTRIBUTE;
  33414. ///@brief CLIENT_SetFileAttribute 接口输出参数
  33415. typedef struct tagDH_OUT_SET_FILEATTRIBUTE
  33416. {
  33417. DWORD dwSize;
  33418. } DH_OUT_SET_FILEATTRIBUTE;
  33419. ///@brief 手动弹出存储设备
  33420. typedef struct tagDH_EJECT_STORAGE_DEVICE
  33421. {
  33422. DWORD dwSize;
  33423. const char* pszStorageName; // 存储设备名称
  33424. } DH_EJECT_STORAGE_DEVICE;
  33425. ///@brief 手动装载存储设备
  33426. typedef struct tagDH_LOAD_STORAGE_DEVICE
  33427. {
  33428. DWORD dwSize;
  33429. const char* pszStorageName; // 存储设备名称
  33430. } DH_LOAD_STORAGE_DEVICE;
  33431. ///@brief CLIENT_UploadRemoteFile 接口输入参数(上传文件到设备)
  33432. typedef struct tagDH_IN_UPLOAD_REMOTE_FILE
  33433. {
  33434. DWORD dwSize;
  33435. const char* pszFileSrc; // 源文件路径
  33436. const char* pszFileDst; // 目标文件名称
  33437. const char* pszFolderDst; // 目标文件夹路径:可为NULL, NULL时设备使用默认路径
  33438. unsigned int nPacketLen; // 文件分包大小(字节): 0表示不分包
  33439. unsigned int nTimeOut; // 文件上传超时时间,填0时默认10s,字段CLIENT_StartUploadRemoteFile接口有效
  33440. } DH_IN_UPLOAD_REMOTE_FILE;
  33441. ///@brief CLIENT_UploadRemoteFile 接口输出参数(上传文件到设备)
  33442. typedef struct tagDH_OUT_UPLOAD_REMOTE_FILE
  33443. {
  33444. DWORD dwSize;
  33445. } DH_OUT_UPLOAD_REMOTE_FILE;
  33446. ///@brief CLIENT_DownloadRemoteFile 接口输入参数(文件下载)
  33447. typedef struct tagDH_IN_DOWNLOAD_REMOTE_FILE
  33448. {
  33449. DWORD dwSize;
  33450. const char* pszFileName; // 需要下载的文件名
  33451. const char* pszFileDst; // 存放文件路径
  33452. } DH_IN_DOWNLOAD_REMOTE_FILE;
  33453. ///@brief CLIENT_DownloadRemoteFile 接口输出参数(文件下载)
  33454. typedef struct tagDH_OUT_DOWNLOAD_REMOTE_FILE
  33455. {
  33456. DWORD dwSize;
  33457. DWORD dwMaxFileBufLen; // 文件缓存区pstFileBuf的大小, 由用户指定
  33458. char *pstFileBuf; // 文件缓存区, 由用户申请和释放
  33459. DWORD dwRetFileBufLen; // 缓存区中返回的实际文件数据大小
  33460. BYTE byReserved[4]; // 字节对齐
  33461. } DH_OUT_DOWNLOAD_REMOTE_FILE;
  33462. ///@brief CLIENT_DownloadPieceFile 接口输入参数(文件下载)
  33463. typedef struct tagNET_IN_DOWNLOAD_PIECE_FILE
  33464. {
  33465. DWORD dwSize;
  33466. char szFileName[MAX_PATH]; // 需要下载的文件名,支持全路径
  33467. UINT nOffSet; // 下载偏移,单位字节
  33468. // 如果文件总长度为50KB,每次请求下载数据量为32KB,那么第一次请求时,nOffSet为0,第二次请求nOffSet为32KB
  33469. UINT nNeedLength; // 请求下载数据量,单位字节,建议为32KB,最大不超过4MB
  33470. } NET_IN_DOWNLOAD_PIECE_FILE;
  33471. ///@brief CLIENT_DownloadPieceFile 接口输出参数(文件下载)
  33472. typedef struct tagNET_OUT_DOWNLOAD_PIECE_FILE
  33473. {
  33474. DWORD dwSize;
  33475. UINT nFileLength; // 文件总长度
  33476. UINT nPacketLength; // 本次返回的数据长度,单位字节,建议为32KB,最大不超过4MB
  33477. char* szBuffer; // 本次请求的文件数据,由用户申请内存,大小为nBufferLen
  33478. UINT nBufferLen; // 本次请求的文件数据长度,单位字节
  33479. } NET_OUT_DOWNLOAD_PIECE_FILE;
  33480. ///@brief CLIENT_GetMediaFileInfo 接口输入参数
  33481. typedef struct tagNET_IN_GET_NEDIA_FILE_INFO
  33482. {
  33483. DWORD dwSize; // 结构体大小
  33484. BYTE byReserved[4]; // 字节对齐
  33485. char szFilePath[640]; // 文件路径
  33486. } NET_IN_GET_NEDIA_FILE_INFO;
  33487. ///@brief 媒体文件信息
  33488. typedef struct tagNET_MEDIA_FILE_INFO
  33489. {
  33490. UINT nDuration; // 文件持续时间( 单位秒)
  33491. BYTE byReserved[2044]; // 保留字节
  33492. } NET_MEDIA_FILE_INFO;
  33493. ///@brief CLIENT_GetMediaFileInfo 接口输出参数
  33494. typedef struct tagNET_OUT_GET_NEDIA_FILE_INFO
  33495. {
  33496. DWORD dwSize; // 结构体大小
  33497. NET_MEDIA_FILE_INFO stuMediaFileInfo; // 媒体文件信息
  33498. } NET_OUT_GET_NEDIA_FILE_INFO;
  33499. ///@brief CLIENT_StartListMediaFileInfo 接口输入参数
  33500. typedef struct tagNET_IN_START_LIST_FILE_INFO
  33501. {
  33502. DWORD dwSize; // 结构体大小
  33503. BYTE byReserved[4]; // 字节对齐
  33504. char szFilePath[600]; // 获取路径
  33505. } NET_IN_START_LIST_FILE_INFO;
  33506. ///@brief CLIENT_StartListMediaFileInfo 接口输出参数
  33507. typedef struct tagNET_OUT_START_LIST_FILE_INFO
  33508. {
  33509. DWORD dwSize; // 结构体大小
  33510. } NET_OUT_START_LIST_FILE_INFO;
  33511. ///@brief CLIENT_DoListMediaFileInfo 接口输入参数
  33512. typedef struct tagNET_IN_DO_LIST_FILE_INFO
  33513. {
  33514. DWORD dwSize; // 结构体大小
  33515. UINT nCount; // 本次查询的数量
  33516. } NET_IN_DO_LIST_FILE_INFO;
  33517. ///@brief 文件元素类型
  33518. typedef enum tagEM_LIST_ELEMENT_TYPE
  33519. {
  33520. EM_LIST_ELEMENT_TYPE_UNKNOWN, // 未知
  33521. EM_LIST_ELEMENT_TYPE_FILE, // 文件
  33522. EM_LIST_ELEMENT_TYPE_DIRECTORY, // 目录
  33523. } EM_LIST_ELEMENT_TYPE;
  33524. ///@brief 文件信息
  33525. typedef struct tagNET_FILE_ELEMENT_INFO
  33526. {
  33527. NET_TIME stuCreateTime; // 创建时间
  33528. NET_TIME stuModifyTime; // 修改时间
  33529. TP_U64 nFileSize; // 文件大小, 单位:字节
  33530. char szPath[600]; // 绝对路径
  33531. char szFileType[32]; // 文件类型
  33532. BYTE byReserved[2048]; // 保留字节
  33533. } NET_FILE_ELEMENT_INFO;
  33534. ///@brief 目录信息
  33535. typedef struct tagNET_DIRECTORY_ELEMENT_INFO
  33536. {
  33537. NET_TIME stuCreateTime; // 创建时间
  33538. char szPath[600]; // 绝对路径
  33539. BYTE byReserved[2048]; // 保留字节
  33540. } NET_DIRECTORY_ELEMENT_INFO;
  33541. ///@brief 文件元素信息
  33542. typedef struct tagNET_LIST_ELEMENT_INFO
  33543. {
  33544. NET_FILE_ELEMENT_INFO stuFileInfo; // 文件信息, emElementType 为 EM_LIST_ELEMENT_TYPE_FILE 时有效
  33545. NET_DIRECTORY_ELEMENT_INFO stuDirectoryInfo; // 目录信息, emElementType 为 EM_LIST_ELEMENT_TYPE_DIRECTORY 时有效
  33546. EM_LIST_ELEMENT_TYPE emElementType; // 文件元素类型
  33547. BYTE byReserved[2044]; // 保留字节
  33548. } NET_LIST_ELEMENT_INFO;
  33549. ///@brief CLIENT_DoListMediaFileInfo 接口输出参数
  33550. typedef struct tagNET_OUT_DO_LIST_FILE_INFO
  33551. {
  33552. DWORD dwSize; // 结构体大小
  33553. UINT nMaxListElementNum; // 文件元素信息最大个数
  33554. UINT nRetListElementNum; // 文件元素信息实际返回个数
  33555. NET_LIST_ELEMENT_INFO *pstListElementInfo; // 文件元素信息, 内存由用户申请和释放, 申请大小sizeof(NET_LIST_ELEMENT_INFO)*nMaxListElementNum
  33556. } NET_OUT_DO_LIST_FILE_INFO;
  33557. ///@brief 文件当前状态
  33558. typedef enum tagEM_STATE_MODE
  33559. {
  33560. EM_STATE_MODE_UNKNOWN, // 未知
  33561. EM_STATE_MODE_PREPARING, // 等待上传下载
  33562. EM_STATE_MODE_LOADING, // 上传下载中
  33563. EM_STATE_MODE_SUCCEEDED, // 上传下载完成
  33564. EM_STATE_MODE_FAILED, // 上传下载失败
  33565. EM_STATE_MODE_CANCELLED, // 上传下载取消
  33566. }EM_STATE_MODE;
  33567. ///@brief CLIENT_NotifyFileUploadProgress 接口输入参数
  33568. typedef struct tagNET_IN_NOTIFY_FILE_UPLOAD_PROGRESS_INFO
  33569. {
  33570. DWORD dwSize; // 结构体大小
  33571. /*文件上传进度为平台从设备下载文件的下载进度*/
  33572. UINT nProgress; // 文件上传进度,取值范围0~100
  33573. /*以下文件名与文件唯一标识可通过文件查询接口CLIENT_FindFileEx, emType=DH_FILE_QUERY_MOBILE_ENFORCE查询得到*/
  33574. char szFileName[256]; // 已废弃,请使用szFilePath
  33575. char szUniqueID[128]; // 文件唯一标识
  33576. char szFilePath[256]; // 文件路径
  33577. EM_STATE_MODE emState; // 文件当前状态
  33578. UINT nErrorCode; // 当emState为EM_STATE_MODE_FAILED时有效,0xff-未知错误(255),0x01-文件不存在(1),0x02-文件重复上传(2)
  33579. char szReserved[1784]; // 保留字节
  33580. } NET_IN_NOTIFY_FILE_UPLOAD_PROGRESS_INFO;
  33581. ///@brief CLIENT_NotifyFileUploadProgress 接口输出参数
  33582. typedef struct tagNET_OUT_NOTIFY_FILE_UPLOAD_PROGRESS_INFO
  33583. {
  33584. DWORD dwSize; // 结构体大小
  33585. } NET_OUT_NOTIFY_FILE_UPLOAD_PROGRESS_INFO;
  33586. ///@brief 文件信息
  33587. typedef struct tagNET_REMOVE_MEDIA_FILE_INFO
  33588. {
  33589. char szFileName[128]; // 文件名,为空字符串表示按通道进行删除录像和图片文件
  33590. UINT nPicId; // 图片的唯一标识,为空表示按通道进行删除录像和图片文件
  33591. int nChannelsNum; // 通道号个数
  33592. int nChannels[256]; // 通道号列表,最多256个通道;支持数组为空,空表示不以通道作为删除条件;-1代表删除全通道
  33593. char szReserved[128]; // 保留字节
  33594. }NET_REMOVE_MEDIA_FILE_INFO;
  33595. ///@brief CLIENT_RemoveMediaFilesInfo 接口输入参数
  33596. typedef struct tagNET_IN_REMOVE_MEDIA_FILES_INFO
  33597. {
  33598. DWORD dwSize; // 结构体大小
  33599. int nFileInfoNum; // 文件信息实际个数
  33600. NET_REMOVE_MEDIA_FILE_INFO stuFileInfo[256]; // 文件信息
  33601. NET_TIME stuStartTime; // 开始时间
  33602. NET_TIME stuEndTime; // 结束时间
  33603. }NET_IN_REMOVE_MEDIA_FILES_INFO;
  33604. ///@brief 正在存储的录像,无法删除
  33605. typedef struct tagNET_BEING_STORED_VIDEO
  33606. {
  33607. char szVideoFileName[128]; // 录像文件名
  33608. char szReserved[128]; // 保留字节
  33609. }NET_BEING_STORED_VIDEO;
  33610. ///@brief CLIENT_RemoveMediaFilesInfo 接口输出参数
  33611. typedef struct tagNET_OUT_REMOVE_MEDIA_FILES_INFO
  33612. {
  33613. DWORD dwSize; // 结构体大小
  33614. int nBeingStoredVideoNum; // 正在存储的录像个数
  33615. NET_BEING_STORED_VIDEO stuBeingStoredVideo[128]; // 正在存储的录像,无法删除
  33616. }NET_OUT_REMOVE_MEDIA_FILES_INFO;
  33617. /************************************************************************/
  33618. /* 级联设备 */
  33619. /************************************************************************/
  33620. ///@brief 级联设备搜索条件
  33621. typedef struct tagDH_IN_SEARCH_CONDITON
  33622. {
  33623. DWORD dwSize;
  33624. const char* pMachineName; // 设备名称或编号
  33625. const char* pMachineAddr; // 设备部署地点(如:滨江区.江南大道.伟业路口)
  33626. const char* pSerialNo; // 设备序列号
  33627. const char* pChannelName; // 视频输入通道名
  33628. } DH_MATRIX_SEARCH_CONDITON;
  33629. ///@brief CLIENT_MatrixSearch 接口输入参数(搜索级联设备)
  33630. typedef struct tagDH_IN_MATIRX_SEARCH
  33631. {
  33632. DWORD dwSize;
  33633. const char* pSerialNo; // 搜索设备序列号,"Local"-本设备,"Root"-根设备,其它设备以设备的序列号表示
  33634. DH_MATRIX_SEARCH_CONDITON stuCondition; // 搜索条件, 可以为单一条件或组合
  33635. } DH_IN_MATRIX_SEARCH;
  33636. ///@brief CLIENT_MatrixSearch 接口输出参数(搜索级联设备)
  33637. typedef struct tagDH_OUT_MATRIX_SEARCH
  33638. {
  33639. DWORD dwSize;
  33640. DH_REMOTE_DEVICE* pstuRemoteDevices; // 设备列表, 用户分配内存,大小为sizeof(DH_REMOTE_DEVICE)*nMaxDeviceCount
  33641. int nMaxDeviceCount; // 设备列表最大值, 用户填写
  33642. int nRetDeviceCount; // 实际返回设备个数
  33643. } DH_OUT_MATRIX_SEARCH;
  33644. ///@brief CLIENT_GetMatrixTree 接口输入参数
  33645. typedef struct tagDH_IN_GET_MATRIX_TREE
  33646. {
  33647. DWORD dwSize;
  33648. const char* pSerialNo; // 搜索设备序列号,"Local"-本设备,"Root"-根设备,其它设备以设备的序列号表示
  33649. int nLevel; // 获得几级设备信息,0-整个设备树,1-本级设备,2-本级设备+本设备级联下一级设备,
  33650. // 3-本级设备+本设备级联下一级设备+下一级设备的下一级设备
  33651. } DH_IN_GET_MATRIX_TREE;
  33652. ///@brief 级联设备信息
  33653. typedef struct tagDH_CASCADE_DEVICE_INFO
  33654. {
  33655. DWORD dwSize;
  33656. int nLevel; // 当前设备所属级数
  33657. char szPath[MAX_PATH]; // 设备所属路径,格式:name1.name2.name3...
  33658. DH_REMOTE_DEVICE stuDeviceInfo; // 设备详细信息
  33659. } DH_CASCADE_DEVICE_INFO;
  33660. ///@brief CLIENT_GetMatrixTree 接口输出参数
  33661. typedef struct tagDH_OUT_GET_MATRIX_TREE
  33662. {
  33663. DWORD dwSize;
  33664. DH_CASCADE_DEVICE_INFO* pstuRemoteDevices; // 级联设备信息
  33665. int nMaxDeviceCount; // 级联设备信息最大值
  33666. int nRetDeviceCount; // 返回的实际设备个数
  33667. } DH_OUT_GET_MATRIX_TREE;
  33668. ///@brief CLIENT_GetSuperiorMatrixList 接口输入参数
  33669. typedef struct tagDH_IN_GET_SUPERIOR_MATRIX_LIST
  33670. {
  33671. DWORD dwSize;
  33672. } DH_IN_GET_SUPERIOR_MATRIX_LIST;
  33673. ///@brief CLIENT_GetSuperiorMatrixList 接口输出参数
  33674. typedef struct tagDH_OUT_GET_SUPERIOR_MATRIX_LIST
  33675. {
  33676. DWORD dwSize;
  33677. DH_REMOTE_DEVICE* pstuRemoteDevices; // 设备列表, 用户分配内存
  33678. int nMaxDeviceCount; // 设备列表最大值, 用户填写
  33679. int nRetDeviceCount; // 实际返回设备个数
  33680. } DH_OUT_GET_SUPERIOR_MATRIX_LIST;
  33681. ////////////////////////////////录像备份恢复//////////////////////////////////////
  33682. ///@brief 最后传递成功的数据包类型
  33683. typedef enum tagENUM_RECORDBACKUP_FILE_PROGRESS_TYPE
  33684. {
  33685. ENUM_RECORDBACKUP_FILE_PROGRESS_UNKNOWN, // 未知
  33686. ENUM_RECORDBACKUP_FILE_PROGRESS_HEADER_PACKAGE, // 文件头包
  33687. ENUM_RECORDBACKUP_FILE_PROGRESS_INDEX_PACKAGE, // 索引包
  33688. ENUM_RECORDBACKUP_FILE_PROGRESS_STREAM_PACKET, // 码流包
  33689. ENUM_RECORDBACKUP_FILE_PROGRESS_EMPTY_PACKET, // 文件尾空包
  33690. }ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE;
  33691. ///@brief 录像备份进度
  33692. typedef struct tagNET_RECORD_BACKUP_PROGRESS
  33693. {
  33694. char szFilePath[256]; // 当前备份文件名
  33695. ENUM_RECORDBACKUP_FILE_PROGRESS_TYPE emType; // 最后传递成功的数据包类型
  33696. int nPosition; // 最后传递成功的数据包位置
  33697. UINT nPercent; // 任务进度百分比,0-100
  33698. int nRemainingTime; // 任务预计剩余时长,单位秒。-1 – 未知; 0 – 完成;
  33699. char szReserved[512]; // 保留字节
  33700. } NET_RECORD_BACKUP_PROGRESS;
  33701. ///@brief 失败的原因
  33702. typedef enum tagEM_RECORD_BACKUP_FAIL_REASON
  33703. {
  33704. EM_RECORD_BACKUP_FAIL_REASON_UNKNOW, // 未知
  33705. EM_RECORD_BACKUP_FAIL_REASON_LOGIN_FAIL, // 登入失败
  33706. EM_RECORD_BACKUP_FAIL_REASON_NO_FILES, // 没有查询到录像
  33707. EM_RECORD_BACKUP_FAIL_REASON_DOWNLOAD_NET_ERROR, // 下载过程中网络断开
  33708. EM_RECORD_BACKUP_FAIL_REASON_UNKNOW_ERROR, // 未知错误
  33709. EM_RECORD_BACKUP_FAIL_REASON_USER_NAME_NOT_VALID, // 用户名无效
  33710. EM_RECORD_BACKUP_FAIL_REASON_PASSWORD_NOT_VALID, // 密码错误
  33711. EM_RECORD_BACKUP_FAIL_REASON_PEER_HAS_BEEN_BLOCKED, // 地址被屏蔽
  33712. EM_RECORD_BACKUP_FAIL_REASON_PEER_IN_BLOCK_LIST, // 地址在禁止访问名单内
  33713. EM_RECORD_BACKUP_FAIL_REASON_TOO_MANY_CONNECTIONS, // 超出最大连接数
  33714. EM_RECORD_BACKUP_FAIL_REASON_ACCOUNT_HAS_BEEN_BLOCKED, // 账号被锁定
  33715. EM_RECORD_BACKUP_FAIL_REASON_LOGIN_CONNECT_FAILED, // 登入时网络连接失败
  33716. EM_RECORD_BACKUP_FAIL_REASON_USER_OR_PWD_NOT_VALID, // 登入用户名或者密码错误
  33717. EM_RECORD_BACKUP_FAIL_REASON_LOGIN_CONNECT_TIMEOUT, // 登入超时
  33718. } EM_RECORD_BACKUP_FAIL_REASON;
  33719. ///@brief 录像备份恢复任务信息
  33720. typedef struct tagDH_RECORD_BACKUP_RESTORE_TASK
  33721. {
  33722. DWORD dwSize;
  33723. unsigned int nTaskID; // 任务ID
  33724. char szDeviceID[DH_DEV_ID_LEN_EX]; // 设备ID
  33725. int nChannelID; // 通道号
  33726. NET_TIME stuStartTime; // 录像开始时间
  33727. NET_TIME stuEndTime; // 录像结束时间
  33728. int nState; // 当前备份状态, 0-等待, 1-进行中, 2-完成, 3-失败, 4-暂停
  33729. NET_RECORD_BACKUP_PROGRESS stuProgress; // 当前备份进度
  33730. EM_RECORD_BACKUP_FAIL_REASON emFailReason; // 失败的原因, 当nState字段为3的情况下有效;
  33731. NET_TIME stuTaskStartTime; // 任务开始时间, nState为"进行中"、"已完成"、"失败"的情况下该时间点有效;
  33732. NET_TIME stuTaskEndTime; // 任务结束时间, nState为"已完成"、"失败"的情况下该时间点有效;
  33733. int nRemoteChannel; // 备份源通道
  33734. } DH_REC_BAK_RST_TASK;
  33735. ///@brief CLIENT_AddRecordBackupRestoreTask接口输入参数
  33736. typedef struct tagDH_IN_ADD_RECORD_BACKUP_RESTORE_TASK
  33737. {
  33738. DWORD dwSize;
  33739. const char* pszDeviceID; // 设备ID
  33740. int* pnChannels; // 通道数组
  33741. int nChannelCount; // 通道数组大小,由用户申请内存,大小为sizeof(int)*nChannelCount
  33742. NET_TIME stuStartTime; // 起始时间
  33743. NET_TIME stuEndTime; // 结束时间
  33744. char szUrl[256]; // RTSP URL
  33745. } DH_IN_ADD_REC_BAK_RST_TASK;
  33746. ///@brief 远程录像备份录像类型
  33747. typedef enum tagENUM_RECORDBACKUP_FILE_TYPE
  33748. {
  33749. ENUM_RECORDBACKUP_FILE_COMMON, // 普通录像
  33750. ENUM_RECORDBACKUP_FILE_ALARM, // 报警录像
  33751. ENUM_RECORDBACKUP_FILE_MOTIONDETECT, // 动检录像
  33752. }ENUM_RECORDBACKUP_FILE_TYPE;
  33753. ///@brief 远程录像备份
  33754. typedef struct tagNET_RECORDBACKUP_REMOTE_TASK
  33755. {
  33756. UINT nChannelCount; // 通道有效个数
  33757. UINT nChannels[512]; // 通道号数组
  33758. UINT nRemoteChannels[512]; // 远程通道号数组
  33759. char szDeviceIP[64]; // IP地址
  33760. UINT nPort; // 端口
  33761. char szUserName[64]; // 用户名
  33762. char szPassword[64]; // 密码
  33763. NET_TIME stuStartTime; // 开始时间
  33764. NET_TIME stuEndTime; // 结束时间
  33765. ENUM_RECORDBACKUP_FILE_TYPE emFileType; // 录像类型
  33766. NET_STREAM_TYPE emStreamType; // 视频码流
  33767. BYTE byReserved[512]; // 保留字段
  33768. }NET_RECORDBACKUP_REMOTE_TASK;
  33769. ///@brief 任务ID信息
  33770. typedef struct tagNET_RECORDBACKUP_TASKID_INFO
  33771. {
  33772. UINT nTaskIDs[512]; // 通道任务ID
  33773. UINT nTaskIDCount; // 通道任务ID有效个数
  33774. BYTE byReserved[1024];// 保留字段
  33775. }NET_RECORDBACKUP_TASKID_INFO;
  33776. ///@brief CLIENT_AddRecordBackupRestoreRemoteTask 接口入参
  33777. typedef struct tagNET_IN_ADD_RECORDBACKUP_REMOTE_TASK
  33778. {
  33779. DWORD dwSize;
  33780. int nTaskCount; // 任务有效个数, 最大支持16个
  33781. NET_RECORDBACKUP_REMOTE_TASK *pstuTask; // 任务信息, 由用户申请内存, 大小为 sizeof(NET_RECORDBACKUP_REMOTE_TASK)*nTaskCount
  33782. }DH_IN_ADD_REC_BAK_RST_REMOTE_TASK;
  33783. ///@brief CLIENT_AddRecordBackupRestoreRemoteTask 接口出参
  33784. typedef struct tagNET_OUT_ADD_RECORDBACKUP_REMOTE_TASK
  33785. {
  33786. DWORD dwSize;
  33787. NET_RECORDBACKUP_TASKID_INFO *pstuID; // 任务ID信息, 由用户申请内存, 大小为 sizeof(NET_RECORDBACKUP_TASKID_INFO)*nTaskCount
  33788. }DH_OUT_ADD_REC_BAK_RST_REMOTE_TASK;
  33789. ///@brief CLIENT_RemoveRecordBackupRestoreTask接口输入参数
  33790. typedef struct tagDH_IN_REMOVE_RECORD_BACKUP_RESTORE_TASK
  33791. {
  33792. DWORD dwSize;
  33793. unsigned int* pnTaskIDs; // 任务ID数组,由用户申请内存,大小为sizeof(int)*nTaskCount
  33794. int nTaskCount; // 任务数量
  33795. } DH_IN_REMOVE_REC_BAK_RST_TASK;
  33796. ///@brief CLIENT_QueryRecordBackupRestoreTask接口输入参数
  33797. typedef struct tagDH_IN_QUERY_RECORD_BACKUP_RESTORE_TASK
  33798. {
  33799. DWORD dwSize;
  33800. } DH_IN_QUERY_REC_BAK_RST_TASK;
  33801. ///@brief CLIENT_QueryRecordBackupRestoreTask接口输出参数
  33802. typedef struct tagDH_OUT_QUERY_RECORD_BACKUP_RESTORE_TASK
  33803. {
  33804. DWORD dwSize;
  33805. DH_REC_BAK_RST_TASK* pTasks; // 任务数组,由用户申请内存,大小为sizeof(DH_REC_BAK_RST_TASK)*nMaxCount
  33806. int nMaxCount; // 数组大小
  33807. int nReturnCount; // 返回的任务数量
  33808. } DH_OUT_QUERY_REC_BAK_RST_TASK;
  33809. ///@brief 根据条件查询备份任务的查询方式
  33810. typedef enum tagEM_RECORD_BACKUP_FIND_TYPE
  33811. {
  33812. EM_RECORD_BACKUP_FIND_TYPE_UNKNOWN, // 未知
  33813. EM_RECORD_BACKUP_FIND_TYPE_BY_TASKID, // 按照任务号查询
  33814. EM_RECORD_BACKUP_FIND_TYPE_BY_CHN_AND_TIME, // 按照通道和录制时间段查询
  33815. EM_RECORD_BACKUP_FIND_TYPE_BY_DEVICE_ID, // 按照主动注册的设备ID查
  33816. } EM_RECORD_BACKUP_FIND_TYPE;
  33817. ///@brief CLIENT_FindRecordBackupRestoreTaskInfos接口输入参数
  33818. typedef struct tagNET_IN_FIND_REC_BAK_RST_TASK
  33819. {
  33820. DWORD dwSize;
  33821. EM_RECORD_BACKUP_FIND_TYPE emFindType; // 根据条件查询备份任务的查询方式
  33822. DWORD dwTaskID; // 任务ID,emFindType为 EM_RECORD_BACKUP_FIND_TYPE_BY_TASKID 时有效,否则无效
  33823. int nLocalChannelID; // 设备端本地通道号,emFindType为 EM_RECORD_BACKUP_FIND_TYPE_BY_CHN_AND_TIME 时有效,否则无效
  33824. NET_TIME stuStartTime; // 备份录像的开始时间,emFindType为 EM_RECORD_BACKUP_FIND_TYPE_BY_CHN_AND_TIME 时有效,为EM_RECORD_BACKUP_FIND_TYPE_BY_DEVICE_ID时可选,否则无效
  33825. NET_TIME stuEndTime; // 备份录像的结束时间,emFindType为 EM_RECORD_BACKUP_FIND_TYPE_BY_CHN_AND_TIME 时有效,为EM_RECORD_BACKUP_FIND_TYPE_BY_DEVICE_ID时可选,否则无效
  33826. char szDeviceID[128]; // 主动注册的设备ID, emFindType为EM_RECORD_BACKUP_FIND_TYPE_BY_DEVICE_ID时必选有效,否则无效
  33827. } NET_IN_FIND_REC_BAK_RST_TASK;
  33828. ///@brief CLIENT_FindRecordBackupRestoreTaskInfos接口输出参数
  33829. typedef struct tagNET_OUT_FIND_REC_BAK_RST_TASK
  33830. {
  33831. DWORD dwSize;
  33832. DH_REC_BAK_RST_TASK* pTasks; // 任务数组,由用户申请内存,大小为sizeof(DH_REC_BAK_RST_TASK)*nMaxCount
  33833. int nMaxCount; // 数组大小
  33834. int nRetCount; // 返回的任务数量
  33835. } NET_OUT_FIND_REC_BAK_RST_TASK;
  33836. ///@brief 视频源信息
  33837. typedef struct tagDH_LOGIC_DEVICE_ADD_CAMERA_PARAM
  33838. {
  33839. DWORD dwSize;
  33840. const char* pszDeviceID; // 设备ID
  33841. int nChannel; // 通道号
  33842. } DH_LOGIC_DEVICE_ADD_CAMERA_PARAM;
  33843. ///@brief 添加视频源结果
  33844. typedef struct tagDH_LOGIC_DEVICE_ADD_CAMERA_RESULT
  33845. {
  33846. DWORD dwSize;
  33847. char szDeviceID[DH_DEV_ID_LEN]; // 设备ID
  33848. int nChannel; // 通道号
  33849. int nUniqueChannel; // 统一编号
  33850. int nFailedCode; // 失败码, 0-成功,1-Unique地址空间用完 2-已经添加
  33851. } DH_LOGIC_DEVICE_ADD_CAMERA_RESULT;
  33852. ///@brief CLIENT_MatrixAddCameras 接口输入参数
  33853. typedef struct tagDH_IN_ADD_LOGIC_DEVICE_CAMERA
  33854. {
  33855. DWORD dwSize;
  33856. DH_LOGIC_DEVICE_ADD_CAMERA_PARAM* pCameras; // 视频源信息数组,由用户申请内存,大小为sizeof(DH_LOGIC_DEVICE_ADD_CAMERA_PARAM)*nCameraCount
  33857. int nCameraCount; // 视频源信息数量
  33858. } DH_IN_ADD_LOGIC_DEVICE_CAMERA;
  33859. ///@brief CLIENT_MatrixAddCameras 接口输出参数
  33860. typedef struct tagDH_OUT_ADD_LOGIC_DEVICE_CAMERA
  33861. {
  33862. DWORD dwSize;
  33863. DH_LOGIC_DEVICE_ADD_CAMERA_RESULT* pResults; // 添加视频源结果数组, 用户分配内存,大小为sizeof(DH_LOGIC_DEVICE_ADD_CAMERA_RESULT)*nMaxResultCount
  33864. int nMaxResultCount; // 结果数组大小, 用户填写
  33865. int nRetResultCount; // 实际结果数量
  33866. } DH_OUT_ADD_LOGIC_DEVICE_CAMERA;
  33867. ///@brief 视频源信息
  33868. typedef struct tagDH_LOGIC_BYDEVICE_ADD_CAMERA_PARAM
  33869. {
  33870. DWORD dwSize;
  33871. int nUniqueChannel; // 统一编号
  33872. int nChannel; // 通道号
  33873. } DH_LOGIC_BYDEVICE_ADD_CAMERA_PARAM;
  33874. ///@brief 添加视频源结果信息
  33875. typedef struct tagDH_LOGIC_BYDEVICE_ADD_CAMERA_RESULT
  33876. {
  33877. DWORD dwSize;
  33878. int nUniqueChannel; // 统一编号
  33879. int nFailedCode; // 失败码, 0-成功,1-通道不支持设置
  33880. } DH_LOGIC_BYDEVICE_ADD_CAMERA_RESULT;
  33881. ///@brief CLIENT_MatrixAddCamerasByDevice 接口输入参数
  33882. typedef struct tagDH_IN_ADD_LOGIC_BYDEVICE_CAMERA
  33883. {
  33884. DWORD dwSize;
  33885. char pszDeviceID[DH_DEV_ID_LEN]; // 设备ID
  33886. DH_REMOTE_DEVICE stuRemoteDevice; // 远程设备信息
  33887. int nCameraCount; // 视频源信息数量
  33888. DH_LOGIC_BYDEVICE_ADD_CAMERA_PARAM* pCameras; // 视频源信息数组,用户分配内存,大小为sizeof(DH_LOGIC_BYDEVICE_ADD_CAMERA_PARAM)*nCameraCount
  33889. }DH_IN_ADD_LOGIC_BYDEVICE_CAMERA;
  33890. ///@brief CLIENT_MatrixAddCamerasByDevice 接口输出参数
  33891. typedef struct tagDH_OUT_ADD_LOGIC_BYDEVICE_CAMERA
  33892. {
  33893. DWORD dwSize;
  33894. char szDeviceID[DH_DEV_ID_LEN]; // 设备ID
  33895. int nMaxResultCount; // 结果数组大小, 用户填写
  33896. int nRetResultCount; // 实际结果数量
  33897. DH_LOGIC_BYDEVICE_ADD_CAMERA_RESULT* pResults; // 添加视频源结果数组,用户分配内存,大小为sizeof(DH_LOGIC_BYDEVICE_ADD_CAMERA_RESULT)*nMaxResultCount
  33898. }DH_OUT_ADD_LOGIC_BYDEVICE_CAMERA;
  33899. ///@brief 输入通道类型
  33900. typedef enum tagEM_CAMERA_CHANNEL_TYPE
  33901. {
  33902. EM_CAMERA_CHANNEL_TYPE_UNKNOWN, // 未知
  33903. EM_CAMERA_CHANNEL_TYPE_LOCAL, // 本地通道(即物理通道)
  33904. EM_CAMERA_CHANNEL_TYPE_REMOTE, // 远程通道
  33905. EM_CAMERA_CHANNEL_TYPE_RESERVED32, // 保留32通道数(兼容二代设备协议)
  33906. EM_CAMERA_CHANNEL_TYPE_OUTPUT, // 输出通道
  33907. EM_CAMERA_CHANNEL_TYPE_MATRIX, // 模拟矩阵通道
  33908. EM_CAMERA_CHANNEL_TYPE_COMPOSE, // 合成通道
  33909. EM_CAMERA_CHANNEL_TYPE_CASCADE, // 光纤级联通道
  33910. } EM_CAMERA_CHANNEL_TYPE;
  33911. ///@brief 视频源信息
  33912. typedef struct tagNET_CAMERA_INFO
  33913. {
  33914. int nUniqueChannel; // 统一编号, -1表示设备自动分配通道号
  33915. unsigned int nChannel; // 通道号
  33916. char szControlID[128]; // 控制编号, 键盘用户用,用编号定位通道,提高操作效率
  33917. BOOL bEnable; // 设备是否启用, 固定true
  33918. char szName[128]; // 名称
  33919. char szDeviceID[128]; // 逻辑通道所属设备ID
  33920. EM_CAMERA_CHANNEL_TYPE emChannelType; // 输入通道类型
  33921. EM_VIDEO_STREAM emVideoStream; // 视频码流
  33922. BYTE reserved[128]; // 保留字节
  33923. } NET_CAMERA_INFO;
  33924. ///@brief 设备组信息
  33925. typedef struct tagNET_CAMERA_GROUP_INFO
  33926. {
  33927. char szDeviceID[DH_DEV_ID_LEN]; // 设备ID
  33928. int nCameraCount; // 视频源信息数量
  33929. NET_CAMERA_INFO *pCameras; // 视频源信息数组,用户分配内存,大小为sizeof(NET_CAMERA_INFO)*nCameraCount
  33930. DH_REMOTE_DEVICE stuRemoteDevice; // 远程设备信息, szDeviceID 没有值时有效
  33931. BYTE reserved[1024]; // 保留字节
  33932. } NET_CAMERA_GROUP_INFO;
  33933. ///@brief CLIENT_MatrixAddCamerasByGroup (批量添加视频源) 接口输入参数
  33934. typedef struct tagNET_IN_ADD_LOGIC_BYGROUP_CAMERA
  33935. {
  33936. DWORD dwSize;
  33937. int nCameraGroup; // 设备组个数
  33938. NET_CAMERA_GROUP_INFO *pstCameraGroupInfo; // 设备组信息
  33939. } NET_IN_ADD_LOGIC_BYGROUP_CAMERA;
  33940. ///@brief 添加视频源组返回的视频源添加结果信息
  33941. typedef struct tagNET_ADD_BYGROUP_RESULT_CAMERA
  33942. {
  33943. unsigned int nUniqueChannel; // 统一编号
  33944. unsigned int nFailedCode; // 失败码, 0-成功,1-通道不支持设置
  33945. BYTE reserved[128]; // 保留字节
  33946. } NET_ADD_BYGROUP_RESULT_CAMERA;
  33947. ///@brief 添加视频源组返回结果信息
  33948. typedef struct tagNET_ADD_BYGROUP_RESULT
  33949. {
  33950. char szDeviceID[DH_DEV_ID_LEN]; // 设备ID
  33951. int nResultCam; // 视频源结果个数,与NET_CAMERA_GROUP_INFO 中的nCameraCount 一致
  33952. NET_ADD_BYGROUP_RESULT_CAMERA *pstResultCamera; // 返回的视频源结果信息
  33953. // 由用户分配内存,大小为sizoef(NET_ADD_BYGROUP_RESULT_CAMERA)*nRetResultCamera
  33954. BYTE reserved[1024]; // 保留字节
  33955. } NET_ADD_BYGROUP_RESULT;
  33956. ///@brief CLIENT_MatrixAddCamerasByGroup (批量添加视频源) 接口输出参数
  33957. typedef struct tagNET_OUT_ADD_LOGIC_BYGROUP_CAMERA
  33958. {
  33959. DWORD dwSize;
  33960. int nGroupCount; // 返回的group结果个数,与NET_IN_ADD_LOGIC_BYGROUP_CAMERA 中的nCameraGroup一致
  33961. NET_ADD_BYGROUP_RESULT *pstAddByGroupResult; // 添加视频源组返回的结果数组
  33962. // 由用户分配内存, 大小为sizeof(NET_ADD_BYGROUP_RESULT)*nGroupCount
  33963. } NET_OUT_ADD_LOGIC_BYGROUP_CAMERA;
  33964. ///@brief CLIENT_MatrixGetCameraAllByGroup 接口输入参数
  33965. typedef struct tagNET_IN_GET_CAMERA_ALL_BY_GROUP
  33966. {
  33967. DWORD dwSize; // 结构体大小
  33968. EM_CAMERA_CHANNEL_TYPE emChannelType; // 输入通道类型
  33969. } NET_IN_GET_CAMERA_ALL_BY_GROUP;
  33970. ///@brief CLIENT_MatrixGetCameraAllByGroup 接口输出参数
  33971. typedef struct tagNET_OUT_GET_CAMERA_ALL_BY_GROUP
  33972. {
  33973. DWORD dwSize; // 结构体大小
  33974. int nMaxCameraGroup; // 设备组最大个数, 最多为1024
  33975. int nCameraGroup; // 设备实际组个数
  33976. NET_CAMERA_GROUP_INFO *pstCameraGroupInfo; // 设备组信息
  33977. } NET_OUT_GET_CAMERA_ALL_BY_GROUP;
  33978. ///@brief 设备组视频通道信息
  33979. typedef struct tagNET_DELETE_CAMERA_GROUP_INFO
  33980. {
  33981. char szDeviceID[DH_DEV_ID_LEN]; // 设备ID, 如果"uniqueChannels"数组大小为1,元素值为-1,则"DeviceID"必填,否则不需要填。
  33982. int nUniqueChannelNum; // unique通道号数量, 最多为1024
  33983. int szUniqueChannels[1024]; // unique通道号, 指向的数组大小为1,元素值为-1则表示删除设备下的所有通道
  33984. } NET_DELETE_CAMERA_GROUP_INFO;
  33985. ///@brief CLIENT_MatrixDeleteCameraByGroup 接口输入参数
  33986. typedef struct tagNET_IN_DELETE_CAMERA_BY_GROUP
  33987. {
  33988. DWORD dwSize; // 结构体大小
  33989. int nCameraGroup; // 设备组实际个数
  33990. NET_DELETE_CAMERA_GROUP_INFO *pstCameraGroupInfo; // 设备组视频通道信息
  33991. } NET_IN_DELETE_CAMERA_BY_GROUP;
  33992. ///@brief CLIENT_MatrixDeleteCameraByGroup 接口输出参数
  33993. typedef struct tagNET_OUT_DELETE_CAMERA_BY_GROUP
  33994. {
  33995. DWORD dwSize; // 结构体大小
  33996. } NET_OUT_DELETE_CAMERA_BY_GROUP;
  33997. ///@brief 获取设备接入通道状态类型
  33998. typedef enum tagEM_GET_VIDEO_INPUT_TYPE
  33999. {
  34000. EM_GET_VIDEO_INPUT_TYPE_UNKNOWN, // 未知
  34001. EM_GET_VIDEO_INPUT_TYPE_BANDWIDTH, // 设备带宽,对应 NET_VIDEO_INPUT_BANDWIDTH_INFO
  34002. } EM_GET_VIDEO_INPUT_TYPE;
  34003. ///@brief CLIENT_GetVideoInputInfo 接口输入参数
  34004. typedef struct tagNET_IN_GET_VIDEO_INPUT_INFO
  34005. {
  34006. DWORD dwSize; // 结构体大小
  34007. EM_GET_VIDEO_INPUT_TYPE emType; // 获取的状态信息类型
  34008. } NET_IN_GET_VIDEO_INPUT_INFO;
  34009. ///@brief 视频通道接入带宽
  34010. typedef struct tagNET_VIDEO_INPUT_BANDWIDTH_INFO
  34011. {
  34012. double dbBandWidthLimit; // 总带宽,单位:Mbps
  34013. double dbBandWidthLeft; // 带宽剩余,单位:Mbps
  34014. BYTE byReserved[256]; // 保留字节
  34015. } NET_VIDEO_INPUT_BANDWIDTH_INFO;
  34016. ///@brief CLIENT_GetVideoInputInfo 接口输出参数
  34017. typedef struct tagNET_OUT_GET_VIDEO_INPUT_INFO
  34018. {
  34019. DWORD dwSize; // 结构体大小
  34020. void* pInfo; // 获取到的信息,需要调用者分配内存,对应的指针类型参考EM_GET_VIDEO_INPUT_TYPE枚举中的说明
  34021. } NET_OUT_GET_VIDEO_INPUT_INFO;
  34022. /************************************************************************/
  34023. /* 数据库记录操作 */
  34024. /************************************************************************/
  34025. #define MAX_ORDER_NUMBER 6 // 排序规则的最大数量
  34026. ///@brief 排序类型
  34027. typedef enum tagEM_RECORD_ORDER_TYPE
  34028. {
  34029. EM_RECORD_ORDER_TYPE_UNKNOWN, // 未知
  34030. EM_RECORD_ORDER_TYPE_ASCENT, // 升序
  34031. EM_RECORD_ORDER_TYPE_DESCENT // 降序
  34032. }EM_RECORD_ORDER_TYPE;
  34033. ///@brief 权限列表
  34034. typedef struct tagNET_AUTHORITY_TYPE
  34035. {
  34036. DWORD dwSize;
  34037. EM_NET_AUTHORITY_TYPE emAuthorityType; //权限类型
  34038. BOOL bAuthorityEnable; //权限使能
  34039. }NET_AUTHORITY_TYPE;
  34040. ///@brief 交通禁止/允许名单记录信息
  34041. typedef struct tagNET_TRAFFIC_LIST_RECORD
  34042. {
  34043. DWORD dwSize;
  34044. int nRecordNo; // 之前查询到的记录号
  34045. char szMasterOfCar[DH_MAX_NAME_LEN]; // 车主姓名
  34046. char szPlateNumber[DH_MAX_PLATE_NUMBER_LEN]; // 车牌号码
  34047. EM_NET_PLATE_TYPE emPlateType; // 车牌类型
  34048. EM_NET_PLATE_COLOR_TYPE emPlateColor; // 车牌颜色
  34049. EM_NET_VEHICLE_TYPE emVehicleType; // 车辆类型
  34050. EM_NET_VEHICLE_COLOR_TYPE emVehicleColor; // 车身颜色
  34051. NET_TIME stBeginTime; // 开始时间
  34052. NET_TIME stCancelTime; // 撤销时间
  34053. int nAuthrityNum; // 权限个数
  34054. NET_AUTHORITY_TYPE stAuthrityTypes[DH_MAX_AUTHORITY_LIST_NUM];// 权限列表 , 允许名单仅有
  34055. EM_NET_TRAFFIC_CAR_CONTROL_TYPE emControlType; // 布控类型 ,禁止名单仅有
  34056. UINT nControlledRouteID; // 布控路线ID
  34057. }NET_TRAFFIC_LIST_RECORD;
  34058. ///@brief 交通禁止/允许名单账户记录查询条件
  34059. typedef struct
  34060. {
  34061. DWORD dwSize;
  34062. char szPlateNumber[DH_MAX_PLATE_NUMBER_LEN]; // 车牌号
  34063. char szPlateNumberVague[DH_MAX_PLATE_NUMBER_LEN]; // 车牌号码模糊查询
  34064. int nQueryResultBegin; // 第一个条返回结果在查询结果中的偏移量
  34065. BOOL bRapidQuery; // 是否快速查询, TRUE:为快速,快速查询时不等待所有增、删、改操作完成。默认为非快速查询
  34066. }FIND_RECORD_TRAFFICREDLIST_CONDITION;
  34067. ///@brief 嫌疑车辆上报事件, 对应事件类型 DH_ALARM_TRAFFIC_SUSPICIOUSCAR
  34068. typedef struct tagALARM_TRAFFIC_SUSPICIOUSCAR_INFO
  34069. {
  34070. DWORD dwSize;
  34071. int nAction; // 事件动作, -1:未知,0:Start, 1:Stop, 2:Pulse
  34072. DH_MSG_OBJECT stuVehicle; // 车身信息
  34073. NET_TRAFFIC_LIST_RECORD stuCarInfo; // 车辆的禁止名单信息
  34074. EVENT_COMM_INFO stCommInfo; // 公共信息
  34075. }ALARM_TRAFFIC_SUSPICIOUSCAR_INFO;
  34076. ///@brief 刻录案件记录查询条件
  34077. typedef struct
  34078. {
  34079. DWORD dwSize;
  34080. NET_TIME stuStartTime; // 起始时间
  34081. NET_TIME stuEndTime; // 结束时间
  34082. }FIND_RECORD_BURN_CASE_CONDITION;
  34083. ///@brief 门禁卡记录查询条件
  34084. typedef struct tagFIND_RECORD_ACCESSCTLCARD_CONDITION
  34085. {
  34086. DWORD dwSize;
  34087. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  34088. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  34089. BOOL bIsValid; // 是否有效, TRUE:有效,FALSE:无效
  34090. BOOL abCardNo; // 卡号查询条件是否有效,针对成员 szCardNo
  34091. BOOL abUserID; // 用户ID查询条件是否有效,针对成员 szUserID
  34092. BOOL abIsValid; // IsValid查询条件是否有效,针对成员 bIsValid
  34093. }FIND_RECORD_ACCESSCTLCARD_CONDITION;
  34094. ///@brief 门禁密码记录查询条件
  34095. typedef struct tagFIND_RECORD_ACCESSCTLPWD_CONDITION
  34096. {
  34097. DWORD dwSize;
  34098. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  34099. }FIND_RECORD_ACCESSCTLPWD_CONDITION;
  34100. ///@brief 门禁出入记录排序字段
  34101. typedef enum tagEM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD
  34102. {
  34103. EM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD_UNKNOWN = 0, // 未知
  34104. EM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD_RECNO, // 记录集编号
  34105. EM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD_CREATETIME, // 创建时间
  34106. }EM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD;
  34107. ///@brief 门禁出入记录排序规则详情
  34108. typedef struct tagFIND_RECORD_ACCESSCTLCARDREC_ORDER
  34109. {
  34110. EM_RECORD_ACCESSCTLCARDREC_ORDER_FIELD emField; // 排序字段
  34111. EM_RECORD_ORDER_TYPE emOrderType; // 排序类型
  34112. char byReverse[64]; // 保留字节
  34113. }FIND_RECORD_ACCESSCTLCARDREC_ORDER;
  34114. ///@brief 门禁出入记录查询条件
  34115. typedef struct tagFIND_RECORD_ACCESSCTLCARDREC_CONDITION
  34116. {
  34117. DWORD dwSize;
  34118. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  34119. NET_TIME stStartTime; // 起始时间
  34120. NET_TIME stEndTime; // 结束时间
  34121. }FIND_RECORD_ACCESSCTLCARDREC_CONDITION;
  34122. ///@brief 门禁出入记录查询条件
  34123. typedef struct tagFIND_RECORD_ACCESSCTLCARDREC_CONDITION_EX
  34124. {
  34125. DWORD dwSize;
  34126. BOOL bCardNoEnable; // 启用卡号查询
  34127. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  34128. BOOL bTimeEnable; // 启用时间段查询
  34129. NET_TIME stStartTime; // 起始时间
  34130. NET_TIME stEndTime; // 结束时间
  34131. int nOrderNum; // 规则数
  34132. FIND_RECORD_ACCESSCTLCARDREC_ORDER stuOrders[MAX_ORDER_NUMBER]; // 规则数组
  34133. BOOL bRealUTCTimeEnable; // 启动RealUTC时间查询, bRealUTCTimeEnable为TRUE时bTimeEnable无效
  34134. NET_TIME stuStartRealUTCTime; // 真实UTC起始时间
  34135. NET_TIME stuEndRealUTCTime; // 真实UTC结束时间
  34136. }FIND_RECORD_ACCESSCTLCARDREC_CONDITION_EX;
  34137. ///@brief 监测量记录查询条件
  34138. typedef struct tagFIND_RECORD_SENSORRECORD_CONDITION
  34139. {
  34140. DWORD dwSize;
  34141. NET_TIME stStartTime; // 采集时间段查询的开始时间,必填
  34142. NET_TIME stEndTime; // 采集时间段查询的结束时间,必填
  34143. UINT uDeviceID; // 采集设备ID号,uint_32类型。高8位表示仪表类型,低24位表示仪表组内序号。仪表类型如下:0-电力; 1-模拟传感器。选填,0xffff表示数据无效
  34144. BOOL bDeviceIDEnable; // 启用采集设备ID查询
  34145. BOOL bStatusEnable; // 启用数据状态查询
  34146. BYTE byStatus; // 数据状态0:正常,1:异常,选填。0xff表示无状态
  34147. BYTE byReserved[3]; // 保留字节
  34148. } FIND_RECORD_SENSORRECORD_CONDITION;
  34149. ///@brief 假日记录集查询条件
  34150. typedef struct tagFIND_RECORD_ACCESSCTLHOLIDAY_CONDITION
  34151. {
  34152. DWORD dwSize;
  34153. char szHolidayNo[DH_COMMON_STRING_32]; // 假期编号
  34154. }FIND_RECORD_ACCESSCTLHOLIDAY_CONDITION;
  34155. ///@brief 电子车牌查询条件
  34156. typedef struct tagFIND_RECORD_ELECTRONICSTAG_CONDITION
  34157. {
  34158. DWORD dwSize;
  34159. NET_TIME stStartTime; // 根据过车时间段查询的开始时间, 必填
  34160. NET_TIME stEndTime; // 根据过车时间段查询的结束时间, 必填
  34161. BOOL abDevId; // 读写器序号查询条件是否有效
  34162. UINT unDevID; // 根据读写器设备序号查询,从0开始, 可选
  34163. BOOL abMatchPic; // 图片匹配查询条件是否有效
  34164. BOOL bMatch; // 根据是否匹配了图片查询, 可选
  34165. BOOL abPlateNumber; // 车牌查询条件是否有效
  34166. char szPlateNumber[DH_MAX_PLATE_NUMBER_LEN]; // 根据车牌查询, 可选
  34167. } FIND_RECORD_ELECTRONICSTAG_CONDITION;
  34168. ///@brief 公租信息查询
  34169. typedef struct tagFIND_RECORD_RESIDENT_CONDTION
  34170. {
  34171. DWORD dwSize;
  34172. char szICNum[DH_MAX_IC_LEN]; // 证件号
  34173. }FIND_RECORD_RESIDENT_CONDTION;
  34174. ///@brief 交通流量记录查询条件
  34175. typedef struct tagFIND_RECORD_TRAFFICFLOW_CONDITION
  34176. {
  34177. DWORD dwSize;
  34178. BOOL abChannelId; // 通道号查询条件是否有效
  34179. int nChannelId; // 通道号
  34180. BOOL abLane; // 车道号查询条件是否有效
  34181. int nLane; // 车道号
  34182. BOOL bStartTime; // 开始时间查询条件是否有效
  34183. NET_TIME stStartTime; // 开始时间
  34184. BOOL bEndTime; // 结束时间查询条件是否有效
  34185. NET_TIME stEndTime; // 结束时间
  34186. BOOL bStatisticsTime; // 查询是否为统计时间,bStartTime及bEndTime均为TRUE
  34187. }FIND_RECORD_TRAFFICFLOW_CONDITION;
  34188. #define DH_MAX_CALLTYPE_LIST_NUM 16 // 呼叫类型查询条件列表最大个数
  34189. #define DH_MAX_ENDSTATE_LIST_NUM 16 // 最终状态查询条件列表最大个数
  34190. ///@brief 通话记录查询条件
  34191. typedef struct tagFIND_RECORD_VIDEO_TALK_LOG_CONDITION
  34192. {
  34193. DWORD dwSize;
  34194. BOOL bCallTypeEnable; // 呼叫类型查询条件是否有效
  34195. int nCallTypeListNum; // 对应 emCallTypeList 中有效枚举个数
  34196. EM_VIDEO_TALK_LOG_CALLTYPE emCallTypeList[DH_MAX_CALLTYPE_LIST_NUM]; // 呼叫类型使能列表
  34197. BOOL bEndStateEnable; // 最终状态查询条件是否有效
  34198. int nEndStateListNum; // 对应 emEndStateList 中有效枚举个数
  34199. EM_VIDEO_TALK_LOG_ENDSTATE emEndStateList[DH_MAX_ENDSTATE_LIST_NUM]; // 最终状态使能列表
  34200. BOOL bTimeEnable; // 启用时间段查询
  34201. NET_TIME stStartTime; // 起始时间
  34202. NET_TIME stEndTime; // 结束时间
  34203. }FIND_RECORD_VIDEO_TALK_LOG_CONDITION;
  34204. ///@brief 状态记录查询条件
  34205. typedef struct tagFIND_RECORD_REGISTER_USER_STATE_CONDITION
  34206. {
  34207. DWORD dwSize;
  34208. BOOL bUserIDEnable; // 用户ID查询条件是否有效
  34209. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  34210. BOOL bOnlineEnable; // 是否在线查询条件是否有效
  34211. int nOnline; // 是否在线
  34212. BOOL bVideoTalkingEnable; // 语音对讲状态查询条件是否有效
  34213. EM_REGISTER_USER_STATE emVideoTalking; // 语音对讲状态
  34214. }FIND_RECORD_REGISTER_USER_STATE_CONDITION;
  34215. ///@brief 联系人记录查询条件
  34216. typedef struct tagFIND_RECORD_VIDEO_TALK_CONTACT_CONDITION
  34217. {
  34218. DWORD dwSize;
  34219. BOOL bVTShortNumberEnable; // 可视对讲短号查询条件是否有效
  34220. char szVTShortNumber[DH_COMMON_STRING_32]; // 可视对讲短号
  34221. BOOL bVTLongNumberEnable; // 可视对讲长号查询条件是否有效
  34222. char szVTLongNumber[DH_COMMON_STRING_64]; // 可视对讲长号
  34223. }FIND_RECORD_VIDEO_TALK_CONTACT_CONDITION;
  34224. ///@brief 医院人员信息表查询条件
  34225. typedef struct tagFIND_RECORD_HOSPITAL_USER_CONDITION
  34226. {
  34227. DWORD dwSize;
  34228. char szID[32]; // 人员ID
  34229. }FIND_RECORD_HOSPITAL_USER_CONDITION;
  34230. ///@brief 医院设备信息表查询条件
  34231. typedef struct tagFIND_RECORD_HOSPITAL_DEVICE_CONDITION
  34232. {
  34233. DWORD dwSize;
  34234. char szDeviceCode[64]; // 设备编号
  34235. }FIND_RECORD_HOSPITAL_DEVICE_CONDITION;
  34236. ///@brief 下发商品记录查询条件
  34237. typedef struct tagFIND_RECORD_COMMODITY_NOTICE_CONDITION
  34238. {
  34239. DWORD dwSize;
  34240. BOOL bIDEnable; // ID号查询条件是否有效
  34241. char szID[DH_COMMON_STRING_64]; // ID号
  34242. }FIND_RECORD_COMMODITY_NOTICE_CONDITION;
  34243. ///@brief 就诊信息记录查询条件
  34244. typedef struct tagFIND_RECORD_HEALTH_CARE_NOTICE_CONDITION
  34245. {
  34246. DWORD dwSize;
  34247. BOOL bIDEnable; // ID号查询条件是否有效
  34248. char szID[DH_COMMON_STRING_64]; // ID号
  34249. }FIND_RECORD_HEALTH_CARE_NOTICE_CONDITION;
  34250. ///@brief 交通流量记录
  34251. typedef struct tagNET_RECORD_TRAFFIC_FLOW_STATE
  34252. {
  34253. DWORD dwSize;
  34254. int nRecordNum; // 记录编号
  34255. int nChannel; // 通道号
  34256. int nLane; // 车道号
  34257. int nVehicles; // 通过车辆总数
  34258. float fAverageSpeed; // 平均车速,单位km/h
  34259. float fTimeOccupyRatio; // 时间占有率,即单位时间内通过断面的车辆所用时间的总和占单位时间的比例
  34260. float fSpaceOccupyRatio; // 空间占有率,即按百分率计量的车辆长度总和除以时间间隔内车辆平均行驶距离
  34261. float fSpaceHeadway; // 车头间距,相邻车辆之间的距离,单位米/辆
  34262. float fTimeHeadway; // 车头时距,单位秒/辆
  34263. int nLargeVehicles; // 大车交通量(9米<车长<12米),辆/单位时间
  34264. int nMediumVehicles; // 中型车交通量(6米<车长<9米),辆/单位时间
  34265. int nSmallVehicles; // 小车交通量(4米<车长<6米),辆/单位时间,
  34266. float fBackOfQueue; // 排队长度,单位:米, 从信号交叉口停车线到上游排队车辆末端之间的距离
  34267. int nPasserby; // 通过行人数
  34268. }NET_RECORD_TRAFFIC_FLOW_STATE;
  34269. ///@brief CLIENT_FindRecord接口输入参数
  34270. typedef struct _NET_IN_FIND_RECORD_PARAM
  34271. {
  34272. DWORD dwSize; // 结构体大小
  34273. EM_NET_RECORD_TYPE emType; // 待查询记录类型
  34274. void* pQueryCondition; // 查询类型对应的查询条件
  34275. // 由用户申请内存,根据查询记录类型,找到查询条件对应的结构体,进而确定内存大小
  34276. }NET_IN_FIND_RECORD_PARAM;
  34277. ///@brief CLIENT_FindRecord接口输出参数
  34278. typedef struct _NET_OUT_FIND_RECORD_PARAM
  34279. {
  34280. DWORD dwSize; // 结构体大小
  34281. LLONG lFindeHandle; // 查询记录句柄,唯一标识某次查询
  34282. }NET_OUT_FIND_RECORD_PARAM;
  34283. ///@brief CLIENT_FindNextRecord接口输入参数
  34284. typedef struct _NET_IN_FIND_NEXT_RECORD_PARAM
  34285. {
  34286. DWORD dwSize; // 结构体大小
  34287. LLONG lFindeHandle; // 查询句柄
  34288. int nFileCount; // 当前想查询的记录条数
  34289. }NET_IN_FIND_NEXT_RECORD_PARAM;
  34290. ///@brief CLIENT_FindNextRecord接口输出参数
  34291. typedef struct _NET_OUT_FIND_NEXT_RECORD_PARAM
  34292. {
  34293. DWORD dwSize; // 结构体大小
  34294. void* pRecordList; // 记录列表,用户分配内存,根据NET_IN_FIND_RECORD_PARAM中的查询类型EM_NET_RECORD_TYPE,确定对应结构体,进入确定内存大小
  34295. int nMaxRecordNum; // 最大查询列表记录数
  34296. int nRetRecordNum; // 查询到的记录条数,当查询到的条数小于想查询的条数时,查询结束
  34297. }NET_OUT_FIND_NEXT_RECORD_PARAM;
  34298. ///@brief 增加记录操作
  34299. typedef struct tagNET_INSERT_RECORD_INFO
  34300. {
  34301. DWORD dwSize;
  34302. NET_TRAFFIC_LIST_RECORD *pRecordInfo; // 记录内容信息,由用户分配内存,大小为sizeof(NET_TRAFFIC_LIST_RECORD)
  34303. }NET_INSERT_RECORD_INFO;
  34304. ///@brief 更新记录操作
  34305. typedef struct tagNET_UPDATE_RECORD_INFO
  34306. {
  34307. DWORD dwSize;
  34308. NET_TRAFFIC_LIST_RECORD *pRecordInfo; // 记录内容信息,由用户分配内存,大小为sizeof(NET_TRAFFIC_LIST_RECORD)
  34309. }NET_UPDATE_RECORD_INFO;
  34310. ///@brief 删除记录操作
  34311. typedef struct tagNET_REMOVE_RECORD_INFO
  34312. {
  34313. DWORD dwSize;
  34314. int nRecordNo; // 之前查询到的记录号
  34315. }NET_REMOVE_RECORD_INFO;
  34316. ///@brief CLIENT_OperateTrafficList输入参数
  34317. typedef struct tagNET_IN_OPERATE_TRAFFIC_LIST_RECORD
  34318. {
  34319. DWORD dwSize;
  34320. EM_RECORD_OPERATE_TYPE emOperateType; // 操作类型
  34321. EM_NET_RECORD_TYPE emRecordType; // 要操作的记录信息类型(仅NET_RECORD_TRAFFICREDLIST和NET_RECORD_TRAFFICBLACKLIST有效)
  34322. void *pstOpreateInfo; // 由用户申请内存,参照操作类型emOperateType,得到操作类型对应的结构体,进而确定对应的内存大小
  34323. }NET_IN_OPERATE_TRAFFIC_LIST_RECORD;
  34324. ///@brief 现阶段实现的操作接口中,只有返回nRecordNo的操作,stRetRecord暂时不可用
  34325. typedef struct tagNET_OUT_OPERATE_TRAFFIC_LIST_RECORD
  34326. {
  34327. DWORD dwSize;
  34328. int nRecordNo; //记录号
  34329. }NET_OUT_OPERATE_TRAFFIC_LIST_RECORD;
  34330. ///@brief 持续控制云台对应结构
  34331. typedef struct tagPTZ_Control_Continuously
  34332. {
  34333. PTZ_SPEED_UNIT stuSpeed; //云台运行速度
  34334. int nTimeOut; //连续移动超时时间,单位为秒
  34335. char szReserve[64]; //预留64字节
  34336. }PTZ_CONTROL_CONTINUOUSLY;
  34337. ///@brief 绝对控制云台对应结构
  34338. typedef struct tagPTZ_Control_Absolutely
  34339. {
  34340. PTZ_SPACE_UNIT stuPosition; //云台绝对移动位置
  34341. PTZ_SPEED_UNIT stuSpeed; //云台运行速度
  34342. char szReserve[64]; //预留64字节
  34343. }PTZ_CONTROL_ABSOLUTELY;
  34344. ///@brief 云台控制坐标,持续移动
  34345. typedef struct tagPTZ_LOCATION_SPACE_UNIT
  34346. {
  34347. int nPositionX; //云台水平坐标,范围[0,3599],表示0度到359.9度,度数扩大10倍表示。(3600表示水平不定位)
  34348. int nPositionY; //云台垂直坐标,范围[-1800,1800],表示-180.0度到+180.0度,度数扩大10倍表示。(3600表示垂直不定位)
  34349. int nZoom; //云台真实倍率变倍参数,无范围限定(超过机芯最大倍率时只变倍至机芯最大倍率),表示最小倍到最大倍的变倍位置,扩大10倍表示
  34350. char szReserve[32]; //预留32字节
  34351. }PTZ_LOCATION_SPACE_UNIT;
  34352. ///@brief 云台控制坐标,速度单元
  34353. typedef struct tagPTZ_LOCATION_SPEED_UNIT
  34354. {
  34355. int nSpeedX; //云台水平角速度的真实值,无范围限定(超过云台最大速度时以云台最大速度移动),左为负、右为正,1000代表10°/s,扩大100倍表示
  34356. int nSpeedY; //云台垂直角速度的真实值,无范围限定(超过云台最大速度时以云台最大速度移动),上为负、下为正,1000代表10°/s,扩大100倍表示
  34357. char szReserve[32]; //预留32字节
  34358. }PTZ_LOCATION_SPEED_UNIT;
  34359. ///@brief 云台连续移动,枪球球联动专用对应结构 DH_EXTPTZ_INTELLI_TRACKMOVE
  34360. typedef struct tagPTZ_CONTROL_INTELLI_TRACKMOVE
  34361. {
  34362. DWORD dwSize;
  34363. int nChannelID; // 通道号
  34364. int nFlag; // 移动标识位
  34365. //0:起始locate定位使用,speed速度无效,position的变倍值有效
  34366. //1:持续跟踪移动使用,speed速度无效,position的变倍值无效
  34367. //2:持续跟踪移动使用,speed速度有效,position的变倍值无效
  34368. PTZ_LOCATION_SPACE_UNIT stuPosition; // 云台绝对移动位置
  34369. PTZ_LOCATION_SPEED_UNIT stuSpeed; // 云台运行速度
  34370. }PTZ_CONTROL_INTELLI_TRACKMOVE;
  34371. ///@brief 设置聚焦模式 DH_EXTPTZ_INTELLI_SETLENSWISDOMSTATE
  34372. typedef struct tagPTZ_CONTROL_INTELLI_SETLENSWISDOMSTATE
  34373. {
  34374. DWORD dwSize; // 结构体大小
  34375. int nChannelID; // 通道号
  34376. int nMode; // 0: 普通场景模式(不设置时默认0)
  34377. // 1: 智能跟踪场景模式
  34378. }PTZ_CONTROL_INTELLI_SETLENSWISDOMSTATE;
  34379. ///@brief 设置聚焦区域 DH_EXTPTZ_INTELLI_SETFOCUSAREA
  34380. typedef struct tagPTZ_CONTROL_INTELLI_SETFOCUSAREA
  34381. {
  34382. DWORD dwSize; // 结构体大小
  34383. int nChannelID; // 通道号
  34384. int nState; // 目标跟踪时的聚焦区域有效标志位
  34385. // 1:设置聚焦区域
  34386. // 0:取消聚焦区域
  34387. NET_RECT stuRect; // 聚焦区域, 使用相对坐标0~8191
  34388. }PTZ_CONTROL_INTELLI_SETFOCUSAREA;
  34389. ///@brief 辅助开关,辅助点对应结构 DH_EXTPTZ_AUXIOPEN,DH_EXTPTZ_AUXICLOSE,云台控制接口CLIENT_DHPTZControlEx2
  34390. typedef struct tagPTZ_CONTROL_AUXILIARY
  34391. {
  34392. DWORD dwSize;
  34393. char szFunctionName[DH_COMMON_STRING_32]; // 云台辅助功能名称,通过 CFG_CAP_CMD_PTZ 命令获取云台能力集( CFG_PTZ_PROTOCOL_CAPS_INFO ),
  34394. }PTZ_CONTROL_AUXILIARY;
  34395. ///@brief 报警输入通道信息
  34396. typedef struct tagNET_ALARM_IN_CHANNEL
  34397. {
  34398. DWORD dwSize;
  34399. BOOL bValid; // 是否有效, FALSE表示该报警通道没有使用
  34400. int nChannel; // 报警通道号
  34401. char szDeviceID[DH_DEV_ID_LEN]; // 设备ID, 本地报警通道: "Local", 远程设备: 使用uuid表示
  34402. char szName[DH_DEV_NAME_LEN]; // 报警通道名称
  34403. }NET_ALARM_IN_CHANNEL;
  34404. ///@brief 报警通道数
  34405. typedef struct tagNET_ALARM_CHANNEL_COUNT
  34406. {
  34407. DWORD dwSize;
  34408. int nLocalAlarmIn; // 本地报警输入通道数
  34409. int nLocalAlarmOut; // 本地报警输出通道数
  34410. int nRemoteAlarmIn; // 远程报警输入通道数
  34411. int nRemoteAlarmOut; // 远程报警输出通道数
  34412. }NET_ALARM_CHANNEL_COUNT;
  34413. ///@brief 带速度转动到预置位点云台控制对应结构
  34414. typedef struct tagPTZ_Control_GotoPreset
  34415. {
  34416. int nPresetIndex; //预置位索引
  34417. PTZ_SPEED_UNIT stuSpeed; //云台运行速度
  34418. char szReserve[64]; //预留64字节
  34419. }PTZ_CONTROL_GOTOPRESET;
  34420. ///@brief 删除预置位点云台控制对应结构
  34421. typedef struct tagPTZ_Control_RemovePreset
  34422. {
  34423. int nPresetIndex; //预置位索引
  34424. char szReserve[64]; //预留64字节
  34425. }PTZ_CONTROL_REMOVEPRESET;
  34426. ///@brief 带速度转动到预置位点后抓图云台控制对应结构
  34427. typedef struct tagPTZ_Control_GotoPresetSnap
  34428. {
  34429. int nPresetIndex; //预置位索引
  34430. int nChannel; //通道号
  34431. PTZ_SPEED_UNIT stuSpeed; //云台运行速度
  34432. char szReserve[64]; //预留64字节
  34433. }PTZ_CONTROL_GOTOPRESETSNAP;
  34434. ///@brief CLIENT_SetTourSource 接口输入参数(设置窗口轮巡显示源)
  34435. typedef struct tagNET_IN_SET_TOUR_SOURCE
  34436. {
  34437. DWORD dwSize;
  34438. int nChannel; // 输出通道号
  34439. int nWindow; // 窗口号
  34440. DH_SPLIT_SOURCE* pstuSrcs; // 显示源数组, 可进行窗口轮巡,由用户申请内存,大小为sizeof(DH_SPLIT_SOURCE)*nSrcCount
  34441. int nSrcCount; // 显示源数量
  34442. } NET_IN_SET_TOUR_SOURCE;
  34443. ///@brief CLIENT_SetTourSource 接口输出参数(设置窗口轮巡显示源)
  34444. typedef struct tagNET_OUT_SET_TOUR_SOURCE
  34445. {
  34446. DWORD dwSize;
  34447. } NET_OUT_SET_TOUR_SOURCE;
  34448. ///@brief CLIENT_GetTourSource 接口输入参数
  34449. typedef struct tagNET_IN_GET_TOUR_SOURCE
  34450. {
  34451. DWORD dwSize;
  34452. int nChannel; // 输出通道号, pszCompsiteID为NULL时有效
  34453. const char* pszCompositeID; // 拼接屏ID
  34454. int nWindow; // 窗口号, -1表示所有窗口
  34455. } NET_IN_GET_TOUR_SOURCE;
  34456. ///@brief 窗口轮巡显示源信息
  34457. typedef struct tagNET_SPLIT_TOUR_SOURCE
  34458. {
  34459. DWORD dwSize;
  34460. DH_SPLIT_SOURCE* pstuSrcs; // 显示源数组, 用户分配内存,大小为sizeof(DH_SPLIT_SOURCE)*nMaxSrcCount
  34461. int nMaxSrcCount; // 显示源最大数量
  34462. int nRetSrcCount; // 返回的显示源数量
  34463. } NET_SPLIT_TOUR_SOURCE;
  34464. ///@brief CLIENT_GetTourSource 接口输出参数
  34465. typedef struct tagNET_OUT_GET_TOUR_SOURCE
  34466. {
  34467. DWORD dwSize;
  34468. NET_SPLIT_TOUR_SOURCE* pstuWndSrcs; // 窗口轮巡信息数组, 用户分配内存,大小为sizeof(NET_SPLIT_TOUR_SOURCE)*nMaxWndCount
  34469. int nMaxWndCount; // 窗口最大数组, 用户填写
  34470. int nRetWndCount; // 返回的窗口数量
  34471. } NET_OUT_GET_TOUR_SOURCE;
  34472. ///@brief 分割轮巡状态信息
  34473. typedef struct tagNET_SPLIT_TOUR_STATUS_INFO
  34474. {
  34475. DWORD dwSize;
  34476. int nWindow; // 窗口号
  34477. NET_TOUR_STATUS emStatus; // 状态
  34478. DH_SPLIT_WND_SOURCE stuSource; // 当前显示源信息
  34479. }NET_SPLIT_TOUR_STATUS_INFO;
  34480. ///@brief 轮巡状态回调函数原形, lAttachHandle是CLIENT_AttachSplitTour的返回值
  34481. typedef void (CALLBACK *fTourStatusCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_SPLIT_TOUR_STATUS_INFO* pstStatus, void* reserved, LDWORD dwUser);
  34482. ///@brief CLIENT_AttachSplitTour接口输入参数
  34483. typedef struct tagNET_IN_ATTACH_SPLIT_TOUR
  34484. {
  34485. DWORD dwSize;
  34486. int nChannel; // 输出通道号, pszCompsiteID为NULL时有效
  34487. const char* pszCompositeID; // 拼接屏ID
  34488. fTourStatusCallBack cbStatus; // 轮巡状态回调函数
  34489. LDWORD dwUser; // 轮巡状态回调参数
  34490. }NET_IN_ATTACH_SPLIT_TOUR;
  34491. ///@brief CLIENT_AttachSplitTour接口输出参数
  34492. typedef struct tagNET_OUT_ATTACH_SPLIT_TOUR
  34493. {
  34494. DWORD dwSize;
  34495. }NET_OUT_ATTACH_SPLIT_TOUR;
  34496. ///@brief 窗口工作模式
  34497. typedef enum tagEM_WINDOW_WORKMODE
  34498. {
  34499. EM_WINDOW_DISPLAY, // 预览模式(默认)
  34500. EM_WINDOW_REPLAY, // 回放模式
  34501. } EM_WINDOW_WORKMODE;
  34502. ///@brief 各窗口显示源信息
  34503. typedef struct tagNET_SOURCE_INFO
  34504. {
  34505. int nWindowID; // 当前窗口号
  34506. int nCaremaChannel; // 当前视频源通道号
  34507. NET_TIME stuStartTime; // 开始播放的时间
  34508. EM_WINDOW_WORKMODE emWorkMode; // 窗口工作模式
  34509. BYTE bReserved[128]; // 保留字节
  34510. }NET_SOURCE_INFO;
  34511. ///@brief 窗口视频源信息
  34512. typedef struct tagNET_WINDOW_SOURCE_INFO
  34513. {
  34514. DWORD dwSize;
  34515. int nRetSrcCount; // 实际显示源个数
  34516. NET_SOURCE_INFO *pstSourceInfo; // 各窗口显示源信息
  34517. } NET_WINDOW_SOURCE_INFO;
  34518. ///@brief 窗口视频源信息回调函数原形, lAttachHandle是CLIENT_AttachWindowsSource的返回值
  34519. typedef void (CALLBACK *fWindowSourceCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_WINDOW_SOURCE_INFO* pstWindowSource, void* reserved, LDWORD dwUser);
  34520. ///@brief CLIENT_AttachWindowsSource接口入参
  34521. typedef struct tagNET_IN_ATTACH_WINDOW_SOURCE
  34522. {
  34523. DWORD dwSize;
  34524. int nWindowID; // 窗口ID,-1表示整个屏幕
  34525. int nChannel; // 输出通道号, pszCompsiteID为NULL时有效
  34526. const char* pszCompositeID; // 拼接屏ID
  34527. fWindowSourceCallBack cbWindowSource; // 窗口视频源回调函数
  34528. LDWORD dwUser; // 窗口视频源回调参数
  34529. } NET_IN_ATTACH_WINDOW_SOURCE;
  34530. ///@brief CLIENT_AttachWindowsSource接口输出参数
  34531. typedef struct tagNET_OUT_ATTACH_WINDOW_SOURCE
  34532. {
  34533. DWORD dwSize;
  34534. }NET_OUT_ATTACH_WINDOW_SOURCE;
  34535. ///@brief CLIENT_WindowRegionEnlarge接口输入参数
  34536. typedef struct tagNET_IN_WINDOW_REGION_ENLARGE
  34537. {
  34538. DWORD dwSize;
  34539. int nChannel; // 输出通道号或融合屏虚拟通道号
  34540. int nWindowID; // 窗口ID
  34541. NET_RECT stuRect; // 画面放大区域,坐标系为虚拟坐标系,0~8191
  34542. } NET_IN_WINDOW_REGION_ENLARGE;
  34543. ///@brief CLIENT_WindowRegionEnlarge接口输出参数
  34544. typedef struct tagNET_OUT_WINDOW_REGION_ENLARGE
  34545. {
  34546. DWORD dwSize;
  34547. } NET_OUT_WINDOW_REGION_ENLARGE;
  34548. ///@brief CLIENT_WindowEnlargeReduction接口输入参数
  34549. typedef struct tagNET_IN_WINDOW_ENLARGE_REDUCTION
  34550. {
  34551. DWORD dwSize;
  34552. int nChannel; // 输出通道号或融合屏虚拟通道号
  34553. int nWindowID; // 窗口ID
  34554. } NET_IN_WINDOW_ENLARGE_REDUCTION;
  34555. ///@brief CLIENT_WindowEnlargeReduction接口输出参数
  34556. typedef struct tagNET_OUT_WINDOW_ENLARGE_REDUCTION
  34557. {
  34558. DWORD dwSize;
  34559. } NET_OUT_WINDOW_ENLARGE_REDUCTION;
  34560. ///@brief 鼠标操作类型
  34561. typedef enum tagEM_MOUSE_OPREATE_TYPE
  34562. {
  34563. EM_MOUSE_OPREATE_LEFT_PRESS = 1, // 左键按下
  34564. EM_MOUSE_OPREATE_LEFT_RELEASE, // 左键松开
  34565. EM_MOUSE_OPREATE_RIGHT_PRESS, // 右键按下
  34566. EM_MOUSE_OPREATE_RIGHT_RELEASE, // 右键松开
  34567. EM_MOUSE_OPREATE_MOUSE_MOVE, // 鼠标移动
  34568. EM_MOUSE_OPREATE_MOUSE_SCROLL, // 鼠标滚动
  34569. } EM_MOUSE_OPREATE_TYPE;
  34570. ///@brief 鼠标按钮标记
  34571. typedef enum tagEM_MOUSE_FLAG_TYPE
  34572. {
  34573. EM_MOUSE_FLAG_LEFT = 0, // 鼠标左边按钮
  34574. EM_MOUSE_FLAG_RIGHT, // 鼠标右边按钮
  34575. } EM_MOUSE_FLAG_TYPE;
  34576. ///@brief CLIENT_SplitOnButtonAction接口输入参数
  34577. typedef struct tagNET_IN_WINDOW_ONBUTTON_ACTION
  34578. {
  34579. DWORD dwSize;
  34580. int nChannel; // 输出通道号或融合屏虚拟通道号
  34581. int nWindowID; // 窗口ID
  34582. EM_MOUSE_OPREATE_TYPE emOpreateType; // 鼠标操作类型
  34583. EM_MOUSE_FLAG_TYPE emMouseFlag; // 鼠标按钮标记
  34584. int nZDelta; // 鼠标滚动速度, 大于0表示向前滚动,小于0表示向后滚动,等于0表示没有滚动操作
  34585. DH_POINT stuMousePoint; // 鼠标在窗口中的位置坐标
  34586. } NET_IN_WINDOW_ONBUTTON_ACTION;
  34587. ///@brief CLIENT_SplitOnButtonAction接口输出参数
  34588. typedef struct tagNET_OUT_WINDOW_ONBUTTON_ACTION
  34589. {
  34590. DWORD dwSize;
  34591. } NET_OUT_WINDOW_ONBUTTON_ACTION;
  34592. ///@brief 窗口批注状态
  34593. typedef enum tagEM_WINDOW_ANNOTATION_STATE_TYPE
  34594. {
  34595. EM_ANNOTATION_STATE_TYPE_UNKNOWN, // 未知
  34596. EM_ANNOTATION_STATE_TYPE_START, // 批注开始
  34597. EM_ANNOTATION_STATE_TYPE_CONTINUE, // 批注中
  34598. EM_ANNOTATION_STATE_TYPE_END, // 批注完成
  34599. }EM_WINDOWS_ANNOTATION_STATE_TYPE;
  34600. ///@brief 设置设备窗口批注,CLIENT_WindowSetAnnotation 入参
  34601. typedef struct tagNET_IN_WINIDOW_SET_ANNOTATION
  34602. {
  34603. DWORD dwSize; // 结构体大小
  34604. int nChannel; // 输出通道号或融合屏虚拟通道号
  34605. int nWindowID; // 窗口ID
  34606. NET_POINT stuAnnotationPoint; // 批注划线坐标【坐标范围:0~8191】
  34607. EM_WINDOWS_ANNOTATION_STATE_TYPE emAnnotationState; // 窗口批注状态
  34608. int nAnnotationThickness; // 批注线条粗细【范围:1-3 (1表示最细)】
  34609. NET_COLOR_RGBA stuAnnotationColor; // 批注划线颜色【各级颜色亮度范围:0~255】
  34610. }NET_IN_WINDOW_SET_ANNOTATION;
  34611. ///@brief 设置窗口批注, CLIENT_WindowSetAnnotation 出参
  34612. typedef struct tagNET_OUT_WINDOW_SET_ANNOTATION
  34613. {
  34614. DWORD dwSize; // 结构体大小
  34615. }NET_OUT_WINDOW_SET_ANNOTATION;
  34616. ///@brief 清除窗口所有批注,入参
  34617. typedef struct tagNET_IN_WINDOW_CLEAR_ANNOTATION
  34618. {
  34619. DWORD dwSize; // 结构体大小
  34620. int nChannel; // 输出通道号或融合屏虚拟通道号
  34621. int nWindowID; // 窗口ID
  34622. BYTE byReserved[4]; // 字节对齐
  34623. }NET_IN_WINDOW_CLEAR_ANNOTATION;
  34624. ///@brief 清除窗口所有批注,出参
  34625. typedef struct tagNET_OUT_WINDOW_CLEAR_ANNOTATION
  34626. {
  34627. DWORD dwSize; // 结构体大小
  34628. }NET_OUT_WINDOW_CLEAR_ANNOTATION;
  34629. ///@brief fAttachRecordInfoCB 参数, 上报的录像文件信息
  34630. typedef struct tagNET_CB_RECORD_INFO
  34631. {
  34632. DWORD dwSize;
  34633. int nChannel; // 通道号
  34634. char szFileName[MAX_PATH]; // 录像名称
  34635. DWORD dwType; // 录像类型, 按位定义如下:
  34636. // Bit0-定时录像
  34637. // Bit1-动态检测录像
  34638. // Bit2-报警录像
  34639. // Bit3-卡号录像
  34640. DWORD dwState; // 录像状态, 0-打包, 1-删除
  34641. } NET_CB_RECORD_INFO;
  34642. ///@brief 录像更新回调函数原形,lAttachHandle是CLIENT_AttachRecordInfo的返回值, 每次n条,pBuf->dwSize * n == nBufLen
  34643. typedef void (CALLBACK *fAttachRecordInfoCB)(LLONG lLoginID, LLONG lAttachHandle, NET_CB_RECORD_INFO* pBuf, int nBufLen, LDWORD dwUser);
  34644. ///@brief CLIENT_AttachRecordInfo 输入参数
  34645. typedef struct tagNET_IN_ATTACH_RECORD_INFO
  34646. {
  34647. DWORD dwSize;
  34648. int nInterval; // 时间间隔, 设备每隔nInterval秒, 发送录像信息
  34649. int nDelay; // 上报延时, 设备在1和nDelay值间选择随机数后,延迟上报录像状态, nDelay必须小于nInterval
  34650. fAttachRecordInfoCB cbAttachRecordInfo; // 录像更新回调函数
  34651. LDWORD dwUser; // 用户数据
  34652. } NET_IN_ATTACH_RECORD_INFO;
  34653. ///@brief CLIENT_AttachRecordInfo 输出参数
  34654. typedef struct tagNET_OUT_ATTACH_RECORD_INFO
  34655. {
  34656. DWORD dwSize;
  34657. } NET_OUT_ATTACH_RECORD_INFO;
  34658. ///@brief 订阅云台元数据接口回调函数原型
  34659. // pBuf 现阶段主要为 DH_PTZ_LOCATION_INFO 类型
  34660. typedef void (CALLBACK *fPTZStatusProcCallBack)(LLONG lLoginID, LLONG lAttachHandle, void* pBuf, int nBufLen, LDWORD dwUser);
  34661. ///@brief 订阅云台元数据接口输入参数
  34662. typedef struct tagNET_IN_PTZ_STATUS_PROC
  34663. {
  34664. DWORD dwSize;
  34665. int nChannel; // 云台通道
  34666. fPTZStatusProcCallBack cbPTZStatusProc; // 状态回调函数
  34667. LDWORD dwUser; // 用户数据
  34668. }NET_IN_PTZ_STATUS_PROC;
  34669. ///@brief 订阅云台元数据接口输输出参数
  34670. typedef struct tagNET_OUT_PTZ_STATUS_PROC
  34671. {
  34672. DWORD dwSize;
  34673. }NET_OUT_PTZ_STATUS_PROC;
  34674. ///@brief 云台可视域状态结构
  34675. typedef struct tagDH_OUT_PTZ_VIEW_RANGE_STATUS
  34676. {
  34677. DWORD dwSize;
  34678. double dbDistance; // 可视距离, 单位:米
  34679. int nAngelH; // 水平可视角度, 0~1800, 单位:十分之一度
  34680. int nAzimuthH; // 水平方位角度, 0~3600, 单位:十分之一度
  34681. int nInclinationH; // 水平倾斜角度, -900~900, 单位:十分之一度
  34682. int nAngelV; // 垂直可视角度, 0~1800, 单位:十分之一度
  34683. int nAzimuthV; // 垂直方位角度, 0~3600, 单位:十分之一度
  34684. }DH_OUT_PTZ_VIEW_RANGE_STATUS;
  34685. ///@brief 订阅云台可视域回调函数原型
  34686. typedef void (CALLBACK *fViewRangeStateCallBack)(LLONG lLoginID, LLONG lAttachHandle, DH_OUT_PTZ_VIEW_RANGE_STATUS* pBuf, int nBufLen, LDWORD dwUser);
  34687. ///@brief 订阅可视域输入参数
  34688. typedef struct tagNET_IN_VIEW_RANGE_STATE
  34689. {
  34690. DWORD dwSize;
  34691. int nChannel; // 云台通道
  34692. fViewRangeStateCallBack cbViewRange; // 状态回调函数
  34693. LDWORD dwUser; // 用户数据
  34694. }NET_IN_VIEW_RANGE_STATE;
  34695. ///@brief 订阅可视域输出参数
  34696. typedef struct tagNET_OUT_VIEW_RANGE_STATE
  34697. {
  34698. DWORD dwSize;
  34699. }NET_OUT_VIEW_RANGE_STATE;
  34700. ///@brief 气象信息结构
  34701. typedef struct tagNET_WEATHER_INFO
  34702. {
  34703. float fWindSpeed; // 风速,单位m/s, 范围[0.0,60.0]
  34704. float fTemperature; // 温度,单位摄氏度,范围[-40.0,+80.0]
  34705. float fHumidity; // 后缀%,范围[0.0,100.0]
  34706. unsigned int nLight; // 光照,单位W/(m*m),范围[0,2000]
  34707. float fWindDirection; // 风向,单位度,范围[0,360)
  34708. float fAirPressure; // 气压,单位百帕,范围[10~1100]
  34709. int nRainfall; // 累计雨量,单位0.01mm
  34710. BYTE byReserved[2044]; // 保留字节
  34711. }NET_WEATHER_INFO;
  34712. ///@brief 订阅气象信息回调函数原型
  34713. typedef void (CALLBACK *fWeatherInfoCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_WEATHER_INFO* pBuf, int nBufLen, LDWORD dwUser);
  34714. ///@brief 订阅气象信息输入参数
  34715. typedef struct tagNET_IN_WEATHER_INFO
  34716. {
  34717. DWORD dwSize;
  34718. int nChannel; // 云台通道
  34719. fWeatherInfoCallBack cbWeatherInfo; // 回调函数
  34720. LDWORD dwUser; // 用户数据
  34721. }NET_IN_WEATHER_INFO;
  34722. ///@brief 订阅气象信息输出参数
  34723. typedef struct tagNET_OUT_WEATHER_INFO
  34724. {
  34725. DWORD dwSize;
  34726. }NET_OUT_WEATHER_INFO;
  34727. ///@brief 根据物距、物体大小及占屏比设置可视域 输入参数
  34728. typedef struct tagNET_IN_SET_VIEW_RANGE_BY_OBJECT
  34729. {
  34730. DWORD dwSize;
  34731. int nChannel; // 通道号
  34732. int nDistance; // 物体距离 (单位:厘米)
  34733. int nWidth; // 物体宽度 (单位:厘米)
  34734. int nScreenRatio; // 物体占屏比(单位:厘米)
  34735. }NET_IN_SET_VIEW_RANGE_BY_OBJECT;
  34736. ///@brief 根据物距、物体大小及占屏比设置可视域 输出参数
  34737. typedef struct tagNET_OUT_SET_VIEW_RANGE_BY_OBJECT
  34738. {
  34739. DWORD dwSize;
  34740. }NET_OUT_SET_VIEW_RANGE_BY_OBJECT;
  34741. ///@brief 根据目标GPS位置设置可视域 输入参数(CLIENT_SetViewRangeByGPS)
  34742. typedef struct tagNET_IN_SET_VIEW_RANGE_BY_GPS
  34743. {
  34744. DWORD dwSize;
  34745. int nChannel; // 通道号
  34746. double dLongitude; // 经度,[-180, 180],单位:度(°),负为西经
  34747. double dLatitude; // 纬度,[-90, 90],单位:度(°),负为南纬
  34748. }NET_IN_SET_VIEW_RANGE_BY_GPS;
  34749. ///@brief 根据目标GPS位置设置可视域 输出参数(CLIENT_SetViewRangeByGPS)
  34750. typedef struct tagNET_OUT_SET_VIEW_RANGE_BY_GPS
  34751. {
  34752. DWORD dwSize;
  34753. }NET_OUT_SET_VIEW_RANGE_BY_GPS;
  34754. ///@brief 设置云台可视域信息
  34755. typedef struct tagPTZ_VIEW_RANGE_INFO
  34756. {
  34757. int nStructSize;
  34758. int nAzimuthH; // 水平方位角度, 0~3600, 单位:度
  34759. }PTZ_VIEW_RANGE_INFO;
  34760. ///@brief 获取云台光学变倍信息,对应命令 DH_DEVSTATE_PTZ_ZOOM_INFO
  34761. typedef struct tagDH_OUT_PTZ_ZOOM_INFO
  34762. {
  34763. int dwSize;
  34764. int nZoomValue; // 光学变倍值
  34765. }DH_OUT_PTZ_ZOOM_INFO;
  34766. ///@brief 联动状态
  34767. typedef enum tagEM_TRACKSTATUS_TYPE
  34768. {
  34769. EM_TRACKSTATUS_TYPE_UNKNOWN = -1, // 未知
  34770. EM_TRACKSTATUS_TYPE_FREE, // 空闲
  34771. EM_TRACKSTATUS_TYPE_TRACKING, // 正在跟踪
  34772. EM_TRACKSTATUS_TYPE_TRACKINGEND, // 跟踪结束
  34773. }EM_TRACKSTATUS_TYPE;
  34774. ///@brief 获取联动(轨迹移动)状态出参
  34775. typedef struct tagPTZ_GET_TRACKMOVESTATUS_INFO
  34776. {
  34777. DWORD dwSize; // 结构体大小
  34778. char szControlSource[64]; // 控制源标识
  34779. EM_TRACKSTATUS_TYPE emTrackStatus; // 联动状态
  34780. }PTZ_GET_TRACKMOVESTATUS_INFO;
  34781. ///@brief 通道数量信息
  34782. typedef struct tagNET_CHN_COUNT_INFO
  34783. {
  34784. DWORD dwSize;
  34785. int nMaxTotal; // 设备总通道数(所有有效通道数之和)
  34786. int nCurTotal; // 已配置的通道数
  34787. int nMaxLocal; // 最大本地通道数, 含主板和可插拔子卡通道
  34788. int nCurLocal; // 已配置本地通道数
  34789. int nMaxRemote; // 最大远程通道数
  34790. int nCurRemote; // 已配置远程通道数
  34791. } NET_CHN_COUNT_INFO;
  34792. ///@brief 设备通道数量信息
  34793. typedef struct tagNET_DEV_CHN_COUNT_INFO
  34794. {
  34795. DWORD dwSize;
  34796. NET_CHN_COUNT_INFO stuVideoIn; // 视频输入通道
  34797. NET_CHN_COUNT_INFO stuVideoOut; // 视频输出通道
  34798. } NET_DEV_CHN_COUNT_INFO;
  34799. ///@brief 录像状态详细信息
  34800. typedef struct tagNET_RECORD_STATE_DETAIL
  34801. {
  34802. DWORD dwSize;
  34803. BOOL bMainStream; // 主码流, TRUE-正在录像, FALSE-没在录像
  34804. BOOL bExtraStream1; // 辅码流1, TRUE-正在录像, FALSE-没在录像
  34805. BOOL bExtraStream2; // 辅码流2, TRUE-正在录像, FALSE-没在录像
  34806. BOOL bExtraStream3; // 辅码流3, TRUE-正在录像, FALSE-没在录像
  34807. } NET_RECORD_STATE_DETAIL;
  34808. ///@brief 云台绝对聚焦对应结构
  34809. typedef struct tagPTZ_Focus_Absolutely
  34810. {
  34811. DWORD dwValue; //云台聚焦位置,取值范围(0~8191)
  34812. DWORD dwSpeed; //云台聚焦速度,取值范围(0~7)
  34813. char szReserve[64]; //预留64字节
  34814. }PTZ_FOCUS_ABSOLUTELY;
  34815. ///@brief CLIENT_PlayAudioFile 接口输入参数
  34816. typedef struct tagNET_IN_PLAY_AUDIO_FILE
  34817. {
  34818. DWORD dwSize;
  34819. const char* pszFilePath; // 文件路径
  34820. DWORD dwOutput; // 输出途径, 可以是多种输出, 按位表示, bit0-mic, bit1-speaker
  34821. } NET_IN_PLAY_AUDIO_FILE;
  34822. ///@brief CLIENT_PlayAudioFile 接口输出参数
  34823. typedef struct tagNET_OUT_PLAY_FILE_STREAM
  34824. {
  34825. DWORD dwSize;
  34826. } NET_OUT_PLAY_AUDIO_FILE;
  34827. ///@brief RTSP URL信息列表结构
  34828. typedef struct tagNET_DEV_RTSPURL_LIST
  34829. {
  34830. DWORD dwSize;
  34831. int nChannelID; // 通道号(用户输入参数)
  34832. int nUrlNum; // Url地址个数
  34833. char szURLList[DH_MAX_URL_NUM][DH_MAX_URL_LEN]; // Url地址列表
  34834. }NET_DEV_RTSPURL_LIST;
  34835. ///@brief 云台控制-扇扫对应结构
  34836. typedef struct tagPTZ_Control_SectorScan
  34837. {
  34838. int nBeginAngle; //起始角度,范围:[-180,180]
  34839. int nEndAngle; //结束角度,范围:[-180,180]
  34840. int nSpeed; //速度,范围:[0,255]
  34841. char szReserve[64]; //预留64字节
  34842. }PTZ_CONTROL_SECTORSCAN;
  34843. ///@brief 控制鱼眼电子云台信息
  34844. typedef struct tagPTZ_CONTROL_SET_FISHEYE_EPTZ
  34845. {
  34846. DWORD dwSize; // 结构体大小
  34847. DWORD dwWindowID; // 进行EPtz控制的窗口编号
  34848. DWORD dwCommand; // 电子云台命令
  34849. DWORD dwParam1; // 命令对应参数1
  34850. DWORD dwParam2; // 命令对应参数2
  34851. DWORD dwParam3; // 命令对应参数3
  34852. DWORD dwParam4; // 命令对应参数4
  34853. }PTZ_CONTROL_SET_FISHEYE_EPTZ;
  34854. ///@brief 轨道机控制信息
  34855. typedef struct tagPTZ_CONTROL_SET_TRACK_CONTROL
  34856. {
  34857. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(PTZ_CONTROL_SET_TRACK_CONTROL)
  34858. DWORD dwChannelID; // 通道号
  34859. DWORD dwCommand; // 电子云台命令,对应枚举NET_TRACK_CONTROL_CMD
  34860. DWORD dwParam1; // 命令对应参数1
  34861. DWORD dwParam2; // 命令对应参数2
  34862. DWORD dwParam3; // 命令对应参数3
  34863. } PTZ_CONTROL_SET_TRACK_CONTROL;
  34864. ///@brief ===============区域扫描,云台操作=============================
  34865. ///@brief 区域扫描云台控制命令(CLIENT_DHPTZAreaScan)
  34866. typedef enum tagNET_AREASCAN_EPTZ_CMD
  34867. {
  34868. NET_AREASCAN_EPTZ_CMD_SET, // 设置当前位置为某个区域的扫描边界(结构体输入为 PTZ_CONTROL_SET_AREA_SCAN_LIMIT,输出参数无效)
  34869. NET_AREASCAN_EPTZ_CMD_DEL, // 删除某个区域扫描(结构体输入为 PTZ_CONTROL_DEL_AREA_SCAN,输出参数无效)
  34870. NET_AREASCAN_EPTZ_CMD_GET, // 获取所有的区域扫描编号是否有效(结构体输入为 PTZ_CONTROL_GET_AREA_SCAN_IN,输出参数为 PTZ_CONTROL_GET_AREA_SCAN_OUT )
  34871. NET_AREASCAN_EPTZ_CMD_START, // 开始区域扫描(结构体输入为 PTZ_CONTROL_START_AREA_SCAN,输出参数无效)
  34872. NET_AREASCAN_EPTZ_CMD_STOP, // 停止区域扫描(结构体输入为 PTZ_CONTROL_STOP_AREA_SCAN,输出参数无效)
  34873. }NET_AREASCAN_EPTZ_CMD;
  34874. ///@brief 设置当前位置为某个区域的扫描边界
  34875. typedef struct tagPTZ_CONTROL_SET_AREA_SCAN_LIMIT
  34876. {
  34877. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(PTZ_CONTROL_SET_AREA_SCAN_LIMIT)
  34878. int nChannelID; // 通道号,通道号从0开始
  34879. int nIndex; // 区域编号,编号从1开始
  34880. char szLimitMode[16]; // 区域边界,"Left":左边界 "Right":右边界
  34881. int nZoom; // 扫描变倍值,范围0~128,默认为0,表示当前值,1~128表示对应的变倍档位
  34882. } PTZ_CONTROL_SET_AREA_SCAN_LIMIT;
  34883. ///@brief 删除某个区域扫描
  34884. typedef struct tagPTZ_CONTROL_DEL_AREA_SCAN
  34885. {
  34886. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(PTZ_CONTROL_DEL_AREA_SCAN)
  34887. int nChannelID; // 通道号,通道号从0开始
  34888. int nIndex; // 区域编号,编号从1开始
  34889. } PTZ_CONTROL_DEL_AREA_SCAN;
  34890. ///@brief 获取所有的区域扫描编号是否有效,输入参数
  34891. typedef struct tagPTZ_CONTROL_GET_AREA_SCAN_IN
  34892. {
  34893. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(PTZ_CONTROL_GET_AREA_SCAN)
  34894. int nChannelID; // 通道号,通道号从0开始
  34895. int nSize; // 要获取的区域扫描个数
  34896. } PTZ_CONTROL_GET_AREA_SCAN_IN;
  34897. ///@brief 区域有效信息
  34898. typedef struct tagNET_AREASCAN_STATE
  34899. {
  34900. BOOL bValid; // 区域是否有效
  34901. BYTE Reserved[128]; // 保留字节
  34902. }NET_AREASCAN_STATE;
  34903. ///@brief 获取所有的区域扫描编号是否有效,输出参数
  34904. typedef struct tagPTZ_CONTROL_GET_AREA_SCAN_OUT
  34905. {
  34906. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  34907. UINT nValidNum; // 数组 stuStateInfo 的有效个数
  34908. NET_AREASCAN_STATE stuStateInfo[DH_COMMON_STRING_32]; // 区域状态信息
  34909. }PTZ_CONTROL_GET_AREA_SCAN_OUT;
  34910. ///@brief 开始区域扫描
  34911. typedef struct tagPTZ_CONTROL_START_AREA_SCAN
  34912. {
  34913. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(PTZ_CONTROL_START_AREA_SCAN)
  34914. int nChannelID; // 通道号,通道号从0开始
  34915. int nIndex; // 区域编号,编号从1开始
  34916. int nSpeed; // 水平扫描速度,范围1~255
  34917. int nTitleAngle; // 垂直扫描角度,从当前位置按此角度递增或者递减扫描,范围0~90度
  34918. } PTZ_CONTROL_START_AREA_SCAN;
  34919. ///@brief 停止区域扫描
  34920. typedef struct tagPTZ_CONTROL_STOP_AREA_SCAN
  34921. {
  34922. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(PTZ_CONTROL_STOP_AREA_SCAN)
  34923. int nChannelID; // 通道号,通道号从0开始
  34924. int nIndex; // 区域编号,编号从1开始
  34925. } PTZ_CONTROL_STOP_AREA_SCAN;
  34926. ///@brief ===============区域扫描,云台操作=============================
  34927. ///@brief 区域聚焦模式
  34928. typedef enum tagEM_NET_FOCUS_REGION_MODE
  34929. {
  34930. EM_NET_FOCUS_REGION_MODE_GLOBAL, // 全局
  34931. EM_NET_FOCUS_REGION_MODE_AUTO, // 自动
  34932. EM_NET_FOCUS_REGION_MODE_INROIREGION, // ROI 指定的区域内
  34933. EM_NET_FOCUS_REGION_MODE_OUTROIREGION, // ROI 指定的区域外
  34934. }EM_NET_FOCUS_REGION_MODE;
  34935. ///@brief 区域聚焦(对应枚举DH_EXTPTZ_SET_FOCUS_REGION)
  34936. typedef struct tagPTZ_CONTROL_SET_FOCUS_REGION
  34937. {
  34938. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(PTZ_CONTROL_SET_FOCUS_REGION)
  34939. EM_NET_FOCUS_REGION_MODE emMode; // 聚焦模式
  34940. NET_RECT stuRect; // 聚焦区域,使用相对坐标体系,取值均为0-8191
  34941. } PTZ_CONTROL_SET_FOCUS_REGION;
  34942. ///@brief CLIENT_TransmitInfoForWeb 接口扩展参数
  34943. typedef struct tagNET_TRANSMIT_EXT_INFO
  34944. {
  34945. DWORD dwSize;
  34946. unsigned char* pInBinBuf; // 二进制输入数据缓冲
  34947. DWORD dwInBinBufSize; // 二进制输入数据长度
  34948. int nJsonDataLen; // Json输出数据长度
  34949. int nBinDataLen; // 二进制输出数据长度
  34950. } NET_TRANSMIT_EXT_INFO;
  34951. ///@brief 监听CAN总线数据
  34952. ///@brief fAttachProxyCB 参数
  34953. typedef struct tagNET_CB_CANDATA
  34954. {
  34955. DWORD dwSize;
  34956. int nDataLength; // 普通数据长度
  34957. unsigned char* pDataContent; // 普通数据内容
  34958. }NET_CB_CANDATA;
  34959. ///@brief 监听CAN总线数据回调函数原形,lAttachHandle是CLIENT_AttachCAN返回值
  34960. typedef void (CALLBACK *fAttachCANCB) (LLONG lLoginID, LLONG lAttachHandle, NET_CB_CANDATA* pBuf, LDWORD dwUser);
  34961. ///@brief CLIENT_AttachCAN()输入参数
  34962. typedef struct tagNET_IN_ATTACH_CAN
  34963. {
  34964. DWORD dwSize;
  34965. int nChannel; // 监听的CAN通道号
  34966. fAttachCANCB cbAttachCAN; // 注册视频电话状态变化回调
  34967. LDWORD dwUser; // 用户数据
  34968. }NET_IN_ATTACH_CAN;
  34969. ///@brief CLIENT_AttachCAN()输出参数
  34970. typedef struct tagNET_OUT_ATTACH_CAN
  34971. {
  34972. DWORD dwSize;
  34973. }NET_OUT_ATTACH_CAN;
  34974. ///@brief CLIENT_SendCAN()输入参数
  34975. typedef struct tagNET_IN_SEND_CAN
  34976. {
  34977. DWORD dwSize;
  34978. int nChannel; // CAN通道号
  34979. int nSendDataLength; // 发送数据长度
  34980. unsigned char* pSendData; // 发送数据内容
  34981. }NET_IN_SEND_CAN;
  34982. ///@brief CLIENT_SendCAN()输出参数
  34983. typedef struct tagNET_OUT_SEND_CAN
  34984. {
  34985. DWORD dwSize;
  34986. }NET_OUT_SEND_CAN;
  34987. ///@brief 订阅透明串口数据回调fAttachDevCommCB 参数
  34988. typedef struct tagNET_CB_DEVCOMMDATA
  34989. {
  34990. DWORD dwSize;
  34991. int nDataLength; // 普通数据长度
  34992. unsigned char* pDataContent; // 普通数据内容
  34993. }NET_CB_DEVCOMMDATA;
  34994. ///@brief 监听透明串口数据回调函数原形,lAttachHandle是CLIENT_AttachDevComm返回值
  34995. typedef void (CALLBACK *fAttachDevCommCB) (LLONG lLoginID, LLONG lAttachHandle, NET_CB_DEVCOMMDATA* pBuf, LDWORD dwUser);
  34996. ///@brief CLIENT_AttachDevComm()输入参数
  34997. typedef struct tagNET_IN_ATTACH_DEVCOMM
  34998. {
  34999. DWORD dwSize;
  35000. int nChannel; // 监听的透明串口号
  35001. fAttachDevCommCB cbAttachDevComm; // 注册透明串口数据回调
  35002. LDWORD dwUser; // 用户数据
  35003. }NET_IN_ATTACH_DEVCOMM;
  35004. ///@brief CLIENT_AttachDevComm()输出参数
  35005. typedef struct tagNET_OUT_ATTACH_DEVCOMM
  35006. {
  35007. DWORD dwSize;
  35008. }NET_OUT_ATTACH_DEVCOMM;
  35009. ///@brief 获取当前设备串口个数,对应CLIENT_QueryDevState()接口的 DH_DEVSTATE_GET_COMM_COUNT 命令参数
  35010. typedef struct tagNET_GET_COMM_COUNT
  35011. {
  35012. DWORD dwSize;
  35013. int nChannelCout; // 获取到的串口数
  35014. }NET_GET_COMM_COUNT;
  35015. ///@brief CLIENT_ExChangeData 接口输入结构体
  35016. typedef struct tagNET_IN_EXCHANGEDATA
  35017. {
  35018. DWORD dwSize;
  35019. int nChannel; // 串口号
  35020. BOOL bFlag; // TRUE 为发送数据并等待回复,FALSE 只是采集数据
  35021. int nCollectTime; // 串口采集时长(单位:毫秒)
  35022. int nSendDataLength; // 发送数据长度,bFlag = TRUE 有效
  35023. unsigned char* pSendData; // 发送数据内容,bFlag = TRUE 有效
  35024. }NET_IN_EXCHANGEDATA;
  35025. ///@brief CLIENT_ExChangeData 接口输出结构体
  35026. typedef struct tagNET_OUT_EXCHANGEDATA
  35027. {
  35028. DWORD dwSize;
  35029. }NET_OUT_EXCHANGEDATA;
  35030. ///@brief 云台预置点
  35031. typedef struct tagNET_PTZ_PRESET
  35032. {
  35033. int nIndex; // 编号
  35034. char szName[PTZ_PRESET_NAME_LEN]; // 名称
  35035. int nPosition[3]; // 预置点的坐标和放大倍数
  35036. // 第一个参数是水平坐标,范围[0,3599],表示0度到359.9度,度数扩大10倍表示
  35037. // 第二个参数是垂直坐标,范围[-1800,1800],表示-180.0度到+180.0度,度数扩大10倍表示
  35038. // 第三个参数是放大参数,范围[0,128],表示最小倍到最大倍的变倍位置
  35039. BOOL bSetNameEx; // 设置预置点名称时需置TRUE
  35040. char szNameEx[256]; // 名称,支持256字节长度
  35041. char szReserve[52]; // 预留字节
  35042. } NET_PTZ_PRESET;
  35043. ///@brief 云台预置点列表
  35044. typedef struct tagNET_PTZ_PRESET_LIST
  35045. {
  35046. DWORD dwSize;
  35047. DWORD dwMaxPresetNum; // 预置点最大个数
  35048. DWORD dwRetPresetNum; // 返回预置点个数
  35049. NET_PTZ_PRESET *pstuPtzPorsetList; // 预置点列表(入参需要根据最大个数申请内存),内存大小为sizeof(NET_PTZ_PRESET)*dwMaxPresetNum
  35050. } NET_PTZ_PRESET_LIST;
  35051. ///@brief 事件类型 EVENT_IVS_TRAFFIC_RESTRICTED_PLATE (受限车牌事件)对应的数据块描述信息
  35052. typedef struct tagDEV_EVENT_TRAFFIC_RESTRICTED_PLATE
  35053. {
  35054. int nChannelID; // 通道号
  35055. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  35056. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  35057. DWORD PTS; // 时间戳(单位是毫秒)
  35058. NET_TIME_EX UTC; // 事件发生的时间
  35059. int nEventID; // 事件ID
  35060. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  35061. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35062. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  35063. BYTE byReserved1[2];
  35064. int nLane; // 对应车道号
  35065. DH_MSG_OBJECT stuObject; // 检测到的物体
  35066. DH_MSG_OBJECT stuVehicle; // 车身信息
  35067. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  35068. int nMark; // 底层产生的触发抓拍帧标记
  35069. int nFrameSequence; // 视频分析帧序号
  35070. int nSource; // 视频分析的数据源地址
  35071. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  35072. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  35073. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  35074. NET_GPS_INFO stuGPSInfo; // GPS信息
  35075. BYTE byReserved[984]; // 保留字节
  35076. EVENT_COMM_INFO stCommInfo; // 公共信息
  35077. }DEV_EVENT_TRAFFIC_RESTRICTED_PLATE;
  35078. ///@brief 事件类型 EVENT_IVS_TRAFFIC_OVERSTOPLINE (压停车线事件)对应的数据块描述信息
  35079. typedef struct tagDEV_EVENT_TRAFFIC_OVERSTOPLINE
  35080. {
  35081. int nChannelID; // 通道号
  35082. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  35083. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  35084. DWORD PTS; // 时间戳(单位是毫秒)
  35085. NET_TIME_EX UTC; // 事件发生的时间
  35086. int nEventID; // 事件ID
  35087. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  35088. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35089. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  35090. BYTE byReserved1[2];
  35091. int nLane; // 对应车道号
  35092. DH_MSG_OBJECT stuObject; // 检测到的物体
  35093. DH_MSG_OBJECT stuVehicle; // 车身信息
  35094. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  35095. int nMark; // 底层产生的触发抓拍帧标记
  35096. int nFrameSequence; // 视频分析帧序号
  35097. int nSource; // 视频分析的数据源地址
  35098. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  35099. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  35100. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  35101. int nSpeed; // 车辆实际速度,Km/h
  35102. NET_GPS_INFO stuGPSInfo; // GPS信息
  35103. BYTE byReserved[984]; // 保留字节
  35104. EVENT_COMM_INFO stCommInfo; // 公共信息
  35105. BOOL bHasNonMotor; // stuNonMotor 字段是否有效
  35106. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
  35107. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35108. }DEV_EVENT_TRAFFIC_OVERSTOPLINE;
  35109. ///@brief 事件类型EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT(交通未系安全带事件事件)对应的数据块描述信息
  35110. typedef struct tagDEV_EVENT_TRAFFIC_WITHOUT_SAFEBELT
  35111. {
  35112. int nChannelID; // 通道号
  35113. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  35114. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  35115. DWORD PTS; // 时间戳(单位是毫秒)
  35116. NET_TIME_EX UTC; // 事件发生的时间
  35117. int nEventID; // 事件ID
  35118. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  35119. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束; BYTE byReserved1[2];
  35120. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  35121. BYTE byReserved1[2];
  35122. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  35123. int nLane; // 对应车道号
  35124. int nMark; // 底层产生的触发抓拍帧标记
  35125. int nFrameSequence; // 视频分析帧序号
  35126. int nSource; // 视频分析的数据源地址
  35127. DH_MSG_OBJECT stuObject; // 检测到的物体
  35128. DH_MSG_OBJECT stuVehicle; // 车身信息
  35129. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  35130. int nSpeed; // 车辆实际速度,Km/h
  35131. NET_SAFEBELT_STATE emMainSeat; // 主驾驶座位安全带状态
  35132. NET_SAFEBELT_STATE emSlaveSeat; // 副驾驶座位安全带状态
  35133. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  35134. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  35135. NET_GPS_INFO stuGPSInfo; // GPS信息
  35136. BYTE byReserved[728]; // 保留字节
  35137. EVENT_COMM_INFO stCommInfo; // 公共信息
  35138. char szVideoPath[256]; // 违章关联视频FTP上传路径
  35139. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35140. }DEV_EVENT_TRAFFIC_WITHOUT_SAFEBELT;
  35141. ///@brief 事件类型EVENT_IVS_TRAFFIC_DRIVER_SMOKING (驾驶员抽烟事件)对应的数据块描述信息
  35142. typedef struct tagDEV_EVENT_TRAFFIC_DRIVER_SMOKING
  35143. {
  35144. int nChannelID; // 通道号
  35145. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  35146. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  35147. DWORD PTS; // 时间戳(单位是毫秒)
  35148. NET_TIME_EX UTC; // 事件发生的时间
  35149. int nEventID; // 事件ID
  35150. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  35151. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束; BYTE byReserved1[2];
  35152. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  35153. BYTE byReserved1[2];
  35154. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  35155. int nLane; // 对应车道号
  35156. int nMark; // 底层产生的触发抓拍帧标记
  35157. int nFrameSequence; // 视频分析帧序号
  35158. int nSource; // 视频分析的数据源地址
  35159. DH_MSG_OBJECT stuObject; // 检测到的物体
  35160. DH_MSG_OBJECT stuVehicle; // 车身信息
  35161. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  35162. int nSpeed; // 车辆实际速度,Km/h
  35163. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  35164. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  35165. EVENT_COMM_INFO stCommInfo; // 公共信息
  35166. NET_GPS_INFO stuGPSInfo; // GPS信息
  35167. char szDriverID[32]; // 司机ID
  35168. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  35169. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  35170. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35171. BYTE byReserved[952]; // 保留字节
  35172. }DEV_EVENT_TRAFFIC_DRIVER_SMOKING;
  35173. ///@brief 事件类型EVENT_IVS_TRAFFIC_DRIVER_CALLING(驾驶员打电话事件)对应的数据块描述信息
  35174. typedef struct tagDEV_EVENT_TRAFFIC_DRIVER_CALLING
  35175. {
  35176. int nChannelID; // 通道号
  35177. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  35178. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  35179. DWORD PTS; // 时间戳(单位是毫秒)
  35180. NET_TIME_EX UTC; // 事件发生的时间
  35181. int nEventID; // 事件ID
  35182. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  35183. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束; BYTE byReserved1[2];
  35184. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  35185. BYTE byReserved1[2];
  35186. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  35187. int nLane; // 对应车道号
  35188. int nMark; // 底层产生的触发抓拍帧标记
  35189. int nFrameSequence; // 视频分析帧序号
  35190. int nSource; // 视频分析的数据源地址
  35191. DH_MSG_OBJECT stuObject; // 检测到的物体
  35192. DH_MSG_OBJECT stuVehicle; // 车身信息
  35193. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  35194. int nSpeed; // 车辆实际速度,Km/h
  35195. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  35196. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  35197. EVENT_COMM_INFO stCommInfo; // 公共信息
  35198. NET_GPS_INFO stuGPSInfo; // GPS信息
  35199. char szDriverID[32]; // 司机ID
  35200. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  35201. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  35202. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35203. BYTE byReserved[952]; // 保留字节
  35204. }DEV_EVENT_TRAFFIC_DRIVER_CALLING;
  35205. ///@brief 事件类型EVENT_IVS_OBJECT_DETECTION(物体特征检测事件)对应的数据块描述信息
  35206. typedef struct tagDEV_EVENT_TRAFFIC_OBJECT_DETECTION
  35207. {
  35208. int nChannelID; // 通道号
  35209. char szName[128]; // 事件名称
  35210. char bReserved1[4]; // 字节对齐
  35211. double PTS; // 时间戳(单位是毫秒)
  35212. NET_TIME_EX UTC; // 事件发生的时间
  35213. int nEventID; // 事件ID
  35214. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  35215. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35216. BYTE byReserved[2]; // 保留字节
  35217. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  35218. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  35219. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  35220. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  35221. unsigned int nOccurrenceCount; // 事件触发累计次数
  35222. int nObjectNum; //物体信息数
  35223. DH_MSG_OBJECT_EX *pstObjectInfo; //物体信息数据
  35224. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  35225. BYTE byReserved2[892]; //保留字节
  35226. }DEV_EVENT_TRAFFIC_OBJECT_DETECTION;
  35227. ///@brief 冗余电源异常报警
  35228. typedef struct tagALARM_POWER_ABNORMAL_INFO
  35229. {
  35230. DWORD dwSize;
  35231. int nChannelID; // 通道号
  35232. NET_TIME stuTime; // 时间
  35233. DWORD dwAction; // 事件动作, 0:Start, 1:Stop
  35234. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35235. }ALARM_POWER_ABNORMAL_INFO;
  35236. ///@brief 三态使能
  35237. typedef enum tagNET_THREE_STATE_ENABLE
  35238. {
  35239. EM_STATE_ENABLE_INVALID = 0, // 无效
  35240. EM_STATE_ENABLE_OFF, // 关
  35241. EM_STATE_ENABLE_ON, // 开
  35242. } NET_THREE_STATE_ENABLE;
  35243. ///@brief 配置使能改变上报事件
  35244. typedef struct tagCONFIG_ENABLE_CHANGE_INFO
  35245. {
  35246. DWORD dwSize;
  35247. int nChannelID; // 通道号, 从0开始
  35248. NET_THREE_STATE_ENABLE emMotionDetect; // 动检使能, 0:无效, 1:使能关闭, 2:使能打开
  35249. NET_THREE_STATE_ENABLE emLossDetect; // 视频丢失使能, 0:无效, 1:使能关闭, 2:使能打开
  35250. NET_THREE_STATE_ENABLE emBlindDetect; // 视频遮挡使能, 0:无效, 1:使能关闭, 2:使能打开
  35251. NET_THREE_STATE_ENABLE emAlarmLocal; // 外部报警使能, 0:无效, 1:使能关闭, 2:使能打开
  35252. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35253. }ALARM_CONFIG_ENABLE_CHANGE_INFO;
  35254. ///@brief 虚点测速仪违章类型
  35255. typedef enum tagEM_ITC_HWS000_IT_TYPE
  35256. {
  35257. EM_ITC_HWS000_IT_TYPE_UNKNOWN, // 未知
  35258. EM_ITC_HWS000_IT_TYPE_HIGH_SPEED, // 高速
  35259. EM_ITC_HWS000_IT_TYPE_LOW_SPEED, // 低速
  35260. }EM_ITC_HWS000_IT_TYPE;
  35261. ///@brief 虚点测速仪雷达状态
  35262. typedef enum tagEM_ITC_HWS000_RS_TYPE
  35263. {
  35264. EM_ITC_HWS000_RS_TYPE_UNKNOWN, // 未知
  35265. EM_ITC_HWS000_RS_TYPE_ONLINE, // 在线
  35266. EM_ITC_HWS000_RS_TYPE_OFFLINE, // 离线
  35267. }EM_ITC_HWS000_RS_TYPE;
  35268. ///@brief 虚点测速仪闪光灯状态
  35269. typedef enum tagEM_ITC_HWS000_FS_TYPE
  35270. {
  35271. EM_ITC_HWS000_FS_TYPE_UNKNOWN, // 未知
  35272. EM_ITC_HWS000_FS_TYPE_ONLINE, // 在线
  35273. EM_ITC_HWS000_FS_TYPE_OFFLINE, // 离线
  35274. }EM_ITC_HWS000_FS_TYPE;
  35275. ///@brief 虚点测速仪设备事件与报警
  35276. typedef struct tagALARM_ITC_HWS000
  35277. {
  35278. DWORD dwSize;
  35279. EM_ITC_HWS000_IT_TYPE emItType; // 违章类型
  35280. EM_ITC_HWS000_RS_TYPE emRsType; // 雷达在线状态
  35281. EM_ITC_HWS000_FS_TYPE emFsType; // 闪光灯在线状态
  35282. int nOcNum; // 超速计数值
  35283. int nLcNum; // 欠速计数值
  35284. int nAcNum; // 违章总计数值
  35285. int nFcNum; // 闪光灯闪烁次数
  35286. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35287. }ALARM_ITC_HWS000;
  35288. ///@brief 车辆状态 +-
  35289. typedef enum tagEM_CAR_COME_STATUS
  35290. {
  35291. EM_CAR_COME_STATUS_UNKNOWN, //未知
  35292. EM_CAR_COME_STATUS_COME_IN, //入场
  35293. EM_CAR_COME_STATUS_COME_OUT, //出场
  35294. }EM_CAR_COME_STATUS;
  35295. ///@brief 手机号码上报事件
  35296. typedef struct tagALARM_TELEPHONE_CHECK_INFO
  35297. {
  35298. DWORD dwSize;
  35299. EM_CAR_COME_STATUS emCarStatus; //车辆状态
  35300. char szTelephoneNum[32]; //手机号码
  35301. }ALARM_TELEPHONE_CHECK_INFO;
  35302. #define UPDATE_VERSION_LEN 64
  35303. ///@brief 获取设备升级状态对应结构体
  35304. typedef struct tagDHDEV_UPGRADE_STATE_INFO
  35305. {
  35306. int nState; // 0:None-没有检测到更新, 默认状态; 1:Regular-一般升级;
  35307. // 2:Emergency-强制升级; 3:Upgrading-升级中
  35308. char szOldVersion[UPDATE_VERSION_LEN]; // 旧版本
  35309. char szNewVersion[UPDATE_VERSION_LEN]; // 新版本
  35310. DWORD dwProgress; // 升级进度
  35311. int reserved[256]; // 保留字段
  35312. }DHDEV_UPGRADE_STATE_INFO;
  35313. ///@brief 警戒线入侵方向
  35314. typedef enum tagNET_CROSSLINE_DIRECTION_INFO
  35315. {
  35316. EM_CROSSLINE_DIRECTION_UNKNOW = 0 ,
  35317. EM_CROSSLINE_DIRECTION_LEFT2RIGHT , //左到右
  35318. EM_CROSSLINE_DIRECTION_RIGHT2LEFT , //右到左
  35319. EM_CROSSLINE_DIRECTION_ANY ,
  35320. }NET_CROSSLINE_DIRECTION_INFO;
  35321. ///@brief 警戒线事件(对应事件 DH_EVENT_CROSSLINE_DETECTION)
  35322. typedef struct tagALARM_EVENT_CROSSLINE_INFO
  35323. {
  35324. DWORD dwSize;
  35325. int nChannelID; // 通道号
  35326. double PTS; // 时间戳(单位是毫秒)
  35327. NET_TIME_EX UTC; // 事件发生的时间
  35328. int nEventID; // 事件ID
  35329. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35330. NET_CROSSLINE_DIRECTION_INFO emCrossDirection; // 入侵方向
  35331. int nOccurrenceCount; // 规则被触发生次数
  35332. int nLevel; // 事件级别,GB30147需求项
  35333. BOOL bIsObjectInfo; // 是否检测到物体信息
  35334. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  35335. int nRetObjectNum; // 实际返回多个检测到的物体信息
  35336. DH_MSG_OBJECT stuObjects[MAX_TARGET_OBJECT_NUM]; // 多个检测到的物体信息
  35337. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35338. }ALARM_EVENT_CROSSLINE_INFO;
  35339. ///@brief 移动事件(对应事件DH_ALARM_MOVEDETECTION)
  35340. typedef struct tagALARM_MOVE_DETECTION_INFO
  35341. {
  35342. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35343. int nChannelID; // 通道号
  35344. double dbPTS; // 时间戳(单位是毫秒)
  35345. NET_TIME_EX stuTime; // 事件发生的时间
  35346. int nEventID; // 事件ID
  35347. int nCount; // 规则被触发的次数
  35348. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35349. BYTE byReserved[1024]; //保留字节
  35350. } ALARM_MOVE_DETECTION_INFO;
  35351. ///@brief 徘徊事件(对应事件DH_ALARM_WANDERDETECTION)
  35352. typedef struct tagALARM_WANDERDETECTION_INFO
  35353. {
  35354. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35355. int nChannelID; // 通道号
  35356. double dbPTS; // 时间戳(单位是毫秒)
  35357. NET_TIME_EX stuTime; // 事件发生的时间
  35358. int nEventID; // 事件ID
  35359. int nCount; // 规则被触发的次数
  35360. int nLevel; // 事件级别,GB31047需求
  35361. short nPreserID; // 事件触发的预置点号,从1开始(没有表示未知)
  35362. char szPresetName[64]; // 事件触发的预置名称
  35363. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35364. BYTE byReserved[958]; //保留字节
  35365. } ALARM_WANDERDETECTION_INFO;
  35366. ///@brief 翻越围栏事件(对应事件DH_ALARM_CROSSFENCEDETECTION)
  35367. typedef struct tagALARM_CROSSFENCEDETECTION_INFO
  35368. {
  35369. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35370. int nChannelID; // 通道号
  35371. double dbPTS; // 时间戳(单位是毫秒)
  35372. NET_TIME_EX stuTime; // 事件发生的时间
  35373. int nEventID; // 事件ID
  35374. NET_CROSSLINE_DIRECTION_INFO emCrossDirection; // 入侵方向
  35375. int nCount; // 规则被触发的次数
  35376. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35377. BYTE byReserved[1024]; //保留字节
  35378. } ALARM_CROSSFENCEDETECTION_INFO;
  35379. ///@brief 闯红灯事件(对应事件 ALARM_TRAFFIC_PEDESTRIAN_RUN_REDLIGHT_DETECTION)
  35380. typedef struct tagALARM_TRAFFIC_PEDESTRIAN_RUN_REDLIGHT_DETECTION_INFO
  35381. {
  35382. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35383. int nChannelID; // 通道号
  35384. double dbPTS; // 时间戳(单位是毫秒)
  35385. NET_TIME_EX stuTime; // 事件发生的时间
  35386. int nEventID; // 事件ID
  35387. BYTE byReserved[1024]; //保留字节
  35388. } ALARM_TRAFFIC_PEDESTRIAN_RUN_REDLIGHT_DETECTION_INFO;
  35389. ///@brief 斗殴事件(对应事件DH_ALARM_FIGHTDETECTION)
  35390. typedef struct tagNET_ALARM_FIGHTDETECTION
  35391. {
  35392. int nAction; // 事件动作,0:开始1:停止
  35393. int nChannelID; // 通道号从0开始
  35394. double dbPTS; // 时间戳(单位是毫秒)
  35395. NET_TIME_EX stuTime; // 事件发生的时间
  35396. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  35397. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35398. BYTE byReserved[892]; //保留字节
  35399. }NET_ALARM_FIGHTDETECTION;
  35400. #define VTO_BUILDING_LEN 8
  35401. #define VTO_UNIT_LEN 8
  35402. ///@brief VTO目标识别事件(对应事件DH_ALARM_ACCESSIDENTIFY)
  35403. typedef struct tagNET_ALARM_ACCESSIDENTIFY_INFO
  35404. {
  35405. NET_TIME_EX stuTime; // 事件发生的时间
  35406. char szVTOBuilding[VTO_BUILDING_LEN]; // 所属幢号
  35407. char szVTOUnit[VTO_UNIT_LEN]; // 所属单元号
  35408. BYTE byReserved[1024]; // 保留字节
  35409. }NET_ALARM_ACCESSIDENTIFY_INFO;
  35410. ///@brief 直连情况下,呼叫无答应事件(对应事件DH_ALARM_CALL_NO_ANSWERED)
  35411. typedef struct tagNET_ALARM_CALL_NO_ANSWERED_INFO
  35412. {
  35413. NET_TIME_EX stuTime; // 事件发生的时间
  35414. char szCallID[MAX_CALL_ID_LEN]; // 呼叫ID
  35415. int nAction; // 事件动作, 1表示持续性事件开始,2表示持续性事件结束;
  35416. int nChannelID; // 通道号
  35417. BYTE byReserved[1016]; // 保留字节
  35418. } NET_ALARM_CALL_NO_ANSWERED_INFO;
  35419. ///@brief 非法停车事件(对应事件DH_ALARM_PARKINGDETECTION)
  35420. typedef struct tagALARM_PARKINGDETECTION_INFO
  35421. {
  35422. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35423. int nChannelID; // 通道号
  35424. double dbPTS; // 时间戳(单位是毫秒)
  35425. NET_TIME_EX stuTime; // 事件发生的时间
  35426. int nEventID; // 事件ID
  35427. int nCount; // 规则被触发的次数
  35428. char szCustomParkNo[64]; // 车位名称
  35429. DH_POINT stuDetectRegion[20]; // 规则检测区域
  35430. int nDetectRegionNum; // 规则检测区域顶点数
  35431. BYTE byReserved[876]; // 保留字节
  35432. } ALARM_PARKINGDETECTION_INFO;
  35433. ///@brief 人员聚集事件(对应事件DH_ALARM_RIOTERDETECTION)
  35434. typedef struct tagALARM_RIOTERDETECTION_INFO
  35435. {
  35436. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35437. int nChannelID; // 通道号
  35438. double dbPTS; // 时间戳(单位是毫秒)
  35439. NET_TIME_EX stuTime; // 事件发生的时间
  35440. int nEventID; // 事件ID
  35441. int nCount; // 规则被触发的次数
  35442. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35443. BYTE byReserved[1024]; // 保留字节
  35444. } ALARM_RIOTERDETECTION_INFO;
  35445. ///@brief 事件类型 DH_ALARM_TRAFFIC_PARKING(交通违章停车事件)对应的数据块描述信息
  35446. typedef struct tagALARM_TRAFFIC_PARKING_INFO
  35447. {
  35448. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35449. int nChannelID; // 通道号
  35450. double dbPTS; // 时间戳(单位是毫秒)
  35451. NET_TIME_EX stuTime; // 事件发生的时间
  35452. int nEventID; // 事件ID
  35453. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35454. int nLane; // 车道号
  35455. BYTE byReserved[1020]; // 保留字节
  35456. } ALARM_TRAFFIC_PARKING_INFO;
  35457. ///@brief 事件类型DH_ALARM_TRAFFIC_JAM(交通拥堵事件)对应的数据块描述信息
  35458. typedef struct tagALARM_TRAFFIC_JAM_INFO
  35459. {
  35460. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35461. int nChannelID; // 通道号
  35462. double dbPTS; // 时间戳(单位是毫秒)
  35463. NET_TIME_EX stuTime; // 事件发生的时间
  35464. int nEventID; // 事件ID
  35465. int nLane; // 车道号
  35466. BYTE byReserved[1020]; // 保留字节
  35467. } ALARM_TRAFFIC_JAM_INFO;
  35468. ///@brief 事件类型 DH_ALARM_TRAFFIC_PEDESTRAIN(交通行人事件)对应数据块描述信息
  35469. typedef struct tagALARM_TRAFFIC_PEDESTRAIN_INFO
  35470. {
  35471. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35472. int nChannelID; // 通道号
  35473. double dbPTS; // 时间戳(单位是毫秒)
  35474. NET_TIME_EX stuTime; // 事件发生的时间
  35475. int nEventID; // 事件ID
  35476. int nLane; // 车道号
  35477. BYTE byReserved[1020]; // 保留字节
  35478. } ALARM_TRAFFIC_PEDESTRAIN_INFO;
  35479. ///@brief 事件类型 DH_ALARM_TRAFFIC_THROW(交通抛洒物品事件)对应数据块描述信息
  35480. typedef struct tagALARM_TRAFFIC_THROW_INFO
  35481. {
  35482. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35483. int nChannelID; // 通道号
  35484. double dbPTS; // 时间戳(单位是毫秒)
  35485. NET_TIME_EX stuTime; // 事件发生的时间
  35486. int nEventID; // 事件ID
  35487. BYTE byReserved[1024]; // 保留字节
  35488. } ALARM_TRAFFIC_THROW_INFO;
  35489. ///@brief 事件类型DH_ALARM_TRAFFIC_RETROGRADE(交通逆行事件)对应的数据块描述信息
  35490. typedef struct tagALARM_TRAFFIC_RETROGRADE_INFO
  35491. {
  35492. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35493. int nChannelID; // 通道号
  35494. double dbPTS; // 时间戳(单位是毫秒)
  35495. NET_TIME_EX stuTime; // 事件发生的时间
  35496. int nEventID; // 事件ID
  35497. int nLane; // 车道号
  35498. BYTE byReserved[1020]; // 保留字节
  35499. } ALARM_TRAFFIC_RETROGRADE_INFO;
  35500. ///@brief 事件类型DH_ALARM_TRAFFIC_OVERSPEED(交通超速事件)对应的数据块描述信息
  35501. typedef struct tagALARM_TRAFFIC_OVERSPEED_INFO
  35502. {
  35503. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35504. int nChannelID; // 通道号
  35505. double dbPTS; // 时间戳(单位是毫秒)
  35506. NET_TIME_EX stuTime; // 事件发生的时间
  35507. int nEventID; // 事件ID
  35508. int nSpeed; // 车速
  35509. int nSpeedUpperLimit; // 速度上限
  35510. int nSpeedLowerLimit; // 速度下限
  35511. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35512. int nLane; // 车道号
  35513. BYTE byReserved[1020]; // 保留字节
  35514. } ALARM_TRAFFIC_OVERSPEED_INFO;
  35515. ///@brief 事件类型DH_ALARM_TRAFFIC_UNDERSPEED(交通欠速事件)对应的数据块描述信息
  35516. typedef struct tagALARM_TRAFFIC_UNDERSPEED_INFO
  35517. {
  35518. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35519. int nChannelID; // 通道号
  35520. double dbPTS; // 时间戳(单位是毫秒)
  35521. NET_TIME_EX stuTime; // 事件发生的时间
  35522. int nEventID; // 事件ID
  35523. int nSpeed; // 车速
  35524. int nSpeedUpperLimit; // 速度上限
  35525. int nSpeedLowerLimit; // 速度下限
  35526. int nLane; // 车道号
  35527. BYTE byReserved[1020]; // 保留字节
  35528. } ALARM_TRAFFIC_UNDERSPEED_INFO;
  35529. ///@brief 事件类型DH_ALARM_TRAFFIC_ROADALERT(道路安全预警事件)对应的数据块描述信息
  35530. typedef struct tagNET_ALARM_TRAFFIC_ROADALERT_INFO
  35531. {
  35532. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35533. int nChannelID; // 通道号
  35534. double dbPTS; // 时间戳(单位是毫秒)
  35535. NET_TIME_EX stuTime; // 事件发生的时间
  35536. int nEventID; // 事件ID
  35537. int nLane; // 车道号
  35538. BYTE byReserved[1020]; // 保留字节
  35539. } NET_ALARM_TRAFFIC_ROADALERT_INFO;
  35540. ///@brief 事件类型DH_ALARM_TRAFFIC_CROSSLANE(违章变道事件)对应的数据块描述信息
  35541. typedef struct tagNET_ALARM_TRAFFIC_CROSSLANE_INFO
  35542. {
  35543. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35544. int nChannelID; // 通道号
  35545. double dbPTS; // 时间戳(单位是毫秒)
  35546. NET_TIME_EX stuTime; // 事件发生的时间
  35547. int nEventID; // 事件ID
  35548. int nLane; // 车道号
  35549. BYTE byReserved[1020]; // 保留字节
  35550. } NET_ALARM_TRAFFIC_CROSSLANE_INFO;
  35551. ///@brief 事件类型DH_ALARM_TRAFFIC_OVERYELLOWLINE(压线事件)对应的数据块描述信息
  35552. typedef struct tagNET_ALARM_TRAFFIC_OVERYELLOWLINE_INFO
  35553. {
  35554. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35555. int nChannelID; // 通道号
  35556. double dbPTS; // 时间戳(单位是毫秒)
  35557. NET_TIME_EX stuTime; // 事件发生的时间
  35558. int nEventID; // 事件ID
  35559. int nLane; // 车道号
  35560. BYTE byReserved[1020]; // 保留字节
  35561. } NET_ALARM_TRAFFIC_OVERYELLOWLINE_INFO;
  35562. ///@brief 事件类型DH_ALARM_TRAFFIC_ACCIDENT(交通事故事件)对应的数据块描述信息
  35563. typedef struct tagNET_ALARM_TRAFFIC_ACCIDENT_INFO
  35564. {
  35565. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35566. int nChannelID; // 通道号
  35567. double dbPTS; // 时间戳(单位是毫秒)
  35568. NET_TIME_EX stuTime; // 事件发生的时间
  35569. int nEventID; // 事件ID
  35570. unsigned int nLane; // 车道号
  35571. BYTE byReserved[1020]; // 保留字节
  35572. } NET_ALARM_TRAFFIC_ACCIDENT_INFO;
  35573. ///@brief 事件类型DH_ALARM_TRAFFIC_ROADBLOCK(交通路障检测事件)对应的数据块描述信息
  35574. typedef struct tagNET_ALARM_TRAFFIC_ROADBLOCK_INFO
  35575. {
  35576. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35577. int nChannelID; // 通道号
  35578. double dbPTS; // 时间戳(单位是毫秒)
  35579. NET_TIME_EX stuTime; // 事件发生的时间
  35580. int nEventID; // 事件ID
  35581. unsigned int nLane; // 车道号
  35582. BYTE byReserved[1020]; // 保留字节
  35583. } NET_ALARM_TRAFFIC_ROADBLOCK_INFO;
  35584. ///@brief 事件类型DH_ALARM_TRAFFIC_ROADCONSTRUCTION(交通道路施工检测事件)对应的数据块描述信息
  35585. typedef struct tagNET_ALARM_TRAFFIC_ROADCONSTRUCTION_INFO
  35586. {
  35587. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35588. int nChannelID; // 通道号
  35589. double dbPTS; // 时间戳(单位是毫秒)
  35590. NET_TIME_EX stuTime; // 事件发生的时间
  35591. int nEventID; // 事件ID
  35592. unsigned int nLane; // 车道号
  35593. BYTE byReserved[1020]; // 保留字节
  35594. } NET_ALARM_TRAFFIC_ROADCONSTRUCTION_INFO;
  35595. ///@brief 事件类型DH_ALARM_TRAFFIC_CARDISTANCESHORT(车间距过小报警事件)对应的数据块描述信息
  35596. typedef struct tagNET_ALARM_TRAFFIC_CARDISTANCESHORT_INFO
  35597. {
  35598. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35599. int nChannelID; // 通道号
  35600. double dbPTS; // 时间戳(单位是毫秒)
  35601. NET_TIME_EX stuTime; // 事件发生的时间
  35602. int nEventID; // 事件ID
  35603. int nLane; // 车道号
  35604. BYTE byReserved[1020]; // 保留字节
  35605. } NET_ALARM_TRAFFIC_CARDISTANCESHORT_INFO;
  35606. ///@brief 事件类型DH_ALARM_TRAFFIC_VEHICLERACING(飙车事件)对应的数据块描述信息
  35607. typedef struct tagNET_ALARM_TRAFFIC_VEHICLERACING_INFO
  35608. {
  35609. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35610. int nChannelID; // 通道号
  35611. double dbPTS; // 时间戳(单位是毫秒)
  35612. NET_TIME_EX stuTime; // 事件发生的时间
  35613. int nEventID; // 事件ID
  35614. int nLane; // 车道号
  35615. BYTE byReserved[1020]; // 保留字节
  35616. } NET_ALARM_TRAFFIC_VEHICLERACING_INFO;
  35617. ///@brief 事件类型DH_ALARM_STORAGE_OVERLOAD(配额超负荷事件)对应的数据块描述信息
  35618. typedef struct tagNET_ALARM_STORAGE_OVERLOAD_INFO
  35619. {
  35620. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35621. int nChannelID; // 通道号
  35622. double dbPTS; // 时间戳(单位是毫秒)
  35623. NET_TIME_EX stuTime; // 事件发生的时间
  35624. int nEventID; // 事件ID
  35625. char szName[32]; // 超负荷事件类型,配额或盘组, "storageQuota"/"storageGroup"
  35626. char szGroup[128][32]; // 出现超负荷事件的盘组号
  35627. int nGroupNum; // 盘组号个数
  35628. char byReserved[1020]; // 保留字节
  35629. } NET_ALARM_STORAGE_OVERLOAD_INFO;
  35630. ///@brief 事件类型DH_ALARM_RETROGRADE_DETECTION(人员逆行事件)对应的数据块描述信息
  35631. typedef struct tagALARM_RETROGRADE_DETECTION_INFO
  35632. {
  35633. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35634. int nChannelID; // 通道号
  35635. double dbPTS; // 时间戳(单位是毫秒)
  35636. NET_TIME_EX stuTime; // 事件发生的时间
  35637. int nEventID; // 事件ID
  35638. int nCount; // 规则被触发的次数
  35639. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35640. BYTE byReserved[1024]; // 保留字节
  35641. } ALARM_RETROGRADE_DETECTION_INFO;
  35642. ///@brief AIO报警事件(对应事件DH_ALARM_AIO_APP_CONFIG_EVENT)
  35643. typedef struct tagALARM_AIO_APP_CONFIG_EVENT_INFO
  35644. {
  35645. NET_TIME_EX stuTime; // 事件发生的时间
  35646. char szAddress[DH_MAX_IPADDR_LEN]; // 发布平台的的ip地址
  35647. BYTE byReserved[1024]; // 保留字节
  35648. }ALARM_AIO_APP_CONFIG_EVENT_INFO;
  35649. ///@brief 事件类型DH_ALARM_BOX(报警盒子报警事件)对应的数据块描述信息
  35650. typedef struct tagALARM_BOX_INFO
  35651. {
  35652. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  35653. double dbPTS; // 时间戳(单位是毫秒)
  35654. NET_TIME_EX stuTime; // 事件发生的时间
  35655. int nEventID; // 事件ID
  35656. int nAlarmBoxIndex; // 外接多个报警盒时,表示报警盒序号。从0开始
  35657. int nAlarmIndex; // 报警盒内部的通道号,从0开始
  35658. BYTE byReserved[1024]; // 保留字节
  35659. } ALARM_BOX_INFO;
  35660. ///@brief 事件类型 DH_ALARM_UNDER_VOLTAGE (低电压报警事件) 对应的数据块描述信息
  35661. typedef struct tagALARM_UNDER_VOLTAGE_INFO
  35662. {
  35663. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35664. int nChannelID; // 通道号
  35665. double dbPTS; // 时间戳(单位是毫秒)
  35666. NET_TIME_EX stuTime; // 事件发生的时间
  35667. int nEventID; // 事件ID
  35668. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35669. BYTE byReserved[512]; // 保留字节
  35670. }ALARM_UNDER_VOLTAGE_INFO;
  35671. ///@brief 事件类型 DH_ALARM_OVER_VOLTAGE (超电压报警事件) 对应的数据块描述信息
  35672. typedef struct tagALARM_OVER_VOLTAGE_INFO
  35673. {
  35674. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35675. int nChannelID; // 通道号
  35676. double dbPTS; // 时间戳(单位是毫秒)
  35677. NET_TIME_EX stuTime; // 事件发生的时间
  35678. int nEventID; // 事件ID
  35679. BYTE byReserved[512]; // 保留字节
  35680. }ALARM_OVER_VOLTAGE_INFO;
  35681. ///@brief 事件类型 DH_ALARM_TIRED_PHYSIOLOGICAL (生理疲劳事件) 对应的数据块描述信息
  35682. typedef struct tagALARM_TIRED_PHYSIOLOGICAL
  35683. {
  35684. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35685. int nChannelID; // 通道号
  35686. double dbPTS; // 时间戳(单位是毫秒)
  35687. NET_TIME_EX stuTime; // 事件发生的时间
  35688. int nEventID; // 事件ID
  35689. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  35690. BYTE byReserved[512]; // 保留字节
  35691. } ALARM_TIRED_PHYSIOLOGICAL;
  35692. ///@brief 事件类型 DH_ALARM_CALLING_WHEN_DRIVING (开车打电话事件) 对应的数据块描述信息
  35693. typedef struct tagALARM_CALLING_WHEN_DRIVING
  35694. {
  35695. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35696. int nChannelID; // 通道号
  35697. double dbPTS; // 时间戳(单位是毫秒)
  35698. NET_TIME_EX stuTime; // 事件发生的时间
  35699. int nEventID; // 事件ID
  35700. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  35701. BYTE byReserved[512]; // 保留字节
  35702. } ALARM_CALLING_WHEN_DRIVING;
  35703. ///@brief 事件类型 DH_ALARM_TRAFFIC_DRIVER_SMOKING (开车抽烟事件) 对应的数据块描述信息
  35704. typedef struct tagALARM_TRAFFIC_DRIVER_SMOKING
  35705. {
  35706. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35707. int nChannelID; // 通道号
  35708. double dbPTS; // 时间戳(单位是毫秒)
  35709. NET_TIME_EX stuTime; // 事件发生的时间
  35710. int nEventID; // 事件ID
  35711. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  35712. BYTE byReserved[512]; // 保留字节
  35713. } ALARM_TRAFFIC_DRIVER_SMOKING;
  35714. ///@brief 事件类型 DH_ALARM_TRAFFIC_DRIVER_LOWER_HEAD (开车低头报警事件) 对应的数据块描述信息
  35715. typedef struct tagALARM_TRAFFIC_DRIVER_LOWER_HEAD
  35716. {
  35717. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35718. int nChannelID; // 通道号
  35719. double dbPTS; // 时间戳(单位是毫秒)
  35720. NET_TIME_EX stuTime; // 事件发生的时间
  35721. int nEventID; // 事件ID
  35722. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  35723. BYTE byReserved[512]; // 保留字节
  35724. } ALARM_TRAFFIC_DRIVER_LOWER_HEAD;
  35725. ///@brief 事件类型 DH_ALARM_TRAFFIC_DRIVER_LOOK_AROUND (开车左顾右盼报警事件) 对应的数据块描述信息
  35726. typedef struct tagALARM_TRAFFIC_DRIVER_LOOK_AROUND
  35727. {
  35728. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35729. int nChannelID; // 通道号
  35730. double dbPTS; // 时间戳(单位是毫秒)
  35731. NET_TIME_EX stuTime; // 事件发生的时间
  35732. int nEventID; // 事件ID
  35733. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  35734. BYTE byReserved[512]; // 保留字节
  35735. } ALARM_TRAFFIC_DRIVER_LOOK_AROUND;
  35736. ///@brief 事件类型 DH_ALARM_TRAFFIC_DRIVER_LEAVE_POST (开车离岗报警事件) 对应的数据块描述信息
  35737. typedef struct tagALARM_TRAFFIC_DRIVER_LEAVE_POST
  35738. {
  35739. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35740. int nChannelID; // 通道号
  35741. double dbPTS; // 时间戳(单位是毫秒)
  35742. NET_TIME_EX stuTime; // 事件发生的时间
  35743. int nEventID; // 事件ID
  35744. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  35745. BYTE byReserved[512]; // 保留字节
  35746. } ALARM_TRAFFIC_DRIVER_LEAVE_POST;
  35747. ///@brief 事件类型 DH_ALARM_TRAFFIC_DRIVER_YAWN (开车打哈欠报警事件) 对应的数据块描述信息
  35748. typedef struct tagALARM_TRAFFIC_DRIVER_YAWN
  35749. {
  35750. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35751. int nChannelID; // 通道号
  35752. double dbPTS; // 时间戳(单位是毫秒)
  35753. NET_TIME_EX stuTime; // 事件发生的时间
  35754. int nEventID; // 事件ID
  35755. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  35756. BYTE byReserved[512]; // 保留字节
  35757. } ALARM_TRAFFIC_DRIVER_YAWN;
  35758. ///@brief 车头方向
  35759. typedef enum tagEM_VEHICLE_HEAD_DIRECTION
  35760. {
  35761. EM_VEHICLE_HEAD_DIRECTION_UNKNOWN, // 未知
  35762. EM_VEHICLE_HEAD_DIRECTION_LEFT, // 左
  35763. EM_VEHICLE_HEAD_DIRECTION_MIDDLE, // 中
  35764. EM_VEHICLE_HEAD_DIRECTION_RIGHT, // 右
  35765. }EM_VEHICLE_HEAD_DIRECTION;
  35766. ///@brief 抓拍时车的位置
  35767. typedef enum tagEM_VEHICLE_POSITION
  35768. {
  35769. EM_VEHICLE_POSITION_UNKNOWN, // 未知
  35770. EM_VEHICLE_POSITION_HEAD, // 头
  35771. EM_VEHICLE_POSITION_TAIL, // 尾
  35772. }EM_VEHICLE_POSITION;
  35773. ///@brief 车辆行驶方向(相对车道方向)
  35774. typedef enum tagEM_VEHICLE_DRIVING_DIRECTION
  35775. {
  35776. EM_VEHICLE_DRIVING_DIRECTION_UNKNOWN, // 未知
  35777. EM_VEHICLE_DRIVING_DIRECTION_OBVERSE, // 正向
  35778. EM_VEHICLE_DRIVING_DIRECTION_REVERSE, // 反向
  35779. }EM_VEHICLE_DRIVING_DIRECTION;
  35780. ///@brief 车辆位置报警事件(DH_ALARM_TRAFFIC_VEHICLE_POSITION)
  35781. typedef struct tagALARM_TRAFFIC_VEHICLE_POSITION
  35782. {
  35783. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  35784. char szEventName[DH_COMMON_STRING_128]; // 事件名称
  35785. unsigned int nObjectID; // 物体ID
  35786. char szPlateNumber[DH_COMMON_STRING_128]; // 车牌号
  35787. int nPosition; // 识别车牌与卡口抓拍线的相对距离(0为基准,表示视频抓拍卡口位置时的车牌距离;正数表示越过抓拍线;负数表示未越过抓拍线)
  35788. BYTE byOpenStrobeState; // 开闸状态,具体请见 EM_OPEN_STROBE_STATE
  35789. UINT nPlateConfidence; // 车牌置信度,范围[0, 255]
  35790. char szPlateColor[32]; // 车牌颜色
  35791. char szPlateType[32]; // 车牌类型
  35792. UINT nVehicleConfidence; // 车身置信度,范围[0, 255]
  35793. EM_VEHICLE_HEAD_DIRECTION emVehicleHeadDirection; // 车头朝向,用于抓拍时,判断当前车头是否正对着相机
  35794. EM_VEHICLE_POSITION emVehiclePosition; // 抓拍车的位置
  35795. EM_VEHICLE_DRIVING_DIRECTION emDrivingDirection; // 车辆行驶方向(相对车道方向)
  35796. BYTE byReserved[427]; // 保留字节
  35797. } ALARM_TRAFFIC_VEHICLE_POSITION;
  35798. ///@brief 事件类型 DH_ALARM_MPTBASE_CONNECT (设备与底座连接状态事件) 对应的数据块描述信息
  35799. typedef struct tagALARM_MPTBASE_CONNECT
  35800. {
  35801. int nAction; // 事件动作, 1 表示持续性事件开始, 2 表示持续性事件结束
  35802. BYTE byReserved[512]; // 保留字节
  35803. } ALARM_MPTBASE_CONNECT;
  35804. ///@brief 关机原因
  35805. typedef enum tagEM_SHUTDOWN_REASON_TYPE
  35806. {
  35807. EM_SHUTDOWN_REASON_UNKNOWN, // 未知
  35808. EM_SHUTDOWN_REASON_LOWERPOWER, // 低电量
  35809. EM_SHUTDOWN_REASON_LOSTPOWER, // 突然掉电
  35810. EM_SHUTDOWN_REASON_CRASH, // 系统崩溃
  35811. } EM_SHUTDOWN_REASON_TYPE;
  35812. ///@brief 事件类型DH_ALARM_CGIRECORD,对应CGI触发手动录像
  35813. typedef struct tagALARM_CGIRECORD
  35814. {
  35815. int nAction; // 事件动作,1表示事件开始,2表示事件结束;
  35816. int nChannelID; // 录像通道号
  35817. double dbPTS; // 时间戳(单位是毫秒)
  35818. NET_TIME_EX stuTime; // 事件发生的时间
  35819. int nEventID; // 事件ID
  35820. NET_TIME_EX stuStartTime; // 录像开始时间
  35821. NET_TIME_EX stuStopTime; // 录像结束时间
  35822. BYTE byReserved[512]; // 保留字节
  35823. } ALARM_CGIRECORD;
  35824. ///@brief 电池温度上报事件信息,对应DH_ALARM_BATTERY_TEMPERATURE
  35825. typedef struct tagALARM_BATTERY_TEMPERATURE_INFO
  35826. {
  35827. int nBatteryIndex; // 电池序号
  35828. NET_TIME_EX stuTime; // 事件时间
  35829. float fTemperature; // 电池的温度值,单位:°C
  35830. BYTE byReserved[1024]; // 保留字节
  35831. }ALARM_BATTERY_TEMPERATURE_INFO;
  35832. ///@brief 事件类型 DH_ALARM_TIRE_PRESSURE ,对应胎压事件上报
  35833. typedef struct tagALARM_TIRE_PRESSURE_INFO
  35834. {
  35835. int nAction; // 事件动作,1表示事件开始,2表示事件结束;
  35836. int nEventID; // 事件ID
  35837. double dbPTS; // 时间戳(单位是毫秒)
  35838. NET_TIME_EX stuTime; // 事件发生的时间
  35839. int nTireIndex; // 轮胎编号,从1开始
  35840. int nAlarmType; // 报警类型,1-低压报警,2-高压报警
  35841. float fUpperLimit; // 胎压上限,单位BAR
  35842. float fLowerLimit; // 胎压下限,单位BAR
  35843. float fCurrentPressure; // 当前胎压,单位BAR
  35844. BYTE byReserved[512]; // 保留字节
  35845. } ALARM_TIRE_PRESSURE_INFO;
  35846. ///@brief 门禁禁止名单刷卡事件,对应 DH_ALARM_ACCESS_CTL_BLACKLIST
  35847. typedef struct tagALARM_ACCESS_CTL_BLACKLIST
  35848. {
  35849. int nChannel; // 门通道号
  35850. char szAccessName[DH_COMMON_STRING_64]; // 门禁名称
  35851. char szUserID[DH_COMMON_STRING_32]; // 用户ID
  35852. char szCardNo[DH_COMMON_STRING_64]; // 禁止名单卡号
  35853. char szCitizenIDNo[20]; // 证件号
  35854. NET_TIME_EX UTC; // 事件发生的时间
  35855. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  35856. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  35857. BYTE byReserved[416]; // 保留字节
  35858. }ALARM_ACCESS_CTL_BLACKLIST;
  35859. ///@brief 未授权卡恶意刷卡事件, 对应 DH_ALARM_ACCESS_CTL_UNAUTHORIZED_MALICIOUSWIP
  35860. typedef struct tagALARM_ACCESS_CTL_UNAUTHORIZED_MALICIOUSWIP
  35861. {
  35862. int nChannel; // 门通道号
  35863. char szDoorName[DH_MAX_DOORNAME_LEN]; // 门禁名称
  35864. char szUserID[MAX_COMMON_STRING_16]; // 用户ID
  35865. char szCardNo[DH_COMMON_STRING_64]; // 卡号
  35866. NET_TIME_EX stuTime; // 事件发生的时间
  35867. BYTE byReserved[476];
  35868. }ALARM_ACCESS_CTL_UNAUTHORIZED_MALICIOUSWIP;
  35869. ///@brief 用户锁定报警事件,对应 DH_ALARM_USERLOCK
  35870. typedef struct tagALARM_USERLOCK_INFO
  35871. {
  35872. double dbPTS; // 时间戳(单位是毫秒)
  35873. NET_TIME_EX stuTime; // 事件发生的时间
  35874. int nEventID; // 事件ID
  35875. char szUserName[MAX_USER_NAME_LEN]; // 用户名
  35876. char szGroup[MAX_GROUP_LEN]; // 组名
  35877. char szIllegalLoginIP[MAX_ILLEGAL_LOGIN_IP_LEN]; // 非法登录的IP
  35878. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35879. BYTE byReserved[1024]; // 保留字节
  35880. }ALARM_USERLOCK_INFO;
  35881. ///@brief 下载远程文件事件,对应 DH_ALARM_DOWNLOAD_REMOTE_FILE
  35882. typedef struct tagALARM_DOWNLOAD_REMOTE_FILE_INFO
  35883. {
  35884. double dbPTS; // 时间戳(单位是毫秒)
  35885. NET_TIME_EX stuTime; // 事件发生的时间
  35886. int nEventID; // 事件ID
  35887. char szURL[DH_COMMON_STRING_256]; // 下载文件对应的URL地址
  35888. UINT nProgress; // 下载进度[0,100]
  35889. UINT nVelocity; // 下载平均速度, 单位: Kb/s
  35890. BYTE byReserved[1016]; // 保留字节
  35891. }ALARM_DOWNLOAD_REMOTE_FILE_INFO;
  35892. ///@brief 冲突信息
  35893. typedef struct tagNET_CONFLICT_INFO
  35894. {
  35895. char szSlaveMac[DH_COMMON_STRING_32]; // 分配器MAC地址
  35896. int nSlaveID; // 分配器ID
  35897. int nSlavePort; // 室内机位于分配器的端口号
  35898. BYTE byReserved[64]; // 保留字节
  35899. } NET_CONFLICT_INFO;
  35900. // 冲突信息最大数量
  35901. #define MAX_COUNT_CONFLICT 16
  35902. ///@brief 事件类型 DH_ALARM_VTH_CONFLICT, 对应房间号冲突上报事件
  35903. typedef struct tagALARM_VTH_CONFLICT_INFO
  35904. {
  35905. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  35906. int nEventID; // 事件ID
  35907. double dbPTS; // 时间戳(单位是毫秒)
  35908. NET_TIME_EX stuTime; // 事件发生的时间
  35909. int nConflictNum; // 冲突数量
  35910. NET_CONFLICT_INFO stConflictInfo[MAX_COUNT_CONFLICT]; // 冲突信息
  35911. char szVTNCNum[DH_COMMON_STRING_32]; // 单元联网控制器号码/门口机号码
  35912. char szVTHNum[DH_COMMON_STRING_32]; // 房间号
  35913. BYTE byReserved[512]; // 保留字节
  35914. } ALARM_VTH_CONFLICT_INFO;
  35915. ///@brief 事件类型DH_ALARM_LATEST_SHUTDOWN (设备上次关机状态事件) 对应的数据块描述信息
  35916. typedef struct tagALARM_LATEST_SHUTDOWN
  35917. {
  35918. EM_SHUTDOWN_REASON_TYPE emShutdownReason; // 关机原因
  35919. BYTE byReserved[512]; // 保留字节
  35920. } ALARM_LATEST_SHUTDOWN;
  35921. ///@brief 文件信息
  35922. typedef struct tagNET_EMERGENCY_FILE_INFO
  35923. {
  35924. char szUniqueID[128]; // 原始文件创建时文件的唯一标示
  35925. char szOriginalDeviceID[128]; // 原始文件创建设备的序列号ID
  35926. EM_MOBILE_ENFORCE_FORMAT emFormat; // 文件的真实类型
  35927. EM_MOBILE_ENFORCE_FILE_TYPE emFileType; // 文件后缀类型
  35928. char szFileName[260]; // 文件名称
  35929. char szFilePath[260]; // 文件路径。
  35930. NET_TIME stStartTime; // 文件开始时间
  35931. NET_TIME stEndTime; // 文件结束时间
  35932. UINT nLength; // 文件长度
  35933. NET_TIME stuStartTimeRealUTC; // UTC开始时间
  35934. NET_TIME stuEndTimeRealUTC; // UTC结束时间
  35935. BYTE byReserved[448]; // 保留字节
  35936. } NET_EMERGENCY_FILE_INFO;
  35937. ///@brief 事件类型DH_ALARM_EMERGENCY_FILE_UPLOAD (MPT设备要求主动上传指定文件给平台事件) 对应的数据块描述信息
  35938. typedef struct tagALARM_EMERGENCY_FILE_UPLOAD
  35939. {
  35940. NET_EMERGENCY_FILE_INFO stFileInfo[50];
  35941. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  35942. BYTE byReserved[512]; // 保留字节
  35943. } ALARM_EMERGENCY_FILE_UPLOAD;
  35944. ///@brief MPT设备取消下载的文件信息
  35945. typedef struct tagNET_EMERGENCY_CANCEL_FILE_INFO
  35946. {
  35947. char szUniqueID[128]; // 原始文件创建时文件的唯一标示
  35948. char byReserved[512]; // 保留字节
  35949. } NET_EMERGENCY_CANCEL_FILE_INFO;
  35950. ///@brief 事件类型DH_ALARM_EMERGENCY_FILE_UPLOAD_CANCEL (MPT设备要求平台取消下载事件) 对应的数据块描述信息
  35951. typedef struct tagALARM_EMERGENCY_FILE_UPLOAD_CANCEL_INFO
  35952. {
  35953. int nAction; // 事件动作,0表示脉冲事件
  35954. int nEventID; // 事件ID
  35955. double dbPTS; // 时间戳(单位是毫秒)
  35956. NET_TIME_EX stuTime; // 事件发生的时间
  35957. UINT nFileNum; // 需要取消下载的文件个数
  35958. NET_EMERGENCY_CANCEL_FILE_INFO stuFileList[50]; // 需要取消下载的文件列表
  35959. char byReserved[1024]; // 保留字节
  35960. } ALARM_EMERGENCY_FILE_UPLOAD_CANCEL_INFO;
  35961. ///@brief 录像备份失败原因
  35962. typedef enum tagEM_RECORD_BACKUP_FAILURE_TYPE
  35963. {
  35964. EM_RECORD_BACKUP_FAILURE_UNKNOWN, // 未知
  35965. EM_RECORD_BACKUP_FAILURE_RECORD_NO_EXIST, // 备份设备录像不存在
  35966. EM_RECORD_BACKUP_FAILURE_LOGIN_FAILED, // 无法登录备份设备
  35967. EM_RECORD_BACKUP_FAILURE_DOWNLOAD_FAILED, // 下载对端返回失败
  35968. EM_RECORD_BACKUP_FAILURE_STORAGE_FAILED, // 存储异常
  35969. EM_RECORD_BACKUP_FAILURE_DISCONNETED, // 备份期间断线
  35970. }EM_RECORD_BACKUP_FAILURE_TYPE;
  35971. ///@brief 事件类型 DH_ALARM_RECORD_BACKUP_FAILURE (录像备份失败事件) 对应的数据块描述信息
  35972. typedef struct tagALARM_RECORD_BACKUP_FAILURE_INFO
  35973. {
  35974. NET_TIME_EX stuTime; // 事件发生的时间
  35975. UINT nTaskId; // 失败任务ID
  35976. char szDeviceIP[64]; // 备份设备IP
  35977. UINT nPort; // 备份设备端口
  35978. UINT nChannel; // 本地通道
  35979. UINT nRemoteChannel; // 远程通道
  35980. NET_TIME stuBackupStartTime; // 备份录像起始时间
  35981. NET_TIME stuBackupEndTime; // 备份录像结束时间
  35982. ENUM_RECORDBACKUP_FILE_TYPE emFileType; // 录像类型
  35983. NET_STREAM_TYPE emStreamType; // 视频码流
  35984. EM_RECORD_BACKUP_FAILURE_TYPE emResson; // 异常原因
  35985. char reserved[256]; // 预留字段
  35986. }ALARM_RECORD_BACKUP_FAILURE_INFO;
  35987. ///@brief 事件类型DH_ALARM_COAXIAL_HIGH_TEMPERATURE (超温报警事件) 对应的数据块描述信息
  35988. typedef struct tagALARM_COAXIAL_HIGH_TEMPERATURE_INFO
  35989. {
  35990. int nChannelID; // 通道号
  35991. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  35992. double dbPTS; // 时间戳(单位是毫秒)
  35993. NET_TIME_EX stuTime; // 事件发生的时间
  35994. int nEventID; // 事件ID
  35995. int nAlarmChannel; // 报警输入通道号
  35996. char szName[128]; // 报警名称
  35997. float fValue; // 当前温度值,单位:摄氏度
  35998. BYTE byReserved[1024]; // 预留字段
  35999. } ALARM_COAXIAL_HIGH_TEMPERATURE_INFO;
  36000. ///@brief 事件类型DH_ALARM_COAXIAL_LOW_TEMPERATURE (失温报警事件) 对应的数据块描述信息
  36001. typedef struct tagALARM_COAXIAL_LOW_TEMPERATURE_INFO
  36002. {
  36003. int nChannelID; // 通道号
  36004. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36005. double dbPTS; // 时间戳(单位是毫秒)
  36006. NET_TIME_EX stuTime; // 事件发生的时间
  36007. int nEventID; // 事件ID
  36008. int nAlarmChannel; // 报警输入通道号
  36009. char szName[128]; // 报警名称
  36010. float fValue; // 当前温度值,单位:摄氏度
  36011. BYTE byReserved[1024]; // 预留字段
  36012. } ALARM_COAXIAL_LOW_TEMPERATURE_INFO;
  36013. ///@brief 事件类型DH_ALARM_CHANNEL_RECSHORTAGE (通道录像不足配置的天数事件) 对应的数据块描述信息
  36014. typedef struct tagALARM_CHANNEL_RECSHORTAGE_INFO
  36015. {
  36016. int nChannelID; // 通道号
  36017. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36018. int nDays; // 录像天数
  36019. DWORD dwTime; // 事件发生时间,带时区偏差的UTC时间,单位秒
  36020. char byReserved[1024]; // 预留字段
  36021. } ALARM_CHANNEL_RECSHORTAGE_INFO;
  36022. ///@brief 事件类型DH_ALARM_SECURITY_INSPECTOR_OVERTIME_ON_DUTY (安检员超时在岗事件) 对应的数据块描述信息
  36023. typedef struct tagALARM_SECURITY_INSPECTOR_OVERTIME_ON_DUTY_INFO
  36024. {
  36025. int nChannelID; // 通道号
  36026. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36027. NET_TIME_EX stuUTC; // 事件发生的时间
  36028. char szUserName[128]; // 安检员名称
  36029. char szReserved[1024]; // 预留字段
  36030. } ALARM_SECURITY_INSPECTOR_OVERTIME_ON_DUTY_INFO;
  36031. ///@brief 事件类型DH_ALARM_SECURITY_INSPECTOR_NOT_CONFIRM_PACKAGE (安检员未确认包裹事件) 对应的数据块描述信息
  36032. typedef struct tagALARM_SECURITY_INSPECTOR_NOT_CONFIRM_PACKAGE_INFO
  36033. {
  36034. int nChannelID; // 通道号
  36035. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36036. NET_TIME_EX stuUTC; // 事件发生的时间
  36037. char szUserName[128]; // 安检员名称
  36038. char szReserved[1024]; // 预留字段
  36039. } ALARM_SECURITY_INSPECTOR_NOT_CONFIRM_PACKAGE_INFO;
  36040. ///@brief 事件类型DH_ALARM_SMOKING_DETECT (吸烟行为报警事件) 对应的数据块描述信息
  36041. typedef struct tagNET_ALARM_SMOKING_DETECT_INFO
  36042. {
  36043. int nChannelID; // 通道号
  36044. int nAction; // 0:脉冲 1:开始 2:停止
  36045. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36046. char szName[128]; // 事件名称
  36047. char szClass[16]; // 智能事件所属大类
  36048. double dbPTS; // 时间戳(单位是毫秒)
  36049. NET_TIME_EX stuUTC; // 事件发生的时间
  36050. int nEventID; // 事件ID
  36051. int nGroupID; // 事件组ID
  36052. int nCountInGroup; // 一个事件组内的抓拍张数
  36053. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  36054. int nDetectRegionNum; // 规则检测区域顶点数
  36055. NET_POINT_EX stuDetectRegion[20]; // 规则检测区域
  36056. DH_MSG_OBJECT stuObject; // 检测到的物体
  36057. SCENE_IMAGE_INFO stuSceneImageInfo; // 全景广角图
  36058. char szUserName[32]; // 用户名称
  36059. UINT nPresetID; // 事件触发的预置点号,从1开始, 0表示未知
  36060. char szReserved[1020]; // 保留字节
  36061. } NET_ALARM_SMOKING_DETECT_INFO;
  36062. ///@brief 事件类型 DH_ALARM_SITE_OVERTIME_ALARM (站点超时报警) 对应的数据块描述信息
  36063. typedef struct tagNET_ALARM_SITE_OVERTIME_ALARM_INFO
  36064. {
  36065. int nChannelID; // 通道号
  36066. int nAction; // 0:脉冲 1:开始 2:停止
  36067. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36068. int nDepartureID; // 出发站ID
  36069. int nTerminusID; // 到达站ID
  36070. NET_TIME stuStartTimeUTC; // 出发站离站时间,真正的标准UTC
  36071. NET_TIME stuEndTimeUTC; // 到达站进站时间,真正的标准UTC
  36072. UINT nTimeLimit; // 最大行驶时长(单位:秒)
  36073. UINT nDriveTime; // 实际行驶时长(单位:秒)
  36074. char szReserved[1024]; // 保留字节
  36075. }NET_ALARM_SITE_OVERTIME_ALARM_INFO;
  36076. ///@brief 事件类型 DH_ALARM_SMART_SOUND_DETECT (智能声音检测事件)对应的数据块描述信息
  36077. typedef struct tagNET_ALARM_SMART_SOUND_DETECT_INFO
  36078. {
  36079. int nChannelID; // 通道号
  36080. int nAction; // 0:脉冲,1:开始, 2:停止
  36081. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  36082. UINT nACK; // 事件的确认ID
  36083. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  36084. NET_TIME stuStartTime; // 开始时间
  36085. UINT nEventID; // 事件编号,用来唯一标志一个事件
  36086. NET_TIME_EX stuUTC; // 事件发生的时间
  36087. double dbPTS; // 相对事件时间戳,单位毫秒
  36088. EM_AUDIO_MUTATION_ALARM_TYPE emType; // 声音类型
  36089. int nAlarmChannel; // 报警输入通道号, 从0开始, -1表示未知
  36090. char szName[32]; // 事件别名
  36091. char szReserved[1024]; // 预留字节
  36092. }NET_ALARM_SMART_SOUND_DETECT_INFO;
  36093. ///@brief 事件类型 DH_ALARM_REQ_WORK_TIME_CALC (查询剩余加班额度事件)对应的数据块描述信息
  36094. typedef struct tagNET_ALARM_REQ_WORK_TIME_CALC_INFO
  36095. {
  36096. int nChannelID; // 通道号
  36097. int nAction; // 0:脉冲,1:开始, 2:停止
  36098. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  36099. NET_TIME_EX stuUTC; // 事件发生的时间
  36100. char szUserID[32]; // 用户编号
  36101. char szUserName[128]; // 用户姓名
  36102. int nType; // 操作类型, -1: 未知, 0: 查询剩余加班额度, 1: 申请加班时长
  36103. float fOverTime; // 加班时长, nType为1时有效
  36104. NET_TIME stuCurrentTime; // 当前时间
  36105. NET_TIME stuWorkStartTime; // 开始加班的那天;type为1时必选项
  36106. char szReserved[976]; // 预留字节
  36107. }NET_ALARM_REQ_WORK_TIME_CALC_INFO;
  36108. ///@brief 事件类型 DH_ALARM_XRAY_EMERGENCY_ALARM (X光机一键报警事件)对应的数据块描述信息
  36109. typedef struct tagNET_ALARM_XRAY_EMERGENCY_ALARM_INFO
  36110. {
  36111. int nChannelID; // 通道号
  36112. int nAction; // 0:脉冲,1:开始, 2:停止
  36113. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  36114. NET_TIME_EX stuUTC; // 事件发生的时间
  36115. char szReserved[1024]; // 预留字节
  36116. }NET_ALARM_XRAY_EMERGENCY_ALARM_INFO;
  36117. /****************************** 安检类事件开始 ******************************/
  36118. ///@brief 事件类型DH_ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY (X射线画中画通讯异常事件) 对应的数据块描述信息
  36119. typedef struct tagALARM_XRAY_PIP_COMMUNICATION_ABNORMITY_INFO
  36120. {
  36121. int nChannelID; // 通道号
  36122. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36123. NET_TIME_EX stuTime; // 事件发生的时间
  36124. unsigned int nEventID; // 事件ID
  36125. double dbPTS; // 时间戳(单位是毫秒)
  36126. char szName[128]; // 事件名称
  36127. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36128. char szReserved[1024]; // 预留字段
  36129. } ALARM_XRAY_PIP_COMMUNICATION_ABNORMITY_INFO;
  36130. ///@brief 事件类型DH_ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY (X光机图像采集系统通信异常事件) 对应的数据块描述信息
  36131. typedef struct tagALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY_INFO
  36132. {
  36133. int nChannelID; // 通道号
  36134. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36135. NET_TIME_EX stuTime; // 事件发生的时间
  36136. unsigned int nEventID; // 事件ID
  36137. double dbPTS; // 时间戳(单位是毫秒)
  36138. char szName[128]; // 事件名称
  36139. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36140. char szReserved[1024]; // 预留字段
  36141. } ALARM_XRAY_ACQUISITION_SYSTEM_ABNORMITY_INFO;
  36142. ///@brief 事件类型DH_ALARM_XRAY_EMERGENCY_STOP (X光机紧急停止事件) 对应的数据块描述信息
  36143. typedef struct tagALARM_XRAY_EMERGENCY_STOP_INFO
  36144. {
  36145. int nChannelID; // 通道号
  36146. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36147. NET_TIME_EX stuTime; // 事件发生的时间
  36148. unsigned int nEventID; // 事件ID
  36149. double dbPTS; // 时间戳(单位是毫秒)
  36150. char szName[128]; // 事件名称
  36151. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36152. char szReserved[1024]; // 预留字段
  36153. } ALARM_XRAY_EMERGENCY_STOP_INFO;
  36154. ///@brief 事件类型DH_ALARM_XRAY_DETECTOR_PROTECTION_OPEN (X光机接收器件防护装置打开事件) 对应的数据块描述信息
  36155. typedef struct tagALARM_XRAY_DETECTOR_PROTECTION_OPEN_INFO
  36156. {
  36157. int nChannelID; // 通道号
  36158. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36159. NET_TIME_EX stuTime; // 事件发生的时间
  36160. unsigned int nEventID; // 事件ID
  36161. double dbPTS; // 时间戳(单位是毫秒)
  36162. char szName[128]; // 事件名称
  36163. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36164. char szReserved[1024]; // 预留字段
  36165. } ALARM_XRAY_DETECTOR_PROTECTION_OPEN_INFO;
  36166. ///@brief X光机外罩打开位置
  36167. typedef enum tagEM_XRAY_SHELL_OPEN_POSITION
  36168. {
  36169. EM_XRAY_SHELL_OPEN_POSITION_UNKNWON = -1, // 未知
  36170. EM_XRAY_SHELL_OPEN_POSITION_INSENSITIVE, // 不区分位置
  36171. EM_XRAY_SHELL_OPEN_POSITION_A_LEFT, // A端左侧(面向A端通道时)
  36172. EM_XRAY_SHELL_OPEN_POSITION_A_RIGHT, // A端右侧(面向A端通道时)
  36173. EM_XRAY_SHELL_OPEN_POSITION_B_LEFT, // B端左侧(面向B端通道时)
  36174. EM_XRAY_SHELL_OPEN_POSITION_B_RIGHT // B端右侧(面向B端通道时)
  36175. } EM_XRAY_SHELL_OPEN_POSITION;
  36176. ///@brief 事件类型DH_ALARM_XRAY_MACHINE_SHELL_OPEN (X光机外罩打开事件) 对应的数据块描述信息
  36177. typedef struct tagALARM_XRAY_MACHINE_SHELL_OPEN_INFO
  36178. {
  36179. int nChannelID; // 通道号
  36180. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36181. NET_TIME_EX stuTime; // 事件发生的时间
  36182. unsigned int nEventID; // 事件ID
  36183. double dbPTS; // 时间戳(单位是毫秒)
  36184. char szName[128]; // 事件名称
  36185. EM_XRAY_SHELL_OPEN_POSITION nPosition[32]; // 外罩打开位置
  36186. int nPositionCnt; // 外罩打开位置个数
  36187. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36188. char szReserved[1020]; // 预留字段
  36189. } ALARM_XRAY_MACHINE_SHELL_OPEN_INFO;
  36190. ///@brief 事件类型DH_ALARM_XRAY_KEYBOARD_ABNORMITY (X光机操作键盘通信异常事件) 对应的数据块描述信息
  36191. typedef struct tagALARM_XRAY_KEYBOARD_ABNORMITY_INFO
  36192. {
  36193. int nChannelID; // 通道号
  36194. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36195. NET_TIME_EX stuTime; // 事件发生的时间
  36196. unsigned int nEventID; // 事件ID
  36197. double dbPTS; // 时间戳(单位是毫秒)
  36198. char szName[128]; // 事件名称
  36199. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36200. char szReserved[1024]; // 预留字段
  36201. } ALARM_XRAY_KEYBOARD_ABNORMITY_INFO;
  36202. ///@brief 事件类型DH_ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY (X光机图像传送带状态异常事件) 对应的数据块描述信息
  36203. typedef struct tagALARM_XRAY_TRANSMISSION_BELT_ABNORMITY_INFO
  36204. {
  36205. int nChannelID; // 通道号
  36206. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36207. NET_TIME_EX stuTime; // 事件发生的时间
  36208. unsigned int nEventID; // 事件ID
  36209. double dbPTS; // 时间戳(单位是毫秒)
  36210. char szName[128]; // 事件名称
  36211. char szReserved[1024]; // 预留字段
  36212. } ALARM_XRAY_TRANSMISSION_BELT_ABNORMITY_INFO;
  36213. ///@brief 事件类型DH_ALARM_POWER_GROUND_DETECTION_ABNORMAL (X光机接地异常检测事件) 对应的数据块描述信息
  36214. typedef struct tagALARM_POWER_GROUND_DETECTION_ABNORMAL_INFO
  36215. {
  36216. int nChannelID; // 通道号
  36217. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36218. NET_TIME_EX stuTime; // 事件发生的时间
  36219. unsigned int nEventID; // 事件ID
  36220. double dbPTS; // 时间戳(单位是毫秒)
  36221. char szName[128]; // 事件名称
  36222. char szReserved[1024]; // 预留字段
  36223. } ALARM_POWER_GROUND_DETECTION_ABNORMAL_INFO;
  36224. ///@brief X光机故障类型
  36225. typedef enum tagEM_XRAY_COMM_ABNORMITY_TYPE
  36226. {
  36227. EM_XRAY_COMM_ABNORMITY_TYPE_UNKNWON = -1, // 未知
  36228. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_SUPERVISION_FAILURE, // 射线源监管故障
  36229. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_INTERLOCK_FAILURE, // 射线源互锁故障
  36230. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_HIGH_NEGATIVE_PRESSURE, // 射线源负压过高
  36231. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_HIGH_POSITIVE_PRESSURE, // 射线源正压过高
  36232. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_HIGH_TEMPERATURE, // 射线源温度过高
  36233. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_ARC_FAULT, // 射线源电弧故障
  36234. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_OVERCURRENT, // 射线源电流过大
  36235. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_POWER_LIMIT, // 射线源功率限制
  36236. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_HIGH_VOLTAGE, // 射线源电压过高
  36237. EM_XRAY_COMM_ABNORMITY_TYPE_COMMUNICATION_ERROR1, // 单片机与射线源通信异常
  36238. EM_XRAY_COMM_ABNORMITY_TYPE_COMMUNICATION_ERROR2, // 服务器与工控板通信异常
  36239. EM_XRAY_COMM_ABNORMITY_TYPE_COMMUNICATION_ERROR3, // 服务器与探测器通信异常
  36240. EM_XRAY_COMM_ABNORMITY_TYPE_SENSOR1_A_BLOCKED, // A端节能传感器被遮挡或未对齐
  36241. EM_XRAY_COMM_ABNORMITY_TYPE_SENSOR1_B_BLOCKED, // B端节能传感器被遮挡或未对齐
  36242. EM_XRAY_COMM_ABNORMITY_TYPE_SENSOR2_A_BLOCKED, // A端过包传感器被遮挡或未对齐
  36243. EM_XRAY_COMM_ABNORMITY_TYPE_SENSOR2_B_BLOCKED, // B端过包传感器被遮挡或未对齐
  36244. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_UNDERVOLTAGE, // 射线源欠压
  36245. EM_XRAY_COMM_ABNORMITY_TYPE_SOURCE_UNDERCURRENT, // 射线源欠流
  36246. EM_XRAY_COMM_ABNORMITY_TYPE_MOTOR_OVERHEATED // 电机过热
  36247. } EM_XRAY_COMM_ABNORMITY_TYPE;
  36248. ///@brief 事件类型DH_ALARM_XRAY_SOURCE_ABNORMITY (X光机X射线发生器故障事件) 对应的数据块描述信息
  36249. typedef struct tagALARM_XRAY_SOURCE_ABNORMITY_INFO
  36250. {
  36251. int nChannelID; // 通道号
  36252. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36253. NET_TIME_EX stuTime; // 事件发生的时间
  36254. unsigned int nEventID; // 事件ID
  36255. double dbPTS; // 时间戳(单位是毫秒)
  36256. char szName[128]; // 事件名称
  36257. EM_XRAY_COMM_ABNORMITY_TYPE nAbnormalDetail[32]; // X光机故障类型
  36258. int nAbnormalDetailCnt; // X光机故障类型个数
  36259. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36260. char szReserved[1020]; // 预留字段
  36261. } ALARM_XRAY_SOURCE_ABNORMITY_INFO;
  36262. ///@brief 关联图片
  36263. typedef struct tagRELATED_IMAGE
  36264. {
  36265. UINT nImageType; // 图片类型 0表示包裹所有者的目标图片 1表示包裹违禁品图片
  36266. UINT nOffset; // 在二进制数据块中的偏移
  36267. UINT nLength; // 图片大小,单位:字节
  36268. char szReserved[128]; // 预留字节
  36269. }RELATED_IMAGE;
  36270. ///@brief 身份信息
  36271. typedef struct tagIDENTITY_INFO
  36272. {
  36273. char szCitizenName[128]; // 法定姓名
  36274. EM_SEX_TYPE emSex; // 性别
  36275. char szCitizenIDNo[20]; // 证件号18位
  36276. UINT nAge; // 年龄
  36277. char szReserved[512]; // 预留字节
  36278. }IDENTITY_INFO;
  36279. ///@brief 处理方式
  36280. typedef enum tagEM_PROCESS_MODE
  36281. {
  36282. EM_PROCESS_MODE_UNKNOWN = -1, // 未知
  36283. EM_PROCESS_MODE_ABANDON_ONESELF, // 自弃
  36284. EM_PROCESS_MODE_RELEASE, // 放行
  36285. EM_PROCESS_MODE_STORAGE_OF_ARTICLES, // 物品保管
  36286. EM_PROCESS_MODE_TRANSFER_TO_SECURITY, // 移交公安
  36287. EM_PROCESS_MODE_DISCRETION, // 自行处理
  36288. EM_PROCESS_MODE_FALSE_ALARM, // 误报
  36289. }EM_PROCESS_MODE;
  36290. ///@brief 自定义物品类型
  36291. typedef struct tagNET_XRAY_INSIDE_ONJECT_TYPE
  36292. {
  36293. char szObjType[32]; // 物体类型
  36294. char byReserved[256]; // 保留字节
  36295. }NET_XRAY_INSIDE_ONJECT_TYPE;
  36296. ///@brief 开包检查信息
  36297. typedef struct tagUNPACKING_CHECK_INFO
  36298. {
  36299. UINT nUTC; // 事件发生时间,带时区偏差的UTC时间,单位秒
  36300. UINT nUTCMS; // 事件时间毫秒数
  36301. char szPackageTag[32]; // 表示包裹标识,用来唯一标识一个包裹
  36302. RELATED_IMAGE stuRelatedImage[64]; // 关联图片
  36303. int nRelatedImageRetNum; // 关联图片数量
  36304. UINT nAlarmTime; // 报警时间,UTC时间,单位秒
  36305. IDENTITY_INFO stuIdentityInfo; // 身份信息
  36306. char szContrabandClass[16][32]; // 物品分类,已废弃
  36307. int nContrabandRetNum; // 物品个数
  36308. EM_PROCESS_MODE emProcessMode; // 处理方式
  36309. char szChecker[128]; // 检出人,即开包人员
  36310. char szAlarmLocation[256]; // 报警地点
  36311. EM_INSIDE_OBJECT_TYPE emContrabandClass[64]; // 物品分类
  36312. char szPlaceOfDeparture[256]; // 行程出发地
  36313. char szDestination[256]; // 行程目的地
  36314. NET_XRAY_INSIDE_ONJECT_TYPE stuContrabandClass[64]; // 自定义物品类型
  36315. char szReserved[256]; // 预留字节
  36316. }UNPACKING_CHECK_INFO;
  36317. ///@brief 事件类型 EVENT_IVS_XRAY_UNPACKING_CHECK (X光开包检查事件)对应的数据块描述信息
  36318. typedef struct tagDEV_EVENT_XRAY_UNPACKING_CHECK_INFO
  36319. {
  36320. int nChannelID; // 通道号
  36321. int nAction; // 事件动作,0表示脉冲事件
  36322. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  36323. char szClass[16]; // 智能事件所属大类
  36324. double dbPTS; // 相对事件时间戳(单位是毫秒)
  36325. UNPACKING_CHECK_INFO stuCheckInfo; // 开包检查信息
  36326. int nEventID; // 事件ID
  36327. char szReserved[1024]; // 预留字节
  36328. }DEV_EVENT_XRAY_UNPACKING_CHECK_INFO;
  36329. ///@brief 目标物体信息
  36330. typedef struct tagNET_BLIND_SPOT_DETECTION_OBJECT_INFO
  36331. {
  36332. float fLateralDistance; // 横向距离, 单位: 米
  36333. DH_MSG_OBJECT stuObject; // 检测到的物体
  36334. char szReserved[256]; // 保留字节
  36335. } NET_BLIND_SPOT_DETECTION_OBJECT_INFO;
  36336. ///@brief 事件类型EVENT_IVS_DRIVE_BLIND_SPOT (盲区检测事件)对应的数据块描述信息
  36337. typedef struct tagDEV_EVENT_BLIND_SPOT_DETECTION_INFO
  36338. {
  36339. int nChannelID; // 通道号
  36340. int nAction; // 0:脉冲,1:开始, 2:停止
  36341. char szName[128]; // 事件名称
  36342. double dbPTS; // 时间戳(单位是毫秒)
  36343. NET_TIME_EX stuUTC; // 事件发生的时间
  36344. int nEventID; // 事件ID
  36345. UINT nAlarmLevel; // 报警等级
  36346. int nObjectNum; // 目标物体个数
  36347. NET_BLIND_SPOT_DETECTION_OBJECT_INFO stuObjectInfo[32]; // 目标物体信息
  36348. char szVideoPath[256]; // 违章关联视频FTP上传路径
  36349. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  36350. char szReserved[768]; // 保留字节
  36351. } DEV_EVENT_BLIND_SPOT_DETECTION_INFO;
  36352. /****************************** 安检类事件结束 ******************************/
  36353. ///@brief 工装建模错误码
  36354. typedef enum tagEM_WORKSUIT_ABSTRACT_ERRCODE
  36355. {
  36356. EM_WORKSUIT_ABSTRACT_ERRCODE_UNKNWON, // 未知
  36357. EM_WORKSUIT_ABSTRACT_ERRCODE_FAILED, // 建模失败
  36358. EM_WORKSUIT_ABSTRACT_ERRCODE_SYSERR, // 系统异常(如Licence失效、建模分析器未启动导致的失败)
  36359. EM_WORKSUIT_ABSTRACT_ERRCODE_DB_ERROR, // 数据库操作失败
  36360. EM_WORKSUIT_ABSTRACT_ERRCODE_OVER_NUM, // 工装数量超过限制
  36361. EM_WORKSUIT_ABSTRACT_ERRCODE_NO_STORAGE, // 剩余存储空间大小不足
  36362. } EM_WORKSUIT_ABSTRACT_ERRCODE;
  36363. ///@brief 工装建模结果信息
  36364. typedef struct tagNET_WORKSUIT_ABSTRACT_INFO
  36365. {
  36366. char szGroupID[64]; // 工装合规组ID
  36367. UINT nProcess; // 工装建模进度,百分比
  36368. UINT nToken; // 该次工装建模的token值
  36369. UINT nSucceedCnt; // 工装图片建模成功的个数
  36370. UINT nFailedCnt; // 工装图片建模失败的个数
  36371. UINT nFailedSourceFileNamesNum; // 建模失败的全景图图片名称列表个数
  36372. UINT nFailedSourceUIDNum; // 建模失败的全景图唯一标识符列表个数
  36373. char szFailedSourceFileNames[200][64]; // 建模失败的全景图图片名称列表
  36374. char szFailedSourceUID[200][64]; // 建模失败的全景图唯一标识符列表
  36375. char szReserved1[4]; // 字节对齐
  36376. UINT nErrCodeNum; // 工装建模错误码个数
  36377. EM_WORKSUIT_ABSTRACT_ERRCODE emErrCode[200]; // 工装建模错误码
  36378. char szReserved[1024]; // 预留字段
  36379. } NET_WORKSUIT_ABSTRACT_INFO;
  36380. ///@brief 事件类型DH_ALARM_WORKSUIT_FEATURE_ABSTRACT (工装特征向量建模结果上报事件)对应的数据块描述信息
  36381. typedef struct tagALARM_WORKSUIT_FEATURE_ABSTRACT_INFO
  36382. {
  36383. int nAction; // 事件动作,0表示脉冲事件
  36384. int nEventID; // 事件ID
  36385. double dbPTS; // 时间戳(单位是毫秒)
  36386. NET_TIME_EX stuTime; // 事件发生的时间
  36387. UINT nAbstractInfoNum; // 工装建模结果个数
  36388. NET_WORKSUIT_ABSTRACT_INFO stuAbstractInfo[20]; // 工装建模结果信息
  36389. char szReserved[1024]; // 预留字段
  36390. } ALARM_WORKSUIT_FEATURE_ABSTRACT_INFO;
  36391. ///@brief 事件类型DH_ALARM_RUN_DETECTION (奔跑检测事件) 对应的数据块描述信息
  36392. typedef struct tagALARM_RUN_DETECTION_INFO
  36393. {
  36394. int nChannelID; // 通道号
  36395. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36396. double dbPTS; // 时间戳(单位是毫秒)
  36397. char szName[128]; // 事件名称
  36398. NET_TIME_EX stuTime; // 事件发生的时间
  36399. UINT UTCMS; // 事件时间毫秒数
  36400. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  36401. UINT nEventID; // 事件ID
  36402. UINT nPresetID; // 事件触发的预置点
  36403. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36404. char byReserved[1020]; // 保留字节
  36405. } ALARM_RUN_DETECTION_INFO;
  36406. ///@brief 事件类型DH_ALARM_NONMOTOR_ENTRYING (非机动车进入电梯) 对应的数据块描述信息
  36407. typedef struct tagALARM_NONMOTOR_ENTRYING_INFO
  36408. {
  36409. int nChannelID; // 通道号
  36410. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36411. double dbPTS; // 时间戳(单位是毫秒)
  36412. NET_TIME_EX stuTime; // 事件发生的时间
  36413. int nEventID; // 事件ID
  36414. UINT nSequence; // 视频帧序号
  36415. int nObjectNum; // 目标个数
  36416. VA_OBJECT_NONMOTOR stuObjects[8]; // 非机动车目标
  36417. BYTE byReserved[1024]; // 预留字段
  36418. } ALARM_NONMOTOR_ENTRYING_INFO;
  36419. ///@brief 事件类型DH_ALARM_DISTANCE_DETECTION (异常间距事件) 对应的数据块描述信息
  36420. typedef struct tagALARM_DISTANCE_DETECTION_INFO
  36421. {
  36422. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36423. int nEventID; // 事件ID
  36424. double dbPTS; // 时间戳(单位是毫秒)
  36425. int nChannel; // 通道号
  36426. NET_TIME_EX stuTime; // 事件发生的时间
  36427. int nPresetID; // 事件触发的预置点
  36428. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36429. BYTE byReserved[508]; // 保留字节
  36430. } ALARM_DISTANCE_DETECTION_INFO;
  36431. ///@brief 事件类型DH_ALARM_STAY_DETECTION (停留事件) 对应的数据块描述信息
  36432. typedef struct tagALARM_STAY_DETECTION_INFO
  36433. {
  36434. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  36435. int nEventID; // 事件ID
  36436. double dbPTS; // 时间戳(单位是毫秒)
  36437. int nChannel; // 通道号
  36438. NET_TIME_EX stuTime; // 事件发生的时间
  36439. int nGroupId; // 事件组ID,同一物体抓拍过程内GroupID相同
  36440. int nCountInGroup; // 一个事件组内的抓拍张数
  36441. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  36442. int nCount; // 规则被触发生次数
  36443. int nPresetID; // 事件触发的预置点
  36444. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36445. BYTE byReserved[508]; // 保留字节
  36446. } ALARM_STAY_DETECTION_INFO;
  36447. ///@brief 事件类型 DH_ALARM_AUTO_INSPECTION (设备自检事件) 对应的数据块描述信息
  36448. typedef struct tagALARM_AUTO_INSPECTION
  36449. {
  36450. double dbPTS; // 时间戳(单位是毫秒)
  36451. NET_TIME_EX stuTime; // 事件发生的时间
  36452. int nEventID; // 事件ID
  36453. NET_TIME_EX stuStartTime; // 设备开始自检时间
  36454. BOOL bCheckResult; // 设备自检结果,FALSE为失败,TRUE为成功
  36455. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36456. BYTE byReserved[1024]; // 保留字节
  36457. }ALARM_AUTO_INSPECTION;
  36458. ///@brief 事件类型
  36459. typedef enum tagEM_FACE_VERIFICATION_ACCESS_SNAP_TYPE
  36460. {
  36461. EM_FACE_VERIFICATION_ACCESS_SNAP_TYPE_UNKNOWN, // 未知类型
  36462. EM_FACE_VERIFICATION_ACCESS_SNAP_TYPE_ENTRY, // 进门
  36463. EM_FACE_VERIFICATION_ACCESS_SNAP_TYPE_EXIT, // 出门
  36464. }EM_FACE_VERIFICATION_ACCESS_SNAP_TYPE;
  36465. ///@brief 目标信息
  36466. typedef struct tagNET_PERSON_INFO
  36467. {
  36468. BOOL bCheckResult; // 目标比对结果,成功为TRUE,失败为FALSE
  36469. char szName[MAX_NAME_LENGTH]; // 姓名,比对成功时有效
  36470. char szSnapURL[MAX_SNAP_URL_LEN]; // 目标抓图地址
  36471. BYTE byReserved[512]; // 保留字节
  36472. }NET_PERSON_INFO;
  36473. ///@brief 物品信息
  36474. typedef struct tagNET_GOOD_INFO
  36475. {
  36476. char szCode[MAX_CODE_LEN]; // 物品编号
  36477. char szSnapURL[MAX_SNAP_URL_LEN]; // 物品抓图地址
  36478. BYTE byReserved[512]; // 保留字节
  36479. }NET_GOOD_INFO;
  36480. ///@brief 操作类型
  36481. typedef enum tagEM_OPERATION_TYPE
  36482. {
  36483. EM_OPERATION_TYPE_UNKNOWN, // 未知操作
  36484. EM_OPERATION_TYPE_FETCH, // 取物品
  36485. EM_OPERATION_TYPE_STORE, // 存物品
  36486. EM_OPERATION_TYPE_EXCHANGE, // 换物品
  36487. EM_OPERATION_TYPE_CHECK, // 检查
  36488. }EM_OPERATION_TYPE;
  36489. ///@brief 事件类型 DH_ALARM_FACE_VERIFICATION_ACCESS_SNAP(目标认证开门抓图信息事件)对应的数据块描述信息
  36490. typedef struct tagALARM_FACE_VERIFICATION_ACCESS_SNAP_INFO
  36491. {
  36492. double dbPTS; // 时间戳(单位是毫秒)
  36493. NET_TIME_EX stuTime; // 事件发生的时间
  36494. int nEventID; // 事件ID
  36495. int nRecNo; // 记录编号,与AccessControl事件中的记录编号一致
  36496. EM_FACE_VERIFICATION_ACCESS_SNAP_TYPE emEventType; // 事件类型
  36497. NET_PERSON_INFO stuPersonInfo[MAX_PERSON_INFO_NUM]; // 目标信息
  36498. int nRetPersonInfoNum; // 返回的目标信息个数
  36499. NET_GOOD_INFO stuGoodInfo[MAX_GOOD_INFO_NUM]; // 物品信息
  36500. int nRetGoodInfoNum; // 返回的物品信息个数
  36501. EM_OPERATION_TYPE emOperation; // 操作类型
  36502. BYTE byReserved[1020]; // 保留字节
  36503. }ALARM_FACE_VERIFICATION_ACCESS_SNAP_INFO;
  36504. ///@brief 事件类型DH_ALARM_VIDEOBLIND(视频遮挡事件)对应的数据块描述信息
  36505. typedef struct tagALARM_VIDEO_BLIND_INFO
  36506. {
  36507. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  36508. int nChannelID; // 通道号
  36509. double dbPTS; // 时间戳(单位是毫秒)
  36510. NET_TIME_EX stuTime; // 事件发生的时间
  36511. int nEventID; // 事件ID
  36512. NET_TIME_EX stuStartTime; // 开始时间,nAction为2时上报此字段
  36513. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  36514. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36515. BYTE byReserved[1024]; // 保留字节
  36516. } ALARM_VIDEO_BLIND_INFO;
  36517. ///@brief 事件类型DH_ALARM_DRIVER_NOTCONFIRM (司机未按确认按钮报警事件)对应的数据块描述信息
  36518. typedef struct tagALARM_DRIVER_NOTCONFIRM_INFO
  36519. {
  36520. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  36521. NET_TIME_EX stuTime; // 事件发生的时间
  36522. double dbPTS; // 时间戳(单位是毫秒)
  36523. BYTE byReserved[512]; // 保留字节
  36524. } ALARM_DRIVER_NOTCONFIRM_INFO;
  36525. ///@brief 事件类型 DH_ALARM_VIOLATE_NO_FLY_TIME (违法禁飞事件) 对应的数据块描述信息
  36526. typedef struct tagALARM_VIOLATE_NO_FLY_TIME_INFO
  36527. {
  36528. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  36529. NET_TIME_EX stuTime; // 事件发生的时间
  36530. double dbPTS; // 时间戳(单位是毫秒)
  36531. BYTE byReserved[512]; // 保留字节
  36532. }ALARM_VIOLATE_NO_FLY_TIME_INFO;
  36533. ///@brief 事件类型 DH_ALARM_BOX_ALARM (报警盒通道的触发报警事件)对应的数据块描述信息
  36534. typedef struct tagALARM_BOX_ALARM_INFO
  36535. {
  36536. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  36537. int nChannelID; // 通道号
  36538. double dbPTS; // 时间戳(单位是毫秒)
  36539. NET_TIME_EX stuTime; // 事件发生的时间
  36540. int nEventID; // 事件ID
  36541. char szAlarmChannelName[DH_COMMON_STRING_64]; // 报警通道名称
  36542. int nAlarmBoxIndex; // 外接多个报警盒时,表示报警盒序号,从0开始
  36543. int nAlarmIndex; // 报警盒内部的通道号,从0开始
  36544. BYTE byReserved[1016]; // 保留字节
  36545. }ALARM_BOX_ALARM_INFO;
  36546. ///@brief 事件类型 DH_ALARM_SOSALERT
  36547. typedef struct tagALARM_SOSALERT_INFO
  36548. {
  36549. int nChannelID; // 通道号
  36550. int nEventID; // 事件ID
  36551. double dbPTS; // 时间戳(单位是毫秒)
  36552. NET_TIME_EX stuTime; // 事件发生时间
  36553. char szPlateNumber[DH_COMMON_STRING_128]; // 车牌内容
  36554. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  36555. BYTE byReserved[1024]; // 保留字节
  36556. }ALARM_SOSALERT_INFO;
  36557. ///@brief 事件类型 DH_ALARM_GYROABNORMALATTITUDE
  36558. typedef struct tagALARM_GYROABNORMALATTITUDE_INFO
  36559. {
  36560. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  36561. int nChannelID; // 通道号
  36562. double dbPTS; // 时间戳(单位是毫秒)
  36563. NET_TIME_EX stuTime; // 事件发生时间
  36564. int nEventID; // 事件ID
  36565. double dbGyroCurRoll; // 当前翻滚角,单位:度
  36566. double dbGyroCurPitch; // 当前俯仰角,单位:度
  36567. double dbGyroCurAccel; // 当前加速度,单位:m/s^2
  36568. BYTE byReserved[1024]; // 保留字段
  36569. }ALARM_GYROABNORMALATTITUDE_INFO;
  36570. ///@brief 事件类型DH_ALARM_ALARMOUTPUT(输出通道状态改变事件)对应的数据块描述信息
  36571. typedef struct tagALARM_ALARMOUTPUT_INFO
  36572. {
  36573. int nAction; // 事件动作,1:Start 2:Stop
  36574. NET_TIME_EX UTC; // 事件发生时间
  36575. int nChannel; // 通道号
  36576. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 UTC 字段
  36577. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  36578. }ALARM_ALARMOUTPUT_INFO;
  36579. ///@brief 事件类型DH_ALARM_PSTNREPORTFAILURE(电话报警未接警事件)对应的数据块描述信息
  36580. typedef struct tagALARM_PSTNREPORTFAILURE_INFO
  36581. {
  36582. NET_TIME_EX UTC; //事件发生的时间
  36583. }ALARM_PSTNREPORTFAILURE_INFO;
  36584. ///@brief 无线网络通讯错误类型
  36585. typedef enum tagGSMFIELD_FAULT_TYPE
  36586. {
  36587. GSMFIELD_FAULT_UNKNOWN, //未知
  36588. GSMFIELD_FAULT_GSMModule, //通信模块掉线
  36589. GSMFIELD_FAULT_SIMCard, //未插SIM卡
  36590. }GSMFIELD_FAULT_TYPE;
  36591. ///@brief 事件类型DH_ALARM_NOGSMFIELD(通信模块掉线或者sim没插事件)对应数据块描述信息
  36592. typedef struct tagALARM_NOGSMFIELD_INFO
  36593. {
  36594. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  36595. NET_TIME_EX UTC; // 事件发生时间
  36596. GSMFIELD_FAULT_TYPE emFaultType; // 通讯错误类型
  36597. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36598. }ALARM_NOGSMFIELD_INFO;
  36599. ///@brief 事件类型DH_ALARM_MOTION_RECORD_ALARM(动检录像报警事件)对应数据块描述信息
  36600. typedef struct tagALARM_MOTION_RECORD_INFO
  36601. {
  36602. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  36603. int nChannel; // 通道
  36604. BOOL bMotionIsOpen; // 是否处于动检状态
  36605. BOOL bRecordIsOpen; // 是否处于录像状态
  36606. BYTE byReserved[512]; // 保留字节
  36607. }ALARM_MOTION_RECORD_INFO;
  36608. ///@brief 事件类型DH_ALARM_FACEINFO_COLLECT (目标信息录入事件)对应的数据块描述信息
  36609. typedef struct tagALARM_FACEINFO_COLLECT_INFO
  36610. {
  36611. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  36612. NET_TIME_EX stuTime; // 事件发生的时间
  36613. double dbPTS; // 时间戳(单位是毫秒)
  36614. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  36615. BYTE byReserved[512]; // 保留字节
  36616. } ALARM_FACEINFO_COLLECT_INFO;
  36617. ///@brief 事件类型DH_ALARM_HIGH_SPEED (车辆超速报警事件)对应的数据块描述信息
  36618. typedef struct tagALARM_HIGH_SPEED_INFO
  36619. {
  36620. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  36621. NET_TIME_EX stuTime; // 事件发生的时间
  36622. double dbPTS; // 时间戳(单位是毫秒)
  36623. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  36624. int nSpeedLimit; // 车连限速值km/h
  36625. int nCurSpeed; // 当前车辆速度km/h
  36626. int nMaxSpeed; // 最高速度Km/h
  36627. NET_TIME_EX stuStartTime; // 开始时间,nAction为2时上报此字段
  36628. BYTE byReserved[472]; // 保留字节
  36629. } ALARM_HIGH_SPEED_INFO;
  36630. ///@brief 采集源分辨率
  36631. typedef enum tagEM_NET_VIFORMAT_TYPE
  36632. {
  36633. EM_NET_VIFORMAT_TYPE_UNKNOWN = -1, // 未知
  36634. EM_NET_VIFORMAT_TYPE_NORMAL, // 表示正常分辨率
  36635. EM_NET_VIFORMAT_TYPE_UNSUPPORT, // 表示不支持的分辨率
  36636. EM_NET_VIFORMAT_TYPE_NOT_CONNECTED, // 表示未接采集源
  36637. } EM_NET_VIFORMAT_TYPE;
  36638. ///@brief 事件类型DH_ALARM_VIDEO_LOSS (视频丢失事件)对应的数据块描述信息
  36639. typedef struct tagALARM_VIDEO_LOSS_INFO
  36640. {
  36641. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  36642. int nChannelID; // 通道号
  36643. double dbPTS; // 时间戳(单位是毫秒)
  36644. BYTE byReserved1[4]; // 字节对齐
  36645. NET_TIME_EX stuTime; // 事件发生的时间
  36646. NET_TIME_EX stuStartTime; // 开始时间,nAction为2时上报此字段
  36647. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  36648. EM_NET_VIFORMAT_TYPE emViFormat; // 采集源分辨率
  36649. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36650. BYTE byReserved[1020]; // 保留字节
  36651. } ALARM_VIDEO_LOSS_INFO;
  36652. ///@brief 事件类型 DH_ALARM_SMARTHOME_GET_AUTHORIZED (室内机告知平台获取授权二维码信息)对应的数据块描述信息
  36653. typedef struct tagALARM_SMARTHOME_GET_AUTHORIZED
  36654. {
  36655. int nAction; // 0:脉冲 1:开始 2:停止
  36656. NET_TIME_EX UTC; // 事件发生的时间
  36657. BOOL bIsTest; // 是否请求体验二维码; TRUE: 请求体验二维码, FALSE:请求正式二维码
  36658. char byReserved[1020]; // 预留字节
  36659. }ALARM_SMARTHOME_GET_AUTHORIZED;
  36660. ///@brief 事件类型 DH_ALARM_SMARTHOME_UPDATE_SCENE (室内机告知平台需要更新智能家居场景列表)对应的数据块描述信息
  36661. typedef struct tagALARM_SMARTHOME_UPDATE_SCENE
  36662. {
  36663. int nAction; // 0:脉冲 1:开始 2:停止
  36664. NET_TIME_EX UTC; // 事件发生的时间
  36665. char byReserved[1024]; // 预留字节
  36666. }ALARM_SMARTHOME_UPDATE_SCENE;
  36667. ///@brief ASG 报警类型
  36668. typedef enum tagEM_ASG_ALARM_TYPE
  36669. {
  36670. EM_ASG_ALARM_BREAK_UNKNOWN, // 未知
  36671. EM_ASG_ALARM_BREAK_DOWN, // 故障
  36672. EM_ASG_ALARM_ANTI_DEMOLITION, // 防拆
  36673. EM_ASG_ALARM_FOLLOW, // 尾随
  36674. EM_ASG_ALARM_TIMEOUT, // 超时
  36675. EM_ASG_ALARM_STAY, // 逗留
  36676. EM_ASG_ALARM_FORCIBLY_OPEN, // 强行打开闸机
  36677. EM_ASG_ALARM_MISTAKENLY_ENTER, // 误闯
  36678. EM_ASG_ALARM_REVERSE_ENTER, // 逆闯
  36679. EM_ASG_ALARM_CLIMB, // 翻越
  36680. EM_ASG_ALARM_TWO_WAY_CONFLICT, // 双向通行冲突时报警
  36681. EM_ASG_ALARM_POWER_ON_SELF_TEST_FAILED, // 上电自检未通过报警
  36682. }EM_ASG_ALARM_TYPE;
  36683. ///@brief 事件类型 DH_ALARM_ASG (ASG报警)对应的数据块描述信息
  36684. typedef struct tagALARM_ASG_INFO
  36685. {
  36686. int nAction; // 0:脉冲 1:开始 2:停止
  36687. int nChannelID; // 通道号
  36688. NET_TIME_EX UTC; // 事件发生的时间
  36689. EM_ASG_ALARM_TYPE emAlarmType; // 报警类型
  36690. char byReserved[1024]; // 预留字节
  36691. }ALARM_ASG_INFO;
  36692. ///@brief 事件类型 DH_ALARM_ASGSTAY (闸机滞留报警事件) 对应的数据块描述信息
  36693. typedef struct tagALARM_ASGSTAY_INFO
  36694. {
  36695. int nAction; // 0:脉冲 1:开始 2:停止
  36696. int nChannelID; // 通道号
  36697. NET_TIME_EX UTC; // 事件发生的时间
  36698. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36699. char byReserved[1020]; // 预留字节
  36700. } ALARM_ASGSTAY_INFO;
  36701. ///@brief 事件类型 DH_ALARM_ASGFOLLOWING (闸机尾随报警事件) 对应的数据块描述信息
  36702. typedef struct tagALARM_ASGFOLLOWING_INFO
  36703. {
  36704. int nAction; // 0:脉冲 1:开始 2:停止
  36705. int nChannelID; // 通道号
  36706. NET_TIME_EX UTC; // 事件发生的时间
  36707. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36708. char byReserved[1020]; // 预留字节
  36709. } ALARM_ASGFOLLOWING_INFO;
  36710. ///@brief 事件类型 DH_ALARM_ASGCLIMBOVER (闸机翻越报警事件) 对应的数据块描述信息
  36711. typedef struct tagALARM_ASGCLIMBOVER_INFO
  36712. {
  36713. int nAction; // 0:脉冲 1:开始 2:停止
  36714. int nChannelID; // 通道号
  36715. NET_TIME_EX UTC; // 事件发生的时间
  36716. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36717. char byReserved[1020]; // 预留字节
  36718. } ALARM_ASGCLIMBOVER_INFO;
  36719. ///@brief 报警类型
  36720. typedef enum tagEM_ASGBREAKDOWN_ALARM_TYPE
  36721. {
  36722. EM_ASGBREAKDOWN_ALARM_TYPE_UNKNOWN, // 未知
  36723. EM_ASGBREAKDOWN_ALARM_TYPE_INFRARED, // 红外
  36724. EM_ASGBREAKDOWN_ALARM_TYPE_COMMUNICATION, // 通讯
  36725. EM_ASGBREAKDOWN_ALARM_TYPE_DOOR_WING, // 门翼
  36726. } EM_ASGBREAKDOWN_ALARM_TYPE;
  36727. ///@brief 事件类型 DH_ALARM_ASGBREAKDOWN (闸机故障事件) 对应的数据块描述信息
  36728. typedef struct tagALARM_ASGBREAKDOWN_INFO
  36729. {
  36730. int nAction; // 0:脉冲 1:开始 2:停止
  36731. int nChannelID; // 通道号
  36732. NET_TIME_EX UTC; // 事件发生的时间
  36733. EM_ASGBREAKDOWN_ALARM_TYPE emAlarmType; // 报警类型
  36734. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36735. char byReserved[1016]; // 预留字节
  36736. } ALARM_ASGBREAKDOWN_INFO;
  36737. ///@brief 事件类型 DH_ALARM_PARKING_OVERLOAD (停车场过载事件) 对应的数据块描述信息
  36738. typedef struct tagALARM_PARKING_OVERLOAD_INFO
  36739. {
  36740. int nChannelID; // 通道号
  36741. int nAction; // 1:开始 2:停止
  36742. NET_TIME_EX UTC; // 事件发生的时间
  36743. int nEventID; // 事件ID
  36744. char szName[128]; // 事件名称
  36745. UINT nParkingCapacity; // 停车车位框个数
  36746. UINT nTotalParkingCount; // 总入场车辆个数
  36747. DEV_OCCUPIED_WARNING_INFO stuParkingInfo[64]; // 停车车位信息
  36748. BYTE byReserved[2048]; // 预留字节
  36749. } ALARM_PARKING_OVERLOAD_INFO;
  36750. ///@brief 事件类型 DH_ALARM_LIFTCONTROL_REQUEST (梯控事件) 对应的数据块描述信息
  36751. typedef struct tagALARM_LIFTCONTROL_REQUEST_INFO
  36752. {
  36753. int nAction; // 0:脉冲
  36754. int nChannelID; // 通道号
  36755. NET_TIME_EX UTC; // 事件发生的时间
  36756. NET_ACCESS_DOOROPEN_METHOD emDoorOpenMethod; // 开门方式
  36757. char szUserID[32]; // 用户ID
  36758. char szSrcAddr[64]; // 事件发送方IP地址
  36759. char byReserved[1024]; // 预留字节
  36760. }ALARM_LIFTCONTROL_REQUEST_INFO;
  36761. ///@brief 事件类型 DH_ALARM_REMOTE_DEVICE_GPS (远程设备GPS事件) 对应的数据块描述信息
  36762. typedef struct tagALARM_REMOTE_DEVICE_GPS_INFO
  36763. {
  36764. int nAction; // 0:脉冲
  36765. int nChannelID; // 通道号
  36766. NET_GPS_STATUS_INFO stGPSStatus; // GPS信息
  36767. char byReserved[1024]; // 预留字节
  36768. }ALARM_REMOTE_DEVICE_GPS_INFO;
  36769. ///@brief 过车统计设备类型
  36770. typedef enum tagEM_ENTRANCE_STAT_DEVICE_TYPE
  36771. {
  36772. EM_ENTRANCE_STAT_DEVICE_TYPE_UNKNOWN, // 未知
  36773. EM_ENTRANCE_STAT_DEVICE_TYPE_RADAR, // 雷达
  36774. EM_ENTRANCE_STAT_DEVICE_TYPE_STROBE, // 道闸
  36775. EM_ENTRANCE_STAT_DEVICE_TYPE_CAMERA, // 相机
  36776. }EM_ENTRANCE_STAT_DEVICE_TYPE;
  36777. ///@brief 事件类型 DH_ALARM_ENTRANCE_CAR_STAT_INFO (出入口过车数量统计事件) 对应的数据块描述信息
  36778. typedef struct tagALARM_ENTRANCE_CAR_STAT_INFO
  36779. {
  36780. int nAction; // 0:脉冲
  36781. int nChannelID; // 通道号
  36782. char szName[128]; // 事件名称
  36783. NET_TIME stuBeginTime; // 开始时间
  36784. NET_TIME stuEndTime; // 结束时间
  36785. UINT nCarCount; // 统计时间段内累计过车数量
  36786. EM_ENTRANCE_STAT_DEVICE_TYPE emStatDeviceType; // 统计设备类型
  36787. char byReserved[1024]; // 预留字节
  36788. }ALARM_ENTRANCE_CAR_STAT_INFO;
  36789. ///@brief 闸机角色
  36790. typedef enum tagEM_ASG_ROLE_TYPE
  36791. {
  36792. EM_ASG_ROLE_TYPE_UNKNOWN, // 未知
  36793. EM_ASG_ROLE_TYPE_MASTER, // 主机
  36794. EM_ASG_ROLE_TYPE_SLAVE, // 从机
  36795. }EM_ASG_ROLE_TYPE;
  36796. ///@brief 事件类型 DH_ALARM_ASG_INTRUDED (闸机机箱防拆事件) 对应的数据块描述信息
  36797. typedef struct tagALARM_ASG_INTRUDED_INFO
  36798. {
  36799. int nAction; // 0:脉冲
  36800. NET_TIME_EX UTC; // 事件发生的时间
  36801. int nASGChannel; // 闸机通道号
  36802. EM_ASG_ROLE_TYPE emASGRole; // 闸机角色
  36803. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36804. char byReserved[1024]; // 预留字节
  36805. }ALARM_ASG_INTRUDED_INFO;
  36806. ///@brief 事件类型 DH_ALARM_ASG_ANTIPINCH (闸机门翼防夹事件) 对应的数据块描述信息
  36807. typedef struct tagALARM_ASG_ANTIPINCH_INFO
  36808. {
  36809. int nAction; // 0:脉冲 1:开始 2:停止
  36810. int nChannelID; // 通道号
  36811. NET_TIME_EX UTC; // 事件发生的时间
  36812. char byReserved[1024]; // 预留字节
  36813. } ALARM_ASG_ANTIPINCH_INFO;
  36814. ///@brief 事件类型 DH_ALARM_IDCARDINFO_CHECK (证件信息上报,平台核验事件) 对应的数据块描述信息
  36815. typedef struct tagALARM_IDCARDINFO_CHECK_INFO
  36816. {
  36817. int nChannel; // 通道
  36818. int nAction; // 0:脉冲
  36819. NET_TIME_EX UTC; // 事件发生的时间
  36820. BYTE byReserved1[4]; // 预留字段
  36821. char szCitizenID[64]; // 证件号
  36822. char szCitizenName[64]; // 姓名
  36823. char szIssueAuthority[128]; // 发证机关
  36824. char szCitizenAddress[128]; // 证件地址
  36825. NET_TIME stuBirthDay; // 出生日期(年月日有效)
  36826. NET_TIME stuBeginValidTime; // 证件有效期开始时间(年月日有效)
  36827. NET_TIME stuEndValidTime; // 证件有效期结束时间(年月日有效)
  36828. char szLatestAddress[128]; // 最新住址
  36829. EM_CITIZENIDCARD_EC_TYPE emMZ;
  36830. EM_CITIZENIDCARD_SEX_TYPE emSex; // 性别
  36831. char byReserved[1024]; // 预留字段
  36832. }ALARM_IDCARDINFO_CHECK_INFO;
  36833. ///@brief SIP客户端信息
  36834. typedef struct tagNET_SIP_REGISTER_USER_INFO
  36835. {
  36836. char szID[32]; // SIP客户端号码
  36837. char szIpAddr[32]; // 注册的IP地址
  36838. UINT nPort; // 注册端口
  36839. BOOL bOnline; // 用户正常注册且网络正常情况下bOnline=TRUE,否则bOnline=FALSE
  36840. char szDevType[32]; // 客户端设备类型
  36841. char szVtoType[32]; // VTO具体子类型
  36842. char szUserAgent[32]; // 客户端信息标识
  36843. char szGroupNbr[32]; // 客户端群组号码
  36844. char szReserved[512]; // 预留字段
  36845. }NET_SIP_REGISTER_USER_INFO;
  36846. ///@brief 事件类型 DH_ALARM_SIP_REGISTER_RESULT(注册状态事件) 对应的数据块描述信息
  36847. typedef struct tagALARM_SIP_REGISTER_RESULT_INFO
  36848. {
  36849. int nChannelID; // 通道
  36850. int nAction; // 0:脉冲
  36851. NET_TIME_EX UTC; // 事件发生的时间
  36852. BOOL bSuccess; // 注册结果
  36853. char szDate[32]; // 注册后同步客户端时间
  36854. NET_SIP_REGISTER_USER_INFO stuUserInfo; // SIP客户端信息
  36855. char szReserved[1024]; // 预留字段
  36856. }ALARM_SIP_REGISTER_RESULT_INFO;
  36857. ///@brief 手势信息
  36858. typedef struct tagNET_GESTURE_INFO
  36859. {
  36860. char szType[32]; // 手势类型
  36861. UINT nCount; // 报警触发次数
  36862. char szReserved[256]; // 预留字段
  36863. }NET_GESTURE_INFO;
  36864. ///@brief 事件类型 DH_ALARM_GESTURE_DETECTION(手势检测事件) 对应的数据块描述信息
  36865. typedef struct tagALARM_GESTURE_DETECTION_INFO
  36866. {
  36867. int nChannelID; // 通道号
  36868. int nAction; // 0:脉冲,1:开始, 2:停止
  36869. char szName[128]; // 事件名称
  36870. char szClass[16]; // 智能事件所属大类
  36871. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  36872. NET_TIME_EX stuUTC; // 事件发生的时间
  36873. UINT nUTCMS; // 事件时间毫秒数
  36874. UINT nEventID; // 事件ID
  36875. NET_GESTURE_INFO stuGestureInfo; // 手势信息
  36876. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  36877. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  36878. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  36879. char szReserved[1024]; // 预留字节
  36880. }ALARM_GESTURE_DETECTION_INFO;
  36881. ///@brief 事件类型 DH_ALARM_ABNORMAL_RESTART(异常重启事件) 对应的数据块描述信息
  36882. typedef struct tagALARM_ABNORMAL_RESTART_INFO
  36883. {
  36884. int nChannelID; // 通道号
  36885. int nAction; // 0:脉冲
  36886. UINT uAlarmCode; // 异常重启错误码
  36887. NET_TIME_EX stuUTC; // 事件发生的时间
  36888. char szReserved[1024]; // 预留字节
  36889. }ALARM_ABNORMAL_RESTART_INFO;
  36890. ///@brief 防区状态
  36891. typedef enum tagEM_DEFENSE_STATE
  36892. {
  36893. EM_DEFENSE_STATE_UNKNOWN, // 未知
  36894. EM_DEFENSE_STATE_ARMING, // 布防
  36895. EM_DEFENSE_STATE_DISARMING, // 撤防
  36896. }EM_DEFENSE_STATE;
  36897. ///@brief 防区状态数组,最多10个防区
  36898. typedef struct tagNET_DEFENSE_STATE
  36899. {
  36900. EM_DEFENSE_STATE emState; // 防区状态
  36901. int nDefenseID; // 防区ID
  36902. char szReserved[256]; // 预留字节
  36903. }NET_DEFENSE_STATE;
  36904. ///@brief 事件类型 DH_ALARM_DEFENSE_CHANGE (撤布防事件) 对应的数据块描述信息
  36905. typedef struct tagALARM_DEFENSE_CHANGE_INFO
  36906. {
  36907. int nChannelID; // 通道号
  36908. int nAction; // 0:脉冲,1:开始, 2:停止
  36909. char szName[128]; // 事件名称
  36910. char szClass[16]; // 智能事件所属大类
  36911. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  36912. NET_TIME_EX stuUTC; // 事件发生的时间
  36913. UINT nEventID; // 事件ID
  36914. int nDefenseStateNum; // 防区状态个数;
  36915. NET_DEFENSE_STATE stuDefenseState[10]; // 防区状态数组,最多10个防区
  36916. int nSourceFlag; // 控制布撤防事件来源的标志位(0:未知;1:遥控器控制)
  36917. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  36918. char szReserved[1020]; // 预留字节
  36919. }ALARM_DEFENSE_CHANGE_INFO;
  36920. ///@brief 录播录像上传状态
  36921. typedef enum tagNET_COURSE_RECORD_UPLOAD_PROCESS_STATUS
  36922. {
  36923. NET_COURSE_RECORD_UPLOAD_PROCESS_STATUS_UNKNOW, // 上传状态未知
  36924. NET_COURSE_RECORD_UPLOAD_PROCESS_STATUS_UPLOADING, // 上传中
  36925. NET_COURSE_RECORD_UPLOAD_PROCESS_STATUS_COMPLETE, // 上传成功
  36926. NET_COURSE_RECORD_UPLOAD_PROCESS_STATUS_FAILED // 上传失败
  36927. }NET_COURSE_RECORD_UPLOAD_PROCESS_STATUS;
  36928. ///@brief 录播录像文件上传失败错误码
  36929. typedef enum tagNET_COURSE_RECORD_UPLOAD_ERROR_CODE
  36930. {
  36931. NET_COURSE_RECORD_UPLOAD_ERROR_CODE_UNKNOW = -1, // 错误码未知
  36932. NET_COURSE_RECORD_UPLOAD_NORMAL, // 正常
  36933. NET_COURSE_RECORD_UPLOAD_FAIL_OBTAIN_PUBLIC_KEY, // 获取公钥失败
  36934. NET_COURSE_RECORD_UPLOAD_FAIL_OBTAIN_TOKEN, // 获取token失败
  36935. NET_COURSE_RECORD_UPLOAD_FAIL_OBTAIN_OSS_ADDRESS, // 获取OSS地址失败
  36936. NET_COURSE_RECORD_UPLOAD_FAIL_CONNECT_OSS_ADDRESS, // OSS地址连接失败
  36937. NET_COURSE_RECORD_UPLOAD_FAILED, // 文件上传失败
  36938. NET_COURSE_RECORD_UPLOAD_RETURN_VALUE_ERROR // 文件上传返回值错误
  36939. }NET_COURSE_RECORD_UPLOAD_ERROR_CODE;
  36940. ///@brief 录像上传文件信息
  36941. typedef struct tagCOURSE_RECORD_UPLOAD_FILE_INFO
  36942. {
  36943. char szFilePath[256]; // 上传文件地址
  36944. TP_U64 nFileTime; // 文件总时长,单位秒
  36945. TP_U64 nFileLength; // 文件总大小,单位Kb
  36946. int nIndex; // 文件编号
  36947. int nFileUploadProcess; // 文件上传进度,百分比,0~100%
  36948. NET_COURSE_RECORD_UPLOAD_PROCESS_STATUS emStatus; // 单文件上传状态
  36949. NET_COURSE_RECORD_UPLOAD_ERROR_CODE emErrorCode; // 文件上传失败错误码
  36950. char byReserved[1008]; // 预留字段
  36951. } COURSE_RECORD_UPLOAD_FILE_INFO;
  36952. ///@brief 录播文件类型
  36953. typedef enum tagEM_COURSE_RECORD_UPLOAD_RECORD_TYPE
  36954. {
  36955. EM_COURSE_RECORD_UPLOAD_RECORD_TYPE_UNKNOWN, // 未知
  36956. EM_COURSE_RECORD_UPLOAD_RECORD_TYPE_ORDINARY_RECORDING, // 普通录播
  36957. EM_COURSE_RECORD_UPLOAD_RECORD_TYPE_INTERACTIVE_RECORDING, // 互动录播
  36958. EM_COURSE_RECORD_UPLOAD_RECORD_TYPE_DEMONSTRATION, // 演示
  36959. }EM_COURSE_RECORD_UPLOAD_RECORD_TYPE;
  36960. ///@brief 录播录像上传结束事件
  36961. typedef struct tagALARM_COURSE_RECORD_UPLOAD_INFO
  36962. {
  36963. int nAction; // 0:脉冲
  36964. NET_TIME_EX UTC; // 事件发生的时间
  36965. BOOL bUploadResult; // 上传结果
  36966. int nFileNum; // 录像上传文件个数
  36967. COURSE_RECORD_UPLOAD_FILE_INFO stuFileInfo[64]; // 录像上传文件信息
  36968. UINT nId; // 上传课程ID
  36969. NET_TIME stuFileStartTime; // 完整录像(未分割前)的开始时间。无论该文件被分割成几个小文件上传,同一文件分割的分文件的开始时间相同
  36970. NET_TIME stuFileEndTime; // 完整录像(未分割前)的结束时间。无论该文件被分割成几个小文件上传,同一文件分割的分文件的结束时间相同
  36971. NET_COURSE_RECORD_UPLOAD_PROCESS_STATUS emStatus; // 上传状态
  36972. UINT nFileId; // 课程录像文件id号,每一节课,都有一个课程录像文件id号
  36973. int nChannel; // 真实通道号,从0开始
  36974. char szCallID[64]; // 互动ID
  36975. EM_COURSE_RECORD_UPLOAD_RECORD_TYPE emRecordType; // 录播文件类型
  36976. char byReserved[892]; // 预留字段
  36977. } ALARM_COURSE_RECORD_UPLOAD_INFO;
  36978. ///@brief 获取预约信息的凭证类型
  36979. typedef enum tagEM_APPOINTMENT_PROOF_TYPE
  36980. {
  36981. EM_APPOINTMENT_PROOF_TYPE_UNKNOWN, // 未知
  36982. EM_APPOINTMENT_PROOF_TYPE_CITIZENID, // 证件
  36983. EM_APPOINTMENT_PROOF_TYPE_APPOINTCODE, // 预约码
  36984. }EM_APPOINTMENT_PROOF_TYPE;
  36985. ///@brief 事件类型 DH_ALARM_REQUEST_APPOINTMENT_INFO (请求预约信息事件) 对应的数据块描述信息
  36986. typedef struct tagALARM_REQUEST_APPOINTMENT_INFO
  36987. {
  36988. int nAction; // 0:脉冲
  36989. int nChannelID; // 通道号
  36990. NET_TIME_EX UTC; // 事件发生的时间
  36991. EM_APPOINTMENT_PROOF_TYPE emProofType; // 凭证类型
  36992. char szProofInfo[64]; // 凭证信息
  36993. // emProofType 为 EM_APPOINTMENT_PROOF_TYPE_CITIZENID 时,为证件号码
  36994. // emProofType 为 EM_APPOINTMENT_PROOF_TYPE_APPOINTCODE 时,为预约码
  36995. UINT nUniqueID; // 请求唯一标识
  36996. }ALARM_REQUEST_APPOINTMENT_INFO;
  36997. ///@brief 视频采集模式
  36998. typedef enum tagEM_VIDEO_COLLECT_MODE
  36999. {
  37000. EM_VIDEO_COLLECT_MODE_UNKNOWN, // 未知
  37001. EM_VIDEO_COLLECT_MODE_NON, // 不采集
  37002. EM_VIDEO_COLLECT_MODE_SINGLE, // 单次采集
  37003. EM_VIDEO_COLLECT_MODE_INTERVAL, // 定间隔采集
  37004. EM_VIDEO_COLLECT_MODE_CONTINUOUSLY, // 连续采集
  37005. }EM_VIDEO_COLLECT_MODE;
  37006. ///@brief 事件类型 DH_ALARM_REQUEST_RECORD (请求录像信息事件) 对应的数据块描述信息
  37007. typedef struct tagALARM_REQUEST_RECORD_INFO
  37008. {
  37009. int nAction; // 0:脉冲
  37010. int nChannelID; // 通道号
  37011. NET_TIME_EX UTC; // 事件发生的时间
  37012. UINT nEventID; // 事件编号,用来唯一标志一个事件
  37013. EM_VIDEO_COLLECT_MODE emCollectMode; // 视频采集模式
  37014. int nCollectInterval; // 视频采集间隔,emCollectMode 为 EM_VIDEO_COLLECT_MODE_INTERVAL 时有效
  37015. int nCollectDuration; // 视频采集时长,单位秒,emCollectMode 为 EM_VIDEO_COLLECT_MODE_INTERVAL 时有效
  37016. BYTE byReserved[1020]; // 预留字段
  37017. }ALARM_REQUEST_RECORD_INFO;
  37018. ///@brief 图片采集模式
  37019. typedef enum tagEM_PICTURE_COLLECT_MODE
  37020. {
  37021. EM_PICTURE_COLLECT_MODE_UNKNOWN, // 未知
  37022. EM_PICTURE_COLLECT_MODE_NON, // 不采集
  37023. EM_PICTURE_COLLECT_MODE_SINGLE, // 单次采集
  37024. EM_PICTURE_COLLECT_MODE_INTERVAL, // 定间隔采集
  37025. }EM_PICTURE_COLLECT_MODE;
  37026. ///@brief 事件类型 DH_ALARM_REQUEST_SNAP (请求录像信息事件) 对应的数据块描述信息
  37027. typedef struct tagALARM_REQUEST_SNAP_INFO
  37028. {
  37029. int nAction; // 0:脉冲
  37030. int nChannelID; // 通道号
  37031. NET_TIME_EX UTC; // 事件发生的时间
  37032. UINT nEventID; // 事件编号,用来唯一标志一个事件
  37033. EM_PICTURE_COLLECT_MODE emCollectMode; // 图片采集模式
  37034. int nCollectInterval; // 图片采集间隔,emCollectMode 为 EM_PICTURE_COLLECT_MODE_INTERVAL 时有效
  37035. BYTE byReserved[1024]; // 预留字段
  37036. }ALARM_REQUEST_SNAP_INFO;
  37037. ///@brief 云台异常前的动作类型
  37038. typedef enum tagEM_PTZ_ABNORMAL_PRE_ACTION_TYPE
  37039. {
  37040. EM_PTZ_ABNORMAL_PRE_ACTION_TYPE_UNKNOWN, // 未知
  37041. EM_PTZ_ABNORMAL_PRE_ACTION_TYPE_NONE, // 无动作
  37042. EM_PTZ_ABNORMAL_PRE_ACTION_TYPE_PATROL_TRACK, // 巡迹
  37043. EM_PTZ_ABNORMAL_PRE_ACTION_TYPE_HORIZONTAL_LINE_SCANNING, // 水平线扫
  37044. EM_PTZ_ABNORMAL_PRE_ACTION_TYPE_CRUISE_GROUP, // 巡航组
  37045. EM_PTZ_ABNORMAL_PRE_ACTION_TYPE_HORIZONTAL_ROTATION, // 水平旋转
  37046. }EM_PTZ_ABNORMAL_PRE_ACTION_TYPE;
  37047. ///@brief 云台异常原因
  37048. typedef enum tagEM_PTZ_ABNORMAL_REASON_TYPE
  37049. {
  37050. EM_PTZ_ABNORMAL_REASON_TYPE_UNKNOWN, // 未知
  37051. EM_PTZ_ABNORMAL_REASON_TYPE_COMMUNICATION, // 通讯异常
  37052. EM_PTZ_ABNORMAL_REASON_TYPE_STOP, // 停止
  37053. EM_PTZ_ABNORMAL_REASON_TYPE_OUT_OF_STEP, // 失步
  37054. }EM_PTZ_ABNORMAL_REASON_TYPE;
  37055. ///@brief 事件类型 DH_ALARM_PTZ_ABNORMAL (云台异常检测事件)对应的数据块描述信息
  37056. typedef struct tagALARM_PTZ_ABNORMAL_INFO
  37057. {
  37058. int nAction; // 0:脉冲 1:开始 2:停止
  37059. int nChannelID; // 通道号
  37060. NET_TIME_EX UTC; // 事件发生的时间
  37061. EM_PTZ_ABNORMAL_PRE_ACTION_TYPE emPtzAbnormalPreAction; // 云台异常前的动作
  37062. EM_PTZ_ABNORMAL_REASON_TYPE emPtzAbnormalReason; // 云台异常原因
  37063. BYTE byReserved[1024]; // 保留字节
  37064. }ALARM_PTZ_ABNORMAL_INFO;
  37065. ///@brief 事件类型 DH_ALRAM_STORAGEFORMAT (硬盘格式化事件)
  37066. typedef struct tagALARM_STORAGEFORMAT_INFO
  37067. {
  37068. int nAction; // 1:开始 2:停止
  37069. NET_TIME_EX UTC; // 事件发生的时间
  37070. char szDeviceName[64]; // 硬盘名称
  37071. char szPath[256]; // 目录路径
  37072. int nResult; // 0-未知, 1-成功, 2-失败
  37073. BYTE byReserved[260]; // 保留字节
  37074. }ALARM_STORAGEFORMAT_INFO;
  37075. ///@brief 信令类型
  37076. typedef enum tagEM_CMD_TO_APP_TYPE
  37077. {
  37078. EM_CMD_TO_APP_TYPE_UNKNOWN, // 未知
  37079. EM_CMD_TO_APP_TYPE_UPGRADECUSTOM // 自定义升级信令
  37080. } EM_CMD_TO_APP_TYPE;
  37081. ///@brief 升级状态
  37082. typedef enum tagEM_APP_UPGRADE_STATE
  37083. {
  37084. EM_APP_UPGRADE_STATE_UNKNOWN, // 未知
  37085. EM_APP_UPGRADE_STATE_PREPARING, // 准备升级
  37086. EM_APP_UPGRADE_STATE_DOWNLOADING, // 正在下载数据
  37087. EM_APP_UPGRADE_STATE_UPGRADING, // 正在升级
  37088. EM_APP_UPGRADE_STATE_INVALID, // 升级包不正确
  37089. EM_APP_UPGRADE_STATE_FAILED, // 升级失败
  37090. EM_APP_UPGRADE_STATE_SUCCEEDED, // 升级成功
  37091. EM_APP_UPGRADE_STATE_CANCELLED, // 取消升级
  37092. EM_APP_UPGRADE_STATE_NOT_ENOUGH_MEMORY, // 内存不够
  37093. EM_APP_UPGRADE_STATE_FILE_UNMATCH, // 升级包不匹配
  37094. EM_APP_UPGRADE_STATE_OEM_NOT_COMPARE, // 升级包是OEM版不能升级程序
  37095. EM_APP_UPGRADE_STATE_UNMATCH_VERSION, // 升级包版本不匹配
  37096. EM_APP_UPGRADE_STATE_PART_UPGRADED, // 部分升级成功,导致不同芯片版本不匹配
  37097. EM_APP_UPGRADE_STATE_SETURL, // URL下载升级
  37098. } EM_APP_UPGRADE_STATE;
  37099. ///@brief 事件类型 DH_ALARM_APPCMDSTATE (透传信令到Dhop的App事件)
  37100. typedef struct tagALARM_APPCMDSTATE_INFO
  37101. {
  37102. int nAction; // 1:开始 2:停止
  37103. NET_TIME_EX UTC; // 事件发生的时间
  37104. char szUUID[64]; // 本次请求的唯一标识UUID
  37105. EM_CMD_TO_APP_TYPE emCmdType; // 信令类型
  37106. EM_APP_UPGRADE_STATE emState; // 升级状态
  37107. int nProgress; // 升级进度
  37108. BYTE byReserved[508]; // 保留字节
  37109. }ALARM_APPCMDSTATE_INFO;
  37110. ///@brief 事件类型 DH_ALARM_BLUE_TOOTH_HEADSET_ALARM (蓝牙耳机"一键报警"事件)
  37111. typedef struct tagALARM_BLUE_TOOTH_HEADSET_ALARM_INFO
  37112. {
  37113. int nAction; // 0:脉冲
  37114. int nChannelID; // 通道号
  37115. NET_TIME_EX UTC; // 事件发生的时间
  37116. int nEventID; // 事件ID
  37117. char szName[128]; // 事件名称
  37118. char szDeviceSerialNum[32]; // 设备序列号
  37119. BYTE byReserved[256]; // 保留字节
  37120. }ALARM_BLUE_TOOTH_HEADSET_ALARM_INFO;
  37121. ///@brief 太阳能蓄电池信息
  37122. typedef struct tagSOLARCELL_BATTERY_INFO
  37123. {
  37124. int nElectricityQuantityPercent;// 电量百分比(范围:0~100)
  37125. float fVoltage; // 电压(单位:V)
  37126. float fTemperature; // 温度(单位:℃)
  37127. float fControllerTemper; // 控制温度(单位:℃)
  37128. BYTE byReserved[256]; // 保留字节
  37129. }SOLARCELL_BATTERY_INFO;
  37130. ///@brief 太阳能板信息
  37131. typedef struct tagSOLARCELL_PANEL_INFO
  37132. {
  37133. float fVoltage; // 电压(单位:V)
  37134. float fElectricCurrent; // 电流(单位:A)
  37135. float fChargingPower; // 充电功率
  37136. BYTE byReserved[252]; // 保留字节
  37137. }SOLARCELL_PANEL_INFO;
  37138. ///@brief 太阳能系统历史数据信息
  37139. typedef struct tagSOLARCELL_SYSTEM_HISTORY_INFO
  37140. {
  37141. int nSystemTotalRunDay; // 系统运行时间(单位:天)
  37142. int nBatteryOverDischargeCount; // 蓄电池总过放次数
  37143. int nBatteryTotalChargeCount; // 徐电磁总充满电次数
  37144. BYTE byReserved[252]; // 保留字节
  37145. }SOLARCELL_SYSTEM_HISTORY_INFO;
  37146. ///@brief 太阳能系统故障信息
  37147. typedef enum tagEM_SOLARCELL_SYSTEM_FAULT_TYPE
  37148. {
  37149. EM_SOLARCELL_FAULT_UNKNOWN, // 未知
  37150. EM_SOLARCELL_FAULT_BATTERY_OVER_DISCHARGE, // 电池过放
  37151. EM_SOLARCELL_FAULT_BATTERY_PRESSURE, // 电池施压
  37152. EM_SOLARCELL_FAULT_UNDERVOLTAGE_WARNING, // 欠压警告
  37153. EM_SOLARCELL_FAULT_LOAD_SHORT_CIRCUIT, // 负载短路
  37154. EM_SOLARCELL_FAULT_EXCESSIVE_LOAD_ABNORMAL, // 负载功率过大或负载过流
  37155. EM_SOLARCELL_FAULT_CONTROLLER_TEMPERATURE_HIGH, // 控制器温度过高
  37156. EM_SOLARCELL_FAULT_HIGH_EXTERNAL_TEMPERATURE, // 外部环境温度过高
  37157. EM_SOLARCELL_FAULT_EXCESSIVE_INPUT_POWER, // 光伏输入功率过大
  37158. EM_SOLARCELL_FAULT_INPUT_SHORT_CIRCUIT, // 光伏输入端短路
  37159. EM_SOLARCELL_FAULT_INPUT_TERMINAL_OVERPRESSURE, // 光伏输入端超压
  37160. EM_SOLARCELL_FAULT_SOLAR_PLATE_COUNTERCURRENT, // 太阳板逆流
  37161. EM_SOLARCELL_FAULT_SOLAR_PLATE_OVERPRESSURE, // 太阳板工作点超压
  37162. EM_SOLARCELL_FAULT_REVERSE_CONNECTION_OF_SOLAR_PANEL, // 太阳板反接
  37163. EM_SOLARCELL_FAULT_ANTI_REVERSE_MOS_SHORT, // Anti-reverse MOS short
  37164. EM_SOLARCELL_FAULT_CIRCUIT_CHARGE_MOS_SHORT_CIRCUI, // Circuit,charge MOS short circui
  37165. }EM_SOLARCELL_SYSTEM_FAULT_TYPE;
  37166. ///@brief 事件类型 DH_ALARM_SOLARCELL_SYSTEM_INFO(太阳能系统信息上报)
  37167. typedef struct tagALARM_SOLARCELL_SYSTEM_INFO
  37168. {
  37169. int nAction; // 0:脉冲
  37170. NET_TIME_EX UTC; // 事件发生的时间
  37171. double PTS; // 时间戳(单位是毫秒)
  37172. SOLARCELL_BATTERY_INFO stuBatteryInfo; // 蓄电池信息
  37173. SOLARCELL_PANEL_INFO stuSolarPanel; // 太阳能板信息
  37174. SOLARCELL_SYSTEM_HISTORY_INFO stuHistoryInfo; // 历史数据信息
  37175. EM_SOLARCELL_SYSTEM_FAULT_TYPE emSystemFault[32]; // 系统故障
  37176. int nSystemFault; // 系统故障个数
  37177. BYTE byReserved[1020]; // 保留字节
  37178. }ALARM_SOLARCELL_SYSTEM_INFO;
  37179. ///@brief 事件类型 DH_ALARM_REGION_PARKING_TIMEOUT(区间车位停车超时)
  37180. typedef struct tagALARM_REGION_PARKING_TIMEOUT_INFO
  37181. {
  37182. int nAction; // 0:脉冲
  37183. int nChannelID; // 通道号
  37184. NET_TIME_EX UTC; // 事件发生的时间
  37185. NET_TIME_EX stuCarInParkingLotTime;// 车辆驶入停车场时间(单位:秒)
  37186. char szPlateNumber[64]; // 车牌号码
  37187. char szInParkRegionInfo[128];// 停车区间信息
  37188. BYTE byReserved[1024]; // 保留字节
  37189. }ALARM_REGION_PARKING_TIMEOUT_INFO;
  37190. ///@brief 事件类型 DH_ALARM_REGION_PARKING_NO_ENTRY_RECORD(区间车位停车驶出没有驶入记录)
  37191. typedef struct tagALARM_REGION_PARKING_NO_ENTRY_RECORD_INFO
  37192. {
  37193. int nAction; // 0:脉冲
  37194. int nChannelID; // 通道号
  37195. NET_TIME_EX UTC; // 事件发生的时间
  37196. NET_TIME_EX stuCarOutParkingSpaceTime;// 车辆驶出区域停车位时间(单位:秒)
  37197. char szPlateNumber[64]; // 车牌号码
  37198. char szInParkRegionInfo[128];// 停车区间信息
  37199. BYTE byReserved[1024]; // 保留字节
  37200. }ALARM_REGION_PARKING_NO_ENTRY_RECORD_INFO;
  37201. ///@brief 事件类型 DH_ALARM_OVER_LOAD(超载)
  37202. typedef struct tagALARM_OVER_LOAD_INFO
  37203. {
  37204. int nAction; // 0:脉冲
  37205. int nChannelID; // 通道号
  37206. NET_TIME_EX UTC; // 事件发生的时间
  37207. UINT nEnteredTotal; // 进入人数
  37208. UINT nExitedTotal; // 离开人数
  37209. UINT nInsideTotal; // 滞留人数
  37210. BYTE byReserved[1024]; // 保留字节
  37211. }ALARM_OVER_LOAD_INFO;
  37212. ///@brief 智能网关数据类型
  37213. typedef enum tagEM_WIRELESS_DATA_TYPE
  37214. {
  37215. EM_WIRELESS_DATA_TYPE_UNKNOWN, // 未知
  37216. EM_WIRELESS_DATA_TYPE_BINARY, // 二进制
  37217. EM_WIRELESS_DATA_TYPE_LOG, // 日志
  37218. }EM_WIRELESS_DATA_TYPE;
  37219. ///@brief 事件类型 DH_ALARM_WIRELESS_LOG_INFO(智能网关日志或二进制数据)
  37220. typedef struct tagALARM_WIRELESS_LOG_INFO
  37221. {
  37222. int nAction; // 0:脉冲
  37223. int nChannelID; // 通道号
  37224. NET_TIME_EX UTC; // 事件发生的时间
  37225. EM_WIRELESS_DATA_TYPE emDataType; // 数据类型
  37226. char szBinaryData[1024]; // 二进制数据(emDataType 为 EM_WIRELESS_DATA_TYPE_BINARY 有效)
  37227. char szLogInfo[2048]; // 日志信息(emDataType 为 EM_WIRELESS_DATA_TYPE_LOG 有效)
  37228. }ALARM_WIRELESS_LOG_INFO;
  37229. ///@brief 事件类型 DH_ALARM_TIME_TO_POWEROFF (电池相机达到拉流预览时间上限关机通知事件)
  37230. typedef struct tagALARM_TIME_TO_POWEROFF_INFO
  37231. {
  37232. int nAction; // 0:脉冲
  37233. int nChannelID; // 通道号
  37234. NET_TIME_EX UTC; // 事件发生的时间
  37235. UINT nCountdown; // 距离强制关机时间, 单位:秒
  37236. }ALARM_TIME_TO_POWEROFF_INFO;
  37237. ///@brief 交通灯故障检测源
  37238. typedef enum tagEM_FAULT_DETECT_SOURCE_TYPE
  37239. {
  37240. EM_FAULT_DETECT_SOURCE_TYPE_UNKNOWN, // 未知
  37241. EM_FAULT_DETECT_SOURCE_TYPE_COIL, // 线圈
  37242. EM_FAULT_DETECT_SOURCE_TYPE_VIDEO, // 视频
  37243. }EM_FAULT_DETECT_SOURCE_TYPE;
  37244. ///@brief 事件类型 DH_ALARM_TRAFFIC_LIGHT_FAULT_STATE(交通灯故障报警事件)
  37245. typedef struct tagALARM_TRAFFIC_LIGHT_FAULT_INFO
  37246. {
  37247. int nAction; // 1:开始 2:停止
  37248. int nChannelID; // 通道号
  37249. char szName[128]; // 事件名称
  37250. double PTS; // 时间戳(单位是毫秒)
  37251. NET_TIME_EX UTC; // 事件发生的时间
  37252. EM_FAULT_DETECT_SOURCE_TYPE emDetectSource; // 交通灯故障检测源
  37253. UINT nStraightLightMask[3]; // 直行灯故障状态,0-绿灯 1-红灯 2-黄灯,非0表示信号灯有故障
  37254. UINT nTurnLeftLightMask[3]; // 左转灯故障状态,0-绿灯 1-红灯 2-黄灯,非0表示信号灯有故障
  37255. UINT nTurnRightLightMask[3]; // 右转灯故障状态,0-绿灯 1-红灯 2-黄灯,非0表示信号灯有故障
  37256. UINT nUTurnLightMask[3]; // 掉头灯故障状态,0-绿灯 1-红灯 2-黄灯,非0表示信号灯有故障
  37257. EVENT_COMM_INFO stCommInfo; // 公共信息
  37258. BYTE byReserved[1024]; // 保留字节
  37259. }ALARM_TRAFFIC_LIGHT_FAULT_INFO;
  37260. ///@brief 车载外设类型
  37261. typedef enum tagEM_VEHICLE_PERIPHERAL_TYPE
  37262. {
  37263. EM_VEHICLE_PERIPHERAL_TYPE_UNKNOWN, // 未知类型
  37264. EM_VEHICLE_PERIPHERAL_TYPE_CAN, // CAN
  37265. }EM_VEHICLE_PERIPHERAL_TYPE;
  37266. ///@brief 外设报警事件
  37267. typedef enum tagEM_VEHICLE_PERIPHERAL_ALARM
  37268. {
  37269. EM_VEHICLE_PERIPHERAL_ALARM_UNKNOWN, // 未知类型
  37270. EM_VEHICLE_PERIPHERAL_ISD_COLLISION_WARNING, // ISD碰撞预警
  37271. EM_VEHICLE_PERIPHERAL_ISD_TURTLE_SPEED_OVERSPEED, // ISD龟速超速
  37272. EM_VEHICLE_PERIPHERAL_ISD_SNAIL_SPEED_OVERSPEED, // ISD蜗速超速
  37273. EM_VEHICLE_PERIPHERAL_ISD_COLLISION_SQUEEZE_WARNING, // ISD碰撞挤压预警
  37274. EM_VEHICLE_PERIPHERAL_ISD_FAILURE, // ISD故障
  37275. EM_VEHICLE_PERIPHERAL_ISD_CANCELLED_INSIDE, // ISD场外解除
  37276. EM_VEHICLE_PERIPHERAL_ISD_CANCELLED_OUTSIDE // ISD场内解除
  37277. }EM_VEHICLE_PERIPHERAL_ALARM;
  37278. ///@brief 事件类型 DH_ALARM_VEHICLE_PERIPHERAL 车载外设异常报警
  37279. typedef struct tagALARM_VEHICLE_PERIPHERAL_INFO
  37280. {
  37281. int nAction; // 1:开始 2:停止
  37282. char szName[128]; // 事件名称
  37283. double PTS; // 时间戳(单位是毫秒)
  37284. NET_TIME_EX UTC; // 事件发生的时间
  37285. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  37286. EM_VEHICLE_PERIPHERAL_TYPE emPeripheralType; // 外设类型
  37287. EM_VEHICLE_PERIPHERAL_ALARM emAlarm; // 报警类型
  37288. double dbSpeed; // 速度, 单位km/h(小数点后一位)
  37289. double dbDistance; // 距离, 单位m
  37290. BYTE byReserved[1024]; // 保留字节
  37291. }ALARM_VEHICLE_PERIPHERAL_INFO;
  37292. ///@brief 事件类型 DH_ALARM_FIRE_LANE_DETECTION (消防占道检测事件)对应的数据块描述信息
  37293. typedef struct tagALARM_FIRE_LANE_DETECTION_INFO
  37294. {
  37295. int nChannelID; // 通道号
  37296. int nAction; // 1:开始,2:停止
  37297. char szName[128]; // 事件名称
  37298. double PTS; // 时间戳(单位是毫秒)
  37299. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  37300. NET_TIME_EX UTC; // 事件发生的时间
  37301. DH_MSG_OBJECT stuObjects[32]; // 检测到的物体
  37302. UINT nObjectNum; // 检测到的物体个数
  37303. int nEventID; // 事件ID
  37304. int nRuleID; // 规则编号
  37305. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  37306. BYTE bReserved[1020]; // 预留字段
  37307. } ALARM_FIRE_LANE_DETECTION_INFO;
  37308. ///@brief 事件类型 DH_ALARM_FIRE_LINE_DETECTION (进入消防通道检测)对应的数据块描述信息
  37309. typedef struct tagALARM_FIRE_LINE_DETECTION_INFO
  37310. {
  37311. int nChannelID; // 通道号
  37312. int nAction; // 1:开始 2:停止
  37313. char szName[128]; // 事件名称
  37314. double PTS; // 时间戳(单位是毫秒)
  37315. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  37316. NET_TIME_EX UTC; // 事件发生的时间
  37317. UINT nEventID; // 事件ID
  37318. UINT nRuleID; // 规则编号
  37319. DH_MSG_OBJECT stuObjects[32]; // 检测到的物体
  37320. int nObjectNum; // 检测到的物体个数
  37321. BYTE byReserved[1020]; // 保留字节
  37322. }ALARM_FIRE_LINE_DETECTION_INFO;
  37323. ///@brief 硬盘错误类型
  37324. typedef enum tagEM_DISK_ERROR_TYPE
  37325. {
  37326. EM_DISK_ERROR_TYPE_UNKNOWN, // 未知
  37327. EM_DISK_ERROR_TYPE_TEMPERATURE, // 温度异常
  37328. EM_DISK_ERROR_TYPE_VIBRATION, // 震动异常
  37329. EM_DISK_ERROR_TYPE_PHYSICAL_SHOCK, // 物理撞击异常
  37330. EM_DISK_ERROR_TYPE_HARD_DRIVER, // 链路异常
  37331. EM_DISK_ERROR_TYPE_HOST_RESET, // 复位异常
  37332. EM_DISK_ERROR_TYPE_OTHER, // 其他错误
  37333. }EM_DISK_ERROR_TYPE;
  37334. ///@brief 存储介质类型
  37335. typedef enum tagEM_STORAGE_MEDIA_TYPE
  37336. {
  37337. EM_STORAGE_MEDIA_TYPE_UNKNOWN, // 未知
  37338. EM_STORAGE_MEDIA_TYPE_CDROM, // 光盘
  37339. EM_STORAGE_MEDIA_TYPE_DISK, // 硬盘
  37340. EM_STORAGE_MEDIA_TYPE_FLASH, // SD卡
  37341. EM_STORAGE_MEDIA_TYPE_FROCK, // 产线工装
  37342. }EM_STORAGE_MEDIA_TYPE;
  37343. ///@brief 硬盘生产厂家
  37344. typedef enum tagEM_DISK_MANU_FACTORY
  37345. {
  37346. EM_DISK_MANU_FACTORY_UNKNOWN, // 其他厂家
  37347. EM_DISK_MANU_FACTORY_WD, // 西数
  37348. EM_DISK_MANU_FACTORY_SG, // 西捷
  37349. }EM_DISK_MANU_FACTORY;
  37350. ///@brief 事件类型 DH_ALARM_DISK_HEALTH_FAILURE (硬盘健康异常事件)对应的数据块描述信息
  37351. typedef struct tagALARM_DISK_HEALTH_FAILURE_INFO
  37352. {
  37353. int nChannelID; // 通道号
  37354. int nAction; // 1:开始 2:停止
  37355. char szEventName[128]; // 事件名称
  37356. char szGroup[32]; // 目录所在工作组
  37357. char szDeviceName[64]; // 设备名称
  37358. EM_STORAGE_DISK_PREDISKCHECK emDiskStatus; // 硬盘状态
  37359. EM_DISK_ERROR_TYPE emDiskError; // 硬盘错误类型
  37360. NET_TIME_EX UTC; // 事件发生的时间
  37361. int nPhysicNo; // 物理编号
  37362. EM_DISK_MANU_FACTORY emDiskManuFactory; // 硬盘生产厂家
  37363. EM_STORAGE_MEDIA_TYPE emStrobeMedia; // 存储介质
  37364. char szSerialNo[32]; // 硬盘序列号
  37365. UINT nCmdErrMask; // 指令错误,原始错误码
  37366. BYTE byReserved[1020]; // 保留字节
  37367. }ALARM_DISK_HEALTH_FAILURE_INFO;
  37368. ///@brief 探测物体的传感器类型
  37369. typedef enum tagEM_DETECT_SENSOR_TYPE
  37370. {
  37371. EM_DETECT_SENSOR_TYPE_UNKNOWN, // 未知
  37372. EM_DETECT_SENSOR_TYPE_COIL, // 线圈
  37373. EM_DETECT_SENSOR_TYPE_VIDEO, // 视频
  37374. EM_DETECT_SENSOR_TYPE_RADAR, // 雷达
  37375. EM_DETECT_SENSOR_TYPE_5G, // 5G
  37376. EM_DETECT_SENSOR_TYPE_FUSION // 融合
  37377. }EM_DETECT_SENSOR_TYPE;
  37378. ///@brief 事件类型 DH_ALARM_REFRIGE_SHUT_DOWN(当制冷机进入关闭倒计时时进行提示) 对应的数据块描述信息
  37379. typedef struct tagALARM_REFRIGE_SHUT_DOWN_INFO
  37380. {
  37381. int nChannelID; // 通道号
  37382. int nAction; // 0:脉冲 1:开始 2:停止
  37383. UINT nLeftTime; // 制冷机关闭倒计时剩余时间,单位秒
  37384. BYTE byReserved[1020]; // 保留字节
  37385. }ALARM_REFRIGE_SHUT_DOWN_INFO;
  37386. ///@brief 接入网络
  37387. typedef enum tagEM_WIRELESS_APN_TYPE
  37388. {
  37389. EM_WIRELESS_APN_UNKNOWN = -1, // 未知
  37390. EM_WIRELESS_APN_CUSTOMIZED, // 自定义
  37391. EM_WIRELESS_APN_CTNET, // 中国电信
  37392. EM_WIRELESS_APN_CMNET, // 中国移动
  37393. EM_WIRELESS_APN_UNINET, // 中国联通
  37394. }EM_WIRELESS_APN_TYPE;
  37395. ///@brief 事件类型 DH_ALARM_AROUD_4G_PROBE_SEARCH 手机识别码 对应的数据块描述信息
  37396. typedef struct tagALARM_AROUD_4G_PROBE_SEARCH_INFO
  37397. {
  37398. int nChannelID; // 通道号
  37399. int nAction; // 0:脉冲
  37400. char szIMSI[20]; // 手机卡的国际移动用户识别码
  37401. char szIMEI[20]; // 手机的移动装备国际辨识识别码
  37402. EM_WIRELESS_APN_TYPE emAPN; // 网络类型, 当前支持 中国电信、移动、联通
  37403. int nStrength; // 信号强度
  37404. NET_TIME stuTime; // 采集信息的时间
  37405. BYTE byReserved[1020]; // 保留字节
  37406. }ALARM_AROUD_4G_PROBE_SEARCH_INFO;
  37407. ///@brief 车辆类型
  37408. typedef enum tagEM_VEHICLEINOUT_CAR_TYPE
  37409. {
  37410. EM_VEHICLEINOUT_CAR_TYPE_UNKNOWN, // 未知类型
  37411. EM_VEHICLEINOUT_CAR_TYPE_CAR, // 小型客车
  37412. EM_VEHICLEINOUT_CAR_TYPE_VAN, // 面包车
  37413. EM_VEHICLEINOUT_CAR_TYPE_TRUCK, // 货车
  37414. EM_VEHICLEINOUT_CAR_TYPE_BUS, // 公交车
  37415. EM_VEHICLEINOUT_CAR_TYPE_LORRY, // 大货车
  37416. EM_VEHICLEINOUT_CAR_TYPE_CART, // 大车
  37417. EM_VEHICLEINOUT_CAR_TYPE_NONMOTOR, // 非机动车
  37418. EM_VEHICLEINOUT_CAR_TYPE_HUMAN, // 人
  37419. EM_VEHICLEINOUT_CAR_TYPE_SPECAIL, // 特殊值
  37420. }EM_VEHICLEINOUT_CAR_TYPE;
  37421. ///@brief 车辆信息
  37422. typedef struct tagNET_VEHICLE_OBJECT
  37423. {
  37424. UINT nObjectID; // 物体ID
  37425. UINT nSpeed; // 车速,单位km/h
  37426. char szObjectType[16]; // 物体类型 Vehicle NonMotor Plate
  37427. EM_CATEGORY_TYPE emSubObject; // 物体类型中的子类别
  37428. UINT nLane; // 物理车道号
  37429. UINT nRoadwayNumber; // 自定义车道号
  37430. EM_DETECT_SENSOR_TYPE emSensorType; // 探测物体的传感器类型
  37431. UINT nObjectRVID; // 物体雷达和视频融合ID
  37432. UINT nObjectRID; // 物体的雷达ID
  37433. char szDrivingDirection[3][32]; // 行驶方向"Approach"-上行,即车辆离设备部署点越来越近; "Leave"-下行,即车辆离设备部署点越来越远,第二和第三个参数分别代表上行和下行的两个地点,UTF-8编码
  37434. char szPlateNumber[32]; // 车牌号码
  37435. char szPlateColor[16]; // 车牌颜色
  37436. double dbLongitude; // 车辆经度
  37437. double dbLatitude; // 车辆纬度
  37438. char szCarColor[16]; // 车身颜色
  37439. EM_VEHICLEINOUT_CAR_TYPE emCarType; // 车辆类型
  37440. NET_FLOWSTAT_DIRECTION emVirtualCoilDirection; // 车辆驶入驶出虚拟线圈的状态
  37441. double dbDistanceToStop; // 距离停车线距离
  37442. double dbCarX; // 车辆与所有车道的中心点(中心点在设备所处位置,且垂直于车道方向的直线上),X轴方向(垂直于车道方向)的距离
  37443. double dbCarY; // 车辆与所有车道的中心点(中心点在设备所处位置,且垂直于车道方向的直线上),Y轴方向(平行于车道方向)的距离
  37444. double dbCarAngle; // 车辆与所有车道的中心点(中心点在设备所处位置且垂直于车道方向的直线上)的角度;
  37445. UINT nObjectInVideoLane; // 物体是否在视频车道内, 0:未知, 1:物体不在视频车道内, 2:物体在视频车道内
  37446. int nDirection; // 目标物体实际行驶方向 0-未知,1-直行,2-左转,3-右转,4-掉头
  37447. float fSpeedX; // 目标横向运动速度
  37448. float fSpeedY; // 目标纵向运动速度
  37449. double dbHeadingAngle; // 航向角
  37450. NET_RECT stuCarBoundingBox; // 车身坐标,包围盒0~8191相对坐标
  37451. BYTE byReserverd[216]; // 保留字节
  37452. }NET_VEHICLE_OBJECT;
  37453. ///@brief 流量状态
  37454. typedef enum tagEM_TRAFFIC_FLOW_STATUS
  37455. {
  37456. EM_TRAFFIC_FLOW_STATUS_UNKNOWN, // 未知
  37457. EM_TRAFFIC_FLOW_STATUS_CONGESTION, // 交通拥堵
  37458. EM_TRAFFIC_FLOW_STATUS_SMOOTH // 交通畅通
  37459. }EM_TRAFFIC_FLOW_STATUS;
  37460. ///@brief 虚拟线圈占用状态
  37461. typedef enum tagEM_VIRTUAL_COIL_OCCUPANCY_STATUS
  37462. {
  37463. EM_VIRTUAL_COIL_OCCUPANCY_STATUS_UNKNOWN = -1, // 未知
  37464. EM_VIRTUAL_COIL_OCCUPANCY_STATUS_UNOCCUPY, // 未占用
  37465. EM_VIRTUAL_COIL_OCCUPANCY_STATUS_OCCUPY, // 占用
  37466. }EM_VIRTUAL_COIL_OCCUPANCY_STATUS;
  37467. ///@brief 车道流量统计
  37468. typedef struct tagNET_TRAFFIC_FLOW_STAT
  37469. {
  37470. UINT nLane; // 物理车道号
  37471. UINT nRoadwayNumber; // 自定义车道号
  37472. EM_TRAFFIC_FLOW_STATUS emStatus; // 流量状态
  37473. EM_VIRTUAL_COIL_OCCUPANCY_STATUS emHeadCoil; // 车头虚拟线圈状态, 即车进线圈
  37474. EM_VIRTUAL_COIL_OCCUPANCY_STATUS emTailCoil; // 车尾虚拟线圈状态, 即车出线圈
  37475. UINT nSpeed; // 车道平均速度(单位:km/h)
  37476. UINT nQueueLen; // 排队长度(单位:cm)
  37477. UINT nCarsInQueue; // 排队车辆数
  37478. EM_DETECT_SENSOR_TYPE emSensorType; // 探测物体的传感器类型
  37479. double dbSpaceHeadway; // 车头间距,相邻车辆之间的距离,单位米/辆
  37480. double dbTimeHeadWay; // 车头时距,单位秒/辆
  37481. double dbSpaceOccRatio; // 空间占有率,即按百分率计量的车辆长度总和除以时间间隔内车辆平均行驶距离
  37482. UINT nCarVehicles; // 车道中的所有车辆的数量,即车流量
  37483. BYTE byReserverd[228]; // 保留字节
  37484. }NET_TRAFFIC_FLOW_STAT;
  37485. ///@brief 事件类型 DH_ALARM_VEHICLE_INOUT (车辆出入事件)对应的数据块描述信息
  37486. typedef struct tagALARM_VEHICLE_INOUT_INFO
  37487. {
  37488. int nAction; // 事件动作,0表示脉冲事件
  37489. int nChannel; // 通道号
  37490. char szName[128]; // 事件名称
  37491. NET_TIME_EX UTC; // 事件发生的时间
  37492. int nEventID; // 事件ID
  37493. NET_VEHICLE_OBJECT *pstObjets; // 物体列表
  37494. int nObjectNum; // 物体有效个数
  37495. int nStatNum; // 统计有效个数
  37496. NET_TRAFFIC_FLOW_STAT stuStats[8]; // 各个车道实时交通流量统计信息, 最大支持8车道
  37497. double dbRadarInstallAngle; // 雷达安装角度(雷达坐标系Y轴与正北方向的逆时针夹角)单位:度 (0 ~ 360)
  37498. BYTE byReserverd[1016]; // 保留字节
  37499. }ALARM_VEHICLE_INOUT_INFO;
  37500. ///@brief 事件类型 DH_ALARM_DISS_ASSEMBLY 设备机体拆解事件
  37501. typedef struct tagALARM_DISS_ASSEMBLY_INFO
  37502. {
  37503. int nAction; // 0:脉冲
  37504. NET_TIME_EX UTC; // 事件发生的时间
  37505. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  37506. }ALARM_DISS_ASSEMBLY_INFO;
  37507. ///@brief 设备状态
  37508. typedef enum tagEM_DEVICE_STATUS
  37509. {
  37510. EM_DEVICE_STATUS_UNKNOWN, // 未知
  37511. EM_DEVICE_STATUS_WORKING, // 工作
  37512. EM_DEVICE_STATUS_SLEEPING, // 休眠
  37513. }EM_DEVICE_STATUS;
  37514. ///@brief 进入休眠方式
  37515. typedef enum tagEM_SLEEP_TRIGGER_MODE
  37516. {
  37517. EM_SLEEP_TRIGGER_MODE_UNKNOWN,
  37518. EM_SLEEP_TRIGGER_MODE_TIMING, // 定时方式
  37519. EM_SLEEP_TRIGGER_MODE_SHORT_MESSAGE, // 短信方式
  37520. EM_SLEEP_TRIGGER_MODE_TIME_PERIOD, // 时间段方式
  37521. EM_SLEEP_TRIGGER_MODE_MOVECTRL // 运动控制模式
  37522. }EM_SLEEP_TRIGGER_MODE;
  37523. ///@brief 事件类型 DH_ALARM_SLEEP_CONTROL_STATUS 球机休眠状态事件
  37524. typedef struct tagALARM_SLEEP_CONTROL_STATUS_INFO
  37525. {
  37526. int nChannelID; // 通道号
  37527. int nAction; // 0:脉冲
  37528. NET_TIME_EX UTC; // 事件发生的时间
  37529. EM_DEVICE_STATUS emStatus; // 设备状态
  37530. EM_SLEEP_TRIGGER_MODE emMode; // 进入休眠的方式
  37531. }ALARM_SLEEP_CONTROL_STATUS_INFO;
  37532. ///@brief 事件类型 DH_ALARM_REMOTE_DISASSEMBLY 远端设备机体拆解事件
  37533. typedef struct tagALARM_REMOTE_DISASSEMBLY_INFO
  37534. {
  37535. int nChannelID; // 通道号
  37536. int nAction; // 1:开始 2结束
  37537. NET_TIME_EX UTC; // 事件发生的时间
  37538. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  37539. BYTE bReserved[512]; // 保留字节
  37540. }ALARM_REMOTE_DISASSEMBLY_INFO;
  37541. ///@brief 屏保状态
  37542. typedef enum tagEM_SCREENSAVER_STATUS
  37543. {
  37544. EM_SCREENSAVER_STATUS_UNKNOWN, // 未知状态
  37545. EM_SCREENSAVER_STATUS_OPEN, // 打开屏保
  37546. EM_SCREENSAVER_STATUS_CLOSE, // 关闭屏保
  37547. }EM_SCREENSAVER_STATUS;
  37548. ///@brief 事件类型 屏保事件
  37549. typedef struct tagALARM_SCREENSAVER_INFO
  37550. {
  37551. int nAction; // 0:脉冲
  37552. EM_SCREENSAVER_STATUS emStatus; // 屏保状态
  37553. BOOL bClosePage; // 是否关闭页面 当EM_SCREENSAVER_STATUS是"Open"有效
  37554. BOOL bScreenOff; // 屏幕关闭
  37555. BYTE bReserved[128]; // 保留字节
  37556. }ALARM_SCREENSAVER_INFO;
  37557. ///@brief 岗位人数和人员异常事件
  37558. typedef struct tagALARM_ABN_POST_DETECTION_INFO
  37559. {
  37560. int nChannelID; // 通道号
  37561. int nAction; // 0:脉冲
  37562. UINT nEventID; // 事件编号,用来唯一标志一个事件
  37563. NET_TIME_EX UTC; // 事件发生的时间,单位秒
  37564. UINT UTCMS; // UTC时间对应的毫秒数
  37565. double dbPTS; // 时间戳(单位是毫秒)
  37566. }ALARM_ABN_POST_DETECTION_INFO;
  37567. ///@brief 屏保状态
  37568. typedef enum tagEM_VIDEO_ABNORMAL_DETECT_TYPE
  37569. {
  37570. EM_VIDEO_ABNORMAL_DETECT_UNKNOWN, // 未知状态
  37571. EM_VIDEO_ABNORMAL_DETECT_LOSS, // 视频丢失
  37572. EM_VIDEO_ABNORMAL_DETECT_COVER, // 视频遮挡
  37573. EM_VIDEO_ABNORMAL_DETECT_FROZEN, // 画面冻结
  37574. EM_VIDEO_ABNORMAL_DETECT_LIGHT, // 过亮
  37575. EM_VIDEO_ABNORMAL_DETECT_DARK, // 过暗
  37576. EM_VIDEO_ABNORMAL_DETECT_SCENECHANGE, // 场景变化
  37577. EM_VIDEO_ABNORMAL_DETECT_STRIATION, // 条纹检测
  37578. EM_VIDEO_ABNORMAL_DETECT_NOISE, // 噪声检测
  37579. EM_VIDEO_ABNORMAL_DETECT_UNBALANCE, // 偏色检测
  37580. EM_VIDEO_ABNORMAL_DETECT_BLUR, // 视频模糊检测
  37581. EM_VIDEO_ABNORMAL_DETECT_CONTRAST, // 对比度异常检测
  37582. EM_VIDEO_ABNORMAL_DETECT_MOTION, // 视频运动
  37583. EM_VIDEO_ABNORMAL_DETECT_FILCKERING, // 视频闪烁
  37584. EM_VIDEO_ABNORMAL_DETECT_COLOR, // 视频颜色-13
  37585. EM_VIDEO_ABNORMAL_DETECT_UNFOCUS, // 虚焦检测
  37586. EM_VIDEO_ABNORMAL_DETECT_OVEREXPOSURE, // 过曝检测
  37587. EM_VIDEO_ABNORMAL_DETECT_DRAMATICCHANGE, // 场景剧变
  37588. EM_VIDEO_ABNORMAL_DETECT_BLACKWHITE, // 黑白图像
  37589. EM_VIDEO_ABNORMAL_DETECT_SNOWNOISE, // 雪花噪声
  37590. }EM_VIDEO_ABNORMAL_DETECT_TYPE;
  37591. ///@brief 视频正常事件,在视频诊断检测周期结束时,将未报错的诊断项上报正常事件
  37592. typedef struct tagDEV_EVENT_VIDEO_NORMAL_DETECTION_INFO
  37593. {
  37594. int nChannelID; // 通道号
  37595. int nAction; // 0:脉冲
  37596. UINT nEventID; // 事件编号,用来唯一标志一个事件
  37597. NET_TIME_EX UTC; // 事件发生的时间,单位秒
  37598. double dbPTS; // 时间戳(单位是毫秒)
  37599. EM_VIDEO_ABNORMAL_DETECT_TYPE emDetectType; // 视频检测类型
  37600. BYTE bReserved[260]; // 保留字节
  37601. }DEV_EVENT_VIDEO_NORMAL_DETECTION_INFO;
  37602. ///@brief 营业状态
  37603. typedef enum tagEM_BUSINESS_STATUS
  37604. {
  37605. EM_BUSINESS_STATUS_UNKNOWN = -1, // 未知状态
  37606. EM_BUSINESS_STATUS_NOSTART, // 营业未开始
  37607. EM_BUSINESS_STATUS_START, // 营业开始
  37608. EM_BUSINESS_STATUS_NORAML, // 正常营业
  37609. EM_BUSINESS_STATUS_AUTOCLOSE, // 自动结业
  37610. EM_BUSINESS_STATUS_ABMONALCLOSE, // 异常结业
  37611. }EM_BUSINESS_STATUS;
  37612. ///@brief 互锁联动场景
  37613. typedef enum tagEM_INTERLOCK_SCENE
  37614. {
  37615. EM_INTERLOCK_SCENE_UNKNOWN = -1, // 未知状态
  37616. EM_INTERLOCK_SCENE_NORMAL, // 正常
  37617. EM_INTERLOCK_SCENE_ALLOPEN, // 同时打开
  37618. EM_INTERLOCK_SCENE_ALLCLOSE, // 同时关闭
  37619. }EM_INTERLOCK_SCENE;
  37620. ///@brief 互锁联动AB门双开/双闭报警(对应DH_ALARM_DOUBLEDOOR)
  37621. typedef struct tagALARM_DOUBLEDOOR_INFO
  37622. {
  37623. int nAction; // 0:脉冲
  37624. EM_INTERLOCK_SCENE emInterLockScene; // 互锁联动场景
  37625. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 UTC 字段
  37626. char szReserved1[4]; // 字节对齐
  37627. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  37628. NET_TIME_EX UTC; // 事件发生的时间
  37629. char szReserverd[128]; // 保留字节
  37630. }ALARM_DOUBLEDOOR_INFO;
  37631. ///@brief 时间段外开门报警事件(对应DH_ALARM_OPENOUT_TIMESECTION)
  37632. typedef struct tagALARM_OPENOUT_TIMESECTION_INFO
  37633. {
  37634. int nAction; // 0:脉冲
  37635. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 UTC 字段
  37636. NET_TIME_EX UTC; // 事件发生的时间
  37637. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  37638. char szReserverd[128]; // 保留字节
  37639. }ALARM_OPENOUT_TIMESECTION_INFO;
  37640. ///@brief 营业状态事件(对应DH_ALARM_SERVICESTART)
  37641. typedef struct tagALARM_SERVICESTART_INFO
  37642. {
  37643. int nAction; // 0:脉冲
  37644. EM_BUSINESS_STATUS emBusinessStatus; // 营业状态
  37645. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 UTC 字段
  37646. char szReserved1[4]; // 字节对齐
  37647. NET_TIME_EX UTC; // 事件发生的时间
  37648. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  37649. char szReserverd[128]; // 保留字节
  37650. }ALARM_SERVICESTART_INFO;
  37651. ///@brief 探测器主电丢失事件(对应DH_ALARM_WIRELESSDEV_POWERLESS)
  37652. typedef struct tagALARM_WIRELESSDEV_POWERLESS_INFO
  37653. {
  37654. int nAction; // 0:脉冲 1:开始 2:停止
  37655. int nIndex; // 探测器地址
  37656. NET_TIME_EX stuLoacalTime; // 事件发生的时间
  37657. char szModel[32]; // 探测器类型
  37658. char szName[32]; // 探测器名称
  37659. char szSN[32]; // 探测器序列号
  37660. char szAreaName[32]; // 探测器所属区域名称
  37661. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  37662. char szReserverd[128]; // 保留字节
  37663. }ALARM_WIRELESSDEV_POWERLESS_INFO;
  37664. ///@brief 室内机上报平台通知已经阅读公告事件 (对应 DH_ALARM_PUBLISHINFO_CONFIRM)
  37665. typedef struct tagALARM_PUBLISHINFO_CONFIRM_INFO
  37666. {
  37667. int nAction; // 0:脉冲
  37668. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 UTC 字段
  37669. NET_TIME_EX UTC; // 事件发生的时间
  37670. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  37671. char szDeviceIP[64]; // 上报设备的IP
  37672. char szDeviceUserID[64]; // 室内机的用户ID
  37673. char szReadInfoID[256][32]; // 已读公告的ID数组
  37674. int nReadInfoIDNum; // 已读公告的ID数组个数
  37675. char szReserverd[508]; // 保留字节
  37676. }ALARM_PUBLISHINFO_CONFIRM_INFO;
  37677. ///@brief 功能字段描述
  37678. typedef enum tagEM_FUNCTION_TYPE
  37679. {
  37680. EM_FUNCTION_TYPE_UNKNOWN, // 未知
  37681. EM_FUNCTION_TYPE_WIGHT_LIGHT, // 白光
  37682. EM_FUNCTION_TYPE_SIREN, // 警报器
  37683. EM_FUNCTION_TYPE_LENS_MASK, // 镜头遮罩
  37684. EM_FUNCTION_TYPE_SUPPER_LIGHT, // 夜光灯
  37685. EM_FUNCTION_TYPE_VLOG_STATE, // Vlog状态
  37686. }EM_FUNCTION_TYPE;
  37687. ///@brief App界面显示设备某些特定的状态变化事件 (对应 DH_ALARM_LEFUNCTION_STATUS_SYNC)
  37688. typedef struct tagALARM_LEFUNCTION_STATUS_SYNC_INFO
  37689. {
  37690. int nAction; // 事件动作 0:脉冲
  37691. int nChannel; // 通道号
  37692. char szName[128]; // 事件名称
  37693. NET_TIME_EX stuUTC; // 事件发生的时间
  37694. EM_FUNCTION_TYPE emFunction; // 功能字段描述
  37695. BOOL bStatus; // 功能是否打开 true表示功能开 false表示功能关
  37696. char szReserverd[1024]; // 保留字节
  37697. }ALARM_LEFUNCTION_STATUS_SYNC_INFO;
  37698. ///@brief 车道的信息
  37699. typedef struct tagTRAFFIC_QUEUE_INFO
  37700. {
  37701. UINT nLane; // 车道号
  37702. UINT nQueueLen; // 排队长度
  37703. UINT nQueueStartPos; // 排队起始位置,精度1m
  37704. UINT nQueueVehNum; // 检测区域内车辆数
  37705. UINT nQueueVehSpeed; // 车道中实时车辆平均速度,精度1km/h
  37706. UINT nOccTime; // 停止线最近一个线圈的占有时间,从开始占有算起,单位ms
  37707. NET_EM_OVER_FLOW_STATE emOverflowState; // 溢出状态。例:如给当前路段设定允许排队长度阀值,实际排队长度超过阀值后就判定当前时刻该路段有溢出。
  37708. char szReserverd[252]; // 保留字节
  37709. }TRAFFIC_QUEUE_INFO;
  37710. ///@brief 区域路口排队信息
  37711. typedef struct tagTRAFFIC_FLOW_QUEUE_INFO
  37712. {
  37713. UINT nDecStatus; // 检测器状态 0-正常 1-故障
  37714. UINT nAreaNo; // 区域号
  37715. UINT nJunNo; // 路口号
  37716. UINT nDirNo; // 方向号,北东南西分别为0/1/2/3
  37717. UINT nLaneDirType; // 进出口类型,进口道 0,出口道 1
  37718. int nQueueInfoNum; // 车道信息个数
  37719. TRAFFIC_QUEUE_INFO stuQueueInfo[32]; // 0~7车道的信息
  37720. char szReserverd[256]; // 保留字节
  37721. }TRAFFIC_FLOW_QUEUE_INFO;
  37722. ///@brief 交通路口排队事件 (对应 DH_ALARM_TRAFFIC_FLOW_QUEUE)
  37723. typedef struct tagALARM_TRAFFIC_FLOW_QUEUE_INFO
  37724. {
  37725. int nAction; // 事件动作 0:脉冲
  37726. int nChannel; // 通道号
  37727. char szName[128]; // 事件名称
  37728. NET_TIME_EX stuUTC; // 事件发生的时间
  37729. UINT nUTCMS; // 事件时间毫秒数
  37730. int nSequence; // 表示抓拍序号 1表示抓拍正常结束 0表示抓拍异常结束
  37731. TRAFFIC_FLOW_QUEUE_INFO stuFlowQueueInfo; // 区域路口排队信息
  37732. char szReserverd[1024]; // 保留字节
  37733. }ALARM_TRAFFIC_FLOW_QUEUE_INFO;
  37734. ///@brief 区域路口过车信息
  37735. typedef struct tagTRAFFIC_FLOW_JUNTION_INFO
  37736. {
  37737. UINT nAreaNo; // 区域号
  37738. UINT nJunNo; // 路口号
  37739. UINT nDirNo; // 方向号,北东南西分别为0/1/2/3
  37740. UINT nLaneDirType; // 进出口类型,进口道 0,出口道 1
  37741. UINT nSecNo; // 检测断面号
  37742. UINT nLaneNo; // 车道号0~7
  37743. UINT nVehType; // 车辆类型
  37744. UINT nVehSpeed; // 车辆速度,精度1km/h
  37745. UINT nOccTime; // 占有时间,单位ms
  37746. char szReserverd[252]; // 保留字节
  37747. }TRAFFIC_FLOW_JUNTION_INFO;
  37748. ///@brief 交通路口过车事件 (对应 DH_ALARM_TRAFFIC_FLOW_JUNTION)
  37749. typedef struct tagALARM_TRAFFIC_FLOW_JUNTION_INFO
  37750. {
  37751. int nAction; // 事件动作 0:脉冲
  37752. int nChannel; // 通道号
  37753. char szName[128]; // 事件名称
  37754. NET_TIME_EX stuUTC; // 事件发生的时间
  37755. UINT nUTCMS; // 事件时间毫秒数
  37756. int nSequence; // 表示抓拍序号 1表示抓拍正常结束 0表示抓拍异常结束
  37757. TRAFFIC_FLOW_JUNTION_INFO stuFlowJunction; // 区域路口过车信息
  37758. char szReserverd[1024]; // 保留字节
  37759. }ALARM_TRAFFIC_FLOW_JUNTION_INFO;
  37760. ///@brief 区域路口停车信息
  37761. typedef struct tagTRAFFIC_FLOW_VEHICLE_STOP_INFO
  37762. {
  37763. UINT nAreaNo; // 区域号
  37764. UINT nJunNo; // 路口号
  37765. UINT nDirNo; // 方向号,北东南西分别为0/1/2/3
  37766. UINT nLaneDirType; // 进出口类型,进口道 0,出口道 1
  37767. UINT nLaneNo; // 车道号0~7
  37768. UINT nStopPos; // 停车位置,精度1m
  37769. UINT nStopTimes; // 停车次数,第几次停车
  37770. UINT nStopOccTime; // 停车占有时间,单位ms
  37771. char szReserverd[256]; // 保留字节
  37772. }TRAFFIC_FLOW_VEHICLE_STOP_INFO;
  37773. ///@brief 交通路口停车事件 (对应 DH_ALARM_TRAFFIC_FLOW_VEHICLE_STOP)
  37774. typedef struct tagALARM_TRAFFIC_FLOW_VEHICLE_STOP_INFO
  37775. {
  37776. int nAction; // 事件动作 0:脉冲
  37777. int nChannel; // 通道号
  37778. char szName[128]; // 事件名称
  37779. NET_TIME_EX stuUTC; // 事件发生的时间
  37780. UINT nUTCMS; // 事件时间毫秒数
  37781. int nSequence; // 表示抓拍序号 1表示抓拍正常结束 0表示抓拍异常结束
  37782. TRAFFIC_FLOW_VEHICLE_STOP_INFO stuFlowVehicleStop; // 区域路口停车信息
  37783. char szReserverd[1024]; // 保留字节
  37784. }ALARM_TRAFFIC_FLOW_VEHICLE_STOP_INFO;
  37785. ///@brief 交通路口车道统计事件 (对应 DH_ALARM_TRAFFIC_FLOW_STAT)
  37786. typedef struct tagALARM_TRAFFIC_FLOW_STAT_INFO
  37787. {
  37788. int nAction; // 事件动作 0:脉冲
  37789. int nChannelID; // 通道号
  37790. char szName[128]; // 事件名称
  37791. DWORD PTS; // 时间戳(单位是毫秒)
  37792. int nEventID; // 事件ID
  37793. NET_TIME_EX stuUTC; // 事件发生的时间
  37794. int nSequence; // 序号
  37795. int nStateNum; // 流量状态数量
  37796. NET_TRAFFIC_FLOW_STATE stuStates[8]; // 流量状态, 每个车道对应数组中一个元素
  37797. int nStopVehiclenum; // 静止车辆数,当前时刻检测范围内车速小于某个阀值的车辆数,单位:辆
  37798. int nDetectionAreaVehicleNum; // 车辆总数,当前时刻检测范围内检测到的所有车道内的车辆总数,单位:辆
  37799. char szReserverd[1024]; // 保留字节
  37800. }ALARM_TRAFFIC_FLOW_STAT_INFO;
  37801. ///@brief 车道的车道统计信息
  37802. typedef struct tagTRAFFIC_FLOW_LANE_INFO
  37803. {
  37804. UINT nFlow; // 车道流量
  37805. UINT nAveSpeed; // 车道平均速度,1km/h精度
  37806. UINT nOccupancy; // 车道占有率
  37807. char szReserverd[252]; // 保留字节
  37808. }TRAFFIC_FLOW_LANE_INFO;
  37809. ///@brief 路口车道统计信息
  37810. typedef struct tagTRAFFIC_FLOW_STAT_EX_INFO
  37811. {
  37812. UINT nAreaNo; // 区域号
  37813. UINT nJunNo; // 路口号
  37814. UINT nDirNo; // 方向号,北东南西分别为0/1/2/3
  37815. UINT nSecNo; // 检测断面号
  37816. TRAFFIC_FLOW_LANE_INFO stuLaneInfo[32]; // 0~7车道的车道统计信息
  37817. int nLaneInfoNum; // 车道统计信息个数
  37818. char szReserverd[252]; // 保留字节
  37819. }TRAFFIC_FLOW_STAT_EX_INFO;
  37820. ///@brief 交通路口车道统计拓展事件 (对应 DH_ALARM_TRAFFIC_FLOW_STAT_EX)
  37821. typedef struct tagALARM_TRAFFIC_FLOW_STAT_EX_INFO
  37822. {
  37823. int nAction; // 事件动作 0:脉冲
  37824. int nChannel; // 通道号
  37825. char szName[128]; // 事件名称
  37826. NET_TIME_EX stuUTC; // 事件发生的时间
  37827. UINT nUTCMS; // 事件时间毫秒数
  37828. int nSequence; // 表示抓拍序号 1表示抓拍正常结束 0表示抓拍异常结束
  37829. TRAFFIC_FLOW_STAT_EX_INFO stuFlowStatEx; // 路口车道统计信息
  37830. char szReserverd[1024]; // 保留字节
  37831. }ALARM_TRAFFIC_FLOW_STAT_EX_INFO;
  37832. ///@brief 设备接入的显示连接状态改变对外通知事件 (对应 DH_ALARM_SCREEN_DISPLAY_ALARM)
  37833. typedef struct tagALARM_SCREEN_DISPLAY_ALARM_INFO
  37834. {
  37835. int nAction; // 事件动作 0:脉冲
  37836. BOOL bHdmiStatus; // 连接状态变化, TRUE:发生变化,FALSE:未发生变化
  37837. NET_TIME_EX stuUTC; // 事件发生的时间
  37838. BYTE byReserved[1020]; // 保留字节
  37839. }ALARM_SCREEN_DISPLAY_ALARM_INFO;
  37840. ///@brief 人和动物检测事件报警类型
  37841. typedef enum tagEM_HUMAN_ANIMAL_ALARM_TYPE
  37842. {
  37843. EM_HUMAN_ANIMAL_ALARM_TYPE_UNKNOWN, // 未知
  37844. EM_HUMAN_ANIMAL_ALARM_TYPE_NORMAL_TO_ABNORMAL, // 从人数正常到人数异常
  37845. EM_HUMAN_ANIMAL_ALARM_TYPE_ABNORMAL_TO_NORMAL, // 从人数异常到人数正常
  37846. }EM_HUMAN_ANIMAL_ALARM_TYPE;
  37847. ///@brief 动物检测规则下的场景类型
  37848. typedef enum tagEM_DETECTION_SCENE_TYPE
  37849. {
  37850. EM_DETECTION_SCENE_TYPE_UNKNOWN , // 未知
  37851. EM_DETECTION_SCENE_TYPE_ANIMAL, // 兽类场景,可检测动物、人、车
  37852. EM_DETECTION_SCENE_TYPE_BIRD, // 鸟类场景,可检测鸟类,人、车
  37853. EM_DETECTION_SCENE_TYPE_PIG, // 猪类场景,可检测猪只
  37854. }EM_DETECTION_SCENE_TYPE;
  37855. ///@brief 人和动物检测事件(对应 DH_ALARM_HUMAN_ANIMAL_COEXISTENCE)
  37856. typedef struct tagALARM_HUMAN_ANIMAL_COEXISTENCE_INFO
  37857. {
  37858. int nChannelID; // 通道号
  37859. int nAction; // 事件动作, 1:开始 2:停止
  37860. char szName[128]; // 事件名称
  37861. double dbPTS; // 时间戳(单位是毫秒)
  37862. NET_TIME_EX stuUTC; // 事件发生的时间
  37863. int nUTCMS; // 事件时间毫秒数
  37864. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  37865. UINT nRuleID; // 规则ID, 用于标示哪个规则触发的事件
  37866. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  37867. int nCountInGroup; // 一个事件组内的抓拍张数
  37868. int nIndexInGroup; // 一个事件组内的抓拍序号, 从1开始
  37869. UINT nEventID; // 事件ID
  37870. int nPresetID; // 事件触发的预置点号,从1开始, 0 表示无效
  37871. EM_HUMAN_ANIMAL_ALARM_TYPE emAlarmType; // 事件报警类型
  37872. EM_DETECTION_SCENE_TYPE emDetectionSceneType; // 场景类型
  37873. char szReserved[1020]; // 保留字节
  37874. }ALARM_HUMAN_ANIMAL_COEXISTENCE_INFO;
  37875. ///@brief Mini雷达报警事件(对应 DH_ALARM_MINIINDOOR_RADAR_ALARM)
  37876. typedef struct tagNET_ALARM_MINIINDOOR_RADAR_ALARM_INFO
  37877. {
  37878. int nChannelID; // 通道号
  37879. int nAction; // 事件动作, 1:开始 2:停止
  37880. char szName[128]; // 事件名称
  37881. char szClass[128]; // 事件所属大类
  37882. UINT nEventID; // 事件编号,用来唯一标志一个事件
  37883. NET_TIME_EX stuUTC; // 事件发生的时间,单位秒
  37884. double dbPTS; // 时间戳(单位是毫秒)
  37885. UINT nUTCMS; // UTC时间对应的毫秒数
  37886. BOOL bBreatheAbnormal; // 呼吸异常(生命体征雷达使用)
  37887. BOOL bHeartBeatAbnormal; // 心跳异常(生命体征雷达使用)
  37888. BOOL bAFBStatusAbnormal; // 在离床异常(生命体征雷达使用)
  37889. BOOL bFallAlarm; // 跌倒报警(室内雷达)
  37890. BOOL bNumAbnormal; // 人数异常(室内雷达)
  37891. char szReserved[1024]; // 保留字节
  37892. }NET_ALARM_MINIINDOOR_RADAR_ALARM_INFO;
  37893. ///@brief 内存使用率过高事件 (对应 DH_ALARM_MEMORY_OVER_LOAD)
  37894. typedef struct tagNET_ALARM_MEMORY_OVER_LOAD_INFO
  37895. {
  37896. int nChannelID; // 通道号
  37897. int nAction; // 事件动作, 0:Pulse
  37898. NET_TIME_EX stuUTC; // 事件发生的时间
  37899. double dbTotal; // 总内存大小,单位字节
  37900. double dbFree; // 剩余内存大小,单位字节
  37901. UINT nUsage; // 内存使用百分比 [0-99]
  37902. char szReserved[1024]; // 保留字节
  37903. }NET_ALARM_MEMORY_OVER_LOAD_INFO;
  37904. ///@brief CPU使用率过高事件 (对应 DH_ALARM_CPU_OVER_LOAD)
  37905. typedef struct tagNET_ALARM_CPU_OVER_LOAD_INFO
  37906. {
  37907. int nChannelID; // 通道号
  37908. int nAction; // 事件动作, 0:Pulse
  37909. NET_TIME_EX stuUTC; // 事件发生的时间
  37910. UINT nUsage; // 内存使用百分比 [0-99]
  37911. char szReserved[1024]; // 保留字节
  37912. }NET_ALARM_CPU_OVER_LOAD_INFO;
  37913. ///@brief EAS防盗报警事件(对应 DH_ALARM_EAS_ANTITHEFT)
  37914. typedef struct tagNET_ALARM_EAS_ANTITHEFT
  37915. {
  37916. int nChannelID; // 通道号
  37917. int nAction; // 事件动作, 1:开始 2:停止
  37918. NET_TIME_EX stuUTC; // 事件发生的时间
  37919. char szAlarmChannelName[128]; // EAS报警通道名称
  37920. UINT nAlarmChannel; // EAS报警通道
  37921. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  37922. char szReserved[1020]; // 保留字节
  37923. }NET_ALARM_EAS_ANTITHEFT;
  37924. ///@brief EAS发射线圈故障事件(对应 DH_ALARM_EAS_TRANSMIT_COIL)
  37925. typedef struct tagNET_ALARM_EAS_TRANSMIT_COIL
  37926. {
  37927. int nChannelID; // 通道号
  37928. int nAction; // 事件动作, 1:开始 2:停止
  37929. NET_TIME_EX stuUTC; // 事件发生的时间
  37930. char szAlarmChannelName[128]; // EAS报警通道名称
  37931. UINT nAlarmChannel; // EAS报警通道
  37932. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  37933. char szReserved[1020]; // 保留字节
  37934. }NET_ALARM_EAS_TRANSMIT_COIL;
  37935. ///@brief EAS接收线圈故障事件(对应 DH_ALARM_EAS_RECEIVE_COIL)
  37936. typedef struct tagNET_ALARM_EAS_RECEIVE_COIL
  37937. {
  37938. int nChannelID; // 通道号
  37939. int nAction; // 事件动作, 1:开始 2:停止
  37940. NET_TIME_EX stuUTC; // 事件发生的时间
  37941. char szAlarmChannelName[128]; // EAS报警通道名称
  37942. UINT nAlarmChannel; // EAS报警通道
  37943. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  37944. char szReserved[1020]; // 保留字节
  37945. }NET_ALARM_EAS_RECEIVE_COIL;
  37946. ///@brief EAS标签驻留报警事件(对应 DH_ALARM_EAS_TAG_RESIDENT)
  37947. typedef struct tagNET_ALARM_EAS_TAG_RESIDENT
  37948. {
  37949. int nChannelID; // 通道号
  37950. int nAction; // 事件动作, 1:开始 2:停止
  37951. NET_TIME_EX stuUTC; // 事件发生的时间
  37952. char szAlarmChannelName[128]; // EAS报警通道名称
  37953. UINT nAlarmChannel; // EAS报警通道
  37954. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  37955. char szReserved[1020]; // 保留字节
  37956. }NET_ALARM_EAS_TAG_RESIDENT;
  37957. ///@brief EAS天线电源故障报警事件(对应 DH_ALARM_EAS_ANTENNA_POWER_FAULT)
  37958. typedef struct tagNET_ALARM_EAS_ANTENNA_POWER_FAULT
  37959. {
  37960. int nChannelID; // 通道号
  37961. int nAction; // 事件动作, 0: 脉冲
  37962. NET_TIME_EX stuUTC; // 事件发生的时间
  37963. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  37964. char szReserved[1024]; // 保留字节
  37965. }NET_ALARM_EAS_ANTENNA_POWER_FAULT;
  37966. ///@brief 车位状态变化事件(对应 DH_ALARM_PARKING_SPACE_DETECTOR_STATE)
  37967. typedef struct tagNET_ALARM_PARKING_SPACE_DETECTOR_STATE_INFO
  37968. {
  37969. int nChannelID; // 通道号
  37970. int nAction; // 事件动作, 0: 脉冲
  37971. NET_TIME_EX stuUTC; // 事件发生的时间
  37972. int nTriggerSource; // 触发方式, 0:未知, 1:手动触发, 2:超声波检测器
  37973. UINT nLane; // 车位号
  37974. char szDetectionEquipmentID[32]; // 车位物体检测设备ID
  37975. char szCustomParkNo[32]; // 自定义车位号
  37976. int nParkingState; // 车位状态, 0:未知, 1:有车, 2:无车
  37977. char szReserved[1024]; // 保留字节
  37978. }NET_ALARM_PARKING_SPACE_DETECTOR_STATE_INFO;
  37979. ///@brief 异常事件类型
  37980. typedef enum tagEM_EXCEPTION_TYPE
  37981. {
  37982. EM_EXCEPTION_KNOWN, // 未知类型
  37983. EM_EXCEPTION_NOTALLOWED_IPLOGIN, // 不被允许的IP访问设备
  37984. EM_EXCEPTION_NOTALLOWED_TIMELOGIN, // 账户在非允许时间范围内发起登录
  37985. EM_EXCEPTION_URLERROR_OVERLIMIT, // Web路径爆破行为
  37986. EM_EXCEPTION_SESSIONNUM_OVERLIMIT, // 会话连接数超限
  37987. EM_EXCEPTION_SESSIONID_ERROR_OVERLIMIT, // 会话ID爆破行为
  37988. EM_EXCEPTION_FDEXHAUSTION, // 网络连接资源被耗尽
  37989. EM_EXCEPTION_EXCEPTIONPROGRAMRUN, // 可信环境监测到异常程序运行
  37990. EM_EXCEPTION_ACCOUNTORPWDERROROVERLIMIT, // 用户名密码爆破行为
  37991. EM_EXCEPTION_ROOTKIT_DETECTION, // Rootkit检测
  37992. EM_EXCEPTION_HIDE_PROCESS_DETECTION, // 隐藏进程检测
  37993. }EM_EXCEPTION_TYPE;
  37994. ///@brief 安全报警事件(对应 DH_ALARM_SAFETY_ABNORMAL)
  37995. typedef struct tagNET_ALARM_SAFETY_ABNORMAL_INFO
  37996. {
  37997. int nChannelID; // 通道号
  37998. int nAction; // 事件动作, 0: 脉冲
  37999. NET_TIME_EX stuUTC; // 事件发生的时间
  38000. EM_EXCEPTION_TYPE emExceptionType; // 异常事件类型
  38001. char szAddress[64]; // 来源IP地址
  38002. NET_TIME stuAbnormalTime; // 发生异常时间
  38003. char szUser[128]; // 发生的用户名
  38004. char szReserved[1024]; // 保留字节
  38005. }NET_ALARM_SAFETY_ABNORMAL_INFO;
  38006. ///@brief 请求进入休眠模式 (对应 DH_ALARM_REQUEST_IDLE_MODE)
  38007. typedef struct tagNET_ALARM_REQUEST_IDLE_MODE
  38008. {
  38009. int nChannelID; // 通道号
  38010. int nAction; // 事件动作, 0:Pulse
  38011. char szName[128]; // 事件名称
  38012. NET_TIME_EX stuUTC; // 事件发生的时间
  38013. char szReserved[1024]; // 保留字节
  38014. }NET_ALARM_REQUEST_IDLE_MODE;
  38015. ///@brief 强制进入休眠模式通知 (对应 DH_ALARM_FORCE_INTO_IDLE_MODE)
  38016. typedef struct tagNET_ALARM_FORCE_INTO_IDLE_MODE
  38017. {
  38018. int nChannelID; // 通道号
  38019. int nAction; // 事件动作, 0:Pulse
  38020. char szName[128]; // 事件名称
  38021. NET_TIME_EX stuUTC; // 事件发生的时间
  38022. char szReserved[1024]; // 保留字节
  38023. }NET_ALARM_FORCE_INTO_IDLE_MODE;
  38024. ///@brief 金融远程审批事件 (对应 DH_ALARM_REMOTE_APPROVAL)
  38025. typedef struct tagNET_ALARM_REMOTE_APPROVAL_INFO
  38026. {
  38027. int nChannelID; // 通道号
  38028. int nAction; // 事件动作, 1:开始 2:停止
  38029. NET_TIME_EX stuUTC; // 事件发生的时间,单位秒
  38030. UINT nUTCMS; // UTC时间对应的毫秒数
  38031. int nApprovalNo; // 审批单号
  38032. int nType; // 操作类型, 0-存箱, 1-取箱
  38033. int nCabinIndex; // 存取的舱位下标索引, 该字段目前作废, 不使用
  38034. char szAccessorID[64]; // 存取人ID
  38035. char szAccessorName[64]; // 存取人名称
  38036. char szReviewerID[64]; // 复核人ID
  38037. char szReviewerName[64]; // 复核人名称
  38038. int nCabinListNum; // 设备返回的存取的舱位下标数组中元素的个数, 最大值为32, 配合nCabinList[32]一起使用
  38039. int nCabinList[32]; // 存取的舱位下标数组
  38040. char szReserved[888]; // 保留字节
  38041. }NET_ALARM_REMOTE_APPROVAL_INFO;
  38042. ///@brief 动态密码锁发起初始化通知事件 (对应 DH_ALARM_DYNAMIC_PWDLOCK_FOR_INIT)
  38043. typedef struct tagNET_ALARM_DYNAMIC_PWDLOCK_FOR_INIT_INFO
  38044. {
  38045. int nChannelID; // 通道号
  38046. int nAction; // 事件动作, 1:开始 2:停止
  38047. NET_TIME_EX stuUTC; // 事件发生的时间,单位秒
  38048. UINT nUTCMS; // UTC时间对应的毫秒数
  38049. char szID[32]; // 密码锁ID
  38050. char szReserved[1024]; // 保留字节
  38051. }NET_ALARM_DYNAMIC_PWDLOCK_FOR_INIT_INFO;
  38052. ///@brief 密码锁上报随机码事件 (对应 DH_ALARM_DYNAMIC_PWDLOCK_UPLOAD_RANDOMCODE)
  38053. typedef struct tagNET_ALARM_DYNAMIC_LOCK_UPLOAD_RANDOMCODE_INFO
  38054. {
  38055. int nChannelID; // 通道号
  38056. int nAction; // 事件动作, 1:开始 2:停止
  38057. NET_TIME_EX stuUTC; // 事件发生的时间,单位秒
  38058. UINT nUTCMS; // UTC时间对应的毫秒数
  38059. char szID[32]; // 密码锁ID
  38060. char szRandCode[512]; // 锁设备开锁请求随机数
  38061. char szOpenKeyVer[64]; // 开锁密钥版本
  38062. char szReserved[1024]; // 保留字节
  38063. }NET_ALARM_DYNAMIC_LOCK_UPLOAD_RANDOMCODE_INFO;
  38064. ///@brief 密码锁发起开锁流程通知事件 (对应 DH_ALARM_DYNAMIC_PWDLOCK_FOR_OPEN)
  38065. typedef struct tagNET_ALARM_DYNAMIC_PWDLOCK_FOR_OPEN_INFO
  38066. {
  38067. int nChannelID; // 通道号
  38068. int nAction; // 事件动作, 1:开始 2:停止
  38069. NET_TIME_EX stuUTC; // 事件发生的时间,单位秒
  38070. UINT nUTCMS; // UTC时间对应的毫秒数
  38071. char szID[32]; // 密码锁ID
  38072. char szReserved[1024]; // 保留字节
  38073. }NET_ALARM_DYNAMIC_PWDLOCK_FOR_OPEN_INFO;
  38074. ///@brief 密码锁闭锁事件 (对应 DH_ALARM_DYNAMIC_PWDLOCK_CLOSE)
  38075. typedef struct tagNET_ALARM_DYNAMIC_PWDLOCK_CLOSE_INFO
  38076. {
  38077. int nChannelID; // 通道号
  38078. int nAction; // 事件动作, 1:开始 2:停止
  38079. NET_TIME_EX stuUTC; // 事件发生的时间,单位秒
  38080. UINT nUTCMS; // UTC时间对应的毫秒数
  38081. char szID[32]; // 密码锁ID
  38082. char szCloseCode[512]; // 闭锁码
  38083. char szReserved[576]; // 保留字节
  38084. }NET_ALARM_DYNAMIC_PWDLOCK_CLOSE_INFO;
  38085. ///@brief 操作类型
  38086. typedef enum tagEM_SYNCUSER_TYPE
  38087. {
  38088. EM_SYNCUSER_TYPE_UNKNOWN = -1, // 未知
  38089. EM_SYNCUSER_TYPE_ADD, // 新增
  38090. EM_SYNCUSER_TYPE_UPDATE, // 更新
  38091. EM_SYNCUSER_TYPE_REMOVE, // 删除
  38092. }EM_SYNCUSER_TYPE;
  38093. ///@brief 主备机之间用户信息改变通知事件 (对应 DH_ALARM_SYNCUSER_INFO)
  38094. typedef struct tagNET_ALARM_SYNCUSER_INFO
  38095. {
  38096. int nChannelID; // 通道号
  38097. int nAction; // 事件动作, 1:开始 2:停止
  38098. NET_TIME_EX stuUTC; // 事件发生的时间,单位秒
  38099. UINT nUTCMS; // UTC时间对应的毫秒数
  38100. char szUserID[32]; // 用户ID
  38101. EM_SYNCUSER_TYPE emType; // 操作类型
  38102. char szReserved[1020]; // 保留字节
  38103. }NET_ALARM_SYNCUSER_INFO;
  38104. ///@brief 异常登录事件 (对应 DH_ALARM_ABNORMALLOGIN)
  38105. typedef struct tagNET_ALARM_ABNORMALLOGIN_INFO
  38106. {
  38107. int nChannelID; // 通道号
  38108. int nAction; // 事件动作, 1:开始 2:停止
  38109. NET_TIME_EX stuUTC; // 事件发生的时间,单位秒
  38110. UINT nUTCMS; // UTC时间对应的毫秒数
  38111. char szReserved[1024]; // 保留字节
  38112. }NET_ALARM_ABNORMALLOGIN_INFO;
  38113. ///@brief PTZ信息事件 (对应 DH_ALARM_INTELLITRACK_EVENT)
  38114. typedef struct tagNET_ALARM_INTELLITRACK_EVENT_INFO
  38115. {
  38116. int nChannelID; // 通道号
  38117. int nAction; // 事件动作, 1:开始 2:停止
  38118. NET_TIME_EX stuUTC; // 事件发生的时间,单位秒
  38119. UINT nUTCMS; // UTC时间对应的毫秒数
  38120. UINT nEventID; // 事件编号,用来唯一标志一个事件
  38121. UINT nTrackStatus; // 跟踪状态 0 - 空闲 1 - 跟踪开始 2 - 跟踪结束
  38122. NET_PTZSPACE_UNNORMALIZED stuAbsPosition; // 云台方向与放大倍数(扩大100倍表示)
  38123. // 第一个元素为水平角度,0-36000;
  38124. // 第二个元素为垂直角度,(-18000)-(18000);
  38125. // 第三个元素为显示放大倍数,0-MaxZoom*100
  38126. char szObjectType[32]; // 物体类型,"Boat"
  38127. char szReserved[1024]; // 保留字节
  38128. }NET_ALARM_INTELLITRACK_EVENT_INFO;
  38129. ///@brief 煤气罐检测事件(对应 DH_ALARM_GAS_TANK_DETECTION)
  38130. typedef struct tagNET_ALARM_GAS_TANK_DETECTION_INFO
  38131. {
  38132. int nChannelID; // 通道号
  38133. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  38134. char szName[128]; // 事件名称
  38135. char szClass[128]; // 智能事件所属大类
  38136. UINT nRuleID; // 智能事件规则编号
  38137. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  38138. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  38139. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  38140. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  38141. NET_TIME_EX stuUTC; // 事件发生的时间
  38142. char byReserved[4]; // 仅用于字节对齐,无实际意义
  38143. UINT nUTCMS; // 事件时间毫秒数
  38144. UINT nEventID; // 事件ID
  38145. DH_MSG_OBJECT_EX2 stuObject; // 检测目标的物体信息
  38146. DH_MSG_OBJECT_EX2 stuObjects[100]; // 检测目标的物体信息数组
  38147. int nObjectNum; // 检测到的物体个数(配合stuObjects使用)
  38148. int nDetectRegionNum; // 检测区个数
  38149. NET_POINT stuDetectRegion[20]; // 检测区
  38150. int nCount; // 规则被触发生次数
  38151. EM_EVENT_LEVEL emEventLevel; // 事件级别
  38152. UINT nPresetID; // 事件触发的预置点号,从1开始,没有该字段,表示预置点未知
  38153. char szPresetName[64]; // 事件触发的预置点名称
  38154. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  38155. char szReserved[1024]; // 保留字节
  38156. }NET_ALARM_GAS_TANK_DETECTION_INFO;
  38157. ///@brief 录像丢帧报警事件(对应 DH_ALARM_LOSS_FRAME_ALARM)
  38158. typedef struct tagNET_ALARM_LOSS_FRAME_ALARM_INFO
  38159. {
  38160. int nChannelID; // 通道号
  38161. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  38162. NET_TIME_EX stuUTC; // 事件发生的时间
  38163. char szGroup[32]; // 盘组类型,ReadWrite:读写组;Redundant:冗余组
  38164. char szReserved[1024]; // 保留字节
  38165. }NET_ALARM_LOSS_FRAME_ALARM_INFO;
  38166. ///@brief 智能模块温度异常事件(对应 DH_ALARM_INTELLI_MODULE_HIGH_TEMP)
  38167. typedef struct tagNET_ALARM_INTELLI_MODULE_HIGH_TEMP_INFO
  38168. {
  38169. int nChannelID; // 通道号
  38170. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  38171. NET_TIME_EX stuUTC; // 事件发生的时间
  38172. char szChip[16]; // 由模块类型和芯片ID组成,模块芯片ID即槽位号
  38173. int nCPUTemperature; // CPU当前温度
  38174. int nGPUTemperature; // GPU当前温度
  38175. char szReserved[1024]; // 保留字节
  38176. }NET_ALARM_INTELLI_MODULE_HIGH_TEMP_INFO;
  38177. ///@brief 智能模块断线事件(对应 DH_ALARM_INTELLI_MODULE_OFFLINE)
  38178. typedef struct tagNET_ALARM_INTELLI_MODULE_OFFLINE_INFO
  38179. {
  38180. int nChannelID; // 通道号
  38181. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  38182. NET_TIME_EX stuUTC; // 事件发生的时间
  38183. char szChip[16]; // 由模块类型和芯片ID组成,模块芯片ID即槽位号
  38184. char szReserved[1024]; // 保留字节
  38185. }NET_ALARM_INTELLI_MODULE_OFFLINE_INFO;
  38186. ///@brief SSD健康故障错误类型
  38187. typedef enum tagEM_SSD_ERROR_TYPE
  38188. {
  38189. EM_SSD_ERROR_TYPE_UNKNOWN,
  38190. EM_SSD_ERROR_TYPE_SSD_REMAIN_LIFE_FAILURE, // SSD剩余寿命异常
  38191. }EM_SSD_ERROR_TYPE;
  38192. ///@brief SSD健康故障事件(对应 DH_ALARM_SSD_HEALTH_FAILURE)
  38193. typedef struct tagNET_ALARM_SSD_HEALTH_FAILURE_INFO
  38194. {
  38195. int nChannelID; // 通道号
  38196. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  38197. NET_TIME_EX stuUTC; // 事件发生的时间
  38198. char szName[128]; // 事件名称
  38199. char szDevice[64]; // 设备名称
  38200. EM_SSD_ERROR_TYPE emError; // 错误类型
  38201. char szReserved[1024]; // 保留字节
  38202. }NET_ALARM_SSD_HEALTH_FAILURE_INFO;
  38203. ///@brief 野保相机报警上报事件 (对应 DH_ALARM_YE_BAO_ALARM)
  38204. typedef struct tagALARM_YE_BAO_ALARM_INFO
  38205. {
  38206. int nAction; // 事件动作 0:脉冲
  38207. int nChannel; // 通道号
  38208. char szName[128]; // 事件名称
  38209. int nEventID; // 事件ID
  38210. NET_TIME_EX stuRealUTC; // 事件发生的时间,标准的(不带时区偏差的)UTC时间
  38211. char szDeviceID[64]; // 设备ID
  38212. int nFileType; // 上传文件类型, 0: 未知, 1: 图片(一个URL), 2: 视频(两个URL,视频和缩略图)
  38213. char szFileUrl[2][256]; // 上传文件的URL,图片一个URL,视频两个URL(视频和缩略图)
  38214. NET_TIME_EX stuAlarmTime; // 图片上报时间,标准UTC时间
  38215. UINT nSignalStrength; // 信号强度,百分比,取值[0,100]
  38216. UINT nPower; // 剩余电量,百分比,取值[0,100]
  38217. UINT nSDTotal; // SD卡总空间,单位MB
  38218. UINT nSDFree; // SD卡剩余空间,单位MB
  38219. double dbTemperature; // 温度,单位摄氏度
  38220. double dbLongitude; // 经度
  38221. double dbLatitude; // 纬度
  38222. char szReserved[1024]; // 保留字节
  38223. }ALARM_YE_BAO_ALARM_INFO;
  38224. ///@brief 拾音器工作状态
  38225. typedef enum tagEM_AI_PICKUP_WORK_STATE
  38226. {
  38227. EM_AI_PICKUP_WORK_STATE_UNKNOWN, // 未知
  38228. EM_AI_PICKUP_WORK_STATE_WORKING, // 工作中
  38229. EM_AI_PICKUP_WORK_STATE_OFFLINE, // 离线
  38230. EM_AI_PICKUP_WORK_STATE_ERROR, // 拾音器内部异常
  38231. }EM_AI_PICKUP_WORK_STATE;
  38232. ///@brief 拾音器工作状态报警事件 (对应 DH_ALARM_AI_PICKUP_WORK_STATE)
  38233. typedef struct tagALARM_AI_PICKUP_WORK_STATE_INFO
  38234. {
  38235. int nAction; // 事件动作 0:脉冲
  38236. int nChannel; // 通道号
  38237. char szName[128]; // 事件名称
  38238. int nEventID; // 事件ID
  38239. NET_TIME_EX stuUTC; // 事件发生的时间
  38240. EM_AI_PICKUP_WORK_STATE emState; // 拾音器工作状态
  38241. char szReserved[1020]; // 保留字节
  38242. }ALARM_AI_PICKUP_WORK_STATE_INFO;
  38243. ///@brief 智能方案大类变更报警事件 (对应 DH_ALARM_INTELLI_TYPE_CHANGE)
  38244. typedef struct tagALARM_INTELLI_TYPE_CHANGE_INFO
  38245. {
  38246. int nAction; // 事件动作 0:脉冲
  38247. int nChannel; // 通道号
  38248. char szName[128]; // 事件名称
  38249. int nTypeListAfterChangeCount; // 智能大类变更后使能的大类列表个数
  38250. int nTypeListBeforeChangeCount; // 智能大类变更前使能的大类列表个数
  38251. EM_SCENE_CLASS_TYPE emTypeListAfterChange[16]; // 智能大类变更后使能的大类列表
  38252. EM_SCENE_CLASS_TYPE emTypeListBeforeChange[16]; // 智能大类变更前使能的大类列表
  38253. NET_TIME_EX stuUTC; // 事件发生的时间
  38254. NET_TIME_EX stuLocaleTime; // 设备本地时间(计算了时区和夏令时)
  38255. char szReserved[1024]; // 保留字节
  38256. }ALARM_INTELLI_TYPE_CHANGE_INFO;
  38257. ///@brief 物体进入还是离开
  38258. typedef enum tagEM_CAR_PASSING_MOVE_STATE
  38259. {
  38260. EM_CAR_PASSING_MOVE_STATE_UNKNOWN, // 未知
  38261. EM_CAR_PASSING_MOVE_STATE_ENTER, // 进入
  38262. EM_CAR_PASSING_MOVE_STATE_LEAVE, // 离开
  38263. }EM_CAR_PASSING_MOVE_STATE;
  38264. ///@brief 车辆进出信息
  38265. typedef struct tagNET_CAR_PASSING_INFO
  38266. {
  38267. UINT nCarId; // 车辆物体ID
  38268. UINT nLane; // 车道号
  38269. char szPlateNumber[32]; // 车牌号码
  38270. char szPlateColor[32]; // 车牌颜色
  38271. int nSpeed; // 车速,单位:km/h,255表示无测速
  38272. UINT nCarSize; // 大小车类型, 0大车 1小车
  38273. EM_CAR_PASSING_MOVE_STATE emMoveState; // 物体进入还是离开
  38274. NET_TIME_EX stuTime; // 车辆进出时间,设备本地时间
  38275. UINT nRoadwayNumber; // 自定义车道号
  38276. UINT nCoilID; // 线圈编号,范围:0-65535
  38277. double dbCarX; // 车辆与所有车道的中心点(中心点在设备所处位置,且垂直于车道方向的直线上),X轴方向(垂直于车道方向)的距离
  38278. double dbCarY; // 车辆与所有车道的中心点(中心点在设备所处位置,且垂直于车道方向的直线上),Y轴方向(平行于车道方向)的距离
  38279. double dbCarAngle; // 车辆与所有车道的中心点(中心点在设备所处位置且垂直于车道方向的直线上)的角度
  38280. char szReserved[128]; // 保留字节
  38281. }NET_CAR_PASSING_INFO;
  38282. ///@brief 车辆进出虚拟线圈状态事件 (对应 DH_ALARM_TRAFFIC_CAR_PASSING)
  38283. typedef struct tagALARM_TRAFFIC_CAR_PASSING_INFO
  38284. {
  38285. int nAction; // 事件动作 0:脉冲
  38286. int nChannel; // 通道号
  38287. char szName[128]; // 事件名称
  38288. int nEventID; // 事件ID
  38289. NET_TIME_EX stuUTC; // 事件发生的时间,设备本地时间
  38290. UINT nUTCMS; // 事件发生时间,表示毫秒
  38291. UINT nTimeZone; // 时区索引,参见时区列表DH_TIME_ZONE_TYPE
  38292. UINT nFrameSequence; // 视频分析帧序号
  38293. int nCarPassingCount; // 车辆进出个数
  38294. NET_CAR_PASSING_INFO stuCarPassing[16]; // 车辆进出信息
  38295. char szReserved[1024]; // 保留字节
  38296. }ALARM_TRAFFIC_CAR_PASSING_INFO;
  38297. ///@brief 黑臭等级
  38298. typedef enum tagEM_SMELLY_LEVEL
  38299. {
  38300. EM_SMELLY_LEVEL_UNKNOWN, // 未知
  38301. EM_SMELLY_LEVEL_NORMAL, // 正常
  38302. EM_SMELLY_LEVEL_LIGHT, // 轻度污染
  38303. EM_SMELLY_LEVEL_HEAVY, // 重度污染
  38304. }EM_SMELLY_LEVEL;
  38305. ///@brief 水质检测上报数据信息
  38306. typedef struct tagNET_WATER_DETECTION_UPLOAD_INFO
  38307. {
  38308. float fPH; // PH值 范围(1-14)
  38309. float fNTU; // 浊度值 范围(0-500NTU)
  38310. float fNH3_N; // 氨氮值 范围(0-50mg/l)
  38311. float fTN; // 总氮值 范围(0-50mg/l)
  38312. float fSD; // 透明度值 范围(0-30 m)
  38313. float fCOD; // 化学需氧量 范围(0-100mg/l)
  38314. float fNN; // 亚硝酸盐氮 范围(0-500mg/l)
  38315. float fDO; // 溶解氧 范围(0-10 mg/l)
  38316. float fChl_a; // 叶绿素a 范围(0-300 ug/l)
  38317. float fTP; // 总磷 范围0-5mg/L
  38318. float fCODMn; // 高锰酸盐指数范围(0-100mg/l)
  38319. float fSS; // 悬浮物 范围(0-1000mg/l)
  38320. float fBOD_5; // 五日生化需氧量 范围(0-50mg/l)
  38321. float fNO3_N; // 硝酸盐 范围(0-500mg/l)
  38322. float fTSI; // 富营养状况指数 范围无
  38323. EM_SMELLY_LEVEL emSmellyLevel; // 黑臭等级
  38324. char szReserved[512]; // 预留字节
  38325. }NET_WATER_DETECTION_UPLOAD_INFO;
  38326. ///@brief 事件报警类型
  38327. typedef enum tagEM_WATER_DETECTION_ALARM_TYPE
  38328. {
  38329. EM_WATER_DETECTION_ALARM_TYPE_UNKNOWN, // 未知
  38330. EM_WATER_DETECTION_ALARM_TYPE_QUALITY, // 水质类别
  38331. EM_WATER_DETECTION_ALARM_TYPE_PH, // PH
  38332. EM_WATER_DETECTION_ALARM_TYPE_NTU, // 浊度值
  38333. EM_WATER_DETECTION_ALARM_TYPE_NH3_N, // 氨氮值
  38334. EM_WATER_DETECTION_ALARM_TYPE_TN, // 总氮值
  38335. EM_WATER_DETECTION_ALARM_TYPE_SD, // 透明度值
  38336. EM_WATER_DETECTION_ALARM_TYPE_COD, // 化学需氧量
  38337. EM_WATER_DETECTION_ALARM_TYPE_NN, // 亚硝酸盐氮
  38338. EM_WATER_DETECTION_ALARM_TYPE_DO, // 溶解氧
  38339. EM_WATER_DETECTION_ALARM_TYPE_CHL_A, // 叶绿素a
  38340. EM_WATER_DETECTION_ALARM_TYPE_TP, // 总磷
  38341. EM_WATER_DETECTION_ALARM_TYPE_CODMN, // 高锰酸盐指数范围
  38342. EM_WATER_DETECTION_ALARM_TYPE_SS, // 悬浮物
  38343. EM_WATER_DETECTION_ALARM_TYPE_BOD_5, // 五日生化需氧量
  38344. EM_WATER_DETECTION_ALARM_TYPE_NO3_N, // 硝酸盐
  38345. EM_WATER_DETECTION_ALARM_TYPE_TSI, // 富营养状况指数
  38346. EM_WATER_DETECTION_ALARM_TYPE_SMELLY_LEVEL, // 黑臭等级
  38347. }EM_WATER_DETECTION_ALARM_TYPE;
  38348. ///@brief 水质检测上报事件 对应 DH_ALARM_WATER_QUALITY_DETECTION
  38349. typedef struct tagALARM_WATER_QUALITY_DETECTION_INFO
  38350. {
  38351. int nChannelID; // 通道号
  38352. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  38353. char szName[128]; // 事件名称
  38354. char szClass[16]; // 智能事件所属大类
  38355. NET_TIME_EX stuUTC; // 事件发生的时间
  38356. NET_WATER_DETECTION_UPLOAD_INFO stuUploadInfo; // 水质检测上报数据信息
  38357. EM_WATER_DETECTION_ALARM_TYPE emAlarmType[32]; // 事件报警类型
  38358. int nAlarmTypeNum; // 事件报警类型个数
  38359. char szReserved[1024]; // 预留字节
  38360. }ALARM_WATER_QUALITY_DETECTION_INFO;
  38361. #define VTS_STATE_LONGNUMBER_LEN 24
  38362. ///@brief VTS
  38363. typedef enum tagVTS_STATE
  38364. {
  38365. EM_VTS_STATE_UNKNOWN = 0 ,
  38366. EM_VTS_STATE_BUSY , // "Busy" 忙碌
  38367. EM_VTS_STATE_IDLE , // "Idle" 空闲
  38368. }VTS_STATE;
  38369. ///@brief VTS状态上报
  38370. typedef struct tagALARM_VTSTATE_UPDATE_INFO
  38371. {
  38372. int nChannelID; // 通道号
  38373. NET_TIME stuTime; // 事件发生的时间
  38374. VTS_STATE emState; // 设备对讲状态
  38375. char szLongNum[VTS_STATE_LONGNUMBER_LEN]; // 长号
  38376. BYTE byReserved[1024]; // 保留字节
  38377. } ALARM_VTSTATE_UPDATE_INFO;
  38378. ///@brief 事件类型DH_ALARM_VIDEO_TALK_PATH(对讲路径事件)对应的数据块描述信息
  38379. typedef struct tagALARM_VIDEO_TALK_PATH_INFO
  38380. {
  38381. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  38382. int nChannelID; // 通道号
  38383. double dbPTS; // 时间戳(单位是毫秒)
  38384. NET_TIME_EX stuTime; // 事件发生的时间
  38385. char szSrcDevID[DH_COMMON_STRING_128]; // 呼叫源设备唯一ID(ID取值参照DevList配置)
  38386. char szDstDevID[DH_COMMON_STRING_128]; // 呼叫目的设备唯一ID(ID取值参照DevList配置)
  38387. BYTE byReserved[1024]; // 保留字节
  38388. } ALARM_VIDEO_TALK_PATH_INFO;
  38389. ///@brief 警戒区事件(对应事件 DH_EVENT_CROSSREGION_DETECTION)
  38390. typedef struct tagALARM_EVENT_CROSSREGION_INFO
  38391. {
  38392. DWORD dwSize;
  38393. int nChannelID; // 通道号
  38394. double PTS; // 时间戳(单位是毫秒)
  38395. NET_TIME_EX UTC; // 事件发生的时间
  38396. int nEventID; // 事件ID
  38397. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  38398. NET_CROSSREGION_DIRECTION_INFO emDirection; // 警戒区入侵方向
  38399. NET_CROSSREGION_ACTION_INFO emActionType; // 警戒区检测动作类型
  38400. int nOccurrenceCount; // 规则被触发生次数
  38401. int nLevel; // 事件级别,GB30147需求项
  38402. char szName[DH_COMMON_STRING_128]; // 名称
  38403. BOOL bIsObjectInfo; // 是否检测到物体信息
  38404. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  38405. int nRetObjectNum; // 实际返回多个检测到的物体信息
  38406. DH_MSG_OBJECT stuObjects[MAX_TARGET_OBJECT_NUM]; // 多个检测到的物体信息
  38407. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  38408. char szMac[32]; // 事件触发源的Mac地址
  38409. char szReserved[1024]; // 预留字节
  38410. }ALARM_EVENT_CROSSREGION_INFO;
  38411. ///@brief 物品遗留事件(对应事件 DH_EVENT_LEFT_DETECTION)
  38412. typedef struct tagALARM_EVENT_LEFT_INFO
  38413. {
  38414. DWORD dwSize;
  38415. int nChannelID; // 通道号
  38416. double PTS; // 时间戳(单位是毫秒)
  38417. NET_TIME_EX UTC; // 事件发生的时间
  38418. int nEventID; // 事件ID
  38419. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  38420. int nOccurrenceCount; // 规则被触发生次数
  38421. int nLevel; // 事件级别,GB30147需求项
  38422. short nPreserID; // 事件触发的预置点号,从1开始(没有表示未知)
  38423. char szPresetName[64]; // 事件触发的预置名称
  38424. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  38425. }ALARM_EVENT_LEFT_INFO;
  38426. ///@brief 目标信息
  38427. typedef struct tagNET_EVENT_WHOLE_FACE_INFO
  38428. {
  38429. NET_EULER_ANGLE stuFaceCaptureAngle; // 目标在抓拍图片中的角度信息, nPitch:抬头低头的俯仰角, nYaw左右转头的偏航角, nRoll头在平面内左偏右偏的翻滚角
  38430. // 角度值取值范围[-90,90], 三个角度值都为999表示此角度信息无效
  38431. NET_ANGEL_RANGE stuAngelRange[3]; // 目标抓拍角度范围(角度最小值,最大值), 三个角度依次分别是Pitch抬头低头,仰俯角;yaw是左右转头,偏航角;Roll是头在平面内左偏右偏,翻滚角
  38432. BYTE byReserved[256]; // 保留字段
  38433. } NET_EVENT_WHOLE_FACE_INFO;
  38434. ///@brief 目标检测事件(对应事件 DH_EVENT_FACE_DETECTION)
  38435. typedef struct tagALARM_EVENT_FACE_INFO
  38436. {
  38437. DWORD dwSize;
  38438. int nChannelID; // 通道号
  38439. double PTS; // 时间戳(单位是毫秒)
  38440. NET_TIME_EX UTC; // 事件发生的时间
  38441. int nEventID; // 事件ID
  38442. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  38443. int nFaceCount; // 目标个数
  38444. NET_EVENT_WHOLE_FACE_INFO stuFaces[10]; // 目标信息
  38445. UINT nPresetID; // 事件触发的预置点号, 从1开始
  38446. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  38447. }ALARM_EVENT_FACE_INFO;
  38448. ///@brief IPC报警,IPC通过DVR或NVR上报的本地报警(对应事件 DH_ALARM_IPC)
  38449. typedef struct tagALARM_IPC_INFO
  38450. {
  38451. DWORD dwSize;
  38452. int nChannelID; // 通道号
  38453. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  38454. NET_TIME_EX UTC; // 事件发生的时间
  38455. char szName[MAX_ALARM_CHANNEL_NAME_LEN]; // 报警通道名称
  38456. int nAlarmChannel; // 报警输入通道号,从0开始。没有该字段表示无法区分报警通道号。
  38457. }ALARM_IPC_INFO;
  38458. ///@brief NAS文件任务类型
  38459. typedef enum tagNASFILE_STATUS_TYPE
  38460. {
  38461. EM_NASFILE_STATUS_TYPE_UNKNOW,
  38462. EM_NASFILE_STATUS_TYPE_COPY, //拷贝
  38463. EM_NASFILE_STATUS_TYPE_MOVE, //移动
  38464. }NASFILE_STATUS_TYPE;
  38465. ///@brief NAS文件任务状态
  38466. typedef enum tagNASFILE_STATUS_STATE
  38467. {
  38468. EM_NASFILE_STATUS_STATE_UNKNOW,
  38469. EM_NASFILE_STATUS_STATE_FAILED, //失败
  38470. EM_NASFILE_STATUS_STATE_SUCCESSED, //成功
  38471. }NASFILE_STATUS_STATE;
  38472. ///@brief NAS文件状态事件(对应事件 DH_ALARM_NASFILE_STATUS)
  38473. typedef struct tagALARM_NASFILE_STATUS_INFO
  38474. {
  38475. double dbPTS; // 时间戳(单位是毫秒)
  38476. NET_TIME_EX stuTime; // 事件发生的时间
  38477. NASFILE_STATUS_STATE emTaskState; // 任务状态
  38478. char szTaskID[DH_COMMON_STRING_128]; // 任务ID
  38479. NASFILE_STATUS_TYPE emTaskType; // 文件任务类型
  38480. int nSrcNum; // 源文件(夹)数量
  38481. char szSrcList[MAX_NASFILE_NUM][DH_COMMON_STRING_128]; // 源文件(夹)名列表
  38482. char szDstPath[DH_COMMON_STRING_128]; // 目的路径
  38483. int nProgress; // 任务进度
  38484. BYTE byReserved[1028]; // 保留字节
  38485. } ALARM_NASFILE_STATUS_INFO;
  38486. ///@brief 设备呼叫中取消呼叫事件(对应事件 DH_ALARM_TALKING_CANCELCALL)
  38487. typedef struct tagALARM_TALKING_CANCELCALL_INFO
  38488. {
  38489. NET_TIME_EX stuTime; // 事件发生的时间
  38490. char szCallID[DH_COMMON_STRING_32]; // 呼叫ID
  38491. }ALARM_TALKING_CANCELCALL_INFO;
  38492. ///@brief 人群密度检测事件(对应事件 DH_ALARM_CROWD_DETECTION)
  38493. typedef struct tagALARM_CROWD_DETECTION_INFO
  38494. {
  38495. int nChannelID; // 通道号
  38496. int nEventID; // 事件ID
  38497. double PTS; // 时间戳(单位是毫秒)
  38498. NET_TIME_EX UTC; // 事件发生的时间
  38499. int nEventAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  38500. EM_ALARM_TYPE emAlarmType; // 报警业务类型
  38501. char szName[MAX_CROWD_DETECTION_NAME_LEN]; // 事件名称
  38502. int nCrowdListNum; // 返回的全局拥挤人群密度列表个数
  38503. int nRegionListNum; // 返回的人数超限的报警区域ID列表个数
  38504. NET_CROWD_LIST_INFO stuCrowdList[MAX_CROWD_LIST_NUM]; // 全局拥挤人群密度列表信息
  38505. NET_REGION_LIST_INFO stuRegionList[MAX_REGION_LIST_NUM]; // 人数超限的报警区域ID列表信息
  38506. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  38507. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  38508. BYTE byReserved[896]; // 保留扩展字节
  38509. }ALARM_CROWD_DETECTION_INFO;
  38510. ///@brief VTS 对接处理状态
  38511. typedef enum tagEM_VTS_CALLING_STATE
  38512. {
  38513. EM_VTS_CALLING_STATE_UNKNOWN, // 未知
  38514. EM_VTS_CALLING_STATE_ANSWER, // 接听
  38515. EM_VTS_CALLING_STATE_HANGUP, // 挂断
  38516. EM_VTS_CALLING_STATE_MISSED, // 未接
  38517. }EM_VTS_CALLING_STATE;
  38518. ///@brief VTS呼叫处理状态事件(对应事件 DH_ALARM_VTS_CALLING_STATE)
  38519. typedef struct tagALARM_VTS_CALLING_STATE_INFO
  38520. {
  38521. char szName[128]; // 事件名称
  38522. int nChannelID; // 通道号
  38523. int nAction; // 事件动作,0表示脉冲事件
  38524. double PTS; // 时间戳(单位是毫秒)
  38525. NET_TIME_EX UTC; // 事件发生的时间
  38526. EM_VTS_CALLING_STATE emCallingState; // 对接处理状态
  38527. char szDevID[32]; // 前端报警设备的设备编号
  38528. char szDevIp[64]; // 前端报警设备的ip
  38529. BYTE byReserved[896]; // 预留字节
  38530. }ALARM_VTS_CALLING_STATE_INFO;
  38531. ///@brief 物品探测安全结果等级
  38532. typedef enum tagEM_DETECT_SAFE_GRADE
  38533. {
  38534. EM_DETECT_SAFE_GRADE_UNKNOWN, // 安全等级未知
  38535. EM_DETECT_SAFE_GRADE_SAFE, // 安全等级为安全
  38536. EM_DETECT_SAFE_GRADE_DANGER, // 安全等级为危险
  38537. }EM_DETECT_SAFE_GRADE;
  38538. ///@brief 探测物品结果信息
  38539. typedef struct tagITEM_INFO_ARRAY
  38540. {
  38541. char szName[128]; // 物品名字
  38542. UINT nConcentration; // 浓度
  38543. BYTE bReserved[892]; // 预留字节
  38544. } NET_ITEM_INFO;
  38545. ///@brief 毒品炸药探测事件 (对应事件 DH_ALARM_DRUG_EXPLOSIVE_DETECTION)
  38546. typedef struct tagALARM_DRUG_EXPLOSIVE_DETECTION_INFO
  38547. {
  38548. DWORD dwSize; // 结构体大小
  38549. int nChannelID; // 通道号
  38550. int nAction; // 事件动作 0表示脉冲事件
  38551. NET_TIME_EX UTC; // 事件发生的时间
  38552. char szUserName[128]; // 毒品探测员名字
  38553. EM_DETECT_SAFE_GRADE emDetectSafeGrade; // 探测结果安全等级
  38554. NET_ITEM_INFO stuObjectInfo[16]; // 物品数组
  38555. int nObjectNum; // 毒品事件物品个数
  38556. }ALARM_DRUG_EXPLOSIVE_DETECTION_INFO;
  38557. ///@brief 是否为金属容器
  38558. typedef enum tagEM_METAL_CONTAINER
  38559. {
  38560. EM_METAL_CONTAINER_UNKNOWN, // 未知
  38561. EM_METAL_CONTAINER_NOMETAL, // 非金属容器
  38562. EM_METAL_CONTAINER_METAL, // 金属容器
  38563. }EM_METAL_CONTAINER_TYPE;
  38564. ///@brief 液体探测事件结果信息
  38565. typedef struct tagITEM_LIQUID_INFO_ARRY
  38566. {
  38567. EM_METAL_CONTAINER_TYPE emMetalcontainer; // 是否是金属容器
  38568. EM_DETECT_SAFE_GRADE emItemGrade; // 物品等级
  38569. BYTE bReserved[892]; // 预留字节
  38570. } NET_LIQUID_ITEM_INFO;
  38571. ///@brief 液体探测事件 (对应事件 DH_ALARM_LIQUID_DETECTION)
  38572. typedef struct tagALARM_LIQUID_DETECTION_INFO
  38573. {
  38574. DWORD dwSize; // 结构体大小
  38575. int nChannelID; // 通道号
  38576. int nAction; // 事件动作 0表示脉冲事件
  38577. NET_TIME_EX UTC; // 事件发生的时间
  38578. EM_DETECT_SAFE_GRADE emDetectSafeGrade; // 探测结果安全等级
  38579. NET_LIQUID_ITEM_INFO stuLiquidObjectInfo[16]; // 液体探测时间数组
  38580. int nObjectNum; // 液体事件物品个数
  38581. }ALARM_LIQUID_DETECTION_INFO;
  38582. ///@brief 计算特征向量结果
  38583. typedef enum tagEM_ABSTRACT_STATE
  38584. {
  38585. EM_ABSTRACT_UNKNOWN, // 未知
  38586. EM_ABSTRACT_SUCCESS, // 重建成功
  38587. EM_ABSTRACT_FALSE, // 重建失败
  38588. EM_ABSTRACT_PROCESS, // 重建过程中(仅针对GroupID)
  38589. } EM_ABSTRACT_STATE;
  38590. ///@brief 特征建模失败错误码
  38591. typedef enum tagEM_FEATURE_ERROR_CODE
  38592. {
  38593. EM_FEATURE_ERROR_SUCCESS, // 成功
  38594. EM_FEATURE_ERROR_UNKNOWN, // 未知
  38595. EM_FEATURE_ERROR_IMAGE_FORMAT_ERROR, // 图片格式问题
  38596. EM_FEATURE_ERROR_NOFACE_OR_NOTCLEAR, // 无目标或不够清晰
  38597. EM_FEATURE_ERROR_MULT_FACES, // 多个目标
  38598. EM_FEATURE_ERROR_IMAGH_DECODE_FAILED, // 图片解码失败
  38599. EM_FEATURE_ERROR_NOT_SUGGEST_STORAGE, // 不推荐入库
  38600. EM_FEATURE_ERROR_DATABASE_OPERATE_FAILED, // 数据库操作失败
  38601. EM_FEATURE_ERROR_GET_IMAGE_FAILED, // 获取图片失败
  38602. EM_FEATURE_ERROR_SYSTEM_EXCEPTION, // 系统异常(如Licence失效、建模分析器未启动导致的失败)
  38603. EM_FEATURE_ERROR_UNDERSIZED_WIDTH, // 目标宽度过小
  38604. EM_FEATURE_ERROR_UNDERSIZED_INTERPUPILLARY_DISTANCE,// 目标眼瞳间距过小
  38605. EM_FEATURE_ERROR_FACE_ALIGNMENT_SCORE_LOW, // 目标脸对齐分数过低
  38606. EM_FEATURE_ERROR_OVERSIZED_FACE_PITCH_ANGLE, // 目标俯仰角过大
  38607. EM_FEATURE_ERROR_OVERSIZED_FACE_YAW_ANGLE, // 目标偏航角过大
  38608. EM_FEATURE_ERROR_OVERSIZED_FACE_ROLL_ANGLE, // 目标滚转角过大
  38609. EM_FEATURE_ERROR_FACE_QUALITY_LOW, // 目标质量分过低
  38610. EM_FEATURE_ERROR_FACE_DEFINITION_LOW, // 目标清晰度过低
  38611. EM_FEATURE_ERROR_EYE_OCCLUSION, // 目标眼部遮挡
  38612. EM_FEATURE_ERROR_FOREHEAD_OCCLUSION, // 目标额头遮挡
  38613. EM_FEATURE_ERROR_MOUTH_OCCLUSION, // 目标嘴巴遮挡
  38614. EM_FEATURE_ERROR_INCOMPLETE_FACE, // 目标不完整
  38615. EM_FEATURE_ERROR_ABNORMAL_FACE_EXPOSURE, // 目标光照过曝或者欠曝
  38616. EM_FEATURE_ERROR_FACE_SATURATION_LOW, // 目标饱和度过低
  38617. EM_FEATURE_ERROR_FACE_AREA_OVER_PROPORTION, // 目标区域在图像中占比过大
  38618. EM_FEATURE_ERROR_FACE_DETECTION_FAILED // 图像中未检出目标
  38619. }EM_FEATURE_ERROR_CODE;
  38620. ///@brief 目标特征向量重建结果信息
  38621. typedef struct tagFACE_FEATURE_ABSTRACT_INFO
  38622. {
  38623. EM_ABSTRACT_STATE emAbstractState; // 计算特征向量结果
  38624. int nProcess; // 人员组重建进度,百分比
  38625. char szUID[DH_MAX_PERSON_ID_LEN]; // 重建完成的人员编号, IVSS支持
  38626. char szGroupId[DH_COMMON_STRING_64]; // 重建完成的人员组ID, IPC支持
  38627. UINT nSucceedCnt; // 人员组建模成功的个数,IPC支持
  38628. UINT nFailedCnt; // 人员组建模失败的个数,IPC支持
  38629. EM_FEATURE_ERROR_CODE emFeatureError; // 建模失败记录的错误原因(当FailedCnt大于0时有效);IPC支持
  38630. UINT nToken; // 该次建模的token值,建模时提供原样返回,IPC支持
  38631. BYTE byReserved[496]; // 保留扩展字节
  38632. } FACE_FEATURE_ABSTRACT_INFO;
  38633. ///@brief 目标特征向量重建结果事件(对应事件DH_ALARM_FACE_FEATURE_ABSTRACT)
  38634. typedef struct tagALARM_FACE_FEATURE_ABSTRACT_INFO
  38635. {
  38636. int nEventID; // 事件ID
  38637. NET_TIME_EX UTC; // 事件发生的时间
  38638. double PTS; // 时间戳(单位是毫秒)
  38639. BYTE byReserved1[4]; // 字节对齐
  38640. int nRetAbstractInfo; // 实际返回的目标特征向量重建结果个数
  38641. FACE_FEATURE_ABSTRACT_INFO stuAbstractInfo[MAX_ABSTRACT_INFO_NUM]; // 目标特征向量重建结果
  38642. BYTE byReserved[512]; // 保留扩展字节
  38643. } ALARM_FACE_FEATURE_ABSTRACT_INFO;
  38644. ///@brief 录像计划改变事件(对应事件 DH_ALARM_RECORD_SCHEDULE_CHANGE)
  38645. typedef struct tagALARM_RECORD_SCHEDULE_CHANGE_INFO
  38646. {
  38647. int nChannelID; // 通道号
  38648. int nEventID; // 事件ID
  38649. double dbPTS; // 时间戳(单位是毫秒)
  38650. NET_TIME_EX stuTime; // 事件发生的时间
  38651. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  38652. char szUser[DH_COMMON_STRING_128]; // 操作用户
  38653. BYTE byReserved[1024]; // 保留字节
  38654. } ALARM_RECORD_SCHEDULE_CHANGE_INFO;
  38655. ///@brief NTP配置修改事件(对应事件 DH_ALARM_NTP_CHANGE)
  38656. typedef struct tagALARM_NTP_CHANGE_INFO
  38657. {
  38658. int nEventID; // 事件ID
  38659. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  38660. double dbPTS; // 时间戳(单位是毫秒)
  38661. NET_TIME_EX stuTime; // 事件发生的时间
  38662. char szUser[DH_COMMON_STRING_128]; // 操作用户
  38663. BYTE byReserved[1028]; // 保留扩展字节
  38664. } ALARM_NTP_CHANGE_INFO;
  38665. ///@brief Raid同步状态
  38666. typedef enum tagEM_RAID_SYNC_STATE
  38667. {
  38668. EM_RAID_SYNC_STATE_UNKNOWN = -1, // 未知
  38669. EM_RAID_SYNC_STATE_SELFADAPTION, // 自适应(默认值)
  38670. EM_RAID_SYNC_STATE_SYNCPRIORITY, // 同步优先,I/O优先分给Raid同步
  38671. EM_RAID_SYNC_STATE_BUSINESSPRIORITY, // 业务优先,I/O优先分给硬盘写数据
  38672. EM_RAID_SYNC_STATE_EQUILIBRIUM, // 均衡
  38673. }EM_RAID_SYNC_STATE;
  38674. ///@brief 硬盘Smart信息
  38675. typedef struct tagNET_HDDSMART_INFO
  38676. {
  38677. int nID; // 属性ID
  38678. int nCurrent; // 属性值
  38679. char szName[DH_COMMON_STRING_64]; // 属性名
  38680. int nWorst; // 最大出错值
  38681. int nThreshold; // 阈值
  38682. char szRaw[DH_COMMON_STRING_32]; // 实际值,可能不仅是数字,需要字符串返回
  38683. int nPredict; // 状态,对硬盘状态的预测值,无实际意义
  38684. EM_RAID_SYNC_STATE emSync; // Raid同步状态
  38685. BYTE byReserved[512]; // 保留字节
  38686. }NET_HDDSMART_INFO;
  38687. ///@brief 硬盘温度报警事件( DH_ALARM_HDD_TEMPERATUREALARM )
  38688. typedef struct tagALARM_HDD_TEMPERATUREALARM_INFO
  38689. {
  38690. int nAction; // 事件动作1:Start 2:Stop
  38691. int nTemperature; // 硬盘当前温度值
  38692. NET_TIME_EX stuTime; // 事件发生的时间
  38693. char szHDDName[DH_COMMON_STRING_64]; // 硬盘名称
  38694. NET_HDDSMART_INFO stuHDDSmartInfo; // 硬盘Smart信息
  38695. BYTE byReserved[512]; // 保留字节
  38696. }ALARM_HDD_TEMPERATUREALARM_INFO;
  38697. ///@brief 硬盘震动报警事件( DH_ALARM_HDD_SHAKEALARM )
  38698. typedef struct tagALARM_HDD_SHAKEALARM_INFO
  38699. {
  38700. int nAction; // 事件动作1:Start 2:Stop
  38701. NET_TIME_EX stuTime; // 事件发生的时间
  38702. char szHDDName[DH_COMMON_STRING_64]; // 硬盘名称
  38703. NET_HDDSMART_INFO stuHDDSmartInfo; // 硬盘Smart信息
  38704. BYTE byReserved[512]; // 保留字节
  38705. }ALARM_HDD_SHAKEALARM_INFO;
  38706. ///@brief 巡更状态
  38707. typedef enum tagEM_PATROL_STATUS
  38708. {
  38709. EM_PATROL_STATUS_UNKNOWN, //未知
  38710. EM_PATROL_STATUS_START, //巡更开始
  38711. EM_PATROL_STATUS_END, //巡更结束
  38712. EM_PATROL_STATUS_FAIL, //巡更失败
  38713. }EM_PATROL_STATUS;
  38714. ///@brief 未巡更报警事件( DH_ALARM_PATROL_STATUS )
  38715. typedef struct tagALARM_PATROL_STATUS_INFO
  38716. {
  38717. NET_TIME_EX stuTime; //事件发生时间
  38718. EM_PATROL_STATUS emPatrolStatus; //巡更状态
  38719. BYTE byReserved[512]; //保留字节
  38720. }ALARM_PATROL_STATUS_INFO;
  38721. ///@brief 区域防区操作方式
  38722. typedef enum tagEM_AREAARM_TRIGGERMODE
  38723. {
  38724. EM_AREAARM_TRIGGERMODE_UNKNOWN, // 未知
  38725. EM_AREAARM_TRIGGERMODE_KEYPAD, // 键盘
  38726. EM_AREAARM_TRIGGERMODE_REMOTECONTROL, // 遥控器
  38727. EM_AREAARM_TRIGGERMODE_USER, // 用户操作
  38728. EM_AREAARM_TRIGGERMODE_LOCAL, // 本地
  38729. EM_AREAARM_TRIGGERMODE_TIMER, // 定时器
  38730. EM_AREAARM_TRIGGERMODE_KEY, // Key类型防区
  38731. EM_AREAARM_TRIGGERMODE_REMOTE, // 远程操作(电话反控、短信反控、手机App、平台客户端等)
  38732. EM_AREAARM_TRIGGERMODE_DSS, // DSS平台客户端
  38733. EM_AREAARM_TRIGGERMODE_DSSPRO, // DSSPro平台客户端
  38734. EM_AREAARM_TRIGGERMODE_DMSS, // 手机客户端
  38735. EM_AREAARM_TRIGGERMODE_PLATFORM, // Smart pss、ICC平台
  38736. }EM_AREAARM_TRIGGERMODE;
  38737. ///@brief 区域防区操作用户
  38738. typedef enum tagEM_AREAARM_USER
  38739. {
  38740. EM_AREAARM_USER_UNKNOWN, // 未知
  38741. EM_AREAARM_USER_SUPERVISOR,
  38742. EM_AREAARM_USER_MANAGER, // 管理用户
  38743. EM_AREAARM_USER_MASTER, // 主用户
  38744. EM_AREAARM_USER_USER, // 普通用户
  38745. EM_AREAARM_USER_TEMPORARY, // 临时用户
  38746. EM_AREAARM_USER_DURESS, // 胁迫用户
  38747. EM_AREAARM_USER_PATROL, // 巡逻用户
  38748. }EM_AREAARM_USER;
  38749. ///@brief 布撤防状态
  38750. typedef enum tagEM_ARM_STATE
  38751. {
  38752. EM_ARM_STATE_UNKNOWN, // 未知
  38753. EM_ARM_STATE_TOTAL_ARMING, // Total布防
  38754. EM_ARM_STATE_PARTIAL1_ARMING, // partial1布防
  38755. EM_ARM_STATE_PARTIAL2_ARMING, // partial2布防
  38756. EM_ARM_STATE_PARTIAL1_PARTIAL2_ARMING, // partial1+2布防
  38757. EM_ARM_STATE_FORCEARMING, // 强制布防
  38758. EM_ARM_STATE_DISARMING, // 撤防
  38759. }EM_ARM_STATE;
  38760. ///@brief 区域防区模式改变事件(对应事件 DH_ALARM_AREAARM_MODECHANGE)
  38761. typedef struct tagALARM_AREAARM_MODECHANGE_INFO
  38762. {
  38763. int nAreaIndex; // 区域编号
  38764. int nEventID; // 事件ID
  38765. NET_TIME_EX UTC; // 事件发生的时间
  38766. EM_AREAARM_TRIGGERMODE emTriggerMode; // 操作方式
  38767. EM_AREAARM_USER emUser; // 操作用户,仅emTriggerMode = EM_AREAARM_USER_USER时有效
  38768. UINT nID; // ID号,emTriggerMode = EM_AREAARM_TRIGGERMODE_KEYPAD
  38769. // 表示键盘地址;emTriggerMode =EM_AREAARM_TRIGGERMODE_REMOTECONTROL时表示遥控器编号
  38770. EM_ARM_STATE emArmState; // 布撤防状态
  38771. BYTE byReserved[1024]; // 保留扩展字节
  38772. }ALARM_AREAARM_MODECHANGE_INFO;
  38773. ///@brief 防区信息
  38774. typedef struct tagNET_ALARM_ZONE_MODE_CHANGE_STATUS
  38775. {
  38776. int nIndex; // 防区号,1-256
  38777. int nAreasCount; // Area号个数
  38778. int nAreas[64]; // Area号,1-64
  38779. char szMode[32]; // 修改后的防区模式
  38780. char szReserved[64]; // 保留字节
  38781. }NET_ALARM_ZONE_MODE_CHANGE_STATUS;
  38782. ///@brief 事件类型DH_ALARM_ZONE_MODE_CHANGE(防区状态改变事件)对应的数据块描述信息
  38783. typedef struct tagNET_ALARM_ZONE_MODE_CHANGE_INFO
  38784. {
  38785. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  38786. int nChannelID; // 通道号
  38787. NET_TIME_EX stuTime; // 事件发生的时间
  38788. EM_AREAARM_TRIGGERMODE emTriggerMode; // 操作方式
  38789. char szUser[16]; // 用户名称, 仅emTriggerMode为EM_AREAARM_TRIGGERMODE_KEYPAD/EM_AREAARM_TRIGGERMODE_REMOTECONTROL时有效
  38790. UINT nID; // ID号,键盘地址、遥控器编号、定时器编号或者key类型防区号,仅TriggerMode为EM_AREAARM_TRIGGERMODE_KEYPAD/EM_AREAARM_TRIGGERMODE_REMOTECONTROL/EM_AREAARM_TRIGGERMODE_TIMER/EM_AREAARM_TRIGGERMODE_KEY时有效
  38791. UINT nUserCode; // 用户编号,仅TriggerMode为EM_AREAARM_TRIGGERMODE_KEYPAD/EM_AREAARM_TRIGGERMODE_REMOTE时有效
  38792. int nStatusCount; // 防区信息个数
  38793. NET_ALARM_ZONE_MODE_CHANGE_STATUS stuStatus[256]; // 防区信息
  38794. char szReserved[1024]; // 保留字节
  38795. } NET_ALARM_ZONE_MODE_CHANGE_INFO;
  38796. ///@brief 事件类型DH_ALARM_PSTN_PERIODIC_TEST(PSTN定期测试事件)对应的数据块描述信息
  38797. typedef struct tagNET_ALARM_PSTN_PERIODIC_TEST_INFO
  38798. {
  38799. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  38800. int nChannelID; // 通道号
  38801. NET_TIME_EX stuTime; // 事件发生的时间
  38802. char szReserved[1024]; // 保留字节
  38803. } NET_ALARM_PSTN_PERIODIC_TEST_INFO;
  38804. ///@brief 掉线模块类型
  38805. typedef enum tagEM_LOSTMODULE_TYPE
  38806. {
  38807. EM_LOSTMODULE_TYPE_UNKNOWN, // 未知
  38808. EM_LOSTMODULE_TYPE_WIRED, // 有线扩展模块
  38809. EM_LOSTMODULE_TYPE_WIRELESS, // 无线配件
  38810. }EM_LOSTMODULE_TYPE;
  38811. #define MAX_ZONE_NUMBER 72 //最大防区个数
  38812. #define MAX_ZONE_NUMBER_EX 256 //最大防区个数扩展
  38813. ///@brief 防区模块掉线事件(对应事件 DH_ALARM_ZONEMODULELOST)
  38814. typedef struct tagALARM_ZONEMODULE_LOST_INFO
  38815. {
  38816. EM_LOSTMODULE_TYPE emType; // 掉线模块类型
  38817. int nEventID; // 事件ID
  38818. NET_TIME_EX UTC; // 事件发生的时间
  38819. int nZones; // 属于此模块的防区个数
  38820. int arrZones[MAX_ZONE_NUMBER]; // 属于此某块的防区号
  38821. bool bOnLine; // 在线状态,false:不在线 true:在线
  38822. BYTE byReserved1[3]; // 字节对齐
  38823. BYTE byReserved[1024]; // 保留扩展字节
  38824. }ALARM_ZONEMODULE_LOST_INFO;
  38825. ///@brief 防区类型
  38826. typedef enum tagEM_DEFENCE_AREA_TYPE
  38827. {
  38828. EM_DEFENCE_AREA_TYPE_UNKNOWN, // 未知
  38829. EM_DEFENCE_AREA_TYPE_INTIME, // 立即防区
  38830. EM_DEFENCE_AREA_TYPE_DELAY, // 延时防区
  38831. EM_DEFENCE_AREA_TYPE_DELAY2, // 延时防区2
  38832. EM_DEFENCE_AREA_TYPE_FOLLOW, // 跟随防区
  38833. EM_DEFENCE_AREA_TYPE_EXITEND, // 退出防区
  38834. EM_DEFENCE_AREA_TYPE_FULLDAY, // 24小时防区
  38835. EM_DEFENCE_AREA_TYPE_FIRE, // 火警防区
  38836. EM_DEFENCE_AREA_TYPE_PANIC, // 恐慌防区
  38837. EM_DEFENCE_AREA_TYPE_ROBBERY, // 匪警防区
  38838. EM_DEFENCE_AREA_TYPE_MEDICAL, // 医疗紧急防区
  38839. EM_DEFENCE_AREA_TYPE_KEY, // key防区
  38840. }EM_DEFENCE_AREA_TYPE;
  38841. ///@brief 区域报警触发类型
  38842. typedef enum tagEM_AREAALARM_TRIGGER_TYPE
  38843. {
  38844. EM_AREAALARM_TRIGGER_TYPE_UNKNOWN, //未知
  38845. EM_AREAALARM_TRIGGER_TYPE_ALARM, // 通道打开
  38846. EM_AREAALARM_TRIGGER_TYPE_TAMPER, // 通道防拆
  38847. EM_AREAALARM_TRIGGER_TYPE_MASK, // 通道遮挡
  38848. EM_AREAALARM_TRIGGER_TYPE_SHORT, // 通道防短
  38849. }EM_AREAALARM_TRIGGER_TYPE;
  38850. ///@brief 区域报警事件(对应事件 DH_ALARM_AREAALARM)
  38851. typedef struct tagALARM_AREAALARM_INFO
  38852. {
  38853. int nAreaIndex; // 区域号
  38854. int nEventID; // 事件ID
  38855. NET_TIME_EX UTC; // 事件发生的时间
  38856. char szName[128]; // 名称
  38857. EM_DEFENCE_AREA_TYPE emDefenceAreaType; // 防区类型
  38858. int nIndex; // 触发的通道号
  38859. EM_AREAALARM_TRIGGER_TYPE emTrigerType; // 触发类型
  38860. BYTE byReserved[1024]; // 保留扩展字节
  38861. }ALARM_AREAALARM_INFO;
  38862. #define MAX_AREA_NUMBER 8 //最大area数量
  38863. #define MAX_AREA_NUMBER_EX 64 //最大area数量扩展
  38864. ///@brief 防区打开事件(对应事件 DH_ALARM_ZONEOPEN)
  38865. typedef struct tagALARM_ZONEOPEN_INFO
  38866. {
  38867. int nAction; // 事件动作1:Start 2:Stop
  38868. int nEventID; // 事件ID
  38869. NET_TIME_EX UTC; // 事件发生的时间
  38870. char szName[128]; // 名称
  38871. int nAreaNum; // 区域个数
  38872. int arrAreas[MAX_AREA_NUMBER]; //区域号
  38873. int nChannelID; // 防区号
  38874. BYTE byReserved[1024]; // 保留扩展字节
  38875. }ALARM_ZONEOPEN_INFO;
  38876. ///@brief 防拆事件(对应事件 DH_ALARM_SYSTEMTAMPER)
  38877. typedef struct tagALARM_SYSTEMTAMPER_INFO
  38878. {
  38879. int nAction; // 事件动作1:Start 2:Stop
  38880. int nEventID; // 事件ID
  38881. NET_TIME_EX UTC; // 事件发生的时间
  38882. BYTE byReserved[1024]; // 保留扩展字节
  38883. }ALARM_SYSTEMTAMPER_INFO;
  38884. ///@brief 人证比对事件(对应事件 DH_ALARM_CITIZEN_PICTURE_COMPARE)
  38885. typedef struct tagALARM_CITIZEN_PICTURE_COMPARE_INFO
  38886. {
  38887. int nChannelID; // 通道号
  38888. int nEventID; // 事件ID
  38889. NET_TIME_EX stuTime; // 事件发生的时间
  38890. BOOL bCompareResult; // 人证比对结果,相似度大于等于阈值认为比对成功,true表示成功,false表示失败
  38891. BYTE nSimilarity; // 两张图片的相似度,单位百分比,范围[1,100]
  38892. BYTE nThreshold; // 检测阈值,范围[1,100]
  38893. BYTE byReserved1[2]; // 字节对齐
  38894. EM_CITIZENIDCARD_SEX_TYPE emSex; // 性别
  38895. int nECType; // 民族(参照DEV_EVENT_ALARM_CITIZENIDCARD_INFO的nECType定义)
  38896. char szCitizen[DH_COMMON_STRING_64]; // 居民姓名
  38897. char szAddress[DH_COMMON_STRING_256]; // 住址
  38898. char szNumber[DH_COMMON_STRING_64]; // 证件号
  38899. char szAuthority[DH_COMMON_STRING_256]; // 签发机关
  38900. NET_TIME stuBirth; // 出生日期(年月日)
  38901. NET_TIME stuValidityStart; // 有效期限起始日期(年月日)
  38902. BOOL bLongTimeValidFlag; // 该值为 TRUE, 截止日期 表示长期有效,此时 stuValidityEnd 值无意义
  38903. // 该值为 FALSE, 此时 截止日期 查看 stuValidityEnd 值
  38904. NET_TIME stuValidityEnd; // 有效期限结束日期(年月日)
  38905. char szCardNo[DH_COMMON_STRING_32]; // IC卡号
  38906. char szCellPhone[DH_COMMON_STRING_32]; // 手机号(比对时先输入手机号)
  38907. UINT nEventType; // 事件类型:0:人证比对结果 1:人证目标采集
  38908. char szUserID[32]; // 人证目标采集时人员ID(定制)
  38909. UINT nFaceIndex; // 目标序号
  38910. EM_MASK_STATE_TYPE emMask; // 口罩状态
  38911. int nScore; // 目标质量评分
  38912. char szIDPhysicalNumber[20]; // 物理证件号(证件序列号)
  38913. BYTE byReserved[956]; // 保留字节
  38914. } ALARM_CITIZEN_PICTURE_COMPARE_INFO;
  38915. ///@brief 硬盘健康状况报警事件( DH_ALARM_HDD_HEALTHALARM )
  38916. typedef struct tagALARM_HDD_HEALTHALARM_INFO
  38917. {
  38918. int nAction; // 事件动作1:Start 2:Stop
  38919. NET_TIME_EX stuTime; // 事件发生的时间
  38920. char szHDDName[DH_COMMON_STRING_64]; // 硬盘名称
  38921. NET_HDDSMART_INFO stuHDDSmartInfo; // 硬盘Smart信息
  38922. BYTE byReserved[512]; // 保留字节
  38923. }ALARM_HDD_HEALTHALARM_INFO;
  38924. ///@brief 当前工作目录切换事件( DH_ALARM_STORAGE_WORKDIRECTORY_SWITCH )
  38925. typedef struct tagALARM_STORAGE_WORKDIRECTORY_SWITCH_INFO
  38926. {
  38927. NET_TIME_EX stuTime; // 事件发生的时间
  38928. char szGroup[DH_COMMON_STRING_64]; // 目录所在工作组
  38929. }ALARM_STORAGE_WORKDIRECTORY_SWITCH_INFO;
  38930. ///@brief 情景状态
  38931. typedef struct tagHOMESCENE_STATE_INFO
  38932. {
  38933. char szName[128]; //情景名称
  38934. BOOL bOnline; //在线状态
  38935. BYTE byReserved[512]; //保留字节
  38936. }HOMESCENE_STATE_INFO;
  38937. ///@brief 智能家居情景模式变化通知事件(DH_ALARM_HOMESCENE_CHANGE)
  38938. typedef struct tagALARM_HOMESCENE_CHANGE_INFO
  38939. {
  38940. char szSceneID[32]; //情景编码
  38941. HOMESCENE_STATE_INFO stuState; //情景状态
  38942. BYTE byReserved[512]; //保留字节
  38943. }ALARM_HOMESCENE_CHANGE_INFO;
  38944. ///@brief 主板动作
  38945. typedef enum tagEM_BOARDHOTPLUG_ACTION
  38946. {
  38947. EM_BOARDHOTPLUG_ACTION_UNKNOWN, // 未知
  38948. EM_BOARDHOTPLUG_ACTION_ADD, // 单板插入
  38949. EM_BOARDHOTPLUG_ACTION_REMOVE, // 单板拔出
  38950. }EM_BOARDHOTPLUG_ACTION;
  38951. ///@brief 双控设备热插拔事件(DH_ALARM_DEVBOARDHOTPLUG)
  38952. typedef struct tagALARM_DEVBOARDHOTPLUG_INFO
  38953. {
  38954. NET_TIME_EX stuTime; // 事件发生的时间
  38955. EM_BOARDHOTPLUG_ACTION emBoardAction; // 主板动作
  38956. int nBoardSlot; // 发生插拔的工作板卡槽序号
  38957. BYTE byReserved[512]; // 保留字节
  38958. }ALARM_DEVBOARDHOTPLUG_INFO;
  38959. ///@brief 各种违章事件联动报警输出事件 (DH_ALARM_TRAFFIC_LINKAGEALARM)
  38960. typedef struct tagALARM_TRAFFIC_LINKAGEALARM_INFO
  38961. {
  38962. NET_TIME_EX stuTime; // 事件发生的时间
  38963. char szCode[DH_COMMON_STRING_32]; // 违章联动报警事件
  38964. BYTE byReserved[1024]; // 保留字节
  38965. }ALARM_TRAFFIC_LINKAGEALARM_INFO;
  38966. ///@brief 同轴开关报警事件 (DH_ALARM_COAXIAL_ALARM_LOCAL)
  38967. typedef struct tagALARM_COAXIAL_ALARM_LOCAL_INFO
  38968. {
  38969. int nAction; // 事件动作1:Start 2:Stop
  38970. NET_TIME_EX UTC; // 事件发生的时间
  38971. int nAlarmChannel; // 报警输入通道号
  38972. NET_SENSE_METHOD emSenseMethod; // 传感器类型
  38973. char szName[MAX_COMMON_STRING_64]; // 报警通道名
  38974. int nChannelID; // 视频通道号
  38975. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  38976. BYTE byReserved[1020]; // 保留字节
  38977. } ALARM_COAXIAL_ALARM_LOCAL_INFO;
  38978. ///@brief NAS文件删除结果反馈事件( DH_ALARM_NAS_FILE_REMOVE_STATUS )
  38979. typedef struct tagALARM_NAS_FILE_REMOVE_STATUS_INFO
  38980. {
  38981. int nEventID; // 事件ID
  38982. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  38983. double dbPTS; // 时间戳(单位是毫秒)
  38984. NET_TIME_EX stuTime; // 事件发生的时间
  38985. NASFILE_STATUS_STATE emStatus; // 任务状态
  38986. char szID[MAX_COMMON_STRING_128]; // 任务ID
  38987. UINT nProgress; // 任务进度: 0 ~ 100
  38988. BYTE byReserved[1028]; // 保留扩展字节
  38989. } ALARM_NAS_FILE_REMOVE_STATUS_INFO;
  38990. ///@brief 请求设备安装APK事件( DH_ALARM_NAS_APK_INSTALL_REQUEST )
  38991. typedef struct tagALARM_NAS_APK_INSTALL_REQUEST_INFO
  38992. {
  38993. DWORD dwSize;
  38994. char szApkPath[MAX_COMMON_STRING_128]; // 安装文件路径名
  38995. } ALARM_NAS_APK_INSTALL_REQUEST_INFO;
  38996. ///@brief APK安装状态
  38997. typedef enum tagEM_NAS_APK_INSTALL_STATUS
  38998. {
  38999. EM_NAS_APK_INSTALL_STATUS_UNKNOWN, // 未知
  39000. EM_NAS_APK_INSTALL_STATUS_FAILED, // 失败
  39001. EM_NAS_APK_INSTALL_STATUS_SUCCEED, // 成功
  39002. EM_NAS_APK_INSTALL_STATUS_INSTALLING, // 安装中
  39003. } EM_NAS_APK_INSTALL_STATUS;
  39004. ///@brief 设备安装APK状态事件( DH_ALARM_NAS_APK_INSTALL_STATUS )
  39005. typedef struct tagALARM_NAS_APK_INSTALL_STATUS_INFO
  39006. {
  39007. int nEventID; // 事件ID
  39008. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39009. double dbPTS; // 时间戳(单位是毫秒)
  39010. NET_TIME_EX stuTime; // 事件发生的时间
  39011. EM_NAS_APK_INSTALL_STATUS emStatus; // 任务状态
  39012. char szApkPath[MAX_COMMON_STRING_128]; // 安装文件路径名
  39013. UINT nProgress; // 任务进度: 0 ~ 100
  39014. BYTE byReserved[1028]; // 保留扩展字节
  39015. } ALARM_NAS_APK_INSTALL_STATUS_INFO;
  39016. ///@brief 文件压缩解压任务类型
  39017. typedef enum tagEM_FILE_COMPRESS_TYPE
  39018. {
  39019. EM_FILE_COMPRESS_TYPE_UNKNOWN, // 未知
  39020. EM_FILE_COMPRESS_TYPE_COMPRESS, // 压缩文件, 对应结构体pInParam = NET_IN_COMPRESS_FILE,pOutParam = NET_OUT_COMPRESS_FILE
  39021. EM_FILE_COMPRESS_TYPE_DECOMPRESS, // 解压文件, 对应结构体pInParam = NET_IN_DECOMPRESS_FILE,pOutParam = NET_OUT_DECOMPRESS_FILE
  39022. } EM_FILE_COMPRESS_TYPE;
  39023. ///@brief 文件压缩解压任务状态
  39024. typedef enum tagEM_FILE_COMPRESS_STATUS
  39025. {
  39026. EM_FILE_COMPRESS_STATUS_UNKNOWN, // 未知
  39027. EM_FILE_COMPRESS_STATUS_FAILED, // 失败
  39028. EM_FILE_COMPRESS_STATUS_SUCCEED, // 成功
  39029. EM_FILE_COMPRESS_STATUS_NEED_PWD, // 需要密码
  39030. EM_FILE_COMPRESS_STATUS_WRONG_PWD, // 密码错误
  39031. EM_FILE_COMPRESS_STATUS_NO_FILE, // 无法找到文件
  39032. } EM_FILE_COMPRESS_STATUS ;
  39033. ///@brief 文件压缩解压结果反馈事件( DH_ALARM_FILE_COMPRESS_STATUS )
  39034. typedef struct tagALARM_FILE_COMPRESS_STATUS_INFO
  39035. {
  39036. int nEventID; // 事件ID
  39037. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39038. double dbPTS; // 时间戳(单位是毫秒)
  39039. NET_TIME_EX stuTime; // 事件发生的时间
  39040. char szID[MAX_COMMON_STRING_128]; // 任务ID
  39041. EM_FILE_COMPRESS_TYPE emType; // 任务类型
  39042. int nSrcNum; // 源文件(夹)名数量
  39043. char szSrcList[MAX_NASFILE_NUM][MAX_COMMON_STRING_128]; // 源文件(夹)名列表
  39044. char szDstPath[MAX_COMMON_STRING_128]; // 目的路径
  39045. EM_FILE_COMPRESS_STATUS emStatus; // 任务状态
  39046. UINT nProgress; // 任务进度: 0 ~ 100
  39047. BYTE byReserved[1024]; // 保留扩展字节
  39048. } ALARM_FILE_COMPRESS_STATUS_INFO;
  39049. ///@brief 陌生人报警事件信息( DH_ALARM_STRANGER_ALARM )
  39050. typedef struct tagALARM_STRANGER_ALARM_INFO
  39051. {
  39052. int nChannelID; // 本地报警输入通道号
  39053. int nEventID; // 事件ID
  39054. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  39055. NET_TIME_EX UTC; // 事件发生的时间
  39056. BYTE byReserved[1024]; // 预留字节
  39057. }ALARM_STRANGER_ALARM_INFO;
  39058. ///@brief 二维码上报事件信息( DH_ALARM_QR_CODE_CHECK )
  39059. typedef struct tagALARM_QR_CODE_CHECK_INFO
  39060. {
  39061. int nEventID; // 事件ID
  39062. NET_TIME_EX UTC; // 事件发生的时间
  39063. double dbPTS; // 时间戳(单位是毫秒)
  39064. char szQRCode[256]; // 二维码字符串
  39065. int nChannelID; // 本地报警输入通道号
  39066. BYTE byReserved[1020]; // 预留字节
  39067. }ALARM_QR_CODE_CHECK_INFO;
  39068. ///@brief 门锁工作模式
  39069. typedef enum tagEM_LOCK_MODE
  39070. {
  39071. EM_MODE_UNKNOWN = -1, // 未知
  39072. EM_MODE_NORMAL = 0, // 正常模式
  39073. EM_MODE_CHANNEL = 1, // 通道模式(锁把手向下直接可以开门)
  39074. EM_MODE_UNDISTURBED = 2, // 免扰模式(锁体会开,但无提示音)
  39075. } EM_LOCK_MODE ;
  39076. ///@brief 门锁模式事件信息( DH_ALARM_ACCESS_CTL_LOCK_MODE )
  39077. typedef struct tagALARM_ACCESS_CTL_LOCK_MODE_INFO
  39078. {
  39079. int nEventID; // 事件ID
  39080. NET_TIME_EX UTC; // 事件发生时间
  39081. double dbPTS; // 时间戳(单位是毫秒)
  39082. char szSN[32]; // 设备序列号
  39083. EM_LOCK_MODE emLockMode; // 门锁工作模式
  39084. BYTE byReserved[1020]; // 保留字节
  39085. }ALARM_ACCESS_CTL_LOCK_MODE_INFO;
  39086. ///@brief 房间号绑定事件信息( DH_ALARM_LOCK_ROOM_NUM_BIND )
  39087. typedef struct tagALARM_LOCK_ROOM_NUM_BIND_INFO
  39088. {
  39089. int nEventID; // 事件ID
  39090. NET_TIME_EX UTC; // 事件发生的时间
  39091. double dbPTS; // 时间戳(单位是毫秒)
  39092. char szSN[32]; // 设备序列号
  39093. char szName[64]; // 门锁房间号,此字段已废弃
  39094. UINT nTaskID; // 任务ID
  39095. char szRoomNo[64]; // 智能锁房间号
  39096. BYTE byReserved[956]; // 预留字节
  39097. }ALARM_LOCK_ROOM_NUM_BIND_INFO;
  39098. ///@brief 离岗检测事件信息(DH_ALARM_LEAVE_DETECTION)
  39099. typedef struct tagALARM_LEAVE_DETECTION_INFO
  39100. {
  39101. int nChannelID; // 通道号
  39102. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  39103. NET_TIME_EX UTC; // 事件发生的时间
  39104. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  39105. BYTE byReserved[1024]; // 预留字节
  39106. }ALARM_LEAVE_DETECTION_INFO;
  39107. ///@brief 车道信息
  39108. typedef struct tagALARM_LANE_INFO
  39109. {
  39110. UINT nQueueLen; // 排队长度,单位:米
  39111. UINT nLane; // 车道号:从0开始,车到从左往右数,0、1、2、3、4
  39112. UINT nUserDefinedLaneNumber; // 用户自定义车道号
  39113. BYTE byReserved[256]; // 预留字节
  39114. }ALARM_LANE_INFO;
  39115. ///@brief 广州交通排队长度事件(DH_ALARM_TRAFFICGZJJ_QUEUE_LEN)
  39116. typedef struct tagALARM_TRAFFICGZJJ_QUEUE_LEN_INFO
  39117. {
  39118. int nChannelID; // 通道号
  39119. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39120. double dbPTS; // 时间戳(单位是毫秒)
  39121. NET_TIME_EX UTC; // 事件发生的时间
  39122. int nEventID; // 事件ID
  39123. UINT nPeriodByMs; // 上报间隔,单位:毫秒
  39124. ALARM_LANE_INFO stuAlarmLane[5]; // 车道信息
  39125. BYTE byReserved[1024];// 预留字节
  39126. } ALARM_TRAFFICGZJJ_QUEUE_LEN_INFO;
  39127. ///@brief 车辆类型
  39128. typedef enum _EM_NET_CARTYPE
  39129. {
  39130. NET_CARTYPE_UNKNOW = 0, // 未知
  39131. NET_CARTYPE_PASSENGERCAR, // 客车
  39132. NET_CARTYPE_LARGETRUCK, // 大货车
  39133. NET_CARTYPE_MIDTRUCK, // 中货车
  39134. NET_CARTYPE_SALOONCAR, // 轿车
  39135. NET_CARTYPE_MICROBUS, // 面包车
  39136. NET_CARTYPE_MICROTRUCK, // 小货车
  39137. NET_CARTYPE_TRICYCLE, // 三轮车
  39138. NET_CARTYPE_MOTOR, // 摩托车
  39139. NET_CARTYPE_PASSERBY, // 行人
  39140. NET_CARTYPE_SUVMPV, // SUV-MPV
  39141. NET_CARTYPE_MIDPASSENGERCAR, // 中客车
  39142. NET_CARTYPE_TANKCAR, // 危化品车辆(特殊车辆)
  39143. NET_CARTYPE_SUV, // SUV
  39144. NET_CARTYPE_MPV, // MPV
  39145. NET_CARTYPE_BUS, // 公交车
  39146. NET_CARTYPE_PICKUP, // 皮卡车
  39147. NET_CARTYPE_MINICARRIAGE, // 微型车
  39148. NET_CARTYPE_OILTANKTRUCK, // 油罐车(特殊车辆)
  39149. NET_CARTYPE_SLOTTANKCAR, // 槽罐车(特殊车辆)
  39150. NET_CARTYPE_RESERVED1, // 保留1(特殊车辆)
  39151. NET_CARTYPE_DREGSCAR, // 渣土车(特殊车辆)
  39152. NET_CARTYPE_CONCRETEMIXERTRUCK, // 混凝土搅拌车(特殊车辆)
  39153. NET_CARTYPE_TAXI, // 出租车(特殊车辆)
  39154. NET_CARTYPE_POLICE, // 警车(特殊车辆)
  39155. NET_CARTYPE_AMBULANCE, // 救护车(特殊车辆)
  39156. NET_CARTYPE_GENERAL, // 普通车(特殊车辆)
  39157. NET_CARTYPE_WATERINGCAR, // 洒水车(特殊车辆)
  39158. NET_CARTYPE_RESERVED2, // 保留2(特殊车辆)
  39159. NET_CARTYPE_FIREENGINE, // 消防车(特殊车辆)
  39160. NET_CARTYPE_TRACTOR, // 拖拉机(特殊车辆)
  39161. NET_CARTYPE_MACHINESHOPTRUCK, // 工程车(特殊车辆)
  39162. NET_CARTYPE_POWERLOTVEHICLE, // 粉粒物料车(特殊车辆)
  39163. NET_CARTYPE_SUCTIONSEWAGETRUCK, // 吸污车(特殊车辆)
  39164. NET_CARTYPE_NORMALVEHICLETANKTRUCK, // 普通罐车(特殊车辆)
  39165. NET_CARTYPE_TWOCYCLE, // 二轮车
  39166. } EM_NET_CARTYPE;
  39167. ///@brief 线圈信息(主要是里面的车辆信息)
  39168. typedef struct tagCOILS_INFO
  39169. {
  39170. UINT nCarId; // 车辆Id(不是车牌号,ID是设备检测到物体记录的编号)
  39171. char PlateNum[64]; // 车牌号
  39172. EM_NET_CARTYPE emCarType; // 车辆类型
  39173. UINT nDirection; // 算法识别的车辆行驶方向,0-未知,1-左转,2-直行,3-右转,4-掉头
  39174. BYTE byReserved[1020];// 预留字节
  39175. } COILS_INFO;
  39176. ///@brief 车道信息
  39177. typedef struct tagLANE_INFO
  39178. {
  39179. UINT nLane; // 物理车道号(范围0~4)
  39180. int nLaneType; // 车道类型,虚线车道:0, 实线车道:1
  39181. double dbLaneOcc; // 车道空间占有率,范围[0.0~1.0]
  39182. UINT nRoadwayNumber; // 自定义车道号(范围0~128)
  39183. int nCurrentLaneVehicleNum; // 当前车道车的数量
  39184. int nVehicleNum; // 从上次统计结束到现在,通过车的辆数(设备0.5秒下发一次)
  39185. UINT nCarId; // 保留最近有效过车的ID(不是车牌号),CarId是设备检测到物体记录的编号
  39186. double dbCarEnterTime; // 编号CarId车辆进入虚线车道的时间
  39187. double dbCarLeaveTime; // 编号CarId车辆离开实线车道的时间
  39188. UINT nCarDistance; // 编号CarId车辆行驶的距离,单位:米
  39189. int nQueueLen; // 车辆等待时的排队长度,单位:米
  39190. double dbCarSpeed; // 编号CarId车辆平均车速,单位:米/秒
  39191. int nCoilsInfoNum; // 实际返回线圈信息个数
  39192. COILS_INFO stuCoilsInfo[70][2]; // 线圈信息(主要是线圈内的车辆信息)
  39193. int nRetSolidLanNum; // 实际返回虚线车道个数
  39194. int nSolidLaneNum[6]; // 虚线车道对应的实线车道自定义车道号
  39195. int nVehicleNumByTypeNum; // 实际返回车辆类型统计个数
  39196. UINT nVehicleNumByType[64]; // 类型车辆统计,数组下标对应不同车型(车型参考 EM_NET_CARTYPE),下标值对应车辆类型统计的数量
  39197. int nEndLen; // 车辆运行时,尾部车辆位置距离停车线的距离 ,单位:米
  39198. BYTE byReserved[1024]; // 预留字节
  39199. } LANE_INFO;
  39200. ///@brief 交通态势事件(DH_ALARM_TRAFFIC_XINKONG)
  39201. typedef struct tagALARM_TRAFFIC_XINKONG_INFO
  39202. {
  39203. int nChannelID; // 通道号
  39204. int nAction; // 只有一个事件动作0,表示脉冲事件
  39205. double dbPTS; // 时间戳(单位是毫秒)
  39206. NET_TIME_EX UTC; // 事件发生的时间
  39207. int nEventID; // 事件ID
  39208. char szName[128]; // 事件名称
  39209. BYTE byReserved1[4]; // 字节对齐
  39210. int nLaneInfoNum; // 实际上报多少车道信息
  39211. LANE_INFO stuLaneInfo[6]; // 车道信息
  39212. UINT nVirtualCoilHeight; // 单个虚拟线圈的的表征的高度,默认1米,范围: [1, 20]
  39213. UINT nVirtualCoilNumber; // 虚拟线圈的数量
  39214. int nRangeTime; // 统计周期内机动车从开始断面到结束断面的平均时间(单位ms)
  39215. int nCurrentAllVehicleNum; // 此时刻检测框内的车辆数
  39216. int nPedestrationNum; // 此时刻行人区域内的人数
  39217. int nNonMotorNum; // 此时刻非机动车区域内非机动车数
  39218. BYTE byReserved[1000]; // 预留字节
  39219. } ALARM_TRAFFIC_XINKONG_INFO;
  39220. ///@brief 外设异常类型
  39221. typedef enum tagEM_PERIPHERAL_EXCEPTION_TYPE
  39222. {
  39223. EM_PERIPHERAL_EXCEPTION_TYPE_UNKNOWN = 0, // 未知
  39224. EM_PERIPHERAL_EXCEPTION_TYPE_RFID_OFFLINE, // RFID离线
  39225. EM_PERIPHERAL_EXCEPTION_TYPE_RFID_OUTAGE, // RFID断电
  39226. EM_PERIPHERAL_EXCEPTION_TYPE_LIDAR_OFFLINE, // 激光雷达离线
  39227. EM_PERIPHERAL_EXCEPTION_TYPE_LIDAR_OUTAGE, // 激光雷达断电
  39228. EM_PERIPHERAL_EXCEPTION_TYPE_SCREEN_OUTAGE, // 屏幕断电
  39229. EM_PERIPHERAL_EXCEPTION_TYPE_TRUMPET_OUTAGE, // 喇叭断电
  39230. EM_PERIPHERAL_EXCEPTION_TYPE_ALARMLIGHT_OUTAGE, // 报警灯断电
  39231. } EM_PERIPHERAL_EXCEPTION_TYPE;
  39232. ///@brief 异常外设列表
  39233. typedef enum tagEM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE
  39234. {
  39235. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_UNKNOWN = 0, // 未知
  39236. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_RFID_OFFLINE, // RFID离线
  39237. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_RFID_OUTAGE, // RFID断电
  39238. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_LIDAR_OFFLINE, // 激光雷达离线
  39239. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_LIDAR_OUTAGE, // 激光雷达断电
  39240. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_SCREEN_OUTAGE, // 屏幕断电
  39241. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_TRUMPET_OUTAGE, // 喇叭断电
  39242. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_ALARMLIGHT_OUTAGE, // 报警灯断电
  39243. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_CAMERA_OFFLINE, // 相机离线
  39244. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_RCD_OFFLINE, // 空开离线
  39245. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_RADAR_OFFLINE, // 串口雷达离线
  39246. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_FLASHLAMP_OFFLINE, // 爆闪灯离线
  39247. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_STROBOLAMP_OFFLINE, // 频闪灯离线
  39248. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE_FLASHLAMELIF_WARNING, // 报警灯断电
  39249. } EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE;
  39250. ///@brief 设备异常事件 (DH_ALARM_DEVICE_ABNORMAL)
  39251. typedef struct tagALARM_DEVICE_ABNORMAL_INFO
  39252. {
  39253. int nIndex; // 通道号
  39254. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39255. double dbPTS; // 时间戳(单位是毫秒)
  39256. NET_TIME_EX stuUTC; // 事件发生的时间
  39257. int nEventID; // 事件ID
  39258. char szName[128]; // 事件名称
  39259. EM_PERIPHERAL_EXCEPTION_TYPE emPeripheralType; // 外设异常类型
  39260. EM_ABNORMAL_PERIPHERAL_EXCEPTION_TYPE emAbnormalTypeList[4]; // 异常外设列表
  39261. unsigned int nAbnormalTypeListRealLen; // 异常外设列表实际有效数量
  39262. BYTE byReserved[1000]; // 预留字节
  39263. } ALARM_DEVICE_ABNORMAL_INFO;
  39264. ///@brief Jablotron报警事件类型
  39265. typedef enum tagEM_JABLOTRON_ALARM_TYPE
  39266. {
  39267. EM_JABLOTRON_ALARM_TYPE_UNKNOWN, // 未知
  39268. EM_JABLOTRON_ALARM_TYPE_INTRUSION, // Intrusion
  39269. EM_JABLOTRON_ALARM_TYPE_FIRE, // Fire
  39270. EM_JABLOTRON_ALARM_TYPE_PANIC, // Panic
  39271. EM_JABLOTRON_ALARM_TYPE_ARMED, // BuFang
  39272. EM_JABLOTRON_ALARM_TYPE_DISARMED, // WeiBuFang
  39273. EM_JABLOTRON_ALARM_TYPE_PG, // PG
  39274. }EM_JABLOTRON_ALARM_TYPE;
  39275. ///@brief Jablotron报警时其本身的时间值
  39276. typedef struct tagHMS_TIME
  39277. {
  39278. DWORD dwHour; // 时
  39279. DWORD dwMinute; // 分
  39280. DWORD dwSecond; // 秒
  39281. }HMS_TIME;
  39282. ///@brief 客户报警产品信息( DH_ALARM_JABLOTRON_ALARM )
  39283. typedef struct tagALARM_JABLOTRONALARM_INFO
  39284. {
  39285. int nChannelID; // 通道号
  39286. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  39287. char szName[128]; // 事件名称
  39288. EM_JABLOTRON_ALARM_TYPE emAlarmType; // Jablotron报警事件类型
  39289. unsigned int nDefenceZone; // 防区号,1~15
  39290. HMS_TIME stuTime; // Jablotron报警时其本身的时间值
  39291. BYTE byReserved[1024]; // 保留字节
  39292. }ALARM_JABLOTRONALARM_INFO;
  39293. ///@brief 目标识别框的颜色
  39294. typedef struct tagNET_CFG_FACE_BOX_COLOR
  39295. {
  39296. int nFaceID; // ID
  39297. NET_COLOR_RGBA stuColor; // 颜色值
  39298. BYTE byReserved[108]; // 保留字节
  39299. }NET_CFG_FACE_BOX_COLOR;
  39300. ///@brief 目标识别事件( DH_ALARM_FACE_RECOGNITION )
  39301. typedef struct tagALARM_FACE_RECOGNITION_INFO
  39302. {
  39303. int nChannelID; // 通道号
  39304. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39305. NET_TIME_EX UTC; // 事件发生的时间
  39306. NET_CFG_FACE_BOX_COLOR stuFaceBoxColor; // 目标识别框的颜色
  39307. BYTE byReserved[4096]; // 保留字节
  39308. }ALARM_FACE_RECOGNITION_INFO;
  39309. ///@brief 车载燃料液位事件( DH_ALARM_VEHICLE_OILLEVEL )
  39310. typedef struct tagALARM_VEHICLE_OILLEVEL_INFO
  39311. {
  39312. int nChannelID; // 通道号
  39313. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39314. NET_TIME_EX UTC; // 事件发生的时间
  39315. float fOilLevel; // 车载燃料液位,单位:%
  39316. BYTE byReserved[1024]; // 保留字节
  39317. }ALARM_VEHICLE_OILLEVEL_INFO;
  39318. ///@brief 车载燃料载重事件( DH_ALARM_VEHICLE_LOAD )
  39319. typedef struct tagALARM_VEHICLE_LOAD_INFO
  39320. {
  39321. int nChannelID; // 通道号
  39322. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39323. NET_TIME_EX UTC; // 事件发生的时间
  39324. UINT nADValue; // AD采样值
  39325. float fLoad; // 当前载重,单位:kg
  39326. BYTE byReserved[1024]; // 保留字节
  39327. }ALARM_VEHICLE_LOAD_INFO;
  39328. ///@brief 发动机故障状态
  39329. typedef enum tagEM_ENGINE_FAILURE_STATUS
  39330. {
  39331. EM_ENGINE_FAILURE_UNKNOWN = 0, // 未知
  39332. EM_ENGINE_FAILURE_NOTACTIVE, // "Not active"
  39333. EM_ENGINE_FAILURE_ACTIVE, // "Active"
  39334. EM_ENGINE_FAILURE_BLINK, // "Blink"
  39335. EM_ENGINE_FAILURE_NOTAVAILABLE, // "Not Available"
  39336. }EM_ENGINE_FAILURE_STATUS;
  39337. ///@brief 发动机故障状态上报事件( DH_ALARM_ENGINE_FAILURE_STATUS )
  39338. typedef struct tagALARM_ENGINE_FAILURE_STATUS_INFO
  39339. {
  39340. int nChannelID; // 通道号
  39341. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39342. NET_TIME_EX UTC; // 事件发生的时间
  39343. EM_ENGINE_FAILURE_STATUS emStatus; // 发动机故障状态
  39344. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  39345. BYTE byReserved[1024]; // 保留字节
  39346. }ALARM_ENGINE_FAILURE_STATUS_INFO;
  39347. ///@brief 车辆状态枚举
  39348. typedef enum tagEM_VEHICLE_STATE
  39349. {
  39350. EM_VEHICLE_STATE_UNKNOWN = 0,
  39351. EM_VEHICLE_STATE_PARK, // 停车状态
  39352. EM_VEHICLE_STATE_MOTION, // 开始运动(速度大于0km/h)
  39353. EM_VEHICLE_STATE_SPORT, // 运动状态(速度大于10km/h)
  39354. }EM_VEHICLE_STATE;
  39355. ///@brief 车辆档位信息
  39356. typedef enum tagEM_VEHICLE_GEARS_TYPE
  39357. {
  39358. EM_VEHICLE_GEARS_UNKNOWN = -1,
  39359. EM_VEHICLE_GEARS_P, //P档
  39360. EM_VEHICLE_GEARS_R, //R档
  39361. EM_VEHICLE_GEARS_N, //N档
  39362. EM_VEHICLE_GEARS_D, //D档
  39363. EM_VEHICLE_GEARS_S, //S档
  39364. }EM_VEHICLE_GEARS_TYPE;
  39365. ///@brief 箱盖状态
  39366. typedef enum tagEM_COVER_STATUS
  39367. {
  39368. EM_COVER_STATUS_UNKNOWN = 0, // 未知
  39369. EM_COVER_STATUS_NOT_COVER, // 未密闭
  39370. EM_COVER_STATUS_COVER, // 密闭
  39371. }EM_COVER_STATUS;
  39372. ///@brief 举升状态
  39373. typedef enum tagEM_LIFT_STATUS
  39374. {
  39375. EM_LIFT_STATUS_UNKNOWN = 0, // 未知
  39376. EM_LIFT_STATUS_NOT_LIFT, // 未举升
  39377. EM_LIFT_STATUS_LIFT, // 举升
  39378. }EM_LIFT_STATUS;
  39379. ///@brief 载重状态
  39380. typedef enum tagEM_LOAD_STATUS
  39381. {
  39382. EM_LOAD_STATUS_UNKNOWN = 0, // 未知
  39383. EM_LOAD_STATUS_NOT_LOAD, // 空车
  39384. EM_LOAD_STATUS_LOAD, // 载重
  39385. }EM_LOAD_STATUS;
  39386. ///@brief 车辆状态事件( DH_ALARM_VEHICLE_STATE )
  39387. typedef struct tagALARM_VEHICLE_STATE_INFO
  39388. {
  39389. int nChannelID; // 通道号
  39390. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39391. NET_TIME_EX UTC; // 事件发生的时间
  39392. EM_VEHICLE_STATE emVehicleState; // 车辆状态
  39393. UINT nOilTankage; // 油箱容积,单位0.1L
  39394. UINT nCurrentFuel; // 当前油箱的油量, 单位0.1L
  39395. UINT nConsumptionOil; // 当前油耗,L/100公里 单位0.1L
  39396. UINT nTotalUsedFuel; // 总的消耗油量,单位0.1L
  39397. UINT nTotalDistance; // 总里程,单位0.1 Km
  39398. int nServiceDistance; // 保养距离,单位0.1Km
  39399. EM_VEHICLE_GEARS_TYPE emCurrentGear; // 当前档位
  39400. UINT nSpeed; // 当前速度,单位:0.1Km/h
  39401. char szTaskID[64]; // 任务号
  39402. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  39403. int nAlarmFlag; // 保养里程小于2000km时告警标示,0:无告警 1:有告警 2:无意义
  39404. EM_COVER_STATUS emCoverStatus; // 箱盖状态
  39405. EM_LIFT_STATUS emLiftStatus; // 举升状态
  39406. EM_LOAD_STATUS emLoadStatus; // 载重状态
  39407. BYTE byReserved[1008]; // 保留字节
  39408. }ALARM_VEHICLE_STATE_INFO;
  39409. ///@brief IMSI检验事件( DH_ALARM_IMSI_CHECK )
  39410. typedef struct tagALARM_IMSI_CHECK_INFO
  39411. {
  39412. int nIndex; // SIM卡槽序号
  39413. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39414. NET_TIME_EX UTC; // 事件发生的时间
  39415. char szIMSI[32]; // 检测到的IMSI号
  39416. BYTE byReserved[1024]; // 保留字节
  39417. }ALARM_IMSI_CHECK_INFO;
  39418. ///@brief 车辆盲区事件( DH_ALARM_BLIND_ALARM )
  39419. typedef struct tagALARM_BLIND_ALARM_INFO
  39420. {
  39421. int nChannelID; // 通道号
  39422. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39423. NET_TIME_EX UTC; // 事件发生的时间
  39424. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  39425. BYTE byReserved[1024]; // 保留字节
  39426. }ALARM_BLIND_ALARM_INFO;
  39427. ///@brief 车载人员维护事件( DH_ALARM_VEHICLE_MAINTAINCE )
  39428. typedef struct tagALARM_VEHICLE_MAINTAINCE_INFO
  39429. {
  39430. int nIndex; // 通道号
  39431. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39432. NET_TIME_EX UTC; // 事件发生的时间
  39433. char szMaintainer[32]; // 维护人员
  39434. char szMaintainerID[32]; // 维护人员ID
  39435. char szInfo[256]; // 自定义维护信息
  39436. BYTE byReserved[1024]; // 保留字节
  39437. }ALARM_VEHICLE_MAINTAINCE_INFO;
  39438. ///@brief 火警事件 (DH_ALARM_FIRE_DETECTION)
  39439. typedef struct tagALARM_FIRE_DETECTION_INFO
  39440. {
  39441. int nChannelID; // 通道号
  39442. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39443. NET_TIME_EX UTC; // 事件发生的时间
  39444. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  39445. BYTE byReserved[1024]; // 保留字节
  39446. }ALARM_FIRE_DETECTION_INFO;
  39447. ///@brief 车位锁状态
  39448. typedef enum tagEM_PARKINGLOCK_STATE
  39449. {
  39450. EM_PARKINGLOCK_STATE_UNKNOWN = 0, // 未知
  39451. EM_PARKINGLOCK_STATE_LOCKRISE, // 车位锁升起
  39452. EM_PARKINGLOCK_STATE_LOCKDOWN, // 车位锁降下
  39453. EM_PARKINGLOCK_STATE_LOCKERROR, // 状态异常
  39454. }EM_PARKINGLOCK_STATE;
  39455. ///@brief 触发源
  39456. typedef enum tagEM_TRIGGER_SOURCE
  39457. {
  39458. EM_TRIGGER_SOURCE_UNKNOWN = 0, // 未知
  39459. EM_TRIGGER_SOURCE_SWING_ARM, // 摆臂自动
  39460. EM_TRIGGER_SOURCE_BLUETOOTH, // 蓝牙控制
  39461. EM_TRIGGER_SOURCE_RS485, // 485通信控制
  39462. EM_TRIGGER_SOURCE_ULTRASOUND, // 超声检测
  39463. EM_TRIGGER_SOURCE_REMOTE_CONTROL, // 遥控器控制
  39464. }EM_TRIGGER_SOURCE;
  39465. ///@brief 车位锁状态变化事件( DH_ALARM_PARKINGLOCK_STATE )
  39466. typedef struct tagALARM_PARKINGLOCK_STATE_INFO
  39467. {
  39468. int nIndex; // 通道号
  39469. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  39470. NET_TIME_EX UTC; // 事件发生的时间
  39471. UINT nLane; // 车位号
  39472. EM_PARKINGLOCK_STATE emState; // 状态
  39473. EM_TRIGGER_SOURCE emTriggerSource; // 触发源
  39474. BYTE byReserved[1024]; // 保留字节
  39475. }ALARM_PARKINGLOCK_STATE_INFO;
  39476. ///@brief NAS服务器名称
  39477. typedef enum tagEM_SERVERNAME
  39478. {
  39479. EM_SERVERNAME_UNKNOWN, // 未知
  39480. EM_SERVERNAME_NFS, // NFS
  39481. EM_SERVERNAME_FTP, // FTP
  39482. EM_SERVERNAME_SAMBA, // SAMBA
  39483. EM_SERVERNAME_ISCSI, // ISCSI
  39484. }EM_SERVERNAME;
  39485. ///@brief NAS共享服务器异常报警信息(对应 DH_ALARM_NAS_SERVER_STATE)
  39486. typedef struct tagALARM_NAS_SERVER_STATE_INFO
  39487. {
  39488. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  39489. NET_TIME_EX UTC; // 事件发生的时间
  39490. EM_SERVERNAME emServerNames[4]; // NAS服务器名称
  39491. int nRetServerNamesNum; // 实际返回的NAS服务器名称个数
  39492. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  39493. BYTE byReserved[1024]; // 保留字节
  39494. }ALARM_NAS_SERVER_STATE_INFO;
  39495. ///@brief 存储池异常报警事件信息(对应 DH_ALARM_VOLUME_GROUP_FAULT)
  39496. typedef struct tagALARM_VOLUME_GROUP_FAULT_INFO
  39497. {
  39498. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  39499. NET_TIME_EX UTC; // 事件发生的时间
  39500. char szName[32]; // 异常存储卷名称
  39501. char szMembers[512][32]; // 存储卷的内容
  39502. int nRetMembersNum; // 实际返回的存储卷的内容个数
  39503. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  39504. BYTE byReserved[1024]; // 保留字节
  39505. }ALARM_VOLUME_GROUP_FAULT_INFO;
  39506. ///@brief 磁盘巡检报警事件信息(对应 DH_ALARM_DISK_CHECK)
  39507. typedef struct tagALARM_DISK_CHECK_INFO
  39508. {
  39509. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  39510. NET_TIME_EX UTC; // 事件发生的时间
  39511. char szName[128]; // 报警名称
  39512. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  39513. BYTE byReserved[1024]; // 保留字节
  39514. }ALARM_DISK_CHECK_INFO;
  39515. ///@brief 城市机动车违停事件信息(对应 DH_ALARM_CITY_MOTORPARKING)
  39516. typedef struct tagALARM_CITY_MOTORPARKING_INFO
  39517. {
  39518. int nChannelID; // 通道号
  39519. int nAction; // 事件动作: 0:脉冲 1:开始 2:停止
  39520. char szName[128]; // 事件名称
  39521. double PTS; // 时间戳(单位是毫秒)
  39522. NET_TIME_EX UTC; // 事件发生的时间
  39523. int nEventID; // 事件ID
  39524. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  39525. int nObjectNum; // 检测到的物体个数
  39526. DH_MSG_OBJECT stuObjects[64]; // 检测到的物体
  39527. char szPresetName[64]; // 事件触发的预置名称
  39528. UINT nPresetID; // 事件触发的预置点号
  39529. int nDetectRegionNum; // 检测区域顶点数
  39530. DH_POINT DetectRegion[20]; // 检测区域
  39531. char szSourceID[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  39532. UINT nParkingDuration; // 违停持续时长,单位:秒 缺省值0表示无意义
  39533. BOOL bPtzPosition; // stuPtzPosition 是否有效
  39534. PTZ_NORMALIZED_POSITION_UNIT stuPtzPosition; // 云台信息
  39535. EM_CITYMOTOR_STATUS emMotorStatus; // 车辆状态
  39536. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  39537. BYTE byReserved[2028]; // 保留字节
  39538. } ALARM_CITY_MOTORPARKING_INFO;
  39539. ///////////////////////////// 刻录会话 /////////////////////////////////////////
  39540. ///@brief CLIENT_StartBurnSession 接口输入参数
  39541. typedef struct tagNET_IN_START_BURN_SESSION
  39542. {
  39543. DWORD dwSize;
  39544. unsigned int nSessionID; // 会话ID
  39545. } NET_IN_START_BURN_SESSION;
  39546. ///@brief CLIENT_StartBurnSession 接口输出参数
  39547. typedef struct tagNET_OUT_START_BURN_SESSION
  39548. {
  39549. DWORD dwSize;
  39550. } NET_OUT_START_BURN_SESSION;
  39551. ///@brief 刻录模式
  39552. typedef enum tagNET_BURN_MODE
  39553. {
  39554. BURN_MODE_SYNC, // 同步
  39555. BURN_MODE_TURN, // 轮流
  39556. BURN_MODE_CYCLE, // 循环
  39557. } NET_BURN_MODE;
  39558. ///@brief 刻录扩展模式
  39559. typedef enum tagNET_BURN_EXTMODE
  39560. {
  39561. BURN_EXTMODE_UNKNOWN, // 未知
  39562. BURN_EXTMODE_NORMAL = 1, // 正常刻录
  39563. BURN_EXTMODE_NODISK, // 无盘刻录
  39564. } NET_BURN_EXTMODE;
  39565. ///@brief 刻录流格式
  39566. typedef enum tagNET_BURN_RECORD_PACK
  39567. {
  39568. BURN_PACK_DHAV, // DHAV
  39569. BURN_PACK_PS, // PS
  39570. BURN_PACK_ASF, // ASF
  39571. BURN_PACK_MP4, // MP4
  39572. BURN_PACK_TS, // TS
  39573. } NET_BURN_RECORD_PACK;
  39574. ///@brief CLIENT_StartBurn 接口输入参数
  39575. typedef struct tagNET_IN_START_BURN
  39576. {
  39577. DWORD dwSize;
  39578. DWORD dwDevMask; // 刻录设备掩码, 按位表示多个刻录设备组合
  39579. int nChannels[DH_MAX_BURN_CHANNEL_NUM]; // 刻录通道数组
  39580. int nChannelCount; // 刻录通道数
  39581. NET_BURN_MODE emMode; // 刻录模式
  39582. NET_BURN_RECORD_PACK emPack; // 刻录流格式
  39583. NET_BURN_EXTMODE emExtMode; // 刻录扩展模式
  39584. } NET_IN_START_BURN;
  39585. ///@brief CLIENT_StartBurn 接口输出参数
  39586. typedef struct tagNET_OUT_START_BURN
  39587. {
  39588. DWORD dwSize;
  39589. } NET_OUT_START_BURN;
  39590. ///@brief CLIENT_BurnMarkTag 接口输入参数
  39591. typedef struct tagNET_IN_BURN_MAAK_TAG
  39592. {
  39593. DWORD dwSize;
  39594. const char* pszDescInfo; // 标记描述信息
  39595. } NET_IN_BURN_MARK_TAG;
  39596. ///@brief CLIENT_BurnMarkTag 接口输出参数
  39597. typedef struct tagNET_OUT_BURN_MAAK_TAG
  39598. {
  39599. DWORD dwSize;
  39600. } NET_OUT_BURN_MARK_TAG;
  39601. ///@brief CLIENT_BurnChangeDisk 接口输入参数
  39602. typedef struct tagNET_IN_BURN_CHANGE_DISK
  39603. {
  39604. DWORD dwSize;
  39605. BOOL nAction; // 换盘动作, 0-开始, 1-结束
  39606. } NET_IN_BURN_CHANGE_DISK;
  39607. ///@brief CLIENT_BurnChangeDisk 接口输出参数
  39608. typedef struct tagNET_OUT_BURN_CHANGE_DISK
  39609. {
  39610. DWORD dwSize;
  39611. } NET_OUT_BURN_CHANGE_DISK;
  39612. ///@brief 刻录状态
  39613. typedef enum tagNET_BURN_STATE
  39614. {
  39615. BURN_STATE_STOP, // 停止
  39616. BURN_STATE_STOPING, // 停止中
  39617. BURN_STATE_INIT, // 初始化
  39618. BURN_STATE_BURNING, // 刻录中
  39619. BURN_STATE_PAUSE, // 暂停
  39620. BURN_STATE_CHANGE_DISK, // 换盘中
  39621. BURN_STATE_PREPARE_EXTRA_FILE, // 附件初始化
  39622. BURN_STATE_WAIT_EXTRA_FILE, // 等待附件刻录
  39623. BURN_STATE_UPLOAD_FILE_START, // 附件刻录中
  39624. BURN_STATE_CHECKING_DISK, // 检测光盘中
  39625. BURN_STATE_DISK_READY, // 光盘准备就绪
  39626. } NET_BURN_STATE;
  39627. ///@brief 刻录错误码
  39628. typedef enum tagNET_BURN_ERROR_CODE
  39629. {
  39630. BURN_CODE_NORMAL, // 正常
  39631. BURN_CODE_UNKNOWN_ERROR, // 未知错误
  39632. BURN_CODE_SPACE_FULL, // 刻录满
  39633. BURN_CODE_START_ERROR, // 开始刻录出错
  39634. BURN_CODE_STOP_ERROR, // 停止刻录出错
  39635. BURN_CODE_WRITE_ERROR, // 刻录出错
  39636. BURN_CODE_UNKNOWN, // 未知
  39637. } NET_BURN_ERROR_CODE;
  39638. ///@brief CLIENT_BurnGetState 接口输入参数
  39639. typedef struct tagNET_IN_BURN_GET_STATE
  39640. {
  39641. DWORD dwSize;
  39642. } NET_IN_BURN_GET_STATE;
  39643. ///@brief 光驱使用状态
  39644. typedef enum tagEM_NET_BURN_DEV_USED_STATE
  39645. {
  39646. EM_NET_BURN_DEV_USED_STATE_UNKNOWN, //未知
  39647. EM_NET_BURN_DEV_USED_STATE_STOP, //停止
  39648. EM_NET_BURN_DEV_USED_STATE_BURNING, //刻录中
  39649. }EM_NET_BURN_DEV_USED_STATE;
  39650. ///@brief 光盘状态
  39651. typedef enum tagEM_DISK_STATE
  39652. {
  39653. EM_DISK_STATE_UNKNOWN, // 未知
  39654. EM_DISK_STATE_EXIST, // 已放磁盘
  39655. EM_DISK_STATE_NO_EXIST, // 未放磁盘
  39656. EM_DISK_STATE_NEED_CHANGE, // 需要换盘
  39657. }EM_DISK_STATE;
  39658. ///@brief 刻录设备状态
  39659. typedef struct tagNET_BURN_DEV_STATE
  39660. {
  39661. DWORD dwSize;
  39662. int nDeviceID; // 光驱设备ID
  39663. char szDevName[DH_BURNING_DEV_NAMELEN]; // 光驱设备名称
  39664. DWORD dwTotalSpace; // 光驱总容量, 单位KB
  39665. DWORD dwRemainSpace; // 光驱剩余容量, 单位KB
  39666. EM_NET_BURN_DEV_USED_STATE emUsedType; // 光驱使用状态
  39667. NET_BURN_ERROR_CODE emError; // 单个光驱出错状态
  39668. EM_DISK_STATE emDiskState; // 光盘状态
  39669. } NET_BURN_DEV_STATE;
  39670. ///@brief CLIENT_BurnGetState 接口输出参数
  39671. typedef struct tagNET_OUT_BURN_GET_STATE
  39672. {
  39673. DWORD dwSize;
  39674. NET_BURN_STATE emState; // 刻录状态
  39675. NET_BURN_ERROR_CODE emErrorCode; // 错误码
  39676. DWORD dwDevMask; // 刻录设备掩码, 按位表示多个刻录设备组合
  39677. int nChannels[DH_MAX_BURN_CHANNEL_NUM]; // 刻录通道数组
  39678. int nChannelCount; // 刻录通道数
  39679. NET_BURN_MODE emMode; // 刻录模式
  39680. NET_BURN_RECORD_PACK emPack; // 刻录流格式
  39681. int nFileIndex; // 当前刻录文件编号
  39682. NET_TIME stuStartTime; // 刻录开始时间
  39683. NET_BURN_DEV_STATE stuDevState[DH_MAX_BURNING_DEV_NUM]; // 刻录设备状态
  39684. int nRemainTime; // 刻录剩余时间, 单位秒, -1代表无效
  39685. NET_BURN_EXTMODE emExtMode; // 扩展模式,当为无盘刻录时,stuDevState可能无效
  39686. } NET_OUT_BURN_GET_STATE;
  39687. ///@brief fAttachBurnStateCB 参数
  39688. typedef struct tagNET_CB_BURNSTATE
  39689. {
  39690. DWORD dwSize;
  39691. const char* szState; // 消息类型
  39692. //"UploadFileStart":可以开始附件上传
  39693. //"InitBurnDevice":初始化刻录设备
  39694. //"Burning":刻录中
  39695. //"BurnExtraFileStop":刻录停止
  39696. //"BurnFilePause":刻录暂停
  39697. //"SpaceFull":刻录空间满
  39698. //"BurnFileError":刻录出错
  39699. const char* szFileName; // 当前刻录附件文件名,用于"UploadFileStart"开始附件上传消息
  39700. unsigned int dwTotalSpace; // 总容量,单位KB,用于"Burning"刻录中,显示容量或计算进度
  39701. unsigned int dwRemainSpace; // 剩余容量,单位KB,用于"Burning"刻录中
  39702. const char* szDeviceName; // 刻录设备名称,用于区分不同的刻录设备
  39703. int nRemainTime; // 刻录剩余时间, 单位秒, -1代表无效
  39704. }NET_CB_BURNSTATE;
  39705. ///@brief 刻录设备回调函数原形,lAttachHandle是CLIENT_AttachBurnState返回值, 每次1条,pBuf->dwSize == nBufLen
  39706. typedef void (CALLBACK *fAttachBurnStateCB) (LLONG lLoginID, LLONG lAttachHandle, NET_CB_BURNSTATE* pBuf, int nBufLen, LDWORD dwUser);
  39707. ///@brief 刻录设备回调扩展函数原形
  39708. typedef void (CALLBACK *fAttachBurnStateCBEx)(LLONG lLoginID, LLONG lAttachHandle, NET_OUT_BURN_GET_STATE* pBuf, int nBufLen, LDWORD dwUser);
  39709. ///@brief CLIENT_AttachBurnState()输入参数
  39710. typedef struct tagNET_IN_ATTACH_STATE
  39711. {
  39712. DWORD dwSize;
  39713. const char* szDeviceName; // 光盘名称,如"/dev/sda"
  39714. fAttachBurnStateCB cbAttachState; // 刻录监听回调
  39715. LDWORD dwUser; // 用户数据
  39716. LLONG lBurnSession; // 刻录会话句柄, CLIENT_StartBurnSession的返回值. 该值为0时, szDeviceName有效, 此时按刻录设备订阅刻录状态
  39717. fAttachBurnStateCBEx cbAttachStateEx; // 扩展刻录监听回调
  39718. LDWORD dwUserEx; // 扩展刻录监听回调用户数据
  39719. }NET_IN_ATTACH_STATE;
  39720. ///@brief CLIENT_AttachBurnState 输出参数
  39721. typedef struct tagNET_OUT_ATTACH_STATE
  39722. {
  39723. DWORD dwSize;
  39724. }NET_OUT_ATTACH_STATE;
  39725. ///@brief 刻录设备回调函数原形,lUploadHandle是CLIENT_StartUploadFileBurned返回值
  39726. typedef void (CALLBACK *fBurnFileCallBack) (LLONG lLoginID, LLONG lUploadHandle, int nTotalSize, int nSendSize, LDWORD dwUser);
  39727. ///@brief CLIENT_StartUploadFileBurned()输入参数
  39728. typedef struct tagNET_IN_FILEBURNED_START
  39729. {
  39730. DWORD dwSize;
  39731. const char* szMode; // 文件上传方式
  39732. // "append", 追加模式,此时刻录文件名固定为" FILE.zip ",filename被忽略
  39733. // "evidence", 证据等大附件, 要求单独刻录的光盘内
  39734. const char* szDeviceName; // 光盘名称,如“/dev/sda”
  39735. const char* szFilename; // 本地文件名称
  39736. fBurnFileCallBack cbBurnPos; // 刻录进度回调
  39737. LDWORD dwUser; // 用户数据
  39738. LLONG lBurnSession; // 刻录句柄, CLIENT_StartBurnSession的返回值. 该值为0时, szDeviceName有效, 此时按刻录设备订阅刻录状态
  39739. }NET_IN_FILEBURNED_START;
  39740. ///@brief CLIENT_StartUploadFileBurned 输出参数
  39741. typedef struct tagNET_OUT_FILEBURNED_START
  39742. {
  39743. DWORD dwSize;
  39744. char szState[DH_MAX_NAME_LEN]; // "start":系统准备就绪,可以开始上传; "busy":系统忙,稍后在试。"error":系统未在刻录中,返回出错,请求失败
  39745. }NET_OUT_FILEBURNED_START;
  39746. ///@brief 刻录案件信息
  39747. typedef struct tagNET_BURN_CASE_INFO
  39748. {
  39749. DWORD dwSize;
  39750. int nChannel; // 通道号
  39751. NET_TIME stuStartTime; // 刻录起始时间
  39752. NET_TIME stuEndTime; // 刻录结束时间
  39753. int nIndex; // 序号
  39754. int nCode; // 编号
  39755. int nDiscNum; // 光盘编号
  39756. char szName[DH_COMMON_STRING_128]; // 名称
  39757. char szPlace[DH_COMMON_STRING_128]; // 办案地点
  39758. char szInvestigator[DH_MAX_CASE_PERSON_NUM][DH_COMMON_STRING_32]; // 办案人员
  39759. char szXyfs[DH_MAX_CASE_PERSON_NUM][DH_COMMON_STRING_32]; // ArgXyf
  39760. char szMemo[DH_COMMON_STRING_256]; // 备注
  39761. char szVideoName[DH_COMMON_STRING_128]; // 录像名称
  39762. char szRecorder[DH_COMMON_STRING_32]; // 刻录人
  39763. } NET_BURN_CASE_INFO;
  39764. ///@brief 刻录设备回调函数原形,lAttachHandle是CLIENT_AttachBurnCase返回值
  39765. typedef void (CALLBACK *fBurnCaseCallBack) (LLONG lAttachHandle, NET_BURN_CASE_INFO* pBuf, DWORD dwBufLen, void* pReserved, LDWORD dwUser);
  39766. ///@brief CLIENT_AttachBurnCase 接口输入参数
  39767. typedef struct tagNET_IN_ATTACH_BURN_CASE
  39768. {
  39769. DWORD dwSize;
  39770. fBurnCaseCallBack cbBurnCase; // 案件信息回调函数
  39771. LDWORD dwUser; // 用户数据
  39772. } NET_IN_ATTACH_BURN_CASE;
  39773. ///@brief CLIENT_AttachBurnCase 接口输出参数
  39774. typedef struct tagNET_OUT_ATTACH_BURN_CASE
  39775. {
  39776. DWORD dwSize;
  39777. } NET_OUT_ATTACH_BURN_CASE;
  39778. ///@brief 刻录设备总线类型
  39779. typedef enum tagEM_NET_BURN_DEV_BUS_TYPE
  39780. {
  39781. EM_NET_BURN_DEV_BUS_TYPE_UNKNOWN, // 未知
  39782. EM_NET_BURN_DEV_BUS_TYPE_IDE, // IDE
  39783. EM_NET_BURN_DEV_BUS_TYPE_USB, // USB
  39784. EM_NET_BURN_DEV_BUS_TYPE_1394, // 1394
  39785. EM_NET_BURN_DEV_BUS_TYPE_SATA, // SATA
  39786. EM_NET_BURN_DEV_BUS_TYPE_ESATA, // ESATA
  39787. }EM_NET_BURN_DEV_BUS_TYPE;
  39788. ///@brief 刻录设备介质类型
  39789. typedef enum tagEM_NET_BURN_DEV_BK_TYPE
  39790. {
  39791. EM_NET_BURN_DEV_BK_TYPE_UNKNOWN, // 未知
  39792. EM_NET_BURN_DEV_BK_TYPE_DHFS, // 文件系统
  39793. EM_NET_BURN_DEV_BK_TYPE_DISK, // 移动硬盘
  39794. EM_NET_BURN_DEV_BK_TYPE_CDRW, // 光盘刻录
  39795. }EM_NET_BURN_DEV_BK_TYPE;
  39796. ///@brief 刻录设备状态信息
  39797. typedef struct tagNET_BURN_DEV_STATE_INFO
  39798. {
  39799. char szName[DH_COMMON_STRING_256]; // 刻录设备名称
  39800. unsigned int nTotalSpace; // 光驱总容量,单位KB
  39801. unsigned int nFreeSpace; // 光驱剩余容量,单位KB
  39802. EM_NET_BURN_DEV_TRAY_TYPE emTrayType; // 光驱托盘状态
  39803. EM_NET_BURN_DEV_OPERATE_TYPE emOperateType; // 光驱使用状态
  39804. EM_NET_BURN_DEV_BUS_TYPE emBusType; // 刻录设备总线类型
  39805. EM_NET_BURN_DEV_BK_TYPE emBkType; // 刻录设备介质类型
  39806. } NET_BURN_DEV_STATE_INFO;
  39807. ///@brief 刻录设备状态信息列表
  39808. typedef struct tagNET_BURN_DEV_STATE_INFO_LIST
  39809. {
  39810. unsigned int nListCount; // 列表有效刻录设备状态信息个数,与 pstuNetBurnDevStateInfo 配合使用
  39811. NET_BURN_DEV_STATE_INFO *pstuNetBurnDevStateInfo; // 刻录设备状态信息指针,与 nListCount 配合使用
  39812. }NET_BURN_DEV_STATE_INFO_LIST;
  39813. ///@brief 刻录设备状态回调函数原形,lAttachHandle 是 CLIENT_AttachBurnDevState 返回值
  39814. typedef void (CALLBACK *fBurnDevStateCallBack) (LLONG lAttachHandle, const NET_BURN_DEV_STATE_INFO_LIST* pBuf, DWORD dwBufLen, void* pReserved, LDWORD dwUser);
  39815. ///@brief CLIENT_AttachBurnDevState 接口输入参数
  39816. typedef struct tagNET_IN_ATTACH_BURN_DEV_STATE
  39817. {
  39818. DWORD dwSize;
  39819. fBurnDevStateCallBack cbBurnDevState; // 刻录设备状态回调函数
  39820. LDWORD dwUser; // 用户数据
  39821. } NET_IN_ATTACH_BURN_DEV_STATE;
  39822. ///@brief CLIENT_AttachBurnDevState 接口输出参数
  39823. typedef struct tagNET_OUT_ATTACH_BURN_DEV_STATE
  39824. {
  39825. DWORD dwSize;
  39826. } NET_OUT_ATTACH_BURN_DEV_STATE;
  39827. /////////////////////////////// 案件自动备份系统(刻录) ///////////////////////////////////////
  39828. #define CASE_BACK_UP_CHANNEL_MAX_NUM 32 // 案件刻录通道最大数目
  39829. #define CASE_BACK_UP_FILE_TYPE_MAX_NUM 8 // 案件刻录文件类型最大数目
  39830. #define CASE_BACK_UP_INQUEST_INFO_MAX_NUM 8 // 案件刻录审讯信息最大查询数目
  39831. #define CASE_BACK_UP_DEVICE_MAX_NUM 8 // 案件刻录最大设备数目
  39832. ///@brief 案件刻录文件类型
  39833. typedef enum tagEM_CASE_BACK_UP_FILE_TYPE
  39834. {
  39835. EM_CASE_BACK_UP_FILE_TYPE_UNKNOWN, // 未知
  39836. EM_CASE_BACK_UP_FILE_TYPE_DAV, // DAV
  39837. EM_CASE_BACK_UP_FILE_TYPE_JPG, // JPG
  39838. EM_CASE_BACK_UP_FILE_TYPE_TXT, // TXT
  39839. }EM_CASE_BACK_UP_FILE_TYPE;
  39840. ///@brief 案件刻录备份类型
  39841. typedef enum tagEM_CASE_BACK_UP_MODE_TYPE
  39842. {
  39843. EM_CASE_BACK_UP_MODE_TYPE_UNKNOWN, // 未知的
  39844. EM_CASE_BACK_UP_MODE_TYPE_SYNC, // 同步刻录备份 多盘备份相同内容
  39845. EM_CASE_BACK_UP_MODE_TYPE_CYCLE, // 循环刻录备份 通过换盘来完成所有内容的备份
  39846. }EM_CASE_BACK_UP_MODE_TYPE;
  39847. ///@brief 视频文件备份格式
  39848. typedef enum tagEM_CASE_BACK_UP_PACK_TYPE
  39849. {
  39850. EM_CASE_BACK_UP_PACK_TYPE_UNKNOWN, // 未知的
  39851. EM_CASE_BACK_UP_PACK_TYPE_DHAV, // DHAV
  39852. EM_CASE_BACK_UP_PACK_TYPE_MP4, // MP4
  39853. EM_CASE_BACK_UP_PACK_TYPE_PS, // PS
  39854. }EM_CASE_BACK_UP_PACK_TYPE;
  39855. ///@brief 案件刻录备份查询信息
  39856. typedef struct tagNET_CASE_BACK_UP_INQUEST_INFO
  39857. {
  39858. char szTitle[128]; // 字段标题
  39859. char szText[128]; // 字段内容
  39860. BYTE byReserved[512]; // 保留字节
  39861. }NET_CASE_BACK_UP_INQUEST_INFO;
  39862. ///@brief 案件备份刻录查询条件
  39863. typedef struct tagNET_CASE_BACK_UP_QUERY_CONDITION
  39864. {
  39865. int nChannelNum; // 查询通道数目
  39866. int nChannels[CASE_BACK_UP_CHANNEL_MAX_NUM]; // 查询通道数组
  39867. NET_TIME stuStartTime; // 开始时间
  39868. NET_TIME stuEndTime; // 结束时间
  39869. int nFileTypeNum; // 文件类型数目
  39870. EM_CASE_BACK_UP_FILE_TYPE emFileTypes[CASE_BACK_UP_FILE_TYPE_MAX_NUM]; // 文件类型数组
  39871. char szCaseNumber[256]; // 案件编号
  39872. int nInquestInfoNum; // 查询字段数目
  39873. NET_CASE_BACK_UP_INQUEST_INFO stuInquestInfo[CASE_BACK_UP_INQUEST_INFO_MAX_NUM]; // 查询字段数组
  39874. BYTE byReserved[1024]; // 保留字节
  39875. }NET_CASE_BACK_UP_QUERY_CONDITION;
  39876. ///@brief 案件备份刻录模式信息
  39877. typedef struct tagNET_CASE_BACK_UP_MODE
  39878. {
  39879. EM_CASE_BACK_UP_MODE_TYPE emBackupMode; // 备份模式
  39880. int nDeviceNum; // 设备数目
  39881. char szDeviceName[CASE_BACK_UP_DEVICE_MAX_NUM][256]; // 设备数组
  39882. EM_CASE_BACK_UP_PACK_TYPE emPackType; // 备份文件类型
  39883. BOOL bExtraFile; // 是否有附件
  39884. BOOL bDataCheck; // 是否有数据校验
  39885. BYTE byReserved[1024]; // 保留字节
  39886. }NET_CASE_BACK_UP_MODE;
  39887. ///@brief 开始案件备份刻录入参
  39888. typedef struct tagNET_IN_START_CASE_BACK_UP
  39889. {
  39890. DWORD dwSize; // 结构体大小
  39891. NET_CASE_BACK_UP_QUERY_CONDITION stuCondition; // 查询条件
  39892. NET_CASE_BACK_UP_MODE stuMode; // 备份模式
  39893. }NET_IN_START_CASE_BACK_UP;
  39894. ///@brief 开始案件备份刻录失败错误码类型
  39895. typedef enum tagEM_CASE_BACK_UP_START_ERROR_CODE
  39896. {
  39897. EM_CASE_BACK_UP_START_ERROR_CODE_UNKNOWN, // 未知的
  39898. EM_CASE_BACK_UP_START_ERROR_CODE_NORMAL, // 正常
  39899. EM_CASE_BACK_UP_START_ERROR_CODE_BACKUPING, // 该案件正在备份中
  39900. EM_CASE_BACK_UP_START_ERROR_CODE_NO_FINDFILE, // 未发现文件
  39901. EM_CASE_BACK_UP_START_ERROR_CODE_DEVICE_BUSY, // 设备忙
  39902. EM_CASE_BACK_UP_START_ERROR_CODE_NO_SUPPORT_MEDIA_FORMAT, // 不支持的媒体格式
  39903. EM_CASE_BACK_UP_START_ERROR_CODE_DEVICE_ERROR, // 备份设备错误
  39904. EM_CASE_BACK_UP_START_ERROR_CODE_BACKUP_FILE_OVER_LIMIT, // 备份文件数量超过极限值
  39905. EM_CASE_BACK_UP_START_ERROR_CODE_OTHER_ERROR, // 其它错误
  39906. }EM_CASE_BACK_UP_START_ERROR_CODE;
  39907. ///@brief 开始案件备份刻录出参
  39908. typedef struct tagNET_OUT_START_CASE_BACK_UP
  39909. {
  39910. DWORD dwSize; // 结构体大小
  39911. EM_CASE_BACK_UP_START_ERROR_CODE emErrorCode; // 错误码
  39912. }NET_OUT_START_CASE_BACK_UP;
  39913. ///@brief 停止案件备份刻录入参
  39914. typedef struct tagNET_IN_STOP_CASE_BACK_UP
  39915. {
  39916. DWORD dwSize; // 结构体大小
  39917. }NET_IN_STOP_CASE_BACK_UP;
  39918. ///@brief 停止案件备份刻录出参
  39919. typedef struct tagNET_OUT_STOP_CASE_BACK_UP
  39920. {
  39921. DWORD dwSize; // 结构体大小
  39922. }NET_OUT_STOP_CASE_BACK_UP;
  39923. ///@brief 案件备份刻录状态
  39924. typedef enum tagEM_CASE_BACK_UP_STATE_TYPE
  39925. {
  39926. EM_CASE_BACK_UP_STATE_TYPE_UNKNOWN, // 未知的
  39927. EM_CASE_BACK_UP_STATE_TYPE_INIT, // 初始化
  39928. EM_CASE_BACK_UP_STATE_TYPE_STOP, // 停止
  39929. EM_CASE_BACK_UP_STATE_TYPE_STOPPING, // 停止中
  39930. EM_CASE_BACK_UP_STATE_TYPE_BACKUPING, // 备份中
  39931. EM_CASE_BACK_UP_STATE_TYPE_CHANGE_DISK, // 换盘中
  39932. EM_CASE_BACK_UP_STATE_TYPE_PREPARE_EXTRA_FILE, // 附件初始化
  39933. EM_CASE_BACK_UP_STATE_TYPE_WAIT_EXTRA_FILE, // 等待刻录附件
  39934. EM_CASE_BACK_UP_STATE_TYPE_UPLOAD_FILE_START, // 附件刻录中
  39935. }EM_CASE_BACK_UP_STATE_TYPE;
  39936. ///@brief 案件备份刻录状态错误代码
  39937. typedef enum tagEM_CASE_BACK_UP_ERROR_CODE
  39938. {
  39939. EM_CASE_BACK_UP_ERROR_CODE_UNKNOWN, // 未知的
  39940. EM_CASE_BACK_UP_ERROR_CODE_NORMAL, // 正常
  39941. EM_CASE_BACK_UP_ERROR_CODE_SPACE_FULL, // 刻录满
  39942. EM_CASE_BACK_UP_ERROR_CODE_START_ERROR, // 开始刻录出错
  39943. EM_CASE_BACK_UP_ERROR_CODE_STOP_ERROR, // 停止刻录出错
  39944. EM_CASE_BACK_UP_ERROR_CODE_WRITE_ERROR, // 刻录文件出错
  39945. EM_CASE_BACK_UP_ERROR_CODE_OTHER_ERROR, // 其他错误
  39946. }EM_CASE_BACK_UP_ERROR_CODE;
  39947. ///@brief 案件备份刻录状态数据
  39948. typedef struct tagNET_CASE_BACK_UP_STATE
  39949. {
  39950. EM_CASE_BACK_UP_STATE_TYPE emBackUpState; // 当前刻录状态
  39951. EM_CASE_BACK_UP_ERROR_CODE emErrorCode; // 错误代码
  39952. BYTE byReserved[512]; // 保留字节
  39953. }NET_CASE_BACK_UP_STATE;
  39954. ///@brief 案件备份刻录文件信息
  39955. typedef struct tagNET_CASE_BACK_UP_FILE_INFO
  39956. {
  39957. int nFileCount; // 需要刻录的所有文件的总数量
  39958. int nCurFileIndex; // 当前正在刻录的文件的索引号
  39959. TP_U64 nFileTotalLength; // 需要刻录的总数据大小
  39960. TP_U64 nCurBackupTotalLength; // 当前已经刻录了多少数据
  39961. TP_U64 nCurBackupFileTotalLength; // 当前正在刻录的文件的大小
  39962. TP_U64 nCurBackupFileLength; // 当前正在刻录的文件已经刻录的数据大小
  39963. BYTE byReserved[512]; // 保留字节
  39964. }NET_CASE_BACK_UP_FILE_INFO;
  39965. ///@brief 案件备份刻录设备信息
  39966. typedef struct tagNET_CASE_BACK_UP_DEVICE_INFO
  39967. {
  39968. int nDeviceID; // 设备ID
  39969. char szDeviceName[256]; // 设备名称
  39970. int nTotalSpace; // 设备总的容量 单位KB
  39971. int nRemainSpace; // 设备剩余容量 单位KB
  39972. EM_CASE_BACK_UP_STATE_TYPE emBackUpState; // 备份状态
  39973. EM_CASE_BACK_UP_ERROR_CODE emErrorCode; // 错误代码
  39974. BYTE byReserved[512]; // 保留字节
  39975. }NET_CASE_BACK_UP_DEVICE_INFO;
  39976. ///@brief 案件备份刻录状态
  39977. typedef struct tagNET_OUT_CASE_BACK_UP_STATE
  39978. {
  39979. DWORD dwSize; // 结构体大小
  39980. NET_CASE_BACK_UP_STATE stuBackUpState; // 备份状态信息
  39981. NET_CASE_BACK_UP_FILE_INFO stuFileInfo; // 备份文件信息
  39982. int nDeviceNum; // 设备数量
  39983. NET_CASE_BACK_UP_DEVICE_INFO stuDeviceInfo[CASE_BACK_UP_DEVICE_MAX_NUM]; // 设备信息数组
  39984. }NET_OUT_CASE_BACK_UP_STATE;
  39985. ///@brief 案件备份刻录状态回调函数
  39986. typedef void (CALLBACK *fAttachCaseBackUpState)(LLONG lLoginID, LLONG lAttachHandle, const NET_OUT_CASE_BACK_UP_STATE* pBuf, int nBufLen, LDWORD dwUser);
  39987. ///@brief 案件备份刻录状态attach操作入参
  39988. typedef struct tagNET_IN_ATTACH_CASE_BACK_UP_STATE
  39989. {
  39990. DWORD dwSize; // 结构体大小
  39991. fAttachCaseBackUpState cbAttachState; // 回调函数
  39992. LDWORD dwUser; // 用户数据
  39993. }NET_IN_ATTACH_CASE_BACK_UP_STATE;
  39994. ///@brief 案件备份刻录状态attach操作出参
  39995. typedef struct tagNET_OUT_ATTACH_CASE_BACK_UP_STATE
  39996. {
  39997. DWORD dwSize; // 结构体大小
  39998. }NET_OUT_ATTACH_CASE_BACK_UP_STATE;
  39999. ///@brief 案件备份刻录状态detach操作入参
  40000. typedef struct tagNET_IN_DETACH_CASE_BACK_UP_STATE
  40001. {
  40002. DWORD dwSize; // 结构体大小
  40003. }NET_IN_DETACH_CASE_BACK_UP_STATE;
  40004. ///@brief 案件备份刻录状态detach操作出参
  40005. typedef struct tagNET_OUT_DETACH_CASE_BACK_UP_STATE
  40006. {
  40007. DWORD dwSize; // 结构体大小
  40008. }NET_OUT_DETACH_CASE_BACK_UP_STATE;
  40009. ///@brief 获取案件备份刻录信息入参
  40010. typedef struct tagNET_IN_GET_CASE_BACK_UP_INFO
  40011. {
  40012. DWORD dwSize; // 结构体大小
  40013. }NET_IN_GET_CASE_BACK_UP_INFO;
  40014. ///@brief 获取案件备份刻录信息出参
  40015. typedef struct tagNET_OUT_GET_CASE_BACK_UP_INFO
  40016. {
  40017. DWORD dwSize; // 结构体大小
  40018. NET_CASE_BACK_UP_QUERY_CONDITION stuCondition; // 备份条件
  40019. NET_CASE_BACK_UP_MODE stuMode; // 备份模式
  40020. }NET_OUT_GET_CASE_BACK_UP_INFO;
  40021. ///@brief 开始案件备份刻录
  40022. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartBackUpCase(LLONG lLoginID, const NET_IN_START_CASE_BACK_UP* pstInParam, NET_OUT_START_CASE_BACK_UP *pstOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  40023. ///@brief 停止案件备份刻录
  40024. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopBackUpCase(LLONG lLoginID, const NET_IN_STOP_CASE_BACK_UP* pstInParam, NET_OUT_STOP_CASE_BACK_UP *pstOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  40025. ///@brief 监听案件备份刻录状态
  40026. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachBackUpCaseState(LLONG lLoginID, const NET_IN_ATTACH_CASE_BACK_UP_STATE* pstInParam, NET_OUT_ATTACH_CASE_BACK_UP_STATE *pstOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  40027. ///@brief 取消监听案件备份刻录状态
  40028. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachBackUpCaseState(LLONG lAttachHandle, const NET_IN_DETACH_CASE_BACK_UP_STATE* pstInParam, NET_OUT_DETACH_CASE_BACK_UP_STATE *pstOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  40029. ///@brief 获取案件备份刻录信息
  40030. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCaseBackUpInfo(LLONG lLoginID, const NET_IN_GET_CASE_BACK_UP_INFO* pstInParam, NET_OUT_GET_CASE_BACK_UP_INFO *pstOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  40031. /////////////////////////////// 案件自动备份系统(刻录) ///////////////////////////////////////
  40032. /////////////////////////////// 组合通道 ///////////////////////////////////////
  40033. #define NET_COMPOSE_CHANNEL_MAX_SPLIT_WINDOW_NUM 36 // 组合通道最大分割窗口数目
  40034. ///@brief 临时分割窗口信息
  40035. typedef struct tagNET_TEMP_SPLIT_WINDOW_INFO
  40036. {
  40037. int nChannel; // 叠加画面通道号
  40038. BOOL bAudio; // 是否混合音频
  40039. DH_RECT stuPosition; // 窗口坐标,采用8192坐标系
  40040. BYTE byReserved[128]; // 保留字节
  40041. }NET_TEMP_SPLIT_WINDOW_INFO;
  40042. ///@brief 获取临时分割窗口信息入参
  40043. typedef struct tagNET_IN_GET_TEMP_SPLIT
  40044. {
  40045. DWORD dwSize; // 结构体大小
  40046. int nComposeChannel; // 组合通道号
  40047. }NET_IN_GET_TEMP_SPLIT;
  40048. ///@brief 获取临时分割窗口信息出参
  40049. typedef struct tagNET_OUT_GET_TEMP_SPLIT
  40050. {
  40051. DWORD dwSize; // 结构体大小
  40052. DH_SPLIT_MODE emSplitMode; // 分割模式,目前只支持最大32画面分割模式
  40053. int nSplitNum; // 临时分割窗口数量,目前只支持最大32画面分割
  40054. NET_TEMP_SPLIT_WINDOW_INFO stuWindowInfo[NET_COMPOSE_CHANNEL_MAX_SPLIT_WINDOW_NUM]; // 临时分割窗口信息数组
  40055. }NET_OUT_GET_TEMP_SPLIT;
  40056. ///@brief 设置临时分割窗口信息入参
  40057. typedef struct tagNET_IN_SET_TEMP_SPLIT
  40058. {
  40059. DWORD dwSize; // 结构体大小
  40060. int nComposeChannel; // 组合通道号
  40061. DH_SPLIT_MODE emSplitMode; // 分割模式,目前只支持最大32画面分割模式
  40062. int nSplitNum; // 临时分割窗口数量,目前只支持最大32画面分割
  40063. NET_TEMP_SPLIT_WINDOW_INFO stuWindowInfo[NET_COMPOSE_CHANNEL_MAX_SPLIT_WINDOW_NUM]; // 临时分割窗口信息数组
  40064. }NET_IN_SET_TEMP_SPLIT;
  40065. ///@brief 设置临时分割窗口信息出参
  40066. typedef struct tagNET_OUT_SET_TEMP_SPLIT
  40067. {
  40068. DWORD dwSize; // 结构体大小
  40069. }NET_OUT_SET_TEMP_SPLIT;
  40070. ///@brief 分割窗口信息
  40071. typedef struct tagNET_TEMP_SOURCE_WINDOW_INFO
  40072. {
  40073. int nWindowID; // 窗口编号,从0开始
  40074. int nUniqueChannel; // 窗口绑定的通道源
  40075. BYTE byReserved[128]; // 保留字节
  40076. }NET_TEMP_SOURCE_WINDOW_INFO;
  40077. ///@brief 设置临时的分割窗口数据源入参
  40078. typedef struct tagNET_IN_SET_TEMP_SOURCE
  40079. {
  40080. DWORD dwSize; // 结构体大小
  40081. int nComposeChannel; // 组合通道号
  40082. int nWindowNum; // 窗口数量
  40083. NET_TEMP_SOURCE_WINDOW_INFO stuWindowInfo[NET_COMPOSE_CHANNEL_MAX_SPLIT_WINDOW_NUM]; // 窗口信息数组
  40084. }NET_IN_SET_TEMP_SOURCE;
  40085. ///@brief 设置临时的分割窗口数据源出参
  40086. typedef struct tagNET_OUT_SET_TEMP_SOURCE
  40087. {
  40088. DWORD dwSize; // 结构体大小
  40089. }NET_OUT_SET_TEMP_SOURCE;
  40090. ///@brief 设置临时的分割窗口信息
  40091. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetTempSplit(LLONG lLoginID, const NET_IN_SET_TEMP_SPLIT* pstInParam, NET_OUT_SET_TEMP_SPLIT *pstOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  40092. ///@brief 获取临时的分割窗口信息
  40093. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetTempSplit(LLONG lLoginID, const NET_IN_GET_TEMP_SPLIT* pstInParam, NET_OUT_GET_TEMP_SPLIT *pstOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  40094. ///@brief 设置临时的分割窗口数据源
  40095. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetTempSource(LLONG lLoginID, const NET_IN_SET_TEMP_SOURCE* pstInParam, NET_OUT_SET_TEMP_SOURCE *pstOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  40096. /////////////////////////////// 组合通道 ///////////////////////////////////////
  40097. /////////////////////////////// Storage ///////////////////////////////////////
  40098. ///@brief 远程存储写入结果
  40099. typedef enum tagNET_STORAGE_WRITE_STATE
  40100. {
  40101. NS_WRITE_UNKNOWN, // 未知
  40102. NS_WRITE_OK, // 成功
  40103. NS_WRITE_DISK_IO_ERROR, // 磁盘IO错误
  40104. NS_WRITE_DISK_NOT_READY, // 磁盘未准备好
  40105. NS_WRITE_DISK_FAULT, // 磁盘故障
  40106. NS_WRITE_STREAM_NOT_EXIST, // 数据流ID不存在
  40107. NS_WRITE_MOUNT_DISK_ERROR, // 磁盘挂载错误
  40108. } NET_STORAGE_WRITE_STATE;
  40109. ///@brief 远程区块信息
  40110. typedef struct tagNET_STORAGE_BLOCK
  40111. {
  40112. DWORD dwSize;
  40113. unsigned int nID; // CQFS块ID
  40114. unsigned int nStreamID; // 数据流唯一标识
  40115. unsigned int nRecycleTimestamp; // CQFS回收时间戳
  40116. unsigned int nBeginTimestamp; // 块内数据开始时间戳
  40117. unsigned int nEndTimestamp; // 块内数据结束时间戳
  40118. unsigned int nLockCount; // 锁定计数值, 0表示未锁定
  40119. char szDiskUUID[DH_COMMON_STRING_64]; // 磁盘UUID
  40120. } NET_STORAGE_BLOCK;
  40121. ///@brief 远程存储的信息状态
  40122. typedef struct tagNET_STORAGE_WRITE_INFO
  40123. {
  40124. DWORD dwSize;
  40125. NET_STORAGE_WRITE_STATE emState; // 写入结果
  40126. int nBlockCount; // 块数量
  40127. NET_STORAGE_BLOCK stuBlocks[DH_MAX_NET_STRORAGE_BLOCK_NUM]; // 块信息
  40128. } NET_STORAGE_WRITE_INFO;
  40129. ///@brief \fn 订阅写入远程存储的信息状态回调函数
  40130. typedef void (CALLBACK *fNetStorageAttachWriteInfoCB)(LLONG lAttachHandle, NET_STORAGE_WRITE_INFO* pBuf, int nBufLen, LDWORD dwUser);
  40131. ///@brief CLIENT_NetStorageAttachWriteInfo 接口输入参数
  40132. typedef struct tagNET_IN_STORAGE_ATTACH_WRITE_INFO
  40133. {
  40134. DWORD dwSize;
  40135. const char* pszName; // 远程存储名称, 值从NAS配置中获取
  40136. fNetStorageAttachWriteInfoCB cbISCSIBlcok; // 回调函数
  40137. LDWORD dwUser; // 用户数据
  40138. } NET_IN_STORAGE_ATTACH_WRITE_INFO;
  40139. ///@brief CLIENT_NetStorageAttachWriteInfo 接口输出参数
  40140. typedef struct tagNET_OUT_STORAGE_ATTACH_WRITE_INFO
  40141. {
  40142. DWORD dwSize;
  40143. } NET_OUT_STORAGE_ATTACH_WRITE_INFO;
  40144. ///@brief CLIENT_NetStorageGetWriteInfo 接口输入参数
  40145. typedef struct tagNET_IN_STORAGE_GET_WRITE_INFO
  40146. {
  40147. DWORD dwSize;
  40148. const char* pszName; // 远程存储名称
  40149. } NET_IN_STORAGE_GET_WRITE_INFO;
  40150. ///@brief CLIENT_NetStorageGetWriteInfo 接口输出参数
  40151. typedef struct tagNET_OUT_STORAGE_GET_WRITE_INFO
  40152. {
  40153. DWORD dwSize;
  40154. int nBlockCount; // 块数量
  40155. NET_STORAGE_BLOCK stuBlocks[DH_MAX_NET_STRORAGE_BLOCK_NUM]; // 块信息
  40156. } NET_OUT_STORAGE_GET_WRITE_INFO;
  40157. ///@brief RAID操作类型
  40158. typedef enum tagNET_RAID_OPERATE_TYPE
  40159. {
  40160. NET_RAID_OPERATE_ADD, // 添加RAID, 对应结构体 NET_IN_RAID_ADD 和 NET_OUT_RAID_ADD
  40161. NET_RAID_OPERATE_REMOVE, // 删除RAID, 对应结构体 NET_IN_RAID_REMOVE 和 NET_OUT_RAID_REMOVE
  40162. NET_RAID_OPERATE_GET_SUBDEVICE, // 获取RAID子设备信息, 对应结构体 NET_IN_RAID_GET_SUBDEVICE 和 NET_OUT_RAID_GET_SUBDEVICE
  40163. NET_RAID_OPERATE_GET_SUBSMART, // 获取RAID子设备SMART信息, 对应结构体 NET_IN_RAID_GET_SUBSMART 和 NET_OUT_RAID_GET_SUBSMART
  40164. NET_RAID_OPERATE_MODIFY, // 修改RAID, 对应结构体 NET_IN_RAID_MODIFY 和 NET_OUT_RAID_MODIFY
  40165. } NET_RAID_OPERATE_TYPE;
  40166. ///@brief RAID信息
  40167. typedef struct tagNET_RAID_INFO
  40168. {
  40169. DWORD dwSize;
  40170. char szName[DH_COMMON_STRING_64]; // 名称, 为空时名称由设备返回
  40171. char szLevel[DH_COMMON_STRING_16]; // 等级, 例如"RAID0", "RAID5"等
  40172. int nMemberNum; // 成员数量
  40173. char szMembers[DH_MAX_MEMBER_PER_RAID][DH_COMMON_STRING_64]; // 成员信息
  40174. } NET_RAID_INFO;
  40175. ///@brief 添加RAID的返回结果
  40176. typedef struct tagNET_RAID_ADD_RESULT
  40177. {
  40178. DWORD dwSize;
  40179. BOOL bResult;
  40180. DWORD dwErrorCode; // 失败错误码
  40181. char szName[DH_COMMON_STRING_64]; // 名称
  40182. } NET_RAID_ADD_RESULT;
  40183. ///@brief 添加RAID输入参数
  40184. typedef struct tagNET_IN_RAID_ADD
  40185. {
  40186. DWORD dwSize;
  40187. int nRaidNun; // RAID数量
  40188. NET_RAID_INFO stuRaids[DH_MAX_RAID_NUM]; // RAID信息
  40189. } NET_IN_RAID_ADD;
  40190. ///@brief 添加RAID输出参数
  40191. typedef struct tagNET_OUT_RAID_ADD
  40192. {
  40193. DWORD dwSize;
  40194. int nResultNum; // 结果数
  40195. NET_RAID_ADD_RESULT stuResults[DH_MAX_RAID_NUM]; // RAID操作的结果
  40196. } NET_OUT_RAID_ADD;
  40197. ///@brief 删除RAID的返回结果
  40198. typedef struct tagNET_RAID_REMOVE_RESULT
  40199. {
  40200. DWORD dwSize;
  40201. BOOL bResult;
  40202. DWORD dwErrorCode; // 失败错误码
  40203. } NET_RAID_REMOVE_RESULT;
  40204. ///@brief 删除RAID输入参数
  40205. typedef struct tagNET_IN_RAID_REMOVE
  40206. {
  40207. DWORD dwSize;
  40208. int nRaidNum; // RAID数量
  40209. char szRaids[DH_MAX_RAID_NUM][DH_COMMON_STRING_64]; // RAID名称数组
  40210. } NET_IN_RAID_REMOVE;
  40211. ///@brief 删除RAID输出参数
  40212. typedef struct tagNET_OUT_RAID_REMOVE
  40213. {
  40214. DWORD dwSize;
  40215. int nResultNum; // 结果数
  40216. NET_RAID_REMOVE_RESULT stuResults[DH_MAX_RAID_NUM]; // RAID操作的结果
  40217. } NET_OUT_RAID_REMOVE;
  40218. ///@brief 获取RAID子设备信息输入参数
  40219. typedef struct tagNET_IN_RAID_GET_SUBDEVICE
  40220. {
  40221. DWORD dwSize;
  40222. const char* pszRaidName; // RAID名称
  40223. } NET_IN_RAID_GET_SUBDEVICE;
  40224. ///@brief 获取RAID子设备信息输出参数
  40225. typedef struct tagNET_OUT_RAID_GET_SUBDEVICE
  40226. {
  40227. DWORD dwSize;
  40228. int nSubDeviceNum; // 子设备数量
  40229. DH_STORAGE_DEVICE stuSubDevices[DH_MAX_MEMBER_PER_RAID]; // 子设备信息
  40230. } NET_OUT_RAID_GET_SUBDEVICE;
  40231. ///@brief RAID子设备SMART信息
  40232. typedef struct tagNET_RAID_SMART_INFO
  40233. {
  40234. DWORD dwSize;
  40235. unsigned int nID; // 属性ID
  40236. char szName[DH_COMMON_STRING_64]; // 属性名
  40237. int nCurrent; // 属性值
  40238. int nWorst; // 最大出错值
  40239. int nThreshold; // 阈值
  40240. int nPredict; // 状态
  40241. char szRaw[DH_COMMON_STRING_16]; // 实际值
  40242. } NET_RAID_SMART_INFO;
  40243. ///@brief 获取RAID子设备SMART信息输入参数
  40244. typedef struct tagNET_IN_RAID_GET_SUBSMART
  40245. {
  40246. DWORD dwSize;
  40247. const char* pszSubDevName; // RAID子设备名称
  40248. } NET_IN_RAID_GET_SUBSMART;
  40249. ///@brief 获取RAID子设备SMART信息输出参数
  40250. typedef struct tagNET_OUT_RAID_GET_SUBSMART
  40251. {
  40252. DWORD dwSize;
  40253. int nSmartNum; // SMART信息数
  40254. NET_RAID_SMART_INFO stuSmartInfos[MAX_SMART_VALUE_NUM]; // SMART信息
  40255. } NET_OUT_RAID_GET_SUBSMART;
  40256. ///@brief 修改RAID的返回结果
  40257. typedef struct tagNET_RAID_MODIFY_RESULT
  40258. {
  40259. DWORD dwSize;
  40260. BOOL bResult;
  40261. DWORD dwErrorCode; // 失败错误码
  40262. } NET_RAID_MODIFY_RESULT;
  40263. ///@brief 修改RAID输入参数
  40264. typedef struct tagNET_IN_RAID_MODIFY
  40265. {
  40266. DWORD dwSize;
  40267. int nRaidNun; // RAID数量
  40268. NET_RAID_INFO stuRaids[DH_MAX_RAID_NUM]; // RAID信息
  40269. } NET_IN_RAID_MODIFY;
  40270. ///@brief 修改RAID输出参数
  40271. typedef struct tagNET_OUT_RAID_MODIFY
  40272. {
  40273. DWORD dwSize;
  40274. int nResultNum; // 结果数
  40275. NET_RAID_MODIFY_RESULT stuResults[DH_MAX_RAID_NUM]; // RAID操作的结果
  40276. } NET_OUT_RAID_MODIFY;
  40277. ///@brief 同步方式
  40278. typedef enum tagEM_SYNC_MODE
  40279. {
  40280. EM_SYNC_MODE_UNKNOWN = -1, // 未知
  40281. EM_SYNC_MODE_ADAPTIVE, // 自适应
  40282. EM_SYNC_MODE_SYNC_FIRST, // 同步优先
  40283. EM_SYNC_MODE_BUSINESS_FIRST, // 业务优先
  40284. EM_SYNC_MODE_BALANCED, // 均衡
  40285. }EM_SYNC_MODE;
  40286. ///@brief 热备策略
  40287. typedef enum tagEM_HOT_SPARE_POLICY
  40288. {
  40289. EM_HOT_SPARE_POLICY_UNKNOWN, // 未知
  40290. EM_HOT_SPARE_POLICY_HIGH, // 高
  40291. EM_HOT_SPARE_POLICY_NORMAL, // 正常
  40292. EM_HOT_SPARE_POLICY_LOWER, // 低
  40293. }EM_HOT_SPARE_POLICY;
  40294. ///@brief RAID类型
  40295. typedef enum tagEM_RAID_TYPE
  40296. {
  40297. EM_RAID_TYPE_UNKNOWN, // 未知
  40298. EM_RAID_TYPE_RAID5, // RAID5
  40299. EM_RAID_TYPE_RAID6, // RAID6
  40300. }EM_RAID_TYPE;
  40301. ///@brief 纠删码存储(RAIDJ)
  40302. typedef struct tagNET_RAIDJ_INFO
  40303. {
  40304. UINT nCheckDiskNum; // 校验盘个数。纠删码存储(RAIDJ)支持指定校验盘的数量
  40305. char szReserved[256]; // 保留字节
  40306. }NET_RAIDJ_INFO;
  40307. ///@brief RAID2.0
  40308. typedef struct tagNET_RAID20_INFO
  40309. {
  40310. UINT nCheckDiskNum; // 校验盘个数
  40311. UINT nDataDiskNums; // 数据盘个数
  40312. EM_HOT_SPARE_POLICY emHotSparePolicy; // 热备策略(仅创建RAID2.0时用到)
  40313. EM_RAID_TYPE emRaidType; // RAID类型(仅创建RAID2.0时用到)
  40314. char szReserved[256]; // 保留字节
  40315. }NET_RAID20_INFO;
  40316. ///@brief RAID配置
  40317. typedef struct tagNET_RAID_CONFIG_INFO
  40318. {
  40319. char szLevel[16]; // 等级, 支持的等级范围从getCaps查询
  40320. EM_SYNC_MODE emSyncMode; // 同步方式
  40321. char szAlias[24]; // RAID别名
  40322. NET_RAIDJ_INFO stuRaidJ; // 纠删码存储(RAIDJ),根据Level判断是否存在
  40323. BOOL bRaidJEnable; // 使能纠删码存储(RAIDJ)
  40324. NET_RAID20_INFO stuRaid20; // RAID2.0,根据Level判断是否存在
  40325. BOOL bRaid20Enable; // 使能RAID2.0
  40326. char szReserved[256]; // 保留字节
  40327. } NET_RAID_CONFIG_INFO;
  40328. ///@brief 异步添加RAID输入参数
  40329. typedef struct tagNET_IN_RAID_ADD_ASYN
  40330. {
  40331. DWORD dwSize;
  40332. int nMemberNums; // RAID成员的个数
  40333. char szMembers[128][16]; // RAID成员
  40334. NET_RAID_CONFIG_INFO stuRaidConfig; // RAID配置
  40335. } NET_IN_RAID_ADD_ASYN;
  40336. ///@brief 异步添加RAID输出参数
  40337. typedef struct tagNET_OUT_RAID_ADD_ASYN
  40338. {
  40339. DWORD dwSize;
  40340. UINT nId; // 异步任务ID
  40341. } NET_OUT_RAID_ADD_ASYN;
  40342. ///@brief 异步添加RAID
  40343. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddRaidAsyn(LLONG lLoginID, const NET_IN_RAID_ADD_ASYN* pstInParam, NET_OUT_RAID_ADD_ASYN* pstOutParam, int nWaitTime);
  40344. ///@brief RAID信息
  40345. typedef struct tagNET_RAID_OBJECT_INFO
  40346. {
  40347. char szName[16]; // RAID名称
  40348. char szAliasName[32]; // RAID别名
  40349. char szReserved[256]; // 保留字节
  40350. }NET_RAID_OBJECT_INFO;
  40351. ///@brief RAID状态
  40352. typedef enum tagEM_RAID_STATE
  40353. {
  40354. EM_RAID_STATE_UNKNOWN = 0, // 未知
  40355. EM_RAID_STATE_CREATING_RAID, // 正在创建RAID
  40356. EM_RAID_STATE_CREATE_RAID_SUCCESS, // 创建RAID 成功
  40357. EM_RAID_STATE_CREATE_RAID_FAIL, // 创建RAID 失败
  40358. }EM_RAID_STATE;
  40359. ///@brief CLIENT_AttachRaidAdd的回调信息
  40360. typedef struct tagNET_CB_RAID_ADD_INFO
  40361. {
  40362. DWORD dwSize; // 结构体大小
  40363. UINT nId; // 异步任务ID
  40364. NET_RAID_OBJECT_INFO stuRaid; // RAID信息
  40365. EM_RAID_STATE emRaidState; // RAID状态
  40366. int nPercent; // 任务执行进度,百分比
  40367. }NET_CB_RAID_ADD_INFO;
  40368. ///@brief CLIENT_AttachRaidAdd的回调函数
  40369. typedef void (CALLBACK *fRaidAddCallBack)(LLONG lAttachHandle, NET_CB_RAID_ADD_INFO* pstuRaidAdd, LDWORD dwUser);
  40370. ///@brief CLIENT_AttachRaidAdd 输入参数
  40371. typedef struct tagNET_IN_ATTACH_RAID_ADD
  40372. {
  40373. DWORD dwSize; // 此结构体大小,必须赋值
  40374. fRaidAddCallBack cbRaidAdd; // 回调函数
  40375. LDWORD dwUser; // 用户信息
  40376. }NET_IN_ATTACH_RAID_ADD;
  40377. ///@brief CLIENT_AttachRaidAdd 输出参数
  40378. typedef struct tagNET_OUT_ATTACH_RAID_ADD
  40379. {
  40380. DWORD dwSize; // 此结构体大小,必须赋值
  40381. }NET_OUT_ATTACH_RAID_ADD;
  40382. ///@brief 订阅异步RAID
  40383. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRaidAdd(LLONG lLoginID, NET_IN_ATTACH_RAID_ADD* pstInParam, NET_OUT_ATTACH_RAID_ADD* pstOutParam , int nWaitTime);
  40384. ///@brief 取消订阅异步RAID
  40385. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRaidAdd(LLONG lAttachHandle);
  40386. ///@brief 文件系统类型
  40387. typedef enum tagEM_FS_TYPE
  40388. {
  40389. EM_FS_TYPE_UNKNWON, // 未知
  40390. EM_FS_TYPE_EXT3,
  40391. EM_FS_TYPE_EXT4,
  40392. EM_FS_TYPE_XFS,
  40393. EM_FS_TYPE_VFAT,
  40394. EM_FS_TYPE_DHFS,
  40395. EM_FS_TYPE_CQFS,
  40396. EM_FS_TYPE_NTFS,
  40397. } EM_FS_TYPE;
  40398. ///@brief 分区格式信息
  40399. typedef struct tagNET_PART_FORMAT_INFO
  40400. {
  40401. EM_FS_TYPE emFsType; // 文件系统类型, 若取EM_FS_TYPE_UNKNWON 表示由系统层决定
  40402. char szVolumeLabel[64]; // 卷标
  40403. BYTE byReserved[2044]; // 保留字节
  40404. } NET_PART_FORMAT_INFO;
  40405. ///@brief CLIENT_DevStorageFormatPartitionAsyn 接口输入参数
  40406. typedef struct tagNET_IN_DEVSTORAGE_FORMAT_PARTITION_ASYN
  40407. {
  40408. DWORD dwSize; // 结构体大小
  40409. BYTE byReserved[4]; // 字节对齐
  40410. char szPartName[32]; // 分区名称, 填"" 表示对整块硬盘分区
  40411. NET_PART_FORMAT_INFO stuPartFormatInfo; // 分区格式信息
  40412. } NET_IN_DEVSTORAGE_FORMAT_PARTITION_ASYN;
  40413. ///@brief CLIENT_DevStorageFormatPartitionAsyn 接口输出参数
  40414. typedef struct tagNET_OUT_DEVSTORAGE_FORMAT_PARTITION_ASYN
  40415. {
  40416. DWORD dwSize; // 结构体大小
  40417. } NET_OUT_DEVSTORAGE_FORMAT_PARTITION_ASYN;
  40418. ///@brief 设备异步格式化状态
  40419. typedef enum tagEM_STORAGE_FORMAT_STATE
  40420. {
  40421. EM_STORAGE_FORMAT_UNKNOWN, // 未知
  40422. EM_STORAGE_FORMAT_FORMATTING, // 正在格式化
  40423. EM_STORAGE_FORMAT_SUCCESS, // 格式化成功
  40424. EM_STORAGE_FORMAT_FAILED, // 格式化失败
  40425. } EM_STORAGE_FORMAT_STATE;
  40426. ///@brief 格式化设备信息
  40427. typedef struct tafNET_DEVSTORAGE_INFO
  40428. {
  40429. char szDevName[32]; // 设备名称
  40430. char szAliasName[32]; // RAID别名,RAID有效
  40431. UINT nPhysicNo; // 硬盘物理号,从1开始,单盘有效
  40432. BYTE byReserved[2044]; // 保留字节
  40433. } NET_DEVSTORAGE_INFO;
  40434. ///@brief 异步格式化设备状态回调信息
  40435. typedef struct tagNET_CB_DEVSTORAGE_FORMAT_INFO
  40436. {
  40437. NET_DEVSTORAGE_INFO stuDevStorageInfo; // 格式化设备信息
  40438. EM_STORAGE_FORMAT_STATE emStorageFormatState; // 设备异步格式化状态
  40439. UINT nPercent; // 格式化进度百分比
  40440. BYTE byReserved[2048]; // 保留字节
  40441. } NET_CB_DEVSTORAGE_FORMAT_INFO;
  40442. ///@brief 异步格式化设备状态订阅回调函数原型, lAttachHandle 是 CLIENT_AttachDevStorageDevFormat接口的返回值
  40443. typedef int (CALLBACK *fDevStorageFormatCallBack)(LLONG lAttachHandle, NET_CB_DEVSTORAGE_FORMAT_INFO *pstDevStorageFormatInfo, LDWORD dwUser);
  40444. ///@brief CLIENT_AttachDevStorageDevFormat 接口输入参数
  40445. typedef struct tagNET_IN_DEVSTORAGE_ATTACH_DEV_FORMAT
  40446. {
  40447. DWORD dwSize; // 结构体大小
  40448. BYTE byReserved[4]; // 对齐
  40449. fDevStorageFormatCallBack cbDevStorageFormatInfo; // 异步格式化设备状态订阅回调函数
  40450. LDWORD dwUser; // 用户数据
  40451. } NET_IN_DEVSTORAGE_ATTACH_DEV_FORMAT;
  40452. ///@brief 存储设备操作信息
  40453. typedef struct tagNET_DEVICE_OPERATE_INFO
  40454. {
  40455. char szName[128]; // 设备文件名
  40456. char szAliasName[32]; // 设备别名(RAID时有效)
  40457. UINT nPhysicNo; // 设备物理号(单盘时有效)
  40458. char szReserved[512]; // 保留字节
  40459. }NET_DEVICE_OPERATE_INFO;
  40460. ///@brief 存储设备操作状态回调消息
  40461. typedef struct tagNET_CB_DEVICE_OPERATE_INFO
  40462. {
  40463. NET_DEVICE_OPERATE_INFO stuDevOpInfo; // 存储设备操作信息
  40464. UINT nState; // 存储设备操作状态
  40465. char szReserved[512]; // 保留字节
  40466. } NET_CB_DEVICE_OPERATE_INFO;
  40467. ///@brief 存储设备操作状态消息订阅回调函数原型, lAttachHandle 是 CLIENT_AttachDevStorageOpState接口的返回值
  40468. typedef void (CALLBACK *fDevStorageOpStateCallBack)(LLONG lAttachHandle, NET_CB_DEVICE_OPERATE_INFO *pstDeviceOperateInfo, LDWORD dwUser);
  40469. ///@brief CLIENT_AttachDevStorageOpState 接口输入参数
  40470. typedef struct tagNET_IN_ATTACH_DEVSTORAGE_OP_STATE
  40471. {
  40472. DWORD dwSize; // 结构体大小
  40473. char szReserved[4]; // 对齐
  40474. fDevStorageOpStateCallBack cbDevStorageOpStateInfo; // 存储设备操作状态消息订阅回调函数
  40475. LDWORD dwUser; // 用户数据
  40476. } NET_IN_ATTACH_DEVSTORAGE_OP_STATE;
  40477. ///@brief CLIENT_AttachDevStorageOpState 接口输出参数
  40478. typedef struct tagNET_OUT_ATTACH_DEVSTORAGE_OP_STATE
  40479. {
  40480. DWORD dwSize; // 结构体大小
  40481. } NET_OUT_ATTACH_DEVSTORAGE_OP_STATE;
  40482. ///@brief 订阅存储设备操作状态消息
  40483. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachDevStorageOpState(LLONG lLoginID, const NET_IN_ATTACH_DEVSTORAGE_OP_STATE* pInParam, NET_OUT_ATTACH_DEVSTORAGE_OP_STATE *pOutParam,const int nWaitTime);
  40484. ///@brief 取消订阅存储设备操作状态消息, lAttachHandle 为CLIENT_AttachDevStorageOpState 接口返回值
  40485. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachDevStorageOpState(LLONG lAttachHandle);
  40486. ///@brief 在线用户列表状态变化事件
  40487. typedef enum tagNET_EM_CHANGE_TYPE
  40488. {
  40489. NET_EM_CHANGE_TYPE_UNKOWN, // 未知
  40490. NET_EM_CHANGE_TYPE_LOGIN, // 用户登录,增加一条在线用户类表信息
  40491. NET_EM_CHANGE_TYPE_LOGOUT, // 用户登出,删除用户ID对应在线用户列表信息
  40492. NET_EM_CHANGE_TYPE_KICKOUT, // 踢出用户,删除用户ID对应在线用户列表信息
  40493. NET_EM_CHANGE_TYPE_BLOCK, // 屏蔽用户,将用户ID对应在线用户列表置灰
  40494. } NET_EM_CHANGE_TYPE;
  40495. ///@brief 链接类型,在用户登录时用到
  40496. typedef enum tagNET_EM_LINK_TYPE
  40497. {
  40498. NET_EM_LINK_TYPE_UNKOWN, // 未知
  40499. NET_EM_LINK_TYPE_TCP, // TCP
  40500. NET_EM_LINK_TYPE_UDP, // UDP
  40501. NET_EM_LINK_TYPE_HTTP, // HTTP
  40502. NET_EM_LINK_TYPE_HTTPS, // HTTPS
  40503. NET_EM_LINK_TYPE_OTHERS, // others
  40504. } NET_EM_LINK_TYPE;
  40505. ///@brief CLIENT_AttachActiveUserState的回调信息
  40506. typedef struct tagNET_CB_ACTIVE_USER_STATE_INFO
  40507. {
  40508. DWORD dwSize; // 结构体大小
  40509. NET_EM_CHANGE_TYPE emChangeType; // 在线用户列表状态变化事件
  40510. UINT nId; // 用户ID
  40511. char szName[128]; // 用户名,用户登录时用到
  40512. char szGroup[128]; // 用户组,在用户登录时用到
  40513. char szClientType[16]; // 客户端类型,在用户登录时用到
  40514. char szClientAddress[40]; // 客户端IP,在用户登录时用到
  40515. char szLoginTime[20]; // 用户登录时间,在用户登录时用到
  40516. UINT nTimeSinceLogin; // 用户登录时长,在用户登录时用到,单位分钟
  40517. char szClientMac[20]; // 用户主机Mac,在用户登录时用到
  40518. NET_EM_LINK_TYPE emLinkType; // 链接类型,在用户登录时用到
  40519. char szMemo[256]; // 用户备注信息
  40520. }NET_CB_ACTIVE_USER_STATE_INFO;
  40521. ///@brief CLIENT_AttachActiveUserState的回调函数
  40522. typedef void (CALLBACK *fActiveUserStateCallBack)(LLONG lAttachHandle, NET_CB_ACTIVE_USER_STATE_INFO* pstuActiveUserState, LDWORD dwUser);
  40523. ///@brief CLIENT_AttachActiveUserState 输入参数
  40524. typedef struct tagNET_IN_ATTACH_ACTIVE_USER_STATE
  40525. {
  40526. DWORD dwSize; // 此结构体大小,必须赋值
  40527. fActiveUserStateCallBack cbActiveUserState; // 回调函数
  40528. LDWORD dwUser; // 用户信息
  40529. }NET_IN_ATTACH_ACTIVE_USER_STATE;
  40530. ///@brief CLIENT_AttachActiveUserState 接口输出参数
  40531. typedef struct tagNET_OUT_ATTACH_ACTIVE_USER_STATE
  40532. {
  40533. DWORD dwSize; // 结构体大小
  40534. } NET_OUT_ATTACH_ACTIVE_USER_STATE;
  40535. ///@brief 订阅活动用户状态
  40536. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachActiveUserState(LLONG lLoginID, NET_IN_ATTACH_ACTIVE_USER_STATE* pstInParam, NET_OUT_ATTACH_ACTIVE_USER_STATE* pstOutParam , int nWaitTime);
  40537. ///@brief 退订活动用户状态, lAttachHandle为CLIENT_AttachActiveUserState的返回值
  40538. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachActiveUserState(LLONG lAttachHandle);
  40539. ///@brief CLIENT_GetTemporaryToken 接口入参
  40540. typedef struct tagNET_IN_GET_TEMPORARY_TOKEN
  40541. {
  40542. DWORD dwSize; // 结构体大小
  40543. char szclientIP[48]; // 请求token的客户端IP. 可为空("")
  40544. int nkeepAliveTime; // token有效时间, 单位:秒, 范围5-90s
  40545. BOOL bRemoteMode; // 获取级联模式Token
  40546. int nChannelID; // 级联设备通道号,从0开始,当bRemoteMode为TRUE时有效
  40547. }NET_IN_GET_TEMPORARY_TOKEN;
  40548. ///@brief 临时用户账号信息
  40549. typedef struct tagNET_TEMP_USER_INFO
  40550. {
  40551. char szUsername[128]; // 生成新的临时用户账号, 与Token绑定使用
  40552. char szToken[128]; // 获取临时token, 长度为64
  40553. char szReserved[1024]; // 保留字节
  40554. } NET_TEMP_USER_INFO;
  40555. ///@brief CLIENT_GetTemporaryToken 接口出参
  40556. typedef struct tagNET_OUT_GET_TEMPORARY_TOKEN
  40557. {
  40558. DWORD dwSize; // 结构体大小
  40559. NET_TEMP_USER_INFO stuTempUserInfo; // 临时用户账号信息
  40560. }NET_OUT_GET_TEMPORARY_TOKEN;
  40561. ///@brief 获取临时token
  40562. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetTemporaryToken(LLONG lLoginID, const NET_IN_GET_TEMPORARY_TOKEN* pstuInParam, NET_OUT_GET_TEMPORARY_TOKEN* pstuOutParam, int nWaitTime);
  40563. ///@brief CLIENT_GetPwdValidPeriod 接口入参
  40564. typedef struct tagNET_IN_GET_PWD_VALID_PERIOD
  40565. {
  40566. DWORD dwSize; // 结构体大小
  40567. char szBytes[4]; // 字节对齐
  40568. char szName[128]; // 用户名
  40569. }NET_IN_GET_PWD_VALID_PERIOD;
  40570. ///@brief CLIENT_GetPwdValidPeriod 接口出参
  40571. typedef struct tagNET_OUT_GET_PWD_VALID_PERIOD
  40572. {
  40573. DWORD dwSize; // 结构体大小
  40574. int nRemainDays; // 密码有效剩余天数 -1-无限期,>=0-实际剩余有效天数
  40575. UINT nTotalDays; // 密码有效总天数 0-无限期,>0-总的有效天数
  40576. char szBytes[4]; // 字节对齐
  40577. }NET_OUT_GET_PWD_VALID_PERIOD;
  40578. ///@brief 获取用户密码过期剩余时间
  40579. ///@param[in] lLoginID 登录句柄
  40580. ///@param[in] pstuInParam 接口输入参数
  40581. ///@param[out] pstuOutParam 接口输出参数
  40582. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  40583. ///@return TRUE表示成功 FALSE表示失败
  40584. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPwdValidPeriod(LLONG lLoginID, const NET_IN_GET_PWD_VALID_PERIOD* pstuInParam, NET_OUT_GET_PWD_VALID_PERIOD* pstuOutParam, int nWaitTime);
  40585. ///@brief CLIENT_GetUserManagerCaps 接口入参
  40586. typedef struct tagNET_IN_GET_USER_MANAGER_CAPS
  40587. {
  40588. DWORD dwSize; // 结构体大小
  40589. }NET_IN_GET_USER_MANAGER_CAPS;
  40590. ///@brief CLIENT_GetUserManagerCaps 接口出参
  40591. typedef struct tagNET_OUT_GET_USER_MANAGER_CAPS
  40592. {
  40593. DWORD dwSize; // 结构体大小
  40594. BOOL bSupportTokenLoginType; // 是否支持用户使用临时Token进行二次鉴权(Web免密跳转功能使用
  40595. }NET_OUT_GET_USER_MANAGER_CAPS;
  40596. ///@brief 获取用户管理能力集
  40597. ///@param[in] lLoginID: 登录句柄
  40598. ///@param[in] pstuInParam: 接口输入参数
  40599. ///@param[out] pstuOutParam: 接口输出参数
  40600. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  40601. ///@return TRUE表示成功 FALSE表示失败
  40602. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetUserManagerCaps(LLONG lLoginID, NET_IN_GET_USER_MANAGER_CAPS* pstuInParam, NET_OUT_GET_USER_MANAGER_CAPS* pstuOutParam, int nWaitTime);
  40603. //////////////////////////// 外部设备 //////////////////////////////////////////
  40604. ///@brief 状态名称
  40605. typedef enum tagEM_STATE_MANAGER_STATE
  40606. {
  40607. EM_STATE_MANAGER_STATE_UNKNOWN, // 未知
  40608. EM_STATE_MANAGER_STATE_SERIALDATAUPLOAD, // 串口外接实时数据上报,对应结构体NET_SERIALDATAUPLOAD_INFO
  40609. } EM_STATE_MANAGER_STATE;
  40610. ///@brief 温度状态/湿度状态
  40611. typedef enum tagEM_TEMP_HUM_STATE
  40612. {
  40613. EM_TEMP_HUM_STATE_UNKNOWN = -1, // 未知
  40614. EM_TEMP_HUM_STATE_NORMAL, // 正常
  40615. EM_TEMP_HUM_STATE_HIGH, // 偏高
  40616. EM_TEMP_HUM_STATE_LOW, // 偏低
  40617. } EM_TEMP_HUM_STATE;
  40618. ///@brief 串口外接实时数据上报信息
  40619. typedef struct tagNET_SERIALDATAUPLOAD_INFO
  40620. {
  40621. EM_TEMP_HUM_STATE emTempAlarmStatus; // 温度状态
  40622. EM_TEMP_HUM_STATE emHumAlarmStatus; // 湿度状态
  40623. double dbTemperature; // 温度采集模块上报的温度值,单位℃
  40624. double dbHumidity; // 湿度采集模块上报的湿度值,单位RH,百分比
  40625. NET_TIME_EX stuTime; // UTC时间
  40626. char szReserved[252]; // 保留字节
  40627. } NET_SERIALDATAUPLOAD_INFO;
  40628. ///@brief CLIENT_AttachStateManager的回调信息
  40629. typedef struct tagNET_CB_STATE_MANAGER_INFO
  40630. {
  40631. EM_STATE_MANAGER_STATE emCallBackStateName; // 发生变化的状态名
  40632. BYTE byReserved1[4]; // 预留字节
  40633. NET_SERIALDATAUPLOAD_INFO stuSerialDataUpLoadState; // 通过串口外接到设备的各种模块实时数据上报各种外接模块的数据信息,例如温度采集模块的温度,湿度采集模块的湿度等,对应EM_STATE_MANAGER_STATE_SERIALDATAUPLOAD
  40634. BYTE byReserved[2048]; // 预留字节
  40635. }NET_CB_STATE_MANAGER_INFO;
  40636. ///@brief CLIENT_AttachStateManager的回调函数
  40637. typedef void (CALLBACK *fStateManagerCallBack)(LLONG lAttachHandle, NET_CB_STATE_MANAGER_INFO* pstuStateManager, LDWORD dwUser);
  40638. ///@brief CLIENT_AttachStateManager 接口输入参数
  40639. typedef struct tagNET_IN_ATTACH_STATE_MANAGER
  40640. {
  40641. DWORD dwSize; // 此结构体大小,必须赋值
  40642. fStateManagerCallBack cbStateManager; // 回调函数
  40643. LDWORD dwUser; // 用户信息
  40644. EM_STATE_MANAGER_STATE emStateName; // 状态名称
  40645. }NET_IN_ATTACH_STATE_MANAGER;
  40646. ///@brief CLIENT_AttachStateManager 接口输出参数
  40647. typedef struct tagNET_OUT_ATTACH_STATE_MANAGER
  40648. {
  40649. DWORD dwSize; // 结构体大小
  40650. } NET_OUT_ATTACH_STATE_MANAGER;
  40651. ///@brief 订阅状态变化接口
  40652. ///@param[in] lLoginID: 登录句柄
  40653. ///@param[in] pstInParam: 接口输入参数, 内存资源由用户申请和释放
  40654. ///@param[out] pstOutParam: 接口输出参数, 内存资源由用户申请和释放
  40655. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  40656. ///@return 订阅句柄
  40657. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachStateManager(LLONG lLoginID, NET_IN_ATTACH_STATE_MANAGER* pstInParam, NET_OUT_ATTACH_STATE_MANAGER* pstOutParam , int nWaitTime);
  40658. ///@brief 退订状态变化接口
  40659. ///@param[in] lAttachHandle 订阅接口返回句柄
  40660. ///@return TRUE表示成功, FALSE表示失败
  40661. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachStateManager(LLONG lAttachHandle);
  40662. ///@brief 外接设备类型
  40663. typedef enum tagNET_EXT_DEV_TYPE
  40664. {
  40665. EXT_DEV_UNKNOWN, // 未知
  40666. EXT_DEV_PROJECTOR, // 投影仪
  40667. EXT_DEV_SEQUENCE_POWER, // 电源序列器
  40668. } NET_EXT_DEV_TYPE;
  40669. ///@brief 外接设备信息
  40670. typedef struct tagNET_EXTERNAL_DEVICE
  40671. {
  40672. DWORD dwSize;
  40673. NET_EXT_DEV_TYPE emType; // 设备类型
  40674. char szDevID[DH_DEV_ID_LEN_EX]; // 设备ID, 唯一编号
  40675. char szDevName[DH_DEV_ID_LEN_EX]; // 设备名称
  40676. } NET_EXTERNAL_DEVICE;
  40677. ///@brief 电源时序器控制参数
  40678. typedef struct tagNET_CTRL_SEQPOWER_PARAM
  40679. {
  40680. DWORD dwSize;
  40681. const char* pszDeviceID; // 设备ID
  40682. int nChannel; // 输出口或输出组序号
  40683. } NET_CTRL_SEQPOWER_PARAM;
  40684. ///@brief 投影仪控制参数
  40685. typedef struct tagNET_CTRL_PROJECTOR_PARAM
  40686. {
  40687. DWORD dwSize;
  40688. const char* pszDeviceID; // 设备ID
  40689. } NET_CTRL_PROJECTOR_PARAM;
  40690. ///@brief 红外按键
  40691. typedef struct tagNET_CTRL_INFRARED_KEY_PARAM
  40692. {
  40693. DWORD dwSize;
  40694. int nChannel; // 红外控制通道号
  40695. unsigned int nKey; // 红外按键ID
  40696. } NET_CTRL_INFRARED_KEY_PARAM;
  40697. ///@brief 无硬盘报警
  40698. typedef struct tagALARM_NO_DISK_INFO
  40699. {
  40700. DWORD dwSize;
  40701. NET_TIME stuTime; // 时间
  40702. DWORD dwAction; // 事件动作, 0:Start, 1:Stop
  40703. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  40704. }ALARM_NO_DISK_INFO;
  40705. ///@brief 防护舱状态枚举
  40706. typedef enum __EM_CAPSULE_STATE
  40707. {
  40708. CAPSULE_STATE_UNKNOW , //未定义
  40709. CAPSULE_STATE_NORMAL , //正常
  40710. CAPSULE_STATE_TIME_OUT , //超时
  40711. CAPSULE_STATE_EMERGENCY_CALL, //紧急呼叫
  40712. }EM_CAPSULE_STATE;
  40713. ///@brief 防护舱事件
  40714. typedef struct tagALARM_PROTECTIVE_CAPSULE_INFO
  40715. {
  40716. DWORD dwSize;
  40717. EM_CAPSULE_STATE emCapsuleState; //防护舱状态
  40718. DWORD nLock; //0:未锁,1:上锁; 仅在emCapsuleState为CAPSULE_STATE_NORMAL时有效
  40719. DWORD nInfrared; //0:闲置(无人),1:触发(有人);仅在emCapsuleState为CAPSULE_STATE_NORMAL时有效
  40720. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  40721. }ALARM_PROTECTIVE_CAPSULE_INFO;
  40722. ///@brief 获取鱼眼能力输入参数
  40723. typedef struct tagNET_IN_VIDEOIN_FISHEYE_CAPS
  40724. {
  40725. DWORD dwSize;
  40726. int nChannel; //通道号
  40727. }NET_IN_VIDEOIN_FISHEYE_CAPS;
  40728. ///@brief 获取鱼眼能力输出参数
  40729. typedef struct tagNET_OUT_VIDEOIN_FISHEYE_CAPS
  40730. {
  40731. DWORD dwSize;
  40732. int nMountModeNum; // 支持的安装模式个数
  40733. NET_FISHEYE_MOUNT_MODE emMountModes[NET_MAX_FISHEYE_MOUNTMODE_NUM]; // 支持的安装模式列表
  40734. int nCalibrateModeNum; // 支持的鱼眼矫正模式个数
  40735. NET_FISHEYE_CALIBRATE_MODE emCalibrateModes[NET_MAX_FISHEYE_CALIBRATEMODE_NUM]; // 支持的鱼眼矫正模式列表
  40736. int nEPtzCmdNum; // 支持的鱼眼电子云台操作个数
  40737. NET_FISHEYE_EPTZ_CMD emEPtzCmds[NET_MAX_FISHEYE_EPTZCMD_NUM]; // 支持的鱼眼电子云台操作列表
  40738. NET_FISHEYE_TYPE emType; //鱼眼类型
  40739. }NET_OUT_VIDEOIN_FISHEYE_CAPS;
  40740. ///@brief 获取电源时序器能力输入参数
  40741. typedef struct tagNET_IN_CAP_SEQPOWER
  40742. {
  40743. DWORD dwSize;
  40744. const char* pszDeviceID; // 设备ID
  40745. } NET_IN_CAP_SEQPOWER;
  40746. ///@brief 获取电源时序器能力输出参数
  40747. typedef struct tagNET_OUT_CAP_SEQPOWER
  40748. {
  40749. DWORD dwSize;
  40750. int nChannelNum; // 通道数
  40751. } NET_OUT_CAP_SEQPOWER;
  40752. ///@brief 获取设备编码配置对应能力输入参数
  40753. typedef struct tagNET_IN_ENCODE_CFG_CAPS
  40754. {
  40755. DWORD dwSize;
  40756. int nChannelId; // 通道号
  40757. int nStreamType; // 码流类型,0:主码流;1:辅码流1;2:辅码流2;3:辅码流3;4:抓图码流
  40758. // 此参数可以不填,不论指定什么类型,设备都返回主、辅、抓图码流的能力
  40759. char* pchEncodeJson; // Encode配置,通过调用dhconfigsdk.dll中接口CLIENT_PacketData封装得到
  40760. // 对应的封装命令为 CFG_CMD_ENCODE
  40761. }NET_IN_ENCODE_CFG_CAPS;
  40762. ///@brief 码流配置对应能力
  40763. typedef struct tagNET_STREAM_CFG_CAPS
  40764. {
  40765. DWORD dwSize;
  40766. int nAudioCompressionTypes[DH_MAX_AUDIO_ENCODE_TYPE]; // 支持的音频编码类型,详见DH_TALK_CODING_TYPE
  40767. int nAudioCompressionTypeNum; // 音频压缩格式个数
  40768. int dwEncodeModeMask; // 视频编码模式掩码,详见"编码模式"
  40769. DH_RESOLUTION_INFO stuResolutionTypes[DH_MAX_CAPTURE_SIZE_NUM];// 支持的视频分辨率
  40770. int nResolutionFPSMax[DH_MAX_CAPTURE_SIZE_NUM]; // 不同分辨率下帧率最大值,下标与nResolutionTypes对应
  40771. int nResolutionTypeNum; // 视频分辨率个数
  40772. int nMaxBitRateOptions; // 最大视频码流(kbps)
  40773. int nMinBitRateOptions; // 最小视频码流(kbps)
  40774. BYTE bH264ProfileRank[DH_PROFILE_HIGH]; // 支持的H.264 Profile等级,参照枚举类型 EM_H264_PROFILE_RANK;
  40775. int nH264ProfileRankNum; // 支持的H.264 Profile等级个数
  40776. int nCifPFrameMaxSize; // 当分辨率为cif时最大p帧(Kbps)
  40777. int nCifPFrameMinSize; // 当分辨率为cif时最小p帧(Kbps)
  40778. int nFPSMax; // 视频帧率最大值,为0时,以nResolutionFPSMax为准
  40779. DH_RESOLUTION_INFO stuIndivResolutionTypes[DH_MAX_COMPRESSION_TYPES_NUM][DH_MAX_CAPTURE_SIZE_NUM];// 支持的视频分辨率
  40780. BOOL abIndivResolution; // 0: stuResolutionTypes,nResolutionTypeNum 有效
  40781. // 1: stuIndivResolutionTypes, nIndivResolutionNums 有效
  40782. int nIndivResolutionNums[DH_MAX_COMPRESSION_TYPES_NUM];// 不同编码模式分别支持的视频分辨率个数
  40783. }NET_STREAM_CFG_CAPS;
  40784. ///@brief 获取设备编码配置对应能力输出参数
  40785. typedef struct tagNET_OUT_ENCODE_CFG_CAPS
  40786. {
  40787. DWORD dwSize;
  40788. NET_STREAM_CFG_CAPS stuMainFormatCaps[DH_REC_TYPE_NUM]; // 主码流配置对应能力, 如果有多个, 第一个表示普通录像码流, 第二个表示动检录像码流, 第三个表示报警录像码流
  40789. NET_STREAM_CFG_CAPS stuExtraFormatCaps[DH_N_ENCODE_AUX]; // 辅码流配置对应能力, 如果有多个, 第一个表示辅码流1, 第二个表示辅码流2, 第三个表示辅码流3
  40790. NET_STREAM_CFG_CAPS stuSnapFormatCaps[SNAP_TYP_NUM]; // 抓图码流配置对应能力, 如果有多个, 第一个表示普通抓图, 第二个表示动检抓图, 第三个表示报警抓图
  40791. int nMainFormCaps; // 有效的主码流配置对应的能力个数
  40792. int nExtraFormCaps; // 有效的辅码流配置对应的能力个数
  40793. int nSnapFormatCaps; // 有效的抓图码流配置对应的能力个数
  40794. }NET_OUT_ENCODE_CFG_CAPS;
  40795. ///@brief 获取视频检测输入能力集
  40796. typedef struct tagNET_IN_VIDEO_DETECT_CAPS
  40797. {
  40798. DWORD dwSize;
  40799. int nChannel; //通道号
  40800. }NET_IN_VIDEO_DETECT_CAPS;
  40801. ///@brief 媒体能力集类型
  40802. typedef enum tagNET_MEDIA_CAP_TYPE
  40803. {
  40804. NET_MEDIA_CAP_TYPE_SENSORINFO, // 镜头传感器信息
  40805. } NET_MEDIA_CAP_TYPE;
  40806. ///@brief CLIENT_GetDevCaps NET_MEDIAMANAGER_CAPS 命令入参
  40807. typedef struct tagNET_IN_MEDIAMANAGER_GETCAPS
  40808. {
  40809. DWORD dwSize;
  40810. NET_MEDIA_CAP_TYPE emType; // 需要获取的能力集类型
  40811. } NET_IN_MEDIAMANAGER_GETCAPS;
  40812. ///@brief 获取设备编码配置对应能力输入参数
  40813. typedef struct tagNET_IN_SNAP_CFG_CAPS
  40814. {
  40815. int nChannelId; // 通道号(起始通道0)
  40816. BYTE bReserved[1024]; // 保留
  40817. }NET_IN_SNAP_CFG_CAPS;
  40818. #define DH_MAX_FPS_NUM 128 // 最大支持的帧率个数
  40819. #define DH_MAX_QUALITY_NUM 32 // 最大支持的画质个数
  40820. ///@brief 抓图配置能力
  40821. typedef struct tagNET_OUT_SNAP_CFG_CAPS
  40822. {
  40823. int nResolutionTypeNum; // 支持的视频分辨率信息
  40824. DH_RESOLUTION_INFO stuResolutionTypes[DH_MAX_CAPTURE_SIZE_NUM];
  40825. DWORD dwFramesPerSecNum; // 支持的帧率信息
  40826. int nFramesPerSecList[DH_MAX_FPS_NUM]; // -25:25秒1帧;-24:24秒1帧;……
  40827. // 0:无效;1:1秒1帧;2:1秒2帧;3:1秒3帧
  40828. // 4:1秒4帧;5:1秒5帧;17:1秒17帧;18:1秒18帧
  40829. // 19:1秒19帧;20:1秒20帧……
  40830. DWORD dwQualityMun; // 支持的画质信息
  40831. DWORD nQualityList[DH_MAX_QUALITY_NUM]; // 1-6档(6质量最高)
  40832. DWORD dwMode; // 模式,按位:第一位:定时;第二位:手动。
  40833. DWORD dwFormat; // 图片格式模式,按位:第一位:bmp;第二位:jpg。
  40834. BYTE bReserved[2048]; // 保留
  40835. } NET_OUT_SNAP_CFG_CAPS;
  40836. ///@brief 镜头传感器类型
  40837. typedef enum tagNET_CAMERA_SENSOR
  40838. {
  40839. NET_CAMERA_SENSOR_NORMAL, // 一般(可见光)
  40840. NET_CAMERA_SENSOR_LEPTON, // Lepton 热成像
  40841. NET_CAMERA_SENSOR_TAU, // Tau 热成像
  40842. } NET_CAMERA_SENSOR;
  40843. ///@brief 镜头传感器信息
  40844. typedef struct tagNET_CAMERA_SENSORINFO
  40845. {
  40846. NET_CAMERA_SENSOR emSensorType; // 传感器类型
  40847. int nChannelsCount; // 此传感器类型对应的通道个数
  40848. int nChannels[512]; // 此传感器类型对应的通道号
  40849. char reserved[512];
  40850. } NET_CAMERA_SENSORINFO;
  40851. ///@brief 媒体信息——镜头传感器
  40852. typedef struct tagNET_MEDIA_SENSORINFO
  40853. {
  40854. BOOL bSupport; // 是否支持本能力获取,为TRUE时以下成员有效
  40855. int nSensorTypeCount; // 设备具有的镜头传感器类型个数
  40856. NET_CAMERA_SENSORINFO stuDetail[16]; // 每个传感器类型的详细信息,有效个数由 nSensorTypeCount 指明
  40857. char reserved[1024];
  40858. } NET_MEDIA_SENSORINFO;
  40859. ///@brief CLIENT_GetDevCaps NET_MEDIAMANAGER_CAPS 命令出参
  40860. typedef struct tagNET_OUT_MEDIAMANAGER_GETCAPS
  40861. {
  40862. DWORD dwSize;
  40863. NET_MEDIA_SENSORINFO stuSensorInfo; // 镜头传感器信息
  40864. } NET_OUT_MEDIAMANAGER_GETCAPS;
  40865. ///@brief 视频输入能力类型
  40866. typedef enum tagNET_ENUM_VIDEOIN_CAP_TYPE
  40867. {
  40868. NET_VIDEOIN_CAP_TYPE_CONFLICT, // 设备视频输出能力冲突能力项,对应出参NET_OUT_VIDEOIN_CONFLICT_CAPS
  40869. }NET_ENUM_VIDEOIN_CAP_TYPE;
  40870. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_CAPS 命令入参
  40871. typedef struct tagNET_IN_VIDEOIN_CAPS
  40872. {
  40873. DWORD dwSize;
  40874. int nChannel; // 通道号
  40875. NET_ENUM_VIDEOIN_CAP_TYPE emCapType; // 设备视频输出能力类型
  40876. }NET_IN_VIDEOIN_CAPS;
  40877. ///@brief 冲突类型
  40878. typedef enum tagNET_ENUM_CONFLICT_TYPE
  40879. {
  40880. NET_ENUM_CONFLICT_TYPE_UNKNOWN, // 未知
  40881. NET_ENUM_CONFLICT_TYPE_MAIN, // 主码流
  40882. NET_ENUM_CONFLICT_TYPE_EXTRA1, // 辅码流1
  40883. NET_ENUM_CONFLICT_TYPE_EXTRA2, // 辅码流2
  40884. NET_ENUM_CONFLICT_TYPE_TVOUT, // 模拟输出
  40885. NET_ENUM_CONFLICT_TYPE_DSP, // 智能
  40886. NET_ENUM_CONFLICT_TYPE_SMARTENC, // Smart编码(长GOP)
  40887. NET_ENUM_CONFLICT_TYPE_SETGOP, // 设置GOP
  40888. NET_ENUM_CONFLICT_TYPE_ROI, // 感兴趣区域
  40889. NET_ENUM_CONFLICT_TYPE_CBR, // 恒定码流编码
  40890. NET_ENUM_CONFLICT_TYPE_SVC, // SVC编码
  40891. NET_ENUM_CONFLICT_TYPE_MJPEG, // MJPEG编码
  40892. NET_ENUM_CONFLICT_TYPE_ROTATE_90, // 旋转90度
  40893. }NET_ENUM_CONFLICT_TYPE;
  40894. ///@brief 冲突项
  40895. typedef struct tagNET_CONFLICT_TYPE
  40896. {
  40897. NET_ENUM_CONFLICT_TYPE emConflict1; // 冲突项1
  40898. NET_ENUM_CONFLICT_TYPE emConflict2; // 冲突项2
  40899. char reserved[64];
  40900. }NET_CONFLICT_TYPE;
  40901. ///@brief 资源冲突结构体
  40902. typedef struct tagNET_VIDEOIN_CONFLICT_CAPS
  40903. {
  40904. BOOL bConflict; // 是否存在资源冲突项
  40905. int nConflictNum; // 冲突项数量
  40906. NET_CONFLICT_TYPE stuConflict[MAX_VIDEOIN_CONFLICT_NUM]; // 冲突项
  40907. }NET_VIDEOIN_CONFLICT_CAPS;
  40908. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_CAPS 命令出参
  40909. typedef struct tagNET_OUT_VIDEOIN_CAPS
  40910. {
  40911. DWORD dwSize;
  40912. NET_VIDEOIN_CONFLICT_CAPS stuConflictCap; // 资源冲突结构体
  40913. }NET_OUT_VIDEOIN_CAPS;
  40914. ///@brief CLIENT_GetDevCaps NET_VIDEO_MOSAIC_CAPS命令入参
  40915. typedef struct tagNET_IN_MEDIA_VIDEOMOSAIC_GETCAPS
  40916. {
  40917. DWORD dwSize; // 用户使用时赋值为结构体大小
  40918. } NET_IN_MEDIA_VIDEOMOSAIC_GETCAPS;
  40919. ///@brief CLIENT_GetDevCaps NET_VIDEO_MOSAIC_CAPS命令出参
  40920. typedef struct tagNET_OUT_MEDIA_VIDEOMOSAIC_GETCAPS
  40921. {
  40922. DWORD dwSize; // 用户使用时赋值为结构体大小
  40923. int nSupportCount; // 实际支持叠加马赛克的通道数量
  40924. short snSupport[MAX_MOSAIC_CHANNEL_NUM]; // 支持叠加马赛的通道,[-1]表示全支持
  40925. int nMosaicCount; // 实际支持的马赛克颗粒数量
  40926. char szMosaic[MAX_MOSAIC_NUM]; // 支持的马赛克颗粒大小
  40927. DH_SIZE stuRectMax; // 马赛克最大区块尺寸
  40928. DH_SIZE stuRectMin; // 马赛克最小区块尺寸
  40929. } NET_OUT_MEDIA_VIDEOMOSAIC_GETCAPS;
  40930. ///@brief CLIENT_GetDevCaps NET_FACE_BOARD_CAPS 命令入参
  40931. typedef struct tagNET_IN_FACEBOARD_CAPS
  40932. {
  40933. DWORD dwSize; // 该结构体大小
  40934. }NET_IN_FACEBOARD_CAPS;
  40935. ///@brief CLIENT_GetDevCaps NET_VIDEO_IMAGECONTROL_CAPS 命令入参
  40936. typedef struct tagNET_IN_VIDEO_IMAGECONTROL_CAPS
  40937. {
  40938. DWORD dwSize; // 用户使用时赋值为结构体大小
  40939. int nChannel; // 通道号
  40940. } NET_IN_VIDEO_IMAGECONTROL_CAPS;
  40941. ///@brief 防抖类型
  40942. typedef enum tagNET_EM_STABLE_CAPS_TYPE
  40943. {
  40944. EM_STABLE_UNSPPORT, // 不支持图像防抖
  40945. EM_STABLE_ELEC, // 支持电子防抖
  40946. EM_STABLE_LIGHT, // 支持光学防抖
  40947. EM_STAVLE_ELEC_AND_LIGHT, // 支持电子防抖和光学防抖
  40948. EM_STABLE_CONTROL, // 支持控件防抖
  40949. EM_STABLE_ELEC_AND_CONTROL, // 支持电子防抖和控件防抖
  40950. EM_STABLE_LIGHT_AND_CONTROL, // 支持光学防抖和控件防抖
  40951. } NET_EM_STABLE_CAPS_TYPE;
  40952. ///@brief CLIENT_GetDevCaps NET_VIDEO_IMAGECONTROL_CAPS 命令出参
  40953. typedef struct tagNET_OUT_VIDEO_IMAGECONTROL_CAPS
  40954. {
  40955. DWORD dwSize; // 用户使用时赋值为结构体大小
  40956. BOOL bSupport; // Mirror,Flip,Rotate90三者任一支持则true
  40957. BOOL bMirror; // 是否支持画面镜像功能
  40958. BOOL bFlip; // 是否支持画面180翻转功能
  40959. BOOL bRotate90; // 支持的画面90/270度旋转
  40960. BOOL bFreeze; // 是否支持图像冻结功能
  40961. NET_EM_STABLE_CAPS_TYPE emStable; // 支持图像防抖的功能
  40962. } NET_OUT_VIDEO_IMAGECONTROL_CAPS;
  40963. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_EXPOSURE_CAPS 命令入参
  40964. typedef struct tagNET_IN_VIDEOIN_EXPOSURE_CAPS
  40965. {
  40966. DWORD dwSize; // 用户使用时赋值为结构体大小
  40967. int nChannel; // 通道号
  40968. } NET_IN_VIDEOIN_EXPOSURE_CAPS;
  40969. #define MAX_EXPOSURE_COUNT 8
  40970. ///@brief 曝光模式
  40971. typedef enum tagNET_EM_EXPOSURE_MODE
  40972. {
  40973. NET_EM_EXPOSURE_AUTO, // 默认自动
  40974. NET_EM_EXPOSURE_LOWNICE, // 低噪声
  40975. NET_EM_EXPOSURE_ANTISHADOW, // 防拖影
  40976. NET_EM_EXPOSURE_MANUALRANGE = 4, // 手动区间
  40977. NET_EM_EXPOSURE_APERTUREFIRST, // 光圈优先
  40978. NET_EM_EXPOSURE_MANUALFIXATION, // 手动固定
  40979. NET_EM_EXPOSURE_GIANFIRST, // 增益优先
  40980. NET_EM_EXPOSURE_SHUTTERFIRST, // 快门优先
  40981. NET_EM_EXPOSURE_FLASHMATCH, // 闪光灯匹配模式
  40982. } NET_EM_EXPOSURE_MODE;
  40983. ///@brief 防闪烁模式
  40984. typedef enum tagNET_EM_ANTIFLICKER_MODE
  40985. {
  40986. NET_EM_ANTIFLICKER_OUTDOOR, // 室外
  40987. NET_EM_ANTIFLICKER_50HZ, // 50Hz
  40988. NET_EM_ANTIFLICKER_60HZ, // 60Hz
  40989. } NET_EM_ANTIFLICKER_MODE;
  40990. ///@brief 曝光速度等级能力数组,值是分母,单位秒。比如100表示1/100秒的曝光时间
  40991. ///@brief "-1"表示支持用户区间可调,如果不含该字段,表示不支持用户区间可调
  40992. typedef struct tagNET_SPEED_CAPS
  40993. {
  40994. int nRetManual; // 手动模式下的快门实际个数
  40995. int nManual[DH_COMMON_STRING_16]; // 手动模式下的快门列表
  40996. int nRetManual50Hz; // 防闪烁50HZ 模式下,手动模式对应的快门实际个数
  40997. int nManual50Hz[DH_COMMON_STRING_16]; // 防闪烁50HZ 模式下,手动模式对应的快门列表
  40998. int nRetManual60Hz; // 防闪烁60HZ 模式下,手动模式对应的快门实际个数
  40999. int nManual60Hz[DH_COMMON_STRING_16]; // 防闪烁60HZ 模式下,手动模式对应的快门列表
  41000. int nRetShutterPAL; // 快门优先下的P制快门实际个数
  41001. int nShutterPAL[DH_COMMON_STRING_16]; // 快门优先下的P制快门列表
  41002. int nRetShutterNTSC; // 快门优先下的N制快门实际个数
  41003. int nShutterNTSC[DH_COMMON_STRING_16]; // 快门优先下的N制快门列表
  41004. BYTE bReserved[128]; // 预留字段
  41005. } NET_SPEED_CAPS;
  41006. ///@brief 慢曝光速度等级能力
  41007. typedef struct tagNET_SLOW_SPEED_CAPS
  41008. {
  41009. int nRetPal;
  41010. int nPal[DH_COMMON_STRING_16];
  41011. int nRetNtsc;
  41012. int nNtsc[DH_COMMON_STRING_16];
  41013. BYTE bReserved[128]; // 预留字段
  41014. } NET_SLOW_SPEED_CAPS;
  41015. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_EXPOSURE_CAPS 命令出参
  41016. typedef struct tagNET_OUT_VIDEOIN_EXPOSURE_CAPS
  41017. {
  41018. DWORD dwSize; // 用户使用时赋值为结构体大小
  41019. BOOL bSupport; // 是否支持曝光设置能力
  41020. int nExposureMode; // 实际支持的曝光模式个数
  41021. NET_EM_EXPOSURE_MODE emExposureMode[MAX_EXPOSURE_COUNT]; // 支持的曝光模式
  41022. BOOL bAntiFlicker; // 是否支持防闪烁
  41023. int nAntiFlicker; // 实际支持的防闪烁功能个数
  41024. NET_EM_ANTIFLICKER_MODE emAntiFlicker[MAX_ANTIFLICKERMODE_COUNT]; // 防闪烁功能列表
  41025. int nMinCompensation; // 曝光补偿最小值
  41026. int nMaxCompensation; // 曝光补偿最大值
  41027. BOOL bGainUpperLimit; // 支持增益上限选项能力
  41028. // true:在自动,光圈优先,快门优先模式显示增益上限选项。
  41029. // false: 在自动,光圈优先,快门优先模式隐藏增益上限选项
  41030. int nMinGain; // 增益最小值
  41031. int nMaxGain; // 增益最大值
  41032. BOOL bSlowAutoExposure; // 是否支持慢曝光设置能力, 默认支持
  41033. // 如果有该字段且值为false,不下发慢曝光设置,如果没有此值或者值为true,则下发慢曝光配置
  41034. int nMinSlowAutoExposure; // 慢曝光最小值
  41035. int nMaxSlowAutoExposure; // 慢曝光最大值
  41036. BOOL bSlowShutter; // 是否支持慢快门
  41037. float fMinValueLow; // 自动曝光时间下限最小值
  41038. float fMaxValueLow; // 自动曝光时间下限最大值
  41039. float fMinValueUp; // 自动曝光时间上限最小值
  41040. float fMaxValueUp; // 自动曝光时间上线最大值
  41041. NET_SPEED_CAPS stuSpeedCaps; // 曝光速度等级能力
  41042. NET_SLOW_SPEED_CAPS stuSlowSpeedCaps; // 慢曝光速度等级能力
  41043. BOOL bIrisAuto; // 是否支持自动光圈
  41044. int nIrisMin; // 手动光圈设置最小值
  41045. int nIrisMax; // 手动光圈设置最大值
  41046. BOOL bSupportIrisRange; // 支持光圈区间可调能力
  41047. BOOL bDoubleExposure; // 是否支持ITC双快门调节
  41048. BOOL bRecoveryTime; // 是否支持自动曝光恢复
  41049. } NET_OUT_VIDEOIN_EXPOSURE_CAPS;
  41050. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_DENOISE_CAPS 命令入参
  41051. typedef struct tagNET_IN_VIDEOIN_DENOISE_CAPS
  41052. {
  41053. DWORD dwSize; // 用户使用时赋值为结构体大小
  41054. int nChannel; // 通道号
  41055. } NET_IN_VIDEOIN_DENOISE_CAPS;
  41056. ///@brief 支持的3D降噪类型
  41057. typedef enum tagNET_EM_3DSUPPORT_TYPE
  41058. {
  41059. NET_EM_3DSUPPORT_UNKOWN, // 未知
  41060. NET_EM_3DSUPPORT_OFF, // 关闭
  41061. NET_EM_3DSUPPORT_AUTO, // 自动
  41062. NET_EM_3DSUPPORT_MANUAL, // 手动
  41063. } NET_EM_3DSUPPORT_TYPE;
  41064. ///@brief 3D降噪支持的算法模式
  41065. typedef struct tagNET_3D_ALGORITHM_MODE
  41066. {
  41067. /* 采用掩码表示,bit0,bit1,bit2...分别表示降噪算法bit0、降噪算法bit1、 */
  41068. /* 降噪算法bit2,以此类推.全为0,表示都不支持降噪算法 */
  41069. DWORD dwSingleExposure; // 单快门降噪能力
  41070. DWORD dwDoubleExposureFullRate; // ITC双快门全帧率降噪能力
  41071. DWORD dwDoubleExposureHalfRate; // ITC双快门半帧率降噪能力
  41072. DWORD dsThreeExposure; // 三快门降噪能力
  41073. BYTE bReserved[128]; // 预留字段
  41074. } NET_3DALGORITHM_MODE;
  41075. #define MAX_3DTYPE_COUNT 8 // 最大支持的3D降噪类型个数
  41076. #define MAX_GROUP_COUNT 2 // 降噪分组最大值
  41077. #define MAX_PROGRAM_COUNT 8 // 降噪分组每组支持的最大方案数
  41078. ///@brief 2D降噪能力
  41079. typedef struct tagNET_SUPPORT2D_CAPS
  41080. {
  41081. BOOL bSupport2D; // 是否支持2D降噪
  41082. int n2DLevelMin; // 2D降噪等级最小值
  41083. int n2DLevelMax; // 2D降噪等级最大值
  41084. int nMaxRAWLevel; // 持最大RAW域的2D降噪值, 0 表示不支持
  41085. BYTE bReserved[128]; // 预留字段
  41086. } NET_SUPPORT2D_CAPS;
  41087. ///@brief 每组降噪分组支持的方案信息
  41088. typedef struct tagNET_DENOISEGROUP_PROGRAM
  41089. {
  41090. int nProgramCount; // 实际的方案个数
  41091. int nProgram[MAX_PROGRAM_COUNT]; // 支持的方案列表
  41092. } NET_DENOISEGROUP_PROGRAM;
  41093. ///@brief 3D降噪能力
  41094. typedef struct tagNET_SUPPORT3D_CAPS
  41095. {
  41096. BOOL bSupport3D; // 是否支持3D降噪
  41097. int n3DTypeCount; // 支持的3D降噪类型个数
  41098. NET_EM_3DSUPPORT_TYPE em3DSupportType[MAX_3DTYPE_COUNT]; // 支持的3D降噪类型
  41099. int n3DLevelMin; // 3D降噪等级最小值
  41100. int n3DLevelMax; // 3D降噪等级最大值
  41101. int nAutoLevelMin; // 3D自动控制模式最小值
  41102. int nAutoLevelMax; // 3D自动控制模式最大值
  41103. NET_3DALGORITHM_MODE stuAlgorithmSDMode; // 3D降噪支持的算法模式
  41104. int nGroupCount; // 实际分组个数
  41105. NET_DENOISEGROUP_PROGRAM stuDenoiseGroup[MAX_GROUP_COUNT]; // 降噪分组,切换前后方案属于同一组或几组则不重启生效,否则重启生效,数值n对应, DenoiseMode中bit(n)对应的方案
  41106. int nDenoiseScheme; // 降噪方案, 1表示采用新方案方式设置降噪参数,0表示直接设置参数方式设置降噪参数(旧方案)
  41107. BYTE bReserved[128]; // 预留字段
  41108. } NET_SUPPORT3D_CAPS;
  41109. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_DENOISE_CAPS 命令出参
  41110. typedef struct tagNET_OUT_VIDEOIN_DENOISE_CAPS
  41111. {
  41112. DWORD dwSize; // 用户使用时赋值为结构体大小
  41113. BOOL bSupport; // 是否支持降噪设置
  41114. NET_SUPPORT2D_CAPS stu2DCaps; // 2D降噪能力
  41115. NET_SUPPORT3D_CAPS stu3DCaps; // 3D降噪能力
  41116. BOOL bSupportAlgorithm1; // 是否支持降噪算法1
  41117. int nTnfLevelRangeMin; // 时域等级最小值
  41118. int nTnfLevelRangeMax; // 时域等级最大值
  41119. int nSnfLevelRangeMin; // 空域等级最小值
  41120. int nSnfLevelRangeMax; // 空域等级最大值
  41121. int nSeniotTypeCount; // 支持的高级降噪类型个数
  41122. NET_EM_3DSUPPORT_TYPE emSeniorType[MAX_3DTYPE_COUNT]; // 支持的高级降噪类型
  41123. } NET_OUT_VIDEOIN_DENOISE_CAPS;
  41124. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_BACKLIGHT_CAPS 命令入参
  41125. typedef struct tagNET_IN_VIDEOIN_BACKLIGHT_CAPS
  41126. {
  41127. DWORD dwSize; // 用户使用时赋值为结构体大小
  41128. int nChannel; // 通道号
  41129. } NET_IN_VIDEOIN_BACKLIGHT_CAPS;
  41130. ///@brief 背光模式
  41131. typedef enum tagNET_EM_BACK_MODE
  41132. {
  41133. NET_EM_BACKLIGHT_MODE_UNKNOW, // 未知模式
  41134. NET_EM_BACKLIGHT_MODE_OFF, // 关闭
  41135. NET_EM_BACKLIGHT_MODE_BACKLIGHT, // 背光补偿
  41136. NET_EM_BACKLIGHT_MODE_WIDEDYNAMIC, // 宽动态
  41137. NET_EM_BACKLIGHT_MODE_GLAREINHIBITION, // 强光抑制
  41138. NET_EM_BACKLIGHT_MODE_SSA, // 场景自适应
  41139. } NET_EM_BACK_MODE;
  41140. ///@brief 背光补偿模式
  41141. typedef enum tagNET_EM_BLACKLIGHT_MODE
  41142. {
  41143. NET_EM_BLACKLIGHT_UNKNOW, // 未知模式
  41144. NET_EM_BLACKLIGHT_DEFAULT, // 默认模式
  41145. NET_EM_BLACKLIGHT_REGION, // 自定义区域模式
  41146. } NET_EM_BLACKLIGHT_MODE;
  41147. ///@brief 场景自适应对比度强度调节模式
  41148. typedef enum tagNET_EM_BACK_INTENSITY_MODE
  41149. {
  41150. NET_EM_INTENSITY_UNKNOWN, // 未知
  41151. NET_EM_INTENSITY_OFF, // 关闭
  41152. NET_EM_INTENSITY_AUTO, // 自动
  41153. NET_EM_INTENSITY_MANUAL, // 手动
  41154. } NET_EM_BACK_INTENSITY_MODE;
  41155. ///@brief 支持强光抑制模式的参数设置方式
  41156. typedef enum tagNET_EM_GLAREINHIBITION_MODE
  41157. {
  41158. NET_EM_GLAREINHIBITION_UNKNOWN, // 未知
  41159. NET_EM_GLAREINHIBITION_DEFAULT, // 普通模式(默认值)
  41160. NET_EM_GLAREINHIBITION_FPGA, // Fpga强光抑制
  41161. } NET_EM_GLAREINHIBITION_MODE;
  41162. #define MAX_MODE_COUNT 8 // 模式最大支持数
  41163. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_BACKLIGHT_CAPS 命令出参
  41164. typedef struct tagNET_OUT_VIDEOIN_BACKLIGHT_CAPS
  41165. {
  41166. DWORD dwSize; // 用户使用时赋值为结构体大小
  41167. BOOL bSupport; // 是否支持背光设置能力
  41168. int nBackModeCount; // 背光模式实际支持数量
  41169. NET_EM_BACK_MODE emBackMode[MAX_MODE_COUNT]; // 支持的背光模式
  41170. int nBackLightModeCount; // 背光补偿模式实际支持数
  41171. NET_EM_BLACKLIGHT_MODE emBackLightMode[MAX_MODE_COUNT]; // 支持的背光补偿模式
  41172. int nWideDynamicRange; // 是否支持宽动态, 0-不支持,1-支持数字宽动态(支持0-100档),2-支持真实宽动态(支持0-100档),3-只支持数字宽动态的开和关(支持0-1档),4-支持数字宽动态,档位是0-100(支持0-100档) 5-支持混合宽动态,即数字宽动态+真实宽动态,等级范围0~100
  41173. int nSSAIntensity; // 场景自适应对比度强度调节支持的模式数量
  41174. NET_EM_BACK_INTENSITY_MODE emIntensityMode[MAX_MODE_COUNT]; // 场景自适应对比度强度调节支持的模式
  41175. NET_EM_GLAREINHIBITION_MODE emGlareInhibition[MAX_MODE_COUNT]; // 支持强光抑制模式的参数设置方式
  41176. UINT nGlareInhibition; // 支持的强光抑制模式个数
  41177. } NET_OUT_VIDEOIN_BACKLIGHT_CAPS;
  41178. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_WHITEBALANCE_CAPS 命令入参
  41179. typedef struct tagNET_IN_VIDEOIN_WHITEBALANCE_CAPS
  41180. {
  41181. DWORD dwSize; // 用户使用时赋值为结构体大小
  41182. int nChannel; // 通道号
  41183. } NET_IN_VIDEOIN_WHITEBALANCE_CAPS;
  41184. ///@brief 白平衡模式
  41185. typedef enum tagNET_EM_WHITEBALANCE_TYPE
  41186. {
  41187. NET_EM_WHITEBALANCE_UNKNOW, // 未知类型
  41188. NET_EM_WHITEBALANCE_DISABLE, // Unable
  41189. NET_EM_WHITEBALANCE_AUTO, // Auto
  41190. NET_EM_WHITEBALANCE_SUNNY, // Sunny晴天,6500K左右
  41191. NET_EM_WHITEBALANCE_CLOUDY, // Cloudy阴天,7500K左右
  41192. NET_EM_WHITEBALANCE_HOME, // Home家里 5000K左右
  41193. NET_EM_WHITEBALANCE_OFFICE, // Office办公 4400K左右
  41194. NET_EM_WHITEBALANCE_NIGHT, // Night夜晚 2800K左右
  41195. NET_EM_WHITEBALANCE_CUSTOM, // Custom自定义
  41196. NET_EM_WHITEBALANCE_HIGHCOLORTEMP, // HighColorTemperature高色温区间
  41197. NET_EM_WHITEBALANCE_LOWCOLORTEMP, // LowColorTemperature低色温区间
  41198. NET_EM_WHITEBALANCE_AUTOCOLORTEMP, // AutoColorTemperature自动色温区间
  41199. NET_EM_WHITEBALANCE_CUSTOMCOLORTEMP, // CustomColorTemperature自定义色温等级
  41200. NET_EM_WHITEBALANCE_INDOOR, // Indoor室内
  41201. NET_EM_WHITEBALANCE_OUTDOOR, // Outdoor室外,重点保证大面积绿草地不偏色
  41202. NET_EM_WHITEBALANCE_ATW, // ATW跟踪
  41203. NET_EM_WHITEBALANCE_MANUAL, // Manual手动
  41204. NET_EM_WHITEBALANCE_AUTOOUTDOOR, // AutoOutdoor
  41205. NET_EM_WHITEBALANCE_SODIUMAUTO, // SodiumAuto钠灯自动
  41206. NET_EM_WHITEBALANCE_SODIUM, // Sodium钠灯, 2000K左右
  41207. NET_EM_WHITEBALANCE_MANUALDATUM, // ManualDatum自定义单区域白平衡
  41208. NET_EM_WHITEBALANCE_PARTWHITEBALANCE, // PartWhiteBalance自定义多区域白平衡
  41209. NET_EM_WHITEBALANCE_NATURAL, // Natural自然光, 2000K-12000K 晴天阴天+傍晚凌晨
  41210. NET_EM_WHITEBALANCE_STREETLAMP, // StreetLamp路灯, 1000K-5000K
  41211. } NET_EM_WHITEBALANCE_TYPE;
  41212. #define MAX_BALANCEMODES_COUNT 16 // 白平衡模式最大个数
  41213. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_WHITEBALANCE_CAPS 命令出参
  41214. typedef struct tagNET_OUT_VIDEOIN_WHITEBALANCE_CAPS
  41215. {
  41216. DWORD dwSize; // 用户使用时赋值为结构体大小
  41217. BOOL bSupport; // 是否支持白平衡设置
  41218. int nWhiteBalance; // 实际支持的白平衡模式个数
  41219. NET_EM_WHITEBALANCE_TYPE emWhiteBalance[MAX_BALANCEMODES_COUNT]; // 支持的白平衡模式列表
  41220. } NET_OUT_VIDEOIN_WHITEBALANCE_CAPS;
  41221. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_DAYNIGHT_CAPS 命令入参
  41222. typedef struct tagNET_IN_VIDEOIN_DAYNIGHT_CAPS
  41223. {
  41224. DWORD dwSize; // 用户使用时赋值为结构体大小
  41225. int nChannel; // 通道号
  41226. } NET_IN_VIDEOIN_DAYNIGHT_CAPS;
  41227. ///@brief ICR切换类型
  41228. typedef enum tagNET_EM_ICR_TYPE
  41229. {
  41230. NET_EM_ICR_UNKONOW, // 未知
  41231. NET_EM_ICR_ELECTRON, // 电子
  41232. NET_EM_ICR_MECHANISM, // 机械
  41233. } NET_EM_ICR_TYPE;
  41234. ///@brief 彩转黑模式
  41235. typedef enum tagNET_EM_COLORBLACK_MODE
  41236. {
  41237. NET_EM_COLORBLACK_UNKNOWN, // 未知
  41238. NET_EM_COLORBLACK_COLOR, // 总是彩色
  41239. NET_EM_COLORBLACK_BRIGHTNESS, // 根据亮度自动切换
  41240. NET_EM_COLORBLACK_BLACKWHITE, // 总是黑白
  41241. NET_EM_COLORBLACK_PHOTORESISTOR, // 光敏电阻
  41242. NET_EM_COLORBLACK_GAIN, // 根据增益切换
  41243. NET_EM_COLORBLACK_ALARMINPUT, // 外部报警输入
  41244. NET_EM_COLORBLACK_IO, // 外部IO输入
  41245. } NET_EM_COLORBLACK_MODE;
  41246. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_DAYNIGHT_CAPS 命令出参
  41247. typedef struct tagNET_OUT_VIDEOIN_DAYNIGHT_CAPS
  41248. {
  41249. DWORD dwSize; // 用户使用时赋值为结构体大小
  41250. BOOL bSupport; // 球机机芯日夜设置能力
  41251. int nICRType; // 实际支持的ICR切换类型个数
  41252. NET_EM_ICR_TYPE emICRType[MAX_MODE_COUNT]; // ICR切换类型列表
  41253. int nColorBlackMode; // 实际支持的彩转黑模式个数
  41254. NET_EM_COLORBLACK_MODE emColorBlackMode[MAX_MODE_COUNT]; // 支持的彩转黑模式列表
  41255. int nSensitivityRangeMin; // 彩转黑灵敏度最小值
  41256. int nSensitivityRangeMax; // 彩转黑灵敏度最大值
  41257. int nDelayRangeMin; // 日夜模式切换延时最小值
  41258. int nDelayRangeMax; // 日夜模式切换延时最大值
  41259. } NET_OUT_VIDEOIN_DAYNIGHT_CAPS;
  41260. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_ZOOM_CAPS 命令入参
  41261. typedef struct tagNET_IN_VIDEOIN_ZOOM_CAPS
  41262. {
  41263. DWORD dwSize; // 用户使用时赋值为结构体大小
  41264. int nChannel; // 通道号
  41265. } NET_IN_VIDEOIN_ZOOM_CAPS;
  41266. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_ZOOM_CAPS 命令出参
  41267. typedef struct tagNET_OUT_VIDEOIN_ZOOM_CAPS
  41268. {
  41269. DWORD dwSize; // 用户使用时赋值为结构体大小
  41270. BOOL bSupport; // 是否支持变倍设置
  41271. int nSpeedRangeMin; // 变倍速率最小值
  41272. int nSpeedRangeMax; // 变倍速率最大值
  41273. BOOL bDigitalZoomSupport; // 是否支持数字变倍
  41274. int nZoomLimitRangeMin; // 当前速率下最大变倍上限范围最小值
  41275. int nZoomLimitRangeMax; // 当前速率下最大变倍上限范围最大值
  41276. } NET_OUT_VIDEOIN_ZOOM_CAPS;
  41277. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_FOCUS_CAPS 命令入参
  41278. typedef struct tagNET_IN_VIDEOIN_FOCUS_CAPS
  41279. {
  41280. DWORD dwSize; // 用户使用时赋值为结构体大小
  41281. int nChannel; // 通道号
  41282. } NET_IN_VIDEOIN_FOCUS_CAPS;
  41283. ///@brief 聚焦模式
  41284. typedef enum tagNET_EM_FOCUS_MODE
  41285. {
  41286. NET_EM_FOCUS_OFF, // 关闭
  41287. NET_EM_FOCUS_ASSIST, // 辅助聚焦
  41288. NET_EM_FOCUS_AUTO, // 自动聚焦
  41289. NET_EM_FOCUS_SEMI_AUTO, // 半自动聚焦
  41290. NET_EM_FOCUS_MANUAL, // 手动聚焦
  41291. } NET_EM_FOCUS_MODE;
  41292. ///@brief 聚焦极限选取模式
  41293. typedef enum tagNET_EM_FOCUS_LIMITSELECT_MODE
  41294. {
  41295. NET_EM_FOCUS_LIMITSELECT_UNKNOW, // 未知模式
  41296. NET_EM_FOCUS_LIMITSELECT_MANUAL, // 手动
  41297. NET_EM_FOCUS_LIMITSELECT_AUTO, // 自动
  41298. } NET_EM_FOCUS_LIMITSELECT_MODE;
  41299. ///@brief 聚焦类型
  41300. typedef enum tagNET_EM_FOCUS_TYPE
  41301. {
  41302. NET_EM_FOCUS_UNKNOWN, // 未知类型
  41303. NET_EM_FOCUS_AUTOTRACE, // 自动变焦跟踪
  41304. } NET_EM_FOCUS_TYPE;
  41305. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_FOCUS_CAPS 命令出参
  41306. typedef struct tagNET_OUT_VIDEOIN_FOCUS_CAPS
  41307. {
  41308. DWORD dwSize; // 用户使用时赋值为结构体大小
  41309. BOOL bSupport; // 是否支持聚焦设置
  41310. int nFcousMode; // 实际支持的聚焦模式格式
  41311. NET_EM_FOCUS_MODE emFocusMode[MAX_MODE_COUNT]; // 支持的聚焦模式列表
  41312. int nLimitMode; // 实际支持的聚焦极限选取模式个数
  41313. NET_EM_FOCUS_LIMITSELECT_MODE emLimitMode[MAX_MODE_COUNT]; // 支持的聚焦极限选取模式列表
  41314. BOOL bSupportFocusRegion; // 是否支持域聚焦
  41315. BOOL bSensitivity; // 是否支持聚焦林敏度
  41316. BOOL bIRCorrection; // 是否支持红外光聚焦修正
  41317. BOOL bFocusLimit; // 是否支持聚焦极限
  41318. int nFocusTypeCount; // 实际支持的聚焦类型个数
  41319. NET_EM_FOCUS_TYPE emFocusType[MAX_MODE_COUNT]; // 支持的聚焦类型列表
  41320. int nFocusLimitRangeCount; // 聚焦极限范围值的个数
  41321. int nFocusLimitRange[16]; // 支持聚焦极限时、聚焦极限范围值,单位毫米
  41322. // 1. 默认为[100, 1000, 2000, 3000, 5000]以兼容以前设备
  41323. // 2. 当档位中存在xxxx1时,显示时需要把1替换为0,并在最后追加字符+;例如:200001显示时为200000mm+ (通常采用较直观的单位来显示,例如:200m+)
  41324. } NET_OUT_VIDEOIN_FOCUS_CAPS;
  41325. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_SHARPNESS_CAPS 命令入参
  41326. typedef struct tagNET_IN_VIDEOIN_SHARPNESS_CAPS
  41327. {
  41328. DWORD dwSize; // 用户使用时赋值为结构体大小
  41329. int nChannel; // 通道号
  41330. } NET_IN_VIDEOIN_SHARPNESS_CAPS;
  41331. ///@brief 锐度模式
  41332. typedef enum tagNET_EM_SHARPNESS_MODE
  41333. {
  41334. NET_EM_SHARPNESS_AUTO, //自动
  41335. NET_EM_SHARPNESS_MANAUL, // 手动
  41336. }NET_EM_SHARPNESS_MODE;
  41337. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_SHARPNESS_CAPS 命令出参
  41338. typedef struct tagNET_OUT_VIDEOIN_SHARPNESS_CAPS
  41339. {
  41340. DWORD dwSize; // 用户使用时赋值为结构体大小
  41341. BOOL bSupport; // 是否支持锐度设置
  41342. int nSharpnessMode; // 实际支持的锐度模式个数
  41343. NET_EM_SHARPNESS_MODE emSharpnessMode[MAX_MODE_COUNT]; // 支持的锐度模式列表
  41344. int nSharpnessMin; // 锐度最小值
  41345. int nSharpnessMax; // 锐度最大值
  41346. BOOL bSupportRestrain; // 是否支持锐度抑制
  41347. int nRestrainLevelMin; // 锐度抑制等级最小值
  41348. int nRestrainLevelMax; // 锐度抑制等级最大值
  41349. } NET_OUT_VIDEOIN_SHARPNESS_CAPS;
  41350. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_COLOR_CAPS 命令入参
  41351. typedef struct tagNET_IN_VIDEOIN_COLOR_CAPS
  41352. {
  41353. DWORD dwSize; // 用户使用时赋值为结构体大小
  41354. int nChannel; // 通道号
  41355. } NET_IN_VIDEOIN_COLOR_CAPS;
  41356. ///@brief 图像风格能力类型
  41357. typedef enum tagNET_EM_STYLE_TYPE
  41358. {
  41359. NET_EM_STYLE_UNKONWON, // 未知
  41360. NET_EM_STYLE_GENTLE, // 柔和
  41361. NET_EM_STYLE_STANDARD, // 标准
  41362. NET_EM_STYLE_FLAMBOYANT, // 艳丽
  41363. } NET_EM_STYLE_TYPE;
  41364. ///@brief 图像风格设置能力
  41365. typedef struct tagNET_COLOR_STYLE_CAPS
  41366. {
  41367. BOOL bSupport; // 是否支持图像风格设置
  41368. int nStyleType; // 实际支持的图像风格能力个数
  41369. NET_EM_STYLE_TYPE emStyleType[MAX_MODE_COUNT]; // 支持的图像风格能力列表
  41370. BYTE bReserved[128]; // 预留字段
  41371. } NET_COLOR_STYLE_CAPS;
  41372. #define MAX_GRAYVALUE_COUNT 8 // 灰度值的最大个数
  41373. ///@brief 灰度范围能力
  41374. typedef struct tagNET_GRAY_SCALE_CAPS
  41375. {
  41376. BOOL bSupport; // 是否支持灰度范围能力
  41377. int nValueCount; // 实际支持的灰度范围组数
  41378. int nValue[MAX_GRAYVALUE_COUNT][2]; // 灰度范围的上下限值
  41379. BYTE bReserved[128]; // 预留字段
  41380. } NET_GRAY_SCALE_CAPS;
  41381. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_COLOR_CAPS 命令出参
  41382. typedef struct tagNET_OUT_VIDEOIN_COLOR_CAPS
  41383. {
  41384. DWORD dwSize; // 用户使用时赋值为结构体大小
  41385. BOOL bSupport; // 是否支持图像设置能力
  41386. BOOL bBrightness; // 是否支持亮度
  41387. BOOL bContrast; // 是否支持对比度
  41388. BOOL bSaturation; // 是否支持饱和度
  41389. BOOL bHue; // 是否支持色度
  41390. BOOL bGamma; // 是否支持Gamma
  41391. BOOL bChromaSuppress; // 是否支持色彩抑制
  41392. NET_COLOR_STYLE_CAPS stuColorStype; // 图像风格能力
  41393. NET_GRAY_SCALE_CAPS stuGrayScale; // 灰度范围能力
  41394. } NET_OUT_VIDEOIN_COLOR_CAPS;
  41395. ///@brief CLIENT_GetDevCaps 接口 NET_VIDEOIN_RAWFRAME_CAPS 命令出参
  41396. typedef struct tagNET_IN_VIDEOIN_RAWFRAME_CAPS
  41397. {
  41398. DWORD dwSize;
  41399. }NET_IN_VIDEOIN_RAWFRAME_CAPS;
  41400. ///@brief YUV数据格式能力集
  41401. typedef struct tagNET_RAWFRAMETYPE_DATA
  41402. {
  41403. int nListNum; // 实际返回的数据格式个数
  41404. char szList[DH_COMMON_STRING_16][DH_COMMON_STRING_8];// 支持的YUV数据格式列表
  41405. BYTE byReserved[1024];
  41406. }NET_RAWFRAMETYPE_DATA;
  41407. ///@brief CLIENT_GetDevCaps 接口 NET_VIDEOIN_RAWFRAME_CAPS 命令出参
  41408. typedef struct tagNET_OUT_VIDEOIN_RAWFRAME_CAPS
  41409. {
  41410. DWORD dwSize;
  41411. NET_RAWFRAMETYPE_DATA stuFrameData;
  41412. }NET_OUT_VIDEOIN_RAWFRAME_CAPS;
  41413. #define MAX_UNIT_COUNT 8 // 最大支持的问题单位个数
  41414. ///@brief CLIENT_GetDevCaps NET_FACE_BOARD_CAPS 命令出参
  41415. typedef struct tagNET_OUT_FACEBOARD_CAPS
  41416. {
  41417. DWORD dwSize; // 该结构体大小
  41418. BOOL bHasBattery; // 是否有电池
  41419. BOOL bSupportPowerVoltageDetect; // 是否支持电源电压检测
  41420. BOOL bTemperatures; // 是否支持温度传感器
  41421. BOOL bOSDTemperatureUnit; // 是否支持温度单位选择
  41422. int nRetUnitCount; // 实际支持的温度单位个数
  41423. EM_TEMPERATURE_UNIT emTempreatureUnit[MAX_UNIT_COUNT]; // OSD叠加时支持的温度单位
  41424. }NET_OUT_FACEBOARD_CAPS;
  41425. ///@brief CLIENT_GetDevCaps接口 NET_COAXIAL_CONTROL_IO_CAPS 命令入参
  41426. typedef struct tagNET_IN_GET_COAXIAL_CONTROL_IO_CAPS
  41427. {
  41428. DWORD dwSize; // 结构体大小
  41429. int nChannel; // 通道号
  41430. } NET_IN_GET_COAXIAL_CONTROL_IO_CAPS;
  41431. ///@brief CLIENT_GetDevCaps接口 NET_COAXIAL_CONTROL_IO_CAPS 命令出参
  41432. typedef struct tagNET_OUT_GET_COAXIAL_CONTROL_IO_CAPS
  41433. {
  41434. DWORD dwSize; // 结构体大小
  41435. BOOL bSupportControlLight; // 是否支持白光灯
  41436. BOOL bSupportControlSpeaker; // 是否支持speaker音频外放
  41437. BOOL bSupportControlFullcolorLight; // 是否支持全彩白光灯
  41438. BOOL bSupportControlSuperLight; // 是否支持超级补光
  41439. BOOL bSupportControlIntelliLight; // 是否支持智能双光全彩白光灯
  41440. BOOL bSupportControlIntelliSpeaker; // 是否支持智能音频警戒
  41441. BOOL bSupportControlWhiteBlueLight; // 是否支持卡宴白蓝灯
  41442. } NET_OUT_GET_COAXIAL_CONTROL_IO_CAPS;
  41443. ///@brief CLIENT_GetDevCaps接口 NET_FACEINFO_CAPS 命令入参
  41444. typedef struct tagNET_IN_GET_FACEINFO_CAPS
  41445. {
  41446. DWORD dwSize; // 结构体大小
  41447. }NET_IN_GET_FACEINFO_CAPS;
  41448. ///@brief 目标识别算法
  41449. typedef enum tagEM_RECOGNITIONALGORITHM_TYPE
  41450. {
  41451. EM_RECOGNITIONALGORITHM_UNKNOWN,
  41452. EM_RECOGNITIONALGORITHM_DAHUA,
  41453. EM_RECOGNITIONALGORITHM_SHANGTANG,
  41454. EM_RECOGNITIONALGORITHM_YITU,
  41455. EM_RECOGNITIONALGORITHM_HANWANG,
  41456. EM_RECOGNITIONALGORITHM_FIREEYE,
  41457. }EM_RECOGNITIONALGORITHM_TYPE;
  41458. ///@brief CLIENT_GetDevCaps接口 NET_FACEINFO_CAPS 命令出参
  41459. typedef struct tagNET_OUT_GET_FACEINFO_CAPS
  41460. {
  41461. DWORD dwSize; // 结构体大小
  41462. int nRecognitionType; // 支持的目标识别类型,0:白光,1:红外
  41463. EM_RECOGNITIONALGORITHM_TYPE emRecognitionAlgorithm; // 目标识别算法
  41464. DWORD nRecognitionVersion; // 算法版本号,如1.5.2表示成0x00010502
  41465. UINT nMaxFaces; // 存储上限
  41466. int nMaxPhotoSize; // 白光照片最大尺寸,单位:KB
  41467. UINT nMaxInsertRate; // 每次最大插入量
  41468. BOOL bIsSupportGetPhoto; // 是否支持获取白光照片
  41469. BOOL bIsSupportFaceEigen; // 是否支持通过图片提取特征值
  41470. BOOL bIsSupportMultiFace; // 是否支持一人多脸
  41471. BOOL bIsSupportOnlyImportFaceEigen; // 是否支持只下发特征值
  41472. }NET_OUT_GET_FACEINFO_CAPS;
  41473. ///@brief 支持的动检方案信息
  41474. typedef enum tagEM_DETECT_VERSION_TYPE
  41475. {
  41476. EM_DETECT_VERSION_UNKNOW = 0 ,
  41477. EM_DETECT_VERSION_V1_0 , //第一版动检方案
  41478. EM_DETECT_VERSION_V3_0 , //第三版动检方案
  41479. }EM_DETECT_VERSION_TYPE;
  41480. #define MAX_DETECT_VERSION_NUM 64
  41481. ///@brief 支持的视频遮挡检测版本信息
  41482. typedef enum tagEM_BLIND_DETECT_VERSION_TYPE
  41483. {
  41484. EM_BLIND_DETECT_VERSION_UNKNOW = 0 ,
  41485. EM_BLIND_DETECT_VERSION_FULL_SCREEN , //全屏遮挡检测
  41486. EM_BLIND_DETECT_VERSION_MULTI_WINDOW , //多窗口检测
  41487. }EM_BLIND_DETECT_VERSION_TYPE;
  41488. #define MAX_BLIND_DETECT_VERSION_NUM 64
  41489. ///@brief 智能动检检测类型
  41490. typedef enum tagEM_SMART_MOTION_TYPE
  41491. {
  41492. EM_SMART_MOTION_UNKNOWN, // 未知
  41493. EM_SMART_MOTION_HUMAN, // 人体
  41494. EM_SMART_MOTION_VEHICLE, // 机动车
  41495. } EM_SMART_MOTION_TYPE;
  41496. ///@brief 智能动检能力信息
  41497. typedef struct tagNET_SMART_MOTION_CAPS
  41498. {
  41499. BOOL bSupport; // 是否支持智能动检
  41500. UINT nSmartTypeNum; // 智能动检支持的检测类型个数
  41501. EM_SMART_MOTION_TYPE emSmartMotionType[8]; // 智能动检支持的检测类型
  41502. BYTE byReserved[512]; // 保留字节
  41503. } NET_SMART_MOTION_CAPS;
  41504. ///@brief 获取视频检测输入能力集
  41505. typedef struct tagNET_OUT_VIDEO_DETECT_CAPS
  41506. {
  41507. DWORD dwSize;
  41508. BOOL bSupportBlind; //是否支持黑屏检测
  41509. BOOL bSupportLoss; //是否支持视频丢失检测
  41510. BOOL bSupportMotion; //是否支持动态检测
  41511. BOOL bMotionResult; //是否能够得到每块区域的检测结果
  41512. DWORD nMotionColumns; //动态检测区域划分的列数
  41513. DWORD nMotionRows; //动态检测区域划分的行数
  41514. DWORD nMotionDetectWindow; //动检支持的视频窗口数
  41515. DWORD nBlindColumns; //视频遮挡检测区域划分的列数
  41516. DWORD nBlindRows; //视频遮挡检测区域划分的行数
  41517. DWORD nBlindDetectWindow; //视频遮挡支持的窗口数
  41518. BOOL bPositionDetect; //是否支持移动位置侦测
  41519. DWORD nDetectVersionNum; //支持的动检方案数
  41520. EM_DETECT_VERSION_TYPE emDetectVersions[MAX_DETECT_VERSION_NUM]; //支持的动检方案信息
  41521. DWORD nBlindDetectVersionNum; //支持的视频遮挡检测版本数
  41522. EM_BLIND_DETECT_VERSION_TYPE emBlindDetectVersions[MAX_BLIND_DETECT_VERSION_NUM]; //支持的视频遮挡检测版本信息
  41523. BOOL bMotionLinkPtzPreset; //动检是否支持联动云台预置点
  41524. BOOL bMotionLinkPtzTour; //动检是否支持联动云台巡航
  41525. BOOL bMotionLinkPtzPattern; //动检是否支持联动云台巡迹
  41526. BOOL bUnFocusDetect; //是否支持虚焦检测
  41527. BOOL bAlarmDetect; //是否支持动检同时检测报警并触发
  41528. BOOL bSupportMoveDetect; // 是否支持场景变更检测
  41529. NET_SMART_MOTION_CAPS stuSmartMotionCaps; // 智能动检能力信息
  41530. }NET_OUT_VIDEO_DETECT_CAPS;
  41531. ///@brief 跌落事件类型
  41532. typedef struct tagALARM_FALLING_INFO
  41533. {
  41534. DWORD dwStructSize; // 结构体大小
  41535. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  41536. BYTE byRserved[3]; // 对齐
  41537. char szUserID[32]; // 设备跌落时登陆的用户信息用户ID
  41538. char szUserName[128]; // 设备跌落时登陆的用户信息用户名
  41539. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  41540. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  41541. }ALARM_FALLING_INFO;
  41542. ///@brief 订阅Bus状态回调函数原型
  41543. typedef void (CALLBACK *fBusStateCallBack)(LLONG lAttachHandle, LONG lCommand, char *pBuf, DWORD dwBufLen, LDWORD dwUser);
  41544. ///@brief 刷卡类型
  41545. typedef enum tagNET_DRIVER_CHECK_TYPE
  41546. {
  41547. NET_DRIVER_CHECK_TYPE_UNKNOWN, // 未知
  41548. NET_DRIVER_CHECK_TYPE_SIGNIN, // 签到
  41549. NET_DRIVER_CHECK_TYPE_SIGNOUT, // 签出
  41550. } NET_DRIVER_CHECK_TYPE;
  41551. ///@brief 刷卡方式
  41552. typedef enum tagNET_DRIVER_CHECK_METHOD
  41553. {
  41554. NET_DRIVER_CHECK_METHOD_UNKNOWN, // 未知
  41555. NET_DRIVER_CHECK_METHOD_POS, // POS机
  41556. NET_DRIVER_CHECK_METHOD_HAND, // 手动输入
  41557. } NET_DRIVER_CHECK_METHOD;
  41558. ///@brief 报警事件类型DH_ALARM_BUS_DRIVER_CHECK( 司机识别卡检测事件)对应的数据描述信息
  41559. typedef struct tagALARM_BUS_DRIVER_CHECK_INFO
  41560. {
  41561. DWORD dwSize;
  41562. char szCarNo[DH_MAX_PLATE_NUMBER_LEN]; // 车牌
  41563. char szDriverName[DH_COMMON_STRING_16]; // 司机姓名
  41564. char szDriverID[DH_MAX_PERSON_ID_LEN]; // 工号
  41565. char szOrganize[DH_COMMON_STRING_128]; // 驾驶证发证机构名称
  41566. NET_TIME_EX stUsefulLife; // 证件有效期
  41567. NET_GPS_STATUS_INFO stGPSStatusInfo; // GPS信息
  41568. NET_TIME_EX stCheckTime; // 打卡时间
  41569. NET_DRIVER_CHECK_METHOD emCheckMethod; // 打卡方式
  41570. NET_DRIVER_CHECK_TYPE emCheckType; // 打卡类型
  41571. }ALARM_BUS_DRIVER_CHECK_INFO;
  41572. ///@brief 报警事件类型DH_ALARM_DEVICE_MSG_NOTIFY(设备向平台发通知的事件)对应的数据描述信息
  41573. typedef struct tagALARM_DEVICE_MSG_NOTIFY_INFO
  41574. {
  41575. DWORD dwSize;
  41576. char szMsg[DH_COMMON_STRING_256]; // 消息内容
  41577. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  41578. } ALARM_DEVICE_MSG_NOTIFY_INFO;
  41579. ///@brief 电子围栏状态
  41580. typedef enum tagEM_ENCLOSURE_STATUS
  41581. {
  41582. EM_ENCLOSURE_STATUS_UNKNOWN, // 未知
  41583. EM_ENCLOSURE_STATUS_INSIDE, // 在电子围栏内
  41584. EM_ENCLOSURE_STATUS_OUTSIDE, // 不在电子围栏内
  41585. } EM_ENCLOSURE_STATUS;
  41586. ///@brief 报警事件类型DH_ALARM_VEHICLE_STANDING_OVER_TIME(停车超时报警)对应的数据描述信息
  41587. typedef struct tagALARM_VEHICLE_STANDING_OVER_TIME_INFO
  41588. {
  41589. DWORD dwSize;
  41590. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  41591. NET_TIME_EX stuTime; // 第一次发生的时间
  41592. NET_TIME_EX stuUtc; // 本次事件发生的时间
  41593. DWORD dwUtc; // 本次事件发生的时间, 与stuUtc值一样,格式不同,用于事件确认接口入参
  41594. BOOL bEventConfirm; // 是否需要回复
  41595. UINT nParkingTime; // 停车时长,单位秒
  41596. char szDeviceID[32]; // 设备编码
  41597. EM_ENCLOSURE_STATUS emEnclosureStatus; // 电子围栏状态
  41598. } ALARM_VEHICLE_STANDING_OVER_TIME_INFO;
  41599. ///@brief 线路方向
  41600. typedef enum tagNET_LINE_DIRECTION
  41601. {
  41602. NET_LINE_DIRECTION_UNKNOWN, // 未知
  41603. NET_LINE_DIRECTION_POSTIVE, // 正向
  41604. NET_LINE_DIRECTION_NEGATIVE, // 反向
  41605. NET_LINE_DIRECTION_AROUND, // 环线
  41606. NET_LINE_DIRECTION_DISPERSE, // 离散
  41607. } NET_LINE_DIRECTION;
  41608. ///@brief 进站离站状态
  41609. typedef enum tagNET_BUS_STATE
  41610. {
  41611. NET_BUS_STATE_UNKNOWN, // 未知
  41612. NET_BUS_STATE_ILLEGAL, // 非法
  41613. NET_BUS_STATE_LEGAL, // 合法
  41614. } NET_BUS_STATE;
  41615. ///@brief 报站方式
  41616. typedef enum tagNET_PORT_TYPE
  41617. {
  41618. NET_PORT_TYPE_UNKOWN, // 未知
  41619. NET_PORT_TYPE_MANUAL, // 手动报站
  41620. NET_PORT_TYPE_GPS, // GPS报站
  41621. } NET_PORT_TYPE;
  41622. ///@brief 车载开门事件的数据类型
  41623. typedef enum tagEM_VEHICLE_DATA_TYPE
  41624. {
  41625. EM_VEHICLE_DOOR_OPEN_DATA_UNKNOWN = 0,
  41626. EM_VEHICLE_DOOR_OPEN_DATA_REALTIME, // 实时的数据
  41627. EM_VEHICLE_DOOR_OPEN_DATA_HISTORY, // 重发的数据
  41628. }EM_VEHICLE_DATA_TYPE;
  41629. ///@brief 报警事件类型DH_ALARM_BUS_IMPORT_SITE(进站事件)对应的数据描述信息
  41630. typedef struct tagALARM_BUS_IMPORT_SITE_INFO
  41631. {
  41632. DWORD dwSize;
  41633. char szSiteID[DH_COMMON_STRING_64]; // 站点标识
  41634. DWORD dwSiteNum; // 站序
  41635. NET_LINE_DIRECTION emDirection; // 线路方向
  41636. char szLineID[DH_COMMON_STRING_64]; // 线路标识
  41637. NET_TIME_EX stuTime; // 进站离站时间
  41638. int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41639. NET_BUS_STATE emState; // 是否按规定时间进站
  41640. NET_PORT_TYPE emType; // 报站方式
  41641. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  41642. DWORD dwSiteCount; // 总站点数
  41643. char szSiteName[DH_COMMON_STRING_64]; // 站点名称
  41644. char szDesignation[DH_COMMON_STRING_64]; // 线路番号
  41645. EM_VEHICLE_DATA_TYPE emDataType; // 事件数据的类型
  41646. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41647. unsigned int nFromMileage; // 上一站到当前站的里程,单位:m
  41648. unsigned int nTotalMileage; // 起点站到当前站的里程,单位:m
  41649. unsigned int nFromCostTime; // 上一站到当前站的耗时,单位:s
  41650. unsigned int nTotalCostTime; // 起点站到当前站的耗时,单位:s
  41651. char szScheduleUniqueId[64]; // 调度标识
  41652. } ALARM_BUS_IMPORT_SITE_INFO;
  41653. ///@brief 不同设备统计到的人数信息
  41654. typedef struct tagNET_SUBTOTAL
  41655. {
  41656. unsigned int nDevNum; // 设备编号, 一个车上可能有好几个设备
  41657. unsigned int nInside; // 准备上车人数
  41658. unsigned int nExited; // 准备下车人数
  41659. BYTE byRserved[256]; // 保留字节
  41660. }NET_SUBTOTAL;
  41661. ///@brief 报警事件类型DH_ALARM_BUS_EXPORT_SITE(离站事件)对应的数据描述信息
  41662. typedef struct tagALARM_BUS_EXPORT_SITE_INFO
  41663. {
  41664. DWORD dwSize;
  41665. char szSiteID[DH_COMMON_STRING_64]; // 站点标识
  41666. DWORD dwSiteNum; // 站序
  41667. NET_LINE_DIRECTION emDirection; // 线路方向
  41668. char szLineID[DH_COMMON_STRING_64]; // 线路标识
  41669. NET_TIME_EX stuTime; // 进站离站时间
  41670. int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41671. NET_BUS_STATE emState; // 是否按规定时间离站
  41672. NET_PORT_TYPE emType; // 报站方式
  41673. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  41674. DWORD dwSiteCount; // 总站点数
  41675. char szSiteName[DH_COMMON_STRING_64]; // 站点名称
  41676. char szDesignation[DH_COMMON_STRING_64]; // 线路番号
  41677. EM_VEHICLE_DATA_TYPE emDataType; // 事件数据的类型
  41678. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41679. unsigned int nFromMileage; // 上一站到当前站的里程,单位:m
  41680. unsigned int nTotalMileage; // 起点站到当前站的里程,单位:m
  41681. unsigned int nFromCostTime; // 上一站到当前站的耗时,单位:s
  41682. unsigned int nTotalCostTime; // 起点站到当前站的耗时,单位:s
  41683. int nCurrentPeople; // 本次关门事件统计到的净人数,只计算当前关门时统计的人数。下车人数比上车人数多则会统计为负数
  41684. unsigned int nTotalIn; // 本次关门总上车人数
  41685. unsigned int nTotalOut; // 本次关门总下车人数
  41686. unsigned int nSubtotalCount; // 统计人数的设备数量
  41687. NET_SUBTOTAL stuSubtotal[32]; // 不同设备统计到的人数信息,最多有32个设备(一辆车可能有多个设备统计人数)
  41688. char szScheduleUniqueId[64]; // 调度标识
  41689. } ALARM_BUS_EXPORT_SITE_INFO;
  41690. ///@brief 异常事件类型
  41691. typedef enum tagEM_ALARM_BUS_ABNORMAL_EVENT_TYPE
  41692. {
  41693. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_UNKNOWN, // 未知
  41694. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_RUNNING, // 恢复营运,"Running"
  41695. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_MEAL, // 吃饭,"Meal"
  41696. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_BLOCK, // 路堵,"Block"
  41697. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_CALL, // 通话,"Call"
  41698. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_BREAKDOWN, // 车坏,"Breakdown"
  41699. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_DISCONTINUED, // 停止营运,"Discontinued"
  41700. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_ROBING, // 盗抢,"Robing"
  41701. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_OVERLOAD, // 超载,"Overload"
  41702. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_DISPUTE, // 纠纷,"Dispute"
  41703. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_ACCIDENT, // 事故,"Accident"
  41704. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_OVERSPEED, // 超速,"OverSpeed"
  41705. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_RENTAL, // 包车,"Rental"
  41706. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_MAINTENANCE, // 保养,"Maintenance"
  41707. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_CLOSURE, // 脱保停运,"Closure"
  41708. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_PUBSECURITY, // 治安事件, "PubSecurity"
  41709. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_ENTER_PARK, // 进入停车场, "EnterPark"
  41710. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_LEAVE_PARK, // 离开平车场, "LeavePark"
  41711. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_REFUEL, // 加油, "Refuel"
  41712. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_FIRE, // 火灾报警, "Fire"
  41713. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE_HELP, // 乘客救助, "Help"
  41714. }EM_ALARM_BUS_ABNORMAL_EVENT_TYPE;
  41715. ///@brief 报警事件类型DH_ALARM_BUS_ABNORMAL(车辆异常事件)对应的数据描述信息
  41716. typedef struct tagALARM_BUS_ABNORMAL_INFO
  41717. {
  41718. DWORD dwSize;
  41719. EM_ALARM_BUS_ABNORMAL_EVENT_TYPE emEventType; // 异常事件类型
  41720. char szCarNo[DH_MAX_PLATE_NUMBER_LEN]; // 车牌
  41721. char szLineID[DH_COMMON_STRING_64]; // 线路标识
  41722. NET_LINE_DIRECTION emLineDirection; // 线路方向
  41723. NET_TIME_EX stuTime; // 发生时间
  41724. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  41725. } ALARM_BUS_ABNORMAL_INFO;
  41726. ///@brief 报警事件类型DH_ALARM_ENCLOSURE_ALARM(电子围栏事件)对应的数据描述信息
  41727. typedef struct tagALARM_ENCLOSURE_ALARM_INFO
  41728. {
  41729. DWORD dwSize;
  41730. DWORD dwAlarmType; // 报警类型, 按位分别表示,
  41731. // 0:LimitSpeed, 1:DriveAllow, 2:ForbidDrive, 3:LoadGoods, 4:UploadGoods
  41732. DWORD dwAlarmDetail; // 报警描述, 按位分别表示,
  41733. // 0:DriveIn, 1:DriveOut, 2:Overspeed, 3:SpeedClear
  41734. NET_BUS_STATE emState; // 是否按规定时间触发事件
  41735. DWORD dwDriverNo; // 司机编号
  41736. DWORD dwEnclosureID; // 围栏ID
  41737. DWORD dwLimitSpeed; // 限速
  41738. DWORD dwCurrentSpeed; // 当前速度
  41739. NET_TIME_EX stuTime; // 当前时间
  41740. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  41741. } ALARM_ENCLOSURE_ALARM_INFO;
  41742. typedef NET_ACCESS_CTL_STATUS_TYPE NET_VEHICLE_DOOR_STATUS;
  41743. ///@brief 车载开门事件, 对应事件类型 DH_VEHICLE_DOOR_OPEN
  41744. typedef struct tagALARM_VEHICLE_DOOR_OPEN_INFO
  41745. {
  41746. DWORD dwSize;
  41747. NET_VEHICLE_DOOR_STATUS emStatus; // 门状态
  41748. int nDoor; // 门序号, 1:前门,2:中门,3:后门
  41749. NET_TIME stuTime; // 事件时间, UTC制
  41750. int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41751. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  41752. EM_VEHICLE_DATA_TYPE emDataType; // 事件数据的类型
  41753. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41754. }ALARM_VEHICLE_DOOR_OPEN_INFO;
  41755. ///@brief 当前里程事件, 对应事件类型 DH_ALARM_BUS_CUR_MILEAGE
  41756. typedef struct tagALARM_BUS_CUR_MILEAGE_INFO
  41757. {
  41758. DWORD dwSize;
  41759. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41760. int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41761. EM_VEHICLE_DATA_TYPE emDataType; // 事件数据的类型
  41762. NET_TIME stuTime; // 事件时间, UTC制
  41763. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息, 只有经纬度、速度、方向角字段有效
  41764. NET_TIME stuStartTime; // 当前时间段的开始时间, UTC制
  41765. NET_GPS_STATUS_INFO stuStartGPSStatusInfo; // 当前时间段的开始时间时的GPS信息, 只有经纬度、速度、方向角字段有效
  41766. unsigned int nMileage; // 当前时间段的里程数, 单位:0.1km
  41767. char szDriverID[32]; // 工号
  41768. }ALARM_BUS_CUR_MILEAGE_INFO;
  41769. ///@brief 附属油箱列表
  41770. typedef struct tagNET_SUB_OIL_LIST_INFO
  41771. {
  41772. UINT nCurOilSub; // 当前油量,单位:0.1L
  41773. UINT nOilTankageSub; // 油箱容积,单位:0.1L
  41774. int nOilChangeSub; // 当前时间段内油量变化,单位:0.1L 正表示加油 负表示耗油
  41775. BYTE byReserved[252]; // 保留字节
  41776. }NET_SUB_OIL_LIST_INFO;
  41777. ///@brief 当前油耗情况事件, 对应事件类型 DH_ALARM_BUS_CUR_OIL
  41778. typedef struct tagALARM_BUS_CUR_OIL_INFO
  41779. {
  41780. DWORD dwSize;
  41781. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41782. int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41783. EM_VEHICLE_DATA_TYPE emDataType; // 事件数据的类型
  41784. NET_TIME stuTime; // 事件时间, UTC制
  41785. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息, 只有经纬度、速度、方向角字段有效
  41786. NET_TIME stuStartTime; // 当前时间段的开始时间, UTC制
  41787. NET_GPS_STATUS_INFO stuStartGPSStatusInfo; // 当前时间段的开始时间时的GPS信息, 只有经纬度、速度、方向角字段有效
  41788. unsigned int nCurOil; // 当前油量, 单位: 0.1L
  41789. unsigned int nOilTankage; // 油箱容积, 单位: 0.1L
  41790. int nOilChange; // 当前时间段内油量变化, 单位: 0.1L, 正数表示加油, 负数表示耗油
  41791. char szCarNO[DH_MAX_PLATE_NUMBER_LEN]; // 车牌信息
  41792. NET_SUB_OIL_LIST_INFO stuSubOilList[10]; // 附属油箱列表
  41793. int nSubOilNum; // 附属油箱个数
  41794. }ALARM_BUS_CUR_OIL_INFO;
  41795. ///@brief 低油量报警事件, 对应事件类型 DH_ALARM_BUS_LOW_OIL
  41796. typedef struct tagALARM_BUS_LOW_OIL_INFO
  41797. {
  41798. DWORD dwSize;
  41799. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41800. int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41801. EM_VEHICLE_DATA_TYPE emDataType; // 事件数据的类型
  41802. NET_TIME stuTime; // 事件时间, UTC制
  41803. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息, 只有经纬度、速度、方向角字段有效
  41804. unsigned int nCurOil; // 当前油量, 单位: 0.1L
  41805. unsigned int nOilLine; // 油量阈值, 单位: 0.1L
  41806. unsigned int nOilTankage; // 油箱容积, 单位: 0.1L
  41807. char szCarNO[DH_MAX_PLATE_NUMBER_LEN]; // 车牌信息
  41808. }ALARM_BUS_LOW_OIL_INFO;
  41809. ///@brief 偷油报警事件, 对应事件类型 DH_ALARM_BUS_STEAL_OIL
  41810. typedef struct tagALARM_BUS_STEAL_OIL_INFO
  41811. {
  41812. DWORD dwSize;
  41813. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41814. int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41815. EM_VEHICLE_DATA_TYPE emDataType; // 事件数据的类型
  41816. NET_TIME stuTime; // 事件时间, UTC制
  41817. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息, 只有经纬度、速度、方向角字段有效
  41818. unsigned int nCurOil; // 当前油量, 单位: 0.1L
  41819. unsigned int nOilTankage; // 油箱容积, 单位: 0.1L
  41820. char szCarNO[DH_MAX_PLATE_NUMBER_LEN]; // 车牌信息
  41821. }ALARM_BUS_STEAL_OIL_INFO;
  41822. ///@brief 线路状态
  41823. typedef enum tagEM_LINE_STATE
  41824. {
  41825. EM_LINE_STATE_UNKNOWN, // 未知
  41826. EM_LINE_STATE_NORMAL, // 线路正常
  41827. EM_LINE_STATE_AWAY, // 脱离线路
  41828. }EM_LINE_STATE;
  41829. ///@brief 线路偏移事件, 车载需求,对应事件类型 DH_ALARM_BUS_CIRCUIT_SHIFT
  41830. typedef struct tagALARM_BUS_CIRCUIT_SHIFT_INFO
  41831. {
  41832. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41833. unsigned int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41834. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息, 只有经纬度、速度、方向角字段有效
  41835. NET_TIME stuTime; // 事件发生时间,UTC制
  41836. EM_LINE_STATE emLineState; // 线路状态
  41837. BOOL bShiftAndPark; // 是否停车且偏移
  41838. BYTE byReserved[1016]; // 保留字节
  41839. }ALARM_BUS_CIRCUIT_SHIFT_INFO;
  41840. ///@brief 线路超时事件,押运车需求,对应事件类型 DH_ALARM_BUS_ROUTE_OVERTIME
  41841. typedef struct tagALARM_BUS_ROUTE_OVERTIME_INFO
  41842. {
  41843. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41844. unsigned int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41845. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息, 只有经纬度、速度、方向角字段有效
  41846. NET_TIME stuTime; // 事件发生时间,UTC制
  41847. BYTE byReserved[1024]; // 保留字节
  41848. }ALARM_BUS_ROUTE_OVERTIME_INFO;
  41849. ///@brief 载重报警事件,渣土机需求,对应事件 DH_ALARM_BUS_VEHICLE_CARRY_ALARM
  41850. typedef struct tagALARM_BUS_VEHICLE_CARRY_ALARM_INFO
  41851. {
  41852. int nAction; // 事件动作, 0: 重载, 1: 空载
  41853. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41854. unsigned int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41855. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息, 只有经纬度、速度、方向角字段有效
  41856. NET_TIME stuTime; // 事件发生时间,UTC制
  41857. BYTE byReserved[1024]; // 保留字节
  41858. } ALARM_BUS_VEHICLE_CARRY_ALARM_INFO;
  41859. ///@brief 载重报警事件,渣土机需求,对应事件 DH_ALARM_BUS_VEHICLE_PAULIN_ALARM
  41860. typedef struct tagALARM_BUS_VEHICLE_PAULIN_ALARM_INFO
  41861. {
  41862. int nAction; // 事件动作, 0: 篷布开, 1: 篷布关
  41863. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41864. unsigned int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41865. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息, 只有经纬度、速度、方向角字段有效
  41866. NET_TIME stuTime; // 事件发生时间,UTC制
  41867. BYTE byReserved[1024]; // 保留字节
  41868. } ALARM_BUS_VEHICLE_PAULIN_ALARM_INFO;
  41869. ///@brief 举升报警事件,渣土机需求,对应事件 DH_ALARM_BUS_VEHICLE_LIFT_ALARM
  41870. typedef struct tagALARM_BUS_VEHICLE_LIFT_ALARM_INFO
  41871. {
  41872. int nAction; // 事件动作, 0: 举升机举, 1: 举升机平
  41873. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41874. unsigned int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41875. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息, 只有经纬度、速度、方向角字段有效
  41876. NET_TIME stuTime; // 事件发生时间,UTC制
  41877. BYTE byReserved[1024]; // 保留字节
  41878. } ALARM_BUS_VEHICLE_LIFT_ALARM_INFO;
  41879. ///@brief 火灾压力传感器报警事件,对应事件 DH_ALARM_BUS_FIRE_PRESSURE_ALARM
  41880. typedef struct tagALARM_BUS_FIRE_PRESSURE_ALARM_INFO
  41881. {
  41882. int nAction; // 事件动作, 0: 开始, 1: 停止
  41883. unsigned int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41884. double dbFirePressureThreshold; // 火灾压力传感器阈值
  41885. double dbFirePressureValue; // 当前火灾压力传感器值
  41886. NET_TIME stuTime; // 事件发生的时间
  41887. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  41888. char byReserved[1024]; // 保留字节
  41889. }ALARM_BUS_FIRE_PRESSURE_ALARM_INFO;
  41890. ///@brief 事件数据类型
  41891. typedef enum tagEM_EVENT_DATA_TYPE
  41892. {
  41893. EM_EVENT_DATA_TYPE_UNKNOWN, // 未知
  41894. EM_EVENT_DATA_TYPE_REALTIME, // 实时数据
  41895. EM_EVENT_DATA_TYPE_HISTORY, // 历史数据, 重发数据
  41896. }EM_EVENT_DATA_TYPE;
  41897. ///@brief 油量增加检测事件, 对应事件 DH_ALARM_BUS_ADD_OIL
  41898. typedef struct tagNET_ALARM_BUS_ADD_OIL_INFO
  41899. {
  41900. int nAction; // 事件动作, 0: 脉冲, 1: 开始, 2: 停止
  41901. BOOL bNeedConfirm; // 是否需要确认, 通过调用CLIENT_BusConfirmEvent接口确认
  41902. unsigned int nTime; // 用来确认事件用的时间, UTC制, 单位为秒
  41903. NET_TIME stuTime; // 事件发生时间,UTC制
  41904. EM_EVENT_DATA_TYPE emDataType; // 事件数据类型
  41905. char szCarNo[12]; // 车牌
  41906. UINT nAddOilVolume; // 加油量, 单位: 0.1L
  41907. NET_TIME stuStartTime; // 开始加油时间
  41908. NET_TIME stuEndTime; // 结束加油时间
  41909. char szReserved[512]; // 预留字节
  41910. }NET_ALARM_BUS_ADD_OIL_INFO;
  41911. ///@brief 订阅Bus状态输入参结构
  41912. typedef struct tagNET_IN_BUS_ATTACH
  41913. {
  41914. DWORD dwSize;
  41915. fBusStateCallBack cbBusState; // 状态回调函数
  41916. LDWORD dwUser; // 用户数据
  41917. }NET_IN_BUS_ATTACH;
  41918. ///@brief 订阅Bus状态输出参结构
  41919. typedef struct tagNET_OUT_BUS_ATTACH
  41920. {
  41921. DWORD dwSize;
  41922. }NET_OUT_BUS_ATTACH;
  41923. ///@brief 扩展模块报警通道信息
  41924. typedef struct tagNET_EXALARMCHANNELS_INFO
  41925. {
  41926. DWORD dwSize;
  41927. int nExAlarmBoxNum; // 扩展报警盒通道号
  41928. int nChannelNum; // 该通道在扩展报警盒上的通道号
  41929. char szChannelName[DH_MAX_EXALARMCHANNEL_NAME_LEN]; // 报警通道名称
  41930. } NET_EXALARMCHANNELS_INFO;
  41931. ///@brief CLIENT_QueryDevState 接口输入参数
  41932. typedef struct tagNET_EXALARMCHANNELS
  41933. {
  41934. DWORD dwSize;
  41935. int nExAlarmInCount; // 扩展模块报警输入通道个数,需用户指定查询个数
  41936. int nRetExAlarmInCount; // 扩展模块报警输入通道返回个数
  41937. NET_EXALARMCHANNELS_INFO* pstuExAlarmInInfo; // 扩展模块报警输入通道信息
  41938. // 由用户申请内存,大小为sizeof(NET_EXALARMCHANNELS_INFO)*nExAlarmInCount
  41939. int nExAlarmOutCount; // 扩展模块报警输出通道个数,需用户指定查询个数
  41940. int nRetExAlarmOutCount; // 扩展模块报警输出通道返回个数
  41941. NET_EXALARMCHANNELS_INFO* pstuExAlarmOutInfo; // 扩展模块报警输出通道信息
  41942. // 由用户申请内存,大小为sizeof(NET_EXALARMCHANNELS_INFO)*nExAlarmOutCount
  41943. } NET_EXALARMCHANNELS;
  41944. ///@brief 激活的防区信息
  41945. typedef struct tagNET_ACTIVATEDDEFENCEAREA_INFO
  41946. {
  41947. DWORD dwSize;
  41948. int nChannel; // 防区通道号
  41949. NET_TIME stuActivationTime; // 防区激活时间
  41950. }NET_ACTIVATEDDEFENCEAREA_INFO;
  41951. ///@brief CLIENT_QueryDevState 接口输入参数
  41952. typedef struct tagNET_ACTIVATEDEFENCEAREA
  41953. {
  41954. DWORD dwSize;
  41955. int nAlarmInCount; // 查询本地报警输入通道激活个数,需用户指定个数
  41956. int nRetAlarmInCount; // 本地报警输入通道实际激活个数
  41957. NET_ACTIVATEDDEFENCEAREA_INFO* pstuAlarmInDefenceAreaInfo; // 本地报警输入通道信息
  41958. // 由用户申请内存,大小为sizeof(NET_ACTIVATEDDEFENCEAREA_INFO)*nAlarmInCount
  41959. int nExAlarmInCount; // 查询扩展模块报警输入通道个数,需用户指定个数
  41960. int nRetExAlarmInCount; // 扩展模块报警输入通道实际激活个数
  41961. NET_ACTIVATEDDEFENCEAREA_INFO* pstuExAlarmInDefenceAreaInfo; // 扩展模块报警输入通道信息
  41962. // 由用户申请内存,大小为sizeof(NET_ACTIVATEDDEFENCEAREA_INFO)*nExAlarmInCount
  41963. }NET_ACTIVATEDDEFENCEAREA;
  41964. ///@brief 门禁状态类型
  41965. typedef enum tagEM_NET_DOOR_STATUS_TYPE
  41966. {
  41967. EM_NET_DOOR_STATUS_UNKNOWN,
  41968. EM_NET_DOOR_STATUS_OPEN, // 门打开
  41969. EM_NET_DOOR_STATUS_CLOSE, // 门关闭
  41970. EM_NET_DOOR_STATUS_BREAK, // 门异常打开
  41971. EM_NET_DOOR_STATUS_CLOSEALWAYS, // 门常闭
  41972. EM_NET_DOOR_STATUS_OPENALWAYS, // 门常开
  41973. }EM_NET_DOOR_STATUS_TYPE;
  41974. ///@brief 门禁状态信息(CLIENT_QueryDevState 接口输入参数)
  41975. typedef struct tagNET_DOOR_STATUS_INFO
  41976. {
  41977. DWORD dwSize;
  41978. int nChannel; // 门禁通道号
  41979. EM_NET_DOOR_STATUS_TYPE emStateType; // 门禁状态信息
  41980. }NET_DOOR_STATUS_INFO;
  41981. ///@brief CLIENT_QueryRecordCount接口输入参数
  41982. typedef struct _NET_IN_QUEYT_RECORD_COUNT_PARAM
  41983. {
  41984. DWORD dwSize; // 结构体大小
  41985. LLONG lFindeHandle; // 查询句柄
  41986. }NET_IN_QUEYT_RECORD_COUNT_PARAM;
  41987. ///@brief CLIENT_QueryRecordCount接口输出参数
  41988. typedef struct _NET_OUT_QUEYT_RECORD_COUNT_PARAM
  41989. {
  41990. DWORD dwSize; // 结构体大小
  41991. int nRecordCount; // 设备返回的记录条数
  41992. }NET_OUT_QUEYT_RECORD_COUNT_PARAM;
  41993. ///@brief 模拟量报警输入通道信息
  41994. typedef struct tagNET_ANALOGALARM_CHANNELS_INFO
  41995. {
  41996. DWORD dwSize;
  41997. int nSlot; // 根地址, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推
  41998. int nLevel1; // 第一级级联地址, 表示连接在第nSlot串口上的第nLevel1个探测器, 从0开始
  41999. int nLevel2; // 第二级级联地址, 表示连接在第nLevel1节点上的第nLevel2个探测器,从0开始,-1表示不存在该节点
  42000. char szName[DH_COMMON_STRING_128]; // 通道名称
  42001. char szSenseMethod[DH_COMMON_STRING_32]; // 传感器感应方式
  42002. BYTE byIsNull; // 判断该通道是否被置空,0为未空置,1为空置
  42003. }NET_ANALOGALARM_CHANNELS_INFO;
  42004. ///@brief 模拟量报警输入通道映射关系(对应DH_DEVSTATE_ANALOGALARM_CHANNELS命令)
  42005. typedef struct tagNET_ANALOGALARM_CHANNELS
  42006. {
  42007. DWORD dwSize;
  42008. int nMaxAnalogAlarmChannels; // 最大通道数
  42009. int nRetAnalogAlarmChannels; // 返回的通道数
  42010. NET_ANALOGALARM_CHANNELS_INFO* pstuChannelInfo; // 通道信息,用户分配内存,大小为sizeof(NET_ANALOGALARM_CHANNELS_INFO)*nMaxAnalogAlarmChannels
  42011. int nVideoChannel; // 指定视频通道号
  42012. }NET_ANALOGALARM_CHANNELS;
  42013. ///@brief 传感器数据信息
  42014. typedef struct tagNET_ANALOGALARM_SENSE_INFO
  42015. {
  42016. DWORD dwSize;
  42017. int nChannelID; // 通道号(从0开始)
  42018. NET_SENSE_METHOD emSense; // 传感器类型
  42019. float fData; // 传感器数值
  42020. NET_TIME stuTime; // 采集时间
  42021. int nStatus; // 数据状态, -1:未知,0:正常,1:数据无效(超过量程),
  42022. // 2:超过阈值1,3:超过阈值2,4:超过阈值3,5:超过阈值4,
  42023. // 6:低于阈值1,7:低于阈值2,8:低于阈值3,9:低于阈值4
  42024. NET_GPS_STATUS_INFO stuGpsSatus; // GPS状态
  42025. int nUint; // 传感器数值的单位,在 emSense 为以下值时有效:
  42026. // NET_SENSE_TEMP,此时可取值见 NET_TEMPERATURE_UNIT
  42027. int nVideoChannel; // 视频通道号
  42028. }NET_ANALOGALARM_SENSE_INFO;
  42029. ///@brief 订阅模拟量报警通道数据回调函数原型
  42030. typedef void (CALLBACK *fAnalogAlarmDataCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_ANALOGALARM_SENSE_INFO* pInfo, int nBufLen, LDWORD dwUser);
  42031. ///@brief CLIENT_AttachAnalogAlarmData()接口输入参数
  42032. typedef struct tagNET_IN_ANALOGALARM_DATA
  42033. {
  42034. DWORD dwSize;
  42035. int nChannelId; // 从0开始, -1表示全部通道
  42036. fAnalogAlarmDataCallBack cbCallBack; // 数据回调函数
  42037. LDWORD dwUser; // 用户定义参数
  42038. }NET_IN_ANALOGALARM_DATA;
  42039. ///@brief CLIENT_AttachAnalogAlarmData()接口输出参数
  42040. typedef struct tagNET_OUT_ANALOGALARM_DATA
  42041. {
  42042. DWORD dwSize;
  42043. }NET_OUT_ANALOGALARM_DATA;
  42044. // 订阅记录变更接口相关定义
  42045. #define DH_MAX_RECORD_INSERT_NUM 128
  42046. #define DH_MAX_RECORD_DELETE_NUM 128
  42047. #define DH_MAX_RECORD_UPDATE_NUM 128
  42048. ///@brief 订阅记录
  42049. typedef struct tagNET_RECORDUPDATER_INFO
  42050. {
  42051. DWORD dwSize;
  42052. int nInsertNum; // 记录信息中,插入的记录个数
  42053. int nInsertNumberList[DH_MAX_RECORD_INSERT_NUM]; // 表示新增的记录索引号
  42054. int nDeleteNum; // 记录信息中,删除的记录个数
  42055. int nDeleteNumberList[DH_MAX_RECORD_DELETE_NUM]; // 表示删除的记录索引号,-1表示删除所有记录
  42056. int nUpdateNum; // 记录信息中,更新的记录个数
  42057. int nUpdateNumberList[DH_MAX_RECORD_UPDATE_NUM]; // 表示更新的记录索引号
  42058. }NET_RECORDUPDATER_INFO;
  42059. ///@brief 订阅记录变更接口
  42060. typedef void (CALLBACK *fRecordUpdaterCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_RECORDUPDATER_INFO* pInfo, int nBufLen, LDWORD dwUser);
  42061. ///@brief CLIENT_AttachRecordUpdater()接口输入参数
  42062. typedef struct tagNET_IN_RECORDUPDATER_DATA
  42063. {
  42064. DWORD dwSize;
  42065. EM_NET_RECORD_TYPE emType; // 记录集信息类型
  42066. fRecordUpdaterCallBack cbRecordUpdater; // 记录更新回调函数
  42067. LDWORD dwUser; // 用户定义参数
  42068. }NET_IN_RECORDUPDATER_DATA;
  42069. ///@brief CLIENT_AttachRecordUpdater()接口输出参数
  42070. typedef struct tagNET_OUT_RECORDUPDATER_DATA
  42071. {
  42072. DWORD dwSize;
  42073. }NET_OUT_RECORDUPDATER_DATA;
  42074. #define MAX_SUPPORT_SENSORTYPE_NUM 128 // 最大支持传感器设备类型个数
  42075. ///@brief 获取设备支持的传感器列表
  42076. typedef struct tagNET_SENSOR_LIST
  42077. {
  42078. DWORD dwSize;
  42079. int nSupportSensorNum; // 返回支持传感器设备类型个数
  42080. char szSensorList[MAX_SUPPORT_SENSORTYPE_NUM][DH_COMMON_STRING_64];
  42081. }NET_SENSOR_LIST;
  42082. ///@brief CLIENT_QueryDevLogCount获取日志条数输入参数
  42083. typedef struct tagNET_IN_GETCOUNT_LOG_PARAM
  42084. {
  42085. DWORD dwSize;
  42086. QUERY_DEVICE_LOG_PARAM stuQueryCondition; // 查询记录数条件
  42087. } NET_IN_GETCOUNT_LOG_PARAM;
  42088. ///@brief CLIENT_QueryDevLogCount获取日志条数输出参数
  42089. typedef struct tagNET_OUT_GETCOUNT_LOG_PARAM
  42090. {
  42091. DWORD dwSize;
  42092. int nLogCount; // 日志数(设备返回)
  42093. } NET_OUT_GETCOUNT_LOG_PARAM;
  42094. ///@brief SDK日志回调
  42095. typedef int (CALLBACK *fSDKLogCallBack)(const char* szLogBuffer, unsigned int nLogSize, LDWORD dwUser);
  42096. ///@brief SDK全局日志打印信息
  42097. typedef struct tagLogSetPrintInfo
  42098. {
  42099. DWORD dwSize;
  42100. BOOL bSetFilePath; // 是否重设日志路径
  42101. char szLogFilePath[MAX_LOG_PATH_LEN]; // 日志路径(默认"./sdk_log/sdk_log.log")
  42102. BOOL bSetFileSize; // 是否重设日志文件大小
  42103. unsigned int nFileSize; // 每个日志文件的大小(默认大小10240), 单位:KB
  42104. BOOL bSetFileNum; // 是否重设日志文件个数
  42105. unsigned int nFileNum; // 绕接日志文件个数(默认大小10)
  42106. BOOL bSetPrintStrategy; // 是否重设日志打印输出策略
  42107. unsigned int nPrintStrategy; // 日志输出策略, 0:输出到文件(默认); 1:输出到窗口
  42108. BYTE byReserved[4]; // 字节对齐
  42109. fSDKLogCallBack cbSDKLogCallBack; // 日志回调,需要将sdk日志回调出来时设置,默认为NULL
  42110. LDWORD dwUser; // 用户数据
  42111. }LOG_SET_PRINT_INFO;
  42112. //////////////////////////////////////////////////////////////////////
  42113. ///@brief Low Rate Wireless Personal Area Network 低速无线私域网 begin
  42114. //////////////////////////////////////////////////////////////////////
  42115. ///@brief 无线设备类型
  42116. typedef enum tagNET_WIRELESS_DEVICE_TYPE
  42117. {
  42118. NET_WIRELESS_DEVICE_TYPE_UNKNOWN = 0,
  42119. NET_WIRELESS_DEVICE_TYPE_KEYBOARD, // 无线键盘
  42120. NET_WIRELESS_DEVICE_TYPE_DEFENCE, // 无线防区
  42121. NET_WIRELESS_DEVICE_TYPE_REMOTECONTROL, // 无线遥控
  42122. NET_WIRELESS_DEVICE_TYPE_MAGNETOMER, // 无线门磁
  42123. NET_WIRELESS_DEVICE_TYPE_ALARMBELL, // 无线警号
  42124. NET_WIRELESS_DEVICE_TYPE_SWITCHER, // 无线插座
  42125. NET_WIRELESS_DEVICE_TYPE_SMARTLOCK, // 无线智能锁
  42126. NET_WIRELESS_DEVICE_TYPE_REPEATER, // 无线中继器
  42127. } NET_WIRELESS_DEVICE_TYPE;
  42128. ///@brief 无线设备工作模式
  42129. typedef enum tagEM_WIRELESS_DEVICE_MODE
  42130. {
  42131. EM_WIRELESS_DEVICE_MODE_UNKNOWN = 0, // 模式未识别
  42132. EM_WIRELESS_DEVICE_MODE_NORMAL, // Normal 普通模式
  42133. EM_WIRELESS_DEVICE_MODE_POLLING, // Polling 巡检模式 只有Type为RemoteControl时才能处于巡检模式
  42134. } EM_WIRELESS_DEVICE_MODE;
  42135. ///@brief 传感器方式
  42136. typedef enum tagEM_CODEID_SENSE_METHOD_TYPE
  42137. {
  42138. EM_CODEID_SENSE_METHOD_TYPE_UNKOWN, // 未知的
  42139. EM_CODEID_SENSE_METHOD_TYPE_DOOR_MAGNETISM, // 门磁
  42140. EM_CODEID_SENSE_METHOD_TYPE_GAS_SENSOR, // 燃气传感
  42141. EM_CODEID_SENSE_METHOD_TYPE_CURTAIN_SENSOR, // 幕帘传感器
  42142. EM_CODEID_SENSE_METHOD_TYPE_MOBILE_SENSOR, // 移动传感器
  42143. EM_CODEID_SENSE_METHOD_TYPE_PASSIVEINFRA, // 被动红外传感器
  42144. EM_CODEID_SENSE_METHOD_TYPE_URGENCY_BUTTON, // 紧急按钮
  42145. EM_CODEID_SENSE_METHOD_TYPE_SMOKING_SENSOR, // 烟雾传感器
  42146. EM_CODEID_SENSE_METHOD_TYPE_DOUBLEMETHOD, // 双鉴传感器(红外+微波)
  42147. EM_CODEID_SENSE_METHOD_TYPE_WATER_SENSOR, // 水浸传感器
  42148. EM_CODEID_SENSE_METHOD_TYPE_THREEMETHOD, // 三技术
  42149. }EM_CODEID_SENSE_METHOD_TYPE;
  42150. #define DH_WIRELESS_DEVICE_SERIAL_NUMBER_MAX_LEN 32 // 无线设备序列号最大长度
  42151. ///@brief 对码信息
  42152. typedef struct tagNET_CODEID_INFO
  42153. {
  42154. DWORD dwSize;
  42155. TP_U64 nWirelessId; // 无线ID号
  42156. NET_WIRELESS_DEVICE_TYPE emType; // 无线设备类型
  42157. char szName[DH_USER_NAME_LENGTH]; // 用户名
  42158. BOOL bEnable; // 是否启用了此设备
  42159. char szCustomName[DH_COMMON_STRING_64]; // 自定义名称
  42160. int nChannel; // 无线防区的alarm通道号,Alarm配置的下标,只有Type为Defence时此字段才有效。
  42161. EM_WIRELESS_DEVICE_MODE emMode; // 无线设备工作模式
  42162. EM_CODEID_SENSE_METHOD_TYPE emSenseMethod; // 传感器方式
  42163. char szSerialNumber[DH_WIRELESS_DEVICE_SERIAL_NUMBER_MAX_LEN]; // 无线设备序列号
  42164. UINT nTaskID; // 任务ID
  42165. char szRoomNo[64]; // 智能锁房间号
  42166. DWORD nMaxFingerprints; // 信息数量:为0时表示不支持信息
  42167. DWORD nMaxCards; // 卡片数量:为0时表示不支持卡片
  42168. DWORD nMaxPwd; // 密码数量:为0时表示不支持密码
  42169. char szRandSalt[128]; // 智能门锁复杂盐值
  42170. }NET_CODEID_INFO;
  42171. ///@brief 对码错误类型
  42172. typedef enum tagNET_CODEID_ERROR_TYPE
  42173. {
  42174. NET_CODEID_ERROR_TYPE_RIGHT = 0, // 对码正确
  42175. NET_CODEID_ERROR_TYPE_ALREADYEXIST, // 已经存在
  42176. NET_CODEID_ERROR_TYPE_OTHER, // 其他错误
  42177. } NET_CODEID_ERROR_TYPE;
  42178. ///@brief 订阅无线对码信息回调函数原形,lAttachHandle是CLIENT_AttachLowRateWPAN返回值
  42179. typedef void (CALLBACK *fAttachLowRateWPANCB) (LLONG lLoginID, LLONG lAttachHandle, NET_CODEID_INFO* stuBuf, NET_CODEID_ERROR_TYPE emError, LDWORD dwUser);
  42180. ///@brief CLIENT_AttachLowRateWPAN()输入参数
  42181. typedef struct tagNET_IN_ATTACH_LOWRATEWPAN
  42182. {
  42183. DWORD dwSize;
  42184. fAttachLowRateWPANCB cbAttachLowRateWPANCB; // 对码数据回调
  42185. LDWORD dwUser; // 用户数据
  42186. }NET_IN_ATTACH_LOWRATEWPAN;
  42187. ///@brief CLIENT_AttachLowRateWPAN()输出参数
  42188. typedef struct tagNET_OUT_ATTACH_LOWRATEWPAN
  42189. {
  42190. DWORD dwSize;
  42191. }NET_OUT_ATTACH_LOWRATEWPAN;
  42192. ///@brief 删除指定无线设备
  42193. ///@brief CLIENT_ControlDevice 接口的 DH_CTRL_LOWRATEWPAN_REMOVE命令参数
  42194. typedef struct tagNET_CTRL_LOWRATEWPAN_REMOVE
  42195. {
  42196. DWORD dwSize;
  42197. TP_U64 nWirelessId; // 无线设备ID
  42198. char szSerialNumber[DH_WIRELESS_DEVICE_SERIAL_NUMBER_MAX_LEN]; // 无线设备序列号 无线对码后续采用序列号的方式
  42199. }NET_CTRL_LOWRATEWPAN_REMOVE;
  42200. ///@brief 删除全部无线设备
  42201. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_LOWRATEWPAN_REMOVEALL命令参数
  42202. typedef struct tagNET_CTRL_LOWRATEWPAN_REMOVEALL
  42203. {
  42204. DWORD dwSize;
  42205. }NET_CTRL_LOWRATEWPAN_REMOVEALL;
  42206. ///@brief 修改无线设备信息
  42207. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_LOWRATEWPAN_MODIFY 命令参数
  42208. typedef struct tagNET_CTRL_LOWRATEWPAN_MODIFY
  42209. {
  42210. DWORD dwSize;
  42211. NET_CODEID_INFO stuCodeIDInfo; // 根据CodeIDInfo中的CodeID,修改其User和Enable信息,其他不能修改
  42212. }NET_CTRL_LOWRATEWPAN_MODIFY;
  42213. ///@brief 设置探测器的工作模式
  42214. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_LOWRATEWPAN_SETWORKMODE命令参数
  42215. typedef struct tagNET_IN_CTRL_LOWRATEWPAN_SETWORKMODE
  42216. {
  42217. DWORD dwSize;
  42218. int nMode; //设置模式 0 :省电模式, 1 :常工作模式
  42219. }NET_IN_CTRL_LOWRATEWPAN_SETWORKMODE;
  42220. ///@brief 过车状态
  42221. typedef enum tagEM_CARPASS_STATUS
  42222. {
  42223. EM_CARPASS_STATUS_UNKNOWN, // 未知状态
  42224. EM_CARPASS_STATUS_CARPASS, // 过车状态
  42225. EM_CARPASS_STATUS_NORMAL, // 无车状态
  42226. }EM_CARPASS_STATUS;
  42227. ///@brief 设置停车信息,对应DH_CTRL_SET_PARK_INFO命令参数
  42228. typedef struct tagNET_CTRL_SET_PARK_INFO
  42229. {
  42230. DWORD dwSize;
  42231. char szPlateNumber[MAX_PLATE_NUMBER_LEN]; // 车牌号码
  42232. unsigned int nParkTime; // 停车时长,单位:分钟
  42233. char szMasterofCar[MAX_MASTER_OF_CAR_LEN]; // 车主姓名
  42234. char szUserType[MAX_USER_TYPE_LEN]; // 用户类型,非通用,用于出入口抓拍一体机
  42235. // monthlyCardUser表示月卡用户,yearlyCardUser表示年卡用户,longTimeUser表示长期用户/VIP,casualUser表示临时用户/Visitor
  42236. unsigned int nRemainDay; // 到期天数
  42237. char szParkCharge[MAX_PARK_CHARGE_LEN]; // 停车费
  42238. unsigned int nRemainSpace; // 停车库余位数
  42239. unsigned int nPassEnable; // 0:不允许车辆通过 1:允许车辆通过
  42240. NET_TIME stuInTime; // 车辆入场时间
  42241. NET_TIME stuOutTime; // 车辆出场时间
  42242. EM_CARPASS_STATUS emCarStatus; // 过车状态
  42243. char szCustom[MAX_CUSTOM_LEN]; // 自定义显示字段,默认空
  42244. char szSubUserType[MAX_SUB_USER_TYPE_LEN]; // 用户类型(szUserType字段)的子类型
  42245. char szRemarks[MAX_REMARKS_LEN]; // 备注信息
  42246. char szResource[MAX_RESOURCE_LEN]; // 资源文件(视频或图片)视频支持:mp4格式; 图片支持:BMP/jpg/JPG/jpeg/JPEG/png/PNG格式
  42247. UINT nParkTimeout; // 停车超时时间,单位分钟。为0表示未超时,不为0表示超时时间。
  42248. }NET_CTRL_SET_PARK_INFO;
  42249. ///@brief 清除当前时间段内人数统计信息, 重新从0开始计算
  42250. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_CLEAR_SECTION_STAT命令参数
  42251. typedef struct tagNET_CTRL_CLEAR_SECTION_STAT_INFO
  42252. {
  42253. DWORD dwSize;
  42254. int nChannel; // 视频通道号
  42255. } NET_CTRL_CLEAR_SECTION_STAT_INFO;
  42256. ///@brief 获取对码成功的总条数
  42257. typedef struct tagNET_GET_CODEID_COUNT
  42258. {
  42259. DWORD dwSize;
  42260. int nCodeIDCount; // 对码成功的总条数
  42261. }NET_GET_CODEID_COUNT;
  42262. ///@brief 获取对码信息
  42263. typedef struct tagNET_GET_CODEID_LIST
  42264. {
  42265. DWORD dwSize;
  42266. int nStartIndex; // 开始的索引号,开始第一次查询可设为0
  42267. int nQueryNum; // 本次获取的对码条数,此值小于等于能力集中nMaxPageSize字段的值
  42268. int nRetCodeIDNum; // 实际返回的对码条数
  42269. NET_CODEID_INFO* pstuCodeIDInfo; // 获取对码的内容,内存由用户分配,不能小于nQueryNum*sizeof(NET_CODEID_INFO)
  42270. }NET_GET_CODEID_LIST;
  42271. ///@brief 无线设备信号强度信息
  42272. typedef struct tagNET_DEVSIGNAL_INFO
  42273. {
  42274. DWORD dwSize; // 此结构体大小
  42275. char szSN[32]; // 设备序列号
  42276. UINT nSignal; // 无线信号强度百分比
  42277. }NET_DEVWIRELESSSIGNAL_INFO;
  42278. ///@brief 获取无线设备信号强度
  42279. typedef struct tagNET_GET_DEVSIGNAL_LIST
  42280. {
  42281. DWORD dwSize;
  42282. int nStartIndex; // 开始的索引号,开始第一次查询可设为0
  42283. int nQueryNum; // 本次查询的设备状态条数,此值小于等于CFG_CAP_CMD_LOWRATEWPAN能力集中nMaxPageSize字段的值
  42284. int nRetDevSignalNum; // 实际返回的设备状态条数
  42285. NET_DEVWIRELESSSIGNAL_INFO* pstuDevSignalInfo; // 获取对码的内容,内存由用户分配,不能小于nQueryNum*sizeof(NET_DEVWIRELESSSIGNAL_INFO)
  42286. }NET_GET_DEVWIRELESSSIGNAL_LIST;
  42287. ///@brief 增加对码信息
  42288. typedef struct tagNET_CTRL_LOWRATEWPAN_ADD
  42289. {
  42290. DWORD dwSize;
  42291. NET_CODEID_INFO stuCodeIDInfo; // 对码数据
  42292. }NET_CTRL_LOWRATEWPAN_ADD;
  42293. ///@brief 无线设备在线状态
  42294. typedef enum tagEM_WIRELESS_DEVICE_ONLINE_STATE
  42295. {
  42296. EM_WIRELESS_DEVICE_STATE_UNKNOWN = 0, // 未知
  42297. EM_WIRELESS_DEVICE_STATE_OUTLINE, // 离线
  42298. EM_WIRELESS_DEVICE_STATE_ONLINE, // 在线
  42299. } EM_WIRELESS_DEVICE_ONLINE_STATE;
  42300. ///@brief 无线设备电量状态
  42301. typedef enum tagEM_WIRELESS_DEVICE_POWER_STATE
  42302. {
  42303. EM_WIRELESS_DEVICE_POWER_UNKNOWN = 0, // 电量未知
  42304. EM_WIRELESS_DEVICE_POWER_NORMAL, // 电量正常
  42305. EM_WIRELESS_DEVICE_POWER_LOW, // 低电量
  42306. } EM_WIRELESS_DEVICE_POWER_STATE;
  42307. ///@brief 无线设备状态信息
  42308. typedef struct tagNET_WIRELESS_DEVICE_INFO
  42309. {
  42310. char szSerialNumber[DH_WIRELESS_DEVICE_SERIAL_NUMBER_MAX_LEN]; // 设备序列号
  42311. EM_WIRELESS_DEVICE_ONLINE_STATE emOnlineState; // 在线状态
  42312. EM_WIRELESS_DEVICE_POWER_STATE emPowerState; // 电量状态
  42313. BYTE byReserved[128]; // 保留字段
  42314. }NET_WIRELESS_DEVICE_INFO;
  42315. ///@brief 获取无线设备状态
  42316. typedef struct tagNET_GET_WIRELESS_DEVICE_STATE
  42317. {
  42318. DWORD dwSize;
  42319. int nStartIndex; // 开始的索引号,开始第一次查询可设为0, 由用户设置
  42320. int nQueryNum; // 本次获取的设备状态条数, 此值小于等于能力集中nMaxPageSize字段的值, 用户设置
  42321. int nRetQueryNum; // 获取到的实际返回的设备状态条数, 小于等于nQueryNum
  42322. NET_WIRELESS_DEVICE_INFO *pstuDeviceInfo; // 获取设备状态的内容, 内存有用户分配, 不能小于nQueryNum*sizeof(NET_WIRELESS_DEVICE_INFO)
  42323. }NET_GET_WIRELESS_DEVICE_STATE;
  42324. ///@brief 冗余电源状态
  42325. typedef enum tagEM_REDUNDANCE_POWER_STATE
  42326. {
  42327. EM_REDUNDANCE_POWER_STATE_UNKNOWN = 0, // 状态未知
  42328. EM_REDUNDANCE_POWER_STATE_ON, // 打开
  42329. EM_REDUNDANCE_POWER_STATE_OFF, // 关闭
  42330. EM_REDUNDANCE_POWER_STATE_ON_FAULT, // 故障
  42331. } EM_REDUNDANCE_POWER_STATE;
  42332. #define MAX_REDUNDANCE_POWER_NUM 16 // 最大冗余电源个数
  42333. ///@brief 获取冗余电源信息
  42334. typedef struct tagNET_GET_REDUNDANCE_POWER_INFO
  42335. {
  42336. DWORD dwSize; // 结构体大小
  42337. int nPowerNum; // 电源数量
  42338. EM_REDUNDANCE_POWER_STATE emPowerState[MAX_REDUNDANCE_POWER_NUM]; // 电源状态信息数组
  42339. }NET_GET_REDUNDANCE_POWER_INFO;
  42340. ///@brief 配件防拆状态
  42341. typedef enum tagNET_EM_ACCESSORY_TAMPER_STATE
  42342. {
  42343. NET_EM_ACCESSORY_TAMPER_UNKNOWN, // 未知
  42344. NET_EM_ACCESSORY_TAMPER_ON, // 开
  42345. NET_EM_ACCESSORY_TAMPER_OFF, // 关
  42346. }NET_EM_ACCESSORY_TAMPER_STATE;
  42347. ///@brief 门磁开门状态
  42348. typedef enum tagNET_EM_DOOR_STATE
  42349. {
  42350. NET_EM_DOOR_STATE_UNKNOWN, // 未知
  42351. NET_EM_DOOR_STATE_ON, // 开
  42352. NET_EM_DOOR_STATE_OFF, // 关
  42353. }NET_EM_DOOR_STATE;
  42354. ///@brief 在线状态
  42355. typedef enum tagNET_EM_ONLINE_STATE
  42356. {
  42357. NET_EM_ONLINE_STATE_UNKNOWN, // 未知
  42358. NET_EM_ONLINE_STATE_OFFLINE, // 离线
  42359. NET_EM_ONLINE_STATE_ONLINE, // 在线
  42360. }NET_EM_ONLINE_STATE;
  42361. ///@brief 告警状态
  42362. typedef enum tagNET_EM_ALARM_STATE
  42363. {
  42364. NET_EM_ALARM_STATE_UNKNOWN = -1, // 未知
  42365. NET_EM_ALARM_STATE_NORMAL, // 正常
  42366. NET_EM_ALARM_STATE_ALARM, // 告警
  42367. }NET_EM_ALARM_STATE;
  42368. ///@brief 返回的状态信息
  42369. typedef struct tagNET_STATUS_INFO
  42370. {
  42371. char szSN[MAX_COMMON_STRING_32]; // 配件序列号
  42372. UINT nPercent; // 电池电量百分比,0~100
  42373. float fVolt; // 电池电量,单位:伏
  42374. UINT nIntensity; // 无线信号强度等级,0~5
  42375. UINT nSignal; // 无线信号强度,单位dbm,0~120
  42376. NET_EM_ACCESSORY_TAMPER_STATE emAccessoryTamperState; // 配件防拆状态
  42377. NET_EM_DOOR_STATE emDoorState; // 门磁开门状态
  42378. char szName[MAX_COMMON_STRING_32]; // 配件名称
  42379. NET_EM_ONLINE_STATE emOnlineState; // 在线状态
  42380. NET_EM_ALARM_STATE emAlarmState; // 告警状态,仅对门磁、水浸等状态量报警有效;对红外灯脉冲报警无效
  42381. char szVersion[MAX_COMMON_STRING_16];// 配件版本
  42382. }NET_STATUS_INFO;
  42383. ///@brief 获取配件状态
  42384. typedef struct tagNET_GET_ACCESSORY_STATUS
  42385. {
  42386. DWORD dwSize; // 结构体大小
  42387. int nSNNum; // 配件序列号数组个数(当个数为0时,返回主机下所有配件状态)
  42388. char szSN[56][MAX_COMMON_STRING_32]; // 配件序列号数组,一维数组
  42389. int nStatusNum; // 返回的状态信息数组个数
  42390. NET_STATUS_INFO stStatusInfo[56]; // 返回的状态信息数组
  42391. }NET_GET_ACCESSORY_STATUS;
  42392. ///@brief 巡航预置点信息
  42393. typedef struct tagNET_PTZ_PRESET_POINT
  42394. {
  42395. int nIndexNum; // 索引编号,从0开始
  42396. int nDwellTime; // 停留时间,单位:秒
  42397. int nRotationalSpeed; // 转速等级【范围:1~10】
  42398. BYTE byReserved[44]; // 保留字节
  42399. }NET_PTZ_PRESET_POINT_INFO;
  42400. ///@brief 云台巡航信息
  42401. typedef struct tagNET_PTZ_TOURS_INFO
  42402. {
  42403. int nCruiseNum; // 巡航编号,从1开始
  42404. char szName[64]; // 巡航名称
  42405. NET_PTZ_PRESET_POINT_INFO stuPresetPoint[64]; // 预置点信息
  42406. int nPresetPointNum; // 预置点个数
  42407. BYTE byReserved[256]; // 保留字节
  42408. }NET_PTZ_TOURS_INFO;
  42409. ///@brief 获取巡航列表信息(DH_DEVSTATE_GET_PTZ_TOURS)
  42410. typedef struct tagNET_GET_PTZ_TOURS_INFO
  42411. {
  42412. DWORD dwSize; // 结构体大小
  42413. int nMaxToursNum; // 最大申请巡航组个数
  42414. NET_PTZ_TOURS_INFO *pstuToursInfo; // 巡航组信息
  42415. int nRetToursNum; // 实际返回巡航组个数
  42416. }NET_GET_PTZ_TOURS_INFO;
  42417. ///@brief 探测器状态类型
  42418. typedef enum tagEM_DETECTOR_STATUS_TYPE
  42419. {
  42420. EM_DETECTOR_STATUS_UNKNOWN = -1, // 未知
  42421. EM_DETECTOR_STATUS_ALLFUNCT_ENABLE, // 启用所有功能
  42422. EM_DETECTOR_STATUS_ANTITAMPER_DISABLE, // 禁用防拆功能
  42423. EM_DETECTOR_STATUS_ALLFUNCT_DISABLE, // 禁用所有功能
  42424. }EM_DETECTOR_STATUS_TYPE;
  42425. ///@brief 设备布撤防时音量
  42426. typedef enum tagEM_ACCESSORY_VOLUME
  42427. {
  42428. EM_ACCESSORY_VOLUME_UNKNOWN, // 未知
  42429. EM_ACCESSORY_VOLUME_LOW, // 低音量
  42430. EM_ACCESSORY_VOLUME_MEDIUM, // 中音量
  42431. EM_ACCESSORY_VOLUME_HIGH, // 高音量
  42432. }EM_ACCESSORY_VOLUME;
  42433. ///@brief 外接电源状态
  42434. typedef enum tagEM_EXPOWER_STATE
  42435. {
  42436. EM_EXPOWER_DISCONNECT = 0, // 未连接
  42437. EM_EXPOWER_CONNECT = 1, // 连接
  42438. EM_EXPOWER_UNKNOWN = 2, // 未知
  42439. }EM_EXPOWER_STATE;
  42440. ///@brief 是否启用中继转发
  42441. typedef enum tagEM_RELAY_TYPE
  42442. {
  42443. EM_RELAY_UNKNOWN = -1, // 未知
  42444. EM_RELAY_CLOSED, // 关闭
  42445. EM_RELAY_MANUAL, // 手动
  42446. EM_RELAY_AUTO, // 自动
  42447. }EM_RELAY_TYPE;
  42448. ///@brief 中继状态
  42449. typedef struct tagNET_WPAN_RELAY_INFO
  42450. {
  42451. EM_RELAY_TYPE emEnable; // 是否启用中继转发
  42452. int nRelayIndex; // 使用中继地址
  42453. BYTE byReserved[32]; // 预留字段
  42454. }NET_WPAN_RELAY_INFO;
  42455. ///@brief 灵敏度
  42456. typedef enum tagEM_ACCESSORY_SENSITIVITY
  42457. {
  42458. EM_ACCESSORY_SENSITIVITY_UNKNOWN, // 未知
  42459. EM_ACCESSORY_SENSITIVITY_LOW, // 低灵敏度
  42460. EM_ACCESSORY_SENSITIVITY_MEDIUM, // 中灵敏度
  42461. EM_ACCESSORY_SENSITIVITY_HIGH, // 高灵敏度
  42462. }EM_ACCESSORY_SENSITIVITY;
  42463. ///@brief 功率调节类型
  42464. typedef enum tagEM_POWER_REGULATION_TYPE
  42465. {
  42466. EM_POWER_REGULATION_UNKNOWN = -1, // 未知
  42467. EM_POWER_REGULATION_AUTO, // 自动
  42468. EM_POWER_REGULATION_LOW, // 低
  42469. EM_POWER_REGULATION_MEDIUM, // 中
  42470. EM_POWER_REGULATION_HIGH, // 高
  42471. }EM_POWER_REGULATION_TYPE;
  42472. ///@brief 布防模式
  42473. typedef enum tagEM_ARMING_TYPE
  42474. {
  42475. EM_ARMING_UNKNOWN = -1, // 未知
  42476. EM_ARMING_ATHOME, // 在家布防
  42477. EM_ARMING_OUT, // 外出布防
  42478. }EM_ARMING_TYPE;
  42479. ///@brief 布防信息
  42480. typedef struct tagNET_WPAN_ARMING_INFO
  42481. {
  42482. EM_ARMING_TYPE emType; // 布防模式
  42483. BOOL bEnable; // 布防开关:布防时候是否使能该探测器
  42484. BOOL bDelayEnable; // 延时使能:布防时候是否使用进入退出延时
  42485. BYTE byReserved[32]; // 预留字段
  42486. }NET_WPAN_ARMING_INFO;
  42487. ///@brief 心跳信息
  42488. typedef struct tagNET_WPAN_HEARTBEAT_INFO
  42489. {
  42490. UINT nInterval; // 心跳间隔,单位:秒
  42491. UINT nOfflineTimes; // 离线次数
  42492. BYTE byReserved[32]; // 预留字段
  42493. }NET_WPAN_HEARTBEAT_INFO;
  42494. ///@brief 在线状态
  42495. typedef enum tagEM_ONLINE_STATUS
  42496. {
  42497. EM_ONLINE_UNKNOWN, // 未知
  42498. EM_ONLINE_OFF, // 离线
  42499. EM_ONLINE_ON, // 在线
  42500. }EM_ONLINE_STATUS;
  42501. ///@brief 报警类型
  42502. typedef enum tagEM_ACCESSORY_ALARM_TYPE
  42503. {
  42504. EM_ACCESSORY_ALARM_UNKNOWN = -1, // 未知
  42505. EM_ACCESSORY_ALARM_INTRUSION, // 入侵
  42506. EM_ACCESSORY_ALARM_FIRE, // 火警
  42507. EM_ACCESSORY_ALARM_MEDICAL, // 医疗
  42508. EM_ACCESSORY_ALARM_PANIC, // 紧急
  42509. EM_ACCESSORY_ALARM_GAS, // 燃气
  42510. EM_ACCESSORY_ALARM_HOLDUP, // 双按钮紧急按钮报警类型
  42511. }EM_ACCESSORY_ALARM_TYPE;
  42512. ///@brief 输入类型
  42513. typedef enum tagEM_ACCESSORY_INPUT_TYPE
  42514. {
  42515. EM_ACCESSORY_INPUT_UNKNOWN = -1, // 未知
  42516. EM_ACCESSORY_INPUT_TAMPER, // 防拆
  42517. EM_ACCESSORY_INPUT_SENSOR, // 报警输入
  42518. }EM_ACCESSORY_INPUT_TYPE;
  42519. ///@brief led灯亮度
  42520. typedef enum tagEM_LED_BRIGHTNESS_LEVEL
  42521. {
  42522. EM_LED_BRIGHTNESS_UNKNOWN = -1, // 未知
  42523. EM_LED_BRIGHTNESS_CLOSED, // 关闭
  42524. EM_LED_BRIGHTNESS_LOW, // 亮度最低
  42525. EM_LED_BRIGHTNESS_MEDIUM, // 亮度适中
  42526. EM_LED_BRIGHTNESS_HIGH, // 亮度最高
  42527. }EM_LED_BRIGHTNESS_LEVEL;
  42528. ///@brief 操作模式
  42529. typedef enum tagEM_OPERATION_MODE
  42530. {
  42531. EM_OPERATION_UNKNOWN = -1, // 未知
  42532. EM_OPERATION_PANIC, // 紧急操作
  42533. EM_OPERATION_CONTROL, // 控制操作
  42534. EM_OPERATION_MUTE_FIRE_ALARM, // 静音火灾报警操作
  42535. }EM_OPERATION_MODE;
  42536. ///@brief 防误按模式
  42537. typedef enum tagEM_ANTI_MISPRESS_TYPE
  42538. {
  42539. EM_ANTI_MISPRESS_UNKNOWN, // 未知
  42540. EM_ANTI_MISPRESS_OFF, // 按下0.1s生效
  42541. EM_ANTI_MISPRESS_LONG, // 长按3s有效
  42542. EM_ANTI_MISPRESS_DOUBLE, // 间断1s内连续按2次
  42543. }EM_ANTI_MISPRESS_TYPE;
  42544. ///@brief 按钮报警类型
  42545. typedef enum tagEM_BUTTON_ALARM_TYPE
  42546. {
  42547. EM_BUTTON_ALARM_UNKNOWN = -1, // 未知
  42548. EM_BUTTON_ALARM_FIRE, // 火警
  42549. EM_BUTTON_ALARM_EMERGENCY, // 紧急报警
  42550. EM_BUTTON_ALARM_MEDICAL, // 医疗报警
  42551. }EM_BUTTON_ALARM_TYPE;
  42552. ///@brief 配件能力集
  42553. typedef struct tagNET_WPAN_ACCESSORY_CAPS_INFO
  42554. {
  42555. BOOL bSupportAlarmTone; // 是否支持报警声音设置
  42556. BOOL bSupportCardReader; // 是否支持读卡器
  42557. BOOL bSupportChime; // 是否支持门铃模式
  42558. BOOL bSupportOverTemperatureAlarm; // 是否支持超温报警
  42559. BOOL bSupportExternalWifi; // 是否支持外部wifi设置
  42560. BOOL bSupportWifiInfo; // 是否支持wifi信息设置
  42561. BYTE byreserve[32]; // 预留字段
  42562. }NET_WPAN_ACCESSORY_CAPS_INFO;
  42563. ///@brief 按钮信息
  42564. typedef struct tagNET_WPAN_ACCESSORY_BUTTON_INFO
  42565. {
  42566. BOOL bEnable; // 按键使能
  42567. EM_BUTTON_ALARM_TYPE emType; // 报警类型
  42568. UINT nSirenLinkageNum; // 警号联动个数
  42569. int nSirenLinkage[64]; // 警号联动
  42570. BYTE byReserved[32]; // 预留字段
  42571. }NET_WPAN_ACCESSORY_BUTTON_INFO;
  42572. ///@brief 登录失败的锁定信息
  42573. typedef struct tagNET_WPAN_ACCESSORY_LOCK_INFO
  42574. {
  42575. BOOL bLockLoginEnable; // 登录锁定使能
  42576. UINT nLoginFailLockTime; // 登录失败锁定时间,单位:秒
  42577. BYTE byLockLoginTimes; // 登录失败可尝试次数
  42578. BYTE byReserved[31]; // 预留字段
  42579. }NET_WPAN_ACCESSORY_LOCK_INFO;
  42580. ///@brief 读卡器配置
  42581. typedef struct tagNET_WPAN_CARD_READER_INFO
  42582. {
  42583. BOOL bEnable; // 读卡器使能
  42584. BYTE byEncryption; // 发卡时是否加密卡片,1:加密(软加密);2:不加密
  42585. BYTE byReserved[31]; // 预留字段
  42586. }NET_WPAN_CARD_READER_INFO;
  42587. ///@brief 图片信息
  42588. typedef struct tagNET_WPAN_ACCESSORY_IMAGE_INFO
  42589. {
  42590. CAPTURE_SIZE emResolution; // 分辨率
  42591. int nSnapshotNumber; // 抓图数量
  42592. int nSnapshotTimes; // 抓图次数
  42593. BYTE byReserved[32]; // 预留字段
  42594. }NET_WPAN_ACCESSORY_IMAGE_INFO;
  42595. ///@brief 外部wifi优先级
  42596. typedef enum tagEM_EXTERNAL_WIFI_PRIORITY
  42597. {
  42598. EM_EXTERNAL_WIFI_UNKNOWN, // 未知
  42599. EM_EXTERNAL_WIFI_FIRST, // 首选外部wifi
  42600. EM_EXTERNAL_WIFI_ALTERNATIVE, // 备选外部wifi
  42601. EM_EXTERNAL_WIFI_USEONLY, // 仅使用外部wifi
  42602. }EM_EXTERNAL_WIFI_PRIORITY;
  42603. ///@brief 外部wifi信息
  42604. typedef struct tagNET_WPAN_EXTERNAL_WIFI_INFO
  42605. {
  42606. BOOL bEnable; // 外部wifi使能
  42607. EM_EXTERNAL_WIFI_PRIORITY emPriority; // 外部wifi优先级
  42608. BYTE byReserved[32]; // 预留字段
  42609. }NET_WPAN_EXTERNAL_WIFI_INFO;
  42610. ///@brief wifi信息
  42611. typedef struct tagNET_WPAN_WIFI_INFO
  42612. {
  42613. BOOL bSyncEnable; // Wi-Fi参数信息同步使能
  42614. char szSSID[MAX_COMMON_STRING_128]; // wifi名称
  42615. char szPassword[MAX_COMMON_STRING_64]; // wifi密码
  42616. BYTE byReserved[32]; // 预留字段
  42617. }NET_WPAN_WIFI_INFO;
  42618. ///@brief 超温报警
  42619. typedef struct tagNET_WPAN_OVER_TEMPERATURE_ALARM_INFO
  42620. {
  42621. BOOL bEnable; // 超温报警使能开关
  42622. double dbLowerLimit; // 超温报警下限温度值
  42623. double dbUpperLimit; // 超温报警上限温度值
  42624. BYTE byReserved[32]; // 预留字段
  42625. }NET_WPAN_OVER_TEMPERATURE_ALARM_INFO;
  42626. ///@brief 返回的配件信息
  42627. typedef struct tagNET_WPAN_ACCESSORY_INFO
  42628. {
  42629. DWORD dwSize; // 结构体大小
  42630. BOOL bRecordEnable; // 录像使能,必须同时有RecordChannels
  42631. BOOL bExternalAlarmEnable; // 外部告警使能
  42632. BOOL bArmingWithoutPassword; // 无密码布防使能
  42633. BYTE byAlarmLedIndication; // 报警Led灯指示,0:关闭;1:打开
  42634. BYTE byExPowerCheck; // 控制检测外接电源状态的开关,0:关闭;1:打开
  42635. BYTE byTamper; // 配件防拆状态,0:关;1:开
  42636. BYTE by24HDefenceStatus; // 24H防区状态,0:关;1:开
  42637. BYTE byAlarmStatus; // 告警状态,0:正常;1:报警
  42638. BYTE byExternalAlarmStatus; // 外部告警状态,0:正常;1:报警
  42639. BYTE byLedIndication; // Led灯指示,0:关;1:开
  42640. BYTE byBeepIndication; // 布撤防以及进入退出延时是否有BEEP声音,0:无;1:有
  42641. BYTE bySosStatus; // 紧急按钮状态,0:关;1:开
  42642. BYTE byViaTrace; // 配件上报方式,0:直连;1:中继上报
  42643. BYTE bySensorType; // 传感器类型,0:常闭;1:常开
  42644. BYTE byLockState; // 锁定状态,1:非锁定;2:锁定
  42645. BYTE bySensorFailure; // 传感器故障状态,0:正常;1:故障
  42646. BYTE bySignalStrengthTest; // 信号强度测试,0:关;1:开
  42647. BYTE bySensitivityTest; // 灵敏度测试,0:关;1:开
  42648. BYTE byVolumeTest; // 音量测试,0:关;1:开
  42649. BYTE bySnapshotTest; // 抓图测试,0:关;1:开
  42650. BYTE byWifiTest; // wifi测试,0:关;1:开
  42651. BYTE byBlockState; // 传感器屏蔽状态, 1:关闭屏蔽;2:开启屏蔽
  42652. UINT nShortAddr; // 配件短地址,从1开始
  42653. UINT nPercent; // 电池电量百分比:0~100
  42654. UINT nSignalLevel; // 无线信号强度等级
  42655. UINT nEntryDelay; // 进入延时,单位:秒
  42656. UINT nExitDelay; // 退出延时,单位:秒
  42657. UINT nAlarmDuring; // 报警持续时间,单位:秒
  42658. int nTriggerAlarmInterval; // 触发报警间隔时间,单位:秒
  42659. EM_DETECTOR_STATUS_TYPE emState; // 探测器状态
  42660. EM_ACCESSORY_VOLUME emBeepVolume; // 设备布防时音量
  42661. EM_ACCESSORY_SENSITIVITY emSensentivity; // 灵敏度
  42662. EM_POWER_REGULATION_TYPE emPowerRegulation; // 功率调节
  42663. EM_ONLINE_STATUS emOnline; // 在线状态
  42664. EM_ACCESSORY_ALARM_TYPE emAlarmType; // 报警类型
  42665. EM_ACCESSORY_INPUT_TYPE emInputType; // 输入类型
  42666. EM_LED_BRIGHTNESS_LEVEL emLedBrightnessLevel; // LED亮度
  42667. EM_OPERATION_MODE emOperationMode; // 操作模式
  42668. EM_ANTI_MISPRESS_TYPE emAntiMispress; // 防误按模式
  42669. EM_EXPOWER_STATE emExPowerState; // 外部电源状态,若未开启检测外接电源状态则为未知
  42670. EM_ACCESSORY_VOLUME emVolume; // 设备报警音量
  42671. float fAmbientTemperature; // 环境温度,单位:摄氏度
  42672. char szSN[MAX_COMMON_STRING_32]; // 配件序列号
  42673. char szName[MAX_COMMON_STRING_64]; // 配件名称
  42674. char szVersion[MAX_COMMON_STRING_64]; // 配件版本
  42675. char szModel[MAX_COMMON_STRING_64]; // 配件型号
  42676. char szAlarmTone[MAX_COMMON_STRING_128]; // 报警提示音
  42677. NET_WPAN_RELAY_INFO stuRelayTran; // 中继状态
  42678. NET_SENSE_METHOD emType; // 传感器感应方式
  42679. NET_WPAN_HEARTBEAT_INFO stuHeartbeat; // 心跳信息
  42680. NET_WPAN_ACCESSORY_CAPS_INFO stuCaps; // 配件能力集
  42681. NET_WPAN_ACCESSORY_LOCK_INFO stuLockInfo; // 登录失败的锁定信息
  42682. NET_WPAN_CARD_READER_INFO stuCardReader; // 读卡器配置
  42683. NET_WPAN_ACCESSORY_IMAGE_INFO stuImageInfo; // 图片信息
  42684. NET_WPAN_EXTERNAL_WIFI_INFO stuExternalWifi; // 外部wifi信息
  42685. NET_WPAN_WIFI_INFO stuWifiInfo; // Wi-Fi信息
  42686. NET_WPAN_OVER_TEMPERATURE_ALARM_INFO stuOverTemperatureAlarm; // 超温报警
  42687. UINT nAreaNumberCnt; // 所属区域个数
  42688. int nAreaNumber[64]; // 所属区域编号,整形数组从1开始
  42689. UINT nControlAreaNumCnt; // 控制区域个数
  42690. int nControlAreaNum[64]; // 控制区域编号:所属区域编号,从1开始;-1:全局,0:关闭
  42691. UINT nRecordChannelsNum; // 录像通道号个数
  42692. int nRecordChannels[256]; // 录像通道号列表,一维数组,每个成员表示对应的通道需要执行录像,通道号从0开始
  42693. UINT nSirenLinkageNum; // 警号联动个数
  42694. int nSirenLinkage[256]; // 警号联动
  42695. UINT nArmingInfoNum; // 布防信息个数
  42696. NET_WPAN_ARMING_INFO stuArmingInfo[4]; // 布防信息,最大4组
  42697. UINT nButtonNum; // 按键个数
  42698. NET_WPAN_ACCESSORY_BUTTON_INFO stuButton[16]; // 按键信息
  42699. }NET_WPAN_ACCESSORY_INFO;
  42700. ///@brief 获取配件信息(对应DH_DEVSTATE_GET_ACCESSORY_INFO)
  42701. typedef struct tagNET_GET_ACCESSORY_INFO
  42702. {
  42703. DWORD dwSize; // 结构体大小
  42704. UINT nSNNum; // 配件序列号数组个数(当个数为0时,返回主机下所有配件状态)
  42705. char szSN[56][MAX_COMMON_STRING_32]; // 配件序列号数组
  42706. UINT nMaxInfoNum; // 申请的配件个数
  42707. NET_WPAN_ACCESSORY_INFO* pstuInfo; // 配件信息指针,由调用者分配内存,分配的大小为 nMaxAccessoryInfo*sizeof(NET_WPAN_ACCESSORY_INFO)
  42708. UINT nInfoNum; // 返回的配件数
  42709. }NET_GET_ACCESSORY_INFO;
  42710. ///@brief UPnP状态类型
  42711. typedef enum tagEM_UPNP_STATUS_TYPE
  42712. {
  42713. EM_UPNP_STATUS_UNKNOWN, // 状态未知
  42714. EM_UPNP_STATUS_SUCCESS, // 获取成功
  42715. EM_UPNP_STATUS_ERROR, // 获取失败
  42716. }EM_UPNP_STATUS_TYPE;
  42717. ///@brief 端口映射状态类型
  42718. typedef enum tagEM_PORTMAP_STATUS_TYPE
  42719. {
  42720. EM_PORTMAP_STATUS_UNKNOWN, // 状态未知
  42721. EM_PORTMAP_STATUS_SUCCESS, // 映射成功
  42722. EM_PORTMAP_STATUS_FAILED, // 映射失败
  42723. }EM_PORTMAP_STATUS_TYPE;
  42724. ///@brief 获取UPnP映射状态(对应DH_DEVSTATE_GET_UPNP_STATUS)
  42725. typedef struct tagNET_GET_UPNPSTATUS_INFO
  42726. {
  42727. DWORD dwSize; // 结构体大小
  42728. BOOL bWorking; // 是否正在工作
  42729. EM_UPNP_STATUS_TYPE emStatus; // 状态
  42730. char szInnerAddress[MAX_COMMON_STRING_64]; // 内部IP
  42731. char szOuterAddress[MAX_COMMON_STRING_64]; // 外部IP
  42732. UINT nMaxPortMapStatus; // 申请的端口映射状态个数
  42733. UINT nReturnNum; // 实际返回的端口映射状态个数
  42734. EM_PORTMAP_STATUS_TYPE *pemPortMapStatus; // 端口映射状态信息指针,由调用者分配内存,分配的大小为 nMaxPortMapStatus*sizeof(EM_PORTMAP_STATUS_TYPE)
  42735. }NET_GET_UPNPSTATUS_INFO;
  42736. ///@brief 测试邮件, CLIENT_ControlDeviceEx 入参 对应 DH_CTRL_TEST_MAIL
  42737. typedef struct tagNET_IN_TEST_MAIL
  42738. {
  42739. DWORD dwSize;
  42740. }NET_IN_TEST_MAIL;
  42741. ///@brief 测试邮件, CLIENT_ControlDeviceEx 出参 对应 DH_CTRL_TEST_MAIL
  42742. typedef struct tagNET_OUT_TEST_MAIL
  42743. {
  42744. DWORD dwSize;
  42745. }NET_OUT_TEST_MAIL;
  42746. ///@brief 设置配件信息入参(对应DH_CTRL_LOWRATEWPAN_SET_ACCESSORY_PARAM)
  42747. typedef struct tagNET_IN_CTRL_LOWRATEWPAN_ACCESSORY_PARAM
  42748. {
  42749. DWORD dwSize;
  42750. NET_WPAN_ACCESSORY_INFO stuInfo; // 配件信息
  42751. }NET_IN_CTRL_LOWRATEWPAN_ACCESSORY_PARAM;
  42752. ///@brief 控制智能开关, CLIENT_ControlDeviceEx 入参 对应 DH_CTRL_CONTROL_SMART_SWITCH
  42753. typedef struct tagNET_IN_CONTROL_SMART_SWITCH
  42754. {
  42755. DWORD dwSize;
  42756. char szSerialNumber[DH_WIRELESS_DEVICE_SERIAL_NUMBER_MAX_LEN]; // 设备序列号
  42757. BOOL bEnable; // TRUE - 开, FALSE - 关
  42758. int nDelayTime; // 延时时间, 等于0时,表示立即打开或关闭. unit: min
  42759. }NET_IN_CONTROL_SMART_SWITCH;
  42760. ///@brief 控制智能开关, CLIENT_ControlDeviceEx 出参 对应 DH_CTRL_CONTROL_SMART_SWITCH
  42761. typedef struct tagNET_OUT_CONTROL_SMART_SWITCH
  42762. {
  42763. DWORD dwSize;
  42764. }NET_OUT_CONTROL_SMART_SWITCH;
  42765. ///@brief 同轴IO控制类型
  42766. typedef enum tagEM_COAXIAL_CONTROL_IO_TYPE
  42767. {
  42768. EM_COAXIAL_CONTROL_IO_TYPE_UNKNOWN, // 未知
  42769. EM_COAXIAL_CONTROL_IO_TYPE_LIGHT, // 白光灯
  42770. EM_COAXIAL_CONTROL_IO_TYPE_SPEAKER, // speak音频
  42771. } EM_COAXIAL_CONTROL_IO_TYPE;
  42772. ///@brief 同轴IO控制开关
  42773. typedef enum tagEM_COAXIAL_CONTROL_IO_SWITCH
  42774. {
  42775. EM_COAXIAL_CONTROL_IO_SWITCH_UNKNOWN, // 未知
  42776. EM_COAXIAL_CONTROL_IO_SWITCH_OPEN, // 开
  42777. EM_COAXIAL_CONTROL_IO_SWITCH_CLOSE, // 关
  42778. } EM_COAXIAL_CONTROL_IO_SWITCH;
  42779. ///@brief 同轴IO触发方式
  42780. typedef enum tagEM_COAXIAL_CONTROL_IO_TRIGGER_MODE
  42781. {
  42782. EM_COAXIAL_CONTROL_IO_TRIGGER_MODE_UNKNOWN, // 未知
  42783. EM_COAXIAL_CONTROL_IO_TRIGGER_MODE_LINKAGE_TRIGGER, // 联动触发
  42784. EM_COAXIAL_CONTROL_IO_TRIGGER_MODE_MANUAL_TRIGGER, // 手动触发
  42785. } EM_COAXIAL_CONTROL_IO_TRIGGER_MODE;
  42786. ///@brief 白光灯模式
  42787. typedef enum tagEM_COAXIAL_CONTROL_IO_LIGHT_MODE
  42788. {
  42789. EM_COAXIAL_CONTROL_IO_LIGHT_MODE_UNKNOWN, // 未知
  42790. EM_COAXIAL_CONTROL_IO_LIGHT_MODE_BRIGHT, // 常亮
  42791. EM_COAXIAL_CONTROL_IO_LIGHT_MODE_TWINKLE, // 闪烁
  42792. } EM_COAXIAL_CONTROL_IO_LIGHT_MODE;
  42793. ///@brief 同轴IO信息结构体
  42794. typedef struct tagNET_COAXIAL_CONTROL_IO_INFO
  42795. {
  42796. EM_COAXIAL_CONTROL_IO_TYPE emType; // 同轴IO控制类型
  42797. EM_COAXIAL_CONTROL_IO_SWITCH emSwicth; // 同轴IO控制开关
  42798. EM_COAXIAL_CONTROL_IO_TRIGGER_MODE emMode; // 同轴IO触发方式
  42799. EM_COAXIAL_CONTROL_IO_LIGHT_MODE emLightMode; // 白光灯模式
  42800. BYTE byReserved[124]; // 保留字节
  42801. } NET_COAXIAL_CONTROL_IO_INFO;
  42802. // 同轴IO信息最大个数
  42803. #define MAX_COAXIAL_CONTROL_IO_COUNT 8
  42804. ///@brief 发送同轴IO控制命令, CLIENT_ControlDeviceEx 入参 对应 DH_CTRL_COAXIAL_CONTROL_IO
  42805. typedef struct tagNET_IN_CONTROL_COAXIAL_CONTROL_IO
  42806. {
  42807. DWORD dwSize; // 结构体大小
  42808. int nChannel; // 通道号
  42809. int nInfoCount; // 同轴IO信息个数
  42810. NET_COAXIAL_CONTROL_IO_INFO stInfo[MAX_COAXIAL_CONTROL_IO_COUNT]; // 同轴IO信息
  42811. } NET_IN_CONTROL_COAXIAL_CONTROL_IO;
  42812. ///@brief 发送同轴IO控制命令, CLIENT_ControlDeviceEx 出参 对应 DH_CTRL_COAXIAL_CONTROL_IO
  42813. typedef struct tagNET_OUT_CONTROL_COAXIAL_CONTROL_IO
  42814. {
  42815. DWORD dwSize; // 结构体大小
  42816. } NET_OUT_CONTROL_COAXIAL_CONTROL_IO;
  42817. //////////////////////////////////////////////////////////////////////
  42818. ///@brief Low Rate Wireless Personal Area Network 低速无线私域网 end
  42819. //////////////////////////////////////////////////////////////////////
  42820. ///@brief 模拟量通道数据查询(对应 DH_DEVSTATE_ANALOGALARM_DATA 命令)
  42821. typedef struct tagNET_GET_ANALOGALARM_DATA
  42822. {
  42823. DWORD dwSize;
  42824. int nChannelID; // 待查询的模拟量通道号(从0开始)
  42825. NET_ANALOGALARM_SENSE_INFO stuInfo; // 获得的模拟量通道数据
  42826. }NET_GET_ANALOGALARM_DATA;
  42827. ///@brief 监测控制和数据采集设备的设备类型
  42828. typedef enum tagEM_NET_SCADA_DEV_TYPE
  42829. {
  42830. EM_NET_SCADA_DEV_TYPE_UNKNOWN = 0, // 未知
  42831. EM_NET_SCADA_DEV_TYPE_ALL, // 所有类型设备
  42832. EM_NET_SCADA_DEV_TYPE_UPS, // UPS
  42833. } EM_NET_SCADA_DEV_TYPE;
  42834. ///@brief 监测控制和数据采集设备的点位表路径信息输入参数, 查询条件
  42835. typedef struct tagNET_IN_SCADA_POINT_LIST_INFO
  42836. {
  42837. DWORD dwSize;
  42838. char szDevType[DH_COMMON_STRING_64]; // 设备类型
  42839. }NET_IN_SCADA_POINT_LIST_INFO;
  42840. #define MAX_SCADA_POINT_LIST_INDEX 8 // 最大SCADADev配置下标个数, 即最大通道
  42841. ///@brief 点位表路径信息
  42842. typedef struct tagNET_SCADA_POINT_LIST
  42843. {
  42844. DWORD dwSize;
  42845. int nIndexValidNum; // 有效的配置下标个数
  42846. int nIndex[MAX_SCADA_POINT_LIST_INDEX];// SCADADev配置下标值, 从0开始
  42847. char szPath[DH_COMMON_STRING_256];// 点表的完整路径
  42848. }NET_SCADA_POINT_LIST;
  42849. #define MAX_SCADA_POINT_LIST_INFO_NUM 256 // 最大点位表路径个数
  42850. #define MAX_SCADA_POINT_LIST_ALARM_INFO_NUM 256 // 最大点位表报警个数
  42851. ///@brief 监测控制和数据采集设备的点位表路径信息输出参数, 查询结果
  42852. typedef struct tagNET_OUT_SCADA_POINT_LIST_INFO
  42853. {
  42854. DWORD dwSize;
  42855. int nList; // 有效点位表路径信息个数
  42856. NET_SCADA_POINT_LIST stuList[MAX_SCADA_POINT_LIST_INFO_NUM];// 点位表路径信息
  42857. }NET_OUT_SCADA_POINT_LIST_INFO;
  42858. ///@brief 监测控制和数据采集设备的点位表信息, (对应 DH_DEVSTATE_SCADA_POINT_LIST 命令)
  42859. typedef struct tagNET_SCADA_POINT_LIST_INFO
  42860. {
  42861. DWORD dwSize;
  42862. NET_IN_SCADA_POINT_LIST_INFO stuIn; // 查询条件
  42863. NET_OUT_SCADA_POINT_LIST_INFO stuOut; // 查询结果
  42864. }NET_SCADA_POINT_LIST_INFO;
  42865. ///@brief 点位类型
  42866. typedef enum tagEM_NET_SCADA_POINT_TYPE
  42867. {
  42868. EM_NET_SCADA_POINT_TYPE_UNKNOWN = 0, // 未知
  42869. EM_NET_SCADA_POINT_TYPE_ALL, // 所有类型
  42870. EM_NET_SCADA_POINT_TYPE_YC, // 遥测 模拟量输入
  42871. EM_NET_SCADA_POINT_TYPE_YX, // 遥信 开关量输入
  42872. EM_NET_SCADA_POINT_TYPE_YT, // 遥调 模拟量输出
  42873. EM_NET_SCADA_POINT_TYPE_YK, // 遥控 开关量输出
  42874. } EM_NET_SCADA_POINT_TYPE;
  42875. ///@brief SCADA监测点位查询条件
  42876. typedef struct tagNET_IN_SCADA_INFO
  42877. {
  42878. DWORD dwSize;
  42879. EM_NET_SCADA_POINT_TYPE emPointType; // 待查询的点位类型
  42880. }NET_IN_SCADA_INFO;
  42881. #define MAX_SCADA_YX_NUM 128 // 最大遥信个数
  42882. #define MAX_SCADA_YC_NUM 128 // 最大遥测个数
  42883. #define MAX_SCADA_POINT_INFO_NUM 8 // 最大点表个数
  42884. ///@brief 点表信息
  42885. typedef struct tagNET_SCADA_POINT_INFO
  42886. {
  42887. DWORD dwSize;
  42888. char szDevName[DH_COMMON_STRING_64];// 设备名称
  42889. int nYX; // 有效遥信个数
  42890. unsigned int anYX[MAX_SCADA_YX_NUM]; // 遥信信息
  42891. int nYC; // 有效遥测个数
  42892. float afYC[MAX_SCADA_YC_NUM]; // 遥测信息
  42893. }NET_SCADA_POINT_INFO;
  42894. ///@brief SCADA监测点位查询结果
  42895. typedef struct tagNET_OUT_SCADA_INFO
  42896. {
  42897. DWORD dwSize;
  42898. int nPointInfoNum; // 有效点表个数
  42899. NET_SCADA_POINT_INFO stuPointInfo[MAX_SCADA_POINT_INFO_NUM];// 点表信息
  42900. }NET_OUT_SCADA_INFO;
  42901. ///@brief 监测控制和数据采集设备的监测点位信息(对应 DH_DEVSTATE_SCADA_INFO 命令)
  42902. typedef struct tagNET_SCADA_INFO
  42903. {
  42904. DWORD dwSize;
  42905. NET_IN_SCADA_INFO stuIn; // 查询条件
  42906. NET_OUT_SCADA_INFO stuOut; // 查询结果
  42907. }NET_SCADA_INFO;
  42908. ///@brief SCADA能力名称
  42909. typedef enum tagEM_NET_SCADA_CAPS_TYPE
  42910. {
  42911. EM_NET_SCADA_CAPS_TYPE_UNKNOWN,
  42912. EM_NET_SCADA_CAPS_TYPE_ALL, // 所有类型
  42913. EM_NET_SCADA_CAPS_TYPE_DEV, // DevInfo
  42914. } EM_NET_SCADA_CAPS_TYPE;
  42915. ///@brief 监测控制和数据采集设备能力信息查询条件
  42916. typedef struct tagNET_IN_SCADA_CAPS
  42917. {
  42918. DWORD dwSize;
  42919. EM_NET_SCADA_CAPS_TYPE emType; // 查询类型
  42920. } NET_IN_SCADA_CAPS;
  42921. #define MAX_NET_SCADA_CAPS_TYPE (16)
  42922. #define MAX_NET_SCADA_CAPS_NAME (16)
  42923. ///@brief 监测控制和数据采集设备类型能力信息
  42924. typedef struct tagNET_OUT_SCADA_CAPS_ITEM
  42925. {
  42926. DWORD dwSize;
  42927. char szDevType[DH_COMMON_STRING_32]; // 设备类型
  42928. int nValidName; // 有效设备名称个数
  42929. char szDevName[MAX_NET_SCADA_CAPS_NAME][DH_COMMON_STRING_32];// 设备名称, 唯一标示设备
  42930. } NET_OUT_SCADA_CAPS_ITEM;
  42931. ///@brief 监测控制和数据采集设备能力信息查询结果
  42932. typedef struct tagNET_OUT_SCADA_CAPS
  42933. {
  42934. DWORD dwSize;
  42935. int nValidType; // 有效设备类型个数
  42936. NET_OUT_SCADA_CAPS_ITEM stuItems[MAX_NET_SCADA_CAPS_TYPE]; // 最多16个类型
  42937. } NET_OUT_SCADA_CAPS;
  42938. ///@brief 监测控制和数据采集设备能力信息(对应 DH_DEVSTATE_SCADA_CAPS 命令)
  42939. typedef struct tagNET_SCADA_CAPS
  42940. {
  42941. DWORD dwSize;
  42942. NET_IN_SCADA_CAPS stuIn; // 查询条件
  42943. NET_OUT_SCADA_CAPS stuOut; // 查询结果
  42944. } NET_SCADA_CAPS;
  42945. ///@brief 点位信息(通过设备、传感器点位获取)
  42946. typedef struct tagNET_SCADA_POINT_BY_ID_INFO
  42947. {
  42948. DWORD dwSize;
  42949. EM_NET_SCADA_POINT_TYPE emType; // 点位类型
  42950. char szID[DH_COMMON_STRING_64]; // 监测点位ID
  42951. int nMeasuredVal; // 点位类型为YX时有效
  42952. float fMeasureVal; // 点位类型为YC时有效
  42953. int nSetupVal; // 点位类型为YK时有效
  42954. float fSetupVal; // 点位类型为YT时有效
  42955. int nStatus; // 数据状态, -1:未知, 0:正常, 1:1级告警, 2:2级告警, 3:3级告警, 4:4级告警, 5:操作事件, 6:无效数据
  42956. NET_TIME stuTime; // 记录时间
  42957. char szPointName[32]; // 点位名称
  42958. }NET_SCADA_POINT_BY_ID_INFO;
  42959. #define MAX_SCADA_ID_OF_SENSOR_NUM 128 // 最大检测点位ID个数
  42960. ///@brief 通过设备、获取监测点位信息(对应 NET_SCADA_INFO_BY_ID)
  42961. typedef struct tagNET_SCADA_INFO_BY_ID
  42962. {
  42963. DWORD dwSize;
  42964. char szSensorID[DH_COMMON_STRING_64];// 输入参数, 探测器ID
  42965. int nIDs; // 输入参数, 有效点位ID个数
  42966. char szIDs[MAX_SCADA_ID_OF_SENSOR_NUM][DH_COMMON_STRING_64];// 输入参数, 点位ID
  42967. BOOL bIsHandle; // 输入参数,返回数据是否经过处理(无效数据过滤等):"false":未处理,"true":处理
  42968. int nMaxCount; // 输入参数, pstuInfo对应数组个数
  42969. int nRetCount; // 输出参数, pstInfo实际返回有效个数, 可能大于用户分配个数nMaxCount
  42970. NET_SCADA_POINT_BY_ID_INFO* pstuInfo; // 输入输出参数, 用户分配缓存,大小为sizeof(NET_SCADA_POINT_BY_ID_INFO)*nMaxCount
  42971. }NET_SCADA_INFO_BY_ID;
  42972. ///@brief 监测设备信息
  42973. typedef struct tagNET_SCADA_DEVICE_ID_INFO
  42974. {
  42975. char szDeviceID[DH_COMMON_STRING_64];// 设备id
  42976. char szDevName[DH_COMMON_STRING_64]; // 设备名称, 和CFG_SCADA_DEV_INFO配置中的szDevName一致
  42977. char szDevCode[64]; // 设备类型码
  42978. int nSlot; // 虚拟槽位号,该字段的值对应AlarmSlotBond配置的数组下标,通常0表示模拟量通道,1表示开关量通道,大于1表示485或者232或者网络通道,具体见AlarmSlotBond配置
  42979. int nLevel; // 动环配置的探测器地址,一个通道接多个探测器,通过地址区分不同探测器
  42980. BYTE reserve[952];
  42981. }NET_SCADA_DEVICE_ID_INFO;
  42982. ///@brief 获取当前主机所接入的外部设备ID
  42983. typedef struct tagNET_SCADA_DEVICE_LIST
  42984. {
  42985. DWORD dwSize;
  42986. int nMax; // 用户分配的结构体个数
  42987. int nRet; // 设备实际返回的有效结构体个数
  42988. NET_SCADA_DEVICE_ID_INFO* pstuDeviceIDInfo; // 监测设备信息,用户分配内存,大小为sizeof(NET_SCADA_DEVICE_ID_INFO)*nMax
  42989. }NET_SCADA_DEVICE_LIST;
  42990. ///@brief 监测点位信息
  42991. typedef struct tagNET_SCADA_NOTIFY_POINT_INFO
  42992. {
  42993. DWORD dwSize;
  42994. char szDevName[DH_COMMON_STRING_64]; // 设备名称,与getInfo获取的名称一致
  42995. EM_NET_SCADA_POINT_TYPE emPointType; // 点位类型
  42996. char szPointName[DH_COMMON_STRING_64]; // 点位名,与点位表的取值一致
  42997. float fValue; // Type为YC时为浮点数
  42998. int nValue; // Type为YX时为整数
  42999. char szFSUID[DH_COMMON_STRING_64]; // 现场监控单元ID(Field Unit), 即设备本身
  43000. char szID[DH_COMMON_STRING_64]; // 点位ID
  43001. char szSensorID[DH_COMMON_STRING_64]; // 探测器ID
  43002. NET_TIME_EX stuCollectTime; // 采集时间
  43003. } NET_SCADA_NOTIFY_POINT_INFO;
  43004. ///@brief 监测点位信息列表
  43005. typedef struct tagNET_SCADA_NOTIFY_POINT_INFO_LIST
  43006. {
  43007. DWORD dwSize;
  43008. int nList; // 监测点位信息个数
  43009. NET_SCADA_NOTIFY_POINT_INFO stuList[MAX_SCADA_POINT_LIST_INFO_NUM]; // 监测点位信息
  43010. } NET_SCADA_NOTIFY_POINT_INFO_LIST;
  43011. ///@brief 订阅监测点位信息回调函数原型
  43012. typedef void (CALLBACK *fSCADAAttachInfoCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_SCADA_NOTIFY_POINT_INFO_LIST *pInfo, int nBufLen, LDWORD dwUser);
  43013. ///@brief CLIENT_SCADAAttachInfo()接口输入参数
  43014. typedef struct tagNET_IN_SCADA_ATTACH_INFO
  43015. {
  43016. DWORD dwSize;
  43017. fSCADAAttachInfoCallBack cbCallBack; // 数据回调函数
  43018. EM_NET_SCADA_POINT_TYPE emPointType; // 点位类型
  43019. LDWORD dwUser; // 用户定义参数
  43020. } NET_IN_SCADA_ATTACH_INFO;
  43021. ///@brief CLIENT_SCADAAttachInfo()接口输出参数
  43022. typedef struct tagNET_OUT_SCADA_ATTACH_INFO
  43023. {
  43024. DWORD dwSize;
  43025. } NET_OUT_SCADA_ATTACH_INFO;
  43026. //////////////////////////////////////////////////////////////////////
  43027. #define MAX_SCADA_ID_NUM 1024 // 监测点位id的最大个数
  43028. ///@brief 点位阈值信息
  43029. typedef struct tagNET_SCADA_ID_THRESHOLD_INFO
  43030. {
  43031. DWORD dwSize;
  43032. EM_NET_SCADA_POINT_TYPE emPointType; // 点位类型
  43033. char szID[DH_COMMON_STRING_32]; // 点位ID
  43034. float fThreshold; // 告警门限
  43035. float fAbsoluteValue; // 绝对阈值
  43036. float fRelativeValue; // 相对阈值
  43037. int nStatus; // 数据状态, -1:未知, 0:正常, 1:1级告警, 2:2级告警, 3:3级告警, 4:4级告警, 5:操作事件, 6:无效数据
  43038. }NET_SCADA_ID_THRESHOLD_INFO;
  43039. ///@brief CLIENT_SCADAGetThreshold输入参数
  43040. typedef struct tagNET_IN_SCADA_GET_THRESHOLD
  43041. {
  43042. DWORD dwSize;
  43043. char szDeviceID[DH_COMMON_STRING_64]; // 外接设备id
  43044. int nIDs; // 有效监测点位个数
  43045. char szIDs[MAX_SCADA_ID_NUM][DH_COMMON_STRING_32]; // 待获取的监测点位ID
  43046. }NET_IN_SCADA_GET_THRESHOLD;
  43047. ///@brief CLIENT_SCADAGetThreshold输出参数
  43048. typedef struct tagNET_OUT_SCADA_GET_THRESHOLD
  43049. {
  43050. DWORD dwSize;
  43051. int nMax; // 用户分配的点位阈值信息个数
  43052. int nRet; // 实际返回的点位阈值信息
  43053. NET_SCADA_ID_THRESHOLD_INFO* pstuThresholdInfo; // 点位阈值信息, 用户分配内存,大小为sizeof(NET_SCADA_ID_THRESHOLD_INFO)*nMax
  43054. }NET_OUT_SCADA_GET_THRESHOLD;
  43055. //////////////////////////////////////////////////////////////////////
  43056. ///@brief CLIENT_SCADASetThreshold输入参数
  43057. typedef struct tagNET_IN_SCADA_SET_THRESHOLD
  43058. {
  43059. DWORD dwSize;
  43060. char szDeviceID[DH_COMMON_STRING_64];// 外接设备id
  43061. int nMax; // 用户分配的点位阈值信息个数
  43062. NET_SCADA_ID_THRESHOLD_INFO* pstuThresholdInfo; // 点位阈值信息, 用户分配内存,大小为sizeof(NET_SCADA_ID_THRESHOLD_INFO)*nMax
  43063. }NET_IN_SCADA_SET_THRESHOLD;
  43064. ///@brief CLIENT_SCADASetThreshold输出参数
  43065. typedef struct tagNET_OUT_SCADA_SET_THRESHOLD
  43066. {
  43067. DWORD dwSize;
  43068. int nSuccess; // 有效的存放设置阈值成功的id个数
  43069. char szSuccessID[MAX_SCADA_ID_NUM][DH_COMMON_STRING_32]; // 设置阈值成功的id,用户分配内存
  43070. int nFail; // 用户分配的存放设置阈值失败的id个数
  43071. char szFailID[MAX_SCADA_ID_NUM][DH_COMMON_STRING_32]; // 设置阈值失败的id, 用户分配内存
  43072. }NET_OUT_SCADA_SET_THRESHOLD;
  43073. //////////////////////////////////////////////////////////////////////
  43074. ///@brief CLIENT_StartFindSCADA输入参数
  43075. typedef struct tagNET_IN_SCADA_START_FIND
  43076. {
  43077. DWORD dwSize;
  43078. NET_TIME stuStartTime; // 开始时间, 必填
  43079. BOOL bEndTime; // 是否限制结束时间, TRUE: 必填stuEndTime, FLASE: 不限制结束时间
  43080. NET_TIME stuEndTime; // 结束时间
  43081. char szDeviceID[DH_COMMON_STRING_64];// DeviceID, 必填
  43082. char szID[DH_COMMON_STRING_32]; // 监测点位ID, 必填
  43083. int nIDsNum; // 监测点ID数组长度
  43084. char szIDs[32][DH_COMMON_STRING_32]; // 监控点ID号数组,SDT离网供电扩展字段
  43085. }NET_IN_SCADA_START_FIND;
  43086. ///@brief CLIENT_StartFindSCADA输出参数
  43087. typedef struct tagNET_OUT_SCADA_START_FIND
  43088. {
  43089. DWORD dwSize;
  43090. DWORD dwTotalCount; // 符合查询条件的总数
  43091. }NET_OUT_SCADA_START_FIND;
  43092. ///@brief CLIENT_DoFindSCADA输入参数
  43093. typedef struct tagNET_IN_SCADA_DO_FIND
  43094. {
  43095. DWORD dwSize;
  43096. int nStartNo; // 起始序号
  43097. int nCount; // 本次欲获得结果的个数
  43098. }NET_IN_SCADA_DO_FIND;
  43099. ///@brief CLIENT_DoFindSCADA输出参数
  43100. typedef struct tagNET_OUT_SCADA_DO_FIND
  43101. {
  43102. DWORD dwSize;
  43103. int nRetNum; // 本次查询到的个数
  43104. NET_SCADA_POINT_BY_ID_INFO* pstuInfo; // 查询结果, 用户分配内存,大小为sizeof(NET_SCADA_POINT_BY_ID_INFO)*nMaxNum
  43105. int nMaxNum; // 用户分配内存的个数
  43106. }NET_OUT_SCADA_DO_FIND;
  43107. ///@brief 监测点位报警信息
  43108. typedef struct tagNET_SCADA_NOTIFY_POINT_ALARM_INFO
  43109. {
  43110. DWORD dwSize;
  43111. char szDevID[DH_COMMON_STRING_16]; // 设备ID
  43112. char szPointID[DH_COMMON_STRING_128]; // 点位ID
  43113. BOOL bAlarmFlag; // 报警标志
  43114. NET_TIME stuAlarmTime; // 报警时间
  43115. int nAlarmLevel; // 报警级别(0~6)
  43116. int nSerialNo; // 报警编号,同一个告警的开始和结束的编号是相同的。
  43117. char szAlarmDesc[DH_COMMON_STRING_128]; // 报警描述
  43118. char szSignalName[64]; // 点位名称
  43119. } NET_SCADA_NOTIFY_POINT_ALARM_INFO;
  43120. ///@brief 监测点位报警信息
  43121. typedef struct tagNET_SCADA_NOTIFY_POINT_ALARM_INFO_EX
  43122. {
  43123. float fEventValue; // 产生告警时,关联点位的遥测值
  43124. char szResvered[1020]; // 保留字节
  43125. } NET_SCADA_NOTIFY_POINT_ALARM_INFO_EX;
  43126. ///@brief 监测点位报警信息列表
  43127. typedef struct tagNET_SCADA_NOTIFY_POINT_ALARM_INFO_LIST
  43128. {
  43129. DWORD dwSize;
  43130. int nList; // 监测点位报警信息个数
  43131. NET_SCADA_NOTIFY_POINT_ALARM_INFO stuList[MAX_SCADA_POINT_LIST_ALARM_INFO_NUM]; // 监测点位报警信息
  43132. NET_SCADA_NOTIFY_POINT_ALARM_INFO_EX stuListEx[256]; // 监测点位报警信息
  43133. } NET_SCADA_NOTIFY_POINT_ALARM_INFO_LIST;
  43134. ///@brief 定义监测点报警信息回调函数原型
  43135. typedef void (CALLBACK *fSCADAAlarmAttachInfoCallBack)(LLONG lAttachHandle, NET_SCADA_NOTIFY_POINT_ALARM_INFO_LIST *pInfo, int nBufLen, LDWORD dwUser);
  43136. ///@brief CLIENT_SCADAAlarmAttachInfo()接口输入参数
  43137. typedef struct tagNET_IN_SCADA_ALARM_ATTACH_INFO
  43138. {
  43139. DWORD dwSize;
  43140. fSCADAAlarmAttachInfoCallBack cbCallBack; // 数据回调函数
  43141. LDWORD dwUser; // 用户定义参数
  43142. } NET_IN_SCADA_ALARM_ATTACH_INFO;
  43143. ///@brief CLIENT_SCADAAlarmAttachInfo()接口输出参数
  43144. typedef struct tagNET_OUT_SCADA_ALARM_ATTACH_INFO
  43145. {
  43146. DWORD dwSize;
  43147. } NET_OUT_SCADA_ALARM_ATTACH_INFO;
  43148. ///@brief 监控点值设置参数
  43149. typedef struct tagNET_SCADA_POINT_SET_INFO
  43150. {
  43151. DWORD dwSize;
  43152. EM_NET_SCADA_POINT_TYPE emType; // 监控点位类型,取YK、YT两种类型
  43153. char szPointID[DH_COMMON_STRING_64]; // 监控点位ID
  43154. int nSetupVal; // 点位类型为YK时有效
  43155. float fSetupVal; // 点位类型为YT时有效
  43156. } NET_SCADA_POINT_SET_INFO;
  43157. ///@brief 监控点值设置参数列表,CLIENT_SetSCADAInfo()接口输入参数
  43158. typedef struct tagNET_IN_SCADA_POINT_SET_INFO_LIST
  43159. {
  43160. DWORD dwSize;
  43161. char szDevID[DH_COMMON_STRING_32]; // 设备ID
  43162. int nPointNum; // 监控点个数
  43163. NET_SCADA_POINT_SET_INFO stuList[MAX_SCADA_ID_OF_SENSOR_NUM]; // 监控点列表信息
  43164. } NET_IN_SCADA_POINT_SET_INFO_LIST;
  43165. ///@brief 设置监控点值返回的结果列表,CLIENT_SetSCADAInfo()接口输出参数
  43166. typedef struct tagNET_OUT_SCADA_POINT_SET_INFO_LIST
  43167. {
  43168. DWORD dwSize;
  43169. int nSuccess; // 有效的控制或调节成功的ID个数
  43170. char szSuccessID[MAX_SCADA_ID_OF_SENSOR_NUM][DH_COMMON_STRING_32]; // 控制或调节成功的ID的列表
  43171. int nFail; // 有效的控制或调节失败的ID个数
  43172. char szFailID[MAX_SCADA_ID_OF_SENSOR_NUM][DH_COMMON_STRING_32]; // 控制或调节失败的ID的列表
  43173. } NET_OUT_SCADA_POINT_SET_INFO_LIST;
  43174. ///@brief 获取当前子系统启用状态(对应DH_DEVSTATE_GET_ALARM_SUBSYSTEM_ACTIVATESTATUS命令)
  43175. typedef struct tagNET_GET_ALARM_SUBSYSTEM_ACTIVATE_STATUES
  43176. {
  43177. DWORD dwSize;
  43178. int nChannelId; // 子系统号
  43179. BOOL bActive; // 子系统启用状态, TRUE 表示启用,FALSE表示不启用
  43180. }NET_GET_ALARM_SUBSYSTEM_ACTIVATE_STATUES;
  43181. ///@brief 报警子系统激活设置参数(对应DH_CTRL_ALARM_SUBSYSTEM_ACTIVE_SET命令)
  43182. typedef struct tagNET_CTRL_ALARM_SUBSYSTEM_SETACTIVE
  43183. {
  43184. DWORD dwSize;
  43185. int nChannelId; // 子系统号
  43186. BOOL bActive; // 子系统启用状态,TRUE 表示启用,FALSE表示不启用
  43187. }NET_CTRL_ALARM_SUBSYSTEM_SETACTIVE;
  43188. ///@brief 禁止开闸参数(对应 DH_CTRL_FORBID_OPEN_STROBE)
  43189. typedef struct tagNET_CTRL_FORBID_OPEN_STROBE
  43190. {
  43191. DWORD dwSize;
  43192. int nChannelID; // 通道号
  43193. int nTime; // 禁止开闸的持续时间,单位:s,即在此操作之后的对应时间内不允许设备开闸
  43194. }NET_CTRL_FORBID_OPEN_STROBE;
  43195. #define MAX_PLATENUMBER_LEN 64 // 最大车牌号码长度
  43196. ///@brief 开闸类型
  43197. typedef enum tagEM_OPEN_STROBE_TYPE
  43198. {
  43199. EM_OPEN_STROBE_TYPE_UNKNOWN, // 未知
  43200. EM_OPEN_STROBE_TYPE_NORMAL, // 正常开闸(默认)
  43201. EM_OPEN_STROBE_TYPE_TEST, // 测试手动开闸(用于施工前期)
  43202. EM_OPEN_STROBE_TYPE_MANUAL, // 手动开闸
  43203. }EM_OPEN_STROBE_TYPE;
  43204. ///@brief 开启道闸参数(对应DH_CTRL_OPEN_STROBE命令)
  43205. typedef struct tagNET_CTRL_OPEN_STROBE
  43206. {
  43207. DWORD dwSize;
  43208. int nChannelId; // 通道号, nChannelId为-1时表示未使用通道号, 表示单通道设备
  43209. char szPlateNumber[MAX_PLATENUMBER_LEN]; // 车牌号码
  43210. EM_OPEN_STROBE_TYPE emOpenType; // 开闸类型
  43211. int nLocation; // 开闸车道号
  43212. }NET_CTRL_OPEN_STROBE;
  43213. ///@brief 异步开启道闸回调函数
  43214. // nError = 0 表示查询成功;
  43215. // nError = 1 表示内存申请失败;
  43216. // nError = 2 表示超时, 即超时时间内设备未返回信息
  43217. // nError = 3 表示设备返回数据校验不通过;
  43218. // nError = 4 发送查询请求失败
  43219. typedef void (CALLBACK *fOpenStrobeCallBack)(LLONG lLoginID, NET_CTRL_OPEN_STROBE stuOpenStrobe, int nError, LDWORD dwUser);
  43220. ///@brief 异步开启道闸参数(对应DH_CTRL_OPEN_STROBE命令)
  43221. typedef struct tagNET_CTRL_OPEN_STROBE_ASYN
  43222. {
  43223. DWORD dwSize;
  43224. NET_CTRL_OPEN_STROBE stuOpenStrobe; // 开启道闸参数
  43225. fOpenStrobeCallBack cbCallBack; // 数据回调函数
  43226. LDWORD dwUser; // 用户定义参数
  43227. int nWaitTime; // 超时时间
  43228. } NET_CTRL_OPEN_STROBE_ASYN;
  43229. ///@brief 关闭道闸参数(对应DH_CTRL_CLOSE_STROBE命令)
  43230. typedef struct tagNET_CTRL_CLOSE_STROBE
  43231. {
  43232. DWORD dwSize;
  43233. int nChannelId; // 通道号
  43234. int nLocation; // 关闸车道号
  43235. }NET_CTRL_CLOSE_STROBE;
  43236. ///@brief 强制产生违章参数(对应DH_CTRL_FORCE_BREAKING命令)
  43237. typedef struct tagNET_CTRL_FORCE_BREAKING
  43238. {
  43239. DWORD dwSize;
  43240. int nChannelId; // 通道号
  43241. int nLaneMask; // 车道掩码位
  43242. DWORD dwBreakingType; // 违章类型, 详见dhnetsdk.h中"智能分析事件类型"
  43243. BOOL bLastRecognized; // 是否抓拍最近识别到的物体
  43244. }NET_CTRL_FORCE_BREAKING;
  43245. ///@brief 回放拒绝接听参数(对应DH_CTRL_TALKING_REFUSE命令)
  43246. typedef struct tagNET_CTRL_TALKING_REFUSE
  43247. {
  43248. DWORD dwSize;
  43249. int nChannelID; // 对讲通道号
  43250. }NET_CTRL_TALKING_REFUSE;
  43251. ///@brief 远程对讲控制类型
  43252. typedef enum tagEM_REMOTETALK_CTRL_STATE
  43253. {
  43254. EM_REMOTETALK_CTRL_STATE_UNKNOWN = 0, // 未定义类型
  43255. EM_REMOTETALK_CTRL_STATE_INVITE, // 设备向平台发起对讲
  43256. }EM_REMOTETALK_CTRL_STATE;
  43257. ///@brief 远程对讲控制参数
  43258. typedef struct tagNET_CTRL_REMOTETALK_PARAM
  43259. {
  43260. DWORD dwSize; // 本结构体大小
  43261. EM_REMOTETALK_CTRL_STATE emAction; // 远程对讲控制的操作类型
  43262. }NET_CTRL_REMOTETALK_PARAM;
  43263. ///@brief 车位预定状态
  43264. typedef enum tagEM_NET_ORDER_STATE
  43265. {
  43266. EM_NET_ORDER_STATE_UNKNOWN,
  43267. EM_NET_ORDER_STATE_FREE, // 空闲Free
  43268. EM_NET_ORDER_STATE_ORDERED, // 预定Ordered
  43269. }EM_NET_ORDER_STATE;
  43270. ///@brief 车位预定状态信息
  43271. typedef struct tagNET_ORDER_STATE_INFO
  43272. {
  43273. DWORD dwSize;
  43274. unsigned int nLane; // 车位号
  43275. EM_NET_ORDER_STATE emOrderState; // 预定情况
  43276. }NET_ORDER_STATE_INFO;
  43277. ///@brief 设置车位预定状态参数(对应DH_CTRL_SET_ORDER_STATE命令)
  43278. typedef struct tagNET_CTRL_SET_ORDER_STATE
  43279. {
  43280. DWORD dwSize;
  43281. NET_ORDER_STATE_INFO* pOrderStateInfo; // 车位预定信息,用户分配空间,大小为sizeof(NET_ORDER_STATE_INFO)*nStateCount
  43282. unsigned int nStateCount; // 有效预定个数
  43283. }NET_CTRL_SET_ORDER_STATE;
  43284. ///@brief 停车场出入口控制器LED滚动屏幕字幕滚动速度
  43285. typedef enum tagNET_ECK_LED_SPEED_TYPE
  43286. {
  43287. NET_ECK_LED_SPEED_UNKNOWN = 0,
  43288. NET_ECK_LED_SPEED_LOW, // 慢
  43289. NET_ECK_LED_SPEED_NORMAL, // 正常
  43290. NET_ECK_LED_SPEED_HIGH, // 快
  43291. }NET_ECK_LED_SPEED_TYPE;
  43292. ///@brief 停车场出入口控制器LED设置 参数DH_CTRL_ECK_LED_SET
  43293. typedef struct tagNET_CTRL_ECK_LED_SET_PARAM
  43294. {
  43295. DWORD dwSize;
  43296. NET_ECK_LED_SPEED_TYPE emLEDSpeed; // 字幕滚动速度
  43297. int nCount; // 有效显示次数, 范围0-255, 0表示永久
  43298. char szCustomData[DH_COMMON_STRING_512];// LED滚动屏初始自定义字符, 0-256字节
  43299. }NET_CTRL_ECK_LED_SET_PARAM;
  43300. ///@brief 屏幕文本类型
  43301. typedef enum tagEM_SCREEN_TEXT_TYPE
  43302. {
  43303. EM_SCREEN_TEXT_TYPE_UNKNOWN = -1, // 未知
  43304. EM_SCREEN_TEXT_TYPE_ORDINARY, // 普通
  43305. EM_SCREEN_TEXT_TYPE_LOCAL_TIME, // 本地时间
  43306. EM_SCREEN_TEXT_TYPE_QR_CODE, // 二维码
  43307. EM_SCREEN_TEXT_TYPE_RESOURCE, // 资源文件
  43308. }EM_SCREEN_TEXT_TYPE;
  43309. ///@brief 屏幕文本颜色
  43310. typedef enum tagEM_SCREEN_TEXT_COLOR
  43311. {
  43312. EM_SCREEN_TEXT_COLOR_UNKNOWN = -1, // 未知
  43313. EM_SCREEN_TEXT_COLOR_GREEN, // 绿色
  43314. EM_SCREEN_TEXT_COLOR_RED, // 红色
  43315. EM_SCREEN_TEXT_COLOR_YELLOW, // 黄色
  43316. EM_SCREEN_TEXT_COLOR_WHITE, // 白色
  43317. }EM_SCREEN_TEXT_COLOR;
  43318. ///@brief 屏幕文本滚动模式
  43319. typedef enum tagEM_SCREEN_TEXT_ROLL_MODE
  43320. {
  43321. EM_SCREEN_TEXT_ROLL_MODE_UNKNOWN = -1, // 未知
  43322. EM_SCREEN_TEXT_ROLL_MODE_NO, // 不滚动
  43323. EM_SCREEN_TEXT_ROLL_MODE_LEFT_RIGHT, // 滚动 (横屏左右滚动,竖屏上下滚动)
  43324. EM_SCREEN_TEXT_ROLL_MODE_UP_DOWN, // 翻页(横屏上下翻页, 竖屏左右翻页)
  43325. EM_SCREEN_TEXT_ROLL_MODE_CUT_OUT, // 截取(超出部分直接截断显示)
  43326. }EM_SCREEN_TEXT_ROLL_MODE;
  43327. ///@brief 播报文本类型
  43328. typedef enum tagEM_BROADCAST_TEXT_TYPE
  43329. {
  43330. EM_BROADCAST_TEXT_TYPE_UNKNOWN = -1, // 未知
  43331. EM_BROADCAST_TEXT_TYPE_ORDINARY, // 普通
  43332. EM_BROADCAST_TEXT_TYPE_PLATE_NUMBER, // 车牌号
  43333. EM_BROADCAST_TEXT_TYPE_TIME, // 时间
  43334. EM_BROADCAST_TEXT_TYPE_NUMBER_STRING, // 数字字符串
  43335. }EM_BROADCAST_TEXT_TYPE;
  43336. ///@brief 屏幕信息
  43337. typedef struct tagNET_SCREEN_SHOW_INFO
  43338. {
  43339. UINT nScreenNo; // 屏幕编号
  43340. char szText[256]; // 显示文本(文本类型为EM_SCREEN_TEXT_TYPE_LOCAL_TIME时的时间格式,
  43341. // %Y 年
  43342. // %M 月
  43343. // %D 日
  43344. // %H 时(24小时机制)
  43345. // %h 时(12小时)
  43346. // %m 分
  43347. // %S 秒
  43348. // %W 星期
  43349. // %T 显示上午或下午
  43350. // %X 表示显示普通文本内容
  43351. EM_SCREEN_TEXT_TYPE emTextType; // 文本类型
  43352. EM_SCREEN_TEXT_COLOR emTextColor; // 文本颜色
  43353. EM_SCREEN_TEXT_ROLL_MODE emTextRollMode; // 文本滚动模式
  43354. UINT nRollSpeed; // 文本滚动速度由慢到快分为1~5
  43355. int nDisplayEffect; // 显示效果, 当emTextRollMode为EM_SCREEN_TEXT_ROLL_MODE_NO/EM_SCREEN_TEXT_ROLL_MODE_LEFT_RIGHT时, 取值为0:左移, 1:右移, 2、上移, 3、下移;
  43356. // 当emTextRollMode为EM_SCREEN_TEXT_ROLL_MODE_UP_DOWN时, 取值为0:上翻, 1:下翻;
  43357. // 当emTextRollMode为EM_SCREEN_TEXT_ROLL_MODE_CUT_OUT时, 取值为0:左对齐, 1:居中, 2:右对齐
  43358. BYTE byReserved[248]; // 保留字节
  43359. }NET_SCREEN_SHOW_INFO;
  43360. ///@brief 播报信息
  43361. typedef struct tagNET_BROADCAST_INFO
  43362. {
  43363. char szText[256]; // 语音文本
  43364. EM_BROADCAST_TEXT_TYPE emTextType; // 文本类型
  43365. BYTE byReserved[252]; // 保留字节
  43366. }NET_BROADCAST_INFO;
  43367. ///@brief 设置停车控制信息(点阵屏和语音播报的控制) CLIENT_ControlDeviceEx入参(对应 DH_CTRL_SET_PARK_CONTROL_INFO )
  43368. typedef struct tagNET_IN_SET_PARK_CONTROL_INFO
  43369. {
  43370. DWORD dwSize; // 结构体大小
  43371. int nScreenShowInfoNum; // 屏幕信息个数
  43372. NET_SCREEN_SHOW_INFO stuScreenShowInfo[16]; // 屏幕信息
  43373. BYTE byReserved[4]; // 字节补齐
  43374. int nBroadcastInfoNum; // 播报信息个数
  43375. NET_BROADCAST_INFO stuBroadcastInfo[16]; // 播报信息
  43376. }NET_IN_SET_PARK_CONTROL_INFO;
  43377. ///@brief 设置停车控制信息(点阵屏和语音播报的控制) CLIENT_ControlDeviceEx出参(对应 DH_CTRL_SET_PARK_CONTROL_INFO)
  43378. typedef struct tagNET_OUT_SET_PARK_CONTROL_INFO
  43379. {
  43380. DWORD dwSize; // 结构体大小
  43381. }NET_OUT_SET_PARK_CONTROL_INFO;
  43382. ///@brief 修改图片广告文件的停留时间CLIENT_ControlDeviceEx入参(对应 DH_CTRL_CHANGE_SUSTAIN )
  43383. typedef struct tagNET_IN_CTRL_CHANGE_SUSTAIN
  43384. {
  43385. DWORD dwSize; // 结构体大小
  43386. int nSustain; // 每张图片的停留时间
  43387. }NET_IN_CTRL_CHANGE_SUSTAIN;
  43388. ///@brief 修改图片广告文件的停留时间 CLIENT_ControlDeviceEx出参(对应 DH_CTRL_CHANGE_SUSTAIN)
  43389. typedef struct tagNET_OUT_CTRL_CHANGE_SUSTAIN
  43390. {
  43391. DWORD dwSize; // 结构体大小
  43392. }NET_OUT_CTRL_CHANGE_SUSTAIN;
  43393. ///@brief 灯光类型
  43394. typedef enum tagEM_DEVVIDEOINPUT_LIGHT_TYPE
  43395. {
  43396. EM_DEVVIDEOINPUT_LIGHTN_TYPE_UNKNOWN, // 未知
  43397. EM_DEVVIDEOINPUT_LIGHTN_TYPE_WHITELIGHT, // 白光灯
  43398. }EM_DEVVIDEOINPUT_LIGHT_TYPE;
  43399. ///@brief 操作类型
  43400. typedef enum tagEM_DEVVIDEOINPUT_LIGHT_OPERATION_TYPE
  43401. {
  43402. EM_DEVVIDEOINPUT_LIGHT_OPERATION_TYPE_UNKNOWN, // 未知
  43403. EM_DEVVIDEOINPUT_LIGHT_OPERATION_TYPE_ON, // 长亮
  43404. EM_DEVVIDEOINPUT_LIGHT_OPERATION_TYPE_OFF, // 关闭
  43405. EM_DEVVIDEOINPUT_LIGHT_OPERATION_TYPE_FLICK, // 闪烁
  43406. }EM_DEVVIDEOINPUT_LIGHT_OPERATION_TYPE;
  43407. ///@brief 控制灯光CLIENT_ControlDeviceEx入参(对应 DH_CTRL_DEVVIDEOINPUT_LIGHT )
  43408. typedef struct tagNET_IN_CTRL_DEVVIDEOINPUT_LIGHT
  43409. {
  43410. DWORD dwSize; // 结构体大小
  43411. int nChannel; // 通道号
  43412. EM_DEVVIDEOINPUT_LIGHT_TYPE emLightType; // 灯光类型
  43413. EM_DEVVIDEOINPUT_LIGHT_OPERATION_TYPE emOperateType; // 操作类型
  43414. }NET_IN_CTRL_DEVVIDEOINPUT_LIGHT;
  43415. ///@brief 控制灯光 CLIENT_ControlDeviceEx出参(对应 DH_CTRL_DEVVIDEOINPUT_LIGHT)
  43416. typedef struct tagNET_OUT_CTRL_DEVVIDEOINPUT_LIGHT
  43417. {
  43418. DWORD dwSize; // 结构体大小
  43419. }NET_OUT_CTRL_DEVVIDEOINPUT_LIGHT;
  43420. ///@brief 远程实时视频源
  43421. typedef struct tagNET_SNAP_TASK_REMOTE_STREAM
  43422. {
  43423. char szIP[64]; // 设备IP地址或域名
  43424. UINT nPort; // 端口号
  43425. char szUserName[64]; // 用户名
  43426. char szPassword[64]; // 密码
  43427. char szProtocol[32]; // 视频流协议. 目前支持协议类型: "Private", "RTSP", "Onvif", "HIKVISION"
  43428. char szUrl[256]; // URL地址, Protocol为"RTSP"时有效
  43429. char szReserved[540]; // 保留字节
  43430. } NET_SNAP_TASK_REMOTE_STREAM;
  43431. ///@brief 抓图格式参数
  43432. typedef struct tagNET_SNAP_TASK_SNAP_PARAM
  43433. {
  43434. UINT nWidth; // 抓图宽度
  43435. UINT nHeight; // 抓图高度
  43436. UINT nFormat; // 抓图格式, 0 : jpg, 1 : png
  43437. char szReserved[244]; // 保留字节
  43438. } NET_SNAP_TASK_SNAP_PARAM;
  43439. ///@brief 任务列表
  43440. typedef struct tagNET_SNAP_TASK_INFO_LIST
  43441. {
  43442. char szCameraID[64]; // 相机ID, 由客户端指定, 用于标示视频源信息
  43443. NET_SNAP_TASK_REMOTE_STREAM stuRemoteStream; // 远程实时视频源
  43444. NET_SNAP_TASK_SNAP_PARAM stuSnapParam; // 抓图格式参数
  43445. } NET_SNAP_TASK_INFO_LIST;
  43446. ///@brief 下发抓图任务 CLIENT_ControlDeviceEx入参(对应 DH_CTRL_SNAP_TASK_ADD )
  43447. typedef struct tagNET_IN_CTRL_SNAP_TASK_ADD
  43448. {
  43449. DWORD dwSize; // 结构体大小
  43450. int nTaskNum; // 任务个数
  43451. NET_SNAP_TASK_INFO_LIST *pstuInfoList; // 任务列表, 由用户申请内存, 大小为sizeof(NET_SNAP_TASK_INFO_LIST)*nTaskNum
  43452. }NET_IN_CTRL_SNAP_TASK_ADD;
  43453. ///@brief 下发抓图任务 CLIENT_ControlDeviceEx出参(对应 DH_CTRL_SNAP_TASK_ADD)
  43454. typedef struct tagNET_OUT_CTRL_SNAP_TASK_ADD
  43455. {
  43456. DWORD dwSize; // 结构体大小
  43457. UINT nTaskId; // 任务ID号
  43458. }NET_OUT_CTRL_SNAP_TASK_ADD;
  43459. #define NET_MAX_ECK_PANEL_NUM 12 // 显示内容的最大数量
  43460. ///@brief 显示内容的类型
  43461. typedef enum tagEM_NET_ECK_PANEL_TYPE
  43462. {
  43463. EM_NET_ECK_PANEL_TYPE_INTCHAR, // 整数、字母、空格
  43464. EM_NET_ECK_PANEL_TYPE_IMAGE, // 图形
  43465. EM_NET_ECK_PANEL_TYPE_ARROWS, // 箭头
  43466. }EM_NET_ECK_PANEL_TYPE;
  43467. ///@brief 是否加粗
  43468. typedef enum tagEM_NET_ECK_PANEL_ISBOLD
  43469. {
  43470. EM_NET_ECK_PANEL_ISBOLD_FALSE, // 不加粗
  43471. EM_NET_ECK_PANEL_ISBOLD_TRUE, // 加粗
  43472. }EM_NET_ECK_PANEL_ISBOLD;
  43473. ///@brief 显示颜色
  43474. typedef enum tagEM_NET_ECK_PANEL_COLOR
  43475. {
  43476. EM_NET_ECK_PANEL_COLOR_UNKNOWN, // 未知
  43477. EM_NET_ECK_PANEL_COLOR_RED, // 红色
  43478. EM_NET_ECK_PANEL_COLOR_GREEN, // 绿色
  43479. EM_NET_ECK_PANEL_COLOR_YELLOW, // 黄色
  43480. }EM_NET_ECK_PANEL_COLOR;
  43481. ///@brief 箭头指向,箭头专用
  43482. typedef enum tagEM_NET_ECK_PANEL_DIRECTION
  43483. {
  43484. EM_NET_ECK_PANEL_DIRECTION_UNKNOWN, // 未知
  43485. EM_NET_ECK_PANEL_DIRECTION_LEFT, // 左
  43486. EM_NET_ECK_PANEL_DIRECTION_UP, // 上
  43487. EM_NET_ECK_PANEL_DIRECTION_RIGHT, // 右
  43488. }EM_NET_ECK_PANEL_DIRECTION;
  43489. ///@brief 图标
  43490. typedef enum tagEM_NET_ECK_PANEL_ICON
  43491. {
  43492. EM_NET_ECK_PANEL_ICON_UNKNOWN, // 未知
  43493. EM_NET_ECK_PANEL_ICON_CLOSE, // 禁止
  43494. EM_NET_ECK_PANEL_ICON_CLOSECUSTOM, // 禁止
  43495. }EM_NET_ECK_PANEL_ICON;
  43496. ///@brief 显示内容
  43497. typedef struct tagNET_ECK_PANEL_CONTENT
  43498. {
  43499. EM_NET_ECK_PANEL_TYPE emType; // 显示内容的类型,必选
  43500. EM_NET_ECK_PANEL_ISBOLD emBold; // 是否加粗,必选
  43501. EM_NET_ECK_PANEL_COLOR emColor; // 显示颜色,必选
  43502. EM_NET_ECK_PANEL_DIRECTION emDirection; // 箭头指向,箭头专用,可选,Type为2时有效
  43503. EM_NET_ECK_PANEL_ICON emIcon; // 图标,图标专用,可选,Type为1时有效
  43504. WORD nText; // 文本,当前只支持一个字符,限Unicode编码,字符限为:数字、字母、空格(不支持汉字),可选,Type为0时有效
  43505. BYTE byReserved[1022]; // 保留字节
  43506. }NET_ECK_PANEL_CONTENT;
  43507. ///@brief 设置诱导屏显示内容(DH_CTRL_ECK_GUIDINGPANEL_CONTENT)
  43508. typedef struct tagNET_CTRL_ECK_GUIDINGPANEL_CONTENT
  43509. {
  43510. DWORD dwSize; // 结构体大小
  43511. int nPanelNum; // 显示内容数量
  43512. NET_ECK_PANEL_CONTENT stuContentInfo[NET_MAX_ECK_PANEL_NUM];// 显示内容
  43513. }NET_CTRL_ECK_GUIDINGPANEL_CONTENT;
  43514. ///@brief 智能停车系统出入口机IC卡用户类型
  43515. typedef enum tagNET_ECK_IC_CARD_USER_TYPE
  43516. {
  43517. NET_ECK_IC_CARD_USER_UNKNOWN,
  43518. NET_ECK_IC_CARD_USER_ALL, // 全部类型
  43519. NET_ECK_IC_CARD_USER_TEMP, // 临时用户
  43520. NET_ECK_IC_CARD_USER_LONG, // 长期用户
  43521. NET_ECK_IC_CARD_USER_ADMIN, // 管理员
  43522. NET_ECK_IC_CARD_USER_BLACK_LIST, // 禁止名单
  43523. }NET_ECK_IC_CARD_USER_TYPE;
  43524. ///@brief 智能停车系统出入口机异常过车记录类型
  43525. typedef enum tagNET_ECK_CAR_PASS_FLAG
  43526. {
  43527. NET_ECK_CAR_PASS_FLAG_NORMAL = 0, // 正常
  43528. NET_ECK_CAR_PASS_FLAG_ABNORMAL = 1, // 异常
  43529. NET_ECK_CAR_PASS_FLAG_ALL, // 全部
  43530. } NET_ECK_CAR_PASS_FLAG;
  43531. ///@brief 智能停车系统出入口机IC卡信息
  43532. typedef struct tagNET_ECK_IC_CARD
  43533. {
  43534. DWORD dwSize;
  43535. DWORD dwCard; // 卡号
  43536. NET_ECK_IC_CARD_USER_TYPE emUserType; // 用户类型
  43537. }NET_ECK_IC_CARD;
  43538. #define NET_MAX_ECK_IC_CARD_IMPORT_NUM 50 // 智能停车系统出入口机最大可导入IC卡的数目
  43539. ///@brief 智能停车系统出入口机IC卡信息导入 参数DH_CTRL_ECK_IC_CARD_IMPORT
  43540. typedef struct tagNET_CTRL_ECK_IC_CARD_IMPORT_PARAM
  43541. {
  43542. DWORD dwSize;
  43543. int nCardNum; // IC卡数量
  43544. NET_ECK_IC_CARD stuCardInfo[NET_MAX_ECK_IC_CARD_IMPORT_NUM];// IC卡信息
  43545. }NET_CTRL_ECK_IC_CARD_IMPORT_PARAM;
  43546. ///@brief 智能停车系统出入口机IC卡信息同步指令 参数 DH_CTRL_ECK_SYNC_IC_CARD
  43547. typedef struct tagNET_CTRL_ECK_SYNC_IC_CARD_PARAM
  43548. {
  43549. DWORD dwSize;
  43550. int nCount; // 客户端IC卡信息的数量
  43551. }NET_CTRL_ECK_SYNC_IC_CARD_PARAM;
  43552. #define ECK_SCREEN_NUM_MAX (8) // 智能停车系统出入口机最大屏数量
  43553. ///@brief 智能停车系统出入口机设置车位信息 参数 DH_CTRL_ECK_SET_PARK_INFO
  43554. typedef struct tagNET_CTRL_ECK_SET_PARK_INFO_PARAM
  43555. {
  43556. DWORD dwSize;
  43557. int nScreenNum; // 屏数量, 不超过 ECK_SCREEN_NUM_MAX
  43558. int nScreenIndex[ECK_SCREEN_NUM_MAX]; // 屏号, 每个元素表示屏序号
  43559. int nFreeParkNum[ECK_SCREEN_NUM_MAX]; // 对应屏管理下的空余车位数
  43560. // 长度和下标与nScreenIndex一致,每个元素表示对应屏号下的空余车位
  43561. }NET_CTRL_ECK_SET_PARK_INFO_PARAM;
  43562. ///@brief 信息采集(对应DH_CTRL_CAPTURE_FINGER_PRINT命令)
  43563. typedef struct tagNET_CTRL_CAPTURE_FINGER_PRINT
  43564. {
  43565. DWORD dwSize;
  43566. int nChannelID; // 门禁序号(从0开始)
  43567. char szReaderID[DH_COMMON_STRING_32]; // 读卡器ID
  43568. char szUserID[12]; // 用户ID(智能楼宇需求,可选)
  43569. }NET_CTRL_CAPTURE_FINGER_PRINT;
  43570. ///@brief 门禁控制密码类型
  43571. typedef enum tagEM_ACCESS_PASSWORD_TYPE
  43572. {
  43573. EM_ACCESS_PASSWORD_OPENDOOR=1, // 开门密码
  43574. EM_ACCESS_PASSWORD_ALARM, // 防劫持报警密码
  43575. }EM_ACCESS_PASSWORD_TYPE;
  43576. ///@brief 门禁控制-重置密码(对应CLIENT_ControlDevice接口的 DH_CTRL_ACCESS_RESET_PASSWORD 命令)
  43577. typedef struct tagNET_CTRL_ACCESS_RESET_PASSWORD
  43578. {
  43579. DWORD dwSize; // 结构体大小
  43580. int nChannelID; // 门禁序号(从0开始)
  43581. EM_ACCESS_PASSWORD_TYPE emType; // 密码类型
  43582. char szUserID[MAX_COMMON_STRING_32]; // 用户ID
  43583. char szNewPassword[MAX_COMMON_STRING_32]; // 新密码
  43584. }NET_CTRL_ACCESS_RESET_PASSWORD;
  43585. ///@brief 呼叫电梯命令
  43586. typedef enum tagEM_CALLLIFT_CMD
  43587. {
  43588. EM_CALLLIFT_CMD_UNKNOWN =-1, // 未知
  43589. EM_CALLLIFT_CMD_ANY_FLOOR = 0, // 呼叫电梯到某个楼层,并开放其它任何楼层数
  43590. EM_CALLLIFT_CMD_DEST_FLOOR, // 呼叫电梯到某个楼层,用户进去后只能按目标楼层
  43591. EM_CALLLIFT_CMD_CARD_UP, // 呼叫电梯到某个楼层后,还需要刷卡,电梯才能运行, 默认电梯上行
  43592. EM_CALLLIFT_CMD_AUTO_FLOOR, // 呼叫电梯到某个楼层,用户进去不用按钮,电梯会自动运行到目标楼层
  43593. EM_CALLLIFT_CMD_CARD_DOWN, // 呼叫电梯到某个楼层后,还需要刷卡,电梯才能运行, 默认电梯下行
  43594. }EM_CALLLIFT_CMD;
  43595. ///@brief 呼叫电梯方式
  43596. typedef enum tagEM_CALLLIFT_ACTION
  43597. {
  43598. EM_CALLLIFT_ACTION_UNKNOWN =-1, // 未知
  43599. EM_CALLLIFT_ACTION_USER_UNLOCK_CALL = 0, // 用户通过对讲分机打开单元门锁,同时呼叫电梯到单元门处
  43600. EM_CALLLIFT_ACTION_USER_DIRECT_CALL, // 用户呼叫电梯到用户所在楼层
  43601. EM_CALLLIFT_ACTION_USER_REDIRECT_CALL, // 用户呼叫电梯经由某层到某层
  43602. EM_CALLLIFT_ACTION_DIRECT_UNLOCK_CALL, // 单元门开锁,同时呼叫电梯到单元门处
  43603. }EM_CALLLIFT_ACTION;
  43604. ///@brief 门禁控制-呼梯(对应CLIENT_ControlDevice接口的 DH_CTRL_ACCESS_CALL_LIFT 命令)
  43605. typedef struct tagNET_CTRL_ACCESS_CALL_LIFT
  43606. {
  43607. DWORD dwSize;
  43608. int nChannelID; // 通道号
  43609. char szSrcFloor[MAX_COMMON_STRING_16]; // 起始地址(楼层+房间号)
  43610. char szDestFloor[MAX_COMMON_STRING_16]; // 目标地址(楼层+房间号)
  43611. EM_CALLLIFT_CMD emCallLiftCmd; // 呼叫电梯命令
  43612. EM_CALLLIFT_ACTION emCallLiftAction; // 呼叫电梯的方式
  43613. char szUserID[16]; // 用户ID
  43614. int nCallLiftCount; // 呼叫电梯个数
  43615. int nCallLiftNo[16]; // 呼叫电梯号
  43616. EM_LIFT_CALLER_TYPE emLiftCaller; // 呼梯类型
  43617. }NET_CTRL_ACCESS_CALL_LIFT;
  43618. ///@brief 调节灯光亮度(对应CLIENT_ControlDevice接口的 DH_CTRL_ADJUST_BRIGHT 命令)
  43619. typedef struct tagNET_CTRL_ADJUST_BRIGHT
  43620. {
  43621. DWORD dwSize; // 结构体大小
  43622. int nLevel; // 改变的亮度值
  43623. } NET_CTRL_ADJUST_BRIGHT;
  43624. ///@brief 清除日志(支持二次认证和鉴权, 对应CLIENT_ControlDevice接口的 DH_CTRL_CLEARLOG_EX 命令)
  43625. typedef struct tagNET_CTRL_CLEARLOG_EX
  43626. {
  43627. DWORD dwSize; // 结构体大小
  43628. } NET_CTRL_CLEARLOG_EX;
  43629. ///@brief 挂断视频电话(对应 DH_CTRL_VTP_DISCONNECT 命令)
  43630. typedef struct tagNET_CTRL_VTP_DISCONNECT
  43631. {
  43632. DWORD dwSize;
  43633. const char* szTargetID; // 待转发的设备ID, 为NULL表示不转发
  43634. EM_NET_VTP_CALL_TYPE emCallType; // 呼叫类型
  43635. char szCallID[DH_COMMON_STRING_128]; // 对讲唯一标识
  43636. }NET_CTRL_VTP_DISCONNECT;
  43637. ///@brief 对讲客户端响应
  43638. typedef enum tagNET_EM_VTP_ACK
  43639. {
  43640. NET_EM_VTP_OK, // 客户端接收事件,马上呼叫
  43641. NET_EM_VTP_BUSY, // 客户端忙,不呼叫
  43642. }NET_EM_VTP_ACK;
  43643. ///@brief 呼叫转发响应
  43644. typedef struct tagNET_CTRL_VTP_DIVERTACK
  43645. {
  43646. DWORD dwSize;
  43647. EM_NET_VTP_CALL_TYPE emCallType; // 待查询的呼叫类型
  43648. const char* szCallID; // 呼叫惟一标识符
  43649. NET_EM_VTP_ACK emAck; // 客户端接受后的响应动作
  43650. }NET_CTRL_VTP_DIVERTACK;
  43651. ///@brief 远程多媒体文件操作方式
  43652. typedef enum tagNET_EM_SPEAK_FILE_ACTION
  43653. {
  43654. NET_EM_SPEAK_FILE_ACTION_UPDATE = 0, // 更新原有文件
  43655. NET_EM_SPEAK_FILE_ACTION_ADD, // 新增文件
  43656. NET_EM_SPEAK_FILE_ACTION_DEL, // 删除文件
  43657. }NET_EM_SPEAK_FILE_ACTION;
  43658. ///@brief 远程多媒体文件投放操作信息
  43659. typedef struct tagNET_SPEAK_FILE_INFO
  43660. {
  43661. DWORD dwSize;
  43662. char szFilePath[MAX_PATH]; // 文件路径, 即预先用CFG_CMD_NASEX配置好的地址
  43663. NET_EM_SPEAK_FILE_ACTION emAction; // 操作类型, 即对szFilePath指定的文件的操作
  43664. BOOL bSave; // 设备本地是否更新保存该文件
  43665. }NET_SPEAK_FILE_INFO;
  43666. #define MAX_SPEAK_FILE_NUM 32 // 远程投放的多媒体文件最大个数
  43667. ///@brief 远程投放多媒体文件更新
  43668. typedef struct tagNET_CTRL_UPDATE_FILES
  43669. {
  43670. DWORD dwSize;
  43671. DWORD dwFileNum; // 有效的文件个数
  43672. NET_SPEAK_FILE_INFO stuFileInfo[MAX_SPEAK_FILE_NUM];// 多媒体文件信息
  43673. }NET_CTRL_UPDATE_FILES;
  43674. ///@brief 音频编码压缩格式
  43675. typedef enum tagEM_SPEAK_AUDIO_TYPE
  43676. {
  43677. EM_SPEAK_AUDIO_TYPE_UNKNOWN = 0, // 未知
  43678. EM_SPEAK_AUDIO_TYPE_PCM, // PCM
  43679. EM_SPEAK_AUDIO_TYPE_ADPCM, // ADPCM
  43680. EM_SPEAK_AUDIO_TYPE_G711A, // G711A
  43681. EM_SPEAK_AUDIO_TYPE_G711Mu, // G711Mu
  43682. EM_SPEAK_AUDIO_TYPE_G726, // G726
  43683. EM_SPEAK_AUDIO_TYPE_G729, // G729
  43684. EM_SPEAK_AUDIO_TYPE_MPEG2, // MPEG2
  43685. EM_SPEAK_AUDIO_TYPE_AMR, // AMR
  43686. EM_SPEAK_AUDIO_TYPE_AAC, // AAC
  43687. }EM_SPEAK_AUDIO_TYPE;
  43688. ///@brief 音频格式
  43689. typedef struct tagNET_SPEAK_AUDIO_FORMAT
  43690. {
  43691. EM_SPEAK_AUDIO_TYPE emFormat; // 音频编码格式
  43692. BYTE byReserved[1020]; // 预留
  43693. }NET_SPEAK_AUDIO_FORMAT;
  43694. ///@brief 音频文件路径
  43695. typedef struct tagNET_SPEAK_AUDIO_PLAY_PATH
  43696. {
  43697. char szPath[256]; // 文件路径
  43698. BOOL bSupportUpload; // 是否支持上传
  43699. int nMaxFileUploadNum; // 支持最大上传个数
  43700. int nMaxUploadFileSize; // 最大上传文件大小,单位:字节
  43701. BYTE byReserved[756]; // 预留
  43702. }NET_SPEAK_AUDIO_PLAY_PATH;
  43703. ///@brief 音频文件路径和能力集
  43704. typedef struct tagNET_SPEAK_CAPS
  43705. {
  43706. NET_SPEAK_AUDIO_FORMAT stuAudioFormats[32]; // 音频格式
  43707. int nAudioFormatNum; // 音频格式个数
  43708. int nAudioPlayPathNum; // 音频文件路径个数
  43709. NET_SPEAK_AUDIO_PLAY_PATH stuAudioPlayPaths[8]; // 音频文件路径
  43710. BYTE byReserved[1024]; // 预留
  43711. }NET_SPEAK_CAPS;
  43712. ///@brief CLIENT_GetDevCaps NET_REMOTE_SPEAK_CAPS 入参
  43713. typedef struct tagNET_IN_REMOTE_SPEAK_CAPS
  43714. {
  43715. DWORD dwSize; // 结构体大小
  43716. int nChannelNum; // 通道数
  43717. int nChannels[128]; // 通道列表
  43718. }NET_IN_REMOTE_SPEAK_CAPS;
  43719. ///@brief CLIENT_GetDevCaps NET_REMOTE_SPEAK_CAPS 出参
  43720. typedef struct tagNET_OUT_REMOTE_SPEAK_CAPS
  43721. {
  43722. DWORD dwSize; // 结构体大小
  43723. int nRetCapNum; // 实际返回的能力集个数
  43724. NET_SPEAK_CAPS* pstuCaps; // 能力集
  43725. void* pReserved; // 字节对齐
  43726. int nMaxCapNum; // 用户分配的最大能力集数组个数
  43727. }NET_OUT_REMOTE_SPEAK_CAPS;
  43728. ///@brief Wifi 能力集
  43729. typedef enum tagEM_WIFI_CAPS_TYPE
  43730. {
  43731. EM_CAPS_TYPE_UNKNOWN, // Unknown
  43732. EM_CAPS_TYPE_CLIENT, // Client
  43733. EM_CAPS_TYPE_AP, // Ap
  43734. EM_CAPS_TYPE_WPS, // Wps
  43735. } EM_WIFI_CAPS_TYPE;
  43736. ///@brief CLIENT_GetDevCaps NET_WLAN_CAPS 入参
  43737. typedef struct tagNET_IN_WLAN_CAPS_INFO
  43738. {
  43739. DWORD dwSize; // 结构体大小
  43740. } NET_IN_WLAN_CAPS_INFO;
  43741. ///@brief CLIENT_GetDevCaps NET_WLAN_CAPS 出参
  43742. typedef struct tagNET_OUT_WLAN_CAPS_INFO
  43743. {
  43744. DWORD dwSize; // 结构体大小
  43745. BOOL bIgnoreNetCardToConn; // 连接热点是否不关心网卡下发配置,TRUE:不关心 FALSE:关心。 即是否支持CLIENT_SetWlanConfigInfo 接口
  43746. EM_WIFI_CAPS_TYPE emWifiCaps[8]; // Wifi功能
  43747. int nRetWifiCapsNum; // 设备返回Wifi能力个数
  43748. } NET_OUT_WLAN_CAPS_INFO;
  43749. ///@brief CLIENT_GetDevCaps NET_LOG_ONLINE_BACKUP_CAPS 入参
  43750. typedef struct tagNET_IN_LOG_ONLINE_BACKUP_CAPS_INFO
  43751. {
  43752. DWORD dwSize; // 结构体大小
  43753. }NET_IN_LOG_ONLINE_BACKUP_CAPS_INFO;
  43754. ///@brief CLIENT_GetDevCaps NET_LOG_ONLINE_BACKUP_CAPS 出参
  43755. typedef struct tagNET_OUT_LOG_ONLINE_BACKUP_CAPS_INFO
  43756. {
  43757. DWORD dwSize; // 结构体大小
  43758. BOOL bSupportLogOnlineBackUp; // 是否支持日志在线备份
  43759. }NET_OUT_LOG_ONLINE_BACKUP_CAPS_INFO;
  43760. ///@brief CLIENT_GetDevCaps NET_RECEIPT_EVENT_CAPS 入参
  43761. typedef struct tagNET_IN_RECEIPT_EVENT_CAPS_INFO
  43762. {
  43763. DWORD dwSize; // 结构体大小
  43764. }NET_IN_RECEIPT_EVENT_CAPS_INFO;
  43765. ///@brief CLIENT_GetDevCaps NET_RECEIPT_EVENT_CAPS 出参
  43766. typedef struct tagNET_OUT_RECEIPT_EVENT_CAPS_INFO
  43767. {
  43768. DWORD dwSize; // 结构体大小
  43769. BOOL bSupportReceiptEx; // 是否支持附带说明信息的事件回执能力
  43770. // TRUE 表示设备支持 CLIENT_ReceiptEvent 接口调用
  43771. }NET_OUT_RECEIPT_EVENT_CAPS_INFO;
  43772. ///@brief WLAN加密方式
  43773. typedef enum tagEM_WLAN_ENCRYPTION_TYPE
  43774. {
  43775. EM_ENCRYPTION_TYPE_UNKNOWN, // 未知
  43776. EM_ENCRYPTION_TYPE_AUTO, // Auto
  43777. } EM_WLAN_ENCRYPTION_TYPE;
  43778. ///@brief 设置WLAN配置信息, CLIENT_SetWlanConfigInfo 入参
  43779. typedef struct tagNET_IN_WLAN_CONFIG_INFO
  43780. {
  43781. DWORD dwSize; // 结构体大小
  43782. char szBSSID[18]; // 设置MAC地址
  43783. BYTE byReserved[2]; // 字节对齐
  43784. char szSSID[32]; // 网络名称
  43785. int nChannel; // 通道
  43786. int nKeyID; // 对应WEP密码数组第一维下标,设备端会根据下标取数组值
  43787. EM_WLAN_ENCRYPTION_TYPE emEncryption; // 加密方式
  43788. char szKeys[4][128]; // WEP密码数组
  43789. // 如使用ASCII类型的密码,64位加密使用5个字母数字字符,128为加密使用13个字母数字字符(0-9,a-z,A-Z)
  43790. // 如果使用16进制的密码,64位加密使用10个字母数字字符,128为加密使用26个字母数字字符(0-9,A-F)
  43791. } NET_IN_WLAN_CONFIG_INFO;
  43792. ///@brief 设置WLAN配置信息, CLIENT_SetWlanConfigInfo 出参
  43793. typedef struct tagNET_OUT_WLAN_CONFIG_INFO
  43794. {
  43795. DWORD dwSize; // 结构体大小
  43796. } NET_OUT_WLAN_CONFIG_INFO;
  43797. ///@brief 雨刷来回刷一次,雨刷模式配置为手动模式时有效(对应命令 DH_CTRL_RAINBRUSH_MOVEONCE)
  43798. typedef struct tagNET_CTRL_RAINBRUSH_MOVEONCE
  43799. {
  43800. DWORD dwSize;
  43801. int nChannel; // 表示雨刷的索引
  43802. }NET_CTRL_RAINBRUSH_MOVEONCE;
  43803. ///@brief 雨刷来回循环刷,雨刷模式配置为手动模式时有效(对应命令 DH_CTRL_RAINBRUSH_MOVECONTINUOUSLY)
  43804. typedef struct tagNET_CTRL_RAINBRUSH_MOVECONTINUOUSLY
  43805. {
  43806. DWORD dwSize;
  43807. int nChannel; // 表示雨刷的索引
  43808. unsigned int nInterval; // 雨刷间隔
  43809. }NET_CTRL_RAINBRUSH_MOVECONTINUOUSLY;
  43810. ///@brief 雨刷停止刷,雨刷模式配置为手动模式时有效(对应命令 DH_CTRL_RAINBRUSH_STOPMOVE)
  43811. typedef struct tagNET_CTRL_RAINBRUSH_STOPMOVE
  43812. {
  43813. DWORD dwSize;
  43814. int nChannel; // 表示雨刷的索引
  43815. }NET_CTRL_RAINBRUSH_STOPMOVE;
  43816. ///@brief 报警事件确认(对应 DH_CTRL_ALARM_ACK 命令)
  43817. typedef struct tagNET_CTRL_ALARM_ACK
  43818. {
  43819. DWORD dwSize;
  43820. int nEventID; // 事件编号,用来唯一标志一个事件
  43821. }NET_CTRL_ALARM_ACK;
  43822. ///@brief 对讲请求回复类型
  43823. typedef enum tagNET_EM_VTP_INVITEACK_TYPE
  43824. {
  43825. NET_EM_VTP_INVITEACK_TYPE_UNKNOWN = 0, // 未知
  43826. NET_EM_VTP_INVITEACK_TYPE_BUSY // 忙类型
  43827. }NET_EM_VTP_INVITEACK_TYPE;
  43828. ///@brief 对讲请求回复
  43829. typedef struct tagNET_CTRL_VTP_INVITEACK
  43830. {
  43831. DWORD dwSize;
  43832. int nChnId; // 通道号,用于标识对讲单元
  43833. NET_EM_VTP_INVITEACK_TYPE emAck; // 客户端收到Invite事件后,将自身状态通知到设备端
  43834. }NET_CTRL_VTP_INVITEACK;
  43835. ///@brief 呼叫类型
  43836. typedef enum tagEM_VIDEOTALK_ACTION
  43837. {
  43838. EM_VIDEOTALK_ACTION_INVITE, // 呼叫
  43839. EM_VIDEOTALK_ACTION_HANGUP, // 挂断
  43840. EM_VIDEOTALK_ACTION_ANSWER, // 接听
  43841. EM_VIDEOTALK_ACTION_REFUSE, // 拒接
  43842. }EM_VIDEOTALK_ACTION;
  43843. ///@brief CLIENT_RemoteTalkControl 入参
  43844. typedef struct tagNET_IN_REMOTE_TALK_CONTROL
  43845. {
  43846. DWORD dwSize;
  43847. int nChnId; // 通道号,用于标识对讲单元
  43848. EM_VIDEOTALK_ACTION emAction; // 动作
  43849. char byReserved[4]; // 用于字节对齐
  43850. char szCallID[32]; // 呼叫ID
  43851. }NET_IN_REMOTE_TALK_CONTROL;
  43852. ///@brief CLIENT_RemoteTalkControl 出参
  43853. typedef struct tagNET_OUT_REMOTE_TALK_CONTROL
  43854. {
  43855. DWORD dwSize;
  43856. }NET_OUT_REMOTE_TALK_CONTROL;
  43857. ///@brief 远程对讲控制
  43858. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlRemoteTalk(LLONG lLoginID, const NET_IN_REMOTE_TALK_CONTROL* pstInParam, NET_OUT_REMOTE_TALK_CONTROL* pstOutParam, int nWaitTime);
  43859. ///@brief CLIENT_GetVideoTalkPeerDeviceState 入参
  43860. typedef struct tagNET_IN_GET_VIDEO_TALK_PEER_DEVICE_STATE
  43861. {
  43862. DWORD dwSize;
  43863. int nChnId; // 通道号,用于标识对讲单元
  43864. char szCallID[32]; // 设备标识符,为NULL时(即空串"")获取的是所有设备的在线状态
  43865. }NET_IN_GET_VIDEO_TALK_PEER_DEVICE_STATE;
  43866. ///@brief 在线状态
  43867. typedef enum tagEM_VIDEOTALK_STATE
  43868. {
  43869. EM_VIDEOTALK_STATE_UNKNOWN, // 未知
  43870. EM_VIDEOTALK_STATE_ONLINE, // 在线
  43871. EM_VIDEOTALK_STATE_OFFLINE, // 离线
  43872. }EM_VIDEOTALK_STATE;
  43873. ///@brief 设备在线状态
  43874. typedef struct tagNET_VIDEO_TALK_PEER_DEVICE_STATE
  43875. {
  43876. EM_VIDEOTALK_STATE emState; // 在线状态
  43877. char szID[32]; // 设备标识符
  43878. char szIpAddr[32]; // 注册的IP地址
  43879. UINT nPort; // 注册端口
  43880. char szReserved[128]; // 保留字节
  43881. }NET_VIDEO_TALK_PEER_DEVICE_STATE;
  43882. ///@brief CLIENT_GetVideoTalkPeerDeviceState 出参
  43883. typedef struct tagNET_OUT_GET_VIDEO_TALK_PEER_DEVICE_STATE
  43884. {
  43885. DWORD dwSize;
  43886. int nDeviceStateNodeNum; // 设备在线状态的个数
  43887. NET_VIDEO_TALK_PEER_DEVICE_STATE stuDeviceStateNode[200]; // 设备在线状态
  43888. }NET_OUT_GET_VIDEO_TALK_PEER_DEVICE_STATE;
  43889. ///@brief 获取对讲状态
  43890. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoTalkPeerDeviceState(LLONG lLoginID, const NET_IN_GET_VIDEO_TALK_PEER_DEVICE_STATE* pstInParam, NET_OUT_GET_VIDEO_TALK_PEER_DEVICE_STATE* pstOutParam, int nWaitTime);
  43891. ///@brief 预览类型
  43892. typedef enum tagEM_MONITOR_TYPE
  43893. {
  43894. EM_MONITOR_TYPE_UNKNOWN = -1, // 未知
  43895. EM_MONITOR_TYPE_VTO, // 预览门口机
  43896. EM_MONITOR_TYPE_IPC, // 预览IPC
  43897. }EM_MONITOR_TYPE;
  43898. ///@brief CLIENT_StartVTHMonitor 入参
  43899. typedef struct tagNET_IN_START_VTH_MONITOR
  43900. {
  43901. DWORD dwSize;
  43902. UINT nIndex; // VTO或者IPC配置列表中的索引号。
  43903. EM_MONITOR_TYPE emType; // 预览类型
  43904. char byReserved[4]; // 用于字节对齐
  43905. }NET_IN_START_VTH_MONITOR;
  43906. ///@brief CLIENT_StartVTHMonitor 出参
  43907. typedef struct tagNET_OUT_START_VTH_MONITOR
  43908. {
  43909. DWORD dwSize;
  43910. }NET_OUT_START_VTH_MONITOR;
  43911. ///@brief 开启监控
  43912. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartVTHMonitor(LLONG lLoginID, const NET_IN_START_VTH_MONITOR* pstInParam, NET_OUT_START_VTH_MONITOR* pstOutParam, int nWaitTime);
  43913. ///@brief CLIENT_StopVTHMonitor 入参
  43914. typedef struct tagNET_IN_STOP_VTH_MONITOR
  43915. {
  43916. DWORD dwSize;
  43917. UINT nIndex; // VTO或者IPC配置列表中的索引号。
  43918. EM_MONITOR_TYPE emType; // 预览类型
  43919. char byReserved[4]; // 用于字节对齐
  43920. }NET_IN_STOP_VTH_MONITOR;
  43921. ///@brief CLIENT_StopVTHMonitor 出参
  43922. typedef struct tagNET_OUT_STOP_VTH_MONITOR
  43923. {
  43924. DWORD dwSize;
  43925. }NET_OUT_STOP_VTH_MONITOR;
  43926. ///@brief 停止监控
  43927. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopVTHMonitor(LLONG lLoginID, const NET_IN_STOP_VTH_MONITOR* pstInParam, NET_OUT_STOP_VTH_MONITOR* pstOutParam, int nWaitTime);
  43928. ///@brief CLIENT_StartRemoteSpeakPlay 接口输入参数
  43929. typedef struct tagNET_IN_START_REMOTE_SPEAK_PLAY
  43930. {
  43931. DWORD dwSize; // 结构体大小
  43932. UINT nChannel; // 本地通道号
  43933. char szPath[256]; // 音频文件路径
  43934. }NET_IN_START_REMOTE_SPEAK_PLAY;
  43935. ///@brief 开始放音状态
  43936. typedef enum tagEM_REMOTE_SPEAK_PLAY_STATE
  43937. {
  43938. EM_REMOTE_SPEAK_PLAY_STATE_UNKNOWN, // 未知
  43939. EM_REMOTE_SPEAK_PLAY_STATE_OK, // 表示操作成功
  43940. EM_REMOTE_SPEAK_PLAY_STATE_BUSY, // 表示操作正在进行
  43941. EM_REMOTE_SPEAK_PLAY_STATE_ERROR, // 表示其它错误
  43942. EM_REMOTE_SPEAK_PLAY_STATE_FTP_NOT_VALID, // 表示Ftp地址不在NAS中
  43943. } EM_REMOTE_SPEAK_PLAY_STATE;
  43944. ///@brief CLIENT_StartRemoteSpeakPlay 接口输出参数
  43945. typedef struct tagNET_OUT_START_REMOTE_SPEAK_PLAY
  43946. {
  43947. DWORD dwSize; // 结构体大小
  43948. EM_REMOTE_SPEAK_PLAY_STATE emStatus; // 开始放音状态
  43949. }NET_OUT_START_REMOTE_SPEAK_PLAY;
  43950. ///@brief 开始放音接口
  43951. ///@param[in] lLoginID: 登录句柄
  43952. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  43953. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  43954. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  43955. ///@return TRUE表示成功 FALSE表示失败
  43956. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartRemoteSpeakPlay(LLONG lLoginID, const NET_IN_START_REMOTE_SPEAK_PLAY *pstuInParam, NET_OUT_START_REMOTE_SPEAK_PLAY *pstuOutParam, int nWaitTime);
  43957. ////////////////////////////系统任务订阅//////////////////////////////////////////
  43958. ///@brief 分区状态
  43959. typedef struct __NET_PARTITION_STATE
  43960. {
  43961. DWORD dwSize;
  43962. int nStatus; // 分区状态,0-正常,1-错误
  43963. double dbTotalSize; // 分区总容量,字节为单位
  43964. double dbRemainSize; // 剩余容量,字节为单位
  43965. }NET_PARTITION_STATE;
  43966. ///@brief 硬盘状态
  43967. typedef struct __NET_HDD_STATE
  43968. {
  43969. DWORD dwSize;
  43970. int nState; // 硬盘状态,0-正常,1-错误,2-硬盘满
  43971. double dbTotalSize; // 硬盘总容量,字节为单位
  43972. NET_PARTITION_STATE stuPartitions[DH_MAX_STORAGE_PARTITION_NUM]; // 分区状态
  43973. int nPartitionNum; // 分区数
  43974. }NET_HDD_STATE;
  43975. ///@brief 通道状态
  43976. typedef struct __NET_CHANNLE_STATE
  43977. {
  43978. DWORD dwSize;
  43979. BYTE byRecState; // 录像状态,1-录像,0-关闭
  43980. BYTE byVideoInState; // 视频输入状态,0-无视频,1-有视频接入,2-视频遮挡,3-IPC未连接上
  43981. BYTE byReserved[2]; // 字节对齐
  43982. }NET_CHANNLE_STATE;
  43983. ///@brief PAD/DVR连接状态
  43984. typedef enum tagNET_PAD_CONNECT_STATE
  43985. {
  43986. NET_PAD_CONNECT_STATE_UNKNOWN, // 未知
  43987. NET_PAD_CONNECT_STATE_UNCONNECTED, // 未连接
  43988. NET_PAD_CONNECT_STATE_CONNECTED, // 连接
  43989. } NET_PAD_CONNECT_STATE;
  43990. ///@brief Home键状态
  43991. typedef enum tagNET_HOME_STATE
  43992. {
  43993. NET_HOME_STATE_UNKNOWN, // 未知
  43994. NET_HOME_STATE_UNPRESSED, // 未按下
  43995. NET_HOME_STATE_PRESSED, // 按下
  43996. } NET_HOME_STATE;
  43997. ///@brief 紧急报警状态
  43998. typedef enum tagEM_EMERGENCYSTATUS_TYPE
  43999. {
  44000. EM_EMERGENCYSTATUS_UNKNOWN = -1, // 未知
  44001. EM_EMERGENCYSTATUS_CLOSE, // 关闭
  44002. EM_EMERGENCYSTATUS_OPEN, // 开启
  44003. }EM_EMERGENCYSTATUS_TYPE;
  44004. ///@brief 设备锁状态
  44005. typedef enum tagEM_TAMPERALTERSTATUS_TYPE
  44006. {
  44007. EM_TAMPERALTERSTATUS_UNKNOWN = -1, // 未知
  44008. EM_TAMPERALTERSTATUS_CLOSE, // 关闭
  44009. EM_TAMPERALTERSTATUS_OPEN, // 开启
  44010. }EM_TAMPERALTERSTATUS_TYPE;
  44011. ///@brief GPS 模块信号强度
  44012. typedef enum tagEM_GPS_SIGNAL_STRENGTH_TYPE
  44013. {
  44014. EM_GPS_SIGNAL_STRENGTH_UNKNWON = -1, // 未知
  44015. EM_GPS_SIGNAL_STRENGTH_WEAK, // 弱
  44016. EM_GPS_SIGNAL_STRENGTH_MIDDLE, // 中
  44017. EM_GPS_SIGNAL_STRENGTH_STRONG, // 强
  44018. } EM_GPS_SIGNAL_STRENGTH_TYPE;
  44019. ///@brief 事件数据类型
  44020. typedef enum tagEM_SELFCHECK_DATA_TYPE
  44021. {
  44022. EM_SELFCHECK_DATA_TYPE_UNKNOWN, // 未知
  44023. EM_SELFCHECK_DATA_TYPE_REALTIME, // 实时数据
  44024. EM_SELFCHECK_DATA_TYPE_HISTORY, // 历史数据 重发数据
  44025. }EM_SELFCHECK_DATA_TYPE;
  44026. ///@brief 设备自检信息
  44027. typedef struct __NET_SELFCHECK_INFO
  44028. {
  44029. DWORD dwSize;
  44030. int nAlarmIn; // 报警输入通道数
  44031. int nAlarmOut; // 报警输出通道数
  44032. NET_TIME stuTime; // 上报时间
  44033. char szPlateNo[DH_MAX_PLATE_NUMBER_LEN]; // 车牌
  44034. char szICCID[DH_MAX_SIM_LEN]; // SIM卡号,建议使用szICCIDExInfo字段
  44035. BYTE byOrientation; // 定位状态,0-未定位,1-定位
  44036. BYTE byACCState; // ACC 状态,0-关闭,1-打开
  44037. BYTE byConstantElecState; // 常电状态,0-正常连接,1-断开,2-欠压,3-高压
  44038. BYTE byAntennaState; // 通信信号状态,0-正常,1-未知故障,2-未接,3-短路
  44039. /* 外部设备状态 */
  44040. BYTE byReportStation; // 报站器状态,0-未接,1-正常,2-异常
  44041. BYTE byControlScreen; // 调度屏状态,0-未接,1-正常,2-异常
  44042. BYTE byPOS; // POS机状态,0-未接,1-正常,2-异常
  44043. BYTE byCoinBox; // 投币箱状态,0-未接,1-正常,2-异常
  44044. /* 能力集 */
  44045. BOOL bTimerSnap; // 定时抓图,TRUE-支持,FALSE-不支持
  44046. BOOL bElectronEnclosure; // 电子围栏,TRUE-支持,FALSE-不支持
  44047. BOOL bTeleUpgrade; // 远程升级,TRUE-支持,FALSE-不支持
  44048. NET_HDD_STATE stuHddStates[DH_MAX_DISKNUM]; // 硬盘状态
  44049. int nHddNum; // 硬盘个数
  44050. NET_CHANNLE_STATE* pChannleState; // 通道状态,是一个数组,
  44051. // CLIENT_AttachMission接口,NET_MISSION_TYPE_SELFCHECK类型,回调函数,内存由SDK申请,SDK释放
  44052. // CLIENT_GetSelfCheckInfo接口,出参,内存由用户申请,用户释放,大小为sizeof(NET_CHANNLE_STATE)*nChannelMax
  44053. int nChannleNum; // 实际上报的通道个数
  44054. int nChannelMax; // CLIENT_GetSelfCheckInfo接口,pChannleState内存的最大NET_CHANNLE_STATE个数
  44055. NET_PAD_CONNECT_STATE emConnState; // PAD/DVR连接状态
  44056. NET_HOME_STATE emHomeState; // Home键状态
  44057. char szICCIDExInfo[DH_COMMON_STRING_256]; // SIM卡号扩展信息,用于字段扩展使用
  44058. BYTE by3GState; // 3G/4G状态, 0-未连接,1-连接,2-模块未找到
  44059. BYTE byWifiState; // Wifi状态, 0-未连接,1-连接,2-模块未找到
  44060. BYTE byGpsState; // Gps状态, 0-未连接,1-连接,2-模块未找到
  44061. BYTE byBlackBoxState; // BlackBox状态, 0-未接,1-正常
  44062. int nCpuUsage; // CPU使用百分比, 单位%
  44063. int nTemperature; // 设备内部温度, 摄氏度
  44064. char szVendor[32]; // 生产厂商
  44065. char szFirmwareVersion[128]; // 设备程序版本,是一个字符数组
  44066. char szSecurityBaseLineVersion[8]; // 安全基线版本
  44067. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS状态信息
  44068. char szNetworkOperName[32]; // 4G运营商网络信息,需要向sim卡提供方获取
  44069. EM_EMERGENCYSTATUS_TYPE emEmergencyStatus; // 紧急报警状态
  44070. EM_TAMPERALTERSTATUS_TYPE emTamperAletStatus; // 设备锁状态
  44071. char szImei[16]; // 国际移动设备辨识码15位数字标识
  44072. UINT nGSMsignalStrength; // 3G信号强度0 - 31
  44073. UINT nMcc; // 移动信号所属国家码
  44074. UINT nMnc; // 移动网络号码,用于识别移动客户所属的移动网络,2~3位数字组成
  44075. UINT nLAC; // 位置区码 (移动通信系统中),是为寻呼而设置的一个区域,覆盖一片地理区域,初期一般按行政区域划分(一个县或一个区),现在很灵活了,按寻呼量划分
  44076. UINT nCi; // 小区识别码,三种主要的基于位置服务(LBS)技术之一。小区识别码通过识别网络中哪一个小区传输用户呼叫并将该信息翻译成纬度和经度来确定用户位置
  44077. int nAlarmInStatusNum; // IO报警输入状态个数
  44078. int nAlarmInStatus[32]; // IO报警输入状态列表一维数组,每个成员表示对应的通道报警输入状态(0=Off; 1 =On)
  44079. int nAlarmOutStatusNum; // IO报警输出状态个数
  44080. int nAlarmOutStatus[32]; // IO报警输出状态列表一维数组,每个成员表示对应的通道报警输出状态(0=Off; 1 =On)
  44081. char szMasterSvrAddr[128]; // 主服务器地址,IPv4格式为点分十进制,IPv6格式为x:x:x:x:x:x:x:x,其中x是16位的十六进制值
  44082. char szSlaveSvrAddr[128]; // 从服务器地址,IPv4格式为点分十进制,IPv6格式为x:x:x:x:x:x:x:x,其中x是16位的十六进制值
  44083. char szSerialNo[48]; // 设备序列号
  44084. EM_GPS_SIGNAL_STRENGTH_TYPE emSignalStrength; // GPS 模块信号强度
  44085. EM_SELFCHECK_DATA_TYPE emDataType; // 事件数据类型
  44086. }NET_SELFCHECK_INFO;
  44087. ///@brief 回调函数
  44088. typedef void (CALLBACK *fMissionInfoCallBack)(LLONG lAttachHandle, DWORD dwType, void* pMissionInfo, void* pReserved, LDWORD dwUserData);
  44089. ///@brief 任务类型
  44090. typedef enum EM_MISSION_TYPE
  44091. {
  44092. NET_MISSION_TYPE_UNKOWN, // 未知
  44093. NET_MISSION_TYPE_SELFCHECK, // 设备自检,对应结构体 NET_SELFCHECK_INFO
  44094. }EM_MISSION_TYPE;
  44095. ///@brief CLIENT_AttachMission接口输入参数
  44096. typedef struct __NET_IN_ATTACH_MISSION_PARAM
  44097. {
  44098. DWORD dwSize;
  44099. EM_MISSION_TYPE emMissionType; // 任务类型
  44100. fMissionInfoCallBack cbMissionInfofunc; // 任务信息回调函数
  44101. LDWORD dwUser; // 用户数据
  44102. }NET_IN_ATTACH_MISSION_PARAM;
  44103. ///@brief CLIENT_DetachMission接口输出参数
  44104. typedef struct NET_OUT_ATTACH_MISSION_PARAM
  44105. {
  44106. DWORD dwSize;
  44107. LLONG lAttachHandle; // 订阅句柄
  44108. }NET_OUT_ATTACH_MISSION_PARAM;
  44109. #define MAX_EVENT_TO_CONFIRM_NUM 8 // 最大待确认的事件的个数
  44110. ///@brief 待确认的事件的信息
  44111. typedef struct tagNET_EVENT_INFO_TO_CONFIRM
  44112. {
  44113. DWORD dwSize;
  44114. DWORD dwEventType; // 事件类型, 对应CLIENT_AttachBusState接口的事件类型
  44115. NET_TIME stuTime; // 事件时间, UTC制
  44116. LONG lTime; // 事件时间, UTC制, 单位秒
  44117. }NET_EVENT_INFO_TO_CONFIRM;
  44118. ///@brief 车辆紧急报警确认 输入参数
  44119. typedef struct tagNET_IN_BUS_CONFIRM_EVENT
  44120. {
  44121. DWORD dwSize;
  44122. int nEvent; // 待确认事件的有效数目
  44123. NET_EVENT_INFO_TO_CONFIRM stuEventInfo[MAX_EVENT_TO_CONFIRM_NUM];// 待确认事件的信息
  44124. }NET_IN_BUS_CONFIRM_EVENT;
  44125. ///@brief 车辆紧急报警确认 输出参数
  44126. typedef struct tagNET_OUT_BUS_CONFIRM_EVENT
  44127. {
  44128. DWORD dwSize;
  44129. }NET_OUT_BUS_CONFIRM_EVENT;
  44130. ///@brief CLIENT_SetDevicePosition设置设备地址信息输入参数
  44131. typedef struct tagNET_IN_SET_DEVICE_POSITION
  44132. {
  44133. DWORD dwSize; // 本结构体大小, 初始化时必须填写
  44134. char szPosition[DH_COMMON_STRING_512]; // 地址信息
  44135. }NET_IN_SET_DEVICE_POSITION;
  44136. ///@brief CLIENT_SetDevicePosition设置设备地址信息输出参数
  44137. typedef struct tagNET_OUT_SET_DEVICE_POSITION
  44138. {
  44139. DWORD dwSize; // 本结构体大小, 初始化时必须填写
  44140. }NET_OUT_SET_DEVICE_POSITION;
  44141. ///@brief CLIENT_GetDevicePosition获取设备地址信息输入参数
  44142. typedef struct tagNET_IN_GET_DEVICE_POSITION
  44143. {
  44144. DWORD dwSize; // 本结构体大小, 初始化时必须填写
  44145. }NET_IN_GET_DEVICE_POSITION;
  44146. ///@brief CLIENT_GetDevicePosition获取设备地址信息输出参数
  44147. typedef struct tagNET_OUT_GET_DEVICE_POSITION
  44148. {
  44149. DWORD dwSize; // 本结构体大小, 初始化时必须填写
  44150. char szPosition[DH_COMMON_STRING_512]; // 地址信息
  44151. }NET_OUT_GET_DEVICE_POSITION;
  44152. ///@brief CLIENT_SnapPictureByEvent输入参数
  44153. typedef struct tagNET_IN_SNAP_BY_EVENT
  44154. {
  44155. DWORD dwSize; // 本结构体大小, 初始化时必须填写
  44156. int nChannel; // 视频通道号, 从0开始
  44157. DWORD dwEventID; // 参考CLIENT_RealLoadPicEx的事件类型
  44158. char szSerial[128]; // 抓图序列号
  44159. }NET_IN_SNAP_BY_EVENT;
  44160. ///@brief CLIENT_SnapPictureByEvent输出参数
  44161. typedef struct tagNET_OUT_SNAP_BY_EVENT
  44162. {
  44163. DWORD dwSize; // 本结构体大小, 初始化时必须填写
  44164. }NET_OUT_SNAP_BY_EVENT;
  44165. ///@brief CLIENT_StartQueryLog 输入参数
  44166. typedef struct tagNET_IN_START_QUERYLOG
  44167. {
  44168. DWORD dwSize;
  44169. DH_LOG_QUERY_TYPE emLogType; // 查询日志类型
  44170. NET_TIME stuStartTime; // 查询日志的开始时间
  44171. NET_TIME stuEndTime; // 查询日志的结束时间
  44172. BOOL bLogTypeExFlag; // 对emLogType进行扩展分类查询方式;TRUE 表明使用szLogTypeEx参数,FALSE使用emLogType
  44173. int nLogTypeExNum; // szLogTypeEx数组真实长度,最大64个
  44174. char szLogTypeEx[64][128]; // 报警主机日志类型扩展透传数组,如果需要查询的类型超过64个,则分组多次查询
  44175. EM_RESULT_ORDER_TYPE emResultOrder; // 查询结果排序方式
  44176. BOOL bSendByUTCTime; // 是否使用UTC时间
  44177. NET_TIME stuStartTimeRealUTC; // UTC查询开始时间
  44178. NET_TIME stuEndTimeRealUTC; // UTC查询结束时间
  44179. } NET_IN_START_QUERYLOG;
  44180. ///@brief CLIENT_StartQueryLog 输出参数
  44181. typedef struct tagNET_OUT_START_QUERYLOG
  44182. {
  44183. DWORD dwSize;
  44184. }NET_OUT_START_QUERYLOG;
  44185. ///@brief 日志详细信息
  44186. typedef struct tagNET_LOG_MESSAGE
  44187. {
  44188. DWORD dwSize;
  44189. char szLogMessage[DH_COMMON_STRING_1024]; // 日志内容
  44190. } NET_LOG_MESSAGE;
  44191. ///@brief 日志信息
  44192. typedef struct tagNET_LOG_INFO
  44193. {
  44194. DWORD dwSize;
  44195. NET_TIME stuTime; // 时间
  44196. char szUserName[DH_COMMON_STRING_32];// 操作者
  44197. char szLogType[DH_COMMON_STRING_128];// 类型
  44198. NET_LOG_MESSAGE stuLogMsg; // 日志信息
  44199. NET_TIME stuTimeRealUTC; // 记录UTC时间
  44200. } NET_LOG_INFO;
  44201. ///@brief CLIENT_QueryNextLog 输入参数
  44202. typedef struct tagNET_IN_QUERYNEXTLOG
  44203. {
  44204. DWORD dwSize;
  44205. int nGetCount; // 需要查询的日志条数
  44206. }NET_IN_QUERYNEXTLOG;
  44207. ///@brief CLIENT_QueryNextLog 输出参数
  44208. typedef struct tagNET_OUT_QUERYNEXTLOG
  44209. {
  44210. DWORD dwSize;
  44211. int nMaxCount; // 用户指定分配结构体个数,需大于等于NET_IN_GETNEXTLOG的nGetCount
  44212. NET_LOG_INFO* pstuLogInfo; // 返回日志信息,缓存大小由用户指定,大小为nMaxCount*sizeof(NET_LOG_INFO)
  44213. int nRetCount; // 实际返回日志条数
  44214. }NET_OUT_QUERYNEXTLOG;
  44215. ///@brief 异步注册设备回调函数原形(当nError返回11时,保留字段reserved为int类型参数且用于调用CLIENT_StartLoginEx登陆时的端口号)
  44216. // 当登入失败时: nError 的错误码对应的说明参考 CLIENT_Login 中的 error说明
  44217. typedef void (CALLBACK *fHaveLogin)(LLONG lLoginID, char *pchDVRIP, LONG nDVRPort, BOOL bOnline, NET_DEVICEINFO_Ex stuDeviceInfo, int nError, LDWORD dwUser, void *reserved);
  44218. ///@brief CLIENT_StartLoginEx 输入参数
  44219. typedef struct tagNET_IN_STARTLOGINEX
  44220. {
  44221. DWORD dwSize;
  44222. const char* szIp; // 设备ip
  44223. DWORD dwPort; // 登陆端口
  44224. const char* szName; // 用户名
  44225. const char* szPwd; // 密码
  44226. fHaveLogin cbLogin; // 登陆结果回调
  44227. LDWORD dwUser; // 回调用户参数
  44228. }NET_IN_STARTLOGINEX;
  44229. ///@brief CLIENT_StartLoginEx 输出参数
  44230. typedef struct tagNET_OUT_STARTLOGINEX
  44231. {
  44232. DWORD dwSize;
  44233. }NET_OUT_STARTLOGINEX;
  44234. ///@brief 设备支持的协议类型
  44235. typedef enum tagEM_DEV_PROTOCOL_TYPE
  44236. {
  44237. EM_DEV_PROTOCOL_UNKNOWN, // 未知
  44238. EM_DEV_PROTOCOL_V2, // 私有二代
  44239. EM_DEV_PROTOCOL_V3, // 私有三代
  44240. EM_DEV_PROTOCOL_ONVIF, // onvif
  44241. EM_DEV_PROTOCOL_GENERAL, // general
  44242. EM_DEV_PROTOCOL_GB28181, // 国标GB28181
  44243. EM_DEV_PROTOCOL_EHOME, // ehome 协议
  44244. EM_DEV_PROTOCOL_HIKVISION, // HK私有协议
  44245. EM_DEV_PROTOCOL_BSCP, // LX接入协议
  44246. EM_DEV_PROTOCOL_PRIVATE, // 私有
  44247. EM_DEV_PROTOCOL_RTSP, // RTSP
  44248. EM_DEV_PROTOCOL_HBGK, // HBGK
  44249. EM_DEV_PROTOCOL_LUAN, // LUAN
  44250. } EM_DEV_PROTOCOL_TYPE;
  44251. ///@brief 视频拼接操作类型
  44252. typedef enum tagNET_VIDEOJOIN_OPERATE_TYPE
  44253. {
  44254. NET_VIDEOJOIN_GET_STATUS, // 获取拼接状态, 对应 NET_IN_VIDEOJOIN_GET_STATUS 和 NET_OUT_VIDEOJOIN_GET_STATUS
  44255. NET_VIDEOJOIN_GET_CALIBRATE_POINTS, // 获取表定点, 对应 tagNET_IN_VIDEOJOIN_GET_CALIBRATE_POINTS 和 tagNET_OUT_VIDEOJOIN_GET_CALIBRATE_POINTS
  44256. NET_VIDEOJOIN_CALIBRATE, // 标定, 对应 NET_IN_VIDEOJOIN_CALIBRATE 和 NET_OUT_VIDEOJOIN_CALIBRATE
  44257. }NET_VIDEOJOIN_OPERATE_TYPE;
  44258. ///@brief 视频拼接状态
  44259. typedef enum tagNET_VIDEOJOIN_STATUS
  44260. {
  44261. NET_VIDEOJOIN_STATUS_UNKNOWN, // 未知
  44262. NET_VIDEOJOIN_STATUS_NOTSTART, // 未开始
  44263. NET_VIDEOJOIN_STATUS_DOING, // 进行中
  44264. NET_VIDEOJOIN_STATUS_FINISH, // 完成
  44265. }NET_VIDEOJOIN_STATUS;
  44266. ///@brief 视频拼接标定模式
  44267. typedef enum tagNET_VIDEOJOIN_MODE
  44268. {
  44269. NET_VIDEOJOIN_MODE_UNKNOWN, // 未知
  44270. NET_VIDEOJOIN_MODE_AUTO, // 自动
  44271. NET_VIDEOJOIN_MODE_MANUAL, // 手动
  44272. }NET_VIDEOJOIN_MODE;
  44273. ///@brief CLIENT_OperateVideoJoin 输入参数, 对应NET_VIDEOJOIN_GET_STATUS
  44274. typedef struct tagNET_IN_VIDEOJOIN_GET_STATUS
  44275. {
  44276. DWORD dwSize;
  44277. }NET_IN_VIDEOJOIN_GET_STATUS;
  44278. ///@brief CLIENT_OperateVideoJoin 输出参数, 对应NET_VIDEOJOIN_GET_STATUS
  44279. typedef struct tagNET_OUT_VIDEOJOIN_GET_STATUS
  44280. {
  44281. DWORD dwSize;
  44282. NET_VIDEOJOIN_STATUS emStatus; // 拼接状态
  44283. }NET_OUT_VIDEOJOIN_GET_STATUS;
  44284. ///@brief 相机标定点对, 表示一对坐标点
  44285. typedef struct tagNET_POINT_PAIR
  44286. {
  44287. DH_POINT stuPoints[POINT_NUM_IN_PAIR]; // 相机标定点
  44288. }NET_POINT_PAIR;
  44289. ///@brief 视频拼接标定点组, 每一组表示两个通道和多个标定点对
  44290. typedef struct tagNET_VIDEOJOIN_POINT_GROUP
  44291. {
  44292. DWORD dwSize;
  44293. int nPointPairNum; // 标定点数量
  44294. NET_POINT_PAIR stuPointPairs[MAX_POINT_PAIR_NUM]; // 标定点
  44295. int nChannels[CHANNEL_NUM_IN_POINT_GROUP]; // 视频通道号, 通过数据下标来对应,下标0通道对应NET_POINT_PAIR中下标0的点
  44296. }NET_VIDEOJOIN_POINT_GROUP;
  44297. ///@brief CLIENT_OperateVideoJoin 输入参数, 对应NET_VIDEOJOIN_GET_CALIBRATE_POINTS
  44298. typedef struct tagNET_IN_VIDEOJOIN_GET_CALIBRATE_POINTS
  44299. {
  44300. DWORD dwSize;
  44301. }NET_IN_VIDEOJOIN_GET_CALIBRATE_POINTS;
  44302. ///@brief CLIENT_OperateVideoJoin 输出参数, 对应NET_VIDEOJOIN_GET_CALIBRATE_POINTS
  44303. typedef struct tagNET_OUT_VIDEOJOIN_GET_CALIBRATE_POINTS
  44304. {
  44305. DWORD dwSize;
  44306. NET_VIDEOJOIN_MODE emMode; // 标定模式
  44307. int nPointGroupNum; // 标定点组数量
  44308. NET_VIDEOJOIN_POINT_GROUP stuPointGroups[MAX_POINT_GROUP_NUM]; // 标定点组, 手动模式下有效
  44309. }NET_OUT_VIDEOJOIN_GET_CALIBRATE_POINTS;
  44310. ///@brief CLIENT_OperateVideoJoin 输入参数, 对应NET_VIDEOJOIN_CALIBRATE
  44311. typedef struct tagNET_IN_VIDEOJOIN_CALIBRATE
  44312. {
  44313. DWORD dwSize;
  44314. NET_VIDEOJOIN_MODE emMode; // 标定模式
  44315. int nPointGroupNum; // 标定点组数量
  44316. NET_VIDEOJOIN_POINT_GROUP stuPointGroups[MAX_POINT_GROUP_NUM]; // 标定点组, 手动模式有效
  44317. }NET_IN_VIDEOJOIN_CALIBRATE;
  44318. ///@brief CLIENT_OperateVideoJoin 输出参数, 对应NET_VIDEOJOIN_CALIBRATE
  44319. typedef struct tagNET_OUT_VIDEOJOIN_CALIBRATE
  44320. {
  44321. DWORD dwSize;
  44322. }NET_OUT_VIDEOJOIN_CALIBRATE;
  44323. ///@brief 获取屏内窗口信息输入参数, 对应NET_SPLIT_OPERATE_GET_SCENE
  44324. typedef struct tagNET_IN_SPLIT_GET_SCENE
  44325. {
  44326. DWORD dwSize;
  44327. int nChannel; // 输出通道号或融合屏虚拟通道号, pszCompositeID为NULL时有效
  44328. const char* pszCompositeID; // 融合屏ID
  44329. }NET_IN_SPLIT_GET_SCENE;
  44330. ///@brief 获取屏内窗口信息输出参数, 对应NET_SPLIT_OPERATE_GET_SCENE
  44331. typedef struct tagNET_OUT_SPLIT_GET_SCENE
  44332. {
  44333. DWORD dwSize;
  44334. DH_SPLIT_SCENE stuScene; // 窗口信息
  44335. }NET_OUT_SPLIT_GET_SCENE;
  44336. ///@brief 电视墙轮巡状态
  44337. typedef enum tagEM_NET_WM_TOUR_STATUS
  44338. {
  44339. EM_NET_WM_TOUR_STATUS_UNKNOWN, // 未知
  44340. EM_NET_WM_TOUR_STATUS_START, // 轮巡中
  44341. EM_NET_WM_TOUR_STATUS_STOP, // 轮巡停止
  44342. } EM_NET_WM_TOUR_STATUS;
  44343. ///@brief 电视墙预案轮巡状态信息
  44344. typedef struct tagNET_WM_TOUR_STATUS_INFO
  44345. {
  44346. DWORD dwSize;
  44347. EM_NET_WM_TOUR_STATUS emStatus; // 轮巡状态
  44348. DH_MONITORWALL_SCENE stuScene; // 预案信息
  44349. } NET_WM_TOUR_STATUS_INFO;
  44350. ///@brief 电视墙预案轮巡状态回调函数原形, lAttachHandle是CLIENT_MonitorWallAttachTour的返回值
  44351. typedef void (CALLBACK *fMonitorWallTourStatusCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_WM_TOUR_STATUS_INFO* pstStatus, void* reserved, LDWORD dwUser);
  44352. ///@brief CLIENT_MonitorWallAttachTour 接口输入参数
  44353. typedef struct tagNET_IN_WM_ATTACH_TOUR
  44354. {
  44355. DWORD dwSize;
  44356. int nMonitorWallID; // 电视墙ID
  44357. fMonitorWallTourStatusCallBack cbStatus; // 轮巡状态回调函数
  44358. LDWORD dwUser; // 轮巡状态回调参数
  44359. } NET_IN_WM_ATTACH_TOUR;
  44360. ///@brief CLIENT_MonitorWallAttachTour 接口输出参数
  44361. typedef struct tagNET_OUT_WM_ATTACH_TOUR
  44362. {
  44363. DWORD dwSize;
  44364. } NET_OUT_WM_ATTACH_TOUR;
  44365. ///@brief CLIENT_SnapManagerConfirmUpload 接口输入参数
  44366. typedef struct tagNET_IN_SNAP_MANAGER_CONFIRM_UPLOAD
  44367. {
  44368. DWORD dwSize;
  44369. char szFilePath[DH_COMMON_STRING_256]; // 文件路径,用于唯一标识是哪一个图片
  44370. BOOL bResult; // 图片是否上传完成
  44371. }NET_IN_SNAP_MANAGER_CONFIRM_UPLOAD;
  44372. ///@brief CLIENT_SnapManagerConfirmUpload 接口输出参数
  44373. typedef struct tagNET_OUT_SNAP_MANAGER_CONFIRM_UPLOAD
  44374. {
  44375. DWORD dwSize;
  44376. }NET_OUT_SNAP_MANAGER_CONFIRM_UPLOAD;
  44377. ///@brief CLIENT_SnapManagerGetCaps 接口输入参数
  44378. typedef struct tagNET_IN_SNAP_MANAGER_GET_CAPS
  44379. {
  44380. DWORD dwSize;
  44381. }NET_IN_SNAP_MANAGER_GET_CAPS;
  44382. ///@brief 手动抓图能力
  44383. typedef struct tagNET_MANUAL_SNAPSHOT
  44384. {
  44385. BOOL bDeviceSnapshot; // 是否使用设备端抓图 true-设备端抓图,false-控件抓图, 无此能力使用控件抓图
  44386. char szReserved[128]; // 预留字节
  44387. }NET_MANUAL_SNAPSHOT;
  44388. ///@brief 离线重传能力
  44389. typedef struct tagNET_TRANSFER_OFFLINE
  44390. {
  44391. BOOL bEnable; // 是否支持离线重传 true: 支持 false: 不支持
  44392. UINT nMaxOfflines; // 支持的最大离线传输的客户端个数
  44393. char szReserved[128]; // 预留字节
  44394. }NET_TRANSFER_OFFLINE;
  44395. ///@brief 支持的加密算法
  44396. typedef enum tagEM_ALGORITHM_LIST
  44397. {
  44398. EM_ALGORITHM_LIST_UNKNOWN, // 未知
  44399. EM_ALGORITHM_LIST_AES256_OFB, // "AES256-OFB"
  44400. EM_ALGORITHM_LIST_SM1_OFB, // "SM1-OFB"
  44401. EM_ALGORITHM_LIST_SM4_OFB, // "SM4-OFB"
  44402. }EM_ALGORITHM_LIST;
  44403. ///@brief 图片加密上报
  44404. typedef struct tagNET_SUPPORT_ENCRYPT_NOTIFY
  44405. {
  44406. BOOL bEnable; // 是否支持图片加密上报 true: 支持 false: 不支持
  44407. int nAlgorithmListNum; // 支持的加密算法个数
  44408. EM_ALGORITHM_LIST emAlgorithmList[8]; // 支持的加密算法
  44409. char szReserved[128]; // 预留字节
  44410. }NET_SUPPORT_ENCRYPT_NOTIFY;
  44411. ///@brief 抓图能力集
  44412. typedef struct tagNET_SNAP_MANAGER_CAPS_INFO
  44413. {
  44414. BOOL bSupportSnapSchedule; // 是否支持抓图计划 true支持,false不支持。默认false
  44415. BOOL bSupportFtpPathMode; // 是否支持订阅图片时的PathMode同步异步模式 true-支持同步和异步模式,false或者无此字段-仅支持异步模式
  44416. BOOL bSupportFtpUpNoplate; // FTP手动上传是否支持无牌车过滤功能 true:支持 false:不支持
  44417. BOOL bSupportPicLocalURL; // 是否支持上报图片URL地址 true:支持 false:不支持
  44418. NET_MANUAL_SNAPSHOT stuManualSnapshot; // 手动抓图能力
  44419. NET_TRANSFER_OFFLINE stuTransferOffline; // 离线重传能力
  44420. NET_SUPPORT_ENCRYPT_NOTIFY stuSupportEncryptNotify; // 图片加密上报
  44421. char szReserved[128]; // 预留字节
  44422. }NET_SNAP_MANAGER_CAPS_INFO;
  44423. ///@brief CLIENT_SnapManagerGetCaps 接口输出参数
  44424. typedef struct tagNET_OUT_SNAP_MANAGER_GET_CAPS
  44425. {
  44426. DWORD dwSize;
  44427. NET_SNAP_MANAGER_CAPS_INFO stuCaps; // 抓图能力集
  44428. }NET_OUT_SNAP_MANAGER_GET_CAPS;
  44429. ///@brief CLIENT_SnapManagerStoragePicture 接口输入参数
  44430. typedef struct tagNET_IN_SNAP_MANAGER_STORAGE_PICTURE
  44431. {
  44432. DWORD dwSize;
  44433. int nChannel; // 通道号 -1 代码所有通道
  44434. BOOL bStorageWholePic; // 保存大图到存储设备 true 开启 false 关闭
  44435. }NET_IN_SNAP_MANAGER_STORAGE_PICTURE;
  44436. ///@brief CLIENT_SnapManagerStoragePicture 接口输出参数
  44437. typedef struct tagNET_OUT_SNAP_MANAGER_STORAGE_PICTURE
  44438. {
  44439. DWORD dwSize;
  44440. }NET_OUT_SNAP_MANAGER_STORAGE_PICTURE;
  44441. ///@brief 视频电话状态信息
  44442. typedef struct tagNET_VTP_CALL_STATE_INFO
  44443. {
  44444. DWORD dwSize;
  44445. char szNumber[DH_COMMON_STRING_128]; // 呼叫号码
  44446. char szCallID[DH_COMMON_STRING_128]; // 对讲唯一标识
  44447. EM_NET_VTP_CALL_STATE_TYPE emCallState; // 呼叫状态
  44448. }NET_VTP_CALL_STATE_INFO;
  44449. ///@brief 订阅视频电话状态信息回调函数原型
  44450. typedef void (CALLBACK *fVTPCallStateCallBack)(LLONG lAttachHandle, NET_VTP_CALL_STATE_INFO *pInfo, int nBufLen, LDWORD dwUser);
  44451. ///@brief 订阅视频电话状态信息 输入参数
  44452. typedef struct tagNET_IN_VTP_CALL_STATE_ATTACH
  44453. {
  44454. DWORD dwSize;
  44455. EM_NET_VTP_CALL_TYPE emCallType; // 待查询的呼叫类型
  44456. fVTPCallStateCallBack cbCallState; // 状态回调函数
  44457. LDWORD dwUser; // 用户参数
  44458. const char* szTargetID; // 待转发的设备ID, 为NULL表示不转发
  44459. }NET_IN_VTP_CALL_STATE_ATTACH;
  44460. ///@brief 订阅视频电话状态信息 输出参数
  44461. typedef struct tagNET_OUT_VTP_CALL_STATE_ATTACH
  44462. {
  44463. DWORD dwSize;
  44464. }NET_OUT_VTP_CALL_STATE_ATTACH;
  44465. //////////////////////////////////////////////////////////////////////
  44466. ///@brief 公交业务相关接口参数
  44467. //////////////////////////////////////////////////////////////////////
  44468. ///@brief 检查公交线路CLIENT_CheckBusLine()输入参数
  44469. typedef struct tagNET_IN_CHECK_BUS_LINE
  44470. {
  44471. DWORD dwSize;
  44472. char szLineID[DH_COMMON_STRING_32]; // 线路标示
  44473. char szDesignation[DH_COMMON_STRING_32]; // 线路番号
  44474. NET_LINE_DIRECTION emDirection; // 线路方向
  44475. int nSiteCount; // 线路总站数
  44476. char szDirectionName[DH_COMMON_STRING_32]; // 线路方向名称
  44477. char szVersion[DH_COMMON_STRING_32]; // 线路版本号
  44478. }NET_IN_CHECK_BUS_LINE;
  44479. ///@brief 公交线路是否需要更新状态类型
  44480. typedef enum tagNET_BUS_LINE_UPDATE_TYPE
  44481. {
  44482. NET_BUS_LINE_UPDATE_UNKNOWN = 0,
  44483. NET_BUS_LINE_UPDATE_UPDATED, // 需要更新
  44484. NET_BUS_LINE_UPDATE_NOT_UPDATED, // 不需要更新
  44485. }NET_BUS_LINE_UPDATE_TYPE;
  44486. ///@brief 检查公交线路CLIENT_CheckBusLine()输出参数
  44487. typedef struct tagNET_OUT_CHECK_BUS_LINE
  44488. {
  44489. DWORD dwSize;
  44490. char szDeviceID[DH_COMMON_STRING_32]; // 设备ID
  44491. char szLineID[DH_COMMON_STRING_32]; // 线路标示
  44492. NET_BUS_LINE_UPDATE_TYPE emUpdate; // 是否需要更新状态指示
  44493. }NET_OUT_CHECK_BUS_LINE;
  44494. #define MAX_SITE_GPS_POINT_NUM 64 // 描述一个公交站点最大GPS点个数
  44495. ///@brief 公交站点区域形状类型
  44496. typedef enum tagNET_SITE_AREA_TYPE
  44497. {
  44498. NET_SITE_AREA_ENCLOSURE = 0, // 围栏型
  44499. NET_SITE_AREA_CIRCLE, // 圆形
  44500. }NET_SITE_AREA_TYPE;
  44501. ///@brief 对应线路的拐点信息
  44502. typedef struct tagNET_FLEXION_INFO
  44503. {
  44504. int nLimitDistance; // 判断线路偏移的限制距离,单位:米
  44505. int nPointArrayNum; // 拐点的个数(用户设置的个数)
  44506. GPS_POINT stuPoint[MAX_SITE_GPS_POINT_NUM]; // 拐点信息
  44507. GPS_POINT *pStuPoint; // 拐点信息(超过64个拐点可以选择指针方式获取,最大支持512)
  44508. int nPointNum; // 下发拐点信息个数,内存由客户申请
  44509. int nLimitDuration; // 判断线路偏移超出限制距离的持续时间 单位秒
  44510. BYTE byReserved[1008]; // 预留字节
  44511. }NET_FLEXION_INFO;
  44512. ///@brief 公交站点信息
  44513. typedef struct tagNET_BUS_SITE_INFO
  44514. {
  44515. DWORD dwSize;
  44516. char szLineID[DH_COMMON_STRING_32]; // 线路标示
  44517. int nSiteCount; // 线路总站数
  44518. NET_LINE_DIRECTION emDirection; // 线路方向,不能填成NET_LINE_DIRECTION_UNKNOWN
  44519. int nStopSequence; // 站点序号
  44520. char szSiteID[DH_COMMON_STRING_32]; // 站点ID
  44521. char szSiteName[DH_COMMON_STRING_32]; // 站点名称
  44522. NET_SITE_AREA_TYPE emAreaType; // 站点区域类型
  44523. int nGPSPointNum; // 有效GPS点数
  44524. GPS_POINT stuPoint[MAX_SITE_GPS_POINT_NUM]; // 站点GPS信息
  44525. int nRadius; // 站点半径, 单位: 米, 仅圆形站点有效
  44526. int nSpeedLimit; // 站点限速, 单位: km/H
  44527. int nDriveTime; // 上已站到本站时间, 单位:分钟
  44528. int nTicketPrice; // 翻牌票价
  44529. DH_TSECT stuPowerSchedule[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 开机时间表, 第一维各元素表示周日~周六和节假日
  44530. char szDesignation[DH_COMMON_STRING_64]; // 线路番号
  44531. char szDirectionName[DH_COMMON_STRING_64]; // 线路方向名称
  44532. char szVersion[DH_COMMON_STRING_32];
  44533. BOOL bUseExName; // 是否使用扩展站点名称
  44534. char szSiteNameEx[DH_COMMON_STRING_128]; // 站点名称扩展, 长度变大
  44535. NET_FLEXION_INFO stuInflexionInfos; // 对应线路的拐点信息
  44536. DH_TSECT stuPowerScheduleEx[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM_EX]; // 准行时间段,扩展。每天的前6个时段在TimeSchedule设置,第6个时段开始在TimeScheduleEx设置。
  44537. }NET_BUS_SITE_INFO;
  44538. #define MAX_BUS_STOP_NUM 32 // 一条公交线路最大站点数目
  44539. ///@brief 下发公交线路CLIENT_DispatchBusLineInfo()接口输入参数
  44540. typedef struct tagNET_IN_DISPATCH_BUS_LINE_INFO
  44541. {
  44542. DWORD dwSize;
  44543. int nBusStopNum; // 公交线路站点个数
  44544. NET_BUS_SITE_INFO stuStopInfo[MAX_BUS_STOP_NUM]; // 公交线路信息
  44545. }NET_IN_DISPATCH_BUS_LINE_INFO;
  44546. ///@brief 下发公交线路CLIENT_DispatchBusLineInfo()接口输出参数
  44547. typedef struct tagNET_OUT_DISPATCH_BUS_LINE_INFO
  44548. {
  44549. DWORD dwSize;
  44550. }NET_OUT_DISPATCH_BUS_LINE_INFO;
  44551. ///@brief 下发公交线路CLIENT_DispatchBusLineInfoEx()接口输入参数
  44552. typedef struct tagNET_IN_DISPATCH_BUS_LINE_INFO_EX
  44553. {
  44554. DWORD dwSize;
  44555. int nBusStopNum; // 公交线路站点个数
  44556. NET_BUS_SITE_INFO *pstuStopInfo; // 公交线路信息,由用户申请内存,大小为sizeof(NET_BUS_SITE_INFO)*nBusStopNum
  44557. }NET_IN_DISPATCH_BUS_LINE_INFO_EX;
  44558. ///@brief 下发公交线路CLIENT_DispatchBusLineInfoEx()接口输出参数
  44559. typedef struct tagNET_OUT_DISPATCH_BUS_LINE_INFO_EX
  44560. {
  44561. DWORD dwSize;
  44562. }NET_OUT_DISPATCH_BUS_LINE_INFO_EX;
  44563. ///@brief 服务器地址参数
  44564. typedef struct tagNET_BUS_HTTPS_ADDRESS_INFO
  44565. {
  44566. char szIPAddress[64];
  44567. int nPort;
  44568. BYTE byReserved[956];
  44569. }NET_BUS_HTTPS_ADDRESS_INFO;
  44570. ///@brief 下发https服务器地址,供设备以https方式上报公交线路、报站信息 CLIENT_DispatchBusHttpsServers 接口输入参数
  44571. typedef struct tagNET_IN_DISPATCH_BUS_HTTPS_SERVERS_INFO
  44572. {
  44573. DWORD dwSize;
  44574. int nAddressNum; // 服务器地址个数
  44575. NET_BUS_HTTPS_ADDRESS_INFO stuAddress[4]; // 服务器地址参数
  44576. char szToken[128]; // https校验字段(目前32字符)
  44577. }NET_IN_DISPATCH_BUS_HTTPS_SERVERS_INFO;
  44578. ///@brief 下发https服务器地址,供设备以https方式上报公交线路、报站信息 CLIENT_DispatchBusHttpsServers 接口输出参数
  44579. typedef struct tagNET_OUT_DISPATCH_BUS_HTTPS_SERVERS_INFO
  44580. {
  44581. DWORD dwSize;
  44582. }NET_OUT_DISPATCH_BUS_HTTPS_SERVERS_INFO;
  44583. ///@brief 车辆运营调度CLIENT_BusSchedule()接口输入参数
  44584. typedef struct tagNET_IN_BUS_SCHEDULE_INFO
  44585. {
  44586. DWORD dwSize;
  44587. char szLineID[DH_COMMON_STRING_64]; // 运营线路标识
  44588. NET_LINE_DIRECTION emDirection; // 运营线路方向
  44589. NET_TIME_EX stuStartTime; // 发车时间
  44590. }NET_IN_BUS_SCHEDULE_INFO;
  44591. ///@brief 车辆运营调度CLIENT_BusSchedule()接口输出参数
  44592. typedef struct tagNET_OUT_BUS_SCHEDULE_INFO
  44593. {
  44594. DWORD dwSize;
  44595. }NET_OUT_BUS_SCHEDULE_INFO;
  44596. ///@brief 车辆排班计划信息
  44597. typedef struct tagNET_BUS_WORK_PLAN
  44598. {
  44599. DWORD dwSize;
  44600. char szID[DH_COMMON_STRING_32]; // 排班记录唯一标示, 最多16个字符
  44601. NET_TIME_EX stuTime; // 发车时间
  44602. char szDriverName[DH_COMMON_STRING_64]; // 司机名字
  44603. char szStartSite[DH_COMMON_STRING_64]; // 始发站名字
  44604. char szEndSite[DH_COMMON_STRING_64]; // 终点站名字
  44605. BOOL bRunning; // 运营状态, TRUE:运营, FALSE:停运
  44606. }NET_BUS_WORK_PLAN;
  44607. ///@brief 下发车辆排班计划CLIENT_DispatchWorkPlan接口输入参数
  44608. typedef struct tagNET_IN_BUS_DISPATCH_WORK_PLAN
  44609. {
  44610. DWORD dwSize;
  44611. NET_BUS_WORK_PLAN stuWorkPlan; // 车辆排班计划信息
  44612. }NET_IN_BUS_DISPATCH_WORK_PLAN;
  44613. ///@brief 下发车辆排班计划CLIENT_DispatchWorkPlan接口输出参数
  44614. typedef struct tagNET_OUT_BUS_DISPATCH_WORK_PLAN
  44615. {
  44616. DWORD dwSize;
  44617. }NET_OUT_BUS_DISPATCH_WORK_PLAN;
  44618. ///@brief 事件信息
  44619. typedef struct tagNET_DISPLAY_EVENT_INFO
  44620. {
  44621. int nChannel; // 通道号
  44622. char szPlateNumber[32]; // 车牌号
  44623. NET_TIME stuEventTime; // 事件时间
  44624. BYTE byReserved[452]; // 保留字节
  44625. }NET_DISPLAY_EVENT_INFO;
  44626. ///@brief 下发显示信息 CLIENT_DispatchDisplayInfo 接口输入参数
  44627. typedef struct tagNET_IN_DISPATCH_DISPLAY_INFO
  44628. {
  44629. DWORD dwSize;
  44630. char szText[256]; // 显示的文字信息
  44631. char szURL[256]; // 显示的图片地址
  44632. NET_DISPLAY_EVENT_INFO stuEventInfo; // 显示的事件信息
  44633. }NET_IN_DISPATCH_DISPLAY_INFO;
  44634. ///@brief 下发显示信息 CLIENT_DispatchDisplayInfo 接口输出参数
  44635. typedef struct tagNET_OUT_DISPATCH_DISPLAY_INFO
  44636. {
  44637. DWORD dwSize;
  44638. }NET_OUT_DISPATCH_DISPLAY_INFO;
  44639. ///@brief 热成像色彩
  44640. typedef enum tagNET_THERMO_COLORIZATION
  44641. {
  44642. NET_THERMO_COLORIZATION_UNKNOWN, // 未知
  44643. NET_THERMO_COLORIZATION_WHITE_HOT, // 白热
  44644. NET_THERMO_COLORIZATION_BLACK_HOT, // 黑热
  44645. NET_THERMO_COLORIZATION_IRONBOW2, // 铁虹2
  44646. NET_THERMO_COLORIZATION_ICEFIRE, // 冰火
  44647. NET_THERMO_COLORIZATION_FUSION, // 融合
  44648. NET_THERMO_COLORIZATION_RAINBOW, // 彩虹
  44649. NET_THERMO_COLORIZATION_GLOBOW, //
  44650. NET_THERMO_COLORIZATION_IRONBOW1, // 铁虹1
  44651. NET_THERMO_COLORIZATION_SEPIA, // 深褐
  44652. NET_THERMO_COLORIZATION_COLOR1, // 彩色1
  44653. NET_THERMO_COLORIZATION_COLOR2, // 彩色2
  44654. NET_THERMO_COLORIZATION_RAIN, // 雨天
  44655. NET_THERMO_COLORIZATION_RED_HOT, // 红热
  44656. NET_THERMO_COLORIZATION_GREEN_HOT, // 绿热
  44657. NET_THERMO_COLORIZATION_SPRING, // 春天
  44658. NET_THERMO_COLORIZATION_SUMMER, // 夏天
  44659. NET_THERMO_COLORIZATION_WINTER, // 冬天
  44660. NET_THERMO_COLORIZATION_AUTUMN, // 秋天
  44661. NET_THERMO_COLORIZATION_ALARM, // 伪彩
  44662. } NET_THERMO_COLORIZATION;
  44663. ///@brief 热成像感兴趣区域模式
  44664. typedef enum tagNET_THERMO_ROI
  44665. {
  44666. NET_THERMO_ROI_UNKNOWN, // 未知
  44667. NET_THERMO_ROI_FULL_SCREEN, // 全屏
  44668. NET_THERMO_ROI_SKY, // 顶部
  44669. NET_THERMO_ROI_GROUND, // 中部
  44670. NET_THERMO_ROI_HORIZONTAL, // 底部
  44671. NET_THERMO_ROI_CENTER_75, // 中心点 75%
  44672. NET_THERMO_ROI_CENTER_50, // 中心点 50%
  44673. NET_THERMO_ROI_CENTER_25, // 中心点 25%
  44674. NET_THERMO_ROI_CUSTOM, // 自定义
  44675. } NET_THERMO_ROI;
  44676. ///@brief 热成像模式
  44677. typedef enum tagNET_THERMO_MODE
  44678. {
  44679. NET_THERMO_MODE_UNKNOWN, // 未知
  44680. NET_THERMO_MODE_DEFAULT, // 默认
  44681. NET_THERMO_MODE_INDOOR, // 室内
  44682. NET_THERMO_MODE_OUTDOOR, // 室外
  44683. } NET_THERMO_MODE;
  44684. ///@brief 热成像优化区域
  44685. typedef struct tagNET_THERMO_GRAPHY_OPT_REGION
  44686. {
  44687. BOOL bOptimizedRegion; // 是否开启优化区域
  44688. int nOptimizedROIType; // 优化区域类型,见NET_THERMO_ROI
  44689. int nCustomRegion; // 自定义区域个数
  44690. NET_RECT stCustomRegions[64]; // 自定义区域,仅在 nOptimizedROIType 为 NET_THERMO_ROI_CUSTOM 时有效
  44691. char Reserved[256];
  44692. } NET_THERMO_GRAPHY_OPTREGION;
  44693. ///@brief 热成像信息
  44694. typedef struct tagNET_THERMO_GRAPHY_INFO
  44695. {
  44696. int nBrightness; // 亮度
  44697. int nSharpness; // 锐度
  44698. int nEZoom; // 倍数
  44699. int nThermographyGamma; // 伽马值
  44700. int nColorization; // 色彩,见NET_THERMO_COLORIZATION
  44701. int nSmartOptimizer; // 优化指数
  44702. NET_THERMO_GRAPHY_OPTREGION stOptRegion; // 优化区域
  44703. int nAgc; // 自动增益控制
  44704. int nAgcMaxGain; // 最大自动增益
  44705. int nAgcPlateau; // 增益均衡
  44706. char reserved[244];
  44707. } NET_THERMO_GRAPHY_INFO;
  44708. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_DEV_THERMO_GRAPHY_PRESET 命令入参
  44709. typedef struct tagNET_IN_THERMO_GET_PRESETINFO
  44710. {
  44711. DWORD dwSize;
  44712. int nChannel; // 通道号
  44713. NET_THERMO_MODE emMode; // 模式
  44714. } NET_IN_THERMO_GET_PRESETINFO;
  44715. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_DEV_THERMO_GRAPHY_PRESET 命令出参
  44716. typedef struct tagNET_OUT_THERMO_GET_PRESETINFO
  44717. {
  44718. DWORD dwSize;
  44719. NET_THERMO_GRAPHY_INFO stInfo; // 热成像信息
  44720. } NET_OUT_THERMO_GET_PRESETINFO;
  44721. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_DEV_THERMO_GRAPHY_EXTSYSINFO 命令入参
  44722. typedef struct tagNET_IN_THERMO_GET_EXTSYSINFO
  44723. {
  44724. DWORD dwSize;
  44725. int nChannel; // 通道号
  44726. } NET_IN_THERMO_GET_EXTSYSINFO;
  44727. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_LINKCHANNELS 命令入参
  44728. typedef struct tagNET_IN_GET_LINKCHANNELS
  44729. {
  44730. DWORD dwSize;
  44731. int nChannel; // 通道号,查询该视频通道号是否有关联的视频通道
  44732. } NET_IN_GET_LINKCHANNELS;
  44733. #define NET_LINKCHANNEL_MAX 512 // 最大关联的视频通道个数
  44734. #define NET_LINKGROUP_MAX 64 // 最大关联的视频通道组个数
  44735. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_LINKCHANNELS 命令出参
  44736. typedef struct tagNET_OUT_GET_LINKCHANNELS
  44737. {
  44738. DWORD dwSize;
  44739. int nLinkedCnt; // 关联的视频通道号个数
  44740. int nLinked[NET_LINKCHANNEL_MAX]; // 关联的视频通道号,包括请求通道号在内
  44741. } NET_OUT_GET_LINKCHANNELS;
  44742. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_ALLLINKCHANNELS 命令入参
  44743. typedef struct tagNET_IN_GET_ALLLINKCHANNELS
  44744. {
  44745. DWORD dwSize;
  44746. } NET_IN_GET_ALLLINKCHANNELS;
  44747. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_ALLLINKCHANNELS 命令出参
  44748. typedef struct tagNET_OUT_GET_ALLLINKCHANNELS
  44749. {
  44750. DWORD dwSize;
  44751. int nGroupCnt; // 关联的视频通道组个数
  44752. int nLinkedCnt[NET_LINKGROUP_MAX]; // 每组关联的视频通道号个数
  44753. int nLinked[NET_LINKGROUP_MAX][NET_LINKCHANNEL_MAX]; // 关联的视频通道号,包括请求通道号在内
  44754. // 第一维表示通道组,第二维表示通道号
  44755. // 例如,nLinked[1][2] 表示第二个通道组的第三个关联通道
  44756. } NET_OUT_GET_ALLLINKCHANNELS;
  44757. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_CAMERA_STATE 命令入参
  44758. typedef struct tagNET_IN_GET_CAMERA_STATEINFO
  44759. {
  44760. DWORD dwSize;
  44761. BOOL bGetAllFlag; // 是否查询所有摄像机状态,若该成员为 TRUE,则 nChannels 成员无需设置
  44762. int nValidNum; // 该成员,bGetAllFlag 为 FALSE时有效,表示 nChannels 成员有效个数
  44763. int nChannels[DH_MAX_CAMERA_CHANNEL_NUM]; // 该成员,bGetAllFlag 为 FALSE时有效,将需要查询的通道号依次填入
  44764. } NET_IN_GET_CAMERA_STATEINFO;
  44765. ///@brief 连接状态
  44766. typedef enum tagEM_CAMERA_STATE_TYPE
  44767. {
  44768. EM_CAMERA_STATE_TYPE_UNKNOWN, // 未知
  44769. EM_CAMERA_STATE_TYPE_CONNECTING, // 正在连接
  44770. EM_CAMERA_STATE_TYPE_CONNECTED, // 已连接
  44771. EM_CAMERA_STATE_TYPE_UNCONNECT, // 未连接
  44772. EM_CAMERA_STATE_TYPE_EMPTY, // 通道未配置,无信息
  44773. EM_CAMERA_STATE_TYPE_DISABLE, // 通道有配置,但被禁用
  44774. }EM_CAMERA_STATE_TYPE;
  44775. ///@brief 摄像机通道信息
  44776. typedef struct tagNET_CAMERA_STATE_INFO
  44777. {
  44778. int nChannel; // 摄像机通道号, -1表示通道号无效
  44779. EM_CAMERA_STATE_TYPE emConnectionState; // 连接状态
  44780. BOOL bCapsState; // 当前通道是否从前端获取到能力(可以用于表示模拟通道是否在线)
  44781. BOOL bIsCapsStateValid; // bCapsState是否有效
  44782. char szReserved[1016]; // 保留字节
  44783. }NET_CAMERA_STATE_INFO;
  44784. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_CAMERA_STATE 命令出参
  44785. typedef struct tagNET_OUT_GET_CAMERA_STATEINFO
  44786. {
  44787. DWORD dwSize;
  44788. int nValidNum; // 查询到的摄像机通道状态有效个数,由sdk返回
  44789. int nMaxNum; // pCameraStateInfo 数组最大个数,由用户填写
  44790. NET_CAMERA_STATE_INFO* pCameraStateInfo; // 摄像机通道信息数组,由用户分配,大小为sizeof(NET_CAMERA_STATE_INFO)*nMaxNum
  44791. } NET_OUT_GET_CAMERA_STATEINFO;
  44792. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_REMOTE_CHANNEL_AUDIO_ENCODE 命令入参
  44793. typedef struct tagNET_IN_GET_REMOTE_CHANNEL_AUDIO_ENCODEINFO
  44794. {
  44795. DWORD dwSize;
  44796. int nChannel; // 通道号 填-1可以获取设备自身音频对讲能力, 0-n代表对于通道音频对讲能力
  44797. int nStreamType; // 码流类型,0:主码流;1:辅码流1;2:辅码流2;3:辅码流3;4:对讲流
  44798. } NET_IN_GET_REMOTE_CHANNEL_AUDIO_ENCODEINFO;
  44799. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_REMOTE_CHANNEL_AUDIO_ENCODE 命令出参
  44800. typedef struct tagNET_OUT_GET_REMOTE_CHANNEL_AUDIO_ENCODEINFO
  44801. {
  44802. DWORD dwSize;
  44803. int nValidNum; // 有效音频编码个数
  44804. DHDEV_TALKDECODE_INFO stuListAudioEncode[MAX_AUDIO_ENCODE_NUM]; // 音频编码列表
  44805. } NET_OUT_GET_REMOTE_CHANNEL_AUDIO_ENCODEINFO;
  44806. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_COMM_PORT_INFO 命令入参
  44807. typedef struct tagNET_IN_GET_COMM_PORT_INFO
  44808. {
  44809. DWORD dwSize;
  44810. } NET_IN_GET_COMM_PORT_INFO;
  44811. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_COMM_PORT_INFO 命令出参
  44812. ///@brief 串口类型
  44813. typedef enum tagEM_COMM_PORT_TYPE_INFO
  44814. {
  44815. EM_COMM_PORT_TYPE_UNKNOW = 0 ,
  44816. EM_COMM_PORT_TYPE_RS232 ,
  44817. EM_COMM_PORT_TYPE_RS485 ,
  44818. EM_COMM_PORT_TYPE_RS422 ,
  44819. EM_COMM_PORT_TYPE_RS485_422 ,
  44820. }EM_COMM_PORT_TYPE_INFO;
  44821. ///@brief 串口信息
  44822. typedef struct tagNET_COMM_PORT_INFO
  44823. {
  44824. EM_COMM_PORT_TYPE_INFO emCommPortType; //串口类型
  44825. int nCommPortNum; //串口数量
  44826. BYTE bReserved[1024]; //保留字节
  44827. }NET_COMM_PORT_INFO;
  44828. #define MAX_COMM_PORT_NUM 8
  44829. ///@brief 获取设备串口信息
  44830. typedef struct tagNET_OUT_GET_COMM_PORT_INFO
  44831. {
  44832. DWORD dwSize;
  44833. int nPortInfosNum; //串口信息数
  44834. NET_COMM_PORT_INFO stCommPortInfos[MAX_COMM_PORT_NUM]; //串口信息
  44835. } NET_OUT_GET_COMM_PORT_INFO;
  44836. ///@brief 外部系统信息
  44837. typedef struct tagNET_THERMO_SYSINFO
  44838. {
  44839. char szSerialNumber[64]; // 序列号
  44840. char szSoftwareVersion[64]; // 软件版本
  44841. char szFirmwareVersion[64]; // 固件版本
  44842. char szLibVersion[64]; // 库版本
  44843. char reserved[256];
  44844. } NET_THERMO_SYSINFO;
  44845. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_DEV_THERMO_GRAPHY_EXTSYSINFO 命令出参
  44846. typedef struct tagNET_OUT_THERMO_GET_EXTSYSINFO
  44847. {
  44848. DWORD dwSize;
  44849. NET_THERMO_SYSINFO stInfo; // 外部系统信息
  44850. } NET_OUT_THERMO_GET_EXTSYSINFO;
  44851. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_DEV_THERMO_GRAPHY_OPTREGION 命令入参
  44852. typedef struct tagNET_IN_THERMO_GET_OPTREGION
  44853. {
  44854. DWORD dwSize;
  44855. int nChannel; // 通道号
  44856. } NET_IN_THERMO_GET_OPTREGION;
  44857. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_DEV_THERMO_GRAPHY_OPTREGION 命令出参
  44858. typedef struct tagNET_OUT_THERMO_GET_OPTREGION
  44859. {
  44860. DWORD dwSize;
  44861. NET_THERMO_GRAPHY_OPTREGION stInfo; // 优化区域信息
  44862. } NET_OUT_THERMO_GET_OPTREGION;
  44863. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_VIDEOOUTPUTCHANNELS 命令入参
  44864. typedef struct tagNET_IN_GET_VIDEOOUTPUTCHANNELS
  44865. {
  44866. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_IN_GET_VIDEOOUTPUTCHANNELS)
  44867. } NET_IN_GET_VIDEOOUTPUTCHANNELS;
  44868. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_VIDEOOUTPUTCHANNELS 命令出参
  44869. typedef struct tagNET_OUT_GET_VIDEOOUTPUTCHANNELS
  44870. {
  44871. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_OUT_GET_VIDEOOUTPUTCHANNELS)
  44872. int nMaxLocal; // 最大本地输出通道总数,含主板和可插拔子卡通道
  44873. } NET_OUT_GET_VIDEOOUTPUTCHANNELS;
  44874. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_VIDEOINFO 命令入参
  44875. typedef struct tagNET_IN_GET_VIDEOINFO
  44876. {
  44877. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_IN_GET_VIDEOINFO)
  44878. } NET_IN_GET_VIDEOINFO;
  44879. ///@brief 解码通道状态
  44880. typedef enum tagNET_VIDEOCHANNEL_STATE
  44881. {
  44882. NET_VIDEOCHANNEL_STATE_UNKNOWN, // 未知状态
  44883. NET_VIDEOCHANNEL_STATE_IDLE, // 空闲
  44884. NET_VIDEOCHANNEL_STATE_PLAY, // 播放
  44885. NET_VIDEOCHANNEL_STATE_MONITOR, // 预览
  44886. NET_VIDEOCHANNEL_STATE_TOUR, // 轮询
  44887. } NET_VIDEOCHANNEL_STATE;
  44888. ///@brief 解码通道信息
  44889. typedef struct tagNET_VIDEOCHANNELINFO
  44890. {
  44891. BOOL bEnable; // 通道使能状态, 状态为true时,GB28181协议会将这个通道上报服务器
  44892. NET_VIDEOCHANNEL_STATE emVideoChannelState; // 解码通道状态
  44893. int nNetflow; // 网络流量(单位:kbps)
  44894. int nBitrate; // 码率(单位:kbps)
  44895. int nFrame; // 帧率
  44896. CAPTURE_SIZE emResolution; // 分辨率
  44897. BYTE byReserved[512]; // 预留字节
  44898. } NET_VIDEOCHANNELINFO;
  44899. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_GET_VIDEOINFO 命令出参
  44900. typedef struct tagNET_OUT_GET_VIDEOINFO
  44901. {
  44902. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_OUT_GET_VIDEOINFO)
  44903. int nVideoInfoNum; // 用户需要获取的解码通道信息个数,从0开始获取,用户指定
  44904. NET_VIDEOCHANNELINFO* pNetVideoChannelInfo; // 解码通道信息列表,用户申请空间,用户申请列表个数和nVideoInfoNum一致,申请内存大小为sizeof(NET_VIDEOCHANNELINFO)*nVideoInfoNum
  44905. int nRetVideoInfoNum; // 返回实际获取到的解码通道信息个数,SDK返回
  44906. } NET_OUT_GET_VIDEOINFO;
  44907. ///@brief CLIENT_ControlDeviceEx 接口 NET_CTRL_DEV_THERMO_GRAPHY_ENSHUTTER 命令入参
  44908. typedef struct tagNET_IN_THERMO_EN_SHUTTER
  44909. {
  44910. DWORD dwSize;
  44911. int nChannel; // 通道号
  44912. BOOL bEnable; // 开关shutter,TRUE 开,FALSE 关
  44913. } NET_IN_THERMO_EN_SHUTTER;
  44914. ///@brief CLIENT_ControlDeviceEx 接口 NET_CTRL_DEV_THERMO_GRAPHY_ENSHUTTER 命令出参
  44915. typedef struct tagNET_OUT_THERMO_EN_SHUTTER
  44916. {
  44917. DWORD dwSize;
  44918. } NET_OUT_THERMO_EN_SHUTTER;
  44919. ///@brief CLIENT_ControlDeviceEx 接口 DH_CTRL_THERMO_DO_FFC 命令入参
  44920. typedef struct tagNET_IN_THERMO_DO_FFC
  44921. {
  44922. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_IN_THERMO_DO_FFC)
  44923. int nChannel; // 通道号(双目热成像相机填写热成像通道1);
  44924. } NET_IN_THERMO_DO_FFC;
  44925. ///@brief CLIENT_ControlDeviceEx 接口 DH_CTRL_THERMO_DO_FFC 命令出参
  44926. typedef struct tagNET_OUT_THERMO_DO_FFC
  44927. {
  44928. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_OUT_THERMO_DO_FFC)
  44929. } NET_OUT_THERMO_DO_FFC;
  44930. ///@brief CLIENT_ControlDeviceEx 接口 DH_CTRL_THERMO_FIX_FOCUS 命令入参(此方法只有在双目相机中才有效)
  44931. typedef struct tagNET_IN_THERMO_FIX_FOCUS
  44932. {
  44933. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_IN_THERMO_FIX_FOCUS)
  44934. int anLinkVideoChannel[2]; // 定焦关联通道([0]为可见光通道号0,[1]为热成像通道号1)
  44935. double dSpeed; // 聚焦速度,归一化到0~1(热成像通道有效)
  44936. } NET_IN_THERMO_FIX_FOCUS;
  44937. ///@brief CLIENT_ControlDeviceEx 接口 DH_CTRL_THERMO_FIX_FOCUS 命令出参(此方法只有在双目相机中才有效)
  44938. typedef struct tagNET_OUT_THERMO_FIX_FOCUS
  44939. {
  44940. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof(NET_OUT_THERMO_FIX_FOCUS)
  44941. } NET_OUT_THERMO_FIX_FOCUS;
  44942. ///@brief CLIENT_GetDevCaps 接口 NET_THERMO_GRAPHY_CAPS 命令入参
  44943. typedef struct tagNET_IN_THERMO_GETCAPS
  44944. {
  44945. DWORD dwSize;
  44946. int nChannel; // 通道号
  44947. } NET_IN_THERMO_GETCAPS;
  44948. ///@brief CLIENT_GetDevCaps 接口 NET_THERMO_GRAPHY_CAPS 命令出参
  44949. typedef struct tagNET_OUT_THERMO_GETCAPS
  44950. {
  44951. DWORD dwSize;
  44952. DWORD dwModes; // 支持的预置模式掩码
  44953. DWORD dwColorization; // 预置着色模式掩码 颜色依次如下,按位表示
  44954. // "White Hot"
  44955. // "Black Hot"
  44956. // "Fusion"
  44957. // "Rainbow"
  44958. // "Globow"
  44959. // "Ironbow1"
  44960. // "Ironbow2"
  44961. // "Sepia"
  44962. // "Color1"
  44963. // "Color2"
  44964. // "Icefire"
  44965. // "Rain"
  44966. // "Red Hot"
  44967. // "Green Hot"
  44968. // "Spring"
  44969. // "Summer"
  44970. // "Winter"
  44971. // "Autumn"
  44972. // "Alarm"
  44973. DWORD dwROIModes; // 预置感兴趣区域模式掩码
  44974. RANGE stBrightness; // 亮度相关能力
  44975. RANGE stSharpness; // 锐度相关能力
  44976. RANGE stEZoom; // 倍数相关能力
  44977. RANGE stThermographyGamma; // 伽马相关能力
  44978. RANGE stSmartOptimizer; // 优化参数相关能力
  44979. NET_FFCPERIOD_RANGE stFFCPeriod; // 平场聚焦校准相关能力
  44980. } NET_OUT_THERMO_GETCAPS;
  44981. ///@brief CLIENT_GetDevCaps 接口 NET_RADIOMETRY_CAPS 命令入参
  44982. typedef struct tagNET_IN_RADIOMETRY_GETCAPS
  44983. {
  44984. DWORD dwSize;
  44985. int nChannel; // 通道号
  44986. } NET_IN_RADIOMETRY_GETCAPS;
  44987. ///@brief 测温模式的类型
  44988. typedef enum tagNET_RADIOMETRY_METERTYPE
  44989. {
  44990. NET_RADIOMETRY_METERTYPE_UNKNOWN,
  44991. NET_RADIOMETRY_METERTYPE_SPOT, // 点
  44992. NET_RADIOMETRY_METERTYPE_LINE, // 线
  44993. NET_RADIOMETRY_METERTYPE_AREA, // 区域
  44994. } NET_RADIOMETRY_METERTYPE;
  44995. ///@brief 点,线,区域总个数能力
  44996. typedef struct tagNET_RADIOMETRY_TOTALNUM
  44997. {
  44998. DWORD dwMaxNum; // 最多支持个数
  44999. DWORD dwMaxSpots; // 最多点的个数
  45000. DWORD dwMaxLines; // 最多划线的条数
  45001. DWORD dwMaxAreas; // 最多区域的个数
  45002. char reserved[32];
  45003. } NET_RADIOMETRY_TOTALNUM;
  45004. ///@brief CLIENT_GetDevCaps 接口 NET_RADIOMETRY_CAPS 命令出参
  45005. typedef struct tagNET_OUT_RADIOMETRY_GETCAPS
  45006. {
  45007. DWORD dwSize;
  45008. NET_RADIOMETRY_TOTALNUM stTotalNum; // 点,线,区域总个数能力
  45009. DWORD dwMaxPresets; // 最多测温预置点的个数
  45010. DWORD dwMeterType; // 测温模式的类型掩码,见NET_RADIOMETRY_METERTYPE
  45011. RANGE stObjectEmissivity; // 辐射系数相关能力
  45012. RANGE stObjectDistance; // 距离相关能力
  45013. RANGE stReflectedTemperature; // 反射温度相关能力
  45014. RANGE stRelativeHumidity; // 相对湿度相关能力
  45015. RANGE stAtmosphericTemperature; // 大气温度相关能力
  45016. int nStatisticsMinPeriod; // 测温点统计功能最小存储数据间隔 单位为秒
  45017. float fIsothermMaxTemp; // 色标条最高的温度值
  45018. float fIsothermMinTemp; // 色标条最低的温度值
  45019. } NET_OUT_RADIOMETRY_GETCAPS;
  45020. ///@brief 测温信息
  45021. typedef struct tagNET_RADIOMETRYINFO
  45022. {
  45023. int nMeterType; // 返回测温类型,见NET_RADIOMETRY_METERTYPE
  45024. int nTemperUnit; // 温度单位(当前配置的温度单位),见 NET_TEMPERATURE_UNIT
  45025. float fTemperAver; // 点的温度或者平均温度 点的时候 只返回此字段
  45026. float fTemperMax; // 最高的温度
  45027. float fTemperMin; // 最低的温度
  45028. float fTemperMid; // 中间温度值
  45029. float fTemperStd; // 标准方差值
  45030. char reserved[64];
  45031. } NET_RADIOMETRYINFO;
  45032. ///@brief 获取测温项温度的条件
  45033. typedef struct tagNET_RADIOMETRY_CONDITION
  45034. {
  45035. int nPresetId; // 预置点编号
  45036. int nRuleId; // 规则编号
  45037. int nMeterType; // 测温项类别,见NET_RADIOMETRY_METERTYPE
  45038. char szName[64]; // 测温项的名称,从测温配置规则名字中选取
  45039. int nChannel; // 通道号
  45040. char reserved[256];
  45041. } NET_RADIOMETRY_CONDITION;
  45042. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_DEV_RADIOMETRY_POINT_TEMPER 命令入参
  45043. typedef struct tagNET_IN_RADIOMETRY_GETPOINTTEMPER
  45044. {
  45045. DWORD dwSize;
  45046. int nChannel; // 通道号
  45047. DH_POINT stCoordinate; // 测温点的坐标,坐标值 0~8191
  45048. } NET_IN_RADIOMETRY_GETPOINTTEMPER;
  45049. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_DEV_RADIOMETRY_POINT_TEMPER 命令出参
  45050. typedef struct tagNET_OUT_RADIOMETRY_GETPOINTTEMPER
  45051. {
  45052. DWORD dwSize;
  45053. NET_RADIOMETRYINFO stPointTempInfo; // 获取测温点的参数值
  45054. } NET_OUT_RADIOMETRY_GETPOINTTEMPER;
  45055. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_DEV_RADIOMETRY_TEMPER 命令入参
  45056. typedef struct tagNET_IN_RADIOMETRY_GETTEMPER
  45057. {
  45058. DWORD dwSize;
  45059. NET_RADIOMETRY_CONDITION stCondition; // 获取测温项温度的条件
  45060. } NET_IN_RADIOMETRY_GETTEMPER;
  45061. ///@brief CLIENT_QueryDevInfo 接口 NET_QUERY_DEV_RADIOMETRY_TEMPER 命令出参
  45062. typedef struct tagNET_OUT_RADIOMETRY_GETTEMPER
  45063. {
  45064. DWORD dwSize;
  45065. NET_RADIOMETRYINFO stTempInfo; // 获取测温参数值
  45066. } NET_OUT_RADIOMETRY_GETTEMPER;
  45067. ///@brief CLIENT_ControlDeviceEx 接口 NET_CTRL_DEV_RADIOMETRY_SETOSDMARK 命令入参
  45068. typedef struct tagNET_IN_RADIOMETRY_SETOSDMARK
  45069. {
  45070. DWORD dwSize;
  45071. NET_RADIOMETRY_CONDITION stCondition; // 需要设置 osd 的测温项的匹配条件
  45072. } NET_IN_RADIOMETRY_SETOSDMARK;
  45073. ///@brief CLIENT_ControlDeviceEx 接口 NET_CTRL_DEV_RADIOMETRY_SETOSDMARK 命令出参
  45074. typedef struct tagNET_OUT_RADIOMETRY_SETOSDMARK
  45075. {
  45076. DWORD dwSize;
  45077. } NET_OUT_RADIOMETRY_SETOSDMARK;
  45078. ///@brief 热成像查询保存周期
  45079. typedef enum tagEM_RADIOMETRY_PERIOD
  45080. {
  45081. EM_RADIOMETRY_PERIOD_UNKNOWN, // 未知
  45082. EM_RADIOMETRY_PERIOD_5 = 5, // 5分钟记录表,默认
  45083. EM_RADIOMETRY_PERIOD_10 = 10, // 10分钟记录表
  45084. EM_RADIOMETRY_PERIOD_15 = 15, // 15分钟记录表
  45085. EM_RADIOMETRY_PERIOD_30 = 30, // 30分钟记录表
  45086. }EM_RADIOMETRY_PERIOD;
  45087. ///@brief CLIENT_StartFind 接口 NET_FIND_RADIOMETRY 命令入参
  45088. typedef struct tagNET_IN_RADIOMETRY_STARTFIND
  45089. {
  45090. DWORD dwSize;
  45091. NET_TIME stStartTime; // 查询开始时间
  45092. NET_TIME stEndTime; // 查询结束时间
  45093. int nMeterType; // 查询类别,见枚举NET_RADIOMETRY_METERTYPE
  45094. int nChannel; // 通道号
  45095. EM_RADIOMETRY_PERIOD emPeriod; // 所查询表的保存周期
  45096. } NET_IN_RADIOMETRY_STARTFIND;
  45097. ///@brief CLIENT_StartFind 接口 NET_FIND_RADIOMETRY 命令出参
  45098. typedef struct tagNET_OUT_RADIOMETRY_STARTFIND
  45099. {
  45100. DWORD dwSize;
  45101. int nFinderHanle; // 取到的查询句柄
  45102. int nTotalCount; // 符合此次查询条件的结果总条数
  45103. } NET_OUT_RADIOMETRY_STARTFIND;
  45104. #define NET_RADIOMETRY_DOFIND_MAX 32
  45105. ///@brief CLIENT_DoFind 接口 NET_FIND_RADIOMETRY 命令入参
  45106. typedef struct tagNET_IN_RADIOMETRY_DOFIND
  45107. {
  45108. DWORD dwSize;
  45109. int nFinderHanle; // 查询句柄
  45110. int nBeginNumber; // 本次查询开始的索引号
  45111. int nCount; // 本次查询条数,最大为NET_IN_RADIOMETRY_DOFIND_MAX
  45112. } NET_IN_RADIOMETRY_DOFIND;
  45113. ///@brief 返回查询结果
  45114. typedef struct tagNET_RADIOMETRY_QUERY
  45115. {
  45116. NET_TIME stTime; // 记录时间
  45117. int nPresetId; // 预置点编号
  45118. int nRuleId; // 规则编号
  45119. char szName[64]; // 查询项名称
  45120. DH_POINT stCoordinate; // 查询测温点坐标(推荐 stCoordinates)
  45121. int nChannel; // 通道号
  45122. NET_RADIOMETRYINFO stTemperInfo; // 测温信息,目前nTemperMid, nTemperStd 成员无效
  45123. DH_POINT stCoordinates[8]; // 查询测温点坐标
  45124. int nCoordinateNum; // 查询温度点坐标返回的个数
  45125. char reserved[220];
  45126. } NET_RADIOMETRY_QUERY;
  45127. ///@brief CLIENT_DoFind 接口 NET_FIND_RADIOMETRY 命令出参
  45128. typedef struct tagNET_OUT_RADIOMETRY_DOFIND
  45129. {
  45130. DWORD dwSize;
  45131. int nFound; // 实际查询到的点数
  45132. NET_RADIOMETRY_QUERY stInfo[NET_RADIOMETRY_DOFIND_MAX]; // 温度统计信息
  45133. } NET_OUT_RADIOMETRY_DOFIND;
  45134. ///@brief CLIENT_StopFind 接口 NET_FIND_RADIOMETRY 命令入参
  45135. typedef struct tagNET_IN_RADIOMETRY_STOPFIND
  45136. {
  45137. DWORD dwSize;
  45138. int nFinderHanle; // 查询句柄
  45139. } NET_IN_RADIOMETRY_STOPFIND;
  45140. ///@brief CLIENT_StopFind 接口 NET_FIND_RADIOMETRY 命令出参
  45141. typedef struct tagNET_OUT_RADIOMETRY_STOPFIND
  45142. {
  45143. DWORD dwSize;
  45144. } NET_OUT_RADIOMETRY_STOPFIND;
  45145. ///@brief 热成像测温点报警结果值类型
  45146. typedef enum tagNET_RADIOMETRY_RESULT
  45147. {
  45148. NET_RADIOMETRY_RESULT_UNKNOWN,
  45149. NET_RADIOMETRY_RESULT_VAL, // 具体值
  45150. NET_RADIOMETRY_RESULT_MAX, // 最大
  45151. NET_RADIOMETRY_RESULT_MIN, // 最小
  45152. NET_RADIOMETRY_RESULT_AVR, // 平均
  45153. NET_RADIOMETRY_RESULT_STD, // 标准
  45154. NET_RADIOMETRY_RESULT_MID, // 中间
  45155. NET_RADIOMETRY_RESULT_ISO, // ISO
  45156. NET_RADIOMETRY_RESULT_DIFF, // 温差
  45157. NET_RADIOMETRY_RESULT_SLOPE, // 斜率
  45158. } NET_RADIOMETRY_RESULT;
  45159. ///@brief 热成像测温点报警条件
  45160. typedef enum tagNET_RADIOMETRY_ALARMCONTION
  45161. {
  45162. NET_RADIOMETRY_ALARMCONTION_UNKNOWN,
  45163. NET_RADIOMETRY_ALARMCONTION_BELOW, // 小于
  45164. NET_RADIOMETRY_ALARMCONTION_MATCH, // 等于
  45165. NET_RADIOMETRY_ALARMCONTION_ABOVE, // 大于
  45166. } NET_RADIOMETRY_ALARMCONTION;
  45167. ///@brief 热成像测温点温度异常报警
  45168. typedef struct tagALARM_HEATIMG_TEMPER_INFO
  45169. {
  45170. char szName[64]; // 温度异常点名称 从测温规则配置项中选择
  45171. int nAlarmId; // 报警项编号
  45172. int nResult; // 报警结果值 fTemperatureValue 的类型,见枚举 NET_RADIOMETRY_RESULT
  45173. int nAlarmContion; // 报警条件,见枚举 NET_RADIOMETRY_ALARMCONTION
  45174. float fTemperatureValue; // 报警温度值
  45175. int nTemperatureUnit; // 温度单位(当前配置的温度单位),见 NET_TEMPERATURE_UNIT
  45176. DH_POINT stCoordinate; // 报警点的坐标 相对坐标体系,取值均为0~8191
  45177. int nPresetID; // 预置点
  45178. int nChannel; // 通道号
  45179. int nAction; // 0:开始 1:停止 -1:无意义
  45180. DH_POLY_POINTS stuAlarmCoordinates; // 报警坐标, 其类型可以是点,线或多边形。替换stCoordinate字段
  45181. double dTemperatureMaxValue; // 报警最高的温度值
  45182. double dTemperatureMinValue; // 报警最低的温度值
  45183. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  45184. char reserved[140];
  45185. } ALARM_HEATIMG_TEMPER_INFO;
  45186. ///@brief 热成像着火点报警
  45187. typedef struct tagALARM_FIREWARNING_INFO
  45188. {
  45189. int nPresetId; // 该字段废弃,请由DH_ALARM_FIREWARNING_INFO事件获取此信息
  45190. int nState; // 0 - 开始,1 - 结束,-1:无意义
  45191. DH_RECT stBoundingBox; // 该字段废弃,请由DH_ALARM_FIREWARNING_INFO事件获取此信息
  45192. int nTemperatureUnit; // 该字段废弃,请由DH_ALARM_FIREWARNING_INFO事件获取此信息
  45193. float fTemperature; // 该字段废弃,请由DH_ALARM_FIREWARNING_INFO事件获取此信息
  45194. unsigned int nDistance; // 该字段废弃,请由DH_ALARM_FIREWARNING_INFO事件获取此信息
  45195. GPS_POINT stGpsPoint; // 该字段废弃,请由DH_ALARM_FIREWARNING_INFO事件获取此信息
  45196. int nChannel; // 对应视频通道号
  45197. BOOL bIsLeaveFireDetect; // 是否属于离岗火点检测(TRUE:是 FALSE:不是)
  45198. char reserved[248];
  45199. } ALARM_FIREWARNING_INFO;
  45200. ///@brief 云台控制坐标单元
  45201. typedef struct tagPTZ_POSITION_UNIT
  45202. {
  45203. int nPositionX; // 云台水平方向角度,范围[0,3599],表示0度到359.9度,度数扩大10倍表示
  45204. int nPositionY; // 云台垂直方向角度,范围[-1800,1800],表示-180.0度到+180.0度,度数扩大10倍表示
  45205. int nZoom; // 云台光圈放大倍率,范围[0,127],表示最小倍到最大倍的变倍位置
  45206. char szReserve[32]; // 预留32字节
  45207. }PTZ_POSITION_UNIT;
  45208. ///@brief 着火点的GPS坐标
  45209. typedef struct tagNET_FIRING_GPS_INFO
  45210. {
  45211. DWORD dwLongitude; // 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
  45212. DWORD dwLatidude; // 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
  45213. double dbAltitude; // 高度, 单位为米
  45214. char szReserve[32]; // 预留32字节
  45215. } NET_FIRING_GPS_INFO;
  45216. ///@brief 报警框所属位置
  45217. typedef enum tagEM_FIRE_TYPE
  45218. {
  45219. EM_FIRE_TYPE_UNKNOWN = -1, // 位置未知
  45220. EM_FIRE_TYPE_DETECT_AREA, // 报警框所属检测区
  45221. EM_FIRE_TYPE_NO_DETECT_AREA, // 报警框所属非检测区
  45222. EM_FIRE_TYPE_DETECT_AREA_ALL, // 检测区和检测区同时存在
  45223. }EM_FIRE_TYPE;
  45224. ///@brief 热成像火情事件信息
  45225. typedef struct tagNET_FIREWARNING_INFO
  45226. {
  45227. int nPresetId; // 预置点编号 从测温规则配置CFG_RADIOMETRY_RULE_INFO中选择
  45228. NET_RECT stuBoundingBox; // 着火点矩形框
  45229. int nTemperatureUnit; // 温度单位(当前配置的温度单位),见 NET_TEMPERATURE_UNIT
  45230. float fTemperature; // 最高点温度值 同帧检测和差分检测提供
  45231. UINT nDistance; // 着火点距离,单位米 0表示无效
  45232. GPS_POINT stuGpsPoint; // 着火点经纬度
  45233. PTZ_POSITION_UNIT stuPTZPosition; // 云台运行信息
  45234. float fAltitude; // 高度(单位:米)
  45235. UINT nThermoHFOV; // Uint32 热成像横向视角
  45236. UINT nThermoVFOV; // Uint32 热成像纵向视角
  45237. UINT nFSID; // Uint32 火情编号ID
  45238. NET_FIRING_GPS_INFO stuFiringGPS; // 着火点的GPS坐标
  45239. EM_FIRE_TYPE emFireType; // 报警框所属位置
  45240. BYTE reserved[144];
  45241. }NET_FIREWARNING_INFO;
  45242. ///@brief 热成像火情事件信息上报事件
  45243. typedef struct tagALARM_FIREWARNING_INFO_DETAIL
  45244. {
  45245. int nChannel; // 对应视频通道号
  45246. int nWarningInfoCount; // 报警信息个数
  45247. NET_FIREWARNING_INFO stuFireWarningInfo[MAX_FIREWARNING_INFO_NUM]; // 具体报警信息
  45248. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  45249. BYTE reserved[256];
  45250. }ALARM_FIREWARNING_INFO_DETAIL;
  45251. ///@brief 热成像温度预警事件
  45252. typedef struct tagALARM_FACE_OVERHEATING_INFO
  45253. {
  45254. int nRelativeId; // 目标图片ID,与 NET_FACE_INFO->nRelativeID相同
  45255. int nTemperatureUnit; // 温度单位(当前配置的温度单位),见 NET_TEMPERATURE_UNIT
  45256. float fTemperature; // 温度值
  45257. int nChannelID; // 视频通道
  45258. BYTE reserved[124];
  45259. }ALARM_FACE_OVERHEATING_INFO;
  45260. ///@brief 探测器状态
  45261. typedef enum tagEM_SENSOR_ABNORMAL_STATUS
  45262. {
  45263. NET_SENSOR_ABNORMAL_STATUS_UNKNOWN,
  45264. NET_SENSOR_ABNORMAL_STATUS_SHORT, // 短路
  45265. NET_SENSOR_ABNORMAL_STATUS_BREAK, // 断路
  45266. NET_SENSOR_ABNORMAL_STATUS_INTRIDED, // 被拆开
  45267. NET_SENSOR_ABNORMAL_STATUS_MASK, // 防遮挡
  45268. NET_SENSOR_ABNORMAL_STATUS_NORMAL, // 正常
  45269. NET_SENSOR_ABNORMAL_STATUS_OFFLINE, // 离线
  45270. NET_SENSOR_ABNORMAL_STATUS_ALARM, // 报警
  45271. NET_SENSOR_ABNORMAL_STATUS_FAULT, // 故障
  45272. } EM_SENSOR_ABNORMAL_STATUS;
  45273. ///@brief 事件类型(DH_ALARM_SENSOR_ABNORMAL) 探测器状态异常报警
  45274. typedef struct tagALARM_SENSOR_ABNORMAL_INFO
  45275. {
  45276. int nAction; // 0:开始 1:停止
  45277. int nChannelID; // 视频通道号
  45278. NET_TIME_EX stuTime; // 事件发生的时间
  45279. EM_SENSOR_ABNORMAL_STATUS emStatus; // 探测器状态
  45280. NET_SENSE_METHOD emSenseMethod; // SenseMethod, 感应方式,参见具体枚举定义
  45281. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  45282. BYTE byReserved[124]; // 预留字段
  45283. }ALARM_SENSOR_ABNORMAL_INFO;
  45284. ///@brief 热图元数据信息
  45285. typedef struct tagNET_RADIOMETRY_METADATA
  45286. {
  45287. int nHeight; // 高
  45288. int nWidth; // 宽
  45289. int nChannel; // 通道
  45290. NET_TIME stTime; // 获取数据时间
  45291. int nLength; // 数据大小
  45292. char szSensorType[64]; // 机芯类型
  45293. int nUnzipParamR; // 解压缩参数R
  45294. int nUnzipParamB; // 解压缩参数B
  45295. int nUnzipParamF; // 解压缩参数F
  45296. int nUnzipParamO; // 解压缩参数O
  45297. char Reserved[256];
  45298. } NET_RADIOMETRY_METADATA;
  45299. ///@brief 热图数据
  45300. typedef struct tagNET_RADIOMETRY_DATA
  45301. {
  45302. NET_RADIOMETRY_METADATA stMetaData; // 元数据
  45303. BYTE* pbDataBuf; // 热图数据缓冲区(压缩过的数据,里面是每个像素点的温度数据,可以使用元数据信息解压)
  45304. DWORD dwBufSize; // 热图数据缓冲区大小
  45305. char reserved[512];
  45306. } NET_RADIOMETRY_DATA;
  45307. ///@brief 温度分布数据状态回调函数
  45308. ///@param[out] LLONG lAttachHandle [OUT] 订阅句柄, CLIENT_RadiometryAttach 的返回值
  45309. ///@param[out] NET_RADIOMETRY_DATA* pBuf [OUT] 热图数据信息
  45310. ///@param[out] int nBufLen [OUT] 状态信息长度
  45311. ///@param[out] LDWORD dwUser 用户数据
  45312. ///@return 无
  45313. typedef void (CALLBACK *fRadiometryAttachCB)(LLONG lAttachHandle, NET_RADIOMETRY_DATA* pBuf, int nBufLen, LDWORD dwUser);
  45314. ///@brief CLIENT_RadiometryAttach 入参
  45315. typedef struct tagNET_IN_RADIOMETRY_ATTACH
  45316. {
  45317. DWORD dwSize;
  45318. int nChannel; // 视频通道号 -1 表示全部
  45319. fRadiometryAttachCB cbNotify; // 状态回调函数指针
  45320. LDWORD dwUser; // 用户数据
  45321. } NET_IN_RADIOMETRY_ATTACH;
  45322. ///@brief CLIENT_RadiometryAttach 出参
  45323. typedef struct tagNET_OUT_RADIOMETRY_ATTACH
  45324. {
  45325. DWORD dwSize;
  45326. } NET_OUT_RADIOMETRY_ATTACH;
  45327. ///@brief 订阅温度分布数据(热图),pInParam与pOutParam内存由用户申请释放
  45328. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RadiometryAttach(LLONG lLoginID, const NET_IN_RADIOMETRY_ATTACH* pInParam, NET_OUT_RADIOMETRY_ATTACH* pOutParam, int nWaitTime);
  45329. ///@brief 取消订阅温度分布数据,lAttachHandle是 CLIENT_RadiometryAttach 的返回值
  45330. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RadiometryDetach(LLONG lAttachHandle);
  45331. ///@brief CLIENT_RadiometryFetch 入参
  45332. typedef struct tagNET_IN_RADIOMETRY_FETCH
  45333. {
  45334. DWORD dwSize;
  45335. int nChannel; // 通道号, 通道号要与订阅时一致, -1除外
  45336. } NET_IN_RADIOMETRY_FETCH;
  45337. ///@brief CLIENT_RadiometryFetch 出参
  45338. typedef struct tagNET_OUT_RADIOMETRY_FETCH
  45339. {
  45340. DWORD dwSize;
  45341. int nStatus; // 0: 未知, 1: 空闲, 2: 获取热图中
  45342. } NET_OUT_RADIOMETRY_FETCH;
  45343. ///@brief 通知开始获取热图数据,pInParam与pOutParam内存由用户申请释放
  45344. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RadiometryFetch(LLONG lLoginID, const NET_IN_RADIOMETRY_FETCH* pInParam, NET_OUT_RADIOMETRY_FETCH* pOutParam, int nWaitTime);
  45345. ///@brief CLIENT_GetHeatMapsDirectly 入参
  45346. typedef struct tagNET_IN_GET_HEATMAPS_INFO
  45347. {
  45348. DWORD dwSize;
  45349. int nChannel; // 通道号
  45350. } NET_IN_GET_HEATMAPS_INFO;
  45351. ///@brief CLIENT_GetHeatMapsDirectly 出参
  45352. typedef struct tagNET_OUT_GET_HEATMAPS_INFO
  45353. {
  45354. DWORD dwSize;
  45355. NET_RADIOMETRY_METADATA stMetaData; // 元数据
  45356. DWORD dwMaxDataBufLen; // 热图数据缓存区 pbDataBuf 的大小, 由用户指定
  45357. BYTE *pbDataBuf; // 热图数据缓冲区(压缩过的数据,里面是每个像素点的温度数据,可以使用元数据信息解压),需要用户分配空间
  45358. DWORD dwRetDataBufLen; // 缓存区中返回的实际文件数据大小
  45359. BYTE byReserved[4]; // 字节对齐
  45360. } NET_OUT_GET_HEATMAPS_INFO;
  45361. ///@brief 获取热图数据
  45362. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetHeatMapsDirectly(LLONG lLoginID, const NET_IN_GET_HEATMAPS_INFO* pInParam, NET_OUT_GET_HEATMAPS_INFO* pOutParam, int nWaitTime);
  45363. ///@brief 热图数据解压与转换接口
  45364. ///@param[in]pRadiometryData [IN] 热图数据, 由 fRadiometryAttachCB 获得
  45365. ///@param[out]pGrayImg [IN, OUT] 解压后的数据,是一张灰度图,
  45366. // 传空指针表示不需要此数据
  45367. // 用户需保证传入的缓冲区足够大(不小于 图像像素数*sizeof(unsigned short))
  45368. // 每个像素对应一个 unsigned short 型数据,表示图像某个像素的热成像灰度(范围 0 ~ 16383),
  45369. // 低地址对应画面左上角,高地址对应画面右下角
  45370. ///@param[out] pTempForPixels [IN, OUT] 每个像素的温度数据
  45371. // 不能传空指针,否则,返回失败
  45372. // 用户需保证传入的缓冲区足够大(不小于 图像像素数*sizeof(float))
  45373. // 每个像素对应一个 float 型数据,表示该像素位置的摄氏温度
  45374. // 低地址对应画面左上角,高地址对应画面右下角
  45375. ///@return TRUE 成功,FALSE 失败
  45376. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RadiometryDataParse(const NET_RADIOMETRY_DATA* pRadiometryData, unsigned short* pGrayImg, float* pTempForPixels);
  45377. ///@brief CLIENT_GetRadiometryYImage 入参
  45378. typedef struct tagNET_IN_RADIOMETRY_Y_IMAGE
  45379. {
  45380. DWORD dwSize;
  45381. int nChannel; // 通道号
  45382. }NET_IN_RADIOMETRY_Y_IMAGE;
  45383. ///@brief CLIENT_GetRadiometryYImage 出参
  45384. typedef struct tagNET_OUT_RADIOMETRY_Y_IMAGE
  45385. {
  45386. DWORD dwSize;
  45387. UINT nWidth; // 图像宽
  45388. double PTS; // 时间戳(单位是毫秒)
  45389. UINT nHeight; // 图像高
  45390. char* pbDataBuf; // Y数据缓冲区(用户申请内存,大小为Buflen)
  45391. int nBufLen; // pbDataBuf最大长度
  45392. int nBufRet; // 实际返回的长度
  45393. }NET_OUT_RADIOMETRY_Y_IMAGE;
  45394. ///@brief 获取热成像设备的当前Y数据
  45395. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRadiometryYImage(LLONG lLoginID, const NET_IN_RADIOMETRY_Y_IMAGE* pInParam, NET_OUT_RADIOMETRY_Y_IMAGE* pOutParam,int nWaitTime);
  45396. ///@brief CLIENT_GetRadiometryCurrentHotColdSpotInfo 入参
  45397. typedef struct tagNET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO
  45398. {
  45399. DWORD dwSize;
  45400. int nChannel; // 通道号:只有热成像通道有效
  45401. } NET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO;
  45402. ///@brief 冷(最低的温度)、热(最高的温度)点信息
  45403. typedef struct tagNET_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO
  45404. {
  45405. NET_POINT stuHotPoint; // 热点坐标,范围:【0~8191】
  45406. NET_POINT stuColdPoint; // 冷点坐标,范围:【0~8191】
  45407. float fHotSpotValue; // 热点温度值(最高的温度)
  45408. float fColdSpotValue; // 冷点温度值(最低的温度)
  45409. int nTemperatrueUnit; // 温度单位,0:摄氏度 1:华氏度
  45410. BYTE byReserved[256]; // 保留字节
  45411. } NET_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO;
  45412. ///@brief CLIENT_GetRadiometryCurrentHotColdSpotInfo 出参
  45413. typedef struct tagNET_OUT_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO
  45414. {
  45415. DWORD dwSize;
  45416. NET_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO stuCurrentHotColdSpotInfo; // 热成像当前冷(最低的温度)、热(最高的温度)点信息
  45417. } NET_OUT_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO;
  45418. ///@brief 获取热成像当前冷(最低的温度)、热(最高的温度)点信息
  45419. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RadiometryGetCurrentHotColdSpotInfo(LLONG lLoginID, const NET_IN_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO* pInParam, NET_OUT_RADIOMETRY_CURRENTHOTCOLDSPOT_INFO* pOutParam, int nWaitTime);
  45420. #define MAX_RADIOMETRY_TEMPER_NUM 32 // 最大温度统计信息个数
  45421. #define MAX_COORDINATE_NUM 8 // 最大坐标点个数
  45422. ///@brief 测温查询类型
  45423. typedef enum tagEM_RADIOMETRY_QUERY_TYPE
  45424. {
  45425. EM_RADIOMETRY_QUERY_TYPE_UNKNOWN, // 未知
  45426. EM_RADIOMETRY_QUERY_TYPE_SPOT, // 点
  45427. EM_RADIOMETRY_QUERY_TYPE_AREA, // 区域
  45428. EM_RADIOMETRY_QUERY_TYPE_LINE, // 线
  45429. } EM_RADIOMETRY_QUERY_TYPE;
  45430. ///@brief 温度信息
  45431. typedef struct tagNET_QUERY_TEMPER_INFO
  45432. {
  45433. float fTemperAve; // 平均温度
  45434. float fTemperMax; // 最高的温度
  45435. float fTemperMin; // 最低的温度
  45436. BYTE byReserved[128]; // 保留字节
  45437. } NET_QUERY_TEMPER_INFO;
  45438. ///@brief 测温查询结果信息
  45439. typedef struct tagNET_RADIOMETRY_QUERY_INFO
  45440. {
  45441. NET_TIME stuTime; // 记录时间
  45442. int nPresetId; // 预置点编号
  45443. int nRuleId; // 规则编号
  45444. EM_RADIOMETRY_QUERY_TYPE emQueryType; // 查询类型
  45445. char szName[MAX_COMMON_STRING_64]; // 查询项名称
  45446. NET_POINT stuCoordinate[MAX_COORDINATE_NUM]; // 查询测温点坐标
  45447. int nChannel; // 通道号
  45448. NET_TEMPERATURE_UNIT emTemperatureUnit; // 温度单位
  45449. NET_QUERY_TEMPER_INFO stuQueryTemperInfo; // 温度信息
  45450. BYTE byReserved[256]; // 保留字节
  45451. } NET_RADIOMETRY_QUERY_INFO;
  45452. ///@brief 测温温度数据
  45453. typedef struct tagNET_RADIOMETRY_TEMPER_DATA
  45454. {
  45455. int nRadiometryTemperNum; // 测温温度信息个数
  45456. NET_RADIOMETRY_QUERY_INFO stuRadiometryTemperInfo[MAX_RADIOMETRY_TEMPER_NUM]; // 测温温度信息
  45457. BYTE byReserved[512]; // 保留字节
  45458. } NET_RADIOMETRY_TEMPER_DATA;
  45459. //////////////////////////////////////////////////////////////////////
  45460. ///@brief 测温温度数据状态回调函数
  45461. ///@param[out] LLONG lAttachTemperHandle [OUT] 订阅句柄, CLIENT_RadiometryAttachTemper 的返回值
  45462. ///@param[out] NET_RADIOMETRY_TEMPER_DATA* pBuf [OUT] 测温温度数据
  45463. ///@param[out] int nBufLen [OUT] 状态信息长度
  45464. ///@param[in] LDWORD dwUser 用户数据
  45465. ///@return 无
  45466. ///////////////////////////////////////////////////////////////////////
  45467. typedef void (CALLBACK *fRadiometryAttachTemperCB)(LLONG lAttachTemperHandle, NET_RADIOMETRY_TEMPER_DATA* pBuf, int nBufLen, LDWORD dwUser);
  45468. ///@brief CLIENT_RadiometryAttachTemper 入参
  45469. typedef struct tagNET_IN_RADIOMETRY_ATTACH_TEMPER
  45470. {
  45471. DWORD dwSize; // 结构体大小
  45472. int nChannel; // 通道号
  45473. fRadiometryAttachTemperCB cbNotify; // 状态回调函数指针
  45474. LDWORD dwUser; // 用户数据
  45475. } NET_IN_RADIOMETRY_ATTACH_TEMPER;
  45476. ///@brief CLIENT_RadiometryAttachTemper 出参
  45477. typedef struct tagNET_OUT_RADIOMETRY_ATTACH_TEMPER
  45478. {
  45479. DWORD dwSize;
  45480. } NET_OUT_RADIOMETRY_ATTACH_TEMPER;
  45481. ///@brief 订阅测温温度数据,pInParam与pOutParam内存由用户申请释放
  45482. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RadiometryAttachTemper(LLONG lLoginID, const NET_IN_RADIOMETRY_ATTACH_TEMPER* pInParam, NET_OUT_RADIOMETRY_ATTACH_TEMPER* pOutParam, int nWaitTime);
  45483. ///@brief 取消订阅测温温度数据,lAttachTemperHandle是 CLIENT_RadiometryAttachTemper 的返回值
  45484. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RadiometryDetachTemper(LLONG lAttachTemperHandle);
  45485. ///@brief CLIENT_RadiometryGetRandomRegionTemper 入参
  45486. typedef struct tagNET_IN_RADIOMETRY_RANDOM_REGION_TEMPER
  45487. {
  45488. DWORD dwSize; // 结构体大小
  45489. int nChannel; // 通道号
  45490. int nPointNum; // 有效坐标个数
  45491. NET_POINT stuPolygon[8]; // 测温区域的坐标, 8192坐标系
  45492. } NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER;
  45493. ///@brief 随机测温区域的温度信息
  45494. typedef struct tagNET_RADIOMETRY_REGION_TEMP_INFO
  45495. {
  45496. EM_TEMPERATURE_UNIT emTemperatureUnit; // 温度单位
  45497. int nTemperAver; // 获取测温区域平均温度的参数值,精度为0.01,扩大100倍
  45498. int nTemperMax; // 获取测温区域最高的温度的参数值,精度为0.01,扩大100倍
  45499. int nTemperMin; // 获取测温区域最低的温度的参数值,精度为0.01,扩大100倍
  45500. NET_POINT stuTemperMaxPoint; // 随机区域内最高的温度的点的坐标,8192坐标系
  45501. NET_POINT stuTemperMinPoint; // 随机区域内最低的温度的点的坐标,8192坐标系
  45502. BYTE byReserved[256]; // 保留字节
  45503. } NET_RADIOMETRY_REGION_TEMP_INFO;
  45504. ///@brief CLIENT_RadiometryGetRandomRegionTemper 出参
  45505. typedef struct tagNET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER
  45506. {
  45507. DWORD dwSize; // 结构体大小
  45508. NET_RADIOMETRY_REGION_TEMP_INFO stuRegionTempInfo; // 随机测温区域的温度信息
  45509. } NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER;
  45510. ///@brief 获取测温区域的参数值, pInParam与pOutParam内存由用户申请释放
  45511. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RadiometryGetRandomRegionTemper(LLONG lLoginID, const NET_IN_RADIOMETRY_RANDOM_REGION_TEMPER* pInParam, NET_OUT_RADIOMETRY_RANDOM_REGION_TEMPER* pOutParam, int nWaitTime);
  45512. ///@brief CLIENT_IntelliVideoFusionConvertPointIr2Vis 入参
  45513. typedef struct tagNET_IN_INTELLIVIDEOFUSION_CONVERT_IR_TO_VIS
  45514. {
  45515. DWORD dwSize; // 结构体大小
  45516. NET_UINT_POINT stuIrInPoint; // 输入参数,热成像通道下的点坐标,8192坐标系
  45517. } NET_IN_INTELLIVIDEOFUSION_CONVERT_IR_TO_VIS;
  45518. ///@brief CLIENT_IntelliVideoFusionConvertPointIr2Vis 出参
  45519. typedef struct tagNET_OUT_INTELLIVIDEOFUSION_CONVERT_IR_TO_VIS
  45520. {
  45521. DWORD dwSize; // 结构体大小
  45522. NET_UINT_POINT stuVisOutPoint; // 返回参数,转换后的可见光通道下的点坐标,8192坐标系,[0,0]无效的点坐标
  45523. } NET_OUT_INTELLIVIDEOFUSION_CONVERT_IR_TO_VIS;
  45524. ///@brief 热成像通道坐标转换为可见光通道坐标
  45525. CLIENT_NET_API BOOL CALL_METHOD CLIENT_IntelliVideoFusionConvertPointIr2Vis(LLONG lLoginID, const NET_IN_INTELLIVIDEOFUSION_CONVERT_IR_TO_VIS* pInParam, NET_OUT_INTELLIVIDEOFUSION_CONVERT_IR_TO_VIS* pOutParam, int nWaitTime);
  45526. ///@brief CLIENT_IntelliVideoFusionConvertPointVis2Ir 入参
  45527. typedef struct tagNET_IN_INTELLIVIDEOFUSION_CONVERT_VIS_TO_IR
  45528. {
  45529. DWORD dwSize; // 结构体大小
  45530. NET_UINT_POINT stuVisInPoint; // 输入参数,可见光画面中的点坐标,8192坐标系
  45531. } NET_IN_INTELLIVIDEOFUSION_CONVERT_VIS_TO_IR;
  45532. ///@brief CLIENT_IntelliVideoFusionConvertPointVis2Ir 出参
  45533. typedef struct tagNET_OUT_INTELLIVIDEOFUSION_CONVERT_VIS_TO_IR
  45534. {
  45535. DWORD dwSize; // 结构体大小
  45536. NET_UINT_POINT stuIrOutPoint; // 返回参数,转换后的热成像画面中的点坐标,8192坐标系,[0,0]无效的点坐标
  45537. } NET_OUT_INTELLIVIDEOFUSION_CONVERT_VIS_TO_IR;
  45538. ///@brief 可见光通道坐标转换为热成像通道坐标
  45539. CLIENT_NET_API BOOL CALL_METHOD CLIENT_IntelliVideoFusionConvertPointVis2Ir(LLONG lLoginID, const NET_IN_INTELLIVIDEOFUSION_CONVERT_VIS_TO_IR* pInParam, NET_OUT_INTELLIVIDEOFUSION_CONVERT_VIS_TO_IR* pOutParam, int nWaitTime);
  45540. //////////////////////////////////////////////////////////////////////
  45541. ///@brief 查询流量信息
  45542. //////////////////////////////////////////////////////////////////////
  45543. ///@brief 获取流量信息(入参)
  45544. typedef struct tagNET_IN_SIM_CARD_FLUX_INFO
  45545. {
  45546. DWORD dwSize; // 结构体大小
  45547. int nCardIndex; // sim编号 从0开始
  45548. }NET_IN_SIM_CARD_FLUX_INFO;
  45549. #define NET_FLUX_RECORD_MAX_NUM 7 // 流量信息记录最大值
  45550. ///@brief 流量记录结构体
  45551. typedef struct tagNET_SIM_CARD_FLUX_RECORD
  45552. {
  45553. NET_TIME stuDate; // 日期
  45554. UINT nDaySendFlux; // 当日上行流量 Uint32单位:0.1kb
  45555. UINT nDayRecvFlux; // 当日下行流量 Uint32单位:0.1kb
  45556. BYTE byReserved[512]; // 保留字节
  45557. }NET_SIM_CARD_FLUX_RECORD;
  45558. ///@brief 获取的流量信息(出参)
  45559. typedef struct tagNET_OUT_SIM_CARD_FLUX_INFO
  45560. {
  45561. DWORD dwSize; // 结构体大小
  45562. UINT nTotalFlux; // 总的流量=上行流量+下行流量 Uint32单位:0.1kb
  45563. UINT nSendFlux; // 上行流量 Uint32单位:0.1kb
  45564. UINT nRecvFlux; // 下行流量 Uint32单位:0.1kb
  45565. NET_TIME stuTime; // 总流量写入时间
  45566. int nRecordNum; // 记录数量 这个值不应该大于 NET_RECORD_MAX_NUM
  45567. NET_SIM_CARD_FLUX_RECORD stuRecord[NET_FLUX_RECORD_MAX_NUM]; // 最近七天的流量记录
  45568. UINT nLastMonthTotalFlux; // 上个月总流量 Uint32单位:0.1kb
  45569. }NET_OUT_SIM_CARD_FLUX_INFO;
  45570. ///@brief 获取SIM卡流量信息,pNetDataIn与pNetDataOut由用户申请内存
  45571. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSimCardFlux(LLONG lLoginID,const NET_IN_SIM_CARD_FLUX_INFO* pNetDataIn,NET_OUT_SIM_CARD_FLUX_INFO* pNetDataOut,int nWaitTime = 1000);
  45572. ///@brief 设置防护舱门禁工作模式,pNetDataIn与pNetDataOut由用户申请内存
  45573. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDoorWorkMode(LLONG lLoginID,const NET_IN_CTRL_ACCESS_SET_DOOR_WORK_MODE* pNetDataIn,NET_OUT_CTRL_ACCESS_SET_DOOR_WORK_MODE* pNetDataOut,int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  45574. ///@brief 防护舱LED控制,pInParam与pOutParam由用户申请内存,根据emType对应的结构体,进而确定申请内存大小
  45575. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlCabinLED(LLONG lLoginID, EM_CABIN_LED_CONTROL_TYPE emType,const void *pInParam, void* pOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  45576. #define NET_SELECT_UPDATE_LOCK_MAX_NUM 32 // 升级锁时最多同时指定的个数
  45577. ///@brief 远程升级智能锁通道信息(入参)
  45578. typedef struct tagNET_IN_SELECT_UPDATE_LOCK_INFO
  45579. {
  45580. DWORD dwSize;
  45581. int nChannelNum; // 需要选择的智能锁的个数
  45582. int nChannel[NET_SELECT_UPDATE_LOCK_MAX_NUM]; // 智能锁的通道号
  45583. }NET_IN_SELECT_UPDATE_LOCK_INFO;
  45584. ///@brief 远程升级智能锁通道信息(出参)
  45585. typedef struct tagNET_OUT_SELECT_UPDATE_LOCK_INFO
  45586. {
  45587. DWORD dwSize;
  45588. }NET_OUT_SELECT_UPDATE_LOCK_INFO;
  45589. ///@brief 根据锁的通道号选择远程智能锁,pNetDataIn与pNetDataOut由用户申请内存
  45590. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SelectLockToUpdate(LLONG lLoginID,const NET_IN_SELECT_UPDATE_LOCK_INFO* pNetDataIn,NET_OUT_SELECT_UPDATE_LOCK_INFO* pNetDataOut,int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  45591. ///@brief 子权限类型
  45592. typedef enum tagEM_AUTHORITY_SUB_TYPE
  45593. {
  45594. EM_AUTHORITY_SUB_TYPE_UNKNOWN, // Unknown
  45595. EM_AUTHORITY_SUB_TYPE_SHUT_DOWN, // 关闭设备
  45596. EM_AUTHORITY_SUB_TYPE_MONITOR, // 实时预览所有通道
  45597. EM_AUTHORITY_SUB_TYPE_MONITOR_FOR_CHANNEL, // 实时预览通道
  45598. EM_AUTHORITY_SUB_TYPE_REPLAY, // 回放所有通道
  45599. EM_AUTHORITY_SUB_TYPE_REPLAY_FOR_CHANNEL, // 回放通道
  45600. EM_AUTHORITY_SUB_TYPE_BACKUP, // 录像文件备份
  45601. EM_AUTHORITY_SUB_TYPE_MHARDISK, // 硬盘管理
  45602. EM_AUTHORITY_SUB_TYPE_MPTZ, // 云台的X、Y、Z的电机控制,此权限受产品定义的HasPtz控制,如HasPtz为false,此权限无效
  45603. EM_AUTHORITY_SUB_TYPE_ACCOUNT, // 用户帐号
  45604. EM_AUTHORITY_SUB_TYPE_QUERY_LOG, // 日志查询
  45605. EM_AUTHORITY_SUB_TYPE_DEL_LOG, // 删除日志
  45606. EM_AUTHORITY_SUB_TYPE_SYS_UPDATE, // 升级系统
  45607. EM_AUTHORITY_SUB_TYPE_AUTO_MAINTAIN, // 自动维护
  45608. EM_AUTHORITY_SUB_TYPE_GENERAL_CONF, // 普通设置
  45609. EM_AUTHORITY_SUB_TYPE_ENCODE_CONF, // 编码设置
  45610. EM_AUTHORITY_SUB_TYPE_RECORD, // 录像模式手动、自动设置(RecordMode配置)
  45611. EM_AUTHORITY_SUB_TYPE_RECORD_CONF, // 录像参数时间、文件格式等设置(Record配置)
  45612. EM_AUTHORITY_SUB_TYPE_COM_CONF, // 串口设置
  45613. EM_AUTHORITY_SUB_TYPE_NET_CONF, // 网络设置
  45614. EM_AUTHORITY_SUB_TYPE_ALARM, // 报警输出IO配置
  45615. EM_AUTHORITY_SUB_TYPE_ALARM_CONF, // 报警设置
  45616. EM_AUTHORITY_SUB_TYPE_VIDEO_CONFIG, // 视频动检遮挡丢失
  45617. EM_AUTHORITY_SUB_TYPE_PTZ_CONFIG, // 云台设置
  45618. EM_AUTHORITY_SUB_TYPE_OUTPUT_CONFIG, // 视频输出配置
  45619. EM_AUTHORITY_SUB_TYPE_VIDEO_INPUT_CONFIG, // 视频输入配置
  45620. EM_AUTHORITY_SUB_TYPE_DEFAULT_CONFIG, // 恢复默认
  45621. EM_AUTHORITY_SUB_TYPE_BK_CONFIG, // 存储新增,导入导出配置
  45622. EM_AUTHORITY_SUB_TYPE_INTELLI_CONFIG, // 智能配置
  45623. EM_AUTHORITY_SUB_TYPE_REMOTE_DEVICE, // 添加删除远程设备
  45624. EM_AUTHORITY_SUB_TYPE_ATM_POS, // 卡口叠加
  45625. EM_AUTHORITY_SUB_TYPE_OFFLINE_LOGINED_USER, // 踢除用户
  45626. EM_AUTHORITY_SUB_TYPE_AUDIO_AUTH, // 存储使用,语音投放
  45627. EM_AUTHORITY_SUB_TYPE_SPOT_SET, // 存储使用,视频矩阵
  45628. EM_AUTHORITY_SUB_TYPE_TVSET, // 存储使用,TV边距调节
  45629. EM_AUTHORITY_SUB_TYPE_IPSAN, // IPSAN管理
  45630. EM_AUTHORITY_SUB_TYPE_CONFIG, // 存储使用,含义较模糊,不建议使用
  45631. EM_AUTHORITY_SUB_TYPE_ARMING, // 布防
  45632. EM_AUTHORITY_SUB_TYPE_DISARM, // 撤防
  45633. EM_AUTHORITY_SUB_TYPE_BYPASS, // 旁路(所有通道)
  45634. EM_AUTHORITY_SUB_TYPE_BYPASS_PARTIAL, // 旁路(部分通道)
  45635. EM_AUTHORITY_SUB_TYPE_ALARM_BELL, // 警号输出
  45636. EM_AUTHORITY_SUB_TYPE_ALARM_CONFIRM_PARTIAL, // 消警(部分通道)
  45637. EM_AUTHORITY_SUB_TYPE_DEFENCE_CONFIG_PARTIAL, // 防区配置(部分通道)
  45638. EM_AUTHORITY_SUB_TYPE_ALARM_OUT_PARITAL, // 报警输出(部分通道)
  45639. EM_AUTHORITY_SUB_TYPE_TALK, // 语音对讲
  45640. EM_AUTHORITY_SUB_TYPE_WIRELESS_CONFIG, // 无线网配置
  45641. EM_AUTHORITY_SUB_TYPE_MOBILE_CONFIG, // 移动业务配置
  45642. EM_AUTHORITY_SUB_TYPE_AUDIO_DETECT_CONFIG, // 音频检测配置
  45643. EM_AUTHORITY_SUB_TYPE_NET_PREVIEW_FOR_CHANNEL, // 预览通道
  45644. EM_AUTHORITY_SUB_TYPE_REBOOT, // 设备重启
  45645. EM_AUTHORITY_SUB_TYPE_SYS_LENS, // 网络机芯没有云台,但需要控制变倍、聚焦、光圈等功能,增加此权限项
  45646. EM_AUTHORITY_SUB_TYPE_RAIN_BRUSH_CONFIG, // 雨刷配置
  45647. EM_AUTHORITY_SUB_TYPE_LIGHTING_CONFIG, // 灯光配置
  45648. EM_AUTHORITY_SUB_TYPE_ACCESS_CONTROL, // 门禁控制(所有通道)
  45649. EM_AUTHORITY_SUB_TYPE_ACCESS_CONTROL_PARTIAL, // 门禁控制(部分通道)
  45650. EM_AUTHORITY_SUB_TYPE_DECODE_TOUR, // 解码轮巡
  45651. EM_AUTHORITY_SUB_TYPE_VIDEO_OUT, // 视频输出
  45652. EM_AUTHORITY_SUB_TYPE_PTZ_FOR_CHANNEL, // 云台控制通道
  45653. EM_AUTHORITY_SUB_TYPE_MODIFY_LANGUANGE, // 修改语言
  45654. EM_AUTHORITY_SUB_TYPE_MODIFY_VIDEO, // 修改视频制式
  45655. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_CONTROL, // 导播控制
  45656. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_SCHEDULE, // 查询课程表
  45657. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_MODIFY_SCHEDULE, // 修改课程表
  45658. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_INTELL_PARAM, // 录播智能参数
  45659. EM_AUTHORITY_SUB_TYPE_CAMERA_PERIPHERAL, // 摄像头外设,包含雨刷、风扇、加热器等
  45660. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_DOWNLOAD_MEDIA_FILE, // 下载课程录像文件
  45661. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_MODIFY_MEDIA_FILE, // 修改课程录像文件
  45662. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_DELETE_MEDIA_FILE, // 删除课程录像文件
  45663. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_BACKUP_TO_USB, // 备份课程录像文件到设备端的USB上,与Backup不能同时生效。
  45664. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_BACKUP_TO_FTP, // 备份课程录像文件到FTP服务器,与Backup不能同时生效。
  45665. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_EXPORT_ACCONUT, // 导出用户信息,与Account不能同时生效。
  45666. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_QUERY_ACCOUNT, // 查询账户,与Account不能同时生效。
  45667. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_MODIFY_ACCOUNT, // 修改账户,与Account不能同时生效。
  45668. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_RESET_PASSWORD, // 密码重置,与Account不能同时生效。
  45669. EM_AUTHORITY_SUB_TYPE_COURSE_RECORD_AUTHORITY, // 权限管理,与Account不能同时生效。
  45670. }EM_AUTHORITY_SUB_TYPE;
  45671. ///@brief 主权限类型
  45672. typedef enum tagEM_AUTHORITY_MAIN_TYPE
  45673. {
  45674. EM_AUTHORITY_MAIN_TYPE_UNKNOWN, // Unknown
  45675. EM_AUTHORITY_MAIN_TYPE_AUTH_USER_MAG, // 用户管理
  45676. EM_AUTHORITY_MAIN_TYPE_AUTH_SYS_CFG, // 系统设置
  45677. EM_AUTHORITY_MAIN_TYPE_AUTH_OFFLINE_USER, // 屏蔽用户
  45678. EM_AUTHORITY_MAIN_TYPE_AUTH_DF_UD, // 默认&升级
  45679. EM_AUTHORITY_MAIN_TYPE_AUTH_PTZ_CTR, // 云台控制
  45680. EM_AUTHORITY_MAIN_TYPE_AUTH_SYS_INFO, // 系统信息
  45681. EM_AUTHORITY_MAIN_TYPE_AUTH_MANU_CTR, // 手动控制
  45682. EM_AUTHORITY_MAIN_TYPE_AUTH_BACKUP, // 文件备份
  45683. EM_AUTHORITY_MAIN_TYPE_AUTH_COLOR_SET, // 图像颜色
  45684. EM_AUTHORITY_MAIN_TYPE_AUTH_STORE_CFG, // 存储管理
  45685. EM_AUTHORITY_MAIN_TYPE_AUTH_EVENT_CFG, // 事件设置
  45686. EM_AUTHORITY_MAIN_TYPE_AUTH_NET_CFG, // 网络设置
  45687. EM_AUTHORITY_MAIN_TYPE_AUTH_RMT_DEVICE, // 摄像头相关
  45688. EM_AUTHORITY_MAIN_TYPE_AUTH_DEL_LOG, // 删除日志
  45689. EM_AUTHORITY_MAIN_TYPE_AUTH_SHUTDOWN, // 关闭设备
  45690. }EM_AUTHORITY_MAIN_TYPE;
  45691. #define NET_AUTHORITY_CLASS_MAX_NUM 256 // 用户权限类型最大值
  45692. ///@brief 权限类型信息
  45693. typedef struct tagNET_AUTH_CLASSIFY_INFO
  45694. {
  45695. EM_AUTHORITY_MAIN_TYPE emMainAuthority; // 主权限类型
  45696. EM_AUTHORITY_SUB_TYPE emSubAuthority; // 子权限类型
  45697. int nChannel; // 通道号
  45698. // emSubAuthority为EM_AUTHORITY_SUB_TYPE_MONITOR_FOR_CHANNEL,EM_AUTHORITY_SUB_TYPE_REPLAY_FOR_CHANNEL,
  45699. // EM_AUTHORITY_SUB_TYPE_NET_PREVIEW_FOR_CHANNEL,EM_AUTHORITY_SUB_TYPE_PTZ_FOR_CHANNEL 时此字段有效
  45700. //
  45701. BYTE byReserved[128]; // 保留字节
  45702. }NET_AUTH_CLASSIFY_INFO;
  45703. ///@brief 获取权限类型信息(入参)
  45704. typedef struct tagNET_IN_GET_AUTHORITY_INFO_LIST
  45705. {
  45706. DWORD dwSize;
  45707. }NET_IN_GET_AUTHORITY_INFO_LIST;
  45708. ///@brief 获取权限类型信息(出参)
  45709. typedef struct tagNET_OUT_GET_AUTHORITY_INFO_LIST
  45710. {
  45711. DWORD dwSize;
  45712. int nRetAuthInfoCount; // 返回的权限类型信息个数
  45713. NET_AUTH_CLASSIFY_INFO stuAuthInfo[NET_AUTHORITY_CLASS_MAX_NUM];// 返回的权限类型信息数据
  45714. }NET_OUT_GET_AUTHORITY_INFO_LIST;
  45715. ///@brief 获取权限类型信息列表,pNetDataIn与pNetDataOut由用户申请内存
  45716. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAuthClassifyList(LLONG lLoginID,const NET_IN_GET_AUTHORITY_INFO_LIST* pNetDataIn,NET_OUT_GET_AUTHORITY_INFO_LIST* pNetDataOut,int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  45717. //////////////////////////////////////////////////////////////////////
  45718. ///@brief 能力信息
  45719. //////////////////////////////////////////////////////////////////////
  45720. //////////////////////////////////////////////////////////////////////
  45721. ///@brief 查询类型
  45722. typedef enum
  45723. {
  45724. ABILITY_DYNAMIC_CONNECT = 1, // 查询动态多连接能力,对应入参类型为BOOL
  45725. ABILITY_WATERMARK_CFG = 17, // 水印配置能力,对应结构体为DH_WATERMAKE_EN
  45726. ABILITY_WIRELESS_CFG = 18, // wireless配置能力,对应结构体为DH_WIRELESS_EN
  45727. ABILITY_DEVALL_INFO = 26, // 设备的能力列表,对应结构体为DH_DEV_ENABLE_INFO
  45728. ABILITY_CARD_QUERY = 0x0100, // 卡号查询能力,对应结构体为DH_CARD_QUERY_EN
  45729. ABILITY_MULTIPLAY = 0x0101, // 多画面预览能力,对应结构体为DH_MULTIPLAY_EN
  45730. ABILITY_QUICK_QUERY_CFG = 0x0102, // 快速查询配置能力,对应结构体为DH_QUICK_QUERY_CFG_EN
  45731. ABILITY_INFRARED = 0x0121, // 无线报警能力,对应结构体为DH_WIRELESS_ALARM_INFO
  45732. ABILITY_TRIGGER_MODE = 0x0131, // 报警输出触发方式能力,对应入参类型为int
  45733. ABILITY_DISK_SUBAREA = 0x0141, // 网络硬盘分区能力,对应结构体为DH_DISK_SUBAREA_EN
  45734. ABILITY_DSP_CFG = 0x0151, // 查询DSP能力,对应结构体为DH_DSP_CFG
  45735. ABILITY_STREAM_MEDIA = 0x0161, // 查询SIP,RTSP能力,对应结构体为DH_STREAM_MEDIA_EN
  45736. ABILITY_INTELLI_TRACKER = 0x0171, // 查询智能跟踪能力,对应结构体为DH_INTELLI_TRACKER_EN
  45737. ABILITY_DOWNLOAD_BY_ALLSPEED = 0x0181,// 查询全速回放不抽帧能力,对应结构体为NET_DOWNLOAD_BY_ALLSPEED_EN
  45738. } DH_SYS_ABILITY;
  45739. //////////////////////////////////////////////////////////////////////
  45740. ///@brief 设备支持功能列表
  45741. typedef enum
  45742. {
  45743. EN_FTP = 0, // FTP 按位,1:传送录像文件 2:传送抓图文件
  45744. EN_SMTP, // SMTP 按位,1:报警传送文本邮件 2:报警传送图片 3:支持健康邮件功能
  45745. EN_NTP, // NTP 按位:1:调整系统时间
  45746. EN_AUTO_MAINTAIN, // 自动维护 按位:1:重启 2:关闭 3:删除文件
  45747. EN_VIDEO_COVER, // 区域遮挡 按位:1:多区域遮挡
  45748. EN_AUTO_REGISTER, // 主动注册 按位:1:注册后sdk主动登陆
  45749. EN_DHCP, // DHCP 按位:1:DHCP
  45750. EN_UPNP, // UPNP 按位:1:UPNP
  45751. EN_COMM_SNIFFER, // 串口抓包 按位:1:CommATM
  45752. EN_NET_SNIFFER, // 网络抓包 按位: 1:NetSniffer
  45753. EN_BURN, // 刻录功能 按位:1:查询刻录状态
  45754. EN_VIDEO_MATRIX, // 视频矩阵 按位:1:是否支持视频矩阵 2:是否支持SPOT视频矩阵 3:是否支持HDMI视频矩阵
  45755. EN_AUDIO_DETECT, // 音频检测 按位:1:是否支持音频检测
  45756. EN_STORAGE_STATION, // 存储位置 按位:1:Ftp服务器(Ips) 2:SMB 3:NFS 4:ISCSI 16:DISK 17:U盘
  45757. EN_IPSSEARCH, // IPS存储查询 按位:1:IPS存储查询
  45758. EN_SNAP, // 抓图 按位:1:分辨率2:帧率3:抓图方式4:抓图文件格式5:图画质量 6:是否支持并发
  45759. EN_DEFAULTNIC, // 支持默认网卡查询 按位 1:支持
  45760. EN_SHOWQUALITY, // CBR模式下显示画质配置项 按位 1:支持
  45761. EN_CONFIG_IMEXPORT, // 配置导入导出功能能力 按位 1:支持
  45762. EN_LOG, // 是否支持分页方式的日志查询 按位 1:支持
  45763. EN_SCHEDULE, // 录像设置的一些能力 按位 1:冗余 2:预录 3:录像时间段
  45764. EN_NETWORK_TYPE, // 网络类型按位表示 1:以态网 2:无线局域 3:CDMA/GPRS 4:CDMA/GPRS多网卡配置
  45765. EN_MARK_IMPORTANTRECORD, // 标识重要录像 按位:1:设置重要录像标识
  45766. EN_ACFCONTROL, // 活动帧率控制 按位:1:支持活动帧率控制, 2:支持定时报警类型活动帧率控制(不支持动检),该能力与ACF能力互斥
  45767. EN_MULTIASSIOPTION, // 多路辅码流 按位:1:支持三路辅码流, 2:支持辅码流编码压缩格式独立设置
  45768. EN_DAVINCIMODULE, // 组件化模块 按位:1,时间表分开处理 2:标准I帧间隔设置
  45769. EN_GPS, // GPS功能 按位:1:Gps定位功能,2:GPS重传,3:支持多客户多GPS重传及确认,即支持UUID
  45770. EN_MULTIETHERNET, // 支持多网卡查询 按位 1:支持
  45771. EN_LOGIN_ATTRIBUTE, // Login属性 按位:1:支持Login属性查询
  45772. EN_RECORD_GENERAL, // 录像相关 按位:1,普通录像;2:报警录像;3:动态检测录像;4:本地存储;5:远程存储;6:冗余存储;7:本地紧急存储;8:支持区分主辅码流的远程存储
  45773. EN_JSON_CONFIG, // Json格式配置:按位:1支持Json格式, 2: 使用F6的NAS配置, 3: 使用F6的Raid配置, 4:使用F6的MotionDetect配置, 5:完整支持三代配置(V3),通过F6命令访问
  45774. EN_HIDE_FUNCTION, // 屏蔽功能:按位:1,屏蔽PTZ云台功能, 2: 屏蔽3G的保活时段功能
  45775. EN_DISK_DAMAGE, // 硬盘坏道信息支持能力: 按位:1,硬盘坏道信息查询支持能力
  45776. EN_PLAYBACK_SPEED_CTRL, // 支持回放网传速度控制:按位:1,支持回放加速
  45777. EN_HOLIDAYSCHEDULE, // 支持假期时间段配置:按位:1,支持假期时间段配置
  45778. EN_FETCH_MONEY_TIMEOUT, // ATM取钱超时
  45779. EN_BACKUP_VIDEO_FORMAT, // 备份支持的格式,按位:1:DAV, 2:ASF
  45780. EN_QUERY_DISK_TYPE, // 支持硬盘类型查询
  45781. EN_CONFIG_DISPLAY_OUTPUT, // 支持设备显示输出(VGA等)配置,按位: 1:画面分割轮巡配置
  45782. EN_SUBBITRATE_RECORD_CTRL, // 支持扩展码流录像控制设置, 按位:1-辅码流录像控制设置
  45783. EN_IPV6, // 支持IPV6设置, 按位:1-IPV6配置
  45784. EN_SNMP, // SNMP(简单网络管理协议)
  45785. EN_QUERY_URL, // 支持获取设备URL地址, 按位: 1-查询配置URL地址
  45786. EN_ISCSI, // ISCSI(Internet小型计算机系统接口配置)
  45787. EN_RAID, // 支持Raid功能
  45788. EN_HARDDISK_INFO, // 支持磁盘信息F5查询
  45789. EN_PICINPIC, // 支持画中画功能 按位:1,画中画设置; 2,画中画预览、录像存储、查询、下载;3,支持画中画编码配置,同时支持画中画通道查询
  45790. EN_PLAYBACK_SPEED_CTRL_SUPPORT, // 同 EN_PLAYBACK_SPEED_CTRL ,只为了兼容协议
  45791. EN_LF_XDEV, // 支持24、32、64路LF-X系列,标注这类设备特殊的编码能力计算方式
  45792. EN_DSP_ENCODE_CAP, // F5 DSP编码能力查询
  45793. EN_MULTICAST, // 组播能力查询
  45794. EM_NET_LIMIT, // 网络限制能力查询,按位,1-网络发送码流大小限制,2-支持用户操作数据加密,4-支持配置数据加密,8-支持配置数据加密扩展, 16-支持导入导出加密
  45795. EM_COM422, // 串口422
  45796. EM_PROTOCAL_FRAMEWORK, // 是否支持三代协议框架(需要实现listMethod(),listService()),通过F6命令访问
  45797. EM_WRITE_DISK_OSD, // 刻录OSD叠加, 按位, 1-刻录OSD叠加配置
  45798. EM_DYNAMIC_MULTI_CONNECT, // 动态多连接, 按位, 1-请求视频数据应答
  45799. EM_CLOUDSERVICE, // 云服务,按位,1-支持私有云服务
  45800. EM_RECORD_INFO, // 录像信息上报, 按位, 1-录像信息主动上报, 2-支持录像帧数查询
  45801. EN_DYNAMIC_REG, // 主动注册能力,按位,1-支持动态主动注册, 2-主动注册动态多链接支持SDK发起IP,port填0的请求
  45802. EM_MULTI_PLAYBACK, // 多通道预览回放,按为,1-支持多通道预览回放
  45803. EN_ENCODE_CHN, // 编码通道, 按位, 1-支持纯音频通道, 2-预览支持音视频分开获取
  45804. EN_SEARCH_RECORD, // 录像查询, 按位, 1-支持异步查询录像, 2-支持三代协议查询录像
  45805. EN_UPDATE_MD5, // 支持升级文件传输完成后做MD5验证,1-支持MD5验证2-支持三代升级
  45806. EN_PROTOCOL3ToF6, // 三代切F6,按位,1-Log日志功能2.DeleteFile 恢复默认配置支持使用configManager.deleteFile协议
  45807. EN_COMPOSECHANNEL, // 组合通道, 1-远程预览
  45808. EN_PLAYBACK, // 回放能力,按位 1-录像二次分析回放
  45809. }EM_DEVICE_FUNC_LIST;
  45810. ///@brief 设备的能力列表
  45811. typedef struct
  45812. {
  45813. DWORD IsFucEnable[512]; // 功能列表能力集,下标对应上述的枚举值,按位表示子功能
  45814. } DH_DEV_ENABLE_INFO;
  45815. //////////////////////////////////////////////////////////////////////
  45816. ///@brief 卡号查询能力结构体
  45817. typedef struct
  45818. {
  45819. char IsCardQueryEnable;
  45820. char iRev[3];
  45821. } DH_CARD_QUERY_EN;
  45822. //////////////////////////////////////////////////////////////////////
  45823. ///@brief wireless能力结构体
  45824. typedef struct
  45825. {
  45826. char IsWirelessEnable;
  45827. char iRev[3];
  45828. } DH_WIRELESS_EN;
  45829. //////////////////////////////////////////////////////////////////////
  45830. ///@brief 图象水印能力结构体
  45831. typedef struct
  45832. {
  45833. char isSupportWM; // 1 支持;0 不支持
  45834. char supportWhat; // 0:文字水印;1:图片水印;2:同时支持文字水印和图片水印
  45835. char reserved[2];
  45836. } DH_WATERMAKE_EN;
  45837. //////////////////////////////////////////////////////////////////////
  45838. ///@brief 多画面预览能力结构体
  45839. typedef struct
  45840. {
  45841. int nEnable; // 1 支持;0 不支持
  45842. DWORD dwMultiPlayMask; // 多画面预览掩码
  45843. char reserved[4]; // 保留
  45844. } DH_MULTIPLAY_EN;
  45845. //////////////////////////////////////////////////////////////////////
  45846. ///@brief 无线报警能力结构体
  45847. typedef struct
  45848. {
  45849. BOOL bSupport; // 是否支持
  45850. int nAlarmInCount; // 输入个数
  45851. int nAlarmOutCount; // 输出个数
  45852. int nRemoteAddrCount; // 遥控器个数
  45853. BYTE reserved[32];
  45854. } DH_WIRELESS_ALARM_INFO;
  45855. //////////////////////////////////////////////////////////////////////
  45856. ///@brief 网络硬盘分区能力结构体
  45857. typedef struct
  45858. {
  45859. BOOL bSupported; // 是否支持网络硬盘分区
  45860. int nSupportNum; // 支持分区的数目
  45861. BYTE bReserved[32]; // 保留字节
  45862. } DH_DISK_SUBAREA_EN;
  45863. ///@brief DSP能力查询,当DSP能力算法标识为2时使用。
  45864. typedef struct
  45865. {
  45866. BYTE bMainFrame[32]; // 以分辨率枚举值(CAPTURE_SIZE)为索引,主码流分辨率对应支持的最大帧率,如果不支持此分辨率,则值为0.
  45867. BYTE bExtraFrame_1[32]; // 辅码流1,使用同bMainFrame
  45868. BYTE bReserved[128]; // 预留给辅码流2和3.
  45869. } DH_DSP_CFG_ITEM;
  45870. ///@brief 查询DSP能力
  45871. typedef struct
  45872. {
  45873. int nItemNum; // DH_DSP_CFG_ITEM的有效个数,等于通道数
  45874. DH_DSP_CFG_ITEM stuDspCfgItem[32]; // 主码流的信息
  45875. BYTE bReserved[128]; // 保留
  45876. } DH_DSP_CFG;
  45877. //////////////////////////////////////////////////////////////////////
  45878. ///@brief 快速查询配置能力结构体
  45879. typedef struct
  45880. {
  45881. char IsQuickQueryEnable; // 1是设备支持配置命令快速返回,请设置配置时间足够长以保证窄带下配置的正常读取。建议设置60S
  45882. char iRev[3];
  45883. } DH_QUICK_QUERY_CFG_EN;
  45884. ///@brief 查询SIP,RTSP能力
  45885. typedef struct
  45886. {
  45887. int nStreamType; // 0,无 1,SIP 2,RTSP
  45888. BYTE bReserved[16]; // 保留
  45889. } DH_STREAM_MEDIA_EN;
  45890. ///@brief 智能球跟踪能力查询
  45891. typedef struct
  45892. {
  45893. char IsIntelliTrackerEnable; // 大于0表示具有智能球跟踪能力
  45894. BYTE bReserved[3];
  45895. }DH_INTELLI_TRACKER_EN;
  45896. ///@brief 查询全速回放不抽帧能力
  45897. typedef struct tagNET_DOWNLOAD_BY_ALLSPEED_EN
  45898. {
  45899. int nDownloadByAllSpeed; // 0 未知,设备无该字段,按不支持处理
  45900. // 1 不支持全速回放不抽帧
  45901. // 2 支持全速回放不抽帧
  45902. BYTE bReserved[16];
  45903. }NET_DOWNLOAD_BY_ALLSPEED_EN;
  45904. #define NET_MAX_COMPOSITE_CHANNEL 256 // 组合融合屏的通道最大数量
  45905. ///@brief 获取融合能力集的输入参数, 对应NET_COMPOSITE_CAPS
  45906. typedef struct tagNET_IN_COMPOSITE_CAPS
  45907. {
  45908. DWORD dwSize;
  45909. int nChannelCount; // 需要融合的窗口数量
  45910. int nChannels[NET_MAX_COMPOSITE_CHANNEL]; // 需要融合的窗口号列表
  45911. int nLayoutX; // 水平方向窗口数量
  45912. int nLayoutY; // 垂直方向窗口数量
  45913. } NET_IN_COMPOSITE_CAPS;
  45914. ///@brief 获取融合能力集的输出参数, 对应NET_COMPOSITE_CAPS
  45915. typedef struct tagNET_OUT_COMPOSITE_CAPS
  45916. {
  45917. DWORD dwSize;
  45918. int nSplitModeCount; // 支持的分割模式数量
  45919. DH_SPLIT_MODE emSplitModes[DH_MAX_SPLIT_MODE_NUM]; // 支持的分割模式列表
  45920. int nMaxFreeWindow; // 最大开窗数
  45921. } NET_OUT_COMPOSITE_CAPS;
  45922. #define MAX_REGISTER_ID_LEN (256)
  45923. #define MAX_APP_ID_LEN (256)
  45924. #define MAX_URL_LEN (1024)
  45925. #define MAX_IOS_CERTIFICATE_LEN (1024 * 14)
  45926. #define MAX_IOS_SECRET_KEY_LEN (512)
  45927. #define MAX_MOBILE_CHANNEL_NUM (256)
  45928. ///@brief 平台类型
  45929. typedef enum tagEM_MOBILE_SERVER_TYPE
  45930. {
  45931. EM_MOBILE_SERVER_TYPE_UNKNOWN, // 未知
  45932. EM_MOBILE_SERVER_TYPE_APPLE, // Apple
  45933. EM_MOBILE_SERVER_TYPE_ANDROID, // Android
  45934. EM_MOBILE_SERVER_TYPE_SDKCLOUD, // DAHUA_CLOUD
  45935. } EM_MOBILE_SERVER_TYPE;
  45936. ///@brief 推送服务器配置
  45937. typedef struct tagNET_PUSH_SERVER_INFO
  45938. {
  45939. char szAddress[MAX_URL_LEN]; // 地址
  45940. int nPort; // 端口
  45941. } NET_PUSH_SERVER_INFO;
  45942. ///@brief 事件子类型
  45943. typedef enum tagEM_EVENT_SUB_CODE
  45944. {
  45945. EM_EVENT_SUB_CODE_UNKNOWN = -1, // 未知
  45946. EM_EVENT_SUB_CODE_LOSS, // Loss
  45947. EM_EVENT_SUB_CODE_COVER, // Cover
  45948. EM_EVENT_SUB_CODE_FROZEN, // Frozen
  45949. EM_EVENT_SUB_CODE_LIGHT, // Light
  45950. EM_EVENT_SUB_CODE_DARK, // Dark
  45951. EM_EVENT_SUB_CODE_SCENECHANGE, // SceneChange
  45952. } EM_EVENT_SUB_CODE;
  45953. ///@brief 订阅类型
  45954. typedef struct tagNET_SUBSCRIBE_INFO
  45955. {
  45956. int nCode; // 事件码
  45957. EM_EVENT_SUB_CODE emSubCode; // 事件子类型, EM_EVENT_SUB_CODE_UNKNOWN为无效
  45958. // 仅对VideoAbnormalDetection,AlarmLocal等包含多种类型的报警事件有效
  45959. int nChnNum; // 订阅的通道数量, 若无通道概念则为0
  45960. int nIndexs[MAX_MOBILE_CHANNEL_NUM]; // 通道号集合
  45961. char szNumber[DH_COMMON_STRING_16]; // 订阅"CallNoAnswered "事件时有效
  45962. // 无应答号码(设备呼叫这些号码,无应答时,将向手机推送消息)
  45963. // CFG_CMD_MOBILE_PUSH_NOFITY_CFG时有效
  45964. char szSound[DH_COMMON_STRING_64]; // 手机端收到此事件时播放需播放的声音文件
  45965. char szIndexsExt[DH_COMMON_STRING_32][DH_COMMON_STRING_16]; //通道号集合扩展
  45966. } NET_SUBSCRIBE_INFO;
  45967. ///@brief 推送网关类型
  45968. typedef enum tagEM_PUSH_GATEWAY_TYPE
  45969. {
  45970. EM_PUSH_GATEWAY_TYPE_UNKNOWN, // 未知
  45971. EM_PUSH_GATEWAY_TYPE_APPLE_PUSH, // 苹果推送网关, ApplePush
  45972. EM_PUSH_GATEWAY_TYPE_ANDROID_SDKPUSH, // 安卓推送网关, AndroidDahuaPush
  45973. EM_PUSH_GATEWAY_TYPE_ANDROID_JPUSH, // 安卓极光推送网关, AndroidJPush
  45974. EM_PUSH_GATEWAY_TYPE_ANDROID_GCM, // 安卓GCM网关, AndroidGCM
  45975. } EM_PUSH_GATEWAY_TYPE;
  45976. ///@brief 手机push notification配置, 使用RegisterID订阅
  45977. typedef struct tagNET_MOBILE_PUSH_NOTIFY
  45978. {
  45979. DWORD dwSize;
  45980. char szRegisterID[MAX_REGISTER_ID_LEN]; // 手机向Appple/ Android服务器注册返回的,每次不同
  45981. EM_MOBILE_SERVER_TYPE emServerType; // 平台类型
  45982. int nPeriodOfValidity; // 有效时间,单位为秒
  45983. char szAuthServerAddr[MAX_URL_LEN]; // Android验证服务器地址
  45984. int nAuthServerPort; // Android验证服务器端口
  45985. char szPushServerAddr[MAX_URL_LEN]; // 推送服务器地址(代理,末选服务器,供兼容)
  45986. // 按官方服务器要求,选用最新的加密算法再转发给官方服务器
  45987. int nPushServerPort; // 推送服务器端口
  45988. NET_PUSH_SERVER_INFO stuPushServerMain; // 推送服务器配置, 官方。首选服务器,如果推送失败,再尝试重定向或代理服务器
  45989. NET_PUSH_SERVER_INFO stuPushRedirectServer; // 推送服务器配置
  45990. char szDevName[DH_COMMON_STRING_64]; // 设备别名,手机端设置显示
  45991. char szDevID[DH_COMMON_STRING_64]; // 设备标识,手机端设置使用
  45992. char szUser[DH_COMMON_STRING_64]; // 登陆用户名
  45993. char szPassword[DH_COMMON_STRING_64]; // 密码
  45994. char szCertificate[MAX_IOS_CERTIFICATE_LEN]; // ios证书信息,base64之后的字符串,需要采用TLS加密时有效
  45995. char szSecretKey[MAX_IOS_SECRET_KEY_LEN]; // ios密钥,base64之后字符串
  45996. int nSubScribeMax; // 最大订阅类型个数, 表示pstuSubscribes的对象数量
  45997. int nSubScribeNum; // 实际的订阅类型个数, 获取配置有效
  45998. NET_SUBSCRIBE_INFO *pstuSubscribes; // 订阅类型,由用户申请内存,大小为sizeof(NET_SUBSCRIBE_INFO)*nSubScribeMax
  45999. BYTE byReserved[4]; // 保留字节,用于字节对齐
  46000. BOOL bUserEx; // 登陆用户名的扩展是否有效
  46001. char szUserEx[256]; // 登陆用户名的扩展
  46002. } NET_MOBILE_PUSH_NOTIFY;
  46003. ///@brief 删除手机订阅推送信息入参, CLIENT_DelMobilePushNotify
  46004. typedef struct tagNET_MOBILE_PUSH_NOTIFY_DEL
  46005. {
  46006. DWORD dwSize;
  46007. char szRegisterID[MAX_REGISTER_ID_LEN]; // 手机向Appple/ Android服务器注册返回的,每次不同
  46008. } NET_MOBILE_PUSH_NOTIFY_DEL;
  46009. ///@brief 手机push notification配置, 使用RegisterID+AppID订阅
  46010. typedef struct tagNET_MOBILE_PUSH_NOTIFY_CFG
  46011. {
  46012. DWORD dwSize;
  46013. char szRegisterID[MAX_REGISTER_ID_LEN]; // 手机向Appple/ Android服务器注册返回的,每次不同
  46014. char szAppID[MAX_APP_ID_LEN]; // 手机每开一个客户端,会产生一个
  46015. EM_MOBILE_SERVER_TYPE emServerType; // 平台类型
  46016. EM_PUSH_GATEWAY_TYPE emPushGatewayType; // 推送网关类型, emServerType为EM_MOBILE_SERVER_TYPE_SDKCLOUD时有效
  46017. int nPeriodOfValidity; // 有效时间,单位为秒
  46018. char szAuthServerAddr[MAX_URL_LEN]; // Android验证服务器地址
  46019. int nAuthServerPort; // Android验证服务器端口
  46020. char szPushServerAddr[MAX_URL_LEN]; // 推送服务器地址
  46021. // 按官方服务器要求,选用最新的加密算法再转发给官方服务器
  46022. int nPushServerPort; // 推送服务器端口
  46023. char szDevName[DH_COMMON_STRING_64]; // 设备别名,手机端设置显示
  46024. char szDevID[DH_COMMON_STRING_64]; // 设备标识,手机端设置使用
  46025. char szUser[DH_COMMON_STRING_64]; // 登陆用户名
  46026. char szPassword[DH_COMMON_STRING_64]; // 密码
  46027. char szCertificate[MAX_IOS_CERTIFICATE_LEN]; // ios证书信息,base64之后的字符串,需要采用TLS加密时有效
  46028. char szSecretKey[MAX_IOS_SECRET_KEY_LEN]; // ios密钥,base64之后字符串
  46029. int nSubScribeMax; // 最大订阅类型个数, 表示pstuSubscribes的对象数量
  46030. int nSubScribeNum; // 实际的订阅类型个数, 获取配置有效
  46031. NET_SUBSCRIBE_INFO *pstuSubscribes; // 订阅类型,由用户申请内存,大小为sizeof(NET_SUBSCRIBE_INFO)*nSubScribeMax
  46032. NET_PUSH_SERVER_INFO stuPushServerMain; // 推送服务器配置, 官方。首选服务器,如果推送失败,再尝试重定向或代理服务器
  46033. NET_PUSH_SERVER_INFO stuPushRedirectServer; // 推送服务器配置
  46034. BYTE byReserved[4]; // 保留字节,用于字节对齐
  46035. BOOL bUserEx; // 登陆用户名的扩展是否有效
  46036. char szUserEx[256]; // 登陆用户名的扩展
  46037. } NET_MOBILE_PUSH_NOTIFY_CFG;
  46038. ///@brief 订阅类型
  46039. typedef struct tagNET_SUBSCRIBE_INFO_EX
  46040. {
  46041. char szCode[MAX_COMMON_STRING_64]; // 事件码
  46042. char szSubCode[MAX_COMMON_STRING_64]; // 事件子类型
  46043. // 仅对VideoAbnormalDetection,AlarmLocal等包含多种类型的报警事件有效
  46044. int nChnNum; // 订阅的通道数量, 若无通道概念则为0
  46045. int nIndexs[MAX_MOBILE_CHANNEL_NUM]; // 通道号集合
  46046. char szNumber[DH_COMMON_STRING_16]; // 订阅"CallNoAnswered "事件时有效
  46047. // 无应答号码(设备呼叫这些号码,无应答时,将向手机推送消息)
  46048. // CFG_CMD_MOBILE_PUSH_NOFITY_CFG时有效
  46049. char szSound[DH_COMMON_STRING_64]; // 手机端收到此事件时播放需播放的声音文件
  46050. char szIndexsExt[DH_COMMON_STRING_32][DH_COMMON_STRING_16]; //通道号集合扩展
  46051. void* pstuCustomFilter; // 过滤器, 由szCode的类型决定,其他未支持类型则填NULL
  46052. // 当szCode为"FaceComparision"时,类型为:NET_CUSTOM_TILTER_OF_FACE_COMPARISION(目前只支持这种)
  46053. BYTE byReserved[504]; // 保留字节
  46054. } NET_SUBSCRIBE_INFO_EX;
  46055. ///@brief 手机push notification 通用信息
  46056. typedef struct tagNET_MOBILE_PUSH_NOTIFICATION_GENERAL_INFO
  46057. {
  46058. char szRegisterID[MAX_REGISTER_ID_LEN]; // 手机向Appple/ Android服务器注册返回的,每次不同
  46059. char szAppID[MAX_APP_ID_LEN]; // 手机每开一个客户端,会产生一个
  46060. EM_MOBILE_SERVER_TYPE emServerType; // 平台类型
  46061. EM_PUSH_GATEWAY_TYPE emPushGatewayType; // 推送网关类型, emServerType为EM_MOBILE_SERVER_TYPE_SDKCLOUD时有效
  46062. int nPeriodOfValidity; // 有效时间,单位为秒
  46063. char szAuthServerAddr[MAX_URL_LEN]; // Android验证服务器地址
  46064. int nAuthServerPort; // Android验证服务器端口
  46065. // 按官方服务器要求,选用最新的加密算法再转发给官方服务器
  46066. char szDevName[DH_COMMON_STRING_64]; // 设备别名,手机端设置显示
  46067. char szDevID[DH_COMMON_STRING_64]; // 设备标识,手机端设置使用
  46068. char szUser[DH_COMMON_STRING_256]; // 登陆用户名
  46069. char szCertificate[MAX_IOS_CERTIFICATE_LEN]; // ios证书信息,base64之后的字符串,需要采用TLS加密时有效
  46070. char szSecretKey[MAX_IOS_SECRET_KEY_LEN]; // ios密钥,base64之后字符串
  46071. char szBindingUserName[DH_COMMON_STRING_64]; // APP配置所绑定的用户名(当删除该用户时候,需要同时把该条配置删除,实现不再推送到APP)
  46072. int nSubScribeMax; // 最大订阅类型个数, 表示pstuSubscribes的对象数量
  46073. int nSubScribeNum; // 实际的订阅类型个数, 获取配置有效
  46074. NET_SUBSCRIBE_INFO_EX *pstuSubscribes; // 订阅类型,由用户申请内存,大小为sizeof(NET_SUBSCRIBE_INFO)*nSubScribeMax
  46075. NET_PUSH_SERVER_INFO stuPushServerMain; // 推送服务器配置, 官方。首选服务器,如果推送失败,再尝试重定向或代理服务器
  46076. DH_TSECT stuAllEventPushTime[DH_N_WEEKS][DH_N_TSECT];// 设备推送时间段,为一个7*6的二维数组,7个元素对应每周7天(第一个为星期日),每天内最多6个单独时间段。
  46077. // 每个时间段的第一个数字1代表该时间段使能,0为非使能状态。
  46078. BYTE byReserved[1024]; // 保留字节
  46079. } NET_MOBILE_PUSH_NOTIFICATION_GENERAL_INFO;
  46080. ///@brief 删除手机订阅推送信息入参, CLIENT_DelMobilePushNotify
  46081. typedef struct tagNET_MOBILE_PUSH_NOTIFY_CFG_DEL
  46082. {
  46083. DWORD dwSize;
  46084. char szRegisterID[MAX_REGISTER_ID_LEN]; // 手机向Appple/ Android服务器注册返回的,每次不同
  46085. char szAppID[MAX_APP_ID_LEN]; // 手机每开一个客户端,会产生一个
  46086. } NET_MOBILE_PUSH_NOTIFY_CFG_DEL;
  46087. ///@brief 手机登陆时过滤可选方式,按照类型进行|或操作。
  46088. typedef enum tagEM_OPTTYPE_MOBILE_TYPE
  46089. {
  46090. OPTTYPE_MOBILE_DEVICE_ATTR =0x00000001, // 设备属性
  46091. OPTTYPE_MOBILE_DEVICE_SN =0x00000002, // 设备序列号
  46092. OPTTYPE_MOBILE_DISK_INFO =0x00000004, // 硬盘信息
  46093. OPTTYPE_MOBILE_DIGITAL_NUM =0x00000008, // 数字通道个数
  46094. OPTTYPE_MOBILE_ALARM_IO =0x00000010, // 报警输入输出
  46095. OPTTYPE_MOBILE_DEVICE_ABILITY =0x00000020, // 能力集
  46096. OPTTYPE_MOBILE_STATE_SOFTWARE =0x00001000, // 查询软件版本信息APP优化
  46097. }EM_OPTTYPE_MOBILE_TYPE;
  46098. ///@brief SDK设置内部优化方案
  46099. typedef enum tagEmOptimizeType
  46100. {
  46101. EM_OPT_TYPE_DEFAULT = 0, // 默认不优化
  46102. EM_OPT_TYPE_MOBILE_V1 = 1, // 和选项 EM_OPT_TYPE_MOBILE_OPTION冲突,两者只能使用一个,不支持异步登陆优化
  46103. // 手机使用优化,开启后,默认过滤设备属性和硬盘信息.
  46104. EM_OPT_TYPE_P2P_NETPARAM_V1 = 2, // P2P网络参数设置,pParam 为 NET_PARAM*
  46105. EM_OPT_TYPE_MOBILE_OPTION = 3, // 和选项 EM_OPT_TYPE_MOBILE_V1冲突,两者只能使用一个,支持异步登陆优化
  46106. // 手机优化选项, 参数int, 按位从低到高, 传入的值参考枚举类型 EM_OPTTYPE_MOBILE_TYPE
  46107. }EM_OPTIMIZE_TYPE;
  46108. ///@brief CLIENT_FileStreamMotionMatch输入参数
  46109. typedef struct tagNET_IN_MOTIONMATCH_PARAM
  46110. {
  46111. DWORD dwSize; // 结构体大小 , dwSize 需赋值为 sizeof(NET_IN_MOTIONMATCH_PARAM)
  46112. BOOL bFileName; // 文件名是否作为有效的查询条件,若文件名有效,则不用填充文件信息(stRecordInfo)
  46113. char szFileName[MAX_PATH]; // 文件名
  46114. NET_RECORDFILE_INFO stuRecordInfo; // 文件信息
  46115. int nRegionNum; // 规则检测区域顶点数
  46116. DH_POINT stuRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域, 横坐标0~21, 纵坐标0~17
  46117. } NET_IN_MOTIONMATCH_PARAM;
  46118. ///@brief 时间段
  46119. typedef struct tagNET_TIME_BEGIN_END
  46120. {
  46121. NET_TIME stuBegin; // 开始
  46122. NET_TIME stuEnd; // 结束
  46123. } NET_TIME_BEGIN_END;
  46124. #define NET_SMART_SEARTCH_TIME_SECTION_MAX (128)
  46125. ///@brief CLIENT_FileStreamMotionMatch输出参数
  46126. typedef struct tagNET_OUT_MOTIONMATCH_PARAM
  46127. {
  46128. DWORD dwSize; // 结构体大小 , dwSize 需赋值为 sizeof(NET_OUT_MOTIONMATCH_PARAM)
  46129. int nTimeNum; // 查询到的时间段数目
  46130. NET_TIME_BEGIN_END stuTime[NET_SMART_SEARTCH_TIME_SECTION_MAX]; // 时间段
  46131. } NET_OUT_MOTIONMATCH_PARAM;
  46132. ///@brief CLIENT_SnapPictureToFile接口输入参数
  46133. typedef struct tagNET_IN_SNAP_PIC_TO_FILE_PARAM
  46134. {
  46135. DWORD dwSize;
  46136. SNAP_PARAMS stuParam; // 抓图参数, 其中mode字段仅一次性抓图, 不支持定时或持续抓图; 除了车载DVR, 其他设备仅支持每秒一张的抓图频率
  46137. char szFilePath[MAX_PATH]; // 写入文件的地址
  46138. }NET_IN_SNAP_PIC_TO_FILE_PARAM;
  46139. ///@brief CLIENT_SnapPictureToFile接口输出参数
  46140. typedef struct tagNET_OUT_SNAP_PIC_TO_FILE_PARAM
  46141. {
  46142. DWORD dwSize;
  46143. char* szPicBuf; // 图片内容,用户分配内存,大小为dwPicBufLen
  46144. DWORD dwPicBufLen; // 图片内容内存大小, 单位:字节
  46145. DWORD dwPicBufRetLen; // 返回的图片大小, 单位:字节
  46146. }NET_OUT_SNAP_PIC_TO_FILE_PARAM;
  46147. ///@brief 报警事件类型DH_ALARM_BUS_SHARP_TURN(车辆急转事件)对应的数据描述信息
  46148. typedef struct tagALARM_BUS_SHARP_TURN_INFO
  46149. {
  46150. DWORD dwSize;
  46151. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  46152. NET_TIME_EX stuTime; // 事件发生时间
  46153. BYTE byReserved[4]; // 字节对齐
  46154. } ALARM_BUS_SHARP_TURN_INFO;
  46155. ///@brief 报警事件类型DH_ALARM_BUS_SCRAM(车辆急停事件)对应的数据描述信息
  46156. typedef struct tagALARM_BUS_SCRAM_INFO
  46157. {
  46158. DWORD dwSize;
  46159. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  46160. } ALARM_BUS_SCRAM_INFO;
  46161. ///@brief 报警事件类型DH_ALARM_BUS_SHARP_ACCELERATE(车辆急加速事件)对应的数据描述信息
  46162. typedef struct tagALARM_BUS_SHARP_ACCELERATE_INFO
  46163. {
  46164. DWORD dwSize;
  46165. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  46166. NET_TIME_EX stuTime; // 事件发生的时间
  46167. BYTE byReserved[4]; // 字节对齐
  46168. } ALARM_BUS_SHARP_ACCELERATE_INFO;
  46169. ///@brief 报警事件类型DH_ALARM_BUS_SHARP_DECELERATE(车辆急减速事件)对应的数据描述信息
  46170. typedef struct tagALARM_BUS_SHARP_DECELERATE_INFO
  46171. {
  46172. DWORD dwSize;
  46173. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  46174. NET_TIME_EX stuTime; // 事件发生的时间
  46175. BYTE byReserved[4]; // 字节对齐
  46176. } ALARM_BUS_SHARP_DECELERATE_INFO;
  46177. ///@brief 门禁卡数据操作类型
  46178. typedef enum tagNET_ACCESS_ACTION_TYPE
  46179. {
  46180. NET_ACCESS_ACTION_TYPE_UNKNOWN = 0, // 未知
  46181. NET_ACCESS_ACTION_TYPE_INSERT = 1, // 插入
  46182. NET_ACCESS_ACTION_TYPE_UPDATE = 2, // 更新
  46183. NET_ACCESS_ACTION_TYPE_REMOVE = 3, // 删除
  46184. }NET_ACCESS_ACTION_TYPE;
  46185. ///@brief 门禁卡操作数据错误码
  46186. typedef enum tagNET_ACCESS_ERRORCODE
  46187. {
  46188. NET_ACCESS_ERRORCODE_UNKNOWN = 0, // 未知错误
  46189. NET_ACCESS_ERRORCODE_NOTSUPPORT = 1, // 不支持该数据类型
  46190. NET_ACCESS_ERRORCODE_FULLDATA = 2, // 数据类型已存满
  46191. NET_ACCESS_ERRORCODE_NOTSUPPORTISSUED = 3, // 不支持下发操作
  46192. }NET_ACCESS_ERRORCODE;
  46193. ///@brief 门禁卡数据操作事件
  46194. typedef struct tagALARM_ACCESS_CARD_OPERATE_INFO
  46195. {
  46196. DWORD dwSize;
  46197. NET_ACCESS_ACTION_TYPE emActionType; // 门禁卡数据操作类型
  46198. char szCardNo[DH_MAX_CARDINFO_LEN]; // 门禁卡卡号
  46199. NET_THREE_STATUS_BOOL emResult; // 操作结果,-1为未知,0为失败,1为成功,
  46200. int nChannelID; // 门通道号(或者门锁,门和门锁一一对应), 从0开始
  46201. char szCredentialHolder[16]; // 身份拥有者
  46202. NET_ACCESS_METHOD emType; // 用户类型
  46203. char szSerialNum[32]; // 序列号
  46204. int nIndex; // 某开门方式下的索引号
  46205. int nTaskID; // 任务ID
  46206. NET_ACCESS_ERRORCODE emErrorde; // 操作错误码 (只有当操作结果emResult=0时才有效)
  46207. }ALARM_ACCESS_CARD_OPERATE_INFO;
  46208. ///@brief 报警事件类型DH_EVENT_TAKENAWAYDETECTION(物品搬移事件)对应的数据描述信息
  46209. typedef struct tagALARM_TAKENAWAY_DETECTION_INFO
  46210. {
  46211. DWORD dwSize;
  46212. int nChannelID; // 通道号
  46213. double PTS; // 时间戳(单位是毫秒)
  46214. NET_TIME_EX UTC; // 事件发生的时间
  46215. int nEventID; // 事件ID
  46216. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46217. int nOccurrenceCount; // 规则被触发生次数
  46218. int nLevel; // 事件级别,GB30147需求项, 0 提示1 普通2 警告
  46219. short nPreserID; // 事件触发的预置点号,从1开始(没有表示未知)
  46220. char szPresetName[64]; // 事件触发的预置名称
  46221. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46222. } ALARM_TAKENAWAY_DETECTION_INFO;
  46223. ///@brief 报警事件类型 DH_EVENT_VIDEOABNORMALDETECTION (视频异常事件)对应的数据描述信息
  46224. typedef struct tagALARM_VIDEOABNORMAL_DETECTION_INFO
  46225. {
  46226. DWORD dwSize;
  46227. int nChannelID; // 通道号
  46228. double PTS; // 时间戳(单位是毫秒)
  46229. NET_TIME_EX UTC; // 事件发生的时间
  46230. int nEventID; // 事件ID
  46231. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46232. int nType; // 检测类型,0-视频丢失, 1-视频遮挡, 2-画面冻结, 3-过亮, 4-过暗, 5-场景变化
  46233. // 6-条纹检测 , 7-噪声检测 , 8-偏色检测 , 9-视频模糊检测 , 10-对比度异常检测
  46234. // 11-视频运动, 12-视频闪烁, 13-视频颜色, 14-虚焦检测, 15-过曝检测, 16-场景剧变
  46235. int nValue; // 检测值,值越高表示视频质量越差, GB30147定义
  46236. int nOccurrenceCount; // 规则被触发生次数
  46237. } ALARM_VIDEOABNORMAL_DETECTION_INFO;
  46238. ///@brief 报警事件类型DH_EVENT_LOCALALARM(外部报警事件)对应的数据描述信息
  46239. typedef struct tagALARM_LOCAL_ALARM_INFO
  46240. {
  46241. DWORD dwSize;
  46242. int nChannelID; // 通道号
  46243. double PTS; // 时间戳(单位是毫秒)
  46244. NET_TIME_EX UTC; // 事件发生的时间
  46245. int nEventID; // 事件ID
  46246. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46247. int nSenseType; // 传感器类型
  46248. int nDefenceAreaType; // 防区类型, 详见EM_NET_DEFENCE_AREA_TYPE
  46249. } ALARM_LOCAL_ALARM_INFO;
  46250. ///@brief 动检触发类型
  46251. typedef enum tagEM_MOTION_DETECT_TYPE
  46252. {
  46253. EM_MOTION_DETECT_UNKNOWN, // 未知
  46254. EM_MOTION_DETECT_HUMAN, // 人
  46255. EM_MOTION_DETECT_VEHICLE, // 车
  46256. EM_MOTION_DETECT_HUMAN_AND_VEHICLE, // 人和车
  46257. } EM_MOTION_DETECT_TYPE;
  46258. ///@brief 动检区域信息
  46259. typedef struct tagNET_MOTIONDETECT_REGION_INFO
  46260. {
  46261. UINT nRegionID; // 区域ID
  46262. char szRegionName[64]; // 区域名称
  46263. BYTE bReserved[508]; // 保留字节
  46264. } NET_MOTIONDETECT_REGION_INFO;
  46265. ///@brief 报警事件类型DH_EVENT_MOTIONDETECT(视频移动侦测事件)对应的数据描述信息
  46266. typedef struct tagALARM_MOTIONDETECT_INFO
  46267. {
  46268. DWORD dwSize;
  46269. int nChannelID; // 通道号
  46270. double PTS; // 时间戳(单位是毫秒)
  46271. NET_TIME_EX UTC; // 事件发生的时间
  46272. int nEventID; // 事件ID
  46273. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46274. UINT nRegionNum; // 动检区域个数
  46275. NET_MOTIONDETECT_REGION_INFO stuRegion[32]; // 动检区域信息
  46276. BOOL bSmartMotionEnable; // 智能动检是否使能
  46277. UINT nDetectTypeNum; // 动检触发类型个数
  46278. EM_MOTION_DETECT_TYPE emDetectType[32]; // 动检触发类型, 当nRegionNum大于0时,和stuRegion数组一一对应,
  46279. // 若nRegionNum为0,触发区域未知,不与窗口绑定,默认第一个元素表示触发类型
  46280. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46281. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  46282. } ALARM_MOTIONDETECT_INFO;
  46283. ///@brief 智能动检(人)对象信息
  46284. typedef struct tagNET_SMARTDETECT_HUMAN_OBJECT
  46285. {
  46286. UINT nHumanID; // 人动检ID
  46287. NET_RECT stuRect; // 人的位置
  46288. BYTE bReserved[508]; // 保留字节
  46289. } NET_SMARTDETECT_HUMAN_OBJECT;
  46290. ///@brief 报警事件类型DH_ALARM_SMARTMOTION_HUMAN(智能视频移动侦测事件(人))对应的数据描述信息
  46291. typedef struct tagALARM_SMARTMOTION_HUMAN_INFO
  46292. {
  46293. int nChannelID; // 通道号
  46294. NET_TIME_EX UTC; // 事件发生的时间
  46295. double PTS; // 时间戳(单位是毫秒)
  46296. int nEventID; // 事件ID
  46297. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46298. NET_MOTIONDETECT_REGION_INFO stuSmartRegion[32]; // 智能动检区域信息
  46299. UINT nSmartRegionNum; // 智能动检区域个数
  46300. UINT nHumanObjectNum; // 智能动检(人)对象个数
  46301. NET_SMARTDETECT_HUMAN_OBJECT stuHumanObject[64]; // 智能动检(人)对象信息
  46302. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46303. BYTE bReserved[1024]; // 保留字节
  46304. } ALARM_SMARTMOTION_HUMAN_INFO;
  46305. ///@brief 智能动检(车)对象信息
  46306. typedef struct tagNET_SMARTDETECT_VEHICLE_OBJECT
  46307. {
  46308. UINT nVehicleID; // 车动检ID
  46309. NET_RECT stuRect; // 车的位置
  46310. BYTE bReserved[508]; // 保留字节
  46311. } NET_SMARTDETECT_VEHICLE_OBJECT;
  46312. ///@brief 报警事件类型DH_ALARM_SMARTMOTION_VEHICLE(智能视频移动侦测事件(车))对应的数据描述信息
  46313. typedef struct tagALARM_SMARTMOTION_VEHICLE_INFO
  46314. {
  46315. int nChannelID; // 通道号
  46316. NET_TIME_EX UTC; // 事件发生的时间
  46317. double PTS; // 时间戳(单位是毫秒)
  46318. int nEventID; // 事件ID
  46319. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46320. NET_MOTIONDETECT_REGION_INFO stuSmartRegion[32]; // 智能动检区域信息
  46321. UINT nSmartRegionNum; // 智能动检区域个数
  46322. UINT nVehicleObjectNum; // 智能动检(车)对象个数
  46323. NET_SMARTDETECT_VEHICLE_OBJECT stuVehicleObject[64]; // 智能动检(车)对象信息
  46324. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46325. BYTE bReserved[1024]; // 保留字节
  46326. } ALARM_SMARTMOTION_VEHICLE_INFO;
  46327. ///@brief 报警事件类型DH_ALARM_POLICE_CHECK(警员签入签出事件)对应的数据描述信息
  46328. typedef struct tagALARM_POLICE_CHECK_INFO
  46329. {
  46330. DWORD dwSize;
  46331. int nChannelID; // 通道号
  46332. double PTS; // 时间戳(单位是毫秒)
  46333. NET_TIME_EX UTC; // 事件发生的时间
  46334. int nEventID; // 事件ID
  46335. int nEventAction; // 事件动作
  46336. char szId[32]; // 签到人ID号
  46337. char szName[32]; // 签到人姓名,UTF8
  46338. int nSignType; // 类型, 详情查看NET_DRIVER_CHECK_TYPE
  46339. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  46340. char szComment[1024]; // 备注信息
  46341. } ALARM_POLICE_CHECK_INFO;
  46342. ///@brief 报警事件类型DH_ALARM_NEW_FILE(new file事件)对应的数据描述信息
  46343. typedef struct tagALARM_NEW_FILE_INFO
  46344. {
  46345. DWORD dwSize;
  46346. int nChannel; // 抓图通道号
  46347. int nEventID; // 事件ID
  46348. DWORD dwEvent; // 事件类型
  46349. int FileSize; // 文件大小,单位是字节
  46350. int nIndex; // 事件源通道
  46351. DWORD dwStorPoint; // 存储点
  46352. char szFileName[DH_COMMON_STRING_128]; // 文件名
  46353. }ALARM_NEW_FILE_INFO;
  46354. ///@brief 云台诊断状态类型
  46355. typedef enum tagEM_PTZ_STATUS_TYPE
  46356. {
  46357. EM_PTZ_STATUS_UNKNOW, // 未知状态,返回状态值错误
  46358. EM_PTZ_STATUS_NORMAL, // 正常
  46359. EM_PTZ_STATUS_PANOC_FAILED, // 水平光耦异常
  46360. EM_PTZ_STATUS_TILEOC_FAILED, // 垂直光耦异常
  46361. EM_PTZ_STATUS_OC_FAILED // 全部光耦都异常
  46362. } EM_PTZ_STATUS_TYPE;
  46363. ///@brief 云台状态诊断事件信息(对应DH_ALARM_PTZ_DIAGNOSES)
  46364. typedef struct tagALARM_PTZ_DIAGNOSES_INFO
  46365. {
  46366. int nChannel; // 视频通道号(球机所在的通道号)
  46367. NET_TIME_EX UTC; // 事件产生时间
  46368. EM_PTZ_STATUS_TYPE emPtzStat; // 云台诊断状态
  46369. BYTE Reserved[512]; // 保留字节
  46370. } ALARM_PTZ_DIAGNOSES_INFO;
  46371. ///@brief 爆闪灯(闪光灯)报警事件类型 DH_ALARM_FLASH_LIGHT_FAULT
  46372. typedef struct tagALARM_FLASH_LIGHT_FAULT_INFO
  46373. {
  46374. double PTS; // 时间戳(单位是毫秒)
  46375. NET_TIME_EX UTC; // 事件发生的时间
  46376. int nEventAction; // 事件动作, 1-表示事件开始, 2-表示事件结束;
  46377. int nLightNum; // 闪光灯个数
  46378. int nDevID[MAX_FLASH_LIGHT_NUM]; // 故障的闪光灯设备ID
  46379. int nLane; // 车道号
  46380. BYTE bReserved[512]; // 保留字节
  46381. }ALARM_FLASH_LIGHT_FAULT_INFO;
  46382. ///@brief 频闪灯报警事件类型 DH_ALARM_STROBOSCOPIC_LIGTHT_FAULT
  46383. typedef struct tagALARM_STROBOSCOPIC_LIGTHT_FAULT_INFO
  46384. {
  46385. double PTS; // 时间戳(单位是毫秒)
  46386. NET_TIME_EX UTC; // 事件发生的时间
  46387. int nEventAction; // 事件动作, 1-表示事件开始, 2-表示事件结束;
  46388. int nLightNum; // 频闪灯个数
  46389. int nDevID[MAX_STROBOSCOPIC_LIGHT_NUM]; // 故障的频闪灯设备ID
  46390. int nLane; // 车道号
  46391. BYTE bReserved[512]; // 保留字节
  46392. }ALARM_STROBOSCOPIC_LIGTHT_FAULT_INFO;
  46393. ///@brief 人数越上限类型
  46394. typedef enum tagEM_UPPER_LIMIT_TYPE
  46395. {
  46396. EM_UPPER_LIMIT_TYPE_UNKNOWN, // 未知
  46397. EM_UPPER_LIMIT_TYPE_ENTER_OVER, // 进入越上限
  46398. EM_UPPER_LIMIT_TYPE_EXIT_OVER, // 出来越上限
  46399. EM_UPPER_LIMIT_TYPE_INSIDE_OVER, // 内部越上限
  46400. EM_UPPER_LIMIT_TYPE_PASS_OVER, // 经过越上限
  46401. } EM_UPPER_LIMIT_TYPE;
  46402. ///@brief 事件类型 DH_ALARM_HUMAM_NUMBER_STATISTIC (人数量/客流量统计事件NumberStat对应的数据描述信息)
  46403. typedef struct tagALARM_NUMBER_STATISTIC_INFO
  46404. {
  46405. double PTS; // 时间戳(单位是毫秒)
  46406. NET_TIME_EX UTC; // 事件发生的时间
  46407. int nEventAction; // 事件动作,0-事件持续, 1-表示事件开始, 2-表示事件结束;
  46408. int nNumber; // 区域内物体的个数
  46409. int nEnteredNumber; // 进入区域或者出入口内的物体个数
  46410. int nExitedNumber; // 出来区域或者出入口内的物体个数
  46411. EM_UPPER_LIMIT_TYPE emUpperLimitType; // 人数越上限类型(EnterOver, ExitOver, InsideOver)
  46412. int nChannelID; // 通道号
  46413. int nPassedNumber; // 经过区域物体的个数
  46414. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46415. BYTE reserved[504]; // 预留
  46416. }ALARM_HUMAN_NUMBER_STATISTIC_INFO;
  46417. ///@brief 事件类型 DH_ALARM_VIDEOUNFOCUS(视频虚焦报警事件)
  46418. typedef struct tagALARM_VIDEOUNFOCUS_INFO
  46419. {
  46420. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46421. int nChannel; // 通道号
  46422. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46423. BYTE reserved[60]; // 预留字节
  46424. }ALARM_VIDEOUNFOCUS_INFO;
  46425. ///@brief 防区布防撤防状态类型
  46426. typedef enum tagEM_DEFENCEMODE
  46427. {
  46428. EM_DEFENCEMODE_UNKNOWN, // "unknown" 未知
  46429. EM_DEFENCEMODE_ARMING, // "Arming" 布防
  46430. EM_DEFENCEMODE_DISARMING, // "Disarming" 撤防
  46431. }EM_DEFENCEMODE;
  46432. ///@brief 触发方式
  46433. typedef enum tagEM_ARMMODECHANGE_TRIGGERMODE
  46434. {
  46435. EM_ARMMODECHANGE_TRIGGERMODE_UNKNOWN, //未知
  46436. EM_ARMMODECHANGE_TRIGGERMODE_NET, //网络用户
  46437. EM_ARMMODECHANGE_TRIGGERMODE_KEYBOARD, //键盘
  46438. EM_ARMMODECHANGE_TRIGGERMODE_REMOTECONTROL, //遥控器
  46439. }EM_ARMMODECHANGE_TRIGGERMODE;
  46440. ///@brief 防区类型
  46441. typedef enum tagEM_ARMMODECHANGE_DEFENCEAREATYPE
  46442. {
  46443. EM_ARMMODECHANGE_DEFENCEAREATYPE_UNKNOWN, //未知
  46444. EM_ARMMODECHANGE_DEFENCEAREATYPE_INTIME, //及时
  46445. EM_ARMMODECHANGE_DEFENCEAREATYPE_DELAY, //延时
  46446. EM_ARMMODECHANGE_DEFENCEAREATYPE_FULLDAY, //全天
  46447. EM_ARMMODECHANGE_DEFENCEAREATYPE_FOLLOW, //跟随
  46448. EM_ARMMODECHANGE_DEFENCEAREATYPE_MEDICAL, //医疗
  46449. EM_ARMMODECHANGE_DEFENCEAREATYPE_PANIC, //恐慌
  46450. EM_ARMMODECHANGE_DEFENCEAREATYPE_FIRE, //火警
  46451. EM_ARMMODECHANGE_DEFENCEAREATYPE_FULLDAYSOUND, //全天有声
  46452. EM_ARMMODECHANGE_DEFENCEAREATYPE_FULLDAYSILENT, //全天无声
  46453. EM_ARMMODECHANGE_DEFENCEAREATYPE_ENTRANCE1, //出入防区1
  46454. EM_ARMMODECHANGE_DEFENCEAREATYPE_ENTRANCE2, //出入防区2
  46455. EM_ARMMODECHANGE_DEFENCEAREATYPE_INSIDE, //内部防区
  46456. EM_ARMMODECHANGE_DEFENCEAREATYPE_OUTSIDE, //外部防区
  46457. EM_ARMMODECHANGE_DEFENCEAREATYPE_PEOPLEDETECT, //人员检测
  46458. }EM_ARMMODECHANGE_DEFENCEAREATYPE;
  46459. ///@brief 事件类型 DH_ALARM_DEFENCE_ARMMODECHANGE (防区布撤防状态改变事件)
  46460. typedef struct tagALARM_DEFENCE_ARMMODECHANGE_INFO
  46461. {
  46462. EM_DEFENCEMODE emDefenceStatus; //布撤防状态
  46463. int nDefenceID; //防区号
  46464. NET_TIME_EX stuTime; //时间
  46465. EM_ARMMODECHANGE_TRIGGERMODE emTriggerMode; //触发方式
  46466. EM_ARMMODECHANGE_DEFENCEAREATYPE emDefenceAreaType; //防区类型
  46467. int nID; //遥控器编号或键盘地址
  46468. int nAlarmSubSystem; //子系统号
  46469. char szName[64]; //防区名称
  46470. char szNetClientAddr[64]; //用户IP或网络地址
  46471. BYTE reserved[368]; //预留
  46472. }ALARM_DEFENCE_ARMMODECHANGE_INFO;
  46473. ///@brief 工作状态
  46474. typedef enum tagEM_SUBSYSTEMMODE
  46475. {
  46476. EM_SUBSYSTEMMODE_UNKNOWN, // "unknown" 未知
  46477. EM_SUBSYSTEMMODE_ACTIVE, // "active" 激活
  46478. EM_SUBSYSTEMMODE_INACTIVE, // "inactive" 未激活
  46479. EM_SUBSYSTEMMODE_UNDISTRIBUTED, // "undistributed" 未分配
  46480. EM_SUBSYSTEMMODE_ALLARMING, // "AllArming" 全部布防
  46481. EM_SUBSYSTEMMODE_ALLDISARMING, // "AllDisarming" 全部撤防
  46482. EM_SUBSYSTEMMODE_PARTARMING, // "PartArming" 部分布防
  46483. }EM_SUBSYSTEMMODE;
  46484. ///@brief 触发方式
  46485. typedef enum tagEM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE
  46486. {
  46487. EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE_UNKNOWN, //未知
  46488. EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE_NET, //网络用户
  46489. EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE_KEYBOARD, //键盘
  46490. EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE_REMOTECONTROL, //遥控器
  46491. }EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE;
  46492. ///@brief 事件类型 DH_ALARM_SUBSYSTEM_ARMMODECHANGE (子系统布撤防状态改变事件)
  46493. typedef struct tagALARM_SUBSYSTEM_ARMMODECHANGE_INFO
  46494. {
  46495. EM_SUBSYSTEMMODE emSubsystemMode; //布撤防状态 (只支持AllArming,AllDisarming,PartArming三种状态)
  46496. NET_TIME_EX UTC; //事件发生的时间
  46497. char szSubSystemname[64]; //子系统名称
  46498. int nSubSystemID; //子系统编号
  46499. EM_SUBSYSTEM_ARMMODECHANGE_TRIGGERMODE emTriggerMode; //触发方式
  46500. int nID; //键盘或遥控器地址
  46501. char szNetClientAddr[64]; //网络用户IP地址或网络地址
  46502. BYTE reserved[440]; //预留
  46503. }ALARM_SUBSYSTEM_ARMMODECHANGE_INFO;
  46504. ///@brief 红外线检测信息事件 (对应 DH_ALARM_RFID_INFO)
  46505. typedef struct tagALARM_RFID_INFO
  46506. {
  46507. int nAction; // 0:开始 1:停止
  46508. int nIndex; // 通道号
  46509. NET_TIME_EX stuEventTime; // 事件发生的时间
  46510. int nValidCount; // RFID 编号数组有效个数
  46511. char szRfid[10][12]; // RFID 编号数组
  46512. }ALARM_RFID_INFO;
  46513. ///@brief 烟雾检测报警事件 (DH_ALARM_SMOKE_DETECTION)
  46514. typedef struct tagALARM_SMOKE_DETECTION_INFO
  46515. {
  46516. int nAction; // 0:开始 1:停止
  46517. char szName[128]; // 事件名称
  46518. double PTS; // 时间戳(单位是毫秒)
  46519. NET_TIME_EX stuTime; // 事件发生的时间
  46520. int nChannel; // 通道号
  46521. int nEventID; // 事件ID
  46522. int nDetectRegionNum; // 规则检测区域顶点数
  46523. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  46524. UINT nCurChannelHFOV; // 当前报警通道的横向视场角,单位:度,实际角度乘以100
  46525. UINT nCurChannelVFOV; // 当前报警通道的垂直视场角,单位:度,实际角度乘以100
  46526. DH_MSG_OBJECT stuObject; // 检测到的物体
  46527. PTZ_SPACE_UNIT stuPtzPosition; // 云台的坐标和放大倍数
  46528. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46529. char reserved[1024]; // 预留字段
  46530. }ALARM_SMOKE_DETECTION_INFO;
  46531. ///@brief 事件类型 DH_ALARM_PHONECALL_DETECT (打电话检测事件)
  46532. typedef struct tagALARM_PHONECALL_DETECT_INFO
  46533. {
  46534. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46535. char szName[128]; // 事件名称
  46536. BYTE reserved1[4]; // 预留字段
  46537. double PTS; // 时间戳(单位是毫秒)
  46538. NET_TIME_EX stuTime; // 事件发生的时间
  46539. int nChannel; // 通道号
  46540. int nEventID; // 事件ID
  46541. int nDetectRegionNum; // 规则检测区域顶点数
  46542. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  46543. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46544. BYTE reserved[128]; // 预留字段
  46545. } ALARM_PHONECALL_DETECT_INFO;
  46546. ///@brief 事件数据类型
  46547. typedef enum tagNET_EM_EVENT_DATA_TYPE
  46548. {
  46549. NET_EN_EVENT_DATA_TYPE_UNKNOWN, // 未知
  46550. NET_EN_EVENT_DATA_TYPE_REAL, // 实时数据
  46551. NET_EN_EVENT_DATA_TYPE_ALARM, // 报警数据
  46552. }NET_EM_EVENT_DATA_TYPE;
  46553. ///@brief 事件类型 DH_ALARM_FLOATINGOBJECT_DETECTION (漂浮物检测事件)
  46554. typedef struct tagALARM_FLOATINGOBJECT_DETECTION_INFO
  46555. {
  46556. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46557. BYTE reserved1[4]; // 预留字段
  46558. char szName[128]; // 事件名称
  46559. double PTS; // 时间戳(单位是毫秒)
  46560. NET_TIME_EX UTC; // 事件发生的时间
  46561. int nChannel; // 通道号
  46562. int nEventID; // 事件ID
  46563. int nPresetID; // 事件触发的预置点ID
  46564. char szPresetName[64]; // 事件触发的预置名称
  46565. BOOL bExistFloatingObject; // 是否存在漂浮物
  46566. NET_EM_EVENT_DATA_TYPE emEventType; // 事件数据类型
  46567. float fCurrentRatio; // 漂浮物当前占比(相对于检测区域)单位:%, 取值范围[0, 100]
  46568. float fAlarmThreshold; // 报警阈值。漂浮物相对于检测区域的占比, 取值范围[0, 100]
  46569. NET_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  46570. int nDetectRegionNum; // 规则检测区域顶点数
  46571. BYTE byReserved[1020]; // 预留字段
  46572. } ALARM_FLOATINGOBJECT_DETECTION_INFO;
  46573. ///@brief 水位状态
  46574. typedef enum tagNET_EM_WATER_LEVEL_STATUS
  46575. {
  46576. NET_EM_WATER_LEVEL_STATUS_UNKNOWN, // 未知
  46577. NET_EM_WATER_LEVEL_STATUS_NORMAL, // 水位正常
  46578. NET_EM_WATER_LEVEL_STATUS_HIGH, // 水位高于上限阈值
  46579. NET_EM_WATER_LEVEL_STATUS_LOW, // 水位低于上限阈值
  46580. NET_EM_WATER_LEVEL_STATUS4, // 水位状态由正常到高于阈值
  46581. NET_EM_WATER_LEVEL_STATUS5, // 水位状态由高于上限阈值到正常
  46582. NET_EM_WATER_LEVEL_STATUS6, // 水位状态由正常到低于下限阈值
  46583. NET_EM_WATER_LEVEL_STATUS7, // 水位状态由低于下限阈值到正常
  46584. }NET_EM_WATER_LEVEL_STATUS;
  46585. ///@brief 水位尺颜色
  46586. typedef enum tagNET_EM_WATER_RULER_COLOR
  46587. {
  46588. NET_EM_WATER_RULER_COLOR_UNKNOW, // 无法识别
  46589. NET_EM_WATER_RULER_COLOR_BLUE, // 蓝色
  46590. NET_EM_WATER_RULER_COLOR_RED, // 红色
  46591. }NET_EM_WATER_RULER_COLOR;
  46592. ///@brief 水位尺
  46593. typedef struct tagNET_WATER_RULER
  46594. {
  46595. NET_EM_WATER_RULER_COLOR emRulerColor; // 水位尺颜色
  46596. char szRulerNum[128]; // 水位尺编号
  46597. float fWaterLevel; // 水位值(对于有拼接的情况,该值为标定的基准值加上当前刻度值,单位:米)
  46598. BYTE byReserved[512]; // 保留字节
  46599. }NET_WATER_RULER;
  46600. ///@brief 事件类型 DH_ALARM_WATER_LEVEL_DETECTION (水位检测事件)
  46601. typedef struct tagALARM_WATER_LEVEL_DETECTION_INFO
  46602. {
  46603. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46604. BYTE reserved1[4]; // 预留字段
  46605. char szName[128]; // 事件名称
  46606. double PTS; // 时间戳(单位是毫秒)
  46607. NET_TIME_EX UTC; // 事件发生的时间
  46608. int nChannel; // 通道号
  46609. int nEventID; // 事件ID
  46610. int nPresetID; // 预置点ID
  46611. char szPresetName[64]; // 预置点名称
  46612. char szObjectUUID[48]; // 智能物体全局唯一物体标识
  46613. NET_EM_EVENT_DATA_TYPE emEventType; // 事件数据类型
  46614. NET_EM_WATER_LEVEL_STATUS emStatus; // 水位状态
  46615. NET_WATER_RULER stuWaterRuler; // 水位尺
  46616. BOOL bManual; // 主动查询水位功能,用于区分是否为手动触发的上报事件
  46617. BYTE byReserved[1020]; // 预留字段
  46618. } ALARM_WATER_LEVEL_DETECTION_INFO;
  46619. ///@brief 事件类型 DH_ALARM_LOW_SPEED
  46620. typedef struct tagALARM_LOW_SPEED_INFO
  46621. {
  46622. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46623. int nChannel; // 通道号
  46624. char szName[128]; // 事件名称
  46625. double PTS; // 时间戳(单位是毫秒)
  46626. NET_TIME_EX UTC; // 事件发生的时间
  46627. int nEventID; // 事件ID
  46628. BYTE byReserved[256]; // 预留字节
  46629. } ALARM_LOW_SPEED_INFO;
  46630. ///@brief 事件类型 DH_ALARM_TRAFFIC_VEHICLEINOUT
  46631. typedef struct tagALARM_TRAFFIC_VEHICLEINOUT_INFO
  46632. {
  46633. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  46634. int nChannel; // 通道号
  46635. char szName[128]; // 事件名称
  46636. double PTS; // 时间戳(单位是毫秒)
  46637. NET_TIME_EX UTC; // 事件发生的时间
  46638. int nEventID; // 事件ID
  46639. int nLane; // 车道
  46640. UINT nRoadwayNumber; // 自定义车道
  46641. int nVehicleInOut; // 车道状态 0 表示离开车道 1 表示进入车道
  46642. BYTE byReserved[1024]; // 预留字节
  46643. } ALARM_TRAFFIC_VEHICLEINOUT_INFO;
  46644. ///@brief 事件类型DH_ALARM_TRAFFIC_JUNCTION
  46645. typedef struct tagALARM_TAFFIC_JUNCTION_INFO
  46646. {
  46647. int nAction; // 事件动作
  46648. int nChannelID; // 通道号
  46649. char szName[128]; // 事件名称
  46650. BYTE byMainSeatBelt; // 主驾驶座,系安全带状态,1-系安全带,2-未系安全带
  46651. BYTE bySlaveSeatBelt; // 副驾驶座,系安全带状态,1-系安全带,2-未系安全带
  46652. BYTE byVehicleDirection; // 当前被抓拍到的车辆是车头还是车尾,具体请见 EM_VEHICLE_DIRECTION
  46653. BYTE byOpenStrobeState; // 开闸状态,具体请见 EM_OPEN_STROBE_STATE
  46654. BYTE byReserved1[4]; // 字节对齐
  46655. double PTS; // 时间戳(单位是毫秒)
  46656. NET_TIME_EX UTC; // 事件发生的时间
  46657. int nEventID; // 事件ID
  46658. DH_MSG_OBJECT stuObject; // 检测到的物体
  46659. int nLane; // 对应车道号
  46660. DWORD dwBreakingRule; // 违反规则掩码,第一位:闯红灯;
  46661. // 第二位:不按规定车道行驶;
  46662. // 第三位:逆行; 第四位:违章掉头;
  46663. // 第五位:交通堵塞; 第六位:交通异常空闲
  46664. // 第七位:压线行驶; 否则默认为:交通路口事件
  46665. NET_TIME_EX RedLightUTC; // 红灯开始UTC时间
  46666. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  46667. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  46668. int nSpeed; // 车辆实际速度Km/h
  46669. BYTE byDirection; // 路口方向,1-表示正向,2-表示反向
  46670. BYTE byLightState; // LightState表示红绿灯状态:0 未知,1 绿灯,2 红灯,3 黄灯
  46671. BYTE byReserved2; // 保留字节
  46672. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  46673. DH_MSG_OBJECT stuVehicle; // 车身信息
  46674. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  46675. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  46676. char szRecordFile[DH_COMMON_STRING_128]; // 报警对应的原始录像文件信息
  46677. EVENT_JUNCTION_CUSTOM_INFO stuCustomInfo; // 自定义信息
  46678. BYTE byPlateTextSource; // 车牌识别来源, 0:本地算法识别,1:后端服务器算法识别
  46679. BYTE byReserved3[3]; // 保留字节,留待扩展.
  46680. NET_GPS_INFO stuGPSInfo; // GPS信息
  46681. BYTE byNoneMotorInfo; // 0-无非机动车人员信息信息,1-有非机动车人员信息信息
  46682. /* 此字段为1时下面11个字段生效 */
  46683. BYTE byBag; // 是否背包, 0-未知 1-不背包 2-背包
  46684. BYTE byUmbrella; // 是否打伞, 0-未知 1-不打伞 2-打伞
  46685. BYTE byCarrierBag; // 手提包状态,0-未知 1-没有 2-有
  46686. BYTE byHat; // 是否戴帽子, 0-未知 1-不戴帽子 2-戴帽子
  46687. BYTE byHelmet; // 头盔状态,0-未知 1-没有 2-有
  46688. BYTE bySex; // 性别,0-未知 1-男性 2-女性
  46689. BYTE byAge; // 年龄
  46690. NET_COLOR_RGBA stuUpperBodyColor; // 上身颜色
  46691. NET_COLOR_RGBA stuLowerBodyColor; // 下身颜色
  46692. BYTE byUpClothes; // 上身衣服类型 0:未知 1:长袖 2:短袖 3:长裤 4:短裤 5:裙子 6:背心 7:超短裤 8:超短裙
  46693. BYTE byDownClothes; // 下身衣服类型 0:未知 1:长袖 2:短袖 3:长裤 4:短裤 5:裙子 6:背心 7:超短裤 8:超短裙
  46694. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  46695. BYTE byReserved4[22]; // 保留字节,留待扩展
  46696. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频,3RSU
  46697. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  46698. DWORD dwRetCardNumber; // 卡片个数
  46699. EVENT_CARD_INFO stuCardInfo[DH_EVENT_MAX_CARD_NUM]; // 卡片信息
  46700. EVENT_COMM_INFO stCommInfo; // 公共信息
  46701. BOOL bNonMotorInfoEx; // 是否有非机动车信息
  46702. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  46703. EM_TRACK_CAR_STATUS emTrackCarStatus; // 车辆跟踪状态
  46704. char szSerialNo[128]; // 和客户端请求的抓图序列号对应
  46705. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46706. BYTE byReserved[852]; // 保留字节,留待扩展
  46707. } ALARM_TAFFIC_JUNCTION_INFO;
  46708. ///@brief 事件类型DH_ALARM_DOOR_CONTROL(报警输出联动开门事件)对应的数据块描述信息
  46709. typedef struct tagALARM_DOOR_CONTROL_INFO
  46710. {
  46711. int nChannelID; // 通道号
  46712. int nAction; // 0:脉冲 1:开始 2:停止
  46713. char szName[128]; // 事件名称
  46714. double PTS; // 时间戳(单位是毫秒)
  46715. NET_TIME_EX UTC; // 事件发生的时间
  46716. UINT nEventID; // 事件ID
  46717. EM_OPEN_DOOR_METHOD emOpenDoorMethod; // 开门方式
  46718. EM_OPEN_DOOR_STATE emOpenDoorState; // 开门结果
  46719. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同;
  46720. // 格式如下:前2位%d%d:01-视频片段,02-图片,03-文件,99-其他;
  46721. // 中间14位YYYYMMDDhhmmss:年月日时分秒;后5位%u%u%u%u%u:物体ID,如00001
  46722. BYTE byReserved[1024]; // 预留字节
  46723. } ALARM_DOOR_CONTROL_INFO;
  46724. ///@brief 状态
  46725. typedef enum tagNET_EM_ARM_STATUS
  46726. {
  46727. EM_ARM_STATUS_UNKNOWN, // 未知
  46728. EM_ARM_STATUS_DELAY, // 延时
  46729. EM_ARM_STATUS_ARMING, // 布防
  46730. EM_ARM_STATUS_DISARMING, // 撤防
  46731. }NET_EM_ARM_STATUS;
  46732. ///@brief 事件类型DH_ALARM_ARMSTATE(防区状态事件)对应的数据块描述信息
  46733. typedef struct tagALARM_ARMSTATE_INFO
  46734. {
  46735. int nChannelID; // 通道号
  46736. int nAction; // 0:脉冲 1:开始 2:停止
  46737. char szName[128]; // 事件名称
  46738. double PTS; // 时间戳(单位是毫秒)
  46739. NET_TIME_EX UTC; // 事件发生的时间
  46740. UINT nEventID; // 事件ID
  46741. NET_EM_ARM_STATUS emStatus; // 状态
  46742. }ALARM_ARMSTATE_INFO;
  46743. ///@brief 事件类型 DH_ALARM_LAW_ENFORCEMENT_INFO(实时上报执法终端设备信息事件)对应的数据块描述信息
  46744. typedef struct tagALARM_LAW_ENFORCEMENT_INFO
  46745. {
  46746. int nAction; // 0:脉冲 1:开始 2:停止
  46747. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  46748. char szUserID[32]; // 设备跌落时登陆的用户信息用户ID
  46749. char szUserName[128]; // 设备跌落时登陆的用户信息用户名
  46750. BYTE byRserved[4]; // 字节对齐
  46751. } ALARM_LAW_ENFORCEMENT_INFO;
  46752. ///@brief 事件类型DH_ALARM_CONGESTION_DETECTION(道路场景车辆拥堵报警事件)对应的数据块描述信息
  46753. typedef struct tagALARM_CONGESTION_DETECTION_INFO
  46754. {
  46755. int nChannelID; // 通道号
  46756. int nAction; // 0:脉冲 1:开始 2:停止
  46757. char szName[128]; // 事件名称
  46758. double PTS; // 时间戳(单位是毫秒)
  46759. NET_TIME_EX UTC; // 事件发生的时间
  46760. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  46761. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  46762. UINT nEventID; // 事件ID
  46763. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  46764. int nPresetID; // 事件触发的预置点号,从1开始
  46765. char szPresetName[64]; // 事件触发的预置名称
  46766. UINT nAlarmMask; // 报警业务掩码, 不同掩码位表示不同报警类型:bit0位表示是否有拥堵报警;bit1位表示是否有排队报警;
  46767. UINT nVehicleQuantity; // 拥堵车辆数量
  46768. UINT nQueueLength; // 车辆排队长度
  46769. int nDetectRegionNum; // stuDetectRegion中有效坐标点个数
  46770. DH_POINT stuDetectRegion[32]; // 发生报警的区域坐标
  46771. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46772. BYTE byReserved[1024]; // 预留字节
  46773. }ALARM_CONGESTION_DETECTION_INFO;
  46774. ///@brief 车位类型
  46775. typedef enum tagEM_SPACE_TYPE
  46776. {
  46777. EM_SPACE_TYPE_UNKNOWN = -1, // 未知
  46778. EM_SPACE_TYPE_CAR, // 小车位
  46779. EM_SPACE_TYPE_BIG_CAR, // 大车位
  46780. EM_SPACE_TYPE_HAZARDOUS_CHEMICALS, // 危化品车位
  46781. EM_SPACE_TYPE_TRUCK, // 货车车位
  46782. EM_SPACE_TYPE_SMALL_TRUCK, // 小客车车位
  46783. EM_SPACE_TYPE_BUS, // 大客车车位
  46784. }EM_SPACE_TYPE;
  46785. ///@brief 区域模式统计信息
  46786. typedef struct tagNET_AREA_MODE_INFO
  46787. {
  46788. char szName[32]; // 区域名称
  46789. UINT nCount; // 该区域的总车位个数
  46790. EM_SPACE_TYPE emSpaceType; // 车位类型
  46791. int nRemainCnt; // 区域剩余可用车位个数
  46792. BYTE byReserved[252]; // 保留字节
  46793. }NET_AREA_MODE_INFO;
  46794. ///@brief 事件类型DH_ALARM_VEHICLELIMIT_DETECTION(停车场场景下停车车辆上限报警)对应的数据块描述信息
  46795. typedef struct tagALARM_VEHICLELIMIT_DETECTION_INFO
  46796. {
  46797. int nChannelID; // 通道号
  46798. int nAction; // 0:脉冲 1:开始 2:停止
  46799. char szName[128]; // 事件名称
  46800. double PTS; // 时间戳(单位是毫秒)
  46801. NET_TIME_EX UTC; // 事件发生的时间
  46802. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  46803. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  46804. UINT nEventID; // 事件ID
  46805. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  46806. int nPresetID; // 事件触发的预置点号,从1开始
  46807. char szPresetName[64]; // 事件触发的预置名称
  46808. UINT nVehicleQuantity; // 车辆数量
  46809. int nDetectRegionNum; // stuDetectRegion中有效坐标点个数
  46810. DH_POINT stuDetectRegion[32]; // 发生报警的区域坐标
  46811. int nAreaModeInfoNum; // 设备返回的区域模式统计信息(规则数组)的个数,最大值是20
  46812. NET_AREA_MODE_INFO stuAreaModeInfo[20]; // 区域模式统计信息(规则数组)
  46813. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  46814. BYTE byReserved[1024]; // 预留字节
  46815. }ALARM_VEHICLELIMIT_DETECTION_INFO;
  46816. ///@brief GPS信息
  46817. typedef struct tagLAMP_GPS_INFO
  46818. {
  46819. DWORD dwLatitude; // 纬度(单位是百万分之度,范围0-180度)如北纬30.183382度表示为120183382
  46820. DWORD dwLongitude; // 经度(单位是百万分之度,范围0-360度)如东经120.178274度表示为300178274
  46821. int nNumOfSatellite; // 卫星个数
  46822. BYTE byReserved[4]; // 预留字节
  46823. } LAMP_GPS_INFO;
  46824. ///@brief 设备网络离线异常情况
  46825. typedef enum tagEM_IS_OFF_LINE
  46826. {
  46827. EM_IS_OFF_LINE_UNKNOWN = -1, // 未知
  46828. EM_IS_OFF_LINE_NORMAL, // 正常
  46829. EM_IS_OFF_LINE_EXCEPTION, // 异常
  46830. } EM_IS_OFF_LINE;
  46831. ///@brief 设备电压异常情况
  46832. typedef enum tagEM_IS_VOLTAGE_FAULT
  46833. {
  46834. EM_IS_VOLTAGE_FAULT_UNKNOWN = -1, // 未知
  46835. EM_IS_VOLTAGE_FAULT_NORMAL, // 正常
  46836. EM_IS_VOLTAGE_FAULT_EXCEPTION, // 异常
  46837. } EM_IS_VOLTAGE_FAULT;
  46838. ///@brief 设备电流异常情况
  46839. typedef enum tagEM_IS_CURRENT_FAULT
  46840. {
  46841. EM_IS_CURRENT_FAULT_UNKNOWN = -1, // 未知
  46842. EM_IS_CURRENT_FAULT_NORMAL, // 正常
  46843. EM_IS_CURRENT_FAULT_EXCEPTION, // 异常
  46844. } EM_IS_CURRENT_FAULT;
  46845. ///@brief 补光灯是否点亮
  46846. typedef enum tagEM_BRIGHT_STATE
  46847. {
  46848. EM_BRIGHT_STATE_UNKNOWN = -1, // 未知
  46849. EM_BRIGHT_STATE_OFF, // 未点亮
  46850. EM_BRIGHT_STATE_ON, // 点亮
  46851. } EM_BRIGHT_STATE;
  46852. ///@brief 补光灯工作模式
  46853. typedef enum tagEM_LAMP_STATUS_WORK_MODE
  46854. {
  46855. EM_LAMP_STATUS_WORK_MODE_UNKNOWN, // 未知
  46856. EM_LAMP_STATUS_WORK_MODE_DHRS_STROBOSCOPIC_LAMP, // RS485频闪灯
  46857. EM_LAMP_STATUS_WORK_MODE_DHRS_STEADY_LAMP, // RS485常亮灯
  46858. EM_LAMP_STATUS_WORK_MODE_DHRS_FLASH_LAMP, // RS485爆闪灯
  46859. } EM_LAMP_STATUS_WORK_MODE;
  46860. ///@brief 频闪模式
  46861. typedef enum tagEM_STROBOSCOPIC_MODE
  46862. {
  46863. EM_STROBOSCOPIC_MODE_UNKNOWN = -1, // 未知
  46864. EM_STROBOSCOPIC_MODE_ACTIVE, // 主动
  46865. EM_STROBOSCOPIC_MODE_PASSIVE, // 被动
  46866. } EM_STROBOSCOPIC_MODE;
  46867. ///@brief 频闪灯参数
  46868. typedef struct tagSTROBOSCOPIC_LAMP_PARAM
  46869. {
  46870. EM_STROBOSCOPIC_MODE emStroboscopicMode; // 频闪模式
  46871. UINT nStayTime; // 频闪持续时间, 单位s, 范围[0,2^32)
  46872. UINT nFrequency; // 频闪频率, 单位Hz
  46873. UINT nBrightLevel; // 亮度等级, 1~20
  46874. UINT nPulseWidth; // 频闪脉宽, 单位ms, 范围(0,4]
  46875. BYTE byReserved[36]; // 预留字段
  46876. } STROBOSCOPIC_LAMP_PARAM;
  46877. ///@brief 频闪模式
  46878. typedef enum tagEM_TRIGGER_MODE
  46879. {
  46880. EM_TRIGGER_MODE_UNKNOWN = -1, // 未知
  46881. EM_TRIGGER_MODE_EDGE, // 边沿
  46882. EM_TRIGGER_MODE_PWM, // 脉宽
  46883. } EM_TRIGGER_MODE;
  46884. ///@brief 爆闪灯参数
  46885. typedef struct tagFLASH_LAMP_PARAM
  46886. {
  46887. EM_TRIGGER_MODE emTriggerMode; // 触发方式
  46888. UINT nTriggerCount; // 触发计数, 范围[0,2^32)
  46889. UINT nFlashCount; // 爆闪次数, 范围[0,2^32)
  46890. UINT nPulseWidth; // 爆闪脉宽, 单位ms, 范围(0~4]ms
  46891. UINT nPulseWidthDetectThreshold; // 脉宽检测阈值1~4等级
  46892. UINT nErrorDetectThreshold; // 误检阀值, 3~8等级
  46893. BYTE byReserved[32]; // 预留字段
  46894. } FLASH_LAMP_PARAM ;
  46895. ///@brief 常亮灯参数
  46896. typedef struct tagSTEADY_LAMP_PARAM
  46897. {
  46898. UINT nBrightLevel; // 亮度等级, 1~20等级
  46899. BYTE byReserved[60]; // 预留字段
  46900. } STEADY_LAMP_PARAM;
  46901. ///@brief 补光灯状态信息
  46902. typedef struct tagLAMP_STATUS_INFO
  46903. {
  46904. UINT nPort; // 表示所连接相机的串口端口号
  46905. UINT nAddress; // DHRS补光灯外设地址, 范围0~15
  46906. char szSoftwareVersion[128]; // 软件版本
  46907. char szDeviceID[32]; // 设备ID
  46908. LAMP_GPS_INFO stuGPS; // GPS信息
  46909. EM_IS_OFF_LINE emIsOffline; // 设备离线异常情况
  46910. EM_IS_VOLTAGE_FAULT emIsVoltageFault; // 设备电压异常情况
  46911. EM_IS_CURRENT_FAULT emIsCurrentFault; // 设备电流异常情况
  46912. EM_BRIGHT_STATE emBrightState; // 补光灯是否点亮
  46913. UINT nPower; // 表示设备的功率,以毫瓦为单位 0~65536999
  46914. UINT nTemperature; // 表示设备温度,以百分之一度为精度,如1001表示10.01°, 0~25599
  46915. UINT nPhotoSensitivity; // 表示设备光敏度,无单位0~4095
  46916. UINT nAmbientBrightnessThreshold; // 环境亮度阈值1-6等级
  46917. EM_LAMP_STATUS_WORK_MODE emWorkMode; // 补光灯工作模式
  46918. STROBOSCOPIC_LAMP_PARAM stuStroboscopicLampParam; // 频闪灯参数
  46919. FLASH_LAMP_PARAM stuFlashLampParam; // 爆闪灯参数
  46920. STEADY_LAMP_PARAM stuSteadyLampParam; // 常亮灯参数
  46921. BYTE byReserved[64]; // 预留字段
  46922. } LAMP_STATUS_INFO;
  46923. ///@brief 交通相机通过串口与补光灯连接获取补光灯的状态信息
  46924. typedef struct tagALARM_TRAFFIC_LAMP_WORK_STATE_INFO
  46925. {
  46926. NET_TIME_EX UTC; // 对应的UTC秒数
  46927. UINT nUTCMS; // 对应的UTC毫秒数
  46928. int nChannelID; // 通道号
  46929. int nLampStatusNum; // 补光灯状态信息数量
  46930. LAMP_STATUS_INFO stuLampStatus[8]; // 补光灯状态信息
  46931. BYTE byReserved[256]; // 预留字节
  46932. } ALARM_TRAFFIC_LAMP_WORK_STATE_INFO;
  46933. ///@brief 事件类型 DH_ALARM_TRAFFIC_PARKING_TIMEOUT(停车时长超限事件)对应的数据块描述信息
  46934. typedef struct tagALARM_TRAFFIC_PARKING_TIMEOUT_INFO
  46935. {
  46936. int nChannelID; // 通道号
  46937. int nAction; // 0:脉冲 1:开始 2:停止
  46938. NET_TIME_EX UTC; // 事件发生的时间
  46939. NET_TIME stuInParkTime; // 进场时间
  46940. NET_TIME stuOutParkTime; // 出场时间
  46941. UINT nParkingTime; // 停车时长,单位秒
  46942. BYTE byReserved[1024]; // 预留字节
  46943. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆的数据库记录
  46944. }ALARM_TRAFFIC_PARKING_TIMEOUT_INFO;
  46945. ///@brief 事件类型 DH_ALARM_TICKET_INFO_REPORT (车票信息上报事件)对应的数据块描述信息
  46946. typedef struct tagALARM_TICKET_INFO_REPORT
  46947. {
  46948. int nChannelID; // 通道号
  46949. int nAction; // 0:脉冲 1:开始 2:停止
  46950. double PTS; // 时间戳(单位是毫秒)
  46951. NET_TIME_EX UTC; // 事件发生的时间
  46952. int nEventID; // 事件ID
  46953. int nOpenFlag; // 开门标示,0开门,其他不开门
  46954. BYTE byReserved[4]; // 预留字段
  46955. char szPassengerName[256]; // 姓名
  46956. char szCitizenID[32]; // 证件号
  46957. NET_TIME stuDriveTime; // 发车时间
  46958. char szDestination[256]; // 目的站
  46959. char szScheduleID[64]; // 班次
  46960. }ALARM_TICKET_INFO_REPORT;
  46961. ///@brief 口罩检测结果类型
  46962. typedef enum tagEM_MASK_DETECT_RESULT_TYPE
  46963. {
  46964. EM_MASK_DETECT_TYPE_UNKNOWN, // 未知
  46965. EM_MASK_DETECT_TYPE_NO_MASK, // 未戴口罩
  46966. EM_MASK_DETECT_TYPE_WEAR_MASK, // 戴口罩
  46967. }EM_MASK_DETECT_RESULT_TYPE;
  46968. ///@brief 区域内人员体温信息
  46969. typedef struct tagNET_MAN_TEMP_INFO
  46970. {
  46971. UINT nObjectID; // 物体ID
  46972. NET_RECT stRect; // 坐标信息, 8192坐标系
  46973. double dbHighTemp; // 最高的温度
  46974. UINT nTempUnit; // 温度单位(0摄氏度 1华氏度 2开尔文)
  46975. BOOL bIsOverTemp; // 是否温度异常
  46976. BOOL bIsUnderTemp; // 是否温度异常
  46977. UINT nOffset; // 小图特征值在二进制数据块中的偏移
  46978. UINT nLength; // 小图特征值长度, 单位:字节
  46979. EM_MASK_DETECT_RESULT_TYPE emMaskDetectResult; // 口罩检测结果
  46980. NET_RECT stThermalRect; // 坐标信息(坐标系:8192)
  46981. UINT nAge; // 年龄
  46982. EM_DEV_EVENT_FACEDETECT_SEX_TYPE emSex; // 性别
  46983. UINT nIndexInData; // 在上传图片数据中的图片序号
  46984. BYTE byReserved[32]; // 预留字段
  46985. } NET_MAN_TEMP_INFO;
  46986. ///@brief 事件类型 ALARM_ANATOMY_TEMP_DETECT_INFO(人体温智能检测事件)对应的数据块描述信息
  46987. typedef struct tagALARM_ANATOMY_TEMP_DETECT_INFO
  46988. {
  46989. int nChannelID; // 通道号
  46990. int nAction; // 0:脉冲 1:开始 2:停止
  46991. char szName[128]; // 事件名称
  46992. double PTS; // 时间戳(单位是毫秒)
  46993. NET_TIME_EX UTC; // 事件发生的时间
  46994. UINT nEventID; // 事件ID
  46995. UINT nPresetID; // 事件触发的预置点号, 从1开始, 没有该字段,表示预置点未知
  46996. NET_MAN_TEMP_INFO stManTempInfo; // 区域内人员体温信息
  46997. UINT nSequence; // 帧序号
  46998. UINT nEventRelevanceID; // 事件关联ID
  46999. BOOL bIsFaceRecognition; // 是否做过后智能的目标识别
  47000. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  47001. BYTE byReserved[1020]; // 预留字节
  47002. } ALARM_ANATOMY_TEMP_DETECT_INFO;
  47003. ///@brief 事件类型 ALARM_REGULATOR_ABNORMAL_INFO(标准黑体源异常报警事件)对应的数据块描述信息
  47004. typedef struct tagALARM_REGULATOR_ABNORMAL_INFO
  47005. {
  47006. int nChannelID; // 通道号
  47007. int nAction; // 0:脉冲 1:开始 2:停止
  47008. char szName[128]; // 事件名称
  47009. double PTS; // 时间戳(单位是毫秒)
  47010. NET_TIME_EX UTC; // 事件发生的时间
  47011. UINT nEventID; // 事件ID
  47012. char szTypes[MAX_COMMON_STRING_32]; // 异常类型
  47013. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  47014. BYTE byReserved[1024]; // 预留字节
  47015. } ALARM_REGULATOR_ABNORMAL_INFO;
  47016. ///@brief 事件触发源信息(APP信息)
  47017. typedef struct tagNET_DHOP_APP_INFO
  47018. {
  47019. char szAppName[128]; // App名称
  47020. char szAppVersion[64]; // App版本
  47021. BYTE byReserved[1024]; // 预留字节
  47022. }NET_DHOP_APP_INFO;
  47023. ///@brief 事件类型 DH_ALARM_DHOP_CUSTOM 及 DH_ALARM_DHOP_CUSTOM_ONCE (DHOP自定义报警事件)对应的数据块描述信息
  47024. typedef struct tagALARM_DHOP_CUSTOM_INFO
  47025. {
  47026. int nChannelID; // 通道号
  47027. int nAction; // 0:脉冲 1:开始 2:停止
  47028. char szName[128]; // 事件名称
  47029. NET_TIME_EX UTC; // 事件发生的时间
  47030. int nEventID; // 事件ID
  47031. int nSourceIndex; // 触发源ID
  47032. BYTE byReserved1[4]; // 预留,字节对齐
  47033. NET_DHOP_APP_INFO stuAppInfo; // 事件触发源信息(APP信息)
  47034. char szCustomData[4096]; // 自定义数据
  47035. double PTS; // 时间戳(单位是毫秒)
  47036. BYTE byReserved[2040]; // 预留字节
  47037. } ALARM_DHOP_CUSTOM_INFO;
  47038. ///@brief 红绿灯触发源
  47039. typedef enum tagEM_TRFAFFIC_LIGHT_SOURCE
  47040. {
  47041. EM_TRFAFFIC_LIGHT_SOURCE_UNKNOWN = 0, // 未知
  47042. EM_TRFAFFIC_LIGHT_SOURCE_SIGNAL, // 信号检测器
  47043. EM_TRFAFFIC_LIGHT_SOURCE_DSP, // DSP(算法检测)
  47044. EM_TRFAFFIC_LIGHT_SOURCE_NET_SIGNAL, // 网络信号检测器
  47045. }EM_TRFAFFIC_LIGHT_SOURCE;
  47046. ///@brief 交通灯类型
  47047. typedef enum tagEM_TRFAFFIC_LIGHT_TYPE
  47048. {
  47049. EM_TRFAFFIC_LIGHT_TYPE_UNKNOWN = 0, // 未知
  47050. EM_TRFAFFIC_LIGHT_TYPE_RED, // 红灯
  47051. EM_TRFAFFIC_LIGHT_TYPE_YELLOW, // 黄灯
  47052. EM_TRFAFFIC_LIGHT_TYPE_GREEN, // 绿灯
  47053. }EM_TRFAFFIC_LIGHT_TYPE;
  47054. ///@brief 交通灯的持续时间,时间单位毫秒
  47055. typedef struct tagNET_LIGHTPERIODS_INFO
  47056. {
  47057. EM_TRFAFFIC_LIGHT_TYPE emType; // 交通灯类型
  47058. int nStraight; // 直行灯持续时间
  47059. int nTurnLeft; // 左转灯持续时间
  47060. int nTurnRight; // 右转灯持续时间
  47061. int nUTurn; // 掉头灯持续时间
  47062. BYTE byReserved[60]; // 预留
  47063. }NET_LIGHTPERIODS_INFO;
  47064. ///@brief 信号灯指示灯状态
  47065. typedef struct tatNET_TRAFFIC_LIGHT_STATE
  47066. {
  47067. NET_TRAFFIC_LIGHT_STATUS emStraightLightInfo; // 直行信号灯状态
  47068. NET_TRAFFIC_LIGHT_STATUS emTurnLeftLightInfo; // 左转信号灯状态
  47069. NET_TRAFFIC_LIGHT_STATUS emTurnRightLightInfo; // 右转信号灯状态
  47070. NET_TRAFFIC_LIGHT_STATUS emUTurnLightInfo; // 调头信号灯状态
  47071. BYTE byReserved[64]; // 预留
  47072. }NET_TRAFFIC_LIGHT_STATE;
  47073. ///@brief 事件类型 DH_ALARM_TRAFFIC_LIGHT_STATE (交通灯事件)对应的数据块描述信息
  47074. typedef struct tagALARM_TRAFFIC_LIGHT_STATE_INFO
  47075. {
  47076. int nChannelID; // 通道号
  47077. int nAction; // 0:脉冲 1:开始 2:停止
  47078. char szName[128]; // 事件名称
  47079. double PTS; // 时间戳(单位是毫秒)
  47080. NET_TIME_EX UTC; // 事件发生的时间
  47081. int nEventID; // 事件ID
  47082. int nSource; // 视频分析的数据源地址
  47083. int nFrameSequence; // 帧序号
  47084. EM_TRFAFFIC_LIGHT_SOURCE emLightSource; // 红绿灯触发源
  47085. int nLightPeriodsNum; // stuLightPeriods元素个数
  47086. NET_LIGHTPERIODS_INFO stuLightPeriods[4]; // 每个元素表示一种灯亮的持续时间,时间单位毫秒
  47087. NET_TRAFFIC_LIGHT_STATE stuLightStates[8]; // 交通灯状态,数组下标为车道号,实际只用到了第一个元素
  47088. int nLightStateNum; // stuLightStates元素个数
  47089. BYTE byReserved[1020]; // 预留字段
  47090. }ALARM_TRAFFIC_LIGHT_STATE_INFO;
  47091. ///@brief 刷卡机业务类型
  47092. typedef enum tagEM_SWIPCARD_DEVICE_BUSINESS_TYPE
  47093. {
  47094. EM_SWIPCARD_DEVICE_BUSINESS_TYPE_UNKNOWN = 0, // 未知
  47095. EM_SWIPCARD_DEVICE_BUSINESS_TYPE_FINGER_PRINT, // 前车门信息刷卡器
  47096. EM_SWIPCARD_DEVICE_BUSINESS_TYPE_CLEARCAR, // 后车门清车刷卡器
  47097. }EM_SWIPCARD_DEVICE_BUSINESS_TYPE;
  47098. ///@brief 刷卡机状态
  47099. typedef enum tagEM_SWIPCARD_DEVICE_STATUS
  47100. {
  47101. EM_SWIPCARD_DEVICE_STATUS_UNKNOWN = 0, // 未知
  47102. EM_SWIPCARD_DEVICE_STATUS_NORMAL, // 正常
  47103. EM_SWIPCARD_DEVICE_STATUS_FAILURE, // 故障
  47104. }EM_SWIPCARD_DEVICE_STATUS;
  47105. ///@brief 刷卡设备信息
  47106. typedef struct tagNET_SWIPCARD_DEVICE_INFO
  47107. {
  47108. EM_SWIPCARD_DEVICE_BUSINESS_TYPE emBusinessType; // 刷卡机业务类型
  47109. EM_SWIPCARD_DEVICE_STATUS emStatus; // 刷卡机状态
  47110. BYTE byReserved[1016]; // 预留
  47111. }NET_SWIPCARD_DEVICE_INFO;
  47112. ///@brief 事件类型 DH_ALARM_SWIPCARD_STATUS (刷卡机状态报警)对应的数据块描述信息
  47113. typedef struct tagALARM_SWIPCARD_STATUS_INFO
  47114. {
  47115. int nChannelID; // 通道号
  47116. int nAction; // 0:脉冲
  47117. char szName[128]; // 事件名称
  47118. NET_TIME_EX UTC; // 事件发生的时间
  47119. int nEventID; // 事件ID
  47120. NET_TIME stuCurrentTime; // 本地时间
  47121. NET_SWIPCARD_DEVICE_INFO stuDevices[5]; // 车上刷卡设备信息
  47122. int nDeviceNum; // 刷卡设备个数
  47123. BYTE byReserved[2044]; // 预留字节
  47124. } ALARM_SWIPCARD_STATUS_INFO;
  47125. ///@brief 音频通道状态
  47126. typedef enum tagEM_AUDIOHOST_CHNL_STATE
  47127. {
  47128. EM_AUDIOHOST_CHNL_STATE_UNKNOWN = 0, // 未知
  47129. EM_AUDIOHOST_CHNL_STATE_NORMAL, // 正常
  47130. EM_AUDIOHOST_CHNL_STATE_MUTE, // 静音
  47131. EM_AUDIOHOST_CHNL_STATE_FAULT, // 故障
  47132. }EM_AUDIOHOST_CHNL_STATE;
  47133. ///@brief 事件类型 DH_ALARM_AUDIOHOST_STATE (音频主机状态报警)对应的数据块描述信息
  47134. typedef struct tagALARM_AUDIOHOST_STATE_INFO
  47135. {
  47136. int nChannelID; // 通道号
  47137. int nAction; // 0:脉冲,1:开始,2:停止
  47138. char szName[128]; // 事件名称
  47139. NET_TIME_EX UTC; // 事件发生的时间
  47140. int nEventID; // 事件ID
  47141. int nAudioChannel; // 音频通道
  47142. EM_AUDIOHOST_CHNL_STATE emState; // 音频通道状态
  47143. BYTE byReserved[2048]; // 预留字节
  47144. } ALARM_AUDIOHOST_STATE_INFO;
  47145. ///@brief 活动状态检测具体类型
  47146. typedef enum TagEM_PATIENTDETECTION_TYPE
  47147. {
  47148. EM_PATIENTDETECTION_TYPE_UNKNOWN, // 未知类型
  47149. EM_PATIENTDETECTION_TYPE_CROSS_REGION, // 警戒区域报警
  47150. EM_PATIENTDETECTION_TYPE_LIGHT_OFF, // 病房电灯被熄灭
  47151. EM_PATIENTDETECTION_TYPE_STOP_DETECTION, // 撤防
  47152. EM_PATIENTDETECTION_TYPE_START_DETECTION, // 开始布防
  47153. EM_PATIENTDETECTION_TYPE_ESCAPE, // 逃跑
  47154. EM_PATIENTDETECTION_TYPE_ESCAPE_RELEASE, // 解除逃离报警
  47155. }EM_PATIENTDETECTION_TYPE;
  47156. ///@brief 活动状态检测报警事件 (DH_ALARM_PATIENTDETECTION)
  47157. typedef struct tagALARM_PATIENTDETECTION_INFO
  47158. {
  47159. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  47160. NET_TIME stuTime; // 事件发生时间
  47161. EM_PATIENTDETECTION_TYPE emDetectionType; // 当前事件具体类型
  47162. BYTE byReserved[256]; // 预留字段
  47163. }ALARM_PATIENTDETECTION_INFO;
  47164. ///@brief 雷达监测超速报警事件 (DH_ALARM_RADAR_HIGH_SPEED)
  47165. typedef struct tagALARM_RADAR_HIGH_SPEED_INFO
  47166. {
  47167. NET_TIME_EX stuTime; // 事件发生时间
  47168. float fSpeed; // 速度(单位:km/h)
  47169. char szPlateNumber[16]; // 车牌
  47170. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  47171. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  47172. BYTE byReserved[958]; // 预留字段
  47173. }ALARM_RADAR_HIGH_SPEED_INFO;
  47174. ///@brief 设备各功能是否正常
  47175. typedef enum TagEM_POLLING_ALARM_DEV_STATE
  47176. {
  47177. EM_POLLING_ALARM_DEV_STATE_UNKNOWN = -1, // 未知
  47178. EM_POLLING_ALARM_DEV_STATE_ABNORMAL, // 不正常
  47179. EM_POLLING_ALARM_DEV_STATE_NORMAL, // 正常
  47180. EM_POLLING_ALARM_DEV_STATE_NOT_INSPECTED, // 未巡检
  47181. }EM_POLLING_ALARM_DEV_STATE;
  47182. ///@brief 设备状态
  47183. typedef struct tagNET_POLLING_ALARM_DEV_STATE
  47184. {
  47185. EM_POLLING_ALARM_DEV_STATE emSupplyLight; // 补光灯
  47186. EM_POLLING_ALARM_DEV_STATE emKeyboard; // 按键
  47187. EM_POLLING_ALARM_DEV_STATE emCard; // 刷卡
  47188. EM_POLLING_ALARM_DEV_STATE emScreen; // 屏幕
  47189. EM_POLLING_ALARM_DEV_STATE emVoice; // 声音
  47190. EM_POLLING_ALARM_DEV_STATE emCamera; // 镜头
  47191. char szReserved[128]; // 预留字段
  47192. }NET_POLLING_ALARM_DEV_STATE;
  47193. ///@brief 设备巡检报警事件 (DH_ALARM_POLLING_ALARM)
  47194. typedef struct tagALARM_POLLING_ALARM_INFO
  47195. {
  47196. NET_TIME_EX stuTime; // 事件发生时间
  47197. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  47198. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  47199. char szPollingID[64]; // 巡检标识
  47200. char szSN[64]; // 设备编号
  47201. NET_POLLING_ALARM_DEV_STATE stuDeviceState; // 设备状态
  47202. BYTE byReserved[694]; // 预留字段
  47203. }ALARM_POLLING_ALARM_INFO;
  47204. ///@brief 贴条事件(对应事件 DH_ALARM_PASTE_DETECTION)
  47205. typedef struct tagALARM_PASTE_DETECTION_INFO
  47206. {
  47207. int nChannelID; // 通道号
  47208. char szName[128]; // 事件名称
  47209. double PTS; // 时间戳(单位是毫秒)
  47210. NET_TIME_EX UTC; // 事件发生的时间
  47211. DH_MSG_OBJECT stuObject; // 检测到的物体
  47212. int nDetectRegionNum; // 规则检测区域顶点数
  47213. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  47214. DH_MSG_HANDLE_EX stuEventHandler; // 联动信息
  47215. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  47216. BYTE bReserved[1023]; // 保留字节,留待扩展.
  47217. }ALARM_PASTE_DETECTION_INFO;
  47218. ///@brief 热成像规则间温差异常报警 (DH_ALARM_BETWEENRULE_TEMP_DIFF)
  47219. typedef struct tagALARM_BETWEENRULE_DIFFTEMPER_INFO
  47220. {
  47221. int nAction; // 0:开始 1:停止
  47222. int nOsdId; // 温差OSD配置中的OSD编号
  47223. int nChannelID; // 视频通道号
  47224. NET_RADIOMETRY_ALARMCONTION emAlarmContion; // 报警条件 0:小于 1:等于 2:大于
  47225. int nRuleId1; // 测温规则1,参考配置CFG_RADIOMETRY_RULE_INFO
  47226. int nRuleId2; // 测温规则2,参考配置CFG_RADIOMETRY_RULE_INFO
  47227. float fDiffValue; // 规则间温差值
  47228. int nTemperatureUnit; // 温度单位(当前配置的温度单位),见 NET_TEMPERATURE_UNIT
  47229. UINT nPresetID; // 预置点
  47230. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  47231. BYTE reserved[128]; // 预留字段
  47232. }ALARM_BETWEENRULE_DIFFTEMPER_INFO;
  47233. ///@brief 热成像热点异常报警事件(对应 DH_ALARM_HOTSPOT_WARNING)
  47234. typedef struct tagALARM_HOTSPOT_WARNING_INFO
  47235. {
  47236. int nAction; // 0:开始 1:停止
  47237. int nChannelID; // 视频通道号
  47238. DH_POINT stuCoordinate; // 热点的坐标,坐标值 0~8191
  47239. float fHotSpotValue; // 热点温度值
  47240. int nTemperatureUnit; // 温度单位(当前配置的温度单位),见 NET_TEMPERATURE_UNIT
  47241. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  47242. }ALARM_HOTSPOT_WARNING_INFO;
  47243. ///@brief 热成像冷点异常报警事件(对应 DH_ALARM_COLDSPOT_WARNING)
  47244. typedef struct tagALARM_COLDSPOT_WARNING_INFO
  47245. {
  47246. int nAction; // 0:开始 1:停止
  47247. int nChannelID; // 视频通道号
  47248. DH_POINT stuCoordinate; // 冷点的坐标,坐标值 0~8191
  47249. float fColdSpotValue; // 冷点温度值
  47250. int nTemperatureUnit; // 温度单位(当前配置的温度单位),见 NET_TEMPERATURE_UNIT
  47251. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  47252. }ALARM_COLDSPOT_WARNING_INFO;
  47253. ///@brief 水流量计信息 (对应 DH_ALARM_FLOW_METER)
  47254. typedef struct tagALARM_FLOW_METER_INFO
  47255. {
  47256. DWORD dwSize;
  47257. float fInstantRate; // 瞬时流速 m/s
  47258. float fInstantFlow; // 瞬时流量 m^3/h
  47259. float fTotalFlow; // 总流量 m^3
  47260. float fCurDayFlow; // 当天流量 m^3
  47261. UINT unCurDayWorkingTime; // 当天降尘作业时间,单位: 分
  47262. UINT unTotalWorktingTime; // 累计降尘作业时间,单位: 分
  47263. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  47264. float fCurTemp; // 设备当前温度值,单位: 摄氏度
  47265. } ALARM_FLOW_METER_INFO;
  47266. ///@brief 录像丢帧类型
  47267. typedef enum tagEM_BUF_DROP_FRAME_TYPE
  47268. {
  47269. EM_BUF_DROP_FRAME_UNKOWN = 0, // 丢帧类型为 未知录像
  47270. EM_BUF_DROP_FRAME_DEVBUF, // 丢帧类型为 主码流录像
  47271. EM_BUF_DROP_FRAME_EXTBUF, // 丢帧类型为 辅码流录像
  47272. EM_BUF_DROP_FRAME_NETBUF, // 丢帧类型为 主码流网络录像
  47273. EM_BUF_DROP_FRAME_EXTRA1NETBUF // 丢帧类型为 辅码流1网络录像
  47274. }EM_BUF_DROP_FRAME_TYPE;
  47275. ///@brief 录像缓冲区丢帧事件(对应 DH_ALARM_BUF_DROP_FRAME)
  47276. typedef struct tagALARM_BUF_DROP_FRAME_INFO
  47277. {
  47278. int nAction; // 0:开始 1:停止
  47279. EM_BUF_DROP_FRAME_TYPE emDropFrameType; // 录像丢帧类型
  47280. BYTE reserved[1024]; // 预留字段
  47281. }ALARM_BUF_DROP_FRAME_INFO;
  47282. ///@brief 主备切换事件 集群切换报警 (对应 DH_ALARM_DCSSWITCH)
  47283. typedef struct tagALARM_DCSSWITCH_INFO
  47284. {
  47285. int nAction; // 0:开始 1:停止
  47286. char strMasterIP[32]; // 被替换的主用机IP
  47287. char strSlaveIP[32]; // 执行替换的备用机IP
  47288. NET_TIME_EX stuStartTime; // 替换的开始时间
  47289. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  47290. BYTE reserved[1024]; // 预留字段
  47291. }ALARM_DCSSWITCH_INFO;
  47292. ///@brief 双控设备主板与备板之间版本信息不一致异常事件 (对应 DH_ALARM_DOUBLE_DEV_VERSION_ABNORMAL)
  47293. typedef struct tagALARM_DOUBLE_DEV_VERSION_ABNORMAL_INFO
  47294. {
  47295. int nAction; // 0:开始 1:停止
  47296. char strMasterVer[64]; // 主板的版本信息(仅nAction 为0时 该值有效)
  47297. char strSlaveVer[64]; // 备板的版本信息(仅nAction 为0时 该值有效)
  47298. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  47299. BYTE reserved[1024]; // 预留字段
  47300. }ALARM_DOUBLE_DEV_VERSION_ABNORMAL_INFO;
  47301. ///@brief 雷达连接状态
  47302. typedef enum tagEM_RADAR_CONNECT_STATE
  47303. {
  47304. EM_RADAR_CONNECT_STATE_UNKNOWN, // 未知
  47305. EM_RADAR_CONNECT_STATE_NORMAL, // 正常
  47306. EM_RADAR_CONNECT_STATE_EXCEPTION, // 异常
  47307. }EM_RADAR_CONNECT_STATE;
  47308. ///@brief 雷达连接状态事件 (对应 DH_ALARM_RADAR_CONNECT_STATE)
  47309. typedef struct tagALARM_RADAR_CONNECT_STATE_INFO
  47310. {
  47311. EM_RADAR_CONNECT_STATE emRadarConnectState; // 雷达连接状态
  47312. BYTE reserved[1024]; // 预留字段
  47313. }ALARM_RADAR_CONNECT_STATE_INFO;
  47314. ///@brief 高空抛物物体动作
  47315. typedef enum tagEM_HIGHTOSS_ACTION_TYPE
  47316. {
  47317. EM_HIGHTOSS_ACTION_UNKNOWN, // 未知
  47318. EM_HIGHTOSS_ACTION_APPEAR, // 第一次出现在检测区域中,或者跟踪时物理分离动作中尚未确认的新物体
  47319. EM_HIGHTOSS_ACTION_MOVE, // 正在运动,物体被正常跟踪
  47320. EM_HIGHTOSS_ACTION_STAY, // 物体停止运动,这个物体不会出现在下一帧物体列表中,物体开始移动后再恢复在列表中
  47321. EM_HIGHTOSS_ACTION_REMOVE, // 物体从原来的区域移除,或者被遮盖,或者跟踪失败,移除的物体ID不会被自动删除,并且物体重新出现是有可能再次被使用
  47322. EM_HIGHTOSS_ACTION_DISAPPEAR, // 运动到跟踪区域之外,或者达到了算法跟踪物体的上限而被清除,消失的物体ID将不再出现
  47323. EM_HIGHTOSS_ACTION_SPLIT, // 从其他物体中分离出来,可以用来检测物体遗留,关联ID表示从这个ID对应物体分离
  47324. EM_HIGHTOSS_ACTION_MERGE, // 合并到其他物体,可以用来检查物体保全,关联ID表示合并到这个ID对相应的物体
  47325. EM_HIGHTOSS_ACTION_RENAME, // 如果算法无法确定分离动作中某个物体是原先同一个物体,应该先创建一个新的物体,证据充分后再重命名为旧的物体ID,关联ID表示暂时使用的新的ID
  47326. } EM_HIGHTOSS_ACTION_TYPE;
  47327. ///@brief 目标出现起始点相关信息
  47328. typedef struct tagNET_EVENT_STARTPOINT
  47329. {
  47330. NET_POINT stuBelongBox[4]; // 起始点所属区域包围盒,四边形,8192坐标系
  47331. char szBoxInfo[64]; // 起始点所属区域的描述信息
  47332. NET_POINT stuPoint; // 起始点位置
  47333. BYTE byReserved[260]; // 预留字节
  47334. }NET_EVENT_STARTPOINT;
  47335. ///@brief 高空抛物物体信息
  47336. typedef struct tagNET_HIGHTOSS_OBJECT_INFO
  47337. {
  47338. UINT nObjectID; // 物体ID
  47339. EM_HIGHTOSS_ACTION_TYPE emObjAction; // 物体动作类型
  47340. NET_RECT stuBoundingBox; // 包围盒
  47341. UINT nConfidence; // 置信度
  47342. EM_ANALYSE_OBJECT_TYPE emObjectType; // 物体类型
  47343. DH_POINT stuCenter; // 物体型心
  47344. NET_EVENT_IMAGE_OFFSET_INFO stuImageInfo; // 抓拍小图
  47345. NET_EVENT_STARTPOINT stuStartPoint; // 目标出现起始点
  47346. BYTE byReserved[1172]; // 预留字节
  47347. } NET_HIGHTOSS_OBJECT_INFO;
  47348. ///@brief 事件类型 DH_ALARM_HIGH_TOSS_DETECT (高空抛物检测事件)对应的数据块描述信息
  47349. typedef struct tagALARM_HIGH_TOSS_DETECT_INFO
  47350. {
  47351. int nChannelID; // 通道号
  47352. int nAction; // 0:脉冲 1:开始 2:停止
  47353. double PTS; // 时间戳(单位是毫秒)
  47354. NET_TIME_EX UTC; // 事件发生的时间
  47355. BYTE byReserved1[4]; // 对齐
  47356. int nEventID; // 事件ID
  47357. UINT nObjNum; // 物体个数
  47358. NET_HIGHTOSS_OBJECT_INFO stuObjInfos[50]; // 物体信息
  47359. BYTE byReserved[1024]; // 预留字段
  47360. }ALARM_HIGH_TOSS_DETECT_INFO;
  47361. ///@brief 硬盘健康异常原因
  47362. typedef enum tagEM_HARD_DISK_ABNORMAL_REASON
  47363. {
  47364. EM_HARD_DISK_ABNORMAL_REASON_UNKNOWN, // 未知
  47365. EM_HARD_DISK_ABNORMAL_REASON_TEMPERATURE_HIGH, // 硬盘温度过高
  47366. EM_HARD_DISK_ABNORMAL_REASON_HARD_DRIVE_ABNORMAL, // 硬盘链路异常
  47367. EM_HARD_DISK_ABNORMAL_REASON_ABOUT_TO_ERROR, // 硬盘即将错误
  47368. } EM_HARD_DISK_ABNORMAL_REASON;
  47369. ///@brief 硬盘设备信息
  47370. typedef struct tagHARD_DISK_DEVICE_INFO
  47371. {
  47372. char szName[32]; // 硬盘名称
  47373. EM_HARD_DISK_ABNORMAL_REASON emHardDiskAbnormalReason; // 硬盘健康异常原因
  47374. BYTE byReserved[252]; // 预留字段
  47375. } HARD_DISK_DEVICE_INFO;
  47376. ///@brief 事件类型 DH_ALARM_STORAGE_HEALTH_ABNORMAL (硬盘健康报警事件)对应的数据块描述信息
  47377. typedef struct tagALARM_STORAGE_HEALTH_ABNORMAL_INFO
  47378. {
  47379. int nChannelID; // 通道号
  47380. int nAction; // 1:开始 2:停止
  47381. char szName[128]; // 事件名称
  47382. double PTS; // 时间戳(单位是毫秒)
  47383. NET_TIME_EX UTC; // 事件发生的时间
  47384. BYTE byReserved1[4]; // 对齐
  47385. UINT nEventID; // 事件ID
  47386. int nDeviceNum; // 硬盘数量
  47387. HARD_DISK_DEVICE_INFO stuDeviceInfo[16]; // 硬盘设备信息
  47388. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  47389. BYTE byReserved[1024]; // 预留字段
  47390. } ALARM_STORAGE_HEALTH_ABNORMAL_INFO;
  47391. ///@brief 事件类型 DH_ALARM_CLEAR_CAR (清车报警事件)对应的数据块描述信息
  47392. typedef struct tagALARM_CLEAR_CAR_INFO
  47393. {
  47394. int nChannelID; // 通道号
  47395. int nAction; // 0-脉冲事件
  47396. NET_TIME_EX UTC; // 事件发生的时间
  47397. BYTE byReserved[1020]; // 预留字段
  47398. }ALARM_CLEAR_CAR_INFO;
  47399. ///@brief 录像加锁方式
  47400. typedef enum tagEM_MARKFILE_MODE
  47401. {
  47402. EM_MARK_FILE_BY_TIME_MODE, // 通过时间方式对录像加锁
  47403. EM_MARK_FILE_BY_NAME_MODE, // 通过文件名方式对录像加锁
  47404. }EM_MARKFILE_MODE;
  47405. ///@brief 文件名产生的方式
  47406. typedef enum tagEM_MARKFILE_NAMEMADE_TYPE
  47407. {
  47408. EM_MARKFILE_NAMEMADE_DEFAULT, // 默认方式:需要用户传递录像文件名参数szFilename
  47409. EM_MARKFILE_NAMEMADE_JOINT, // 拼接文件名方式:用户传递磁盘号(nDriveNo)、起始簇号(nStartCluster),不需要传递录像文件名
  47410. }EM_MARKFILE_NAMEMADE_TYPE;
  47411. ///@brief CLIENT_SetMarkFile输入参数
  47412. typedef struct tagNET_IN_SET_MARK_FILE
  47413. {
  47414. DWORD dwSize; //
  47415. EM_MARKFILE_MODE emLockMode; // 录像加锁方式,
  47416. EM_MARKFILE_NAMEMADE_TYPE emFileNameMadeType; // 文件名产生的方式
  47417. int nChannelID; // 通道号
  47418. char szFilename[MAX_PATH]; // 文件名
  47419. unsigned int nFramenum; // 文件总帧数
  47420. unsigned int nSize; // 文件长度
  47421. NET_TIME stuStartTime; // 开始时间
  47422. NET_TIME stuEndTime; // 结束时间
  47423. unsigned int nDriveNo; // 磁盘号(区分网络录像和本地录像的类型,0-127表示本地录像,其中64表示光盘1,128表示网络录像)
  47424. unsigned int nStartCluster; // 起始簇号
  47425. BYTE byRecordFileType; // 录象文件类型 0:普通录象;1:报警录象;2:移动检测;3:卡号录象;4:图片, 5: 智能录像
  47426. BYTE byImportantRecID; // 0:普通录像 1:重要录像
  47427. BYTE byHint; // 文件定位索引(nRecordFileType==4<图片>时,bImportantRecID<<8 +bHint ,组成图片定位索引 )
  47428. BYTE byRecType; // 0-主码流录像 1-辅码流1录像 2-辅码流2录像 3-辅码流3录像
  47429. UINT nLockTime; // 锁定时长,以加锁时间为起点,单位为小时
  47430. } NET_IN_SET_MARK_FILE;
  47431. ///@brief CLIENT_SetMarkFile输出参数
  47432. typedef struct tagNET_OUT_SET_MARK_FILE
  47433. {
  47434. DWORD dwSize;
  47435. } NET_OUT_SET_MARK_FILE;
  47436. ///@brief CLIENT_SetMarkFileByTime输入参数
  47437. typedef struct tagNET_IN_SET_MARK_FILE_BY_TIME
  47438. {
  47439. DWORD dwSize;
  47440. int nChannel; //需要锁定的通道号,从0开始,元素为-1时,表示全通道。
  47441. NET_TIME_EX stuStartTime; //开始时间
  47442. NET_TIME_EX stuEndTime; //结束时间
  47443. BOOL bFlag; //标记动作 true : 标记, false : 清除
  47444. BOOL bLockTimeFlag; //nLockTime字段标志位, 为 TRUE 时使用nLockTime
  47445. UINT nLockTime; //锁定时长,以加锁时间为起点 ,单位为小时
  47446. } NET_IN_SET_MARK_FILE_BY_TIME;
  47447. ///@brief CLIENT_SetMarkFileByTime输出参数
  47448. typedef struct tagNET_OUT_SET_MARK_FILE_BY_TIME
  47449. {
  47450. DWORD dwSize;
  47451. } NET_OUT_SET_MARK_FILE_BY_TIME;
  47452. ///@brief CLIENT_GetMarkInfo输入参数
  47453. typedef struct tagNET_IN_GET_MARK_INFO
  47454. {
  47455. DWORD dwSize;
  47456. } NET_IN_GET_MARK_INFO;
  47457. ///@brief CLIENT_GetMarkInfo输出参数
  47458. typedef struct tagNET_OUT_GET_MARK_INFO
  47459. {
  47460. DWORD dwSize;
  47461. int nTotalSpace; //总容量(单位M)
  47462. int nMarkSpace; //录像被锁定的容量 单位M
  47463. } NET_OUT_GET_MARK_INFO;
  47464. ///@brief 消除反潜报警入参
  47465. typedef struct tagNET_IN_CLEAR_REPEAT_ENTER
  47466. {
  47467. char szCardNO[DH_MAX_CARDINFO_LEN]; // 用户卡号
  47468. BYTE bReserved[1024];
  47469. }NET_IN_CLEAR_REPEAT_ENTER;
  47470. ///@brief 消除反潜报警出参
  47471. typedef struct tagNET_OUT_CLEAR_REPEAT_ENTER
  47472. {
  47473. BYTE bReserved[1024];
  47474. }NET_OUT_CLEAR_REPEAT_ENTER;
  47475. ///@brief 报警事件类型DH_ALARM_RECORD_LOSS(录像丢失事件)对应的数据描述信息
  47476. typedef struct tagALARM_RECORD_LOSS_INFO
  47477. {
  47478. int nChannelID; // 通道号
  47479. int nEventAction; // 事件动作, 0:Pulse, 1:Start, 2:Stop
  47480. char szIP[DH_MAX_IPADDR_LEN_EX]; // 发生丢录像的设备IP
  47481. int nPort; // 发生丢录像的设备端口
  47482. BYTE byReserved[1024]; // 预留
  47483. } ALARM_RECORD_LOSS_INFO;
  47484. ///@brief 报警事件类型DH_ALARM_VIDEO_FRAME_LOSS(视频丢帧事件)对应的数据描述信息
  47485. typedef struct tagALARM_VIDEO_FRAME_LOSS_INFO
  47486. {
  47487. int nChannelID; // 通道号
  47488. int nEventAction; // 事件动作, 0:Pulse, 1:Start, 2:Stop
  47489. char szIP[DH_MAX_IPADDR_LEN_EX]; // 发生丢帧的设备IP
  47490. int nPort; // 发生丢帧的设备端口
  47491. BYTE byReserved[1024]; // 预留
  47492. } ALARM_VIDEO_FRAME_LOSS_INFO;
  47493. ///@brief 报警事件类型DH_ALARM_RECORD_VOLUME_FAILURE(磁盘卷异常)对应的数据描述信息
  47494. typedef struct tagALARM_RECORD_VOLUME_FAILURE_INFO
  47495. {
  47496. int nChannelID; // 通道号
  47497. int nEventAction; // 事件动作, 0:Pulse, 1:Start, 2:Stop
  47498. BYTE byReserved[1024]; // 预留
  47499. } ALARM_RECORD_VOLUME_FAILURE_INFO;
  47500. ///@brief 事件类型 DH_EVENT_SNAP_UPLOAD(图上传完成事件)对应的数据描述信息
  47501. typedef struct tagEVENT_SNAP_UPLOAD_INFO
  47502. {
  47503. int nChannelID; // 通道号
  47504. int nEventAction; // 事件动作, 0:Pulse, 1:Start, 2:Stop
  47505. BOOL bSnapResult; // 图片是否上传成功
  47506. char szFilePath[MAX_PATH]; // 上传的本地图片名称
  47507. BYTE byReserved[1024]; // 预留
  47508. }EVENT_SNAP_UPLOAD_INFO;
  47509. ///@brief 报警事件类型DH_ALARM_UPLOADPIC_FAILCOUNT(上传中盟失败数据个数)对应的数据描述信息
  47510. typedef struct tagALARM_UPLOADPIC_FAILCOUNT_INFO
  47511. {
  47512. int nFailCount; // 上传失败个数
  47513. BYTE byReserved[1024]; // 预留
  47514. } ALARM_UPLOADPIC_FAILCOUNT_INFO;
  47515. ///@brief 报警事件类型 DH_ALARM_HUMAN_INSIDE(舱内有人事件) 对应的数据描述信息
  47516. typedef struct tagALARM_HUMAN_INSIDE_INFO
  47517. {
  47518. int nChannelID; // 通道号
  47519. int nEventAction; // 事件动作,-1表示未知事件,0表示持续性事件开始,1表示持续性事件结束
  47520. int nHumanNumber; // 舱内人数
  47521. NET_TIME stuUtcTime; // 事件发生的时间
  47522. BYTE byReserved[1000]; // 预留
  47523. } ALARM_HUMAN_INSIDE_INFO;
  47524. ///@brief 报警事件类型 DH_ALARM_HUMAN_TUMBLE_INSIDE(舱内有人摔倒事件) 对应的数据描述信息
  47525. typedef struct tagALARM_HUMAN_TUMBLE_INSIDE_INFO
  47526. {
  47527. int nChannelID; // 通道号
  47528. int nEventAction; // 事件动作,-1表示未知事件,0表示持续性事件开始,1表示持续性事件结束
  47529. NET_TIME stuUtcTime; // 事件发生的时间
  47530. BYTE byReserved[1000]; // 预留
  47531. } ALARM_HUMAN_TUMBLE_INSIDE_INFO;
  47532. ///@brief 报警事件类型 DH_ALARM_DISABLE_LOCKIN(闭锁进门按钮触发事件) 对应的数据描述信息
  47533. typedef struct tagALARM_DISABLE_LOCKIN_INFO
  47534. {
  47535. int nChannelID; // 通道号
  47536. NET_TIME stuUtcTime; // 事件发生的时间
  47537. BYTE byReserved[1000]; // 预留
  47538. } ALARM_DISABLE_LOCKIN_INFO;
  47539. ///@brief 报警事件类型 DH_ALARM_DISABLE_LOCKOUT(闭锁出门按钮触发事件) 对应的数据描述信息
  47540. typedef struct tagALARM_DISABLE_LOCKOUT_INFO
  47541. {
  47542. int nChannelID; // 通道号
  47543. NET_TIME stuUtcTime; // 事件发生的时间
  47544. BYTE byReserved[1000]; // 预留
  47545. } ALARM_DISABLE_LOCKOUT_INFO;
  47546. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  47547. ///@brief CLIENT_GetOperatorName 输入参数
  47548. typedef struct tagNET_IN_GET_OPERATOR_NAME
  47549. {
  47550. BYTE byReserved[1024]; // 预留
  47551. } NET_IN_GET_OPERATOR_NAME;
  47552. ///@brief CLIENT_GetOperatorName 输出参数
  47553. typedef struct tagNET_OUT_GET_OPERATOR_NAME
  47554. {
  47555. char szOpearatorName[DH_COMMON_STRING_64]; //操作员用户名
  47556. BYTE byReserved[1024]; // 预留
  47557. } NET_OUT_GET_OPERATOR_NAME;
  47558. ///@brief CLIENT_GetSelfCheckInfo 输入参数
  47559. typedef struct tagNET_IN_GET_SELTCHECK_INFO
  47560. {
  47561. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为 sizeof (NET_IN_GET_SELTCHECK_INFO)
  47562. } NET_IN_GET_SELTCHECK_INFO;
  47563. ///@brief 事件类型EVENT_IVS_PTZ_PRESET(云台转动到预置点事件)对应的数据块描述信息
  47564. typedef struct tagDEV_EVENT_ALARM_PTZ_PRESET_INFO
  47565. {
  47566. int nChannelID; // 通道号
  47567. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  47568. char bReserved1[4]; // 字节对齐
  47569. double PTS; // 时间戳(单位是毫秒)
  47570. NET_TIME_EX UTC; // 事件发生的时间
  47571. int nEventID; // 事件ID
  47572. /*以上为公共字段*/
  47573. char szPresetName[PTZ_PRESET_NAME_LEN]; // 预置点名称
  47574. PTZ_SPEED_UNIT stuPos; // 预置点的坐标和放大倍数
  47575. int nPresetID; // 预置点ID
  47576. BYTE bReserved[1024]; // 保留字节
  47577. } DEV_EVENT_ALARM_PTZ_PRESET_INFO;
  47578. ///@brief 事件类型EVENT_IVS_RFID_INFO(红外线检测信息事件)对应的数据块描述信息
  47579. typedef struct tagDEV_EVENT_ALARM_RFID_INFO
  47580. {
  47581. int nChannelID; // 通道号
  47582. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  47583. char bReserved1[4]; // 字节对齐
  47584. double PTS; // 时间戳(单位是毫秒)
  47585. NET_TIME_EX UTC; // 事件发生的时间
  47586. int nEventID; // 事件ID
  47587. /*以上为公共字段*/
  47588. int nAction; // 0:开始 1:停止
  47589. int nValidCount; // RFID 编号数组有效个数
  47590. char szRfid[10][12]; // RFID 编号数组
  47591. BYTE bReserved[1024]; // 保留字节
  47592. } DEV_EVENT_ALARM_RFID_INFO;
  47593. ///@brief 称重系统车辆信息
  47594. typedef struct tagNET_CAR_WEIGTH_INFO
  47595. {
  47596. unsigned int nAxleNum; // 车轴数
  47597. unsigned int nMaxAxleDistance; // 最大轴距, 单位是毫米
  47598. unsigned int nAxleWeightInfo[MAX_AXLE_NUM]; // 每根车轴的重量, 单位Kg, 第一个元素表示第一个车轴重, 依次类推
  47599. unsigned int nAxleDistanceInfo[MAX_AXLE_NUM-1]; // 轴与轴的间隔, 单位毫米, 第一个元素表示一二轴间距, 第二个元素表示二三轴间距, 依次类推
  47600. unsigned int nOverWeight; // 超重信息, 单位千克
  47601. unsigned int nTotalWeight; // 总重信息, 单位千克
  47602. unsigned int nAxisType; // 平板称重器提供的轴型信息
  47603. UINT nSpeed; // 称重卡口测量上报的速度, 单位km/h
  47604. BYTE byReserved[500]; // 保留字节
  47605. }NET_CAR_WEIGHT_INFO;
  47606. ///@brief 事件类型 EVENT_IVS_QSYTRAFFICCARWEIGHT (交通卡口称重事件)对应的数据块描述信息
  47607. typedef struct tagDEV_EVENT_QSYTRAFFICCARWEIGHT_INFO
  47608. {
  47609. NET_CAR_WEIGHT_INFO stCarWeightInfo; // 称重系统车辆信息
  47610. DEV_EVENT_TRAFFICJUNCTION_INFO stJunctionInfo; // 交通卡口信息
  47611. }DEV_EVENT_QSYTRAFFICCARWEIGHT_INFO;
  47612. ///@brief 前后车牌信息
  47613. typedef struct tagNET_PLATE_INFO
  47614. {
  47615. char szFrontPlateNumber[DH_MAX_PLATE_NUMBER_LEN]; // 前车牌号码
  47616. EM_NET_PLATE_COLOR_TYPE emFrontPlateColor; //前车牌颜色
  47617. char szBackPlateNumber[DH_MAX_PLATE_NUMBER_LEN]; // 后车牌号码
  47618. EM_NET_PLATE_COLOR_TYPE emBackPlateColor; // 后车牌颜色
  47619. BYTE bReserved[1024]; // 保留字节
  47620. } NET_PLATE_INFO;
  47621. ///@brief 记录两张卡口图片的抓拍时间
  47622. typedef struct tagNET_SNAP_TIME_INFO
  47623. {
  47624. NET_TIME_EX stFrontGateSnapTime; // 前卡口图片抓拍时间(精确到毫秒)
  47625. NET_TIME_EX stBackGateSnapTime; // 后卡口图片抓拍时间(精确到毫秒)
  47626. BYTE bReserved[128]; // 保留字节
  47627. }NET_SNAP_TIME_INFO;
  47628. ///@brief 事件类型EVENT_IVS_TRAFFIC_COMPAREPLATE(卡口车牌合成事件)对应的数据块描述信息
  47629. typedef struct tagDEV_EVENT_TRAFFIC_COMPAREPLARE_INFO
  47630. {
  47631. int nChannelID; // 通道号
  47632. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  47633. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  47634. double dbPTS; // 时间戳(单位是毫秒)
  47635. NET_TIME_EX stuUTC; // 事件发生的时间
  47636. int nEventID; // 事件ID
  47637. DH_MSG_OBJECT stuObject; // 车牌信息
  47638. DH_MSG_OBJECT stuVehicle; // 车辆信息
  47639. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  47640. int nMark; // 用于标记抓拍帧
  47641. int nSource; // 视频分析的数据源地址
  47642. int nFrameSequence; // 视频帧序号
  47643. int nSpeed; // 车辆实际速度(单位: km/h)
  47644. int nLane; // 对应的车道号
  47645. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  47646. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  47647. NET_PLATE_INFO stuPlateInfo; // 前后车牌信息
  47648. EVENT_COMM_INFO stCommInfo; // 公共信息
  47649. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  47650. NET_SNAP_TIME_INFO stSnapTimeInfo; // 记录两张卡口图片的抓拍时间
  47651. BYTE bReserved[820]; // 保留信息
  47652. } DEV_EVENT_TRAFFIC_COMPAREPLATE_INFO;
  47653. ///@brief 打靶像机事件
  47654. typedef struct tagDEV_EVENT_SHOOTING_SCORE_RECOGNITION_INFO
  47655. {
  47656. int nChannelID; // 通道号
  47657. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  47658. double dbPTS; // 时间戳(单位是毫秒)
  47659. NET_TIME_EX stuUTC; // 事件发生的时间
  47660. int nEventID; // 事件ID
  47661. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  47662. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  47663. DH_POINT stuDetectRegion; // 规则检测区域
  47664. int nValidBulletHolesNum; // 检测到的有效弹孔个数
  47665. NET_BULLET_HOLES_INFO stuBulletHolesInfo[DH_MAX_BULLET_HOLES]; // 检测到的弹孔
  47666. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  47667. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  47668. BYTE bReserved[1024]; // 保留字节,留待扩展.
  47669. } DEV_EVENT_SHOOTING_SCORE_RECOGNITION_INFO;
  47670. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TRANSFINITE(违章超限抓图上报事件)对应的数据块描述信息
  47671. typedef struct tagDEV_EVENT_TRAFFIC_TRANSFINITE_INFO
  47672. {
  47673. int nChannelID; // 通道号
  47674. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  47675. double dbPTS; // 时间戳(单位是毫秒)
  47676. NET_TIME_EX stuUTC; // 事件发生的时间
  47677. int nEventID; // 事件ID
  47678. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  47679. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  47680. char szPlateNumber[16]; // 车牌
  47681. char szTime[20]; // 违章时间
  47682. double dbLong; // 长,单位米
  47683. double dbWidth; // 宽,单位米
  47684. double dbHeight; // 高, 单位米
  47685. char szViolationCode[16]; // 违章代码
  47686. char szDescribe[132]; // 违章描述
  47687. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  47688. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  47689. BYTE bReserved[4096]; // 保留字节,留待扩展.
  47690. } DEV_EVENT_TRAFFIC_TRANSFINITE_INFO;
  47691. ///@brief 车辆抓拍图片信息
  47692. typedef struct tagDEV_EVENT_TRAFFIC_FCC_IMAGE
  47693. {
  47694. DWORD dwOffSet; // 图片文件在二进制数据块中的偏移位置, 单位:字节
  47695. DWORD dwLength; // 图片大小, 单位:字节
  47696. WORD wWidth; // 图片宽度, 单位:像素
  47697. WORD wHeight; // 图片高度, 单位:像素
  47698. }DEV_EVENT_TRAFFIC_FCC_IMAGE;
  47699. ///@brief 车辆抓图信息
  47700. typedef struct tagDEV_EVENT_TRAFFIC_FCC_OBJECT
  47701. {
  47702. DEV_EVENT_TRAFFIC_FCC_IMAGE stuImage; // 车辆抓拍图片信息
  47703. }DEV_EVENT_TRAFFIC_FCC_OBJECT;
  47704. ///@brief 事件类型EVENT_IVS_TRAFFIC_FCC_INFO
  47705. typedef struct tagDEV_EVENT_TRAFFIC_FCC_INFO
  47706. {
  47707. int nChannelID; // 通道号
  47708. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  47709. DWORD nTriggerID; // 触发类型: 1表示提枪, 2表示挂枪
  47710. double PTS; // 时间戳(单位是毫秒)
  47711. NET_TIME_EX UTC; // 事件发生的时间
  47712. int nEventID; // 事件ID
  47713. /*以上为公共字段*/
  47714. DWORD dwNum; // 加油枪号
  47715. DWORD dwLitre; // 加油升数,单位 0.01升
  47716. EM_REFUEL_TYPE emType; // 加油类型: 取值范围("90#","93#","10#","-20#")
  47717. DWORD dwMoney; // 加油金额,单位 0.01元
  47718. char szPlateNumber[DH_COMMON_STRING_16]; // 车牌号
  47719. char szTime[DH_COMMON_STRING_32]; // 事件发生时间: "2016-05-23 10:31:17"
  47720. DEV_EVENT_TRAFFIC_FCC_OBJECT stuObject; // 车辆抓图信息
  47721. BYTE bReserved[1024]; // 保留字节,留待扩展
  47722. }DEV_EVENT_TRAFFIC_FCC_INFO;
  47723. ///@brief 综合状态
  47724. typedef enum tagEM_PARKINGSPACE_STATUS
  47725. {
  47726. EM_PARKINGSPACE_STATUS_UNKNOWN,
  47727. EM_PARKINGSPACE_STATUS_BUSY, // 占用
  47728. EM_PARKINGSPACE_STATUS_FREE, // 空闲
  47729. EM_PARKINGSPACE_STATUS_OVERLINE, // 压线
  47730. }EM_PARKINGSPACE_STATUS;
  47731. ///@brief 车位抠图信息
  47732. typedef struct tagNET_FEATUREPIC_AREA
  47733. {
  47734. int nRetCount; // 实际返回坐标个数
  47735. DH_POINT stuFeaturePicArea[10]; // 车位信息抠图坐标
  47736. BYTE bReserved[256]; // 保留字节
  47737. }NET_FEATUREPIC_AREA;
  47738. ///@brief 事件类型EVENT_IVS_TRAFFIC_ANALYSE_PRESNAP(车牌预处理抓片图片事件)对应的数据块描述信息
  47739. typedef struct tagDEV_EVENT_TRAFFIC_ANALYSE_PRESNAP_INFO
  47740. {
  47741. int nChannelID; // 通道号
  47742. char szName[128]; // 事件名称
  47743. char bReserved1[4]; // 字节对齐
  47744. double PTS; // 时间戳(单位是毫秒)
  47745. NET_TIME_EX stuTime; // 事件发生的时间
  47746. int nEventID; // 事件ID
  47747. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同
  47748. int nCountInGroup; // 一个事件组内的抓拍张数
  47749. int nIndexInGroup; // 一个事件组内的抓拍序号
  47750. DH_MSG_OBJECT stuObject; // 车牌信息
  47751. DH_MSG_OBJECT stuVehicle; // 车身信息
  47752. int nMark; // 用于标记抓拍帧
  47753. int nSource; // 视频分析的数据源地址
  47754. int nFrameSequence; // 视频帧序号
  47755. int nLane; // 对应的车道号
  47756. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  47757. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  47758. EM_PARKINGSPACE_STATUS emParkingSpaceStatus; // 设备管理的所有车位的综合状态
  47759. EVENT_COMM_INFO stCommInfo; // 公共信息
  47760. EM_PARKINGSPACE_STATUS emCurParkingSpaceStatus; // 对应当前车位号的车位状态
  47761. NET_FEATUREPIC_AREA stuParkingInfo; // 车位抠图信息坐标,现有支持4个顶点,绝对坐标,值域由图片的分辨率决定
  47762. DH_RESOLUTION_INFO stuResolution; // 图片分辨率
  47763. BYTE bReserved[716]; // 保留信息
  47764. }DEV_EVENT_TRAFFIC_ANALYSE_PRESNAP_INFO;
  47765. ///@brief 事件类型EVENT_IVS_NEAR_DISTANCE_DETECTION(近距离接触事件)对应的数据块描述信息
  47766. typedef struct tagDEV_EVENT_NEAR_DISTANCE_DETECTION_INFO
  47767. {
  47768. int nChannelID; // 通道号
  47769. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  47770. char bReserved1[4]; // 字节对齐
  47771. double PTS; // 时间戳(单位是毫秒)
  47772. NET_TIME_EX UTC; // 事件发生的时间
  47773. int nEventID; // 事件ID
  47774. /*以上为公共字段*/
  47775. int nAction; // 0:脉冲 1:开始 2:停止
  47776. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  47777. BYTE bReserved[2048]; // 保留字节
  47778. } DEV_EVENT_NEAR_DISTANCE_DETECTION_INFO;
  47779. ///@brief 堆积物点阵图信息
  47780. typedef struct tagNET_FLOATINGOBJECT_MASK_INFO
  47781. {
  47782. UINT nColNum; // 点阵列数
  47783. UINT nOffset; // 偏移
  47784. UINT nLength; // 长度
  47785. BYTE byReserved[508]; // 预留字段
  47786. } NET_FLOATINGOBJECT_MASK_INFO;
  47787. ///@brief 漂浮物检测场景
  47788. typedef enum tagEM_FLOATINGOBJECT_DETECTION_SENCE_TYPE
  47789. {
  47790. EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE_UNKNOWN, // 未知
  47791. EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE_NOMAL, // 普通漂浮物检测
  47792. EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE_BUBBLE, // 泡沫检测
  47793. }EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE;
  47794. ////@brief 事件类型 EVENT_IVS_FLOATINGOBJECT_DETECTION (漂浮物检测事件) 对应的数据块描述信息
  47795. typedef struct tagDEV_EVENT_FLOATINGOBJECT_DETECTION_INFO
  47796. {
  47797. int nChannelID; // 通道号
  47798. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  47799. char szName[128]; // 事件名称
  47800. double PTS; // 时间戳(单位是毫秒)
  47801. NET_TIME_EX UTC; // 事件发生的时间
  47802. int nEventID; // 事件ID
  47803. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  47804. NET_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  47805. int nDetectRegionNum; // 规则检测区域顶点数
  47806. int nImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  47807. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  47808. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  47809. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  47810. UINT nOccurrenceCount; // 事件触发累计次数
  47811. int nObjectNum; // 检测到的物体个数
  47812. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  47813. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  47814. char szPresetName[64]; // 事件触发的预置名称
  47815. BOOL bExistFloatingObject; // 是否存在漂浮物
  47816. NET_EM_EVENT_DATA_TYPE emEventType; // 事件数据类型
  47817. float fCurrentRatio; // 漂浮物当前占比(相对于检测区域)单位:%, 取值范围[0, 100]
  47818. float fAlarmThreshold; // 报警阈值。漂浮物相对于检测区域的占比, 取值范围[0, 100]
  47819. NET_INTELLIGENCE_IMAGE_INFO stuOriginalImage; // 原始图
  47820. NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // 球机变到最小倍下的抓图
  47821. NET_FLOATINGOBJECT_MASK_INFO stuObjectMaskInfo; // 堆积物点阵图信息
  47822. EM_FLOATINGOBJECT_DETECTION_SENCE_TYPE emDetectSenceType; // 区分是普通漂浮物场景还是泡沫检测场景
  47823. BYTE byReserved[3432]; // 保留字节,留待扩展.
  47824. } DEV_EVENT_FLOATINGOBJECT_DETECTION_INFO;
  47825. ///@brief 事件类型 EVENT_IVS_WATER_LEVEL_DETECTION(水位检测事件)对应的数据块描述信息
  47826. typedef struct tagDEV_EVENT_WATER_LEVEL_DETECTION_INFO
  47827. {
  47828. int nChannelID; // 通道号
  47829. int nAction; // 0:脉冲 1:开始 2:停止
  47830. char szName[MAX_EVENT_NAME]; // 事件名称
  47831. double PTS; // 时间戳(单位是毫秒)
  47832. NET_TIME_EX UTC; // 事件发生的时间
  47833. int nEventID; // 事件ID
  47834. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  47835. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  47836. char szPresetName[64]; // 预置点名称
  47837. char szObjectUUID[48]; // 智能物体全局唯一物体标识
  47838. NET_EM_EVENT_DATA_TYPE emEventType; // 事件数据类型
  47839. NET_EM_WATER_LEVEL_STATUS emStatus; // 水位状态
  47840. NET_WATER_RULER stuWaterRuler; // 水位尺
  47841. NET_INTELLIGENCE_IMAGE_INFO stuOriginalImage; // 原始图
  47842. NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // 球机变到最小倍下的抓图
  47843. BOOL bManual; // 主动查询水位功能,用于区分是否为手动触发的上报事件
  47844. BYTE byReserved[1020]; // 保留字节
  47845. }DEV_EVENT_WATER_LEVEL_DETECTION_INFO;
  47846. ///@brief 事件类型 EVENT_IVS_SHIP_DETECTION (船舶检测事件) 对应的数据块描述信息
  47847. typedef struct tagDEV_EVENT_SHIP_DETECTION_INFO
  47848. {
  47849. int nChannelID; // 通道号
  47850. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  47851. char szName[128]; // 事件名称
  47852. double PTS; // 时间戳(单位是毫秒)
  47853. NET_TIME_EX UTC; // 事件发生的时间
  47854. int nEventID; // 事件ID
  47855. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  47856. NET_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  47857. int nDetectRegionNum; // 规则检测区域顶点数
  47858. int nImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  47859. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  47860. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  47861. NET_CROSSREGION_DIRECTION_INFO emDirection; // 表示入侵方向
  47862. NET_CROSSREGION_ACTION_INFO emActionType; // 表示检测动作类型
  47863. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  47864. UINT nOccurrenceCount; // 事件触发累计次数
  47865. int nTrackLineNum; // 物体运动轨迹顶点数
  47866. NET_POINT stuTrackLine[DH_MAX_TRACK_LINE_NUM];// 物体运动轨迹
  47867. DH_MSG_OBJECT stuObject; // 检测到的物体
  47868. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  47869. int nObjectNum; // 检测到的物体个数
  47870. int nTrackNum; // 轨迹数(与检测到的物体个数对应)
  47871. DH_POLY_POINTS stuTrackInfo[HDBJ_MAX_OBJECTS_NUM]; // 轨迹信息(与检测到的物体对应)
  47872. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  47873. char szPresetName[64]; // 事件触发的预置名称
  47874. BOOL bExistShip; // 是否存在船舶
  47875. BYTE bReserved[4096]; // 保留字节,留待扩展.
  47876. } DEV_EVENT_SHIP_DETECTION_INFO;
  47877. ///@brief 事件类型 EVENT_IVS_HOLD_UMBRELLA (违规撑伞检测事件) 对应的数据块描述信息
  47878. typedef struct tagDEV_EVENT_HOLD_UMBRELLA_INFO
  47879. {
  47880. int nChannelID; // 通道号
  47881. int nAction; // 0:脉冲 1:开始 2:停止
  47882. char szName[128]; // 事件名称
  47883. double PTS; // 时间戳(单位是毫秒)
  47884. NET_TIME_EX UTC; // 事件发生的时间
  47885. UINT nEventID; // 事件ID
  47886. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  47887. NET_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  47888. int nDetectRegionNum; // 规则检测区域顶点数
  47889. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  47890. int nObjectNum; // 检测到的物体个数
  47891. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  47892. char szPresetName[64]; // 事件触发的预置名称
  47893. UINT nViolationDuration; // 违法持续时长,单位:秒 缺省值0表示无意义
  47894. char szSourceID[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  47895. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  47896. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  47897. int nImageInfoNum; // 图片信息个数
  47898. BYTE bReserved[4088 - POINTERSIZE]; // 保留字节,留待扩展.
  47899. } DEV_EVENT_HOLD_UMBRELLA_INFO;
  47900. ///@brief 事件类型 EVENT_IVS_GARBAGE_EXPOSURE (垃圾暴露检测事件) 对应的数据块描述信息
  47901. typedef struct tagDEV_EVENT_GARBAGE_EXPOSURE_INFO
  47902. {
  47903. int nChannelID; // 通道号
  47904. int nAction; // 0:脉冲 1:开始 2:停止
  47905. char szName[128]; // 事件名称
  47906. double PTS; // 时间戳(单位是毫秒)
  47907. NET_TIME_EX UTC; // 事件发生的时间
  47908. UINT nEventID; // 事件ID
  47909. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  47910. NET_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  47911. int nDetectRegionNum; // 规则检测区域顶点数
  47912. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  47913. int nObjectNum; // 检测到的物体个数
  47914. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  47915. char szPresetName[64]; // 事件触发的预置名称
  47916. UINT nViolationDuration; // 违法持续时长,单位:秒 缺省值0表示无意义
  47917. char szSourceID[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  47918. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  47919. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  47920. int nImageInfoNum; // 图片信息个数
  47921. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  47922. BYTE bReserved[3016]; // 保留字节,留待扩展.
  47923. } DEV_EVENT_GARBAGE_EXPOSURE_INFO;
  47924. ///@brief 事件类型 EVENT_IVS_DUSTBIN_OVER_FLOW (垃圾桶满溢检测事件) 对应的数据块描述信息
  47925. typedef struct tagDEV_EVENT_DUSTBIN_OVER_FLOW_INFO
  47926. {
  47927. int nChannelID; // 通道号
  47928. int nAction; // 0:脉冲 1:开始 2:停止
  47929. char szName[128]; // 事件名称
  47930. double PTS; // 时间戳(单位是毫秒)
  47931. NET_TIME_EX UTC; // 事件发生的时间
  47932. UINT nEventID; // 事件ID
  47933. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  47934. NET_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  47935. int nDetectRegionNum; // 规则检测区域顶点数
  47936. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  47937. int nObjectNum; // 检测到的物体个数
  47938. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  47939. char szPresetName[64]; // 事件触发的预置名称
  47940. UINT nViolationDuration; // 违法持续时长,单位:秒 缺省值0表示无意义
  47941. char szSourceID[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  47942. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  47943. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  47944. int nImageInfoNum; // 图片信息个数
  47945. UINT nRuleId; // 规则编号
  47946. char szRuleName[128]; // 规则名称
  47947. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  47948. BYTE bReserved[2884]; // 保留字节,留待扩展.
  47949. } DEV_EVENT_DUSTBIN_OVER_FLOW_INFO;
  47950. ///@brief 事件类型EVENT_IVS_TRASH_WITHOUT_COVER_DETECTION (垃圾桶未盖盖子检测事件)对应的数据块描述信息
  47951. typedef struct tagDEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO
  47952. {
  47953. int nChannelID; // 通道号
  47954. int nAction; // 事件动作, 1:开始 2:停止
  47955. char szName[128]; // 事件名称
  47956. double PTS; // 时间戳(单位是毫秒)
  47957. NET_TIME_EX UTC; // 事件发生的时间
  47958. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  47959. UINT nRuleID; // 规则ID, 用于标示哪个规则触发的事件
  47960. UINT nEventID; // 事件ID
  47961. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  47962. int nCountInGroup; // 一个事件组内的抓拍张数
  47963. int nIndexInGroup; // 一个事件组内的抓拍序号, 从1开始
  47964. int nPresetID; // 事件触发的预置点号,从1开始, 0 表示无效
  47965. char szReserved1[4]; // 字节对齐
  47966. int nObjectNum; // 检测到的物体个数
  47967. DH_MSG_OBJECT stuObjects[128]; // 检测到的物体
  47968. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  47969. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  47970. int nImageInfoNum; // 图片信息个数
  47971. char byReserved[1024]; // 保留字节,留待扩展.
  47972. } DEV_EVENT_TRASH_WITHOUT_COVER_DETECTION_INFO;
  47973. ///@brief 事件类型 EVENT_IVS_DOOR_FRONT_DIRTY (门前脏乱检测事件) 对应的数据块描述信息
  47974. typedef struct tagDEV_EVENT_DOOR_FRONT_DIRTY_INFO
  47975. {
  47976. int nChannelID; // 通道号
  47977. int nAction; // 0:脉冲 1:开始 2:停止
  47978. char szName[128]; // 事件名称
  47979. double PTS; // 时间戳(单位是毫秒)
  47980. NET_TIME_EX UTC; // 事件发生的时间
  47981. UINT nEventID; // 事件ID
  47982. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  47983. NET_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  47984. int nDetectRegionNum; // 规则检测区域顶点数
  47985. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  47986. int nObjectNum; // 检测到的物体个数
  47987. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  47988. char szPresetName[64]; // 事件触发的预置名称
  47989. char szShopAddress[256]; // 商铺地址名称
  47990. UINT nViolationDuration; // 违法持续时长,单位:秒,缺省值0表示无意义
  47991. char szSourceID[32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  47992. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  47993. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  47994. int nImageInfoNum; // 图片信息个数
  47995. BYTE bReserved[4088 - POINTERSIZE]; // 保留字节,留待扩展.
  47996. } DEV_EVENT_DOOR_FRONT_DIRTY_INFO;
  47997. ///@brief 事件类型 EVENT_IVS_STREET_SUNCURE 沿街晾晒事件 对应的数据块描述信息
  47998. typedef struct tagDEV_EVENT_STREET_SUNCURE_INFO
  47999. {
  48000. int nChannelID; // 通道号
  48001. int nAction; // 0:脉冲 1:开始 2:停止
  48002. char szName[DH_COMMON_STRING_128]; // 事件名称
  48003. double PTS; // 时间戳(单位是毫秒)
  48004. NET_TIME_EX UTC; // 事件发生的时间
  48005. UINT nEventID; // 事件ID
  48006. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48007. NET_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  48008. int nDetectRegionNum; // 规则检测区域顶点数
  48009. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  48010. int nObjectNum; // 检测到的物体个数
  48011. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  48012. char szPresetName[DH_COMMON_STRING_64]; // 事件触发的预置名称
  48013. UINT nViolationDuration; // 违法持续时长,单位:秒,缺省值0表示无意义
  48014. char szSourceID[DH_COMMON_STRING_32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  48015. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  48016. char szShopAddress[64]; // 商铺地址
  48017. BYTE bReserved[4028]; // 保留字节,留待扩展
  48018. }DEV_EVENT_STREET_SUNCURE_INFO;
  48019. ///@brief 事件类型 EVENT_IVS_OUTDOOR_ADVERTISEMENT 户外广告事件 对应的数据块描述信息
  48020. typedef struct tagDEV_EVENT_OUTDOOR_ADVERTISEMENT_INFO
  48021. {
  48022. int nChannelID; // 通道号
  48023. int nAction; // 0:脉冲 1:开始 2:停止
  48024. char szName[DH_COMMON_STRING_128]; // 事件名称
  48025. double PTS; // 时间戳(单位是毫秒)
  48026. NET_TIME_EX UTC; // 事件发生的时间
  48027. UINT nEventID; // 事件ID
  48028. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48029. NET_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  48030. int nDetectRegionNum; // 规则检测区域顶点数
  48031. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  48032. int nObjectNum; // 检测到的物体个数
  48033. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  48034. char szPresetName[DH_COMMON_STRING_64]; // 事件触发的预置名称
  48035. UINT nViolationDuration; // 违法持续时长,单位:秒,缺省值0表示无意义
  48036. char szSourceID[DH_COMMON_STRING_32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  48037. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  48038. char szShopAddress[64]; // 商铺地址
  48039. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  48040. int nImageInfoNum; // 图片信息个数
  48041. BYTE bReserved[4024 - POINTERSIZE]; // 保留字节,留待扩展
  48042. }DEV_EVENT_OUTDOOR_ADVERTISEMENT_INFO;
  48043. ///@brief 事件类型 EVENT_IVS_HUDDLE_MATERIAL 乱放物料检测事件 对应的数据块描述信息
  48044. typedef struct tagDEV_EVENT_HUDDLE_MATERIAL_INFO
  48045. {
  48046. int nChannelID; // 通道号
  48047. int nAction; // 0:脉冲 1:开始 2:停止
  48048. char szName[DH_COMMON_STRING_128]; // 事件名称
  48049. double PTS; // 时间戳(单位是毫秒)
  48050. NET_TIME_EX UTC; // 事件发生的时间
  48051. UINT nEventID; // 事件ID
  48052. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48053. NET_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  48054. int nDetectRegionNum; // 规则检测区域顶点数
  48055. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  48056. int nObjectNum; // 检测到的物体个数
  48057. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  48058. char szPresetName[DH_COMMON_STRING_64]; // 事件触发的预置名称
  48059. UINT nViolationDuration; // 违法持续时长,单位:秒,缺省值0表示无意义
  48060. char szSourceID[DH_COMMON_STRING_32]; // 事件关联ID,同一个物体或图片生成多个事件时SourceID相同
  48061. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  48062. BYTE bReserved[4092]; // 保留字节,留待扩展
  48063. }DEV_EVENT_HUDDLE_MATERIAL_INFO;
  48064. ///@brief 事件类型 EVENT_IVS_FIRE_LINE_DETECTION 进入消防通道检测 对应的数据块描述信息
  48065. typedef struct tagDEV_EVENT_FIRE_LINE_DETECTION_INFO
  48066. {
  48067. int nChannelID; // 通道号
  48068. int nAction; // 1:开始 2:停止
  48069. char szName[128]; // 事件名称
  48070. double PTS; // 时间戳(单位是毫秒)
  48071. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48072. NET_TIME_EX UTC; // 事件发生的时间
  48073. UINT nEventID; // 事件ID
  48074. UINT nSequence; // 帧序号
  48075. UINT nRuleID; // 规则编号
  48076. int nObjectNum; // 检测到的物体个数
  48077. DH_MSG_OBJECT stuObjects[32]; // 检测到的物体
  48078. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  48079. BYTE byReserved[1024]; // 保留字节
  48080. }DEV_EVENT_FIRE_LINE_DETECTION_INFO;
  48081. ///@brief 违法占用公交车道信息
  48082. typedef struct tagNET_OCCUPY_BYS_LANE_CUSTOM_INFO
  48083. {
  48084. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  48085. BYTE byReserved[256]; // 保留信息
  48086. }NET_OCCUPY_BYS_LANE_CUSTOM_INFO;
  48087. ///@brief 违法占用公交车道图片类型
  48088. typedef enum tagEM_OCCUPY_BYS_LANE_IMAGE_TYPE
  48089. {
  48090. EM_OCCUPY_BYS_LANE_IMAGE_TYPE_UNKNOWN = -1, // 未知
  48091. EM_OCCUPY_BYS_LANE_IMAGE_TYPE_SYNTHESIS, // 合成
  48092. EM_OCCUPY_BYS_LANE_IMAGE_TYPE_ORIGINAL, // 原图
  48093. }EM_OCCUPY_BYS_LANE_IMAGE_TYPE;
  48094. ///@brief 违法占用公交车道图片数据
  48095. typedef struct tagNET_OCCUPY_BYS_LANE_IMAGE_INFO
  48096. {
  48097. UINT nOffset; // 二进制在图片中的偏移
  48098. UINT nLength; // 图片大小,单位:字节
  48099. EM_OCCUPY_BYS_LANE_IMAGE_TYPE emImageType; // 图片类型
  48100. BYTE byReserved[124]; // 保留字节
  48101. }NET_OCCUPY_BYS_LANE_IMAGE_INFO;
  48102. ///@brief 事件类型 EVENT_IVS_OCCUPY_BUS_LANE 违法占用公交车道 对应的数据块描述信息
  48103. typedef struct tagDEV_EVENT_OCCUPY_BYS_LANE_INFO
  48104. {
  48105. int nChannelID; // 通道号
  48106. int nAction; // 0:脉冲 1:开始 2:停止
  48107. NET_OCCUPY_BYS_LANE_CUSTOM_INFO stuCustomInfo; // 信息
  48108. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  48109. NET_OCCUPY_BYS_LANE_IMAGE_INFO stImageInfo[8]; // 抓拍图片信息
  48110. int nImageInfoNum; // 抓图信息个数
  48111. NET_TIME_EX UTC; // 事件发生的时间
  48112. BYTE byReserved[1024]; // 保留字节
  48113. }DEV_EVENT_OCCUPY_BUS_LANE_INFO;
  48114. ///@brief 事件类型 EVENT_IVS_DISTRESS_DETECTION 求救检测事件 对应的数据块描述信息
  48115. typedef struct tagDEV_EVENT_DISTRESS_DETECTION_INFO
  48116. {
  48117. int nChannelID; // 通道号
  48118. int nAction; // 1:开始 2:停止
  48119. char szName[128]; // 事件名称
  48120. double PTS; // 时间戳(单位是毫秒)
  48121. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48122. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48123. NET_TIME_EX UTC; // 事件发生的时间
  48124. UINT nEventID; // 事件ID
  48125. UINT nSequence; // 帧序号
  48126. UINT nRuleID; // 规则编号
  48127. DH_MSG_OBJECT stuObject; // 检测到的物体
  48128. NET_POINT stuDetectRegion[20]; // 规则检测区域
  48129. int nDetectRegionNum; // 规则检测区域顶点数
  48130. UINT nPresetID; // 事件触发的预置点名称
  48131. BYTE byReserved[1024]; // 保留字节
  48132. }DEV_EVENT_DISTRESS_DETECTION_INFO;
  48133. ///@brief 事件类型 EVENT_IVS_TRAFFIC_ASSISTANT_WITHOUT_SAFEBELT (交通副驾驶未系安全带事件)对应的数据块描述信息
  48134. typedef struct tagDEV_EVENT_TRAFFIC_ASSISTANT_WITHOUT_SAFEBELT
  48135. {
  48136. int nChannelID; // 通道号
  48137. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  48138. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  48139. DWORD PTS; // 时间戳(单位是毫秒)
  48140. NET_TIME_EX UTC; // 事件发生的时间
  48141. int nEventID; // 事件ID
  48142. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  48143. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束; BYTE byReserved1[2];
  48144. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  48145. BYTE byReserved1[2];
  48146. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48147. int nLane; // 对应车道号
  48148. int nMark; // 底层产生的触发抓拍帧标记
  48149. int nFrameSequence; // 视频分析帧序号
  48150. int nSource; // 视频分析的数据源地址
  48151. DH_MSG_OBJECT stuObject; // 车牌信息
  48152. DH_MSG_OBJECT stuVehicle; // 车身信息
  48153. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  48154. int nSpeed; // 车辆实际速度,Km/h
  48155. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  48156. EVENT_COMM_INFO stCommInfo; // 公共信息
  48157. }DEV_EVENT_TRAFFIC_ASSISTANT_WITHOUT_SAFEBELT;
  48158. ///@brief 包裹物体信息
  48159. typedef struct tagNET_PACK_OBJECT
  48160. {
  48161. UINT nObjectID; // 物体ID
  48162. EM_ANALYSE_OBJECT_TYPE emType; // 物体类型
  48163. NET_RECT stuBoundingBox; // 包围盒
  48164. NET_POINT stuCenter; // 物体型心(不是包围盒中心)二维空间点类型
  48165. BYTE bReserved[1024]; // 保留字节
  48166. }NET_PACKAGE_OBJECT;
  48167. ///@brief 事件类型 EVENT_IVS_PACKBROKEN_DETECTION 包裹破损检测事件 对应的数据块描述信息
  48168. typedef struct tagDEV_EVENT_PACKBROKEN_DETECTION_INFO
  48169. {
  48170. int nChannelID; // 通道号
  48171. int nAction; // 事件动作 1:开始 2:停止
  48172. char szName[128]; // 事件名称
  48173. double PTS; // 时间戳(单位是毫秒)
  48174. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48175. NET_TIME_EX UTC; // 事件发生的时间
  48176. UINT nEventID; // 事件ID
  48177. UINT nRuleID; // 规则编号
  48178. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48179. int nDetectRegionNum; // 规则检测区域顶点数
  48180. NET_POINT DetectRegion[20]; // 规则检测区域
  48181. int nObjectNum; // 检测到的物体个数
  48182. NET_PACKAGE_OBJECT stuObjects[128]; // 检测到的物体信息
  48183. int nPresetID; // 事件触发的预置点号 从1开始
  48184. }DEV_EVENT_PACKBROKEN_DETECTION_INFO;
  48185. ///@brief 事件类型 EVENT_IVS_PACKLAND_DETECTION 包裹着地检测事件 对应的数据块描述信息
  48186. typedef struct tagDEV_EVENT_PACKLAND_DETECTION_INFO
  48187. {
  48188. int nChannelID; // 通道号
  48189. int nAction; // 事件动作 1:开始 2:停止
  48190. char szName[128]; // 事件名称
  48191. double PTS; // 时间戳(单位是毫秒)
  48192. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48193. NET_TIME_EX UTC; // 事件发生的时间
  48194. UINT nEventID; // 事件ID
  48195. UINT nRuleID; // 规则编号
  48196. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48197. int nDetectRegionNum; // 规则检测区域顶点数
  48198. NET_POINT DetectRegion[20]; // 规则检测区域
  48199. int nObjectNum; // 检测到的物体个数
  48200. NET_PACKAGE_OBJECT stuObjects[128]; // 检测到的物体信息
  48201. int nPresetID; // 事件触发的预置点号 从1开始
  48202. }DEV_EVENT_PACKLAND_DETECTION_INFO;
  48203. ///@brief 事件类型 EVENT_IVS_PACKOPEN_DETECTION 开箱验示检测事件 对应的数据块描述信息
  48204. typedef struct tagDEV_EVENT_PACKOPEN_DETECTION_INFO
  48205. {
  48206. int nChannelID; // 通道号
  48207. int nAction; // 事件动作 1:开始 2:停止
  48208. char szName[128]; // 事件名称
  48209. double PTS; // 时间戳(单位是毫秒)
  48210. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48211. NET_TIME_EX UTC; // 事件发生的时间
  48212. UINT nEventID; // 事件ID
  48213. UINT nRuleID; // 规则编号
  48214. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48215. int nDetectRegionNum; // 规则检测区域顶点数
  48216. NET_POINT DetectRegion[20]; // 规则检测区域
  48217. int nObjectNum; // 检测到的物体个数
  48218. NET_PACKAGE_OBJECT stuObjects[128]; // 检测到的物体信息
  48219. int nPresetID; // 事件触发的预置点号 从1开始
  48220. }DEV_EVENT_PACKOPEN_DETECTION_INFO;
  48221. ///@brief 违章类型
  48222. typedef struct tagNET_VIOLATION_TYPE
  48223. {
  48224. BOOL bIsNotStoppingBeforeStopLine; // 停止线前未停车 TRUE:未停车 FALSE:停车
  48225. BOOL bIsNoParkingInWaitingArea; // 等候区未停车 TRUE:未停车 FALSE:停车
  48226. BYTE byReserved[24]; // 保留
  48227. }NET_VIOLATION_TYPE;
  48228. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TURN_RIGHT_NO_STOP 右转不停再起步事件 对应的数据块描述信息
  48229. typedef struct tagDEV_EVENT_TRAFFIC_TURN_RIGHT_NO_STOP_INFO
  48230. {
  48231. int nChannelID; // 通道号
  48232. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  48233. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  48234. DWORD PTS; // 时间戳(单位是毫秒)
  48235. NET_TIME_EX UTC; // 事件发生的时间
  48236. int nEventID; // 事件ID
  48237. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  48238. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  48239. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  48240. BYTE byReserved1[2];
  48241. int nLane; // 对应车道号
  48242. DH_MSG_OBJECT stuObject; // 检测到的物体
  48243. DH_MSG_OBJECT stuVehicle; // 车身信息
  48244. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48245. int nMark; // 底层产生的触发抓拍帧标记
  48246. int nFrameSequence; // 视频分析帧序号
  48247. int nSource; // 视频分析的数据源地址
  48248. int nSpeed; // 车速,单位km/h
  48249. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  48250. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  48251. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  48252. EVENT_COMM_INFO stCommInfo; // 公共信息
  48253. NET_VIOLATION_TYPE stuViolationType; // 违章类型
  48254. NET_GPS_STATUS_INFO stGPSStatus; // GPS信息
  48255. NET_TIME stuStartTime; // 转弯开始时间
  48256. NET_TIME stuStopTime; // 转弯停止时间
  48257. int nMaximumSpeed; // 转弯过程最大车速 km/时
  48258. int nAverageSpeed; // 转弯过程平均车速km/时
  48259. BYTE byReserved[680]; // 保留字节
  48260. }DEV_EVENT_TRAFFIC_TURN_RIGHT_NO_STOP_INFO;
  48261. ///@brief 事件类型 EVENT_IVS_TRAFFIC_CROSSING_GUARDRAIL 跨越护栏事件 对应的数据块描述信息
  48262. typedef struct tagDEV_EVENT_TRAFFIC_CROSSING_GUARDRAIL_INFO
  48263. {
  48264. int nChannelID; // 通道号
  48265. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  48266. int nTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  48267. DWORD PTS; // 时间戳(单位是毫秒)
  48268. NET_TIME_EX UTC; // 事件发生的时间
  48269. int nEventID; // 事件ID
  48270. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  48271. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  48272. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  48273. BYTE byReserved1[2];
  48274. int nLane; // 对应车道号
  48275. DH_MSG_OBJECT stuObject; // 检测到的物体
  48276. DH_MSG_OBJECT stuVehicle; // 车身信息
  48277. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48278. int nMark; // 底层产生的触发抓拍帧标记
  48279. int nFrameSequence; // 视频分析帧序号
  48280. int nSource; // 视频分析的数据源地址
  48281. int nSpeed; // 车速,单位km/h
  48282. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  48283. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  48284. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  48285. EVENT_COMM_INFO stCommInfo; // 公共信息
  48286. BYTE byReserved[712]; // 保留字节
  48287. }DEV_EVENT_TRAFFIC_CROSSING_GUARDRAIL_INFO;
  48288. ///@brief 事件类型 EVENT_IVS_SCALPER_ALARM(黄牛高频报警)对应的数据块描述信息
  48289. typedef struct tagDEV_EVENT_SCALPER_ALARM_INFO
  48290. {
  48291. int nChannelID; // 通道号
  48292. char szName[128]; // 事件名称
  48293. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  48294. int nEventID; // 事件ID
  48295. UINT nSequence; // 帧序号
  48296. UINT nRuleID; // 规则编号
  48297. NET_TIME_EX UTC; // 事件发生的时间
  48298. BOOL bIsGlobalScene; // 是否上传大图 true表示第一个图片为全景大图,信息由ImageInfo来表示
  48299. NET_FACE_IMAGE_INFO stuImageInfo; // 标识大图信息IsGlobalScene为true时有效
  48300. DH_MSG_OBJECT stuObject; // 物体信息
  48301. FACERECOGNITION_PERSON_INFOEX stuPerson; // 注册库目标信息
  48302. UINT nSimilarity; // 相似度
  48303. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48304. NET_FACE_DATA stuFaceData; // 目标数据
  48305. UINT nAppearTimes; // 出现次数
  48306. char szUID[32]; // 数据库的唯一标识符
  48307. char szFeatureVersion[32]; // 特征值算法版本
  48308. BYTE byReserved[1024]; // 字节对齐
  48309. }DEV_EVENT_SCALPER_ALARM_INFO;
  48310. ///@brief 事件类型 EVENT_IVS_VEHICLE_PERIPHERAL_ALARM(车载外设异常报警)对应的数据块描述信息
  48311. typedef struct tagDEV_EVENT_VEHICLE_PERIPHERAL_ALARM_INFO
  48312. {
  48313. int nChannelID; // 通道号
  48314. int nAction; // 1:开始 2:停止
  48315. char szName[128]; // 事件名称
  48316. DWORD PTS; // 时间戳(单位是毫秒)
  48317. NET_TIME_EX UTC; // 事件发生的时间
  48318. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  48319. EM_VEHICLE_PERIPHERAL_TYPE emPeripheralType; // 外设类型
  48320. EM_VEHICLE_PERIPHERAL_ALARM emAlarm; // 报警类型
  48321. double dbSpeed; // 速度, 单位km/h(小数点后一位)
  48322. double dbDistance; // 距离, 单位m
  48323. char szVideoPath[256]; // VideoPath路径
  48324. char byReserved[768]; // 保留字节
  48325. }DEV_EVENT_VEHICLE_PERIPHERAL_ALARM_INFO;
  48326. ///@brief 事件类型 EVENT_IVS_EMERGENCY 对应的数据块描述信息
  48327. typedef struct tagDEV_EVENT_EMERGENCY_INFO
  48328. {
  48329. int nAction; // 0:脉冲
  48330. UINT nID; // 用于标识不同的紧急事件
  48331. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  48332. char szIMEI[16]; // 国际移动设备辨识码15位数字标识
  48333. UINT nDistance; // 距离上次上报的GPS移动距离, 单位0.1Km
  48334. char szPlateNumber[64]; // 车牌号码
  48335. char szReplyNumber[16]; // 应答号码
  48336. int nImageInfoNum; // 图片信息个数
  48337. SCENE_IMAGE_INFO_EX stuImageInfo[16]; // 图片信息
  48338. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  48339. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  48340. }DEV_EVENT_EMERGENCY_INFO;
  48341. ///@brief 统计模式
  48342. typedef enum tagEM_STATISTICS_MODE
  48343. {
  48344. EM_STATISTICS_MODE_UNKNOWN, // 未知
  48345. EM_STATISTICS_MODE_AREA, // 区域
  48346. EM_STATISTICS_MODE_SPACE, // 车位
  48347. }EM_STATISTICS_MODE;
  48348. ///@brief 车位模式统计信息
  48349. typedef struct tagNET_SPACE_MODE_INFO
  48350. {
  48351. char szParkNo[32]; // 车位编号
  48352. EM_SPACE_TYPE emSpaceType; // 车位类型
  48353. BOOL bUsed; // 该车位是否有车
  48354. BYTE byReserved[256]; // 保留字节
  48355. }NET_SPACE_MODE_INFO;
  48356. ///@brief 更新类型
  48357. typedef enum tagEM_UPDATE_TYPE
  48358. {
  48359. EM_UPDATE_TYPE_UNKNOWN = -1, // 未知
  48360. EM_UPDATE_TYPE_DELETE, // 删除区域或车位
  48361. EM_UPDATE_TYPE_MODIFY, // 修改区域或车位
  48362. EM_UPDATE_TYPE_ADD, // 增加区域或车位
  48363. }EM_UPDATE_TYPE;
  48364. ///@brief 区域或车位更新信息
  48365. typedef struct tagNET_UPDATE_INFO
  48366. {
  48367. EM_UPDATE_TYPE emType; // 更新类型
  48368. char szName[32]; // 更新的区域或车位名称
  48369. EM_SPACE_TYPE emBeforeUpdateType; // 更新前的车位类型
  48370. EM_SPACE_TYPE emAfterUpdateType; // 更新后的车位类型
  48371. char szResvered[256]; // 保留字节
  48372. } NET_UPDATE_INFO;
  48373. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PARKING_STATISTICS 对应的数据描述信息
  48374. typedef struct tagDEV_EVENT_TRAFFIC_PARKING_STATISTICS_INFO
  48375. {
  48376. int nAction; // 0:脉冲
  48377. int nChannel; // 通道号
  48378. char szName[128]; // 事件名称
  48379. double PTS; // 时间戳(单位是毫秒)
  48380. NET_TIME_EX UTC; // 事件发生的时间
  48381. int nEventID; // 事件ID
  48382. NET_AREA_MODE_INFO stuAreaModeInfo[5]; // 区域模式统计信息 区域;emStatisticsMode为 EM_STATISTICS_MODE_AREA 时有效
  48383. int nAreaModeInfoNum; // 区域模式统计信息个数
  48384. NET_SPACE_MODE_INFO stuSpaceModeInfo[99]; // 车位模式统计信息,每个元素表示一个车位;emStatisticsMode为 EM_STATISTICS_MODE_SPACE 时有效
  48385. int nSpaceModeInfoNum; // 车位模式统计信息个数
  48386. EM_STATISTICS_MODE emStatisticsMode; // 统计模式
  48387. NET_UPDATE_INFO stuUpdateInfo[99]; // 区域或车位更新信息
  48388. int nUpdateInfoNum; // 区域或车位更新信息个数
  48389. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  48390. int nImageInfoNum; // 图片信息个数
  48391. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  48392. BYTE byReserved[1008]; // 保留字节
  48393. }DEV_EVENT_TRAFFIC_PARKING_STATISTICS_INFO;
  48394. ///@brief 事件类型 EVENT_IVS_HEAT_IMAGING_TEMPER对应的数据描述信息
  48395. typedef struct tagDEV_EVENT_HEAT_IMAGING_TEMPER_INFO
  48396. {
  48397. char szName[64]; // 温度异常点名称 从测温规则配置项中选择
  48398. int nAlarmId; // 报警项编号
  48399. NET_RADIOMETRY_RESULT emResult; // 报警结果值 fTemperatureValue 的类型
  48400. NET_RADIOMETRY_ALARMCONTION emAlarmContion; // 报警条件
  48401. float fTemperatureValue; // 报警温度值
  48402. NET_TEMPERATURE_UNIT emTemperatureUnit; // 温度单位(当前配置的温度单位)
  48403. DH_POINT stCoordinate; // 报警点的坐标 相对坐标体系,取值均为0~8191
  48404. UINT nPresetID; // 预置点
  48405. UINT nChannel; // 通道号
  48406. int nAction; // 0:脉冲 1:开始 2:停止
  48407. DH_POLY_POINTS stuAlarmCoordinates; // 报警坐标, 其类型可以是点,线或多边形。替换stCoordinate字段
  48408. BOOL bUseNameEx; // szNameEx 是否有效,为TRUE时,使用szNameEx字段
  48409. char reserved1[4]; // 字节对齐
  48410. char szNameEx[128]; // 温度异常点名称扩展
  48411. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  48412. float fThreshold; // 报警阈值温度/温度斜率
  48413. int nSlopePeriod; // 温度斜率周期
  48414. float fSlopeMutation; // 温度斜率突变值
  48415. char reserved[872];
  48416. } DEV_EVENT_HEAT_IMAGING_TEMPER_INFO;
  48417. ///@brief 事件类型 EVENT_IVS_ROAD_OBSTACLE_DETECTION 对应的数据描述信息
  48418. typedef struct tagDEV_EVENT_ROAD_OBSTACLE_DETECTION_INFO
  48419. {
  48420. int nAction; // 1:开始 2:停止
  48421. int nChannel; // 通道号
  48422. char szName[128]; // 事件名称
  48423. double PTS; // 时间戳(单位是毫秒)
  48424. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48425. NET_TIME_EX UTC; // 事件发生的时间
  48426. UINT nRuleID; // 规则编号
  48427. BYTE byReserved[1020]; // 保留字节
  48428. }DEV_EVENT_ROAD_OBSTACLE_DETECTION_INFO;
  48429. ///@brief 事件类型 EVENT_IVS_TRAFFIC_BRIGANDAGE_CAR (盗抢车辆事件) 对应的数据描述信息
  48430. typedef struct tagDEV_EVENT_TRAFFIC_BRIGANDAGE_CAR_INFO
  48431. {
  48432. int nChannelID; // 通道号
  48433. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  48434. char szName[128]; // 事件名称
  48435. int nGroupID; // 事件组ID
  48436. int nCountInGroup; // 一个事件组内应有的抓拍张数
  48437. int nIndexInGroup; // 一个事件组内的抓拍序号
  48438. UINT nEventID; // 事件ID编号
  48439. double PTS; // 时间戳(单位是毫秒)
  48440. NET_TIME_EX UTC; // 事件发生的时间(单位是秒)
  48441. UINT UTCMS; // 事件时间(单位是毫秒)
  48442. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  48443. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  48444. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  48445. BOOL bNonMotorInfoEx; // 是否有非机动车信息
  48446. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48447. EM_TRIGGER_TYPE emTriggerType; // 触发类型: 0车检器,1雷达,2视频
  48448. int nMark; // 抓拍帧标记
  48449. int nSource; // 视频分析的数据源地址
  48450. int nFrameSequence; // 视频分析帧序号
  48451. int nLane; // 对应车道号
  48452. int nSequence; // 抓拍序号 0/1 : 1表示抓拍正常结束,0表示抓拍异常结束
  48453. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆的数据库记录
  48454. EVENT_COMM_INFO stuCommInfo; // 公共信息
  48455. int nSpeed; // 车速(单位km/h)
  48456. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  48457. BYTE byReserved[1004]; // 保留字节
  48458. }DEV_EVENT_TRAFFIC_BRIGANDAGE_CAR_INFO;
  48459. ///@brief 事件类型 EVENT_IVS_TRAFFIC_COUNTERFEIT_PLATE_CAR (假牌车辆事件) 对应的数据描述信息
  48460. typedef struct tagDEV_EVENT_TRAFFIC_COUNTERFEIT_PLATE_CAR_INFO
  48461. {
  48462. int nChannelID; // 通道号
  48463. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  48464. char szName[128]; // 事件名称
  48465. int nGroupID; // 事件组ID
  48466. int nCountInGroup; // 一个事件组内应有的抓拍张数
  48467. int nIndexInGroup; // 一个事件组内的抓拍序号
  48468. UINT nEventID; // 事件ID编号
  48469. double PTS; // 时间戳(单位是毫秒)
  48470. NET_TIME_EX UTC; // 事件发生的时间(单位是秒)
  48471. UINT UTCMS; // 事件时间(单位是毫秒)
  48472. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  48473. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  48474. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  48475. BOOL bNonMotorInfoEx; // 是否有非机动车信息
  48476. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48477. EM_TRIGGER_TYPE emTriggerType; // 触发类型: 0车检器,1雷达,2视频
  48478. int nMark; // 抓拍帧标记
  48479. int nSource; // 视频分析的数据源地址
  48480. int nFrameSequence; // 视频分析帧序号
  48481. int nLane; // 对应车道号
  48482. int nSequence; // 抓拍序号 0/1 : 1表示抓拍正常结束,0表示抓拍异常结束
  48483. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆的数据库记录
  48484. EVENT_COMM_INFO stuCommInfo; // 公共信息
  48485. int nSpeed; // 车速(单位km/h)
  48486. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  48487. BYTE byReserved[1004]; // 保留字节
  48488. }DEV_EVENT_TRAFFIC_COUNTERFEIT_PLATE_CAR_INFO;
  48489. ///@brief 事件类型 EVENT_IVS_TRAFFIC_FAKE_PLATE_CAR (套牌车辆事件) 对应的数据描述信息
  48490. typedef struct tagDEV_EVENT_TRAFFIC_FAKE_PLATE_CAR_INFO
  48491. {
  48492. int nChannelID; // 通道号
  48493. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  48494. char szName[128]; // 事件名称
  48495. int nGroupID; // 事件组ID
  48496. int nCountInGroup; // 一个事件组内应有的抓拍张数
  48497. int nIndexInGroup; // 一个事件组内的抓拍序号
  48498. UINT nEventID; // 事件ID编号
  48499. double PTS; // 时间戳(单位是毫秒)
  48500. NET_TIME_EX UTC; // 事件发生的时间(单位是秒)
  48501. UINT UTCMS; // 事件时间(单位是毫秒)
  48502. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  48503. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  48504. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  48505. BOOL bNonMotorInfoEx; // 是否有非机动车信息
  48506. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48507. EM_TRIGGER_TYPE emTriggerType; // 触发类型: 0车检器,1雷达,2视频
  48508. int nMark; // 抓拍帧标记
  48509. int nSource; // 视频分析的数据源地址
  48510. int nFrameSequence; // 视频分析帧序号
  48511. int nLane; // 对应车道号
  48512. int nSequence; // 抓拍序号 0/1 : 1表示抓拍正常结束,0表示抓拍异常结束
  48513. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆的数据库记录
  48514. EVENT_COMM_INFO stuCommInfo; // 公共信息
  48515. int nSpeed; // 车速(单位km/h)
  48516. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  48517. BYTE byReserved[1004]; // 保留字节
  48518. }DEV_EVENT_TRAFFIC_FAKE_PLATE_CAR_INFO;
  48519. ///@brief 事件类型 EVENT_IVS_SEWAGE_DETECTION (排污检测事件) 对应的数据描述信息
  48520. typedef struct tagDEV_EVENT_SEWAGE_DETECTION_INFO
  48521. {
  48522. int nChannelID; // 通道号
  48523. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  48524. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48525. char szName[128]; // 事件名称
  48526. int nGroupID; // 事件组ID
  48527. int nCountInGroup; // 一个事件组内应有的抓拍张数
  48528. int nIndexInGroup; // 一个事件组内的抓拍序号
  48529. UINT nEventID; // 事件ID编号
  48530. double PTS; // 时间戳(单位是毫秒)
  48531. UINT UTC; // 事件发生的时间(单位是秒)
  48532. UINT UTCMS; // 事件时间(单位是毫秒)
  48533. int nDetectRegionNum; // 实际检测到区域个数
  48534. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  48535. UINT nPresetID; // 事件触发的预置点号,从1开始, 没有该字段,表示预置点未知
  48536. NET_INTELLIGENCE_IMAGE_INFO stuOriginalImage; // 原始图
  48537. NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // 球机变到最小倍下的抓图
  48538. BYTE byReserved[1024]; // 保留字节
  48539. }DEV_EVENT_SEWAGE_DETECTION_INFO;
  48540. ///@brief 事件类型 EVENT_IVS_TRAFFIC_MOTORCYCLE_FORBID (禁摩事件) 对应的数据描述信息
  48541. typedef struct tagDEV_EVENT_TRAFFIC_MOTORCYCLE_FORBID
  48542. {
  48543. int nChannelID; // 通道号
  48544. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  48545. char szName[128]; // 事件名称
  48546. int nGroupID; // 事件组ID
  48547. int nCountInGroup; // 一个事件组内应有的抓拍张数
  48548. int nIndexInGroup; // 一个事件组内的抓拍序号
  48549. UINT nEventID; // 事件ID编号
  48550. double PTS; // 时间戳(单位是毫秒)
  48551. NET_TIME_EX UTC; // 事件发生的时间(单位是秒)
  48552. UINT UTCMS; // 事件时间(单位是毫秒)
  48553. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  48554. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  48555. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48556. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  48557. BOOL bNonMotorInfoEx; // 是否有非机动车信息
  48558. int nLane; // 对应车道号
  48559. int nSequence; // 抓拍序号 0/1 : 1表示抓拍正常结束,0表示抓拍异常结束
  48560. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆的数据库记录
  48561. EVENT_COMM_INFO stuCommInfo; // 公共信息
  48562. BYTE byReserved[1020]; // 保留字节
  48563. }DEV_EVENT_TRAFFIC_MOTORCYCLE_FORBID;
  48564. ///@brief 污水颜色
  48565. typedef enum tagEM_WATER_COLOR
  48566. {
  48567. EM_WATER_COLOR_UNKNOWN, // 未知
  48568. EM_WATER_COLOR_BLACK, // 黑色
  48569. EM_WATER_COLOR_RED, // 红色
  48570. EM_WATER_COLOR_GREEN, // 绿色
  48571. EM_WATER_COLOR_YELLOW, // 黄色
  48572. }EM_WATER_COLOR;
  48573. ///@brief 事件类型 EVENT_IVS_WATERCOLOR_DETECTION (水体颜色事件) 对应的数据描述信息
  48574. typedef struct tagDEV_EVENT_WATERCOLOR_DETECTION_INFO
  48575. {
  48576. int nChannelID; // 通道号
  48577. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  48578. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48579. char szName[128]; // 事件名称
  48580. int nGroupID; // 事件组ID
  48581. int nCountInGroup; // 一个事件组内应有的抓拍张数
  48582. int nIndexInGroup; // 一个事件组内的抓拍序号
  48583. int nEventID; // 事件ID编号
  48584. double PTS; // 时间戳(单位是毫秒)
  48585. UINT UTC; // 事件发生的时间(单位是秒)
  48586. UINT UTCMS; // 事件时间(单位是毫秒)
  48587. int nDetectRegionNum; // 实际检测到区域个数
  48588. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  48589. UINT nPresetID; // 事件触发的预置点号,从1开始, 没有该字段,表示预置点未知
  48590. EM_WATER_COLOR emWaterColor; // 污水颜色
  48591. NET_INTELLIGENCE_IMAGE_INFO stuOriginalImage; // 原始图
  48592. NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // 球机变到最小倍下的抓图
  48593. BYTE byReserved[1024]; // 保留字节
  48594. }DEV_EVENT_WATERCOLOR_DETECTION_INFO;
  48595. ///@brief 触发事件的类型
  48596. typedef enum tagEM_HELMET_EVENT_TYPE
  48597. {
  48598. EM_UNKNOWN_TYPE,
  48599. EM_NOT_WEAR_HELMET, // 未佩戴安全帽
  48600. }EM_HELMET_EVENT_TYPE;
  48601. ///@brief 事件类型 EVENT_IVS_HELMET_DETECTION (安全帽检测事件) 对应的数据块描述信息
  48602. typedef struct tagDEV_EVENT_HELMET_DETECTION_INFO
  48603. {
  48604. int nChannelID; // 通道号
  48605. int nAction; // 0:脉冲 1:开始 2:停止
  48606. char szName[128]; // 事件名称
  48607. double PTS; // 时间戳(单位是毫秒)
  48608. NET_TIME_EX UTC; // 事件发生的时间
  48609. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48610. UINT nEventID; // 事件ID
  48611. UINT nRuleID; // 规则编号
  48612. int nObjectID; // 目标ID
  48613. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48614. EM_HELMET_EVENT_TYPE emHelmetEventType ; // 触发事件类型
  48615. HUMAN_IMAGE_INFO stuHumanImage; // 人体图片
  48616. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  48617. }DEV_EVENT_HELMET_DETECTION_INFO;
  48618. ///@brief Mask信息
  48619. typedef struct tagNET_CFG_MASK_INFO
  48620. {
  48621. UINT nOffset; // Mask信息在二进制数据块中的偏移
  48622. UINT nLength; // Mask信息大小,单位:字节
  48623. BYTE byReserved[1016];
  48624. }NET_CFG_MASK_INFO;
  48625. ///@brief 应用场景
  48626. typedef enum tagEM_DEPOSIT_DETECTION_SCENE_TYPE
  48627. {
  48628. EM_DEPOSIT_DETECTION_SCENE_TYPE_UNKNOWN = -1, // 未知
  48629. EM_DEPOSIT_DETECTION_SCENE_TYPE_LATTICE, // 格口检测
  48630. EM_DEPOSIT_DETECTION_SCENE_TYPE_CONVEROR_BELT, // 传送带阻塞检测
  48631. }EM_DEPOSIT_DETECTION_SCENE_TYPE;
  48632. ///@brief 事件类型 EVENT_IVS_DEPOSIT_DETECTION (包裹堆积程度检测事件) 对应的数据块描述信息
  48633. typedef struct tagDEV_EVENT_DEPOSIT_DETECTION_INFO
  48634. {
  48635. int nChannelID; // 通道号
  48636. int nAction; // 0:脉冲 1:开始 2:停止
  48637. char szName[128]; // 事件名称
  48638. double PTS; // 时间戳(单位是毫秒)
  48639. NET_TIME_EX UTC; // 事件发生的时间
  48640. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48641. UINT nEventID; // 事件ID
  48642. int nDetectRegionNum; // 规则检测区域顶点数
  48643. NET_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  48644. char szRegionName[64]; // 格口名称
  48645. UINT nStackThreshold; // 包裹堆积百分比
  48646. UINT nGridState; // 格口状态 0:未知1:空仓 2:半仓 3:满仓 4: 爆仓
  48647. NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // 全景大图信息
  48648. NET_INTELLIGENCE_IMAGE_INFO stuDepositImage; // 格口抠图图片信息
  48649. BYTE byReserved[1024]; // 为图片信息做预留字节,新增的字段请在该保留字节下面添加
  48650. NET_CFG_MASK_INFO stuMask; // Mask信息
  48651. EM_DEPOSIT_DETECTION_SCENE_TYPE emSceneType; // 应用场景
  48652. }DEV_EVENT_DEPOSIT_DETECTION_INFO;
  48653. ///@brief 事件类型 EVENT_IVS_HOTSPOT_WARNING (热点异常报警事件) 对应的数据块描述信息
  48654. typedef struct tagDEV_EVENT_HOTSPOT_WARNING_INFO
  48655. {
  48656. int nChannelID; // 通道号
  48657. int nAction; // 0:脉冲 1:开始 2:停止
  48658. char szName[128]; // 事件名称
  48659. double PTS; // 时间戳(单位是毫秒)
  48660. NET_TIME_EX UTC; // 事件发生的时间
  48661. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48662. UINT nEventID; // 事件ID
  48663. DH_POINT stuPoint; // 热点的坐标,坐标值 0~8191
  48664. float fHotSpotValue; // 热点温度值
  48665. NET_TEMPERATURE_UNIT nTemperatureUnit; // 温度单位(当前配置的温度单位)
  48666. BYTE byReserved[256]; // 保留字节
  48667. }DEV_EVENT_HOTSPOT_WARNING_INFO;
  48668. ///@brief 课堂行为动作类型
  48669. typedef enum tagEM_CLASSROOM_ACTION
  48670. {
  48671. EM_CLASSROOM_ACTION_UNKNOWN, // 未知
  48672. EM_CLASSROOM_ACTION_PLAY_PHONE, // 玩手机
  48673. EM_CLASSROOM_ACTION_HANDSUP, // 举手
  48674. EM_CLASSROOM_ACTION_LISTEN, // 听讲
  48675. EM_CLASSROOM_ACTION_READ_WRITE, // 读写
  48676. EM_CLASSROOM_ACTION_TABLE, // 趴桌子
  48677. EM_CLASSROOM_ACTION_TURN, // 转身
  48678. } EM_CLASSROOM_ACTION;
  48679. ///@brief 事件类型 EVENT_IVS_CLASSROOM_BEHAVIOR (课堂行为分析事件) 对应的数据块描述信息
  48680. typedef struct tagDEV_EVENT_CLASSROOM_BEHAVIOR_INFO
  48681. {
  48682. int nChannelID; // 通道号
  48683. int nAction; // 0:脉冲 1:开始 2:停止
  48684. char szName[128]; // 事件名称
  48685. double PTS; // 时间戳(单位是毫秒)
  48686. NET_TIME_EX UTC; // 事件发生的时间
  48687. UINT nEventID; // 事件ID
  48688. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  48689. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48690. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  48691. UINT nObjectID; // 物体ID
  48692. UINT nSequence; // 帧序号
  48693. EM_CLASSROOM_ACTION emClassroomAction; // 课堂行为动作
  48694. NET_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  48695. int nDetectRegionNum; // 规则检测区域顶点数
  48696. UINT nPresetID; // 事件触发的预置点号
  48697. char szPresetName[64]; // 事件触发的预置点名称
  48698. char szSerialUUID[22]; // 智能物体全局唯一物体标识
  48699. // 格式如下:前2位%d%d:01-视频片段,02-图片,03-文件,99-其他;
  48700. //中间14位YYYYMMDDhhmmss:年月日时分秒;后5位%u%u%u%u%u:物体ID,如00001
  48701. BYTE byReserved1[2]; // 用于字节对齐
  48702. DH_RECT stuBoundingBox; // 包围盒
  48703. NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // 底图信息
  48704. NET_INTELLIGENCE_IMAGE_INFO stuFaceImage; // 小图信息
  48705. NET_FACE_ATTRIBUTE_EX stuFaceAttributes; // 属性
  48706. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  48707. int nImageInfoNum; // 图片信息个数
  48708. char byReserved[1024]; // 预留字节
  48709. } DEV_EVENT_CLASSROOM_BEHAVIOR_INFO;
  48710. ///@brief 事件类型 EVENT_IVS_VEHICLE_DISTANCE_NEAR (安全驾驶车距过近报警事件) 对应的数据块描述信息
  48711. typedef struct tagDEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO
  48712. {
  48713. int nAction; // 事件动作, 0表示脉冲事件, 1表示持续性事件开始, 2表示持续性事件结束;
  48714. NET_TIME_EX UTC; // 事件发生的时间
  48715. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  48716. char szDriverID[32]; // 司机ID
  48717. char szVideoPath[256]; // 违章关联视频FTP上传路径
  48718. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  48719. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  48720. BYTE bReserved[736]; // 预留字节
  48721. } DEV_EVENT_VEHICLE_DISTANCE_NEAR_INFO;
  48722. ///@brief 事件类型 EVENT_IVS_TRAFFIC_DRIVER_ABNORMAL (驾驶员异常报警事件) 对应的数据块描述信息
  48723. typedef struct tagDEV_EVENT_TRAFFIC_DRIVER_ABNORMAL_INFO
  48724. {
  48725. int nChannelID; // 通道号
  48726. int nAction; // 事件动作, 0表示脉冲事件, 1表示持续性事件开始, 2表示持续性事件结束
  48727. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  48728. NET_TIME_EX UTC; // 事件发生的时间
  48729. char szVideoPath[256]; // 违章关联视频FTP上传路径
  48730. BYTE bReserved[768]; // 预留字节
  48731. } DEV_EVENT_TRAFFIC_DRIVER_ABNORMAL_INFO;
  48732. ///@brief 事件类型 EVENT_IVS_TRAFFIC_DRIVER_CHANGE (驾驶员变更报警事件) 对应的数据块描述信息
  48733. typedef struct tagDEV_EVENT_TRAFFIC_DRIVER_CHANGE_INFO
  48734. {
  48735. int nChannelID; // 通道号
  48736. int nAction; // 事件动作, 0表示脉冲事件, 1表示持续性事件开始, 2表示持续性事件结束
  48737. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  48738. NET_TIME_EX UTC; // 事件发生的时间
  48739. char szPrevDriverID[MAX_COMMON_STRING_32]; // 驾驶员更换前驾驶员ID
  48740. char szCurDriverID[MAX_COMMON_STRING_32]; // 驾驶员更换后驾驶员ID
  48741. char szVideoPath[256]; // 违章关联视频FTP上传路径
  48742. BYTE bReserved[768]; // 预留字节
  48743. } DEV_EVENT_TRAFFIC_DRIVER_CHANGE_INFO;
  48744. ///@brief 安全帽属性
  48745. typedef struct tagNET_HELMET_ATTRIBUTE
  48746. {
  48747. EM_WORK_HELMET_STATE emHelmetState; // 安全帽佩戴状态
  48748. EM_CLOTHES_COLOR emHelmetColor; // 安全帽颜色
  48749. UINT nHelmetFlag; // 报警类型: 0:未知, 1:达到触发速度的报警, 2:达到上报速度的报警, 3:两者同时达到
  48750. int nReportFlag; // 报警上传标识 -1: 未知, 0: 未报警, 1: 报警,
  48751. int nHasLegalHat; // 安全帽检测结果, 0-合规 1-不合规 2-未知
  48752. BYTE byReserved[1012]; // 预留字节
  48753. } NET_HELMET_ATTRIBUTE;
  48754. ///@brief 工作服合法状态
  48755. typedef enum tagEM_CLOTHES_LEGAL_STATE
  48756. {
  48757. EM_CLOTHES_LEGAL_STATE_UNKNOWN, // 未知
  48758. EM_CLOTHES_LEGAL_STATE_WRONGFUL, // 不合法
  48759. EM_CLOTHES_LEGAL_STATE_LEGAL, // 合法
  48760. } EM_CLOTHES_LEGAL_STATE;
  48761. ///@brief 工作服属性
  48762. typedef struct tagNET_WORKCLOTHES_ATTRIBUTE
  48763. {
  48764. EM_WORKCLOTHES_STATE emWorkClothesState; // 工作服穿戴状态
  48765. EM_CLOTHES_COLOR emWorkClothColor; // 工作服颜色
  48766. EM_CLOTHES_LEGAL_STATE emWorkClothesLegalState; // 工作服合法状态
  48767. BYTE byReserved[1020]; // 预留字节
  48768. } NET_WORKCLOTHES_ATTRIBUTE;
  48769. ///@brief 工作裤穿戴状态
  48770. typedef enum tagEM_WORKPANTS_STATE
  48771. {
  48772. EM_WORKPANTS_STATE_UNKNOWN, // 未知
  48773. EM_WORKPANTS_STATE_NOTWEAR, // 没有
  48774. EM_WORKPANTS_STATE_WEAR, // 有
  48775. } EM_WORKPANTS_STATE;
  48776. ///@brief 工作裤属性
  48777. typedef struct tagNET_WORKPANTS_ATTRIBUTE
  48778. {
  48779. EM_WORKPANTS_STATE emWorkPantsState; // 工作裤穿戴状态
  48780. EM_CLOTHES_COLOR emWorkPantsColor; // 工作裤颜色
  48781. BYTE byReserved[1024]; // 预留字节
  48782. } NET_WORKPANTS_ATTRIBUTE;
  48783. ///@brief 工装检测报警规则类型
  48784. typedef enum tagEM_EVENT_WORKCLOTHES_RULE_TYPE
  48785. {
  48786. EM_EVENT_WORKCLOTHES_RULE_UNKNWON, // 未知
  48787. EM_EVENT_WORKCLOTHES_RULE_HELMET, // 安全帽
  48788. EM_EVENT_WORKCLOTHES_RULE_CLOTHES, // 工作服
  48789. EM_EVENT_WORKCLOTHES_RULE_PANTS, // 工作裤
  48790. EM_EVENT_WORKCLOTHES_RULE_PROTECTIVESUIT, // 防护服
  48791. EM_EVENT_WORKCLOTHES_RULE_SHOESCOVER, // 鞋套
  48792. EM_EVENT_WORKCLOTHES_RULE_SAFETYROPE, // 安全绳
  48793. EM_EVENT_WORKCLOTHES_RULE_NORMALHAT, // 普通帽
  48794. EM_EVENT_WORKCLOTHES_RULE_MASK, // 口罩
  48795. EM_EVENT_WORKCLOTHES_RULE_APRON, // 围裙
  48796. EM_EVENT_WORKCLOTHES_RULE_GLOVE, // 手套
  48797. EM_EVENT_WORKCLOTHES_RULE_BOOT, // 靴子
  48798. EM_EVENT_WORKCLOTHES_RULE_NOHAT, // 无帽子
  48799. EM_EVENT_WORKCLOTHES_RULE_TYPE_PROHLMET, // 防护面罩
  48800. EM_EVENT_WORKCLOTHES_RULE_FIREPROOFCLOTHES, // 防火衣
  48801. EM_EVENT_WORKCLOTHES_RULE_UNIFORM, // 制服
  48802. EM_EVENT_WORKCLOTHES_RULE_MULTIMETER, // 万用表
  48803. EM_EVENT_WORKCLOTHES_RULE_BREATHINGMASK, // 呼吸面罩检测
  48804. EM_EVENT_WORKCLOTHES_RULE_GLASSES, // 眼镜
  48805. EM_EVENT_WORKCLOTHES_RULE_VEST, // 反光衣
  48806. EM_EVENT_WORKCLOTHES_RULE_WRISTGUARD, // 防割护腕
  48807. EM_EVENT_WORKCLOTHES_RULE_SAFETYSHOES, // 劳保鞋
  48808. } EM_EVENT_WORKCLOTHES_RULE_TYPE;
  48809. ///@brief 穿戴状态
  48810. typedef enum tagEM_WEARING_STATE
  48811. {
  48812. EM_WEARING_STATE_UNKNOWN, // 未知
  48813. EM_WEARING_STATE_NOTWEAR, // 没有穿戴
  48814. EM_WEARING_STATE_WEAR, // 有穿戴
  48815. EM_WEARING_STATE_NO_EXIT, // 不存在指定颜色的帽子
  48816. } EM_WEARING_STATE;
  48817. ///@brief 合规检测状态
  48818. typedef enum tagEM_COMPLIANCE_STATE
  48819. {
  48820. EM_COMPLIANCE_STATE_COMPLIANT, // 合规
  48821. EM_COMPLIANCE_STATE_NONCOMPLIANT, // 不合规
  48822. EM_COMPLIANCE_STATE_UNKNOWN, // 未知
  48823. } EM_COMPLIANCE_STATE;
  48824. ///@brief 是否穿着防火衣
  48825. typedef enum tagEM_FIREPROOF_CLOTHES_STATE
  48826. {
  48827. EM_FIREPROOF_CLOTHES_STATE_UNKNOWN, // 未知
  48828. EM_FIREPROOF_CLOTHES_STATE_NO, // 没有穿着防火衣
  48829. EM_FIREPROOF_CLOTHES_STATE_YES, // 有穿着防火衣
  48830. EM_FIREPROOF_CLOTHES_STATE_NOEXIT, // 不存在指定颜色的防火衣
  48831. } EM_FIREPROOF_CLOTHES_STATE;
  48832. ///@brief 普通帽子相关属性状态信息
  48833. typedef struct tagNET_NORMALHAT_ATTRIBUTE
  48834. {
  48835. EM_WEARING_STATE emHasHat; // 是否有戴普通帽
  48836. EM_COMPLIANCE_STATE emHasLegalHat; // 帽子检测结果
  48837. } NET_NORMALHAT_ATTRIBUTE;
  48838. ///@brief 口罩相关属性状态信息
  48839. typedef struct tagNET_MASK_ATTRIBUTE
  48840. {
  48841. EM_WEARING_STATE emHasMask; // 是否有戴口罩
  48842. EM_COMPLIANCE_STATE emHasLegalMask; // 口罩检测结果
  48843. } NET_MASK_ATTRIBUTE;
  48844. ///@brief 围裙相关属性状态信息
  48845. typedef struct tagNET_APRON_ATTRIBUTE
  48846. {
  48847. EM_WEARING_STATE emHasApron; // 是否有穿围裙
  48848. EM_COMPLIANCE_STATE emHasLegalApron; // 围裙检测结果
  48849. } NET_APRON_ATTRIBUTE;
  48850. ///@brief 手套相关属性状态信息
  48851. typedef struct tagNET_GLOVE_ATTRIBUTE
  48852. {
  48853. EM_WEARING_STATE emHasGlove; // 是否有戴手套
  48854. EM_COMPLIANCE_STATE emHasLegalGlove; // 手套检测结果
  48855. } NET_GLOVE_ATTRIBUTE;
  48856. ///@brief 靴子相关属性状态信息
  48857. typedef struct tagNET_BOOT_ATTRIBUTE
  48858. {
  48859. EM_WEARING_STATE emHasBoot; // 是否有穿靴子
  48860. EM_COMPLIANCE_STATE emHasLegalBoot; // 靴子检测结果
  48861. } NET_BOOT_ATTRIBUTE;
  48862. ///@brief 鞋套相关属性状态信息
  48863. typedef struct tagNET_SHOESCOVER_ATTRIBUTE
  48864. {
  48865. EM_WEARING_STATE emHasCover; // 是否有穿鞋套
  48866. EM_COMPLIANCE_STATE emHasLegalCover; // 鞋套检测结果
  48867. } NET_SHOESCOVER_ATTRIBUTE;
  48868. ///@brief 无帽子相关属性状态信息
  48869. typedef struct tagNET_NOHAT_ATTRIBUTE
  48870. {
  48871. EM_WEARING_STATE emHasHat; // 是否有戴帽子
  48872. EM_COMPLIANCE_STATE emHasLegalHat; // 帽子检测结果
  48873. } NET_NOHAT_ATTRIBUTE;
  48874. ///@brief 防护面罩相关属性状态信息
  48875. typedef struct tagNET_PROHELMET_ATTRIBUTE
  48876. {
  48877. EM_WEARING_STATE emHasHat; // 是否有戴防护面罩
  48878. EM_CLOTHES_COLOR emHatColor; // 帽子颜色
  48879. char szReserved[128]; // 预留字节
  48880. } NET_PROHELMET_ATTRIBUTE;
  48881. ///@brief 防火衣相关属性状态信息
  48882. typedef struct tagNET_FIREPROOF_CLOTHES
  48883. {
  48884. EM_FIREPROOF_CLOTHES_STATE emHasFireProofClothes; // 是否穿着防火衣
  48885. EM_CLOTHES_COLOR emFireProofClothesColor; // 防火衣颜色
  48886. char szReserved[128]; // 预留字节
  48887. } NET_FIREPROOF_CLOTHES;
  48888. ///@brief 眼镜检测规则中报警类型
  48889. typedef enum tagEM_GLASSES_RULE_TYPE
  48890. {
  48891. EM_GLASSES_RULE_TYPE_UNKNOWN = -1, // 未知
  48892. EM_GLASSES_RULE_TYPE_NO_GLASSES, // 无眼镜
  48893. EM_GLASSES_RULE_TYPE_SUN_GLASSES, // 太阳镜
  48894. EM_GLASSES_RULE_TYPE_BLACK_RIMMED_GLASSES, // 黑框眼镜
  48895. EM_GLASSES_RULE_TYPE_HALF_RIMMED_GLASSES, // 半框眼镜
  48896. EM_GLASSES_RULE_TYPE_RIMLESS_GLASSES, // 无框眼镜
  48897. EM_GLASSES_RULE_TYPE_NORMAL_GLASSES, // 普通眼镜
  48898. EM_GLASSES_RULE_TYPE_INDUSTRIAL_SAFETY_GLASSES, // 工业护目镜
  48899. } EM_GLASSES_RULE_TYPE;
  48900. ///@brief 眼镜相关属性状态信息
  48901. typedef struct tagNET_GLASSES_RELATED_INFO
  48902. {
  48903. EM_GLASSES_RULE_TYPE emGlassesType; // 眼镜检测规则中报警类型
  48904. int nGlassesLegalMask; // 眼镜检测结果, 0-合规 1-不合规 2-未知
  48905. char szReserved[64]; // 预留字节
  48906. } NET_GLASSES_RELATED_INFO;
  48907. ///@brief 呼吸面罩相关属性状态信息
  48908. typedef struct tagNET_BREATHING_MASK_INFO
  48909. {
  48910. int nHasLegalBreathingMask; // 呼吸面罩检测结果, 0:未知,1:不合规,2:合规
  48911. int nHasBreathingMask; // 是否有穿着呼吸面罩, 0: 未知 1: 没有 2: 有
  48912. char byReserved[56]; // 预留字节
  48913. }NET_BREATHING_MASK_INFO;
  48914. ///@brief 防护服相关属性状态信息
  48915. typedef struct tagNET_PROTECTIVE_SUIT_INFO
  48916. {
  48917. int nHasProtectiveSuit; // 是否有穿着防护服, 0: 未知, 1: 没有, 2: 有, 3:不存在指定颜色的防护服
  48918. EM_CLOTHES_COLOR emProtectiveSuitColor; // 防护服颜色
  48919. char szReserved[24]; // 预留字节
  48920. }NET_PROTECTIVE_SUIT_INFO;
  48921. ///@brief 安全绳相关属性状态信息
  48922. typedef struct tagNET_SAFETY_ROPE_INFO
  48923. {
  48924. int nCompliantType; // 佩戴带安全绳是否合规, 0-不合规 1-合规 2-未知
  48925. char szReserved[28]; // 预留字节
  48926. }NET_SAFETY_ROPE_INFO;
  48927. ///@brief 制服相关属性状态信息
  48928. typedef struct tagNET_UNIFORM_INFO
  48929. {
  48930. int nHasUniform; // 是否有穿着制服, 0: 未知, 1: 没有, 2: 有, 3:不存在指定颜色制服
  48931. EM_CLOTHES_COLOR emUniformColor; // 制服颜色
  48932. char szReserved[24]; // 预留字节
  48933. }NET_UNIFORM_INFO;
  48934. ///@brief 安全带相关属性状态信息
  48935. typedef struct tagNET_SAFE_BELT_INFO
  48936. {
  48937. int nHasSafeBelt; // 是否穿安全带 , 0:未知,1:未穿安全带,2:穿了安全带
  48938. int nHasLegalSafeBelt; // 安全带检测结果, 0-合规 1-不合规 2-未知
  48939. char szReserved[24]; // 预留字节
  48940. }NET_SAFE_BELT_INFO;
  48941. ///@brief 反光背心相关属性状态信息
  48942. typedef struct tagNET_VEST_INFO
  48943. {
  48944. int nHasVest; // 是否穿反光背心, 0:未知,1:未穿反光背心,2:穿了反光背心
  48945. int nHasLegalVest; // 反光背心检测结果, 0-合规 1-不合规 2-未知
  48946. char szReserved[24]; // 预留字节
  48947. }NET_VEST_INFO;
  48948. ///@brief 劳保鞋相关属性状态信息
  48949. typedef struct tagNET_SAFETY_SHOES_INFO
  48950. {
  48951. int nHasSafetyShoes; // 是否穿劳保鞋, 0:未知,1:未穿劳保鞋,2:穿了劳保鞋
  48952. int nHasLegalSafetyShoes; // 劳保鞋检测结果 , 0-合规 1-不合规 2-未知
  48953. char szReserved[24]; // 预留字节
  48954. }NET_SAFETY_SHOES_INFO;
  48955. ///@brief 防割护腕相关属性状态信息
  48956. typedef struct tagNET_WRIST_GUARD_INFO
  48957. {
  48958. int nHasWristGuard; // 是否穿防割护腕, 0:未知,1:未穿防割护腕,2:穿了防割护腕
  48959. int nHasLegalWristGuard; // 防割护腕检测结果 , 0-合规 1-不合规 2-未知
  48960. char szReserved[24]; // 预留字节
  48961. }NET_WRIST_GUARD_INFO;
  48962. ///@brief 事件类型EVENT_IVS_WORKCLOTHES_DETECT(工装(安全帽/工作服等)检测事件)对应的数据块描述信息
  48963. typedef struct tagDEV_EVENT_WORKCLOTHES_DETECT_INFO
  48964. {
  48965. int nChannelID; // 通道号
  48966. int nAction; // 0:脉冲 1:开始 2:停止
  48967. char szName[128]; // 事件名称
  48968. double PTS; // 时间戳(单位是毫秒)
  48969. NET_TIME_EX UTC; // 事件发生的时间
  48970. UINT nEventID; // 事件ID
  48971. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  48972. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  48973. UINT nObjectID; // 物体ID
  48974. UINT nGroupID; // 事件组ID,一次检测的多个nGroupID相同
  48975. UINT nCountInGroup; // 一个事件组内的抓拍张数,一次检测的多个nCountInGroup相同
  48976. UINT nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  48977. SCENE_IMAGE_INFO stuSceneImage; // 全景大图信息
  48978. HUMAN_IMAGE_INFO stuHumanImage; // 小图信息
  48979. NET_HELMET_ATTRIBUTE stuHelmetAttribute; // 安全帽属性
  48980. NET_WORKCLOTHES_ATTRIBUTE stuWorkClothesAttribute; // 工作服属性
  48981. NET_WORKPANTS_ATTRIBUTE stuWorkPantsAttribute; // 工作裤颜色
  48982. int nAlarmType; // 不规范报警类型 0-未知 1-防护服不规范 2: 工作服不规范3:安全帽不规范4:安全帽和工作服不规范
  48983. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  48984. // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
  48985. // 类型:02-图像 时间:YYYYMMDDhhmmss 序列号:00001
  48986. EM_EVENT_WORKCLOTHES_RULE_TYPE emRuleType; // 报警规则类型
  48987. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  48988. int nImageInfoNum; // 图片信息个数
  48989. NET_NORMALHAT_ATTRIBUTE stuNormalHat; // 普通帽子相关属性状态信息
  48990. NET_MASK_ATTRIBUTE stuMask; // 口罩相关属性状态信息
  48991. NET_APRON_ATTRIBUTE stuApron; // 围裙相关属性状态信息
  48992. NET_GLOVE_ATTRIBUTE stuGlove; // 手套相关属性状态信息
  48993. NET_BOOT_ATTRIBUTE stuBoot; // 靴子相关属性状态信息
  48994. NET_SHOESCOVER_ATTRIBUTE stuShoesCover; // 鞋套相关属性状态信息
  48995. NET_NOHAT_ATTRIBUTE stuNoHat; // 无帽子相关属性状态信息
  48996. NET_PROHELMET_ATTRIBUTE stuProhelmet; // 防护面罩相关属性状态信息
  48997. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  48998. NET_FIREPROOF_CLOTHES stuFireProofClothes; // 防火衣相关属性状态信息
  48999. DH_MSG_OBJECT_EX2* pstObjectInfo; // 物体信息数据
  49000. UINT nObjectNum; // 物体信息数
  49001. NET_GLASSES_RELATED_INFO stuGlassesInfo; // 眼镜相关属性状态信息
  49002. NET_BREATHING_MASK_INFO stuBreathingMaskInfo; // 呼吸面罩相关属性状态信息
  49003. NET_PROTECTIVE_SUIT_INFO stuProtectiveSuitInfo; // 防护服相关属性状态信息
  49004. NET_UNIFORM_INFO stuUniformInfo; // 制服相关属性状态信息
  49005. NET_SAFETY_ROPE_INFO stuSafetyRopeInfo; // 安全绳相关属性状态信息
  49006. NET_SAFE_BELT_INFO stuSafeBeltInfo; // 安全带相关属性状态信息
  49007. NET_VEST_INFO stuVestInfo; // 反光背心相关属性状态信息
  49008. NET_SAFETY_SHOES_INFO stuSafetyShoesInfo; // 劳保鞋相关属性状态信息
  49009. NET_WRIST_GUARD_INFO stuWristGuardInfo; // 防割护腕相关属性状态信息
  49010. char byReserved[332 - POINTERSIZE]; // 预留字节
  49011. } DEV_EVENT_WORKCLOTHES_DETECT_INFO;
  49012. ///@brief 安全门人员通过方向
  49013. typedef enum tagEM_SECURITYGATE_PERSON_PASS_DIRECTION
  49014. {
  49015. EM_SECURITYGATE_PERSON_PASS_DIRECTION_UNKNOWN = 0, // 未知
  49016. EM_SECURITYGATE_PERSON_PASS_DIRECTION_IN, // 进入
  49017. EM_SECURITYGATE_PERSON_PASS_DIRECTION_OUT, // 离开
  49018. }EM_SECURITYGATE_PERSON_PASS_DIRECTION;
  49019. ///@brief 安全门人员报警级别
  49020. typedef enum tagEM_SECURITYGATE_ALARM_LEVEL
  49021. {
  49022. EM_SECURITYGATE_ALARM_LEVEL_UNKNOWN = 0, // 未知
  49023. EM_SECURITYGATE_ALARM_LEVEL_NON, // 无报警
  49024. EM_SECURITYGATE_ALARM_LEVEL_LOW, // 低危报警级别
  49025. EM_SECURITYGATE_ALARM_LEVEL_MIDDLE, // 中危报警级别
  49026. EM_SECURITYGATE_ALARM_LEVEL_HIGH, // 高危报警级别
  49027. }EM_SECURITYGATE_ALARM_LEVEL;
  49028. ///@brief 安全门报警位置
  49029. typedef enum tagEM_SECURITYGATE_ALARM_POSITION
  49030. {
  49031. EM_SECURITYGATE_ALARM_POSITION_UNKNWON = -1, // 未知
  49032. EM_SECURITYGATE_ALARM_POSITION_LEFT_1, // 左1
  49033. EM_SECURITYGATE_ALARM_POSITION_LEFT_2, // 左2
  49034. EM_SECURITYGATE_ALARM_POSITION_LEFT_3, // 左3
  49035. EM_SECURITYGATE_ALARM_POSITION_LEFT_4, // 左4
  49036. EM_SECURITYGATE_ALARM_POSITION_LEFT_5, // 左5
  49037. EM_SECURITYGATE_ALARM_POSITION_LEFT_6, // 左6
  49038. EM_SECURITYGATE_ALARM_POSITION_MIDDLE_1, // 中1
  49039. EM_SECURITYGATE_ALARM_POSITION_MIDDLE_2, // 中2
  49040. EM_SECURITYGATE_ALARM_POSITION_MIDDLE_3, // 中3
  49041. EM_SECURITYGATE_ALARM_POSITION_MIDDLE_4, // 中4
  49042. EM_SECURITYGATE_ALARM_POSITION_MIDDLE_5, // 中5
  49043. EM_SECURITYGATE_ALARM_POSITION_MIDDLE_6, // 中6
  49044. EM_SECURITYGATE_ALARM_POSITION_RIGHT_1, // 右1
  49045. EM_SECURITYGATE_ALARM_POSITION_RIGHT_2, // 右2
  49046. EM_SECURITYGATE_ALARM_POSITION_RIGHT_3, // 右3
  49047. EM_SECURITYGATE_ALARM_POSITION_RIGHT_4, // 右4
  49048. EM_SECURITYGATE_ALARM_POSITION_RIGHT_5, // 右5
  49049. EM_SECURITYGATE_ALARM_POSITION_RIGHT_6, // 右6
  49050. } EM_SECURITYGATE_ALARM_POSITION;
  49051. ///@brief 温度类型
  49052. typedef enum tagEM_TEMPERATURE_TYPE
  49053. {
  49054. EM_TEMPERATURE_TYPE_UNKNOWN = -1, // 未知
  49055. EM_TEMPERATURE_TYPE_UNDEFINE, // 未识别
  49056. EM_TEMPERATURE_TYPE_LOW, // 体温异常
  49057. EM_TEMPERATURE_TYPE_NORMAL, // 体温正常
  49058. EM_TEMPERATURE_TYPE_HIGH, // 体温异常
  49059. } EM_TEMPERATURE_TYPE;
  49060. ///@brief 安检门事件人员表情
  49061. typedef enum tagEM_SECURITYGATE_EXPRESSION_TYPE
  49062. {
  49063. EM_SECURITYGATE_EXPRESSION_UNKNOWN = -1, // 未知
  49064. EM_SECURITYGATE_EXPRESSION_UNDEFINE, // 未识别
  49065. EM_SECURITYGATE_EXPRESSION_ANGER, // 生气
  49066. EM_SECURITYGATE_EXPRESSION_SAD, // 悲伤
  49067. EM_SECURITYGATE_EXPRESSION_DISGUST, // 厌恶
  49068. EM_SECURITYGATE_EXPRESSION_FEAR, // 恐惧
  49069. EM_SECURITYGATE_EXPRESSION_SURPRISED, // 诧异
  49070. EM_SECURITYGATE_EXPRESSION_CALM, // 平静
  49071. EM_SECURITYGATE_EXPRESSION_SMILE, // 微笑
  49072. EM_SECURITYGATE_EXPRESSION_LAUGH, // 大笑
  49073. EM_SECURITYGATE_EXPRESSION_HAPPY, // 高兴
  49074. EM_SECURITYGATE_EXPRESSION_CONFUSE, // 困惑
  49075. EM_SECURITYGATE_EXPRESSION_SCREAM, // 尖叫
  49076. }EM_SECURITYGATE_EXPRESSION_TYPE;
  49077. ///@brief 安检门事件人员是否戴眼镜
  49078. typedef enum tagEM_SECURITYGATE_GLASSES_TYPE
  49079. {
  49080. EM_SECURITYGATE_GLASSES_UNKNOWN = -1, // 未知
  49081. EM_SECURITYGATE_GLASSES_UNDEFINE, // 未识别
  49082. EM_SECURITYGATE_WITHOUT_GLASSES, // 未戴眼镜
  49083. EM_SECURITYGATE_WITH_GLASSES, // 戴眼镜
  49084. }EM_SECURITYGATE_GLASSES_TYPE;
  49085. ///@brief 安检门事件人员性别
  49086. typedef enum tagEM_SECURITYGATE_SEX_TYPE
  49087. {
  49088. EM_SECURITYGATE_SEX_MAN = 0, // 男
  49089. EM_SECURITYGATE_SEX_WOMEN, // 女
  49090. EM_SECURITYGATE_SEX_UNKNOWN, // 未知
  49091. }EM_SECURITYGATE_SEX_TYPE;
  49092. ///@brief 安检门事件人员信息
  49093. typedef struct tagNET_SECURITYGATE_ALARM_FACE_INFO
  49094. {
  49095. EM_SECURITYGATE_SEX_TYPE emSex; // 性别
  49096. int nAge; // 年龄
  49097. EM_SECURITYGATE_EXPRESSION_TYPE emEmotion; // 表情
  49098. EM_SECURITYGATE_GLASSES_TYPE emGlasses; // 是否戴眼镜
  49099. EM_MASK_STATE_TYPE emMask; // 是否带口罩
  49100. EM_BEARD_STATE_TYPE emBeard; // 是否有胡子
  49101. int nAttractive; // 魅力值
  49102. char szReserved1[4];
  49103. EM_MOUTH_STATE_TYPE emMouth; // 嘴巴状态
  49104. EM_EYE_STATE_TYPE emEye; // 眼睛状态
  49105. float fTemperature; // 体温
  49106. EM_TEMPERATURE_UNIT emTempUnit; // 温度单位
  49107. EM_TEMPERATURE_TYPE emTempType; // 体温类型
  49108. BYTE byReserved[1024]; // 保留字段
  49109. }NET_SECURITYGATE_ALARM_FACE_INFO;
  49110. ///@brief 安检门事件小图
  49111. typedef struct tagNET_SECURITYGATE_ALARM_FACEIMAGE_INFO
  49112. {
  49113. UINT nOffSet; // 在二进制数据块中的偏移
  49114. UINT nLength; // 图片大小,单位字节
  49115. BYTE byReserved[24]; // 预留字节
  49116. }NET_SECURITYGATE_ALARM_FACEIMAGE_INFO;
  49117. ///@brief 安全门注册人员信息
  49118. typedef struct tagNET_SECURITYGATE_PERSON
  49119. {
  49120. char szUID[32]; // 人员唯一标识符,首次由服务端生成,区别于ID字段
  49121. char szGroupID[64]; // 人员所属组ID
  49122. EM_SEX_TYPE emSexType; // 性别
  49123. char szPersonName[64]; // 姓名
  49124. NET_TIME stuBirthday; // 生日
  49125. char szCountry[3]; // 国籍,符合ISO3166规范
  49126. char szProvince[64]; // 省份
  49127. char szCity[64]; // 城市
  49128. char szHomeAddress[128]; // 地址
  49129. EM_CERTIFICATE_TYPE emCertificateType; // 类型
  49130. char szID[32]; // 人员证件号码,工号,或其他编号
  49131. BYTE byReserved[1020]; // 保留字节
  49132. }NET_SECURITYGATE_PERSON;
  49133. ///@brief 安全门候选人信息
  49134. typedef struct tagNET_SECURITYGATE_CANDIDATE
  49135. {
  49136. NET_SECURITYGATE_PERSON stuPerson; // 人员信息
  49137. int nSimilarity; // 抓拍相似度 1~100
  49138. BYTE byReserved[260]; // 保留字节
  49139. }NET_SECURITYGATE_CANDIDATE;
  49140. ///@brief 分类报警信息
  49141. typedef struct tagNET_SECURITYGATE_ALARM_INFO
  49142. {
  49143. UINT nPosition; // 报警位置,范围:0-9,分别对应10个区位
  49144. UINT nObjectType; // 分类检测结果物品类型 0:未分类, 1:手机类, 2:刀枪工具类, 3:易拉罐类, 4:马口铁类
  49145. char szResvered[128]; // 保留字节
  49146. }NET_SECURITYGATE_ALARM_INFO;
  49147. ///@brief 事件类型 EVENT_IVS_SECURITYGATE_PERSONALARM (安全门人员报警事件)对应的数据块描述信息
  49148. typedef struct tagDEV_EVENT_SECURITYGATE_PERSONALARM_INFO
  49149. {
  49150. int nChannelID; // 通道号
  49151. int nAction; // 0:脉冲 1:开始 2:停止
  49152. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  49153. double PTS; // 时间戳(单位是毫秒)
  49154. NET_TIME_EX UTC; // 时间
  49155. UINT nEventID; // 事件ID
  49156. EM_SECURITYGATE_PERSON_PASS_DIRECTION emDirection; // 人员通过方向
  49157. EM_SECURITYGATE_ALARM_LEVEL emAlarmLevel; // 报警级别
  49158. int nChannelIn; // 关联进入通道
  49159. int nChannelOut; // 关联离开通道
  49160. NET_INTELLIGENCE_IMAGE_INFO stuImageInfo; // 图片信息
  49161. UINT nAlarmPositionNum; // 报警位置个数
  49162. EM_SECURITYGATE_ALARM_POSITION emAlarmPosition[18]; // 报警位置 建议使用 emAlarmPositionEx
  49163. NET_SECURITYGATE_ALARM_FACEIMAGE_INFO stuFaceImageInfo; // 小图
  49164. NET_SECURITYGATE_ALARM_FACE_INFO stuSecurityGateFaceInfo; // 信息
  49165. BYTE byReserved[4]; // 保留字段
  49166. int nCandidateNum; // 候选人个数, 最大支持50
  49167. NET_SECURITYGATE_CANDIDATE stuCandidates[50]; // 候选人信息
  49168. UINT nDoorRegion; // 门体分区 0表示6分区 1表示12分区 2表示18分区 3:表示10分区;4:表示33分区;
  49169. // 5:表示1分区;6:表示2分区;7:表示3分区;8:表示4分区;9:表示8分区;10:表示9分区;
  49170. // 11:表示16分区;12:表示20分区;13:表示24分区;14:表示36分区;15:表示40分区;16:表示45分区;17:表示48分区;18:表示60分区
  49171. int nAlaramPositionNum; // 报警位置个数
  49172. UINT nAlaramPosition[18]; // 报警位置数组 建议使用 nAlaramPositionEx; 当nDoorRegion为0时,数组个数最多6个 0表示1区,1表示2区...5表示6区
  49173. // 当nDoorRegion为1时,数组个数最多12个 0表示左1,1表示右1,2表示左2,3表示右2...10表示左6,11表示右6
  49174. // 当nDoorRegion为2时,数组个数最多18个 0表示左1,1表示中1,2表示右2,3表示左1,4表示中1,5表示右2...15表示左6,16表示中6,17表示右6
  49175. UINT nPositionNumEx; // 报警位置个数拓展
  49176. EM_SECURITYGATE_ALARM_POSITION emAlarmPositionEx[128]; // 报警位置拓展
  49177. int nAlaramPositionNumEx; // 报警位置个数拓展
  49178. UINT nAlaramPositionEx[128]; // 报警位置数组拓展 门体分区相关
  49179. int nAlarmInfoNum; // 分类报警信息个数
  49180. NET_SECURITYGATE_ALARM_INFO stuAlarmInfo[32]; // 分类报警信息
  49181. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  49182. int nPartitionRow; // DoorRegion门体分区对应的区位分布的行数
  49183. int nPartitionColumn; // DoorRegion门体分区对应的区位分布的列数
  49184. char szResvered[1016]; // 保留字节
  49185. }DEV_EVENT_SECURITYGATE_PERSONALARM_INFO;
  49186. ///@brief 人员信息
  49187. typedef struct tagNET_HUMAN
  49188. {
  49189. NET_RECT stuBoundingBox; // 包围盒(8192坐标系)
  49190. UINT nObjectID; // 物体ID
  49191. char szSerialUUID[22]; // 智能物体全局唯一物体标识
  49192. // 有效数据位21位,包含’\0’
  49193. // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
  49194. // 中间14位YYYYMMDDhhmmss:年月日时分秒
  49195. // 后5位%u%u%u%u%u:物体ID,如00001
  49196. BYTE bReserved[230]; // 保留字节
  49197. }NET_HUMAN;
  49198. ///@brief 事件类型 EVENT_IVS_STAY_ALONE_DETECTION (单人独处事件) 对应的数据块描述信息
  49199. typedef struct tagDEV_EVENT_STAY_ALONE_DETECTION_INFO
  49200. {
  49201. int nChannelID; // 通道号
  49202. int nAction; // 0:脉冲 1:开始 2:停止
  49203. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  49204. double PTS; // 时间戳(单位是毫秒)
  49205. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49206. NET_TIME_EX UTC; // 事件发生的时间
  49207. int UTCMS; // UTC时间对应的毫秒数
  49208. int nEventID; // 事件ID
  49209. NET_HUMAN stuHuman; // 人员信息
  49210. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景图
  49211. int nDetectRegionNum; // 检测区域顶点数
  49212. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  49213. BYTE byReserved[1024]; // 保留字节
  49214. }DEV_EVENT_STAY_ALONE_DETECTION_INFO;
  49215. ///@brief 事件类型 EVENT_IVS_TRAFFIC_ROAD_BLOCK (交通路障检测事件) 对应的数据块描述信息
  49216. typedef struct tagDEV_EVENT_TRAFFIC_ROAD_BLOCK_INFO
  49217. {
  49218. int nChannelID; // 通道号
  49219. int nAction; // 事件动作, 0表示脉冲事件, 1表示持续性事件开始, 2表示持续性事件结束
  49220. char szName[128]; // 事件名称
  49221. double PTS; // 时间戳(单位是毫秒)
  49222. NET_TIME_EX UTC; // 事件发生的时间
  49223. UINT nEventID; // 事件ID
  49224. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  49225. NET_RECT stuBoundingBox; // 物体包围盒
  49226. UINT nLane; // 车道号
  49227. EVENT_COMM_INFO stCommInfo; // 公共信息
  49228. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  49229. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  49230. int nImageInfoNum; // 图片信息个数
  49231. BYTE bReserved[4088 - POINTERSIZE]; // 预留字节
  49232. } DEV_EVENT_TRAFFIC_ROAD_BLOCK_INFO;
  49233. ///@brief 事件类型 EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION (交通道路施工检测事件) 对应的数据块描述信息
  49234. typedef struct tagDEV_EVENT_TRAFFIC_ROAD_CONSTRUCTION_INFO
  49235. {
  49236. int nChannelID; // 通道号
  49237. int nAction; // 事件动作, 0表示脉冲事件, 1表示持续性事件开始, 2表示持续性事件结束
  49238. char szName[128]; // 事件名称
  49239. double PTS; // 时间戳(单位是毫秒)
  49240. NET_TIME_EX UTC; // 事件发生的时间
  49241. UINT nEventID; // 事件ID
  49242. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  49243. NET_RECT stuBoundingBox; // 物体包围盒
  49244. UINT nLane; // 车道号
  49245. EVENT_COMM_INFO stCommInfo; // 公共信息
  49246. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  49247. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  49248. int nImageInfoNum; // 图片信息个数
  49249. BYTE bReserved[4088 - POINTERSIZE]; // 预留字节
  49250. } DEV_EVENT_TRAFFIC_ROAD_CONSTRUCTION_INFO;
  49251. ///@brief 作业行为状态信息
  49252. typedef enum tagEM_WORKACTION_STATE
  49253. {
  49254. EM_WORKACTION_STATE_UNKNOWN, // 未知
  49255. EM_WORKACTION_STATE_NO_WORKER, // 无人作业
  49256. EEM_WORKACTION_STATE_SINGLE_WORKER, // 单人作业
  49257. EM_WORKACTION_STATE_NORED_VEST, // 无红马甲作业
  49258. } EM_WORKACTION_STATE;
  49259. ///@brief 作业统计检测类型
  49260. typedef enum tagEM_WORKSTATDETECTION_TYPE
  49261. {
  49262. EM_WORKSTATDETECTION_UNKNOWN, // 未知
  49263. EM_WORKSTATDETECTION_NO_WORKER, // 脱岗检测
  49264. EM_WORKSTATDETECTION_SINGLE_WORKER, // 单人作业
  49265. EM_WORKSTATDETECTION_NO_WORKER_LEADER, // 工作负责人脱岗检测
  49266. EM_WORKSTATDETECTION_HAND_DISINFECTION, // 手部消毒检测
  49267. EM_WORKSTATDETECTION_FOOT_DIP, // 蘸脚动作检测
  49268. EM_WORKSTATDETECTION_SHOES_CHANGE, // 换鞋动作检测
  49269. } EM_WORKSTATDETECTION_TYPE;
  49270. ///@brief 事件类型EVENT_IVS_WORKSTATDETECTION(作业统计事件)对应的数据块描述信息
  49271. typedef struct tagDEV_EVENT_WORKSTATDETECTION_INFO
  49272. {
  49273. int nChannelID; // 通道号
  49274. int nAction; // 0:脉冲 1:开始 2:停止
  49275. char szName[128]; // 事件名称
  49276. double PTS; // 时间戳(单位是毫秒)
  49277. NET_TIME_EX UTC; // 事件发生的时间
  49278. UINT nEventID; // 事件ID
  49279. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49280. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49281. UINT nObjectID; // 物体ID
  49282. UINT nWorkActionNum; // 作业行为状态个数
  49283. EM_WORKACTION_STATE emWorkAction[32]; // 作业行为状态信息
  49284. SCENE_IMAGE_INFO stuSceneImage; // 全景大图信息
  49285. EM_WORKSTATDETECTION_TYPE emRuleType; // 报警规则类型
  49286. DH_MSG_OBJECT_EX2* pstObjectInfo; //物体信息数据
  49287. UINT nObjectNum; //物体信息数
  49288. BYTE byReserved[1016 - POINTERSIZE]; // 预留字节
  49289. } DEV_EVENT_WORKSTATDETECTION_INFO;
  49290. ///@brief 属性信息
  49291. typedef struct tagNET_FACE_ATTRIBUTES
  49292. {
  49293. int nAngle[3]; // 抓拍角度,三个角度分别是:仰俯角,偏航角,翻滚角;默认值[999,999,999]表示无此数据
  49294. UINT nFaceQuality; // 抓拍质量分数,取值范围 0~10000
  49295. int nFaceAlignScore; // 对齐得分分数,取值范围 0~10000,-1为无效值
  49296. BYTE byReserved[36]; // 预留字节
  49297. }NET_FACE_ATTRIBUTES;
  49298. ///@brief 特征值信息
  49299. typedef struct tagNET_FEATURE_VECTOR_INFO
  49300. {
  49301. char szFeatureVersion[32]; // 特征版本版本号
  49302. EM_FEATURE_ERROR_CODE emFeatureErrCode; // 特征建模失败错误码
  49303. NET_FEATURE_VECTOR stuFeatureVector; // 特征值的偏移和大小信息
  49304. NET_FACE_ATTRIBUTES stuFaceAttribute; // 属性信息 ,当提取特征向量成功时上报
  49305. BYTE byReserved[968]; // 预留字节
  49306. }NET_FEATURE_VECTOR_INFO;
  49307. ///@brief 事件类型EM_ANALYSE_EVENT_FEATURE_ABSTRACT(特征提取)对应的数据块描述信息
  49308. typedef struct tagDEV_EVENT_FEATURE_ABSTRACT_INFO
  49309. {
  49310. int nChannelID; // 通道号
  49311. int nAction; // 0:脉冲 1:开始 2:停止
  49312. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49313. UINT nFeatureNum; // 特征值数量
  49314. NET_FEATURE_VECTOR_INFO stuFeatureVectorList[10]; // 特征值数组,同一个图片需要进行多个版本的特征向量提取,在一个事件中返回
  49315. BYTE byReserved[1024]; // 预留字节
  49316. } DEV_EVENT_FEATURE_ABSTRACT_INFO;
  49317. ///@brief 全景抓拍触发类型
  49318. typedef enum tagEM_TRIGGER_EVENT_TYPE
  49319. {
  49320. EM_TRIGGER_EVENT_TYPE_UNKNOWN, // 未知
  49321. EM_TRIGGER_EVENT_TYPE_PTZ_PRESET, // 云台预置点触发
  49322. EM_TRIGGER_EVENT_TYPE_FIREWARNING, // 火情触发
  49323. EM_TRIGGER_EVENT_TYPE_MOVE_ABSOLUTELY,// 绝对移动定位触发
  49324. } EM_TRIGGER_EVENT_TYPE;
  49325. ///@brief 事件类型EVENT_IVS_PANORAMA_SHOT(全景抓拍)对应的数据块描述信息
  49326. typedef struct tagDEV_EVENT_PANORAMA_SHOT_INFO
  49327. {
  49328. int nChannelID; // 通道号
  49329. char szStationID[64]; // 站点ID
  49330. char szPictureID[128]; // 影像ID
  49331. NET_TIME_EX stuLocalSnapshotTime; // 本地抓拍时间
  49332. int nPitchAngleInSnapping; // 抓拍时的俯仰角(角度精确到0.1度),范围:【-1800~1800】,对应实际的【-180.0~180.0】度(度数扩大10倍表示)
  49333. int nHorizontalAngleInSnapping; // 抓拍时的水平角度(角度精确到0.1度),范围:【0~3599】,对应实际【0~359.9度】(度数扩大10倍表示)
  49334. EM_TRIGGER_EVENT_TYPE emTriggerEventType; // 全景抓拍类型
  49335. DWORD dwFireID; // 火情ID(触发事件类型为火情触发有效)
  49336. NET_RECT stuFireBoundingBox; // 火情边界框(触发事件类型为火情触发有效)
  49337. BYTE byReserved[1024]; // 预留字节
  49338. } DEV_EVENT_PANORAMA_SHOT_INFO;
  49339. ///@brief 事件类型EVENT_ALARM_SMARTMOTION_HUMAN(智能视频移动侦测事件(人))对应的数据块描述信息
  49340. typedef struct tagDEV_EVENT_SMARTMOTION_HUMAN_INFO
  49341. {
  49342. int nChannelID; // 通道号
  49343. int nAction; // 1:开始 2:停止
  49344. char szName[128]; // 事件名称
  49345. double PTS; // 时间戳(单位是毫秒)
  49346. NET_TIME_EX UTC; // 事件发生的时间
  49347. UINT nEventID; // 事件ID
  49348. NET_MOTIONDETECT_REGION_INFO stuSmartRegion[32]; // 智能动检区域信息
  49349. UINT nSmartRegionNum; // 智能动检区域个数
  49350. UINT nHumanObjectNum; // 智能动检(人)对象个数
  49351. NET_SMARTDETECT_HUMAN_OBJECT stuHumanObject[64]; // 智能动检(人)对象信息
  49352. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  49353. BYTE bReserved[1024]; // 保留字节
  49354. } DEV_EVENT_SMARTMOTION_HUMAN_INFO;
  49355. ///@brief 事件类型EVENT_ALARM_SMARTMOTION_VEHICLE(智能视频移动侦测事件(车))对应的数据块描述信息
  49356. typedef struct tagDEV_EVENT_SMARTMOTION_VEHICLE_INFO
  49357. {
  49358. int nChannelID; // 通道号
  49359. int nAction; // 1:开始 2:停止
  49360. char szName[128]; // 事件名称
  49361. double PTS; // 时间戳(单位是毫秒)
  49362. NET_TIME_EX UTC; // 事件发生的时间
  49363. UINT nEventID; // 事件ID
  49364. NET_MOTIONDETECT_REGION_INFO stuSmartRegion[32]; // 智能动检区域信息
  49365. UINT nSmartRegionNum; // 智能动检区域个数
  49366. UINT nVehicleObjectNum; // 智能动检(车)对象个数
  49367. NET_SMARTDETECT_VEHICLE_OBJECT stuVehicleObject[64]; // 智能动检(车)对象信息
  49368. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  49369. BYTE bReserved[1024]; // 保留字节
  49370. } DEV_EVENT_SMARTMOTION_VEHICLE_INFO;
  49371. ///@brief 事件类型EVENT_IVS_INTELLI_SHELF(智能补货事件)对应的数据块描述信息
  49372. typedef struct tagDEV_EVENT_INTELLI_SHELF_INFO
  49373. {
  49374. int nChannelID; // 通道号
  49375. int nAction; // 0:脉冲 1:开始 2:停止
  49376. char szName[128]; // 事件名称
  49377. double PTS; // 时间戳(单位是毫秒)
  49378. NET_TIME_EX UTC; // 事件发生的时间
  49379. UINT nEventID; // 事件ID
  49380. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49381. UINT nAreaID; // 区域ID(从1开始), 0为单区域
  49382. UINT nPresetID; // 事件触发的预置点号,从1开始
  49383. int nPercent; // 表示货架上剩余货物的百分比
  49384. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景大图
  49385. BYTE byReserved1[4]; // 预留字节用于字节对齐
  49386. BYTE byReserved[1024]; // 预留字节
  49387. } DEV_EVENT_INTELLI_SHELF_INFO;
  49388. ///@brief 车辆行驶方向
  49389. typedef enum tagEM_DRIVING_DIRECTION
  49390. {
  49391. EM_DRIVING_DIRECTION_UNKNOWN = 0, // 未知
  49392. EM_DRIVING_DIRECTION_IN, // 驶入
  49393. EM_DRIVING_DIRECTION_OUT, // 驶出
  49394. }EM_DRIVING_DIRECTION;
  49395. ///@brief 事件类型EVENT_IVS_CAR_DRIVING_IN_OUT(车辆驶入驶出状态事件)对应的数据块描述信息
  49396. typedef struct tagDEV_EVENT_CAR_DRIVING_IN_OUT_INFO
  49397. {
  49398. int nChannelID; // 通道号
  49399. int nEventID; // 事件ID
  49400. char szName[128]; // 事件名称
  49401. double PTS; // 时间戳(单位是毫秒)
  49402. NET_TIME_EX UTC; // 事件发生的时间
  49403. DH_MSG_OBJECT stuObject; // 车牌信息
  49404. DH_MSG_OBJECT stuVehicle; // 车身信息
  49405. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  49406. int nSequence; // 表示抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  49407. int nFrameSequence; // 帧序号
  49408. EM_DRIVING_DIRECTION emDrivingDirection; // 车辆行驶方向
  49409. NET_EVENT_IMAGE_OFFSET_INFO stuGlobalScene; // 大图信息
  49410. NET_EVENT_IMAGE_OFFSET_INFO stuParkingImage; // 车位抠图信息
  49411. char szParkingNum[32]; // 车位(地磁)编号
  49412. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  49413. int nImageInfoNum; // 图片信息个数
  49414. char byReserved[1024]; // 预留字节
  49415. }DEV_EVENT_CAR_DRIVING_IN_OUT_INFO;
  49416. ///@brief 车门状态
  49417. typedef enum tagEM_CAR_DOOR_STATE
  49418. {
  49419. EM_CAR_DOOR_STATE_UNKNOWN, // 未知
  49420. EM_CAR_DOOR_STATE_OPEN, // 开启
  49421. EM_CAR_DOOR_STATE_CLOSE, // 关闭
  49422. } EM_CAR_DOOR_STATE;
  49423. ///@brief 人员闯入报警标志
  49424. typedef enum tagEM_PERSON_INTRUDE_STATUS
  49425. {
  49426. EM_PERSON_INTRUDE_STATUS_UNKNOWN = -1, // 未知
  49427. EM_PERSON_INTRUDE_STATUS_UNMANNED, // 无人员闯入
  49428. EM_PERSON_INTRUDE_STATUS_SOMEONE, // 有人员闯入
  49429. } EM_PERSON_INTRUDE_STATUS;
  49430. ///@brief 事件类型EVENT_IVS_PARKINGSPACE_STATUS(停车位状态事件)对应的数据块描述信息
  49431. typedef struct tagDEV_EVENT_PARKINGSPACE_STATUS_INFO
  49432. {
  49433. int nChannelID; // 通道号
  49434. int nEventID; // 事件ID
  49435. char szName[128]; // 事件名称
  49436. double PTS; // 时间戳(单位是毫秒)
  49437. NET_TIME_EX UTC; // 事件发生的时间
  49438. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  49439. int nSource; // 视频分析的数据源地址
  49440. int nFrameSequence; // 帧序号
  49441. int nMark; // 用于标记抓拍帧
  49442. EM_PARKINGSPACE_STATUS emParkingSpaceStatus; // 车位的状态
  49443. char szParkingNum[32]; // 车位(地磁)编号
  49444. char szText[32]; // 车牌号码
  49445. EM_CAR_DOOR_STATE emCarDoorState; // 车门状态
  49446. int nWorkerNum; // 车厢作业人数
  49447. DH_POINT stuBoxcarDetectRegion[4]; // 车厢状态检测区域, 使用相对坐标体系,取值均为0-8191
  49448. int nBoxcarDetectRegionNum; // 车厢状态检测区域个数
  49449. int nLoadingRate; // 车厢货物装载率,取值范围:0-100之间
  49450. int nUnLoadLength; // 车厢内卸货长度,单位cm
  49451. EM_PERSON_INTRUDE_STATUS emPersonIntrudeStatus; // 人员闯入报警标志
  49452. BYTE byReserved[472]; // 预留字节
  49453. }DEV_EVENT_PARKINGSPACE_STATUS_INFO;
  49454. ///@brief 目标关联信息
  49455. typedef struct tagOBJECT_RELATED_INFO
  49456. {
  49457. UINT nObjectID; // 物体ID
  49458. UINT nRelativeID; // 相关物体ID
  49459. char szObjectType[128]; // 物体类型,如"HumanFace"
  49460. NET_RECT stuBoundingBox; // 物体包围盒,坐标[0, 8191]
  49461. NET_RECT stuOriginalBoundingBox; // 原始物体包围盒,坐标[0, 8191]
  49462. BYTE byReserved[1024]; // 预留字段
  49463. }OBJECT_RELATED_INFO;
  49464. ///@brief 事件类型EVENT_IVS_FACEBODY_DETECT(人员检测事件)对应的数据块描述信息
  49465. typedef struct tagDEV_EVENT_FACEBODY_DETECT_INFO
  49466. {
  49467. int nChannelID; // 通道号
  49468. int nAction; // 1:开始 2:停止
  49469. char szName[128]; // 事件名称
  49470. double PTS; // 时间戳(单位是毫秒)
  49471. NET_TIME_EX UTC; // 事件发生的时间
  49472. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49473. UINT nEventID; // 事件ID
  49474. UINT nObjectID; // 物体ID
  49475. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49476. UINT nSequence; // 帧序号
  49477. int nGroupID; // 事件组ID,一次检测的多个nGroupID相同
  49478. int nCountInGroup; // 一个事件组内的抓拍张数,一次检测的多个nCountInGroup相同
  49479. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  49480. BYTE byReserved1[4]; // 字节对齐
  49481. FACE_TRAIT stuFaceTrait; // f特征信息
  49482. BODY_TRAIT stuBodyTrait; // b特征信息
  49483. NET_EVENT_IMAGE_OFFSET_INFO stuBodyImage; // b图片信息
  49484. NET_EVENT_IMAGE_OFFSET_INFO stuFaceImage; // f图片信息
  49485. NET_EVENT_IMAGE_OFFSET_INFO stuSceneImage; // 全景图片信息
  49486. OBJECT_RELATED_INFO stuFaceObject; // f关联信息
  49487. OBJECT_RELATED_INFO stuBodyObject; // b关联信息
  49488. }DEV_EVENT_FACEBODY_DETECT_INFO;
  49489. ///@brief 事件类型EVENT_IVS_FACEBODY_ANALYSE(人员识别事件)对应的数据块描述信息
  49490. typedef struct tagDEV_EVENT_FACEBODY_ANALYSE_INFO
  49491. {
  49492. int nChannelID; // 通道号
  49493. int nAction; // 1:开始 2:停止
  49494. char szName[128]; // 事件名称
  49495. double PTS; // 时间戳(单位是毫秒)
  49496. NET_TIME_EX UTC; // 事件发生的时间
  49497. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49498. UINT nEventID; // 事件ID
  49499. UINT nObjectID; // 物体ID
  49500. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49501. UINT nSequence; // 帧序号
  49502. int nGroupID; // 事件组ID,一次检测的多个nGroupID相同
  49503. int nCountInGroup; // 一个事件组内的抓拍张数,一次检测的多个nCountInGroup相同
  49504. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  49505. BYTE byReserved1[4]; // 字节对齐
  49506. FACE_TRAIT stuFaceTrait; // f特征信息
  49507. BODY_TRAIT stuBodyTrait; // b特征信息
  49508. NET_EVENT_IMAGE_OFFSET_INFO stuBodyImage; // b图片信息
  49509. NET_EVENT_IMAGE_OFFSET_INFO stuFaceImage; // f图片信息
  49510. NET_EVENT_IMAGE_OFFSET_INFO stuSceneImage; // 全景图片信息
  49511. OBJECT_RELATED_INFO stuFaceObject; // f关联信息
  49512. OBJECT_RELATED_INFO stuBodyObject; // b关联信息
  49513. CANDIDATE_INFOEX stuCandidate[DH_MAX_CANDIDATE_NUM]; // 列表
  49514. int nCandidateNum; // 返回的候选个数
  49515. }DEV_EVENT_FACEBODY_ANALYSE_INFO;
  49516. ///@brief 事件类型EVENT_IVS_CONGESTION_DETECTION(道路场景车辆拥堵报警事件)对应的数据块描述信息
  49517. typedef struct tagDEV_EVENT_CONGESTION_DETECTION_INFO
  49518. {
  49519. int nChannelID; // 通道号
  49520. int nAction; // 1:开始 2:停止
  49521. char szName[128]; // 事件名称
  49522. double PTS; // 时间戳(单位是毫秒)
  49523. NET_TIME_EX UTC; // 事件发生的时间
  49524. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  49525. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49526. UINT nEventID; // 事件ID
  49527. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49528. int nPresetID; // 事件触发的预置点号,从1开始
  49529. char szPresetName[64]; // 事件触发的预置名称
  49530. int nAlarmMask; // 报警业务掩码, 不同掩码位表示不同报警类型:bit0位表示是否有拥堵报警;bit1位表示是否有排队报警;
  49531. int nVehicleQuantity; // 拥堵车辆数量
  49532. int nQueueLength; // 车辆排队长度
  49533. int nDetectRegionNum; // stuDetectRegion中有效坐标点个数
  49534. DH_POINT stuDetectRegion[32]; // 发生报警的区域坐标
  49535. BYTE byReserved[1024]; // 预留字节
  49536. }DEV_EVENT_CONGESTION_DETECTION_INFO;
  49537. ///@brief 事件类型EVENT_IVS_VEHICLELIMIT_DETECTION(停车场场景下停车车辆上限报警)对应的数据块描述信息
  49538. typedef struct tagDEV_EVENT_VEHICLELIMIT_DETECTION_INFO
  49539. {
  49540. int nChannelID; // 通道号
  49541. int nAction; // 1:开始 2:停止
  49542. char szName[128]; // 事件名称
  49543. double PTS; // 时间戳(单位是毫秒)
  49544. NET_TIME_EX UTC; // 事件发生的时间
  49545. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  49546. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49547. UINT nEventID; // 事件ID
  49548. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49549. int nPresetID; // 事件触发的预置点号,从1开始
  49550. char szPresetName[64]; // 事件触发的预置名称
  49551. int nVehicleQuantity; // 车辆数量
  49552. int nDetectRegionNum; // stuDetectRegion中有效坐标点个数
  49553. DH_POINT stuDetectRegion[32]; // 发生报警的区域坐标
  49554. EM_SPACE_TYPE emSpaceType; // 车位类型
  49555. int nUpdateInfoNum; // 更新配置信息的个数
  49556. NET_UPDATE_INFO stuUpdateInfo[20]; // 更新配置信息,每个数组代表一条更新信息
  49557. BYTE byReserved[1024]; // 预留字节
  49558. }DEV_EVENT_VEHICLELIMIT_DETECTION_INFO;
  49559. ///@brief 事件类型EVENT_IVS_VIOLENT_THROW_DETECTION(暴力抛物检测)对应的数据块描述信息
  49560. typedef struct tagDEV_EVENT_VIOLENT_THROW_DETECTION_INFO
  49561. {
  49562. int nChannelID; // 通道号
  49563. int nAction; // 0:脉冲 1:开始 2:停止
  49564. char szName[128]; // 事件名称
  49565. double PTS; // 时间戳(单位是毫秒)
  49566. NET_TIME_EX UTC; // 事件发生的时间
  49567. int nEventID; // 事件ID
  49568. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  49569. int nFrameSequence; // 视频分析帧序号
  49570. char szRegionName[64]; // 暴力抛物检测区域名称
  49571. SCENE_IMAGE_INFO_EX stuSceneImage; // 大图信息
  49572. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  49573. int nImageInfoNum; // 图片信息个数
  49574. char byReserver[1024]; // 保留字节
  49575. }DEV_EVENT_VIOLENT_THROW_DETECTION_INFO;
  49576. ///@brief 事件类型EVENT_IVS_TRAMCARSECTIONS_DETECTION(矿车超挂报警事件)对应的数据块描述信息
  49577. typedef struct tagDEV_EVENT_TRAMCARSECTIONS_DETECTION_INFO
  49578. {
  49579. int nChannelID; // 通道号
  49580. int nAction; // 0:脉冲 1:开始 2:停止
  49581. char szName[128]; // 事件名称
  49582. double PTS; // 时间戳(单位是毫秒)
  49583. NET_TIME_EX UTC; // 事件发生的时间
  49584. int nEventID; // 事件ID
  49585. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49586. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49587. int nSequence; // 帧序号
  49588. UINT nCarSections; // 当前车节数
  49589. NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // 全景广角图
  49590. BYTE byReserved[512]; // 预留字节
  49591. }DEV_EVENT_TRAMCARSECTIONS_DETECTION_INFO;
  49592. ///@brief 动物统计信息
  49593. typedef struct tagNET_ANIMAL_OBJECTS_STATISTICS
  49594. {
  49595. UINT nAnimalsAmount; // 动物总数
  49596. VA_OBJECT_ANIMAL stuAnimalTypes[32]; // 动物类型
  49597. BYTE bReserved[132]; // 保留字节
  49598. }NET_ANIMAL_OBJECTS_STATISTICS;
  49599. ///@brief 动物检测的大图信息
  49600. typedef struct tagNET_ANIMAL_SCENE_IMAGE_INFO
  49601. {
  49602. UINT nOffSet; // 在二进制数据块中的偏移
  49603. UINT nLength; // 图片大小,单位字节
  49604. UINT nIndexInData; // 在上传图片数据中的图片序号
  49605. BYTE bReserved[252]; // 保留字节
  49606. }NET_ANIMAL_SCENE_IMAGE_INFO;
  49607. ///@brief 区域内目标列表
  49608. typedef struct tagNET_ANIMAL_OBJECT_LIST_INFO
  49609. {
  49610. NET_RECT stuBoundingBox; // 目标包围盒,8192坐标系
  49611. NET_POINT stuPoint; // 目标中心点
  49612. int nObjectID; // 目标ID
  49613. int nObjectNumber; // 目标编号
  49614. char szReserved[256]; // 保留字节
  49615. }NET_ANIMAL_OBJECT_LIST_INFO;
  49616. ///@brief 事件类型EVENT_IVS_ANIMAL_DETECTION(动物检测事件)对应的数据块描述信息
  49617. typedef struct tagDEV_EVENT_ANIMAL_DETECTION_INFO
  49618. {
  49619. int nChannelID; // 通道号
  49620. int nAction; // 0:脉冲 1:开始 2:停止
  49621. char szName[128]; // 事件名称
  49622. double PTS; // 时间戳(单位是毫秒)
  49623. NET_TIME_EX UTC; // 事件发生的时间
  49624. int nEventID; // 事件ID
  49625. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49626. int nSequence; // 帧序号
  49627. NET_ANIMAL_SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  49628. NET_ANIMAL_OBJECTS_STATISTICS stuObjectsStatistics; // 动物统计信息
  49629. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49630. EM_DETECTION_SCENE_TYPE emDetectionSceneType; // 动物检测规则下的场景类型
  49631. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  49632. int nImageInfoNum; // 图片信息个数
  49633. int nObjectListCount; // 区域内目标列表个数
  49634. NET_ANIMAL_OBJECT_LIST_INFO stuObjectListInfo[64]; // 区域内目标列表
  49635. char byReserved[1024]; // 预留字节
  49636. }DEV_EVENT_ANIMAL_DETECTION_INFO;
  49637. ///@brief 车辆动作
  49638. typedef enum tagEM_VEHICLE_ACTION
  49639. {
  49640. EM_VEHICLE_ACTION_UNKNOWN, // 未知
  49641. EM_VEHICLE_ACTION_APPEAR, // 进入检测区域内
  49642. EM_VEHICLE_ACTION_DISAPPEAR, // 离开检测区域
  49643. EM_VEHICLE_ACTION_STAY, // 停留在检测区域内
  49644. } EM_VEHICLE_ACTION;
  49645. ///@brief 车辆动作
  49646. ///@brief 检测到的车辆信息
  49647. typedef struct tagNET_DETECT_VEHICLE_INFO
  49648. {
  49649. EM_VEHICLE_ACTION emAction; // 检测车辆动作
  49650. UINT nObjectID; // 物体ID
  49651. EVENT_PIC_INFO stuVehicleImage; // 车辆抓图信息
  49652. NET_COLOR_RGBA stuColor; // 车身主要颜色
  49653. EM_CATEGORY_TYPE emCategoryType; // 车辆类型
  49654. UINT nFrameSequence; // 帧序号
  49655. UINT nCarLogoIndex; // 车辆车标
  49656. UINT nSubBrand; // 车辆子品牌
  49657. UINT nBrandYear; // 车辆品牌年款
  49658. UINT nConfidence; // 置信度,值越大表示置信度越高, 范围 0~255
  49659. NET_RECT stuBoundingBox; // 包围盒, 0-8191相对坐标
  49660. char szText[128]; // 车标
  49661. UINT nSpeed; // 车速,单位为km/h
  49662. UINT nDirection; // 车辆行驶方向, 0:未知, 1:上行方向, 2:下行方向
  49663. char szRegionName[64]; // 车辆所在区域名称
  49664. BYTE bReserved[448]; // 保留字节
  49665. } NET_DETECT_VEHICLE_INFO;
  49666. ///@brief 检测的车牌信息
  49667. typedef struct tagNET_DETECT_PLATE_INFO
  49668. {
  49669. UINT nObjectID; // 车牌ID
  49670. UINT nRelativeID; // 关联的车辆ID
  49671. EVENT_PIC_INFO stuPlateImage; // 车牌图片信息
  49672. EM_NET_PLATE_TYPE emPlateType; // 车牌类型
  49673. EM_NET_PLATE_COLOR_TYPE emPlateColor; // 车牌颜色
  49674. UINT nConfidence; // 置信度,值越大表示置信度越高, 范围 0~255
  49675. char szCountry[3]; // 车牌国家
  49676. BYTE bReserved1; // 字节对齐
  49677. char szPlateNumber[128]; // 车牌号码
  49678. BYTE bReserved[512]; // 保留字节
  49679. } NET_DETECT_PLATE_INFO;
  49680. ///@brief 从加油机获取的信息
  49681. typedef struct tagNET_FUEL_DISPENSER_INFO
  49682. {
  49683. unsigned int nFuelingStartTime; // 开始加油时间,带时区偏差的UTC时间,单位秒
  49684. unsigned int nFuelingEndTime; // 结束加油时间,带时区偏差的UTC时间,单位秒
  49685. unsigned int nMoney; // 加油金额,单位分
  49686. unsigned int nLitre; // 加油升数,单位0.01升
  49687. char szOilType[8]; // 加油类型,加油油号
  49688. char szReserved[128]; // 保留字节
  49689. } NET_FUEL_DISPENSER_INFO;
  49690. ///@brief 事件类型EVENT_IVS_GASSTATION_VEHICLE_DETECT(加油站车辆检测事件)对应的数据块描述信息
  49691. typedef struct tagDEV_EVENT_GASSTATION_VEHICLE_DETECT_INFO
  49692. {
  49693. int nChannelID; // 通道号
  49694. int nAction; // 0:脉冲 1:开始 2:停止
  49695. char szName[128]; // 事件名称
  49696. double PTS; // 时间戳(单位是毫秒)
  49697. NET_TIME_EX UTC; // 事件发生的时间
  49698. int nEventID; // 事件ID
  49699. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49700. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49701. NET_DETECT_VEHICLE_INFO stuDetectVehicleInfo; // 检测到的车辆信息
  49702. NET_DETECT_PLATE_INFO stuDetectPlateInfo; // 检测到的车牌信息
  49703. BOOL bIsGlobalScene; // 是否有场景图
  49704. EVENT_PIC_INFO stuSceneImage; // 场景图信息, bIsGlobalScene 为 TRUE 时有效
  49705. int nCarCandidateNum; // 候选车辆数量
  49706. NET_CAR_CANDIDATE_INFO stuCarCandidate[MAX_CAR_CANDIDATE_NUM]; // 候选车辆数据
  49707. NET_FUEL_DISPENSER_INFO stuFuelDispenser; // 从加油机获取的信息
  49708. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  49709. char szOilGunColor[32]; // 加油枪颜色: "Red" : 红色, "Yellow" : 黄色, "Green" : 绿色
  49710. BYTE bReserved[840]; // 保留字节
  49711. } DEV_EVENT_GASSTATION_VEHICLE_DETECT_INFO;
  49712. ///@brief 事件类型EVENT_IVS_SHOP_WINDOW_POST(橱窗张贴事件)对应的数据块描述信息
  49713. typedef struct tagDEV_EVENT_SHOP_WINDOW_POST_INFO
  49714. {
  49715. int nChannelID; // 通道号
  49716. int nAction; // 0:脉冲 1:开始 2:停止
  49717. char szName[128]; // 事件名称
  49718. double PTS; // 时间戳(单位是毫秒)
  49719. NET_TIME_EX UTC; // 事件发生的时间
  49720. int nEventID; // 事件ID
  49721. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49722. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49723. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  49724. int nDetectRegionNum; // 检测区域顶点数
  49725. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  49726. int nObjectNum; // 检测到的物体个数
  49727. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  49728. UINT nPresetID; // 事件触发的预置点号,从1开始
  49729. char szPresetName[64]; // 事件触发的预置点名称
  49730. char szShopAddress[256]; // 商铺地址
  49731. UINT nViolationDuration; // 违法持续时长,单位:秒,缺省值0表示无意义
  49732. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  49733. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  49734. int nImageInfoNum; // 图片信息个数
  49735. BYTE bReserved[1020 - POINTERSIZE]; // 保留字节
  49736. } DEV_EVENT_SHOP_WINDOW_POST_INFO;
  49737. ///@brief 事件类型EVENT_IVS_SHOP_SIGN_ABNORMAL(店招异常事件)对应的数据块描述信息
  49738. typedef struct tagDEV_EVENT_SHOP_SIGN_ABNORMAL_INFO
  49739. {
  49740. int nChannelID; // 通道号
  49741. int nAction; // 0:脉冲 1:开始 2:停止
  49742. char szName[128]; // 事件名称
  49743. double PTS; // 时间戳(单位是毫秒)
  49744. NET_TIME_EX UTC; // 事件发生的时间
  49745. int nEventID; // 事件ID
  49746. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49747. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49748. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  49749. int nDetectRegionNum; // 检测区域顶点数
  49750. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  49751. int nObjectNum; // 检测到的物体个数
  49752. DH_MSG_OBJECT stuObjects[HDBJ_MAX_OBJECTS_NUM]; // 检测到的物体
  49753. UINT nPresetID; // 事件触发的预置点号,从1开始
  49754. char szPresetName[64]; // 事件触发的预置点名称
  49755. char szShopAddress[256]; // 商铺地址
  49756. UINT nViolationDuration; // 违法持续时长,单位:秒,缺省值0表示无意义
  49757. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  49758. BYTE bReserved[1024]; // 保留字节
  49759. } DEV_EVENT_SHOP_SIGN_ABNORMAL_INFO;
  49760. ///@brief 智慧养殖检测目标子类型
  49761. typedef enum tagEM_BREED_DETECT_CATEGORY_TYPE
  49762. {
  49763. EM_BREED_DETECT_CATEGORY_UNKNOWN, // 未知
  49764. EM_BREED_DETECT_CATEGORY_PIG, // 猪
  49765. } EM_BREED_DETECT_CATEGORY_TYPE;
  49766. ///@brief 智慧养殖对象信息
  49767. typedef struct tagNET_VAOBJECT_ANIMAL_INFO
  49768. {
  49769. UINT nObjectID; // 物体ID,每个ID表示一个唯一的物体
  49770. EM_BREED_DETECT_CATEGORY_TYPE emCategoryType; // 智慧养殖检测目标子类型
  49771. NET_RECT stuBoundingBox; // 包围盒
  49772. UINT nObjectWeight; // 对象重量, 单位: g
  49773. SCENE_IMAGE_INFO_EX stuImageData; // 物体截图
  49774. UINT nMotionStatus; // 是否运动, 0:未知,1:静止,2:运动
  49775. UINT nInoutRegion; // 是否在区域内, 0:未知, 1:是, 2:否
  49776. UINT nResultType; // 结果类型, 0:实时, 1:非实时
  49777. BYTE byReserved[1012]; // 预留字节
  49778. } NET_VAOBJECT_ANIMAL_INFO;
  49779. ///@brief 事件类型EVENT_IVS_BREED_DETECTION(智慧养殖检测事件)对应的数据块描述信息
  49780. typedef struct tagDEV_EVENT_BREED_DETECTION_INFO
  49781. {
  49782. int nChannelID; // 通道号
  49783. int nAction; // 0:脉冲 1:开始 2:停止
  49784. char szName[128]; // 事件名称
  49785. double PTS; // 时间戳(单位是毫秒)
  49786. NET_TIME_EX UTC; // 事件发生的时间
  49787. int nEventID; // 事件ID
  49788. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49789. UINT nSequence; // 帧序号
  49790. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49791. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  49792. BYTE byReserved1[4]; // 字节对齐
  49793. UINT nObjectNum; // 检测到的物体个数
  49794. NET_VAOBJECT_ANIMAL_INFO stuObjects[64]; // 检测到的物体信息
  49795. double dBreedStallTemp; // 栏位温度(单位:℃)
  49796. UINT nBreedStallNum; // 栏位号
  49797. BYTE byReserved[500]; // 预留字节
  49798. } DEV_EVENT_BREED_DETECTION_INFO;
  49799. ///@brief 事件类型 DH_ALARM_BREED_DETECTION (智慧养殖检测事件) 对应的数据块描述信息
  49800. typedef struct tagALARM_BREED_DETECTION_INFO
  49801. {
  49802. int nChannelID; // 通道号
  49803. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  49804. char szName[128]; // 报警名称
  49805. double dbPTS; // 时间戳(单位是毫秒)
  49806. NET_TIME_EX stuUTC; // 事件发生的时间
  49807. unsigned int nEventID; // 事件ID
  49808. unsigned int nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49809. unsigned int nSequence; // 帧序号
  49810. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  49811. unsigned int nBreedStallNum; // 栏位号
  49812. unsigned int nObjectNum; // 检测到的物体个数
  49813. NET_VAOBJECT_ANIMAL_INFO stuObjects[64]; // 检测到的物体信息
  49814. double dbBreedStallTemp; // 栏位温度(单位:℃)
  49815. char szReserved[1024]; // 预留字节
  49816. } ALARM_BREED_DETECTION_INFO;
  49817. ///@brief 保障车类型
  49818. typedef enum tagEM_AIRPORT_VEHICLE_TYPE
  49819. {
  49820. EM_AIRPORT_VEHICLE_TYPE_UNKNOWN = 0, // 未知
  49821. EM_AIRPORT_VEHICLE_TYPE_TANKER, // 航油车
  49822. EM_AIRPORT_VEHICLE_TYPE_CONVEYORCAR, // 行李传送带车
  49823. EM_AIRPORT_VEHICLE_TYPE_TRAILERCAR, // 行李拖车
  49824. }EM_AIRPORT_VEHICLE_TYPE;
  49825. ///@brief 保障车动作
  49826. typedef enum tagEM_AIRPORT_VEHICLE_ACTION
  49827. {
  49828. EM_AIRPORT_VEHICLE_ACTION_UNKNOWN = 0, // 未知
  49829. EM_AIRPORT_VEHICLE_ACTION_ENTERREGION, // 进入区域
  49830. EM_AIRPORT_VEHICLE_ACTION_LEAVEREGION, // 离开区域
  49831. EM_AIRPORT_VEHICLE_ACTION_STARTWORK, // 开始工作
  49832. EM_AIRPORT_VEHICLE_ACTION_OVERWORK, // 结束工作
  49833. EM_AIRPORT_VEHICLE_ACTION_AIRREFUEL, // 飞机加油
  49834. EM_AIRPORT_VEHICLE_ACTION_OVERREFUEL, // 结束加油
  49835. }EM_AIRPORT_VEHICLE_ACTION;
  49836. ///@brief 机场保障车对象
  49837. typedef struct tagNET_AIRPORT_VEHICLE_OBJECT
  49838. {
  49839. int nObjectID; // 物体ID
  49840. EM_AIRPORT_VEHICLE_TYPE emType; // 保障车类型
  49841. NET_RECT stuRect; // 保障车位置
  49842. EM_AIRPORT_VEHICLE_ACTION emAction; // 保障车动作
  49843. BYTE byReserved[1020]; // 预留字节
  49844. }NET_AIRPORT_VEHICLE_OBJECT;
  49845. ///@brief 事件类型EVENT_IVS_AIRPORT_VEHICLE_DETECT(机场智能保障车辆检测事件)对应的数据块描述信息
  49846. typedef struct tagDEV_EVENT_AIRPORT_VEHICLE_DETECT_INFO
  49847. {
  49848. int nChannelID; // 通道号
  49849. int nAction; // 0:脉冲 1:开始 2:停止
  49850. char szName[128]; // 事件名称
  49851. double PTS; // 时间戳(单位是毫秒)
  49852. NET_TIME_EX UTC; // 事件发生的时间
  49853. int nEventID; // 事件ID
  49854. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49855. UINT nSequence; // 帧序号
  49856. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49857. int nDetectRegionNum; // 检测区域顶点数
  49858. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域,[0,8191]
  49859. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  49860. int nVehicleObjectNum; // 检测到的保障车个数
  49861. NET_AIRPORT_VEHICLE_OBJECT stuVehicleObjects[MAX_AIRPORT_VEHICLE_OBJECT_NUM]; // 检测保障车列表
  49862. BYTE byReserved[504]; // 预留字节
  49863. } DEV_EVENT_AIRPORT_VEHICLE_DETECT_INFO;
  49864. ///@brief 事件类型EVENT_IVS_MAN_CAR_COEXISTANCE(人车共存事件)对应的数据块描述信息
  49865. typedef struct tagDEV_EVENT_MAN_CAR_COEXISTANCE_INFO
  49866. {
  49867. int nChannelID; // 通道号
  49868. int nAction; // 0:脉冲 1:开始 2:停止
  49869. char szName[128]; // 事件名称
  49870. double PTS; // 时间戳(单位是毫秒)
  49871. NET_TIME_EX UTC; // 事件发生的时间
  49872. int nEventID; // 事件ID
  49873. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49874. UINT nSequence; // 帧序号
  49875. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49876. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  49877. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  49878. BYTE byReserved[512]; // 预留字节
  49879. }DEV_EVENT_MAN_CAR_COEXISTANCE_INFO;
  49880. ///@brief 车位内已停车位数量相对上次上报的变化状态
  49881. typedef enum tagEM_PARKING_NUMBER_CHANGE_STATUS
  49882. {
  49883. EM_PARKING_NUMBER_CHANGE_STATUS_UNKNOWN = -1, // 未知
  49884. EM_PARKING_NUMBER_CHANGE_STATUS_NO_CHANGE, // 无变化
  49885. EM_PARKING_NUMBER_CHANGE_STATUS_INCREASE, // 数量增加
  49886. EM_PARKING_NUMBER_CHANGE_STATUS_DECREASE, // 数量减少
  49887. } EM_PARKING_NUMBER_CHANGE_STATUS;
  49888. ///@brief 室外停车位状态
  49889. typedef struct tagNET_PARKING_STATUS
  49890. {
  49891. char szName[32]; // 车位名称
  49892. int nID; // 车位ID,范围:[0,99]
  49893. UINT nParkedNumber; // 车位内已停车位数量,范围:[0,255]
  49894. EM_PARKING_NUMBER_CHANGE_STATUS emChangeStatus; // 车位内已停车位数量相对上次上报的变化状态
  49895. BYTE reserved[252]; // 预留字节
  49896. } NET_PARKING_STATUS;
  49897. ///@brief 事件类型 EVENT_IVS_PARKING_LOT_STATUS_DETECTION(室外停车位状态检测)对应的数据块描述信息
  49898. typedef struct tagDEV_EVENT_PARKING_LOT_STATUS_DETECTION_INFO
  49899. {
  49900. int nChannelID; // 通道号
  49901. int nAction; // 1:开始 2:停止
  49902. char szName[128]; // 事件名称
  49903. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49904. NET_TIME_EX UTC; // 事件发生的时间
  49905. double PTS; // 时间戳(单位是毫秒)
  49906. unsigned int nEventID; // 事件ID
  49907. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49908. UINT nSequence; // 帧序号
  49909. int nParkingStatusNum; // 室外停车位个数
  49910. NET_PARKING_STATUS stuParkingStatus[100]; // 室外停车位状态
  49911. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  49912. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  49913. int nImageInfoNum; // 图片信息个数
  49914. char byReserved[1024]; // 预留字节
  49915. } DEV_EVENT_PARKING_LOT_STATUS_DETECTION_INFO;
  49916. ///@brief 事件类型 DH_ALARM_PARKING_LOT_STATUS_DETECTION (室外停车位状态检测事件) 对应的数据块描述信息
  49917. typedef struct tagALARM_PARKING_LOT_STATUS_DETECTION
  49918. {
  49919. int nChannelID; // 通道号
  49920. int nAction; // 1:开始 2:停止
  49921. char szName[128]; // 事件名称
  49922. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49923. NET_TIME_EX UTC; // 事件发生的时间
  49924. double PTS; // 时间戳(单位是毫秒)
  49925. unsigned int nEventID; // 事件ID
  49926. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49927. UINT nSequence; // 帧序号
  49928. int nParkingStatusNum; // 室外停车位个数
  49929. NET_PARKING_STATUS stuParkingStatus[100]; // 室外停车位状态
  49930. BYTE byReserved[1020]; // 预留字节
  49931. } ALARM_PARKING_LOT_STATUS_DETECTION;
  49932. ///@brief 车辆信息
  49933. typedef struct tagDREGS_UNCOVERED_VEHICLE_INFO
  49934. {
  49935. char szPlateNumber[64]; // 车牌号码
  49936. NET_RECT stuBoundingBox; // 包围盒
  49937. BYTE byReserved[512]; // 预留字节
  49938. }DREGS_UNCOVERED_VEHICLE_INFO;
  49939. ///@brief 事件类型 EVENT_IVS_DREGS_UNCOVERED(渣土车未遮盖载货检测事件)对应的数据块描述信息
  49940. typedef struct tagDEV_EVENT_DREGS_UNCOVERED_INFO
  49941. {
  49942. int nChannelID; // 通道号
  49943. int nAction; // 0:脉冲
  49944. char szName[128]; // 事件名称
  49945. double PTS; // 时间戳(单位是毫秒)
  49946. NET_TIME_EX UTC; // 事件发生的时间
  49947. UINT nEventID; // 事件ID
  49948. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49949. int nDetectRegionNum; // 检测区域顶点数
  49950. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域,[0,8191]
  49951. DREGS_UNCOVERED_VEHICLE_INFO stuVehicleInfo; // 车辆信息
  49952. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  49953. BYTE byReserved[952]; // 预留字节
  49954. } DEV_EVENT_DREGS_UNCOVERED_INFO;
  49955. ///@brief 事件类型EVENT_IVS_HIGH_TOSS_DETECT(高空抛物检测事件)对应的数据块描述信息
  49956. typedef struct tagDEV_EVENT_HIGH_TOSS_DETECT_INFO
  49957. {
  49958. int nChannelID; // 通道号
  49959. int nAction; // 0:脉冲 1:开始 2:停止
  49960. char szName[128]; // 事件名称
  49961. double PTS; // 时间戳(单位是毫秒)
  49962. NET_TIME_EX UTC; // 事件发生的时间
  49963. int nEventID; // 事件ID
  49964. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  49965. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  49966. NET_HIGHTOSS_OBJECT_INFO stuObjInfos[50]; // 物体信息
  49967. UINT nObjNum; // 物体个数
  49968. int nDetectRegionNum; // 检测区域顶点数
  49969. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域,[0,8191]
  49970. int nFrameSequence; // 视频分析帧序号
  49971. int nGroupID; // 事件组ID, 同一物体抓拍过程内GroupID相同
  49972. int nIndexInGroup; // 抓拍序号,从1开始
  49973. int nCountInGroup; // 抓拍张数
  49974. NET_EVENT_IMAGE_OFFSET_INFO stuImageInfo; // 图片信息
  49975. BOOL bIsGlobalScene; // 是否上传大图, true表示第一个图片为全景大图,信息由ImageInfo来表示
  49976. int nMark; // 用于标记抓拍帧
  49977. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  49978. int nImageInfoNum; // 图片信息个数
  49979. BYTE byReserved[380 - POINTERSIZE]; // 预留字节
  49980. } DEV_EVENT_HIGH_TOSS_DETECT_INFO;
  49981. ///@brief 电力手套类型
  49982. typedef enum tagEM_ELECTRIC_GLOVE_TYPE
  49983. {
  49984. EM_ELECTRIC_GLOVE_TYPE_UNKNOWN, // 未知
  49985. EM_ELECTRIC_GLOVE_TYPE_GENERAL, // 普通手套
  49986. EM_ELECTRIC_GLOVE_TYPE_INSULATED, // 绝缘手套
  49987. } EM_ELECTRIC_GLOVE_TYPE;
  49988. ///@brief 电力手套对象信息
  49989. typedef struct tagNET_ELECTRIC_GLOVE_OBJECT
  49990. {
  49991. UINT nObjectID; // 物体ID
  49992. EM_ELECTRIC_GLOVE_TYPE emGloveType; // 手套类型
  49993. NET_RECT stuBoundingBox; // 包围盒
  49994. NET_OBJECT_IMAGE_INFO stuImageData; // 物体截图
  49995. BYTE byReserved[1024]; // 预留字节
  49996. } NET_ELECTRIC_GLOVE_OBJECT;
  49997. ///@brief 事件类型EVENT_IVS_ELECTRIC_GLOVE_DETECT(电力检测手套检测事件)对应的数据块描述信息
  49998. typedef struct tagDEV_EVENT_ELECTRIC_GLOVE_DETECT_INFO
  49999. {
  50000. int nChannelID; // 通道号
  50001. int nAction; // 0:脉冲 1:开始 2:停止
  50002. char szName[128]; // 事件名称
  50003. double PTS; // 时间戳(单位是毫秒)
  50004. NET_TIME_EX UTC; // 事件发生的时间
  50005. int nEventID; // 事件ID
  50006. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50007. UINT nSequence; // 帧序号
  50008. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50009. UINT nGloveObjNum; // 手套对象个数
  50010. NET_ELECTRIC_GLOVE_OBJECT stuGloveObjs[32]; // 手套对象信息
  50011. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  50012. BYTE byReserved[1028]; // 预留字节
  50013. }DEV_EVENT_ELECTRIC_GLOVE_DETECT_INFO;
  50014. ///@brief 电力梯子类型
  50015. typedef enum tagEM_ELECTRIC_LADDER_TYPE
  50016. {
  50017. EM_ELECTRIC_LADDER_TYPE_UNKNOWN, // 未知
  50018. EM_ELECTRIC_LADDER_TYPE_GENERAL, // 普通梯子
  50019. EM_ELECTRIC_LADDER_TYPE_INSULATED, // 绝缘梯子
  50020. } EM_ELECTRIC_LADDER_TYPE;
  50021. ///@brief 梯子对象信息
  50022. typedef struct tagNET_ELECTRIC_LADDER_OBJECT
  50023. {
  50024. UINT nObjectID; // 物体ID
  50025. EM_ELECTRIC_LADDER_TYPE emLadderType; // 梯子类型
  50026. NET_RECT stuBoundingBox; // 包围盒
  50027. NET_OBJECT_IMAGE_INFO stuImageData; // 物体截图
  50028. BYTE byReserved[1024]; // 预留字节
  50029. } NET_ELECTRIC_LADDER_OBJECT;
  50030. ///@brief 事件类型EVENT_IVS_ELECTRIC_LADDER_DETECT(电力检测梯子检测事件)对应的数据块描述信息
  50031. typedef struct tagDEV_EVENT_ELECTRIC_LADDER_DETECT_INFO
  50032. {
  50033. int nChannelID; // 通道号
  50034. int nAction; // 0:脉冲 1:开始 2:停止
  50035. char szName[128]; // 事件名称
  50036. double PTS; // 时间戳(单位是毫秒)
  50037. NET_TIME_EX UTC; // 事件发生的时间
  50038. int nEventID; // 事件ID
  50039. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50040. UINT nSequence; // 帧序号
  50041. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50042. UINT nLadderObjNum; // 梯子对象个数
  50043. NET_ELECTRIC_LADDER_OBJECT stuLadderObjs[32]; // 梯子对象信息
  50044. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  50045. BYTE byReserved[1028]; // 预留字节
  50046. }DEV_EVENT_ELECTRIC_LADDER_DETECT_INFO;
  50047. ///@brief 电力布幔类型
  50048. typedef enum tagEM_ELECTRIC_CURTAIN_TYPE
  50049. {
  50050. EM_ELECTRIC_CURTAIN_TYPE_UNKNOWN, // 未知
  50051. EM_ELECTRIC_CURTAIN_TYPE_GENERAL, // 普通布幔
  50052. } EM_ELECTRIC_CURTAIN_TYPE;
  50053. ///@brief 布幔对象信息
  50054. typedef struct tagNET_ELECTRIC_CURTAIN_OBJECT
  50055. {
  50056. UINT nObjectID; // 物体ID
  50057. EM_ELECTRIC_CURTAIN_TYPE emCurtainType; // 布幔类型
  50058. EM_UNIFIED_COLOR_TYPE emCurtainColor; // 布幔颜色
  50059. BYTE byReserved1[4]; // 字节对齐
  50060. NET_RECT stuBoundingBox; // 包围盒
  50061. NET_OBJECT_IMAGE_INFO stuImageData; // 物体截图
  50062. BYTE byReserved[1024]; // 预留字节
  50063. } NET_ELECTRIC_CURTAIN_OBJECT;
  50064. ///@brief 事件类型EVENT_IVS_ELECTRIC_CURTAIN_DETECT(电力检测布幔检测事件)对应的数据块描述信息
  50065. typedef struct tagDEV_EVENT_ELECTRIC_CURTAIN_DETECT_INFO
  50066. {
  50067. int nChannelID; // 通道号
  50068. int nAction; // 0:脉冲 1:开始 2:停止
  50069. char szName[128]; // 事件名称
  50070. double PTS; // 时间戳(单位是毫秒)
  50071. NET_TIME_EX UTC; // 事件发生的时间
  50072. int nEventID; // 事件ID
  50073. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50074. UINT nSequence; // 帧序号
  50075. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50076. UINT nCurtainObjNum; // 布幔对象个数
  50077. NET_ELECTRIC_CURTAIN_OBJECT stuCurtainObjs[32]; // 布幔对象信息
  50078. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  50079. BYTE byReserved[1028]; // 预留字节
  50080. }DEV_EVENT_ELECTRIC_CURTAIN_DETECT_INFO;
  50081. ///@brief 电力围栏类型
  50082. typedef enum tagEM_ELECTRIC_FENCE_TYPE
  50083. {
  50084. EM_ELECTRIC_FENCE_TYPE_UNKNOWN, // 未知
  50085. EM_ELECTRIC_FENCE_TYPE_GENERAL, // 普通围栏
  50086. EM_ELECTRIC_FENCE_TYPE_COLUMNAR, // 柱状围栏
  50087. EM_ELECTRIC_FENCE_TYPE_GRID, // 网状围栏
  50088. } EM_ELECTRIC_FENCE_TYPE;
  50089. ///@brief 电力围栏对象信息
  50090. typedef struct tagNET_ELECTRIC_FENCE_OBJECT
  50091. {
  50092. UINT nObjectID; // 物体ID
  50093. EM_ELECTRIC_FENCE_TYPE emFenceType; // 围栏类型
  50094. NET_RECT stuBoundingBox; // 包围盒
  50095. NET_OBJECT_IMAGE_INFO stuImageData; // 物体截图
  50096. BYTE byReserved[1024]; // 预留字节
  50097. } NET_ELECTRIC_FENCE_OBJECT;
  50098. ///@brief 事件类型EVENT_IVS_ELECTRIC_FENCE_DETECT(电力检测围栏检测事件)对应的数据块描述信息
  50099. typedef struct tagDEV_EVENT_ELECTRIC_FENCE_DETECT_INFO
  50100. {
  50101. int nChannelID; // 通道号
  50102. int nAction; // 0:脉冲 1:开始 2:停止
  50103. char szName[128]; // 事件名称
  50104. double PTS; // 时间戳(单位是毫秒)
  50105. NET_TIME_EX UTC; // 事件发生的时间
  50106. int nEventID; // 事件ID
  50107. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50108. UINT nSequence; // 帧序号
  50109. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50110. UINT nFenceObjNum; // 围栏对象个数
  50111. NET_ELECTRIC_FENCE_OBJECT stuFenceObjs[32]; // 围栏对象信息
  50112. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  50113. BYTE byReserved[1028]; // 预留字节
  50114. }DEV_EVENT_ELECTRIC_FENCE_DETECT_INFO;
  50115. ///@brief 电力标识牌类型
  50116. typedef enum tagEM_ELECTRIC_SIGNBOARD_TYPE
  50117. {
  50118. EM_ELECTRIC_SIGNBOARD_TYPE_UNKNOWN, // 未知
  50119. EM_ELECTRIC_SIGNBOARD_TYPE_GENERAL, // 普通标识牌
  50120. EM_ELECTRIC_SIGNBOARD_TYPE_WARNING, // 警戒牌
  50121. EM_ELECTRIC_SIGNBOARD_TYPE_NAMEPLATE, // 铭牌
  50122. } EM_ELECTRIC_SIGNBOARD_TYPE;
  50123. ///@brief 电力标识牌对象信息
  50124. typedef struct tagNET_ELECTRIC_SIGNBOARD_OBJECT
  50125. {
  50126. UINT nObjectID; // 物体ID
  50127. EM_ELECTRIC_SIGNBOARD_TYPE emSignboardType; // 围栏类型
  50128. NET_RECT stuBoundingBox; // 包围盒
  50129. NET_OBJECT_IMAGE_INFO stuImageData; // 物体截图
  50130. BYTE byReserved[1024]; // 预留字节
  50131. } NET_ELECTRIC_SIGNBOARD_OBJECT;
  50132. ///@brief 事件类型EVENT_IVS_ELECTRIC_SIGNBOARD_DETECT(电力检测标识牌检测事件)对应的数据块描述信息
  50133. typedef struct tagDEV_EVENT_ELECTRIC_SIGNBOARD_DETECT_INFO
  50134. {
  50135. int nChannelID; // 通道号
  50136. int nAction; // 0:脉冲 1:开始 2:停止
  50137. char szName[128]; // 事件名称
  50138. double PTS; // 时间戳(单位是毫秒)
  50139. NET_TIME_EX UTC; // 事件发生的时间
  50140. int nEventID; // 事件ID
  50141. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50142. UINT nSequence; // 帧序号
  50143. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50144. UINT nSignboardObjNum; // 标识牌对象个数
  50145. NET_ELECTRIC_SIGNBOARD_OBJECT stuSignboardObjs[32]; // 标识牌对象信息
  50146. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  50147. BYTE byReserved[1028]; // 预留字节
  50148. }DEV_EVENT_ELECTRIC_SIGNBOARD_DETECT_INFO;
  50149. ///@brief 电力安全带类型
  50150. typedef enum tagEM_ELECTRIC_BELT_TYPE
  50151. {
  50152. EM_ELECTRIC_BELT_TYPE_UNKNOWN, // 未知
  50153. EM_ELECTRIC_BELT_TYPE_GENERAL, // 普通电力安全带
  50154. } EM_ELECTRIC_BELT_TYPE;
  50155. ///@brief 电力安全带穿戴方式
  50156. typedef enum tagEM_BELT_WARE_TYPE
  50157. {
  50158. EM_BELT_WARE_TYPE_UNKNOWN, // 未知
  50159. EM_BELT_WARE_TYPE_NORMAL, // 正常穿戴
  50160. EM_BELT_WARE_TYPE_MISS_MAIN, // 主保护绳缺失
  50161. EM_BELT_WARE_TYPE_MISS_BACKUP, // 备用保护绳缺失
  50162. EM_BELT_WARE_TYPE_LOW_HANGING, // 作业低挂高用
  50163. } EM_BELT_WARE_TYPE;
  50164. ///@brief 安全带对象信息
  50165. typedef struct tagNET_ELECTRIC_BELT_OBJECT
  50166. {
  50167. UINT nObjectID; // 物体ID
  50168. EM_ELECTRIC_BELT_TYPE emBeltType; // 电力安全带类型
  50169. EM_BELT_WARE_TYPE emBeltWareType; // 电力安全带穿戴方式
  50170. BYTE byReserved1[4]; // 字节对齐
  50171. NET_RECT stuBoundingBox; // 包围盒
  50172. NET_OBJECT_IMAGE_INFO stuImageData; // 物体截图
  50173. BYTE byReserved[1024]; // 预留字节
  50174. } NET_ELECTRIC_BELT_OBJECT;
  50175. ///@brief 事件类型EVENT_IVS_ELECTRIC_BELT_DETECT(电力检测安全带检测事件)对应的数据块描述信息
  50176. typedef struct tagDEV_EVENT_ELECTRIC_BELT_DETECT_INFO
  50177. {
  50178. int nChannelID; // 通道号
  50179. int nAction; // 0:脉冲 1:开始 2:停止
  50180. char szName[128]; // 事件名称
  50181. double PTS; // 时间戳(单位是毫秒)
  50182. NET_TIME_EX UTC; // 事件发生的时间
  50183. int nEventID; // 事件ID
  50184. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50185. UINT nSequence; // 帧序号
  50186. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50187. UINT nBeltObjNum; // 安全带对象个数
  50188. NET_ELECTRIC_BELT_OBJECT stuBeltObjs[32]; // 安全带对象信息
  50189. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  50190. BYTE byReserved[1028]; // 预留字节
  50191. } DEV_EVENT_ELECTRIC_BELT_DETECT_INFO;
  50192. ///@brief 雷达检测对象类型
  50193. typedef enum tagEM_RADAR_DETECT_OBJECT_TYPE
  50194. {
  50195. EM_RADAR_DETECT_OBJECT_UNKNOWN, // 未知
  50196. EM_RADAR_DETECT_OBJECT_HUMAN, // 人
  50197. EM_RADAR_DETECT_OBJECT_VEHICLE // 车
  50198. }EM_RADAR_DETECT_OBJECT_TYPE;
  50199. ///@brief 雷达检测对象
  50200. typedef struct tagNET_RADAR_DETECT_OBJECT
  50201. {
  50202. int nObjectID; // 物体ID
  50203. EM_RADAR_DETECT_OBJECT_TYPE emObjectType; // 物体类型
  50204. BYTE byReserved[1024]; // 预留字节
  50205. }NET_RADAR_DETECT_OBJECT;
  50206. ///@brief 雷达报警类型
  50207. typedef enum tagEM_RADAR_ALARM_TYPE
  50208. {
  50209. EM_RADAR_ALARM_TYPE_UNKNOWN, // 未知
  50210. EM_RADAR_ALARM_TYPE_ALARM, // 报警
  50211. EM_RADAR_ALARM_TYPE_WARNING, // 预警
  50212. }EM_RADAR_ALARM_TYPE;
  50213. ///@brief 事件类型EVENT_IVS_RADAR_LINE_DETECTION(雷达警戒线/绊线检测事件)对应的数据块描述信息
  50214. typedef struct tagDEV_EVENT_RADAR_LINE_DETECTION_INFO
  50215. {
  50216. int nChannelID; // 通道号
  50217. int nAction; // 0:脉冲 1:开始 2:停止
  50218. char szName[128]; // 事件名称
  50219. double PTS; // 时间戳(单位是毫秒)
  50220. NET_TIME_EX UTC; // 事件发生的时间
  50221. int nEventID; // 事件ID
  50222. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50223. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50224. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  50225. int nObjectNum; // 检测到的对象个数
  50226. NET_RADAR_DETECT_OBJECT stuObjects[100]; // 雷达检测对象列表
  50227. int nPresetID; // 事件触发的预置点号
  50228. int nDetectRegionNum; // 检测区域顶点数
  50229. NET_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域,[0,8191]
  50230. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图(当图片超过1张时 使用stuSceneImageEx)
  50231. char szAlarmLevel[16]; // 报警等级
  50232. int nAlarmChannel; // 报警输入通道号
  50233. SCENE_IMAGE_INFO_EX stuSceneImageEx[10]; // 全景广角图(扩展为10张)
  50234. int nstuSceneImageExNum; // 全景广角图个数
  50235. EM_RADAR_ALARM_TYPE emAlarmType; // 报警类型
  50236. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  50237. BYTE byReserved[1020]; // 预留字节
  50238. } DEV_EVENT_RADAR_LINE_DETECTION_INFO;
  50239. ///@brief RFID卡片信息
  50240. typedef struct tagNET_RFID_CARD_INFO
  50241. {
  50242. char szCardId[24]; // RFID卡片ID
  50243. char byReserved[128]; // 预留字节
  50244. }NET_RFID_CARD_INFO;
  50245. ///@brief 事件类型EVENT_IVS_RADAR_REGION_DETECTION(雷达警戒区检测事件)对应的数据块描述信息
  50246. typedef struct tagDEV_EVENT_RADAR_REGION_DETECTION_INFO
  50247. {
  50248. int nChannelID; // 通道号
  50249. int nAction; // 0:脉冲 1:开始 2:停止
  50250. char szName[128]; // 事件名称
  50251. double PTS; // 时间戳(单位是毫秒)
  50252. NET_TIME_EX UTC; // 事件发生的时间
  50253. int nEventID; // 事件ID
  50254. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50255. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50256. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  50257. int nObjectNum; // 检测到的对象个数
  50258. NET_RADAR_DETECT_OBJECT stuObjects[100]; // 雷达检测对象列表
  50259. int nPresetID; // 事件触发的预置点号
  50260. int nDetectRegionNum; // 检测区域顶点数
  50261. NET_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域,[0,8191]
  50262. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图(当图片超过1张时 使用stuSceneImageEx)
  50263. EM_RADAR_ALARM_TYPE emAlarmType; // 报警类型
  50264. char szAlarmLevel[16]; // 报警等级
  50265. int nAlarmChannel; // 报警输入通道号
  50266. int nRFIDCardIdNum; // RFID卡片信息个数
  50267. NET_RFID_CARD_INFO stuRFIDCardId[256]; // RFID卡片信息,最多支持256张卡片信息
  50268. SCENE_IMAGE_INFO_EX stuSceneImageEx[10]; // 全景广角图(扩展为10张)
  50269. int nstuSceneImageExNum; // 全景广角图个数
  50270. int nSpeed; // 触发事件目标的速度,用整型传输,扩大100倍 单位m/s
  50271. int nTrackID; // 触发事件目标的id,范围[0,63]
  50272. int nObjectType; // 触发事件目标的类型的掩码: 0x00未识别目标 0x01目标为人 0x02目标为交通工具 0x03目标为树 0x04目标为建筑物 0x05目标为屏幕 0x06目标为动物 0x07目标为大船 0x08目标为中船 0x09目标为小船
  50273. int nAlarmFlag; // 报警标志位,第0bit位表示是否超速,第1bit位表示是否AIS匹配 第2bit位表示是否禁行 第3bit位表示是否逆行
  50274. int nLongitude; // 经度,用整型传输,1000000倍,小数点后6位有效,不足6位用0补齐
  50275. int nLatitude; // 纬度,用整型传输,1000000倍,小数点后6位有效,不足6位用0补齐
  50276. int nUpDownGoing; // 车道/航道方向 -1:未知 0:无效 1:上行 2:下行
  50277. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  50278. int nDistance; // 当前触发事件目标的像素极坐标值--距离,扩大100倍的结果,单位米
  50279. int nAngle; // 当前触发事件目标的极坐标值--角度,扩大100倍的结果,单位度
  50280. BYTE byReserved[988]; // 预留字节
  50281. } DEV_EVENT_RADAR_REGION_DETECTION_INFO;
  50282. ///@brief 异常音检测信息
  50283. typedef struct tagAUDIO_INTENSITY_MESSAGE_INFO
  50284. {
  50285. char szType[128]; // 消息类型,如"Audio Detection"
  50286. char szContent[128]; // 消息内容
  50287. BYTE byReserved[1024]; // 预留字段
  50288. }AUDIO_INTENSITY_MESSAGE_INFO;
  50289. ///@brief 事件类型EVENT_IVS_AUDIO_INTENSITY(异常音报警事件)对应的数据块描述信息
  50290. typedef struct tagDEV_EVENT_AUDIO_INTENSITY_INFO
  50291. {
  50292. int nChannelID; // 通道号(音频)
  50293. int nAction; // 0:脉冲 1:开始 2:停止
  50294. double PTS; // 时间戳(单位是毫秒)
  50295. NET_TIME_EX UTC; // 事件发生的时间
  50296. BYTE byReserved1[4]; // 预留字段1
  50297. AUDIO_INTENSITY_MESSAGE_INFO stuAudioIntensityInfo; // 音频检测信息
  50298. BYTE byReserved[1024]; // 预留字段
  50299. }DEV_EVENT_AUDIO_INTENSITY_INFO;
  50300. ///@brief 事件类型EVENT_IVS_WALK_DETECTION(走动检测事件)对应的数据块描述信息
  50301. typedef struct tagDEV_EVENT_WALK_DETECTION_INFO
  50302. {
  50303. int nChannelID; // 通道号
  50304. int nAction; // 1:开始 2:停止
  50305. char szName[128]; // 事件名称
  50306. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50307. NET_TIME_EX UTC; // 事件发生的时间
  50308. double PTS; // 时间戳(单位是毫秒)
  50309. UINT nEventID; // 事件ID
  50310. UINT nPresetID; // 场景预置点号
  50311. BYTE byReserved[1024]; // 预留字段
  50312. }DEV_EVENT_WALK_DETECTION_INFO;
  50313. ///@brief 事件类型EVENT_IVS_BACK_TO_DETECTION(背对检测事件)对应的数据块描述信息
  50314. typedef struct tagDEV_EVENT_BACK_TO_DETECTION_INFO
  50315. {
  50316. int nChannelID; // 通道号
  50317. int nAction; // 1:开始 2:停止
  50318. char szName[128]; // 事件名称
  50319. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50320. NET_TIME_EX UTC; // 事件发生的时间
  50321. double PTS; // 时间戳(单位是毫秒)
  50322. UINT nEventID; // 事件ID
  50323. UINT nPresetID; // 场景预置点号
  50324. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  50325. BYTE byReserved[1024]; // 预留字段
  50326. }DEV_EVENT_BACK_TO_DETECTION_INFO;
  50327. ///@brief 事件类型EVENT_IVS_WRITE_ON_THE_BOARD_DETECTION(板书检测事件)对应的数据块描述信息
  50328. typedef struct tagDEV_EVENT_WRITE_ON_THE_BOARD_DETECTION_INFO
  50329. {
  50330. int nChannelID; // 通道号
  50331. int nAction; // 1:开始 2:停止
  50332. char szName[128]; // 事件名称
  50333. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50334. NET_TIME_EX UTC; // 事件发生的时间
  50335. double PTS; // 时间戳(单位是毫秒)
  50336. UINT nEventID; // 事件ID
  50337. UINT nPresetID; // 场景预置点号
  50338. BYTE byReserved[1024]; // 预留字段
  50339. }DEV_EVENT_WRITE_ON_THE_BOARD_DETECTION_INFO;
  50340. ///@brief 事件类型 EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION(智慧厨房穿着检测事件)对应的数据块描述信息
  50341. typedef struct tagDEV_EVENT_SMART_KITCHEN_CLOTHES_DETECTION_INFO
  50342. {
  50343. int nChannelID; // 通道号
  50344. int nAction; // 0:脉冲 1:开始 2:停止
  50345. char szName[128]; // 事件名称
  50346. double PTS; // 时间戳(单位是毫秒)
  50347. NET_TIME_EX UTC; // 事件发生的时间
  50348. UINT nEventID; // 事件ID
  50349. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50350. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50351. char szClassAlias[16]; // 智能事件所属大类别名
  50352. HUMAN_IMAGE_INFO stuHumanImage; // 图片信息
  50353. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图片信息
  50354. FACE_IMAGE_INFO stuFaceImage; // 图片信息
  50355. UINT nObjectID; // 目标ID
  50356. EM_NONMOTOR_OBJECT_STATUS emHasMask; // 检测是否有戴口罩
  50357. EM_NONMOTOR_OBJECT_STATUS emHasChefHat; // 检测是否有戴厨师帽
  50358. EM_NONMOTOR_OBJECT_STATUS emHasChefClothes; // 检测是否有穿厨师服
  50359. EM_OBJECT_COLOR_TYPE emChefClothesColor; // 厨师服颜色(检测出不符合规定的厨师服颜色)
  50360. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  50361. int nImageInfoNum; // 图片信息个数
  50362. char bReserved[1024]; // 预留字节
  50363. }DEV_EVENT_SMART_KITCHEN_CLOTHES_DETECTION_INFO;
  50364. ///@brief 事件类型EVENT_IVS_SLEEP_DETECT(睡觉检测事件)对应的数据块描述信息
  50365. typedef struct tagDEV_EVENT_SLEEP_DETECT_INFO
  50366. {
  50367. int nChannelID; // 通道号
  50368. int nAction; // 1:开始 2:停止
  50369. char szName[128]; // 事件名称
  50370. double PTS; // 时间戳(单位是毫秒)
  50371. NET_TIME_EX UTC; // 事件发生的时间
  50372. int nEventID; // 事件ID
  50373. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50374. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50375. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  50376. UINT nPresetID; // 事件触发的预置点号,从1开始
  50377. UINT nDetectRegionNum; // 检测区域顶点数
  50378. NET_POINT stuDetectRegion[20]; // 检测区域,[0,8191]
  50379. UINT nObjectNum; // 检测到的物体个数
  50380. DH_MSG_OBJECT stuObjects[128]; // 检测到的物体
  50381. BOOL bSceneImage; // stuSceneImage 是否有效
  50382. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  50383. int nRuleCount; // 规则个数
  50384. char szRuleType[16][32]; // 规则类型:"Common":普通睡觉检测,默认值, "HeadCoveredSleep":蒙头睡觉检测
  50385. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  50386. int nImageInfoNum; // 图片信息个数
  50387. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  50388. BYTE byReserved[224]; // 预留字段
  50389. }DEV_EVENT_SLEEP_DETECT_INFO;
  50390. ///@brief 事件类型EVENT_IVS_WALK_AROUND_DETECT(随意走动检测事件)对应的数据块描述信息
  50391. typedef struct tagDEV_EVENT_WALK_AROUND_DETECT_INFO
  50392. {
  50393. int nChannelID; // 通道号
  50394. int nAction; // 1:开始 2:停止
  50395. char szName[128]; // 事件名称
  50396. double PTS; // 时间戳(单位是毫秒)
  50397. NET_TIME_EX UTC; // 事件发生的时间
  50398. int nEventID; // 事件ID
  50399. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50400. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50401. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  50402. UINT nPresetID; // 事件触发的预置点号,从1开始
  50403. UINT nDetectRegionNum; // 检测区域顶点数
  50404. NET_POINT stuDetectRegion[20]; // 检测区域,[0,8191]
  50405. UINT nObjectNum; // 检测到的物体个数
  50406. DH_MSG_OBJECT stuObjects[128]; // 检测到的物体
  50407. BOOL bSceneImage; // stuSceneImage 是否有效
  50408. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  50409. BYTE byReserved[232]; // 预留字段
  50410. }DEV_EVENT_WALK_AROUND_DETECT_INFO;
  50411. ///@brief 事件类型EVENT_IVS_PLAY_MOBILEPHONE(玩手机事件)对应的数据块描述信息
  50412. typedef struct tagDEV_EVENT_PLAY_MOBILEPHONE_INFO
  50413. {
  50414. int nChannelID; // 通道号
  50415. int nAction; // 1:开始 2:停止
  50416. char szName[128]; // 事件名称
  50417. double PTS; // 时间戳(单位是毫秒)
  50418. NET_TIME_EX UTC; // 事件发生的时间
  50419. int nEventID; // 事件ID
  50420. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50421. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50422. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  50423. UINT nPresetID; // 事件触发的预置点号,从1开始
  50424. UINT nDetectRegionNum; // 检测区域顶点数
  50425. NET_POINT stuDetectRegion[20]; // 检测区域,[0,8191]
  50426. UINT nObjectNum; // 检测到的物体个数
  50427. DH_MSG_OBJECT stuObjects[128]; // 检测到的物体
  50428. BOOL bSceneImage; // stuSceneImage 是否有效
  50429. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  50430. NET_GPS_INFO stuGPSInfo; // GPS信息
  50431. char szVideoPath[256]; // 违章关联视频FTP上传路径
  50432. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  50433. int nImageInfoNum; // 图片信息个数
  50434. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  50435. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  50436. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  50437. BYTE byReserved[1012]; // 预留字段
  50438. }DEV_EVENT_PLAY_MOBILEPHONE_INFO;
  50439. ///@brief 事件类型EVENT_IVS_FINANCE_CONTRABAND_DETECT(智慧金融违规物品检测事件)对应的数据块描述信息
  50440. typedef struct tagDEV_EVENT_FINANCE_CONTRABAND_DETECT_INFO
  50441. {
  50442. int nChannelID; // 通道号
  50443. int nAction; // 1:开始 2:停止
  50444. char szName[128]; // 事件名称
  50445. double PTS; // 时间戳(单位是毫秒)
  50446. NET_TIME_EX UTC; // 事件发生的时间
  50447. int nEventID; // 事件ID
  50448. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50449. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50450. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  50451. UINT nPresetID; // 事件触发的预置点号,从1开始
  50452. UINT nDetectRegionNum; // 检测区域顶点数
  50453. NET_POINT stuDetectRegion[20]; // 检测区域,[0,8191]
  50454. UINT nHumanDetectRegionNum; // 检测人体区域顶点数
  50455. NET_POINT stuHumanDetectRegion[20]; // 检测的人体区域,[0,8191]
  50456. UINT nObjectNum; // 检测到的物体个数
  50457. DH_MSG_OBJECT stuObjects[128]; // 检测到的物体
  50458. BYTE byReserved[1020]; // 预留字段
  50459. }DEV_EVENT_FINANCE_CONTRABAND_DETECT_INFO;
  50460. ///@brief 事件类型EVENT_IVS_FINANCE_CASH_TRANSACTION(智慧金融现金交易检测事件)对应的数据块描述信息
  50461. typedef struct tagDEV_EVENT_FINANCE_CASH_TRANSACTION_INFO
  50462. {
  50463. int nChannelID; // 通道号
  50464. int nAction; // 1:开始 2:停止
  50465. char szName[128]; // 事件名称
  50466. double PTS; // 时间戳(单位是毫秒)
  50467. NET_TIME_EX UTC; // 事件发生的时间
  50468. int nEventID; // 事件ID
  50469. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  50470. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50471. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  50472. UINT nPresetID; // 事件触发的预置点号,从1开始
  50473. UINT nDetectRegionNum; // 检测区域顶点数
  50474. NET_POINT stuDetectRegion[20]; // 检测区域,[0,8191]
  50475. UINT nHumanDetectRegionNum; // 检测人体区域顶点数
  50476. NET_POINT stuHumanDetectRegion[20]; // 检测的人体区域,[0,8191]
  50477. UINT nObjectNum; // 检测到的物体个数
  50478. DH_MSG_OBJECT stuObjects[128]; // 检测到的物体
  50479. BOOL bSceneImage; // stuSceneImage 是否有效
  50480. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  50481. BYTE byReserved[228]; // 预留字段
  50482. }DEV_EVENT_FINANCE_CASH_TRANSACTION_INFO;
  50483. ///@brief IRCUT模式切换事件当前模式
  50484. typedef enum tagEM_IRCUT_MODESWITCH_MODE
  50485. {
  50486. EM_IRCUT_MODESWITCH_MODE_UNKNOWN, // 未知
  50487. EM_IRCUT_MODESWITCH_MODE_AUTO, // 自动
  50488. EM_IRCUT_MODESWITCH_MODE_DAY, // 强制白天
  50489. EM_IRCUT_MODESWITCH_MODE_NIGHT, // 强制晚上
  50490. }EM_IRCUT_MODESWITCH_MODE;
  50491. ///@brief IRCUT模式切换事件当前状态
  50492. typedef enum tagEM_IRCUT_MODESWITCH_STATE
  50493. {
  50494. EM_IRCUT_MODESWITCH_STATE_UNKNOWN, // 未知
  50495. EM_IRCUT_MODESWITCH_STATE_DAY, // 白天
  50496. EM_IRCUT_MODESWITCH_STATE_NIGHT, // 晚上
  50497. }EM_IRCUT_MODESWITCH_STATE;
  50498. ///@brief 事件类型EVENT_IVS_IRCUT_MODESWITCH_ALARM_EVENT(IRCUT模式切换事件)对应的数据块描述信息
  50499. typedef struct tagNET_DEV_EVENT_IRCUT_MODESWITCH_ALARM_INFO
  50500. {
  50501. int nChannelID; // 通道号
  50502. int nAction; // 1:开始 2:停止
  50503. char szName[128]; // 事件名称 目前暂不支持该字段解析
  50504. double PTS; // 时间戳(单位是毫秒)
  50505. NET_TIME_EX UTC; // 事件发生的时间
  50506. int nEventID; // 事件ID
  50507. EM_IRCUT_MODESWITCH_MODE emMode; // 当前模式
  50508. EM_IRCUT_MODESWITCH_STATE emState; // 当前状态
  50509. char szReserved[512]; // 预留字段
  50510. }NET_DEV_EVENT_IRCUT_MODESWITCH_ALARM_INFO;
  50511. ///@brief 事件类型EVENT_IVS_REMOTE_APPROVAL_ALARM(金融远程审批事件)对应的数据块描述信息
  50512. typedef struct tagNET_DEV_EVENT_REMOTE_APPROVAL_ALARM_INFO
  50513. {
  50514. int nChannelID; // 通道号
  50515. int nAction; // 1:开始 2:停止
  50516. char szName[128]; // 事件名称 目前暂不支持该字段解析
  50517. double PTS; // 时间戳(单位是毫秒)
  50518. NET_TIME_EX UTC; // 事件发生的时间
  50519. int nEventID; // 事件ID
  50520. int nApprovalNo; // 审批单号
  50521. int nType; // 操作类型,-1:未知,0:存箱, 1:取箱
  50522. int nTimeout; // 审批超时时间,单位秒
  50523. int nCabinListNum; // 存取的舱位下标数量
  50524. int nCabinList[32]; // 存取的舱位下标数组
  50525. char szAccessorID[64]; // 存取人ID
  50526. char szAccessorName[64]; // 存取人名称
  50527. char szReviewerID[64]; // 复核人ID
  50528. char szReviewerName[64]; // 复核人名称
  50529. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  50530. int nImageInfoNum; // 图片信息个数
  50531. char szReserved[508]; // 预留字段
  50532. }NET_DEV_EVENT_REMOTE_APPROVAL_ALARM_INFO;
  50533. ///@brief 事件类型EVENT_IVS_ANTI_COUNTERFEIT(防造假检测事件)对应的数据块描述信息
  50534. typedef struct tagNET_DEV_EVENT_ANTI_COUNTERFEIT_INFO
  50535. {
  50536. int nChannelID; // 通道号
  50537. int nAction; // 0:脉冲 1:开始 2:停止
  50538. char szName[128]; // 事件名称
  50539. char szClass[16]; // 智能事件所属大类
  50540. UINT nRuleID; // 智能事件规则编号
  50541. int nGroupID; // GroupID事件组ID
  50542. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  50543. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  50544. double PTS; // 时间戳(单位是毫秒)
  50545. NET_TIME_EX UTC; // 事件发生的时间
  50546. UINT nUTCMS; // 事件时间毫秒数
  50547. UINT nEventID; // 事件ID
  50548. int nSequence; // 帧序号
  50549. int nFrameSequence; // 视频分析帧序号
  50550. int nDetectRegionNum; // 规则区域个数
  50551. NET_UINT_POINT stuDetectRegion[20]; // 规则区域
  50552. char szDirection[16]; // Direction表示入侵方向, 参见警戒区配置
  50553. char szAction[16]; // Action表示动作,参见警戒区配置
  50554. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  50555. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  50556. int nMark; // 用于标记抓拍帧
  50557. int nSource; // 视频分析的数据源地址
  50558. UINT nEventSeq; // 事件序列号
  50559. char szReserved[1020]; // 预留字段
  50560. }NET_DEV_EVENT_ANTI_COUNTERFEIT_INFO;
  50561. ///@brief 事件类型 EVENT_IVS_TRAFFIC_SPEED_DIFFPREWARNING (速度差预警事件)对应的数据块描述信息
  50562. typedef struct tagNET_DEV_EVENT_TRAFFIC_SPEED_DIFFPREWARNING_INFO
  50563. {
  50564. int nChannelID; // 通道号
  50565. int nAction; // 0:脉冲
  50566. char szName[128]; // 事件名称
  50567. double dbPTS; // 时间戳(单位是毫秒)
  50568. UINT nEventID; // 事件ID
  50569. NET_TIME_EX stuUTC; // 事件发生的时间
  50570. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50571. UINT nUTCMS; // 事件时间毫秒数
  50572. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  50573. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  50574. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  50575. char byReserved1[4]; // 用于字节对齐
  50576. BOOL bNonMotorInfoEx; // 是否有非机动车信息
  50577. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  50578. DH_MSG_OBJECT stuObject; // 车牌信息
  50579. DH_MSG_OBJECT stuVehicle; // 车身信息
  50580. int nLane; // 车道号
  50581. int nSequence; // 抓拍序号
  50582. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  50583. EVENT_COMM_INFO stuCommInfo; // 公共信息
  50584. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  50585. char szReserved[1020]; // 预留字段
  50586. }NET_DEV_EVENT_TRAFFIC_SPEED_DIFFPREWARNING_INFO;
  50587. ///@brief 事件类型 EVENT_IVS_TRAFFIC_DRIVER_IDENTIFIED (驾驶员比对成功通知事件)对应的数据块描述信息
  50588. typedef struct tagNET_DEV_EVENT_TRAFFIC_DRIVER_IDENTIFIED_INFO
  50589. {
  50590. int nChannelID; // 通道号
  50591. int nAction; // 0:脉冲
  50592. char szName[128]; // 事件名称
  50593. double dbPTS; // 时间戳(单位是毫秒)
  50594. UINT nEventID; // 事件ID
  50595. NET_TIME_EX stuUTC; // 事件发生的时间
  50596. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50597. UINT nUTCMS; // 事件时间毫秒数
  50598. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  50599. NET_GPS_STATUS_INFO stuGpsSatus; // GPS状态
  50600. char szDriverID[32]; // 驾驶员ID
  50601. char szReserved[1024]; // 预留字段
  50602. }NET_DEV_EVENT_TRAFFIC_DRIVER_IDENTIFIED_INFO;
  50603. ///@brief 事件类型 EVENT_IVS_TRAFFIC_QUEUE_OVERFLOW (排队溢出事件)对应的数据块描述信息
  50604. typedef struct tagNET_DEV_EVENT_TRAFFIC_QUEUE_OVERFLOW_INFO
  50605. {
  50606. int nChannelID; // 通道号
  50607. int nAction; // 0:脉冲,1:开始, 2:停止
  50608. char szName[128]; // 事件名称
  50609. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  50610. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  50611. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  50612. int nLane; // 对应车道号
  50613. int nFrameSequence; // 视频分析帧序号
  50614. int nSequence; // 抓拍序号, 1表示抓拍正常结束, 0表示抓拍异常结束
  50615. float fQueueLength; // 排队长度
  50616. UINT nEventID; // 事件ID
  50617. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  50618. NET_TIME_EX stuUTC; // 事件发生的时间
  50619. BOOL bVehicleInfo; // 是否有车辆信息
  50620. BOOL bObjectInfo; // 是否有车牌信息
  50621. BOOL bNonMotorInfo; // 是否有非机动车信息
  50622. DH_MSG_OBJECT stuVehicle; // 车辆信息
  50623. DH_MSG_OBJECT stuObject; // 车牌信息
  50624. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  50625. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50626. char szReserved[1024]; // 预留字节
  50627. }NET_DEV_EVENT_TRAFFIC_QUEUE_OVERFLOW_INFO;
  50628. ///@brief 事件类型 EVENT_IVS_TRAFFIC_QUEUE_TIMEOUT (排队超限事件)对应的数据块描述信息
  50629. typedef struct tagNET_DEV_EVENT_TRAFFIC_QUEUE_TIMEOUT_INFO
  50630. {
  50631. int nChannelID; // 通道号
  50632. int nAction; // 0:脉冲,1:开始, 2:停止
  50633. char szName[128]; // 事件名称
  50634. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  50635. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  50636. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  50637. UINT nEventID; // 事件ID
  50638. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  50639. NET_TIME_EX stuUTC; // 事件发生的时间
  50640. char szReserved1[4]; // 字节对齐
  50641. BOOL bVehicleInfo; // 是否有车辆信息
  50642. int nLane; // 对应车道号
  50643. int nFrameSequence; // 视频分析帧序号
  50644. int nSequence; // 抓拍序号, 1表示抓拍正常结束, 0表示抓拍异常结束
  50645. BOOL bObjectInfo; // 是否有车牌信息
  50646. BOOL bNonMotorInfo; // 是否有非机动车信息
  50647. DH_MSG_OBJECT stuVehicle; // 车辆信息
  50648. DH_MSG_OBJECT stuObject; // 车牌信息
  50649. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  50650. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50651. char szReserved[1024]; // 预留字节
  50652. }NET_DEV_EVENT_TRAFFIC_QUEUE_TIMEOUT_INFO;
  50653. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PLATE_ABNORMAL (车牌异常检测)对应的数据块描述信息
  50654. typedef struct tagNET_DEV_EVENT_TRAFFIC_PLATE_ABNORMAL_INFO
  50655. {
  50656. int nChannelID; // 通道号
  50657. int nAction; // 0:脉冲,1:开始, 2:停止
  50658. NET_TIME_EX stuUTC; // 事件发生的时间
  50659. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50660. char szName[128]; // 事件名称
  50661. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  50662. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  50663. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  50664. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  50665. UINT nUTCMS; // 事件时间毫秒数
  50666. UINT nEventID; // 事件ID
  50667. DH_MSG_OBJECT stuVehicle; // 车辆信息
  50668. DH_MSG_OBJECT stuObject; // 车牌信息
  50669. int nLane; // 对应车道号
  50670. int nSequence; // 抓拍序号, 1表示抓拍正常结束, 0表示抓拍异常结束
  50671. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  50672. EVENT_COMM_INFO stuCommInfo; // 公共信息
  50673. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  50674. char szReserved[1020]; // 预留字节
  50675. }NET_DEV_EVENT_TRAFFIC_PLATE_ABNORMAL_INFO;
  50676. ///@brief 事件类型 EVENT_IVS_GARBAGE_PLASTICBAG (打包垃圾检测事件)对应的数据块描述信息
  50677. typedef struct tagNET_DEV_EVENT_GARBAGE_PLASTICBAG_INFO
  50678. {
  50679. int nChannelID; // 通道号
  50680. int nAction; // 0:脉冲,1:开始, 2:停止
  50681. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50682. char szName[128]; // 事件名称
  50683. char szClass[16]; // 智能事件所属大类
  50684. NET_TIME_EX stuUTC; // 事件发生的时间
  50685. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  50686. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  50687. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  50688. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  50689. UINT nEventID; // 事件ID
  50690. int nObjectCount; // 检测到的物体个数
  50691. DH_MSG_OBJECT stuObjects[64]; // 检测到的物体信息
  50692. NET_POINT_EX stuDetectRegion[20]; // 规则检测区域
  50693. int nDetectRegionCount; // 规则检测区域顶点数
  50694. UINT nPresetID; // 事件触发的预置点号,从1开始
  50695. char szPresetName[64]; // 事件触发的预置点名称
  50696. char szSourceID[32]; // 事件关联ID
  50697. char szReserved[1024]; // 预留字节
  50698. }NET_DEV_EVENT_GARBAGE_PLASTICBAG_INFO;
  50699. ///@brief 事件类型 EVENT_IVS_POSITION_SNAP (按位置抓图事件)对应的数据块描述信息
  50700. typedef struct tagNET_DEV_EVENT_POSITION_SNAP_INFO
  50701. {
  50702. int nChannelID; // 通道号
  50703. int nAction; // 0:脉冲,1:开始, 2:停止
  50704. NET_TIME_EX stuUTC; // 事件发生的时间
  50705. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50706. char szType[64]; // 按位置抓图的类型, 目前仅有"PresetSnap"
  50707. int nPresetID; // 预置点序号
  50708. char szPresetName[64]; // 预置点名称
  50709. NET_GPS_INFO stuGPSInfo; // GPS信息
  50710. int nAbsposition[3]; // 云台方向与放大倍数,显示值,扩大100倍值, 该数组固定为3,第一个元素为水平角度,0-36000; 第二个元素为垂直角度,(-18000)-(18000); 第三个元素为显示放大倍数,0-100。
  50711. char szReserved[1024]; // 预留字节
  50712. }NET_DEV_EVENT_POSITION_SNAP_INFO;
  50713. ///@brief 检测区域信息
  50714. typedef struct tagNET_DETECT_REGION_INFO_EX
  50715. {
  50716. int nDetectRegionCount; // 检测区域个数
  50717. NET_POINT_EX stuDetectRegion[20]; // 检测区域
  50718. char szReserved[428]; // 预留字节
  50719. }NET_DETECT_REGION_INFO_EX;
  50720. ///@brief 事件类型 EVENT_IVS_MULTI_MAN_NUM_DETECTION (讯问会见室人数报警事件)对应的数据块描述信息
  50721. typedef struct tagNET_DEV_EVENT_MULTI_MAN_NUM_DETECTION_INFO
  50722. {
  50723. int nChannelID; // 通道号
  50724. int nAction; // 0:脉冲,1:开始, 2:停止
  50725. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50726. char szName[128]; // 事件名称
  50727. char szClass[16]; // 智能事件所属大类
  50728. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  50729. NET_TIME_EX stuUTC; // 事件发生的时间
  50730. int nObjectsRealNum; // 实际有效目标检测信息个数
  50731. DH_MSG_OBJECT stuObjects[128]; // 检测目标的物体信息
  50732. NET_DETECT_REGION_INFO_EX *pstuDetectRegionInfo; // 检测区域信息
  50733. int nDetectRegionInfoCount; // 检测区域信息个数
  50734. char szReserved[1020-POINTERSIZE]; // 预留字节
  50735. }NET_DEV_EVENT_MULTI_MAN_NUM_DETECTION_INFO;
  50736. ///@brief 事件类型 EVENT_IVS_USERMANAGER_FOR_TWSDK (用户信息上报事件)对应的数据块描述信息
  50737. typedef struct tagNET_DEV_EVENT_USERMANAGER_FOR_TWSDK_INFO
  50738. {
  50739. int nChannelID; // 通道号
  50740. int nAction; // 0:脉冲
  50741. NET_TIME_EX stuUTC; // 事件发生的时间
  50742. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50743. char szUserID[9]; // 用户ID
  50744. char szReserved1[7]; // 字节对齐
  50745. char szUserName[64]; // 用户名
  50746. int nUserType; // 用户类型
  50747. int nUseTime; // 使用次数
  50748. int nAuthority; // 用户权限 0:未知 1: 管理员 2: 普通用户
  50749. int nTimeSectionNum; // 有效的的时间段数目
  50750. UINT nTimeSections[64]; // 时段
  50751. NET_TIME stuValidTo; // 有效期
  50752. UINT nSpecialDaysSchedule[64]; // 假日计划
  50753. int nSpecialDaysScheduleNum; // 假日计划表示数量
  50754. int nType; // 消息类型 0: 未知 1: 人员新增消息 2: 人员修改消息 3:人员删除消息(删除时仅UserID有效)
  50755. char szPassword[9]; // 密码
  50756. char szReserved2[7]; // 字节对齐
  50757. char szFaceList[5][2048]; // 特征值
  50758. int nFaceListNum; // 特征值数量
  50759. int nCardListNum; // 卡片数量
  50760. char szCardList[5][32]; // 卡片
  50761. char szFingerList[5][256]; // 信息
  50762. int nFingerListNum; // 信息数量
  50763. BOOL bDelAllUser; // 是否删除所有用户(true:删除所有用户数据,其余字段无效)
  50764. NET_TIME stuValidFrom; // 有效期开始时间
  50765. char szSN[32]; // 设备序列号
  50766. UINT nUserCount; // 用户总数量
  50767. UINT nFingerCount; // 信息总数量
  50768. UINT nFaceCount; // 目标总数量
  50769. UINT nCardCount; // 卡片总数量
  50770. NET_USERMANAGER_IMAGE_INFO stuImageInfo[5]; // 用户信息图片信息
  50771. int nImageInfoCount; // 用户信息图片信息个数
  50772. char szReserved[572]; // 预留字节
  50773. }NET_DEV_EVENT_USERMANAGER_FOR_TWSDK_INFO;
  50774. ///@brief 事件类型 EVENT_IVS_OBJECT_QUANTITY_DETECTION (目标类型和数量检测报警事件)对应的数据块描述信息
  50775. typedef struct tagNET_DEV_EVENT_OBJECT_QUANTITY_DETECTION_INFO
  50776. {
  50777. int nChannelID; // 通道号
  50778. int nAction; // 0:脉冲,1:开始, 2:停止
  50779. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50780. NET_TIME_EX stuUTC; // 事件发生的时间
  50781. UINT nEventID; // 事件ID
  50782. char szName[128]; // 事件名称
  50783. char szClass[16]; // 智能事件所属大类
  50784. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  50785. DH_MSG_OBJECT stuObjects[128]; // 检测目标的物体信息
  50786. int nObjectsRealNum; // 实际有效目标检测信息个数
  50787. int nDetectRegionRealNum; // 检测区域数组有效个数
  50788. UINT nDetectRegion[20][2]; // 检测区域
  50789. char szReserved[1024]; // 预留字节
  50790. }NET_DEV_EVENT_OBJECT_QUANTITY_DETECTION_INFO;
  50791. ///@brief 事件类型 EVENT_IVS_DRIVE_ASSISTANT_ALARM (驱动辅助报警)对应的数据块描述信息
  50792. typedef struct tagNET_DEV_EVENT_DRIVE_ASSISTANT_ALARM_INFO
  50793. {
  50794. int nChannelID; // 通道号
  50795. int nAction; // 0:脉冲,1:开始, 2:停止
  50796. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50797. NET_TIME_EX stuUTC; // 事件发生的时间
  50798. UINT nEventID; // 事件ID
  50799. char szName[128]; // 事件名称
  50800. char szClass[16]; // 智能事件所属大类
  50801. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  50802. UINT nForwardCollideFlag; // 前向碰撞预警标识, 0:未预警 1:预警
  50803. UINT nForwardCollideReportFlag; // 前向碰撞上报标识, 0:未预警 1:预警
  50804. float fForwardCollideTime; // 前向碰撞耗时,单位秒, 当nForwardCollideFlag或nForwardCollideReportFlag值为1时有效
  50805. UINT nTooCloseFlag; // 距离过近预警标识, 0:未预警 1:预警
  50806. UINT nTooCloseReportFlag; // 距离过近上报标识, 0:未预警 1:预警
  50807. UINT nDepartureState; // 满足预警速度时车道偏移状态, 0:未偏移 1:左压线 2:右压线
  50808. UINT nDepartureReportState; // 满足上报速度时车道偏移状态, 0:未偏移 1:左压线 2:右压线
  50809. UINT nDepartureLaneType; // 车道线类型:0: 无车道线,1: 单虚线,2: 单实线,3: 双虚线,4: 双实线,5: 内虚外实线,6: 内实外虚线
  50810. UINT nSolidLaneChangeFlag; // 实线变道预警标识0:未预警 1:预警
  50811. UINT nSolidLaneChangeReportFlag; // 实线变道上报标识0:未预警(不上报平台) 1:预警(上报平台)
  50812. NET_OBJECT_IMAGE_INFO stuImageInfo; // 图片信息
  50813. UINT nFrontCarGoFlag; // 前车启动的状态, 0 :未启动; 1 : 启动预警
  50814. UINT nPedestrianOnZebraFlag; // 斑马线有行人预警, 0 :未预警; 1 : 预警
  50815. UINT nPedestrianOnZebraDiscourtesyFlag; // 斑马线有行人未礼让预警, 0 :未预警; 1:未礼让预警
  50816. UINT nTrafficLightStateFlag; // 红灯变绿灯预警, 0:未预警; 1:红灯变绿灯
  50817. UINT nTrafficSignsHighSpeed; // 限速牌识别,最高速,大于0有效,单位KM/H
  50818. UINT nTrafficSignsLowSpeed; // 限速牌识别,最低速,大于0有效,单位KM/H
  50819. char szForwardCollideObjectType[16]; // 前向碰撞预警对象物体类型
  50820. char szReserved[1024]; // 预留字节
  50821. }NET_DEV_EVENT_DRIVE_ASSISTANT_ALARM_INFO;
  50822. ///@brief 事件类型 EVENT_IVS_FISH_STATE_DETECTION (鱼类状态检测报警)对应的数据块描述信息
  50823. typedef struct tagNET_DEV_EVENT_FISH_STATE_DETECTION_INFO
  50824. {
  50825. int nChannelID; // 通道号
  50826. int nAction; // 0:脉冲,1:开始, 2:停止
  50827. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50828. char szName[128]; // 事件名称
  50829. char szClass[16]; // 智能事件所属大类
  50830. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  50831. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  50832. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  50833. NET_TIME_EX stuUTC; // 事件发生的时间
  50834. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  50835. UINT nEventID; // 事件ID
  50836. int nObjectCount; // 检测的动物个数
  50837. NET_VAOBJECT_ANIMAL_INFO stuObjects[8]; // 检测的动物信息
  50838. NET_OBJECT_IMAGE_INFO stuSceneImage; // 全景广角图
  50839. UINT nPresetID; // 事件触发的预置点号,从1开始
  50840. int nDetectRegionCount; // 检测区个数
  50841. NET_POINT stuDetectRegion[20]; // 检测区
  50842. char szUserName[32]; // 用户名称
  50843. UINT nCurrentQuantity; // 当前检测到的鱼数量
  50844. UINT nAssessmentQuantity; // 根据检测到的鱼数量得到的评估数量
  50845. int nType; // 当前检测到的鱼类型, 0: 各种鱼, 1: 三文鱼
  50846. UINT nActualQuantity; // 鱼群的真值,返回配置下发来的值, 单位:条
  50847. int nLowFish; // 鱼数量低报警百分比(例:低于20%则报警) 单位:百分比,0-100
  50848. char szReserved[1020]; // 预留字节
  50849. }NET_DEV_EVENT_FISH_STATE_DETECTION_INFO;
  50850. ///@brief 事件类型 EVENT_IVS_CONVEYOR_NTH_TO_STH_DETECTION (传送带载体从无到有检测报警事件)对应的数据块描述信息
  50851. typedef struct tagNET_DEV_EVENT_CONVEYOR_NTH_TO_STH_DETECTION_INFO
  50852. {
  50853. int nChannelID; // 通道号
  50854. int nAction; // 0:脉冲,1:开始, 2:停止
  50855. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50856. char szName[128]; // 事件名称
  50857. char szClass[16]; // 智能事件所属大类
  50858. UINT nEventID; // 事件ID
  50859. NET_TIME_EX stuUTC; // 事件发生的时间
  50860. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  50861. UINT nRuleID; // 智能事件规则编号
  50862. int nObjectCount; // 检测的动物个数
  50863. DH_MSG_OBJECT stuObjects[32]; // 检测的动物信息
  50864. NET_OBJECT_IMAGE_INFO stuSceneImage; // 全景广角图
  50865. NET_POINT stuDetectRegion[20]; // 检测区
  50866. int nDetectRegionCount; // 检测区个数
  50867. char szReserved[1020]; // 预留字节
  50868. }NET_DEV_EVENT_CONVEYOR_NTH_TO_STH_DETECTION_INFO;
  50869. ///@brief 事件类型 EVENT_IVS_CONVEYOR_STH_TO_NTH_DETECTION (传送带载体从有到无检测报警事件)对应的数据块描述信息
  50870. typedef struct tagNET_DEV_EVENT_CONVEYOR_STH_TO_NTH_DETECTION_INFO
  50871. {
  50872. int nChannelID; // 通道号
  50873. int nAction; // 0:脉冲,1:开始, 2:停止
  50874. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50875. char szName[128]; // 事件名称
  50876. char szClass[16]; // 智能事件所属大类
  50877. NET_TIME_EX stuUTC; // 事件发生的时间
  50878. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  50879. UINT nRuleID; // 智能事件规则编号
  50880. int nObjectCount; // 检测的动物个数
  50881. DH_MSG_OBJECT stuObjects[32]; // 检测的动物信息
  50882. NET_OBJECT_IMAGE_INFO stuSceneImage; // 全景广角图
  50883. NET_POINT stuDetectRegion[20]; // 检测区
  50884. int nDetectRegionCount; // 检测区个数
  50885. char szReserved[1024]; // 预留字节
  50886. }NET_DEV_EVENT_CONVEYOR_STH_TO_NTH_DETECTION_INFO;
  50887. ///@brief 事件类型 EVENT_IVS_CO_LOW_ALARM (CO低浓度报警事件)对应的数据块描述信息
  50888. typedef struct tagNET_DEV_EVENT_CO_LOW_ALARM_INFO
  50889. {
  50890. int nChannelID; // 通道号
  50891. int nAction; // 0:脉冲,1:开始, 2:停止
  50892. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50893. NET_TIME_EX stuUTC; // 事件发生的时间
  50894. int nCOConcentration; //一氧化碳浓度值,单位ppm
  50895. char szReserved[1024]; // 预留字节
  50896. }NET_DEV_EVENT_CO_LOW_ALARM_INFO;
  50897. ///@brief 事件类型 EVENT_IVS_CO_HIGH_ALARM (CO低浓度报警事件)对应的数据块描述信息
  50898. typedef struct tagNET_DEV_EVENT_CO_HIGH_ALARM_INFO
  50899. {
  50900. int nChannelID; // 通道号
  50901. int nAction; // 0:脉冲,1:开始, 2:停止
  50902. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50903. NET_TIME_EX stuUTC; // 事件发生的时间
  50904. int nCOConcentration; //一氧化碳浓度值,单位ppm
  50905. char szReserved[1024]; // 预留字节
  50906. }NET_DEV_EVENT_CO_HIGH_ALARM_INFO;
  50907. ///@brief 销售香烟信息
  50908. typedef struct tagNET_CIGARETTE_CASE_INFO
  50909. {
  50910. char szCigaretteType[128]; // 销售烟盒种类,目前支持的类型如下
  50911. //0 "GuiYan-Yinghuangjingpin" 贵烟(硬黄精品)
  50912. //1 "HuangGuoShu-Lanjiapin" 黄果树(蓝佳品)
  50913. //2 "GuiYan-Yinggaozun" 贵烟(硬高遵)
  50914. //3 "GuiYan-Xi" 贵烟(喜)
  50915. //4 "YunYan-Ruanzhenpin" 云烟(软珍品)
  50916. //5 "YunYan-Zi" 云烟(紫)
  50917. //6 "GuiYan-Fu" 贵烟(福)
  50918. //7 "GuiYan-Cui" 贵烟(萃)
  50919. //8 "GuiYan-Jinbaihe" 贵烟(金百合)
  50920. //9 "YuXi-Ruan" 玉溪(软)
  50921. //10 "GuiYan-Kuayue" 贵烟(跨越)
  50922. //11 "ZhongHua-Ying" 中华(硬)
  50923. //12 "HuangHeLou-Ruanlan" 黄鹤楼(软蓝)
  50924. //13 "GuiYan-Ruangaozun" 贵烟(软高遵)
  50925. //14 "GuiYan-Guojiuxiang30" 贵烟(国酒香30)
  50926. //15 "GuiYan-Hongzhongzhi" 贵烟(红中支)
  50927. //16 "YunYan-Ruandazhongjiu" 云烟(软大重九)
  50928. //17 "YunYan-Zhongzhijinyaodai" 云烟(中支金腰带)
  50929. //18 "HuangHeLou-Tianxiaminglou" 黄鹤楼(天下名楼)
  50930. //19 "GuiYan-Xizhiguojiuxiang30" 贵烟(细支国酒香30)
  50931. //20 "NanJing-Xuanhemen" 南京(炫赫门)
  50932. //21 "ZhongHua-Ruan" 中华(软)
  50933. //22 "HuangGuoShu-Changzhenghongxingzhaoyao" 黄果树(长征红星照耀)
  50934. //23 "FuRongWang-Ying" 芙蓉王(硬)
  50935. //24 "TianZi-Jin" 天子(金)
  50936. //25 "BaiSha-Hetianxia" 白沙(和天下)
  50937. //26 "NanJing-Shierchaibohe" 南京(十二钗薄荷)
  50938. //27 "GuiYan-Shengxiao" 贵烟(生肖)
  50939. //28 "TianZi-ZhongZhi" 天子(中支)
  50940. //29 "YunYan-Ruanyinxiangyanzhuang" 云烟(软印象烟庄)
  50941. //30 "ZhongHua-Shuangzhongzhi" 中华(双中支)
  50942. //31 "GuiYan-Xingzhe" 贵烟(行者)
  50943. //32 "GuiYan-Guizhongzhi" 贵烟(贵中支)
  50944. //33 "YuXi-Zhongzhijingjie" 玉溪(中支境界)
  50945. //34 "ZhongHua-Jinzhongzhi" 中华(金中支)
  50946. //35 "YunYan-Heijingangyinxiang" 云烟(黑金刚印象)
  50947. //36 "YunYan-Xiaoxiongmaojiayuan" 云烟(小熊猫家园)
  50948. //37 "GuiYan-Fuzhongzhi" 贵烟(福中支)
  50949. //38 "GuiYan-Xigui" 贵烟(喜贵)
  50950. //39 "JiaoZi-Kuanzhaihaoyunxizhi" 娇子(宽窄好运细支)
  50951. //40 "GuiYan-Xizhixingzhe" 贵烟(细支行者)
  50952. //41 "BaiSha-Ruanhetianxia" 白沙(软和天下)
  50953. //42 "GuiYan-Yingxiaoguojiuxiang" 贵烟(硬小国酒香)
  50954. //43 "YunYan-Xizhizhenpin" 云烟(细支珍品)
  50955. //44 "YunYan-Xizhiyunlong" 云烟(细支云龙)
  50956. //45 "ChangBaiShan-777" 长白山(777)
  50957. //46 “LiQun-Xinbon” 利群(新版)
  50958. //47 “HuangHeLou-Yingxiagurouqing” 黄鹤楼(硬峡谷柔情)
  50959. //48 “Huangshan-Xinzhiwanyan” 黄山(新制皖烟)
  50960. //49 “QiPiLang-Hong” 七匹狼(红)
  50961. //50 “BaiSha-Yingxizhihetianxia” 白沙(硬细支和天下)
  50962. UINT CigaretteNum; // 销售烟盒数量,单位为盒
  50963. char szReserved[1020]; // 预留字节
  50964. }NET_CIGARETTE_CASE_INFO;
  50965. ///@brief 事件类型 EVENT_IVS_CIGARETTE_CASE_DETECTION (烟盒检测事件)对应的数据块描述信息
  50966. typedef struct tagNET_DEV_EVENT_CIGARETTE_CASE_DETECTION_INFO
  50967. {
  50968. int nChannelID; // 通道号
  50969. int nAction; // 0:脉冲,1:开始, 2:停止
  50970. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50971. NET_TIME_EX stuUTC; // 事件发生的时间
  50972. char szName[128]; // 事件名称
  50973. double PTS; // 时间戳(单位是毫秒)
  50974. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  50975. UINT nUTCMS; // 事件时间毫秒数
  50976. UINT nEventID; // 事件ID
  50977. int nGroupID; // 事件组ID,一次检测的多个nGroupID相同
  50978. int nCountInGroup; // 一个事件组内的抓拍张数,一次检测的多个nCountInGroup相同
  50979. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  50980. UINT nCigaretteCaseNum; // 销售香烟信息数量
  50981. NET_CIGARETTE_CASE_INFO stuCigaretteCaseInfo[50]; // 销售香烟信息
  50982. char szReserved[1024]; // 预留字节
  50983. }NET_DEV_EVENT_CIGARETTE_CASE_DETECTION_INFO;
  50984. ///@brief 事件类型 EVENT_IVS_TIMECHANGE_FOR_TWSDK (系统时间被修改报警事件)对应的数据块描述信息
  50985. typedef struct tagNET_DEV_EVENT_TIMECHANGE_FOR_TWSDK_INFO
  50986. {
  50987. int nChannelID; // 通道号
  50988. int nAction; // 0:脉冲,1:开始, 2:停止
  50989. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  50990. NET_TIME stuBeforeModifyTime; // 修改前时间
  50991. NET_TIME stuModifiedTime; // 修改后时间
  50992. char szSN[32]; // 设备序列号
  50993. NET_TIME_EX stuUTC; // 事件发生的时间
  50994. char szReserved[1020]; // 预留字节
  50995. }NET_DEV_EVENT_TIMECHANGE_FOR_TWSDK_INFO;
  50996. ///@brief 传送带运动状态检测类型
  50997. typedef enum tagEM_CONVEYOR_BELT_RULETYPE_RULE_TYPE
  50998. {
  50999. EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE_UNKNOWN, // 未知
  51000. EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE_STH_TO_NTH, // 物品从有到无
  51001. EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE_NTH_TO_STH, // 物品从无到有
  51002. EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE_MOVE_TO_STOP, // 运动到静止
  51003. EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE_STOP_TO_MOVE, // 静止到运动
  51004. }EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE;
  51005. ///@brief 事件类型 EVENT_IVS_CONVEYOR_BELT_STATUS (传送带运动状态检测报警事件)对应的数据块描述信息
  51006. typedef struct tagNET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO
  51007. {
  51008. int nChannelID; // 通道号
  51009. int nAction; // 0:脉冲,1:开始, 2:停止
  51010. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51011. char szName[128]; // 事件名称
  51012. char szClass[16]; // 智能事件所属大类
  51013. NET_TIME_EX stuUTC; // 事件发生的时间
  51014. UINT nEventID; // 事件编号
  51015. NET_POINT stuDetectRegion[20]; // 检测区
  51016. int nDetectRegionCount; // 检测区个数
  51017. float fCoalData; // 当前煤量占比值
  51018. UINT nStatusType; // 本次事件触发对应的传送带运行状态: 0表示运动到静止, 1表示静止到运动, 2表示未知
  51019. UINT nObjectStatusType; // 本次事件触发对应的传送带上的物品状态: 0表示未知, 1表示物品从有到无, 2表示物品从无到有
  51020. NET_OBJECT_IMAGE_INFO stuSceneImage; // 全景广角图
  51021. int nRuleTypeCount; // 检测类型个数
  51022. EM_CONVEYOR_BELT_RULETYPE_RULE_TYPE emRuleType[16]; // 检测类型
  51023. UINT nStatusTypeObjRst; // 皮带运动到静止时或静止到运动时, 皮带上是否有物体。 0- 未知 1- 有物体 2- 无物体
  51024. char szReserved[1020]; // 预留字节
  51025. }NET_DEV_EVENT_CONVEYOR_BELT_STATUS_INFO;
  51026. ///@brief 事件类型 EVENT_IVS_HOSPITAL_TALK_CONTROL (设备上报谈话事件)对应的数据块描述信息
  51027. typedef struct tagNET_DEV_EVENT_HOSPITAL_TALK_CONTROL_INFO
  51028. {
  51029. int nChannelID; // 通道号
  51030. int nAction; // 0:脉冲,1:开始, 2:停止
  51031. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51032. NET_TIME_EX stuUTC; // 事件发生的时间
  51033. char szCitizenName[128]; // 姓名。证件、社保卡上的正式公民姓名
  51034. char szCitizenIDNo[20]; // 证件卡号
  51035. char szPatientIdentity[20]; // 病人证件
  51036. UINT nMode; // 谈话模式 0:病人谈话,1:家属谈话
  51037. UINT nStatus; // 上报状态类型 0: 开始,1: 结束,2: 暂停,3: 继续
  51038. UINT nCardType; // 刷卡类型 1:证件,2:社保卡
  51039. UINT nImageInfoNum; // 实际图片信息个数
  51040. NET_USERMANAGER_IMAGE_INFO stuImageInfo[6]; // 图片信息数组
  51041. char szReserved[1024]; // 预留字节
  51042. }NET_DEV_EVENT_HOSPITAL_TALK_CONTROL_INFO;
  51043. ///@brief 站点信息上报类型
  51044. typedef enum tagEM_STATIONINFO_SITE_TYPE
  51045. {
  51046. EM_STATIONINFO_SITE_UNKNOWN, // 未知
  51047. EM_STATIONINFO_SITE_SIGNIN, // 签到/上车
  51048. EM_STATIONINFO_SITE_SIGNOUT, // 签出/下车
  51049. EM_STATIONINFO_SITE_NORMAL, // 正常刷卡,不区分上下车
  51050. }EM_STATIONINFO_SITE_TYPE;
  51051. ///@brief 事件类型 EVENT_IVS_SCHOOL_BUS_SWIPE_CARD (学生刷卡事件)对应的数据块描述信息
  51052. typedef struct tagNET_DEV_EVENT_SCHOOL_BUS_SWIPE_CARD_INFO
  51053. {
  51054. int nChannelID; // 通道号
  51055. int nAction; // 0:脉冲,1:开始, 2:停止
  51056. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51057. NET_TIME_EX stuUTC; // 事件发生的时间
  51058. char szCardID[64]; // 刷卡ID
  51059. NET_TIME_EX stuSwipeTime; // 刷卡时间,本地时间
  51060. char szSiteName[64]; // 站点名称
  51061. EM_STATIONINFO_SITE_TYPE emSiteType; // 站点信息上报类型
  51062. NET_TIME_EX stuStartTime; // 行程开始时间,本地时间
  51063. NET_TIME_EX stuEndTime; // 行程结束时间,本地时间
  51064. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  51065. char szReserved[1024]; // 预留字节
  51066. }NET_DEV_EVENT_SCHOOL_BUS_SWIPE_CARD_INFO;
  51067. ///@brief 门状态
  51068. typedef struct tagNET_DOOR_STATUS_FOR_BOX
  51069. {
  51070. int nNumber; // 编号
  51071. int nStatus; // 状态
  51072. char szReserved[64]; // 预留字节
  51073. }NET_DOOR_STATUS_FOR_BOX;
  51074. ///@brief 事件类型 EVENT_IVS_DOOR_STATUS_FOR_BOX (智能柜门状态上报)对应的数据块描述信息
  51075. typedef struct tagNET_DEV_EVENT_DOOR_STATUS_FOR_BOX_INFO
  51076. {
  51077. int nChannelID; // 通道号
  51078. int nAction; // 0:脉冲,1:开始, 2:停止
  51079. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51080. NET_TIME_EX stuUTC; // 事件发生的时间
  51081. NET_DOOR_STATUS_FOR_BOX stuDoorStatus[256]; // 门状态
  51082. int nDoorStatusNum; // 门状态数量
  51083. char szReserved[1020]; // 预留字节
  51084. }NET_DEV_EVENT_DOOR_STATUS_FOR_BOX_INFO;
  51085. ///@brief 事件类型 EVENT_IVS_COLD_SPOT_WARNING (冷点报警)对应的数据块描述信息
  51086. typedef struct tagNET_DEV_EVENT_COLD_SPOT_WARNING_INFO
  51087. {
  51088. int nChannelID; // 通道号
  51089. int nAction; // 0:脉冲,1:开始, 2:停止
  51090. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51091. NET_TIME_EX stuUTC; // 事件发生的时间
  51092. NET_POINT_EX stuPoint; // 冷点位置 归一化到[0,8191]上的坐标点
  51093. float fColdSpotValue; // 冷点温度值
  51094. NET_TEMPERATURE_UNIT emTemperatureUnit; // 当前配置的温度单位
  51095. char szReserved[1024]; // 预留字节
  51096. }NET_DEV_EVENT_COLD_SPOT_WARNING_INFO;
  51097. ///@brief 事件类型 EVENT_IVS_TRAFFIC_ACCELERATION_RAPID (急加速事件)对应的数据块描述信息
  51098. typedef struct tagNET_DEV_EVENT_TRAFFIC_ACCELERATION_RAPID_INFO
  51099. {
  51100. int nChannelID; // 通道号
  51101. int nAction; // 0:脉冲,1:开始, 2:停止
  51102. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51103. NET_TIME_EX stuUTC; // 事件发生的时间
  51104. UINT nEventID; // 事件编号,用来唯一标志一个事件
  51105. char szName[128]; // 事件名称
  51106. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同。
  51107. int nCountInGroup; // CountInGroup一个事件组内应有的抓拍张数
  51108. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  51109. int nLane; // 表示对应车道号
  51110. double dbPTS; // 相对事件时间戳,单位毫秒
  51111. DH_MSG_OBJECT stuVehicle; // 车辆信息
  51112. DH_MSG_OBJECT stuObject; // 车牌信息
  51113. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 表示交通车辆的数据库记录
  51114. EVENT_COMM_INFO stuCommInfo; // 公共信息
  51115. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  51116. BOOL bHasNonMotor; // 是否有非机动车对象
  51117. int nSequence; // 抓拍序号,如/0,1表示抓拍正常结束,0表示抓拍异常结束
  51118. int nSpeed; // 车速,单位km/h
  51119. int nTriggerType; // 触发类型: -1: 未知 0: 车检器 1: 雷达 2: 视频
  51120. int nMark; // 用于标记抓拍帧
  51121. int nSource; // 视频分析的数据源地址
  51122. int nFrameSequence; // 视频分析帧序号
  51123. int nEventType; // 事件类型掩码, bit0表示报警事件, bit1表示违章事件, 若bit0和bit1都置位则既是报警事件又是违章事件
  51124. char szReserved[1024]; // 预留字节
  51125. }NET_DEV_EVENT_TRAFFIC_ACCELERATION_RAPID_INFO;
  51126. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TURN_SHARP (急转弯事件)对应的数据块描述信息
  51127. typedef struct tagNET_DEV_EVENT_TRAFFIC_TURN_SHARP_INFO
  51128. {
  51129. int nChannelID; // 通道号
  51130. int nAction; // 0:脉冲,1:开始, 2:停止
  51131. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51132. NET_TIME_EX stuUTC; // 事件发生的时间
  51133. UINT nEventID; // 事件编号,用来唯一标志一个事件
  51134. char szName[128]; // 事件名称
  51135. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同。
  51136. int nCountInGroup; // CountInGroup一个事件组内应有的抓拍张数
  51137. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  51138. int nLane; // 表示对应车道号
  51139. double dbPTS; // 相对事件时间戳,单位毫秒
  51140. DH_MSG_OBJECT stuVehicle; // 车辆信息
  51141. DH_MSG_OBJECT stuObject; // 车牌信息
  51142. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 表示交通车辆的数据库记录
  51143. EVENT_COMM_INFO stuCommInfo; // 公共信息
  51144. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  51145. BOOL bHasNonMotor; // 是否有非机动车对象
  51146. int nSequence; // 抓拍序号,如/0,1表示抓拍正常结束,0表示抓拍异常结束
  51147. int nSpeed; // 车速,单位km/h
  51148. int nTriggerType; // 触发类型: -1: 未知 0: 车检器 1: 雷达 2: 视频
  51149. int nMark; // 用于标记抓拍帧
  51150. int nSource; // 视频分析的数据源地址
  51151. int nFrameSequence; // 视频分析帧序号
  51152. char szReserved[1020]; // 预留字节
  51153. }NET_DEV_EVENT_TRAFFIC_TURN_SHARP_INFO;
  51154. ///@brief 事件类型 EVENT_IVS_PASSENGER_FLOW_ALARM (校车上客事件)对应的数据块描述信息
  51155. typedef struct tagNET_DEV_EVENT_PASSENGER_FLOW_ALARM_INFO
  51156. {
  51157. int nChannelID; // 通道号
  51158. int nAction; // 0:脉冲,1:开始, 2:停止
  51159. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51160. NET_TIME_EX stuUTC; // 事件发生的时间
  51161. int nAlarmType; // 报警类型: 0: 未知,不关心, 1: 校车上客事件, 2: 校车下客事件
  51162. NET_TIME stuTime; // 报警产生时间,本地时间
  51163. NET_GPS_STATUS_INFO stuGPSStatus; // GPS状态
  51164. char szCarNo[12]; // 车牌
  51165. UINT nPassengerNum; // 客流人数
  51166. char szReserved[1024]; // 预留字节
  51167. }NET_DEV_EVENT_PASSENGER_FLOW_ALARM_INFO;
  51168. ///@brief 人证驾驶员信息
  51169. typedef struct tagNET_DRIVER_MISMATCH_INFO
  51170. {
  51171. char szFaceID[32]; // 驾驶员ID
  51172. char szOrganization[32]; // 所属公司或者组织
  51173. char szReserved[256]; // 预留字节
  51174. }NET_DRIVER_MISMATCH_INFO;
  51175. ///@brief 人证刷卡信息
  51176. typedef struct tagNET_CARD_MISMATCH_INFO
  51177. {
  51178. char szCardID[32]; // 刷卡ID
  51179. char szOrganization[32]; // 所属公司或者组织
  51180. char szReserved[256]; // 预留字节
  51181. }NET_CARD_MISMATCH_INFO;
  51182. ///@brief 人车车辆信息
  51183. typedef struct tagNET_VEHICLE_MISMATCH_INFO
  51184. {
  51185. char szOrganization[32]; // 所属公司或者组织
  51186. char szReserved[256]; // 预留字节
  51187. }NET_VEHICLE_MISMATCH_INFO;
  51188. ///@brief 事件类型 EVENT_IVS_DRIVER_MISMATCH_CERTIFICATE (司机人证不符事件)对应的数据块描述信息
  51189. typedef struct tagNET_DEV_EVENT_DRIVER_MISMATCH_CERTIFICATE_INFO
  51190. {
  51191. int nChannelID; // 通道号
  51192. int nAction; // 0:脉冲
  51193. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51194. NET_TIME_EX stuUTC; // 事件发生的时间
  51195. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  51196. NET_DRIVER_MISMATCH_INFO stuDriverInfo; // 驾驶员信息
  51197. NET_CARD_MISMATCH_INFO stuCardInfo; // 刷卡信息
  51198. char szReserved[1024]; // 预留字节
  51199. }NET_DEV_EVENT_DRIVER_MISMATCH_CERTIFICATE_INFO;
  51200. ///@brief 事件类型 EVENT_IVS_DRIVER_MISMATCH_VEHICLE (司机人车不符事件)对应的数据块描述信息
  51201. typedef struct tagNET_DEV_EVENT_DRIVER_MISMATCH_VEHICLE_INFO
  51202. {
  51203. int nChannelID; // 通道号
  51204. int nAction; // 0:脉冲
  51205. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51206. NET_TIME_EX stuUTC; // 事件发生的时间
  51207. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  51208. NET_DRIVER_MISMATCH_INFO stuDriverInfo; // 驾驶员信息
  51209. NET_VEHICLE_MISMATCH_INFO stuVehicleInfo; // 车辆信息
  51210. char szReserved[1024]; // 预留字节
  51211. }NET_DEV_EVENT_DRIVER_MISMATCH_VEHICLE_INFO;
  51212. ///@brief 事件类型 EVENT_IVS_CERTIFICATE_MISMATCH_VEHICLE (司机证车不符事件)对应的数据块描述信息
  51213. typedef struct tagNET_DEV_EVENT_CERTIFICATE_MISMATCH_VEHICLE_INFO
  51214. {
  51215. int nChannelID; // 通道号
  51216. int nAction; // 0:脉冲
  51217. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  51218. NET_TIME_EX stuUTC; // 事件发生的时间
  51219. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  51220. NET_CARD_MISMATCH_INFO stuCardInfo; // 驾驶员信息
  51221. NET_VEHICLE_MISMATCH_INFO stuVehicleInfo; // 车辆信息
  51222. char szReserved[1024]; // 预留字节
  51223. }NET_DEV_EVENT_CERTIFICATE_MISMATCH_VEHICLE_INFO;
  51224. ///@brief "电池低电压"附带信息
  51225. typedef struct tagNET_BATTERY_LOW_POWER_INFO
  51226. {
  51227. UINT nVoltage; // 电池电压,单位mV
  51228. UINT nPercent; // 电池电量百分比
  51229. char szReserved[256]; // 预留字段
  51230. }NET_BATTERY_LOW_POWER_INFO;
  51231. ///@brief "温度报警"附带信息
  51232. typedef struct tagNET_TEMP_SENSOR_INFO
  51233. {
  51234. double dbValue; // 温度数值
  51235. char szUnit[8]; // 温度单位, ℃或℉
  51236. char szReserved[256]; // 预留字段
  51237. }NET_TEMP_SENSOR_INFO;
  51238. ///@brief "湿度报警"附带信息
  51239. typedef struct tagNET_HUMIDITY_SENSOR_INFO
  51240. {
  51241. double dbValue; // 湿度
  51242. char szUnit[8]; // 湿度单位, 相对湿度百分比%RH,简写为%
  51243. char szReserved[256]; // 预留字段
  51244. }NET_HUMIDITY_SENSOR_INFO;
  51245. ///@brief 报警类型的附带信息
  51246. typedef struct tagNET_FINANCIAL_ALARM_INFO
  51247. {
  51248. NET_BATTERY_LOW_POWER_INFO stuBatteryLowPower; // "电池低电压"附带信息
  51249. NET_TEMP_SENSOR_INFO stuTempSensor; // "温度报警"附带信息
  51250. NET_HUMIDITY_SENSOR_INFO stuHumiditySensor; // "湿度报警"附带信息
  51251. char szReserved[1024]; // 预留字段
  51252. }NET_FINANCIAL_ALARM_INFO;
  51253. ///@brief 事件类型EVENT_IVS_FINANCIAL_CABINET_ALARM_EVENT(金融业务库异常事件)对应的数据块描述信息
  51254. typedef struct tagNET_DEV_EVENT_FINANCIAL_CABINET_ALARM_EVENT_INFO
  51255. {
  51256. int nChannelID; // 通道号
  51257. int nAction; // 1:开始 2:停止
  51258. char szName[128]; // 事件名称
  51259. double dbPTS; // 时间戳(单位是毫秒)
  51260. NET_TIME_EX stuUTC; // 事件发生的时间
  51261. int nEventID; // 事件ID
  51262. char szUserID[32]; // 报警用户ID
  51263. char szAlarmType[32]; // 智能业务库的报警类型, 具体描述如下:
  51264. // "ShockSensor"- 震动报警 "NetAbort"- 断网报警 "PowerFault"-市电掉电 "TempSensor"-温度报警 "HumiditySensor"-湿度报警
  51265. // "AbnormalOpenDoor"-异常开门 "EmergencyOpenDoor"-应急开门 "DoorNotOpen"-超时未开 "OperTimeOut"-存取操作超时 "FailTooManyTimes"-尝试过多
  51266. // "TrunkAway"-超时未存 "AbnormalWithdraw"-非法领用 "AbnormalDeposit"-非法存入 "Duress"-胁迫报警 "Infrared"-红外报警
  51267. // "SmokingSensor"-烟感报警 "UrgencyButton"-紧急报警 "InvalidAuth"-非法验证 "BatteryLowPower"-电池低电压 "Other"-其他
  51268. NET_FINANCIAL_ALARM_INFO stuAlarmInfo; // szAlarmType指定报警类型的附带信息
  51269. UINT nAlarmLevel; // 报警等级
  51270. char szReserved[1020]; // 预留字段
  51271. }NET_DEV_EVENT_FINANCIAL_CABINET_ALARM_EVENT_INFO;
  51272. ///@brief 事件类型EVENT_IVS_TRAFFIC_RUNASTOP_SIGN(闯行停车标志事件)对应的数据块描述信息
  51273. typedef struct tagNET_DEV_EVENT_TRAFFIC_RUNASTOP_SIGN_INFO
  51274. {
  51275. int nChannelID; // 通道号
  51276. int nAction; // 0:脉冲,1:开始, 2:停止
  51277. char szName[128]; // 事件名称
  51278. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  51279. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  51280. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  51281. UINT nUTCMS; // 事件时间毫秒数
  51282. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  51283. NET_TIME_EX stuUTC; // 事件发生的时间
  51284. UINT nEventID; // 事件ID
  51285. int nLane; // 对应车道号
  51286. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  51287. DH_MSG_OBJECT stuObject; // 车牌信息
  51288. DH_MSG_OBJECT stuVehicle; // 车身信息
  51289. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  51290. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  51291. EVENT_COMM_INFO stuCommInfo; // 公共信息
  51292. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  51293. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  51294. char szReserved[1020]; // 预留字节
  51295. }NET_DEV_EVENT_TRAFFIC_RUNASTOP_SIGN_INFO;
  51296. ///@brief 事件类型EVENT_IVS_TRAFFIC_VEHICLE_OVERLOAD(超员检测事件)对应的数据块描述信息
  51297. typedef struct tagNET_DEV_EVENT_TRAFFIC_VEHICLE_OVERLOAD_INFO
  51298. {
  51299. int nChannelID; // 通道号
  51300. int nAction; // 0:脉冲,1:开始, 2:停止
  51301. char szName[128]; // 事件名称
  51302. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  51303. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  51304. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  51305. UINT nUTCMS; // 事件时间毫秒数
  51306. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  51307. NET_TIME_EX stuUTC; // 事件发生的时间
  51308. UINT nEventID; // 事件ID
  51309. int nLane; // 对应车道号
  51310. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  51311. DH_MSG_OBJECT stuObject; // 车牌信息
  51312. DH_MSG_OBJECT stuVehicle; // 车身信息
  51313. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  51314. EVENT_COMM_INFO stuCommInfo; // 公共信息
  51315. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  51316. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  51317. char szReserved[1024]; // 预留字节
  51318. }NET_DEV_EVENT_TRAFFIC_VEHICLE_OVERLOAD_INFO;
  51319. ///@brief 事件类型EVENT_IVS_DOOR_STATUS(门状态事件)对应的数据块描述信息
  51320. typedef struct tagDEV_EVENT_DOOR_STATUS_INFO
  51321. {
  51322. int nChannelID; // 通道号
  51323. int nAction; // 0:脉冲 1:开始 2:停止
  51324. char szName[128]; // 事件名称
  51325. double PTS; // 时间戳(单位是毫秒)
  51326. NET_TIME_EX UTC; // 事件发生的时间
  51327. int nEventID; // 事件ID
  51328. char szSerialNumber[256]; // 无线设备序列号(智能锁)
  51329. EM_DOOR_STATUS emStatus; // 门禁状态
  51330. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC ,否则用 UTC 字段
  51331. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  51332. BYTE byReserved[970]; // 预留字段
  51333. }DEV_EVENT_DOOR_STATUS_INFO;
  51334. ///@brief 全景图
  51335. typedef struct tagNET_VIS_SCENE_IMAGE
  51336. {
  51337. UINT nOffset; // 在二进制数据块中的偏移
  51338. UINT nLength; // 图片大小, 单位字节
  51339. UINT nWidth; // 图片宽度, 像素
  51340. UINT nHeight; // 图片高度, 像素
  51341. UINT nIndexInData; // 在上传图片数据中的图片序号
  51342. BYTE byReserved[60]; // 预留字段
  51343. } NET_VIS_SCENE_IMAGE;
  51344. ///@brief 热成像全景图
  51345. typedef struct tagNET_THERMAL_SCENE_IMAGE
  51346. {
  51347. UINT nOffset; // 在二进制数据块中的偏移
  51348. UINT nLength; // 图片大小, 单位字节
  51349. UINT nWidth; // 图片宽度, 像素
  51350. UINT nHeight; // 图片高度, 像素
  51351. UINT nIndexInData; // 在上传图片数据中的图片序号
  51352. BYTE byReserved[60]; // 预留字段
  51353. } NET_THERMAL_SCENE_IMAGE;
  51354. ///@brief 事件类型EVENT_IVS_ANATOMY_TEMP_DETECT(人体测温检测事件)对应的数据块描述信息
  51355. typedef struct tagDEV_EVENT_ANATOMY_TEMP_DETECT_INFO
  51356. {
  51357. int nChannelID; // 通道号
  51358. int nAction; // 1:开始 2:停止
  51359. char szName[128]; // 事件名称
  51360. double PTS; // 时间戳(单位是毫秒)
  51361. NET_TIME_EX UTC; // 事件发生的时间
  51362. int nEventID; // 事件ID
  51363. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  51364. UINT nPresetID; // 事件触发的预置点号, 从1开始, 没有该字段,表示预置点未知
  51365. NET_MAN_TEMP_INFO stManTempInfo; // 区域内人员体温信息
  51366. NET_VIS_SCENE_IMAGE stVisSceneImage; // 可见光全景图
  51367. NET_THERMAL_SCENE_IMAGE stThermalSceneImage; // 热成像全景图
  51368. UINT nSequence; // 帧序号
  51369. UINT nEventRelevanceID; // 事件关联ID
  51370. BOOL bIsFaceRecognition; // 是否做过后智能的目标识别
  51371. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  51372. int nImageInfoNum; // 图片信息个数
  51373. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  51374. BYTE byReserved[1004]; // 预留字段
  51375. } DEV_EVENT_ANATOMY_TEMP_DETECT_INFO;
  51376. ///@brief 事件类型 EVENT_IVS_DHOP_CUSTOM 及 EVENT_IVS_DHOP_CUSTOM_ONCE (DHOP自定义事件)对应的数据块描述信息
  51377. typedef struct tagDEV_EVENT_DHOP_CUSTOM_INFO
  51378. {
  51379. int nChannelID; // 通道号
  51380. int nAction; // 0:脉冲 1:开始 2:停止
  51381. char szName[128]; // 事件名称
  51382. NET_TIME_EX UTC; // 事件发生的时间
  51383. int nEventID; // 事件ID
  51384. int nSourceIndex; // 触发源ID
  51385. BYTE byReserved1[4]; // 预留,字节对齐
  51386. NET_DHOP_APP_INFO stuAppInfo; // 事件触发源信息(APP信息)
  51387. char szCustomData[4096]; // 自定义数据
  51388. double PTS; // 时间戳(单位是毫秒)
  51389. char szClass[32]; // 事件所属大类
  51390. BYTE byReserved[2008]; // 预留字节
  51391. } DEV_EVENT_DHOP_CUSTOM_INFO;
  51392. ///@brief 起雾检测事件数据类型
  51393. typedef enum tagEM_FOG_DETECTION_EVENT_TYPE
  51394. {
  51395. EM_FOG_DETECTION_EVENT_TYPE_UNKNOWN, // 未知
  51396. EM_FOG_DETECTION_EVENT_TYPE_REAL, // 实时数据
  51397. EM_FOG_DETECTION_EVENT_TYPE_ALARM, // 报警数据
  51398. }EM_FOG_DETECTION_EVENT_TYPE;
  51399. ///@brief 雾值
  51400. typedef enum tagEM_FOG_LEVEL
  51401. {
  51402. EM_FOG_LEVEL_UNKNOWN, // 未知
  51403. EM_FOG_LEVEL_NO, // 无
  51404. EM_FOG_LEVEL_BLUE, // 蓝色预警
  51405. EM_FOG_LEVEL_YELLOW, // 黄色预警
  51406. EM_FOG_LEVEL_ORANGE, // 橙色预警
  51407. EM_FOG_LEVEL_RED, // 红色预警
  51408. }EM_FOG_LEVEL;
  51409. ///@brief 起雾检测事件雾信息
  51410. typedef struct tagFOG_DETECTION_FOG_INFO
  51411. {
  51412. EM_FOG_LEVEL emFogLevel; // 雾等级
  51413. BYTE byReserved[508]; // 预留字段
  51414. }FOG_DETECTION_FOG_INFO;
  51415. ///@brief 事件类型EVENT_IVS_FOG_DETECTION(起雾检测事件)对应的数据块描述信息
  51416. typedef struct tagDEV_EVENT_FOG_DETECTION
  51417. {
  51418. int nChannelID; // 通道号
  51419. int nAction; // 1:开始 2:停止
  51420. char szName[128]; // 事件名称
  51421. double PTS; // 时间戳(单位是毫秒)
  51422. NET_TIME_EX UTC; // 事件发生的时间
  51423. int nEventID; // 事件ID
  51424. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  51425. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同
  51426. int nCountInGroup; // 一个事件组内的抓拍张数
  51427. int nIndexInGroup; // 一个事件组内的抓拍序号
  51428. int nPresetID; // 预置点号,从1开始有效
  51429. char szPresetName[128]; // 阈值点名称
  51430. EM_FOG_DETECTION_EVENT_TYPE emEventType; // 事件数据类型
  51431. FOG_DETECTION_FOG_INFO stuFogInfo; // 雾信息
  51432. DH_EVENT_FILE_INFO stFileInfo; // 事件对应文件信息
  51433. BYTE byReserved[1024]; // 预留字段
  51434. }DEV_EVENT_FOG_DETECTION;
  51435. ///@brief 事件类型EVENT_IVS_TRAFFIC_VEHICLE_BC(飙车事件)对应的数据块描述信息
  51436. typedef struct tagDEV_EVENT_TRAFFIC_VEHICLE_BC
  51437. {
  51438. int nChannelID; // 通道号
  51439. int nAction; // 0:脉冲
  51440. char szName[128]; // 事件名称
  51441. double PTS; // 时间戳(单位是毫秒)
  51442. NET_TIME_EX UTC; // 事件发生的时间
  51443. int nEventID; // 事件ID
  51444. DH_MSG_OBJECT stuObject; // 车牌信息
  51445. DH_MSG_OBJECT stuVehicle; // 车身信息
  51446. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  51447. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同
  51448. int nCountInGroup; // 一个事件组内的抓拍张数
  51449. int nIndexInGroup; // 一个事件组内的抓拍序号
  51450. int nLane; // 对应车道号
  51451. int nSequence; // 表示抓拍序号,如3,2,1. 1表示抓拍结束,0表示异常结束
  51452. EVENT_COMM_INFO stCommInfo; // 公共信息
  51453. DH_EVENT_FILE_INFO stFileInfo; // 事件对应文件信息
  51454. BYTE byReserved[1024]; // 预留字段
  51455. }DEV_EVENT_TRAFFIC_VEHICLE_BC;
  51456. ///@brief 事件类型 EVENT_IVS_TRAFFIC_MOTOR_OVERLOAD (机动车超载事件)对应的数据块描述信息
  51457. typedef struct tagDEV_EVENT_TRAFFIC_MOTOR_OVERLOAD_INFO
  51458. {
  51459. int nChannelID; // 通道号
  51460. int nAction; // 0:脉冲
  51461. char szName[128]; // 事件名称
  51462. double PTS; // 时间戳(单位是毫秒)
  51463. NET_TIME_EX UTC; // 事件发生的时间
  51464. int nEventID; // 事件ID
  51465. DH_MSG_OBJECT stuObject; // 车牌信息
  51466. DH_MSG_OBJECT stuVehicle; // 车身信息
  51467. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  51468. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  51469. int nLane; // 对应车道号
  51470. int nSequence; // 表示抓拍序号,如3,2,1. 1表示抓拍结束,0表示异常结束
  51471. EVENT_COMM_INFO stCommInfo; // 公共信息
  51472. DH_MSG_OBJECT_SUPPLEMENT stuObjectInfoEx; // 车牌信息拓展字段, 与DH_MSG_OBJECT的合集表示视频分析物体信息
  51473. BYTE byReserved[720]; // 预留字段
  51474. }DEV_EVENT_TRAFFIC_MOTOR_OVERLOAD_INFO;
  51475. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PLATE_OCCLUSION (车牌污损事件)对应的数据块描述信息
  51476. typedef struct tagDEV_EVENT_TRAFFIC_PLATE_OCCLUSION_INFO
  51477. {
  51478. int nChannelID; // 通道号
  51479. int nAction; // 0:脉冲
  51480. char szName[128]; // 事件名称
  51481. double PTS; // 时间戳(单位是毫秒)
  51482. NET_TIME_EX UTC; // 事件发生的时间
  51483. int nEventID; // 事件ID
  51484. DH_MSG_OBJECT stuObject; // 车牌信息
  51485. DH_MSG_OBJECT stuVehicle; // 车身信息
  51486. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  51487. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  51488. int nLane; // 对应车道号
  51489. int nSequence; // 表示抓拍序号,如3,2,1. 1表示抓拍结束,0表示异常结束
  51490. EVENT_COMM_INFO stCommInfo; // 公共信息
  51491. BYTE byReserved[1024]; // 预留字段
  51492. }DEV_EVENT_TRAFFIC_PLATE_OCCLUSION_INFO;
  51493. ///@brief 获取角度
  51494. typedef struct tagNET_CAMERA_PTZ_INFO
  51495. {
  51496. PTZ_SPACE_UNIT stuPosition; // 预置点的坐标和放大倍数
  51497. unsigned int nAngelH; // 热成像横向视场角,单位度,实际角度乘以100
  51498. unsigned int nAngelV; // 热成像纵向视场角,单位度,实际角度乘以100
  51499. char szreserved[60]; // 预留字段
  51500. }NET_CAMERA_PTZ_INFO;
  51501. ///@brief 事件类型 EVENT_IVS_BREAK_RULE_BUILDING_DETECTION (违章建筑检测事件)对应的数据块描述信息
  51502. typedef struct tagDEV_EVENT_BREAK_RULE_BUILDING_DETECTION_INFO
  51503. {
  51504. int nChannelID; // 通道号
  51505. int nAction; // 0:脉冲
  51506. char szName[128]; // 事件名称
  51507. double PTS; // 时间戳(单位是毫秒)
  51508. NET_TIME_EX UTC; // 事件发生的时间
  51509. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  51510. SCENE_IMAGE_INFO stuSceneImageInfo; // 全景广角图(当前事件只有:nOffSet、nLength有效)
  51511. DWORD dwEventID; // 事件ID
  51512. char szreserved[4]; // 字节对齐
  51513. NET_CAMERA_PTZ_INFO stuCameraPtz; // 获取角度
  51514. NET_RECT stuBoundingBox; // 目标矩形框
  51515. int nObjectNum; // 检测到的物体个数
  51516. DH_MSG_OBJECT stuObjects[128]; // 检测到的物体信息
  51517. BYTE byReserved[888]; // 预留字段
  51518. }DEV_EVENT_BREAK_RULE_BUILDIING_DETECTION_INFO;
  51519. ///@brief 事件类型 EVENT_IVS_TRAFFIC_ROAD_ALERT(道路安全预警)对应的数据块描述信息
  51520. typedef struct tagDEV_EVENT_TRAFFIC_ROAD_ALERT_INFO
  51521. {
  51522. int nChannelID; // 通道号
  51523. int nAction; // 0:脉冲
  51524. char szName[128]; // 事件名称
  51525. double PTS; // 时间戳(单位是毫秒)
  51526. NET_TIME_EX UTC; // 事件发生的时间
  51527. int nEventID; // 事件ID
  51528. DH_MSG_OBJECT stuObject; // 车牌信息
  51529. DH_MSG_OBJECT stuVehicle; // 车身信息
  51530. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  51531. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同
  51532. int nCountInGroup; // 一个事件组内的抓拍张数
  51533. int nIndexInGroup; // 一个事件组内的抓拍序号
  51534. int nLane; // 对应车道号
  51535. EVENT_COMM_INFO stCommInfo; // 公共信息
  51536. DH_EVENT_FILE_INFO stFileInfo; // 事件对应文件信息
  51537. int nSequence; // 表示抓拍序号,如3,2,1. 1表示抓拍结束,0表示异常结束
  51538. BYTE byReserved[1020]; // 预留字段
  51539. } DEV_EVENT_TRAFFIC_ROAD_ALERT_INFO;
  51540. ///@brief 事件类型 EVENT_IVS_NONMOTOR_ENTRYING (非机动车进入电梯事件)对应的数据块描述信息
  51541. typedef struct tagDEV_EVENT_NONMOTOR_ENTRYING_INFO
  51542. {
  51543. int nChannelID; // 通道号
  51544. int nAction; // 1:开始 2:停止
  51545. char szName[128]; // 事件名称
  51546. double PTS; // 时间戳(单位是毫秒)
  51547. NET_TIME_EX UTC; // 事件发生的时间
  51548. int nEventID; // 事件ID
  51549. int nRuleID; // 规则ID
  51550. int nSequence; // 视频帧序号
  51551. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  51552. int nObjectNum; // 目标个数
  51553. VA_OBJECT_NONMOTOR stuObjects[8]; // 非机动车目标
  51554. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  51555. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  51556. int nImageInfoNum; // 图片信息个数
  51557. char byReserved[1024]; // 预留字段
  51558. }DEV_EVENT_NONMOTOR_ENTRYING_INFO;
  51559. ///@brief 事件类型 EVENT_IVS_TRAFFIC_NONMOTOR_RUN_REDLIGHT (非机动车闯红灯事件)对应的数据块描述信息
  51560. typedef struct tagDEV_EVENT_TRAFFIC_NONMOTOR_RUN_REDLIGHT_INFO
  51561. {
  51562. int nChannelID; // 通道号
  51563. int nAction; // 0:脉冲事件
  51564. char szName[128]; // 事件名称
  51565. double PTS; // 时间戳(单位是毫秒)
  51566. NET_TIME_EX UTC; // 事件发生的时间
  51567. int nEventID; // 事件ID
  51568. int nSequence; // 视频帧序号
  51569. int nLane; // 车道号
  51570. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车
  51571. EVENT_COMM_INFO stCommInfo; // 公共信息
  51572. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  51573. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  51574. BYTE byReserved[1016]; // 预留字段
  51575. }DEV_EVENT_TRAFFIC_NONMOTOR_RUN_REDLIGHT_INFO;
  51576. ///@brief 事件类型 EVENT_IVS_PRAM_DETECTION (婴儿车检测事件)对应的数据块描述信息
  51577. typedef struct tagDEV_EVENT_PRAM_DETECTION_INFO
  51578. {
  51579. int nChannelID; // 通道号
  51580. int nAction; // 0:脉冲 1:开始 2:停止
  51581. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  51582. double PTS; // 时间戳(单位是毫秒)
  51583. NET_TIME_EX UTC; // 事件发生的时间
  51584. int nEventID; // 事件ID
  51585. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  51586. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  51587. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  51588. int nCountInGroup; // 一个事件组内的抓拍张数
  51589. int nIndexInGroup; // 一个事件组内的抓拍序号
  51590. UINT nPresetID; // 事件触发的预置点号,从1开始, 没有该字段,表示预置点未知
  51591. DH_MSG_OBJECT stuObjects[128]; // 检测到的多个物体
  51592. int nObjectNum; // 检测到的物体个数
  51593. int nDetectRegionNum; // 实际检测到区域个数
  51594. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  51595. BYTE byReversed[1024]; // 保留字节
  51596. }DEV_EVENT_PRAM_DETECTION_INFO;
  51597. ///@brief 事件类型 EVENT_IVS_BIG_BAGGAGE_DETECTION (大件行李箱检测事件)对应的数据块描述信息
  51598. typedef struct tagDEV_EVENT_BIG_BAGGAGE_DETECTION_INFO
  51599. {
  51600. int nChannelID; // 通道号
  51601. int nAction; // 0:脉冲 1:开始 2:停止
  51602. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  51603. double PTS; // 时间戳(单位是毫秒)
  51604. NET_TIME_EX UTC; // 事件发生的时间
  51605. int nEventID; // 事件ID
  51606. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  51607. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  51608. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  51609. int nCountInGroup; // 一个事件组内的抓拍张数
  51610. int nIndexInGroup; // 一个事件组内的抓拍序号
  51611. UINT nPresetID; // 事件触发的预置点号,从1开始, 没有该字段,表示预置点未知
  51612. DH_MSG_OBJECT stuObjects[128]; // 检测到的多个物体
  51613. int nObjectNum; // 检测到的物体个数
  51614. int nDetectRegionNum; // 实际检测到区域个数
  51615. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  51616. BYTE byReversed[1024]; // 保留字节
  51617. }DEV_EVENT_BIG_BAGGAGE_DETECTION_INFO;
  51618. ///@brief 事件类型 EVENT_IVS_TICKET_EVADE_DETECTION (逃票检测事件)对应的数据块描述信息
  51619. typedef struct tagDEV_EVENT_TICKET_EVADE_DETECTION_INFO
  51620. {
  51621. int nChannelID; // 通道号
  51622. int nAction; // 0:脉冲 1:开始 2:停止
  51623. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  51624. double PTS; // 时间戳(单位是毫秒)
  51625. NET_TIME_EX UTC; // 事件发生的时间
  51626. int nEventID; // 事件ID
  51627. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  51628. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  51629. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  51630. int nCountInGroup; // 一个事件组内的抓拍张数
  51631. int nIndexInGroup; // 一个事件组内的抓拍序号
  51632. UINT nPresetID; // 事件触发的预置点号,从1开始, 没有该字段,表示预置点未知
  51633. DH_MSG_OBJECT stuObjects[128]; // 检测到的多个物体
  51634. int nObjectNum; // 检测到的物体个数
  51635. int nDetectRegionNum; // 实际检测到区域个数
  51636. DH_POINT stuDetectRegion[DH_MAX_DETECT_REGION_NUM]; // 检测区域
  51637. BYTE byReversed[1024]; // 保留字节
  51638. }DEV_EVENT_TICKET_EVADE_DETECTION_INFO;
  51639. ///@brief 事件类型 EVENT_IVS_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE (占用应急车道事件)对应的数据块描述信息
  51640. typedef struct tagDEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO
  51641. {
  51642. int nChannelID; // 通道号
  51643. int nAction; // 0:脉冲事件
  51644. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  51645. DWORD PTS; // 时间戳(单位是毫秒)
  51646. NET_TIME_EX UTC; // 事件发生的时间
  51647. int nEventID; // 事件ID
  51648. int nLane; // 对应车道号
  51649. DH_MSG_OBJECT stuObject; // 检测到的物体
  51650. BYTE byReserved1[4]; // 字节对齐
  51651. DH_MSG_OBJECT stuVehicle; // 车身信息
  51652. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  51653. BYTE byReserved2[4]; // 字节对齐
  51654. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
  51655. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  51656. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  51657. EVENT_COMM_INFO stuCommInfo; // 公共信息
  51658. BYTE byReserved[1024]; // 预留字段
  51659. }DEV_EVENT_TRAFFIC_VEHICLE_IN_EMERGENCY_LANE_INFO;
  51660. ///@brief 物体动作支持类型
  51661. typedef enum tagEM_OBJECT_ACTION
  51662. {
  51663. EM_OBJECT_ACTION_UNKNOWN, // 未知动作
  51664. EM_OBJECT_ACTION_APPEAR, // "Appear": 第一次出现在检测区域中, 或者跟踪时物理分离动作中尚未确认的新物体
  51665. EM_OBJECT_ACTION_MOVE, // "Move": 正在运动 物体被正常跟踪
  51666. EM_OBJECT_ACTION_STAY, // "Stay": 物体停止运动这个物体不会在出现在下一帧物体列表中,物体开始移动后再恢复在列表中
  51667. EM_OBJECT_ACTION_REMOVE, // "Remove": 物体从原来的区域移除,或者被遮盖,或者跟踪失败
  51668. EM_OBJECT_ACTION_DISAPPERAR, // "Disappear": 运动到跟踪区域之外,或者达到了算法跟踪物体的上限而被清除,消失的物体ID将不再出现
  51669. EM_OBJECT_ACTION_SPLIT, // "Split": 从其他物体中分离出来,可以用来检测物体遗留,关联ID表示从这个ID对应物体分离
  51670. EM_OBJECT_ACTION_MERGE, // "Merge": 合并到其他物体,可以用来检查物体保全,关联ID表示合并到这个ID对相应的物体
  51671. EM_OBJECT_ACTION_RENAME, // "Rename": 无法确定分离动作中某个物体是原先同一个物体,关联ID表示暂时使用的新的ID
  51672. }EM_OBJECT_ACTION;
  51673. ///@brief 异物物体 ForeignMatterObjects
  51674. typedef struct tagFOREIGN_MATTER_OBJECT
  51675. {
  51676. DWORD dwObjectID; // 物体ID, 每个ID表示一个唯一的物体
  51677. EM_OBJECT_ACTION emAction; // 物体动作类型
  51678. NET_RECT stuBoundingBox; // 跟踪物体包围盒
  51679. BYTE byReserved[256]; // 保留字节
  51680. }FOREIGN_MATTER_OBJECT;
  51681. ///@brief 事件类型 EVENT_IVS_POWERLINE_FOREIGN_DETECITON 对应数据
  51682. typedef struct tagDEV_EVENT_POWERLINE_FOREIGN_DETEC_INFO
  51683. {
  51684. int nChannelID; // 通道号
  51685. int nAction; // 事件动作 1-开始. 2-结束
  51686. char szName[128]; // 事件名称
  51687. DWORD PTS; // 时间戳(单位是毫秒)
  51688. NET_TIME_EX UTC; // 事件发生的时间
  51689. int nEventID; // 事件ID
  51690. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  51691. int nRuleID; // 智能事件规则编号, 缺省为0
  51692. int nCount; // 事件触发次数
  51693. int nPresetID; // 事件触发的预置点号, 缺省为0
  51694. int nDetectRegionNum; // 规则检测区域顶点数
  51695. NET_POINT stuDetectRegion[20]; // 规则检测区域
  51696. int nForeignMatterNum; // 异物物体实际个数
  51697. FOREIGN_MATTER_OBJECT *pForeignMatter; // 异物物体信息
  51698. void *pReserved; // 字节对齐
  51699. BYTE byReserved[1024]; // 保留
  51700. }DEV_EVENT_POWERLINE_FOREIGN_DETEC_INFO;
  51701. ///@brief 触发时机类型
  51702. typedef enum tagEM_TRIGGER_OCCUR_TYPE
  51703. {
  51704. EM_TRIGGER_OCCUR_TYPE_UNKNOWN = -1, // 未知
  51705. EM_TRIGGER_OCCUR_TYPE_ENTER, // 进入
  51706. EM_TRIGGER_OCCUR_TYPE_LEAVE, // 离开
  51707. }EM_TRIGGER_OCCUR_TYPE;
  51708. ///@brief 抓拍过程结束类型
  51709. typedef enum tagEM_CAPTURE_PROCESS_END_TYPE
  51710. {
  51711. EM_CAPTURE_PROCESS_END_TYPE_UNKNOWN = -1, // 未知
  51712. EM_CAPTURE_PROCESS_END_TYPE_ABNORMAL, // 异常
  51713. EM_CAPTURE_PROCESS_END_TYPE_NORMAL, // 正常
  51714. }EM_CAPTURE_PROCESS_END_TYPE;
  51715. ///@brief 雷达上报车辆信息
  51716. typedef struct tagRADAR_REPORTS_VEHICLE_INFO
  51717. {
  51718. UINT nVehicleId; // 车辆ID
  51719. UINT nVehicleLength; // 车辆长度(单位:厘米)
  51720. UINT nVehicleWidth; // 车辆宽度(单位:厘米)
  51721. UINT nVehicleHeight; // 车辆高度(单位:厘米)
  51722. UINT nVehicleVolume; // 车辆体积(单位:立方厘米)
  51723. UINT nLaneID; // 车道号
  51724. EM_VEHICLE_DRIVING_DIRECTION emDrivingDirection; // 车辆行驶方向(相对车道方向)
  51725. char szDetectTime[32]; // 车辆到达雷达检测位置的时间
  51726. UINT nVehicleRailingHigh; // 车辆的挡板高度(单位:厘米)
  51727. UINT nVehicleSpeed; // 车辆速度(单位:千米/小时)
  51728. EM_RADAR_DETECTION_VEHICLE_TYPE emVehicleType; // 车辆类型
  51729. UINT nAxisNum; // 车辆车轴个数
  51730. UINT nAxisType; // 车辆车轴类型
  51731. BYTE byResverd[260]; // 保留字节
  51732. }RADAR_REPORTS_VEHICLE_INFO;
  51733. ///@brief 事件类型 EVENT_IVS_TRAFFIC_CAR_MEASUREMENT(交通卡口测量(车辆长、宽、高度、重量等)事件) 对应数据
  51734. typedef struct tagDEV_EVENT_TRAFFIC_CAR_MEASUREMENT_INFO
  51735. {
  51736. int nChannelID; // 通道号
  51737. int nAction; // 0:脉冲
  51738. char szName[128]; // 事件名称
  51739. double PTS; // 时间戳(单位是毫秒)
  51740. NET_TIME_EX UTC; // 事件发生的时间
  51741. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  51742. UINT nEventID; // 事件ID
  51743. UINT nSpeed; // 车速,单位km/h
  51744. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  51745. EM_TRIGGER_OCCUR_TYPE emTriggerOccur; // 触发时机
  51746. UINT nMark; // 标记抓拍帧
  51747. UINT nSource; // 视频分析的数据源地址
  51748. UINT nFrameSequence; // 视频分析帧序号
  51749. int nLaneID; // 车道号
  51750. NET_TIME_EX stuRedLightStartTime; // 红灯开始的时间
  51751. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  51752. EVENT_CARD_INFO stuCardInfo; // 卡片信息
  51753. EM_VEHICLE_DRIVING_DIRECTION emDrivingDirection; // 车辆行驶方向(相对车道方向)
  51754. EM_TRFAFFIC_LIGHT_TYPE emLightState; // 交通信号灯类型
  51755. EM_OPEN_STROBE_STATE emOpenStrobeState; // 开闸状态
  51756. EM_VEHICLE_DIRECTION emVehicleDirection; // 抓拍车的位置
  51757. NET_SAFEBELT_STATE emMainSeat; // 主驾驶座位安全带状态
  51758. NET_SAFEBELT_STATE emSlaveSeat; // 副驶座位安全带状态
  51759. EVENT_PLATE_INFO stuPlateInfo; // 车辆信息,记录了车头、车尾车牌号和车牌颜色
  51760. NET_CAR_WEIGHT_INFO stuCarWeightInfo; // 称重系统车辆信息
  51761. RADAR_REPORTS_VEHICLE_INFO stuRadarReportsVehicleInfo; // 雷达上报车辆信息
  51762. EVENT_COMM_INFO stuCommInfo; // 公共信息
  51763. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  51764. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  51765. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  51766. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  51767. BYTE byResersed[1020]; // 保留字节
  51768. }DEV_EVENT_TRAFFIC_CAR_MEASUREMENT_INFO;
  51769. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TURN_RIGHT_OVER_LINE 右转弯压线事件
  51770. typedef struct tagDEV_EVENT_TRAFFIC_TURN_RIGHT_OVER_LINE_INFO
  51771. {
  51772. char szName[128]; // 事件名称
  51773. int nChannelID; // 通道号
  51774. int nAction; // 0:脉冲
  51775. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同
  51776. int nCountInGroup; // 一个事件组内的抓拍张数
  51777. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  51778. NET_TIME_EX UTC; // 事件发生的时间,单位秒
  51779. double dbPTS; // 时间戳(单位是毫秒)
  51780. DH_MSG_OBJECT stuVehicle; // 车身信息
  51781. DH_MSG_OBJECT stuObject; // 车牌信息
  51782. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  51783. UINT nEventID; // 事件编号,用来唯一标志一个事件
  51784. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  51785. int nMark; // 用于标记抓拍帧
  51786. int nSource; // 视频分析的数据源地址
  51787. int nFrameSequence; // 视频帧序号
  51788. int nSpeed; // 车辆实际速度(单位: km/h)
  51789. int nLane; // 对应的车道号
  51790. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  51791. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  51792. EVENT_COMM_INFO stCommInfo; // 公共信息
  51793. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  51794. BYTE byReserved[1020]; // 保留字节
  51795. }DEV_EVENT_TRAFFIC_TURN_RIGHT_OVER_LINE_INFO;
  51796. ///@brief 事件类型 EVENT_IVS_TRAFFIC_DRIVE_ON_LINE(骑线行驶事件) 对应数据
  51797. typedef struct tagDEV_EVENT_TRAFFIC_DRIVE_ON_LINE_INFO
  51798. {
  51799. char szName[128]; // 事件名称
  51800. int nChannelID; // 通道号
  51801. int nAction; // 0:脉冲
  51802. int nGroupID; // 事件组ID,同一辆车抓拍过程内GroupID相同
  51803. int nCountInGroup; // 一个事件组内的抓拍张数
  51804. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  51805. NET_TIME_EX UTC; // 事件发生的时间
  51806. double dbPTS; // 时间戳(单位是毫秒)
  51807. DH_MSG_OBJECT stuVehicle; // 车身信息
  51808. DH_MSG_OBJECT stuPlateObject; // 车牌信息
  51809. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  51810. UINT nEventID; // 事件编号,用来唯一标志一个事件
  51811. int nLane; // 对应的车道号
  51812. int nSequence; // 抓拍序号,如3-2-1/0,1表示抓拍正常结束,0表示抓拍异常结束
  51813. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  51814. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  51815. EVENT_COMM_INFO stCommInfo; // 公共信息
  51816. BYTE byReserved[1024]; // 保留字节
  51817. } DEV_EVENT_TRAFFIC_DRIVE_ON_LINE_INFO;
  51818. ///@brief 事件类型 EVENT_IVS_OBJECT_PLACEMENT_DETECTION(物品放置检测事件) 对应数据
  51819. typedef struct tagDEV_EVENT_OBJECT_PLACEMENT_DETECTION_INFO
  51820. {
  51821. char szName[128]; // 事件名称
  51822. int nChannelID; // 通道号
  51823. int nAction; // 0:脉冲
  51824. double dbPTS; // 时间戳(单位是毫秒)
  51825. NET_TIME_EX UTC; // 事件发生的时间
  51826. UINT nUTCMS; // 事件时间毫秒数
  51827. UINT nEventID; // 事件编号,用来唯一标志一个事件
  51828. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  51829. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  51830. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  51831. UINT nPreRecord; // 预录时长, 单位秒
  51832. DH_MSG_OBJECT stuObject; // 物体信息数据
  51833. SCENE_IMAGE_INFO stuSceneImage; // 广角图
  51834. int nObjectCount; // 检测目标物体的个数
  51835. DH_MSG_OBJECT_EX2 stuObjects[128]; // 表示检测到的物体信息 有Objects, 以Objects为准,无Objects, 以Object为准,为兼容老的客户端,有Objects的,Object也要填数据
  51836. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  51837. int nImageInfoNum; // 图片信息个数
  51838. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  51839. char Reserved[1012]; // 保留字节
  51840. } DEV_EVENT_OBJECT_PLACEMENT_DETECTION_INFO;
  51841. ///@brief 事件类型 EVENT_IVS_OBJECT_REMOVAL_DETECTION(物品拿取检测事件) 对应数据
  51842. typedef struct tagDEV_EVENT_OBJECT_REMOVAL_DETECTION_INFO
  51843. {
  51844. char szName[128]; // 事件名称
  51845. int nChannelID; // 通道号
  51846. int nAction; // 0:脉冲
  51847. double dbPTS; // 时间戳(单位是毫秒)
  51848. NET_TIME_EX UTC; // 事件发生的时间
  51849. UINT nUTCMS; // 事件时间毫秒数
  51850. UINT nEventID; // 事件编号,用来唯一标志一个事件
  51851. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  51852. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  51853. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  51854. UINT nPreRecord; // 预录时长, 单位秒
  51855. DH_MSG_OBJECT stuObject; // 物体信息数据
  51856. SCENE_IMAGE_INFO stuSceneImage; // 广角图
  51857. int nObjectCount; // 检测目标物体的个数
  51858. DH_MSG_OBJECT_EX2 stuObjects[128]; // 表示检测到的物体信息 有Objects, 以Objects为准,无Objects, 以Object为准,为兼容老的客户端,有Objects的,Object也要填数据
  51859. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  51860. int nImageInfoNum; // 图片信息个数
  51861. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  51862. char Reserved[1012]; // 保留字节
  51863. } DEV_EVENT_OBJECT_REMOVAL_DETECTION_INFO;
  51864. ///@brief 事件类型 EVENT_IVS_MANUAL_ALARM (人工报警事件) 对应的数据描述信息
  51865. typedef struct tagDEV_EVENT_MANUAL_ALARM_INFO
  51866. {
  51867. int nAction; // 1:开始 2:停止
  51868. int nChannel; // 通道号
  51869. NET_TIME_EX UTC; // 事件发生的时间
  51870. int nEventID; // 事件ID
  51871. int nImageNum; // 有效stuImages图片个数
  51872. SCENE_IMAGE_INFO stuImages[3]; // 图片信息, 最大支持3张图
  51873. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  51874. char szName[128]; // 事件名称
  51875. UINT nACK; // 确认ID
  51876. int nGroupID; // 事件组ID
  51877. double dbPTS; // 时间戳(单位是毫秒)
  51878. UINT nUTCMS; // 事件时间毫秒数
  51879. int nCountInGroup; // 一个事件组内应有的抓拍张数
  51880. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  51881. int nMark; // 抓拍帧标记
  51882. int nFrameSequence; // 视频分析帧序号
  51883. int nLane; // 车道号
  51884. int nSequence; // 抓拍序号,如/0,1表示抓拍正常结束,0表示抓拍异常结束
  51885. DH_MSG_OBJECT_EX2* pstuVehicle; // 车辆信息(由sdk管理的内存)
  51886. DH_MSG_OBJECT_EX2* pstuObject; // 车牌信息(由sdk管理的内存)
  51887. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO* pstuTrafficCar; // 交通车辆的数据库记录(由sdk管理的内存)
  51888. EVENT_COMM_INFO* pstuCommInfo; // 公共信息(由sdk管理的内存)
  51889. BYTE byReserved[836 - 4*POINTERSIZE];// 保留字节
  51890. }DEV_EVENT_MANUAL_ALARM_INFO;
  51891. ///@brief 安检图片类型
  51892. typedef enum tagEM_SECURITY_IMAGE_TYPE
  51893. {
  51894. EM_SECURITY_IMAGE_UNKNOWN = -1, // 未知
  51895. EM_SECURITY_IMAGE_INSPECTOR, // 安检员图片
  51896. EM_SECURITY_IMAGE_PACKAGE // 包裹图片
  51897. }EM_SECURITY_IMAGE_TYPE;
  51898. ///@brief 安检图片信息
  51899. typedef struct tagNET_SECURITY_IMAGE_LIST
  51900. {
  51901. EM_SECURITY_IMAGE_TYPE emImageType; // 安检图片类型
  51902. unsigned int nOffset; // 图片偏移
  51903. unsigned int nLen; // 图片长度
  51904. char szReserved[60]; // 保留字节
  51905. } NET_SECURITY_IMAGE_LIST;
  51906. ///@brief 事件类型EVENT_IVS_SECURITY_INSPECTOR_LOOKAROUND (安检员左顾右盼报警事件)对应的数据块描述信息
  51907. typedef struct tagDEV_EVENT_SECURITY_INSPECTOR_LOOKAROUND_INFO
  51908. {
  51909. int nChannelID; // 通道号
  51910. int nAction; // 事件动作, 1:开始 2:停止
  51911. char szName[128]; // 事件名称
  51912. double dbPTS; // 时间戳(单位是毫秒)
  51913. NET_TIME_EX stuUTC; // 事件发生的时间
  51914. char szUserName[32]; // 用户名称
  51915. NET_SECURITY_IMAGE_LIST stuImageList[32]; // 安检图片信息
  51916. unsigned int nImageListCount; // 安检图片信息个数
  51917. char szReserved[1020]; // 保留字节,留待扩展.
  51918. } DEV_EVENT_SECURITY_INSPECTOR_LOOKAROUND_INFO;
  51919. ///@brief 事件类型EVENT_IVS_SECURITY_INSPECTOR_LOWERHEAD (安检员低头报警事件)对应的数据块描述信息
  51920. typedef struct tagDEV_EVENT_SECURITY_INSPECTOR_LOWERHEAD_INFO
  51921. {
  51922. int nChannelID; // 通道号
  51923. int nAction; // 事件动作, 1:开始 2:停止
  51924. char szName[128]; // 事件名称
  51925. double dbPTS; // 时间戳(单位是毫秒)
  51926. NET_TIME_EX stuUTC; // 事件发生的时间
  51927. char szUserName[32]; // 用户名称
  51928. NET_SECURITY_IMAGE_LIST stuImageList[32]; // 安检图片信息
  51929. unsigned int nImageListCount; // 安检图片信息个数
  51930. char szReserved[1020]; // 保留字节,留待扩展.
  51931. } DEV_EVENT_SECURITY_INSPECTOR_LOWERHEAD_INFO;
  51932. ///@brief 事件类型EVENT_IVS_SECURITY_INSPECTOR_TIRED (安检员疲劳报警事件)对应的数据块描述信息
  51933. typedef struct tagDEV_EVENT_SECURITY_INSPECTOR_TIRED_INFO
  51934. {
  51935. int nChannelID; // 通道号
  51936. int nAction; // 事件动作, 1:开始 2:停止
  51937. char szName[128]; // 事件名称
  51938. double dbPTS; // 时间戳(单位是毫秒)
  51939. NET_TIME_EX stuUTC; // 事件发生的时间
  51940. char szUserName[32]; // 用户名称
  51941. NET_SECURITY_IMAGE_LIST stuImageList[32]; // 安检图片信息
  51942. unsigned int nImageListCount; // 安检图片信息个数
  51943. char szReserved[1020]; // 保留字节,留待扩展.
  51944. } DEV_EVENT_SECURITY_INSPECTOR_TIRED_INFO;
  51945. ///@brief 事件类型EVENT_IVS_SECURITY_INSPECTOR_YAWN (安检员打哈欠报警事件)对应的数据块描述信息
  51946. typedef struct tagDEV_EVENT_SECURITY_INSPECTOR_YAWN_INFO
  51947. {
  51948. int nChannelID; // 通道号
  51949. int nAction; // 事件动作, 1:开始 2:停止
  51950. char szName[128]; // 事件名称
  51951. double dbPTS; // 时间戳(单位是毫秒)
  51952. NET_TIME_EX stuUTC; // 事件发生的时间
  51953. char szUserName[32]; // 用户名称
  51954. NET_SECURITY_IMAGE_LIST stuImageList[32]; // 安检图片信息
  51955. unsigned int nImageListCount; // 安检图片信息个数
  51956. char szReserved[1020]; // 保留字节,留待扩展.
  51957. } DEV_EVENT_SECURITY_INSPECTOR_YAWN_INFO;
  51958. ///@brief 事件类型EVENT_IVS_AIPICK_DETECT (智能拾音器语音识别事件)对应的数据块描述信息
  51959. typedef struct tagDEV_EVENT_AIPICK_DETECT_INFO
  51960. {
  51961. int nChannelID; // 通道号
  51962. int nAction; // 0:脉冲
  51963. char szName[128]; // 事件名称
  51964. double dbPTS; // 时间戳(单位是毫秒)
  51965. NET_TIME_EX stuUTC; // 事件发生的时间
  51966. int nEventID; // 事件ID
  51967. char szContent[256]; // 语音识别转文本的字符
  51968. char szReserved[1024]; // 保留字节,留待扩展
  51969. } DEV_EVENT_AIPICK_DETECT_INFO;
  51970. ///@brief 交通灯故障状态
  51971. typedef struct tagNET_TRAFFIC_LIGHT_FAULT_STATES
  51972. {
  51973. UINT nStraightLightMask[3]; //直行灯故障状态, 0-绿灯 1-红灯 2-黄灯 非0表示信号灯有故障
  51974. UINT nTurnLeftLightMask[3]; //左转灯故障状态, 0-绿灯 1-红灯 2-黄灯 非0表示信号灯有故障
  51975. UINT nTurnRightLightMask[3]; //右转灯故障状态, 0-绿灯 1-红灯 2-黄灯 非0表示信号灯有故障
  51976. UINT nUTurnLightMask[3]; //掉头灯故障状态, 0-绿灯 1-红灯 2-黄灯 非0表示信号灯有故障
  51977. char szReserved[512]; // 保留字节,留待扩展
  51978. } NET_TRAFFIC_LIGHT_FAULT_STATES;
  51979. ///@brief 交通灯故障类型
  51980. typedef struct tagNET_TRAFFIC_LIGHT_FAULT_TYPE
  51981. {
  51982. UINT nStraightLightFaultType[4]; //直行灯故障类型, 0-正常 1-不亮 2-长亮 3-闪亮 非0表示信号灯有故障
  51983. UINT nTurnLeftLightFaultType[4]; //直行灯故障类型, 0-正常 1-不亮 2-长亮 3-闪亮 非0表示信号灯有故障
  51984. UINT nTurnRightLightFaultType[4];//直行灯故障类型, 0-正常 1-不亮 2-长亮 3-闪亮 非0表示信号灯有故障
  51985. UINT nUTurnLightFaultType[4]; //直行灯故障类型, 0-正常 1-不亮 2-长亮 3-闪亮 非0表示信号灯有故障
  51986. char szReserved[512]; // 保留字节,留待扩展
  51987. } NET_TRAFFIC_LIGHT_FAULT_TYPE;
  51988. ///@brief 事件类型EVENT_IVS_TRAFFIC_LIGHT_FAULT (交通灯故障报警事件)对应的数据块描述信息
  51989. typedef struct tagDEV_EVENT_TRAFFIC_LIGHT_FAULT_INFO
  51990. {
  51991. int nChannelID; // 通道号
  51992. int nAction; // 0:脉冲
  51993. char szName[128]; // 事件名称
  51994. double dbPTS; // 时间戳(单位是毫秒)
  51995. NET_TIME_EX stuUTC; // 事件发生的时间
  51996. int nEventID; // 事件ID
  51997. NET_TRAFFIC_LIGHT_FAULT_STATES stuFaultStates; // 交通灯故障状态
  51998. NET_TRAFFIC_LIGHT_FAULT_TYPE stuFaultType; // 交通灯故障类型
  51999. EM_FAULT_DETECT_SOURCE_TYPE emDetectSource; // 交通灯故障检测源
  52000. char szReserved[1024]; // 保留字节,留待扩展
  52001. } DEV_EVENT_TRAFFIC_LIGHT_FAULT_INFO;
  52002. ///@brief 事件类型EVENT_IVS_TRAFFIC_PARKING_BACKING (出入口倒车驶离事件)对应的数据块描述信息
  52003. typedef struct tagDEV_EVENT_TRAFFIC_PARKING_BACKING_INFO
  52004. {
  52005. int nChannelID; // 通道号
  52006. int nAction; // 0:脉冲
  52007. char szName[128]; // 事件名称
  52008. double dbPTS; // 时间戳(单位是毫秒)
  52009. NET_TIME_EX stuUTC; // 事件发生的时间
  52010. int nEventID; // 事件ID
  52011. /*以上为公共字段*/
  52012. int nGroupID; // nGroupID事件组ID,同一物体抓拍过程内nGroupID相同
  52013. int nCountInGroup; // nCountInGroup一个事件组内的抓拍张数
  52014. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号
  52015. DH_MSG_OBJECT stuObject; // 车牌信息
  52016. DH_MSG_OBJECT stuVehicle; // 车身信息
  52017. EM_TRIGGER_TYPE emTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  52018. int nMark; // 底层产生的触发抓拍帧标记
  52019. int nFrameSequence; // 视频分析帧序号
  52020. int nLane; // 对应车道号
  52021. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  52022. int nSpeed; // 车速,单位km/h
  52023. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  52024. EVENT_COMM_INFO stuCommInfo; // 公共信息
  52025. char szReserved[1024]; // 保留字节,留待扩展
  52026. } DEV_EVENT_TRAFFIC_PARKING_BACKING_INFO;
  52027. ///@brief 事件类型 EVENT_IVS_TRAFFIC_MOTOR_STRICTLY_PROHIBIT_MANNED (违法载人事件)对应的数据块描述信息
  52028. typedef struct tagDEV_EVENT_TRAFFIC_MOTOR_STRICTLY_PROHIBIT_MANNED_INFO
  52029. {
  52030. int nChannelID; // 通道号
  52031. int nAction; // 0:脉冲
  52032. char szName[128]; // 事件名称
  52033. double dbPTS; // 时间戳(单位是毫秒)
  52034. NET_TIME_EX stuUTC; // 事件发生的时间
  52035. int nEventID; // 事件ID
  52036. /*以上为公共字段*/
  52037. int nGroupID; // nGroupID事件组ID,同一物体抓拍过程内nGroupID相同
  52038. int nCountInGroup; // nCountInGroup一个事件组内的抓拍张数
  52039. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号
  52040. DH_MSG_OBJECT stuObject; // 车牌信息
  52041. DH_MSG_OBJECT stuVehicle; // 车身信息
  52042. int nLane; // 对应车道号
  52043. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  52044. int nHumanNum; // 载人数
  52045. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  52046. EVENT_COMM_INFO stuCommInfo; // 公共信息
  52047. int nSpeed; // 车速,单位km/h
  52048. char szReserved[1020]; // 保留字节,留待扩展
  52049. } DEV_EVENT_TRAFFIC_MOTOR_STRICTLY_PROHIBIT_MANNED_INFO;
  52050. ///@brief 消费记录类型
  52051. typedef enum tagEM_CONSUMPTION_EVENT_TYPE
  52052. {
  52053. EM_CONSUMPTION_EVENT_TYPE_UNKNOWN = -1, // 未知
  52054. EM_CONSUMPTION_EVENT_TYPE_QUOTA, // 定额消费事件
  52055. EM_CONSUMPTION_EVENT_TYPE_NONQUOTA, // 非定额消费事件
  52056. EM_CONSUMPTION_EVENT_TYPE_DEPOSIT, // 充值事件
  52057. EM_CONSUMPTION_EVENT_TYPE_RESTORE, // 末次返还事件
  52058. } EM_CONSUMPTION_EVENT_TYPE;
  52059. ///@brief 消费事件
  52060. typedef struct tagDEV_EVENT_CONSUMPTION_EVENT_INFO
  52061. {
  52062. int nChannelID; // 通道号
  52063. int nAction; // 0:脉冲
  52064. char szName[128]; // 事件名称
  52065. double dbPTS; // 时间戳(单位是毫秒)
  52066. NET_TIME_EX stuUTC; // 事件发生的时间
  52067. int nEventID; // 事件ID
  52068. /*以上为公共字段*/
  52069. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 UTC,否则用 stuTime 字段
  52070. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  52071. UINT nRecNo; // 记录集编号,只读
  52072. UINT nBlockId; // 上报事件数据序列号从1开始自增
  52073. NET_ACCESS_CTL_EVENT_TYPE emType; // 事件类型
  52074. EM_CONSUMPTION_STATUS emStatus; // 消费结果
  52075. NET_ACCESSCTLCARD_TYPE emCardType; // 卡类型
  52076. EM_USER_TYPE emUserType; // 用户类型
  52077. NET_ACCESSCTLCARD_STATE emCardStatus; // 卡状态
  52078. NET_ACCESS_DOOROPEN_METHOD emMethod; // 开门方式
  52079. char szCardNo[16]; // 卡号
  52080. char szReaderID[32]; // 读卡器ID
  52081. char szUserID[12]; // 用户ID
  52082. UINT nErrorCode; // 消费失败的原因,配合 emStatus 使用
  52083. // 0x00 没有错误
  52084. // 0x10 未授权
  52085. // 0x11 卡挂失或注销
  52086. // 0x12 没有该门权限
  52087. // 0x13 开门模式错误
  52088. // 0x14 有效期错误
  52089. // 0x15 防反潜模式
  52090. // 0x16 胁迫报警未打开
  52091. // 0x17 门常闭状态
  52092. // 0x18 AB互锁状态
  52093. // 0x19 巡逻卡
  52094. // 0x1A 设备处于闯入报警状态
  52095. // 0x20 时间段错误
  52096. // 0x21 假期内开门时间段错误
  52097. // 0x30 需要先验证有首卡权限的卡片
  52098. // 0x40 卡片正确,输入密码错误
  52099. // 0x41 卡片正确,输入密码超时
  52100. // 0x42 卡片正确,输入信息错误
  52101. // 0x43 卡片正确,输入信息超时
  52102. // 0x44 信息正确,输入密码错误
  52103. // 0x45 信息正确,输入密码超时
  52104. // 0x50 组合开门顺序错误
  52105. // 0x51 组合开门需要继续验证
  52106. // 0x60 验证通过,控制台未授权
  52107. // 0x61 卡片正确,信息错误
  52108. // 0x62 卡片正确,信息超时
  52109. // 0x63 重复进入
  52110. // 0x64 未授权,需要后端平台识别
  52111. // 0x65 温度异常
  52112. // 0x66 未戴口罩
  52113. // 0x67 健康码获取失败
  52114. // 0x68 黄码禁止通行
  52115. // 0x69 红码禁止通行
  52116. // 0x6a 健康码无效
  52117. // 0x6b 绿码验证通过
  52118. // 0x70 获取健康码信息
  52119. // 0x71 校验证件信息(平台下发对应证件号的校验结果)
  52120. char szSnapURL[128]; // 抓拍照片存储地址
  52121. UINT nSimilarity; // 目标识别相似度,开门方式为目标开门时有效
  52122. EM_CONSUMPTION_EVENT_TYPE emEventType; // 记录类型
  52123. UINT nConsumptionAmount; // 消费金额。单位(分)101 = 1.01 元
  52124. UINT nRechargeAmount; // 充值金额。单位(分)101 = 1.01 元
  52125. char szTransactionSerialNumber[128]; // 交易流水号
  52126. int nImageCount; // 图片的数量
  52127. DEV_ACCESS_CTL_IMAGE_INFO stuImageInfos[6]; // 图片信息
  52128. char szLastTransactionSerialNumber[128]; // 上一次交易流水号
  52129. char szReserved[896]; // 保留字节,留待扩展
  52130. }DEV_EVENT_CONSUMPTION_EVENT_INFO;
  52131. ///@brief 事件类型EVENT_IVS_TOUCH_ELECTROSTATIC_BALL (触摸静电球事件)对应的数据块描述信息
  52132. typedef struct tagDEV_EVENT_TOUCH_ELECTROSTATIC_BALL_INFO
  52133. {
  52134. int nChannelID; // 通道号
  52135. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  52136. char szReserved1[4]; // 字节对齐,非保留字节
  52137. double PTS; // 时间戳(单位是毫秒)
  52138. NET_TIME_EX UTC; // 事件发生的时间
  52139. int nEventID; // 事件ID
  52140. int nAction; // 1:开始 2:停止
  52141. DH_MSG_OBJECT stuObject; // 检测到的物体
  52142. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  52143. NET_POINT stuDetectRegion[20]; // 静电球区域坐标框
  52144. int nDetectRegionNum; // 静电球区域坐标框个数
  52145. NET_POINT stuUpstairsLine[20]; // 上拌线坐标
  52146. int nUpstairsLineNum; // 上拌线坐标个数
  52147. NET_POINT stuDownstairsLine[20]; // 下拌线坐标
  52148. int nDownstairsLineNum; // 下拌线坐标个数
  52149. char szReserved[1024]; // 保留字节,留待扩展
  52150. } DEV_EVENT_TOUCH_ELECTROSTATIC_BALL_INFO;
  52151. ///@brief 事件类型EVENT_IVS_OXYGEN_CYLINDER_DETECTION (氧气瓶检测事件)对应的数据块描述信息
  52152. typedef struct tagDEV_EVENT_OXYGEN_CYLINDER_DETECTION_INFO
  52153. {
  52154. int nChannelID; // 通道号
  52155. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  52156. char szReserved1[4]; // 字节对齐,非保留字节
  52157. double PTS; // 时间戳(单位是毫秒)
  52158. NET_TIME_EX UTC; // 事件发生的时间
  52159. int nEventID; // 事件ID
  52160. int nAction; // 1:开始 2:停止
  52161. DH_MSG_OBJECT stuObject; // 检测到的物体
  52162. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  52163. char szReserved[1024]; // 保留字节,留待扩展
  52164. } DEV_EVENT_OXYGEN_CYLINDER_DETECTION_INFO;
  52165. ///@brief 检测到的物体信息
  52166. typedef struct tagNET_GENERAL_ATTITUDE_DETECTION_OBJECT
  52167. {
  52168. int nObjectID; // 目标ID
  52169. char szObjectType[16]; // 物体类型
  52170. char szAttitudeType[16]; // 动作类型
  52171. DH_RECT BoundingBox; // 包围盒
  52172. char szSerialUUID[22]; // 智能物体全局唯一物体标识
  52173. char szReserved[1022]; // 保留字段
  52174. } NET_GENERAL_ATTITUDE_DETECTION_OBJECT;
  52175. ///@brief 全景广角图
  52176. typedef struct tagNET_SCENE_IMAGE_INFO
  52177. {
  52178. UINT nOffSet; // 在二进制数据块中的偏移
  52179. UINT nLength; // 图片大小,单位字节
  52180. char byReserved[128]; // 预留字节
  52181. } NET_SCENE_IMAGE_INFO;
  52182. ///@brief 事件类型EVENT_IVS_GENERAL_ATTITUDE_DETECTION (姿态检测事件)对应的数据块描述信息
  52183. typedef struct tagDEV_EVENT_GENERAL_ATTITUDE_DETECTION_INFO
  52184. {
  52185. int nChannelID; // 通道号
  52186. int nAction; // 0:脉冲,1:开始, 2:停止
  52187. char szName[128]; // 事件名称
  52188. double dbPTS; // 时间戳(单位是毫秒)
  52189. NET_TIME_EX stuUTC; // 事件发生的时间
  52190. int nEventID; // 事件ID
  52191. NET_GENERAL_ATTITUDE_DETECTION_OBJECT stuObject; // 检测到的物体
  52192. NET_SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  52193. char szReserved[1024]; // 保留字节,留待扩展
  52194. } DEV_EVENT_GENERAL_ATTITUDE_DETECTION_INFO;
  52195. ///@brief 事件类型EVENT_IVS_TRAFFIC_CHANGE_LANE_CONTINUES (机动车连续变道违法事件)对应的数据块描述信息
  52196. typedef struct tagDEV_EVENT_TRAFFIC_CHANGE_LANE_CONTINUES_INFO
  52197. {
  52198. int nChannelID; // 通道号
  52199. int nAction; // 0:脉冲
  52200. char szName[128]; // 事件名称
  52201. double dbPTS; // 时间戳(单位是毫秒)
  52202. NET_TIME_EX stuUTC; // 事件发生的时间
  52203. int nEventID; // 事件ID
  52204. /*以上为公共字段*/
  52205. int nGroupID; // nGroupID事件组ID,同一物体抓拍过程内nGroupID相同
  52206. int nCountInGroup; // nCountInGroup一个事件组内的抓拍张数
  52207. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号
  52208. UINT nEventType; // 事件类型掩码, bit0表示报警事件, bit1表示违章事件. 若bit0和bit1都置位则既是报警事件又是违章事件, 无该字段默认该事件是报警事件
  52209. DH_MSG_OBJECT stuObject; // 车牌信息
  52210. DH_MSG_OBJECT stuVehicle; // 车身信息
  52211. EM_TRIGGER_TYPE emTriggerType; // TriggerType:触发类型,0车检器,1雷达,2视频
  52212. int nMark; // 底层产生的触发抓拍帧标记
  52213. int nSource; // 视频分析的数据源地址
  52214. int nFrameSequence; // 视频分析帧序号
  52215. int nLane; // 对应车道号
  52216. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  52217. int nSpeed; // 车速,单位km/h
  52218. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  52219. EVENT_COMM_INFO stuCommInfo; // 公共信息
  52220. NET_GPS_INFO stuGPSInfo; // GPS信息
  52221. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  52222. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  52223. char szReserved[1024]; // 保留字节,留待扩展
  52224. } DEV_EVENT_TRAFFIC_CHANGE_LANE_CONTINUES_INFO;
  52225. ///@brief 事件类型EVENT_IVS_SPRAY_DETECT (喷洒异常检测事件)对应的数据块描述信息
  52226. typedef struct tagDEV_EVENT_SPRAY_DETECT_INFO
  52227. {
  52228. int nChannelID; // 通道号
  52229. int nAction; // 0:脉冲
  52230. char szName[128]; // 事件名称
  52231. double dbPTS; // 时间戳(单位是毫秒)
  52232. NET_TIME_EX stuUTC; // 事件发生的时间
  52233. int nEventID; // 事件ID
  52234. char szClass[16]; // 智能事件所属大类
  52235. UINT nRuleId; // 智能事件规则编号
  52236. int UTCMS; // UTC时间对应的毫秒数
  52237. int nGroupID; // nGroupID事件组ID,同一物体抓拍过程内nGroupID相同
  52238. int nCountInGroup; // nCountInGroup一个事件组内的抓拍张数
  52239. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号
  52240. UINT nEventType; // 检测事件类型, 0: 车厢无煤有抑尘液喷洒, 1: 车厢无煤无抑尘液喷洒, 2: 车厢有煤无抑尘液喷洒
  52241. UINT nFluidType; // 喷洒液体类型, 0:抑尘液 1:防冻液
  52242. UINT nPresetID; // 事件触发的预置点号
  52243. char szReserved[1020]; // 保留字节,留待扩展
  52244. } DEV_EVENT_SPRAY_DETECT_INFO;
  52245. ///@brief 事件类型EVENT_IVS_SNAP_TASK (非接入式任务抓图事件)对应的数据块描述信息
  52246. typedef struct tagDEV_EVENT_SNAP_TASK_INFO
  52247. {
  52248. int nChannelID; // 通道号
  52249. int nAction; // 0:脉冲,1:开始, 2:停止
  52250. char szName[128]; // 事件名称
  52251. double dbPTS; // 时间戳(单位是毫秒)
  52252. NET_TIME_EX stuUTC; // 事件发生的时间
  52253. int nEventID; // 事件ID
  52254. char szCameraID[64]; // 相机ID
  52255. UINT nTaskID; // 任务ID
  52256. char szReserved[1020]; // 保留字节,留待扩展
  52257. } DEV_EVENT_SNAP_TASK_INFO;
  52258. ///@brief 事件类型 EVENT_IVS_SILICON_FIRE_DETECTION (刺火检测事件)对应的数据块描述信息
  52259. typedef struct tagDEV_EVENT_SILICON_FIRE_DETECTION_INFO
  52260. {
  52261. int nChannelID; // 通道号
  52262. int nAction; // 0:脉冲,1:开始, 2:停止
  52263. char szName[128]; // 事件名称
  52264. char szClass[16]; // 智能事件所属大类
  52265. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  52266. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  52267. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  52268. UINT nUTCMS; // 事件时间毫秒数
  52269. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52270. NET_TIME_EX stuUTC; // 事件发生的时间
  52271. UINT nEventID; // 事件ID
  52272. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  52273. int nObjectCount; // 检测目标物体的个数
  52274. DH_MSG_OBJECT_EX2 stuObject[128]; // 检测目标的物体信息
  52275. UINT nSequence; // 帧序号
  52276. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  52277. int nDetectRegionCount; // 检测区个数
  52278. DH_POINT stuDetectRegion[20]; // 检测区
  52279. char szReserved[1024]; // 预留字节
  52280. }DEV_EVENT_SILICON_FIRE_DETECTION_INFO;
  52281. ///@brief 事件类型 EVENT_IVS_LADLE_NO_DETECTION (钢包编号识别事件)对应的数据块描述信息
  52282. typedef struct tagDEV_EVENT_LADLE_NO_DETECTION_INFO
  52283. {
  52284. int nChannelID; // 通道号
  52285. int nAction; // 0:脉冲,1:开始, 2:停止
  52286. char szName[128]; // 事件名称
  52287. char szClass[16]; // 智能事件所属大类
  52288. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  52289. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  52290. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  52291. UINT nUTCMS; // 事件时间毫秒数
  52292. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52293. NET_TIME_EX stuUTC; // 事件发生的时间
  52294. UINT nEventID; // 事件ID
  52295. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  52296. int nObjectCount; // 检测目标物体的个数
  52297. UINT nPresetID; // 事件触发的预置点号,从1开始
  52298. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  52299. DH_MSG_OBJECT_EX2 stuObjects[128]; // 检测目标的物体信息
  52300. NET_POINT stuDetectRegion[20]; // 表示配置的规则区域
  52301. int nDetectRegionCount; // 检测区个数
  52302. char szReserved[1020]; // 预留字节
  52303. }DEV_EVENT_LADLE_NO_DETECTION_INFO;
  52304. ///@brief 事件类型 EVENT_IVS_FISHING_DETECTION (钓鱼检测事件)对应的数据块描述信息
  52305. typedef struct tagDEV_EVENT_FISHING_DETECTION_INFO
  52306. {
  52307. int nChannelID; // 通道号
  52308. int nAction; // 0:脉冲,1:开始, 2:停止
  52309. char szName[128]; // 事件名称
  52310. double dbPTS; // 时间戳(单位是毫秒)
  52311. NET_TIME_EX stuUTC; // 事件发生的时间
  52312. UINT nEventID; // 事件ID 协议是uint32
  52313. char szClass[16]; // 智能事件所属大类
  52314. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  52315. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  52316. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  52317. UINT nUTCMS; // 事件时间毫秒数
  52318. int nObjectCount; // 检测目标物体的个数
  52319. DH_MSG_OBJECT_EX2 stuObjects[100]; // 检测目标的物体信息
  52320. int nDetectRegionCount; // 检测区个数
  52321. NET_POINT stuDetectRegion[20]; // 表示配置的规则区域
  52322. UINT nPresetID; // 事件触发的预置点号,从1开始
  52323. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  52324. char szReserved[1020]; // 预留字节
  52325. }DEV_EVENT_FISHING_DETECTION_INFO;
  52326. ///@brief 事件类型 EVENT_IVS_BARELAND_DETECTION (裸土检测事件)对应的数据块描述信息
  52327. typedef struct tagDEV_EVENT_BARELAND_DETECTION_INFO
  52328. {
  52329. char szName[128]; // 事件名称
  52330. char szClass[16]; // 智能事件所属大类
  52331. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  52332. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  52333. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  52334. UINT nUTC; // 事件发生时间,带时区偏差的UTC时间,单位:秒
  52335. double dbPTS; // 相对事件时间戳,单位毫秒
  52336. UINT nUTCMS; // 事件时间毫秒数
  52337. UINT nEventID; // 事件编号,用来唯一标志一个事件
  52338. UINT nRatio; // 裸土实际占比,取值0~100
  52339. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  52340. int nChannelID; // 通道号
  52341. int nAction; // 0:脉冲,1:开始, 2:停止
  52342. NET_TIME_EX stuUTC; // 事件发生的时间
  52343. char szReserved[980]; // 预留字节
  52344. }DEV_EVENT_BARELAND_DETECTION_INFO;
  52345. ///@brief 事件类型EVENT_IVS_PERSONNEL_COEXISTENCE (人员共存事件)对应的数据块描述信息
  52346. typedef struct tagDEV_EVENT_PERSONNEL_COEXISTENCE_INFO
  52347. {
  52348. int nChannelID; // 通道号
  52349. int nAction; // 0:脉冲,1:开始, 2:停止
  52350. char szName[128]; // 事件名称
  52351. double dbPTS; // 时间戳(单位是毫秒)
  52352. NET_TIME_EX stuUTC; // 事件发生的时间
  52353. int nEventID; // 事件ID
  52354. char szClass[16]; // 智能事件所属大类
  52355. UINT nUTCMS; // 事件时间毫秒数
  52356. int nObjectCount; // 检测目标的物体个数
  52357. DH_MSG_OBJECT stuObjects[128]; // 检测目标的物体信息
  52358. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  52359. int nRuleID; // 智能事件规则编号
  52360. char szReserved[1020]; // 保留字节,留待扩展
  52361. } DEV_EVENT_PERSONNEL_COEXISTENCE_INFO;
  52362. ///@brief 姿态类型
  52363. typedef enum tagNET_EM_ATTITUDE_TYPE
  52364. {
  52365. NET_EM_ATTITUDE_TYPE_UNKNOWN, // 未知
  52366. NET_EM_ATTITUDE_TYPE_ONE_HAND, // 单手递接
  52367. NET_EM_ATTITUDE_TYPE_AKIMBO, // 叉腰
  52368. NET_EM_ATTITUDE_TYPE_HAND_SON_HEAD, // 双手抱头
  52369. NET_EM_ATTITUDE_TYPE_HAND_SON_CHEST, // 双手抱胸
  52370. NET_EM_ATTITUDE_TYPE_HIT_WALL, // 撞墙
  52371. NET_EM_ATTITUDE_TYPE_BEND, // 弯腰
  52372. NET_EM_ATTITUDE_TYPE_SITTING, // 坐状态
  52373. NET_EM_ATTITUDE_TYPE_STANDING, // 站状态
  52374. NET_EM_ATTITUDE_TYPE_SIT_DOWN, // 坐下
  52375. NET_EM_ATTITUDE_TYPE_STAND_UP, // 起立
  52376. NET_EM_ATTITUDE_TYPE_ON_TABLE, // 趴桌子
  52377. NET_EM_ATTITUDE_TYPE_LOOK_BACK, // 回头
  52378. NET_EM_ATTITUDE_TYPE_DELIVERY, // 传递
  52379. NET_EM_ATTITUDE_TYPE_GAZE_AROUND, // 东张西望
  52380. NET_EM_ATTITUDE_TYPE_HAND_DOWN_PEEP, // 手放桌下偷看
  52381. NET_EM_ATTITUDE_TYPE_PICK_UP, // 捡东西
  52382. NET_EM_ATTITUDE_TYPE_HAND_UP, // 举手
  52383. NET_EM_ATTITUDE_TYPE_WRITE, // 书写
  52384. } NET_EM_ATTITUDE_TYPE;
  52385. ///@brief 事件类型EVENT_IVS_GENEAL_ATTITUDE (通用姿态行为事件)对应的数据块描述信息
  52386. typedef struct tagDEV_EVENT_GENEAL_ATTITUDE_INFO
  52387. {
  52388. int nChannelID; // 通道号
  52389. int nAction; // 0:脉冲,1:开始, 2:停止
  52390. char szName[128]; // 事件名称
  52391. double dbPTS; // 时间戳(单位是毫秒)
  52392. NET_TIME_EX stuUTC; // 事件发生的时间
  52393. int nEventID; // 事件ID
  52394. char szClass[16]; // 智能事件所属大类
  52395. int nUTCMS; // 事件时间毫秒数
  52396. int nObjectCount; // 检测目标的物体个数
  52397. DH_MSG_OBJECT stuObjects[128]; // 检测目标的物体信息
  52398. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  52399. NET_EM_ATTITUDE_TYPE emAttitudeType; // 姿态类型
  52400. int nRuleID; // 智能事件规则编号
  52401. int nImageInfoNum; // 图片信息个数
  52402. NET_IMAGE_INFO_EX3 *pstuImageInfo; // 图片信息数组
  52403. char szReserved[1016-POINTERSIZE]; // 保留字节,留待扩展
  52404. } DEV_EVENT_GENEAL_ATTITUDE_INFO;
  52405. ///@brief 事件类型EVENT_IVS_CASH_BOX_STATE (款箱状态事件)对应的数据块描述信息
  52406. typedef struct tagDEV_EVENT_CASH_BOX_STATE_INFO
  52407. {
  52408. int nChannelID; // 通道号
  52409. int nAction; // 0:脉冲,1:开始, 2:停止
  52410. char szName[128]; // 事件名称
  52411. double dbPTS; // 时间戳(单位是毫秒)
  52412. NET_TIME_EX stuUTC; // 事件发生的时间
  52413. int nEventID; // 事件ID
  52414. char szClass[16]; // 智能事件所属大类
  52415. int nRuleID; // 智能事件规则编号
  52416. int nUTCMS; // 事件时间毫秒数
  52417. int nState; // 款箱开关状态: 1-开, 2-关
  52418. int nObjectCount; // 检测目标的物体个数
  52419. DH_MSG_OBJECT stuObjects[128]; // 检测目标的物体信息
  52420. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  52421. char szReserved[1024]; // 保留字节,留待扩展
  52422. } DEV_EVENT_CASH_BOX_STATE_INFO;
  52423. ///@brief 事件类型 EVENT_IVS_LEAKAGE_DETECTION (渗漏检测事件)对应的数据块描述信息
  52424. typedef struct tagDEV_EVENT_LEAKAGE_DETECTION_INFO
  52425. {
  52426. int nChannelID; // 通道号
  52427. int nAction; // 0:脉冲,1:开始, 2:停止
  52428. char szName[128]; // 事件名称
  52429. char szClass[16]; // 智能事件所属大类
  52430. UINT nUTCMS; // 事件时间毫秒数
  52431. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52432. NET_TIME_EX stuUTC; // 事件发生的时间
  52433. UINT nEventID; // 事件ID
  52434. int nObjectCount; // 检测目标物体的个数
  52435. DH_MSG_OBJECT_EX2 stuObjects[128]; // 检测目标的物体信息
  52436. float fRatio; // 渗漏实际占比,单位:%,取值范围[0, 100]
  52437. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景图
  52438. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  52439. int nImageInfoNum; // 图片信息个数
  52440. char szReserved[1024]; // 预留字节
  52441. }DEV_EVENT_LEAKAGE_DETECTION_INFO;
  52442. ///@brief 报警类型
  52443. typedef enum tagEM_ALARM_ACCESSORY_STATUS
  52444. {
  52445. EM_ALARM_ACCESSORY_STATUS_UNKNOWN, // 未知
  52446. EM_ALARM_ACCESSORY_STATUS_DEVSELFCHECK, // 设备自检
  52447. EM_ALARM_ACCESSORY_STATUS_EXTINPUTALARM, // 外部输入报警
  52448. }EM_ALARM_ACCESSORY_STATUS;
  52449. ///@brief 事件类型 EVENT_IVS_ALARM_ACCESSORY (报警配件事件)对应的数据块描述信息
  52450. typedef struct tagDEV_EVENT_ALARM_ACCESSORY_INFO
  52451. {
  52452. int nChannelID; // 通道号
  52453. int nAction; // 0:脉冲,1:开始, 2:停止
  52454. char szName[128]; // 事件名称
  52455. char szClass[16]; // 智能事件所属大类
  52456. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52457. NET_TIME_EX stuUTC; // 事件发生的时间
  52458. NET_SENSE_METHOD emSenseMethod; // SenseMethod, 感应方式,参见具体枚举定义
  52459. EM_ALARM_ACCESSORY_STATUS emStatus; // 报警类型
  52460. char szSN[32]; // 配件序列号
  52461. char szReserved[1024]; // 预留字节
  52462. }DEV_EVENT_ALARM_ACCESSORY_INFO;
  52463. ///@brief 无线设备类型
  52464. typedef enum tagEM_WIRELESS_DEV_LOWPOWER_TYPE
  52465. {
  52466. EM_WIRELESS_DEV_LOWPOWER_TYPE_UNKNOWN, // 未知
  52467. EM_WIRELESS_DEV_LOWPOWER_TYPE_REMOTE_CONTROL, // 无线遥控器
  52468. EM_WIRELESS_DEV_LOWPOWER_TYPE_DEFENCE, // 无线防区
  52469. EM_WIRELESS_DEV_LOWPOWER_TYPE_KEYBOARD, // 键盘
  52470. EM_WIRELESS_DEV_LOWPOWER_TYPE_SMARTLOCK, // 智能锁
  52471. EM_WIRELESS_DEV_LOWPOWER_TYPE_ALARMBELL, // 警号、警笛、警铃
  52472. EM_WIRELESS_DEV_LOWPOWER_TYPE_EXTERNAL_SENSOR, // 外部传感器,比如温度、温度传感器
  52473. }EM_WIRELESS_DEV_LOWPOWER_TYPE;
  52474. ///@brief 异常状态
  52475. typedef enum tagEM_WIRELESS_DEV_LOWPOWER_STATUS
  52476. {
  52477. EM_WIRELESS_DEV_LOWPOWER_STATUS_UNKNOWN, // 未知
  52478. EM_WIRELESS_DEV_LOWPOWER_STATUS_BAT_ABNORMAL, // 电池异常(电池不在位)
  52479. }EM_WIRELESS_DEV_LOWPOWER_STATUS;
  52480. ///@brief 事件类型 EVENT_IVS_WIRELESS_DEV_LOWPOWER (无线设备低电量事件)对应的数据块描述信息
  52481. typedef struct tagDEV_EVENT_WIRELESS_DEV_LOWPOWER_INFO
  52482. {
  52483. int nChannelID; // 通道号
  52484. int nAction; // 0:脉冲,1:开始, 2:停止
  52485. char szName[128]; // 事件名称
  52486. char szClass[16]; // 智能事件所属大类
  52487. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52488. NET_TIME_EX stuUTC; // 事件发生的时间
  52489. BOOL bLowPower; // 是否为低电量 true:低电量, false:电量正常
  52490. EM_WIRELESS_DEV_LOWPOWER_TYPE emType; // 无线设备类型
  52491. NET_SENSE_METHOD emSenseMethod; // SenseMethod, 感应方式,参见具体枚举定义
  52492. float fPercent; // 电量百分比
  52493. char szSN[32]; // 无线配件序列号
  52494. EM_WIRELESS_DEV_LOWPOWER_STATUS emStatus; // 异常状态
  52495. char szReserved[1024]; // 预留字节
  52496. }DEV_EVENT_WIRELESS_DEV_LOWPOWER_INFO;
  52497. ///@brief 事件类型 EVENT_IVS_SENSOR_ABNORMAL (探测器异常报警)对应的数据块描述信息
  52498. typedef struct tagDEV_EVENT_SENSOR_ABNORMAL_INFO
  52499. {
  52500. int nChannelID; // 通道号
  52501. int nAction; // 0:脉冲,1:开始, 2:停止
  52502. char szName[128]; // 事件名称
  52503. char szClass[16]; // 智能事件所属大类
  52504. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52505. NET_TIME_EX stuUTC; // 事件发生的时间
  52506. char szSN[32]; // 无线配件序列号
  52507. EM_SENSOR_ABNORMAL_STATUS emStatus; // 异常状态
  52508. NET_SENSE_METHOD emSenseMethod; // SenseMethod, 感应方式,参见具体枚举定义
  52509. char szReserved[1024]; // 预留字节
  52510. }DEV_EVENT_SENSOR_ABNORMAL_INFO;
  52511. ///@brief 总线类型
  52512. typedef enum tagEM_MODULE_LOST_TYPE
  52513. {
  52514. EM_MODULE_LOST_TYPE_UNKNOWN, // 未知
  52515. EM_MODULE_LOST_TYPE_M_BUS, // M-BUS
  52516. EM_MODULE_LOST_TYPE_RS_485, // RS-485
  52517. EM_MODULE_LOST_TYPE_CAN, // CAN
  52518. EM_MODULE_LOST_TYPE_NET, // NET
  52519. }EM_MODULE_LOST_TYPE;
  52520. ///@brief 设备类型
  52521. typedef enum tagEM_MODULE_LOST_DEV_TYPE
  52522. {
  52523. EM_MODULE_LOST_DEV_TYPE_UNKNOWN, // 未知
  52524. EM_MODULE_LOST_DEV_TYPE_SMARTLOCK, // 智能锁
  52525. EM_MODULE_LOST_DEV_TYPE_DEFENCE, // 开关量防区
  52526. EM_MODULE_LOST_DEV_TYPE_KEYBOARD, // 键盘
  52527. EM_MODULE_LOST_DEV_TYPE_REMOTE_CONTROL, // 远程控制
  52528. EM_MODULE_LOST_DEV_TYPE_MAGNETOMER, // 磁力计
  52529. EM_MODULE_LOST_DEV_TYPE_ALARMBELL, // 警号,警铃
  52530. EM_MODULE_LOST_DEV_TYPE_ACCESS_SUBCONTROLLER, // 分控器
  52531. EM_MODULE_LOST_DEV_TYPE_GPS, // gps模块
  52532. EM_MODULE_LOST_DEV_TYPE_WIFI, // wifi模块
  52533. EM_MODULE_LOST_DEV_TYPE_MOBILE_DEVICE, // 3G/4G模块
  52534. EM_MODULE_LOST_DEV_TYPE_LIFT_CONTROLLER, // 梯控设备
  52535. EM_MODULE_LOST_DEV_TYPE_PRINTER, // 打印机
  52536. }EM_MODULE_LOST_DEV_TYPE;
  52537. ///@brief 事件类型 EVENT_IVS_MODULE_LOST (模块断线报警事件)对应的数据块描述信息
  52538. typedef struct tagDEV_EVENT_MODULE_LOST_INFO
  52539. {
  52540. int nChannelID; // 通道号
  52541. int nAction; // 0:脉冲,1:开始, 2:停止
  52542. char szName[128]; // 事件名称
  52543. char szClass[16]; // 智能事件所属大类
  52544. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52545. NET_TIME_EX stuUTC; // 事件发生的时间
  52546. UINT nEventID; // 事件ID
  52547. UINT nACK; // 确认ID
  52548. EM_MODULE_LOST_TYPE emType; // 总线类型
  52549. EM_MODULE_LOST_DEV_TYPE emDevType; // 设备类型
  52550. NET_SENSE_METHOD emSenseMethod; // SenseMethod, 感应方式,参见具体枚举定义
  52551. int arrAddr[32]; // 地址
  52552. int nAddrNum; // 地址数量
  52553. BOOL bOnline; // 在线情况, true 在线;false 不在线
  52554. char szSN[32]; // 无线配件序列号
  52555. char szReserved[1024]; // 预留字节
  52556. }DEV_EVENT_MODULE_LOST_INFO;
  52557. ///@brief 触发模式
  52558. typedef enum tagEM_CROWD_LEVEL_DETECTION_TRIGGERMODE
  52559. {
  52560. EM_CROWD_LEVEL_DETECTION_TRIGGERMODE_UNKNOWN, // 未知
  52561. EM_CROWD_LEVEL_DETECTION_TRIGGERMODE_ADAPTIVE, // 自适应模式
  52562. EM_CROWD_LEVEL_DETECTION_TRIGGERMODE_CUSTOM, // 自定义模式
  52563. }EM_CROWD_LEVEL_DETECTION_TRIGGERMODE;
  52564. ///@brief 事件类型 EVENT_IVS_CROWD_LEVEL_DETECTION (拥挤程度检测事件)对应的数据块描述信息
  52565. typedef struct tagDEV_EVENT_CROWD_LEVEL_DETECTION_INFO
  52566. {
  52567. int nChannelID; // 通道号
  52568. int nAction; // 0:脉冲,1:开始, 2:停止
  52569. char szName[128]; // 事件名称
  52570. char szClass[16]; // 智能事件所属大类
  52571. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52572. NET_TIME_EX stuUTC; // 事件发生的时间
  52573. UINT nUTCMS; // 事件时间毫秒数
  52574. UINT nEventID; // 事件ID
  52575. NET_POINT stuDetectRegion[20]; // 规则区域
  52576. int nDetectRegionNum; // 规则区域个数
  52577. UINT nPresetID; // 事件触发的预置点号,从1开始
  52578. EM_CROWD_LEVEL_DETECTION_TRIGGERMODE emTriggerMode; // 触发模式
  52579. UINT nCrowdDetectNum; // 实际触发报警的人数
  52580. UINT nCrowdRankResult; // 检测到的拥挤程度等级
  52581. char szReserved1[4]; // 字节对齐
  52582. char szCrowdGroupName[128]; // 检测到的拥挤程度等级名称
  52583. NET_IMAGE_INFO_EX3 *pstuImageInfo; // 图片信息数组
  52584. int nImageInfoNum; // 图片信息个数
  52585. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  52586. char szReserved[1020-POINTERSIZE]; // 预留字节
  52587. }DEV_EVENT_CROWD_LEVEL_DETECTION_INFO;
  52588. ///@brief 事件类型 EVENT_IVS_REGION_DEFENSE_DETECTION (区域看防事件)对应的数据块描述信息
  52589. typedef struct tagDEV_EVENT_REGION_DEFENSE_DETECTION_INFO
  52590. {
  52591. int nChannelID; // 通道号
  52592. int nAction; // 0:脉冲,1:开始, 2:停止
  52593. char szName[128]; // 事件名称
  52594. char szClass[16]; // 智能事件所属大类
  52595. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  52596. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  52597. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  52598. char szReserved1[4]; // 字节对齐
  52599. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52600. NET_TIME_EX stuUTC; // 事件发生的时间
  52601. UINT nUTCMS; // 事件时间毫秒数
  52602. UINT nEventID; // 事件ID
  52603. char szReserved[1024]; // 预留字节
  52604. }DEV_EVENT_REGION_DEFENSE_DETECTION_INFO;
  52605. ///@brief 事件类型 EVENT_IVS_DUSTBIN_DETECTION (垃圾桶检测事件)对应的数据块描述信息
  52606. typedef struct tagDEV_EVENT_DUSTBIN_DETECTION_INFO
  52607. {
  52608. int nChannelID; // 通道号
  52609. int nAction; // 0:脉冲,1:开始, 2:停止
  52610. char szName[128]; // 事件名称
  52611. char szClass[16]; // 智能事件所属大类
  52612. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  52613. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  52614. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  52615. UINT nUTCMS; // 事件时间毫秒数
  52616. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52617. NET_TIME_EX stuUTC; // 事件发生的时间
  52618. UINT nEventID; // 事件ID
  52619. int nObjectNum; // 检测到的物体信息个数
  52620. DH_MSG_OBJECT_EX2 stuObjects[64]; // 表示检测到的物体信息
  52621. NET_POINT stuDetectRegion[20]; // 检测区
  52622. int nDetectRegionNum; // 检测区个数
  52623. int nPresetID; // 事件触发的预置点号,从1开始没有该字段,表示预置点未知
  52624. char szPresetName[64]; // 事件触发的预置点名称
  52625. UINT nViolationDuration; // 违法持续时长,单位:秒
  52626. char szSourceID[32]; // 事件关联ID 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
  52627. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  52628. int nImageInfoNum; // 图片信息个数
  52629. char szReserved[1024 - POINTERSIZE]; // 预留字节
  52630. }DEV_EVENT_DUSTBIN_DETECTION_INFO;
  52631. ///@brief 路面状况等级
  52632. typedef enum tagEM_ROAD_LEVEL
  52633. {
  52634. EM_ROAD_UNKNOWN_LEVEL = -1, // 未知
  52635. EM_ROAD_ZERO_LEVEL, // 0: 纵向裂纹
  52636. EM_ROAD_ONE_LEVEL, // 1: 横向裂纹
  52637. EM_ROAD_TWO_LEVEL, // 2: 鳄鱼裂纹
  52638. EM_ROAD_THREE_LEVEL, // 3: 槽纹
  52639. EM_ROAD_FOUR_LEVEL, // 4: 车辙纹
  52640. EM_ROAD_FIVE_LEVEL, // 5: 纵向修复纹
  52641. EM_ROAD_SIX_LEVEL, // 6: 横向修复纹
  52642. }EM_ROAD_LEVEL;
  52643. ///@brief 事件类型 EVENT_IVS_ROAD_CONDITIONS_DETECTION (路面检测事件)对应的数据块描述信息
  52644. typedef struct tagDEV_EVENT_ROAD_CONDITIONS_DETECTION_INFO
  52645. {
  52646. int nChannelID; // 通道号
  52647. int nAction; // 0:脉冲,1:开始, 2:停止
  52648. char szName[128]; // 事件名称
  52649. char szClass[16]; // 智能事件所属大类
  52650. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52651. NET_TIME_EX stuUTC; // 事件发生的时间
  52652. UINT nUTCMS; // 事件时间毫秒数
  52653. EM_ROAD_LEVEL emRoadLevel; // 路面状况等级
  52654. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  52655. char szVideoPath[256]; // 违章关联视频FTP上传路径
  52656. float fDamageArea; // 路面病害面积,单位:平方米
  52657. float fDamageLength; // 路面病害长度,单位:米
  52658. char szReserved[760]; // 预留字节
  52659. }DEV_EVENT_ROAD_CONDITIONS_DETECTION_INFO;
  52660. ///@brief 检测目标
  52661. typedef enum tagEM_EVENT_DETECT_OBJECT
  52662. {
  52663. EM_EVENT_DETECT_OBJECT_UNKNOWN, // 未知
  52664. EM_EVENT_DETECT_OBJECT_PERSON, // "Person":人
  52665. EM_EVENT_DETECT_OBJECT_ANIMAL, // "Animal":动物
  52666. }EM_EVENT_DETECT_OBJECT;
  52667. ///@brief 被接近目标类型
  52668. typedef enum tagEM_NEAR_DETECT_OBJECT_TYPE
  52669. {
  52670. EM_NEAR_DETECT_OBJECT_TYPE_UNKNOWN, // 未知
  52671. EM_NEAR_DETECT_OBJECT_TYPE_MOVINGFORKLIFT, // "MovingForklift":移动叉车
  52672. EM_NEAR_DETECT_OBJECT_TYPE_SILICONPACKAGE, // "SiliconPackage":硅包
  52673. EM_NEAR_DETECT_OBJECT_TYPE_MOVINGSILICONPACKAGE, // "MovingSiliconPackage":移动的硅包
  52674. EM_NEAR_DETECT_OBJECT_TYPE_POURINGSILICONPACKAGE, // "PouringSiliconPackage":倒硅水的硅包
  52675. }EM_NEAR_DETECT_OBJECT_TYPE;
  52676. ///@brief 事件类型 EVENT_IVS_NEAR_OBJECT_DETECT (近物体检测事件)对应的数据块描述信息
  52677. typedef struct tagDEV_EVENT_NEAR_OBJECT_DETECT_INFO
  52678. {
  52679. int nChannelID; // 通道号
  52680. int nAction; // 0:脉冲,1:开始, 2:停止
  52681. char szName[128]; // 事件名称
  52682. char szClass[16]; // 智能事件所属大类
  52683. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件。
  52684. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  52685. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  52686. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  52687. UINT nUTCMS; // 事件时间毫秒数
  52688. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52689. NET_TIME_EX stuUTC; // 事件发生的时间
  52690. UINT nEventID; // 事件ID
  52691. NET_POINT stuDetectRegion[20]; // 检测区
  52692. int nDetectRegionNum; // 检测区个数
  52693. EM_EVENT_DETECT_OBJECT emDetectObject; // 检测目标
  52694. EM_NEAR_DETECT_OBJECT_TYPE emNearObjectType; // 被接近目标类型
  52695. UINT nSequence; // 帧序号
  52696. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  52697. DH_MSG_OBJECT_EX2* pstObjectInfo; //物体信息数据
  52698. UINT nObjectNum; //物体信息数
  52699. char szReserved[1020 - POINTERSIZE]; // 预留字节
  52700. }DEV_EVENT_NEAR_OBJECT_DETECT_INFO;
  52701. ///@brief 事件类型 EVENT_IVS_OBJECT_NUM_DETECTION (区域内计数事件)对应的数据块描述信息( 注意该事件不支持单独使用,仅配合“开放智能事件(EVENT_IVS_OPEN_INTELLI)”使用)
  52702. typedef struct tagDEV_EVENT_OBJECT_NUM_DETECTION_INFO
  52703. {
  52704. int nChannelID; // 通道号
  52705. int nAction; // 0:脉冲,1:开始, 2:停止
  52706. char szName[128]; // 事件名称
  52707. char szClass[16]; // 智能事件所属大类
  52708. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52709. NET_TIME_EX stuUTC; // 事件发生的时间
  52710. UINT nUTCMS; // 事件时间毫秒数
  52711. UINT nEventID; // 事件ID
  52712. UINT nAreaID; // 区域ID, 没有该字段或者为0,为单区域
  52713. UINT nPresetID; // 事件触发的预置点号,从1开始
  52714. int nNumber; // 表示区域内物体的个数
  52715. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图(仅nIndexInData, nOffSet, nLength字段有效)
  52716. char szReserved[1024]; // 预留字节
  52717. }DEV_EVENT_OBJECT_NUM_DETECTION_INFO;
  52718. ///@brief 属性组合
  52719. typedef struct tagNET_STAT_ATTRMAP
  52720. {
  52721. int nAttrTypeID; // 属性索引
  52722. int nValueID; // 属性值索引
  52723. char szAttrType[32]; // 属性名称
  52724. char szValue[32]; // 属性值
  52725. char szReserved[128]; // 预留字节
  52726. }NET_STAT_ATTRMAP;
  52727. ///@brief 属性计数信息
  52728. typedef struct tagNET_STAT_ATTRIBUTE
  52729. {
  52730. int nNumber; // 目标及属性组合的计数
  52731. int nAttrMapNumber; // 属性组合个数
  52732. NET_STAT_ATTRMAP stuAttrMap[20]; // 属性组合
  52733. char szReserved[128]; // 预留字节
  52734. }NET_STAT_ATTRIBUTE;
  52735. ///@brief 详细计数信息
  52736. typedef struct tagNET_STAT_DETAIL
  52737. {
  52738. char szType[32]; // 目标类型名称
  52739. int nTypeID; // 目标类型索引
  52740. int nNumber; // 目标类型总数
  52741. NET_STAT_ATTRIBUTE stuAttribute[1024]; // 属性计数信息
  52742. int nAttributeNumber; // 属性计数信息个数
  52743. char szReserved[124]; // 预留字节
  52744. }NET_STAT_DETAIL;
  52745. ///@brief 统计方向查询条件
  52746. typedef enum tagEM_STAT_DIRECTION
  52747. {
  52748. EM_STAT_DIRECTION_UNKNOWN, // 未知
  52749. EM_STAT_DIRECTION_LEFTTORIGHT, // 左到右
  52750. EM_STAT_DIRECTION_RIGHTTOLEFT, // 右到左
  52751. EM_STAT_DIRECTION_BOTH, // 全部
  52752. }EM_STAT_DIRECTION;
  52753. ///@brief 事件类型 EVENT_IVS_CROSSLINE_STAT (绊线计数事件)对应的数据块描述信息( 注意该事件暂时不支持单独使用,仅配合“开放智能事件(EVENT_IVS_OPEN_INTELLI)”使用)
  52754. typedef struct tagNET_DEV_EVENT_CROSSLINE_STAT_INFO
  52755. {
  52756. int nChannelID; // 通道号
  52757. int nAction; // 0:脉冲,1:开始, 2:停止
  52758. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  52759. NET_TIME_EX stuUTC; // 事件发生的时间
  52760. UINT nEventID; // 事件ID
  52761. char szName[128]; // 事件名称
  52762. char szClass[16]; // 智能事件所属大类
  52763. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52764. UINT nUTCMS; // 事件时间毫秒数
  52765. UINT nRuleID; // 智能事件规则编号
  52766. UINT nAreaID; // 区域ID
  52767. EM_STAT_DIRECTION emDirection; // 绊线方向
  52768. int nNumber; // 目标绊线总数
  52769. int nStatDetailNum; // 详细计数信息个数
  52770. NET_STAT_DETAIL stuStatDetail[16]; // 详细计数信息
  52771. char szReserved[1024]; // 预留字节
  52772. }NET_DEV_EVENT_CROSSLINE_STAT_INFO;
  52773. ///@brief 事件类型 EVENT_IVS_REGIONNUM_STAT (域内计数事件)对应的数据块描述信息( 注意该事件暂时不支持单独使用,仅配合“开放智能事件(EVENT_IVS_OPEN_INTELLI)”使用)
  52774. typedef struct tagNET_DEV_EVENT_REGIONNUM_STAT_INFO
  52775. {
  52776. int nChannelID; // 通道号
  52777. int nAction; // 0:脉冲,1:开始, 2:停止
  52778. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  52779. NET_TIME_EX stuUTC; // 事件发生的时间
  52780. UINT nEventID; // 事件ID
  52781. char szName[128]; // 事件名称
  52782. char szClass[16]; // 智能事件所属大类
  52783. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52784. UINT nUTCMS; // 事件时间毫秒数
  52785. UINT nRuleID; // 智能事件规则编号
  52786. UINT nAreaID; // 区域ID
  52787. EM_STAT_DIRECTION emDirection; // 绊线方向
  52788. int nNumber; // 目标绊线总数
  52789. int nStatDetailNum; // 详细计数信息个数
  52790. NET_STAT_DETAIL stuStatDetail[16]; // 详细计数信息
  52791. char szReserved[1024]; // 预留字节
  52792. }NET_DEV_EVENT_REGIONNUM_STAT_INFO;
  52793. ///@brief 目标属性数组
  52794. typedef struct tagNET_OPEN_INTELLI_OBJECT_ATTRIBUTE_INFO
  52795. {
  52796. char szAttrTypeName[128]; // 属性类型名称
  52797. char szAttrValueName[128]; // 属性值名称
  52798. }NET_OPEN_INTELLI_OBJECT_ATTRIBUTE_INFO;
  52799. ///@brief 检测到的目标属性信息列表
  52800. typedef struct tagNET_OPEN_INTELLI_OBJECT_INFO
  52801. {
  52802. int nObjectId; // 目标id
  52803. NET_RECT stuBoundingBox; // 包围盒 矩形类型,8192坐标系
  52804. char szObjectTypeName[128]; // 目标类型名称
  52805. int nObjectAttributeNums; // 目标属性数组中的有效个数
  52806. NET_OPEN_INTELLI_OBJECT_ATTRIBUTE_INFO stuObjectAttributes[128]; // 目标属性数组
  52807. }NET_OPEN_INTELLI_OBJECT_INFO;
  52808. ///@brief 用户数据
  52809. typedef struct tagNET_OPEN_INTELLI_USER_DATA_INFO
  52810. {
  52811. int nAlarmId; // 自定义报警id
  52812. char szReserved[512]; // 保留字节
  52813. }NET_OPEN_INTELLI_USER_DATA_INFO;
  52814. ///@brief 事件类型 EVENT_IVS_OPEN_INTELLI (开放智能事件)对应的数据块描述信息
  52815. typedef struct tagDEV_EVENT_OPEN_INTELLI_INFO
  52816. {
  52817. int nChannelID; // 通道号
  52818. int nAction; // 0:脉冲,1:开始, 2:停止
  52819. char szOpenCode[32]; // 所属开放算法的Id
  52820. char szOpenName[128]; // 所属开放算法的名称
  52821. char szRuleType[32]; // 所属开放算法的规则类型, 仅支持: 拌线入侵CrossLineDetection(EVENT_IVS_CROSSLINEDETECTION)、区域入侵CrossRegionDetection(EVENT_IVS_CROSSREGIONDETECTION)、滞留检测StayDetection(EVENT_IVS_STAYDETECTION)、数量统计ObjectNumDetection(EVENT_IVS_OBJECT_NUM_DETECTION)、通用姿态行为事件 GenealAttitude(EVENT_IVS_GENEAL_ATTITUDE)
  52822. void* pstuOpenData; // 与开放算法的规则类型支持的带图事件类型对应的结构体对应(只解析Event Data中的字段)
  52823. // 拌线入侵CrossLineDetection(EVENT_IVS_CROSSLINEDETECTION) - DEV_EVENT_CROSSLINE_INFO
  52824. // 区域入侵CrossRegionDetection(EVENT_IVS_CROSSREGIONDETECTION) - DEV_EVENT_CROSSREGION_INFO
  52825. // 滞留检测StayDetection(EVENT_IVS_STAYDETECTION) - DEV_EVENT_STAY_INFO
  52826. // 数量统计ObjectNumDetection(EVENT_IVS_OBJECT_NUM_DETECTION) - DEV_EVENT_OBJECT_NUM_DETECTION_INFO
  52827. // 绊线计数事件 CrossLineStat(EVENT_IVS_CROSSLINE_STAT) - NET_DEV_EVENT_CROSSLINE_STAT_INFO
  52828. // 域内计数事件 RegionNumStat(EVENT_IVS_REGIONNUM_STAT) - NET_DEV_EVENT_REGIONNUM_STAT_INFO
  52829. // 全物体类型检测事件 AnythingDetect(EVENT_IVS_ANYTHING_DETECT) - DEV_EVENT_ANYTHING_DETECT_INFO
  52830. // 通用姿态行为事件 GenealAttitude(EVENT_IVS_GENEAL_ATTITUDE) - DEV_EVENT_GENEAL_ATTITUDE_INFO
  52831. int nObjectNums; // 检测到的目标属性信息列表的个数
  52832. NET_OPEN_INTELLI_OBJECT_INFO stuObjects[100]; // 检测到的目标属性信息列表
  52833. NET_OPEN_INTELLI_USER_DATA_INFO stuUserData; // 用户数据
  52834. char szReserved[1024]; // 保留字节
  52835. }DEV_EVENT_OPEN_INTELLI_INFO;
  52836. ///@brief 检测的目标类型
  52837. typedef enum tagEM_DETECTED_OBJECT_TYPE
  52838. {
  52839. EM_DETECTED_OBJECT_TYPE_UNKNOWN, // 未知
  52840. EM_DETECTED_OBJECT_TYPE_HANGING_PACKAGE, // 吊物(硅包、钢包、铁包)
  52841. }EM_DETECTED_OBJECT_TYPE;
  52842. ///@brief 事件类型 EVENT_IVS_CRANE_LOAD_STAY_DETECTION (天车吊物滞留事件)对应的数据块描述信息
  52843. typedef struct tagDEV_EVENT_CRANE_LOAD_STAY_DETECTION_INFO
  52844. {
  52845. int nChannelID; // 通道号
  52846. int nAction; // 0:脉冲,1:开始, 2:停止
  52847. char szName[128]; // 事件名称
  52848. char szClass[16]; // 智能事件所属大类
  52849. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  52850. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  52851. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  52852. UINT nUTCMS; // 事件时间毫秒数
  52853. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52854. NET_TIME_EX stuUTC; // 事件发生的时间
  52855. UINT nEventID; // 事件ID
  52856. char byReserved1[4]; // 仅用于字节对齐
  52857. DH_MSG_OBJECT_EX2 stuObject; // Object表示检测到的物体信息
  52858. char byReserved2[4]; // 仅用于字节对齐
  52859. int nObjectsNum; // 检测到的物体信息个数, 上限为32
  52860. DH_MSG_OBJECT_EX2 stuObjects[32]; // Objects表示多个物体同时触发滞留事件列表,填写检测到的所有物体 上限32个数组元素
  52861. NET_POINT stuDetectRegion[20]; // 检测区
  52862. int nDetectRegionNum; // 检测区个数
  52863. EM_DETECTED_OBJECT_TYPE emDetectObject; // 检测的目标类型
  52864. char szType[16]; // 报警规则类型
  52865. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图,仅IndexInData字段和Length字段有效
  52866. char szReserved[1024]; // 预留字节
  52867. }DEV_EVENT_CRANE_LOAD_STAY_DETECTION_INFO;
  52868. ///@brief 事件类型 EVENT_IVS_TRAFFIC_DRIVER_NO_BELT (未系安全带报警事件)对应的数据块描述信息
  52869. typedef struct tagDEV_EVENT_TRAFFIC_DRIVER_NO_BELT_INFO
  52870. {
  52871. int nChannelID; // 通道号
  52872. int nAction; // 0:脉冲,1:开始, 2:停止
  52873. char szName[128]; // 事件名称
  52874. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52875. NET_TIME_EX stuUTC; // 事件发生的时间
  52876. char szDriverID[32]; // 司机ID
  52877. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  52878. char szVideoPath[256]; // 违章关联视频FTP上传路径
  52879. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  52880. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  52881. char szReserved[768]; // 预留字节
  52882. }DEV_EVENT_TRAFFIC_DRIVER_NO_BELT_INFO;
  52883. ///@brief 事件类型 EVENT_IVS_RIDING_MOTOR_CYCLE (摩托车骑跨检测事件)对应的数据块描述信息
  52884. typedef struct tagDEV_EVENT_RIDING_MOTOR_CYCLE_INFO
  52885. {
  52886. int nChannelID; // 通道号
  52887. int nAction; // 0:脉冲,1:开始, 2:停止
  52888. char szName[128]; // 事件名称
  52889. char szClass[16]; // 智能事件所属大类
  52890. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  52891. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  52892. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  52893. UINT nUTCMS; // 事件时间毫秒数
  52894. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52895. NET_TIME_EX stuUTC; // 事件发生的时间
  52896. UINT nEventID; // 事件ID
  52897. int nObjectNum; // 检测到的物体信息个数
  52898. DH_MSG_OBJECT_EX2 stuObjects[64]; // 表示检测到的物体信息
  52899. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图,仅IndexInData字段有效
  52900. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  52901. int nImageInfoNum; // 图片信息个数
  52902. char szReserved[1020 - POINTERSIZE]; // 预留字节
  52903. }DEV_EVENT_RIDING_MOTOR_CYCLE_INFO;
  52904. ///@brief 检测异物类型
  52905. typedef enum tagEM_ARTICLE_TYPE
  52906. {
  52907. EM_ARTICLE_TYPE_UNKNOWN, // 未知
  52908. EM_ARTICLE_TYPE_ANCHORROD, // 锚杆
  52909. }EM_ARTICLE_TYPE;
  52910. ///@brief 事件类型 EVENT_IVS_CONVEYOR_ARTICLE_TYPE (传送带异物检测事件)对应的数据块描述信息
  52911. typedef struct tagDEV_EVENT_CONVEYOR_ARTICLE_TYPE_INFO
  52912. {
  52913. int nChannelID; // 通道号
  52914. int nAction; // 0:脉冲,1:开始, 2:停止
  52915. char szName[128]; // 事件名称
  52916. char szClass[16]; // 智能事件所属大类
  52917. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  52918. UINT nUTCMS; // 事件时间毫秒数
  52919. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52920. NET_TIME_EX stuUTC; // 事件发生的时间
  52921. UINT nEventID; // 事件ID
  52922. NET_POINT stuDetectRegion[20]; // 检测区
  52923. int nDetectRegionNum; // 检测区个数
  52924. EM_ARTICLE_TYPE emArticleType; // 检测异物类型
  52925. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  52926. DH_MSG_OBJECT_EX2* pstObjectInfo; //物体信息数据
  52927. UINT nObjectNum; //物体信息数
  52928. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC ,否则用 UTC 字段
  52929. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  52930. UINT nArticleEventCount; // 异物事件累计计数
  52931. char szReserved[976 - POINTERSIZE]; // 预留字节
  52932. }DEV_EVENT_CONVEYOR_ARTICLE_TYPE_INFO;
  52933. ///@brief 事件类型 EVENT_IVS_BLIND_ALARM (盲区报警事件)对应的数据块描述信息
  52934. typedef struct tagDEV_EVENT_BLIND_ALARM_INFO
  52935. {
  52936. int nChannelID; // 通道号
  52937. int nAction; // 0:脉冲,1:开始, 2:停止
  52938. char szName[128]; // 事件名称
  52939. char szClass[16]; // 智能事件所属大类
  52940. UINT nUTCMS; // 事件时间毫秒数
  52941. UINT nEventID; // 事件ID
  52942. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52943. NET_TIME_EX stuUTC; // 事件发生的时间
  52944. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  52945. char szVideoPath[256]; // 违章关联视频FTP上传路径
  52946. char szReserved[1024]; // 保留字节
  52947. }DEV_EVENT_BLIND_ALARM_INFO;
  52948. ///@brief 事件类型 EVENT_IVS_TRAFFIC_SPEED_DROP_SHARPLY (车辆速度骤减)对应的数据块描述信息
  52949. typedef struct tagDEV_EVENT_TRAFFIC_SPEED_DROP_SHARPLY_INFO
  52950. {
  52951. int nChannelID; // 通道号
  52952. int nAction; // 0:脉冲,1:开始, 2:停止
  52953. char szName[128]; // 事件名称
  52954. UINT nUTCMS; // 事件时间毫秒数
  52955. NET_TIME_EX stuUTC; // 事件发生的时间
  52956. UINT nEventID; // 事件ID
  52957. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52958. int nGroupID; // 事件组ID
  52959. int nCountInGroup; // 一个事件组内的抓拍张数
  52960. int nIndexInGroup; // 一个事件组内的抓拍序号
  52961. DH_MSG_OBJECT stuObject; // 车牌信息
  52962. DH_MSG_OBJECT stuVehicle; // 车辆信息
  52963. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  52964. int nLane; // 车道号
  52965. int nSequence; // 抓包序号
  52966. EVENT_COMM_INFO stCommInfo; // 公共信息
  52967. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  52968. char szReserved[1024]; // 保留字节
  52969. }DEV_EVENT_TRAFFIC_SPEED_DROP_SHARPLY_INFO;
  52970. ///@brief 事件类型 EVENT_IVS_GESTURE_DETECTION (手势检测事件)对应的数据块描述信息
  52971. typedef struct tagDEV_EVENT_GESTURE_DETECTION_INFO
  52972. {
  52973. int nChannelID; // 通道号
  52974. int nAction; // 0:脉冲,1:开始, 2:停止
  52975. char szName[128]; // 事件名称
  52976. char szClass[16]; // 智能事件所属大类
  52977. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52978. NET_TIME_EX stuUTC; // 事件发生的时间
  52979. UINT nUTCMS; // 事件时间毫秒数
  52980. UINT nEventID; // 事件ID
  52981. NET_GESTURE_INFO stuGestureInfo; // 手势信息
  52982. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  52983. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  52984. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  52985. char szReserved[1024]; // 预留字节
  52986. }DEV_EVENT_GESTURE_DETECTION_INFO;
  52987. ///@brief 事件类型 EVENT_IVS_HEAD_LIFT_DETECTION (抬头检测事件)对应的数据块描述信息
  52988. typedef struct tagDEV_EVENT_HEAD_LIFT_DETECTION_INFO
  52989. {
  52990. int nChannelID; // 通道号
  52991. int nAction; // 0:脉冲,1:开始, 2:停止
  52992. char szName[128]; // 事件名称
  52993. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  52994. UINT nUTCMS; // 事件时间毫秒数
  52995. UINT nEventID; // 事件ID
  52996. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  52997. NET_TIME_EX stuUTC; // 事件发生的时间
  52998. UINT nPresetID; // 事件触发的预置点号,从1开始没有该字段,表示预置点未知
  52999. UINT nFaceCount; // 抬头人数
  53000. UINT nHumanCount; // 检测到的总人数
  53001. char szReserved[1024]; // 保留字节
  53002. }DEV_EVENT_HEAD_LIFT_DETECTION_INFO;
  53003. ///@brief 事件类型 EVENT_IVS_DRAINING_DETECTION (排水检测识别事件)对应的数据块描述信息
  53004. typedef struct tagDEV_EVENT_DRAINING_DETECTION_INFO
  53005. {
  53006. int nChannelID; // 通道号
  53007. int nAction; // 0:脉冲,1:开始, 2:停止
  53008. char szName[128]; // 事件名称
  53009. char szClass[16]; // 智能事件所属大类
  53010. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53011. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53012. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53013. UINT nUTCMS; // 事件时间毫秒数
  53014. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53015. NET_TIME_EX stuUTC; // 事件发生的时间
  53016. UINT nEventID; // 事件ID
  53017. NET_POINT stuDetectRegion[20]; // 检测区
  53018. int nDetectRegionNum; // 检测区个数
  53019. int nObjectNum; // 检测到的物体信息个数
  53020. DH_MSG_OBJECT_EX2 stuObjects[100]; // 检测目标的物体信息
  53021. int nPresetID; // 事件触发的预置点号,从1开始
  53022. char szReserved[1024]; // 预留字节
  53023. }DEV_EVENT_DRAINING_DETECTION_INFO;
  53024. ///@brief 事件类型 EVENT_IVS_TRAFFIC_CROSSING_SPEEDY (斑马线不减速事件)对应的数据块描述信息
  53025. typedef struct tagDEV_EVENT_TRAFFIC_CROSSING_SPEEDY_INFO
  53026. {
  53027. int nChannelID; // 通道号
  53028. int nAction; // 0:脉冲,1:开始, 2:停止
  53029. char szName[128]; // 事件名称
  53030. char szClass[16]; // 智能事件所属大类
  53031. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53032. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53033. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53034. UINT nUTCMS; // 事件时间毫秒数
  53035. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53036. NET_TIME_EX stuUTC; // 事件发生的时间
  53037. UINT nEventID; // 事件ID
  53038. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  53039. int nMark; // 用于标记抓拍帧
  53040. int nSource; // 视频分析的数据源地址
  53041. int nFrameSequence; // 视频分析帧序号
  53042. int nLane; // 对应车道号
  53043. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  53044. int nSpeed; // 车速,单位km/h
  53045. DH_MSG_OBJECT stuObject; // 车牌信息
  53046. DH_MSG_OBJECT stuVehicle; // 车身信息
  53047. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  53048. EVENT_COMM_INFO stuCommInfo; // 公共信息
  53049. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  53050. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  53051. char szReserved[1024]; // 预留字节
  53052. }DEV_EVENT_TRAFFIC_CROSSING_SPEEDY_INFO;
  53053. ///@brief 事件类型 EVENT_IVS_TRAFFIC_LARGECAR_NO_STOP (大车右转不停车事件)对应的数据块描述信息
  53054. typedef struct tagDEV_EVENT_TRAFFIC_LARGECAR_NO_STOP_INFO
  53055. {
  53056. int nChannelID; // 通道号
  53057. int nAction; // 0:脉冲,1:开始, 2:停止
  53058. char szName[128]; // 事件名称
  53059. char szClass[16]; // 智能事件所属大类
  53060. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53061. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53062. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53063. UINT nUTCMS; // 事件时间毫秒数
  53064. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53065. NET_TIME_EX stuUTC; // 事件发生的时间
  53066. UINT nEventID; // 事件ID
  53067. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  53068. int nMark; // 用于标记抓拍帧
  53069. int nSource; // 视频分析的数据源地址
  53070. int nFrameSequence; // 视频分析帧序号
  53071. int nLane; // 对应车道号
  53072. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  53073. int nSpeed; // 车速,单位km/h
  53074. DH_MSG_OBJECT stuObject; // 车牌信息
  53075. DH_MSG_OBJECT stuVehicle; // 车身信息
  53076. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  53077. EVENT_COMM_INFO stuCommInfo; // 公共信息
  53078. NET_GPS_STATUS_INFO stuGPSStatus; // GPS状态
  53079. char szReserved[1024]; // 预留字节
  53080. }DEV_EVENT_TRAFFIC_LARGECAR_NO_STOP_INFO;
  53081. ///@brief 事件类型 EVENT_IVS_TRAFFIC_OVERTAKE_ONRIGHT (右侧超车事件)对应的数据块描述信息
  53082. typedef struct tagDEV_EVENT_TRAFFIC_OVERTAKE_ONRIGHT_INFO
  53083. {
  53084. int nChannelID; // 通道号
  53085. int nAction; // 0:脉冲,1:开始, 2:停止
  53086. char szName[128]; // 事件名称
  53087. char szClass[16]; // 智能事件所属大类
  53088. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53089. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53090. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53091. UINT nUTCMS; // 事件时间毫秒数
  53092. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53093. NET_TIME_EX stuUTC; // 事件发生的时间
  53094. UINT nEventID; // 事件ID
  53095. int nLane; // 对应车道号
  53096. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  53097. char szReserved1[4]; // 字节对齐
  53098. DH_MSG_OBJECT stuObject; // 车牌信息
  53099. DH_MSG_OBJECT stuVehicle; // 车身信息
  53100. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  53101. EVENT_COMM_INFO stuCommInfo; // 公共信息
  53102. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  53103. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  53104. char szReserved[1024]; // 预留字节
  53105. }DEV_EVENT_TRAFFIC_OVERTAKE_ONRIGHT_INFO;
  53106. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TRUCK_OCCUPIED (大车占道事件)对应的数据块描述信息
  53107. typedef struct tagDEV_EVENT_TRAFFIC_TRUCK_OCCUPIED_INFO
  53108. {
  53109. int nChannelID; // 通道号
  53110. int nAction; // 0:脉冲,1:开始, 2:停止
  53111. char szName[128]; // 事件名称
  53112. char szClass[16]; // 智能事件所属大类
  53113. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53114. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53115. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53116. UINT nUTCMS; // 事件时间毫秒数
  53117. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53118. NET_TIME_EX stuUTC; // 事件发生的时间
  53119. UINT nEventID; // 事件ID
  53120. int nLane; // 对应车道号
  53121. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  53122. char szReserved1[4]; // 字节对齐
  53123. DH_MSG_OBJECT stuObject; // 车牌信息
  53124. DH_MSG_OBJECT stuVehicle; // 车身信息
  53125. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  53126. EVENT_COMM_INFO stuCommInfo; // 公共信息
  53127. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  53128. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  53129. char szReserved[1024]; // 预留字节
  53130. }DEV_EVENT_TRAFFIC_TRUCK_OCCUPIED_INFO;
  53131. ///@brief 事件类型 EVENT_IVS_TRAFFIC_SMALL_DISPLACEMENT (车辆缓行事件)对应的数据块描述信息
  53132. typedef struct tagDEV_EVENT_TRAFFIC_SMALL_DISPLACEMENT_INFO
  53133. {
  53134. int nChannelID; // 通道号
  53135. int nAction; // 0:脉冲,1:开始, 2:停止
  53136. char szName[128]; // 事件名称
  53137. char szClass[16]; // 智能事件所属大类
  53138. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53139. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53140. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53141. UINT nUTCMS; // 事件时间毫秒数
  53142. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53143. NET_TIME_EX stuUTC; // 事件发生的时间
  53144. UINT nEventID; // 事件ID
  53145. UINT nRuleID; // 智能事件规则编号
  53146. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  53147. int nMark; // 用于标记抓拍帧
  53148. int nSource; // 视频分析的数据源地址
  53149. int nFrameSequence; // 视频分析帧序号
  53150. int nLane; // 对应车道号
  53151. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  53152. int nSpeed; // 车速,单位km/h
  53153. DH_MSG_OBJECT stuObject; // 车牌信息
  53154. DH_MSG_OBJECT stuVehicle; // 车身信息
  53155. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  53156. EVENT_COMM_INFO stuCommInfo; // 公共信息
  53157. NET_GPS_INFO stuGPSInfo; // GPS位置信息
  53158. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  53159. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  53160. char szReserved[1024]; // 预留字节
  53161. }DEV_EVENT_TRAFFIC_SMALL_DISPLACEMENT_INFO;
  53162. ///@brief 事件类型 EVENT_IVS_TRAFFIC_OCCUPYING_THEPATH (占道事件)对应的数据块描述信息
  53163. typedef struct tagNET_EVENT_TRAFFIC_OCCUPYING_THEPATH_INFO
  53164. {
  53165. int nChannelID; // 通道号
  53166. int nAction; // 0:脉冲,1:开始, 2:停止
  53167. char szName[128]; // 事件名称
  53168. char szClass[16]; // 智能事件所属大类
  53169. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53170. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53171. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53172. UINT nUTCMS; // 事件时间毫秒数
  53173. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53174. NET_TIME_EX stuUTC; // 事件发生的时间
  53175. UINT nEventID; // 事件ID
  53176. UINT nRuleID; // 智能事件规则编号
  53177. int nLane; // 对应车道号
  53178. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  53179. DH_MSG_OBJECT stuObject; // 车牌信息
  53180. DH_MSG_OBJECT stuVehicle; // 车身信息
  53181. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  53182. EVENT_COMM_INFO stuCommInfo; // 公共信息
  53183. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  53184. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  53185. int nSpeed; // 车速,单位km/h
  53186. char szReserved[1020]; // 预留字节
  53187. }NET_EVENT_TRAFFIC_OCCUPYING_THEPATH_INFO;
  53188. ///@brief 事件类型 EVENT_IVS_SILICON_FIREPUTTER_DETECTION (刺火推杆检测事件)对应的数据块描述信息
  53189. typedef struct tagNET_EVENT_SILICON_FIREPUTTER_DETECTION_INFO
  53190. {
  53191. int nChannelID; // 通道号
  53192. int nAction; // 0:脉冲,1:开始, 2:停止
  53193. char szName[128]; // 事件名称
  53194. char szClass[16]; // 智能事件所属大类
  53195. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53196. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53197. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53198. UINT nUTCMS; // 事件时间毫秒数
  53199. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53200. NET_TIME_EX stuUTC; // 事件发生的时间
  53201. UINT nEventID; // 事件ID
  53202. UINT nRuleID; // 智能事件规则编号
  53203. UINT nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  53204. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  53205. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景大图信息
  53206. DH_MSG_OBJECT stuObjects[128]; // 检测目标的物体信息
  53207. int nObjectNum; // 物体个数
  53208. int nDetectRegionNum; // 规则区域个数
  53209. DH_POINT stuDetectRegion[20]; // 规则检测区域
  53210. char szReserved[1024]; // 预留字节
  53211. }NET_EVENT_SILICON_FIREPUTTER_DETECTION_INFO;
  53212. ///@brief 事件类型 EVENT_IVS_GREEN_BELT (绿化带报警事件)对应的数据块描述信息
  53213. typedef struct tagDEV_EVENT_GREEN_BELT_ALARM_INFO
  53214. {
  53215. int nChannelID; // 通道号
  53216. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53217. char szName[128]; // 事件名称
  53218. char szClass[16]; // 智能事件所属大类
  53219. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53220. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53221. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53222. UINT nUTCMS; // 事件时间毫秒数
  53223. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53224. NET_TIME_EX stuUTC; // 事件发生的时间
  53225. UINT nEventID; // 事件ID
  53226. UINT nRatio; // 区域实际占比
  53227. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  53228. int nImageInfoNum; // 图片信息个数
  53229. char szReserved[1016 - POINTERSIZE]; // 保留字节
  53230. }DEV_EVENT_GREEN_BELT_ALARM_INFO;
  53231. ///@brief 事件类型 EVENT_IVS_ROAD_DAMAGE (道路损坏报警事件)对应的数据块描述信息
  53232. typedef struct tagDEV_EVENT_ROAD_DAMAGE_ALARM_INFO
  53233. {
  53234. int nChannelID; // 通道号
  53235. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53236. char szName[128]; // 事件名称
  53237. char szClass[16]; // 智能事件所属大类
  53238. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53239. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53240. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53241. UINT nUTCMS; // 事件时间毫秒数
  53242. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53243. NET_TIME_EX stuUTC; // 事件发生的时间
  53244. UINT nEventID; // 事件ID
  53245. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  53246. int nImageInfoNum; // 图片信息个数
  53247. char szReserved[1020 - POINTERSIZE]; // 保留字节
  53248. }DEV_EVENT_ROAD_DAMAGE_ALARM_INFO;
  53249. ///@brief 事件类型 EVENT_IVS_TRAFFIC_SERPENTINE_CHANGE_LANE (蛇形变道事件)对应的数据块描述信息
  53250. typedef struct tagDEV_EVENT_TRAFFIC_SERPENTINE_CHANGE_LANE_INFO
  53251. {
  53252. int nChannelID; // 通道号
  53253. int nAction; // 事件动作 0:脉冲
  53254. char szName[128]; // 事件名称
  53255. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53256. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53257. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53258. UINT nUTCMS; // 事件时间毫秒数
  53259. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53260. NET_TIME_EX stuUTC; // 事件发生的时间
  53261. UINT nEventID; // 事件ID
  53262. UINT nEventType; // 事件类型掩码,bit0表示报警事件,bit1表示违章事件。若bit0和bit1都置位则既是报警事件又是违章事件,默认bit0置位,报警事件
  53263. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  53264. int nMark; // 用于标记抓拍帧
  53265. int nSource; // 视频分析的数据源地址
  53266. int nFrameSequence; // 视频分析帧序号
  53267. int nLane; // 对应车道号
  53268. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  53269. int nSpeed; // 车速,单位km/h
  53270. DH_MSG_OBJECT stuObject; // 车牌信息
  53271. DH_MSG_OBJECT stuVehicle; // 车身信息
  53272. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  53273. EVENT_COMM_INFO stuCommInfo; // 公共信息
  53274. NET_GPS_INFO stuGPSInfo; // GPS位置信息
  53275. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  53276. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  53277. char szReserved[1024]; // 预留字节
  53278. }DEV_EVENT_TRAFFIC_SERPENTINE_CHANGE_LANE_INFO;
  53279. ///@brief 事件类型 EVENT_IVS_PERSON_TRANS_DETECTION (人员传输检测事件)对应的数据块描述信息
  53280. typedef struct tagDEV_EVENT_IVS_PERSON_TRANS_DETECTION_INFO
  53281. {
  53282. int nChannelID; // 通道号
  53283. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53284. char szName[128]; // 事件名称
  53285. char szClass[16]; // 智能事件所属大类
  53286. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53287. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53288. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53289. UINT nUTCMS; // 事件时间毫秒数
  53290. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53291. NET_TIME_EX stuUTC; // 事件发生的时间
  53292. UINT nEventID; // 事件ID
  53293. int nViolationNum; // 违规物品类型个数
  53294. char szViolation[10][32]; // 设备检测到人员携带的违规物品类型 当前违规物品类型如下:"Ladder": 梯子,"Sack":袋子,"Bag":包,"Spade":铁锹 ,"Box":端子箱
  53295. char szReserved[1024]; // 保留字节
  53296. }DEV_EVENT_IVS_PERSON_TRANS_DETECTION_INFO;
  53297. ///@brief 事件类型 EVENT_IVS_ALARM_METHANE_ALARM (甲烷报警事件)对应的数据块描述信息
  53298. typedef struct tagNET_DEV_EVENT_METHANE_ALARM_INFO
  53299. {
  53300. int nChannelID; // 通道号
  53301. int nAction; // 事件动作, 0:脉冲 1:开始 2:停止
  53302. NET_TIME_EX stuTime; // 事件发生的时间,带时区偏差
  53303. UINT nConcentration; // 报警时的甲烷浓度,单位ppm.m
  53304. UINT nConcentrationThreshold;// 报警阈值,超过该值报警,单位ppm.m
  53305. char szReserved[1020]; // 保留字节
  53306. }NET_DEV_EVENT_METHANE_ALARM_INFO;
  53307. ///@brief 图片信息
  53308. typedef struct tagNET_SCRAPSTEEL_DETECT_IMAGE_INFO
  53309. {
  53310. UINT nIndexInData; // 在上传图片数据中的图片序号
  53311. int nWidth; // 图片宽度
  53312. int nHeight; // 图片高度
  53313. char szImageID[42]; // 图片ID, 有效数据41位
  53314. char szReserved[256]; // 保留字节
  53315. }NET_SCRAPSTEEL_DETECT_IMAGE_INFO;
  53316. ///@brief 废钢厚度,杂质及危险品统计量
  53317. typedef struct tagNET_SCRAPSTEEL_STATISTICS_INFO
  53318. {
  53319. int nType; // 目标粗类别: 0-未知, 1-废钢厚度类型, 2-废钢杂质类型, 3-废钢危险品类型, 4-废钢料型类型
  53320. int nSubType; // 目标细类别,对应粗类别的类型, 具体描述如下:
  53321. /**************************************** 目标细类别 *******************************************/
  53322. /*
  53323. *废钢厚度细分类型枚举: 0- 未知, 1-厚度≥1mm, 2-厚度≥2mm, 3-厚度≥3mm ... 20-厚度≥20mm, 21-压块
  53324. *废钢杂质细分类型枚举: 0x0000-未知, 0x1000-铁锈, 0x2000-非金属杂质:橡胶、包芯线、炉渣、矿渣、铁渣、陶瓷、泥沙、水泥、石块、木料、耐材、塑料、棉布、纱线、纤维、水、冰等, 0x3000-一类金属杂质: 细铁丝、彩钢板、钢丝绳、钢绞线、电焊丝等, 0x4000-二类金属杂质: 含油、含漆、镀锌等有害废钢和铸铁
  53325. *废钢危险品细分类型枚举: 0x0000-未知,0x1000-A类危险品, 0x1001-A类危险品:易燃易爆物品, 0x1002-A类危险品:有毒有害物品, 0x2000-B类危险品, 0x2001-B类危险品:密闭件, 0x3000-C类危险品, 0x3001-C类危险品:半密闭件, 0x3002-C类危险品:军械用品
  53326. *废钢料型细分类型枚举: 0-未知, 1-冲子, 2-冲豆, 3-镐豆, 4-钢筋切头, 5-工业下脚料, 6-钢板料, 7-工槽角切头, 8-圆钢头, 9-轧废, 10-钢坯头, 11-铁道轨, 12-法兰片, 13-弓子片(钢板弹簧)厚度≥10mm, 14-铁道芯, 15-模具钢, 16-辊剪料, 17-机械冲压废料, 18-冷轧板料, 19-热冲马蹄铁, 20-轴承芯, 21-管子压片, 22-角钢, 23-槽钢, 24-圆钢厚度≥4mm*, 25-机器零部件 26-铆焊件 27-大车轮轴, 28-拆船废料, 29-管切头, 30-螺纹钢头, 31-钢板下脚料, 32-花铁, 33-花边料, 34-08A1压块, 35-扁丝压块, 36-钢销压块, 37-钢筋压块, 38-铁板下脚料, 39-螺栓, 40-螺目 41-船板, 42-型钢边角料, 43-无锈铁钉, 44-无锈铁丝, 45-无镀锌薄板, 46-下脚料打包块, 47-花板料, 48-拆车废料, 49-08A1破碎废钢*, 50-特级破碎料, 51-一级破碎料, 52-硅钢片破碎料(厚度小于1mm), 53-渣钢, 54-小跑钢, 55-水洗豆, 56-重废, 57-中废, 58-轻废
  53327. */
  53328. /**************************************** 目标细类别 *******************************************/
  53329. int nNum; // 目标细类别的检测/分割数量
  53330. float fNumRatio; // 目标细类别的数量占比,百分比,如0.75表示75%
  53331. float fAreaRatio; // 目标细类别的面积占比,百分比,如0.75表示75%
  53332. int nArea; // 目标细类别的面积(像素)
  53333. char szReserved[256]; // 保留字节
  53334. }NET_SCRAPSTEEL_STATISTICS_INFO;
  53335. ///@brief 废钢单层分析结果
  53336. typedef struct tagNET_SCRAPSTEEL_LAYER_DETECT_INFO
  53337. {
  53338. int nScrapsteelState; // 状态变量: 0-未知, 1-是, 2-不是
  53339. float fConsistConfidence; // 票料一致的概率
  53340. float fSimilarity; // 当前合法帧与上一合法帧的相似度
  53341. int nScrapsteelType; // 废钢检测料型, 取值参考NET_SCRAPSTEEL_STATISTICS_INFO中的nSubType字段
  53342. int nStatisticsInfoNum; // 废钢厚度,杂质及危险品统计量个数, 最大支持32
  53343. NET_SCRAPSTEEL_STATISTICS_INFO stuStatisticsInfo[32]; // 废钢厚度,杂质及危险品统计量
  53344. char szReserved[256]; // 保留字节
  53345. }NET_SCRAPSTEEL_LAYER_DETECT_INFO;
  53346. ///@brief 检测区穿越类型
  53347. typedef enum tagEM_CROSS_DETECT_REGION_TYPE
  53348. {
  53349. EM_CROSS_DETECT_REGION_TYPE_UNKNOWN, // 未知
  53350. EM_CROSS_DETECT_REGION_TYPE_NULL, // 无
  53351. EM_CROSS_DETECT_REGION_TYPE_ENTER, // 进入
  53352. EM_CROSS_DETECT_REGION_TYPE_LEAVE, // 离开
  53353. EM_CROSS_DETECT_REGION_TYPE_BOTH, // 进入和离开
  53354. }EM_CROSS_DETECT_REGION_TYPE;
  53355. ///@brief 检测区域
  53356. typedef struct tagNET_SCRAPSTEEL_DETECT_REGION_INFO
  53357. {
  53358. int nPointNum; // 设备返回的顶点坐标的个数, 最大为30
  53359. NET_POINT stuPoint[30]; // 多边形顶点坐标, 多边形中每个顶点的坐标归一化到[0,8192)区间
  53360. EM_CROSS_DETECT_REGION_TYPE emCrosssType; // 检测区穿越类型
  53361. }NET_SCRAPSTEEL_DETECT_REGION_INFO;
  53362. ///@brief 事件类型 EVENT_IVS_SCRAPSTEEL_DETECT (废钢检测事件) 对应的数据块描述信息
  53363. typedef struct tagNET_DEV_EVENT_SCRAPSTEEL_DETECT_INFO
  53364. {
  53365. int nChannelID; // 通道号
  53366. int nAction; // 0:脉冲,1:开始, 2:停止
  53367. char szName[128]; // 事件名称
  53368. char szClass[16]; // 智能事件所属大类
  53369. UINT nRuleID; // 规则ID, 用于标示哪个规则触发的事件
  53370. UINT nUTCMS; // 事件时间毫秒数
  53371. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53372. NET_TIME_EX stuUTC; // 事件发生的时间,带时区偏差的UTC时间,单位秒
  53373. UINT nEventID; // 事件ID
  53374. UINT nSequence; // 帧序号
  53375. NET_SCRAPSTEEL_DETECT_REGION_INFO stuDetectRegion; // 检测区域
  53376. char szPlateNum[32]; // 车牌号码
  53377. char szPlateChannelCode[48]; // 车牌识别通道用户数据
  53378. NET_SCRAPSTEEL_DETECT_IMAGE_INFO stuOrgImage; // 原始图片信息
  53379. NET_SCRAPSTEEL_DETECT_IMAGE_INFO stuRenderImage; // 与原始图片信息(stuOrgImage)对应的渲染图像, 将检测分割结果叠加到原图上
  53380. NET_SCRAPSTEEL_LAYER_DETECT_INFO stuScrapsteelResult; // 废钢分析结果
  53381. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  53382. int nImageInfoNum; // 设备返回的图片信息个数
  53383. char szReserved[1024]; // 预留字节
  53384. } NET_DEV_EVENT_SCRAPSTEEL_DETECT_INFO;
  53385. ///@brief 事件类型 EVENT_IVS_SCRAPSTEEL_DANGER_DETECT (废钢危险品事件) 对应的数据块描述信息
  53386. typedef struct tagNET_DEV_EVENT_SCRAPSTEEL_DANGER_DETECT_INFO
  53387. {
  53388. int nChannelID; // 通道号
  53389. int nAction; // 0:脉冲,1:开始, 2:停止
  53390. char szName[128]; // 事件名称
  53391. char szClass[16]; // 智能事件所属大类
  53392. UINT nRuleID; // 规则ID, 用于标示哪个规则触发的事件
  53393. UINT nUTCMS; // 事件时间毫秒数
  53394. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53395. NET_TIME_EX stuUTC; // 事件发生的时间,带时区偏差的UTC时间,单位秒
  53396. UINT nEventID; // 事件ID
  53397. NET_SCRAPSTEEL_DETECT_REGION_INFO stuDetectRegion; // 检测区域
  53398. NET_SCRAPSTEEL_DETECT_IMAGE_INFO stuOrgImage; // 原始图片信息
  53399. NET_SCRAPSTEEL_DETECT_IMAGE_INFO stuRenderImage; // 与原始图片信息(stuOrgImage)对应的渲染图像, 将检测分割结果叠加到原图上
  53400. DH_MSG_OBJECT_EX2 stuObjects[128]; // 设备返回的检测危险品目标的物体信息 数组
  53401. UINT nObjectsCount; // 设备返回的检测危险品目标的物体信息 个数
  53402. int nImageInfoNum; // 设备返回的图片信息个数
  53403. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  53404. char szReserved[1024]; // 预留字节
  53405. } NET_DEV_EVENT_SCRAPSTEEL_DANGER_DETECT_INFO;
  53406. ///@brief 事件类型 EVENT_IVS_CHANGE_DETECTION (差异检测事件) 对应的数据块描述信息
  53407. typedef struct tagNET_DEV_EVENT_CHANGE_DETECTION_INFO
  53408. {
  53409. int nChannelID; // 通道号
  53410. int nAction; // 0:脉冲,1:开始, 2:停止
  53411. char szName[128]; // 事件名称
  53412. char szClass[16]; // 智能事件所属大类
  53413. double dbPTS; // 时间戳(单位是毫秒)
  53414. NET_TIME_EX stuUTC; // 事件发生的时间
  53415. int nUTCMS; // 事件时间毫秒数
  53416. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  53417. int nCountInGroup; // 一个事件组内的抓拍张数
  53418. int nIndexInGroup; // 一个事件组内的抓拍序号, 从1开始
  53419. UINT nEventID; // 事件ID
  53420. DH_MSG_OBJECT* pstObjects; // 检测到的多个物体信息
  53421. int nObjectNum; // 检测到的多个物体个数
  53422. char szReserved[1020]; // 保留字节
  53423. } NET_DEV_EVENT_CHANGE_DETECTION_INFO;
  53424. ///@brief 事件类型 EVENT_IVS_HUMAN_ANIMAL_COEXISTENCE (人和动物检测事件)对应的数据块描述信息
  53425. typedef struct tagDEV_EVENT_HUMAN_ANIMAL_COEXISTENCE_INFO
  53426. {
  53427. int nChannelID; // 通道号
  53428. int nAction; // 事件动作, 1:开始 2:停止
  53429. char szName[128]; // 事件名称
  53430. double dbPTS; // 时间戳(单位是毫秒)
  53431. NET_TIME_EX stuUTC; // 事件发生的时间
  53432. int nUTCMS; // 事件时间毫秒数
  53433. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  53434. UINT nRuleID; // 规则ID, 用于标示哪个规则触发的事件
  53435. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  53436. int nCountInGroup; // 一个事件组内的抓拍张数
  53437. int nIndexInGroup; // 一个事件组内的抓拍序号, 从1开始
  53438. UINT nEventID; // 事件ID
  53439. int nPresetID; // 事件触发的预置点号,从1开始, 0 表示无效
  53440. EM_HUMAN_ANIMAL_ALARM_TYPE emAlarmType; // 事件报警类型
  53441. EM_DETECTION_SCENE_TYPE emDetectionSceneType; // 场景类型
  53442. char szReserved[1024]; // 保留字节
  53443. }DEV_EVENT_HUMAN_ANIMAL_COEXISTENCE_INFO;
  53444. ///@brief 贮柜当前状态
  53445. typedef enum tagEM_TANK_STATUS
  53446. {
  53447. EM_TANK_STATUS_UNKNOWN, // 未知
  53448. EM_TANK_STATUS_DISCHARGING, // 出料
  53449. EM_TANK_STATUS_CHARGING, // 进料
  53450. EM_TANK_STATUS_IDLE, // 空闲
  53451. }EM_TANK_STATUS;
  53452. ///@brief 事件类型 EVENT_IVS_TANK_CAPACITY_DETECTION (贮柜储量检测事件)对应的数据块描述信息
  53453. typedef struct tagDEV_EVENT_IVS_TANK_CAPACITY_DETECTION_INFO
  53454. {
  53455. int nChannelID; // 通道号
  53456. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53457. char szName[128]; // 事件名称
  53458. char szClass[16]; // 智能事件所属大类
  53459. UINT nObjectID; // 物体ID
  53460. UINT nRuleID; // 智能事件规则编号
  53461. NET_TIME_EX stuUTC; // 事件发生的时间
  53462. UINT nUTCMS; // 事件时间毫秒数
  53463. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53464. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53465. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53466. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53467. UINT nCurrentRatio; // 用料当前占比(百分比)
  53468. EM_TANK_STATUS emTankStatus; // 贮柜当前状态
  53469. char szReserved[1020]; // 保留字节
  53470. }DEV_EVENT_IVS_TANK_CAPACITY_DETECTION_INFO;
  53471. ///@brief 事件类型 EVENT_IVS_TANK_DUMPING_DETECTION (周转箱倒料不干净检测事件)对应的数据块描述信息
  53472. typedef struct tagDEV_EVENT_IVS_TANK_DUMPING_DETECTION_INFO
  53473. {
  53474. int nChannelID; // 通道号
  53475. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53476. char szName[128]; // 事件名称
  53477. char szClass[16]; // 智能事件所属大类
  53478. UINT nObjectID; // 物体ID
  53479. UINT nRuleID; // 智能事件规则编号
  53480. NET_TIME_EX stuUTC; // 事件发生的时间
  53481. UINT nUTCMS; // 事件时间毫秒数
  53482. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53483. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53484. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53485. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53486. UINT nCurrentRatio; // 用料当前占比(百分比)
  53487. char szReserved[1024]; // 保留字节
  53488. }DEV_EVENT_IVS_TANK_DUMPING_DETECTION_INFO;
  53489. ///@brief 事件类型 EVENT_IVS_TANK_OVERFLOW_DETECTION (尘棒箱满溢检测事件)对应的数据块描述信息
  53490. typedef struct tagDEV_EVENT_IVS_TANK_OVERFLOW_DETECTION_INFO
  53491. {
  53492. int nChannelID; // 通道号
  53493. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53494. char szName[128]; // 事件名称
  53495. char szClass[16]; // 智能事件所属大类
  53496. UINT nObjectID; // 物体ID
  53497. UINT nRuleID; // 智能事件规则编号
  53498. NET_TIME_EX stuUTC; // 事件发生的时间
  53499. UINT nUTCMS; // 事件时间毫秒数
  53500. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53501. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53502. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53503. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53504. UINT nCurrentRatio; // 用料当前占比(百分比)
  53505. char szReserved[1024]; // 保留字节
  53506. }DEV_EVENT_IVS_TANK_OVERFLOW_DETECTION_INFO;
  53507. ///@brief 事件类型 EVENT_IVS_DRIVE_HANDSOFF_STEERING_WHEEL (驾驶行为分析手离开方向盘检测事件)对应的数据块描述信息
  53508. typedef struct tagDEV_EVENT_DRIVE_HANDSOFF_STEERING_WHEEL_INFO
  53509. {
  53510. int nChannelID; // 通道号
  53511. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53512. char szName[128]; // 事件名称
  53513. char szClass[16]; // 智能事件所属大类
  53514. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53515. NET_TIME_EX stuUTC; // 事件发生的时间
  53516. UINT nUTCMS; // 事件时间毫秒数
  53517. UINT nEventID; // 事件ID
  53518. UINT nHandsOffState; // 双手脱离方向盘状态,1:单手脱离报警,2:双手脱离报警,3:方向盘遮挡报警
  53519. UINT nAlarmFlag; // 报警触发标识 0:未报警 1:报警
  53520. UINT nReportFlag; // 报警上传标识 0:未报警 1:报警
  53521. UINT nPhoneAlarmFlag; // 玩手机报警触发标识 0:未报警 1:报警
  53522. UINT nPhoneReportFlag; // 玩手机报警上传标识 0:未报警(不上报平台) 1:报警(上报平台)
  53523. UINT nNobeltFlag; // 未系安全带报警触发标识 0:未报警 1:报警
  53524. UINT nNobeltReportFlag; // 未系安全带报警上传标识 0:未报警(不上报平台) 1:报警(上报平台)
  53525. UINT nPhoneLocalFlag; // 根据玩手机动作持续时间决定是否报警 0:未报警1:本地报警
  53526. SCENE_IMAGE_INFO_EX stuImage; // 小图
  53527. SCENE_IMAGE_INFO_EX stuImageOther[16]; // 图片数组
  53528. int nImageOtherNum; // 图片数组个数
  53529. int nRelatingVideoInfoNum; // 违章关联的多个视频信息个数
  53530. NET_RELATING_VIDEO_INFO stuRelatingVideoInfo[16]; // 违章关联的多个视频信息数组,最多支持16个视频
  53531. char szVideoPath[256]; // 违章关联视频FTP上传路径
  53532. char szReserved[764]; // 预留字节
  53533. }DEV_EVENT_DRIVE_HANDSOFF_STEERING_WHEEL_INFO;
  53534. ///@brief 事件类型 EVENT_IVS_DUSTBIN_RETREAT (垃圾桶撤离检测事件)对应的数据块描述信息
  53535. typedef struct tagNET_DEV_EVENT_DUSTBIN_RETREAT_INFO
  53536. {
  53537. int nChannelID; // 通道号
  53538. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53539. char szName[128]; // 事件名称
  53540. char szClass[16]; // 智能事件所属大类
  53541. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53542. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53543. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53544. UINT nUTCMS; // 事件时间毫秒数
  53545. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53546. NET_TIME_EX stuUTC; // 事件发生的时间
  53547. UINT nEventID; // 事件ID
  53548. int nObjectNum; // 检测到的物体个数
  53549. DH_MSG_OBJECT stuObjects[64]; // 检测到的物体信息
  53550. NET_POINT stuDetectRegion[20]; // 检测区
  53551. int nDetectRegionNum; // 检测区个数
  53552. UINT nPresetID; // 事件触发的预置点号,从1开始
  53553. char szPresetName[64]; // 事件触发的预置点名称
  53554. UINT nViolationDuration; // 违法持续时长,单位:秒
  53555. UINT nPictureType; // 图片类型 0-普通 1-合成 2-抠图
  53556. char szSourceID[32]; // 事件关联ID
  53557. UINT nRuleId; // 规则编号
  53558. char szRuleName[128]; // 规则名称
  53559. int nAlarmType; // -1表示未知类型,报警逻辑类型,0表示为垃圾桶撤离导致的报警,1表示为没有垃圾桶导致的报警
  53560. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  53561. int nImageInfoNum; // 图片信息个数
  53562. char szReserved[1012 - POINTERSIZE]; // 预留字节
  53563. }NET_DEV_EVENT_DUSTBIN_RETREAT_INFO;
  53564. ///@brief 事件类型 EVENT_IVS_SIGNAL_LIGHT_ON_DETECTION (信号灯同亮检测事件)对应的数据块描述信息
  53565. typedef struct tagNET_DEV_EVENT_SIGNAL_LIGHT_ON_DETECTION_INFO
  53566. {
  53567. int nChannelID; // 通道号
  53568. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53569. char szName[128]; // 事件名称
  53570. char szClass[16]; // 智能事件所属大类
  53571. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53572. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53573. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53574. UINT nUTCMS; // 事件时间毫秒数
  53575. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53576. NET_TIME_EX stuUTC; // 事件发生的时间
  53577. UINT nEventID; // 事件ID
  53578. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  53579. NET_POINT stuDetectRegion[20]; // 检测区
  53580. int nDetectRegionNum; // 检测区个数
  53581. UINT nIndexInData; // 在上传图片数据中的图片序号
  53582. char szChannelId[260]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  53583. char szReserved[760]; // 预留字节
  53584. }NET_DEV_EVENT_SIGNAL_LIGHT_ON_DETECTION_INFO;
  53585. ///@brief 事件类型 EVENT_IVS_SIGNAL_LIGHT_FLASHYELLOW_DETECTION (单色灯黄闪检测事件)对应的数据块描述信息
  53586. typedef struct tagNET_DEV_EVENT_SIGNAL_LIGHT_FLASHYELLOW_DETECTION_INFO
  53587. {
  53588. int nChannelID; // 通道号
  53589. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53590. char szName[128]; // 事件名称
  53591. char szClass[16]; // 智能事件所属大类
  53592. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53593. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53594. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53595. UINT nUTCMS; // 事件时间毫秒数
  53596. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53597. NET_TIME_EX stuUTC; // 事件发生的时间
  53598. UINT nEventID; // 事件ID
  53599. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  53600. NET_POINT stuDetectRegion[20]; // 检测区
  53601. int nDetectRegionNum; // 检测区个数
  53602. UINT nIndexInData; // 在上传图片数据中的图片序号
  53603. char szChannelId[260]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  53604. char szReserved[760]; // 预留字节
  53605. }NET_DEV_EVENT_SIGNAL_LIGHT_FLASHYELLOW_DETECTION_INFO;
  53606. ///@brief 事件类型 EVENT_IVS_SIGNAL_LIGHT_NOBRIGHT_DETECTION (信号灯亮度不足检测事件)对应的数据块描述信息
  53607. typedef struct tagNET_DEV_EVENT_SIGNAL_LIGHT_NOBRIGHT_DETECTION_INFO
  53608. {
  53609. int nChannelID; // 通道号
  53610. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53611. char szName[128]; // 事件名称
  53612. char szClass[16]; // 智能事件所属大类
  53613. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53614. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53615. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53616. UINT nUTCMS; // 事件时间毫秒数
  53617. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53618. NET_TIME_EX stuUTC; // 事件发生的时间
  53619. UINT nEventID; // 事件ID
  53620. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  53621. NET_POINT stuDetectRegion[20]; // 检测区
  53622. int nDetectRegionNum; // 检测区个数
  53623. UINT nIndexInData; // 在上传图片数据中的图片序号
  53624. char szChannelId[260]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  53625. char szReserved[760]; // 预留字节
  53626. }NET_DEV_EVENT_SIGNAL_LIGHT_NOBRIGHT_DETECTION_INFO;
  53627. ///@brief 事件类型 EVENT_IVS_SIGNAL_LIGHT_BLOCKING_DETECTION (信号灯遮挡检测事件)对应的数据块描述信息
  53628. typedef struct tagNET_DEV_EVENT_SIGNAL_LIGHT_BLOCKING_DETECTION_INFO
  53629. {
  53630. int nChannelID; // 通道号
  53631. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53632. char szName[128]; // 事件名称
  53633. char szClass[16]; // 智能事件所属大类
  53634. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53635. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53636. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53637. UINT nUTCMS; // 事件时间毫秒数
  53638. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53639. NET_TIME_EX stuUTC; // 事件发生的时间
  53640. UINT nEventID; // 事件ID
  53641. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  53642. NET_POINT stuDetectRegion[20]; // 检测区
  53643. int nDetectRegionNum; // 检测区个数
  53644. UINT nIndexInData; // 在上传图片数据中的图片序号
  53645. char szChannelId[260]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  53646. char szReserved[760]; // 预留字节
  53647. }NET_DEV_EVENT_SIGNAL_LIGHT_BLOCKING_DETECTION_INFO;
  53648. ///@brief 事件类型 EVENT_IVS_SIGNAL_LIGHT_ALWAYSON_DETECTION (单色灯常亮检测事件)对应的数据块描述信息
  53649. typedef struct tagNET_DEV_EVENT_SIGNAL_LIGHT_ALWAYSON_DETECTION_INFO
  53650. {
  53651. int nChannelID; // 通道号
  53652. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53653. char szName[128]; // 事件名称
  53654. char szClass[16]; // 智能事件所属大类
  53655. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53656. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53657. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53658. UINT nUTCMS; // 事件时间毫秒数
  53659. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53660. NET_TIME_EX stuUTC; // 事件发生的时间
  53661. UINT nEventID; // 事件ID
  53662. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  53663. NET_POINT stuDetectRegion[20]; // 检测区
  53664. int nDetectRegionNum; // 检测区个数
  53665. UINT nIndexInData; // 在上传图片数据中的图片序号
  53666. char szChannelId[260]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  53667. char szReserved[760]; // 预留字节
  53668. }NET_DEV_EVENT_SIGNAL_LIGHT_ALWAYSON_DETECTION_INFO;
  53669. ///@brief 事件类型 EVENT_IVS_LEDSCREEN_NOTLIGHTUP_DETECTION (LED屏不亮检测事件)对应的数据块描述信息
  53670. typedef struct tagNET_DEV_EVENT_LEDSCREEN_NOTLIGHTUP_DETECTION_INFO
  53671. {
  53672. int nChannelID; // 通道号
  53673. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53674. char szName[128]; // 事件名称
  53675. char szClass[16]; // 智能事件所属大类
  53676. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53677. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53678. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53679. UINT nUTCMS; // 事件时间毫秒数
  53680. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53681. NET_TIME_EX stuUTC; // 事件发生的时间
  53682. UINT nEventID; // 事件ID
  53683. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  53684. NET_POINT stuDetectRegion[20]; // 检测区
  53685. int nDetectRegionNum; // 检测区个数
  53686. UINT nIndexInData; // 在上传图片数据中的图片序号
  53687. char szChannelId[260]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  53688. char szReserved[760]; // 预留字节
  53689. }NET_DEV_EVENT_LEDSCREEN_NOTLIGHTUP_DETECTION_INFO;
  53690. ///@brief 事件类型 EVENT_IVS_SIGNAL_LIGHTOFF_DETECTION (信号灯不亮检测事件)对应的数据块描述信息
  53691. typedef struct tagNET_DEV_EVENT_SIGNAL_LIGHTOFF_DETECTION_INFO
  53692. {
  53693. int nChannelID; // 通道号
  53694. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53695. char szName[128]; // 事件名称
  53696. char szClass[16]; // 智能事件所属大类
  53697. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53698. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53699. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53700. UINT nUTCMS; // 事件时间毫秒数
  53701. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53702. NET_TIME_EX stuUTC; // 事件发生的时间
  53703. UINT nEventID; // 事件ID
  53704. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  53705. NET_POINT stuDetectRegion[20]; // 检测区
  53706. int nDetectRegionNum; // 检测区个数
  53707. UINT nIndexInData; // 在上传图片数据中的图片序号
  53708. char szChannelId[260]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  53709. char szReserved[760]; // 预留字节
  53710. }NET_DEV_EVENT_SIGNAL_LIGHTOFF_DETECTION_INFO;
  53711. ///@brief 图片信息
  53712. typedef struct tagNET_COMPARE_DETECTION_IMAGEINFO
  53713. {
  53714. int nIndexInData; // 在上传图片数据中的图片序号
  53715. UINT nPicType; // 图片类型 0:算法处理后的图 1:抓图图片信息
  53716. UINT nOffset; // 在二进制数据块中的偏移
  53717. UINT nLength; // 图片大小,单位:字节
  53718. char szFilePath[256]; // 图片路径
  53719. NET_RECT stuBoundingBox; // 包围盒
  53720. char szReserved[256]; // 预留字节
  53721. }NET_COMPARE_DETECTION_IMAGEINFO;
  53722. ///@brief 事件类型 EVENT_IVS_PIC_COMPARE_DETECTION (图片比对不上报警)对应的数据块描述信息
  53723. typedef struct tagNET_DEV_EVENT_PIC_COMPARE_DETECTION_INFO
  53724. {
  53725. int nChannelID; // 通道号
  53726. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53727. char szName[128]; // 事件名称
  53728. char szClass[16]; // 智能事件所属大类
  53729. UINT nEventID; // 事件ID
  53730. UINT nUTCMS; // 事件时间毫秒数
  53731. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53732. NET_TIME_EX stuUTC; // 事件发生的时间
  53733. UINT nPresetID; // 预置点ID,如果普通IPC则为0
  53734. char szTaskID[64]; // 任务ID 添加时设备端生成
  53735. BOOL bIsAlarm; // FALSE 表示不报警 TRUE 表示报警
  53736. int nImageInfoNum; // 图片信息个数
  53737. NET_COMPARE_DETECTION_IMAGEINFO stuImageInfo[64]; // 图片信息
  53738. char szReserved[1024]; // 预留字节
  53739. }NET_DEV_EVENT_PIC_COMPARE_DETECTION_INFO;
  53740. ///@brief 跟踪物体
  53741. typedef struct tagNET_TRACK_OBJECT_INFO
  53742. {
  53743. int nTrackID; // 跟踪目标ID
  53744. int nSpeed; // 速度,单位米/秒,扩大100倍
  53745. int nLongitude; // 经度,用整型传输,1000000倍,小数点后6位有效,不足6位用0补齐
  53746. int nLatitude; // 纬度,用整型传输,1000000倍,小数点后6位有效,不足6位用0补齐
  53747. char szReserved[256]; // 预留字节
  53748. }NET_TRACK_OBJECT_INFO;
  53749. ///@brief 事件类型 EVENT_IVS_LINK_AGE_RADAR_ALARM (联动事件(作为细节事件、联动球机时发送))对应的数据块描述信息
  53750. typedef struct tagNET_DEV_EVENT_LINK_AGE_RADAR_ALARM_INFO
  53751. {
  53752. int nChannelID; // 通道号
  53753. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53754. char szName[128]; // 事件名称
  53755. char szClass[16]; // 智能事件所属大类
  53756. UINT nUTCMS; // 事件时间毫秒数
  53757. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53758. NET_TIME_EX stuUTC; // 事件发生的时间
  53759. UINT nEventID; // 事件ID
  53760. int nAlarmFlag; // 报警标志位,第0bit位表示是否超速,第1bit位表示是否AIS匹配 第2bit位表示是否禁行 第3bit位表示是否逆行
  53761. int nUpDownGoing; // 车道/航道方向 -1:未知 0:无效 1:上行 2:下行 (双向判线使用,AlarmFlag非0时,该字段为0 UpDownGoing非0时,AlarmFlag字段为0)
  53762. NET_TRACK_OBJECT_INFO stuTrackObject; // 跟踪物体
  53763. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  53764. char szReserved[1024]; // 预留字节
  53765. }NET_DEV_EVENT_LINK_AGE_RADAR_ALARM_INFO;
  53766. ///@brief 报警标志(保养里程小于2000km时告警标示)
  53767. typedef enum tagEM_VEHICLE_STATE_ALARM_FLAG
  53768. {
  53769. EM_VEHICLE_STATE_ALARM_FLAG_UNKNOWN = -1, // 未知
  53770. EM_VEHICLE_STATE_ALARM_FLAG_NO_ALARM, // 无告警
  53771. EM_VEHICLE_STATE_ALARM_FLAG_ALARM, // 有告警
  53772. EM_VEHICLE_STATE_ALARM_FLAG_NO_MEAN, // 补传时无意义平台不需要处理
  53773. }EM_VEHICLE_STATE_ALARM_FLAG;
  53774. ///@brief 事件类型 EVENT_IVS_VEHICLE_STATE (车辆状态事件)对应的数据块描述信息
  53775. typedef struct tagNET_DEV_EVENT_VEHICLE_STATE_INFO
  53776. {
  53777. int nChannelID; // 通道号
  53778. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53779. char szName[128]; // 事件名称
  53780. char szClass[16]; // 智能事件所属大类
  53781. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53782. NET_TIME_EX stuUTC; // 事件发生的时间
  53783. UINT nEventID; // 事件ID
  53784. UINT nUTCMS; // 事件时间毫秒数
  53785. UINT nACK; // 事件的确认ID
  53786. char szStatus[32]; // 车辆状态
  53787. char szTaskID[64]; // 任务号
  53788. UINT nOilTankage; // 油箱容积,单位0.1L
  53789. UINT nCurrentFuel; // 当前油箱的油量, 单位0.1L
  53790. UINT nConsumptionOil; // 当前油耗,L/100公里 单位0.1L
  53791. UINT nTotalUsedFuel; // 总的消耗油量,单位0.1L
  53792. UINT nTotalDistance; // 总里程,单位0.1 Km
  53793. int nServiceDistance; // 保养距离,单位0.1Km
  53794. EM_VEHICLE_STATE_ALARM_FLAG emAlarmFlag; // 报警标志(保养里程小于2000km时告警标示)
  53795. int nCurrentGear; // 当前档位 -1:未知 0-P 1-R 2-N 3-D 4-S
  53796. UINT nSpeed; // 当前速度,单位:0.1Km/h
  53797. EM_COVER_STATUS emCoverStatus; // 箱盖状态
  53798. EM_LIFT_STATUS emLiftStatus; // 举升状态
  53799. EM_LOAD_STATUS emLoadStatus; // 载重状态
  53800. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  53801. char szReserved[1024]; // 预留字节
  53802. }NET_DEV_EVENT_VEHICLE_STATE_INFO;
  53803. ///@brief 事件类型 EVENT_IVS_PASS_WINDOW_DELIVERY(隔窗递物检测事件)对应的数据块描述信息
  53804. typedef struct tagNET_DEV_EVENT_PASS_WINDOW_DELIVERY_INFO
  53805. {
  53806. int nChannelID; // 通道号
  53807. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53808. char szName[128]; // 事件名称
  53809. char szClass[16]; // 智能事件所属大类
  53810. UINT nRuleID; // 智能事件规则编号
  53811. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53812. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53813. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53814. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53815. NET_TIME_EX stuUTC; // 事件发生的时间
  53816. UINT nUTCMS; // 事件时间毫秒数
  53817. UINT nEventID; // 事件ID
  53818. int nObjectsNum; // 检测目标个数
  53819. DH_MSG_OBJECT stuObjects[128]; // 检测目标的物体信息
  53820. int nDetectRegionNum; // 检测区个数
  53821. int nDeliveryRegionNum; // 递接区个数
  53822. NET_POINT stuDetectRegion[20]; // 检测区
  53823. NET_POINT stuDeliveryRegion[20]; // 递接区
  53824. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图,仅IndexInData字段有效
  53825. char szReserved[1024]; // 预留字节
  53826. }NET_DEV_EVENT_PASS_WINDOW_DELIVERY_INFO;
  53827. ///@brief 门状态异常报警
  53828. typedef struct tagNET_DOOR_STATE_ABNORMAL_INFO
  53829. {
  53830. NET_CFG_TIME_SCHEDULE stuDSTimeSection; // 门状态的报警指定时间段,在指定时间段开门或关门为异常,产生报警
  53831. UINT nDoorState; // 门的状态,开门状态1表示,关门状态0表示
  53832. char szReserved[124]; // 预留字节
  53833. }NET_DOOR_STATE_ABNORMAL_INFO;
  53834. ///@brief 开门状态异常报警
  53835. typedef struct tagNET_OPEN_DOOR_ABNORMAL_INFO
  53836. {
  53837. NET_CFG_TIME_SCHEDULE stuODTimeSection; // 开门状态的报警指定时间段,在指定时间段开门达到nLongTime,产生报警
  53838. UINT nLongTime; // 开门过长时间/min
  53839. char szReserved[124]; // 预留字节
  53840. }NET_OPEN_DOOR_ABNORMAL_INFO;
  53841. ///@brief 事件类型 EVENT_IVS_DOOR_STATE_DETECTION(开关门检测事件)对应的数据块描述信息
  53842. typedef struct tagNET_DEV_EVENT_DOOR_STATE_DETECTION_INFO
  53843. {
  53844. int nChannelID; // 通道号
  53845. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53846. char szName[128]; // 事件名称
  53847. char szClass[16]; // 智能事件所属大类
  53848. UINT nRuleID; // 智能事件规则编号
  53849. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53850. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53851. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53852. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53853. NET_TIME_EX stuUTC; // 事件发生的时间
  53854. UINT nUTCMS; // 事件时间毫秒数
  53855. UINT nEventID; // 事件ID
  53856. UINT nPresetID; // 事件触发的预置点号,从1开始没有该字段,表示预置点未知
  53857. int nDetectRegionNum; // 检测区个数
  53858. NET_POINT stuDetectRegion[20]; // 检测区
  53859. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  53860. char szAlarmType[32]; // 报警类型 门状态异常或开门异常
  53861. NET_DOOR_STATE_ABNORMAL_INFO stuDoorStateAbnormal; // 门状态异常报警
  53862. NET_OPEN_DOOR_ABNORMAL_INFO stuOpenDoorAbnormal; // 开门状态异常报警
  53863. char szReserved[1020]; // 预留字节
  53864. }NET_DEV_EVENT_DOOR_STATE_DETECTION_INFO;
  53865. ///@brief 事件类型 EVENT_IVS_WASTE_MIXED_INVEST(垃圾混投事件)对应的数据块描述信息
  53866. typedef struct tagNET_DEV_EVENT_WASTE_MIXED_INVEST_INFO
  53867. {
  53868. int nChannelID; // 通道号
  53869. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53870. char szName[128]; // 事件名称
  53871. char szClass[16]; // 智能事件所属大类
  53872. UINT nRuleID; // 智能事件规则编号
  53873. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53874. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53875. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53876. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53877. NET_TIME_EX stuUTC; // 事件发生的时间
  53878. UINT nUTCMS; // 事件时间毫秒数
  53879. UINT nEventID; // 事件ID
  53880. UINT nPresetID; // 事件触发的预置点号,从1开始没有该字段,表示预置点未知
  53881. char szPresetName[64]; // 事件触发的预置点名称
  53882. int nObjectsNum; // 检测目标个数
  53883. int nDetectRegionNum; // 检测区个数
  53884. NET_POINT stuDetectRegion[20]; // 检测区
  53885. DH_MSG_OBJECT stuObjects[64]; // 检测目标的物体信息
  53886. char szSourceID[32]; // 事件关联ID 应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  53887. // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
  53888. char szRuleName[128]; // 规则名称
  53889. UINT nRuleId; // 规则编号
  53890. UINT nViolationDuration; // 违法持续时长,单位:秒
  53891. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  53892. int nImageInfoNum; // 图片信息个数
  53893. char szReserved[508 - POINTERSIZE]; // 预留字节
  53894. }NET_DEV_EVENT_WASTE_MIXED_INVEST_INFO;
  53895. ///@brief 事件类型 EVENT_IVS_UNBROKEN_TRASHBAG(垃圾袋未破袋检测事件)对应的数据块描述信息
  53896. typedef struct tagNET_DEV_EVENT_UNBROKEN_TRASHBAG_INFO
  53897. {
  53898. int nChannelID; // 通道号
  53899. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53900. char szName[128]; // 事件名称
  53901. char szClass[16]; // 智能事件所属大类
  53902. UINT nRuleID; // 智能事件规则编号
  53903. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53904. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53905. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53906. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53907. NET_TIME_EX stuUTC; // 事件发生的时间
  53908. UINT nUTCMS; // 事件时间毫秒数
  53909. UINT nEventID; // 事件ID
  53910. UINT nPresetID; // 事件触发的预置点号,从1开始没有该字段,表示预置点未知
  53911. char szPresetName[64]; // 事件触发的预置点名称
  53912. int nObjectsNum; // 检测目标个数
  53913. int nDetectRegionNum; // 检测区个数
  53914. NET_POINT stuDetectRegion[20]; // 检测区
  53915. DH_MSG_OBJECT stuObjects[64]; // 检测目标的物体信息
  53916. char szSourceID[32]; // 事件关联ID 应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  53917. // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
  53918. char szRuleName[128]; // 规则名称
  53919. UINT nRuleId; // 规则编号
  53920. UINT nViolationDuration; // 违法持续时长,单位:秒
  53921. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  53922. int nImageInfoNum; // 图片信息个数
  53923. char szReserved[508 - POINTERSIZE]; // 预留字节
  53924. }NET_DEV_EVENT_UNBROKEN_TRASHBAG_INFO;
  53925. ///@brief 事件类型 EVENT_IVS_PERSON_CARRY_TRASHBAG(人员拎袋报警事件)对应的数据块描述信息
  53926. typedef struct tagNET_DEV_EVENT_PERSON_CARRY_TRASHBAG_INFO
  53927. {
  53928. int nChannelID; // 通道号
  53929. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53930. char szName[128]; // 事件名称
  53931. char szClass[16]; // 智能事件所属大类
  53932. UINT nRuleID; // 智能事件规则编号
  53933. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53934. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53935. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53936. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53937. NET_TIME_EX stuUTC; // 事件发生的时间
  53938. UINT nUTCMS; // 事件时间毫秒数
  53939. UINT nEventID; // 事件ID
  53940. UINT nPresetID; // 事件触发的预置点号,从1开始没有该字段,表示预置点未知
  53941. char szPresetName[64]; // 事件触发的预置点名称
  53942. int nObjectsNum; // 检测目标个数
  53943. int nDetectRegionNum; // 检测区个数
  53944. NET_POINT stuDetectRegion[20]; // 检测区
  53945. DH_MSG_OBJECT stuObjects[64]; // 检测目标的物体信息
  53946. char szSourceID[32]; // 事件关联ID 应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  53947. // 格式:类型+时间+序列号,其中类型2位,时间14位,序列号5位
  53948. char szRuleName[128]; // 规则名称
  53949. UINT nRuleId; // 规则编号
  53950. UINT nViolationDuration; // 违法持续时长,单位:秒
  53951. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  53952. int nImageInfoNum; // 图片信息个数
  53953. char szReserved[508 - POINTERSIZE]; // 预留字节
  53954. }NET_DEV_EVENT_PERSON_CARRY_TRASHBAG_INFO;
  53955. ///@brief 事件类型 EVENT_IVS_ILLEGAL_CARRIAGE(非法运输事件)对应的数据块描述信息
  53956. typedef struct tagNET_DEV_EVENT_ILLEGAL_CARRIAGE_INFO
  53957. {
  53958. int nChannelID; // 通道号
  53959. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53960. char szName[128]; // 事件名称
  53961. char szClass[128]; // 智能事件所属大类
  53962. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  53963. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  53964. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  53965. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  53966. NET_TIME_EX stuUTC; // 事件发生的时间
  53967. char byReserved[4]; // 仅用于字节对齐,无实际意义
  53968. UINT nUTCMS; // 事件时间毫秒数
  53969. UINT nEventID; // 事件ID
  53970. DH_MSG_OBJECT_EX2 stuVehicles[10]; // 车辆信息
  53971. int nVehiclesNum; // 检测到的车辆信息个数(配合stuVehicles使用)
  53972. int nObjectsNum; // 检测到的车牌信息个数(配合stuObjects使用)
  53973. DH_MSG_OBJECT_EX2 stuObjects[10]; // 车牌信息
  53974. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图, 仅nIndexInData字段有效
  53975. UINT nBusDoorStatus; // 大客车周身门的状态(比如车门, 行李箱门是否打开), 0-未知, 1-是, 2-不是
  53976. UINT nIsTrunk; // 附近是否存在行李箱, 0-没有行李箱, 1-有行李箱
  53977. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  53978. int nImageInfoNum; // 图片信息个数
  53979. int nDetectRegionNum; // 检测区个数
  53980. NET_POINT_EX stuDetectRegion[20]; // 检测区
  53981. char szReserved[1936 - POINTERSIZE]; // 预留字节
  53982. }NET_DEV_EVENT_ILLEGAL_CARRIAGE_INFO;
  53983. ///@brief 事件类型 EVENT_IVS_ALARM_TORPEDO_DETECT(鱼雷罐报警事件)区域内鱼雷罐测温信息
  53984. typedef struct tagNET_TORPRDO_INFO
  53985. {
  53986. char szTroprdoNumber[128]; // 鱼雷罐编号
  53987. float fTemp; // 鱼雷罐罐体温度
  53988. int nTempUnit; // 温度单位(0摄氏度 1华氏度 2开尔文)
  53989. BOOL bIsOverTemp; // 是否超温
  53990. UINT nBoundingBox[4]; // 鱼雷罐包围盒信息
  53991. UINT nAlarmState; // 报警状态:0正常报警, 1高温报警, 2预报警
  53992. char szReserved[124]; // 预留字节
  53993. }NET_TORPRDO_INFO;
  53994. ///@brief 事件类型 EVENT_IVS_ALARM_TORPEDO_DETECT(鱼雷罐报警事件)对应的数据块描述信息
  53995. typedef struct tagNET_DEV_EVENT_TORPEDO_DETECT_ALARM_INFO
  53996. {
  53997. int nChannelID; // 通道号
  53998. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  53999. char szName[128]; // 事件名称
  54000. char szClass[128]; // 智能事件所属大类
  54001. UINT nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  54002. UINT nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  54003. char byReserved[4]; // 仅用于字节对齐,无实际意义
  54004. UINT nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  54005. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  54006. NET_TIME_EX stuUTC; // 事件发生的时间
  54007. UINT nUTCMS; // 事件时间毫秒数
  54008. UINT nEventID; // 事件ID
  54009. DH_MSG_OBJECT_EX2 stuTorpedoObject; // 鱼雷管物体信息
  54010. UINT nDetectRegion[20][2]; // 检测区
  54011. UINT nPresetID; // 事件触发的预置点号,从1开始,没有该字段,表示预置点未知
  54012. int nSequence; // 帧序号
  54013. NET_TORPRDO_INFO stuTorpedoInfo; // 区域内鱼雷罐测温信息
  54014. char szReserved[1024]; // 预留字节
  54015. }NET_DEV_EVENT_TORPEDO_DETECT_ALARM_INFO;
  54016. ///@brief 事件类型 EVENT_IVS_GAS_TANK_DETECTION(煤气罐检测事件)对应的数据块描述信息
  54017. typedef struct tagNET_DEV_EVENT_GAS_TANK_DETECTION_INFO
  54018. {
  54019. int nChannelID; // 通道号
  54020. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  54021. char szName[128]; // 事件名称
  54022. char szClass[128]; // 智能事件所属大类
  54023. UINT nRuleID; // 智能事件规则编号
  54024. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  54025. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  54026. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  54027. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  54028. NET_TIME_EX stuUTC; // 事件发生的时间
  54029. char byReserved[4]; // 仅用于字节对齐,无实际意义
  54030. UINT nUTCMS; // 事件时间毫秒数
  54031. UINT nEventID; // 事件ID
  54032. DH_MSG_OBJECT_EX2 stuObject; // 检测目标的物体信息
  54033. DH_MSG_OBJECT_EX2 stuObjects[100]; // 检测目标的物体信息数组
  54034. int nObjectNum; // 检测到的物体个数(配合stuObjects使用)
  54035. int nDetectRegionNum; // 检测区个数
  54036. NET_POINT stuDetectRegion[20]; // 检测区
  54037. int nCount; // 规则被触发生次数
  54038. EM_EVENT_LEVEL emEventLevel; // 事件级别
  54039. UINT nPresetID; // 事件触发的预置点号,从1开始,没有该字段,表示预置点未知
  54040. char szPresetName[64]; // 事件触发的预置点名称
  54041. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  54042. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  54043. char szReserved[1024]; // 预留字节
  54044. }NET_DEV_EVENT_GAS_TANK_DETECTION_INFO;
  54045. ///@brief 事件类型 EVENT_IVS_UNATTENDED_DETENTION(无人值守检测事件)对应的数据块描述信息
  54046. typedef struct tagNET_DEV_EVENT_UNATTENDED_DETENTION_INFO
  54047. {
  54048. int nChannelID; // 通道号
  54049. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  54050. char szName[128]; // 事件名称
  54051. char szClass[16]; // 智能事件所属大类
  54052. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  54053. NET_TIME_EX stuUTC; // 事件发生的时间
  54054. int nImageInfoNum; // 图片信息个数
  54055. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  54056. char szVideoPath[256]; // 违章关联视频FTP上传路径
  54057. char szPlateNumber[32]; // 车牌号
  54058. char szSN[32]; // 设备序列号
  54059. char szReserved[512]; // 预留字节
  54060. }NET_DEV_EVENT_UNATTENDED_DETENTION_INFO;
  54061. ///@brief 事件类型 EVENT_IVS_DROP_DETECTION(滴漏检测事件)对应的数据块描述信息
  54062. typedef struct tagNET_DEV_EVENT_DROP_DETECTION_INFO
  54063. {
  54064. int nChannelID; // 通道号
  54065. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  54066. char szName[128]; // 事件名称
  54067. char szClass[16]; // 智能事件所属大类
  54068. double dbPTS; // 相对事件时间戳,(单位是毫秒)
  54069. NET_TIME_EX stuUTC; // 事件发生的时间
  54070. UINT nUTCMS; // 事件时间毫秒数
  54071. UINT nEventID; // 事件ID
  54072. int nObjectsNum; // 检测目标个数
  54073. DH_MSG_OBJECT stuObjects[128]; // 检测目标的物体信息
  54074. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图,仅 nIndexInData字段有效
  54075. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  54076. int nImageInfoNum; // 图片信息个数
  54077. char szReserved[508 - POINTERSIZE]; // 预留字节
  54078. }NET_DEV_EVENT_DROP_DETECTION_INFO;
  54079. ///@brief 事件类型 EVENT_IVS_TEMPERATURE_ALARM(温度报警事件)对应的数据块描述信息
  54080. typedef struct tagNET_DEV_EVENT_TEMPERATURE_ALARM_INFO
  54081. {
  54082. int nChannelID; // 通道号
  54083. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  54084. NET_TIME_EX stuUTC; // 事件发生的时间
  54085. char szName[128]; // 名称
  54086. float fCurrent; // 当前温度
  54087. int nRange[2]; // 正常范围
  54088. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  54089. char szReserved[1024]; // 预留字节
  54090. }NET_DEV_EVENT_TEMPERATURE_ALARM_INFO;
  54091. ///@brief 事件类型 EVENT_IVS_HUMIDITY_ALARM(湿度报警事件)对应的数据块描述信息
  54092. typedef struct tagNET_DEV_EVENT_HUMIDITY_ALARM_INFO
  54093. {
  54094. int nChannelID; // 通道号
  54095. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  54096. NET_TIME_EX stuUTC; // 事件发生的时间
  54097. float fCurrentValue; // 当前湿度值
  54098. float fLimitValue; // 报警阈值
  54099. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  54100. int nRange[2]; // 检测正常范围
  54101. char szReserved[1024]; // 预留字节
  54102. }NET_DEV_EVENT_HUMIDITY_ALARM_INFO;
  54103. ///@brief 485传感器报警类型
  54104. typedef enum tagEM_POWER_SWITCHER_ALARM_TYPE
  54105. {
  54106. EM_POWER_SWITCHER_ALARM_TYPE_UNKNOWN, // 未知
  54107. EM_POWER_SWITCHER_ALARM_TYPE_LOWCURRENT, // 电流低于阈值
  54108. EM_POWER_SWITCHER_ALARM_TYPE_HIGHCURRENT, // 电流高于阈值
  54109. EM_POWER_SWITCHER_ALARM_TYPE_LOWVOLTAGE, // 电压低于阈值
  54110. EM_POWER_SWITCHER_ALARM_TYPE_HIGHVOLTAGE, // 电压高于阈值
  54111. EM_POWER_SWITCHER_ALARM_TYPE_LOWPOWER, // 功率低于阈值
  54112. EM_POWER_SWITCHER_ALARM_TYPE_HIGHPOWER, // 功率高于阈值
  54113. }EM_POWER_SWITCHER_ALARM_TYPE;
  54114. ///@brief 事件类型 EVENT_IVS_POWER_SWITCHER_ALARM(电量报警事件)对应的数据块描述信息
  54115. typedef struct tagNET_DEV_EVENT_POWER_SWITCHER_ALARM_INFO
  54116. {
  54117. int nChannelID; // 通道号
  54118. int nAction; // 事件类型 0:脉冲,1:开始, 2:停止
  54119. NET_TIME_EX stuUTC; // 事件发生的时间
  54120. char szName[128]; // 名称
  54121. int nPowerVoltage; // 电压值,单位: mV
  54122. int nPowerCurrent; // 电流值,单位: mA
  54123. int nPowerValue; // 功率,单位: mW
  54124. int nSwitchOn; // 开关通断: 0 未知, 1 关, 2 开
  54125. int nPowerState; // 数据状态掩码, 从低位到高位分别为: 全为0表示正常, Bit0-欠压, Bit1-过压, Bit2-欠流, Bit3-过流, Bit4-状态无效,此状态不与其他同时置位
  54126. EM_ALARM_INTERFACE_TYPE emInterfaceType; // 感应器相位电压
  54127. int nAlarmTypeNum; // 485传感器报警个数
  54128. EM_POWER_SWITCHER_ALARM_TYPE emAlarmType[8]; // 485传感器报警类型
  54129. int nCurrentCT; // 电流比
  54130. int nVoltagePT; // 电压比
  54131. char szReserved[1024]; // 预留字节
  54132. }NET_DEV_EVENT_POWER_SWITCHER_ALARM_INFO;
  54133. ///@brief 检测类型
  54134. typedef enum tagEM_OCR_DETECTION_DETECT_TYPE
  54135. {
  54136. EM_OCR_DETECTION_DETECT_TYPE_UNKNOWN, // 未知
  54137. EM_OCR_DETECTION_DETECT_TYPE_TEMPERATURE, // 温度
  54138. EM_OCR_DETECTION_DETECT_TYPE_WEIGH, // 称重
  54139. }EM_OCR_DETECTION_DETECT_TYPE;
  54140. ///@brief 检测事件类型
  54141. typedef enum tagEM_OCR_DETECTION_TRIGGER_TYPE
  54142. {
  54143. EM_OCR_DETECTION_TRIGGER_TYPE_UNKNOWN = -1, // 未知
  54144. EM_OCR_DETECTION_TRIGGER_TYPE_GREATER_THAN_TOPLIMIT, // 大于上限
  54145. EM_OCR_DETECTION_TRIGGER_TYPE_LESS_THAN_LOWERLIMIT, // 小于下限
  54146. EM_OCR_DETECTION_TRIGGER_TYPE_EQUAL_TO_THRESHOLD, // 等于阈值
  54147. }EM_OCR_DETECTION_TRIGGER_TYPE;
  54148. ///@brief 事件类型 EVENT_IVS_OCR_DETECTION (OCR检测事件)对应的数据块描述信息
  54149. typedef struct tagDEV_EVENT_OCR_DETECTION_INFO
  54150. {
  54151. int nChannelID; // 通道号
  54152. int nAction; // 0:脉冲,1:开始, 2:停止
  54153. char szName[128]; // 事件名称
  54154. char szClass[16]; // 智能事件所属大类
  54155. UINT nRuleId; // 智能事件规则编号,用于标示哪个规则触发的事件
  54156. int nGroupID; // GroupID事件组ID,同一物体抓拍过程内GroupID相同
  54157. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  54158. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号,从1开始
  54159. NET_TIME_EX stuUTC; // 事件发生时间,带时区偏差的UTC时间,单位:秒
  54160. UINT nUTCMS; // 事件时间毫秒数
  54161. double dbPTS; // 相对事件时间戳,单位毫秒
  54162. UINT nEventID; // 事件编号,用来唯一标志一个事件
  54163. UINT nPresetID; // 事件触发的预置点号,从1开始 没有该字段,表示预置点未知
  54164. char szContent[256]; // 识别内容
  54165. EM_OCR_DETECTION_DETECT_TYPE emDetectType; // 检测类型
  54166. EM_OCR_DETECTION_TRIGGER_TYPE emTriggerType; // 检测事件类型
  54167. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图,仅IndexInData字段有效
  54168. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  54169. int nImageInfoNum; // 图片信息个数
  54170. char szReserved[1020]; // 预留字节
  54171. }DEV_EVENT_OCR_DETECTION_INFO;
  54172. ///@brief 可变车道指示牌的方向类型
  54173. typedef enum tagEM_TRAFFIC_LIGHT_DIRECTION
  54174. {
  54175. EM_TRAFFIC_LIGHT_DIRECTION_UNKNOWN, // 未知
  54176. EM_TRAFFIC_LIGHT_DIRECTION_LEFT, // 左转
  54177. EM_TRAFFIC_LIGHT_DIRECTION_STRAIGHT, // 直行
  54178. EM_TRAFFIC_LIGHT_DIRECTION_RIGHT, // 右转
  54179. EM_TRAFFIC_LIGHT_DIRECTION_UTURN, // 调头
  54180. EM_TRAFFIC_LIGHT_DIRECTION_NOENTRY, // 禁止通行
  54181. }EM_TRAFFIC_LIGHT_DIRECTION;
  54182. ///@brief 可变车道指示牌的亮灭状态
  54183. typedef enum tagEM_TRAFFIC_LIGHT_STATE
  54184. {
  54185. EM_TRAFFIC_LIGHT_STATE_UNKNOWN, // 未知
  54186. EM_TRAFFIC_LIGHT_STATE_TURNOFF, // 熄灯
  54187. EM_TRAFFIC_LIGHT_STATE_TURNON, // 亮灯
  54188. }EM_TRAFFIC_LIGHT_STATE;
  54189. ///@brief 可变车道指示牌的故障类型
  54190. typedef enum tagEM_TRAFFIC_LANE_INDICATOR_FAULT_TYPE
  54191. {
  54192. EM_TRAFFIC_LANE_INDICATOR_FAULT_TYPE_UNKNOWN, // 未知
  54193. EM_TRAFFIC_LANE_INDICATOR_FAULT_TYPE_NOTLIGHT, // 不亮
  54194. EM_TRAFFIC_LANE_INDICATOR_FAULT_TYPE_LIGHT, // 长亮
  54195. EM_TRAFFIC_LANE_INDICATOR_FAULT_TYPE_SHINING, // 闪亮
  54196. EM_TRAFFIC_LANE_INDICATOR_FAULT_TYPE_NORMAL, // 正常
  54197. }EM_TRAFFIC_LANE_INDICATOR_FAULT_TYPE;
  54198. ///@brief 可变车道指示牌信息
  54199. typedef struct tagNET_TRAFFIC_LANE_INDICATOR_INFO
  54200. {
  54201. EM_TRAFFIC_LIGHT_DIRECTION emLightDirection; // 可变车道指示牌的方向类型
  54202. EM_TRAFFIC_LIGHT_STATE emLightState; // 可变车道指示牌的亮灭状态
  54203. EM_TRAFFIC_LANE_INDICATOR_FAULT_TYPE emFaultType; // 可变车道指示牌的故障类型
  54204. char szReserved[512]; // 保留字节,留待扩展
  54205. } NET_TRAFFIC_LANE_INDICATOR_INFO;
  54206. ///@brief 事件类型EVENT_IVS_TRAFFIC_LANE_INDICATOR_FAULT (交通变道指示牌故障事件)对应的数据块描述信息
  54207. typedef struct tagDEV_EVENT_TRAFFIC_LANE_INDICATOR_FAULT_INFO
  54208. {
  54209. int nChannelID; // 通道号
  54210. int nAction; // 0:脉冲
  54211. char szName[128]; // 事件名称
  54212. double dbPTS; // 时间戳(单位是毫秒)
  54213. NET_TIME_EX stuUTC; // 事件发生的时间
  54214. int nEventID; // 事件ID
  54215. NET_TRAFFIC_LANE_INDICATOR_INFO stuLaneIndicatorInfo[5]; // 可变车道指示牌信息
  54216. int nLaneIndicatorInfoNum; // 可变车道指示牌信息个数
  54217. char szReserved[1024]; // 保留字节,留待扩展
  54218. } DEV_EVENT_TRAFFIC_LANE_INDICATOR_FAULT_INFO;
  54219. ///@brief 水速信息
  54220. typedef struct tagNET_WATER_SPEED_INFO
  54221. {
  54222. float fSpeed; // 水流速,单位m/s
  54223. float fDistance; // 测速点距河岸距离,单位m
  54224. char szReserved[128]; // 保留字节,留待扩展
  54225. } NET_WATER_SPEED_INFO;
  54226. ///@brief 水流速状态
  54227. typedef enum tagEM_WATER_SPEED_STATUS
  54228. {
  54229. EM_WATER_SPEED_STATUS_UNKNOWN, // 未知
  54230. EM_WATER_SPEED_STATUS_NORMAL, // 水流速正常
  54231. EM_WATER_SPEED_STATUS_HIGH, // 水流速高于上限阈值
  54232. EM_WATER_SPEED_STATUS_LOW, // 水流速低于下限阈值
  54233. }EM_WATER_SPEED_STATUS;
  54234. ///@brief 事件的数据类型
  54235. typedef enum tagEM_EVENT_TYPE
  54236. {
  54237. EM_EVENT_TYPE_UNKNOWN, // 未知
  54238. EM_EVENT_TYPE_REAL, // 实时数据
  54239. EM_EVENT_TYPE_ALARM, // 报警数据
  54240. }EM_EVENT_TYPE;
  54241. ///@brief 事件类型EVENT_IVS_WATER_SPEED_DETECTION (水流速检测事件)对应的数据块描述信息
  54242. typedef struct tagDEV_EVENT_WATER_SPEED_DETECTION_INFO
  54243. {
  54244. int nChannelID; // 通道号
  54245. int nAction; // 0:脉冲
  54246. char szName[128]; // 事件名称
  54247. int nGroupID; // 事件组ID
  54248. int nCountInGroup; // 一个事件组内应有的抓拍张数
  54249. int nIndexInGroup; // 一个事件组内的抓拍序号
  54250. int nEventID; // 事件ID
  54251. double dbPTS; // 时间戳(单位是毫秒)
  54252. NET_TIME_EX stuUTC; // 事件发生的时间
  54253. EM_EVENT_TYPE emEventType; // 事件的数据类型
  54254. UINT nPresetID; // 事件触发的预置点号,从1开始没有该字段,表示预置点未知
  54255. char szPresetName[64]; // 事件触发的预置点名称
  54256. NET_WATER_SPEED_INFO stuWaterSpeed[50]; // 水流速度信息
  54257. int nWaterSpeedNum; // 水流速度信息个数
  54258. EM_WATER_SPEED_STATUS emStatus; // 水流速状态
  54259. NET_INTELLIGENCE_IMAGE_INFO stuOriginalImage; // 原始图,近景
  54260. NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // 球机变到最小倍下的抓图
  54261. char szReserved[1024]; // 保留字节,留待扩展
  54262. } DEV_EVENT_WATER_SPEED_DETECTION_INFO;
  54263. ///@brief 事件类型EVENT_IVS_VALVE_ABNORMAL (阀门异常检测事件)对应的数据块描述信息
  54264. typedef struct tagDEV_EVENT_VALVE_ABNORMAL_INFO
  54265. {
  54266. int nChannelID; // 通道号
  54267. int nAction; // 0:脉冲
  54268. char szName[128]; // 事件名称
  54269. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  54270. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件。取值同VideoAnalyseRule.Id。
  54271. double dbPTS; // 时间戳(单位是毫秒)
  54272. NET_TIME_EX stuUTC; // 事件发生的时间
  54273. UINT nEventID; // 事件ID
  54274. UINT UTCMS; // 事件时间(单位是毫秒)
  54275. UINT nSequence; // 帧序号
  54276. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景图片信息
  54277. char szReserved[1024]; // 保留字节,留待扩展
  54278. }DEV_EVENT_VALVE_ABNORMAL_INFO;
  54279. ///@brief 事件类型EVENT_IVS_DISCHARGE_PORT_ABNORMAL (出料口异常检测事件)对应的数据块描述信息
  54280. typedef struct tagDEV_EVENT_DISCHARGE_PORT_ABNORMAL_INFO
  54281. {
  54282. int nChannelID; // 通道号
  54283. int nAction; // 0:脉冲
  54284. char szName[128]; // 事件名称
  54285. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  54286. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件。取值同VideoAnalyseRule.Id。
  54287. double dbPTS; // 时间戳(单位是毫秒)
  54288. NET_TIME_EX stuUTC; // 事件发生的时间
  54289. UINT nEventID; // 事件ID
  54290. UINT UTCMS; // 事件时间(单位是毫秒)
  54291. UINT nSequence; // 帧序号
  54292. SCENE_IMAGE_INFO stuSceneImage; // 全景图片信息
  54293. char szReserved[1024]; // 保留字节,留待扩展
  54294. }DEV_EVENT_DISCHARGE_PORT_ABNORMAL_INFO;
  54295. ///@brief 防火门状态
  54296. typedef enum tagEM_EM_FIRE_DOOR_STATUS
  54297. {
  54298. EM_FIRE_DOOR_UNKNOWN, // 0:防火门状态未知
  54299. EM_FIRE_DOOR_CLOSED, // 1:防火门状态关闭
  54300. EM_FIRE_DOOR_OPEN // 2:防火门状态开启
  54301. }EM_FIRE_DOOR_STATUS;
  54302. ///@brief 防火门检测事件, 对应事件类型 EVENT_IVS_FIRE_DOOR_DETECTION
  54303. typedef struct tagDEV_EVENT_FIRE_DOOR_DETECTION_INFO
  54304. {
  54305. /* 事件公共信息 */
  54306. int nChannelID; // 通道号,从0开始
  54307. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  54308. char szName[128]; // 事件名称
  54309. double dbPTS; // 时间戳(单位是毫秒)
  54310. NET_TIME_EX stuUTC; // 事件发生的时间
  54311. UINT nEventID; // 事件ID
  54312. char szReserved[4]; // 字节对齐
  54313. /* 事件业务信息 */
  54314. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  54315. EM_FIRE_DOOR_STATUS emFireDoorStatus; // 防火门状态
  54316. DH_MSG_OBJECT stuObject; // 检测到的物体
  54317. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  54318. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  54319. int nImageInfoNum; // 图片信息个数
  54320. char szReserved1[1020 - POINTERSIZE]; // 预留字节
  54321. } DEV_EVENT_FIRE_DOOR_DETECTION_INFO;
  54322. ///@brief 目标物体子类型
  54323. typedef enum tagEM_FIRE_EXTINGUISHER_CATEGORY_TYPE
  54324. {
  54325. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_UNKNOWN, // 未知
  54326. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_EXTINGUISHER_GENERAL, // 普通类型灭火器,8kg左右
  54327. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_EXTINGUISHER_HANDPUSH, // 35kg推车式灭火器
  54328. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_SIGNBOARD_GENERAL, // 普通标识牌
  54329. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_SIGNBOARD_STATIC_ELETRICITY, // 静电标示牌
  54330. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_SIGNBOARD_OILCAP, // 加油口盖标示牌
  54331. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_ROADCONE, // 路锥
  54332. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_COVERPLATE, // 盖子
  54333. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_OILCAP_OPEN, // 加油口盖标示牌打开
  54334. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE_OILCAP_CLOSE, // 加油口盖标示牌关闭
  54335. }EM_FIRE_EXTINGUISHER_CATEGORY_TYPE;
  54336. ///@brief 区域内目标物体子类型信息
  54337. typedef struct tagNET_FIRE_EXTINGUISHER_CATEGORY_INFO
  54338. {
  54339. EM_FIRE_EXTINGUISHER_CATEGORY_TYPE emCategory; // 目标物体子类型
  54340. int nNum; // 目标物体子类型对应计数
  54341. char szReserved[128]; // 预留字节
  54342. }NET_FIRE_EXTINGUISHER_CATEGORY_INFO;
  54343. ///@brief 目标区域内物体计数信息
  54344. typedef struct tagNET_FIRE_EXTINGUISHER_OBJECT_INFO
  54345. {
  54346. UINT nAlertNum; // 区域内目标总数
  54347. int nCategoryInfoNum; // 区域内目标物体子类型信息个数
  54348. NET_FIRE_EXTINGUISHER_CATEGORY_INFO stuCategoryInfo[16]; // 区域内目标物体子类型信息
  54349. char szReserved[256]; // 预留字节
  54350. }NET_FIRE_EXTINGUISHER_OBJECT_INFO;
  54351. ///@brief 灭火器检测事件, 对应事件类型 EVENT_IVS_FIRE_EXTINGUISHER_DETECTION
  54352. typedef struct tagDEV_EVENT_FIRE_EXTINGUISHER_DETECTION_INFO
  54353. {
  54354. /* 事件公共信息 */
  54355. int nChannelID; // 通道号,从0开始
  54356. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  54357. char szName[128]; // 事件名称
  54358. double dbPTS; // 时间戳(单位是毫秒)
  54359. NET_TIME_EX stuUTC; // 事件发生的时间
  54360. UINT nEventID; // 事件ID
  54361. /* 事件业务信息 */
  54362. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  54363. DH_MSG_OBJECT stuObject; // 检测到的物体
  54364. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  54365. NET_FIRE_EXTINGUISHER_OBJECT_INFO stuObjectInfo; // 目标区域内物体计数信息
  54366. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  54367. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  54368. int nImageInfoNum; // 图片信息个数
  54369. char szReserved[1020 - POINTERSIZE]; // 预留字节
  54370. } DEV_EVENT_FIRE_EXTINGUISHER_DETECTION_INFO;
  54371. ///@brief 车位内已停车位数量相对上次上报的变化状态
  54372. typedef enum tagEM_PARKING_CHANGE_STATUS
  54373. {
  54374. EM_PARKING_CHANGE_STATUS_UNKNOW = -1, // 未知
  54375. EM_PARKING_CHANGE_STATUS_UNCHANGED, // 无变化
  54376. EM_PARKING_CHANGE_STATUS_INCREASE, // 数量增加
  54377. EM_PARKING_CHANGE_STATUS_REDUCE, // 数量减少
  54378. } EM_PARKING_CHANGE_STATUS;
  54379. ///@brief 室外停车位状态
  54380. typedef struct tagDEV_PARKING_STATUS_INFO
  54381. {
  54382. int nID; // 车位ID,范围0-99
  54383. char szName[32]; // 车位名称
  54384. UINT nParkedNumber; // 车位内已停车位数量,范围[0,255]。
  54385. EM_PARKING_CHANGE_STATUS emChangeStatus; // 车位内已停车位数量相对上次上报的变化状态,
  54386. } DEV_PARKING_STATUS_INFO;
  54387. ///@brief 车位阈值变化报警, 对应事件类型 EVENT_IVS_PARKING_LIMIT_DETECTION
  54388. typedef struct tagDEV_EVENT_PARKING_LIMIT_DETECTION_INFO
  54389. {
  54390. /* 事件公共信息 */
  54391. int nChannelID; // 通道号,从0开始
  54392. int nEventAction; // 事件动作, 1表示开始, 2表示结束
  54393. char szName[128]; // 事件名称
  54394. double dbPTS; // 时间戳(单位是毫秒)
  54395. NET_TIME_EX stuUTC; // 事件发生的时间
  54396. UINT UTCMS; // 事件时间(单位是毫秒)
  54397. UINT nEventID; // 事件ID
  54398. /* 事件业务信息 */
  54399. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  54400. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件。
  54401. UINT nSequence; // 帧序号
  54402. DEV_PARKING_STATUS_INFO stParkingStatus[100]; // 室外停车位状态
  54403. int nParkingStatusNum; // 室外停车位状态个数
  54404. char szReserved[1024]; // 预留字节
  54405. } DEV_EVENT_PARKING_LIMIT_DETECTION_INFO;
  54406. ///@brief 车位状态变化报警, 对应事件类型 EVENT_IVS_PARKING_STATUS_CHANGE_DETECTION
  54407. typedef struct tagDEV_EVENT_PARKING_STATUS_CHANGE_DETECTION_INFO
  54408. {
  54409. /* 事件公共信息 */
  54410. int nChannelID; // 通道号,从0开始
  54411. int nEventAction; // 事件动作, 1表示开始, 2表示结束
  54412. char szName[128]; // 事件名称
  54413. double dbPTS; // 时间戳(单位是毫秒)
  54414. NET_TIME_EX stuUTC; // 事件发生的时间
  54415. UINT UTCMS; // 事件时间(单位是毫秒)
  54416. UINT nEventID; // 事件ID
  54417. /* 事件业务信息 */
  54418. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  54419. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件。
  54420. UINT nSequence; // 帧序号
  54421. DEV_PARKING_STATUS_INFO stParkingStatus[100]; // 室外停车位状态
  54422. int nParkingStatusNum; // 室外停车位状态个数
  54423. char szReserved[1024]; // 预留字节
  54424. } DEV_EVENT_PARKING_STATUS_CHANGE_DETECTION_INFO;
  54425. ///@brief 门未关事件, 对应事件类型 EVENT_IVS_DOOR_NOT_CLOSE
  54426. typedef struct tagDEV_EVENT_DOOR_NOT_CLOSE_INFO
  54427. {
  54428. /* 事件公共信息 */
  54429. int nChannelID; // 通道号,从0开始
  54430. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  54431. char szName[128]; // 门禁名称
  54432. double dbPTS; // 时间戳(单位是毫秒)
  54433. NET_TIME_EX stuUTC; // 事件发生的时间
  54434. UINT nEventID; // 事件ID
  54435. char szSN[32]; // 设备序列号,如智能锁 无线配件需要该字段
  54436. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC ,否则用 UTC 字段
  54437. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  54438. int nOpenTimeOut; // 开门超时时间,单位秒
  54439. UINT nACK; // 确认ID
  54440. NET_GPS_STATUS_INFO stGPSStatus; // GPS信息
  54441. BYTE byReserved[240]; // 预留字段
  54442. } DEV_EVENT_DOOR_NOT_CLOSE_INFO;
  54443. ///@brief 仪表类型
  54444. typedef enum tagEM_INSTRUMENT_TYPE
  54445. {
  54446. EM_INSTRUMENT_TYPE_UNKNOWN, // 未知
  54447. EM_INSTRUMENT_TYPE_STATE, // 状态识别类型
  54448. EM_INSTRUMENT_TYPE_STATEMATCH, // 状态匹配类型
  54449. EM_INSTRUMENT_TYPE_METER, // 指针式表计类型
  54450. EM_INSTRUMENT_TYPE_CHAR, // 数字识别类型
  54451. EM_INSTRUMENT_TYPE_OIL, // 油表类型
  54452. EM_INSTRUMENT_TYPE_SWIIDEN, // 开关标识
  54453. EM_INSTRUMENT_TYPE_LIGHT, // 指示灯类型
  54454. EM_INSTRUMENT_TYPE_SWITCH, // 室内开关类型
  54455. EM_INSTRUMENT_TYPE_APPEARANCE, // 外观检测类型
  54456. EM_INSTRUMENT_TYPE_LEVELGAUGE, // 液位计
  54457. }EM_INSTRUMENT_TYPE;
  54458. ///@brief 图片类型
  54459. typedef enum tagEM_PIC_TYPE
  54460. {
  54461. EM_PIC_TYPE_UNKNOWN = -1, // 未知
  54462. EM_PIC_TYPE_ALGORITHMICALLY_PROCESSED, // 算法处理后的图片
  54463. }EM_PIC_TYPE;
  54464. ///@brief 图片信息
  54465. typedef struct tagNET_IMAGE_INFO
  54466. {
  54467. EM_PIC_TYPE emPicType; // 图片类型
  54468. unsigned int nOffset; // 在二进制数据块中的偏移
  54469. unsigned int nLength; // 图片大小,单位:字节
  54470. char szFilePath[256]; // 图片路径
  54471. BYTE byReserved[1024]; // 预留字节
  54472. }NET_IMAGE_INFO;
  54473. ///@brief 仪表检测事件, 对应事件类型 EVENT_IVS_DIALRECOGNITION
  54474. typedef struct tagDEV_EVENT_DIALRECOGNITION_INFO
  54475. {
  54476. unsigned int nChannelID; // 视频通道号,从0开始
  54477. unsigned int nPresetID; // 预置点ID,如果普通IPC则为0
  54478. char szTaskID[64]; // 任务ID.添加时设备端生成
  54479. EM_INSTRUMENT_TYPE emType; // 仪表类型
  54480. int nRetImageInfoNum; // 返回的图片信息个数
  54481. NET_IMAGE_INFO stuImgaeInfo[8]; // 图片信息
  54482. char szDialResult[2048]; // 检测结果,根据Type的不同,格式也不同
  54483. int nOriginalImageOffset; // 原始图片在二进制数据块中的偏移
  54484. int nOriginalImageLength; // 原始图片大小,单位:字节
  54485. UINT nAlarmType; // 告警类型:0-该字段无效;1-数值异常;2-定时上报; 3-高阀值报警; 4-低阀值报警
  54486. char szDialSubType[32]; // 仪表检测具体子类型
  54487. float fUpperThreshold; // 报警上限阈值
  54488. float fLowerThreshold; // 报警下限阈值
  54489. NET_RECT stuBoundingBox[128]; // 包围盒
  54490. int nRetBoundingBoxNum; // 包围盒个数
  54491. char szReserved[968]; // 预留字节
  54492. } DEV_EVENT_DIALRECOGNITION_INFO;
  54493. ///@brief 挂空悬浮物具体类型
  54494. typedef enum tagEM_AIRBORNE_TYPE
  54495. {
  54496. EM_AIRBORNE_TYPE_UNKNOWN, // 未知
  54497. EM_AIRBORNE_TYPE_PLASTICBAG, // 塑料袋
  54498. EM_AIRBORNE_TYPE_TEXTILE, // 织物
  54499. EM_AIRBORNE_TYPE_KITE, // 风筝
  54500. } EM_AIRBORNE_TYPE;
  54501. ///@brief 挂空悬浮物检测异常输出结果
  54502. typedef struct tagNET_AIRBORNE_DETECT
  54503. {
  54504. EM_AIRBORNE_TYPE emAirborneType; // 挂空悬浮物具体类型
  54505. NET_RECT stuBoundingBox; // 包围盒
  54506. } NET_AIRBORNE_DETECT;
  54507. ///@brief 鸟巢检测结果
  54508. typedef struct tagNET_NEST_DETECT
  54509. {
  54510. NET_RECT stuBoundingBox; // 包围盒
  54511. } NET_NEST_DETECT;
  54512. ///@brief 表盘状态
  54513. typedef enum tagEM_DIAL_STATE
  54514. {
  54515. EM_DIAL_STATE_UNKNOWN, // 未知
  54516. EM_DIAL_STATE_NORMAL, // 正常
  54517. EM_DIAL_STATE_DIM, // 模糊
  54518. EM_DIAL_STATE_DIAL_BROKEN, // 表盘破损
  54519. EM_DIAL_STATE_SHELL_BROKEN, // 外壳破裂
  54520. EM_DIAL_STATE_ABNORMAL_READING, // 读数异常
  54521. } EM_DIAL_STATE;
  54522. ///@brief 表盘检测结果
  54523. typedef struct tagNET_DIAL_DETECT
  54524. {
  54525. EM_DIAL_STATE emDialState; // 表盘状态
  54526. NET_RECT stuBoundingBox; // 包围盒
  54527. } NET_DIAL_DETECT;
  54528. ///@brief 渗漏检测结果
  54529. typedef struct tagNET_LEAKAGE_DETECT
  54530. {
  54531. NET_RECT stuBoundingBox; // 包围盒
  54532. } NET_LEAKAGE_DETECT;
  54533. ///@brief 箱门状态
  54534. typedef enum tagEM_DOOR_STATE
  54535. {
  54536. EM_DOOR_STATE_UNKNOWN, // 未知
  54537. EM_DOOR_STATE_OPEN, // 打开
  54538. EM_DOOR_STATE_CLOSE, // 关闭
  54539. } EM_DOOR_STATE;
  54540. ///@brief 箱门检测结果
  54541. typedef struct tagNET_DOOR_DETECT
  54542. {
  54543. EM_DOOR_STATE emDoorState; // 箱门状态
  54544. NET_RECT stuBoundingBox; // 包围盒
  54545. } NET_DOOR_DETECT;
  54546. ///@brief 呼吸器状态
  54547. typedef enum tagEM_RESPIRATOR_STATE
  54548. {
  54549. EM_RESPIRATOR_STATE_UNKNOWN, // 未知
  54550. EM_RESPIRATOR_STATE_NORMAL, // 正常
  54551. EM_RESPIRATOR_STATE_SILICA_GEL_COLOR_CHANGE, // 硅胶变色
  54552. EM_RESPIRATOR_STATE_SILICA_GEL_BARREL_BROKEN, // 硅胶桶破损
  54553. EM_RESPIRATOR_STATE_ABNORMAL_OIL_LEVEL, // 油位异常
  54554. } EM_RESPIRATOR_STATE;
  54555. ///@brief 呼吸器检测结果
  54556. typedef struct tagNET_RESPIRATOR_DETECT
  54557. {
  54558. EM_RESPIRATOR_STATE emRespiratorState; // 呼吸器状态
  54559. NET_RECT stuBoundingBox; // 包围盒
  54560. } NET_RESPIRATOR_DETECT;
  54561. ///@brief 吸烟检测结果
  54562. typedef struct tagNET_SMOKING_DETECT
  54563. {
  54564. NET_RECT stuBoundingBox; // 包围盒
  54565. } NET_SMOKING_DETECT;
  54566. ///@brief 绝缘子状态
  54567. typedef enum tagEM_INSULATOR_STATE
  54568. {
  54569. EM_INSULATOR_STATE_UNKNOWN, // 未知
  54570. EM_INSULATOR_STATE_NORMAL, // 正常
  54571. EM_INSULATOR_STATE_BROKEN, // 破裂
  54572. } EM_INSULATOR_STATE;
  54573. ///@brief 绝缘子检测结果
  54574. typedef struct tagNET_INSULATOR_DETECT
  54575. {
  54576. EM_INSULATOR_STATE emInsulatorState; // 绝缘子状态
  54577. NET_RECT stuBoundingBox; // 包围盒
  54578. } NET_INSULATOR_DETECT;
  54579. ///@brief 盖板状态
  54580. typedef enum tagEM_COVER_PLATE_STATE
  54581. {
  54582. EM_COVER_PLATE_STATE_UNKNOWN, // 未知
  54583. EM_COVER_PLATE_STATE_NORMAL, // 正常
  54584. EM_COVER_PLATE_STATE_BROKEN, // 破裂
  54585. } EM_COVER_PLATE_STATE;
  54586. ///@brief 盖板检测结果
  54587. typedef struct tagNET_COVER_PLATE_DETECT
  54588. {
  54589. EM_COVER_PLATE_STATE emCoverPlateState; // 盖板状态
  54590. NET_RECT stuBoundingBox; // 包围盒
  54591. } NET_COVER_PLATE_DETECT;
  54592. ///@brief 压板状态
  54593. typedef enum tagEM_PRESSING_PLATE_STATE
  54594. {
  54595. EM_PRESSING_PLATE_STATE_UNKNOWN, // 未知
  54596. EM_PRESSING_PLATE_STATE_DISCONNECT, // 断开
  54597. EM_PRESSING_PLATE_STATE_CLOSE, // 闭合
  54598. } EM_PRESSING_PLATE_STATE;
  54599. ///@brief 压板检测结果
  54600. typedef struct tagNET_PRESSING_PLATE_DETECT
  54601. {
  54602. EM_PRESSING_PLATE_STATE emPressingPlateState; // 压板状态
  54603. NET_RECT stuBoundingBox; // 包围盒
  54604. } NET_PRESSING_PLATE_DETECT;
  54605. ///@brief 对应设备所使能的检测规则
  54606. typedef enum tagELECTRIC_FAULT_ENABLE_RULES
  54607. {
  54608. ELECTRIC_FAULT_ENABLE_RULES_UNKNOWN, // 未知
  54609. ELECTRIC_FAULT_ENABLE_RULES_AIRBORNEDETECT, // 挂空悬浮物检测
  54610. ELECTRIC_FAULT_ENABLE_RULES_NESTDETECT, // 鸟巢检测
  54611. ELECTRIC_FAULT_ENABLE_RULES_DIALDETECT, // 表盘检测
  54612. ELECTRIC_FAULT_ENABLE_RULES_LEAKAGEDETECT, // 渗漏检测
  54613. ELECTRIC_FAULT_ENABLE_RULES_DOORDETECT, // 箱门检测
  54614. ELECTRIC_FAULT_ENABLE_RULES_RESPIRATORDETECT, // 呼吸器检测
  54615. ELECTRIC_FAULT_ENABLE_RULES_SMOKINGDETECT, // 吸烟检测
  54616. ELECTRIC_FAULT_ENABLE_RULES_INSULATORDETECT, // 绝缘子检测
  54617. ELECTRIC_FAULT_ENABLE_RULES_COVERPLATEDETECT, // 盖板检测
  54618. ELECTRIC_FAULT_ENABLE_RULES_PRESSINGPLATEDETECT, // 压板检测
  54619. ELECTRIC_FAULT_ENABLE_RULES_CORROSIONDETECT, // 锈蚀检测
  54620. } ELECTRIC_FAULT_ENABLE_RULES;
  54621. ///@brief 金属锈蚀结果
  54622. typedef struct tagNET_METAL_CORROSION
  54623. {
  54624. NET_RECT stuBoundingBox; // 包围盒
  54625. char bReserved[128]; // 预留字段
  54626. } NET_METAL_CORROSION;
  54627. ///@brief 仪表类缺陷检测事件
  54628. typedef struct tagDEV_EVENT_ELECTRICFAULTDETECT_INFO
  54629. {
  54630. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  54631. UINT nChannel; // 视频通道号
  54632. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  54633. int nEventID; // 事件ID
  54634. char szName[128]; // 事件名称
  54635. double PTS; // 时间戳(单位是毫秒)
  54636. NET_TIME_EX UTC; // 事件发生的时间
  54637. UINT nPresetID; // 预置点ID
  54638. UINT nUTCMS; // 事件时间毫秒数
  54639. ELECTRIC_FAULT_ENABLE_RULES emEnableRules[16]; // 对应设备所使能的检测规则
  54640. int nEnableRulesNum; // 设备所使能的检测规则个数
  54641. int nAirborneDetectNum; // 挂空悬浮物检测异常输出结果个数
  54642. NET_AIRBORNE_DETECT stuAirborneDetectInfo[8]; // 挂空悬浮物检测异常输出结果
  54643. NET_NEST_DETECT stuNestDetectInfo[8]; // 鸟巢检测结果
  54644. int nNestDetectNum; // 鸟巢检测结果个数
  54645. int nDialDetectNum; // 表盘检测结果个数
  54646. NET_DIAL_DETECT stuDialDetectInfo[8]; // 表盘检测结果
  54647. NET_LEAKAGE_DETECT stuLeakageDetectInfo[8]; // 渗漏检测结果
  54648. int nLeakageDetectNum; // 渗漏检测结果个数
  54649. int nDoorDetectNum; // 箱门检测结果个数
  54650. NET_DOOR_DETECT stuDoorDetectInfo[8]; // 箱门检测结果
  54651. NET_RESPIRATOR_DETECT stuRespiratorDetectInfo[8]; // 呼吸器检测结果
  54652. int nRespiratorDetectNum; // 呼吸器检测个数
  54653. int nSmokingDetectNum; // 吸烟检测结果个数
  54654. NET_SMOKING_DETECT stuSmokingDetectInfo[8]; // 吸烟检测结果
  54655. SCENE_IMAGE_INFO stuSceneImageInfo; // 大图
  54656. NET_INSULATOR_DETECT stuInsulatorDetectInfo[8]; // 绝缘子检测结果
  54657. int nInsulatorDetectNum; // 绝缘子检测结果个数
  54658. int nCoverPlateDetectNum; // 盖板检测结果个数
  54659. NET_COVER_PLATE_DETECT stuCoverPlateDetectInfo[8]; // 盖板检测结果
  54660. NET_PRESSING_PLATE_DETECT stuPressingPlateDetectInfo[8]; // 压板检测结果
  54661. int nPressingPlateDetectNum; // 压板检测结果个数
  54662. int nMetalCorrosionNum; // 金属锈蚀结果个数
  54663. NET_METAL_CORROSION stuMetalCorrosionInfo[8]; // 金属锈蚀结果
  54664. BYTE bReserved[1024]; // 预留字段
  54665. } DEV_EVENT_ELECTRICFAULTDETECT_INFO;
  54666. ///@brief 事件类型EVENT_IVS_FIREDETECTION(火警事件)对应的数据块描述信息
  54667. typedef struct tagDEV_EVENT_FIRE_INFO
  54668. {
  54669. int nChannelID; // 通道号
  54670. char szName[128]; // 事件名称
  54671. char bReserved1[4]; // 字节对齐
  54672. double PTS; // 时间戳(单位是毫秒)
  54673. NET_TIME_EX UTC; // 事件发生的时间
  54674. int nEventID; // 事件ID
  54675. DH_MSG_OBJECT stuObject; // 检测到的物体
  54676. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  54677. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  54678. BYTE byReserved[2]; // 保留字节
  54679. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  54680. int nDetectRegionNum; // 规则检测区域顶点数
  54681. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  54682. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  54683. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  54684. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  54685. unsigned int nOccurrenceCount; // 事件触发累计次数
  54686. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  54687. BOOL bSceneImage; // stuSceneImage 是否有效
  54688. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  54689. DH_MSG_OBJECT stuVehicle; // 车身信息
  54690. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  54691. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  54692. int nMark; // 标记抓拍帧
  54693. int nSource; // 视频分析的数据源地址
  54694. int nFrameSequence; // 视频分析帧序号
  54695. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  54696. EVENT_COMM_INFO stuCommInfo; // 公共信息
  54697. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  54698. int nImageInfoNum; // 图片信息个数
  54699. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  54700. } DEV_EVENT_FIRE_INFO;
  54701. ///@brief 事件类型EVENT_IVS_CROSSREGIONDETECTION(警戒区事件)对应的数据块描述信息
  54702. typedef struct tagDEV_EVENT_CROSSREGION_INFO
  54703. {
  54704. int nChannelID; // 通道号
  54705. char szName[128]; // 事件名称
  54706. char bReserved2[4]; // 字节对齐
  54707. double PTS; // 时间戳(单位是毫秒)
  54708. NET_TIME_EX UTC; // 事件发生的时间
  54709. int nEventID; // 事件ID
  54710. DH_MSG_OBJECT stuObject; // 检测到的物体
  54711. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  54712. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  54713. int nDetectRegionNum; // 规则检测区域顶点数
  54714. DH_POINT TrackLine[DH_MAX_TRACK_LINE_NUM]; // 物体运动轨迹
  54715. int nTrackLineNum; // 物体运动轨迹顶点数
  54716. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  54717. BYTE bDirection; // 表示入侵方向, 0-进入, 1-离开,2-出现,3-消失
  54718. BYTE bActionType; // 表示检测动作类型,0-出现 1-消失 2-在区域内 3-穿越区域
  54719. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  54720. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  54721. int nSourceIndex; // 事件源设备上的index,-1表示数据无效
  54722. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  54723. unsigned int nOccurrenceCount; // 事件触发累计次数
  54724. NET_CUSTOM_INFO stuCustom; // 货物通道信息
  54725. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  54726. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  54727. NET_PRESET_POSITION stPosition; // 预置点的坐标和放大倍数
  54728. UINT nVisibleHFOV; // 可见光横向视场角,单位度 实际角度乘以100
  54729. UINT nVisibleVFOV; // 可见光纵向视场角,单位度 实际角度乘以100
  54730. UINT nCurChannelHFOV; // 当前报警通道的横向视场角,单位度,实际角度乘以100
  54731. UINT nCurChannelVFOV; // 当前报警通道的纵向视场角,单位度,实际角度乘以100
  54732. char szRealEventType[32]; // 采用该字段区分是区域入侵还是特定事件,该字段不携带则是通用的区域入侵事件,携带则根据内容区分实际的事件类型,目前只有IllegalDumping(垃圾违规投放)
  54733. BYTE bReserved[264]; // 保留字节,留待扩展.
  54734. int nObjectNum; // 检测到的物体个数
  54735. DH_MSG_OBJECT stuObjectIDs[DH_MAX_OBJECT_LIST]; // 检测到的物体
  54736. int nTrackNum; // 轨迹数(与检测到的物体个数对应)
  54737. DH_POLY_POINTS stuTrackInfo[DH_MAX_OBJECT_LIST]; // 轨迹信息(与检测到的物体对应)
  54738. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  54739. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  54740. UINT nObjetcHumansNum; // 检测到人的数量
  54741. NET_VAOBJECT_NUMMAN stuObjetcHumans[100]; // 检测的到人
  54742. DH_MSG_OBJECT stuVehicle; // 车身信息
  54743. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  54744. int nMark; // 标记抓拍帧
  54745. int nSource; // 视频分析的数据源地址
  54746. int nFrameSequence; // 视频分析帧序号
  54747. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  54748. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  54749. EVENT_COMM_INFO stuCommInfo; // 公共信息
  54750. NET_PTZSPACE_UNNORMALIZED stuAbsPosition; // 云台方向与放大倍数(扩大100倍表示)
  54751. // 第一个元素为水平角度,0-36000;
  54752. // 第二个元素为垂直角度,(-18000)-(18000);
  54753. // 第三个元素为显示放大倍数,0-MaxZoom*100
  54754. int nHFovValue; // 对应倍率水平视场角, 单位0.01度, 扩大100倍表示
  54755. double dbFocusPosition; // 聚焦位置
  54756. UINT nObjectBoatNum; // 船只物体个数
  54757. NET_BOAT_OBJECT stuBoatObject[100]; // 船只物品信息
  54758. int nImageNum; // 图片信息个数
  54759. NET_IMAGE_INFO_EX2* pImageArray; // 图片信息数组
  54760. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  54761. DH_MSG_OBJECT_EX2* pstuObjectEx2; // 检测到的物体扩展
  54762. DH_MSG_OBJECT_EX2* pstuObjectIDsEx2; // 检测到的物体扩展,数量为nObjectNum
  54763. DH_MSG_OBJECT_EX2* pstuVehicleEx2; // 车身信息扩展
  54764. } DEV_EVENT_CROSSREGION_INFO;
  54765. ///@brief 烟雾颜色类型
  54766. typedef enum tagEM_SMOKE_COLOR
  54767. {
  54768. EM_SMOKE_COLOR_UNKNOWN, // 未知
  54769. EM_SMOKE_COLOR_WHITE, // White
  54770. EM_SMOKE_COLOR_BLACK, // black
  54771. EM_SMOKE_COLOR_RED, // red
  54772. EM_SMOKE_COLOR_YELLOW, // yellow
  54773. }EM_SMOKE_COLOR;
  54774. ///@brief 事件类型EVENT_IVS_SMOKEDETECTION(烟雾报警事件)对应的数据块描述信息
  54775. typedef struct tagDEV_EVENT_SMOKE_INFO
  54776. {
  54777. int nChannelID; // 通道号
  54778. char szName[128]; // 事件名称
  54779. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  54780. double PTS; // 时间戳(单位是毫秒)
  54781. NET_TIME_EX UTC; // 事件发生的时间
  54782. int nEventID; // 事件ID
  54783. DH_MSG_OBJECT stuObject; // 检测到的物体
  54784. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  54785. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  54786. BYTE byReserved[2];
  54787. BYTE byImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  54788. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  54789. unsigned int nOccurrenceCount; // 事件触发累计次数
  54790. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  54791. PTZ_SPACE_UNIT stuPtzPosition; // 云台的坐标和放大倍数
  54792. BOOL bSceneImage; // stuSceneImage 是否有效
  54793. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  54794. DH_MSG_OBJECT stuVehicle; // 车身信息
  54795. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  54796. int nMark; // 标记抓拍帧
  54797. int nSource; // 视频分析的数据源地址
  54798. int nFrameSequence; // 视频分析帧序号
  54799. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  54800. EVENT_COMM_INFO stuCommInfo; // 公共信息
  54801. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  54802. UINT nCurChannelHFOV; // 当前报警通道的横向视场角,单位:度,实际角度乘以100
  54803. UINT nCurChannelVFOV; // 当前报警通道的垂直视场角,单位:度,实际角度乘以100
  54804. NET_GPS_INFO_EX stuGPS; // 设备的GPS坐标
  54805. int nObjectCount; // 烟雾检测点个数
  54806. DH_MSG_OBJECT_EX2 stuObjects[16]; // 烟雾检测点信息
  54807. EM_SMOKE_COLOR emSmokeColor[16]; // 烟雾颜色
  54808. int nSmokeColorNum; // 烟雾颜色有效个数
  54809. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  54810. int nImageInfoNum; // 图片信息个数
  54811. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  54812. char szReserved[944]; // 保留字段
  54813. } DEV_EVENT_SMOKE_INFO;
  54814. ///@brief 交通卡口功能
  54815. typedef struct tagNET_TRAFFIC_JUNCTION_CUSTOM_INFO
  54816. {
  54817. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  54818. BYTE byReserved[1024]; // 保留字节
  54819. } NET_TRAFFIC_JUNCTION_CUSTOM_INFO;
  54820. ///@brief 事件 EVENT_IVS_TRAFFIC_WRONG_TURN_LIGHT 对应数据
  54821. typedef struct tagDEV_EVENT_TRAFFIC_WRONG_TURN_LIGHT_INFO
  54822. {
  54823. int nAction; // 0:脉冲
  54824. int nChannelID; // 通道号
  54825. char szName[128]; // 事件名称
  54826. double PTS; // 时间戳(单位:毫秒)
  54827. NET_TIME_EX UTC; // 事件发生的时间
  54828. UINT nEventID; // 事件ID
  54829. int nMark; // 标记抓拍帧
  54830. int nSource; // 视频分析的数据源地址
  54831. int nFrameSequence; // 视频分析帧序号
  54832. int nLaneID; // 车道号
  54833. int nSpeed; // 车速,单位km/h
  54834. char szDriverID[32]; // 司机ID
  54835. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  54836. EVENT_COMM_INFO stuCommInfo; // 公共信息
  54837. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  54838. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应的文件信息
  54839. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  54840. NET_TRAFFIC_JUNCTION_CUSTOM_INFO stuJunctionCustom; // 交通卡口功能
  54841. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  54842. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  54843. BYTE byResersed[1024]; // 保留字节
  54844. }DEV_EVENT_TRAFFIC_WRONG_TURN_LIGHT_INFO;
  54845. ///@brief 交通事故事件 EVENT_IVS_TRAFFIC_REAREND_ACCIDENT 对应数据
  54846. typedef struct tagDEV_EVENT_TRAFFIC_REAREND_ACCIDENT_INFO
  54847. {
  54848. int nAction; // 0:脉冲
  54849. int nChannelID; // 通道号
  54850. char szName[128]; // 事件名称
  54851. double PTS; // 时间戳(单位:毫秒)
  54852. NET_TIME_EX UTC; // 事件发生的时间
  54853. UINT nEventID; // 事件ID
  54854. int nMark; // 标记抓拍帧
  54855. int nSource; // 视频分析的数据源地址
  54856. int nFrameSequence; // 视频分析帧序号
  54857. UINT nLaneID; // 车道号
  54858. EVENT_COMM_INFO stuCommInfo; // 公共信息
  54859. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  54860. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应的文件信息
  54861. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  54862. DH_MSG_OBJECT stuObjects[50]; // 检测到的物体信息
  54863. int nObjectNum; // 返回检测到的个数
  54864. BYTE byResersed[1020]; // 保留字节
  54865. }DEV_EVENT_TRAFFIC_REAREND_ACCIDENT_INFO;
  54866. ///@brief 对讲动作类型
  54867. typedef enum tagEM_TALK_ACTION_TYPE
  54868. {
  54869. EM_TALK_ACTION_TYPE_UNKNOWN, // 未知
  54870. EM_TALK_ACTION_TYPE_INVITE, // 呼叫
  54871. EM_TALK_ACTION_TYPE_HANGUP, // 挂断
  54872. }EM_TALK_ACTION_TYPE;
  54873. ///@brief 呼叫源对象类型
  54874. typedef enum tagEM_CALL_SOURCE_TYPE
  54875. {
  54876. EM_CALL_SOURCE_TYPE_UNKNOWN, // 未知
  54877. EM_CALL_SOURCE_TYPE_VT_OR_SIP, // VT或SIP
  54878. EM_CALL_SOURCE_TYPE_GEN2, // 二代
  54879. EM_CALL_SOURCE_TYPE_THIRD_PARTY, // 第三方
  54880. }EM_CALL_SOURCE_TYPE;
  54881. ///@brief 挂断原因
  54882. typedef enum tagEM_HANGUP_REASON
  54883. {
  54884. EM_HANGUP_REASON_UNKNOWN, // 未知
  54885. EM_HANGUP_REASON_ANSWER_BY_VTH, // VTH 已应答
  54886. EM_HANGUP_REASON_REFUSE_BY_VTH, // VTH 已拒绝
  54887. EM_HANGUP_REASON_HANGUP_BY_VTO, // VTO 挂断
  54888. }EM_HANGUP_REASON;
  54889. ///@brief 对讲信息
  54890. typedef struct tagDEV_EVENT_DO_TALK_ACTION_INFO
  54891. {
  54892. int nAction; // 0:脉冲
  54893. int nChannelID; // 通道号
  54894. char szName[128]; // 事件名称
  54895. double PTS; // 时间戳(单位:毫秒)
  54896. NET_TIME_EX UTC; // 事件发生的时间
  54897. int nEventID; // 事件ID
  54898. char szCallID[64]; // 呼叫ID
  54899. EM_TALK_ACTION_TYPE emTalkAction; // 对讲动作类型
  54900. EM_CALL_SOURCE_TYPE emCallSource; // 呼叫源类型
  54901. EM_HANGUP_REASON emHangupReason; // 挂断原因,emTalkAction 为 EM_TALK_ACTION_TYPE_HANGUP 时有效
  54902. BYTE byReserved[1020]; // 预留字段
  54903. }DEV_EVENT_DO_TALK_ACTION_INFO;
  54904. ///@brief 水位场景类型
  54905. typedef enum tagEM_WATERMONITOR_SCENE_TYPE
  54906. {
  54907. EM_WATERMONITOR_SCENE_UNKNOWN, // 未知
  54908. EM_WATERMONITOR_SCENE_WATERSTAGE_RULE, // 水位检测, 有水位尺
  54909. EM_WATERMONITOR_SCENE_WATERSTAGE_NO_RULE, // 水位检测, 无水位尺
  54910. EM_WATERMONITOR_SCENE_WATERLOGG_RULE, // 内涝检测, 有水位尺
  54911. EM_WATERMONITOR_SCENE_WATERLOGG_NO_RULE, // 内涝检测, 无水位尺
  54912. } EM_WATERSTAGE_SCENE_TYPE;
  54913. ///@brief 水面分割掩膜信息
  54914. typedef struct tagNET_WATER_SURFACE_MASK_INFO
  54915. {
  54916. UINT nColNum; // 水面分割掩膜列数
  54917. UINT nOffset; // 偏移
  54918. UINT nLength; // 长度
  54919. BYTE byReserved[1020]; // 预留字段
  54920. } NET_WATER_SURFACE_MASK_INFO;
  54921. ///@brief 水位监测事件, 目前仅用于任务型智能分析
  54922. typedef struct tagDEV_EVENT_WATER_STAGE_MONITOR_INFO
  54923. {
  54924. int nChannelID; // 通道号
  54925. int nAction; // 0:脉冲
  54926. char szName[128]; // 事件名称
  54927. double PTS; // 时间戳(单位是毫秒)
  54928. NET_TIME_EX UTC; // 事件发生的时间
  54929. int nEventID; // 事件ID
  54930. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  54931. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  54932. EM_WATERSTAGE_SCENE_TYPE emSceneType; // 水位场景类型
  54933. double dbMark; // 水尺读数
  54934. NET_POINT stuCrossPoint; // 水尺与水面交点
  54935. NET_WATER_SURFACE_MASK_INFO stuWaterSurfaceMask; // 水面分割掩膜信息, emSceneType 为EM_WATERMONITOR_SCENE_WATERSTAGE_NO_RULE 或者EM_WATERMONITOR_SCENE_WATERLOGG_NO_RULE有效
  54936. BYTE byReserved[1020]; // 预留字段
  54937. } DEV_EVENT_WATER_STAGE_MONITOR_INFO;
  54938. ///@brief 压停止线触发类型
  54939. typedef enum tagEM_TRAFFIC_OVER_LINE_TRIGGER_TYPE
  54940. {
  54941. EM_TRAFFIC_OVER_LINE_TRIGGER_TYPE_UNKNOWN, // 未知
  54942. EM_TRAFFIC_OVER_LINE_TRIGGER_TYPE_VEHICLE_DETECTOR, // 车检器
  54943. EM_TRAFFIC_OVER_LINE_TRIGGER_TYPE_RADAR, // 雷达
  54944. EM_TRAFFIC_OVER_LINE_TRIGGER_TYPE_VIDEO, // 视频
  54945. }EM_TRAFFIC_OVER_LINE_TRIGGER_TYPE;
  54946. ///@brief 事件类型 EVENT_IVS_TRAFFIC_OVER_GUIDE_LINE (压导流线事件)对应的数据块描述信息
  54947. typedef struct tagDEV_EVENT_TRAFFIC_OVER_GUIDE_LINE_INFO
  54948. {
  54949. int nChannelID; // 通道号
  54950. int nAction; // 0:脉冲事件
  54951. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  54952. double PTS; // 时间戳(单位是毫秒)
  54953. NET_TIME_EX UTC; // 事件发生的时间
  54954. int nEventID; // 事件ID
  54955. int nLane; // 对应车道号,从1开始有效
  54956. BYTE byReserved1[4]; // 字节对齐
  54957. DH_MSG_OBJECT stuObject; // 检测到的物体
  54958. BYTE byReserved2[4]; // 字节对齐
  54959. DH_MSG_OBJECT stuVehicle; // 车身信息
  54960. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  54961. EM_TRAFFIC_OVER_LINE_TRIGGER_TYPE emTriggerLine; // 触发类型
  54962. int nSnapFrameMark; // 抓拍帧标记
  54963. int nDataSourceAddress; // 视频分析的数据源地址
  54964. int nFrameSequence; // 视频分析帧序号
  54965. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束
  54966. int nSpeed; // 车速,单位km/h
  54967. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  54968. EVENT_COMM_INFO stuCommInfo; // 公共信息
  54969. BYTE byReserved[1024]; // 预留字段
  54970. }DEV_EVENT_TRAFFIC_OVER_GUIDE_LINE_INFO;
  54971. ///@brief 物体进入还是离开
  54972. typedef enum tagEM_FIRE_LANE_MOVE_STATE
  54973. {
  54974. EM_FIRE_LANE_MOVE_STATE_UNKNOWN, // 未知
  54975. EM_FIRE_LANE_MOVE_STATE_ENTER, // 进入
  54976. EM_FIRE_LANE_MOVE_STATE_LEAVE, // 离开
  54977. }EM_FIRE_LANE_MOVE_STATE;
  54978. ///@brief 加油口盖标示牌状态
  54979. typedef enum tagEM_FIRE_LANE_OILCAP_STATE
  54980. {
  54981. EM_FIRE_LANE_OILCAP_STATE_UNKNOWN, // 未知
  54982. EM_FIRE_LANE_OILCAP_STATE_OPEN, // 打开
  54983. EM_FIRE_LANE_OILCAP_STATE_CLOSE, // 关闭
  54984. }EM_FIRE_LANE_OILCAP_STATE;
  54985. ///@brief 事件类型EVENT_IVS_FIRE_LANE_DETECTION(消防占道检测事件)对应的数据块描述信息
  54986. typedef struct tagDEV_EVENT_FIRE_LANE_DETECTION_INFO
  54987. {
  54988. int nChannelID; // 通道号
  54989. int nAction; // 1:开始,2:停止
  54990. char szName[128]; // 事件名称
  54991. double PTS; // 时间戳(单位是毫秒)
  54992. NET_TIME_EX UTC; // 事件发生的时间
  54993. int nEventID; // 事件ID
  54994. int nSequence; // 帧序号
  54995. int nRuleID; // 规则编号
  54996. UINT nObjectNum; // 检测到的物体个数
  54997. DH_MSG_OBJECT stuObjects[64]; // 检测到的物体
  54998. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  54999. BOOL bSceneImage; // stuSceneImage 是否有效
  55000. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  55001. EM_FIRE_LANE_MOVE_STATE emMoveState; // 表示物体进入还是离开
  55002. EM_FIRE_LANE_OILCAP_STATE emOilCapState; // 表示加油口盖标示牌状态
  55003. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  55004. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  55005. int nImageInfoNum; // 图片信息个数
  55006. BOOL bNonMotorInfo; // 是否有非机动车信息
  55007. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  55008. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  55009. char byReserved[1024]; // 预留字段
  55010. } DEV_EVENT_FIRE_LANE_DETECTION_INFO;
  55011. ///@brief 事件类型 EVENT_IVS_TRAFFIC_NON_MOTOR_RETROGRADE(非机动车逆行事件)对应的数据块描述信息
  55012. typedef struct tagDEV_EVENT_TRAFFIC_NON_MOTOR_RETROGRADE_INFO
  55013. {
  55014. int nChannelID; // 通道号
  55015. int nAction; // 0:脉冲事件
  55016. char szName[128]; // 事件名称
  55017. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55018. double PTS; // 时间戳(单位是毫秒)
  55019. NET_TIME_EX UTC; // 事件发生的时间
  55020. UINT nEventID; // 事件ID
  55021. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  55022. EM_TRAFFIC_OVER_LINE_TRIGGER_TYPE emTriggerLine; // 触发类型
  55023. int nMark; // 标记抓拍帧
  55024. int nSource; // 视频分析的数据源地址
  55025. int nFrameSequence; // 视频分析帧序号
  55026. int nLaneID; // 车道号
  55027. int nSpeed; // 车速(单位:km/h)
  55028. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  55029. EVENT_COMM_INFO stuCommInfo; // 公共信息
  55030. BOOL bNonMotorInfoEx; // 是否有非机动车信息
  55031. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  55032. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  55033. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  55034. BYTE byReserved[1012]; // 预留字段
  55035. }DEV_EVENT_TRAFFIC_NON_MOTOR_RETROGRADE_INFO;
  55036. ///@brief 事件类型 EVENT_IVS_CAR_DRIVING_IN(车辆驶入事件)对应的数据块描述信息
  55037. typedef struct tagDEV_EVENT_CAR_DRIVING_IN_INFO
  55038. {
  55039. int nChannelID; // 通道号
  55040. int nAction; // 0:脉冲
  55041. char szName[128]; // 事件名称
  55042. double PTS; // 时间戳(单位:毫秒)
  55043. NET_TIME_EX UTC; // 事件发生的时间
  55044. UINT nEventID; // 事件ID
  55045. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55046. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  55047. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  55048. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  55049. int nMark; // 标记抓拍帧
  55050. int nSource; // 视频分析的数据源地址
  55051. int nFrameSequence; // 视频分析帧序号
  55052. int nLaneID; // 车道号
  55053. int nSpeed; // 车速(单位:km/h)
  55054. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆的数据库记录
  55055. EVENT_COMM_INFO stuCommInfo; // 公共信息
  55056. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  55057. BYTE bReserved[1020]; // 保留字节
  55058. }DEV_EVENT_CAR_DRIVING_IN_INFO;
  55059. ///@brief 事件类型 EVENT_IVS_TRAFFIC_NON_MOTOR_OVER_STOP_LINE(非机动车越线停车事件)对应的数据块描述信息
  55060. typedef struct tagDEV_EVENT_TRAFFIC_NON_MOTOR_OVER_STOP_LINE_INFO
  55061. {
  55062. int nChannelID; // 通道号
  55063. int nAction; // 0:脉冲事件
  55064. char szName[128]; // 事件名称
  55065. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55066. double PTS; // 时间戳(单位是毫秒)
  55067. NET_TIME_EX UTC; // 事件发生的时间
  55068. UINT nEventID; // 事件ID
  55069. int nLaneID; // 车道号
  55070. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  55071. BOOL bNonMotorInfoEx; // 是否有非机动车信息
  55072. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  55073. EVENT_COMM_INFO stuCommInfo; // 公共信息
  55074. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  55075. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  55076. BYTE byReserved[1012]; // 预留字段
  55077. }DEV_EVENT_TRAFFIC_NON_MOTOR_OVER_STOP_LINE_INFO;
  55078. ///@brief 事件类型 EVENT_IVS_CAR_DRIVING_OUT(车辆驶出事件)对应的数据块描述信息
  55079. typedef struct tagDEV_EVENT_CAR_DRIVING_OUT_INFO
  55080. {
  55081. int nChannelID; // 通道号
  55082. int nAction; // 0:脉冲
  55083. char szName[128]; // 事件名称
  55084. double PTS; // 时间戳(单位:毫秒)
  55085. NET_TIME_EX UTC; // 事件发生的时间
  55086. UINT nEventID; // 事件ID
  55087. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55088. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  55089. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  55090. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  55091. int nMark; // 标记抓拍帧
  55092. int nSource; // 视频分析的数据源地址
  55093. int nFrameSequence; // 视频分析帧序号
  55094. int nLaneID; // 车道号
  55095. int nSpeed; // 车速(单位:km/h)
  55096. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆的数据库记录
  55097. EVENT_COMM_INFO stuCommInfo; // 公共信息
  55098. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  55099. BYTE bReserved[1020]; // 保留字节
  55100. }DEV_EVENT_CAR_DRIVING_OUT_INFO;
  55101. ///@brief 报警事件类型 EVENT_ALARM_LOCALALARM(外部报警),EVENT_ALARM_MOTIONALARM(动检报警)报警)
  55102. typedef struct tagDEV_EVENT_ALARM_INFO
  55103. {
  55104. int nChannelID; // 通道号
  55105. char szName[128]; // 事件名称
  55106. char Reserved[4]; // 保留字节对齐
  55107. double PTS; // 时间戳(单位是毫秒)
  55108. NET_TIME_EX UTC; // 事件发生的时间
  55109. int nEventID; // 事件ID
  55110. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55111. EVENT_COMM_INFO stCommInfo; // 公共信息
  55112. BYTE byEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  55113. BYTE byReserved[3]; // 保留字节
  55114. NET_SENSE_METHOD emSenseType; // 传感器类型
  55115. EM_NET_DEFENCE_AREA_TYPE emDefenceAreaType; // 防区类型
  55116. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  55117. char szUserID[32]; // 本地报警时登陆的用户ID
  55118. char szUserName[128]; // 本地报警时登陆的用户名
  55119. char szSN[32]; // 设备序列号
  55120. BOOL bExAlarmIn; // 外部输入报警
  55121. NET_FILE_PROCESS_INFO stuFileProcessInfo; // 图片与智能事件信息
  55122. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  55123. char szReserved[512]; // 保留字节
  55124. }DEV_EVENT_ALARM_INFO;
  55125. ///@brief 事件类型 EVENT_IVS_TRAFFIC_HEAD_LAMP_OFF(未开照明灯事件)对应的数据块描述信息
  55126. typedef struct tagDEV_EVENT_TRAFFIC_HEAD_LAMP_OFF_INFO
  55127. {
  55128. int nChannelID; // 通道号
  55129. int nAction; // 0:脉冲
  55130. char szName[128]; // 事件名称
  55131. double PTS; // 时间戳(单位:毫秒)
  55132. NET_TIME_EX UTC; // 事件发生的时间
  55133. UINT nEventID; // 事件ID
  55134. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55135. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  55136. DH_MSG_OBJECT stuVehicle; // 检测到的物体信息
  55137. int nMark; // 标记抓拍帧
  55138. int nSource; // 视频分析的数据源地址
  55139. int nFrameSequence; // 视频分析帧序号
  55140. int nLaneID; // 车道号
  55141. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆的数据库记录
  55142. EVENT_COMM_INFO stuCommInfo; // 公共信息
  55143. EM_CAPTURE_PROCESS_END_TYPE emCaptureProcess; // 抓拍过程
  55144. BYTE bReserved[1020]; // 保留字节
  55145. }DEV_EVENT_TRAFFIC_HEAD_LAMP_OFF_INFO;
  55146. ///@brief 事件类型 EVENT_IVS_TRAFFIC_SPECIAL_VEHICLE_DETECT (特殊车辆检测)对应的数据块描述信息
  55147. typedef struct tagDEV_EVENT_TRAFFIC_SPECIAL_VEHICLE_INFO
  55148. {
  55149. int nChannelID; // 通道号
  55150. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  55151. char szName[128]; // 事件名称
  55152. double PTS; // 时间戳(单位:毫秒)
  55153. NET_TIME_EX UTC; // 事件发生的时间
  55154. UINT nEventID; // 事件ID
  55155. UINT nRuleId; // 智能事件规则编号
  55156. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55157. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  55158. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  55159. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  55160. EVENT_COMM_INFO stuCommInfo; // 公共信息
  55161. BYTE bReserved[1020]; // 保留字节
  55162. }DEV_EVENT_TRAFFIC_SPECIAL_VEHICLE_INFO;
  55163. ///@brief 事件类型 EVENT_IVS_TRAFFIC_NONMOTOR (交通非机动车事件检测)对应的数据块描述信息
  55164. typedef struct tagDEV_EVENT_TRAFFIC_NONMOTOR_INFO
  55165. {
  55166. int nChannelID; // 通道号
  55167. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  55168. char szName[128]; // 事件名称
  55169. double PTS; // 时间戳(单位:毫秒)
  55170. NET_TIME_EX UTC; // 事件发生的时间
  55171. UINT nEventID; // 事件ID
  55172. UINT nRuleId; // 智能事件规则编号
  55173. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55174. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  55175. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  55176. EVENT_COMM_INFO stuCommInfo; // 公共信息
  55177. BOOL bNonMotorInfo; // 是否有非机动车信息
  55178. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  55179. BYTE bReserved[1024]; // 保留字节
  55180. }DEV_EVENT_TRAFFIC_NONMOTOR_INFO;
  55181. ///@brief 事件类型 EVENT_IVS_TRAFFIC_BOARD (交通违章上下客事件检测)对应的数据块描述信息
  55182. typedef struct tagDEV_EVENT_TRAFFIC_BOARD_INFO
  55183. {
  55184. int nChannelID; // 通道号
  55185. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  55186. char szName[128]; // 事件名称
  55187. double PTS; // 时间戳(单位:毫秒)
  55188. NET_TIME_EX UTC; // 事件发生的时间
  55189. UINT nEventID; // 事件ID
  55190. UINT nRuleId; // 智能事件规则编号
  55191. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55192. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  55193. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  55194. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  55195. EVENT_COMM_INFO stuCommInfo; // 公共信息
  55196. BYTE bReserved[1020]; // 保留字节
  55197. }DEV_EVENT_TRAFFIC_BOARD_INFO;
  55198. ///@brief 事件类型 EVENT_IVS_TRAFFIC_VISIBILITY (交通能见度事件检测)对应的数据块描述信息
  55199. typedef struct tagDEV_EVENT_TRAFFIC_VISIBILITY_INFO
  55200. {
  55201. int nChannelID; // 通道号
  55202. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  55203. char szName[128]; // 事件名称
  55204. double PTS; // 时间戳(单位:毫秒)
  55205. NET_TIME_EX UTC; // 事件发生的时间
  55206. UINT nEventID; // 事件ID
  55207. UINT nRuleId; // 智能事件规则编号
  55208. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55209. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  55210. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  55211. EVENT_COMM_INFO stuCommInfo; // 公共信息
  55212. UINT nVisibility; // 能见程度(表示距离范围)单位:米
  55213. BYTE bReserved[1020]; // 保留字节
  55214. }DEV_EVENT_TRAFFIC_VISIBILITY_INFO;
  55215. ///@brief 事件类型 EVENT_IVS_TRAFFIC_VEHICLE_CLEANLINESS (交通车辆清洁度检测事件检测)对应的数据块描述信息
  55216. typedef struct tagDEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO
  55217. {
  55218. int nChannelID; // 通道号
  55219. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  55220. char szName[128]; // 事件名称
  55221. double PTS; // 时间戳(单位:毫秒)
  55222. NET_TIME_EX UTC; // 事件发生的时间
  55223. UINT nEventID; // 事件ID
  55224. UINT nRuleId; // 智能事件规则编号
  55225. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55226. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  55227. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  55228. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  55229. EVENT_COMM_INFO stuCommInfo; // 公共信息
  55230. int nCleanValue; // 清洁度阀值
  55231. BYTE bReserved[1024]; // 保留字节
  55232. }DEV_EVENT_TRAFFIC_VEHICLE_CLEANLINESS_INFO;
  55233. ///@brief 事件类型 EVENT_IVS_TRUCKNOTCLEAN_FOR_PRMA 工程车未清洗 对应的数据块描述信息
  55234. typedef struct tagDEV_EVENT_TRUCKNOTCLEAN_FOR_PRMA_INFO
  55235. {
  55236. int nChannelID; // 通道号
  55237. int nAction; // 0-脉冲 1-开始 2-结束
  55238. char szName[128]; // 事件名称
  55239. double PTS; // 时间戳(单位:毫秒)
  55240. NET_TIME_EX UTC; // 事件发生的时间
  55241. UINT nEventID; // 事件ID
  55242. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55243. EM_CLASS_TYPE emClass; // 智能事件所属大类
  55244. UINT nSequence; // 帧序号
  55245. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  55246. BOOL bSceneImage; // stuSceneImage 是否有效
  55247. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  55248. BYTE bReserved[1024]; // 保留字节
  55249. }DEV_EVENT_TRUCKNOTCLEAN_FOR_PRMA_INFO;
  55250. ///@brief 事件类型 EVENT_IVS_ROADOCCUPATION_BY_FOREIGNOBJECT 异物占道事件 对应的数据块描述信息
  55251. typedef struct tagDEV_EVENT_ROADOCCUPATION_BY_FOREIGNOBJECT_INFO
  55252. {
  55253. int nChannelID; // 通道号
  55254. int nAction; // 0-脉冲 1-开始 2-结束
  55255. char szName[128]; // 事件名称
  55256. double PTS; // 时间戳(单位:毫秒)
  55257. NET_TIME_EX UTC; // 事件发生的时间
  55258. UINT nEventID; // 事件ID
  55259. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55260. EM_CLASS_TYPE emClass; // 智能事件所属大类
  55261. UINT nSequence; // 帧序号
  55262. BYTE bReserved[1024]; // 保留字节
  55263. }DEV_EVENT_ROADOCCUPATION_BY_FOREIGNOBJECT_INFO;
  55264. ///@brief 事件类型 EVENT_IVS_TRAFFICFLOW_OVER 车流量超过上限 对应的数据块描述信息
  55265. typedef struct tagDEV_EVENT_TRAFFICFLOW_OVER_INFO
  55266. {
  55267. int nChannelID; // 通道号
  55268. int nAction; // 0-脉冲 1-开始 2-结束
  55269. char szName[128]; // 事件名称
  55270. double PTS; // 时间戳(单位:毫秒)
  55271. NET_TIME_EX UTC; // 事件发生的时间
  55272. UINT nEventID; // 事件ID
  55273. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55274. EM_CLASS_TYPE emClass; // 智能事件所属大类
  55275. UINT nSequence; // 帧序号
  55276. int nLane; // 车道号
  55277. int nVehicleNums; // 统计时间内的车辆数
  55278. BYTE bReserved[1024]; // 保留字节
  55279. }DEV_EVENT_TRAFFICFLOW_OVER_INFO;
  55280. ///@brief 物品类型
  55281. typedef enum tagEM_GOODS_TYPE
  55282. {
  55283. EM_GOODS_TYPE_UNKNOWN, // 未知类型
  55284. EM_GOODS_TYPE_RMB, // 人民币
  55285. EM_GOODS_TYPE_KEY, // 钥匙
  55286. EM_GOODS_TYPE_SEAL, // 印章
  55287. EM_GOODS_TYPE_CARD, // 卡片
  55288. }EM_GOODS_TYPE;
  55289. ///@brief 事件类型 EVENT_IVS_GOODS_DETECTION 违规物品检测事件 对应的数据块描述信息
  55290. typedef struct tagDEV_EVENT_GOODS_DETECTION_INFO
  55291. {
  55292. int nChannelID; // 通道号
  55293. int nAction; // 0-脉冲 1-开始 2-结束
  55294. char szName[128]; // 事件名称
  55295. double PTS; // 时间戳(单位:毫秒)
  55296. NET_TIME_EX UTC; // 事件发生的时间
  55297. UINT nEventID; // 事件ID
  55298. UINT nRuleId; // 智能事件规则编号
  55299. UINT nPresetID; // 事件触发的预置点号,从1开始
  55300. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55301. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  55302. BOOL bSceneImage; // stuSceneImage 是否有效
  55303. EM_GOODS_TYPE emObjectType; // 物品类型
  55304. BYTE bReserved[1020]; // 保留字节
  55305. }DEV_EVENT_GOODS_DETECTION_INFO;
  55306. ///@brief 事件类型 EVENT_IVS_CONVEYORBLOCK_DETECTION 传送阻塞报警事件 对应的数据块描述信息
  55307. typedef struct tagDEV_EVENT_CONVEYORBLOCK_DETECTION_INFO
  55308. {
  55309. int nChannelID; // 通道号
  55310. int nAction; // 0-脉冲 1-开始 2-结束
  55311. char szName[128]; // 事件名称
  55312. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  55313. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  55314. double dPTS; // 相对事件时间戳,单位毫秒
  55315. NET_TIME_EX UTC; // 事件发生时间,带时区偏差的UTC时间,单位秒
  55316. UINT nUTCMS; // 事件时间毫秒数
  55317. UINT nEventID; // 事件编号,用来唯一标志一个事件
  55318. UINT nSequence; // 帧序号
  55319. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景图
  55320. BOOL bSceneImage; // stuSceneImage 是否有效
  55321. NET_IMAGE_INFO_EX2 stuImageInfo[32]; // 图片信息数组
  55322. int nImageInfoNum; // 图片信息个数
  55323. char byReserved[1024]; // 保留字节
  55324. }DEV_EVENT_CONVEYORBLOCK_DETECTION_INFO;
  55325. ///@brief 物体动作支持类型
  55326. typedef enum tagENUM_VAGEOBJECT_ACTION
  55327. {
  55328. ENUM_VAGEOBJECT_ACTION_UNKNOWN, // 未知类型
  55329. ENUM_VAGEOBJECT_ACTION_APPEAR, // 第一次出现在检测区域中,或者跟踪时物理分离动作中尚未确认的新物体
  55330. ENUM_VAGEOBJECT_ACTION_MOVE, // 正在运动,物体被正常跟踪
  55331. ENUM_VAGEOBJECT_ACTION_STAY, // 物体停止运动,这个物体不会在出现在下一帧物体列表中,物体开始移动后再恢复在列表中
  55332. ENUM_VAGEOBJECT_ACTION_REMOVE, // 物体从原来的区域移除,或者被遮盖,或者跟踪失败,移除的物体ID不会被自动删除,并且物体重现出现是有可能再次被使用
  55333. ENUM_VAGEOBJECT_ACTION_DISAPPEAR, // 运动到跟踪区域之外,或者达到了算法跟踪物体的上限而被清除,消失的物体ID将不再出现
  55334. ENUM_VAGEOBJECT_ACTION_SPLIT, // 从其他物体中分离出来,可以用来检测物体遗留,关联ID表示从这个ID对应物体分离
  55335. ENUM_VAGEOBJECT_ACTION_MERGE, // 合并到其他物体,可以用来检查物体保全,关联ID表示合并到这个ID对相应的物体
  55336. ENUM_VAGEOBJECT_ACTION_RENAME, // 如果算法无法确定分离动作中某个物体是原先同一个物体,应该创建先一个新的物体,证据充分后再重命名为旧的物体ID,关联ID表示暂时使用的新的ID
  55337. }ENUM_VAGEOBJECT_ACTION;
  55338. ///@brief 物体截图
  55339. typedef struct tagNET_VAGEOBJECT_IMAGE
  55340. {
  55341. UINT nOffset; // 在二进制数据块中的偏移
  55342. UINT nLength; // 图片大小,单位:字节
  55343. UINT nWidth; // 图片宽度
  55344. UINT nHeight; // 图片高度
  55345. char szFilePath[260]; // 文件路径
  55346. }NET_VAGEOBJECT_IMAGE;
  55347. ///@brief 视频分析泛型物体类型
  55348. typedef struct tagNET_VAGEOBJECT_INFO
  55349. {
  55350. UINT nObjectID; // 物体ID,每个ID表示一个唯一的物体
  55351. UINT nTypeIndex; // 模型支持的泛类型物体类型编号
  55352. char szTypeName[32]; // 模型支持的泛类型物体类型
  55353. int nConfidence; // 置信度,值越大表示置信度越高 0~100
  55354. ENUM_VAGEOBJECT_ACTION emAction; // 物体动作支持类型
  55355. NET_RECT stuBoundingBox; // 包围盒 矩形类型,当物体类型为车辆、车牌时为0~8191相对坐标
  55356. NET_RECT stuOriginalBoundingBox; // 包围盒 绝对坐标
  55357. NET_POINT stuCenter; // 物体型心(不是包围盒中心), 二维空间点类型
  55358. BOOL bMainColor; // 主要颜色是否有效
  55359. BYTE byMainColor[4]; // 物体主要颜色, rgb
  55360. NET_VAGEOBJECT_IMAGE stuImage; // 物体截图
  55361. NET_TIME_EX stuCurrentTimeStamp; // 当前时间戳(物体抓拍或识别时,会将此识别智能帧附在一个视频帧或jpeg图片中,此帧所在原始视频中的出现时间)
  55362. BYTE byReserved[1024]; // 保留字节
  55363. }NET_VAGEOBJECT_INFO;
  55364. ///@brief 事件类型 EVENT_IVS_ANYTHING_DETECT 全物体类型检测事件 对应的数据块描述信息
  55365. typedef struct tagDEV_EVENT_ANYTHING_DETECT_INFO
  55366. {
  55367. int nChannelID; // 通道号
  55368. int nAction; // 0-脉冲 1-开始 2-结束
  55369. char szName[128]; // 事件名称
  55370. double PTS; // 时间戳(单位:毫秒)
  55371. NET_TIME_EX UTC; // 事件发生的时间
  55372. UINT nEventID; // 事件ID
  55373. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  55374. UINT nRuleId; // 智能事件规则编号
  55375. UINT nPresetID; // 事件触发的预置点号,从1开始
  55376. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55377. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  55378. int nObjectNum; // 检测到的物体个数
  55379. NET_VAGEOBJECT_INFO *pstuObjects; // 检测到的物体信息
  55380. BYTE bReserved[1024]; // 保留字节
  55381. }DEV_EVENT_ANYTHING_DETECT_INFO;
  55382. ///@brief 检测目标信息
  55383. typedef struct tagNET_OBJECT_INFO
  55384. {
  55385. NET_RECT stuBoundingBox; // 目标包围盒(8192坐标系)
  55386. BYTE bReserved[256]; // 保留字节
  55387. }NET_OBJECT_INFO;
  55388. ///@brief 目标类型
  55389. typedef enum tagEM_ABNORMAL_OBJECT_TYPE
  55390. {
  55391. ABNORMAL_OBJECT_TYPE_UNKNOWN, // 未知
  55392. ABNORMAL_OBJECT_TYPE_PIG, // 猪
  55393. }EM_ABNORMAL_OBJECT_TYPE;
  55394. ///@brief 异常行为
  55395. typedef enum tagEM_OBJCET_ABNORMAL_TYPE
  55396. {
  55397. EM_OBJECT_ABNORMAL_TYPE_UNKNOWN, // 未知
  55398. EM_OBJECT_ABNORMAL_TYPE_RETROGRADE,// 逆向运动
  55399. }EM_OBJECT_ABNORMAL_TYPE;
  55400. ///@brief 事件类型 EVENT_IVS_OBJECT_ABNORMAL 目标异常检测事件 对应的数据块描述信息
  55401. typedef struct tagDEV_EVENT_OBJECT_ABNORMAL_INFO
  55402. {
  55403. int nChannelID; // 通道号
  55404. int nAction; // 0-脉冲 1-开始 2-结束
  55405. char szName[128]; // 事件名称
  55406. double PTS; // 时间戳(单位:毫秒)
  55407. NET_TIME_EX UTC; // 事件发生的时间
  55408. UINT nEventID; // 事件ID
  55409. NET_EVENT_IMAGE_OFFSET_INFO stuSceneImage; // 全景大图信息
  55410. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  55411. unsigned short nAreaID; // 区域ID(一个预置点可以对应多个区域ID)
  55412. unsigned short nPresetID; // 预置点编号,从1开始
  55413. NET_OBJECT_INFO stuObjectInfo[64]; // 目标信息
  55414. int nObjectInfoNum; // 目标信息个数
  55415. EM_ABNORMAL_OBJECT_TYPE emObjectType; // 目标类型
  55416. EM_OBJECT_ABNORMAL_TYPE emAbnormalType; // 异常行为
  55417. BYTE bReserved[1020]; // 保留字节
  55418. }DEV_EVENT_OBJECT_ABNORMAL_INFO;
  55419. ///@brief 事件类型 EVENT_IVS_TRAFFIC_SPEED_CHANGE_DETECTION 变速检测事件 对应的数据块描述信息
  55420. typedef struct tagDEV_EVENT_TRAFFIC_SPEED_CHANGE_DETECTION_INFO
  55421. {
  55422. int nChannelID; // 通道号
  55423. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  55424. char szName[128]; // 事件名称
  55425. double PTS; // 时间戳(单位:毫秒)
  55426. NET_TIME_EX UTC; // 事件发生的时间
  55427. UINT nEventID; // 事件ID
  55428. UINT nRuleId; // 智能事件规则编号
  55429. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  55430. DH_MSG_OBJECT stuObject; // 检测到的车牌信息
  55431. DH_MSG_OBJECT stuVehicle; // 检测到的车辆信息
  55432. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  55433. int nLane; // 对应车道号
  55434. int nSpeedNew; // 当前车速, 单位: km/h
  55435. int nSpeedOld; // 变化前车速, 单位: km/h
  55436. BYTE byReserved[1024]; // 保留字节
  55437. } DEV_EVENT_TRAFFIC_SPEED_CHANGE_DETECTION_INFO;
  55438. ///@brief 跟随车辆报警自定义信息
  55439. typedef struct tagNET_FOLLOW_CAR_ALARM_CUSTOM_INFO
  55440. {
  55441. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  55442. BYTE byReserved[256]; // 保留字节
  55443. }NET_FOLLOW_CAR_ALARM_CUSTOM_INFO;
  55444. ///@brief 跟随车辆报警图片类型
  55445. typedef enum tagNET_FOLLOW_CAR_ALARM_IMAGE_TYPE
  55446. {
  55447. EM_FOLLOW_CAR_ALARM_IMAGE_TYPE_UNKNOWN = -1, // 未知
  55448. EM_FOLLOW_CAR_ALARM_IMAGE_TYPE_PANORAMA, // 全景图
  55449. EM_FOLLOW_CAR_ALARM_IMAGE_TYPE_SMALL_PICTURE, // 小图
  55450. }EM_FOLLOW_CAR_ALARM_IMAGE_TYPE;
  55451. ///@brief 跟随车辆报警图片信息
  55452. typedef struct tagNET_FOLLOW_CAR_ALARM_IMAGE_INFO
  55453. {
  55454. UINT nGroupID; // 同一组大小图片内GroupID相同
  55455. EM_FOLLOW_CAR_ALARM_IMAGE_TYPE emImageType; // 图片类型
  55456. DWORD dwoffset; // 在二进制数据块中的偏移,单位:字节
  55457. DWORD dwLength; // 图片大小,单位:字节
  55458. BYTE byReserved[256]; // 保留字节
  55459. }NET_FOLLOW_CAR_ALARM_IMAGE_INFO;
  55460. ///@brief 事件类型 EVENT_IVS_FOLLOW_CAR_ALARM 跟车报警事件 对应的数据块描述信息
  55461. typedef struct tagDEV_EVENT_FOLLOW_CAR_ALARM_INFO
  55462. {
  55463. int nChannelID; // 通道号
  55464. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  55465. NET_TIME_EX UTC; // 事件发生的时间
  55466. int nImageInfoNum; // 跟车图片信息个数
  55467. NET_FOLLOW_CAR_ALARM_IMAGE_INFO stuImageInfo[8]; // 跟车图片信息
  55468. NET_FOLLOW_CAR_ALARM_CUSTOM_INFO stuCustomInfo; // 自定义信息
  55469. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  55470. BYTE byReserved[1024]; // 保留字节
  55471. }DEV_EVENT_FOLLOW_CAR_ALARM_INFO;
  55472. ///@brief CLIENT_SetSDKLocalCfg/CLIENT_GetSDKLocalCfg 接口配置本地参数类型
  55473. typedef enum tagNET_EM_SDK_INIT_CFG_TYPE
  55474. {
  55475. NET_SDK_LOCAL_CFG_TYPE_OPENSSL, // openssl库信息配置,对应结构体 NET_CONFIG_OPENSSL_INFO
  55476. NET_SDK_LOCAL_CFG_TYPE_STREAMCONVERTOR, // StreamConvertor转码库信息配置,对应结构体 NET_CONFIG_STREAMCONVERTOR_INFO
  55477. NET_SDK_LOCAL_CFG_TYPE_AVNETSDK, // avnetsdk库信息配置,对应结构体 NET_CONFIG_AVNETSDK_INFO
  55478. }NET_EM_SDK_LOCAL_CFG_TYPE;
  55479. ///@brief openssl库信息配置
  55480. typedef struct tagNET_CONFIG_OPENSSL_INFO
  55481. {
  55482. char szSsleay[MAX_PATH]; //openssl协议库
  55483. //windows下 为ssleay32.dll库全路径,当路径为空时默认从当前NetSDK.dll路径下查找加载
  55484. //linux下 为libssl.so 库全路径,当路径为空时默认从系统路径下查找加载
  55485. char szLibeay[MAX_PATH]; //openssl加密库
  55486. //windows下 为libeay32.dll库全路径,当路径为空时默认从当前NetSDK.dll路径下查找加载
  55487. //linux下 为libcrypto.so库全路径,当路径为空时默认从系统路径下查找加载
  55488. BYTE bReserved[504]; //保留字节
  55489. }NET_CONFIG_OPENSSL_INFO;
  55490. ///@brief StreamConvertor转码库信息配置
  55491. typedef struct tagNET_CONFIG_STREAMCONVERTOR_INFO
  55492. {
  55493. char szStreamConvertor[MAX_PATH]; //StreamConvertor转码库
  55494. //Windows: 为StreamConvertor.dll 库全路径,当路径为空时默认从当前dhnetsdk.dll路径下查找加载
  55495. //Linux: 为libStreamConvertor.so 库全路径,当路径为空时默认从当前libdhnetsdk.so路径下查找加载
  55496. //Mac OS: 为libStreamConvertor.so/libStreamConvertor.dylib 库全路径,当路径为空时默认从当前libdhnetsdk.so路径下查找加载
  55497. // Mac OS中先默认转码库是libStreamConvertor.so,尝试加载失败时候,则认为转码库是libStreamConvertor.dylib
  55498. BYTE bReserved[764]; //保留字节
  55499. }NET_CONFIG_STREAMCONVERTOR_INFO ;
  55500. ///@brief avnetsdk库信息配置
  55501. typedef struct tagNET_CONFIG_AVNETSDK_INFO
  55502. {
  55503. char szAvnetsdk[MAX_PATH]; //avnetsdk库
  55504. //Windows: 为avnetsdk.dll 库全路径,当路径为空时默认从当前dhnetsdk.dll路径下查找加载
  55505. //Linux: 为avnetsdk.so 库全路径,当路径为空时默认从当前libdhnetsdk.so路径下查找加载
  55506. //Mac OS: 为avnetsdk.so 库全路径,当路径为空时默认从当前libdhnetsdk.so路径下查找加载
  55507. BYTE bReserved[764]; //保留字节
  55508. }NET_CONFIG_AVNETSDK_INFO;
  55509. ///@brief 初始化参数
  55510. typedef struct tagNETSDK_INIT_PARAM
  55511. {
  55512. int nThreadNum; // 指定NetSDK常规网络处理线程数, 当值为0时, 使用内部默认值
  55513. BYTE bReserved[1024]; // 保留字节
  55514. }NETSDK_INIT_PARAM, *LPNETSDK_INIT_PARAM;
  55515. ///@brief 配置接口返回信息
  55516. typedef struct tagNET_CONFIG_RETURN_INFO
  55517. {
  55518. DWORD dwSize;
  55519. int nRetCnt; // 返回的实际有效的配置个数
  55520. } NET_CONFIG_RETURN_INFO;
  55521. ///@brief 叠加类型
  55522. typedef enum tagNET_EM_OSD_BLEND_TYPE
  55523. {
  55524. NET_EM_OSD_BLEND_TYPE_UNKNOWN, //未知叠加类型
  55525. NET_EM_OSD_BLEND_TYPE_MAIN, //叠加到主码流
  55526. NET_EM_OSD_BLEND_TYPE_EXTRA1, //叠加到辅码流1
  55527. NET_EM_OSD_BLEND_TYPE_EXTRA2, //叠加到辅码流2
  55528. NET_EM_OSD_BLEND_TYPE_EXTRA3, //叠加到辅码流3
  55529. NET_EM_OSD_BLEND_TYPE_SNAPSHOT, //叠加到抓图
  55530. NET_EM_OSD_BLEND_TYPE_PREVIEW, //叠加到预览视频
  55531. }NET_EM_OSD_BLEND_TYPE;
  55532. ///@brief 标题文本对齐方式
  55533. typedef enum tagEM_TITLE_TEXT_ALIGNTYPE
  55534. {
  55535. EM_TEXT_ALIGNTYPE_INVALID, // 无效的对齐方式
  55536. EM_TEXT_ALIGNTYPE_LEFT, // 左对齐
  55537. EM_TEXT_ALIGNTYPE_XCENTER, // X坐标中对齐
  55538. EM_TEXT_ALIGNTYPE_YCENTER, // Y坐标中对齐
  55539. EM_TEXT_ALIGNTYPE_CENTER, // 居中
  55540. EM_TEXT_ALIGNTYPE_RIGHT, // 右对齐
  55541. EM_TEXT_ALIGNTYPE_TOP, // 按照顶部对齐
  55542. EM_TEXT_ALIGNTYPE_BOTTOM, // 按照底部对齐
  55543. EM_TEXT_ALIGNTYPE_LEFTTOP, // 按照左上角对齐
  55544. EM_TEXT_ALIGNTYPE_CHANGELINE, // 换行对齐
  55545. }EM_TITLE_TEXT_ALIGNTYPE;
  55546. ///@brief 编码物件-通道标题
  55547. typedef struct tagNET_OSD_CHANNEL_TITLE
  55548. {
  55549. DWORD dwSize;
  55550. NET_EM_OSD_BLEND_TYPE emOsdBlendType; // 叠加类型,不管是获取还是设置都要设置该字段
  55551. BOOL bEncodeBlend; // 是否叠加
  55552. NET_COLOR_RGBA stuFrontColor; // 前景色
  55553. NET_COLOR_RGBA stuBackColor; // 背景色
  55554. NET_RECT stuRect; // 区域, 坐标取值[0~8191], 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  55555. EM_TITLE_TEXT_ALIGNTYPE emTextAlign; // 文本对齐方式
  55556. } NET_OSD_CHANNEL_TITLE;
  55557. ///@brief 编码物件-时间标题
  55558. typedef struct tagNET_OSD_TIME_TITLE
  55559. {
  55560. DWORD dwSize;
  55561. NET_EM_OSD_BLEND_TYPE emOsdBlendType; // 叠加类型,不管是获取还是设置都要设置该字段
  55562. BOOL bEncodeBlend; // 是否叠加
  55563. NET_COLOR_RGBA stuFrontColor; // 前景色
  55564. NET_COLOR_RGBA stuBackColor; // 背景色
  55565. NET_RECT stuRect; // 区域, 坐标取值[0~8191], 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  55566. BOOL bShowWeek; // 是否显示星期
  55567. } NET_OSD_TIME_TITLE;
  55568. ///@brief 叠加标题用途
  55569. typedef enum tagNET_EM_TITLE_TYPE
  55570. {
  55571. NET_EM_TITLE_UNKNOWN, // 未知
  55572. NET_EM_TITLE_RTINFO, // 实时刻录信息
  55573. NET_EM_TITLE_CUSTOM, // 自定义叠加、温湿度叠加
  55574. NET_EM_TITLE_TITLE, // 片头信息
  55575. NET_EM_TITLE_CHECK, // 校验码
  55576. NET_EM_TITLE_SPEEDOMETER, // 测速仪
  55577. NET_EM_TITLE_GEOGRAPHY, // 地理信息
  55578. NET_EM_TITLE_ATMCARDINFP, // ATM卡号信息
  55579. NET_EM_TITLE_CAMERAID, // 摄像机编号
  55580. }NET_EM_TITLE_TYPE;
  55581. ///@brief 编码物件-自定义标题信息
  55582. typedef struct tagNET_CUSTOM_TITLE_INFO
  55583. {
  55584. BOOL bEncodeBlend; // 是否叠加
  55585. NET_COLOR_RGBA stuFrontColor; // 前景色
  55586. NET_COLOR_RGBA stuBackColor; // 背景色
  55587. NET_RECT stuRect; // 区域, 坐标取值[0~8191], 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  55588. char szText[CUSTOM_TITLE_LEN]; // 标题内容
  55589. NET_EM_TITLE_TYPE emTitleType; // 叠加标题用途
  55590. EM_TITLE_TEXT_ALIGNTYPE emTextAlign; // 文本对齐方式
  55591. BYTE byReserved[504]; // 保留字节
  55592. } NET_CUSTOM_TITLE_INFO;
  55593. ///@brief 编码物件-自定义标题
  55594. typedef struct tagNET_OSD_CUSTOM_TITLE
  55595. {
  55596. DWORD dwSize;
  55597. NET_EM_OSD_BLEND_TYPE emOsdBlendType; // 叠加类型,不管是获取还是设置都要设置该字段
  55598. int nCustomTitleNum; // 自定义标题数量
  55599. NET_CUSTOM_TITLE_INFO stuCustomTitle[MAX_CUSTOM_TITLE_NUM]; // 自定义标题
  55600. } NET_OSD_CUSTOM_TITLE;
  55601. ///@brief 自定义标题文本对齐
  55602. typedef struct tagNET_OSD_CUSTOM_TITLE_TEXT_ALIGN
  55603. {
  55604. DWORD dwSize;
  55605. int nCustomTitleNum; // 自定义标题数量
  55606. EM_TITLE_TEXT_ALIGNTYPE emTextAlign[MAX_CUSTOM_TITLE_NUM]; // 自定义标题文本对齐方式
  55607. }NET_OSD_CUSTOM_TITLE_TEXT_ALIGN;
  55608. ///@brief OSD中的字体方案
  55609. typedef enum tagEM_OSD_FONT_SOLUTION
  55610. {
  55611. EM_OSD_FONT_SOLUTION_UNKNOWN, // 未知
  55612. EM_OSD_FONT_SOLUTION_DFAULT, // 默认字体 "default-font"
  55613. EM_OSD_FONT_SOLUTION_SIMKAI, // 楷体 "simkai"
  55614. EM_OSD_FONT_SOLUTION_SIMSUN, // 宋体"simsun"
  55615. }EM_OSD_FONT_SOLUTION;
  55616. ///@brief 编码物件-公共配置信息
  55617. typedef struct tagNET_OSD_COMM_INFO
  55618. {
  55619. DWORD dwSize;
  55620. double fFontSizeScale; //叠加字体大小放大比例
  55621. //当fFontSizeScale≠0时,nFontSize不起作用
  55622. //当fFontSizeScale=0时,nFontSize起作用
  55623. //设备默认fFontSizeScale=1.0
  55624. //如果需要修改倍数,修改该值
  55625. //如果需要按照像素设置,则置该值为0,nFontSize的值生效
  55626. int nFontSize; //叠加到主码流上的全局字体大小,单位 px, 默认24.
  55627. //和fFontSizeScale共同作用
  55628. int nFontSizeExtra1; //叠加到辅码流1上的全局字体大小,单位 px
  55629. int nFontSizeExtra2; //叠加到辅码流2上的全局字体大小,单位 px
  55630. int nFontSizeExtra3; //叠加到辅码流3上的全局字体大小,单位 px
  55631. int nFontSizeSnapshot; //叠加到抓图流上的全局字体大小, 单位 px
  55632. int nFontSizeMergeSnapshot; //叠加到抓图流上合成图片的字体大小,单位 px
  55633. EM_OSD_FONT_SOLUTION emFontSolution; // 叠加到主码流上的字体方案
  55634. EM_OSD_FONT_SOLUTION emFontSolutionExtra1; // 叠加到辅码流1上的字体方案
  55635. EM_OSD_FONT_SOLUTION emFontSolutionExtra2; // 叠加到辅码流2上的字体方案
  55636. EM_OSD_FONT_SOLUTION emFontSolutionExtra3; // 叠加到辅码流3上的字体方案
  55637. EM_OSD_FONT_SOLUTION emFontSolutionSnapshot; // 叠加到抓图码流上的字体方案
  55638. EM_OSD_FONT_SOLUTION emFontSolutionMergeSnapshot; // 叠加到合成抓图流上的字体方案
  55639. } NET_OSD_COMM_INFO;
  55640. ///@brief 编码物件-变倍叠加配置
  55641. typedef struct tagNET_OSD_PTZZOOM_INFO
  55642. {
  55643. DWORD dwSize;
  55644. BOOL bMainBlend; // 是否叠加到主码流
  55645. BOOL bPreviewBlend; // 是否叠加到预览码流
  55646. NET_COLOR_RGBA stuFrontColor; // 前景色
  55647. NET_COLOR_RGBA stuBackColor; // 背景色
  55648. NET_RECT stuRect; // 区域, 坐标取值0~8191, 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  55649. int nDisplayTime; // 显示时间,单位为妙,0表示一直显示
  55650. } NET_OSD_PTZZOOM_INFO;
  55651. ///@brief 编码物件-GPS标题显示配置
  55652. typedef struct tagNET_OSD_GPS_TITLE
  55653. {
  55654. DWORD dwSize;
  55655. BOOL bEncodeBlend; //叠加到主码流视频编码
  55656. }NET_OSD_GPS_TITLE;
  55657. #define MAX_COUNT_PLANE 32 // 最大人数统计计划个数
  55658. ///@brief 每个计划对应的人数统计计划OSD配置
  55659. typedef struct tagNET_STATPLAN_INFO
  55660. {
  55661. int nPlanID; // 人数统计计划号
  55662. BOOL bEncodeBlend; // 是否叠加到主码流
  55663. NET_COLOR_RGBA stuFrontColor; // 前景色
  55664. NET_COLOR_RGBA stuBackColor; // 背景色
  55665. EM_TITLE_TEXT_ALIGNTYPE emTextAlign; // 对齐方式
  55666. NET_RECT stuRect; // 区域, 坐标取值0~8191
  55667. BOOL bShowEnterNum; // 是否显示进入人数
  55668. BOOL bShowExitNum; // 是否显示离开人数
  55669. BYTE byReserved[128]; // 保留字节
  55670. } NET_STATPLAN_INFO;
  55671. ///@brief 人数统计计划叠加OSD配置
  55672. typedef struct tagNET_OSD_NUMBER_STATPLAN
  55673. {
  55674. DWORD dwSize;
  55675. int nRetPlanCount; // 实际的统计计划个数
  55676. NET_STATPLAN_INFO stuStatplanInfo[MAX_COUNT_PLANE]; // OSD配置
  55677. } NET_OSD_NUMBER_STATPLAN;
  55678. ///@brief 音频编码模式
  55679. typedef enum tatNET_EM_AUDIO_FORAMT
  55680. {
  55681. EM_AUDIO_FORMAT_UNKNOWN, // unknown
  55682. EM_AUDIO_FORMAT_G711A, // G711a
  55683. EM_AUDIO_FORMAT_PCM, // PCM
  55684. EM_AUDIO_FORMAT_G711U, // G711u
  55685. EM_AUDIO_FORMAT_AMR, // AMR
  55686. EM_AUDIO_FORMAT_AAC, // AAC
  55687. EM_AUDIO_FORMAT_G726, // G.726
  55688. EM_AUDIO_FORMAT_G729, // G.729
  55689. EM_AUDIO_FORMAT_ADPCM, // ADPCM
  55690. EM_AUDIO_FORMAT_MPEG2, // MPEG2
  55691. EM_AUDIO_FORMAT_MPEG2L2, // MPEG2-Layer2
  55692. EM_AUDIO_FORMAT_OGG, // OGG
  55693. EM_AUDIO_FORMAT_MP3, // MP3
  55694. EM_AUDIO_FORMAT_G7221, // G.722.1
  55695. } NET_EM_AUDIO_FORMAT;
  55696. ///@brief 视频压缩格式
  55697. typedef enum tagNET_EM_VIDEO_COMPRESSION
  55698. {
  55699. EM_VIDEO_FORMAT_UNKNOWN = -1, // 未知
  55700. EM_VIDEO_FORMAT_MPEG4, // MPEG4
  55701. EM_VIDEO_FORMAT_MS_MPEG4, // MS-MPEG4
  55702. EM_VIDEO_FORMAT_MPEG2, // MPEG2
  55703. EM_VIDEO_FORMAT_MPEG1, // MPEG1
  55704. EM_VIDEO_FORMAT_H263, // H.263
  55705. EM_VIDEO_FORMAT_MJPG, // MJPG
  55706. EM_VIDEO_FORMAT_FCC_MPEG4, // FCC-MPEG4
  55707. EM_VIDEO_FORMAT_H264, // H.264
  55708. EM_VIDEO_FORMAT_H265, // H.265
  55709. EM_VIDEO_FORMAT_SVAC, // SVAC
  55710. } NET_EM_VIDEO_COMPRESSION;
  55711. ///@brief 码流控制模式
  55712. typedef enum tagNET_EM_BITRATE_CONTROL
  55713. {
  55714. EM_BITRATE_CBR, // 固定码流
  55715. EM_BITRATE_VBR, // 可变码流
  55716. } NET_EM_BITRATE_CONTROL;
  55717. ///@brief 画质
  55718. typedef enum tagNET_EM_IMAGE_QUALITY
  55719. {
  55720. EM_IMAGE_QUALITY_Q10 = 1, // 图像质量10%
  55721. EM_IMAGE_QUALITY_Q30, // 图像质量30%
  55722. EM_IMAGE_QUALITY_Q50, // 图像质量50%
  55723. EM_IMAGE_QUALITY_Q60, // 图像质量60%
  55724. EM_IMAGE_QUALITY_Q80, // 图像质量80%
  55725. EM_IMAGE_QUALITY_Q100, // 图像质量100%
  55726. } NET_EM_IMAGE_QUALITY;
  55727. ///@brief H264 编码级别
  55728. typedef enum tagNET_EM_H264_PROFILE_RANK
  55729. {
  55730. EM_PROFILE_UNKNOWN, // 未知类型
  55731. EM_PROFILE_BASELINE = 1, // 提供I/P帧,仅支持progressive(逐行扫描)和CAVLC
  55732. EM_PROFILE_MAIN, // 提供I/P/B帧,支持progressiv和interlaced,提供CAVLC或CABAC
  55733. EM_PROFILE_EXTENDED, // 提供I/P/B/SP/SI帧,仅支持progressive(逐行扫描)和CAVLC
  55734. EM_PROFILE_HIGH, // 即FRExt,Main_Profile基础上新增:8x8 intra prediction(8x8 帧内预测), custom
  55735. // quant(自定义量化), lossless video coding(无损视频编码), 更多的yuv格式
  55736. }NET_EM_H264_PROFILE_RANK;
  55737. ///@brief 码流类型
  55738. typedef enum tagNET_EM_FORMAT_TYPE
  55739. {
  55740. EM_FORMAT_TYPE_UNKNOWN, // 未知类型
  55741. /*主码流*/
  55742. EM_FORMAT_MAIN_NORMAL, // 主码流普通编码
  55743. EM_FORMAT_MAIN_MOVEEXAMINE, // 主码流动检编码
  55744. EM_FORMAT_MAIN_ALARM, // 主码流报警编码
  55745. /*辅码流*/
  55746. EM_FORMAT_EXTRA1, // 辅码流1
  55747. EM_FORMAT_EXTRA2, // 辅码流2
  55748. EM_FORMAT_EXTRA3, // 辅码流3
  55749. } NET_EM_FORMAT_TYPE;
  55750. ///@brief 打包模式
  55751. typedef enum tagNET_EM_PACK_TYPE
  55752. {
  55753. EM_PACK_UNKOWN, // UNKOWN
  55754. EM_PACK_DHAV, // DHAV
  55755. EM_PACK_PS, // ps
  55756. } NET_EM_PACK_TYPE;
  55757. ///@brief 主(辅)码流视频格式(f6/f5/bin)
  55758. typedef struct tagNET_ENCODE_VIDEO_INFO
  55759. {
  55760. DWORD dwSize;
  55761. NET_EM_FORMAT_TYPE emFormatType; // 码流类型,设置和获取时都需要设置值
  55762. BOOL bVideoEnable; // 视频使能
  55763. NET_EM_VIDEO_COMPRESSION emCompression; // 视频压缩格式
  55764. int nWidth; // 视频宽度
  55765. int nHeight; // 视频高度
  55766. NET_EM_BITRATE_CONTROL emBitRateControl; // 码流控制模式
  55767. int nBitRate; // 视频码流(kbps)
  55768. float nFrameRate; // 视频帧率
  55769. int nIFrameInterval; // I帧间隔(1-100),比如50表示每49个B帧或P帧,设置一个I帧。
  55770. NET_EM_IMAGE_QUALITY emImageQuality; // 图像质量
  55771. } NET_ENCODE_VIDEO_INFO;
  55772. ///@brief 主(辅)码流视频格式打包模式配置(f6/f5)
  55773. typedef struct tagNET_ENCODE_VIDEO_PACK_INFO
  55774. {
  55775. DWORD dwSize;
  55776. NET_EM_FORMAT_TYPE emFormatType; // 码流类型,设置和获取时都需要设置值
  55777. NET_EM_PACK_TYPE emPackType; // 打包模式
  55778. } NET_ENCODE_VIDEO_PACK_INFO;
  55779. ///@brief 主(辅)码流视频格式SVC配置(f6)
  55780. typedef struct tagNET_ENCODE_VIDEO_SVC_INFO
  55781. {
  55782. DWORD dwSize;
  55783. NET_EM_FORMAT_TYPE emFormatType; // 码流类型,设置和获取时都需要设置值
  55784. int nSVC; // SVC-T层数
  55785. } NET_ENCODE_VIDEO_SVC_INFO;
  55786. ///@brief 主(辅)码流视频格式profile配置(f6/bin)编码
  55787. typedef struct tagNET_ENCODE_VIDEO_PROFILE_INFO
  55788. {
  55789. DWORD dwSize;
  55790. NET_EM_FORMAT_TYPE emFormatType; // 码流类型,设置和获取时都需要设置值
  55791. NET_EM_H264_PROFILE_RANK emProfile; // H.264编码级别
  55792. } NET_ENCODE_VIDEO_PROFILE_INFO;
  55793. ///@brief 主(辅)码流音频压缩格式配置
  55794. typedef struct tagNET_ENCODE_AUDIO_COMPRESSION_INFO
  55795. {
  55796. DWORD dwSize;
  55797. BOOL bAudioEnable; // 音频使能
  55798. NET_EM_FORMAT_TYPE emFormatType; // 码流类型,设置和获取时都需要设置值
  55799. NET_EM_AUDIO_FORMAT emCompression; // 音频压缩模式
  55800. } NET_ENCODE_AUDIO_COMPRESSION_INFO;
  55801. ///@brief 主(辅)码流音频格式其他属性配置
  55802. typedef struct tagNET_ENCODE_AUDIO_INFO
  55803. {
  55804. DWORD dwSize;
  55805. NET_EM_FORMAT_TYPE emFormatType; // 码流类型,设置和获取时都需要设置值
  55806. int nDepth; // 音频采样深度
  55807. int nFrequency; // 音频采样频率
  55808. int nMode; // 编码码率,不同编码类型定义不同:
  55809. // "AMR"编码码率
  55810. // 0: 4.75kbps,
  55811. // 1: 5.15 kbps,
  55812. // 2: 5.9 kbps,
  55813. // 3: 6.7 kbps,
  55814. // 4: 7.4 kbps,
  55815. // 5: 7.95 kbps,
  55816. // 6: 10.2 kbps,
  55817. // 7: 12.2 kbps,
  55818. // G726编码码率
  55819. // 0: 40kbps(默认)
  55820. // 1: 16kbps
  55821. // 2: 24kbps
  55822. // 3: 32kbps
  55823. // 其他: 暂无定义
  55824. int nFrameType; // 音频打包模式, 0-DHAV, 1-PS
  55825. int nPacketPeriod; // 音频打包周期, ms
  55826. } NET_ENCODE_AUDIO_INFO;
  55827. ///@brief 抓图类型
  55828. typedef enum tagNET_EM_SNAP_TYPE
  55829. {
  55830. EM_SNAP_UNKNOWN, // 未知类型
  55831. EM_SNAP_NORMAL, // 普通抓图
  55832. EM_SNAP_MOVEEXAMINE, // 动检抓图
  55833. EM_SNAP_ALARM, // 报警抓图
  55834. } NET_EM_SNAP_TYPE;
  55835. ///@brief 抓图配置
  55836. typedef struct tagNET_ENCODE_SNAP_INFO
  55837. {
  55838. DWORD dwSize;
  55839. NET_EM_SNAP_TYPE emSnapType; // 抓图类型
  55840. BOOL bSnapEnable; // 定时抓图使能
  55841. NET_EM_VIDEO_COMPRESSION emCompression; // 视频压缩格式
  55842. int nWidth; // 视频宽度
  55843. int nHeight; // 视频高度
  55844. float nFrameRate; // 视频帧率
  55845. int nQualityRange; // 图像质量取值范围
  55846. NET_EM_IMAGE_QUALITY emImageQuality; // 图像质量
  55847. } NET_ENCODE_SNAP_INFO;
  55848. ///@brief 抓图时间配置
  55849. typedef struct tagNET_ENCODE_SNAP_TIME_INFO
  55850. {
  55851. DWORD dwSize;
  55852. short shPicTimeInterval; // 定时抓图时间间隔,单位为秒,目前设备支持最大的抓图时间间隔为30分钟
  55853. BYTE bPicIntervalHour; // 定时抓图时间间隔小时数
  55854. DWORD dwTrigPicIntervalSecond; // 报警触发后每次抓图时间间隔时间 单位秒
  55855. } NET_ENCODE_SNAP_TIME_INFO;
  55856. ///@brief 每个通道对应的配置类型
  55857. typedef enum tagNET_EM_CONFIG_TYPE
  55858. {
  55859. NET_EM_CONFIG_DAYTIME, // 白天
  55860. NET_EM_CONFIG_NIGHT, // 夜晚
  55861. NET_EM_CONFIG_NORMAL, // 普通
  55862. NET_EM_CONFIG_ADAPTER, // 自适应模式,SDK根据设备当前的模式进行自适应设置和获取
  55863. // 自适应模式目前暂时只支持NET_VIDEOIN_IMAGE_INFO配置
  55864. } NET_EM_CONFIG_TYPE;
  55865. ///@brief 通道名称配置
  55866. typedef struct tagNET_ENCODE_CHANNELTITLE_INFO
  55867. {
  55868. DWORD dwSize;
  55869. char szChannelName[MAX_CHANNEL_NAME_LEN]; // 通道名称
  55870. } NET_ENCODE_CHANNELTITLE_INFO;
  55871. ///@brief 延时模式
  55872. typedef enum tagEM_DELAY_MODE
  55873. {
  55874. EM_DELAY_MODE_UNKNOWN = -1, // 未知
  55875. EM_DELAY_MODE_LOW_DELAY, // 低延时
  55876. EM_DELAY_MODE_HIGH_DELAY, // 高延时
  55877. }EM_DELAY_MODE;
  55878. ///@brief 通道编码延时配置
  55879. typedef struct tagNET_ENCODE_DELAY_MODE_INFO
  55880. {
  55881. DWORD dwSize; // 结构体大小
  55882. EM_DELAY_MODE emDelayMode; // 延时模式
  55883. }NET_ENCODE_DELAY_MODE_INFO;
  55884. ///@brief 通道模式
  55885. typedef enum tagEM_SIGNAL_FORMAT
  55886. {
  55887. EM_SIGNAL_FORMAT_UNKNOWN, // 未知
  55888. EM_SIGNAL_FORMAT_HDMI, // "HDMI"
  55889. EM_SIGNAL_FORMAT_VGA, // "VGA"
  55890. }EM_SIGNAL_FORMAT;
  55891. ///@brief 通道编码信号模式配置
  55892. typedef struct tagNET_ENCODE_SIGNAL_FORMAT_INFO
  55893. {
  55894. DWORD dwSize; // 结构体大小
  55895. EM_SIGNAL_FORMAT emSignalFormat; // 信号模式
  55896. }NET_ENCODE_SIGNAL_FORMAT_INFO;
  55897. ///@brief 音频输入类型
  55898. typedef enum tagNET_EM_AUDIOIN_SOURCE_TYPE
  55899. {
  55900. NET_EM_AUDIOIN_SOURCE_UNKNOW, // 未知
  55901. NET_EM_AUDIOIN_SOURCE_COAXIAL, // Coaxial
  55902. NET_EM_AUDIOIN_SOURCE_BNC, // BNC
  55903. NET_EM_AUDIOIN_SOURCE_HDCVI_BNC, // HDCVI_BNC
  55904. NET_EM_AUDIOIN_SOURCE_LINEIN, // LineIn
  55905. NET_EM_AUDIOIN_SOURCE_LINEIN1, // LineIn1
  55906. NET_EM_AUDIOIN_SOURCE_LINEIN2, // LineIn2
  55907. NET_EM_AUDIOIN_SOURCE_LINEIN3, // LineIn3
  55908. NET_EM_AUDIOIN_SOURCE_MIC, // Mic
  55909. NET_EM_AUDIOIN_SOURCE_MIC1, // Mic1
  55910. NET_EM_AUDIOIN_SOURCE_MIC2, // Mic2
  55911. NET_EM_AUDIOIN_SOURCE_MIC3, // Mic3
  55912. NET_EM_AUDIOIN_SOURCE_MICOUT, // MicOut
  55913. NET_EM_AUDIOIN_SOURCE_REMOTE, // Remote
  55914. NET_EM_AUDIOIN_SOURCE_REMOTE1, // Remote1
  55915. NET_EM_AUDIOIN_SOURCE_REMOTE2, // Remote2
  55916. NET_EM_AUDIOIN_SOURCE_REMOTE3, // Remote3
  55917. } NET_EM_AUDIOIN_SOURCE_TYPE;
  55918. ///@brief 音频输入类型配置
  55919. typedef struct tagNET_ENCODE_AUDIO_SOURCE_INFO
  55920. {
  55921. DWORD dwSize;
  55922. int nMaxAudioInSource; // 输入类型最大个数
  55923. int nRetAudioInSource; // 输入类型实际返回个数
  55924. NET_EM_AUDIOIN_SOURCE_TYPE emAudioInSource[24]; // 输入源类型
  55925. } NET_ENCODE_AUDIO_SOURCE_INFO;
  55926. ///@brief 音频输入降噪配置
  55927. typedef struct tagNET_AUDIOIN_DENOISE_INFO
  55928. {
  55929. DWORD dwSize;
  55930. BOOL bEnable; // 降噪使能
  55931. } NET_AUDIOIN_DENOISE_INFO;
  55932. ///@brief 音频输入音量配置
  55933. typedef struct tagNET_AUDIOIN_VOLUME_INFO
  55934. {
  55935. DWORD dwSize;
  55936. int nVolume; // 音频输入音量
  55937. } NET_AUDIOIN_VOLUME_INFO;
  55938. ///@brief 音频输出音量配置
  55939. typedef struct tagNET_AUDIOOUT_VOLUME_INFO
  55940. {
  55941. DWORD dwSize;
  55942. int nVolume; // 音频输出音量
  55943. } NET_AUDIOOUT_VOLUME_INFO;
  55944. ///@brief 音频输出模式
  55945. typedef enum tagEM_AUDIOOUT_MODE
  55946. {
  55947. EM_AUDIOOUT_MODE_UNKNOWN, // 未知
  55948. EM_AUDIOOUT_MODE_SUBCARD, // 子卡音频输出
  55949. EM_AUDIOOUT_MODE_MAINCARD, // 主控音频输出
  55950. EM_AUDIOOUT_MODE_ALL, // 同时输出
  55951. } EM_AUDIOOUT_MODE;
  55952. ///@brief 音频输出模式配置
  55953. typedef struct tagNET_AUDIOOUT_MODE_INFO
  55954. {
  55955. DWORD dwSize;
  55956. EM_AUDIOOUT_MODE emAudioOutMode; // 音频输出模式
  55957. } NET_AUDIOOUT_MODE_INFO;
  55958. ///@brief 切换模式
  55959. typedef enum tagNET_EM_SWITCH_MODE
  55960. {
  55961. NET_EM_SWITCH_MODE_WIGHT, // 不切换,总是使用白天配置
  55962. NET_EM_SWITCH_MODE_LIGHT, // 根据亮度切换
  55963. NET_EM_SWITCH_MODE_TIME, // 根据时间切换
  55964. NET_EM_SWITCH_MODE_NIGHT, // 不切换,总是使用夜晚配置
  55965. NET_EM_SWITCH_MODE_NORMAL, // 使用普通配置
  55966. NET_EM_SWITCH_MODE_ICR, // 按ICR(双滤光片切换器)的状态切换日夜
  55967. } NET_EM_SWITCH_MODE;
  55968. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_MODE_ICR_CAPS 入参
  55969. typedef struct tagNET_IN_VIDEOIN_MODE_CAPS
  55970. {
  55971. DWORD dwSize; // 结构体大小
  55972. int nChannel; // 通道号
  55973. }NET_IN_VIDEOIN_MODE_CAPS;
  55974. ///@brief CLIENT_GetDevCaps 接口 NET_VIDEOIN_MODE_ICR_CAPS 命令出参
  55975. typedef struct tagNET_OUT_VIDEOIN_MODE_CAPS
  55976. {
  55977. DWORD dwSize;
  55978. BOOL bSwitchByDayNight; // 是否支持ICR方式切换日夜模式。即VideoInMode配置的Mode是否支持2 默认false,不支持
  55979. }NET_OUT_VIDEOIN_MODE_CAPS;
  55980. ///@brief 大致日出/日落时间
  55981. typedef struct tagNET_SUN_TIME
  55982. {
  55983. int nHour; // 时
  55984. int nMinute; // 分
  55985. int nSecond; // 秒
  55986. } NET_SUN_TIME;
  55987. ///@brief 切换模式配置
  55988. typedef struct tagNET_VIDEOIN_SWITCH_MODE_INFO
  55989. {
  55990. DWORD dwSize;
  55991. NET_EM_SWITCH_MODE emSwitchMode; // 切换模式
  55992. /*大致日出和日落时间,日落之后日出之前,将采用夜晚特殊的配置,emSwitchMode为NET_EM_SWITCH_MODE_TIME是有效*/
  55993. NET_SUN_TIME stuSunRiseTime; // 大致日出时间
  55994. NET_SUN_TIME stuSunSetTime; // 大致日落时间
  55995. } NET_VIDEOIN_SWITCH_MODE_INFO;
  55996. ///@brief 色彩风格
  55997. typedef enum tagEM_COLOR_STYLE_TYPE
  55998. {
  55999. EM_COLOR_STYLE_UNKNOWN, // 未知
  56000. EM_COLOR_STYLE_GENTLE, // 柔和
  56001. EM_COLOR_STYLE_STANDARD, // 标准
  56002. EM_COLOR_STYLE_FLAMBOYANT, // 艳丽
  56003. } EM_COLOR_STYLE_TYPE;
  56004. ///@brief 视频输入颜色配置
  56005. typedef struct tagNET_VIDEOIN_COLOR_INFO
  56006. {
  56007. DWORD dwSize;
  56008. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56009. int nBrightness; // 亮度0-100
  56010. int nContrast; // 对比度0-100
  56011. int nSaturation; // 饱和度0-100
  56012. int nGamma; // 伽马值0-100
  56013. EM_COLOR_STYLE_TYPE emColorStyle; // 色彩风格
  56014. int nHue; // 色调值0-100
  56015. int nChromaSuppress; // 色彩抑制等级值0-100
  56016. DH_TSECT stuTimeSection; // 对应的时间段
  56017. } NET_VIDEOIN_COLOR_INFO;
  56018. ///@brief LED屏显示颜色
  56019. typedef enum tagNET_EM_FLIP_MODE
  56020. {
  56021. NET_EM_FLIP_MODE_UNKNOWN = 0, // 未知
  56022. NET_EM_FLIP_MODE_MANUAL, // 手动
  56023. NET_EM_FLIP_MODE_AUTO, // 自动
  56024. }NET_EM_FLIP_MODE;
  56025. ///@brief 图像旋转设置能力配置,对应枚举NET_EM_CFG_VIDEO_IMAGE_CTRL
  56026. typedef struct tagNET_EM_CFG_VIDEO_IMAGE_CTRL_INFO
  56027. {
  56028. DWORD dwSize;
  56029. BOOL bMirror; // 是否支持画面镜像功能
  56030. BOOL bFlip; // 是否支持画面180翻转功能
  56031. BOOL bFreeze; // 是否支持图像冻结功能
  56032. BOOL bVerticalFlip; // 是否开启垂直旋转180度功能
  56033. BOOL bHorizontalFlip; // 是否开启水平旋转180度功能
  56034. int nRotate90; // 90顺逆时针旋转标志 0-不旋转,1-顺时针90°,2-逆时针90°
  56035. int nStable; // 支持图像防抖的功能掩码 0关闭,支持按位或 1-开启电子防抖,2-开启光学防抖,4-开启控件防抖
  56036. int nStableSensitivity; // 是否支持电子防抖灵敏度, 取值范围[0-100]
  56037. NET_EM_FLIP_MODE emFlipMode; // 画面翻转模式
  56038. }NET_EM_CFG_VIDEO_IMAGE_CTRL_INFO;
  56039. ///@brief 图像属性配置
  56040. typedef struct tagNET_VIDEOIN_IMAGE_INFO
  56041. {
  56042. DWORD dwSize;
  56043. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要制定
  56044. BOOL bMirror; // 是否开启画面镜像功能
  56045. BOOL bFlip; // 是否开启画面翻转功能
  56046. int nRotate90; // 0-不旋转,1-顺时针90°,2-逆时针90°
  56047. } NET_VIDEOIN_IMAGE_INFO;
  56048. ///@brief 图像防抖模式
  56049. typedef enum tagNET_EM_STABLE_TYPE
  56050. {
  56051. NET_EM_STABLE_OFF, // 关闭
  56052. NET_EM_STABLE_ELEC, // 电子防抖
  56053. NET_EM_STABLE_LIGHT, // 光学防抖
  56054. NET_EM_STABLE_CONTORL = 4, // 控件防抖
  56055. } NET_EM_STABLE_TYPE;
  56056. ///@brief 图像防抖配置
  56057. typedef struct tagNET_VIDEOIN_STABLE_INFO
  56058. {
  56059. DWORD dwSize;
  56060. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56061. NET_EM_STABLE_TYPE emStableType; // 防抖配置
  56062. } NET_VIDEOIN_STABLE_INFO;
  56063. ///@brief 自动光圈配置
  56064. typedef struct tagNET_VIDEOIN_IRISAUTO_INFO
  56065. {
  56066. DWORD dwSize;
  56067. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56068. BOOL bIrisAuto; //是否使能自动光圈
  56069. } NET_VIDEOIN_IRISAUTO_INFO;
  56070. ///@brief 图像增强配置
  56071. typedef struct tagNET_VIDEOIN_IMAGEENHANCEMENT_INFO
  56072. {
  56073. DWORD dwSize;
  56074. BOOL bEnable; // 使能
  56075. int nLevel; // 图像增强等级
  56076. }NET_VIDEOIN_IMAGEENHANCEMENT_INFO;
  56077. ///@brief 双快门的支持类型
  56078. typedef enum tagEM_DOUBLE_EXPOSURE_TYPE
  56079. {
  56080. EM_DOUBLE_EXPOSURE_UNKNOWN = -1, // 未知
  56081. EM_DOUBLE_EXPOSURE_NOT_SUPPORT, // 不支持
  56082. EM_DOUBLE_EXPOSURE_SUPPORT_FULL_FRAM, // 支持双快门全帧率,即图像和视频只有快门参数不同
  56083. EM_DOUBLE_EXPOSURE_SUPPORT_HALF_FRAM, // 支持双快门半帧率,即图像和视频快门及白平衡参数均不同
  56084. EM_DOUBLE_EXPOSURE_ALL, // 支持双快门全帧率和半帧率
  56085. } EM_DOUBLE_EXPOSURE_TYPE;
  56086. ///@brief 通用曝光属性配置
  56087. typedef struct tagNET_VIDEOIN_EXPOSURE_NORMAL_INFO
  56088. {
  56089. DWORD dwSize;
  56090. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56091. NET_EM_EXPOSURE_MODE emExposureMode; // 曝光模式
  56092. int nAntiFlicker; // 防闪烁0-Outdoor 1-50Hz防闪烁 2-60Hz防闪烁
  56093. int nCompensation; // 曝光补偿0-100
  56094. int nGain; // 增益值
  56095. int nGainMin; // 增益下限0-100
  56096. int nGainMax; // 增益上限0-100
  56097. int nExposureIris; // 光圈值,模式为光圈优先时有效,0-100
  56098. double dbExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  56099. double dbExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms,且必须不小于"ExposureValue1"取值
  56100. BOOL bIrisAuto; // 自动光圈使能
  56101. EM_DOUBLE_EXPOSURE_TYPE emDoubleExposure; // 双快门的支持类型
  56102. } NET_VIDEOIN_EXPOSURE_NORMAL_INFO;
  56103. ///@brief 其他曝光属性配置
  56104. typedef struct tagNET_VIDEOIN_EXPOSURE_OTHER_INFO
  56105. {
  56106. DWORD dwSize;
  56107. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56108. BOOL bSlowShutter; // 慢快门使能
  56109. int nSlowSpeed; // 慢曝光速度等级
  56110. int nSlowAutoExposure; // 慢曝光
  56111. int nRecoveryTime; // 0-表示不恢复,其他表示恢复的时间,单位为秒
  56112. int nIrisMin; // 光圈区间下限,SupportIrisRange能力为true时可设置,0~100 (光圈优先下设置,与Iris互斥)
  56113. int nIrisMax; // 光圈区间下限,0~100,取值不小于"IrisMin"的取值(光圈优先下设置,与Iris互斥)
  56114. } NET_VIDEOIN_EXPOSURE_OTHER_INFO;
  56115. ///@brief 曝光快门属性配置
  56116. typedef struct tagNET_VIDEOIN_EXPOSURE_SHUTTER_INFO
  56117. {
  56118. DWORD dwSize;
  56119. BOOL bAutoSyncPhase; // 自动相位调节使能
  56120. float fShutter; // 快门值,AutoSyncPhase为true时有效,毫秒为单位,取值0.1ms~80ms,
  56121. // 且必须不小于NET_VIDEOIN_EXPOSURE_NORMAL_INFO中的"ExposureValue1"、不大于"ExposureValue2"
  56122. int nPhase; // 相位值,取值0~360°
  56123. } NET_VIDEOIN_EXPOSURE_SHUTTER_INFO;
  56124. ///@brief 背光配置
  56125. typedef struct tagNET_VIDEOIN_BACKLIGHT_INFO
  56126. {
  56127. DWORD dwSize;
  56128. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56129. NET_EM_BACK_MODE emBlackMode; // 背光模式
  56130. NET_EM_BLACKLIGHT_MODE emBlackLightMode; // 背光补偿模式
  56131. NET_RECT stuBacklightRegion; // 背光补偿区域
  56132. int nWideDynamicRange; // 宽动态值
  56133. int nGlareInhibition; // 强光抑制0-100,emBlackMode为NET_EM_BACKLIGHT_MODE_GLAREINHIBITION时生效
  56134. } NET_VIDEOIN_BACKLIGHT_INFO;
  56135. ///@brief 场景自适应对比度强度配置,背光模式为场景自适应时有效
  56136. typedef struct tagNET_VIDEOIN_INTENSITY_INFO
  56137. {
  56138. DWORD dwSize;
  56139. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56140. NET_EM_BACK_INTENSITY_MODE emIntensityMode; // 场景自适应对比度强度调节模式
  56141. int nIntensity; // SSA手动调整强度0-100, emIntensityMode为NET_EM_INTENSITY_MANUAL时有效
  56142. } NET_VIDEOIN_INTENSITY_INFO;
  56143. ///@brief 白平衡配置
  56144. typedef struct tagNET_VIDEOIN_WHITEBALANCE_INFO
  56145. {
  56146. DWORD dwSize;
  56147. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56148. NET_EM_WHITEBALANCE_TYPE emWhiteBalanceType; //白平衡模式
  56149. int nGainRed; // 红色增益调节0-100,白平衡为"Custom"模式下有效
  56150. int nGainBlue; // 蓝色增益调节0-100,白平衡为"Custom"模式下有效
  56151. int nGainGreen; // 绿色增益调节0-100,白平衡为"Custom"模式下有效
  56152. int nColorTemperature; // 色温等级, 白平衡为"CustomColorTemperature"模式下有效
  56153. } NET_VIDEOIN_WHITEBALANCE_INFO;
  56154. ///@brief 日夜切换模式
  56155. typedef enum tagNET_EM_DAYNIGHT_TYPE
  56156. {
  56157. NET_EM_DAYNIGHT_COLOR, // 总是彩色
  56158. NET_EM_DAYNIGHT_AUTO, // 根据亮度自动切换
  56159. NET_EM_DAYNIGHT_WHITEBLACK, // 总是黑白
  56160. } NET_EM_DAYNIGHT_TYPE;
  56161. ///@brief 日夜模式配置
  56162. typedef struct tagNET_VIDEOIN_DAYNIGHT_INFO
  56163. {
  56164. DWORD dwSize;
  56165. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56166. NET_EM_DAYNIGHT_TYPE emDayNightType; // 日夜切换模式
  56167. int nDayNightSensitivity; // 日夜模式切换灵敏度,范围1-3
  56168. int nDayNightSwitchDelay; // 日夜模式切换延迟时间,单位秒,范围2-10
  56169. } NET_VIDEOIN_DAYNIGHT_INFO;
  56170. ///@brief 日夜模式ICR切换类型配置
  56171. typedef struct tagNET_VIDEOIN_DAYNIGHT_ICR_INFO
  56172. {
  56173. DWORD dwSize;
  56174. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56175. NET_EM_ICR_TYPE emType; // ICR切换类型
  56176. } NET_VIDEOIN_DAYNIGHT_ICR_INFO;
  56177. ///@brief 灯光模式
  56178. typedef enum tagNET_EM_LIGHTING_MODE
  56179. {
  56180. NET_EM_LIGHTING_UNKNOW, // 未知模式
  56181. NET_EM_LIGHTING_MANUAL, // 手动模式
  56182. NET_EM_LIGHTING_AUTO, // 自动模式
  56183. NET_EM_LIGHTING_OFF, // 关闭模式
  56184. NET_EM_LIGHTING_ZOOMPRIO, // 倍率优先模式
  56185. NET_EM_LIGHTING_TIMING, // 定时模式,本模式时LightingSchedule配置生效
  56186. NET_EM_LIGHTING_SMARTLIGHT, // 智能灯光模式(仅球机使用),如果在模式选择本模式,使用新加的SmartLighting配置
  56187. NET_EM_LIGHTING_EXCLUSIVEMANUAL, // 支持多种灯光,但手动模式下只使用一种灯光,此时使用ManualLighting配置
  56188. NET_EM_LIGHTING_FORCEON, // 强制打开灯光(需求要保持状态)
  56189. } NET_EM_LIGHTING_MODE;
  56190. ///@brief 补光灯配置
  56191. typedef struct tagNET_VIDEOIN_LIGHTING_INFO
  56192. {
  56193. DWORD dwSize;
  56194. NET_EM_LIGHTING_MODE emLightMode; // 灯光模式
  56195. int nCorrection; // 灯光补偿值,倍率优先时有效0-4
  56196. int nSensitive; // 灯光灵敏度,倍率优先时有效,0-5,默认为3
  56197. int nNearLight; // 近光灯亮度0-100
  56198. int nFarLight; // 远光灯亮度0-100
  56199. } NET_VIDEOIN_LIGHTING_INFO;
  56200. ///@brief 透雾模式
  56201. typedef enum tagNET_EM_DEFOG_MODE
  56202. {
  56203. NET_EM_DEFOG_UNKNOW, // 未知模式
  56204. NET_EM_DEFOG_OFF, // 关闭
  56205. NET_EM_DEFOG_AUTO, // 自动
  56206. NET_EM_DEFOG_MANAUL, // 手动
  56207. }NET_EM_DEFOG_MODE;
  56208. ///@brief 大气光模式枚举
  56209. typedef enum tagNET_EM_INTENSITY_MODE
  56210. {
  56211. NET_EM_INTENSITY_MODE_UNKNOW,//未知方式
  56212. NET_EM_INTENSITY_MODE_AUTO, //自动
  56213. NET_EM_INTENSITY_MODE_MANUAL, //手动
  56214. }NET_EM_INTENSITY_MODE;
  56215. ///@brief 透雾配置
  56216. typedef struct tagNET_VIDEOIN_DEFOG_INFO
  56217. {
  56218. DWORD dwSize;
  56219. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56220. NET_EM_DEFOG_MODE emDefogMode; // 透雾模式
  56221. int nIntensity; // 强度0-100
  56222. NET_EM_INTENSITY_MODE emIntensityMode; //大气光模式
  56223. int nLightIntensityLevel; //大气光强度(0-15)
  56224. BOOL bCamDefogEnable; //光学去雾使能 (TRUE使能,FALSE去使能)
  56225. } NET_VIDEOIN_DEFOG_INFO;
  56226. ///@brief 聚焦模式配置
  56227. typedef struct tagNET_VIDEOIN_FOCUSMODE_INFO
  56228. {
  56229. DWORD dwSize;
  56230. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56231. NET_EM_FOCUS_MODE emFocusMode; // 聚焦模式
  56232. } NET_VIDEOIN_FOCUSMODE_INFO;
  56233. ///@brief 聚焦灵敏度
  56234. typedef enum tagNET_EM_SENSITIVITY_TYPE
  56235. {
  56236. NET_EM_SENSITIVITY_HIGH, // 高
  56237. NET_EM_SENSITIVITY_DEFAULT, // 默认
  56238. NET_EM_SENSITIVITY_LOW, // 低
  56239. } NET_EM_SENSITIVITY_TYPE;
  56240. ///@brief 红外光聚焦修正模式
  56241. typedef enum tagNET_EM_IRC_TYPE
  56242. {
  56243. NET_EM_IRC_DONOT, // 不修正
  56244. NET_EM_IRC_DOIT, // 修正
  56245. NET_EM_IRC_AUTO, // 自动修正
  56246. } NET_EM_IRC_TYPE;
  56247. ///@brief 聚焦信息配置
  56248. typedef struct tagNET_VIDEOIN_FOCUSVALUE_INFO
  56249. {
  56250. DWORD dwSize;
  56251. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56252. NET_EM_SENSITIVITY_TYPE emSensitivity; // 聚焦灵敏度
  56253. NET_EM_IRC_TYPE emIRCorrection; // 红外光聚焦修正
  56254. NET_EM_FOCUS_LIMITSELECT_MODE emFocusLimitSelectMode; // 聚焦极限选取模式
  56255. int nFocusLimit; // 近端聚焦极限建议值,单位毫米
  56256. BOOL bAutoFocusTrace; // 变焦跟踪使能
  56257. } NET_VIDEOIN_FOCUSVALUE_INFO;
  56258. ///@brief 锐度配置
  56259. typedef struct tagNET_VIDEOIN_SHARPNESS_INFO
  56260. {
  56261. DWORD dwSize;
  56262. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56263. NET_EM_SHARPNESS_MODE emSharpnessMode; // 锐度模式
  56264. int nSharpness; // 锐度值0-100,手动时有效
  56265. int nLevel; // 锐度抑制等级,0-100,0表示不抑制
  56266. } NET_VIDEOIN_SHARPNESS_INFO;
  56267. ///@brief 3D降噪控制类型
  56268. typedef enum tagNET_EM_3D_TYPE
  56269. {
  56270. NET_EM_3D_UNKONW, // 未知
  56271. NET_EM_3D_OFF, // 关闭
  56272. NET_EM_3D_AUTO, // 自动
  56273. } NET_EM_3D_TYPE;
  56274. ///@brief 高级降噪类型
  56275. typedef enum tagNET_EM_ALGORITHM_TYPE
  56276. {
  56277. NET_EM_ALGORITHM_UNKNOW, // 未知
  56278. NET_EM_ALGORITHM_OFF, // 关闭
  56279. NET_EM_ALGORITHM_MANUAL, // 手动
  56280. }NET_EM_ALGORITHM_TYPE;
  56281. ///@brief 高级降噪配置
  56282. typedef struct tagNET_DENOISE_ALGORITHM
  56283. {
  56284. NET_EM_ALGORITHM_TYPE emAlgorithmType; // 高级降噪等级, NET_EM_ALGORITHM_MANUAL时空域和时域有效
  56285. int nTnfLevel; // 时域等级
  56286. int nSnfLevel; //空域等级
  56287. BYTE bReserved[256]; // 保留字节
  56288. } NET_DENOISE_ALGORITHM;
  56289. ///@brief 通用降噪配置
  56290. typedef struct tagNET_VIDEOIN_DENOISE_INFO
  56291. {
  56292. DWORD dwSize;
  56293. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56294. BOOL b2DEnable; // 2D降噪使能
  56295. int n2DLevel; // 2D降噪等级0-100, b2DEnable为TRUE时有效
  56296. NET_DENOISE_ALGORITHM stuAlgorithm; // 高级降噪配置
  56297. } NET_VIDEOIN_DENOISE_INFO;
  56298. ///@brief 3D降噪配置
  56299. typedef struct tagNET_VIDEOIN_3D_DENOISE_INFO
  56300. {
  56301. DWORD dwSize;
  56302. NET_EM_CONFIG_TYPE emCfgType; // 配置类型,获取和设置时都要指定
  56303. NET_EM_3D_TYPE em3DType; // 3D降噪控制类型
  56304. int nAutoLevel; // 3D降噪等级,em3DType为NET_EM_3D_AUTO时有效
  56305. } NET_VIDEOIN_3D_DENOISE_INFO;
  56306. ///@brief 优先聚焦模式
  56307. typedef struct tagNET_PRIOR_FOCUSMODE_INFO
  56308. {
  56309. unsigned int nPriorFocusMode; // 聚焦模式:0:近景 1:远景
  56310. BYTE byReserved[256]; // 保留字节
  56311. }NET_PRIOR_FOCUSMODE_INFO;
  56312. ///@brief 聚焦扩展配置(对应命令 NET_EM_CFG_VIDEOIN_FOCUSEX)
  56313. typedef struct tagNET_VIDEOIN_FOCUS_INFO_EX
  56314. {
  56315. DWORD dwSize; // 结构体的大小
  56316. int nPriorFocusModeNum; // 优先聚焦模式个数
  56317. NET_PRIOR_FOCUSMODE_INFO stuPriorFocusMode[8]; // 优先聚焦模式
  56318. }NET_VIDEOIN_FOCUS_INFO_EX;
  56319. ///@brief 近光灯
  56320. typedef struct tagNET_NEAR_LIGHT
  56321. {
  56322. int nLight; // 灯光亮度百分比值,0关闭 (1~100)灯光亮度百分比
  56323. int nAngle; // 激光灯角度归一化值, 0~100
  56324. BYTE byReserved[128]; // 保留字节
  56325. }NET_NEAR_LIGHT;
  56326. ///@brief 中光灯
  56327. typedef struct tagNET_MIDDLE_LIGHT
  56328. {
  56329. BOOL bEnable; // 使能
  56330. int nLight; // 灯光亮度百分比值,0关闭 (1~100)灯光亮度百分比
  56331. int nAngle; // 激光灯角度归一化值, 0~100
  56332. BYTE byReserved[132]; // 保留字节
  56333. }NET_MIDDLE_LIGHT;
  56334. ///@brief 远光灯
  56335. typedef struct tagNET_FAR_LIGHT
  56336. {
  56337. int nLight; // 灯光亮度百分比值,0关闭 (1~100)灯光亮度百分比
  56338. int nAngle; // 激光灯角度归一化值, 0~100
  56339. BYTE byReserved[128]; // 保留字节
  56340. }NET_FAR_LIGHT;
  56341. ///@brief 每个通道对应的配置类型
  56342. typedef enum tagNET_EM_CONFIGEX_TYPE
  56343. {
  56344. NET_EM_CONFIGEX_REALTIME, // 即时生效
  56345. NET_EM_CONFIGEX_DAYTIME, // 白天
  56346. NET_EM_CONFIGEX_NIGHT, // 夜晚
  56347. NET_EM_CONFIGEX_NORMAL, // 普通
  56348. } NET_EM_CONFIGEX_TYPE;
  56349. ///@brief 补光灯配置的扩展(对应命令 NET_EM_CFG_VIDEOIN_LIGHTINGEX)
  56350. typedef struct tagNET_VIDEOIN_LIGHTINGEX_INFO
  56351. {
  56352. DWORD dwSize;
  56353. NET_EM_CONFIGEX_TYPE emCfgType; // 配置类型,获取和设置时都要制定
  56354. NET_EM_LIGHTING_MODE emLightMode; // 灯光模式
  56355. int nCorrection; // 灯光补偿,倍率优先时有效,范围从(0~4)切换到(0~100),存在两种范围,没有能力区分。建议用(0~100)
  56356. int nSensitive; // 灯光灵敏度,倍率优先时有效,范围0~5,默认3
  56357. int nTimes; // 补光灯开灯时间,自动模式有效,单位:秒
  56358. int nNearLight; // 近光灯数量
  56359. int nMiddleLight; // 中光灯数量
  56360. int nFarLight; // 远光灯数量
  56361. BYTE byReserved[4]; // 保留字节,用于字节对齐
  56362. NET_NEAR_LIGHT stuNearLight[4]; // 近光灯组
  56363. NET_MIDDLE_LIGHT stuMiddleLight[4]; // 中光灯组
  56364. NET_FAR_LIGHT stuFarLight[4]; // 远光灯组
  56365. }NET_VIDEOIN_LIGHTINGEX_INFO;
  56366. ///@brief 可视域状态信息(对应命令 NET_EM_CFG_VIDEOIN_VIEWRANGESTATUS)
  56367. typedef struct tagNET_CFG_VIDEOIN_VIEWRANGESTATUS_INFO
  56368. {
  56369. DWORD dwSize; // 结构体大小
  56370. BYTE byReserved[4]; // 字节对齐
  56371. double dbAzimuthH; // 水平方位角度 单位:度,-180~180 逆时针转动为正方向
  56372. double dbAzimuthV; // 垂直方位角度 单位:度,-90~90
  56373. double dbInclinationH; // 水平倾斜角度 单位:度,-90~90
  56374. double dbHeight; // 相机安装高度 单位:米,0~50
  56375. }NET_CFG_VIDEOIN_VIEWRANGESTATUS_INFO;
  56376. ///@brief 补光灯方案
  56377. typedef enum tagEM_LIGHTING_SCHEME_MODE
  56378. {
  56379. EM_LIGHTING_SCHEME_MODE_UNKNOWN, // 未知类型
  56380. EM_LIGHTING_SCHEME_MODE_MIX, // 柔光方案
  56381. EM_LIGHTING_SCHEME_MODE_WHITE, // 白光方案
  56382. EM_LIGHTING_SCHEME_MODE_NORMAL, // 支持柔光双色方案
  56383. EM_LIGHTING_SCHEME_MODE_INFRARED, // 红外补光方案
  56384. EM_LIGHTING_SCHEME_MODE_AIMODE, // 智能补光方案
  56385. EM_LIGHTING_SCHEME_MODE_OFF, // 关闭夜视补光方案
  56386. }EM_LIGHTING_SCHEME_MODE;
  56387. ///@brief 灯光方案配置 (对应命令 NET_EM_CFG_VIDEOIN_LIGHTING_SCHEME)
  56388. typedef struct tagNET_CFG_VIDEOIN_LIGHTING_SCHEME_INFO
  56389. {
  56390. DWORD dwSize; // 结构体大小
  56391. int nModeNum; // 灯光方案个数
  56392. EM_LIGHTING_SCHEME_MODE emMode[8]; // 灯光方案 元素0开始分别表示 白天、夜晚、普通、顺光、一般逆光、强逆光、低照度、自定义
  56393. }NET_CFG_VIDEOIN_LIGHTING_SCHEME_INFO;
  56394. ///@brief 警戒灯光类型
  56395. typedef enum tagEM_ALARM_LIGHT_TYPE
  56396. {
  56397. EM_ALARM_LIGHT_TYPE_UNKNOWN, // 未知类型
  56398. EM_ALARM_LIGHT_TYPE_INFRARED, // 红外灯
  56399. EM_ALARM_LIGHT_TYPE_WHITE, // 白光灯
  56400. EM_ALARM_LIGHT_TYPE_LASER, // 激光灯
  56401. EM_ALARM_LIGHT_TYPE_REDBLUE, // 红蓝警示灯
  56402. }EM_ALARM_LIGHT_TYPE;
  56403. ///@brief 警戒灯光条件设置
  56404. typedef enum tagEM_ALARM_LIGHT_CONDITION_TYPE
  56405. {
  56406. EM_ALARM_LIGHT_CONDITION_UNKNOWN, // 未知类型
  56407. EM_ALARM_LIGHT_CONDITION_BY_VIDEOSTATUS, // 根据图像的状态: 事件发生时取图像的状态,图像判断当前场景是否需要亮起灯光
  56408. EM_ALARM_LIGHT_CONDITION_BY_TIME, // 根据时间段
  56409. EM_ALARM_LIGHT_CONDITION_BY_FORCE, // 无附加条件、事件触发即强制灯光亮起
  56410. }EM_ALARM_LIGHT_CONDITION_TYPE;
  56411. ///@brief 警戒灯光详细配置
  56412. typedef struct tagNET_CFG_ALARM_LIGHTING_DETAIL_INFO
  56413. {
  56414. BOOL bEnable; // 使能,如果true,说明该灯有警戒功能
  56415. EM_ALARM_LIGHT_TYPE emLightType; // 灯光类型
  56416. UINT nLightDuration; // 灯光保持常亮或闪烁的时间,单位秒
  56417. int nBrightness; // 亮度 0 ~ 100
  56418. EM_ALARM_LIGHT_CONDITION_TYPE emLightCondition; // 亮起条件
  56419. BYTE bReserved[236]; // 保留字段
  56420. }NET_CFG_ALARM_LIGHTING_DETAIL_INFO;
  56421. ///@brief 警戒灯光配置 (对应命令 NET_EM_CFG_VIDEOIN_ALARM_LIGHTING )
  56422. typedef struct tagNET_CFG_VIDEOIN_ALARM_LIGHTING_INFO
  56423. {
  56424. DWORD dwSize; // 结构体大小
  56425. int nValidDetail; // stuDetail 有效个数
  56426. NET_CFG_ALARM_LIGHTING_DETAIL_INFO stuDetail[8]; // 警戒灯光详细配置
  56427. }NET_CFG_VIDEOIN_ALARM_LIGHTING_INFO;
  56428. ///@brief 智能规则检测,根据检测区域自动曝光配置 (对应命令 NET_EM_CFG_VIDEOIN_FACE_AUTOEXPOSURE )
  56429. typedef struct tagNET_CFG_VIDEOIN_FACE_AUTOEXPOSURE_INFO
  56430. {
  56431. DWORD dwSize; // 结构体大小
  56432. BOOL bEnable; // 是否开启
  56433. unsigned int nInterval; // 2A曝光间隔检测时间:当前信息离开画面,画面亮度保持的时间,单位秒,范围[0, 100]
  56434. unsigned int nTargetBrightness; // 亮度等级,范围[0, 100]
  56435. }NET_CFG_VIDEOIN_FACE_AUTOEXPOSURE_INFO;
  56436. ///@brief 抓图模式配置
  56437. typedef struct tagNET_SNAP_MODE
  56438. {
  56439. DWORD dwSize;
  56440. int nMode; // 0自动抓图,1手动抓图,2关闭抓图
  56441. BOOL bDirectStorageMode; // 直存模式,TRUE打开,FALSE关闭
  56442. }NET_SNAP_MODE;
  56443. ///@brief 刻录光盘编码计划(对应命令 CFG_CMD_ENCODEPLAN),每个通道(包括画中画通道)一个配置结构体
  56444. typedef struct tagNET_ENCODE_PLAN_INFO
  56445. {
  56446. DWORD dwSize;
  56447. BOOL bEnable; // 通道是否需要配置,FALSE:没有此通道,TRUE:此通道可用
  56448. unsigned int nExpectTime; // 业务预期时长 整型,单位:分钟
  56449. CAPTURE_SIZE emResolution; // 视频分辨率
  56450. unsigned int nBitRate; // 视频固定码流值(kbps)
  56451. unsigned int nPacketSize; // 单个刻录文件打包大小(KB)
  56452. }NET_ENCODE_PLAN_INFO;
  56453. ///@brief 合成通道配置(对应命令 NET_EM_CFG_COMPOSE_CHANNEL)
  56454. typedef struct tagNET_COMPOSE_CHANNEL_INFO
  56455. {
  56456. DWORD dwSize;
  56457. DH_SPLIT_MODE emSplitMode; // 分割模式
  56458. int nChannelCombination[CFG_MAX_VIDEO_CHANNEL_NUM]; // 割模式下的各子窗口显示内容
  56459. int nChannelCount; // 分割窗口数量
  56460. } NET_COMPOSE_CHANNEL_INFO;
  56461. ///@brief 刻录参数配置 (NET_EM_CFG_BURN_PARAM)
  56462. typedef struct tagNET_BURN_PARAM_INFO
  56463. {
  56464. DWORD dwSize;
  56465. int nChannelCount; // 有效刻录通道个数
  56466. int nChannels[64]; // 刻录通道
  56467. NET_BURN_MODE emMode; // 刻录模式
  56468. NET_BURN_RECORD_PACK emFormat; // 刻录格式
  56469. UINT nBurnFileLength; // 刻录文件长度,单位为MB
  56470. }NET_BURN_PARAM_INFO;
  56471. ///@brief 合成通道的预案信息
  56472. typedef struct tagNET_COMPOSE_PLAN_DETAIL_INFO
  56473. {
  56474. char szName[64]; // 预案名称, 用户自定义
  56475. DH_SPLIT_MODE emSplitMode; // 分割模式
  56476. int nChannelCombinationNum; // 分割模式下的各子窗口有效个数
  56477. int nChannelCombination[64]; // 分割模式下的各子窗口显示内容;
  56478. int nAudioOutNum; // 输出音频通道个数
  56479. int nAudioOutChn[4]; // 输出音频通道信息
  56480. BYTE bReserved[676]; // 保留字节
  56481. }NET_COMPOSE_PLAN_DETAIL_INFO;
  56482. ///@brief 合成通道的预案分割配置 ( NET_EM_CFG_COMPOSE_PLAN )
  56483. typedef struct tagNET_COMPOSE_PLAN_INFO
  56484. {
  56485. DWORD dwSize;
  56486. BOOL bEnable; // 预案配置是否开启
  56487. int nPlansNum; // 合成通道预案有效个数
  56488. NET_COMPOSE_PLAN_DETAIL_INFO stuPlans[4]; // 合成通道预案信息
  56489. }NET_COMPOSE_PLAN_INFO;
  56490. ///@brief 乐清外接灯光配置(NET_EM_CFG_YUEQING_SUPPLYLIGHTING)
  56491. typedef struct tagNET_YUEQING_SUPPLYLIGHTING_INFO
  56492. {
  56493. DWORD dwSize;
  56494. BOOL bTimeEnable; // 定时控制使能(放弃使用)
  56495. BOOL bManualEnable; // 手动控制使能,true : 打开 false : 关闭
  56496. unsigned int nPreferentialMode; // 补光灯控制状态 0 : 光敏感控制 1:手动控制 2:定时控制
  56497. unsigned int nBrightness; // 补光灯亮度 范围【1~255】
  56498. DH_TSECT stuTimeSection[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 布撤防时间段
  56499. }NET_YUEQING_SUPPLYLIGHTING_INFO;
  56500. ///@brief 分页获取信息标注信息列表输入参数(CLIENT_ScenicSpotGetPointInfos)
  56501. typedef struct tagNET_IN_SCENICSPOT_GETPOINTINFOS_INFO
  56502. {
  56503. DWORD dwSize;
  56504. int nChannelID; // 通道号
  56505. int nOffset; // 从第几位开始获取(最大 255)
  56506. int nLimit; // 获取几个信息点结构(从 0 开始)
  56507. }NET_IN_SCENICSPOT_GETPOINTINFOS_INFO;
  56508. ///@brief 坐标
  56509. typedef struct tagNET_POINT_INFO
  56510. {
  56511. DH_POINT stuMasterPoint; // 主相机标定点
  56512. DH_POINT stuSlavePoint; // 从相机(球机)标定点
  56513. BYTE byReserved[256]; // 保留字段
  56514. }NET_POINT_INFO;
  56515. ///@brief 坐标
  56516. typedef struct
  56517. {
  56518. int nHorizontalAngle; // 水平角度
  56519. int nVerticalAngle; // 垂直角度
  56520. int nMagnification; // 放大倍数
  56521. } POSTION;
  56522. ///@brief 空间排除信息
  56523. typedef struct tagNET_POSTIONF
  56524. {
  56525. float fHorizontalAngle; // 水平角度 [-1,1]
  56526. float fVerticalAngle; // 垂直角度 [-1,1]
  56527. float fMagnification; // 放大倍数 [-1,1]
  56528. } NET_POSTIONF;
  56529. ///@brief 多目主从跟踪标定点对
  56530. typedef struct tagNET_POINT_PAIR_EX
  56531. {
  56532. int nCaliSceneID; // 标定场景序号,拼接后的全景画面可以分成多个场景进行标定
  56533. PTZ_SPACE_UNIT stuSlaveCenter; // 标定第一目时,球机转到和第一目场景近似的地方,记下此时球机中心点坐标
  56534. NET_POINT_INFO stuPoint[16]; // 在该场景固定球机后,记录两个画面的像素点坐标对应关系
  56535. int nEffectiveNumber; // stuPoint 有效个数
  56536. float fMasterZoom; // 天枢相机(枪球一体设备),枪机具备变倍功能,智能场景恢复时,根据这个值调整倍率,范围[0,1]
  56537. BYTE byReserved[252]; // 保留字段
  56538. } NET_POINT_PAIR_EX;
  56539. ///@brief 多目相机标定配置
  56540. typedef struct tagNET_CALIBRATE_MATRIX_ELEMENT_EX
  56541. {
  56542. char szMasterSN[48]; // 主设备序列号
  56543. char szSlaveSN[48]; // 从设备序列号
  56544. PTZ_SPACE_UNIT stuExpectRatio; // 期望倍率(可选)
  56545. NET_POINT_PAIR_EX stuPointPairEx[8]; // 多目主从跟踪标定点对
  56546. int nEffectiveNumber; // stuPointPairEx 有效个数
  56547. BYTE byReserved[256]; // 保留字段
  56548. } NET_CALIBRATE_MATRIX_ELEMENT_EX;
  56549. ///@brief 主从式跟踪器标定矩阵扩展配置 多目情况下使用(对应 NET_EM_CFG_CALIBRATE_MATRIX 命令)
  56550. typedef struct tagNET_MULTI_SENSOR_INFO
  56551. {
  56552. DWORD dwSize;
  56553. DWORD nMaxCalibElement; // 主从跟踪器标定矩阵配置元素最大个数(用户填写)
  56554. DWORD nRetCalibElement; // 主从跟踪器标定矩阵配置元素实际个数(仅是获取时有效)
  56555. NET_CALIBRATE_MATRIX_ELEMENT_EX *pstCaliMatrixElementEx; // 内存由用户申请
  56556. } NET_MULTI_SENSOR_INFO;
  56557. ///@brief 标定模式
  56558. typedef enum tagNET_EM_CALIBRATION_MODES
  56559. {
  56560. NET_EM_CALIBRATION_MODES_UNKNOWN, // 未知标定
  56561. NET_EM_CALIBRATION_MODES_AUTO, // 自动标定
  56562. NET_EM_CALIBRATION_MODES_MANUAL, // 手动标定
  56563. NET_EM_CALIBRATION_MODES_SEMIAUTO, // 半自动标定
  56564. NET_EM_CALIBRATION_MODES_CLIENTAUTO // 客户端自动标定
  56565. }NET_EM_CALIBRATION_MODES;
  56566. ///@brief 灵瞳相机标定配置
  56567. typedef struct tagNET_CALIBRATE_MATRIX_ELEMENT_MULTIMODE
  56568. {
  56569. NET_EM_CALIBRATION_MODES emMode; // 支持多模式标定的相机,当前生效的标定模式
  56570. char szMasterSN[48]; // 主设备序列号
  56571. char szSlaveSN[48]; // 从设备序列号
  56572. PTZ_SPACE_UNIT stuExpectRatio; // 期望倍率(可选)
  56573. NET_POINT_PAIR_EX stuPointPairEx[8]; // 多场景手动标定点对
  56574. int nPointPairNumber; // stuPointPairEx 有效个数
  56575. NET_POINT_PAIR_EX stuAutoPointPairEx[8]; // 算法自动计算出的多个场景标定参数
  56576. int nAutoPointPairNumber; // stuAutoPointPairEx 有效个数
  56577. BYTE byReserved[512]; // 保留字段
  56578. } NET_CALIBRATE_MATRIX_ELEMENT_MULTIMODE;
  56579. ///@brief 主从式跟踪器标定矩阵扩展配置 灵瞳相机使用(对应 NET_EM_CFG_STEREO_CALIBRATEMATRIX_MULTIMODE 命令)
  56580. typedef struct tagNET_CALIBRATEMATRIX_MULTIMODE_INFO
  56581. {
  56582. DWORD dwSize;
  56583. DWORD nMaxCalibElement; // 主从跟踪器标定矩阵配置元素最大个数(用户填写)
  56584. DWORD nRetCalibElement; // 主从跟踪器标定矩阵配置元素实际个数(仅是获取时有效)
  56585. NET_CALIBRATE_MATRIX_ELEMENT_MULTIMODE *pstCaliMatrixElementEx; // 内存由用户申请
  56586. } NET_CALIBRATEMATRIX_MULTIMODE_INFO;
  56587. ///@brief 智能养殖定时抓图配置
  56588. typedef struct tagNET_CFG_AUTO_SNAP_SCHEDULE_INFO
  56589. {
  56590. DWORD dwSize; // 结构体大小
  56591. BOOL bEnable; // 是否使能定时抓图
  56592. UINT nChannelNum; // 抓图通道个数
  56593. int arnChannelID[2]; // 抓图通道号
  56594. UINT nPeriod; // 抓图周期, 单位秒
  56595. } NET_CFG_AUTO_SNAP_SCHEDULE_INFO;
  56596. ///@brief 停车超时检测配置
  56597. typedef struct tagNET_CFG_PARKING_TIMEOUT_DETECT
  56598. {
  56599. DWORD dwSize; // 结构体大小
  56600. BOOL bEnable; // 是否使能停车超时检测
  56601. UINT nParkingTime; // 可停车时长, 单位为秒, 默认值为604800. 范围:3600-604800, 超过指定时长则判断为超时停车
  56602. UINT nDetectInterval; // 上报超时停车间隔, 单位为秒, 默认值为86400(24小时). 最小值为600, 最大值为86400
  56603. } NET_CFG_PARKING_TIMEOUT_DETECT;
  56604. ///@brief 智能动检敏感等级
  56605. typedef enum tagEM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL
  56606. {
  56607. EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL_UNKNOWN, // 未知
  56608. EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL_LOW, // 低
  56609. EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL_MIDDLE, // 中
  56610. EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL_HIGH, // 高
  56611. }EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL;
  56612. ///@brief 智能动态检测对象
  56613. typedef struct tagNET_SMART_MOTION_DETECT_OBJECT
  56614. {
  56615. BOOL bHuman; // 动态检测人使能
  56616. BOOL bVehicle; // 动态检测车使能
  56617. BYTE byReserved[1020]; // 保留字节
  56618. }NET_SMART_MOTION_DETECT_OBJECT;
  56619. ///@brief 智能动态检测配置
  56620. typedef struct tagNET_CFG_SMART_MOTION_DETECT
  56621. {
  56622. DWORD dwSize; // 结构体大小
  56623. BOOL bEnable; // 动检使能,开:TRUE 关:FALSE
  56624. EM_SMART_MOTION_DETECT_SENSITIVITY_LEVEL emMotionDetectSensitivityLevel; // 动检敏感级别
  56625. NET_SMART_MOTION_DETECT_OBJECT stuMotionDetectObject; // 智能动态检测对象
  56626. }NET_CFG_SMART_MOTION_DETECT;
  56627. ///@brief 外部智能做任务调度配置
  56628. typedef struct tagNET_CFG_EXTERNAL_ANALYSE_TASK_CAPS
  56629. {
  56630. DWORD dwSize; // 结构体大小
  56631. int nModuleNumber; // 分配给外部智能做任务调度使用的智能子卡数量
  56632. } NET_CFG_EXTERNAL_ANALYSE_TASK_CAPS;
  56633. ///@brief 轮巡任务
  56634. typedef struct tagNET_ROUND_TOUR_TASK_INFO
  56635. {
  56636. BOOL bEnable; // 任务使能
  56637. char szReserved[128]; // 预留字节
  56638. }NET_ROUND_TOUR_TASK_INFO;
  56639. ///@brief 分时轮巡模式配置
  56640. typedef struct tagNET_CFG_TIMEDIV_TOUR_CONFIG_INFO
  56641. {
  56642. DWORD dwSize; // 结构体大小
  56643. NET_ROUND_TOUR_TASK_INFO stuRoundTourTask; // 轮巡任务
  56644. } NET_CFG_TIMEDIV_TOUR_CONFIG_INFO;
  56645. #define MAX_STAFF_COUNT 32 // 最大标定线数量
  56646. ///@brief 标尺类型
  56647. typedef enum tagEM_SCALE_TYPR
  56648. {
  56649. EM_SCALE_UNKNOWN, // 未知
  56650. EM_SCALE_HORIZONTAL, // 水平线段
  56651. EM_SCALE_VERTIVAL, // 垂直线段
  56652. EM_SCALE_ANY, // 任意线段,未使用
  56653. EM_SCALE_CROSS, // 垂直面交线段,未使用
  56654. }EM_SCALE_TYPR;
  56655. ///@brief 标定尺线信息
  56656. typedef struct tagNET_MAP_STAFF_INFOO
  56657. {
  56658. NET_POINT stuStartPoint; // 起点坐标
  56659. NET_POINT stuEndPoint; // 终点坐标
  56660. double dbLength; // 实际长度, 单位米
  56661. EM_SCALE_TYPR emScaleType; // 标尺类型
  56662. BYTE byReserved[252]; // 保留字段
  56663. } NET_MAP_STAFF_INFO;
  56664. ///@brief 人群分布标定配置
  56665. typedef struct tagNET_CROWDDISTRIMAP_CALIBRATE_INFO
  56666. {
  56667. DWORD dwSize; // 此结构体大小
  56668. int nStaffNum; // 标定尺线数量
  56669. NET_MAP_STAFF_INFO stuStaffInfo[MAX_STAFF_COUNT]; // 标定尺线信息
  56670. } NET_CROWDDISTRIMAP_CALIBRATE_INFO;
  56671. ///@brief 时间段信息
  56672. typedef struct tagNET_TIME_SECTION
  56673. {
  56674. BOOL bEnable; // 使能 0:时间段无效 1:时间段有效
  56675. int nBeginHour; // 开始 时
  56676. int nBeginMin; // 开始 分
  56677. int nBeginSec; // 开始 秒
  56678. int nEndHour; // 结束 时
  56679. int nEndMin; // 结束 分
  56680. int nEndSec; // 结束 秒
  56681. BYTE byReserved[80]; // 保留字段
  56682. } NET_TIME_SECTION;
  56683. ///@brief 如果为周,从星期一开始;单双号取前两个元素1-单、2-双
  56684. typedef struct tagNET_NOPASSING_TIMESECTION_INFO
  56685. {
  56686. int nLimitedNum; // 限制的个数
  56687. int nPlateTailNum[MAX_PLATE_TAILNUM]; // 限行的车牌尾号(默认为最后一个,如果为字母就倒数第二个,以此类推)
  56688. char szLegalPlateHead[MAX_COMMON_STRING_8]; // 合法车牌的首字符、首字母,不符合的需要抓拍。
  56689. // 中文编码格式为UTF8; 为空表示不按本地字规则抓拍
  56690. NET_TIME_SECTION stuTimeSection; // 抓拍时间段
  56691. BYTE byReserved[256]; // 保留字段
  56692. }NET_NOPASSING_TIMESECTION_INFO;
  56693. ///@brief 事件类型 EVENT_IVS_TRAFFIC_NOPASSING (交通违章-禁止通行事件)对应的配置
  56694. typedef struct tagNET_TRAFFIC_NOPASSING_INFO
  56695. {
  56696. DWORD dwSize; // 此结构体大小
  56697. BOOL bEnable; // 时间配置使能
  56698. int nLaneNumber; // 车道号
  56699. int nTimeSectionMode; // 限行时间模式 0-星期(默认) 1-单双号
  56700. int nNoPassingTimeNumRow; // 禁行天数
  56701. int nNoPassingTimeNumCol; // 禁行时间段个数
  56702. NET_NOPASSING_TIMESECTION_INFO stuNoPassingTimeSection[DH_N_WEEKS][DH_N_REC_TSECT]; // 禁行时间段信息配置
  56703. }NET_TRAFFIC_NOPASSING_INFO;
  56704. ///@brief 规则检测模式组
  56705. typedef enum tagEM_VIDEO_ANALYSE_RULE_DETECT_MODE
  56706. {
  56707. EM_VIDEO_ANALYSE_RULE_DETECT_MODE_UNKNOWN, // 未知
  56708. EM_VIDEO_ANALYSE_RULE_DETECT_MODE_VIDEO, // 视频检测模式
  56709. EM_VIDEO_ANALYSE_RULE_DETECT_MODE_COIL, // 线圈检测模式
  56710. EM_VIDEO_ANALYSE_RULE_DETECT_MODE_RADAR, // 雷达检测模式
  56711. }EM_VIDEO_ANALYSE_RULE_DETECT_MODE;
  56712. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TOLL_GATE (交通卡口事件)对应的配置
  56713. typedef struct tagNET_CFG_TRAFFIC_TOLL_GATE_INFO
  56714. {
  56715. DWORD dwSize; // 此结构体大小
  56716. BOOL bEnable; // 时间配置使能
  56717. char szName[128]; // 规则名称
  56718. UINT nPtzPresetId; // 云台预置点编号
  56719. int nDetectModeCount; // 规则检测模式组个数
  56720. EM_VIDEO_ANALYSE_RULE_DETECT_MODE emDetectMode[3]; // 规则检测模式组
  56721. int nLaneNumber; // 车道号
  56722. int nDetectLineCount; // 卡口报警线个数
  56723. NET_POINT_EX stuDetectLine[20]; // 卡口报警线
  56724. int nDirection; // 相对车道方向需要上报的车辆行驶方向个数
  56725. EM_VEHICLE_DRIVING_DIRECTION emDirection[2]; // 相对车道方向需要上报的车辆行驶方向
  56726. }NET_CFG_TRAFFIC_TOLL_GATE_INFO;
  56727. ///@brief 标定区域信息
  56728. typedef struct tagNET_CALIBRATE_AREA_INFO
  56729. {
  56730. int nCalibratePloygonAreaNum; // 标定多边形区域顶点个数
  56731. DH_POINT stuCalibratePloygonArea[MAX_CALIBRATE_PLOYGON_AREA_NUM]; // 标定多边形区域
  56732. int nCalibrateRectNum; // 标定框个数
  56733. NET_RECT stuCalibrateRects[MAX_CALIBRATE_RECT_NUM]; // 标定框, 需在标定多边形区域内
  56734. BYTE byReserved[256]; // 保留字段
  56735. } NET_CALIBRATE_AREA_INFO;
  56736. ///@brief 场景信息
  56737. typedef struct tagNET_SCENE_INFO
  56738. {
  56739. int nSceneID; // 场景编号, 单场景为0, 多场景为0~N
  56740. NET_CALIBRATE_AREA_INFO stuCalibrateAreaInfo; // 标定区域信息
  56741. BYTE byReserved[256]; // 保留字段
  56742. } NET_SCENE_INFO;
  56743. ///@brief 打架标定配置
  56744. typedef struct tagNET_FIGHT_CALIBRATE_INFO
  56745. {
  56746. DWORD dwSize; // 结构体大小
  56747. int nSceneNum; // 场景个数
  56748. NET_SCENE_INFO stuScenes[MAX_SCENE_NUM]; // 场景信息
  56749. } NET_FIGHT_CALIBRATE_INFO;
  56750. ///@brief 景物点位置
  56751. typedef struct
  56752. {
  56753. int nX; // 第一个元素表示景物点的x坐标(0~8191)
  56754. int nY; // 第二个元素表示景物点的y坐标(0~8191)
  56755. } POINTCOORDINATE;
  56756. ///@brief 景物形状
  56757. typedef enum tagNET_EM_SHAPE_TYPE
  56758. {
  56759. NET_EM_SHAPE_TYPE_UNKNOWN = -1, // 未知
  56760. NET_EM_SHAPE_TYPE_MANSARD, // 折线形
  56761. NET_EM_SHAPE_TYPE_SECTOR, // 扇形
  56762. }NET_EM_SHAPE_TYPE;
  56763. ///@brief 坐标
  56764. typedef struct
  56765. {
  56766. int nIndex; // 信息点编号
  56767. bool bEnable; // 信息点是否生效
  56768. bool bTitleAttribute; // 该信息点是否有子标题
  56769. POSTION stuPostion; // 云台方向与放大倍数(第一个元素为水平角度,0~3600;第二个元素为垂直角度,-1800~1800;第三个元素为放大倍数,0~127)
  56770. POINTCOORDINATE stuPoint; // 景物点位置(使用相对坐标体系,取值均为0-8191在整个屏幕上的位置)
  56771. char szTitleName[MAX_COMMON_STRING_64]; // 一级标题名称
  56772. BYTE byTitleType; // 一级标题名称类型
  56773. BYTE byReserved[3]; // 预留字节
  56774. NET_EM_SHAPE_TYPE emShapeType; // 景物形状
  56775. DH_POINT stuPolygon[DH_MAX_POLYGON_NUM]; // 景物的轮廓,每个点依次表示轮廓顶点坐标
  56776. int nRetPolygonPointNum; // 返回的景物轮廓顶点个数
  56777. BYTE byReserved1[184]; // 保留字段
  56778. }POINTINFOS;
  56779. ///@brief 分页获取信息标注信息列表输出参数(CLIENT_ScenicSpotGetPointInfos)
  56780. typedef struct tagNET_OUT_SCENICSPOT_GETPOINTINFOS_INFO
  56781. {
  56782. DWORD dwSize;
  56783. int nTotal; // 设备总共多少个景物点信息
  56784. int nRetSceneNum; // 当前获取到景物点个数
  56785. POINTINFOS stuPointInfos[MAX_SCENICSPOT_POINTS_NUM]; // 数组长度等于limit,最后一组查询可能小于limit
  56786. }NET_OUT_SCENICSPOT_GETPOINTINFOS_INFO;
  56787. ///@brief 设置景物点,原编号的景物点将会被覆盖 输入参数(CLIENT_ScenicSpotSetPointInfo)
  56788. typedef struct tagNET_IN_SCENICSPOT_SETPOINTINFO_INFO
  56789. {
  56790. DWORD dwSize;
  56791. int nChannel; // 通道号
  56792. int nIndex; // 信息点编号
  56793. bool bEnable; // 信息点是否生效
  56794. bool bTitleAttribute; // 该信息点是否有子标题
  56795. POSTION stuPosition; // 云台方向与放大倍数
  56796. POINTCOORDINATE stuPoint; // 景物点位置
  56797. char szTitleName[MAX_COMMON_STRING_64]; // 一级标题名称
  56798. BYTE byTitleType; // 一级标题名称类型
  56799. BYTE byReserved[3]; // 预留字节
  56800. NET_EM_SHAPE_TYPE emShapeType; // 景物形状
  56801. DH_POINT stuPolygon[DH_MAX_POLYGON_NUM]; // 景物的轮廓,每个点依次表示轮廓顶点坐标
  56802. int nPolygonPointNum; // 景物轮廓点的个数,最大不超过DH_MAX_POLYGON_NUM
  56803. int nChannelNum; // 通道个数
  56804. unsigned short nSyncToChannels[16]; // 支持标签同步标签的通道
  56805. }NET_IN_SCENICSPOT_SETPOINTINFO_INFO;
  56806. ///@brief 设置景物点,原编号的景物点将会被覆盖 输出参数(CLIENT_ScenicSpotSetPointInfo)
  56807. typedef struct tagNET_OUT_SCENICSPOT_SETPOINTINFO_INFO
  56808. {
  56809. DWORD dwSize; // 结构体大小
  56810. int nSyncToChannelNum; // 标签同步通道有效个数
  56811. unsigned short nSyncToChannels[16]; // 标签同步通道
  56812. }NET_OUT_SCENICSPOT_SETPOINTINFO_INFO;
  56813. ///@brief 获取景物点支持的能力(CLIENT_ScenicSpotGetCaps 输入参数)
  56814. typedef struct tagNET_IN_SCENICSPOT_GETCAPS_INFO
  56815. {
  56816. DWORD dwSize;
  56817. int nChannel; // 通道号
  56818. }NET_IN_SCENICSPOT_GETCAPS_INFO;
  56819. ///@brief 能力集
  56820. typedef struct tagNET_SCENICSPOT_CAPS_INFO
  56821. {
  56822. BOOL bEnable; // 是否支持景物点功能
  56823. unsigned int nTotalNum; // 总共最多支持多少个景物点
  56824. unsigned int nRegionNum; // 单画面最多支持多少个景物点
  56825. int nChannelNum; // 通道个数
  56826. unsigned short nSyncToChannels[16];// 支持标签同步的通道
  56827. BYTE byReserved[220]; // 保留字段
  56828. }NET_SCENICSPOT_CAPS_INFO;
  56829. ///@brief 获取景物点支持的能力(CLIENT_ScenicSpotGetCaps 输出参数)
  56830. typedef struct tagNET_OUT_SCENICSPOT_GETCAPS_INFO
  56831. {
  56832. DWORD dwSize;
  56833. NET_SCENICSPOT_CAPS_INFO stuCaps; // 能力集信息
  56834. }NET_OUT_SCENICSPOT_GETCAPS_INFO;
  56835. ///@brief 以景物标注点为中心,进行三维定位的输入参数(对应 CLIENT_ScenicSpotTurnToPoint)
  56836. typedef struct tagNET_IN_SCENICSPOT_TURNTOPOINT_INFO
  56837. {
  56838. DWORD dwSize;
  56839. int nChannel; // 通道号
  56840. int nIndex; // 景物点编号
  56841. }NET_IN_SCENICSPOT_TURNTOPOINT_INFO;
  56842. ///@brief 以景物标注点为中心,进行三维定位的输出参数(对应 CLIENT_ScenicSpotTurnToPoint)
  56843. typedef struct tagNET_OUT_SCENICSPOT_TURNTOPOINT_INFO
  56844. {
  56845. DWORD dwSize;
  56846. }NET_OUT_SCENICSPOT_TURNTOPOINT_INFO;
  56847. ///@brief 报警声音效果
  56848. typedef enum tagEM_ALARM_SOUND_EFFECT
  56849. {
  56850. EM_ALARM_SOUND_EFFECT_UNKNOWN, // 未知的音效
  56851. EM_ALARM_SOUND_EFFECT_MUTE, // 静音
  56852. EM_ALARM_SOUND_EFFECT_NOTICE, // 较为轻柔的报警音, 起到提示作用
  56853. EM_ALARM_SOUND_EFFECT_ALERT, // 尖锐响亮的报警音, 起到警示作用
  56854. }EM_ALARM_SOUND_EFFECT;
  56855. ///@brief 报警网关语音配置
  56856. typedef struct tagNET_ALARM_SOUND_INFO
  56857. {
  56858. DWORD dwSize;
  56859. EM_ALARM_SOUND_EFFECT emSoundEffect; // 声音效果
  56860. }NET_ALARM_SOUND_INFO;
  56861. ///@brief 双目标定结果配置
  56862. typedef struct tagNET_STEREO_CALIBRATE_INFO
  56863. {
  56864. DWORD dwSize;
  56865. int nCameraHeight; // 保存上次标定高度,单位cm
  56866. float fCameraAngle; // 保存上次标定角度,单位角度
  56867. } NET_STEREO_CALIBRATE_INFO;
  56868. ///@brief 网络连接模式
  56869. typedef enum tagEM_LINK_MODE
  56870. {
  56871. EM_LINK_MODE_UNKNOWN, // 未知模式
  56872. EM_LINK_MODE_AUTO, // 自动选择合适的模式
  56873. EM_LINK_MODE_ADHOC, // 是一种特殊的无线网络应用模式, 一群计算机接上无线网络卡, 即可相互连接, 资源共享, 无需透过Access Point
  56874. EM_LINK_MODE_INFRASTRUCTURE, // 是一种整合有线与无线局域网络架构的应用模式, 可以网络资源共享, 此应用需透过Access Point。
  56875. }EM_LINK_MODE;
  56876. ///@brief AP加密方式
  56877. typedef enum tagEM_AP_DATA_ENCRYPT
  56878. {
  56879. EM_AP_DATA_ENCRYPT_UNKNOWN, // UnKnown
  56880. EM_AP_DATA_ENCRYPT_NONE, // NONE
  56881. EM_AP_DATA_ENCRYPT_AUTO, // AUTO
  56882. EM_AP_DATA_ENCRYPT_SHARED, // SHARED
  56883. EM_AP_DATA_ENCRYPT_OPEN, // OPEN
  56884. EM_AP_DATA_ENCRYPT_TKIP, // TKIP
  56885. EM_AP_DATA_ENCRYPT_AES, // AES
  56886. } EM_AP_DATA_ENCRYPT;
  56887. ///@brief 功率模式
  56888. typedef enum tagEM_AP_POWER_MODE
  56889. {
  56890. EM_AP_POWER_MODE_UNKNOWN, // UnKnown
  56891. EM_AP_POWER_MODE_LOW, // Low
  56892. EM_AP_POWER_MODE_MIDDLE, // Middle
  56893. EM_AP_POWER_MODE_HIGH, // High
  56894. }EM_AP_POWER_MODE;
  56895. ///@brief DHCP 配置
  56896. typedef struct tagNET_DHCP_INFO
  56897. {
  56898. char szStartIP[NET_IPADDRSTR_LEN]; // 分配的起始IP
  56899. char szStopIP[NET_IPADDRSTR_LEN]; // 分配的结束IP
  56900. int nLeaseTime; // 续租时间 单位: 分钟
  56901. BYTE byReserved[512]; // 保留字段
  56902. }NET_DHCP_INFO;
  56903. ///@brief WEP认证配置
  56904. typedef struct tagNET_WEP_INFO
  56905. {
  56906. int nKeyID; // 秘钥索引, 取值0~3
  56907. char szKeys[MAX_WEP_KEY_NUM][MAX_COMMON_STRING_64];// 四组密码
  56908. BYTE byReserved[256]; // 保留字段
  56909. }NET_WEP_INFO;
  56910. ///@brief WPA/WPA2 PSK配置
  56911. typedef struct tagNET_WPA_PSK_INFO
  56912. {
  56913. char szPassword[MAX_COMMON_STRING_64]; // 密码
  56914. BYTE byReserved[256]; // 保留字段
  56915. }NET_WPA_PSK_INFO;
  56916. ///@brief EAP方法
  56917. typedef enum tagEM_EAP_METHOD
  56918. {
  56919. EM_EAP_METHOD_UNKNOWN, // UnKnown
  56920. EM_EAP_METHOD_PEAP, // PEAP
  56921. EM_EAP_METHOD_TLS, // TLS
  56922. EM_EAP_METHOD_TTLS, // TTLS
  56923. } EM_EAP_METHOD;
  56924. ///@brief EAP身份验证方法
  56925. typedef enum tagEM_EAP_AUTH_TYPE
  56926. {
  56927. EM_EAP_AUTH_TYPE_UNKNOWN, // UnKnown
  56928. EM_EAP_AUTH_TYPE_NONE, // NONE
  56929. EM_EAP_AUTH_TYPE_PAP, // PAP
  56930. EM_EAP_AUTH_TYPE_MSCHAP, // MSCHAP
  56931. EM_EAP_AUTH_TYPE_MSCHAPV2, // MSCHAPV2
  56932. EM_EAP_AUTH_TYPE_GTC, // GTC
  56933. } EM_EAP_AUTH_TYPE;
  56934. ///@brief AP认证方式
  56935. typedef enum tagEM_AP_AUTHENTICATION
  56936. {
  56937. EM_AP_AUTHENTICATION_UNKNOWN, // UnKnown
  56938. EM_AP_AUTHENTICATION_OPEN, // OPEN
  56939. EM_AP_AUTHENTICATION_WEP, // WEP
  56940. EM_AP_AUTHENTICATION_WPAPSK, // WPA PSK
  56941. EM_AP_AUTHENTICATION_WPA2PSK, // WPA2 PSK
  56942. EM_AP_AUTHENTICATION_WPA, // WPA
  56943. EM_AP_AUTHENTICATION_WPA2, // WPA2
  56944. } EM_AP_AUTHENTICATION;
  56945. ///@brief WPA/WPA2配置
  56946. typedef struct tagNET_EAP_INFO
  56947. {
  56948. EM_EAP_METHOD emMethod; // EAP方法
  56949. EM_EAP_AUTH_TYPE emAuthType; // EAP身份验证方法
  56950. char szIdentity[MAX_COMMON_STRING_64]; // 身份
  56951. char szAnonymousID[MAX_COMMON_STRING_64];// 匿名身份
  56952. char szPassword[MAX_COMMON_STRING_64]; // 密码
  56953. char szCaCert[MAX_COMMON_STRING_512]; // CA证书
  56954. char szUserCert[MAX_COMMON_STRING_512]; // 用户证书
  56955. BYTE byReserved[256]; // 保留字段
  56956. }NET_EAP_INFO;
  56957. ///@brief WIFI 连接方式
  56958. typedef enum tagEM_WIFI_CONNECT_TYPE
  56959. {
  56960. EM_WIFI_CONNECT_TYPE_UNKNOWN, // 未知
  56961. EM_WIFI_CONNECT_TYPE_PUSH_BUTTON, // 按钮方式
  56962. EM_WIFI_CONNECT_TYPE_PIN_ENROLLEE, // PIN 码方式
  56963. EM_WIFI_CONNECT_TYPE_PIN_REG, // PIN REG方式 目前暂不支持
  56964. }EM_WIFI_CONNECT_TYPE;
  56965. ///@brief WIFI 安全保护配置
  56966. typedef struct tagNET_WPS_INFO
  56967. {
  56968. EM_WIFI_CONNECT_TYPE emConnType; // 连接方式
  56969. char szPIN[MAX_COMMON_STRING_32]; // PIN码, 当连接方式为PIN码方式时需要填写
  56970. BYTE byReserved[256]; // 保留字段
  56971. }NET_WPS_INFO;
  56972. ///@brief 地址过滤列表
  56973. typedef struct tagNET_FILTER_ADDRESS_LIST
  56974. {
  56975. BOOL bEffective; // 在列表中有效性 true有效,false无效
  56976. char szMAC[DH_MACADDR_LEN]; // 设备MAC地址
  56977. char szDescribeText[DH_COMMON_STRING_256]; // 对该MAC的描述信息
  56978. BYTE byReserved[256]; // 保留字段
  56979. }NET_FILTER_ADDRESS_LIST;
  56980. ///@brief 地址列表过滤策略
  56981. typedef enum tagEM_ADDRLIST_FILTER_POLICY
  56982. {
  56983. EM_ADDRLIST_FILTER_POLICY_UNKNOWN, // 未知
  56984. EM_ADDRLIST_FILTER_POLICY_WHITE, // "allow" : 允许列表中的有效地址设备连接热点,允许名单。
  56985. EM_ADDRLIST_FILTER_POLICY_BLACK, // "block" : 禁止列表中的有效地址设备连接热点,禁止名单。
  56986. }EM_ADDRLIST_FILTER_POLICY;
  56987. ///@brief AccessPoint 接入过滤配置
  56988. typedef struct tagNET_AP_FILTER
  56989. {
  56990. BOOL bEnable; // 是否开启过滤功能
  56991. int nMaxAccessNum; // 最大Wifi设备连接个数
  56992. EM_ADDRLIST_FILTER_POLICY emPolicy; // 过滤策略
  56993. NET_FILTER_ADDRESS_LIST *pstuAddrList; // 地址过滤列表,由用户申请内存和释放
  56994. int nMaxListNum; // 地址最大个数
  56995. int nRetListNum; // 返回的地址个数
  56996. BYTE byReserved[256]; // 保留字段
  56997. }NET_AP_FILTER;
  56998. ///@brief Accesspoint 工作模式
  56999. typedef enum tagEM_WORKPATTERN
  57000. {
  57001. EM_WORKPATTERN_UNKNOWN, // 未知
  57002. EM_WORKPATTERN_2_4G, // 默认为2.4G工作模式的配置
  57003. EM_WORKPATTERN_5G, // 5G模式的配置
  57004. }EM_WORKPATTERN;
  57005. ///@brief AP 工作模式配置
  57006. typedef struct tagNET_AP_WORKPATTERN
  57007. {
  57008. EM_WORKPATTERN emWorkPatternType; // 工作模式:2.4G/5G
  57009. BOOL bEnable; // WIFI网卡使能开关, TRUE打开, FALSE关闭
  57010. BOOL bHideSSID; // 是否隐藏SSID, TRUE 隐藏, FALSE 显示
  57011. char szSSID[DH_COMMON_STRING_36]; // 网络名称(SSID)
  57012. EM_LINK_MODE emLinkMode; // 网络连接模式
  57013. int nPriority; // 优先级 (范围 1-32)
  57014. int nChannel; // 信道号 (范围 1-13)
  57015. int nChannelBandwidth; // 信道带宽 单位: M
  57016. EM_AP_AUTHENTICATION emAuthentication; // 认证方式
  57017. EM_AP_DATA_ENCRYPT emDataEncryption; // 数据加密方式
  57018. EM_AP_POWER_MODE emPowerMode; // 功率模式
  57019. BOOL bDHCPEnable; // 是否开启DHCP方式分配IP地址
  57020. NET_DHCP_INFO stuDHCP; // DHCP详细配置信息
  57021. char szIPAddresss[NET_IPADDRSTR_LEN]; // IP地址
  57022. char szSubnetMask[MAX_COMMON_STRING_16]; // 子网掩码
  57023. char szDefaultGateway[MAX_COMMON_STRING_16]; // 默认网关
  57024. NET_WEP_INFO stuWEP; // WEP认证配置
  57025. NET_WPA_PSK_INFO stuWPAPSK; // WPA/WPA2 PSK配置
  57026. NET_EAP_INFO stuEAP; // WPA/WPA2 配置
  57027. NET_WPS_INFO stuWPS; // WPS 安全保护配置
  57028. NET_AP_FILTER stuFilter; // 接入过滤配置
  57029. BYTE byReserved[1024]; // 保留字段
  57030. }NET_AP_WORKPATTERN;
  57031. ///@brief 热点功能的网卡配置名
  57032. typedef enum tagEM_ACCESSPOINT_NAME
  57033. {
  57034. EM_ACCESSPOINT_NAME_UNKNOWN, // 未知
  57035. EM_ACCESSPOINT_NAME_ETH2, // "eth2" : 前端使用的软AP网卡名
  57036. EM_ACCESSPOINT_NAME_WALN0, // "wlan0" : 存储使用的软AP网卡名
  57037. EM_ACCESSPOINT_NAME_APRA0, // "apra0" : 提供硬AP功能的网卡名
  57038. }EM_ACCESSPOINT_NAME;
  57039. ///@brief AccessPoint 配置信息
  57040. typedef struct tagNET_ACCESSPOINT_INFO
  57041. {
  57042. EM_ACCESSPOINT_NAME emAccessPointName; // 提供热点功能的网卡配置名
  57043. int nValidPatternNum; // 有效工作模式个数
  57044. NET_AP_WORKPATTERN stuWorkPattern[MAX_WORKPATTERN_NUM];// 工作模式配置:2.4G(默认)/5G
  57045. BYTE byReserved[1024]; // 保留字段
  57046. }NET_ACCESSPOINT_INFO;
  57047. ///@brief WIFI服务器端配置 (热点功能)
  57048. typedef struct tagNET_NETAPP_ACCESSPOINT
  57049. {
  57050. DWORD dwSize;
  57051. int nValidAPNum; // AccessPoints 有效个数
  57052. NET_ACCESSPOINT_INFO stuAccessPoints[NET_MAX_AP_NUM]; // AP 配置信息
  57053. }NET_NETAPP_ACCESSPOINT;
  57054. ///@brief 乱序窗口类型
  57055. typedef enum tagEM_DISORDERWINDOW_TYPE
  57056. {
  57057. EM_DISORDERWINDOW_TYPE_UNKNOWN = -1,
  57058. EM_DISORDERWINDOW_TYPE_PACKETS_NUMBER = 0, //数据包数量,默认
  57059. EM_DISORDERWINDOW_TYPE_DATA_DELAY = 1, //数据延时(ms)
  57060. EM_DISORDERWINDOW_TYPE_MEMORY_SIZE = 2, //内存大小(KB)
  57061. }EM_DISORDERWINDOW_TYPE;
  57062. ///@brief RTSP传输配置
  57063. typedef struct tagNET_CFG_RTSP_TRANSIT
  57064. {
  57065. int nUdpSndBufSize; //UDP发送socket缓冲区大小(单位:KB) 默认512 0-使用系统默认值
  57066. int nUdpRcvBufSize; //UDP接收socket缓冲区大小(单位:KB)默认512 0-使用系统默认值
  57067. int nSliceSize; //rtp报文分包大小(单位:字节),默认1472 建议值:网卡mtu-ip头部-udp头部
  57068. int nFlowControlMaxDelay;// 流控最大延迟,表示由于流量控制和
  57069. // 整形引起的延迟最大不超过此值,默认400ms
  57070. int nFlowControlCoefficient;// 延迟系数,实际生效最大延迟= MaxDelay* Coefficient/100,
  57071. // 值越大,表示容忍延迟越大,数据发送也就更均匀,范围[0,100],默认50 ,0表示关闭应用层流控
  57072. EM_DISORDERWINDOW_TYPE emDisorderWindowType; //乱序窗口类型
  57073. int nDisorderWindowValue; //乱序窗口大小,默认为100个包
  57074. BYTE byReserved[2048]; //保留字节
  57075. }NET_CFG_RTSP_TRANSIT;
  57076. ///@brief 重传功能类型
  57077. typedef enum tagEM_RETRANSIT_TYPE
  57078. {
  57079. EM_RETRANSIT_TYPE_UNKNOWN = -1,
  57080. EM_RETRANSIT_TYPE_PACKETS_NUMBER = 0, //数据包数量,默认
  57081. EM_RETRANSIT_TYPE_DATA_DELAY = 1, //数据延时(ms)
  57082. }EM_RETRANSIT_TYPE;
  57083. ///@brief DVRIP传输配置
  57084. typedef struct tagNET_CFG_DVRIP_TRANSIT
  57085. {
  57086. int nUdpSndBufSize; //UDP发送socket缓冲区大小(单位:KB),默认512 0-使用系统默认值
  57087. int nMaxSize; //最大码流数据包分包大小(单位:字节) 默认:1400 建议值:网卡mtu-ip头部-udp头部
  57088. int nFlowControlMaxDelay;// 流控最大延迟,表示由于流量控制和
  57089. // 整形引起的延迟最大不超过此值,默认400ms
  57090. int nFlowControlCoefficient;// 延迟系数,实际生效最大延迟= MaxDelay* Coefficient/100,
  57091. // 值越大,表示容忍延迟越大,数据发送也就更均匀,范围[0,100],默认50 ,0表示关闭应用层流控
  57092. EM_RETRANSIT_TYPE emRetransitType; //重传类型
  57093. int nRetransitValue; //重传值
  57094. BYTE byReserved[2048]; //保留字节
  57095. }NET_CFG_DVRIP_TRANSIT;
  57096. ///@brief GB28181传输配置
  57097. typedef struct tagNET_CFG_GB28181_TRANSIT
  57098. {
  57099. int nUdpSndBufSize; //UDP发送socket缓冲区大小(单位:KB),默认512 0-使用系统默认值
  57100. int nMaxSize; //最大码流数据包分包大小(单位:字节) 默认:1400 建议值:网卡mtu-ip头部-udp头部
  57101. int nFlowControlMaxDelay;// 流控最大延迟,表示由于流量控制和
  57102. // 整形引起的延迟最大不超过此值,默认400ms
  57103. int nFlowControlCoefficient;// 延迟系数,实际生效最大延迟= MaxDelay* Coefficient/100,
  57104. // 值越大,表示容忍延迟越大,数据发送也就更均匀,范围[0,100],默认50 ,0表示关闭应用层流控
  57105. BYTE byReserved[2048]; //保留字节
  57106. }NET_CFG_GB28181_TRANSIT;
  57107. ///@brief 网络自适应传输配置对应NET_EM_CFG_NETAUTOADAPTTRANSIT
  57108. typedef struct tagNET_NETAUTOADAPTTRANSIT
  57109. {
  57110. DWORD dwSize;
  57111. NET_CFG_RTSP_TRANSIT stuRtsp; //RTSP配置
  57112. NET_CFG_DVRIP_TRANSIT stuDvrip; //DVRIP配置
  57113. NET_CFG_GB28181_TRANSIT stuGB28181; //GB28181配置
  57114. }NET_NETAUTOADAPTTRANSIT;
  57115. // 标识名最大长度
  57116. #define MAX_DN_LENGTH 128
  57117. ///@brief LDAP 配置
  57118. typedef struct tagNET_NETAPP_LDAP
  57119. {
  57120. DWORD dwSize;
  57121. BOOL bEnable; // 是否使能
  57122. char szServerIP[MAX_SERVER_ADDRESS_LEN]; // 服务IP地址
  57123. int nServerPort; // 服务端口号
  57124. char szBindDN[MAX_DN_LENGTH]; // 绑定的标识名
  57125. char szBindPwd[MAX_PWD_LEN]; // 密码
  57126. BOOL bAnonymousBind; // 是否匿名
  57127. char szBaseDN[MAX_DN_LENGTH]; // 基本标识名
  57128. char szFilter[DH_COMMON_STRING_128]; // 搜索范围
  57129. } NET_NETAPP_LDAP;
  57130. ///@brief 设备编号(与服务器配置保持一致,编号标识服务器对该设备日志具体存放路径)
  57131. typedef enum tagEM_SYSLOG_FACILITY_TYPE
  57132. {
  57133. EM_SYSLOG_FACILITY_UNKNOWN = -1,
  57134. EM_SYSLOG_FACILITY_KERNEL_MESSAGES, // 0 kernel messages
  57135. EM_SYSLOG_FACILITY_USER_LEVEL_MESSAGES, // 1 user-level messages
  57136. EM_SYSLOG_FACILITY_MAIL_SYSTEM, // 2 mail system
  57137. EM_SYSLOG_FACILITY_SYSTEM_DAEMONS, // 3 system daemons
  57138. EM_SYSLOG_FACILITY_SECURITY_MESSAGES, // 4 security/authorization messages
  57139. EM_SYSLOG_FACILITY_MESSAGES_GENERATED_INTERNALLY_BY_SYSLOGD, // 5 messages generated internally by syslogd
  57140. EM_SYSLOG_FACILITY_LINE_PRINTER_SUBSYSTEM, // 6 line printer subsystem
  57141. EM_SYSLOG_FACILITY_NETWORK_NEWS_SUBSYSTEM, // 7 network news subsystem
  57142. EM_SYSLOG_FACILITY_UUCP_SUBSYSTEM, // 8 UUCP subsystem
  57143. EM_SYSLOG_FACILITY_CLOCK_DAEMON, // 9 clock daemon
  57144. EM_SYSLOG_FACILITY_SECURITY_MESSAGES_2, // 10 security/authorization messages
  57145. EM_SYSLOG_FACILITY_FTP_DAEMON, // 11 FTP daemon
  57146. EM_SYSLOG_FACILITY_NTP_SUBSYSTEM, // 12 NTP subsystem
  57147. EM_SYSLOG_FACILITY_LOG_AUDIT, // 13 log audit
  57148. EM_SYSLOG_FACILITY_LOG_ALERT, // 14 log alert
  57149. EM_SYSLOG_FACILITY_CLOCK_DAEMON_2, // 15 clock daemon
  57150. EM_SYSLOG_FACILITY_LOCAL_USE_0, // 16 local use 0
  57151. EM_SYSLOG_FACILITY_LOCAL_USE_1, // 17 local use 1
  57152. EM_SYSLOG_FACILITY_LOCAL_USE_2, // 18 local use 2
  57153. EM_SYSLOG_FACILITY_LOCAL_USE_3, // 19 local use 3
  57154. EM_SYSLOG_FACILITY_LOCAL_USE_4, // 20 local use 4
  57155. EM_SYSLOG_FACILITY_LOCAL_USE_5, // 21 local use 5
  57156. EM_SYSLOG_FACILITY_LOCAL_USE_6, // 22 local use 6
  57157. EM_SYSLOG_FACILITY_LOCAL_USE_7, // 23 local use 7
  57158. } EM_SYSLOG_FACILITY_TYPE;
  57159. ///@brief Syslog 配置
  57160. typedef struct tagNET_NETAPP_SYSLOG
  57161. {
  57162. DWORD dwSize;
  57163. BOOL bEnable; // 使能
  57164. char szServerIP[MAX_SERVER_IP_LEN]; // 服务器地址
  57165. int nServerPort; // 服务端口号
  57166. EM_SYSLOG_FACILITY_TYPE emFacility; // 设备编号
  57167. } NET_NETAPP_SYSLOG;
  57168. ///@brief 鉴权模式
  57169. typedef enum tagEM_WIRELESS_AUTH_MODE
  57170. {
  57171. EM_WIRELESS_AUTH_MODE_UNKNOWN = 0,
  57172. EM_WIRELESS_AUTH_MODE_NO, // 无需鉴权
  57173. EM_WIRELESS_AUTH_MODE_PAP, // PAP鉴权
  57174. EM_WIRELESS_AUTH_MODE_CHAP, // CHAP鉴权
  57175. }EM_WIRELESS_AUTH_MODE;
  57176. ///@brief 流量控制策略
  57177. typedef enum tagEM_WIRELESS_3GFLUX_TACTICS
  57178. {
  57179. EM_WIRELESS_3GFLUX_TACTICS_UNKNOWN = 0,
  57180. EM_WIRELESS_3GFLUX_TACTICS_BYFLUX_MONTHLY, // 包月按流量
  57181. EM_WIRELESS_3GFLUX_TACTICS_BYTIME_MONTHLY // 包月按时长
  57182. }EM_WIRELESS_3GFLUX_TACTICS;
  57183. ///@brief 每日流量控制策略
  57184. typedef enum tagEM_WIRELESS_DAY3GFLUX_TACTICS
  57185. {
  57186. EM_WIRELESS_DAY3GFLUX_TACTICS_UNKNOWN = 0,
  57187. EM_WIRELESS_DAY3GFLUX_TACTICS_BYFLUX, // 按流量
  57188. EM_WIRELESS_DAY3GFLUX_TACTICS_BYTIME // 按时长
  57189. }EM_WIRELESS_DAY3GFLUX_TACTICS;
  57190. ///@brief 每日达到流量上限动作
  57191. typedef enum tagEM_WIRELESS_3GFLUX_ACTION
  57192. {
  57193. EM_WIRELESS_3GFLUX_ACTION_UNKNOWN = 0,
  57194. EM_WIRELESS_3GFLUX_ACTION_NOTHING, // 无动作
  57195. EM_WIRELESS_3GFLUX_ACTION_3GNETDOWN // 3G下线
  57196. }EM_WIRELESS_3GFLUX_ACTION;
  57197. ///@brief 工作模式选择
  57198. typedef enum tagEM_WIRELESS_WORK_MODE
  57199. {
  57200. EM_WIRELESS_WORK_MODE_UNKNOWN = 0,
  57201. EM_WIRELESS_WORK_MODE_CDMA1X, // CDMA1x
  57202. EM_WIRELESS_WORK_MODE_EVDO, // EVDO
  57203. EM_WIRELESS_WORK_MODE_TD_SCDMA, // TD-SCDMA
  57204. EM_WIRELESS_WORK_MODE_WCDMA, // WCDMA
  57205. EM_WIRELESS_WORK_MODE_EDGE, // EDGE
  57206. EM_WIRELESS_WORK_MODE_TDD_LTE, // TDD-LTE
  57207. EM_WIRELESS_WORK_MODE_FDD_LTE, // FDD-LTE
  57208. EM_WIRELESS_WORK_MODE_GPRS, // GPRS
  57209. EM_WIRELESS_WORK_MODE_NR, // NR
  57210. EM_WIRELESS_WORK_MODE_NO_SERVICE, // NOService
  57211. EM_WIRELESS_WORK_MODE_AMPS, // AMPS
  57212. EM_WIRELESS_WORK_MODE_CDMA2000, // CDMA2000
  57213. EM_WIRELESS_WORK_MODE_GSM, // GSM
  57214. EM_WIRELESS_WORK_MODE_LTE, // LTE
  57215. EM_WIRELESS_WORK_MODE_TD_LTE, // TD-LTE
  57216. EM_WIRELESS_WORK_MODE_AUTO // Auto
  57217. }EM_WIRELESS_WORK_MODE;
  57218. #define MAX_DAIL_NUMBER 32 // Wireless中拨号号码长度
  57219. ///@brief 蜂窝网络连接设置
  57220. typedef struct tagNET_NETAPP_WIRELESS
  57221. {
  57222. DWORD dwSize;
  57223. BOOL bEnable; // 蜂窝网络使能开关
  57224. int nIndex; // 模块索引。只读,即PAL层获取的index
  57225. int nKeepAlive; // 保活时间, 单位为秒,0表示不自动断开
  57226. EM_WIRELESS_APN_TYPE emAPN; // 接入网络, 当为自定义时,使用szAPNName字符串透传
  57227. char szAPNName[DH_COMMON_STRING_32]; // 接入网络名,当emAPN为自定义时,使用szAPNName字符串透传,例如:"CTNET", "CMNET", "UNINET", "CUSTOMIZED"
  57228. EM_WIRELESS_AUTH_MODE emAuthMode; // 鉴权模式
  57229. char szUserName[DH_COMMON_STRING_64]; // 用户名
  57230. char szPassword[DH_COMMON_STRING_64]; // 密码
  57231. BOOL bAutoDial; // 按时间自动拨号开关, 默认为true,如果打开,拨号时间段使用stuTimeSection,false时,stuTimeSection配置无效
  57232. DH_TSECT stuTimeSection[DH_N_WEEKS][DH_N_REC_TSECT]; // 拨号时间段
  57233. EM_WIRELESS_3GFLUX_TACTICS em3GFluxTactic; // 流量使用策略
  57234. UINT n3GFluxUp; // 流量使用上限, [0,65535]MB或者分钟
  57235. UINT n3GFlux; // 实际使用流量, [0,65535]MB或者分钟
  57236. EM_WIRELESS_DAY3GFLUX_TACTICS emDay3GFluxTactic; // 每日流量控制策略
  57237. UINT nDay3GFluxUp; // 每日流量使用上限, [0,65535]MB或者分钟
  57238. UINT nDay3GFlux; // 当日已使用流量, [0,65535]MB或者分钟
  57239. EM_WIRELESS_3GFLUX_ACTION emDay3GFluxAction; // 流量报警策略,每日达到流量上限动作
  57240. EM_WIRELESS_WORK_MODE emWorkMode; // 工作模式选择
  57241. char szDailNumber[MAX_DAIL_NUMBER]; // 拨号号码
  57242. BOOL bActivate; // 是否已经被语音或短信激活
  57243. char szCardNum[32]; // 卡号码
  57244. char szIMEI[16]; // IMEI
  57245. char szPIN[16]; // PIN码
  57246. char szICCID[32]; // 集成电路卡识别码即SIM卡卡号,20位数字组成
  57247. } NET_NETAPP_WIRELESS;
  57248. ///@brief 运营商选择模式
  57249. typedef enum tagEM_OPERATOR_SELECTION_MODE
  57250. {
  57251. EM_OPERATOR_SELECTION_MODE_UNKNOWN = -1, // 未知类型
  57252. EM_OPERATOR_SELECTION_MODE_AUTO, // 自动选择运营商
  57253. EM_OPERATOR_SELECTION_MODE_MANUAL, // 手动设置运营商
  57254. EM_OPERATOR_SELECTION_MODE_LOGOUT, // 从注册网络注销
  57255. EM_OPERATOR_SELECTION_MODE_FORMAT, // 仅设置格式,不进行网络注册和注销
  57256. EM_OPERATOR_SELECTION_MODE_AUTO_OR_MANUAL, // 手动/自动 (如果手动设置失败则进入自动模式)
  57257. }EM_OPERATOR_SELECTION_MODE;
  57258. ///@brief 运营商消息格式
  57259. typedef enum tagEM_OPERATOR_MSG_FORMAT
  57260. {
  57261. EM_OPERATOR_MSG_FORMAT_UNKNOWN = -1, // 未知类型
  57262. EM_OPERATOR_MSG_FORMAT_FULL_STRING, // 字符串全称型
  57263. EM_OPERATOR_MSG_FORMAT_SHORT_STRING, // 字符串简短型
  57264. EM_OPERATOR_MSG_FORMAT_DIGITAL, // 数字型
  57265. }EM_OPERATOR_MSG_FORMAT;
  57266. ///@brief 接入技术 Access technology
  57267. typedef enum tagEM_ACCESS_TECHNOLOGY
  57268. {
  57269. EM_ACCESS_TECHNOLOGY_UNKNOWN = -1, // 未知类型
  57270. EM_ACCESS_TECHNOLOGY_GSM, // GSM
  57271. EM_ACCESS_TECHNOLOGY_GSM_COMPACT, // GSM COMPACT
  57272. EM_ACCESS_TECHNOLOGY_UTRAN, // UTRAN
  57273. EM_ACCESS_TECHNOLOGY_GSM_W_EGPRS, // GSM W/EGPRS
  57274. EM_ACCESS_TECHNOLOGY_UTRAN_W_HSDPA, // UTRAN W/HSDPA
  57275. EM_ACCESS_TECHNOLOGY_UTRAN_W_HSUPA, // UTRAN W/HSUPA
  57276. EM_ACCESS_TECHNOLOGY_UTRAN_W_HSDPA_AND_HSUPA, // UTRAN W/HSDPA 和 HSUPA
  57277. EM_ACCESS_TECHNOLOGY_E_UTRAN, // E-UTRAN
  57278. }EM_ACCESS_TECHNOLOGY;
  57279. ///@brief 蜂窝网络高级配置
  57280. typedef struct tagNET_WIRELESS_EXPERT
  57281. {
  57282. BOOL bValid; // 配置是否有效
  57283. BOOL bEnable; // 蜂窝网络使能开关
  57284. int nIndex; // 模块索引, 只读
  57285. EM_WIRELESS_APN_TYPE emAPN; // 接入网络, 当为自定义时,使用szAPNName字符串透传
  57286. char szAPNName[32]; // 接入网络名称
  57287. EM_WIRELESS_AUTH_MODE emAuthMode; // 鉴权模式
  57288. char szUserName[64]; // 用户名
  57289. char szPassword[64]; // 密码
  57290. EM_OPERATOR_SELECTION_MODE emOprMode; // 运营商选择模式
  57291. EM_OPERATOR_MSG_FORMAT emOprFormat; // 运营商网络信息格式
  57292. char szOperInfo[32]; // 运营商网络信息,需要向sim卡提供方获取
  57293. EM_ACCESS_TECHNOLOGY emAccessTechnology; // 选择的接入技术
  57294. BYTE byReserved[64]; // 保留字节
  57295. }NET_WIRELESS_EXPERT;
  57296. ///@brief 蜂窝网络连接高级设置
  57297. typedef struct tagNET_NETAPP_WIRELESS_EXPERT
  57298. {
  57299. DWORD dwSize;
  57300. NET_WIRELESS_EXPERT stuExpert[4]; // 具体配置信息 4个SIM卡 每个元素对应一张SIM卡
  57301. }NET_NETAPP_WIRELESS_EXPERT;
  57302. ///@brief 铁路记录信息
  57303. typedef struct tagNET_DEV_CAR_COACH_INFO
  57304. {
  57305. DWORD dwSize;
  57306. char szCarNo[MAX_CARNO_LEN]; // 车辆号
  57307. char szCoachNo[MAX_COACHNO_LEN]; // 车厢号
  57308. }NET_DEV_CAR_COACH_INFO;
  57309. ///@brief 抓图流编码格式参照格式
  57310. typedef enum tagEM_MEDIA_GLOBAL_SNAP_FORMAT_AS
  57311. {
  57312. EM_MEDIA_GLOBAL_SNAP_FORMAT_AS_UNKNOWN,
  57313. EM_MEDIA_GLOBAL_SNAP_FORMAT_AS_MAIN_FORMAT, // 参照主码流
  57314. EM_MEDIA_GLOBAL_SNAP_FORMAT_AS_EXTRA_FORMAT, // 参照辅码流1
  57315. EM_MEDIA_GLOBAL_SNAP_FORMAT_AS_EXTRA2_FORMAT, // 参照辅码流2
  57316. EM_MEDIA_GLOBAL_SNAP_FORMAT_AS_EXTRA3_FORMAT, // 参照辅码流3
  57317. }EM_MEDIA_GLOBAL_SNAP_FORMAT_AS;
  57318. ///@brief 媒体组件全局配置
  57319. typedef struct tagNET_MEDIA_GLOBAL_INFO
  57320. {
  57321. DWORD dwSize;
  57322. int nPacketType; // 0:按时间,1:按大小
  57323. BYTE byPacketLength; // 录像打包时间长度,单位分钟。1-255
  57324. BYTE byAlign[3]; // 对齐
  57325. DWORD dwPacketSize; // 录像打包文件长度,单位KB
  57326. BOOL bLogRecord; // 是否记录录像日志
  57327. BOOL bLogEncode; // 是否记录编码异常日志
  57328. EM_MEDIA_GLOBAL_SNAP_FORMAT_AS emSnapFormatAs; // 抓图流编码格式参照格式;设备不支持独立配置抓图流分辨率格式时,抓图格式根据参照格式设置
  57329. }NET_MEDIA_GLOBAL_INFO;
  57330. ///@brief 车位设置(专有车位和普通车位设置) 对应 NET_EM_CFG_PARKINGSPACECELL_STATUS
  57331. ///@brief 注:数组最大16, 实际返回有效配置,请查看接口(NET_CONFIG_RETURN_INFO*)reserve参数
  57332. typedef struct tagNET_PARKINGSPACECELL_STATUS_INFO
  57333. {
  57334. DWORD dwSize;
  57335. int nCellNumber; // 车位号
  57336. UINT nCellType; // 车位类型, -1:无效, 0:普通车位 1:专有车位 2:充电车位
  57337. } NET_PARKINGSPACECELL_STATUS_INFO;
  57338. ///@brief 车位灯色
  57339. typedef struct tagNET_PARKINGSPACELIGHT_INFO
  57340. {
  57341. int nRed; // 红灯: -1:无效, 0/灭, 1/亮, 2/闪烁
  57342. int nYellow; // 黄灯: -1:无效, 0/灭, 1/亮, 2/闪烁
  57343. int nBlue; // 蓝灯: -1:无效, 0/灭, 1/亮, 2/闪烁
  57344. int nGreen; // 绿灯: -1:无效, 0/灭, 1/亮, 2/闪烁
  57345. int nPurple; // 紫灯: -1:无效, 0/灭, 1/亮, 2/闪烁
  57346. int nWhite; // 白灯: -1:无效, 0/灭, 1/亮, 2/闪烁
  57347. int nPink; // 粉等: -1:无效, 0/灭, 1/亮, 2/闪烁
  57348. BYTE byReserved[32]; // 保留字节
  57349. } NET_PARKINGSPACELIGHT_INFO;
  57350. ///@brief 网络异常状态灯色
  57351. typedef struct tagNET_NETWORK_EXCEPTION_INFO
  57352. {
  57353. NET_PARKINGSPACELIGHT_INFO stNetPortAbortInfo[MAX_NETPORT_NUM]; // 网口断开状态灯色
  57354. int nRetNetPortAbortNum; // 实际返回的个数
  57355. NET_PARKINGSPACELIGHT_INFO stuSpaceSpecialInfo; // 车位专用状态灯色
  57356. NET_PARKINGSPACELIGHT_INFO stuSpaceChargingInfo; // 充电车位状态灯色
  57357. BYTE byReserved[256]; // 保留字节
  57358. } NET_NETWORK_EXCEPTION_INFO;
  57359. ///@brief 车位状态对应的车位指示灯色 对应 NET_EM_CFG_PARKINGSPACELIGHT_STATE
  57360. typedef struct tagNET_PARKINGSPACELIGHT_STATE_INFO
  57361. {
  57362. DWORD dwSize;
  57363. NET_PARKINGSPACELIGHT_INFO stuSpaceFreeInfo; // 车位空闲状态灯色
  57364. NET_PARKINGSPACELIGHT_INFO stuSpaceFullInfo; // 车位占满状态灯色
  57365. NET_PARKINGSPACELIGHT_INFO stuSpaceOverLineInfo; // 车位压线状态灯色
  57366. NET_PARKINGSPACELIGHT_INFO stuSpaceOrderInfo; // 车位预定状态灯色
  57367. NET_NETWORK_EXCEPTION_INFO stuNetWorkExceptionInfo; // 网络异常状态灯色
  57368. } NET_PARKINGSPACELIGHT_STATE_INFO;
  57369. ///@brief NAS Protocol 类型
  57370. typedef enum __EM_NAS_PROTOCOL
  57371. {
  57372. NAS_PROTOCOL_UNKNOW = 0,
  57373. NAS_PROTOCOL_FTP, // FTP
  57374. NAS_PROTOCOL_SMB, // SMB
  57375. NAS_PROTOCOL_NFS, // NFS
  57376. NAS_PROTOCOL_ISCSI, // ISCSI
  57377. NAS_PROTOCOL_CLOUD, // CLOUD
  57378. }EM_NAS_PROTOCOL;
  57379. ///@brief NAS 配置信息
  57380. typedef struct tagNET_NAS_INFO
  57381. {
  57382. DWORD dwSize;
  57383. BOOL bEnable; // 是否启用
  57384. char szName[MAX_COMMON_STRING_128]; // 名称
  57385. char szHostIp[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // IP地址或网络名
  57386. WORD wHostPort; // 主机端口
  57387. char reserved[2]; // 保留字段
  57388. char szDirName[DH_FTP_MAX_PATH]; // FTP目录路径
  57389. char szUserName[DH_FTP_USERNAME_LEN]; // 用户名
  57390. char szPassword[DH_FTP_PASSWORD_LEN]; // 密码
  57391. int nInterval; // 相邻文件时间间隔(1~600),单位秒
  57392. BOOL bAnonymity; // 匿名使能,匿名使能(Protocol为FTP时有效)
  57393. EM_NAS_PROTOCOL emProtocol; // 协议类型
  57394. }NET_NAS_INFO;
  57395. ///@brief PPPoE配置信息
  57396. typedef struct tagNET_PPPOE_INFO
  57397. {
  57398. DWORD dwSize;
  57399. BOOL bEnable; // 是否使能
  57400. char szUserName[MAX_USER_NAME_LEN]; // 用户名
  57401. char szPasswd[MAX_PWD_LEN]; // 密码
  57402. }NET_PPPOE_INFO;
  57403. ///@brief Email配置信息
  57404. typedef struct tagNET_EMAIL_INFO
  57405. {
  57406. DWORD dwSize;
  57407. BOOL bEnable; // 使能0:false, 1:true
  57408. char szMailIPAddr[DH_MAX_DOMAIN_NAME_LEN]; // 邮件服务器地址(IP或者域名)
  57409. WORD wMailPort; // 邮件服务器端口
  57410. char reserved[2]; // 保留字段
  57411. char szSenderAddr[DH_MAX_MAIL_ADDR_LEN]; // 发送地址
  57412. char szUserName[DH_MAX_MAIL_NAME_LEN]; // 用户名
  57413. char szUserPsw[DH_MAX_MAIL_NAME_LEN]; // 用户密码
  57414. char szDestAddr[DH_MAX_MAIL_ADDR_LEN]; // 目的地址
  57415. char szSubject[DH_MAX_MAIL_SUBJECT_LEN]; // 标题
  57416. char *szReceivers[DH_MAX_MAIL_ADDR_LEN]; // 收件人列表,用户分配内存
  57417. unsigned int nReceiversNum; // 收件人数量
  57418. unsigned int nReceiversNumRet; // 设备返回的收件人数量
  57419. BOOL bSSLEnable; // SSL使能
  57420. BOOL bTLSEnable; // TLS使能
  57421. WORD wSendInterval; // 发送时间间隔,[0,3600]秒
  57422. BYTE bAnonymous; // 匿名选项[0,1], 0表示FALSE,1表示TRUE.
  57423. BYTE bAttachEnable; // 附件使能[0,1], 0表示FALSE,1表示TRUE.
  57424. BOOL bHealthReport; // 健康邮件使能
  57425. int nHealthReportInterval; // 健康邮件间隔
  57426. }NET_EMAIL_INFO;
  57427. ///@brief DDNS配置信息
  57428. typedef struct tagNET_DDNS_INFO
  57429. {
  57430. DWORD dwSize;
  57431. DWORD dwDdnsServerNum; // DDNS 服务器数量
  57432. DH_DDNS_SERVER_CFG stuDdnsServer[DH_MAX_DDNS_NUM];
  57433. }NET_DDNS_INFO;
  57434. ///@brief 协议管理配置信息列表
  57435. typedef struct tagNET_PROTOCOLS_MANAGER
  57436. {
  57437. char szDesc[DH_COMMON_STRING_128]; // 协议描述,如:烟感探测器_DI_SMK
  57438. BOOL bEnable; // 使能标志
  57439. char szProtocol[DH_COMMON_STRING_128]; // 协议名称,如:DI_SMK
  57440. char szShowType[DH_COMMON_STRING_128]; // 协议类型,如:SmokingSensor
  57441. BYTE byReserved[256]; // 保留字节
  57442. }NET_PROTOCOLS_MANAGER;
  57443. ///@brief 协议管理配置信息
  57444. typedef struct tagNET_SCADA_PROTOCOLS_MANAGER
  57445. {
  57446. DWORD dwSize;
  57447. NET_PROTOCOLS_MANAGER* pstProtocolsManager; // 协议管理配置信息
  57448. int nProtocolsManagerNum; // 协议管理配置信息个数
  57449. int nRetProtocolsManagerNum; // 实际返回的协议管理配置信息个数
  57450. // 如果第一次获取所有协议管理配置时,nRetProtocolsManagerNum大于nProtocolsManagerNum
  57451. // 那么在下一次获取所有协议管理配置时,nProtocolsManagerNum的值建议取nRetProtocolsManagerNum
  57452. }NET_SCADA_PROTOCOLS_MANAGER;
  57453. ///@brief 设备信息配置列表
  57454. typedef struct tagNET_DEVICEIDSETS
  57455. {
  57456. char szDevName[DH_COMMON_STRING_32]; // 设备名称
  57457. char szDevType[DH_COMMON_STRING_32]; // 设备类型
  57458. char szNewDeviceId[DH_COMMON_STRING_32]; // 用户配置资产编码,szNewDeviceId实际大小要与szOldDeviceId的实际大小相同
  57459. char szOldDeviceId[DH_COMMON_STRING_32]; // 默认资产编码
  57460. BYTE byReserved[128]; // 保留字节
  57461. }NET_DEVICEIDSETS;
  57462. ///@brief 设备信息配置
  57463. typedef struct tagNET_SCADA_DEVICEINFO_CFG
  57464. {
  57465. DWORD dwSize;
  57466. char szCity[DH_COMMON_STRING_32]; // 所在城市
  57467. char szProvince[DH_COMMON_STRING_32]; // 所在省份
  57468. int nStation; // 基站类型
  57469. NET_DEVICEIDSETS* pstDeviceIdSets; // 接入设备信息
  57470. int nDeviceIdSetsNum; // 接入设备个数
  57471. int nRetDeviceIdSetsNum; // 返回的接入设备个数
  57472. }NET_SCADA_DEVICEINFO_CFG;
  57473. ///@brief 控制器配置信息
  57474. typedef struct tagNET_SCADA_CONTROLLER_SITE_INFO
  57475. {
  57476. char szIPAddress[64]; // IP地址
  57477. char szDevName[64]; // 设备名称
  57478. UINT nPort; // 端口
  57479. char szDeviceID[32]; // 设备ID.仅读不可修改,控制器唯一标识
  57480. BYTE bReserved[128]; // 保留字节
  57481. }NET_SCADA_CONTROLLER_SITE_INFO;
  57482. ///@brief 控制器配置信息
  57483. typedef struct tagNET_CFG_SCADA_CONTROLLER_SITE_INFO
  57484. {
  57485. DWORD dwSize; // 结构体大小
  57486. int nControllerNum; // 控制器个数
  57487. NET_SCADA_CONTROLLER_SITE_INFO stuControllerInfo[128]; // 控制器信息
  57488. }NET_CFG_SCADA_CONTROLLER_SITE_INFO;
  57489. ///@brief 链路层VPN类型
  57490. typedef enum tagNET_EM_LINK_LAYER_VPN_TYPE
  57491. {
  57492. NET_EM_TYPE_UNKNOWN = 0, // 未知类型
  57493. NET_EM_TYPE_PPTP, // PPTP类型的链路层VPN
  57494. NET_EM_TYPE_L2TP, // L2TP类型的链路层VPN
  57495. }NET_EM_LINK_LAYER_VPN_TYPE;
  57496. ///@brief 链路层VPN配置列表
  57497. typedef struct tagNET_NETAPP_LINK_LAYER_VPN
  57498. {
  57499. char szName[MAX_LINK_NAME_LEN]; // 连接名称
  57500. NET_EM_LINK_LAYER_VPN_TYPE emLinkLayerVPNType; // 链路层VPN类型
  57501. BOOL bEnable; // 使能开关
  57502. char szAddress[MAX_SERVER_ADDRESS_LEN]; // 服务器IP
  57503. char szUserName[MAX_USER_NAME_LEN]; // 用户名
  57504. char szPassword[MAX_PWD_LEN]; // 密码
  57505. BYTE byReserved[1024]; // 保留字节
  57506. }NET_NETAPP_LINK_LAYER_VPN;
  57507. ///@brief 链路层VPN设置
  57508. typedef struct tagNET_NETAPP_LINK_LAYER_VPN_CFG
  57509. {
  57510. DWORD dwSize;
  57511. int nRetLinkLayerVPNNum; //返回的链路层VPN配置个数
  57512. NET_NETAPP_LINK_LAYER_VPN stLinkLayerVPN[LINK_LAYER_VPN_NUM]; //链路层VPN设置数组
  57513. }NET_NETAPP_LINK_LAYER_VPN_CFG;
  57514. ///@brief ssh服务端配置
  57515. typedef struct tagNET_NETAPP_SSHD_CFG
  57516. {
  57517. DWORD dwSize; // 结构体大小
  57518. BOOL bEnable; // 是否开启sshd监听服务
  57519. } NET_NETAPP_SSHD_CFG;
  57520. ///@brief 联系人信息
  57521. typedef struct tagNET_MEMBERS_INFO
  57522. {
  57523. char szName[MAX_COMMON_STRING_32]; // 联系人姓名
  57524. char szMobile[MAX_COMMON_STRING_16]; // 设备描述
  57525. char szEmail[MAX_COMMON_STRING_32]; // 电子邮箱
  57526. char szOrganization[MAX_COMMON_STRING_64]; // 组织
  57527. }NET_MEMBERS_INFO;
  57528. ///@brief 通知类型
  57529. typedef enum tagNET_NOTIFY_TYPE
  57530. {
  57531. NET_NOTIFY_TYPE_UNKNOWN, // 未知
  57532. NET_NOTIFY_TYPE_SMS, // 短信
  57533. NET_NOTIFY_TYPE_CALL, // 电话
  57534. NET_NOTIFY_TYPE_ALL, // 短信&电话
  57535. }NET_NOTIFY_TYPE;
  57536. ///@brief 用户组关联通知信息
  57537. typedef struct tagNET_NOTIFY_INFO
  57538. {
  57539. NET_NOTIFY_TYPE emType; // 通知类型
  57540. BOOL bAlarmEvents; // 是否接受报警事件的推送
  57541. BOOL bSystemEvents; // 是否接受故障事件的推送
  57542. BOOL bOperationEvents; // 是否接受操作事件的推送
  57543. }NET_NOTIFY_INFO;
  57544. ///@brief 通讯录配置列表
  57545. typedef struct tagNET_NETAPP_COMMUNICATION_LIST
  57546. {
  57547. char szGroupName[MAX_COMMON_STRING_16]; // 自定义组名,不可重复命名
  57548. int nMembersNum; // 联系人个数
  57549. NET_MEMBERS_INFO arrMembers[32]; // 联系人信息
  57550. NET_NOTIFY_INFO stuNotifyInfo; // 用户组关联通知信息
  57551. }NET_NETAPP_COMMUNICATION_LIST;
  57552. ///@brief 通讯录配置
  57553. typedef struct tagNET_NETAPP_COMMUNICATION_LIST_CFG
  57554. {
  57555. DWORD dwSize; // 结构体大小
  57556. int nConmmunicationListNum; // 实际的通讯录配置个数
  57557. NET_NETAPP_COMMUNICATION_LIST stuCommunication[10]; // 通讯录配置数组
  57558. }NET_NETAPP_COMMUNICATION_LIST_CFG;
  57559. ///@brief Web服务器设置
  57560. typedef struct tagNET_NETAPP_WEB_CFG
  57561. {
  57562. DWORD dwSize; // 结构体大小
  57563. BOOL bEnable; // 使能开关
  57564. UINT nPort; // 端口号
  57565. }NET_NETAPP_WEB_CFG;
  57566. ///@brief 中国铁塔平台接入配置
  57567. typedef struct tagNET_VSP_CHINA_TOWER
  57568. {
  57569. DWORD dwSize;
  57570. BOOL bEnable; // 接入使能,TRUE为开启,FALSE为关闭
  57571. char szServerIP[MAX_SERVER_IP_LEN]; // 服务器IP
  57572. int nServerPort; // 服务器端口,取值范围0~65535
  57573. int nLoginInterval; // 注册时间间隔,单位为秒,取值范围60~180
  57574. }NET_VSP_CHINA_TOWER;
  57575. ///@brief 中国电信手机看店
  57576. typedef struct tagNET_VSP_SHDXJT
  57577. {
  57578. DWORD dwSize;
  57579. BOOL bEnable; // 接入使能,TRUE为开启,FALSE为关闭
  57580. char szRegisterUrl[128]; // 注册请求的URL地址
  57581. char szDeviceID[32]; // 设备唯一识别码,由平台统一分配管理
  57582. char szDeviceKey[32]; // 设备合法性验证码,由平台统一分配管理
  57583. int nEStoreFlag; // 云存储功能标识, 0:不支持,1:支持
  57584. BYTE byReserve[4]; // 保留字节,用于字节对齐
  57585. }NET_VSP_SHDXJT;
  57586. ///@brief 消费机配置
  57587. typedef struct tagNET_CFG_VSP_CONSUME
  57588. {
  57589. DWORD dwSize; // 结构体大小
  57590. UINT nTotalNumber; // 消费总人数
  57591. }NET_CFG_VSP_CONSUME;
  57592. ///@brief 视频对讲电话通用配置(对应NET_EM_CFG_VTH_PASSWORD)
  57593. typedef struct tagNET_CFG_VTH_PASSWORD_INFO
  57594. {
  57595. DWORD dwSize;
  57596. char szUser[8]; // 用户密码,必须为6位的数字
  57597. }NET_CFG_VTH_PASSWORD_INFO;
  57598. ///@brief sip注册服务器信息
  57599. typedef struct tagNET_CFG_SIPSERVER_INFO
  57600. {
  57601. DWORD dwSize;
  57602. char szAccoutName[MAX_COMMON_STRING_64]; // 账户名称
  57603. char szAddres[DH_MAX_IPADDR_EX_LEN]; // sip服务器地址
  57604. int nPort; // sip服务器端口号
  57605. char szProxyAdress[DH_MAX_IPADDR_EX_LEN]; // 代理服务器地址
  57606. char szProxyID[MAX_COMMON_STRING_64]; // 代理服务器ID
  57607. int nProxyPort; // 代理服务器端口号
  57608. char szUserID[MAX_COMMON_STRING_64]; // 用户ID,一般是电话号码
  57609. int nUserType; // 用户类型。0:SIP客户端,2:门口机做服务器,3:VTNC做服务器
  57610. char szAuthID[MAX_USER_NAME_LEN]; // 身份鉴别ID
  57611. char szAuthPassword[MAX_PWD_LEN]; // 身份鉴别密码
  57612. char szSTUNServer[DH_MAX_IPADDR_EX_LEN]; // UDP数据报简单穿越网络地址转换器服务器
  57613. char szRegisterRealm[MAX_COMMON_STRING_64]; // 注册域
  57614. int nRegExpiration; // 注册间隔时间,单位:秒
  57615. int nSipPort; // 本地Sip端口
  57616. int nRTPPort; // 本地RTP端口
  57617. BOOL bUnregisterOnReboot; // 重启删除注册信息使能
  57618. char szDefaultCallNumber[MAX_COMMON_STRING_64]; // 默认呼叫号码
  57619. UINT nVideoStreamType; // 视频码流,码流类型,0:主码流;1:辅码流1;2:辅码流2;3:辅码流3;
  57620. UINT nAudioStreamType; // 音频码流,码流类型,0:主码流;1:辅码流1;2:辅码流2;3:辅码流3;
  57621. BOOL bRouteEnable; // 是否开启Sip跨路由功能
  57622. int nRouteCount; // 路由器数量
  57623. char szRouteAddress[DH_MAX_IPADDR_EX_LEN][MAX_ROUTE_NUM]; // 路由地址
  57624. char szSIPServerLoginUserName[MAX_USER_NAME_LEN];// 登陆VTNC的用户名
  57625. char szSIPServerLoginPWD[MAX_PWD_LEN]; // 登录VTNC的密码
  57626. BOOL bMainVTO; // 是否是备用服务器使能
  57627. char szRedundancyServer[DH_MAX_IPADDR_EX_LEN]; // 备用sip服务器地址
  57628. char szRedundancyUserName[MAX_USER_NAME_LEN]; // 备用服务器登陆用户名
  57629. char szRedundancyPassword[MAX_PWD_LEN]; // 备用服务器登陆密码
  57630. char szAnalogNumberStart[MAX_COMMON_STRING_64]; // 模拟系统中支持的模拟室内机起始号码
  57631. char szAnalogNumberEnd[MAX_COMMON_STRING_64]; // 模拟系统中支持的模拟室内机结束号码
  57632. BOOL bUserEnable; // 注册使能
  57633. }NET_CFG_SIPSERVER_INFO;
  57634. ///@brief 从门口机配置
  57635. typedef struct tagNET_DEVICE_LOGIN_INFO
  57636. {
  57637. char szAddress[DH_MAX_IPADDR_EX_LEN]; // IP地址
  57638. char szLongNumber[MAX_COMMON_STRING_16]; // 长号
  57639. char szUsername[MAX_COMMON_STRING_16]; // 用户名
  57640. char szPassword[MAX_COMMON_STRING_16]; // 密码
  57641. BYTE byReserved[512]; // 保留字节
  57642. } NET_DEVICE_LOGIN_INFO;
  57643. ///@brief 主门口机登陆从门口机配置
  57644. typedef struct tagNET_CFG_DEVICE_LOGIN_INFO
  57645. {
  57646. DWORD dwSize;
  57647. int nCount; // 从门口机配置个数
  57648. NET_DEVICE_LOGIN_INFO stDeviceLoginInfo[32]; // 从门口机配置
  57649. } NET_CFG_DEVICE_LOGIN_INFO;
  57650. ///@brief 镜头前遮挡盖配置(对应NET_EM_CFG_AELENSMASK)
  57651. typedef struct tagNET_CFG_AELENSMASK_INFO
  57652. {
  57653. DWORD dwSize;
  57654. BOOL bEnable; // 使能项(true时才支持遮挡盖的开和关操作)
  57655. char szName[MAX_COMMON_STRING_128]; // 自定义名字
  57656. BOOL bStatus; // 开关状态true:表示打开遮挡盖false:遮挡盖遮住镜头
  57657. }NET_CFG_AELENSMASK_INFO;
  57658. ///@brief 单个超声波配置
  57659. typedef struct tagNET_CFG_SINGLE_ULTRASONIC
  57660. {
  57661. BOOL bEnable; //是否开启超声波使能
  57662. UINT nFreq; //超声波探头频率,单位hz
  57663. int nBurst; //探测一次发出的脉冲个数
  57664. int nGain; //超声波探头增益范围[0,100]
  57665. int nDriveCurrent; //超声波探头驱动电流,单位mA
  57666. int nMinValidDistance; //超声波信号最小值单位cm
  57667. int nMaxValidDistance; //超声波信号最大值单位cm,表示过滤大于最大或者小于最小的物体
  57668. int nMinVaildSignalIntensity; //最小超声波强度 在最小和最大之间的信号有效
  57669. int nMaxVaildSignalIntensity; //最大超声波强度
  57670. BYTE byReserved[512]; //保留字节
  57671. }NET_CFG_SINGLE_ULTRASONIC;
  57672. ///@brief 超声波信息
  57673. typedef struct tagNET_CFG_ULTRASONIC_INFO
  57674. {
  57675. DWORD dwSize;
  57676. int nMaxCount; //最大超声波配置个数
  57677. int nRetCount; //返回的超声波配置个数
  57678. NET_CFG_SINGLE_ULTRASONIC *pstuULTRASONIC; //超声波配置信息,由用户申请释放
  57679. }NET_CFG_ULTRASONIC_INFO;
  57680. ///@brief 门禁卡预欠费配置
  57681. typedef struct tagNET_CFG_ACCESS_DELAYSTRATEGY
  57682. {
  57683. DWORD dwSize;
  57684. BOOL bEnable; // 是否启用
  57685. int nPreArrearsTerm; // 预欠费期限,单位:天
  57686. int nArrearsTerm; // 欠费期限,单位:天
  57687. }NET_CFG_ACCESS_DELAYSTRATEGY;
  57688. ///@brief 服务器类型
  57689. typedef enum tagNET_EM_REGISTAR_SERVER_TYPE
  57690. {
  57691. NET_EM_REGISTAR_SERVER_TYPE_UNKNOWN,
  57692. NET_EM_REGISTAR_SERVER_TYPE_VTO,
  57693. NET_EM_REGISTAR_SERVER_TYPE_H500,
  57694. NET_EM_REGISTAR_SERVER_TYPE_VTNC,
  57695. NET_EM_REGISTAR_SERVER_TYPE_ZYCOO,
  57696. NET_EM_REGISTAR_SERVER_TYPE_THIRDPARTY,
  57697. NET_EM_REGISTAR_SERVER_TYPE_3CXSYSTEM,
  57698. NET_EM_REGISTAR_SERVER_TYPE_ASTERISK,
  57699. }NET_EM_REGISTAR_SERVER_TYPE;
  57700. ///@brief 注册服务器配置信息
  57701. typedef struct tagNET_CFG_REGISTAR_INFO
  57702. {
  57703. DWORD dwSize;
  57704. char szRegistarName[MAX_COMMON_STRING_64]; // 注册服务器名称,唯一
  57705. NET_EM_REGISTAR_SERVER_TYPE emServerType; // 注册服务器类型
  57706. BOOL bRegistarEnable; // 是否注册
  57707. char szAddress[DH_MAX_IPADDR_EX_LEN]; // 注册地址
  57708. int nPort; // 注册端口
  57709. char szPassword[MAX_COMMON_STRING_64]; // 注册密码
  57710. }NET_CFG_REGISTAR_INFO;
  57711. ///@brief 辅码流录像配置时间段
  57712. typedef struct tagNET_CFG_RECORDEXTRA_INFO
  57713. {
  57714. DWORD dwSize;
  57715. DH_TSECT stuTimeSection[DH_N_SCHEDULE_TSECT][DH_N_REC_TSECT]; // 第一维前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段
  57716. }NET_CFG_RECORDEXTRA_INFO;
  57717. #define NET_MAX_NUM_RECORDBACKUP_TASK 512 // 录像回传任务最大数量
  57718. #define NET_MAX_NUM_RECORDBACKUP_CHANNEL 128 // 录像回传通道的最大数量
  57719. ///@brief 录像回传任务
  57720. typedef struct tagNET_RECORDBACKUP_TASK
  57721. {
  57722. int nNumChannel; // 通道数量
  57723. int nChannel[NET_MAX_NUM_RECORDBACKUP_CHANNEL];// 通道号列表
  57724. NET_TIME_EX stuStartTime; // 开始时间
  57725. NET_TIME_EX stuEndTime; // 结束时间
  57726. char szStorageGroupName[DH_COMMON_STRING_32]; // 该通道录像要保存到的某盘组中。不存在此字段,由设备默认实现决定
  57727. //"ReadWrite*",代表读写组,中间的"*"可以为空,可以为一个数字
  57728. //"ReadOnly",代表只读组
  57729. //"Redundant",冗余组,设备内置磁盘,使用文件系统.和"ReadWirte"组一个冗余副本
  57730. //"NASFTP-" 或 "NASNFS-" 或 "NASSMB-" 或 "NASISCSI-" 或 "NASCloud-"
  57731. //"Backup":备份组,设备外接的磁盘或U盘,使用标准文件系统.数据写满后停止,不会循环覆盖
  57732. //"DrawFrame":历史抽帧组,设备内置磁盘,使用文件系统.实时录像在指定时间后,抽帧并写入该组
  57733. BYTE byReserved[512]; // 保留字节
  57734. }NET_RECORDBACKUP_TASK;
  57735. ///@brief 自动录像回传配置(NET_EM_CFG_AUTO_RECORDBACKUP_RESTORE)
  57736. typedef struct tagNET_CFG_AUTORECORDBACKUPRESTORE_INFO
  57737. {
  57738. DWORD dwSize; // 结构体大小
  57739. BOOL bEnable; // 使能开关
  57740. UINT nSpeed; // 设置回传速度,单位:Kbps
  57741. NET_TIME_EX stuBackupTime; // 开始录像回传时间
  57742. int nNumTask; // 录像回传任务数量
  57743. NET_RECORDBACKUP_TASK stuTask[NET_MAX_NUM_RECORDBACKUP_TASK]; //录像回传任务
  57744. }NET_CFG_AUTORECORDBACKUPRESTORE_INFO;
  57745. ///@brief IPC智能抓拍策略
  57746. typedef enum tagEM_FACE_SNAP_POLICY
  57747. {
  57748. EM_FACE_SNAP_POLICY_UNKNOWN, // 未知
  57749. EM_FACE_SNAP_POLICY_REALTIME, // 实时抓拍模式(当前的通用模式,实时性优先)
  57750. EM_FACE_SNAP_POLICY_OPTIMAL, // 优选抓拍模式,在设定的延时区间(OptimalTime)内挑选评分最高的抓图,准确性优先但延时较大
  57751. EM_FACE_SNAP_POLICY_QUALITY, // 质量抓拍模式,在Optimal的基础上,如果图片质量好于阈值提前结束优选,提高实时性
  57752. EM_FACE_SNAP_POLICY_RECOGNITION, // 识别优先抓拍模式,在优选时间内,以一定间隔帧数多次进行比对;一旦比对成功则立即结束优选,以提高对比成功率,取代质量优先模式。
  57753. EM_FACE_SNAP_POLICY_QUICK, // 快速优选,从检测到开始,抓拍一定帧数内的质量最好的图片
  57754. EM_FACE_SNAP_POLICY_FULLTRACK, // 全程优选,抓拍全程质量最好的图片
  57755. EM_FACE_SNAP_POLICY_INTERVAL, // 间隔抓拍
  57756. EM_FACE_SNAP_POLICY_SINGLE, // 单人模式
  57757. EM_FACE_SNAP_POLICY_PRECISION, // 高精度模式,增强目标识别
  57758. }EM_FACE_SNAP_POLICY;
  57759. ///@brief IPC智能抓拍上报图策略
  57760. typedef enum tagEM_CUTOUT_POLICY
  57761. {
  57762. EM_CUTOUT_POLICY_UNKNOWN = -1, // 未知
  57763. EM_CUTOUT_POLICY_UNSUPPORT, // 不支持抠图
  57764. EM_CUTOUT_POLICY_ORIGINAL, // 上报照片原始大小
  57765. EM_CUTOUT_POLICY_HALF, // 半身照
  57766. EM_CUTOUT_POLICY_WHOLE, // 全身照
  57767. EM_CUTOUT_POLICY_CEPHALOTHORAX, // 头肩照
  57768. }EM_CUTOUT_POLICY;
  57769. ///@brief IPC智能抓拍配置
  57770. typedef struct tagNET_CFG_FACESNAPSHOT_INFO
  57771. {
  57772. DWORD dwSize; // 结构体大小
  57773. EM_FACE_SNAP_POLICY emSnapPolicy; // 抓拍策略
  57774. UINT nSnapFrames; // 抓拍帧数,用于快速抓拍模式,范围[10,1500],默认25帧
  57775. UINT nOptimalTime; // 优先最大延时,单位秒
  57776. // emSnapPolicy为EM_FACE_SNAP_POLICY_OPTIMAL或EM_FACE_SNAP_POLICY_QUALITY时有效
  57777. EM_CUTOUT_POLICY emCutoutPolicy; //
  57778. UINT nIntervalFrmCnt; // 识别优先抓拍间隔帧数 emSnapPolicy 为 EM_FACE_SNAP_POLICY_RECOGNITION 有效
  57779. UINT nOptimalInterval; // 优选抓拍间隔帧数 emSnapPolicy 为 EM_FACE_SNAP_POLICY_INTERVAL 有效
  57780. UINT nOptimalCount; // 优选抓拍次数,emSnapPolicy 为 EM_FACE_SNAP_POLICY_INTERVAL 有效
  57781. UINT nRecognizeTimeout; // 目标识别失败超时时间,单位秒
  57782. }NET_CFG_FACESNAPSHOT_INFO;
  57783. ///@brief 录像类型
  57784. typedef enum tagEM_RECORD_TYPE
  57785. {
  57786. EM_RECORD_TYPE_UNKNOWN, // 未知
  57787. EM_RECORD_TYPE_COMMON, // 普通录像
  57788. EM_RECORD_TYPE_ALARM2, // 报警录像
  57789. EM_RECORD_TYPE_MOTIONDETECT, // 动检录像
  57790. }EM_RECORD_TYPE;
  57791. ///@brief 备份任务
  57792. typedef struct tagNET_TIME_RECORDBACKUP_TASK
  57793. {
  57794. UINT nChannelCount; // 通道有效个数
  57795. UINT nChannels[512]; // 通道号
  57796. UINT nRemoteChannels[512]; // 远程通道号
  57797. char szDeviceIP[64]; // 备份录像源IP,如果为主动注册方式登录的内容为设备ID,例如" IPC9912"
  57798. UINT nPort; // 端口,如果为主动注册方式登录的内容为0,DeviceIP与Port需保持一致。
  57799. char szUserName[64]; // 用户名
  57800. char szPassword[64]; // 密码
  57801. NET_TIME_EX1 stuStartTime; // 开始时间
  57802. NET_TIME_EX1 stuEndTime; // 结束时间
  57803. char szStorageGroupName[32]; // 保存的盘组名称
  57804. EM_RECORD_TYPE emRecordType; // 录像类型,不填为普通录像
  57805. NET_STREAM_TYPE emStreamType; // 码流类型,不填为主码流
  57806. BYTE byReserved[504]; // 保留字段
  57807. }NET_TIME_RECORDBACKUP_TASK;
  57808. ///@brief 备份任务处理时间
  57809. typedef struct tagNET_RECORDBACKUP_PROCESSTIME
  57810. {
  57811. NET_TIME_EX1 stuStartTime; // 开始时间
  57812. NET_TIME_EX1 stuEndTime; // 结束时间
  57813. BYTE bReserved[64]; // 保留字段
  57814. }NET_RECORDBACKUP_PROCESSTIME;
  57815. ///@brief 录像定时自动备份配置
  57816. typedef struct tagNET_CFG_TIME_RECORDBACKUP_RESTORE_INFO
  57817. {
  57818. DWORD dwSize; // 结构体大小
  57819. BOOL bEnable; // 使能开关,未使能,全天可备份
  57820. int nProcessTimeCount; // 备份任务处理时间有效个数
  57821. NET_RECORDBACKUP_PROCESSTIME stuProcessTime[4]; // 备份任务处理时间
  57822. int nTaskCount; // 任务有效个数
  57823. NET_TIME_RECORDBACKUP_TASK stuTask[512]; // 任务信息, 最大支持512个;
  57824. }NET_CFG_TIME_RECORDBACKUP_RESTORE_INFO;
  57825. ///@brief 设备下载速度
  57826. typedef enum tagNET_EM_DOWNLOAD_SPEED
  57827. {
  57828. NET_EM_DOWNLOAD_SPEED_UNKNOWN = -1, // 未知
  57829. NET_EM_DOWNLOAD_SPEED_ZERO = 0, // 无限制
  57830. NET_EM_DOWNLOAD_SPEED_1024 = 1024, // 1024bps
  57831. NET_EM_DOWNLOAD_SPEED_2048 = 2048, // 2048bps
  57832. NET_EM_DOWNLOAD_SPEED_3072 = 3072, // 3072bps
  57833. NET_EM_DOWNLOAD_SPEED_4096 = 4096, // 4096bps
  57834. NET_EM_DOWNLOAD_SPEED_8192 = 8192, // 8192bps
  57835. } NET_EM_DOWNLOAD_SPEED;
  57836. ///@brief 设备下载速度配置
  57837. typedef struct tagNET_CFG_RECORD_DOWNLOAD_SPEED_ALL_INFO
  57838. {
  57839. DWORD dwSize; // 结构体大小
  57840. NET_EM_DOWNLOAD_SPEED emSpeed; // 设备下载速度
  57841. }NET_CFG_RECORD_DOWNLOAD_SPEED_ALL_INFO;
  57842. ///@brief 上报策略
  57843. typedef enum tagNET_EM_REPORT_POLICY
  57844. {
  57845. NET_EM_REPORT_POLICY_UNKNOWN,
  57846. NET_EM_REPORT_POLICY_AUTO, // 设备自动上报
  57847. NET_EM_REPORT_POLICY_TIMING, // 平台定时上报
  57848. }NET_EM_REPORT_POLICY;
  57849. ///@brief 设备自动上报信息
  57850. typedef struct tagNET_AUTO_REPORT_INFO
  57851. {
  57852. int nReportTime; // 上报时间间隔,单位:秒
  57853. int nReportDistance; // 上报距离,单位:米
  57854. int nInflectionPointAngle; // 拐点角度,单位:度
  57855. int nAccOffReportTime; // ACC关闭位置上报时间间隔,单位:秒
  57856. BYTE byReserved[1024]; // 保留字节
  57857. }NET_AUTO_REPORT_INFO;
  57858. ///@brief GPS位置上报策略信息(对应 NET_EM_CFG_POSITIONREPORTPOLICY)
  57859. typedef struct tagNET_CFG_POSITIONREPORTPOLICY_INFO
  57860. {
  57861. DWORD dwSize;
  57862. NET_EM_REPORT_POLICY emReportPolicy; // 上报策略,在设置该字段时,emReportPolicy不为NET_EM_REPORT_POLICY_UNKNOWN
  57863. NET_AUTO_REPORT_INFO stuAutoReportInfo; // 自动上报信息,此字段在emReportPolicy为NET_EM_REPORT_POLICY_AUTO时有效
  57864. }NET_CFG_POSITIONREPORTPOLICY_INFO;
  57865. ///@brief 运行模式参数
  57866. typedef struct tagNET_RUNMODE_PARAMS
  57867. {
  57868. DWORD dwSize;
  57869. //运行模式0:非内存池模式1:内存池模式
  57870. int nMode;
  57871. /*针对nWinConnectBufSize (windows) 每个连接接收数据缓冲大小(字节为单位),
  57872. * 为0表示维持原来的值,250*1024最佳,最小为128*1024 */
  57873. int nWinConnectBufSize;
  57874. /*针对nWinSocketRcvBuf (windows/linux), socket接收缓存大小(字节为单位),
  57875. * 为0表示维持原来的值,64*1024最佳,最小为36*1024 */
  57876. int nWinSocketRcvBuf;
  57877. }NET_RUNMODE_PARAMS;
  57878. ///@brief 自动布撤防时间段
  57879. typedef struct tagNET_CFG_ARMSCHEDULE_INFO
  57880. {
  57881. DWORD dwSize;
  57882. BOOL bEnable; // 配置使能
  57883. DH_TSECT stuTimeSection[DH_N_SCHEDULE_TSECT][DH_N_REC_TSECT]; // 第一维前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段
  57884. }NET_CFG_ARMSCHEDULE_INFO;
  57885. #define MAX_CID_NUM 100 // 标准CID协议最大个数
  57886. #define MAX_FTCID_NUM 100 // 4+2型CID协议最大个数
  57887. #define MAX_TEL_NUM 2 // 上报的报警中心下标最大个数
  57888. ///@brief 协议类型
  57889. typedef enum tagEM_CID_REPORT_PROTOCOL_TYPE
  57890. {
  57891. EM_CID_REPORT_PROTOCOL_TYPE_UNKNOWN, // 未知
  57892. EM_CID_REPORT_PROTOCOL_TYPE_CID, // 标准CID协议
  57893. EM_CID_REPORT_PROTOCOL_TYPE_FTCID, // 4+2型CID协议
  57894. }EM_CID_REPORT_PROTOCOL_TYPE;
  57895. ///@brief 标准CID协议事件类型
  57896. typedef enum tagEM_CID_EVENT_CODE
  57897. {
  57898. EM_CID_EVENT_CODE_UNKNOWN =-1, // -1 : 未知
  57899. EM_CID_EVENT_CODE_DEFENCE_GENERAL_ALARM, // 0 : 防区一般报警
  57900. EM_CID_EVENT_CODE_DEFENCE_PREVENT_MOVE_ALARM, // 1 : 防区防拆报警
  57901. EM_CID_EVENT_CODE_DEFENCE_FAULT_ALARM, // 2 : 防区故障报警
  57902. EM_CID_EVENT_CODE_DEFENCE_BYPASS, // 3 : 防区旁路
  57903. EM_CID_EVENT_CODE_RAPID_ARM, // 4 : 快速布防
  57904. EM_CID_EVENT_CODE_LOCK_ARM_DISARM, // 5 : 锁布撤防
  57905. EM_CID_EVENT_CODE_REMOTE_ARM_DISARM, // 6 : 远程布撤防
  57906. EM_CID_EVENT_CODE_TIME_ARM_DISARM, // 7 : 定时布撤防
  57907. EM_CID_EVENT_CODE_TELEOPERATION_ARM_DISARM, // 8 : 遥控布撤防
  57908. EM_CID_EVENT_CODE_USER_ARM_DISARM, // 9 : 用户布撤防
  57909. EM_CID_EVENT_CODE_PART_ARM_DISARM, // 10 : 局部布撤防
  57910. EM_CID_EVENT_CODE_HOST_PREVENT_MOVE, // 11 :主机防拆
  57911. EM_CID_EVENT_CODE_HOST_POWER_FAULT, // 12 :主机掉电
  57912. EM_CID_EVENT_CODE_BATTERY_LOW, // 13 :电池低压
  57913. EM_CID_EVENT_CODE_BATTERY_FAULT, // 14 :电池掉电
  57914. EM_CID_EVENT_CODE_TELEPHONE_DISCONNECTION, // 15 :电话线断线
  57915. EM_CID_EVENT_CODE_GSM_SIGNAl_BAD, // 16 :GSM信号差
  57916. EM_CID_EVENT_CODE_ALARM_PREVENT_MOVE, // 17 :警号防拆
  57917. EM_CID_EVENT_CODE_MODULE_COMMUNICATION_FAULT, // 18 :模块通信故障
  57918. EM_CID_EVENT_CODE_SYSTEM_TIME_ABNORMAl, // 19 :系统时间异常
  57919. EM_CID_EVENT_CODE_SIM_CAR_FAULT, // 20 :SIM卡故障
  57920. EM_CID_EVENT_CODE_NETWORK_COMMUNICATION_FAULT, // 21 :网络通信故障
  57921. EM_CID_EVENT_CODE_FIRE_ALARM, // 22 :火警
  57922. EM_CID_EVENT_CODE_ROBBER_ALARM, // 23 :匪警
  57923. EM_CID_EVENT_CODE_URGENT_MEDICAL_ALARM, // 24 :紧急医疗报警
  57924. EM_CID_EVENT_CODE_DURESS_ALARM, // 25 :胁迫报警
  57925. EM_CID_EVENT_CODE_PANIC_ALARM, // 26 :恐慌报警
  57926. EM_CID_EVENT_CODE_PERIOD_TEST_REPORT, // 27 :定期测试报告
  57927. EM_CID_EVENT_CODE_MANUAL_TEST_REPORT, // 28 :手动测试报告
  57928. EM_CID_EVENT_CODE_CLEAR_ALARM_CACHE, // 29 :清除报警缓存
  57929. EM_CID_EVENT_CODE_ALARM_CANCEL, // 30 :报警取消
  57930. EM_CID_EVENT_CODE_EMERGENCY_ALARM, // 31 :软防区紧急报警事件
  57931. EM_CID_EVENT_CODE_OUTSIDE_ZONE_ALARM, // 32 :外部(周界)防区报警
  57932. EM_CID_EVENT_CODE_INSIDE_ZONE_ALARM, // 33 :内部防区报警
  57933. EM_CID_EVENT_CODE_24H_ZONE_ALARM, // 34 :24H防区报警
  57934. EM_CID_EVENT_CODE_DELAY_ZONE_ALARM, // 35 :(出入口)延时防区报警
  57935. EM_CID_EVENT_CODE_INTIME_DOUBLEMETHOD_ZONE_ALARM, // 36 :即时防区+双鉴传感器,上报盗警
  57936. EM_CID_EVENT_CODE_24H_URGENCYBUTTON_ZONE_ALARM, // 37 :24H紧急按钮防区报警(防区类型:24H、传感器感应方式:紧急按钮)
  57937. EM_CID_EVENT_CODE_24H_FIRE_ZONE_ALARM, // 38 :24H火警防区报警
  57938. EM_CID_EVENT_CODE_24H_ROBBERY_ZONE_ALARM, // 39 :24H匪警防区报警
  57939. EM_CID_EVENT_CODE_24H_SILENT_ZONE_ALARM, // 40 :24H无声防区报警
  57940. EM_CID_EVENT_CODE_24H_SOUND_ZONE_ALARM, // 41 :24H有声防区报警
  57941. EM_CID_EVENT_CODE_24H_AUXILIARY_ZONE_ALARM, // 42 :24H辅助防区报警
  57942. EM_CID_EVENT_CODE_24H_VIBRATION_ZONE_ALARM, // 43 :24H震动防区报警
  57943. EM_CID_EVENT_CODE_TIMEOUT_ZONE_ALARM, // 44 :超时防区报警
  57944. EM_CID_EVENT_CODE_FOLLOW_ZONE_ALARM, // 45 :跟随防区报警
  57945. EM_CID_EVENT_CODE_EXMODULE_FAULT, // 46 :扩展模块故障
  57946. EM_CID_EVENT_CODE_EXMODULE_DC_LOSS, // 47 :扩展模块直流电掉电
  57947. EM_CID_EVENT_CODE_EXMODULE_LOW_BATTERY, // 48 :扩展模块电压低
  57948. EM_CID_EVENT_CODE_EXMODULE_TAMPER, // 49 :扩展模块防拆
  57949. EM_CID_EVENT_CODE_EXMODULE_AC_LOSS, // 50 :扩展模块交流电掉电
  57950. EM_CID_EVENT_CODE_PRINTER_FAILURE, // 51 :打印机掉线
  57951. EM_CID_EVENT_CODE_GSM_FAULT, // 51 :GSM模块故障
  57952. EM_CID_EVENT_CODE_ARMED_STAY, // 53 :留守布防
  57953. EM_CID_EVENT_CODE_AUTO_ARM_FAILED, // 54 :自动布防失败
  57954. EM_CID_EVENT_CODE_SYSTEM_TROUBLE_PRESENT, // 55 :系统故障保持
  57955. EM_CID_EVENT_CODE_PROGRAM_MODE_ENTRY, // 56 :进入编程模式
  57956. EM_CID_EVENT_CODE_PROGRAM_MODE_EXIT, // 57 :退出编程模式
  57957. EM_CID_EVENT_CODE_PANEL_PROGRAMMING_CHANGED, // 58 :主机编程被改动,此处特指SDK Demo的登录与退出
  57958. EM_CID_EVENT_CODE_KEYPAD_TAMPER_ALARM, // 59 :键盘防拆报警
  57959. EM_CID_EVENT_CODE_IP_CONFLICT, // 60 :IP冲突
  57960. }EM_CID_EVENT_CODE;
  57961. ///@brief 标准CID协议配置信息
  57962. typedef struct tagNET_CFG_CID_REPORT_CID_INFO
  57963. {
  57964. int nTelNum; // 上报的报警中心下标个数
  57965. int nTel[MAX_TEL_NUM]; // 上报的报警中心下标
  57966. EM_CID_EVENT_CODE emEventCode; // 事件类型
  57967. BOOL bEventRestore; // 是否支持事件恢复上报
  57968. char szContactId[4]; // 3位数字字符串事件码
  57969. BYTE bReserved[256]; // 保留字节
  57970. }NET_CFG_CID_REPORT_CID_INFO;
  57971. ///@brief 4+2型CID协议事件类型
  57972. typedef enum tagEM_FTCID_EVENT_CODE
  57973. {
  57974. EM_FTCID_EVENT_CODE_UNKNOWN =-1, // 未知
  57975. EM_FTCID_EVENT_CODE_DEFENCE_ALARM = 0, // 报警,0~15 : 防区1~16报警
  57976. EM_FTCID_EVENT_CODE_DEFENCE_ALARM_RESTORE = 16, // 报警恢复,16~31 : 防区1~16报警恢复
  57977. EM_FTCID_EVENT_CODE_DEFENCE_BYPASS = 32, // 旁路,32~47 : 防区1~16旁路
  57978. EM_FTCID_EVENT_CODE_DEFENCE_BYPASS_RESTORE = 48 , // 旁路恢复,48~63 : 防区1~16旁路恢复
  57979. EM_FTCID_EVENT_CODE_ARM = 64, // 64 : 布防
  57980. EM_FTCID_EVENT_CODE_DISARM = 65, // 65 : 撤防
  57981. EM_FTCID_EVENT_CODE_ALARM_CANCEL = 66, // 66 : 报警取消
  57982. EM_FTCID_EVENT_CODE_PERIOD_TEST_REPORT = 67, // 67 : 定期测试报告
  57983. EM_FTCID_EVENT_CODE_MANUAL_TEST_REPORT = 68, // 68 : 手动测试报告
  57984. EM_FTCID_EVENT_CODE_HOST_POWER_FAULT = 69, // 69 : 主机掉电
  57985. EM_FTCID_EVENT_CODE_HOST_POWER_FAULT_RESTORE = 70, // 70 : 主机掉电恢复
  57986. EM_FTCID_EVENT_CODE_BATTERY_LOW = 71, // 71 : 电池低压
  57987. EM_FTCID_EVENT_CODE_BATTERY_LOW_RESTORE = 72, // 72 : 电池低压恢复
  57988. EM_FTCID_EVENT_CODE_SOFT_KEYBOARD_REPORT_CODE = 73, // 73 : 软键盘报告码
  57989. }EM_FTCID_EVENT_CODE;
  57990. ///@brief 4+2型CID协议配置信息
  57991. typedef struct tagNET_CFG_CID_REPORT_FTCID_INFO
  57992. {
  57993. int nTelNum; // 上报的报警中心下标个数
  57994. int nTel[MAX_TEL_NUM]; // 上报的报警中心下标
  57995. EM_FTCID_EVENT_CODE emEventCode; // 事件类型
  57996. int nDefenceChannel; // 防区号,当事件类型为报警、报警恢复、旁路、旁路恢复时才有效
  57997. char szContactId[3]; // 2位数字字符串事件码
  57998. BYTE bReserved[257]; // 保留字节
  57999. }NET_CFG_CID_REPORT_FTCID_INFO;
  58000. ///@brief CID联动配置(对应NET_EM_CFG_CID_REPORT)
  58001. typedef struct tagNET_CFG_CID_REPORT_INFO
  58002. {
  58003. DWORD dwSize; // 结构体大小
  58004. EM_CID_REPORT_PROTOCOL_TYPE emProtocol; // 协议类型
  58005. int nCIDNum; // 标准CID协议个数
  58006. NET_CFG_CID_REPORT_CID_INFO stuCID[MAX_CID_NUM]; // 标准CID协议,当emProtocol为EM_CID_REPORT_PROTOCOL_TYPE_CID时有效
  58007. int nFTCIDNum; // 4+2型CID协议个数,当emProtocol为EM_CID_REPORT_PROTOCOL_TYPE_FTCID时有效
  58008. NET_CFG_CID_REPORT_FTCID_INFO stuFTCID[MAX_FTCID_NUM]; // 4+2型CID协议
  58009. }NET_CFG_CID_REPORT_INFO;
  58010. ///@brief 报警主机操作员配置信息
  58011. typedef struct tagNET_CFG_KBUSER_SERVER
  58012. {
  58013. int nUserCode; // 用户编号
  58014. char szPasswd[7]; // 键盘密码
  58015. BYTE bReserved[129]; // 保留字节
  58016. }NET_CFG_KBUSER_SERVER;
  58017. // 最多支持100个用户密码参数
  58018. #define MAX_KBUSER_SERVER_NUM 100
  58019. ///@brief 报警主机键盘密码配置(对应 NET_EM_CFG_KBUER_PASSWORD)
  58020. typedef struct tagNET_CFG_KBUSER_PASSWORD
  58021. {
  58022. DWORD dwSize; //结构体大小
  58023. int nServerNum; //操作员配置信息数量
  58024. NET_CFG_KBUSER_SERVER stuServers[MAX_KBUSER_SERVER_NUM]; //操作员配置信息
  58025. }NET_CFG_KBUSER_PASSWORD;
  58026. ///@brief 任务类型
  58027. typedef enum tagEM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE
  58028. {
  58029. EM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE_UNKNOWN, // 未知
  58030. EM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE_BY_TIMESECTION, // 基于TimeSection进行分析,分析时间根据TimeSection控制
  58031. EM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE_BY_CHANNELNUM, // 基于通道数量进行分析,任务下发立即执行,单次任务直至所有通道分析完毕才停止,IsCycle为true则开启下次分析,若无此字段默认基于TimeSection
  58032. } EM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE;
  58033. ///@brief 视频诊断任务
  58034. typedef struct tagNET_PROJECT_TASK
  58035. {
  58036. BOOL bEnable; // 任务是否使能
  58037. char szTaskName[MAX_PATH]; // 任务名称Ansi编码
  58038. DH_TSECT stuTimeSection[DH_N_WEEKS][DH_N_REC_TSECT]; // 任务时间段
  58039. BOOL bIsCycle; // 任务是否循环,TRUE表示循环,FALSE表示不循环
  58040. EM_VIDEODIAGNOSIS_PROJECT_TASK_TYPE emTaskType; // 任务类型
  58041. BOOL bIsRepeat; // 任务是否重复执行,(跨天/周是否重复执行)
  58042. int nCycleInterval; // 任务循环间隔,单位秒
  58043. BYTE byReserved[500]; // 保留字节
  58044. }NET_PROJECT_TASK;
  58045. ///@brief 视频诊断计划配置
  58046. typedef struct tagNET_VIDEODIAGNOSIS_PROJECT_INFO
  58047. {
  58048. DWORD dwSize;
  58049. char szProjectName[MAX_PATH]; // 计划名称
  58050. int nTotalTaskNum; // 调用者分配任务列表个数, 根据能力集获取
  58051. int nReturnTaskNum; // 返回实际任务列表个数
  58052. NET_PROJECT_TASK* pstProjectTasks; // 任务列表 , 调用者分配内存nTotalTaskNum个
  58053. } NET_VIDEODIAGNOSIS_PROJECT_INFO;
  58054. ///@brief 视频诊断任务
  58055. typedef struct tagNET_PROJECT_TASK_INFO
  58056. {
  58057. BOOL bEnable; // 任务是否使能
  58058. char szTaskName[260]; // 任务名称
  58059. DH_TSECT stuTimeSection[32][6]; // 按月的任务时间段,第一维里的前31个元素对应每月的日期,第32个元素为预留元素
  58060. BOOL bIsCycle; // 任务是否循环,TRUE表示循环,FALSE表示不循环
  58061. BYTE byReserved[512]; // 保留字节
  58062. }NET_PROJECT_TASK_INFO;
  58063. ///@brief 按月的视频诊断计划扩展配置信息,对应 NET_EM_CFG_VIDEO_DIAGNOSIS_PROJECT_MONTH
  58064. typedef struct tagNET_CFG_VIDEODIAGNOSIS_PROJECT_MONTH_INFO
  58065. {
  58066. DWORD dwSize; // 结构体大小
  58067. char szProjectName[260]; // 计划名称
  58068. int nTotalTaskNum; // 调用者分配任务列表个数, 根据能力集获取,最大不超过32
  58069. int nReturnTaskNum; // 返回实际任务列表个数
  58070. NET_PROJECT_TASK_INFO* pstProjectTasks; // 任务列表, 调用者分配内存nTotalTaskNum*sizeof(NET_PROJECT_TASK_INFO)个字节
  58071. }NET_CFG_VIDEODIAGNOSIS_PROJECT_MONTH_INFO;
  58072. ///@brief GPS搜星数OSD配置
  58073. typedef struct tagNET_CFG_GPSSTARNUM_OSD_INFO
  58074. {
  58075. DWORD dwSize;
  58076. BOOL bBDOSDEnable; // 是否叠加北斗卫星数
  58077. BOOL bGPSOSDEnable; // 是否叠加GPS卫星数
  58078. }NET_CFG_GPSSTARNUM_OSD_INFO;
  58079. ///@brief 图片标题
  58080. typedef struct tagNET_OSD_PICTURE_TITLE
  58081. {
  58082. DWORD dwSize;
  58083. NET_EM_OSD_BLEND_TYPE emOsdBlendType; // 叠加类型
  58084. BOOL bEncodeBlend; // 是否叠加
  58085. NET_COLOR_RGBA stuFrontColor; // 前景色
  58086. NET_COLOR_RGBA stuBackColor; // 背景色
  58087. NET_RECT stuRect; // 区域, 坐标取值0~8191
  58088. char szName[DH_COMMON_STRING_64]; // 图片名称
  58089. int nWidth; // 图片宽
  58090. int nHeight; // 图片高
  58091. }NET_OSD_PICTURE_TITLE;
  58092. ///@brief 预置点信息叠加 NET_EM_CFG_PTZ_PRESET
  58093. typedef struct tagNET_OSD_CFG_PTZ_PRESET
  58094. {
  58095. DWORD dwSize;
  58096. int nDisplayTime; // 显示时间,单位为秒,0 表示一直显示,自定义范围:1-3600
  58097. BOOL bEncodeBlend; // 叠加到主码流视频编码
  58098. BOOL bPreviewBlend; // 是否叠加到预览显示
  58099. NET_COLOR_RGBA stuFrontColor; // 前景色
  58100. NET_COLOR_RGBA stuBackColor; // 背景色
  58101. NET_RECT stuRect; // 区域
  58102. }NET_OSD_CFG_PTZ_PRESET;
  58103. ///@brief 显示巡迹百分比叠加配置 NET_EM_CFG_PTZ_PATTERN
  58104. typedef struct tagNET_OSD_CFG_PTZ_PATTERN
  58105. {
  58106. DWORD dwSize;
  58107. int nDisplayTime; // 显示时间,单位为秒,0 表示一直显示,自定义范围:1-3600
  58108. BOOL bEncodeBlend; // 叠加到主码流视频编码
  58109. BOOL bPreviewBlend; // 是否叠加到预览显示
  58110. NET_COLOR_RGBA stuFrontColor; // 前景色
  58111. NET_COLOR_RGBA stuBackColor; // 背景色
  58112. NET_RECT stuRect; // 区域
  58113. }NET_OSD_CFG_PTZ_PATTERN;
  58114. ///@brief 显示RS485检测结果的叠加配置 NET_EM_CFG_PTZ_RS485_DETECT
  58115. typedef struct tagNET_OSD_CFG_PTZ_RS485_DETECT
  58116. {
  58117. DWORD dwSize;
  58118. int nDisplayTime; // 显示时间,单位为秒,0 表示一直显示,自定义范围:1-3600
  58119. BOOL bEncodeBlend; // 叠加到主码流视频编码
  58120. BOOL bPreviewBlend; // 是否叠加到预览显示
  58121. NET_COLOR_RGBA stuFrontColor; // 前景色
  58122. NET_COLOR_RGBA stuBackColor; // 背景色
  58123. NET_RECT stuRect; // 区域
  58124. }NET_OSD_CFG_PTZ_RS485_DETECT;
  58125. ///@brief 显示云台坐标的叠加配置 NET_EM_CFG_PTZ_COORDINATES
  58126. typedef struct tagNET_OSD_CFG_PTZ_COORDINATES
  58127. {
  58128. DWORD dwSize;
  58129. int nDisplayTime; // 显示时间,单位为秒,0 表示一直显示,自定义范围:1-3600
  58130. BOOL bEncodeBlend; // 叠加到主码流视频编码
  58131. BOOL bPreviewBlend; // 是否叠加到预览显示
  58132. NET_COLOR_RGBA stuFrontColor; // 前景色
  58133. NET_COLOR_RGBA stuBackColor; // 背景色
  58134. NET_RECT stuRect; // 区域
  58135. }NET_OSD_CFG_PTZ_COORDINATES;
  58136. ///@brief 显示云台方向的叠加配置 NET_EM_CFG_PTZ_DIRECTION
  58137. typedef struct tagNET_OSD_CFG_PTZ_DIRECTION
  58138. {
  58139. DWORD dwSize;
  58140. int nDisplayTime; // 显示时间,单位为秒,0 表示一直显示,自定义范围:1-3600
  58141. BOOL bEncodeBlend; // 叠加到主码流视频编码
  58142. BOOL bPreviewBlend; // 是否叠加到预览显示
  58143. NET_COLOR_RGBA stuFrontColor; // 前景色
  58144. NET_COLOR_RGBA stuBackColor; // 背景色
  58145. NET_RECT stuRect; // 区域
  58146. }NET_OSD_CFG_PTZ_DIRECTION;
  58147. ///@brief 温度单位
  58148. typedef enum tagEM_TEMPERATURE_UNIT_EX
  58149. {
  58150. EM_TEMPERATURE_EX_UNKNOWN, // 未知
  58151. EM_TEMPERATURE_EX_CENTIGRADE, // 摄氏度
  58152. EM_TEMPERATURE_EX_FAHRENHEIT, // 华氏度
  58153. EM_TEMPERATURE_EX_KELVIN, // 开尔文
  58154. } EM_TEMPERATURE_UNIT_EX;
  58155. ///@brief 显示环境温度的叠加配置 NET_EM_CFG_TEMPERATURE
  58156. typedef struct tagNET_OSD_CFG_TEMPERATURE
  58157. {
  58158. DWORD dwSize;
  58159. int nDisplayTime; // 显示时间,单位为秒,0 表示一直显示,自定义范围:1-3600
  58160. BOOL bEncodeBlend; // 叠加到主码流视频编码
  58161. BOOL bPreviewBlend; // 是否叠加到预览显示
  58162. NET_COLOR_RGBA stuFrontColor; // 前景色
  58163. NET_COLOR_RGBA stuBackColor; // 背景色
  58164. NET_RECT stuRect; // 区域
  58165. EM_TEMPERATURE_UNIT_EX emTemperatureType; // 温度单位的类型
  58166. }NET_OSD_CFG_TEMPERATURE;
  58167. ///@brief 人体测温的状态
  58168. typedef enum tagEM_TEMPERATURE_STATE
  58169. {
  58170. EM_TEMPERATURE_STATE_UNKNOWN, // 未知
  58171. EM_TEMPERATURE_STATE_LOW, // 异常
  58172. EM_TEMPERATURE_STATE_NORMAL, // 正常
  58173. EM_TEMPERATURE_STATE_HIGH, // 异常
  58174. } EM_TEMPERATURE_STATE;
  58175. ///@brief 事件类型DH_ALARM_ANATOMY_TEMPDETECT_TO_PHONE (用于手机推送的测温事件) 对应的数据块描述信息
  58176. typedef struct tagALARM_ANATOMY_TEMPDETECT_TO_PHONE_INFO
  58177. {
  58178. int nChannelID; // 通道号
  58179. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58180. double dbPTS; // 时间戳(单位是毫秒)
  58181. NET_TIME_EX stuTime; // 事件发生的时间
  58182. int nEventID; // 事件ID
  58183. char szObjPath[256]; // 抓拍图路径
  58184. char szVisSceneImagePath[256];//可见光大图路径
  58185. float fHighTemp; // 最高的温度,界面展示精确到1位小数,四舍五入处理
  58186. EM_TEMPERATURE_STATE emTempType; // 测温的状态
  58187. EM_TEMPERATURE_UNIT_EX emTempUnit; // 温度单位的类型
  58188. BYTE byReserved[1020]; // 预留字段
  58189. } ALARM_ANATOMY_TEMPDETECT_TO_PHONE_INFO;
  58190. ///@brief 事件类型DH_ALARM_CHANNEL_CAPS_CHANGE (通道智能能力变化事件) 对应的数据块描述信息
  58191. typedef struct tagALARM_CHANNEL_CAPS_CHANGE_INFO
  58192. {
  58193. UINT nChannelID; // 通道号
  58194. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58195. double dbPTS; // 时间戳(单位是毫秒)
  58196. NET_TIME_EX stuTime; // 事件发生的时间
  58197. int nEventID; // 事件ID
  58198. UINT nOldCapsCnt; // 通道变化前开启的智能个数
  58199. UINT nNewCapsCnt; // 通道变化后开启的智能个数
  58200. char szOldCaps[16][64]; // 通道变化前开启的智能
  58201. char szNewCaps[16][64]; // 通道变化后开启的智能
  58202. char szReserved[1024]; // 预留字段
  58203. } ALARM_CHANNEL_CAPS_CHANGE_INFO;
  58204. ///@brief 雨量状态
  58205. typedef enum tagEM_RAIN_FALL_STATUS
  58206. {
  58207. EM_RAIN_FALL_STATUS_UNKNOWN, // 未知
  58208. EM_RAIN_FALL_STATUS_NORMAL, // 正常
  58209. EM_RAIN_FALL_STATUS_HIGH, // 高于上限阈值
  58210. } EM_RAIN_FALL_STATUS;
  58211. ///@brief 事件类型DH_ALARM_RAIN_FALL_MSG (雨量数据上报事件) 对应的数据块描述信息
  58212. typedef struct tagALARM_RAIN_FALL_MSG_INFO
  58213. {
  58214. int nChannelID; // 通道号
  58215. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58216. double dbPTS; // 时间戳(单位是毫秒)
  58217. char szName[128]; // 事件名称
  58218. NET_TIME_EX stuTime; // 事件发生的时间
  58219. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  58220. UINT nEventID; // 事件ID
  58221. EM_EVENT_TYPE emEventType; // 事件的数据类型
  58222. float fRainLevel; // 雨量高度(单位:毫米)
  58223. EM_RAIN_FALL_STATUS emStatus; // 雨量状态
  58224. char szReserved[1024]; // 保留字节
  58225. } ALARM_RAIN_FALL_MSG_INFO;
  58226. ///@brief 事件类型DH_ALARM_VEHICLE_DETENTION(车道滞留事件) 对应的数据块描述信息
  58227. typedef struct tagALARM_VEHICLE_DETENTION_INFO
  58228. {
  58229. int nChannelID; // 通道号
  58230. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58231. double dbPTS; // 时间戳(单位是毫秒)
  58232. NET_TIME_EX stuTime; // 事件发生的时间
  58233. int nEventID; // 事件ID
  58234. NET_TIME stuDetentionStartTime; // 滞留开始时间
  58235. char szPlateNumber[128]; // 车牌号码
  58236. char szReserved[1024]; // 预留字段
  58237. }ALARM_VEHICLE_DETENTION_INFO;
  58238. ///@brief 事件类型DH_ALARM_ANIMAL_DETECTION (动物检测事件) 对应的数据块描述信息
  58239. typedef struct tagALARM_ANIMAL_DETECTION_INFO
  58240. {
  58241. int nChannelID; // 通道号
  58242. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58243. double dbPTS; // 时间戳(单位是毫秒)
  58244. char szName[128]; // 事件名称
  58245. NET_TIME_EX stuTime; // 事件发生的时间
  58246. EM_SCENE_CLASS_TYPE emClassType; // 智能事件所属大类
  58247. UINT nEventID; // 事件ID
  58248. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件
  58249. UINT nSequence; // 帧序号
  58250. NET_ANIMAL_SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  58251. NET_ANIMAL_OBJECTS_STATISTICS stuObjectsStatistics; // 动物统计信息
  58252. EM_DETECTION_SCENE_TYPE emDetectionSceneType; // 动物检测规则下的场景类型
  58253. int nObjectListCount; // 区域内目标列表个数
  58254. NET_ANIMAL_OBJECT_LIST_INFO stuObjectListInfo[64]; // 区域内目标列表
  58255. char szReserved[1024]; // 保留字节
  58256. } ALARM_ANIMAL_DETECTION_INFO;
  58257. ///@brief 自检结果
  58258. typedef enum tagEM_RESULT
  58259. {
  58260. EM_RESULT_UNKNOWN = -1, // 自检结果未知
  58261. EM_RESULT_ALL_NORMAL, // 全部功能正常
  58262. EM_RESULT_CORE_NORMAL, // 核心功能正常
  58263. EM_RESULT_CORE_ABNORMAL, // 核心功能不良
  58264. }EM_RESULT;
  58265. ///@brief 错误码
  58266. typedef enum tagEM_INFRARED_ERROR_CODE
  58267. {
  58268. EM_INFRARED_ERROR_CODE_UNKNOWN = -1, // 未知
  58269. EM_INFRARED_ERROR_CODE_ALL_INFRARED_NORMAL, // 全部红外正常
  58270. EM_INFRARED_ERROR_CODE_NOCORE_ABNORMAL, // 核心红外正常,非核心红外不良
  58271. EM_INFRARED_ERROR_CODE_CORE_ABNORMAL, // 核心红外不良
  58272. }EM_INFRARED_ERROR_CODE;
  58273. ///@brief 红外检查项
  58274. typedef struct tagNET_INFRARED
  58275. {
  58276. EM_INFRARED_ERROR_CODE emInfraredErrorCode; // 错误码
  58277. UINT nFaultNumber; // 故障红外编号个数
  58278. UINT nFaultNoList[32]; // 故障红外编号列表
  58279. char szReserved[512]; // 预留字节
  58280. }NET_INFRARED;
  58281. ///@brief 错误码
  58282. typedef enum tagEM_FIRMWARE_ERROR_CODE
  58283. {
  58284. EM_FIRMWARE_ERROR_CODE_UNKNOWN = -1, // 未知
  58285. EM_FIRMWARE_ERROR_CODE_ADAPTATION, // 适配
  58286. EM_FIRMWARE_ERROR_CODE_COMPATIBLE, // 兼容
  58287. EM_FIRMWARE_ERROR_CODE_NOCOMPATIBLE, // 不兼容
  58288. }EM_FIRMWARE_ERROR_CODE;
  58289. ///@brief 固件检查项
  58290. typedef struct tagNET_FIRMWARE
  58291. {
  58292. EM_FIRMWARE_ERROR_CODE emFirmwareErrorCode; // 错误码
  58293. char szReserved[512]; // 预留字节
  58294. }NET_FIRMWARE;
  58295. ///@brief 错误码
  58296. typedef enum tagEM_MOTOR_ERROR_CODE
  58297. {
  58298. EM_MOTOR_ERROR_CODE_UNKNOWN = -1, // 未知
  58299. EM_MOTOR_ERROR_CODE_NORMAL, // 正常
  58300. EM_MOTOR_ERROR_CODE_UVW_LACK, // UVW缺相
  58301. EM_MOTOR_ERROR_CODE_AB_LACK, // 编码器A/B缺相
  58302. EM_MOTOR_ERROR_CODE_Z_LACK, // 编码器Z缺相
  58303. EM_MOTOR_ERROR_HALL_SENSOR_ABNORMAL, // 霍尔传感器异常
  58304. EM_MOTOR_ERROR_CODE_ZERO, // 零位错误(学习到的逻辑零位,不在转动范围内)
  58305. EM_MOTOR_ERROR_CODE_ROTATION, // 电机转动行程异常
  58306. }EM_MOTOR_ERROR_CODE;
  58307. ///@brief 电机检查项
  58308. typedef struct tagNET_MOTOR
  58309. {
  58310. EM_MOTOR_ERROR_CODE emMotorErrorCode; // 错误码
  58311. char szReserved[512]; // 预留字节
  58312. }NET_MOTOR;
  58313. ///@brief 事件类型DH_ALARM_ASG_SELFCHECK (闸机自检事件) 对应的数据块描述信息
  58314. typedef struct tagALARM_ASG_SELFCHECK_INFO
  58315. {
  58316. int nChannelID; // 通道号
  58317. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58318. NET_TIME_EX stuTime; // 事件发生的时间
  58319. EM_RESULT emResult; // 自检结果
  58320. NET_INFRARED stuInfrared; // 红外检查项
  58321. NET_FIRMWARE stuFirmWare; // 固件检查项
  58322. NET_MOTOR stuMotor; // 电机检查项
  58323. char szReserved[1024]; // 保留字节
  58324. }ALARM_ASG_SELFCHECK_INFO;
  58325. ///@brief 布控类型
  58326. typedef enum tagEM_GPS_CONTROLLED_TYPE
  58327. {
  58328. EM_GPS_CONTROLLED_TYPE_UNKNOWN, // 未知
  58329. EM_GPS_CONTROLLED_TYPE_FOCALCAR, // 重点车辆
  58330. EM_GPS_CONTROLLED_TYPE_GUARANTEECAR, // 保障车辆
  58331. EM_GPS_CONTROLLED_TYPE_FOLLOWCAR, // 关注车辆
  58332. EM_GPS_CONTROLLED_TYPE_OTHER, // 其他
  58333. }EM_GPS_CONTROLLED_TYPE;
  58334. ///@brief GPS上报平台报警事件ALARM_GPS_REPORTING_PLATFORM
  58335. typedef struct tagALARM_GPS_REPORTING_PLATFORM_INFO
  58336. {
  58337. int nChannelID; // 通道号
  58338. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58339. double dbPTS; // 时间戳(单位是毫秒)
  58340. UINT nEventID; // 事件ID
  58341. NET_TIME_EX stuUTC; // 事件发生的时间
  58342. NET_GPS_STATUS_INFO stuGPSStatus; // GPS状态(大运会上报标定GPS信息)
  58343. EM_GPS_CONTROLLED_TYPE emControlledType; // 布控类型
  58344. char szPlateNumber[64]; // 车牌号
  58345. char szReserved[1024]; // 预留字节
  58346. }ALARM_GPS_REPORTING_PLATFORM;
  58347. ///@brief 事件类型
  58348. typedef enum tagEM_HOSPITAL_ALARM_TYPE
  58349. {
  58350. EM_HOSPITAL_ALARM_TYPE_UNKNOWN, // 未知
  58351. EM_HOSPITAL_ALARM_TYPE_EMERGENCY, // 紧急报警事件
  58352. EM_HOSPITAL_ALARM_TYPE_NURSING, // 护理事件
  58353. EM_HOSPITAL_ALARM_TYPE_HOSTING, // 主机托管事件
  58354. EM_HOSPITAL_ALARM_TYPE_ABNORMAL_BODY_TEMPERATURE, // 人体温度监测异常
  58355. EM_HOSPITAL_ALARM_TYPE_DRESSING_CHANGE_REQUEST, // 换药请求
  58356. EM_HOSPITAL_ALARM_TYPE_REQUEST_SUPPORT, // 请求支援
  58357. EM_HOSPITAL_ALARM_TYPE_NURSING_REQUEST, // 护理请求
  58358. EM_HOSPITAL_ALARM_TYPE_HANDLE_DISCONNECTED_ALARM, // 手柄掉线报警
  58359. EM_HOSPITAL_ALARM_TYPE_DISINFECT_CLEAN_COMPLETE, // 消杀清洁完成
  58360. }EM_HOSPITAL_ALARM_TYPE;
  58361. ///@brief 事件类型DH_ALARM_HOSPITAL_ALARM(医护对讲的报警事件) 对应的数据块描述信息
  58362. typedef struct tagALARM_HOSPITAL_ALARM_INFO
  58363. {
  58364. int nChannelID; // 通道号
  58365. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58366. NET_TIME_EX stuTime; // 事件发生的时间
  58367. EM_HOSPITAL_ALARM_TYPE emType; // 事件类型
  58368. char szRoomNumber[16]; // 病房号
  58369. char szBedNumber[8]; // 病床号
  58370. char szDestPhone[16]; // 托管的目标主机号码
  58371. char szSrcPhone[16]; // 托管的源主机号码
  58372. char szDestDevCode[64]; // 托管的目标主机设备编码
  58373. char szSrcDevCode[64]; // 托管的源主机设备编码
  58374. UINT nUniqueID; // 事件序列标志
  58375. NET_TIME_EX stuUTC; // 事件触发的时间
  58376. char szUUID[64]; // 事件唯一序号
  58377. char szReserved[920]; // 保留字节
  58378. }ALARM_HOSPITAL_ALARM_INFO;
  58379. ///@brief 报警线剪断报警事件
  58380. typedef struct tagALARM_CUTLINE
  58381. {
  58382. int nChannelID; // 通道号
  58383. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58384. double dbPTS; // 时间戳(单位是毫秒)
  58385. char szName[128]; // 事件名称
  58386. UINT nEventID; // 事件ID
  58387. NET_TIME_EX UTC; // 事件发生时间
  58388. BYTE byReserved[512]; // 预留字节
  58389. }ALARM_CUTLINE;
  58390. ///@brief 右侧盲区报警事件
  58391. typedef struct tagALARM_BLIND_SPOT_DETECTION_INFO
  58392. {
  58393. int nChannelID; // 通道号
  58394. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58395. double dbPTS; // 时间戳(单位是毫秒)
  58396. char szName[128]; // 事件名称
  58397. UINT nEventID; // 事件ID
  58398. NET_TIME_EX UTC; // 事件发生时间
  58399. UINT nAlarmLevel; // 报警等级
  58400. int nObjectNum; // 目标物体个数
  58401. NET_BLIND_SPOT_DETECTION_OBJECT_INFO stuObjectInfo[32]; // 目标物体信息
  58402. BYTE byReserved[512]; // 预留字节
  58403. }ALARM_BLIND_SPOT_DETECTION_INFO;
  58404. ///@brief 呼叫类型
  58405. typedef enum tagEM_VIDEOTALK_TYPE
  58406. {
  58407. EM_VIDEOTALK_TYPE_UNKNOW, // 未知
  58408. EM_VIDEOTALK_TYPE_INVITE, // 呼叫
  58409. EM_VIDEOTALK_TYPE_RING, // 振铃
  58410. EM_VIDEOTALK_TYPE_ANSWER, // 通话
  58411. EM_VIDEOTALK_TYPE_HANGUP, // 挂断
  58412. }EM_VIDEOTALK_TYPE;
  58413. ///@brief 事件类型DH_ALARM_HOSPITAL_ALARM(对讲记录事件) 对应的数据块描述信息
  58414. typedef struct tagALARM_VIDEOTALK_INFO
  58415. {
  58416. int nChannelID; // 通道号
  58417. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58418. double dbPTS; // 时间戳(单位是毫秒)
  58419. NET_TIME_EX stuUTC; // 事件发生的时间
  58420. UINT nEventID; // 事件ID
  58421. UINT nLocalID; // 主叫号码
  58422. UINT nRemoteID; // 被叫号码
  58423. EM_VIDEOTALK_TYPE emVideoTalkType; // 呼叫类型
  58424. NET_TIME_EX stuTime; // 呼叫时间
  58425. char szIP[40]; // 本机IP地址
  58426. char szReserved[512]; // 预留字节
  58427. }ALARM_VIDEOTALK_INFO;
  58428. ///@brief 异常类型
  58429. typedef enum tagEM_PREVENT_FREERIDE_EXCEPTION_TYPE
  58430. {
  58431. EM_PREVENT_FREERIDE_EXCEPTION_TYPE_UNKNOWN = -1, // 未知
  58432. EM_PREVENT_FREERIDE_EXCEPTION_TYPE_ABNORMAL_BOARDING, // 上车异常
  58433. EM_PREVENT_FREERIDE_EXCEPTION_TYPE_ABNORMAL_ALIGHTING, // 下车异常
  58434. EM_PREVENT_FREERIDE_EXCEPTION_TYPE_ABNORMAL_BOARDING_AND_ALIGHTING, // 上下车异常
  58435. }EM_PREVENT_FREERIDE_EXCEPTION_TYPE;
  58436. ///@brief 公交系统上报逃票异常报警事件
  58437. typedef struct tagALARM_PREVENT_FREE_RIDE_INFO
  58438. {
  58439. int nChannelID; // 通道号
  58440. char szDeviceID[20]; // 设备编号
  58441. char szName[128]; // 事件名称
  58442. NET_TIME_EX UTC; // 标准UTC时间
  58443. EM_PREVENT_FREERIDE_EXCEPTION_TYPE emExceptionType; // 异常类型
  58444. int nGetOnBusPeople; // 上车人数
  58445. int nGetOffBusPeople; // 下车人数
  58446. int nInputNumber; // 录入人数
  58447. int nOutputNumber; // 结算人数
  58448. BYTE byReserved[512]; // 预留字节
  58449. }ALARM_PREVENT_FREE_RIDE_INFO;
  58450. ///@brief 水流速检测事件
  58451. typedef struct tagALARM_WATER_SPEED_DETECTION_INFO
  58452. {
  58453. int nChannelID; // 通道号
  58454. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58455. double dbPTS; // 时间戳(单位是毫秒)
  58456. char szName[128]; // 事件名称
  58457. UINT nEventID; // 事件ID
  58458. NET_TIME_EX UTC; // 事件发生时间
  58459. EM_EVENT_TYPE emEventType; // 事件的数据类型
  58460. UINT nPresetID; // 事件触发的预置点号,从1开始,没有该字段,表示预置点未知
  58461. char szPresetName[64]; // 事件触发的预置点名称
  58462. NET_WATER_SPEED_INFO stuWaterSpeed[50]; // 水流速度信息
  58463. int nWaterSpeedNum; // 水流速度信息个数
  58464. EM_WATER_SPEED_STATUS emStatus; // 水流速状态
  58465. NET_INTELLIGENCE_IMAGE_INFO stuOriginalImage; // 原始图,近景
  58466. NET_INTELLIGENCE_IMAGE_INFO stuSceneImage; // 球机变到最小倍下的抓图
  58467. float fValue; // 流量值,单位:立方米每秒(m3/s)
  58468. float fSecSpeedValue; // 断面平均流速值, 单位:m/s
  58469. BYTE byReserved[1016]; // 预留字节
  58470. }ALARM_WATER_SPEED_DETECTION_INFO;
  58471. ///@brief 湿度报警事件
  58472. typedef struct tagALARM_HUMIDITY_ALARM_INFO
  58473. {
  58474. int nChannelID; // 通道号
  58475. int nAction; // 事件动作,0表示脉冲事件,1表示事件开始,2表示事件结束;
  58476. double dbPTS; // 时间戳(单位是毫秒)
  58477. char szName[128]; // 事件名称
  58478. UINT nEventID; // 事件ID
  58479. NET_TIME_EX UTC; // 事件发生时间
  58480. float fCurrentValue; // 当前湿度值
  58481. float fLimitValue; // 报警阈值
  58482. NET_GPS_STATUS_INFO stuGPSStatus; // GPS信息
  58483. char byReserved[1024]; // 预留字节
  58484. }ALARM_HUMIDITY_ALARM_INFO;
  58485. ///@brief 覆盖区域
  58486. typedef struct tagNET_VEDIO_WIDGET_COVER
  58487. {
  58488. BOOL bPreviewBlend; // 叠加到预览视频
  58489. BOOL bEncodeBlend; // 叠加到主码流
  58490. BOOL bEncodeBlendExtra1; // 叠加到辅码流1
  58491. BOOL bEncodeBlendExtra2; // 叠加到辅码流2
  58492. BOOL bEncodeBlendExtra3; // 叠加到辅码流3
  58493. BOOL bEncodeBlendSnapshot; // 叠加到抓图
  58494. NET_COLOR_RGBA stuFrontColor; // 前景色
  58495. NET_COLOR_RGBA stuBackColor; // 背景色
  58496. NET_RECT stuRect; // 区域, 坐标取值区间[0,8191]
  58497. BYTE byReserver[128]; // 保留字节
  58498. }NET_VEDIO_WIDGET_COVER;
  58499. ///@brief 区域覆盖 NET_EM_CFG_COVERS
  58500. typedef struct tagNET_OSD_CFG_COVERS
  58501. {
  58502. DWORD dwSize;
  58503. int nCoverCount; // 覆盖区域个数
  58504. NET_VEDIO_WIDGET_COVER stuCovers[16]; // 覆盖区域
  58505. }NET_OSD_CFG_COVERS;
  58506. ///@brief 自定义的标题信息
  58507. typedef struct tagNET_USER_DEF_TITLE_INFO
  58508. {
  58509. char szText[CUSTOM_TITLE_LEN]; // 标题内容
  58510. BOOL bEncodeBlend; // 是加叠加到编码视频使能
  58511. BOOL bPreviewBlend; // 叠加到预览视频使能
  58512. NET_RECT stuRect; // 区域, 坐标取值[0~8191], 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  58513. NET_COLOR_RGBA stuFrontColor; // 前景色
  58514. NET_COLOR_RGBA stuBackColor; // 背景色
  58515. EM_TITLE_TEXT_ALIGNTYPE emTextAlign; // 文本对齐方式
  58516. BYTE byReserved[516]; // 保留字节
  58517. }NET_USER_DEF_TITLE_INFO;
  58518. ///@brief 用户自定义OSD标题 NET_EM_CFG_USER_DEF_TITLE
  58519. typedef struct tagNET_OSD_USER_DEF_TITLE
  58520. {
  58521. DWORD dwSize;
  58522. int nUserDefTitleNum; // 自定义标题数量
  58523. NET_USER_DEF_TITLE_INFO stuUserDefTitle[16]; // 自定义标题
  58524. }NET_OSD_USER_DEF_TITLE;
  58525. ///@brief 叠加配置信息
  58526. typedef struct tagNET_OSD_CUSTOM_GENERAL_INFO
  58527. {
  58528. BOOL bEnable; // 是否叠加
  58529. BYTE byReserved[2044]; // 预留字节
  58530. }NET_OSD_CUSTOM_GENERAL_INFO;
  58531. ///@brief 抓拍OSD 智能业务合集
  58532. typedef struct tagNET_CFG_SNAP_OSD_WITH_CLASS
  58533. {
  58534. int nGeneralInfoNum; // 叠加配置个数
  58535. NET_OSD_CUSTOM_GENERAL_INFO stGeneralInfos[8]; // 叠加配置信息
  58536. BYTE byReserved[2048]; // 保留字节
  58537. } NET_CFG_SNAP_OSD_WITH_CLASS;
  58538. ///@brief 抓拍OSD配置信息
  58539. typedef struct tagNET_CFG_SNAP_OSD_INFO
  58540. {
  58541. int nClassNum; // 智能业务个数
  58542. NET_CFG_SNAP_OSD_WITH_CLASS stuOSDWithClass[8]; // 智能业务集合
  58543. BYTE byReserved[2048]; // 保留字节
  58544. }NET_CFG_SNAP_OSD_INFO;
  58545. ///@brief 抓拍OSD配置 NET_EM_CFG_SNAP_OSD
  58546. typedef struct tagNET_CFG_SNAP_OSD
  58547. {
  58548. DWORD dwSize; // 结构体大小
  58549. int nSnapOSDNum; // 抓拍OSD配置数量
  58550. NET_CFG_SNAP_OSD_INFO stuSnapOSDInfo[8]; // 抓拍OSD配置信息
  58551. } NET_CFG_SNAP_OSD;
  58552. ///@brief 抓图类型
  58553. typedef enum tagEM_SNAP_TYPE
  58554. {
  58555. EM_SNAP_TYPE_UNKNOWN, // 未知
  58556. EM_SNAP_TYPE_PLATE, // "Plate": 车牌抠图(抠车牌边框)
  58557. EM_SNAP_TYPE_DRIVER_FACE, // "DriverFace": 驾驶员目标抠图
  58558. EM_SNAP_TYPE_ASSISTANT_DRIVER_FACE, // "AssistantDriverFace": 辅驾驶员目标抠图
  58559. EM_SNAP_TYPE_VEHICLE_TAIL, // "VehicleTail": 车尾抠图
  58560. EM_SNAP_TYPE_VEHICLE_BODY, // "VehicleBody": 车身抠图
  58561. EM_SNAP_TYPE_FACE, // 目标抠图
  58562. EM_SNAP_TYPE_BODY, // "Body": 行人全身抠图
  58563. EM_SNAP_TYPE_BINARIZED_PLATE, // "BinarizedPlate": 二值化车牌抠图
  58564. EM_SNAP_TYPE_NON_MOTOR_FACE, // "NonMotorFace": 非机动车f目标抠图
  58565. EM_SNAP_TYPE_NON_MOTOR_BODY, // "NonMotorBody": 非机动车身图
  58566. EM_SNAP_TYPE_SCENE_IMAGE, // "SceneImage": 全景图
  58567. EM_SNAP_TYPE_HUMAN_SCENE_IMAGE, // "HumanSceneImage": 人员全景图
  58568. EM_SNAP_TYPE_VEHICLE_SCENE_IMAGE, // "VehicleSceneImage": 机动车全景图
  58569. EM_SNAP_TYPE_NON_MOTOR_SCENE_IMAGE, // "NonMotorSceneImage": 非机动车全景图
  58570. }EM_SNAP_TYPE;
  58571. ///@brief IPC物体检测(机非人)抓图叠加OSD配置信息
  58572. typedef struct tagNET_CFG_OBJECT_DETECT_SNAP_SHOT_INFO
  58573. {
  58574. EM_SNAP_TYPE emSnapTypeEnable[32]; // 使能的抓图类型
  58575. int nSnapTypeEnableNum; // 使能的抓图类型的个数, 最大值为32, 配合emSnapTypeEnable[32]一起使用
  58576. int nUploadVehicleTypeNum; // 使能的上传车辆类型图片的个数, 最大值为255, 配合nUploadVehicleType[255]一起使用
  58577. int nUploadVehicleType[255]; // 使能的上传车辆类型图片, 具体描述见下:
  58578. // 0:未知 1:客车 2:大货车 3:中货车 4:轿车 5:面包车 6:小货车 7:三轮车 8:摩托车 9:行人 10:SUV-MPV
  58579. // 11:中客车 12:危化品车辆(特殊车辆) 13:SUV 14:MPV 15:公交车 16:皮卡车 17:微型车 18:油罐车(特殊车辆) 19:槽罐车(特殊车辆) 20:保留1(特殊车辆) 21:渣土车(特殊车辆)
  58580. // 22:混凝土搅拌车(特殊车辆) 23:出租车(特殊车辆) 24:警车(特殊车辆) 25:救护车(特殊车辆) 26:普通车(特殊车辆) 27:环卫车(包括洒水车、垃圾车、清扫车等)(特殊车辆) 28:保留2(特殊车辆) 29:消防车(特殊车辆) 30:拖拉机(特殊车辆) 31:工程车(特殊车辆) 32:粉粒物料车(特殊车辆)
  58581. // 33:吸污车(特殊车辆) 34:普通罐车(特殊车辆) 35:二轮车 36:校车(特殊车辆) 37:挖掘车(特殊车辆) 38:推土车(特殊车辆) 39:吊车(特殊车辆) 40:泵车(特殊车辆) 41:押运车(特殊车辆) 42:铲车(特殊车辆)
  58582. // 201:自行车 202:厢式三轮车 203:载人敞篷三轮车 204:不载人敞篷三轮车
  58583. char szReserved[2044]; // 保留字节
  58584. }NET_CFG_OBJECT_DETECT_SNAP_SHOT_INFO;
  58585. ///@brief IPC物体检测(机非人)抓图叠加OSD配置 NET_EM_CFG_OBJECT_DETECT_SNAP_SHOT
  58586. typedef struct tagNET_CFG_OBJECT_DETECT_SNAP_SHOT
  58587. {
  58588. DWORD dwSize; // 结构体大小
  58589. int nObjectDetectSnapshotNum; // IPC物体检测(机非人)抓图叠加OSD配置数量(需要用户输入赋值)
  58590. NET_CFG_OBJECT_DETECT_SNAP_SHOT_INFO* pstuObjectDetectSnapshotInfo; // IPC物体检测(机非人)抓图叠加OSD配置信息, 内存由用户分配和释放,大小为nObjectDetectSnapshotNum * sizeof(NET_CFG_OBJECT_DETECT_SNAP_SHOT_INFO)
  58591. int nRetObjectDetectSnapshotNum; // 设备返回的IPC物体检测(机非人)抓图叠加OSD配置数量(不需要用户输入赋值), nRetObjectDetectSnapshotNum小于或等于nObjectDetectSnapshotNum
  58592. } NET_CFG_OBJECT_DETECT_SNAP_SHOT;
  58593. ///@brief 定时抓图配置
  58594. typedef struct tagNET_CFG_TIMING_SNAP
  58595. {
  58596. BOOL bEnable; // 是否开启定时抓图
  58597. UINT nTimingSnapInterval; // 定时抓图的时间间隔,单位为秒,必填,若为0或不存在则不抓图
  58598. UINT nTimeSectionID; // 事件对应的日程ID
  58599. char szReserved[256]; // 保留字段
  58600. }NET_CFG_TIMING_SNAP;
  58601. ///@brief 计划抓图配置 NET_EM_CFG_SNAP_FPS
  58602. typedef struct tagNET_CFG_SNAP_FPS
  58603. {
  58604. DWORD dwSize; // 结构体大小
  58605. BOOL bIsGlobal; // 是否继承全局的存储计划配置(StorageScheduleGlobal),true表示继承,false表示不继承
  58606. UINT nManulSnapNum; // 一次手动抓图,抓Num张图 范围[1,5]
  58607. UINT nManulSnapInterval; // 手动抓图的时间间隔,单位为秒 范围[1,7]
  58608. NET_CFG_TIMING_SNAP stuTimingSnap; // 定时抓图配置
  58609. }NET_CFG_SNAP_FPS;
  58610. ///@brief 拉流控制配置, 对应 NET_EM_CFG_STREAM_LOCK
  58611. typedef struct tagNET_CFG_STREAM_LOCK_INFO
  58612. {
  58613. DWORD dwSize; // 结构体大小
  58614. BOOL bMonitorLock; // 是否锁定实时预览
  58615. BOOL bPlayBackLock; // 是否锁定录像回放
  58616. char szLockReasonNote[256]; // 锁定提示语
  58617. BOOL bGlobalLock; // 当这个字段是true时,无法拉实时流和回放流,当这个字段为false时,由bMonitorLock和bPlayBackLock分别控制拉实时流和回放流
  58618. }NET_CFG_STREAM_LOCK_INFO;
  58619. ///@brief 拉流控制配置, 对应 NET_EM_CFG_CAMERA_STREAM_LOCK
  58620. typedef struct tagNET_CFG_CAMERA_STREAM_LOCK_INFO
  58621. {
  58622. DWORD dwSize; // 结构体大小
  58623. BOOL bMonitorLock; // 是否锁定实时预览
  58624. BOOL bPlayBackLock; // 是否锁定录像回放
  58625. char szLockReasonNote[256]; // 锁定提示语
  58626. }NET_CFG_CAMERA_STREAM_LOCK_INFO;
  58627. ///@brief 检测参数信息
  58628. typedef struct tagNET_EAR_DETECTION_PARAM
  58629. {
  58630. int nStepFrequency; // 步进频率: 0:160Hz, 1:170Hz, 2:180Hz, 3:190Hz
  58631. int nFrequency; // 工作频率: 0:6.8MHz, 1:7.2MHz, 2:8.2MHz, 3:9.5MHz
  58632. int nBandwidth; // 频率宽度: 0:550KHz, 1:650KHz, 2:750KHz, 3:850KHz, 4:950KHz, 5:1050KHZ
  58633. UINT nSensitivity; // 灵敏度, 范围: 0~99
  58634. char szReserved[32]; // 保留字节
  58635. }NET_EAR_DETECTION_PARAM;
  58636. ///@brief EAS RF款检测配置, 对应 NET_EM_CFG_EAR_DETECTION_CONFIG
  58637. typedef struct tagNET_CFG_EAR_DETECTION_CONFIG_INFO
  58638. {
  58639. DWORD dwSize; // 结构体大小
  58640. UINT nAntiInterference; // 抗干扰功能,0--关闭 1--开启
  58641. UINT nEarlyWarning; // 预警功能,0--关闭 1--开启
  58642. int nDetectionParamCount; // 检测参数个数
  58643. NET_EAR_DETECTION_PARAM stuDetectionParam[64]; // 检测参数信息,元素下标对应检测通道
  58644. }NET_CFG_EAR_DETECTION_CONFIG_INFO;
  58645. ///@brief 声音配置, 对应 NET_EM_CFG_SOUND_CONFIG
  58646. typedef struct tagNET_CFG_SOUND_CONFIG_INFO
  58647. {
  58648. DWORD dwSize; // 结构体大小
  58649. int nTone; // 报警音频: 0:未知 1:铃声类型1, 2:铃声类型2, 3:铃声类型3, 4:铃声类型4...
  58650. UINT nVolume; // 报警音量
  58651. }NET_CFG_SOUND_CONFIG_INFO;
  58652. ///@brief 上下客客流预警配置, 对应 NET_EM_PASSENGER_FLOW_CONFIG
  58653. typedef struct tagNET_CFG_PASSENGER_FLOW_CONFIG_INFO
  58654. {
  58655. DWORD dwSize; // 结构体大小
  58656. UINT nUpPassengerFlowLimit; // 上客客流预警阈值
  58657. UINT nDownPassengerFlowLimit; // 下客客流预警阈值
  58658. }NET_CFG_PASSENGER_FLOW_CONFIG_INFO;
  58659. ///@brief 时间间隔配置, 对应 NET_EM_TRAFFIC_LAMP_CONFIG
  58660. typedef struct tagNET_CFG_TRAFFIC_LAMP_CONFIG_INFO
  58661. {
  58662. DWORD dwSize; // 结构体大小
  58663. UINT nNotifyPeriod; // DH_ALARM_TRAFFIC_LAMP_WORK_STATE报警事件的通知周期, 单位是秒, 默认600, 范围300~86400
  58664. }NET_CFG_TRAFFIC_LAMP_CONFIG_INFO;
  58665. ///@brief 房间号、楼幢单元等信息配置, 对应 NET_EM_CFG_LOCAL_INFO
  58666. typedef struct tagNET_CFG_LOCAL_INFO
  58667. {
  58668. DWORD dwSize; // 结构体大小
  58669. char szShortNumber[16]; // VTS的号码
  58670. BOOL bEnableSection; // 是否使能区号
  58671. BOOL bEnableBuilding; // 是否使能楼幢号
  58672. BOOL bEnableUnit; // 是否使能单元号
  58673. int nBuildingNumBit; // 楼幢号的位数
  58674. }NET_CFG_LOCAL_INFO;
  58675. ///@brief 防蜂鸣联动项使能配置信息, 对应 NET_EM_CFG_DISABLE_BEEP_LINKAGE
  58676. typedef struct tagNET_CFG_DISABLE_BEEP_LINKAGE_INFO
  58677. {
  58678. DWORD dwSize; // 结构体大小
  58679. BOOL bEnable; // 开启撤防联动项功能总开关(DisableLinkage)后,是否撤防蜂鸣联动项
  58680. char szName[32]; // 联动项配置名
  58681. }NET_CFG_DISABLE_BEEP_LINKAGE_INFO;
  58682. ///@brief 禁止布防的条件,当其中一个或多个状态且对应项的值为true时,报警主机应能禁止布防
  58683. typedef struct tagNET_PREVENTION_OF_ARMING_INFO
  58684. {
  58685. BOOL bIntrusionDetectorActivated; // 入侵探测器处于激活状态
  58686. BOOL bHoldupDeviceActivated; // 紧急报警装置处于激活状态
  58687. BOOL bMovementDetectorMasked; // 移动目标探测器被遮挡
  58688. BOOL bMovementDetectorRangeReduction; // 移动目标探测器的探测距离明显减小
  58689. BOOL bIntrusionDetectorFault; // 入侵探测器故障
  58690. BOOL bTamperCondition; // 防拆报警
  58691. BOOL bInterconnectionFaults; // 互连通信故障
  58692. BOOL bPrimePowerSourceFault; // 主电源故障
  58693. BOOL bAlternativePowerSourceFault; // 备用电源故障
  58694. BOOL bAlarmTransmissionSystemFault; // 报警传输系统故障
  58695. BOOL bWarningDeviceFault; // 告警装置故障
  58696. char szReserved[252]; // 保留字节
  58697. }NET_PREVENTION_OF_ARMING_INFO;
  58698. ///@brief 系统检测状态
  58699. typedef struct tagNET_SYSTEM_STATUS_CHECK_INFO
  58700. {
  58701. BOOL bEnable; // 检测使能
  58702. NET_PREVENTION_OF_ARMING_INFO stuPreventionOfArming; //禁止布防的条件,当其中一个或多个状态且对应项的值为true时,报警主机应能禁止布防
  58703. char szReserved[512]; // 保留字节
  58704. }NET_SYSTEM_STATUS_CHECK_INFO;
  58705. ///@brief Area状态信息
  58706. typedef struct tagNET_AREAS_INFO
  58707. {
  58708. char szMode[32]; // 子系统当前的布撤防模式
  58709. //"T" : Total布防/外出布防模式
  58710. //"p1" : Partial1布防/在家布防模式
  58711. //"p2" : Partial2布防/自定义模式
  58712. //"P" : Partial1+2布防
  58713. //"t" : 强制布防
  58714. //"D" : 撤防
  58715. char szReserved[32]; // 保留字节
  58716. }NET_AREAS_INFO;
  58717. ///@brief Area布撤防配置, 对应 NET_EM_CFG_AREA_ARM_MODE
  58718. typedef struct tagNET_CFG_AREA_ARM_MODE_INFO
  58719. {
  58720. DWORD dwSize; // 结构体大小
  58721. int nAreasNum; // Area状态信息数量,数组最大64个
  58722. NET_AREAS_INFO stuAreas[64]; // Area状态信息数组
  58723. NET_SYSTEM_STATUS_CHECK_INFO stuSystemStatusCheck; // 系统检测状态
  58724. }NET_CFG_AREA_ARM_MODE_INFO;
  58725. ///@brief 报警类型
  58726. typedef enum tagEM_VEHICLE_ALARM_TYPE
  58727. {
  58728. EM_VEHICLE_ALARM_TYPE_UNKNOWN, // 未知
  58729. EM_VEHICLE_ALARM_TYPE_DRIVEACTIONANALYSE, // "DriveActionAnalyse" , 驾驶员行为检测 DSM
  58730. EM_VEHICLE_ALARM_TYPE_DRIVEASSISTANTALARM, // "DriveAssistantAlarm", 辅助驾驶报警 ADAS
  58731. EM_VEHICLE_ALARM_TYPE_HANDSOFFSTEERINGWHEELDETECTION, // "HandsOffSteeringWheelDetection" , 双手脱离方向盘 ICM
  58732. EM_VEHICLE_ALARM_TYPE_EMERGENCY, // "Emergency" 紧急报警
  58733. EM_VEHICLE_ALARM_TYPE_DRIVERDEATAILALARM, // "DriverDeatailAlarm" 按DSM/ADAS具体子类型配置,此时stuSubAlarmInfo有效
  58734. }EM_VEHICLE_ALARM_TYPE;
  58735. ///@brief 报警子类型
  58736. typedef enum tagEM_SUB_ALARM_TYPE
  58737. {
  58738. EM_SUB_ALARM_TYPE_UNKNOWN, // 未知
  58739. EM_SUB_ALARM_TYPE_FATIGUEALARM, // "FatigueAlarm",疲劳驾驶报警
  58740. EM_SUB_ALARM_TYPE_DISTRACTALARM, // "DistractAlarm",分身驾驶报警
  58741. EM_SUB_ALARM_TYPE_CALLINGALARM, // "CallingAlarm",接打电话报警
  58742. EM_SUB_ALARM_TYPE_NODRIVERALARM, // "NoDriverAlarm",驾驶员离岗报警
  58743. EM_SUB_ALARM_TYPE_WEARINGIRALARM, // "WearingIRAlarm",佩戴红外阻断眼镜报警
  58744. EM_SUB_ALARM_TYPE_SMOKINGALARM, // "SmokingAlarm",吸烟报警
  58745. EM_SUB_ALARM_TYPE_CAMOCCLUSIONALARM, // "CamOcclusionAlarm",镜头遮挡报警
  58746. EM_SUB_ALARM_TYPE_UNBELTEDALARM, // "UnbeltedAlarm",未系安全带报警
  58747. EM_SUB_ALARM_TYPE_IDENTITYALARM, // "IdentityAlarm",驾驶员身份异常报警
  58748. EM_SUB_ALARM_TYPE_DRIVERCHANGEALARM, // "DriverChangeAlarm",换人驾驶报警
  58749. EM_SUB_ALARM_TYPE_FORWARDCOLLISIONALARM, // "ForwardCollisionAlarm",前向碰撞报警
  58750. EM_SUB_ALARM_TYPE_LANEDEPARTUREALARM, // "LaneDepartureAlarm",车道偏离报警
  58751. EM_SUB_ALARM_TYPE_HEADWAYALARM, // "HeadwayAlarm"车距过近报警
  58752. }EM_SUB_ALARM_TYPE;
  58753. ///@brief 具体的报警子类型信息
  58754. typedef struct tagNET_SUB_ALARM_INFO
  58755. {
  58756. EM_SUB_ALARM_TYPE emSubAlarmType; // 报警子类型
  58757. int nRecordAheadTimes; // 关联视频录像的开始时间以事件发生时间为基础的提前多少秒
  58758. int nRecordDelayTimes; // 关联视频录像的结束时间以事件发生时间为基础的延后多少秒
  58759. char szReserved[124]; // 保留字节
  58760. }NET_SUB_ALARM_INFO;
  58761. ///@brief 一个报警类型的通道配置
  58762. typedef struct tagNET_VEHICLE_ALARM_LINK_INFO
  58763. {
  58764. EM_VEHICLE_ALARM_TYPE emAlarmType; // 报警类型
  58765. int nLinkSnapChannelNum; // 报警关联的抓图通道数组个数
  58766. int nLinkSnapChannelList[32]; // 报警关联的抓图通道数组,通道号从0开始
  58767. int nLinkRecordChannelList[32]; // 报警关联的视频通道数组,通道号从0开始。
  58768. int nLinkRecordChannelNum; // 报警关联的视频通道数组个数
  58769. int nRecordAheadTimes; // 关联视频录像的开始时间以事件发生时间为基础的提前多少秒
  58770. int nRecordDelayTimes; // 关联视频录像的结束时间以事件发生时间为基础的延后多少秒
  58771. int nSubAlarmInfoNum; // 具体的报警子类型个数
  58772. NET_SUB_ALARM_INFO stuSubAlarmInfo[32]; // 具体的报警子类型信息
  58773. char szReserved[512]; // 保留字节
  58774. }NET_VEHICLE_ALARM_LINK_INFO;
  58775. ///@brief 车载设备报警关联配置, 对应 NET_EM_CFG_VEHICLE_ALARM_LINK_PARAM
  58776. typedef struct tagNET_CFG_VEHICLE_ALARM_LINK_PARAM_INFO
  58777. {
  58778. DWORD dwSize; // 结构体大小
  58779. int nVehicleAlarmLinkNum; // 配置个数
  58780. NET_VEHICLE_ALARM_LINK_INFO stuVehicleAlarmLinkInfo[32]; // 一个报警类型的通道配置
  58781. }NET_CFG_VEHICLE_ALARM_LINK_PARAM_INFO;
  58782. ///@brief 手机push notification配置, 对应 NET_EM_CFG_MOBILE_PHONE_APPLICATION
  58783. typedef struct tagNET_CFG_MOBILE_PHONE_APPLICATION_INFO
  58784. {
  58785. DWORD dwSize; // 结构体大小
  58786. BOOL bPushNotificationEnable; // 是否开启手机推送
  58787. }NET_CFG_MOBILE_PHONE_APPLICATION_INFO;
  58788. ///@brief CGI服务开关控制配置, 对应 NET_EM_CFG_VSP_CGI
  58789. typedef struct tagNET_CFG_VSP_CGI_INFO
  58790. {
  58791. DWORD dwSize; // 结构体大小
  58792. BOOL bServiceStart; // 是否开启CGI服务
  58793. }NET_CFG_VSP_CGI_INFO;
  58794. ///@brief NTP Server服务开关控制配置, 对应 NET_EM_CFG_VSP_NTP_SERVER
  58795. typedef struct tagNET_CFG_CFG_VSP_NTP_SERVER_INFO
  58796. {
  58797. DWORD dwSize; // 结构体大小
  58798. BOOL bServiceStart; // 是否开启NTP Server服务
  58799. }NET_CFG_CFG_VSP_NTP_SERVER_INFO;
  58800. ///@brief 设备搜索配置, 对应 NET_EM_CFG_DEVICE_DISCOVERY
  58801. typedef struct tagNET_CFG_DEVICE_DISCOVERY_INFO
  58802. {
  58803. DWORD dwSize; // 结构体大小
  58804. BOOL bEnable; // 是否开启设备搜索
  58805. }NET_CFG_DEVICE_DISCOVERY_INFO;
  58806. ///@brief LLDPConfig 全局配置, 对应 NET_EM_CFG_LLDP_GLOBAL
  58807. typedef struct tagNET_CFG_LLDP_GLOBAL_INFO
  58808. {
  58809. DWORD dwSize; // 结构体大小
  58810. BOOL bEnable; // 是否开启LLDPConfig全局配置
  58811. }NET_CFG_LLDP_GLOBAL_INFO;
  58812. ///@brief 登录安全等级控制配置, 对应 NET_EM_CFG_LOGIN_AUTH_CTRL
  58813. typedef struct tagNET_CFG_LOGIN_AUTH_CTRL_INFO
  58814. {
  58815. DWORD dwSize; // 结构体大小
  58816. int nPriSvrPolicy; // 私有协议服务端角色认证模式, 1:安全模式, 2:兼容模式
  58817. int nPriCliPolicy; // 私有协议客户端角色认证模式, 1:安全模式, 2:兼容模式
  58818. }NET_CFG_LOGIN_AUTH_CTRL_INFO;
  58819. ///@brief 音频输出音量配置, 对应 NET_EM_CFG_REMOTE_AUDIO_OUTPUT_VOLUME
  58820. typedef struct tagNET_CFG_REMOTE_AUDIO_OUTPUT_VOLUME_INFO
  58821. {
  58822. DWORD dwSize; // 结构体大小
  58823. int nAudioOutputVolumeNum; // 音频输出音量数组有效个数,设置配置需填入有效个数,获取配置时为设备返回有效个数
  58824. int nAudioOutputVolume[4096]; // 音频输出音量数组,每个音频输出通道一个配置
  58825. }NET_CFG_REMOTE_AUDIO_OUTPUT_VOLUME_INFO;
  58826. ///@brief 人员数量统计OSD配置
  58827. typedef struct tagNET_OSD_FACEFLOW_STAT_INFO
  58828. {
  58829. DWORD dwSize; // 结构体大小
  58830. BOOL bEncodeBlend; // 是否叠加到视频码流
  58831. NET_COLOR_RGBA stuFrontColor; // 前景色
  58832. NET_COLOR_RGBA stuBackColor; // 背景色
  58833. NET_RECT stuRect; // 叠加区域 坐标范围 [0,8191]
  58834. int nTextAlign; // 文本对齐方式 0-左对齐 2-右对齐
  58835. BOOL bShowFaceRecognition; // 是否显示识别成功(在注册库中)人数
  58836. BOOL bShowFaceDetection; // 是否显示检测到的总目标数
  58837. BOOL bShowBodyDetection; // 是否叠加检测到的总人体数
  58838. }NET_OSD_FACEFLOWSTAT_INFO;
  58839. ///@brief 水利监控OSD配置
  58840. typedef struct tagNET_WATERMONITOR_OSD_INFO
  58841. {
  58842. BOOL bEncodeBlend; // 是否叠加到视频码流
  58843. int nTextAlign; // 文本对齐方式 0-左对齐 2-右对齐
  58844. NET_COLOR_RGBA stuFrontColor; // 前景色
  58845. NET_COLOR_RGBA stuBackColor; // 背景色
  58846. NET_RECT stuRect; // 叠加区域 8192相对坐标
  58847. BYTE byReserved[1024]; // 保留字节
  58848. }NET_WATERMONITOR_OSD_INFO;
  58849. ///@brief 智慧水利叠加OSD配置(对应枚举 NET_EM_CFG_WATER_MONITOR_TITLE)
  58850. typedef struct tagNET_CFG_WATER_MONITOR_TITLE_INFO
  58851. {
  58852. DWORD dwSize;
  58853. NET_WATERMONITOR_OSD_INFO stuWaterLevel; // 水位检测OSD
  58854. NET_WATERMONITOR_OSD_INFO stuFlotage; // 漂浮物OSD
  58855. }NET_CFG_WATER_MONITOR_TITLE_INFO;
  58856. ///@brief RTSP使能的配置(对应枚举 NET_EM_CFG_KT_RTSP_FLAG)
  58857. typedef struct tagNET_CFG_KT_RTSP_FLAG_INFO
  58858. {
  58859. DWORD dwSize;
  58860. BOOL bEnable; // 是否使能Rtsp的断线策略,TRUE:使能; FALSE:不使能
  58861. }NET_CFG_KT_RTSP_FLAG_INFO;
  58862. ///@brief 单个录像的名字
  58863. typedef struct tagNET_ABORT_VEDIO
  58864. {
  58865. char szVedio[100];
  58866. }NET_ABORT_VEDIO;
  58867. ///@brief 获取RTSP断线后存储到设备本地的录像列表(只有获取,没有设置)(对应枚举 NET_EM_CFG_RTSP_ABORT_LIST)
  58868. typedef struct tagNET_CFG_RTSP_ABORT_LIST_INFO
  58869. {
  58870. DWORD dwSize;
  58871. BYTE byReserved[4]; // 保留字节,用于字节对齐
  58872. int nMaxListCount; // 用户分配的录像列表的数量,最大支持3000个
  58873. UINT nRetListCount; // 设备返回的录像列表的数量
  58874. NET_ABORT_VEDIO* pVedioList; // 具体的录像列表,需要用户申请
  58875. char szMark[32]; // 当前录像类型
  58876. }NET_CFG_RTSP_ABORT_LIST_INFO;
  58877. ///@brief 录像保存天数配置 (对应枚举 NET_EM_CFG_FILE_HOLD_DAYS)
  58878. typedef struct tagNET_CFG_FILE_HOLD_DAYS_INFO
  58879. {
  58880. DWORD dwSize;
  58881. UINT nDays; // 设置文件的保留天数,超过时间的将被删除,单位:天,取值范围0-65535,0表示没有天数限制
  58882. }NET_CFG_FILE_HOLD_DAYS_INFO;
  58883. ///@brief 接入功能配置(对应枚举 NET_EM_CFG_ACCESS_FUNCTION)
  58884. typedef struct tagNET_CFG_ACCESS_FUNCTION_INFO
  58885. {
  58886. DWORD dwSize;
  58887. BOOL bGb28181ClientEnable; // 是否允许接入国标前端设备
  58888. BOOL bGb28181ServerEnable; // 是否能接入国标平台
  58889. BOOL bONVIFClientEnable; // 是否允许接入ONVIF前端
  58890. BOOL bONVIFServerEnable; // 是否支持onvifserver
  58891. BOOL bRTSPEnable; // 是否支持rtsp被拉流
  58892. }NET_CFG_ACCESS_FUNCTION_INFO;
  58893. ///@brief 用户类型
  58894. typedef enum tagEM_ATTENDANCE_USER_TYPE
  58895. {
  58896. EM_ATTENDANCE_USER_TYPE_UNKNOWN = -1, // 未知用户
  58897. EM_ATTENDANCE_USER_TYPE_NORMAL, // 普通用户
  58898. EM_ATTENDANCE_USER_TYPE_BLACKLIST, // 禁止名单用户
  58899. }EM_ATTENDANCE_USER_TYPE;
  58900. ///@brief 考勤人员状态
  58901. typedef enum tagEM_ATTENDANCE_USER_STATUS
  58902. {
  58903. EM_ATTENDANCE_USER_STATUS_UNKNOWN = -1, // 未知
  58904. EM_ATTENDANCE_USER_STATUS_NORMAL, // 正常
  58905. EM_ATTENDANCE_USER_STATUS_FROZEN, // 冻结
  58906. }EM_ATTENDANCE_USER_STATUS;
  58907. ///@brief 考勤人员信息
  58908. typedef struct tagNET_ATTENDANCE_USER_INFO
  58909. {
  58910. char szUserID[64]; // 用户ID
  58911. EM_ATTENDANCE_USER_TYPE emUserType; // 用户类型
  58912. EM_ATTENDANCE_USER_STATUS emUserStatus; // 用户状态
  58913. NET_TIME stuUserAttendanceBeginTime; // 个人考勤开启时间
  58914. NET_TIME stuUserAttendanceEndTime; // 个人考勤结束时间
  58915. BYTE byReserved[80]; // 预留字段
  58916. }NET_ATTENDANCE_USER_INFO;
  58917. ///@brief 考勤模式信息(对应枚举 NET_EM_CFG_ATTENDANCE_MODEL_INFO )
  58918. typedef struct tagNET_CFG_ATTENDANCE_MODEL_INFO
  58919. {
  58920. DWORD dwSize; // 结构体大小
  58921. BOOL bEnable; // 是否开启考勤模式
  58922. NET_TIME stuBeginTime; // 考勤开启时间
  58923. NET_TIME stuEndTime; // 考勤结束时间
  58924. NET_ATTENDANCE_USER_INFO stuUserInfo[128]; // 考勤人员信息
  58925. UINT nUserCount; // 考勤人员数量
  58926. BYTE byReserved[4]; // 预留字段
  58927. }NET_CFG_ATTENDANCE_MODEL_INFO;
  58928. ///@brief 事件标题内容结构体
  58929. typedef struct tagNET_CFG_EVENT_TITLE
  58930. {
  58931. char szText[CFG_MAX_CHANNELNAME_LEN];
  58932. DH_POINT stuPoint; // 标题左上角坐标, 采用0-8191相对坐标系
  58933. DH_SIZE stuSize; // 标题的宽度和高度,采用0-8191相对坐标系,某项或者两项为0表示按照字体自适应宽高
  58934. NET_COLOR_RGBA stuFrontColor; // 前景颜色
  58935. NET_COLOR_RGBA stuBackColor; // 背景颜色
  58936. } NET_CFG_EVENT_TITLE;
  58937. ///@brief 邮件附件类型
  58938. typedef enum tagNET_CFG_ATTACHMENT_TYPE
  58939. {
  58940. NET_ATTACHMENT_TYPE_PIC, // 图片附件
  58941. NET_ATTACHMENT_TYPE_VIDEO, // 视频附件
  58942. NET_ATTACHMENT_TYPE_NUM, // 附件类型总数
  58943. } NET_CFG_ATTACHMENT_TYPE;
  58944. ///@brief 邮件详细内容
  58945. typedef struct tagNET_CFG_MAIL_DETAIL
  58946. {
  58947. NET_CFG_ATTACHMENT_TYPE emAttachType; // 附件类型
  58948. int nMaxSize; // 文件大小上限,单位kB
  58949. int nMaxTimeLength; // 最大录像时间长度,单位秒,对video有效
  58950. }NET_CFG_MAIL_DETAIL;
  58951. ///@brief 时间段信息
  58952. typedef struct tagNET_CFG_TIME_SECTION
  58953. {
  58954. DWORD dwRecordMask; // 录像掩码,按位分别为Bit0-动态检测录像、Bit1-报警录像、Bit2-定时录像、Bit3-动检和报警同时触发时才录像、Bit4-卡号录像、Bit5-智能录像、Bit6-POS录像、Bit7~Bit15保留
  58955. int nBeginHour;
  58956. int nBeginMin;
  58957. int nBeginSec;
  58958. int nEndHour;
  58959. int nEndMin;
  58960. int nEndSec;
  58961. } NET_CFG_TIME_SECTION;
  58962. ///@brief 闪烁灯光类型
  58963. typedef enum tagNET_EM_FILCKERLIGHT_TYPE
  58964. {
  58965. NET_EM_WHITELIGHT, //闪烁白光灯
  58966. NET_EM_REDBLUELIGHT, //红蓝闪烁警示灯
  58967. } NET_EM_FILCKERLIGHT_TYPE;
  58968. ///@brief 灯光联动方式
  58969. typedef enum tagNET_EM_LIGHTLINK_TYPE
  58970. {
  58971. NET_EM_FILCKER, //闪烁; 默认
  58972. NET_EM_KEEPLIGHTING, //常亮
  58973. } NET_EM_LIGHTLINK_TYPE;
  58974. ///@brief 云台补光灯联动项
  58975. typedef struct tagNET_CFG_LIGHTING_LINK_INFO
  58976. {
  58977. BOOL bEnable; //使能
  58978. NET_EM_FILCKERLIGHT_TYPE emFilckerLightType; //闪烁灯光类型
  58979. NET_EM_LIGHTLINK_TYPE emLightlinkType; //灯光联动方式
  58980. float fFilckerIntevalTime; //闪烁间隔时间
  58981. int nFilckerTimes; //闪烁可配置的次数
  58982. UINT nLightDuration; //灯光闪烁或常亮持续时间,单位秒
  58983. UINT nLightBright; //联动灯光的亮度
  58984. NET_CFG_TIME_SECTION stuWhiteLightTimeSection[7][6];//白光灯联动时间段
  58985. }NET_CFG_LIGHTING_LINK_INFO;
  58986. ///@brief 轮巡联动配置
  58987. typedef struct tagNET_CFG_TOURLINK
  58988. {
  58989. BOOL bEnable; // 轮巡使能
  58990. DH_SPLIT_MODE emSplitMode; // 轮巡时的分割模式
  58991. int nChannels[CFG_MAX_VIDEO_CHANNEL_NUM]; // 轮巡通道号列表
  58992. int nChannelCount; // 轮巡通道数量
  58993. } NET_CFG_TOURLINK;
  58994. ///@brief 门禁操作类型
  58995. typedef enum NET_EM_CFG_ACCESSCONTROLTYPE
  58996. {
  58997. NET_EM_CFG_ACCESSCONTROLTYPE_NULL = 0, // 不做操作
  58998. NET_EM_CFG_ACCESSCONTROLTYPE_AUTO, // 自动
  58999. NET_EM_CFG_ACCESSCONTROLTYPE_OPEN, // 开门
  59000. NET_EM_CFG_ACCESSCONTROLTYPE_CLOSE, // 关门
  59001. NET_EM_CFG_ACCESSCONTROLTYPE_OPENALWAYS, // 永远开启
  59002. NET_EM_CFG_ACCESSCONTROLTYPE_CLOSEALWAYS, // 永远关闭
  59003. }NET_EM_CFG_ACCESSCONTROLTYPE;
  59004. ///@brief 语音呼叫发起方
  59005. typedef enum tagNET_EM_CALLER_TYPE
  59006. {
  59007. NET_EM_CALLER_DEVICE = 0, // 设备发起
  59008. }NET_EM_CALLER_TYPE;
  59009. ///@brief 呼叫协议
  59010. typedef enum tagNET_EM_CALLER_PROTOCOL_TYPE
  59011. {
  59012. NET_EM_CALLER_PROTOCOL_CELLULAR = 0, // 手机方式
  59013. }NET_EM_CALLER_PROTOCOL_TYPE;
  59014. ///@brief 语音呼叫联动信息
  59015. typedef struct tagNET_CFG_TALKBACK_INFO
  59016. {
  59017. BOOL bCallEnable; // 语音呼叫使能
  59018. NET_EM_CALLER_TYPE emCallerType; // 语音呼叫发起方
  59019. NET_EM_CALLER_PROTOCOL_TYPE emCallerProtocol; // 语音呼叫协议
  59020. }NET_CFG_TALKBACK_INFO;
  59021. ///@brief 电话报警中心联动信息
  59022. typedef struct tagNET_CFG_PSTN_ALARM_SERVER
  59023. {
  59024. BOOL bNeedReport; // 是否上报至电话报警中心
  59025. int nServerCount; // 电话报警服务器个数
  59026. BYTE byDestination[CFG_MAX_PSTN_SERVER_NUM]; // 上报的报警中心下标
  59027. }NET_CFG_PSTN_ALARM_SERVER;
  59028. ///@brief 车载工作计划配置
  59029. typedef struct tagNET_CFG_VEHICLE_WORKTIMESCHEDULE_INFO
  59030. {
  59031. DWORD dwSize;
  59032. BOOL bEnable; // 使能
  59033. NET_CFG_TIME_SCHEDULE stuWorkSchedule; // 工作计划表
  59034. }NET_CFG_VEHICLE_WORKTIMESCHEDULE_INFO;
  59035. ///@brief 荷载人数
  59036. typedef struct tagNET_CFG_VEHICLE_LOAD_INFO
  59037. {
  59038. DWORD dwSize;
  59039. int nLoadNumber; // 荷载人数
  59040. }NET_CFG_VEHICLE_LOAD_INFO;
  59041. #define MAX_TICKETINFO_NUM 8 // 票类信息最大个数
  59042. ///@brief 票类信息
  59043. typedef struct tagNET_CFG_TICKET_INFO
  59044. {
  59045. BOOL bEnable; // 是否需要显示和打印
  59046. char szScreenModel[32]; // 显示的屏幕上该票的简称
  59047. char szPrintModel[64]; // 打印出来的票名称
  59048. unsigned int nFare; // 票价
  59049. }NET_CFG_TICKET_INFO;
  59050. ///@brief 公交打印票价
  59051. typedef struct tagNET_CFG_TICKETPRINT_INFO
  59052. {
  59053. DWORD dwSize;
  59054. BOOL bEncodeBlend; // 是否叠加到主码流
  59055. char szRoute[32]; // 路线
  59056. char szNumber[32]; // 序号
  59057. unsigned int nNormal; // 普通票价
  59058. unsigned int nDiscount; // 优惠价
  59059. unsigned int nSubsidy; // 老幼补贴价
  59060. unsigned int nStatisticsNum; // 统计票打印张数, 默认为1, 范围[1,2]
  59061. unsigned int nTicketInfoNum; // 票类信息个数
  59062. NET_CFG_TICKET_INFO stuTicketInfo[MAX_TICKETINFO_NUM]; // 票类信息
  59063. char szText[256]; // 备注
  59064. }NET_CFG_TICKETPRINT_INFO;
  59065. ///@brief ACC延时关机时间
  59066. typedef struct tagNET_CFG_VEHICLEAUTOMAIN_INFO
  59067. {
  59068. DWORD dwSize;
  59069. int nAutoShutDelay; //车载延时关机时间,ACC断电后开始计数。单位:分钟,[0, 65536], 65536等效于不关机
  59070. int nForceShutDelay; //延时时间达到后,再强制延时关机时间。相当于ACC断电后,共延时Auto+Force分钟关机, [0, 65536]
  59071. int nPercent; //以电池剩余电量为关机条件。此条件和AutoShutDelay两个条件并用。任意一个条件满足,即关机。默认0。[0, 100]
  59072. }NET_CFG_VEHICLEAUTOMAIN_INFO;
  59073. ///@brief 车载网络服务配置
  59074. typedef struct tagNET_CFG_VEHICLENETSERVER_INFO
  59075. {
  59076. DWORD dwSize;
  59077. BOOL bEnable; // 服务是否开启
  59078. UINT nUdpPort; // Udp端口
  59079. UINT nTcpPort; // 监听端口
  59080. }NET_CFG_VEHICLENETSERVER_INFO;
  59081. ///@brief 车载布控球IMSI绑定配置
  59082. typedef struct tagNET_CFG_IMSIBIND_INFO
  59083. {
  59084. DWORD dwSize;
  59085. int nIMSI; // IMSI的个数
  59086. char szIMSI[4][32]; // 绑定的IMSI号
  59087. }NET_CFG_IMSIBIND_INFO;
  59088. ///@brief 车载人员维护设置
  59089. typedef struct tagNET_CFG_VEHICLE_MAINTAINCE_INFO
  59090. {
  59091. DWORD dwSize;
  59092. char szMaintainer[32]; // 维护人员
  59093. char szMaintainerID[32]; // 维护人员ID
  59094. char szInfo[256]; // 自定义维护信息
  59095. }NET_CFG_VEHICLE_MAINTAINCE_INFO;
  59096. ///@brief 假日信息
  59097. typedef struct tagNET_ACCESSCTL_SPECIALDAY_INFO
  59098. {
  59099. char szDayName[32]; // 组名称
  59100. NET_TIME stuStartTime; // 开始时间
  59101. NET_TIME stuEndTime; // 结束时间
  59102. BYTE byReserved[256];
  59103. }NET_ACCESSCTL_SPECIALDAY_INFO;
  59104. ///@brief 门禁假日组配置
  59105. typedef struct tagNET_CFG_ACCESSCTL_SPECIALDAY_GROUP_INFO
  59106. {
  59107. DWORD dwSize;
  59108. BOOL bGroupEnable; // 组使能
  59109. char szGroupName[32]; // 组名称
  59110. int nSpeciaday; // 有效的节假日数量
  59111. NET_ACCESSCTL_SPECIALDAY_INFO stuSpeciaday[16]; // 假日信息
  59112. }NET_CFG_ACCESSCTL_SPECIALDAY_GROUP_INFO;
  59113. ///@brief 门禁假日计划配置
  59114. typedef struct tagNET_CFG_ACCESSCTL_SPECIALDAYS_SCHEDULE_INFO
  59115. {
  59116. DWORD dwSize;
  59117. char szSchduleName[64]; // 假日计划名称
  59118. BOOL bSchdule; // 假日计划使能
  59119. int nGroupNo; // NET_EM_CFG_ACCESSCTL_SPECIALDAY_GROUP 配置的下标
  59120. int nTimeSection; // 一天的时间段个数
  59121. DH_TSECT stuTimeSection[6]; // 时间段
  59122. int nDoorNum; // 有效的门数量
  59123. int nDoors[64]; // 生效的门通道号
  59124. }NET_CFG_ACCESSCTL_SPECIALDAYS_SCHEDULE_INFO;
  59125. ///@brief (工行)门禁假日组配置
  59126. typedef struct tagNET_CFG_ACCESSCTL_HOLIDAY_GROUP_INFO
  59127. {
  59128. DWORD dwSize; // 结构体大小
  59129. int nHolidayGroupNum; // 节假日表的个数
  59130. int nHolidayGroup[30]; // 是一个数组,每个元素表示一个节假日表
  59131. BOOL bEnable; // 假日组是否使能
  59132. char szName[32]; // 假日组名称
  59133. }NET_CFG_ACCESSCTL_HOLIDAY_GROUP_INFO;
  59134. ///@brief 工行假日表时间段
  59135. typedef struct tagNET_GH_TIMESECTION
  59136. {
  59137. BOOL bEnable; // 时间段使能
  59138. int nDoorStatus; // 门状态
  59139. char szReversed1[4]; // 字节对齐
  59140. NET_TIME_EX1 stuBeginTime; // 假日开始时间
  59141. NET_TIME_EX1 stuEndTime; // 假日结束时间
  59142. }NET_GH_TIMESECTION;
  59143. ///@brief (工行)门禁假日表配置
  59144. typedef struct tagNET_CFG_ACCESSCTL_HOLIDAY_SCHEDULE_INFO
  59145. {
  59146. DWORD dwSize; // 结构体大小
  59147. int nTimeSection; // 假日表时间段个数
  59148. NET_GH_TIMESECTION stuGhTimeSections[4]; // 工行假日表时间段
  59149. char szReversed1[4]; // 字节对齐
  59150. BOOL bEnable; // 假日表是否使能
  59151. char szName[64]; // 假日表名称
  59152. NET_TIME stuBeginDate; // 假日起始时间 结构体中仅 年-月-日 有效
  59153. NET_TIME stuEndDate; // 假日结束时间 结构体中仅 年-月-日 有效
  59154. }NET_CFG_ACCESSCTL_HOLIDAY_SCHEDULE_INFO;
  59155. ///@brief 配置门的周计划、假日计划、进出读卡器开门方式和时间段外开门报警使能
  59156. typedef struct tagNET_CFG_ICBC_DOOR_PARAS_INFO
  59157. {
  59158. int nWeekTimeSection; // 门的周计划,值为CFG_ACCESS_TIMESCHEDULE_INFO数组的下表
  59159. int nInReaderMethod; // 针对双向设备而言,具体取值含义和EM_AC_UNLOCK_MODE值减一相匹配
  59160. int nOutReaderMethod; // 读卡器的开门方式,具体取值含义和EM_AC_UNLOCK_MODE值减一相匹配
  59161. BOOL bOpenOutTimeEnable; // 时间段外是否能开门
  59162. int nHolidayGroupIndex; // 门的假日计划,值为NET_CFG_ACCESSCTL_HOLIDAY_GROUP_INFO的数下标
  59163. char szRserved[512]; // 预留字节
  59164. }NET_CFG_ICBC_DOOR_PARAS_INFO;
  59165. ///@brief 配置门的周计划、假日计划、进出读卡器开门方式和时间段外开门报警使能
  59166. typedef struct tagNET_CFG_ICBC_DOOR_PARAS
  59167. {
  59168. DWORD dwSize; // 结构体大小
  59169. int nICBCDoorNum; // 工行门个数
  59170. NET_CFG_ICBC_DOOR_PARAS_INFO stuICBCDoorInfo[8]; // 工行门配置信息
  59171. }NET_CFG_ICBC_DOOR_PARAS;
  59172. ///@brief 银行工作场景
  59173. typedef enum tagEM_BANK_WORK_SCENE
  59174. {
  59175. EM_BANK_WORK_SCENE_UNKNOWN = -1, // 未知
  59176. EM_BANK_WORK_SCENE_NORMAL, // 正常工作场景
  59177. EM_BANK_WORK_SCENE_ADDMONEYROOM, // 加钞间场景
  59178. EM_BANK_WORK_SCENE_INTERLOCKLINK, // 互锁联动AB门场景
  59179. }EM_BANK_WORK_SCENE;
  59180. ///@brief 门禁运行场景配置,针对设备而言
  59181. typedef struct tagNET_CFG_WORK_SCENE_INFO
  59182. {
  59183. DWORD dwSize; // 结构体大小
  59184. EM_BANK_WORK_SCENE emBankWorkScene; // 银行工作场景
  59185. }NET_CFG_WORK_SCENE_INFO;
  59186. ///@brief 开门方式
  59187. typedef enum tagEM_CUSTOMER_DEV_SETTING_DOOR_METHOD
  59188. {
  59189. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_UNKNOWN = -1, // 未知
  59190. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_CTID, // CTID 码开门
  59191. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_CTID_AND_FACE, // CTID 码 + 目标组合开门
  59192. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_CTID_OR_FACE, // CTID 码或目标开门
  59193. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_WRISTBAND_OR_FACE, // 腕带码或目标开门
  59194. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_WRISTBAND_OR_FACE_OR_IDCARD, // 腕带码或目标或证件开门
  59195. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_CODE1_OR_CODE2, // 码1或码2开门 (码1、码2的含义由平台和设备双方约定)
  59196. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_WRISTBAND_OR_FACE_OR_CODE2, // 目标或腕带码或码2
  59197. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_FACE_AND_CODE1_OR_CODE2, // 目标+(码1或码2)
  59198. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_FACE_OR_IDCARD_AND_CODE1_OR_CODE2, // (目标或证件)+(码1或者码2)
  59199. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_FACE_OR_IDCARD_OR_CODE1_OR_CODE2, // 目标或码1或码2或者腕带码
  59200. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD_FACE_AND_CODE1_OR_WRISTBAND // (目标+码1)或腕带码
  59201. }EM_CUSTOMER_DEV_SETTING_DOOR_METHOD;
  59202. ///@brief "系统设置"配置
  59203. typedef struct tagNET_CFG_CUSTOMER_DEV_SETTING_INFO
  59204. {
  59205. DWORD dwSize; // 结构体大小
  59206. EM_CUSTOMER_DEV_SETTING_DOOR_METHOD emDoorMethod; // 开门方式
  59207. char szEnckeycipher[1024]; // 国密加密算法密钥:加密密钥的密文及校验码,字符串
  59208. }NET_CFG_CUSTOMER_DEV_SETTING_INFO;
  59209. ///@brief 用户类型
  59210. typedef enum tagNET_ENUM_USER_TYPE
  59211. {
  59212. NET_ENUM_USER_TYPE_UNKNOWN = -1,
  59213. NET_ENUM_USER_TYPE_NORMAL,
  59214. NET_ENUM_USER_TYPE_BLACKLIST,
  59215. NET_ENUM_USER_TYPE_GUEST,
  59216. NET_ENUM_USER_TYPE_PATROL,
  59217. NET_ENUM_USER_TYPE_VIP,
  59218. NET_ENUM_USER_TYPE_HANDICAP,
  59219. NET_ENUM_USER_TYPE_CUSTOM1,
  59220. NET_ENUM_USER_TYPE_CUSTOM2,
  59221. }NET_ENUM_USER_TYPE;
  59222. ///@brief 值班人员信息
  59223. typedef struct tagNET_ON_DUTY_USER_INFO
  59224. {
  59225. char szUserID[32]; // 值班人员ID
  59226. NET_ENUM_USER_TYPE emUserType; // 用户类型
  59227. UINT nUserStatus; // 用户状态, 0 正常, 1 冻结
  59228. BYTE byReserved[128]; // 保留字节
  59229. }NET_ON_DUTY_USER_INFO;
  59230. ///@brief 门禁配置 值班人员信息配置
  59231. typedef struct tagNET_CFG_CUSTOMER_ON_DUTY_MODEL_INFO
  59232. {
  59233. DWORD dwSize; // 结构体大小
  59234. BOOL bEnable; // 是否开启值班模式
  59235. NET_ON_DUTY_USER_INFO stuOnDutyUser[128]; // 值班人员信息数组
  59236. int nOnDutyUserCnt; // stuOnDutyUser的有效个数
  59237. }NET_CFG_CUSTOMER_ON_DUTY_MODEL_INFO;
  59238. ///@brief 测温策略配置
  59239. typedef struct tagNET_CFG_CUSTOMER_TEMP_POLICY_INFO
  59240. {
  59241. DWORD dwSize; // 结构体大小
  59242. int nAdvanceInfoTime; // 提前多少分钟提醒(分钟)
  59243. int nInformTimes; // 区间内提醒次数
  59244. int nInformInterval; // 提醒间隔(分钟)
  59245. float fHignTemp; // 高温阈值
  59246. float fLowTemp; // 低温阈值
  59247. int nCustomerTimeScheduleCount; // 测温区间个数
  59248. NET_TIME_SECTION stuCustomerTimeSchedule[16]; // 测温区间
  59249. BOOL bEnable; // 测温策略功能启用
  59250. char szFirstInfoMessage[256]; // 提前初次测温提醒消息
  59251. char szCommonInfoMessage[256]; // 常规提醒消息
  59252. }NET_CFG_CUSTOMER_TEMP_POLICY_INFO;
  59253. ///@brief 定期人数清除周期
  59254. typedef enum tagEM_USER_PASS_DATA_COUNT_CLEAR_PERIOD
  59255. {
  59256. EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD_UNKNOWN, // 未知
  59257. EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD_HOUR, // 按小时
  59258. EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD_DAILY, // 按天, 按照每天00点清除
  59259. } EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD;
  59260. ///@brief 定期通行人数清除功能配置
  59261. typedef struct tagNET_EM_CFG_USER_PASS_DATA_COUNT_CLEAR_INFO
  59262. {
  59263. DWORD dwSize; // 结构体大小
  59264. BOOL bEnable; // 是否开启定期通行人数清除功能使能
  59265. EM_USER_PASS_DATA_COUNT_CLEAR_PERIOD emPeriod; // 定期人数清除周期
  59266. }NET_EM_CFG_USER_PASS_DATA_COUNT_CLEAR_INFO;
  59267. ///@brief 存放平台下发的参数名称以及服务名称
  59268. typedef struct tagNET_EM_CFG_SAMPO_SERVICE_NAME_INFO
  59269. {
  59270. DWORD dwSize; // 结构体大小
  59271. int nParamterCount; // 参数名称个数
  59272. char szParamter[6][128]; // 参数名称
  59273. char szService[6][128]; // 服务名称
  59274. int nServiceCount; // 服务名称个数
  59275. }NET_EM_CFG_SAMPO_SERVICE_NAME_INFO;
  59276. ///@brief 人员类型与对应通行权限配置
  59277. typedef struct tagNET_EM_CFG_USER_PASS_PERMISSION_INFO
  59278. {
  59279. DWORD dwSize; // 结构体大小
  59280. BOOL bEnable; // 启用通行权限鉴定
  59281. int nStudent; // 学生: 0可通行,1禁止通行,下同
  59282. int nTeacher; // 教师
  59283. int nSecurity; // 保安
  59284. int nSupportPersonnel; // 保障人员
  59285. int nOther; // 其他
  59286. int nFolk; // 家属
  59287. int nBlockList; // 禁止名单
  59288. int nTmp; // 临时
  59289. int nTmpPersonnel; // 临时人员
  59290. int nMaintenanceMan; // 维修工
  59291. int nDoctor; // 博士
  59292. int nMastter; // 硕士
  59293. int nUndergraduate; // 本科
  59294. int nSpecialStudent; // 特殊学生
  59295. int nBeOnRegularPayroll; // 在编
  59296. int nUniversityEmployment; // 校聘
  59297. int nSpecialPost; // 特殊岗位
  59298. int nNormal; // 一般
  59299. int nSpecial; // 特殊
  59300. int nJiangQianwanResident; // 蒋钱湾居民
  59301. int nLixinChangchengBieyuan; // 立信公寓长城别苑居民
  59302. int nCommunityResident; // 社区居民
  59303. int nResident; // 常住区
  59304. int nTenant; // 租户
  59305. int nFamilyMembersOfStaff; // 教职工家属
  59306. int nObligate1; // 预留1
  59307. int nObligate2; // 预留2
  59308. int nObligate3; // 预留3
  59309. int nObligate4; // 预留4
  59310. int nObligate5; // 预留5
  59311. int nObligate6; // 预留6
  59312. int nObligate7; // 预留7
  59313. int nObligate8; // 预留8
  59314. int nObligate9; // 预留9
  59315. int nObligate10; // 预留10
  59316. int nObligate11; // 预留11
  59317. int nObligate12; // 预留12
  59318. int nObligate13; // 预留13
  59319. int nObligate14; // 预留14
  59320. }NET_EM_CFG_USER_PASS_PERMISSION_INFO;
  59321. ///@brief 谈话需求配置
  59322. typedef struct tagNET_EM_CFG_HOSPITAL_TALK_CONFIG_INFO
  59323. {
  59324. DWORD dwSize; // 结构体大小
  59325. char szDepartmentName[20]; // 科室名称
  59326. }NET_EM_CFG_HOSPITAL_TALK_CONFIG_INFO;
  59327. ///@brief 涉密项目配置
  59328. typedef struct tagNET_EM_CFG_SECRET_PROJECT_CONFIG_INFO
  59329. {
  59330. DWORD dwSize; // 结构体大小
  59331. int nProjectNum; // 涉密项目配置信息数量
  59332. char szProjects[30][64]; // 平台下发的当前设备的涉密项目配置信息
  59333. }NET_EM_CFG_SECRET_PROJECT_CONFIG_INFO;
  59334. ///@brief 序列号允许名单下发至NVR
  59335. typedef struct tagNET_CFG_SERIALNOWHITETABLE_INFO
  59336. {
  59337. DWORD dwSize;
  59338. int nCount; // 有效的序列号个数
  59339. char szSerialNo[512][48]; // 序列号数组
  59340. }NET_CFG_SERIALNOWHITETABLE_INFO;
  59341. /////////////////////////////////////////////////////start////////////////////////////////////////////////////////////////////////
  59342. ///@brief 信息下发
  59343. typedef struct tagNET_CFG_LXSJ_WXJJ_INFO
  59344. {
  59345. DWORD dwSize;
  59346. BOOL bEnable; // 是否使能
  59347. NET_TIME stuStartTime; // 开始时间
  59348. NET_TIME stuEndTime; // 结束时间
  59349. char szText[256]; // 下发信息内容
  59350. char szDisplayContent[256]; // 屏上显示的内容
  59351. }NET_CFG_LXSJ_WXJJ_INFO;
  59352. ///@brief 通讯传输方式
  59353. typedef enum tagNET_EM_LXSJ_TRANSMODE
  59354. {
  59355. NET_EM_LXSJ_TRANSMODE_UNKNOWN = -1, // 未知
  59356. NET_EM_LXSJ_TRANSMODE_TCP, // TCP方式
  59357. NET_EM_LXSJ_TRANSMODE_UDP // UDP方式
  59358. }NET_EM_LXSJ_TRANSMODE;
  59359. ///@brief 字体颜色
  59360. typedef enum tagNET_EM_LXSJ_FONTCOLOR
  59361. {
  59362. NET_EM_LXSJ_FONTCOLOR_UNKNOWN = -1, // 未知
  59363. NET_EM_LXSJ_FONTCOLOR_R0_G0_B0, // 0-红灯、绿灯、蓝灯都不亮
  59364. NET_EM_LXSJ_FONTCOLOR_R1_G0_B0, // 1-红灯亮、绿灯不亮、蓝灯不亮
  59365. NET_EM_LXSJ_FONTCOLOR_R0_G1_B0, // 2-红灯不亮、绿灯亮、蓝灯不亮
  59366. NET_EM_LXSJ_FONTCOLOR_R1_G1_B0, // 3-红灯亮、绿灯亮、蓝灯不亮
  59367. NET_EM_LXSJ_FONTCOLOR_R0_G0_B1, // 4-红灯不亮、绿灯不亮、蓝灯亮
  59368. NET_EM_LXSJ_FONTCOLOR_R1_G0_B1, // 5-红灯亮、绿灯不亮、蓝灯亮
  59369. NET_EM_LXSJ_FONTCOLOR_R0_G1_B1, // 6-红灯不亮、绿灯亮、蓝灯不亮
  59370. NET_EM_LXSJ_FONTCOLOR_R1_G1_B1 // 7-红灯、绿灯、蓝灯全亮
  59371. }NET_EM_LXSJ_FONTCOLOR;
  59372. ///@brief 无车牌配置项
  59373. typedef struct tagNET_CFG_VSP_LXSJ_NOPLATE
  59374. {
  59375. BOOL bEnable; // 使能
  59376. char szText[128]; // 无牌车内容
  59377. BYTE byReserved[380]; // 预留
  59378. }NET_CFG_VSP_LXSJ_NOPLATE;
  59379. ///@brief 通用违章配置项
  59380. typedef struct tagNET_CFG_VIOLATIONTYPE_NORMAL
  59381. {
  59382. BOOL bEnable; // 使能
  59383. NET_EM_LXSJ_FONTCOLOR emTextColor; // 文本颜色
  59384. char szText[128]; // 违法内容
  59385. BYTE byReserved[376]; // 预留
  59386. }NET_CFG_VIOLATIONTYPE_NORMAL;
  59387. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICOVERSPEED; // 超速
  59388. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICCROSSLANE; // 违法变道
  59389. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICPARKING; // 违法停车
  59390. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICBACKING; // 违法倒车
  59391. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICRETROGRADE; // 逆行
  59392. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_PARKINGWARNING; // 违停预警
  59393. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICPEDESTRAINPRIORITY;// 礼让行人
  59394. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICRUNREDLIGHT; // 闯红灯
  59395. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICWRONGROUTE; // 不按车道行驶
  59396. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICJAMFORBIDINTO; // 车辆拥堵禁入
  59397. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICOVERLINE; // 压白线
  59398. typedef NET_CFG_VIOLATIONTYPE_NORMAL NET_CFG_VIOLATIONTYPE_TRAFFICVEHICLEINROUTE; // 有车占道
  59399. ///@brief 卡口违章配置项
  59400. typedef struct tagNET_CFG_VIOLATIONTYPE_TRAFFICJUNCTION
  59401. {
  59402. BOOL bEnable; // 使能
  59403. NET_EM_LXSJ_FONTCOLOR emTrustTextColor; // 文本颜色
  59404. char szTrustText[128]; // 在允许名单内时内容
  59405. NET_EM_LXSJ_FONTCOLOR emDisTrustTextColor; // 文本颜色
  59406. char szDisTrustText[128]; // 不在允许名单内时内容
  59407. BYTE byReserved[244]; // 预留
  59408. }NET_CFG_VIOLATIONTYPE_TRAFFICJUNCTION;
  59409. ///@brief 违章类型使能集
  59410. typedef struct tagNET_CFG_VSP_LXSJ_VIOLATIONTYPE
  59411. {
  59412. NET_CFG_VIOLATIONTYPE_TRAFFICOVERSPEED stuTrafficOverSpeed; // 超速
  59413. NET_CFG_VIOLATIONTYPE_TRAFFICCROSSLANE stuTrafficCrossLane; // 违法变道
  59414. NET_CFG_VIOLATIONTYPE_TRAFFICPARKING stuTrafficParking; // 违法停车
  59415. NET_CFG_VIOLATIONTYPE_TRAFFICBACKING stuTrafficBacking; // 违法倒车
  59416. NET_CFG_VIOLATIONTYPE_TRAFFICRETROGRADE stuTrafficRetrograde; // 逆行
  59417. NET_CFG_VIOLATIONTYPE_PARKINGWARNING stuParkingWarning; // 违停预警
  59418. NET_CFG_VIOLATIONTYPE_TRAFFICJUNCTION stuTrafficJunction; // 卡口
  59419. NET_CFG_VIOLATIONTYPE_TRAFFICPEDESTRAINPRIORITY stuTrafficPedestrainPriority; // 礼让行人
  59420. NET_CFG_VIOLATIONTYPE_TRAFFICRUNREDLIGHT stuTrafficRunRedLight; // 闯红灯
  59421. NET_CFG_VIOLATIONTYPE_TRAFFICWRONGROUTE stuTrafficWrongRoute; // 不按车道行驶
  59422. NET_CFG_VIOLATIONTYPE_TRAFFICJAMFORBIDINTO stuTrafficJamForbidInto; // 车辆拥堵禁入
  59423. NET_CFG_VIOLATIONTYPE_TRAFFICOVERLINE stuTrafficOverLine; // 压白线
  59424. NET_CFG_VIOLATIONTYPE_TRAFFICVEHICLEINROUTE stuTrafficVehicleInRoute; // 有车占道
  59425. BYTE byReserved[13824]; // 预留
  59426. }NET_CFG_VSP_LXSJ_VIOLATIONTYPE;
  59427. ///@brief 颜色类型
  59428. typedef enum tagNET_EM_LXSJ_COLORTYPE
  59429. {
  59430. NET_EM_LXSJ_COLORTYPE_UNKNOWN = -1, // 未知
  59431. NET_EM_LXSJ_COLORTYPE_SINGLE_COLOR = 1, // 单色
  59432. NET_EM_LXSJ_COLORTYPE_DOUBLE_COLOR = 2, // 双色
  59433. NET_EM_LXSJ_COLORTYPE_THREE_COLOR = 3, // 三色
  59434. }NET_EM_LXSJ_COLORTYPE;
  59435. ///@brief 区域数据类型
  59436. typedef enum tagNET_EM_LXSJ_AREATYPE
  59437. {
  59438. NET_EM_LXSJ_AREATYPE_UNKNOWN = -1, //未知
  59439. NET_EM_LXSJ_AREATYPE_STATIC_TYPE = 0, // 0- 静态
  59440. NET_EM_LXSJ_AREATYPE_DYNAMIC_TYPE = 1, // 1- 动态
  59441. }NET_EM_LXSJ_AREATYPE;
  59442. ///@brief 区域显示类型
  59443. typedef enum tagNET_EM_LXSJ_DISPLAYTYPE
  59444. {
  59445. NET_EM_LXSJ_DISPLAYTYPE_UNKNOWN = -1, //未知
  59446. NET_EM_LXSJ_DISPLAYTYPE_BACK_TYPE = 0, // 0- 背景
  59447. NET_EM_LXSJ_DISPLAYTYPE_FRONT_TYPE = 1, // 1- 前景
  59448. }NET_EM_LXSJ_DISPLAYTYPE;
  59449. ///@brief 显示风格
  59450. typedef enum tagNET_EM_LXSJ_SHOWMODE
  59451. {
  59452. NET_EM_LXSJ_SHOWMODE_UNKNOWN = -1, // 未知
  59453. NET_EM_LXSJ_SHOWMODE_IMMEDIATELY = 1, // 立即显示
  59454. NET_EM_LXSJ_SHOWMODE_TO_LEFT = 2, // 向左移动
  59455. NET_EM_LXSJ_SHOWMODE_TO_TOP = 3, // 向上移动
  59456. NET_EM_LXSJ_SHOWMODE_TO_RIGHT = 4, // 向右移动
  59457. NET_EM_LXSJ_SHOWMODE_TO_BOTTOM = 5, // 向下移动
  59458. NET_EM_LXSJ_SHOWMODE_BLINK = 6, // 闪烁
  59459. NET_EM_LXSJ_SHOWMODE_TO_TOP_CONTINUOUS = 94, // 向上连移
  59460. NET_EM_LXSJ_SHOWMODE_TO_BOTTOM_CONTINUOUS = 95, // 向下连移
  59461. NET_EM_LXSJ_SHOWMODE_TO_RIGHT_CONTINUOUS = 96, // 向右连移
  59462. NET_EM_LXSJ_SHOWMODE_TO_LEFT_CONTINUOUS = 97, // 向左连移
  59463. }NET_EM_LXSJ_SHOWMODE;
  59464. ///@brief 文字大小(字高宽点数)
  59465. typedef enum tagNET_EM_LXSJ_FONTSIZE
  59466. {
  59467. NET_EM_LXSJ_FONTSIZE_UNKNOWN = -1, // 未知
  59468. NET_EM_LXSJ_FONTSIZE_16 = 16, // 16点阵
  59469. NET_EM_LXSJ_FONTSIZE_32 = 32, // 32点阵
  59470. }NET_EM_LXSJ_FONTSIZE;
  59471. ///@brief 名称类型
  59472. typedef enum tagNET_EM_LXSJ_ELEM_NAMETYPE
  59473. {
  59474. NET_EM_LXSJ_ELEM_NAMETYPE_UNKNOWN = -1, // 未知
  59475. NET_EM_LXSJ_ELEM_NAMETYPE_SEPERATER = 0, // 0-分隔符
  59476. NET_EM_LXSJ_ELEM_NAMETYPE_NEWLINE = 1, // 1-换行符
  59477. NET_EM_LXSJ_ELEM_NAMETYPE_PLATE = 2, // 2-车牌
  59478. NET_EM_LXSJ_ELEM_NAMETYPE_VIOLATIONINFO = 3, // 3-违章信息
  59479. NET_EM_LXSJ_ELEM_NAMETYPE_SPEED = 4, // 4-速度
  59480. NET_EM_LXSJ_ELEM_NAMETYPE_CUSTOM = 5, // 5-自定义项
  59481. }NET_EM_LXSJ_ELEM_NAMETYPE;
  59482. ///@brief 叠加元素
  59483. typedef struct tagNET_CFG_VSP_LXSJ_ELEMENT
  59484. {
  59485. NET_EM_LXSJ_ELEM_NAMETYPE emNameType; // 名称类型
  59486. char szName[32]; // 名称
  59487. char szPrefix[64]; // 前缀字符串
  59488. char szPostfix[64]; // 后缀字符串
  59489. int nSeperaterCount; // 后面添加分隔符个数
  59490. BYTE byReserved[856]; // 预留
  59491. }NET_CFG_VSP_LXSJ_ELEMENT;
  59492. ///@brief 区域数据配置项
  59493. typedef struct tagNET_CFG_VSP_LXSJ_AREADATA
  59494. {
  59495. NET_EM_LXSJ_AREATYPE emAreaType; // 区域数据类型
  59496. NET_EM_LXSJ_DISPLAYTYPE emAreaDisplayType; // 区域显示类型
  59497. UINT nAreaX1; // 区域开始坐标X1
  59498. UINT nAreaY1; // 区域开始坐标Y1
  59499. UINT nAreaX2; // 区域开始坐标X2
  59500. UINT nAreaY2; // 区域开始坐标Y2
  59501. NET_EM_LXSJ_FONTCOLOR emFontColor; // 区域字体颜色
  59502. DH_COLOR_RGBA stuRGB; // 区域字体RGB值
  59503. NET_EM_LXSJ_SHOWMODE emShowMode; // 显示风格
  59504. UINT nMoveSpeed; // 移动速度,越小越快(单位5ms)
  59505. UINT nStayTime; // 每页停留时间(单位1s)
  59506. NET_EM_LXSJ_FONTSIZE emFontSize; // 文字大小(字高宽点数)
  59507. UINT nMaxRollingItem; // 区域数据最大滚动项
  59508. int nElement; // 叠加元素的个数
  59509. NET_CFG_VSP_LXSJ_ELEMENT stuElement[16]; // 元素列表
  59510. BYTE byReserved[956]; // 预留
  59511. }NET_CFG_VSP_LXSJ_AREADATA;
  59512. ///@brief 自定义配置项
  59513. typedef struct tagNET_CFG_VSP_LXSJ_CUSTOM
  59514. {
  59515. BOOL bEnable;
  59516. UINT nWaitTime; // 等待时间,单位秒
  59517. char szText[256]; // 自定义显示内容
  59518. NET_EM_LXSJ_DISPLAYTYPE emAreaDisplayType; // 区域显示类型
  59519. UINT nAreaX1; // 区域开始坐标X1
  59520. UINT nAreaY1; // 区域开始坐标Y1
  59521. UINT nAreaX2; // 区域开始坐标X2
  59522. UINT nAreaY2; // 区域开始坐标Y2
  59523. NET_EM_LXSJ_FONTCOLOR emFontColor; // 区域字体颜色
  59524. DH_COLOR_RGBA stuRGB; // 区域字体RGB值
  59525. NET_EM_LXSJ_SHOWMODE emShowMode; // 显示风格
  59526. UINT nMoveSpeed; // 移动速度,越小越快(单位5ms)
  59527. UINT nStayTime; // 每页停留时间(单位1s)
  59528. NET_EM_LXSJ_FONTSIZE emFontSize; // 文字大小(字高宽点数)
  59529. BYTE byReserved[704]; // 预留
  59530. }NET_CFG_VSP_LXSJ_CUSTOM;
  59531. ///@brief 滚动配置项
  59532. typedef struct tagNET_CFG_VSP_LXSJ_ROLLCONFIG
  59533. {
  59534. BOOL bEnable;
  59535. UINT nMaxItemNum; // 最大滚动记录数
  59536. UINT nPeriod; // 周期
  59537. BYTE byReserved[52]; // 预留
  59538. }NET_CFG_VSP_LXSJ_ROLLCONFIG;
  59539. ///@brief 标语配置项/警示配置
  59540. typedef struct tagNET_CFG_VSP_LXSJ_SLOGAN
  59541. {
  59542. char szText[256]; // 显示内容
  59543. NET_EM_LXSJ_DISPLAYTYPE emAreaDisplayType; // 区域显示类型
  59544. UINT nAreaX1; // 区域开始坐标X1
  59545. UINT nAreaY1; // 区域开始坐标Y1
  59546. UINT nAreaX2; // 区域开始坐标X2
  59547. UINT nAreaY2; // 区域开始坐标Y2
  59548. NET_EM_LXSJ_FONTCOLOR emFontColor; // 区域字体颜色
  59549. DH_COLOR_RGBA stuRGB; // 区域字体RGB值
  59550. NET_EM_LXSJ_SHOWMODE emShowMode; // 显示风格
  59551. UINT nMoveSpeed; // 移动速度,越小越快(单位5ms)
  59552. UINT nStayTime; // 每页停留时间(单位1s)
  59553. NET_EM_LXSJ_FONTSIZE emFontSize; // 文字大小(字高宽点数)
  59554. BYTE byReserved[712]; // 预留
  59555. }NET_CFG_VSP_LXSJ_SLOGAN, NET_CFG_VSP_LXSJ_WARNNING;
  59556. ///@brief 交通拥堵事件配置项
  59557. typedef struct tagNET_CFG_VSP_LXSJ_TRAFFICJAM
  59558. {
  59559. BOOL bEnable;
  59560. NET_CFG_VSP_LXSJ_SLOGAN stuSlogan; // 标语配置项
  59561. NET_CFG_VSP_LXSJ_WARNNING stuWarnning; // 警示配置
  59562. BYTE byReserved[4096]; // 预留
  59563. }NET_CFG_VSP_LXSJ_TRAFFICJAM;
  59564. ///@brief 雷达预警配置项
  59565. typedef struct tagNET_CFG_VSP_LXSJ_RADARPREALARM
  59566. {
  59567. BOOL bEnable;
  59568. char szText[256]; // 显示内容
  59569. NET_EM_LXSJ_DISPLAYTYPE emAreaDisplayType; // 区域显示类型
  59570. UINT nAreaX1; // 区域开始坐标X1
  59571. UINT nAreaY1; // 区域开始坐标Y1
  59572. UINT nAreaX2; // 区域开始坐标X2
  59573. UINT nAreaY2; // 区域开始坐标Y2
  59574. NET_EM_LXSJ_FONTCOLOR emFontColor; // 区域字体颜色
  59575. DH_COLOR_RGBA stuRGB; // 区域字体RGB值
  59576. NET_EM_LXSJ_SHOWMODE emShowMode; // 显示风格
  59577. UINT nMoveSpeed; // 移动速度,越小越快(单位5ms)
  59578. UINT nStayTime; // 每页停留时间(单位1s)
  59579. NET_EM_LXSJ_FONTSIZE emFontSize; // 文字大小(字高宽点数)
  59580. BYTE byReserved[708]; // 预留
  59581. }NET_CFG_VSP_LXSJ_RADARPREALARM;
  59582. ///@brief 灵信视觉平台接入配置
  59583. typedef struct tagNET_CFG_VSP_LXSJ_INFO
  59584. {
  59585. DWORD dwSize;
  59586. BOOL bEnable; // 平台接入使能
  59587. char szServerIP[32]; // 平台服务器IP地址
  59588. int nServerPort; // 服务器端口
  59589. NET_EM_LXSJ_TRANSMODE emTransMode; // 通讯传输方式
  59590. char szContorlID[32]; // 控制器ID
  59591. UINT nWidth; // 显示屏宽度
  59592. UINT nHeigth; // 显示屏高度
  59593. UINT nPlayTime; // 播放时间(秒)
  59594. UINT nCirclePlayTimes; // 循环播放次数
  59595. NET_EM_LXSJ_COLORTYPE emColorType; // 颜色类型
  59596. NET_CFG_VSP_LXSJ_NOPLATE stuNoPlate; // 无车牌配置项
  59597. NET_CFG_VSP_LXSJ_VIOLATIONTYPE stuViolationType; // 违章类型使能集
  59598. int nAreaDataNum; // 区域数据配置项个数
  59599. NET_CFG_VSP_LXSJ_AREADATA stuAreaData[16]; // 区域数据配置项
  59600. NET_CFG_VSP_LXSJ_CUSTOM stuCustom; // 自定义配置项
  59601. NET_CFG_VSP_LXSJ_ROLLCONFIG stuRollConfig; // 滚动配置项
  59602. NET_CFG_VSP_LXSJ_TRAFFICJAM stuTrafficJam; // 交通拥堵事件配置项
  59603. NET_CFG_VSP_LXSJ_RADARPREALARM stuRadarPreAlarm; // 雷达预警配置项
  59604. }NET_CFG_VSP_LXSJ_INFO;
  59605. /////////////////////////////////////////////////////end////////////////////////////////////////////////////////////////////////
  59606. ///@brief 对应模式下的值
  59607. typedef struct tagNET_CFG_GLOBAL_MODEVALUE_INFO
  59608. {
  59609. int nNormal; // 普通模式的值
  59610. int nAlarm; // 报警模式的值
  59611. BYTE byReserved[24]; // 保留字段
  59612. }NET_CFG_GLOBAL_MODEVALUE_INFO;
  59613. ///@brief 传感器报警全局配置
  59614. typedef struct tagNET_CFG_SENSOR_ALARM_GLOBAL_INFO
  59615. {
  59616. DWORD dwSize;
  59617. NET_CFG_GLOBAL_MODEVALUE_INFO stuFrequency; // 设备采集周期
  59618. NET_CFG_GLOBAL_MODEVALUE_INFO stuTimes; // 设备采集次数
  59619. }NET_CFG_SENSOR_ALARM_GLOBAL_INFO;
  59620. ///@brief 传感器信息
  59621. typedef struct tagNET_CFG_SERSOR_INFO
  59622. {
  59623. NET_SENSE_METHOD emSenseMethod; // 传感器类型
  59624. int nAlarmLowerLimit; // 下限报警值,低于此值会报警
  59625. int nAlarmHighLimit; // 上限报警值,高于此值会报警
  59626. BYTE byReserved[500]; // 保留字段
  59627. }NET_CFG_SERSOR_INFO;
  59628. ///@brief 传感器报警配置
  59629. typedef struct tagNET_CFG_SENSOR_ALARM_INFO
  59630. {
  59631. DWORD dwSize;
  59632. int nMaxNum; // pstSensorList数组分配的内存的最大个数
  59633. int nRetNum; // 实际传感器的个数
  59634. NET_CFG_SERSOR_INFO* pstSensorList; // 传感器列表,内存由用户分配,大小为nMaxNum * sizeof(NET_CFG_SERSOR_INFO)
  59635. }NET_CFG_SENSOR_ALARM_INFO;
  59636. ///@brief 时间点
  59637. typedef struct tagNET_TIME_POINT
  59638. {
  59639. int bEnable; // 使能
  59640. int nHour; // 时
  59641. int nMin; // 分
  59642. int nSec; // 秒
  59643. }NET_TIME_POINT;
  59644. ///@brief 定时抓拍配置(对应枚举 NET_EM_CFG_TIMINGCAPTURE)
  59645. typedef struct tagNET_CFG_TIMINGCAPTURE_INFO
  59646. {
  59647. DWORD dwSize;
  59648. NET_TIME_POINT stuTimeSchedule[DH_N_WEEKS]; // 定时抓拍时间(注:7个元素中,第一个是星期日,第二个是星期一,以此类推)
  59649. }NET_CFG_TIMINGCAPTURE_INFO;
  59650. ///@brief 音频循环播放报警配置
  59651. typedef struct tagNET_LOOPPLAYBACK_AUDIOALARM_INFO
  59652. {
  59653. DWORD dwSize; // 结构体大小
  59654. BOOL bEnable; // 使能,开启:TRUE 关闭:FALSE
  59655. DH_TSECT stuTimeSection[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 布撤防时间段
  59656. char szAudioFilePath[256]; // 语音播报文件路径
  59657. char szStartTime[20]; // 开始时间
  59658. char szEndTime[20]; // 结束时间
  59659. }NET_LOOPPLAYBACK_AUDIOALARM_INFO;
  59660. ///@brief 云台速度配置
  59661. typedef struct tagNET_CFG_PTZ_SPEED
  59662. {
  59663. DWORD dwSize;
  59664. int nPtzSpeed; // 云台速度 0~4
  59665. int nPatternSpeed; // 巡迹速度 1-10档可调,10档为100%速度,5档为50%速度,依此类推。
  59666. }NET_CFG_PTZ_SPEED;
  59667. ///@brief 云台水平旋转组限制信息
  59668. typedef struct tagNET_CFG_HORIZONTAL_ROTATION_LIMIT_INFO
  59669. {
  59670. BOOL bLimitEnable; // 限制使能
  59671. int nLimitMode; // 限制模式 0:左右 1:上下
  59672. BYTE byReserved[256]; // 保留字节
  59673. } NET_CFG_HORIZONTAL_ROTATION_LIMIT_INFO;
  59674. ///@brief 云台水平旋转组扫描配置 NET_EM_CFG_PTZ_HORIZONTAL_ROTATION_SCAN
  59675. typedef struct tagNET_CFG_HORIZONTAL_ROTATION_GROUP_SCAN_INFO
  59676. {
  59677. DWORD dwSize; // 结构体大小
  59678. NET_CFG_HORIZONTAL_ROTATION_LIMIT_INFO stuHorizontalRotationInfo; // 云台水平旋转组限制信息
  59679. } NET_CFG_HORIZONTAL_ROTATION_GROUP_SCAN_INFO;
  59680. ///@brief 线扫信息
  59681. typedef struct tagNET_AUTOSCAN_INFO
  59682. {
  59683. char szName[32]; // 线扫号名称
  59684. BOOL bLeftEnable; // 该线扫左边界是否生效
  59685. BOOL bRightEnable; // 该线扫右边界是否生效
  59686. UINT nScanSpeed; // 线扫速度,0~7
  59687. BYTE byReserved[948]; // 预留
  59688. }NET_AUTOSCAN_INFO;
  59689. ///@brief 自动线扫设置
  59690. typedef struct tagNET_CFG_AUTOSCAN_INFO
  59691. {
  59692. DWORD dwSize; // 结构体大小
  59693. int nMaxScanInfoNum; // 用户分配的pAutoScanInfos内存的个数
  59694. NET_AUTOSCAN_INFO* pAutoScanInfos; // 线扫信息,内存由用户分配,大小应为 nMaxScanInfoNum * sizeof(NET_AUTOSCAN_INFO)
  59695. int nRetScanInfoNum; // 实际获取/设置的配置的个数,必须小于nMaxScanInfoNum
  59696. }NET_CFG_AUTOSCAN_INFO;
  59697. ///@brief 巡航优先模式
  59698. typedef enum tagEM_TOUR_PRIOR_MODE
  59699. {
  59700. EM_TOUR_PRIOR_MODE_UNKNOWN, // 未知
  59701. EM_TOUR_PRIOR_MODE_SWITCH, // 场景优先
  59702. EM_TOUR_PRIOR_MODE_DETECT, // 检测优先
  59703. EM_TOUR_PRIOR_MODE_TOUR, // 巡航优先
  59704. } EM_TOUR_PRIOR_MODE;
  59705. ///@brief 巡航路径
  59706. typedef struct tagNET_TOUR_PATH
  59707. {
  59708. UINT nPresetID; // 预置点编号, 范围:1~300
  59709. UINT nDuration; // 停留时间, 范围:30~900, 单位:秒
  59710. UINT nSpeed; // 预置点速度等级, 范围:1~10
  59711. BYTE byReserved[508]; // 预留字节
  59712. } NET_TOUR_PATH;
  59713. ///@brief 巡航组信息
  59714. typedef struct tagNET_TOUR_GROUP
  59715. {
  59716. DH_TSECT stuTimeSection; // 时间段
  59717. int nTourPathNum; // 巡航路径预置点个数
  59718. NET_TOUR_PATH stuTourPath[10]; // 巡航路径
  59719. BYTE byReserved[1024]; // 预留字节
  59720. } NET_TOUR_GROUP;
  59721. ///@brief 巡航计划
  59722. typedef struct tagNET_TOUR_PLAN
  59723. {
  59724. NET_TOUR_GROUP stuTourGroup[16]; // 巡航组信息
  59725. int nGroupNum; // 巡航组个数
  59726. BYTE byReserved[1020]; // 预留字节
  59727. } NET_TOUR_PLAN;
  59728. ///@brief 巡航组配置
  59729. typedef struct tagNET_CFG_INTELLI_TOUR
  59730. {
  59731. DWORD dwSize; // 结构体大小
  59732. BOOL bEnable; // 巡航计划是否启用
  59733. EM_TOUR_PRIOR_MODE emTourPriMode; // 巡航优先模式
  59734. UINT nIdleWaitingTime; // 空闲等待时间, 即用户停止操作设备后,到巡航计划继续生效的空闲延时时间,单位:秒
  59735. NET_TOUR_PLAN stuTourPlan[7]; // 巡航计划,每一维表示星期几
  59736. UINT nSceneSwitchingTime; // 场景切换时间, 在巡航计划开启,优先模式为检测优先或者巡航优先时,一定时间检测不到物体后,自动转到下一个场景
  59737. BYTE byReserved[4]; // 对齐
  59738. }NET_CFG_INTELLI_TOUR;
  59739. ///@brief 白光灯视频通道配置 NET_PRIOR_MODE_INFO
  59740. typedef struct tagNET_CFG_COAXIAL_LIGHT_INFO
  59741. {
  59742. DWORD dwSize;
  59743. BOOL bEnable; // 联动使能
  59744. DH_TSECT stuTimeSection[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 白光灯联动时间段
  59745. } NET_CFG_COAXIAL_LIGHT_INFO;
  59746. ///@brief 视频输出颜色
  59747. typedef struct tagNET_VIDEO_OUT_COLOR
  59748. {
  59749. UINT nBrightness; // 亮度, 0~100
  59750. UINT nContrast; // 对比度, 0~100
  59751. UINT nSaturation; // 饱和度, 0~100
  59752. UINT nHue; // 色调, 0~100
  59753. UINT nGamma; // Gamma值, 0~100
  59754. BYTE byResered[132]; // 保留字节
  59755. } NET_VIDEO_OUT_COLOR;
  59756. ///@brief 输出信号模式
  59757. typedef enum tagEM_VIDEO_OUT_FORMAT
  59758. {
  59759. EM_VIDEO_OUT_FORMAT_UNKNOWN, // 未知
  59760. EM_VIDEO_OUT_FORMAT_AUTO, // Auto, 不允许下发
  59761. EM_VIDEO_OUT_FORMAT_TV, // TV
  59762. EM_VIDEO_OUT_FORMAT_VGA, // VGA
  59763. EM_VIDEO_OUT_FORMAT_DVI, // DVI
  59764. EM_VIDEO_OUT_FORMAT_HDMI, // DHMI
  59765. EM_VIDEO_OUT_FORMAT_SPOT, // SPOT
  59766. EM_VIDEO_OUT_FORMAT_SDI, // SDI
  59767. } EM_VIDEO_OUT_FORMAT;
  59768. ///@brief 输出扫描模式
  59769. typedef enum tagEM_VIDEO_OUT_SCAN_FORMAT
  59770. {
  59771. EM_VIDEO_OUT_SCAN_FORMAT_UNKNOWN, // 未知
  59772. EM_VIDEO_OUT_SCAN_FORMAT_PROGRESSIVE, // 逐行
  59773. EM_VIDEO_OUT_SCAN_FORMAT_INTERLACE, // 隔行
  59774. } EM_VIDEO_OUT_SCAN_FORMAT;
  59775. ///@brief 视频输出模式
  59776. typedef struct tagNET_VIDEO_OUT_MODE
  59777. {
  59778. int nWidth; // 水平分辨率
  59779. int nHeight; // 垂直分辨率
  59780. int nBPP; // 颜色深度
  59781. int nRefreshRate; // 刷新频率
  59782. EM_VIDEO_OUT_FORMAT emFormat; // 输出信号模式
  59783. EM_VIDEO_OUT_SCAN_FORMAT emScanFormat; // 输出扫描模式
  59784. BYTE byResered[128]; // 保留字节
  59785. } NET_VIDEO_OUT_MODE;
  59786. ///@brief 自定义视频输出模式
  59787. typedef struct tagNET_VIDEO_OUT_USERDEF_MODE
  59788. {
  59789. int nWidth; // 水平分辨率
  59790. int nHeight; // 垂直分辨率
  59791. int nBPP; // 颜色深度
  59792. int nRefreshRate; // 刷新频率
  59793. EM_VIDEO_OUT_FORMAT emFormat; // 输出信号模式
  59794. EM_VIDEO_OUT_SCAN_FORMAT emScanFormat; // 输出扫描模式
  59795. BYTE byResered[128]; // 保留字节
  59796. } NET_VIDEO_OUT_USERDEF_MODE;
  59797. ///@brief 视频输出配置 NET_EM_CFG_VIDEO_OUT
  59798. typedef struct tagNET_CFG_VIDEO_OUT_INFO
  59799. {
  59800. DWORD dwSize;
  59801. BOOL bEnable; // 使能
  59802. UINT nMargin[4]; // 缩小比率,每一项分别表示视频输出左上右下四个边的缩小比率,每项0~100
  59803. BOOL bIQIMode; // 输出图像增强
  59804. BOOL bIsUserDefMode; // 是否启用户自定义视频输出模式
  59805. NET_VIDEO_OUT_COLOR stuColor; // 视频输出颜色
  59806. NET_VIDEO_OUT_MODE stuMode; // 视频输出模式
  59807. NET_VIDEO_OUT_USERDEF_MODE stuSelfDefMode; // 自定义视频输出模式, 当bIsUserDefMode为TRUE时有效
  59808. } NET_CFG_VIDEO_OUT_INFO;
  59809. ///@brief 配置录像上传到云服务器的时间段
  59810. typedef struct tagNET_CFG_CLOUDUPLOADTIME_INFO
  59811. {
  59812. DWORD dwSize;
  59813. BOOL bEnable; // 使能
  59814. NET_TIME stStartTime; // 开始时间段,在时间段内进行视频上传
  59815. NET_TIME stEndTime; // 结束时间段,在时间段内进行视频上传
  59816. }NET_CFG_CLOUDUPLOADTIME_INFO;
  59817. ///@brief 云台
  59818. typedef struct tagNET_CFG_PATTERN_PTZ_INFO
  59819. {
  59820. BOOL bEnable; // 巡迹生效使能 TRUE 生效,FALSE 失效
  59821. char szName[32]; // 巡迹号名称(自定义名称,要有唯一性)
  59822. BYTE byReserved[1020]; // 保留字节
  59823. }NET_CFG_PATTERN_PTZ_INFO;
  59824. ///@brief 自动巡迹设置
  59825. typedef struct tagNET_CFG_AUTO_PATTERN_INFO
  59826. {
  59827. DWORD dwSize; // 结构体大小
  59828. NET_CFG_PATTERN_PTZ_INFO stuPatternPtzInfo[32]; // 云台信息
  59829. int nPatternPtzInfo; // 云台个数
  59830. }NET_CFG_AUTO_PATTERN_INFO;
  59831. ///@brief 单个平台接入启动选项
  59832. typedef enum tagEM_SERVER_OPTION
  59833. {
  59834. EM_SERVER_OPTION_UNKNOWN, // 未知
  59835. EM_SERVER_OPTION_DISABLE, // 平台接入不启动
  59836. EM_SERVER_OPTION_GB28181, // 以28181接入方式开启
  59837. EM_SERVER_OPTION_GB35114, // 以35114接入方式开启
  59838. }EM_SERVER_OPTION;
  59839. ///@brief 通道相关信息
  59840. typedef struct tagNET_CHANNEL_INFO
  59841. {
  59842. char szID[MAX_CHANNEL_ID_LEN]; // 通道编号
  59843. unsigned int nAlarmLevel; // 报警级别,范围[1,6]
  59844. BYTE byReserved[1024]; // 保留字节
  59845. }NET_CHANNEL_INFO;
  59846. ///@brief 报警相关信息
  59847. typedef struct tagNET_ALARM_INFO
  59848. {
  59849. char szID[MAX_CHANNEL_ID_LEN]; // 通道编号
  59850. unsigned int nAlarmLevel; // 报警级别,范围[1,6]
  59851. BYTE byReserved[1024]; // 保留字节
  59852. }NET_ALARM_INFO;
  59853. ///@brief 音频输出通道相关信息
  59854. typedef struct tagNET_AUDIO_OUTPUT_CHANNEL_INFO
  59855. {
  59856. char szID[MAX_CHANNEL_ID_LEN]; // 通道编号
  59857. BYTE byReserved[1024]; // 保留字节
  59858. }NET_AUDIO_OUTPUT_CHANNEL_INFO;
  59859. ///@brief SIP服务器信息
  59860. typedef struct tagNET_SIP_SERVER_INFO
  59861. {
  59862. EM_SERVER_OPTION emServerOption; // 单个平台接入启动选项
  59863. char szSipSvrId[MAX_SIP_SVR_ID_LEN]; // SIP服务器编号
  59864. char szDomain[MAX_SIP_DOMAIN_LEN]; // SIP域
  59865. char szSipSvrIp[MAX_SIP_SVR_IP_LEN]; // SIP服务器IP
  59866. char szDeviceId[MAX_SIP_SERVER_DEVICE_ID_LEN]; // 设备编号
  59867. char szPassword[MAX_REG_PASSWORD_LEN]; // 注册密码
  59868. unsigned short nLocalSipPort; // 本地SIP服务端口
  59869. unsigned short nSipSvrPort; // SIP服务器端口
  59870. unsigned int nSipRegExpires; // 注册有效期,单位:秒
  59871. unsigned int nRegInterval; // 注册失败后重新注册间隔,单位:秒
  59872. unsigned int nKeepAliveCircle; // 心跳周期,单位:秒
  59873. unsigned int nMaxTimeoutTimes; // 最大心跳超时次数
  59874. char szCivilCode[MAX_CIVIL_CODE_LEN]; // 行政区划代码
  59875. char szIntervideoID[MAX_INTERVIDEO_ID_LEN]; // 接入模块识别码
  59876. NET_CHANNEL_INFO* pstuChannnelInfo; // 通道相关信息,由用户申请内存,大小为sizeof(NET_CHANNEL_INFO)*nChannelInfoNum
  59877. unsigned int nChannelInfoNum; // 通道信息个数,可以根据登陆时获取的通道数为准
  59878. unsigned int nRetChannelInfoNum; // 实际返回的通道号信息个数
  59879. NET_ALARM_INFO* pstuAlarmInfo; // 报警通道相关信息,由用户申请内存,大小为sizeof(NET_ALARM_INFO)*nAlarmInfoNum
  59880. unsigned int nAlarmInfoNum; // 报警信息个数,最大值为640
  59881. unsigned int nRetAlarmInfoNum; // 实际返回的报警通道信息个数
  59882. NET_AUDIO_OUTPUT_CHANNEL_INFO* pstuAudioOutputChnInfo; // 音频输出通道相关信息,由用户申请内存,大小为sizeof(NET_AUDIO_OUTPUT_CHANNEL_INFO)*nAudioOutputChnInfoNum
  59883. unsigned int nAudioOutputChnInfoNum; // 音频输出通道相关信息个数,最大值为181
  59884. unsigned int nRetAudioOutputChnInfoNum; // 实际返回的音频输出通道信息个数
  59885. BYTE byReserved[1024]; // 预留字节
  59886. }NET_SIP_SERVER_INFO;
  59887. ///@brief 公安一所平台接入配置信息
  59888. typedef struct tagNET_CFG_VSP_GAYS_SERVER_INFO
  59889. {
  59890. DWORD dwSize; // 结构体大小
  59891. unsigned int nSipServerInfoNum; // 下发SIP服务器信息的个数,不超过MAX_SIP_SERVER_NUM
  59892. NET_SIP_SERVER_INFO stuSipServerInfo[MAX_SIP_SERVER_NUM]; // SIP服务器信息
  59893. unsigned int nRetSipServerInfoNum; // 获取到的实际返回SIP服务器信息个数
  59894. BYTE byReserved[4]; // 预留对齐字节
  59895. }NET_CFG_VSP_GAYS_SERVER_INFO;
  59896. ///@brief 协同签名服务器配置信息,对应 NET_EM_CFG_VSP_CO_SIGN_SERVER
  59897. typedef struct tagNET_CFG_VSP_CO_SIGN_SERVER_INFO
  59898. {
  59899. DWORD dwSize; // 结构体大小
  59900. char szCoSignServerIP[64]; // 协同签名服务器IP地址
  59901. unsigned int nCoSignServerPort; // 协同签名服务器端口
  59902. }NET_CFG_VSP_CO_SIGN_SERVER_INFO;
  59903. ///@brief 上报对象信息
  59904. typedef struct tagNET_VSP_GAVI_NOTIFY_OBJECT
  59905. {
  59906. BOOL bFaceChecked; // f目标选中
  59907. BOOL bPersonChecked; // b目标选中
  59908. BOOL bMotorVehicleChecked; // 机动车选中
  59909. BOOL bNonMotorVehicleChecked; // 非机动车选中
  59910. BOOL bImageChecked; // 图片选中
  59911. BYTE byReserved[516]; // 预留字段
  59912. }NET_VSP_GAVI_NOTIFY_OBJECT;
  59913. ///@brief 通道信息
  59914. typedef struct tagNET_VSP_GAVI_CHANNEL_INFO
  59915. {
  59916. char szChannelEncode[24]; // 通道编码
  59917. NET_VSP_GAVI_NOTIFY_OBJECT stuNotifyObject; // 上报设备信息
  59918. BYTE byReserved[512]; // 预留字段
  59919. }NET_VSP_GAVI_CHANNEL_INFO;
  59920. ///@brief 接入平台枚举
  59921. typedef enum tagEM_VSP_GAVI_PLATFORM_CODE
  59922. {
  59923. EM_VSP_GAVI_PLATFORM_CODE_UNKNOWN = -1,
  59924. EM_VSP_GAVI_PLATFORM_CODE_DEFAULT,
  59925. EM_VSP_GAVI_PLATFORM_CODE_DAHUA,
  59926. EM_VSP_GAVI_PLATFORM_CODE_HKTDA_CLOUDSTORAGE,
  59927. EM_VSP_GAVI_PLATFORM_CODE_UNIVIEW,
  59928. EM_VSP_GAVI_PLATFORM_CODE_HKTEST,
  59929. EM_VSP_GAVI_PLATFORM_CODE_SHQPNETPOSE,
  59930. EM_VSP_GAVI_PLATFORM_CODE_HKTDA,
  59931. EM_VSP_GAVI_PLATFORM_CODE_HARZONE,
  59932. EM_VSP_GAVI_PLATFORM_CODE_NETPOSE,
  59933. EM_VSP_GAVI_PLATFORM_CODE_TAOAN,
  59934. EM_VSP_GAVI_PLATFORM_CODE_RESERVED,
  59935. EM_VSP_GAVI_PLATFORM_CODE_HKVIEWGATEWAY,
  59936. EM_VSP_GAVI_PLATFORM_CODE_KODAK,
  59937. }EM_VSP_GAVI_PLATFORM_CODE;
  59938. ///@brief 云存储服务器鉴权密钥
  59939. typedef struct tagNET_HKIMAGESERVER_INFO
  59940. {
  59941. char szAccessKey[136]; // 接入码
  59942. char szSecretKey[136]; // 鉴权密钥
  59943. BYTE szReserved[512]; // 预留字段
  59944. }NET_HKIMAGESERVER_INFO;
  59945. ///@brief 注册平台信息
  59946. typedef struct tagNET_VSP_GAVI_INFO
  59947. {
  59948. char szAddress[128]; // 注册平台IP地址或网络名。IP为空时,不做接入
  59949. char szUserId[64]; // 设备登陆帐号
  59950. char szPassword[64]; // 登陆密码
  59951. UINT nPort; // 注册平台端口号
  59952. BOOL bEnable; // 接入使能
  59953. UINT nKeepAliveTime; // 会话保活周期,范围[10,90],单位秒
  59954. UINT nMaxTimeoutTimes; // 最大超时次数,范围[2,5]
  59955. UINT nRegisterInterval; // 注册失败后重新注册随机时间上限,范围[30,300],单位秒
  59956. char szDeviceID[24]; // 注册设备ID
  59957. NET_VSP_GAVI_CHANNEL_INFO* pstuChannelInfo; // 通道信息,用户分配内存
  59958. UINT nChannelCount; // pstuChannelInfo 个数,和通道数保持一致
  59959. UINT nChannelCountRet; // 返回的 pstuChannelInfo 个数
  59960. EM_VSP_GAVI_PLATFORM_CODE emPlatform; // 当前平台
  59961. BOOL bIsOnLine; // 是否在线,不可修改
  59962. NET_HKIMAGESERVER_INFO* pHKImageServerInfo; // 云存储服务器鉴权密钥信息,emPlatform 为 EM_VSP_GAVI_PLATFORM_CODE_HKTDA_CLOUDSTORAGE时有效
  59963. BYTE byReserved[68]; // 保留字节
  59964. }NET_VSP_GAVI_INFO;
  59965. ///@brief 接入平台范围信息
  59966. typedef struct tagNET_VSP_GAVI_PLATFORM_INFO
  59967. {
  59968. EM_VSP_GAVI_PLATFORM_CODE emPlatformCode; // 平台码
  59969. char szPlatformName[128]; // 平台名称
  59970. BYTE byReserved[132]; // 预留字段
  59971. }NET_VSP_GAVI_PLATFORM_INFO;
  59972. ///@brief 公安视频图像信息应用系统接入配置,对应 NET_EM_CFG_VSP_GAVI
  59973. typedef struct tagNET_CFG_VSP_GAVI_INFO
  59974. {
  59975. DWORD dwSize; // 结构体大小
  59976. int nGaviInfoCount; // 注册平台个数
  59977. NET_VSP_GAVI_INFO stuGaviInfo[16]; // 注册平台信息
  59978. int nPlatformCount; // stuPlatformInfo个数
  59979. NET_VSP_GAVI_PLATFORM_INFO stuPlatformInfo[64]; // 接入平台范围信息,不允许修改
  59980. }NET_CFG_VSP_GAVI_INFO;
  59981. ///@brief ONVIF服务配置, 对应 NET_EM_CFG_VSP_ONVIF
  59982. typedef struct tagNET_CFG_VSP_ONVIF_INFO
  59983. {
  59984. DWORD dwSize; // 结构体大小
  59985. BOOL bServiceStart; // 开关控制
  59986. }NET_CFG_VSP_ONVIF_INFO;
  59987. ///@brief 目标离线消费基本配置, 对应 NET_EM_CFG_VSP_LRLXXF_MODULE
  59988. typedef struct tagNET_CFG_VSP_LRLXXF_MODULE_INFO
  59989. {
  59990. DWORD dwSize; // 结构体大小
  59991. BOOL bEnable; // 平台接入使能, TRUE:启动平台接入模块, FALSE:关闭平台接入模块
  59992. }NET_CFG_VSP_LRLXXF_MODULE_INFO;
  59993. ///@brief 自定义配置
  59994. typedef struct tagNET_VSP_LRLXXF_CUSTOM_INFO
  59995. {
  59996. UINT nReportInterval; // ReportInterval, web展现, 单位分钟
  59997. char szEvoConsumeUrl[128]; // EvoConsumeUrl, web展现
  59998. char szClientSecret[128]; // ClientSecret, web展现
  59999. char szClientID[128]; // ClientID, web展现
  60000. char szGetTokenUrl[128]; // GetTokenUrl, web展现
  60001. char byReserved[256]; // 预留字段
  60002. }NET_VSP_LRLXXF_CUSTOM_INFO;
  60003. ///@brief 目标离线消费个性化配置, 对应 NET_EM_CFG_VSP_LRLXXF_CUSTOM
  60004. typedef struct tagNET_CFG_VSP_LRLXXF_CUSTOM_INFO
  60005. {
  60006. DWORD dwSize; // 结构体大小
  60007. NET_VSP_LRLXXF_CUSTOM_INFO stuCustom; // 自定义配置
  60008. }NET_CFG_VSP_LRLXXF_CUSTOM_INFO;
  60009. ///@brief 注册协议
  60010. typedef enum tagEM_REGISTRATION_PROTOCOL
  60011. {
  60012. EM_REGISTRATION_PROTOCOL_UNKNWON, // 未知
  60013. EM_REGISTRATION_PROTOCOL_PRIVATE, // Private协议
  60014. EM_REGISTRATION_PROTOCOL_SIP, // 私有SIP协议
  60015. EM_REGISTRATION_PROTOCOL_H323, // H323协议
  60016. EM_REGISTRATION_PROTOCOL_HITRY_CLOUD, // HitryCloud协议
  60017. }EM_REGISTRATION_PROTOCOL;
  60018. ///@brief 终端注册到视频会议服务器的配置信息, 对应 NET_EM_CFG_VSP_TERMINAL_REGISTER_INFO
  60019. typedef struct tagNET_CFG_VSP_TERMINAL_REGISTER_INFO
  60020. {
  60021. DWORD dwSize; // 结构体大小
  60022. BOOL bEnable; // 使能
  60023. char szDeviceID[16]; // 设备ID
  60024. char szPassword[32]; // 密码
  60025. char szRemoteIp[64]; // 服务器IP
  60026. UINT nRemotePort; // 服务器端口, 默认50060, 取值范围:1-65535
  60027. BOOL bIsAutoJoinConference; // 是否自动入会
  60028. EM_REGISTRATION_PROTOCOL emProtocol; // 注册协议
  60029. BOOL bIsRecord; // 终端是否录制互动会议录像
  60030. }NET_CFG_VSP_TERMINAL_REGISTER_INFO;
  60031. ///@brief 媒体数据加密配置
  60032. typedef struct tagNET_MEDIA_ENCRYPT_INFO
  60033. {
  60034. DWORD dwSize; // 结构体大小
  60035. BOOL bKeyFrameEncryptEnable; // 是否开启关键帧数据加密
  60036. unsigned int nVKUpdateTime; // 密钥更新周期,单位:分钟,若为0,则表示密钥不更新
  60037. BOOL bRTSPOverTlsEnable; // 是否开启RTSP TLS服务
  60038. EM_ALGORITHM_TYPE emAlgorithm; // 加密算法
  60039. }NET_MEDIA_ENCRYPT_INFO;
  60040. ///@brief 下载数据加密配置
  60041. typedef struct tagNET_DOWNLOAD_ENCRYPT_INFO
  60042. {
  60043. DWORD dwSize; // 结构体大小
  60044. BOOL bEncryptEnable; // 是否开启数据加密
  60045. char szEncryptPasswd[256]; // 加密下载数据密码
  60046. EM_ALGORITHM_TYPE emAlgorithm; // 加密算法
  60047. }NET_DOWNLOAD_ENCRYPT_INFO;
  60048. ///@brief 存储数据加密配置
  60049. typedef struct tagNET_STORE_ENCRYPT_INFO
  60050. {
  60051. DWORD dwSize; // 结构体大小
  60052. BOOL bEnable; // 是否需要录像存储加密
  60053. int nVKEKMode; // 0:未知 1:密钥管理服务器分配管理 2:用户自定义密码
  60054. EM_ALGORITHM_TYPE emAlgorithm; // 加密算法
  60055. char szEncryptPasswd[64]; // 客户配置的密码,用于对码流加密密码的二次加密,bEnable为TRUE且nVKEKMode为2时填写
  60056. }NET_STORE_ENCRYPT_INFO;
  60057. ///@brief 国家/地区配置
  60058. typedef struct tagNET_CFG_COUNTRY_INFO
  60059. {
  60060. DWORD dwSize; // 结构体大小
  60061. char szCountry[3]; // 国家/地区,2字节大写格式,符合ISO 3166规范
  60062. BYTE byReserved1[1]; // 字节对齐, 非保留字节
  60063. }NET_CFG_COUNTRY_INFO;
  60064. ///@brief 视频制式
  60065. typedef enum tagEM_VIDEO_STANDARD
  60066. {
  60067. EM_VIDEO_STANDARD_UNKNOWN,
  60068. EM_VIDEO_STANDARD_PAL, // "PAL"
  60069. EM_VIDEO_STANDARD_NTSC, // "NTSC"
  60070. EM_VIDEO_STANDARD_SECAM, // "SECAM"
  60071. }EM_VIDEO_STANDARD;
  60072. ///@brief 视频制式配置
  60073. typedef struct tagNET_CFG_VIDEOSTANDARD_INFO
  60074. {
  60075. DWORD dwSize; // 结构体大小
  60076. EM_VIDEO_STANDARD emVideoStandard; // 视频制式
  60077. }NET_CFG_VIDEOSTANDARD_INFO;
  60078. ///@brief NVR级联控制IPC灯光配置
  60079. typedef struct tagNET_CFG_CASCADE_LIGHT_INFO
  60080. {
  60081. DWORD dwSize;
  60082. int nCount; // 实际灯光个数
  60083. BOOL bEnable[16]; // 灯光使能
  60084. } NET_CFG_CASCADE_LIGHT_INFO;
  60085. ///@brief 乐橙简易智能追踪配置
  60086. typedef struct tagNET_CFG_LE_SMARTTRACK_INFO
  60087. {
  60088. DWORD dwSize; // 结构体大小
  60089. BOOL bEnable; // 乐橙简易智能追踪使能
  60090. } NET_CFG_LE_SMARTTRACK_INFO;
  60091. ///@brief 乐橙镜头遮挡配置
  60092. typedef struct tagNET_CFG_LE_LENS_MASK_INFO
  60093. {
  60094. DWORD dwSize; // 结构体大小
  60095. BOOL bEnable; // 镜头是否处在遮挡位置, TRUE:遮挡位, 无视频; FALSE:正常位置
  60096. int nValidLastPositionNum; // 有效的遮挡前云台位置坐标数组个数
  60097. BYTE byReserved[4]; // 字节对齐
  60098. double dbLastPosition[3]; // 遮挡前云台位置坐标数组, 记录遮挡前的云台位置, 恢复时回到该坐标
  60099. // 第一个元素为水平角度,归一化到-1~1;第二个元素为垂直角度,归一化到-1~1;第三个元素为放大倍数,归一化到0~1。
  60100. // 数组元素分别对应DH_PTZ_LOCATION_INFO中的pan、tilt、zoom,对应DH_DEVSTATE_PTZ_LOCATION枚举命令
  60101. // 遮挡使能为FALSE时,无需填坐标
  60102. }NET_CFG_LE_LENS_MASK_INFO;
  60103. ///@brief 注册类型
  60104. typedef enum tagNET_EM_REGISTER_TYPE
  60105. {
  60106. NET_EM_REGISTER_TYPE_UNKNOWN, // 未知
  60107. NET_EM_REGISTER_TYPE_LECHENG, // 国内:lecheng
  60108. NET_EM_REGISTER_TYPE_EASY4IP, // 国外:easy4ip
  60109. }NET_EM_REGISTER_TYPE;
  60110. ///@brief 乐橙云注册配置(NET_EM_CFG_VSP_PAAS)
  60111. typedef struct tagNET_CFG_VSP_PAAS_INFO
  60112. {
  60113. DWORD dwSize; // 结构体大小
  60114. BOOL bEnable; // 接入使能,可用于WEB端获取/设置接入使能
  60115. BOOL bOnline; // 是否在线标识,可用于判断设备是否与平台建立正常连接
  60116. char szRsServerIP[DH_MAX_IPADDR_EX_LEN]; // 注册服务器地址
  60117. int nRsServerPort; // 注册服务器端口
  60118. char szSN[DH_DEV_SERIALNO_LEN]; // 设备序列号
  60119. char szCheckCode[DH_DEV_SERIALNO_LEN]; // 设备验证码
  60120. NET_EM_REGISTER_TYPE emType; // 注册类型
  60121. }NET_CFG_VSP_PAAS_INFO;
  60122. ///@brief 目标认证模式
  60123. typedef enum tagNET_EM_FACE_AUTH_MODE
  60124. {
  60125. NET_EM_FACE_AUTH_MODE_UNKNOWN = 0, // 未知
  60126. NET_EM_FACE_AUTH_MODE_LOCAL, // 本地比对认证
  60127. NET_EM_FACE_AUTH_MODE_REMOTE, // 远程比对认证
  60128. }NET_EM_FACE_AUTH_MODE;
  60129. ///@brief 卡片认证模式
  60130. typedef enum tagNET_EM_CARD_AUTH_MODE
  60131. {
  60132. NET_EM_CARD_AUTH_MODE_UNKNOWN = 0, // 未知
  60133. NET_EM_CARD_AUTH_MODE_LOCAL, // 本地比对认证
  60134. NET_EM_CARD_AUTH_MODE_REMOTE, // 远程比对认证
  60135. }NET_EM_CARD_AUTH_MODE;
  60136. ///@brief 二维码认证模式
  60137. typedef enum tagNET_EM_QR_CODE_AUTH_MODE
  60138. {
  60139. NET_EM_QR_CODE_AUTH_MODE_UNKNOWN = 0, // 未知
  60140. NET_EM_QR_CODE_AUTH_MODE_LOCAL, // 本地比对认证
  60141. NET_EM_QR_CODE_AUTH_MODE_REMOTE, // 远程比对认证
  60142. }NET_EM_QR_CODE_AUTH_MODE;
  60143. ///@brief 所有权限认证模式
  60144. typedef enum tagNET_EM_ALL_AUTH_MODE
  60145. {
  60146. NET_EM_ALL_AUTH_MODE_UNKNOWN = 0, // 未知
  60147. NET_EM_ALL_AUTH_MODE_DISABLE, // 无效,当需要单独配置各个权限认证模式时使用
  60148. NET_EM_ALL_AUTH_MODE_LOACL, // 本地比对认证
  60149. NET_EM_ALL_AUTH_MODE_REMOTE, // 远程比对认证
  60150. }NET_EM_ALL_AUTH_MODE;
  60151. ///@brief 在离线开门认证模式配置,如果是在线模式,设备开门权限由远程鉴权,如果是离线模式,由设备端来鉴权
  60152. typedef struct tagNET_CFG_ACCESSCTL_AUTH_MODE
  60153. {
  60154. DWORD dwSize; // 结构体大小
  60155. NET_EM_FACE_AUTH_MODE emFaceAuthMode; // 目标认证模式
  60156. NET_EM_CARD_AUTH_MODE emCardAuthMode; // 卡片认证模式
  60157. NET_EM_QR_CODE_AUTH_MODE emQRCodeAuthMode; // 二维码认证模式
  60158. NET_EM_ALL_AUTH_MODE emAllAuthMode; // 所有权限认证模式,当该模式生效时,其他认证模式以此模式为准,当该模式无效时,使用各个权限各自的认证模式
  60159. }NET_CFG_ACCESSCTL_AUTH_MODE;
  60160. ///@brief LED屏显示颜色
  60161. typedef enum tagNET_EM_LED_COLOR
  60162. {
  60163. NET_EM_LED_COLOR_UNKNOWN = 0, // 未知
  60164. NET_EM_LED_COLOR_GREEN, // 绿色
  60165. NET_EM_LED_COLOR_YELLOW, // 黄色
  60166. NET_EM_LED_COLOR_RED, // 红色
  60167. }NET_EM_LED_COLOR;
  60168. ///@brief LED屏显示配置
  60169. typedef struct tagNET_CFG_LED_TEXT
  60170. {
  60171. DWORD dwSize; // 结构体大小
  60172. char szText[128]; // 显示内容
  60173. NET_EM_LED_COLOR emColor; // 显示颜色
  60174. }NET_CFG_LED_TEXT;
  60175. ///@brief LED屏显示批量配置
  60176. typedef struct tagNET_CFG_LED_TEXT_ARRAY
  60177. {
  60178. DWORD dwSize; // 结构体大小
  60179. char szText[128]; // 显示内容
  60180. NET_EM_LED_COLOR emColor; // 显示颜色
  60181. int nHoldTime; // 保持时间(秒)
  60182. }NET_CFG_LED_TEXT_ARRAY;
  60183. ///@brief 一键撤防配置
  60184. typedef struct tagNET_CFG_DISABLE_LINKAGE
  60185. {
  60186. DWORD dwSize; // 结构体大小
  60187. BOOL bEnable; // 撤防联动项功能总开关
  60188. }NET_CFG_DISABLE_LINKAGE;
  60189. ///@brief 周期撤防联动项功能总开关
  60190. typedef struct tagNET_CFG_DISABLE_LINKAGE_TIME_SECTION
  60191. {
  60192. DWORD dwSize; // 结构体大小
  60193. BOOL bEnable; // 周期撤防联动项功能总开关
  60194. DH_TSECT stuTimeSection[DH_N_SCHEDULE_TSECT][DH_N_REC_TSECT]; // 时间段周期设置, 第一维前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段
  60195. } NET_CFG_DISABLE_LINKAGE_TIME_SECTION;
  60196. ///@brief 远程撤防联动项功能总开关配置
  60197. typedef struct tagNET_CFG_REMOTE_DISABLE_LINKAGE_INFO
  60198. {
  60199. DWORD dwSize; // 结构体大小
  60200. BOOL bEnable; // 撤防联动项功能总开关
  60201. }NET_CFG_REMOTE_DISABLE_LINKAGE_INFO;
  60202. ///@brief 远程通道是否同步本地端"周期一键布撤防"配置,对应配置枚举 NET_EM_CFG_REMOTE_DISABLE_LINKAGE_TIME_SECTION_SYNC
  60203. typedef struct tagNET_CFG_REMOTE_DISABLE_LINKAGE_TIME_SECTION_SYNC_INFO
  60204. {
  60205. DWORD dwSize; // 结构体大小
  60206. BOOL bEnable; // 远程通道是否同步本地端"周期一键布撤防"配置功能总开关
  60207. int* pRemoteChannels; // 需要同步的通道号,由用户分配内存
  60208. DWORD nRemoteChannelsCnt; // pRemoteChannels指向的有效通道个数
  60209. DWORD nRetRemoteChannelsCnt; // 获取配置时,返回的有效通道号个数
  60210. }NET_CFG_REMOTE_DISABLE_LINKAGE_TIME_SECTION_SYNC_INFO;
  60211. ///@brief 网络键盘快速控制配置数组元素信息
  60212. typedef struct tagNET_MATRIX_NETKBDFASTCTRL_ELEMENTS_INFO
  60213. {
  60214. int nChannel; // 键盘操作对应的视频源通道
  60215. char szUserName[64]; // 键盘操作对应的用户名
  60216. BYTE byReserved[260]; // 保留字节
  60217. } NET_MATRIX_NETKBDFASTCTRL_ELEMENTS_INFO;
  60218. ///@brief 网络键盘快速控制配置
  60219. typedef struct tagNET_CFG_MATRIX_NETKBDFASTCTRL_INFO
  60220. {
  60221. DWORD dwSize; // 结构体大小
  60222. int nMatrixNetKBDFastCtrlInfoNum; // 网络键盘快速控制配置个数
  60223. NET_MATRIX_NETKBDFASTCTRL_ELEMENTS_INFO stuMatrixNetKBDFastCtrlInfo[128]; // 网络键盘快速控制配置
  60224. } NET_CFG_MATRIX_NETKBDFASTCTRL_INFO;
  60225. ///@brief 保密室代码和名称配置
  60226. typedef struct tagNET_CFG_VIDEO_CHANNEL_LABEL_INFO
  60227. {
  60228. DWORD dwSize; // 结构体大小
  60229. char szSecurityRoomCode[32]; // 保密室代码
  60230. char szSecurityRoomName[32]; // 保密室名称
  60231. }NET_CFG_VIDEO_CHANNEL_LABEL_INFO;
  60232. ///@brief 预置点抓图数量配置,对应枚举 NET_EM_CFG_PRESET_SNAP_PICTURE_NUM
  60233. typedef struct tagNET_CFG_PRESET_SNAP_PICTURE_NUM
  60234. {
  60235. DWORD dwSize; // 结构体大小
  60236. int nNum; // 抓图数量
  60237. }NET_CFG_PRESET_SNAP_PICTURE_NUM;
  60238. ///@brief 比对报警规则
  60239. typedef enum tagEM_ALARM_RULE_TYPE
  60240. {
  60241. EM_ALARM_RULE_UNKNOWN = -1, // 未知
  60242. EM_ALARM_RULE_NONE, // 不报警
  60243. EM_ALARM_RULE_SUCCESS, // 比对成功报警
  60244. EM_ALARM_RULE_FAIL, // 比对失败报警
  60245. } EM_ALARM_RULE_TYPE;
  60246. ///@brief 联动报警输出通道信息
  60247. typedef struct tagNET_ALARM_OUT_CHANNEL_INFO
  60248. {
  60249. EM_ALARM_RULE_TYPE emAlarmRuleType; // 比对报警规则
  60250. int nAlarmOutLatch; // 报警输出延时, 单位秒, 范围1-300
  60251. BYTE byReserved[128]; // 保留字节
  60252. } NET_ALARM_OUT_CHANNEL_INFO;
  60253. ///@brief 目标识别联动报警通道信息
  60254. typedef struct tagNET_FACE_RECOGNITION_ALARM_CHANNEL
  60255. {
  60256. char szGroupID[64]; // 目标库ID
  60257. char szGroupName[128]; // 目标库名称
  60258. BOOL bAlarmOutEnable; // 目标识别事件是否联动报警输出
  60259. UINT nAlarmChannelNum; // 联动报警输出通道个数
  60260. NET_ALARM_OUT_CHANNEL_INFO stuAlarmChannel[64]; // 联动报警输出通道信息
  60261. BYTE byReserved[256]; // 保留字节
  60262. } NET_FACE_RECOGNITION_ALARM_CHANNEL;
  60263. ///@brief 目标识别联动报警通道配置, 对应枚举 NET_EM_CFG_FACE_RECOGNITION_ALARM
  60264. typedef struct tagNET_FACE_RECOGNITION_ALARM_INFO
  60265. {
  60266. DWORD dwSize; // 结构体大小
  60267. UINT nFaceReconChannelNum; // 目标识别联动报警通道个数
  60268. NET_FACE_RECOGNITION_ALARM_CHANNEL stuFaceReconChannel[50]; // 目标识别联动报警通道信息
  60269. } NET_FACE_RECOGNITION_ALARM_INFO;
  60270. ///@brief 逻辑屏显示内容
  60271. typedef enum tagNET_EM_SCREEN_SHOW_CONTENTS
  60272. {
  60273. EM_TRAFFIC_LATTICE_SCREEN_UNKNOWN = 0, // 未知
  60274. EM_TRAFFIC_LATTICE_SCREEN_PLATENUMBE, // 车牌
  60275. EM_TRAFFIC_LATTICE_SCREEN_SYSTIME, // 系统时间
  60276. EM_TRAFFIC_LATTICE_SCREEN_PARKTIME, // 停车时长
  60277. EM_TRAFFIC_LATTICE_SCREEN_MASTEROFCAR, // 车主姓名
  60278. EM_TRAFFIC_LATTICE_SCREEN_USERTYPE, // 用户类型
  60279. EM_TRAFFIC_LATTICE_SCREEN_REMAINDAY, // 到期天数
  60280. EM_TRAFFIC_LATTICE_SCREEN_PARKCHARGE, // 停车费
  60281. EM_TRAFFIC_LATTICE_SCREEN_REMAINSPACE, // 余位数
  60282. EM_TRAFFIC_LATTICE_SCREEN_SYSDATE, // 系统日期
  60283. EM_TRAFFIC_LATTICE_SCREEN_PASSICONCIRCLE, // 车辆通过指示灯(红圆绿圆组合指示灯)
  60284. EM_TRAFFIC_LATTICE_SCREEN_PASSICONARROW, // 车辆通过指示灯(红叉绿箭组合指示灯)
  60285. EM_TRAFFIC_LATTICE_SCREEN_INTIME, // 入场时间
  60286. EM_TRAFFIC_LATTICE_SCREEN_OUTTIME, // 出场时间
  60287. EM_TRAFFIC_LATTICE_SCREEN_REMARKS, // 备注信息
  60288. EM_TRAFFIC_LATTICE_SCREEN_RESOURCE, // 资源文件(视频或图片)
  60289. EM_TRAFFIC_LATTICE_SCREEN_CUSTOM, // 自定义信息
  60290. }NET_EM_SCREEN_SHOW_CONTENTS;
  60291. ///@brief 逻辑屏显示内容
  60292. typedef struct tagNET_TRAFFIC_LATTICE_SCREEN_SHOW_CONTENTS
  60293. {
  60294. NET_EM_SCREEN_SHOW_CONTENTS emContents; // 逻辑屏显示的内容
  60295. BYTE byReserved1[4]; // 字节对齐
  60296. char szCustomStr[32]; // 自定义内容,emContents为 EM_TRAFFIC_LATTICE_SCREEN_CUSTOM 时有效
  60297. BYTE byReserved[32]; // 预留
  60298. }NET_TRAFFIC_LATTICE_SCREEN_SHOW_CONTENTS;
  60299. ///@brief 点阵屏显示信息
  60300. typedef struct tagNET_TRAFFIC_LATTICE_SCREEN_SHOW_INFO
  60301. {
  60302. NET_TRAFFIC_LATTICE_SCREEN_SHOW_CONTENTS stuContents[64]; // 逻辑屏显示内容
  60303. int nContentsNum; // 逻辑屏个数
  60304. BYTE byReserved[1020]; // 预留
  60305. }NET_TRAFFIC_LATTICE_SCREEN_SHOW_INFO;
  60306. ///@brief 逻辑屏显示方式
  60307. typedef enum tagNET_EM_LATTICE_SCREEN_SHOW_TYPE
  60308. {
  60309. EM_LATTICE_SCREEN_SHOW_TYPE_UNKNOWN = -1, // 未知
  60310. EM_LATTICE_SCREEN_SHOW_TYPE_WORD_CONTROL, // 字段控制显示
  60311. EM_LATTICE_SCREEN_SHOW_TYPE_TRUSTEESHIP_CONTROL, // 托管显示(完全由平台自定义显示)
  60312. }NET_EM_LATTICE_SCREEN_SHOW_TYPE;
  60313. ///@brief 逻辑屏控制方式
  60314. typedef enum tagNET_EM_LATTICE_SCREEN_CONTROL_TYPE
  60315. {
  60316. EM_LATTICE_SCREEN_CONTROL_TYPE_UNKNOWN = -1, // 未知
  60317. EM_LATTICE_SCREEN_CONTROL_TYPE_CAMERA_CONTROL, // 相机控制
  60318. EM_LATTICE_SCREEN_CONTROL_TYPE_PLATFORM_CONTROL, // 平台控制
  60319. }NET_EM_LATTICE_SCREEN_CONTROL_TYPE;
  60320. ///@brief 逻辑屏背景风格模式
  60321. typedef enum tagNET_EM_LATTICE_SCREEN_BACKGROUND_MODE
  60322. {
  60323. NET_EM_LATTICE_SCREEN_BACKGROUND_MODE_UNKNOWN, // 未知
  60324. NET_EM_LATTICE_SCREEN_BACKGROUND_MODE_A, // 背景风格A
  60325. NET_EM_LATTICE_SCREEN_BACKGROUND_MODE_B, // 背景风格B
  60326. NET_EM_LATTICE_SCREEN_BACKGROUND_MODE_C, // 背景风格C
  60327. }NET_EM_LATTICE_SCREEN_BACKGROUND_MODE;
  60328. ///@brief 逻辑屏LOGO类型
  60329. typedef enum tagNET_EM_LATTICE_SCREEN_LOGO_TYPE
  60330. {
  60331. NET_EM_LATTICE_SCREEN_LOGO_TYPE_UNKNOWN, // 未知
  60332. NET_EM_LATTICE_SCREEN_LOGO_TYPE_STENCIL, // 文字
  60333. NET_EM_LATTICE_SCREEN_LOGO_TYPE_PICTURE, // 图片
  60334. }NET_EM_LATTICE_SCREEN_LOGO_TYPE;
  60335. ///@brief 点阵屏LOGO信息
  60336. typedef struct tagNET_TRAFFIC_LATTICE_SCREEN_LOGO_INFO
  60337. {
  60338. NET_EM_LATTICE_SCREEN_LOGO_TYPE emLogoType; // LOGO类型
  60339. char szContent[128]; // emLogoType为文字时,为文字内容;emLogoType为图片时,为图片名称
  60340. }NET_TRAFFIC_LATTICE_SCREEN_LOGO_INFO;
  60341. ///@brief 点阵屏报警提示显示信息
  60342. typedef struct tagNET_TRAFFIC_LATTICE_SCREEN_ALARM_NOTICE_INFO
  60343. {
  60344. char szNoHelmet[128]; // 未带头盔屏幕提示信息
  60345. char szNonMotorOverload[128]; // 非机动车超载提示信息
  60346. }NET_TRAFFIC_LATTICE_SCREEN_ALARM_NOTICE_INFO;
  60347. ///@brief 点阵屏显示信息配置, 对应枚举 NET_EM_CFG_TRAFFIC_LATTICE_SCREEN
  60348. typedef struct tagNET_CFG_TRAFFIC_LATTICE_SCREEN_INFO
  60349. {
  60350. DWORD dwSize; // 结构体大小
  60351. int nStatusChangeTime; // 状态切换间隔,单位:秒,取值10 ~ 60
  60352. NET_TRAFFIC_LATTICE_SCREEN_SHOW_INFO stuNormal; // 常态下
  60353. NET_TRAFFIC_LATTICE_SCREEN_SHOW_INFO stuCarPass; // 过车时
  60354. NET_EM_LATTICE_SCREEN_SHOW_TYPE emShowType; // 显示方式
  60355. NET_EM_LATTICE_SCREEN_CONTROL_TYPE emControlType; // 控制方式
  60356. NET_EM_LATTICE_SCREEN_BACKGROUND_MODE emBackgroundMode; // 背景风格模式
  60357. char szPlayList[10][64]; // 资源文件播放列表,支持视频文件和图片文件播放,按照数组顺序循环播放
  60358. int nPlayListNum; // 资料文件个数
  60359. NET_TRAFFIC_LATTICE_SCREEN_LOGO_INFO stuLogoInfo; // Logo信息
  60360. NET_TRAFFIC_LATTICE_SCREEN_ALARM_NOTICE_INFO stuAlarmNoticeInfo; // 报警提示显示信息
  60361. }NET_CFG_TRAFFIC_LATTICE_SCREEN_INFO;
  60362. #define NET_MAX_PLATEENABLE_NUM 16 // 最大使能过车车牌播报个数
  60363. #define NET_MAX_BROADCAST_ELEMENT_NUM 64 // 最大语音播报元素个数
  60364. ///@brief 使能过车车牌播报功能枚举
  60365. typedef enum tagNET_EM_PLATEENABLE_TYPE
  60366. {
  60367. EM_PLATEENABLE_UNKNOWN = 0, // 未定义
  60368. EM_PLATEENABLE_TIPS, // 播放欢迎词
  60369. EM_PLATEENABLE_PLATE, // 播放车牌
  60370. EM_PLATEENABLE_ELEMENT, // 按照配置元素播报
  60371. } NET_EM_PLATEENABLE_TYPE;
  60372. ///@brief 播报元素类型
  60373. typedef enum tagNET_EM_VOICE_BROADCAST_ELEMENT_TYPE
  60374. {
  60375. EM_VOICE_BROADCAST_ELEMENT_UNKNOWN = 0, // 未知
  60376. EM_VOICE_BROADCAST_ELEMENT_PLATENUMBER, // 车牌号码
  60377. EM_VOICE_BROADCAST_ELEMENT_PARKTIME, // 停车时间
  60378. EM_VOICE_BROADCAST_ELEMENT_PARKCHARGE, // 停车收费
  60379. EM_VOICE_BROADCAST_ELEMENT_USERTYPE, // 用户类型
  60380. EM_VOICE_BROADCAST_ELEMENT_REMAINDAY, // 剩余天数
  60381. EM_VOICE_BROADCAST_ELEMENT_INTIME, // 入场时间
  60382. EM_VOICE_BROADCAST_ELEMENT_OUTTIME, // 出场时间
  60383. EM_VOICE_BROADCAST_ELEMENT_REMARKS, // 备注信息
  60384. EM_VOICE_BROADCAST_ELEMENT_CUSTOM, // 自定义,内容为前缀+后缀字符串
  60385. }NET_EM_VOICE_BROADCAST_ELEMENT_TYPE;
  60386. ///@brief 播报元素
  60387. typedef struct tagNET_TRAFFIC_VOICE_BROADCAST_ELEMENT
  60388. {
  60389. NET_EM_VOICE_BROADCAST_ELEMENT_TYPE emType; // 类型
  60390. BYTE byReserved1[4]; // 字节对齐
  60391. char szPrefix[512]; // 前缀字符串
  60392. char szPostfix[512]; // 后缀字符串
  60393. BYTE byReserved[1024]; // 预留
  60394. }NET_TRAFFIC_VOICE_BROADCAST_ELEMENT;
  60395. ///@brief 智能交通语音播报配置 对应枚举 NET_EM_CFG_TRAFFIC_VOICE_BROADCAST
  60396. typedef struct tagNET_CFG_TRAFFIC_VOICE_BROADCAST_INFO
  60397. {
  60398. DWORD dwSize; // 结构体大小
  60399. int nEnableCount; // 使能播报个数
  60400. NET_EM_PLATEENABLE_TYPE emEnable[NET_MAX_PLATEENABLE_NUM]; // 使能过车车牌播报,见枚举 NET_EM_PLATEENABLE_TYPE
  60401. char szNormalCar[MAX_PATH]; // 普通车辆过车播报内容,例如:播报语音文件"欢迎光临.wav"
  60402. char szTrustCar[MAX_PATH]; // 信任车辆过车播报内容,例如:播报语音文件"欢迎光临.wav"
  60403. char szSuspiciousCar[MAX_PATH]; // 异常车辆过车播报内容,例如:播报语音文件"非注册车辆.wav"
  60404. NET_TRAFFIC_VOICE_BROADCAST_ELEMENT stuElement[NET_MAX_BROADCAST_ELEMENT_NUM]; // 播报元素
  60405. int nElementNum; // stuElement中有效数据个数
  60406. }NET_CFG_TRAFFIC_VOICE_BROADCAST_INFO;
  60407. ///@brief 抓拍类型
  60408. typedef enum tagNET_EM_SNAP_SHOT_TYPE
  60409. {
  60410. NET_EM_SNAP_SHOT_TYPE_UNKNOWN = 0, // 未知
  60411. NET_EM_SNAP_SHOT_TYPE_NEAR, // 近景
  60412. NET_EM_SNAP_SHOT_TYPE_MEDIUM, // 中景
  60413. NET_EM_SNAP_SHOT_TYPE_FAR, // 远景
  60414. NET_EM_SNAP_SHOT_TYPE_FEATURE, // 车牌特写
  60415. }NET_EM_SNAP_SHOT_TYPE;
  60416. ///@brief 抓拍间隔模式
  60417. typedef enum tagNET_EM_SNAP_SHOT_INTERVAL_MODE
  60418. {
  60419. NET_EM_SNAP_SHOT_INTERVAL_UNKNOWN = 0, // 未知
  60420. NET_EM_SNAP_SHOT_INTERVAL_TIME, // 按固定时间间隔,该模式下nSingleInterval有效
  60421. NET_EM_SNAP_SHOT_INTERVAL_FRAMEADAPTSPEED, // 速度自适应帧间隔
  60422. NET_EM_SNAP_SHOT_INTERVAL_FRAME, // 固定帧间隔
  60423. }NET_EM_SNAP_SHOT_INTERVAL_MODE;
  60424. ///@brief 规则集抓拍参数
  60425. typedef struct tagNET_SNAP_SHOT_WITH_RULE_INFO
  60426. {
  60427. UINT nRuleId;
  60428. DWORD dwRuleType; // 规则类型,详见dhnetsdk.h中"智能分析事件类型"
  60429. UINT nSnapShotNum; // 抓拍图片张数
  60430. NET_EM_SNAP_SHOT_TYPE emSnapShotType[MAX_SNAP_SHOT_NUM]; // 抓拍图片类型数组
  60431. UINT nSingleInterval[MAX_SNAP_SHOT_NUM]; // 抓图时间间隔数组,单位秒,数组第一个时间:5~180 默认10, 其余时间(N张抓拍有N-1个间隔时):1~3600 默认20
  60432. NET_EM_SNAP_SHOT_INTERVAL_MODE emIntervalMode; // 抓拍间隔模式
  60433. BYTE byReserved[1024]; // 预留
  60434. }NET_SNAP_SHOT_WITH_RULE_INFO;
  60435. ///@brief 抓拍参数
  60436. typedef struct tagNET_SCENE_SNAP_SHOT_WITH_RULE2_INFO
  60437. {
  60438. UINT nPresetID; // 场景预置点号
  60439. UINT nRetSnapShotRuleNum; // stuSnapShotWithRule中有效数据个数
  60440. NET_SNAP_SHOT_WITH_RULE_INFO stuSnapShotWithRule[32]; // 规则集抓拍参数
  60441. BYTE byReserved[1024]; // 预留
  60442. }NET_SCENE_SNAP_SHOT_WITH_RULE2_INFO;
  60443. ///@brief 场景抓拍设置 对应枚举 NET_EM_CFG_SCENE_SNAP_SHOT_WITH_RULE2
  60444. typedef struct tagNET_CFG_SCENE_SNAP_SHOT_WITH_RULE2_INFO
  60445. {
  60446. DWORD dwSize; // 结构体大小
  60447. UINT nMaxRuleNum; // pstuSnapShotWithRule中用户分配的内存个数
  60448. UINT nRetRuleNum; // pstuSnapShotWithRule中实际有效的数据个数
  60449. NET_SCENE_SNAP_SHOT_WITH_RULE2_INFO* pstuSceneSnapShotWithRule; // 抓拍参数,由用户分配和释放内存,大小为nMaxRuleNum * sizeof(NET_SCENE_SNAP_SHOT_WITH_RULE2_INFO)
  60450. }NET_CFG_SCENE_SNAP_SHOT_WITH_RULE2_INFO;
  60451. ///@brief 停车场景定时抓拍配置信息, 对应枚举 NET_EM_CFG_TRAFFIC_PARKING_SNAP_TIMER
  60452. typedef struct tagNET_CFG_TRAFFIC_PARKING_SNAP_TIMER_INFO
  60453. {
  60454. DWORD deSize; // 结构体大小
  60455. BOOL bEnable; // 是否使能
  60456. UINT nPeriod; // 定时周期,单位为分钟。默认值为5分钟,取值范围[1,60]
  60457. } NET_CFG_TRAFFIC_PARKING_SNAP_TIMER_INFO;
  60458. ///@brief 车辆信息配置, 对应枚举 NET_EM_CFG_VEHICLE_INFO
  60459. typedef struct tagNET_CFG_VEHICLE_INFO
  60460. {
  60461. DWORD deSize; // 结构体大小
  60462. char szOrganization[32]; // 车辆所属公司或者组织
  60463. char szVehicleID[32]; // 车辆编号
  60464. } NET_CFG_VEHICLE_INFO;
  60465. ///@brief 车辆工作状态
  60466. typedef enum tagEM_VEHICLE_WORK_MODE
  60467. {
  60468. EM_VEHICLE_WORK_MODE_UNKNOWN, // 默认,不区分
  60469. EM_VEHICLE_WORK_MODE_INSIDE, // 园区内作业
  60470. EM_VEHICLE_WORK_MODE_OUTSIDE, // 园区外作业
  60471. } EM_VEHICLE_WORK_MODE;
  60472. ///@brief 车辆工作模式配置, 对应枚举 NET_EM_CFG_VEHICLE_WORK_MODE
  60473. typedef struct tagNET_CFG_VEHICLE_WORK_MODE
  60474. {
  60475. DWORD dwSize; // 结构体大小
  60476. EM_VEHICLE_WORK_MODE emWorkMode; // 车辆工作状态
  60477. } NET_CFG_VEHICLE_WORK_MODE;
  60478. ///@brief 门铃类型
  60479. typedef enum tagNET_EM_DOORBELL_TYPE
  60480. {
  60481. NET_EM_DOORBELL_UNKNOWN = -1, // 未知
  60482. NET_EM_DOORBELL_UNCONNECTED, // 未接
  60483. NET_EM_DOORBELL_MECHANICAL, // 机械
  60484. NET_EM_DOORBELL_ELECTRONIC, // 电子
  60485. } NET_EM_DOORBELL_TYPE;
  60486. ///@brief 外接门铃配置, 对应枚举 NET_EM_CFG_DOORBELL_EXTERNALDOORBELL
  60487. typedef struct tagNET_CFG_DOORBELL_EXTERNALDOORBELL
  60488. {
  60489. DWORD dwSize; // 结构体大小
  60490. NET_EM_DOORBELL_TYPE emDoorBellType; // 门铃类型
  60491. BOOL bEnable; // 外接门铃使能
  60492. }NET_CFG_DOORBELL_EXTERNALDOORBELL;
  60493. ///@brief 安装模式
  60494. typedef enum tagEM_MOUNT_MODE
  60495. {
  60496. EM_MOUNT_MODE_UNKNOWN,
  60497. EM_MOUNT_MODE_INDOOR, // 室内
  60498. EM_MOUNT_MODE_OUTDOOR, // 室外
  60499. }EM_MOUNT_MODE;
  60500. ///@brief Wifi设备安装配置, 对应枚举 NET_EM_CFG_WIFI_INSTALL_PARAM
  60501. typedef struct tagNET_CFG_WIFI_INSTALL_PARAM
  60502. {
  60503. DWORD dwSize; // 结构体大小
  60504. char szCountry[4]; // 国家/地区, 符合ISO3166规范
  60505. EM_MOUNT_MODE emMountMode; // 安装模式
  60506. BYTE byReserved[4]; // 字节对齐, 非保留字节
  60507. }NET_CFG_WIFI_INSTALL_PARAM;
  60508. ///@brief 键盘显示器鼠标节点信息
  60509. typedef struct tagNET_CFG_KVM_MAIN_NODE_INFO
  60510. {
  60511. int nLevel; // 等级,值越大等级越低,可根据等级来做主节点选择优先级。设备间值不能冲突
  60512. char szAddress[128]; // KVM输出节点IP地址
  60513. BYTE byReserved[128]; // 保留字节
  60514. } NET_CFG_KVM_MAIN_NODE_INFO;
  60515. ///@brief 键盘显示器鼠标节点配置,对应枚举NET_EM_CFG_KVM_MAIN_NODE
  60516. typedef struct tagNET_CFG_KVM_MAIN_NODE
  60517. {
  60518. DWORD dwSize; // 结构体大小
  60519. UINT nMainNodeNum; // 节点个数
  60520. NET_CFG_KVM_MAIN_NODE_INFO stuMainNodeInfo[1024]; // 键盘显示器鼠标节点信息
  60521. } NET_CFG_KVM_MAIN_NODE;
  60522. ///@brief 热键功能名称
  60523. typedef enum tagNET_EM_KVM_HOTKEY_FUNCTION_NAME
  60524. {
  60525. EM_KVM_HOTKEY_FUNCTION_NAME_UNKNOWN, // 未知
  60526. EM_KVM_HOTKEY_FUNCTION_NAME_SPLITMENU, // 分屏菜单调取
  60527. EM_KVM_HOTKEY_FUNCTION_NAME_GETMENU, // 接管菜单调取
  60528. EM_KVM_HOTKEY_FUNCTION_NAME_PUSHMENU, // 推送菜单调取
  60529. EM_KVM_HOTKEY_FUNCTION_NAME_BASEINFOMENU // 基本信息菜单调取
  60530. }EM_KVM_HOTKEY_FUNCTION_NAME;
  60531. ///@brief 键盘显示器鼠标热键信息
  60532. typedef struct tagNET_CFG_KVM_HOT_KEY_INFO
  60533. {
  60534. int nKeyNum; // 热键元素个数
  60535. int szKey[3]; // 热键
  60536. EM_KVM_HOTKEY_FUNCTION_NAME emFuncName; // 热键功能名称
  60537. BYTE byReserved[128]; // 保留字节
  60538. }NET_CFG_KVM_HOT_KEY_INFO;
  60539. ///@brief 键盘显示器鼠标热键配置,对应枚举NET_EM_CFG_KVM_HOT_KEY
  60540. typedef struct tagNET_CFG_KVM_HOT_KEY
  60541. {
  60542. DWORD dwSize; // 结构体大小
  60543. int nHotKeyNum; // 热键数量
  60544. NET_CFG_KVM_HOT_KEY_INFO stuHotKeyInfo[64]; // 热键信息
  60545. }NET_CFG_KVM_HOT_KEY;
  60546. ///@brief 键盘鼠标加密配置,对应NET_EM_CFG_KM_TRANS_ENCRYPT
  60547. typedef struct tagNET_CFG_KM_TRANS_ENCRYPT
  60548. {
  60549. DWORD dwSize; // 结构体大小
  60550. BOOL bEnable; // 鼠标键盘消息加密传输开关; true:使能,false:不使能
  60551. }NET_CFG_KM_TRANS_ENCRYPT;
  60552. ///@brief 视频输出通道信息
  60553. typedef struct tagNET_VIDEO_OUTPUT_CHANNEL_INFO
  60554. {
  60555. char szName[32]; // 通道名称
  60556. BYTE byReserved[256]; // 保留字节
  60557. } NET_VIDEO_OUTPUT_CHANNEL_INFO;
  60558. ///@brief 槽位信息
  60559. typedef struct tagNET_TV_CARD_INFO
  60560. {
  60561. BOOL bExist; // 解码卡是否存在
  60562. int nVideoOutputChannels; // 视频输出通道数量
  60563. int nVideoOutputChannelsRange[2]; // 视频输出逻辑通道号起止值
  60564. NET_VIDEO_OUTPUT_CHANNEL_INFO stuVideoOutput[24]; // 视频输出通道信息
  60565. BYTE byReserved[256]; // 保留字节
  60566. } NET_TV_CARD_INFO;
  60567. ///@brief 连接设备的协议类型
  60568. typedef enum tagEM_DEVICE_PROTOCOL_TYPE
  60569. {
  60570. EM_DEVICE_PROTOCOL_TYPE_UNKNOWN, // 未知
  60571. EM_DEVICE_PROTOCOL_TYPE_PRIVATE, // 私有协议
  60572. } EM_DEVICE_PROTOCOL_TYPE;
  60573. ///@brief 网络解码设备信息
  60574. typedef struct tagNET_CFG_NET_TV_DEVICE_INFO
  60575. {
  60576. char szNodeName[64]; // 节点名称
  60577. char szUserName[128]; // 用户名
  60578. char szPassword[128]; // 密码
  60579. char szName[32]; // 机器名称
  60580. char szAddress[40]; // 设备地址或域名
  60581. UINT nPort; // 端口号
  60582. int nCardNum; // 槽位数量
  60583. NET_TV_CARD_INFO stuCardInfo[21]; // 槽位信息
  60584. BOOL bEnable; // 设备是否启用
  60585. EM_DEVICE_PROTOCOL_TYPE emProtocolType; // 连接设备的协议类型
  60586. BYTE byReserved[252]; // 保留字节
  60587. } NET_CFG_NET_TV_DEVICE_INFO;
  60588. ///@brief 网络解码设备配置, 对应 NET_EM_CFG_NET_TV_DEVICE
  60589. typedef struct tagNET_CFG_NET_TV_DEVICE
  60590. {
  60591. DWORD dwSize; // 结构体大小
  60592. int nDeviceNum; // 设备数量
  60593. BYTE byReserved[4]; // 对齐
  60594. int nMaxDeviceNum; // 设备最大数量
  60595. NET_CFG_NET_TV_DEVICE_INFO* pstuNetTvDevice; // 网络解码设备信息
  60596. } NET_CFG_NET_TV_DEVICE;
  60597. ///@brief 热成像机芯维护配置, 对应枚举 NET_EM_CFG_SENSOR_MAINTAIN
  60598. typedef struct tagNET_CFG_SENSOR_MAINTAIN
  60599. {
  60600. DWORD dwSize; // 结构体大小
  60601. BOOL bEnable; // 是否启用维护功能, 必填
  60602. DH_TSECT stuTimeSection[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 时间段,是一个二维数组,前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段。
  60603. }NET_CFG_SENSOR_MAINTAIN;
  60604. ///@brief 激光测距俯仰角限制, 对应枚举 NET_EM_CFG_TILT_LIMIT
  60605. typedef struct tagNET_CFG_TILT_LIMIT
  60606. {
  60607. DWORD dwSize; // 结构体大小
  60608. int nUp; // 上俯仰角,精度0.1, 实际值已扩大10倍,范围[0,900]
  60609. int nDown; // 下俯仰角,精度0.1, 实际值已扩大10倍,范围[-900,0]
  60610. BYTE byReserve[4]; // 保留字节,用于字节对齐
  60611. }NET_CFG_TILT_LIMIT;
  60612. ///@brief 门禁目标识别相关配置 对应枚举 NET_EM_CFG_ACCESS_FACE_RECOGNITION
  60613. typedef struct tagNET_CFG_ACS_FACE_RECOGNITION_SCHEME
  60614. {
  60615. DWORD dwSize; // 结构体大小
  60616. UINT nMode; // 目标识别模式; 0:前智能目标识别, 1:后智能目标识别, 2:前智能目标失败后到后智能目标识别
  60617. }NET_CFG_ACS_FACE_RECOGNITION_SCHEME;
  60618. ///@brief 广告禁用时段配置信息
  60619. typedef struct tagNET_CFG_FORBIDDEN_ADVERT_PLAY_INFO
  60620. {
  60621. BOOL bEnable; // 时间段使能
  60622. NET_TIME_EX1 stuBeginTime; // 广告禁用开始时间
  60623. NET_TIME_EX1 stuEndTime; // 广告结束开始时间
  60624. BYTE reserved[256]; // 保留字节
  60625. } NET_CFG_FORBIDDEN_ADVERT_PLAY_INFO;
  60626. ///@brief 广告禁用时段配置 对应枚举 NET_EM_CFG_FORBIDDEN_ADVERT_PLAY
  60627. typedef struct tagNET_CFG_FORBIDDEN_ADVERT_PLAY
  60628. {
  60629. DWORD dwSize; // 结构体大小
  60630. UINT nAdvertNum; // 广告配置时间段个数
  60631. NET_CFG_FORBIDDEN_ADVERT_PLAY_INFO stuAdvertInfo[8]; // 广告禁用时段配置信息
  60632. } NET_CFG_FORBIDDEN_ADVERT_PLAY;
  60633. ///@brief 门禁设备当前模式配置 对应枚举 NET_EM_CFG_BGY_CUSTOMERCFG
  60634. typedef struct tagNET_CFG_BGY_CUSTOMERCFG
  60635. {
  60636. DWORD dwSize; // 结构体大小
  60637. EM_PLAY_WITH_MODE emModeType; // 模式类别
  60638. } NET_CFG_BGY_CUSTOMERCFG;
  60639. ///@brief 按键对应的信息配置信息
  60640. typedef struct tagNET_CFG_ACCESSCTL_KEYBINDINGINFOCFG_INFO
  60641. {
  60642. char szBindingInfo[128]; // 按键绑定的信息
  60643. UINT nKey; // 对应的按键号,范围0-9
  60644. BYTE byReserved[508]; // 预留字节
  60645. } NET_CFG_ACCESSCTL_KEYBINDINGINFOCFG_INFO;
  60646. ///@brief 不同数字按钮对应的信息配置
  60647. typedef struct tagNET_CFG_ACCESSCTL_KEYBINDINGINFOCFG
  60648. {
  60649. DWORD dwSize; // 结构体大小
  60650. UINT nKeyNum; // 按键个数
  60651. NET_CFG_ACCESSCTL_KEYBINDINGINFOCFG_INFO stuKeyBindingInfo[10]; // 按键对应的信息配置信息
  60652. } NET_CFG_ACCESSCTL_KEYBINDINGINFOCFG;
  60653. ///@brief 主机、从机设置配置信息
  60654. typedef struct tagNET_CFG_HOST_DEVICE
  60655. {
  60656. DWORD dwSize; // 结构体大小
  60657. UINT nMode; // 进出入口类型: 0-进口 1-出口
  60658. BOOL bHostEnable; // 当前设备是否作为主机的使能
  60659. char szHostIP[40]; // 主机的设备IP
  60660. }NET_CFG_HOST_DEVICE;
  60661. ///@brief 默认组合通道绑定模式
  60662. typedef enum tagEM_COMPOSIT_CHANNEL_BIND_MODE
  60663. {
  60664. EM_COMPOSIT_CHANNEL_BIND_MODE_UNKNOWN, // 未知
  60665. EM_COMPOSIT_CHANNEL_BIND_MODE_AUTOMATIC, // 自动
  60666. EM_COMPOSIT_CHANNEL_BIND_MODE_SEMIAUTOMATIC, // 半自动
  60667. EM_COMPOSIT_CHANNEL_BIND_MODE_MANUAL, // 手动
  60668. } EM_COMPOSIT_CHANNEL_BIND_MODE;
  60669. ///@brief 拉流使能
  60670. typedef enum tagEM_CAN_START_STREAM
  60671. {
  60672. EM_CAN_START_STREAM_UNKNOWN = -1, // 未知
  60673. EM_CAN_START_STREAM_OFF, // 不拉流
  60674. EM_CAN_START_STREAM_ON, // 拉流
  60675. } EM_CAN_START_STREAM;
  60676. ///@brief 录像使能
  60677. typedef enum tagEM_IS_RECORD
  60678. {
  60679. EM_IS_RECORD_UNKNOWN, // 未知
  60680. EM_IS_RECORD_ON, // 录像
  60681. EM_IS_RECORD_OFF, // 不录像
  60682. } EM_IS_RECORD;
  60683. ///@brief 录播默认配置
  60684. typedef struct tagNET_CFG_COURSE_RECORD_DEFAULT_CONFIG
  60685. {
  60686. DWORD dwSize; // 结构体大小
  60687. UINT nCompositChannelMode; // 组合通道默认模式; 0: 无效, 1: 电影模式, 2: 常态模式, 3: 精品模式, 小于0: 自定义模式
  60688. int nCanStartStreamNum; // 能否被拉流逻辑通道数
  60689. int nIsRecordNum; // 是否要录像逻辑通道号数
  60690. EM_CAN_START_STREAM emCanStartStream[64]; // 能否被拉流
  60691. EM_IS_RECORD emIsRecord[64]; // 是否要录像
  60692. EM_COMPOSIT_CHANNEL_BIND_MODE emCompositChannelBindMode; // 默认组合通道绑定模式
  60693. BYTE byReserved[4]; // 保留字节
  60694. }NET_CFG_COURSE_RECORD_DEFAULT_CONFIG;
  60695. ///@brief 录像上传类型
  60696. typedef enum tagEM_COURSE_RECORD_UPLOAD_TYPE
  60697. {
  60698. EM_COURSE_RECORD_UPLOAD_TYPE_TIMING, // 定时
  60699. EM_COURSE_RECORD_UPLOAD_TYPE_IMMEDIATE, // 即时
  60700. } EM_COURSE_RECORD_UPLOAD_TYPE;
  60701. ///@brief 录像上传模式信息
  60702. typedef struct tagNET_COURSE_RECORD_UPLOAD_METHOD
  60703. {
  60704. EM_COURSE_RECORD_UPLOAD_TYPE emUploadType; // 录像上传类型
  60705. NET_TIME_EX1 stuUploadTime; // 上传时间, 定时上传关注, 即时上传可不关注
  60706. UINT nFilePiece; // 分片大小,单位: MB(0表示不分片)
  60707. UINT nFileMode; // 按配置值分文件,单位: MB,如配置500,即按照500MB一个文件分文件(0表示不分文件,一堂课一个文件)
  60708. int nUploadValidTime; // 上传录像有效期,-1表示永久有效,等于0表示停止正在上传的任务,大于0表示有效天数
  60709. NET_TIME_EX1 stuUploadEndTime; // 上传结束时间, 定时上传关注,立即上传可不关注
  60710. BYTE byReserved[1012]; // 保留字节
  60711. } NET_COURSE_RECORD_UPLOAD_METHOD;
  60712. ///@brief 上传地址设备方式
  60713. typedef enum tagEM_COURSE_RECORD_UPLOAD_PATH_DEVICE_TYPE
  60714. {
  60715. EM_COURSE_RECORD_UPLOAD_PATH_DEVICE_TYPE_COLONY, // 集群
  60716. EM_COURSE_RECORD_UPLOAD_PATH_DEVICE_TYPE_STANDALONE, // 单机
  60717. } EM_COURSE_RECORD_UPLOAD_PATH_DEVICE_TYPE;
  60718. ///@brief 录像上传路径信息
  60719. typedef struct tagNET_COURSE_RECORD_UPLOAD_PATH
  60720. {
  60721. EM_COURSE_RECORD_UPLOAD_PATH_DEVICE_TYPE emDeviceType; // 上传地址设备方式
  60722. int nDevicePathNum; // 上传地址个数
  60723. char szDevicePath[16][256]; // 上传地址集合
  60724. BYTE byReserved[1024]; // 保留字节
  60725. } NET_COURSE_RECORD_UPLOAD_PATH;
  60726. ///@brief 鉴权类型
  60727. typedef enum tagEM_ENCRY_TYPE
  60728. {
  60729. EM_ENCRY_TYPE_RSA, // RSA
  60730. EM_ENCRY_TYPE_MD5, // MD5
  60731. } EM_ENCRY_TYPE;
  60732. ///@brief 录像上传鉴权信息
  60733. typedef struct tagNET_COURSE_RECORD_UPLOAD_TOKEN
  60734. {
  60735. BOOL bTokenCheck; // 是否需要鉴权
  60736. int nTokenPathNum; // 临时Token地址个数
  60737. char szTokenPath[16][256]; // 临时Token地址, 不鉴权不需要
  60738. char szPlatformFlag[64]; // 设备在平台中的标识
  60739. char szUserName[32]; // 设备添加到平台中的用户名
  60740. char szEncryptUri[256]; // 加密公钥获取路径
  60741. char szAccessUri[256]; // 临时token获取路径
  60742. EM_ENCRY_TYPE emEncryType; // 鉴权类型
  60743. BYTE byReserved[1020]; // 保留字节
  60744. } NET_COURSE_RECORD_UPLOAD_TOKEN;
  60745. ///@brief 录像视频格式
  60746. typedef enum tagEM_RECORD_FILE_TYPE
  60747. {
  60748. EM_RECORD_FILE_TYPE_UNKNOWN, // 未知
  60749. EM_RECORD_FILE_TYPE_MP4, // mp4
  60750. EM_RECORD_FILE_TYPE_DAV, // dav
  60751. } EM_RECORD_FILE_TYPE;
  60752. ///@brief 录播设备支持录像文件上传配置
  60753. typedef struct tagNET_CFG_COURSE_RECORD_UPLOAD
  60754. {
  60755. DWORD dwSize; // 结构体大小
  60756. EM_RECORD_FILE_TYPE emFileType; // 上传录像视频格式
  60757. NET_COURSE_RECORD_UPLOAD_METHOD stuUploadMethod; // 录像上传模式信息
  60758. NET_COURSE_RECORD_UPLOAD_PATH stuUploadPath; // 录像上传路径信息
  60759. NET_COURSE_RECORD_UPLOAD_TOKEN stuUploadToken; // 录像上传鉴权信息
  60760. }NET_CFG_COURSE_RECORD_UPLOAD;
  60761. ///@brief 录像类型
  60762. typedef enum tagEM_SUB_MODE
  60763. {
  60764. EM_SUB_UNKNOWN = -1, // 未知
  60765. EM_SUB_NORECORD, // 不录像
  60766. EM_SUB_NORMAL_COTINUE_RECORD, // 普通连续录像
  60767. EM_SUB_EVENT_TRIGGER_RECORD, // 事件触发录像
  60768. EM_SUB_PLAN_REGULAR_RECORD, // 计划定时录像
  60769. EM_SUB_EVENT_TRIGGER_AND_PLAN_REGULAR_RECORD, // 事件触发录像和定时计划录像
  60770. }EM_SUB_MODE;
  60771. ///@brief IVSS产品首次提交,录像计划扩展配置,跟StorageScheduleGlobal配置关联。(NET_EM_CFG_COURSE_RECORD_EX)
  60772. typedef struct tagNET_CFG_COURSE_RECORD_EX
  60773. {
  60774. DWORD dwSize; // 结构体大小
  60775. BOOL bIsGlobal; // 是否继承全局的存储计划配置(StorageScheduleGlobal),true表示继承,false表示不继承
  60776. UINT nPreRecord; // 预录时间,为零时表示关闭,最大预录时间从RocordEX中获取MaxPreRecordTime,单位秒
  60777. BOOL bEnable; // 录像断网续传功能使能,是否支持从Record能力集中取得
  60778. UINT nMaxRecordTime; // 最长的上传录像时间,如果断网时间小于这个值 就传断网时间内的录像,如果大于这个值就传这么长时间内的录像,单位:秒
  60779. UINT nRecordLatch; // 事件发生后的录像延时时间范围[1,300]
  60780. EM_SUB_MODE emSubMode; // 录像类型
  60781. UINT nTimeSectionID; // 事件类型对应的日程ID
  60782. UINT nManulRecordLength; // 手动录像打包时长,单位分钟范围[1,30]
  60783. UINT nFileHoldTime; // 设置文件的保留天数,超过时间的将被删除。0~365,天为单位,0表示永不过期。
  60784. }NET_CFG_COURSE_RECORD_EX;
  60785. ///@brief 梯控主机全局配置
  60786. typedef struct tagNET_CFG_LIFTCONTROL_OPTION
  60787. {
  60788. DWORD dwSize; // 结构体大小
  60789. BOOL bEnable; // 使能情况,TRUE:使能;FALSE:未使能
  60790. }NET_CFG_LIFTCONTROL_OPTION;
  60791. ///@brief 健康码使能
  60792. typedef struct tagNET_CFG_HEALTH_CODE_INFO
  60793. {
  60794. DWORD dwSize; // 结构体大小
  60795. BOOL bEnable; // 健康码使能,TRUE:使能;FALSE:未使能
  60796. BOOL bOfflineEnable; // 健康码离线使能,TRUE:使能;FALSE:未使能
  60797. BOOL bCheckHealthCode; // 核验健康码功能使能
  60798. BOOL bHSVisible; // 核酸显示使能
  60799. BOOL bHSCheckEnable; // 核验核酸功能使能
  60800. UINT nHSTimeout; // 核酸结果超时时间(小时) 0 默认不处理
  60801. UINT nHSCollectTimeout; // 核酸采集超时时间(小时) 0 默认不处理
  60802. BOOL bVaccineVisible; // 疫苗显示使能
  60803. BOOL bVaccineCheckEnable; // 疫苗校验使能
  60804. BOOL bTravelCodeVisible; // 行程码显示使能
  60805. BOOL bTravelCodeCheck; // 行程码校验使能
  60806. BOOL bVaccineIntensifyVisible; // 加强针状态显示
  60807. UINT nOFFLineGreenCodeMethod; // 健康码鉴权方式组合 0:无组合方式 1:健康码单独存在 2:与现有鉴权方式组合,健康码鉴权优先
  60808. UINT nCodeFlushTimeout; // 二维码过期时间(秒)
  60809. UINT nHealthQueryTimeout; // 健康码请求超时时间(秒); 默认2秒
  60810. BOOL bRedPermit; // 红码禁止通行使能
  60811. BOOL bYellowPermit; // 黄码禁止通行使能
  60812. BOOL bQueryTimeoutPermit; // 健康码请求超时禁止通行使能
  60813. }NET_CFG_HEALTH_CODE_INFO;
  60814. ///@brief 继电器状态
  60815. typedef enum tagEM_RELAY_STATE_TYPE
  60816. {
  60817. EM_RELAY_STATE_TYPE_UNKNOWN = -1, // 未知
  60818. EM_RELAY_STATE_TYPE_CLOSE, // 关
  60819. EM_RELAY_STATE_TYPE_OPEN, // 开
  60820. EM_RELAY_STATE_TYPE_NO_SUPPORT = 255, // 不支持
  60821. }EM_RELAY_STATE_TYPE;
  60822. ///@brief 继电器状态配置(NET_EM_CFG_RELAY_STATE)
  60823. typedef struct tagNET_CFG_RELAY_STATE_INFO
  60824. {
  60825. DWORD dwSize; // 结构体大小
  60826. int nAddress; // 继电器地址
  60827. EM_RELAY_STATE_TYPE emState; // 继电器状态
  60828. BYTE byReserved[4]; // 字节对齐
  60829. }NET_CFG_RELAY_STATE_INFO;
  60830. ///@brief OSD 方案显示内容
  60831. typedef struct tagNET_CFG_OSD_PLAN_VIDEOWIDGET_INFO
  60832. {
  60833. char szChannelTitle[256]; // 通道名称
  60834. BYTE byReserved[1024]; // 预留字节
  60835. }NET_CFG_OSD_PLAN_VIDEOWIDGET_INFO;
  60836. ///@brief OSD 单个方案计划配置
  60837. typedef struct tagNET_CFG_OSD_PLAN_INFO
  60838. {
  60839. BOOL bIsUsed; // 方案使能
  60840. NET_TIME stuTime; // 方案切换时间
  60841. char szName[32]; // 方案名称
  60842. int nValidVideoWidget; // 设置或者获取的有效stuVideoWidgets个数
  60843. NET_CFG_OSD_PLAN_VIDEOWIDGET_INFO stuVideoWidgets[512]; // 显示内容, 数组下标对应通道号, 最大支持512个通道
  60844. BYTE byReserved[1024]; // 预留字节
  60845. }NET_CFG_OSD_PLAN_INFO;
  60846. ///@brief OSD 方案计划配置 对应枚举 NET_EM_CFG_OSD_PLAN
  60847. typedef struct tagNET_CFG_OSD_PLANS_INFO
  60848. {
  60849. DWORD dwSize; // 结构体大小
  60850. int nMaxPlanNum; // 设置或者获取的有效方案计划个数
  60851. int nRetPlanNum; // 返回的有效方案计划个数
  60852. NET_CFG_OSD_PLAN_INFO *pstuPlansInfo; // 方案信息, 内存由用户申请释放
  60853. }NET_CFG_OSD_PLANS_INFO;
  60854. ///@brief 平台下发天气情况到室内机, 对应枚举 NET_EM_CFG_ENVIRONMENT_DETECT
  60855. typedef struct tagNET_CFG_ENVIRONMENT_DETECT_INFO
  60856. {
  60857. DWORD dwSize; // 结构体大小
  60858. int nTemperature; // 实时温度,单位是摄氏度
  60859. int nHumidity; // 相对湿度,单位是%
  60860. int nPM25; // PM2.5数值,单位 微克每立方米
  60861. }NET_CFG_ENVIRONMENT_DETECT_INFO;
  60862. ///@brief 门禁系统改造工程项目 二维码对接、人员开门时间配置定制、二维码密钥卡号定制 对应枚举 NET_EM_CFG_AC_GZYD
  60863. typedef struct tagNET_CFG_AC_GZYD_INFO
  60864. {
  60865. DWORD dwSize; // 结构体大小
  60866. BOOL bEnable; // 使能
  60867. UINT nInterval; // 时间间隔
  60868. UINT nQRLastTime; // 二维码有效时间
  60869. char szUrl0[256]; // 请求地址,注册地址
  60870. char szUrl1[256]; // 请求地址,心跳地址
  60871. char szDeviceID[32]; // 设备编号
  60872. char szQRCONTENT[256]; // 二维码内容
  60873. char szReserved[1024]; // 预留字节
  60874. }NET_CFG_AC_GZYD_INFO;
  60875. ///@brief 定制单片机兼容cpu卡和ic卡功能切换 对应枚举 NET_EM_CFG_CARD_MNG
  60876. typedef struct tagNET_CFG_CARD_MNG_INFO
  60877. {
  60878. DWORD dwSize; // 结构体大小
  60879. UINT nType; // CPU卡 = 1, IC卡 = 2,
  60880. char szReserved[1024]; // 预留字节
  60881. }NET_CFG_CARD_MNG_INFO;
  60882. ///@brief 工作模式
  60883. typedef enum tagEM_WORK_MODE
  60884. {
  60885. EM_WORK_MODE_UNKNOWN = -1, // 未知
  60886. EM_WORK_MODE_ENERGY_CONSERVATION, // 节能模式
  60887. EM_WORK_MODE_ORDINARY, // 普通模式
  60888. EM_WORK_MODE_ULTRA, // Ultra模式
  60889. EM_WORK_MODE_CUSTOM, // 自定义模式
  60890. EM_WORK_MODE_CONTINUOUS_RECORDING, // 连续录像模式
  60891. EM_WORK_MODE_VLOG, // Vlog录像模式
  60892. }EM_WORK_MODE;
  60893. ///@brief 自定义模式有效
  60894. typedef struct tagNET_WORK_PARAM
  60895. {
  60896. UINT nPirRecordTime; // pir录像时长,0表示无限制,取值范围[10,60]秒
  60897. UINT nPirPeriod; // pir触发时间间隔,取值范围[0,60]秒
  60898. char szResolution[16]; // 分辨率名称
  60899. int nWhiteLight; // 是否联动白光,0:不联动 1:联动
  60900. char szReserved[128]; // 预留字节
  60901. }NET_WORK_PARAM;
  60902. ///@brief 工作模式
  60903. typedef struct tagNET_WORK_MODE
  60904. {
  60905. EM_WORK_MODE emMode; // 工作模式
  60906. NET_WORK_PARAM stuModeParam; // 自定义模式有效
  60907. char szReserved[128]; // 预留字节
  60908. }NET_WORK_MODE;
  60909. ///@brief IPC配套APP显示工作模式 对应枚举 NET_EM_CFG_WORK_MODE
  60910. typedef struct tagNET_CFG_WORK_MODE_INFO
  60911. {
  60912. DWORD dwSize; // 结构体大小
  60913. int nWorkModeNum; // 工作模式个数
  60914. NET_WORK_MODE stuWorkMode[16]; // 工作模式 下标视频通道号
  60915. }NET_CFG_WORK_MODE_INFO;
  60916. ///@brief 识别USB功能配置, 对应枚举NET_EM_CFG_USB_FLASH
  60917. typedef struct tagNET_CFG_USB_FLASH
  60918. {
  60919. DWORD dwSize; // 结构体大小
  60920. BOOL bDetectEnable; //是否支持识别USB Flash, TRUE:支持,FALSE:不支持
  60921. }NET_CFG_USB_FLASH;
  60922. ///@brief 设备端是否连接显示器配置, 对应枚举NET_EM_CFG_DISPLAY_CONNECT
  60923. typedef struct tagNET_CFG_DISPLAY_CONNECT
  60924. {
  60925. DWORD dwSize; // 结构体大小
  60926. int nHdmiStatusSize; // 连接HDMI数量
  60927. BOOL bHdmiStatus[8]; // 设备是否连接HDMI, TRUE:已经连接,FALSE:未连接
  60928. }NET_CFG_DISPLAY_CONNECT;
  60929. ///@brief 校准源信息
  60930. typedef struct tagNET_REGULATOR_INFO
  60931. {
  60932. UINT nDistance; // 校准源距离, 单位cm
  60933. UINT nTemperature; // 校准源温度, 精度0.1, 放大10倍
  60934. NET_RECT stRect; // 校准源矩形位置取值[0,8191]
  60935. UINT nHeight; // 校准源高度, 单位cm
  60936. int nDiffTemperature; // 温度偏差值, 精度0.01, 放大100倍
  60937. int nEmissivity; // 黑体辐射率,精度0.01,放大100倍,范围50-100
  60938. int nBlackBodyCorrectTemp; // 修正黑体温度,精度0.1,放大10倍
  60939. BYTE byReserve[24]; // 保留字节,用于字节对齐
  60940. } NET_REGULATOR_INFO;
  60941. ///@brief 人体测温标准黑体配置, 对应枚举 NET_EM_CFG_RADIO_REGULATOR
  60942. typedef struct tagNET_CFG_RADIO_REGULATOR
  60943. {
  60944. DWORD dwSize; // 结构体大小
  60945. BOOL bEnable; // 标准黑体配置使能
  60946. UINT nPresetId; // 预置点编号, 对于无预置点设备为0
  60947. UINT nCamerHeight; // 热成像相机安装高度, 单位cm
  60948. int nCamerAngle; // 相机安装角度, 精度0.1, 放大10倍
  60949. NET_REGULATOR_INFO stRegulatorInfo; // 校准源信息
  60950. } NET_CFG_RADIO_REGULATOR;
  60951. ///@brief 人体测温标定信息,对应枚举 NET_EM_CFG_HUMAN_THERM_CALIBRATE
  60952. typedef struct tagNET_CFG_HUMAN_THERM_CALIBRATE_INFO
  60953. {
  60954. DWORD dwSize; // 结构体大小
  60955. int nThermBoxHeight; // 人体测温标定框高缩放百分比,范围1~100
  60956. int nThermBoxWidth; // 人体测温标定框宽缩放百分比,范围1~100
  60957. int nThermCenterX; // 测温框中心坐标x,范围:-1024~1024
  60958. int nThermCenterY; // 测温框中心坐标y,范围:-1024~1024
  60959. }NET_CFG_HUMAN_THERM_CALLBRATE_INFO;
  60960. ///@brief 开关控制
  60961. typedef enum tagEM_SWITCH_CONTROL_TYPE
  60962. {
  60963. EM_SWITCH_CONTROL_TYPE_UNKNOWN = -1, // 未知
  60964. EM_SWITCH_CONTROL_TYPE_OFF, // 关
  60965. EM_SWITCH_CONTROL_TYPE_ON, // 开
  60966. }EM_SWITCH_CONTROL_TYPE;
  60967. ///@brief 测距模式
  60968. typedef enum tagEM_RANGE_MODE
  60969. {
  60970. EM_RANGE_MODE_UNKNOWN=-1, // 未知
  60971. EM_RANGE_MODE_WOLF, // 狼
  60972. EM_RANGE_MODE_RABBIT, // 兔
  60973. EM_RANGE_MODE_PEOPLE, // 人
  60974. EM_RANGE_MODE_OTHER, // 自定义
  60975. }EM_RANGE_MODE;
  60976. ///@brief 目标检测敏感度
  60977. typedef enum tagEM_TARGET_DETECT_SENSITIVITY
  60978. {
  60979. EM_TARGET_DETECT_SENSITIVITY_UNKNOWN = -1, // 未知
  60980. EM_TARGET_DETECT_SENSITIVITY_OFF, // 关
  60981. EM_TARGET_DETECT_SENSITIVITY_LOW, // 低
  60982. EM_TARGET_DETECT_SENSITIVITY_MEDIUM, // 中
  60983. EM_TARGET_DETECT_SENSITIVITY_HIGH, // 高
  60984. }EM_TARGET_DETECT_SENSITIVITY;
  60985. ///@brief 图像参数
  60986. typedef enum tagEM_SCENE_MODE
  60987. {
  60988. EM_SCENE_MODE_UNKNOWN = -1, // 未知
  60989. EM_SCENE_MODE_LOW, // 低
  60990. EM_SCENE_MODE_HIGH, // 高
  60991. EM_SCENE_MODE_SELF_ADAPTION, // 自适应
  60992. }EM_SCENE_MODE;
  60993. ///@brief 屏幕切换开关
  60994. typedef enum tagEM_SCREEN_SWITCH_TYPE
  60995. {
  60996. EM_SCREEN_SWITCH_TYPE_UNKNOWN = -1, // 未知
  60997. EM_SCREEN_SWITCH_TYPE_LCOS, // LCOS屏(目镜)
  60998. EM_SCREEN_SWITCH_TYPE_P, // P制外接屏
  60999. EM_SCREEN_SWITCH_TYPE_N, // N制外接屏
  61000. }EM_SCREEN_SWITCH_TYPE;
  61001. ///@brief 距离单位
  61002. typedef enum tagEM_RANGE_UNIT
  61003. {
  61004. EM_RANGE_UNIT_UNKOWN=-1, // 未知
  61005. EM_RANGE_UNIT_METER, // 米
  61006. EM_RANGE_UNIT_FOOT, // 英尺
  61007. }EM_RANGE_UNIT;
  61008. ///@brief 场景模式
  61009. typedef enum tagEM_SCENE_STYLE
  61010. {
  61011. EM_SCENE_STYLE_UNKOWN=-1, // 未知
  61012. EM_SCENE_STYLE_STANDARD, // 标准模式
  61013. EM_SCENE_STYLE_JUNGLE, // 丛林模式
  61014. }EM_SCENE_STYLE;
  61015. ///@brief 光标类型
  61016. typedef enum tagEM_CURSOR_TYPE
  61017. {
  61018. EM_CURSOR_TYPE_UNKOWN=-1, // 未知
  61019. EM_CURSOR_TYPE_0, // 类型0
  61020. EM_CURSOR_TYPE_1, // 类型1
  61021. EM_CURSOR_TYPE_2, // 类型2
  61022. EM_CURSOR_TYPE_3, // 类型3
  61023. EM_CURSOR_TYPE_4, // 类型4
  61024. EM_CURSOR_TYPE_5, // 类型5
  61025. EM_CURSOR_TYPE_6, // 类型6
  61026. EM_CURSOR_TYPE_7, // 类型7
  61027. EM_CURSOR_TYPE_8, // 类型8
  61028. EM_CURSOR_TYPE_9, // 类型9
  61029. EM_CURSOR_TYPE_10, // 类型10
  61030. EM_CURSOR_TYPE_11, // 类型11
  61031. }EM_CURSOR_TYPE;
  61032. ///@brief 光标标定方案
  61033. typedef enum tagEM_CURSOR_SCHEME
  61034. {
  61035. EM_CURSOR_SCHEME_UNKOWN=-1, // 未知
  61036. EM_CURSOR_SCHEME_0, // 标定方案0
  61037. EM_CURSOR_SCHEME_1, // 标定方案1
  61038. EM_CURSOR_SCHEME_2, // 标定方案2
  61039. EM_CURSOR_SCHEME_3, // 标定方案3
  61040. EM_CURSOR_SCHEME_4, // 标定方案4
  61041. EM_CURSOR_SCHEME_5, // 标定方案5
  61042. }EM_CURSOR_SCHEME;
  61043. ///@brief 光标距离方案
  61044. typedef enum tagEM_DISTANCE_SCHEME
  61045. {
  61046. EM_DISTANCE_SCHEME_UNKOWN=-1, // 未知
  61047. EM_DISTANCE_SCHEME_0, // 距离方案0
  61048. EM_DISTANCE_SCHEME_1, // 距离方案1
  61049. EM_DISTANCE_SCHEME_2, // 距离方案2
  61050. EM_DISTANCE_SCHEME_3, // 距离方案3
  61051. EM_DISTANCE_SCHEME_4, // 距离方案4
  61052. EM_DISTANCE_SCHEME_5, // 距离方案5
  61053. }EM_DISTANCE_SCHEME;
  61054. ///@brief 望远镜配置,对应的枚举 NET_EM_CFG_TELESCOPE_OPTIONS
  61055. typedef struct tagNET_CFG_TELESCOPE_OPTIONS_INFO
  61056. {
  61057. DWORD dwSize; // 结构体大小
  61058. BOOL bLaserCtrl; // 激光指示控制 TRUE:开; FALSE:关)
  61059. BOOL bRangeCtrl; // 测距开关控制 TRUE:开; FALSE:关)
  61060. EM_RANGE_MODE emRangeMode; // 测距模式
  61061. BOOL bOsdSet; // OSD设置.显示/隐藏(TRUE:显示;FALSE:隐藏)
  61062. EM_TARGET_DETECT_SENSITIVITY emTargetChk; // 目标检测
  61063. EM_TARGET_DETECT_SENSITIVITY emFireChk; // 火点检测
  61064. EM_SCENE_MODE emSceneMode; // 图像参数设置
  61065. int nAutoShutdown; // 自动关机时间 单位:分钟(0:关闭自动关机功能)
  61066. int nAutoSleep; // 自动休眠时间 单位:分钟(0:关闭自动休眠功能)
  61067. EM_SCREEN_SWITCH_TYPE emScreenSwitch; // 屏幕切换开关
  61068. BOOL bWIFICtrl; // WIFI开关:(TRUE:开;FALSE:关)
  61069. EM_SWITCH_CONTROL_TYPE emHotColdPoint; // 冷热点显示开关
  61070. EM_RANGE_UNIT emRangeUnit; // 距离单位
  61071. EM_SWITCH_CONTROL_TYPE emBuzzerCtrl; // 蜂鸣器开关
  61072. int nCustomHeight; // 待测距物体自定义高度(0.1~999.9米/英尺),乘10下发(1~9999).
  61073. BOOL bLogoShow; // LOGO叠加开关: (true: ON; false:OFF)
  61074. BOOL bAutoRecord; // 自动录像开关(检测到声音或者检测到冲击后自动录像):(true: ON; false:OFF)
  61075. EM_SCENE_STYLE emSceneStyle; // 场景模式
  61076. EM_CURSOR_TYPE emCursorStyle; // 光标类型
  61077. EM_CURSOR_SCHEME emCursorScheme; // 光标标定方案
  61078. EM_DISTANCE_SCHEME emDistanceScheme; // 光标距离方案
  61079. UINT nCalibrateDistance; // 光标标定距离量: 100-99999cm 单位:厘米
  61080. UINT nCalibrateOffset[2]; // 光标标定偏移量, 二维空间点类型, 第一个元素表示点的x坐标; 第二个元素表示点的y坐标;
  61081. }NET_CFG_TELESCOPE_OPTIONS_INFO;
  61082. ///@brief 环境温度信息配置(热成像内部配置,只可读,不可设),对应的枚举 NET_EM_CFG_ENVIRONMENT_THERM_INFO
  61083. typedef struct tagNET_CFG_ENVIRONMENT_THERM_INFO
  61084. {
  61085. DWORD dwSize; // 结构体大小
  61086. int nEnvironmentTemp; // 环境温度,精度0.01,实际值扩大100倍,只可读,不可设
  61087. NET_TIME stuLastEnvSaveTime; // 环境温度最后一次保存的时间,只可读,不可设
  61088. UINT nEnvSaveCnt; // 环境温度保存的次数,只可读,不可设
  61089. BYTE byReserved[4]; // 字节对齐
  61090. }NET_CFG_ENVIRONMENT_THERM_INFO;
  61091. ///@brief 每个屏蔽区的测温屏蔽区配置信息
  61092. typedef struct tagTHERMOMETRY_SHIELD_INFO
  61093. {
  61094. BOOL bEnable; // 屏蔽使能, TRUE开启, FALSE关闭
  61095. int nShieldId; // 屏蔽区编号
  61096. char szName[64]; // 自定义名称
  61097. NET_RECT stuRect; // 自定义名称
  61098. int nPresetId; // 预置点编号
  61099. char szReserved[128]; // 预留字段
  61100. }THERMOMETRY_SHIELD_INFO;
  61101. ///@brief 屏蔽区的测温屏蔽区配置信息
  61102. typedef struct tagNET_CFG_THERMOMETRY_SHIELD_INFO
  61103. {
  61104. DWORD dwSize; // 结构体大小, 必填项
  61105. UINT nRealInfoNumOfEachChennel; // 1 获取配置时,每个通道实际返回的测温屏蔽区配置个数
  61106. // 2 设置配置时,设置的配置个数
  61107. THERMOMETRY_SHIELD_INFO stuThermometryShieldInfo[12]; // 每个通道的测温屏蔽区配置信息,每个通道最多支持12个屏蔽区
  61108. }NET_CFG_THERMOMETRY_SHIELD_INFO;
  61109. ///@brief 待机灯光颜色
  61110. typedef enum tagEM_EAS_LED_COLOR
  61111. {
  61112. EM_EAS_LED_COLOR_UNKOWN, // 未知
  61113. EM_EAS_LED_COLOR_WHITE=1, // 白色
  61114. EM_EAS_LED_COLOR_BLUE, // 蓝色
  61115. EM_EAS_LED_COLOR_GREEN, // 绿色
  61116. EM_EAS_LED_COLOR_PURPLE, // 紫色
  61117. EM_EAS_LED_COLOR_PINK, // 粉色
  61118. }EM_EAS_LED_COLOR;
  61119. ///@brief 各通道报警参数
  61120. typedef struct tagNET_EAS_ALARM_PARAMETER
  61121. {
  61122. UINT nSnr; // 信噪比,0~50
  61123. UINT nAmp; // 幅度,0~300
  61124. UINT nStd; // 离散度,0~1500
  61125. UINT nRms; // 有效度,0~1500
  61126. char szReserved[64]; // 预留字节
  61127. }NET_EAS_ALARM_PARAMETER;
  61128. ///@brief EAS设备配置信息, 对应配置枚举 NET_EM_CFG_EAS_SYSTEM_CONFIG
  61129. typedef struct tagNET_CFG_EAS_SYSTEM_CONFIG_INFO
  61130. {
  61131. DWORD dwSize; // 结构体大小, 必填项
  61132. UINT nLabelResident; // 标签驻留提醒开关状态,0 -- 关闭 1-- 开启
  61133. UINT nInterfere; // 恶意干扰提醒开关状态,0-- 关闭 1-- 开启
  61134. UINT nAlarmMode; // 报警模式 0 -- 报警模式1, 1 -- 报警模式2 注:报警模式1时,使用AlarmThreshold字段 ,报警模式2时,使用AlarmParameter字段
  61135. EM_EAS_LED_COLOR emLedColor; // 待机灯光颜色
  61136. int nAlarmThresholdNum; // 各通道报警门限数组大小
  61137. UINT nAlarmThreshold[64]; // 各通道报警门限,元素值:0~5, 元素0 – 检测通道0, 元素1 – 检测通道1,以此类推
  61138. int nAlarmParameterNum; // 各通道报警参数数组实际有效个数
  61139. NET_EAS_ALARM_PARAMETER stuAlarmParameter[64]; // 各通道报警参数
  61140. }NET_CFG_EAS_SYSTEM_CONFIG_INFO;
  61141. ///@brief EAS设备天线开关, 对应配置枚举 NET_EM_CFG_EAS_COIL_SWITH
  61142. typedef struct tagNET_CFG_EAS_COIL_SWITH_INFO
  61143. {
  61144. DWORD dwSize; // 结构体大小, 必填项
  61145. int nTransmitCoilEnableNum; // 发射机天线开关状态数组实际有效个数
  61146. UINT nTransmitCoilEnable[64]; // 发射机天线开关状态, 元素0 – 检测通道0, 元素1 – 检测通道1, 元素2 – 检测通道2,->以此类推, 元素值:0 -- 关闭 1 -- 开启
  61147. int nReceiverCoilEnableNum; // 接收机天线开关状态数组实际有效个数
  61148. UINT nReceiverCoilEnable[64]; // 接收机天线开关状态, 元素0 – 检测通道0, 元素1 – 检测通道1, 元素2 – 检测通道2,->以此类推, 元素值:0 -- 关闭 1 -- 开启
  61149. }NET_CFG_EAS_COIL_SWITH_INFO;
  61150. ///@brief 每个通道的RTMP信息
  61151. typedef struct tagNET_CHANNEL_RTMP_INFO
  61152. {
  61153. BOOL bEnable; // 是否使能
  61154. UINT nChannel; // 通道号(URL中的Channel)
  61155. char szUrl[512]; // RTMP连接URL
  61156. BYTE byReserved[1024]; // 预留字段
  61157. }NET_CHANNEL_RTMP_INFO;
  61158. ///@brief RTMP 配置
  61159. typedef struct tagNET_CFG_RTMP_INFO
  61160. {
  61161. DWORD dwSize; // 结构体大小,赋值为sizeof(NET_CFG_RTMP_INFO)
  61162. BOOL bEnable; // RTMP配置是否开启
  61163. char szAddr[256]; // RTMP服务器地址
  61164. UINT nPort; // RTMP服务器端口
  61165. BYTE byReserved[4]; // 字节对齐
  61166. char szCustomPath[256]; // 定制路径名
  61167. char szStreamPath[256]; // 码流路径前缀:不同通道以后缀数字区分
  61168. char szKey[128]; // 获取RTMP地址时的Key(定制)
  61169. NET_CHANNEL_RTMP_INFO* pstuMainStream; // 主码流信息,用户分配内存,内存大小为 sizeof(NET_CHANNEL_RTMP_INFO) * nMainStream
  61170. UINT nMainStream; // pstuMainStream 个数
  61171. UINT nMainStreamRet; // 返回的 pstuMainStream 个数(获取配置时有效)
  61172. NET_CHANNEL_RTMP_INFO* pstuExtra1Stream; // 辅码流1信息,用户分配内存,内存大小为 sizeof(NET_CHANNEL_RTMP_INFO) * nExtra1Stream
  61173. UINT nExtra1Stream; // pstuExtra1Stream 个数
  61174. UINT nExtra1StreamRet; // 返回的 nExtra1StreamRet 个数(获取配置时有效)
  61175. NET_CHANNEL_RTMP_INFO* pstuExtra2Stream; // 辅码流2信息,用户分配内存,内存大小为 sizeof(NET_CHANNEL_RTMP_INFO) * nExtra2Stream
  61176. UINT nExtra2Stream; // pstuExtra2Stream 个数
  61177. UINT nExtra2StreamRet; // 返回的 nExtra2StreamRet 个数(获取配置时有效)
  61178. }NET_CFG_RTMP_INFO;
  61179. ///@brief 人体测温补偿模式
  61180. typedef enum tagEM_HUMAN_THERMOMETRY_COMPENSATE_MODE
  61181. {
  61182. EM_HUMAN_THERMOMETRY_COMPENSATE_MODE_UNKNOWN = 0, // 未知
  61183. EM_HUMAN_THERMOMETRY_COMPENSATE_MODE_FOREHEAD, // 额温模式
  61184. EM_HUMAN_THERMOMETRY_COMPENSATE_MODE_MERCURY, // 水银模式
  61185. }EM_HUMAN_THERMOMETRY_COMPENSATE_MODE;
  61186. ///@brief 人体测温补偿配置
  61187. typedef struct tagNET_CFG_HUMAN_THERMOMETRY_COMPENSATE_INFO
  61188. {
  61189. DWORD dwSize; // 结构体大小,赋值为sizeof(NET_CFG_HUMAN_THERMOMETRY_COMPENSATE_INFO)
  61190. EM_HUMAN_THERMOMETRY_COMPENSATE_MODE emCompensateMode; // 补偿模式
  61191. int nHumanCorrectTemp; // 人体修正温度, 精度0.01,实际值扩大100倍
  61192. int nBasicnCorrectTemp; // 基准修正温度, 精度0.01,实际值扩大100倍
  61193. }NET_CFG_HUMAN_THERMOMETRY_COMPENSATE_INFO;
  61194. ///@brief 串口日志重定向配置
  61195. typedef struct tagNET_CFG_DEBUGINFO_REDIR_INFO
  61196. {
  61197. DWORD dwSize; // 结构体大小,赋值为sizeof(NET_CFG_DEBUGINFO_REDIR_INFO)
  61198. BOOL bEnable; // 是否使能重定向
  61199. }NET_CFG_DEBUGINFO_REDIR_INFO;
  61200. ///@brief NVR 本地温度配置
  61201. typedef struct tagNET_CFG_LOCAL_HEAT_IMAGE_THERMOMETRY_INFO
  61202. {
  61203. DWORD dwSize; // 结构体大小,赋值为sizeof(NET_CFG_LOCAL_HEAT_IMAGE_THERMOMETRY_INFO)
  61204. EM_TEMPERATURE_UNIT emTemperatureUnit; // 温度单位,EM_TEMPERATURE_CENTIGRADE 及 EM_TEMPERATURE_FAHRENHEIT 有效
  61205. }NET_CFG_LOCAL_HEAT_IMAGE_THERMOMETRY_INFO;
  61206. ///@brief 门禁测温类型
  61207. typedef enum tagEM_TEMP_MEASURE_TYPE
  61208. {
  61209. EM_TEMP_MEASURE_TYPE_UNKNOWN, // 未知
  61210. EM_TEMP_MEASURE_TYPE_INFRARED, // 单片机红外测温
  61211. EM_TEMP_MEASURE_TYPE_THERMAL_IMAGE, // 热成像测温
  61212. EM_TEMP_MEASURE_TYPE_GUIDE_MODULE, // 高德测温模块测温
  61213. EM_TEMP_MEASURE_TYPE_WRIST, // 单点手腕测温
  61214. }EM_TEMP_MEASURE_TYPE;
  61215. ///@brief 门禁测温口罩检测模式
  61216. typedef enum tagEM_MASK_DETECT_MODE
  61217. {
  61218. EM_MASK_DETECT_MODE_UNKNOWN, // 未知
  61219. EM_MASK_DETECT_MODE_NO_DETECTION, // 不检测口罩
  61220. EM_MASK_DETECT_MODE_REMIND, // 口罩提醒模式
  61221. EM_MASK_DETECT_MODE_INTERCEPT, // 口罩拦截模式
  61222. }EM_MASK_DETECT_MODE;
  61223. ///@brief 单片机红外测温模式参数
  61224. typedef struct tagNET_INFRARED_MEASURE_MODE_PARAM
  61225. {
  61226. int nMaxDistance; // 最远测试距离,单位: cm
  61227. int nRetentionTime; // 红外温度保存时间(ms) (人员在设备鉴权时,从红外设备取温度的有效倒退时间)
  61228. double dbTempThreshold; // 温度阈值,单位: 摄氏度
  61229. double dbCorrectTemp; // 温度矫正值,单位: 摄氏度
  61230. double dbValidTempLowerLimit; // 有效温度下限,低于此值的温度为无效温度(摄氏度)
  61231. BOOL bDebugModelEnable; // 是否开启测温调试模式(在屏幕上显示测温调试数据)
  61232. BOOL bRectEnable; // 测温区域框显示使能(在视频流界面显示测试区域框)
  61233. char szSensorType[64]; // 测温模块传感器类型
  61234. BYTE byReserved[1024]; // 预留字段
  61235. }NET_INFRARED_MEASURE_MODE_PARAM;
  61236. ///@brief 热成像模式下参数
  61237. typedef struct tagNET_THERMAL_IMAGE_MEASURE_MODE_PARAM
  61238. {
  61239. int nFaceCompareThreshold; // 目标物比对阈值
  61240. int nRetentionTime; // 热成像温度保留时间(s) (目标物无法比对通过时,通过刷卡等其他方式验证权限,找到人员底库后再去热成像设备进行比对,此字段用于温度保存多少时间)
  61241. int nOverTempMaxDistance; // 上报高温事件的最大距离,在此距离内测到高温直接上报(cm)
  61242. BYTE byReserved[1020];
  61243. }NET_THERMAL_IMAGE_MEASURE_MODE_PARAM;
  61244. ///@brief 热成像标定模式
  61245. typedef enum tagEM_THERMAL_IMAGE_CALIBRATION_MODE
  61246. {
  61247. EM_THERMAL_IMAGE_CALIBRATION_MODE_UNKNOWN, // 未知
  61248. EM_THERMAL_IMAGE_CALIBRATION_MODE_INDOOR, // 室内模式
  61249. EM_THERMAL_IMAGE_CALIBRATION_MODE_WALL_MOUNTING, // 壁装模式
  61250. EM_THERMAL_IMAGE_CALIBRATION_MODE_GATE, // 闸机模式
  61251. EM_THERMAL_IMAGE_CALIBRATION_MODE_FLOOR, // 高端落地式模式
  61252. }EM_THERMAL_IMAGE_CALIBRATION_MODE;
  61253. ///@brief 高德测温模块使用参数
  61254. typedef struct tagNET_GUIDE_MODULE_MEASURE_MODE_PARAM
  61255. {
  61256. BOOL bRectEnable; // 测温区域框显示使能(在视频流界面显示测试区域框)
  61257. int nMaxDistance; // 允许的最远测温距离(cm)
  61258. double dbTempThreshold; // 温度阈值(摄氏度)
  61259. double dbCorrectTemp; // 温度矫正值(摄氏度)
  61260. double dbValidTempLowerLimit; // 有效温度下限,低于此值的温度为无效温度(摄氏度)
  61261. double dbTempRandReplaceThreshold; // 温度随机替换阈值(低于此阈值的温度会被随机替换为一个有效温度,用于兼容错误情况。阈值为0时表示此功能不开启)。
  61262. BOOL bDebugModelEnable; // 是否开启测温调试模式(在目标物顶部显示测温数据)
  61263. EM_THERMAL_IMAGE_CALIBRATION_MODE emCalibrationMode; // 热成像标定模式,不同标定模式下的标定参数不一样
  61264. BOOL bHeatDisplayEnbale; // 是否显示热图
  61265. BYTE byReserved[1020]; // 预留字段
  61266. }NET_GUIDE_MODULE_MEASURE_MODE_PARAM;
  61267. ///@brief 单点手腕测温模式参数
  61268. typedef struct tagNET_WRIST_MEASURE_MODE_PARAM
  61269. {
  61270. double dbTempThreshold; // 温度阈值(摄氏度)
  61271. double dbCorrectTemp; // 温度矫正值(摄氏度)
  61272. double dbValidTempLowerLimit; // 有效温度下限,低于此值的温度为无效温度(摄氏度)
  61273. int nMeasureTimeout; // 测温超时时间(秒)
  61274. int nValidMeasureDistance; // 有效温度测量距离(cm),小于该距离测量到的温度认为有效
  61275. int nInvalidMeasureDistance; // 无效温度测量距离(cm),大于该距离测量到的温度认为无效,直接过滤,同时该字段还配合ValidTemperatureDistance字段使用,在有效和无效距离之间测量的温度是不准的,需要提示用户靠近一点。
  61276. BYTE byReserved[1020];
  61277. }NET_WRIST_MEASURE_MODE_PARAM;
  61278. ///@brief 门禁测温配置
  61279. typedef struct tagNET_CFG_ACCESSCONTROL_MEASURE_TEMP_INFO
  61280. {
  61281. DWORD dwSize; // 结构体大小
  61282. BOOL bEnable; // 测温功能是否启用
  61283. BOOL bOnlyTempMode; // 仅测温模式是否启用
  61284. BOOL bDisplayTemp; // 温度值是否在提示结果中显示
  61285. EM_MASK_DETECT_MODE emMaskDetectMode; // 口罩检测模式
  61286. EM_TEMP_MEASURE_TYPE emMeasureType; // 测温类型
  61287. NET_INFRARED_MEASURE_MODE_PARAM stuInfraredTempParam; // 红外测温模式参数, emMeasureType 为 EM_TEMP_MEASURE_TYPE_INFRARED 时有效
  61288. NET_THERMAL_IMAGE_MEASURE_MODE_PARAM stuThermalImageTempParam; // 热成像测温模式参数, emMeasureType 为 EM_TEMP_MEASURE_TYPE_THERMAL_IMAGE 时有效
  61289. NET_GUIDE_MODULE_MEASURE_MODE_PARAM stuGuideModuleTempParam; // 高德模块测温模式参数, emMeasureType 为 EM_TEMP_MEASURE_TYPE_GUIDE_MODULE 时有效
  61290. NET_WRIST_MEASURE_MODE_PARAM stuWristTempParam; // 手腕单点测温模式参数, emMeasureType 为 EM_TEMP_MEASURE_TYPE_WRIST 时有效
  61291. }NET_CFG_ACCESSCONTROL_MEASURE_TEMP_INFO;
  61292. ///@brief 联动类型
  61293. typedef enum tagEM_PTZ_LINK_TYPE
  61294. {
  61295. EM_PTZ_LINK_TYPE_NONE, // none
  61296. EM_PTZ_LINK_TYPE_PRESET, // "Preset" 联动预置点
  61297. EM_PTZ_LINK_TYPE_TOUR, // "Tour" 联动巡航
  61298. EM_PTZ_LINK_TYPE_PATTERN, // "Pattern" 联动模式
  61299. EM_PTZ_LINK_TYPE_ZOOM, // "Zoom" 联动变倍
  61300. EM_PTZ_LINK_TYPE_SINGLESCENE, // "SingleScene" 联动智能单场景
  61301. EM_PTZ_LINK_TYPE_QUICKFOCUS, // "QuickFocus" 热成像云台联动快速定位
  61302. } EM_PTZ_LINK_TYPE;
  61303. ///@brief 联动云台信息
  61304. typedef struct tagNET_CFG_PTZ_LINK
  61305. {
  61306. EM_PTZ_LINK_TYPE emType; // 联动类型
  61307. int nValue; // 联动取值分别对应预置点号,巡航号等等
  61308. } NET_CFG_PTZ_LINK;
  61309. ///@brief 云台联动项
  61310. typedef struct tagNET_PTZ_LINK
  61311. {
  61312. EM_PTZ_LINK_TYPE emType; // 云台联动类型
  61313. int nParam1; // 联动参数1
  61314. int nParam2; // 联动参数2
  61315. int nParam3; // 联动参数3
  61316. int nChannelID; // 所联动云台通道
  61317. } NET_PTZ_LINK;
  61318. ///@brief 报警联动信息
  61319. typedef struct tagNET_CFG_ALARM_MSG_HANDLE
  61320. {
  61321. DWORD dwSize;
  61322. //能力
  61323. bool abChannelCount; // 是否支持通道数量
  61324. bool abAlarmOutCount; // 是否支持报警输出数量
  61325. bool abRecordMask; // 是否支持录像通道
  61326. bool abRecordEnable; // 是否支持录像使能
  61327. bool abRecordLatch; // 是否支持录像延时
  61328. bool abAlarmOutMask; // 是否支持报警输出通道
  61329. bool abAlarmOutEn; // 是否支持报警输出使能
  61330. bool abAlarmOutLatch; // 是否支持报警输出延时
  61331. bool abExAlarmOutMask; // 是否支持扩展报警输出通道
  61332. bool abExAlarmOutEn; // 是否支持扩展报警输出使能
  61333. bool abPtzLinkEn; // 是否支持云台联动使能
  61334. bool abTourMask; // 是否支持轮巡掩码
  61335. bool abTourEnable; // 是否支持轮巡使能
  61336. bool abSnapshot; // 是否支持快照
  61337. bool abSnapshotEn; // 是否支持快照使能
  61338. bool abSnapshotPeriod; // 是否支持帧间隔,每隔多少帧抓一张图片
  61339. bool abSnapshotTimes; // 是否支持连拍次数
  61340. bool abTipEnable; // 是否支持本地消息框提示
  61341. bool abMailEnable; // 是否支持发送邮件
  61342. bool abMessageEnable; // 是否支持上传到报警中心服务器
  61343. bool abBeepEnable; // 是否支持蜂鸣
  61344. bool abVoiceEnable; // 是否支持语音提示
  61345. bool abMatrixMask; // 是否支持联动视频矩阵掩码
  61346. bool abMatrixEnable; // 是否支持联动视频矩阵使能
  61347. bool abEventLatch; // 是否支持联动开始延时时间
  61348. bool abLogEnable; // 是否支持日志使能
  61349. bool abDelay; // 是否支持报警延时
  61350. bool abVideoMessageEn; // 是否支持叠加提示字幕到视频
  61351. bool abMMSEnable; // 是否支持发送短消息
  61352. bool abMessageToNetEn; // 是否支持消息上传给网络使能
  61353. bool abTourSplit; // 是否支持换面分割轮巡
  61354. bool abSnapshotTitleEn; // 是否支持叠加图片标题使能
  61355. bool abPtzLinkEx; // 是否支持云台联动使能
  61356. bool abSnapshotTitle; // 是否支持叠加图片标题
  61357. bool abMailDetail; // 是否支持邮件详情
  61358. bool abVideoTitleEn; // 是否支持叠加视频标题,主要指主码流
  61359. bool abVideoTitle; // 是否支持视频标题内容
  61360. bool abTour; // 是否支持轮巡
  61361. bool abDBKeys; // 是否支持指定事件详细信息里需要写到数据库的关键字
  61362. bool abJpegSummary; // 是否支持叠加到JPEG图片的摘要信息
  61363. bool abFlashEn; // 是否支持补光灯使能
  61364. bool abFlashLatch; // 是否支持补光灯延时
  61365. bool abAudioFileName; // 是否支持联动语音文件绝对路径
  61366. bool abAlarmBellEn; // 是否支持警号使能
  61367. bool abAccessControlEn; // 是否支持门禁控制使能
  61368. bool abAccessControl; // 是否支持门禁控制
  61369. bool abTalkBack; // 是否支持语音呼叫
  61370. bool abPSTNAlarmServer; // 是否支持电话报警中心
  61371. bool abAlarmBellLatch; // 是否支持警号输出延时
  61372. bool abPlayTimes; // 是否支持联动语音播放次数
  61373. bool abReboot; // 是否支持重启使能
  61374. bool abBeepTime; // 是否支持蜂鸣时长
  61375. BYTE byReserved[68]; // 能力保留字段
  61376. /*信息*/
  61377. NET_CFG_TIME_SCHEDULE stuTimeSection; // 事件响应时间表
  61378. int nChannelCount; // 设备的视频通道数
  61379. int nAlarmOutCount; // 设备的报警输出个数
  61380. DWORD dwRecordMask[CFG_MAX_CHANNEL_COUNT]; // 录像通道掩码(按位)
  61381. BOOL bRecordEnable; // 录像使能
  61382. int nRecordLatch; // 录像延时时间(秒)
  61383. DWORD dwAlarmOutMask[CFG_MAX_CHANNEL_COUNT]; // 报警输出通道掩码
  61384. BOOL bAlarmOutEn; // 报警输出使能
  61385. int nAlarmOutLatch; // 报警输出延时时间(秒)
  61386. DWORD dwExAlarmOutMask[CFG_MAX_CHANNEL_COUNT]; // 扩展报警输出通道掩码
  61387. BOOL bExAlarmOutEn; // 扩展报警输出使能
  61388. NET_CFG_PTZ_LINK stuPtzLink[CFG_MAX_VIDEO_CHANNEL_NUM]; // 云台联动项 //这个参数并没有被解析,应该是被扩展替代
  61389. BOOL bPtzLinkEn; // 云台联动使能
  61390. DWORD dwTourMask[CFG_MAX_CHANNEL_COUNT]; // 轮询通道掩码
  61391. BOOL bTourEnable; // 轮询使能
  61392. DWORD dwSnapshot[CFG_MAX_CHANNEL_COUNT]; // 快照通道号掩码
  61393. BOOL bSnapshotEn; // 快照使能
  61394. int nSnapshotPeriod; // 连拍周期(秒)
  61395. int nSnapshotTimes; // 连拍次数
  61396. BOOL bTipEnable; // 本地消息框提示
  61397. BOOL bMailEnable; // 发送邮件,如果有图片,作为附件
  61398. BOOL bMessageEnable; // 上传到报警服务器
  61399. BOOL bBeepEnable; // 蜂鸣
  61400. BOOL bVoiceEnable; // 语音提示
  61401. int nPlayTimes; // 联动语音播放次数bVoiceEnable=TRUE时生效
  61402. DWORD dwMatrixMask[CFG_MAX_CHANNEL_COUNT]; // 联动视频矩阵通道掩码
  61403. BOOL bMatrixEnable; // 联动视频矩阵
  61404. int nEventLatch; // 联动开始延时时间(秒),0-15
  61405. BOOL bLogEnable; // 是否记录日志
  61406. int nDelay; // 设置时先延时再生效,单位为秒
  61407. BOOL bVideoMessageEn; // 叠加提示字幕到视频。叠加的字幕包括事件类型,通道号,秒计时。
  61408. BOOL bMMSEnable; // 发送彩信使能
  61409. BOOL bMessageToNetEn; // 消息上传给网络使能
  61410. int nTourSplit; // 轮巡时的分割模式 0: 1画面; 1: 8画面
  61411. BOOL bSnapshotTitleEn; // 是否叠加图片标题
  61412. int nPtzLinkExNum; // 云台配置数
  61413. NET_PTZ_LINK stuPtzLinkEx[CFG_MAX_VIDEO_CHANNEL_NUM]; // 扩展云台信息
  61414. int nSnapTitleNum; // 图片标题内容数
  61415. NET_CFG_EVENT_TITLE stuSnapshotTitle[CFG_MAX_VIDEO_CHANNEL_NUM]; // 图片标题内容
  61416. NET_CFG_MAIL_DETAIL stuMailDetail; // 邮件详细内容
  61417. BOOL bVideoTitleEn; // 是否叠加视频标题,主要指主码流
  61418. int nVideoTitleNum; // 视频标题内容数目
  61419. NET_CFG_EVENT_TITLE stuVideoTitle[CFG_MAX_VIDEO_CHANNEL_NUM]; // 视频标题内容
  61420. int nTourNum; // 轮询联动数目
  61421. NET_CFG_TOURLINK stuTour[CFG_MAX_VIDEO_CHANNEL_NUM]; // 轮询联动配置
  61422. int nDBKeysNum; // 指定数据库关键字的有效数
  61423. char szDBKeys[CFG_MAX_DBKEY_NUM][CFG_MAX_CHANNELNAME_LEN]; // 指定事件详细信息里需要写到数据库的关键字
  61424. BYTE byJpegSummary[CFG_MAX_SUMMARY_LEN]; // 叠加到JPEG图片的摘要信息
  61425. BOOL bFlashEnable; // 是否使能补光灯
  61426. int nFlashLatch; // 补光灯延时时间(秒),延时时间范围:[10,300]
  61427. char szAudioFileName[MAX_PATH]; // 联动语音文件绝对路径
  61428. BOOL bAlarmBellEn; // 警号使能
  61429. BOOL bAccessControlEn; // 门禁使能
  61430. DWORD dwAccessControl; // 门禁组数
  61431. NET_EM_CFG_ACCESSCONTROLTYPE emAccessControlType[CFG_MAX_ACCESSCONTROL_NUM]; // 门禁联动操作信息
  61432. NET_CFG_TALKBACK_INFO stuTalkback; // 语音呼叫联动信息
  61433. NET_CFG_PSTN_ALARM_SERVER stuPSTNAlarmServer; // 电话报警中心联动信息
  61434. int nAlarmBellLatch; // 警号输出延时时间(10-300秒)
  61435. BOOL bReboot; //重启使能TRUE:使能 FALSE:不使能
  61436. int nBeepTime; //蜂鸣时长最大值为3600,0代表持续蜂鸣
  61437. BOOL abLightingLink; // 云台补光灯联动项使能
  61438. NET_CFG_LIGHTING_LINK_INFO stuLightingLink; // 云台补光灯联动项
  61439. } NET_CFG_ALARM_MSG_HANDLE;
  61440. ///@brief 报警联动信息
  61441. typedef struct tagNET_ALARM_MSG_HANDLE
  61442. {
  61443. //能力
  61444. bool abChannelCount; // 是否支持通道数量
  61445. bool abAlarmOutCount; // 是否支持报警输出数量
  61446. bool abRecordMask; // 是否支持录像通道
  61447. bool abRecordEnable; // 是否支持录像使能
  61448. bool abRecordLatch; // 是否支持录像延时
  61449. bool abAlarmOutMask; // 是否支持报警输出通道
  61450. bool abAlarmOutEn; // 是否支持报警输出使能
  61451. bool abAlarmOutLatch; // 是否支持报警输出延时
  61452. bool abExAlarmOutMask; // 是否支持扩展报警输出通道
  61453. bool abExAlarmOutEn; // 是否支持扩展报警输出使能
  61454. bool abPtzLinkEn; // 是否支持云台联动使能
  61455. bool abTourMask; // 是否支持轮巡掩码
  61456. bool abTourEnable; // 是否支持轮巡使能
  61457. bool abSnapshot; // 是否支持快照
  61458. bool abSnapshotEn; // 是否支持快照使能
  61459. bool abSnapshotPeriod; // 是否支持帧间隔,每隔多少帧抓一张图片
  61460. bool abSnapshotTimes; // 是否支持连拍次数
  61461. bool abTipEnable; // 是否支持本地消息框提示
  61462. bool abMailEnable; // 是否支持发送邮件
  61463. bool abMessageEnable; // 是否支持上传到报警中心服务器
  61464. bool abBeepEnable; // 是否支持蜂鸣
  61465. bool abVoiceEnable; // 是否支持语音提示
  61466. bool abMatrixMask; // 是否支持联动视频矩阵掩码
  61467. bool abMatrixEnable; // 是否支持联动视频矩阵使能
  61468. bool abEventLatch; // 是否支持联动开始延时时间
  61469. bool abLogEnable; // 是否支持日志使能
  61470. bool abDelay; // 是否支持报警延时
  61471. bool abVideoMessageEn; // 是否支持叠加提示字幕到视频
  61472. bool abMMSEnable; // 是否支持发送短消息
  61473. bool abMessageToNetEn; // 是否支持消息上传给网络使能
  61474. bool abTourSplit; // 是否支持换面分割轮巡
  61475. bool abSnapshotTitleEn; // 是否支持叠加图片标题使能
  61476. bool abPtzLinkEx; // 是否支持云台联动使能
  61477. bool abSnapshotTitle; // 是否支持叠加图片标题
  61478. bool abMailDetail; // 是否支持邮件详情
  61479. bool abVideoTitleEn; // 是否支持叠加视频标题,主要指主码流
  61480. bool abVideoTitle; // 是否支持视频标题内容
  61481. bool abTour; // 是否支持轮巡
  61482. bool abDBKeys; // 是否支持指定事件详细信息里需要写到数据库的关键字
  61483. bool abJpegSummary; // 是否支持叠加到JPEG图片的摘要信息
  61484. bool abFlashEn; // 是否支持补光灯使能
  61485. bool abFlashLatch; // 是否支持补光灯延时
  61486. bool abAudioFileName; // 是否支持联动语音文件绝对路径
  61487. bool abAlarmBellEn; // 是否支持警号使能
  61488. bool abAccessControlEn; // 是否支持门禁控制使能
  61489. bool abAccessControl; // 是否支持门禁控制
  61490. bool abTalkBack; // 是否支持语音呼叫
  61491. bool abPSTNAlarmServer; // 是否支持电话报警中心
  61492. bool abAlarmBellLatch; // 是否支持警号输出延时
  61493. bool abPlayTimes; // 是否支持联动语音播放次数
  61494. bool abReboot; // 是否支持重启使能
  61495. bool abBeepTime; // 是否支持蜂鸣时长
  61496. BYTE byReserved[68]; // 能力保留字段
  61497. /*信息*/
  61498. NET_CFG_TIME_SCHEDULE stuTimeSection; // 事件响应时间表
  61499. int nChannelCount; // 设备的视频通道数
  61500. int nAlarmOutCount; // 设备的报警输出个数
  61501. DWORD dwRecordMask[CFG_MAX_CHANNEL_COUNT]; // 录像通道掩码(按位)
  61502. BOOL bRecordEnable; // 录像使能
  61503. int nRecordLatch; // 录像延时时间(秒)
  61504. DWORD dwAlarmOutMask[CFG_MAX_CHANNEL_COUNT]; // 报警输出通道掩码
  61505. BOOL bAlarmOutEn; // 报警输出使能
  61506. int nAlarmOutLatch; // 报警输出延时时间(秒)
  61507. DWORD dwExAlarmOutMask[CFG_MAX_CHANNEL_COUNT]; // 扩展报警输出通道掩码
  61508. BOOL bExAlarmOutEn; // 扩展报警输出使能
  61509. NET_CFG_PTZ_LINK stuPtzLink[CFG_MAX_VIDEO_CHANNEL_NUM]; // 云台联动项 //这个参数并没有被解析,应该是被扩展替代
  61510. BOOL bPtzLinkEn; // 云台联动使能
  61511. DWORD dwTourMask[CFG_MAX_CHANNEL_COUNT]; // 轮询通道掩码
  61512. BOOL bTourEnable; // 轮询使能
  61513. DWORD dwSnapshot[CFG_MAX_CHANNEL_COUNT]; // 快照通道号掩码
  61514. BOOL bSnapshotEn; // 快照使能
  61515. int nSnapshotPeriod; // 连拍周期(秒)
  61516. int nSnapshotTimes; // 连拍次数
  61517. BOOL bTipEnable; // 本地消息框提示
  61518. BOOL bMailEnable; // 发送邮件,如果有图片,作为附件
  61519. BOOL bMessageEnable; // 上传到报警服务器
  61520. BOOL bBeepEnable; // 蜂鸣
  61521. BOOL bVoiceEnable; // 语音提示
  61522. int nPlayTimes; // 联动语音播放次数bVoiceEnable=TRUE时生效
  61523. DWORD dwMatrixMask[CFG_MAX_CHANNEL_COUNT]; // 联动视频矩阵通道掩码
  61524. BOOL bMatrixEnable; // 联动视频矩阵
  61525. int nEventLatch; // 联动开始延时时间(秒),0-15
  61526. BOOL bLogEnable; // 是否记录日志
  61527. int nDelay; // 设置时先延时再生效,单位为秒
  61528. BOOL bVideoMessageEn; // 叠加提示字幕到视频。叠加的字幕包括事件类型,通道号,秒计时。
  61529. BOOL bMMSEnable; // 发送彩信使能
  61530. BOOL bMessageToNetEn; // 消息上传给网络使能
  61531. int nTourSplit; // 轮巡时的分割模式 0: 1画面; 1: 8画面
  61532. BOOL bSnapshotTitleEn; // 是否叠加图片标题
  61533. int nPtzLinkExNum; // 云台配置数
  61534. NET_PTZ_LINK stuPtzLinkEx[CFG_MAX_VIDEO_CHANNEL_NUM]; // 扩展云台信息
  61535. int nSnapTitleNum; // 图片标题内容数
  61536. NET_CFG_EVENT_TITLE stuSnapshotTitle[CFG_MAX_VIDEO_CHANNEL_NUM]; // 图片标题内容
  61537. NET_CFG_MAIL_DETAIL stuMailDetail; // 邮件详细内容
  61538. BOOL bVideoTitleEn; // 是否叠加视频标题,主要指主码流
  61539. int nVideoTitleNum; // 视频标题内容数目
  61540. NET_CFG_EVENT_TITLE stuVideoTitle[CFG_MAX_VIDEO_CHANNEL_NUM]; // 视频标题内容
  61541. int nTourNum; // 轮询联动数目
  61542. NET_CFG_TOURLINK stuTour[CFG_MAX_VIDEO_CHANNEL_NUM]; // 轮询联动配置
  61543. int nDBKeysNum; // 指定数据库关键字的有效数
  61544. char szDBKeys[CFG_MAX_DBKEY_NUM][CFG_MAX_CHANNELNAME_LEN]; // 指定事件详细信息里需要写到数据库的关键字
  61545. BYTE byJpegSummary[CFG_MAX_SUMMARY_LEN]; // 叠加到JPEG图片的摘要信息
  61546. BOOL bFlashEnable; // 是否使能补光灯
  61547. int nFlashLatch; // 补光灯延时时间(秒),延时时间范围:[10,300]
  61548. char szAudioFileName[MAX_PATH]; // 联动语音文件绝对路径
  61549. BOOL bAlarmBellEn; // 警号使能
  61550. BOOL bAccessControlEn; // 门禁使能
  61551. DWORD dwAccessControl; // 门禁组数
  61552. NET_EM_CFG_ACCESSCONTROLTYPE emAccessControlType[CFG_MAX_ACCESSCONTROL_NUM]; // 门禁联动操作信息
  61553. NET_CFG_TALKBACK_INFO stuTalkback; // 语音呼叫联动信息
  61554. NET_CFG_PSTN_ALARM_SERVER stuPSTNAlarmServer; // 电话报警中心联动信息
  61555. int nAlarmBellLatch; // 警号输出延时时间(10-300秒)
  61556. BOOL bReboot; //重启使能TRUE:使能 FALSE:不使能
  61557. int nBeepTime; //蜂鸣时长最大值为3600,0代表持续蜂鸣
  61558. BOOL abAudioLinkTime; // 联动语音时间使能
  61559. int nAudioLinkTime; // 联动语音播放的时间, 单位:秒
  61560. BOOL abAudioPlayTimes; // 联动语音播放使能
  61561. UINT nAudioPlayTimes; // 联动语音播放次数
  61562. BOOL abLightingLink; // 云台补光灯联动项使能
  61563. NET_CFG_LIGHTING_LINK_INFO stuLightingLink; // 云台补光灯联动项
  61564. BYTE byReserve[828]; // 预留字节
  61565. } NET_ALARM_MSG_HANDLE;
  61566. ///@brief PH值报警配置
  61567. typedef struct tagWATER_DETECTION_PH
  61568. {
  61569. BOOL bEnable; // PH报警使能
  61570. float fHigh; // PH值大于阈值报警配置 范围(1-14)
  61571. float fLow; // PH值小于阈值报警配置 范围(1-14)
  61572. char szReserved[128]; // 预留字节
  61573. }WATER_DETECTION_PH;
  61574. ///@brief 浊度报警配置
  61575. typedef struct tagWATER_DETECTION_NTU
  61576. {
  61577. BOOL bEnable; // 浊度报警使能
  61578. float fHigh; // 浊度大于阈值报警配置 范围(0-500NTU)
  61579. float fLow; // 浊度小于阈值报警配置 范围(0-500NTU)
  61580. char szReserved[128]; // 预留字节
  61581. }WATER_DETECTION_NTU;
  61582. ///@brief 氨氮报警配置
  61583. typedef struct tagWATER_DETECTION_NH3_N
  61584. {
  61585. BOOL bEnable; // 氨氮报警使能
  61586. float fHigh; // 氨氮大于阈值报警配置 范围(0-50mg/l)
  61587. float fLow; // 氨氮小于阈值报警配置 范围(0-50mg/l)
  61588. char szReserved[128]; // 预留字节
  61589. }WATER_DETECTION_NH3_N;
  61590. ///@brief 总氮报警配置
  61591. typedef struct tagWATER_DETECTION_TN
  61592. {
  61593. BOOL bEnable; // 总氮报警使能
  61594. float fHigh; // 总氮大于阈值报警配置 范围(0-50mg/l)
  61595. float fLow; // 总氮小于阈值报警配置 范围(0-50mg/l)
  61596. char szReserved[128]; // 预留字节
  61597. }WATER_DETECTION_TN;
  61598. ///@brief 透明度报警配置
  61599. typedef struct tagWATER_DETECTION_SD
  61600. {
  61601. BOOL bEnable; // 透明度报警使能
  61602. float fHigh; // 透明度大于阈值报警配置 范围(0-30 m)
  61603. float fLow; // 透明度小于阈值报警配置 范围(0-30 m)
  61604. char szReserved[128]; // 预留字节
  61605. }WATER_DETECTION_SD;
  61606. ///@brief 化学需氧量报警配置
  61607. typedef struct tagWATER_DETECTION_COD
  61608. {
  61609. BOOL bEnable; // 化学需氧量报警使能
  61610. float fHigh; // 化学需氧量大于阈值报警配置 范围(0-100mg/l)
  61611. float fLow; // 化学需氧量小于阈值报警配置 范围(0-100mg/l)
  61612. char szReserved[128]; // 预留字节
  61613. }WATER_DETECTION_COD;
  61614. ///@brief 亚硝酸盐氮报警配置
  61615. typedef struct tagWATER_DETECTION_NN
  61616. {
  61617. BOOL bEnable; // 亚硝酸盐氮报警使能
  61618. float fHigh; // 亚硝酸盐氮大于阈值报警配置 范围(0-500mg/l)
  61619. float fLow; // 亚硝酸盐氮小于阈值报警配置 范围(0-500mg/l)
  61620. char szReserved[128]; // 预留字节
  61621. }WATER_DETECTION_NN;
  61622. ///@brief 溶解氧报警配置
  61623. typedef struct tagWATER_DETECTION_DO
  61624. {
  61625. BOOL bEnable; // 溶解氧报警使能
  61626. float fHigh; // 溶解氧大于阈值报警配置 范围(0-10 mg/l)
  61627. float fLow; // 溶解氧小于阈值报警配置 范围(0-10 mg/l)
  61628. char szReserved[128]; // 预留字节
  61629. }WATER_DETECTION_DO;
  61630. ///@brief 叶绿素a报警配置
  61631. typedef struct tagWATER_DETECTION_CHL_A
  61632. {
  61633. BOOL bEnable; // 叶绿素a报警使能
  61634. float fHigh; // 叶绿素a大于阈值报警配置 范围(0-300 ug/l)
  61635. float fLow; // 叶绿素a小于阈值报警配置 范围(0-300 ug/l)
  61636. char szReserved[128]; // 预留字节
  61637. }WATER_DETECTION_CHL_A;
  61638. ///@brief 总磷报警场景类型
  61639. typedef enum tagEM_WATER_DETECTION_TP_ALARM_TYPE
  61640. {
  61641. EM_WATER_DETECTION_TP_ALARM_TYPE_UNKNOWN, // 未知
  61642. EM_WATER_DETECTION_TP_ALARM_TYPE_NORMAL, // 一般场景
  61643. EM_WATER_DETECTION_TP_ALARM_TYPE_LAKE, // 湖、库场景
  61644. }EM_WATER_DETECTION_TP_ALARM_TYPE;
  61645. ///@brief 总磷报警配置
  61646. typedef struct tagWATER_DETECTION_TP
  61647. {
  61648. BOOL bEnable; // 总磷报警使能
  61649. float fHigh; // 总磷大于阈值报警 范围(0-5mg/l)
  61650. float fLow; // 总磷小于阈值报警 范围(0-5mg/l)
  61651. EM_WATER_DETECTION_TP_ALARM_TYPE emAlarmType; // 总磷报警场景类型
  61652. char szReserved[128]; // 预留字节
  61653. }WATER_DETECTION_TP;
  61654. ///@brief 高锰酸盐指数报警配置
  61655. typedef struct tagWATER_DETECTION_CODMN
  61656. {
  61657. BOOL bEnable; // 高锰酸盐指数报警使能
  61658. float fHigh; // 高锰酸盐指数大于阈值报警配置 范围(0-100mg/l)
  61659. float fLow; // 高锰酸盐指数小于阈值报警配置 范围(0-100mg/l)
  61660. char szReserved[128]; // 预留字节
  61661. }WATER_DETECTION_CODMN;
  61662. ///@brief 悬浮物报警配置
  61663. typedef struct tagWATER_DETECTION_SS
  61664. {
  61665. BOOL bEnable; // 悬浮物报警使能
  61666. float fHigh; // 悬浮物大于阈值报警配置 范围(0-1000mg/l)
  61667. float fLow; // 悬浮物小于阈值报警配置 范围(0-1000mg/l)
  61668. char szReserved[128]; // 预留字节
  61669. }WATER_DETECTION_SS;
  61670. ///@brief 五日生化需氧量报警配置
  61671. typedef struct tagWATER_DETECTION_BOD5
  61672. {
  61673. BOOL bEnable; // 五日生化需氧量报警使能
  61674. float fHigh; // 五日生化需氧量大于阈值报警配置 范围(0-50mg/l)
  61675. float fLow; // 五日生化需氧量小于阈值报警配置 范围(0-50mg/l)
  61676. char szReserved[128]; // 预留字节
  61677. }WATER_DETECTION_BOD5;
  61678. ///@brief 硝酸盐报警配置
  61679. typedef struct tagWATER_DETECTION_NO3_N
  61680. {
  61681. BOOL bEnable; // 硝酸盐报警使能
  61682. float fHigh; // 硝酸盐大于阈值报警配置 范围(0-500mg/l)
  61683. float fLow; // 硝酸盐小于阈值报警配置 范围(0-500mg/l)
  61684. char szReserved[128]; // 预留字节
  61685. }WATER_DETECTION_NO3_N;
  61686. ///@brief 富营养状况指数报警配置
  61687. typedef struct tagWATER_DETECTION_TSL
  61688. {
  61689. BOOL bEnable; // 富营养状况指数报警使能
  61690. float fHigh; // 富营养状况指数大于阈值报警配置 范围无
  61691. float fLow; // 富营养状况指数小于阈值报警配置 范围无
  61692. char szReserved[128]; // 预留字节
  61693. }WATER_DETECTION_TSL;
  61694. ///@brief 黑臭等级报警配置
  61695. typedef struct tagWATER_DETECTION_SMALL_LEVEL
  61696. {
  61697. BOOL bEnable; // 黑臭等级报警使能
  61698. char szReserved[128]; // 预留字节
  61699. }WATER_DETECTION_SMALL_LEVEL;
  61700. ///@brief 水质检测功能报警阈值设置 对应枚举 NET_EM_CFG_WATER_QUALITY_DETECTION
  61701. typedef struct tagNET_CFG_WATER_QUALITY_DETECTION_INFO
  61702. {
  61703. DWORD dwSize; // 结构体大小
  61704. WATER_DETECTION_PH stuPh; // PH值报警配置
  61705. WATER_DETECTION_NTU stuNtu; // 浊度报警配置
  61706. WATER_DETECTION_NH3_N stuNh3n; // 氨氮报警配置
  61707. WATER_DETECTION_TN stuTn; // 总氮报警配置
  61708. WATER_DETECTION_SD stuSd; // 透明度报警配置
  61709. WATER_DETECTION_COD stuCod; // 化学需氧量报警配置
  61710. WATER_DETECTION_NN stuNn; // 亚硝酸盐氮报警配置
  61711. WATER_DETECTION_DO stuDo; // 溶解氧报警配置
  61712. WATER_DETECTION_CHL_A stuChla; // 叶绿素a报警配置
  61713. WATER_DETECTION_TP stuTp; // 总磷报警配置
  61714. WATER_DETECTION_CODMN stuCodMn; // 高锰酸盐指数报警配置
  61715. WATER_DETECTION_SS stuSs; // 悬浮物报警配置
  61716. WATER_DETECTION_BOD5 stuBod5; // 五日生化需氧量报警配置
  61717. WATER_DETECTION_NO3_N stuNo3n; // 硝酸盐报警配置
  61718. WATER_DETECTION_TSL stuTsl; // 富营养状况指数报警配置
  61719. WATER_DETECTION_SMALL_LEVEL stuSmallLevel; // 黑臭等级报警配置
  61720. BOOL bDataUpload; // 是否支持实时上报
  61721. UINT nUpdateInterval; // 实时数据上报间隔(单位:秒) 取值范围[60, 86400]
  61722. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动信息
  61723. }NET_CFG_WATER_QUALITY_DETECTION_INFO;
  61724. ///@brief 硬盘属性类型
  61725. typedef enum tagEM_FINANCIAL_CABINET_ALARM_TYPE
  61726. {
  61727. EM_FINANCIAL_CABINET_ALARM_TYPE_UNKNOWN = -1, // 未知
  61728. EM_FINANCIAL_CABINET_ALARM_TYPE_ABNORMAL, // 异常开门
  61729. EM_FINANCIAL_CABINET_ALARM_TYPE_EMERGENCY, // 应急开门
  61730. EM_FINANCIAL_CABINET_ALARM_TYPE_NOTOPEN, // 超时未开
  61731. EM_FINANCIAL_CABINET_ALARM_TYPE_TIMEOUT, // 存取操作超时
  61732. EM_FINANCIAL_CABINET_ALARM_TYPE_TRUCKAWAY, // 尾款箱未在存取时间内存入
  61733. EM_FINANCIAL_CABINET_ALARM_TYPE_WITHDRAW, // 非法领用
  61734. EM_FINANCIAL_CABINET_ALARM_TYPE_DEPOSIT, // 非法存入
  61735. EM_FINANCIAL_CABINET_ALARM_TYPE_BATTERY, // 电池低电压
  61736. EM_FINANCIAL_CABINET_ALARM_TYPE_OTHAR, // 其他
  61737. }EM_FINANCIAL_CABINET_ALARM_TYPE;
  61738. ///@brief 金融业务库报警配置
  61739. typedef struct tagNET_FINANCIAL_CABINET_ALARM_INFO
  61740. {
  61741. BOOL bEnable; // 使能
  61742. EM_FINANCIAL_CABINET_ALARM_TYPE emAlarmType; // 硬盘属性类型
  61743. int nAlarmLevel; // 报警等级 0:不报警 1:普通报警 2:严重报警
  61744. BOOL bAlarmLinkEnable; // 是否联动报警
  61745. int nValue; // 阈值数值
  61746. char szUnit[32]; // 阈值单位
  61747. int nAlarmOutChannel[8]; // 联动报警输出通道, 在bAlarmLinkEnable为TRUE时生效
  61748. int nAlarmOutChannelNum; // 联动报警输出通道的个数, 配合nAlarmOutChannel[8]使用,最大值为8
  61749. char szReserverd[984]; // 预留字节
  61750. }NET_FINANCIAL_CABINET_ALARM_INFO;
  61751. ///@brief 金融业务库报警配置 对应枚举 NET_EM_CFG_FINANCIAL_CABINET_ALARM
  61752. typedef struct tagNET_CFG_FINANCIAL_CABINET_ALARM_INFO
  61753. {
  61754. DWORD dwSize; // 结构体大小
  61755. int nConfigNum; // 金融业务库报警配置个数
  61756. NET_FINANCIAL_CABINET_ALARM_INFO stuFinancialCabinetAlarm[32]; // 金融业务库报警配置
  61757. }NET_CFG_FINANCIAL_CABINET_ALARM_INFO;
  61758. ///@brief 金库门设置
  61759. typedef struct tagNET_FINANCIAL_CABINET_VAULTDOOR
  61760. {
  61761. UINT nDynamicPasswordLockNum; // 金库门开锁时需要开锁的动态密码锁数量
  61762. UINT nElectronicLockNum; // 金库门开锁时需要开锁的电控锁数量
  61763. UINT nMechanicalLockNum; // 机械锁数量
  61764. UINT nTotalLockNum; // 总开锁数量
  61765. UINT nCloseTime; // 闭锁时间, 单位秒
  61766. char szReserverd[252]; // 预留字节
  61767. }NET_FINANCIAL_CABINET_VAULTDOOR;
  61768. ///@brief 排班时间
  61769. typedef struct tagNET_FINANCIAL_CABINET_WORKTIME
  61770. {
  61771. BOOL bEnable; // 使能 不使能则不校验排班时间
  61772. char szStartTime[16]; // 排班起始时间
  61773. char szEndTime[16]; // 排班结束时间
  61774. int nWeekDayNum; // 星期天数
  61775. UINT nWeekDay[7]; // 星期 0:周日,1:周一,…,6:周六
  61776. char szReserverd[252]; // 预留字节
  61777. }NET_FINANCIAL_CABINET_WORKTIME;
  61778. ///@brief 自动布撤防
  61779. typedef struct tagNET_FINANCIAL_CABINET_AUTOARM
  61780. {
  61781. BOOL bEnable; // 使能
  61782. char szDisarmStartTime[16]; // 撤防开始时间(自动布防结束时间)
  61783. char szDisarmEndTime[16]; // 撤防结束时间(自动布防开始时间)
  61784. int nWeekDayNum; // 星期天数
  61785. UINT nWeekDay[7]; // 星期 0:周日,1:周一,…,6:周六
  61786. char szReserverd[252]; // 预留字节
  61787. }NET_FINANCIAL_CABINET_AUTOARM;
  61788. ///@brief 短信推送
  61789. typedef struct tagNET_FINANCIAL_CABINET_MESSAGE
  61790. {
  61791. BOOL bEnable; // 使能
  61792. int nPhoneNumberNum; // 推送手机号个数
  61793. char szPhoneNumber[8][16]; // 推送手机号
  61794. char szReserverd[256]; // 预留字节
  61795. }NET_FINANCIAL_CABINET_MESSAGE;
  61796. ///@brief 金融业务库配置 对应枚举 NET_EM_CFG_FINANCIAL_CABINET_CONFIG
  61797. typedef struct tagNET_CFG_FINANCIAL_CABINET_CONFIG_INFO
  61798. {
  61799. DWORD dwSize; // 结构体大小
  61800. UINT nCabinNum; // 舱位数量
  61801. NET_FINANCIAL_CABINET_VAULTDOOR stuVaultDoor; // 金库门设置
  61802. BOOL bRemoteApprovalEnable; // 是否开启远程审批
  61803. NET_FINANCIAL_CABINET_WORKTIME stuWorkTime; // 排班时间
  61804. UINT nIdentifyMode; // 验证模式 0: 目标或信息 1: 目标+信息
  61805. NET_FINANCIAL_CABINET_AUTOARM stuAutoArm; // 自动布撤防
  61806. NET_FINANCIAL_CABINET_MESSAGE stuMobileMessage; // 短信推送
  61807. BOOL bABLockEnable; // 互锁使能
  61808. BOOL bCashAmountEnable; // 现金数额使能
  61809. BOOL bCabinsEnable; // 多舱位权限使能
  61810. BOOL bRecordScreenEnable; // 录屏使能
  61811. BOOL bFreezeEnable; // 冻结业务库使能
  61812. }NET_CFG_FINANCIAL_CABINET_CONFIG_INFO;
  61813. ///@brief 核酸校验规则信息
  61814. typedef struct tagNET_NUCLEIC_ACID_RULER_INFO
  61815. {
  61816. int nMonday; // 周一的核酸检测校验时间,单位小时,例如 24,即周一检查前24小时核酸信息
  61817. int nTuesday; // 周二的核酸检测校验时间,单位小时,例如 48,即周二检查前48小时核酸信息
  61818. int nWednesday; // 周三的核酸检测校验时间,单位小时,例如 72,即周三检查前72小时核酸信息
  61819. int nThursday; // 周四的核酸检测校验时间,单位小时,例如 72,即周四检查前72小时核酸信息
  61820. int nFriday; // 周五的核酸检测校验时间,单位小时,例如 72,即周五检查前72小时核酸信息
  61821. int nSaturday; // 周六的核酸检测校验时间,单位小时,例如 72,即周六检查前72小时核酸信息
  61822. int nSunday; // 周日的核酸检测校验时间,单位小时,例如 72,即周日检查前72小时核酸信息
  61823. BOOL bTimeCheckEnable; // 检验核酸时间使能,TRUE:开启核酸时间校验; FALSE:关闭核酸时间校验使能
  61824. BOOL bRemoteCheckEnable; // 平台远程审批使能,TRUE:开启平台远程审批; FALSE:关闭平台远程审批
  61825. char szResvered[220]; // 保留字节
  61826. }NET_NUCLEIC_ACID_RULER_INFO;
  61827. ///@brief 核酸校验规则配置, 对应枚举 NET_EM_CFG_NUCLEIC_ACID_RULER
  61828. typedef struct tagNET_CFG_NUCLEIC_ACID_RULER_INFO
  61829. {
  61830. DWORD dwSize; // 结构体大小, 必须赋值
  61831. NET_NUCLEIC_ACID_RULER_INFO stuNucleicAcidRulerInfo[20]; // 核酸校验规则信息
  61832. }NET_CFG_NUCLEIC_ACID_RULER_INFO;
  61833. ///@brief 部标车牌颜色
  61834. typedef enum tagEM_JT_PLATECOLOR
  61835. {
  61836. EM_JT_PLATECOLOR_UNKNOWN, // 未知
  61837. EM_JT_PLATECOLOR_BLUE, // 蓝色
  61838. EM_JT_PLATECOLOR_YELLOW, // 黄色
  61839. EM_JT_PLATECOLOR_BLACK, // 黑色
  61840. EM_JT_PLATECOLOR_WHITE, // 白色
  61841. EM_JT_PLATECOLOR_OTHER = 9, // 其他
  61842. }EM_JT_PLATECOLOR;
  61843. ///@brief 部标协议版本
  61844. typedef enum tagEM_JT_SERVER_VERSION
  61845. {
  61846. EM_JT_SERVER_VERSION_UNKNOWN = -1, // 未知
  61847. EM_JT_SERVER_VERSION_2013, // 2013
  61848. EM_JT_SERVER_VERSION_2019, // 2019
  61849. }EM_JT_SERVER_VERSION;
  61850. ///@brief 部标服务器信息
  61851. typedef struct tagNET_JT_SERVER_INFO
  61852. {
  61853. char szIP[48]; // 服务器IP 或者 域名
  61854. BOOL bTcpEnable; // tcp 使能
  61855. int nTcpPort; // tcp 端口
  61856. BOOL bUdpEnable; // udp 使能
  61857. int nUdpPort; // udp 端口
  61858. char szAuthCode[64]; // 服务器鉴权码
  61859. EM_JT_SERVER_VERSION emVersion; // 部标协议版本
  61860. BYTE bReserverd[252]; // 保留
  61861. }NET_JT_SERVER_INFO;
  61862. ///@brief 部标IC卡认证中心
  61863. typedef struct tagNET_JT_IC_INFO
  61864. {
  61865. char szMainIP[48]; // 服务器IP 或者 域名
  61866. char szBackupIP[48]; // 服务器IP 或者 域名
  61867. int nTcpPort; // tcp 端口
  61868. int nUdpPort; // Udp 端口
  61869. BYTE bReserverd[64]; // 保留
  61870. }NET_JT_IC_INFO;
  61871. ///@brief 部标解锁服务器
  61872. typedef struct tagNET_JT_UNLOCKSERVER_INFO
  61873. {
  61874. char szIp[48]; // 服务器IP 或者 域名
  61875. int nTcpPort; // TCP 端口
  61876. BYTE bReserverd[64]; // 保留
  61877. }NET_JT_UNLOCKSERVER_INFO;
  61878. ///@brief 部标注册参数配置
  61879. typedef struct tagNET_CFG_JT_SERVER_INFO
  61880. {
  61881. DWORD dwSize; // 结构体大小
  61882. BOOL bEnable; // 接入使能
  61883. int nRegisterMode; // 0: 主从方式, 1: 同时注册
  61884. int nCityID; // 市县域ID
  61885. int nProvinceID; // 省域ID
  61886. char szFactory[6]; // 制造商ID
  61887. char szDevType[32]; // 终端型号
  61888. char szVIN[18]; // 车辆VIN号
  61889. char szVehicleType[32]; // 车辆类型 "客运车辆", "危险品运输车辆", "货运车辆", "出租车辆"
  61890. char szDevID[32]; // 终端ID
  61891. EM_JT_PLATECOLOR emPlateColor; // 车牌颜色
  61892. char szPlateNO[32]; // 车牌号码
  61893. char szPhoneNO[16]; // 电话号码
  61894. char szAuthCode[64]; // 主服务器鉴权码
  61895. int nHeartBeatInterval; // 心跳间隔
  61896. int nTcpTimeOut; // Tcp应答超时时间
  61897. int nTcpRetransTimes; // Tcp重传次数
  61898. int nUdpTimeOut; // Udp应答超时时间
  61899. int nUdpRetransTimes; // Udp重传次数
  61900. int nSmsTimeOut; // Sms应答超时时间
  61901. int nSmsRetransTimes; // Sms重传次数
  61902. NET_JT_SERVER_INFO stuServer[10]; // 服务器参数 索引0主服务器 索引1从服务器
  61903. int nServerNum; // 服务器个数
  61904. NET_JT_IC_INFO stuIC; // IC卡认证中心
  61905. NET_JT_UNLOCKSERVER_INFO stuUnLockServer; // 解锁服务器
  61906. char szIMEI[32]; // IMEI
  61907. }NET_CFG_JT_SERVER_INFO;
  61908. ///@brief 同步时间到前端远程设备配置
  61909. typedef struct tagNET_CFG_REMOTE_DEVICE_TIME_SYNC_INFO
  61910. {
  61911. DWORD dwSize; // 结构体大小
  61912. UINT* pnChannels; // 支持IPC同步的通道列表; 每个成员表示对应的通道执行IPC校时,通道号从0开始
  61913. int nMaxChannel; // 申请的pnChannels有效个数
  61914. int nRetChannel; // 实际返回的数组个数, 在getconfig的时候有效
  61915. UINT nPeriod; // 同步周期(所有远程设备有效), 单位: 分钟
  61916. BOOL bEnable; // 是否开启IPC同步
  61917. }NET_CFG_REMOTE_DEVICE_TIME_SYNC_INFO;
  61918. ///@brief 安全异常报警配置
  61919. typedef struct tagNET_CFG_SAFETYABNORMAL_INFO
  61920. {
  61921. DWORD dwSize;
  61922. BOOL bEnable; // 使能
  61923. int nExceptionNum; // 有效异常报警个数
  61924. EM_EXCEPTION_TYPE stuExceptions[16]; // 异常报警类型
  61925. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  61926. }NET_CFG_SAFETYABNORMAL_INFO;
  61927. ///@brief 灵敏度
  61928. typedef enum tagEM_ACCELERATION_LEVEL
  61929. {
  61930. EM_ACCELERATION_KNOWN = -1, // 未知
  61931. EM_ACCELERATION_LOW, // 低
  61932. EM_ACCELERATION_MEDIUM, // 中
  61933. EM_ACCELERATION_HIGH // 高
  61934. }EM_ACCELERATION_LEVEL;
  61935. ///@brief 撞车报警配置
  61936. typedef struct tagNET_CFG_VEHICLE_COLLISION_INFO
  61937. {
  61938. DWORD dwSize;
  61939. BOOL bEnable; // 使能
  61940. EM_ACCELERATION_LEVEL emAcceleration; // 灵敏度
  61941. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  61942. }NET_CFG_VEHICLE_COLLISION_INFO;
  61943. ///@brief 侧翻报警配置
  61944. typedef struct tagNET_CFG_VEHICLE_TURNOVER_INFO
  61945. {
  61946. DWORD dwSize;
  61947. BOOL bEnable; // 使能
  61948. EM_ACCELERATION_LEVEL emAcceleration; // 灵敏度
  61949. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  61950. }NET_CFG_VEHICLE_TURNOVER_INFO;
  61951. ///@brief 急转弯报警配置
  61952. typedef struct tagNET_CFG_VEHICLE_SUDDENTURN_INFO
  61953. {
  61954. DWORD dwSize;
  61955. BOOL bEnable; // 使能
  61956. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  61957. }NET_CFG_VEHICLE_SUDDENTURN_INFO;
  61958. ///@brief 急加速报警配置
  61959. typedef struct tagNET_CFG_VEHICLE_ACCELERATION_INFO
  61960. {
  61961. DWORD dwSize;
  61962. BOOL bEnable; // 使能
  61963. int nThreshold; // 报警阈值.超过该值触发报警, 单位0.1m/s2
  61964. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  61965. }NET_CFG_VEHICLE_ACCELERATION_INFO;
  61966. ///@brief 急减速报警配置
  61967. typedef struct tagNET_CFG_VEHICLE_DECELERATION_INFO
  61968. {
  61969. DWORD dwSize;
  61970. BOOL bEnable; // 使能
  61971. int nThreshold; // 报警阈值.超过该值触发报警, 单位0.1m/s2
  61972. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  61973. }NET_CFG_VEHICLE_DECELERATION_INFO;
  61974. ///@brief ACC 报警事件的配置
  61975. typedef struct tagNET_CFG_VEHICLE_ACC_INFO
  61976. {
  61977. DWORD dwSize;
  61978. BOOL bAACOnEnable; // ACC打开
  61979. NET_ALARM_MSG_HANDLE stuACCOnEventHandler; // ACC打开下报警联动
  61980. BOOL bAACOffEnable; // ACC关闭
  61981. NET_ALARM_MSG_HANDLE stuACCOffEventHandler; // ACC关闭下报警联动
  61982. }NET_CFG_VEHICLE_ACC_INFO;
  61983. ///@brief 打哈欠报警上报控制参数
  61984. typedef struct tagNET_VEHICLE_YAWNING_CONTROL_INFO
  61985. {
  61986. UINT nInTime; // 时间段 例如 10分钟 单位秒
  61987. UINT nRecvTimes; // 时间段内例如10分钟内接收一定的次数,该报警上报一次
  61988. BYTE bReserverd[64]; // 保留字节
  61989. }NET_VEHICLE_YAWNING_CONTROL_INFO;
  61990. ///@brief 闭眼报警上报控制参数
  61991. typedef struct tagNET_VEHICLE_EYESCLOSED_CONTROL_INFO
  61992. {
  61993. UINT nInTime; // 时间段 例如 10分钟 单位秒
  61994. UINT nRecvTimes; // 时间段内例如10分钟内接收一定的次数,该报警上报一次
  61995. BYTE bReserverd[64]; // 保留字节
  61996. }NET_VEHICLE_EYESCLOSED_CONTROL_INFO;
  61997. ///@brief DSM报警控制上传配置
  61998. typedef struct tagNET_CFG_VEHICLE_DSMALARMCONTROL_INFO
  61999. {
  62000. DWORD dwSize;
  62001. NET_VEHICLE_YAWNING_CONTROL_INFO stuYawning; // 打哈欠报警上报控制参数
  62002. NET_VEHICLE_EYESCLOSED_CONTROL_INFO stuEyesClosed; // 闭眼报警上报控制参数
  62003. }NET_CFG_VEHICLE_DSMALARMCONTROL_INFO;
  62004. ///@brief 车载未巡检报警的使能状态和触发时间配置
  62005. typedef struct tagNET_CFG_VEHICLE_NOT_INSPECT_ALARM_INFO
  62006. {
  62007. DWORD dwSize;
  62008. BOOL bEnable; // 未巡检报警使能
  62009. int nDelayTime; // 闭眼报警上报控制参数
  62010. }NET_CFG_VEHICLE_NOT_INSPECT_ALARM_INFO;
  62011. ///@brief 输出有效模式
  62012. typedef enum tagEM_REMOTE_ALARMOUT_POLE
  62013. {
  62014. EM_REMOTE_ALARMOUT_POLE_UNKNOWN, // 未知
  62015. EM_REMOTE_ALARMOUT_POLE_LOW, // 低电平有效
  62016. EM_REMOTE_ALARMOUT_POLE_HIGH, // 高电平有效
  62017. } EM_REMOTE_ALARMOUT_POLE;
  62018. ///@brief 报警输出绑定的输出事件类型
  62019. typedef enum tagEM_BIND_EVENT_TYPE
  62020. {
  62021. EM_BIND_EVENT_TYPE_UNKNOWN = -1, // 未知
  62022. EM_BIND_EVENT_TYPE_CTR_PHONE, // 由电话控制
  62023. EM_BIND_EVENT_TYPE_CTR_PASS, // 由密码控制
  62024. EM_BIND_EVENT_TYPE_SYS_ARM, // 系统臂
  62025. EM_BIND_EVENT_TYPE_SYS_DISARM, // 系统解除
  62026. EM_BIND_EVENT_TYPE_REPORT, // 事件报告
  62027. EM_BIND_EVENT_TYPE_COMM_FAIL, // 无法传达事件
  62028. EM_BIND_EVENT_TYPE_PSTN_OFF, // PSTN断线
  62029. EM_BIND_EVENT_TYPE_BELL_SIREN, // 警铃/警笛线切断或短路
  62030. EM_BIND_EVENT_TYPE_SYS_ALARM, // 系统报警
  62031. EM_BIND_EVENT_TYPE_SILENT, // 无声系统警报或恐慌
  62032. EM_BIND_EVENT_TYPE_FIRE_ALARM, // 火警警报
  62033. EM_BIND_EVENT_TYPE_ZONE01_OPEN, // 01区开口
  62034. EM_BIND_EVENT_TYPE_KEY_FOB, // 遥控钥匙
  62035. } EM_BIND_EVENT_TYPE;
  62036. ///@brief 报警输出时间段
  62037. typedef struct tagNET_REMOTE_ALARMOUT_TIME
  62038. {
  62039. BOOL bEnable; // 分时段报警输出使能
  62040. NET_CFG_TIME_SCHEDULE stuTimeSection; // 第一维前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段
  62041. BYTE bReserverd[64]; // 保留字节
  62042. } NET_REMOTE_ALARMOUT_TIME;
  62043. ///@brief 远程报警输出信息
  62044. typedef struct tagNET_REMOTE_ALARMOUT_INFO
  62045. {
  62046. char szChnName[128]; // 报警输出通道名称
  62047. char szOutputType[32]; // 报警输出类型, 用户自定义
  62048. int nOutputMode; // 输出模式, 0-自动报警, 1-强制报警, 2-关闭报警, 3- 开关模式
  62049. int nPulseDelay; // 脉冲模式输出时间, nOutputMode为0或3时有效, 单位为秒(0-255秒)
  62050. int nAlarmDelay; // 延时时间,单位:秒 取值范围 5~300,即触发报警后延时多少秒开始报警输出,
  62051. int nSlot; // 根地址, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推, -1表示无效
  62052. int nLevel1; // 第一级级联地址, 表示连接在第nSlot串口上的第nLevel1个探测器或仪表, 从0开始, -1表示无效
  62053. BOOL abLevel2; // 表示nLevel2字段是否存在
  62054. int nLevel2; // 第二级级联地址, 表示连接在第nLevel1个的仪表上的探测器序号, 从0开始
  62055. EM_REMOTE_ALARMOUT_POLE emPole; // 输出有效模式
  62056. UINT nBindEventNum; // 报警输出绑定的输出事件个数
  62057. EM_BIND_EVENT_TYPE emBindEventType[32];// 报警输出绑定的输出事件类型
  62058. NET_REMOTE_ALARMOUT_TIME stuTimeSchedule; // 报警输出时间段控制
  62059. BYTE bReserverd[256]; // 保留字节
  62060. } NET_REMOTE_ALARMOUT_INFO;
  62061. ///@brief 远程报警输出配置
  62062. typedef struct tagNET_CFG_REMOTE_ALARMOUT_INFO
  62063. {
  62064. DWORD dwSize; // 结构体大小
  62065. UINT nRemoteAlarmOutNum; // 远程报警输出通道个数
  62066. NET_REMOTE_ALARMOUT_INFO stuRemoteAlarmOut[128]; // 远程报警输出信息
  62067. } NET_CFG_REMOTE_ALARMOUT_INFO;
  62068. ///@brief 制冷机剩余时间提示
  62069. typedef struct tagNET_CFG_REMAINDER_TIME_WARN_INFO
  62070. {
  62071. DWORD dwSize; // 结构体大小
  62072. UINT nWarnThreshold; // 制冷机剩余时间提示阈值,单位小时
  62073. }NET_CFG_REMAINDER_TIME_WARN_INFO;
  62074. ///@brief 配置二维码有效时间
  62075. typedef struct tagNET_CFG_QR_CODE_INFO
  62076. {
  62077. DWORD dwSize; // 结构体大小
  62078. UINT nValidTime; // 业主二维码有效时间,单位分钟
  62079. }NET_CFG_QR_CODE_INFO;
  62080. ///@brief 流量异常告警配置信息
  62081. typedef struct tagNET_FLOW_LOWER_INFO
  62082. {
  62083. BOOL bEnable; // 使能
  62084. UINT nThreshold; // 阈值, 百分比
  62085. BYTE bReserverd[1024]; // 保留字节
  62086. } NET_FLOW_LOWER_INFO;
  62087. ///@brief 端口拥塞告警配置信息
  62088. typedef struct tagNET_PORT_CONGEST_INFO
  62089. {
  62090. BOOL bEnable; // 使能
  62091. UINT nThreshold; // 阈值, 百分比
  62092. BYTE bReserverd[1024]; // 保留字节
  62093. } NET_PORT_CONGEST_INFO;
  62094. ///@brief NMP系统全局管理配置
  62095. typedef struct tagNET_CFG_NMP_GLOBAL_INFO
  62096. {
  62097. DWORD dwSize; // 结构体大小
  62098. BOOL bSwitchOffline; // 交换机离线告警使能
  62099. BOOL bTerminalOffline; // 终端离线告警使能
  62100. BOOL bLoopDetect; // 环路检测告警使能
  62101. BOOL bIPConflict; // IP冲突检测使能
  62102. NET_FLOW_LOWER_INFO stuFlowLowerInfo; // 流量异常告警配置信息
  62103. NET_PORT_CONGEST_INFO stuPortCongestInfo; // 端口拥塞告警配置信息
  62104. } NET_CFG_NMP_GLOBAL_INFO;
  62105. ///@brief 热成像测温点温度异常报警配置
  62106. typedef struct tagNET_CFG_HEAT_IMAGING_TEMPER_INFO
  62107. {
  62108. DWORD dwSize;
  62109. BOOL bEnable; // 使能
  62110. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  62111. }NET_CFG_HEAT_IMAGING_TEMPER_INFO;
  62112. ///@brief 网络访问模式
  62113. typedef enum tagEM_NET_ACCESS_TYPE
  62114. {
  62115. EM_NET_ACCESS_TYPE_UNKNOWN = -1, // 未知
  62116. EM_NET_ACCESS_TYPE_OFF, // 未开启
  62117. EM_NET_ACCESS_TYPE_ALLOW, // 允许名单
  62118. EM_NET_ACCESS_TYPE_BLOCK, // 禁止名单
  62119. } EM_NET_ACCESS_TYPE;
  62120. ///@brief 允许名单控制地址信息
  62121. typedef struct tagNET_ALLOW_ADDR_INFO
  62122. {
  62123. int nEnableState; // 针对子项的使能情况, 0: 使能(默认) 1:不使能
  62124. char szBeginIP[64]; // 起始ip, Ipv4/Ipv6地址; 内部根据分割符进行区分,’.’表示ipv4,’:’表示ipv6
  62125. char szEndIP[64]; // 结束ip, 如果BeginIP==EndIP,表明只允许该地址; 如果都为"0.0.0.0"(Ipv4)/"::"(Ipv6)表明该字段将被忽略;
  62126. // 注:必须和BeginIP是同一类型,即都为Ipv4或者Ipv6, 不能交叉
  62127. UINT nBeginPort; // 起始端口号, 0表明无效端口,不需要关心该值
  62128. UINT nEndPort; // 结束端口号, 如果BeginPort==EndPort,表明只允许该端口; 如果都为0该字段被忽略
  62129. char szMac[20]; // Mac地址, 忽略大小写,必须以":"分割; 其中"0:0:0:0:0:0",表明忽略该字段
  62130. BYTE bReserverd[1024]; // 保留字节
  62131. } NET_ALLOW_ADDR_INFO;
  62132. ///@brief 禁止名单控制地址信息
  62133. typedef struct tagNET_BLOCK_ADDR_INFO
  62134. {
  62135. int nEnableState; // 针对子项的使能情况, 0: 使能(默认) 1:不使能
  62136. char szBeginIP[64]; // 起始ip, Ipv4/Ipv6地址; 内部根据分割符进行区分,’.’表示ipv4,’:’表示ipv6
  62137. char szEndIP[64]; // 结束ip, 如果BeginIP==EndIP,表明只禁用该地址; 如果都为"0.0.0.0"(Ipv4)/"::"(Ipv6)表明该字段将被忽略;
  62138. // 注:必须和BeginIP是同一类型,即都为Ipv4或者Ipv6, 不能交叉
  62139. UINT nBeginPort; // 起始端口号, 0表明无效端口,不需要关心该值
  62140. UINT nEndPort; // 结束端口号, 如果BeginPort==EndPort,表明只禁用该端口; 如果都为0该字段被忽略
  62141. char szMac[20]; // Mac地址, 忽略大小写,必须以":"分割; 其中"0:0:0:0:0:0",表明忽略该字段
  62142. BYTE bReserverd[1024]; // 保留字节
  62143. } NET_BLOCK_ADDR_INFO;
  62144. ///@brief NTP 校时地址信息
  62145. typedef struct tagNET_NTP_ADDR_INFO
  62146. {
  62147. int nEnableState; // 针对子项的使能情况, 0: 使能(默认) 1:不使能
  62148. char szBeginIP[64]; // 起始ip, 为IP时同网络访问的字段含义; 为域名时内部会进行DNS解析,会允许解析到的全部IP地址。
  62149. char szEndIP[64]; // 结束ip, 具体含义同szBeginIP
  62150. BYTE bReserverd[1020]; // 保留字节
  62151. } NET_NTP_ADDR_INFO;
  62152. ///@brief NTP校时允许访问名单信息
  62153. typedef struct tagNET_NTP_ALLOW_ACCCESS_INFO
  62154. {
  62155. BOOL bEnable; // 是否开启
  62156. UINT nNtpAddrNum; // NTP 校时地址个数
  62157. NET_NTP_ADDR_INFO stuNtpAddrInfo[64]; // NTP 校时地址列表
  62158. BYTE bReserverd[1024]; // 保留字节
  62159. } NET_NTP_ALLOW_ACCCESS_INFO;
  62160. ///@brief 网络访问规则
  62161. typedef struct tagNET_NETACCESS_RULE_INFO
  62162. {
  62163. EM_NET_ACCESS_TYPE emNetAccessType; // 访问模式
  62164. UINT nAllowAddrNum; // 允许名单控制地址个数
  62165. NET_ALLOW_ADDR_INFO stuAllowAddrInfo[128]; // 允许名单控制地址列表
  62166. BYTE bReserverd1[4]; // 字节 对齐
  62167. UINT nBlockAddrNum; // 禁止名单控制地址个数
  62168. NET_BLOCK_ADDR_INFO stuBlockAddrInfo[128]; // 禁止名单控制地址列表
  62169. BYTE bReserverd[1024]; // 保留字节
  62170. } NET_NETACCESS_RULE_INFO;
  62171. ///@brief 防火墙过滤规则配置
  62172. typedef struct tagNET_CFG_IP_TABLE_FILTER_INFO
  62173. {
  62174. DWORD dwSize; // 结构体大小
  62175. BOOL bBanPing; // 是否禁用ping功能
  62176. NET_NETACCESS_RULE_INFO stuNetAccessRule; // 网络访问规则
  62177. NET_NTP_ALLOW_ACCCESS_INFO stuNtpAllowAccessInfo; // Ntp校时允许访问名单信息,相关服务端口固定为123
  62178. BOOL bBanhalfConn; // 是否开启半连接防范
  62179. } NET_CFG_IP_TABLE_FILTER_INFO;
  62180. ///@brief 冗余录像存储策略配置, 对应配置项 NET_EM_CFG_REDUNDANT_STORAGE_STRATEGY
  62181. typedef struct tagNET_CFG_REDUNDANT_STORAGE_STRATEGY_INFO
  62182. {
  62183. DWORD dwSize; // 结构体大小
  62184. int nPackMode; // 文件打包模式, -1:未知, 0:按文件大小打包, 1:按文件时长打包
  62185. TP_U64 nMaxFileSize; // 最大文件大小,以字节为单位
  62186. UINT nMaxFileTime; // 最大文件时长,以秒为单位
  62187. UINT nPreRecord; // 录像预录时间,以秒为单位
  62188. UINT nRecordLatch; // 录像延迟时间,以秒为单位
  62189. BYTE bReserverd[4]; // 字节对齐
  62190. } NET_CFG_REDUNDANT_STORAGE_STRATEGY_INFO;
  62191. ///@brief 录像不足配置天数报警, 对应配置项 NET_EM_CFG_RECORD_SHORTAGE_ALARM
  62192. typedef struct tagNET_CFG_RECORD_SHORTAGE_ALARM_INFO
  62193. {
  62194. DWORD dwSize; // 结构体大小
  62195. BOOL bEnable; // 使能
  62196. int nValidDay; // 天数
  62197. BYTE bReserverd[256]; // 字节对齐
  62198. } NET_CFG_RECORD_SHORTAGE_ALARM_INFO;
  62199. ///@brief 路段对应的车道列表
  62200. typedef struct tagNET_LANE_LIST_INFO
  62201. {
  62202. int nLaneNumber; // 车道编号
  62203. int nLaneType; // 车行灯进口方向车道类型
  62204. unsigned int nWaitingArea; // 是否为待行区 0为车道不是待行区,1标示车道有待行区
  62205. char szReserved[32]; // 预留字节
  62206. }NET_LANE_LIST_INFO;
  62207. ///@brief 路段数据列表信息
  62208. typedef struct tagNET_SIGNAL_ROAD_LIST_INFO
  62209. {
  62210. int nRoadSectionId; // 路段Id
  62211. int nIsTwiceCrossing; // 是否有二次过街 0没有,1有二次过街
  62212. char szRoadSectionName[32]; // 路段名称
  62213. int nRoadSectionDir; // 路段方向0 - 北 | 1 - 东北 | 2 - 东 | 3 - 东南 | 4 - 南 | 5 - 西南 | 6 - 西 | 7 - 西北 |
  62214. int nRoadSectionInLaneNum; // 车行灯进口方向的车道数
  62215. int nRoadSectionOutLaneNum; // 车行灯出口方向的车道数
  62216. int nLaneListNum; // 该路段对应的车道列表个数
  62217. NET_LANE_LIST_INFO stuLaneListInfo[8]; // 该路段对应的车道列表
  62218. char szReserved[32]; // 预留字节
  62219. }NET_SIGNAL_ROAD_LIST_INFO;
  62220. ///@brief 路口数据列表信息
  62221. typedef struct tagNET_CROSS_LIST_INFO
  62222. {
  62223. int nCrossType; // 路口类型
  62224. int nRoadListInfoNum; // 路段数据列表个数
  62225. NET_SIGNAL_ROAD_LIST_INFO stuRoadListInfo[8]; // 路段数据列表
  62226. char szReserved[32]; // 预留字节
  62227. }NET_CROSS_LIST_INFO;
  62228. ///@brief 路口数据列表配置,对应配置项NET_EM_CFG_RTSC_SCH_CROSSLIST
  62229. typedef struct tagNET_CFG_RTSC_SCH_CROSSLIST_INFO
  62230. {
  62231. DWORD dwSize; // 结构体大小
  62232. int nCrossListInfoNum; // 路口数据列表信息个数
  62233. NET_CROSS_LIST_INFO stuCrossListInfo[2]; // 路口数据列表信息
  62234. }NET_CFG_RTSC_SCH_CROSSLIST_INFO;
  62235. ///@brief 通道列表信息
  62236. typedef struct tagNET_CHANNELS_INFO
  62237. {
  62238. int nChannelNumber; // 通道编号
  62239. int nChannelPhase; // 通道关联的相位或跟随相位,相位编号从1开始
  62240. int nLampType; // 通道所接灯组的类型 | 16 圆盘灯 | 17 左转箭头灯 | 18 直行箭头灯 | 19 右转箭头灯 | 20 掉头箭头灯 |
  62241. // | 21 单个行人灯| 22 左转非机动车灯 | 23 直行非机动车灯 | 24 公交信号灯 | 25 入口行人灯,进口为实线有箭头线的斑马线区 | 26 出口行人灯,出口为虚线无箭头线的斑马线区 |
  62242. int nCrossType; // 通道所接灯组的所在路口;0-单路口,1-短连接路口1,2-短连接路口
  62243. int nRoadSectionDir; // 进口方向 | 0 北 | 1 东北 | 2 东| 3 东南 | 4 南 | 5 西南 | 6 西 | 7 西北 |
  62244. int nChannelControlType; // 通道类型;1-其他,2-机动车,3-行人
  62245. char szReserved[32]; // 预留字节
  62246. }NET_CHANNELS_INFO;
  62247. ///@brief 通道表, 对应配置项NET_EM_CFG_RTSC_SCH_CHANNELS
  62248. typedef struct tagNET_CFG_RTSC_SCH_CHANNELS_INFO
  62249. {
  62250. DWORD dwSize; // 结构体大小
  62251. int nMaxChannels; // 最大通道个数,只读
  62252. int nChannelsInfoNum; // 通道列表个数
  62253. NET_CHANNELS_INFO stuChannelsInfo[36]; // 通道列表
  62254. }NET_CFG_RTSC_SCH_CHANNELS_INFO;
  62255. ///@brief 相位列表信息
  62256. typedef struct tagNET_PHASES_INFO
  62257. {
  62258. int nGridNo; // 相位在栅栏内的位置
  62259. int nPhaseNum; // 相位编号
  62260. int nPhaseOrder; // 相位重复出现的次数,默认为1, A1为1,A2该字段为
  62261. int nStartDelayTime; // 迟起时间
  62262. int nStartYellowTime; // 预黄时间
  62263. int nGreenTime; // 绿信比时间(迟起+预黄+绿灯+绿闪+黄灯+红灯)
  62264. int nGreenFlashTime; // 绿闪时间
  62265. int nYellowTime; // 黄灯时间
  62266. int nRedclearTime; // 红灯清空
  62267. int nMinimumGreen; // 最小绿灯时间
  62268. int nMaximumGreen; // 最大绿灯时间
  62269. int nBeforeReduction; // 感应控制递减前时间
  62270. int nAddedInitial; // 感应控制延长绿时间
  62271. int nPhaseKeepState; // 相位保持状态 0-不保持,1-黄闪,2-常红,3-红闪,4-灭灯
  62272. BOOL bFreeEnable; // 相位是否启用感应控制
  62273. int nSelectDetectorsNum; // 启用的检测器个数
  62274. int nSelectDetectors[128]; // 启用的检测器编号
  62275. char szReserved[32]; // 预留字节
  62276. }NET_PHASES_INFO;
  62277. ///@brief 栅栏列表信息
  62278. typedef struct tagNET_BARRIER_LIST_INFO
  62279. {
  62280. int nBarrierNo; // 栅栏编号
  62281. int nPhaseNum; // 相位列表个数
  62282. NET_PHASES_INFO stuPhaseInfo[16]; // 相位列表
  62283. char szReserved[32]; // 预留字节
  62284. }NET_BARRIER_LIST_INFO;
  62285. ///@brief 环设备信息
  62286. typedef struct tagNET_RINGS_LIST_INFO
  62287. {
  62288. int nRingNo; // 环编号
  62289. int nBarrierNum; // 栅栏列表个数
  62290. NET_BARRIER_LIST_INFO stuBarrierInfo[4]; // 栅栏列表
  62291. char szReserved[32]; // 预留字节
  62292. }NET_RINGS_LIST_INFO;
  62293. ///@brief 跟随相位列表信息
  62294. typedef struct tagNET_OVER_LAPS_INFO
  62295. {
  62296. int nOverlapNum; // 跟随相位编号
  62297. int nIncludedPhasesNum; // 跟随相位关联的主相位个数
  62298. int nIncludedPhases[16]; // 跟随相位关联的主相位数组
  62299. int nStartDelayTimeNum; // 跟随相位延时时间个数
  62300. int nStartDelayTime[16]; // 跟随相位延时时间数组
  62301. char szReserved[32]; // 预留字节
  62302. }NET_OVER_LAPS_INFO;
  62303. ///@brief 周期方案列表信息
  62304. typedef struct tagNET_CYCLE_PLAN_INFO
  62305. {
  62306. int nCycle; // 周期时长
  62307. int nCyclePlanNum; // 周期方案编号
  62308. char szCyclePlanName[32]; // 周期方案名称
  62309. int nOffSet; // 相位差时间
  62310. BOOL bCoordEnable; // 是否相位差协调
  62311. int nRingNum; // 环列表个数
  62312. char szReserved1[4]; // 字节对齐
  62313. NET_RINGS_LIST_INFO stuRingInfo[4]; // 环列表
  62314. int nOverLapsNum; // 跟随相位列表个数
  62315. char szReserved2[4]; // 字节对齐
  62316. NET_OVER_LAPS_INFO stuOverLapsInfo[16]; // 跟随相位列表
  62317. char szReserved[32]; // 预留字节
  62318. }NET_CYCLE_PLAN_INFO;
  62319. ///@brief 周期方案表, 对应配置项NET_EM_CFG_RTSC_SCH_PLANS
  62320. typedef struct tagNET_CFG_RTSC_SCH_PLANS_INFO
  62321. {
  62322. DWORD dwSize; // 结构体大小
  62323. int nMaxCyclePlans ; // 最大方案个数 只读
  62324. int nCyclePlanNum; // 周期方案列表个数
  62325. NET_CYCLE_PLAN_INFO stuCyclePlan[20]; // 周期方案列表
  62326. }NET_CFG_RTSC_SCH_PLANS_INFO;
  62327. ///@brief 时段计划列表信息
  62328. typedef struct tagNET_DAY_ACTION_INFO
  62329. {
  62330. int nActionNumber; // 时段编号
  62331. int nBeginHour; // 时段的起始小时
  62332. int nBeginMinute; // 时段的起始分钟
  62333. int nCyclePlanNum; // 周期方案编号
  62334. int nCyclePlanControlMode; // 时段模式| 1定时控制 | 242单点自适应模式 | 246实时控制模式 | 247灭灯模式 | 224行人优先控制模式 | 225 拥堵溢出控制模式 | 226 夜间请求模式 |
  62335. // | 250手动控制 | 252全红控制 | 254感应控制 | 255黄闪控制 |
  62336. char szReserved[32]; // 预留字节
  62337. }NET_DAY_ACTION_INFO;
  62338. ///@brief 日计划方案信息
  62339. typedef struct tagNET_DAY_PLAN_INFO
  62340. {
  62341. int nDayPlanNumber; // 日计划编号,从1开始
  62342. char szDayPlanName[32]; // 日计划名称
  62343. char szReserved1[4]; // 字节对齐
  62344. int nDayActionNum; // 时段计划列表个数
  62345. NET_DAY_ACTION_INFO stuDayActionInfo[24]; // 时段计划列表
  62346. char szReserved[32]; // 预留字节
  62347. }NET_DAY_PLAN_INFO;
  62348. ///@brief 周计划信息
  62349. typedef struct tagNET_WEEK_PLAN_INFO
  62350. {
  62351. int nWeekNumber; // 星期类型| 0 星期日 | 1 星期一 | 2 星期二 | 3 星期三 | 4 星期四 | 5 星期五 | 6 星期六 |
  62352. int nDayPlanNumber; // 日计划编号,从1开始
  62353. char szDayPlanName[64]; // 日计划名称
  62354. char szReserved[32]; // 预留字节
  62355. }NET_WEEK_PLAN_INFO;
  62356. ///@brief 周计划列表信息
  62357. typedef struct tagNET_WEEKS_PLAN_INFO
  62358. {
  62359. int nWeekPlanNumber; // 周计划编号
  62360. int nWeekPlanNum; // 周计划个数
  62361. char szWeekPlanName[32]; // 周计划名称
  62362. NET_WEEK_PLAN_INFO stuWeekPlanInfo[7]; // 周计划
  62363. char szReserved[32]; // 预留字节
  62364. }NET_WEEKS_PLAN_INFO;
  62365. ///@brief 日常调度列表信息
  62366. typedef struct tagNET_COMMON_DATE_PLAN_INFO
  62367. {
  62368. int nDatePlanNumber; // 日常调度编号
  62369. int nBeginMonth; // 日期开始月份
  62370. int nBeginDay; // 日期开始日
  62371. int nEndMonth; // 日期结束月份
  62372. int nEndDay; // 日期结束日
  62373. int nWeekPlanNumber; // 周调度编号
  62374. char szWeekPlanName[64]; // 周调度名称
  62375. char szReserved[32]; // 预留字节
  62376. }NET_COMMON_DATE_PLAN_INFO;
  62377. ///@brief 特殊调度列表信息
  62378. typedef struct tagNET_SPECIAL_DATE_PLAN_INFO
  62379. {
  62380. int nDatePlanNumber; // 特殊调度编号
  62381. int nBeginMonth; // 日期开始月份
  62382. int nBeginDay; // 日期开始日
  62383. int nEndMonth; // 日期结束月份
  62384. int nEndDay; // 日期结束日
  62385. int nWeekPlanNumber; // 周计划
  62386. char szWeekPlanName[32]; // 周计划名称
  62387. char szReserved[32]; // 预留字节
  62388. }NET_SPECIAL_DATE_PLAN_INFO;
  62389. ///@brief 红绿灯调度计划列表,对应配置项NET_EM_CFG_RTSC_SCH_MANAGE
  62390. typedef struct tagNET_CFG_RTSC_SCH_MANAGE_INFO
  62391. {
  62392. DWORD dwSize; // 结构体大小
  62393. int nMaxDayPlans; // 最大日方案数
  62394. int nMaxDayActions ; // 最大时段数
  62395. int nMaxWeekPlans; // 最大周计划数
  62396. int nMaxCommonDatePlans; // 最大日常调度方案个数
  62397. int nMaxSpecialDatePlans; // 最大特殊调度方案个数
  62398. int nDayplansNum; // 日计划方案个数
  62399. NET_DAY_PLAN_INFO stuDayPlanInfo[56]; // 日计划方案
  62400. int nWeekPlansNum; // 周计划列表个数
  62401. NET_WEEKS_PLAN_INFO stuWeeksPlanInfo[20]; // 周计划列表
  62402. int nCommonDatePlanNum; // 日常调度列表个数
  62403. NET_COMMON_DATE_PLAN_INFO stuCommonDatePlanInfo[16]; // 日常调度列表
  62404. int nSpecialDateNum; // 特殊调度列表个数
  62405. NET_SPECIAL_DATE_PLAN_INFO stuSpecialDatePlan[16]; // 特殊调度列表
  62406. }NET_CFG_RTSC_SCH_MANAGE_INFO;
  62407. ///@brief 检测器列表信息
  62408. typedef struct tagNET_SIGNAL_VEHICLE_DETECTOR_INFO
  62409. {
  62410. int nVehicleDetectorNumber; // 检测器编号
  62411. int nVehicleDetectorRoadNum; // 车道编号
  62412. int nVehicleDetectorType; // 1:线圈 2:视频1 (电警、卡口,实时过车协议) 3:视频2 (无锡所相机) 4:地磁 5:视频3(流量相机,压占信息协议) 6:视频4-出口
  62413. int nVehicleDetectorCallPhase; // 呼叫主相位
  62414. int nvehicleDetectorPost; // 检测器位置 1:前置 2:后置
  62415. int nVehiclePrority; // 检测器优先级(1表示第一优先级), 取值1-2
  62416. char szVideoDetectorIp[16]; // 视频检测器IP
  62417. int nVideoDetectorPort; // 视频检测器端口
  62418. char szVideoDetectorUser[72]; // 视频检测器用户名
  62419. char szVideoDetectorPassword[72]; // 视频检测器密码
  62420. int nVehicleDetectorChannelNum; // 检测通道编号编号范围为1-96,视频1车道号是1-40,视频2车道号是41-96,视频3车道号是1-40
  62421. int nVideoDetectorChn; // 相机里的车道编号,范围1-9
  62422. int nVehicleDetectorentryDir; // 进口方向
  62423. int nVehicleDetectorentryType; // 进口类型
  62424. int nVehicleDetectorPortNum; // 在非视频检测器模式下,需要设置接线端子编号
  62425. char szReserved[32]; // 预留字节
  62426. }NET_SIGNAL_VEHICLE_DETECTOR_INFO;
  62427. ///@brief 检测器列表,对应配置项NET_EM_CFG_RTSC_SCH_VEHICLE_DETECTORLIST
  62428. typedef struct tagNET_CFG_RTSC_SCH_VEHICLE_DETECTORLIST_INFO
  62429. {
  62430. DWORD dwSize; // 结构体大小
  62431. int nMaxVehicleDetectors; // 最大车辆检测器数
  62432. int nVehicleDetectorNum; // 检测器列表个数
  62433. NET_SIGNAL_VEHICLE_DETECTOR_INFO stuVehicleDetectorInfo[32]; // 检测器列表
  62434. }NET_CFG_RTSC_SCH_VEHICLE_DETECTORLIST_INFO;
  62435. ///@brief 行人检测器列表信息
  62436. typedef struct tagNET_PED_DETECTOR_INFO
  62437. {
  62438. int nPedestrianDetectorNumber; // 行人检测器编号,1-16
  62439. int nPedestrianDetectorCallPhase; // 行人检测器关联的相位
  62440. int nPedestrianDetectorPortNum; // 行人检测器对应的接线端子
  62441. int nPedestrianDetectorType; // 检测器类型1:行人按钮 2视频
  62442. char szPedestrianDetectorIp[16]; // 视频检测器IP
  62443. int nPedestrianDetectorPort; // 视频检测器端口
  62444. char szPedestrianDetectorUser[72]; // 视频检测器用户名
  62445. char szPedestrianDetectorPwd[72]; // 视频检测器密码
  62446. int nPedestrianDetectorArea; // 检测区1,2
  62447. char szReserved[32]; // 预留字节
  62448. }NET_PED_DETECTOR_INFO;
  62449. ///@brief 行人检测器列表, 对应配置项NET_EM_CFG_RTSC_SCH_PEDDETECTOR_LIST
  62450. typedef struct tagNET_CFG_RTSC_SCH_PEDDETECTOR_LIST_INFO
  62451. {
  62452. DWORD dwSize; // 结构体大小
  62453. int nMaxPedestrianDetectors; // 最大行人检测器数
  62454. int nPedDetectorNum; // 行人检测器列表个数
  62455. NET_PED_DETECTOR_INFO stuPedDetectorInfo[16]; // 行人检测器列表
  62456. }NET_CFG_RTSC_SCH_PEDDETECTOR_LIST_INFO;
  62457. ///@brief 优先配置表信息
  62458. typedef struct tagNET_PHASE_PRIORITY_CONFIG_INFO
  62459. {
  62460. int nId; // 序号
  62461. int nPhaseNum; // 相位编号,仅支持单环
  62462. int nPhaseOrder; // 相位重复出现的次数
  62463. int nMinGreenThr; // 相位切换阈值
  62464. int nSkipThr; // 跳相阈值
  62465. int nEnbleDetectorsNum; // 启用检测器编号个数
  62466. int nEnbleDetectors[16]; // 启用检测器编号
  62467. char szReserved[32]; // 预留字节
  62468. }NET_PHASE_PRIORITY_CONFIG_INFO;
  62469. ///@brief 行人优先智能化配置列表信息
  62470. typedef struct tagNET_PEDESTRAIN_PRIORITY_INFO
  62471. {
  62472. int nCycleNum; // 周期编号
  62473. int nSuspendingPeriod; // 最小优先间隔, 优先执行后的冷却时长,冷却时间内不再响应新的优先请求(1~90)
  62474. int nPhasePriorityConfigNum; // 优先配置表个数
  62475. NET_PHASE_PRIORITY_CONFIG_INFO stuphasePriorityConfigInfo[255];// 优先配置表
  62476. char szReserved[256]; // 预留字节
  62477. }NET_PEDESTRAIN_PRIORITY_INFO;
  62478. ///@brief 行人优先智能化配置,对应配置项NET_EM_CFG_RTSC_SCH_PEDDESTRAIN_PRIORITY
  62479. typedef struct tagNET_CFG_RTSC_SCH_PEDDESTRAIN_PRIORITY_INFO
  62480. {
  62481. DWORD dwSize; // 结构体大小
  62482. int nPedestrainPriorityNum; // 行人优先智能化配置列表个数
  62483. NET_PEDESTRAIN_PRIORITY_INFO stupedestrainPriorityInfo[20]; // 行人优先智能化配置列表
  62484. }NET_CFG_RTSC_SCH_PEDDESTRAIN_PRIORITY_INFO;
  62485. ///@brief 检测器配置信息
  62486. typedef struct tagNET_DETECTOR_CONFIG_INFO
  62487. {
  62488. int nDetectorId; // 检测器id
  62489. BOOL bEnable; // 是否启用
  62490. char szReserved[32]; // 预留字节
  62491. }NET_DETECTOR_CONFIG_INFO;
  62492. ///@brief 相位配置信息
  62493. typedef struct tagNET_PHASE_CONFIG_INFO
  62494. {
  62495. int nPhaseNum; // 相位编号,仅支持单环
  62496. int nPhaseOrder; // 相位重复出现的次数
  62497. BOOL bRespondEnable; // 响应使能
  62498. float fReduceRatio; // 缩减比例(0~0.5)
  62499. char szReserved[32]; // 预留字节
  62500. }NET_PHASE_CONFIG_INFO;
  62501. ///@brief 通用配置信息
  62502. typedef struct tagNET_COMMON_CONFIG_INFO
  62503. {
  62504. float fRatioLimit; // 溢出控制占有率阈值
  62505. int nInOCTimes; // 进入溢出控制占有率满足次数
  62506. int nOutOCTimes; // 跌出溢出控制占有率满足次数
  62507. char szReserved[32]; // 预留字节
  62508. }NET_COMMON_CONFIG_INFO;
  62509. ///@brief 溢出控制智能化配置列表信息
  62510. typedef struct tagNET_OVER_FLOW_CONTROL_INFO
  62511. {
  62512. int nCycleNum; // 周期编号
  62513. NET_COMMON_CONFIG_INFO stuCommnCofigInfo; // 通用配置
  62514. int nDetectConfigNum; // 检测器配置个数
  62515. NET_DETECTOR_CONFIG_INFO stuDetectConfigInfo[32]; // 检测器配置
  62516. int nPhaseConfigNum; // 相位配置个数
  62517. NET_PHASE_CONFIG_INFO stuPhaseConfigInfo[16]; // 相位配置
  62518. char szReserved[32]; // 预留字节
  62519. }NET_OVER_FLOW_CONTROL_INFO;
  62520. ///@brief 溢出控制列表,对应配置项NET_EM_CFG_RTSC_SCH_OVERFLOW_CONTROL
  62521. typedef struct tagNET_CFG_RTSC_SCH_OVERFLOW_CONTROL_INFO
  62522. {
  62523. DWORD dwSize; // 结构体大小
  62524. int nOverflowControlNum; // 溢出控制智能化配置列表个数
  62525. NET_OVER_FLOW_CONTROL_INFO stuOverFlowControlInfo[20]; // 溢出控制智能化配置列表
  62526. }NET_CFG_RTSC_SCH_OVERFLOW_CONTROL_INFO;
  62527. ///@brief 夜间相位配置表信息
  62528. typedef struct tagNET_PHASE_CONFIG_NIGHT_INFO
  62529. {
  62530. int nPhaseNum; // 相位编号,仅支持单环
  62531. int nPhaseOrder; // 相位重复出现的次数
  62532. BOOL bHold; // 是否驻留
  62533. int nMaxInterval; // 最大请求间隔(0~160)
  62534. char szReserved[32]; // 预留字节
  62535. }NET_PHASE_CONFIG_NIGHT_INFO;
  62536. ///@brief 夜间请求智能化配置列表信息
  62537. typedef struct tagNET_NIGHT_ASK_INFO
  62538. {
  62539. int nCycleNum; // 周期编号
  62540. int nPhaseConfigNum; // 夜间相位配置表个数
  62541. NET_PHASE_CONFIG_NIGHT_INFO stuPhaseConfigNightInfo[16]; // 夜间相位配置表
  62542. char szReserved[32]; // 预留字节
  62543. }NET_NIGHT_ASK_INFO;
  62544. ///@brief 夜间请求,对应配置项NET_EM_CFG_RTSC_SCH_NIGHTASK
  62545. typedef struct tagNET_CFG_RTSC_SCH_NIGHTASK_INFO
  62546. {
  62547. DWORD dwSize; // 结构体大小
  62548. int nNightAskNum; // 夜间请求智能化配置列表个数
  62549. NET_NIGHT_ASK_INFO stuNightAskInfo[20]; // 夜间请求智能化配置列表
  62550. }NET_CFG_RTSC_SCH_NIGHTASK_INFO;
  62551. ///@brief 周期设置信息
  62552. typedef struct tagNET_CYCLE_SETTINGS_INFO
  62553. {
  62554. int nCycleMax; // 周期上限,最大饱和度对应的周期值nMaxCyc(30 ~ 240)
  62555. int nCycleMin; // 周期下限,最小饱和度对应的周期值nMinCyc(30 ~ 240)
  62556. float fSaturitionUpLimit; // 饱和度约束上限(0.000~1.000)
  62557. float fSaturitionDnLimit; // 饱和度约束下限(0.000~1.000)
  62558. int nCycleUpLimit; // 周期锁定约束上限(30 ~ 240)
  62559. int nCycleDnLimit; // 周期锁定约束下限(30 ~ 240)
  62560. int nCycleUpStep; // 周期上升最大步长(1 ~ 20)
  62561. int nCycleDnStep; // 周期下降最大步长(1 ~ 20)
  62562. int nSmoothCycNum; // 平滑周期饱和度个数(1 ~ 5)
  62563. int nPermitDoubleCyc; // 是否允许双周期:0不允许 1允许
  62564. int nDoubleCycThreshold; // 触发双周期的阈值(60 ~ 240)
  62565. char szReserved[32]; // 预留字节
  62566. }NET_CYCLE_SETTINGS_INFO;
  62567. ///@brief 选票设置信息
  62568. typedef struct tagNET_VOTE_SETTINGS_INFO
  62569. {
  62570. int nCycleChangeTolerate; // 周期容许秒数:周期增加或减少幅度未超出容许值,认为周期未增加或减少(0 ~ 10)
  62571. int nCycleUpVote; // 周期增加所需票数(1 ~ 5)
  62572. int ncycleDnVote; // 周期减少所需票数(1 ~ 5)
  62573. char szReserved[32]; // 预留字节
  62574. }NET_VOTE_SETTINGS_INFO;
  62575. ///@brief 相位优先配置表信息
  62576. typedef struct tagNET_PHASE_PRIORITYS_INFO
  62577. {
  62578. int nPhaseNum; // 相位编号
  62579. int nPhaseOrder; // 相位重复出现的次数
  62580. BOOL bPriority; // 是否优先
  62581. char szReserved[32]; // 预留字节
  62582. }NET_PHASE_PRIORITYS_INFO;
  62583. ///@brief 检测器配置表
  62584. typedef struct tagNET_DETECTOR_SETTINGS_INFO
  62585. {
  62586. int nDetectorNumber; // 检测器编号
  62587. int nDetectorRoadNum; // 车道编号
  62588. int nDetectorentryDir; // 进口方向
  62589. int nDetectorentryType; // 进口类型
  62590. BOOL bJoinPhaseSplit; // 参与相位饱和度计算
  62591. BOOL bJoinCycleSplit; // 参与周期饱和度计算
  62592. char szReserved[32]; // 预留字节
  62593. }NET_DETECTOR_SETTINGS_INFO;
  62594. ///@brief 关闭配置信息
  62595. typedef struct tagNET_CLOSURE_SETTINGS_INFO
  62596. {
  62597. int nRingNo; // 相位所属环编号
  62598. int nBarrierNo; // 相位所属栅栏编号
  62599. int nGridNo; // 相位所属栅栏内的位置
  62600. int nPhaseNum; // 相位编号
  62601. int nPhaseOrder; // 相位重复出现的次数
  62602. char szReferDeviceId[72]; // 参照设备id
  62603. char szReferDeviceName[72]; // 参照设备名称
  62604. int nReferPlanNum; // 参照方案编号
  62605. char szReferPlanName[72]; // 参照方案名称
  62606. int nReferPhaseNum; // 参照相位
  62607. int nReferPhaseOrder; // 参照相位重复出现的次数
  62608. double dSplitTime; // 绿信比/时间
  62609. char szReserved1[4]; // 字节对齐
  62610. int nReferType; // 类型,1绿信比/2时间
  62611. char szReserved[32]; // 预留字节
  62612. }NET_CLOSURE_SETTINGS_INFO;
  62613. ///@brief 相位表信息
  62614. typedef struct tagNET_PHASE_LIST_INFO
  62615. {
  62616. int nPhaseNum; // 相位编号
  62617. int nPhaseOrder; // 相位重复出现的次数
  62618. int nRingNo; // 相位所属环编号
  62619. int nBarrierNo; // 相位所属栅栏编号
  62620. int nGridNo; // 相位所属栅栏内的位置
  62621. BOOL bUsePhaseTime; // 是否为时长变化
  62622. int nPhaseTime; // 相位时长
  62623. int nPhaseUpLimit; // 相位时长上限(0 ~ 100)
  62624. int nPhaseDnLimit; // 相位时长下限(0 ~ 100)
  62625. BOOL bUseSplitTime; // 是否为绿信比变化
  62626. double dSplitBase; // 基准方案绿信比
  62627. int nSplitUpLimit; // 绿信比变化最大值
  62628. int nSplitDnLimit; // 绿信比变化最小值
  62629. double dSaturitionWeight; // 相位饱和度加权值
  62630. double dSplitMaxStep; // 相位每周期绿信比最大变化值
  62631. BOOL bPermitMaxLaneSaturition; // 相位饱和度计算策略:0:饱和度=average(车道饱和度) 1:饱和度=max(车道饱和度)
  62632. char szReserved[32]; // 预留字节
  62633. }NET_PHASE_LIST_INFO;
  62634. ///@brief 相位优先配置
  62635. typedef struct tagNET_PHASE_PRIORITY_INFO
  62636. {
  62637. int nPhaseNum; // 相位编号
  62638. int nPhaseOrder; // 相位重复出现的次数
  62639. BOOL bPriority; // 是否优先
  62640. char szReserved[32]; // 预留字节
  62641. }NET_PHASE_PRIORITY_INFO;
  62642. ///@brief 检测器配置表
  62643. typedef struct tagNET_DETECTOR_SETTING_INFO
  62644. {
  62645. int nDetectorNum; // 检测器编号
  62646. int nDetectorRoadNum; // 车道编号
  62647. int nDetectorentryDir; // 进口方向
  62648. int nDetectorentryType; // 进口类型
  62649. BOOL bJoinPhaseSplit; // 参与相位饱和度计算
  62650. BOOL bJoinCycleSplit; // 参与周期饱和度计算
  62651. char szReserved[32]; // 预留字节
  62652. }NET_DETECTOR_SETTING_INFO;
  62653. ///@brief 相位所属配置表
  62654. typedef struct tagNET_CLOSURE_SETTING_INFO
  62655. {
  62656. int nRingNo; // 相位所属环编号
  62657. int nBarrierNo; // 相位所属栅栏编号
  62658. int nGridNo; // 相位所属栅栏内的位置
  62659. int nPhaseNum; // 相位编号
  62660. int nPhaseOrder; // 相位重复出现的次数
  62661. char szReferDeviceId[72]; // 参照设备id
  62662. char szReferDeviceName[72]; // 参照设备名称
  62663. int nReferPlanNum; // 参照方案编号
  62664. char szReferPlanName[72]; // 参照方案名称
  62665. int nReferPhaseNum; // 参照相位
  62666. int nReferPhaseOrder; // 参照相位重复出现的次数
  62667. double dbSplitTime; // 绿信比/时间
  62668. int nReferType; // 类型,1绿信比/2时间
  62669. char szReserved1[4]; // 字节对齐
  62670. char szReserved[32]; // 预留字节
  62671. }NET_CLOSURE_SETTING_INFO;
  62672. ///@brief 相位设置信息
  62673. typedef struct tagNET_PHASE_SETTINGS_INFO
  62674. {
  62675. int nPhaseListNum; // 相位表个数
  62676. NET_PHASE_LIST_INFO stuPhaseListInfo[16]; // 相位表
  62677. int nPhasePrioritysNum; // 相位优先配置表个数
  62678. NET_PHASE_PRIORITY_INFO stuPhasePriorityInfo[16]; // 相位优先配置
  62679. int nDetectorSettingsNum; // 检测器配置表个数
  62680. NET_DETECTOR_SETTING_INFO stuDetectorSettingInfo[16]; // 检测器配置表
  62681. int nClosureSettingNum; // 相位所属表个数
  62682. NET_CLOSURE_SETTING_INFO stuClosureSettingInfo[16]; // 相位所属配置表
  62683. char szReserved[32]; // 预留字节
  62684. }NET_PHASE_SETTINGS_INFO;
  62685. ///@brief 感应参数信息
  62686. typedef struct tagNET_SENIOR_INFO
  62687. {
  62688. int nCycleSettingNum; // 周期设置个数
  62689. NET_CYCLE_SETTINGS_INFO stuCycleSettingInfo[20]; // 周期设置
  62690. NET_VOTE_SETTINGS_INFO stuVoteSettingInfo; // 选票设置
  62691. NET_PHASE_SETTINGS_INFO stuPhaseSettingInfo; // 相位设置
  62692. char szReserved[32]; // 预留字节
  62693. }NET_SENIOR_INFO;
  62694. ///@brief 饱和度与单点自适应智能化配置表信息
  62695. typedef struct tagOPTIMIZES
  62696. {
  62697. int nCyclePlanNum; // 周期方案编号
  62698. int nCoordinatePhaseNum; // 协调相位编号
  62699. int nCoordinatePhaseOrder; // 协调相位重复出现的次数
  62700. int nCoordinateRingNo; // 相位所属环编号
  62701. int nCoordinateBarrierNo; // 相位所属栅栏编号
  62702. int nCoordinateGridNo; // 相位所属栅栏内的位置
  62703. char szReferDeviceId[72]; // 参照设备id
  62704. char szReferDeviceName[72]; // 参照设备名称
  62705. int nReferCyclePlanNum; // 参照路口的周期方案编号
  62706. char szReferCyclePlanName[72]; // 参照路口的周期方案名称
  62707. int nReferPhaseNum; // 参考相位
  62708. int nReferPhaseOrder; // 参照相位重复出现的次数
  62709. int nReferType; // 参考类型 1为早,2为晚
  62710. int nOffset; // 相位差
  62711. NET_SENIOR_INFO stuSeniorInfo; // 感应参数
  62712. char szReserved[32]; // 预留字节
  62713. }NET_OPTIMIZES_INFO;
  62714. ///@brief 饱和度与单点自适应智能化配置,对应配置项NET_EM_CFG_RTSC_SCH_OPTIMIZES
  62715. typedef struct tagNET_CFG_RTSC_SCH_OPTIMIZES_INFO
  62716. {
  62717. DWORD dwSize; // 结构体大小
  62718. int nOptimizesInfoNum; // 饱和度与单点自适应智能化配置表个数
  62719. NET_OPTIMIZES_INFO stuOptimizeInfo[20]; // 能度与单点完成配置表
  62720. }NET_CFG_RTSC_SCH_OPTIMIZES_INFO;
  62721. ///@brief 可变车道属性信息
  62722. typedef struct tagNET_PROPERTY_LIST_INFO
  62723. {
  62724. int nVarlaneProperty; // 该指示牌支持的可变属性,最多支持七种,0表示未配置(1:左转2:直行(潮汐)3:右转4:掉头5:禁行(匝道)6:通行(匝道)7:反向(潮汐))
  62725. int nVarlaneTochanelNum; // 该指示牌对应可变属性的对应通道编号
  62726. int nVarlaneTochanelColor; // 该指示牌对应可变属性的对应的通道的灯色(1:红灯2:黄灯3:绿灯)
  62727. int nVarlanevehDectNumber; // 该指示牌对应可变属性的对应的检测器编号(对应检测器表)
  62728. char szReserved[32]; // 预留字节
  62729. }NET_PROPERTY_LIST_INFO;
  62730. ///@brief 属性计划表信息
  62731. typedef struct tagNET_PROPERTY_PLAN_LIST_INFO
  62732. {
  62733. int nVarlaneProperty; // 该指示牌支持的可变属性,最多支持七种,0表示未配置(1:左转2:直行(潮汐)3:右转4:掉头5:禁行(匝道)6:通行(匝道)7:反向(潮汐))
  62734. int nVarlaneDectTime; // 可变车道对应属性的检测时间
  62735. int nQueueDissimilarity; // 可变属性的排队差(米)
  62736. int nQueueLen; // 可变属性的判断起始排队长(米)
  62737. char szReserved[32]; // 预留字节
  62738. }NET_PROPERTY_PLAN_LIST_INFO;
  62739. ///@brief 计划表信息
  62740. typedef struct tagNET_LANE_PLAN_LIST_INFO
  62741. {
  62742. int nVarlaneId; // 可变车道指示牌号
  62743. int nVarlaneNumber; // 可变车道编号(车道配置页面编号)
  62744. int nKeepTime; // 保持时间(分钟)0-1440
  62745. int nControlMode; // 1:固定方案; 2:自适应双向切换; 3:定向切换
  62746. int nCurrentVarlaneProperty; // 当前属性 1:左转2:直行(潮汐)3:右转4:掉头5:禁行(匝道)6:通行(匝道)7:反向(潮汐)
  62747. int nPropertyPlanListNum; // 属性计划表个数
  62748. NET_PROPERTY_PLAN_LIST_INFO stuPropertyPlanInfo[7]; // 属性计划表
  62749. char szReserved[32]; // 预留字节
  62750. }NET_LANE_PLAN_LIST_INFO;
  62751. ///@brief 可变车道计划表信息
  62752. typedef struct tagNET_VARLANE_PLAN_LIST_INFO
  62753. {
  62754. int nVarlanePatternNumber; // 可变车道方案编号(0表示未配置)
  62755. char szVarlanePatternName[64]; // 可变车道方案名称
  62756. int nLanePlanNum; // 计划表个数
  62757. NET_LANE_PLAN_LIST_INFO stuLanePlanInfo[12]; // 计划表
  62758. char szReserved[32]; // 预留字节
  62759. }NET_VARLANE_PLAN_LIST_INFO;
  62760. ///@brief 可变车道列表信息
  62761. typedef struct tagNET_VAR_LANE_LIST_INFO
  62762. {
  62763. int nVarlaneId; // 可变车道指示牌号
  62764. int nVarlaneNumber; // 可变车道编号(车道配置页面编号)
  62765. int nVarlaneFlashTime; // 该指示牌对应可变属性的对应的通道的闪光时长 单位秒,0-255 S
  62766. int nPropertyListNum; // 可变车道属性个数
  62767. NET_PROPERTY_LIST_INFO stuPropertyInfo[7]; // 可变车道属性
  62768. char szReserved[32]; // 预留字节
  62769. }NET_VAR_LANE_LIST_INFO;
  62770. ///@brief 可变车道列表,对应配置项NET_EM_CFG_RTSC_SCH_VARLANELIST
  62771. typedef struct tagNET_CFG_RTSC_SCH_VARLANELIST_INFO
  62772. {
  62773. DWORD dwSize; // 结构体大小
  62774. int nVarlaneListNum; // 可变车道列表个数
  62775. NET_VAR_LANE_LIST_INFO stuVarLaneListInfo[8]; // 可变车道列表
  62776. int nVarlanePlanListNum; // 可变车道计划表个数
  62777. NET_VARLANE_PLAN_LIST_INFO stuVarlanePlanListInfo[8]; // 可变车道计划表
  62778. }NET_CFG_RTSC_SCH_VARLANELIST_INFO;
  62779. ///@brief 日计划时段表内容
  62780. typedef struct tagNET_DAY_ACTIONS_INFO
  62781. {
  62782. int nActionNumber; // 时段编号,从1开始
  62783. int nBeginHour; // 时段的起始小时
  62784. int nBeginMinute; // 时段的起始分钟
  62785. int nCyclePlanControlMode; // 时段模式
  62786. char szReserved[32]; // 预留字节
  62787. }NET_DAY_ACTIONS_INFO;
  62788. ///@brief 可变车道日方案列表信息
  62789. typedef struct tagNET_DAY_PLANS_INFO
  62790. {
  62791. int nDayPlanNumber; // 日方案个数
  62792. char szDayPlanName[64]; // 日方案编号,从1开始
  62793. int nDayActionNum; // 日计划时段表名称
  62794. NET_DAY_ACTIONS_INFO stuDayActionInfo[24]; // 日计划时段表
  62795. char szReserved[32]; // 预留字节
  62796. }NET_DAY_PLANS_INFO;
  62797. ///@brief 周计划列表信息
  62798. typedef struct tagNET_WEEK_PLANS_INFO
  62799. {
  62800. int nWeekPlanNumber; // 周计划编号
  62801. char szWeekPlanName[64]; // 周计划名称
  62802. int nWeekPlanNum; // 周计划个数
  62803. NET_WEEK_PLAN_INFO stuWeekPlanInfo[7]; // 周计划
  62804. char szReserved[32]; // 预留字节
  62805. }NET_WEEK_PLANS_INFO;
  62806. ///@brief 特殊调度列表信息
  62807. typedef struct tagNET_SPECIAL_DATE_PLANS_INFO
  62808. {
  62809. int nDatePlanNumber; // 日方案编号,从1开始
  62810. int nBeginMonth; // 日期开始月份
  62811. int nBeginDay; // 日期开始日
  62812. int nEndMonth; // 日期结束月份
  62813. int nEndDay; // 日期结束日
  62814. int nWeekPlanNumber; // 周计划编号
  62815. char szWeekPlanName[64]; // 周计划名称
  62816. char szReserved[32]; // 预留字节
  62817. }NET_SPECIAL_DATE_PLANS_INFO;
  62818. ///@brief 可变车道调度计划列表,对应配置项NET_EM_CFG_RTSC_SCH_VARLANE_MANAGEMENT
  62819. typedef struct tagNET_CFG_RTSC_SCH_VARLANE_MANAGEMENT_INFO
  62820. {
  62821. DWORD dwSize; // 结构体大小
  62822. int nDayPlansNum; // 可变车道日方案列表个数
  62823. NET_DAY_PLANS_INFO stuDayPlansInfo[20]; // 可变车道日方案列表
  62824. int nWeekPlansNum; // 周计划列表个数
  62825. NET_WEEK_PLANS_INFO stuWeekPlansInfo[10]; // 周计划列表
  62826. int nCommonDatePlanNum; // 日常调度列表个数
  62827. NET_COMMON_DATE_PLAN_INFO stuCommonDatePlanInfo[8]; // 日常调度列表
  62828. int nSpecialDatePlanNum; // 特殊调度列表个数
  62829. NET_SPECIAL_DATE_PLANS_INFO stuSpecialDatePlanInfo[8]; // 特殊调度列表
  62830. }NET_CFG_RTSC_SCH_VARLANE_MANAGEMENT_INFO;
  62831. ///@brief 栅栏信息配置
  62832. typedef struct tagNET_BARRIERS_INFO
  62833. {
  62834. int nBarrierNo; // 栅栏编号,从1开始
  62835. int nPhaseNum; // 相位列表个数
  62836. NET_PHASES_INFO stuPhaseInfo[16]; // 相位列表
  62837. char szReserved[32]; // 预留字节
  62838. }NET_BARRIERS_INFO;
  62839. ///@brief 环信息配置
  62840. typedef struct tagNET_RINGS_INFO
  62841. {
  62842. int nRingNo; // 环编号,从1开始
  62843. int nBarriersNum; // 栅栏信息个数
  62844. NET_BARRIERS_INFO stuBarriesInfo[4]; // 栅栏信息
  62845. char szReserved[32]; // 预留字节
  62846. }NET_RINGS_INFO;
  62847. ///@brief 临时方案配置,对应配置项NET_EM_CFG_RTSC_TEMP_SCH
  62848. typedef struct tagNET_CFG_RTSC_TEMP_SCH_INFO
  62849. {
  62850. DWORD dwSize; // 结构体大小
  62851. int nStartTimeNum; // 临时方案开始时间个数
  62852. int nStartTime[4]; // 临时方案开始时间 int[0]时 Int[1]分 后两位预留
  62853. int nEndTimeNum; // 临时方案结束时间个数
  62854. int nEndTime[4]; // 临时方案结束时间 int[0]时 Int[1]分 后两位预留
  62855. int nRingsNum; // 环信息个数
  62856. NET_RINGS_INFO stuRingsInfo[4]; // 环信息
  62857. int nOverLapsNum; // 跟随相位列表个数
  62858. NET_OVER_LAPS_INFO stuOverLapsInfo[16]; // 跟随相位列表
  62859. }NET_CFG_RTSC_TEMP_SCH_INFO;
  62860. /**********************************************项目配置start**************************************************/
  62861. ///@brief 考试科目信息
  62862. typedef struct tagNET_EXAM_OBJ_INFO
  62863. {
  62864. char szName[256]; // 考试科目全称
  62865. char szAbbreviation[64]; // 考试科目简称
  62866. BOOL bRequired; // 是否为默认值
  62867. BOOL bIsUsed; // 是否正在被使用
  62868. BYTE bReserverd[1024]; // 保留字节
  62869. } NET_EXAM_OBJ_INFO;
  62870. ///@brief 考试科目配置, 对应配置项NET_EM_CFG_COURSE_INFO
  62871. typedef struct tagNET_CFG_COURSE_INFO
  62872. {
  62873. DWORD dwSize; // 结构体大小
  62874. UINT nExamObjNum; // 考试科目数量, 即stuExamNum 数组的有效元素个数
  62875. NET_EXAM_OBJ_INFO stuExamNum[128]; // 考试科目信息
  62876. } NET_CFG_COURSE_INFO;
  62877. ///@brief 考场信息
  62878. typedef struct tagNET_EXAMINATION_ROOM_INFO
  62879. {
  62880. char szExamRoomName[256]; // 考场名称
  62881. char szExamRoomNo[256]; // 考场编号
  62882. UINT nCandidatesNum; // 考场人数
  62883. UINT nChannelNum; // 考场IPC 通道个数, 即nChannels 数组的有效元素个数
  62884. UINT nChannels[512]; // 考场IPC通道
  62885. BYTE bReserverd[1024]; // 保留字节
  62886. } NET_EXAMINATION_ROOM_INFO;
  62887. ///@brief 考场配置, 对应配置项NET_EM_CFG_EXAMINATION_ROOM_INFO
  62888. typedef struct tagNET_CFG_EXAMINATION_ROOM_INFO
  62889. {
  62890. DWORD dwSize; // 结构体大小
  62891. UINT nEaxmRoomNum; // 考场数量, 即stuEaxmRoomInfo 数组的有效元素个数
  62892. NET_EXAMINATION_ROOM_INFO stuEaxmRoomInfo[256]; // 考场信息
  62893. char szExamSiteName[256]; // 考点名称
  62894. char szExamSiteNo[256]; // 考点编号
  62895. } NET_CFG_EXAMINATION_ROOM_INFO;
  62896. ///@brief 自定义文件目录, 文件名信息
  62897. typedef struct tagNET_CUSTOM_FILE_DIR_NAME_INFO
  62898. {
  62899. UINT nCustomDirNum; // 自定义文件目录个数, 即szCustomDirName 数组的有效元素个数
  62900. char szCustomDirName[32][256]; // 自定义文件目录名(":"前缀表示关键字)
  62901. UINT nCustomFileNum; // 自定义文件文件个数, 即szCustomFileName 数组的有效元素个数
  62902. char szCustomFileName[32][256]; // 自定义文件文件名(":"前缀表示关键字)
  62903. BYTE bReserverd[1024]; // 保留字节
  62904. } NET_CUSTOM_FILE_DIR_NAME_INFO;
  62905. ///@brief 自定义文件目录, 文件规则信息
  62906. typedef struct tagNET_CUSTOM_FILE_DIR_RULE_INFO
  62907. {
  62908. UINT nCustomDirNum; // 自定义文件目录个数, 即szCustomDirRule 数组的有效元素个数
  62909. char szCustomDirRule[32][256]; // 自定义文件目录规则(":"前缀表示关键字)
  62910. UINT nCustomFileNum; // 自定义文件文件个数, 即szCustomFileRule 数组的有效元素个数
  62911. char szCustomFileRule[32][256]; // 自定义文件文件规则(":"前缀表示关键字)
  62912. BYTE bReserverd[1024];
  62913. }NET_CUSTOM_FILE_DIR_RULE_INFO;
  62914. ///@brief 文件目录、文件名规则配置, 对应配置项NET_EM_CFG_RECORD_NAME_RULE_INFO
  62915. typedef struct tagNET_CFG_RECORD_NAME_RULE_INFO
  62916. {
  62917. DWORD dwSize; // 结构体大小
  62918. BYTE bReserverd1[4]; // 字节对齐
  62919. NET_CUSTOM_FILE_DIR_NAME_INFO stuCustomNameInfo; // 自定义文件目录, 文件名信息
  62920. NET_CUSTOM_FILE_DIR_RULE_INFO stuCustomRuleInfo; // 自定义文件目录, 文件规则信息
  62921. } NET_CFG_RECORD_NAME_RULE_INFO;
  62922. ///@brief 数据模式
  62923. typedef enum tagEM_NET_KVM_CONTROL_MODE
  62924. {
  62925. EM_NET_KVM_CONTROL_MODE_UNKNOWN, // 未知
  62926. EM_NET_KVM_CONTROL_MODE_DEFAULT, // 默认模式
  62927. EM_NET_KVM_CONTROL_MODE_WIN7_MULTISCREEN // Win7跨屏控制模式
  62928. } EM_NET_KVM_CONTROL_MODE;
  62929. ///@brief KVM远程控制数据模式配置, 对应配置项NET_EM_CFG_KVM_CONTROL_DATA_MODE
  62930. typedef struct tagNET_CFG_KVM_CONTROL_DATA_MODE_INFO
  62931. {
  62932. DWORD dwSize; // 结构体大小
  62933. EM_NET_KVM_CONTROL_MODE emMode; // 数据模式
  62934. } NET_CFG_KVM_CONTROL_DATA_MODE_INFO;
  62935. ///@brief 目标隐私保护配置
  62936. typedef struct tagNET_CFG_PRIVACY_FACEID_INFO
  62937. {
  62938. DWORD dwSize; // 结构体大小
  62939. int nCount; // 目标ID个数
  62940. int nFaceID[32]; // 隐私保护的目标ID列表
  62941. } NET_CFG_PRIVACY_FACEID_INFO;
  62942. ///@brief 支持平台下发禁行时间配置,对应配置项NET_EM_CFG_CHANG_BAI_VEHICLE_PROHIBITED
  62943. typedef struct tagNET_CFG_CHANG_BAI_VEHICLE_PROHIBITED_INFO
  62944. {
  62945. DWORD dwSize; // 结构体大小
  62946. NET_TIME stuVehicleProhibitedStartTime; // 禁行开始时间(本地时间)
  62947. NET_TIME stuVehicleProhibitedEndTime; // 禁行结束时间(本地时间)
  62948. } NET_CFG_CHANG_BAI_VEHICLE_PROHIBITED_INFO;
  62949. ///@brief NVR允许接入IPC配置, 对应配置项NET_EM_CFG_TUXI_SN_ACCESS_TABLE
  62950. typedef struct tagNET_CFG_TUXI_SN_ACCESS_TABLE_INFO
  62951. {
  62952. DWORD dwSize; // 结构体大小
  62953. BOOL bEnable; // 是否启用
  62954. int nCount; // 序列号列表个数
  62955. char szTable[512][64]; // 序列号列表
  62956. } NET_CFG_TUXI_SN_ACCESS_TABLE_INFO;
  62957. ///@brief 考勤配置, 对应配置项 NET_EM_CFG_ATTENDANCECFG_XL_CUSTOM
  62958. typedef struct tagNET_CFG_ATTENDANCECFG_XL_CUSTOM_INFO
  62959. {
  62960. DWORD dwSize; // 结构体大小
  62961. int nAttendanceType; // 设备考勤类型。0-签入;1-签出
  62962. int nCheckInEarlyTime; // 签入-提前时间,单位(分钟)
  62963. int nCheckInDelayTime; // 签入-提前时间,单位(分钟)
  62964. int nCheckOutEarlyTime; // 签出-提前时间,单位(分钟)
  62965. int nCheckOutDelayTime; // 签出-延后时间,单位(分钟)
  62966. } NET_CFG_ATTENDANCECFG_XL_CUSTOM_INFO;
  62967. /**********************************************项目配置end**************************************************/
  62968. ///@brief 门禁编号及用户开门唯一标识码配置, 对应配置项 NET_EM_CFG_HB_ECOLOGY_INFO
  62969. typedef struct tagNET_CFG_HB_ECOLOGY_INFO
  62970. {
  62971. DWORD dwSize; // 结构体大小
  62972. BYTE bReserverd[4]; // 字节对齐
  62973. char szDeviceID[128]; // 门禁设备编号
  62974. char szUserUniqueID[128]; // 用户唯一标识符
  62975. } NET_CFG_HB_ECOLOGY_INFO;
  62976. ///@brief 录像丢帧报警配置, 对应配置项NET_EM_CFG_LOSS_FRAME_ALARM
  62977. typedef struct tagNET_CFG_LOSS_FRAME_ALARM_INFO
  62978. {
  62979. DWORD dwSize; // 结构体大小
  62980. BOOL bEnable; // 配置使能
  62981. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  62982. } NET_CFG_LOSS_FRAME_ALARM_INFO;
  62983. ///@brief 消费模式
  62984. typedef enum tagEM_NET_CONSUMPTION_MODE
  62985. {
  62986. EM_NET_CONSUMPTION_MODE_UNKNOWN = -1, // 未知
  62987. EM_NET_CONSUMPTION_MODE_QUOTA, // 定额消费
  62988. EM_NET_CONSUMPTION_MODE_NONQUOTA, // 非定额消费
  62989. EM_NET_CONSUMPTION_MODE_DEPOSIT, // 充值
  62990. } EM_NET_CONSUMPTION_MODE;
  62991. ///@brief 消费相关策略, 对应配置项 NET_EM_CFG_CONSUMPTION_STRATEGY
  62992. typedef struct tagNET_CFG_CONSUMPTION_STRATEGY_INFO
  62993. {
  62994. DWORD dwSize; // 结构体大小
  62995. EM_NET_CONSUMPTION_MODE emMode; // 消费模式
  62996. BOOL bOfflineEnable; // 离线消费使能, TRUE:支持离线消费 FALSE:不支持离线消费
  62997. UINT nConsumptionInterval; // 同一个人消费间隔, 单位:秒,取值范围[1,600]
  62998. }NET_CFG_CONSUMPTION_STRATEGY_INFO;
  62999. ///@brief 工作模式
  63000. typedef enum tagEM_NET_WIEGAND_MODE
  63001. {
  63002. EM_NET_WIEGAND_TRANSFER_MODE_UNKNOWN = -1, // 未知
  63003. EM_NET_WIEGAND_TRANSFER_MODE_INPUT, // 韦根输入
  63004. EM_NET_WIEGAND_TRANSFER_MODE_OUTPUT, // 韦根输出
  63005. } EM_NET_WIEGAND_MODE;
  63006. ///@brief 传输模式
  63007. typedef enum tagEM_NET_WIEGAND_TRANSFER_MODE
  63008. {
  63009. EM_NET_WIEGAND_MODE_UNKNOWN = -1, // 未知
  63010. EM_NET_WIEGAND_MODE_BIT_34, // 韦根34bit传输,4字节卡号,2Bit校验;
  63011. EM_NET_WIEGAND_MODE_BIT_66, // 韦根66bit传输,8字节卡号,2Bit校验;
  63012. EM_NET_WIEGAND_MODE_BIT_26, // 韦根26bit传输,3字节卡号,2Bit校验;
  63013. EM_NET_WIEGAND_MODE_BIT_32, // 韦根32bit传输,4字节卡号,无校验位
  63014. EM_NET_WIEGAND_MODE_BIT_42, // 韦根42bit传输,5字节卡号,2Bit校验
  63015. } EM_NET_WIEGAND_TRANSFER_MODE;
  63016. ///@brief 输出类型
  63017. typedef enum tagEM_NET_WIEGAND_OUT_TYPE
  63018. {
  63019. EM_NET_WIEGAND_OUT_TYPE_UNKNOWN = -1, // 未知
  63020. EM_NET_WIEGAND_OUT_TYPE_ID, // 输出ID
  63021. EM_NET_WIEGAND_OUT_TYPE_CARD_NO, // 输出卡号
  63022. } EM_NET_WIEGAND_OUT_TYPE;
  63023. ///@brief 韦根配置
  63024. typedef struct tagNET_WIEGAND_INFO
  63025. {
  63026. EM_NET_WIEGAND_MODE emMode; // 工作模式
  63027. int nPulseWidth; // 脉冲宽度,单位us
  63028. int nPulseStep; // 脉冲间隔,单位us
  63029. EM_NET_WIEGAND_TRANSFER_MODE emTransferMode; // 传输模式
  63030. EM_NET_WIEGAND_OUT_TYPE emOutType; // 输出类型
  63031. DWORD dwInputType; // 掩码值,每一位代表一个接收输入的掩码值,全为0表示不接收输入
  63032. // Bit0-卡号输入
  63033. // Bit1-密码输入
  63034. // Bit2~Bit31-保留
  63035. UINT nDoorNo; // 门编号, 例如 0: 门1编号, 1: 门2编号
  63036. BYTE bReserverd[1024]; // 保留字节
  63037. }NET_WIEGAND_INFO;
  63038. ///@brief 韦根配置, 对应配置项 NET_EM_CFG_WIEGAND
  63039. typedef struct tagNET_CFG_WIEGAND_INFO
  63040. {
  63041. DWORD dwSize; // 结构体大小
  63042. int nCount; // stuWiegandInfos的有效元素
  63043. NET_WIEGAND_INFO stuWiegandInfos[8]; // 韦根配置信息
  63044. }NET_CFG_WIEGAND_INFO;
  63045. ///@brief 拾音器配置, 对应枚举NET_EM_CFG_AI_PICK_DETECT
  63046. typedef struct tagNET_CFG_AI_PICK_DETECT_INFO
  63047. {
  63048. DWORD dwSize; // 结构体大小
  63049. BOOL bEnable; // 是否开启拾音器
  63050. char szIP[32]; // 拾音器IP地址
  63051. UINT nPort; // 拾音器通信端口
  63052. BOOL bKeyWordsEnable; // 是否进行关键词过滤
  63053. int nKeyWordsNum; // 关键词个数
  63054. char szKeyWordsText[300][64]; // 关键词列表
  63055. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  63056. }NET_CFG_AI_PICK_DETECT_INFO;
  63057. ///@brief 撤防白光灯报警联动项配置, 对应枚举NET_EM_CFG_DISABLE_LIGHTING_LINKAGE
  63058. typedef struct tagNET_CFG_DISABLE_LIGHTING_LINKAGE_INFO
  63059. {
  63060. DWORD dwSize; // 结构体大小, 必须赋值
  63061. BOOL bEnable; // 是否撤防白光报警联动项
  63062. char szName[32]; // 联动项配置名
  63063. }NET_CFG_DISABLE_LIGHTING_LINKAGE_INFO;
  63064. ///@brief 撤防语音报警联动项配置, 对应枚举NET_EM_CFG_DISABLE_VOICE_LINKAGE
  63065. typedef struct tagNET_CFG_DISABLE_VOICE_LINKAGE_INFO
  63066. {
  63067. DWORD dwSize; // 结构体大小, 必须赋值
  63068. BOOL bEnable; // 是否撤防语音报警联动项
  63069. char szName[32]; // 联动项配置名
  63070. }NET_CFG_DISABLE_VOICE_LINKAGE_INFO;
  63071. ///@brief 动检支持的视频窗口
  63072. typedef struct tagNET_MOTION_DETECT_WINDOW
  63073. {
  63074. UINT nThreshold; // 面积阀值,取值[0, 100]
  63075. UINT nSensitive; // 灵敏度,取值[0, 100]
  63076. int nMotionRow; // 动态检测区域的行数
  63077. int nMotionCol; // 动态检测区域的列数
  63078. BYTE nRegion[32][32]; // 动检检测区域块
  63079. int nId; // 动态窗口ID号
  63080. char szName[256]; // 动态窗口名称
  63081. char szResvered[256]; // 保留字节
  63082. }NET_MOTION_DETECT_WINDOW;
  63083. ///@brief 动态检测报警配置配置, 对应枚举NET_EM_CFG_MOTION_DETECT
  63084. typedef struct tagNET_CFG_MOTION_DETECT_INFO
  63085. {
  63086. DWORD dwSize; // 结构体大小, 必须赋值
  63087. BOOL bEnable; // 动态检测开启使能
  63088. BOOL bPtzManualEnable; // 手动控制云台时,动检是否开启
  63089. BOOL bOsdTwinkleEnable; // 动检提示OSD闪烁使能
  63090. UINT nVolumeRatio; // 面积占用比, 1-100, 0 表示此配置无效
  63091. UINT nSubRatio; // 动检的残差阈值, 1-100, 0 表示此配置无效
  63092. NET_ALARM_MSG_HANDLE stuEventHandler; // 动态检测联动
  63093. int nMotionDetectWindowCount; // 三代动检支持的视频窗口个数
  63094. NET_MOTION_DETECT_WINDOW stuMotionDetectWindow[4]; // 三代动检支持的视频窗口
  63095. }NET_CFG_MOTION_DETECT_INFO;
  63096. ///@brief 租赁规则配置, 对应枚举 NET_EM_CFG_LEASE_RULES
  63097. typedef struct tagNET_CFG_LEASE_RULES_INFO
  63098. {
  63099. DWORD dwSize; // 结构体大小, 必须赋值
  63100. BOOL bEnable; // 租赁规则使能
  63101. int nReminderTime; // 提醒时间;在租期到期前这个天数内属于提醒范围
  63102. int nPaddingTime; // 缓冲时间;在租期到期后这个天数内属于缓冲范围
  63103. }NET_CFG_LEASE_RULES_INFO;
  63104. ///@brief 配置操作类型
  63105. typedef enum tagNET_EM_CFG_OPERATE_TYPE
  63106. {
  63107. NET_EM_CFG_SNAP_MODE, // 抓图模式配置,对应结构体 NET_SNAP_MODE
  63108. NET_EM_CFG_DEV_CAR_COACH, // 铁路记录配置, 对应结构体 NET_DEV_CAR_COACH_INFO
  63109. NET_EM_CFG_YUEQING_SUPPLYLIGHTING, // 乐清外接灯光配置, 对应结构体 NET_YUEQING_SUPPLYLIGHTING_INFO
  63110. NET_EM_CFG_MEDIA_GLOBAL, // 媒体组件全局配置, 对应结构体 NET_MEDIA_GLOBAL_INFO
  63111. NET_EM_CFG_PARKINGSPACECELL_STATUS, // 车位设置(专有车位和普通车位的设置), 对应结构体 NET_PARKINGSPACECELL_STATUS_INFO
  63112. NET_EM_CFG_PARKINGSPACELIGHT_STATE, // 车位状态对应的车位指示灯, 对应结构体 NET_PARKINGSPACELIGHT_STATE_INFO
  63113. NET_EM_CFG_COAXIAL_LIGHT, // 白光灯视频通道配置, 对应结构体 NET_CFG_COAXIAL_LIGHT_INFO
  63114. NET_EM_CFG_VIDEO_OUT, // 视频输出配置, 对应结构体 NET_CFG_VIDEO_OUT_INFO
  63115. NET_EM_CFG_MEDIA_ENCRYPT = 9, // 媒体数据加密配置,对应结构体 NET_MEDIA_ENCRYPT_INFO,与通道不相关,通道号需要填成-1
  63116. NET_EM_CFG_COUNTRY, // 国家/地区配置, 对应结构体 NET_CFG_COUNTRY_INFO,与通道不相关,通道号需要填成-1
  63117. NET_EM_CFG_VIDEOSTANDARD, // 视频制式配置, 对应结构体 NET_CFG_VIDEOSTANDARD_INFO,与通道不相关,通道号需要填成-1, 目前设备不支持配置SECAM制式
  63118. NET_EM_CFG_SERIAL_PUSH_LOG, // 串口服务器推送日志配置, 对应结构体 NET_CFG_SERIALPUSHLOG_INFO,与通道不相关需要填成-1
  63119. NET_EM_CFG_PRESET_SNAP_PICTURE_NUM, // 预置点抓拍图片数量配置,对应结构体 NET_CFG_PRESET_SNAP_PICTURE_NUM
  63120. NET_EM_CFG_DOWNLOAD_ENCRYPT, // 下载数据加密配置, 对应结构体 NET_DOWNLOAD_ENCRYPT_INFO,与通道不相关,通道号需要填成-1
  63121. NET_EM_CFG_LIFT_CONTROL_OPTION, // 梯控功能全局配置,对应结构体 NET_CFG_LIFTCONTROL_OPTION,与通道不相关,通道号需要填成-1
  63122. NET_EM_CFG_HEALTH_CODE, // 健康码使能配置,对应结构体 NET_CFG_HEALTH_CODE_INFO, 与通道不相关,通道号需要填成-1
  63123. NET_EM_CFG_RTMP, // RTMP 配置,对应结构体 NET_CFG_RTMP_INFO,与通道不相关,通道号需要填成-1
  63124. NET_EM_CFG_HUMAN_THERMOMETRY_COMPENSATE,// 人体测温补偿配置(可见光通道有效), 对应结构体 NET_CFG_HUMAN_THERMOMETRY_COMPENSATE_INFO
  63125. NET_EM_CFG_LOCAL_HEAT_IMAGE_THERMOMETRY,// NVR本地温度配置,对应结构体 NET_CFG_LOCAL_HEAT_IMAGE_THERMOMETRY_INFO, 与通道不相关,通道号需要填成-1
  63126. NET_EM_CFG_ACCESSCONTROL_MEASURE_TEMP, // 门禁测温配置, 对应结构体 NET_CFG_ACCESSCONTROL_MEASURE_TEMP_INFO, 与通道不相关,通道号需要填成-1
  63127. NET_EM_CFG_DEBUGINFO_REDIR, // 串口日志重定向配置, 对应结构体 NET_CFG_DEBUGINFO_REDIR_INFO
  63128. NET_EM_CFG_JT_SERVER, // 部标注册参数配置, 对应结构体 NET_CFG_JT_SERVER_INFO, 与通道不相关,通道号需要填成-1
  63129. NET_EM_CFG_REMOTE_DEVICE_TIME_SYNC, // 同步时间到前端远程设备, 对应结构体 NET_CFG_REMOTE_DEVICE_TIME_SYNC_INFO, 与通道不相关,通道号需要填成-1
  63130. NET_EM_CFG_REMOTE_ALARM_OUT, // 远程报警输出配置, 对应结构体 NET_CFG_REMOTE_ALARMOUT_INFO
  63131. NET_EM_CFG_REMAINDER_TIME_WARN, // 制冷机剩余时间提示,对应的结构体 NET_CFG_REMAINDER_TIME_WARN_INFO
  63132. NET_EM_CFG_QR_CODE, // 配置二维码有效时间, 对应的结构体 NET_CFG_QR_CODE_INFO , 通道号需要填成-1
  63133. NET_EM_CFG_NMP_GLOBAL, // NMP系统全局管理配置, 对应结构体NET_CFG_NMP_GLOBAL_INFO, 与通道不相关,通道号需要填成-1
  63134. NET_EM_CFG_HEAT_IMAGING_TEMPER, // 热成像测温点温度异常报警配置, 对应结构体NET_CFG_HEAT_IMAGING_TEMPER_INFO
  63135. NET_EM_CFG_IP_TABLE_FILTER, // 防火墙规则过滤配置, 对应结构体NET_CFG_IP_TABLE_FILTER_INFO, 与通道不相关,通道号需要填成-1
  63136. NET_EM_CFG_HB_ECOLOGY_INFO, // 门禁编号及用户开门唯一标识码配置, 对应结构体 NET_CFG_HB_ECOLOGY_INFO, 与通道不相关,通道号需要填成-1
  63137. NET_EM_CFG_LOSS_FRAME_ALARM, // 录像丢帧报警配置, 对应结构体NET_CFG_LOSS_FRAME_ALARM_INFO
  63138. NET_EM_CFG_ALARMIN, // 外部报警配置, 对应结构体NET_CFG_ALARMIN_INFO
  63139. NET_EM_CFG_USB_FLASH, // 识别USB功能配置,对应结构体NET_CFG_USB_FLASH, 与通道不相关,通道号需要填成-1
  63140. NET_EM_CFG_DISPLAY_CONNECT, // 是否连接显示器配置, 对应结构体NET_CFG_DISPLAY_CONNECT, 与通道不相关,通道号需要填成-1
  63141. NET_EM_CFG_AI_PICK_DETECT, // 拾音器配置, 对应结构体 NET_CFG_AI_PICK_DETECT_INFO
  63142. NET_EM_CFG_DISABLE_LIGHTING_LINKAGE, // 撤防白光灯报警联动项配置, 对应结构体 NET_CFG_DISABLE_LIGHTING_LINKAGE_INFO, 与通道不相关,通道号需要填成-1
  63143. NET_EM_CFG_DISABLE_VOICE_LINKAGE, // 撤防语音报警联动项配置, 对应结构体 NET_CFG_DISABLE_VOICE_LINKAGE_INFO, 与通道不相关,通道号需要填成-1
  63144. NET_EM_CFG_MOTION_DETECT, // 动态检测报警配置, 对应结构体 NET_CFG_MOTION_DETECT_INFO
  63145. NET_EM_CFG_SNAP_FPS, // 抓图计划配置,对应结构体 NET_CFG_SNAP_FPS
  63146. NET_EM_CFG_STREAM_LOCK, // 拉流控制配置, 对应结构体 NET_CFG_STREAM_LOCK_INFO, 与通道不相关,通道号需要填成-1
  63147. NET_EM_CFG_CAMERA_STREAM_LOCK, // 拉流控制配置, 对应结构体 NET_CFG_CAMERA_STREAM_LOCK_INFO
  63148. NET_EM_CFG_EAR_DETECTION_CONFIG, // EAS RF款检测配置, 对应结构体 NET_CFG_EAR_DETECTION_CONFIG_INFO
  63149. NET_EM_CFG_SOUND_CONFIG, // 声音配置, 对应结构体 NET_CFG_SOUND_CONFIG_INFO
  63150. NET_EM_CFG_PASSENGER_FLOW_CONFIG, // 上下客客流预警配置, 对应结构体 NET_CFG_PASSENGER_FLOW_CONFIG_INFO
  63151. NET_EM_CFG_TRAFFIC_LAMP_CONFIG, // 时间间隔配置, 对应结构体 NET_CFG_TRAFFIC_LAMP_CONFIG_INFO, 与通道不相关,通道号需要填成-1
  63152. NET_EM_CFG_LOCAL_INFO, // 房间号、楼幢单元等信息配置, 对应结构体 NET_CFG_LOCAL_INFO
  63153. NET_EM_CFG_DISABLE_BEEP_LINKAGE, // 防蜂鸣联动项使能配置, 对应结构体 NET_CFG_DISABLE_BEEP_LINKAGE_INFO, 与通道不相关,通道号需要填成-1
  63154. NET_EM_CFG_AREA_ARM_MODE, // Area布撤防配置, 对应结构体 NET_CFG_AREA_ARM_MODE_INFO, 与通道不相关,通道号需要填成-1
  63155. NET_EM_CFG_STORE_ENCRYPT, // 录像存储加密配置, 对应结构体 NET_STORE_ENCRYPT_INFO,与通道不相关,通道号需要填成-1
  63156. NET_EM_CFG_VEHICLE_ALARM_LINK_PARAM, // 车载设备报警关联配置, 对应结构体 NET_CFG_VEHICLE_ALARM_LINK_PARAM_INFO,与通道不相关,通道号需要填成-1
  63157. NET_EM_CFG_MOBILE_PHONE_APPLICATION, // 手机push notification配置, 对应结构体 NET_CFG_MOBILE_PHONE_APPLICATION_INFO,与通道不相关,通道号需要填成-1
  63158. NET_EM_CFG_VSP_CGI, // CGI服务开关控制配置, 对应结构体 NET_CFG_VSP_CGI_INFO,与通道不相关,通道号需要填成-1
  63159. NET_EM_CFG_VSP_NTP_SERVER, // NTP Server服务开关控制配置, 对应结构体 NET_CFG_CFG_VSP_NTP_SERVER_INFO,与通道不相关,通道号需要填成-1
  63160. NET_EM_CFG_DEVICE_DISCOVERY, // 设备搜索配置, 对应结构体 NET_CFG_DEVICE_DISCOVERY_INFO,与通道不相关,通道号需要填成-1
  63161. NET_EM_CFG_LLDP_GLOBAL, // LLDPConfig 全局配置, 对应结构体 NET_CFG_LLDP_GLOBAL_INFO,与通道不相关,通道号需要填成-1
  63162. NET_EM_CFG_LOGIN_AUTH_CTRL, // 登录安全等级控制配置, 对应结构体 NET_CFG_LOGIN_AUTH_CTRL_INFO,与通道不相关,通道号需要填成-1
  63163. /*********OSD叠加相关配置*************************************************************************************************/
  63164. NET_EM_CFG_CHANNELTITLE = 1000, // 叠加通道标题属性配置,对应结构体 NET_OSD_CHANNEL_TITLE,其中结构体中的emOsdBlendType为必填参数
  63165. NET_EM_CFG_TIMETITLE, // 叠加时间标题属性配置,对应结构体 NET_OSD_TIME_TITLE,其中结构体中的emOsdBlendType为必填参数
  63166. NET_EM_CFG_CUSTOMTITLE, // 叠加自定义标题属性配置,对应结构体 NET_OSD_CUSTOM_TITLE,其中结构体中的stuCustomTitle.emOsdBlendType为必填参数
  63167. NET_EM_CFG_CUSTOMTITLETEXTALIGN, // 叠加自定义标题对齐方式属性配置,对应结构体 NET_OSD_CUSTOM_TITLE_TEXT_ALIGN
  63168. NET_EM_CFG_OSDCOMMINFO, // 叠加公共属性配置,对应结构体 NET_OSD_COMM_INFO
  63169. NET_EM_CFG_OSD_PTZZOOM, // 变倍叠加配置,对应结构体 NET_OSD_PTZZOOM_INFO
  63170. NET_EM_CFG_GPSTITLE, // 叠加GPS标题显示配置,对应结构体 NET_OSD_GPS_TITLE
  63171. NET_EM_CFG_OSD_NUMBERSTATPLAN, // 人数统计计划叠加OSD配置, 支持NumberStatPlan算法大类时(球机)使用,对应结构体NET_OSD_NUMBER_STATPLAN
  63172. NET_EM_CFG_GPSSTARNUM_OSD, // GPS搜星数OSD配置, 车载定制需求, 对应结构体 NET_CFG_GPSSTARNUM_OSD_INFO
  63173. NET_EM_CFG_PICTURETITLE, // 图片标题,对应结构体 NET_OSD_PICTURE_TITLE
  63174. NET_EM_CFG_OSD_FACEFLOWSTAT, // 目标数量统计OSD配置,对应结构体 NET_OSD_FACEFLOWSTAT_INFO
  63175. NET_EM_CFG_PTZ_PRESET, // 预置点信息叠加,对应结构体 NET_OSD_CFG_PTZ_PRESET
  63176. NET_EM_CFG_PTZ_PATTERN, // 显示巡迹百分比叠加配置,对应结构体 NET_OSD_CFG_PTZ_PATTERN
  63177. NET_EM_CFG_PTZ_RS485_DETECT, // 显示RS485检测结果的叠加配置,对应结构体 NET_OSD_CFG_PTZ_RS485_DETECT
  63178. NET_EM_CFG_PTZ_COORDINATES, // 显示云台坐标的叠加配置,对应结构体 NET_OSD_CFG_PTZ_COORDINATES
  63179. NET_EM_CFG_PTZ_DIRECTION, // 显示云台方向的叠加配置,对应结构体 NET_OSD_CFG_PTZ_DIRECTION
  63180. NET_EM_CFG_TEMPERATURE, // 显示环境温度的叠加配置,对应结构体 NET_OSD_CFG_TEMPERATURE
  63181. NET_EM_CFG_COVERS, // 区域覆盖,对应结构体 NET_OSD_CFG_COVERS
  63182. NET_EM_CFG_USER_DEF_TITLE, // 用户自定义OSD标题,对应结构体 NET_OSD_USER_DEF_TITLE DHOP专用
  63183. NET_EM_CFG_SNAP_OSD, // 抓拍OSD配置, 对应结构体 NET_CFG_SNAP_OSD
  63184. NET_EM_CFG_OBJECT_DETECT_SNAP_SHOT, // IPC物体检测(机非人)抓图叠加OSD配置, 对应结构体 NET_CFG_OBJECT_DETECT_SNAP_SHOT
  63185. /*********encode 相关配置*************************************************************************************************/
  63186. NET_EM_CFG_ENCODE_VIDEO = 1100, // 编码视频格式属性配置,对应结构体 NET_ENCODE_VIDEO_INFO
  63187. NET_EM_CFG_ENCODE_VIDEO_PACK, // 编码视频格式打包模式配置,对应结构体 NET_ENCODE_VIDEO_PACK_INFO
  63188. NET_EM_CFG_ENCODE_VIDEO_SVC, // 编码视频格式SVC配置,对应结构体 NET_ENCODE_VIDEO_SVC_INFO
  63189. NET_EM_CFG_ENCODE_VIDEO_PROFILE, // 编码视频格式profile配置,对应结构体 NET_ENCODE_VIDEO_PROFILE_INFO
  63190. NET_EM_CFG_ENCODE_AUDIO_COMPRESSION, // 编码音频压缩格式配置,对应结构体 NET_ENCODE_AUDIO_COMPRESSION_INFO
  63191. NET_EM_CFG_ENCODE_AUDIO_INFO, // 编码音频格式配置,对应结构体 NET_ENCODE_AUDIO_INFO
  63192. NET_EM_CFG_ENCODE_SNAP_INFO, // 编码抓图配置,对应结构体 NET_ENCODE_SNAP_INFO
  63193. NET_EM_CFG_ENCODE_SNAPTIME, // 编码抓图时间相关配置,对应结构体 NET_ENCODE_SNAP_TIME_INFO
  63194. NET_EM_CFG_ENCODE_CHANNELTITLE, // 通道名称配置,对应结构体 NET_ENCODE_CHANNELTITLE_INFO
  63195. NET_EM_CFG_ENCODE_DELAY_MODE, // 通道编码延时配置, 对应结构体 NET_ENCODE_DELAY_MODE_INFO
  63196. NET_EM_CFG_ENCODE_SIGNAL_FORMAT, // 通道编码信号采集模式配置,对应结构体 NET_ENCODE_SIGNAL_FORMAT_INFO
  63197. /**********音频相关配置***************************************************************************************************/
  63198. NET_EM_CFG_AUDIOIN_SOURCE = 1200, // 音频输入类型配置,对应结构体 NET_ENCODE_AUDIO_SOURCE_INFO
  63199. NET_EM_CFG_AUDIOIN_DENOISE, // 音频降噪配置,对应结构体 NET_AUDIOIN_DENOISE_INFO
  63200. NET_EM_CFG_AUDIOIN_VOLUME, // 音频输入音量配置,对应结构体 NET_AUDIOIN_VOLUME_INFO
  63201. NET_EM_CFG_AUDIOOUT_VOLUME, // 音频输出音量配置,对应结构体 NET_AUDIOOUT_VOLUME_INFO
  63202. NET_EM_CFG_AUDIOOUT_MODE, // 音频输出模式配置, 对应结构体 NET_AUDIOOUT_MODE_INFO
  63203. NET_EM_CFG_LOOPPLAYBACK_AUDIOALARM, // 音频循环播放报警配置,对应结构体 NET_LOOPPLAYBACK_AUDIOALARM_INFO,与通道不相关,通道号需要填成-1
  63204. NET_EM_CFG_REMOTE_AUDIO_OUTPUT_VOLUME, // 音频输出音量, 对应结构体 NET_CFG_REMOTE_AUDIO_OUTPUT_VOLUME_INFO
  63205. /**********videoin 相关配置***********************************************************************************************/
  63206. NET_EM_CFG_VIDEOIN_SWITCHMODE = 1300, // 切换模式配置,对应结构体 NET_VIDEOIN_SWITCH_MODE_INFO
  63207. NET_EM_CFG_VIDEOIN_COLOR, // 视频输入颜色配置,对应结构体 NET_VIDEOIN_COLOR_INFO
  63208. NET_EM_CFG_VIDEOIN_IMAGE_OPT, // 图像属性配置,对应结构体 NET_VIDEOIN_IMAGE_INFO
  63209. NET_EM_CFG_VIDEOIN_STABLE, // 图像防抖配置,对应结构体 NET_VIDEOIN_STABLE_INFO
  63210. NET_EM_CFG_VIDEOIN_IRISAUTO, // 自动光圈配置,对应结构体 NET_VIDEOIN_IRISAUTO_INFO
  63211. NET_EM_CFG_VIDEOIN_IMAGEENHANCEMENT, // 图像增强配置,对应结构体 NET_VIDEOIN_IMAGEENHANCEMENT_INFO
  63212. NET_EM_CFG_VIDEOIN_EXPOSURE_NORMAL, // 曝光通用属性配置,对应结构体 NET_VIDEOIN_EXPOSURE_NORMAL_INFO
  63213. NET_EM_CFG_VIDEOIN_EXPOSURE_OTHER, // 其他曝光属性配置,对应结构体 NET_VIDEOIN_EXPOSURE_OTHER_INFO
  63214. NET_EM_CFG_VIDEOIN_EXPOSURE_SHUTTER, // 曝光快门配置,对应结构体 NET_VIDEOIN_EXPOSURE_SHUTTER_INFO
  63215. NET_EM_CFG_VIDEOIN_BACKLIGHT, // 背光配置,对应结构体 NET_VIDEOIN_BACKLIGHT_INFO
  63216. NET_EM_CFG_VIDEOIN_INTENSITY, // 场景自适应对比度强度配置,对应结构体 NET_VIDEOIN_INTENSITY_INFO
  63217. NET_EM_CFG_VIDEOIN_LIGHTING, // 补光灯配置,对应结构体 NET_VIDEOIN_LIGHTING_INFO
  63218. NET_EM_CFG_VIDEOIN_DEFOG, // 透雾配置,对应结构体 NET_VIDEOIN_DEFOG_INFO
  63219. NET_EM_CFG_VIDEOIN_FOCUSMODE, // 聚焦模式配置,对应结构体 NET_VIDEOIN_FOCUSMODE_INFO
  63220. NET_EM_CFG_VIDEOIN_FOCUSVALUE, // 聚焦信息配置,对应结构体 NET_VIDEOIN_FOCUSVALUE_INFO
  63221. NET_EM_CFG_VIDEOIN_WHITEBALANCE, // 白平衡配置,对应结构体 NET_VIDEOIN_WHITEBALANCE_INFO
  63222. NET_EM_CFG_VIDEOIN_DAYNIGHT, // 日夜模式配置,对应结构体 NET_VIDEOIN_DAYNIGHT_INFO
  63223. NET_EM_CFG_VIDEOIN_DAYNIGHT_ICR, // 日夜模式ICR切换类型配置,对应结构体 NET_VIDEOIN_DAYNIGHT_ICR_INFO
  63224. NET_EM_CFG_VIDEOIN_SHARPNESS, // 锐度配置,对应结构体 NET_VIDEOIN_SHARPNESS_INFO
  63225. NET_EM_CFG_VIDEOIN_COMM_DENOISE, // 通用降噪配置,对应结构体 NET_VIDEOIN_DENOISE_INFO
  63226. NET_EM_CFG_VIDEOIN_3D_DENOISE, // 3D 降噪配置,对应结构体 NET_VIDEOIN_3D_DENOISE_INFO
  63227. NET_EM_CFG_VIDEOIN_FOCUSEX, // 聚焦扩展配置,对应结构体 NET_VIDEOIN_FOCUS_INFO_EX
  63228. NET_EM_CFG_VIDEOIN_LIGHTINGEX, // 补光灯配置的扩展,对应结构体 NET_VIDEOIN_LIGHTINGEX_INFO
  63229. NET_EM_CFG_VIDEOIN_VIEWRANGESTATUS, // 可视域状态信息,对应结构体 NET_CFG_VIDEOIN_VIEWRANGESTATUS_INFO
  63230. NET_EM_CFG_VIDEOIN_LIGHTING_SCHEME, // 灯光方案, 对应结构体 NET_CFG_VIDEOIN_LIGHTING_SCHEME_INFO
  63231. NET_EM_CFG_VIDEOIN_ALARM_LIGHTING, // 警戒灯光, 对应结构体 NET_CFG_VIDEOIN_ALARM_LIGHTING_INFO
  63232. NET_EM_CFG_VIDEOIN_FACE_AUTOEXPOSURE, // 智能规则检测目标,根据检测区域自动曝光, 对应结构体 NET_CFG_VIDEOIN_FACE_AUTOEXPOSURE_INFO
  63233. /***********庭审相关配置*****************************************************************************************/
  63234. NET_EM_CFG_ENCODE_PLAN = 1400, // 刻录光盘编码计划, 对应结构体 NET_ENCODE_PLAN_INFO
  63235. NET_EM_CFG_COMPOSE_CHANNEL, // 合成通道配置, 对应结构体 NET_COMPOSE_CHANNEL_INFO
  63236. NET_EM_CFG_BURN_PARAM, // 刻录参数, 对应结构体 NET_BURN_PARAM_INFO
  63237. NET_EM_CFG_COMPOSE_PLAN, // 合成通道的预案分割配置, 对应结构体 NET_COMPOSE_PLAN_INFO
  63238. /**********报警网关相关配置**************************************************************************************/
  63239. NET_EM_CFG_ALARM_SOUND = 1500, // 报警网关语音配置, 对应结构体 NET_ALARM_SOUND_INFO
  63240. NET_EM_CFG_LOCAL_EXT_ALARM = 1501, // 报警盒子配置,对应结构体 NET_LOCAL_EXT_ALARM_INFO,通道无关
  63241. NET_EM_CFG_REMOTE_ALARM_BELL = 1502, // 前端相机警号配置, 对应结构体 NET_CFG_REMOTE_ALARM_BELL_INFO
  63242. NET_EM_CFG_FIRE_WARNINGMODE = 1503, // 火灾预警模式, 对应结构体 NET_FIREWARNING_MODE_INFO
  63243. NET_EM_CFG_FIRE_WARNING = 1504, // 火灾预警配置(与火灾预警模式配置配合使用), 对应的结构体 NET_FIRE_WARNING_INFO
  63244. NET_EM_CFG_COAXIAL_ALARMLOCAL = 1506, // CVI 外部报警配置,对应结构体 NET_COAXIAL_ALARMLOCAL_INFO
  63245. /**********网络应用相关配置**************************************************************************************/
  63246. NET_EM_CFG_ACCESS_POINT = 1600, // 用于WiFi服务端配置(热点功能), 对应结构体 NET_NETAPP_ACCESSPOINT
  63247. NET_EM_CFG_LDAP, // LDAP配置, 对应结构体 NET_NETAPP_LDAP
  63248. NET_EM_CFG_SYSLOG, // Syslog协议配置, 对应结构体 NET_NETAPP_SYSLOG
  63249. NET_EM_CFG_NETAUTOADAPTTRANSIT, // 网络自适应传输配置,对应结构体NET_NETAUTOADAPTTRANSIT
  63250. NET_EM_CFG_WIRELESS, // 蜂窝网络(即俗称的3G/4G网络)的设置, 对应结构体 NET_NETAPP_WIRELESS
  63251. NET_EM_CFG_WIRELESS_EXPERT, // 蜂窝网络高级参数设置, 对应结构体 NET_NETAPP_WIRELESS_EXPERT
  63252. /**************安全基线需求**************************************************************************************/
  63253. NET_EM_CFG_NAS = 1700, // NAS 配置, 对应结构体 NET_NAS_INFO
  63254. NET_EM_CFG_PPPOE, // PPPOE 配置,对应结构体 NET_PPPOE_INFO
  63255. NET_EM_CFG_EMAIL, // Email 配置,对应结构体 NET_EMAIL_INFO
  63256. NET_EM_CFG_DDNS, // DDNS 配置,对应结构体 NET_DDNS_INFO
  63257. /**************SCADA配置需求**************************************************************************************/
  63258. NET_EM_CFG_SCADA_PROTOCOLS_MANAGER = 1800, // 协议管理配置,对应结构体 NET_SCADA_PROTOCOLS_MANAGER
  63259. NET_EM_CFG_SCADA_DEVICEINFO_CFG, // 设备信息配置,对应结构体 NET_SCADA_DEVICEINFO_CFG
  63260. NET_EM_CFG_SCADA_CONTROLLER_SITE, // 控制器配置,对应结构体 NET_CFG_SCADA_CONTROLLER_SITE_INFO
  63261. /**************NetApp配置需求*************************************************************************************/
  63262. NET_EM_CFG_NETAPP_LINK_LAYER_VPN = 1900, // 链路层VPN设置,对应结构体 NET_NETAPP_LINK_LAYER_VPN_CFG
  63263. NET_EM_CFG_NETAPP_SSHD, // SSH服务端配置,对应结构体 NET_NETAPP_SSHD_CFG
  63264. NET_EM_CFG_NETAPP_COMMUNICATION_LIST, // 通讯录配置, 对应结构体 NET_NETAPP_COMMUNICATION_LIST_CFG, 与通道不相关,通道号需要填成-1
  63265. NET_EM_CFG_NETAPP_WEB, // Web服务器设置, 对应结构体 NET_NETAPP_WEB_CFG
  63266. /**************第三方平台接入***********************************************************************************/
  63267. NET_EM_CFG_VSP_CHINA_TOWER = 2000, // (中国铁塔平台接入)安徽治超平台接入配置,对应结构体 NET_VSP_CHINA_TOWER
  63268. NET_EM_CFG_VSP_SHDXJT = 2001, // 中国电信手机看店接入配置,对应结构体 NET_VSP_SHDXJT
  63269. NET_EM_CFG_VSP_CONSUME, // 消费机配置,对应结构体 NET_CFG_VSP_CONSUME,通道无关,通道号需要填成-1
  63270. /**********智能相关配置*******************************************************************************************/
  63271. NET_EM_CFG_STEREO_CALIBRATE = 2100, // 双目标定结果, 对应结构体NET_STEREO_CALIBRATE_INFO
  63272. NET_EM_CFG_STEREO_CALIBRATEMATRIX_MULTISENSOR, // 多目相机标定配置CalibrateMatrix(MultiSensor), 对应的结构体 NET_MULTI_SENSOR_INFO
  63273. NET_EM_CFG_CROWDDISTRIMAP_CALIBRATE, // 人群分布图标定配置, 对应的结构体 NET_CROWDDISTRIMAP_CALIBRATE_INFO
  63274. NET_EM_CFG_TRAFFIC_NOPASSING, // 交通禁行配置, 对应的结构体 NET_TRAFFIC_NOPASSING_INFO
  63275. NET_EM_CFG_FIGHT_CALIBRATE, // 打架标定配置, 对应的结构体 NET_FIGHT_CALIBRATE_INFO
  63276. NET_EM_CFG_FACE_RECOGNITION_ALARM, // 目标识别联动报警通道配置, 对应结构体 NET_FACE_RECOGNITION_ALARM_INFO
  63277. NET_EM_CFG_STEREO_CALIBRATEMATRIX_MULTIMODE, // 灵瞳相机的标定方式 CalibrateMatrix(MultiMode), 对应的结构体 NET_CALIBRATEMATRIX_MULTIMODE_INFO
  63278. NET_EM_CFG_AUTO_SNAP_SCHEDULE, // 智能养殖定时抓图配置, 对应结构体 NET_CFG_AUTO_SNAP_SCHEDULE_INFO
  63279. NET_EM_CFG_PARKING_TIMEOUT_DETECT, // 停车超时检测配置, 对应结构体 NET_CFG_PARKING_TIMEOUT_DETECT
  63280. NET_EM_CFG_SMART_MOTION_DETECT, // 智能动态检测配置, 对应结构体 NET_CFG_SMART_MOTION_DETECT
  63281. NET_EM_CFG_EXTERNAL_ANALYSE_TASK_CAPS, // 外部智能做任务调度配置, 对应结构体 NET_CFG_EXTERNAL_ANALYSE_TASK_CAPS, 对应通道为-1
  63282. NET_EM_CFG_TIMEDIV_TOUR_CONFIG, // 分时轮巡模式配置 对应结构体 NET_CFG_TIMEDIV_TOUR_CONFIG_INFO 对应通道为-1
  63283. NET_EM_CFG_TRAFFIC_TOLL_GATE, // 交通卡口规则配置, 对应结构体 NET_CFG_TRAFFIC_TOLL_GATE_INFO
  63284. /**********雷达配置***********************************************************************************************/
  63285. NET_EM_CFG_RADAR = 2200, // 雷达配置,对应结构体 DEV_RADAR_CONFIG
  63286. NET_EM_CFG_RADAR_RFIDCARD = 2201, // 雷达RFID卡片信息配置,与通道不相关,通道号需要填成-1,对应结构体 NET_CFG_RADAR_RFIDCARD_INFO
  63287. NET_EM_CFG_RADAR_REMOTE_CARD = 2202, // 雷达一体机RFID遥控器卡片配置, 对应结构体 NET_CFG_RADAR_REMOTE_CARD_INFO
  63288. NET_EM_CFG_RADAR_RFID_READ_DISTANCE = 2203, // RFID识别距离配置, 对应结构体 NET_CFG_RADAR_RFID_READ_DISTANCE_INFO
  63289. NET_EM_CFG_RADAR_STATIC_BACKGROUND = 2204, // 激光雷达地图构建静态背景阈值配置, 与通道不相关,通道号需要填成-1, 对应结构体 NET_CFG_RADAR_STATIC_BACKGROUND_INFO
  63290. /**********视频对讲电话通用配置***********************************************************************************/
  63291. NET_EM_CFG_VTH_PASSWORD = 2300, // 视频对讲电话通用配置,对应结构体 NET_CFG_VTH_PASSWORD_INFO
  63292. NET_EM_CFG_REGISTAR = 2301, // 注册服务器配置,对应结构体 NET_CFG_REGISTAR_INFO
  63293. NET_EM_CFG_SIP = 2302, // sip配置, 对应结构体 NET_CFG_SIPSERVER_INFO
  63294. NET_EM_CFG_DEVICE_LOGIN_INFO = 2303, // 主门口机登陆从门口机配置 NET_CFG_DEVICE_LOGIN_INFO
  63295. /**********镜头前遮挡盖配置***************************************************************************************/
  63296. NET_EM_CFG_AELENSMASK = 2400, //镜头前遮挡盖配置,对应结构体NET_CFG_AELENSMASK_INFO
  63297. NET_EM_CFG_ULTRASONIC = 2500, //超声波配置,对应结构体NET_CFG_ULTRASONIC_INFO
  63298. /**********报警主机相关配置***************************************************************************************/
  63299. NET_EM_CFG_ARMSCHEDULE = 2600, // 报警计划配置,对应结构体 NET_CFG_ARMSCHEDULE_INFO
  63300. NET_EM_CFG_CID_REPORT = 2601, // CID联动配置, 对应结构体NET_CFG_CID_REPORT_INFO
  63301. NET_EM_CFG_VSP_HONEYWELL = 2602, // 霍尼服务器配置,对应结构体NET_CFG_VSP_HONEYWELL_INFO
  63302. NET_EM_CFG_KBUSER_PASSWORD = 2603, // 报警主机用户权限,键盘密码配置,对应结构体 NET_CFG_KBUSER_PASSWORD
  63303. /**********录像抓图功能相关配置***********************************************************************************/
  63304. NET_EM_CFG_RECORDEXTRA = 3610, // 录像辅码流录像配置, 对应结构体 NET_CFG_RECORDEXTRA_INFO
  63305. NET_EM_CFG_AUTO_RECORDBACKUP_RESTORE = 3611, // 自动录像回传配置, 对应结构体 NET_CFG_AUTORECORDBACKUPRESTORE_INFO
  63306. NET_EM_CFG_FACESNAPSHOT = 3612, // IPC智能目标抓拍配置 对应结构体 NET_CFG_FACESNAPSHOT_INFO
  63307. NET_EM_CFG_TIME_RECORDBACKUP_RESTORE = 3613, // 录像定时自动备份配置, NET_CFG_TIME_RECORDBACKUP_RESTORE_INFO; 对应通道为-1
  63308. NET_EM_CFG_RECORD_DOWNLOAD_SPEED_ALL = 3614, // 设备下载速度配置, 对应结构体 NET_CFG_RECORD_DOWNLOAD_SPEED_ALL_INFO,通道无关,通道号填-1
  63309. /**********视频诊断相关配置***************************************************************************************/
  63310. NET_EM_VIDEODIAGNOSIS_PROJECT = 3700, // 视频诊断计划配置, 对应结构体 NET_VIDEODIAGNOSIS_PROJECT_INFO
  63311. NET_EM_CFG_VIDEO_DIAGNOSIS_PROJECT_MONTH = 3701,// 按月的视频诊断计划配置, 对应结构体 NET_CFG_VIDEODIAGNOSIS_PROJECT_MONTH_INFO,对应通道为-1
  63312. /***********车载相关配置******************************************************************************************/
  63313. NET_EM_CFG_POSITIONREPORTPOLICY = 3800, // 车载GPS位置信息上报策略配置, 对应结构体 NET_CFG_POSITIONREPORTPOLICY_INFO
  63314. NET_EM_CFG_VEHICLE_WORKTIMESCHEDULE, // 车载工作计划配置,对应结构体 NET_CFG_VEHICLE_WORKTIMESCHEDULE_INFO
  63315. NET_EM_CFG_VEHICLE_LOAD, // 荷载人数配置, 对应结构体 NET_CFG_VEHICLE_LOAD_INFO
  63316. NET_EM_CFG_TICKETPRINT, // 公交打印票价, 对应结构体 NET_CFG_TICKETPRINT_INFO
  63317. NET_EM_CFG_VEHICLEAUTOMAIN, // ACC延时关机时间, 对应结构体 NET_CFG_VEHICLEAUTOMAIN_INFO
  63318. NET_EM_CFG_VEHICLENETSERVER, // 车载网络服务配置(印度BRT项目), 对应结构体 NET_CFG_VEHICLENETSERVER_INFO
  63319. NET_EM_CFG_IMSIBIND, // 车载布控球IMSI绑定配置, 对应结构体 NET_CFG_IMSIBIND_INFO
  63320. NET_EM_CFG_VEHICLE_MAINTAINCE, // 车载人员维护设置,对应结构体 NET_CFG_VEHICLE_MAINTAINCE_INFO
  63321. NET_EM_CFG_SAFETYABNORMAL_ALARM, // 安全异常报警配置, 对应结构体 NET_CFG_SAFETYABNORMAL_INFO
  63322. NET_EM_CFG_VEHICLE_COLLISION, // 撞车报警配置, 对应结构体 NET_CFG_VEHICLE_COLLISION_INFO
  63323. NET_EM_CFG_VEHICLE_TURNOVER, // 侧翻报警配置, 对应结构体 NET_CFG_VEHICLE_TURNOVER_INFO
  63324. NET_EM_CFG_VEHICLE_SUDDENTURN, // 急转弯报警配置, 对应结构体 NET_CFG_VEHICLE_SUDDENTURN_INFO
  63325. NET_EM_CFG_VEHICLE_ACCELERATION, // 急加速报警配置, 对应结构体 NET_CFG_VEHICLE_ACCELERATION_INFO
  63326. NET_EM_CFG_VEHICLE_DECELERATION, // 急减速报警配置, 对应结构体 NET_CFG_VEHICLE_DECELERATION_INFO
  63327. NET_EM_CFG_VEHICLE_ACC, // ACC 报警事件配置, 对应结构体 NET_CFG_VEHICLE_ACC_INFO
  63328. NET_EM_CFG_VEHICLE_DSMALARMCONTROL, // DSM报警控制上传配置, 对应结构体 NET_CFG_VEHICLE_DSMALARMCONTROL_INFO
  63329. NET_EM_CFG_VEHICLE_NOT_INSPECT_ALARM, // 车载未巡检报警使能状态和触发时间配置 对应结构体 NET_CFG_VEHICLE_NOT_INSPECT_ALARM_INFO 通道无关,通道号填-1
  63330. /***********门禁相关配置******************************************************************************************/
  63331. NET_EM_CFG_ACCESSCTL_BLACKLIST = 3900, // 门禁禁止名单报警配置,对应结构体 NET_CFG_ACCESSCTL_BLACKLIST
  63332. NET_EM_CFG_ACCESSCTL_BLACKLIST_LINK = 3901, // 门禁禁止名单报警联动配置,对应结构体 NET_CFG_ALARM_MSG_HANDLE
  63333. NET_EM_CFG_ACCESSCTL_SPECIALDAY_GROUP = 3902, // 门禁节假日组配置, 对应结构体 NET_CFG_ACCESSCTL_SPECIALDAY_GROUP_INFO
  63334. NET_EM_CFG_ACCESSCTL_SPECIALDAYS_SCHEDULE = 3903, // 门禁节假日计划配置, 对应结构体 NET_CFG_ACCESSCTL_SPECIALDAYS_SCHEDULE_INFO
  63335. NET_EM_CFG_ACCESSCTL_AUTH_MODE = 3904, // 在离线开门认证模式配置,对应结构体NET_CFG_ACCESSCTL_AUTH_MODE
  63336. NET_EM_CFG_ACS_FACE_RECOGNITION_SCHEME = 3905, // 门禁目标识别相关配置,对应结构体 NET_CFG_ACS_FACE_RECOGNITION_SCHEME
  63337. NET_EM_CFG_FORBIDDEN_ADVERT_PLAY = 3906, // 广告禁用时段配置, 对应结构体 NET_CFG_FORBIDDEN_ADVERT_PLAY, 通道无关,通道号填-1
  63338. NET_EM_CFG_BGY_CUSTOMERCFG = 3907, // 门禁设备当前模式配置, 对应结构体 NET_CFG_BGY_CUSTOMERCFG, 通道无关,通道号填-1
  63339. NET_EM_CFG_ACCESSCTL_KEYBINDINGINFOCFG = 3908, // 不同数字按钮对应的信息配置, 对应结构体 NET_CFG_ACCESSCTL_KEYBINDINGINFOCFG, 通道无关,通道号填-1
  63340. NET_EM_CFG_HOST_DEVICE = 3909, // 主机、从机设置配置, 对应结构体 NET_CFG_HOST_DEVICE, 通道无关,通道号填-1
  63341. NET_EM_CFG_VTH_ALPA_CLOUD = 3910, // 室内机Alpa客户云服务器配置, 对应结构体 NET_CFG_VTH_ALPA_CLOUD, 通道无关, 通道号填-1
  63342. NET_EM_CFG_VTH_FETCHINFO = 3911, // 室内机广告信息配置,对应结构体 NET_CFG_VTH_FETCHINFO, 通道无关, 通道号填-1
  63343. NET_EM_CFG_CUSTOMER_DEVICEINFO = 3912, // 门禁提供客户设置的设备信息配置, 对应结构体 NET_CFG_CUSTOMER_DEVICEINFO, 通道无关, 通道号填-1
  63344. NET_EM_CFG_BLUE_TOOTH = 3913, // 门禁蓝牙模块开门配置, 对应结构体 NET_CFG_BLUE_TOOTH, 通道无关, 通道号填-1
  63345. NET_EM_CFG_TALK_BACK = 3914, // 门禁音频对讲格式配置,对应结构体 NET_CFG_TALKBACK
  63346. NET_EM_CFG_FORNT_COVER_DISPLAY_TEXT = 3915, // 门禁待机封面文字提示信息配置 对应结构体 NET_CFG_FORNT_COVER_DISPLAY_TEXT, 通道无关, 通道号填-1
  63347. NET_EM_CFG_CITIZENPICTURECOMPARE = 3916, // 门禁目标识别相关配置,对应结构体 NET_CFG_CITIZENPICTURECOMPARE 通道无关 通道号填-1
  63348. NET_EM_CFG_VIDEOTALK_SIGNLIGHT = 3917, // 签名灯,可视对讲使用配置,对应结构体 NET_CFG_VIDEOTALK_SIGNLIGHT
  63349. NET_EM_CFG_ESD_COMMSETTING = 3918, // ESD静电仪设备通用配置 对应结构体 NET_CFG_ESD_COMMSETTING 通道无关 通道号填-1
  63350. NET_EM_CFG_BSCCUSTOM = 3919, // 门禁配置汇总 对应结构体 NET_CFG_BSCCUSTOM
  63351. NET_EM_CFG_ACCESS_FACE_RECOGNITION = 3920, // 目标识别成功后二次确认配置,对应结构体 NET_CFG_ACCESS_FACE_RECOGNITION
  63352. NET_EM_CFG_CONSUMPTION_STRATEGY = 3921, // 消费相关策略, 对应结构体 NET_CFG_CONSUMPTION_STRATEGY_INFO, 通道无关 通道号填-1
  63353. NET_EM_CFG_WIEGAND = 3922, // 韦根配置, 对应结构体 NET_CFG_WIEGAND_INFO, 通道无关 通道号填-1
  63354. NET_EM_CFG_CUSTOM_WEATHER_INFO = 3923, // 外部下发设备的天气信息配置, 对应结构体 NET_CFG_CUSTOM_WEATHER_INFO 通道无关 通道号填-1
  63355. NET_EM_CFG_HOSPITAL_LOGO = 3924, // 医院Logo配置, 用于下发医院的名称和Logo图片, 对应结构体 NET_CFG_HOSPITAL_LOGO_INFO, 通道无关,通道号填-1
  63356. NET_EM_CFG_ACCESS_DISPLAY = 3925, // 门禁设备显示配置, 对应结构体 NET_CFG_ACCESS_DISPLAY_INFO, 通道无关, 通道号填-1
  63357. NET_EM_CFG_ACCESS_CONFIG = 3926, // 门禁设备通用配置, 对应结构体 NET_CFG_ACCESS_CONFIG_INFO, 通道无关, 通道号填-1
  63358. NET_EM_CFG_ACCESSCTL_HOLIDAY_GROUP = 3927, // (工行)门禁节假日组配置, 对应结构体 NET_CFG_ACCESSCTL_HOLIDAY_GROUP_INFO 通道无关, 通道号填-1
  63359. NET_EM_CFG_ACCESSCTL_HOLIDAY_SCHEDULE = 3928, // (工行)门禁节假日表配置, 对应结构体 NET_CFG_ACCESSCTL_HOLIDAY_SCHEDULE_INFO 通道无关, 通道号填-1
  63360. NET_EM_CFG_ICBC_DOOR_PARAS = 3929, // 门禁通道配置,对应结构体NET_CFG_ICBC_DOOR_PARAS 通道无关, 通道号填-1
  63361. NET_EM_CFG_WORK_SCENE = 3930, // 门禁运行场景配置,针对设备而言 无通道概念 对应结构体NET_CFG_WORK_SCENE_INFO 通道无关, 通道号填-1
  63362. NET_EM_CFG_CUSTOMER_DEV_SETTING = 3931, // 门禁提供客户的"系统设置"配置, 对应结构体 NET_CFG_CUSTOMER_DEV_SETTING_INFO 通道无关, 通道号填-1
  63363. NET_EM_CFG_CUSTOMER_ON_DUTY_MODEL_INFO = 3932, // 门禁配置 值班人员信息配置, 对应结构体 NET_CFG_CUSTOMER_ON_DUTY_MODEL_INFO 通道无关, 通道号填-1
  63364. NET_EM_CFG_CUSTOMER_TEMP_POLICY, // 测温策略配置, 对应结构体 NET_CFG_CUSTOMER_TEMP_POLICY_INFO 通道无关, 通道号填-1
  63365. NET_EM_CFG_USER_PASS_DATA_COUNT_CLEAR = 3934, // 定期通行人数清除功能配置, 对应结构体 NET_EM_CFG_USER_PASS_DATA_COUNT_CLEAR_INFO 通道无关, 通道号填-1
  63366. NET_EM_CFG_SAMPO_SERVICE_NAME = 3935, // 用于存放平台下发的参数名称以及服务名称,对应结构体 NET_EM_CFG_SAMPO_SERVICE_NAME_INFO 通道无关, 通道号填-1
  63367. NET_EM_CFG_USER_PASS_PERMISSION = 3936, // 人员类型与对应通行权限配置,对应结构体 NET_EM_CFG_USER_PASS_PERMISSION_INFO 通道无关, 通道号填-1
  63368. NET_EM_CFG_HOSPITAL_TALK_CONFIG = 3937, // 谈话需求,对应结构体 NET_EM_CFG_HOSPITAL_TALK_CONFIG_INFO 通道无关, 通道号填-1
  63369. NET_EM_CFG_SECRET_PROJECT_CONFIG = 3938, // 涉密项目配置,对应结构体 NET_EM_CFG_SECRET_PROJECT_CONFIG_INFO 通道无关, 通道号填-1
  63370. /***********配置************************************************************************************************/
  63371. NET_EM_CFG_SERIALNOWHITETABLE = 4000, // 前端序列号允许名单下发至NVR 配置, 对应结构体 NET_CFG_SERIALNOWHITETABLE_INFO
  63372. NET_EM_CFG_LXSJ_WXJJ = 4001, // 对应结构体 NET_CFG_LXSJ_WXJJ_INFO
  63373. NET_EM_CFG_SENSOR_ALARM_GLOBAL = 4002, // 传感器报警全局配置 对应结构体 NET_CFG_SENSOR_ALARM_GLOBAL_INFO
  63374. NET_EM_CFG_SENSOR_ALARM = 4003, // 传感器报警配置 对应结构体 NET_CFG_SENSOR_ALARM_INFO
  63375. NET_EM_CFG_VSP_LXSJ = 4004, // 灵信视觉平台接入配置 对应结构体 NET_CFG_VSP_LXSJ_INFO,配置较大,建议内存new出来
  63376. NET_EM_CFG_TIMINGCAPTURE = 4005, // 定时抓拍配置 对应结构体 NET_CFG_TIMINGCAPTURE_INFO
  63377. NET_EM_CFG_WATER_MONITOR_TITLE = 4006, // 智慧水利叠加OSD配置 对应结构体 NET_CFG_WATER_MONITOR_TITLE_INFO
  63378. NET_EM_CFG_ATTENDANCE_MODEL_INFO = 4007, // 考勤模式信息,对应结构体 NET_CFG_ATTENDANCE_MODEL_INFO,通道无关,通道号填-1
  63379. NET_EM_CFG_KT_RTSP_FLAG = 4008, // RTSP的使能配置, 对应结构体 NET_CFG_KT_RTSP_FLAG_INFO ,与通道不相关,通道号需要填成-1
  63380. NET_EM_CFG_RTSP_ABORT_LIST = 4009, // 获取RTSP断线后存储到设备本地的录像列表(只有获取,没有设置), 对应结构体 NET_CFG_RTSP_ABORT_LIST_INFO ,与通道不相关,通道号需要填成-1
  63381. NET_EM_CFG_FILE_HOLD_DAYS = 4010, // 录像保存天数配置, 对应结构体NET_CFG_FILE_HOLD_DAYS_INFO
  63382. NET_EM_CFG_ACCESS_FUNCTION = 4011, // 接入功能配置, 对应结构体 NET_CFG_ACCESS_FUNCTION_INFO, 与通道不相关,通道号需要填成-1
  63383. NET_EM_CFG_RELAY_STATE = 4012, // 继电器状态配置,对应结构体 NET_CFG_RELAY_STATE_INFO
  63384. NET_EM_CFG_OSD_PLAN = 4013, // OSD 计划配置, 对应结构体 NET_CFG_OSD_PLANS_INFO
  63385. NET_EM_CFG_ENVIRONMENT_DETECT = 4014, // 平台下发天气情况到室内机, 对应结构体 NET_CFG_ENVIRONMENT_DETECT_INFO
  63386. NET_EM_CFG_AC_GZYD = 4015, // 门禁系统改造工程项目 二维码对接、人员开门时间配置、二维码密钥卡号, 对应结构体 NET_CFG_AC_GZYD_INFO
  63387. NET_EM_CFG_CARD_MNG = 4016, // 单片机兼容cpu卡和ic卡功能切换,对应结构体 NET_CFG_CARD_MNG_INFO
  63388. NET_EM_CFG_WORK_MODE = 4017, // IPC配套APP显示工作模式 对应结构体 NET_CFG_WORK_MODE_INFO
  63389. NET_EM_CFG_WATER_QUALITY_DETECTION = 4018, // 水质检测功能报警阈值设置 对应结构体 NET_CFG_WATER_QUALITY_DETECTION_INFO
  63390. NET_EM_CFG_FINANCIAL_CABINET_ALARM = 4019, // 金融业务库报警配置 对应结构体 NET_CFG_FINANCIAL_CABINET_ALARM_INFO
  63391. NET_EM_CFG_FINANCIAL_CABINET_CONFIG = 4020, // 金融业务库配置 对应结构体 NET_CFG_FINANCIAL_CABINET_CONFIG_INFO
  63392. NET_EM_CFG_NUCLEIC_ACID_RULER = 4021, // 核酸校验规则配置, 对应结构体 NET_CFG_NUCLEIC_ACID_RULER_INFO, 与通道不相关, 通道号需要填成-1
  63393. NET_EM_CFG_LEASE_RULES = 4022, // 租赁规则配置, 对应结构体 NET_CFG_LEASE_RULES_INFO, 与通道不相关, 通道号需要填成-1
  63394. /***********云操作配置************************************************************************************************/
  63395. NET_EM_CFG_CLOUDUPLOADTIME = 5000, // 配置录像上传到云服务器的时间段, 对应结构体 NET_CFG_CLOUDUPLOADTIME_INFO
  63396. /***********雷球联动配置************************************************************************************************/
  63397. //在调用 CLIENT_SetConfig 时,restart字段无效
  63398. NET_EM_CFG_RADAR_MAPPARA = 6000, // 雷达地图参数配置, 对应结构体 NET_CFG_RADAR_MAPPARA_INFO
  63399. NET_EM_CFG_RADAR_CALIBRATION = 6001, // 雷球校准配置, 对应结构体 NET_CFG_RADAR_CALIBRATION_INFO
  63400. NET_EM_CFG_RADAR_LINKSD = 6002, // 雷达联动球机使能配置, 对应结构体 NET_CFG_RADAR_LINKSD_INFO
  63401. NET_EM_CFG_RADAR_RULELINE = 6003, // 雷达规则线配置, 对应结构体 NET_CFG_RADAR_RULELINE_INFO
  63402. NET_EM_CFG_RADAR_ANALYSERULE = 6004, // 雷达报警联动配置, 对应结构体 NET_CFG_RADAR_ANALYSERULE_INFO
  63403. NET_EM_CFG_RADAR_TRACKGLOBALCONFIG = 6005, // 雷达跟踪全局配置, 对应结构体 NET_CFG_RADAR_TRACKGLOBALCONFIG_INFO
  63404. NET_EM_CFG_RADAR_RADARPARA = 6006, // 雷达功能设置, 对应结构体 NET_CFG_RADAR_RADARPARA_INFO
  63405. NET_EM_CFG_RADAR_REMOTESDLINK = 6007, // 雷达远程球机联动使能配置, 对应结构体 NET_CFG_RADAR_REMOTESDLINK_INFO
  63406. NET_EM_CFG_RADAR_RADARLINKDEVICE= 6008, // 雷达远程联动球机配置, 对应结构体 NET_CFG_RADAR_RADARLINKDEVICE_INFO
  63407. NET_EM_CFG_RADAR_MAPOSDPARA = 6009, // 雷达地图OSD叠加配置, 对应结构体 NET_CFG_RADAR_MAPOSDPARA_INFO
  63408. NET_EM_CFG_RADAR_DEVLIST = 6010, // 雷达设备列表配置, 对应结构体NET_CFG_RADAR_DEVLIST_INFO
  63409. NET_EM_CFG_RADAR_RULE_BIND_SD = 6011, // 雷达规则绑定球机配置, 对应结构体NET_CFG_RADAR_RULE_BIND_SD_INFO
  63410. NET_EM_CFG_RADAR_SCREEN_RULE = 6012, // 雷达屏幕显示规则配置, 对应结构体NET_CFG_RADAR_SCREEN_RULE_INFO
  63411. NET_EM_CFG_RADAR_ALGORITHM_PARAM = 6013, // 雷达模块算法参数配置, 对应结构体 NET_CFG_RADAR_ALGORITHM_PARAM_INFO
  63412. NET_EM_CFG_RADAR_TRACK_FREQUENCY = 6014, // 雷达轨迹上报频率配置, 对应结构体 NET_CFG_RADAR_TRACK_FREQUENCY_INFO
  63413. NET_EM_CFG_RADAR_TRACK_MOVE_MODE = 6015, // 雷球联动跟踪模式选择配置, 对应结构体 NET_CFG_CFG_RADAR_TRACK_MOVE_MODE_INFO
  63414. NET_EM_CFG_MINIRADAR_DECT_PARAM = 6016, // Mini雷达探测参数配置, 对应结构体 NET_CFG_MINIRADAR_DECT_PARAM_INFO
  63415. NET_EM_CFG_MINIRADAR_INDOOR_ALARM = 6017, // Mini雷达报警配置, 对应结构体 NET_CFG_MINIRADAR_INDOOR_ALARM_INFO
  63416. NET_EM_CFG_MINIRADAR_COMP_INFO = 6018, // Mini雷达角度补偿配置, 对应结构体 NET_CFG_MINIRADAR_COMP_INFO
  63417. NET_EM_CFG_MINIRADAR_INSTALL_INFO = 6019, // Mini雷达安装信息配置, 对应结构体 NET_CFG_MINIRADAR_INSTALL_INFO
  63418. NET_EM_CFG_MINIRADAR_REGION_DETECT = 6020, // Mini雷达探测区域配置, 对应结构体 NET_CFG_MINIRADAR_REGION_DETECT_INFO
  63419. NET_EM_CFG_MINIRADAR_SCREEN_CONFIG = 6021, // Mini雷达外接广告机配置, 对应结构体 NET_CFG_MINIRADAR_SCREEN_CONFIG_INFO
  63420. /***********云台相关配置************************************************************************************************/
  63421. NET_EM_CFG_PTZ_SPEED = 7000, // 云台速度配置 对应结构体 NET_CFG_PTZ_SPEED
  63422. NET_EM_CFG_PTZ_HORIZONTAL_ROTATION_GROUP_SCAN = 7001, // 云台水平旋转组扫描 对应结构体 NET_CFG_HORIZONTAL_ROTATION_GROUP_SCAN_INFO
  63423. NET_EM_CFG_AUTOSCAN = 7002, // 自动线扫设置 对应结构体 NET_CFG_AUTOSCAN_INFO
  63424. NET_EM_CFG_INTELLI_TOUR = 7003, // 巡航组配置 对应结构体 NET_CFG_INTELLI_TOUR
  63425. NET_EM_CFG_AUTO_PATTERN = 7004, // 自动巡迹设置, 对应结构体 NET_CFG_AUTO_PATTERN_INFO
  63426. NET_EM_CFG_PTZ_DIRECTION_CORRECT = 7005, // 保存矫正角度配置,对应结构体 NET_CFG_PTZ_DIRECTION_CORRECT_INFO
  63427. NET_EM_CFG_RAIN_FALL_CONFIG = 7006, // 雨量筒信息配置(对应结构体 NET_CFG_RAIN_FALL_CONFIG_INFO)
  63428. /***********乐橙摄像头定制配置************************************************************************************************/
  63429. NET_EM_CFG_CASCADE_LIGHT = 8000, // NVR级联控制IPC灯光, 对应结构体 NET_CFG_CASCADE_LIGHT_INFO
  63430. NET_EM_CFG_LE_SMARTTRACK = 8001, // 乐橙简易智能追踪, 对应结构体 NET_CFG_LE_SMARTTRACK_INFO
  63431. NET_EM_CFG_LE_LENS_MASK = 8002, // 乐橙镜头遮挡配置, 对应结构体 NET_CFG_LE_LENS_MASK_INFO
  63432. /***********第三方配置************************************************************************************************/
  63433. NET_EM_CFG_VSP_PAAS = 9000, // 乐橙云注册配置修改, 对应结构体 NET_CFG_VSP_PAAS_INFO
  63434. NET_EM_CFG_VSP_GAYS_SERVER = 9001, // 公安一所平台接入配置(国标服务端),对应结构体 NET_CFG_VSP_GAYS_SERVER_INFO,对应通道为-1
  63435. NET_EM_CFG_VSP_CO_SIGN_SERVER = 9002, // 协同签名服务器配置,对应结构体NET_CFG_VSP_CO_SIGN_SERVER_INFO,对应通道为-1
  63436. NET_EM_CFG_VSP_GAVI = 9003, // 公安视频图像信息应用系统接入配置,对应结构体 NET_CFG_VSP_GAVI_INFO,对应通道为-1
  63437. NET_EM_CFG_VSP_ONVIF = 9004, // ONVIF服务配置, 对应结构体 NET_CFG_VSP_ONVIF_INFO, 对应通道为-1
  63438. NET_EM_CFG_VSP_LRLXXF_MODULE = 9005, // 目标离线消费基本配置, 对应结构体 NET_CFG_VSP_LRLXXF_MODULE_INFO, 对应通道为-1
  63439. NET_EM_CFG_VSP_LRLXXF_CUSTOM = 9006, // 目标离线消费个性化配置, 对应结构体 NET_CFG_VSP_LRLXXF_CUSTOM_INFO, 对应通道为-1
  63440. NET_EM_CFG_VSP_TERMINAL_REGISTER_INFO, // 终端注册到视频会议服务器的配置, 对应结构体 NET_CFG_VSP_TERMINAL_REGISTER_INFO, 对应通道为-1
  63441. /***********道闸配置**************************************************************************************************/
  63442. NET_EM_CFG_TRAFFICSTROBE = 9100, // 道闸配置, 对应结构体 NET_CFG_TRAFFICSTROBE_INFO
  63443. /***********LED屏配置************************************************************************************************/
  63444. NET_EM_CFG_LED_TEXT = 9200, // LED屏显示配置, 对应结构体 NET_CFG_LED_TEXT
  63445. NET_EM_CFG_LED_TEXT_ARRAY = 9201, // LED屏显示批量配置, 对应结构体 NET_CFG_LED_TEXT_ARRAY
  63446. /***********布撤防配置************************************************************************************************/
  63447. NET_EM_CFG_DISABLE_LINKAGE = 9300, // 一键撤防配置,对应结构体 NET_CFG_DISABLE_LINKAGE, 与通道不相关,通道号需要填成-1
  63448. NET_EM_CFG_DISABLE_LINKAGE_TIME_SECTION = 9301, // 周期撤防联动项功能总开关, 对应结构体 NET_CFG_DISABLE_LINKAGE_TIME_SECTION, 与通道不相关,通道号需要填成-1
  63449. NET_EM_CFG_REMOTE_DISABLE_LINKAGE = 9302, // 远程撤防联动项功能总开关, 对应结构体 NET_CFG_REMOTE_DISABLE_LINKAGE_INFO
  63450. NET_EM_CFG_REMOTE_DISABLE_LINKAGE_TIME_SECTION_SYNC = 9303, // 远程通道是否同步本地端"周期一键布撤防"配置, 对应结构体 NET_CFG_REMOTE_DISABLE_LINKAGE_TIME_SECTION_SYNC_INFO, 与通道不相关,接口通道号需要填成-1
  63451. /***********矩阵相关配置************************************************************************************************/
  63452. NET_EM_CFG_MATRIX_NETKBDFASTCTRL = 9400, // 网络键盘快速控制配置, 对应结构体 NET_CFG_MATRIX_NETKBDFASTCTRL_INFO
  63453. /***********Vedio相关配置************************************************************************************************/
  63454. NET_EM_CFG_VIDEO_CHANNEL_LABEL = 9600, // 存放保密室代码和名称, 对应结构体 NET_CFG_VIDEO_CHANNEL_LABEL_INFO
  63455. NET_EM_CFG_VIDEO_IMAGE_CTRL = 9601, // 图像旋转设置能力配置 ,对应结构体 NET_EM_CFG_VIDEO_IMAGE_CTRL_INFO
  63456. /***********Traffic相关配置***************************************************************************************************/
  63457. NET_EM_CFG_TRAFFIC_LATTICE_SCREEN = 10000, // 点阵屏显示信息配置, 对应结构体 NET_CFG_TRAFFIC_LATTICE_SCREEN_INFO
  63458. NET_EM_CFG_TRAFFIC_VOICE_BROADCAST = 10001, // 智能交通语音播报配置, 对应结构体 NET_CFG_TRAFFIC_VOICE_BROADCAST_INFO
  63459. NET_EM_CFG_SCENE_SNAP_SHOT_WITH_RULE2= 10002, // 场景抓拍设置, 对应结构体 NET_CFG_SCENE_SNAP_SHOT_WITH_RULE2_INFO
  63460. NET_EM_CFG_TRAFFIC_PARKING_SNAP_TIMER, // 停车场景定时抓拍配置信息, 对应结构体 NET_CFG_TRAFFIC_PARKING_SNAP_TIMER_INFO, 与通道不相关,通道号需要填成-1
  63461. NET_EM_CFG_VEHICLE_INFO = 10004, // 车辆信息配置, 对应结构体 NET_CFG_VEHICLE_INFO, 与通道不相关,通道号需要填成-1
  63462. NET_EM_CFG_VEHICLE_WORK_MODE = 10005, // 车辆工作模式配置, 对应结构体 NET_CFG_VEHICLE_WORK_MODE, 与通道不相关,通道号需要填成-1
  63463. /***********DoorBell门铃相关配置******************************************************************************************/
  63464. NET_EM_CFG_DOORBELL_EXTERNALDOORBELL = 11000, // 外接门铃配置,对应结构体 NET_CFG_DOORBELL_EXTERNALDOORBELL, 与通道不相关,通道号需要填成-1
  63465. /***********热成像相关配置******************************************************************************************/
  63466. NET_EM_CFG_HOT_COLD_SPOT_WARNING = 1505, // 热冷点报警配置, 对应的结构体 NET_HOT_COLD_SPOT_WARNING_INFO
  63467. NET_EM_CFG_SENSOR_MAINTAIN = 11100, // 热成像机芯维护配置,对应结构体 NET_CFG_SENSOR_MAINTAIN
  63468. NET_EM_CFG_TILT_LIMIT = 11101, // 激光测距俯仰角限制,对应结构体 NET_CFG_TILT_LIMIT
  63469. NET_EM_CFG_RADIO_REGULATOR = 11102, // 人体测温标准黑体配置, 对应结构体 NET_CFG_RADIO_REGULATOR,通道号不能为-1
  63470. NET_EM_CFG_HUMAN_THERM_CALIBRATE = 11103,// 人体测温标定信息, 对应结构体 NET_CFG_HUMAN_THERM_CALLBRATE_INFO ,通道号必须是-1
  63471. NET_EM_CFG_TELESCOPE_OPTIONS = 11104, // 望远镜配置,对应结构体 NET_CFG_TELESCOPE_OPTIONS_INFO
  63472. NET_EM_CFG_ENVIRONMENT_THERM_INFO = 11105, // 环境温度信息(热成像内部配置,只可读,不可设),通道号需要填热成像通道号 对应结构体 NET_CFG_ENVIRONMENT_THERM_INFO
  63473. NET_EM_CFG_THERMOMETRY_SHIELD = 11106, // 测温屏蔽区配置 对应结构体 NET_CFG_THERMOMETRY_SHIELD_INFO
  63474. /***********坐席系统相关配置******************************************************************************************/
  63475. NET_EM_CFG_KVM_MAIN_NODE = 12000, // 键盘显示器鼠标节点配置,对应结构体 NET_CFG_KVM_MAIN_NODE
  63476. NET_EM_CFG_KVM_HOT_KEY = 12001, // 键盘显示器鼠标热键配置,对应结构体 NET_CFG_KVM_HOT_KEY
  63477. NET_EM_CFG_KM_TRANS_ENCRYPT = 12002, // 键盘鼠标加密配置,对应结构体 NET_CFG_KM_TRANS_ENCRYPT
  63478. NET_EM_CFG_NET_TV_DEVICE = 12003, // 网络解码设备配置,对应结构体 NET_CFG_NET_TV_DEVICE
  63479. /***********录播默认配置******************************************************************************************/
  63480. NET_EM_CFG_COURSE_RECORD_DEFAULT_CONFIG = 12100, // 录播默认配置, 对应结构体 NET_CFG_COURSE_RECORD_DEFAULT_CONFIG
  63481. NET_EM_CFG_COURSE_RECORD_UPLOAD = 12101, // 录播设备支持录像文件上传配置, 对应结构体 NET_CFG_COURSE_RECORD_UPLOAD
  63482. NET_EM_CFG_COURSE_RECORD_EX = 12102, // 录像计划扩展配置,跟StorageScheduleGlobal配置关联, 对应结构体NET_CFG_COURSE_RECORD_EX
  63483. /***********AroundWifi相关配置******************************************************************************************/
  63484. NET_EM_CFG_WIFI_INSTALL_PARAM = 12200, // Wifi设备安装配置, 对应结构体 NET_CFG_WIFI_INSTALL_PARAM, 与通道不相关,通道号需要填成-1
  63485. /***********硬盘相关配置******************************************************************************************/
  63486. NET_EM_CFG_STORAGE_HEALTH_ABNORMAL = 12300, // 硬盘健康异常配置, 对应结构体 NET_CFG_STORAGE_HEALTH_ABNORMAL, 与通道不相关,通道号需要填成-1
  63487. NET_EM_CFG_STORAGE_GLOBAL = 12301, // 存储组件全局配置, 对应结构体 NET_CFG_STORAGE_GLOBAL, 与通道不相关,通道号需要填成-1
  63488. NET_EM_CFG_NAS_DIRECTORY = 12302, // 共享文件夹信息配置, 对应结构体 NET_CFG_NAS_DIRECTORY
  63489. NET_EM_CFG_DISK_FIRMWARE_INFO = 12303, // 硬盘固件信息, 对应结构体 NET_CFG_DISK_FIRMWARE_INFO, 与通道不相关,通道号需要填成-1
  63490. /***********lora 网关相关配置******************************************************************************************/
  63491. NET_EM_CFG_LORA_GATEWAY_BASIC = 12400, // Lora网关设备基本配置, 对应结构体 NET_CFG_LORA_GATEWAY_BASIC
  63492. NET_EM_CFG_LORA_GATEWAY_ACCESS = 12401, // Lora网关接入配置, 对应结构体 NET_CFG_LORA_GATEWAY_ACCESS
  63493. NET_EM_CFG_LORA_GATEWAY_RADIO = 12402, // Lora网关射频参数, 对应结构体 NET_CFG_LORA_GATEWAY_RADIO
  63494. /***********室内机门口机相关配置******************************************************************************************/
  63495. NET_EM_CFG_VTS_INFO = 12500, // 管理机列表配置, 对应结构体 NET_CFG_VTS_INFO, 与通道不相关,通道号需要填成-1
  63496. NET_EM_CFG_HOSPITAL_BACKLIGHT_PLAN, // 医院背光计划配置, 对应结构体 NET_CFG_HOSPITAL_BACKLIGHT_PLAN, 与通道不相关, 通道号需要填成-1
  63497. NET_EM_CFG_HOSPITAL_INTRODUCE, // 医院/科室介绍信息配置, 对应结构体 NET_CFG_HOSPITAL_INTRODUCE_INFO, 与通道不相关, 通道号需要填成-1
  63498. NET_EM_CFG_HOSPITAL_CHECKLIST, // 医院检查/费用病人清单配置, 对应结构体 NET_CFG_HOSPITAL_CHECKLIST_INFO, 与通道不相关, 通道号需要填成-1
  63499. NET_EM_CFG_HOSPITAL_MEDIA_INFO, // 医院健康宣教视频媒体点播协议配置, 对应结构体 NET_CFG_HOSPITAL_MEDIA_INFO, 与通道不相关, 通道号需要填成-1
  63500. NET_EM_CFG_VTS_BASIC_INFO, // VTS基本配置, 对应结构体 NET_CFG_VTS_BASIC_INFO, 与通道不相关,通道号需要填成-1
  63501. /***********声音配置******************************************************************************************/
  63502. NET_EM_CFG_SOUND = 12600, // 声音配置, 对应结构体 NET_CFG_SOUND
  63503. NET_EM_CFG_VOICE_PLAY_PLAN, // 语音时间预案配置, 对应结构体 NET_CFG_VOICE_PLAY_PLAN,与通道无关, 通道号需填成-1
  63504. NET_EM_CFG_SMART_SOUND_DETECT, // 声音检测配置,对应结构体NET_CFG_SMART_SOUND_DETECT,下标对应音频通道号
  63505. /***********串口相关配置******************************************************************************************/
  63506. NET_EM_CFG_DHRS = 12700, // 485串口协议设备配置, 对应结构体 NET_CFG_DHRS
  63507. /***********广告播放相关配置******************************************************************************************/
  63508. NET_EM_CFG_ADVERT_PLAY_RULE = 12800, // 广告播放的属性设置, 对应结构体 NET_CFG_ADVERT_PLAY_RULE, 与通道无关, 通道号需填成-1
  63509. /***********安检相关配置******************************************************************************************/
  63510. NET_EM_CFG_XRAY_UPLOAD_PLATFORM = 12900, // 安检服务器上传平台的物品类别设置, 对应结构体 NET_CFG_XRAY_UPLOAD_PLATFORM, 与通道无关, 通道号需填成-1
  63511. NET_EM_CFG_XRAY_OVERLAY = 12901, // X光机预览叠加配置, 对应结构体 NET_CFG_XRAY_OVERLAY_INFO, 与通道无关, 通道号需填成-1
  63512. /***********项目相关配置******************************************************************************************/
  63513. NET_EM_CFG_COURSE_INFO = 13000, // 考试科目配置, 对应结构体NET_CFG_COURSE_INFO, 与通道无关, 通道号需填成-1
  63514. NET_EM_CFG_EXAMINATION_ROOM_INFO, // 考场配置, 对应结构体NET_CFG_EXAMINATION_ROOM_INFO, 与通道无关, 通道号需填成-1
  63515. NET_EM_CFG_RECORD_NAME_RULE_INFO, // 文件目录、文件名规则配置, 对应结构体NET_CFG_RECORD_NAME_RULE_INFO, 与通道无关, 通道号需填成-1
  63516. NET_EM_CFG_REDUNDANT_STORAGE_STRATEGY, // 冗余录像存储策略配置, 对应结构体 NET_CFG_REDUNDANT_STORAGE_STRATEGY_INFO, 与通道无关, 通道号需填成-1
  63517. NET_EM_CFG_RECORD_SHORTAGE_ALARM, // 录像不足配置天数报警配置,对应结构体 NET_CFG_RECORD_SHORTAGE_ALARM_INFO
  63518. NET_EM_CFG_KVM_CONTROL_DATA_MODE, // KVM远程控制数据模式配置,对应结构体 NET_CFG_KVM_CONTROL_DATA_MODE_INFO, 与通道无关, 通道号需填成-1
  63519. NET_EM_CFG_PRIVACY_FACEID, // 隐私保护的目标ID列表配置,对应结构体 NET_CFG_PRIVACY_FACEID_INFO, 与通道无关, 通道号需填成-1
  63520. NET_EM_CFG_CHANG_BAI_VEHICLE_PROHIBITED, // 支持平台下发禁行时间配置,对应结构体 NET_CFG_CHANG_BAI_VEHICLE_PROHIBITED_INFO, 与通道无关, 通道号需填成-1
  63521. NET_EM_CFG_TUXI_SN_ACCESS_TABLE, // NVR允许接入IPC配置, 对应结构体 NET_CFG_TUXI_SN_ACCESS_TABLE_INFO, 与通道无关, 通道号需填成-1
  63522. NET_EM_CFG_ATTENDANCECFG_XL_CUSTOM, // 考勤配置, 对应结构体 NET_CFG_ATTENDANCECFG_XL_CUSTOM_INFO, 与通道无关, 通道号需填成-1
  63523. /***********信号机相关配置******************************************************************************************/
  63524. NET_EM_CFG_RTSC_SCH_CROSSLIST = 14000, // 路口数据列表配置, 对应结构体NET_CFG_RTSC_SCH_CROSSLIST_INFO, 与通道无关, 通道号需填成-1
  63525. NET_EM_CFG_RTSC_SCH_CHANNELS, // 通道表, 对应结构体NET_CFG_RTSC_SCH_CHANNELS_INFO
  63526. NET_EM_CFG_RTSC_SCH_PLANS, // 周期方案表, 对应结构体NET_CFG_RTSC_SCH_PLANS_INFO, 与通道无关, 通道号需填成-1
  63527. NET_EM_CFG_RTSC_SCH_MANAGE, // 红绿灯调度计划列表, 对应结构体 NET_CFG_RTSC_SCH_MANAGE_INFO, 与通道无关, 通道号需填成-1
  63528. NET_EM_CFG_RTSC_SCH_VEHICLE_DETECTORLIST, // 检测器列表,对应结构体 NET_CFG_RTSC_SCH_VEHICLE_DETECTORLIST_INFO, 与通道无关, 通道号需填成-1
  63529. NET_EM_CFG_RTSC_SCH_PEDDETECTOR_LIST, // 行人检测器列表,对应结构体 NET_CFG_RTSC_SCH_PEDDETECTOR_LIST_INFO, 与通道无关, 通道号需填成-1
  63530. NET_EM_CFG_RTSC_SCH_PEDDESTRAIN_PRIORITY, // 行人优先智能化配置,对应结构体 NET_CFG_RTSC_SCH_PEDDESTRAIN_PRIORITY_INFO, 与通道无关, 通道号需填成-1
  63531. NET_EM_CFG_RTSC_SCH_OVERFLOW_CONTROL, // 溢出控制列表,对应结构体 NET_CFG_RTSC_SCH_OVERFLOW_CONTROL_INFO, 与通道无关, 通道号需填成-1
  63532. NET_EM_CFG_RTSC_SCH_NIGHTASK, // 夜间请求,对应结构体 NET_CFG_RTSC_SCH_NIGHTASK_INFO, 与通道无关, 通道号需填成-1
  63533. NET_EM_CFG_RTSC_SCH_OPTIMIZES, // 饱和度与单点自适应智能化配置,对应结构体 NET_CFG_RTSC_SCH_OPTIMIZES_INFO, 与通道无关, 通道号需填成-1
  63534. NET_EM_CFG_RTSC_SCH_VARLANELIST, // 可变车道列表,对应结构体 NET_CFG_RTSC_SCH_VARLANELIST_INFO, 与通道无关, 通道号需填成-1
  63535. NET_EM_CFG_RTSC_SCH_VARLANE_MANAGEMENT, // 可变车道调度计划列表,对应结构体 NET_CFG_RTSC_SCH_VARLANE_MANAGEMENT_INFO, 与通道无关, 通道号需填成-1
  63536. NET_EM_CFG_RTSC_TEMP_SCH, // 临时方案配置,对应结构体 NET_CFG_RTSC_TEMP_SCH_INFO, 与通道无关, 通道号需填成-1
  63537. /******************************************************************************************************************/
  63538. /***********EAS相关配置******************************************************************************************/
  63539. NET_EM_CFG_EAS_SYSTEM_CONFIG = 14500, // EAS设备配置信息, 对应结构体 NET_CFG_EAS_SYSTEM_CONFIG_INFO
  63540. NET_EM_CFG_EAS_COIL_SWITH, // EAS设备天线开关, 对应结构体 NET_CFG_EAS_COIL_SWITH_INFO
  63541. /******************************************************************************************************************/
  63542. } NET_EM_CFG_OPERATE_TYPE;
  63543. //////////////////////////////////////////////////////////////////////
  63544. /// RPC方法名
  63545. //////////////////////////////////////////////////////////////////////
  63546. #define RPC_METHOD_MONITORWALL_ADD "monitorWallManager.addMonitorWall" // 添加电视墙
  63547. /***********************************************************************
  63548. ** 回调函数定义
  63549. ***********************************************************************/
  63550. ///@brief 网络连接断开回调函数原形
  63551. typedef void (CALLBACK *fDisConnect)(LLONG lLoginID, char *pchDVRIP, LONG nDVRPort, LDWORD dwUser);
  63552. ///@brief 网络连接恢复回调函数原形
  63553. typedef void (CALLBACK *fHaveReConnect)(LLONG lLoginID, char *pchDVRIP, LONG nDVRPort, LDWORD dwUser);
  63554. ///@brief 动态子连接断开回调函数原形
  63555. typedef void (CALLBACK *fSubDisConnect)(EM_INTERFACE_TYPE emInterfaceType, BOOL bOnline, LLONG lOperateHandle, LLONG lLoginID, LDWORD dwUser);
  63556. ///@brief 视频预览断开回调函数原形, (param内存由SDK内部申请释放 )
  63557. typedef void (CALLBACK *fRealPlayDisConnect)(LLONG lOperateHandle, EM_REALPLAY_DISCONNECT_EVENT_TYPE dwEventType, void* param, LDWORD dwUser);
  63558. ///@brief 实时预览数据回调函数原形(pBuffer内存由SDK内部申请释放)
  63559. // 通过 dwDataType 过滤得到对应码流,具体码流类型请参考 EM_REALDATA_FLAG; 转码流时 dwDataType 值请参考 NET_DATA_CALL_BACK_VALUE 说明
  63560. typedef void (CALLBACK *fRealDataCallBack)(LLONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  63561. ///@brief 实时预览数据回调函数原形--扩展(pBuffer内存由SDK内部申请释放)
  63562. // 通过 dwDataType 过滤得到对应码流,具体码流类型请参考 EM_REALDATA_FLAG; 转码流时 dwDataType 值请参考 NET_DATA_CALL_BACK_VALUE 说明
  63563. typedef void (CALLBACK *fRealDataCallBackEx)(LLONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LONG param, LDWORD dwUser);
  63564. ///@brief 实时预览数据回调函数原形--扩展(pBuffer内存由SDK内部申请释放)
  63565. // 通过 dwDataType 过滤得到对应码流,具体码流类型请参考 EM_REALDATA_FLAG; 转码流时 dwDataType 值请参考 NET_DATA_CALL_BACK_VALUE 说明
  63566. // 当转码流时,param 为具体的转码信息(视频帧、音频帧等信息),对应结构体 NET_STREAMCONVERT_INFO
  63567. typedef void (CALLBACK *fRealDataCallBackEx2)(LLONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LLONG param, LDWORD dwUser);
  63568. ///@brief 屏幕叠加回调函数原形
  63569. typedef void (CALLBACK *fDrawCallBack)(LLONG lLoginID, LLONG lPlayHandle, HDC hDC, LDWORD dwUser);
  63570. ///@brief 按时间回放进度回调函数原形
  63571. typedef void (CALLBACK *fTimeDownLoadPosCallBack) (LLONG lPlayHandle, DWORD dwTotalSize, DWORD dwDownLoadSize, int index, NET_RECORDFILE_INFO recordfileinfo, LDWORD dwUser);
  63572. ///@brief 按时间回放进度回调函数原形的扩展
  63573. typedef void (CALLBACK *fTimeDownLoadPosCallBackEx) (LLONG lPlayHandle, DWORD dwTotalSize, DWORD dwDownLoadSize, int index, NET_RECORDFILE_INFOEX recordfileinfoEx, LDWORD dwUser);
  63574. ///@brief 消息回调函数原形(pBuf内存由SDK内部申请释放)
  63575. typedef BOOL (CALLBACK *fMessCallBack)(LONG lCommand, LLONG lLoginID, char *pBuf, DWORD dwBufLen, char *pchDVRIP, LONG nDVRPort, LDWORD dwUser);
  63576. ///@brief 新增参数说明
  63577. // bAlarmAckFlag : TRUE,该事件为可以进行确认的事件;FALSE,该事件无法进行确认
  63578. // nEventID 用于对 CLIENT_AlarmAck 接口的入参进行赋值,当 bAlarmAckFlag 为 TRUE 时,该数据有效
  63579. // pBuf内存由SDK内部申请释放
  63580. typedef BOOL (CALLBACK *fMessCallBackEx1)(LONG lCommand, LLONG lLoginID, char *pBuf, DWORD dwBufLen, char *pchDVRIP, LONG nDVRPort, BOOL bAlarmAckFlag, LONG nEventID, LDWORD dwUser);
  63581. ///@brief 报警上报数据
  63582. typedef struct tagNET_MESSAGE_CALLBACK_INFO
  63583. {
  63584. int nAlarmType; // 报警类型,如 DH_ALARM_ACCESS_CTL_EVENT,同 fMessCallBack、fMessCallBackEx1 中的 lCommand 字段
  63585. BYTE byReserved1[4]; // 字节对齐
  63586. LLONG lLoginID; // 登录句柄
  63587. char* pBuf; // 数据缓存区(SDK申请释放),使用者根据 lCommand 转换为相应结构体,如 ALARM_ACCESS_CTL_EVENT_INFO
  63588. DWORD dwBufLen; // pBuf 长度
  63589. BOOL bAlarmAckFlag; // TRUE,该事件为可以进行确认的事件;FALSE,该事件无法进行确认
  63590. char* pszIP; // 设备IP
  63591. int nPort; // 设备端口
  63592. int nEventID; // 事件ID
  63593. BOOL bRestoreEvent; // 是否是重传数据
  63594. BYTE byReserved[1020]; // 预留字节
  63595. }NET_MESSAGE_CALLBACK_INFO;
  63596. ///@brief 消息回调函数原形
  63597. // dwUser 用户自定义数据
  63598. typedef BOOL (CALLBACK *fMessCallBackEx2)(NET_MESSAGE_CALLBACK_INFO* pInfo, LDWORD dwUser);
  63599. ///@brief 侦听服务器回调函数原形
  63600. typedef int (CALLBACK *fServiceCallBack)(LLONG lHandle, char *pIp, WORD wPort, LONG lCommand, void *pParam, DWORD dwParamLen, LDWORD dwUserData);
  63601. ///@brief 语音对讲的音频数据回调函数原形(pDataBuf内存由SDK内部申请释放)
  63602. // 当byAudioFlag为2时,pDataBuf表示为不带头的PCM数据,首先将回调中byAudioFlag为1时的数据通过CLIENT_AudioDec接口发送,再通过byAudioFlag为2时将数据回调给用户
  63603. typedef void (CALLBACK *pfAudioDataCallBack)(LLONG lTalkHandle, char *pDataBuf, DWORD dwBufSize, BYTE byAudioFlag, LDWORD dwUser);
  63604. ///@brief fAudioDataCallBackEx 回调音频信息
  63605. typedef struct tagNET_AUDIO_DATA_CB_INFO
  63606. {
  63607. BYTE* pBuf; // 带音频头的音频数据
  63608. DWORD dwBufSize; // 带音频头的音频数据长度
  63609. DH_TALK_CODING_TYPE emAudioCode; // 音频编码格式
  63610. BYTE* pRawBuf; // 不带音频头的音频裸数据
  63611. DWORD dwRawBufSize; // 不带音频头的音频数据长度
  63612. int nAudioBit; // 位数,如8或16等
  63613. DWORD dwSampleRate; // 采样率,如8000或16000等
  63614. BYTE bReserved[256]; // 预留字节
  63615. }NET_AUDIO_DATA_CB_INFO;
  63616. ///@brief 音频数据来源
  63617. typedef enum tagEM_AUDIO_SOURCE_FLAG
  63618. {
  63619. EM_AUDIO_SOURCE_FLAG_UNKNOWN = -1, // 未知状态
  63620. EM_AUDIO_SOURCE_FLAG_LOCAL = 0, // 本地录音数据,可以发送给设备
  63621. EM_AUDIO_SOURCE_FLAG_REMOTE = 1, // 远程音频数据,即从设备接收到音频数据
  63622. }EM_AUDIO_SOURCE_FLAG;
  63623. ///@brief 语音对讲的音频数据回调函数原形
  63624. typedef void (CALLBACK *fAudioDataCallBackEx)(LLONG lTalkHandle, NET_AUDIO_DATA_CB_INFO* stAudioInfo, EM_AUDIO_SOURCE_FLAG emAudioFlag, LDWORD dwUser);
  63625. ///@brief 升级设备程序回调函数原形
  63626. // nTotalSize = 0, nSendSize = -1 表示升级完成
  63627. // nTotalSize = 0, nSendSize = -2 表示升级出错
  63628. // nTotalSize = 0, nSendSize = -3 用户没有权限升级
  63629. // nTotalSize = 0, nSendSize = -4 升级程序版本过低
  63630. // nTotalSize = 0, nSendSize = -5 备份过程中,暂时无法升级
  63631. // nTotalSize = -1, nSendSize = XX 表示升级进度
  63632. // nTotalSize = XX, nSendSize = XX 表示升级文件发送进度
  63633. typedef void (CALLBACK *fUpgradeCallBack) (LLONG lLoginID, LLONG lUpgradechannel, int nTotalSize, int nSendSize, LDWORD dwUser);
  63634. ///@brief 升级设备程序回调函数原形支持G以上升级文件
  63635. // nTotalSize = 0, nSendSize = -1 表示升级完成
  63636. // nTotalSize = 0, nSendSize = -2 表示升级出错
  63637. // nTotalSize = 0, nSendSize = -3 用户没有权限升级
  63638. // nTotalSize = 0, nSendSize = -4 升级程序版本过低
  63639. // nTotalSize = 0, nSendSize = -5 备份过程中,暂时无法升级
  63640. // nTotalSize = -1, nSendSize = XX 表示升级进度
  63641. // nTotalSize = XX, nSendSize = XX 表示升级文件发送进度
  63642. typedef void (CALLBACK *fUpgradeCallBackEx) (LLONG lLoginID, LLONG lUpgradechannel, INT64 nTotalSize, INT64 nSendSize, LDWORD dwUser);
  63643. ///@brief 透明串口回调函数原形(pBuffer内存由SDK内部申请释放)
  63644. typedef void (CALLBACK *fTransComCallBack) (LLONG lLoginID, LLONG lTransComChannel, char *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  63645. ///@brief 查询设备日志数据回调函数原形(pBuffer内存由SDK内部申请释放)
  63646. typedef void (CALLBACK *fLogDataCallBack)(LLONG lLoginID, char *pBuffer, DWORD dwBufSize, DWORD nTotalSize, BOOL bEnd, LDWORD dwUser);
  63647. ///@brief 抓图回调函数原形(pBuf内存由SDK内部申请释放)
  63648. // EncodeType 编码类型,10:表示jpeg图片 0:mpeg4的i帧
  63649. typedef void (CALLBACK *fSnapRev)(LLONG lLoginID, BYTE *pBuf, UINT RevLen, UINT EncodeType, DWORD CmdSerial, LDWORD dwUser);
  63650. ///@brief GPS信息订阅回调
  63651. typedef void (CALLBACK *fGPSRev)(LLONG lLoginID, GPS_Info GpsInfo, LDWORD dwUserData);
  63652. ///@brief GPS信息订阅回调--扩展
  63653. typedef void (CALLBACK *fGPSRevEx)(LLONG lLoginID, GPS_Info GpsInfo, ALARM_STATE_INFO stAlarmInfo, LDWORD dwUserData, void *reserved);
  63654. ///@brief GPS信息订阅回调--扩展2
  63655. typedef void (CALLBACK *fGPSRevEx2)(LLONG lLoginID, const LPNET_GPS_LOCATION_INFO lpData, LDWORD dwUserData, void *reserved);
  63656. ///@brief GPS温湿度信息订阅回调
  63657. typedef void (CALLBACK *fGPSTempHumidityRev)(LLONG lLoginID, GPS_TEMP_HUMIDITY_INFO GpsTHInfo, LDWORD dwUserData);
  63658. ///@brief 异步数据回调
  63659. typedef void (CALLBACK *fMessDataCallBack)(LLONG lCommand, LPNET_CALLBACK_DATA lpData, LDWORD dwUser);
  63660. ///@brief 文件传输回调
  63661. typedef void (CALLBACK *fTransFileCallBack)(LLONG lHandle, int nTransType, int nState, int nSendSize, int nTotalSize, LDWORD dwUser);
  63662. ///@brief 智能分析数据回调;nSequence表示上传的相同图片情况,为0时表示是第一次出现,为2表示最后一次出现或仅出现一次,为1表示此次之后还有
  63663. // int nState = (int*) reserved 表示当前回调数据的状态, 为0表示当前数据为实时数据,为1表示当前回调数据是离线数据,为2时表示离线数据传送结束
  63664. typedef int (CALLBACK *fAnalyzerDataCallBack)(LLONG lAnalyzerHandle, DWORD dwAlarmType, void* pAlarmInfo, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser, int nSequence, void *reserved);
  63665. ///@brief 异步搜索设备回调(pDevNetInfo内存由SDK内部申请释放)
  63666. typedef void (CALLBACK *fSearchDevicesCB)(DEVICE_NET_INFO_EX *pDevNetInfo, void* pUserData);
  63667. ///@brief 异步搜索设备回调(pDevNetInfo内存由SDK内部申请释放)
  63668. typedef void (CALLBACK *fSearchDevicesCBEx)(LLONG lSearchHandle,DEVICE_NET_INFO_EX2 *pDevNetInfo, void* pUserData);
  63669. ///@brief 回放YUV数据回调函数
  63670. typedef void (CALLBACK *fYUVDataCallBack)(LLONG lPlaybackHandle, BYTE *pBuffer, DWORD dwBufSize, LONG param, LDWORD dwUser, void *reserved);
  63671. ///@brief 日志数据回调
  63672. typedef void (CALLBACK *fSubLogDataCallBack)(LLONG lLogHandle, NET_EM_LOG_QUERY_TYPE emLogType, const DH_DEVICE_LOG_ITEM_EX *pstuLogData, const int& nCount, LDWORD dwUser, void *reserved);
  63673. /************************************************************************
  63674. ** 接口定义
  63675. ***********************************************************************/
  63676. ///@brief 设置SDK本地参数,在CLIENT_Init之前调用,szInBuffer内存由用户申请释放,里面存放被设置的信息,具体见NET_EM_SDK_LOCAL_CFG_TYPE类型对应结构体
  63677. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSDKLocalCfg(NET_EM_SDK_LOCAL_CFG_TYPE emCfgType, void* szInBuffer);
  63678. ///@brief 获取SDK本地参数,szOutBuffer 由用户申请释放,用于存放返回的配置信息,具体见NET_EM_SDK_LOCAL_CFG_TYPE类型对应结构体
  63679. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSDKLocalCfg(NET_EM_SDK_LOCAL_CFG_TYPE emCfgType, void* szOutBuffer);
  63680. ///@brief SDK初始化
  63681. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Init(fDisConnect cbDisConnect, LDWORD dwUser);
  63682. ///@brief SDK初始化, 通过NETSDK_INIT_PARAM指定初始化参数, 如定制NetSDK启用的常规网络处理线程数,
  63683. // 当lpInitParam为空时,与调用CLIENT_Init效果一致
  63684. CLIENT_NET_API BOOL CALL_METHOD CLIENT_InitEx(fDisConnect cbDisConnect, LDWORD dwUser, LPNETSDK_INIT_PARAM lpInitParam = NULL);
  63685. ///@brief SDK退出清理
  63686. CLIENT_NET_API void CALL_METHOD CLIENT_Cleanup();
  63687. ///@brief 设置运行模式参数,在CLIENT_Init之后调用
  63688. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRunModeParams(NET_RUNMODE_PARAMS *pstuRunParams);
  63689. ///@brief 设置断线重连成功回调函数,设置后SDK内部断线自动重连
  63690. CLIENT_NET_API void CALL_METHOD CLIENT_SetAutoReconnect(fHaveReConnect cbAutoConnect, LDWORD dwUser);
  63691. ///@brief 设置动态子连接断线回调函数,目前SVR设备的预览和回放是短连接的。
  63692. CLIENT_NET_API void CALL_METHOD CLIENT_SetSubconnCallBack(fSubDisConnect cbSubDisConnect, LDWORD dwUser);
  63693. ///@brief 返回函数执行失败代码
  63694. CLIENT_NET_API DWORD CALL_METHOD CLIENT_GetLastError(void);
  63695. ///@brief 设置连接设备超时时间和尝试次数
  63696. CLIENT_NET_API void CALL_METHOD CLIENT_SetConnectTime(int nWaitTime, int nTryTimes);
  63697. ///@brief 设置登陆网络环境(pNetParam内存由用户申请释放)
  63698. CLIENT_NET_API void CALL_METHOD CLIENT_SetNetworkParam(NET_PARAM *pNetParam);
  63699. ///@brief 获取UDP和组播网络参数
  63700. CLIENT_NET_API void CALL_METHOD CLIENT_GetUdpOption(NET_UDP_OPTION *pUdpOption);
  63701. ///@brief 设置UDP和组播网络参数
  63702. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetUdpOption(NET_UDP_OPTION *pUdpOption);
  63703. ///@brief 获取SDK的版本信息
  63704. CLIENT_NET_API DWORD CALL_METHOD CLIENT_GetSDKVersion();
  63705. ///@brief 向设备注册(lpDeviceInfo内存由用户申请释放)
  63706. // error取值及其含义:
  63707. // error = -1 设备不支持高安全等级登录
  63708. // error = 0 无错误
  63709. // error = 1 账号或密码错误
  63710. // error = 2 用户名不存在
  63711. // error = 3 登录超时
  63712. // error = 4 重复登录
  63713. // error = 5 帐号被锁定
  63714. // error = 6 帐号被列入禁止名单
  63715. // error = 7 系统忙,资源不足
  63716. // error = 8 子连接失败
  63717. // error = 9 主连接失败
  63718. // error = 10 超过最大连接数
  63719. // error = 11 只支持3代协议
  63720. // error = 12 设备未插入U盾或U盾信息错误
  63721. // error = 13 客户端IP地址没有登录权限
  63722. // error = 18 设备账号未初始化,无法登陆
  63723. // error = 19 登录受限
  63724. // error = 20 设备只支持高安全等级登陆
  63725. // error = 21 设备密码超出有效期,请通过 CLIENT_ModifyDevPassword 修改密码
  63726. CLIENT_NET_API LLONG CALL_METHOD CLIENT_Login(const char *pchDVRIP, WORD wDVRPort, const char *pchUserName, const char *pchPassword, LPNET_DEVICEINFO lpDeviceInfo, int *error = 0);
  63727. ///@brief 扩展接口;nSpecCap = 0为TCP方式下的登入,void* pCapParam填NULL
  63728. // nSpecCap = 2为主动注册的登入,void* pCapParam填主动注册的设备ID
  63729. // nSpecCap = 3为组播方式下的登入,void* pCapParam填NULL
  63730. // nSpecCap = 4为UDP方式下的登入,void* pCapParam填NULL
  63731. // nSpecCap = 6为只建主连接下的登入,void* pCapParam填NULL
  63732. // nSpecCap = 7为SSL加密,void* pCapParam填NULL
  63733. // nSpecCap = 9为登录远程设备,这个时候void* pCapParam填入远程设备的名字的字符串
  63734. // nSpecCap = 12为LDAP方式登录,void* pCapParam填NULL
  63735. // nSpecCap = 13为AD方式登录,void* pCapParam填NULL
  63736. // nSpecCap = 14为Radius登录方式,void* pCapParam填NULL
  63737. // nSpecCap = 15为Socks5登陆方式,这个时候void* pCapParam填入Socks5服务器的IP&&port&&ServerName&&ServerPassword字符串
  63738. // nSpecCap = 16为代理登陆方式,这个时候void* pCapParam填入SOCKET值
  63739. // nSpecCap = 19为P2P登陆方式,void* pCapParam填NULL
  63740. // nSpecCap = 20为手机客户端登入,void* pCapParam填NULL
  63741. // lpDeviceInfo内存由用户申请释放
  63742. // 当登入失败时: error的错误码对应的说明参考 CLIENT_Login
  63743. // lpDeviceInfo, pCapParam内存由用户申请释放
  63744. CLIENT_NET_API LLONG CALL_METHOD CLIENT_LoginEx(const char *pchDVRIP, WORD wDVRPort, const char *pchUserName, const char *pchPassword, int nSpecCap, void* pCapParam, LPNET_DEVICEINFO lpDeviceInfo, int *error = 0);
  63745. ///@brief 登入扩展接口(lpDeviceInfo, pCapParam内存由用户申请释放)
  63746. // 当登入失败时: error的错误码对应的说明参考 CLIENT_Login
  63747. CLIENT_NET_API LLONG CALL_METHOD CLIENT_LoginEx2(const char *pchDVRIP, WORD wDVRPort, const char *pchUserName, const char *pchPassword, EM_LOGIN_SPAC_CAP_TYPE emSpecCap, void* pCapParam, LPNET_DEVICEINFO_Ex lpDeviceInfo, int *error = 0);
  63748. ///@brief 异步向设备注册
  63749. // nSpecCap = 0为TCP方式下的登入,nSpecCap = 6为只建主连接下的登入
  63750. // nSpecCap = 19为P2P登录
  63751. // pCapParam内存由用户申请释放
  63752. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartLogin(char *pchDVRIP, WORD wDVRPort, char *pchUserName, char *pchPassword, int nSpecCap, void* pCapParam, fHaveLogin cbLogin, LDWORD dwUser);
  63753. ///@brief 只有当CLIENT_StartLogin()的回调错误为11时才使用该接口继续异步登陆(pInParam, pOutParam内存由用户申请释放)
  63754. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartLoginEx(NET_IN_STARTLOGINEX* pInParam, NET_OUT_STARTLOGINEX* pOutParam);
  63755. ///@brief 停止向设备注册
  63756. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopLogin(LLONG lLoginID);
  63757. ///@brief 停止向设备注册
  63758. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopLoginEx(LLONG lLoginID);
  63759. ///@brief 向设备注销
  63760. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Logout(LLONG lLoginID);
  63761. ///@brief 登陆时TLS加密模式
  63762. typedef enum tagEM_LOGIN_TLS_TYPE
  63763. {
  63764. EM_LOGIN_TLS_TYPE_NO_TLS = 0, // 不走tls加密, 默认方式
  63765. EM_LOGIN_TLS_TYPE_TLS_ADAPTER = 1, // 自适应tls加密
  63766. EM_LOGIN_TLS_TYPE_TLS_COMPEL = 2, // 强制tls加密
  63767. EM_LOGIN_TLS_TYPE_TLS_MAIN_ONLY = 3, // 部分tls加密
  63768. EM_LOGIN_TLS_TYPE_TLS_GENERAL = 4, // 通用tls加密
  63769. }EM_LOGIN_TLS_TYPE;
  63770. ///@brief CLIENT_LoginWithHighLevelSecurity 输入参数
  63771. typedef struct tagNET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY
  63772. {
  63773. DWORD dwSize; // 结构体大小
  63774. char szIP[64]; // IP
  63775. int nPort; // 端口
  63776. char szUserName[64]; // 用户名
  63777. char szPassword[64]; // 密码
  63778. EM_LOGIN_SPAC_CAP_TYPE emSpecCap; // 登录模式
  63779. BYTE byReserved[4]; // 字节对齐
  63780. void* pCapParam; // 见 CLIENT_LoginEx 接口 pCapParam 与 nSpecCap 关系
  63781. EM_LOGIN_TLS_TYPE emTLSCap; // 登录的TLS模式,目前仅支持emSpecCap为EM_LOGIN_SPEC_CAP_TCP,EM_LOGIN_SPEC_CAP_SERVER_CONN 模式下的 tls登陆(TLS加密优先使用该选项)
  63782. }NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY;
  63783. ///@brief CLIENT_LoginWithHighLevelSecurity 输出参数
  63784. typedef struct tagNET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY
  63785. {
  63786. DWORD dwSize; // 结构体大小
  63787. NET_DEVICEINFO_Ex stuDeviceInfo; // 设备信息
  63788. int nError; // 错误码,见 CLIENT_Login 接口错误码
  63789. BYTE byReserved[132]; // 预留字段
  63790. }NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY;
  63791. ///@brief 高安全级别登陆
  63792. CLIENT_NET_API LLONG CALL_METHOD CLIENT_LoginWithHighLevelSecurity(NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY* pstInParam, NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY* pstOutParam);
  63793. ///@brief 获取设备端协议版本类型
  63794. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevProtocolType(LLONG lLoginID, EM_DEV_PROTOCOL_TYPE *pemProtocolType);
  63795. ///@brief 获取VK入参
  63796. typedef struct tagNET_IN_GET_VKINFO
  63797. {
  63798. DWORD dwSize; // 结构体大小
  63799. int nChannelID; // 通道ID
  63800. }NET_IN_GET_VKINFO;
  63801. ///@brief 获取VK出参
  63802. typedef struct tagNET_OUT_GET_VKINFO
  63803. {
  63804. DWORD dwSize; // 结构体大小
  63805. NET_VKINFO stuVKInfo; // VK二值对信息
  63806. BOOL bContainPrevVKInfo; // 是否含有前一个VK二值对信息,TRUE表示有前一个VK二值对,FALSE表示没有前一个VK二值对
  63807. NET_VKINFO stuPrevVKInfo; // 前一个VK二值对信息
  63808. }NET_OUT_GET_VKINFO;
  63809. ///@brief 更新VK入参
  63810. typedef struct tagNET_IN_UPDATE_VKINFO
  63811. {
  63812. DWORD dwSize; // 结构体大小
  63813. int nChannelID; // 通道号
  63814. }NET_IN_UPDATE_VKINFO;
  63815. ///@brief 更新VK出参
  63816. typedef struct tagNET_OUT_UPDATE_VKINFO
  63817. {
  63818. DWORD dwSize; // 结构体大小
  63819. char szVKID[128]; // VKID
  63820. }NET_OUT_UPDATE_VKINFO;
  63821. ///@brief 订阅VK回调函数
  63822. typedef void (CALLBACK *fAttachVK)(LLONG lLoginID, LLONG lAttachHandle,int nChannelID,const NET_VKINFO* pVKInfo,LDWORD dwUser);
  63823. ///@brief 订阅VK入参
  63824. typedef struct tagNET_IN_ATTACH_VK
  63825. {
  63826. DWORD dwSize; // 结构体大小
  63827. int nChannelID; // 通道号
  63828. fAttachVK cbAttachVK; // 回调函数
  63829. LDWORD dwUser; // 用户数据
  63830. }NET_IN_ATTACH_VK;
  63831. ///@brief 订阅VK出参
  63832. typedef struct tagNET_OUT_ATTACH_VK
  63833. {
  63834. DWORD dwSize; // 结构体大小
  63835. NET_VKINFO stuCurrentVKInfo; // 当前VK二值对信息
  63836. BOOL bContainPrevVKInfo; // 是否含有前一个VK二值对信息,TRUE表示有前一个VK二值对,FALSE表示没有前一个VK二值对
  63837. NET_VKINFO stuPrevVKInfo; // 前一个VK二值对信息
  63838. }NET_OUT_ATTACH_VK;
  63839. ///@brief 码流加密能力集信息
  63840. typedef struct tagNET_MEDIA_ENCRYPT_CAPS_INFO
  63841. {
  63842. BOOL bSupport; // 是否支持码流加密
  63843. BYTE byReserved[256]; // 保留字节
  63844. }NET_MEDIA_ENCRYPT_CAPS_INFO;
  63845. ///@brief 获取加密能力集入参
  63846. typedef struct tagNET_IN_GET_MEDIA_ENCRYPT_CAPS
  63847. {
  63848. DWORD dwSize; // 结构体大小
  63849. int nChannelOffset; // 获取的通道偏移
  63850. int nChannelCount; // 一次获取的通道数量
  63851. }NET_IN_GET_MEDIA_ENCRYPT_CAPS;
  63852. ///@brief 获取加密能力集出参
  63853. typedef struct tagNET_OUT_GET_MEDIA_ENCRYPT_CAPS
  63854. {
  63855. DWORD dwSize; // 结构体大小
  63856. NET_MEDIA_ENCRYPT_CAPS_INFO* pstuCapsInfo; // 码流加密能力集信息
  63857. int nMaxCapsInfoCount; // 最大获取码流加密能力集个数
  63858. int nRetCapsInfoCount; // 返回的码流加密能力集个数
  63859. }NET_OUT_GET_MEDIA_ENCRYPT_CAPS;
  63860. ///@brief 更新VK
  63861. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpdateVK(LLONG lLoginID, const NET_IN_UPDATE_VKINFO* pInParam, NET_OUT_UPDATE_VKINFO* pOutParam, int nWaitTime);
  63862. ///@brief 订阅VK,另外可以获取到当前vk甚至前一个vk信息
  63863. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachVK( LLONG lLoginID, const NET_IN_ATTACH_VK* pInParam, NET_OUT_ATTACH_VK* pOutParam, int nWaitTime);
  63864. ///@brief 取消订阅VK
  63865. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVK( LLONG lAttachHandle);
  63866. ///@brief 获取媒体文件加密能力集
  63867. CLIENT_NET_API LLONG CALL_METHOD CLIENT_GetMediaEncryptCaps( LLONG lLoginID, const NET_IN_GET_MEDIA_ENCRYPT_CAPS* pInParam, NET_OUT_GET_MEDIA_ENCRYPT_CAPS* pOutParam, int nWaitTime);
  63868. ///@brief 开始实时预览
  63869. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RealPlay(LLONG lLoginID, int nChannelID, HWND hWnd);
  63870. ///@brief 多画面预览时nChannelID NVR设备填视频输出通道号
  63871. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RealPlayEx(LLONG lLoginID, int nChannelID, HWND hWnd, DH_RealPlayType rType = DH_RType_Realplay);
  63872. ///@brief 实时预览加密数据回调函数(pBuffer内存由SDK内部申请释放)
  63873. typedef void (CALLBACK *fEncryptRealDataCallBackEx)(LLONG lRealHandle, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  63874. ///@brief 实时预览原始码流数据回调函数(pBuffer内存由SDK内部申请释放)
  63875. typedef void (CALLBACK *fOriginalRealDataCallBack)(LLONG lRealHandle, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  63876. ///@brief CLIENT_RealPlayForSpGdpr 接口入参
  63877. typedef struct tagNET_IN_REALPLAY_FOR_SP_GDPR
  63878. {
  63879. DWORD dwSize; // 结构体大小:赋值为结构体大小
  63880. int nChannelID; // 通道
  63881. DH_RealPlayType rType; // 类型
  63882. BYTE szReserved[4]; // 预留字段
  63883. HWND hWnd; // 窗口句柄
  63884. fRealDataCallBackEx2 cbRealData; // 实时数据回调
  63885. fOriginalRealDataCallBack pOriginalRealDataCallBack; // 原始码流数据回调
  63886. fEncryptRealDataCallBackEx pEncryptRealDataCallBackEx; // 加密码流数据回调
  63887. fRealPlayDisConnect cbDisconnect; // 断线回调
  63888. LDWORD dwUser; // 用户参数
  63889. } NET_IN_REALPLAY_FOR_SP_GDPR;
  63890. ///@brief CLIENT_RealPlayForSpGdpr 出参
  63891. typedef struct tagNET_OUT_REALPLAY_FOR_SP_GDPR
  63892. {
  63893. DWORD dwSize; // 结构体大小:赋值为结构体大小
  63894. }NET_OUT_REALPLAY_FOR_SP_GDPR;
  63895. ///@brief 实时预览--端到端音视频加密
  63896. ///@param[in] lLoginID 登录句柄
  63897. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  63898. ///@param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  63899. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  63900. ///@return TRUE表示成功 FALSE表示失败
  63901. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RealPlayForSpGdpr(LLONG lLoginID, const NET_IN_REALPLAY_FOR_SP_GDPR* pInParam, NET_OUT_REALPLAY_FOR_SP_GDPR* pOutParam, DWORD dwWaitTime);
  63902. ///@brief CLIENT_RealPlayEx2 接口入参
  63903. typedef struct tagNET_IN_REALPLAY
  63904. {
  63905. DWORD dwSize; // 结构体大小:赋值为结构体大小
  63906. int nChannelID; // 通道
  63907. DH_RealPlayType rType; // 类型
  63908. BYTE szReserved[4]; // 预留字段
  63909. HWND hWnd; // 窗口句柄
  63910. fRealDataCallBackEx2 cbRealData; // 实时数据回调
  63911. fOriginalRealDataCallBack pOriginalRealDataCallBack; // 原始码流数据回调
  63912. fEncryptRealDataCallBackEx pEncryptRealDataCallBackEx; // 加密码流数据回调
  63913. fRealPlayDisConnect cbDisconnect; // 断线回调
  63914. fVKInfoCallBack pVKInfoCallBack; // VK信息回调
  63915. LDWORD dwUser; // 用户参数
  63916. } NET_IN_REALPLAY;
  63917. ///@brief CLIENT_RealPlayEx2 出参
  63918. typedef struct tagNET_OUT_REALPLAY
  63919. {
  63920. DWORD dwSize; // 结构体大小:赋值为结构体大小
  63921. }NET_OUT_REALPLAY;
  63922. ///@brief 实时预览--扩展Ex2接口
  63923. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RealPlayEx2(LLONG lLoginID, const NET_IN_REALPLAY* pInParam, NET_OUT_REALPLAY* pOutParam, DWORD dwWaitTime);
  63924. ///@brief 打开实时预览,若返回0表示打开失败
  63925. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartRealPlay(LLONG lLoginID, int nChannelID, HWND hWnd, DH_RealPlayType rType, fRealDataCallBackEx cbRealData, fRealPlayDisConnect cbDisconnect, LDWORD dwUser, DWORD dwWaitTime = 10000);
  63926. ///@brief 多画面实时预览
  63927. CLIENT_NET_API LLONG CALL_METHOD CLIENT_MultiPlay(LLONG lLoginID, HWND hWnd);
  63928. ///@brief 停止多画面实时预览
  63929. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopMultiPlay(LLONG lMultiHandle);
  63930. ///@brief 抓图;hPlayHandle为预览或回放句柄
  63931. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CapturePicture(LLONG hPlayHandle, const char *pchPicFileName);
  63932. ///@brief 抓图扩展;hPlayHandle为预览或回放句柄
  63933. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CapturePictureEx(LLONG hPlayHandle, const char *pchPicFileName, NET_CAPTURE_FORMATS eFormat);
  63934. ///@brief CLIENT_CapturePictureEx2 接口入参
  63935. typedef struct tagNET_IN_CAPTURE_PICTURE
  63936. {
  63937. DWORD dwSize; // 结构体大小
  63938. NET_CAPTURE_FORMATS emFormat; // 图片保存格式
  63939. char szPicFilePath[256]; // 图片保存路径
  63940. } NET_IN_CAPTURE_PICTURE;
  63941. ///@brief CLIENT_CapturePictureEx2 接口出参
  63942. typedef struct tagNET_OUT_CAPTURE_PICTURE
  63943. {
  63944. DWORD dwSize; // 结构体大小
  63945. NET_TIME_EX stuTime; // 图片时间
  63946. } NET_OUT_CAPTURE_PICTURE;
  63947. ///@brief 手动抓图扩展接口(支持返回图片时间,精确到毫秒), hPlayHandle为预览或回放句柄
  63948. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CapturePictureEx2(LLONG lPlayHandle, NET_IN_CAPTURE_PICTURE *pstInParam, NET_OUT_CAPTURE_PICTURE *pstOutParam);
  63949. ///@brief 设置实时预览数据回调
  63950. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRealDataCallBack(LLONG lRealHandle, fRealDataCallBack cbRealData, LDWORD dwUser);
  63951. ///@brief 预览类型
  63952. typedef enum _PrerecordStreamType
  63953. {
  63954. Prerecord_RType_Realplay_0, // 实时预览-主码流
  63955. Prerecord_RType_Realplay_1, // 实时预览-从码流1
  63956. Prerecord_RType_Realplay_2, // 实时预览-从码流2
  63957. Prerecord_RType_Realplay_3, // 实时预览-从码流3
  63958. }EM_PRERECODE_STREAM_TYPE;
  63959. ///@brief 预录
  63960. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PrerecordStream(LLONG lLoginID, int nChannelID,EM_PRERECODE_STREAM_TYPE emPreRecord, int nWaitTime);
  63961. ///@brief 实时预览的实时数据标志, 对应 CLIENT_SetRealDataCallBackEx(Ex2) 中的 dwFlag 参数
  63962. // 支持 '|' 运算符, 如 dwFlag = REALDATA_FLAG_RAW_DATA | REALDATA_FLAG_YUV_DATA
  63963. typedef enum tagEM_REALDATA_FLAG
  63964. {
  63965. REALDATA_FLAG_RAW_DATA = 0x01, // 原始数据标志, 对应fRealDataCallBack(Ex/Ex2)回调函数中 dwDataType 为0, 0x01 = 0x01 << 0
  63966. REALDATA_FLAG_DATA_WITH_FRAME_INFO = 0x02, // 带有帧信息的数据标志, 对应fRealDataCallBack(Ex/Ex2)回调函数中 dwDataType 为1, 0x02 = 0x01 << 1
  63967. REALDATA_FLAG_YUV_DATA = 0x04, // YUV 数据标志, 对应fRealDataCallBack(Ex/Ex2)回调函数中 dwDataType 为2, 0x04 = 0x01 << 2
  63968. REALDATA_FLAG_PCM_AUDIO_DATA = 0x08, // PCM 音频数据标志, 对应fRealDataCallBack(Ex/Ex2)回调函数中 dwDataType 为3, 0x08 = 0x01 << 3
  63969. } EM_REALDATA_FLAG;
  63970. ///@brief 设置实时预览数据回调--扩展
  63971. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRealDataCallBackEx(LLONG lRealHandle, fRealDataCallBackEx cbRealData, LDWORD dwUser, DWORD dwFlag);
  63972. ///@brief 设置实时预览加密数据回调
  63973. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetEncryptRealDataCallBack(LLONG lRealHandle, fEncryptRealDataCallBackEx cbRealData, LDWORD dwUser);
  63974. ///@brief 设置实时预览数据回调--扩展Ex2
  63975. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRealDataCallBackEx2(LLONG lRealHandle, fRealDataCallBackEx2 cbRealData, LDWORD dwUser, DWORD dwFlag);
  63976. ///@brief 设置实时预览原始码流数据回调
  63977. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetOriginalRealDataCallBack(LLONG lRealHandle, fOriginalRealDataCallBack cbRealData, LDWORD dwUser);
  63978. ///@brief 设置VK信息回调:lPlayHandle 是拉流和回放接口返回的句柄
  63979. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetVKInfoCallBack(LLONG lPlayHandle, fVKInfoCallBack cbVKInfo, LDWORD dwUser);
  63980. ///@brief 设置图象流畅性
  63981. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AdjustFluency(LLONG lRealHandle, int nLevel);
  63982. ///@brief 保存数据为文件
  63983. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SaveRealData(LLONG lRealHandle, const char *pchFileName);
  63984. ///@brief 结束保存数据为文件
  63985. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopSaveRealData(LLONG lRealHandle);
  63986. ///@brief 设置图像属性
  63987. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ClientSetVideoEffect(LLONG lPlayHandle, unsigned char nBrightness, unsigned char nContrast, unsigned char nHue, unsigned char nSaturation);
  63988. ///@brief 获取图像属性
  63989. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ClientGetVideoEffect(LLONG lPlayHandle, unsigned char *nBrightness, unsigned char *nContrast, unsigned char *nHue, unsigned char *nSaturation);
  63990. ///@brief 设置屏幕叠加回调
  63991. CLIENT_NET_API void CALL_METHOD CLIENT_RigisterDrawFun(fDrawCallBack cbDraw, LDWORD dwUser);
  63992. ///@brief 打开声音
  63993. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OpenSound(LLONG hPlayHandle);
  63994. ///@brief 设置音量;lPlayHandle为预览或回放句柄
  63995. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetVolume(LLONG lPlayHandle, int nVolume);
  63996. ///@brief 是否启用高清图像内部调整策略,默认启用。该策略启用时,在快放4倍速以上时,只播放I帧,不启用时,则每帧都播放
  63997. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PlayEnableLargePicAdjustment(LLONG lPlayHandle, BOOL bEnable);
  63998. ///@brief 关闭声音
  63999. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloseSound();
  64000. ///@brief 停止实时预览
  64001. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopRealPlay(LLONG lRealHandle);
  64002. ///@brief 停止实时预览--扩展
  64003. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopRealPlayEx(LLONG lRealHandle);
  64004. ///@brief 实时预览回调数据类型
  64005. typedef enum tagEM_REAL_DATA_TYPE
  64006. {
  64007. EM_REAL_DATA_TYPE_PRIVATE, // 私有码流
  64008. EM_REAL_DATA_TYPE_GBPS, // 国标PS码流,支持音频转码为G711A
  64009. EM_REAL_DATA_TYPE_TS, // TS码流,支持音频转码为AAC,MP2
  64010. EM_REAL_DATA_TYPE_MP4, // MP4文件(从回调函数出来的是私有码流数据,参数dwDataType值为0),支持音频转码为MP2,AAC, G711A
  64011. EM_REAL_DATA_TYPE_H264, // 裸视频流,h264与h265都能转码成功
  64012. EM_REAL_DATA_TYPE_FLV_STREAM, // 流式FLV,支持音频转码为AAC,G711A,G711U
  64013. EM_REAL_DATA_TYPE_PS, // PS码流,支持音频转码为AAC,MP2
  64014. EM_REAL_DATA_TYPE_DHTS, // DHTS
  64015. EM_REAL_DATA_TYPE_CDJFPS, // 定制PS-原始音频格式是G711A和G711U、MP2的,音频不转码,其他的,音频转码成AAC
  64016. }EM_REAL_DATA_TYPE;
  64017. ///@brief 异步拉流状态
  64018. typedef enum tagEM_ASYNC_REALPLAY_STATE
  64019. {
  64020. EM_ASYNC_REALPLAY_NORMAL, // 中间过程正常状态
  64021. EM_ASYNC_REALPLAY_SUCCESS, // 异步拉流成功, 异步任务结束
  64022. EM_ASYNC_REALPLAY_CHECK_ERROR, // 异步拉流检查出错
  64023. EM_ASYNC_REALPLAY_SPECIAL_CHANNEL_ERROR, // 获取特殊通道信息错误
  64024. EM_ASYNC_REALPLAY_INVALID_CHANNEL, // 异常 通道
  64025. EM_ASYNC_REALPLAY_SETUPSESSION_ERROR, // 建立会话失败
  64026. EM_ASYNC_REALPLAY_RENDER_ERROR, // 准备解码资源失败
  64027. EM_ASYNC_REALPLAY_OPENCHANNEL_ERROR, // 打开预览通道失败
  64028. EM_ASYNC_REALPLAY_GDPR_ERROR, // GDPR信息失败
  64029. } EM_ASYNC_REALPLAY_STATE;
  64030. ///@brief: 异步实时预览回调函数
  64031. ///@param[out]: LLONG lAsyncTaskHandle // 异步实时预览任务句柄, 可通过CLIENT_StopAsynRealPlay 来停止异步拉流任务,
  64032. // 若异步拉流任务状态返回成功, 则不需要手动去停止拉流任务,其自动会停止
  64033. ///@param[out]: LLONG lPlayHandle // 异步实时预览播放句柄, 异步拉流任务成功后返回的播放句柄, 通过CLIENT_StopRealPlayEx 来停止播放
  64034. ///@param[out]: LLONG lLoginID // 登陆句柄
  64035. ///@param[out]: int nChannelID // 通道号
  64036. ///@param[out]: HWND emState // 异步拉流状态
  64037. ///@param[out]: LDWORD dwUser // 用户数据
  64038. typedef void (CALLBACK *fAsynPlayCallBack)(LLONG lAsyncTaskHandle, LLONG lPlayHandle, LLONG lLoginID, int nChannelID, EM_ASYNC_REALPLAY_STATE emState, LDWORD dwUser);
  64039. ///@brief CLIENT_StartAsynRealPlay 接口输入参数
  64040. typedef struct tagNET_IN_START_ASYN_REAL_PLAY
  64041. {
  64042. DWORD dwSize; // 结构体大小
  64043. int nChannel; // 拉流通道号
  64044. DH_RealPlayType emPlayType; // 预览类型
  64045. EM_REAL_DATA_TYPE emDataType; // 实时预览回调数据类型
  64046. HWND hPlayWnd; // 播放窗口句柄
  64047. fRealDataCallBackEx2 cbRealDataCallBack; // 实时数据回调
  64048. fOriginalRealDataCallBack cbOriginalRealDataCallBack; // 原始码流数据回调
  64049. fEncryptRealDataCallBackEx cbEncryptRealDataCallBack; // 加密码流数据回调
  64050. fRealPlayDisConnect cbDisconnect; // 断线回调
  64051. fVKInfoCallBack cbVKInfoCallBack; // VK信息回调
  64052. fAsynPlayCallBack cbAsynPlayCallBack; // 异步任务回调函数
  64053. LDWORD dwUser; // 用户数据
  64054. } NET_IN_START_ASYN_REAL_PLAY;
  64055. ///@brief CLIENT_StartAsynRealPlay接口输出参数
  64056. typedef struct tagNET_OUT_START_ASYN_REAL_PLAY
  64057. {
  64058. DWORD dwSize; // 结构体大小
  64059. } NET_OUT_START_ASYN_REAL_PLAY;
  64060. ///@brief:开启异步实时预览接口
  64061. ///@param[in]: LLONG :lLoginID // 登陆句柄
  64062. ///@param[in]: NET_IN_START_ASYN_REAL_PLAY :pInParam // 接口输入参数
  64063. ///@param[out]: NET_OUT_START_ASYN_REAL_PLAY :pOutParam // 接口输出参数
  64064. ///@param[in]: DWORD :dwWaitTime // 等待时间
  64065. ///@return:BOOL:FALSE,wrong;TRUE :right
  64066. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartAsynRealPlay(LLONG lLoginID, NET_IN_START_ASYN_REAL_PLAY *pInParam, NET_OUT_START_ASYN_REAL_PLAY *pOutParam, DWORD dwWaitTime);
  64067. ///@brief 停止异步实时预览任务, lAsyncTaskHandle 为CLIENT_StartAsynRealPlay 的返回值
  64068. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopAsynRealPlay(LLONG lAsyncTaskHandle);
  64069. ///@brief 云台相对定位参数
  64070. typedef struct tagNET_IN_MOVERELATIVELY_INFO
  64071. {
  64072. DWORD dwSize; // 结构体大小
  64073. PTZ_SPACE_RELATIVELY_UNIT stuTranslation; // x, y, zoom 坐标归一化到 -1~1
  64074. PTZ_SPACE_RELATIVELY_UNIT stuSpeed; // x, y, zoom 坐标归一化到 0~1
  64075. }NET_IN_MOVERELATIVELY_INFO;
  64076. ///@brief 云台方向
  64077. typedef enum tagNET_EM_PTZ_DIRECTION_TYPE
  64078. {
  64079. NET_EM_PTZ_DIRECTION_TYPE_UNKNOWN, // 未知
  64080. NET_EM_PTZ_DIRECTION_TYPE_EAST, // 东
  64081. NET_EM_PTZ_DIRECTION_TYPE_SOUTH, // 南
  64082. NET_EM_PTZ_DIRECTION_TYPE_WEST, // 西
  64083. NET_EM_PTZ_DIRECTION_TYPE_NORTH, // 北
  64084. }NET_EM_PTZ_DIRECTION_TYPE;
  64085. ///@brief 设置云台方向 DH_EXTPTZ_SET_DIRECTION
  64086. typedef struct tagNET_IN_SET_DIRECTION_INFO
  64087. {
  64088. DWORD dwSize; // 结构体大小
  64089. NET_EM_PTZ_DIRECTION_TYPE emDirection; // 云台方向
  64090. }NET_IN_SET_DIRECTION_INFO;
  64091. ///@brief 设置云台方向 DH_EXTPTZ_BASE_MOVE_ABSOLUTELY
  64092. typedef struct tagNET_IN_PTZBASE_MOVEABSOLUTELY_INFO
  64093. {
  64094. DWORD dwSize; // 结构体大小
  64095. int nZoomFlag; // 1表示显示倍率; 2保留,内部用; 3表示映射倍率值;如为0则默认映射倍率值
  64096. NET_PTZSPACE_UNNORMALIZED stuPosition; // 云台绝对移动位置云台绝对定位参数,扩大10倍
  64097. // 云台水平坐标(0~3600)
  64098. // 云台垂直坐标(-1800~1800)
  64099. // 倍率值,范围:nZoomFlag为1时(0~最大显示倍率*10),nZoomFlag为3时(0~16384)
  64100. NET_PTZSPACE_UNNORMALIZED stuSpeed; // 若无speed则表示默认速度运动 P,T,以0.01度/秒为单位,扩大100倍显示,范围与PtzSpeedLevel中的范围保持一致[0,100000],水平和垂直分别最大不会超过PtzSpeedLevel中最大档位水平和垂直的最大值,zoom变倍速度为0~100。
  64101. BYTE byReserved[448]; // 预留字节
  64102. }NET_IN_PTZBASE_MOVEABSOLUTELY_INFO;
  64103. ///@brief 绝对定位独立控制PT DH_EXTPTZ_BASE_MOVE_ABSOLUTELY_ONLYPT
  64104. typedef struct tagNET_IN_PTZBASE_MOVEABSOLUTELY_ONLYPT_INFO
  64105. {
  64106. DWORD dwSize; // 结构体大小
  64107. int nPositionP; // P轴坐标,范围0~36000(扩大100倍)
  64108. int nPositionT; // T轴坐标,范围-18000~18000(扩大100倍)
  64109. int nSpeedP; // P轴速度,以0.01度/秒为单位,扩大100倍显示,范围[0,100000]
  64110. int nSpeedT; // T轴速度,以0.01度/秒为单位,扩大100倍显示,范围[0,100000]
  64111. BYTE byReserved[1024]; // 预留字节
  64112. }NET_IN_PTZBASE_MOVEABSOLUTELY_ONLYPT_INFO;
  64113. ///@brief 绝对定位独立控制zoom DH_EXTPTZ_BASE_MOVE_ABSOLUTELY_ONLYZOOM
  64114. typedef struct tagNET_IN_PTZBASE_MOVEABSOLUTELY_ONLYZOOM_INFO
  64115. {
  64116. DWORD dwSize; // 结构体大小
  64117. int nZoomFlag; // 1表示显示倍率; 2保留,内部用; 3表示映射倍率值;如为0则默认映射倍率值
  64118. int nZoomValue; // 根据zoomFlag值确认Zoom位置范围:
  64119. // 1:0~显示倍率最大值*100;
  64120. // 3:映射倍率值(0~16384)
  64121. int nZoomSpeed; // zoom变倍速度为0~100。
  64122. BYTE byReserved[1024]; // 预留字节
  64123. }NET_IN_PTZBASE_MOVEABSOLUTELY_ONLYZOOM_INFO;
  64124. ///@brief 云台连续运动参数 对应 DH_EXTPTZ_BASE_MOVE_CONTINUOUSLY 枚举
  64125. typedef struct tagNET_IN_PTZBASE_MOVE_CONTINUOUSLY_INFO
  64126. {
  64127. DWORD dwSize; // 结构体大小
  64128. int nSpeedX; // 水平移动速度,单位0.01度/秒,扩大100倍,范围[-10000, 10000],左为负,右为正
  64129. int nSpeedY; // 垂直移动速度,单位0.01度/秒,扩大100倍,范围[-10000, 10000],下为负,上为正
  64130. int nZoom; // 倍率,范围 [-100, 100],负数表示缩小
  64131. int nMoveTime; // 运动时间,单位秒
  64132. BYTE byReserved[1020]; // 预留字段
  64133. }NET_IN_PTZBASE_MOVE_CONTINUOUSLY_INFO;
  64134. ///@brief 设置当前位置聚焦值 对应 DH_EXTPTZ_BASE_SET_FOCUS_MAP_VALUE 枚举
  64135. typedef struct tagNET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO
  64136. {
  64137. DWORD dwSize; // 结构体大小
  64138. int nfocusMapValue; // 聚焦映射值, 取值范围[0,28672]
  64139. }NET_IN_PTZBASE_SET_FOCUS_MAP_VALUE_INFO;
  64140. ///@brief 云台移动停止,同时也停止巡航模式 对应DH_EXTPTZ_STOP_MOVE枚举
  64141. typedef struct tagNET_IN_STOP_MOVE_INFO
  64142. {
  64143. DWORD dwSize; // 结构体大小
  64144. }NET_IN_STOP_MOVE_INFO;
  64145. ///@brief 开始云台控制 对应DH_EXTPTZ_START枚举
  64146. typedef struct tagNET_IN_PTZ_START_INFO
  64147. {
  64148. DWORD dwSize; // 结构体大小
  64149. char szCode[32]; // 命令码
  64150. int nArg1; // 控制参数1
  64151. int nArg2; // 控制参数2
  64152. int nArg3; // 控制参数3
  64153. int nArg4; // 控制参数4
  64154. }NET_IN_PTZ_START_INFO;
  64155. ///@brief 结束云台控制 对应DH_EXTPTZ_STOP枚举
  64156. typedef struct tagNET_IN_PTZ_STOP_INFO
  64157. {
  64158. DWORD dwSize; // 结构体大小
  64159. char szCode[32]; // 命令码
  64160. int nArg1; // 控制参数1
  64161. int nArg2; // 控制参数2
  64162. int nArg3; // 控制参数3
  64163. int nArg4; // 控制参数4
  64164. }NET_IN_PTZ_STOP_INFO;
  64165. ///@brief 开始模式记录 对应DH_EXTPTZ_START_PATTERN_RECORD枚举
  64166. typedef struct tagNET_IN_START_PATTERN_RECORD_INFO
  64167. {
  64168. DWORD dwSize; // 结构体大小
  64169. char szName[64]; // 模式名称
  64170. int nIndex; // 模式编号
  64171. }NET_IN_START_PATTERN_RECORD_INFO;
  64172. ///@brief 停止模式记录 对应DH_EXTPTZ_STOP_PATTERN_RECORD枚举
  64173. typedef struct tagNET_IN_STOP_PATTERN_RECORD_INFO
  64174. {
  64175. DWORD dwSize; // 结构体大小
  64176. int nIndex; // 模式编号
  64177. }NET_IN_STOP_PATTERN_RECORD_INFO;
  64178. ///@brief 开始模式回放 对应DH_EXTPTZ_START_PATTERN_REPLAY枚举
  64179. typedef struct tagNET_IN_START_PATTERN_REPLAY_INFO
  64180. {
  64181. DWORD dwSize; // 结构体大小
  64182. int nIndex; // 模式编号
  64183. }NET_IN_START_PATTERN_REPLAY_INFO;
  64184. ///@brief 停止模式回放 对应DH_EXTPTZ_STOP_PATTERN_REPLAY枚举
  64185. typedef struct tagNET_IN_STOP_PATTERN_REPLAY_INFO
  64186. {
  64187. DWORD dwSize; // 结构体大小
  64188. int nIndex; // 模式编号
  64189. }NET_IN_STOP_PATTERN_REPLAY_INFO;
  64190. ///@brief 云台三维定位, 对应DH_EXTPTZ_MOVE_DIRECTLY枚举
  64191. typedef struct tagNET_IN_MOVE_DIRECTLY_INFO
  64192. {
  64193. DWORD dwSize; // 结构体大小
  64194. PTZ_SPEED_UNIT stuScreen; // 屏幕坐标
  64195. PTZ_SPEED_UNIT stuSpeed; // 云台运行速度
  64196. }NET_IN_MOVE_DIRECTLY_INFO;
  64197. ///@brief 通用云台控制
  64198. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZControl(LLONG lLoginID, int nChannelID, DWORD dwPTZCommand, DWORD dwStep, BOOL dwStop);
  64199. ///@brief 私有云台控制,param4由用户申请释放内存,内存大小参照DH_EXTPTZ_ControlType对应的结构体
  64200. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DHPTZControl(LLONG lLoginID, int nChannelID, DWORD dwPTZCommand, unsigned char param1, unsigned char param2, unsigned char param3, BOOL dwStop,void* param4=NULL);
  64201. ///@brief 私有云台控制扩展接口,支持三维快速定位
  64202. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DHPTZControlEx(LLONG lLoginID, int nChannelID, DWORD dwPTZCommand, LONG lParam1, LONG lParam2, LONG lParam3, BOOL dwStop );
  64203. ///@brief 私有云台控制扩展接口,支持三维快速定位,鱼眼,param4由用户申请释放内存,内存大小参照DH_EXTPTZ_ControlType对应的结构体
  64204. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DHPTZControlEx2(LLONG lLoginID, int nChannelID, DWORD dwPTZCommand, LONG lParam1, LONG lParam2, LONG lParam3, BOOL dwStop , void* param4 = NULL);
  64205. ///@brief 区域扫描接口,获取和设置信息(NET_AREASCAN_EPTZ_CMD)
  64206. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DHPTZAreaScan(LLONG lLoginID ,DWORD dwPTZCommand, char* szInBuffer, DWORD dwInBufferSize,char* szOutBuffer = NULL, DWORD dwOutBufferSize = 0, int waittime=1000);
  64207. ///@brief CLIENT_DHPTZCalibrateSingleDirection 入参
  64208. typedef struct tagNET_IN_CALIBRATE_SINGLEDIRECTION
  64209. {
  64210. DWORD dwSize;
  64211. int nMode; // 校准模式,1:水平校准,2:垂直校准
  64212. }NET_IN_CALIBRATE_SINGLEDIRECTION;
  64213. ///@brief 查询某月的各天是否存在录像文件,
  64214. // nRecordFileType == EM_RECORD_TYPE_CARD,pchCardid输入卡号,限制字符长度59字节
  64215. // nRecordFileType == EM_RECORD_TYPE_FIELD,pchCardid输入自定义字段,限制字符长度256字节
  64216. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryRecordStatus(LLONG lLoginID, int nChannelId, int nRecordFileType, LPNET_TIME tmMonth, char* pchCardid, LPNET_RECORD_STATUS pRecordStatus, int waittime=1000);
  64217. ///@brief 查询时间段内是否有录像文件
  64218. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryRecordTime(LLONG lLoginID, int nChannelId, int nRecordFileType, LPNET_TIME tmStart, LPNET_TIME tmEnd, char* pchCardid, BOOL *bResult, int waittime=1000);
  64219. ///@brief 查询时间段内的所有录像文件
  64220. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryRecordFile(LLONG lLoginID, int nChannelId, int nRecordFileType, LPNET_TIME tmStart, LPNET_TIME tmEnd, char* pchCardid, LPNET_RECORDFILE_INFO nriFileinfo, int maxlen, int *filecount, int waittime=1000, BOOL bTime = FALSE);
  64221. ///@brief CLIENT_QueryRecordFileEx 接口输入参数
  64222. typedef struct tagNET_IN_QUERY_RECORD_FILE_EX
  64223. {
  64224. DWORD dwSize; // 结构体大小,必须赋值
  64225. int nChannelId; // 通道号
  64226. EM_QUERY_RECORD_TYPE emRecordFileType; // 查询的录像类型
  64227. NET_TIME stuStartTime; // 开始时间
  64228. NET_TIME stuEndTime; // 结束时间
  64229. char* pszCardID; // 卡号
  64230. BOOL bTime; // 是否按照时间查询
  64231. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stuStartTime, stuEndTime), 为FALSE表示仅下发stuStartTime, stuEndTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  64232. NET_TIME stuStartTimeRealUTC; // UTC开始时间(标准UTC时间), 与stuEndTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  64233. NET_TIME stuEndTimeRealUTC; // UTC结束时间(标准UTC时间), 与stuStartTimeRealUTC配对使用,与(stuStartTime, stuEndTime)互斥
  64234. }NET_IN_QUERY_RECORD_FILE_EX;
  64235. ///@brief CLIENT_QueryRecordFileEx 接口输出参数
  64236. typedef struct tagNET_OUT_QUERY_RECORD_FILE_EX
  64237. {
  64238. DWORD dwSize; // 结构体大小,必须赋值
  64239. NET_RECORDFILE_INFOEX* pstuFileinfo; // 录像文件信息,单个文件, 内存由上层申请
  64240. int nMaxlen; // 申请的内存大小,为NET_RECORDFILE_INFOEX 结构体大小的整数倍
  64241. int nFileCount; // 查询到的文件总数
  64242. }NET_OUT_QUERY_RECORD_FILE_EX;
  64243. ///@brief 查询时间段内的所有录像文件
  64244. ///@param[in] lLoginID: 登录句柄
  64245. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  64246. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  64247. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  64248. ///@return TRUE表示成功FALSE表示失败
  64249. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryRecordFileEx(LLONG lLoginID, NET_IN_QUERY_RECORD_FILE_EX* pstuInParam, NET_OUT_QUERY_RECORD_FILE_EX* pstuOutParam, int nWaitTime);
  64250. ///@brief 异步查询时间段内的所有录像文件(pInParam, pOutParam内存由用户申请释放)
  64251. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartQueryRecordFile(LLONG lLoginID, NET_IN_START_QUERY_RECORDFILE *pInParam, NET_OUT_START_QUERY_RECORDFILE *pOutParam);
  64252. ///@brief 停止异步录像查询
  64253. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopQueryRecordFile(LLONG lQueryHandle);
  64254. ///@brief 快速查询时间段内的录像文件,如果时间段内录像超过16条时,只返回时间最早的16段录像。
  64255. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QuickQueryRecordFile(LLONG lLoginID, int nChannelId, int nRecordFileType, LPNET_TIME tmStart, LPNET_TIME tmEnd, char* pchCardid, LPNET_RECORDFILE_INFO nriFileinfo, int maxlen, int *filecount, int waittime=1000, BOOL bTime = FALSE);
  64256. ///@brief 查询最早录像时间(pFurthrestTime内存由用户申请释放)
  64257. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryFurthestRecordTime(LLONG lLoginID, int nRecordFileType, char *pchCardid, NET_FURTHEST_RECORD_TIME* pFurthrestTime, int nWaitTime);
  64258. ///@brief 开始查找录像文件
  64259. CLIENT_NET_API LLONG CALL_METHOD CLIENT_FindFile(LLONG lLoginID, int nChannelId, int nRecordFileType, char* cardid, LPNET_TIME time_start, LPNET_TIME time_end, BOOL bTime, int waittime);
  64260. ///@brief 查找录像文件(lpFindData内存由用户申请释放)
  64261. CLIENT_NET_API int CALL_METHOD CLIENT_FindNextFile(LLONG lFindHandle,LPNET_RECORDFILE_INFO lpFindData);
  64262. ///@brief 结束录像文件查找
  64263. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindClose(LLONG lFindHandle);
  64264. ///@brief 按文件方式回放(lpRecordFile内存由用户申请释放)
  64265. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackByRecordFile(LLONG lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, HWND hWnd, fDownLoadPosCallBack cbDownLoadPos, LDWORD dwUserData);
  64266. ///@brief 按文件方式回放--扩展(lpRecordFile内存由用户申请释放)
  64267. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackByRecordFileEx(LLONG lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, HWND hWnd, fDownLoadPosCallBack cbDownLoadPos, LDWORD dwPosUser, fDataCallBack fDownLoadDataCallBack, LDWORD dwDataUser);
  64268. ///@brief 按文件录像回放入参信息
  64269. typedef struct tagNET_IN_PLAY_BACK_BY_FILE_INFO
  64270. {
  64271. LPNET_RECORDFILE_INFO pRecordFile; // 录像文件信息
  64272. HWND hWnd; // 播放窗格, 可为NULL
  64273. fDownLoadPosCallBack cbDownLoadPos; // 进度回调
  64274. LDWORD dwPosUser; // 进度回调用户信息
  64275. fDataCallBack fDownLoadDataCallBack; // 数据回调
  64276. LDWORD dwDataUser; // 数据回调用户信息
  64277. int nPlayDirection; // 播放方向, 0:正放; 1:倒放;
  64278. int nWaittime; // 接口超时时间, 目前倒放使用
  64279. fVKInfoCallBack pVKInfoCallBack; // VK信息回调
  64280. LDWORD dwVKInfoUser; // VK信息回调用户信息
  64281. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发LPNET_RECORDFILE_INFO中的starttime, endtime), 为FALSE表示仅下发LPNET_RECORDFILE_INFO中的starttime, endtime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  64282. NET_TIME stuStartTimeRealUTC; // 录像的起始UTC时间(标准UTC时间)
  64283. NET_TIME stuEndTimeRealUTC; // 录像的结束UTC时间(标准UTC时间)
  64284. BYTE bReserved[964]; // 预留字节
  64285. }NET_IN_PLAY_BACK_BY_FILE_INFO;
  64286. ///@brief 按文件录像回放出参信息
  64287. typedef struct tagNET_OUT_PLAY_BACK_BY_FILE_INFO
  64288. {
  64289. BYTE bReserved[1024]; // 预留字节
  64290. }NET_OUT_PLAY_BACK_BY_FILE_INFO;
  64291. ///@brief 按文件方式回放--扩展
  64292. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackByRecordFileEx2(LLONG lLoginID, const NET_IN_PLAY_BACK_BY_FILE_INFO *pstNetIn, NET_OUT_PLAY_BACK_BY_FILE_INFO *pstNetOut);
  64293. ///@brief 按文件方式回放--回调回放中断事件(lpRecordFile内存由用户申请释放)
  64294. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartPlayBackByRecordFile(LLONG lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, HWND hWnd,
  64295. fDownLoadPosCallBack cbDownLoadPos, LDWORD dwPosUser,
  64296. fDataCallBack fDownLoadDataCallBack, LDWORD dwDataUser,
  64297. fRealPlayDisConnect fDisConnectCallBack, LDWORD dwDisUser, DWORD dwWaitTime = 10000);
  64298. ///@brief 按文件方式回放--抽帧播放(带宽不够时可以使用)(lpRecordFile内存由用户申请释放)
  64299. CLIENT_NET_API LLONG CALL_METHOD CLIENT_FramCotrolPlayBackByRecordFile(LLONG lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, HWND hWnd,
  64300. fDownLoadPosCallBack cbDownLoadPos, LDWORD dwPosUser,
  64301. fDataCallBack fDownLoadDataCallBack, LDWORD dwDataUser, unsigned int nCutFrameRate);
  64302. ///@brief 按时间方式回放
  64303. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackByTime(LLONG lLoginID, int nChannelID, LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, HWND hWnd, fDownLoadPosCallBack cbDownLoadPos, LDWORD dwPosUser);
  64304. ///@brief 按时间方式回放--端到端加密方案
  64305. ///@param[in] lLoginID 登录句柄
  64306. ///@param[in] nChannelID 通道号
  64307. ///@param[in] lpStartTime 回放开始事件
  64308. ///@param[in] lpStopTime 回放结束事件
  64309. ///@param[in] hWnd 窗口句柄
  64310. ///@param[in] cbDownLoadPos 进度回调
  64311. ///@param[in] dwPosUser 进度回调用户数据
  64312. ///@param[in] fDownLoadDataCallBack 数据回调
  64313. ///@param[in] dwDataUser 数据回调用户数据
  64314. ///@return 非0表示句柄 0 表示失败
  64315. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackByTimeForSpGdpr(LLONG lLoginID, int nChannelID, LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, HWND hWnd,
  64316. fDownLoadPosCallBack cbDownLoadPos, LDWORD dwPosUser,
  64317. fDataCallBack fDownLoadDataCallBack, LDWORD dwDataUser);
  64318. ///@brief 按时间方式回放--扩展
  64319. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackByTimeEx(LLONG lLoginID, int nChannelID, LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, HWND hWnd,
  64320. fDownLoadPosCallBack cbDownLoadPos, LDWORD dwPosUser,
  64321. fDataCallBack fDownLoadDataCallBack, LDWORD dwDataUser);
  64322. ///@brief 按时间方式回放--扩展第二版,支持直接倒放,pstNetIn与pstNetOut需要用户申请内存
  64323. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackByTimeEx2(LLONG lLoginID, int nChannelID,
  64324. NET_IN_PLAY_BACK_BY_TIME_INFO *pstNetIn, NET_OUT_PLAY_BACK_BY_TIME_INFO *pstNetOut);
  64325. ///@brief 按时间方式回放--回调回放中断事件
  64326. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartPlayBackByTime(LLONG lLoginID, int nChannelID,
  64327. LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, HWND hWnd,
  64328. fDownLoadPosCallBack cbDownLoadPos, LDWORD dwPosUser,
  64329. fDataCallBack fDownLoadDataCallBack, LDWORD dwDataUser,
  64330. fRealPlayDisConnect fDisConnectCallBack, LDWORD dwDisUser, DWORD dwWaitTime = 10000);
  64331. ///@brief 按时间方式回放--抽帧播放(带宽不够时可以使用)
  64332. CLIENT_NET_API LLONG CALL_METHOD CLIENT_FramCotrolPlayBackByTime(LLONG lLoginID, int nChannelID, LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, HWND hWnd,
  64333. fDownLoadPosCallBack cbDownLoadPos, LDWORD dwPosUser,
  64334. fDataCallBack fDownLoadDataCallBack, LDWORD dwDataUser, unsigned int nCutFrameRate);
  64335. ///@brief 视频浓缩文件回放(lpRecordFile内存由用户申请释放)
  64336. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackBySynopsisFile(LLONG lLoginID,
  64337. LPNET_SYNOPSISFILE_INFO lpRecordFile,
  64338. HWND hWnd,
  64339. fDownLoadPosCallBack cbDownLoadPos,
  64340. LDWORD dwPosUser,
  64341. fDataCallBack fDownLoadDataCallBack,
  64342. LDWORD dwDataUser,
  64343. LDWORD dwUser);
  64344. ///@brief 多通道预览回放(pParam内存由用户申请释放)
  64345. CLIENT_NET_API LLONG CALL_METHOD CLIENT_MultiPlayBack(LLONG lLoginID, NET_MULTI_PLAYBACK_PARAM *pParam);
  64346. ///@brief 定位录像回放起始点
  64347. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SeekPlayBack(LLONG lPlayHandle, unsigned int offsettime, unsigned int offsetbyte);
  64348. ///@brief 按时间定位回放起始点
  64349. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SeekPlayBackByTime(LLONG lPlayHandle, LPNET_TIME lpSeekTime);
  64350. ///@brief 暂停或恢复录像回放
  64351. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PausePlayBack(LLONG lPlayHandle, BOOL bPause);
  64352. ///@brief 快进录像回放
  64353. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FastPlayBack(LLONG lPlayHandle);
  64354. ///@brief 慢进录像回放
  64355. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SlowPlayBack(LLONG lPlayHandle);
  64356. ///@brief 设置录像回放速度
  64357. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPlayBackSpeed(LLONG lPlayHandle, EM_PLAY_BACK_SPEED emSpeed);
  64358. ///@brief 回放速度类型
  64359. typedef enum tagEM_PLAYBACK_SPEED_TYPE
  64360. {
  64361. EM_PLAYBACK_SPEED_FAST, // 快放
  64362. EM_PLAYBACK_SPEED_SLOW, // 慢放
  64363. } EM_PLAYBACK_SPEED_TYPE;
  64364. ///@brief 回放方向
  64365. typedef enum tagEM_PLAYBACK_DIRECTION
  64366. {
  64367. EM_PLAYBACK_DIRECTION_FORWARD, // 正向
  64368. EM_PLAYBACK_DIRECTION_REVERSE, // 反向
  64369. } EM_PLAYBACK_DIRECTION;
  64370. ///@brief CLIENT_SetPlayBackCustomSpeed 接口输入参数
  64371. typedef struct tagNET_IN_PLAYBACK_CUSTOM_SPEED
  64372. {
  64373. DWORD dwSize; // 结构体大小
  64374. EM_PLAYBACK_SPEED_TYPE emSpeedType; // 速度类型
  64375. EM_PLAYBACK_DIRECTION emDirection; // 播放方向
  64376. int nPlaySpeed; // 播放速度, 建议使用2的倍数
  64377. } NET_IN_PLAYBACK_CUSTOM_SPEED;
  64378. ///@brief CLIENT_SetPlayBackCustomSpeed 接口输出参数
  64379. typedef struct tagNET_OUT_PLAYBACK_CUSTOM_SPEED
  64380. {
  64381. DWORD dwSize; // 结构体大小
  64382. } NET_OUT_PLAYBACK_CUSTOM_SPEED;
  64383. ///@brief 设置录像回放速度, 支持自定义设置速度
  64384. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPlayBackCustomSpeed(LLONG lPlayHandle, const NET_IN_PLAYBACK_CUSTOM_SPEED* pstInParam, NET_OUT_PLAYBACK_CUSTOM_SPEED* pstOutParam);
  64385. ///@brief 步进录像回放
  64386. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StepPlayBack(LLONG lPlayHandle, BOOL bStop);
  64387. ///@brief 控制播放方向--正放或者倒放
  64388. ///@brief bBackward FLASE 正放,TRUE 倒放
  64389. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PlayBackControlDirection(LLONG lPlayHandle, BOOL bBackward);
  64390. ///@brief 设置回放帧速
  64391. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetFramePlayBack(LLONG lPlayHandle, int framerate);
  64392. ///@brief 获取回放帧速
  64393. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFramePlayBack(LLONG lPlayHandle, int *fileframerate, int *playframerate);
  64394. ///@brief 恢复正常回放速度
  64395. CLIENT_NET_API BOOL CALL_METHOD CLIENT_NormalPlayBack(LLONG lPlayHandle);
  64396. ///@brief 智能检索回放(lpPlayBackParam内存用户申请释放)
  64397. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SmartSearchPlayBack(LLONG lPlayHandle, LPIntelligentSearchPlay lpPlayBackParam);
  64398. ///@brief 获取回放OSD时间
  64399. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPlayBackOsdTime(LLONG lPlayHandle, LPNET_TIME lpOsdTime, LPNET_TIME lpStartTime, LPNET_TIME lpEndTime);
  64400. ///@brief 停止录像回放
  64401. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopPlayBack(LLONG lPlayHandle);
  64402. ///@brief 补录入参信息
  64403. typedef struct tagNET_IN_SUPPLEMENT_BY_TIME_INFO
  64404. {
  64405. int nChannelID; // 通道号
  64406. NET_TIME stStartTime; // 开始时间
  64407. NET_TIME stStopTime; // 结束时间
  64408. HWND hWnd; // 播放窗格, 可为NULL
  64409. fDownLoadPosCallBack cbDownLoadPos; // 进度回调
  64410. LDWORD dwPosUser; // 进度回调用户信息
  64411. fDataCallBack fDownLoadDataCallBack; // 数据回调
  64412. LDWORD dwDataUser; // 数据回调用户信息
  64413. fVKInfoCallBack pVKInfoCallBack; // VK信息回调
  64414. LDWORD dwVKInfoUser; // VK信息回调用户信息
  64415. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stStartTime, stStopTime), 为FALSE表示仅下发stStartTime, stStopTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  64416. NET_TIME stuStartTimeRealUTC; // 录像的起始UTC时间(标准UTC时间)
  64417. NET_TIME stuEndTimeRealUTC; // 录像的结束UTC时间(标准UTC时间)
  64418. char bReserved[972]; // 预留字段
  64419. }NET_IN_SUPPLEMENT_BY_TIME_INFO;
  64420. ///@brief 补录出参信息
  64421. typedef struct tagNET_OUT_SUPPLEMENT_BY_TIME_INFO
  64422. {
  64423. char bReserved[1024]; // 预留字节
  64424. }NET_OUT_SUPPLEMENT_BY_TIME_INFO;
  64425. ///@brief 按时间方式补录,pstIn与pstOut需要用户申请内存
  64426. CLIENT_NET_API LLONG CALL_METHOD CLIENT_SupplementByTime(LLONG lLoginID, NET_IN_SUPPLEMENT_BY_TIME_INFO *pstIn, NET_OUT_SUPPLEMENT_BY_TIME_INFO *pstOut);
  64427. ///@brief 停止补录
  64428. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopSupplement(LLONG lSupplementHandle);
  64429. ///@brief 下载录像文件(lpRecordFile内存由用户申请释放)
  64430. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DownloadByRecordFile(LLONG lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, char *sSavedFileName, fDownLoadPosCallBack cbDownLoadPos, LDWORD dwUserData, BOOL bUseUTCTime = FALSE);
  64431. ///@brief 下载录像文件--扩展
  64432. ///@brief sSavedFileName不为空, 录像数据写入到该路径对应的文件; fDownLoadDataCallBack不为空, 录像数据通过回调函数返回
  64433. ///@brief pReserved 指加密录像的密码(长度不小于 8 的字符串)
  64434. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DownloadByRecordFileEx(LLONG lLoginID, LPNET_RECORDFILE_INFO lpRecordFile, char *sSavedFileName,
  64435. fDownLoadPosCallBack cbDownLoadPos, LDWORD dwUserData,
  64436. fDataCallBack fDownLoadDataCallBack, LDWORD dwDataUser, void* pReserved = NULL, BOOL bUseUTCTime = FALSE);
  64437. ///@brief 通过时间下载录像
  64438. ///@brief nRecordFileType 的类型参见 枚举EM_QUERY_RECORD_TYPE
  64439. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DownloadByTime(LLONG lLoginID, int nChannelId, int nRecordFileType, LPNET_TIME tmStart, LPNET_TIME tmEnd, char *sSavedFileName, fTimeDownLoadPosCallBack cbTimeDownLoadPos, LDWORD dwUserData);
  64440. ///@brief 通过时间下载录像--扩展
  64441. ///@brief sSavedFileName不为空, 录像数据写入到该路径对应的文件; fDownLoadDataCallBack不为空, 录像数据通过回调函数返回
  64442. ///@brief pReserved 指加密录像的密码(长度不小于 8 的字符串)
  64443. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DownloadByTimeEx(LLONG lLoginID, int nChannelId, int nRecordFileType, LPNET_TIME tmStart, LPNET_TIME tmEnd, char *sSavedFileName,
  64444. fTimeDownLoadPosCallBack cbTimeDownLoadPos, LDWORD dwUserData,
  64445. fDataCallBack fDownLoadDataCallBack, LDWORD dwDataUser, void* pReserved = NULL);
  64446. ///@brief 查询录像下载进度,单位KB
  64447. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDownloadPos(LLONG lFileHandle, int *nTotalSize, int *nDownLoadSize);
  64448. ///@brief 停止录像下载
  64449. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopDownload(LLONG lFileHandle);
  64450. ///@brief 暂停或恢复录像下载
  64451. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PauseDownload(LLONG lFileHandle, BOOL bPause);
  64452. /***** ------------------------------------- 指定回调数据格式 预览、回放、下载 相关接口 ---------------------*/
  64453. #define NET_DATA_CALL_BACK_VALUE 1000 // 配合EM_REAL_DATA_TYPE使用,码流转换后的数据回调函数(fRealDataCallBackEx,fDataCallBack)中的参数dwDataType的值
  64454. // 为所转换的码流类型加上NET_DATA_CALL_BACK_VALUE.
  64455. // 即,dwDataType = NET_DATA_CALL_BACK_VALUE + emDataType
  64456. // 在回调函数中接受码流转换后的数据,必须要先判断 dwDataType 的值是否为 NET_DATA_CALL_BACK_VALUE和emDataType之和
  64457. // 另,EM_REAL_DATA_TYPE_PRIVATE不用做此判断
  64458. ///@brief 音频数据类型
  64459. typedef enum tagEM_AUDIO_DATA_TYPE
  64460. {
  64461. EM_AUDIO_DATA_TYPE_DEFAULT = 0, // 默认
  64462. EM_AUDIO_DATA_TYPE_AAC, // 音频强制转换为AAC
  64463. EM_AUDIO_DATA_TYPE_G711A, // 音频强制转换为G711A
  64464. EM_AUDIO_DATA_TYPE_G711U, // 音频强制转换为G711U
  64465. EM_AUDIO_DATA_TYPE_MP2, // 音频强制转换为MP2
  64466. }EM_AUDIO_DATA_TYPE;
  64467. ///@brief 时间戳
  64468. typedef struct tagNET_DATA_CALL_BACK_TIME
  64469. {
  64470. DWORD dwYear; // 年
  64471. DWORD dwMonth; // 月
  64472. DWORD dwDay; // 日
  64473. DWORD dwHour; // 时
  64474. DWORD dwMinute; // 分
  64475. DWORD dwSecond; // 秒
  64476. DWORD dwMillisecond; // 毫秒
  64477. DWORD dwPTS; // pts 时间戳
  64478. DWORD dwDTS; // dts 时间戳
  64479. DWORD dwReserved[3]; // 预留字段
  64480. } NET_DATA_CALL_BACK_TIME;
  64481. ///@brief 帧类型
  64482. typedef enum tagEM_DATA_CALL_BACK_FRAM_TYPE
  64483. {
  64484. EM_DATA_CALL_BACK_FRAM_TYPE_UNKNOWN = 0, // 帧类型不可知
  64485. EM_DATA_CALL_BACK_FRAM_TYPE_VIDEO, // 帧类型是视频帧
  64486. EM_DATA_CALL_BACK_FRAM_TYPE_AUDIO, // 帧类型是音频帧
  64487. EM_DATA_CALL_BACK_FRAM_TYPE_DATA, // 帧类型是数据帧
  64488. }EM_DATA_CALL_BACK_FRAM_TYPE;
  64489. ///@brief 帧子类型
  64490. typedef enum tagEM_DATA_CALL_BACK_FRAM_SUB_TYPE
  64491. {
  64492. EM_DATA_CALL_BACK_FRAM_SUB_TYPE_INVALID = -1, //数据无效
  64493. EM_DATA_CALL_BACK_FRAM_SUB_TYPE_I_FRAME, //视频I帧
  64494. EM_DATA_CALL_BACK_FRAM_SUB_TYPE_P_FRAME, //视频P帧
  64495. EM_DATA_CALL_BACK_FRAM_SUB_TYPE_B_FRAME, //视频B帧
  64496. }EM_DATA_CALL_BACK_FRAM_SUB_TYPE;
  64497. ///@brief 回放数据回调
  64498. typedef struct tagNET_DATA_CALL_BACK_INFO
  64499. {
  64500. DWORD dwSize; // 结构体大小
  64501. DWORD dwDataType; // 数据类型
  64502. unsigned char *pBuffer; // 数据
  64503. DWORD dwBufSize; // 数据长度
  64504. NET_DATA_CALL_BACK_TIME stuTime; // 时间戳
  64505. EM_DATA_CALL_BACK_FRAM_TYPE emFramType; // 帧类型
  64506. EM_DATA_CALL_BACK_FRAM_SUB_TYPE emFramSubType; // 帧子类型
  64507. }NET_DATA_CALL_BACK_INFO;
  64508. ///@brief 回放数据回调函数原形(扩展)
  64509. typedef int (CALLBACK *fDataCallBackEx)(LLONG lRealHandle, NET_DATA_CALL_BACK_INFO *pDataCallBack, LDWORD dwUser);
  64510. ///@brief 开始实时预览并指定回调数据格式入参
  64511. typedef struct tagNET_IN_REALPLAY_BY_DATA_TYPE
  64512. {
  64513. DWORD dwSize; // 结构体大小
  64514. int nChannelID; // 通道编号
  64515. HWND hWnd; // 窗口句柄
  64516. DH_RealPlayType rType; // 码流类型
  64517. fRealDataCallBackEx cbRealData; // 数据回调函数
  64518. EM_REAL_DATA_TYPE emDataType; // 回调的数据类型
  64519. LDWORD dwUser; // 用户数据
  64520. const char* szSaveFileName; // 转换后的文件名
  64521. fRealDataCallBackEx2 cbRealDataEx; // 数据回调函数-扩展
  64522. EM_AUDIO_DATA_TYPE emAudioType; // 音频格式
  64523. fDataCallBackEx cbRealDataEx2; // 数据回调(扩展带时间戳,帧类型)
  64524. }NET_IN_REALPLAY_BY_DATA_TYPE;
  64525. ///@brief 开始实时预览并指定回调数据格式出参
  64526. typedef struct tagNET_OUT_REALPLAY_BY_DATA_TYPE
  64527. {
  64528. DWORD dwSize; // 结构体大小
  64529. }NET_OUT_REALPLAY_BY_DATA_TYPE;
  64530. ///@brief 指定回调数据类型 实施预览(预览), 数据回调函数 cbRealData 中得到的码流类型为 emDataType 所指定的类型
  64531. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RealPlayByDataType(LLONG lLoginID, const NET_IN_REALPLAY_BY_DATA_TYPE* pstInParam, NET_OUT_REALPLAY_BY_DATA_TYPE* pstOutParam, DWORD dwWaitTime);
  64532. ///@brief 开始回放并指定回调数据格式 入参
  64533. typedef struct tagNET_IN_PLAYBACK_BY_DATA_TYPE
  64534. {
  64535. DWORD dwSize; // 结构体大小
  64536. int nChannelID; // 通道编号
  64537. NET_TIME stStartTime; // 开始时间
  64538. NET_TIME stStopTime; // 结束时间
  64539. HWND hWnd; // 播放窗格, 可为NULL
  64540. fDownLoadPosCallBack cbDownLoadPos; // 进度回调
  64541. LDWORD dwPosUser; // 进度回调用户信息
  64542. fDataCallBack fDownLoadDataCallBack; // 数据回调
  64543. EM_REAL_DATA_TYPE emDataType; // 回调的数据类型
  64544. LDWORD dwDataUser; // 数据回调用户信息
  64545. int nPlayDirection; // 播放方向, 0:正放; 1:倒放;
  64546. EM_AUDIO_DATA_TYPE emAudioType; // 音频类型
  64547. fDataCallBackEx fDownLoadDataCallBackEx;// 数据回调(扩展带时间戳,帧类型)
  64548. }NET_IN_PLAYBACK_BY_DATA_TYPE;
  64549. ///@brief 开始回放并指定回调数据格式 出参
  64550. typedef struct tagNET_OUT_PLAYBACK_BY_DATA_TYPE
  64551. {
  64552. DWORD dwSize; // 结构体大小
  64553. }NET_OUT_PLAYBACK_BY_DATA_TYPE;
  64554. ///@brief 指定回调数据格式 开始回放, 数据回调函数 fDownLoadDataCallBack 中得到的码流类型为 emDataType 所指定的类型
  64555. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackByDataType(LLONG lLoginID, const NET_IN_PLAYBACK_BY_DATA_TYPE* pstInParam, NET_OUT_PLAYBACK_BY_DATA_TYPE* pstOutParam, DWORD dwWaitTime);
  64556. ///@brief 开始下载并指定回调数据格式 入参
  64557. typedef struct tagNET_IN_DOWNLOAD_BY_DATA_TYPE
  64558. {
  64559. DWORD dwSize; // 结构体大小
  64560. int nChannelID; // 通道编号
  64561. EM_QUERY_RECORD_TYPE emRecordType; // 录像类型
  64562. char* szSavedFileName; // 下载的文件路径
  64563. NET_TIME stStartTime; // 开始时间
  64564. NET_TIME stStopTime; // 结束时间
  64565. fTimeDownLoadPosCallBack cbDownLoadPos; // 进度回调
  64566. LDWORD dwPosUser; // 进度回调用户信息
  64567. fDataCallBack fDownLoadDataCallBack; // 数据回调
  64568. EM_REAL_DATA_TYPE emDataType; // 回调的数据类型
  64569. LDWORD dwDataUser; // 数据回调用户信息
  64570. EM_AUDIO_DATA_TYPE emAudioType; // 音频类型
  64571. }NET_IN_DOWNLOAD_BY_DATA_TYPE;
  64572. ///@brief 开始下载并指定回调数据格式 出参
  64573. typedef struct tagNET_OUT_DOWNLOAD_BY_DATA_TYPE
  64574. {
  64575. DWORD dwSize; // 结构体大小
  64576. }NET_OUT_DOWNLOAD_BY_DATA_TYPE;
  64577. ///@brief 指定码流类型 开始下载, 下载得到的文件和数据回调函数 fDownLoadDataCallBack 中得到的码流类型均为 emDataType 所指定的类型
  64578. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DownloadByDataType(LLONG lLoginID, const NET_IN_DOWNLOAD_BY_DATA_TYPE* pstInParam, NET_OUT_DOWNLOAD_BY_DATA_TYPE* pstOutParam, DWORD dwWaitTime);
  64579. ///@brief CLIENT_AdaptiveDownloadByTime 入参
  64580. typedef struct tagNET_IN_ADAPTIVE_DOWNLOAD_BY_TIME
  64581. {
  64582. DWORD dwSize; // 结构体大小
  64583. int nChannelID; // 通道编号
  64584. EM_QUERY_RECORD_TYPE emRecordType; // 录像类型
  64585. char* szSavedFileName; // 下载的文件路径
  64586. NET_TIME stStartTime; // 开始时间
  64587. NET_TIME stStopTime; // 结束时间
  64588. fTimeDownLoadPosCallBack cbDownLoadPos; // 进度回调
  64589. LDWORD dwPosUser; // 进度回调用户信息
  64590. fDataCallBack fDownLoadDataCallBack; // 数据回调
  64591. EM_REAL_DATA_TYPE emDataType; // 回调的数据类型
  64592. LDWORD dwDataUser; // 数据回调用户信息
  64593. char szEncryptPasswd[64]; // 加密录像密码,密码长度不小于8
  64594. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发stStartTime, stStopTime), 为FALSE表示仅下发stStartTime, stStopTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  64595. NET_TIME stuStartTimeRealUTC; // 录像的起始UTC时间(标准UTC时间)
  64596. NET_TIME stuEndTimeRealUTC; // 录像的结束UTC时间(标准UTC时间)
  64597. fTimeDownLoadPosCallBackEx cbDownLoadPosEx; // 进度回调的扩展(若使用标准UTC时间进行下载,则使用该回调)
  64598. fVKInfoCallBack pVKInfoCallBack; // VK信息回调
  64599. LDWORD dwVKInfoUser; // VK信息回调用户信息
  64600. }NET_IN_ADAPTIVE_DOWNLOAD_BY_TIME;
  64601. ///@brief CLIENT_AdaptiveDownloadByTime 出参
  64602. typedef struct tagNET_OUT_ADAPTIVE_DOWNLOAD_BY_TIME
  64603. {
  64604. DWORD dwSize; // 结构体大小
  64605. }NET_OUT_ADAPTIVE_DOWNLOAD_BY_TIME;
  64606. ///@brief 自适应速度的下载 需要调用 CLIENT_StopDownload 来释放下载资源
  64607. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AdaptiveDownloadByTime( LLONG lLoginID, const NET_IN_ADAPTIVE_DOWNLOAD_BY_TIME* pstInParam, NET_OUT_ADAPTIVE_DOWNLOAD_BY_TIME* pstOutParam, DWORD dwWaitTime );
  64608. ///@brief CLIENT_DownloadByFileSelfAdapt 入参
  64609. typedef struct tagNET_IN_DOWNLOAD_BYFILE_SELFADAPT
  64610. {
  64611. DWORD dwSize; // 结构体大小
  64612. int nChannelID; // 通道编号
  64613. EM_QUERY_RECORD_TYPE emRecordType; // 录像类型
  64614. char szFileName[MAX_PATH]; // 下载的文件路径
  64615. unsigned int size; // 文件长度, 单位为Kbyte
  64616. fDownLoadPosCallBack cbDownLoadPos; // 进度回调
  64617. LDWORD dwPosUser; // 进度回调用户信息
  64618. fDataCallBack fDownLoadDataCallBack; // 数据回调
  64619. EM_REAL_DATA_TYPE emDataType; // 回调的数据类型
  64620. LDWORD dwDataUser; // 数据回调用户信息
  64621. /* 扩展字段 */
  64622. unsigned int nFrameNum; // 文件总帧数
  64623. NET_TIME stuStartTime; // 开始时间
  64624. NET_TIME stuEndTime; // 结束时间
  64625. unsigned int nDriveno; // 磁盘号(区分网络录像和本地录像的类型,0-127表示本地录像,其中64表示光盘1,128表示网络录像)
  64626. unsigned int nStartCluster; // 起始簇号
  64627. BYTE bImportantRecID; // 0:普通录像 1:重要录像
  64628. BYTE bHint; // 文件定位索引(nRecordFileType==4<图片>时,bImportantRecID<<8 +bHint ,组成图片定位索引 )
  64629. BYTE bRecType; // 0-主码流录像 1-辅码1流录像 2-辅码流2 3-辅码流3录像
  64630. char szEncryptPasswd[64]; // 加密录像密码,密码长度不小于8
  64631. fVKInfoCallBack pVKInfoCallBack; // VK信息回调
  64632. LDWORD dwVKInfoUser; // VK信息回调用户信息
  64633. }NET_IN_DOWNLOAD_BYFILE_SELFADAPT;
  64634. ///@brief CLIENT_DownloadByFileSelfAdapt 出参
  64635. typedef struct tagNET_OUT_DOWNLOAD_BYFILE_SELFADAPT
  64636. {
  64637. DWORD dwSize; // 结构体大小
  64638. }NET_OUT_DOWNLOAD_BYFILE_SELFADAPT;
  64639. ///@brief 自适应速度的按文件下载录像, pstInParam 和pstOutParam 资源由用户申请和释放
  64640. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DownloadByFileSelfAdapt(LLONG lLoginID, const NET_IN_DOWNLOAD_BYFILE_SELFADAPT* pstInParam, NET_OUT_DOWNLOAD_BYFILE_SELFADAPT* pstOutParam, DWORD dwWaitTime);
  64641. ///@brief 局部放大(pSrcRect内存由用户申请释放)
  64642. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDisplayRegion(LLONG lPlayHandle,DWORD nRegionNum, DH_DISPLAYRREGION *pSrcRect, HWND hDestWnd, BOOL bEnable);
  64643. ///@brief 开始查找录像文件帧信息(pInParam, pOutParam内存由用户申请释放)
  64644. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindFrameInfo(LLONG lLoginID, NET_IN_FIND_FRAMEINFO_PRAM *pInParam, NET_OUT_FIND_FRAMEINFO_PRAM* pOutParam, int nWaitTime);
  64645. ///@brief 查找录像文件帧信息,按指定信息条数查询(pInParam, pOutParam内存由用户申请释放)
  64646. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindNextFrameInfo(LLONG lFindHandle, NET_IN_FINDNEXT_FRAMEINFO_PRAM *pInParam, NET_OUT_FINDNEXT_FRAMEINFO_PRAM* pOutParam, int nWaitTime);
  64647. ///@brief 设置标签信息
  64648. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FileStreamSetTags(LLONG lFindHandle, NET_IN_FILE_STREAM_TAGS_INFO *pInParam, NET_OUT_FILE_STREAM_TAGS_INFO *pOutParam, int nWaitTime);
  64649. ///@brief 获取标签信息
  64650. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FileStreamGetTags(LLONG lFindHandle, NET_IN_FILE_STREAM_GET_TAGS_INFO *pInParam, NET_OUT_FILE_STREAM_GET_TAGS_INFO *pOutParam, int nWaitTime);
  64651. ///@brief 清除标签信息
  64652. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FileStreamClearTags(LLONG lFindHandle, NET_IN_FILE_STREAM_TAGS_INFO *pInParam, NET_OUT_FILE_STREAM_TAGS_INFO *pOutParam, int nWaitTime);
  64653. ///@brief 过滤查询标签信息
  64654. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FileStreamFilterTags(LLONG lFindHandle, NET_IN_FILE_STREAM_FILTER_TAGS_INFO *pInParam, NET_OUT_FILE_STREAM_GET_TAGS_INFO *pOutParam, int nWaitTime);
  64655. ///@brief 结束录像文件查找
  64656. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindFrameInfoClose(LLONG lFindHandle);
  64657. ///@brief pInParam, pOutParam内存由用户申请释放
  64658. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FileStreamMotionMatch(LLONG lLoginID, const NET_IN_MOTIONMATCH_PARAM *pInParam, NET_OUT_MOTIONMATCH_PARAM* pOutParam, int nWaitTime);
  64659. ///@brief 查询标签信息, lFindHandle通过CLIENT_FindFrameInfo获取,查询到的标签是CLIENT_TagManagerStartTag/CLIENT_TagManagerSetSubTag/CLIENT_TagManagerStopTag设置的
  64660. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FileStreamFindTags(LLONG lFindHandle, NET_IN_FINDTAGS_INFO *pInParam, NET_OUT_FINDTAGS_INFO *pOutParam, int nWaitTime);
  64661. ///@brief 获取标签状态
  64662. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TagManagerGetTagState(LLONG lLoginID, NET_IN_TAGMANAGER_GETTAGSTATE_INFO *pInParam, NET_OUT_TAGMANAGER_GETTAGSTATE_INFO *pOutParam, int nWaitTime);
  64663. ///@brief 开始打标签
  64664. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TagManagerStartTag(LLONG lLoginID, NET_IN_TAGMANAGER_STARTTAG_INFO *pInParam, NET_OUT_TAGMANAGER_STARTTAG_INFO *pOutParam, int nWaitTime);
  64665. ///@brief 打子标签, 子标签个数不应超过20,否则失败
  64666. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TagManagerSetSubTag(LLONG lLoginID, NET_IN_TAGMANAGER_SETSUBTAG_INFO *pInParam, NET_OUT_TAGMANAGER_SETSUBTAG_INFO *pOutParam, int nWaitTime);
  64667. ///@brief 停止打标签
  64668. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TagManagerStopTag(LLONG lLoginID, NET_IN_TAGMANAGER_STOPTAG_INFO *pInParam, NET_OUT_TAGMANAGER_STOPTAG_INFO *pOutParam, int nWaitTime);
  64669. ///@brief 获取标签查询能力
  64670. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TagManagerGetCaps(LLONG lLoginID, NET_IN_TAGMANAGER_GETCAPS_INFO *pInParam, NET_OUT_TAGMANAGER_GETCAPS_INFO *pOutParam, int nWaitTime);
  64671. ///@brief 开始查询标签信息
  64672. CLIENT_NET_API LLONG CALL_METHOD CLIENT_TagManagerStartFind(LLONG lLoginID, NET_IN_TAGMANAGER_STARTFIND_INFO *pInParam, NET_OUT_TAGMANAGER_STARTFIND_INFO *pOutParam, int nWaitTime);
  64673. ///@brief 获取标签查询结果信息
  64674. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TagManagerDoFind(LLONG lFindID, NET_IN_TAGMANAGER_DOFIND_INFO *pInParam, NET_OUT_TAGMANAGER_DOFIND_INFO *pOutParam, int nWaitTime);
  64675. ///@brief 停止查询标签信息
  64676. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TagManagerStopFind(LLONG lFindID);
  64677. ///@brief 设置报警回调函数
  64678. CLIENT_NET_API void CALL_METHOD CLIENT_SetDVRMessCallBack(fMessCallBack cbMessage,LDWORD dwUser);
  64679. ///@brief 设置报警回调函数扩展接口Ex1
  64680. CLIENT_NET_API void CALL_METHOD CLIENT_SetDVRMessCallBackEx1(fMessCallBackEx1 cbMessage, LDWORD dwUser);
  64681. ///@brief 设置报警回调函数扩展接口Ex2
  64682. CLIENT_NET_API void CALL_METHOD CLIENT_SetDVRMessCallBackEx2(fMessCallBackEx2 cbMessage, LDWORD dwUser);
  64683. ///@brief 向设备订阅报警
  64684. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartListen(LLONG lLoginID);
  64685. ///@brief 向设备订阅报警--扩展
  64686. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartListenEx(LLONG lLoginID);
  64687. ///@brief 停止订阅报警
  64688. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopListen(LLONG lLoginID);
  64689. ///@brief 报警复位
  64690. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AlarmReset(LLONG lLoginID, DWORD dwAlarmType, int nChannel, void* pReserved = NULL, int nWaitTime = 1000);
  64691. ///@brief CLIENT_SetServerParam 接口参数
  64692. typedef struct tagNET_ACTIVE_RIGST_PARAMS
  64693. {
  64694. DWORD dwSize; // 结构体大小
  64695. BOOL bManualLogout; // 是否手动登出(主动注册的设备断线后默认是SDK自动登出)
  64696. } NET_ACTIVE_RIGST_PARAMS;
  64697. ///@brief 设置主动注册的全局参数
  64698. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetServerParam(NET_ACTIVE_RIGST_PARAMS* pParam);
  64699. ///@brief 主动注册功能,启动服务;nTimeout参数已无效(默认为设备断线后SDK内部登出)
  64700. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ListenServer(char* ip, WORD port, int nTimeout, fServiceCallBack cbListen, LDWORD dwUserData);
  64701. ///@brief 停止服务
  64702. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopListenServer(LLONG lServerHandle);
  64703. ///@brief 响应设备的注册请求
  64704. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ResponseDevReg(char *devSerial, char* ip, WORD port, BOOL bAccept);
  64705. ///@brief 重定向服务器回调函数原形
  64706. ///@param[out] lDevHandle : 设备句柄
  64707. ///@param[out] pDevIp : 设备ip
  64708. ///@param[out] wDevPort : 设备端口
  64709. ///@param[out] dwUserData : 用户参数
  64710. typedef int (CALLBACK *fRedirectServerCallBack)( LLONG lDevHandle, char *pDevIp, WORD wDevPort, LDWORD dwUserData);
  64711. ///@brief fRedirectServerCallBackEx输入参数
  64712. typedef struct tagNET_CB_REDIRECT_SERVER_CALLBACK_INFO
  64713. {
  64714. char* szIP; // 主动注册重定向服务器接收到的设备IP
  64715. UINT nPort; // 主动注册重定向服务器接收到的设备端口
  64716. char szDeviceID[256]; // 主动注册重定向服务器接收到的设备ID
  64717. BYTE byReserved[1024]; // 预留字节
  64718. }NET_CB_REDIRECT_SERVER_CALLBACK_INFO;
  64719. ///@brief 重定向服务器回调函数原形扩展
  64720. typedef int (CALLBACK *fRedirectServerCallBackEx)( LLONG lDevHandle, NET_CB_REDIRECT_SERVER_CALLBACK_INFO *pInParam, LDWORD dwUserData);
  64721. ///@brief 开启重定向服务
  64722. // Ip : 开启服务的IP
  64723. // port : 开启服务端口
  64724. // fRedirectServerCallBack : 设备重定向回调函数
  64725. // dwUserData : 用户参数, 与fRedirectServerCallBack绑定
  64726. // 返回值: 服务句柄
  64727. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartRedirectService(char* ip, WORD port,fRedirectServerCallBack cbListen, LDWORD dwUserData);
  64728. ///@brief CLIENT_StartRedirectServiceEx接口输入参数
  64729. typedef struct tagNET_IN_START_REDIRECT_SERVICE
  64730. {
  64731. DWORD dwSize; // 结构体大小, 需要赋值为当前结构体所在大小
  64732. BYTE byReserved[4]; // 预留字节
  64733. char szIP[64]; // 主动注册重定向服务器IP
  64734. WORD nPort; // 主动注册重定向服务器端口
  64735. BYTE byReserved1[6]; // 预留字节
  64736. fRedirectServerCallBackEx cbFuncEx; // 设备重定向回调函数(扩展)
  64737. LDWORD dwUserData; // 用户参数, 与fRedirectServerCallBackEx绑定
  64738. }NET_IN_START_REDIRECT_SERVICE;
  64739. ///@brief CLIENT_StartRedirectServiceEx接口输出参数
  64740. typedef struct tagNET_OUT_START_REDIRECT_SERVICE
  64741. {
  64742. DWORD dwSize; // 结构体大小, 需要赋值为当前结构体所在大小
  64743. }NET_OUT_START_REDIRECT_SERVICE;
  64744. ///@brief 开启重定向服务扩展接口
  64745. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartRedirectServiceEx(NET_IN_START_REDIRECT_SERVICE *pInParam, NET_OUT_START_REDIRECT_SERVICE *pOutParam);
  64746. ///@brief 停止重定向服务
  64747. // lServerHandle : 服务句柄
  64748. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopRedirectService(LLONG lServerHandle);
  64749. ///@brief 设置重定向服务器的IP和Port
  64750. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetAutoRegisterServerInfo(LLONG lDevHandle, char* ARSIP, WORD ARSPort,WORD nRetry);
  64751. ///@brief 请求设备推流的码流类型
  64752. typedef enum tagEM_DEV_PUSH_STREAM_TYPE
  64753. {
  64754. EM_DEV_PUSH_STREAM_TYPE_MAJOR, // 主码流
  64755. EM_DEV_PUSH_STREAM_TYPE_MINOR1, // 辅码流1
  64756. EM_DEV_PUSH_STREAM_TYPE_MINOR2, // 辅码流2
  64757. }EM_DEV_PUSH_STREAM_TYPE;
  64758. ///@brief 请求设备开始推流入参
  64759. typedef struct tagNET_IN_REQUEST_START_PUSH_STREAM_TYPE
  64760. {
  64761. DWORD dwSize; // 结构体大小
  64762. int nChannelID; // 通道号
  64763. EM_DEV_PUSH_STREAM_TYPE emStreamType; // 码流类型
  64764. char szSSID[MAX_PUSH_STREAM_AUTH_SSID]; // 推流鉴权ID,64位长度
  64765. char szReciveServerIP[DH_MAX_IPADDR_LEN_EX]; // 收流服务器IP
  64766. int nReciveServerPort; // 收流服务器端口
  64767. }NET_IN_REQUEST_START_PUSH_STREAM_TYPE;
  64768. ///@brief 请求设备开始推流的出参
  64769. typedef struct tagNET_OUT_REQUEST_START_PUSH_STREAM_TYPE
  64770. {
  64771. DWORD dwSize; // 结构体大小
  64772. }NET_OUT_REQUEST_START_PUSH_STREAM_TYPE;
  64773. ///@brief CLIENT_ReqDevStopPushStream入参
  64774. typedef struct tagNET_IN_REQUEST_STOP_PUSH_STREAM_TYPE
  64775. {
  64776. DWORD dwSize; // 结构体大小
  64777. char szSSID[MAX_PUSH_STREAM_AUTH_SSID]; // 推流鉴权ID,64位长度
  64778. }NET_IN_REQUEST_STOP_PUSH_STREAM_TYPE;
  64779. ///@brief CLIENT_ReqDevStopPushStream出参
  64780. typedef struct tagNET_OUT_REQUEST_STOP_PUSH_STREAM_TYPE
  64781. {
  64782. DWORD dwSize; // 结构体大小
  64783. }NET_OUT_REQUEST_STOP_PUSH_STREAM_TYPE;
  64784. ///@brief 查询设备的某一路推流信息入参
  64785. typedef struct tagNET_IN_QUERY_PUSH_STREAM_INFO
  64786. {
  64787. DWORD dwSize; // 结构体大小
  64788. char szSSID[MAX_PUSH_STREAM_AUTH_SSID]; // 推流鉴权ID,64位长度
  64789. }NET_IN_QUERY_PUSH_STREAM_INFO;
  64790. ///@brief 查询设备的某一路推流信息出参
  64791. typedef struct tagNET_OUT_QUERY_PUSH_STREAM_INFO
  64792. {
  64793. DWORD dwSize; // 结构体大小
  64794. char szReciveServerIP[DH_MAX_IPADDR_LEN_EX]; // 收流服务器IP
  64795. int nReciveServerPort; // 收流服务器端口
  64796. }NET_OUT_QUERY_PUSH_STREAM_INFO;
  64797. ///@brief 请求设备推流到收流服务器
  64798. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ReqDevStartPushStream(LLONG lLoginID,const NET_IN_REQUEST_START_PUSH_STREAM_TYPE* pInParam, NET_OUT_REQUEST_START_PUSH_STREAM_TYPE* pOutParam, int nWaitTime);
  64799. ///@brief 请求设备停止推流到收流服务器
  64800. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ReqDevStopPushStream(LLONG lLoginID,const NET_IN_REQUEST_STOP_PUSH_STREAM_TYPE* pInParam, NET_OUT_REQUEST_STOP_PUSH_STREAM_TYPE* pOutParam, int nWaitTime);
  64801. ///@brief 查询设备推流信息
  64802. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDevPushStreamInfo(LLONG lLoginID, const NET_IN_QUERY_PUSH_STREAM_INFO* pInParam, NET_OUT_QUERY_PUSH_STREAM_INFO* pOutParam, int nWaitTime);
  64803. ///@brief 推流设备的链接状态
  64804. typedef enum tagEM_PUSH_STREAM_CONNECT_STATE
  64805. {
  64806. EM_PUSH_STREAM_CONNECT_STATE_SETUP, // 推流客户端连接建立
  64807. EM_PUSH_STREAM_CONNECT_STATE_TEARDOWN, // 推流客户端连接关闭
  64808. }EM_PUSH_STREAM_CONNECT_STATE;
  64809. ///@brief 推流设备的状态回调:链接建立,链接断开
  64810. // lClientHandle : 客户端链接句柄
  64811. // clientIP : 客户端链接IP
  64812. // clientPort : 客户端链接端口
  64813. // clientConState : 客户端链接状态
  64814. // dwUserData : 用户参数
  64815. typedef void (CALLBACK *fStreamClientState)(LLONG lClientHandle, char* clientIP, int clientPort, EM_PUSH_STREAM_CONNECT_STATE clientConState, LDWORD dwUserData);
  64816. ///@brief 推流数据信息回调
  64817. // lClientHandle : 客户端链接句柄
  64818. // pBuffer : 码流数据
  64819. // dwBufSize : 码流数据大小
  64820. // dwUserData : 用户参数
  64821. typedef void (CALLBACK *fStreamDataComing)(LLONG lClientHandle, BYTE *pBuffer, DWORD dwBufSize,LDWORD dwUserData);
  64822. ///@brief 开启收流服务
  64823. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartReceiveStreamService(char *ip, WORD port,fStreamClientState cbClientState,LDWORD dwUserData1, fStreamDataComing cbLiveStreamData, LDWORD dwUserData2);
  64824. ///@brief 关闭收流服务
  64825. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopReceiveStreamService(LLONG lServerHandle);
  64826. ///@brief 停止某一路设备的推流
  64827. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopStreamClient(LLONG lClientHandle);
  64828. ///@brief 设置推流链接校验的SSID
  64829. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetStreamClientAuthID(LLONG lServerHandle, const char* pSSID);
  64830. ///@brief 报警上传功能,启动服务;dwTimeOut参数已无效
  64831. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartService(WORD wPort, char *pIp = NULL, fServiceCallBack pfscb = NULL, DWORD dwTimeOut = 0xffffffff, LDWORD dwUserData = 0);
  64832. ///@brief 停止服务
  64833. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopService(LLONG lHandle);
  64834. ///@brief 设置语音对讲模式,客户端方式还是服务器方式(pValue内存由用户申请释放,大小参照EM_USEDEV_MODE对应的结构体)
  64835. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDeviceMode(LLONG lLoginID, EM_USEDEV_MODE emType, void* pValue);
  64836. ///@brief 打开语音对讲
  64837. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartTalkEx(LLONG lLoginID, pfAudioDataCallBack pfcb, LDWORD dwUser);
  64838. ///@brief CLIENT_StartTalkByDataType接口 入参
  64839. typedef struct tagNET_IN_START_TALK_INFO
  64840. {
  64841. DWORD dwSize; // 结构体大小
  64842. fAudioDataCallBackEx pfAudioDataCallBackEx; // 音频数据回调函数
  64843. LDWORD dwUser; // pfAudioDataCallBackEx回调对应的用户指针
  64844. }NET_IN_START_TALK_INFO;
  64845. ///@brief CLIENT_StartTalkByDataType接口 出参
  64846. typedef struct tagNET_OUT_START_TALK_INFO
  64847. {
  64848. DWORD dwSize; // 结构体大小
  64849. }NET_OUT_START_TALK_INFO;
  64850. ///@brief 打开语音对讲,这个接口可以从回调中得到音频裸数据,而CLIENT_StartTalkEx只能得到带音频头的数据
  64851. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartTalkByDataType(LLONG lLoginID, const NET_IN_START_TALK_INFO* pInParam, NET_OUT_START_TALK_INFO* pOutParam,int nWaittime);
  64852. ///@brief 对讲方向
  64853. typedef enum EM_TALK_DIRECTION
  64854. {
  64855. EM_TALK_DIRECTION_UNKNOWN = 0, // 未知
  64856. EM_TALK_DIRECTION_UNI, // 单向对讲,包括喊话:客户端到设备
  64857. EM_TALK_DIRECTION_BILATERAL, // 双向对讲
  64858. EM_TALK_DIRECTION_LISTEN, // 单向监听:设备到客户端
  64859. }EM_TALK_DIRECTION;
  64860. ///@brief 获取对讲方向:lTalkHandle 为 CLIENT_StartTalkEx返回值
  64861. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetTalkDirection(LLONG lTalkHandle, EM_TALK_DIRECTION* pDirection);
  64862. ///@brief 开始PC端录音
  64863. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecordStart();
  64864. ///@brief 结束PC端录音
  64865. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecordStop();
  64866. ///@brief 开始PC端录音(对CLIENT_RecordStart()扩展)
  64867. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecordStartEx(LLONG lLoginID);
  64868. ///@brief 结束PC端录音(对CLIENT_RecordStop()扩展)
  64869. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecordStopEx(LLONG lLoginID);
  64870. ///@brief 发送语音数据到设备(pSendBuf内存由用户申请释放)
  64871. CLIENT_NET_API LONG CALL_METHOD CLIENT_TalkSendData(LLONG lTalkHandle, char *pSendBuf, DWORD dwBufSize);
  64872. ///@brief 音频文件发送进度回调函数
  64873. typedef void (CALLBACK *fTalkSendPosCallBack) (LLONG lTalkHandle,DWORD dwTotalSize, DWORD dwSendSize, LDWORD dwUser);
  64874. ///@brief CLIENT_TalkSendDataByFile接口 入参
  64875. typedef struct tagNET_IN_TALK_SEND_DATA_FILE
  64876. {
  64877. DWORD dwSize; // 结构体大小
  64878. char* pFilePath; // 音频文件全路径
  64879. fTalkSendPosCallBack cbSendPos; // 音频文件发送进度
  64880. LDWORD dwUser; // 用户参数
  64881. DWORD dwSendInterval; // 发送间隔百分比,0和100表示使用sdk默认计算的间隔,
  64882. // 小于100发送更快,大于100,发送更慢
  64883. BOOL bNeedHead; // 是否需要加音频头。
  64884. // TRUE,表示需要SDK根据下面的音频信息加音频头;
  64885. // FALSE,表示不需要SDK根据音频信息加音频头,直接发送pFilePath路径指向的数据给设备。
  64886. /* 音频信息 */
  64887. DH_TALK_CODING_TYPE emEncodeType; // 音频编码格式
  64888. int nAudioBit; // 位数,如8或16等
  64889. DWORD dwSampleRate; // 采样率,如8000或16000等
  64890. }NET_IN_TALK_SEND_DATA_FILE;
  64891. ///@brief CLIENT_TalkSendDataByFile接口 出参
  64892. typedef struct tagNET_OUT_TALK_SEND_DATA_FILE
  64893. {
  64894. DWORD dwSize; // 结构体大小
  64895. }NET_OUT_TALK_SEND_DATA_FILE;
  64896. ///@brief CLIENT_TalkSendDataByStream接口 入参
  64897. typedef struct tagNET_IN_TALK_SEND_DATA_STREAM
  64898. {
  64899. DWORD dwSize; // 结构体大小
  64900. BYTE* pBuf; // 音频流缓冲
  64901. DWORD dwBufSize; // 音频流缓冲大小
  64902. BOOL bNeedHead; // 是否需要加音频头。
  64903. // TRUE,表示需要SDK根据下面的音频信息加音频头;
  64904. // FALSE,表示不需要SDK根据音频信息加音频头,直接发送pBuf指向的数据给设备。
  64905. /* 音频信息 */
  64906. DH_TALK_CODING_TYPE emEncodeType; // 音频编码格式
  64907. int nAudioBit; // 位数,如8或16等
  64908. DWORD dwSampleRate; // 采样率,如8000或16000等
  64909. }NET_IN_TALK_SEND_DATA_STREAM;
  64910. ///@brief CLIENT_TalkSendDataByStream接口 出参
  64911. typedef struct tagNET_OUT_TALK_SEND_DATA_STREAM
  64912. {
  64913. DWORD dwSize; // 结构体大小
  64914. }NET_OUT_TALK_SEND_DATA_STREAM;
  64915. ///@brief 发送语音数据到设备,数据源不带音频头,接口内部会根据音频格式加头发送。
  64916. // 返回值为发送给设备的音频流长度,-1表示接口调用失败
  64917. CLIENT_NET_API LONG CALL_METHOD CLIENT_TalkSendDataByStream(LLONG lTalkHandle, const NET_IN_TALK_SEND_DATA_STREAM *pInParam, NET_OUT_TALK_SEND_DATA_STREAM* pOutParam);
  64918. ///@brief 发送语音文件中的音频数据到设备
  64919. // 成功返回 lTalkHandle, 失败返回 0
  64920. CLIENT_NET_API LLONG CALL_METHOD CLIENT_TalkSendDataByFile(LLONG lTalkHandle, const NET_IN_TALK_SEND_DATA_FILE *pInParam, NET_OUT_TALK_SEND_DATA_FILE* pOutParam);
  64921. ///@brief 停止发送音频文件
  64922. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopTalkSendDataByFile(LLONG lTalkHandle);
  64923. ///@brief 解码音频数据(pAudioDataBuf内存由用户申请释放)
  64924. CLIENT_NET_API void CALL_METHOD CLIENT_AudioDec(char *pAudioDataBuf, DWORD dwBufSize);
  64925. ///@brief 解码音频数据扩展(pAudioDataBuf内存由用户申请释放)
  64926. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AudioDecEx(LLONG lTalkHandle, char *pAudioDataBuf, DWORD dwBufSize);
  64927. ///@brief 设置语音对讲的音量
  64928. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetAudioClientVolume(LLONG lTalkHandle, WORD wVolume);
  64929. ///@brief 停止语音对讲
  64930. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopTalkEx(LLONG lTalkHandle);
  64931. ///@brief 添加设备到广播组
  64932. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AudioBroadcastAddDev(LLONG lLoginID);
  64933. ///@brief 从广播组中删除设备
  64934. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AudioBroadcastDelDev(LLONG lLoginID);
  64935. ///@brief 音频编码--初始化(特定标准格式->私有格式)
  64936. CLIENT_NET_API int CALL_METHOD CLIENT_InitAudioEncode(DH_AUDIO_FORMAT aft);
  64937. ///@brief 音频编码--数据编码(lpInBuf, lpOutBuf内存由用户申请释放)
  64938. CLIENT_NET_API int CALL_METHOD CLIENT_AudioEncode(LLONG lTalkHandle, BYTE *lpInBuf, DWORD *lpInLen, BYTE *lpOutBuf, DWORD *lpOutLen);
  64939. ///@brief 音频编码--完成退出
  64940. CLIENT_NET_API int CALL_METHOD CLIENT_ReleaseAudioEncode();
  64941. ///@brief 查询设备日志(pLogBuffer内存由用户申请释放)
  64942. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryLog(LLONG lLoginID, char *pLogBuffer, int maxlen, int *nLogBufferlen, int waittime=3000);
  64943. ///@brief 查询设备日志,以分页方式查询(pQueryParam, pLogBuffer内存由用户申请释放)
  64944. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDeviceLog(LLONG lLoginID, QUERY_DEVICE_LOG_PARAM *pQueryParam, char *pLogBuffer, int nLogBufferLen, int *pRecLogNum, int waittime=3000);
  64945. ///@brief 查询设备日志条数(pInParam, pOutParam内存由用户申请释放)
  64946. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDevLogCount(LLONG lLoginID, NET_IN_GETCOUNT_LOG_PARAM *pInParam, NET_OUT_GETCOUNT_LOG_PARAM* pOutParam , int waittime=3000);
  64947. ///@brief 设置日志回调函数
  64948. CLIENT_NET_API void CALL_METHOD CLIENT_SetSubscribeLogCallBack(fSubLogDataCallBack pLogDataCB, LDWORD dwUser);
  64949. ///@brief 订阅设备日志
  64950. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartSubscribeLog(LLONG lLoginID, int nWaittime, void* pReserved);
  64951. ///@brief 停止订阅设备日志
  64952. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopSubscribeLog(LLONG lSubLogHandle);
  64953. ///@brief 查道通道录像状态(pRSBuffer内存由用户申请释放)
  64954. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryRecordState(LLONG lLoginID, char *pRSBuffer, int maxlen, int *nRSBufferlen, int waittime=1000);
  64955. ///@brief 查道辅码流通道录像状态(返回字节数与通道数对应, 每个字节表示对应通道的辅码流录像控制状态,0-关闭,1-手动,2-自动,pRSBuffer内存由用户申请释放)
  64956. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryExtraRecordState(LLONG lLoginID, char *pRSBuffer, int maxlen, int *nRSBufferlen, void *pReserved, int waittime=1000);
  64957. ///@brief 查询设备状态(pBuf内存由用户申请释放,根据nType类型确定相应结构体,至少需要申请结构体大小的内存)
  64958. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDevState(LLONG lLoginID, int nType, char *pBuf, int nBufLen, int *pRetLen, int waittime=1000);
  64959. ///@brief 查询远程设备状态,nType为DH_DEVSTATE_ALARM_FRONTDISCONNECT时,通道号从1开始(pBuf内存由用户申请释放)
  64960. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryRemotDevState(LLONG lLoginID, int nType, int nChannelID, char *pBuf, int nBufLen, int *pRetLen, int waittime=1000);
  64961. ///@brief 查询系统能力信息(pSysInfoBuffer内存由用户申请释放,大小参照DH_SYS_ABILITY对应的结构体,若nSystemType为 ABILITY_DYNAMIC_CONNECT ,内存大小至少为sizeof(BOOL),若nSystemType为ABILITY_TRIGGER_MODE,内存大小为sizeof(int))
  64962. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QuerySystemInfo(LLONG lLoginID, int nSystemType, char *pSysInfoBuffer, int maxlen, int *nSysInfolen, int waittime=1000);
  64963. ///@brief 新系统能力查询接口,查询系统能力信息(以Json格式,具体见配置SDK)(szOutBuffer内存由用户申请释放)
  64964. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryNewSystemInfo(LLONG lLoginID, char* szCommand, int nChannelID, char* szOutBuffer, DWORD dwOutBufferSize, int *error, int waittime=1000);
  64965. ///@brief 新系统能力查询接口扩展,查询系统能力信息,入参新增扩展数据(以Json格式,具体见配置SDK)(szOutBuffer内存由用户申请释放)
  64966. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryNewSystemInfoEx(LLONG lLoginID, char* szCommand, int nChannelID, char* szOutBuffer, DWORD dwOutBufferSize, int *error, void* pExtendInfo = NULL, int waittime=1000);
  64967. ///@brief 获取通道码流
  64968. CLIENT_NET_API LONG CALL_METHOD CLIENT_GetStatiscFlux(LLONG lLoginID, LLONG lPlayHandle);
  64969. ///@brief 获取云台信息(lpOutBuffer内存由用户申请释放)
  64970. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPtzOptAttr(LLONG lLoginID,DWORD dwProtocolIndex,LPVOID lpOutBuffer,DWORD dwBufLen,DWORD *lpBytesReturned,int waittime=500);
  64971. ///@brief CLIENT_GetDevCaps 接口 NET_REMOTE_VIDEO_IN_ANALYSE_CAPS 入参
  64972. typedef struct tagNET_IN_REMOTE_VIDEO_IN_ANALYSE_CAPS
  64973. {
  64974. DWORD dwSize; // 结构体大小
  64975. int nChannel; // 通道号
  64976. }NET_IN_REMOTE_VIDEO_IN_ANALYSE_CAPS;
  64977. ///@brief CLIENT_GetDevCaps 接口 NET_REMOTE_VIDEO_IN_ANALYSE_CAPS 出参
  64978. typedef struct tagNET_OUT_REMOTE_VIDEO_IN_ANALYSE_CAPS
  64979. {
  64980. DWORD dwSize; // 结构体大小
  64981. int nSceneNum; // 支持的所有大类业务列表个数
  64982. EM_SCENE_CLASS_TYPE emSceneType[32]; // 支持的所有大类业务列表
  64983. }NET_OUT_REMOTE_VIDEO_IN_ANALYSE_CAPS;
  64984. ///@brief CLIENT_GetDevCaps 接口 NET_SUPPORT_UTC_CAPS 入参
  64985. typedef struct tagNET_IN_UTC_CAPS
  64986. {
  64987. DWORD dwSize; // 结构体大小
  64988. }NET_IN_UTC_CAPS;
  64989. ///@brief CLIENT_GetDevCaps 接口 NET_SUPPORT_UTC_CAPS 出参
  64990. typedef struct tagNET_OUT_UTC_CAPS
  64991. {
  64992. DWORD dwSize; // 结构体大小
  64993. int nSupportUTCTimingCaps; // 设备是否支持UTC校时能力, 包括设置和获取, 0:不支持, 1:支持
  64994. int nSupportMediaFileFindGeneralUTCCaps; // 设备是否支持通用录像查询的UTC能力(此能力包括录像月历), 0:不支持, 1:支持 (相关涉及接口为: CLIENT_StartQueryRecordFile, CLIENT_QueryRecordFileEx, CLIENT_FindFileEx, CLIENT_FindNextFileEx, CLIENT_QueryRecordStatus(录像月历查询))
  64995. int nSupportPlayBackUTCCaps; // 设备是否支持录像回放的UTC能力, 包括设置和获取, 0:不支持, 1:支持 (相关涉及接口为: 按时间回放的接口(CLIENT_PlayBackByTimeProxy, CLIENT_PlayBackByTimeEx2), 按文件回放的接口(CLIENT_PlayBackByRecordFileEx2) )
  64996. int nSupportDownloadUTCCaps; // 设备是否支持录像下载的UTC能力, 0:不支持, 1:支持 (相关涉及接口为: CLIENT_AdaptiveDownloadByTime)
  64997. int nSupportDownloadByAllSpeedUTCCaps; // 设备是否支持全速回放不抽帧(按时间方式补录)的UTC能力, 0:不支持, 1:支持 (相关涉及接口为: CLIENT_SupplementByTime)
  64998. int nSupportMediaFileFindMobileEnforceUTCCaps; // 设备是否支持采集站和手持终端文件信息录像查询的UTC能力, 0:不支持, 1:支持 (相关涉及接口为: CLIENT_FindFileEx+DH_FILE_QUERY_MOBILE_ENFORCE+MEDIAFILE_MOBILE_ENFORCE_PARAM , CLIENT_FindNextFileEx+MEDIAFILE_MOBILE_ENFORCE_INFO)
  64999. int nSupportAccessCardRecUTC; // 设备是否支持按真实UTC时间作为条件查询
  65000. int nSupportAnnouncementRecUTC; // 设备是否支持楼宇信息发布记录按真实UTC时间作为条件查询, 0:不支持, 1:支持
  65001. int nSupportVideoTalkLogRecUTC; // 设备是否支持对讲记录按真实UTC时间作为条件查询, 0:不支持, 1:支持
  65002. int nSupportFileStreamRecUTC; // 设备是否支持SMD的录像查询按真实UTC时间作为条件查询, 0:不支持, 1:支持
  65003. int nSupportLogRecUTC; // 设备是否支持日志查询按真实UTC时间作为条件查询, 0:不支持, 1:支持
  65004. int nSupportAccessControlAlarmRecordRecUTC; // 设备是否支持门禁报警记录按真实UTC时间作为条件查询, 0:不支持, 1:支持
  65005. int nSupportFaceDBServerRecUTC; // 设备是否支持人脸库以图搜图按真实UTC时间作为条件查询, 0:不支持, 1:支持
  65006. int nSupportPOSUTC; // 设备是否支持POS记录查询按真实UTC时间作为条件查询, 0:不支持, 1:支持
  65007. }NET_OUT_UTC_CAPS;
  65008. // 设备能力类型, 对应CLIENT_GetDevCaps接口
  65009. #define NET_DEV_CAP_SEQPOWER 0x01 // 电源时序器能力, pInBuf=NET_IN_CAP_SEQPOWER*, pOutBuf=NET_OUT_CAP_SEQPOWER*
  65010. #define NET_ENCODE_CFG_CAPS 0x02 // 设备编码配置对应能力, pInBuf=NET_IN_ENCODE_CFG_CAPS*, pOutBuf= NET_OUT_ENCODE_CFG_CAPS*
  65011. #define NET_VIDEOIN_FISHEYE_CAPS 0x03 // 鱼眼能力, pInBuf=NET_IN_VIDEOIN_FISHEYE_CAPS*, pOutBuf=NET_OUT_VIDEOIN_FISHEYE_CAPS*
  65012. #define NET_COMPOSITE_CAPS 0x04 // 根据指定的窗口号预先获取融合后的能力集, pInBuf=NET_IN_COMPOSITE_CAPS*, pOutBuf=NET_OUT_COMPOSITE_CAPS*
  65013. #define NET_VIDEO_DETECT_CAPS 0x05 // 获取视频检测输入能力集,pInBuf=NET_IN_VIDEO_DETECT_CAPS* , pOutBuf=NET_OUT_VIDEO_DETECT_CAPS*
  65014. #define NET_THERMO_GRAPHY_CAPS 0x06 // 热成像摄像头属性能力,pInBuf=NET_IN_THERMO_GETCAPS*, pOutBuf=NET_OUT_THERMO_GETCAPS*
  65015. #define NET_RADIOMETRY_CAPS 0x07 // 热成像测温全局配置能力,pInBuf=NET_IN_RADIOMETRY_GETCAPS*, pOutBuf=NET_OUT_RADIOMETRY_GETCAPS*
  65016. #define NET_POS_CAPS 0x08 // POS机能力,pInBuf = NET_IN_POS_GETCAPS *, pOutBuf = NET_OUT_POS_GETCAPS *
  65017. #define NET_USER_MNG_CAPS 0x09 // 用户管理能力, pInBuf = NET_IN_USER_MNG_GETCAPS *, pOutBuf = NET_OUT_USER_MNG_GETCAPS *
  65018. #define NET_MEDIAMANAGER_CAPS 0x0a // 获取 VideoInput 的各个能力项,pInBuf=NET_IN_MEDIAMANAGER_GETCAPS*, pOutBuf=NET_OUT_MEDIAMANAGER_GETCAPS*
  65019. #define NET_VIDEO_MOSAIC_CAPS 0x0b // 获取通道马赛克叠加能力,pInBuf=NET_IN_MEDIA_VIDEOMOSAIC_GETCAPS*, pOutBuf=NET_OUT_MEDIA_VIDEOMOSAIC_GETCAPS*
  65020. #define NET_SNAP_CFG_CAPS 0x0c // 设备抓图配置对应能力, pInBuf=NET_IN_SNAP_CFG_CAPS*, pOutBuf= NET_OUT_SNAP_CFG_CAPS*
  65021. #define NET_VIDEOIN_CAPS 0x0d // 设备视频输出能力, pInBUf = NET_IN_VIDEOIN_CAPS*, pOutBuf = NET_OUT_VIDEOIN_CAPS*
  65022. #define NET_FACE_BOARD_CAPS 0x0e // 面板设备能力集, pInBuf = NET_IN_FACEBOARD_CAPS*, pOutBuf = NET_OUT_FACEBOARD_CAPS*
  65023. #define NET_EXTERNALSENSOR_CAPS 0x0f // 外部传感器管理能力集,pInBuf = NET_IN_EXTERNALSENSOR_CAPS*, pOutBuf = NET_OUT_EXTERNALSENSOR_CAPS*
  65024. #define NET_VIDEO_IMAGECONTROL_CAPS 0x10 // 图像旋转设置能力, pInBuf = NET_IN_VIDEO_IMAGECONTROL_CAPS*, pOutBuf = NET_OUT_VIDEO_IMAGECONTROL_CAPS*
  65025. #define NET_VIDEOIN_EXPOSURE_CAPS 0x11 // 曝光设置能力, pInBuf = NET_IN_VIDEOIN_EXPOSURE_CAPS*, pOutBuf = NET_OUT_VIDEOIN_EXPOSURE_CAPS*
  65026. #define NET_VIDEOIN_DENOISE_CAPS 0x12 // 降噪能力, pInBuf = NET_IN_VIDEOIN_DENOISE_CAPS*, pOutBuf = NET_OUT_VIDEOIN_DENOISE_CAPS*
  65027. #define NET_VIDEOIN_BACKLIGHT_CAPS 0x13 // 背光设置能力, pInBuf = NET_IN_VIDEOIN_BACKLIGHT_CAPS*, pOutBuf = NET_OUT_VIDEOIN_BACKLIGHT_CAPS*
  65028. #define NET_VIDEOIN_WHITEBALANCE_CAPS 0x14 // 白平衡设置能力, pInBuf = NET_IN_VIDEOIN_WHITEBALANCE_CAPS*, pOutBuf = NET_OUT_VIDEOIN_WHITEBALANCE_CAPS*
  65029. #define NET_VIDEOIN_DAYNIGHT_CAPS 0x15 // 球机机芯日夜设置能力, pInBuf = NET_IN_VIDEOIN_DAYNIGHT_CAPS*, pOutBuf = NET_OUT_VIDEOIN_DAYNIGHT_CAPS*
  65030. #define NET_VIDEOIN_ZOOM_CAPS 0x16 // 变倍设置能力, pInBuf = NET_IN_VIDEOIN_ZOOM_CAPS*, pOutBuf = NET_OUT_VIDEOIN_ZOOM_CAPS*
  65031. #define NET_VIDEOIN_FOCUS_CAPS 0x17 // 聚焦设置能力, pInBuf = NET_IN_VIDEOIN_FOCUS_CAPS*, pOutBuf = NET_OUT_VIDEOIN_FOCUS_CAPS*
  65032. #define NET_VIDEOIN_SHARPNESS_CAPS 0x18 // 锐度设置能力, pInBuf = NET_IN_VIDEOIN_SHARPNESS_CAPS*, pOutBuf = NET_OUT_VIDEOIN_SHARPNESS_CAPS*
  65033. #define NET_VIDEOIN_COLOR_CAPS 0x19 // 图像设置能力, pInBuf = NET_IN_VIDEOIN_COLOR_CAPS*, pOutBuf = NET_OUT_VIDEOIN_COLOR_CAPS*
  65034. #define NET_GET_MASTERSLAVEGROUP_CAPS 0x1a // 获取跟踪业务能力, pInBuf = NET_IN_GET_MASTERSLAVEGROUP_CAPS*, pOutBuf = NET_OUT_GET_MASTERSLAVEGROUP_CAPS*
  65035. #define NET_FACERECOGNITIONSE_CAPS 0x1b // 目标识别服务器能力查询 pInBuf = NET_IN_FACERECOGNITIONSERVER_CAPSBILITYQUERY, pOutBuf = NET_OUT_FACERECOGNITIONSERVER_CAPSBILITYQUERY *
  65036. #define NET_STORAGE_CAPS 0x1c // 获取存储能力集, pInBuf = NET_IN_STORAGE_CAPS*, pOutBuf = NET_OUT_STORAGE_CAPS*
  65037. #define NET_VIDEOIN_RAWFRAME_CAPS 0x1d // 获取视频输入扩展能力集, pInBuf = NET_IN_VIDEOIN_RAWFRAME_CAPS*, pOutBuf = NET_OUT_VIDEOIN_RAWFRAME_CAPS*
  65038. #define NET_COAXIAL_CONTROL_IO_CAPS 0x1e // 获取同轴IO控制能力, pInBuf = NET_IN_GET_COAXIAL_CONTROL_IO_CAPS*, pOutBuf = NET_OUT_GET_COAXIAL_CONTROL_IO_CAPS*
  65039. #define NET_FACEINFO_CAPS 0x1f // 获得目标门禁控制器能力集, pInBuf = NET_IN_GET_FACEINFO_CAPS*, pOutBuf = NET_OUT_GET_FACEINFO_CAPS*
  65040. #define NET_ACCESSCONTROL_CAPS 0x20 // 获取门禁能力, pInBuf = NET_IN_AC_CAPS*, pOutBuf = NET_OUT_AC_CAPS*
  65041. #define NET_COAXIAL_CONTROL_IO_STATUS 0x21 // 获取同轴IO白光灯和喇叭状态, pInBuf = NET_IN_GET_COAXIAL_CONTROL_IO_STATUS*, pOutBuf = NET_OUT_GET_COAXIAL_CONTROL_IO_STATUS*
  65042. #define NET_LIGHTINGCONTROL_CAPS 0x22 // 获取补光灯能力(IPC/SD使用), pInBuf =NET_IN_LIGHTINGCONTROL_CAPS* ,pOutBuf=NET_OUT_LIGHTINGCONTROL_CAPS*
  65043. #define NET_SUPPORT_GET_AUDIO_DECODE_CAPS 0x23 // 获取设备是否支持音频解码能力获取, pInBuf =NET_IN_SUPPORT_GET_AUDIO_DECODE_CAPS* ,pOutBuf=NET_OUT_SUPPORT_GET_AUDIO_DECODE_CAPS*
  65044. #define NET_UNIFIEDINFOCOLLECT_CAPS 0x24 // 获取设备是否支持DMSS专用协议能力,pInBuf = NET_IN_UNIFIEDINFOCOLLECT_CAPS*, pOutBuf = NET_OUT_UNIFIEDINFOCOLLECT_CAPS*
  65045. #define NET_EXALARMBOX_CAPS 0x25 // 获取某个扩展报警盒的能力集, pInBuf = NET_IN_EXALARMBOX_CAPS*, pOutBuf = NET_OUT_EXALARMBOX_CAPS*
  65046. #define NET_ALARMBOXMANAGER_CAPS 0x26 // 获取报警盒子管理器能力集,pInBuf = NET_IN_ALARMBOXMANAGER_CAPS*, pOutBuf = NET_OUT_ALARMBOXMANAGER_CAPS*
  65047. #define NET_GET_AUDIO_DETECT_CAPS 0x27 // 获取音频输入能力集, pInBuf = NET_IN_GET_AUDIO_DETECT_CAPS*, pOutBuf = NET_OUT_GET_AUDIO_DETECT_CAPS*
  65048. #define NET_SUPPORT_FACEDB_DOWNLOAD 0x28 // 获取是否支持远程目标库下载, pInBuf = NET_IN_SUPPORT_FACEDB_DOWNLOAD_CAPS*, pOutBuf = NET_OUT_SUPPORT_FACEDB_DOWNLOAD_CAPS*
  65049. #define NET_GET_LENS_FUNC_CAPS 0x29 // 获取角度调节能力集, pInBuf = NET_IN_GET_LENS_FUNC_CAPS*, pOutBuf = NET_OUT_GET_LENS_FUNC_CAPS*
  65050. #define NET_VIDEO_TALK_MANAGER_CAPS 0x2a // 获取可视对讲能力 pInBuf = NET_IN_VIDEO_TALK_MANAGER_CAPS*, pOutBuf = NET_OUT_VIDEO_TALK_MANAGER_CAPS*
  65051. #define NET_VIDEO_IN_DEFOG_CAPS 0x30 // 获取视频透雾能力集, pInBuf = NET_IN_VIDEO_IN_DEFOG_CAPS*, pOutBuf = NET_OUT_VIDEO_IN_DEFOG_CAPS*
  65052. #define NET_DIAGNOSIS_CAPS 0x31 // 获取故障诊断能力,pInBuf = NET_IN_DIAGNOSIS_CAPS*, pOutBuf = NET_OUT_DIAGNOSIS_CAPS*
  65053. #define NET_LOWRATEWPAN_CAPS 0x32 // 获取低功率WPAN能力集,pInBuf = NET_IN_LOWRATEWPAN_CAPS*, pOutBuf = NET_OUT_LOWRATEWPAN_CAPS*
  65054. #define NET_GET_FILE_TRANSFER_CAPS 0x33 // 获取远程文件下载能力集, pInBuf = NET_IN_GET_FILE_TRANSFER_CAPS*, pOutBuf = NET_OUT_GET_FILE_TRANSFER_CAPS*
  65055. #define NET_AUDIO_OUTPUT_CAPS 0x34 // 获取音频输出能力, pInBuf = NET_IN_AUDIO_OUTPUT_CAPS*, pOutBuf = NET_OUT_AUDIO_OUTPUT_CAPS*
  65056. #define NET_REMOTE_FACE_RECOGNITION_CAPS 0x35 // 获取远程目标识别服务器能力 pInBuf = NET_IN_REMOTE_FACE_RECOGNITION_CAPS*, pOutBuf = NET_OUT_REMOTE_FACE_RECOGNITION_CAPS*
  65057. #define NET_REMOTE_COLLECT_DEVINFO_CAPS 0x36 // 获取远程设备信息采集能力 pInBuf = NET_IN_REMOTE_COLLECT_DEVINFO_CAPS*, pOutBuf = NET_OUT_REMOTE_COLLECT_DEVINFO_CAPS*
  65058. #define NET_MONITOR_WALL_CAPS 0x37 // 获取电视墙管理器实例能力集, pInBuf = NET_IN_MONITOR_WALL_CAPS_INFO*, pOutBuf = NET_OUT_MONITOR_WALL_CAPS_INFO*
  65059. #define NET_REMOTE_SPEAK_CAPS 0x38 // 获取前端音频文件路径和能力集 pInBuf = NET_IN_REMOTE_SPEAK_CAPS*, pOutBuf = NET_OUT_REMOTE_SPEAK_CAPS*
  65060. #define NET_WLAN_CAPS 0x39 // 获取WLAN能力集pInBuf = NET_IN_WLAN_CAPS_INFO*, pOutBuf = NET_OUT_WLAN_CAPS_INFO*
  65061. #define NET_LOG_ONLINE_BACKUP_CAPS 0x3A // 获取日志在线备份能力集 pInBuf = NET_IN_LOG_ONLINE_BACKUP_CAPS_INFO*, pOutBuf = NET_OUT_LOG_ONLINE_BACKUP_CAPS_INFO*
  65062. #define NET_RECEIPT_EVENT_CAPS 0x3B // 获取事件回执能力集 pInBuf = NET_IN_RECEIPT_EVENT_CAPS_INFO*, pOutBuf = NET_OUT_RECEIPT_EVENT_CAPS_INFO*
  65063. #define NET_ANALYSE_TASK_MANAGER_CAPS 0x3C // 获取智能任务分析能力集 pInBuf = NET_IN_ANALYSE_TASK_MANAGER_CAPS_INFO*, pOutBuf = NET_OUT_ANALYSE_TASK_MANAGER_CAPS_INFO*
  65064. #define NET_PERIPHERAL_CHIP_CAPS 0x3D // 获取设备从片能力 pInBuf = NET_IN_PERIPHERAL_CHIP_CAPS*, pOutBuf = NET_OUT_PERIPHERAL_CHIP_CAPS*
  65065. #define NET_CITIZEN_IDENTITY_MANAGER_CAPS 0x3E // 获取人证设备能力集 pInBuf = NET_IN_CITIZEN_IDENTITY_MANAGER_CAPS*, pOutBuf = NET_OUT_CITIZEN_IDENTITY_MANAGER_CAPS*
  65066. #define NET_AROUD_4G_PROBE_SEARCH_CAPS 0x3F // 获取电子围栏手机采集能力 pInBuf = NET_IN_AROUD_4G_PROBE_SEARCH_CAPS *, pOutBuf = NET_OUT_AROUD_4G_PROBE_SEARCH_CAPS *
  65067. #define NET_GET_ADVERTIMENT_CAPS 0x4A // 获取设备广告投放能力(pInBuf = NET_IN_GET_ADVERTIMENT_CAPS*, pOutBuf = NET_OUT_GET_ADVERTIMENT_CAPS)
  65068. #define NET_VIDEOIN_LIGHTING_MIX_SOLUTION_CAPS 0x40 // 混光灯补光方案能力 pInBuf = NET_IN_LIGHTING_MIX_SOLUTION_CAPS *, pOutBuf = NET_OUT_LIGHTING_MIX_SOLUTION_CAPS *
  65069. #define NET_IXRAY_PACKAGE_MANAGER_CAPS 0x41 // 获取X光安检服务器能力 pInBuf = NET_IN_IXRAY_PACKAGE_MANAGER_CAPS *, pOutBuf = NET_OUT_IXRAY_PACKAGE_MANAGER_CAPS *
  65070. #define NET_FLOW_STAT_CAPS 0x42 // 获取OSD展示能力 pInBuf = NET_IN_FLOW_STAT_CAPS *, pOutBuf = NET_OUT_FLOW_STAT_CAPS *
  65071. #define NET_FIRE_CONTROL_MANAGER_CAPS 0x43 // 获取消防设备的能力 pInBuf = NET_IN_FIRE_CONTROL_MANAGER_CAPS *, pOutBuf = NET_OUT_FIRE_CONTROL_MANAGER_CAPS *
  65072. #define NET_REMOTE_VIDEO_IN_ANALYSE_CAPS 0x44 // 获取前端视频输入通道可配置的智能分析能力, pInBuf = NET_IN_REMOTE_VIDEO_IN_ANALYSE_CAPS*, pOutBuf = NET_OUT_REMOTE_VIDEO_IN_ANALYSE_CAPS*
  65073. #define NET_SUPPORT_UTC_CAPS 0x45 // 获取设备录像查询, 回放, 下载, 全速回放不抽帧(按时间方式补录)的UTC能力, pInBuf = NET_IN_UTC_CAPS*, pOutBuf = NET_OUT_UTC_CAPS*
  65074. #define NET_VIDEOIN_MODE_ICR_CAPS 0x46 // 是否支持ICR方式切换日夜模式(即VideoInMode配置的Mode是否支持2 默认false,不支持) pInBuf = NET_IN_VIDEOIN_MODE_CAPS *, pOutBuf = NET_OUT_VIDEOIN_MODE_CAPS*
  65075. ///@brief 获取设备能力(pInBuf, pOutBuf内存由用户申请释放,根据nType对应的类型找到相应的结构体,进而确定申请内存大小)
  65076. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevCaps(LLONG lLoginID, int nType, void* pInBuf, void* pOutBuf, int nWaitTime);
  65077. // 设备信息类型,对应CLIENT_QueryDevInfo接口
  65078. #define NET_QUERY_DEV_STORAGE_NAMES 0x01 // 查询设备的存储模块名列表 , pInBuf=NET_IN_STORAGE_DEV_NAMES *, pOutBuf=NET_OUT_STORAGE_DEV_NAMES *
  65079. #define NET_QUERY_DEV_STORAGE_INFOS 0x02 // 查询设备的存储模块信息列表, pInBuf=NET_IN_STORAGE_DEV_INFOS*, pOutBuf= NET_OUT_STORAGE_DEV_INFOS *
  65080. #define NET_QUERY_RECENCY_JNNCTION_CAR_INFO 0x03 // 查询最近的卡口车辆信息接口, pInBuf=NET_IN_GET_RECENCY_JUNCTION_CAR_INFO*, pOutBuf=NET_OUT_GET_RECENCY_JUNCTION_CAR_INFO*
  65081. #define NET_QUERY_LANES_STATE 0x04 // 查询车道信息,pInBuf = NET_IN_GET_LANES_STATE , pOutBuf = NET_OUT_GET_LANES_STATE
  65082. #define NET_QUERY_DEV_FISHEYE_WININFO 0x05 // 查询鱼眼窗口信息 , pInBuf= NET_IN_FISHEYE_WININFO*, pOutBuf=NET_OUT_FISHEYE_WININFO *
  65083. #define NET_QUERY_DEV_REMOTE_DEVICE_INFO 0x06 // 查询远程设备信息 , pInBuf= NET_IN_GET_DEVICE_INFO*, pOutBuf= NET_OUT_GET_DEVICE_INFO *
  65084. #define NET_QUERY_SYSTEM_INFO 0x07 // 查询设备系统信息 , pInBuf= NET_IN_SYSTEM_INFO*, pOutBuf= NET_OUT_SYSTEM_INFO*
  65085. #define NET_QUERY_REG_DEVICE_NET_INFO 0x08 // 查询主动注册设备的网络连接 , pInBuf=NET_IN_REGDEV_NET_INFO * , pOutBuf=NET_OUT_REGDEV_NET_INFO *
  65086. #define NET_QUERY_DEV_THERMO_GRAPHY_PRESET 0x09 // 查询热成像预设信息 , pInBuf= NET_IN_THERMO_GET_PRESETINFO*, pOutBuf= NET_OUT_THERMO_GET_PRESETINFO *
  65087. #define NET_QUERY_DEV_THERMO_GRAPHY_OPTREGION 0x0a // 查询热成像感兴趣区域信息,pInBuf= NET_IN_THERMO_GET_OPTREGION*, pOutBuf= NET_OUT_THERMO_GET_OPTREGION *
  65088. #define NET_QUERY_DEV_THERMO_GRAPHY_EXTSYSINFO 0x0b // 查询热成像外部系统信息, pInBuf= NET_IN_THERMO_GET_EXTSYSINFO*, pOutBuf= NET_OUT_THERMO_GET_EXTSYSINFO *
  65089. #define NET_QUERY_DEV_RADIOMETRY_POINT_TEMPER 0x0c // 查询测温点的参数值, pInBuf= NET_IN_RADIOMETRY_GETPOINTTEMPER*, pOutBuf= NET_OUT_RADIOMETRY_GETPOINTTEMPER *
  65090. #define NET_QUERY_DEV_RADIOMETRY_TEMPER 0x0d // 查询测温项的参数值, pInBuf= NET_IN_RADIOMETRY_GETTEMPER*, pOutBuf= NET_OUT_RADIOMETRY_GETTEMPER *
  65091. #define NET_QUERY_GET_CAMERA_STATE 0x0e // 获取摄像机状态, pInBuf= NET_IN_GET_CAMERA_STATEINFO*, pOutBuf= NET_OUT_GET_CAMERA_STATEINFO *
  65092. #define NET_QUERY_GET_REMOTE_CHANNEL_AUDIO_ENCODE 0x0f // 获取远程通道音频编码方式, pInBuf= NET_IN_GET_REMOTE_CHANNEL_AUDIO_ENCODEINFO*, pOutBuf= NET_OUT_GET_REMOTE_CHANNEL_AUDIO_ENCODEINFO *
  65093. #define NET_QUERY_GET_COMM_PORT_INFO 0x10 // 获取设备串口信息, pInBuf=NET_IN_GET_COMM_PORT_INFO* , pOutBuf=NET_OUT_GET_COMM_PORT_INFO*
  65094. #define NET_QUERY_GET_LINKCHANNELS 0x11 // 查询某视频通道的关联通道列表,pInBuf=NET_IN_GET_LINKCHANNELS* , pOutBuf=NET_OUT_GET_LINKCHANNELS*
  65095. #define NET_QUERY_GET_VIDEOOUTPUTCHANNELS 0x12 // 获取解码通道数量统计信息, pInBuf=NET_IN_GET_VIDEOOUTPUTCHANNELS*, pOutBuf=NET_OUT_GET_VIDEOOUTPUTCHANNELS*
  65096. #define NET_QUERY_GET_VIDEOINFO 0x13 // 获取解码通道信息, pInBuf=NET_IN_GET_VIDEOINFO*, pOutBuf=NET_OUT_GET_VIDEOINFO*
  65097. #define NET_QUERY_GET_ALLLINKCHANNELS 0x14 // 查询全部视频关联通道列表,pInBuf=NET_IN_GET_ALLLINKCHANNELS* , pOutBuf=NET_OUT_GET_ALLLINKCHANNELS*
  65098. #define NET_QUERY_VIDEOCHANNELSINFO 0x15 // 查询视频通道信息,pInBuf=NET_IN_GET_VIDEOCHANNELSINFO* , pOutBuf=NET_OUT_GET_VIDEOCHANNELSINFO*
  65099. #define NET_QUERY_TRAFFICRADAR_VERSION 0x16 // 查询雷达设备版本,pInBuf=NET_IN_TRAFFICRADAR_VERSION* , pOutBuf=NET_OUT_TRAFFICRADAR_VERSION*
  65100. #define NET_QUERY_WORKGROUP_NAMES 0x17 // 查询所有的工作目录组名,pInBuf=NET_IN_WORKGROUP_NAMES* , pOutBuf=NET_OUT_WORKGROUP_NAMES*
  65101. #define NET_QUERY_WORKGROUP_INFO 0x18 // 查询工作组信息,pInBuf=NET_IN_WORKGROUP_INFO* , pOutBuf=NET_OUT_WORKGROUP_INFO*
  65102. #define NET_QUERY_WLAN_ACCESSPOINT 0x19 // 查询无线网络接入点信息,pInBuf=NET_IN_WLAN_ACCESSPOINT* , pOutBuf=NET_OUT_WLAN_ACCESSPOINT*
  65103. #define NET_QUERY_GPS_INFO 0x1a // 查询设备GPS信息,pInBuf=NET_IN_DEV_GPS_INFO* , pOutBuf=NET_OUT_DEV_GPS_INFO*
  65104. #define NET_QUERY_IVS_REMOTE_DEVICE_INFO 0x1b // 查询IVS的前端设备所关联的远程设备信息, pInBuf = NET_IN_IVS_REMOTE_DEV_INFO*, pOutBuf = NET_OUT_IVS_REMOTE_DEV_INFO*
  65105. #define NET_QUERY_SMART_SWITCH_INFO 0x1c // 查询智能插座信息, pInBuf = NET_IN_SMART_SWITCH_INFO*, pOutBuf = NET_OUT_SMART_SWITCH_INFO*
  65106. #define NET_QUERY_UPGRADE_STATE 0x1d // 查询升级状态信息, pInBuf = NET_IN_UPGRADE_STATE*, pOutBuf = NET_OUT_UPGRADE_STATE*
  65107. #define NET_QUERY_VIDEO_ENCODE_CAPS 0x1e // 获取视频编码能力集, pInBuf = NET_IN_VIDEO_ENCODE_CAPS*, pOutBuf = NET_OUT_VIDEO_ENCODE_CAPS*
  65108. #define NET_QUERY_AUDIO_ENCODE_CAPS 0x1f // 获取音频编码能力集, pInBuf = NET_IN_AUDIO_ENCODE_CAPS*, pOutBuf = NET_OUT_AUDIO_ENCODE_CAPS*
  65109. #define NET_QUERY_AUDIO_IN_CAPS 0x20 // 获取音频输入通道能力集, pInBuf = NET_IN_AUDIO_IN_CAPS*, pOutBuf = NET_OUT_AUDIO_IN_CAPS*
  65110. #define NET_QUERY_SMART_ENCODE_CAPS 0x21 // 查询Smart编码能力集, pInBuf = NET_IN_SMART_ENCODE_CAPS*, pOutBuf = NET_OUT_SMART_ENCODE_CAPS*
  65111. #define NET_QUERY_HARDDISK_TEMPERATURE 0x22 // 获取硬盘温度,pInBuf = NET_IN_HDD_TEMPERATURE*, pOutBuf = NET_OUT_HDD_TEMPERATURE*
  65112. #define NET_QUERY_RAWFRAMEDATA 0x23 // 获取指定格式的YUV数据, pInBuf = NET_IN_RAWFRAMEDATA*, pOutBuf = NET_OUT_RAWFRAMEDARA*
  65113. #define NET_QUERY_GETSPLICEDATA 0x24 // 获取设备拼接参数接口, pInBuf = NET_IN_GETSPLICEDATA*, pOutBuf = NET_OUT_GETSPLICEDATA*
  65114. #define NET_QUERY_AUDIO_DECODE_CAPS 0x25 // 获取音频解码能力集, pInBuf = NET_IN_AUDIO_DECODE_CAPS*, pOutBuf = NET_OUT_AUDIO_DECODE_CAPS*
  65115. #define NET_QUERY_DEVICE_ID 0x26 // 获取设备ID, pInBuf = NET_IN_DEVICE_ID*, pOutBuf = NET_OUT_DEVICE_ID*
  65116. #define NET_QUERY_REMOTE_DEVICE_CAPS 0x27 // 获取远程设备管理能力集, pInBuf = NET_IN_REMOTEDEVICE_CAPS*, pOutBuf= NET_OUT_REMOTEDEVICE_CAPS
  65117. #define NET_QUERY_TRAFFIC_SNAP_RADAR 0x28 // 获取智能交通雷达信息, pInfo = NET_IN_TRAFFIC_SNAP_RADAR_INFO*, pOutBuf = NET_OUT_TRAFFIC_SNAP_RADAR_INFO*
  65118. #define NET_QUERY_TRAFFIC_SNAP_STROBE 0x29 // 获取智能交通道闸信息, pInfo = NET_IN_TRAFFIC_SNAP_STROBE_INFO*, pOutBuf = NET_OUT_TRAFFIC_SNAP_STROBE_INFO*
  65119. #define NET_QUERY_DEV_VARIABLE_CAPS_MANAGER_CHECK_START 0x30 // 检查通道智能功能是否可以开启, pInBuf = NET_IN_DEV_VARIABLE_CAPS_MANAGER_CHECK_START_INFO*, pOutBuf = NET_OUT_DEV_VARIABLE_CAPS_MANAGER_CHECK_START_INFO*
  65120. #define NET_QUERY_DEV_VARIABLE_CAPS_MANAGER_GET_FUNC_TYPE_LIST 0x31 // 获取设备所有冲突资源列表, pInBuf = NET_IN_DEV_VARIABLE_CAPS_MANAGER_GET_FUNC_TYPE_LIST_INFO*, pOutBuf = NET_OUT_DEV_VARIABLE_CAPS_MANAGER_GET_FUNC_TYPE_LIST_INFO*
  65121. #define NET_QUERY_GET_ALL_PARKING_SPACE_STATUS 0x32 // 获取当前车位检测状态, pInBuf = NET_IN_GET_ALL_PARKING_SPACE_STATUS_INFO*, pOutBuf = NET_OUT_GET_ALL_PARKING_SPACE_STATUS_INFO*
  65122. #define NET_QUERY_VEHICLE_STATE_INFO 0x33 // 获取车辆GPS状态信息, pInBuf = NET_IN_VEHICLE_STATE_INFO*, pOutBuf = NET_OUT_VEHICLE_STATE_INFO*
  65123. #define NET_QUERY_HTTP_PROXY_PORT 0x34 // 获取虚拟主机的web代理端口, pInBuf = NET_IN_HTTP_PROXY_PORT*, pOutBuf = NET_OUT_HTTP_PROXY_PORT*
  65124. #define NET_QUERY_TRAFFIC_RADAR_GET_OBJECT 0x35 // 获取雷达物体目标信息,pInBuf = NET_IN_TRAFFIC_RADAR_GET_OBJECT_INFO*,pOutBuf = NET_OUT_TRAFFIC_RADAR_GET_OBJECT_INFO*
  65125. #define NET_QUERY_PTZ_CURRENT_FOV_VALUE 0x36 // 获取镜头当前倍率下水平视场角参数,pInBuf = NET_IN_PTZ_CURRENT_FOV_VALUE*,pOutBuf = NET_OUT_PTZ_CURRENT_FOV_VALUE*
  65126. #define NET_QUERY_DEV_IO_STATS 0x37 // 获取所有存储设备的io信息参数,pInBuf = NET_IN_DEV_IO_STATS*,pOutBuf = NET_OUT_DEV_IO_STAT*
  65127. #define NET_QUERY_VIDEO_IN_STATUS 0x38 // 获取视频输入状态信息,pInBuf = NET_IN_VIDEO_IN_STATUS*,pOutBuf = NET_OUT_VIDEO_IN_STATUS*
  65128. #define NET_QUERY_PTZBASE_GET_HFOV_VALUE 0x39 // 获取镜头不同倍率下水平视场角参数,pInBuf = NET_IN_PTZBASE_GET_HFOV_VALUE*,pOutBuf = NET_OUT_PTZBASE_GET_HFOV_VALUE*
  65129. #define NET_QUERY_PTZBASE_GET_CENTER_GPS 0x3a // 获取中心位置GPS信息,pInBuf = NET_IN_PTZBASE_GET_CENTER_GPS*,pOutBuf = NET_OUT_PTZBASE_GET_CENTER_GPS*
  65130. #define NET_QUERY_TRAFFIC_SNAP_PARK_SCREEN 0x3b // 获取智能交通道闸信息, pInfo = NET_IN_TRAFFIC_SNAP_PARK_SCREEN_INFO*, pOutBuf = NET_OUT_TRAFFIC_SNAP_PARK_SCREEN_INFO*
  65131. #define NET_QUERY_HTTP_PROXY_INFO 0x3c // 获取虚拟主机的web代理信息, pInBuf = NET_IN_HTTP_PROXY_INFO*, pOutBuf = NET_OUT_HTTP_PROXY_INFO*
  65132. #define NET_QUERY_TRAFFIC_RADAR_GET_OBJECT_EX 0x3d // 获取相机雷达物体目标信息, pInBuf = NET_IN_TRAFFIC_RADAR_GET_OBJECT_EX_INFO*,pOutBuf = NET_OUT_TRAFFIC_RADAR_GET_OBJECT_EX_INFO*
  65133. #define NET_QUERY_PTZBASE_GET_FOCUS_VALUE 0x3e // 获取镜头焦距参数 pInBuf = NET_IN_PTZBASE_GET_FOCUS_VALUE*, pOutBuf = NET_OUT_PTZBASE_GET_FOCUS_VALUE*
  65134. #define NET_QUERY_PTZBASE_GET_VFOV_VALUE 0x3f // 获取镜头不同倍率下垂直视场角参数,pInBuf = NET_IN_PTZBASE_GET_VFOV_VALUE*,pOutBuf = NET_OUT_PTZBASE_GET_VFOV_VALUE*
  65135. ///@brief 查询设备信息(pInBuf, pOutBuf内存由用户申请释放,根据nQueryType对应的类型找到相应的结构体,进而确定申请内存大小)
  65136. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDevInfo(LLONG lLoginID, int nQueryType, void* pInBuf, void* pOutBuf, void *pReserved = NULL , int nWaitTime = 1000);
  65137. ///@brief 重启设备
  65138. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RebootDev(LLONG lLoginID);
  65139. ///@brief 关闭设备
  65140. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ShutDownDev(LLONG lLoginID);
  65141. ///@brief 设备控制(param内存由用户申请释放,大小参照type类型对应的结构体)
  65142. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlDevice(LLONG lLoginID, CtrlType type, void *param, int waittime = 1000);
  65143. ///@brief 异步设备控制(param内存由用户申请释放,大小参照type类型对应的结构体)
  65144. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartControlDevice(LLONG lLoginID, CtrlType type, void *param);
  65145. ///@brief 设备控制扩展接口,兼容 CLIENT_ControlDevice (pInBuf, pOutBuf内存由用户申请释放,根据emType确定相应结构体)
  65146. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlDeviceEx(LLONG lLoginID, CtrlType emType, void* pInBuf, void* pOutBuf = NULL, int nWaitTime = 1000);
  65147. ///@brief CLIENT_ManagerInstall接口的 EM_MANAGER_CTRL_UPDATELICENSE 命令入参
  65148. typedef struct tagNET_IN_MANAGER_UPDATELICENSE
  65149. {
  65150. DWORD dwSize; // 结构体大小
  65151. char szAppName[128]; // 被操作的第三方APP的名称
  65152. UINT nDataLen; // 证书发送的二进制长度
  65153. BYTE* pLicenseData; // license二进制数据 由用户申请释放
  65154. }NET_IN_MANAGER_UPDATELICENSE;
  65155. ///@brief CLIENT_ManagerInstall接口的 EM_MANAGER_CTRL_UPDATELICENSE 命令出参
  65156. typedef struct tagNET_OUT_MANAGER_UPDATELICENSE
  65157. {
  65158. DWORD dwSize; // 结构体大小
  65159. }NET_OUT_MANAGER_UPDATELICENSE;
  65160. ///@brief CLIENT_ManagerInstall接口的 EM_MANAGER_CTRL_GETCAPS 命令入参
  65161. typedef struct tagNET_IN_MANAGER_GETCAPS
  65162. {
  65163. DWORD dwSize; // 结构体大小
  65164. }NET_IN_MANAGER_GETCAPS;
  65165. ///@brief CLIENT_ManagerInstall 接口的 EM_MANAGER_CTRL_GETCAPS 命令出参
  65166. typedef struct tagNET_OUT_MANAGER_GETCAPS
  65167. {
  65168. DWORD dwSize; // 结构体大小
  65169. BOOL bSupport; // 是否支持DHOP
  65170. }NET_OUT_MANAGER_GETCAPS;
  65171. ///@brief CLIENT_ManagerInstall接口的 EM_MANAGER_CTRL_GETDHOPBASICINFO 命令入参
  65172. typedef struct tagNET_IN_MANAGER_GETDHOPBASICINFO
  65173. {
  65174. DWORD dwSize; // 结构体大小
  65175. }NET_IN_MANAGER_GETDHOPBASICINFO;
  65176. ///@brief 版本信息
  65177. typedef struct tagNET_MANAGER_VERSION
  65178. {
  65179. char szDhopOs[32]; // DHOP系统版本
  65180. char szDhopSdk[32]; // DHOP SDK版本
  65181. char szSocSdk[32]; // 芯片SDK系统版本
  65182. BYTE byReserved[256]; // 预留字节
  65183. }NET_MANAGER_VERSION;
  65184. ///@brief 系统内存
  65185. typedef struct tagNET_MANAGER_SYSTEM
  65186. {
  65187. TP_U64 nTotal; // 系统总字节
  65188. TP_U64 nFree; // 系统空闲字节
  65189. BYTE byReserved[256]; // 预留字节
  65190. }NET_MANAGER_SYSTEM;
  65191. ///@brief 智能内存
  65192. typedef struct tagNET_MANAGER_INTELLI
  65193. {
  65194. TP_U64 nTotal; // 智能总内存
  65195. TP_U64 nFree; // 智能空闲内存
  65196. BYTE byReserved[256]; // 预留字节
  65197. }NET_MANAGER_INTELLI;
  65198. ///@brief 内存信息
  65199. typedef struct tagNET_MANAGER_MEMEORY
  65200. {
  65201. NET_MANAGER_SYSTEM stuSystem; // 系统内存
  65202. NET_MANAGER_INTELLI stuIntelli; // 智能内存
  65203. BYTE byReserved[128]; // 预留字节
  65204. }NET_MANAGER_MEMORY;
  65205. ///@brief Flash信息
  65206. typedef struct tagNET_MANAGER_FLASH
  65207. {
  65208. TP_U64 nTotal; // 系统总Flash大小
  65209. TP_U64 nFree; // 系统空闲Flash大小
  65210. BYTE byReserved[128]; // 预留字节
  65211. }NET_MANAGER_FLASH;
  65212. ///@brief 智算能力
  65213. typedef struct tagNET_MANAGER_WORKCAPS
  65214. {
  65215. double dTotal; // 智算算力
  65216. double dFree; // 智算空闲能力
  65217. BYTE byReserved[128]; // 预留字节
  65218. }NET_MANAGER_WORKCAPS;
  65219. ///@brief 网卡类型
  65220. typedef enum tagEM_NET_NETWORK_CARD_TYPE
  65221. {
  65222. EM_NET_NETWORK_CARD_TYPE_UNKNOWN = 0, // 未知网卡类型
  65223. EM_NET_NETWORK_CARD_TYPE_NORMAL, // 普通有线网口
  65224. EM_NET_NETWORK_CARD_TYPE_FIBER, // 光口网络
  65225. EM_NET_NETWORK_CARD_TYPE_WIRELESS, // 无线网络
  65226. EM_NET_NETWORK_CARD_TYPE_TD_SCDMA, // TD
  65227. EM_NET_NETWORK_CARD_TYPE_WCDMA, // WCDMA
  65228. EM_NET_NETWORK_CARD_TYPE_CDMA1X, // CDMA1X
  65229. EM_NET_NETWORK_CARD_TYPE_CDMA2000, // CDMA2000
  65230. EM_NET_NETWORK_CARD_TYPE_GSM, // GSM
  65231. EM_NET_NETWORK_CARD_TYPE_GPRS, // GPRS
  65232. EM_NET_NETWORK_CARD_TYPE_EDGE, // EDGE
  65233. EM_NET_NETWORK_CARD_TYPE_LTE, // LTE
  65234. EM_NET_NETWORK_CARD_TYPE_TD_LTE, // TD_LTE
  65235. EM_NET_NETWORK_CARD_TYPE_FDD_LTE, // FDD-LTE
  65236. EM_NET_NETWORK_CARD_TYPE_EVDO, // EVDO
  65237. }EM_NET_NETWORK_CARD_TYPE;
  65238. ///@brief 网卡信息
  65239. typedef struct tagNET_MANAGER_NETWORK
  65240. {
  65241. EM_NET_NETWORK_CARD_TYPE emNetWorkType; // 网卡类型
  65242. UINT nSpec; // 网卡规格
  65243. BYTE byReserved[128]; // 预留字节
  65244. }NET_MANAGER_NETWORK;
  65245. ///@brief CLIENT_ManagerInstall接口的 MANAGER_CTRL_GETDHOPBASICINFO 命令出参
  65246. typedef struct tagNET_OUT_MANAGER_GETDHOPBASICINFO
  65247. {
  65248. DWORD dwSize; // 结构体大小
  65249. char szPlatform[32]; // 平台名称
  65250. NET_MANAGER_VERSION stuVersion; // 版本信息
  65251. NET_MANAGER_MEMORY stuMemory; // 内存信息
  65252. NET_MANAGER_FLASH stuFlash; // Flash信息
  65253. NET_MANAGER_WORKCAPS stuWorkCaps; // 智算能力
  65254. NET_MANAGER_NETWORK stuNetWork; // 网卡信息
  65255. }NET_OUT_MANAGER_GETDHOPBASICINFO;
  65256. ///@brief CLIENT_ManagerInstall接口的 操作类型
  65257. typedef enum tagEM_NET_MANAGER_CTRL_TYPE
  65258. {
  65259. EM_MANAGER_CTRL_UPDATELICENSE, // 上传并更新第三方APP的证书 (对应结构体 NET_IN_MANAGER_UPDATELICENSE, NET_OUT_MANAGER_UPDATELICENSE)
  65260. EM_MANAGER_CTRL_GETCAPS, // 获取DHOP能力相关 (对应结构体 NET_IN_MANAGER_GETCAPS, NET_OUT_MANAGER_GETCAPS)
  65261. EM_MANAGER_CTRL_GETDHOPBASICINFO, // 获取DHOP设备的基础信息 (对应结构体 NET_IN_MANAGER_GETDHOPBASICINFO,NET_OUT_MANAGER_GETDHOPBASICINFO)
  65262. }EM_NET_MANAGER_CTRL_TYPE;
  65263. ///@brief 第三方APP的升级安装管理 (pInBuf, pOutBuf内存由用户申请释放,根据emType确定相应结构体)
  65264. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ManagerInstall(LLONG lLoginID, EM_NET_MANAGER_CTRL_TYPE emType, void* pInBuf, void* pOutBuf, int nWaittime);
  65265. ///@brief 下一步的操作
  65266. typedef enum tagEM_NET_NEXT_OPERATE
  65267. {
  65268. EM_NET_NEXT_OPERATE_UNKNOWN = 0, // 未知操作
  65269. EM_NET_NEXT_OPERATE_INSTALL, // 安装App;
  65270. EM_NET_NEXT_OPERATE_UPDATE, // 更新App;
  65271. }EM_NET_NEXT_OPERATE;
  65272. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_PREPAREEX命令入参
  65273. typedef struct tagNET_IN_INSTALL_PREPAREEX
  65274. {
  65275. DWORD dwSize; // 结构体大小
  65276. char szAppName[32]; // 升级的app名称
  65277. EM_NET_NEXT_OPERATE emNextOperate; // 接下来的操作
  65278. UINT nTotalLength; // 升级包大小
  65279. BOOL bReliable; // 升级可靠性
  65280. }NET_IN_INSTALL_PREPAREEX;
  65281. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_PREPAREEX命令出参
  65282. typedef struct tagNET_OUT_INSTALL_PREPAREEX
  65283. {
  65284. DWORD dwSize; // 结构体大小
  65285. }NET_OUT_INSTALL_PREPAREEX;
  65286. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_APPEND_DATA命令入参
  65287. typedef struct tagNET_IN_INSTALL_APPEND_DATA
  65288. {
  65289. DWORD dwSize; // 结构体大小
  65290. UINT nTotalLen; // 升级文件总大小
  65291. UINT nAppendLen; // 本次发送的二进制长度
  65292. BYTE* pAppendData; // 本次发送的二进制数据 由用户申请释放
  65293. }NET_IN_INSTALL_APPEND_DATA;
  65294. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_APPEND_DATA命令出参
  65295. typedef struct tagNET_OUT_INSTALL_APPEND_DATA
  65296. {
  65297. DWORD dwSize; // 结构体大小
  65298. }NET_OUT_INSTALL_APPEND_DATA;
  65299. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_EXECUTE命令入参
  65300. typedef struct tagNET_IN_INSTALL_EXECUTE
  65301. {
  65302. DWORD dwSize; // 结构体大小
  65303. BOOL bAutoReboot; // 升级后是否自动重启
  65304. }NET_IN_INSTALL_EXECUTE;
  65305. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_EXECUTE命令出参
  65306. typedef struct tagNET_OUT_INSTALL_EXECUTE
  65307. {
  65308. DWORD dwSize; // 结构体大小
  65309. }NET_OUT_INSTALL_EXECUTE;
  65310. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_GETSTATE命令入参
  65311. typedef struct tagNET_IN_INSTALL_GETSTATE
  65312. {
  65313. DWORD dwSize; // 结构体大小
  65314. }NET_IN_INSTALL_GETSTATE;
  65315. ///@brief 升级状态
  65316. typedef enum tagEM_NET_UPGRADE_STATUS
  65317. {
  65318. EM_NET_UPGRADE_UNKNOWN = 0, // 未知状态
  65319. EM_NET_UPGRADE_PREPARING, // 准备升级;
  65320. EM_NET_UPGRADE_DOWNLOADING, // 正在下载数据;
  65321. EM_NET_UPGRADE_DOWNLOADFAILED, // 下载失败;
  65322. EM_NET_UPGRADE_UPGRADING, // 正在升级;
  65323. EM_NET_UPGRADE_INVALID, // 升级包不正确;
  65324. EM_NET_UPGRADE_FAILED, // 升级失败;
  65325. EM_NET_UPGRADE_SUCCEEDED, // 升级成功;
  65326. EM_NET_UPGRADE_CANCELLED, // 取消升级;
  65327. EM_NET_UPGRADE_NOTENOUGHMEMORY, // 内存不够;
  65328. EM_NET_UPGRADE_FILEUNMATCH, // 应用程序包不匹配;
  65329. EM_NET_UPGRADE_UNMATCHVERSION, // 版本不匹配;
  65330. EM_NET_UPGRADE_SAMEASOLDAPP, // 应用程序版本相同;
  65331. EM_NET_UPGRADE_APPEXIST, // 应用程序已存在;
  65332. }EM_NET_UPGRADE_STATUS;
  65333. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_GETSTATE命令出参
  65334. typedef struct tagNET_INSTALL_OUT_GETSTATE
  65335. {
  65336. DWORD dwSize; // 结构体大小
  65337. EM_NET_UPGRADE_STATUS emUpgradeStatus; // 升级状态
  65338. int nProgress; // 升级进度
  65339. char szFile[MAX_COMMON_STRING_256]; // 升级文件
  65340. }NET_OUT_INSTALL_GETSTATE;
  65341. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_CANCEL命令入参
  65342. typedef struct tagNET_INSTALL_IN_CANCEL
  65343. {
  65344. DWORD dwSize; // 结构体大小
  65345. }NET_IN_INSTALL_CANCEL;
  65346. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADE_INSTALL_CANCEL命令出参
  65347. typedef struct tagNET_OUT_INSTALL_CANCEL
  65348. {
  65349. DWORD dwSize; // 结构体大小
  65350. }NET_OUT_INSTALL_CANCEL;
  65351. ///@brief 支持的操作
  65352. typedef enum tagEM_NET_UPGRADE_ACTION
  65353. {
  65354. EM_NET_UPGRADE_ACTION_UNKNOWN = 0, // 未知操作;
  65355. EM_NET_UPGRADE_ACTION_INSTALLAPP, // 安装APP;
  65356. EM_NET_UPGRADE_ACTION_UPDATEAPP, // 更新APP;
  65357. EM_NET_UPGRADE_ACTION_UPDATEMAINFIRMWARE, // 安装主程序;
  65358. EM_NET_UPGRADE_ACTION_UPDATELICENSE, // 更新证书;
  65359. }EM_NET_UPGRADE_ACTION;
  65360. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADER_INSTALL_FIRMWAREEX命令入参
  65361. typedef struct tagNET_IN_INSTALL_FIRMWAREEX
  65362. {
  65363. DWORD dwSize; // 结构体大小
  65364. EM_NET_UPGRADE_ACTION emUpgradeAction; // 支持的操作
  65365. char szUrlString[1024]; // 升级包的url路径
  65366. char szAppName[64]; // 被操作的第三方APP的名称
  65367. }NET_IN_INSTALL_FIRMWAREEX;
  65368. ///@brief CLIENT_UpgraderInstall接口的 EM_UPGRADER_INSTALL_FIRMWAREEX命令出参
  65369. typedef struct tagNET_OUT_INSTALL_FIRMWAREEX
  65370. {
  65371. DWORD dwSize; // 结构体大小
  65372. }NET_OUT_INSTALL_FIRMWAREEX;
  65373. ///@brief CLIENT_UpgraderInstall接口的 操作类型
  65374. typedef enum tag_EM_NET_UPGRADE_INSTALL_TYPE
  65375. {
  65376. EM_UPGRADER_INSTALL_PREPAREEX, // 升级准备 (对应结构体 NET_IN_INSTALL_PREPAREEX, NET_OUT_INSTALL_PREPAREEX)
  65377. EM_UPGRADER_INSTALL_APPEND_DATA, // 升级数据 (对应结构体 NET_IN_INSTALL_APPEND_DATA, NET_OUT_INSTALL_APPEND_DATA)
  65378. EM_UPGRADER_INSTALL_EXECUTE, // 执行升级 (对应结构体 NET_IN_INSTALL_EXECUTE, NET_OUT_INSTALL_EXECUTE)
  65379. EM_UPGRADER_INSTALL_GETSTATE, // 获取升级状态 (对应结构体 NET_IN_INSTALL_GETSTATE, NET_OUT_INSTALL_GETSTATE)
  65380. EM_UPGRADER_INSTALL_CANCEL, // 取消升级 (对应结构体 NET_IN_INSTALL_CANCEL, NET_OUT_INSTALL_CANCEL)
  65381. EM_UPGRADER_INSTALL_FIRMWAREEX, // 指定升级包地址进行升级 (对应结构体 NET_IN_INSTALL_FIRMWAREEX, NET_OUT_INSTALL_FIRMWAREEX)
  65382. }EM_NET_UPGRADE_INSTALL_TYPE;
  65383. ///@brief 第三方APP升级进度和结果的实时上报
  65384. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpgraderInstall(LLONG lLoginID, EM_NET_UPGRADE_INSTALL_TYPE emType, void* pInBuf, void* pOutBuf, int nWaittime);
  65385. ///@brief EM_DHOPFILEMANAGER_START_UPLOADTOAPP 入参
  65386. typedef struct tagNET_IN_DHOP_START_UPLOADTOAPP
  65387. {
  65388. DWORD dwSize; // 结构体大小
  65389. char szAppName[128]; // 目标App
  65390. INT64 nFileSize; // 本次上传的总大小,字节
  65391. char szMd5Sum[32]; // 本次上传数据的md5校验值
  65392. }NET_IN_DHOP_START_UPLOADTOAPP;
  65393. ///@brief EM_DHOPFILEMANAGER_START_UPLOADTOAPP 出参
  65394. typedef struct tagNET_OUT_DHOP_START_UPLOADTOAPP
  65395. {
  65396. DWORD dwSize; // 结构体大小
  65397. char szToken[64]; // 本次上传的令牌,作为后续操作的唯一标识
  65398. }NET_OUT_DHOP_START_UPLOADTOAPP;
  65399. ///@brief EM_DHOPFILEMANAGER_STOP_UPLOADTOAPP 入参
  65400. typedef struct tagNET_IN_DHOP_STOP_UPLOADTOAPP
  65401. {
  65402. DWORD dwSize; // 结构体大小
  65403. char szToken[64]; // 令牌
  65404. }NET_IN_DHOP_STOP_UPLOADTOAPP;
  65405. ///@brief EM_DHOPFILEMANAGER_STOP_UPLOADTOAPP 出参
  65406. typedef struct tagNET_OUT_DHOP_STOP_UPLOADTOAPP
  65407. {
  65408. DWORD dwSize; // 结构体大小
  65409. }NET_OUT_DHOP_STOP_UPLOADTOAPP;
  65410. ///@brief EM_DHOPFILEMANAGER_DO_UPLOADTOAPP 入参
  65411. typedef struct tagNET_IN_DHOP_DO_UPLOADTOAPP
  65412. {
  65413. DWORD dwSize; // 结构体大小
  65414. char szToken[64]; // 令牌
  65415. INT64 nOffset; // 本次数据在完整数据中的偏移量,单位字节
  65416. INT64 nLength; // 本次上传的数据大小, 单位字节
  65417. BYTE *pData; // 本次上传的数据内容
  65418. }NET_IN_DHOP_DO_UPLOADTOAPP;
  65419. ///@brief EM_DHOPFILEMANAGER_DO_UPLOADTOAPP 出参
  65420. typedef struct tagNET_OUT_DHOP_DO_UPLOADTOAPP
  65421. {
  65422. DWORD dwSize; // 结构体大小
  65423. }NET_OUT_DHOP_DO_UPLOADTOAPP;
  65424. ///@brief EM_DHOPFILEMANAGER_GET_UPLOADSTATE 入参
  65425. typedef struct tagNET_IN_DHOP_GET_UPLOADSTATE
  65426. {
  65427. DWORD dwSize; // 结构体大小
  65428. char szToken[64]; // 令牌
  65429. }NET_IN_DHOP_GET_UPLOADSTATE;
  65430. ///@brief EM_DHOPFILEMANAGER_GET_UPLOADSTATE 出参
  65431. typedef struct tagNET_OUT_DHOP_GET_UPLOADSTATE
  65432. {
  65433. DWORD dwSize; // 结构体大小
  65434. char szType[64]; // 状态类型
  65435. char szUuid[64]; // 状态Id
  65436. char szState[64]; // 状态描述
  65437. int nProgress; // 进度 0-100
  65438. }NET_OUT_DHOP_GET_UPLOADSTATE;
  65439. ///@brief CLIENT_DhopFileManager 接口操作类型
  65440. typedef enum tagEM_DHOPFILEMANAGER_TYPE
  65441. {
  65442. EM_DHOPFILEMANAGER_START_UPLOADTOAPP, // 文件上传开始 (对应结构体 pInBuf = NET_IN_DHOP_START_UPLOADTOAPP, pOutBuf = NET_OUT_DHOP_START_UPLOADTOAPP)
  65443. EM_DHOPFILEMANAGER_STOP_UPLOADTOAPP, // 文件上传结束 (对应结构体 pInBuf = NET_IN_DHOP_STOP_UPLOADTOAPP, pOutBuf = NET_OUT_DHOP_STOP_UPLOADTOAPP)
  65444. EM_DHOPFILEMANAGER_DO_UPLOADTOAPP, // 文件上传到app (对应结构体 pInBuf = NET_IN_DHOP_DO_UPLOADTOAPP, pOutBuf = NET_OUT_DHOP_DO_UPLOADTOAPP)
  65445. EM_DHOPFILEMANAGER_GET_UPLOADSTATE, // 获取上传状态 (对应结构体 pInBuf = NET_IN_DHOP_GET_UPLOADSTATE, pOutBuf = NET_OUT_DHOP_GET_UPLOADSTATE)
  65446. }EM_DHOPFILEMANAGER_TYPE;
  65447. ///@brief 上传模型数据或其他数据到App端
  65448. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DhopFileManager(LLONG lLoginID, EM_DHOPFILEMANAGER_TYPE emType, void* pInBuf, void* pOutBuf, int nWaitTime);
  65449. #define DH_POS_EXCHANGE_GOODS_MAX 4 //查询时最多支持的商品数
  65450. #define DH_POS_EXCHANGE_FUSSY_KEY_MAX 4 //模糊查询最多支持的关键字数量
  65451. ///@brief POS获取交易信息模糊查询KEY值类型
  65452. typedef enum tagEM_NET_POS_EXCHANGE_FUSSY_KEY
  65453. {
  65454. EM_NET_POS_EXCHANGE_KEY_NULL = 0, // 不进行模糊查询,数组中只要有一个值为EM_NET_POS_EXCHANGE_KEY_NULL之外可用值(目前只有EM_NET_POS_EXCHANGE_KEY_GOODS),就会进行相应字段的模糊查询
  65455. EM_NET_POS_EXCHANGE_KEY_GOODS = 1, // 模糊查询的时候以 商品名 为KEY值(目前只支持模糊查询商品名)
  65456. } EM_NET_POS_EXCHANGE_FUSSY_KEY;
  65457. ///@brief CLIENT_StartFind 接口 NET_FIND_POS_EXCHANGE 命令入参
  65458. typedef struct tagNET_IN_POSEXCHANGE_STARTFIND
  65459. {
  65460. DWORD dwSize; //结构体大小
  65461. int nChannel; //需要锁定的通道号,从0开始,元素为-1时,表示全通道。
  65462. NET_TIME_EX stuStartTime; //开始时间,必填, 毫秒没用
  65463. NET_TIME_EX stuEndTime; //结束时间,不填表示至今为止, 毫秒没用
  65464. char szGoods[DH_POS_EXCHANGE_GOODS_MAX][DH_COMMON_STRING_32]; //商品名,可选,字符串
  65465. EM_NET_POS_EXCHANGE_FUSSY_KEY szFuzzyPattern[DH_POS_EXCHANGE_FUSSY_KEY_MAX]; //指定模糊查询的关键字,未指定关键字的使用精确查询,
  65466. //必填,不需要模糊查询时填NULL
  65467. int nPosId; //Pos唯一标识, -1标识全部
  65468. } NET_IN_POSEXCHANGE_STARTFIND;
  65469. ///@brief CLIENT_StartFind 接口 NET_FIND_POS_EXCHANGE 命令出参
  65470. typedef struct tagNET_OUT_POSEXCHANGE_STARTFIND
  65471. {
  65472. DWORD dwSize; // 此结构体大小
  65473. unsigned int nToken; // 查询令牌
  65474. DWORD dwTotalCount; // 符合条件的总个数
  65475. }NET_OUT_POSEXCHANGE_STARTFIND;
  65476. ///@brief CLIENT_DoFind 接口 NET_FIND_POS_EXCHANGE 命令入参
  65477. typedef struct tagNET_IN_POSEXCHANGE_DOFIND
  65478. {
  65479. DWORD dwSize; // 此结构体大小
  65480. unsigned int nToken; // 查询令牌
  65481. unsigned int nBeginNumber; // 起始序号 0<=dwBeginNumber<=dwTotalCount-1
  65482. unsigned int nCount; // 每次查询的POS交易信息条数
  65483. } NET_IN_POSEXCHANGE_DOFIND;
  65484. ///@brief POS交易信息
  65485. typedef struct tagNET_POSEXCHANGE_INFO
  65486. {
  65487. NET_TIME stuExchangeTime; //交易发生时间
  65488. }NET_POSEXCHANGE_INFO;
  65489. ///@brief POS交易信息扩展字段
  65490. typedef struct tagNET_POSEXCHANGE_INFO_EX
  65491. {
  65492. int nPosId; // Pos唯一标识
  65493. char cDetail[512]; // 交易的具体信息
  65494. int nDetailLen; // 交易的具体信息长度
  65495. BYTE reserved[1024]; // 预留
  65496. } NET_POSEXCHANGE_INFO_EX;
  65497. ///@brief CLIENT_DoFind 接口 NET_FIND_POS_EXCHANGE 命令出参
  65498. typedef struct tagNET_OUT_POSEXCHANGE_DOFIND
  65499. {
  65500. DWORD dwSize; // 此结构体大小
  65501. DWORD dwFound; // 查询到的个数
  65502. NET_POSEXCHANGE_INFO arrPOSExchangeInfo[DH_MAX_POS_EXCHANGE_INFO]; // 查询到的交易信息列表
  65503. NET_POSEXCHANGE_INFO_EX stuInfoEx[DH_MAX_POS_EXCHANGE_INFO]; // 交易信息
  65504. }NET_OUT_POSEXCHANGE_DOFIND;
  65505. ///@brief CLIENT_StopFind 接口 NET_FIND_POS_EXCHANGE 命令入参
  65506. typedef struct tagNET_IN_POSEXCHANGE_STOPFIND
  65507. {
  65508. DWORD dwSize; // 此结构体大小
  65509. unsigned int nToken; // 查询令牌
  65510. } NET_IN_POSEXCHANGE_STOPFIND;
  65511. ///@brief CLIENT_StopFind 接口 NET_FIND_POS_EXCHANGE 命令出参
  65512. typedef struct tagNET_OUT_POSEXCHANGE_STOPFIND
  65513. {
  65514. DWORD dwSize; // 此结构体大小
  65515. } NET_OUT_POSEXCHANGE_STOPFIND;
  65516. ///@brief 船只报表查询方向
  65517. typedef enum tagNET_EM_BOAT_STATISTICAL_DIRECTION
  65518. {
  65519. NET_EM_BOAT_STATISTICAL_DIRECTION_UNKNOWN, // 未知
  65520. NET_EM_BOAT_STATISTICAL_DIRECTION_LEFT_TO_RIGHT, // 进港
  65521. NET_EM_BOAT_STATISTICAL_DIRECTION_RIGHT_TO_LEFT, // 出港
  65522. NET_EM_BOAT_STATISTICAL_DIRECTION_ALL, // 全选
  65523. } NET_EM_BOAT_STATISTICAL_DIRECTION;
  65524. ///@brief 查询时间类型
  65525. typedef enum tagNET_EM_BOAT_STATISTICAL_TIME_KEY
  65526. {
  65527. NET_EM_BOAT_STATISTICAL_TIME_KEY_UNKNOWN, // 未知
  65528. NET_EM_BOAT_STATISTICAL_TIME_KEY_MONTH, // 按月查询
  65529. NET_EM_BOAT_STATISTICAL_TIME_KEY_DAY, // 按日查询
  65530. NET_EM_BOAT_STATISTICAL_TIME_KEY_HOUR, // 按小时查询
  65531. } NET_EM_BOAT_STATISTICAL_TIME_KEY;
  65532. ///@brief CLIENT_StartFind 接口 NET_FIND_BOAT_STATISTICAL 命令入参
  65533. typedef struct tagNET_IN_BOAT_STATISTICAL_STARTFIND
  65534. {
  65535. DWORD dwSize; // 结构体大小
  65536. int nChannelNum; // 查询通道个数
  65537. int nChannels[512]; // 查询通道
  65538. NET_TIME stuStartTime; // 查询开始时间
  65539. NET_TIME stuEndTime; // 查询结束时间
  65540. int nChannel; // 通道号, 从0开始, -1表示查询所有通道, Channel与Channels字段至少需要有一个, 一般不应该都存在, 如果都存在, 以Channels为准
  65541. NET_EM_BOAT_STATISTICAL_DIRECTION emDirection; // 查询方向
  65542. NET_EM_BOAT_STATISTICAL_TIME_KEY emTimeKey; // 查询时间类型
  65543. } NET_IN_BOAT_STATISTICAL_STARTFIND;
  65544. ///@brief CLIENT_StartFind 接口 NET_FIND_BOAT_STATISTICAL 命令出参
  65545. typedef struct tagNET_OUT_BOAT_STATISTICAL_STARTFIND
  65546. {
  65547. DWORD dwSize; // 此结构体大小
  65548. unsigned int nToken; // 查询令牌
  65549. }NET_OUT_BOAT_STATISTICAL_STARTFIND;
  65550. ///@brief CLIENT_DoFind 接口 NET_FIND_BOAT_STATISTICAL 命令入参
  65551. typedef struct tagNET_IN_BOAT_STATISTICAL_DOFIND
  65552. {
  65553. DWORD dwSize; // 此结构体大小
  65554. unsigned int nToken; // 查询令牌
  65555. } NET_IN_BOAT_STATISTICAL_DOFIND;
  65556. ///@brief 船只报表信息
  65557. typedef struct tagNET_BOAT_STATISTICAL_INFO
  65558. {
  65559. NET_TIME_EX stuStartTime; // 开始时间
  65560. NET_TIME_EX stuEndTime; // 结束时间
  65561. int nLeftToRightTotal; // 进入数量
  65562. int nRightToLeftTotal; // 离开数量
  65563. char szReserved[512]; // 保留字节
  65564. } NET_BOAT_STATISTICAL_INFO;
  65565. ///@brief CLIENT_DoFind 接口 NET_FIND_BOAT_STATISTICAL 命令出参
  65566. typedef struct tagNET_OUT_BOAT_STATISTICAL_DOFIND
  65567. {
  65568. DWORD dwSize; // 此结构体大小
  65569. int nCount; // 查询到的个数
  65570. NET_BOAT_STATISTICAL_INFO stuInfo[32]; // 船只报表记录列表
  65571. }NET_OUT_BOAT_STATISTICAL_DOFIND;
  65572. ///@brief CLIENT_StopFind 接口 NET_FIND_BOAT_STATISTICAL 命令入参
  65573. typedef struct tagNET_IN_BOAT_STATISTICAL_STOPFIND
  65574. {
  65575. DWORD dwSize; // 此结构体大小
  65576. unsigned int nToken; // 查询令牌
  65577. } NET_IN_BOAT_STATISTICAL_STOPFIND;
  65578. ///@brief CLIENT_StopFind 接口 NET_FIND_BOAT_STATISTICAL 命令出参
  65579. typedef struct tagNET_OUT_BOAT_STATISTICAL_STOPFIND
  65580. {
  65581. DWORD dwSize; // 此结构体大小
  65582. } NET_OUT_BOAT_STATISTICAL_STOPFIND;
  65583. ///@brief 设备信息类型,对应 CLIENT_StartFind CLIENT_DoFind CLIENT_StopFind 接口
  65584. typedef enum tagNET_FIND {
  65585. NET_FIND_RADIOMETRY, // 热成像温度查询, pInBuf= NET_IN_RADIOMETRY_*FIND*, pOutBuf= NET_OUT_RADIOMETRY_*FIND*
  65586. NET_FIND_POS_EXCHANGE, // POS交易信息查询,pInBuf = NET_IN_POSEXCHANGE_*FIND*,pOutBuf= NET_OUT_POSEXCHANGE_*FIND*
  65587. NET_FIND_BOAT_STATISTICAL, // 船只报表信息查询, pInBuf = NET_IN_BOAT_STATISTICAL_*FIND*, pOutBuf = NET_OUT_BOAT_STATISTICAL_*FIND*
  65588. } NET_FIND;
  65589. ///@brief 解码回调格式
  65590. typedef enum tagNET_VIDEOSTREAM_TYPE
  65591. {
  65592. NET_VIDEOSTREAM_NORMAL, // 默认格式
  65593. NET_VIDEOSTREAM_YUV, // YUV格式
  65594. } NET_VIDEOSTREAM_TYPE;
  65595. #define MAX_EVENT_LINK_QUERY_CODE_NUMBER 8 // 每次查询最多条数
  65596. #define MAX_EVENT_LINK_NAME_NUMBER 16 // 每个事件最多联动数量
  65597. ///@brief 查询联动事件列表
  65598. typedef enum tagEM_NET_QUERY_CODE {
  65599. EM_NET_QUERY_CODE_UNKNOWN, // 未知
  65600. EM_NET_QUERY_CODE_CROSSLINEDETECTION, // 警戒线/绊线事件 CrossLineDetection
  65601. EM_NET_QUERY_CODE_CROSSREGIONDETECTION, // 警戒区事件 CrossRegionDetection
  65602. EM_NET_QUERY_CODE_TAKENAWAYDETECTION, // 物品搬移事件 TakenAwayDetection
  65603. EM_NET_QUERY_CODE_LEFTDETECTION, // 物品遗留事件 LeftDetection
  65604. EM_NET_QUERY_CODE_PARKINGDETECTION, // 非法停车事件 ParkingDetection
  65605. EM_NET_QUERY_CODE_WANDERDETECTION, // 徘徊事件 WanderDetection
  65606. EM_NET_QUERY_CODE_MOVEDETECTION, // 运动检测事件 MoveDetection
  65607. EM_NET_QUERY_CODE_FACEDETECTION, // 目标检测事件 FaceDetection
  65608. EM_NET_QUERY_CODE_RETROGRADEDETECTION, // 人员逆行事件 RetrogradeDetection
  65609. EM_NET_QUERY_CODE_NUMBERSTAT, // 人数量/客流量统计事件 NumberStat
  65610. EM_NET_QUERY_CODE_TRAFFICJUNCTION, // 新交通路口事件 TrafficJunction
  65611. EM_NET_QUERY_CODE_RIOTERDETECTION, // 聚众事件 RioterDetection
  65612. EM_NET_QUERY_CODE_ALARMLOCAL, // 本地外部报警事件 AlarmLocal
  65613. EM_NET_QUERY_CODE_VIDEOMOTION, // 视频移动侦测事件 VideoMotion
  65614. EM_NET_QUERY_CODE_VIDEOBLIND, // 视频遮挡事件 VideoBlind
  65615. EM_NET_QUERY_CODE_AUDIODETECT, // 音量检测事件 AudioDetect
  65616. EM_NET_QUERY_CODE_AUDIOANOMALY, // 声音异常事件 AudioAnomaly
  65617. EM_NET_QUERY_CODE_AUDIOMUTATION, // 声强突变事件 AudioMutation
  65618. EM_NET_QUERY_CODE_SCENECHANGE, // IPC场景变更事件 SceneChange
  65619. EM_NET_QUERY_CODE_VIDEOUNFOCUS, // 视频虚焦事件 VideoUnFocus
  65620. EM_NET_QUERY_CODE_STORAGELOWSPACE, // 硬盘空间低报警事件 StorageLowSpace
  65621. EM_NET_QUERY_CODE_STORAGEFAILURE, // 存储错误事件 StorageFailure
  65622. EM_NET_QUERY_CODE_LOGINFAILURE, // 登陆失败事件 LoginFailure
  65623. EM_NET_QUERY_CODE_STORAGENOTEXIST, // 存储组不存在事件 StorageNotExist
  65624. EM_NET_QUERY_CODE_IPCONFLICT, // IP冲突事件 IPConflict
  65625. EM_NET_QUERY_CODE_NETABORT, // 设备自身断网事件 NetAbort
  65626. EM_NET_QUERY_CODE_HOTPLUG, // 热插拔事件 HotPlug
  65627. EM_NET_QUERY_CODE_STORAGEFORMAT, // 存储格式 StorageFormat
  65628. EM_NET_QUERY_CODE_EMERGENCYRECORDPULL, // 紧急录像报警事件 EmergencyRecordPull
  65629. } EM_NET_QUERY_CODE;
  65630. ///@brief 联动项名称
  65631. typedef enum tagEM_NET_LINK_NAME {
  65632. EM_NET_LINK_NAME_UNKNOWN, // 未知
  65633. EM_NET_LINK_NAME_DEFAULT, // 默认能力,即eventManager.getCaps获取的能力 default
  65634. EM_NET_LINK_NAME_TIMESECTIONENABLE, // 时间事件响应 TimeSectionEnable
  65635. EM_NET_LINK_NAME_RECORDENABLE, // 录像 RecordEnable
  65636. EM_NET_LINK_NAME_RECORDCLOUDENABLE, // 录像云存储 RecordCloudEnable
  65637. EM_NET_LINK_NAME_ALARMOUTENABLE, // 报警输出 AlarmOutEnable
  65638. EM_NET_LINK_NAME_PTZLINKENABLE, // 云台联动 PtzLinkEnable
  65639. EM_NET_LINK_NAME_SNAPSHOTENABLE, // 快照 SnapshotEnable
  65640. EM_NET_LINK_NAME_SNAPSHOTCLOUDENABLE, // 抓图云存储 SnapshotCloudEnable
  65641. EM_NET_LINK_NAME_MAILENABLE, // 发送邮件 MailEnable
  65642. EM_NET_LINK_NAME_BEEPENABLE, // 蜂鸣 BeepEnable
  65643. EM_NET_LINK_NAME_DEJITTERENABLE, // 去抖动 DejitterEnable
  65644. EM_NET_LINK_NAME_TIPENABLE, // 本地消息框提示 TipEnable
  65645. EM_NET_LINK_NAME_MONITORTOURENABLE, // 轮询联动配置 MonitorTourEnable
  65646. EM_NET_LINK_NAME_MMSENABLE, // 短消息 MMSEnable
  65647. EM_NET_LINK_NAME_SUPPORTALARMBELL, // 警号输出 SupportAlarmBell
  65648. EM_NET_LINK_NAME_SUPPORTACCESSCONTROL, // 门禁控制 SupportAccessControl
  65649. EM_NET_LINK_NAME_SIPCALLENABLE, // SIP呼叫 SipCallEnable
  65650. EM_NET_LINK_NAME_SUPPORTALARMSERVER, // 上传至报警服务器 SupportAlarmServer
  65651. EM_NET_LINK_NAME_SUPPORTPTZLINKDELAY, // 云台联动延迟 SupportPtzLinkDelay
  65652. EM_NET_LINK_NAME_SUPPORTPSTNALARMSERVER,// 上传至电话报警中心 SupportPSTNAlarmServer
  65653. EM_NET_LINK_NAME_SUPPORTICR, // ICR(双滤光片切换)切换 SupportICR
  65654. EM_NET_LINK_NAME_BEEPTIME, // 蜂鸣时长设置 BeepTime
  65655. EM_NET_LINK_NAME_DEJITTERRANGE, // 去抖动范围 DejitterRange
  65656. EM_NET_LINK_NAME_ALARMOUTLATCH, // 报警输出延时 AlarmOutLatch
  65657. EM_NET_LINK_NAME_RECORDLATCH, // 录像延时 RecordLatch
  65658. EM_NET_LINK_NAME_VOICEENABLE, // 语音提示 VoiceEnable
  65659. EM_NET_LINK_NAME_LOGENABLE, // 联动日志 LogEnable
  65660. EM_NET_LINK_NAME_SUPPORTLIGHTCONTROL, // 联动灯光控制器 SupportLightControl
  65661. EM_NET_LINK_NAME_SUPPORTVIDEOMATRIX, // 联动视频矩阵 SupportVideoMatrix
  65662. } EM_NET_LINK_NAME;
  65663. ///@brief CLIENT_getEventLink 接口入参
  65664. typedef struct tagNET_IN_EVENT_LINK
  65665. {
  65666. DWORD dwSize; // 此结构体大小
  65667. int nCodeNum; // 查询联动事件个数
  65668. EM_NET_QUERY_CODE szCodeName[MAX_EVENT_LINK_QUERY_CODE_NUMBER]; // 查询联动事件列表
  65669. } NET_IN_EVENT_LINK;
  65670. ///@brief CLIENT_getEventLink 接口出参
  65671. typedef struct tagNET_OUT_EVENT_LINK
  65672. {
  65673. DWORD dwSize; // 此结构体大小
  65674. EM_NET_LINK_NAME szLinkName[MAX_EVENT_LINK_QUERY_CODE_NUMBER][MAX_EVENT_LINK_NAME_NUMBER]; // 联动项名称
  65675. } NET_OUT_EVENT_LINK;
  65676. ///@brief CLIENT_GetEventChannels 接口入参
  65677. typedef struct tagNET_IN_EVENT_CHANNELS
  65678. {
  65679. DWORD dwSize; // 此结构体大小
  65680. unsigned int nEventCode; // 事件码章节定义的任意事件码 只支持IP冲突、MAC冲突、视频遮挡事件、视频丢失事件、网络预览中断事件
  65681. }NET_IN_EVENT_CHANNELS;
  65682. ///@brief CLIENT_GetEventChannels 接口出参
  65683. typedef struct tagNET_OUT_EVENT_CHANNELS
  65684. {
  65685. DWORD dwSize; // 此结构体大小
  65686. int nChannelNum; // 通道个数
  65687. int nEventChannelList[1024]; // 存在对应事件的通道列表,每一个成员表示对应通道是否存在对应的事件
  65688. BYTE byReserved[64]; // 预留字节
  65689. }NET_OUT_EVENT_CHANNELS;
  65690. ///@brief CLIENT_GetVideoInAnalyseEnableChannels 接口输入参数
  65691. typedef struct tagNET_IN_VIDEOINANALYSE_GET_ENABLECHANNELS
  65692. {
  65693. DWORD dwSize; // 此结构体大小
  65694. } NET_IN_VIDEOINANALYSE_GET_ENABLECHANNELS;
  65695. ///@brief CLIENT_GetVideoInAnalyseEnableChannels 接口输出参数
  65696. typedef struct tagNET_OUT_VIDEOINANALYSE_GET_ENABLECHANNELS
  65697. {
  65698. DWORD dwSize; // 此结构体大小
  65699. int nLocalChnNum; // 已使能的后智能通道个数
  65700. int nLocalChannel[DH_MAX_CAMERA_CHANNEL_NUM]; // 后智能已使能的通道列表
  65701. int nRemoteChnNum; // 已使能的前智能通道个数
  65702. int nRemoteChannel[DH_MAX_CAMERA_CHANNEL_NUM]; // 前智能已使能的通道列表
  65703. } NET_OUT_VIDEOINANALYSE_GET_ENABLECHANNELS;
  65704. ///@brief 开始查询信息(获取查询句柄)(pInBuf, pOutBuf内存由用户申请释放,根据emType对应的类型找到相应的结构体,进而确定申请内存大小)
  65705. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartFind(LLONG lLoginID, NET_FIND emType, void* pInBuf, void* pOutBuf, int nWaitTime = 1000);
  65706. ///@brief 查询信息(pInBuf, pOutBuf内存由用户申请释放,根据emType对应的类型找到相应的结构体,进而确定申请内存大小
  65707. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFind(LLONG lLoginID, NET_FIND emType, void* pInBuf, void* pOutBuf, int nWaitTime = 1000);
  65708. ///@brief 停止查询信息(销毁查询句柄)(pInBuf, pOutBuf内存由用户申请释放,根据emType对应的类型找到相应的结构体,进而确定申请内存大小)
  65709. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFind(LLONG lLoginID, NET_FIND emType, void* pInBuf, void* pOutBuf, int nWaitTime = 1000);
  65710. ///@brief 设置通道录像状态(pRsBuffer内存由用户申请释放)
  65711. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetupRecordState(LLONG lLoginID, char *pRSBuffer, int nRSBufferlen);
  65712. ///@brief 设置通道辅码流录像状态(pRsBuffer内存由用户申请释放)
  65713. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetupExtraRecordState(LLONG lLoginID, char *pRSBuffer, int nRSBufferlen, void* pReserved);
  65714. ///@brief 查询IO状态(pState内存由用户申请释放,根据emType对应的类型找到相应的结构体,进而确定申请内存大小)
  65715. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryIOControlState(LLONG lLoginID, DH_IOTYPE emType,
  65716. void *pState, int maxlen, int *nIOCount, int waittime=1000);
  65717. ///@brief IO控制(pState内存由用户申请释放,根据emType对应的类型找到相应的结构体,进而确定申请内存大小)
  65718. CLIENT_NET_API BOOL CALL_METHOD CLIENT_IOControl(LLONG lLoginID, DH_IOTYPE emType, void *pState, int maxlen);
  65719. ///@brief 强制I帧;nChannelID:通道号,nSubChannel:码流类型(0:主,1:子码流1)
  65720. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MakeKeyFrame(LLONG lLoginID, int nChannelID, int nSubChannel=0);
  65721. ///@brief 公网代理注册
  65722. typedef void (CALLBACK *fConnectMessCallBack)(LLONG lConnectHandle, NET_CLOUDSERVICE_CONNECT_RESULT* pConnectResult, void* pReserved, LDWORD dwUser);
  65723. ///@brief 公网代理注册,pConnectParm内存由用户申请释放,大小为sizeof(NET_CLOUDSERVICE_CONNECT_PARAM)
  65724. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ConnectCloudService(LLONG lLoginID, NET_CLOUDSERVICE_CONNECT_PARAM* pConnectParm, fConnectMessCallBack pConnectMessCB, LDWORD dwUser, void* pReserved);
  65725. ///@brief 查询用户信息(info内存由用户申请释放,大小为sizeof(USER_MANAGE_INFO))
  65726. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryUserInfo(LLONG lLoginID, USER_MANAGE_INFO *info, int waittime=1000);
  65727. ///@brief 查询用户信息--扩展(info内存由用户申请释放,大小为sizeof(USER_MANAGE_INFO_EX))
  65728. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryUserInfoEx(LLONG lLoginID, USER_MANAGE_INFO_EX *info, int waittime=1000);
  65729. ///@brief 查询用户信息--最大支持64通道设备(info内存由用户申请释放)
  65730. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryUserInfoNew(LLONG lLoginID, USER_MANAGE_INFO_NEW *info, void* pReserved, int waittime = 1000);
  65731. ///@brief 查询用户信息--权限列表扩展到3072(pstuInfo内存由用户申请释放)
  65732. ///@param[in] lLoginID 登录句柄
  65733. ///@param[in] pstuInfo 接口输入参数, 内存资源由用户申请和释放
  65734. ///@param[out] pReserved 接口保留参数, 暂未使用,可填NULL
  65735. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  65736. ///@return TRUE表示成功 FALSE表示失败
  65737. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryUserInfoNewEx(LLONG lLoginID, NET_USER_MANAGE_INFO_NEW_EX *pstuInfo, void* pReserved, int waittime = 3000);
  65738. ///@brief 操作设备用户(opParam, subParam内存由用户申请释放,根据nOperateType对应的类型找到相应的结构体,进而确定申请内存大小)
  65739. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateUserInfo(LLONG lLoginID, int nOperateType, void *opParam, void *subParam, int waittime=1000);
  65740. ///@brief 操作设备用户--扩展(opParam, subParam内存由用户申请释放,根据nOperateType对应的类型找到相应的结构体,进而确定申请内存大小)
  65741. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateUserInfoEx(LLONG lLoginID, int nOperateType, void *opParam, void *subParam, int waittime=1000);
  65742. ///@brief 操作设备用户--最大支持64通道设备(opParam, subParam内存由用户申请释放,根据nOperateType对应的类型找到相应的结构体,进而确定申请内存大小)
  65743. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateUserInfoNew(LLONG lLoginID, int nOperateType, void *opParam, void *subParam, void* pRetParam, int waittime = 1000);
  65744. ///@brief 创建透明串口通道,TransComType高2个字节表示串口序号,低2个字节表示串口类型,目前类型支持0:串口,1:485
  65745. CLIENT_NET_API LLONG CALL_METHOD CLIENT_CreateTransComChannel(LLONG lLoginID, int TransComType, unsigned int baudrate, unsigned int databits, unsigned int stopbits, unsigned int parity, fTransComCallBack cbTransCom, LDWORD dwUser);
  65746. ///@brief 透明串口发送数据(pBuffer内存由用户申请释放)
  65747. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SendTransComData(LLONG lTransComChannel, char *pBuffer, DWORD dwBufSize);
  65748. ///@brief 释放通明串口通道
  65749. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DestroyTransComChannel(LLONG lTransComChannel);
  65750. ///@brief 查询透明串口状态(pCommState内存由用户申请释放)
  65751. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryTransComParams(LLONG lLoginID, int TransComType, DH_COMM_STATE* pCommState, int nWaitTime = 500);
  65752. ///@brief 开始升级设备程序,pchFileName由用户申请释放内存,大小为MAX_PATH
  65753. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartUpgrade(LLONG lLoginID, char *pchFileName, fUpgradeCallBack cbUpgrade, LDWORD dwUser);
  65754. ///@brief 开始升级设备程序--扩展,pchFileName由用户申请释放内存,大小为MAX_PATH
  65755. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartUpgradeEx(LLONG lLoginID, EM_UPGRADE_TYPE emType, char *pchFileName, fUpgradeCallBack cbUpgrade, LDWORD dwUser);
  65756. ///@brief 开始升级设备程序--扩展支持G以上文件升级
  65757. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartUpgradeEx2(LLONG lLoginID, EM_UPGRADE_TYPE emType, char *pchFileName, fUpgradeCallBackEx cbUpgrade, LDWORD dwUser);
  65758. ///@brief 发送数据
  65759. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SendUpgrade(LLONG lUpgradeID);
  65760. ///@brief 结束升级设备程序
  65761. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopUpgrade(LLONG lUpgradeID);
  65762. ///@brief 远程升级回调类型
  65763. typedef enum tagEM_REMOTE_UPGRADE_CB_TYPE
  65764. {
  65765. EM_REMOTE_UPGRADE_CB_TYPE_APPENDING, // 推送回调 nParam1 文件总大小 nParam2 已发送大小
  65766. EM_REMOTE_UPGRADE_CB_TYPE_EXECUTE, // 完成回调 nParam1 错误码
  65767. EM_REMOTE_UPGRADE_CB_TYPE_FAILED, // 失败回调 nParam1 错误码
  65768. EM_REMOTE_UPGRADE_CB_TYPE_CANCEL, // 用户取消
  65769. }EM_REMOTE_UPGRADE_CB_TYPE;
  65770. ///@brief 升级远程设备程序回调函数
  65771. typedef void (CALLBACK *fRemoteUpgradeCallBack) (LLONG lLoginID, LLONG lUpgradeID, EM_REMOTE_UPGRADE_CB_TYPE emState, INT64 nParam1, INT64 nParam2, LDWORD dwUser);
  65772. ///@brief 连接远程设备协议
  65773. typedef enum tagEM_REMOTE_DEV_PROTOCOL_TYPE
  65774. {
  65775. EM_REMOTE_DEV_PROTOCOL_TYPE_UNKNOWN, // 未知
  65776. EM_REMOTE_DEV_PROTOCOL_TYPE_DAHUA, // Dahua
  65777. EM_REMOTE_DEV_PROTOCOL_TYPE_ONVIF, // Onvif接入设备
  65778. }EM_REMOTE_DEV_PROTOCOL_TYPE;
  65779. ///@brief 远程通道信息
  65780. typedef struct tagNET_REMOTE_UPGRADE_CHNL_INFO
  65781. {
  65782. UINT nChannel; // 远程通道号
  65783. char szDeviceID[128]; // 远程设备ID, RemoteDevice 配置
  65784. EM_REMOTE_DEV_PROTOCOL_TYPE emProtocolType; // 连接远程设备协议
  65785. BYTE byReserved[380]; // 预留字段
  65786. }NET_REMOTE_UPGRADE_CHNL_INFO;
  65787. ///@brief CLIENT_StartRemoteUpgrade-输入参数
  65788. typedef struct tagNET_IN_START_REMOTE_UPGRADE_INFO
  65789. {
  65790. DWORD dwSize; // 此结构体大小
  65791. UINT nListNum; // 需要升级的远程通道个数
  65792. NET_REMOTE_UPGRADE_CHNL_INFO *pstuList; // 需要升级的远程通道信息
  65793. void *pReserved; // 字节对齐
  65794. char szFileName[256]; // 升级文件名称
  65795. fRemoteUpgradeCallBack cbRemoteUpgrade; // 升级进度回调函数
  65796. LDWORD dwUser; // 用户数据
  65797. UINT nPacketSize; // 每次分包发送大小,为0默认为16K
  65798. }NET_IN_START_REMOTE_UPGRADE_INFO;
  65799. ///@brief CLIENT_StartRemoteUpgrade-输出参数
  65800. typedef struct tagNET_OUT_START_REMOTE_UPGRADE_INFO
  65801. {
  65802. DWORD dwSize; // 此结构体大小
  65803. }NET_OUT_START_REMOTE_UPGRADE_INFO;
  65804. ///@brief CLIENT_SelectRemoteUpgraderDevList-输入参数
  65805. typedef struct tagNET_IN_SELECT_REMOTE_UPGRADE_DEVLIST_INFO
  65806. {
  65807. DWORD dwSize; // 此结构体大小
  65808. UINT nListNum; // 需要升级的远程通道个数
  65809. NET_REMOTE_UPGRADE_CHNL_INFO *pstuList; // 需要升级的远程通道信息
  65810. void *pReserved; // 仅用于字节对齐
  65811. char szFileName[256]; // 升级文件名称
  65812. }NET_IN_SELECT_REMOTE_UPGRADE_DEVLIST_INFO;
  65813. ///@brief CLIENT_SelectRemoteUpgraderDevList-输出参数
  65814. typedef struct tagNET_OUT_SELECT_REMOTE_UPGRADE_DEVLIST_INFO
  65815. {
  65816. DWORD dwSize; // 此结构体大小
  65817. }NET_OUT_SELECT_REMOTE_UPGRADE_DEVLIST_INFO;
  65818. ///@brief 选择远程升级设备列表
  65819. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SelectRemoteUpgraderDevList(LLONG lLoginID, const NET_IN_SELECT_REMOTE_UPGRADE_DEVLIST_INFO* pInParam, NET_OUT_SELECT_REMOTE_UPGRADE_DEVLIST_INFO* pOutParam, int nWaitTime);
  65820. ///@brief 远程设备升级状态
  65821. typedef enum tagEM_REMOTE_UPGRADE_STATE
  65822. {
  65823. EM_REMOTE_UPGRADE_STATE_UNKNOWN, // 未知
  65824. EM_REMOTE_UPGRADE_STATE_INIT, // 初始状态(未升级)
  65825. EM_REMOTE_UPGRADE_STATE_DOWNLOADING, // 正在下载数据
  65826. EM_REMOTE_UPGRADE_STATE_UPGRADING, // 正在升级
  65827. EM_REMOTE_UPGRADE_STATE_FAILED, // 升级失败
  65828. EM_REMOTE_UPGRADE_STATE_SUCCEEDED, // 升级成功
  65829. EM_REMOTE_UPGRADE_STATE_CANCELLED, // 取消升级
  65830. EM_REMOTE_UPGRADE_STATE_PREPARING, // 准备升级
  65831. }EM_REMOTE_UPGRADE_STATE;
  65832. ///@brief 远程设备升级状态
  65833. typedef struct tagNET_REMOTE_UPGRADER_STATE
  65834. {
  65835. int nChannel; // 通道号
  65836. EM_REMOTE_UPGRADE_STATE emState; // 状态
  65837. int nProgress; // 进度
  65838. char szDeviceID[128]; // 远程设备ID
  65839. }NET_REMOTE_UPGRADER_STATE;
  65840. ///@brief 远程设备升级消息上报
  65841. typedef struct tagNET_REMOTE_UPGRADER_NOTIFY_INFO
  65842. {
  65843. LDWORD nStateNum; // 状态数
  65844. NET_REMOTE_UPGRADER_STATE* pstuStates; // 状态列表
  65845. BYTE byReserved[1024]; // 预留
  65846. }NET_REMOTE_UPGRADER_NOTIFY_INFO;
  65847. ///@brief 升级状态回调函数
  65848. typedef void (CALLBACK *fRemoteUpgraderStateCallback) (LLONG lLoginId, LLONG lAttachHandle, NET_REMOTE_UPGRADER_NOTIFY_INFO* pBuf, DWORD dwBufLen, void* pReserved, LDWORD dwUser);
  65849. ///@brief CLIENT_AttachRemoteUpgradeState-输入参数
  65850. typedef struct tagNET_IN_ATTACH_REMOTEUPGRADE_STATE
  65851. {
  65852. DWORD dwSize; // 此结构体大小
  65853. fRemoteUpgraderStateCallback cbCallback; // 回调
  65854. LDWORD dwUser; // 用户数据
  65855. }NET_IN_ATTACH_REMOTEUPGRADE_STATE;
  65856. ///@brief CLIENT_AttachRemoteUpgradeState-输出参数
  65857. typedef struct tagNET_OUT_ATTACH_REMOTEUPGRADE_STATE
  65858. {
  65859. DWORD dwSize; // 此结构体大小
  65860. }NET_OUT_ATTACH_REMOTEUPGRADE_STATE;
  65861. ///@brief 设备制造商
  65862. typedef enum tagENUM_VENDOR_TYPE
  65863. {
  65864. ENUM_VENDOR_TYPE_UNKNOWN, //未知
  65865. ENUM_VENDOR_TYPE_GENERAL, //General
  65866. ENUM_VENDOR_TYPE_DH, //DH
  65867. ENUM_VENDOR_TYPE_OEM, //OEM
  65868. ENUM_VENDOR_TYPE_LC, //LC
  65869. ENUM_VENDOR_TYPE_EZIP, //EZIP
  65870. }ENUM_VENDOR_TYPE;
  65871. ///@brief 视频制式
  65872. typedef enum tagENUM_STANDARD_TYPE
  65873. {
  65874. ENUM_STANDARD_TYPE_UNKNOWN, //未知
  65875. ENUM_STANDARD_TYPE_PAL, //P-PAL
  65876. ENUM_STANDARD_TYPE_NTSC, //N-NTSC
  65877. ENUM_STANDARD_TYPE_PAL_NTSC, //PN-PAL/NTSC 默认P制
  65878. ENUM_STANDARD_TYPE_NTSC_PAL, //NP-NTSC/PAL 默认N制
  65879. ENUM_STANDARD_TYPE_SECAM, //S-SECAM
  65880. }ENUM_STANDARD_TYPE;
  65881. ///@brief 版本信息
  65882. typedef struct tagNET_UPGRADER_SERIAL_INFO_EX
  65883. {
  65884. ENUM_VENDOR_TYPE emVendor; // 厂商
  65885. ENUM_STANDARD_TYPE emStandard; // 视频制式
  65886. NET_TIME_EX stuBuild; // 发布日期
  65887. char szChip[DH_COMMON_STRING_16]; // 可升级的程序名
  65888. char szClass[DH_COMMON_STRING_64]; // 产品大类
  65889. char szSerial[DH_COMMON_STRING_256]; // 内部型号
  65890. char szLanguage[DH_COMMON_STRING_128]; // 语言
  65891. char szSn[DH_COMMON_STRING_64]; // 序列号
  65892. char szSWVersion[DH_COMMON_STRING_64]; // 软件版本
  65893. char szTag[DH_COMMON_STRING_256]; // 自定义标记
  65894. BYTE byReserved[1024]; // 保留字段
  65895. }NET_UPGRADER_SERIAL_INFO_EX;
  65896. ///@brief CLIENT_GetRemoteUpdateSerialEx-输入参数
  65897. typedef struct tagNET_IN_GET_REMOTEUPDATE_SERIAL_EX
  65898. {
  65899. DWORD dwSize; // 此结构体大小
  65900. int nChannelId; // 请求的通道号
  65901. }NET_IN_GET_REMOTEUPDATE_SERIAL_EX;
  65902. ///@brief CLIENT_GetRemoteUpdateSerialEx-输出参数
  65903. typedef struct tagNET_OUT_GET_REMOTEUPDATE_SERIAL_EX
  65904. {
  65905. DWORD dwSize; // 此结构体大小
  65906. int nRetNum; // 返回个数
  65907. NET_UPGRADER_SERIAL_INFO_EX stuSerialInfo[MAX_UPGRADER_SERIAL_INFO];// 设备当前版本信息
  65908. }NET_OUT_GET_REMOTEUPDATE_SERIAL_EX;
  65909. ///@brief 升级包校验参数
  65910. typedef struct tagNET_REMOTEUPGRADE_DATA_PARAM
  65911. {
  65912. char szCheckSum[128]; // 升级包校验值
  65913. int nCheckType; // 升级包校验方式 0:传入MD5值校验
  65914. BYTE byReserved[892]; // 预留字段
  65915. }NET_REMOTEUPGRADE_DATA_PARAM;
  65916. ///@brief CLIENT_SetRemoteUpgradeUrl-输入参数
  65917. typedef struct tagNET_IN_SET_REMOTEUPGRADE_URL
  65918. {
  65919. DWORD dwSize; // 此结构体大小
  65920. int nChannelNum; // 待升级通道个数
  65921. int nChannels[256]; // 待升级通道号
  65922. char szUrl[256]; // 升级包下载地址
  65923. NET_REMOTEUPGRADE_DATA_PARAM stuParam; // 升级包校验参数
  65924. char szSpareUrls[4][256]; // 备选URL
  65925. int nSpareUrlNum; // 备选URL个数
  65926. }NET_IN_SET_REMOTEUPGRADE_URL;
  65927. ///@brief CLIENT_SetRemoteUpgradeUrl-输出参数
  65928. typedef struct tagNET_OUT_SET_REMOTEUPGRADE_URL
  65929. {
  65930. DWORD dwSize; // 此结构体大小
  65931. }NET_OUT_SET_REMOTEUPGRADE_URL;
  65932. ///@brief CLIENT_GetRemoteUpgradeState 入参
  65933. typedef struct tagNET_IN_GET_REMOTEUPGRADE_STATE
  65934. {
  65935. DWORD dwSize;
  65936. }NET_IN_GET_REMOTEUPGRADE_STATE;
  65937. ///@brief CLIENT_GetRemoteUpgradeState 出参
  65938. typedef struct tagNET_OUT_GET_REMOTEUPGRADE_STATE
  65939. {
  65940. DWORD dwSize;
  65941. int nMaxStateNum; // 输入最大的状态数
  65942. LDWORD nRetStateNum; // 实际返回的状态数
  65943. NET_REMOTE_UPGRADER_STATE* pstuStates; // 状态列表
  65944. }NET_OUT_GET_REMOTEUPGRADE_STATE;
  65945. ///@brief 开始升级远程设备程序
  65946. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartRemoteUpgrade(LLONG lLoginID, const NET_IN_START_REMOTE_UPGRADE_INFO* pInParam, NET_OUT_START_REMOTE_UPGRADE_INFO* pOutParam, int nWaitTime = 500);
  65947. ///@brief 结束升级远程设备程序
  65948. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopRemoteUpgrade(LLONG lUpgradeID);
  65949. ///@brief 订阅ipc升级状态观察接口
  65950. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRemoteUpgradeState( LLONG lLoginID, const NET_IN_ATTACH_REMOTEUPGRADE_STATE* pInParam, NET_OUT_ATTACH_REMOTEUPGRADE_STATE* pOutParam, int nWaitTime );
  65951. ///@brief 取消订阅升级状态接口
  65952. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRemoteUpgradeState( LLONG lAttachHandle );
  65953. ///@brief 获取远程升级前端设备版本信息
  65954. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRemoteUpdateSerialEx(LLONG lLoginID, const NET_IN_GET_REMOTEUPDATE_SERIAL_EX* pInParam, NET_OUT_GET_REMOTEUPDATE_SERIAL_EX* pOutParam, int nWaitTime);
  65955. ///@brief 通过URL升级前端设备
  65956. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRemoteUpgradeUrl(LLONG lLoginID, const NET_IN_SET_REMOTEUPGRADE_URL* pInParam, NET_OUT_SET_REMOTEUPGRADE_URL* pOutParam, int nWaitTime);
  65957. ///@brief 获取远程升级状态
  65958. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRemoteUpgradeState( LLONG lLoginID, const NET_IN_GET_REMOTEUPGRADE_STATE* pInParam, NET_OUT_GET_REMOTEUPGRADE_STATE* pOutParam, int nWaitTime );
  65959. ///@brief 查询配置信息(lpOutBuffer内存由用户申请释放)
  65960. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevConfig(LLONG lLoginID, DWORD dwCommand, LONG lChannel, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned,int waittime=500);
  65961. ///@brief 设置配置信息(lpInBuffer内存由用户申请释放)
  65962. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDevConfig(LLONG lLoginID, DWORD dwCommand, LONG lChannel, LPVOID lpInBuffer, DWORD dwInBufferSize, int waittime=500);
  65963. ///@brief 新配置接口,查询配置信息(以Json格式,具体见配置SDK)(szOutBuffer内存由用户申请释放)
  65964. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetNewDevConfig(LLONG lLoginID, char* szCommand, int nChannelID, char* szOutBuffer, DWORD dwOutBufferSize, int *error, int waittime=500);
  65965. ///@brief 新配置接口,设置配置信息(以Json格式,具体见配置SDK)(szInBuffer内存由用户申请释放)
  65966. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetNewDevConfig(LLONG lLoginID, char* szCommand, int nChannelID, char* szInBuffer, DWORD dwInBufferSize, int *error, int *restart, int waittime=500);
  65967. ///@brief 删除配置接口(Json格式)(pInParam, pOutParam内存由用户申请释放)
  65968. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteDevConfig(LLONG lLoginID, NET_IN_DELETECFG* pInParam, NET_OUT_DELETECFG* pOutParam, int waittime=500);
  65969. ///@brief 获取配置成员名称接口(Json格式)(pInParam, pOutParam内存由用户申请释放)
  65970. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMemberNames(LLONG lLoginID, NET_IN_MEMBERNAME* pInParam, NET_OUT_MEMBERNAME* pOutParam, int waittime=500);
  65971. ///@brief 获取网卡信息(lpInParam, lpOutParam内存由用户申请释放,大小参照emType对应的结构体)
  65972. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryNetStat(LLONG lLoginID , EM_NET_QUERY_TYPE emType , void *lpInParam , int nInParamLen , void *lpOutParam , int nOutParamLen , int *pError = NULL , int nWaitTime=1000);
  65973. ///@brief VideoInAnalyse操作(szOutBuffer内存由用户申请释放)
  65974. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoInAnalyse(LLONG lLoginID, char* szCommand, int nChannelID, EM_SCENE_CLASS_TYPE emClassType, char* szOutBuffer, DWORD dwOutBufferSize, int *error, int waittime);
  65975. ///@brief 获取指定事件的联动能力集(pInParam, pOutParam内存由用户申请释放)
  65976. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEventLink(LLONG lLoginID, NET_IN_EVENT_LINK* pInParam, NET_OUT_EVENT_LINK* pOutParam, int nWaitTime);
  65977. ///@brief 得到某类事件的有效通道列表(pInParam, pOutParam内存由用户申请释放)
  65978. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEventChannels(LLONG lLoginID, NET_IN_EVENT_CHANNELS* pInParam, NET_OUT_EVENT_CHANNELS* pOutParam, int nWaitTime);
  65979. ///@brief 获取正在执行智能分析的通道列表
  65980. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoInAnalyseEnableChannels(LLONG lLoginID, const NET_IN_VIDEOINANALYSE_GET_ENABLECHANNELS* pInParam,
  65981. NET_OUT_VIDEOINANALYSE_GET_ENABLECHANNELS* pOutParam, int nWaitTime);
  65982. ///@brief 查询设备通道名称(pChannelName内存由用户申请释放)
  65983. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryChannelName(LLONG lLoginID, char *pChannelName, int maxlen, int *nChannelCount, int waittime=1000);
  65984. ///@brief 设置设备通道名称(pbuf 内存由用户申请释放,建议大小至少为512字节)
  65985. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetupChannelName(LLONG lLoginID,char *pbuf, int nbuflen);
  65986. ///@brief 设置设备通道字符叠加(struOsdString内存由用户申请释放)
  65987. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetupChannelOsdString(LLONG lLoginID, int nChannelNo, DH_CHANNEL_OSDSTRING* struOsdString, int nbuflen);
  65988. ///@brief 查询设备当前时间
  65989. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDeviceTime(LLONG lLoginID, LPNET_TIME pDeviceTime, int waittime=1000);
  65990. ///@brief 设置设备当前时间
  65991. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetupDeviceTime(LLONG lLoginID, LPNET_TIME pDeviceTime);
  65992. ///@brief 查询设备当前时间扩展接口
  65993. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDeviceTimeEx(LLONG lLoginID, LPNET_TIME_EX pDeviceTime, int waittime=1000);
  65994. ///@brief 设置设备当前时间扩展接口
  65995. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetupDeviceTimeEx(LLONG lLoginID, LPNET_TIME_EX pDeviceTime);
  65996. ///@brief 查询设备当前UTC时间接口
  65997. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDeviceUTC(LLONG lLoginID, LPNET_UTCTIME pDeviceTime, int waittime=1000);
  65998. ///@brief 设置设备当前UTC时间接口
  65999. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDeviceUTC(LLONG lLoginID, LPNET_UTCTIME pDeviceTime);
  66000. ///@brief 设置设备限制码流
  66001. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetMaxFlux(LLONG lLoginID, WORD wFlux);
  66002. ///@brief 导入配置文件,szFileName由用户申请释放内存,大小为MAX_PATH
  66003. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ImportConfigFile(LLONG lLoginID, char *szFileName, fDownLoadPosCallBack cbUploadPos, LDWORD dwUserData, DWORD param=0);
  66004. ///@brief 停止导入配置文件
  66005. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopImportCfgFile(LLONG lImportHandle);
  66006. ///@brief 导出配置文件,szSavedFilePath由用户申请释放内存,大小为MAX_PATH
  66007. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ExportConfigFile(LLONG lLoginID, DH_CONFIG_FILE_TYPE emConfigFileType, char *szSavedFilePath, fDownLoadPosCallBack cbDownLoadPos, LDWORD dwUserData);
  66008. ///@brief 停止导出配置文件
  66009. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopExportCfgFile(LLONG lExportHandle);
  66010. ///@brief 通过设备名字或者设备序列号向DDNS服务器查询设备IP
  66011. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDVRIPByResolveSvr(char *pchDVRIP, WORD wDVRPort, BYTE *sDVRName, WORD wDVRNameLen, BYTE *sDVRSerialNumber, WORD wDVRSerialLen, char* sGetIP);
  66012. ///@brief 搜索局域网内IPC、NVS等设备(szBuf内存由用户申请释放)
  66013. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SearchDevices(char* szBuf, int nBufLen, int* pRetLen, DWORD dwSearchTime, char* szLocalIp=NULL);
  66014. ///@brief 异步搜索局域网内IPC、NVS等设备,pUserData表示用户数据,不支持多线程调用,
  66015. // 接口调用1次只发送搜索信令1次
  66016. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartSearchDevices(fSearchDevicesCB cbSearchDevices, void* pUserData, char* szLocalIp=NULL);
  66017. ///@brief 停止异步搜索局域网内IPC、NVS等设备
  66018. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopSearchDevices(LLONG lSearchHandle);
  66019. ///@brief 修改设备IP (pDevNetInfo内存由用户申请释放):不支持多线程调用
  66020. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyDevice(DEVICE_NET_INFO_EX *pDevNetInfo, DWORD dwWaitTime, int *iError = NULL, char* szLocalIp = NULL, void *reserved = NULL);
  66021. ///@brief 下发搜索类型
  66022. typedef enum tagEM_SEND_SEARCH_TYPE
  66023. {
  66024. EM_SEND_SEARCH_TYPE_MULTICAST_AND_BROADCAST, // 组播和广播搜索
  66025. EM_SEND_SEARCH_TYPE_MULTICAST, // 组播搜索
  66026. EM_SEND_SEARCH_TYPE_BROADCAST, // 广播搜索
  66027. }EM_SEND_SEARCH_TYPE;
  66028. ///@brief 异步搜索设备入参
  66029. typedef struct tagNET_IN_STARTSERACH_DEVICE
  66030. {
  66031. DWORD dwSize; // 结构体大小
  66032. char szLocalIp[MAX_LOCAL_IP_LEN]; // 发起搜索的本地IP
  66033. fSearchDevicesCBEx cbSearchDevices; // 设备信息回调函数
  66034. void* pUserData; // 用户自定义数据
  66035. EM_SEND_SEARCH_TYPE emSendType; // 下发搜索类型
  66036. }NET_IN_STARTSERACH_DEVICE;
  66037. ///@brief // 异步搜索设备出参
  66038. typedef struct tagNET_OUT_STARTSERACH_DEVICE
  66039. {
  66040. DWORD dwSize; // 结构体大小
  66041. }NET_OUT_STARTSERACH_DEVICE;
  66042. ///@brief 异步搜索设备
  66043. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartSearchDevicesEx(NET_IN_STARTSERACH_DEVICE* pInBuf, NET_OUT_STARTSERACH_DEVICE* pOutBuf);
  66044. ///@brief 修改IP入参
  66045. typedef struct tagNET_IN_MODIFY_IP
  66046. {
  66047. DWORD dwSize; // 结构体大小
  66048. DEVICE_NET_INFO_EX2 stuDevNetInfo; // 设备信息结构体
  66049. }NET_IN_MODIFY_IP;
  66050. ///@brief 修改IP出参
  66051. typedef struct tagNET_OUT_MODIFY_IP
  66052. {
  66053. DWORD dwSize; // 结构体大小
  66054. }NET_OUT_MODIFY_IP;
  66055. ///@brief 修改设备IP (pDevNetInfo内存由用户申请释放)
  66056. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyDeviceEx(NET_IN_MODIFY_IP* pInBuf, NET_OUT_MODIFY_IP* pOutBuf, int nWaitTime);
  66057. ///@brief 跨网段搜索设备IP (pIpSearchInfo内存由用户申请释放)
  66058. // 接口调用1次只发送搜索信令1次
  66059. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SearchDevicesByIPs(DEVICE_IP_SEARCH_INFO* pIpSearchInfo, fSearchDevicesCB cbSearchDevices, LDWORD dwUserData, char* szLocalIp, DWORD dwWaitTime);
  66060. ///@brief pstParam内存由用户申请释放
  66061. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDeviceSearchParam(const NET_DEVICE_SEARCH_PARAM* pstParam);
  66062. ///@brief 平台接入接口(lpOutBuffer内存由用户申请释放)
  66063. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPlatFormInfo(LLONG lLoginID, DWORD dwCommand, int nSubCommand, int nParam, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned,int waittime=500);
  66064. ///@brief lpInBuffer内存由用户申请释放
  66065. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPlatFormInfo(LLONG lLoginID, DWORD dwCommand, int nSubCommand, int nParam, LPVOID lpInBuffer, DWORD dwInBufferSize, int waittime=500);
  66066. ///@brief 镜头聚焦控制
  66067. // dwFocusCommand = 0为聚焦调节
  66068. // dwFocusCommand = 1为连续聚焦调节
  66069. // dwFocusCommand = 2为自动聚焦调节,调节焦点至最佳位置。nFocus和nZoom无效。
  66070. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FocusControl(LLONG lLoginID, int nChannelID, DWORD dwFocusCommand, double nFocus, double nZoom, void *reserved = NULL, int waittime=500);
  66071. ///////////////////////////车载设备接口///////////////////////////////
  66072. ///@brief 设置抓图回调函数
  66073. CLIENT_NET_API void CALL_METHOD CLIENT_SetSnapRevCallBack(fSnapRev OnSnapRevMessage, LDWORD dwUser);
  66074. ///@brief 抓图请求
  66075. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SnapPicture(LLONG lLoginID, SNAP_PARAMS par);
  66076. ///@brief 抓图请求扩展接口
  66077. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SnapPictureEx(LLONG lLoginID, SNAP_PARAMS *par, int *reserved = 0);
  66078. ///@brief 抓图同步接口,将图片数据直接返回给用户,pInParam与pOutParam内存由用户申请释放
  66079. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SnapPictureToFile(LLONG lLoginID, const NET_IN_SNAP_PIC_TO_FILE_PARAM* pInParam, NET_OUT_SNAP_PIC_TO_FILE_PARAM* pOutParam, int nWaitTime);
  66080. ///@brief CLIENT_SnapPicFromRecord 接口入参
  66081. typedef struct tagNET_IN_SNAP_PIC_FROM_REC
  66082. {
  66083. DWORD dwSize; // 结构体大小
  66084. UINT nChannel; // 抓图通道号
  66085. int nStreamType; // 码流类型, 0-主码流 1-辅码流
  66086. BYTE byReserved[4]; // 保留字节,用于对齐
  66087. NET_TIME stuTime; // 回放抓图时间点
  66088. }NET_IN_SNAP_PIC_FROM_REC;
  66089. ///@brief CLIENT_SnapPicFromRecord 接口出参
  66090. typedef struct tagNET_OUT_SNAP_PIC_FROM_REC
  66091. {
  66092. DWORD dwSize; // 结构体大小
  66093. BYTE byReserved[4]; // 保留字节,用于对齐
  66094. BYTE* pPicBuf; // 图片缓存指针,需要用户分配内存
  66095. UINT nBufLen; // 图片缓存大小,需要用户填写
  66096. UINT nRetLen; // 设备返回的图片数据大小
  66097. }NET_OUT_SNAP_PIC_FROM_REC;
  66098. ///@brief 回放抓图接口,pInParam与pOutParam内存由用户申请释放
  66099. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SnapPicFromRecord(LLONG lLoginID, const NET_IN_SNAP_PIC_FROM_REC* pInParam,NET_OUT_SNAP_PIC_FROM_REC* pOutParam, int nWaitTime);
  66100. ///@brief CLIENT_ManualSnap 接口输入参数
  66101. typedef struct tagNET_IN_MANUAL_SNAP
  66102. {
  66103. DWORD dwSize; // 结构体大小
  66104. UINT nChannel; // 抓图通道号
  66105. UINT nCmdSerial; // 请求序列号
  66106. char szFilePath[260]; // 抓图保存路径
  66107. } NET_IN_MANUAL_SNAP;
  66108. ///@brief 抓图图片编码格式
  66109. typedef enum tagEM_SNAP_ENCODE_TYPE
  66110. {
  66111. EM_SNAP_ENCODE_TYPE_UNKNOWN, // 未知
  66112. EM_SNAP_ENCODE_TYPE_JPEG, // jpeg图片
  66113. EM_SNAP_ENCODE_TYPE_MPEG4_I, // mpeg4的i 帧
  66114. } EM_SNAP_ENCODE_TYPE;
  66115. ///@brief CLIENT_ManualSnap 接口输出参数
  66116. typedef struct tagNET_OUT_MANUAL_SNAP
  66117. {
  66118. DWORD dwSize; // 结构体大小
  66119. UINT nMaxBufLen; // pRcvBuf的长度,由用户指定
  66120. char *pRcvBuf; // 接收图片缓冲, 用于存放抓图数据, 空间由用户申请和释放, 申请大小为nMaxBufLen
  66121. UINT nRetBufLen; // 实际接收到的图片大小
  66122. EM_SNAP_ENCODE_TYPE emEncodeType; // 图片编码格式
  66123. UINT nCmdSerial; // 请求序列号
  66124. BYTE bReserved[4]; // 字节对齐
  66125. } NET_OUT_MANUAL_SNAP;
  66126. ///@brief 手动抓图, 支持并发调用
  66127. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ManualSnap(LLONG lLoginID, const NET_IN_MANUAL_SNAP *pInParam, NET_OUT_MANUAL_SNAP *pOutParam, const int nWaitTime);
  66128. ///@brief 订阅抓图回调信息
  66129. typedef struct tagNET_CB_ATTACH_SNAP_INFO
  66130. {
  66131. char *pRcvBuf; // 接收到的图片数据
  66132. UINT nBufLen; // 图片数据长度
  66133. EM_SNAP_ENCODE_TYPE emEncodeType; // 图片编码格式
  66134. UINT nCmdSerial; // 抓图请求序列号
  66135. BYTE byReserved[1028]; // 保留字节
  66136. } NET_CB_ATTACH_SNAP_INFO;
  66137. ///@brief 订阅抓图回调函数原形
  66138. typedef void (CALLBACK *fAttachSnapRev)(LLONG lAttachHandle, NET_CB_ATTACH_SNAP_INFO *pstAttachCbInfo, LDWORD dwUser);
  66139. ///@brief CLIENT_AttachSnap 接口输入参数
  66140. typedef struct tagNET_IN_ATTACH_INTER_SNAP
  66141. {
  66142. DWORD dwSize; // 结构体大小
  66143. UINT nChannel; // 抓图通道号
  66144. UINT nCmdSerial; // 请求序列号
  66145. UINT nIntervalSnap; // 定时抓图时间间隔
  66146. fAttachSnapRev cbAttachSnapRev; // 回调函数
  66147. LDWORD dwUser; // 用户数据
  66148. } NET_IN_ATTACH_INTER_SNAP;
  66149. ///@brief CLIENT_AttachSnap 接口输出参数
  66150. typedef struct tagNET_OUT_ATTACH_INTER_SNAP
  66151. {
  66152. DWORD dwSize; // 结构体大小
  66153. } NET_OUT_ATTACH_INTER_SNAP;
  66154. ///@brief 订阅抓图
  66155. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSnap(LLONG lLoginID, const NET_IN_ATTACH_INTER_SNAP *pInParam, NET_OUT_ATTACH_INTER_SNAP *pOutParam);
  66156. ///@brief 取消订阅抓图
  66157. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSnap(LLONG lAttachHandle);
  66158. ///@brief 设置GPS订阅回调函数
  66159. CLIENT_NET_API void CALL_METHOD CLIENT_SetSubcribeGPSCallBack(fGPSRev OnGPSMessage, LDWORD dwUser);
  66160. ///@brief 设置GPS订阅回调函数--扩展
  66161. CLIENT_NET_API void CALL_METHOD CLIENT_SetSubcribeGPSCallBackEX(fGPSRevEx OnGPSMessage, LDWORD dwUser);
  66162. ///@brief 设置GPS订阅回调函数--扩展2
  66163. CLIENT_NET_API void CALL_METHOD CLIENT_SetSubcribeGPSCallBackEX2(fGPSRevEx2 OnGPSMessage, LDWORD dwUser);
  66164. ///@brief:GPS信息订阅
  66165. ///@param[in]: LLONG :lLoginID //登陆句柄
  66166. ///@param[in]: BOOL :bStart //TRUE:订阅 FALSE:取消订阅
  66167. ///@param[in]: LONG :KeepTime //订阅持续时间(单位秒) 值为-1时,订阅时间为极大值,可视为永久订阅
  66168. ///@param[in]: LONG :InterTime //订阅时间内GPS发送频率(单位秒)
  66169. ///@return: BOOL
  66170. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SubcribeGPS (LLONG lLoginID, BOOL bStart, LONG KeepTime, LONG InterTime);
  66171. ///@brief CLIENT_SetGPSUuidInfo接口输入参数
  66172. typedef struct tagNET_IN_SET_GPS_UUID_INFO
  66173. {
  66174. DWORD dwSize;
  66175. char szUUID[64]; // uuid,客户端唯一标识
  66176. }NET_IN_SET_GPS_UUID_INFO;
  66177. ///@brief CLIENT_SetGPSUuidInfo接口输出参数
  66178. typedef struct tagNET_OUT_SET_GPS_UUID_INFO
  66179. {
  66180. DWORD dwSize;
  66181. }NET_OUT_SET_GPS_UUID_INFO;
  66182. ///@brief:设置GPS信息UUID
  66183. ///@param[in]: LLONG :lLoginID //登陆句柄
  66184. ///@param[in]: NET_IN_SUBCRIBE_GPS_INFO :pInParam 接口输入参数, 内存资源由用户申请和释放
  66185. ///@param[out]: NET_OUT_SET_GPS_UUID_INFO :pOutParam 接口输出参数, 内存资源由用户申请和释放
  66186. ///@return TRUE表示成功 FALSE表示失败
  66187. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetGPSUuidInfo(LLONG lLoginID, NET_IN_SET_GPS_UUID_INFO* pInParam, NET_OUT_SET_GPS_UUID_INFO* pOutParam);
  66188. ///@brief 设置GPS温湿度订阅回调函数
  66189. CLIENT_NET_API void CALL_METHOD CLIENT_SetSubcribeGPSTHCallBack(fGPSTempHumidityRev OnGPSMessage, LDWORD dwUser);
  66190. ///@brief GPS温湿度信息订阅
  66191. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SubcribeGPSTempHumidity (LLONG lLoginID, BOOL bStart, int InterTime, void* Reserved);
  66192. ///@brief GPS日志信息查询(pQueryParam, pLogBuffer内存由用户申请释放)
  66193. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryGPSLog(LLONG lLoginID,QUERY_GPS_LOG_PARAM *pQueryParam, char *pLogBuffer, int nLogBufferLen, int *pRecLogNum, BOOL *bContinue, int waittime);
  66194. ///@brief 订阅任务(pInParam, pOutParam内存由用户申请释放)
  66195. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AttachMission(LLONG lLoginID, NET_IN_ATTACH_MISSION_PARAM *pInParam, NET_OUT_ATTACH_MISSION_PARAM *pOutParam, int nWaitTime);
  66196. ///@brief 取消任务订阅
  66197. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachMission(LLONG lAttachHandle);
  66198. ///@brief 车辆紧急报警确认(pInParam, pOutParam内存由用户申请释放)
  66199. CLIENT_NET_API BOOL CALL_METHOD CLIENT_BusConfirmEvent(LLONG lLoginID, const NET_IN_BUS_CONFIRM_EVENT* pInParam, NET_OUT_BUS_CONFIRM_EVENT* pOutParam, int nWaitTime = 3000);
  66200. ///@brief 设置设备地址信息(pInParam, pOutParam内存由用户申请释放)
  66201. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDevicePosition(LLONG lLoginID, const NET_IN_SET_DEVICE_POSITION* pInParam, NET_OUT_SET_DEVICE_POSITION* pOutParam, int nWaitTime);
  66202. ///@brief 获取设备地址信息(pInParam, pOutParam内存由用户申请释放)
  66203. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevicePosition(LLONG lLoginID, const NET_IN_GET_DEVICE_POSITION* pInParam, NET_OUT_GET_DEVICE_POSITION* pOutParam, int nWaitTime);
  66204. ///@brief 按照事件类型抓图(配合CLIENT_RealLoadPic()、CLIENT_RealLoadPicEx()接口使用, 按照手动抓拍模式(Manual)订阅,图片通过回调给用户)(pInParam, pOutParam内存由用户申请释放)
  66205. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SnapPictureByEvent(LLONG lLoginID, const NET_IN_SNAP_BY_EVENT* pInParam, NET_OUT_SNAP_BY_EVENT* pOutParam, int nWaitTime);
  66206. //////////////////////////解码器设备接口//////////////////////////////
  66207. ///@brief 查询解码器信息(lpDecInfo内存由用户申请释放)
  66208. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDecoderInfo(LLONG lLoginID, LPDEV_DECODER_INFO lpDecInfo, int waittime=1000);
  66209. ///@brief 查询解码器当前TV信息(lpMonitorInfo内存由用户申请释放)
  66210. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDecoderTVInfo(LLONG lLoginID, int nMonitorID, LPDEV_DECODER_TV lpMonitorInfo, int waittime=1000);
  66211. ///@brief 查询解码通道信息(lpEncoderInfo内存由用户申请释放)
  66212. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDecEncoderInfo(LLONG lLoginID, int nDecoderID, LPDEV_ENCODER_INFO lpEncoderInfo, int waittime=1000);
  66213. ///@brief 设置解码器TV输出使能(pDecTVOutEnable内存由用户申请释放)
  66214. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDecTVOutEnable(LLONG lLoginID, BYTE *pDecTVOutEnable, int nBufLen, int waittime=1000);
  66215. ///@brief 设置解码器显示叠加信息使能,通道号从0开始
  66216. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDecLayOutEnable(LLONG lLoginID, BYTE bDecLayOutEnable, int nChannel, int waittime=1000);
  66217. ///@brief 获取解码器显示叠加信息使能,通道号从0开始
  66218. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDecLayOutEnable(LLONG lLoginID, BYTE *pDecLayOutEnable, int nChannel, int waittime=1000);
  66219. ///@brief 设置异步回调函数
  66220. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetOperateCallBack(LLONG lLoginID, fMessDataCallBack cbMessData, LDWORD dwUser);
  66221. ///@brief 控制解码器TV画面分割,接口为异步方式 nSplitType=-1时,pEncoderChannel为结构体DH_CTRL_DECTV_SCREEN指针
  66222. CLIENT_NET_API LLONG CALL_METHOD CLIENT_CtrlDecTVScreen(LLONG lLoginID, int nMonitorID, BOOL bEnable, int nSplitType, BYTE *pEncoderChannel, int nBufLen, void* userdata=NULL);
  66223. ///@brief 解码器TV画面切换,接口为异步方式(lpEncoderInfo内存由用户申请释放)
  66224. CLIENT_NET_API LLONG CALL_METHOD CLIENT_SwitchDecTVEncoder(LLONG lLoginID, int nDecoderID, LPDEV_ENCODER_INFO lpEncoderInfo, void* userdata=NULL);
  66225. ///@brief 增加画面组合
  66226. CLIENT_NET_API int CALL_METHOD CLIENT_AddTourCombin(LLONG lLoginID, int nMonitorID, int nSplitType, BYTE *pEncoderChannnel, int nBufLen, int waittime=1000);
  66227. ///@brief 删除画面组合
  66228. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelTourCombin(LLONG lLoginID, int nMonitorID, int nCombinID, int waittime=1000);
  66229. ///@brief 修改画面组合
  66230. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetTourCombin(LLONG lLoginID, int nMonitorID, int nCombinID, int nSplitType, BYTE *pEncoderChannel, int nBufLen, int waittime=1000);
  66231. ///@brief 查询画面组合,nCombinID范围0~32
  66232. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryTourCombin(LLONG lLoginID, int nMonitorID, int nCombinID, LPDEC_COMBIN_INFO lpDecCombinInfo, int waittime=1000);
  66233. ///@brief 设置轮巡操作
  66234. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDecoderTour(LLONG lLoginID, int nMonitorID, LPDEC_TOUR_COMBIN lpDecTourInfo, int waittime=1000);
  66235. ///@brief 查询轮巡操作
  66236. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDecoderTour(LLONG lLoginID, int nMonitorID, LPDEC_TOUR_COMBIN lpDecTourInfo, int waittime=1000);
  66237. ///@brief 查询当前解码通道流信息
  66238. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDecChannelFlux(LLONG lLoginID, int nDecoderID, LPDEV_DECCHANNEL_STATE lpChannelStateInfo, int waittime=1000);
  66239. ///@brief 解码器控制轮巡
  66240. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CtrlDecoderTour(LLONG lLoginID, int nMonitorID, DEC_CTRL_TOUR_TYPE emActionParam, int waittime = 1000);
  66241. ///@brief 回调函数
  66242. typedef void (CALLBACK *fDecPlayBackPosCallBack)(LLONG lLoginID, int nEncoderID, DWORD dwTotalSize, DWORD dwPlaySize, LDWORD dwUser);
  66243. ///@brief 设置回放进度回调函数
  66244. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDecPlaybackPos(LLONG lLoginID, fDecPlayBackPosCallBack cbPlaybackPos, LDWORD dwUser);
  66245. ///@brief 解码器TV画面回放,接口为异步方式
  66246. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DecTVPlayback(LLONG lLoginID, int nDecoderID, DEC_PLAYBACK_MODE emPlaybackMode, LPVOID lpInBuffer, DWORD dwInBufferSize, void* userdata=NULL);
  66247. ///@brief 解码器TV画面回放控制
  66248. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CtrlDecPlayback(LLONG lLoginID, int nDecoderID, DEC_CTRL_PLAYBACK_TYPE emCtrlType, int nValue, int waittime=1000);
  66249. ///////////////////////////智能设备接口///////////////////////////////
  66250. ///@brief 实时上传智能分析数据-图片
  66251. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RealLoadPicture(LLONG lLoginID, int nChannelID, DWORD dwAlarmType, fAnalyzerDataCallBack cbAnalyzerData, LDWORD dwUser);
  66252. ///@brief 实时上传智能分析数据-图片(扩展接口,bNeedPicFile表示是否订阅图片文件,Reserved类型为 RESERVED_PARA)
  66253. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RealLoadPictureEx(LLONG lLoginID, int nChannelID,
  66254. DWORD dwAlarmType,
  66255. BOOL bNeedPicFile,
  66256. fAnalyzerDataCallBack cbAnalyzerData,
  66257. LDWORD dwUser,
  66258. void* Reserved);
  66259. ///@brief 停止上传智能分析数据-图片
  66260. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopLoadPic(LLONG lAnalyzerHandle);
  66261. ///@brief CLIENT_GetCustomInfoCaps 输入参数
  66262. typedef struct tagNET_IN_GET_CUSTOMINFO_CAPS
  66263. {
  66264. DWORD dwSize; // 结构体大小
  66265. }NET_IN_GET_CUSTOMINFO_CAPS;
  66266. ///@brief CLIENT_GetCustomInfoCaps 输出参数
  66267. typedef struct tagNET_OUT_GET_CUSTOMINFO_CAPS
  66268. {
  66269. DWORD dwSize; // 结构体大小
  66270. BOOL bSupportXRaySubscribeRule; // 为true时,订阅参数是XRaySubscribeRule,类型是int
  66271. // 格式如XRaySubscribeRule=1,取值范围:0表示取UploadPlatform配置,1表示取DangerPackageCondition配置
  66272. }NET_OUT_GET_CUSTOMINFO_CAPS;
  66273. ///@brief 获取智能订阅参数CustomInfo的格式化字符串能力
  66274. ///@param[in] lLoginID 登录句柄
  66275. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  66276. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  66277. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  66278. ///@return TRUE表示成功 FALSE表示失败
  66279. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCustomInfoCaps(LLONG lLoginID, const NET_IN_GET_CUSTOMINFO_CAPS* pInParam, NET_OUT_GET_CUSTOMINFO_CAPS* pOutParam, int nWaitTime=3000);
  66280. ///@brief 确认上传图片是否已完成-图片
  66281. // 该接口不宜与 CLIENT_RealLoadPictureEx/CLIENT_RealLoadPicture 的回调函数在同一线程,易造成阻塞,必须在另外的线程中调用
  66282. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SnapManagerConfirmUpload(LLONG lLoginID, const NET_IN_SNAP_MANAGER_CONFIRM_UPLOAD* pstInParam, NET_OUT_SNAP_MANAGER_CONFIRM_UPLOAD* pstOutParam, int waittime=1000);
  66283. ///@brief 获取抓图能力集
  66284. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SnapManagerGetCaps(LLONG lLoginID, const NET_IN_SNAP_MANAGER_GET_CAPS* pstInParam, NET_OUT_SNAP_MANAGER_GET_CAPS* pstOutParam, int waittime=1000);
  66285. ///@brief 平台配置事件大图存储到后端存储设备
  66286. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SnapManagerStoragePicture(LLONG lLoginID, const NET_IN_SNAP_MANAGER_STORAGE_PICTURE* pstInParam, NET_OUT_SNAP_MANAGER_STORAGE_PICTURE* pstOutParam, int waittime=1000);
  66287. ///@brief 按查询条件查询文件,pQueryCondition由用户申请释放内存,大小参照emType对应的结构体
  66288. CLIENT_NET_API LLONG CALL_METHOD CLIENT_FindFileEx(LLONG lLoginID, EM_FILE_QUERY_TYPE emType, void* pQueryCondition, void *reserved, int waittime=1000);
  66289. ///@brief 查找文件:nFilecount:需要查询的条数, 返回值为媒体文件条数 返回值<nFilecount则相应时间段内的文件查询完毕
  66290. CLIENT_NET_API int CALL_METHOD CLIENT_FindNextFileEx(LLONG lFindHandle, int nFilecount, void* pMediaFileInfo, int maxlen, void *reserved, int waittime=1000);
  66291. ///@brief 结束录像文件查找
  66292. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindCloseEx(LLONG lFindHandle);
  66293. ///@brief 获取符合查询条件的文件总数
  66294. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetTotalFileCount(LLONG lFindHandle, int* pTotalCount, void *reserved, int waittime=1000);
  66295. ///@brief 设置查询跳转条件,pOption由用户申请释放内存
  66296. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetFindingJumpOption(LLONG lFindHandle, NET_FINDING_JUMP_OPTION_INFO* pOption, void *reserved, int waittime=1000);
  66297. ///@brief 下载指定的智能分析数据 - 图片,lpMediaFileInfo由用户申请释放内存,内存大小参照emType确定对应的结构体
  66298. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DownloadMediaFile(LLONG lLoginID,EM_FILE_QUERY_TYPE emType, void* lpMediaFileInfo, char *sSavedFileName, fDownLoadPosCallBack cbDownLoadPos, LDWORD dwUserData, void *reserved);
  66299. ///@brief 停止下载数据
  66300. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopDownloadMediaFile(LLONG lFileHandle);
  66301. ///@brief 批量下载文件,pstInParam与pstOutParam内存由用户申请释放
  66302. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DownLoadMultiFile(LLONG lLoginID, NET_IN_DOWNLOAD_MULTI_FILE *pstInParam, NET_OUT_DOWNLOAD_MULTI_FILE *pstOutParam, int waittime=1000);
  66303. ///@brief 停止下载
  66304. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopLoadMultiFile(LLONG lDownLoadHandle);
  66305. ///@brief 下载离线智能分析数据-图片
  66306. CLIENT_NET_API LLONG CALL_METHOD CLIENT_LoadOffLineFile(LLONG lLoginID, int nChannelID, DWORD dwAlarmType, LPNET_TIME_EX lpStartTime, LPNET_TIME_EX lpEndTime, fAnalyzerDataCallBack cbAnalyzerData, LDWORD dwUser);
  66307. ///@brief 暂停智能分析数据下载(bPause=TRUE 表示暂停下载, bPause=FALSE 表示恢复下载)
  66308. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PauseLoadPic(LLONG lLoadHadle, BOOL bPause);
  66309. ///@brief 交通抓拍--网络触发方式,pstInParam与pstOutParam内存由用户申请释放
  66310. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TrafficSnapByNetwork(LLONG lLoginID, int nChannelID, NET_IN_SNAPSHOT* pstInParam, NET_OUT_SNAPSHOT* pstOutParam);
  66311. ///@brief 交通控制--强制红灯,pstInParam与pstOutParam内存由用户申请释放
  66312. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TrafficForceLightState(LLONG lLoginID, int nChannelID, NET_IN_FORCELIGHTSTATE* pstInParamg, NET_OUT_FORCELIGHTSTATE* pstOutParam, int waittime=1000);
  66313. ///@brief 禁止/允许名单操作,pstInParam与pstOutParam内存由用户申请释放
  66314. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateTrafficList(LLONG lLoginID , NET_IN_OPERATE_TRAFFIC_LIST_RECORD* pstInParam , NET_OUT_OPERATE_TRAFFIC_LIST_RECORD *pstOutParam = NULL , int waittime = 1000);
  66315. ///@brief 交通流量统计,pstInParamg与pstOutParam内存由用户申请释放
  66316. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartTrafficFluxStat(LLONG lLoginID, NET_IN_TRAFFICFLUXSTAT* pstInParam,NET_OUT_TRAFFICFLUXSTAT* pstOutParam);
  66317. ///@brief 结束流量统计
  66318. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopTrafficFluxStat(LLONG lFluxStatHandle);
  66319. ///@brief 获取流量统计信息,pstInParam与pstOutParam内存由用户申请释放
  66320. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindFluxStat(LLONG lLoginID, NET_IN_TRAFFICSTARTFINDSTAT* pstInParam, NET_OUT_TRAFFICSTARTFINDSTAT* pstOutParam);
  66321. ///@brief 继续查询流量统计,pstInParam与pstOutParam内存由用户申请释放
  66322. CLIENT_NET_API int CALL_METHOD CLIENT_DoFindFluxStat(LLONG lFindHandle, NET_IN_TRAFFICDOFINDSTAT* pstInParam,NET_OUT_TRAFFICDOFINDSTAT* pstOutParam);
  66323. ///@brief 结束查询流量统计
  66324. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindFluxStat(LLONG lFindHandle);
  66325. ///@brief 开始查询视频统计信息,pstInParam与pstOutParam内存由用户申请释放
  66326. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindNumberStat(LLONG lLoginID, NET_IN_FINDNUMBERSTAT* pstInParam, NET_OUT_FINDNUMBERSTAT* pstOutParam);
  66327. ///@brief 继续查询视频统计,pstInParam与pstOutParam内存由用户申请释放
  66328. CLIENT_NET_API int CALL_METHOD CLIENT_DoFindNumberStat(LLONG lFindHandle, NET_IN_DOFINDNUMBERSTAT* pstInParam, NET_OUT_DOFINDNUMBERSTAT* pstOutParam);
  66329. ///@brief 结束查询视频统计
  66330. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindNumberStat(LLONG lFindHandle);
  66331. ///@brief 订阅视频统计摘要信息,pInParam与pOutParam内存由用户申请释放
  66332. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachVideoStatSummary(LLONG lLoginID, const NET_IN_ATTACH_VIDEOSTAT_SUM* pInParam, NET_OUT_ATTACH_VIDEOSTAT_SUM* pOutParam, int nWaitTime);
  66333. ///@brief 取消订阅视频统计摘要信息
  66334. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVideoStatSummary(LLONG lAttachHandle);
  66335. ///@brief 订阅热度图数据,pInParam与pOutParam内存由用户申请释放
  66336. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachVideoStatHeatMap(LLONG lLoginID, const NET_IN_ATTACH_VIDEOSTAT_HEATMAP* pInParam, NET_OUT_ATTACH_VIDEOSTAT_HEATMAP* pOutParam, int nWaitTime);
  66337. ///@brief 获取热图数据,pInParam与pOutParam内存由用户申请释放
  66338. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoStatHeatMap(LLONG lAttachHandle, const NET_IN_GET_VIDEOSTAT_HEATMAP* pInParam, NET_OUT_GET_VIDEOSTAT_HEATMAP* pOutParam, int nWaitTime);
  66339. ///@brief 取消订阅热度图数据
  66340. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVideoStatHeatMap(LLONG lAttachHandle);
  66341. ///@brief 视频分析设备的方法调用,pstInParam与pstOutParam内存由用户申请释放,大小参照szCmd对应的结构体
  66342. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateVideoAnalyseDevice(LLONG lLoginID, int nChannelID, char* szCmd, void *pstInParam, void *pstOutParam, int waittime=1000);
  66343. ///@brief 获取视频分析对象,pstInParam与pstOutParam内存由用户申请释放
  66344. CLIENT_NET_API BOOL CALL_METHOD CLIENT_VideoAnalyseGetTemplateImage(LLONG lLoginID, const NET_IN_VIDEOANALYSE_GETTEMPLATEIMAGE* pstInParam, NET_OUT_VIDEOANALYSE_GETTEMPLATEIMAGE* pstOutParam, int nWaitTime=1000);
  66345. ///@brief 设置视频分析对象,pstInParam与pstOutParam内存由用户申请释放
  66346. CLIENT_NET_API BOOL CALL_METHOD CLIENT_VideoAnalyseSetTemplateImage(LLONG lLoginID, const NET_IN_VIDEOANALYSE_SETTEMPLATEIMAGE* pstInParam, NET_OUT_VIDEOANALYSE_SETTEMPLATEIMAGE* pstOutParam, int nWaitTime=1000);
  66347. ///@brief 串口设备的方法调用,pstInParam与pstOutParam内存由用户申请释放,大小参照szCmd对应的结构体
  66348. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateCommDevice(LLONG lLoginID, int nChannelID, char* szCmd, void *pstInParam, void *pstOutParam, int waittime=1000);
  66349. ///@brief 智能跟踪球控制接口
  66350. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlIntelliTracker(LLONG lLoginID, NET_IN_CONTROL_INTELLITRACKER* pstInParam, NET_OUT_CONTROL_INTELLITRACKER* pstOutParam);
  66351. ///@brief 主从式设备的方法调用,具体参数参见上面定义CLIENT_OperateMasterSlaveDevice接口参数定义
  66352. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateMasterSlaveDevice(LLONG lLoginID, int nChannelID, char* szCmd, void *pstInParam, void *pstOutParam, int waittime=1000);
  66353. ///@brief 视频拼接方法调用,pstInParam与pstOutParam内存由用户申请释放,大小参照emType对应的结构体
  66354. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateVideoJoin(LLONG lLoginID, NET_VIDEOJOIN_OPERATE_TYPE emType, void* pstInParam, void* pstOutParam, int nWaitTime);
  66355. ///@brief 获取上次一事件信息
  66356. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetLastEventInfo(LLONG lLoginID, NET_IN_GET_LAST_EVENT_INFO* pstInParam, NET_OUT_GET_LAST_EVENT_INFO* pstOutParam, int nWaitTime);
  66357. ///@brief 实时获取视频诊断结果,pstInParam与pstOutParam内存由用户申请释放
  66358. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartVideoDiagnosis(LLONG lLoginID, NET_IN_VIDEODIAGNOSIS *pstInParam, NET_OUT_VIDEODIAGNOSIS *pstOutParam);
  66359. ///@brief 停止视频诊断结果上报
  66360. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopVideoDiagnosis(LLONG hDiagnosisHandle);
  66361. ///@brief 开始视频诊断结果查询,pstInParam与pstOutParam内存由用户申请释放
  66362. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartFindDiagnosisResult(LLONG lLoginID, NET_IN_FIND_DIAGNOSIS* pstInParam, NET_OUT_FIND_DIAGNOSIS* pstOutParam);
  66363. ///@brief 获取视频诊断结果信息,pstInParam与pstOutParam内存由用户申请释放
  66364. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindDiagnosisResult(LLONG hFindHandle,NET_IN_DIAGNOSIS_INFO* pstInParam, NET_OUT_DIAGNOSIS_INFO* pstOutParam);
  66365. ///@brief 结束视频诊断结果查询
  66366. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindDiagnosis(LLONG hFindHandle);
  66367. ///@brief 启动实时诊断计划,pstInParam与pstOutParam内存由用户申请释放
  66368. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartRealTimeProject(LLONG lLoginID,NET_IN_START_RT_PROJECT_INFO* pstInParam, NET_OUT_START_RT_PROJECT_INFO* pstOutParam, int nWaitTime);
  66369. ///@brief 停止实时诊断计划,pstInParam与pstOutParam内存由用户申请释放
  66370. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopRealTimeProject(LLONG lLoginID,NET_IN_STOP_RT_PROJECT_INFO* pstInParam, NET_OUT_STOP_RT_PROJECT_INFO* pstOutParam, int nWaitTime);
  66371. ///@brief 启动手动诊断计划, pstInParam与pstOutParam内存由用户申请释放
  66372. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartManualDiagnosisProject(LLONG lLoginID, NET_IN_START_MANUAL_PROJECT_INFO* pstInParam, NET_OUT_START_MANUAL_PROJECT_INFO* pstOutParam, int nWaitTime);
  66373. ///@brief 停止手动诊断计划, pstInParam与pstOutParam内存由用户申请释放
  66374. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopManualDiagnosisProject(LLONG lLoginID, NET_IN_STOP_MANUAL_PROJECT_INFO* pstInParam, NET_OUT_STOP_MANUAL_PROJECT_INFO* pstOutParam, int nWaitTime);
  66375. ///@brief 更新计划或者任务的诊断背景图片, pstInParam与pstOutParam内存由用户申请释放
  66376. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpdateProjectBackGround(LLONG lLoginID, const NET_IN_UPDATE_PROJECT_BACKGROUND_INFO* pstInParam, NET_OUT_UPDATE_PROJECT_BACKGROUND_INFO* pstOutParam, int nWaitTime);
  66377. ///@brief 跟踪状态
  66378. typedef enum tagEM_TRACKER_STATE
  66379. {
  66380. EM_TRACKER_STATE_UNKNOWN, // 未知
  66381. EM_TRACKER_STATE_START, // 开始
  66382. EM_TRACKER_STATE_STOP, // 停止
  66383. }EM_TRACKER_STATE;
  66384. ///@brief 跟踪停止具体原因
  66385. typedef enum tagEM_TRACKER_STOP_TYPE
  66386. {
  66387. EM_TRACKER_STOP_TYPE_UNKNOWN, // 未知
  66388. EM_TRACKER_STOP_TYPE1, // 跟踪物体正常丢失,跟踪停止
  66389. EM_TRACKER_STOP_TYPE2, // 跟踪时间结束,跟踪停止
  66390. EM_TRACKER_STOP_TYPE3, // 跟踪物体触碰到左限位,跟踪停止
  66391. EM_TRACKER_STOP_TYPE4, // 跟踪物体触碰到右限位,跟踪停止
  66392. EM_TRACKER_STOP_TYPE5, // 跟踪物体触碰到上限位,跟踪停止
  66393. EM_TRACKER_STOP_TYPE6, // 跟踪物体触碰到下限位,跟踪停止
  66394. }EM_TRACKER_STOP_TYPE;
  66395. ///@brief 回调函数结构体
  66396. typedef struct tagNET_CB_TRACKER_STATE
  66397. {
  66398. EM_TRACKER_STATE emState; // 跟踪状态
  66399. EM_TRACKER_STOP_TYPE emStopType; // 跟踪停止具体原因
  66400. char szReserved[256]; // 保留字节
  66401. }NET_CB_TRACKER_STATE;
  66402. ///@brief CLIENT_AttachIntelliTrackerDetail 回调函数
  66403. typedef void (CALLBACK *fNotifyTrackerState)(LLONG lAttachHandle, NET_CB_TRACKER_STATE* pstuTrackerState, LDWORD dwUser);
  66404. ///@brief CLIENT_AttachIntelliTrackerDetail 输入参数
  66405. typedef struct tagNET_IN_INTELLI_TRACKER_DETAILINFO
  66406. {
  66407. DWORD dwSize; // 结构体大小
  66408. fNotifyTrackerState cbNotifyTrackerState; // 跟踪状态回调函数
  66409. int nChannelID; // 通道ID
  66410. LDWORD dwUser; // 用户自定义参数
  66411. }NET_IN_INTELLI_TRACKER_DETAILINFO;
  66412. ///@brief CLIENT_AttachIntelliTrackerDetail 输出参数
  66413. typedef struct tagNET_OUT_INTELLI_TRACKER_DETAILINFO
  66414. {
  66415. DWORD dwSize; // 结构体大小
  66416. }NET_OUT_INTELLI_TRACKER_DETAILINFO;
  66417. ///@brief 订阅跟踪状态
  66418. ///@param[in] lLoginID 登录句柄
  66419. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  66420. ///@param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  66421. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  66422. ///@return 订阅句柄
  66423. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachIntelliTrackerDetail(LLONG lLoginID, const NET_IN_INTELLI_TRACKER_DETAILINFO *pstuInParam, NET_OUT_INTELLI_TRACKER_DETAILINFO *pstuOutParam, int nWaitTime);
  66424. ///@brief 取消订阅跟踪状态
  66425. ///@param[in] lAttachHandle 订阅接口返回句柄
  66426. ///@return TRUE表示成功, FALSE表示失败
  66427. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachIntelliTrackerDetail(LLONG lAttachHandle);
  66428. ///@brief CLIENT_GetVideoDiagnosisPlatform 接口输入参数
  66429. typedef struct tagNET_IN_GET_VIDEO_DIAGNOSIS_PLATFORM
  66430. {
  66431. DWORD dwSize; // 此结构体大小
  66432. } NET_IN_GET_VIDEO_DIAGNOSIS_PLATFORM;
  66433. ///@brief 诊断视频源关联的平台类型
  66434. typedef enum tagNET_EM_VIDEO_DIAGNOSIS_TYPE
  66435. {
  66436. NET_EM_VIDEO_DIAGNOSIS_TYPE_UNKNOWN, // 未知
  66437. NET_EM_VIDEO_DIAGNOSIS_TYPE_8_SERIES_PLATFORM, // 8系平台
  66438. NET_EM_VIDEO_DIAGNOSIS_TYPE_9_SERIES_PLATFORM, // 9系平台
  66439. NET_EM_VIDEO_DIAGNOSIS_TYPE_ICC_PLATFORM, // ICC平台
  66440. }NET_EM_VIDEO_DIAGNOSIS_TYPE;
  66441. ///@brief 诊断视频源关联的平台信息
  66442. typedef struct tagNET_VIDEO_DIAGNOSIS_PLATFORM_INFO
  66443. {
  66444. NET_EM_VIDEO_DIAGNOSIS_TYPE emType; // 平台类型
  66445. char szIP[64]; // 平台IP地址
  66446. UINT nPort; // 平台端口
  66447. char szUsername[64]; // 平台登陆用户名
  66448. char szPassword[64]; // 平台登陆密码
  66449. char szReserved[1024]; // 保留字节
  66450. } NET_VIDEO_DIAGNOSIS_PLATFORM_INFO;
  66451. ///@brief CLIENT_GetVideoDiagnosisServerManagerPlatform 接口输出参数
  66452. typedef struct tagNET_OUT_GET_VIDEO_DIAGNOSIS_PLATFORM
  66453. {
  66454. DWORD dwSize; // 此结构体大小
  66455. NET_VIDEO_DIAGNOSIS_PLATFORM_INFO stuInfo; // 平台信息
  66456. } NET_OUT_GET_VIDEO_DIAGNOSIS_PLATFORM;
  66457. ///@brief 查询诊断关联平台信息, pstInParam与pstOutParam内存由用户申请释放
  66458. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoDiagnosisPlatform(LLONG lLoginID, const NET_IN_GET_VIDEO_DIAGNOSIS_PLATFORM* pstInParam, NET_OUT_GET_VIDEO_DIAGNOSIS_PLATFORM* pstOutParam, int nWaitTime);
  66459. ///@brief CLIENT_SetVideoDiagnosisPlatform 接口输入参数
  66460. typedef struct tagNET_IN_SET_VIDEO_DIAGNOSIS_PLATFORM
  66461. {
  66462. DWORD dwSize; // 此结构体大小
  66463. NET_VIDEO_DIAGNOSIS_PLATFORM_INFO stuInfo; // 平台信息
  66464. } NET_IN_SET_VIDEO_DIAGNOSIS_PLATFORM;
  66465. ///@brief CLIENT_SetVideoDiagnosisServerManagerPlatform 接口输出参数
  66466. typedef struct tagNET_OUT_SET_VIDEO_DIAGNOSIS_PLATFORM
  66467. {
  66468. DWORD dwSize; // 此结构体大小
  66469. } NET_OUT_SET_VIDEO_DIAGNOSIS_PLATFORM;
  66470. ///@brief 设置诊断关联平台信息, pstInParam与pstOutParam内存由用户申请释放
  66471. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetVideoDiagnosisPlatform(LLONG lLoginID, const NET_IN_SET_VIDEO_DIAGNOSIS_PLATFORM* pstInParam, NET_OUT_SET_VIDEO_DIAGNOSIS_PLATFORM* pstOutParam, int nWaitTime);
  66472. ///@brief 获取智能交通车位状态,pstInParam与pstOutParam内存由用户申请释放
  66473. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetParkingSpaceStatus(LLONG lLoginID, NET_IN_GET_PARKINGSPACE_STATUS* pstInParam, NET_OUT_GET_PARKINGSPACE_STATUS* pstOutParam);
  66474. ///@brief 订阅指定的车位图片信息,pstInParam与pstOutParam内存由用户申请释放
  66475. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachParkingSpaceData(LLONG lLoginID, NET_IN_ATTACH_PARKINGSPACE* pstInParam, NET_OUT_ATTACH_PARKINGSPACE* pstOutParam);
  66476. ///@brief 取消订阅指定的车位图片信息,pstInParam与pstOutParam内存由用户申请释放
  66477. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachParkingSpaceData(NET_IN_DETACH_PARKINGSPACE* pstInParam, NET_OUT_DETACH_PARKINGSPACE* pstOutParam);
  66478. ///@brief 订阅过车信息,pstInParam与pstOutParam内存由用户申请释放
  66479. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachCarPassInfo(LLONG lLoginID, NET_IN_ATTACH_CAR_PASS_INFO* pstInParam, NET_OUT_ATTACH_CAR_PASS_INFO* pstOutParam , int nWaitTime);
  66480. ///@brief 取消订阅过车信息 lCarPassInfoHandle 为 CLIENT_AttachCarPassInfo 返回的句柄
  66481. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachCarPassInfo(LLONG lCarPassInfoHandle);
  66482. ///@brief 订阅指定车道信息,pstInParam与pstOutParam内存由用户申请释放
  66483. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachLanesState(LLONG lLoginID, NET_IN_ATTACH_LANES_STATE* pstInParam, NET_OUT_ATTACH_LANES_STATE* pstOutParam, int nWaitTime);
  66484. ///@brief 取消订阅指定车道信息 lLanesStateHandle为CLIENT_AttachLanesState返回的句柄
  66485. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachLanesState(LLONG lLanesStateHandle);
  66486. ///@brief 获取车位灯状态,pstInParam与pstOutParam内存由用户申请释放
  66487. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCarPortLightStatus(LLONG lLoginID, NET_IN_GET_CARPORTLIGHT_STATUS* pstInParam, NET_OUT_GET_CARPORTLIGHT_STATUS* pstOutParam, int waittime=1000);
  66488. ///@brief 设置车位灯状态,pstInParam与pstOutParam内存由用户申请释放
  66489. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetCarPortLightStatus(LLONG lLoginID, NET_IN_SET_CARPORTLIGHT_STATUS* pstInParam, NET_OUT_SET_CARPORTLIGHT_STATUS* pstOutParam, int waittime=1000);
  66490. ///@brief 获取车位锁状态
  66491. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetParkingLockState(LLONG lLoginID, const NET_IN_GET_PARKINGLOCK_STATE_INFO *pstInParam, NET_OUT_GET_PARKINGLOCK_STATE_INFO *pstOutParam, int nWaitTime);
  66492. ///@brief 设置车位锁状态
  66493. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetParkingLockState(LLONG lLoginID, const NET_IN_SET_PARKINGLOCK_STATE_INFO *pstInParm, NET_OUT_SET_PARKINGLOCK_STATE_INFO *pstOutParam, int nWaitTIme);
  66494. ///@brief 设置停车规则
  66495. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetParkingRule(LLONG lLoginID, const NET_IN_SET_PARKINGRULE_INFO *pstInParm, NET_OUT_SET_PARKINGRULE_INFO *pstOutParam, int nWaitTime);
  66496. ///@brief 设置停车车位状态
  66497. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetParkingSpaceState(LLONG lLoginID, const NET_IN_SET_PARKINGSPACE_STATE_INFO *pstInParm, NET_OUT_SET_PARKINGSPACE_STATE_INFO *pstOutParam, int nWaitTime);
  66498. ///@brief 设置停车车位余位信息
  66499. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetParkingRemainInfo(LLONG lLoginID, const NET_IN_SET_PARKING_REMAIN_INFO *pstInParm, NET_OUT_SET_PARKING_REMAIN_INFO *pstOutParam, int nWaitTime);
  66500. ///@brief 修改停车记录信息
  66501. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyParkingRecord(LLONG lLoginID, const NET_IN_MODIFY_PARKINGRECORD_INFO *pstInParm, NET_OUT_MODIFY_PARKINGRECORD_INFO *pstOutParam, int nWaitTime);
  66502. ///@brief 订阅智能分析进度(适用于视频分析源为录像文件时),pstInParam与pstOutParam内存由用户申请释放
  66503. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AttachVideoAnalyseState(LLONG lLoginID, NET_IN_ATTACH_VIDEOANALYSE_STATE* pstInParam, NET_OUT_ATTACH_VIDEOANALYSE_STATE* pstOutParam, int nWaittime=1000);
  66504. ///@brief 停止订阅
  66505. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVideoAnalyseState(LLONG lAttachHandle);
  66506. ///@brief 订阅前端设备对讲状态,pstInParam与pstOutParam内存由用户申请释放
  66507. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachTalkState(LLONG lLoginID, NET_IN_ATTACH_TALK_STATE* pstInParam, NET_OUT_ATTACH_TALK_STATE* pstOutParam, int nWaitTime = 1000);
  66508. ///@brief 取消订阅前端设备对讲状态, lAttachHandle为CLIENT_AttachTalkState返回的句柄
  66509. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachTalkState(LLONG lAttachHandle);
  66510. ///@brief 订阅统计通道数据,pInParam与pOutParam内存由用户申请释放
  66511. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachVideoStatStream(LLONG lLoginID, const NET_IN_ATTACH_VIDEOSTAT_STREAM* pInParam, NET_OUT_ATTACH_VIDEOSTAT_STREAM* pOutParam, int nWaitTime);
  66512. ///@brief 取消订阅统计通道数据
  66513. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVideoStatStream(LLONG lAttachHandle);
  66514. ////////////////////////////视频浓缩接口////////////////////////////////
  66515. ///@brief 添加视频浓缩任务,该接口把文件与分析规则绑定,不够灵活.
  66516. // 新的IVS-S已不支持这种方式,请转用CLIENT_PreHandleVideoSynopsisTask和CLIENT_RunVideoSynopsisTask的组合接口,pstInParam与pstOutParam内存由用户申请释放
  66517. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddVideoSynopsisTask(LLONG lLoginID, NET_IN_ADD_VIDEOSYNOPSIS* pstInParam, NET_OUT_ADD_VIDEOSYNOPSIS* pstOutParam);
  66518. ///@brief IVS-S采用的新浓缩方式,先对视频文件进行预处理(比较耗时),在预处理的基础上可以调整视频分析规则,从而针对同一文件快速得到不同的浓缩结果.
  66519. // 视频文件预处理接口
  66520. // 返回TRUE表示任务全部成功,返回FALSE表示至少有一个任务失败,pstInParam与pstOutParam内存由用户申请释放
  66521. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PreHandleVideoSynopsisTask(LLONG lLoginID, const NET_IN_PRE_HANDLE_VIDEOSYNOPSIS* pstInParam, NET_OUT_PRE_HANDLE_VIDEOSYNOPSIS* pstOutParam);
  66522. ///@brief 按通道访问
  66523. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddPreTaskByChannel(LLONG lLoginID, const NET_IN_PRETASK_BYCHANNEL* pstInParam, NET_OUT_PRETASK_BYCHANNEL* pstOutParam);
  66524. ///@brief 获取浓缩任务进度
  66525. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoSynopsisState(LLONG lLoginID, const NET_IN_GET_VIDEOSYNOPSIS_STATE* pstInParam, NET_OUT_GET_VIDEOSYNOPSIS_STATE* pstOutParam);
  66526. ///@brief 开始查询智能录像浓缩历史
  66527. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartFindVideoSynopsisHistory(LLONG lLoginID, const NET_IN_VIDEOSYNOPSIS_STARTFIND* pstInParam, NET_OUT_VIDEOSYNOPSIS_STARTFIND* pstOutParam);
  66528. ///@brief 获取历史搜索结果信息
  66529. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindVideoSynopsisHistory(LLONG lLoginID, const NET_IN_VIDEOSYNOPSIS_DOFIND* pstInParam, NET_OUT_VIDEOSYNOPSIS_DOFIND* pstOutParam);
  66530. ///@brief 结束浓缩历史查询
  66531. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindVideoSynopsisHistory(LLONG lLoginID, const NET_IN_VIDEOSYNOPSIS_STOPFIND* pstInParam, NET_OUT_VIDEOSYNOPSIS_STOPFIND* pstOutParam);
  66532. ///@brief 视频浓缩处理接口
  66533. // 返回TRUE表示任务全部成功,返回FALSE表示至少有一个任务失败,pstInParam与pstOutParam内存由用户申请释放
  66534. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RunVideoSynopsisTask(LLONG lLoginID, const NET_IN_RUN_VIDEOSYNOPSIS_TASK* pstInParam, NET_OUT_RUN_VIDEOSYNOPSIS_TASK* pstOutParam);
  66535. ///@brief 暂停视频浓缩任务,pstInParam内存由用户申请释放
  66536. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PauseVideoSynopsisTask(LLONG lLoginID, NET_IN_PAUSE_VIDEOSYNOPSIS* pstInParam);
  66537. ///@brief 移除视频浓缩任务,pstInParam内存由用户申请释放
  66538. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveVideoSynopsisTask(LLONG lLoginID, NET_IN_REMOVE_VIDEOSYNOPSIS* pstInParam);
  66539. ///@brief 订阅实时浓缩视频物体信息pstInParam与pstOutParam内存由用户申请释放
  66540. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RealLoadObjectData(LLONG lLoginID, NET_IN_REALLOAD_OBJECTDATA* pstInParam, NET_OUT_REALLOAD_OBJECTDATA* pstOutParam);
  66541. ///@brief 停止订阅实时浓缩视频物体信息,pstInParam内存由用户申请释放
  66542. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopLoadObjectData(LLONG lRealLoadHandle, NET_IN_STOPLOAD_OBJECTDATA* pstInParam);
  66543. ///@brief 订阅实时浓缩视频进度信息,pstInParam与pstOutParam内存由用户申请释放
  66544. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RealLoadSynopsisState(LLONG lLoginID, NET_IN_REALLAOD_SYNOPSISSTATE* pstInParam, NET_OUT_REALLOAD_SYNOPSISSTATE* pstOutParam);
  66545. ///@brief 停止订阅实时浓缩视频进度信息,pstInParam内存由用户申请释放
  66546. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopLoadSynopsisState(LLONG lRealLoadHandle, NET_IN_STOPLOAD_SYNOPSISSTATE* pstInParam);
  66547. ///@brief 查询浓缩视频任务相关信息接口,pstInParam与pstOutParam内存由用户申请释放
  66548. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryVideoSynopsisInfo(LLONG lLoginID, NET_IN_QUERY_VIDEOSYNOPSIS* pstInParam, NET_OUT_QUERY_VIDEOSYNOPSIS* pstuOutParam);
  66549. ///@brief 按查询条件查询视频浓缩文件,pstInParam与pstOutParam内存由用户申请释放
  66550. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindSynopsisFile(LLONG lLoginID, NET_IN_FIND_SYNOPSISFILE *pstInParam, NET_OUT_FIND_SYNOPSISFILE *pstOutParam);
  66551. ///@brief 查找视频浓缩文件,pstInParam与pstOutParam内存由用户申请释放
  66552. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindNextSynopsisFile(LLONG lFindHandle, NET_IN_FINDNEXT_SYNOPSISFILE *pstInParam, NET_OUT_FINDNEXT_SYNOPSISFILE *pstOutParam);
  66553. ///@brief 结束视频浓缩文件查找
  66554. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SynopsisFindClose(LLONG lFindHandle);
  66555. ///@brief 下载视频浓缩相关文件,pstInParam与pstOutParam内存由用户申请释放
  66556. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DownLoadSynosisFile(LLONG lLoginID, NET_IN_DOWNLOAD_SYNOPSISFILE *pstInParam, NET_OUT_DOWNLOAD_SYNOPSISFILE *pstOutParam);
  66557. ///@brief 停止下载
  66558. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopLoadSynosisFile(LLONG lDownLoadHandle);
  66559. ///@brief 请求浓缩视频服务器根据文件(夹)路径,生成文件信息,pstInParam内存由用户申请释放
  66560. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetFilePathInfo(LLONG lLoginID, NET_IN_SET_FILEPATHINFO* pstInParam);
  66561. ///@brief 监听添加文件信息状态,pstInParam与pstOutParam内存由用户申请释放
  66562. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachAddFileState(LLONG lLoginID, const NET_IN_ADDFILE_STATE* pstInParam, NET_OUT_ADDFILE_STATE *pstOutParam, int nWaitTime = 1000);
  66563. ///@brief 取消监听添加文件信息状, lAttachHandle是CLIENT_AttacAddFileState返回值
  66564. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DetachAddFileState(LLONG lAttachHandle);
  66565. /////////////////////////////目标识别接口/////////////////////////////////////////
  66566. ///@brief 目标识别数据库信息操作(包括添加,修改和删除),pstInParam与pstOutParam内存由用户申请释放
  66567. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateFaceRecognitionDB(LLONG lLoginID, const NET_IN_OPERATE_FACERECONGNITIONDB* pstInParam, NET_OUT_OPERATE_FACERECONGNITIONDB *pstOutParam, int nWaitTime = 1000);
  66568. ///@brief 添加多个人员信息和目标样本
  66569. CLIENT_NET_API BOOL CALL_METHOD CLIENT_BatchAppendFaceRecognition(LLONG lLoginID, const NET_IN_BATCH_APPEND_FACERECONGNITION* pstInParam, NET_OUT_BATCH_APPEND_FACERECONGNITION *pstOutParam, const int nWaitTime);
  66570. ///@brief 按条件查询目标识别结果 ,pstInParam与pstOutParam内存由用户申请释放
  66571. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartFindFaceRecognition(LLONG lLoginID, const NET_IN_STARTFIND_FACERECONGNITION* pstInParam, NET_OUT_STARTFIND_FACERECONGNITION *pstOutParam, int nWaitTime = 1000);
  66572. ///@brief 开始目标检测/注册库的多通道查询
  66573. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartMultiFindFaceRecognition(LLONG lLoginID, const NET_IN_STARTMULTIFIND_FACERECONGNITION* pstInParam, NET_OUT_STARTMULTIFIND_FACERECONGNITION *pstOutParam, int nWaitTime);
  66574. ///@brief 开始目标检测/注册库的多通道查询(IVSS产品特色功能以图搜图支持两段式查询。第一步先上传大图并从中识别出目标小图,返回小图的SmallID,第二步用SmallID进行以图搜图)
  66575. ///@param[in] lLoginID 登录句柄
  66576. ///@param[in] pstInParam 接口输入参数
  66577. ///@param[out]pstOutParam 接口输出参数
  66578. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  66579. ///@return TRUE表示成功 FALSE表示失败
  66580. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartMultiPersonFindFaceR(LLONG lLoginID, const NET_IN_STARTMULTIPERSONFIND_FACER* pstInParam, NET_OUT_STARTMULTIPERSONFIND_FACER *pstOutParam, int nWaitTime);
  66581. ///@brief 查找目标识别结果:nFilecount:需要查询的条数, 返回值为媒体文件条数 返回值<nFilecount则相应时间段内的文件查询完毕(每次最多只能查询20条记录),pstInParam与pstOutParam内存由用户申请释放
  66582. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindFaceRecognition(const NET_IN_DOFIND_FACERECONGNITION* pstInParam, NET_OUT_DOFIND_FACERECONGNITION *pstOutParam, int nWaitTime = 1000);
  66583. ///@brief 结束查询
  66584. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindFaceRecognition(LLONG lFindHandle);
  66585. ///@brief 开始目标识别多通道查询
  66586. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartMultiFindFaceRecognitionRecord(LLONG lLoginID, const NET_IN_STARTMULTIFIND_FACERECONGNITIONRECORD* pstInParam, NET_OUT_STARTMULTIFIND_FACERECONGNITIONRECORD *pstOutParam, int nWaitTime);
  66587. ///@brief 多通道查找文件:nFilecount:需要查询的条数, 返回值为媒体文件条数 返回值<nFilecount则相应时间段内的文件查询完毕
  66588. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindFaceRecognitionRecord(const NET_IN_DOFIND_FACERECONGNITIONRECORD* pstInParam, NET_OUT_DOFIND_FACERECONGNITIONRECORD *pstOutParam, int nWaitTime);
  66589. ///@brief 多通道查找文件接口扩展(nTotalCount:需要查询的条数, 返回值为媒体文件条数 返回值<nTotalCount则相应时间段内的文件查询完毕)
  66590. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindFaceRecognitionRecordEx(const NET_IN_DOFIND_FACERECONGNITIONRECORD_EX* pstInParam, NET_OUT_DOFIND_FACERECONGNITIONRECORD_EX *pstOutParam, int nWaitTime);
  66591. ///@brief 结束查询
  66592. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindFaceRecognitionRecord(LLONG lFindHandle);
  66593. ///@brief 订阅历史库以图搜图查询结果, 配合CLIENT_StartFindFaceRecognition使用, pstInParam和pstOutParam由用户申请和释放
  66594. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachResultOfFindHistoryByPic(LLONG lLoginID, NET_IN_ATTACH_RESULT_FINDHISTORY_BYPIC* pstInParam, NET_OUT_ATTACH_RESULT_FINDHISTORY_BYPIC* pstOutParam, int nWaitTime);
  66595. ///@brief 取消订阅历史库以图搜图查询结果, lFindHandle 为 CLIENT_AttachResultOfFindRegisterByPic接口返回的值
  66596. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachResultOfFindHistoryByPic(LLONG lFindHandle);
  66597. ///@brief 订阅人体历史库以图搜图查询结果, 配合CLIENT_StartFindFaceRecognition使用, pstInParam和pstOutParam由用户申请和释放
  66598. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachResultOfHumanHistoryByPic(LLONG lLoginID, NET_IN_ATTACH_RESULT_HUMAN_HISTORY_BYPIC* pstInParam, NET_OUT_ATTACH_RESULT_HUMAN_HISTORY_BYPIC* pstOutParam, int nWaitTime);
  66599. ///@brief 取消订阅人体历史库以图搜图查询结果, lFindHandle 为CLIENT_AttachResultOfHumanHistoryByPic 接口返回值
  66600. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachResultOfHumanHistoryByPic(LLONG lFindHandle);
  66601. ///@brief 订阅车辆历史库以图搜图查询结果, 配合CLIENT_StartFindFaceRecognition使用, pstInParam和pstOutParam由用户申请和释放
  66602. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachResultOfVehicleHistoryByPic(LLONG lLoginID, NET_IN_ATTACH_RESULT_VEHICLE_HISTORY_BYPIC* pstInParam, NET_OUT_ATTACH_RESULT_VEHICLE_HISTORY_BYPIC* pstOutParam, int nWaitTime);
  66603. ///@brief 取消订阅车辆历史库以图搜图查询结果, lFindHandle 为 CLIENT_AttachResultOfFindRegisterByPic接口返回的值
  66604. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachResultOfVehicleHistoryByPic(LLONG lFindHandle);
  66605. ///@brief 目标检测(输入一张大图,输入大图中被检测出来的目标图片),pstInParam与pstOutParam内存由用户申请释放
  66606. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetectFace(LLONG lLoginID, const NET_IN_DETECT_FACE* pstInParam, NET_OUT_DETECT_FACE *pstOutParam, int nWaitTime = 1000);
  66607. ///@brief 目标识别人员组操作(包括添加,修改和删除),pstInParam与pstOutParam内存由用户申请释放
  66608. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateFaceRecognitionGroup(LLONG lLoginID, const NET_IN_OPERATE_FACERECONGNITION_GROUP* pstInParam, NET_OUT_OPERATE_FACERECONGNITION_GROUP *pstOutParam, int nWaitTime = 1000);
  66609. ///@brief 目标识别人员类型操作(包括添加,修改和删除),pstInParam与pstOutParam内存由用户申请释放
  66610. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateFaceRecognitionPersonType(LLONG lLoginID, const NET_IN_OPERATE_FACERECOGNITION_PERSON_TYPE* pstInParam, NET_OUT_OPERATE_FACERECOGNITION_PERSON_TYPE *pstOutParam, int nWaitTime);
  66611. ///@brief 目标识别获取人员类型,pstInParam与pstOutParam内存由用户申请释放
  66612. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFaceRecognitionPersonType(LLONG lLoginID, const NET_IN_GET_FACERECOGNITION_PERSON_TYPE* pstInParam, NET_OUT_GET_FACERECOGNITION_PERSON_TYPE *pstOutParam, int nWaitTime);
  66613. ///@brief 查询目标识别人员组信息,pstInParam与pstOutParam内存由用户申请释放
  66614. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindGroupInfo(LLONG lLoginID, const NET_IN_FIND_GROUP_INFO* pstInParam, NET_OUT_FIND_GROUP_INFO *pstOutParam, int nWaitTime = 1000);
  66615. ///@brief 获取布控在视频通道的组信息,pstInParam与pstOutParam内存由用户申请释放
  66616. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetGroupInfoForChannel(LLONG lLoginID, const NET_IN_GET_GROUPINFO_FOR_CHANNEL* pstInParam, NET_OUT_GET_GROUPINFO_FOR_CHANNEL *pstOutParam, int nWaitTime = 3000);
  66617. ///@brief 布控通道人员组信息,pstInParam与pstOutParam内存由用户申请释放
  66618. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetGroupInfoForChannel(LLONG lLoginID, const NET_IN_SET_GROUPINFO_FOR_CHANNEL* pstInParam, NET_OUT_SET_GROUPINFO_FOR_CHANNEL *pstOutParam, int nWaitTime = 1000);
  66619. ///@brief 订阅目标查询状态,pstInParam与pstOutParam内存由用户申请释放
  66620. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachFaceFindState(LLONG lLoginID, const NET_IN_FACE_FIND_STATE* pstInParam, NET_OUT_FACE_FIND_STATE *pstOutParam, int nWaitTime = 1000);
  66621. ///@brief 取消订阅目标查询状态,lAttachHandle为CLIENT_AttachFaceFindState返回的句柄
  66622. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachFaceFindState(LLONG lAttachHandle);
  66623. ///@brief 设置检索的图片信息,pstInParam与pstOutParam内存由用户申请释放
  66624. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceRecognitionSetSearchImageInfo(LLONG lLoginID, const NET_IN_FACE_RECOGNITION_SET_SEARCH_IMAGE_INFO* pstInParam, NET_OUT_FACE_RECOGNITION_SET_SEARCH_IMAGE_INFO *pstOutParam, int nWaitTime = 1000);
  66625. ///@brief 以目标库的角度进行布控, pstInParam与pstOutParam内存由用户申请释放
  66626. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceRecognitionPutDisposition(LLONG lLoginID, const NET_IN_FACE_RECOGNITION_PUT_DISPOSITION_INFO* pstInParam, NET_OUT_FACE_RECOGNITION_PUT_DISPOSITION_INFO *pstOutParam, int nWaitTime = 1000);
  66627. ///@brief 以目标库的角度进行撤控, pstInParam与pstOutParam内存由用户申请释放
  66628. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceRecognitionDelDisposition(LLONG lLoginID, const NET_IN_FACE_RECOGNITION_DEL_DISPOSITION_INFO* pstInParam, NET_OUT_FACE_RECOGNITION_DEL_DISPOSITION_INFO *pstOutParam, int nWaitTime = 1000);
  66629. ///@brief 向服务器提交多张大图,从中检测目标图片, pstInParam与pstOutParam内存由用户申请释放
  66630. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceRecognitionDetectMultiFace(LLONG lLoginID, const NET_IN_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO* pstInParam, NET_OUT_FACE_RECOGNITION_DETECT_MULTI_FACE_INFO *pstOutParam, int nWaitTime);
  66631. ///@brief 订阅大图检测小图进度,配合CLIENT_FaceRecognitionDetectMultiFace使用, pstInParam与pstOutParam内存由用户申请释放
  66632. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachDetectMultiFaceState(LLONG lLoginID, const NET_IN_MULTIFACE_DETECT_STATE* pstInParam, NET_OUT_MULTIFACE_DETECT_STATE *pstOutParam, int nWaitTime);
  66633. ///@brief 取消订阅大图检测小图进度, lAttachHandle为CLIENT_AttachDetectMultiFaceState 返回的句柄
  66634. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachDetectMultiFaceState(LLONG lAttachHandle);
  66635. ///@brief 人员重新建模, pstInParam与pstOutParam内存由用户申请释放
  66636. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceRecognitionReAbstract(LLONG lLoginID, const NET_IN_FACE_RECOGNITION_REABSTRACT_INFO* pstInParam, NET_OUT_FACE_RECOGNITION_REABSTRACT_INFO *pstOutParam, int nWaitTime);
  66637. ///@brief 目标组重新建模, pstInParam与pstOutParam内存由用户申请释放
  66638. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceRecognitionGroupReAbstract(LLONG lLoginID, const NET_IN_FACE_RECOGNITION_GROUP_REABSTRACT_INFO* pstInParam, NET_OUT_FACE_RECOGNITION_GROUP_REABSTRACT_INFO *pstOutParam, int nWaitTime);
  66639. ///@brief 停止目标组建模, pstInParam与pstOutParam内存由用户申请释放
  66640. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceRecognitionStopGroupReAbstract(LLONG lLoginID, const NET_IN_FACE_RECOGNITION_STOP_GROUP_REABSTRACT_INFO* pstInParam, NET_OUT_FACE_RECOGNITION_STOP_GROUP_REABSTRACT_INFO *pstOutParam, int nWaitTime);
  66641. ///@brief 获取目标属性,pstInParam与pstOutParam内存由用户申请释放
  66642. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFaceParam(LLONG lLoginID, const NET_IN_GET_FACE_PARAM* pstInParam, NET_OUT_GET_FACE_PARAM *pstOutParam, int nWaitTime);
  66643. ///@brief 设置目标属性,pstInParam与pstOutParam内存由用户申请释放
  66644. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetFaceParam(LLONG lLoginID, const NET_IN_SET_FACE_PARAM* pstInParam, NET_OUT_SET_FACE_PARAM *pstOutParam, int nWaitTime);
  66645. ///@brief 更新权限组信息, pstInParam与pstOutParam内存由用户申请释放
  66646. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperatePerGroup(LLONG lLoginID, const NET_IN_OPERATE_PER_GROUP* pstInParam, NET_OUT_OPERATE_PER_GROUP* pstOutParam, int nWaitTime);
  66647. ///@brief 更新人员的权限组信息, pstInParam与pstOutParam内存由用户申请释放
  66648. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyPermission(LLONG lLoginID, const NET_IN_MODIFY_PERMISSION* pstInParam, NET_OUT_MODIFY_PERMISSION* pstOutParam, int nWaitTime);
  66649. ///@brief 开始查询人员的权限组信息
  66650. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindPermission(LLONG lLoginID, const NET_IN_STARTFIND_PERMISSION* pstInParam, NET_OUT_STARTFIND_PERMISSION *pstOutParam, int nWaitTime);
  66651. ///@brief 查询人员的权限组信息
  66652. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindPermission(LLONG lFindHandle, const NET_IN_DOFIND_PERMISSION* pstInParam, NET_OUT_DOFIND_PERMISSION *pstOutParam, int nWaitTime);
  66653. ///@brief 结束查询人员的权限组信息
  66654. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindPermission(LLONG lFindHandle);
  66655. ///@brief 获取目标导入令牌
  66656. ///@param[in] lLoginID 登录句柄
  66657. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  66658. ///@param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  66659. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  66660. ///@return TRUE表示成功 FALSE表示失败
  66661. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFaceRecognitionAppendToken(LLONG lLoginID, const NET_IN_GET_FACE_RECOGNITION_APPEND_TOKEN* pstuInParam, NET_OUT_GET_FACE_RECOGNITION_APPEND_TOKEN *pstuOutParam, int nWaitTime);
  66662. ///@brief 车辆以图搜图时可选择的属性过滤条件
  66663. typedef struct tagNET_TRAFFIC_CAR_ATTRIBUTE_INFO
  66664. {
  66665. int nVehicleColorArrayNums; // 车身颜色的个数,最大值是32
  66666. EM_OBJECT_COLOR_TYPE emVehicleColorArray[32]; // 车身颜色
  66667. int nCategoryArrayNums; // 车辆类型的个数,最大值是32
  66668. EM_NET_VEHICLE_TYPE emCategoryArray[32]; // 车辆类型
  66669. char szVehicleSign[64]; // 车标
  66670. UINT nSubBrand; // 车辆子品牌 需要通过映射表得到真正的子品牌 映射表详见开发手册
  66671. UINT nBrandYear; // 车辆年款 需要通过映射表得到真正的年款 映射表详见开发手册
  66672. int nFurniture; // 是否有摆件, 0: 不限 1: 无 2: 有
  66673. int nPendant; // 是否有挂件, 0: 不限 1: 无 2: 有
  66674. int nAnnualInspection; // 是否有年检标, 0: 不限 1: 无 2: 有
  66675. int nSunShade; // 是否有遮阳板, 0: 不限 1: 无 2: 有
  66676. char byReserved[256]; // 保留字节
  66677. } NET_TRAFFIC_CAR_ATTRIBUTE_INFO;
  66678. ///@brief 目标信息,包括以图搜图的图片数据和属性等
  66679. typedef struct tagNET_FACERECOGNITION_PERSON_INFOEX2
  66680. {
  66681. BOOL bPersonExEnable; // 人员信息查询条件字段stPersonInfoEx是否有效, 并使用人员信息扩展结构体
  66682. FACERECOGNITION_PERSON_INFOEX stPersonInfoEx; // 人员信息扩展
  66683. /* 以下是新增的扩展字段,建议优先使用 */
  66684. int nFacePicNumEx; // 目标图片数据信息的个数, 最大值为48
  66685. NET_FACE_PIC_INFO stuFacePicInfoEx[48]; // 目标图片数据信息
  66686. int nBoundingBoxNum; // 目标区域信息的个数, 最大值为48
  66687. NET_RECT stuBoundingBox[48]; // 目标区域信息, 若字段不存在或均为0则表示为全图区域, 若有该字段则与stuFacePicInfoEx[48]通过数组下标匹配
  66688. int nTrafficCarAttributeNum; // 车辆以图搜图时可选择的属性过滤条件的个数, 最大值为48
  66689. NET_TRAFFIC_CAR_ATTRIBUTE_INFO stuTrafficCarAttribute[48]; // 车辆以图搜图时可选择的属性过滤条件, 若有该字段则与stuFacePicInfoEx[48]通过数组下标匹配
  66690. char szReserved[1024]; // 保留字节
  66691. } NET_FACERECOGNITION_PERSON_INFOEX2;
  66692. ///@brief CLIENT_StartMultiFindFaceRecognitionEx 接口输入参数
  66693. typedef struct tagNET_IN_STARTMULTIFIND_FACERECONGNITION_EX
  66694. {
  66695. DWORD dwSize;
  66696. int* pChannelID; // 通道号
  66697. int nChannelCount; // 通道申请个数
  66698. EM_OBJECT_TYPE emObjectType; // 搜索的目标类型
  66699. NET_FACE_MATCH_OPTIONS stMatchOptions; // 目标匹配选项
  66700. NET_FACE_FILTER_CONDTION stFilterInfo; // 查询过滤条件
  66701. /* 图片二进制数据 */
  66702. char *pBuffer; // 缓冲地址
  66703. int nBufferLen; // 缓冲数据长度
  66704. /* 以上是兼容老接口 CLIENT_StartMultiFindFaceRecognition 保留部分功能字段, 下面是新增加的功能字段(兼容了FACERECOGNITION_PERSON_INFOEX结构体) */
  66705. BOOL bPersonEx2Enable; // 目标信息是否有效, 并使用目标信息结构体
  66706. NET_FACERECOGNITION_PERSON_INFOEX2 stPersonInfoEx2; // 目标信息, 包括以图搜图的图片数据和属性等
  66707. }NET_IN_STARTMULTIFIND_FACERECONGNITION_EX;
  66708. ///@brief 结果详细信息
  66709. typedef struct tagNET_COUNT_DETAIL_INFO
  66710. {
  66711. UINT nPictureID; // 图片的编号(0开始)
  66712. UINT nCount; // 该图片的结果数量
  66713. char szReserved[256]; // 保留字节
  66714. } NET_COUNT_DETAIL_INFO;
  66715. ///@brief CLIENT_StartMultiFindFaceRecognitionEx 接口输出参数
  66716. typedef struct tagNET_OUT_STARTMULTIFIND_FACERECONGNITION_EX
  66717. {
  66718. DWORD dwSize;
  66719. int nTotalCount; // 返回的符合查询条件的记录个数
  66720. // -1表示总条数未生成,要推迟获取
  66721. // 使用CLIENT_AttachFaceFindState接口状态
  66722. LLONG lFindHandle; // 查询句柄
  66723. int nToken; // 获取到的查询令牌
  66724. /* 以上是兼容老接口 CLIENT_StartMultiFindFaceRecognition 保留的功能字段, 下面是的新增加的功能字段 */
  66725. int nCountDetailNum; // 结果详细信息的个数, 最大值为64
  66726. NET_COUNT_DETAIL_INFO stuCountDetail[64]; // 结果详细信息
  66727. }NET_OUT_STARTMULTIFIND_FACERECONGNITION_EX;
  66728. ///@brief 开始目标检测/注册库的多通道查询
  66729. ///@param[in] lLoginID 登录句柄
  66730. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  66731. ///@param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  66732. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  66733. ///@return TRUE表示成功 FALSE表示失败
  66734. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartMultiFindFaceRecognitionEx(LLONG lLoginID, const NET_IN_STARTMULTIFIND_FACERECONGNITION_EX* pstuInParam, NET_OUT_STARTMULTIFIND_FACERECONGNITION_EX *pstuOutParam, int nWaitTime);
  66735. ///@brief CLIENT_DoFindFaceRecognitionEx 接口输入参数
  66736. typedef struct NET_IN_DOFIND_FACERECONGNITION_EX
  66737. {
  66738. DWORD dwSize;
  66739. LLONG lFindHandle; // 查询句柄
  66740. int nBeginNum; // 查询起始序号
  66741. int nCount; // 当前想查询的记录条数
  66742. EM_NEEDED_PIC_RETURN_TYPE emDataType; // 指定查询结果返回图片的格式
  66743. /* 以上是兼容老接口 CLIENT_DoFindFaceRecognition 保留的功能字段, 下面是的新增加的功能字段 */
  66744. BOOL bPictureIDEnable; // 图片的编号是否有效
  66745. // TRUE : nPictureID字段有效且下发该字段, 表示只查单张图片的结果
  66746. // FALSE : nPictureID字段无效且不下发该字段, 表示查所有图片的结果
  66747. UINT nPictureID; // 图片的编号(0开始)
  66748. }NET_IN_DOFIND_FACERECONGNITION_EX;
  66749. ///@brief 非机动车信息
  66750. typedef struct tagNET_HISTORY_NON_MOTOR_INFO
  66751. {
  66752. char szUID[64]; // 非机动车唯一标识符
  66753. NET_RECT stuBoundingBox; // 包围盒(8192坐标系)
  66754. UINT nHelmet; // 车上人员头盔状态 0-未知 1-没有 2-有
  66755. char szCapColor[16]; // 帽子颜色
  66756. char szCategory[32]; // 非机动车子类型
  66757. char szColor[16]; // 非机动车颜色
  66758. UINT nBasket; // 非机动车车篮 0-未知 1-否 2-有
  66759. UINT nStoragebox; // 非机动车后备箱 0: 未知 1: 无后备箱 2: 非机动车自带箱 3: 非机动车自装箱 4: 非机动车自带自装箱都有
  66760. UINT nNumOfCycling; // 骑车人数, 0xff表示未知
  66761. NET_PIC_INFO_EX stuImage; // 非机动车图片信息
  66762. char szReserved[256]; // 保留字节
  66763. } NET_HISTORY_NON_MOTOR_INFO;
  66764. ///@brief 候选人员信息列表
  66765. typedef struct tagNET_CANDIDATE_INFOEX2
  66766. {
  66767. CANDIDATE_INFOEX stuCandidatesEx; // 当前目标匹配到的候选对象信息扩展
  66768. UINT nSimilarity2; // 以图搜图业务,输入图片的相似度,万分比 1~10000
  66769. int nTaskID; // 任务流ID, 任务流以图搜图时, 表示候选人来自哪个分析任务
  66770. NET_HISTORY_NON_MOTOR_INFO stuHistoryNonMotorInfo; // 非机动车信息, 非机动车以图搜图时返回的非机动车属性
  66771. NET_HISTORY_TRAFFIC_CAR_INFO stuHistoryTrafficCarInfo;// 机动车信息, 机动车以图搜图时返回的机动车属性
  66772. char szReserved[256]; // 保留字节
  66773. } NET_CANDIDATE_INFOEX2;
  66774. ///@brief CLIENT_DoFindFaceRecognitionEx接口输出参数
  66775. typedef struct NET_OUT_DOFIND_FACERECONGNITION_EX
  66776. {
  66777. DWORD dwSize;
  66778. /* 图片二进制数据 */
  66779. char *pBuffer; // 缓冲地址
  66780. int nBufferLen; // 缓冲数据长度
  66781. /* 以上是兼容老接口 CLIENT_DoFindFaceRecognition 保留的部分功能字段, 下面是的新增加的功能字段, 已经兼容包括老结构体CANDIDATE_INFOEX中的字段 */
  66782. int nRetCadidateEx2Num; // 设备实际返回的候选信息结构体个数, 最大值是50, nRetCadidateEx2Num必须要小于等于nCadidateEx2Num
  66783. int nCadidateEx2Num; // 需要用户输入的候选信息结构体个数, 最大值是50
  66784. NET_CANDIDATE_INFOEX2* pstuCandidatesEx2; // 候选人员信息列表, 需要用户进行申请和释放,申请内存大小为: sizeof(NET_CANDIDATE_INFOEX2) * nCadidateEx2Num
  66785. }NET_OUT_DOFIND_FACERECONGNITION_EX;
  66786. ///@brief 获取目标查询结果信息
  66787. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  66788. ///@param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  66789. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  66790. ///@return TRUE表示成功 FALSE表示失败
  66791. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindFaceRecognitionEx(const NET_IN_DOFIND_FACERECONGNITION_EX* pstuInParam, NET_OUT_DOFIND_FACERECONGNITION_EX *pstuOutParam, int nWaitTime);
  66792. //////////////////////////// 刻录上传接口 /////////////////////////////////
  66793. ///@brief 打开刻录会话, 返回刻录会话句柄,pstInParam与pstOutParam内存由用户申请释放
  66794. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartBurnSession(LLONG lLoginID, const NET_IN_START_BURN_SESSION* pstInParam, NET_OUT_START_BURN_SESSION *pstOutParam, int nWaitTime);
  66795. ///@brief 关闭刻录会话
  66796. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopBurnSession(LLONG lBurnSession);
  66797. ///@brief 开始刻录,pstInParam与pstOutParam内存由用户申请释放
  66798. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartBurn(LLONG lBurnSession, const NET_IN_START_BURN* pstInParam, NET_OUT_START_BURN *pstOutParam, int nWaitTime);
  66799. ///@brief 停止刻录
  66800. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopBurn(LLONG lBurnSession);
  66801. ///@brief 暂停/恢复刻录
  66802. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PauseBurn(LLONG lBurnSession, BOOL bPause);
  66803. ///@brief 重点标记,pstInParam与pstOutParam内存由用户申请释放
  66804. CLIENT_NET_API BOOL CALL_METHOD CLIENT_BurnMarkTag(LLONG lBurnSession, const NET_IN_BURN_MARK_TAG* pstInParam, NET_OUT_BURN_MARK_TAG *pstOutParam, int nWaitTime);
  66805. ///@brief 换盘,pstInParam与pstOutParam内存由用户申请释放
  66806. CLIENT_NET_API BOOL CALL_METHOD CLIENT_BurnChangeDisk(LLONG lBurnSession, const NET_IN_BURN_CHANGE_DISK* pstInParam, NET_OUT_BURN_CHANGE_DISK *pstOutParam, int nWaitTime);
  66807. ///@brief 获取刻录状态,pstInParam与pstOutParam内存由用户申请释放
  66808. CLIENT_NET_API BOOL CALL_METHOD CLIENT_BurnGetState(LLONG lBurnSession, const NET_IN_BURN_GET_STATE* pstInParam, NET_OUT_BURN_GET_STATE *pstOutParam, int nWaitTime);
  66809. ///@brief 监听刻录状态,pstInParam与pstOutParam内存由用户申请释放
  66810. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachBurnState(LLONG lLoginID, const NET_IN_ATTACH_STATE* pstInParam, NET_OUT_ATTACH_STATE *pstOutParam, int nWaitTime = 1000);
  66811. ///@brief 取消监听刻录状态,lAttachHandle是CLIENT_AttachBurnState返回值
  66812. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachBurnState(LLONG lAttachHandle);
  66813. ///@brief 刻录上传开始 返回此次上传操作句柄, 注意以下接口不能在fAttachBurnStateCB回调函数里面调用,pstInParam与pstOutParam内存由用户申请释放
  66814. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartUploadFileBurned(LLONG lLoginID, const NET_IN_FILEBURNED_START* pstInParam, NET_OUT_FILEBURNED_START *pstOutParam, int nWaitTime = 1000);
  66815. ///@brief 刻录上传文件,lUploadHandle是CLIENT_StartUploadFileBurned返回值
  66816. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SendFileBurned(LLONG lUploadHandle);
  66817. ///@brief 刻录上传停止,lUploadHandle是CLIENT_StartUploadFileBurned返回值,此接口不能在fBurnFileCallBack回调函数中调用
  66818. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopUploadFileBurned(LLONG lUploadHandle);
  66819. ///@brief 监听刻录校验状态,pstInParam与pstOutParam内存由用户申请释放
  66820. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachBurnCheckState(LLONG lLoginID, const NET_IN_ATTACH_BURN_CHECK* pstInParam, NET_OUT_ATTACH_BURN_CHECK* pstOutParam, int nWaitTime = 1000);
  66821. ///@brief 取消监听刻录校验状态,lAttachHandle是CLIENT_AttachBurnCheckState返回值
  66822. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachBurnCheckState(LLONG lAttachHandle);
  66823. ///@brief 订阅刻录案件信息,pInParam与pOutParam内存由用户申请释放
  66824. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachBurnCase(LLONG lLoginID, const NET_IN_ATTACH_BURN_CASE* pInParam, NET_OUT_ATTACH_BURN_CASE* pOutParam, int nWaitTime);
  66825. ///@brief 取消订阅刻录案件信息,lAttachHandle是CLIENT_AttachBurnCase返回值
  66826. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachBurnCase(LLONG lAttachHandle);
  66827. ///@brief 订阅刻录设备状态,pInParam与pOutParam内存由用户申请释放
  66828. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachBurnDevState(LLONG lLoginID, const NET_IN_ATTACH_BURN_DEV_STATE* pInParam, NET_OUT_ATTACH_BURN_DEV_STATE* pOutParam, int nWaitTime = 3000);
  66829. ///@brief 取消订阅刻录设备状态, lAttachHandle 是 CLIENT_AttachBurnDevState 返回值
  66830. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachBurnDevState(LLONG lAttachHandle);
  66831. ///@brief 监护仪数据
  66832. typedef struct tagNET_BODY_MIND_DATA_INFO
  66833. {
  66834. DWORD dwSize;
  66835. UINT nECG; // 心率值,单位bpm
  66836. UINT nECGMax; // 心率报警上限值,单位bpm
  66837. UINT nECGMin; // 心率报警下限值,单位bpm
  66838. UINT nSPO2; // 血氧值,单位%
  66839. UINT nSPO2Max; // 血氧报警值上限值,单位%
  66840. UINT nSPO2Min; // 血氧报警值下限值,单位%
  66841. UINT nRESP; // 呼吸值,单位BrPM
  66842. UINT nRESPMax; // 呼吸报警值上限,单位BrPM
  66843. UINT nRESPMin; // 呼吸报警值下限,单位BrPM
  66844. UINT nNIBP_SYS; // 收缩压(高压)值,单位mmHg
  66845. UINT nNIBP_SYSMax; // 收缩压报警值上限,单位mmHg
  66846. UINT nNIBP_SYSMin; // 收缩压报警值下限,单位mmHg
  66847. UINT nNIBP_AVG; // 平均压值,单位mmHg
  66848. UINT nNIBP_AVGMax; // 平均压报警值上限,单位mmHg
  66849. UINT nNIBP_AVGMin; // 平均压报警值下限,单位mmHg
  66850. UINT nNIBP_DIA; // 舒张压(低压)值,单位mmHg
  66851. UINT nNIBP_DIAMax; // 舒张压报警值上限,单位mmHg
  66852. UINT nNIBP_DIAMin; // 舒张压报警值下限,单位mmHg
  66853. } NET_BODY_MIND_DATA_INFO;
  66854. ///@brief 监护仪数据回调函数原形,lAttachHandle是CLIENT_AttachBodyMindData返回值
  66855. typedef void (CALLBACK *fBodyMindDataCallBack) (LLONG lAttachHandle, const NET_BODY_MIND_DATA_INFO* pBuf, int nBufLen, LDWORD dwUser);
  66856. ///@brief CLIENT_AttachBodyMindData 接口输入参数
  66857. typedef struct tagNET_IN_ATTACH_BODY_MIND_DATA
  66858. {
  66859. DWORD dwSize;
  66860. fBodyMindDataCallBack cbBodyMindData; // 监护仪数据回调函数
  66861. LDWORD dwUser; // 用户数据
  66862. } NET_IN_ATTACH_BODY_MIND_DATA;
  66863. ///@brief CLIENT_AttachBodyMindData 接口输出参数
  66864. typedef struct tagNET_OUT_ATTACH_BODY_MIND_DATA
  66865. {
  66866. DWORD dwSize;
  66867. } NET_OUT_ATTACH_BODY_MIND_DATA;
  66868. ///@brief CLIENT_DetachBodyMindData 接口输入参数
  66869. typedef struct tagNET_IN_DETACH_BODY_MIND_DATA
  66870. {
  66871. DWORD dwSize;
  66872. } NET_IN_DETACH_BODY_MIND_DATA;
  66873. ///@brief CLIENT_DetachBodyMindData 接口输出参数
  66874. typedef struct tagNET_OUT_DETACH_BODY_MIND_DATA
  66875. {
  66876. DWORD dwSize;
  66877. } NET_OUT_DETACH_BODY_MIND_DATA;
  66878. ///@brief 订阅监护仪数据信息
  66879. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachBodyMindData(LLONG lLoginID, const NET_IN_ATTACH_BODY_MIND_DATA* pstInParam, NET_OUT_ATTACH_BODY_MIND_DATA* pstOutParam, int nWaitTime);
  66880. ///@brief 取消订阅监护仪数据信息,lAttachHandle是CLIENT_AttachBodyMindData返回值
  66881. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachBodyMindData(LLONG lAttachHandle, const NET_IN_DETACH_BODY_MIND_DATA* pstInParam, NET_OUT_DETACH_BODY_MIND_DATA *pstOutParam, int nWaitTime);
  66882. //////////////////////////// 逻辑设备 /////////////////////////////////////////
  66883. ///@brief 订阅摄像头状态,pstInParam与pstOutParam内存由用户申请释放
  66884. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachCameraState(LLONG lLoginID, const NET_IN_CAMERASTATE* pstInParam, NET_OUT_CAMERASTATE *pstOutParam, int nWaitTime = 3000);
  66885. ///@brief 停止订阅摄像头状态,lAttachHandle是CLIENT_AttachCameraState返回值
  66886. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachCameraState(LLONG lAttachHandle);
  66887. ///@brief 获取所有有效显示源,pInParam与pOutParam内存由用户申请释放
  66888. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatrixGetCameras(LLONG lLoginID, const DH_IN_MATRIX_GET_CAMERAS* pInParam, DH_OUT_MATRIX_GET_CAMERAS* pOutParam, int nWaitTime = 1000);
  66889. ///@brief 添加逻辑设备,pInParam与pOutParam内存由用户申请释放
  66890. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatrixAddCameras(LLONG lLoginID, const DH_IN_ADD_LOGIC_DEVICE_CAMERA* pInParam, DH_OUT_ADD_LOGIC_DEVICE_CAMERA* pOutParam, int nWaitTime = 1000);
  66891. ///@brief 按设备信息添加显示源,pInParam与pOutParam内存由用户申请释放
  66892. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatrixAddCamerasByDevice(LLONG lLoginID, const DH_IN_ADD_LOGIC_BYDEVICE_CAMERA* pInParam, DH_OUT_ADD_LOGIC_BYDEVICE_CAMERA* pOutParam, int nWaitTime = 1000);
  66893. ///@brief 批量添加视频源,pInParam与pOutParam内存由用户申请释放
  66894. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatrixAddCamerasByGroup(LLONG lLoginID, const NET_IN_ADD_LOGIC_BYGROUP_CAMERA* pInParam, NET_OUT_ADD_LOGIC_BYGROUP_CAMERA* pOutParam, int nWaitTime = 1000);
  66895. ///@brief 按组获取视频通道
  66896. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatrixGetCameraAllByGroup(LLONG lLoginID, const NET_IN_GET_CAMERA_ALL_BY_GROUP* pInParam, NET_OUT_GET_CAMERA_ALL_BY_GROUP* pOutParam, int nWaitTime);
  66897. ///@brief 按组删除视频通道
  66898. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatrixDeleteCameraByGroup(LLONG lLoginID, const NET_IN_DELETE_CAMERA_BY_GROUP* pInParam, NET_OUT_DELETE_CAMERA_BY_GROUP* pOutParam, int nWaitTime);
  66899. /**************************************************************************************
  66900. ///@brief : CLIENT_GetVideoInputInfo // 获取接入通道状态信息
  66901. ///@param[in]: LLONG :lLoginID // 登录句柄
  66902. ///@param[in]: NET_IN_GET_VIDEO_INPUT_INFO* :pInParam // 接口输入参数
  66903. ///@param[out]: NET_OUT_GET_VIDEO_INPUT_INFO* :pstOutPqram // 接口输出参数
  66904. ///@param[in]: int :nWaitTime // 等待超时时间 单位:毫秒
  66905. ///@return: BOOL
  66906. **************************************************************************************/
  66907. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoInputInfo(LLONG lLoginID, const NET_IN_GET_VIDEO_INPUT_INFO* pInParam, NET_OUT_GET_VIDEO_INPUT_INFO* pOutParam, int nWaitTime);
  66908. //////////////////////////// 矩阵接口 /////////////////////////////////
  66909. ///@brief 查询产品定义(pstuProdDef内存由用户申请释放)
  66910. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryProductionDefinition(LLONG lLoginID, DH_PRODUCTION_DEFNITION* pstuProdDef, int nWaitTime = 1000);
  66911. ///@brief 查询矩阵子卡信息(pstuCardList内存由用户申请释放)
  66912. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryMatrixCardInfo(LLONG lLoginID, DH_MATRIX_CARD_LIST* pstuCardList, int nWaitTime = 1000);
  66913. ///@brief 查询系统状态(pstuStatus内存由用户申请释放)
  66914. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QuerySystemStatus(LLONG lLoginID, DH_SYSTEM_STATUS* pstuStatus, int nWaitTime = 1000);
  66915. ///@brief 查询分割能力(pstuCaps内存由用户申请释放)
  66916. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSplitCaps(LLONG lLoginID, int nChannel, DH_SPLIT_CAPS* pstuCaps, int nWaitTime = 1000);
  66917. ///@brief 查询显示源(pstuSplitSrc内存由用户申请释放)
  66918. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSplitSource(LLONG lLoginID, int nChannel, int nWindow, DH_SPLIT_SOURCE* pstuSplitSrc, int nMaxCount, int* pnRetCount, int nWaitTime = 1000);
  66919. ///@brief 设置显示源(pstuSplitSrc内存由用户申请释放)
  66920. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSplitSource(LLONG lLoginID, int nChannel, int nWindow, const DH_SPLIT_SOURCE* pstuSplitSrc, int nSrcCount, int nWaitTime = 1000);
  66921. ///@brief 设置显示源, 支持输出参数(pInparam, pOutParam内存由用户申请释放)
  66922. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSplitSourceEx(LLONG lLoginID, const NET_IN_SET_SPLIT_SOURCE* pInparam, NET_OUT_SET_SPLIT_SOURCE* pOutParam, int nWaitTime = 1000);
  66923. ///@brief NVR定制需求,交换两个窗口所显示的数据源
  66924. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SplitExchangeSource(LLONG lLoginID, const NET_IN_SPLIT_EXCHANGE_SOURCE* pInParam, NET_OUT_SPLIT_EXCHANGE_SOURCE* pOutParam, int nWaitTime = 1000);
  66925. ///@brief 查询分割模式(pstuSplitInfo内存由用户申请释放)
  66926. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSplitMode(LLONG lLoginID, int nChannel, DH_SPLIT_MODE_INFO* pstuSplitInfo, int nWaitTime = 1000);
  66927. ///@brief 设置分割模式(pstuSplitInfo内存由用户申请释放)
  66928. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSplitMode(LLONG lLoginID, int nChannel, const DH_SPLIT_MODE_INFO* pstuSplitInfo, int nWaitTime = 1000);
  66929. ///@brief 查询分割分组数量
  66930. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSplitGroupCount(LLONG lLoginID, int nChannel, DH_SPLIT_MODE emSplitMode, int* pnGroupCount, int nWaitTime = 1000);
  66931. ///@brief 查询视频输出能力(pstuCaps内存由用户申请释放)
  66932. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoOutCaps(LLONG lLoginID, int nChannel, DH_VIDEO_OUT_CAPS* pstuCaps, int nWaitTime = 1000);
  66933. ///@brief 设置视频输出选项(pstuVideoOut内存由用户申请释放)
  66934. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetVideoOutOption(LLONG lLoginID, int nChannel, const DH_VIDEO_OUT_OPT* pstuVideoOut, int nWaitTime = 1000);
  66935. ///@brief 查询视频输入通道目前在哪个窗口输出显示(pstuWnds内存由用户申请释放)
  66936. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryVideoOutWindows(LLONG lLoginID, int nChannel, DH_VIDEO_OUT_WINDOW* pstuWnds, int nMaxWndCount, int* pnRetWndCount, int nWaitTime = 1000);
  66937. ///@brief 设置窗口位置(pInparam, pOutParam内存由用户申请释放)
  66938. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSplitWindowRect(LLONG lLoginID, const DH_IN_SPLIT_SET_RECT* pInParam, DH_OUT_SPLIT_SET_RECT* pOutParam, int nWaitTime = 1000);
  66939. ///@brief 获取窗口位置(pInparam, pOutParam内存由用户申请释放)
  66940. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSplitWindowRect(LLONG lLoginID, const DH_IN_SPLIT_GET_RECT* pInParam, DH_OUT_SPLIT_GET_RECT* pOutParam, int nWaitTime = 1000);
  66941. ///@brief 开窗(pInparam, pOutParam内存由用户申请释放)
  66942. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OpenSplitWindow(LLONG lLoginID, const DH_IN_SPLIT_OPEN_WINDOW* pInParam, DH_OUT_SPLIT_OPEN_WINDOW* pOutParam, int nWaitTime = 1000);
  66943. ///@brief 关窗(pInparam, pOutParam内存由用户申请释放)
  66944. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloseSplitWindow(LLONG lLoginID, const DH_IN_SPLIT_CLOSE_WINDOW* pInParam, DH_OUT_SPLIT_CLOSE_WINDOW* pOutParam, int nWaitTime = 1000);
  66945. ///@brief 设置窗口次序(pInparam, pOutParam内存由用户申请释放)
  66946. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSplitTopWindow(LLONG lLoginID, const DH_IN_SPLIT_SET_TOP_WINDOW* pInParam, DH_OUT_SPLIT_SET_TOP_WINDOW* pOutParam, int nWaitTime = 1000);
  66947. ///@brief 获取当前显示的窗口信息(pInparam, pOutParam内存由用户申请释放)
  66948. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSplitWindowsInfo(LLONG lLoginID, const DH_IN_SPLIT_GET_WINDOWS* pInParam, DH_OUT_SPLIT_GET_WINDOWS* pOutParam, int nWaitTime = 1000);
  66949. ///@brief 载入收藏夹(pInparam, pOutParam内存由用户申请释放)
  66950. CLIENT_NET_API BOOL CALL_METHOD CLIENT_LoadSplitCollection(LLONG lLoginID, const DH_IN_SPLIT_LOAD_COLLECTION* pInParam, DH_OUT_SPLIT_LOAD_COLLECTION* pOutParam, int nWaitTime = 1000);
  66951. ///@brief 保存收藏夹(pInparam, pOutParam内存由用户申请释放)
  66952. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SaveSplitCollection(LLONG lLoginID, const DH_IN_SPLIT_SAVE_COLLECTION* pInParam, DH_OUT_SPLIT_SAVE_COLLECTION* pOutParam, int nWaitTime = 1000);
  66953. ///@brief 获取收藏夹信息(pInparam, pOutParam内存由用户申请释放)
  66954. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSplitCollections(LLONG lLoginID, const DH_IN_SPLIT_GET_COLLECTIONS* pInParam, DH_OUT_SPLIT_GET_COLLECTIONS* pOutParam, int nWaitTime = 1000);
  66955. ///@brief 重命名收藏夹(pInparam, pOutParam内存由用户申请释放)
  66956. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RenameSplitCollection(LLONG lLoginID, const DH_IN_SPLIT_RENAME_COLLECTION* pInParam, DH_OUT_SPLIT_RENAME_COLLECTION* pOutParam, int nWaitTime = 1000);
  66957. ///@brief 删除收藏夹(pInparam, pOutParam内存由用户申请释放)
  66958. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteSplitCollection(LLONG lLoginID, const DH_IN_SPLIT_DELETE_COLLECTION* pInParam, DH_OUT_SPLIT_DELETE_COLLECTION* pOutParam, int nWaitTime = 1000);
  66959. ///@brief 设置解码策略(pInparam, pOutParam内存由用户申请释放)
  66960. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDecodePolicy(LLONG lLoginID, const DH_IN_SET_DEC_POLICY* pInParam, DH_OUT_SET_DEC_POLICY* pOutParam, int nWaitTime = 1000);
  66961. ///@brief 获取解码策略(pInparam, pOutParam内存由用户申请释放)
  66962. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDecodePolicy(LLONG lLoginID, const DH_IN_GET_DEC_POLICY* pInParam, DH_OUT_GET_DEC_POLICY* pOutParam, int nWaitTime = 1000);
  66963. ///@brief 设置音频输出模式(pInparam, pOutParam内存由用户申请释放)
  66964. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSplitAudioOuput(LLONG lLoginID, const DH_IN_SET_AUDIO_OUTPUT* pInParam, DH_OUT_SET_AUDIO_OUTPUT* pOutParam, int nWaitTime = 1000);
  66965. ///@brief 获取音频输出模式(pInparam, pOutParam内存由用户申请释放)
  66966. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSplitAudioOuput(LLONG lLoginID, const DH_IN_GET_AUDIO_OUTPUT* pInParam, DH_OUT_GET_AUDIO_OUTPUT* pOutParam, int nWaitTime = 1000);
  66967. ///@brief 设置显示源(pInparam, pOutParam内存由用户申请释放)
  66968. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatrixSetCameras(LLONG lLoginID, const DH_IN_MATRIX_SET_CAMERAS* pInParam, DH_OUT_MATRIX_SET_CAMERAS* pOutParam, int nWaitTime = 1000);
  66969. ///@brief 获取视频输入能力(pInparam, pOutParam内存由用户申请释放)
  66970. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoInCaps(LLONG lLoginID, const DH_IN_GET_VIDEO_IN_CAPS* pInParam, DH_OUT_GET_VIDEO_IN_CAPS* pOutParam, int nWaitTime = 1000);
  66971. ///@brief 获取视频输出模式(pInparam, pOutParam内存由用户申请释放)
  66972. CLIENT_NET_API BOOL CALL_METHOD CLIENT_EnumVideoOutModes(LLONG lLoginID, const DH_IN_ENUM_VIDEO_OUT_MODES* pInParam, DH_OUT_ENUM_VIDEO_OUT_MODES* pOutParam, int nWaitTime = 1000);
  66973. ///@brief 获取解码窗口输出OSD信息(pInparam, pOutParam内存由用户申请释放)
  66974. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSplitOSD(LLONG lLoginID, const DH_IN_SPLIT_GET_OSD* pInParam, DH_OUT_SPLIT_GET_OSD* pOutParam, int nWaitTime = 1000);
  66975. ///@brief 设置解码窗口输出OSD信息(pInparam, pOutParam内存由用户申请释放)
  66976. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSplitOSD(LLONG lLoginID, const DH_IN_SPLIT_SET_OSD* pInParam, DH_OUT_SPLIT_SET_OSD* pOutParam, int nWaitTime = 1000);
  66977. ///@brief 获取解码窗口输出OSD信息扩展接口(pInparam, pOutParam内存由用户申请释放)
  66978. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSplitOSDEx(LLONG lLoginID, const NET_IN_SPLIT_GET_OSD_EX* pInParam, NET_OUT_SPLIT_GET_OSD_EX* pOutParam, int nWaitTime = 1000);
  66979. ///@brief 设置解码窗口输出OSD信息扩展接口(pInparam, pOutParam内存由用户申请释放)
  66980. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSplitOSDEx(LLONG lLoginID, const NET_IN_SPLIT_SET_OSD_EX* pInParam, NET_OUT_SPLIT_SET_OSD_EX* pOutParam, int nWaitTime = 1000);
  66981. ///@brief 设置窗口轮巡显示源(pInparam, pOutParam内存由用户申请释放)
  66982. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetTourSource(LLONG lLoginID, const NET_IN_SET_TOUR_SOURCE* pInParam, NET_OUT_SET_TOUR_SOURCE* pOutParam, int nWaitTime = 1000);
  66983. ///@brief 获取窗口轮巡显示源(pInparam, pOutParam内存由用户申请释放)
  66984. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetTourSource(LLONG lLoginID, const NET_IN_GET_TOUR_SOURCE* pInParam, NET_OUT_GET_TOUR_SOURCE* pOutParam, int nWaitTime);
  66985. ///@brief 订阅轮巡状态(pInparam, pOutParam内存由用户申请释放)
  66986. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSplitTour(LLONG lLoginID, const NET_IN_ATTACH_SPLIT_TOUR* pInParam, NET_OUT_ATTACH_SPLIT_TOUR* pOutParam, int nWaitTime);
  66987. ///@brief 取消订阅轮巡状态(pInparam, pOutParam内存由用户申请释放)
  66988. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSplitTour(LLONG lAttachHandle);
  66989. ///@brief 下位矩阵切换(pInparam, pOutParam内存由用户申请释放)
  66990. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatrixSwitch(LLONG lLoginID, const NET_IN_MATRIX_SWITCH* pInParam, NET_OUT_MATRIX_SWITCH* pOutParam, int nWaitTime);
  66991. ///@brief 设置显示源, 支持同时设置多个窗口(pInparam, pOutParam内存由用户申请释放)
  66992. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SplitSetMultiSource(LLONG lLoginID, const NET_IN_SPLIT_SET_MULTI_SOURCE* pInParam, NET_OUT_SPLIT_SET_MULTI_SOURCE* pOutParam, int nWaitTime);
  66993. ///@brief 视频分割操作(pInparam, pOutParam内存由用户申请释放)
  66994. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateSplit(LLONG lLoginID, NET_SPLIT_OPERATE_TYPE emType, void* pInParam, void* pOutParam, int nWaitTime);
  66995. ///@brief 订阅窗口显示源信息
  66996. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachWindowsSource( LLONG lLoginID, const NET_IN_ATTACH_WINDOW_SOURCE* pInParam, NET_OUT_ATTACH_WINDOW_SOURCE* pOutParam, int nWaitTime );
  66997. ///@brief 取消订阅窗口显示源信息
  66998. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachWindowsSource( LLONG lAttachHandle );
  66999. ///@brief 窗口图像局部放大(pInparam, pOutParam内存由用户申请释放)
  67000. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WindowRegionEnlarge(LLONG lLoginID, const NET_IN_WINDOW_REGION_ENLARGE* pInParam, NET_OUT_WINDOW_REGION_ENLARGE* pOutParam, int nWaitTime);
  67001. ///@brief 窗口图像局部放大还原(pInparam, pOutParam内存由用户申请释放)
  67002. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WindowEnlargeReduction(LLONG lLoginID, const NET_IN_WINDOW_ENLARGE_REDUCTION* pInParam, NET_OUT_WINDOW_ENLARGE_REDUCTION* pOutParam, int nWaitTime);
  67003. ///@brief 矩阵窗口鼠标操作(pInparam, pOutParam内存由用户申请释放)
  67004. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WindowButtonAction(LLONG lLoginID, const NET_IN_WINDOW_ONBUTTON_ACTION* pInParam, NET_OUT_WINDOW_ONBUTTON_ACTION* pOutParam, int nWaitTime);
  67005. ///@brief 设置设备解码窗口批注
  67006. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WindowSetAnnotation(LLONG lLoginID, const NET_IN_WINDOW_SET_ANNOTATION *pInParam, NET_OUT_WINDOW_SET_ANNOTATION *pOutParam, int nWaitTime);
  67007. ///@brief 清除窗口所有批注
  67008. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WindowClearAnnotation(LLONG lLoginID, const NET_IN_WINDOW_CLEAR_ANNOTATION *pInParam, NET_OUT_WINDOW_CLEAR_ANNOTATION *pOutParam, int nWaitTime);
  67009. ///@brief 视频异常(卡顿、花屏)等级
  67010. typedef enum tagEM_VIDEO_EXCEPTION_LEVEL_TYPE
  67011. {
  67012. EM_VIDEO_EXCEPTION_LEVEL_TYPE_UNKNOWN = -1, // 未知
  67013. EM_VIDEO_EXCEPTION_LEVEL_TYPE_NORMAL, // 正常
  67014. EM_VIDEO_EXCEPTION_LEVEL_TYPE_SLIGHT, // 轻微
  67015. EM_VIDEO_EXCEPTION_LEVEL_TYPE_MEDIUM, // 中等
  67016. EM_VIDEO_EXCEPTION_LEVEL_TYPE_SERIOUS, // 严重
  67017. }EM_VIDEO_EXCEPTION_LEVEL_TYPE;
  67018. ///@brief 对指定窗口的视频数据做特定处理,输入参数
  67019. typedef struct tagNET_IN_WM_SET_EXCEPTION_LEVEL_INFO
  67020. {
  67021. DWORD dwSize; // 结构体大小
  67022. int nChannel; // 输出通道号或融合屏虚拟通道号
  67023. int nWindowID; // 窗口号
  67024. EM_VIDEO_EXCEPTION_LEVEL_TYPE emVideoExceptionLevel; // 视频异常等级
  67025. }NET_IN_WM_SET_EXCEPTION_LEVEL_INFO;
  67026. ///@brief 对指定窗口的视频数据做特定处理,输出参数
  67027. typedef struct tagNET_OUT_WM_SET_EXCEPTION_LEVEL_INFO
  67028. {
  67029. DWORD dwSize; // 结构体大小
  67030. }NET_OUT_WM_SET_EXCEPTION_LEVEL_INFO;
  67031. ///@brief 对指定窗口的视频数据做特定处理
  67032. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WindowSetExceptionLevel(LLONG lLoginID, const NET_IN_WM_SET_EXCEPTION_LEVEL_INFO *pInParam, NET_OUT_WM_SET_EXCEPTION_LEVEL_INFO *pOutParam, int nWaitTime);
  67033. ///@brief CLIENT_StartFindExamPlan 输入参数
  67034. typedef struct tagNET_IN_EXAMPLAN_START_FIND
  67035. {
  67036. DWORD dwSize; // 结构体大小
  67037. NET_TIME stuStartTime; // 开始时间
  67038. NET_TIME stuEndTime; // 结束时间
  67039. char szCourse[512]; // 科目
  67040. char szExamRoomName[512]; // 考场名称
  67041. }NET_IN_EXAMPLAN_START_FIND;
  67042. ///@brief CLIENT_StartFindExamPlan 输出参数
  67043. typedef struct tagNET_OUT_EXAMPLAN_START_FIND
  67044. {
  67045. DWORD dwSize; // 结构体大小
  67046. UINT nTotalCount; // 查询到的总条数
  67047. }NET_OUT_EXAMPLAN_START_FIND;
  67048. ///@brief 开始查找考试计划
  67049. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindExamPlan(LLONG lLoginID, NET_IN_EXAMPLAN_START_FIND *pInParam, NET_OUT_EXAMPLAN_START_FIND *pOutParam, int nWaitTime);
  67050. ///@brief CLIENT_DoFindExamPlan 输入参数
  67051. typedef struct tagNET_IN_EXAMPLAN_DO_FIND
  67052. {
  67053. DWORD dwSize; // 结构体大小
  67054. UINT nBeginNumber; // 查找起始序号
  67055. UINT nCount; // 本次查询的条数
  67056. }NET_IN_EXAMPLAN_DO_FIND;
  67057. ///@brief 考场信息(含考试计划序号)
  67058. typedef struct tagNET_EXAM_INFO_EX
  67059. {
  67060. UINT nExamPlanID; // 考试计划序号
  67061. char szSchool[512]; // 考点名称
  67062. char szExamRoomName[512]; // 考场名称
  67063. NET_TIME stuStartTime; // 开始时间
  67064. NET_TIME stuEndTime; // 结束时间
  67065. char szCourse[512]; // 考试科目
  67066. int nInvigilatorNum; // 监考人员个数
  67067. char szInvigilator[256][256];// 监考人员
  67068. UINT nCandidateNum; // 考试人数
  67069. BYTE byReserved[1024]; // 预留字节
  67070. }NET_EXAM_INFO_EX;
  67071. ///@brief CLIENT_DoFindExamPlan 输出参数
  67072. typedef struct tagNET_OUT_EXAMPLAN_DO_FIND
  67073. {
  67074. DWORD dwSize; // 结构体大小
  67075. UINT nFound; // 查询到的条数
  67076. NET_EXAM_INFO_EX* pExamInfoEx; // 考场信息,内存由用户申请释放,申请大小不小于nMaxNum*sizeof(NET_EXAM_INFO_EX)
  67077. int nMaxNum; // 用户分配内存的个数
  67078. }NET_OUT_EXAMPLAN_DO_FIND;
  67079. ///@brief 查找考试计划
  67080. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindExamPlan(LLONG lFindHandle, NET_IN_EXAMPLAN_DO_FIND *pInParam, NET_OUT_EXAMPLAN_DO_FIND *pOutParam, int nWaitTime);
  67081. ///@brief 停止查找考试计划
  67082. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindExamPlan(LLONG lFindHandle);
  67083. ///@brief 考场信息
  67084. typedef struct tagNET_EXAM_INFO
  67085. {
  67086. char szSchool[512]; // 考点名称
  67087. char szExamRoomName[512]; // 考场名称
  67088. NET_TIME stuStartTime; // 开始时间
  67089. NET_TIME stuEndTime; // 结束时间
  67090. char szCourse[512]; // 考试科目
  67091. int nInvigilatorNum; // 监考人员个数
  67092. char szInvigilator[256][256];// 监考人员
  67093. UINT nCandidateNum; // 考试人数
  67094. BYTE byReserved[1024]; // 预留字节
  67095. }NET_EXAM_INFO;
  67096. ///@brief 添加考场计划入参
  67097. typedef struct tagNET_IN_EXAM_PLAN_SERVICEE_ADD
  67098. {
  67099. DWORD dwSize; // 结构体大小
  67100. int nExamInfoNum; // 考场计划个数
  67101. NET_EXAM_INFO* pExamInfo; // 考场计划信息,内存由用户申请释放,申请大小不小于nInfoNum*sizeof(NET_EXAM_INFO);
  67102. }NET_IN_EXAM_PLAN_SERVICE_ADD;
  67103. ///@brief 添加考场计划出参
  67104. typedef struct tagNET_OUT_EXAM_PLAN_SERVICEE_ADD
  67105. {
  67106. DWORD dwSize; // 结构体大小
  67107. int nExamPlanIDNum; // 考试计划序号个数
  67108. UINT nExamPlanID[1024]; // 考试计划序号 一次最多增加1024个
  67109. }NET_OUT_EXAM_PLAN_SERVICE_ADD;
  67110. ///@brief 更新考场计划入参
  67111. typedef struct tagNET_IN_EXAM_PLAN_SERVICEE_UPDATE
  67112. {
  67113. DWORD dwSize; // 结构体大小
  67114. NET_EXAM_INFO_EX stuExamInfo; // 考场计划信息
  67115. }NET_IN_EXAM_PLAN_SERVICE_UPDATE;
  67116. ///@brief 更新考场计划出参
  67117. typedef struct tagNET_OUT_EXAM_PLAN_SERVICEE_UPDATE
  67118. {
  67119. DWORD dwSize; // 结构体大小
  67120. }NET_OUT_EXAM_PLAN_SERVICE_UPDATE;
  67121. ///@brief 删除考场计划入参
  67122. typedef struct tagNET_IN_EXAM_PLAN_SERVICEE_REMOVE
  67123. {
  67124. DWORD dwSize; // 结构体大小
  67125. int nExamPlanIDNum; // 考试计划序号个数
  67126. UINT nExamPlanID[1024]; // 考试计划序号 一次最多删除256个
  67127. }NET_IN_EXAM_PLAN_SERVICE_REMOVE;
  67128. ///@brief 删除考场计划出参
  67129. typedef struct tagNET_OUT_EXAM_PLAN_SERVICEE_REMOVE
  67130. {
  67131. DWORD dwSize; // 结构体大小
  67132. }NET_OUT_EXAM_PLAN_SERVICE_REMOVE;
  67133. ///@brief 考试计划操作类型
  67134. typedef enum tagNET_EM_EXAM_PLAN_SERVICE
  67135. {
  67136. NET_EM_EXAM_PLAN_SERVICE_ADD = 0, // 添加考场计划, pstInParam = NET_IN_EXAM_PLAN_SERVICE_ADD , pstOutParam = NET_IN_EXAM_PLAN_SERVICE_ADD
  67137. NET_EM_EXAM_PLAN_SERVICE_UPDATE, // 更新考场计划, pstInParam = NET_IN_EXAM_PLAN_SERVICE_UPDATE , pstOutParam = NET_OUT_EXAM_PLAN_SERVICE_UPDATE
  67138. NET_EM_EXAM_PLAN_SERVICE_REMOVE, // 删除考场计划, pstInParam = NET_IN_EXAM_PLAN_SERVICE_REMOVE , pstOutParam = NET_OUT_EXAM_PLAN_SERVICE_REMOVE
  67139. }NET_EM_EXAM_PLAN_SERVICE;
  67140. ///@brief 考试计划管理接口
  67141. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateExamPalnService(LLONG lLoginID, NET_EM_EXAM_PLAN_SERVICE emType, void* pstInParam, void* pstOutParam, int nWiatTime);
  67142. ///@brief 分割窗口播放操作类型
  67143. typedef enum tagNET_PLAYER_OPERATE_TYPE
  67144. {
  67145. NET_PLAYER_OPERATE_OPEN, // 打开播放器,NET_IN_PLAYER_OPEN,
  67146. NET_PLAYER_OPERATE_CLOSE, // 关闭播放器,NET_IN_PLAYER_CLOSE
  67147. NET_PLAYER_OPERATE_START, // 开始播放,NET_IN_PLAYER_START
  67148. NET_PLAYER_OPERATE_STOP, // 停止播放,NET_IN_PLAYER_STOP
  67149. NET_PLAYER_OPERATE_PAUSE, // 暂停/恢复播放,NET_IN_PLAYER_PAUSE
  67150. NET_PLAYER_OPERATE_SEEK_TIME, // 跳转到指定时间播放,NET_IN_PLAYER_SEEK_TIME
  67151. NET_PLAYER_OPERATE_STEP_FRAME, // 单帧回放, 需要暂停后使用,NET_IN_PLAYER_STEP_FRAME
  67152. NET_PLAYER_OPERATE_GET_STATE, // 取当前回放状态,NET_IN_PLAYER_GET_STATE
  67153. NET_PLAYER_OPERATE_GET_TIME, // 获取当前回放时间,NET_IN_PLAYER_GET_TIME与NET_OUT_PLAYER_GET_TIME
  67154. NET_PLAYER_OPERATE_GET_SPEED, // 获取播放速度,NET_IN_PLAYER_GET_SPEED与NET_OUT_PLAYER_GET_SPEED
  67155. NET_PLAYER_OPERATE_SET_SPEED, // 设置播放速度,NET_IN_PLAYER_SET_SPEED
  67156. NET_PLAYER_OPERATE_GET_VOLUME, // 获取音量,NET_IN_PLAYER_GET_VOLUME与NET_OUT_PLAYER_GET_VOLUME
  67157. NET_PLAYER_OPERATE_SET_VOLUME, // 设置音量,NET_IN_PLAYER_SET_VOLUME
  67158. NET_PLAYER_OPERATE_GET_PLAYLIST, // 获取文件列表,NET_IN_PLAYER_GET_PLAYLIST与NET_OUT_PLAYER_GET_PLAYLIST
  67159. NET_PLAYER_OPERATE_GET_PLAYLIST_TS, // 获取当前文件列表全部时间段信息,NET_IN_PLAYER_GET_PLAYLIST_TS与NET_OUT_PLAYER_GET_PLAYLIST_TS
  67160. }NET_PLAYER_OPERATE_TYPE;
  67161. ///@brief 播放条件
  67162. typedef struct tagNET_PLAYER_OPEN_CONDITION
  67163. {
  67164. DWORD dwSize;
  67165. char szDevice[DH_DEV_ID_LEN]; // 指明远端的设备
  67166. int nChannel; // 通道号
  67167. NET_TIME stuStartTime; // 起始时间
  67168. NET_TIME stuEndTime; // 结束时间
  67169. NET_STREAM_TYPE emStreamType; // 码流类型
  67170. int nEventNum; // 事件类型个数
  67171. int nEvent[MAX_IVS_EVENT_NUM]; // 事件类型
  67172. }NET_PLAYER_OPEN_CONDITION;
  67173. ///@brief 窗口码流发送模式
  67174. typedef enum tagNET_EM_SPLIT_TRANS_MODE
  67175. {
  67176. NET_EM_SPLIT_TRANS_DIRECT, // 直连
  67177. NET_EM_SPLIT_TRANS_TRANSFER, // 转发
  67178. } NET_EM_SPLIT_TRANS_MODE;
  67179. ///@brief 矩阵前端设备连接方式
  67180. typedef enum tagNET_EM_SPLIT_CONNECT_TYPE
  67181. {
  67182. NET_EM_SPLIT_CONNECT_TCP, // tcp
  67183. NET_EM_SPLIT_CONNECT_UDP, // udp
  67184. } NET_EM_SPLIT_CONNECT_TYPE;
  67185. ///@brief 打开播放器输入参数, 对应 NET_PLAYER_OPERATE_OPEN
  67186. typedef struct tagNET_IN_PLAYER_OPEN
  67187. {
  67188. DWORD dwSize;
  67189. LLONG lPlayerID; // 播放实例ID
  67190. const char* pszDevice; // 指明从本地还是远端取录像, 为null代表从本地取录像,
  67191. // bDeviceInfo为FALSE时有效
  67192. // 如果是从远端设备取,需要保持与NET_PLAYER_OPEN_CONDITION的szDevice一致
  67193. NET_PLAYER_OPEN_CONDITION stuCondition; // 查询条件
  67194. BOOL bDeviceInfo; // 表示stuDeviceInfo是否有效
  67195. DH_REMOTE_DEVICE stuDeviceInfo; // 设备信息, bDeviceInfo为TRUE时deviceInfo有效
  67196. NET_EM_SPLIT_TRANS_MODE emTransferMode; // 窗口码流发送模式
  67197. NET_EM_SPLIT_CONNECT_TYPE emConnectType; // 矩阵前端设备连接类型, 码流发送模式为转发模式下有效, 直连模式下采用默认拉流方式
  67198. EM_SRC_PUSHSTREAM_TYPE emPushStream; // 推流方式的码流类型,码流发送模式为转发模式, 并且连接类型为TCP或者UDP时有效
  67199. }NET_IN_PLAYER_OPEN;
  67200. ///@brief 打开播放器输出参数, 对应 NET_PLAYER_OPERATE_OPEN
  67201. typedef struct tagNET_OUT_PLAYER_OPEN
  67202. {
  67203. DWORD dwSize;
  67204. }NET_OUT_PLAYER_OPEN;
  67205. ///@brief 关闭播放器输入参数, 对应 NET_PLAYER_OPERATE_CLOSE
  67206. typedef struct tagNET_IN_PLAYER_CLOSE
  67207. {
  67208. DWORD dwSize;
  67209. LLONG lPlayerID; // 播放实例ID
  67210. }NET_IN_PLAYER_CLOSE;
  67211. ///@brief 关闭播放器输出参数, 对应 NET_PLAYER_OPERATE_CLOSE
  67212. typedef struct tagNET_OUT_PLAYER_CLOSE
  67213. {
  67214. DWORD dwSize;
  67215. }NET_OUT_PLAYER_CLOSE;
  67216. ///@brief 开始播放输入参数, 对应 NET_PLAYER_OPERATE_START
  67217. typedef struct tagNET_IN_PLAYER_START
  67218. {
  67219. DWORD dwSize;
  67220. LLONG lPlayerID; // 播放实例ID
  67221. }NET_IN_PLAYER_START;
  67222. ///@brief 开始播放输出参数, 对应 NET_PLAYER_OPERATE_START
  67223. typedef struct tagNET_OUT_PLAYER_START
  67224. {
  67225. DWORD dwSize;
  67226. }NET_OUT_PLAYER_START;
  67227. ///@brief 停止播放输入参数, 对应 NET_PLAYER_OPERATE_STOP
  67228. typedef struct tagNET_IN_PLAYER_STOP
  67229. {
  67230. DWORD dwSize;
  67231. LLONG lPlayerID; // 播放实例ID
  67232. }NET_IN_PLAYER_STOP;
  67233. ///@brief 停止播放输出参数, 对应 NET_PLAYER_OPERATE_STOP
  67234. typedef struct tagNET_OUT_PLAYER_STOP
  67235. {
  67236. DWORD dwSize;
  67237. }NET_OUT_PLAYER_STOP;
  67238. ///@brief 暂停/恢复播放输入参数, 对应 NET_PLAYER_OPERATE_PAUSE
  67239. typedef struct tagNET_IN_PLAYER_PAUSE
  67240. {
  67241. DWORD dwSize;
  67242. LLONG lPlayerID; // 播放实例ID
  67243. BOOL bPause; // 是否暂停, TRUE-暂停播放, FALSE-恢复播放
  67244. }NET_IN_PLAYER_PAUSE;
  67245. ///@brief 暂停/恢复播放输出参数, 对应 NET_PLAYER_OPERATE_PAUSE
  67246. typedef struct tagNET_OUT_PLAYER_PAUSE
  67247. {
  67248. DWORD dwSize;
  67249. }NET_OUT_PLAYER_PAUSE;
  67250. ///@brief 跳转到指定时间播放输入参数, 对应 NET_PLAYER_OPERATE_SEEK_TIME
  67251. typedef struct tagNET_IN_PLAYER_SEEK_TIME
  67252. {
  67253. DWORD dwSize;
  67254. LLONG lPlayerID; // 播放实例ID
  67255. NET_TIME stuTime; // 跳转时间
  67256. }NET_IN_PLAYER_SEEK_TIME;
  67257. ///@brief 跳转到指定时间播放输出参数, 对应 NET_PLAYER_OPERATE_SEEK_TIME
  67258. typedef struct tagNET_OUT_PLAYER_SEEK_TIME
  67259. {
  67260. DWORD dwSize;
  67261. }NET_OUT_PLAYER_SEEK_TIME;
  67262. ///@brief 单帧播放输入参数, 对应 NET_PLAYER_OPERATE_STEP_FRAME
  67263. typedef struct tagNET_IN_PLAYER_STEP_FRAME
  67264. {
  67265. DWORD dwSize;
  67266. LLONG lPlayerID; // 播放实例ID
  67267. BOOL bForward; // 是否正向, TRUE-正向, FALSE-反向
  67268. }NET_IN_PLAYER_STEP_FRAME;
  67269. ///@brief 单帧播放输出参数, 对应 NET_PLAYER_OPERATE_STEP_FRAME
  67270. typedef struct tagNET_OUT_PLAYER_STEP_FRAME
  67271. {
  67272. DWORD dwSize;
  67273. }NET_OUT_PLAYER_STEP_FRAME;
  67274. ///@brief 播放状态
  67275. typedef enum tagNET_PLAYER_STATE
  67276. {
  67277. NET_PLAYER_STATE_UNKNOWN, // 未知
  67278. NET_PLAYER_STATE_ERROR, // 有错误发生
  67279. NET_PLAYER_STATE_READING, // 就绪, 可以开启回放
  67280. NET_PLAYER_STATE_STANDBY, // 当前文件回放停止, 只能从头开始重新回放
  67281. NET_PLAYER_STATE_RUNNING, // 运行中
  67282. NET_PLAYER_STATE_PAUSED, // 已暂停, 可以从暂停点继续回放
  67283. NET_PLAYER_STATE_CLOSED, // 已关闭, 无法播放, 必须重新open进入Reading状态后才能回放
  67284. }NET_PLAYER_STATE;
  67285. ///@brief 查询播放状态输入参数, 对应 NET_PLAYER_OPERATE_GET_STATE
  67286. typedef struct tagNET_IN_PLAYER_GET_STATE
  67287. {
  67288. DWORD dwSize;
  67289. LLONG lPlayerID; // 播放实例ID
  67290. }NET_IN_PLAYER_GET_STATE;
  67291. ///@brief 查询播放状态输出参数, 对应 NET_PLAYER_OPERATE_GET_STATE
  67292. typedef struct tagNET_OUT_PLAYER_GET_STATE
  67293. {
  67294. DWORD dwSize;
  67295. NET_PLAYER_STATE emState; // 状态
  67296. }NET_OUT_PLAYER_GET_STATE;
  67297. ///@brief 获取当前回放时间输入参数, 对应 NET_PLAYER_OPERATE_GET_TIME
  67298. typedef struct tagNET_IN_PLAYER_GET_TIME
  67299. {
  67300. DWORD dwSize;
  67301. LLONG lPlayerID; // 播放实例ID
  67302. }NET_IN_PLAYER_GET_TIME;
  67303. ///@brief 获取当前回放时间输出参数, 对应 NET_PLAYER_OPERATE_GET_TIME
  67304. typedef struct tagNET_OUT_PLAYER_GET_TIME
  67305. {
  67306. DWORD dwSize;
  67307. NET_TIME stuTime; // 当前播放时间
  67308. }NET_OUT_PLAYER_GET_TIME;
  67309. ///@brief 获取播放速度输入参数, 对应 NET_PLAYER_OPERATE_GET_SPEED
  67310. typedef struct tagNET_IN_PLAYER_GET_SPEED
  67311. {
  67312. DWORD dwSize;
  67313. LLONG lPlayerID; // 播放实例ID
  67314. }NET_IN_PLAYER_GET_SPEED;
  67315. ///@brief 获取播放速度输出参数, 对应 NET_PLAYER_OPERATE_GET_SPEED
  67316. typedef struct tagNET_OUT_PLAYER_GET_SPEED
  67317. {
  67318. DWORD dwSize;
  67319. float fSpeed; // 播放速度, >0正向播放, <0方向播放
  67320. // 绝对值表示速度, =1正常速度, >1快放, <1慢放
  67321. }NET_OUT_PLAYER_GET_SPEED;
  67322. ///@brief 设置播放速度输入参数, 对应 NET_PLAYER_OPERATE_SET_SPEED
  67323. typedef struct tagNET_IN_PLAYER_SET_SPEED
  67324. {
  67325. DWORD dwSize;
  67326. LLONG lPlayerID; // 播放实例ID
  67327. float fSpeed; // 播放速度, >0正向播放, <0方向播放
  67328. // 绝对值表示速度, =1正常速度, >1快放, <1慢放
  67329. }NET_IN_PLAYER_SET_SPEED;
  67330. ///@brief 设置播放速度输出参数, 对应 NET_PLAYER_OPERATE_SET_SPEED
  67331. typedef struct tagNET_OUT_PLAYER_SET_SPPED
  67332. {
  67333. DWORD dwSize;
  67334. }NET_OUT_PLAYER_SET_SPEED;
  67335. ///@brief 获取播放音量输入参数, 对应 NET_PLAYER_OPERATE_GET_VOLUME
  67336. typedef struct tagNET_IN_PLAYER_GET_VOLUME
  67337. {
  67338. DWORD dwSize;
  67339. LLONG lPlayerID; // 播放实例ID
  67340. }NET_IN_PLAYER_GET_VOLUME;
  67341. ///@brief 获取播放音量输出参数, 对应 NET_PLAYER_OPERATE_GET_VOLUME
  67342. typedef struct tagNET_OUT_PLAYER_GET_VOLUME
  67343. {
  67344. DWORD dwSize;
  67345. int nVolume; // 播放音量, 0~100
  67346. }NET_OUT_PLAYER_GET_VOLUME;
  67347. ///@brief 设置播放音量输入参数, 对应 NET_PLAYER_OPERATE_SET_VOLUME
  67348. typedef struct tagNET_IN_PLAYER_SET_VOLUME
  67349. {
  67350. DWORD dwSize;
  67351. LLONG lPlayerID; // 播放实例ID
  67352. int nVolume; // 播放音量, 0~100
  67353. }NET_IN_PLAYER_SET_VOLUME;
  67354. ///@brief 设置播放音量输出参数, 对应 NET_PLAYER_OPERATE_SET_VOLUME
  67355. typedef struct tagNET_OUT_PLAYER_SET_VOLUME
  67356. {
  67357. DWORD dwSize;
  67358. }NET_OUT_PLAYER_SET_VOLUME;
  67359. ///@brief 播放列表信息
  67360. typedef struct tagNET_PLAYER_PLAYLIST
  67361. {
  67362. DWORD dwSize;
  67363. char szFilePath[MAX_PATH]; // 文件路径, 与Url二者选一
  67364. char szUrl[MAX_PATH]; // URL, 与FilePath二者选一
  67365. DH_DEVICE_PROTOCOL emUrlProtocol; // URL协议类型
  67366. NET_TIME stuStartTime; // 起始时间
  67367. NET_TIME stuEndTime; // 结束时间
  67368. }NET_PLAYER_PLAYLIST;
  67369. ///@brief 获取当前播放列表输入参数, 对应 NET_PLAYER_OPERATE_GET_PLAYLIST
  67370. typedef struct tagNET_IN_PLAYER_GET_PLAYLIST
  67371. {
  67372. DWORD dwSize;
  67373. LLONG lPlayerID; // 播放实例ID
  67374. NET_TIME stuStartTime; // 起始时间
  67375. NET_TIME stuEndTime; // 结束时间
  67376. int nLimit; // 查询的文件数上限, 0表示无上限
  67377. }NET_IN_PLAYER_GET_PLAYLIST;
  67378. ///@brief 获取当前播放列表输出参数, 对应 NET_PLAYER_OPERATE_GET_PLAYLIST
  67379. typedef struct tagNET_OUT_PLAYER_GET_PLAYLIST
  67380. {
  67381. DWORD dwSize;
  67382. NET_PLAYER_PLAYLIST* pstuPlayLists; // 播放列表, 用户分配内存
  67383. int nMaxPlayListCount; // 最大播放列表数量, 用户填写
  67384. int nRetPlayListCount; // 返回播放列表数量
  67385. }NET_OUT_PLAYER_GET_PLAYLIST;
  67386. ///@brief 获取当前文件列表全部时间段信息输入参数, 对应 NET_PLAYER_OPERATE_GET_PLAYLIST_TS
  67387. typedef struct tagNET_IN_PLAYER_GET_PLAYLIST_TS
  67388. {
  67389. DWORD dwSize;
  67390. LLONG lPlayerID; // 播放实例ID
  67391. }NET_IN_PLAYER_GET_PLAYLIST_TS;
  67392. ///@brief 当前回放列表的时间段信息
  67393. typedef struct tagNET_PLAYLIST_TIMESECTION
  67394. {
  67395. DWORD dwSize;
  67396. int nEvent; // 录像事件类型, 目前有
  67397. // EVENT_ALARM_COMMON, EVENT_ALARM_VIDEOBLIND, EVENT_ALARM_VIDEOLOSS,
  67398. // EVENT_ALARM_MOTIONDETECT, EVENT_ALARM_LOCALALARM
  67399. LPDH_TSECT pstuTSs; // 时间段信息
  67400. DWORD unMaxTS; // 时间段最大个数
  67401. DWORD unRetTS; // 实际返回的时间段个数
  67402. }NET_PLAYLIST_TIMESECTION;
  67403. ///@brief 获取当前文件列表全部时间段信息输出参数, 对应 NET_PLAYER_OPERATE_GET_PLAYLIST_TS
  67404. typedef struct tagNET_OUT_PLAYER_GET_PLAYLIST_TS
  67405. {
  67406. DWORD dwSize;
  67407. DWORD dwEventNum; // 录像类型数量
  67408. NET_PLAYLIST_TIMESECTION stuTS[MAX_IVS_EVENT_NUM]; // 当前回放列表的时间段信息
  67409. }NET_OUT_PLAYER_GET_PLAYLIST_TS;
  67410. ///@brief 分割窗口播放操作,pInParam与pOutParam内存由用户申请释放,内存大小参照emType对应的结构体
  67411. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateSplitPlayer(LLONG lLoginID, NET_PLAYER_OPERATE_TYPE emType, void* pInParam, void* pOutParam, int nWaitTime);
  67412. ///@brief 分隔窗口播放器回放状态类型
  67413. typedef enum tagEM_SPLIT_PLAYER_STATUS
  67414. {
  67415. EM_SPLIT_PLAYER_STATUS_UNKNOWN, // 未知状态
  67416. EM_SPLIT_PLAYER_STATUS_FILE_CHANGED, // 码流源文件已切换
  67417. EM_SPLIT_PLAYER_STATUS_STATE_CHANGED, // 状态变更
  67418. EM_SPLIT_PLAYER_STATUS_FILELIST_CHANGED, // 码流文件列表已切换
  67419. }EM_SPLIT_PLAYER_STATUS;
  67420. ///@brief 分隔窗口播放器回放状态
  67421. typedef struct tagNET_SPLIT_PLAYER_STATE
  67422. {
  67423. EM_SPLIT_PLAYER_STATUS emStatus; // 状态
  67424. char szReserved[508]; // 保留字节
  67425. } NET_SPLIT_PLAYER_STATE;
  67426. ///@brief CLIENT_AttachSplitPlayerState()回调函数原形
  67427. typedef void (CALLBACK *fPlayerStateCallBack) (LLONG lLoginID, LLONG lAttachHandle, const NET_SPLIT_PLAYER_STATE *pInfo, int nInfoLen, LDWORD dwUser);
  67428. ///@brief 订阅分隔窗口播放器回放状态输入参数
  67429. typedef struct tagNET_IN_ATTACH_PLAYER_STATE
  67430. {
  67431. DWORD dwSize;
  67432. LLONG lPlayerID; // 播放实例ID
  67433. fPlayerStateCallBack cbNotify; // 状态回调
  67434. LDWORD dwUser;
  67435. }NET_IN_ATTACH_PLAYER_STATE;
  67436. ///@brief 订阅分隔窗口播放器回放状态输出参数
  67437. typedef struct tagNET_OUT_ATTACH_PLAYER_STATE
  67438. {
  67439. DWORD dwSize;
  67440. }NET_OUT_ATTACH_PLAYER_STATE;
  67441. ///@brief 订阅分隔窗口播放器回放状态
  67442. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSplitPlayerState(LLONG lLoginID, const NET_IN_ATTACH_PLAYER_STATE* pInParam, NET_OUT_ATTACH_PLAYER_STATE* pOutParam, int nWaitTime);
  67443. ///@brief 退订分隔窗口播放器回放状态
  67444. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSplitPlayerState(LLONG hAttachHandle);
  67445. ///@brief 分隔窗口播放器回放进度
  67446. typedef struct tagNET_SPLIT_PLAYER_PROCESS
  67447. {
  67448. double dbProcess; // 进度
  67449. NET_TIME stuTime; // 正在回放的时间点
  67450. char szReserved[512]; // 保留字节
  67451. } NET_SPLIT_PLAYER_PROCESS;
  67452. ///@brief CLIENT_AttachSplitPlayerProcess()回调函数原形
  67453. typedef void (CALLBACK *fPlayerProcessCallBack) (LLONG lLoginID, LLONG lAttachHandle, const NET_SPLIT_PLAYER_PROCESS *pInfo, int nInfoLen, LDWORD dwUser);
  67454. ///@brief 订阅分隔窗口播放器回放进度输入参数
  67455. typedef struct tagNET_IN_ATTACH_PLAYER_PROCESS
  67456. {
  67457. DWORD dwSize;
  67458. LLONG lPlayerID; // 播放实例ID
  67459. fPlayerProcessCallBack cbNotify; // 进度回调
  67460. LDWORD dwUser;
  67461. }NET_IN_ATTACH_PLAYER_PROCESS;
  67462. ///@brief 订阅分隔窗口播放器回放进度输出参数
  67463. typedef struct tagNET_OUT_ATTACH_PLAYER_PROCESS
  67464. {
  67465. DWORD dwSize;
  67466. }NET_OUT_ATTACH_PLAYER_PROCESS;
  67467. ///@brief 订阅分隔窗口播放器回放进度
  67468. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSplitPlayerProcess(LLONG lLoginID, const NET_IN_ATTACH_PLAYER_PROCESS* pInParam, NET_OUT_ATTACH_PLAYER_PROCESS* pOutParam, int nWaitTime);
  67469. ///@brief 退订分隔窗口播放器回放进度
  67470. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSplitPlayerProcess(LLONG hAttachHandle);
  67471. ///@brief NET_ACCESS_LOCK_VER 入参
  67472. typedef struct tagNET_ACCESS_LOCK_VER_IN
  67473. {
  67474. int nChannel; // 通道号
  67475. char reserved[128]; // 保留
  67476. } NET_ACCESS_LOCK_VER_IN;
  67477. ///@brief NET_ACCESS_LOCK_VER 出参
  67478. typedef struct tagNET_ACCESS_LOCK_VER_OUT
  67479. {
  67480. char szVersion[32]; // 版本
  67481. NET_TIME stuTime; // 时间
  67482. char reserved[512]; // 保留
  67483. } NET_ACCESS_LOCK_VER_OUT;
  67484. ///@brief 门锁版本号, CLIENT_QueryDevState 查询类型 DH_DEVSTATE_ACCESS_LOCK_VER
  67485. typedef struct tagNET_ACCESS_LOCK_VER
  67486. {
  67487. DWORD dwSize;
  67488. NET_ACCESS_LOCK_VER_IN stuIn; // 入参
  67489. NET_ACCESS_LOCK_VER_OUT stuOut; // 出参
  67490. } NET_ACCESS_LOCK_VER;
  67491. //////////////////////////////// 电视墙控制 //////////////////////////////////////
  67492. ///@brief 电源控制,pInParam与pOutParam内存由用户申请释放
  67493. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PowerControl(LLONG lLoginID, const DH_IN_WM_POWER_CTRL* pInParam, DH_OUT_WM_POWER_CTRL* pOutParam, int nWaitTime = 1000);
  67494. ///@brief 设置显示模式,pInParam与pOutParam内存由用户申请释放
  67495. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDisplayMode(LLONG lLoginID, const DH_IN_WM_SET_DISPLAY_MODE* pInParam, DH_OUT_WM_SET_DISPLAY_MODE* pOutParam, int nWaitTime = 1000);
  67496. ///@brief 获取显示模式,pInParam与pOutParam内存由用户申请释放
  67497. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDisplayMode(LLONG lLoginID, const DH_IN_WM_GET_DISPLAY_MODE* pInParam, DH_OUT_WM_GET_DISPLAY_MODE* pOutParam, int nWaitTime = 1000);
  67498. ///@brief 载入预案,pInParam与pOutParam内存由用户申请释放
  67499. CLIENT_NET_API BOOL CALL_METHOD CLIENT_LoadMonitorWallCollection(LLONG lLoginID, const DH_IN_WM_LOAD_COLLECTION* pInParam, DH_OUT_WM_LOAD_COLLECTION* pOutParam, int nWaitTime = 1000);
  67500. ///@brief 保存预案,pInParam与pOutParam内存由用户申请释放
  67501. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SaveMonitorWallCollection(LLONG lLoginID, const DH_IN_WM_SAVE_COLLECTION* pInParam, DH_OUT_WM_SAVE_COLLECTION* pOutParam, int nWaitTime = 1000);
  67502. ///@brief 获取电视墙预案,pInParam与pOutParam内存由用户申请释放
  67503. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMonitorWallCollections(LLONG lLoginID, const DH_IN_WM_GET_COLLECTIONS* pInParam, DH_OUT_WM_GET_COLLECTIONS* pOutParam, int nWaitTime = 1000);
  67504. ///@brief 电视墙预案重命名,pInParam与pOutParam内存由用户申请释放
  67505. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RenameMonitorWallCollection(LLONG lLoginID, const DH_IN_WM_RENAME_COLLECTION* pInParam, DH_OUT_WM_RENAME_COLLECTION* pOutParam, int nWaitTime = 1000);
  67506. ///@brief 获取电视墙场景,pInParam与pOutParam内存由用户申请释放
  67507. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallGetScene(LLONG lLoginID, const DH_IN_MONITORWALL_GET_SCENE* pInParam, DH_OUT_MONITORWALL_GET_SCENE* pOutParam, int nWaitTime = 1000);
  67508. ///@brief 设置电视墙场景,pInParam与pOutParam内存由用户申请释放
  67509. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallSetScene(LLONG lLoginID, const DH_IN_MONITORWALL_SET_SCENE* pInParam, DH_OUT_MONITORWALL_SET_SCENE* pOutParam, int nWaitTime = 1000);
  67510. ///@brief CLIENT_GetCountOfMonitorWallScene接口输入参数(获取电视墙场景的个数)
  67511. typedef struct tagNET_IN_GET_COUNT_MONITORWALL_SCENE
  67512. {
  67513. DWORD dwSize;
  67514. int nMonitorWallID; // 电视墙序号
  67515. } NET_IN_GET_COUNT_MONITORWALL_SCENE;
  67516. ///@brief CLIENT_GetCountOfMonitorWallScene接口输出参数(获取电视墙场景的个数)
  67517. typedef struct tagNET_OUT_GET_COUNT_MONITORWALL_SCENE
  67518. {
  67519. DWORD dwSize;
  67520. unsigned int nSplitSceneCount; // 获取到拼接屏场景的个数
  67521. unsigned int nSplitWndCount[300]; // 窗口信息的数组,数组的每个元素表示每个拼接屏场景中的窗口信息的个数
  67522. } NET_OUT_GET_COUNT_MONITORWALL_SCENE;
  67523. ///@brief 获取电视墙场景的个数
  67524. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCountOfMonitorWallScene(LLONG lLoginID, const NET_IN_GET_COUNT_MONITORWALL_SCENE* pInParam, NET_OUT_GET_COUNT_MONITORWALL_SCENE* pOutParam, int nWaitTime);
  67525. ///@brief 获取电视墙显示单元能力集,pInParam与pOutParam内存由用户申请释放
  67526. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallGetAttributeCaps(LLONG lLoginID, const DH_IN_MONITORWALL_GET_ARRT_CAPS* pInParam, DH_OUT_MONITORWALL_GET_ARRT_CAPS* pOutParam, int nWaitTime = 1000);
  67527. ///@brief 电视墙显示单元自动调节,pInParam与pOutParam内存由用户申请释放
  67528. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallAutoAdjust(LLONG lLoginID, const DH_IN_MONITORWALL_AUTO_ADJUST* pInParam, DH_OUT_MONITORWALL_AUTO_ADJUST* pOutParam, int nWaitTime = 1000);
  67529. ///@brief 设置电视墙显示单元属性,pInParam与pOutParam内存由用户申请释放
  67530. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallSetAttribute(LLONG lLoginID, const DH_IN_MONITORWALL_SET_ATTR* pInParam, DH_OUT_MONITORWALL_SET_ATTR* pOutParam, int nWaitTime = 1000);
  67531. ///@brief 设置背光模式,pInParam与pOutParam内存由用户申请释放
  67532. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallSetBackLight(LLONG lLoginID, const DH_IN_MONITORWALL_SET_BACK_LIGHT* pInParam, DH_OUT_MONITORWALL_SET_BACK_LIGHT* pOutParam, int nWaitTime = 1000);
  67533. ///@brief 查询屏幕开关计划,pInParam与pOutParam内存由用户申请释放
  67534. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallGetPowerSchedule(LLONG lLoginID, const NET_IN_MW_GET_POWER_SCHEDULE* pInParam, NET_OUT_MW_GET_POWER_SCHEDULE* pOutParam, int nWaitTime);
  67535. ///@brief 设置屏幕开关计划,pInParam与pOutParam内存由用户申请释放
  67536. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallSetPowerSchedule(LLONG lLoginID, const NET_IN_MW_SET_POWER_SCHEDULE* pInParam, NET_OUT_MW_SET_POWER_SCHEDULE* pOutParam, int nWaitTime);
  67537. ///@brief 查询屏幕控制参数,pInParam与pOutParam内存由用户申请释放
  67538. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallGetScrnCtrlParam(LLONG lLoginID, const NET_IN_MW_GET_SCRN_CTRL_PARAM* pInParam, NET_OUT_MW_GET_SCRN_CTRL_PARAM* pOutParam, int nWaitTime);
  67539. ///@brief 设置屏幕控制参数,pInParam与pOutParam内存由用户申请释放
  67540. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallSetScrnCtrlParam(LLONG lLoginID, const NET_IN_MW_SET_SCRN_CTRL_PARAM* pInParam, NET_OUT_MW_SET_SCRN_CTRL_PARAM* pOutParam, int nWaitTime);
  67541. ///@brief 查询屏幕和窗口背景颜色,pInParam与pOutParam内存由用户申请释放
  67542. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallGetBackgroudColor(LLONG lLoginID, const NET_IN_MW_GET_BACKGROUDND_COLOR* pInParam, NET_OUT_MW_GET_BACKGROUDND_COLOR* pOutParam, int nWaitTime);
  67543. ///@brief 设置屏幕和窗口背景颜色,pInParam与pOutParam内存由用户申请释放
  67544. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallSetBackgroudColor(LLONG lLoginID, const NET_IN_MW_SET_BACKGROUD_COLOR* pInParam, NET_OUT_MW_SET_BACKGROUD_COLOR* pOutParam, int nWaitTime);
  67545. ///@brief 订阅预案轮巡状态,pInParam与pOutParam内存由用户申请释放
  67546. CLIENT_NET_API LLONG CALL_METHOD CLIENT_MonitorWallAttachTour(LLONG lLoginID, const NET_IN_WM_ATTACH_TOUR* pInParam, NET_OUT_WM_ATTACH_TOUR* pOutParam, int nWaitTime);
  67547. ///@brief 取消订阅预案轮巡状态,pInParam与pOutParam内存由用户申请释放
  67548. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallDetachTour(LLONG lAttachHandle);
  67549. ///@brief 电视墙操作,pInParam与pOutParam内存由用户申请释放,大小参照emType对应的结构体
  67550. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateMonitorWall(LLONG lLoginID, NET_MONITORWALL_OPERATE_TYPE emType, void* pInParam, void* pOutParam, int nWaitTime);
  67551. ///@brief 切换显示屏的输入信号类型,pInParam与pOutParam内存由用户申请释放
  67552. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallSwitchDisplaySignal(LLONG lLoginID, const NET_IN_MW_SWITCH_DISPLAY_SIGNAL* pInParam, NET_OUT_MW_SWITCH_DISPLAY_SIGNAL* pOutParam, int nWaitTime);
  67553. ///@brief 获取屏幕窗口解码信息CLIENT_MonitorWallGetWindowInfo入参
  67554. typedef struct tagNET_IN_MW_GET_WINODW_INFO
  67555. {
  67556. DWORD dwSize; //结构体大小
  67557. int nMonitorWallID; //电视墙序号
  67558. const char* pszCompositeID; //拼接屏或者单屏ID
  67559. }NET_IN_MW_GET_WINODW_INFO;
  67560. ///@brief 码流的编码方式
  67561. typedef enum tagEM_NET_ENCODE_COMPRESSION
  67562. {
  67563. EM_NET_ENCODE_COMPRESSION_UNKNOWN, //未知
  67564. EM_NET_ENCODE_COMPRESSION_H264, //H264
  67565. EM_NET_ENCODE_COMPRESSION_MPEG4, //MPEG4
  67566. EM_NET_ENCODE_COMPRESSION_MJPEG, //MJPEG
  67567. EM_NET_ENCODE_COMPRESSION_SVAC, //SVAC
  67568. EM_NET_ENCODE_COMPRESSION_HIK, //HIK
  67569. EM_NET_ENCODE_COMPRESSION_H265, //H265
  67570. }EM_NET_ENCODE_COMPRESSION;
  67571. ///@brief 解码通道信息
  67572. typedef struct tagNET_MW_GET_WINDOW_INFO
  67573. {
  67574. BOOL bEnable; //窗口使能状态
  67575. NET_VIDEOCHANNEL_STATE emState; //窗口解码状态
  67576. UINT unNetflow; //网络流量(单位:kbps)
  67577. UINT unBitrate; //码率(单位:kbps)
  67578. UINT nFrame; //帧率
  67579. CAPTURE_SIZE emResolution; //分辨率
  67580. UINT unRealTimeFrame; //实时统计的帧率
  67581. EM_NET_ENCODE_COMPRESSION emCompression; //码流的编码方式
  67582. EM_CAPTURE_SIZE_EX emResolutionEx; //分辨率细分
  67583. BYTE byReserved[508]; //预留字节
  67584. }NET_MW_GET_WINDOW_INFO;
  67585. ///@brief 获取屏幕窗口解码信息CLIENT_MonitorWallGetWindowInfo出参
  67586. typedef struct tagNET_OUT_MW_GET_WINDOW_INFO
  67587. {
  67588. DWORD dwSize; //用户使用该结构体时,dwSize 需赋值为 sizeof(NET_OUT_MW_GET_WINDOW_INFO)
  67589. int nVideoInfoNum; //用户需要获取的解码通道信息个数,从0开始获取,用户指定
  67590. NET_MW_GET_WINDOW_INFO* pNetVideoChannelInfo; //解码通道信息列表,用户申请空间,用户申请列表个数和nVideoInfoNum一致,申请内存大小为sizeof(NET_MW_GET_WINDOW_INFO)*nVideoInfoNum
  67591. int nRetVideoInfoNum; //返回实际获取到的解码通道信息个数,SDK返回
  67592. }NET_OUT_MW_GET_WINDOW_INFO;
  67593. ///@brief 获取电视墙上屏幕窗口解码信息,pInParam与pOutParam内存由用户申请释放
  67594. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MonitorWallGetWindowInfo(LLONG lLoginID, const NET_IN_MW_GET_WINODW_INFO* pInParam, NET_OUT_MW_GET_WINDOW_INFO* pOutParam,int nWaitTime);
  67595. ///////////////////////////////////////////////////////////////////////////////////////////////////
  67596. /////////////全景拼接服务器相关接口 start ///////////////////////////////////////////////
  67597. /////////////////////////////////////////////////// ///////////////////////////////////////////////
  67598. ///@brief 全景拼接分组信息
  67599. typedef struct tagPANO_COMPOSITE_GROUP_INFO
  67600. {
  67601. char szGroupName[64]; // 全景拼接组名称
  67602. /*以下行数和列数的乘积需大于1小于65*/
  67603. int nRow; // 行数
  67604. int nColumn; // 列数
  67605. int nEncChannel; // 所关联的编码通道号, 可通过CLIENT_QueryMatrixCardInfo 接口获取
  67606. BYTE byReserved[1028]; //预留字节
  67607. } PANO_COMPOSITE_GROUP_INFO;
  67608. ///@brief 创建全景拼接分组 输入参数
  67609. typedef struct tagNET_IN_ADD_PANO_COMPOSITE_GROUP
  67610. {
  67611. DWORD dwSize; // 结构体大小
  67612. BYTE byReserved[4]; // 字节对齐
  67613. PANO_COMPOSITE_GROUP_INFO stuPanoCompositeGroup; // 全景拼接组信息
  67614. } NET_IN_ADD_PANO_COMPOSITE_GROUP;
  67615. ///@brief 创建全景拼接分组 输出参数
  67616. typedef struct tagNET_OUT_ADD_PANO_COMPOSITE_GROUP
  67617. {
  67618. DWORD dwSize; // 结构体大小
  67619. BYTE byReserved[4]; // 字节对齐
  67620. char szGroupID[32]; // 组ID
  67621. } NET_OUT_ADD_PANO_COMPOSITE_GROUP;
  67622. ///@brief 删除全景拼接分组 输入参数
  67623. typedef struct tagNET_IN_REMOVE_PANO_COMPOSITE_GROUP
  67624. {
  67625. DWORD dwSize; // 结构体大小
  67626. UINT nGroupNum; // 要删除的组个数
  67627. char szGroupIdList[16][32]; // 要删除的组ID列表
  67628. } NET_IN_REMOVE_PANO_COMPOSITE_GROUP;
  67629. ///@brief 删除全景拼接分组 输出参数
  67630. typedef struct tagNET_OUT_REMOVE_PANO_COMPOSITE_GROUP
  67631. {
  67632. DWORD dwSize; // 结构体大小
  67633. } NET_OUT_REMOVE_PANO_COMPOSITE_GROUP;
  67634. ///@brief 修改全景拼接分组输入参数
  67635. typedef struct tagNET_IN_MODIFY_PANO_COMPOSITE_GROUP
  67636. {
  67637. DWORD dwSize; // 结构体大小
  67638. BYTE byReserved[4]; // 字节对齐
  67639. char szGroupID[32]; // 组ID
  67640. PANO_COMPOSITE_GROUP_INFO stuPanoCompositeGroup; // 全景拼接组信息
  67641. } NET_IN_MODIFY_PANO_COMPOSITE_GROUP;
  67642. ///@brief 修改全景拼接分组输出参数
  67643. typedef struct tagNET_OUT_MODIFY_PANO_COMPOSITE_GROUP
  67644. {
  67645. DWORD dwSize; // 结构体大小
  67646. } NET_OUT_MODIFY_PANO_COMPOSITE_GROUP;
  67647. ///@brief 获取所有全景拼接分组信息输入参数
  67648. typedef struct tagNET_IN_GET_ALL_PANO_COMPOSITE_GROUP
  67649. {
  67650. DWORD dwSize; // 结构体大小
  67651. } NET_IN_GET_ALL_PANO_COMPOSITE_GROUP;
  67652. ///@brief 全景拼接分组列表
  67653. typedef struct tagPANO_COMPOSITE_GROUP_LIST_INFO
  67654. {
  67655. char szGroupID[32]; // 组ID
  67656. PANO_COMPOSITE_GROUP_INFO stuPanoCompositeGroup; // 全景拼接组信息
  67657. BYTE byReserved[1024]; //预留字节
  67658. } PANO_COMPOSITE_GROUP_LIST_INFO;
  67659. ///@brief 获取所有全景拼接分组信息输出参数
  67660. typedef struct tagNET_OUT_GET_ALL_PANO_COMPOSITE_GROUP
  67661. {
  67662. DWORD dwSize; // 结构体大小
  67663. UINT nGroupNum; // 全景拼接组个数
  67664. PANO_COMPOSITE_GROUP_LIST_INFO stuGroupInfoList[16]; // 全景拼接组列表
  67665. } NET_OUT_GET_ALL_PANO_COMPOSITE_GROUP;
  67666. ///@brief 显示源视频码流类型
  67667. typedef enum tagEM_SOURCE_STREAM_TYPE
  67668. {
  67669. EM_SOURCE_STREAM_UNKNOWN = -1, // 未知
  67670. EM_SOURCE_STREAM_MAIN, // 主码流
  67671. EM_SOURCE_STREAM_EXTRA1, // 辅码流1
  67672. EM_SOURCE_STREAM_EXTRA2, // 辅码流2
  67673. EM_SOURCE_STREAM_EXTRA3, // 辅码流3
  67674. EM_SOURCE_STREAM_AUTO, // 自动选择合适码流
  67675. EM_SOURCE_STREAM_PREVIEW, // 预览码流
  67676. } EM_SOURCE_STREAM_TYPE;
  67677. ///@brief 显示源设备信息
  67678. typedef struct tagNET_SOURCE_DEVICE_INFO
  67679. {
  67680. int nDefinition; // 清晰度, 0-标清, 1-高清
  67681. DH_DEVICE_PROTOCOL emProtocol; // 协议类型
  67682. char szIp[32]; // IP, 空表示没有设置
  67683. char szUser[64]; // 用户名
  67684. char szPwd[64]; // 密码
  67685. int nPort; // 端口
  67686. int nVideoInputChannelNum; // 视频输入通道数
  67687. int nAudioInputChannelNum; // 音频输入通道数
  67688. DWORD dwHttpPort; // Http端口号, 0-65535
  67689. DWORD dwRtspPort; // Rtsp端口号, 0-65535
  67690. int nHint; // 0-普通视频源, 1-报警视频源
  67691. char szDevClass[DH_DEV_TYPE_LEN]; // 设备类型, 如IPC, DVR, NVR等
  67692. char szDevType[DH_DEV_TYPE_LEN]; // 设备具体型号, 如IPC-HF3300
  67693. char szMainStreamUrl[MAX_PATH]; // 主码流url地址
  67694. BYTE byReserved[1028]; //预留字节
  67695. } NET_SOURCE_DEVICE_INFO;
  67696. ///@brief 全景拼接分组视频源信息
  67697. typedef struct tagPANO_COMPOSITE_GROUP_SOURCE_INFO
  67698. {
  67699. UINT nChannelID; // 视频通道号
  67700. EM_SOURCE_STREAM_TYPE emStreamType; // 视频码流类型
  67701. char szDeviceID[64]; // 设备ID, 与stuDeviceInfo 互斥
  67702. NET_SOURCE_DEVICE_INFO stuDeviceInfo; // 显示源设备信息, szDeviceID 为空时有效
  67703. BYTE byReserved[1024]; //预留字节
  67704. } PANO_COMPOSITE_GROUP_SOURCE_INFO;
  67705. ///@brief 设置全景拼接分组视频源输入参数
  67706. typedef struct tagNET_IN_SET_PANO_COMPOSITE_GROUP_SOURCE
  67707. {
  67708. DWORD dwSize; // 结构体大小
  67709. char szGroupID[32]; // 分组ID
  67710. UINT nGroupSourceNum; // 分组视频源个数, 与PANO_COMPOSITE_GROUP_INFO中行列数乘积相同,布局从左到右,从上到下
  67711. PANO_COMPOSITE_GROUP_SOURCE_INFO *pstGroupSourceInfo; // 分组视频源信息, 资源由用户申请和释放, 申请大小为nGroupSourceNum * sizeof(PANO_COMPOSITE_GROUP_SOURCE_INFO)
  67712. } NET_IN_SET_PANO_COMPOSITE_GROUP_SOURCE;
  67713. ///@brief 设置全景拼接分组视频源输出参数
  67714. typedef struct tagNET_OUT_SET_PANO_COMPOSITE_GROUP_SOURCE
  67715. {
  67716. DWORD dwSize; // 结构体大小
  67717. } NET_OUT_SET_PANO_COMPOSITE_GROUP_SOURCE;
  67718. ///@brief 获取全景拼接分组视频源输入参数
  67719. typedef struct tagNET_IN_GET_PANO_COMPOSITE_GROUP_SOURCE
  67720. {
  67721. DWORD dwSize; // 结构体大小
  67722. } NET_IN_GET_PANO_COMPOSITE_GROUP_SOURCE;
  67723. ///@brief 全景拼接分组视频源信息列表
  67724. typedef struct tagNET_COMPOSITE_GROUP_SOURCE_LIST
  67725. {
  67726. char szGroupID[32]; // 分组ID
  67727. UINT nMaxGroupSrcNum; // 分组视频源个数, 最大支持64个
  67728. UINT nGroupSourceNum; // 实际返回的分组视频源个数
  67729. PANO_COMPOSITE_GROUP_SOURCE_INFO *pstGroupSourceInfo; // 分组视频源信息
  67730. BYTE byReserved[1024]; //预留字节
  67731. } NET_COMPOSITE_GROUP_SOURCE_LIST;
  67732. ///@brief 获取全景拼接分组视频源输出参数
  67733. typedef struct tagNET_OUT_GET_PANO_COMPOSITE_GROUP_SOURCE
  67734. {
  67735. DWORD dwSize; // 结构体大小
  67736. UINT nGroupSourceListNum; // 全景拼接分组视频源信息列表个数
  67737. NET_COMPOSITE_GROUP_SOURCE_LIST stuGroupSourceList[16]; // 全景拼接分组视频源信息列表
  67738. } NET_OUT_GET_PANO_COMPOSITE_GROUP_SOURCE;
  67739. ///@brief 全景拼接分组操作类型
  67740. typedef enum tagEM_PANOCOMPOSITE_GROUP_OPERATE_TYPE
  67741. {
  67742. EM_PANOCOMPOSITE_GROUP_OPERATE_ADD, // 创建全景拼接分组, 对应NET_IN_ADD_PANO_COMPOSITE_GROUP 和 NET_OUT_ADD_PANO_COMPOSITE_GROUP
  67743. EM_PANOCOMPOSITE_GROUP_OPERATE_REMOVE, // 删除全景拼接分组, 对应NET_IN_REMOVE_PANO_COMPOSITE_GROUP 和 NET_OUT_REMOVE_PANO_COMPOSITE_GROUP
  67744. EM_PANOCOMPOSITE_GROUP_OPERATE_MODIFY, // 修改全景拼接分组, 对应NET_IN_MODIFY_PANO_COMPOSITE_GROUP 和 NET_OUT_MODIFY_PANO_COMPOSITE_GROUP
  67745. EM_PANOCOMPOSITE_GROUP_OPERATE_GET_ALL, // 获取所有全景拼接分组信息, 对应NET_IN_GET_ALL_PANO_COMPOSITE_GROUP 和 NET_OUT_GET_ALL_PANO_COMPOSITE_GROUP
  67746. EM_PANOCOMPOSITE_GROUP_OPERATE_SET_SOURCE, // 设置全景拼接分组视频源, 对应NET_IN_SET_PANO_COMPOSITE_GROUP_SOURCE 和 NET_OUT_SET_PANO_COMPOSITE_GROUP_SOURCE
  67747. EM_PANOCOMPOSITE_GROUP_OPERATE_GET_SOURCE, // 获取全景拼接分组视频源, 对应NET_IN_GET_PANO_COMPOSITE_GROUP_SOURCE 和 NET_OUT_GET_PANO_COMPOSITE_GROUP_SOURCE
  67748. } EM_PANOCOMPOSITE_GROUP_OPERATE_TYPE;
  67749. ///@brief 全景拼接分组操作函数
  67750. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperatePanoCompositeGroup(LLONG lLoginID, EM_PANOCOMPOSITE_GROUP_OPERATE_TYPE emOperateType, void* pInParam, void* pOutParam, int nWaitTime);
  67751. ///////////////////////////////////////////////////////////////////////////////////////////////////
  67752. /////////////全景拼接服务器相关接口 end ////////////////////////////////////////////////
  67753. /////////////////////////////////////////////////// ///////////////////////////////////////////////
  67754. //////////////////////////////////////////////////////////////////////////////////////////////////
  67755. ///////////////////////////// LED接口////////////////////////////////////////////////////
  67756. /////////////////////////////////////////////////////////////////////////////////////////////////
  67757. ///@brief 设置LED输出画面控制命令类型
  67758. typedef enum tagEM_LED_SET_CMD_TYPE
  67759. {
  67760. EM_LED_SET_CMD_DISPLAY_ENABLE, // 开关屏命令
  67761. EM_LED_SET_CMD_DISPLAY_LOCK, // 画面锁定命令
  67762. EM_LED_SET_CMD_DISPLAY_TEST, // 画面测试命令
  67763. } EM_LED_SET_CMD_TYPE;
  67764. ///@brief LED输出画面类型
  67765. typedef enum tagEM_LED_IMAGE_TYPE
  67766. {
  67767. EM_LED_IMAGE_UNKNOWN = -1, // 未知
  67768. EM_LED_IMAGE_NORMAL, // 正常视频
  67769. EM_LED_IMAGE_RED, // 红色屏
  67770. EM_LED_IMAGE_GREEN, // 绿色屏
  67771. EM_LED_IMAGE_BLUE, // 蓝色屏
  67772. EM_LED_IMAGE_WHITE, // 白色屏
  67773. EM_LED_IMAGE_BLACK, // 黑色屏
  67774. EM_LED_IMAGE_TRANSVERSE, // 横条纹
  67775. EM_LED_IMAGE_VERTICAL, // 竖条纹
  67776. EM_LED_IMAGE_DIAGONAL, // 斜条纹
  67777. EM_LED_IMAGE_256GREY, // 256灰度屏
  67778. EM_LED_IMAGE_AGINGSCREEN, // 老化屏
  67779. } EM_LED_IMAGE_TYPE;
  67780. ///@brief CLIENT_SetLedDisplayCtrlParams接口输入参数
  67781. typedef struct tagNET_IN_LED_SET_DISPLAY_CTRL_PARAMS
  67782. {
  67783. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为该结构体大小
  67784. int nChannel; // 通道号
  67785. EM_LED_SET_CMD_TYPE emCmdType; // 设置LED输出画面控制命令类型
  67786. BOOL bDisplayEnable; // 开关屏使能,emCmdType为 EM_LED_SET_CMD_DISPLAY_ENABLE 时有效
  67787. BOOL bDisplayBlack; // 屏幕黑屏使能, emCmdType 为 EM_LED_SET_CMD_DISPLAY_ENABLE 时有效
  67788. BOOL bDisplayLock; // 画面锁定使能, emCmdType 为 EM_LED_SET_CMD_DISPLAY_LOCK 时有效
  67789. EM_LED_IMAGE_TYPE emImageType; // 输出画面类型, emCmdType 为 EM_LED_SET_CMD_DISPLAY_TEST 时有效
  67790. } NET_IN_LED_SET_DISPLAY_CTRL_PARAMS;
  67791. ///@brief CLIENT_SetLedDisplayCtrlParams接口输出参数
  67792. typedef struct tagNET_OUT_LED_SET_DISPLAY_CTRL_PARAMS
  67793. {
  67794. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为该结构体大小
  67795. } NET_OUT_LED_SET_DISPLAY_CTRL_PARAMS;
  67796. ///@brief CLIENT_GetLedDisplayCtrlParams接口输入参数
  67797. typedef struct tagNET_IN_LED_GET_DISPLAY_CTRL_PARAMS
  67798. {
  67799. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为该结构体大小
  67800. int nChannel; // 通道号
  67801. } NET_IN_LED_GET_DISPLAY_CTRL_PARAMS;
  67802. ///@brief CLIENT_GetLedDisplayCtrlParams接口输出参数
  67803. typedef struct tagNET_OUT_LED_GET_DISPLAY_CTRL_PARAMS
  67804. {
  67805. DWORD dwSize; // 用户使用该结构体时,dwSize 需赋值为该结构体大小
  67806. BOOL bDisplayEnable; // 开关屏使能
  67807. BOOL bDisplayBlack; // 屏幕黑屏使能
  67808. BOOL bDisplayLock; // 画面锁定使能
  67809. EM_LED_IMAGE_TYPE emImageType; // 输出画面类型
  67810. } NET_OUT_LED_GET_DISPLAY_CTRL_PARAMS;
  67811. ///@brief 设置LED输出画面控制参数 (pInParam和pOutParam资源由用户申请和释放)
  67812. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetLedDisplayCtrlParams(LLONG lLoginID, const NET_IN_LED_SET_DISPLAY_CTRL_PARAMS* pInParam, NET_OUT_LED_SET_DISPLAY_CTRL_PARAMS* pOutParam,int nWaitTime);
  67813. ///@brief 获取LED输出画面控制参数 (pInParam和pOutParam资源由用户申请和释放)
  67814. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetLedDisplayCtrlParams(LLONG lLoginID, const NET_IN_LED_GET_DISPLAY_CTRL_PARAMS* pInParam, NET_OUT_LED_GET_DISPLAY_CTRL_PARAMS* pOutParam,int nWaitTime);
  67815. ///////////////////////////////////////////////////////////////////////////////////////////////////
  67816. //////////////////////////////////////////////////////////////////////////////////////////////////
  67817. ///////////////////////////// 诱导屏接口////////////////////////////////////////////////////
  67818. /////////////////////////////////////////////////////////////////////////////////////////////////
  67819. #define MAX_PLAYDATES_COUNT 32 // 最大日期个数
  67820. #define MAX_SCREENTIME_COUNT 8 // 诱导屏最大开关屏时间个数
  67821. #define MAX_WINDOWS_COUNT 16 // 诱导屏最大窗口个数
  67822. #define MAX_ELEMENTS_COUNT 8 // 诱导屏窗口支持的最大元素个数
  67823. #define MAX_ELEMENTTEXT_LENGTH 512 // 文本元素最大文本长度
  67824. #define MAX_NOTE_COUNT 4 // 诱导屏窗口元素注释信息最大个数
  67825. #define MAX_PROGRAMMES_COUNT 32 // 最多支持的节目个数
  67826. ///@brief 日期类型
  67827. typedef enum tagEM_SCREEN_DATE_TYPE
  67828. {
  67829. EM_SCREEN_DATE_UNKNOWN, // 未知
  67830. EM_SCREEN_DATE_MONTH, // 每月
  67831. EM_SCREEN_DATE_WEEK, // 每周
  67832. EM_SCREEN_DATE_DAY, // 每日
  67833. } EM_SCREEN_DATE_TYPE;
  67834. ///@brief 节目时间信息
  67835. typedef struct tagNET_PROGRAMME_TIME_INFO
  67836. {
  67837. DWORD dwHour; // 时
  67838. DWORD dwMinute; // 分
  67839. DWORD dwSecond; // 秒
  67840. } NET_PROGRAMME_TIME_INFO;
  67841. ///@brief 开关屏时间信息
  67842. typedef struct tagNET_SCREEN_TIME_INFO
  67843. {
  67844. BOOL bEnable; // 是否启用
  67845. EM_SCREEN_DATE_TYPE emDateType; // 开关屏日期类型
  67846. UINT nDateCount; // 开关屏日期个数'
  67847. UINT nPlayDates[MAX_PLAYDATES_COUNT]; // 开关屏日期
  67848. NET_PROGRAMME_TIME_INFO stuOpenTime; // 开屏时间
  67849. NET_PROGRAMME_TIME_INFO stuCloseTime; // 关屏时间
  67850. BYTE byReserved[128]; // 保留
  67851. } NET_SCREEN_TIME_INFO;
  67852. ///@brief 诱导屏窗口坐标信息
  67853. typedef struct NET_GUIDESCREEN_WINDOW_RECT_INFO
  67854. {
  67855. char szWindowID[MAX_COMMON_STRING_64]; // 窗口ID
  67856. NET_RECT stuRect; // 窗口坐标
  67857. UINT nWindowBright; // 诱导屏窗口亮度,单独配置某个子屏的亮度,填0时以整屏亮度为准
  67858. BYTE byReserved[132]; // 保留
  67859. } NET_GUIDESCREEN_WINDOW_RECT_INFO;
  67860. ///@brief 显示屏开关状态
  67861. typedef enum tagEM_SCREEN_STATUS_TYPE
  67862. {
  67863. EM_SCREEN_STATUS_UNKNOWN, // 未知
  67864. EM_SCREEN_STATUS_ON, // 开
  67865. EM_SCREEN_STATUS_OFF, // 关
  67866. } EM_SCREEN_STATUS_TYPE;
  67867. #define MAX_MONTH_COUNT 12 // 一年中的月数
  67868. ///@brief 诱导屏配置日出日落时间
  67869. typedef struct tagNET_SUN_RISE_SET_TIME
  67870. {
  67871. /*日出日落时间采用24小时制, 当不配置, 即都为0 的情况时采用默认时间*/
  67872. UINT nSunrise; // 日出时间, 默认上午6 时
  67873. UINT nSunset; // 日落时间, 默认下午18 时
  67874. BYTE byReserved[32]; // 保留字节
  67875. } NET_SUN_RISE_SET_TIME;
  67876. ///@brief 诱导屏自动调节屏幕亮度信息
  67877. typedef struct tagNET_GUIDESCREEN_AUTO_BRIGHT
  67878. {
  67879. BOOL bEnable; // 是否使能自动亮度配置
  67880. UINT nLightBright; // 白天的亮度
  67881. UINT nDarkBright; // 夜间的亮度
  67882. NET_SUN_RISE_SET_TIME stuSunTime[MAX_MONTH_COUNT]; // 日出日落时间
  67883. BYTE byReserved[128]; // 保留字节
  67884. } NET_GUIDESCREEN_AUTO_BRIGHT;
  67885. ///@brief 诱导屏属性配置信息
  67886. typedef struct tagNET_GUIDESCREEN_ATTRIBUTE_INFO
  67887. {
  67888. DWORD dwSize;
  67889. char szScreenID[MAX_COMMON_STRING_64]; // 屏ID
  67890. EM_SCREEN_STATUS_TYPE emStatus; // 显示屏开关状态
  67891. BOOL bIsForeverOpen; // 是否永久开屏
  67892. UINT nScreenTime; // 开关屏时间个数
  67893. NET_SCREEN_TIME_INFO stuScreenTime[MAX_SCREENTIME_COUNT]; // 开关屏时间数组
  67894. UINT nBright; // 显示屏亮度, 1-100
  67895. UINT nContrast; // 显示屏对比度, 1-100
  67896. UINT nSaturation; // 显示屏饱和度, 1-100
  67897. UINT nVolume; // 屏幕整体音量
  67898. UINT nWidth; // 宽度
  67899. UINT nHeight; // 高度
  67900. UINT nWindowsCount; // 窗口个数
  67901. NET_GUIDESCREEN_WINDOW_RECT_INFO stuWindows[MAX_WINDOWS_COUNT]; // 窗口信息
  67902. NET_GUIDESCREEN_AUTO_BRIGHT stuAutoBright; // 诱导屏自动调节屏幕亮度信息
  67903. BYTE byReserved[512]; // 保留字节
  67904. } NET_GUIDESCREEN_ATTRIBUTE_INFO;
  67905. ///@brief 设置诱导屏屏幕配置信息输入参数
  67906. typedef struct tagNET_IN_SET_GUIDESCREEN_CFG
  67907. {
  67908. DWORD dwSize;
  67909. UINT nScreenCount; // 诱导屏属性配置信息个数, 值由用户指定
  67910. NET_GUIDESCREEN_ATTRIBUTE_INFO *pstGuideScreenCfg; // 诱导屏属性配置信息, 内存由用户维护,
  67911. // 大小为nScreenCount 个NET_GUIDEESCREEN_ATTRIBUTE_INFO
  67912. } NET_IN_SET_GUIDESCREEN_CFG;
  67913. ///@brief 设置诱导屏屏幕配置信息输出参数
  67914. typedef struct tagNET_OUT_SET_GUIDESCREEN_CFG
  67915. {
  67916. DWORD dwSize;
  67917. } NET_OUT_SET_GUIDESCREEN_CFG;
  67918. ///@brief: 设置诱导屏配置信息接口
  67919. ///@param[in]: LLONG :lLoginID // 登陆句柄
  67920. ///@param[in]: NET_IN_SET_GUIDESCREEN_CFG* :pInParam // 接口输入参数
  67921. ///@param[out]: NET_OUT_SET_GUIDESCREEN_CFG* :pstOutPqram // 接口输出参数
  67922. ///@param[in]: int :nWaitTime // 等待超时时间
  67923. ///@return: BOOL
  67924. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetGuideScreenCfg(LLONG lLoginID, const NET_IN_SET_GUIDESCREEN_CFG* pInParam, NET_OUT_SET_GUIDESCREEN_CFG *pstOutPqram, const int nWaitTime);
  67925. ///@brief 通过诱导屏ID 获取诱导屏配置信息输入参数
  67926. typedef struct tagNET_IN_GET_GUIDESCREEN_CFG_BYID
  67927. {
  67928. DWORD dwSize;
  67929. char szScreenID[MAX_COMMON_STRING_64]; // 屏ID
  67930. } NET_IN_GET_GUIDESCREEN_CFG_BYID;
  67931. ///@brief 通过诱导屏ID 获取诱导屏配置信息输出参数
  67932. typedef struct tagNET_OUT_GET_GUIDESCREEN_CFG_BYID
  67933. {
  67934. DWORD dwSize;
  67935. NET_GUIDESCREEN_ATTRIBUTE_INFO stuGuideScreenCfg; // 诱导屏属性信息
  67936. } NET_OUT_GET_GUIDESCREEN_CFG_BYID;
  67937. ///@brief: 通过诱导屏ID 获取诱导屏配置信息
  67938. ///@param[in]: LLONG :lLoginID // 登陆句柄
  67939. ///@param[in]: NET_IN_GET_GUIDESCREEN_CFG_BYID* :pInParam // 输入参数
  67940. ///@param[out]: NET_OUT_GET_GUIDESCREEN_CFG_BYID* :pOutParam // 输出参数
  67941. ///@param[in]: int :nWaitTime // 等待超时时间
  67942. ///@return: BOOL
  67943. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetOneGuideScreenCfgById(
  67944. LLONG lLoginID, const NET_IN_GET_GUIDESCREEN_CFG_BYID *pInParam,
  67945. NET_OUT_GET_GUIDESCREEN_CFG_BYID* pOutParam, const int nWaitTime);
  67946. ///@brief 获取所有诱导屏配置信息输入参数
  67947. typedef struct tagNET_IN_GET_ALL_GUIDESCREEN_CFG
  67948. {
  67949. DWORD dwSize;
  67950. } NET_IN_GET_ALL_GUIDESCREEN_CFG;
  67951. ///@brief 获取所有诱导屏配置信息输出参数
  67952. typedef struct tagNET_OUT_GET_ALL_GUIDESCREEN_CFG
  67953. {
  67954. DWORD dwSize;
  67955. UINT nMaxScreen; // 最大诱导屏个数, 值由用户指定
  67956. UINT nRetScreen; // 实际返回的诱导屏个数
  67957. NET_GUIDESCREEN_ATTRIBUTE_INFO *pstGuideScreenCfg; // 用于存放获取到的诱导屏属性信息, 内存由用户维护
  67958. // 大小为nMaxScreen 个NET_GUIDESCREEN_ATTRIBUTE_INFO
  67959. } NET_OUT_GET_ALL_GUIDESCREEN_CFG;
  67960. ///@brief: 获取所有诱导屏配置信息
  67961. ///@param[in]: LLONG :lLoginID // 登陆句柄
  67962. ///@param[in]: NET_IN_GET_ALL_GUIDESCREEN_CFG* :pInParam // 输入参数
  67963. ///@param[out]: NET_OUT_GET_ALL_GUIDESCREEN_CFG* :pOutParam // 输出参数
  67964. ///@param[in]: int :nWaitTime // 等待超时时间
  67965. ///@return: BOOL
  67966. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAllGuideScreenCfg(
  67967. LLONG lLoginID, const NET_IN_GET_ALL_GUIDESCREEN_CFG *pInParam,
  67968. NET_OUT_GET_ALL_GUIDESCREEN_CFG* pOutParam, const int nWaitTime);
  67969. ///@brief 水平对齐类型
  67970. typedef enum tagEM_HORI_ALIGN_TYPE
  67971. {
  67972. EM_HORI_ALIGN_UNKNOWN, // 未知
  67973. EM_HORI_ALIGN_LEFT, // 左对齐
  67974. EM_HORI_ALIGN_CENTER, // 居中
  67975. EM_HORI_ALIGN_RIGHT, // 右对齐
  67976. } EM_HORI_ALIGN_TYPE;
  67977. ///@brief 垂直对齐类型
  67978. typedef enum tagEM_VERT_ALIGN_TYPE
  67979. {
  67980. EM_VERT_ALIGN_UNKNOWN, // 未知
  67981. EM_VERT_ALIGN_UP, // 上对齐
  67982. EM_VERT_ALIGN_CENTER, // 居中
  67983. EM_VERT_ALIGN_DOWN, // 下对齐
  67984. } EM_VERT_ALIGN_TYPE;
  67985. ///@brief 切入(切出) 风格
  67986. typedef enum tagEM_PIC_STYLE_TYPE
  67987. {
  67988. EM_PIC_STYLE_UNKNOWN, // 未知
  67989. EM_PIC_STYLE_DEFAULT, // 默认
  67990. EM_PIC_STYLE_UP, // 上移
  67991. EM_PIC_STYLE_DOWN, // 下移
  67992. EM_PIC_STYLE_LEFT, // 左移
  67993. EM_PIC_STYLE_RIGHT, // 右移
  67994. } EM_PIC_STYLE_TYPE;
  67995. ///@brief 文本信息
  67996. typedef struct tagNET_GUIDESCREEN_TEXT_INFO
  67997. {
  67998. char szContent[MAX_ELEMENTTEXT_LENGTH]; // 文本内容
  67999. UINT nFontSize; // 字体大小
  68000. NET_COLOR_RGBA stuFontColor; // 字体颜色
  68001. char szFontStyle[MAX_COMMON_STRING_32]; // 字体类型
  68002. double dbLineHeight; // 行高
  68003. EM_HORI_ALIGN_TYPE emHoriAlign; // 水平对齐方向
  68004. EM_VERT_ALIGN_TYPE emVertAlign; // 垂直对齐方向
  68005. UINT nPlayTime; // 播放时间, 单位秒
  68006. UINT nPlayCount; // 播放次数
  68007. UINT nStayTime; // 停留间隔(切入切出的间隔时间)单位:s
  68008. EM_PIC_STYLE_TYPE emEnterStyle; // 切入风格
  68009. EM_PIC_STYLE_TYPE emExitStyle; // 切出风格
  68010. BYTE byReserved[128]; // 保留字节
  68011. } NET_GUIDESCREEN_TEXT_INFO;
  68012. ///@brief 诱导屏窗口元素注释信息
  68013. typedef struct tagNET_GUIDESCREEN_NOTE_INFO
  68014. {
  68015. BOOL bEnable; // 是否有效
  68016. NET_GUIDESCREEN_TEXT_INFO stuTextInfo; // 文字注释信息
  68017. NET_RECT stuRect; // 文字注释的坐标
  68018. BYTE byReserved[128]; // 保留字节
  68019. } NET_GUIDESCREEN_NOTE_INFO;
  68020. ///@brief 视频元素信息
  68021. typedef struct tagNET_VIDEO_ELEMENT_INFO
  68022. {
  68023. char szName[MAX_COMMON_STRING_64]; // 素材名称
  68024. BOOL bFillerState; // 是否垫片, 如果两个素材间有时间间隙,没有素材播放,如果设置了垫片则播放垫片
  68025. char szPath[MAX_COMMON_STRING_128]; // 文件地址
  68026. UINT nPlayCount; // 播放次数
  68027. UINT nNote; // 注释信息个数
  68028. NET_GUIDESCREEN_NOTE_INFO stuNoteInfo[MAX_NOTE_COUNT]; // 注释信息
  68029. BYTE byReserved[128]; // 保留字节
  68030. } NET_VIDEO_ELEMENT_INFO;
  68031. ///@brief 图片类型
  68032. typedef enum tagEM_PICTURE_TYPE
  68033. {
  68034. EM_PICTURE_TYPE_UNKNOWN = -1, // 未知
  68035. EM_PICTURE_TYPE_ORIGINAL, // 原始图片
  68036. EM_PICTURE_TYPE_COMPOSITE, // 合成图片
  68037. } EM_PICTURE_TYPE;
  68038. ///@brief 图片元素信息
  68039. typedef struct tagNET_PICTURE_ELEMENT_INFO
  68040. {
  68041. char szName[MAX_COMMON_STRING_64]; // 素材名称
  68042. BOOL bFillerState; // 是否垫片, 如果两个素材间有时间间隙,没有素材播放,如果设置了垫片则播放垫片
  68043. char szPath[MAX_COMMON_STRING_128]; // 图片文件地址
  68044. UINT nPlayTime; // 播放时间, 单位秒
  68045. UINT nPlayCount; // 播放次数
  68046. UINT nDiaphaneity; // 透明度, 0-100
  68047. UINT nStayTime; // 停留时间, 单位秒
  68048. EM_PIC_STYLE_TYPE emEnterStyle; // 切入风格
  68049. EM_PIC_STYLE_TYPE emExitStyle; // 切出风格
  68050. UINT nNote; // 注释信息个数
  68051. NET_GUIDESCREEN_NOTE_INFO stuNoteInfo[MAX_NOTE_COUNT]; // 注释信息
  68052. EM_PICTURE_TYPE emPictureType; // 图片类型
  68053. BYTE byReserved[124]; // 保留字节
  68054. } NET_PICTURE_ELEMENT_INFO;
  68055. ///@brief 诱导屏窗口文本元素信息
  68056. typedef struct tagNET_TEXT_ELEMENT_INFO
  68057. {
  68058. char szName[MAX_COMMON_STRING_64]; // 素材名称
  68059. BOOL bFillerState; // 是否垫片, 如果两个素材间有时间间隙,没有素材播放,如果设置了垫片则播放垫片
  68060. NET_GUIDESCREEN_TEXT_INFO stuElementsText; // 文本元素信息
  68061. UINT nNote; // 注释信息个数
  68062. NET_GUIDESCREEN_NOTE_INFO stuNoteInfo[MAX_NOTE_COUNT]; // 注释信息
  68063. BYTE byReserved[128]; // 保留字节
  68064. } NET_TEXT_ELEMENT_INFO;
  68065. ///@brief 诱导屏窗口占位符元素信息
  68066. typedef struct tagNET_PLACEHOLDER_ELEMENT_INFO
  68067. {
  68068. char szName[MAX_COMMON_STRING_64]; // 素材名称
  68069. BOOL bFillerState; // 是否垫片, 如果两个素材间有时间间隙,没有素材播放,如果设置了垫片则播放垫片
  68070. UINT nNote; // 注释信息个数
  68071. NET_GUIDESCREEN_NOTE_INFO stuNoteInfo[MAX_NOTE_COUNT]; // 注释信息
  68072. BYTE byReserved[128]; // 保留字节
  68073. } NET_PLACEHOLDER_ELEMENT_INFO;
  68074. ///@brief 抓拍类型
  68075. typedef enum tagEM_CAPTURE_TYPE
  68076. {
  68077. EM_CAPTURE_UNKNOWN, // 未知
  68078. EM_CAPTURE_VIDEO, // 视频
  68079. EM_CAPTURE_PICTURE, // 图片
  68080. } EM_CAPTURE_TYPE;
  68081. ///@brief osd叠加信息
  68082. typedef struct tagNET_CAPTURE_OSD_INFO
  68083. {
  68084. BOOL bEnable; // 叠加使能
  68085. NET_COLOR_RGBA stuFontColor; // 文字颜色
  68086. NET_COLOR_RGBA stuBackGroundColor; // 背景颜色
  68087. UINT nFontSize; // 字体大小
  68088. char szContent[MAX_COMMON_STRING_512]; // OSD内容
  68089. BYTE byReserved[1024]; // 保留字节
  68090. } NET_CAPTURE_OSD_INFO;
  68091. ///@brief 抓拍元素信息
  68092. typedef struct tagNET_CAPTURE_ELEMENT_INFO
  68093. {
  68094. char szName[MAX_COMMON_STRING_64]; // 素材名称
  68095. BOOL bFillerState; // 是否垫片, 如果两个素材间有时间间隙,没有素材播放,如果设置了垫片则播放垫片
  68096. char szUserName[DH_USER_NAME_LEN_EX]; // 用户名
  68097. char szPassWord[DH_USER_PSW_LEN_EX]; // 密码
  68098. char szIP[DH_MAX_IPADDR_LEN_EX]; // IP地址
  68099. UINT nPort; // 端口号
  68100. UINT nChannel; // 通道号
  68101. EM_CAPTURE_TYPE emCaptureType; // 抓拍类型
  68102. UINT nPlayTime; // 播放时间, 单位秒
  68103. UINT nNote; // 注释信息个数
  68104. NET_GUIDESCREEN_NOTE_INFO stuNoteInfo[MAX_NOTE_COUNT]; // 注释信息
  68105. NET_CAPTURE_OSD_INFO *pstOsdInfo; // OSD叠加信息, 由用户申请和释放内存,若为NULL,则不下发(获取)OSD信息
  68106. BYTE byReserved[124]; // 保留字节
  68107. } NET_CAPTURE_ELEMENT_INFO;
  68108. ///@brief PDF元素信息
  68109. typedef struct tagNET_PDF_ELEMENT_INFO
  68110. {
  68111. char szName[MAX_COMMON_STRING_64]; // 素材名称
  68112. BOOL bFillerState; // 是否垫片, 如果两个素材间有时间间隙,没有素材播放,如果设置了垫片则播放垫片
  68113. char szPdfPath[MAX_COMMON_STRING_128]; // PDF文件路径
  68114. UINT nPlayTime; // 播放时间, 单位: 秒
  68115. UINT nPlayCount; // 播放次数
  68116. UINT nStayTime; // 停留间隔, 单位: 秒
  68117. EM_PIC_STYLE_TYPE emEnterStyle; // 切入风格
  68118. EM_PIC_STYLE_TYPE emExitStyle; // 切出风格
  68119. UINT nTextNote; // 文字注释信息个数
  68120. NET_GUIDESCREEN_NOTE_INFO stuNoteInfo[MAX_NOTE_COUNT]; // 文字注释信息
  68121. BYTE byReserved[1024]; // 保留字节
  68122. } NET_PDF_ELEMENT_INFO;
  68123. ///@brief 音频元素信息
  68124. typedef struct tagNET_AUDIO_ELEMENT_INFO
  68125. {
  68126. char szName[MAX_COMMON_STRING_64]; // 素材名称
  68127. BOOL bFillerState; // 是否垫片, 如果两个素材间有时间间隙,没有素材播放,如果设置了垫片则播放垫片
  68128. char szAudioPath[MAX_COMMON_STRING_128]; // 音频文件地址
  68129. UINT nPlayCount; // 播放次数
  68130. UINT nTextNote; // 文字注释信息个数
  68131. NET_GUIDESCREEN_NOTE_INFO stuNoteInfo[MAX_NOTE_COUNT]; // 文字注释信息
  68132. BYTE byReserved[1024]; // 保留字节
  68133. } NET_AUDIO_ELEMENT_INFO;
  68134. ///@brief 诱导屏窗口元素类型
  68135. typedef enum tagEM_ELEMENTS_TYPE
  68136. {
  68137. EM_ELEMENTS_UNKNOWN, // 未知
  68138. EM_ELEMENTS_VIDEO, // 视频元素, 对应NET_VIDEO_ELEMENT_INFO
  68139. EM_ELEMENTS_PICTURE, // 图片元素, 对应NET_PICTURE_ELEMENT_INFO
  68140. EM_ELEMENTS_TEXT, // 文本元素, 对应NET_TEXT_ELEMENT_INFO
  68141. EM_ELEMENTS_PLACEHOLDER, // 占位符元素, 对应NET_PLACEHOLDER_ELEMENT_INFO
  68142. EM_ELEMENTS_CAPTURE, // 抓拍元素, 对应NET_CAPTURE_ELEMENT_INFO
  68143. EM_ELEMENTS_PDF, // PDF文档元素, 对应NET_PDF_ELEMENT_INFO
  68144. EM_ELEMENTS_AUDIO, // 音频元素, 对应NET_AUDIO_ELEMENT_INFO
  68145. } EM_ELEMENTS_TYPE;
  68146. ///@brief 窗口轮训周期类型
  68147. typedef enum tagEM_TOURPERIOD_TYPE
  68148. {
  68149. EM_TOURPERIOD_UNKNOWN, // 未知
  68150. EM_TOURPERIOD_PROGRAMME, // 节目周期
  68151. EM_TOURPERIOD_PLAN, // 计划周期
  68152. EM_TOURPERIOD_CUSTOM, // 自定义周期
  68153. } EM_TOURPERIOD_TYPE;
  68154. ///@brief 窗口元素通有信息
  68155. typedef struct tagNET_ELEMENT_COMMON_INFO
  68156. {
  68157. EM_ELEMENTS_TYPE emElementsType; // 窗口元素类型
  68158. BYTE byReserved[128]; // 保留字节
  68159. } NET_ELEMENT_COMMON_INFO;
  68160. ///@brief 诱导屏窗口信息
  68161. typedef struct tagNET_GUIDESCREEN_WINDOW_INFO
  68162. {
  68163. char szWindowID[MAX_COMMON_STRING_64]; // 窗口ID
  68164. int nVolume; // 窗口音量,相对整屏音量的百分比
  68165. NET_COLOR_RGBA stuColor; // 窗口背景颜色
  68166. UINT nDiaphaneity; // 窗口背景透明度0-100
  68167. EM_TOURPERIOD_TYPE emTourPeriodType; // 窗口轮训类型
  68168. UINT nTourPeriodTime; // 自定义轮训时间,单位秒, 轮训类型为自定义轮训时有效
  68169. BOOL bAutoPlay; // 预览自动播放,Video元素有效
  68170. BOOL bLoopPlay; // 预览循环播放,Video元素有效
  68171. UINT nElementsCount; // 诱导屏窗口元素个数
  68172. char* pstElementsBuf; // 诱导屏窗口元素信息缓存区, 根据类型对应不同的结构体
  68173. // 填充多个元素信息, 每个元素信息内容为NET_ELEMENT_COMMON_INFO + 元素类型对应的结构体
  68174. UINT nBufLen; // 诱导屏窗口元素信息缓存区大小
  68175. BYTE byReserved[128]; // 保留字节
  68176. } NET_GUIDESCREEN_WINDOW_INFO;
  68177. ///@brief 诱导屏普通节目信息
  68178. typedef struct tagNET_ORDINARY_INFO
  68179. {
  68180. BOOL bTempletState; // 节目是否保存为模板
  68181. char szDescription[MAX_COMMON_STRING_128]; // 节目描述信息
  68182. UINT nWhnCount; // 诱导屏窗口个数
  68183. NET_GUIDESCREEN_WINDOW_INFO stuWindowsInfo[MAX_WINDOWS_COUNT]; // 诱导屏窗口信息
  68184. BYTE byReserved[128]; // 保留字节
  68185. } NET_ORDINARY_INFO;
  68186. ///@brief 诱导屏节目配置信息
  68187. typedef struct tagNET_PROGRAMME_INFO
  68188. {
  68189. char szProgrammeName[MAX_COMMON_STRING_64]; // 节目名称
  68190. char szProgrammeID[MAX_COMMON_STRING_64]; // 节目ID, 添加节目的时候无需填写, 由设备生成
  68191. BOOL bEnable; // 节目是否启用
  68192. NET_ORDINARY_INFO stuOrdinaryInfo; // 普通节目信息
  68193. BYTE byReserved[512]; // 保留字节
  68194. } NET_PROGRAMME_INFO;
  68195. ///@brief 通过节目ID 获取节目信息输入参数
  68196. typedef struct tagNET_IN_GET_PROGRAMME_BYID
  68197. {
  68198. DWORD dwSize;
  68199. char szProgrammeID[MAX_COMMON_STRING_64]; // 节目ID
  68200. } NET_IN_GET_PROGRAMME_BYID;
  68201. ///@brief 通过节目ID 获取节目信息输出参数
  68202. typedef struct tagNET_OUT_GET_PROGRAMME_BYID
  68203. {
  68204. DWORD dwSize;
  68205. NET_PROGRAMME_INFO stuProgrammeInfo; // 节目配置信息
  68206. } NET_OUT_GET_PROGRAMME_BYID;
  68207. ///@brief: 通过节目ID 获取节目信息
  68208. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68209. ///@param[in]: NET_IN_GET_PROGRAMME_BYID* :pInParam // 输入参数
  68210. ///@param[out]: NET_OUT_GET_PROGRAMME_BYID* :pOutParam // 输出参数
  68211. ///@param[in]: int :nWaitTime // 等待超时时间
  68212. ///@return: BOOL
  68213. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetOneProgrammeById(LLONG lLoginID, const NET_IN_GET_PROGRAMME_BYID *pInParam, NET_OUT_GET_PROGRAMME_BYID *pOutParam, const int nWaitTime);
  68214. ///@brief 获取所有节目信息输入参数
  68215. typedef struct tagNET_IN_GET_ALL_PROGRAMMES
  68216. {
  68217. DWORD dwSize;
  68218. } NET_IN_GET_ALL_PROGRAMMES;
  68219. ///@brief 获取所有节目信息输出参数
  68220. typedef struct tagNET_OUT_GET_ALL_PROGRAMMES
  68221. {
  68222. DWORD dwSize;
  68223. UINT nMaxCnt; // pstProgrammeInfo最大NET_PROGRAMME_INFO 个数
  68224. UINT nRetCnt; // pstProgrammeInfo实际返回的 NET_PROGRAMME_INFO 个数
  68225. NET_PROGRAMME_INFO *pstProgrammeInfo; // 节目配置信息, 内存由用户维护
  68226. } NET_OUT_GET_ALL_PROGRAMMES;
  68227. ///@brief: 获取所有节目信息
  68228. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68229. ///@param[in]: NET_IN_GET_ALL_PROGRAMMES* :pInParam // 输入参数
  68230. ///@param[out]: NET_OUT_GET_ALL_PROGRAMMES* :pOutParam // 输出参数
  68231. ///@param[in]: int :nWaitTime // 等待超时时间
  68232. ///@return: BOOL
  68233. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAllProgrammes(
  68234. LLONG lLoginID, const NET_IN_GET_ALL_PROGRAMMES* pInParam,
  68235. NET_OUT_GET_ALL_PROGRAMMES* pOutParam, const int nWaitTime);
  68236. ///@brief 简要节目信息类型
  68237. typedef enum tagEM_BRIEFLYPROGRAM_TYPE
  68238. {
  68239. EM_BRIEFLYPROGRAM_UNKNOWN, // 未知
  68240. EM_BRIEFLYPROGRAM_BAR, // 广告节目
  68241. EM_BRIEFLYPROGRAM_ORDINARY, // 普通节目
  68242. }EM_BRIEFLYPROGRAM_TYPE;
  68243. ///@brief 节目简要信息
  68244. typedef struct tagNET_BRIEFLY_PROGRAMME_INFO
  68245. {
  68246. char szProgrammeName[MAX_COMMON_STRING_64]; // 节目名称
  68247. char szProgrammeID[MAX_COMMON_STRING_64]; // 节目ID
  68248. EM_BRIEFLYPROGRAM_TYPE emProgrammeType; // 简要节目信息类型
  68249. BOOL bEnable; // 节目是否启用
  68250. BOOL bTempletState; // 节目是否保存为模板
  68251. BYTE byReserved[512]; // 保留字节
  68252. } NET_BRIEFLY_PROGRAMME_INFO;
  68253. ///@brief 获取所有节目的简要信息输入参数
  68254. typedef struct tagNET_IN_GET_ALL_BRIEFLYPROGRAMMES
  68255. {
  68256. DWORD dwSize;
  68257. } NET_IN_GET_ALL_BRIEFLYPROGRAMMES;
  68258. ///@brief 获取所有节目的简要信息输出参数
  68259. typedef struct tagNET_OUT_GET_ALL_BRIEFLYPROGRAMMES
  68260. {
  68261. DWORD dwSize;
  68262. UINT nRetCnt; // 实际返回的个数
  68263. NET_BRIEFLY_PROGRAMME_INFO stuBriProgrammes[MAX_PROGRAMMES_COUNT]; // 节目简要信息
  68264. } NET_OUT_GET_ALL_BRIEFLYPROGRAMMES;
  68265. ///@brief: 获取所有节目的简要信息
  68266. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68267. ///@param[in]: NET_IN_GET_ALL_BRIEFLYPROGRAMMES* :pInParam // 输入参数
  68268. ///@param[out]: NET_OUT_GET_ALL_BRIEFLYPROGRAMMES* :pOutParam // 输出参数
  68269. ///@param[in]: int :nWaitTime // 等待超时时间
  68270. ///@return: BOOL
  68271. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAllBrieflyProgrammes(
  68272. LLONG lLoginID, const NET_IN_GET_ALL_BRIEFLYPROGRAMMES* pInParam,
  68273. NET_OUT_GET_ALL_BRIEFLYPROGRAMMES* pOutParam, const int nWaitTime);
  68274. ///@brief 添加节目信息接口输入参数
  68275. typedef struct tagNET_IN_ADD_ONE_PROGRAMME
  68276. {
  68277. DWORD dwSize;
  68278. NET_PROGRAMME_INFO stuProgrammeInfo; // 节目信息
  68279. } NET_IN_ADD_ONE_PROGRAMME;
  68280. ///@brief 添加节目信息接口输出参数
  68281. typedef struct tagNET_OUT_ADD_ONE_PROGRAMME
  68282. {
  68283. DWORD dwSize;
  68284. char szProgrammeID[MAX_COMMON_STRING_64]; // 节目ID
  68285. } NET_OUT_ADD_ONE_PROGRAMME;
  68286. ///@brief: 添加一个节目信息到诱导屏
  68287. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68288. ///@param[in]: NET_IN_ADD_ONE_PROGRAMME* :pInParam // 输入参数
  68289. ///@param[out]: NET_OUT_ADD_ONE_PROGRAMME* :pOutParam // 输出参数
  68290. ///@param[in]: int :nWaitTime // 等待超时时间
  68291. ///@return: BOOL
  68292. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddOneProgramme(LLONG lLoginID, const NET_IN_ADD_ONE_PROGRAMME* pInParam, NET_OUT_ADD_ONE_PROGRAMME *pOutParam, const int nWaitTime);
  68293. ///@brief 修改节目信息接口输入参数
  68294. typedef struct tagNET_IN_MODIFY_ONE_PROGRAMME
  68295. {
  68296. DWORD dwSize;
  68297. NET_PROGRAMME_INFO stuProgrammeInfo; // 节目信息
  68298. } NET_IN_MODIFY_ONE_PROGRAMME;
  68299. ///@brief 修改节目信息接口输出参数
  68300. typedef struct tagNET_OUT_MODIFY_ONE_PROGRAMME
  68301. {
  68302. DWORD dwSize;
  68303. } NET_OUT_MODIFY_ONE_PROGRAMME;
  68304. ///@brief: 通过节目ID 修改节目
  68305. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68306. ///@param[in]: NET_IN_MODIFY_ONE_PROGRAMME* :pInParam // 输入参数
  68307. ///@param[out]: NET_OUT_MODIFY_ONE_PROGRAMME* :pOutParam // 输出参数
  68308. ///@param[in]: int :nWaitTime // 等待超时时间
  68309. ///@return: BOOL
  68310. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyOneProgrammeByID(LLONG lLoginID, const NET_IN_MODIFY_ONE_PROGRAMME* pInParam, NET_OUT_MODIFY_ONE_PROGRAMME* pOutParam, const int nWaitTime);
  68311. ///@brief 批量删除节目信息接口输入参数
  68312. typedef struct tagNET_IN_DEL_PROGRAMMES
  68313. {
  68314. DWORD dwSize;
  68315. UINT nProgrammeID; // 节目ID个数
  68316. char szProGrammeIdList[MAX_PROGRAMMES_COUNT][MAX_COMMON_STRING_64]; // 需要删除的节目ID列表, 第一个值填"all" 表示删除所有
  68317. } NET_IN_DEL_PROGRAMMES;
  68318. ///@brief 批量删除节目信息接口输出参数
  68319. typedef struct tagNET_OUT_DEL_PROGRAMMES
  68320. {
  68321. DWORD dwSize;
  68322. } NET_OUT_DEL_PROGRAMMES;
  68323. ///@brief: 批量删除节目信息
  68324. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68325. ///@param[in]: NET_IN_DEL_PROGRAMMES* :pInParam // 输入参数
  68326. ///@param[out]: NET_OUT_DEL_PROGRAMMES* :pOutParam // 输出参数
  68327. ///@param[in]: int :nWaitTime // 等待超时时间
  68328. ///@return: BOOL
  68329. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelMultiProgrammesById(
  68330. LLONG lLoginID, const NET_IN_DEL_PROGRAMMES* pInParam,
  68331. NET_OUT_DEL_PROGRAMMES *pOutParam, const int nWaitTime);
  68332. ///@brief 即时节目计划配置信息
  68333. typedef struct tagNET_IMMEDIATELY_PLAN_INFO
  68334. {
  68335. char szPlanName[MAX_COMMON_STRING_64]; // 节目计划名称
  68336. char szPlanID[MAX_COMMON_STRING_64]; // 节目计划ID, 添加计划时无需填写, 由设备生成
  68337. char szSplitScreenID[MAX_COMMON_STRING_64]; // 分屏ID
  68338. BOOL bEnable; // 计划是否启用
  68339. UINT nPlayTime; // 播放时长, 单位 : 分钟
  68340. char szProgrammeName[MAX_COMMON_STRING_64]; // 即时发布的节目名称
  68341. char szProgrammeID[MAX_COMMON_STRING_64]; // 即时发布的节目ID
  68342. char szTemplateType[MAX_COMMON_STRING_64]; // 模板类型, 该协议为解决福州行人闯红灯项目,为定制协议
  68343. BYTE byReserved[448]; // 保留字节
  68344. } NET_IMMEDIATELY_PLAN_INFO;
  68345. ///@brief 节目日期格式
  68346. typedef struct tagNET_PROGRAMME_DATA
  68347. {
  68348. DWORD dwYear; // 年
  68349. DWORD dwMonth; // 月
  68350. DWORD dwDay; // 日
  68351. } NET_PROGRAMME_DATA;
  68352. ///@brief 审核状态
  68353. typedef enum tagEM_REVIES_STATE
  68354. {
  68355. EM_REVIES_UNKNOWN, // 未知
  68356. EM_REVIES_PASS, // 通过
  68357. EM_REVIES_NOTPASS, // 不通过
  68358. } EM_REVIES_STATE;
  68359. ///@brief 节目计划中的节目信息
  68360. typedef struct tagNET_PROGRAMME_OF_PLAN
  68361. {
  68362. char szProgrammeName[MAX_COMMON_STRING_64]; // 节目名称
  68363. char szProgrammeID[MAX_COMMON_STRING_64]; // 节目ID
  68364. BOOL bIsBgProgramme; // 是否背景节目
  68365. NET_PROGRAMME_TIME_INFO stuSatrtTime; // 节目开始时间
  68366. NET_PROGRAMME_TIME_INFO stuEndTime; // 节目结束时间
  68367. BYTE byReserved[128]; // 保留字节
  68368. } NET_PROGRAMME_OF_PLAN;
  68369. ///@brief 定时计划日期类型
  68370. typedef enum tagEM_TIMERPLAN_DATE_TYPE
  68371. {
  68372. EM_TIMERPLAN_DATE_UNKNOWN, // 未知
  68373. EM_TIMERPLAN_DATE_MONTH, // 每月
  68374. EM_TIMERPLAN_DATE_WEEK, // 每周
  68375. EM_TIMERPLAN_DATE_DAY, // 每日
  68376. EM_TIMERPLAN_DATE_CUSTOM, // 自定义
  68377. } EM_TIMERPLAN_DATE_TYPE;
  68378. ///@brief 定时节目计划配置信息
  68379. typedef struct tagNET_TIMER_PLAN_INFO
  68380. {
  68381. char szPlanName[MAX_COMMON_STRING_64]; // 节目计划名称
  68382. char szPlanID[MAX_COMMON_STRING_64]; // 节目计划ID
  68383. char szSplitScreenID[MAX_COMMON_STRING_64]; // 分屏ID
  68384. EM_TIMERPLAN_DATE_TYPE emDataType; // 节目计划日期类型
  68385. UINT nDataCount; // 节目计划日期个数
  68386. UINT nPlayDates[MAX_PLAYDATES_COUNT]; // 节目播放日期列表
  68387. NET_PROGRAMME_DATA stuSatrtDate; // 节目开始日期
  68388. NET_PROGRAMME_DATA stuEndDate; // 节目结束日期
  68389. EM_REVIES_STATE emReviewState; // 审核状态
  68390. char szReviewOpinion[MAX_COMMON_STRING_64]; // 审核意见
  68391. BOOL bOverdue; // 计划是否过期
  68392. UINT nProgrammes; // 节目个数
  68393. NET_PROGRAMME_OF_PLAN stuProgrammes[MAX_PROGRAMMES_COUNT]; // 节目组信息
  68394. BYTE byReserved[512]; // 保留字节
  68395. } NET_TIMER_PLAN_INFO;
  68396. ///@brief 获取所有节目计划输入参数
  68397. typedef struct tagNET_IN_GET_ALL_PROGRAMMEPLANS
  68398. {
  68399. DWORD dwSize;
  68400. } NET_IN_GET_ALL_PROGRAMMEPLANS;
  68401. ///@brief 获取所有节目计划输出参数
  68402. typedef struct tagNET_OUT_GET_ALL_PROGRAMMEPLANS
  68403. {
  68404. DWORD dwSize;
  68405. UINT nMaxPlanCnt; // 即时节目和定时节目计划最大个数, 由用户指定
  68406. UINT nRetImmCnt; // 实际返回的即时节目计划个数
  68407. NET_IMMEDIATELY_PLAN_INFO* pstImmePlan; // 即时节目计划信息
  68408. UINT nRetTimerCnt; // 实际返回的定时节目计划个数
  68409. NET_TIMER_PLAN_INFO* pstTimerPlan; // 定时节目计划信息
  68410. } NET_OUT_GET_ALL_PROGRAMMEPLANS;
  68411. ///@brief: 获取所有节目计划信息
  68412. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68413. ///@param[in]: NET_IN_GET_ALL_PROGRAMMEPLANS* :pInParam // 输入参数
  68414. ///@param[out]: NET_OUT_GET_ALL_PROGRAMMEPLANS* :pOutParam // 输出参数
  68415. ///@param[in]: int :nWaitTime // 等待超时时间
  68416. ///@return: BOOL
  68417. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAllProgrammePlans(
  68418. LLONG lLoginID, const NET_IN_GET_ALL_PROGRAMMEPLANS *pInParam,
  68419. NET_OUT_GET_ALL_PROGRAMMEPLANS *pOutParam, const int nWaitTime);
  68420. ///@brief 节目计划类型
  68421. typedef enum tagEM_PROGRAMMEPLAN_TYPE
  68422. {
  68423. EM_PROGRAMMEPLAN_UNKNOWN, // 未知
  68424. EM_PROGRAMMEPLAN_IMME, // 即时计划
  68425. EM_PROGRAMMEPLAN_TIMER, // 定时计划
  68426. } EM_PROGRAMMEPLAN_TYPE;
  68427. ///@brief 通过节目计划ID 获取节目计划输入参数
  68428. typedef struct tagNET_IN_GET_PROGRAMMEPLAN_BYID
  68429. {
  68430. DWORD dwSize;
  68431. char szPlanID[MAX_COMMON_STRING_64]; // 节目计划ID
  68432. } NET_IN_GET_PROGRAMMEPLAN_BYID;
  68433. ///@brief 通过节目计划ID 获取节目计划输出参数
  68434. typedef struct tagNET_OUT_GET_PROGRAMMEPLAN_BYID
  68435. {
  68436. DWORD dwSize;
  68437. EM_PROGRAMMEPLAN_TYPE emPlanType; // 节目计划类型
  68438. NET_IMMEDIATELY_PLAN_INFO stuImmePlan; // 即时节目计划信息, emPlanType 为EM_PROGRAMMEPLAN_IMME时有效
  68439. NET_TIMER_PLAN_INFO stuTimerPlan; // 定时节目计划信息, emPlanType 为EM_PROGRAMMEPLAN_TIMER时有效
  68440. } NET_OUT_GET_PROGRAMMEPLAN_BYID;
  68441. ///@brief: 通过节目计划ID 获取节目计划
  68442. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68443. ///@param[in]: NET_IN_GET_PROGRAMMEPLAN_BYID* :pInParam // 输入参数
  68444. ///@param[out]: NET_OUT_GET_PROGRAMMEPLAN_BYID* :pOutParam // 输出参数
  68445. ///@param[in]: int :nWaitTime // 等待超时时间
  68446. ///@return: BOOL
  68447. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetOneProgrammePlanByID(
  68448. LLONG lLoginID, NET_IN_GET_PROGRAMMEPLAN_BYID *pInParam,
  68449. NET_OUT_GET_PROGRAMMEPLAN_BYID* pOutParam, const int nWaitTime);
  68450. ///@brief 增加即时节目计划输入参数
  68451. typedef struct tagNET_IN_ADD_IMME_PROGRAMMEPLAN
  68452. {
  68453. DWORD dwSize;
  68454. NET_IMMEDIATELY_PLAN_INFO stuImmePlan; // 即时节目计划信息
  68455. } NET_IN_ADD_IMME_PROGRAMMEPLAN;
  68456. ///@brief 增加定时节目计划输入参数
  68457. typedef struct tagNET_IN_ADD_TIMER_PROGRAMMEPLAN
  68458. {
  68459. DWORD dwSize;
  68460. NET_TIMER_PLAN_INFO stuTimerPlan; // 定时节目计划信息
  68461. } NET_IN_ADD_TIMER_PROGRAMMEPLAN;
  68462. ///@brief 增加节目计划输出参数
  68463. typedef struct tagNET_OUT_ADD_PROGRAMMEPLAN
  68464. {
  68465. DWORD dwSize;
  68466. char szPlanID[MAX_COMMON_STRING_64]; // 节目计划ID
  68467. } NET_OUT_ADD_PROGRAMMEPLAN;
  68468. ///@brief: 增加一个即时节目计划
  68469. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68470. ///@param[in]: NET_IN_ADD_IMME_PROGRAMMEPLAN* :pInParam // 输入参数
  68471. ///@param[out]: NET_OUT_ADD_PROGRAMMEPLAN* :pstOutParam // 输出参数
  68472. ///@param[in]: int :nWaitTime // 等待超时时间
  68473. ///@return: BOOL
  68474. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddOneImmediProgrammePlan(
  68475. LLONG lLoginID, const NET_IN_ADD_IMME_PROGRAMMEPLAN* pInParam,
  68476. NET_OUT_ADD_PROGRAMMEPLAN* pOutParam, const int nWaitTime);
  68477. ///@brief: 增加一个定时节目计划
  68478. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68479. ///@param[in]: NET_IN_ADD_TIMER_PROGRAMMEPLAN* :pInParam // 输入参数
  68480. ///@param[out]: NET_OUT_ADD_PROGRAMMEPLAN* :pOutParam // 输出参数
  68481. ///@param[in]: int :nWaitTime // 等待超时时间
  68482. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddOneTimerProgrammePlan(
  68483. LLONG lLoginID, const NET_IN_ADD_TIMER_PROGRAMMEPLAN* pInParam,
  68484. NET_OUT_ADD_PROGRAMMEPLAN* pOutParam, const int nWaitTime);
  68485. ///@brief 修改即时节目计划输入参数
  68486. typedef struct tagNET_IN_MODIFY_IMME_PROGRAMMEPLAN
  68487. {
  68488. DWORD dwSize;
  68489. NET_IMMEDIATELY_PLAN_INFO stuImmePlan; // 即时节目计划信息
  68490. } NET_IN_MODIFY_IMME_PROGRAMMEPLAN;
  68491. ///@brief 修改即时节目计划输出参数
  68492. typedef struct tagNET_OUT_MODIFY_IMME_PROGRAMMEPLAN
  68493. {
  68494. DWORD dwSize;
  68495. } NET_OUT_MODIFY_IMME_PROGRAMMEPLAN;
  68496. ///@brief: 修改一个即时节目计划
  68497. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68498. ///@param[in]: NET_IN_MODIFY_IMME_PROGRAMMEPLAN* :pInParam // 输入参数
  68499. ///@param[out]: NET_OUT_MODIFY_IMME_PROGRAMMEPLAN* :pOutParam // 输出参数
  68500. ///@param[in]: int :nWaitTime // 等待超时时间
  68501. ///@return: BOOL
  68502. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyOneImmediProgrammePlan(
  68503. LLONG lLoginID, const NET_IN_MODIFY_IMME_PROGRAMMEPLAN* pInParam,
  68504. NET_OUT_MODIFY_IMME_PROGRAMMEPLAN* pOutParam, const int nWaitTime);
  68505. ///@brief 修改定时节目计划输入参数
  68506. typedef struct tagNET_IN_MODIFY_TIMER_PROGRAMMEPLAN
  68507. {
  68508. DWORD dwSize;
  68509. NET_TIMER_PLAN_INFO stuTimerPlan; // 定时节目计划信息
  68510. } NET_IN_MODIFY_TIMER_PROGRAMMEPLAN;
  68511. ///@brief 修改定时节目计划输出参数
  68512. typedef struct tagNET_OUT_MODIFY_TIMER_PROGRAMMEPLAN
  68513. {
  68514. DWORD dwSize;
  68515. } NET_OUT_MODIFY_TIMER_PROGRAMMEPLAN;
  68516. ///@brief: 修改一个定时节目计划
  68517. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68518. ///@param[in]: NET_IN_MODIFY_TIMER_PROGRAMMEPLAN* :pInParam // 输入参数
  68519. ///@param[out]: NET_OUT_MODIFY_TIMER_PROGRAMMEPLAN* :pOutParam // 输出参数
  68520. ///@param[in]: int :nWaitTime // 等待超时时间
  68521. ///@return: BOOL
  68522. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyOneTimerProgrammePlan(
  68523. LLONG lLoginID, const NET_IN_MODIFY_TIMER_PROGRAMMEPLAN* pInParam,
  68524. NET_OUT_MODIFY_TIMER_PROGRAMMEPLAN* pOutParam, const int nWaitTime);
  68525. ///@brief 删除多个节目计划输入参数
  68526. typedef struct tagNET_IN_DEL_PROGRAMMEPLANS
  68527. {
  68528. DWORD dwSize;
  68529. UINT nPlanIDNum; // 节目计划ID个数
  68530. char szPlanID[MAX_PROGRAMMES_COUNT][MAX_COMMON_STRING_64]; // 节目计划ID, 第一个值填"all" 表示删除所有
  68531. } NET_IN_DEL_PROGRAMMEPLANS;
  68532. ///@brief 删除多个节目计划输出参数
  68533. typedef struct tagNET_OUT_DEL_PROGRAMMEPLANS
  68534. {
  68535. DWORD dwSize;
  68536. } NET_OUT_DEL_PROGRAMMEPLANS;
  68537. ///@brief: 删除多个节目计划
  68538. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68539. ///@param[in]: NET_IN_DEL_PROGRAMMEPLANS* :pInParam // 输入参数
  68540. ///@param[out]: NET_OUT_DEL_PROGRAMMEPLANS* :pOutParam // 输出参数
  68541. ///@param[in]: int :nWaitTime // 等待超时时间
  68542. ///@return: BOOL
  68543. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelMultiProgrammePlans(
  68544. LLONG lLoginID, const NET_IN_DEL_PROGRAMMEPLANS* pInParam,
  68545. NET_OUT_DEL_PROGRAMMEPLANS* pOutParam, const int nWaitTime);
  68546. #define MAX_GD_COUNT 170
  68547. ///@brief 光带颜色类型
  68548. typedef enum tagEM_GD_COLOR_TYPE
  68549. {
  68550. EM_GD_COLOR_RED, // 红色
  68551. EM_GD_COLOR_GREEN, // 绿色
  68552. EM_GD_COLOR_YELLOW, // 黄色
  68553. } EM_GD_COLOR_TYPE;
  68554. ///@brief 设置光带状态信息输入参数
  68555. typedef struct tagNET_IN_SET_GD_STATUS
  68556. {
  68557. DWORD dwSize;
  68558. char szScreenID[MAX_COMMON_STRING_64]; // 分屏ID, 即窗口ID
  68559. UINT nGDNum; // 光带总数
  68560. EM_GD_COLOR_TYPE emStatus[MAX_GD_COUNT]; // 光带信息
  68561. } NET_IN_SET_GD_STATUS;
  68562. ///@brief 设置光带状态信息输出参数
  68563. typedef struct tagNET_OUT_SET_GD_STATUS
  68564. {
  68565. DWORD dwSize;
  68566. } NET_OUT_SET_GD_STATUS;
  68567. ///@brief: 设置光带状态信息
  68568. ///@param[in]: LLONG :lLoginID // 登陆句柄
  68569. ///@param[in]: NET_IN_SET_GD_STATUS* :pInParam // 输入参数
  68570. ///@param[in]: NET_OUT_SET_GD_STATUS* :pOutParam // 输出参数
  68571. ///@param[in]: int :nWaitTime // 等待超时时间
  68572. ///@return: BOOL
  68573. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetGuideScreenGDStatus(
  68574. LLONG lLoginID, const NET_IN_SET_GD_STATUS* pInParam,
  68575. NET_OUT_SET_GD_STATUS* pOutParam, const int nWaitTime);
  68576. //////////////////////////////////////////////////////////////////////////////////////////////////
  68577. ////////////// 播放盒接口(节目计划相关接口与诱导屏接口下的节目计划相关接口一致)//////////////////
  68578. ////////////// 获取所有节目简要信息与批量删除节目信息 同上方交通诱导屏中对应接口/////////////////
  68579. /////////////////////////////////////////////////////////////////////////////////////////////////
  68580. ///@brief LOGO节目信息
  68581. typedef struct tagNET_PROGRAM_LOGO_INFO
  68582. {
  68583. char szLogoPath[MAX_COMMON_STRING_128]; // Logo路径
  68584. NET_RECT stuBackgroundRect; // Logo位置
  68585. UINT nDiaphaneity; // 透明度, 0-100
  68586. BYTE byReserved[128]; // 保留字节
  68587. } NET_PROGRAM_LOGO_INFO;
  68588. ///@brief 广告条节目信息
  68589. typedef struct tagNET_PROGRAM_BAR_INFO
  68590. {
  68591. char szContent[MAX_COMMON_STRING_512]; // 广告内容
  68592. NET_COLOR_RGBA stuFontColor; // 字体颜色
  68593. UINT nFontSize; // 字体大小
  68594. char szFontStyle[MAX_COMMON_STRING_32]; // 字体类型
  68595. UINT nPlaySpeed; // 播放速度
  68596. NET_RECT stuBackgroundRect; // 广告条位置
  68597. NET_COLOR_RGBA stuBackColor; // 广告条背景颜色
  68598. UINT nDiaphaneity; // 透明度, 0-100
  68599. BYTE byReserved[128]; // 保留字节
  68600. } NET_PROGRAM_BAR_INFO;
  68601. ///@brief 播放盒上窗口信息
  68602. typedef struct tagNET_PLAYBOX_WINDOWS_INFO
  68603. {
  68604. NET_RECT stuRect; // 窗口位置
  68605. UINT nZorder; // 窗口Z轴序
  68606. int nVolume; // 窗口音量,相对整屏音量的百分比
  68607. NET_COLOR_RGBA stuBackColor; // 窗口背景颜色
  68608. UINT nDiaphaneity; // 窗口背景透明度0-100
  68609. EM_TOURPERIOD_TYPE emTourPeriodType; // 窗口轮训类型
  68610. UINT nTourPeriodTime; // 自定义轮训时间,单位秒, 轮训类型为自定义轮训时有效
  68611. BOOL bAutoPlay; // 预览自动播放,Video元素有效
  68612. BOOL bLoopPlay; // 预览循环播放,Video元素有效
  68613. UINT nElementsCount; // 播放盒窗口元素个数
  68614. char* pstElementsBuf; // 播放盒窗口元素信息缓存区, 根据类型对应不同的结构体
  68615. // 填充多个元素信息, 每个元素信息内容为NET_ELEMENT_COMMON_INFO + 元素类型对应的结构体
  68616. UINT nBufLen; // 诱导屏窗口元素信息缓存区大小
  68617. BYTE byReserved[128]; // 保留字节
  68618. } NET_PLAYBOX_WINDOWS_INFO;
  68619. ///@brief 普通广告节目信息
  68620. typedef struct tagNET_PROGRAM_ORDINARY_INFO
  68621. {
  68622. BOOL bTempletState; // 节目是否保存为模板
  68623. char szDescription[MAX_COMMON_STRING_128]; // 节目描述信息
  68624. UINT nWidth; // 画布宽度
  68625. UINT nHeight; // 画布高度
  68626. int nWinCount; // 窗口数量
  68627. NET_PLAYBOX_WINDOWS_INFO stuWindowsInfo[MAX_WINDOWS_COUNT]; // 窗口信息
  68628. BYTE byReserved[128]; // 保留字节
  68629. } NET_PROGRAM_ORDINARY_INFO;
  68630. ///@brief 播放盒节目类型
  68631. typedef enum tagEM_PLAYBOXPROGRAM_TYPE
  68632. {
  68633. EM_PROGRAM_ON_PLAYBOX_LOGO, // LOGO, 对应结构体 NET_PROGRAM_LOGO_INFO
  68634. EM_PROGRAM_ON_PLAYBOX_BAR, // 广告条, 对应结构体 NET_PROGRAM_BAR_INFO
  68635. EM_PROGRAM_ON_PLAYBOX_ORDINARY, // 普通节目, 对应结构体 NET_PROGRAM_ORDINARY_INFO
  68636. }EM_PLAYBOXPROGRAM_TYPE;
  68637. ///@brief 播放盒节目信息
  68638. typedef struct tagNET_PROGRAM_ON_PLAYBOX
  68639. {
  68640. char szProgrammeName[MAX_COMMON_STRING_64]; // 节目名称
  68641. char szProgrammeID[MAX_COMMON_STRING_64]; // 节目ID, 添加节目时不需要指定
  68642. BOOL bEnable; // 节目是否启用
  68643. EM_PLAYBOXPROGRAM_TYPE emProgramType; // 节目类型
  68644. NET_PROGRAM_LOGO_INFO stuLogoInfo; // LOGO节目信息, emProgramType为EM_PROGRAM_ON_PLAYBOX_LOGO时有效
  68645. NET_PROGRAM_BAR_INFO stuBarInfo; // 广告条节目信息, emProgramType为EM_PROGRAM_ON_PLAYBOX_BAR时有效
  68646. NET_PROGRAM_ORDINARY_INFO stuOrdinaryInfo; // 普通节目信息, emProgramType为EM_PROGRAM_ON_PLAYBOX_ORDINARY时有效
  68647. BYTE byReserved[512]; // 保留字节
  68648. } NET_PROGRAM_ON_PLAYBOX;
  68649. ///@brief 获取播放盒上全部节目信息接口输入参数
  68650. typedef struct tagNET_IN_GET_ALL_PLAYBOX_PROGRAM
  68651. {
  68652. DWORD dwSize;
  68653. } NET_IN_GET_ALL_PLAYBOX_PROGRAM;
  68654. ///@brief 获取播放盒上全部节目信息接口输出参数
  68655. typedef struct tagNET_OUT_GET_ALL_PLAYBOX_PROGRAM
  68656. {
  68657. DWORD dwSize;
  68658. UINT nMaxProgramCount; // 节目信息最大个数,由用户指定
  68659. UINT nRetProgramCount; // 实际返回的节目信息个数
  68660. NET_PROGRAM_ON_PLAYBOX *pstProgramInfo; // 播放盒上的节目信息, 内存资源由用户维护
  68661. } NET_OUT_GET_ALL_PLAYBOX_PROGRAM;
  68662. ///@brief 通过programme ID 获取播放盒上对应的节目信息输入参数
  68663. typedef struct tagNET_IN_GET_PLAYBOX_PROGRAM_BYID
  68664. {
  68665. DWORD dwSize;
  68666. char szProgrammeID[MAX_COMMON_STRING_64]; // 节目ID
  68667. } NET_IN_GET_PLAYBOX_PROGRAM_BYID;
  68668. ///@brief 通过programme ID 获取播放盒上对应的节目信息输出参数
  68669. typedef struct tagNET_OUT_GET_PLAYBOX_PROGRAM_BYID
  68670. {
  68671. DWORD dwSize;
  68672. NET_PROGRAM_ON_PLAYBOX stuPlayBoxProgram; // 播放盒节目信息
  68673. } NET_OUT_GET_PLAYBOX_PROGRAM_BYID;
  68674. ///@brief 在播放盒上添加一个节目信息输入参数
  68675. typedef struct tagNET_IN_ADD_ONE_PLAYBOX_PRAGROM
  68676. {
  68677. DWORD dwSize;
  68678. NET_PROGRAM_ON_PLAYBOX stuPlayBoxProgram; // 播放盒节目信息
  68679. } NET_IN_ADD_ONE_PLAYBOX_PRAGROM;
  68680. ///@brief 在播放盒上添加一个节目信息输出参数
  68681. typedef struct tagNET_OUT_ADD_ONE_PLAYBOX_PRAGROM
  68682. {
  68683. DWORD dwSize;
  68684. char szProgrammeID[MAX_COMMON_STRING_64]; // 节目ID
  68685. } NET_OUT_ADD_ONE_PLAYBOX_PRAGROM;
  68686. ///@brief 在播放盒上修改指定ID的节目信息输入参数
  68687. typedef struct tagNET_IN_MODIFY_PLAYBOX_PROGRAM_BYID
  68688. {
  68689. DWORD dwSize;
  68690. NET_PROGRAM_ON_PLAYBOX stuPlayBoxProgram; // 播放盒节目信息
  68691. } NET_IN_MODIFY_PLAYBOX_PROGRAM_BYID;
  68692. ///@brief 在播放盒上修改指定ID的节目信息输出参数
  68693. typedef struct tagNET_OUT_MODIFY_PLAYBOX_PROGRAM_BYID
  68694. {
  68695. DWORD dwSize;
  68696. } NET_OUT_MODIFY_PLAYBOX_PROGRAM_BYID;
  68697. ///@brief 获取播放盒上全部节目信息
  68698. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAllProgramOnPlayBox(
  68699. LLONG lLoginID, const NET_IN_GET_ALL_PLAYBOX_PROGRAM* pInParam,
  68700. NET_OUT_GET_ALL_PLAYBOX_PROGRAM* pOutParam, const int nWaitTime);
  68701. ///@brief 通过programme ID 获取播放盒上对应的节目信息
  68702. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetOneProgramByIdOnPlayBox(
  68703. LLONG lLoginID, const NET_IN_GET_PLAYBOX_PROGRAM_BYID* pInParam,
  68704. NET_OUT_GET_PLAYBOX_PROGRAM_BYID* pOutParam, const int nWaitTime);
  68705. ///@brief 在播放盒上添加一个节目
  68706. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddOneProgramToPlayBox(
  68707. LLONG lLoginID, const NET_IN_ADD_ONE_PLAYBOX_PRAGROM* pInParam,
  68708. NET_OUT_ADD_ONE_PLAYBOX_PRAGROM* pOutParam, const int nWaitTime);
  68709. ///@brief 在播放盒上修改指定ID的节目信息
  68710. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyProgramOnPlayBoxById(
  68711. LLONG lLoginID, const NET_IN_MODIFY_PLAYBOX_PROGRAM_BYID* pInParam,
  68712. NET_OUT_MODIFY_PLAYBOX_PROGRAM_BYID* pOutParam, const int nWaitTime);
  68713. ///////////////////////////// 组织目录管理 /////////////////////////////////////////
  68714. ///@brief 组织目录管理-添加节点,pInParam与pOutParam内存由用户申请释放
  68715. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OrganizationAddNodes(LLONG lLoginID, const DH_IN_ORGANIZATION_ADD_NODES* pInParam, DH_OUT_ORGANIZATION_ADD_NODES* pOutParam, int nWaitTime = 1000);
  68716. ///@brief 组织目录管理-删除节点,pInParam与pOutParam内存由用户申请释放
  68717. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OrganizationDeleteNodes(LLONG lLoginID, const DH_IN_ORGANIZATION_DELETE_NODES* pInParam, DH_OUT_ORGANIZATION_DELETE_NODES* pOutParam, int nWaitTime = 1000);
  68718. ///@brief 组织目录管理-获取节点信息,pInParam与pOutParam内存由用户申请释放
  68719. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OrganizationGetNodes(LLONG lLoginID, const DH_IN_ORGANIZATION_GET_NODES* pInParam, DH_OUT_ORGANIZATION_GET_NODES* pOutParam, int nWaitTime = 1000);
  68720. ///@brief 组织目录管理-设置节点,pInParam与pOutParam内存由用户申请释放
  68721. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OrganizationSetNode(LLONG lLoginID, const DH_IN_ORGANIZATION_SET_NODE* pInParam, DH_OUT_ORGANIZATION_SET_NODE* pOutParam, int nWaitTime = 1000);
  68722. //////////////////////////// 网络抓包 /////////////////////////////////
  68723. ///@brief 开始抓包,pInParam与pOutParam内存由用户申请释放
  68724. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartSniffer(LLONG lLoginID, const DH_IN_START_SNIFFER* pInParam, DH_OUT_START_SNIFFER* pOutParam, int nWaitTime = 1000);
  68725. ///@brief 停止抓包
  68726. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopSniffer(LLONG lLoginID, LLONG lSnifferID);
  68727. ///@brief 获取抓包状态,pInParam与pOutParam内存由用户申请释放
  68728. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSnifferInfo(LLONG lLoginID, const DH_IN_GET_SNIFFER_INFO* pInParam, DH_OUT_GET_SNIFFER_INFO* pOutParam, int nWaitTime = 1000);
  68729. ///@brief 订阅抓包数据,pInParam与pOutParam内存由用户申请释放
  68730. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSniffer(LLONG lLoginID, const NET_IN_ATTACH_SNIFFER* pInParam, NET_OUT_ATTACH_SNIFFER* pOutParam, int nWaitTime);
  68731. ///@brief 退订抓包数据
  68732. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSniffer(LLONG lAttachHandle);
  68733. ///@brief 获取抓包能力,pInParam与pOutParam内存由用户申请释放
  68734. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSnifferCaps(LLONG lLoginID, const NET_IN_GET_SNIFFER_CAP* pInParam, NET_OUT_GET_SNIFFER_CAP* pOutParam, int nWaitTime);
  68735. //////////////////////////// 播放库相关接口 /////////////////////////////////
  68736. ///@brief 抓取JPEG图像
  68737. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPicJPEG(LLONG lPlayHandle, BYTE* pJpegBuf, DWORD dwBufSize,DWORD *pJpegSize,int quality);
  68738. //////////////////////////// 远程文件管理 /////////////////////////////////
  68739. ///@brief 新建文件,pInParam与pOutParam内存由用户申请释放
  68740. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CreateRemoteFile(LLONG lLoginID, const DH_IN_CREATE_REMOTE_FILE* pInParam, DH_OUT_CREATE_REMOTE_FILE* pOutParam, int nWaitTime = 1000);
  68741. ///@brief 删除文件或目录,pInParam与pOutParam内存由用户申请释放
  68742. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveRemoteFiles(LLONG lLoginID, const DH_IN_REMOVE_REMOTE_FILES* pInParam, DH_OUT_REMOVE_REMOTE_FILES* pOutParam, int nWaitTime = 1000);
  68743. ///@brief 重命名,pInParam与pOutParam内存由用户申请释放
  68744. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RenameRemoteFile(LLONG lLoginID, const DH_IN_RENAME_REMOTE_FILE* pInParam, DH_OUT_RENAME_REMOTE_FILE* pOutParam, int nWaitTime = 1000);
  68745. ///@brief 显示目录中文件和子目录,pInParam与pOutParam内存由用户申请释放
  68746. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ListRemoteFile(LLONG lLoginID, const DH_IN_LIST_REMOTE_FILE* pInParam, DH_OUT_LIST_REMOTE_FILE* pOutParam, int nWaitTime = 1000);
  68747. ///@brief 同步文件上传, 只适用于小文件,pInParam与pOutParam内存由用户申请释放
  68748. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UploadRemoteFile(LLONG lLoginID, const DH_IN_UPLOAD_REMOTE_FILE* pInParam, DH_OUT_UPLOAD_REMOTE_FILE* pOutParam, int nWaitTime = 1000);
  68749. ///@brief 开始异步文件上传调函数原形,lUploadFileHandle 为 CLIENT_StartUploadRemoteFile 接口返回值
  68750. // nTotalSize = 0, nSendSize = -1 文件操作错误
  68751. // nTotalSize = 0, nSendSize = -2 发送文件失败
  68752. typedef void (CALLBACK *fUploadFileCallBack) (LLONG lUploadFileHandle, int nTotalSize, int nSendSize, LDWORD dwUser);
  68753. ///@brief 开始异步文件上传,pInParam与pOutParam内存由用户申请释放
  68754. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartUploadRemoteFile(LLONG lLoginID, const DH_IN_UPLOAD_REMOTE_FILE* pInParam, DH_OUT_UPLOAD_REMOTE_FILE* pOutParam, fUploadFileCallBack cbUploadFile, LDWORD dwUser);
  68755. ///@brief 停止异步文件上传
  68756. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopUploadRemoteFile(LLONG lUploadFileID);
  68757. ///@brief 远程投放, 在设备端播放音频文件,pInParam与pOutParam内存由用户申请释放
  68758. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PlayAudioFile(LLONG lLoginID, const NET_IN_PLAY_AUDIO_FILE* pInParam, NET_OUT_PLAY_AUDIO_FILE* pOutParam, int nWaitTime = 1000);
  68759. ///@brief 文件下载, 只适用于小文件,pInParam与pOutParam内存由用户申请释放
  68760. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DownloadRemoteFile(LLONG lLoginID, const DH_IN_DOWNLOAD_REMOTE_FILE* pInParam, DH_OUT_DOWNLOAD_REMOTE_FILE* pOutParam, int nWaitTime = 1000);
  68761. ///@brief 设置指定文件的属性,pInParam与pOutParam内存由用户申请释放
  68762. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetFileAttribute(LLONG lLoginID, const DH_IN_SET_FILEATTRIBUTE* pInParam, DH_OUT_SET_FILEATTRIBUTE* pOutParam, int nWaitTime = 1000);
  68763. ///@brief 文件下载,多次触发分包下载大文件,每次请求指定文件名和下载偏移,pOutParam内存由用户申请释放
  68764. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DownloadPieceFile(LLONG lLoginID, const NET_IN_DOWNLOAD_PIECE_FILE* pInParam, NET_OUT_DOWNLOAD_PIECE_FILE* pOutParam,int nWaitTime = 1000);
  68765. ///@brief 获取媒体文件信息
  68766. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMediaFileInfo(LLONG lLoginID, const NET_IN_GET_NEDIA_FILE_INFO* pInParam, NET_OUT_GET_NEDIA_FILE_INFO* pOutParam, const int nWaitTime);
  68767. ///@brief 开始分页查询指定目录下的所有子元素信息(含文件/子目录),pInParam与pOutParam内存由用户申请释放
  68768. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartListMediaFileInfo(LLONG lLoginID, const NET_IN_START_LIST_FILE_INFO* pInParam, NET_OUT_START_LIST_FILE_INFO* pOutParam, const int nWaitTime);
  68769. ///@brief 分页查询指定目录下的所有子元素信息(含文件/子目录),pInParam与pOutParam内存由用户申请释放
  68770. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoListMediaFileInfo(LLONG lFindHandle, const NET_IN_DO_LIST_FILE_INFO* pInParam, NET_OUT_DO_LIST_FILE_INFO* pOutParam, const int nWaitTime);
  68771. ///@brief 停止分页查询指定目录下的所有子元素信息(含文件/子目录), lFindHandle 为接口CLIENT_StartListMediaFileInfo 返回值
  68772. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopListMediaFileInfo(LLONG lFindHandle);
  68773. ///@brief 文件上传进度通知接口, pInParam与pOutParam内存由用户申请释放
  68774. CLIENT_NET_API BOOL CALL_METHOD CLIENT_NotifyFileUploadProgress(LLONG lLoginID, const NET_IN_NOTIFY_FILE_UPLOAD_PROGRESS_INFO* pstInParam, NET_OUT_NOTIFY_FILE_UPLOAD_PROGRESS_INFO* pstOutParam, const int nWaitTime);
  68775. ///@brief 删除多个媒体文件(录像或图片)
  68776. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveMediaFilesInfo(LLONG lLoginID, const NET_IN_REMOVE_MEDIA_FILES_INFO* pstInParam, NET_OUT_REMOVE_MEDIA_FILES_INFO* pstOutParam, const int nWaitTime);
  68777. ////////////////////////////// 存储设备管理 ////////////////////////////////////////
  68778. ///@brief 获取ISCSI Target列表, pInParam == NULL获取所有targets,pInParam与pOutParam内存由用户申请释放
  68779. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetISCSITargets(LLONG lLoginID, const DH_IN_ISCSI_TARGETS* pInParam, DH_OUT_ISCSI_TARGETS* pOutParam, int nWaitTime = 1000);
  68780. ///@brief pInParam与pOutParam内存由用户申请释放
  68781. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetBitmap(LLONG lLoginID , const DH_IN_BITMAP* pInParam, DH_OUT_BITMAP* pOutParam, int nWaitTime = 1000);
  68782. ///@brief 获取存储设备名称列表,pstuNames内存由用户申请释放
  68783. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetStorageDeviceNames(LLONG lLoginID, DH_STORAGE_DEVICE_NAME* pstuNames, int nMaxCount, int* pnRetCount, int nWaitTime = 1000);
  68784. ///@brief 获取存储设备信息,pDevice内存由用户申请释放
  68785. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetStorageDeviceInfo(LLONG lLoginID, const char* pszDevName, DH_STORAGE_DEVICE* pDevice, int nWaitTime = 1000);
  68786. ///@brief 订阅录像文件更新信息,pInParam与pOutParam内存由用户申请释放
  68787. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRecordInfo(LLONG lLoginID, const NET_IN_ATTACH_RECORD_INFO* pInParam, NET_OUT_ATTACH_RECORD_INFO* pOutParam, int nWaitTime = 1000);
  68788. ///@brief 取消订阅录像文件更新信息,lAttachHandle是CLIENT_AttachRecordInfo的返回值
  68789. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRecordInfo(LLONG lAttachHandle);
  68790. ///@brief 订阅写入远程存储的信息状态,pInParam与pOutParam内存由用户申请释放
  68791. CLIENT_NET_API LLONG CALL_METHOD CLIENT_NetStorageAttachWriteInfo(LLONG lLoginID, const NET_IN_STORAGE_ATTACH_WRITE_INFO* pInParam, NET_OUT_STORAGE_ATTACH_WRITE_INFO* pOutParam, int nWaitTime);
  68792. ///@brief 取消写入远程设备信息,lAttachHandle是CLIENT_NetStorageAttachWriteInfo的返回值
  68793. CLIENT_NET_API BOOL CALL_METHOD CLIENT_NetStorageDetachWriteInfo(LLONG lAttachHandle);
  68794. ///@brief 查询远程存储的写入信息状态,pInParam与pOutParam内存由用户申请释放
  68795. CLIENT_NET_API BOOL CALL_METHOD CLIENT_NetStorageGetWriteInfo(LLONG lLoginID, const NET_IN_STORAGE_GET_WRITE_INFO* pInParam, NET_OUT_STORAGE_GET_WRITE_INFO* pOutParam, int nWaitTime);
  68796. ///@brief RAID操作, 不同操作类型对应不同的结构体,pInBuf与pOutBuf内存由用户申请释放,大小参照emType对应的结构体
  68797. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateRaid(LLONG lLoginID, NET_RAID_OPERATE_TYPE emType, void* pInBuf, void* pOutBuf, int nWaitTime);
  68798. ///@brief 异步格式化设备,格式化进度通过CLIENT_AttachDevStorageDevFormat接口的回调获取 pszDevName与CLIENT_GetStorageDeviceInfo中的pszDevName保持一致
  68799. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DevStorageFormatPartitionAsyn(LLONG lLoginID, const char* pszDevName, const NET_IN_DEVSTORAGE_FORMAT_PARTITION_ASYN* pInParam, NET_OUT_DEVSTORAGE_FORMAT_PARTITION_ASYN* pOutParam, const int nWaitTime);
  68800. ///@brief 订阅异步格式化设备的状态
  68801. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachDevStorageDevFormat(LLONG lLoginID, const NET_IN_DEVSTORAGE_ATTACH_DEV_FORMAT* pInParam, const int nWaitTime);
  68802. ///@brief 取消订阅异步格式化设备的状态, lAttachHandle 为CLIENT_AttachDevStorageDevFormat 接口返回值
  68803. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachDevStorageDevFormat(LLONG lAttachHandle);
  68804. /////////////////////////////// 级联设备 ///////////////////////////////////////
  68805. ///@brief 搜索级联视频源,pInParam与pOutParam内存由用户申请释放
  68806. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatrixSearch(LLONG lLoginID, const DH_IN_MATRIX_SEARCH* pInParam, DH_OUT_MATRIX_SEARCH* pOutParam, int nWaitTime = 1000);
  68807. ///@brief 获取本级级联树列表,pInParam与pOutParam内存由用户申请释放
  68808. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMatrixTree(LLONG lLoginID, const DH_IN_GET_MATRIX_TREE* pInParam, DH_OUT_GET_MATRIX_TREE* pOutParam, int nWaitTime = 1000);
  68809. ///@brief 获取级联上级设备列表信息,pInParam与pOutParam内存由用户申请释放
  68810. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSuperiorMatrixList(LLONG lLoginID, const DH_IN_GET_SUPERIOR_MATRIX_LIST* pInParam, DH_OUT_GET_SUPERIOR_MATRIX_LIST* pOutParam, int nWaitTime = 1000);
  68811. /************************************************************************/
  68812. /* 录像备份回传 */
  68813. /************************************************************************/
  68814. ///@brief 开始录像备份恢复
  68815. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartRecordBackupRestore(LLONG lLoginID);
  68816. ///@brief 停止录像备份恢复
  68817. CLIENT_NET_API void CALL_METHOD CLIENT_StopRecordBackupRestore(LLONG lRestoreID);
  68818. ///@brief 添加录像备份恢复任务,pInParam内存由用户申请释放
  68819. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddRecordBackupRestoreTask(LLONG lRestoreID, const DH_IN_ADD_REC_BAK_RST_TASK* pInParam, int nWaitTime = 1000);
  68820. ///@brief 增加远程录像备份任务, pInParam pOutParam 内存有用户申请释放
  68821. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddRecordBackupRestoreRemoteTask(LLONG lRestoreID, const DH_IN_ADD_REC_BAK_RST_REMOTE_TASK* pInParam, DH_OUT_ADD_REC_BAK_RST_REMOTE_TASK* pOutParam, int nWaitTime);
  68822. ///@brief 删除录像备份恢复任务,pInParam内存由用户申请释放
  68823. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveRecordBackupRestoreTask(LLONG lRestoreID, const DH_IN_REMOVE_REC_BAK_RST_TASK* pInParam, int nWaitTime = 1000);
  68824. ///@brief 获取录像备份恢复任务信息,pInParam与pOutParam内存由用户申请释放
  68825. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryRecordBackupRestoreTask(LLONG lRestoreID, const DH_IN_QUERY_REC_BAK_RST_TASK* pInParam, DH_OUT_QUERY_REC_BAK_RST_TASK* pOutParam, int nWaitTime = 1000);
  68826. ///@brief 根据查询条件返回录像备份任务的信息表,pInParam与pOutParam内存由用户申请释放
  68827. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindRecordBackupRestoreTaskInfos(LLONG lLoginID, const NET_IN_FIND_REC_BAK_RST_TASK* pInParam, NET_OUT_FIND_REC_BAK_RST_TASK* pOutParam, int nWaitTime = 3000);
  68828. ///@brief 回传码流类型
  68829. typedef enum tagEM_RECORD_BACKUP_STREAM_TYPE
  68830. {
  68831. EM_RECORD_BACKUP_STREAM_TYPE_UNKNOWN, // 未知
  68832. EM_RECORD_BACKUP_STREAM_TYPE_JPG, // 图片流
  68833. EM_RECORD_BACKUP_STREAM_TYPE_MAIN, // 录像主码流
  68834. }EM_RECORD_BACKUP_STREAM_TYPE;
  68835. ///@brief 当前备份状态
  68836. typedef enum tagEM_RECORD_BACKUP_STATE
  68837. {
  68838. EM_RECORD_BACKUP_STATE_UNKNOWN, // 未知
  68839. EM_RECORD_BACKUP_STATE_NORMAL, // 尚未开始
  68840. EM_RECORD_BACKUP_STATE_RUNNING, // 进行中
  68841. EM_RECORD_BACKUP_STATE_FINISHED, // 已完成
  68842. EM_RECORD_BACKUP_STATE_FAILED, // 失败
  68843. EM_RECORD_BACKUP_STATE_PAUSE, // 暂停
  68844. }EM_RECORD_BACKUP_STATE;
  68845. ///@brief 录像备份任务信息表
  68846. typedef struct tagNET_RECORD_BACKUP_RESTORE_TASK_INFO
  68847. {
  68848. UINT nTaskID; // 任务ID
  68849. char byReserved[4]; // 字节对齐
  68850. char szDevice[128]; // 备份源设备
  68851. int nChannelID; // 通道号
  68852. int nRemoteChannel; // 备份源通道
  68853. NET_TIME stuStartTime; // 开始时间
  68854. NET_TIME stuEndTime; // 结束时间
  68855. double dbLength; // 该任务的总长度,单位字节, -1表示未知
  68856. EM_RECORD_BACKUP_STREAM_TYPE emStreamType[32]; // 回传码流类型
  68857. int nStreamTypeNums; // 回传码流类型的个数
  68858. EM_RECORD_BACKUP_STATE emState; // 当前备份状态, 0-尚未开始, 1-进行中, 2-完成, 3-失败, 4-暂停
  68859. NET_RECORD_BACKUP_PROGRESS stuProgress; // 当前备份进度
  68860. EM_RECORD_BACKUP_FAIL_REASON emFailReason; // 失败的原因, 当emState字段为3的情况下有效
  68861. char szReserved[252]; // 保留字节
  68862. } NET_RECORD_BACKUP_RESTORE_TASK_INFO;
  68863. ///@brief CLIENT_GetRecordBackupRestoreTaskInfoOffline 接口输入参数
  68864. typedef struct tagNET_IN_GET_RECORD_BACKUP_RESTORE_TASK_INFO_OFFLINE
  68865. {
  68866. DWORD dwSize;
  68867. } NET_IN_GET_RECORD_BACKUP_RESTORE_TASK_INFO_OFFLINE;
  68868. ///@brief CLIENT_GetRecordBackupRestoreTaskInfoOffline 接口输出参数
  68869. typedef struct tagNET_OUT_GET_RECORD_BACKUP_RESTORE_TASK_INFO_OFFLINE
  68870. {
  68871. DWORD dwSize;
  68872. int nMaxCount; // 数组大小, 最大为2048个
  68873. int nReturnCount; // 返回的任务信息表数量, 最大为2048个
  68874. char byReserved[4]; // 字节对齐
  68875. NET_RECORD_BACKUP_RESTORE_TASK_INFO* pTasks; // 录像备份任务信息表,由用户申请内存,大小为sizeof(DH_RECORD_BACKUP_RESTORE_TASK_INFO)*nMaxCount
  68876. } NET_OUT_GET_RECORD_BACKUP_RESTORE_TASK_INFO_OFFLINE;
  68877. ///@brief 获取录像备份断网续传任务信息,lRestoreID由CLIENT_StartRecordBackupRestore获取, pInParam与pOutParam内存由用户申请释放
  68878. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRecordBackupRestoreTaskInfoOffline(LLONG lRestoreID, const NET_IN_GET_RECORD_BACKUP_RESTORE_TASK_INFO_OFFLINE* pInParam, NET_OUT_GET_RECORD_BACKUP_RESTORE_TASK_INFO_OFFLINE* pOutParam, int nWaitTime = 1000);
  68879. //////////////////////////// Encode Manager ////////////////////////////////
  68880. ///@brief 刻录中获取编码计划参数,pInParam与pOutParam内存由用户申请释放
  68881. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEncodePlan(LLONG lLoginID, const DH_IN_GET_ENCODE_PLAN* pInParam, DH_OUT_GET_ENCODE_PLAN* pOutParam, int nWaitTime = 1000);
  68882. ///@brief 根据指定的光盘容量和分辨率码率计算业务时长, pInParam与pOutParam内存由用户申请释放
  68883. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEncodePlanByResolution(LLONG lLoginID, const NET_IN_GET_ENCODEPLANE_BY_RESOLUTION* pInParam, NET_OUT_GET_ENCODEPLANE_BY_RESOLUTION* pOutParam, int nWaitTime);
  68884. /************************************************************************/
  68885. /* 数据库记录相关操作 */
  68886. /************************************************************************/
  68887. ///@brief 按查询条件查询记录,pInParam与pOutParam内存由用户申请释放
  68888. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindRecord(LLONG lLoginID, NET_IN_FIND_RECORD_PARAM* pInParam, NET_OUT_FIND_RECORD_PARAM* pOutParam, int waittime=1000);
  68889. ///@brief 查找记录:nFilecount:需要查询的条数, 一般情况出参中nRetRecordNum<nFilecount则相应时间段内的文件查询完毕,但部分设备性能限制,nRetRecordNum<nFilecount不代表查询完毕,建议和CLIENT_QueryRecordCount配套使用,pInParam与pOutParam内存由用户申请释放
  68890. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindNextRecord(NET_IN_FIND_NEXT_RECORD_PARAM* pInParam, NET_OUT_FIND_NEXT_RECORD_PARAM* pOutParam, int waittime=1000);
  68891. ///@brief 查找记录条数,pInParam与pOutParam内存由用户申请释放
  68892. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryRecordCount(NET_IN_QUEYT_RECORD_COUNT_PARAM* pInParam, NET_OUT_QUEYT_RECORD_COUNT_PARAM* pOutParam, int waittime=1000);
  68893. ///@brief 结束记录查找
  68894. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindRecordClose(LLONG lFindHandle);
  68895. /************************************************************************/
  68896. /* 云台元数据接口订阅 */
  68897. /************************************************************************/
  68898. ///@brief 订阅云台元数据接口,pstuInPtzStatusProc与pstuOutPtzStatusProc内存由用户申请释放
  68899. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachPTZStatusProc(LLONG lLoginID, NET_IN_PTZ_STATUS_PROC *pstuInPtzStatusProc, NET_OUT_PTZ_STATUS_PROC *pstuOutPtzStatusProc, int nWaitTime = 3000);
  68900. ///@brief 停止订阅云台元数据接口,lAttachHandle是CLIENT_AttachPTZStatusProc返回值
  68901. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachPTZStatusProc(LLONG lAttachHandle);
  68902. /************************************************************************/
  68903. /* 云台可视域订阅 */
  68904. /************************************************************************/
  68905. ///@brief 订阅云台可视域,pstuInViewRange与pstuOutViewRange内存由用户申请释放
  68906. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachViewRangeState(LLONG lLoginID, NET_IN_VIEW_RANGE_STATE *pstuInViewRange, NET_OUT_VIEW_RANGE_STATE *pstuOutViewRange, int nWaitTime = 3000);
  68907. ///@brief 停止订阅云台可视域,lAttachHandle是CLIENT_AttachViewRangeState返回值
  68908. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachViewRangeState(LLONG lAttachHandle);
  68909. ///@brief 订阅气象信息,pstuInParam与pstuOutParam内存由用户申请释放
  68910. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachWeatherInfo(LLONG lLoginID, NET_IN_WEATHER_INFO *pstuInParam, NET_OUT_WEATHER_INFO *pstuOutParam, int nWaitTime);
  68911. ///@brief 停止订阅气象信息,lAttachHandle是CLIENT_AttachWeatherInfo返回值
  68912. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachWeatherInfo(LLONG lAttachHandle);
  68913. ///@brief 根据物距、物体大小及占屏比设置可视域,pInstuParam与pstuOutParam内存由用户申请释放
  68914. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetViewRangeByObject(LLONG lLoginID, NET_IN_SET_VIEW_RANGE_BY_OBJECT *pInstuParam, NET_OUT_SET_VIEW_RANGE_BY_OBJECT *pstuOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  68915. ///@brief 根据目标GPS位置设置可视域,设备GPS位置和目标GPS位置基本在同一区域,pInstuParam与pstuOutParam内存由用户申请释放
  68916. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetViewRangeByGPS(LLONG lLoginID, NET_IN_SET_VIEW_RANGE_BY_GPS *pInstuParam, NET_OUT_SET_VIEW_RANGE_BY_GPS *pstuOutParam, int nWaitTime);
  68917. ///@brief 分页获取信息标注信息列表
  68918. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ScenicSpotGetPointInfos(LLONG lLoginID, NET_IN_SCENICSPOT_GETPOINTINFOS_INFO *pInstuParam, NET_OUT_SCENICSPOT_GETPOINTINFOS_INFO *pstuOutParam, int nWaitTime);
  68919. ///@brief 设置景物点,原编号的景物点将会被覆盖
  68920. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ScenicSpotSetPointInfo(LLONG lLoginID, NET_IN_SCENICSPOT_SETPOINTINFO_INFO *pInstuParam, NET_OUT_SCENICSPOT_SETPOINTINFO_INFO *pstuOutParam, int nWaitTime);
  68921. ///@brief 获取景物点支持的能力
  68922. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ScenicSpotGetCaps(LLONG lLoginID, const NET_IN_SCENICSPOT_GETCAPS_INFO *pInstuParam, NET_OUT_SCENICSPOT_GETCAPS_INFO *pstuOutParam, int nWaitTime);
  68923. ///@brief 以景物标注点为中心,进行三维定位(倍率不变)
  68924. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ScenicSpotTurnToPoint(LLONG lLoginID, const NET_IN_SCENICSPOT_TURNTOPOINT_INFO *pInParam, NET_OUT_SCENICSPOT_TURNTOPOINT_INFO *pOutParam, int nWaitTime);
  68925. ///@brief 设置备份源信息
  68926. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetBackupSources(LLONG lLoginID, const NET_IN_SETBACKUP_SOURCES_INFO *pInstuParam, NET_OUT_SETBACKUP_SOURCES_INFO* pstuOutParam, int nWaitTime);
  68927. /************************************************************************/
  68928. /* BUS订阅 */
  68929. /************************************************************************/
  68930. ///@brief 订阅Bus状态,pstuInBus与pstuOutBus内存由用户申请释放
  68931. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachBusState(LLONG lLoginID, NET_IN_BUS_ATTACH *pstuInBus, NET_OUT_BUS_ATTACH *pstuOutBus, int nWaitTime = 3000);
  68932. ///@brief 停止订阅Bus状态,lAttachHandle是CLIENT_AttachBusState返回值
  68933. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachBusState(LLONG lAttachHandle);
  68934. /************************************************************************/
  68935. /* 模拟量报警通道数据订阅 */
  68936. /************************************************************************/
  68937. ///@brief 订阅模拟量报警通道数据,pInParam与pOutParam内存由用户申请释放
  68938. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachAnalogAlarmData(LLONG lLoginID, const NET_IN_ANALOGALARM_DATA* pInParam, NET_OUT_ANALOGALARM_DATA* pOutParam, int nWaitTime);
  68939. ///@brief 停止订阅模拟量报警通道数据
  68940. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachAnalogAlarmData(LLONG lAttachHandle);
  68941. /************************************************************************/
  68942. /* 记录变更接口订阅 */
  68943. /************************************************************************/
  68944. ///@brief 订阅记录变更接口,pInParam与pOutParam内存由用户申请释放
  68945. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRecordUpdater(LLONG lLoginID, const NET_IN_RECORDUPDATER_DATA* pInParam, NET_OUT_RECORDUPDATER_DATA* pOutParam, int nWaitTime);
  68946. ///@brief 停止订阅记录变更接口
  68947. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRecordUpdater(LLONG lAttachHandle);
  68948. ///////////////////////////特殊版本接口///////////////////////////////
  68949. ///@brief 打开日志功能,pstLogPrintInfo内存由用户申请释放
  68950. CLIENT_NET_API BOOL CALL_METHOD CLIENT_LogOpen(LOG_SET_PRINT_INFO *pstLogPrintInfo);
  68951. ///@brief 关闭日志功能
  68952. CLIENT_NET_API BOOL CALL_METHOD CLIENT_LogClose();
  68953. ///@brief 查询设备日志--扩展,pLogBuffer内存由用户申请释放
  68954. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryLogEx(LLONG lLoginID, DH_LOG_QUERY_TYPE logType, char *pLogBuffer, int maxlen, int *nLogBufferlen, void* reserved, int waittime=3000);
  68955. ///@brief 开始查询日志(目前只支持门禁BSC系列,支持报警主机日志分类查询),pInParam与pOutParam内存由用户申请释放
  68956. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartQueryLog(LLONG lLoginID, const NET_IN_START_QUERYLOG* pInParam, NET_OUT_START_QUERYLOG* pOutParam, int nWaitTime);
  68957. ///@brief 获取日志(目前只支持门禁BSC系列),pInParam与pOutParam内存由用户申请释放
  68958. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryNextLog(LLONG lLogID, NET_IN_QUERYNEXTLOG* pInParam, NET_OUT_QUERYNEXTLOG* pOutParam, int nWaitTime);
  68959. ///@brief 结束查询日志(目前只支持门禁BSC系列)
  68960. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopQueryLog(LLONG lLogID);
  68961. /************************************************************************/
  68962. /* 主动注册相关接口 */
  68963. /************************************************************************/
  68964. ///@brief 主动注册重定向功能,建立定向连接
  68965. CLIENT_NET_API LONG CALL_METHOD CLIENT_ControlConnectServer(LLONG lLoginID, char* RegServerIP, WORD RegServerPort, int TimeOut=3000);
  68966. ///@brief 连接主动注册
  68967. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlRegisterServer(LLONG lLoginID, LONG ConnectionID, int waittime=1000);
  68968. ///@brief 断开定向连接
  68969. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlDisconnectRegServer(LLONG lLoginID, LONG ConnectionID);
  68970. ///@brief 查询设备上主动注册服务器信息
  68971. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryControlRegServerInfo(LLONG lLoginID, LPDEV_SERVER_AUTOREGISTER lpRegServerInfo, int waittime=2000);
  68972. ///@brief 对应 CLIENT_ControlRegisterOtherServer 接口,输入参数
  68973. typedef struct tagNET_IN_REGISTER_INFO
  68974. {
  68975. DWORD dwSize; // 结构体大小
  68976. char szRegServerIP[DH_MAX_IPADDR_LEN_EX]; // 主动注册IP地址
  68977. int nRegServerPort; // 主动注册端口
  68978. } NET_IN_REGISTER_INFO;
  68979. ///@brief CLIENT_ControlRegisterOtherServer 输出参数
  68980. typedef struct tagNET_OUT_REGISTER_INFO
  68981. {
  68982. DWORD dwSize; // 结构体大小
  68983. }NET_OUT_REGISTER_INFO;
  68984. ///@brief 临时主动注册功能,车载群组对讲需求,控制设备注册到其他服务上
  68985. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlRegisterOtherServer(LLONG lLoginID, NET_IN_REGISTER_INFO* pInParam, NET_OUT_REGISTER_INFO* pOutParam, int waittime);
  68986. ///@brief 文件上传接口
  68987. CLIENT_NET_API LLONG CALL_METHOD CLIENT_FileTransmit(LLONG lLoginID, int nTransType, char* szInBuf, int nInBufLen, fTransFileCallBack cbTransFile, LDWORD dwUserData, int waittime);
  68988. ///@brief 水印检测, *nResult = 0-表示当前图片未被修改 *nResult = 1-表示当前图片已被修改
  68989. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WatermarkVerifyForPicture(char* szFilePath, int* nResult, void* pReserved);
  68990. ///@brief 多通道组合打开预览,pInBuf与pOutBuf内存由用户申请释放
  68991. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MultiRealPlay(LLONG lLoginID, DHDEV_IN_MULTIPLAY_PARAM* pInBuf, int nInBufLen, DHDEV_OUT_MULTIPLAY_PARAM* pOutBuf, int nOutBufLen, int* pRetLen);
  68992. ///@brief 多通道停止预览
  68993. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopMultiRealPlay(LLONG* lRealHandles, int nNumOfHandles);
  68994. ///@brief 设置回放的YUV数据回调接口,当hwnd不为空时有效
  68995. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPlaybackYUVCallBack(LLONG lPlayHandle, fYUVDataCallBack cYUVData, LDWORD dwUser);
  68996. ///@brief web获取配置
  68997. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetNewDevConfigForWeb(LLONG lLoginID, char* szCommand, int nChannelID, char* szOutBuffer, DWORD dwOutBufferSize, int *error, int waittime=500);
  68998. ///@brief web设置配置
  68999. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetNewDevConfigForWeb(LLONG lLoginID, char* szCommand, int nChannelID, char* szInBuffer, DWORD dwInBufferSize, int *error, int *restart, int waittime=500);
  69000. ///@brief 设置播放策略参数,只对实时流有效
  69001. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPlayMethod(LLONG lRealHandle, int nStartTime, int nSlowTime, int nFastTime, int nFailedTime);
  69002. ///@brief 关闭设备主动注册上来的链接
  69003. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloseRegConnect(LLONG lHandle, char *pIp, WORD wPort, void *pParam);
  69004. ///@brief 按文件回放输入参数-代理使用
  69005. typedef struct tagNET_IN_PLAYBACK_BYFILE_PROXY
  69006. {
  69007. DWORD dwSize;
  69008. LPNET_RECORDFILE_INFO lpRecordFile; // 录像文件信息
  69009. HWND hWnd; // 窗口句柄
  69010. fDownLoadPosCallBack cbDownLoadPos; // 回放进度回调
  69011. LDWORD dwPosUser; // 进度回调用户数据
  69012. fDataCallBack fDownLoadDataCallBack; // 回放数据回调
  69013. LDWORD dwDataUser; // 数据回调用户数据
  69014. char szDstIP[DH_COMMON_STRING_128]; // 设备IP
  69015. }NET_IN_PLAYBACK_BYFILE_PROXY;
  69016. ///@brief 按文件回放输出参数-代理使用
  69017. typedef struct tagNET_OUT_PLAYBACK_BYFILE_PROXY
  69018. {
  69019. DWORD dwSize;
  69020. }NET_OUT_PLAYBACK_BYFILE_PROXY;
  69021. ///@brief 按时间回放输入参数-代理使用
  69022. typedef struct tagNET_IN_PLAYBACK_BYTIME_PROXY
  69023. {
  69024. DWORD dwSize;
  69025. int nChannelID; // 通道号
  69026. LPNET_TIME lpStartTime; // 开始时间
  69027. LPNET_TIME lpStopTime; // 结束时间
  69028. HWND hWnd; // 窗口句柄
  69029. fDownLoadPosCallBack cbDownLoadPos; // 回放进度回调
  69030. LDWORD dwPosUser; // 进度回调用户数据
  69031. fDataCallBack fDownLoadDataCallBack; // 回放数据回调
  69032. LDWORD dwDataUser; // 数据回调用户数据
  69033. char szDstIP[DH_COMMON_STRING_128]; // 设备IP
  69034. BOOL bOnlySupportRealUTC; // 为TRUE表示仅下发stuStartTimeRealUTC和stuEndTimeRealUTC(不下发lpStartTime, lpStopTime), 为FALSE表示仅下发lpStartTime, lpStopTime(不下发stuStartTimeRealUTC和stuEndTimeRealUTC)
  69035. NET_TIME stuStartTimeRealUTC; // 录像的起始UTC时间(标准UTC时间)
  69036. NET_TIME stuEndTimeRealUTC; // 录像的结束UTC时间(标准UTC时间)
  69037. }NET_IN_PLAYBACK_BYTIME_PROXY;
  69038. ///@brief 按时间回放输出参数-代理使用
  69039. typedef struct tagNET_OUT_PLAYBACK_BYTIME_PROXY
  69040. {
  69041. DWORD dwSize;
  69042. }NET_OUT_PLAYBACK_BYTIME_PROXY;
  69043. ///@brief 按文件方式回放--附带设备IP,仅代理使用,pInParam与pOutParam内存由用户申请释放
  69044. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackByRecordFileProxy(LLONG lLoginID, NET_IN_PLAYBACK_BYFILE_PROXY* pInParam, NET_OUT_PLAYBACK_BYFILE_PROXY* pOutParam);
  69045. ///@brief 按时间方式回放--附带设备IP,仅代理使用,pInParam与pOutParam内存由用户申请释放
  69046. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackByTimeProxy(LLONG lLoginID, NET_IN_PLAYBACK_BYTIME_PROXY* pInParam, NET_OUT_PLAYBACK_BYTIME_PROXY* pOutParam);
  69047. ///@brief 级联调用方式
  69048. typedef enum tagEM_CASCADE_TYPE
  69049. {
  69050. EM_CASCADE_TYPE_UNKNOWN = -1, // 未知
  69051. EM_CASCADE_TYPE_CHANNEL, // 视频通道方式
  69052. } EM_CASCADE_TYPE;
  69053. ///@brief 级联参数
  69054. typedef struct tagNET_CASCADE_CALL_INFO
  69055. {
  69056. BOOL bCascadeCall; // 是否级联
  69057. EM_CASCADE_TYPE emType; // 级联方式
  69058. UINT nChannel; // 级联通道号
  69059. BYTE bReserved[1020]; // 保留字节
  69060. } NET_CASCADE_CALL_INFO;
  69061. ///@brief 配置导入导出加密方式
  69062. typedef enum tagEM_IMPORT_EXPORT_CFG_ENCRYPT_TYPE
  69063. {
  69064. EM_IMPORT_EXPORT_CFG_ENCRYPT_NO, // 明文, 不加密
  69065. EM_IMPORT_EXPORT_CFG_ENCRYPT_YES, // 密文, 加密
  69066. } EM_IMPORT_EXPORT_CFG_ENCRYPT_TYPE;
  69067. ///@brief CLIENT_ImportConfigFileJson接口的扩展参数
  69068. typedef struct tagNET_IMPORT_CONFIG_EXTEND_PARAM
  69069. {
  69070. DWORD dwSize; // 结构体大小
  69071. NET_CASCADE_CALL_INFO stuCascadeCallInfo; // 级联信息
  69072. EM_IMPORT_EXPORT_CFG_ENCRYPT_TYPE emEncryptType; // 配置加密方式
  69073. } NET_IMPORT_CONFIG_EXTEND_PARAM;
  69074. ///@brief CLIENT_ExportConfigFileJson接口的扩展参数
  69075. typedef struct tagNET_EXPORT_CONFIG_EXTEND_PARAM
  69076. {
  69077. DWORD dwSize; // 结构体大小
  69078. EM_IMPORT_EXPORT_CFG_ENCRYPT_TYPE emEncryptType; // 配置加密方式
  69079. } NET_EXPORT_CONFIG_EXTEND_PARAM;
  69080. ///@brief 导入配置文件(以JSON格式) pSendBuf: 待发送数据,用户分配内存, nSendBufLen: 待发送长度, reserved: 保留参数
  69081. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ImportConfigFileJson(LLONG lLoginID, char *pSendBuf, int nSendBufLen, void* reserved=NULL, int nWaitTime=3000);
  69082. ///@brief 导出配置文件(以JSON格式) pOutBuffer: 接收缓冲,用户分配内存, maxlen: 接收缓冲长度, nRetlen: 实际导出长度, reserved: 保留参数
  69083. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ExportConfigFileJson(LLONG lLoginID, char *pOutBuffer, int maxlen, int *nRetlen, void* reserved=NULL, int nWaitTime=3000);
  69084. ///@brief 设置安全密钥(播放加密码流使用)
  69085. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSecurityKey(LLONG lPlayHandle, char* szKey, DWORD nKeyLen);
  69086. ///@brief RPC能力查询
  69087. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryRpcMethod(LLONG lLoginID, const char* pszMethod, BOOL* pResult, int nWaitTime);
  69088. ///@brief 打开或者关闭隐私遮挡
  69089. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPrivacyRecover(LLONG lPlayHandle, BOOL bRecover);
  69090. //////////////////////////////////////////////////////////////////////
  69091. ///@brief 公交业务相关接口
  69092. //////////////////////////////////////////////////////////////////////
  69093. ///@brief 检查公交线路,pstInParam与pstOutParam内存由用户申请释放
  69094. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CheckBusLine(LLONG lLoginID, const NET_IN_CHECK_BUS_LINE* pstInParam, NET_OUT_CHECK_BUS_LINE* pstOutParam, int nWaitTime = 5000);
  69095. ///@brief 下发公交线路信息,pstInParam与pstOutParam内存由用户申请释放
  69096. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DispatchBusLineInfo(LLONG lLoginID, const NET_IN_DISPATCH_BUS_LINE_INFO* pstInParam, NET_OUT_DISPATCH_BUS_LINE_INFO* pstOutParam, int nWaitTime = 5000);
  69097. ///@brief 下发公交线路信息扩展接口,pstInParam与pstOutParam内存由用户申请释放
  69098. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DispatchBusLineInfoEx(LLONG lLoginID, const NET_IN_DISPATCH_BUS_LINE_INFO_EX* pstInParam, NET_OUT_DISPATCH_BUS_LINE_INFO_EX* pstOutParam, int nWaitTime);
  69099. ///@brief 下发https服务器地址,用于公交线路、报站信息的上报,pstInParam与pstOutParam内存由用户申请释放
  69100. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DispatchBusHttpsServers(LLONG lLoginID, const NET_IN_DISPATCH_BUS_HTTPS_SERVERS_INFO* pstInParam, NET_OUT_DISPATCH_BUS_HTTPS_SERVERS_INFO* pstOutParam, int nWaitTime);
  69101. ///@brief 车辆运营调度,pstInParam与pstOutParam内存由用户申请释放
  69102. CLIENT_NET_API BOOL CALL_METHOD CLIENT_BusSchedule(LLONG lLoginID, const NET_IN_BUS_SCHEDULE_INFO* pstInParam, NET_OUT_BUS_SCHEDULE_INFO* pstOutParam, int nWaitTime = 5000);
  69103. ///@brief 下发车辆排班计划,pstInParam与pstOutParam内存由用户申请释放
  69104. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DispatchWorkPlan(LLONG lLoginID, const NET_IN_BUS_DISPATCH_WORK_PLAN* pstInParam, NET_OUT_BUS_DISPATCH_WORK_PLAN* pstOutParam, int nWaitTime);
  69105. ///@brief 下发显示信息, pstInParam与pstOutParam内存由用户申请释放
  69106. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DispatchDisplayInfo(LLONG lLoginID, const NET_IN_DISPATCH_DISPLAY_INFO* pstInParam, NET_OUT_DISPATCH_DISPLAY_INFO* pstOutParam, int nWaitTime);
  69107. ///@brief 天气预报信息
  69108. typedef struct tagNET_WEATHERFORCAST_INFO
  69109. {
  69110. int nHighTemperature; // 单位:摄氏度(当天)
  69111. int nLowTemperature; // 单位:摄氏度(当天)
  69112. int nCurrentTemperature; // 当前温度,单位:摄氏度
  69113. char szWeatherState[64]; // 天气描述状态
  69114. int nWeatherCode; // 天气状态code值
  69115. BYTE byReserved[1024]; // 保留字节
  69116. }NET_WEATHERFORCAST_INFO;
  69117. ///@brief 推送天气预报入参
  69118. typedef struct tagNET_IN_PUSH_WEATHERFORCAST
  69119. {
  69120. DWORD dwSize;
  69121. NET_WEATHERFORCAST_INFO stuWeatherInfo; // 天气预报信息
  69122. }NET_IN_PUSH_WEATHERFORCAST;
  69123. ///@brief 推送天气预报出参
  69124. typedef struct tagNET_OUT_PUSH_WEATHERFORCAST
  69125. {
  69126. DWORD dwSize;
  69127. }NET_OUT_PUSH_WEATHERFORCAST;
  69128. ///@brief 推送天气预报
  69129. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PushWeatherForecast(LLONG lLoginID, const NET_IN_PUSH_WEATHERFORCAST* pstInParam, NET_OUT_PUSH_WEATHERFORCAST* pstOutParam, int nWaitTime);
  69130. //////////////////////////////////////////////////////////////////////
  69131. ///@brief 添加任务后的反馈类型
  69132. typedef enum tagNET_MISSION_FEEDBACK_TYPE
  69133. {
  69134. NET_MISSION_FEEDBACK_NO = 0, // 不需要反馈
  69135. NET_MISSION_FEEDBACK_YES, // 需要对方反馈, 对方应当回复DH_ALARM_MISSION_CONFIRM任务确认事件
  69136. }NET_MISSION_FEEDBACK_TYPE;
  69137. ///@brief 消息类型(车载)
  69138. typedef enum tagNET_MISSION_MESSAGE_TYPE
  69139. {
  69140. NET_MISSION_MESSAGE_TEXT = 0 , //文本消息
  69141. NET_MISSION_MESSAGE_AD , //广告信息
  69142. NET_MISSION_MESSAGE_BROAD , //广播消息
  69143. NET_MISSION_MESSAGE_DRIVER , //司机消息
  69144. NET_MISSION_MESSAGE_DISPATCH , //调度指令
  69145. NET_MISSION_MESSAGE_TRANSPARENT , //透明数据
  69146. NET_MISSION_MESSAGE_URGENT, //紧急事件
  69147. NET_MISSION_MESSAGE_CALL = 7, //呼叫类型
  69148. NET_MISSION_MESSAGE_GENERAL_ALARM, // 通用报警类型
  69149. NET_MISSION_MESSAGE_ACCESS_ONE_KEY_ALARM, // 门禁一键报警
  69150. NET_MISSION_MESSAGE_ABNORMAL_HUMAN_BODY_TEMPERATURE_MEASUREMENT_ALARM, // 人体测温异常报警(隔离点项目)
  69151. NET_MISSION_MESSAGE_NO_TEMPERATURE_MEASUREMENT_ALARM, // 未测温报警(隔离点项目)
  69152. NET_MISSION_MESSAGE_ABNORMAL_BREATH, // 呼吸异常(隔离点项目)
  69153. NET_MISSION_MESSAGE_ABNORMAL_HEARTBEAT, // 心跳异常(隔离点项目)
  69154. NET_MISSION_MESSAGE_ABNORMAL_GET_OUT_BED, // 在离床异常(隔离点项目)
  69155. NET_MISSION_MESSAGE_ABNORMAL_PEOPLE_NUMBER, // 人数异常(隔离点项目)
  69156. NET_MISSION_MESSAGE_FALL = 16, // 跌倒(室内雷达)(隔离点项目)
  69157. NET_MISSION_MESSAGE_DRESSING_CHANGE_REQUEST, // 换药请求
  69158. NET_MISSION_MESSAGE_REQUEST_SUPPORT, // 请求支援
  69159. NET_MISSION_MESSAGE_NURSING_REQUEST, // 护理请求
  69160. NET_MISSION_MESSAGE_DOOR_LIGHT_CONTROL, // 门灯控制
  69161. NET_MISSION_MESSAGE_HANDLE_DISCONNECTED_ALARM, // 手柄掉线报警
  69162. NET_MISSION_MESSAGE_MAX ,
  69163. }NET_MISSION_MESSAGE_TYPE;
  69164. ///@brief 医护对讲报警、护理任务信息
  69165. typedef struct tagNET_HOSPITAL_ALARM_DATA
  69166. {
  69167. char szRoomNumber[16]; // 病房信息
  69168. char szBedNumber[8]; // 病床信息
  69169. char szDeviceCode[64]; // 发生事件的设备编号
  69170. UINT nUTC; // 事件时间
  69171. char szCallNumber[32]; // 触发事件设备的呼叫号码
  69172. int nLightMode; // 门灯颜色及模式控制, 0:不亮, 1:红色(特级护理), 2:黄色(一级护理), 3:蓝色(二级护理), 4:绿色(三级护理), 5:红色闪烁(一键报警)
  69173. char szReserved[152]; // 保留字节
  69174. } NET_HOSPITAL_ALARM_DATA;
  69175. ///@brief CLIENT_AddMission()接口输入参数
  69176. typedef struct tagNET_IN_ADD_MISSION
  69177. {
  69178. DWORD dwSize;
  69179. char szTitle[DH_COMMON_STRING_256]; // 任务名称
  69180. char szMissionID[DH_COMMON_STRING_256]; // 任务ID
  69181. char szComment[DH_COMMON_STRING_256]; // 回复内容
  69182. NET_MISSION_FEEDBACK_TYPE emFeedBack; // 添加后反馈类型
  69183. NET_MISSION_MESSAGE_TYPE emMessageType; // 消息类型
  69184. BOOL bComment; // FALSE时,szComment有效;TRUE时,szCommentEx有效
  69185. char szCommentEx[DH_COMMON_STRING_2048]; // 回复内容,不可以为空
  69186. int nChannel[DH_MAX_CHANNEL_COUNT]; // 在哪几个通道进行叠加,支持多通道同时叠加
  69187. int nDuration; // 叠加显示时长,0表示一直叠加至下一次协议下发,其它数字表示显示时长,单位秒
  69188. int nCount; // nChannel实际长度
  69189. int nHospitalAlarmsCount; // 任务内容列表个数
  69190. NET_HOSPITAL_ALARM_DATA stuHospitalAlarms[32]; // 任务内容列表
  69191. }NET_IN_ADD_MISSION;
  69192. ///@brief CLIENT_AddMission()接口输出参数
  69193. typedef struct tagNET_OUT_ADD_MISSION
  69194. {
  69195. DWORD dwSize;
  69196. }NET_OUT_ADD_MISSION;
  69197. ///@brief pstInParam与pstOutParam内存由用户申请释放
  69198. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddMission(LLONG lLoginID, const NET_IN_ADD_MISSION* pstInParam, NET_OUT_ADD_MISSION* pstOutParam, int nWaitTime = 3000);
  69199. ///@brief CLIENT_ParkingControlStartFind接口输入参数
  69200. typedef struct tagNET_IN_PARKING_CONTROL_START_FIND_PARAM
  69201. {
  69202. DWORD dwSize; // 结构体大小
  69203. BOOL bSearchCount; // 查询记录调试是否有效
  69204. DWORD dwSearchCount; // 查询记录条数, 数值范围1~100
  69205. BOOL bBegin; // 查询开始时间是否有效
  69206. NET_TIME stuBegin; // 查询开始时间
  69207. BOOL bEnd; // 查询结束时间是否有效
  69208. NET_TIME stuEnd; // 查询结束时间
  69209. BOOL bCardType; // 卡类型是否有效
  69210. NET_ECK_IC_CARD_USER_TYPE emCardType; // 卡类型
  69211. BOOL bFlag; // 过车标记是否有效
  69212. NET_ECK_CAR_PASS_FLAG emFlag; // 过车标记
  69213. } NET_IN_PARKING_CONTROL_START_FIND_PARAM;
  69214. ///@brief CLIENT_ParkingControlStartFind接口输出参数
  69215. typedef struct tagNET_OUT_PARKING_CONTROL_START_FIND_PARAM
  69216. {
  69217. DWORD dwSize; // 结构体大小
  69218. DWORD dwTotalCount; // 符合此次查询条件的结果总条数
  69219. } NET_OUT_PARKING_CONTROL_START_FIND_PARAM;
  69220. ///@brief CLIENT_ParkingControlDoFind接口输入参数
  69221. typedef struct tagNET_IN_PARKING_CONTROL_DO_FIND_PARAM
  69222. {
  69223. DWORD dwSize; // 结构体大小
  69224. DWORD dwFileCount; // 当前想查询的记录条数
  69225. } NET_IN_PARKING_CONTROL_DO_FIND_PARAM;
  69226. ///@brief 过车记录信息
  69227. typedef struct tagNET_CAR_PASS_ITEM
  69228. {
  69229. DWORD dwSize;
  69230. NET_TIME stuTime; // 过车时间
  69231. DWORD dwCardNo; // 卡号
  69232. NET_ECK_IC_CARD_USER_TYPE emCardType; // 卡类型
  69233. NET_ECK_CAR_PASS_FLAG emFlag; // 过车记录类型
  69234. } NET_CAR_PASS_ITEM;
  69235. ///@brief CLIENT_ParkingControlDoFind接口输出参数
  69236. typedef struct tagNET_OUT_PARKING_CONTROL_DO_FIND_PARAM
  69237. {
  69238. DWORD dwSize; // 结构体大小
  69239. NET_CAR_PASS_ITEM *pstuRecordList; // 记录列表,用户分配内存,大小为sizeof(NET_CAR_PASS_ITEM)*nMaxRecordNum
  69240. int nMaxRecordNum; // 列表记录数
  69241. int nRetRecordNum; // 查询到的记录条数,当查询到的条数小于想查询的条数时,查询结束
  69242. } NET_OUT_PARKING_CONTROL_DO_FIND_PARAM;
  69243. ///@brief 开始过车记录查询,pInParam与pOutParam内存由用户申请释放
  69244. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ParkingControlStartFind(LLONG lLoginID, NET_IN_PARKING_CONTROL_START_FIND_PARAM* pInParam, NET_OUT_PARKING_CONTROL_START_FIND_PARAM* pOutParam, int waittime);
  69245. ///@brief 获取过车记录,pInParam与pOutParam内存由用户申请释放
  69246. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ParkingControlDoFind(LLONG lFindeHandle, NET_IN_PARKING_CONTROL_DO_FIND_PARAM* pInParam, NET_OUT_PARKING_CONTROL_DO_FIND_PARAM* pOutParam, int waittime);
  69247. ///@brief 结束过车记录查询
  69248. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ParkingControlStopFind(LLONG lFindHandle);
  69249. ///@brief 订阅过车记录数据回调函数原型
  69250. typedef void (CALLBACK *fParkingControlRecordCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_CAR_PASS_ITEM *pInfo, int nBufLen, LDWORD dwUser);
  69251. ///@brief CLIENT_ParkingControlAttachRecord()接口输入参数
  69252. typedef struct tagNET_IN_PARKING_CONTROL_PARAM
  69253. {
  69254. DWORD dwSize;
  69255. fParkingControlRecordCallBack cbCallBack; // 数据回调函数
  69256. LDWORD dwUser; // 用户定义参数
  69257. } NET_IN_PARKING_CONTROL_PARAM;
  69258. ///@brief CLIENT_ParkingControlDetachRecord()接口输出参数
  69259. typedef struct tagNET_OUT_PARKING_CONTROL_PARAM
  69260. {
  69261. DWORD dwSize;
  69262. } NET_OUT_PARKING_CONTROL_PARAM;
  69263. ///@brief 过车记录订阅,pInParam与pOutParam内存由用户申请释放
  69264. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ParkingControlAttachRecord(LLONG lLoginID, const NET_IN_PARKING_CONTROL_PARAM* pInParam, NET_OUT_PARKING_CONTROL_PARAM* pOutParam, int nWaitTime);
  69265. ///@brief 取消过车记录订阅
  69266. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ParkingControlDetachRecord(LLONG lAttachHandle);
  69267. ///@brief 车检器状态
  69268. typedef enum tagNET_CAR_DETECTOR_STATE
  69269. {
  69270. NET_CAR_DETECTOR_STATE_UNKNOWN = -1,
  69271. NET_CAR_DETECTOR_STATE_OFFLINE = 0, // 掉线
  69272. NET_CAR_DETECTOR_STATE_ONLINE, // 在线
  69273. NET_CAR_DETECTOR_STATE_LOOPOFFLINE, // 地感线圈掉线
  69274. } NET_CAR_DETECTOR_STATE;
  69275. ///@brief 辅助设备通用状态
  69276. typedef enum tagNET_AUXILIARY_DEV_STATE
  69277. {
  69278. NET_AUXILIARY_DEV_STATE_UNKNOWN = -1,
  69279. NET_AUXILIARY_DEV_STATE_OFFLINE = 0, // 掉线
  69280. NET_AUXILIARY_DEV_STATE_ONLINE, // 在线
  69281. } NET_AUXILIARY_DEV_STATE;
  69282. ///@brief 卡机IC卡的数量情况
  69283. typedef enum tagNET_IC_CARD_STATUS
  69284. {
  69285. NET_IC_CARD_STATUS_UNKNOWN = -1,
  69286. NET_IC_CARD_STATUS_NORMAL = 0, // 正常
  69287. NET_IC_CARD_STATUS_NOCARD, // 无卡
  69288. NET_IC_CARD_STATUS_LOWCARD, // 少卡
  69289. NET_IC_CARD_STATUS_FULLCARDS, // 回收卡满
  69290. } NET_IC_CARD_STATUS;
  69291. ///@brief 辅助设备运行模式
  69292. typedef enum tagNET_AUXILIARY_WORK_MODE
  69293. {
  69294. NET_AUXILIARY_WORK_MODE_UNKNOWN = 0,
  69295. NET_AUXILIARY_WORK_MODE_OFFLINE, // 脱机运行
  69296. NET_AUXILIARY_WORK_MODE_ONLINE, // 联机运行
  69297. } NET_AUXILIARY_WORK_MODE;
  69298. ///@brief 报警事件类型DH_ALARM_AUXILIARY_DEV_STATE(辅助设备状态事件)对应的数据描述信息
  69299. typedef struct tagALARM_AUXILIARY_DEV_STATE
  69300. {
  69301. DWORD dwSize;
  69302. NET_CAR_DETECTOR_STATE emDetector; // 车检器状态
  69303. NET_AUXILIARY_DEV_STATE emLed; // LED状态点阵屏状态
  69304. NET_AUXILIARY_DEV_STATE emICDetectBoard; // 面板刷卡板
  69305. NET_AUXILIARY_DEV_STATE emICSenderBoard; // 发卡刷卡板
  69306. NET_IC_CARD_STATUS emICCardStatus; // 卡机IC卡的数量情况
  69307. NET_AUXILIARY_WORK_MODE emWorkMode; // 运行模式
  69308. } ALARM_AUXILIARY_DEV_STATE;
  69309. ///@brief 停车发卡刷卡类型
  69310. typedef enum tagNET_PARKING_CARD_TYPE
  69311. {
  69312. NET_PARKING_CARD_TYPE_UNKNOWN,
  69313. NET_PARKING_CARD_TYPE_SEND, // 发卡
  69314. NET_PARKING_CARD_TYPE_DETECT, // 刷卡
  69315. } NET_PARKING_CARD_TYPE;
  69316. ///@brief 报警事件类型DH_ALARM_PARKING_CARD(停车刷卡事件)对应的数据描述信息
  69317. typedef struct tagALARM_PARKING_CARD
  69318. {
  69319. DWORD dwSize;
  69320. NET_PARKING_CARD_TYPE emType; // 类型
  69321. DWORD dwCardNo; // 卡号
  69322. char szPlate[DH_COMMON_STRING_16]; // 车牌
  69323. } ALARM_PARKING_CARD;
  69324. ///@brief 报警源设备的类型
  69325. typedef enum tagEM_ALARM_TRANSMIT_DEV_SRC_TYPE
  69326. {
  69327. EM_ALARM_TRANSMIT_DEV_SRC_TYPE_UNKNOWN, // 未知
  69328. EM_ALARM_TRANSMIT_DEV_SRC_TYPE_DIGIT, // Digit 数字
  69329. EM_ALARM_TRANSMIT_DEV_SRC_TYPE_ANALOG, // Analog 模拟
  69330. EM_ALARM_TRANSMIT_DEV_SRC_TYPE_SMARTLOCK, // SmartLock 智能锁
  69331. }EM_ALARM_TRANSMIT_DEV_SRC_TYPE;
  69332. ///@brief 报警类型
  69333. typedef enum tagEM_ALARM_TRANSMIT_ALARM_TYPE
  69334. {
  69335. EM_ALARM_TRANSMIT_ALARM_TYPE_UNKNOWN, // 未知
  69336. EM_ALARM_TRANSMIT_ALARM_TYPE_PREVENTREMOVE, // "PreventRemove" 防拆
  69337. EM_ALARM_TRANSMIT_ALARM_TYPE_LOWERPOWER, // "LowerPower" 低电压
  69338. EM_ALARM_TRANSMIT_ALARM_TYPE_KEY, // "Key" 钥匙
  69339. EM_ALARM_TRANSMIT_ALARM_TYPE_DURESS, // "Duress" 胁迫
  69340. EM_ALARM_TRANSMIT_ALARM_TYPE_BATTERYLOST, // "BatteryLost" 电池不在位
  69341. EM_ALARM_TRANSMIT_ALARM_TYPE_PSTN_BREAKLINE, // "PSTNBreakLine"电话线断开
  69342. EM_ALARM_TRANSMIT_ALARM_TYPE_EMERGENCY_HELP, // "EmergencyHelp"紧急求助
  69343. EM_ALARM_TRANSMIT_ALARM_TYPE_ALARMIN, // "AlarmIn" 报警输入
  69344. }EM_ALARM_TRANSMIT_ALARM_TYPE;
  69345. ///@brief 低电压附带信息
  69346. typedef struct tagNET_LOWERPOWER_INFO
  69347. {
  69348. int nPercent; // 当前电量
  69349. char szReserved[128]; // 预留
  69350. }NET_LOWERPOWER_INFO;
  69351. ///@brief 报警输入附带信息
  69352. typedef struct tagNET_ALARMIN_INFO
  69353. {
  69354. int nChannel; // 报警输入通道号
  69355. char szReserved[128]; // 预留
  69356. }NET_ALARMIN_INFO;
  69357. ///@brief 传感器类型报警的数值与emSenseMethod关联
  69358. typedef struct tagNET_SENSE_VALUE_INFO
  69359. {
  69360. double dValue; // 数值
  69361. char szUnit[32]; // 单位
  69362. char szReserved[128]; // 预留
  69363. }NET_SENSE_VALUE_INFO;
  69364. ///@brief 上报的云附带信息
  69365. typedef struct tagNET_CLOUD_INFO
  69366. {
  69367. int nVideoLinkChannel; // 报警时,云存储使用的视频联动通道号,可视对讲默认使用0通道
  69368. char szReserved[60]; // 预留
  69369. }NET_CLOUD_INFO;
  69370. ///@brief 报警类型的附带信息
  69371. typedef struct tagNET_PROFILE_ALARM_INFO
  69372. {
  69373. NET_LOWERPOWER_INFO stuLowerPower; // 低电压附带信息
  69374. NET_ALARMIN_INFO stuAlarmIn; // 报警输入附带信息
  69375. NET_SENSE_VALUE_INFO stuSenseValue; // 传感器类型报警的数值与emSenseMethod关联
  69376. NET_CLOUD_INFO stuCloudInfo; // 上报的云附带信息
  69377. char szReserved[64]; // 预留
  69378. }NET_PROFILE_ALARM_INFO;
  69379. ///@brief 报警传输事件(对应结构体ALARM_PROFILE_ALARM_TRANSMIT_INFO)
  69380. typedef struct tagALARM_PROFILE_ALARM_TRANSMIT_INFO
  69381. {
  69382. DWORD dwSize;
  69383. int nChannelID; // 通道号
  69384. int nAction; // 0:开始 1:停止
  69385. NET_TIME stuTime; // 事件发生时间
  69386. NET_SENSE_METHOD emSenseMethod; // 传感器类型
  69387. char szUserID[DH_COMMON_STRING_128]; // 报警用户,用于区分
  69388. EM_ALARM_TRANSMIT_DEV_SRC_TYPE emDevSrcType; // 报警源设备的类型
  69389. EM_ALARM_TRANSMIT_ALARM_TYPE emAlarmType; // 报警类型
  69390. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  69391. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  69392. char szSN[32]; // 设备编号
  69393. char szSnapURL[128]; // 抓拍照片存储地址
  69394. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  69395. NET_PROFILE_ALARM_INFO stuAlarmInfo; // 报警附带信息
  69396. char szResvered[1024]; // 预留字节
  69397. }ALARM_PROFILE_ALARM_TRANSMIT_INFO;
  69398. ///@brief 事件类型EVENT_IVS_PROFILEALARMTRANSMIT(报警传输事件)对应数据块描述信息,
  69399. typedef struct tagDEV_EVENT_PROFILE_ALARM_TRANSMIT_INFO
  69400. {
  69401. int nChannelID; // 通道号
  69402. int nEventID; // 事件ID
  69403. char szName[128]; // 事件名称
  69404. double PTS; // 时间戳(单位是毫秒)
  69405. int nAction; // 0:开始 1:停止
  69406. NET_TIME_EX stuTime; // 事件发生时间
  69407. NET_SENSE_METHOD emSenseMethod; // 传感器类型
  69408. EM_ALARM_TRANSMIT_DEV_SRC_TYPE emDevSrcType; // 报警源设备的类型
  69409. char szUserID[32]; // 报警用户,用于区分
  69410. EM_ALARM_TRANSMIT_ALARM_TYPE emAlarmType; // 报警类型
  69411. BOOL bRealUTC; // RealUTC 是否有效,bRealUTC 为 TRUE 时,用 RealUTC,否则用 stuTime 字段
  69412. NET_TIME_EX RealUTC; // 事件发生的时间(标准UTC)
  69413. NET_PROFILE_ALARM_INFO stuAlarmInfo; // 报警类型的附带信息
  69414. char szSN[32]; // 设备编号
  69415. char szSnapURL[128]; // 抓拍照片存储地址 上传抓拍照片,在事件中通知首张抓拍照片地址 有多张照片通过图片名xxx_N区分,N表示第几张,从1开始
  69416. UINT nAlarmLevel; // 报警等级
  69417. char szReserved[246]; // 预留
  69418. } DEV_EVENT_PROFILE_ALARM_TRANSMIT_INFO;
  69419. ///@brief 订阅监测点位信息,pInParam与pOutParam内存由用户申请释放
  69420. CLIENT_NET_API LLONG CALL_METHOD CLIENT_SCADAAttachInfo(LLONG lLoginID, const NET_IN_SCADA_ATTACH_INFO* pInParam, NET_OUT_SCADA_ATTACH_INFO* pOutParam, int nWaitTime);
  69421. ///@brief 取消监测点位信息订阅
  69422. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SCADADetachInfo(LLONG lAttachHandle);
  69423. ///@brief 获取阈值,pInParam与pOutParam内存由用户申请释放
  69424. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SCADAGetThreshold(LLONG lLoginID, const NET_IN_SCADA_GET_THRESHOLD* pInParam, NET_OUT_SCADA_GET_THRESHOLD* pOutParam, int nWaitTime);
  69425. ///@brief 设置阈值,pInParam与pOutParam内存由用户申请释放
  69426. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SCADASetThreshold(LLONG lLoginID, const NET_IN_SCADA_SET_THRESHOLD* pInParam, NET_OUT_SCADA_SET_THRESHOLD* pOutParam, int nWaitTime);
  69427. ///@brief 开始查询SCADA点位历史数据,pInParam与pOutParam内存由用户申请释放
  69428. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindSCADA(LLONG lLoginID, const NET_IN_SCADA_START_FIND* pInParam, NET_OUT_SCADA_START_FIND* pOutParam, int nWaitTime);
  69429. ///@brief 获取SCADA点位历史数据,pInParam与pOutParam内存由用户申请释放
  69430. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindSCADA(LLONG lFindHandle, const NET_IN_SCADA_DO_FIND* pInParam, NET_OUT_SCADA_DO_FIND* pOutParam, int nWaitTime);
  69431. ///@brief 停止查询SCADA点位历史数据
  69432. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindSCADA(LLONG lFindHandle);
  69433. ///@brief 订阅监测点位报警信息,pInParam与pOutParam内存由用户申请释放
  69434. CLIENT_NET_API LLONG CALL_METHOD CLIENT_SCADAAlarmAttachInfo(LLONG lLoginID, const NET_IN_SCADA_ALARM_ATTACH_INFO* pInParam, NET_OUT_SCADA_ALARM_ATTACH_INFO* pOutParam, int nWaitTime = 3000);
  69435. ///@brief 取消订阅监测点位报警信息
  69436. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SCADAAlarmDetachInfo(LLONG lAttachHandle);
  69437. ///@brief 设置监测点位信息,pInParam与pOutParam内存由用户申请释放
  69438. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SCADASetInfo(LLONG lLoginID, const NET_IN_SCADA_POINT_SET_INFO_LIST* pInParam, NET_OUT_SCADA_POINT_SET_INFO_LIST* pOutParam, int nWaitTime = 3000);
  69439. ///@brief 获取条件
  69440. typedef struct tagNET_GET_CONDITION_INFO
  69441. {
  69442. char szDeviceID[32]; // 设备ID
  69443. BOOL bIsSendID; // 是否发生ID,TRUE:发送 FALSE:不发送(如无此节点则返回该DeviceId下所有ID)
  69444. char szID[256][256]; // 相应的监控点ID号
  69445. int nIDNum; // 下发个数
  69446. BYTE byReserved[256]; // 保留字节
  69447. }NET_GET_CONDITION_INFO;
  69448. ///@brief 获取设备点位信息 入参
  69449. typedef struct tagNET_IN_SCADA_GET_ATTRIBUTE_INFO
  69450. {
  69451. DWORD dwSize; // 结构体大小
  69452. NET_GET_CONDITION_INFO stuCondition; // 获取条件
  69453. }NET_IN_SCADA_GET_ATTRIBUTE_INFO;
  69454. ///@brief 信号点数据状态
  69455. typedef enum tagEM_ATTRIBUTE_STATUS
  69456. {
  69457. EM_ATTRIBUTE_STATUS_UNKNOWN = -1, // 未知
  69458. EM_ATTRIBUTE_STATUS_NORMAL, // 正常
  69459. EM_ATTRIBUTE_STATUS_LEVEL_1_ALARM, // 1级告警
  69460. EM_ATTRIBUTE_STATUS_LEVEL_2_ALARM, // 2级告警
  69461. EM_ATTRIBUTE_STATUS_LEVEL_3_ALARM, // 3级告警
  69462. EM_ATTRIBUTE_STATUS_LEVEL_4_ALARM, // 4级告警
  69463. EM_ATTRIBUTE_STATUS_OPERATION_EVENT, // 操作事件
  69464. EM_ATTRIBUTE_STATUS_INVALID_DATA, // 无效数据
  69465. }EM_ATTRIBUTE_STATUS;
  69466. ///@brief 数据显示选项
  69467. typedef struct tagNET_DISPLAY_OPTIONS_INFO
  69468. {
  69469. BOOL bIsSwitchDisplayed; // 是否显示开关 TRUE:是 FALSE:否
  69470. BOOL bIsScrollDisplaySwitch; // 是否显示滚动开关 TRUE:是 FALSE:否
  69471. BYTE byReserved[120]; // 保留字节
  69472. }NET_DISPLAY_OPTIONS_INFO;
  69473. ///@brief 设备点位信息
  69474. typedef struct tagNET_ATTRIBUTE_INFO
  69475. {
  69476. char szSignalName[128]; // 点位名称
  69477. char szUnit[20]; // 单位
  69478. EM_NET_SCADA_POINT_TYPE emPointType; // 待查询的点位类型
  69479. char szID[32]; // 信号点ID
  69480. UINT nStartDelay; // 告警开始延时,单位:秒
  69481. UINT nStopDelay; // 告警结束延时,单位:秒
  69482. UINT nPeriod; // 存储、上报周期,单位:秒
  69483. float fThreshold; // 告警门限
  69484. float fAlarmWaveVal; // 告警回差(当告警恢复时需超过回差范围,告警才恢复,与告警延时不同时起效)
  69485. float fAbsoluteVal; // 绝对阈值(针对连续数据点(AI、AO)存储、上报)
  69486. float fRelativeVal; // 百分比阈值(针对连续数据点(AI、AO)存储、上报,当绝对阈值不启用或者为"0"时使用)
  69487. EM_ATTRIBUTE_STATUS emStatus; // 信号点数据状态
  69488. NET_DISPLAY_OPTIONS_INFO stuDisplayOptions; // 数据显示选项
  69489. BOOL bIsValid; // 是否有效信号点 TRUE:有效 FALSE:无效
  69490. UINT nDelay; // 告警延时, 单位:秒
  69491. char szDescription[120]; // 点位信息描述
  69492. BYTE byReserved[136]; // 保留字节
  69493. }NET_ATTRIBUTE_INFO;
  69494. ///@brief 获取设备点位信息 出参
  69495. typedef struct tagNET_OUT_SCADA_GET_ATTRIBUTE_INFO
  69496. {
  69497. DWORD dwSize; // 结构体大小
  69498. UINT nMaxAttributeInfoNum; // 用户最大申请缓存个数
  69499. NET_ATTRIBUTE_INFO *pstuAttributeInfo; // 设备点位信息(内存由用户申请)
  69500. UINT nRetAttributeInfoNum; // 返回点位信息个数
  69501. }NET_OUT_SCADA_GET_ATTRIBUTE_INFO;
  69502. ///@brief 获取设备点位信息
  69503. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SCADAGetAttributeInfo(LLONG lLoginID, const NET_IN_SCADA_GET_ATTRIBUTE_INFO *pstInParam, NET_OUT_SCADA_GET_ATTRIBUTE_INFO *pstOutParam, int nWaitTime);
  69504. //////////////////////////////////////////////////////////////////////
  69505. ///@brief 订阅无线对码信息接口,pstInParam与pstOutParam内存由用户申请释放
  69506. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachLowRateWPAN(LLONG lLoginID, const NET_IN_ATTACH_LOWRATEWPAN* pstInParam, NET_OUT_ATTACH_LOWRATEWPAN* pstOutParam, int nWaitTime = 3000);
  69507. ///@brief 取消订阅无线对码信息接口,lAttachHandle是CLIENT_AttachLowRateWPAN返回值
  69508. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachLowRateWPAN(LLONG lAttachHandle);
  69509. ///@brief 获取预览时用来解码显示的播放库端口,对获取到的端口做关闭资源类型的操作,会影响正常功能的使用
  69510. CLIENT_NET_API LONG CALL_METHOD CLIENT_GetRealPlayPort(LLONG lRealPlayHandle);
  69511. ///@brief 获取回放时用来解码显示的播放库端口,,对获取到的端口做关闭资源类型的操作,会影响正常功能的使用
  69512. CLIENT_NET_API LONG CALL_METHOD CLIENT_GetPlayBackPort(LLONG lPlayBackHandle);
  69513. ///@brief 智能停车系统车位状态
  69514. typedef enum tagNET_ECK_PARK_STATE
  69515. {
  69516. NET_ECK_PARK_STATE_UNKOWN,
  69517. NET_ECK_PARK_STATE_PARK, // 车位有车
  69518. NET_ECK_PARK_STATE_NOPARK, // 车位无车
  69519. } NET_ECK_PARK_STATE;
  69520. ///@brief 车位信息
  69521. typedef struct tagNET_PARK_INFO_ITEM
  69522. {
  69523. DWORD dwSize;
  69524. char szParkNo[DH_COMMON_STRING_32]; // 车位号
  69525. NET_ECK_PARK_STATE emState; // 车位状态
  69526. DWORD dwScreenIndex; // 车位号显示对应的诱导屏分屏号
  69527. DWORD dwFreeParkNum; // 屏号显示的当前空余车位数目
  69528. } NET_PARK_INFO_ITEM;
  69529. ///@brief 订阅车位信息回调函数原型
  69530. typedef void (CALLBACK *fParkInfoCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_PARK_INFO_ITEM *pInfo, int nBufLen, LDWORD dwUser);
  69531. ///@brief 车位检测器类型
  69532. typedef enum tagNET_ECK_PARK_DETECTOR_TYPE
  69533. {
  69534. NET_ECK_PARK_DETECTOR_TYPE_SONIC, // 超声波探测器
  69535. NET_ECK_PARK_DETECTOR_TYPE_CAMERA, // 相机检测器
  69536. NET_ECK_PARK_DETECTOR_TYPE_ALL = 2,
  69537. } NET_ECK_PARK_DETECTOR_TYPE;
  69538. ///@brief 车位检测器信息查询条件
  69539. typedef struct tagNET_PARK_INFO_FILTER
  69540. {
  69541. DWORD dwSize;
  69542. DWORD dwNum; // 车位检测器类型数量
  69543. NET_ECK_PARK_DETECTOR_TYPE emType[NET_ECK_PARK_DETECTOR_TYPE_ALL]; // 车位检测器类型
  69544. } NET_PARK_INFO_FILTER;
  69545. ///@brief CLIENT_ParkingControlAttachParkInfo()接口输入参数
  69546. typedef struct tagNET_IN_PARK_INFO_PARAM
  69547. {
  69548. DWORD dwSize;
  69549. NET_PARK_INFO_FILTER stuFilter;
  69550. fParkInfoCallBack cbCallBack; // 数据回调函数
  69551. LDWORD dwUser; // 用户定义参数
  69552. } NET_IN_PARK_INFO_PARAM;
  69553. ///@brief CLIENT_ParkingControlAttachParkInfo()接口输出参数
  69554. typedef struct tagNET_OUT_PARK_INFO_PARAM
  69555. {
  69556. DWORD dwSize;
  69557. } NET_OUT_PARK_INFO_PARAM;
  69558. ///@brief 车位状态订阅,pInParam与pOutParam内存由用户申请释放
  69559. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ParkingControlAttachParkInfo(LLONG lLoginID, const NET_IN_PARK_INFO_PARAM* pInParam, NET_OUT_PARK_INFO_PARAM* pOutParam, int nWaitTime);
  69560. ///@brief 取消车位状态订阅
  69561. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ParkingControlDetachParkInfo(LLONG lAttachHandle);
  69562. ///@brief 订阅视频电话状态信息,pInParam与pOutParam内存由用户申请释放
  69563. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachVTPCallState(LLONG lLoginID, const NET_IN_VTP_CALL_STATE_ATTACH* pInParam, NET_OUT_VTP_CALL_STATE_ATTACH* pOutParam, int nWaitTime);
  69564. ///@brief 取消订阅视频电话状态信息
  69565. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVTPCallState(LLONG lCallStateHandle);
  69566. ///@brief 手机订阅推送信息, 使用RegisterID标识配置项,pstuCfg内存由用户申请释放
  69567. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetMobileSubscribe(LLONG lLoginID, const NET_MOBILE_PUSH_NOTIFY *pstuCfg, int *nError, int *nRestart, int nWaitTime = 1000);
  69568. ///@brief 删除手机订阅推送信息, 使用RegisterID标识配置项,pstuIn与pstuOut内存由用户申请释放
  69569. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelMobileSubscribe(LLONG lLoginID, const NET_MOBILE_PUSH_NOTIFY_DEL *pstuIn, NET_OUT_DELETECFG* pstuOut, int nWaitTime = 1000);
  69570. ///@brief 获取手机订阅推送信息, 使用RegisterID+AppID标识配置项,AppID内容不能带点号,点号可以用下划线代替,pstuCfg内存由用户申请释放
  69571. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMobileSubscribeCfg(LLONG lLoginID, NET_MOBILE_PUSH_NOTIFY_CFG *pstuCfg, int *nError, int nWaitTime = 1000);
  69572. ///@brief 手机订阅推送信息, 使用RegisterID+AppID标识配置项,AppID内容不能带点号,点号可以用下划线代替,pstuCfg内存由用户申请释放
  69573. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetMobileSubscribeCfg(LLONG lLoginID, const NET_MOBILE_PUSH_NOTIFY_CFG *pstuCfg, int *nError, int *nRestart, int nWaitTime = 1000);
  69574. ///@brief 删除手机订阅推送信息, 使用RegisterID+AppID标识配置项,AppID内容不能带点号,点号可以用下划线代替,pstuIn与pstuOut内存由用户申请释放
  69575. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelMobileSubscribeCfg(LLONG lLoginID, const NET_MOBILE_PUSH_NOTIFY_CFG_DEL *pstuIn, NET_OUT_DELETECFG* pstuOut, int nWaitTime = 1000);
  69576. ///@brief pParam内存由用户申请释放,大小参照emType对应的结构体
  69577. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetOptimizeMode(EM_OPTIMIZE_TYPE emType, void *pParam);
  69578. ///@brief 本地优化模式
  69579. typedef enum __EM_LOCAL_MODE
  69580. {
  69581. EM_LOCAL_GDPR_SET_MODE = 100, // 设置GDPR 是否查询配置 :0-默认流程;1-GDPR1.X设备,码流加密已开启,不获取配置;
  69582. // 2-GDPR1.X设备,码流加密未开启,不获取配置;3-非GDPR设备,不获取配置,过滤AttachVK,GetVK
  69583. EM_LOCAL_PLAY_FLAG_MODE = 101, // 实时预览策略标志位 bit0 == 1 不支持画中画 bit1 == 1 不支持通道信息校验
  69584. EM_LOCAL_PLAYBACK_FLAG_MODE = 102, // 录像回放和录像查询策略标志位 bit0 == 1 不支持画中画
  69585. } EM_LOCAL_MODE;
  69586. ///@brief 设置本地一些特殊的优化模式
  69587. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetLocalMode(LLONG lLoginID, EM_LOCAL_MODE emType, void* pValue);
  69588. ///@brief 全景云台操作类型
  69589. typedef enum tagEM_NET_WIDE_VIEW_CTRL
  69590. {
  69591. EM_NET_WIDE_VIEW_CTRL_START, // 开始产生全景图, startGenerateWideView, 结构体 NET_IN_WIDE_VIEW_GENERATE_START 和 NET_OUT_WIDE_VIEW_GENERATE_START
  69592. EM_NET_WIDE_VIEW_CTRL_STOP, // 停止产生全景图, stopGenerateWideView, 结构体 NET_IN_WIDE_VIEW_GENERATE_STOP 和 NET_OUT_WIDE_VIEW_GENERATE_STOP
  69593. EM_NET_WIDE_VIEW_CTRL_PROGRESS, // 获取全景图生成的当前进度, getWideViewProgress, 结构体 NET_IN_WIDE_VIEW_PROGRESS 和 NET_OUT_WIDE_VIEW_PROGRESS
  69594. EM_NET_WIDE_VIEW_CTRL_IMAGEINFO, // 获取全景图信息, getImageInfo, 结构体 NET_IN_WIDE_VIEW_IMAGE 和 NET_OUT_WIDE_VIEW_IMAGE
  69595. EM_NET_WIDE_VIEW_CTRL_WV_COORD, // 从云台坐标转换到全景图坐标, getWideViewCoordinates, 结构体 NET_IN_WIDE_VIEW_WV 和 NET_OUT_WIDE_VIEW_WV
  69596. EM_NET_WIDE_VIEW_CTRL_PTZ_COORD, // 从全景图转换到云台绝对坐标, getPtzCoordinates, 结构体 NET_IN_WIDE_VIEW_PTZ 和 NET_OUT_WIDE_VIEW_PTZ
  69597. } EM_NET_WIDE_VIEW_CTRL;
  69598. ///@brief 开始产生全景图入参
  69599. typedef struct tagNET_IN_WIDE_VIEW_GENERATE_START
  69600. {
  69601. DWORD dwSize;
  69602. int nChannel; // 通道号
  69603. } NET_IN_WIDE_VIEW_GENERATE_START;
  69604. ///@brief 开始产生全景图出参
  69605. typedef struct tagNET_OUT_WIDE_VIEW_GENERATE_START
  69606. {
  69607. DWORD dwSize;
  69608. } NET_OUT_WIDE_VIEW_GENERATE_START;
  69609. ///@brief 停止产生全景图入参
  69610. typedef struct tagNET_IN_WIDE_VIEW_GENERATE_STOP
  69611. {
  69612. DWORD dwSize;
  69613. int nChannel; // 通道号
  69614. } NET_IN_WIDE_VIEW_GENERATE_STOP;
  69615. ///@brief 停止产生全景图出参
  69616. typedef struct tagNET_OUT_WIDE_VIEW_GENERATE_STOP
  69617. {
  69618. DWORD dwSize;
  69619. } NET_OUT_WIDE_VIEW_GENERATE_STOP;
  69620. ///@brief 获取全景图生成的当前进度入参
  69621. typedef struct tagNET_IN_WIDE_VIEW_PROGRESS
  69622. {
  69623. DWORD dwSize;
  69624. int nChannel; // 通道号
  69625. } NET_IN_WIDE_VIEW_PROGRESS;
  69626. ///@brief 获取全景图生成的当前进度出参
  69627. typedef struct tagNET_OUT_WIDE_VIEW_PROGRESS
  69628. {
  69629. DWORD dwSize;
  69630. int nProgress; // 全景图生成的当前进度, 范围0-100
  69631. } NET_OUT_WIDE_VIEW_PROGRESS;
  69632. ///@brief 获取全景图信息入参
  69633. typedef struct tagNET_IN_WIDE_VIEW_IMAGE
  69634. {
  69635. DWORD dwSize;
  69636. int nChannel; // 通道号
  69637. } NET_IN_WIDE_VIEW_IMAGE;
  69638. ///@brief 全景图信息
  69639. typedef struct tagNET_WIDE_VIEW_IMAGE_INFO
  69640. {
  69641. char szImageUrl[MAX_PATH]; // URL
  69642. } NET_WIDE_VIEW_IMAGE_INFO;
  69643. ///@brief 获取全景图信息出参
  69644. typedef struct tagNET_OUT_WIDE_VIEW_IMAGE
  69645. {
  69646. DWORD dwSize;
  69647. NET_WIDE_VIEW_IMAGE_INFO stuImageInfo; // 全景图信息
  69648. } NET_OUT_WIDE_VIEW_IMAGE;
  69649. #define NET_WIDE_VIEW_COORDINATES_MAX (64)
  69650. ///@brief 从云台坐标转换到全景图坐标入参
  69651. typedef struct tagNET_IN_WIDE_VIEW_WV
  69652. {
  69653. DWORD dwSize;
  69654. int nChannel; // 通道号
  69655. int nNum; // 有效的云台坐标个数
  69656. PTZ_SPEED_UNIT stuPTZ[NET_WIDE_VIEW_COORDINATES_MAX]; // 云台方向与放大倍数
  69657. } NET_IN_WIDE_VIEW_WV;
  69658. ///@brief 从云台坐标转换到全景图坐标出参
  69659. typedef struct tagNET_OUT_WIDE_VIEW_WV
  69660. {
  69661. DWORD dwSize;
  69662. NET_RECT stuRect[NET_WIDE_VIEW_COORDINATES_MAX]; // 全景图坐标
  69663. } NET_OUT_WIDE_VIEW_WV;
  69664. ///@brief 从全景图转换到云台绝对坐标入参
  69665. typedef struct tagNET_IN_WIDE_VIEW_PTZ
  69666. {
  69667. DWORD dwSize;
  69668. int nChannel; // 通道号
  69669. int nNum; // 有效的全景坐标个数
  69670. NET_RECT stuRect[NET_WIDE_VIEW_COORDINATES_MAX]; // 全景图坐标
  69671. } NET_IN_WIDE_VIEW_PTZ;
  69672. ///@brief 从全景图转换到云台绝对坐标出参
  69673. typedef struct tagNET_OUT_WIDE_VIEW_PTZ
  69674. {
  69675. DWORD dwSize;
  69676. PTZ_SPEED_UNIT stuPTZ[NET_WIDE_VIEW_COORDINATES_MAX]; // 云台方向与放大倍数
  69677. } NET_OUT_WIDE_VIEW_PTZ;
  69678. ///@brief 全景云台相关操作接口, 操作类型参照 EM_NET_WIDE_VIEW_CTRL,pstuInParam与pstuOutParam内存由用户申请释放,大小参照emCtrlType对应的结构体
  69679. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WideViewCtrl(LLONG lLoginID, EM_NET_WIDE_VIEW_CTRL emCtrlType, const void *pstuInParam, void *pstuOutParam, int nWaitTime = 1000);
  69680. ///@brief pInParam与pOutParam内存由用户申请释放
  69681. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetMarkFile(LLONG lLoginID,const NET_IN_SET_MARK_FILE* pInParam, NET_OUT_SET_MARK_FILE* pOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT );
  69682. ///@brief 按时间标记录像,pInParam与pOutParam内存由用户申请释放
  69683. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetMarkFileByTime(LLONG lLoginID, const NET_IN_SET_MARK_FILE_BY_TIME* pInParam, NET_OUT_SET_MARK_FILE_BY_TIME* pOutParam, int nWaitTime = 1000);
  69684. ///@brief 获取标记录像信息,pInParam与pOutParam内存由用户申请释放
  69685. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMarkInfo(LLONG lLoginID, const NET_IN_GET_MARK_INFO* pInParam, NET_OUT_GET_MARK_INFO* pOutParam, int nWaitTime = 1000);
  69686. ///@brief 录音码流类型
  69687. typedef enum tagEM_NET_AUDIO_REC_STREAM
  69688. {
  69689. EM_NET_AUDIO_REC_STREAM_UNKNOWN,
  69690. EM_NET_AUDIO_REC_STREAM_MAIN, // Main
  69691. EM_NET_AUDIO_REC_STREAM_EXTRA1, // Extra1
  69692. EM_NET_AUDIO_REC_STREAM_EXTRA2, // Extra2
  69693. EM_NET_AUDIO_REC_STREAM_EXTRA3, // Extra3
  69694. EM_NET_AUDIO_REC_STREAM_TALKBACK, // Talkback
  69695. } EM_NET_AUDIO_REC_STREAM;
  69696. ///@brief 开启/关闭音频录音并得到录音名入参, 对应命令DH_CTRL_AUDIO_REC_START_NAME和DH_CTRL_AUDIO_REC_STOP_NAME
  69697. typedef struct tagNET_IN_AUDIO_REC_MNG_NAME
  69698. {
  69699. DWORD dwSize; // 该结构体大小
  69700. int nChannel; // 音频通道号
  69701. EM_NET_AUDIO_REC_STREAM emStream; // 码流类型
  69702. } NET_IN_AUDIO_REC_MNG_NAME;
  69703. ///@brief 开启/关闭音频录音并得到录音名出参, 对应命令DH_CTRL_AUDIO_REC_START_NAME和DH_CTRL_AUDIO_REC_STOP_NAME
  69704. typedef struct tagNET_OUT_AUDIO_REC_MNG_NAME
  69705. {
  69706. DWORD dwSize; // 该结构体大小
  69707. char szFileName[MAX_PATH]; // 录音文件名
  69708. } NET_OUT_AUDIO_REC_MNG_NAME;
  69709. ///@brief 开启录像类型
  69710. typedef enum tagEM_NET_REC_EVENT
  69711. {
  69712. EM_NET_REC_EVENT_UNKNOWN, // 未知
  69713. EM_NET_REC_EVENT_ALARM, // Alarm
  69714. } EM_NET_REC_EVENT;
  69715. ///@brief 开启/关闭指定通道录像入参, 可以指定录像类型
  69716. typedef struct tagNET_IN_REC_MNG_CTRL_MPT300
  69717. {
  69718. DWORD dwSize; // 该结构体大小
  69719. int nChannel; // 通道号
  69720. EM_NET_REC_EVENT emType; // 录像类型, nAction为0时有效
  69721. int nAction; // 0:开启, 1:关闭
  69722. } NET_IN_REC_MNG_CTRL_MPT300;
  69723. ///@brief 开启/关闭指定通道录像出参
  69724. typedef struct tagNET_OUT_REC_MNG_CTRL_MPT300
  69725. {
  69726. DWORD dwSize; // 该结构体大小
  69727. } NET_OUT_REC_MNG_CTRL_MPT300;
  69728. ///@brief 即时抓图(又名手动抓图)入参, 对应命令DH_CTRL_SNAP_MNG_SNAP_SHOT
  69729. typedef struct tagNET_IN_SNAP_MNG_SHOT
  69730. {
  69731. DWORD dwSize; // 该结构体大小
  69732. int nChannel; // 通道号
  69733. int nTime; // 连拍次数, 0表示停止抓拍,正数表示连续抓拍的张数
  69734. } NET_IN_SNAP_MNG_SHOT;
  69735. ///@brief 即时抓图(又名手动抓图)出参, 对应命令DH_CTRL_SNAP_MNG_SNAP_SHOT
  69736. typedef struct tagNET_OUT_SNAP_MNG_SHOT
  69737. {
  69738. DWORD dwSize; // 该结构体大小
  69739. } NET_OUT_SNAP_MNG_SHOT;
  69740. ///@brief 关闭数据库/恢复数据库入参, 对应命令DH_CTRL_LOG_STOP和DH_CTRL_LOG_RESUME
  69741. typedef struct tagNET_IN_LOG_MNG_CTRL
  69742. {
  69743. DWORD dwSize; // 该结构体大小
  69744. } NET_IN_LOG_MNG_CTRL;
  69745. ///@brief 关闭数据库/恢复数据库出参, 对应命令DH_CTRL_LOG_STOP和DH_CTRL_LOG_RESUME
  69746. typedef struct tagNET_OUT_LOG_MNG_CTRL
  69747. {
  69748. DWORD dwSize; // 该结构体大小
  69749. } NET_OUT_LOG_MNG_CTRL;
  69750. ///@brief 直接透传入参
  69751. typedef struct tagNET_IN_TRANSMIT_DIRECTLY
  69752. {
  69753. DWORD dwSize; // 结构体大小
  69754. char *szInBuffer; // 传送给设备的数据
  69755. DWORD dwInBufferSize; // 传送给设备的数据大小
  69756. NET_TRANSMIT_EXT_INFO stExtData; // 传送给设备的数据扩展, 二进制数据
  69757. } NET_IN_TRANSMIT_DIRECTLY;
  69758. ///@brief 直接透传出参
  69759. typedef struct tagNET_OUT_TRANSMIT_DIRECTLY
  69760. {
  69761. DWORD dwSize; // 结构体大小
  69762. char *szOutBuffer; // 设备返回的数据
  69763. DWORD dwOutBufferSize; // 设备返回的数据缓冲大小
  69764. DWORD dwRetBufferSize; // 实际返回的数据大小
  69765. } NET_OUT_TRANSMIT_DIRECTLY;
  69766. ///@brief 消除反潜报警,pInParam与pOutParam内存由用户申请释放
  69767. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ClearRepeatEnter(LLONG lLoginID, const NET_IN_CLEAR_REPEAT_ENTER* pInParam, NET_OUT_CLEAR_REPEAT_ENTER* pOutParam, int nWaitTime = 1000);
  69768. ///@brief 获取操作员用户名,pInParam与pOutParam内存由用户申请释放
  69769. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetOperatorName(LLONG lLoginID, const NET_IN_GET_OPERATOR_NAME* pInParam, NET_OUT_GET_OPERATOR_NAME* pOutParam, int nWaitTime = 1000);
  69770. ///@brief POS机连接方式
  69771. typedef enum tagEM_CONN_TYPE
  69772. {
  69773. EM_CONN_TYPE_UNKNOWN, // 未知
  69774. EM_CONN_TYPE_NET, // 网络连接
  69775. EM_CONN_TYPE_RS232, // RS232
  69776. EM_CONN_TYPE_RS485, // RS485
  69777. } EM_CONN_TYPE;
  69778. ///@brief POS机连接协议
  69779. typedef enum tagEM_CONN_PROT
  69780. {
  69781. EM_CONN_PROT_UNKNOWN, // 未知
  69782. EM_CONN_PROT_NONE, // 自定义
  69783. EM_CONN_PROT_POS, // POS
  69784. } EM_CONN_PROT;
  69785. ///@brief POS机状态
  69786. typedef enum tagEM_POS_STATUS
  69787. {
  69788. EM_POS_STATUS_OTHER = -1, // 其他错误
  69789. EM_POS_STATUS_NO, // 无错误
  69790. EM_POS_STATUS_PROT_FORMAT, // 不符合协议格式
  69791. EM_POS_STATUS_NET_ADDR_CONFLICT, // 网络地址冲突
  69792. EM_POS_STATUS_RS232_ADDR_CONFLICT, // 232串口地址冲突
  69793. EM_POS_STATUS_RS485_ADDR_CONFLICT, // 485串口地址冲突
  69794. EM_POS_STATUS_LINK_CHANNEL_CONFLICT, // 关联远程通道冲突
  69795. EM_POS_STATUS_NOT_EXIST, // 指定POS不存在
  69796. EM_POS_STATUS_NUM_LIMIT, // 添加的POS已超过上限
  69797. EM_POS_STATUS_NAME_CONFLICT, // POS名称冲突
  69798. } EM_POS_STATUS;
  69799. ///@brief POS机网络连接配置
  69800. typedef struct tagNET_POS_NET_ATT
  69801. {
  69802. char szSrcIp[DH_MAX_IPADDR_LEN_EX]; // POS机IP地址
  69803. int nSrcPort; // POS机端口
  69804. char szDstIp[DH_MAX_IPADDR_LEN_EX]; // NVR的IP地址
  69805. int nDstPort; // NVR的端口号
  69806. } NET_POS_NET_ATT;
  69807. ///@brief POS机COM连接配置, RS232, RS485
  69808. typedef struct tagNET_POS_COM_ATT
  69809. {
  69810. int nCommChannel; // 串口号(comm配置的下标号)
  69811. int nAddress; // RS485地址
  69812. DH_COMM_PROP stuAttr; // RS485串口属性
  69813. } NET_POS_COM_ATT;
  69814. ///@brief POS机自定义连接协议
  69815. typedef struct tagNET_POS_CUSTOM_PROT
  69816. {
  69817. char szStartStr[DH_COMMON_STRING_32]; // 开始字符
  69818. BOOL bAnyCharater; // 开始字符限制, TRUE表示开始字符为任何字符,FALSE则使用szStartStr字符
  69819. char szEndStr[DH_COMMON_STRING_32]; // 结束字符
  69820. char szLineDelimiter[DH_COMMON_STRING_32]; // 换行字符
  69821. int nMoreLine; // POS交易信息在视频上显示的行数
  69822. char szIgnoreStr[DH_COMMON_STRING_32]; // 协议解析忽略字符
  69823. BOOL bCaseSensitive; // 是否区分大小写
  69824. BYTE reserved[1024]; // 预留
  69825. } NET_POS_CUSTOM_PROT;
  69826. ///@brief 轮询联动配置
  69827. typedef struct tagNET_MONITOR_TOUR
  69828. {
  69829. BOOL bEnable; // 轮询使能
  69830. int nChannels[256]; // 轮训通道号列表
  69831. int nChannelCount; // 轮巡通道数量
  69832. BYTE reserved[32]; // 保留字节
  69833. } NET_MONITOR_TOUR;
  69834. #define MAX_NUMBER_PTZLINK 256 // 云台最大数量
  69835. #define MAX_NUMBER_TOUR 32 // 轮训联动配置最大数量
  69836. ///@brief POS事件联动结构体
  69837. typedef struct tagNET_POS_EVENT_LINK
  69838. {
  69839. DWORD dwSize; // 结构体大小
  69840. DH_TSECT stuTimeSection[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 布撤防时间段
  69841. BOOL bRecordEnable; // 录像使能
  69842. BOOL bRecordCloudEnable; // 是否开启录像云存储
  69843. DWORD dwRecordMask[DH_MAX_CHANNUM]; // 录像通道掩码(按位)
  69844. int nRecordLatch; // 录像延时时间,单位:秒,范围:10-300
  69845. BOOL bAlarmOutEnable; // 报警输出使能
  69846. DWORD dwAlarmOutMask[DH_MAX_CHANNUM]; // 报警输出通道掩码(按位)
  69847. int nAlarmOutLatch; // 报警输入停止后,输出延时时间,单位:秒,范围1-300
  69848. int nPtzLinkNum; // 云台配置数
  69849. NET_PTZ_LINK stuPtzLink[MAX_NUMBER_PTZLINK]; // 云台联动项
  69850. BOOL bPtzLinkEnable; // 云台联动使能
  69851. int nPtzLinkDelay; // 云台联动延迟,单位:秒,范围1-10
  69852. BOOL bSnapshotEnable; // 快照使能
  69853. BOOL bSnapshotCloudEnable; // 是否开启抓图云存储
  69854. DWORD dwSnapshotMask[DH_MAX_CHANNUM]; // 快照通道号掩码(按位)
  69855. int nSnapshotPeriod; // 帧间隔,每隔多少帧抓一张图片
  69856. int nSnapshotTimes; // 连拍次数
  69857. BOOL bTipEnable; // 本地消息框提示
  69858. BOOL bMailEnable; // 发送邮件,如果有图片,作为附件
  69859. BOOL bMessageEnable; // 上传到报警中心服务器
  69860. BOOL bBeepEnable; // 蜂鸣
  69861. BOOL bVoiceEnable; // 语音提示
  69862. DWORD dwVoiceMask[DH_MAX_CHANNUM]; // 语音提示播放通道号掩码
  69863. char szAudioFileName[MAX_PATH]; // 联动语音文件绝对路径
  69864. int nPlayTimes; // 联动语音播放次数
  69865. int nDejitter; // 去抖动时间,只对部分start/stop型事件有意义,单位:秒,范围0-600
  69866. BOOL bLogEnable; // 是否记录日志
  69867. int nMonitorTourNum; // 轮询联动数目
  69868. NET_MONITOR_TOUR stuMonitorTour[MAX_NUMBER_TOUR]; // 轮询联动配置
  69869. } NET_POS_EVENT_LINK;
  69870. ///@brief POS机信息
  69871. typedef struct tagNET_POS_INFO
  69872. {
  69873. BOOL bEnable; // 使能开关
  69874. DWORD dwPosId; // Pos的ID号,添加POS时无效
  69875. char szName[64]; // POS机名称
  69876. EM_CONN_TYPE emConnType; // 连接方式
  69877. NET_POS_NET_ATT stuNetAtt; // 网络连接配置, emConnType为EM_CONN_TYPE_NET时有效
  69878. NET_POS_COM_ATT stuComAtt; // 串口属性, emConnType为EM_CONN_TYPE_RS232或者EM_CONN_TYPE_RS485时有效
  69879. EM_CONN_PROT emConnProt; // 连接协议
  69880. NET_POS_CUSTOM_PROT stuCustom; // emConnProt为EM_CONN_PROT_NONE时有效
  69881. int nTimeOut; // 接收消息超时时间, 单位秒
  69882. int nLinkChannel[32]; // 每台POS接关联的通道
  69883. int nLinkChannelNum; // nLinkChannel有效数量
  69884. int nPlayBackTime; // POS消息关联视频的时间, 单位秒
  69885. BOOL bPreviewBlend; // 叠加到预览视频
  69886. BYTE reserved[1020]; // 预留
  69887. } NET_POS_INFO;
  69888. ///@brief 增加/修改一个Pos设备入参, 对应命令DH_CTRL_POS_ADD/DH_CTRL_POS_MODIFY
  69889. typedef struct tagNET_IN_POS_ADD
  69890. {
  69891. DWORD dwSize; // 该结构体大小
  69892. NET_POS_INFO stuPosInfo; // POS机信息
  69893. NET_POS_EVENT_LINK stuPosEventLink; // EventLink格式
  69894. } NET_IN_POS_ADD;
  69895. ///@brief 增加/修改一个Pos设备出参, 对应命令DH_CTRL_POS_ADD/DH_CTRL_POS_MODIFY
  69896. typedef struct tagNET_OUT_POS_ADD
  69897. {
  69898. DWORD dwSize; // 该结构体大小
  69899. DWORD dwPosId; // Pos的ID号, 设备中唯一, DH_CTRL_POS_MODIFY无效
  69900. EM_POS_STATUS emStatus; // 操作状态
  69901. } NET_OUT_POS_ADD;
  69902. ///@brief 删除一个Pos设备入参, 对应命令DH_CTRL_POS_REMOVE
  69903. typedef struct tagNET_IN_POS_REMOVE
  69904. {
  69905. DWORD dwSize; // 该结构体大小
  69906. DWORD dwPosId; // Pos的ID号
  69907. } NET_IN_POS_REMOVE;
  69908. ///@brief 删除一个Pos设备出参, 对应命令DH_CTRL_POS_REMOVE
  69909. typedef struct tagNET_OUT_POS_REMOVE
  69910. {
  69911. DWORD dwSize; // 该结构体大小
  69912. EM_POS_STATUS emStatus; // 操作状态
  69913. } NET_OUT_POS_REMOVE;
  69914. ///@brief 批量删除Pos设备入参, 对应命令DH_CTRL_POS_REMOVE_MULTI
  69915. typedef struct tagNET_IN_POS_REMOVE_MULTI
  69916. {
  69917. DWORD dwSize; // 该结构体大小
  69918. DWORD dwPosId[16]; // Pos的ID号, -1表示全部
  69919. int nPosNum; // dwPosId个数
  69920. } NET_IN_POS_REMOVE_MULTI;
  69921. ///@brief 批量删除Pos设备出参, 对应命令DH_CTRL_POS_REMOVE_MULTI
  69922. typedef struct tagNET_OUT_POS_REMOVE_MULTI
  69923. {
  69924. DWORD dwSize; // 该结构体大小
  69925. EM_POS_STATUS emStatus; // 操作状态, 如果失败返回第一个删除失败时的错误状态
  69926. DWORD dwPosIdFailed[16]; // 失败的Pos的ID号
  69927. int nPosNum; // dwPosIdFailed个数
  69928. } NET_OUT_POS_REMOVE_MULTI;
  69929. ///@brief 获取全部Pos设备, 对应命令DH_DEVSTATE_GET_ALL_POS
  69930. typedef struct tagNET_POS_ALL_INFO
  69931. {
  69932. DWORD dwSize; // 该结构体大小
  69933. int nMaxNum; // POS机最大个数
  69934. int nRetPosNum; // pos实际返回个数
  69935. NET_POS_INFO stuPos[256]; // pos信息
  69936. NET_POS_EVENT_LINK *pstuPosEventLink; // EventLink格式,和stuPos一一对应, 用户分配内存,大小为sizeof(NET_POS_EVENT_LINK)*nMaxNum
  69937. } NET_POS_ALL_INFO;
  69938. ///@brief 事件类型 DH_ALARM_POS_MANAGE (POS管理事件事件)对应的数据描述信息
  69939. typedef struct tagALARM_POS_MANAGE_INFO
  69940. {
  69941. int nEventAction; // 事件动作, 0:Pulse, 1:Start, 2:Stop
  69942. int nType; // 操作类型, 0:add, 1:remove, 2:modify
  69943. DWORD dwPosId; // Pos的ID号
  69944. char szName[DH_COMMON_STRING_64]; // Pos自定义名称
  69945. int nLinkChannel[32]; // 每台POS接关联的通道
  69946. int nLinkChannelNum; // nLinkChannel有效数量
  69947. EM_CONN_PROT emConnProt; // 连接协议
  69948. BYTE reserved[1024]; // 预留
  69949. } ALARM_POS_MANAGE_INFO;
  69950. ///@brief 事件类型 DH_ALARM_LOCK_BREAK (撬锁事件)对应的结构体
  69951. typedef struct tagALARM_LOCK_BREAK_INFO
  69952. {
  69953. int nDoor; // 门通道号
  69954. int nAction; // 0:开始 1:停止
  69955. NET_TIME_EX UTC; // 事件发生的时间
  69956. BYTE reserved[1024]; // 预留字段
  69957. }ALARM_LOCK_BREAK_INFO;
  69958. ///@brief 后增字段的数据类型
  69959. typedef enum tagEM_POS_DATA_TYPE
  69960. {
  69961. EM_POS_DATA_TYPE_UNKNOWN, // 未知数据类型
  69962. EM_POS_DATA_TYPE_STORE_INF0, // 商家信息
  69963. EM_POS_DATA_TYPE_PRODUCT_INFO, // 商品信息
  69964. }EM_POS_DATA_TYPE;
  69965. ///@brief 商家信息
  69966. typedef struct tagNET_STORE_INFO
  69967. {
  69968. char szDealNum[MAX_DEAL_NUM_LEN]; // 小票交易号,用于识别商品信息属于哪张小票
  69969. char szNo[MAX_STORE_NO_LEN]; // 店号
  69970. char szName[MAX_STORE_NAME_LEN]; // 店名
  69971. char szEmPloyeeID[MAX_STORE_EMPLOYEE_ID_LEN]; // 收银员工号长度
  69972. unsigned int nSeviceType; // 交易类型,0-销售,1-退货
  69973. unsigned int nAmount; // 总价,单位:分
  69974. BYTE byReserved[1024]; // 预留字节
  69975. }NET_STORE_INFO;
  69976. ///@brief 商品信息
  69977. typedef struct tagNET_PRODUCT_INFO
  69978. {
  69979. char szDealNum[MAX_DEAL_NUM_LEN]; // 小票交易号,用于识别商品信息属于哪张小票
  69980. char szNo[MAX_PRODUCT_NO_LEN]; // 商品代码
  69981. char szName[MAX_PRODUCT_NAME_LEN]; // 商品名称
  69982. char szCategory[MAX_PRODUCT_CATEGORY_LEN]; // 商品类别
  69983. unsigned int nPrice; // 商品单价,单位:分
  69984. double dbQuantity; // 商品数量,件或千克
  69985. BYTE byReserved[1024]; // 预留字节
  69986. }NET_PRODUCT_INFO;
  69987. ///@brief POS交易信息
  69988. typedef struct tagNET_POS_TRADE_INFO
  69989. {
  69990. DWORD dwPosId; // Pos的ID号
  69991. NET_TIME stuTime; // 交易时设备的时间
  69992. BYTE *pbyComment; // 交易的内容, 二进制数据
  69993. DWORD dwCommentLen; // pbyComment长度
  69994. EM_POS_DATA_TYPE emDataType; // 后增字段的数据类型
  69995. BOOL bEnd; // 结束符,由该字段判断一张小票是否结束。End值为true表示一张小票结束。
  69996. void* pPosData; // 传输的信息,由emDataType决定是哪种信息
  69997. // 如果emDataType为EM_POS_DATA_TYPE_STORE_INF0,则传输的是商家信息,对应的结构体为NET_STORE_INFO
  69998. // 如果emDataType为EM_POS_DATA_TYPE_PRODUCT_INFO,则传输的是商品信息,对应的结构体为NET_PRODUCT_INFO
  69999. char szOSDInfo[2048]; // OSD叠加信息
  70000. BYTE reserved[1024]; // 预留字节
  70001. } NET_POS_TRADE_INFO;
  70002. ///@brief 订阅POS交易信息回调函数原型
  70003. typedef void (CALLBACK *fPosTradeCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_POS_TRADE_INFO *pInfo, int nBufLen, LDWORD dwUser);
  70004. ///@brief 订阅POS交易信息 输入参数
  70005. typedef struct tagNET_IN_POS_TRADE_ATTACH
  70006. {
  70007. DWORD dwSize; // 该结构体大小
  70008. fPosTradeCallBack cbCallState; // 状态回调函数
  70009. LDWORD dwUser; // 用户参数
  70010. } NET_IN_POS_TRADE_ATTACH;
  70011. ///@brief 订阅POS交易信息 输出参数
  70012. typedef struct tagNET_OUT_POS_TRADE_ATTACH
  70013. {
  70014. DWORD dwSize; // 该结构体大小
  70015. } NET_OUT_POS_TRADE_ATTACH;
  70016. ///@brief CLIENT_GetDevCaps 接口 NET_POS_CAPS 命令入参
  70017. typedef struct tagNET_IN_POS_GETCAPS
  70018. {
  70019. DWORD dwSize;
  70020. } NET_IN_POS_GETCAPS;
  70021. ///@brief CLIENT_GetDevCaps 接口 NET_POS_CAPS 命令出参
  70022. typedef struct tagNET_OUT_POS_GETCAPS
  70023. {
  70024. DWORD dwSize;
  70025. EM_CONN_TYPE emConnType[10]; // 连接方式
  70026. int nConnTypeNum; // 连接方式种类
  70027. EM_CONN_PROT emConnProt[10]; // Pos机与设备的连接协议
  70028. int nConnProtNum; // 连接协议种类
  70029. int nMaxPos; // 设备支持添加的POS机数目
  70030. BOOL bSupportPosRecord; // 是否支持POS录像
  70031. } NET_OUT_POS_GETCAPS;
  70032. ///@brief 订阅POS传送过来的物品清单,pInParam与pOutParam内存由用户申请释放
  70033. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachPosTrade(LLONG lLoginID, const NET_IN_POS_TRADE_ATTACH* pInParam, NET_OUT_POS_TRADE_ATTACH* pOutParam, int nWaitTime);
  70034. ///@brief 取消订阅POS传送过来的物品清单
  70035. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachPosTrade(LLONG lAttachHandle);
  70036. ///@brief CLIENT_GetDevCaps 接口 NET_USER_MNG_CAPS 命令入参
  70037. typedef struct tagNET_IN_USER_MNG_GETCAPS
  70038. {
  70039. DWORD dwSize;
  70040. } NET_IN_USER_MNG_GETCAPS;
  70041. ///@brief CLIENT_GetDevCaps 接口 NET_USER_MNG_CAPS 命令出参
  70042. typedef struct tagNET_OUT_USER_MNG_GETCAPS
  70043. {
  70044. DWORD dwSize;
  70045. BOOL bAccountLimitation; // 账户限制,可以精确控制每个用户允许同时进行的请求
  70046. BOOL bIndividualAccessFilter; // 禁止/允许名单是否支持针对单个IP的过滤
  70047. DWORD dwMaxPageSize; // 分页查询时单次查询的最大用户信息条数
  70048. unsigned int nMaxPwdLen; // 最大密码长度
  70049. unsigned int nMinPwdLen; // 最小密码长度
  70050. char szType[MAX_PWD_BASIC_CHARS_ARRAY_LEN]; // 支持的基本字符类型列表:其中Number数字;Lower小写字母;Upper大写字母,字符串形式:"Number,Lower,Upper"
  70051. char szCharList[MAX_PWD_SPEC_CHARS_ARRAY_LEN]; // 支持的特殊字符,如"~!@#$%^"
  70052. int nCombine; // 密码组合要求:0-无特殊要求;1-必须有特殊字符,其它不限;2-必须包含2种类型以上(数字、大写、小写、特殊字符)
  70053. } NET_OUT_USER_MNG_GETCAPS;
  70054. ///@brief CLIENT_GetDevCaps 接口 NET_EXTERNALSENSOR_CAPS 命令入参
  70055. typedef struct tagNET_IN_EXTERNALSENSOR_CAPS
  70056. {
  70057. DWORD dwSize;
  70058. }NET_IN_EXTERNALSENSOR_CAPS;
  70059. ///@brief CLIENT_GetDevCaps 接口 NET_GET_MASTERSLAVEGROUP_CAPS 命令入参
  70060. typedef struct tagNET_IN_GET_MASTERSLAVEGROUP_CAPS
  70061. {
  70062. DWORD dwSize;
  70063. int nChannel; // 本地通道号,对应本地视频通道号,从0开始。(老设备及前端设备不支持多通道,设置为0)
  70064. }NET_IN_GET_MASTERSLAVEGROUP_CAPS;
  70065. ///@brief 主从跟踪的身份
  70066. typedef enum tagEM_MASTERSLAVEGROUP_MODE
  70067. {
  70068. EM_MASTERSLAVEGROUP_MODE_UNKNOWN, // 未知
  70069. EM_MASTERSLAVEGROUP_MODE_COMMANDER, // Commander 指挥官,如一枪一球的枪
  70070. EM_MASTERSLAVEGROUP_MODE_PROPOSER, // Proposer 申请人,两枪一球业务的枪
  70071. EM_MASTERSLAVEGROUP_MODE_JUDGE, // Judge裁判员,两枪一球业务的球
  70072. EM_MASTERSLAVEGROUP_MODE_HAWKEYE, // HawkEye鹰眼
  70073. EM_MASTERSLAVEGROUP_MODE_MULTISENSOR, // MultiSensor多目,标定算法不同,配置使用的字段也不同
  70074. EM_MASTERSLAVEGROUP_MODE_GLOBALCAMERA, // GlobalCamera枪球一体式相机
  70075. EM_MASTERSLAVEGROUP_MODE_NEWCOMMANDER, // NewCommander新指挥官,标定使用CalibrateMatrix(MultiSensor)配置
  70076. EM_MASTERSLAVEGROUP_MODE_NEWHAWEYE, // NewHawEye新鹰眼(守望者),标定使用CalibrateMatrix(MultiSensor)配置
  70077. EM_MASTERSLAVEGROUP_MODE_GLOBALCAMERA2, // GlobalCamera2二代灵瞳相机,标定使用CalibrateMatrix(MultiMode)配置,与一代的差异是二代各自通道出各自的图,不再所有图片通过一个通道出
  70078. EM_MASTERSLAVEGROUP_MODE_CLOSEUP, // CloseUp全景特写,标定使用CalibrateMatrix(MultiSensor)配置
  70079. }EM_MASTERSLAVEGROUP_MODE;
  70080. ///@brief 支持的标定方式
  70081. typedef enum tagEM_MASTERSLAVE_CALIBRATIONMODES
  70082. {
  70083. EM_MASTERSLAVE_CALIBRATIONMODES_UNKNOWN, //未知
  70084. EM_MASTERSLAVE_CALIBRATIONMODES_AUTO, //自动
  70085. EM_MASTERSLAVE_CALIBRATIONMODES_MANUAL, //手动
  70086. }EM_MASTERSLAVE_CALIBRATIONMODES;
  70087. ///@brief 手动标定场景分割类型
  70088. typedef enum tagEM_MASTERSLAVE_CALISCENCESPLIT
  70089. {
  70090. EM_MASTERSLAVE_CALISCENCESPLIT_UNKNOWN, //未知
  70091. EM_MASTERSLAVE_CALISCENCESPLIT_NOSPLIT, //不分割
  70092. EM_MASTERSLAVE_CALISCENCESPLIT_HORIZONTALSPLIT, //水平分割
  70093. }EM_MASTERSLAVE_CALISCENCESPLIT;
  70094. ///@brief 智能方案存在模式
  70095. typedef enum tagEM_INTELLIGENT_SCHEME_SUPPORTMODE
  70096. {
  70097. EM_INTELLIGENT_SCHEME_SUPPORTMODE_UNKNOWN, // 未知
  70098. EM_INTELLIGENT_SCHEME_SUPPORTMODE_LINK, // 只存在联动态智能方案
  70099. EM_INTELLIGENT_SCHEME_SUPPORTMODE_INDEPENT, // 只存在独立态智能方案
  70100. EM_INTELLIGENT_SCHEME_SUPPORTMODE_DEFAULT, // 联动态和独力态智能方案都存在(如果没有SupportMode字段, 默认为此值)
  70101. }EM_INTELLIGENT_SCHEME_SUPPORTMODE;
  70102. ///@brief 枪球一体式设备(如鹰眼,全局摄像机),主-从关系定义
  70103. typedef struct tagNET_MASTERSLAVE_TRACK
  70104. {
  70105. BOOL bSupport; //是否支持主从跟踪
  70106. int nMasterCount; //主机数量
  70107. int nMasterChn[16]; //主机对应本地视频通道号,从0开始
  70108. int nSlaverCount; //从机数量
  70109. int nSlaverChn[16]; //从机对应本地视频通道号,从0开始
  70110. EM_INTELLIGENT_SCHEME_SUPPORTMODE emSupportMode; //智能方案存在模式
  70111. BYTE bReserved[508]; //保留字节
  70112. }NET_MASTERSLAVE_TRACK;
  70113. ///@brief CLIENT_GetDevCaps 接口 NET_GET_MASTERSLAVEGROUP_CAPS 命令出参
  70114. typedef struct tagNET_OUT_GET_MASTERSLAVEGROUP_CAPS
  70115. {
  70116. DWORD dwSize;
  70117. EM_MASTERSLAVEGROUP_MODE emRole; //主从跟踪的身份
  70118. int nCalibrationModeCount; //支持标定方式的数量
  70119. EM_MASTERSLAVE_CALIBRATIONMODES emCalibrationModes[4]; //支持的标定方式
  70120. int nCaliSceneCnt; //每组主从关系手动标定场景数
  70121. EM_MASTERSLAVE_CALISCENCESPLIT emCaliSceneSplit; //手动标定场景分割类型
  70122. NET_MASTERSLAVE_TRACK stuMasterSlaveTrack;//枪球一体式设备(如鹰眼,全局摄像机),主-从关系定义
  70123. }NET_OUT_GET_MASTERSLAVEGROUP_CAPS;
  70124. ///@brief CLIENT_GetDevCaps 接口 NET_STORAGE_CAPS命令入参
  70125. typedef struct tagNET_IN_STORAGE_CAPS
  70126. {
  70127. DWORD dwSize;
  70128. }NET_IN_STORAGE_CAPS;
  70129. ///@brief 格式化硬盘后是否需要重启
  70130. typedef enum tagNET_EM_FORMAT_NEEDREBOOT
  70131. {
  70132. EM_FORMAT_NEEDREBOOT_UNKNOWN, // 未知
  70133. EM_FORMAT_NEEDREBOOT_NOREBOOT, // 不需要重启
  70134. EM_FORMAT_NEEDREBOOT_REBOOT // 需要重启, 调用CLIENT_ControlDevice格式化使用命令DH_CTRL_SDCARD或DH_CTRL_DISK后自动执行重启,
  70135. // 使用命令DH_CTRL_FORMAT_PATITION需要客户端发起重启
  70136. }NET_EM_FORMAT_NEEDREBOOT;
  70137. ///@brief CLIENT_GetDevCaps 接口 NET_STORAGE_CAPS命令出参
  70138. typedef struct tagNET_OUT_STORAGE_CAPS
  70139. {
  70140. DWORD dwSize;
  70141. NET_EM_FORMAT_NEEDREBOOT emReboot; // 格式化硬盘后是否需要重启
  70142. BOOL bIsGeneralRecord; // 是否支持定时存储
  70143. }NET_OUT_STORAGE_CAPS;
  70144. ///@brief 外部传感器组网方式
  70145. typedef enum tagEM_SENSOR_NERWORKING_MODE
  70146. {
  70147. EM_SENSOR_NERWORKING_MODE_UNKNOWN, // 未知方式
  70148. EM_SENSOR_NETWORKING_MODE_RS485, // RS-485
  70149. EM_SENSOR_NETWORKING_MODE_RFID, // RFID
  70150. }EM_SENSOR_NERWORKING_MODE;
  70151. ///@brief CLIENT_GetDevCaps 接口 NET_EXTERNALSENSOR_CAPS 命令出参
  70152. typedef struct tagNET_OUT_EXTERNALSENSOR_CAPS
  70153. {
  70154. DWORD dwSize;
  70155. BOOL bIsSupport; // 是否支持外部传感器数据采集
  70156. EM_SENSOR_NERWORKING_MODE emNetworkingMode; // 外部传感器组网方式
  70157. int nChannel; // 支持的最大采集路数
  70158. }NET_OUT_EXTERNALSENSOR_CAPS;
  70159. ///@brief 无线遥控器工作模式
  70160. typedef enum tagEM_WIRELESS_CTRL_WORK_MODE
  70161. {
  70162. EM_WIRELESS_CTRL_WORK_MODE_UNKNOWN, // 未知
  70163. EM_WIRELESS_CTRL_WORK_MODE_NORMAL, // 普通模式
  70164. EM_WIRELESS_CTRL_WORK_MODE_POLLING, // 巡检模式
  70165. } EM_WIRELESS_CTRL_WORK_MODE;
  70166. ///@brief 事件类型 DH_ALARM_REMOTE_CTRL_STATUS (无线遥控器状态事件)对应的数据描述信息
  70167. typedef struct tagALARM_REMOTE_CTRL_STATUS
  70168. {
  70169. NET_TIME_EX UTC; // 事件发生的时间
  70170. DWORD dwID; // 遥控器ID
  70171. char szName[32]; // 名称
  70172. char szUser[32]; // 用户名,指无线设备关联到报警主机的某个用户名,操作权限跟随这个用户
  70173. EM_WIRELESS_CTRL_WORK_MODE emMode; // 工作模式
  70174. BYTE reserved[1024]; // 预留
  70175. } ALARM_REMOTE_CTRL_STATUS;
  70176. ///@brief 刷卡类型
  70177. typedef enum tagEM_PASSENGER_CARD_CHECK_TYPE
  70178. {
  70179. EM_PASSENGER_CARD_CHECK_TYPE_UNKOWN = 0, // 未知
  70180. EM_PASSENGER_CARD_CHECK_TYPE_SIGNIN, // 签到/上车
  70181. EM_PASSENGER_CARD_CHECK_TYPE_SIGNOUT, // 签出/下车
  70182. EM_PASSENGER_CARD_CHECK_TYPE_NORMAL, // 正常刷卡,不区分上下车
  70183. }EM_PASSENGER_CARD_CHECK_TYPE;
  70184. ///@brief 事件类型 DH_ALARM_PASSENGER_CARD_CHECK (乘客刷卡事件)对应的数据描述信息
  70185. typedef struct tagALARM_PASSENGER_CARD_CHECK
  70186. {
  70187. BOOL bEventConfirm; // 是否需要回复
  70188. char szCardNum[DH_MAX_BUSCARD_NUM]; // 公交卡号
  70189. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  70190. NET_TIME_EX UTC; // 刷卡时间
  70191. int nTime; // UTC整型
  70192. EM_PASSENGER_CARD_CHECK_TYPE emType; // 刷卡类型
  70193. char szMac[DH_MAX_POS_MAC_NUM]; // 刷卡机Mac码 (默认"0000",兼容老设备)
  70194. BYTE reserved[1012]; // 预留
  70195. } ALARM_PASSENGER_CARD_CHECK;
  70196. ///@brief 事件类型 DH_ALARM_BUS_TIRED_DRIVE_CHECK (疲劳驾驶事件)对应的数据描述信息
  70197. typedef struct tagALARM_TIRED_DRIVE_CHECK_INFO
  70198. {
  70199. BOOL bEventConfirm; // 是否需要回复
  70200. int nAction; // 事件动作, 0:Start, 1:Stop
  70201. int nDriveTime; // 驾驶时间 单位分钟
  70202. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  70203. NET_TIME_EX UTC; // 事件上报时间
  70204. int nTime; // 事件上报时间,UTC整型
  70205. BYTE reserved[1024]; // 预留
  70206. } ALARM_TIRED_DRIVE_CHECK_INFO;
  70207. ///@brief 事件类型 DH_ALARM_SOUND (声音事件)对应的数据描述信息
  70208. typedef struct tagALARM_SOUND
  70209. {
  70210. int nChannel; // 通道号
  70211. NET_TIME_EX UTC; // 刷卡时间
  70212. BYTE reserved[1024]; // 预留
  70213. } ALARM_SOUND;
  70214. ///@brief 触发有声报警入参, 对应命令 DH_CTRL_SET_SOUND_ALARM
  70215. typedef struct tagNET_IN_SOUND_ALARM
  70216. {
  70217. DWORD dwSize; // 该结构体大小
  70218. } NET_IN_SOUND_ALARM;
  70219. ///@brief 触发有声报警出参, 对应命令 DH_CTRL_SET_SOUND_ALARM
  70220. typedef struct tagNET_OUT_SOUND_ALARM
  70221. {
  70222. DWORD dwSize; // 该结构体大小
  70223. } NET_OUT_SOUND_ALARM;
  70224. ///@brief 音频矩阵上控制静音的输出通道
  70225. typedef struct tagNET_SILENCE_CHANNEL
  70226. {
  70227. int nMatrix; //需要静音的矩阵号
  70228. int nOutChannel; // 需要静音的输出通道数
  70229. int nOutPutChannel[DH_MAX_AUDIO_MATRIX_OUTPUT]; //该矩阵下需要静音的输出通道
  70230. BYTE bReserved[512]; //保留字节
  70231. }NET_SILENCE_CHANNEL;
  70232. ///@brief 音频矩阵一键静音操作输入参数
  70233. typedef struct tagNET_IN_AUDIO_MATRIX_SILENCE
  70234. {
  70235. DWORD dwSize; // 用户使用时赋值sizeof(NET_IN_AUDIO_MATRIX_SILENCE)
  70236. BOOL bEnable; // 一键静音使能开启或关闭(true:静音 false:开启声音)
  70237. int nListCount; // 需要控制静音的输出通道数
  70238. NET_SILENCE_CHANNEL* pstSlienceChannel; // 需要控制静音的输出通道信息,用户分配内存,大小为sizeof(NET_SILENCE_CHANNEL)*nListCount
  70239. } NET_IN_AUDIO_MATRIX_SILENCE;
  70240. ///@brief 音频矩阵一键静音控制操作输出参数
  70241. typedef struct tagNET_OUT_AUDIO_MATRIX_SILENCE
  70242. {
  70243. DWORD dwSize; //用户使用时赋值sizeof(NET_OUT_AUDIO_MATRIX_SILENCE)
  70244. } NET_OUT_AUDIO_MATRIX_SILENCE;
  70245. ///@brief 目的端类型
  70246. typedef enum tagEM_TARGET_TYPE
  70247. {
  70248. EM_TARGET_TYPE_CLIENT, // "client" 客户端
  70249. EM_TARGET_TYPE_FTP_SERVER, // "FTPServer" FTP服务器
  70250. }EM_TARGET_TYPE;
  70251. ///@brief 过滤器信息
  70252. typedef struct tagNET_MANUAL_UPLOAD_FILTER_INFO
  70253. {
  70254. EM_TARGET_TYPE emTargetType; //目的端类型, "Client" - 客户端, "FTPServer" - FTP服务器
  70255. char szClientIP[DH_MAX_IPADDR_LEN]; //客户端IP地址,类型为 "Client"有效
  70256. NET_TIME stuStartTime; //图片开始时间
  70257. NET_TIME stuEndTime; //图片结束时间
  70258. }NET_MANUAL_UPLOAD_FILTER_INFO;
  70259. ///@brief 设置手动上传输入参数,对应命令 DH_CTRL_MANUAL_UPLOAD_PICTURE
  70260. typedef struct tagNET_IN_MANUAL_UPLOAD_PICTURE
  70261. {
  70262. DWORD dwSize; //用户使用时赋值sizeof(NET_IN_MANUAL_UPLOAD_PICTURE)
  70263. NET_MANUAL_UPLOAD_FILTER_INFO stuFilter; //手动上传过滤器
  70264. }NET_IN_MANUAL_UPLOAD_PICTURE;
  70265. ///@brief 设置手动上传输出参数,对应命令 DH_CTRL_MANUAL_UPLOAD_PICTURE
  70266. typedef struct tagNET_OUT_MANUAL_UPLOAD_PICTURE
  70267. {
  70268. DWORD dwSize; //用户使用时赋值sizeof(NET_OUT_MANUAL_UPLOAD_PICTURE)
  70269. }NET_OUT_MANUAL_UPLOAD_PICTURE;
  70270. ///@brief 重启网络解码设备输入参数,对应命令DH_CTRL_REBOOT_NET_DECODING_DEV
  70271. typedef struct tagNET_IN_REBOOT_NET_DECODING_DEV
  70272. {
  70273. DWORD dwSize; //该结构体大小,用户使用时赋值sizeof(NET_IN_REBOOT_NET_DECODING_DEV)
  70274. char szDeviceID[DH_COMMON_STRING_64]; //设备ID
  70275. int nRebootDelayTime; //重启延时时间, 单位为秒
  70276. }NET_IN_REBOOT_NET_DECODING_DEV;
  70277. ///@brief 单防区布撤防操作入参,对应接口CLIENT_SetDefenceArmMode
  70278. typedef struct tagNET_IN_SET_DEFENCEMODE
  70279. {
  70280. DWORD dwSize;
  70281. char szPassword[DH_COMMON_STRING_64]; // 用户登录密码
  70282. int nChannel; // 通道号
  70283. EM_DEFENCEMODE emDefenceMode; // 工作模式
  70284. }NET_IN_SET_DEFENCEMODE;
  70285. ///@brief 单防区布撤防操作出参,对应接口 CLIENT_SetDefenceArmMode
  70286. typedef struct tagNET_OUT_SET_DEFENCEMODE
  70287. {
  70288. DWORD dwSize;
  70289. }NET_OUT_SET_DEFENCEMODE;
  70290. ///@brief 子系统布撤防操作入参,对应接口 CLIENT_SetSubSystemArmMode
  70291. typedef struct tagNET_IN_SET_SUBSYSTEMMODE
  70292. {
  70293. DWORD dwSize;
  70294. int nChannel; // 子系统号,从0开始
  70295. char szPassword[DH_COMMON_STRING_64]; // 用户登录密码
  70296. EM_DEFENCEMODE emDefenceMode; // 工作模式
  70297. }NET_IN_SET_SUBSYSTEMMODE;
  70298. ///@brief 子系统布撤防操作出参,对应接口 CLIENT_SetSubSystemArmMode
  70299. typedef struct tagNET_OUT_SET_SUBSYSTEMMODE
  70300. {
  70301. DWORD dwSize;
  70302. DWORD dwSourceNum; // 有报警源输入布防失败的子系统个数
  70303. int nSource[ARM_DISARM_ZONE_MAX]; // 有报警源输入失败的子系统号, 子系统号从0开始
  70304. DWORD dwLinkNum; // 有联动报警布防失败的子系统个数
  70305. int nLink[ARM_DISARM_ZONE_MAX]; // 有联动报警失败的子系统号, 子系统号从0开始
  70306. }NET_OUT_SET_SUBSYSTEMMODE;
  70307. ///@brief 获取防区布撤防状态入参,对应接口 CLIENT_GetDefenceArmMode
  70308. typedef struct tagNET_IN_GET_DEFENCEMODE
  70309. {
  70310. DWORD dwSize;
  70311. int nDefenceNum; // 防区有效个数
  70312. int anDefence[DH_MAX_ALARMIN]; // 待查询的防区号
  70313. }NET_IN_GET_DEFENCEMODE;
  70314. ///@brief 获取防区布撤防状态出参,对应接口 CLIENT_GetDefenceArmMode
  70315. typedef struct tagNET_OUT_GET_DEFENCEMODE
  70316. {
  70317. DWORD dwSize;
  70318. int nDefenceNum; // 防区有效个数
  70319. EM_DEFENCEMODE anDefenceState[DH_MAX_ALARMIN]; // 防区状态信息
  70320. }NET_OUT_GET_DEFENCEMODE;
  70321. ///@brief 获取子系统布撤防状态入参,对应接口 CLIENT_GetSubSystemArmMode
  70322. typedef struct tagNET_IN_GET_SUBSYSTEMMODE
  70323. {
  70324. DWORD dwSize;
  70325. }NET_IN_GET_SUBSYSTEMMODE;
  70326. ///@brief 获取子系统布撤防状态出参,对应接口 CLIENT_GetSubSystemArmMode
  70327. typedef struct tagNET_OUT_GET_SUBSYSTEMMODE
  70328. {
  70329. DWORD dwSize;
  70330. int nSubSystemNum; // 子系统有效个数
  70331. EM_SUBSYSTEMMODE anSubSystemState[DH_MAX_ALARM_SUBSYSTEM_NUM]; // 子系统状态信息
  70332. }NET_OUT_GET_SUBSYSTEMMODE;
  70333. ///@brief 手动测试PSTN连接状态入参,对应接口 CLIENT_ManualCheckPSTN
  70334. typedef struct tagNET_IN_PSTN_MANUALCHECK_STATE
  70335. {
  70336. DWORD dwSize;
  70337. }NET_IN_PSTN_MANUALCHECK_STATE;
  70338. ///@brief 手动测试PSTN连接状态出参,对应接口 CLIENT_ManualCheckPSTN
  70339. typedef struct tagNET_OUT_PSTN_MANUALCHECK_STATE
  70340. {
  70341. DWORD dwSize;
  70342. NET_THREE_STATUS_BOOL emState; //测试结果
  70343. }NET_OUT_PSTN_MANUALCHECK_STATE;
  70344. ///@brief 重启网络解码设备输出参数,对应命令 DH_CTRL_REBOOT_NET_DECODING_DEV
  70345. typedef struct tagNET_OUT_REBOOT_NET_DECODING_DEV
  70346. {
  70347. DWORD dwSize; //该结构体大小,用户使用时赋值sizeof(NET_OUT_REBOOT_NET_DECODING_DEV)
  70348. }NET_OUT_REBOOT_NET_DECODING_DEV;
  70349. ///@brief 设置发卡设备输入参数,对应命令 DH_CTRL_SET_IC_SENDER
  70350. typedef struct tagNET_IN_SET_IC_SENDER
  70351. {
  70352. DWORD dwSize; // 该结构体大小,用户使用时赋值sizeof(NET_IN_SET_IC_SENDER)
  70353. BOOL bEnable; // True:允许发卡,False:禁止发卡,设备启动时默认允许发卡
  70354. }NET_IN_SET_IC_SENDER;
  70355. ///@brief 设置发卡设备输出参数,对应命令 DH_CTRL_SET_IC_SENDER
  70356. typedef struct tagNET_OUT_SET_IC_SENDER
  70357. {
  70358. DWORD dwSize; // 该结构体大小,用户使用时赋值sizeof(NET_OUT_SET_IC_SENDER)
  70359. }NET_OUT_SET_IC_SENDER;
  70360. ///@brief 事件类型 DH_ALARM_DRIVE_AFTER_WORK (非工作时间事件)对应的数据描述信息
  70361. typedef struct tagALARM_DVRIVE_AFTER_WORK
  70362. {
  70363. BOOL bEventConfirm; // 是否需要回复
  70364. NET_GPS_STATUS_INFO stuGPS; // GPS信息
  70365. NET_TIME_EX stuUtc; // 刷卡时间
  70366. DWORD dwUtc; // 刷卡时间, 与stuUtc值一样,格式不同,用于事件确认接口入参
  70367. BYTE reserved[1024]; // 预留
  70368. } ALARM_DVRIVE_AFTER_WORK;
  70369. ///@brief 事件类型 DH_ALARM_UPLOAD_PIC_FAILED (违章数据上传失败事件)对应的数据描述信息
  70370. typedef struct tagALARM_UPLOAD_PIC_FAILED_INFO
  70371. {
  70372. int nAction; // 0:检测到违章数据上传失败, 1:违章数据上传失败后第一次上传成功
  70373. BYTE reserved[1024]; // 预留
  70374. } ALARM_UPLOAD_PIC_FAILED_INFO;
  70375. ///@brief 获取城市及路段编码信息, 对应命令DH_DEVSTATE_GET_ROAD_LIST
  70376. typedef struct tagNET_ROAD_LIST_INFO
  70377. {
  70378. DWORD dwSize; // 该结构体大小
  70379. char szCity[32]; // 车辆所处的城市信息
  70380. char szRoadList[2048][256]; // 道路编码信息
  70381. int nRoadNum; // 道路信息个数, 指示szRoadList的第1维
  70382. } NET_ROAD_LIST_INFO;
  70383. ///@brief 无线设备类型
  70384. typedef enum tagEM_WIRELESS_DEV_TYPE
  70385. {
  70386. EM_WIRELESS_DEV_TYPE_UNKNOWN, // 未知
  70387. EM_WIRELESS_DEV_TYPE_STATION, // "Station":站点
  70388. EM_WIRELESS_DEV_TYPE_AP, // "AccessPoint":无线接入点
  70389. } EM_WIRELESS_DEV_TYPE;
  70390. ///@brief 无线设备认证方式
  70391. typedef enum tagEM_WIRELESS_AUTHENTICATION
  70392. {
  70393. EM_WIRELESS_AUTHENTICATION_UNKNOWN, // UnKnown
  70394. EM_WIRELESS_AUTHENTICATION_OPEN, // OPEN
  70395. EM_WIRELESS_AUTHENTICATION_SHARED, // SHARED
  70396. EM_WIRELESS_AUTHENTICATION_WPA, // WPA
  70397. EM_WIRELESS_AUTHENTICATION_WPAPSK, // WPA-PSK
  70398. EM_WIRELESS_AUTHENTICATION_WPA2, // WPA2
  70399. EM_WIRELESS_AUTHENTICATION_WPA2PSK, // WPA2-PSK
  70400. EM_WIRELESS_AUTHENTICATION_WPANONE, // WPA-NONE
  70401. EM_WIRELESS_AUTHENTICATION_WPAPSK_WPA2PSK, // WPA-PSK|WPA2-PSK
  70402. EM_WIRELESS_AUTHENTICATION_WPA_WPA2, // WPA|WPA2
  70403. EM_WIRELESS_AUTHENTICATION_WPA_WPAPSK, // WPA | WPA-PSK
  70404. EM_WIRELESS_AUTHENTICATION_WPA2_WPA2PSK, // WPA2|WPA2-PSK
  70405. EM_WIRELESS_AUTHENTICATION_WPA_WPAPSK_WPA2_WPA2PSK, // WPA|WPA-PSK|WPA2|WPA2-PSK
  70406. } EM_WIRELESS_AUTHENTICATION;
  70407. ///@brief 无线数据加密方式方式
  70408. typedef enum tagEM_WIRELESS_DATA_ENCRYPT
  70409. {
  70410. EM_WIRELESS_DATA_ENCRYPT_UNKNOWN, // UnKnown
  70411. EM_WIRELESS_DATA_ENCRYPT_NONE, // NONE
  70412. EM_WIRELESS_DATA_ENCRYPT_WEP, // WEP
  70413. EM_WIRELESS_DATA_ENCRYPT_TKIP, // TKIP
  70414. EM_WIRELESS_DATA_ENCRYPT_AES, // AES(CCMP)
  70415. EM_WIRELESS_DATA_ENCRYPT_TKIP_AES, // TKIP+AES
  70416. } EM_WIRELESS_DATA_ENCRYPT;
  70417. ///@brief 搜索到的WIFI设备信息
  70418. typedef struct tagNET_WIFI_DEV_INFO
  70419. {
  70420. char szMac[DH_MACADDR_LEN]; // Wifi设备的Mac地址
  70421. int nLinkQuality; // 链接质量百分比, 0~100
  70422. NET_TIME_EX stuEnterTime; // 第一被搜索到的时间
  70423. NET_TIME_EX stuLeaveTime; // 消失的时间
  70424. int nSearchedCount; // 被搜索到的次数
  70425. char szSSID[24]; // 网络名称
  70426. NET_TIME_EX UTC; // 事件发生时间
  70427. EM_WIRELESS_DEV_TYPE emDevType; // WIFI设备类型
  70428. int nChannel; // Wifi设备当前所在的信道
  70429. EM_WIRELESS_AUTHENTICATION emAuth; // 认证方式
  70430. EM_WIRELESS_DATA_ENCRYPT emEncrypt; // 数据加密方式
  70431. char szAPMac[DH_MACADDR_LEN]; // 接入热点Mac
  70432. int nAPChannel; // 接入热点频道
  70433. char szAPSSID[24]; // 接入热点SSID
  70434. EM_WIRELESS_DATA_ENCRYPT emAPEncrypt; // 接入热点加密类型
  70435. int nRssiQuality; // 信号强度
  70436. char szManufacturer[MAX_MANUFACTURER_LEN]; // Mac地址所属制造商
  70437. char szMacHistorySSID[MAX_MACHISTORY_SSID_NUM][MAX_MACHISTORY_SSID_LEN]; // 此设备曾经连接过的历史SSID列表
  70438. unsigned int nRetMacHistorySSIDNum; // 此设备实际连接过的SSID个数
  70439. BYTE reserved[264]; // 预留
  70440. } NET_WIFI_DEV_INFO;
  70441. ///@brief 搜索到的WIFI基本信息
  70442. typedef struct tagNET_WIFI_BASIC_INFO
  70443. {
  70444. UINT nPeriodUTC; //本周期上报的起始时间,为同一上报周期的标识;当同一上报周期内设备总数超过单次上报数量上限时需要多次上报事件,该值作为同一上报周期内多次上报事件的标识码;
  70445. int nDeviceSum; //本周期上报的wifi总数,同一上报周期内的事件中的该值均应为本周期上报的wifi总数
  70446. int nCurDeviceCount; //本次事件上报的Wifi设备数量,应与ALARM_WIFI_SEARCH_INFO结构体中的nWifiNum值一致;同一上报周期内该值的累积总数与nDeviceSum一致。
  70447. BYTE reserved[500]; //预留字节
  70448. }NET_WIFI_BASIC_INFO;
  70449. ///@brief 定位结果
  70450. typedef enum tagNET_GPS_POSITION_RESULT
  70451. {
  70452. NET_GPS_POSITION_RESULT_UNKNOWN = 0, // 未知
  70453. NET_GPS_POSITION_RESULT_FAILED = 1, // 有GPS数据,但定位失败,此时定位数据无意义
  70454. NET_GPS_POSITION_RESULT_SUCCEED = 2, // 有GPS数据,且定位成功,此时定位数据有意义
  70455. } NET_GPS_POSITION_RESULT;
  70456. ///@brief 搜索到的地点信息
  70457. typedef struct tagNET_WIFI_GPS_INFO
  70458. {
  70459. NET_GPS_POSITION_RESULT emPositioningResult; // 定位结果
  70460. unsigned int nLongitude; // 经度(单位是百万分之一度)
  70461. // 西经:0 - 180000000 实际值应为: 180*1000000 – dwLongitude
  70462. // 东经:180000000 - 360000000 实际值应为: dwLongitude – 180*1000000
  70463. // 如: 300168866应为(300168866 - 180*1000000)/1000000 即东经120.168866度
  70464. unsigned int nLatidude; // 纬度(单位是百万分之一度)
  70465. // 南纬:0 - 90000000 实际值应为: 90*1000000 – dwLatidude
  70466. // 北纬:90000000 – 180000000 实际值应为: dwLatidude – 90*1000000
  70467. // 如: 120186268应为 (120186268 - 90*1000000)/1000000 即北纬30. 186268度
  70468. unsigned int nSpeed; // 速度, 单位千分之一km/H
  70469. BYTE reserved[112]; // 保留字段
  70470. } NET_WIFI_GPS_INFO;
  70471. ///@brief 事件类型 DH_ALARM_WIFI_SEARCH (搜索WIFI设备)对应的数据描述信息
  70472. typedef struct tagALARM_WIFI_SEARCH_INFO
  70473. {
  70474. int nWifiNum; // WIFI设备数量, 指示stuWifi的有效数量
  70475. NET_WIFI_DEV_INFO stuWifi[1024]; // 周围Wifi设备的信息
  70476. int nChannel; // 通道号
  70477. NET_WIFI_BASIC_INFO stuWifiBasiInfo; // Wifi事件上报基础信息
  70478. BOOL bGPSinfo; // 是否包含GPS信息
  70479. NET_WIFI_GPS_INFO stuWifiGPSInfo; // GPS信息
  70480. BYTE reserved[376]; // 预留
  70481. } ALARM_WIFI_SEARCH_INFO;
  70482. ///@brief 搜索到的WIFI设备虚拟身份信息
  70483. typedef struct tagNET_WIFI_VIRTUALINFO
  70484. {
  70485. NET_TIME_EX stuAccessTime; // 访问时间,时间不精确仅供参考
  70486. char szSrcMac[DH_MACADDR_LEN]; // 虚拟信息的来源MAC,字母大写,用"-"分隔
  70487. char szDstMac[DH_MACADDR_LEN]; // 虚拟信息的目标MAC,字母大写,用"-"分隔
  70488. int nProtocal; // 协议代号,上网应用对应的标识码
  70489. char szUrl[DH_MAX_URL_LEN]; // 上网url
  70490. char szDomain[MAX_VIRTUALINFO_DOMAIN_LEN]; // 上网域
  70491. char szTitle[MAX_VIRTUALINFO_TITLE_LEN]; // 上网标题
  70492. char szUsrName[MAX_VIRTUALINFO_USERNAME_LEN]; // 用户名
  70493. char szPassWord[MAX_VIRTUALINFO_PASSWORD_LEN]; // 密码
  70494. char szPhoneNum[MAX_VIRTUALINFO_PHONENUM_LEN]; // 手机号
  70495. char szImei[MAX_VIRTUALINFO_IMEI_LEN]; // 国际移动设备标识
  70496. char szImsi[MAX_VIRTUALINFO_IMSI_LEN]; // 国际移动用户识别码
  70497. char szLatitude[MAX_VIRTUALINFO_LATITUDE_LEN]; // 经度
  70498. char szLongitude[MAX_VIRTUALINFO_LONGITUDE_LEN]; // 纬度
  70499. char szSrcIP[DH_MAX_IPADDR_LEN_EX]; // 源IP
  70500. char szDstIP[DH_MAX_IPADDR_LEN_EX]; // 目的IP
  70501. UINT nSrcPort; // 源端口
  70502. UINT nDstPort; // 目的端口
  70503. char szSiteNum[MAX_COMMON_STRING_16]; // 场所编号
  70504. char szDevNum[MAX_COMMON_STRING_32]; // 采集设备编号
  70505. char szUserID[MAX_COMMON_STRING_32]; // 虚拟用户ID
  70506. char szIDFA[MAX_COMMON_STRING_64]; // 苹果手机的IDFA
  70507. BYTE reserved[368]; // 预留
  70508. }NET_WIFI_VIRTUALINFO;
  70509. ///@brief 事件类型 DH_ALARM_WIFI_VIRTUALINFO_SEARCH (获取周围wifi设备虚拟信息事件)对应的数据描述信息
  70510. typedef struct tagALARM_WIFI_VIRTUALINFO_SEARCH_INFO
  70511. {
  70512. int nVirtualInfoNum; // WIFI设备虚拟身份数量, 指示stuVirtualInfo的有效数量
  70513. NET_WIFI_VIRTUALINFO stuVirtualInfo[MAX_VIRTUALINFO_NUM]; // 周围Wifi虚拟身份信息
  70514. int nChannel; // 通道号
  70515. BYTE reserved[512]; // 预留
  70516. } ALARM_WIFI_VIRTUALINFO_SEARCH_INFO;
  70517. ///@brief 事件类型 DH_ALARM_USER_LOCK_EVENT (用户锁定报警事件)对应的数据描述信息
  70518. typedef struct tagALARM_USER_LOCK_EVENT_INFO
  70519. {
  70520. char szUser[DH_NEW_USER_NAME_LENGTH]; // 用户名
  70521. char szGroup[DH_NEW_USER_NAME_LENGTH]; // 组名
  70522. char szIP[DH_MAX_IPADDR_LEN_EX]; // 设备IP
  70523. BYTE reserved[512]; // 预留
  70524. } ALARM_USER_LOCK_EVENT_INFO;
  70525. ///@brief 无线设备类型
  70526. typedef enum tagNET_WIRELESSDEV_LOWPOWER_TYPE
  70527. {
  70528. NET_WIRELESSDEV_UNKNOWN = 0, // 未知设备
  70529. NET_WIRELESSDEV_CONTROL = 1, // 无线遥控器
  70530. NET_WIRELESSDEV_DEFENCE = 2, // 无线防区
  70531. NET_WIRELESSDEV_KEYBOARD = 3, // 无线键盘
  70532. NET_WIRELESSDEV_MAGNETOMER = 4, // 无线门磁 此字段协议上已废弃
  70533. NET_WIRELESSDEV_ALARMBELL = 5, // 无线警号
  70534. NET_WIRELESSDEV_SMARTLOCK = 6, // 智能锁
  70535. } NET_WIRELESSDEV_LOWPOWER_TYPE;
  70536. ///@brief 无线设备低电量报警事件结构体
  70537. typedef struct tagALARM_WIRELESSDEV_LOWPOWER_INFO
  70538. {
  70539. NET_THREE_STATUS_BOOL emResult; // 是否为低电量true低电量,false 电量正常,unknown未知
  70540. NET_TIME stuTime; // 事件发生的时间
  70541. int nId; // 无线设备ID 此字段协议上已废弃
  70542. NET_WIRELESSDEV_LOWPOWER_TYPE emType; // 无线设备类型
  70543. char szSN[32]; // 无线配件序列号
  70544. float fPercent; // 电量百分比
  70545. int nIndex; // 通道号或探测器地址
  70546. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  70547. BYTE reserved[984]; // 预留
  70548. } ALARM_WIRELESSDEV_LOWPOWER_INFO;
  70549. ///@brief 报警事件类型 DH_ALARM_BUS_PAD_SHUTDOWN(PAD关机事件)对应的数据描述信息
  70550. typedef struct tagALARM_BUS_PAD_SHUTDOWN_INFO
  70551. {
  70552. int nDelayTime; // 关机延时时间,单位:秒
  70553. BOOL bConfirm; // 是否需要确认
  70554. NET_TIME_EX stuUtcTime; // 事件发生的时间
  70555. DWORD dwUtc; // 事件发生的时间, 用于确认
  70556. BYTE byReserved[512]; // 预留字节
  70557. } ALARM_BUS_PAD_SHUTDOWN_INFO;
  70558. ///@brief 热度图数据类型
  70559. typedef enum tagEM_HEAT_PIC_DATA_TYPE
  70560. {
  70561. EM_HEAT_PIC_DATA_TYPE_UNKNOWN, // 未知类型
  70562. EM_HEAT_PIC_DATA_TYPE_GRAYDATA, // 灰度数据
  70563. EM_HEAT_PIC_DATA_TYPE_SOURCEDATA, // 原始数据
  70564. }EM_HEAT_PIC_DATA_TYPE;
  70565. ///@brief 获取热度统计信息入参
  70566. typedef struct tagNET_IN_QUERY_HEAT_MAP
  70567. {
  70568. int nChannel; // 通道号
  70569. NET_TIME_EX stuBegin; // 开始时间
  70570. NET_TIME_EX stuEnd; // 结束时间
  70571. UINT nPlanID; // 计划ID,仅球机有效,从1开始 (热度图统一之前使用, 统一之后使用byPtzPresetID)
  70572. EM_HEAT_PIC_DATA_TYPE emDataType; // 希望获取的数据类型
  70573. BYTE byPtzPresetID; // 预置点号, 热度图统一之后使用
  70574. BYTE reserved[1015]; // 预留
  70575. } NET_IN_QUERY_HEAT_MAP;
  70576. ///@brief 获取热度统计信息出参
  70577. typedef struct tagNET_OUT_QUERY_HEAT_MAP
  70578. {
  70579. int nWidth; // 图片宽度
  70580. int nHeight; // 图片高度
  70581. char * pBufData; // 热度数据灰阶位图, 用户申请内存,大小为nBufLen
  70582. // 若emDataType为EM_HEAT_PIC_DATA_TYPE_GRAYDATA,则一个字节表示一个点
  70583. // 若emDataType为EM_HEAT_PIC_DATA_TYPE_SOURCEDATA,则四个字节表示一个点
  70584. int nBufLen; // pBufData最大长度
  70585. int nBufRet; // 实际返回的长度
  70586. int nAverage; // 均值信息
  70587. UINT nPlanID; // 计划ID,与请求NET_IN_QUERY_HEAT_MAP的nPlanID对应 (热度图统一之前使用, 统一之后使用byPtzPresetID)
  70588. EM_HEAT_PIC_DATA_TYPE emDataType; // 获取到的数据类型
  70589. UINT nPixelMax; // 实际像素点的最大值
  70590. UINT nPixelMin; // 实际像素点的最小值
  70591. BYTE byPtzPresetID; // 预置点号, 与请求NET_IN_QUERY_HEAT_MAP的byPtzPresetID对应, 热度图统一之后使用
  70592. BYTE reserved[1003]; // 预留
  70593. } NET_OUT_QUERY_HEAT_MAP;
  70594. ///@brief 获取热度统计信息, 对应命令DH_DEVSTATE_GET_HEAT_MAP
  70595. typedef struct tagNET_QUERY_HEAT_MAP
  70596. {
  70597. DWORD dwSize; // 该结构体大小
  70598. NET_IN_QUERY_HEAT_MAP stuIn; // 热度统计信息查询条件
  70599. NET_OUT_QUERY_HEAT_MAP stuOut; // 热度统计信息查询结果
  70600. } NET_QUERY_HEAT_MAP;
  70601. ///@brief GPS信息查询条件
  70602. typedef struct tagNET_IN_DEV_GPS_INFO
  70603. {
  70604. DWORD dwSize; // 该结构体大小
  70605. int nChannel; // 设备通道号
  70606. } NET_IN_DEV_GPS_INFO;
  70607. ///@brief GPS工作状态
  70608. typedef enum tagNET_GPS_WORK_STATUS
  70609. {
  70610. EM_WORK_STATE_UNKNOWN = 0, //未知工作状态
  70611. EM_NO_POSITIONING, //未定位
  70612. EM_NO_DIFFERENTIAL_POSITIONING, //非差分定位
  70613. EM_DIFFERENTIAL_POSITIONING, //差分定位
  70614. EM_INVALID_PPS, //无效PPS
  70615. EM_EVALUATING, //正在估算
  70616. }NET_GPS_WORK_STATUS;
  70617. ///@brief GPS信息查询结果
  70618. typedef struct tagNET_OUT_DEV_GPS_INFO
  70619. {
  70620. DWORD dwSize; // 该结构体大小
  70621. NET_TIME stuLocalTime; // 当前时间
  70622. double dbLongitude; // 经度(单位是百万分之度,范围0-360度)
  70623. double dbLatitude; // 纬度(单位是百万分之度,范围0-180度)
  70624. double dbAltitude; // 高度(单位:米)
  70625. double dbSpeed; // 速度(单位:km/H)
  70626. double dbBearing; // 方向角(单位:度)
  70627. NET_THREE_STATUS_BOOL emAntennasStatus; // 天线状态(0:坏 1:好)
  70628. NET_THREE_STATUS_BOOL emPositioningResult; // 定位状态(0:不定位 1:定位)
  70629. DWORD dwSatelliteCount; // 卫星个数
  70630. NET_GPS_WORK_STATUS emworkStatus; // 工作状态
  70631. int nAlarmCount; // 报警个数
  70632. int nAlarmState[128]; // 发生的报警位置,值可能多个
  70633. float fHDOP; // 水平精度因子
  70634. } NET_OUT_DEV_GPS_INFO;
  70635. ///@brief GPS状态信息
  70636. typedef struct tagNET_SET_GPS_STATUS_INFO
  70637. {
  70638. EM_DATE_SOURCE emDateSource; // 数据来源
  70639. NET_TIME stuLocalTime; // 当前时间
  70640. double dbLongitude; // 经度(单位是度,范围0-360度)
  70641. double dbLatitude; // 纬度(单位是度,范围0-180度)
  70642. double dbAltitude; // 高度(单位:米)
  70643. double dbSpeed; // 速度(单位:km/H)
  70644. double dbBearing; // 方向角(单位:度)
  70645. NET_THREE_STATUS_BOOL emAntennasStatus; // 天线状态(0:坏 1:好)
  70646. NET_THREE_STATUS_BOOL emPositioningResult; // 定位状态(0:不定位 1:定位)
  70647. int nSatelliteCount; // 卫星个数
  70648. NET_GPS_WORK_STATUS emWorkStatus; // 工作状态
  70649. int nAlarmCount; // 报警个数
  70650. int nAlarmState[128]; // 发生的报警位置,值可能多个
  70651. double dbHDOP; // 水平精度因子
  70652. BYTE byReserved[1024]; // 保留字节
  70653. } NET_SET_GPS_STATUS_INFO;
  70654. ///@brief CLIENT_SetGPSStatus 设置GPS状态输入参数
  70655. typedef struct tagNET_IN_SET_GPS_STATUS
  70656. {
  70657. DWORD dwSize;
  70658. BOOL bEnable; // 使能项, 是否使用设置的数据
  70659. int nChannel; // 通道号
  70660. NET_SET_GPS_STATUS_INFO stGPSInfo; // GPS 状态信息
  70661. } NET_IN_SET_GPS_STATUS;
  70662. ///@brief CLIENT_SetPositionStatus 设置GPS状态输出参数
  70663. typedef struct tagNET_OUT_SET_GPS_STATUS
  70664. {
  70665. DWORD dwSize;
  70666. } NET_OUT_SET_GPS_STATUS;
  70667. ///@brief 设置GPS状态信息(pInParam, pOutParam内存由用户申请释放)
  70668. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetGPSStatus(LLONG lLoginID, const NET_IN_SET_GPS_STATUS* pInParam, NET_OUT_SET_GPS_STATUS* pOutParam, int nWaitTime);
  70669. ///@brief 查询 IVS 前端设备入参
  70670. typedef struct tagNET_IN_IVS_REMOTE_DEV_INFO
  70671. {
  70672. DWORD dwSize; // 该结构体大小
  70673. int nChannel; // 通道号
  70674. }NET_IN_IVS_REMOTE_DEV_INFO;
  70675. ///@brief 查询 IVS 前端设备出参
  70676. typedef struct tagNET_OUT_IVS_REMOTE_DEV_INFO
  70677. {
  70678. DWORD dwSize; // 该结构体大小
  70679. int nPort; // 端口
  70680. char szIP[64]; // 设备IP
  70681. char szUser[64]; // 用户名
  70682. char szPassword[64]; // 密码
  70683. char szAddress[128]; // 机器部署地点
  70684. }NET_OUT_IVS_REMOTE_DEV_INFO;
  70685. ///@brief 查询智能插座信息入参
  70686. typedef struct tagNET_IN_SMART_SWITCH_INFO
  70687. {
  70688. DWORD dwSize; // 该结构体大小
  70689. char szSerialNumber[DH_WIRELESS_DEVICE_SERIAL_NUMBER_MAX_LEN]; // 设备序列号
  70690. }NET_IN_SMART_SWITCH_INFO;
  70691. ///@brief 查询智能插座信息出参
  70692. typedef struct tagNET_OUT_SMART_SWITCH_INFO
  70693. {
  70694. DWORD dwSize; // 该结构体大小
  70695. BOOL bSwitchEable; // 开关状态, TRUE 开, FALSE 关
  70696. double dbCurrentPower; // 及时功率, unit: W
  70697. double dbHistoryPowerUsed; // 历史用电量, unit: kw/h
  70698. double dbTodayPowerUsed; // 当天用电量, unit: kw/h
  70699. double dbMonthPowerUsed[NET_MAX_MONTH_NUM]; // 每月用电量, unit: kw/h
  70700. }NET_OUT_SMART_SWITCH_INFO;
  70701. ///@brief 查询升级状态入参
  70702. typedef struct tagNET_IN_UPGRADE_STATE
  70703. {
  70704. DWORD dwSize; // 该结构体大小
  70705. }NET_IN_UPGRADE_STATE;
  70706. ///@brief 码流类型
  70707. typedef enum CFG_EM_STREAM_TYPES
  70708. {
  70709. CFG_EM_STREAMTYPE_ERR, // 其它
  70710. CFG_EM_STREAMTYPE_MAIN, // "Main"-主码流
  70711. CFG_EM_STREAMTYPE_EXTRA_1, // "Extra1"-辅码流1
  70712. CFG_EM_STREAMTYPE_EXTRA_2, // "Extra2"-辅码流2
  70713. CFG_EM_STREAMTYPE_EXTRA_3, // "Extra3"-辅码流3
  70714. CFG_EM_STREAMTYPE_SNAPSHOT, // "Snapshot"-抓图码流
  70715. CFG_EM_STREAMTYPE_TALKBACK, // "Talkback"-对讲码流
  70716. }CFG_EM_STREAM_TYPES;
  70717. ///@brief 获取视频编码能力集入参
  70718. typedef struct tagNET_IN_VIDEO_ENCODE_CAPS
  70719. {
  70720. DWORD dwSize; // 该结构体大小
  70721. int nChannel; // 通道号
  70722. int nGroup; // 组号
  70723. CFG_EM_STREAM_TYPES stStreamType; // 码流类型
  70724. }NET_IN_VIDEO_ENCODE_CAPS;
  70725. ///@brief 隐私遮档版本号
  70726. typedef enum tagEM_PRIVACY_MASKING_VERSION
  70727. {
  70728. EM_PRIVACY_MASKING_UNKNOWN, // 未知类型
  70729. EM_PRIVACY_MASKING_V1, // V1:第一版本隐私遮档算法(原始隐私遮档算法,使用配置)
  70730. EM_PRIVACY_MASKING_V2, // V2:第二版本的隐私遮档算法(基于视场角的新算法,使用接口)
  70731. EM_PRIVACY_MASKING_V3, // V3:球机和IPC协议统一的版本
  70732. }EM_PRIVACY_MASKING_VERSION;
  70733. ///@brief 遮挡块形状
  70734. typedef enum tagEM_PRIVACY_MASKING_TYPE
  70735. {
  70736. EM_MASKING_TYPE_UNKNOWN, // 未知类型
  70737. EM_MASKING_TYPE_RECT, // 矩形
  70738. EM_MASKING_TYPE_POLYGON, // 多边形
  70739. }EM_PRIVACY_MASKING_TYPE;
  70740. ///@brief 纯色隐私遮挡块的能力集
  70741. typedef struct tagNET_COLOR_MASKING_CAPS
  70742. {
  70743. BOOL bSupport; // 是否支持纯色隐私遮挡块
  70744. UINT nMaxNum; // 系统支持的最大纯色块个数
  70745. int nSupportTypeNum; // 支持的遮挡块形状个数
  70746. EM_PRIVACY_MASKING_TYPE emSupportType[8]; // 支持的遮挡块形状
  70747. UINT nMaxPolygonPoints; // 系统支持的多边形遮挡块最大顶点数(SupportType支持"Polygon"时该能力有效)
  70748. BOOL bSetColorSupport; // 是否支持遮挡块颜色设置
  70749. BOOL bSetColorIndependent; // 是否支持遮挡块颜色相互独立
  70750. BYTE byReserved[128]; // 保留字节
  70751. }NET_COLOR_MASKING_CAPS;
  70752. ///@brief 马赛克隐私遮挡块的能力集
  70753. typedef struct tagNET_MOSAIC_MASKING_CAPS
  70754. {
  70755. BOOL bSupport; // 是否支持马赛克隐私遮挡块
  70756. UINT nMaxNum; // 系统支持的最大马赛克遮挡块个数
  70757. int nSupportTypeNum; // 支持的遮挡块形状个数
  70758. EM_PRIVACY_MASKING_TYPE emSupportType[8]; // 支持的遮挡块形状
  70759. UINT nMaxPolygonPoints; // 系统支持的多边形遮挡块最大顶点数(SupportType支持"Polygon"时该能力有效)
  70760. int nSupportMosaicTypeNum; // 支持的马赛克类型个数
  70761. int nSupportMosaicType[8]; // 支持的马赛克类型(SetMosaicSupport为true时该能力有效,没有该项配置时默认支持24x24大小马赛克)
  70762. BYTE byReserved[128]; // 保留字节
  70763. }NET_MOSAIC_MASKING_CAPS;
  70764. ///@brief 屏蔽倍率能力集
  70765. typedef struct tagNET_SHIELD_ZOOM_CAPS
  70766. {
  70767. BOOL bSupport; // 是否支持设置屏蔽倍率,true-支持, false-不支持
  70768. int nShieldZoomMin; // 屏蔽倍率最小值若无该字段则最小值为0。真实倍率扩大10倍
  70769. int nShieldZoomMax; // 屏蔽倍率最大值,若无该字段则最大值不做限制。真实倍率扩大10倍
  70770. BYTE byReserved[128]; // 保留字节
  70771. }NET_SHIELD_ZOOM_CAPS;
  70772. ///@brief 隐私遮挡通用能力集
  70773. typedef struct tagNET_PRIVACY_MASKING_CAPS
  70774. {
  70775. BOOL bSupport; // 是否支持PrivacyMasking设置
  70776. EM_PRIVACY_MASKING_VERSION emVersion; // 隐私遮档版本号
  70777. int nSupportMaskingNum; // 支持最大隐私遮挡块数目
  70778. UINT nMaxChipMaskingNum; // 系统支持的隐私遮挡块(包括纯色块和马赛克)最大个数,代表了芯片平台能支持的最大能力。
  70779. NET_COLOR_MASKING_CAPS stuColorMaskingCaps; // 纯色隐私遮挡块的能力集
  70780. NET_MOSAIC_MASKING_CAPS stuMosaicMaskingCaps; // 马赛克隐私遮挡块的能力集
  70781. NET_SHIELD_ZOOM_CAPS stuShieldZoom; // 屏蔽倍率能力集
  70782. BYTE byReserved[1024]; // 保留字节
  70783. }NET_PRIVACY_MASKING_CAPS;
  70784. ///@brief 获取视频编码能力集出参
  70785. typedef struct tagNET_OUT_VIDEO_ENCODE_CAPS
  70786. {
  70787. DWORD dwSize; // 该结构体大小
  70788. int nSvcEncodeTypesNum; // 支持SVC编码的视频格式个数
  70789. char szSvcEncodeTypes[DH_COMMON_STRING_32][DH_COMMON_STRING_32]; // 支持SVC编码的视频格式
  70790. int nGOPCustomEncodesNum; // 支持自定义I帧间隔的码流个数
  70791. char szGOPCustomEncodes[DH_COMMON_STRING_32][DH_COMMON_STRING_32]; // 支持自定义I帧间隔的码流
  70792. int nMaxSVCTLevel; // 最大SVC-T支持层数
  70793. NET_PRIVACY_MASKING_CAPS stuPrivacyMaskingCaps; // 隐私遮挡通用能力集
  70794. }NET_OUT_VIDEO_ENCODE_CAPS;
  70795. ///@brief 获取音频编码能力集入参
  70796. typedef struct tagNET_IN_AUDIO_ENCODE_CAPS
  70797. {
  70798. DWORD dwSize; // 该结构体大小
  70799. int nChannel; // 通道号
  70800. CFG_EM_STREAM_TYPES stStreamType; // 码流类型
  70801. }NET_IN_AUDIO_ENCODE_CAPS;
  70802. ///@brief 获取音频编码能力集出参
  70803. typedef struct tagNET_OUT_AUDIO_ENCODE_CAPS
  70804. {
  70805. DWORD dwSize; // 该结构体大小
  70806. BOOL bSupportSourceSelect; // 是否支持多路音频输入
  70807. int nSourceTypeNum; // 音频源类型个数
  70808. char szSourceType[DH_COMMON_STRING_32][DH_COMMON_STRING_32]; // 音频源类型列表
  70809. }NET_OUT_AUDIO_ENCODE_CAPS;
  70810. ///@brief 音频解码能力数据流源类型
  70811. typedef enum EM_AUDIO_DATA_SOURCE_TYPE
  70812. {
  70813. EM_AUDIO_DATA_SOURCE_TYPE_UNKNOWN = -1, // 未知数据类型
  70814. EM_AUDIO_DATA_SOURCE_TYPE_TALK, // 对讲数据
  70815. EM_AUDIO_DATA_SOURCE_TYPE_NORMAL, // 普通音频数据,如伴音
  70816. EM_AUDIO_DATA_SOURCE_TYPE_ALARM, // 报警音频数据流
  70817. }EM_AUDIO_DATA_SOURCE_TYPE;
  70818. ///@brief 获取音频解码能力集入参
  70819. typedef struct tagNET_IN_AUDIO_DECODE_CAPS
  70820. {
  70821. DWORD dwSize; // 该结构体大小
  70822. int nChannel; // 通道号
  70823. EM_AUDIO_DATA_SOURCE_TYPE emSourceType; // 数据流源类型
  70824. }NET_IN_AUDIO_DECODE_CAPS;
  70825. ///@brief 音频解码能力信息
  70826. typedef struct tagNET_AUDIO_DECODE_FORMAT
  70827. {
  70828. NET_EM_AUDIO_FORMAT emCompression; // 音频编码格式
  70829. int nFrequency; // 音频采样频率:8K ~ 192K
  70830. int nDepth; // 音频采样深度:8,16,24
  70831. int nPacketPeriod; // 音频打包周期, [10, 250],ms
  70832. BYTE szReserved[512]; // 保留字段
  70833. }NET_AUDIO_DECODE_FORMAT;
  70834. ///@brief 获取音频解码能力集出参
  70835. typedef struct tagNET_OUT_AUDIO_DECODE_CAPS
  70836. {
  70837. DWORD dwSize; // 结构体大小,赋值为 sizeof(NET_OUT_AUDIO_DECODE_CAPS)
  70838. NET_AUDIO_DECODE_FORMAT stuDecodeFormats[64]; // 音频解码格式信息
  70839. int nFormatsRet; // 返回的音频解码格式信息数量
  70840. }NET_OUT_AUDIO_DECODE_CAPS;
  70841. ///@brief 获取当前布撤防状态入参
  70842. typedef struct tagNET_IN_GET_ARM_MODE
  70843. {
  70844. DWORD dwSize; // 结构体大小,赋值为 sizeof(NET_IN_GET_ARM_MODE)
  70845. }NET_IN_GET_ARM_MODE;
  70846. ///@brief 布撤防状态
  70847. typedef enum tagEM_ARM_MODE_MODE
  70848. {
  70849. EM_ARM_MODE_MODE_UNKNOWN, // 未知类型
  70850. EM_ARM_MODE_MODE_ARMING, // 布防
  70851. EM_ARM_MODE_MODE_DISARMING, // 撤防
  70852. }EM_ARM_MODE_MODE;
  70853. ///@brief 获取当前布撤防状态出参
  70854. typedef struct NET_OUT_GET_ARM_MODE
  70855. {
  70856. DWORD dwSize; // 结构体大小,赋值为 sizeof(NET_OUT_GET_ARM_MODE)
  70857. int nDelay; // 延迟
  70858. EM_ARM_MODE_MODE emMode; // 布撤防状态
  70859. BYTE byReserved[4]; // 预留字段
  70860. }NET_OUT_GET_ARM_MODE;
  70861. ///@brief 获取音频输入通道能力集入参
  70862. typedef struct tagNET_IN_AUDIO_IN_CAPS
  70863. {
  70864. DWORD dwSize; // 该结构体大小
  70865. int nChannel; // 通道号
  70866. }NET_IN_AUDIO_IN_CAPS;
  70867. ///@brief 获取音频输入通道能力集出参
  70868. typedef struct tagNET_IN_AUDIO_OUT_CAPS
  70869. {
  70870. DWORD dwSize; // 该结构体大小
  70871. int nMicNum; // 麦克风输入个数,大于0表示支持对讲输入
  70872. int nLineInNum; // 线性输入个数,大于0表示支持伴音输入
  70873. }NET_OUT_AUDIO_IN_CAPS;
  70874. ///@brief Smart编码信息
  70875. typedef struct tagSMART_ENCODE_INFO
  70876. {
  70877. DWORD dwSize; // 该结构体大小
  70878. char szCompression[MAX_COMMON_STRING_8]; // 视频编码压缩格式,如"H.264", "H.265"
  70879. int nPolicy; // Smart编码策略
  70880. bool bEnable; // 码流是否使能
  70881. int nWidth; // 视频宽度,选填
  70882. int nHeight; // 视频高度,选填
  70883. float fFPS; // 视频帧率,选填
  70884. }SMART_ENCODE_INFO;
  70885. ///@brief 查询Smart编码能力集入参
  70886. typedef struct tagNET_IN_SMART_ENCODE_CAPS
  70887. {
  70888. DWORD dwSize; // 该结构体大小
  70889. int nChannel; // 通道号
  70890. int nStreamNum; // 实际码流个数
  70891. SMART_ENCODE_INFO stSmartEncodeInfo[MAX_STREAM_NUM]; // 每个码流对应的Smart编码信息,如果实际码流个数为3,则下标0、1、2分辨代表主码流、辅码流1、辅码流2的编码信息
  70892. }NET_IN_SMART_ENCODE_CAPS;
  70893. ///@brief Smart编码使能
  70894. typedef struct tagSMART_ENCODE_CAPS_INFO
  70895. {
  70896. DWORD dwSize; // 该结构体大小
  70897. int nSmartEncodeCap; // 1支持开启编码重定位P帧功能;0不支持Smart编码(但能输出普通码流);-1不支持编码(比如主码流分辨率过大,导致资源不足,辅码流2不能编码,但降低主码流分辨率,辅2可以正常编码)
  70898. }SMART_ENCODE_CAPS_INFO;
  70899. ///@brief 查询Smart编码能力集出参
  70900. typedef struct tagNET_OUT_SMART_ENCODE_CAPS
  70901. {
  70902. DWORD dwSize; // 该结构体大小
  70903. int nSmartEncodeCapsNum; // Smart编码使能组个数
  70904. SMART_ENCODE_CAPS_INFO stSmartEncodeCaps[MAX_STREAM_NUM]; // 每个码流Smart编码信息对应编码使能。
  70905. }NET_OUT_SMART_ENCODE_CAPS;
  70906. ///@brief 查询设备ID入参
  70907. typedef struct tagNET_IN_DEVICE_ID
  70908. {
  70909. DWORD dwSize; // 结构体大小
  70910. }NET_IN_DEVICE_ID;
  70911. ///@brief 查询设备ID出参
  70912. typedef struct tagNET_OUT_DEVICE_ID
  70913. {
  70914. DWORD dwSize; // 结构体大小
  70915. char szDeviceID[48]; // 设备传过来的序列号,唯一标识某个设备
  70916. }NET_OUT_DEVICE_ID;
  70917. ///@brief 查询远程设备能力入参
  70918. typedef struct tagNET_IN_REMOTEDEVICE_CAPS
  70919. {
  70920. DWORD dwSize; // 结构体大小
  70921. }NET_IN_REMOTEDEVICE_CAPS;
  70922. ///@brief 查询远程设备能力出参
  70923. typedef struct tagNET_OUT_REMOTEDEVICE_CAPS
  70924. {
  70925. DWORD dwSize; // 结构体大小
  70926. int nRetCount; // 返回的pnProtocal 有效个数
  70927. EM_DEV_PROTOCOL_TYPE snProtocal[512]; // 协议类型 值同 EM_DEV_PROTOCOL_TYPE
  70928. }NET_OUT_REMOTEDEVICE_CAPS;
  70929. ///@brief 智能功能类型
  70930. typedef enum tagEM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE
  70931. {
  70932. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_UNKNOWN, // 未知
  70933. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_FACE_DETECTION, // 目标检测
  70934. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_FACE_ANALYSIS, // 目标分析
  70935. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_FACE_ATTRIBUTE, // 目标属性
  70936. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_FACE_COMPARE, // 目标比对
  70937. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_NORMAL, // 智能通用行为分析
  70938. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_OBJECT_DETECT, // 智能 视频结构化
  70939. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_SMART_MOTION, // 动检,对应的结构体 NET_CFG_SMART_MOTION_DETECT
  70940. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_ENCODE_ENHANCE, // 编码增强
  70941. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_ONE_KEY_EXPAND, // 一键扩展
  70942. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_NUMBER_STAT, // 人数统计
  70943. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE_INTELLIGENT, // 智能功能,表示所有智能功能
  70944. }EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE;
  70945. ///@brief CLIENT_QueryDevInfo , NET_QUERY_DEV_VARIABLE_CAPS_MANAGER_CHECK_START 类型接口输入参数
  70946. typedef struct tagNET_IN_DEV_VARIABLE_CAPS_MANAGER_CHECK_START_INFO
  70947. {
  70948. DWORD dwSize;
  70949. int nChannel; // 通道号
  70950. UINT nPtzPresetID[256]; // 预置点编号【范围:0~255】
  70951. UINT nPtzPresetNum; // 预置点个数
  70952. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE emFuncType; // 检测功能
  70953. void *pFuncTypeInfo; // 功能对应的信息
  70954. }NET_IN_DEV_VARIABLE_CAPS_MANAGER_CHECK_START_INFO;
  70955. ///@brief 资源不足类型
  70956. typedef enum tagEM_DEV_VARIABLE_CARS_MANAGER_OUTOF_RESOURCES_TYPE
  70957. {
  70958. EM_DEV_VARIABLE_CARS_MANAGER_OUTOF_RESOURCES_TYPE_UNKNOWN, // 未知
  70959. EM_DEV_VARIABLE_CARS_MANAGER_OUTOF_RESOURCES_TYPE_INTELLIGENT_ALGORITHM, // 智能算法
  70960. EM_DEV_VARIABLE_CARS_MANAGER_OUTOF_RESOURCES_TYPE_INTELLIGENT_DECODING, // 智能解码
  70961. EM_DEV_VARIABLE_CARS_MANAGER_OUTOF_RESOURCES_TYPE_WEAK_DECODE, // 解码能力不足,可降预览码流类型满足
  70962. EM_DEV_VARIABLE_CARS_MANAGER_OUTOF_RESOURCES_TYPE_NO_DECODE, // 解码能力不足,降预览码流类型仍无法满足
  70963. EM_DEV_VARIABLE_CARS_MANAGER_OUTOF_RESOURCES_TYPE_INSUFFICIENT_RESOURCES, // 资源不足 (模糊概念)
  70964. }EM_DEV_VARIABLE_CARS_MANAGER_OUTOF_RESOURCES_TYPE;
  70965. ///@brief 重启类型
  70966. typedef enum tagDEV_VARIABLE_CARS_MANAGER_REBOOT_TYPE
  70967. {
  70968. DEV_VARIABLE_CARS_MANAGER_REBOOT_TYPE_UNKNOWN = -1, // 未知
  70969. DEV_VARIABLE_CARS_MANAGER_REBOOT_TYPE_NO_REBOOT, // 不重启
  70970. DEV_VARIABLE_CARS_MANAGER_REBOOT_TYPE_REBOOT, // 重启
  70971. }DEV_VARIABLE_CARS_MANAGER_REBOOT_TYPE;
  70972. ///@brief 检测智能方法类型信息
  70973. typedef struct tagDEV_VARIABLE_CARS_MANAGER_FUN_TYPE_INFO
  70974. {
  70975. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE emMutexFuncType[1024]; // 互斥功能
  70976. UINT nMutexFuncTypeNum; // 互斥功能个数
  70977. UINT nPtzPresetID; // 预置点编号【范围:0~255】
  70978. UINT nOutofResorecesTypeNum; // 资源不足的个数
  70979. EM_DEV_VARIABLE_CARS_MANAGER_OUTOF_RESOURCES_TYPE emOutofResorecesType[32]; // 资源不足类型
  70980. BYTE byReserved[1020];
  70981. }DEV_VARIABLE_CARS_MANAGER_FUN_TYPE_INFO;
  70982. ///@brief CLIENT_QueryDevInfo , NET_QUERY_DEV_VARIABLE_CAPS_MANAGER_CHECK_START 类型接口输出参数
  70983. typedef struct tagNET_OUT_DEV_VARIABLE_CAPS_MANAGER_CHECH_START_INFO
  70984. {
  70985. DWORD dwSize; // 结构体大小
  70986. DEV_VARIABLE_CARS_MANAGER_REBOOT_TYPE emRebootType; // 重启类型
  70987. UINT nMaxCheckStartCount; // 最大输入查询检测类型数量
  70988. UINT nRetCheckStartCount; // 实际的检测类型个数
  70989. DEV_VARIABLE_CARS_MANAGER_FUN_TYPE_INFO *pstuCheckStartInfo; // 检测智能类型信息
  70990. }NET_OUT_DEV_VARIABLE_CAPS_MANAGER_CHECK_START_INFO;
  70991. ///@brief CLIENT_QueryDevInfo , NET_QUERY_DEV_VARIABLE_CAPS_MANAGER_GET_FUNC_TYPE_LIST 类型接口输入参数
  70992. typedef struct tagNET_IN_DEV_VARIABLE_CAPS_MANAGER_GET_FUNC_TYPE_LIST_INFO
  70993. {
  70994. DWORD dwSize; // 结构体信息
  70995. }NET_IN_DEV_VARIABLE_CAPS_MANAGER_GET_FUNC_TYPE_LIST_INFO;
  70996. ///@brief CLIENT_QueryDevInfo , NET_QUERY_DEV_VARIABLE_CAPS_MANAGER_GET_FUNC_TYPE_LIST 类型接口输出参数
  70997. typedef struct tagNET_OUT_DEV_VARIABLE_CAPS_MANAGER_GET_FUNC_TYPE_LIST_INFO
  70998. {
  70999. DWORD dwSize; // 结构体信息
  71000. UINT nFuncTypeNum; // 功能个数
  71001. EM_DEV_VARIABLE_CARS_MANAGER_FUNC_TYPE emFuncTypeList[1024]; // 功能列表
  71002. }NET_OUT_DEV_VARIABLE_CAPS_MANAGER_GET_FUNC_TYPE_LIST_INFO;
  71003. ///@brief CLIENT_QueryDevInfo NET_QUERY_GET_ALL_PARKING_SPACE_STATUS 类型接口输出参数
  71004. typedef struct tagNET_IN_GET_ALL_PARKING_SPACE_STATUS_INFO
  71005. {
  71006. DWORD dwSize; // 结构体大小
  71007. }NET_IN_GET_ALL_PARKING_SPACE_STATUS_INFO;
  71008. ///@brief CLIENT_QueryDevInfo NET_QUERY_VEHICLE_STATE_INFO 类型接口输入参数
  71009. typedef struct tagNET_IN_VEHICLE_STATE_INFO
  71010. {
  71011. DWORD dwSize; // 结构体大小
  71012. }NET_IN_VEHICLE_STATE_INFO;
  71013. ///@brief CLIENT_QueryDevInfo NET_QUERY_VEHICLE_STATE_INFO 类型接口输出参数
  71014. typedef struct tagNET_OUT_VEHICLE_STATE_INFO
  71015. {
  71016. DWORD dwSize; // 结构体大小
  71017. char szLatitude[16]; // 纬度
  71018. char szLongitude[16]; // 经度
  71019. char szSpeed[16]; // 速度
  71020. char szModuleState[16]; // 模块状态
  71021. char szPosition[16]; // GPS状态
  71022. char szRfState[16]; // 天线状态
  71023. char szSignal[16]; // 信号状态
  71024. int nBD; // 北斗卫星数
  71025. int nGPS; // GPS卫星数
  71026. int nGLONASS; // GLONASS卫星数
  71027. int nBDEffect; // 北斗使用卫星数
  71028. int nGPSEffect; // GPS使用卫星数
  71029. int nGLONASSEffect; // GLONASS使用卫星数
  71030. int nSatelliteEffect; // 使用卫星数
  71031. int nSatelliteTotal; // 搜星总数
  71032. }NET_OUT_VEHICLE_STATE_INFO;
  71033. ///@brief CLIENT_QueryDevInfo NET_QUERY_HTTP_PROXY_PORT 类型接口输入参数
  71034. typedef struct tagNET_IN_HTTP_PROXY_PORT
  71035. {
  71036. DWORD dwSize; // 结构体大小
  71037. int nChannel; // 视频通道号
  71038. char szIp[48]; // 设备ip, 用于双网卡的场景下
  71039. }NET_IN_HTTP_PROXY_PORT;
  71040. ///@brief CLIENT_QueryDevInfo NET_QUERY_HTTP_PROXY_PORT 类型接口输出参数
  71041. typedef struct tagNET_OUT_HTTP_PROXY_PORT
  71042. {
  71043. DWORD dwSize; // 结构体大小
  71044. int nProxyPort; // web代理端口, 0-不需要做web代理跳转
  71045. BOOL bProxyHttps; // 是否启用https安全连接
  71046. }NET_OUT_HTTP_PROXY_PORT;
  71047. ///@brief CLIENT_QueryDevInfo NET_QUERY_TRAFFIC_RADAR_GET_OBJECT 类型接口输入参数
  71048. typedef struct tagNET_IN_TRAFFIC_RADAR_GET_OBJECT_INFO
  71049. {
  71050. DWORD dwSize; // 结构体大小
  71051. UINT nChannel; // 通道号
  71052. }NET_IN_TRAFFIC_RADAR_GET_OBJECT_INFO;
  71053. ///@brief 目标雷达信息
  71054. typedef struct tagNET_OBJECT_RADAR_INFO
  71055. {
  71056. UINT nID; // 物体ID
  71057. UINT nVerticalPos; // 物体在道路方向上的坐标,雷达为坐标原点 单位:cm
  71058. UINT nHorizontalPos; // 物体在垂直道路方向上的坐标,雷达为坐标原点 单位:cm
  71059. UINT nObjectLen; // 物体长度 单位:cm
  71060. BYTE byReserved[256]; // 保留字节
  71061. }NET_OBJECT_RADAR_INFO;
  71062. ///@brief CLIENT_QueryDevInfo NET_QUERY_TRAFFIC_RADAR_GET_OBJECT 类型接口输出参数
  71063. typedef struct tagNET_OUT_TRAFFIC_RADAR_GET_OBJECT_INFO
  71064. {
  71065. DWORD dwSize; // 结构体大小
  71066. UINT nMaxObjectNum; // 用户申请目标最大个数
  71067. NET_OBJECT_RADAR_INFO *pObjectInfo; // 目标信息内存由用户申请
  71068. UINT nObjectNum; // 获取到目标的个数
  71069. }NET_OUT_TRAFFIC_RADAR_GET_OBJECT_INFO;
  71070. ///@brief CLIENT_QueryDevInfo NET_QUERY_PTZ_CURRENT_FOV_VALUE 类型接口输入参数
  71071. typedef struct tagNET_IN_PTZ_CURRENT_FOV_VALUE
  71072. {
  71073. DWORD dwSize; // 结构体大小
  71074. int nChannel; // 通道号
  71075. }NET_IN_PTZ_CURRENT_FOV_VALUE;
  71076. ///@brief CLIENT_QueryDevInfo NET_QUERY_PTZ_CURRENT_FOV_VALUE 类型接口输入参数
  71077. typedef struct tagNET_OUT_PTZ_CURRENT_FOV_VALUE
  71078. {
  71079. DWORD dwSize; // 结构体大小
  71080. int nValue; // 当前倍率水平视场角单位0.01度,扩大100倍表示
  71081. int nMinValue; // 镜头最小水平视场角单位同nValue
  71082. int nMaxValue; // 镜头最大水平视场角单位同nValue
  71083. }NET_OUT_PTZ_CURRENT_FOV_VALUE;
  71084. ///@brief CLIENT_QueryDevInfo NET_QUERY_DEV_IO_STATS 类型接口输入参数
  71085. typedef struct tagNET_IN_DEV_IO_STATS
  71086. {
  71087. DWORD dwSize; // 结构体大小
  71088. }NET_IN_DEV_IO_STATS;
  71089. ///@brief 存储设备io信息
  71090. typedef struct tagNET_DEV_IO_STAT_INFO
  71091. {
  71092. char szDeviceName[32]; // 存储设备名称
  71093. UINT nReadIos; // 每秒完成的读次数
  71094. UINT nReadMerges; // 每秒对该设备的读请求被合并次数
  71095. TP_U64 nReadSectors; // 每秒读数据量(kB为单位)
  71096. UINT nWriteIos; // 每秒完成的写次数
  71097. UINT nWriteMerges; // 每秒对该设备的写请求被合并次数
  71098. TP_U64 nWriteSectors; // 每秒写数据量(kB为单位)
  71099. UINT nSize; // 平均每次IO操作的数据量(扇区数为单位)
  71100. UINT nQueue; // 平均等待处理的IO请求队列长度
  71101. UINT nWait; // 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
  71102. UINT nSvctm; // 平均每次IO请求的处理时间(毫秒为单位)
  71103. UINT nUtil; // 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率,范围[0,100]
  71104. char szReserved1[4]; // 字节对齐
  71105. char szReserved[128]; // 预留字节
  71106. }NET_DEV_IO_STAT_INFO;
  71107. ///@brief CLIENT_QueryDevInfo NET_QUERY_DEV_IO_STATS 类型接口输出参数
  71108. typedef struct tagNET_OUT_DEV_IO_STATS
  71109. {
  71110. DWORD dwSize; // 结构体大小
  71111. int nInfoNum; // 存储设备io信息个数
  71112. NET_DEV_IO_STAT_INFO stuInfo[512]; // 存储设备io信息
  71113. }NET_OUT_DEV_IO_STATS;
  71114. ///@brief CLIENT_QueryDevInfo NET_QUERY_VIDEO_IN_STATUS 类型接口输入参数
  71115. typedef struct tagNET_IN_VIDEO_IN_STATUS
  71116. {
  71117. DWORD dwSize; // 结构体大小
  71118. int nChannel; // 通道号
  71119. }NET_IN_VIDEO_IN_STATUS;
  71120. ///@brief CLIENT_QueryDevInfo NET_QUERY_VIDEO_IN_STATUS 类型接口输出参数
  71121. typedef struct tagNET_OUT_VIDEO_IN_STATUS
  71122. {
  71123. DWORD dwSize; // 结构体大小
  71124. int nGain[2]; // 当前增益值,数组0表示视频,数组1表示抓拍
  71125. int nBrightness[2]; // 当前亮度值,数组0表示视频,数组1表示抓拍
  71126. double dbExposureValue[2]; // 视频输入支持的最高视频负载码流kbps,按16bpp计算,非binning模式下.数组0表示视频,数组1表示抓拍
  71127. }NET_OUT_VIDEO_IN_STATUS;
  71128. ///@brief CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_HFOV_VALUE 类型接口输入参数
  71129. typedef struct tagNET_IN_PTZBASE_GET_HFOV_VALUE
  71130. {
  71131. DWORD dwSize; // 结构体大小
  71132. int nChannel; // 通道号从0开始
  71133. float fZoom; // 镜头变倍值,归一化到0~1
  71134. }NET_IN_PTZBASE_GET_HFOV_VALUE;
  71135. ///@brief CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_HFOV_VALUE 类型接口输出参数
  71136. typedef struct tagNET_OUT_PTZBASE_GET_HFOV_VALUE
  71137. {
  71138. DWORD dwSize; // 结构体大小
  71139. int nValue; // 对应倍率水平视场角,单位0.01度,扩大100倍表示
  71140. int nMinValue; // 镜头最小水平视场角,单位同nValue
  71141. int nMaxValue; // 镜头最大水平视场角,单位同nValue
  71142. }NET_OUT_PTZBASE_GET_HFOV_VALUE;
  71143. ///@brief CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_FOCUS_VALUE 类型接口输入参数
  71144. typedef struct tagNET_IN_PTZBASE_GET_FOCUS_VALUE
  71145. {
  71146. DWORD dwSize; // 结构体大小
  71147. int nChannel; // 通道号从0开始
  71148. float fZoom; // 镜头变倍值,归一化到0~1
  71149. }NET_IN_PTZBASE_GET_FOCUS_VALUE;
  71150. ///@brief CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_FOCUS_VALUE 类型接口输出参数
  71151. typedef struct tagNET_OUT_PTZBASE_GET_FOCUS_VALUE
  71152. {
  71153. DWORD dwSize; // 结构体大小
  71154. int nValue; // 对应倍率焦距值 单位0.01mm, 扩大100倍表示
  71155. int nMinValue; // 镜头最小焦距值,单位同nValue
  71156. int nMaxValue; // 镜头最大焦距值,单位同nValue
  71157. }NET_OUT_PTZBASE_GET_FOCUS_VALUE;
  71158. ///@brief CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_VFOV_VALUE 类型接口输入参数
  71159. typedef struct tagNET_IN_PTZBASE_GET_VFOV_VALUE
  71160. {
  71161. DWORD dwSize; // 结构体大小
  71162. int nChannel; // 通道号从0开始
  71163. float fZoom; // 镜头变倍值,归一化到0~1
  71164. }NET_IN_PTZBASE_GET_VFOV_VALUE;
  71165. ///@brief CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_VFOV_VALUE 类型接口输出参数
  71166. typedef struct tagNET_OUT_PTZBASE_GET_VFOV_VALUE
  71167. {
  71168. DWORD dwSize; // 结构体大小
  71169. int nValue; // 对应倍率垂直视场角,单位0.01度,扩大100倍表示
  71170. int nMinValue; // 镜头最小垂直视场角,单位同nValue
  71171. int nMaxValue; // 镜头最大垂直视场角,单位同nValue
  71172. }NET_OUT_PTZBASE_GET_VFOV_VALUE;
  71173. ///@brief CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_CENTER_GPS 类型接口输入参数
  71174. typedef struct tagNET_IN_PTZBASE_GET_CENTER_GPS
  71175. {
  71176. DWORD dwSize; // 结构体大小
  71177. int nChannel; // 通道号从0开始
  71178. BOOL bPosEnable; // 计算GPS信息标志位,为TRUE时使用dPosition中的位置信息来进行计算,为FALSE时使用当前云台PT位置信息计算GPS
  71179. double dPosition[2]; // 云台方向信息,第一个元素为水平角度,第二个元素为垂直角度
  71180. }NET_IN_PTZBASE_GET_CENTER_GPS;
  71181. ///@brief CLIENT_QueryDevInfo NET_QUERY_PTZBASE_GET_CENTER_GPS 类型接口输出参数
  71182. typedef struct tagNET_OUT_PTZBASE_GET_CENTER_GPS
  71183. {
  71184. DWORD dwSize; // 结构体大小
  71185. double dLongitude; // 经度,单位:度,正为东经,负为西经,取值范围[-180,180]
  71186. double dLatitude; // 纬度,单位:度,正为北纬,负为南纬,取值范围[-90,90]
  71187. }NET_OUT_PTZBASE_GET_CENTER_GPS;
  71188. ///@brief 车位状态
  71189. typedef enum tagEM_PARKING_SPACE_STATUS
  71190. {
  71191. EM_PARKING_SPACE_UNKNOWN, // 未知
  71192. EM_PARKING_SPACE_PARK, // 有车
  71193. EM_PARKING_SPACE_N0_PARK, // 无车
  71194. }EM_PARKING_SPACE_STATUS;
  71195. ///@brief 车位类型
  71196. typedef enum tagEM_PARKINGSPACE_TYPE
  71197. {
  71198. EM_PARKINGSPACE_TYPE_UNKNOWN = -1, // 未知
  71199. EM_PARKINGSPACE_TYPE_SMALL_CAR, // 小车车位
  71200. EM_PARKINGSPACE_TYPE_BIG_CAR, // 大车车位
  71201. }EM_PARKINGSPACE_TYPE;
  71202. ///@brief 场景类型
  71203. typedef enum tagEM_PARKING_SPACE_SCENE_TYPE
  71204. {
  71205. EM_PARKING_SPACE_SCENE_TYPE_UNKNOWN, // 未知
  71206. EM_PARKING_SPACE_SCENE_TYPE_PARKING_SPACE, // 车位检测类型
  71207. EM_PARKING_SPACE_SCENE_TYPE_PARKING_STATISTICS, // 车位统计类型
  71208. }EM_PARKING_SPACE_SCENE_TYPE;
  71209. ///@brief 统计模式
  71210. typedef enum tagEM_PARKING_SPACE_STATISTICS_MODE
  71211. {
  71212. EM_PARKING_SPACE_STATISTICS_MODE_UNKNOWN, // 未知
  71213. EM_PARKING_SPACE_STATISTICS_MODE_AREA_MODE, // 区域模式
  71214. EM_PARKING_SPACE_STATISTICS_MODE_SPACE_MODE, // 车位模式
  71215. }EM_PARKING_SPACE_STATISTICS_MODE;
  71216. ///@brief 车位信息
  71217. typedef struct tagNET_PARKING_SPACE_INFO
  71218. {
  71219. int nLane; // 车位号
  71220. EM_PARKING_SPACE_STATUS emParkStatus; // 停车状态
  71221. char szCustomParkNo[32]; // 自定义车位号
  71222. EM_PARKINGSPACE_TYPE emSpaceType; // 车位类型
  71223. BYTE byReserved[252]; // 保留字节
  71224. }NET_PARKING_SPACE_INFO;
  71225. ///@brief 区域状态
  71226. typedef struct tagNET_PARKING_SPACE_AREA_STATUS
  71227. {
  71228. char szName[32]; // 区域名称
  71229. UINT nCount; // 该区域的总车位个数
  71230. EM_PARKINGSPACE_TYPE emSpaceType; // 车位类型
  71231. int nRemainCnt; // 该区域剩余可用的车位个数
  71232. char szReserved[252]; // 保留字节
  71233. } NET_PARKING_SPACE_AREA_STATUS;
  71234. ///@brief CLIENT_QueryDevInfo NET_QUERY_GET_ALL_PARKING_SPACE_STATUS 类型接口输入参数
  71235. typedef struct tagNET_OUT_GET_ALL_PARKING_SPACE_STATUS_INFO
  71236. {
  71237. DWORD dwSize; // 结构体大小
  71238. BYTE byReserved[4]; // 字节对齐
  71239. NET_PARKING_SPACE_INFO *pstuParkingSpaceInfo; // 车位信息(需要用户主动申请内存,在调用前填写)
  71240. int nMaxParkingSpace; // pstuParkingStatusInfo中分配的NET_PARKING_SPACE_INFO数组个数,需要调用接口前填写
  71241. int nParkingSpaceNum; // 实际返回车位数
  71242. EM_PARKING_SPACE_SCENE_TYPE emSceneType; // 场景类型
  71243. EM_PARKING_SPACE_STATISTICS_MODE emStatisticsMode; // 统计模式, emSceneType为EM_PARKING_SPACE_SCENE_TYPE_PARKING_STATISTICS时有效
  71244. NET_PARKING_SPACE_AREA_STATUS stuAreaStatus[10]; // 区域状态, emSceneType为EM_PARKING_SPACE_SCENE_TYPE_PARKING_STATISTICS时且emStatisticsMode为EM_PARKING_SPACE_STATISTICS_MODE_AREA_MODE时有效
  71245. int nAreaStatusNum; // 实际返回区域状态个数
  71246. char szReserved[4]; // 字节对齐
  71247. }NET_OUT_GET_ALL_PARKING_SPACE_STATUS_INFO;
  71248. ///@brief 对应 CLIENT_QueryDevInfo接口, NET_QUERY_TRAFFIC_SNAP_RADAR 查询智能交通外接雷达信息入参
  71249. typedef struct tagNET_IN_TRAFFIC_SNAP_RADAR_INFO
  71250. {
  71251. DWORD dwSize; // 结构体大小
  71252. int nChannel; // 通道号
  71253. }NET_IN_TRAFFIC_SNAP_RADAR_INFO;
  71254. ///@brief 智能交通外接设备工作状态
  71255. typedef enum tagEM_TRAFFIC_SNAP_DEVICE_WORK_STATE
  71256. {
  71257. EM_TRAFFIC_SNAP_DEVICE_WORK_STATE_UNKNOWN = -1, // 未知
  71258. EM_TRAFFIC_SNAP_DEVICE_WORK_STATE_FAULT, // 故障
  71259. EM_TRAFFIC_SNAP_DEVICE_WORK_STATE_NORMAL, // 正常
  71260. EM_TRAFFIC_SNAP_DEVICE_WORK_STATE_CLOSE, // 关闭
  71261. }EM_TRAFFIC_SNAP_DEVICE_WORK_STATE;
  71262. ///@brief 智能交通雷达检测线圈匹配状态
  71263. typedef enum tagEM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE
  71264. {
  71265. EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE_UNKNOWN = -1, // 未知
  71266. EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE_MISMATCH, // 不匹配
  71267. EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE_MATCH, // 匹配
  71268. EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE_NO_DETECT, // 不检测
  71269. }EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE;
  71270. ///@brief 智能交通雷达检测汽车状态
  71271. typedef enum tagEM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE
  71272. {
  71273. EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE_UNKNOWN = -1, // 未知
  71274. EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE_NO_CAR, // 无车
  71275. EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE_CAR, // 有车
  71276. }EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE;
  71277. ///@brief 对应 CLIENT_QueryDevInfo 接口, NET_QUERY_TRAFFIC_SNAP_RADAR 智能交通外接雷达信息出参
  71278. typedef struct tagNET_OUT_TRAFFIC_SNAP_RADAR_INFO
  71279. {
  71280. DWORD dwSize; // 结构体大小
  71281. char szSerialNo[128]; // 设备编号
  71282. char szVendor[32]; // 生产厂商
  71283. char szDevType[32]; // 设备型号
  71284. EM_TRAFFIC_SNAP_DEVICE_WORK_STATE emWorkState; // 工作状态
  71285. EM_TRAFFIC_SNAP_RADAR_COIL_MATCH_STATE emCoilMatch; // 线圈匹配状态
  71286. DH_POINT stuFakeAlarmPointInfo[64]; // 虚警坐标点信息
  71287. int nRetFakeAlarmPointNum; // 实际返回虚警点个数
  71288. UINT nRelayWorkCount; // 继电器工作次数
  71289. EM_TRAFFIC_SNAP_RADAR_DETECT_CAR_STATE emDetectCarState;// 检测汽车状态
  71290. UINT nCommPort; // 串口号(连接相机的端口号)
  71291. BYTE byReserved[1020]; // 保留字节
  71292. }NET_OUT_TRAFFIC_SNAP_RADAR_INFO;
  71293. ///@brief 对应 CLIENT_QueryDevInfo 接口, NET_QUERY_TRAFFIC_SNAP_STROBE_INFO 智能交通外接道闸信息入参
  71294. typedef struct tagNET_IN_TRAFFIC_SNAP_STROBE_INFO
  71295. {
  71296. DWORD dwSize; // 结构体大小
  71297. int nChannel; // 通道号
  71298. }NET_IN_TRAFFIC_SNAP_STROBE_INFO;
  71299. ///@brief 智能交通道闸故障代码
  71300. typedef enum tagEM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE
  71301. {
  71302. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_UNKNOWN, // 未知
  71303. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_ENCODER_SIGNAL_EXCEPTION, // 编码器信号异常
  71304. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MOTOR_RUNNING_OVERTIME, // 电机运行超时
  71305. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MOTOR_STALLING, // 电机堵转
  71306. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_INFRARED_IS_BLOCKED_BY_OBJECTS, // 红外线被物体挡住
  71307. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_THE_PRESSURE_WAVE_IS_BLOCKED_BY_AN_OBJECT, // 压力波被物体阻挡
  71308. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_INVERTER_UNIT_PROTECTION, // 逆变单元保护
  71309. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_ACCELERATED_OVERCURRENT, // 加速过流
  71310. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_DECELERATION_OVER_CURRENT, // 减速过流
  71311. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_CONSTANT_SPEED_OVERCURRENT, // 恒速过流
  71312. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_ACCELERATED_OVERVOLTAGE, // 加速过压
  71313. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_DECELERATION_OVERPRESSURE, // 减速过压
  71314. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_CONSTANT_SPEED_OVERVOLTAGE, // 恒速过压
  71315. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_BRAKING_POWER_SUPPLY_EXCEPTION, // 制动电源异常
  71316. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_UNDER_VOLTAGE, // 欠压故障
  71317. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_FREQUENCY_CONVERTER_OVERLOAD, // 变频器过载
  71318. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MOTOR_OVERLOAD, // 电机过载
  71319. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_INPUT_PHASE_LOSS, // 输入缺相
  71320. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_OUTPUT_PHASE_LOSS, // 输出缺相
  71321. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MODULE_OVERHEAT, // 模块过热
  71322. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_EXTERNAL_FAULT, // 外部故障
  71323. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_RELAY_EXCEPTION, // 继电器异常
  71324. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_CURRENT_DETECTION_EXCEPTION, // 电流检测异常
  71325. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MOTOR_TUNING_EXCEPTION, // 电机调谐异常
  71326. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_EEPROM_READ_WRITE_EXCEPTION, // EEPROM 读写异常
  71327. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_INVERTER_HARDWARE_FAILURE, // 变频器硬件故障
  71328. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_MOTOR_SHORT_CIRCUIT_TO_GROUND, // 电机对地短路
  71329. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_RUN_TIMEOUT, // 运行超时
  71330. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_THE_GATE_IS_BLOCKED, // 开闸运行时遇阻
  71331. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_SENSOR, // 传感器故障
  71332. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_LIMIT, // 限位故障
  71333. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE_INTERNAL_COMMUNICATION_FAULT, // 内部通讯故障
  71334. }EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE;
  71335. ///@brief 智能交通道闸运行状态
  71336. typedef enum tagEM_TRAFFIC_SNAP_STROBE_RUN_STATE
  71337. {
  71338. EM_TRAFFIC_SNAP_STROBE_RUN_STATE_UNKNOWN = -1, // 未知
  71339. EM_TRAFFIC_SNAP_STROBE_RUN_STATE_CLOSE, // 关
  71340. EM_TRAFFIC_SNAP_STROBE_RUN_STATE_OPEN, // 开
  71341. EM_TRAFFIC_SNAP_STROBE_RUN_STATE_OPENING, // 正在开
  71342. EM_TRAFFIC_SNAP_STROBE_RUN_STATE_CLOSING, // 正在关
  71343. EM_TRAFFIC_SNAP_STROBE_RUN_STATE_STOP, // 停
  71344. }EM_TRAFFIC_SNAP_STROBE_RUN_STATE;
  71345. ///@brief 智能交通道闸上次开关闸原因
  71346. typedef enum tagEM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE
  71347. {
  71348. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_UNKNOWN, // 未知
  71349. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_CONTROL_SWITCH_ON, // 遥感器开闸
  71350. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_CONTROL_SWITCH_OFF, // 遥感器关闸
  71351. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_LOOP_LOOP1_OPEN, // 地感LOOP1自动触发开闸
  71352. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_LOOP_LOOP1_CLOSE, // 地感LOOP1自动触发关闸
  71353. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_LOOP_LOOP2_OPEN, // 地感LOOP2自动触发开闸
  71354. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_EXTERNAL_SWITCH_OPEN, // 外部开关开闸
  71355. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_EXTERNAL_SWITCH_CLOSE, // 外部开关关闸
  71356. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_INTERNAL_SWITCH_OPEN, // 内部开关开闸
  71357. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_INTERNAL_SWITCH_CLOSE, // 内部开关关闸
  71358. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_AUTOMATIC_DELAY_CLOSE, // 自动延时关闸
  71359. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_OBSTACLE_REBOUND_TO_OPEN, // 遇阻反弹开闸
  71360. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_INFRARED_ANTI_SMASHING_OPEN, // 红外防砸开闸
  71361. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_INFRARED_ANTI_SMASHING_CLOSE, // 红外防砸关闸
  71362. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_PRESSURE_WAVE_OPEN, // 压力波开闸
  71363. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE_PRESSURE_WAVE_CLOSE, // 压力波关闸
  71364. }EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE;
  71365. ///@brief 智能交通地感输入状态
  71366. typedef enum tagEM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE
  71367. {
  71368. EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE_UNKNOWN = -1,// 未知
  71369. EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE_NO_CAR, //.无车
  71370. EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE_CAR, // 有车
  71371. EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE_NO_SUPPORT = 255,// 不支持
  71372. }EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE;
  71373. ///@brief 智能交通道闸输入状态
  71374. typedef enum tagEM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE
  71375. {
  71376. EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE_UNKNOWN = -1, // 未知
  71377. EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE_TO_BREAK_OFF, // 断开
  71378. EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE_CLOSE, // 闭合
  71379. EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE_NO_SUPPORT = 255, // 不支持
  71380. }EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE;
  71381. ///@brief 智能交通栏杆状态
  71382. typedef enum tagEM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE
  71383. {
  71384. TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE_UNKNOWN = -1, // 未知
  71385. TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE_NORMAL, // 正常
  71386. TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE_FALL_OFF, // 脱落
  71387. TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE_NO_SUPPORT = 255, // 不支持
  71388. }EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE;
  71389. ///@brief 对应 CLIENT_QueryDevInfo 接口, NET_QUERY_TRAFFIC_SNAP_STROBE 智能交通外接道闸信息出参
  71390. typedef struct tagNET_OUT_TRAFFIC_SNAP_STROBE_INFO
  71391. {
  71392. DWORD dwSize; // 结构体大小
  71393. char szSerialNo[128]; // 设备编号
  71394. char szVendor[32]; // 生产厂商
  71395. char szDevType[32]; // 设备型号
  71396. EM_TRAFFIC_SNAP_DEVICE_WORK_STATE emWorkState; // 工作状态
  71397. EM_TRAFFIC_SNAP_STROBE_FAULT_CODE_TYPE emFaultCode; // 故障代码
  71398. UINT nOpenStrobeCount; // 出厂后开闸运行次数(开闸算一次,关闸不算)
  71399. EM_TRAFFIC_SNAP_STROBE_RUN_STATE emRunState; // 运行状态
  71400. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE emStrobeActionReason; // 道闸开关闸原因
  71401. EM_RELAY_STATE_TYPE emHeavyCurrentRelayState; // 强继电器状态
  71402. EM_RELAY_STATE_TYPE emSignalRelay1State; // 信号继电器1
  71403. EM_RELAY_STATE_TYPE emSignalRelay2State; // 信号继电器2
  71404. EM_TRAFFIC_SNAP_GROUND_SENSE_IN_STATE_TYPE emGroundSenseInState; // 地感输入信号
  71405. EM_TRAFFIC_SNAP_STROBE_IN_STATE_TYPE emStrobeInPutState; // 开闸输入状态
  71406. EM_TRAFFIC_SNAP_STROBE_RAIL_STATE_TYPE emRailState; // 栏杆状态
  71407. UINT nCommPort; // 串口号(连接相机的端口号)
  71408. BYTE byReserved[1020]; // 保留字节
  71409. }NET_OUT_TRAFFIC_SNAP_STROBE_INFO;
  71410. ///@brief 对应 CLIENT_QueryDevInfo 接口, NET_QUERY_TRAFFIC_SNAP_PARK_SCREEN 智能交通外接道闸信息入参
  71411. typedef struct tagNET_IN_TRAFFIC_SNAP_PARK_SCREEN_INFO
  71412. {
  71413. DWORD dwSize; // 结构体大小
  71414. int nChannel; // 通道号
  71415. } NET_IN_TRAFFIC_SNAP_PARK_SCREEN_INFO;
  71416. ///@brief 工作状态
  71417. typedef enum tagNET_EM_TRAFFIC_SNAP_WORKING_STATE
  71418. {
  71419. NET_EM_TRAFFIC_SNAP_WORKING_STATE_UNKNOWN = -1, // 未知
  71420. NET_EM_TRAFFIC_SNAP_WORKING_STATE_NORMAL, // 正常
  71421. NET_EM_TRAFFIC_SNAP_WORKING_STATE_ABNORMAL, // 异常
  71422. NET_EM_TRAFFIC_SNAP_WORKING_STATE_OFFLINE, // 离线
  71423. } NET_EM_TRAFFIC_SNAP_WORKING_STATE;
  71424. ///@brief 停车场显示屏信息
  71425. typedef struct tagNET_PARK_SCREEN_INFO
  71426. {
  71427. NET_EM_TRAFFIC_SNAP_WORKING_STATE emWokingState; // 工作状态
  71428. UINT nFaultType; // 故障类型, 按位与, bit0 显示屏异常(灯珠异常), bit1电源异常, bit2:温度异常, bit3:环境光传感器1异常, bit4:环境光传感器2异常
  71429. UINT nFaultScreenNo; // 出故障的显示屏号(故障类型为显示屏异常时有效),按位与, bit0: 1号屏, bit1: 2号屏
  71430. int nEnvBrightness; // 显示屏光敏传感器感知的环境光亮度 0 - 100
  71431. double dbTemperature; // 显示屏温度
  71432. UINT nRunTimes; // 显示屏已运行时间 单位秒
  71433. UINT nCommPort; // 串口号(接到相机的哪个串口上)
  71434. char szVersion[64]; // 显示屏的版本(软件版本)信息
  71435. char szLastSelfCheckFinishTime[24]; // 上次自检完成时间,格式为"YYYY-MM-DD HH:mm:SS"
  71436. char szResvered[1024]; // 字节对齐
  71437. } NET_PARK_SCREEN_INFO;
  71438. ///@brief 对应 CLIENT_QueryDevInfo 接口, NET_QUERY_TRAFFIC_SNAP_PARK_SCREEN 智能交通外接道闸信息出参
  71439. typedef struct tagNET_OUT_TRAFFIC_SNAP_PARK_SCREEN_INFO
  71440. {
  71441. DWORD dwSize; // 结构体大小
  71442. int nCount; // 停车场显示屏个数
  71443. NET_PARK_SCREEN_INFO stuParkScreen[2]; // 停车场显示屏信息
  71444. } NET_OUT_TRAFFIC_SNAP_PARK_SCREEN_INFO;
  71445. ///@brief CLIENT_QueryDevInfo NET_QUERY_HTTP_PROXY_INFO 类型接口输入参数
  71446. typedef struct tagNET_IN_HTTP_PROXY_INFO
  71447. {
  71448. DWORD dwSize; // 结构体大小
  71449. int nChannel; // 视频通道号
  71450. char szIPAddress[40]; // 当前连接访问的设备ip(NVR地址)
  71451. }NET_IN_HTTP_PROXY_INFO;
  71452. ///@brief 免密登录的Token信息
  71453. typedef struct tagNET_TOKEN_INFO
  71454. {
  71455. char szUserName[128]; // 用于免密登录的临时用户名
  71456. char szToken[128]; // 用于免密登录的临时token
  71457. char szResvered[1024]; // 保留字节
  71458. } NET_TOKEN_INFO;
  71459. ///@brief CLIENT_QueryDevInfo NET_QUERY_HTTP_PROXY_INFO 类型接口输出参数
  71460. typedef struct tagNET_OUT_HTTP_PROXY_INFO
  71461. {
  71462. DWORD dwSize; // 结构体大小
  71463. UINT nProxyPort; // 实际分配的虚拟主机访问的web代理端口, 0表示获取虚拟主机代理端口失败, 不需要做web代理跳转, 可以直接访问前端web
  71464. BOOL bProxyHttps; // 是否启用https安全连接
  71465. NET_TOKEN_INFO stuTokenInfo; // 免密登录的Token信息
  71466. }NET_OUT_HTTP_PROXY_INFO;
  71467. ///@briefCLIENT_QueryDevInfo NET_QUERY_TRAFFIC_RADAR_GET_OBJECT_EX 类型接口输入参数
  71468. typedef struct tagNET_IN_TRAFFIC_RADAR_GET_OBJECT_EX_INFO
  71469. {
  71470. DWORD dwSize; // 结构体大小
  71471. UINT nChannel; // 通道号
  71472. }NET_IN_TRAFFIC_RADAR_GET_OBJECT_EX_INFO;
  71473. ///@brief物体类型
  71474. typedef enum tagEMUM_VIDEO_ANALYSE_OBJECT_TYPE
  71475. {
  71476. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_UNKNOWN = -1, // 未知的
  71477. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_ALL, // 所有物体
  71478. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_HUMAN, // 人
  71479. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_VEHICLE, // 机动车,不包括非机动车
  71480. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_FIRE, // 火
  71481. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_SMOKE, // 烟
  71482. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_PLATE, // 车牌
  71483. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_HUMANFACE, // 目标
  71484. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_CONTAINER, // 集装箱
  71485. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_ANIMAL, // 动物
  71486. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_TRAFFICLIGHT, // 交通灯
  71487. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_PASTEPAPER, // 贴条(ATM)
  71488. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_HUMANHEAD = 11, // 人头(客流量统计用,包括正面及后脑勺)
  71489. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_LINE, // 交通线
  71490. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_ENTITY, // 物件
  71491. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_BULLETHOLE, // 弹孔
  71492. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_FACEPRIVATEDATA, // 目标特征算法私有数据
  71493. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_SIMPLEVEHICLE, // 机动车(仅用于结构化信息)
  71494. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_NONMOTOR, // 非机动车
  71495. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_SIGNALFLOW, // 信号机流量
  71496. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_PEDESTRAIN, // 人行道行人信息
  71497. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_DETAILSNAP, // 联动细节相机信息
  71498. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_XRAYIMAGE = 21, // 光(车站X光检测)物品检测影像
  71499. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_SHOPPRESENCE, // 占道经营物体
  71500. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_FLOWBUSINESS, // 流动摊贩物体
  71501. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_WATERLEVELRULER, // 水位尺
  71502. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_BOAT, // 船只
  71503. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_FRUIT, // 水果
  71504. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_BARCODE, // 二维码
  71505. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_GLOVE, // 手套
  71506. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_LADDER, // 梯子
  71507. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_CURTAIN, // 布幔
  71508. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_FENCE = 31, // 围栏
  71509. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_SIGNBOARD, // 标识牌
  71510. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_ELECTRICBELT, // 电力安全带
  71511. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_PARKINGSPACE, // 停车场车位
  71512. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_RMB, // 人民币
  71513. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_KEY, // 钥匙
  71514. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_SEAL, // 印章
  71515. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_FOREIGNCURRENCY, // 外币
  71516. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_WATERFLOATING, // 水面漂浮物
  71517. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_FIRELANEJAMS, // 消防占道物
  71518. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_OCR = 41, // OCR识别目标(例如证件上的目标抠图,名字,号码,姓名,地址等)
  71519. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_PRAM, // 婴儿车
  71520. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_LUGGAGE, // 大件行李
  71521. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_FOREIGNMATTER, // 异物
  71522. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_PACKAGE, // 包裹
  71523. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_RADARDETECT, // 雷达检测物体
  71524. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_PLANE, // 飞机
  71525. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_BAG, // 箱包
  71526. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_BOX, // 盒子
  71527. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_HIGHTOSSCARD, // 高空抛物目标
  71528. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_CARD = 51, // 卡片
  71529. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_EMPTYRADAR, // 空雷达物体,暂时只包含速度
  71530. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_WHEEL, // 车轮
  71531. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_WATER, // 水
  71532. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_BULK, // 大块物
  71533. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_ROADCONE, // 路锥
  71534. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_FIREEXTINGUISHER, // 灭火器
  71535. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_UMBRELLA, // 伞
  71536. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_FISHINGROD, // 钓鱼竿
  71537. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_HANGINGPACKAGE, // 吊物(硅包、钢包、铁包)
  71538. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_TRIPCODE = 61, // 行程码
  71539. EMUM_VIDEO_ANALYSE_OBJECT_TYPE_UNIFORM, // 制服
  71540. }EMUM_VIDEO_ANALYSE_OBJECT_TYPE;
  71541. ///@brief 目标雷达信息
  71542. typedef struct tagNET_RADAR_OBJECT_EX_INFO
  71543. {
  71544. UINT nID; // 物体ID
  71545. UINT nBelongId; // 属主id,无属主则为0
  71546. EMUM_VIDEO_ANALYSE_OBJECT_TYPE emObjectType; // 物体类型
  71547. UINT nRadarObjAtt; // 雷达目标属性, emObjectType为EMUM_VIDEO_ANALYSE_OBJECT_TYPE_RADARDETECT时有效, 0:表示雷达目标是虚拟目标; 1:表示是真实(有效)目标
  71548. UINT nRadarObjSource; // 雷达目标产生源, 当nRadarObjAtt为1时有效, 0:表示从融合物体信息中获取 1:表示直接从雷达裸数据中获取
  71549. UINT nVideoObjAtt; // 视频目标属性, emObjectType为EMUM_VIDEO_ANALYSE_OBJECT_TYPE_VEHICLE/EMUM_VIDEO_ANALYSE_OBJECT_TYPE_NONMOTOR/EMUM_VIDEO_ANALYSE_OBJECT_TYPE_HUMAN时有效, 0:表示视频目标是融合目标; 1:表示视频目标是虚拟目标
  71550. UINT nVerticalPos; // 物体在道路方向上的坐标, 雷达为坐标原点 单位:cm
  71551. UINT nHorizontalPos; // 物体在垂直道路方向上的坐标, 雷达为坐标原点 单位:cm
  71552. UINT nObjectLen; // 物体长度 单位:cm
  71553. double dbSpeedX; // 目标横向运动速度, 单位:m/s, 精确到小数点后一位 设备视角: 右手方向为x正向
  71554. double dbSpeedY; // 目标纵向运动速度, 单位:m/s, 精确到小数点后一位 设备视角: 正前方为y正向
  71555. char szReserved[972]; // 保留字节
  71556. }NET_RADAR_OBJECT_EX_INFO;
  71557. ///@brief CLIENT_QueryDevInfo NET_QUERY_TRAFFIC_RADAR_GET_OBJECT_EX 类型接口输出参数
  71558. typedef struct tagNET_OUT_TRAFFIC_RADAR_GET_OBJECT_EX_INFO
  71559. {
  71560. DWORD dwSize; // 结构体大小
  71561. int nObjectNum; // 有效目标个数
  71562. UINT nMaxObjectNum; // 用户申请目标最大个数
  71563. int nObjectCount; // 获取到目标的个数
  71564. NET_RADAR_OBJECT_EX_INFO *pstuObjectInfo; // 目标信息内存由用户申请
  71565. }NET_OUT_TRAFFIC_RADAR_GET_OBJECT_EX_INFO;
  71566. ///@brief 道闸栏状态
  71567. typedef enum tagEM_TRAFFICSTROBE_STATUS
  71568. {
  71569. NET_TRAFFICSTROBE_STATUS_UNKNOWN,
  71570. NET_TRAFFICSTROBE_STATUS_CLOSE_COMPLETE, // 道闸栏关闭
  71571. NET_TRAFFICSTROBE_STATUS_OPEN_COMPLETE, // 道闸栏打开
  71572. NET_TRAFFICSTROBE_STATUS_NOT_CLOSE_COMPLETE, // 道闸栏未完全关闭
  71573. NET_TRAFFICSTROBE_STATUS_NOT_OPEN_COMPLETE, // 道闸栏未完全打开
  71574. NET_TRAFFICSTROBE_STATUS_NOT_STROBE_STOP, // 道闸停止
  71575. } EM_TRAFFICSTROBE_STATUS;
  71576. ///@brief 道闸栏状态事件 ( DH_ALARM_TRAFFICSTROBESTATE )
  71577. typedef struct tagALARM_TRAFFICSTROBESTATE_INFO
  71578. {
  71579. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束
  71580. NET_TIME stuTime; // 事件发生时间
  71581. int nChannelID; // 视频通道号
  71582. EM_TRAFFICSTROBE_STATUS emStatus; // 道闸栏状态
  71583. EM_TRAFFIC_SNAP_STROBE_ACTION_REASON_TYPE emStrobeActionReason; // 道闸开关闸原因
  71584. BYTE byReserved[1020]; // 预留字段
  71585. }ALARM_TRAFFICSTROBESTATE_INFO;
  71586. ///@brief 升级包类型
  71587. typedef enum tagEM_UPGRADE_PACKAGE_TYPE
  71588. {
  71589. EM_UPGRADE_PACKAGE_TYPE_UNKNOWN, // 未知类型
  71590. EM_UPGRADE_PACKAGE_TYPE_REGULAR, // 一般升级
  71591. EM_UPGRADE_PACKAGE_TYPE_EMERGENCY, // 强制升级
  71592. }EM_UPGRADE_PACKAGE_TYPE;
  71593. ///@brief 升级包和升级状态
  71594. typedef enum tagEM_UPGRADE_STATE
  71595. {
  71596. EM_UPGRADE_STATE_UNKNOWN, // 未知状态
  71597. EM_UPGRADE_STATE_NONE, // 没有检测到更新状态
  71598. EM_UPGRADE_STATE_INVALID, // 升级包不正确
  71599. EM_UPGRADE_STATE_NOT_ENOUGH_MEMORY, // 内存不够
  71600. EM_UPGRADE_STATE_DOWNLOADING, // 正在下载数据
  71601. EM_UPGRADE_STATE_DOWNLOAD_FAILED, // 下载失败
  71602. EM_UPGRADE_STATE_DOWNLOAD_SUCCESSED, // 下载成功
  71603. EM_UPGRADE_STATE_PREPARING, // 准备升级
  71604. EM_UPGRADE_STATE_UPGRADING, // 升级中
  71605. EM_UPGRADE_STATE_UPGRADE_FAILED, // 升级失败
  71606. EM_UPGRADE_STATE_UPGRADE_SUCCESSED, // 升级成功
  71607. EM_UPGRADE_STATE_UPGRADE_CANCELLED, // 取消升级
  71608. EM_UPGRADE_STATE_FILE_UNMATCH, // 升级包不匹配
  71609. EM_UPGRADE_STATE_FEATURE_ENGINE_UNMATCH, // 算法引擎不匹配
  71610. EM_UPGRADE_STATE_FEATURE_FUNC_UNMATCH, // 算法包智能功能不匹配(新增功能或者删除功能,导致功能不匹配)
  71611. EM_UPGRADE_STATE_FEATURE_PARTION_UNMATCH, // 算法分区不匹配, 分区包分为:模型、模型+算法。 目前只能升级相同类型的包
  71612. EM_UPGRADE_STATE_NETWORK_ERROR, // 网络异常
  71613. EM_UPGRADE_STATE_NETWORK_REMOTE_FILE_CHECK_FAILED, // 远程下载的文件和setUrl传的哈希值不匹配
  71614. EM_UPGRADE_STATE_PART_UPGRADED, // 部分升级成功,导致不同芯片版本不匹配
  71615. EM_UPGRADE_STATE_FEATURE_API_UNMATCH, // 算法库对应的API协议头文件版本
  71616. EM_UPGRADE_STATE_FEATURE_SDK_UNMATCH, // 算法库依赖的第三方SDK的版本
  71617. EM_UPGRADE_STATE_SET_URL, // URL下载升级
  71618. EM_UPGRADE_STATE_OEM_NOT_COMPARE, // 升级包是OEM版不能升级
  71619. EM_UPGRADE_STATE_UNMATCH_VERSION, // 升级包版本不匹配
  71620. EM_UPGRADE_STATE_LICENSE_LANGUAGE_ERROR, // 支持license防串货方案时,升级校验发现license文件中的语言字段不正确。
  71621. EM_UPGRADE_STATE_LICENSE_LANGUAGE_NOT_MATCH, // 支持license防串货方案时,升级校验发现license文件中的语言字段和升级包中的不匹配。
  71622. EM_UPGRADE_STATE_SAME_VERSION, // 当前要升级的程序版本和运行的版本一致,不需要在升级,也不能升级
  71623. EM_UPGRADE_STATE_SAME_AS_OLD_APP, // 应用程序版本相同,不需要升级(仅适用DHOP)
  71624. }EM_UPGRADE_STATE;
  71625. ///@brief 设备升级状态事件
  71626. typedef struct tagALARM_UPGRADE_STATE
  71627. {
  71628. EM_UPGRADE_STATE emState; // 升级包和升级状态
  71629. int nProgress; // 升级进度, 0 ~ 100
  71630. char szFileName[DH_COMMON_STRING_64];// 正在操作的文件名
  71631. BYTE byReserved[1024];
  71632. }ALARM_UPGRADE_STATE;
  71633. ///@brief 存储设备工作状态
  71634. typedef enum tagEM_LABELDATA_STATE
  71635. {
  71636. EM_LABELDATA_STATE_ENTER, // Enter (进入)
  71637. EM_LABELDATA_STATE_LEAVE, // Leave (离开)
  71638. }EM_LABELDATA_STATE;
  71639. ///@brief IPC新增(2017.4),RFID标签信息采集事件
  71640. typedef struct tagALARM_LABELINFO
  71641. {
  71642. int nChannelID; // 通道号
  71643. char szIndexIs[DH_COMMON_STRING_8]; // 事件Index代表的含义,如无该字段,无法级联
  71644. int nVideoIndex; // 视频通道号
  71645. UINT nACK; // 确认ID
  71646. char szReceiverID[DH_COMMON_STRING_16]; // 接收器ID
  71647. char szLabelID[DH_COMMON_STRING_16]; // RFID标签
  71648. NET_TIME_EX stuDateTime; // 采集时间UTC
  71649. EM_LABELDATA_STATE emLabelDataState; // 标签的数据状态(进入、离开)
  71650. BYTE byReserve[1024]; // 保留字节
  71651. }ALARM_LABELINFO;
  71652. ///@brief 查询升级状态出参
  71653. typedef struct tagNET_OUT_UPGRADE_STATE
  71654. {
  71655. DWORD dwSize; // 该结构体大小
  71656. char szOldVersion[DH_COMMON_STRING_64]; // 旧版本号
  71657. char szNewVersion[DH_COMMON_STRING_64]; // 新版本号
  71658. EM_UPGRADE_STATE emState; // 升级包和升级状态
  71659. EM_UPGRADE_PACKAGE_TYPE emType; // 升级包类型
  71660. int nProgress; // 升级进度, 0 ~ 100
  71661. }NET_OUT_UPGRADE_STATE;
  71662. ///@brief 查询硬盘温度入参
  71663. typedef struct tagNET_IN_HDD_TEMPERATURE
  71664. {
  71665. DWORD dwSize;
  71666. char szHardDiskName[DH_COMMON_STRING_16]; //存储设备名称
  71667. }NET_IN_HDD_TEMPERATURE;
  71668. ///@brief 查询硬盘温度出参
  71669. typedef struct tagNET_OUT_HDD_TEMPERATURE
  71670. {
  71671. DWORD dwSize;
  71672. int nID; // 属性ID
  71673. char szName[DH_COMMON_STRING_64]; // 属性名
  71674. int nCurrent; // 属性值
  71675. int nWorst; // 最大出错值
  71676. int nThreshold; // 阈值
  71677. char szRaw[DH_COMMON_STRING_32]; // 实际值
  71678. int nPredict; // 状态
  71679. int nSync; // Raid同步状态,0 自适应;1 同步优先,I/O优先分给Raid同步;2 业务优先,I/O优先分给硬盘写数据;3 均衡
  71680. }NET_OUT_HDD_TEMPERATURE;
  71681. ///@brief 获取指定格式的YUV数据入参
  71682. typedef struct tagNET_IN_RAWFRAMEDATA
  71683. {
  71684. DWORD dwSize;
  71685. int nChannel; // 视频输入通道号
  71686. int nSensorID; // sensor ID
  71687. char szRawFrameType[DH_COMMON_STRING_32]; // YUV数据格式,支持的范围通过CLIENT_GetDevCaps方法, 命令: NET_VIDEOIN_RAWFRAME_CAPS获取
  71688. }NET_IN_RAWFRAMEDATA;
  71689. ///@brief 获取指定格式的YUV数据出参
  71690. typedef struct tagNET_OUT_RAWFRAMEDATA
  71691. {
  71692. DWORD dwSize;
  71693. UINT nHeight; // 返回图片的高度
  71694. UINT nWidth; // 返回图片的宽
  71695. UINT nDataLen; // YUV二进制数据大小,单位字节
  71696. char* pszBuffer; // YUV数据,由用户申请内存,大小为,nBufferLen
  71697. int nBufferLen; // 用户申请YUV数据内存大小
  71698. }NET_OUT_RAWFRAMEDARA;
  71699. #define NET_MAX_NUM_CHANNEL_WATCHER 16 // 守望者最大通道数量
  71700. #define NET_MAX_NUM_SPLICEDATA 8 // 守望者最大拼接文件数量(即镜头数量)
  71701. ///@brief 获取设备拼接参数入参(对应 NET_QUERY_GETSPLICEDATA)
  71702. typedef struct tagNET_IN_GETSPLICEDATA
  71703. {
  71704. DWORD dwSize; // 结构体大小
  71705. }NET_IN_GETSPLICEDATA;
  71706. ///@brief 单个拼接文件数据
  71707. typedef struct tagNET_SINGLE_SPLICEDATA
  71708. {
  71709. int nScale; // 拼接参数中球面模型的半径,以像素点为单位
  71710. int nOffsetX; // 图像在球面展开图上的x坐标,以像素点为单位
  71711. int nOffsetY; // 图像在球面展开图上的y坐标,以像素点为单位
  71712. UINT nCenterX; // 拼接模型投影中心点在输出图像中的X坐标,以像素点为单位
  71713. UINT nCenterY; // 拼接模型投影中心点在输出图像中的Y坐标,以像素点为单位
  71714. UINT nFovX; // 拼接输出图像的水平视场角,单位:0.01°取值范围:[1000, 36000]
  71715. UINT nFovY; // 拼接输出图像的垂直视场角,单位:0.01°取值范围:[1000, 36000]
  71716. UINT nPanoWidth; // 拼接完成后输出分辨率宽
  71717. UINT nPanoHeight; // 拼接完成后输出分辨率高
  71718. BYTE byReserved[104]; // 保留字节
  71719. }NET_SINGLE_SPLICEDATA;
  71720. ///@brief 拼接芯片类型
  71721. typedef enum tagEM_SPLICE_PLATFORM_TYPE
  71722. {
  71723. EM_SPLICE_PLATFORM_TYPE_UNKNWON = -1, // 未知
  71724. EM_SPLICE_PLATFORM_TYPE_FPGA, // FPGA芯片
  71725. EM_SPLICE_PLATFORM_TYPE_HISILICON, // 海思芯片
  71726. } EM_SPLICE_PLATFORM_TYPE;
  71727. ///@brief 单个通道拼接数据
  71728. typedef struct tagNET_MULTIVIDEO_SPLICEINFO
  71729. {
  71730. UINT nChannelID; // 视频通道号
  71731. int nNumSplice; // 实际拼接文件的数量
  71732. NET_SINGLE_SPLICEDATA stuSpliceData[NET_MAX_NUM_SPLICEDATA]; // 单个拼接文件数据
  71733. EM_SPLICE_PLATFORM_TYPE emPlatformType; // 拼接芯片类型, 若为EM_SPLICE_PLATFORM_TYPE_UNKNWON表示使用FPGA芯片
  71734. BYTE byReserved[508]; // 保留字节
  71735. }NET_MULTIVIDEO_SPLICEINFO;
  71736. ///@brief 获取设备拼接参数出参(对应 NET_QUERY_GETSPLICEDATA)
  71737. typedef struct tagNET_OUT_GETSPLICEDATA
  71738. {
  71739. DWORD dwSize; // 结构体大小
  71740. int nNumChannel; // 实际通道拼接信息的数量
  71741. NET_MULTIVIDEO_SPLICEINFO stuSpliceInfo[NET_MAX_NUM_CHANNEL_WATCHER]; // 通道拼接信息,每个元素对应一个通道的拼接参数信息
  71742. }NET_OUT_GETSPLICEDATA;
  71743. ///@brief 门禁AC服务协议能力获取入参
  71744. typedef struct tagNET_IN_AC_CAPS
  71745. {
  71746. DWORD dwSize; // 结构体大小
  71747. }NET_IN_AC_CAPS;
  71748. ///@brief 假日计划能力
  71749. typedef struct tagNET_SPECIAL_DAYS_SCHEDULE_CAPS
  71750. {
  71751. BOOL bSupport; // 是否支持假日计划
  71752. int nMaxSpecialDaysSchedules; // 设备支持的最大计划数量
  71753. int nMaxTimePeriodsPerDay; // 每天最多的时间段
  71754. int nMaxSpecialDayGroups; // 设备支持的最大假日组数
  71755. int nMaxDaysInSpecialDayGroup; // 每个假日组里最大的假日数
  71756. BYTE byReserved[128]; // 保留字节
  71757. } NET_SPECIAL_DAYS_SCHEDULE_CAPS;
  71758. ///@brief 开锁模式
  71759. typedef enum tagEM_AC_UNLOCK_MODE
  71760. {
  71761. EM_AC_UNLOCK_MODE_UNKNOWN = 0, // 未知
  71762. EM_AC_UNLOCK_MODE_PWD_ONLY = 1, // 只允许密码开锁
  71763. EM_AC_UNLOCK_MODE_CARD = 2, // 只允许刷卡开锁
  71764. EM_AC_UNLOCK_MODE_PWD_OR_CARD = 3, // 密码或刷卡开锁
  71765. EM_AC_UNLOCK_MODE_CARD_FIRST = 4, // 先刷卡后密码开锁
  71766. EM_AC_UNLOCK_MODE_PWD_FIRST = 5, // 先密码后刷卡开锁
  71767. EM_AC_UNLOCK_MODE_SECTION = 6, // 分时段开门
  71768. EM_AC_UNLOCK_MODE_FINGERPRINTONLY = 7, // 仅信息开锁
  71769. EM_AC_UNLOCK_MODE_PWD_OR_CARD_OR_FINGERPRINT = 8, // 密码或刷卡或信息开锁
  71770. EM_AC_UNLOCK_MODE_PWD_AND_CARD_AND_FINGERPINT = 9, // 密码+刷卡+信息组合开锁
  71771. EM_AC_UNLOCK_MODE_PWD_AND_FINGERPRINT = 10, // 密码+信息组合开锁
  71772. EM_AC_UNLOCK_MODE_CARD_AND_FINGERPRINT = 11, // 刷卡+信息开锁
  71773. EM_AC_UNLOCK_MODE_MULTI_PERSON = 12, // 多人开锁
  71774. EM_AC_UNLOCK_MODE_FACEIDCARD = 13, // 人证对比
  71775. EM_AC_UNLOCK_MODE_FACEIDCARD_AND_IDCARD = 14, // 证件+ 人证比对
  71776. EM_AC_UNLOCK_MODE_FACEIDCARD_OR_CARD_OR_FINGER = 15, // 人证比对或刷卡或信息
  71777. EM_AC_UNLOCK_MODE_FACEIPCARDANDIDCARD_OR_CARD_OR_FINGER = 16, // (证件+认证比对)或刷卡或信息
  71778. EM_AC_UNLOCK_MODE_USERID_AND_PWD = 17, // UserID+密码
  71779. EM_AC_UNLOCK_MODE_FACE_ONLY = 18, // 只允许目标开锁
  71780. EM_AC_UNLOCK_MODE_FACE_AND_PWD = 19, // 目标+密码开锁
  71781. EM_AC_UNLOCK_MODE_FINGERPRINT_AND_PWD = 20, // 信息+密码开锁
  71782. EM_AC_UNLOCK_MODE_FINGERPRINT_AND_FACE = 21, // 信息+目标开锁
  71783. EM_AC_UNLOCK_MODE_CARD_AND_FACE = 22, // 刷卡+目标开锁
  71784. EM_AC_UNLOCK_MODE_FACE_OR_PWD = 23, // 目标或密码开锁
  71785. EM_AC_UNLOCK_MODE_FINGERPRINT_OR_PWD = 24, // 信息或密码开锁
  71786. EM_AC_UNLOCK_MODE_FINGERPRINT_OR_FACE = 25, // 信息或目标开锁
  71787. EM_AC_UNLOCK_MODE_CARD_OR_FACE = 26, // 刷卡或目标开锁
  71788. EM_AC_UNLOCK_MODE_CARD_OR_FINGERPRINT = 27, // 刷卡或信息开锁
  71789. EM_AC_UNLOCK_MODE_FINGERPRINT_AND_FACE_AND_PWD = 28, // 信息+目标+密码开锁
  71790. EM_AC_UNLOCK_MODE_CARD_AND_FACE_AND_PWD = 29, // 刷卡+目标+密码开锁
  71791. EM_AC_UNLOCK_MODE_CARD_AND_FINGERPRINT_AND_PWD = 30, // 刷卡+信息+密码开锁
  71792. EM_AC_UNLOCK_MODE_CARD_AND_FINGERPRINT_AND_FACE = 31, // 卡+信息+目标组合开锁
  71793. EM_AC_UNLOCK_MODE_FINGERPRINT_OR_FACE_OR_PWD = 32, // 信息或目标或密码
  71794. EM_AC_UNLOCK_MODE_CARD_OR_FACE_OR_PWD = 33, // 卡或目标或密码开锁
  71795. EM_AC_UNLOCK_MODE_CARD_OR_FINGERPRINT_OR_FACE = 34, // 卡或信息或目标开锁
  71796. EM_AC_UNLOCK_MODE_CARD_AND_FINGERPRINT_AND_FACE_AND_PWD = 35, // 卡+信息+目标+密码组合开锁
  71797. EM_AC_UNLOCK_MODE_CARD_OR_FINGERPRINT_OR_FACE_OR_PWD = 36, // 卡或信息或目标或密码开锁
  71798. EM_AC_UNLOCK_MODE_FACEIPCARDANDIDCARD_OR_CARD_OR_FACE = 37, // (证件+人证比对)或 刷卡 或 目标
  71799. EM_AC_UNLOCK_MODE_FACEIDCARD_OR_CARD_OR_FACE = 38, // 人证比对 或 刷卡(二维码) 或 目标
  71800. EM_AC_UNLOCK_MODE_CARDANDPWD_OR_FINGERPRINTANDPWD = 39, // (卡+密码)或(信息+密码)默认为2
  71801. EM_AC_UNLOCK_MODE_PHOTO_OR_FACE = 40, // 人证(照片)或目标
  71802. EM_AC_UNLOCK_MODE_FINGERPRINT = 41, // 人证(信息)
  71803. EM_AC_UNLOCK_MODE_PHOTO_AND_FINGERPRINT = 42, // 人证(照片+信息)
  71804. EM_AC_UNLOCK_MODE_FACEIDCARD_OR_CARD_OR_FINGERPRINT_OR_FACE_OR_PASSWORD = 43, // 人证或刷卡或信息或目标或密码
  71805. EM_AC_UNLOCK_MODE_MULTI_USER_TYPE = 44, // 多用户类型
  71806. EM_AC_UNLOCK_MODE_FACEIDCARD_OR_HEALTHCODE = 45, // 人证或健康码
  71807. }EM_AC_UNLOCK_MODE;
  71808. ///@brief 支持安全帽功能
  71809. typedef enum tagEM_SUPPORT_HELMET_TYPE
  71810. {
  71811. EM_SUPPORT_HELMET_TYPE_UNKNOWN = -1, // 未知
  71812. EM_SUPPORT_HELMET_TYPE_NO_SUPPORT, // 不支持
  71813. EM_SUPPORT_HELMET_TYPE_SUPPORT, // 支持
  71814. }EM_SUPPORT_HELMET_TYPE;
  71815. ///@brief AC服务能力集
  71816. typedef struct tagNET_AC_CAPS
  71817. {
  71818. int nChannels; // 支持的门禁通道数量
  71819. BOOL bSupAccessControlAlarmRecord; // 是否支持门禁报警日志记录在记录集中
  71820. int nCustomPasswordEncryption; // AccessControlCustomPassword记录集中密码的保存方式,0:明文,默认值0, 1:MD5
  71821. int nSupportFingerPrint; // 是否支持信息功能,0:未知,默认,1:不支持, 2:支持
  71822. BOOL bHasCardAuth; // 是否支持卡片鉴权
  71823. BOOL bHasFaceAuth; // 是否支持目标识别鉴权
  71824. BOOL bOnlySingleDoorAuth; // 是否只支持单门授权(发卡)
  71825. BOOL bAsynAuth; // 是否支持授权异步返回
  71826. BOOL bUserlsoLate; // 是否支持人卡分离方案
  71827. int nMaxInsertRate; // 机器数据下发插入最大数量
  71828. NET_SPECIAL_DAYS_SCHEDULE_CAPS stuSpecialDaysSchedule; // 假日计划能力
  71829. int nUnlockModes; // 设备支持的开锁模式组合数量
  71830. EM_AC_UNLOCK_MODE emUnlockModes[128]; // 设备支持的开锁模式组合
  71831. EM_SUPPORT_HELMET_TYPE emSupportHelmetType; // 支持安全帽功能
  71832. UINT nUserNameMaxLen; // 支持人名长度限制
  71833. BOOL bSupportASGManager; // 支持闸机业务组件(以前闸机是挂在门禁设备作为子设备存在,闸机相关配置写在门禁里面。现在将闸机业务从门禁业务划分出来。)
  71834. BOOL bHasIrisAuth; // 是否支持眼睛识别鉴权
  71835. BOOL bSupportDoorMultiSection; // 是否支持用户单个门绑定多个假日计划
  71836. BYTE byReserved[236]; // 保留字节
  71837. }NET_AC_CAPS;
  71838. ///@brief user操作能力集
  71839. typedef struct tagNET_ACCESS_USER_CAPS
  71840. {
  71841. int nMaxInsertRate; // 每次下发的最大数量
  71842. int nMaxUsers; // 用户数量上限
  71843. int nMaxFingerPrintsPerUser; // 每个用户可以记录的最大信息数量
  71844. int nMaxCardsPerUser; // 每个用户可以记录的最大卡片数量
  71845. BYTE byReserved[512]; // 保留字节
  71846. }NET_ACCESS_USER_CAPS;
  71847. ///@brief card操作能力集
  71848. typedef struct tagNET_ACCESS_CARD_CAPS
  71849. {
  71850. int nMaxInsertRate; // 每次下发的最大数量
  71851. int nMaxCards; // 卡片数量上限
  71852. BYTE byReserved[512]; // 保留字节
  71853. }NET_ACCESS_CARD_CAPS;
  71854. ///@brief fingerprint操作能力集
  71855. typedef struct tagNET_ACCESS_FINGERPRINT_CAPS
  71856. {
  71857. int nMaxInsertRate; // 每次下发的最大数量
  71858. int nMaxFingerprintSize; // 单信息数据的最大字节数
  71859. int nMaxFingerprint; // 信息数量上限
  71860. BYTE byReserved[512]; // 保留字节
  71861. }NET_ACCESS_FINGERPRINT_CAPS;
  71862. ///@brief face操作能力集
  71863. typedef struct tagNET_ACCESS_FACE_CAPS
  71864. {
  71865. int nMaxInsertRate; // 每次下发的最大数量
  71866. int nMaxFace; // 目标存储上限
  71867. int nRecognitionType; // 目标识别类型,0:白光 1:红外
  71868. int nRecognitionAlgorithm; // 目标识别算法,0:未知1:大华2:商汤3:依图4:汉王5:火眼
  71869. DWORD dwRecognitionVersion; // 目标识别算法(模型)版本号,0x00010502 为1.5.2
  71870. int nMinPhotoSize; // 白光目标照片的最小尺寸 ,单位 KB
  71871. int nMaxPhotoSize; // 白光目标照片的最大尺寸 ,单位 KB
  71872. int nMaxGetPhotoNumber; // 批量获取白光目标的最大数量
  71873. BOOL bIsSupportGetPhoto; // 是否支持获取白光照片
  71874. BOOL bIsSupportOnlyIssueFaceEigen; // 是否支持只下发目标特征值, 该字段已废弃
  71875. BOOL bIsSupportOnlyImportFaceEigen; // 是否支持只下发目标特征值
  71876. BYTE byReserved[496]; // 保留字节
  71877. }NET_ACCESS_FACE_CAPS;
  71878. ///@brief lris操作能力集
  71879. typedef struct tagNET_ACCESS_IRIS_CAPS
  71880. {
  71881. UINT nMaxInsertRate; // 每次最大插入量
  71882. UINT nMinIrisPhotoSize; // 眼睛信息图片最小尺寸,单位KB
  71883. UINT nMaxIrisPhotoSize; // 眼睛信息图片最大尺寸,单位KB
  71884. UINT nMaxIrisGroup; // 每个用户最多支持多少组
  71885. UINT nRecognitionAlgorithmVender; // 眼睛识别算法提供标识,0未知,1大华
  71886. UINT nRecognitionVersion; // 算法(模型)版本号,如果版本号有多位,按Major/Minor从高到低每8bit表示一个版本 如1.5.2表示成0x00010502
  71887. UINT nMaxIrisesCount; // 眼睛信息存储上限
  71888. BYTE byReserved[500]; // 保留字节
  71889. }NET_ACCESS_IRIS_CAPS;
  71890. ///@brief 反潜回能力集
  71891. typedef struct tagNET_ANTI_SUBMARINE_CAPS
  71892. {
  71893. UINT nTypes; // 支持反潜回能力掩码,支持位或 bit0-本地反潜;bit1-网络反潜主控;bit2-网络反潜分控
  71894. UINT nMaxRouteRule; // 最大反潜规则组(路线)数量, nTypes bit1=1时有效
  71895. UINT nOneRouteMaxNode; // 每个反潜路线最大多少个节点, nTypes bit1=1时有效
  71896. UINT nOneNodeMaxReaderID; // 每个节点最多包含的读头数量, nTypes bit1=1时有效
  71897. BYTE byReserved[512]; // 保留字节
  71898. }NET_ANTI_SUBMARINE_CAPS;
  71899. ///@brief 门禁互锁相关能力
  71900. typedef struct tagNET_INTER_LOCK_CAPS
  71901. {
  71902. UINT nTypes; // 支持互锁回能力掩码,支持位或 bit0-本地反潜;bit1-网络反潜主控;bit2-网络反潜分控
  71903. UINT nMaxRule; // 最大规则组数量, nTypes bit1=1时有效
  71904. UINT nWithinMaxDoors; // 组内每个组最大支持多少个门, nTypes bit1=1时有效
  71905. UINT nBetweenMaxDoors; // 组间每个组最大支持多少个门, nTypes bit1=1时有效
  71906. BYTE byReserved[512]; // 保留字节
  71907. }NET_INTER_LOCK_CAPS;
  71908. ///@brief 门禁AC服务协议与设备能力获取出参
  71909. typedef struct tagNET_OUT_AC_CAPS
  71910. {
  71911. DWORD dwSize; // 结构体大小
  71912. NET_AC_CAPS stuACCaps; // ACCaps能力集
  71913. NET_ACCESS_USER_CAPS stuUserCaps; // user操作能力集
  71914. NET_ACCESS_CARD_CAPS stuCardCaps; // card操作能力集
  71915. NET_ACCESS_FINGERPRINT_CAPS stuFingerprintCaps; // 信息操作能力集
  71916. NET_ACCESS_FACE_CAPS stuFaceCaps; // 目标操作能力集
  71917. NET_ACCESS_IRIS_CAPS stuIrisCaps; // 眼睛相关能力集
  71918. NET_ANTI_SUBMARINE_CAPS stuAntisubmarineCaps; // 反潜回能力集
  71919. NET_INTER_LOCK_CAPS stuInterLockCaps; // 门禁互锁相关能力
  71920. }NET_OUT_AC_CAPS;
  71921. ///@brief 获取补光灯能力入参(对应:NET_LIGHTINGCONTROL_CAPS)
  71922. typedef struct tagNET_IN_LIGHTINGCONTROL_CAPS
  71923. {
  71924. DWORD dwSize; //结构体大小
  71925. int nChannel; // 通道号
  71926. }NET_IN_LIGHTINGCONTROL_CAPS;
  71927. ///@brief 支持灯光配置的版本
  71928. typedef enum tagEM_LC_CONFIG_VERSION
  71929. {
  71930. EM_LC_CONFIG_VERSION_UNKNOWN, //未知
  71931. EM_LC_CONFIG_VERSION_LIGHTING, //使用Lighting配置,默认
  71932. EM_LC_CONFIG_VERSION_LIGHTING_V2, //使用Lighting_V2配置
  71933. }EM_LC_CONFIG_VERSION;
  71934. ///@brief 灯光类型
  71935. typedef enum tagEM_LC_LIGHT_TYPE
  71936. {
  71937. EM_LC_LIGHT_TYPE_UNKNOWN, //未知
  71938. EM_LC_LIGHT_TYPE_INFRAREDLIGHT, //红外灯
  71939. EM_LC_LIGHT_TYPE_WIHTELIGHT, //白光灯
  71940. EM_LC_LIGHT_TYPE_LASERLIGHT, //激光灯
  71941. EM_LC_LIGHT_TYPE_AIMIXLIGHT, //智能混光灯(根据智能ID切换红外和白光灯)
  71942. EM_LC_LIGHT_TYPE_PILOTLIGHT, //指示灯
  71943. }EM_LC_LIGHT_TYPE;
  71944. ///@brief 支持的模式
  71945. typedef enum tagEM_LC_MODE
  71946. {
  71947. EM_LC_MODE_UNKNOWN, //未知
  71948. EM_LC_MODE_MANUAL, //手动
  71949. EM_LC_MODE_ZOOMPRIO, //倍率优先
  71950. EM_LC_MODE_TIMING, //定时
  71951. EM_LC_MODE_AUTO, //自动
  71952. EM_LC_MODE_OFF, //关闭灯光
  71953. EM_LC_MODE_EXCLUSIVEMANUAL, //支持多种灯光
  71954. EM_LC_MODE_SMARTLIGHT, //智能灯光
  71955. EM_LC_MODE_LINKING, //事件联动
  71956. EM_LC_MODE_DUSKTODAWN //光敏
  71957. }EM_LC_MODE;
  71958. #define SUPPORTED_LC_COMPLEX_MODES 3 // 灯光支持的模式数量
  71959. #define SUPPORTED_AIMIX_LIGHT 8 // 智能混光灯支持的模式
  71960. ///@brief 灯光支持的模式信息
  71961. typedef struct tagNET_MODES_COMPLEX_LIGHT
  71962. {
  71963. EM_LC_MODE anInfraredLight[SUPPORTED_LC_COMPLEX_MODES]; //红外灯支持的模式
  71964. int nInfraredLightLen; //红外灯支持的模式数量
  71965. EM_LC_MODE anWhiteLight[SUPPORTED_LC_COMPLEX_MODES]; //白光灯支持的模式
  71966. int nWhiteLightLen; //白光灯支持的模式数量
  71967. EM_LC_MODE anLaserLight[SUPPORTED_LC_COMPLEX_MODES]; //激光灯支持的模式
  71968. int nLaserLightLen; //激光灯支持的模式数量
  71969. EM_LC_MODE emAIMixLight[SUPPORTED_AIMIX_LIGHT]; //智能混光灯支持的模式
  71970. int nAIMixLight; //智能混光灯支持的模式数量
  71971. BYTE byReserved[92]; //保留字节
  71972. }NET_MODES_COMPLEX_LIGHT;
  71973. #define LC_LIGHT_COUNT 4 //灯光组灯光数量
  71974. ///@brief 灯光组信息
  71975. typedef struct tagNET_LIGHT_TYPE_COMPLEX_DETAIL
  71976. {
  71977. EM_LC_LIGHT_TYPE anNearLight[LC_LIGHT_COUNT]; //近光灯组灯类型
  71978. int nNearLightLen; //近光灯组灯数量
  71979. EM_LC_LIGHT_TYPE anMiddleLight[LC_LIGHT_COUNT]; //中光灯组灯类型
  71980. int nMiddleLightLen; //中光灯组灯数量
  71981. EM_LC_LIGHT_TYPE anFarLight[LC_LIGHT_COUNT]; //远光灯组灯类型
  71982. int nFarLightLen; //远光灯组灯数量
  71983. BYTE byReserved[128]; // 保留字节
  71984. }NET_LIGHT_TYPE_COMPLEX_DETAIL;
  71985. ///@brief 支持灯光联动的非智能事件
  71986. typedef enum tagEM_LC_SUPPORT_EVENTS
  71987. {
  71988. EM_LC_SUPPORT_EVENTS_UNKNOWN, //未知
  71989. EM_LC_SUPPORT_EVENTS_MOTIONDETECT, //动态检测
  71990. EM_LC_SUPPORT_EVENTS_MASK, //遮挡
  71991. EM_LC_SUPPORT_EVENTS_ALARM, //报警
  71992. EM_LC_SUPPORT_EVENTS_ALL, //所有事件
  71993. }EM_LC_SUPPORT_EVENTS;
  71994. #define MAX_SUPPORT_EVENT_NUM 10 //非智能事件数量
  71995. #define MAX_SUPPORT_INTELLISCENE_NUM 40 //智能事件数量
  71996. ///@brief 支持灯光联动的能力集
  71997. typedef struct tagNET_LINKING_ABILITY
  71998. {
  71999. EM_LC_SUPPORT_EVENTS anSupportEvents[MAX_SUPPORT_EVENT_NUM]; //支持的非智能事件
  72000. int nSupportEventsLen; //支持的非智能事件数量
  72001. EM_SCENE_CLASS_TYPE anSupportIntelliScence[MAX_SUPPORT_INTELLISCENE_NUM]; //支持的智能规则
  72002. int nSupportIntelliScenceLen; //支持的智能规则数量
  72003. BYTE byReserved[128]; // 保留字节
  72004. }NET_LINKING_ABILITY;
  72005. #define LC_LIGHT_TYPE_NUM 3 //灯光类型数量
  72006. ///@brief 灯光闪烁相关信息
  72007. typedef struct tagNET_FILCKER_LIGHTING
  72008. {
  72009. BOOL bSupported; //是否支持灯光闪烁
  72010. NET_LINKING_ABILITY stuAbility; //支持灯光联动能力集
  72011. EM_LC_LIGHT_TYPE anLightType[LC_LIGHT_TYPE_NUM]; //闪烁灯光类型
  72012. int nLightTypeLen; //闪烁灯光数量
  72013. int anFilckerIntevalTime[2]; //闪烁间隔时间范围
  72014. int anFilckerTimes[2]; //闪烁可配置次数
  72015. BYTE byReserved[128]; //保留字节
  72016. }NET_FILCKER_LIGHTING;
  72017. ///@brief 灯光常亮信息
  72018. typedef struct tagNET_KEEP_LIGHTING
  72019. {
  72020. BOOL bSupported; //是否支持灯光常亮
  72021. NET_LINKING_ABILITY stuAbility; //支持灯光联动能力集
  72022. EM_LC_LIGHT_TYPE anLightType[LC_LIGHT_TYPE_NUM]; //常亮灯光类型
  72023. int nLightTypeLen; //常亮灯光数量
  72024. BYTE byReserved[128]; // 保留字节
  72025. }NET_KEEP_LIGHTING;
  72026. ///@brief 云台联动灯光类型
  72027. typedef struct tagNET_LINKING_DETAIL
  72028. {
  72029. NET_FILCKER_LIGHTING stuFilckerLighting; //闪烁灯光信息
  72030. NET_KEEP_LIGHTING stuKeepLighting; //常亮灯光信息
  72031. BYTE byReserved[128]; // 保留字节
  72032. }NET_LINKING_DETAIL;
  72033. ///@brief 灯光补偿信息
  72034. typedef struct tagNET_CORRECTION
  72035. {
  72036. BOOL bSupported; //是否支持灯光补偿
  72037. int nRange; //补偿范围最大值
  72038. BYTE byReserved[128]; // 保留字节
  72039. }NET_CORRECTION;
  72040. ///@brief 灯光灵敏度信息
  72041. typedef struct tagNET_SENSITIVITY
  72042. {
  72043. BOOL bSupported; //是否支持灯光灵敏度
  72044. int nRange; //灯光灵敏度最大值
  72045. BYTE byReserved[128]; // 保留字节
  72046. }NET_SENSITIVITY;
  72047. #define LC_POWER_NUM 3 //功率数量
  72048. #define LC_ANGLECONTROL_NUM 3 //激光角度数量
  72049. #define LC_LIGHT_MODE_NUM 20 //模式数量
  72050. ///@brief 获取补光灯能力出参(对应:NET_LIGHTINGCONTROL_CAPS)
  72051. typedef struct tagNET_OUT_LIGHTINGCONTROL_CAPS
  72052. {
  72053. DWORD dwSize; //结构体大小
  72054. BOOL bSupport; //是否支持灯光控制
  72055. EM_LC_CONFIG_VERSION emConfigVersion; //支持的灯光配置版本
  72056. EM_LC_LIGHT_TYPE emLightType; //灯光类型
  72057. EM_LC_LIGHT_TYPE anLightTypeComplex[LC_LIGHT_TYPE_NUM]; //复合灯光类型
  72058. int nLightTypeComplexLen; //复合灯光类型数量
  72059. int nNearLightNumber; //近光灯组数量
  72060. int nMiddleLightNumber; //中光灯组数量
  72061. int nFarLightNumber; //远光灯组数量
  72062. EM_LC_MODE emDefaultMode; //默认支持的模式
  72063. EM_LC_MODE anModes[LC_LIGHT_MODE_NUM]; //支持的模式类型
  72064. int nModesLen; //支持的模式数量
  72065. NET_MODES_COMPLEX_LIGHT stuModesComplex; //复合灯模式信息
  72066. NET_LIGHT_TYPE_COMPLEX_DETAIL stuLightTypeComplexDetail; //灯光组信息
  72067. NET_LINKING_DETAIL stuLinkingDetail; //云台联动灯光信息
  72068. int anPower[LC_POWER_NUM]; //灯光组功率控制掩码
  72069. int anAngleControl[LC_ANGLECONTROL_NUM]; //灯光组激光角度控制掩码
  72070. NET_CORRECTION stuCorrection; //灯光补偿信息
  72071. NET_SENSITIVITY stuSensitivity; //灯光灵敏度信息
  72072. BOOL bSupportLaserLightMove; //是否支持激光灯光轴调节
  72073. int nLightingTimeSectionNum; //定时模式支持的时间段数量
  72074. BOOL bSupportByTime; //是否支持分时配置
  72075. BOOL bSupportModesComplex; //是否支持复合灯模式信息
  72076. }NET_OUT_LIGHTINGCONTROL_CAPS;
  72077. ///@brief CLIENT_GetDevCaps接口 NET_COAXIAL_CONTROL_IO_STATUS 命令入参
  72078. typedef struct tagNET_IN_GET_COAXIAL_CONTROL_IO_STATUS
  72079. {
  72080. DWORD dwSize; // 结构体大小
  72081. UINT nChannel; // 通道号
  72082. } NET_IN_GET_COAXIAL_CONTROL_IO_STATUS;
  72083. ///@brief 同轴IO操作类型状态
  72084. typedef enum tagEM_COAXIAL_CONTROL_IO_STATUS
  72085. {
  72086. EM_COAXIAL_CONTROL_IO_STATUS_UNKNOWN, // 未知
  72087. EM_COAXIAL_CONTROL_IO_STATUS_ON, // 开
  72088. EM_COAXIAL_CONTROL_IO_STATUS_OFF, // 关闭
  72089. } EM_COAXIAL_CONTROL_IO_STATUS;
  72090. ///@brief CLIENT_GetDevCaps接口 NET_COAXIAL_CONTROL_IO_STATUS 命令出参
  72091. typedef struct tagNET_OUT_GET_COAXIAL_CONTROL_IO_STATUS
  72092. {
  72093. DWORD dwSize; // 结构体大小
  72094. EM_COAXIAL_CONTROL_IO_STATUS emWhiteLight; // 白光灯操作类型
  72095. EM_COAXIAL_CONTROL_IO_STATUS emSpeaker; // 喇叭操作类型
  72096. } NET_OUT_GET_COAXIAL_CONTROL_IO_STATUS;
  72097. ///@brief CLIENT_GetDevCaps接口 NET_SUPPORT_GET_AUDIO_DECODE_CAPS 命令入参
  72098. typedef struct tagNET_IN_SUPPORT_GET_AUDIO_DECODE_CAPS
  72099. {
  72100. DWORD dwSize; // 结构体大小,赋值为 sizeof(NET_IN_SUPPORT_GET_AUDIO_DECODE_CAPS)
  72101. }NET_IN_SUPPORT_GET_AUDIO_DECODE_CAPS;
  72102. ///@brief CLIENT_GetDevCaps接口 NET_SUPPORT_GET_AUDIO_DECODE_CAPS 命令出参
  72103. typedef struct tagNET_OUT_SUPPORT_GET_AUDIO_DECODE_CAPS
  72104. {
  72105. DWORD dwSize; // 结构体大小,赋值为 sizeof(NET_OUT_SUPPORT_GET_AUDIO_DECODE_CAPS)
  72106. BOOL bSupport; // 是否支持获取音频解码能力:TRUE表示支持,否则不支持
  72107. }NET_OUT_SUPPORT_GET_AUDIO_DECODE_CAPS;
  72108. ///@brief CLIENT_GetDevCaps接口 NET_UNIFIEDINFOCOLLECT_CAPS 命令入参
  72109. typedef struct tagNET_IN_UNIFIEDINFOCOLLECT_CAPS
  72110. {
  72111. DWORD dwSize; // 结构体大小
  72112. }NET_IN_UNIFIEDINFOCOLLECT_CAPS;
  72113. ///@brief CLIENT_GetDevCaps接口 NET_UNIFIEDINFOCOLLECT_CAPS命令出参
  72114. typedef struct tagNET_OUT_UNIFIEDINFOCOLLECT_CAPS
  72115. {
  72116. DWORD dwSize; // 结构体大小
  72117. BOOL bSupportUnifiedInfoCollect; // 是否支持DMSS专有协议
  72118. }NET_OUT_UNIFIEDINFOCOLLECT_CAPS;
  72119. ///@brief CLIENT_GetDevCaps 接口 NET_EXALARMBOX_CAPS 命令入参
  72120. typedef struct tagNET_IN_EXALARMBOX_CAPS
  72121. {
  72122. DWORD dwSize; // 结构体大小
  72123. int nChannel; // 通道
  72124. }NET_IN_EXALARMBOX_CAPS;
  72125. ///@brief CLIENT_GetDevCaps 接口 NET_EXALARMBOX_CAPS 命令出参
  72126. typedef struct tagNET_OUT_EXALARMBOX_CAPS
  72127. {
  72128. DWORD dwSize; // 结构体大小
  72129. int nAlarmIn; // 支持的报警输入路数
  72130. int nAlarmOut; // 支持的报警输出路数
  72131. int nRemoteControl; // 支持的遥控器路数
  72132. }NET_OUT_EXALARMBOX_CAPS;
  72133. ///@brief CLIENT_GetDevCaps 接口 NET_ALARMBOXMANAGER_CAPS 命令入参
  72134. typedef struct tagNET_IN_ALARMBOXMANAGER_CAPS
  72135. {
  72136. DWORD dwSize; // 结构体大小
  72137. }NET_IN_ALARMBOXMANAGER_CAPS;
  72138. ///@brief CLIENT_GetDevCaps 接口 NET_ALARMBOXMANAGER_CAPS 命令出参
  72139. typedef struct tagNET_OUT_ALARMBOXMANAGER_CAPS
  72140. {
  72141. DWORD dwSize; // 结构体大小
  72142. int nMaxBoxNumber; // 最大支持几个盒子
  72143. int nMaxInputPerBox; // 每个盒子支持最大报警输入个数
  72144. int nMaxOutputPerBox; // 每个盒子支持最大报警输出个数
  72145. }NET_OUT_ALARMBOXMANAGER_CAPS;
  72146. ///@brief CLIENT_GetDevCaps接口 NET_GET_AUDIO_DETECT_CAPS命令入参
  72147. typedef struct tagNET_IN_GET_AUDIO_DETECT_CAPS
  72148. {
  72149. DWORD dwSize; // 结构体大小
  72150. int nChannel; // 通道号
  72151. }NET_IN_GET_AUDIO_DETECT_CAPS;
  72152. ///@brief CLIENT_GetDevCaps接口 NET_GET_AUDIO_DETECT_CAPS命令出参
  72153. typedef struct tagNET_OUT_GET_AUDIO_DETECT_CAPS
  72154. {
  72155. DWORD dwSize; // 结构体大小
  72156. BOOL bVolumeDetect; // 是否支持音量检测
  72157. BOOL bAnomalyDetect; // 是否支持声音异常检测
  72158. unsigned int nAnomalySensitiveRange[2]; // 声音异常检测灵敏度范围数组,第一个元素为最小值,第二个元素为最大值
  72159. BOOL bMutationDetect; // 是否支持声强突变检测
  72160. unsigned int nMutationThresholdRange[2]; // 声强突变检测门限范围数组,第一个元素为最小值,第二个元素为最大值
  72161. BOOL bInfantCryDetect; // 是否支持婴儿啼哭检测
  72162. BOOL bIntensityDetect; // 是否支持音频强度检测
  72163. unsigned int nIntensityDecibelGateRange[2]; // 音频强度检测分贝阈值数组, 单位分贝;第一个元素为最小值,第二个元素为最大值
  72164. BOOL bSupportSmartSoundDetect; // 是否支持声音检测
  72165. int nAudioTypeValidNum; // 有效声音枚举数量
  72166. EM_AUDIO_MUTATION_ALARM_TYPE emAudioType[32]; // 声音类型
  72167. int nConflictInteliEffectiveNum; // 互斥项数组有效数量
  72168. char szConflictInteli[32][32]; // 功能互斥项
  72169. }NET_OUT_GET_AUDIO_DETECT_CAPS;
  72170. ///@brief CLIENT_GetDevCaps接口 NET_VIDEO_IN_DEFOG_CAPS命令入参
  72171. typedef struct tagNET_IN_VIDEO_IN_DEFOG_CAPS
  72172. {
  72173. DWORD dwSize; // 结构体大小
  72174. int nChannel; // 通道号
  72175. }NET_IN_VIDEO_IN_DEFOG_CAPS;
  72176. ///@brief 大气光模式能力
  72177. typedef struct tagNET_LIGHT_INTENSITY_CAPS
  72178. {
  72179. BOOL bSupportLightMode; // 是否支持大气光模式能力
  72180. BYTE byReserved[68]; // 保留字节
  72181. }NET_LIGHT_INTENSITY_CAPS;
  72182. ///@brief 透雾模式
  72183. typedef enum tagEM_IN_DEFOG_MODE
  72184. {
  72185. EM_IN_DEFOG_MODE_UNKNOWN, // 未知
  72186. EM_IN_DEFOG_MODE_OFF, // 关闭
  72187. EM_IN_DEFOG_MODE_MANUAL, // 手动
  72188. EM_IN_DEFOG_MODE_AUTO, // 自动
  72189. } EM_IN_DEFOG_MODE;
  72190. ///@brief CLIENT_GetDevCaps接口 NET_VIDEO_IN_DEFOG_CAPS命令处参
  72191. typedef struct tagNET_OUT_VIDEO_IN_DEFOG_CAPS
  72192. {
  72193. DWORD dwSize; // 结构体大小
  72194. BOOL bSupportInDefog; // 是否支持透雾设置能力
  72195. BOOL bSupportCamDefog; // 是否支持光学物理透雾
  72196. UINT nModeCount; // 透雾模式的个数
  72197. EM_IN_DEFOG_MODE emMode[8]; // 透雾模式
  72198. NET_LIGHT_INTENSITY_CAPS stuLightIntensity; // 大气光模式能力
  72199. }NET_OUT_VIDEO_IN_DEFOG_CAPS;
  72200. ///@brief CLIENT_GetDevCaps接口 NET_SUPPORT_FACE_LIB_DOWNLOAD命令入参
  72201. typedef struct tagNET_IN_SUPPORT_FACEDB_DOWNLOAD_CAPS
  72202. {
  72203. DWORD dwSize; // 结构体大小
  72204. } NET_IN_SUPPORT_FACEDB_DOWNLOAD_CAPS;
  72205. ///@brief CLIENT_GetDevCaps接口 NET_SUPPORT_FACE_LIB_DOWNLOAD命令出参
  72206. typedef struct tagNET_OUT_SUPPORT_FACEDB_DOWNLOAD_CAPS
  72207. {
  72208. DWORD dwSize; // 结构体大小
  72209. BOOL bSupportFaceDbDownload; // 是否支持远程目标库下载
  72210. } NET_OUT_SUPPORT_FACEDB_DOWNLOAD_CAPS;
  72211. ///@brief CLIENT_GetDevCaps 接口 NET_DIAGNOSIS_CAPS 命令入参
  72212. typedef struct tagNET_IN_DIAGNOSIS_CAPS
  72213. {
  72214. DWORD dwSize; // 结构体大小
  72215. }NET_IN_DIAGNOSIS_CAPS;
  72216. ///@brief CLIENT_GetDevCaps 接口 NET_DIAGNOSIS_CAPS 命令出参
  72217. typedef struct tagNET_OUT_DIAGNOSIS_CAPS
  72218. {
  72219. DWORD dwSize; // 结构体大小
  72220. BOOL bSupportReport; // 是否支持故障码主动上报
  72221. BOOL bSupportDelInfo; // 是否支持删除指定故障码
  72222. BOOL bSupportDelAllInfo; // 是否支持删除所有故障码
  72223. }NET_OUT_DIAGNOSIS_CAPS;
  72224. ///@brief 智能锁能力集
  72225. typedef struct tagNET_SMARTLOCKER_CAPS
  72226. {
  72227. UINT nMaxFpAmount; // 最大支持的信息数量
  72228. UINT nMaxPwdAmount; // 最大支持的密码数量
  72229. UINT nMaxCardAmount; // 最大支持的卡号数量
  72230. BYTE byReserved[132]; // 预留字段
  72231. }NET_SMARTLOCKER_CAPS;
  72232. ///@brief LowRateWPAN 类型
  72233. typedef enum tagEM_LOWRATEWPAN_CAPS_TYPE
  72234. {
  72235. EM_LOWRATEWPAN_CAPS_TYPE_UNKNOWN = -1, // 未知
  72236. EM_LOWRATEWPAN_CAPS_TYPE_SMARTLOCKER, // 智能锁
  72237. }EM_LOWRATEWPAN_CAPS_TYPE;
  72238. ///@brief CLIENT_GetDevCaps 接口 NET_LOWRATEWPAN_CAPS 命令入参
  72239. typedef struct tagNET_IN_LOWRATEWPAN_CAPS
  72240. {
  72241. DWORD dwSize; // 结构体大小
  72242. int nChannelID; // 通道号(当前未用到)
  72243. EM_LOWRATEWPAN_CAPS_TYPE emType; // 类型
  72244. char szModuleSNList[16][32]; // 模块列表
  72245. }NET_IN_LOWRATEWPAN_CAPS;
  72246. ///@brief CLIENT_GetDevCaps接口 NET_LOWRATEWPAN_CAPS 命令出参
  72247. typedef struct tagNET_OUT_LOWRATEWPAN_CAPS
  72248. {
  72249. DWORD dwSize; // 结构体大小
  72250. NET_SMARTLOCKER_CAPS stuSmartLockerCaps[16]; // 智能锁能力集
  72251. UINT nSmartLockerCapsRet; // 返回的 stuSmartLockerCaps 个数
  72252. }NET_OUT_LOWRATEWPAN_CAPS;
  72253. ///@brief CLIENT_StopAdjustingAngle 入参
  72254. typedef struct tagNET_IN_STOP_ADJUSTING_ANGLE
  72255. {
  72256. DWORD dwSize; // 结构体大小
  72257. int nChannel; // 通道号
  72258. }NET_IN_STOP_ADJUSTING_ANGLE;
  72259. ///@brief CLIENT_StopAdjustingAngle 出参
  72260. typedef struct tagNET_OUT_STOP_ADJUSTING_ANGLE
  72261. {
  72262. DWORD dwSize; // 结构体大小
  72263. }NET_OUT_STOP_ADJUSTING_ANGLE;
  72264. ///@brief 镜头停止调整角度
  72265. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopAdjustingAngle(LLONG lLoginID, const NET_IN_STOP_ADJUSTING_ANGLE *pstInParam, NET_OUT_STOP_ADJUSTING_ANGLE *pstOutParam, int nWaitTime);
  72266. ///@brief 运动方向
  72267. typedef enum tagEM_ADJUST_ANGLE_DIRECTION
  72268. {
  72269. EM_ADJUST_ANGLE_DIRECTION_UNKNOWN, // 未知
  72270. EM_ADJUST_ANGLE_DIRECTION_NEGATIVE_X, // 负X轴方向
  72271. EM_ADJUST_ANGLE_DIRECTION_POSITIVE_X, // 正X轴方向
  72272. EM_ADJUST_ANGLE_DIRECTION_NEGATIVE_Y, // 负Y轴方向
  72273. EM_ADJUST_ANGLE_DIRECTION_POSITIVE_Y, // 正Y轴方向
  72274. } EM_ADJUST_ANGLE_DIRECTION;
  72275. ///@brief CLIENT_AdjustingAngleContinuously 入参
  72276. typedef struct tagNET_IN_ADJUST_ANGLE_CONTINUOUSLY
  72277. {
  72278. DWORD dwSize; // 结构体大小
  72279. int nChannel; // 通道号
  72280. EM_ADJUST_ANGLE_DIRECTION emDirection; // 运动方向
  72281. UINT nVelocity; // 速度
  72282. }NET_IN_ADJUST_ANGLE_CONTINUOUSLY;
  72283. ///@brief CLIENT_AdjustingAngleContinuously 出参
  72284. typedef struct tagNET_OUT_ADJUST_ANGLE_CONTINUOUSLY
  72285. {
  72286. DWORD dwSize; // 结构体大小
  72287. }NET_OUT_ADJUST_ANGLE_CONTINUOUSLY;
  72288. ///@brief 镜头连续方式调整位置
  72289. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AdjustingAngleContinuously(LLONG lLoginID, const NET_IN_ADJUST_ANGLE_CONTINUOUSLY *pstInParam, NET_OUT_ADJUST_ANGLE_CONTINUOUSLY *pstOutParam, int nWaitTime);
  72290. ///@brief CLIENT_GetDevCaps接口 NET_GET_LENS_FUNC_CAPS 命令入参
  72291. typedef struct tagNET_IN_GET_LENS_FUNC_CAPS
  72292. {
  72293. DWORD dwSize; // 结构体大小
  72294. int nChannel; // 通道号
  72295. }NET_IN_GET_LENS_FUNC_CAPS;
  72296. ///@brief 是否支持角度调整
  72297. typedef enum tagEM_SUPPORT_ANGLE_ADJUST
  72298. {
  72299. EM_SUPPORT_ANGLE_ADJUST_UNKNOWN, // 未知
  72300. EM_SUPPORT_ANGLE_ADJUST_NO, // 不支持
  72301. EM_SUPPORT_ANGLE_ADJUST_X, // 只支持水平方向
  72302. EM_SUPPORT_ANGLE_ADJUST_Y, // 只支持竖直方向
  72303. EM_SUPPORT_ANGLE_ADJUST_XY, // 同时支持水平及竖直方向
  72304. } EM_SUPPORT_ANGLE_ADJUST;
  72305. ///@brief 镜头旋转模式
  72306. typedef enum tagEM_SUPPORT_SCENE_MODE
  72307. {
  72308. EM_SUPPORT_SCENE_MODE_UNKNOWN, // 未知
  72309. EM_SUPPORT_SCENE_MODE_MANUAL, // 手动
  72310. EM_SUPPORT_SCENE_MODE_AUTO, // 自动
  72311. } EM_SUPPORT_SCENE_MODE;
  72312. ///@brief 场景矫正能力
  72313. typedef struct tagNET_SCENE_CORRECTION_CAPS
  72314. {
  72315. BOOL bSupport; // 是否支持场景矫正
  72316. int nModesCount; // 镜头旋转模式个数
  72317. EM_SUPPORT_SCENE_MODE emModes[32]; // 镜头旋转模式
  72318. char szReserved[64]; // 保留字节
  72319. }NET_SCENE_CORRECTION_CAPS;
  72320. ///@brief CLIENT_GetDevCaps接口 NET_GET_LENS_FUNC_CAPS 命令出参
  72321. typedef struct tagNET_OUT_GET_LENS_FUNC_CAPS
  72322. {
  72323. DWORD dwSize; // 结构体大小
  72324. UINT nDepthField; // 是否支持景深调节; 0-不支持,1-支持
  72325. EM_SUPPORT_ANGLE_ADJUST emSupportAngleAdjust; // 是否支持角度调整
  72326. UINT nMaxVelocity; // 最大角度调整速度, 表示速度调整范围1~8
  72327. NET_SCENE_CORRECTION_CAPS stuSceneCorrection; // 场景矫正能力
  72328. }NET_OUT_GET_LENS_FUNC_CAPS;
  72329. ///@brief CLIENT_AdjustDepthField 入参
  72330. typedef struct tagNET_IN_ADJUST_DEPTH_FIELD
  72331. {
  72332. DWORD dwSize; // 结构体大小
  72333. UINT nChannel; // 通道号
  72334. float fDepthField; // 景深相对位置,归一化到0-1
  72335. }NET_IN_ADJUST_DEPTH_FIELD;
  72336. ///@brief CLIENT_AdjustDepthField 出参
  72337. typedef struct tagNET_OUT_ADJUST_DEPTH_FIELD
  72338. {
  72339. DWORD dwSize; // 结构体大小
  72340. }NET_OUT_ADJUST_DEPTH_FIELD;
  72341. ///@brief CLIENT_AdjustDepthFieldContinuously 入参
  72342. typedef struct tagNET_IN_ADJUST_DEPTH_FIELD_CONTINUOUSLY
  72343. {
  72344. DWORD dwSize; // 结构体大小
  72345. UINT nChannel; // 通道号
  72346. float fDepthFieldSpeed; // 相对景深变化速率,归一化到-1~1,0表示停止。正负表示方向, 数字越大速度越快。
  72347. }NET_IN_ADJUST_DEPTH_FIELD_CONTINUOUSLY;
  72348. ///@brief CLIENT_AdjustDepthFieldContinuously 出参
  72349. typedef struct tagNET_OUT_ADJUST_DEPTH_FIELD_CONTINUOUSLY
  72350. {
  72351. DWORD dwSize; // 结构体大小
  72352. }NET_OUT_ADJUST_DEPTH_FIELD_CONTINUOUSLY;
  72353. ///@brief CLIENT_GetDepthFieldStatus 入参
  72354. typedef struct tagNET_IN_GET_DEPTH_FIELD_STATUS
  72355. {
  72356. DWORD dwSize; // 结构体大小
  72357. UINT nChannel; // 通道号
  72358. }NET_IN_GET_DEPTH_FIELD_STATUS;
  72359. ///@brief 景深调节状态
  72360. typedef enum tagEM_DEPTH_FIELD_STATUS
  72361. {
  72362. EM_DEPTH_FIELD_STATUS_UNKNOWN, // 未知
  72363. EM_DEPTH_FIELD_STATUS_NORMAL, // 正常状态
  72364. EM_DEPTH_FIELD_STATUS_AUTODEPTHFIELD, // 正在调节景深
  72365. }EM_DEPTH_FIELD_STATUS;
  72366. ///@brief CLIENT_GetDepthFieldStatus 出参
  72367. typedef struct tagNET_OUT_GET_DEPTH_FIELD_STATUS
  72368. {
  72369. DWORD dwSize; // 结构体大小
  72370. float fDepthField; // 景深相对位置,归一化到0-1
  72371. UINT nTotalDepthFieldSteps; // 总步长
  72372. EM_DEPTH_FIELD_STATUS emStatus; // 景深调节状态
  72373. }NET_OUT_GET_DEPTH_FIELD_STATUS;
  72374. ///@brief CLIENT_AutoAdjustDepthField 入参
  72375. typedef struct tagNET_IN_AUTO_ADJUST_DEPTH_FIELD
  72376. {
  72377. DWORD dwSize; // 结构体大小
  72378. UINT nChannel; // 通道号
  72379. }NET_IN_AUTO_ADJUST_DEPTH_FIELD;
  72380. ///@brief CLIENT_AutoAdjustDepthField 出参
  72381. typedef struct tagNET_OUT_AUTO_ADJUST_DEPTH_FIELD
  72382. {
  72383. DWORD dwSize; // 结构体大小
  72384. }NET_OUT_AUTO_ADJUST_DEPTH_FIELD;
  72385. ///@brief 矫正类型
  72386. typedef enum tagEM_CORRECT_SCENE_TYPE
  72387. {
  72388. EM_CORRECT_SCENE_TYPE_AUTO, // 自动矫正
  72389. EM_CORRECT_SCENE_TYPE_MANUAL, // 手动矫正
  72390. }EM_CORRECT_SCENE_TYPE;
  72391. ///@brief 转动方向
  72392. typedef enum tagEM_CORRECT_SCENE_DIRECTION
  72393. {
  72394. EM_CORRECT_SCENE_DIRECTION_CLOCKWISE, // 顺时针
  72395. EM_CORRECT_SCENE_DIRECTION_ANTI_CLOCKWISE, // 逆时针
  72396. }EM_CORRECT_SCENE_DIRECTION;
  72397. ///@brief 转动方式
  72398. typedef enum tagEM_CORRECT_SCENE_MODE
  72399. {
  72400. EM_CORRECT_SCENE_MODE_CONTINUOUS_ROTATION, // 持续转动
  72401. EM_CORRECT_SCENE_MODE_ANTI_INCHING, // 点动
  72402. }EM_CORRECT_SCENE_MODE;
  72403. ///@brief CLIENT_CorrectScene 入参
  72404. typedef struct tagNET_IN_CORRECT_SCENE
  72405. {
  72406. DWORD dwSize; // 结构体大小
  72407. UINT nChannel; // 通道号
  72408. EM_CORRECT_SCENE_TYPE emType; // 矫正类型
  72409. EM_CORRECT_SCENE_DIRECTION emDirection; // 转动方向,该参数仅矫正方式为手动矫正时有效
  72410. UINT nStep; // 步长(范围0-8),0表示停止转动,当转动方式为持续转动时表示转动的速度,当转动方式为点动时表示每次转动的步长,该参数仅矫正方式为手动矫正时有效
  72411. EM_CORRECT_SCENE_MODE emMode; // 转动方式,该参数仅矫正方式为手动矫正时有效
  72412. }NET_IN_CORRECT_SCENE;
  72413. ///@brief CLIENT_CorrectScene 出参
  72414. typedef struct tagNET_OUT_CORRECT_SCENE
  72415. {
  72416. DWORD dwSize; // 结构体大小
  72417. }NET_OUT_CORRECT_SCENE;
  72418. ///@brief 镜头调节景深
  72419. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AdjustDepthField(LLONG lLoginID, const NET_IN_ADJUST_DEPTH_FIELD *pstInParam, NET_OUT_ADJUST_DEPTH_FIELD *pstOutParam, int nWaitTime);
  72420. ///@brief 镜头连续调节景深
  72421. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AdjustDepthFieldContinuously(LLONG lLoginID, const NET_IN_ADJUST_DEPTH_FIELD_CONTINUOUSLY *pstInParam, NET_OUT_ADJUST_DEPTH_FIELD_CONTINUOUSLY *pstOutParam, int nWaitTime);
  72422. ///@brief 获取镜头景深状态信息
  72423. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDepthFieldStatus(LLONG lLoginID, const NET_IN_GET_DEPTH_FIELD_STATUS *pstInParam, NET_OUT_GET_DEPTH_FIELD_STATUS *pstOutParam, int nWaitTime);
  72424. ///@brief 调节镜头景深至最佳位置
  72425. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AutoAdjustDepthField(LLONG lLoginID, const NET_IN_AUTO_ADJUST_DEPTH_FIELD *pstInParam, NET_OUT_AUTO_ADJUST_DEPTH_FIELD *pstOutParam, int nWaitTime);
  72426. ///@brief 场景矫正
  72427. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CorrectScene(LLONG lLoginID, const NET_IN_CORRECT_SCENE *pstInParam, NET_OUT_CORRECT_SCENE *pstOutParam, int nWaitTime);
  72428. ///@brief GPS坐标
  72429. typedef struct tagNET_GPS_POSITION
  72430. {
  72431. double dbLongitude; // 经度(单位是百万分之度,范围0-360度)
  72432. double dbLatitude; // 纬度(单位是百万分之度,范围0-180度)
  72433. double dbAltitude; // 海拔(单位:米)
  72434. char szReserved[128]; // 保留字节
  72435. }NET_GPS_POSITION;
  72436. ///@brief 三维空间点类型
  72437. typedef struct tagNET_3DFLOAT_POINT
  72438. {
  72439. float fXPosition; // x坐标
  72440. float fYPosition; // y坐标
  72441. float fZPosition; // z坐标
  72442. char szReserved[28]; // 保留字节
  72443. }NET_3DFLOAT_POINT;
  72444. ///@brief 三维尺寸类型
  72445. typedef struct tagNET_3DFLOAT_SIZE
  72446. {
  72447. float fLength; // 长度,单位米
  72448. float fWidth; // 宽度,单位米
  72449. float fHeigth; // 高度,单位米
  72450. char szReserved[28]; // 保留字节
  72451. }NET_3DFLOAT_SIZE;
  72452. ///@brief 3D姿态
  72453. typedef struct tagNET_3DFLOAT_POSTURE
  72454. {
  72455. float fYaw; // 偏航角,单位度
  72456. float fPitch; // 俯仰角,单位度
  72457. float fRool; // 翻滚角,单位度
  72458. char szReserved[28]; // 保留字节
  72459. }NET_3DFLOAT_POSTURE;
  72460. ///@brief 目标属性
  72461. typedef struct tagNET_VEHICLE_FUSED_OBJECT
  72462. {
  72463. unsigned int nObjectID; // 目标ID
  72464. EM_ANALYSE_OBJECT_TYPE emObjectType; // 物体类型
  72465. float fSpeed; // 目标速度
  72466. NET_GPS_POSITION stuGPSPosition; // 目标当前GPS坐标
  72467. DH_MSG_OBJECT stuPlate; // 车牌信息
  72468. DH_MSG_OBJECT stuVehicle; // 机动车信息
  72469. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车信息
  72470. int nLaneID; // 车道ID
  72471. float fAcceleration; // 加速度,标量 m/s2
  72472. NET_3DFLOAT_POINT stu3DPointPosition; // 3D坐标,设备中心坐标系
  72473. NET_3DFLOAT_SIZE stu3DSize; // 3D尺寸,单位米
  72474. NET_3DFLOAT_POSTURE stu3DPosture; // 3D姿态, 与正东方向的的逆时针夹角,单位度(0~360)
  72475. NET_3DFLOAT_POINT stuVelocity; // 速度矢量,m/s
  72476. char szBrandYearText[64]; // 车系
  72477. char szReserved[3864]; // 保留字节
  72478. }NET_VEHICLE_FUSED_OBJECT;
  72479. ///@brief 智能分析结果的信息
  72480. typedef struct tagNET_VIDEO_ANALYSE_ANALYSE_PROC
  72481. {
  72482. int nChannelId; // 通道号
  72483. double dbPTS; // 时间戳(单位是毫秒)
  72484. NET_TIME_EX stuUTC; // 发生的时间
  72485. UINT nUTCMS; // 时间毫秒数,只表示毫秒
  72486. unsigned int nSequence; // 包序号,用于校验是否丢包
  72487. NET_VEHICLE_FUSED_OBJECT* pstuObjectList; // 物体列表
  72488. int nObjectListNum; // 物体列表个数
  72489. int nEventListCount; // 事件列表个数
  72490. DWORD dwEventCode[32]; // 事件列表, 仅支持: 碰撞冲突事件CollisionConflict(EVENT_IVS_COLLISION_CONFLICT)
  72491. void* pstuEventList[32]; // 事件信息
  72492. // 碰撞冲突事件CollisionConflict(EVENT_IVS_COLLISION_CONFLICT) - NET_DEV_EVENT_COLLISION_CONFLICT_INFO
  72493. char szReserved[1916-32*POINTERSIZE];// 保留字节
  72494. }NET_VIDEO_ANALYSE_ANALYSE_PROC;
  72495. ///@brief 智能分析结果的回调函数
  72496. ///@param[out] lAttachHandle 订阅句柄
  72497. ///@param[out] pstuVideoAnalyseTrackProc 智能分析结果的信息
  72498. ///@param[out] dwUser 用户信息
  72499. ///@return void
  72500. typedef void (CALLBACK *fVideoAnalyseAnalyseProc)(LLONG lAttachHandle, NET_VIDEO_ANALYSE_ANALYSE_PROC* pstuVideoAnalyseTrackProc, LDWORD dwUser);
  72501. ///@brief CLIENT_AttachVideoAnalyseAnalyseProc 输入参数
  72502. typedef struct tagNET_IN_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC
  72503. {
  72504. DWORD dwSize; // 此结构体大小,必须赋值
  72505. int nChannelId; // 通道号
  72506. fVideoAnalyseAnalyseProc cbVideoAnalyseAnalyseProc; // 回调函数
  72507. LDWORD dwUser; // 用户信息
  72508. }NET_IN_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC;
  72509. ///@brief CLIENT_AttachVideoAnalyseAnalyseProc 输出参数
  72510. typedef struct tagNET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC
  72511. {
  72512. DWORD dwSize; // 此结构体大小,必须赋值
  72513. }NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC;
  72514. ///@brief 订阅智能分析结果
  72515. ///@param[in] lLoginID 登录句柄
  72516. ///@param[in] pstInParam 接口输入参数
  72517. ///@param[out] pstOutParam 接口输出参数
  72518. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  72519. ///@return 返回订阅句柄
  72520. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachVideoAnalyseAnalyseProc(LLONG lLoginID, NET_IN_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC* pstInParam, NET_OUT_ATTACH_VIDEO_ANALYSE_ANALYSE_PROC* pstOutParam , int nWaitTime);
  72521. ///@brief 取消订阅智能分析结果
  72522. ///@param[in] lAttachHandle 订阅句柄
  72523. ///@return TRUE表示成功 FALSE表示失败
  72524. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVideoAnalyseAnalyseProc(LLONG lAttachHandle);
  72525. ///@brief 智能分析结果的信息
  72526. typedef struct tagNET_VEHICLE_INOUT_ANALYSE_PROC
  72527. {
  72528. char szName[128]; // 事件名称
  72529. double dbPTS; // 时间戳(单位是毫秒)
  72530. NET_TIME_EX stuUTC; // 发生的时间
  72531. int nEventID; // 事件ID
  72532. unsigned int nSequence; // 包序号,用于校验是否丢包
  72533. int nFrameSequence; // 视频分析帧序号
  72534. NET_VEHICLE_OBJECT *pstuObjets; // 物体列表
  72535. int nObjectNum; // 物体有效个数
  72536. int nStatNum; // 统计有效个数
  72537. NET_TRAFFIC_FLOW_STAT stuStats[8]; // 各个车道实时交通流量统计信息, 最大支持8车道
  72538. double dbRadarInstallAngle; // 雷达安装角度(雷达坐标系Y轴与正北方向的逆时针夹角)单位:度 (0 ~ 360)
  72539. char szReserved[2048]; // 保留字节
  72540. }NET_VEHICLE_INOUT_ANALYSE_PROC;
  72541. ///@brief 智能分析结果的回调函数
  72542. ///@param[out] lAttachHandle 订阅句柄
  72543. ///@param[out] pstuVideoAnalyseTrackProc 智能分析结果的信息
  72544. ///@param[out] dwUser 用户信息
  72545. ///@return void
  72546. typedef void (CALLBACK *fVehicleInOutAnalyseProc)(LLONG lAttachHandle, NET_VEHICLE_INOUT_ANALYSE_PROC* pstuVehicleInOutAnalyseProc, LDWORD dwUser);
  72547. ///@brief CLIENT_AttachTrafficFlowStatRealFlow 输入参数
  72548. typedef struct tagNET_IN_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW
  72549. {
  72550. DWORD dwSize; // 此结构体大小,必须赋值
  72551. char szReserved[4]; // 字节对齐
  72552. fVehicleInOutAnalyseProc cbVehicleInOutAnalyseProc; // 回调函数
  72553. LDWORD dwUser; // 用户信息
  72554. }NET_IN_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW;
  72555. ///@brief CLIENT_AttachTrafficFlowStatRealFlow 输出参数
  72556. typedef struct tagNET_OUT_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW
  72557. {
  72558. DWORD dwSize; // 此结构体大小,必须赋值
  72559. }NET_OUT_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW;
  72560. ///@brief 订阅交通流量统计
  72561. ///@param[in] lLoginID 登录句柄
  72562. ///@param[in] pstInParam 接口输入参数
  72563. ///@param[out] pstOutParam 接口输出参数
  72564. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  72565. ///@return 返回订阅句柄
  72566. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachTrafficFlowStatRealFlow(LLONG lLoginID, NET_IN_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW* pstuInParam, NET_OUT_ATTACH_TRAFFIC_FLOW_STAT_REAL_FLOW* pstuOutParam , int nWaitTime);
  72567. ///@brief 取消订阅交通流量统计
  72568. ///@param[in] lAttachHandle 订阅句柄
  72569. ///@return TRUE表示成功 FALSE表示失败
  72570. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachTrafficFlowStatRealFlow(LLONG lAttachHandle);
  72571. ///@brief CLIENT_GetDevCaps 对应的类型(NET_GET_FILE_TRANSFER_CAPS)入参
  72572. typedef struct tagNET_IN_GET_FILE_TRANSFER_CAPS
  72573. {
  72574. DWORD dwSize; // 结构体大小
  72575. }NET_IN_GET_FILE_TRANSFER_CAPS;
  72576. ///@brief CLIENT_GetDevCaps 对应的类型(NET_GET_FILE_TRANSFER_CAPS)出参
  72577. typedef struct tagNET_OUT_GET_FILE_TRANSFER_CAPS
  72578. {
  72579. DWORD dwSize; // 结构体大小
  72580. BOOL bSupportFaceDbDownload; // 是否支持远程目标库下载
  72581. BOOL bSupportPlateNumberDbDownload; // 是否支持远程车牌库下载
  72582. BOOL bSupportDownloadFaceLibByGroupID; // 是否支持通过人员组ID下载目标库 默认值false
  72583. }NET_OUT_GET_FILE_TRANSFER_CAPS;
  72584. ///@brief CLIENT_GetDevCaps 对应的类型(NET_AUDIO_OUTPUT_CAPS)入参
  72585. typedef struct tagNET_IN_AUDIO_OUTPUT_CAPS
  72586. {
  72587. DWORD dwSize; // 结构体大小
  72588. int nChannel; // 通道号
  72589. }NET_IN_AUDIO_OUTPUT_CAPS;
  72590. ///@brief 音频输出类型
  72591. typedef struct tagNET_AUDIO_OUTPUT_TYPE_INFO
  72592. {
  72593. int nLineOut; // 音频线性输出个数,大于0表示支持线性输出
  72594. int nSpeaker; // 音频内置扬声器输出个数,大于0表示支持内置扬声器输出
  72595. BYTE byReserved[1016]; // 预留字段
  72596. }NET_AUDIO_OUTPUT_TYPE_INFO;
  72597. ///@brief CLIENT_GetDevCaps 对应的类型(NET_DEV_AUDIO_OUTPUT_CAPS)出参
  72598. typedef struct tagNET_OUT_AUDIO_OUTPUT_CAPS
  72599. {
  72600. DWORD dwSize; // 结构体大小
  72601. NET_AUDIO_OUTPUT_TYPE_INFO stuType; // 音频输出类型
  72602. }NET_OUT_AUDIO_OUTPUT_CAPS;
  72603. ///@brief CLIENT_GetDevCaps 对应的类型(NET_VIDEO_TALK_MANAGER_CAPS)入参
  72604. typedef struct tagNET_IN_VIDEO_TALK_MANAGER_CAPS
  72605. {
  72606. DWORD dwSize; // 结构体大小
  72607. }NET_IN_VIDEO_TALK_MANAGER_CAPS;
  72608. ///@brief 对讲支持的协议类型
  72609. typedef enum tagEM_VIDEO_TALK_PROTOCOL
  72610. {
  72611. EM_VIDEO_TALK_PROTOCOL_UKNONWN, // 未知
  72612. EM_VIDEO_TALK_PROTOCOL_SIP, // SIP
  72613. EM_VIDEO_TALK_PROTOCOL_V2, // 私有协议二代
  72614. EM_VIDEO_TALK_PROTOCOL_V3, // 私有协议三代
  72615. } EM_VIDEO_TALK_PROTOCOL;
  72616. ///@brief 可视对讲支持的设备类型
  72617. typedef enum tagEM_VIDEO_TALK_CLASS
  72618. {
  72619. EM_VIDEO_TALK_CLASS_UNKNOWN, // 未知
  72620. EM_VIDEO_TALK_CLASS_VTO, // "VTO": 单元机/围墙机
  72621. EM_VIDEO_TALK_CLASS_VTH, // "VTH": 室内机
  72622. EM_VIDEO_TALK_CLASS_VTS, // "VTS": 管理机
  72623. EM_VIDEO_TALK_CLASS_VTNC, // "VTNC": 单元联网控制器
  72624. EM_VIDEO_TALK_CLASS_VTA, // "VTA": 报警盒/报警柱
  72625. EM_VIDEO_TALK_CLASS_VTT, // "VTT": 报警终端
  72626. } EM_VIDEO_TALK_CLASS;
  72627. ///@brief CLIENT_GetDevCaps 对应的类型(NET_VIDEO_TALK_MANAGER_CAPS)出参
  72628. typedef struct tagNET_OUT_VIDEO_TALK_MANAGER_CAPS
  72629. {
  72630. DWORD dwSize; // 结构体大小
  72631. BOOL bSupport; // 是否支持对讲
  72632. EM_VIDEO_TALK_CLASS emSIPClass; // SIP协议支持的设备类型
  72633. EM_VIDEO_TALK_CLASS emV2Class; // 私有二代协议支持的设备类型
  72634. EM_VIDEO_TALK_CLASS emV3Class; // 私有三代协议支持的设备类型
  72635. int nProtocalNum; // 对讲支持的协议个数
  72636. EM_VIDEO_TALK_PROTOCOL emProtocol[16]; // 对讲支持的协议类型集合
  72637. BOOL bSupportIssuedVTAList; // 是否支持平台下发使用SIP协议对讲的VTA列表
  72638. BOOL bSupportVTSBasicInfo; // 是否支持使用VTSBasicInfo配置存放管理机的基本信息
  72639. }NET_OUT_VIDEO_TALK_MANAGER_CAPS;
  72640. ///@brief 门锁控制模式
  72641. typedef enum tagNET_DOORWORK_MODE
  72642. {
  72643. NET_DOORWORK_MODE_UNKNOWN = 0, // 未知
  72644. NET_DOORWORK_MODE_NORMAL = 1, // 正常模式
  72645. NET_DOORWORK_MODE_SHUTLOCK = 2, // 闭锁
  72646. NET_DOORWORK_MODE_UNUSED = 3, // 停用
  72647. NET_DOORWORK_MODE_OPENDOORCONTINUE = 4, // 持续打开
  72648. } NET_DOORWORK_MODE;
  72649. ///@brief 获取门锁控制模式,对应命令DH_DEVSTATE_GET_ACCESSCONTROLMODE
  72650. typedef struct tagNET_GET_DOORWORK_MODE
  72651. {
  72652. DWORD dwSize;
  72653. int nChannel; // 门禁通道号
  72654. NET_DOORWORK_MODE emControlMode; // 门锁控制模式
  72655. }NET_GET_DOORWORK_MODE;
  72656. ///@brief VT事件类型
  72657. typedef enum tagEM_AUDIO_CB_FLAG
  72658. {
  72659. EM_AUDIO_CB_FLAG_UNKNOWN,
  72660. EM_AUDIO_CB_FLAG_NEWCALL, // 有呼叫进来
  72661. EM_AUDIO_CB_FLAG_REMOTE_HANGUP, // 对方挂断
  72662. EM_AUDIO_CB_FLAG_DISCONNECT, // 断线
  72663. EM_AUDIO_CB_FLAG_RING, // 对端响铃
  72664. } EM_AUDIO_CB_FLAG;
  72665. ///@brief VT回调函数
  72666. typedef int (CALLBACK *pfVtEventCallBack)(LLONG instId, LLONG ulRegisterId, LLONG ulSessionId, int nEvent, char *pDataBuf, DWORD dwBufSize, LDWORD dwUser);
  72667. ///@brief 呼叫事件处理动作EM_AUDIO_CB_FLAG_NEWCALL
  72668. typedef enum tagEM_NEWCALL_ACTION
  72669. {
  72670. EM_NEWCALL_ACTION_UNKNOWN, // 无操作
  72671. EM_NEWCALL_ACTION_REFUSE, // 拒接
  72672. EM_NEWCALL_ACTION_ACCEPT, // 接入
  72673. } EM_NEWCALL_ACTION;
  72674. ///@brief 按位标识后面的字段是否有效
  72675. typedef enum tagEM_VT_PARAM_VALID
  72676. {
  72677. EM_VT_PARAM_VALID_EVENT_CB = 0x0001,
  72678. EM_VT_PARAM_VALID_USER_DATA = 0x0002,
  72679. EM_VT_PARAM_VALID_MID_NUM = 0x0004,
  72680. EM_VT_PARAM_VALID_ACTION = 0x0008,
  72681. EM_VT_PARAM_VALID_WAITTIME = 0x0010,
  72682. EM_VT_PARAM_VALID_VIDEOWND = 0x0020,
  72683. EM_VT_PARAM_VALID_CSMODE = 0x0040,
  72684. EM_VT_PARAM_VALID_AUDIO_ENCODE = 0x0080,
  72685. EM_VT_PARAM_VALID_LOCAL_IP = 0x0100,
  72686. } EM_VT_PARAM_VALID;
  72687. ///@brief VT对讲参数
  72688. typedef struct tagNET_VT_TALK_PARAM
  72689. {
  72690. DWORD dwSize; // 结构体大小
  72691. int nValidFlag; // 按位标识后面的字段是否有效, EM_VT_PARAM_VALID的组合
  72692. pfVtEventCallBack pfEventCb; // 事件回调函数, EM_VT_PARAM_VALID_EVENT_CB
  72693. LDWORD dwUser; // 事件回调函数自定义数据, EM_VT_PARAM_VALID_USER_DATA
  72694. char szPeerMidNum[16]; // 被叫中号, 8位, EM_VT_PARAM_VALID_MID_NUM
  72695. EM_NEWCALL_ACTION emAction; // 对呼叫的操作, 0:无操作, 1:拒接, 2:接入, EM_VT_PARAM_VALID_ACTION
  72696. int nWaitTime; // 超时时间, 单位ms, EM_VT_PARAM_VALID_WAITTIME
  72697. HWND hVideoWnd; // 可视对讲视频显示窗口, EM_VT_PARAM_VALID_VIDEOWND
  72698. BOOL bClient; // 客户端/服务器模式, TRUE:客户端, FALSE:服务器, EM_VT_PARAM_VALID_CSMODE
  72699. DHDEV_TALKDECODE_INFO stAudioEncode; // 语音编码信息, EM_VT_PARAM_VALID_AUDIO_ENCODE
  72700. } NET_VT_TALK_PARAM;
  72701. ///@brief VTC登录VTO
  72702. CLIENT_NET_API LLONG CALL_METHOD CLIENT_VT_RegisterVto(const char *pszIp, int nPort = 13801);
  72703. ///@brief VTC登出VTO
  72704. CLIENT_NET_API BOOL CALL_METHOD CLIENT_VT_UnRegisterVto(LLONG ulLongId);
  72705. /////////////////////////////// 无人机接口 ///////////////////////////////////////
  72706. ///@brief 无人机飞行信息结构
  72707. typedef struct tagNET_UAV_FLY_INFO
  72708. {
  72709. float fAltitude; // 垂直高度,相对于水平面 单位:米
  72710. float fDistance; // 水平距离,相对于遥控器 单位:米
  72711. float fHorizontalSpeed; // 水平速度,飞行器在水平方向的飞行速度 单位:米/秒
  72712. float fVerticalSpeed; // 垂直速度,飞行器在垂直方向的飞行速度 单位:米/秒
  72713. int nRCLinkQuality; // 遥控器链路信号质量 范围:0~100
  72714. char reserved[512];
  72715. } NET_UAV_FLY_INFO;
  72716. ///@brief 无人机飞行信息回调函数原形,lAttachHandle 是 CLIENT_AttachUavFly 返回值
  72717. typedef void (CALLBACK *fUavFlyCallBack) (LLONG lAttachHandle, NET_UAV_FLY_INFO* pBuf, DWORD dwBufLen, LDWORD dwUser);
  72718. ///@brief CLIENT_AttachUavFly 入参
  72719. typedef struct tagNET_IN_ATTACH_UAV_FLY
  72720. {
  72721. DWORD dwSize;
  72722. fUavFlyCallBack cbUavFly; // 飞行信息回调函数
  72723. DWORD dwUser; // 用户数据
  72724. } NET_IN_ATTACH_UAV_FLY;
  72725. ///@brief CLIENT_AttachUavFly 出参
  72726. typedef struct tagNET_OUT_ATTACH_UAV_FLY
  72727. {
  72728. DWORD dwSize;
  72729. } NET_OUT_ATTACH_UAV_FLY;
  72730. ///@brief 订阅无人机飞行信息,pInParam与pOutParam内存由用户申请释放
  72731. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachUavFly(LLONG lLoginID, const NET_IN_ATTACH_UAV_FLY* pInParam, NET_OUT_ATTACH_UAV_FLY* pOutParam, int nWaitTime);
  72732. ///@brief 取消订阅无人机飞行信息
  72733. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachUavFly(LLONG lAttachHandle);
  72734. ////////////////////////////////////////////////////////////////////////////
  72735. ///@brief 获取设备自检信息,pInParam与pOutParam内存由用户申请释放
  72736. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSelfCheckInfo(LLONG lLoginID, const NET_IN_GET_SELTCHECK_INFO* pInParam, NET_SELFCHECK_INFO* pOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  72737. /////////////////////////////激光器与电子稳像器接口/////////////////////////////////
  72738. ///@brief 打开或关闭激光器入参
  72739. typedef struct tagLASER_IN_INFO
  72740. {
  72741. DWORD dwSize; // 结构体大小
  72742. UINT nChannelID; // 通道号
  72743. } LASER_IN_INFO;
  72744. ///@brief 打开或关闭激光器出参
  72745. typedef struct tagLaser_OUT_INFO
  72746. {
  72747. DWORD dwSize; // 结构体大小
  72748. } LASER_OUT_INFO;
  72749. ///@brief 打开或关闭电子稳像器入参
  72750. typedef struct tagEIS_IN_INFO
  72751. {
  72752. DWORD dwSize; // 结构体大小
  72753. UINT nChannelID; // 通道号
  72754. } EIS_IN_INFO;
  72755. ///@brief 打开关闭电子稳像器接口出参
  72756. typedef struct tagEIS_OUT_INFO
  72757. {
  72758. DWORD dwSize; // 结构体大小
  72759. } EIS_OUT_INFO;
  72760. ///@brief 打开激光器,pLaserDataIn与pLaserDataOut内存由用户申请释放
  72761. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartLaser(LLONG lLoginID,const LASER_IN_INFO* pLaserDataIn, LASER_OUT_INFO* pLaserDataOut,int nWaitTime = 1000);
  72762. ///@brief 关闭激光器,pLaserDataIn与pLaserDataOut内存由用户申请释放
  72763. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopLaser(LLONG lLoginID,const LASER_IN_INFO* pLaserDataIn, LASER_OUT_INFO* pLaserDataOut,int nWaitTime = 1000);
  72764. ///@brief 打开电子稳像器,pEISDataIn与pEISDataOut内存由用户申请释放
  72765. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartEIS(LLONG lLoginID,const EIS_IN_INFO* pEISDataIn, EIS_OUT_INFO* pEISDataOut,int nWaitTime = 1000);
  72766. ///@brief 关闭电子稳像器,pEISDataIn与pEISDataOut内存由用户申请释放
  72767. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopEIS(LLONG lLoginID,const EIS_IN_INFO* pEISDataIn, EIS_OUT_INFO* pEISDataOut,int nWaitTime = 1000);
  72768. ///@brief 手动测试PSTN连接状态,pInBuf与pOutBuf内存由用户申请释放
  72769. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ManualCheckPSTN(LLONG lLoginID, const NET_IN_PSTN_MANUALCHECK_STATE* pInBuf, NET_OUT_PSTN_MANUALCHECK_STATE* pOutBuf, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  72770. #define MAX_NUM_EX_MODULE 16 // 扩展模块最大数量
  72771. #define MAX_NUM_ADDR_IN_BUS 256 // 总线上的地址号的最大数量
  72772. ///@brief 获取扩展模块使用情况入参
  72773. typedef struct tagNET_IN_EXMODULE_INFO
  72774. {
  72775. DWORD dwSize; // 结构体大小
  72776. } NET_IN_EXMODULE_INFO;
  72777. ///@brief 单个扩展模块使用情况
  72778. typedef struct tagNET_OUT_EXMODULE_INFO
  72779. {
  72780. NET_BUS_TYPE emBusType; // 总线类型
  72781. int nChannelID; // 总线号
  72782. int nAddrCount; // 有效的地址号个数
  72783. int nAddr[MAX_NUM_ADDR_IN_BUS]; // 总线上的地址号
  72784. char reserved[1024]; // 保留字节
  72785. } NET_OUT_EXMODULE_INFO;
  72786. ///@brief 获取扩展模块使用情况接口出参
  72787. typedef struct tagNET_OUT_EXMODULE_INFO_ALL
  72788. {
  72789. DWORD dwSize; // 结构体大小
  72790. int nExModuleCount; // 总线数量
  72791. NET_OUT_EXMODULE_INFO stuExModuleInfo[MAX_NUM_EX_MODULE]; // 扩展模块使用情况数组
  72792. } NET_OUT_EXMODULE_INFO_ALL;
  72793. /**************************************************************************************
  72794. ///@brief: CLIENT_GetExModuleState
  72795. ///@brief:获取扩展模块使用情况
  72796. ///@param[in]: LLONG :lLoginID //登陆句柄
  72797. ///@param[in]: NET_IN_EXMODULE_INFO* :pInParam //传入参数,必填,不能为NULL,需设置dwSize,由用户申请释放内存
  72798. ///@param[in]: NET_OUT_EXMODULE_INFO_ALL* :pOutParam //传出参数,必填,不能为NULL,需设置dwSize,由用户申请释放内存
  72799. ///@param[in]: int :nWaitTime //超时时间
  72800. ///@return: BOOL
  72801. * *该接口已废弃,请使用CLINET_GetExModuleInfo接口*
  72802. **************************************************************************************/
  72803. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetExModuleState(LLONG lLoginID, const NET_IN_EXMODULE_INFO* pInParam, NET_OUT_EXMODULE_INFO_ALL* pOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  72804. ///////////////////////////主从设备组操作接口//////////////////////////
  72805. #define MASTERSALVE_CLASS_LEN 16
  72806. ///@brief 打开主从跟踪组入参
  72807. typedef struct tagNET_IN_MSGROUP_OPEN_INFO
  72808. {
  72809. DWORD dwSize; // 结构体大
  72810. int nGroupID; // 设备组号
  72811. int nSlaveID; // 从机序号
  72812. int nMasterID; // 对应主从组的主机序号, 例如三枪一球,则nMasterID取值0、1和2
  72813. int nChannel; // 本地通道号,对应本地视频通道号,从0开始。(老设备及前端设备不支持多通道,设置为0)
  72814. }NET_IN_MSGROUP_OPEN_INFO;
  72815. ///@brief 打开主从跟踪组出参
  72816. typedef struct tagNET_OUT_MSGROUP_OPEN_INFO
  72817. {
  72818. DWORD dwSize; // 结构体大小
  72819. DWORD dwToken; // 主从跟踪组句柄
  72820. }NET_OUT_MSGROUP_OPEN_INFO;
  72821. ///@brief 联动主从跟踪组入参
  72822. typedef struct tagNET_IN_MSGROUP_LOCATE_INFO
  72823. {
  72824. DWORD dwSize; // 结构体大小
  72825. DWORD dwToken; // 主从跟踪组句柄
  72826. DH_POINT stuPoint; // 主机坐标
  72827. short snMasterInfo[3]; // 鱼眼圆心坐标与半径, 依次为[横坐标, 纵坐标, 半径]
  72828. }NET_IN_MSGROUP_LOCATE_INFO;
  72829. ///@brief 联动主从跟踪组出参
  72830. typedef struct tagNET_OUT_MSGROUP_LOCATE_INTO
  72831. {
  72832. DWORD dwSize; // 结构体大小
  72833. short snPTZ[3]; // 联动到球机上的绝对坐标
  72834. }NET_OUT_MSGROUP_LOCATE_INTO;
  72835. ///@brief 手动选定目标跟踪入参
  72836. typedef struct tagNET_IN_MSGROUP_TRACK_INFO
  72837. {
  72838. DWORD dwSize; // 结构体大小
  72839. DWORD dwToken; // 主从跟踪组句柄
  72840. char szClass[MASTERSALVE_CLASS_LEN]; // 算法方案类型
  72841. DWORD dwObjectID; // 算法目标ID
  72842. }NET_IN_MSGROUP_TRACK_INFO;
  72843. ///@brief 手动选定目标跟踪出参
  72844. typedef struct tagNET_OUT_MSGROUP_TRACK_INFO
  72845. {
  72846. DWORD dwSize; // 结构体大小
  72847. }NET_OUT_MSGROUP_TRACK_INFO;
  72848. ///@brief 关闭主从式跟踪器实例入参
  72849. typedef struct tagNET_IN_MSGROUP_CLOSE_INFO
  72850. {
  72851. DWORD dwSize; // 结构体大小
  72852. DWORD dwToken; // 主从跟踪组句柄
  72853. }NET_IN_MSGROUP_CLOSE_INFO;
  72854. ///@brief 关闭主从式跟踪器实例出参
  72855. typedef struct tagNET_OUT_MSGROUP_CLOSE_INFO
  72856. {
  72857. DWORD dwSize; // 结构体大小
  72858. }NET_OUT_MSGROUP_CLOSE_INFO;
  72859. ///@brief 主动跟踪主操作命令 EM_MSGROUP_OPERATE_RECTLOCATE 入参
  72860. typedef struct tagNET_IN_MSGROUP_RECTLOCATE_INFO
  72861. {
  72862. DWORD dwSize; // 结构体大小
  72863. DWORD dwToken; // 主从跟踪组句柄, 从 EM_MSGROUP_OPERATE_OPEN 操作获取
  72864. NET_RECT stuRect; // 选定的矩形框坐标
  72865. int nRectDirection; // 框选的方向, 0-从左上到右下, 表示放大; 1-从右下到左上,表示缩小
  72866. }NET_IN_MSGROUP_RECTLOCATE_INFO;
  72867. ///@brief 主动跟踪主操作命令, EM_MSGROUP_OPERATE_RECTLOCATE 出参
  72868. typedef struct tagNET_OUT_MSGROUP_RECTLOCATE_INFO
  72869. {
  72870. DWORD dwSize; // 结构体大小
  72871. int nPTZ[3]; // 联动到球机上的绝对坐标
  72872. }NET_OUT_MSGROUP_RECTLOCATE_INFO;
  72873. ///@brief EM_MSGROUP_OPERATE_SLAVE_POSITION_TO_MASTER 入参
  72874. typedef struct tagNET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO
  72875. {
  72876. DWORD dwSize; // 结构体大小
  72877. DWORD dwToken; // 主从跟踪组句柄, 从 EM_MSGROUP_OPERATE_OPEN 操作获取
  72878. int nPTZ[3]; // 从机PTZ位置,PT为真实值扩大10倍表示,Z为真实倍率扩大10倍表示
  72879. NET_RECT stuRect; // 物体在从机视频上的位置, 8192坐标系
  72880. }NET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO;
  72881. ///@brief EM_MSGROUP_OPERATE_SLAVE_POSITION_TO_MASTER 出参
  72882. typedef struct tagNET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO
  72883. {
  72884. DWORD dwSize; // 结构体大小
  72885. NET_RECT stuRect; // 从机画面上的物体坐标在主机画面上的位置,8192坐标系
  72886. }NET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO;
  72887. ///@brief 跟踪报警信息
  72888. typedef struct tagNET_MSGROUP_NOTIFY_INFO
  72889. {
  72890. DWORD dwSubscribeID; // 服务端订阅ID
  72891. int nSlaveID; // 跟踪组中从机序号
  72892. char szClass[MASTERSALVE_CLASS_LEN]; // 算法方案类型
  72893. DWORD dwObjectID; // 算法目标ID
  72894. NET_RECT stuBoundingBox; // 跟踪物体包围盒
  72895. BYTE byReserved[512]; // 保留字节
  72896. }NET_MSGROUP_NOTIFY_INFO;
  72897. ///@brief 自动跟踪回调函数, lAttachHandle 为 CLIENT_AttachMasterSlaveGroup 返回的结果
  72898. typedef void (CALLBACK *fMasterSlaveCallBack)(LLONG lAttachHandle, NET_MSGROUP_NOTIFY_INFO* pBuf, DWORD dwBufLen, LDWORD dwUser);
  72899. ///@brief CLIENT_AttachMasterSlaveGroup 入参
  72900. typedef struct tagNET_IN_MSGROUP_ATTACH_INFO
  72901. {
  72902. DWORD dwSize; // 结构体大小
  72903. fMasterSlaveCallBack cbNotify; // 回调函数
  72904. LDWORD dwUser; // 用户信息
  72905. int nGroupID; // 设备组号
  72906. int nChannel; // 本地通道号,对应本地视频通道号,从0开始。(老设备及前端设备不支持多通道,设置为0)
  72907. }NET_IN_MSGROUP_ATTACH_INFO;
  72908. ///@brief CLIENT_AttachMasterSlaveGroup 出参
  72909. typedef struct tagNET_OUT_MSGROUP_ATTACH_INFO
  72910. {
  72911. DWORD dwSize; // 结构体大小
  72912. }NET_OUT_MSGROUP_ATTACH_INFO;
  72913. ///@brief 主动跟踪主操作命令, 接口 CLIENT_OperateMasterSlaveGroup
  72914. typedef enum tagEM_MSGROUP_OPERATE_TYPE
  72915. {
  72916. EM_MSGROUP_OPERATE_OPEN, // 打开主从跟踪组, 对应 NET_IN_MSGROUP_OPEN_INFO 和 NET_OUT_MSGROUP_OPEN_INFO
  72917. EM_MSGROUP_OPERATE_LOCATE, // 联动主从跟踪组, 对应 NET_IN_MSGROUP_LOCATE_INFO 和 NET_OUT_MSGROUP_LOCATE_INTO
  72918. EM_MSGROUP_OPERATE_TRACK, // 手动选定目标跟踪, 对应 NET_IN_MSGROUP_TRACK_INFO 和 NET_OUT_MSGROUP_TRACK_INFO
  72919. EM_MSGROUP_OPERATE_CLOSE, // 关闭主从式跟踪器实例, 对应 NET_IN_MSGROUP_CLOSE_INFO 和 NET_OUT_MSGROUP_CLOSE_INFO
  72920. EM_MSGROUP_OPERATE_RECTLOCATE, // 从主设备选择矩形框联动从设备, 对应 NET_IN_MSGROUP_RECTLOCATE_INFO 和 NET_OUT_MSGROUP_RECTLOCATE_INFO
  72921. EM_MSGROUP_OPERATE_SLAVE_POSITION_TO_MASTER, // 将从机固定位置下的视频坐标转换为主机的视频坐标, 对应 对应 NET_IN_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO 和 NET_OUT_MSGROUP_SLAVE_POSITION_TO_MASTER_INFO
  72922. }EM_MSGROUP_OPERATE_TYPE;
  72923. ///@brief 主从联动组, 操作接口,pInParam与pOutParam内存由用户申请释放,大小参照emOperateType对应的结构体
  72924. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateMasterSlaveGroup(LLONG lLoginID, EM_MSGROUP_OPERATE_TYPE emOperateType, void* pInParam, void* pOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  72925. ///@brief 订阅自动跟踪目标 ,pInParam与pOutParam内存由用户申请释放
  72926. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachMasterSlaveGroup(LLONG lLoginID, const NET_IN_MSGROUP_ATTACH_INFO *pInParam, NET_OUT_MSGROUP_ATTACH_INFO *pOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  72927. ///@brief 退订自动跟踪目标
  72928. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachMasterSlaveGroup(LLONG lAttachHandle);
  72929. //////////////////////////////////////////////////////////////////////
  72930. #define MAX_TRAFFIC_LANE_NUM 16 // 最大车道个数
  72931. #define MAX_CAMERA_PERIPHERAL_NUM 8 // 照相机外设最大个数
  72932. #define MAX_STORAGE_NUM 8 // 存储设备最大个数
  72933. #define MAX_PARTITION_NUM 8 // 最大分区个数
  72934. ///@brief 存储设备分区信息
  72935. typedef struct tagNET_PARTITION_INFO
  72936. {
  72937. double dbTotalBytes; // 分区总空间
  72938. double dbUsedBytes; // 分区使用的空间
  72939. BOOL bError; // 是否异常
  72940. BYTE byReserved[64]; // 保留字段
  72941. }NET_PARTITION_INFO;
  72942. ///@brief 存储设备工作状态
  72943. typedef enum tagENUM_STORAGE_STATE
  72944. {
  72945. ENUM_STORAGE_STATE_UNKONWN, // 未知状态
  72946. ENUM_STORGAE_STATE_READ_ERROR, // 设备读取失败
  72947. ENUM_STORAGE_STATE_INITIALIZING, // 正在读取设备
  72948. ENUM_STORAGE_STATE_READ_SUCCESS, // 设备读取成功
  72949. }ENUM_STORAGE_STATE;
  72950. ///@brief 存储设备信息
  72951. typedef struct tagNET_STORAGE_INFO
  72952. {
  72953. ENUM_STORAGE_STATE emState; // 存储设备状态
  72954. int nPartitonNum; // 分区个数
  72955. NET_PARTITION_INFO stuPartions[MAX_PARTITION_NUM]; // 分区信息
  72956. BYTE byReserved[128]; // 保留字段
  72957. }NET_STORAGE_INFO;
  72958. ///@brief 网络资源
  72959. typedef struct tagNET_RESOURCE_STATE
  72960. {
  72961. int nIPChanneIn; // IP通道接入速度, 单位: kbps
  72962. int nNetRemain; // 网络接收剩余能力, 单位: kbps
  72963. int nNetCapability; // 网络接收总能力, 单位: kbps
  72964. int nRemotePreview; // 远程预览能力, 单位: kbps
  72965. int nRmtPlayDownload; // 远程回放及下载能力, 单位: kbps
  72966. int nRemoteSendRemain; // 远程发送剩余能力, 单位: kbps
  72967. int nRemoteSendCapability; // 远程发送总能力, 单位: kbps
  72968. BYTE byReserved[32]; // 保留字节
  72969. } NET_RESOURCE_STATE;
  72970. ///@brief 设备工作状态
  72971. typedef struct tagNET_WORKSTATE
  72972. {
  72973. BOOL bOnline; // 设备是否在线
  72974. char szFirmwareVersion[DH_COMMON_STRING_128]; // 固件版本号
  72975. float fTemperature; // 温度值, 单位摄氏度
  72976. float fPowerDissipation; // 功耗, 单位W
  72977. int nUtilizationOfCPU; // CPU 使用率
  72978. int nStorageNum; // 存储设备个数
  72979. NET_STORAGE_INFO stuStorages[MAX_STORAGE_NUM]; // 存储设备信息
  72980. int nUpTimeLast; // 上次上电时间, 单位: 秒
  72981. int nUpTimeTotal; // 总共上电时间, 单位: 秒
  72982. double dbMemInfoTotal; // 总内存大小, 单位: 字节
  72983. double dbMemInfoFree; // 剩余内存大小, 单位: 字节
  72984. BYTE byReserved1[4]; // 字节对齐,非保留字节
  72985. char szDevType[32]; // 设备型号
  72986. NET_RESOURCE_STATE stuResourceStat; // 网络资源
  72987. BYTE byReserved[8]; // 保留字节
  72988. }NET_WORKSTATE;
  72989. ///@brief 查询盒子工作状态, 对应命令 DH_DEVSTATE_GET_WORK_STATE
  72990. typedef struct tagNET_QUERY_WORK_STATE
  72991. {
  72992. DWORD dwSize; // 保留字段
  72993. NET_WORKSTATE stuWorkState; // 运行状态
  72994. }NET_QUERY_WORK_STATE;
  72995. ///@brief 查询防护舱门锁状态入参,对应接口 CLIENT_GetCapsuleLockState
  72996. typedef struct tagNET_IN_QUERY_CAPSULE_LOCKSTATE
  72997. {
  72998. DWORD dwSize; // 结构体大小
  72999. int nChannel; // 通道号
  73000. }NET_IN_QUERY_CAPSULE_LOCKSTATE;
  73001. ///@brief 在线状态
  73002. typedef enum tagNET_EM_ONLINESTATE
  73003. {
  73004. NET_EM_ONLINESTATE_UNKNOWN, // 未知
  73005. NET_EM_ONLINESTATE_ONLINE, // 在线
  73006. NET_EM_ONLINESTATE_OFFLINE, // 离线
  73007. }NET_EM_ONLINESTATE;
  73008. ///@brief 门锁状态
  73009. typedef enum tagNET_EM_LOCKSTATE
  73010. {
  73011. NET_EM_LOCKSTATE_UNKNOWN, // 未知
  73012. NET_EM_LOCKSTATE_Open, // 打开
  73013. NET_EM_LOCKSTATE_CLOSE, // 关闭
  73014. NET_EM_LOCKSTATE_ABNORMAL, // 异常
  73015. NET_EM_LOCKSTATE_FAKELOCKED, // 假锁
  73016. }NET_EM_LOCKSTATE;
  73017. ///@brief 查询防护舱门锁状态出参,对应接口 CLIENT_GetCapsuleLockState
  73018. typedef struct tagNET_OUT_QUERY_CAPSULE_LOCKSTATE
  73019. {
  73020. DWORD dwSize; // 结构体大小
  73021. NET_EM_LOCKSTATE emLockState; // 门锁状态
  73022. NET_EM_ONLINESTATE emOnLineState; // 在线状态
  73023. }NET_OUT_QUERY_CAPSULE_LOCKSTATE;
  73024. ///@brief 获取防护舱内人数入参
  73025. typedef struct tagNET_IN_QUERY_CAPSULE_HUMANNUM
  73026. {
  73027. DWORD dwSize; // 结构体大小
  73028. int nChannel; // 通道号
  73029. }NET_IN_QUERY_CAPSULE_HUMANNUM;
  73030. ///@brief 获取防护舱内人数出参
  73031. typedef struct tagNET_OUT_QUERY_CAPSULE_HUMANNUM
  73032. {
  73033. DWORD dwSize; // 结构体大小
  73034. UINT nHumanNum; // 人数
  73035. }NET_OUT_QUERY_CAPSULE_HUMANNUM;
  73036. ///@brief 录像模式
  73037. typedef enum tagNET_EM_RECORD_MODE
  73038. {
  73039. NET_EM_RECORD_MODE_UNKNOWN, // 未知
  73040. NET_EM_RECORD_MODE_COURSE, // 课程录像模式
  73041. NET_EM_RECORD_MODE_NORMAL, // 普通模式
  73042. }NET_EM_RECORD_MODE;
  73043. ///@brief 设置录像模式入参,对应接口CLIENT_SetCourseRecordMode
  73044. typedef struct tagNET_IN_SET_COURSE_RECORD_MODE
  73045. {
  73046. DWORD dwSize;
  73047. NET_EM_RECORD_MODE emRecordMode; // 录像模式
  73048. int nClassRoomID; // 教室id号
  73049. }NET_IN_SET_COURSE_RECORD_MODE;
  73050. ///@brief 设置录像模式出参,对应接口CLIENT_SetCourseRecordMode
  73051. typedef struct tagNET_OUT_SET_COURSE_RECORD_MODE
  73052. {
  73053. DWORD dwSize;
  73054. }NET_OUT_SET_COURSE_RECORD_MODE;
  73055. ///@brief 获取录像模式入参,对应接口CLIENT_GetCourseRecordMode
  73056. typedef struct tagNET_IN_GET_COURSE_RECORD_MODE
  73057. {
  73058. DWORD dwSize;
  73059. int nClassRoomID; // 教室id号
  73060. }NET_IN_GET_COURSE_RECORD_MODE;
  73061. ///@brief 获取录像模式出参,对应接口CLIENT_GetCourseRecordMode
  73062. typedef struct tagNET_OUT_GET_COURSE_RECORD_MODE
  73063. {
  73064. DWORD dwSize;
  73065. NET_EM_RECORD_MODE emRecordMode; // 录像模式
  73066. }NET_OUT_GET_COURSE_RECORD_MODE;
  73067. ///@brief 设备公共信息
  73068. typedef struct tagNET_DEVICE_COMMON_INFO
  73069. {
  73070. char szVendor[DH_COMMON_STRING_32]; // 生产厂商
  73071. char szDviceType[DH_COMMON_STRING_32]; // 设备型号
  73072. char szVersion[DH_COMMON_STRING_128]; // 设备版本信息
  73073. char szSerialNo[DH_COMMON_STRING_128]; // 设备编号
  73074. BYTE byReserved[128]; // 保留字节
  73075. }NET_DEVICE_COMMON_INFO;
  73076. ///@brief 车检器信息
  73077. typedef struct tagNET_VEHICLE_DETECTOR_INFO
  73078. {
  73079. NET_DEVICE_COMMON_INFO stuDevice; // 设备信息
  73080. int nWokingState; // 工作状态: 0-故障, 1-正常工作, 2-关闭
  73081. int nMatchState; // 线圈匹配状态: 0-不匹配, 1-匹配, 2-不检测
  73082. int nLaneNum; // 车道个数
  73083. int nUsageOfLane[MAX_TRAFFIC_LANE_NUM];// 每个车道占有率, 0-100
  73084. BYTE byReserved[128]; // 保留字节
  73085. }NET_VEHICLE_DETECTOR_INFO;
  73086. ///@brief 信号检测器信息
  73087. typedef struct tagNET_SIGNAL_DETECTOR_INFO
  73088. {
  73089. NET_DEVICE_COMMON_INFO stuDevice; // 设备信息
  73090. int nWokingState; // 工作状态: 0-故障, 1-正常工作, 2-关闭
  73091. int nMatchState; // 线圈匹配状态: 0-不匹配, 1-匹配, 2-不检测
  73092. BYTE byReserved[128]; // 保留字节
  73093. }NET_SIGNAL_DETECTOR_INFO;
  73094. ///@brief 频闪灯信息
  73095. typedef struct tagNET_STROBOSCOPIC_LAMP_INFO
  73096. {
  73097. NET_DEVICE_COMMON_INFO stuDevice; // 设备信息
  73098. int nWokingState; // 工作状态: 0-故障, 1-正常工作, 2-关闭
  73099. int nMatchState; // 线圈匹配状态: 0-不匹配, 1-匹配, 2-不检测
  73100. BYTE byReserved[128]; // 保留字节
  73101. }NET_STROBOSCOPIC_LAMP_INFO;
  73102. ///@brief RS485 频闪灯信息
  73103. typedef struct tagNET_RS485_STROBOSCOPIC_LAMP_INFO
  73104. {
  73105. NET_DEVICE_COMMON_INFO stuDevice; // 设备信息
  73106. int nWokingState; // 工作状态: 0-故障, 1-正常工作, 2-关闭
  73107. int nMatchState; // 线圈匹配状态: 0-不匹配, 1-匹配, 2-不检测
  73108. int nPeripheralAddress; // 外设地址
  73109. int nPeripheralStateCode; // 外设故障码: 1-设备无响应, 2-灯珠故障, 3-未接频闪信号
  73110. int nLuminance; // 亮度, 1-20
  73111. int nSensibility; // 灵敏度, 1-255
  73112. float fPowerDissipation; // 功耗
  73113. BYTE byReserved[128]; // 保留字节
  73114. }NET_RS485_STROBOSCOPIC_LAMP_INFO;
  73115. ///@brief 爆闪灯信息
  73116. typedef struct tagNET_FLASH_LAMP_INFO
  73117. {
  73118. NET_DEVICE_COMMON_INFO stuDevice; // 设备信息
  73119. int nWokingState; // 工作状态: 0-故障, 1-正常工作, 2-关闭
  73120. int nMatchState; // 线圈匹配状态: 0-不匹配, 1-匹配, 2-不检测
  73121. BYTE byReserved[128]; // 保留字节
  73122. }NET_FLASH_LAMP_INFO;
  73123. ///@brief RS485 爆闪灯信息
  73124. typedef struct tagNET_RS485_FLASH_LAMP_INFO
  73125. {
  73126. NET_DEVICE_COMMON_INFO stuDevice; // 设备信息
  73127. int nWokingState; // 工作状态: 0-故障, 1-正常工作, 2-关闭
  73128. int nMatchState; // 线圈匹配状态: 0-不匹配, 1-匹配, 2-不检测
  73129. int nPeripheralAddress; // 外设地址
  73130. int nPeripheralStateCode; // 外设故障码: 1-设备无响应, 2-灯珠故障, 3-未接频闪信号
  73131. int nLuminance; // 亮度, 1-20
  73132. int nSensibility; // 灵敏度, 1-255
  73133. float fPowerDissipation; // 功耗
  73134. BYTE byReserved[128]; // 保留字节
  73135. }NET_RS485_FLASH_LAMP_INFO;
  73136. ///@brief RS485 常亮灯信息
  73137. typedef struct tagNET_RS485_STEADY_LAMP_INFO
  73138. {
  73139. NET_DEVICE_COMMON_INFO stuDevice; // 设备信息
  73140. int nWokingState; // 工作状态: 0-故障, 1-正常工作, 2-关闭
  73141. int nMatchState; // 线圈匹配状态: 0-不匹配, 1-匹配, 2-不检测
  73142. int nPeripheralAddress; // 外设地址
  73143. int nPeripheralStateCode; // 外设故障码: 1-设备无响应, 2-灯珠故障, 3-未接频闪信号
  73144. int nLuminance; // 亮度, 1-20
  73145. int nSensibility; // 灵敏度, 1-255
  73146. float fPowerDissipation; // 功耗
  73147. BYTE byReserved[128]; // 保留字节
  73148. }NET_RS485_STEADY_LAMP_INFO;
  73149. ///@brief 摄像机外设状态
  73150. typedef struct tagNET_CAMERA_PERIPHERAL_INFO
  73151. {
  73152. int nVehicleDetectorNum; // 车检器个数
  73153. NET_VEHICLE_DETECTOR_INFO stuVehicleDetectors[MAX_CAMERA_PERIPHERAL_NUM]; // 车检器信息
  73154. int nSignalDetectorNum; // 信号检测器个数
  73155. NET_SIGNAL_DETECTOR_INFO stuSignalDetectors[MAX_CAMERA_PERIPHERAL_NUM]; // 信号检测器信息
  73156. int nStroboscopicLampNum; // 频闪灯个数
  73157. NET_STROBOSCOPIC_LAMP_INFO stuStroboscopicLamps[MAX_CAMERA_PERIPHERAL_NUM]; // 频闪灯信息
  73158. int nFlashLampNum; // 爆闪灯个数
  73159. NET_FLASH_LAMP_INFO stuFlashLamps[MAX_CAMERA_PERIPHERAL_NUM]; // 爆闪灯信息
  73160. int nRS485StroboscopicLampNum; // RS485 频闪灯个数
  73161. NET_RS485_STROBOSCOPIC_LAMP_INFO stuRS485StroboscopicLamps[MAX_CAMERA_PERIPHERAL_NUM]; // RS485 频闪灯信息
  73162. int nRS485FlashLampNum; // RS485 爆闪灯个数
  73163. NET_RS485_FLASH_LAMP_INFO stuRS485FlashLamps[MAX_CAMERA_PERIPHERAL_NUM]; // RS485 爆闪灯信息
  73164. int nRS485SteadyLampNum; // RS485 常亮灯个数
  73165. NET_RS485_STEADY_LAMP_INFO stuRS485SteadyLamps[MAX_CAMERA_PERIPHERAL_NUM]; // RS485 常亮灯信息
  73166. BYTE byReserved[128]; // 保留字节
  73167. }NET_CAMERA_PERIPHERAL_INFO;
  73168. ///@brief 设备运行状态回调信息
  73169. typedef struct tagNET_REMOTECAMERA_NOTIFY_INFO
  73170. {
  73171. int nChannelID; // 相机通道号
  73172. NET_WORKSTATE stuNative; // 摄像机状态
  73173. NET_CAMERA_PERIPHERAL_INFO stuPeripherals; // 摄像机所有外设信息
  73174. BYTE byReserved[128]; // 保留字节
  73175. }NET_REMOTECAMERA_NOTIFY_INFO;
  73176. ///@brief 设备运行状态回调函数, lAttachHandle 为 CLIENT_AttachRemoteCameraState 返回的结果
  73177. typedef void (CALLBACK *fRemoteCameraStateCallBack)(LLONG lAttachHandle, NET_REMOTECAMERA_NOTIFY_INFO* pstuState, DWORD dwStateSize, LDWORD dwUser);
  73178. ///@brief CLIENT_AttachRemoteCameraState 入参
  73179. typedef struct tagNET_IN_REMOTECAMERA_ATTACH_INFO
  73180. {
  73181. DWORD dwSize; // 结构体大小
  73182. fRemoteCameraStateCallBack cbNotify; // 回调函数
  73183. LDWORD dwUser; // 用户信息
  73184. }NET_IN_REMOTECAMERA_ATTACH_INFO;
  73185. ///@brief CLIENT_AttachRemoteCameraState 出参
  73186. typedef struct tagNET_OUT_REMOTECAMERA_ATTACH_INFO
  73187. {
  73188. DWORD dwSize; // 结构体大小
  73189. }NET_OUT_REMOTECAMERA_ATTACH_INFO;
  73190. ///@brief 订阅相机设备状态,pInParam与pOutParam内存由用户申请释放
  73191. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRemoteCameraState(LLONG lLoginID, const NET_IN_REMOTECAMERA_ATTACH_INFO *pInParam, NET_OUT_REMOTECAMERA_ATTACH_INFO *pOutParam, int nWaitTime);
  73192. ///@brief 取消订阅相机设备状态
  73193. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRemoteCameraState(LLONG lAttachHandle);
  73194. ///@brief 码流类型
  73195. typedef enum tagEM_STREAM_TYPE
  73196. {
  73197. EM_STREAM_TYPE_UNKNOWN, // 未知状态
  73198. EM_STREAM_TYPE_MAIN, // 主码流
  73199. EM_STREAM_TYPE_EXTRA1, // 辅码流1
  73200. EM_STREAM_TYPE_EXTRA2, // 辅码流2
  73201. EM_STREAM_TYPE_EXTRA3, // 辅码流3
  73202. EM_STREAM_TYPE_EXTRAALL, // 所有辅码流
  73203. }EM_STREAM_TYPE;
  73204. ///@brief 向客户端发送录像文件回调信息
  73205. typedef struct tagNET_RECORDMANAGER_NOTIFY_INFO
  73206. {
  73207. int nChannelID; // 通道号
  73208. EM_STREAM_TYPE emStreamType; // 码流类型
  73209. BOOL bState; // 是否在录像
  73210. BYTE byReserved[128]; // 保留字节
  73211. }NET_RECORDMANAGER_NOTIFY_INFO;
  73212. ///@brief 向客户端发送录像文件回调函数, lAttachHandle 为 CLIENT_AttachRecordManagerState 返回的结果
  73213. typedef void (CALLBACK *fRecordManagerStateCallBack)(LLONG lAttachHandle, NET_RECORDMANAGER_NOTIFY_INFO* pstuState, DWORD dwStateSize, LDWORD dwUser);
  73214. ///@brief CLIENT_AttachRecordManagerState 入参
  73215. typedef struct tagNET_IN_RECORDMANAGER_ATTACH_INFO
  73216. {
  73217. DWORD dwSize; // 结构体大小
  73218. fRecordManagerStateCallBack cbNotify; // 回调函数
  73219. LDWORD dwUser; // 用户信息
  73220. }NET_IN_RECORDMANAGER_ATTACH_INFO;
  73221. ///@brief CLIENT_AttachRecordManagerState 出参
  73222. typedef struct tagNET_OUT_RECORDMANAGER_ATTACH_INFO
  73223. {
  73224. DWORD dwSize; // 结构体大小
  73225. }NET_OUT_RECORDMANAGER_ATTACH_INFO;
  73226. ///@brief 订阅录像状态变化,pInParam与pOutParam内存由用户申请释放
  73227. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRecordManagerState(LLONG lLoginID, const NET_IN_RECORDMANAGER_ATTACH_INFO *pInParam, NET_OUT_RECORDMANAGER_ATTACH_INFO *pOutParam, int nWaitTime);
  73228. ///@brief 取消订阅录像状态变化
  73229. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRecordManagerState(LLONG lAttachHandle);
  73230. ///@brief 巡更状态
  73231. typedef enum tagNET_EM_PATROL_STATUS
  73232. {
  73233. NET_EM_PATROL_STATUS_UNKNOWN, // 未知状态
  73234. NET_EM_PATROL_STATUS_BEGIN, // 巡更开始
  73235. NET_EM_PATROL_STATUS_END, // 巡更结束
  73236. NET_EM_PATROL_STATUS_FAIL, // 巡更失败
  73237. }NET_EM_PATROL_STATUS;
  73238. ///@brief CLIENT_SendNotifyToDev 入参 (对应枚举 NET_EM_NOTIFY_PATROL_STATUS)
  73239. typedef struct tagNET_IN_PATROL_STATUS_INFO
  73240. {
  73241. DWORD dwSize; // 结构体大小
  73242. NET_EM_PATROL_STATUS emPatrolStatus; // 巡更状态
  73243. }NET_IN_PATROL_STATUS_INFO;
  73244. ///@brief CLIENT_SendNotifyToDev 出参 (对应枚举 NET_EM_NOTIFY_PATROL_STATUS)
  73245. typedef struct tagNET_OUT_PATROL_STATUS_INFO
  73246. {
  73247. DWORD dwSize; // 结构体大小
  73248. }NET_OUT_PATROL_STATUS_INFO;
  73249. ///@brief 发送的通知类型,对应CLIENT_SendNotifyToDev接口
  73250. typedef enum tagNET_EM_NOTIFY_TYPE
  73251. {
  73252. NET_EM_NOTIFY_PATROL_STATUS = 1, // 发送巡更通知 (对应结构体 NET_IN_PATROL_STATUS_INFO, NET_OUT_PATROL_STATUS_INFO)
  73253. }NET_EM_NOTIFY_TYPE;
  73254. ///@brief 下发通知到设备 接口, 以emNotifyType来区分下发的通知类型, pInParam 和 pOutParam 都由用户来分配和释放,大小参照emNotifyType对应结构体
  73255. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SendNotifyToDev(LLONG lLoginID, NET_EM_NOTIFY_TYPE emNotifyType, const void* pInParam, void* pOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT );
  73256. ///@brief 热度图原始数据信息
  73257. typedef struct tagNET_RAWSTREAM_NOTIFY_INFO
  73258. {
  73259. int nWidth; // 图片宽度
  73260. int nHeight; // 图片高度
  73261. NET_TIME stuStartTime; // 开始时间
  73262. NET_TIME stuEndTime; // 结束时间
  73263. char* pStream; // 图片数据
  73264. int nLength; // 图片数据长度
  73265. BYTE byReserved[512]; // 保留字节
  73266. }NET_RAWSTREAM_NOTIFY_INFO;
  73267. ///@brief 热度图原始数据回调函数, lAttachHandle 为 CLIENT_AttachHeatMapRawStream 返回的结果
  73268. typedef void (CALLBACK *fRawStreamCallBack)(LLONG lAttachHandle, NET_RAWSTREAM_NOTIFY_INFO* pBuf, DWORD dwBufLen, LDWORD dwUser);
  73269. ///@brief CLIENT_AttachHeatMapRawStream 入参
  73270. typedef struct tagNET_IN_RAWSTREAM_ATTACH_INFO
  73271. {
  73272. DWORD dwSize; // 结构体大小
  73273. fRawStreamCallBack cbNotify; // 回调函数
  73274. LDWORD dwUser; // 用户信息
  73275. int nChannel; // 通道号
  73276. }NET_IN_RAWSTREAM_ATTACH_INFO;
  73277. ///@brief CLIENT_AttachHeatMapRawStream 出参
  73278. typedef struct tagNET_OUT_RAWSTREAM_ATTACH_INFO
  73279. {
  73280. DWORD dwSize; // 结构体大小
  73281. }NET_OUT_RAWSTREAM_ATTACH_INFO;
  73282. ///@brief 热度图灰度数据
  73283. typedef struct tagNET_CB_HEATMAP_GRAY_INFO
  73284. {
  73285. UINT nWidth; // 图片宽度
  73286. UINT nHeight; // 图片高度
  73287. NET_TIME stuStartTime; // 开始时间
  73288. NET_TIME stuEndTime; // 结束时间
  73289. UINT nMax; // 最大值
  73290. UINT nMin; // 最小值
  73291. UINT nAverage; // 平均值
  73292. UINT nLength; // 灰度图数据长度
  73293. char* pGrayInfo; // 灰度图数据
  73294. BYTE byReserved[512]; // 保留字节
  73295. } NET_CB_HEATMAP_GRAY_INFO;
  73296. ///@brief 热度图灰度数据回调函数, lAttachHandle 为 CLIENT_AttachHeatMapGrayInfo 返回的结果
  73297. typedef void (CALLBACK *fHeatMapGrayCallBack)(LLONG lAttachHandle, NET_CB_HEATMAP_GRAY_INFO* pstGrayInfo, LDWORD dwUser);
  73298. ///@brief CLIENT_AttachHeatMapGrayInfo 接口输入参数
  73299. typedef struct tagNET_IN_GRAY_ATTACH_INFO
  73300. {
  73301. DWORD dwSize; // 结构体大小
  73302. UINT nChannelID; // 通道号
  73303. fHeatMapGrayCallBack cbHeatMapGray; // 热度图灰度数据回调函数
  73304. LDWORD dwUser; // 用户信息
  73305. } NET_IN_GRAY_ATTACH_INFO;
  73306. ///@brief CLIENT_AttachHeatMapGrayInfo接口输出参数
  73307. typedef struct tagNET_OUT_GRAY_ATTACH_INFO
  73308. {
  73309. DWORD dwSize; // 结构体大小
  73310. } NET_OUT_GRAY_ATTACH_INFO;
  73311. ///@brief 订阅热度图原始数据接口,pInParam与pOutParam内存由用户申请释放
  73312. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachHeatMapRawStream(LLONG lLoginID, const NET_IN_RAWSTREAM_ATTACH_INFO *pInParam, NET_OUT_RAWSTREAM_ATTACH_INFO *pOutParam, int nWaitTime);
  73313. ///@brief 退订热度图原始数据
  73314. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachHeatMapRawStream(LLONG lAttachHandle);
  73315. ///@brief 订阅热度图灰度数据接口,pInParam与pOutParam内存由用户申请释放
  73316. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachHeatMapGrayInfo(LLONG lLoginID, const NET_IN_GRAY_ATTACH_INFO *pInParam, NET_OUT_GRAY_ATTACH_INFO *pOutParam, int nWaitTime);
  73317. ///@brief 退订热度图灰度数据
  73318. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachHeatMapGrayInfo(LLONG lAttachHandle);
  73319. ///@brief 车牌信息
  73320. typedef struct tagNET_ANALYSERESULT
  73321. {
  73322. char szPlateNumber[64]; // 车牌号
  73323. NET_RECT stuRect; // 车牌包围盒坐标,绝对坐标
  73324. BYTE byReserved[128]; // 保留字节
  73325. }NET_ANALYSERESULT;
  73326. ///@brief CLIENT_SetIVSServerAnalyseResult 接口入参
  73327. typedef struct tagNET_IN_SET_ANALYSERESULT_INFO
  73328. {
  73329. DWORD dwSize; // 结构体大小
  73330. int nChannel; // 通道号 从0开始
  73331. int nAnalyseResultCount; // 车牌识别结果数量
  73332. NET_ANALYSERESULT stuAnalyseResult[MAX_PLATE_NUM]; // 车牌信息
  73333. unsigned int nFrameSequence; // 幀序号,用于和后端IVS识别确认,必填
  73334. unsigned int nPhysicalLane; // 物理车位号
  73335. }NET_IN_SET_ANALYSERESULT_INFO;
  73336. ///@brief CLIENT_SetIVSServerAnalyseResult 接口出参
  73337. typedef struct tagNET_OUT_SET_ANALYSERESULT_INFO
  73338. {
  73339. DWORD dwSize; // 结构体大小
  73340. }NET_OUT_SET_ANALYSERESULT_INFO;
  73341. ///@brief CLIENT_AttachEventRestore 接口输入参数
  73342. typedef struct tagNET_IN_ATTACH_EVENT_RESTORE
  73343. {
  73344. DWORD dwSize; //结构体大小
  73345. char szUuid[MAX_EVENT_RESTORE_UUID]; //客户端惟一标识
  73346. }NET_IN_ATTACH_EVENT_RESTORE;
  73347. ///@brief 算法服务器回传针对图片的识别结果,和EVENT_IVS_TRAFFIC_ANALYSE_PRESNAP事件配合使用,pInBuf与pOutBuf内存由用户申请释放
  73348. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetIVSServerAnalyseResult(LLONG lLoginID, const NET_IN_SET_ANALYSERESULT_INFO* pInBuf,NET_OUT_SET_ANALYSERESULT_INFO* pOutBuf,int nWaitTime);
  73349. ///@brief 获取防护舱门锁状态接口,pInBuf与pOutBuf内存由用户申请释放
  73350. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCapsuleLockState(LLONG lLoginID, const NET_IN_QUERY_CAPSULE_LOCKSTATE* pInBuf,NET_OUT_QUERY_CAPSULE_LOCKSTATE* pOutBuf, int nWaitTime);
  73351. ///@brief 获取防护舱内人数,pInBuf与pOutBuf内存由用户申请释放
  73352. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCapsuleHumanNum(LLONG lLoginID, const NET_IN_QUERY_CAPSULE_HUMANNUM* pInBuf, NET_OUT_QUERY_CAPSULE_HUMANNUM* pOutBuf, int nWaitTime);
  73353. ///@brief 设置课程录像模式,pInBuf与pOutBuf内存由用户申请释放
  73354. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetCourseRecordMode(LLONG lLoginID, const NET_IN_SET_COURSE_RECORD_MODE* pInBuf, NET_OUT_SET_COURSE_RECORD_MODE* pOutBuf, int nWaitTime);
  73355. ///@brief 获取课程录像模式,pInBuf与pOutBuf内存由用户申请释放
  73356. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCourseRecordMode(LLONG lLoginID, const NET_IN_GET_COURSE_RECORD_MODE* pInBuf, NET_OUT_GET_COURSE_RECORD_MODE* pOutBuf, int nWaitTime);
  73357. ///@brief 逻辑通道号
  73358. typedef enum tagNET_EM_LOGIC_CHANNEL
  73359. {
  73360. NET_EM_LOGIC_CHANNEL_INVALID = -1, // 无效
  73361. NET_EM_LOGIC_CHANNEL_COMPOSITE, // 视频组合通道号
  73362. NET_EM_LOGIC_CHANNEL_PPT, // PPT显示逻辑通道号
  73363. NET_EM_LOGIC_CHANNEL_BLACKBOARD, // 板书特写逻辑通道号
  73364. NET_EM_LOGIC_CHANNEL_STUDENTFEATURE, // 学生特写逻辑通道号
  73365. NET_EM_LOGIC_CHANNEL_STUDENTFULLVIEW, // 学生全景逻辑通道号
  73366. NET_EM_LOGIC_CHANNEL_TEACHERFEATURE, // 教师特写逻辑通道号
  73367. NET_EM_LOGIC_CHANNEL_TEACHERFULLVIEW, // 教师全景逻辑通道号
  73368. NET_EM_LOGIC_CHANNEL_TEACHERDETECT, // 教师检测逻辑通道号
  73369. NET_EM_LOGIC_CHANNEL_BLACKBOARDDETECT, // 板书检测逻辑通道号
  73370. NET_EM_LOGIC_CHANNEL_BLACKBOARD1, // 板书特写1逻辑通道号
  73371. NET_EM_LOGIC_CHANNEL_BLACKBOARDDETECT1, // 板书检测1逻辑通道号
  73372. NET_EM_LOGIC_CHANNEL_VISUALPRESENTER, // 展台显示逻辑通道号
  73373. NET_EM_LOGIC_CHANNEL_VIDEOSURVEILLANCE, // 视频监控逻辑通道号
  73374. NET_EM_LOGIC_CHANNEL_VIDEOCONFERENCE, // 互动会议逻辑通道号
  73375. NET_EM_LOGIC_CHANNEL_VIDEO_PRESENTATION, // 互动演示逻辑通道
  73376. }NET_EM_LOGIC_CHANNEL;
  73377. ///@brief 通道信息
  73378. typedef struct tagNET_LOGIC_CHANNEL_INFO
  73379. {
  73380. int nRoomID; // 教室ID号
  73381. NET_EM_LOGIC_CHANNEL emLogicChannel; // 逻辑通道号
  73382. BYTE byReserved[32]; // 保留字节
  73383. }NET_LOGIC_CHANNEL_INFO;
  73384. ///@brief 获取真实通道号入参,对应接口 CLIENT_GetRealPreviewChannel
  73385. typedef struct tagNET_IN_GET_REAL_PREVIEW_CHANNEL
  73386. {
  73387. DWORD dwSize;
  73388. int nChannelCount; // 需要获取的通道数
  73389. NET_LOGIC_CHANNEL_INFO stuChannelInfo[MAX_PREVIEW_CHANNEL_NUM]; // 逻辑通道信息,下标为将要获取的真实通道数
  73390. }NET_IN_GET_REAL_PREVIEW_CHANNEL;
  73391. ///@brief 获取真实通道号出参,对应接口 CLIENT_GetRealPreviewChannel
  73392. typedef struct tagNET_OUT_GET_REAL_PREVIEW_CHANNEL
  73393. {
  73394. DWORD dwSize;
  73395. int nChannelNum; // 通道数量
  73396. int nChannel[MAX_PREVIEW_CHANNEL_NUM]; // 通道号
  73397. }NET_OUT_GET_REAL_PREVIEW_CHANNEL;
  73398. ///@brief 获取真实预览通道号,pInBuf与pOutBuf内存由用户申请释放
  73399. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRealPreviewChannel(LLONG lLoginID, const NET_IN_GET_REAL_PREVIEW_CHANNEL* pInBuf, NET_OUT_GET_REAL_PREVIEW_CHANNEL* pOutBuf, int nWaitTime);
  73400. ///@brief 获取默认真实通道号入参,对应接口 CLIENT_GetDefaultRealChannel
  73401. typedef struct tagNET_IN_GET_DEFAULT_REAL_CHANNEL
  73402. {
  73403. DWORD dwSize;
  73404. int nChannelCount; // 需要获取的通道数
  73405. NET_LOGIC_CHANNEL_INFO stuChannelInfo[MAX_PREVIEW_CHANNEL_NUM]; // 逻辑通道信息,下标为将要获取的真实通道数
  73406. }NET_IN_GET_DEFAULT_REAL_CHANNEL;
  73407. ///@brief 获取默认真实通道号出参,对应接口 CLIENT_GetDefaultRealChannel
  73408. typedef struct tagNET_OUT_GET_DEFAULT_REAL_CHANNEL
  73409. {
  73410. DWORD dwSize;
  73411. int nChannelNum; // 通道数量
  73412. int nChannel[MAX_PREVIEW_CHANNEL_NUM]; // 通道号
  73413. }NET_OUT_GET_DEFAULT_REAL_CHANNEL;
  73414. ///@brief 获取录播主机默认真实通道号,pInBuf与pOutBuf内存由用户申请释放
  73415. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDefaultRealChannel(LLONG lLoginID, const NET_IN_GET_DEFAULT_REAL_CHANNEL* pInBuf, NET_OUT_GET_DEFAULT_REAL_CHANNEL* pOutBuf, int nWaitTime);
  73416. ///@brief 获取录播主机默认真实通道号入参,对应接口 CLIENT_GetLogicChannel
  73417. typedef struct tagNET_IN_GET_COURSE_LOGIC_CHANNEL
  73418. {
  73419. DWORD dwSize;
  73420. int nChannelNum; // 通道数量
  73421. int nChannel[MAX_PREVIEW_CHANNEL_NUM]; // 通道号
  73422. }NET_IN_GET_COURSE_LOGIC_CHANNEL;
  73423. ///@brief 获取录播主机默认真实通道号出参,对应接口 CLIENT_GetLogicChannel
  73424. typedef struct tagNET_OUT_GET_COURSE_LOGIC_CHANNEL
  73425. {
  73426. DWORD dwSize;
  73427. int nChannelCount; // 获取到的逻辑通道数
  73428. NET_LOGIC_CHANNEL_INFO stuChannelInfo[MAX_PREVIEW_CHANNEL_NUM]; // 逻辑通道信息,下标为将要获取的真实通道数
  73429. }NET_OUT_GET_COURSE_LOGIC_CHANNEL;
  73430. ///@brief 获取录播主机逻辑通道号,pInBuf与pOutBuf内存由用户申请释放
  73431. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetLogicChannel(LLONG lLoginID, const NET_IN_GET_COURSE_LOGIC_CHANNEL* pInBuf,NET_OUT_GET_COURSE_LOGIC_CHANNEL* pOutBuf, int nWaitTime);
  73432. ///@brief 设置逻辑通道号和真实通道号的绑定关系入参 ,对应接口CLIENT_SetBlindRealChannel
  73433. typedef struct tagNET_IN_SET_BLIND_REAL_CHANNEL
  73434. {
  73435. DWORD dwSize;
  73436. int nChannelNum; // 通道数量
  73437. int nChannel[MAX_PREVIEW_CHANNEL_NUM]; // 通道号
  73438. NET_LOGIC_CHANNEL_INFO stuChannelInfo[MAX_PREVIEW_CHANNEL_NUM]; // 逻辑通道信息,下标为将要设置的真实通道数
  73439. }NET_IN_SET_BLIND_REAL_CHANNEL;
  73440. ///@brief 设置逻辑通道号和真实通道号的绑定关系出参 ,对应接口CLIENT_SetBlindRealChannel
  73441. typedef struct tagNET_OUT_SET_BLIND_REAL_CHANNEL
  73442. {
  73443. DWORD dwSize;
  73444. }NET_OUT_SET_BLIND_REAL_CHANNEL;
  73445. ///@brief 设置逻辑通道号和真实通道号的绑定关系,pInBuf与pOutBuf内存由用户申请释放
  73446. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetBlindRealChannel(LLONG lLoginID, const NET_IN_SET_BLIND_REAL_CHANNEL* pInBuf,NET_OUT_SET_BLIND_REAL_CHANNEL* pOutBuf, int nWaitTime);
  73447. ///@brief 获取录播主机通道输入媒体介质入参 ,对应接口CLIENT_GetInputChannelMedia
  73448. typedef struct tagNET_IN_GET_INPUT_CHANNEL_MEDIA
  73449. {
  73450. DWORD dwSize;
  73451. int nChannelNum; // 通道数量
  73452. int nChannel[MAX_PREVIEW_CHANNEL_NUM]; // 通道号
  73453. }NET_IN_GET_INPUT_CHANNEL_MEDIA;
  73454. ///@brief 输入媒体介质
  73455. typedef enum tagNET_ENUM_INPUT_CHANNEL_MEDIA
  73456. {
  73457. NET_ENUM_INPUT_MEDIA_UNKNOWN, // 未知
  73458. NET_ENUM_INPUT_MEDIA_VGA, // VGA
  73459. NET_ENUM_INPUT_MEDIA_HDMI, // HDMI
  73460. }NET_ENUM_INPUT_CHANNEL_MEDIA;
  73461. ///@brief 获取录播主机通道输入媒体介质出参 ,对应接口CLIENT_GetInputChannelMedia
  73462. typedef struct tagNET_OUT_GET_INPUT_CHANNEL_MEDIA
  73463. {
  73464. DWORD dwSize;
  73465. int nChannelNum; // 通道数量
  73466. NET_ENUM_INPUT_CHANNEL_MEDIA emInputMedia[MAX_PREVIEW_CHANNEL_NUM]; // 输入媒体介质
  73467. }NET_OUT_GET_INPUT_CHANNEL_MEDIA;
  73468. ///@brief 获取录播主机通道输入媒体介质,pInBuf与pOutBuf内存由用户申请释放
  73469. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetInputChannelMedia(LLONG lLoginID, const NET_IN_GET_INPUT_CHANNEL_MEDIA* pInBuf,NET_OUT_GET_INPUT_CHANNEL_MEDIA* pOutBuf, int nWaitTime);
  73470. ///@brief 订阅事件重传,pInParam内存由用户申请释放
  73471. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachEventRestore(LLONG lLoginID, const NET_IN_ATTACH_EVENT_RESTORE *pInParam, int nWaitTime);
  73472. ///@brief 停止订阅事件重传,pInParam内存由用户申请释放
  73473. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachEventRestore(LLONG lAttachHandle);
  73474. ///@brief CLIENT_GetLaserDistance 接口入参
  73475. typedef struct tagNET_IN_GET_LASER_DISTANCE
  73476. {
  73477. DWORD dwSize; // 结构体大小
  73478. int nChannel; // 通道号,从0开始
  73479. }NET_IN_GET_LASER_DISTANCE;
  73480. ///@brief CLIENT_GetLaserDistance 接口出参
  73481. typedef struct tagNET_OUT_GET_LASER_DISTANCE
  73482. {
  73483. DWORD dwSize; // 结构体大小
  73484. UINT unDistance; // 目标距离 单位:米
  73485. }NET_OUT_GET_LASER_DISTANCE;
  73486. ///@brief 获取画面中心位置目标的距离,pInBuf与pOutBuf内存由用户申请释放
  73487. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetLaserDistance(LLONG lLoginID, const NET_IN_GET_LASER_DISTANCE* pInBuf, NET_OUT_GET_LASER_DISTANCE* pOutBuf, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT );
  73488. ///@brief CLIENT_GetAtomsphData接口入参
  73489. typedef struct tagNET_IN_GET_ATOMSPHDATA
  73490. {
  73491. DWORD dwSize;
  73492. }NET_IN_GET_ATOMSPHDATA;
  73493. ///@brief CLIENT_GetAtomsphData接口出参
  73494. typedef struct tagNET_OUT_GET_ATOMSPHDATA
  73495. {
  73496. DWORD dwSize;
  73497. float fWindSpeed; // 风速,单位m/s
  73498. float fWindDirection; // 风向,单位度
  73499. float fHumidity; // 湿度,单位%
  73500. float fTemperture; // 温度,单位摄氏度
  73501. float fAirPressure; // 气压,单位百帕
  73502. float fSunBathe; // 光照,单位w/m2
  73503. }NET_OUT_GET_ATOMSPHDATA;
  73504. ///@brief 获取气象信息,pInBuf与pOutBuf内存由用户申请释放
  73505. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAtomsphData(LLONG lLoginID, const NET_IN_GET_ATOMSPHDATA* pInBuf, NET_OUT_GET_ATOMSPHDATA* pOutBuf,int nWaitTime);
  73506. ///@brief 开启/关闭指定通道录像入参
  73507. typedef struct tagNET_IN_SET_COURSE_RECORD_STATE
  73508. {
  73509. DWORD dwSize; // 该结构体大小
  73510. int nChannel; // 通道号
  73511. int nAction; // 0:开启, 1:关闭
  73512. }NET_IN_SET_COURSE_RECORD_STATE;
  73513. ///@brief 开启/关闭指定通道录像出参
  73514. typedef struct tagNET_OUT_SET_COURSE_RECORD_STATE
  73515. {
  73516. DWORD dwSize; // 该结构体大小
  73517. }NET_OUT_SET_COURSE_RECORD_STATE;
  73518. ///@brief 开启/关闭指定通道录像,pInBuf与pOutBuf内存由用户申请释放
  73519. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetCourseRecordState(LLONG lLoginID, const NET_IN_SET_COURSE_RECORD_STATE *pInBuf, NET_OUT_SET_COURSE_RECORD_STATE *pOutBuf, int nWaitTime);
  73520. ///@brief 课程录像锁定类型
  73521. typedef enum tagEM_COURSE_LOCK_TYPE
  73522. {
  73523. EM_COURSE_LOCK_TYPE_UNKNOWN = -1, // 未知
  73524. EM_COURSE_LOCK_TYPE_ALL, // 全部类型
  73525. EM_COURSE_LOCK_TYPE_NON_LOCKING, // 非锁定类型
  73526. EM_COURSE_LOCK_TYPE_LOCK, // 锁定类型
  73527. }EM_COURSE_LOCK_TYPE;
  73528. ///@brief 课程录像类型
  73529. typedef enum tagEM_COURSE_RECORD_TYPE
  73530. {
  73531. EM_COURSE_RECORD_TYPE_UNKNOWN = -1, // 未知
  73532. EM_COURSE_RECORD_TYPE_ALL, // 全部录像类型
  73533. EM_COURSE_RECORD_TYPE_GUIDED_BROADCAST, // 导播录像类型
  73534. EM_COURSE_RECORD_TYPE_GUIDED_INTERACTION,// 互动录像类型
  73535. }EM_COURSE_RECORD_TYPE;
  73536. ///@brief 开始查询课程视频信息入参
  73537. typedef struct tagNET_IN_QUERY_COURSEMEDIA_FILEOPEN
  73538. {
  73539. DWORD dwSize; // 该结构体大小
  73540. NET_TIME stuStartTime; // 查询开始时间
  73541. NET_TIME stuEndTime; // 查询结束时间
  73542. char szKeyWord[DH_COMMON_STRING_128]; // 查询关键字
  73543. EM_COURSE_LOCK_TYPE emCourseLockType; // 查询课程锁定类型
  73544. EM_COURSE_RECORD_TYPE emCourseRecordType; // 查询课程录像类型
  73545. }NET_IN_QUERY_COURSEMEDIA_FILEOPEN;
  73546. ///@brief 开始查询课程视频信息出参
  73547. typedef struct tagNET_OUT_QUERY_COURSEMEDIA_FILEOPEN
  73548. {
  73549. DWORD dwSize; // 该结构体大小
  73550. UINT ntotalNum; // 查询到的总个数
  73551. UINT nfindID; // 查询ID号
  73552. }NET_OUT_QUERY_COURSEMEDIA_FILEOPEN;
  73553. ///@brief 开始查询课程视频信息,pInBuf与pOutBuf内存由用户申请释放
  73554. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OpenQueryCourseMediaFile(LLONG lLoginID, const NET_IN_QUERY_COURSEMEDIA_FILEOPEN *pInBuf, NET_OUT_QUERY_COURSEMEDIA_FILEOPEN *pOutBuf, int nWaitTime);
  73555. ///@brief 查询课程视频信息入参
  73556. typedef struct tagNET_IN_QUERY_COURSEMEDIA_FILE
  73557. {
  73558. DWORD dwSize; // 该结构体大小
  73559. UINT nfindID; // 查询ID号
  73560. int nOffset; // 开始查询偏移
  73561. int nCount; // 需要查询的个数
  73562. }NET_IN_QUERY_COURSEMEDIA_FILE;
  73563. ///@brief 课程录像压缩类型
  73564. typedef enum tagEM_COURSE_RECORD_COMPRESSION_TYPE
  73565. {
  73566. EM_COURSE_RECORD_COMPRESSION_TYPE_UNKNOWN, // 未知
  73567. EM_COURSE_RECORD_COMPRESSION_TYPE_H264, // H.264 默认值
  73568. EM_COURSE_RECORD_COMPRESSION_TYPE_H265, // H.265
  73569. }EM_COURSE_RECORD_COMPRESSION_TYPE;
  73570. ///@brief 录像文件信息
  73571. typedef struct tagNET_RECORD_INFO
  73572. {
  73573. int nRealChannel; // 真实通道号
  73574. NET_TIME stuStartTime; // 查询开始时间
  73575. NET_TIME stuEndTime; // 查询结束时间
  73576. UINT nFileLen; // 通道录像文件总长度低32位,0表示此通道没录像
  73577. UINT nFileLenEx; // 通道录像文件总长度高32位,与FileLen一起表示录像长度
  73578. UINT nTime; // 录像时长
  73579. UINT nFileType; // 文件类型,0:裁减文件,1:原始文件
  73580. EM_COURSE_RECORD_COMPRESSION_TYPE emCompression; // 课程录像压缩类型
  73581. BYTE byReserved[60]; // 保留字节
  73582. }NET_RECORD_INFO;
  73583. ///@brief 课程信息
  73584. typedef struct tagNET_COURSE_INFO
  73585. {
  73586. char szCourseName[DH_COMMON_STRING_64]; // 课程名称
  73587. char szTeacherName[DH_COMMON_STRING_64]; // 教师姓名
  73588. char szIntroduction[DH_COMMON_STRING_128]; // 视频简介
  73589. BYTE byReserved[64]; // 保留字节
  73590. }NET_COURSE_INFO;
  73591. ///@brief 视频信息
  73592. typedef struct tagNET_COURSEMEDIA_FILE_INFO
  73593. {
  73594. int nID; // 视频信息ID,-1表示无此记录
  73595. NET_COURSE_INFO stuCourseInfo; // 课程信息
  73596. int nChannelNum; // 通道数量
  73597. int nRecordNum[64]; // 对应通道的录像分段数
  73598. NET_RECORD_INFO stuRecordInfo[64][16]; // 录像信息,第一维下标为映射通道号,第二维为录像分段数
  73599. BYTE byReserved[128]; // 保留字节
  73600. }NET_COURSEMEDIA_FILE_INFO;
  73601. ///@brief 查询课程视频信息出参
  73602. typedef struct tagNET_OUT_QUERY_COURSEMEDIA_FILE
  73603. {
  73604. DWORD dwSize; // 该结构体大小
  73605. int nCountResult; // 查询到的个数
  73606. NET_COURSEMEDIA_FILE_INFO stuCourseMediaFile[64]; // 视频信息
  73607. }NET_OUT_QUERY_COURSEMEDIA_FILE;
  73608. ///@brief 查询课程视频信息,pInBuf与pOutBuf内存由用户申请释放
  73609. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoQueryCourseMediaFile(LLONG lLoginID, const NET_IN_QUERY_COURSEMEDIA_FILE *pInBuf, NET_OUT_QUERY_COURSEMEDIA_FILE *pOutBuf, int nWaitTime);
  73610. ///@brief 关闭课程视频查询入参
  73611. typedef struct tagNET_IN_QUERY_COURSEMEDIA_FILECLOSE
  73612. {
  73613. DWORD dwSize; // 该结构体大小
  73614. UINT nFindID; // 查询ID号
  73615. }NET_IN_QUERY_COURSEMEDIA_FILECLOSE;
  73616. ///@brief 关闭课程视频查询出参
  73617. typedef struct tagNET_OUT_QUERY_COURSEMEDIA_FILECLOSE
  73618. {
  73619. DWORD dwSize; // 该结构体大小
  73620. }NET_OUT_QUERY_COURSEMEDIA_FILECLOSE;
  73621. ///@brief 关闭课程视频查询,pInBuf与pOutBuf内存由用户申请释放
  73622. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloseQueryCourseMediaFile(LLONG lLoginID, const NET_IN_QUERY_COURSEMEDIA_FILECLOSE *pInBuf, NET_OUT_QUERY_COURSEMEDIA_FILECLOSE *pOutBuf, int nWaitTime);
  73623. ///@brief 文件传输状态,文件分段传输时区分开始和结束
  73624. typedef enum tagNET_EM_AIO_FILE_STATUS
  73625. {
  73626. NET_EM_AIO_FILE_STATUS_UNKNOWN,
  73627. NET_EM_AIO_FILE_STATUS_BEGIN, // Begin, 标识上传开始,不带数据
  73628. NET_EM_AIO_FILE_STATUS_UPLOADING, // Uploading
  73629. NET_EM_AIO_FILE_STATUS_END, // End, 标识上传结束,不带数据
  73630. }NET_EM_AIO_FILE_STATUS;
  73631. ///@brief 文件类型
  73632. typedef enum tagNET_EM_AIO_FILE_TYPE
  73633. {
  73634. NET_EM_AIO_FILE_TYPE_UNKNOWN,
  73635. NET_EM_AIO_FILE_TYPE_UPSYSTEM, // "upSystem":系统升级包
  73636. NET_EM_AIO_FILE_TYPE_UPAPP, // "upApp":app升级包End
  73637. }NET_EM_AIO_FILE_TYPE;
  73638. ///@brief CLIENT_UploadAIOFile 接口输入参数(上传文件到设备)
  73639. typedef struct tagNET_IN_UPLOAD_AIO_FILE
  73640. {
  73641. DWORD dwSize;
  73642. char* pszFileSrc; // 源文件路径
  73643. char* pszFileDst; // 目标文件路径
  73644. char* pszFolderDst; // 目标文件夹路径:可为NULL, NULL时设备使用默认路径
  73645. unsigned int nPacketLen; // 文件分包大小(字节): 0表示不分包
  73646. NET_EM_AIO_FILE_TYPE emType; // 文件类型
  73647. } NET_IN_UPLOAD_AIO_FILE;
  73648. ///@brief CLIENT_UploadAIOFile 接口输出参数(上传文件到设备)
  73649. typedef struct tagNET_OUT_UPLOAD_AIO_FILE
  73650. {
  73651. DWORD dwSize;
  73652. } NET_OUT_UPLOAD_AIO_FILE;
  73653. ///@brief fAttachAIOFileprocCB 参数
  73654. typedef struct tagNET_CB_AIOFILEPROC
  73655. {
  73656. DWORD dwSize;
  73657. NET_EM_AIO_FILE_STATUS emStatus; // 文件传输状态, 文件分段传输时区分开始和结束
  73658. NET_EM_AIO_FILE_TYPE emType; // 文件类型
  73659. unsigned int dwLength; // 文件大小, 单位: 字节
  73660. char* pbFileBuf; // 文件缓冲区
  73661. DWORD dwBufSize; // 文件缓冲区大小
  73662. }NET_CB_AIOFILEPROC;
  73663. ///@brief 注册升级文件处理回调函数原形,lAttachHandle是CLIENT_attachAIOFileProc返回值, 每次1条,pBuf->dwSize == nBufLen
  73664. typedef void (CALLBACK *fAttachAIOFileprocCB) (LLONG lAttachHandle, NET_CB_AIOFILEPROC* pBuf, int nBufLen, LDWORD dwUser);
  73665. ///@brief CLIENT_attachAIOFileProc()输入参数
  73666. typedef struct tagNET_IN_ATTACH_AIO
  73667. {
  73668. DWORD dwSize;
  73669. fAttachAIOFileprocCB cbNotify; // 回调函数
  73670. LDWORD dwUser; // 用户数据
  73671. }NET_IN_ATTACH_AIO;
  73672. ///@brief CLIENT_attachAIOFileProc 输出参数
  73673. typedef struct tagNET_OUT_ATTACH_AIO
  73674. {
  73675. DWORD dwSize;
  73676. }NET_OUT_ATTACH_AIO;
  73677. ///@brief 广告播放
  73678. typedef enum tagNET_EM_ADVERT_ACTION
  73679. {
  73680. NET_EM_ADVERT_ACTION_UNKNOWN = 0,
  73681. NET_EM_ADVERT_ACTION_START, // start
  73682. NET_EM_ADVERT_ACTION_STOP, // stop
  73683. }NET_EM_ADVERT_ACTION;
  73684. ///@brief 广告位置
  73685. typedef enum tagNET_EM_ADVERT_POSITION
  73686. {
  73687. NET_EM_ADVERT_POSITION_UNKNOWN = 0,
  73688. NET_EM_ADVERT_POSITION_TOP, // top 顶部
  73689. NET_EM_ADVERT_POSITION_MIDDLE, // middle 中间
  73690. NET_EM_ADVERT_POSITION_BOTTOM, // bottom 底部
  73691. }NET_EM_ADVERT_POSITION;
  73692. ///@brief CLIENT_SetAdvert 接口输入参数(设置NVR广告)
  73693. typedef struct tagNET_IN_SET_ADVERT
  73694. {
  73695. DWORD dwSize;
  73696. NET_EM_ADVERT_ACTION emAction; // 广告播放
  73697. int nSpeed; // 广告滚动速度
  73698. NET_EM_ADVERT_POSITION emPosition; // 广告位置
  73699. } NET_IN_SET_ADVERT;
  73700. ///@brief CLIENT_SetAdvert 接口输出参数(设置NVR广告)
  73701. typedef struct tagNET_OUT_SET_ADVERT
  73702. {
  73703. DWORD dwSize;
  73704. } NET_OUT_SET_ADVERT;
  73705. ///@brief CLIENT_AIOScreen 接口输入参数(NVR截屏)
  73706. typedef struct tagNET_IN_AIO_SCREEN
  73707. {
  73708. DWORD dwSize;
  73709. } NET_IN_AIO_SCREEN;
  73710. ///@brief CLIENT_AIOScreen 接口输出参数(NVR截屏)
  73711. typedef struct tagNET_OUT_AIO_SCREEN
  73712. {
  73713. DWORD dwSize;
  73714. char szName[DH_COMMON_STRING_256]; // 截屏图片路径
  73715. } NET_OUT_AIO_SCREEN;
  73716. ///@brief CLIENT_AIOandroidAdb 接口输入参数(控制安卓adb开启或关闭)
  73717. typedef struct tagNET_IN_CONTROL_ANDROID_ADB
  73718. {
  73719. DWORD dwSize;
  73720. BOOL bEnable; // 是否开启adb
  73721. } NET_IN_CONTROL_ANDROID_ADB;
  73722. ///@brief CLIENT_AIOandroidAdb 接口输出参数(控制安卓adb开启或关闭)
  73723. typedef struct tagNET_OUT_CONTROL_ANDROID_ADB
  73724. {
  73725. DWORD dwSize;
  73726. } NET_OUT_CONTROL_ANDROID_ADB;
  73727. ///@brief 联动的布控组
  73728. typedef struct tagNET_CFG_LINKGROUP_INFO
  73729. {
  73730. BOOL bEnable; // 布控组是否启用
  73731. char szGroupID[64]; // 布控组ID
  73732. BYTE bySimilarity; // 相似度阈值
  73733. BYTE bReserved1[3]; // 字节对齐
  73734. char szColorName[32]; // 事件触发时绘制目标框的颜色
  73735. BOOL bShowTitle; // 事件触发时规则框上是否显示报警标题
  73736. BOOL bShowPlate; // 事件触发时是否显示比对面板
  73737. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  73738. BYTE bReserved[512]; // 保留字段
  73739. }NET_CFG_LINKGROUP_INFO;
  73740. ///@brief 陌生人布防模式
  73741. typedef struct tagNET_CFG_STRANGERMODE_INFO
  73742. {
  73743. BOOL bEnable; // 模式是否启用
  73744. char szColorHex[8]; // 事件触发时绘制目标框的颜色
  73745. BOOL bShowTitle; // 事件触发时规则框上是否显示报警标题
  73746. BOOL bShowPlate; // 事件触发时是否显示比对面板
  73747. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  73748. BYTE bReserved[512]; // 保留字段
  73749. }NET_CFG_STRANGERMODE_INFO;
  73750. ///@brief 校准框信息
  73751. typedef struct tagNET_CFG_CALIBRATEBOX_INFO
  73752. {
  73753. POINTCOORDINATE stuCenterPoint; // 校准框中心点坐标(点的坐标归一化到[0,8191]区间)
  73754. float fRatio; // 相对基准校准框的比率(比如1表示基准框大小,0.5表示基准框大小的一半)
  73755. }NET_CFG_CALIBRATEBOX_INFO;
  73756. ///@brief 物体尺寸
  73757. typedef struct tagNET_CFG_SIZE
  73758. {
  73759. union
  73760. {
  73761. float nWidth; // 宽
  73762. float nArea; // 面积
  73763. };
  73764. float nHeight; // 高
  73765. } NET_CFG_SIZE;
  73766. ///@brief 尺寸过滤器
  73767. typedef struct tagNET_CFG_SIZEFILTER_INFO
  73768. {
  73769. int nCalibrateBoxNum; // 校准框个数
  73770. NET_CFG_CALIBRATEBOX_INFO stuCalibrateBoxs[10]; // 校准框(远端近端标定模式下有效)
  73771. bool bMeasureModeEnable; // 计量方式参数是否有效
  73772. BYTE bMeasureMode; // 计量方式,0-像素,不需要远端、近端标定, 1-实际长度,单位:米, 2-远端近端标定后的像素
  73773. bool bFilterTypeEnable; // 过滤类型参数是否有效
  73774. /* ByArea,ByRatio仅作兼容,使用独立的ByArea和ByRatio选项代替 2012/03/06 */
  73775. BYTE bFilterType; // 过滤类型:0:"ByLength",1:"ByArea", 2"ByWidthHeight"
  73776. bool bFilterMinSizeEnable; // 物体最小尺寸参数是否有效
  73777. bool bFilterMaxSizeEnable; // 物体最大尺寸参数是否有效
  73778. bool abByArea;
  73779. bool abMinArea;
  73780. bool abMaxArea;
  73781. bool abMinAreaSize;
  73782. bool abMaxAreaSize;
  73783. bool bByArea; // 是否按面积过滤 通过能力ComplexSizeFilter判断是否可用
  73784. NET_CFG_SIZE stuFilterMinSize; // 物体最小尺寸 "ByLength"模式下表示宽高的尺寸,"ByArea"模式下宽表示面积,高无效(远端近端标定模式下表示基准框的宽高尺寸)。
  73785. NET_CFG_SIZE stuFilterMaxSize; // 物体最大尺寸 "ByLength"模式下表示宽高的尺寸,"ByArea"模式下宽表示面积,高无效(远端近端标定模式下表示基准框的宽高尺寸)。
  73786. float nMinArea; // 最小面积
  73787. float nMaxArea; // 最大面积
  73788. NET_CFG_SIZE stuMinAreaSize; // 最小面积矩形框尺寸 "计量方式"为"像素"时,表示最小面积矩形框的宽高尺寸;"计量方式"为"远端近端标定模式"时,表示基准框的最小宽高尺寸;
  73789. NET_CFG_SIZE stuMaxAreaSize; // 最大面积矩形框尺寸, 同上
  73790. bool abByRatio;
  73791. bool abMinRatio;
  73792. bool abMaxRatio;
  73793. bool abMinRatioSize;
  73794. bool abMaxRatioSize;
  73795. bool bByRatio; // 是否按宽高比过滤 通过能力ComplexSizeFilter判断是否可用
  73796. bool bReserved1[2];
  73797. double dMinRatio; // 最小宽高比
  73798. double dMaxRatio; // 最大宽高比
  73799. NET_CFG_SIZE stuMinRatioSize; // 最小宽高比矩形框尺寸,最小宽高比对应矩形框的宽高尺寸。
  73800. NET_CFG_SIZE stuMaxRatioSize; // 最大宽高比矩形框尺寸,同上
  73801. int nAreaCalibrateBoxNum; // 面积校准框个数
  73802. NET_CFG_CALIBRATEBOX_INFO stuAreaCalibrateBoxs[10]; // 面积校准框
  73803. int nRatioCalibrateBoxs; // 宽高校准框个数
  73804. NET_CFG_CALIBRATEBOX_INFO stuRatioCalibrateBoxs[10]; // 宽高校准框
  73805. bool abBySize; // 长宽过滤使能参数是否有效
  73806. bool bBySize; // 长宽过滤使能
  73807. BYTE bReserved[518]; // 保留字段
  73808. }NET_CFG_SIZEFILTER_INFO;
  73809. ///@brief 传感器类型
  73810. typedef enum tagEM_SENSOR_TYPE
  73811. {
  73812. EM_SENSOR_TYPE_UNKNOWN, // 未知
  73813. EM_SENSOR_TYPE_NC, // 常闭
  73814. EM_SENSOR_TYPE_NO, // 常开
  73815. }EM_SENSOR_TYPE;
  73816. ///@brief 报警盒子配置
  73817. typedef struct tagNET_LOCAL_EXT_ALARM_INFO
  73818. {
  73819. DWORD dwSize; // 结构体大小
  73820. BOOL bEnable; // 使能开关
  73821. char szName[MAX_LOCAL_EXT_ALARM_NAME_LEN]; // 报警通道名称
  73822. EM_SENSOR_TYPE emSensorType; // 传感器类型
  73823. NET_CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  73824. }NET_LOCAL_EXT_ALARM_INFO;
  73825. ///@brief 火灾配置类型
  73826. typedef enum tagNET_EM_FIREWARNING_MODE_TYPE
  73827. {
  73828. NET_EM_FIREWARNING_TYPE_PTZPRESET, // 云台预置点模式(默认)
  73829. NET_EM_FIREWARNING_TYPE_SPACEEXCLUDE, // 空间排除模式
  73830. } NET_EM_FIREWARNING_MODE_TYPE;
  73831. ///@brief 火灾预警模式配置 NET_EM_CFG_FIRE_WARNINGMODE
  73832. typedef struct tagNET_FIREWARNING_MODE_INFO
  73833. {
  73834. DWORD dwSize; // 结构体大小
  73835. NET_EM_FIREWARNING_MODE_TYPE emFireWarningMode; // 火灾预警模式
  73836. } NET_FIREWARNING_MODE_INFO;
  73837. ///@brief 火警检测类型
  73838. typedef enum tagNET_EM_FIREWARNING_DETECTMODE_TYPE
  73839. {
  73840. NET_EM_FIREWARNING_DETECTMODE_TYPE_AUTO, // 自动(默认)
  73841. NET_EM_FIREWARNING_DETECTMODE_TYPE_NORMAL, // 正常
  73842. } NET_EM_FIREWARNING_DETECTMODE_TYPE;
  73843. ///@brief 检测目标
  73844. typedef enum tagNET_EM_FIREWARNING_DETECTTARGET_TYPE
  73845. {
  73846. NET_EM_FIREWARNING_DETECTTARGET_TYPE_FIRE, // 火点检测(默认)
  73847. NET_EM_FIREWARNING_DETECTTARGET_TYPE_SMOKE, // 吸烟检测
  73848. } NET_EM_FIREWARNING_DETECTTARGET_TYPE;
  73849. #define MAX_FIREWARNING_DETECTRGN_NUM 32 // 最大火警区域检测的个数
  73850. #define MAX_FIREWARNING_RULE_NUM 32 // 最大火警规则
  73851. #define MAX_FIREWARNING_DETECTWND_NUM 8 // 最大火警检测窗口个数
  73852. ///@brief 火灾预警联动项
  73853. typedef struct tagNET_FIREWARN_EVENTHANDLE_INFO
  73854. {
  73855. NET_CFG_TIME_SCHEDULE stuTimeSection; // 报警时间段
  73856. BOOL bRecordEnable; // 录像使能,必须同时有RecordChannels。使能为TRUE,且事件action为start开始录像,stop停止录像。如果FALSE,则不做录像
  73857. int nRecordChannelNum; // 录像通道个数
  73858. int nRecordChannels[32]; // 录像通道号列表
  73859. int nRecordLatch; // 录像延时时间(单位:秒)范围[10,300]
  73860. BOOL bAlarmOutEnable; // 报警输出使能
  73861. int nAlarmOutChannelNum; // 报警输出通道个数
  73862. int nAlarmOutChannels[32]; // 报警输出通道号列表
  73863. int nAlarmOutLatch; // 报警输入停止后,输出延时时间(单位:秒)范围[10, 300]
  73864. int nPtzLinkNum; // 云台配置数
  73865. DH_PTZ_LINK struPtzLink[16]; // 云台联动
  73866. BOOL bPtzLinkEnable; // 云台联动使能
  73867. BOOL bSnapshotEnable; // 快照使能
  73868. int nSnapshotChannelNum; // 快照通道个数
  73869. int nSnapshotChannels[32]; // 快照通道号列表
  73870. BOOL bMailEnable; // 发送邮件,如果有图片,作为附件
  73871. BYTE byReserved[1024]; // 保留字节
  73872. } NET_FIREWARN_EVENTHANDLE_INFO;
  73873. ///@brief 火警检测窗口
  73874. typedef struct tagNET_FIREWARN_DETECTWND_INFO
  73875. {
  73876. int nRgnNum; // 检测区域的个数
  73877. BYTE byReservedAlign[4]; // 保留字节
  73878. INT64 nRegions[MAX_FIREWARNING_DETECTRGN_NUM]; // 检测区域
  73879. NET_POSTIONF stuPostion; // 空间排除信息
  73880. int nTargetSize; // 目标的尺寸(火警配置为:Normal有效,单位:像素)
  73881. int nSensitivity; // 检测灵敏度(火警配置为:Normal有效)
  73882. int nWindowsID; // 窗口ID
  73883. char szName[32]; // 窗口名称
  73884. BYTE byReserved[256]; // 保留字节
  73885. } NET_FIREWARN_DETECTWND_INFO;
  73886. ///@brief 火灾预警规则信息
  73887. typedef struct tagNET_FIREWARN_RULE_INFO
  73888. {
  73889. BOOL bEnable; // 火灾预警功能是否开启
  73890. int nPresetId; // 预置点编号,火灾预警模式为预置点模式生效
  73891. int nRow; // 火灾检测区域的行数
  73892. int nCol; // 火灾检测区域的列数
  73893. NET_EM_FIREWARNING_DETECTMODE_TYPE emFireWarningDetectMode; // 火警检测模式
  73894. NET_EM_FIREWARNING_DETECTTARGET_TYPE emFireWarningDetectTragetType; // 火警检测目标类型
  73895. BOOL bTimeDurationEnable; // 是否启用持续时间
  73896. int nFireDuration; // 观察火情持续时间,单位秒。水平旋转组检测火点时,为避免同一点重复检测,
  73897. // 设置超时时间,超过此时间,跳过此点
  73898. NET_FIREWARN_EVENTHANDLE_INFO stuEventHandler; // 火警联动信息
  73899. int nDetectWindowNum; // 窗口个数
  73900. NET_FIREWARN_DETECTWND_INFO stuDetectWnd[MAX_FIREWARNING_DETECTWND_NUM]; // 火警检测窗口
  73901. BYTE byReserved[256]; // 保留字节
  73902. } NET_FIREWARN_RULE_INFO;
  73903. ///@brief 火灾预警配置(结构体较大,建议用New分配内存) NET_EM_CFG_FIRE_WARNING
  73904. typedef struct tagNET_FIRE_WARNING_INFO
  73905. {
  73906. DWORD dwSize; // 结构体大小
  73907. int nFireWarnRuleNum; // 火灾预警配置个数
  73908. NET_FIREWARN_RULE_INFO stuFireWarnRule[MAX_FIREWARNING_RULE_NUM]; // 火灾预警配置规则
  73909. } NET_FIRE_WARNING_INFO;
  73910. ///@brief 热点报警条件
  73911. typedef enum tagEM_HOT_ALARM_CONDITION
  73912. {
  73913. EM_HOT_ALARM_CONDITION_UNKNOWN, // 未知
  73914. EM_HOT_ALARM_CONDITION_ABOVE_MAX, // 高于高温阈值
  73915. EM_HOT_ALARM_CONDITION_ABOVE_MAX_AND_BELOW_MIN, // 最低温低于低温阈值,最高温高于高温阈值(冷点报警条件也取此值时生效)
  73916. } EM_HOT_ALARM_CONDITION;
  73917. ///@brief 冷点报警条件
  73918. typedef enum tagEM_COLD_ALARM_CONDITION
  73919. {
  73920. EM_COLD_ALARM_CONDITION_UNKNOWN, // 未知
  73921. EM_COLD_ALARM_CONDITION_BELOW_MIN, // 低于低温阈值
  73922. EM_COLD_ALARM_CONDITION_ABOVE_MAX_AND_BELOW_MIN, // 最低温低于低温阈值,最高温高于高温阈值(热点报警条件也取此值时生效)
  73923. } EM_COLD_ALARM_CONDITION;
  73924. ///@brief 热冷点报警配置(结构体较大,建议用New分配内存) NET_EM_CFG_HOT_COLD_SPOT_WARNING
  73925. typedef struct tagNET_HOT_COLD_SPOT_WARNING_INFO
  73926. {
  73927. DWORD dwSize; // 结构体大小
  73928. BOOL bHotAlarmEnable; // 热点报警使能
  73929. BOOL bColdAlarmEnable; // 冷点报警使能
  73930. EM_HOT_ALARM_CONDITION emHotAlarmCondition; // 热点报警条件
  73931. EM_COLD_ALARM_CONDITION emColdAlarmCondition; // 冷点报警条件
  73932. BYTE byReserved[4]; // 字节对齐
  73933. double dHotThreshold; // 热点报警温度阈值
  73934. double dColdThreshold; // 冷点报警温度阈值
  73935. BOOL bHotSpotLinkEnable; // 热点联动使能
  73936. BOOL bColdSpotLinkEnable; // 冷点联动使能
  73937. NET_CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  73938. } NET_HOT_COLD_SPOT_WARNING_INFO;
  73939. ///@brief 报警输出模式
  73940. typedef enum tagEM_ALARM_OUT_MODE
  73941. {
  73942. EM_ALARM_OUT_MODE_UNKNOWN = -1, // 未知
  73943. EM_ALARM_OUT_MODE_AUTO, // 自动
  73944. EM_ALARM_OUT_MODE_FORCED, // 强制报警
  73945. EM_ALARM_OUT_MODE_CLOSE, // 关闭报警
  73946. } EM_ALARM_OUT_MODE;
  73947. ///@brief 前端相机警号配置 (对应枚举 NET_EM_CFG_REMOTE_ALARM_BELL)
  73948. typedef struct tagNET_CFG_REMOTE_ALARM_BELL_INFO
  73949. {
  73950. DWORD dwSize; // 结构体大小
  73951. EM_ALARM_OUT_MODE emMode; // 报警输出模式
  73952. } NET_CFG_REMOTE_ALARM_BELL_INFO;
  73953. ///@brief 门禁禁止名单报警配置
  73954. typedef struct tagNET_CFG_ACCESSCTL_BLACKLIST
  73955. {
  73956. DWORD dwSize;
  73957. BOOL bEnable; // 配置使能
  73958. }NET_CFG_ACCESSCTL_BLACKLIST;
  73959. ///@brief 霍尼服务器配置
  73960. typedef struct tagNET_CFG_VSP_HONEYWELL_INFO
  73961. {
  73962. DWORD dwSize; //结构体大小
  73963. BOOL bEnable; //使能
  73964. char szIPAddress[64]; //服务器IP地址
  73965. int nPort; //服务器端口
  73966. char szUserName[128]; //用户名
  73967. char szPassword[128]; //密码
  73968. char szUserCode[8]; //用户码
  73969. }NET_CFG_VSP_HONEYWELL_INFO;
  73970. ///@brief 日志打包方式
  73971. typedef struct tagNET_CFG_LOG_GROUP_INFO
  73972. {
  73973. UINT nSize; // 数据量大小,对大值:1400
  73974. UINT nBatch; // 日志条数,最大值:20 默认:1
  73975. UINT nDelay; // 队列中延时时间, 最大值:60000 默认:60000 单位:毫秒
  73976. BYTE byReserved[32]; // 保留字节
  73977. }NET_CFG_LOG_GROUP_INFO;
  73978. ///@brief 服务器信息配置
  73979. typedef struct tagNET_CFG_LOG_SERVER_INFO
  73980. {
  73981. BOOL bEnable; // 服务器使能
  73982. char szIP[40]; // IP
  73983. UINT nPort; // 端口
  73984. UINT nProtocol; // 协议类型 0: TCP 1: UDP
  73985. UINT nSerial; // 关联串口号,最大值:0xFFFF。第1位(0x0001)对应串口1;第2位(0x0002)对应串口2;第3位(0x0004)对应串口3;依次类推
  73986. NET_CFG_LOG_GROUP_INFO stuLogGroup; // 日志打包方式
  73987. BYTE byReserved[256]; // 保留字节
  73988. }NET_CFG_LOG_SERVER_INFO;
  73989. ///@brief 追加配置
  73990. typedef struct tagNET_CFG_LOG_APPEND_INFO
  73991. {
  73992. BOOL bSequence; // 自增序列号使能
  73993. BOOL bDate; // 日期字段使能
  73994. BOOL bTime; // 时间字段使能
  73995. char szCustom[32]; // 自定义字段
  73996. BYTE byReserved[32]; // 保留字节
  73997. }NET_CFG_LOG_APPEND_INFO;
  73998. ///@brief 串口服务器日志推送服务(对应枚举 NET_EM_CFG_SERIAL_PUSH_LOG)
  73999. typedef struct tagNET_CFG_SERIALPUSHLOG_INFO
  74000. {
  74001. DWORD dwSize; // 结构体大小
  74002. BOOL bEnable; // 使能
  74003. NET_CFG_LOG_SERVER_INFO stuServerInfo[16]; // 服务器信息
  74004. int nServerCount; // 服务器信息个数
  74005. NET_CFG_LOG_APPEND_INFO stuAppendInfo[16]; // 追加信息
  74006. int nAppendCount; // 追加信息格式
  74007. }NET_CFG_SERIALPUSHLOG_INFO;
  74008. ///@brief CVI 外部报警信息
  74009. typedef struct tagNET_CFG_COAXIAL_ALARMLOCAL
  74010. {
  74011. BOOL bEnable; // 使能
  74012. char szName[64]; // 报警通道名
  74013. NET_SENSE_METHOD emSenseMethod; // 传感器类型
  74014. NET_ALARM_MSG_HANDLE stuEventHandler; // 事件联动信息
  74015. BYTE byReserved[1024]; // 预留字节
  74016. }NET_CFG_COAXIAL_ALARMLOCAL;
  74017. ///@brief CVI外部报警配置
  74018. typedef struct tagNET_COAXIAL_ALARMLOCAL_INFO
  74019. {
  74020. DWORD dwSize; // 结构体大小
  74021. NET_CFG_COAXIAL_ALARMLOCAL* pstuAlaramCfg; // 配置信息
  74022. int nCount; // pstuAlaramCfg 个数
  74023. int nCountRet; // 实际返回的配置个数
  74024. }NET_COAXIAL_ALARMLOCAL_INFO;
  74025. ///@brief 硬盘健康异常配置
  74026. typedef struct tagNET_CFG_STORAGE_HEALTH_ABNORMAL
  74027. {
  74028. DWORD dwSize; // 结构体大小
  74029. BOOL bEnable; // 使能开关
  74030. NET_ALARM_MSG_HANDLE stuEventHandler; // 事件联动信息
  74031. } NET_CFG_STORAGE_HEALTH_ABNORMAL;
  74032. ///@brief 存储组件全局配置
  74033. typedef struct tagNET_CFG_STORAGE_GLOBAL
  74034. {
  74035. DWORD dwSize; // 结构体大小
  74036. UINT nFileHoldTime; // 设置文件的保留天数, 超过时间的将被删除. 0~31, 天为单位, 0表示永不过期
  74037. BOOL bLogRecordSearch; // 是否记录录像查询日志
  74038. BOOL bLogPictureSearch; // 是否记录图片查询日志
  74039. BOOL bShareStorageWizard; // 是否开启共享存储向导配置
  74040. UINT nDiskCheckTime; // 设置对硬盘进行检测的时间, 单位:小时
  74041. } NET_CFG_STORAGE_GLOBAL;
  74042. ///@brief 共享类型枚举
  74043. typedef enum tagEM_CFG_NAS_DIRECTORY_PROTOCAL
  74044. {
  74045. EM_CFG_NAS_DIRECTORY_PROTOCAL_UNKNOWN, // 未知枚举
  74046. EM_CFG_NAS_DIRECTORY_PROTOCAL_NFS, // NFS
  74047. EM_CFG_NAS_DIRECTORY_PROTOCAL_FTP, // FTP
  74048. EM_CFG_NAS_DIRECTORY_PROTOCAL_SAMBA, // SAMBA
  74049. EM_CFG_NAS_DIRECTORY_PROTOCAL_ISCSI, // ISCSI
  74050. EM_CFG_NAS_DIRECTORY_PROTOCAL_NONE, // 表示裸的LV, 没有做共享文件夹
  74051. } EM_CFG_NAS_DIRECTORY_PROTOCAL;
  74052. ///@brief 缓存类型枚举
  74053. typedef enum tagEM_CFG_NAS_DIRECTORY_CACHE_TYPE
  74054. {
  74055. EM_CFG_NAS_DIRECTORY_CACHE_TYPE_UNKNOWN, // 未知枚举
  74056. EM_CFG_NAS_DIRECTORY_CACHE_TYPE_DIRECT, // 直存
  74057. EM_CFG_NAS_DIRECTORY_CACHE_TYPE_INDIRECT, // 回存
  74058. } EM_CFG_NAS_DIRECTORY_CACHE_TYPE;
  74059. ///@brief 存储组件全局配置
  74060. typedef struct tagNAS_DIRECTORY_CFG_INFO
  74061. {
  74062. DWORD dwSize; // 结构体大小
  74063. char szName[16]; // 名称 用于NASDirectory组件实例化的参数name
  74064. char szGroupName[32]; // 存储池名称
  74065. char szUserName[64][32]; // 共享用户名
  74066. int nUserAuth[64]; // 共享用户的读写权限, 是一个数组, 下标与用户名对应:1 可读, 2 可新建, 4 可删除
  74067. char szMemo[1024]; // 说明
  74068. char szValidIP[16]; // 有效IP
  74069. int nUserNameRealNum; // 共享用户名数组实际有效数量
  74070. int nUserAuthRealNum; // 共享用户的读写权限实际有效数量
  74071. UINT nTotalSpace; // 总容量(单位M), 总容量, 创建卷时要用到. 只在新增时可以添加, 后续不允许修改
  74072. UINT nBlockSize; // 设置虚拟磁盘最小的块大小, 仅限于IPSAN使用, 单位字节.默认4096字节,必须是512的整数倍
  74073. EM_CFG_NAS_DIRECTORY_PROTOCAL emProtocal; // 共享类型
  74074. EM_CFG_NAS_DIRECTORY_CACHE_TYPE emCacheType; // 缓存类型
  74075. } NAS_DIRECTORY_CFG_INFO;
  74076. ///@brief 存储组件全局配置 NET_EM_CFG_NAS_DIRECTORY (该配置目前仅支持获取配置)
  74077. typedef struct tagNET_CFG_NAS_DIRECTORY
  74078. {
  74079. DWORD dwSize; // 结构体大小
  74080. char szReserved[4]; // 字节对齐
  74081. int nNeedNASDirectoryInfoNum; // 用户申请去获取配置的数量, 实际返回配置个数为用户获取配置个数与实际获取配置个数的最小值
  74082. int nNASCfgRealNum; // 实际获取到的NAS共享目录配置数量
  74083. NAS_DIRECTORY_CFG_INFO* pNASDirectoryInfo; // 获取到的配置信息指针, 需用户申请内存
  74084. } NET_CFG_NAS_DIRECTORY;
  74085. ///@brief 硬盘固件信息
  74086. typedef struct tagNET_DISK_FIRMWARE_INFO
  74087. {
  74088. char szModule[32]; // 硬盘型号
  74089. char szBUS[8]; // 硬盘总线类型
  74090. char szFirmware[32]; // 固件版本
  74091. char szReserved[512]; // 预留字节
  74092. } NET_DISK_FIRMWARE_INFO;
  74093. ///@brief 硬盘固件信息配置 NET_EM_CFG_DISK_FIRMWARE_INFO
  74094. typedef struct tagNET_CFG_DISK_FIRMWARE_INFO
  74095. {
  74096. DWORD dwSize; // 结构体大小
  74097. int nInfoCount; // 硬盘个数
  74098. NET_DISK_FIRMWARE_INFO stuInfo[16]; // 硬盘固件信息
  74099. } NET_CFG_DISK_FIRMWARE_INFO;
  74100. ///@brief Lora网关设备基本配置
  74101. typedef struct tagNET_CFG_LORA_GATEWAY_BASIC
  74102. {
  74103. DWORD dwSize; // 结构体大小
  74104. UINT nKeepAliveInterval; // 保活间隔(秒)
  74105. char szGatewayID[32]; // 网关ID
  74106. UINT nStatusReportInterval; // 状态上报间隔(秒)
  74107. UINT nPushTimeout; // 推送数据的回复超时(毫秒)
  74108. } NET_CFG_LORA_GATEWAY_BASIC;
  74109. ///@brief NS对接模式
  74110. typedef enum tagEM_LORA_GATEWAY_ACCESS_METHOD
  74111. {
  74112. EM_LORA_GATEWAY_ACCESS_METHOD_UNKNOWN, // 未知
  74113. EM_LORA_GATEWAY_ACCESS_METHOD_SEMTECHUDP, // SemtechUDP
  74114. EM_LORA_GATEWAY_ACCESS_METHOD_MQTT, // MQTT
  74115. } EM_LORA_GATEWAY_ACCESS_METHOD;
  74116. ///@brief SemtechUDP接入参数
  74117. typedef struct tagNET_SEMTECHUDP_INFO
  74118. {
  74119. char szNSAddress[64]; // NS主机地址
  74120. UINT nNSUpPort; // NS上行端口
  74121. UINT nNSDownPort; // NS下行端口
  74122. BYTE byReserved[1024]; // 预留字节
  74123. } NET_SEMTECHUDP_INFO;
  74124. ///@brief MQTT接入参数
  74125. typedef struct tagNET_MQTT_INFO
  74126. {
  74127. char szHost[64]; // NS mqtt主机地址
  74128. char szAccount[256]; // MQTT-Broker登录账户
  74129. char szPassword[256]; // MQTT-Broker登录密码
  74130. UINT nPort; // MQTT-Broker端口
  74131. BYTE byReserved[1024]; // 预留字节
  74132. } NET_MQTT_INFO;
  74133. ///@brief Lora网关接入配置
  74134. typedef struct tagNET_CFG_LORA_GATEWAY_ACCESS
  74135. {
  74136. DWORD dwSize; // 结构体大小
  74137. EM_LORA_GATEWAY_ACCESS_METHOD emMethod; // NS对接模式
  74138. NET_SEMTECHUDP_INFO stuSemtechUDPInfo; // SemtechUDP接入参数
  74139. NET_MQTT_INFO stuMQTTInfo; // MQTT接入参数
  74140. } NET_CFG_LORA_GATEWAY_ACCESS;
  74141. ///@brief Lora射频参数
  74142. typedef struct tagNET_LORAGATEWAYRADIO_INFO
  74143. {
  74144. BOOL bEnable; // 使能
  74145. UINT nFreqMin; // 最小频率(Hz)
  74146. UINT nFreqMax; // 最大频率(Hz)
  74147. BYTE byReserved[1024]; // 预留字节
  74148. } NET_LORAGATEWAYRADIO_INFO;
  74149. ///@brief Lora网关射频参数
  74150. typedef struct tagNET_CFG_LORA_GATEWAY_RADIO
  74151. {
  74152. DWORD dwSize; // 结构体大小
  74153. BOOL bEnable; // 射频参数总配置使能
  74154. NET_LORAGATEWAYRADIO_INFO stuRxInfo; // Lora接收射频参数
  74155. NET_LORAGATEWAYRADIO_INFO stuTxInfo; // Lora发送射频参数
  74156. } NET_CFG_LORA_GATEWAY_RADIO;
  74157. ///@brief 管理机信息
  74158. typedef struct tagNET_CFG_VTS_DEVICE_INFO
  74159. {
  74160. char szDeviceName[64]; // 管理机名
  74161. char szAddress[40]; // 网络地址Ip地址
  74162. char szMachineAddress[64]; // 管理机位置或名称
  74163. char szUsername[36]; // 三代登陆用户
  74164. char szPassword[36]; // 三代登陆密码
  74165. BOOL bEnable; // 管理机使能
  74166. BYTE byReserved[508]; // 预留字节
  74167. } NET_CFG_VTS_DEVICE_INFO;
  74168. ///@brief 管理机列表配置
  74169. typedef struct tagNET_CFG_VTS_INFO
  74170. {
  74171. DWORD dwSize; // 结构体大小
  74172. int nDeviceNum; // 管理机数量
  74173. NET_CFG_VTS_DEVICE_INFO stuVTSDeviceInfo[8]; // 管理机信息
  74174. } NET_CFG_VTS_INFO;
  74175. ///@brief 楼宇相关信息
  74176. typedef struct tagNET_CFG_VTS_BUILDING_INFO
  74177. {
  74178. char szLocalNumber[16]; //本机号码
  74179. BOOL bEnableSection; //区号是否使能
  74180. BOOL bEnableBuilding; //楼号是否使能
  74181. BOOL bEnableUnit; //单元号是否使能
  74182. int nBuildingNumBit; //楼号长度
  74183. char szReserved[512]; // 预留字节
  74184. } NET_CFG_VTS_BUILDING_INFO;
  74185. ///@brief VTS基本配置
  74186. typedef struct tagNET_CFG_VTS_BASIC_INFO
  74187. {
  74188. DWORD dwSize; // 结构体大小
  74189. int nRole; // 管理机角色,0-未知 1-基层管理Admin 2-上层管理Manager 3-普通User
  74190. char szDevID[16]; // VTS设备ID号,目前为3位,与下级设备ID(4位)共同组成下级设备的DevID
  74191. char szName[64]; // 管理机昵称
  74192. NET_CFG_VTS_BUILDING_INFO stuVTSBuildingInfo; // 楼宇相关信息
  74193. int nScene; // 程序的应用场景 0-未知 1-楼宇场景Building 2-行业场景Industry
  74194. } NET_CFG_VTS_BASIC_INFO;
  74195. ///@brief 常亮时间段
  74196. typedef struct tagNET_ALWAYS_ONTIME_SECTION
  74197. {
  74198. DH_TSECT stuTimeSection; // 常亮时间段
  74199. UINT nBacklightLevel; // 常亮时间段的亮度等级
  74200. char szReserved[256]; // 预留字节
  74201. }NET_ALWAYS_ONTIME_SECTION;
  74202. ///@brief 管理机列表配置
  74203. typedef struct tagNET_CFG_HOSPITAL_BACKLIGHT_PLAN
  74204. {
  74205. DWORD dwSize; // 结构体大小
  74206. UINT nDefaultBacklightLevel; // 默认亮度等级,范围:[1,10]
  74207. int nTimeSectionCount; // 常亮时间段个数
  74208. NET_ALWAYS_ONTIME_SECTION stuAlwaysOnTimeSection[5]; // 常亮时间段
  74209. } NET_CFG_HOSPITAL_BACKLIGHT_PLAN;
  74210. ///@brief 医院/科室介绍信息配置, 对应 NET_EM_CFG_HOSPITAL_INTRODUCE
  74211. typedef struct tagNET_CFG_HOSPITAL_INTRODUCE_INFO
  74212. {
  74213. DWORD dwSize; // 结构体大小
  74214. char szHospitalIntroURL[512]; // 医院介绍信息(http地址)
  74215. char szSectionIntroURL[512]; // 科室介绍信息(http地址)
  74216. char szHospitalIntroPic[512]; // 医院介绍信息(图片可下载链接)
  74217. char szSectionIntroPic[512]; // 科室介绍信息(图片可下载链接)
  74218. } NET_CFG_HOSPITAL_INTRODUCE_INFO;
  74219. ///@brief 医院检查/费用病人清单配置, 对应 NET_EM_CFG_HOSPITAL_CHECKLIST
  74220. typedef struct tagNET_CFG_HOSPITAL_CHECKLIST_INFO
  74221. {
  74222. DWORD dwSize; // 结构体大小
  74223. char szCheckInfoDoc[512]; // 病人检验检查信息----检验类型(PDF文件链接)
  74224. char szExpenseInfoDoc[512]; // 病人一日清单信息----一日清单(PDF文件链接)
  74225. char szCheckInfoPic[512]; // 病人检验检查信息----检验类型(图片可下载链接)
  74226. char szExpenseInfoPic[512]; // 病人一日清单信息----一日清单(图片可下载链接)
  74227. } NET_CFG_HOSPITAL_CHECKLIST_INFO;
  74228. ///@brief 健康宣教视频列表
  74229. typedef struct tagNET_HOSPITAL_VIDEO_LIST
  74230. {
  74231. char szSnapURL[512]; // 视频缩略图地址
  74232. char szVideoURL[512]; // 视频地址
  74233. char szName[512]; // 视频名称
  74234. char szDuration[32]; // 视频时长, eg:"00:20:00"
  74235. char szReserved[256]; // 保留字节
  74236. }NET_HOSPITAL_VIDEO_LIST;
  74237. ///@brief 健康宣教视频信息
  74238. typedef struct tagNET_HOSPITAL_MEDIA_VIDEO_INFO
  74239. {
  74240. char szGroupName[256]; // 视频分组名称
  74241. int nRetVideoListCount; // 实际返回的视频个数
  74242. int nVideoListNum; // 视频个数
  74243. NET_HOSPITAL_VIDEO_LIST *pstuVideoList; // 视频列表, 由用户申请内存, 大小为sizeof(NET_HOSPITAL_VIDEO_LIST)*nVideoListNum
  74244. char szReserved[256]; // 保留字节
  74245. }NET_HOSPITAL_MEDIA_VIDEO_INFO;
  74246. ///@brief 医院健康宣教视频媒体点播协议配置, 对应 NET_EM_CFG_HOSPITAL_MEDIA_INFO
  74247. typedef struct tagNET_CFG_HOSPITAL_MEDIA_INFO
  74248. {
  74249. DWORD dwSize; // 结构体大小
  74250. int nVideoNum; // 健康宣教视频个数
  74251. NET_HOSPITAL_MEDIA_VIDEO_INFO stuVideoInfo[50]; // 健康宣教视频信息
  74252. } NET_CFG_HOSPITAL_MEDIA_INFO;
  74253. ///@brief 室内机云服务器配置
  74254. typedef struct tagNET_CFG_VTH_ALPA_CLOUD
  74255. {
  74256. DWORD dwSize; // 结构体大小
  74257. char szParam1[32]; // 云服务参数1
  74258. char szParam2[32]; // 云服务参数2
  74259. int nStatus; // 云服务状态 0表示不开启,1表示开启
  74260. BYTE byReserved[128]; // 预留字节
  74261. }NET_CFG_VTH_ALPA_CLOUD;
  74262. ///@brief 室内机本地广告机配置
  74263. typedef struct tagNET_CFG_VTH_FETCHINFO
  74264. {
  74265. DWORD dwSize; // 结构体大小
  74266. char szFtp[32]; // FTP地址
  74267. char szUser[32]; // FTP用户名
  74268. char szPassword[32]; // FTP密码
  74269. int nPort; // FTP端口
  74270. BOOL bEnable; // 广告功能使能
  74271. char szFtpPath[256]; // 信息在FTP上的路径
  74272. BYTE byReserved[512]; // 预留字节
  74273. }NET_CFG_VTH_FETCHINFO;
  74274. ///@brief 门禁定制提供客户设置的设备信息配置
  74275. typedef struct tagNET_CFG_CUSTOMER_DEVICEINFO
  74276. {
  74277. DWORD dwSize; // 结构体大小
  74278. char szAuthCheckCode[128]; // 设备鉴权字符串
  74279. char szOrgId[32]; // 设备组织id
  74280. char szDeviceId[64]; // 设备id
  74281. char szRegUrl[256]; // 设备激活服务地址
  74282. char szInformUrl[256]; // 考勤上报地址
  74283. }NET_CFG_CUSTOMER_DEVICEINFO;
  74284. ///@brief 地址类型
  74285. typedef enum tagEM_ADDRESS_TYPE
  74286. {
  74287. EM_ADDRESS_TYPE_UNKNOWN = 0, // 未知地址类型
  74288. EM_ADDRESS_TYPE_PUBLIC, // 公共地址
  74289. EM_ADDRESS_TYPE_RANDOM, // 随机地址
  74290. }EM_ADDRESS_TYPE;
  74291. ///@brief 绑定的蓝牙从设备信息
  74292. typedef struct tagNET_BLUETOOTH_INFO
  74293. {
  74294. char szName[64]; // 蓝牙从设备名称
  74295. char szMac[20]; // 从设备的Mac地址
  74296. char szPin[20]; // Pin码(配对钥匙)
  74297. EM_ADDRESS_TYPE emAddressType; // 地址类型
  74298. BYTE byReserved[512]; // 预留字节
  74299. }NET_BLUETOOTH_INFO;
  74300. ///@brief 定制蓝牙开门配置
  74301. typedef struct tagNET_CFG_BLUE_TOOTH
  74302. {
  74303. DWORD dwSize; // 结构体大小
  74304. BOOL bEnable; // 是否开启蓝牙功能
  74305. char szModulName[32]; // 设备模块名
  74306. int nBlueDeviceNum; // 绑定的蓝牙从设备个数
  74307. NET_BLUETOOTH_INFO stuBlueDeviceInfo[16]; // 绑定的蓝牙从设备信息
  74308. }NET_CFG_BLUE_TOOTH;
  74309. ///@brief 音频压缩格式
  74310. typedef enum tagEM_AUDIO_COMPRESS_FORMAT
  74311. {
  74312. EM_AUDIO_COMPRESS_UNKNOWN = 0, // 未知格式
  74313. EM_AUDIO_COMPRESS_PCM, // PCM
  74314. EM_AUDIO_COMPRESS_ADPCM, // ADPCM
  74315. EM_AUDIO_COMPRESS_G711AM, // G.711A
  74316. EM_AUDIO_COMPRESS_G711MU, // G.711Mu
  74317. EM_AUDIO_COMPRESS_G726, // G.726
  74318. EM_AUDIO_COMPRESS_G729, // G.729
  74319. EM_AUDIO_COMPRESS_MPEG2, // MPEG2
  74320. EM_AUDIO_COMPRESS_AMR, // AMR
  74321. }EM_AUDIO_COMPRESS_FORMAT;
  74322. ///@brief 音频配置信息
  74323. typedef struct tagNET_TALKBACK_INFO
  74324. {
  74325. EM_AUDIO_COMPRESS_FORMAT emAudioCompresFormat; // 音频压缩格式
  74326. UINT nFrequency; // 音频采样频率
  74327. UINT nDepth; // 采样深度
  74328. UINT nPacketPeriod; // 打包周期
  74329. int nMode; // 编码模式
  74330. NET_EM_PACK_TYPE emPackFormat; // 打包模式
  74331. BYTE byReserved[512]; // 预留字节
  74332. }NET_TALKBACK_INFO;
  74333. ///@brief 可视对讲音频配置
  74334. typedef struct tagNET_CFG_TALKBACK
  74335. {
  74336. DWORD dwSize; // 结构体大小
  74337. int nChannelNum; // 对讲通道个数
  74338. NET_TALKBACK_INFO stuTalkBackInfo[16]; // 音频配置信息
  74339. }NET_CFG_TALKBACK;
  74340. ///@brief 人证设备工作模式
  74341. typedef enum tagEM_SYS_MODE
  74342. {
  74343. EM_SYS_MODE_UNKNOWN = 0, // 未知模式
  74344. EM_SYS_MODE_FACECOLLECT, // 目标采集模式(自助采集模式)
  74345. EM_SYS_MODE_JOINCOLLECT, // 协同采集模式
  74346. EM_SYS_MODE_VISITORVERIFY, // 访客模式
  74347. EM_SYS_MODE_CITIZENCOMPARE, // 人证核验模式
  74348. EM_SYS_MODE_CITIZENIDCHECK, // 证件号核验模式
  74349. EM_SYS_MODE_OTHER, // 其他
  74350. }EM_SYS_MODE;
  74351. ///@brief 待机封面文字提示信息配置
  74352. typedef struct tagNET_CFG_FORNT_COVER_DISPLAY_TEXT
  74353. {
  74354. DWORD dwSize; // 结构体大小
  74355. int nTextLineNum; // 待机封面文字提示行个数
  74356. char szTextLines[10][256]; // 待机封面文字提示行,当前设备显示支持最多10个
  74357. BYTE byReserved[512]; // 预留字节
  74358. }NET_CFG_FORNT_COVER_DISPLAY_TEXT;
  74359. ///@brief 门禁目标识别相关配置
  74360. typedef struct tagNET_CFG_CITIZENPICTURECOMPARE
  74361. {
  74362. DWORD dwSize; // 结构体大小
  74363. int nThreshold; // 人证比对阈值
  74364. BOOL bUnlockEnable; // 开锁功能是否使能
  74365. BOOL bFuncEnable; // 人证功能使能标识
  74366. BOOL bCitizenIDCheck; // 证件号校验使能标识
  74367. EM_SYS_MODE emSysMode; // 人证设备工作模式
  74368. }NET_CFG_CITIZENPICTURECOMPARE;
  74369. ///@brief 灯光类型
  74370. typedef enum tagEM_SIGNLIGHT_TYPE
  74371. {
  74372. EM_SIGNLIGHT_TYPE_UNKNOWN = 0, // 未知
  74373. EM_SIGNLIGHT_TYPE_AUTO, // 自动,按照sensor自动切换
  74374. EM_SIGNLIGHT_TYPE_TIMING, // 定时模式
  74375. EM_SIGNLIGHT_TYPE_OFF, // 常灭
  74376. EM_SIGNLIGHT_TYPE_ON, // 常亮模式
  74377. }EM_SIGNLIGHT_TYPE;
  74378. ///@brief 签名灯信息
  74379. typedef struct tagNET_SIGNLIGHT_INFO
  74380. {
  74381. EM_SIGNLIGHT_TYPE emSignLightType; // 灯光类型
  74382. int nTimeSectionsNum; // 有效时间段个数
  74383. DH_TSECT stuTimeSection[6]; // 抓拍时间段
  74384. BYTE bReserved[64]; // 预留字节
  74385. }NET_VIDEOTALK_SIGNLIGHT_INFO;
  74386. ///@brief 可视对讲签名灯设置
  74387. typedef struct tagNET_CFG_SIGNLIGHT
  74388. {
  74389. DWORD dwSize; // 结构体大小
  74390. int nSignLightNum; // 签名灯个数
  74391. NET_VIDEOTALK_SIGNLIGHT_INFO stuSignLightInfo[16]; // 签名灯信息
  74392. }NET_CFG_VIDEOTALK_SIGNLIGHT;
  74393. ///@brief 启动方式
  74394. typedef enum tagEM_STARTCHECK_MODE
  74395. {
  74396. EM_STARTCHECK_MODE_UNKNOWN = 0, // 未知
  74397. EM_STARTCHECK_MODE_FACE, // 目标启动
  74398. EM_STARTCHECK_MODE_CARD, // 刷卡启动
  74399. }EM_STARTCHECK_MODE;
  74400. ///@brief 手阻值范围
  74401. typedef struct tagNET_HAND_INFO
  74402. {
  74403. UINT nHighValue; // k欧姆(高)
  74404. UINT nLowValue; // k欧姆(低)
  74405. BYTE bReserved[64]; // 预留字节
  74406. }NET_HAND_INFO;
  74407. ///@brief 左脚阻值范围
  74408. typedef struct tagNET_LEFT_FOOT_INFO
  74409. {
  74410. UINT nHighValue; // k欧姆(高)
  74411. UINT nLowValue; // k欧姆(低)
  74412. BYTE bReserved[64]; // 预留字节
  74413. }NET_LEFT_FOOT_INFO;
  74414. ///@brief 右脚阻值范围
  74415. typedef struct tagNET_RIGHT_FOOT_INFO
  74416. {
  74417. UINT nHighValue; // k欧姆(高)
  74418. UINT nLowValue; // k欧姆(低)
  74419. BYTE bReserved[64]; // 预留字节
  74420. }NET_RIGHT_FOOT_INFO;
  74421. ///@brief ESD静电仪设备通用配置设置
  74422. typedef struct tagNET_CFG_ESD_COMMSETTING
  74423. {
  74424. DWORD dwSize; // 结构体大小
  74425. EM_STARTCHECK_MODE emStartCheckMode; // 启动方式
  74426. NET_HAND_INFO stuHand; // 手阻值范围
  74427. NET_LEFT_FOOT_INFO stuLeftFoot; // 左脚阻值范围
  74428. NET_RIGHT_FOOT_INFO stuRightFoot; // 右脚阻值范围
  74429. }NET_CFG_ESD_COMMSETTING;
  74430. ///@brief 界面图片状态
  74431. typedef enum tagEM_MAIN_PAGE_STATE
  74432. {
  74433. EM_MAIN_PAGE_STATE_UNKNOWN = 0, // 未知
  74434. EM_MAIN_PAGE_STATE_NORMAL, // 正常
  74435. EM_MAIN_PAGE_STATE_STANDBY, // 待机
  74436. EM_MAIN_PAGE_STATE_CHANNELCLOSED, // 通道关闭
  74437. EM_MAIN_PAGE_STATE_FORBIDENTER, // 禁止通行
  74438. EM_MAIN_PAGE_STATE_URGENTEVACUATE // 紧急疏散
  74439. }EM_MAIN_PAGE_STATE;
  74440. ///@brief 门禁定制配置汇总
  74441. typedef struct tagNET_CFG_BSCCUSTOM
  74442. {
  74443. DWORD dwSize; // 结构体大小
  74444. UINT nSamePersonInterval; // 间隔时间.在n秒内,相同人员不能连续开门.(0表示无需限制)
  74445. EM_MAIN_PAGE_STATE emMainPageState; // 设备界面图片所表示的状态
  74446. char szReserved[4]; // 字节对齐
  74447. }NET_CFG_BSCCUSTOM;
  74448. ///@brief 目标识别成功后二次确认配置
  74449. typedef struct tagNET_CFG_ACCESS_FACE_RECOGNITION
  74450. {
  74451. DWORD dwSize; // 结构体大小
  74452. UINT nFaceRecogInterval; // 识别间隔,单位:s,取值范围[1,60]
  74453. BOOL bSecondConfirm; // 目标识别成功是否做二次确认
  74454. UINT nSecondConfirmTimeout; // 目标识别成功,二次确认超时时间(定制添加),单位:s 取值范围[1,60]
  74455. BOOL bIDAndFaceMode; // 是否使用ID+目标模式识别
  74456. BOOL bFaceCollectionEnable; // 目标采集使能。采集失败重复抓图上报平台的频率默认3s(false为不采集)默认关闭。
  74457. }NET_CFG_ACCESS_FACE_RECOGNITION;
  74458. ///@brief 天气信息
  74459. typedef struct tagNET_CUSTOM_WEATHER_INFO
  74460. {
  74461. char szDate[20]; // 时间
  74462. char byReserved[4]; // 字节补齐
  74463. char szWeather[32]; // 天气
  74464. char szDayWeather[32]; // 白天天气
  74465. char szNightWeather[32]; // 晚上天气
  74466. double dbTemperature; // 温度。单位:摄氏度
  74467. double dbMinTemperature; // 温度。单位:摄氏度
  74468. double dbMaxTemperature; // 温度。单位:摄氏度
  74469. char szWindForce[32]; // 风力
  74470. char szDayWindForce[32]; // 白天风力
  74471. char szNightWindForce[32]; // 晚上风力
  74472. char szWindDirection[32]; // 风向
  74473. char szDayWindDirection[32]; // 白天风向
  74474. char szNightWindDirection[32]; // 晚上风向
  74475. char szWeatherImage[512]; // 天气图标
  74476. char szReserved[128]; // 保留字节
  74477. }NET_CUSTOM_WEATHER_INFO;
  74478. ///@brief 外部下发设备的天气信息配置
  74479. typedef struct tagNET_CFG_CUSTOM_WEATHER_INFO
  74480. {
  74481. DWORD dwSize; // 结构体大小
  74482. BOOL bEnable; // 天气信息使能
  74483. UINT nWeatherDataNums; // 天气信息的个数
  74484. NET_CUSTOM_WEATHER_INFO stuWeatherData[32]; // 天气信息
  74485. }NET_CFG_CUSTOM_WEATHER_INFO;
  74486. ///@brief 医院Logo配置
  74487. typedef struct tagNET_CFG_HOSPITAL_LOGO_INFO
  74488. {
  74489. DWORD dwSize; // 结构体大小
  74490. char szBitmap[10240]; // 医院的Logo图片, base64编码, 大小不超过10K
  74491. char szName[256]; // 医院名字
  74492. }NET_CFG_HOSPITAL_LOGO_INFO;
  74493. ///@brief 主页配置选项
  74494. typedef struct tagNET_HOME_PAGE
  74495. {
  74496. BOOL bButtonMainMenuVisible; // 主菜单按钮是否可见
  74497. BOOL bButtonPasswordVisible; // 密码按钮是否可见
  74498. BOOL bButtonQRCodeVisible; // 二维码按钮是否可见
  74499. BOOL bButtonCallVisible; // 对讲按钮是否可见
  74500. UINT nButtonCallType; // 对讲按钮呼叫类型, 1:呼叫房间 2:呼叫管理机 3:呼叫固定房间 4:呼叫门铃
  74501. }NET_HOME_PAGE;
  74502. ///@brief 广告分屏模式设备广告显示配置
  74503. typedef struct tagNET_ADVERTISE_DISPLAY
  74504. {
  74505. UINT nAdvertiseVideoDisplay; // 广告分屏模式情况下视频广告如何显示 0:原比例播放,1:全屏播放模式
  74506. UINT nAdvertisePicDisplay; // 广告分屏模式情况下图片广告如何显示 0:原比例播放,1:全屏播放模式
  74507. char szReserved[128]; // 保留字节
  74508. }NET_ADVERTISE_DISPLAY;
  74509. ///@brief 广告分屏模式列表
  74510. typedef struct tagNET_ADVERTISE_SPLITLIST
  74511. {
  74512. UINT nAdvertiseSplitID; // 广告分屏模式:0:不分屏1:广告显示在前(左边或者上边)2:广告显示在后(右边或者下边)3.预览模式,只展示上传的广告图片
  74513. char szAdvertiseSplitName[256]; // 广告分屏模式名称,设备和web通过显示广告模式类型
  74514. char szReserved[128]; // 保留字节
  74515. }NET_ADVERTISE_SPLITLIST;
  74516. ///@brief 门禁设备显示配置
  74517. typedef struct tagNET_CFG_ACCESS_DISPLAY_INFO
  74518. {
  74519. DWORD dwSize; // 结构体大小
  74520. NET_HOME_PAGE stuHomePage; // 主页配置选项
  74521. UINT nAdvertiseSplitType; // 广告分屏模式:0:不分屏 1:广告显示在前(左边或者上边) 2:广告显示在后(右边或者下边) 3.预览模式,只展示上传的广告图片
  74522. UINT nAccessDisplayObject; // 门禁显示主题:0:显示广告内容 2:显示公告文字信息
  74523. NET_ADVERTISE_DISPLAY stuAdvertiseDisplay; // 广告分屏模式设备广告显示配置
  74524. NET_ADVERTISE_SPLITLIST stuAdvertiseSplitList[32]; // 广告分屏模式列表,最大32个
  74525. int nAdvertiseSplitListNum; // 广告分屏模式列表的个数
  74526. }NET_CFG_ACCESS_DISPLAY_INFO;
  74527. ///@brief 门禁设备通用配置
  74528. typedef struct tagNET_CFG_ACCESS_CONFIG_INFO
  74529. {
  74530. DWORD dwSize; // 结构体大小
  74531. UINT nPhotoGraph; // 是否开启图片抓拍功能, 开启后每次会从系统抓拍一张背景图片保存下来. 0:不抓拍, 1:抓拍
  74532. UINT nFingerprintPic; // 表示设备是否显示每次开门时的信息图片, 0:不显示, 1:显示
  74533. UINT nPrivacyMask; // 设备界面中视频图像隐私遮挡功能,开启后视频界面会被模糊遮挡. 0:不遮挡, 1:低遮挡(对应的透明度为-30), 2:中遮挡(对应的透明度为-20), 3:高遮挡(对应的透明度为-10)
  74534. }NET_CFG_ACCESS_CONFIG_INFO;
  74535. ///@brief 声音配置
  74536. typedef struct tagNET_CFG_SOUND
  74537. {
  74538. DWORD dwSize; // 结构体大小
  74539. char szAlarmSoundPath[256]; // 报警语音提示文件路径
  74540. UINT nAlarmSoundDuration; // 报警持续时间,单位:秒
  74541. } NET_CFG_SOUND;
  74542. ///@brief 语音时间预案配置
  74543. typedef struct tagNET_VOICE_PLAY_PLAN_INFO
  74544. {
  74545. BOOL bEnable; // 每个语音定时播放任务开关标志
  74546. int nPlayTimes; // 报警持续时间,单位:秒
  74547. char szVoicePath[128]; // 语音播放路径,绝对路径
  74548. NET_CFG_TIME_SCHEDULE stuTimeSchedule; // 工作时间段
  74549. char szReserved[512]; // 保留字节
  74550. } NET_VOICE_PLAY_PLAN_INFO;
  74551. ///@brief 语音时间预案配置 (NET_EM_CFG_VOICE_PLAY_PLAN)
  74552. typedef struct tagNET_CFG_VOICE_PLAY_PLAN_INFO
  74553. {
  74554. DWORD dwSize; // 结构体大小
  74555. unsigned int nVoicePlayPlanCount; // 平台语音时间预案个数
  74556. NET_VOICE_PLAY_PLAN_INFO stuVoicePlayPlan[32]; // 平台语音时间预案,一维数组,每个元素表示一个语音任务,对应一个语音时间预案配置
  74557. } NET_CFG_VOICE_PLAY_PLAN;
  74558. ///@brief 声音检测配置信息
  74559. typedef struct tagSMART_SOUND_DETECT_INFO
  74560. {
  74561. BOOL bEnable; // 检测声音配置使能
  74562. int nAudioTypeValidNum; // 有效声音枚举数量
  74563. EM_AUDIO_MUTATION_ALARM_TYPE emSoundTypes[32]; // 声音类型枚举
  74564. UINT nSensitive; // 检测灵敏度, 范围[1,10]
  74565. UINT nThreshold; // 声强阈值, 范围[1,100]
  74566. NET_CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动配置
  74567. char szReserved[512]; // 保留字节
  74568. } SMART_SOUND_DETECT_INFO;
  74569. ///@brief 声音检测配置 (NET_EM_CFG_SMART_SOUND_DETECT)
  74570. typedef struct tagNET_CFG_SMART_SOUND_DETECT_INFO
  74571. {
  74572. DWORD dwSize; // 结构体大小
  74573. UINT nSoundDetectChannelNum; // 配置通道数
  74574. SMART_SOUND_DETECT_INFO* pSmartSoundDetectInfo; // 声音检测配置信息数组, 对应数组下标为音频配置通道号, 需用户申请内存调用
  74575. } NET_CFG_SMART_SOUND_DETECT;
  74576. ///@brief 显示动作
  74577. typedef enum tagEM_DISPLAY_MODE
  74578. {
  74579. EM_DISPLAY_MODE_UNKNOWN, // 未知
  74580. EM_DISPLAY_MODE_ROLL, // 滚动
  74581. EM_DISPLAY_MODE_INTERCEPT, // 截取
  74582. } EM_DISPLAY_MODE;
  74583. ///@brief 显示颜色
  74584. typedef enum tagEM_DISPLAY_COLOR
  74585. {
  74586. EM_DISPLAY_COLOR_UNKNOWN, // 未知
  74587. EM_DISPLAY_COLOR_RED, // 红
  74588. EM_DISPLAY_COLOR_GREEN, // 绿
  74589. EM_DISPLAY_COLOR_YELLOW, // 黄
  74590. } EM_DISPLAY_COLOR;
  74591. ///@brief 逻辑屏信息
  74592. typedef struct tagNET_LOGIC_SCREEN
  74593. {
  74594. NET_RECT stuRegion; // 逻辑屏区域, 实际点阵屏坐标
  74595. EM_DISPLAY_MODE emDisplayMode; // 显示动作
  74596. EM_DISPLAY_COLOR emDisplayColor; // 显示颜色
  74597. BYTE byReserved[512]; // 预留字节
  74598. } NET_LOGIC_SCREEN;
  74599. ///@brief 点阵屏滚动速度级别
  74600. typedef enum tagEM_ROLL_SPEED_LEVEL
  74601. {
  74602. EM_ROLL_SPEED_LEVEL_UNKNOWN, // 未知
  74603. EM_ROLL_SPEED_LEVEL_SLOW, // 慢
  74604. EM_ROLL_SPEED_LEVEL_SLOWER, // 较慢
  74605. EM_ROLL_SPEED_LEVEL_MEDIUM, // 中等
  74606. EM_ROLL_SPEED_LEVEL_FASTER, // 较快
  74607. EM_ROLL_SPEED_LEVEL_FAST // 快
  74608. } EM_ROLL_SPEED_LEVEL;
  74609. ///@brief 485串口点阵屏配置
  74610. typedef struct tagNET_CFG_LATTICE_SCREEN_CONFIG
  74611. {
  74612. UINT nAddress; // 配置对应设备的地址, 范围[1,31]
  74613. EM_ROLL_SPEED_LEVEL emRollSpeedLevel; // 点阵屏滚动速度级别
  74614. int nLogicScreenNum; // 逻辑屏个数
  74615. NET_LOGIC_SCREEN stuLogicScreens[8]; // 逻辑屏信息, 划分物理屏的某一区域为逻辑屏
  74616. int nOutPutVoiceVolume; // 语音播报音量大小, 范围:[0, 100]
  74617. int nOutPutVoiceSpeed; // 语音播报速度, 范围:[0, 100]
  74618. BYTE byReserved[1024]; // 预留字段
  74619. } NET_CFG_LATTICE_SCREEN_CONFIG;
  74620. ///@brief 串口设备类型
  74621. typedef enum tagEM_DHRS_DEVICE_TYPE
  74622. {
  74623. EM_DHRS_DEVICE_TYPE_UNKNOWN, // 未知
  74624. EM_DHRS_DEVICE_TYPE_STEADYLIGHT, // 常亮灯
  74625. EM_DHRS_DEVICE_TYPE_STROBELIGHT, // 可以通过485控制的频闪灯
  74626. EM_DHRS_DEVICE_TYPE_POWERMODULE, // 电源模块
  74627. EM_DHRS_DEVICE_TYPE_LATTICESCREEN, // 点阵屏
  74628. EM_DHRS_DEVICE_TYPE_INDICATORLIGHT, // 指示灯
  74629. EM_DHRS_DEVICE_TYPE_RAINBRUSH, // 雨刷洗涤模块
  74630. EM_DHRS_DEVICE_TYPE_FLASHLAMP, // 爆闪灯
  74631. EM_DHRS_DEVICE_TYPE_RFID, // 射频识别
  74632. EM_DHRS_DEVICE_TYPE_COMMON, // 通用485
  74633. } EM_DHRS_DEVICE_TYPE;
  74634. ///@brief 串口设备信息
  74635. typedef struct tagNET_CFG_DHRS_DEVICE_INFO
  74636. {
  74637. BOOL bEnable; // 串口设备是否启用
  74638. EM_DHRS_DEVICE_TYPE emType; // 串口设备类型
  74639. NET_CFG_LATTICE_SCREEN_CONFIG stuLatticeScreenConfig; // 485串口点阵屏配置, 当emType为EM_DHRS_DEVICE_TYPE_LATTICESCREEN 有效
  74640. BYTE byReserved[4096]; //
  74641. } NET_CFG_DHRS_DEVICE_INFO;
  74642. ///@brief 485串口协议设备配置信息
  74643. typedef struct tagNET_CFG_DHRS_INFO
  74644. {
  74645. int nDeviceNum; // 串口设备个数
  74646. NET_CFG_DHRS_DEVICE_INFO stuDHRSDeviceInfo[32]; // 串口设备信息
  74647. } NET_CFG_DHRS_INFO;
  74648. ///@brief 485串口协议设备配置
  74649. typedef struct tagNET_CFG_DHRS
  74650. {
  74651. DWORD dwSize; // 结构体大小
  74652. int nDHRSNum; // 串口个数
  74653. NET_CFG_DHRS_INFO stuDHRSInfo[32]; // 485串口协议设备配置信息, 数组下标为物理串口号
  74654. } NET_CFG_DHRS;
  74655. ///@brief 广告播放的属性设置(NET_EM_CFG_ADVERT_PLAY_RULE)
  74656. typedef struct tagNET_CFG_ADVERT_PLAY_RULE
  74657. {
  74658. DWORD dwSize; // 结构体大小
  74659. NET_CFG_TIME_SCHEDULE stPlayTimeSchedule; // 广告播放时间段
  74660. NET_CFG_TIME_SCHEDULE stSilentTimeSchedule; // 广告静音播放时间段
  74661. } NET_CFG_ADVERT_PLAY_RULE;
  74662. ///@brief 当前生效类型
  74663. typedef enum tagEM_XRAY_UPLOAD_PLATFORM_CURRENT_TYPE
  74664. {
  74665. EM_XRAY_UPLOAD_PLATFORM_CURRENT_TYPE_UNKNOWN = -1, // 未知
  74666. EM_XRAY_UPLOAD_PLATFORM_CURRENT_TYPE_BY_DANGER_LEVEL, // 按危险等级
  74667. EM_XRAY_UPLOAD_PLATFORM_CURRENT_TYPE_BY_DANGER_GROUP, // 按违禁物品
  74668. } EM_XRAY_UPLOAD_PLATFORM_CURRENT_TYPE;
  74669. ///@brief 按危险等级上报平台
  74670. typedef struct tagNET_XRAY_UPLOAD_PLATFORM_BY_DANGER_LEVEL
  74671. {
  74672. BOOL bHigh; // 高危
  74673. BOOL bWarning; // 警示
  74674. BOOL bSafety; // 安全
  74675. BOOL bUnknown; // 未分类
  74676. BYTE byReserved[512]; // 预留字段
  74677. } NET_XRAY_UPLOAD_PLATFORM_BY_DANGER_LEVEL;
  74678. ///@brief X光机物品
  74679. typedef struct tagNET_XRAY_OBJECT_INFO
  74680. {
  74681. EM_INSIDE_OBJECT_TYPE emType; // 物体类型
  74682. BOOL bEnable; // 物体检测使能
  74683. UINT nDetectThreshold; // 物体检测阈值 0~100
  74684. char szType[32]; // 解析和下发自定义物体类型时使用
  74685. char szReserved[224]; // 预留
  74686. }NET_XRAY_OBJECT_INFO;
  74687. ///@brief 按违禁物品上报平台
  74688. typedef struct tagNET_XRAY_UPLOAD_PLATFORM_BY_DANGER_GROUP
  74689. {
  74690. EM_INSIDE_OBJECT_TYPE emGroupType; // 分组类型
  74691. BOOL bGroupEnable; // 分组上报使能
  74692. NET_XRAY_OBJECT_INFO stuObjects[64]; // 物体
  74693. int nObjectsNum; // 物体个数
  74694. char szGroupType[32]; // 自定义分组类型
  74695. BYTE byReserved[480]; // 预留字段
  74696. } NET_XRAY_UPLOAD_PLATFORM_BY_DANGER_GROUP;
  74697. ///@brief 安检服务器上传平台的物品类别设置(NET_EM_CFG_XRAY_UPLOAD_PLATFORM)
  74698. typedef struct tagNET_CFG_XRAY_UPLOAD_PLATFORM
  74699. {
  74700. DWORD dwSize; // 结构体大小
  74701. EM_XRAY_UPLOAD_PLATFORM_CURRENT_TYPE emCurrentType; // 当前生效类型
  74702. NET_XRAY_UPLOAD_PLATFORM_BY_DANGER_LEVEL stuByDangerLevel; // 按危险等级上报平台
  74703. NET_XRAY_UPLOAD_PLATFORM_BY_DANGER_GROUP stuByDangerGroup[64]; // 按违禁物品上报平台
  74704. int nByDangerGroupNum; // 按违禁物品上报平台信息个数
  74705. } NET_CFG_XRAY_UPLOAD_PLATFORM;
  74706. ///@brief X光机预览叠加配置信息
  74707. typedef struct tagNET_XRAY_OVERLAY_INFO
  74708. {
  74709. UINT nStyle; // 显示风格: 0-贴近跟随, 1-分离跟随, 2-中心点模式
  74710. UINT nxBackground; // 文字背景使能: 0-不显示, 1-显示
  74711. UINT nxConfidence; // 相似度使能: 0-不显示, 1-显示
  74712. UINT nxPackageBorder; // 包裹框使能: 0-不显示, 1-显示
  74713. UINT nxTrackEnable; // 叠加总使能: 0-不显示, 1-显示
  74714. UINT nxTrackName; // 物品名字使能: 0-不显示, 1-显示
  74715. UINT nObjectCenterPointRadius; // 物品中心点半径, 单位像素
  74716. UINT nObjectBorderWidth; // 物品框线宽, 单位像素
  74717. UINT nFontSize; // 字体大小
  74718. char szReserved[256]; // 预留字节
  74719. }NET_XRAY_OVERLAY_INFO;
  74720. ///@brief X光机预览叠加配置(NET_EM_CFG_XRAY_OVERLAY)
  74721. typedef struct tagNET_CFG_XRAY_OVERLAY_INFO
  74722. {
  74723. DWORD dwSize; // 结构体大小
  74724. int nXRayOverlayNum; // X光机预览叠加配置信息个数, 最大值为8
  74725. NET_XRAY_OVERLAY_INFO stuXRayOverlay[8]; // X光机预览叠加配置
  74726. } NET_CFG_XRAY_OVERLAY_INFO;
  74727. ///@brief 注册升级文件处理
  74728. CLIENT_NET_API LLONG CALL_METHOD CLIENT_attachAIOFileProc(LLONG lLoginID, const NET_IN_ATTACH_AIO* pstInParam, NET_OUT_ATTACH_AIO *pstOutParam, int nWaitTime);
  74729. ///@brief 注销文件处理,lAttachHandle是CLIENT_attachAIOFileProc返回值
  74730. CLIENT_NET_API BOOL CALL_METHOD CLIENT_detachAIOFileproc(LLONG lAttachHandle);
  74731. ///@brief 设置NVR广告
  74732. CLIENT_NET_API LLONG CALL_METHOD CLIENT_SetAIOAdvert(LLONG lLoginID, const NET_IN_SET_ADVERT* pstInParam, NET_OUT_SET_ADVERT *pstOutParam, int nWaitTime);
  74733. ///@brief NVR截屏
  74734. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AIOScreen(LLONG lLoginID, const NET_IN_AIO_SCREEN* pstInParam, NET_OUT_AIO_SCREEN *pstOutParam, int nWaitTime);
  74735. ///@brief 开始异步文件上传调函数原形,lUploadFileHandle 为 CLIENT_StartUploadAIOFile 接口返回值, nError是失败的错误码
  74736. typedef void (CALLBACK *fUploadAIOFileCallBack) (LLONG lUploadFileHandle, int nTotalSize, int nSendSize, LDWORD dwUser, int nError);
  74737. ///@brief 开始异步文件上传
  74738. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartUploadAIOFile(LLONG lLoginID, const NET_IN_UPLOAD_AIO_FILE* pInParam, NET_OUT_UPLOAD_AIO_FILE* pOutParam, fUploadAIOFileCallBack cbUploadFile, LDWORD dwUser);
  74739. ///@brief 停止异步文件上传
  74740. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopUploadAIOFile(LLONG lUploadFileID);
  74741. ///@brief 控制安卓adb开启或关闭
  74742. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ControlAndroidAdb(LLONG lLoginID, const NET_IN_CONTROL_ANDROID_ADB* pstInParam, NET_OUT_CONTROL_ANDROID_ADB *pstOutParam, int nWaitTime);
  74743. /*
  74744. 仅针对获取ChannelTitle通道名称配置(NET_EM_CFG_ENCODE_CHANNELTITLE)时支持:是否只获取本地缓存配置(速度快)的对应功能字段
  74745. 当获取通道名称配置(NET_EM_CFG_ENCODE_CHANNELTITLE)时,保留字段(void *)reserve视为支持是否只获取本地缓存配置(速度快)的对应功能字段
  74746. (void *)reserve需指向BOOL类型的变量:
  74747. 该变量为TRUE时表示: 只取本地缓存配置;(需要立即返回,不需要保证配置即时与正确性)
  74748. 该变量为FALSE时表示: 取所有通道配置(含本地、远程等),需要同步等待所有远程通道值取到后才返回;
  74749. 此项reserve无时(为NULL),默认为FALSE,同步取所有通道配置。
  74750. */
  74751. ///@brief 获取配置信息(szOutBuffer内存由用户申请释放, 具体见枚举类型说明)
  74752. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetConfig(LLONG lLoginID, NET_EM_CFG_OPERATE_TYPE emCfgOpType, int nChannelID,
  74753. void* szOutBuffer, DWORD dwOutBufferSize, int waittime=NET_INTERFACE_DEFAULT_TIMEOUT, void *reserve = NULL);
  74754. ///@brief 设置配置信息(szInBuffer内存由用户申请释放, 具体见枚举类型说明)
  74755. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetConfig(LLONG lLoginID, NET_EM_CFG_OPERATE_TYPE emCfgOpType, int nChannelID,
  74756. void* szInBuffer, DWORD dwInBufferSize, int waittime=NET_INTERFACE_DEFAULT_TIMEOUT, int *restart = NULL, void *reserve = NULL);
  74757. ///@brief 设置网络自适应编码缓冲策略入参
  74758. typedef struct tagNET_IN_BUFFER_POLICY
  74759. {
  74760. DWORD dwSize;
  74761. DH_RealPlayType emRealPlayType; // 码流类型。只支持主码流,辅码流,自适应测试码流
  74762. UINT nPolicy; // 缓冲策略,0默认,1流畅,2实时
  74763. }NET_IN_BUFFER_POLICY;
  74764. ///@brief 设置编码缓冲策略,pInBuf内存由用户申请释放
  74765. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRealplayBufferPolicy(LLONG lPlayHandle,NET_IN_BUFFER_POLICY* pInBuf,int nWaitTime);
  74766. //////////////////////////////////////////////////////////////////////
  74767. ///@brief TestOSD 操作类型
  74768. typedef enum tagEM_TESTOSD_OPERATE_TYPE
  74769. {
  74770. EM_TESTOSD_ADD_TEXT, // 添加文字信息 对应 NET_IN_TESTOSD_ADD_TEXT 和 NET_OUT_TESTOSD_ADD_TEXT
  74771. EM_TESTOSD_GET_TEXT, // 获取文字信息 对应 NET_IN_TESTOSD_GET_TEXT 和 NET_OUT_TESTOSD_GET_TEXT
  74772. EM_TESTOSD_MODIFY_TEXT, // 修改文字信息 对应 NET_IN_TESTOSD_MODIFY_TEXT 和 NET_OUT_TESTOSD_MODIFY_TEXT
  74773. EM_TESTOSD_DELETE_TEXT, // 删除文字信息 对应 NET_IN_TESTOSD_DELETE_TEXT 和 NET_OUT_TESTOSD_DELETE_TEXT
  74774. EM_TESTOSD_ADD_PICTURE, // 增加图片信息 对应 NET_IN_TESTOSD_ADD_PIC 和 NET_OUT_TESTOSD_ADD_PIC
  74775. EM_TESTOSD_GET_PICTURE, // 获取图片信息 对应 NET_IN_TESTOSD_GET_PIC 和 NET_OUT_TESTOSD_GET_PIC
  74776. EM_TESTOSD_DELETE_PICTURE, // 删除图片信息 对应 NET_IN_TESTOSD_DELETE_PIC 和 NET_OUT_TESTOSD_DELETE_PIC
  74777. }EM_TESTOSD_OPERATE_TYPE;
  74778. ///@brief 文本信息
  74779. typedef struct tagNET_TEXT_OSD
  74780. {
  74781. char szText[DH_COMMON_STRING_256]; // 文本内容
  74782. DH_POINT stuPoint; // 文本位置
  74783. NET_COLOR_RGBA stuTextColor; // 文本颜色
  74784. int nFontSize; // 文本字体大小 0-正常大小 1-小字体 2-大号字体
  74785. BYTE byReserved[44]; // 保留字节
  74786. }NET_TEXT_OSD;
  74787. ///@brief 图片类型
  74788. typedef enum tagEM_OSDPIC_TYPE
  74789. {
  74790. EM_OSDPIC_UNKNOWN, // 未知照片
  74791. EM_OSDPIC_HEADONFACE, // 正面照
  74792. EM_OSDPIC_SIDEFACE, // 侧面照
  74793. EM_OSDPIC_MAP, // 地图
  74794. }EM_OSDPIC_TYPE;
  74795. ///@brief 图片信息
  74796. typedef struct tagNET_PICTURE_OSD
  74797. {
  74798. EM_OSDPIC_TYPE emPictureType; // 图片类型
  74799. NET_RECT stuPictureLocation; // 图片位置
  74800. BYTE byReserved[48]; // 保留字节
  74801. }NET_PICTURE_OSD;
  74802. ///@brief 添加文字信息入参
  74803. typedef struct tagNET_IN_TESTOSD_ADD_TEXT
  74804. {
  74805. DWORD dwSize;
  74806. int nMaxCount; // 输入最大有效个数
  74807. NET_TEXT_OSD *pstuTextInfo; // 文字信息, 用户申请, 个数为 nMaxCount
  74808. }NET_IN_TESTOSD_ADD_TEXT;
  74809. ///@brief 添加文字信息出参
  74810. typedef struct tagNET_OUT_TESTOSD_ADD_TEXT
  74811. {
  74812. DWORD dwSize;
  74813. int nReturnCount; // 返回有效个数
  74814. int *pnTextID; // 文字信息对应的ID号, 用户申请, 个数为 nMaxCount
  74815. int *pnReturnCode; // 操作返回码, 0-成功 1-失败, 用户申请, 个数为 nMaxCount
  74816. }NET_OUT_TESTOSD_ADD_TEXT;
  74817. ///@brief 获取文字信息入参
  74818. typedef struct tagNET_IN_TESTOSD_GET_TEXT
  74819. {
  74820. DWORD dwSize;
  74821. int nMaxCount; // 输入最大有效个数
  74822. int *pnTextID; // 文字信息对应的ID号, 用户申请, 个数为 nMaxCount
  74823. }NET_IN_TESTOSD_GET_TEXT;
  74824. ///@brief 获取文字信息出参
  74825. typedef struct tagNET_OUT_TESTOSD_GET_TEXT
  74826. {
  74827. DWORD dwSize;
  74828. int nReturnCount; // 返回有效个数
  74829. NET_TEXT_OSD *pstuTextInfo; // 文字信息, 用户申请, 个数为 nMaxCount
  74830. }NET_OUT_TESTOSD_GET_TEXT;
  74831. ///@brief 修改文字信息入参
  74832. typedef struct tagNET_IN_TESTOSD_MODIFY_TEXT
  74833. {
  74834. DWORD dwSize;
  74835. int nMaxCount; // 输入最大有效个数
  74836. int *pnTextID; // 文字信息对应的ID号, 用户申请, 个数为 nMaxCount
  74837. NET_TEXT_OSD *pstuTextInfo; // 文字信息, 用户申请, 个数为 nMaxCount
  74838. }NET_IN_TESTOSD_MODIFY_TEXT;
  74839. ///@brief 修改文字信息出参
  74840. typedef struct tagNET_OUT_TESTOSD_MODIFY_TEXT
  74841. {
  74842. DWORD dwSize;
  74843. int nReturnCount; // 返回有效个数
  74844. int *pnReturnCode; // 操作返回码, 0-成功 1-失败 用户申请, 个数为入参的nValidCount
  74845. }NET_OUT_TESTOSD_MODIFY_TEXT;
  74846. ///@brief 删除文字信息入参
  74847. typedef struct tagNET_IN_TESTOSD_DELETE_TEXT
  74848. {
  74849. DWORD dwSize;
  74850. int nMaxCount; // 输入最大有效个数
  74851. int *pnTextID; // 文字信息对应的ID号
  74852. }NET_IN_TESTOSD_DELETE_TEXT;
  74853. ///@brief 删除文字信息出参
  74854. typedef struct tagNET_OUT_TESTOSD_DELETE_TEXT
  74855. {
  74856. DWORD dwSize;
  74857. int nReturnCount; // 返回有效个数
  74858. int *pnReturnCode; // 操作返回码, 0-成功 1-失败
  74859. }NET_OUT_TESTOSD_DELETE_TEXT;
  74860. ///@brief 添加图片入参
  74861. typedef struct tagNET_IN_TESTOSD_ADD_PIC
  74862. {
  74863. DWORD dwSize;
  74864. int nMaxCount; // 输入最大有效个数
  74865. char (*pszFilePath)[MAX_PATH]; // 图片存储完整路径
  74866. NET_PICTURE_OSD *pstuPicture;
  74867. }NET_IN_TESTOSD_ADD_PIC;
  74868. ///@brief 添加图片出参
  74869. typedef struct tagNET_OUT_TESTOSD_ADD_PIC
  74870. {
  74871. DWORD dwSize;
  74872. int nReturnCount; // 返回有效个数
  74873. int *pnReturnCode; // 操作返回码, 0-成功 1-失败
  74874. }NET_OUT_TESTOSD_ADD_PIC;
  74875. ///@brief 获取图片入参
  74876. typedef struct tagNET_IN_TESTOSD_GET_PIC
  74877. {
  74878. DWORD dwSize;
  74879. int nCount; // 获取图片张数
  74880. }NET_IN_TESTOSD_GET_PIC;
  74881. ///@brief 获取图片出参
  74882. typedef struct tagNET_OUT_TESTOSD_GET_PIC
  74883. {
  74884. DWORD dwSize;
  74885. int nReturnCount; // 返回有效个数
  74886. char (*pszFilePath)[MAX_PATH]; // 图片存储完整路径
  74887. NET_PICTURE_OSD *pstuPicture;
  74888. }NET_OUT_TESTOSD_GET_PIC;
  74889. ///@brief 删除图片入参
  74890. typedef struct tagNET_IN_TESTOSD_DELETE_PIC
  74891. {
  74892. DWORD dwSize;
  74893. int nMaxCount; // 输入最大有效个数
  74894. char (*pszFilePath)[MAX_PATH]; // 图片存储完整路径
  74895. }NET_IN_TESTOSD_DELETE_PIC;
  74896. ///@brief 删除图片 出参
  74897. typedef struct tagNET_OUT_TESTOSD_DELETE_PIC
  74898. {
  74899. DWORD dwSize;
  74900. int nReturnCount; // 返回有效个数
  74901. int *pnReturnCode; // 操作返回码, 0-成功 1-失败
  74902. }NET_OUT_TESTOSD_DELETE_PIC;
  74903. ///@brief 获取报警事件日志入参
  74904. typedef struct tagNET_IN_GET_ALARM_EVENT_LOG
  74905. {
  74906. DWORD dwSize;
  74907. UINT nEventID; // 事件ID
  74908. }NET_IN_GET_ALARM_EVENT_LOG;
  74909. ///@brief 获取报警事件日志出参
  74910. typedef struct tagNET_OUT_GET_ALARM_EVENT_LOG
  74911. {
  74912. DWORD dwSize;
  74913. DWORD dwAlarmType; // 报警事件类型
  74914. BYTE *byAlarmData; // 报警事件数据,由用户申请,最少申请2*1024字节
  74915. int nMaxDataLen; // 报警事件数据申请最大长度
  74916. int nRetDataLen; // 实际返回的事件长度
  74917. }NET_OUT_GET_ALARM_EVENT_LOG;
  74918. ///@brief 获取报警事件日志
  74919. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEventLog(LLONG lLoginID, const NET_IN_GET_ALARM_EVENT_LOG *pstuInParam, NET_OUT_GET_ALARM_EVENT_LOG *pstuOutParam, int nWaitTime);
  74920. ///@brief TestOSD操作接口
  74921. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateTestOSD(LLONG lLoginID, EM_TESTOSD_OPERATE_TYPE emOperateType, void *pInParam, void *pOutParam, int nWaitTime);
  74922. ///@brief 锁定和解锁组合通道和逻辑通道入参
  74923. typedef struct tagNET_IN_COURSECOMPOSITE_LOCK_CONTROL
  74924. {
  74925. DWORD dwSize;
  74926. BOOL bLock; // TRUE锁定,FALSE 解锁
  74927. int nClassRoomID; // 教室ID号
  74928. int nLogicChannel; // 逻辑通道号
  74929. }NET_IN_COURSECOMPOSITE_LOCK_CONTROL;
  74930. ///@brief 锁定和解锁组合通道和逻辑通道出参
  74931. typedef struct tagNET_OUT_COURSECOMPOSITE_LOCK_CONTROL
  74932. {
  74933. DWORD dwSize;
  74934. }NET_OUT_COURSECOMPOSITE_LOCK_CONTROL;
  74935. ///@brief 获取锁定状态入参
  74936. typedef struct tagNET_IN_COURSECOMPOSITE_GET_LOCKINFO
  74937. {
  74938. DWORD dwSize;
  74939. int nClassRoomID; // 教室ID号
  74940. int nLogicChannel; // 逻辑通道号
  74941. }NET_IN_COURSECOMPOSITE_GET_LOCKINFO;
  74942. ///@brief 获取锁定状态出参
  74943. typedef struct tagNET_OUT_COURSECOMPOSITE_GET_LOCKINFO
  74944. {
  74945. DWORD dwSize;
  74946. BOOL bState; // 锁定状态
  74947. }NET_OUT_COURSECOMPOSITE_GET_LOCKINFO;
  74948. ///@brief CLIENT_GetDevCaps NET_GET_ADVERTIMENT_CAPS 入参
  74949. typedef struct tagNET_IN_GET_ADVERTIMENT_CAPS
  74950. {
  74951. DWORD dwSize; //结构体大小
  74952. }NET_IN_GET_ADVERTIMENT_CAPS;
  74953. ///@brief 广告文件存储方式类型集合
  74954. typedef enum tagEM_FILE_STORAGE_TYPE
  74955. {
  74956. EM_FILE_STORAGE_TYPE_UNKNOWN, // 未知
  74957. EM_FILE_STORAGE_TYPE_LOCAL, // 设备直接从本地存储路径去取文件(这个文件平台可以通过FileManager.uploadFile上传到设备本地)
  74958. EM_FILE_STORAGE_TYPE_FTP, // 广告文件存储在FTP服务器上,需要设备去FTP服务器上下载(楼宇以前都走这种方式)
  74959. EM_FILE_STORAGE_TYPE_HTTP, // 设备从云平台给的http的URL链接去下载
  74960. }EM_FILE_STORAGE_TYPE;
  74961. ///@brief 文件存储信息
  74962. typedef struct tagNET_LOCAL_STORAGE_INFO
  74963. {
  74964. char szPath[256]; // 广告文件存储的设备本地路径,客户端上传广告文件到设备本地
  74965. BYTE byReserved[128]; // 预留字节
  74966. }NET_LOCAL_STORAGE_INFO;
  74967. ///@brief 设备支持的编码格式集合
  74968. typedef enum tagEM_ADVERTISEMENT_STREAM_TYPE
  74969. {
  74970. EM_ADVERTISEMENT_STREAM_TYPE_UNKNOWN, // 未知
  74971. EM_ADVERTISEMENT_STREAM_TYPE_H264, // H264的格式
  74972. EM_ADVERTISEMENT_STREAM_TYPE_H264_PRIVATE, // H264编码的dav视频
  74973. EM_ADVERTISEMENT_STREAM_TYPE_H265, // H265的格式
  74974. EM_ADVERTISEMENT_STREAM_TYPE_H265_PRIVATE, // H265编码的dav视频
  74975. EM_ADVERTISEMENT_STREAM_TYPE_MPEG4, // MPEG4编码
  74976. EM_ADVERTISEMENT_STREAM_TYPE_MPEG4_PRIVATE, // MPEG4编码的dav格式
  74977. }EM_ADVERTISEMENT_STREAM_TYPE;
  74978. ///@brief 广告视频文件包含的视频文件对应的格式能力
  74979. typedef struct tagNET_ADVERTISEMENT_VIDEO
  74980. {
  74981. BOOL bSupport; // 是否支持视频广告播放
  74982. int nStreamTypeNum; // 设备支持编码格式集合个数
  74983. EM_ADVERTISEMENT_STREAM_TYPE emAdvertiseMentType[32]; // 设备支持的编码格式集合
  74984. UINT nMinWidth; // 视频宽的最小像素点
  74985. UINT nMaxWidth; // 视频宽的最大像素点
  74986. UINT nMinHeight; // 视频高的最小像素点
  74987. UINT nMaxHeight; // 视频高的最大像素点
  74988. BYTE byReserved[128]; // 预留字节
  74989. }NET_ADVERTISEMENT_VIDEO;
  74990. ///@brief 采样深度
  74991. typedef enum tagEM_DEPTH_NUM
  74992. {
  74993. EM_DEPTH_NUM_UNKNOWN, // 未知
  74994. EM_DEPTH_NUM_EIGHT = 8, // 8
  74995. EM_DEPTH_NUM_SIXTEEN = 16, // 16
  74996. EM_DEPTH_NUM_TWENTYFOUR = 24, // 24
  74997. }EM_DEPTH_NUM;
  74998. ///@brief 支持音频解码格式列表
  74999. typedef struct tagNET_FORMATS_INFO
  75000. {
  75001. EM_SPEAK_AUDIO_TYPE emCompressionType; // 音频压缩格式
  75002. UINT nFrequency; // 音频采样频率,取值范围:8000-192000
  75003. EM_DEPTH_NUM emDepthNum; // 采样深度
  75004. int nPacketPeriod; // 打包周期,单位ms取值范围:[10, 250]
  75005. BYTE byReserved[128]; // 预留字节
  75006. }NET_FORMATS_INFO;
  75007. ///@brief 广告文件包含的音频文件对应的能力
  75008. typedef struct tagNET_AUDIO_INFO
  75009. {
  75010. BOOL bSupport; // 是否支持音频广告播放
  75011. int nFormatNum; // 支持音频解码格式个数
  75012. NET_FORMATS_INFO stuFormatInfo[64]; // 支持音频解码格式列表是一个数组,最多支持64个返回。每个成员表示一个解码参数的组合
  75013. }NET_AUDIO_INFO;
  75014. ///@brief 图片广告文件编码格式能力集合
  75015. typedef enum tagEM_ADVETTISEMENT_PICTURE_TYPE
  75016. {
  75017. EM_PICTURE_ADVETTISEMENT_TYPE_UNKNOWN, // 未知
  75018. EM_PICTURE_ADVETTISEMENT_TYPE_PNG, // PNG格式
  75019. EM_PICTURE_ADVETTISEMENT_TYPE_JPG, // JPG格式
  75020. EM_PICTURE_ADVETTISEMENT_TYPE_BMP, // BMP格式
  75021. }EM_ADVETTISEMENT_PICTURE_TYPE;
  75022. ///@brief 广告文件包含的图片文件对应的格式能力
  75023. typedef struct tagNET_PICTURE_INFO
  75024. {
  75025. BOOL bSupport; // 是否支持图片广告播放
  75026. int nPictureNum; // 图片广告文件编码格式能力个数
  75027. EM_ADVETTISEMENT_PICTURE_TYPE emAdPictureType[32]; // 图片广告文件编码格式能力集合
  75028. UINT nMinWidth; // 图片宽的最小像素点
  75029. UINT nMaxWidth; // 图片宽的最大像素点
  75030. UINT nMinHeight; // 图片高的最小像素点
  75031. UINT nMaxHeight; // 图片高的最大像素点
  75032. UINT nOnePicMaxSize; // 单张图片文件最大大小,单位为KB
  75033. UINT nMaxPicNums; // 最大支持的图片张数
  75034. BYTE byReserved[128]; // 预留字节
  75035. }NET_PICTURE_INFO;
  75036. ///@brief CLIENT_GetDevCaps NET_GET_ADVERTIMENT_CAPS 入参
  75037. typedef struct tagNET_OUT_GET_ADVERTIMENT_CAPS
  75038. {
  75039. DWORD dwSize; // 结构体大小
  75040. BOOL bSupport; // 是否支持广告投放
  75041. int nFileStorageTypeNum; // 广告文件存储方式类型集合个数
  75042. EM_FILE_STORAGE_TYPE emFileStorageType[32]; // 广告文件存储方式类型集合
  75043. NET_LOCAL_STORAGE_INFO stuLocalStorage; // 当FileStorageType为EM_FILE_STORAGE_TYPE_LOCAL时候,则这个存在
  75044. NET_ADVERTISEMENT_VIDEO stuAdvertimentVideo; // 广告视频文件包含的视频文件对应的格式能力
  75045. NET_AUDIO_INFO stuAudio; // 广告文件包含的音频文件对应的能力
  75046. UINT nOneAVFileMaxSize; // 单个音视频广告文件大小,单位为KB
  75047. UINT nMaxAVFileNums; // 最大支持的音视频广告文件个数
  75048. NET_PICTURE_INFO stuPicture; // 广告文件包含的图片文件对应的格式能力
  75049. }NET_OUT_GET_ADVERTIMENT_CAPS;
  75050. ///@brief 查询设备中投放的图片和视频文件入参
  75051. typedef struct tagNET_IN_CTRL_QUERY_DELIVERYE_FILE
  75052. {
  75053. DWORD dwSize; //结构体大小
  75054. }NET_IN_CTRL_QUERY_DELIVERYE_FILE;
  75055. ///@brief 查询设备中投放的图片和视频文件扩展入参
  75056. typedef struct tagNET_IN_CTRL_QUERY_DELIVERYE_FILE_EX
  75057. {
  75058. DWORD dwSize; //结构体大小
  75059. }NET_IN_CTRL_QUERY_DELIVERYE_FILE_EX;
  75060. ///@brief 设备中广告机信息的相关配置
  75061. typedef struct tagNET_QUERY_DELIVERY_FILE_INFO
  75062. {
  75063. BOOL bDownloaded; //文件是否已经下载到设备中
  75064. EM_DELIVERY_FILE_TYPE emFileType; //文件类型
  75065. char szLocalPath[128]; //文件下载到设备中的路径
  75066. int nSustain; //每张图片停留多长时间,仅在FileType为Image时有效
  75067. char szURL[128]; //文件的资源地址
  75068. char szURLEx[512]; //文件的资源地址扩展字段
  75069. BYTE bReserved[512]; // 预留字节
  75070. }NET_QUERY_DELIVERY_FILE_INFO;
  75071. ///@brief 设备中广告机信息的相关配置(扩展)
  75072. typedef struct tagNET_QUERY_DELIVERY_FILE_INFOEX
  75073. {
  75074. BOOL bDownloaded; //文件是否已经下载到设备中
  75075. EM_DELIVERY_FILE_TYPE emFileType; //文件类型
  75076. char szLocalPath[128]; //文件下载到设备中的路径
  75077. int nSustain; //每张图片停留多长时间,仅在FileType为Image时有效
  75078. char szURL[128]; //文件的资源地址
  75079. char szURLEx[512]; //文件的资源地址扩展字段
  75080. NET_CFG_TIME_SCHEDULE stuTimeSection; //播放时间段。
  75081. int nSize; // 文件大小
  75082. int nID; // 文件编号
  75083. BYTE bReserved[1024]; // 预留字节
  75084. }NET_QUERY_DELIVERY_FILE_INFOEX;
  75085. ///@brief 查询设备中投放的图片和视频文件出参
  75086. typedef struct tagNET_OUT_CTRL_QUERY_DELIVERYE_FILE
  75087. {
  75088. DWORD dwSize; // 结构体大小
  75089. BOOL bEnable; // 播放使能
  75090. NET_TIME stuStartPlayTime; // 开始播放的时间
  75091. NET_TIME stuStopPlayTime; // 结束播放的时间
  75092. char szMode[20]; // 播放模式
  75093. int nFileCount; // 设备中存在的文件个数
  75094. NET_QUERY_DELIVERY_FILE_INFO stuFileInfo[MAX_VIDEO_FILE_LIST_NUM]; // 视频文件列表(推荐使用stuFileInfoEx)
  75095. EM_VIDEO_PLAY_MODE_TYPE emPlayMode; // 播放类型
  75096. int nFileCountEx; // 设备中存在的文件个数
  75097. NET_QUERY_DELIVERY_FILE_INFOEX stuFileInfoEx[MAX_VIDEO_FILE_LIST_NUM]; // 视频文件列表
  75098. char szName[128]; // 广告名称
  75099. int nNumber; // 当前广告计划编号
  75100. NET_CFG_TIME_SCHEDULE stuTimeSection; // 播放时间段
  75101. }NET_OUT_CTRL_QUERY_DELIVERYE_FILE;
  75102. ///@brief 查询设备中投放的图片和视频文件扩展出参
  75103. typedef struct tagNET_OUT_CTRL_QUERY_DELIVERYE_FILE_EX
  75104. {
  75105. DWORD dwSize; // 结构体大小
  75106. int nFileNum; // 广告计划数量,用户填写
  75107. int nRetFileNum; // 广告计划数量,实际设备返回数
  75108. NET_OUT_CTRL_QUERY_DELIVERYE_FILE* pDeliveredFile; // 广告计划
  75109. }NET_OUT_CTRL_QUERY_DELIVERYE_FILE_EX;
  75110. ///@brief 获取组合通道信息入参
  75111. typedef struct tagNET_IN_COURSECOMPOSITE_GET_INFO
  75112. {
  75113. DWORD dwSize;
  75114. int nClassRoomId; // 教室ID号
  75115. }NET_IN_COURSECOMPOSITE_GET_INFO;
  75116. ///@brief 录制模式
  75117. typedef enum tagEM_COMPOSITECHANNEL_MODE
  75118. {
  75119. EM_COMPOSITECHANNEL_CUSTOMER = -1, // 自定义
  75120. EM_COMPOSITECHANNEL_INVALID, // 无效
  75121. EM_COMPOSITECHANNEL_MOVIE, // 电影模式
  75122. EM_COMPOSITECHANNEL_NORMALCY, // 常态模式
  75123. EM_COMPOSITECHANNEL_PICK, // 精品模式
  75124. }EM_COMPOSITECHANNEL_MODE;
  75125. ///@brief 组合通道信息
  75126. typedef struct tagNET_COMPOSITECHANNEL_INFO
  75127. {
  75128. char szCourseName[DH_COMMON_STRING_128]; // 课程名称
  75129. char szTeacherName[DH_COMMON_STRING_64]; // 教师名称
  75130. int nCompositeChannelMode; // 录制模式; 0:无效;1:电影模式; 2:常态模式; 3:精品模式; <0:用户自定义模式
  75131. int nChannelNum; // 逻辑通道数量
  75132. BOOL bCanStream[MAX_COURSE_LOGIC_CHANNEL]; // 是否能拉流,下标对应为逻辑通道号
  75133. BYTE byReserved[256];
  75134. }NET_COMPOSITECHANNEL_INFO;
  75135. ///@brief 获取组合通道信息出参
  75136. typedef struct tagNET_OUT_COURSECOMPOSITE_GET_INFO
  75137. {
  75138. DWORD dwSize;
  75139. NET_COMPOSITECHANNEL_INFO stuChannelInfo; // 组合通道信息
  75140. }NET_OUT_COURSECOMPOSITE_GET_INFO;
  75141. ///@brief 设置组合通道信息入参
  75142. typedef struct tagNET_IN_COURSECOMPOSITE_SET_INFO
  75143. {
  75144. DWORD dwSize;
  75145. int nClassRoomId; // 教室ID号
  75146. NET_COMPOSITECHANNEL_INFO stuChannelInfo; // 组合通道信息
  75147. }NET_IN_COURSECOMPOSITE_SET_INFO;
  75148. ///@brief 设置组合通道信息出参
  75149. typedef struct tagNET_OUT_COURSECOMPOSITE_SET_INFO
  75150. {
  75151. DWORD dwSize;
  75152. }NET_OUT_COURSECOMPOSITE_SET_INFO;
  75153. ///@brief 组合通道信息更新到time入参
  75154. typedef struct tagNET_IN_COURSECOMPOSITE_UPDATE_INFO
  75155. {
  75156. DWORD dwSize;
  75157. int nClassRoomId; // 教室ID号
  75158. NET_TIME stuTime; // 查询时间
  75159. }NET_IN_COURSECOMPOSITE_UPDATE_INFO;
  75160. ///@brief 组合通道信息更新到time出参
  75161. typedef struct tagNET_OUT_COURSECOMPOSITE_UPDATE_INFO
  75162. {
  75163. DWORD dwSize;
  75164. }NET_OUT_COURSECOMPOSITE_UPDATE_INFO;
  75165. ///@brief 录播主机组合通道操作
  75166. typedef enum tagEM_COURSECOMPOSITE_OPERATE_TYPE
  75167. {
  75168. EM_COURSECOMPOSITE_TYPE_LOCK_CONTROL, //控制组合通道与逻辑通道,对应结构体pInParam = NET_IN_COURSECOMPOSITE_LOCK_CONTROL,pOutParam = NET_OUT_COURSECOMPOSITE_LOCK_CONTROL
  75169. EM_COURSECOMPOSITE_TYPE_GET_LOCKINFO, //获取组合通道与逻辑通道的锁定信息,对应结构体pInParam = NET_IN_COURSECOMPOSITE_GET_LOCKINFO,pOutParam = NET_OUT_COURSECOMPOSITE_GET_LOCKINFO
  75170. EM_COURSECOMPOSITE_TYPE_GET_INFO, //获取组合通道信息,对应结构体pInParam = NET_IN_COURSECOMPOSITE_GET_INFO,pOutParam = NET_OUT_COURSECOMPOSITE_GET_INFO
  75171. EM_COURSECOMPOSITE_TYPE_SET_INFO, //设置组合通道信息,对应结构体pInParam = NET_IN_COURSECOMPOSITE_SET_INFO,pOutParam = NET_OUT_COURSECOMPOSITE_SET_INFO
  75172. EM_COURSECOMPOSITE_TYPE_UPDATE_INFO, //将组合通道信息更新到time时的信息,对应结构体 pInParam = NET_IN_COURSECOMPOSITE_UPDATE_INFO, pOutParam = NET_OUT_COURSECOMPOSITE_UPDATE_INFO
  75173. }EM_COURSECOMPOSITE_OPERATE_TYPE;
  75174. ///@brief 录播主机组合通道操作
  75175. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateCourseCompositeChannel(LLONG lLoginID, EM_COURSECOMPOSITE_OPERATE_TYPE emOperateType, void *pInParam, void *pOutParam, int nWaitTime);
  75176. #define NET_MAX_WINDOWS_NUMBER 64 // 录播主机窗口最大个数
  75177. #define NET_MAX_MODE_NUMBER 64 // 录播主机模式最大个数
  75178. ///@brief 录播主机窗口信息
  75179. typedef struct tagNET_COMPOSITECHANNELMODE_WINDOWS
  75180. {
  75181. DH_RECT stRect; // 窗口坐标, 采用8192坐标体系
  75182. int nLogicChannel; // 逻辑通道号, 为-1表示此窗口没有绑定通道
  75183. int nZOrder; // Z序
  75184. BYTE byReserved[64]; // 保留字节
  75185. }NET_COMPOSITECHANNELMODE_WINDOWS;
  75186. ///@brief 录播主机模式信息
  75187. typedef struct tagNET_COMPOSITECHANNELMODE_INFO
  75188. {
  75189. char szName[DH_COMMON_STRING_128]; // 模式名称
  75190. int nWindowNum; // 实际窗口个数
  75191. NET_COMPOSITECHANNELMODE_WINDOWS stWindows[NET_MAX_WINDOWS_NUMBER]; // 窗口信息
  75192. BYTE byReserved[64]; // 保留字节
  75193. }NET_COMPOSITECHANNELMODE_INFO;
  75194. ///@brief 录播主机添加模式入参
  75195. typedef struct tagNET_IN_COURSECOMPOSITE_CHANNEL_MODE_ADD
  75196. {
  75197. DWORD dwSize; // 结构体大小
  75198. int nCount; // 要添加的模式数目
  75199. NET_COMPOSITECHANNELMODE_INFO stModeInfo[NET_MAX_MODE_NUMBER]; // 模式信息
  75200. }NET_IN_COURSECOMPOSITE_CHANNEL_MODE_ADD;
  75201. ///@brief 录播主机添加模式返回信息
  75202. typedef struct tagNET_COURSECOMPOSITE_CHANNEL_MODE_ADD_RESULT
  75203. {
  75204. int nMode; // 模式, 0 无效, 1 电影模式, 2 常态模式, 3 精品模式, 小于0 自定义模式
  75205. int nReturnCode; // 返回码, 1 成功, 2 失败, 3 已满, 4 资源不足
  75206. BYTE byReserved[64]; // 保留字节
  75207. }NET_COURSECOMPOSITE_CHANNEL_MODE_ADD_RESULT;
  75208. ///@brief 录播主机添加模式出参
  75209. typedef struct tagNET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD
  75210. {
  75211. DWORD dwSize; // 结构体大小
  75212. int nCount; // 实际返回个数
  75213. NET_COURSECOMPOSITE_CHANNEL_MODE_ADD_RESULT stResult[NET_MAX_MODE_NUMBER]; // 返回数组
  75214. }NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD;
  75215. ///@brief 录播主机删除模式入参
  75216. typedef struct tagNET_IN_COURSECOMPOSITE_CHANNEL_MODE_DELETE
  75217. {
  75218. DWORD dwSize; // 结构体大小
  75219. int nModeNum; // 删除的模式个数
  75220. int nMode[NET_MAX_MODE_NUMBER]; // 删除的模式编号
  75221. }NET_IN_COURSECOMPOSITE_CHANNEL_MODE_DELETE;
  75222. ///@brief 录播主机删除模式出参
  75223. typedef struct tagNET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE
  75224. {
  75225. DWORD dwSize; // 结构体大小
  75226. int nReturnNum; // 删除的模式个数
  75227. int nReturnCode[NET_MAX_MODE_NUMBER]; // 返回码: 1 成功, 2 失败
  75228. }NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE;
  75229. ///@brief 录播主机修改模式入参
  75230. typedef struct tagNET_IN_COURSECOMPOSITE_CHANNEL_MODE_MODIFY
  75231. {
  75232. DWORD dwSize; // 结构体大小
  75233. int nModeNum; // 修改的模式个数
  75234. int nMode[NET_MAX_MODE_NUMBER]; // 模式编号
  75235. NET_COMPOSITECHANNELMODE_INFO stModeInfo[NET_MAX_MODE_NUMBER]; // 模式信息
  75236. }NET_IN_COURSECOMPOSITE_CHANNEL_MODE_MODIFY;
  75237. ///@brief 录播主机修改模式出参
  75238. typedef struct tagNET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY
  75239. {
  75240. DWORD dwSize; // 结构体大小
  75241. int nReturnNum; // 修改的模式个数, 和修改的模式个数相同
  75242. int nReturnCode[NET_MAX_MODE_NUMBER]; // 返回码: 1 成功, 2 失败, 3, 已满, 4 资源不足
  75243. }NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY;
  75244. ///@brief 录播主机获取模式入参
  75245. typedef struct tagNET_IN_COURSECOMPOSITE_CHANNEL_MODE_GET
  75246. {
  75247. DWORD dwSize; // 结构体大小
  75248. int nCount; // 要获取的模式个数
  75249. }NET_IN_COURSECOMPOSITE_CHANNEL_MODE_GET;
  75250. ///@brief 录播主机获取模式出参
  75251. typedef struct tagNET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET
  75252. {
  75253. DWORD dwSize; // 结构体大小
  75254. int nReturnNum; // 实际获取的模式个数
  75255. int nMode[NET_MAX_MODE_NUMBER]; // 模式编号
  75256. NET_COMPOSITECHANNELMODE_INFO stModeInfo[NET_MAX_MODE_NUMBER]; // 模式信息
  75257. }NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET;
  75258. ///@brief 录播主机组合通道模式操作
  75259. typedef enum tagNET_COURSECOMPOSITE_MODE_OPERATE_TYPE
  75260. {
  75261. NET_COURSECOMPOSITE_MODE_ADD, // 添加模式,对应结构体pInParam = NET_IN_COURSECOMPOSITE_CHANNEL_MODE_ADD, pOutParam = NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_ADD
  75262. NET_COURSECOMPOSITE_MODE_DELETE, // 删除模式,对应结构体pInParam = NET_IN_COURSECOMPOSITE_CHANNEL_MODE_DELETE, pOutParam = NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_DELETE
  75263. NET_COURSECOMPOSITE_MODE_MODIFY, // 修改模式,对应结构体pInParam = NET_IN_COURSECOMPOSITE_CHANNEL_MODE_MODIFY, pOutParam = NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_MODIFY
  75264. NET_COURSECOMPOSITE_MODE_GET, // 获取模式,对应结构体pInParam = NET_IN_COURSECOMPOSITE_CHANNEL_MODE_GET, pOutParam = NET_OUT_COURSECOMPOSITE_CHANNEL_MODE_GET
  75265. }NET_COURSECOMPOSITE_MODE_OPERATE_TYPE;
  75266. ///@brief 录播主机组合通道模式操作
  75267. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateCourseCompositeChannelMode(LLONG lLoginID, NET_COURSECOMPOSITE_MODE_OPERATE_TYPE emOperateType, void *pInParam, void *pOutParam, int nWaitTime);
  75268. ///////////////////////////////////////////////////////////////////
  75269. #define NET_UPGRADE_COUNT_MAX 256 //最大升级个数
  75270. ///@brief 获取云升级信息入参
  75271. typedef struct tagNET_IN_UPGRADER_GETSERIAL
  75272. {
  75273. DWORD dwSize; // 此结构体大小
  75274. } NET_IN_UPGRADER_GETSERIAL;
  75275. ///@brief 云升级信息
  75276. typedef struct tagNET_UPGRADER_SERIAL_INO
  75277. {
  75278. ENUM_VENDOR_TYPE emVendor; //厂商
  75279. ENUM_STANDARD_TYPE emStandard; //视频制式
  75280. NET_TIME_EX stuBuild; //发布日期
  75281. char szChip[DH_COMMON_STRING_16]; //可升级的程序名
  75282. char szSerial[DH_COMMON_STRING_256]; // 内部型号
  75283. char szLanguage[DH_COMMON_STRING_128]; //语言
  75284. char szSn[DH_COMMON_STRING_64]; // 序列号
  75285. char szSWVersion[DH_COMMON_STRING_64]; // 软件版本
  75286. char szTag[DH_COMMON_STRING_256]; //自定义标记
  75287. char szTag2[DH_COMMON_STRING_256]; //自定义标记2
  75288. char reserved[1024];
  75289. }NET_UPGRADER_SERIAL_INO;
  75290. ///@brief 获取云升级信息出参
  75291. typedef struct tagNET_OUT_UPGRADER_GETSERIAL
  75292. {
  75293. DWORD dwSize; // 此结构体大小
  75294. NET_UPGRADER_SERIAL_INO stuSerialInfo[MAX_UPGRADER_SERIAL_INFO]; // 云升级信息
  75295. int nRetNum; // 返回个数
  75296. } NET_OUT_UPGRADER_GETSERIAL;
  75297. ///@brief 从设备获取信息,用于向私有云确认是否有升级包
  75298. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetUpdateSerial(LLONG lLoginID, NET_IN_UPGRADER_GETSERIAL *pstuInGetSerial, NET_OUT_UPGRADER_GETSERIAL *pstuOutGetSerial, int nWaitTime);
  75299. ///@brief 云升级软件检查入参
  75300. typedef struct tagNET_IN_CLOUD_UPGRADER_CHECK
  75301. {
  75302. DWORD dwSize;
  75303. ENUM_VENDOR_TYPE emVendor; //厂商
  75304. ENUM_STANDARD_TYPE emStandard; //视频制式
  75305. NET_TIME_EX stuBuild; //编译时间,用于比较版本
  75306. char szUrl[DH_COMMON_STRING_1024]; // 云URL
  75307. char szClass[DH_COMMON_STRING_64]; // 设备大类
  75308. char szSerial[DH_COMMON_STRING_256]; // 设备硬件信号系列
  75309. char szLanguage[DH_COMMON_STRING_128]; // 语言
  75310. char szSN[DH_COMMON_STRING_64]; // 设备序列号
  75311. char szSWVersion[DH_COMMON_STRING_64]; // 版本号,用于显示
  75312. char szTag1[DH_COMMON_STRING_256]; // 预留字段,可用于后续定制或扩展
  75313. char szTag2[DH_COMMON_STRING_256]; // 预留字段,可用于后续定制或扩展
  75314. char szAccessKeyId[DH_COMMON_STRING_128];//Access Key ID
  75315. char szSecretAccessKey[DH_COMMON_STRING_128];//Secret Access Key
  75316. }NET_IN_CLOUD_UPGRADER_CHECK;
  75317. ///@brief 云升级软件检查出参
  75318. typedef struct tagNET_OUT_CLOUD_UPGRADER_CHECK
  75319. {
  75320. DWORD dwSize;
  75321. BOOL bHasNewVersion; // 是否有可升级版本
  75322. char szVersion[DH_COMMON_STRING_64]; //版本信息
  75323. char szAttention[DH_COMMON_STRING_1024]; // 提醒设备升级的提示信息
  75324. char szPackageUrl[DH_COMMON_STRING_1024]; // 设备升级包的URL
  75325. char szPackageId[DH_COMMON_STRING_64]; //升级包ID
  75326. }NET_OUT_CLOUD_UPGRADER_CHECK;
  75327. ///@brief 检查云端是否有可升级软件, 使用HTTP协议
  75328. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloudUpgraderCheck(NET_IN_CLOUD_UPGRADER_CHECK *pIn, NET_OUT_CLOUD_UPGRADER_CHECK *pOut, DWORD dwWaitTime);
  75329. ///@brief 云下载状态
  75330. typedef enum tagemCloudDownloadState
  75331. {
  75332. emCloudDownloadState_Unknown, //未知
  75333. emCloudDownloadState_Success, //云下载成功(需要关闭句柄)
  75334. emCloudDownloadState_Failed, //云下载失败(不需要关闭句柄,会不断尝试下载)
  75335. emCloudDownloadState_Downloading, //正在下载中
  75336. emCloudDownloadState_NoEnoughDiskSpace, //磁盘空间不足
  75337. }emCloudDownloadState;
  75338. ///@brief 云下载回调函数指针
  75339. typedef void (CALLBACK *fCloudDownload_Process_callback)(LLONG lDownHandle, emCloudDownloadState emState, double dwDownloadSpeed, DWORD dwProgressPercentage, LDWORD dwUser);
  75340. ///@brief 云升级下载升级包入参
  75341. typedef struct tagNET_IN_CLOUD_UPGRADER_DOWN
  75342. {
  75343. DWORD dwSize;
  75344. char szPackageUrl[DH_COMMON_STRING_1024]; // 设备升级包的URL
  75345. char szSaveFile[DH_COMMON_STRING_1024]; //保存文件名
  75346. fCloudDownload_Process_callback pfProcessCallback; //进度回调
  75347. LDWORD dwUser; //回调用户数据
  75348. }NET_IN_CLOUD_UPGRADER_DOWN;
  75349. ///@brief 云升级下载升级包出参
  75350. typedef struct tagNET_OUT_CLOUD_UPGRADER_DOWN
  75351. {
  75352. DWORD dwSize;
  75353. }NET_OUT_CLOUD_UPGRADER_DOWN;
  75354. ///@brief 云 下载升级软件, 使用HTTP协议
  75355. CLIENT_NET_API LLONG CALL_METHOD CLIENT_CloudUpgraderDownLoad(NET_IN_CLOUD_UPGRADER_DOWN *pIn, NET_OUT_CLOUD_UPGRADER_DOWN *pOut);
  75356. ///@brief 停止云下载, 使用HTTP协议
  75357. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloudUpgraderStop(LLONG lDownloadHandle);
  75358. ///@brief 暂停云下载, 使用HTTP协议
  75359. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloudUpgraderPause(LLONG lDownloadHandle, BOOL bPause);
  75360. ///@brief 升级结果
  75361. typedef enum tagNET_UPGRADE_REPORT_RESULT
  75362. {
  75363. NET_UPGRADE_REPORT_RESULT_UNKNWON, //未知
  75364. NET_UPGRADE_REPORT_RESULT_SUCCESS, //成功
  75365. NET_UPGRADE_REPORT_RESULT_FAILED, //失败
  75366. }NET_UPGRADE_REPORT_RESULT;
  75367. ///@brief 上报升级结果结构体
  75368. typedef struct tagNET_UPGRADE_REPORT
  75369. {
  75370. int nDeviceNum; //设备个数
  75371. char szDevSerial[NET_UPGRADE_COUNT_MAX][MAX_COMMON_STRING_64]; // 序列号
  75372. char szPacketID[MAX_COMMON_STRING_128]; //升级包ID
  75373. NET_UPGRADE_REPORT_RESULT emResult; //升级结果
  75374. char szCode[MAX_COMMON_STRING_128]; // 错误码信息
  75375. char reserved[256];
  75376. }NET_UPGRADE_REPORT;
  75377. ///@brief 上报升级结果入参
  75378. typedef struct tagNET_IN_UPGRADE_REPORT
  75379. {
  75380. DWORD dwSize;
  75381. int nCount; // 升级包个数
  75382. NET_UPGRADE_REPORT *pstuUpgradeReport; //升级结果信息
  75383. char szAccessKeyId[DH_COMMON_STRING_128]; //访问ID
  75384. char szSecretAccessKey[DH_COMMON_STRING_128]; //访问秘钥
  75385. char szUrl[DH_COMMON_STRING_1024]; // 云URL
  75386. }NET_IN_UPGRADE_REPORT;
  75387. ///@brief 上报升级结果出参
  75388. typedef struct tagNET_OUT_UPGRADE_REPORT
  75389. {
  75390. DWORD dwSize;
  75391. }NET_OUT_UPGRADE_REPORT;
  75392. ///@brief 上报升级结果, 使用HTTP协议
  75393. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloudUpgraderReport(NET_IN_UPGRADE_REPORT *pIn, NET_OUT_UPGRADE_REPORT *pOut, DWORD dwWaitTime);
  75394. ///@brief 升级状态回调结构体
  75395. typedef struct tagNET_CLOUD_UPGRADER_STATE
  75396. {
  75397. DWORD dwSize;
  75398. EM_UPGRADE_STATE emState; // 升级状态
  75399. int nProgress; // 升级百分比
  75400. char szFileName[DH_COMMON_STRING_128]; // 升级文件
  75401. TP_U64 nTotalLen; // 升级文件总大小,单位字节
  75402. char szFileNameEx[256]; // 升级文件扩展
  75403. char szReserved[1024]; // 扩展字段
  75404. } NET_CLOUD_UPGRADER_STATE;
  75405. ///@brief 升级状态回调函数
  75406. typedef void (CALLBACK *fUpgraderStateCallback) (LLONG lLoginId, LLONG lAttachHandle, NET_CLOUD_UPGRADER_STATE* pBuf, DWORD dwBufLen, void* pReserved, LDWORD dwUser);
  75407. ///@brief 订阅升级状态入参
  75408. typedef struct tagNET_IN_CLOUD_UPGRADER_ATTACH_STATE
  75409. {
  75410. DWORD dwSize;
  75411. fUpgraderStateCallback cbUpgraderState;
  75412. LDWORD dwUser;
  75413. } NET_IN_CLOUD_UPGRADER_ATTACH_STATE;
  75414. ///@brief 订阅升级状态出参
  75415. typedef struct tagNET_OUT_CLOUD_UPGRADER_ATTACH_STATE
  75416. {
  75417. DWORD dwSize;
  75418. } NET_OUT_CLOUD_UPGRADER_ATTACH_STATE;
  75419. ///@brief 获取升级状态入参
  75420. typedef struct tagNET_IN_CLOUD_UPGRADER_GET_STATE
  75421. {
  75422. DWORD dwSize;
  75423. } NET_IN_CLOUD_UPGRADER_GET_STATE;
  75424. ///@brief 获取升级状态出参
  75425. typedef struct tagNET_OUT_CLOUD_UPGRADER_GET_STATE
  75426. {
  75427. DWORD dwSize;
  75428. EM_UPGRADE_STATE emState; // 升级状态
  75429. int nProgress; // 升级进度
  75430. char szFileName[DH_COMMON_STRING_128]; // 升级文件
  75431. } NET_OUT_CLOUD_UPGRADER_GET_STATE;
  75432. ///@brief 获取升级相关能力集入参
  75433. typedef struct tagNET_IN_UPGRADER_GET_CAPS
  75434. {
  75435. DWORD dwSize;
  75436. } NET_IN_UPGRADER_GET_CAPS;
  75437. ///@brief 支持给第三方升级
  75438. typedef enum tagEM_EXTERN_DEVICE_UPGRADE_TYPE
  75439. {
  75440. EM_EXTERN_DEVICE_UPGRADE_TYPE_UNKNOWN = -1, // 未知
  75441. EM_EXTERN_DEVICE_UPGRADE_TYPE_NO_SUPPORT, // 不支持
  75442. EM_EXTERN_DEVICE_UPGRADE_TYPE_SUPPORT, //.支持
  75443. }EM_EXTERN_DEVICE_UPGRADE_TYPE;
  75444. ///@brief 具体能力集信息
  75445. typedef struct tagNET_UPGRADER_CAPS
  75446. {
  75447. UINT nOfflineTransfer; // 支持远程下载升级包断点续传,0 不支持,默认值; 1 支持
  75448. UINT nRemoteDownload; // 支持远程下载升级包并升级,0 不支持; 1 支持,默认值
  75449. UINT nProtocol; // 类型掩码
  75450. // bit1表示http协议, 0:不支持, 1:支持
  75451. EM_EXTERN_DEVICE_UPGRADE_TYPE emExternDeviceUpgrade; // 第三方设备升级
  75452. BYTE byReserved[120]; // 保留字节
  75453. }NET_UPGRADER_CAPS;
  75454. ///@brief 获取升级相关能力集出参
  75455. typedef struct tagNET_OUT_UPGRADER_GET_CAPS
  75456. {
  75457. DWORD dwSize;
  75458. NET_UPGRADER_CAPS stuCaps; // 能力集
  75459. } NET_OUT_UPGRADER_GET_CAPS;
  75460. ///@brief 取消升级程序输入参数
  75461. typedef struct tagNET_IN_UPGRADER_CANCEL
  75462. {
  75463. DWORD dwSize;
  75464. } NET_IN_UPGRADER_CANCEL;
  75465. ///@brief 取消升级程序输出参数
  75466. typedef struct tagNET_OUT_UPGRADER_CANCEL
  75467. {
  75468. DWORD dwSize;
  75469. } NET_OUT_UPGRADER_CANCEL;
  75470. ///@brief 芯片类型
  75471. typedef enum tagEM_CHIP_TYPE
  75472. {
  75473. EM_CHIP_TYPE_UNKNOWN, // 未知
  75474. EM_CHIP_TYPE_MAIN, // 主程序
  75475. EM_CHIP_TYPE_SUB, // 从片
  75476. EM_CHIP_TYPE_GEOGRAPHY, // 地理位置芯片
  75477. EM_CHIP_TYPE_EXTEND_TANK_N, // N取1,2,3 表示扩展柜N
  75478. EM_CHIP_TYPE_EXTERN_DEVICE, // 第三方设备
  75479. }EM_CHIP_TYPE;
  75480. ///@brief 选择升级芯片,入参
  75481. typedef struct tagNET_IN_UPGRADER_CHOSE_CHIP_INFO
  75482. {
  75483. DWORD dwSize; // 结构体大小
  75484. EM_CHIP_TYPE emChipType; // 芯片类型
  75485. }NET_IN_UPGRADER_CHOSE_CHIP_INFO;
  75486. ///@brief 选择升级芯片,出参
  75487. typedef struct tagNET_OUT_UPGRADER_CHOSE_CHIP_INFO
  75488. {
  75489. DWORD dwSize; // 结构体大小
  75490. }NET_OUT_UPGRADER_CHOSE_CHIP_INFO;
  75491. ///@brief 升级类型
  75492. typedef enum tagEM_UPGRADE_FILE_TYPE
  75493. {
  75494. EM_UPGRADE_FILE_TYPE_UNKNOWN, // 未知
  75495. EM_UPGRADE_FILE_TYPE_APPLICATION, // 应用
  75496. EM_UPGRADE_FILE_TYPE_SYSTEM, // 系统
  75497. EM_UPGRADE_FILE_TYPE_FIRMWARE, // 固件
  75498. }EM_UPGRADE_FILE_TYPE;
  75499. ///@brief 文件校验类型
  75500. typedef enum tagEM_CHECK_SUM_TYPE
  75501. {
  75502. EM_CHECK_SUM_TYPE_UNKNOWN, // 未知
  75503. EM_CHECK_SUM_TYPE_MD5, // MD5
  75504. }EM_CHECK_SUM_TYPE;
  75505. ///@brief 设置第三方设备升级文件信息,入参
  75506. typedef struct tagNET_IN_UPGRADER_SET_EXTERN_DEVICE_INFO
  75507. {
  75508. DWORD dwSize; // 结构体大小
  75509. EM_UPGRADE_FILE_TYPE emUpgradeType; // 升级类型
  75510. int nFileLength; // 升级文件总长度
  75511. EM_CHECK_SUM_TYPE emCheckSumType; // 文件校验类型
  75512. char szCheckSum[128];// 升级包校验值
  75513. int nSessionID; // 升级更新操作流水id
  75514. }NET_IN_UPGRADER_SET_EXTERN_DEVICE_INFO;
  75515. ///@brief 设置第三方设备升级文件信息,出参
  75516. typedef struct tagNET_OUT_UPGRADER_SET_EXTERN_DEVICE_INFO
  75517. {
  75518. DWORD dwSize; // 结构体大小
  75519. }NET_OUT_UPGRADER_SET_EXTERN_DEVICE_INFO;
  75520. ///@brief 订阅升级状态观察接口
  75521. CLIENT_NET_API LLONG CALL_METHOD CLIENT_CloudUpgraderAttachState(LLONG lLoginID, const NET_IN_CLOUD_UPGRADER_ATTACH_STATE *pInParam, NET_OUT_CLOUD_UPGRADER_ATTACH_STATE *pOutParam, int nWaitTime);
  75522. ///@brief 退订升级状态观察接口
  75523. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloudUpgraderDetachState(LLONG lAttachHandle);
  75524. ///@brief 获取升级状态
  75525. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloudUpgraderGetState(LLONG lLoginID, const NET_IN_CLOUD_UPGRADER_GET_STATE *pInParam, NET_OUT_CLOUD_UPGRADER_GET_STATE *pOutParam, int nWaitTime);
  75526. ///@brief 获取升级相关能力集
  75527. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpgraderGetCaps(LLONG lLoginID, const NET_IN_UPGRADER_GET_CAPS *pInParam, NET_OUT_UPGRADER_GET_CAPS *pOutParam, int nWaitTime);
  75528. ///@brief 取消升级程序
  75529. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpgraderCancel(LLONG lLoginID, const NET_IN_UPGRADER_CANCEL *pInParam, NET_OUT_UPGRADER_CANCEL *pOutParam, int nWaitTime);
  75530. ///@brief 选择升级芯片
  75531. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpgraderChooseChip(LLONG lLoginID, const NET_IN_UPGRADER_CHOSE_CHIP_INFO *pInParam, NET_OUT_UPGRADER_CHOSE_CHIP_INFO *pOutParam, int nWaitTime);
  75532. ///@brief 设置第三方设备升级文件信息
  75533. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpgraderSetExternDeviceInfo(LLONG lLoginID, const NET_IN_UPGRADER_SET_EXTERN_DEVICE_INFO *pInParam, NET_OUT_UPGRADER_SET_EXTERN_DEVICE_INFO *pOutParam, int nWaitTime);
  75534. ///@brief CLIENT_UpgraderGetChipList入参
  75535. typedef struct tagNET_IN_UPGRADER_GET_CHIPLIST_INFO
  75536. {
  75537. DWORD dwSize; // 结构体大小
  75538. }NET_IN_UPGRADER_GET_CHIPLIST_INFO;
  75539. ///@brief CLIENT_UpgraderGetChipList出参
  75540. typedef struct tagNET_OUT_UPGRADER_GET_CHIPLIST_INFO
  75541. {
  75542. DWORD dwSize; // 结构体大小
  75543. int nListNum; // 可以升级的芯片数量
  75544. char szList[32][16]; // 可以升级的芯片列表
  75545. }NET_OUT_UPGRADER_GET_CHIPLIST_INFO;
  75546. ///@brief 获取可以升级的芯片列表
  75547. ///@param[in] lLoginID: 登录句柄
  75548. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  75549. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  75550. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  75551. ///@return TRUE表示成功 FALSE表示失败
  75552. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpgraderGetChipList(LLONG lLoginID, const NET_IN_UPGRADER_GET_CHIPLIST_INFO *pstuInParam, NET_OUT_UPGRADER_GET_CHIPLIST_INFO *pstuOutParam, int nWaitTime);
  75553. ///@brief 获取上传能力集入参
  75554. typedef struct tagNET_IN_CLOUDUPLOAD_GETCAPS
  75555. {
  75556. DWORD dwSize; // 结构体大小
  75557. }NET_IN_CLOUDUPLOAD_GETCAPS;
  75558. ///@brief 获取上传能力集出参
  75559. typedef struct tagNET_OUT_CLOUDUPLOAD_GETCAPS
  75560. {
  75561. DWORD dwSize; // 结构体大小
  75562. BOOL bAsyncUpload; // 是否支持异步上传,TRUE:支持,FALSE:不支持
  75563. }NET_OUT_CLOUDUPLOAD_GETCAPS;
  75564. ///@brief 云上传图片入参
  75565. typedef struct tagNET_IN_CLOUD_UPLOAD_PICTURE
  75566. {
  75567. DWORD dwSize;
  75568. int nChannelID; // 通道号
  75569. int nServerType; // 上传的服务器类型,0-云服务器 1-FTP服务器
  75570. int nPicType; // 图片类型 0-司机举手照片 1-12张连拍照片 2-一寸照片
  75571. char szFileName[256]; // Ocx存储的文件名称(web客户端使用)
  75572. char szAccessKeyId[DH_COMMON_STRING_64]; // 服务器访问用户名
  75573. char szAccessKeySecret[DH_COMMON_STRING_64]; // 服务器访问密码
  75574. char szBucketName[DH_COMMON_STRING_32]; // 服务器存储空间名字
  75575. char szFileKey[256]; // 服务器上存储的文件名
  75576. char szEndPoint[DH_COMMON_STRING_64]; // 文件对外服务的访问域名
  75577. UINT nFileLength; // 文件长度,单位:字节
  75578. char* pFileData; // 文件数据
  75579. } NET_IN_CLOUD_UPLOAD_PICTURE;
  75580. ///@brief 云上传图片出参
  75581. typedef struct tagNET_OUT_CLOUD_UPLOAD_PICTURE
  75582. {
  75583. DWORD dwSize;
  75584. char szFileName[256]; // 本次上传成功的文件名
  75585. char szFileURL[DH_COMMON_STRING_2048]; // 访问上传文件的域名,供web显示使用
  75586. BOOL bAsyncUploadPic; // 上传图片是否为异步,TRUE:异步,FALSE:同步
  75587. } NET_OUT_CLOUD_UPLOAD_PICTURE;
  75588. ///@brief 云上传图片到服务器
  75589. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloudUploadPicture(LLONG lLoginID, const NET_IN_CLOUD_UPLOAD_PICTURE *pInParam, NET_OUT_CLOUD_UPLOAD_PICTURE *pOutParam, int nWaitTime);
  75590. ///@brief 云上传视频入参
  75591. typedef struct tagNET_IN_CLOUD_UPLOAD_VIDEO
  75592. {
  75593. DWORD dwSize;
  75594. int nChannelID; // 通道号
  75595. int nServerType; // 上传的服务器类型,0-云服务器 1-FTP服务器
  75596. int nAction; // 手动录像状态,0-结束手动录像 1-开始手动录像
  75597. int nStrategy; // 上传录像的策略,0-实时上传 1-策略上传(在时间段内上传,即夜间空闲上传)
  75598. char szAccessKeyId[DH_COMMON_STRING_64]; // 服务器访问用户名
  75599. char szAccessKeySecret[DH_COMMON_STRING_64]; // 服务器访问密码
  75600. char szBucketName[DH_COMMON_STRING_32]; // 服务器存储空间名字
  75601. char szFileKey[256]; // 服务器上存储的文件名
  75602. char szEndPoint[DH_COMMON_STRING_64]; // 文件对外服务的访问域名
  75603. } NET_IN_CLOUD_UPLOAD_VIDEO;
  75604. ///@brief 云上传视频出参
  75605. typedef struct tagNET_OUT_CLOUD_UPLOAD_VIDEO
  75606. {
  75607. DWORD dwSize;
  75608. BOOL bAsyncUploadVideo; // 上传视频是否为异步,TRUE:异步,FALSE:同步
  75609. } NET_OUT_CLOUD_UPLOAD_VIDEO;
  75610. ///@brief 云上传视频到服务器
  75611. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CloudUploadVideo(LLONG lLoginID, const NET_IN_CLOUD_UPLOAD_VIDEO *pInParam, NET_OUT_CLOUD_UPLOAD_VIDEO *pOutParam, int nWaitTime);
  75612. ///@brief 抓图图片上传状态信息
  75613. typedef struct tagNET_SNAPPIC_INFO
  75614. {
  75615. char szFileName[256]; // 存储的文件名称
  75616. BOOL bState; // 图片是否上传成功,FALSE:失败,TRUE:成功
  75617. char szUrl[2048]; // 上传服务器后,图片的访问URL
  75618. BYTE byReserved[1024]; // 预留字节
  75619. }NET_SNAPPIC_INFO;
  75620. ///@brief 录像上传状态信息
  75621. typedef struct tagNET_VIDEO_INFO
  75622. {
  75623. char szFileName[256]; // 录像上传到服务器的名称
  75624. unsigned int nChannel; // 通道号
  75625. NET_TIME stuStartTime; // 需要上传的录像段的开始时间
  75626. NET_TIME stuEndTime; // 需要上传的录像段的结束时间
  75627. BOOL bState; // 录像是否上传成功,FALSE:失败,TRUE:成功
  75628. BYTE byReserved[1024]; // 预留字节
  75629. }NET_VIDEO_INFO;
  75630. ///@brief 上传录像或者图片的进度状态信息
  75631. typedef struct tagNET_CLOUDUPLOAD_STATE
  75632. {
  75633. NET_SNAPPIC_INFO stuSnapPicInfo; // 抓图图片上传状态信息
  75634. NET_VIDEO_INFO stuVideoInfo; // 录像上传状态信息
  75635. BYTE byReserved[2048]; // 预留字节
  75636. }NET_CLOUDUPLOAD_STATE;
  75637. ///@brief 订阅订阅上传录像或者图片的进度状态
  75638. typedef void (CALLBACK *fCloudUploadStateCallBack)(LLONG lLoginID, LLONG lAttachHandle, NET_CLOUDUPLOAD_STATE* pBuf, int nBufLen, LDWORD dwUser);
  75639. ///@brief CLIENT_AttachCloudUploadState接口入参
  75640. typedef struct tagNET_IN_ATTACH_CLOUDUPLOAD_STATE
  75641. {
  75642. DWORD dwSize;
  75643. fCloudUploadStateCallBack cbCloudUploadState; // 回调函数
  75644. LDWORD dwUser; // 用户数据
  75645. }NET_IN_ATTACH_CLOUDUPLOAD_STATE;
  75646. ///@brief CLIENT_AttachCloudUploadState接口出参
  75647. typedef struct tagNET_OUT_ATTACH_CLOUDUPLOAD_STATE
  75648. {
  75649. DWORD dwSize;
  75650. }NET_OUT_ATTACH_CLOUDUPLOAD_STATE;
  75651. ///@brief 订阅上传录像或者图片的进度状态
  75652. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachCloudUploadState(LLONG lLoginID, NET_IN_ATTACH_CLOUDUPLOAD_STATE *pInBuf,NET_OUT_ATTACH_CLOUDUPLOAD_STATE *pOutBuf, int nWaitTime);
  75653. ///@brief 取消订阅上传录像或者图片的进度状态
  75654. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachCloudUploadState(LLONG lAttachHandle);
  75655. ////////////////////////////////////////////////////////
  75656. ///@brief CLIENT_GetRecordState 入参
  75657. typedef struct tagNET_IN_GET_RECORD_STATE
  75658. {
  75659. DWORD dwSize; // 结构体大小
  75660. int nChannel; // 通道号
  75661. } NET_IN_GET_RECORD_STATE;
  75662. ///@brief CLIENT_GetRecordState 出参
  75663. typedef struct tagNET_OUT_GET_RECORD_STATE
  75664. {
  75665. DWORD dwSize; // 结构体大小
  75666. BOOL bState; // 是否在录像
  75667. } NET_OUT_GET_RECORD_STATE;
  75668. ///@brief 获取录像状态
  75669. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRecordState(LLONG lLoginID, const NET_IN_GET_RECORD_STATE *pInParam, NET_OUT_GET_RECORD_STATE *pOutParam, int nWaitTime);
  75670. ///@brief 录像删除条件
  75671. typedef struct tagNET_DELETE_CONDITION_INFO
  75672. {
  75673. NET_TIME stuStartTime; // 开始时间
  75674. NET_TIME stuStopTime; // 停止时间
  75675. int nChannels[64]; // 通道
  75676. int nChannelNum; // nChannel实际个数
  75677. EM_STREAM_TYPE emStreamType; // 码流类型
  75678. BYTE byReserved[1024]; // 保留字节
  75679. } NET_DELETE_CONDITION_INFO;
  75680. ///@brief CLIENT_DeleteRecordFile 删除录像文件, 入参
  75681. typedef struct tagNET_IN_DELETE_RECORD_FILE_INFO
  75682. {
  75683. DWORD dwSize; // 结构体大小
  75684. BYTE byReserved[4]; // 字节对齐
  75685. NET_DELETE_CONDITION_INFO stuDeleteCondition; // 删除条件
  75686. } NET_IN_DELETE_RECORD_FILE_INFO;
  75687. ///@brief CLIENT_DeleteRecordFile 删除录像文件, 出参
  75688. typedef struct tagNET_OUT_DELETE_RECORD_FILE_INFO
  75689. {
  75690. DWORD dwSize; // 结构体大小
  75691. } NET_OUT_DELETE_RECORD_FILE_INFO;
  75692. ///@brief 删除录像文件
  75693. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteRecordFile(LLONG lLoginID, const NET_IN_DELETE_RECORD_FILE_INFO *pInParam, NET_OUT_DELETE_RECORD_FILE_INFO *pOutParam, int nWaitTime);
  75694. ///@brief 考试计划
  75695. typedef struct tagNET_EXAM_RECORDING_PLAN_INFO
  75696. {
  75697. char szName[64]; // 考生姓名,采用UTF8编码
  75698. char szNumber[64]; // 考号
  75699. int nCameraIPNum; // 摄像头IP个数
  75700. char szCameraIP[8][32]; // 摄像头IP数组
  75701. NET_TIME stuStartTime; // 开始时间
  75702. NET_TIME stuEndTime; // 结束时间
  75703. char szResvered[256]; // 保留字节
  75704. }NET_EXAM_RECORDING_PLAN_INFO;
  75705. ///@brief CLIENT_SetExamRecordingPlans 接口入参
  75706. typedef struct tagNET_IN_SET_EXAM_RECORDING_PLANS
  75707. {
  75708. DWORD dwSize; // 结构体大小
  75709. int nPlansNum; // 考试计划个数
  75710. NET_EXAM_RECORDING_PLAN_INFO *pstuPlans; // 考试计划, 由用户申请和释放, 最大为1024个
  75711. } NET_IN_SET_EXAM_RECORDING_PLANS;
  75712. ///@brief CLIENT_SetExamRecordingPlans 接口出参
  75713. typedef struct tagNET_OUT_SET_EXAM_RECORDING_PLANS
  75714. {
  75715. DWORD dwSize; // 结构体大小
  75716. } NET_OUT_SET_EXAM_RECORDING_PLANS;
  75717. ///@brief 添加考试录像计划
  75718. ///@param[in] lLoginID: 登录句柄
  75719. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  75720. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  75721. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  75722. ///@return TRUE表示成功 FALSE表示失败
  75723. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetExamRecordingPlans(LLONG lLoginID, const NET_IN_SET_EXAM_RECORDING_PLANS *pstuInParam, NET_OUT_SET_EXAM_RECORDING_PLANS *pstuOutParam, int nWaitTime);
  75724. ///@brief 获取指定教室的录像信息入参
  75725. typedef struct tagNET_IN_COURSERECORD_GETINFO
  75726. {
  75727. DWORD dwSize;
  75728. int nClassRoomID; // 教室ID,0为默认教室
  75729. }NET_IN_COURSERECORD_GETINFO;
  75730. ///@brief 获取指定教室的录像信息出参
  75731. typedef struct tagNET_OUT_COURSERECORD_GETINFO
  75732. {
  75733. DWORD dwSize;
  75734. int nChannelNum; // 逻辑通道数量
  75735. int nCanRecord[MAX_COURSE_LOGIC_CHANNEL]; // 0:无效,1:录像,2不录像,下标对应为逻辑通道号
  75736. }NET_OUT_COURSERECORD_GETINFO;
  75737. ///@brief 设置指定教室的录像信息入参
  75738. typedef struct tagNET_IN_COURSERECORD_SETINFO
  75739. {
  75740. DWORD dwSize;
  75741. int nClassRoomID; // 教室ID,0为默认教室
  75742. int nChannelNum; // 逻辑通道数量
  75743. int nCanRecord[MAX_COURSE_LOGIC_CHANNEL]; // 0:无效,1:录像,2不录像,下标对应为逻辑通道号
  75744. }NET_IN_COURSERECORD_SETINFO;
  75745. ///@brief 设置指定教室的录像信息出参
  75746. typedef struct tagNET_OUT_COURSERECORD_SETINFO
  75747. {
  75748. DWORD dwSize;
  75749. }NET_OUT_COURSERECORD_SETINFO;
  75750. ///@brief 录像信息更新到time入参
  75751. typedef struct tagNET_IN_COURSERECORD_UPDATE_INFO
  75752. {
  75753. DWORD dwSize;
  75754. int nClassRoomID; // 教室ID,0为默认教室
  75755. NET_TIME stuTime; // 查询时间
  75756. }NET_IN_COURSERECORD_UPDATE_INFO;
  75757. ///@brief 录像信息更新到time出参
  75758. typedef struct tagNET_OUT_COURSERECORD_UPDATE_INFO
  75759. {
  75760. DWORD dwSize;
  75761. }NET_OUT_COURSERECORD_UPDATE_INFO;
  75762. ///@brief 获取当前课程已录制时间入参
  75763. typedef struct tagNET_IN_COURSERECORD_GET_TIME
  75764. {
  75765. DWORD dwSize;
  75766. int nClassRoomID; // 教室ID,0为默认教室
  75767. }NET_IN_COURSERECORD_GET_TIME;
  75768. ///@brief 获取当前课程已录制时间出参
  75769. typedef struct tagNET_OUT_COURSERECORD_GET_TIME
  75770. {
  75771. DWORD dwSize;
  75772. UINT nTime; // 已录制时间,单位:秒
  75773. }NET_OUT_COURSERECORD_GET_TIME;
  75774. ///@brief 录播主机录像信息操作
  75775. typedef enum tagEM_COURSERECORD_OPERATE_TYPE
  75776. {
  75777. EM_COURSERECORDE_TYPE_GET_INFO, //获取教室录像信息,对应结构体pInParam = NET_IN_COURSERECORD_GETINFO,pOutParam = NET_OUT_COURSERECORD_GETINFO
  75778. EM_COURSERECORDE_TYPE_SET_INFO, //设置教室录像信息,对应结构体pInParam = NET_IN_COURSERECORD_SETINFO,pOutParam = NET_OUT_COURSERECORD_SETINFO
  75779. EM_COURSERECORDE_TYPE_UPDATE_INFO, //将录像信息更新到time时的信息,对应结构体 pInParam = NET_IN_COURSERECORD_UPDATE_INFO, pOutParam = NET_OUT_COURSERECORD_UPDATE_INFO
  75780. EM_COURSERECORDE_TYPE_GET_TIME, //获取当前课程教室已录制时间,对应结构体 pInParam = NET_IN_COURSERECORD_GET_TIME, pOutParam = NET_OUT_COURSERECORD_GET_TIME
  75781. }EM_COURSERECORD_OPERATE_TYPE;
  75782. ///@brief 录播主机录像信息操作接口
  75783. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateCourseRecordManager(LLONG lLoginID, EM_COURSERECORD_OPERATE_TYPE emOperateType, void *pInParam, void *pOutParam, int nWaitTime);
  75784. ///@brief 回调函数
  75785. typedef void(CALLBACK *fConfigChangeCallBack)(LLONG lAttachHandle, char* szCommand, char* szBuffer, LDWORD dwUser);
  75786. ///@brief 订阅配置变化入参
  75787. typedef struct tagNET_IN_ATTACH_CONFIGCHANNGE
  75788. {
  75789. DWORD dwSize;
  75790. char* szCfgName; // 配置名称,参见dhconfigsdk.h的CLIENT_GetNewDevConfig和CLIENT_SetNewDevConfig接口的配置命令
  75791. fConfigChangeCallBack cbNotify; // 回调函数
  75792. LDWORD dwUser; // 用户信息
  75793. }NET_IN_ATTACH_CONFIGCHANNGE;
  75794. ///@brief 订阅配置变化出参
  75795. typedef struct tagNET_OUT_ATTACH_CONFIGCHANNGE
  75796. {
  75797. DWORD dwSize;
  75798. }NET_OUT_ATTACH_CONFIGCHANNGE;
  75799. ///@brief 订阅配置变化接口
  75800. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachConfigChange(LLONG lLoginID, NET_IN_ATTACH_CONFIGCHANNGE *pInBuf,NET_OUT_ATTACH_CONFIGCHANNGE *pOutBuf, int nWaitTime);
  75801. ///@brief 取消订阅配置变化
  75802. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachConfigChange(LLONG lAttachHandle);
  75803. ///@brief CLIENT_GetRingFileList 入参
  75804. typedef struct tagNET_IN_GET_RINGFILELIST
  75805. {
  75806. DWORD dwSize;
  75807. }NET_IN_GET_RINGFILELIST;
  75808. ///@brief CLIENT_GetRingFileList 出参
  75809. typedef struct tagNET_OUT_GET_RINGFILELIST
  75810. {
  75811. DWORD dwSize;
  75812. UINT nRingFileNum; // 返回音频文件个数
  75813. char szRingFileList[MAX_RINGFILE_NUM][DH_COMMON_STRING_64];// 音频文件列表
  75814. }NET_OUT_GET_RINGFILELIST;
  75815. ///@brief 获取门铃音频文件列表
  75816. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRingFileList(LLONG lLoginID, NET_IN_GET_RINGFILELIST *pstuInParam, NET_OUT_GET_RINGFILELIST *pstuOutParam, int nWaitTime);
  75817. ///@brief CLIENT_GetConnetionStatus 入参
  75818. typedef struct tagNET_IN_GETCONNECTION_STATUS
  75819. {
  75820. DWORD dwSize;
  75821. } NET_IN_GETCONNECTION_STATUS;
  75822. ///@brief CLIENT_GetConnetionStatus 出参
  75823. typedef struct tagNET_OUT_GETCONNECTION_STATUS
  75824. {
  75825. DWORD dwSize;
  75826. int nChannelNum; // 通道数量
  75827. int nStatus[MAX_ALARMEXT_MODULE_NUM]; // 下标表示报警通道号,取值含义0:未分配1:离线2:在线
  75828. } NET_OUT_GETCONNECTION_STATUS;
  75829. ///@brief 报警主机获取扩展模块在线状态接口
  75830. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetConnectionStatus(LLONG lLoginID,const NET_IN_GETCONNECTION_STATUS* pstuInParam, NET_OUT_GETCONNECTION_STATUS *pstuOutParam, int nWaitTime);
  75831. #define MAX_ALARM_BOX_VIDEO_NUM 16
  75832. ///@brief CLIENT_GetAlarmBoxVideoConnectionStatus 入参
  75833. typedef struct tagNET_IN_GETALARMBOXVIDEOCONNECTION_STATUS
  75834. {
  75835. DWORD dwSize;
  75836. } NET_IN_GETALARMBOXVIDEOCONNECTION_STATUS;
  75837. ///@brief CLIENT_GetAlarmBoxVideoConnectionStatus 出参
  75838. typedef struct tagNET_OUT_GETALARMBOXVIDEOCONNECTION_STATUS
  75839. {
  75840. DWORD dwSize;
  75841. int nChannelNum; // 报警盒通道个数
  75842. int nStatus[MAX_ALARM_BOX_VIDEO_NUM]; // 下标表示报警盒通道号,取值含义 0:未接入报警盒 1:离线 2:上线
  75843. } NET_OUT_GETALARMBOXVIDEOCONNECTION_STATUS;
  75844. ///@brief 报警主机获取获取报警盒上下线状态接口
  75845. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAlarmBoxVideoConnectionStatus(LLONG lLoginID,const NET_IN_GETALARMBOXVIDEOCONNECTION_STATUS* pstuInParam, NET_OUT_GETALARMBOXVIDEOCONNECTION_STATUS *pstuOutParam, int nWaitTime);
  75846. ///@brief 码流类型
  75847. typedef enum tagEM_GETUSERINFOBYCONDITION_USER_TYPE
  75848. {
  75849. EM_GETUSERINFOBYCONDITION_USER_TYPE_UNKNOWN, // 未知
  75850. EM_GETUSERINFOBYCONDITION_USER_TYPE_KEYPAD, // 键盘用户
  75851. EM_GETUSERINFOBYCONDITION_USER_TYPE_ICCARD, // IC卡用户
  75852. EM_GETUSERINFOBYCONDITION_USER_TYPE_REMOTECONTROL, // 遥控器用户
  75853. EM_GETUSERINFOBYCONDITION_USER_TYPE_MOBILE, // 手机用户
  75854. EM_GETUSERINFOBYCONDITION_USER_TYPE_KEY, // key用户
  75855. }EM_GETUSERINFOBYCONDITION_USER_TYPE;
  75856. ///@brief 用户状态
  75857. typedef enum tagEM_GETUSERINFOBYCONDITION_USER_STATUS
  75858. {
  75859. EM_GETUSERINFOBYCONDITION_USER_STATUS_UNKNOWN, // 未知
  75860. EM_GETUSERINFOBYCONDITION_USER_STATUS_NOPRESENT, // 不存在,未配置过用户信息
  75861. EM_GETUSERINFOBYCONDITION_USER_STATUS_INACTIVATED, // 未激活,已经配置过用户信息,但是未使能
  75862. EM_GETUSERINFOBYCONDITION_USER_STATUS_ACTIVATED, // 已激活
  75863. }EM_GETUSERINFOBYCONDITION_USER_STATUS;
  75864. ///@brief CLIENT_GetAlarmUserInfoByCondition 入参
  75865. typedef struct tagNET_IN_GETALARMUSERINFO_BY_CONDITION
  75866. {
  75867. DWORD dwSize;
  75868. EM_GETUSERINFOBYCONDITION_USER_TYPE emUserType; // 用户类型
  75869. EM_GETUSERINFOBYCONDITION_USER_STATUS emUserStatus; // 用户状态
  75870. } NET_IN_GETALARMUSERINFO_BY_CONDITION;
  75871. ///@brief 用户的权限列表
  75872. typedef enum tagEM_ALARM_USERAUTHORITY
  75873. {
  75874. EM_ALARM_USERAUTHORITY_UNKNOWN, // 未知
  75875. EM_ALARM_USERAUTHORITY_ARMING, // 布防
  75876. EM_ALARM_USERAUTHORITY_FORCEARMING, // 强制布防
  75877. EM_ALARM_USERAUTHORITY_DISARM, // 撤防
  75878. EM_ALARM_USERAUTHORITY_BYPASS, // 旁路
  75879. EM_ALARM_USERAUTHORITY_PERMANENTBYPASS, // 永久旁路
  75880. EM_ALARM_USERAUTHORITY_ALARMCONFIRM, // 消警
  75881. EM_ALARM_USERAUTHORITY_QUERYLOG, // 查询日志
  75882. EM_ALARM_USERAUTHORITY_DEBUGMODE, // 调试模式
  75883. EM_ALARM_USERAUTHORITY_UPGRADE, // 更改基本程序,如:升级程序
  75884. EM_ALARM_USERAUTHORITY_SYSTEMCONFIG, // 添加/更改配置参数
  75885. EM_ALARM_USERAUTHORITY_USERMANAGEMENT, // 用户管理
  75886. }EM_ALARM_USERAUTHORITY;
  75887. ///@brief 用户所在组
  75888. typedef enum tagEM_ALARM_USER_GROUP
  75889. {
  75890. EM_ALARM_USER_GROUP_UNKNOWN, // 未知
  75891. EM_ALARM_USER_GROUP_ADMIN, // 管理员
  75892. EM_ALARM_USER_GROUP_INSTALLER, // 安装员
  75893. EM_ALARM_USER_GROUP_MANUFACTURER, // 制造商
  75894. EM_ALARM_USER_GROUP_OPERATOR, // 操作员
  75895. }EM_ALARM_USER_GROUP;
  75896. ///@brief 功能
  75897. typedef enum tagEM_ALARM_ONECLICKARMING_FUNCTION
  75898. {
  75899. EM_ALARM_ONECLICKARMING_FUNCTION_UNKNOWN, // 未知
  75900. EM_ALARM_ONECLICKARMING_FUNCTION_ONOFF, // 开关
  75901. EM_ALARM_ONECLICKARMING_FUNCTION_ONONLY, // 只开
  75902. EM_ALARM_ONECLICKARMING_FUNCTION_OFFONLY, // 只关
  75903. }EM_ALARM_ONECLICKARMING_FUNCTION;
  75904. ///@brief 触发类型
  75905. typedef enum tagEM_ALARM_ONECLICKARMING_TRIGGEROPTION
  75906. {
  75907. EM_ALARM_ONECLICKARMING_TRIGGEROPTION_UNKNOWN, // 未知
  75908. EM_ALARM_ONECLICKARMING_TRIGGEROPTION_IMPULSE, // 脉冲
  75909. EM_ALARM_ONECLICKARMING_TRIGGEROPTION_BISTABLE, // 双稳定
  75910. }EM_ALARM_ONECLICKARMING_TRIGGEROPTION;
  75911. ///@brief 布撤防类型
  75912. typedef enum tagEM_ARM_TYPE
  75913. {
  75914. EM_ARM_TYPE_UNKNOWN, // 未知
  75915. EM_ARM_TYPE_TOTAL_ARMING, // Total布防
  75916. EM_ARM_TYPE_PARTIAL1_ARMING, // partial1布防
  75917. EM_ARM_TYPE_PARTIAL2_ARMING, // partial2布防
  75918. EM_ARM_TYPE_PARTIAL_ARMING, // partial1+2布防
  75919. EM_ARM_TYPE_DENFENCE_ARMING, // 强制布防
  75920. EM_ARM_TYPE_DISARMING, // 撤防
  75921. }EM_ARM_TYPE;
  75922. ///@brief 布防的情景模式
  75923. typedef enum tagNET_EM_SCENE_MODE
  75924. {
  75925. NET_EM_SCENE_MODE_UNKNOWN, // 未知模式
  75926. NET_EM_SCENE_MODE_OUTDOOR, // 外出模式
  75927. NET_EM_SCENE_MODE_INDOOR, // 在家模式
  75928. NET_EM_SCENE_MODE_WHOLE , // 全局模式
  75929. NET_EM_SCENE_MODE_RIGHTNOW, // 立即模式
  75930. NET_EM_SCENE_MODE_AUTO, // 自动模式
  75931. NET_EM_SCENE_MODE_FORCE, // 强制模式
  75932. NET_EM_SCENE_MODE_CUSTOM, // 自定义模式
  75933. NET_EM_SCENE_MODE_SLEEPING, // 就寝模式
  75934. }NET_EM_SCENE_MODE;
  75935. ///@brief 一键布防配置
  75936. typedef struct tagNET_ALARM_USER_ONECLICKARMING
  75937. {
  75938. BOOL bEnable; // 一键布防使能
  75939. EM_ALARM_ONECLICKARMING_FUNCTION emFunction; // 布防功能
  75940. EM_ALARM_ONECLICKARMING_TRIGGEROPTION emTriggerOption; // 触发类型
  75941. NET_EM_SCENE_MODE emArmProfile; // 一键布防类型
  75942. EM_ARM_TYPE emArmMode; // 布撤防模式
  75943. BYTE byReserved[256]; // 保留字节
  75944. } NET_ALARM_USER_ONECLICKARMING;
  75945. ///@brief 报警产品本地用户扩展信息
  75946. typedef struct tagNET_ALARM_USER_EXTERN
  75947. {
  75948. char szDuressPassword[64]; //胁迫密码
  75949. char szCard[64][32]; // 关联卡片
  75950. int nCardNum; // 关联卡片数量
  75951. char szReserved[1020]; // 保留字节
  75952. } NET_ALARM_USER_EXTERN;
  75953. ///@brief 报警产品本地用户信息
  75954. typedef struct tagNET_ALARM_USER
  75955. {
  75956. char szID[32]; // 用户编号
  75957. EM_GETUSERINFOBYCONDITION_USER_STATUS emUserStatus; // 用户状态
  75958. char szName[64]; // 用户名
  75959. char szPassword[64]; // 密码
  75960. int nAuthorityListNum; // 用户的权限列表个数
  75961. EM_ALARM_USERAUTHORITY emAuthorityList[32]; //用户的权限列表
  75962. EM_ALARM_USER_GROUP emGroup; // 用户所在组
  75963. BOOL bReserved; // 是否为保留用户,保留用户不可删除
  75964. EM_GETUSERINFOBYCONDITION_USER_TYPE emUserType; // 用户类型
  75965. UINT nInterval; // 相同短信时间间隔,间隔时间内若有连续相同的报告触发,则不上传。(当用户类型为Key时有效)单位:秒
  75966. NET_TIME stuAccessAllowTimeStart;// 允许访问的时间 开始时间
  75967. NET_TIME stuAccessAllowTimeEnd; // 允许访问的时间 结束时间
  75968. char szMemo[32]; // 用户备注信息
  75969. int nSubSystemNum; // 关联的子系统对应子系统号的个数
  75970. int nSubSystems[64]; // 关联的子系统,对应子系统号,用户只能操作其关联的子系统
  75971. int nZoneNum; // 关联防区的个数
  75972. int nZones[256]; // 关联防区,当emUserType=EM_GETUSERINFOBYCONDITION_USER_TYPE_KEY时用来关联Key防区。不同的Key防区可以关联不同的Key用户。
  75973. NET_ALARM_USER_ONECLICKARMING stuOneClickArming; // 一键布防配置
  75974. NET_ALARM_USER_EXTERN* pstuAlarmUserExtern; // 用户信息扩展数据,需要用户申请内存
  75975. BYTE byReserved[256-POINTERSIZE]; // 保留字节
  75976. } NET_ALARM_USER;
  75977. ///@brief CLIENT_GetAlarmUserInfoByCondition 出参
  75978. typedef struct tagNET_OUT_GETALARMUSERINFO_BY_CONDITION
  75979. {
  75980. DWORD dwSize; // 结构体大小
  75981. UINT nUserInfoNum; // 获取到的用户数量
  75982. NET_ALARM_USER stuUserInfo[512]; // 获取到的用户信息
  75983. } NET_OUT_GETALARMUSERINFO_BY_CONDITION;
  75984. ///@brief 获取报警主机的报警用户数量
  75985. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAlarmUserInfoByCondition(LLONG lLoginID,const NET_IN_GETALARMUSERINFO_BY_CONDITION* pstuInParam, NET_OUT_GETALARMUSERINFO_BY_CONDITION *pstuOutParam, int nWaitTime);
  75986. ///@brief 用户权限
  75987. typedef enum tagNET_ATTENDANCE_AUTHORITY
  75988. {
  75989. NET_ATTENDANCE_AUTHORITY_UNKNOWN = -1,
  75990. NET_ATTENDANCE_AUTHORITY_CUSTOMER, //普通用户
  75991. NET_ATTENDANCE_AUTHORITY_ADMINISTRATORS, //管理员
  75992. }NET_ATTENDANCE_AUTHORITY;
  75993. #define MAX_ATTENDANCE_USERNAME_LEN 36
  75994. ///@brief 考勤用户信息
  75995. typedef struct tagNET_ATTENDANCE_USERINFO
  75996. {
  75997. char szUserID[MAX_COMMON_STRING_32]; //用户编号ID
  75998. char szUserName[MAX_ATTENDANCE_USERNAME_LEN]; //人员姓名
  75999. char szCardNo[MAX_COMMON_STRING_32]; // 卡号
  76000. NET_ATTENDANCE_AUTHORITY emAuthority; // 用户权限
  76001. char szPassword[MAX_COMMON_STRING_32]; // 密码
  76002. int nPhotoLength; // 照片数据长度
  76003. char szClassNumber[MAX_CLASS_NUMBER_LEN]; // 班级(肯尼亚定制)
  76004. char szPhoneNumber[MAX_PHONENUMBER_LEN]; // 电话(肯尼亚定制)
  76005. NET_ACCESSCTLCARD_TYPE emCardType; // 卡类型
  76006. BYTE byReserved[204]; // 保留字节
  76007. }NET_ATTENDANCE_USERINFO;
  76008. ///@brief CLIENT_Attendance_InsertFingerByUserID 入参
  76009. typedef struct tagNET_IN_FINGERPRINT_INSERT_BY_USERID
  76010. {
  76011. DWORD dwSize;
  76012. char szUserID[DH_COMMON_STRING_32]; // 用户ID
  76013. int nSinglePacketLen; // 单个信息数据包长度
  76014. int nPacketCount; // 信息数据包的个数
  76015. char* szFingerPrintInfo; // 信息数据(数据总长度即nSinglePacketLen*nPacketCount)
  76016. }NET_IN_FINGERPRINT_INSERT_BY_USERID;
  76017. ///@brief CLIENT_Attendance_InsertFingerByUserID 出参
  76018. typedef struct tagNET_OUT_FINGERPRINT_INSERT_BY_USERID
  76019. {
  76020. DWORD dwSize;
  76021. int nFingerPrintID[DH_MAX_FINGER_PRINT]; //信息ID数组
  76022. int nReturnedCount; //数组中实际返回的个数
  76023. int nFailedCode; //错误码 0:成功; 1:其他错误; 2:超过本用户下信息能力的限制.
  76024. }NET_OUT_FINGERPRINT_INSERT_BY_USERID;
  76025. ///@brief CLIENT_Attendance_RemoveFingerByUserID 入参(removeByUserID)
  76026. typedef struct tagNET_CTRL_IN_FINGERPRINT_REMOVE_BY_USERID
  76027. {
  76028. DWORD dwSize;
  76029. char szUserID[DH_COMMON_STRING_32]; // 用户ID
  76030. }NET_CTRL_IN_FINGERPRINT_REMOVE_BY_USERID;
  76031. ///@brief CLIENT_Attendance_RemoveFingerByUserID 出参
  76032. typedef struct tagNET_CTRL_OUT_FINGERPRINT_REMOVE_BY_USERID
  76033. {
  76034. DWORD dwSize;
  76035. }NET_CTRL_OUT_FINGERPRINT_REMOVE_BY_USERID;
  76036. ///@brief CLIENT_Attendance_RemoveFingerRecord 入参(remove)
  76037. typedef struct tagNET_CTRL_IN_FINGERPRINT_REMOVE
  76038. {
  76039. DWORD dwSize;
  76040. int nFingerPrintID; //信息编号
  76041. }NET_CTRL_IN_FINGERPRINT_REMOVE;
  76042. ///@brief CLIENT_Attendance_RemoveFingerRecord 出参
  76043. typedef struct tagNET_CTRL_OUT_FINGERPRINT_REMOVE
  76044. {
  76045. DWORD dwSize;
  76046. }NET_CTRL_OUT_FINGERPRINT_REMOVE;
  76047. ///@brief CLIENT_Attendance_GetFingerRecord 入参
  76048. typedef struct tagNET_CTRL_IN_FINGERPRINT_GET
  76049. {
  76050. DWORD dwSize;
  76051. int nFingerPrintID; //信息编号
  76052. }NET_CTRL_IN_FINGERPRINT_GET;
  76053. ///@brief CLIENT_Attendance_GetFingerRecord 出参
  76054. typedef struct tagNET_CTRL_OUT_FINGERPRINT_GET
  76055. {
  76056. DWORD dwSize;
  76057. char szUserID[DH_COMMON_STRING_32]; // 所属用户的用户ID
  76058. char szFingerPrintName[DH_COMMON_STRING_32]; // 信息名称
  76059. int nFingerPrintID; // 信息ID
  76060. int nRetLength; // 实际返回的二进制信息数据长度
  76061. int nMaxFingerDataLength; // 二进制信息数据的最大长度
  76062. char* szFingerPrintInfo; // 信息数据
  76063. }NET_CTRL_OUT_FINGERPRINT_GET;
  76064. ///@brief CLIENT_Attendance_FindUser 入参
  76065. typedef struct tagNET_IN_ATTENDANCE_FINDUSER
  76066. {
  76067. DWORD dwSize;
  76068. int nOffset; // 查询偏移
  76069. int nPagedQueryCount; // 查询个数,分页查询,最多不超过100
  76070. }NET_IN_ATTENDANCE_FINDUSER;
  76071. ///@brief CLIENT_Attendance_FindUser 出参
  76072. typedef struct tagNET_OUT_ATTENDANCE_FINDUSER
  76073. {
  76074. DWORD dwSize;
  76075. int nTotalUser; // 总的用户数
  76076. int nMaxUserCount; // 用户信息最大缓存数
  76077. NET_ATTENDANCE_USERINFO* stuUserInfo; // 用户信息,内存由用户申请,大小为(sizeof(NET_ATTENDANCE_USERINFO)*nMaxUserCount)
  76078. int nRetUserCount; // 实际返回的用户个数
  76079. int nMaxPhotoDataLength; // 照片数据最大长度
  76080. int nRetPhoteLength; // 实际返回的照片数据长度
  76081. BYTE * pbyPhotoData; // 照片数据
  76082. }NET_OUT_ATTENDANCE_FINDUSER;
  76083. ///@brief CLIENT_Attendance_GetFingerByUserID 入参
  76084. typedef struct tagNET_IN_FINGERPRINT_GETBYUSER
  76085. {
  76086. DWORD dwSize;
  76087. char szUserID[MAX_COMMON_STRING_32]; // 用户ID
  76088. }NET_IN_FINGERPRINT_GETBYUSER;
  76089. ///@brief CLIENT_Attendance_GetFingerByUserID 出参
  76090. typedef struct tagNET_OUT_FINGERPRINT_GETBYUSER
  76091. {
  76092. DWORD dwSize;
  76093. int nFingerPrintIDs[DH_MAX_FINGER_PRINT]; // 信息ID数组
  76094. int nRetFingerPrintCount; // 实际返回的信息ID个数,即数组中实际有效个数
  76095. int nSinglePacketLength; // 单个信息数据包长度
  76096. int nMaxFingerDataLength; // 接受信息数据的缓存的最大长度
  76097. int nRetFingerDataLength; // 实际返回的总的信息数据包的长度
  76098. BYTE* pbyFingerData; // 信息数据
  76099. }NET_OUT_FINGERPRINT_GETBYUSER;
  76100. ///@brief CLIENT_Attendance_AddUser 入参
  76101. typedef struct tagNET_IN_ATTENDANCE_ADDUSER
  76102. {
  76103. DWORD dwSize;
  76104. NET_ATTENDANCE_USERINFO stuUserInfo; //用户信息
  76105. BYTE *pbyPhotoData; // 照片数据
  76106. }NET_IN_ATTENDANCE_ADDUSER;
  76107. ///@brief CLIENT_Attendance_AddUser出参
  76108. typedef struct tagNET_OUT_ATTENDANCE_ADDUSER
  76109. {
  76110. DWORD dwSize;
  76111. }NET_OUT_ATTENDANCE_ADDUSER;
  76112. ///@brief 考勤新增加用户
  76113. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_AddUser(LLONG lLoginID, NET_IN_ATTENDANCE_ADDUSER *pstuInAddUser, NET_OUT_ATTENDANCE_ADDUSER *pstuOutAddUser, int nWaitTime);
  76114. ///@brief CLIENT_Attendance_DelUser 入参
  76115. typedef struct tagNET_IN_ATTENDANCE_DELUSER
  76116. {
  76117. DWORD dwSize;
  76118. char szUserID[MAX_COMMON_STRING_32]; //用户ID
  76119. }NET_IN_ATTENDANCE_DELUSER;
  76120. ///@brief CLIENT_Attendance_DelUser出参
  76121. typedef struct tagNET_OUT_ATTENDANCE_DELUSER
  76122. {
  76123. DWORD dwSize;
  76124. }NET_OUT_ATTENDANCE_DELUSER;
  76125. ///@brief 考勤删除用户
  76126. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_DelUser(LLONG lLoginID, NET_IN_ATTENDANCE_DELUSER *pstuInDelUser, NET_OUT_ATTENDANCE_DELUSER *pstuOutDelUser, int nWaitTime);
  76127. ///@brief CLIENT_Attendance_ModifyUser 入参
  76128. typedef struct tagNET_IN_ATTENDANCE_ModifyUSER
  76129. {
  76130. DWORD dwSize;
  76131. NET_ATTENDANCE_USERINFO stuUserInfo; //用户信息
  76132. BYTE *pbyPhotoData; // 照片数据
  76133. }NET_IN_ATTENDANCE_ModifyUSER;
  76134. ///@brief CLIENT_Attendance_ModifyUser出参
  76135. typedef struct tagNET_OUT_ATTENDANCE_ModifyUSER
  76136. {
  76137. DWORD dwSize;
  76138. }NET_OUT_ATTENDANCE_ModifyUSER;
  76139. ///@brief 考勤修改用户信息
  76140. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_ModifyUser(LLONG lLoginID, NET_IN_ATTENDANCE_ModifyUSER *pstuInModifyUser, NET_OUT_ATTENDANCE_ModifyUSER *pstuOutModifyUser, int nWaitTime);
  76141. ///@brief CLIENT_Attendance_GetUser 入参
  76142. typedef struct tagNET_IN_ATTENDANCE_GetUSER
  76143. {
  76144. DWORD dwSize;
  76145. char szUserID[MAX_COMMON_STRING_32]; //用户ID
  76146. }NET_IN_ATTENDANCE_GetUSER;
  76147. ///@brief CLIENT_Attendance_GetUser出参
  76148. typedef struct tagNET_OUT_ATTENDANCE_GetUSER
  76149. {
  76150. DWORD dwSize;
  76151. NET_ATTENDANCE_USERINFO stuUserInfo; //用户信息
  76152. int nMaxLength; // 最大存放照片数据的长度
  76153. BYTE * pbyPhotoData; // 照片数据
  76154. }NET_OUT_ATTENDANCE_GetUSER;
  76155. ///@brief 考勤机 获取用户信息
  76156. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_GetUser(LLONG lLoginID, NET_IN_ATTENDANCE_GetUSER *pstuInGetUser, NET_OUT_ATTENDANCE_GetUSER *pstuOutGetUser, int nWaitTime);
  76157. ///@brief 考勤机 通过用户ID插入信息数据
  76158. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_InsertFingerByUserID(LLONG lLoginID, NET_IN_FINGERPRINT_INSERT_BY_USERID* pstuInInsert, NET_OUT_FINGERPRINT_INSERT_BY_USERID* pstuOutInsert, int nWaitTime);
  76159. ///@brief 考勤机 删除单个用户下所有信息数据
  76160. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_RemoveFingerByUserID(LLONG lLoginID, NET_CTRL_IN_FINGERPRINT_REMOVE_BY_USERID* pstuInRemove, NET_CTRL_OUT_FINGERPRINT_REMOVE_BY_USERID* pstuOutRemove, int nWaitTime);
  76161. ///@brief 考勤机 通过信息ID获取信息数据
  76162. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_GetFingerRecord(LLONG lLoginID, NET_CTRL_IN_FINGERPRINT_GET* pstuInGet, NET_CTRL_OUT_FINGERPRINT_GET* pstuOutGet, int nWaitTime);
  76163. ///@brief 考勤机 通过信息ID删除信息数据
  76164. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_RemoveFingerRecord(LLONG lLoginID, NET_CTRL_IN_FINGERPRINT_REMOVE* pstuInRemove, NET_CTRL_OUT_FINGERPRINT_REMOVE* pstuOutRemove, int nWaitTime);
  76165. ///@brief 考勤机 查找用户
  76166. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_FindUser(LLONG lLoginID, NET_IN_ATTENDANCE_FINDUSER *pstuInFindUser, NET_OUT_ATTENDANCE_FINDUSER *pstuOutFindUser, int nWaitTime);
  76167. ///@brief 考勤机 通过用户ID查找该用户下的所有信息数据
  76168. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_GetFingerByUserID(LLONG lLoginID, NET_IN_FINGERPRINT_GETBYUSER *pstuIn, NET_OUT_FINGERPRINT_GETBYUSER *pstuOut, int nWaitTime);
  76169. ///@brief 搜索设备接口子类型
  76170. typedef enum tagEM_NET_DEVICE_DISCOVERY_SUBCLASSID_TYPE
  76171. {
  76172. EM_NET_DEVICE_DISCOVERY_SUBCLASSID_TYPE_UNKNOWN = -1, // 未知
  76173. EM_NET_DEVICE_DISCOVERY_SUBCLASSID_TYPE_NONE = 0, // 私有标准规范
  76174. EM_NET_DEVICE_DISCOVERY_SUBCLASSID_TYPE_ONVIF, // Onvif标准规范
  76175. EM_NET_DEVICE_DISCOVERY_SUBCLASSID_TYPE_UPNP, // UPnP标准规范
  76176. }EM_NET_DEVICE_DISCOVERY_SUBCLASSID_TYPE;
  76177. ///@brief fAttachDeviceDiscoveryCB 参数
  76178. typedef struct tagNET_DEVICE_DISCOVERY_INFO
  76179. {
  76180. DWORD dwSize;
  76181. char szMachineName[DH_COMMON_STRING_32]; // 设备名称
  76182. char szDeviceClass[DH_COMMON_STRING_32]; // 设备类型
  76183. char szDeviceType[DH_COMMON_STRING_32]; // 设备型号
  76184. char szSerialNo[DH_COMMON_STRING_32]; // 设备序列号
  76185. char szVersion[DH_COMMON_STRING_32]; // 设备软件版本号
  76186. char szMac[DH_COMMON_STRING_32]; // 设备MAC地址
  76187. int nVideoInputChannels; // 设备视频输入通道号
  76188. int nRemoteVideoInputChannels; // 远程视频输入通道数
  76189. int nVideoOutputChannels; // 视频输出通道数
  76190. int nAlarmInputChannels; // 报警输入通道数
  76191. int nAlarmOutputChannels; // 报警输出通道数
  76192. int nAudioInputChannels; // 设备音频输入通道数
  76193. int nPort; // 登陆端口
  76194. char szVendor[DH_COMMON_STRING_32]; // 客户名称
  76195. int nInit; // 设备是否已初始化:0不具备初始化功能的设备,可以等同于已初始化 1未初始化 2已初始化
  76196. char szIPv4Address[DH_COMMON_STRING_32]; // IPv4地址
  76197. char szIPv4SubnetMask[DH_COMMON_STRING_32]; // IPv4子网掩码
  76198. char szIPv4DefaultGateway[DH_COMMON_STRING_32]; // IPv4默认网关
  76199. BOOL bIPv4DhcpEnable; // IPv4是否使能DHCP
  76200. char szIPv6Address[DH_COMMON_STRING_32]; // IPv6地址
  76201. char szIPv6DefaultGateway[DH_COMMON_STRING_32]; // IPv6默认网关
  76202. char szIPv6LinkLocalAddress[DH_COMMON_STRING_32]; // IPv6本地链路地址,该地址只能直连,不需要Gateway
  76203. BOOL bIPv6DhcpEnable; // IPv6是否使能Dhcp
  76204. char szProtocol[DH_COMMON_STRING_32]; // 设备搜索标准
  76205. }NET_DEVICE_DISCOVERY_INFO;
  76206. ///@brief 注册设备搜索处理回调函数原形,lAttachHandle是CLIENT_AttachDeviceDiscovery返回值, pDeviceInfo为设备信息, nDeviceNum为设备信息数组个数
  76207. typedef void (CALLBACK *fAttachDeviceDiscoveryCB) (LLONG lAttachHandle, NET_DEVICE_DISCOVERY_INFO* pDeviceInfo, int nDeviceNum, LDWORD dwUser);
  76208. ///@brief CLIENT_AttachDeviceDiscovery 接口输入参数
  76209. typedef struct tagNET_IN_ATTACH_DEVICE_DISCOVERY
  76210. {
  76211. DWORD dwSize;
  76212. EM_NET_DEVICE_DISCOVERY_SUBCLASSID_TYPE emSubClassID; // 接口子类型
  76213. fAttachDeviceDiscoveryCB cbNotify; // 回调函数
  76214. LDWORD dwUser; // 用户数据
  76215. } NET_IN_ATTACH_DEVICE_DISCOVERY;
  76216. ///@brief CLIENT_AttachDeviceDiscovery 接口输出参数
  76217. typedef struct tagNET_OUT_ATTACH_DEVICE_DISCOVERY
  76218. {
  76219. DWORD dwSize;
  76220. } NET_OUT_ATTACH_DEVICE_DISCOVERY;
  76221. ///@brief CLIENT_StartDeviceDiscovery 接口输入参数
  76222. typedef struct tagNET_IN_START_DEVICE_DISCOVERY
  76223. {
  76224. DWORD dwSize;
  76225. EM_NET_DEVICE_DISCOVERY_SUBCLASSID_TYPE emSubClassID; // 接口子类型
  76226. int nTimeOut; // 搜索超时,搜索结果上报时间,超过此时间后,不再上报设备信息. 单位秒
  76227. } NET_IN_START_DEVICE_DISCOVERY;
  76228. ///@brief CLIENT_StartDeviceDiscovery 接口输出参数
  76229. typedef struct tagNET_OUT_START_DEVICE_DISCOVERY
  76230. {
  76231. DWORD dwSize;
  76232. } NET_OUT_START_DEVICE_DISCOVERY;
  76233. ///@brief CLIENT_StopDeviceDiscovery 接口输入参数
  76234. typedef struct tagNET_IN_STOP_DEVICE_DISCOVERY
  76235. {
  76236. DWORD dwSize;
  76237. EM_NET_DEVICE_DISCOVERY_SUBCLASSID_TYPE emSubClassID; // 接口子类型
  76238. } NET_IN_STOP_DEVICE_DISCOVERY;
  76239. ///@brief CLIENT_StopDeviceDiscovery 接口输出参数
  76240. typedef struct tagNET_OUT_STOP_DEVICE_DISCOVERY
  76241. {
  76242. DWORD dwSize;
  76243. } NET_OUT_STOP_DEVICE_DISCOVERY;
  76244. ///@brief 注册设备搜索
  76245. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachDeviceDiscovery(LLONG lLoginID, const NET_IN_ATTACH_DEVICE_DISCOVERY *pInParam, NET_OUT_ATTACH_DEVICE_DISCOVERY *pOutParam, int nWaitTime);
  76246. ///@brief 注销设备搜索, lAttachHandle为CLIENT_AttachDeviceDiscovery 返回值
  76247. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachDeviceDiscovery(LLONG lAttachHandle);
  76248. ///@brief 启动设备搜索
  76249. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartDeviceDiscovery(LLONG lLoginID, const NET_IN_START_DEVICE_DISCOVERY *pInParam, NET_OUT_START_DEVICE_DISCOVERY *pOutParam, int nWaitTime);
  76250. ///@brief 停止设备搜索
  76251. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopDeviceDiscovery(LLONG lLoginID, const NET_IN_STOP_DEVICE_DISCOVERY *pInParam, NET_OUT_STOP_DEVICE_DISCOVERY *pOutParam, int nWaitTime);
  76252. ///@brief 设置单防区布撤防接口,pInBuf与pOutBuf内存由用户申请释放
  76253. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDefenceArmMode(LLONG lLoginID, NET_IN_SET_DEFENCEMODE* pInBuf, NET_OUT_SET_DEFENCEMODE* pOutBuf = NULL, int nWaitTime = 1000);
  76254. ///@brief 获取单防区布撤防状态接口,pInBuf与pOutBuf内存由用户申请释放
  76255. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDefenceArmMode(LLONG lLoginID, NET_IN_GET_DEFENCEMODE* pInBuf, NET_OUT_GET_DEFENCEMODE* pOutBuf, int nWaitTime = 1000);
  76256. ///@brief 设置子系统布撤防接口,pInBuf与pOutBuf内存由用户申请释放
  76257. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSubSystemArmMode(LLONG lLoginID, NET_IN_SET_SUBSYSTEMMODE* pInBuf, NET_OUT_SET_SUBSYSTEMMODE* pOutBuf = NULL, int nWaitTime = 1000);
  76258. ///@brief 获取子系统布撤防状态接口,pInBuf与pOutBuf内存由用户申请释放
  76259. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSubSystemArmMode(LLONG lLoginID, NET_IN_GET_SUBSYSTEMMODE* pInBuf, NET_OUT_GET_SUBSYSTEMMODE* pOutBuf, int nWaitTime = 1000);
  76260. ///@brief 获取主机布撤防状态接口,pInBuf与pOutBuf内存由用户申请释放
  76261. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetArmMode(LLONG lLoginID, NET_IN_GET_ARM_MODE* pInBuf, NET_OUT_GET_ARM_MODE* pOutBuf, int nWaitTime);
  76262. ///@brief 批量下发门禁控制卡
  76263. ///@brief nInsertCount: 下发卡片数量,不大于 20
  76264. ///@brief pInsertCards: 需要下发的卡片信息,指向用户分配并填充的 NET_RECORDSET_ACCESS_CTL_CARD 结构体缓存,个数为 nInsertCount
  76265. ///@brief nRecNo: 下发后的记录编号,与 pInsertCards 一一对应,-1 表示该项插入失败,指向用户分配的 int 缓存,个数为 nInsertCount
  76266. CLIENT_NET_API BOOL CALL_METHOD CLIENT_InsertAccessControlCards(LLONG lLoginID, int nInsertCount, const NET_RECORDSET_ACCESS_CTL_CARD* pInsertCards, int* pRecNo, void* reserved = NULL, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  76267. ///@brief 目标图片比较信息
  76268. typedef struct tagNET_IMAGE_COMPARE_INFO
  76269. {
  76270. DWORD dwoffset; // 在二进制数据块中的偏移,单位:字节
  76271. DWORD dwLength; // 图片大小,单位:字节
  76272. DWORD dwWidth; // 图片宽度
  76273. DWORD dwHeight; // 图片高度
  76274. BYTE byReserved[128]; // 保留字节
  76275. } NET_IMAGE_COMPARE_INFO;
  76276. ///@brief CLIENT_MatchTwoFace 输入参数
  76277. typedef struct tagNET_MATCH_TWO_FACE_IN
  76278. {
  76279. DWORD dwSize;
  76280. NET_IMAGE_COMPARE_INFO stuOriginalImage; // 原图
  76281. NET_IMAGE_COMPARE_INFO stuCompareImage; // 比较图
  76282. char *pSendBuf; // 两张目标图片数据
  76283. DWORD dwSendBufLen; // 数据大小
  76284. } NET_MATCH_TWO_FACE_IN;
  76285. ///@brief CLIENT_MatchTwoFace 输出参数
  76286. typedef struct tagNET_MATCH_TWO_FACE_OUT
  76287. {
  76288. DWORD dwSize;
  76289. int nSimilarity; // 两张图片的相似度,范围0~100
  76290. } NET_MATCH_TWO_FACE_OUT;
  76291. ///@brief 计算两张目标图片的相似度faceRecognitionServer.matchTwoFace,pstInParam与pstOutParam内存由用户申请释放
  76292. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatchTwoFaceImage(LLONG lLoginID, const NET_MATCH_TWO_FACE_IN *pstInParam, NET_MATCH_TWO_FACE_OUT *pstOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  76293. ///@brief 解码帧类型
  76294. typedef enum tagEM_DECODE_FRAME_TYPE
  76295. {
  76296. EM_FRAME_TYPE_UNKNOWN = -1, // 未知的
  76297. EM_FRAME_TYPE_VIDEO = 0, // 视频帧
  76298. EM_FRAME_TYPE_AUDIO = 1, // 音频帧
  76299. }EM_DECODE_FRAME_TYPE;
  76300. ///@brief 解码帧扩展信息
  76301. typedef struct tagNET_FRAME_INFO_EX
  76302. {
  76303. DWORD dwSize;
  76304. EM_DECODE_FRAME_TYPE emFrameType; //视频帧类型,见上面定义
  76305. int nFrameSeq; //帧序号
  76306. int nStamp; //时标信息,单位毫秒
  76307. int nWidth; //画面宽,单位像素.如果是音频数据则为0.
  76308. int nHeight; //画面高,如果是音频数据则为0
  76309. int nFrameRate; //编码时产生的图像帧率
  76310. int nChannels; //音频通道数
  76311. int nBitPerSample; //音频采样位数
  76312. int nSamplesPerSec; //音频采样频率
  76313. int nRemainData; //缓冲剩余数据量
  76314. NET_TIME_EX nDataTime; //时间
  76315. }NET_FRAME_INFO_EX;
  76316. ///@brief 解码帧信息
  76317. typedef struct tagNET_FRAME_DECODE_INFO
  76318. {
  76319. DWORD dwSize;
  76320. EM_DECODE_FRAME_TYPE emFrameType; //帧类型,定义见FRAME_INFO_EX里nFrameType字段
  76321. void* pAudioData; //音频数据,如果是音频帧
  76322. int nAudioDataLen; //音频数据长度
  76323. void* pVideoData[3]; //分别表示视频的YUV三个分量
  76324. int nStride[3]; //分别表示YUV三个分量的跨距
  76325. int nWidth[3]; //分别表示YUV三个分量的宽度
  76326. int nHeight[3]; //分别表示YUV三个分量的高度
  76327. }NET_FRAME_DECODE_INFO;
  76328. ///@brief 解码回调函数
  76329. typedef void (CALLBACK *fDecCallBack)(LLONG lLoginID, LLONG lPlayHandle, NET_FRAME_DECODE_INFO* pFrameDecodeInfo, NET_FRAME_INFO_EX* pFrameInfo, LDWORD dwUserData, LLONG nReserved);
  76330. ///@brief 设置解码回调函数
  76331. CLIENT_NET_API void CALL_METHOD CLIENT_SetDecCallBack(fDecCallBack cbDecCallBack, LDWORD dwUserData, LLONG nReserved = 0);
  76332. ///@brief 设置解码回调函数----扩展
  76333. CLIENT_NET_API void CALL_METHOD CLIENT_SetDecCallBackEx(fDecCallBack cbDecCallBack, LDWORD dwUserData, NET_VIDEOSTREAM_TYPE emVideoStreamType, LLONG nReserved);
  76334. ///@brief 获取默认配置(目前只实现了EncodePlane配置emCfgOpType == NET_EM_CFG_ENCODE_PLAN)
  76335. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevDefaultConfig(LLONG lLoginID, NET_EM_CFG_OPERATE_TYPE emCfgOpType, int nChannelID,
  76336. LPVOID lpOutBuffer, DWORD dwOutBufferSize, int nWaittime);
  76337. #define NET_CUSTOM_PARKING_SPACE_NUMBER_MAX_LEN 32 // 自定义车位号最大长度
  76338. ///@brief 车位指示灯颜色
  76339. typedef enum tagEM_PARKINGSPACE_LIGHT_COLOR
  76340. {
  76341. EM_PARKINGSPACE_LIGHT_COLOR_UNKNOWN, // 未知
  76342. EM_PARKINGSPACE_LIGHT_COLOR_RED, // 红色
  76343. EM_PARKINGSPACE_LIGHT_COLOR_YELLOW, // 黄色
  76344. EM_PARKINGSPACE_LIGHT_COLOR_GREEN, // 绿色
  76345. EM_PARKINGSPACE_LIGHT_COLOR_BLUE, // 蓝色
  76346. EM_PARKINGSPACE_LIGHT_COLOR_PURPLE, // 紫色
  76347. EM_PARKINGSPACE_LIGHT_COLOR_WHITE, // 白色
  76348. EM_PARKINGSPACE_LIGHT_COLOR_PINK, // 粉色
  76349. }EM_PARKINGSPACE_LIGHT_COLOR;
  76350. ///@brief 车位指示灯状态
  76351. typedef enum tagEM_PARKINGSPACE_LIGHT_STATE
  76352. {
  76353. EM_PARKINGSPACE_LIGHT_STATE_UNKNOWN = -1, // 未知
  76354. EM_PARKINGSPACE_LIGHT_STATE_OFF, // 灭
  76355. EM_PARKINGSPACE_LIGHT_STATE_ON, // 亮
  76356. EM_PARKINGSPACE_LIGHT_STATE_GLINT, // 闪烁
  76357. EM_PARKINGSPACE_LIGHT_STATE_LAST_STATE, // 上一个状态
  76358. }EM_PARKINGSPACE_LIGHT_STATE;
  76359. ///@brief 停车场车位指示灯亮灯计划信息
  76360. typedef struct tagNET_PARKING_SPACE_LIGHT_PLAN_INFO
  76361. {
  76362. EM_PARKINGSPACE_LIGHT_COLOR emColor; // 颜色
  76363. EM_PARKINGSPACE_LIGHT_STATE emState; // 状态
  76364. int nKeepTime; // 持续时间,单位秒,-1表示常亮
  76365. BYTE byReserved[128]; // 保留字节
  76366. }NET_PARKING_SPACE_LIGHT_PLAN_INFO;
  76367. ///@brief 设置车位指示灯亮灯计划入参
  76368. typedef struct tagNET_IN_SET_PARKING_SPACE_LIGHT_PLAN
  76369. {
  76370. DWORD dwSize; // 结构体大小
  76371. int nPhysicalLane; // 物理车位号,请优先使用此字段.值为负数时表示此字段无效
  76372. char szCustomParkNo[NET_CUSTOM_PARKING_SPACE_NUMBER_MAX_LEN]; // 自定义车位编号,物理车位号字段无效时,使用此字段
  76373. int nLightPlanNum; // 亮灯计划数目
  76374. NET_PARKING_SPACE_LIGHT_PLAN_INFO* pstuLightPlan; // 亮灯计划信息,由用户申请和释放内存
  76375. }NET_IN_SET_PARKING_SPACE_LIGHT_PLAN;
  76376. ///@brief 设置车位指示灯亮灯计划出参
  76377. typedef struct tagNET_OUT_SET_PARKING_SPACE_LIGHT_PLAN
  76378. {
  76379. DWORD dwSize; // 结构体大小
  76380. }NET_OUT_SET_PARKING_SPACE_LIGHT_PLAN;
  76381. ///@brief 设置车位检测器车灯亮灯计划,pNetDataIn与pNetDataOut由用户申请内存
  76382. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetParkingSpaceLightPlan(LLONG lLoginID,const NET_IN_SET_PARKING_SPACE_LIGHT_PLAN* pNetDataIn,NET_OUT_SET_PARKING_SPACE_LIGHT_PLAN* pNetDataOut,int nWaitTime);
  76383. ///@brief CLIENT_SyncParkingInfo 地磁车位同步上报车位信息入参
  76384. typedef struct tagNET_IN_SYNC_PARKING_INFO
  76385. {
  76386. DWORD dwSize; // 结构体大小
  76387. int nChannel; // 通道号
  76388. char szParkingNum[32]; // 车位编号
  76389. DWORD dwPresetNum; // 预置点编号
  76390. BOOL bHaveCar; // 车位是否有车
  76391. BOOL bParkingFault; // 车位是否有故障
  76392. int nSnapTimes; // 补拍次数(取值范围:0-5)
  76393. int nSnapIntervel; // 补拍间隔(取值范围:3-10)
  76394. }NET_IN_SYNC_PARKING_INFO;
  76395. ///@brief CLIENT_SyncParkingInfo 地磁车位同步上报车位信息出参
  76396. typedef struct tagNET_OUT_SYNC_PARKING_INFO
  76397. {
  76398. DWORD dwSize; // 结构体大小
  76399. }NET_OUT_SYNC_PARKING_INFO;
  76400. ///@brief 球机定制,地磁车位同步上报车位信息,如有车停入、或车从车位开出
  76401. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SyncParkingInfo(LLONG lLoginID, const NET_IN_SYNC_PARKING_INFO* pNetIn, NET_OUT_SYNC_PARKING_INFO* pNetOut, int nWaitTime);
  76402. /************************************************************************
  76403. ** 分布式车辆人员结构化查询协议
  76404. ***********************************************************************/
  76405. ///@brief 结构化事件中图片信息
  76406. typedef struct tagDEV_ALARM_OBJECTSTRUCTLIZE_PIC_INFO
  76407. {
  76408. char szCutPicPath[MAX_PATH]; // 此字段表示抠图的HTTP路径
  76409. DWORD dwWidth; // 图片宽度
  76410. DWORD dwHeight; // 图片高度
  76411. BYTE byReserved[256]; // 保留字节
  76412. } DEV_ALARM_OBJECTSTRUCTLIZE_PIC_INFO;
  76413. ///@brief 人员结构化查找条件或者结果,人员信息
  76414. typedef struct tagDEV_PERSON_CONDITION_RESULT_FEATURE_INFO
  76415. {
  76416. EM_DEV_EVENT_FACEDETECT_SEX_TYPE emSex; // 性别
  76417. BYTE byAge; // 年龄
  76418. BYTE byCall; // 是否在打电话 , 0-未识别 1-不打电话 2-打电话
  76419. BYTE byHat; // 是否戴帽子 , 0-未识别 1-不戴帽子 2-戴帽子
  76420. BYTE byBag; // 是否背包 , 0-未识别 1-不背包 2-背包
  76421. BYTE byUmbrella; // 是否打伞 , 0-未识别 1-不打伞 2-打伞
  76422. BYTE byGlasses; // 是否戴眼镜 , 0-未识别 1-不戴眼镜 2-戴眼镜
  76423. BYTE byReserved1[2]; // 字节对齐
  76424. EM_DEV_EVENT_FACEDETECT_FEATURE_TYPE emEmotion; // 表情:微笑,愤怒, 悲伤, 厌恶, 害怕, 惊讶, 正常, 大笑
  76425. NET_COLOR_RGBA stuUpperBodyColor; // 上半身颜色
  76426. NET_COLOR_RGBA stuLowerBodyColor; // 下半身颜色
  76427. BYTE byReserved[256]; // 保留字节
  76428. } DEV_PERSON_CONDITION_FEATURE_INFO,DEV_PERSON_RESULT_FEATURE_INFO;
  76429. ///@brief 行人特征检测事件 EVENT_IVS_OBJECTSTRUCTLIZE_PERSON
  76430. typedef struct tagDEV_EVENT_OBJECTSTRUCTLIZE_PERSON_INFO
  76431. {
  76432. int nChannelID; // 通道号
  76433. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  76434. BYTE bReserved1[4]; // 字节对齐
  76435. double dbPTS; // 时间戳(单位是毫秒)
  76436. NET_TIME_EX stuUTC; // 事件发生的时间
  76437. int nEventID; // 事件ID
  76438. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  76439. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  76440. char szFilePath[MAX_PATH]; // 大图文件路径
  76441. DEV_PERSON_RESULT_FEATURE_INFO stuPersonFeatrue; // 行人特征
  76442. NET_RECT stuBoundingBoxRect; // 行人在大图中的包围盒坐标,Rect格式8192坐标系
  76443. DEV_ALARM_OBJECTSTRUCTLIZE_PIC_INFO stuImageInfo; // 大图中行人抠图图片信息
  76444. int nImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  76445. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  76446. BYTE bReserved[1024]; // 保留字节,留待扩展.
  76447. } DEV_EVENT_OBJECTSTRUCTLIZE_PERSON_INFO;
  76448. ///@brief 非机动车特征检测事件(三轮车、摩托车、自动车etc),由于非机动上一定有人,因此事件的内容和行人特征检测事件有重叠,但算法的检测主体是非机动车.
  76449. typedef struct tagDEV_EVENT_OBJECTSTRUCTLIZE_NONMOTOR_INFO
  76450. {
  76451. int nChannelID; // 通道号
  76452. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  76453. BYTE bReserved1[4]; // 字节对齐
  76454. double dbPTS; // 时间戳(单位是毫秒)
  76455. NET_TIME_EX stuUTC; // 事件发生的时间
  76456. int nEventID; // 事件ID
  76457. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  76458. int nEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  76459. char szFilePath[MAX_PATH]; // 大图文件路径
  76460. char szPlateNumber[DH_MAX_PLATE_NUMBER_LEN];// 车牌号码
  76461. DEV_PERSON_RESULT_FEATURE_INFO stuPersonFeatrue; // 非机动车上人员特征
  76462. NET_RECT stuBoundingBoxRect; // 非机动车在大图中的包围盒坐标,Rect格式8192坐标系
  76463. DEV_ALARM_OBJECTSTRUCTLIZE_PIC_INFO stuImageInfo; // 大图中的非机动车抠图信息
  76464. int nImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  76465. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见 NET_RESERVED_COMMON
  76466. BYTE bReserved[1024]; // 保留字节,留待扩展.
  76467. } DEV_EVENT_OBJECTSTRUCTLIZE_NONMOTOR_INFO;
  76468. ///@brief 倒地报警事件信息,对应 DH_ALARM_TUMBLE_DETECTION 报警
  76469. typedef struct tagALARM_TUMBLE_DETECTION_INFO
  76470. {
  76471. int nAction; // 事件动作,1表示报警开始,2表示报警结束;
  76472. int nChannelID; // 通道号
  76473. double PTS; // 时间戳(单位是毫秒)
  76474. NET_TIME_EX UTC; // 事件发生的时间
  76475. int nEventID; // 事件ID
  76476. int UTCMS; // UTC时间对应的毫秒数
  76477. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  76478. int nObjectID; // 目标ID
  76479. char szObjectType[DH_COMMON_STRING_16]; // 物体类型,支持以下:
  76480. // "Unknown", "Human", "Vehicle", "Fire", "Smoke", "Plate", "HumanFace",
  76481. // "Container", "Animal", "TrafficLight", "PastePaper", "HumanHead", "BulletHole", "Entity"
  76482. NET_RECT stuBoundingBox; // 物体包围盒
  76483. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  76484. int nTriggerType; // 触发类型 -1: 未知 0: 车检器 1: 雷达 2: 视频
  76485. int nSubType; // 倒地事件子类型 -1:未知 0: 普通倒地事件1: 跌倒检测事件2: 异常躺倒事件
  76486. char szMac[32]; // 事件触发源的Mac地址
  76487. BYTE byReserved[984]; // 保留字节
  76488. }ALARM_TUMBLE_DETECTION_INFO;
  76489. ///@brief 事件类型 EVENT_IVS_TUMBLE_DETECTION(倒地报警事件)对应数据块描述信息
  76490. typedef struct tagDEV_EVENT_TUMBLE_DETECTION_INFO
  76491. {
  76492. int nChannelID; // 通道号
  76493. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  76494. int nAction; // 事件动作,1表示持续性事件开始,2表示持续性事件结束;
  76495. double PTS; // 时间戳(单位是毫秒)
  76496. NET_TIME_EX UTC; // 事件发生的时间
  76497. int nEventID; // 事件ID
  76498. int UTCMS; // UTC时间对应的毫秒数
  76499. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  76500. int nObjectID; // 目标ID
  76501. char szObjectType[DH_COMMON_STRING_16]; // 物体类型,支持以下:
  76502. //"Unknown", "Human", "Vehicle", "Fire", "Smoke", "Plate", "HumanFace",
  76503. // "Container", "Animal", "TrafficLight", "PastePaper", "HumanHead", "BulletHole", "Entity"
  76504. NET_RECT stuBoundingBox; // 物体包围盒
  76505. char szSerialUUID[22]; // 智能物体全局唯一物体标识
  76506. // 有效数据位21位,包含’\0’
  76507. // 前2位%d%d:01-视频片段, 02-图片, 03-文件, 99-其他
  76508. // 中间14位YYYYMMDDhhmmss:年月日时分秒
  76509. // 后5位%u%u%u%u%u:物体ID,如00001
  76510. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  76511. NET_IMAGE_INFO_EX2 *pstuImageInfo; // 图片信息数组
  76512. int nImageInfoNum; // 图片信息个数
  76513. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  76514. int nDetectRegionNum; // 检测区个数
  76515. NET_POINT_EX stuDetectRegion[20]; // 检测区
  76516. BYTE bReserved[834]; // 保留字节
  76517. } DEV_EVENT_TUMBLE_DETECTION_INFO;
  76518. ///@brief 事件类型 EVENT_IVS_SPILLEDMATERIAL_DETECTION (抛洒物检测事件)对应数据块描述信息
  76519. typedef struct tagDEV_EVENT_SPILLEDMATERIAL_DETECTION_INFO
  76520. {
  76521. int nChannelID; // 通道号
  76522. char szName[128]; // 事件名称
  76523. char bReserved[4]; // 字节对齐
  76524. double PTS; // 时间戳(单位是毫秒)
  76525. NET_TIME_EX UTC; // 事件发生的时间
  76526. int nEventID; // 事件ID
  76527. DH_MSG_OBJECT_EX stuObjects[MAX_OBJECT_NUM_EX]; // 检测到的物体
  76528. int nObjectNum; // 检测到的物体数量
  76529. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  76530. DH_POINT stuDetectLine[DH_MAX_DETECT_LINE_NUM]; // 规则检测线
  76531. int nDetectLineNum; // 规则检测线顶点数
  76532. DH_POINT stuTrackLine[DH_MAX_TRACK_LINE_NUM];// 物体运动轨迹
  76533. int nTrackLineNum; // 物体运动轨迹顶点数
  76534. BYTE bEventAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  76535. BYTE bReserved1[3]; // 保留字节
  76536. NET_CROSSLINE_DIRECTION_INFO emDirection; // 表示入侵方向,(nObjectNum > 0时此字段无效,由stuObjects格式下emPersonDirection字段代替)
  76537. int nImageIndex; // 图片的序号, 同一时间内(精确到秒)可能有多张图片, 从0开始
  76538. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESERVED_COMMON
  76539. int nSourceIndex; // 事件源设备上的index,-1表示数据无效,-1表示数据无效
  76540. char szSourceDevice[MAX_PATH]; // 事件源设备唯一标识,字段不存在或者为空表示本地设备
  76541. unsigned int nOccurrenceCount; // 事件触发累计次数
  76542. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  76543. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  76544. BYTE byReserved[1028]; // 保留字节,留待扩展.
  76545. }DEV_EVENT_SPILLEDMATERIAL_DETECTION_INFO;
  76546. ///@brief 人证对比图片信息
  76547. typedef struct tagCITIZEN_PICTURE_COMPARE_IMAGE_INFO
  76548. {
  76549. DWORD dwOffSet; // 文件在二进制数据块中的偏移位置, 单位:字节
  76550. DWORD dwFileLenth; // 文件大小, 单位:字节
  76551. WORD wWidth; // 图片宽度, 单位:像素
  76552. WORD wHeight; // 图片高度, 单位:像素
  76553. BYTE byReserved[256]; // 保留字节
  76554. }CITIZEN_PICTURE_COMPARE_IMAGE_INFO;
  76555. ///@brief 图片类型
  76556. typedef enum tagCITIZEN_PICTURE_COMPARE_TYPE
  76557. {
  76558. CITIZEN_PICTURE_COMPARE_TYPE_UNKNOWN = -1,
  76559. CITIZEN_PICTURE_COMPARE_TYPE_LOCAL, // 本地目标库图
  76560. CITIZEN_PICTURE_COMPARE_TYPE_FACEMAP, // 拍摄场景图
  76561. }CITIZEN_PICTURE_COMPARE_TYPE;
  76562. ///@brief 人证对比扩展图片信息
  76563. typedef struct tagCITIZEN_PICTURE_COMPARE_IMAGE_INFO_EX
  76564. {
  76565. CITIZEN_PICTURE_COMPARE_TYPE emType; // 图片类型
  76566. DWORD dwOffSet; // 文件在二进制数据块中的偏移位置, 单位:字节
  76567. DWORD dwFileLenth; // 文件大小, 单位:字节
  76568. WORD wWidth; // 图片宽度, 单位:像素
  76569. WORD wHeight; // 图片高度, 单位:像素
  76570. BYTE byReserved[64]; // 保留字节
  76571. }CITIZEN_PICTURE_COMPARE_IMAGE_INFO_EX;
  76572. ///@brief 卡号数组信息
  76573. typedef struct tagNET_CARDNOARRAY_INFO
  76574. {
  76575. int nCardNum; // 卡号个数
  76576. char szCardInfo[5][64]; // 卡号信息
  76577. BYTE byReserved[1024]; // 保留字节
  76578. }NET_CARDNOARRAY_INFO;
  76579. ///@brief 信息数组信息
  76580. typedef struct tagNET_FINGERPRINT_INFO
  76581. {
  76582. int nFingerNum; // 信息个数
  76583. char szFingerInfo[8][2048]; // 信息信息
  76584. BYTE byReserved[1024]; // 保留字节
  76585. }NET_FINGERPRINT_INFO;
  76586. ///@brief 卡类型
  76587. typedef enum tagEM_CARD_TYPE
  76588. {
  76589. EM_CARD_TYPE_UNKNOWN, // 未知
  76590. EM_CARD_TYPE_NORMAL, // 普通卡
  76591. EM_CARD_TYPE_ID, // ID卡
  76592. EM_CARD_TYPE_CPU, // CPU卡
  76593. EM_CARD_TYPE_IDENTITY, // 证件卡
  76594. EM_CARD_TYPE_ENCRYPTION_IC, // 加密IC卡
  76595. }EM_CARD_TYPE;
  76596. ///@brief 人证比对事件,用实时拍摄的目标照片,和该人持有的证件照片进行比对,并上报检测结果
  76597. ///@brief 对应事件类型为 EVENT_IVS_CITIZEN_PICTURE_COMPARE
  76598. typedef struct tagDEV_EVENT_CITIZEN_PICTURE_COMPARE_INFO
  76599. {
  76600. /*公共字段*/
  76601. int nChannelID; // 通道号,从0开始
  76602. int nEventAction; // 事件动作, 0表示脉冲, -1表示未知
  76603. double dbPTS; // 时间戳(单位是毫秒)
  76604. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  76605. NET_TIME_EX stuUTC; // 事件发生的时间
  76606. int nEventID; // 事件ID
  76607. /*事件对应字段*/
  76608. bool bCompareResult; // 人证比对结果,相似度大于等于阈值认为比对成功,true表示成功,false表示失败
  76609. BYTE nSimilarity; // 两张图片的相似度,单位百分比,范围[1,100]
  76610. BYTE nThreshold; // 检测阈值,范围[1,100]
  76611. EM_CITIZENIDCARD_SEX_TYPE emSex; // 性别
  76612. int nECType; // 民族(参照DEV_EVENT_ALARM_CITIZENIDCARD_INFO的nECType定义)
  76613. char szCitizen[DH_COMMON_STRING_64]; // 居民姓名
  76614. char szAddress[DH_COMMON_STRING_256]; // 住址
  76615. char szNumber[DH_COMMON_STRING_64]; // 证件号
  76616. char szAuthority[DH_COMMON_STRING_256]; // 签发机关
  76617. NET_TIME stuBirth; // 出生日期(年月日)
  76618. NET_TIME stuValidityStart; // 有效期限起始日期(年月日)
  76619. BOOL bLongTimeValidFlag; // 该值为 TRUE, 截止日期 表示长期有效,此时 stuValidityEnd 值无意义
  76620. // 该值为 FALSE, 此时 截止日期 查看 stuValidityEnd 值
  76621. NET_TIME stuValidityEnd; // 有效期限结束日期(年月日)
  76622. CITIZEN_PICTURE_COMPARE_IMAGE_INFO stuImageInfo[2]; // 图片信息,第一张为拍摄照片,第二张为证件照片
  76623. char szCardNo[DH_COMMON_STRING_32]; // IC卡号
  76624. char szCellPhone[DH_COMMON_STRING_20]; // 手机号(比对时先输入手机号)
  76625. NET_EXTENSION_INFO stuExtensionInfo; // 扩展信息
  76626. CITIZEN_PICTURE_COMPARE_IMAGE_INFO_EX stuImageInfoEx[6]; // 图片扩展信息
  76627. char szCallNumber[20]; // 呼叫号码
  76628. NET_ACCESS_DOOROPEN_METHOD emDoorOpenMethod; // 开门方式(人证照片或者人证信息)
  76629. UINT nEventGroupID; // 事件ID,用于不同事件进行关联
  76630. UINT nEventType; // 事件类型:0:人证比对结果 1:人证目标采集 2:访客登记 3:目标权限下发 4:人证目标底库查询 9:学工号采集-(针对无证件的学生,支持手动输入学工号进行采集)
  76631. char szUserID[32]; // 人证目标采集时人员ID(定制)
  76632. char szBuildingNo[16]; // 楼号(定制)
  76633. char szBuildingUnitNo[16]; // 单元号(定制)
  76634. char szBuildingRoomNo[16]; // 房间号(定制)
  76635. UINT nFaceIndex; // 目标序号
  76636. EM_MASK_STATE_TYPE emMask; // 口罩状态
  76637. BOOL bManTemperature; // 人员温度信息是否有效
  76638. NET_MAN_TEMPERATURE_INFO stuManTemperatureInfo; // 人员温度信息, bManTemperature 为TRUE 时有效
  76639. double dbBulkOilQuantity; // 散装油量 (定制)
  76640. int nScore; // 目标质量评分
  76641. NET_CARDNOARRAY_INFO* pstuCardNoArray; // 卡号数组信息
  76642. NET_FINGERPRINT_INFO* pstuFingerPrint; // 信息数组信息
  76643. char szIDPhysicalNumber[20]; // 物理证件号(证件序列号)
  76644. EM_CARD_TYPE emCardType; // 卡类型
  76645. int nCardTypeNum; // 卡类型数组个数
  76646. EM_CARD_TYPE arrCardTypeArray[5]; // 卡类型数组
  76647. UINT nVisitorNumber; // 访客人数
  76648. char szTrafficPlate[32]; // 访客车牌
  76649. char szRespondentsName[32]; // 被访者者姓名,人证登记场景使用
  76650. char szStudentNum[32]; // 用于记录学生学号默认”FFFFFF”,若为学工号上报,则填对应学工号信息
  76651. }DEV_EVENT_CITIZEN_PICTURE_COMPARE_INFO;
  76652. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PARKING_ON_RIGHT_TURN_ROUTE (右转道违停)对应的数据描述信息
  76653. typedef struct tagDEV_EVENT_TRAFFIC_PARKING_ON_RIGHT_TURN_ROUTE_INFO
  76654. {
  76655. int nChannelID; // 通道号,从0开始
  76656. int nAction; // 事件动作,0表示脉冲事件,1表示持续性事件开始,2表示持续性事件结束;
  76657. double dbPTS; // 时间戳(单位是毫秒)
  76658. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  76659. NET_TIME_EX stuUTC; // 事件发生的时间
  76660. UINT nEventID; // 事件ID
  76661. UINT nRuleID; // 规则编号,用于标示哪个规则触发的事件,缺省时默认为0
  76662. DH_MSG_OBJECT stuObject; // 检测到的物体
  76663. DH_MSG_OBJECT stuVehicle; // 车身信息
  76664. int nLane; // 对应车道号
  76665. DH_EVENT_FILE_INFO stuFileInfo; // 事件对应文件信息
  76666. NET_TIME_EX stuStartParkingTime; // 开始停车时间
  76667. int nTriggerType; // 触发类型,0车检器,1雷达,2视频
  76668. int nMark; // 用于标记抓拍帧
  76669. int nSource; // 视频分析的数据源地址
  76670. int nFrameSequence; // 视频分析帧序号
  76671. int nSequence; // 表示抓拍序号,如3,2,1,1表示抓拍结束,0表示异常结束(bEventAction=2时此参数有效)
  76672. int nAlarmIntervalTime; // 报警时间间隔,单位:秒。(此事件为连续性事件,在收到第一个此事件之后,若在超过间隔时间后未收到此事件的后续事件,则认为此事件异常结束了)
  76673. int nParkingAllowedTime; // 允许停车时长,单位:秒。
  76674. int nDetectRegionNum; // 规则检测区域顶点数
  76675. DH_POINT DetectRegion[DH_MAX_DETECT_REGION_NUM]; // 规则检测区域
  76676. DWORD dwSnapFlagMask; // 抓图标志(按位),具体见NET_RESEED_COMMON
  76677. DH_RESOLUTION_INFO stuResolution; // 对应图片的分辨率
  76678. EVENT_INTELLI_COMM_INFO stuIntelliCommInfo; // 智能事件公共信息
  76679. NET_GPS_INFO stuGPSInfo; // GPS信息 车载定制
  76680. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stuTrafficCar; // 交通车辆信息
  76681. EVENT_COMM_INFO stuCommInfo; // 公共信息
  76682. BOOL bHasNonMotor; // 是否有非机动车对象
  76683. VA_OBJECT_NONMOTOR stuNonMotor; // 非机动车对象
  76684. UINT nParkingDuration; // 违停持续时间, 单位: 秒
  76685. BYTE byPreAlarm; // 是否为违章预警图片,0 违章停车事件1 预警事件(预警触发后一定时间,车辆还没有离开,才判定为违章)由于此字段会导致事件含义改变,必须和在平台识别预警事件后,才能有此字段,
  76686. char szReserved[1024]; // 保留字节,留待扩展.
  76687. } DEV_EVENT_TRAFFIC_PARKING_ON_RIGHT_TURN_ROUTE_INFO;
  76688. ///@brief 事件类型 EVENT_IVS_COLLISION_CONFLICT (碰撞冲突事件)对应的数据块描述信息
  76689. typedef struct tagNET_DEV_EVENT_COLLISION_CONFLICT_INFO
  76690. {
  76691. int nChannelID; // 通道号
  76692. int nAction; // 0:脉冲,1:开始, 2:停止
  76693. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  76694. char szName[128]; // 事件名称
  76695. NET_TIME_EX stuUTC; // 事件发生的时间
  76696. UINT nEventID; // 事件编号,用来唯一标志一个事件
  76697. NET_3DFLOAT_POINT stuPosition; // 碰撞位置
  76698. NET_GPS_POSITION stuGPSPosition; // 碰撞点GPS坐标
  76699. NET_VEHICLE_FUSED_OBJECT stuObjects[4]; // 参与碰撞的目标信息
  76700. int nObjectsCount; // 参与碰撞的目标个数
  76701. UINT nLeftTime; // 碰撞剩余时间TTC,单位s,0表示已经碰撞
  76702. UINT nType; // 碰撞类型: 0-未知 1-交叉 2-追尾 3-合流
  76703. float fConflictLevel; // 冲突程度,取值范围0-1,值越大越严重,<=0.5一般冲突, >0.5严重冲突
  76704. float fConfidence; // 置信度
  76705. char szReserved[1020]; // 预留字节
  76706. }NET_DEV_EVENT_COLLISION_CONFLICT_INFO;
  76707. ///@brief 事件类型 EVENT_IVS_PHOTOGRAPH_DETECTION (拍摄行为检测事件)对应的数据块描述信息
  76708. typedef struct tagNET_DEV_EVENT_PHOTOGRAPH_DETECTION_INFO
  76709. {
  76710. int nChannelID; // 通道号
  76711. int nAction; // 0:脉冲,1:开始, 2:停止
  76712. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  76713. char szName[128]; // 事件名称
  76714. char szClass[16]; // 智能事件所属大类
  76715. UINT nRuleID; // 智能事件规则编号
  76716. int nGroupID; // GroupID事件组ID
  76717. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  76718. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号
  76719. double dbPTS; // 相对事件时间戳,单位毫秒
  76720. NET_TIME_EX stuUTC; // 事件发生的时间
  76721. UINT nEventID; // 事件编号,用来唯一标志一个事件
  76722. UINT nPresetID; // 事件触发的预置点号
  76723. int nDetectRegionCount; // 规则区域个数
  76724. NET_POINT_EX stuDetectRegion[20]; // 表示配置的规则区域
  76725. char szResvered1[4]; // 字节对齐
  76726. int nObjectCount; // 检测目标的物体信息个数
  76727. DH_MSG_OBJECT *pstuObjects; // 检测目标的物体信息
  76728. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  76729. char szDriverID[32]; // 司机ID
  76730. NET_GPS_INFO stuGPSInfo; // GPS信息
  76731. char szReserved[1024]; // 预留字节
  76732. }NET_DEV_EVENT_PHOTOGRAPH_DETECTION_INFO;
  76733. ///@brief 事件类型 EVENT_IVS_REFUELING_GUN_PERSON (提枪识别动作事件)对应的数据块描述信息
  76734. typedef struct tagNET_DEV_EVENT_REFUELING_GUN_PERSON_INFO
  76735. {
  76736. int nChannelID; // 通道号
  76737. int nAction; // 0:脉冲,1:开始, 2:停止
  76738. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 扩展协议字段
  76739. char szName[128]; // 事件名称
  76740. char szClass[16]; // 智能事件所属大类
  76741. INT64 nGroupID; // GroupID事件组ID
  76742. int nCountInGroup; // CountInGroup一个事件组内的抓拍张数
  76743. int nIndexInGroup; // IndexInGroup一个事件组内的抓拍序号
  76744. double dbPTS; // 相对事件时间戳,单位毫秒
  76745. NET_TIME_EX stuUTC; // 事件发生的时间
  76746. UINT nEventID; // 事件编号,用来唯一标志一个事件
  76747. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  76748. NET_VAOBJECT_ANIMAL_INFO stuObjects[8]; // 表示检测的动物信息
  76749. int nObjectCount; // 检测目标的动物信息个数
  76750. int nDetectRegionCount; // 规则区域个数
  76751. NET_POINT_EX stuDetectRegion[20]; // 表示配置的规则区域
  76752. char szUserName[32]; // 用户名称
  76753. UINT nPresetID; // 事件触发的预置点号
  76754. int nType; // 人员类型 0:未知 1:顾客 2:工作人员
  76755. int nSex; // 性别 0:未知 1:男 2:女
  76756. int nAgeSeg; // 年龄段 0:未知 2:婴儿 10:幼年 28:青年 50:中年 60:老年
  76757. char szReserved[1024]; // 预留字节
  76758. }NET_DEV_EVENT_REFUELING_GUN_PERSON_INFO;
  76759. ///@brief 当前运行模式
  76760. typedef enum tagEM_CURRENT_OPERATE_MODE
  76761. {
  76762. EM_CURRENT_OPERATE_UNKNOWN, // 未知
  76763. EM_CURRENT_OPERATE_MULPERIOD, // 多时段控制
  76764. EM_CURRENT_OPERATE_MANUAL_CONTROL, // 手动控制
  76765. EM_CURRENT_OPERATE_TURNOFFLIGHT_CONTROL, // 关灯控制
  76766. EM_CURRENT_OPERATE_ALLRED_CONTROL, // 全红控制
  76767. EM_CURRENT_OPERATE_ADAPTFILTER_CONTROL, // 自适应滤波控制
  76768. EM_CURRENT_OPERATE_INDUCTION_CONTROL, // 感应控制
  76769. EM_CURRENT_OPERATE_YELLOWFLASH_CONTROL, // 黄闪控制
  76770. EM_CURRENT_OPERATE_SINGAL_ADAPTINVE, // 单点自适应模式
  76771. EM_CURRENT_OPERATE_TMPPLATFORM_PLAN, // 平台临时方案模式
  76772. EM_CURRENT_OPERATE_TEMP_HAND, // 临时手控模式
  76773. EM_CURRENT_OPERATE_REALTIME_CONTROL, // 实时控制模式
  76774. EM_CURRENT_OPERATE_LIGHT_OFF, // 灭灯模式
  76775. EM_CURRENT_OPERATE_RED_FLASH, // 红闪模式
  76776. EM_CURRENT_OPERATE_GREEN_FLASH, // 绿闪模式
  76777. EM_CURRENT_OPERATE_PEDESTRAIN_PRIORITY, // 行人优先控制模式
  76778. EM_CURRENT_OPERATE_CONFGOVERFLOW_CONTROL, // 拥堵溢出控制模式
  76779. EM_CURRENT_OPERATE_NIGHT_REQUEST, // 夜间请求模式
  76780. }EM_CURRENT_OPERATE_MODE;
  76781. ///@brief 相机状态
  76782. typedef enum tagEM_CAMERA_STATUS
  76783. {
  76784. EM_CAMERA_UNKNOWN, // 未知
  76785. EM_CAMERA_RED, // 红灯
  76786. EM_CAMERA_YELLOW, // 黄灯
  76787. EM_CAMERA_GREEN, // 绿灯
  76788. EM_CAMERA_RED_FLASH, // 红闪
  76789. EM_CAMERA_YELLOW_FLASH, // 黄闪
  76790. EM_CAMERA_GREEN_FLASH, // 绿闪
  76791. EM_CAMERA_LIGHT_OFF, // 灭灯
  76792. }EM_CAMERA_STATUS;
  76793. ///@brief 运行相位信息
  76794. typedef struct tagRUN_PHASE_INFO
  76795. {
  76796. int nPhaseNum; // 相位编号,A为1
  76797. int nPhaseOrder; // nt, 相位重复出现的次数,默认为1, A1为1,A2该字段为2
  76798. unsigned int nCarLamp; // 当前相位对应的车行灯通道,按位表示,低bit表示通道1
  76799. unsigned int nPsgLamp; // 当前相位对应的行人灯通道,按位表示,低bit表示通道1
  76800. EM_CAMERA_STATUS emCameraStatus; // 相机状态
  76801. int nCntDown; // 相位对应灯色倒计时
  76802. BYTE byReserved[512]; // 预留字节
  76803. }RUN_PHASE_INFO;
  76804. ///@brief RTSC跑动暂停事件, 对应事件类型 DH_ALARM_RTSC_PHASE_RUNING
  76805. typedef struct tagALARM_RTSC_PHASE_RUNNING_INFO
  76806. {
  76807. int nChannelID; // 通道号,从0开始
  76808. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  76809. EM_CURRENT_OPERATE_MODE emCurOperateMode; // 当前运行模式
  76810. int nRunPhaseNum; // 运行相位个数
  76811. RUN_PHASE_INFO stRunPhaseInfo[16]; // 运行相位信息
  76812. BYTE byReserved[512]; // 预留字节
  76813. }ALARM_RTSC_PHASE_RUNNING_INFO;
  76814. ///@brief 运行灯组信息
  76815. typedef struct tagRUN_LAMP_INFO
  76816. {
  76817. int nLampNum; // 通道编号
  76818. EM_CAMERA_STATUS emCameraStatus; // 相机状态
  76819. int nCntDown; // 通道对应灯色倒计时
  76820. BYTE byReserved[256]; // 预留字节
  76821. }RUN_LAMP_INFO;
  76822. ///@brief RTSC灯暂停事件, 对应事件类型 DH_ALARM_RTSC_LAMP_RUNING
  76823. typedef struct tagALARM_RTSC_LAMP_RUNNING_INFO
  76824. {
  76825. int nChannelID; // 通道号,从0开始
  76826. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  76827. EM_CURRENT_OPERATE_MODE emCurOperateMode; // 当前运行模式
  76828. int nRunLampNum; // 运行灯组个数
  76829. RUN_LAMP_INFO stuRunLampInfo[16]; // 运行灯组信息
  76830. BYTE byReserved[512]; // 预留字节
  76831. }ALARM_RTSC_LAMP_RUNNING_INFO;
  76832. ///@brief 设备状态
  76833. typedef enum tagEM_STATUS
  76834. {
  76835. EM_STATUS_UNKNOWN = -1, // 未知
  76836. EM_STATUS_INVALID, // 无效
  76837. EM_STATUS_NORMAL, // 工作正常
  76838. EM_STATUS_FAULT, // 故障状态
  76839. EM_STATUS_OTHER, // 其他
  76840. }EM_STATUS;
  76841. ///@brief 灯组类型
  76842. typedef enum tagEM_LAMP_TYPE
  76843. {
  76844. EM_LAMP_TYPE_UNKNOWN, // 未知
  76845. EM_LAMP_TYPE_STRAIGHT, // 直行方向指示信号灯
  76846. EM_LAMP_TYPE_LEFT, // 左转方向指示信号灯
  76847. EM_LAMP_TYPE_RIGHT, // 右转方向指示信号灯
  76848. EM_LAMP_TYPE_MOTORVEHICLE, // 机动车信号灯
  76849. EM_LAMP_TYPE_LEFT_NOMOTOR, // 左转非机动车信号灯
  76850. EM_LAMP_TYPE_RIGHT_NOMOTOR, // 右转非机动车信号灯
  76851. EM_LAMP_TYPE_NOMOTOR, // 非机动车信号灯
  76852. EM_LAMP_TYPE_SIDEWALK, // 人行横道信号灯
  76853. EM_LAMP_TYPE_TURNAROUND, // 掉头信号灯
  76854. EM_LAMP_TYPE_LANE, // 车道信号灯
  76855. EM_LAMP_TYPE_CROSSING, // 道口信号灯
  76856. EM_LAMP_TYPE_FLASH_WARN, // 闪光警告信号灯
  76857. EM_LAMP_TYPE_TRAM_DEDICATED_STRAIGHT, // 有轨电车专用信号灯(直行)
  76858. EM_LAMP_TYPE_TRAM_DEDICATED_LEFT, // 有轨电车专用信号灯(左转)
  76859. EM_LAMP_TYPE_TRAM_DEDICATED_RIGHT, // 有轨电车专用信号灯(右转)
  76860. }EM_LAMP_TYPE;
  76861. ///@brief 色步时间序列信息
  76862. typedef struct tagSTEP_SEQUENCE_INFO
  76863. {
  76864. int nLampColorCount; // 灯色个数
  76865. int nLampColor[4]; // 灯色 当灯组类型EM_LAMP_TYPE为EM_LAMP_TYPE_STRAIGHT-EM_LAMP_TYPE_FLASH_WARN时,int[0]用于表示红色发光单元,int[1]用于表示黄色发光单元,int[2]用于表示绿色发光单元,int[3]保留
  76866. // 当灯组类型为EM_LAMP_TYPE_TRAM_DEDICATED_STRAIGHT-EM_LAMP_TYPE_TRAM_DEDICATED_RIGHT时,int[0]用于表示禁止通行信号发光单元,int[1]用于表示过渡信号发光单元,int[2]用于表示通行信号发光单元,int[3]保留
  76867. // 具体取值0:无灯1:灭灯2:亮灯3:闪烁
  76868. int nTime; // 时间长度,单位为秒(s)
  76869. BYTE byReserved[128]; // 预留字节
  76870. }STEP_SEQUENCE_INFO;
  76871. ///@brief 灯组/灯色公共信息
  76872. typedef struct tagLAMP_INFO
  76873. {
  76874. EM_LAMP_TYPE emLampType; // 灯组类型
  76875. int nLampNo; // 灯组编号
  76876. int nStepNumber; // 色步数
  76877. int nStepSequenceInfoNum; // 色步时间序列信息个数
  76878. STEP_SEQUENCE_INFO stuStepSequenceInfo[10]; // 色步时间序列信息
  76879. BYTE byReserved[256]; // 预留字节
  76880. }LAMP_INFO;
  76881. ///@brief 灯组灯色信息
  76882. typedef struct tagLAMP_GROUP_INFO
  76883. {
  76884. int nLampNo; // 灯组编号
  76885. EM_LAMP_TYPE emLampType; // 灯组类型
  76886. int nRemainTime; // 信号灯组灯色剩余时间,整数,单位为秒(s)
  76887. int nLampColorCount; // 灯组灯色个数
  76888. int nLampColor[4]; // 灯组灯色当灯组类型为1~12时,int[0]表示红色发光单元,int[1]表示黄色发光单元,int[2]表示绿色发光单元,int[3]保留
  76889. // 当灯组类型为13~15时,int[0]用于表示禁止通行信号发光单元,int[1]用于表示过渡信号发光单元,int[2]用于表示通行信号发光单元,int[3]保留
  76890. // 具体取值 0:无灯 1:灭灯 2:亮灯3:闪烁
  76891. BYTE byReserved[128]; // 预留字节
  76892. }LAMP_GROUP_INFO;
  76893. ///@brief 进口灯色状态信息
  76894. typedef struct tagENTER_INFO
  76895. {
  76896. int nEnterDir; // 进口方向
  76897. int nLampNumber; // 进口灯组数量(0~48)
  76898. int nLampGroupNum; // 灯组灯色信息个数
  76899. LAMP_GROUP_INFO stuLampGroupInfo[48]; // 灯组灯色信息,包含1到M(进口灯组数量)个灯组灯色信息
  76900. BYTE byReserved[64]; // 预留字节
  76901. }ENTER_INFO;
  76902. ///@brief 灯色状态信息
  76903. typedef struct tagLAMP_STATE
  76904. {
  76905. int nEnterNumber; // 信号灯控制路口的进口数量(0~8)
  76906. int nEnterInfoNum; // 进口灯色状态信息个数
  76907. ENTER_INFO stuEnterInfo[8]; // 进口灯色状态信息,包含1到N(路口进口数量)个进口灯色状态信息
  76908. BYTE byReserved[128]; // 预留字节
  76909. }LAMP_STATE;
  76910. ///@brief 控制模式
  76911. typedef enum tagEM_CONTROL_MODE
  76912. {
  76913. EM_CONTROL_UNKNOWN, // 未知
  76914. EM_CONTROL_YELLOW_FLASH, // 黄闪控制
  76915. EM_CONTROL_MULITI_TIME, // 多时段控制
  76916. EM_CONTROL_MANUAL, // 手动控制
  76917. EM_CONTROL_INDUCTION, // 感应控制
  76918. EM_CONTROL_WIRELESS_COORDINATION, // 无电缆协调控制
  76919. EM_CONTROL_SINGLE_OPTIMIZATION, // 单点协调控制
  76920. EM_CONTROL_BUS_SINGAL, // 公交信号优先
  76921. EM_CONTROL_EMERGENCY_SINGAL, // 紧急信号优先
  76922. EM_CONTROL_OTHER, // 其他
  76923. }EM_CONTROL_MODE;
  76924. ///@brief 车道信息
  76925. typedef struct tagLANE_INFO_EX
  76926. {
  76927. DWORD nLaneType; // 车道类型
  76928. BYTE byReserved[64]; // 预留字节
  76929. }LANE_INFO_EX;
  76930. ///@brief 车道交通运行状态
  76931. typedef enum tagEM_LANE_RUNING_STATE
  76932. {
  76933. EM_LANE_RUNING_UNKNOWN, // 未知
  76934. EM_LANE_RUNING_UNBLOCKED, // 畅通
  76935. EM_LANE_RUNING_BASIC_UNBLOCKED, // 基本畅通
  76936. EM_LANE_RUNING_LIGHT_CONGESTION, // 轻度拥堵
  76937. EM_LANE_RUNING_MIDDLE_CONGESTION, // 中度拥堵
  76938. EM_LANE_RUNING_SERIOUS_CONGESTION, // 严重拥堵
  76939. }EM_LANE_RUNING_STATE;
  76940. ///@brief 车道交通运行状态信息
  76941. typedef struct tagLANE_STATE_INFO
  76942. {
  76943. UINT nType; // 车道类型
  76944. // 按位表示,Bit0~Bit15分别为: Bit0:直行 Bit1:左转 Bit2:右转 Bit3:掉头 Bit4:可变功能 Bit5:潮汐 Bit6:非机动 Bit7:公交专用 Bit8:有轨电车 Bit9~ Bit15保留 取值1表示具有,0表示不具有
  76945. EM_LANE_RUNING_STATE emLaneRunState; // 车道交通运行状态
  76946. BYTE byReserved[128]; // 预留字节
  76947. }LANE_STATE_INFO;
  76948. ///@brief 车道信息(0~8)
  76949. typedef struct tagLANE_STATE_INFO_EX
  76950. {
  76951. UINT nType; // 车道类型
  76952. // 按位表示,Bit0~Bit15分别为: Bit0:直行 Bit1:左转 Bit2:右转 Bit3:掉头 Bit4:可变功能 Bit5:潮汐 Bit6:非机动 Bit7:公交专用 Bit8:有轨电车 Bit9~ Bit15保留 取值1表示具有,0表示不具有
  76953. BYTE byReserved[128]; // 预留字节
  76954. }LANE_STATE_INFO_EX;
  76955. ///@brief 进口车道功能状态信息
  76956. typedef struct tagENTER_LANE_STATE
  76957. {
  76958. int nEnterDir; // 进口方向(0~359)以地理正北方向为起点的顺时针旋转角度,单位为度(°)
  76959. int nLaneNumber; // 进口车道总数该进口车道总数,包含该进口所有车道
  76960. int nLaneInfoNum; // 车道信息个数
  76961. LANE_STATE_INFO_EX stuLaneInfoEx[8]; // 车道信息(0~8)
  76962. BYTE byReserved[128]; // 预留字节
  76963. }ENTER_LANE_STATE;
  76964. ///@brief 车道功能状态
  76965. typedef struct tagLANE_STATE
  76966. {
  76967. int nEnterNumber; // 功能可变车道进口数量路口具有功能可变车道进口的数量
  76968. int nEnterLaneStateNum; // 进口车道功能状态信息个数
  76969. ENTER_LANE_STATE stuEnterLaneStateInfo[8]; // 进口车道功能状态信息(0~8)包含1到N(功能可变车道进口数量)个进口车道功能状态信息
  76970. BYTE byReserved[128]; // 预留字节
  76971. }LANE_STATE;
  76972. ///@brief 控制信息
  76973. typedef struct tagCTRL_INFO
  76974. {
  76975. DWORD nType; // 按位表示:Bit0:车道 Bit1:进口匝道 Bit2:出口匝道 Bit3~Bit7:保留 取值1表示具有,0表示不具有
  76976. int nNo; // 编号
  76977. int nDir; // 方向 整数,以地理正北方向为起点的顺时针旋转角度,单位为度(°)
  76978. int nStatus; // 车道/匝道信号 1:开放 2:关闭
  76979. BYTE byReserved[128]; // 预留字节
  76980. }CTRL_INFO;
  76981. ///@brief 车道/匝道控制状态
  76982. typedef struct tagLANE_CTRL_STATE
  76983. {
  76984. int nNumber; // 车道/匝道数量
  76985. int nCtrlNum; // 控制信息个数
  76986. CTRL_INFO stuCtrlInfo[64]; // 控制信息(0-64)
  76987. BYTE byReserved[128]; // 预留字节
  76988. }LANE_CTRL_STATE;
  76989. ///@brief 灯组色步信息
  76990. typedef struct tagSTEP_INFO
  76991. {
  76992. int nEnterDir; // 进口方向
  76993. int nEnterLampNumber; // 进口灯组数量
  76994. int nLampInfoNum; // 灯色信息个数
  76995. LAMP_INFO stuLampInfo[10]; // 灯色信息(0~10)包含1到M(进口灯组数量)个灯色信息
  76996. BYTE byReserved[128]; // 预留字节
  76997. }STEP_INFO;
  76998. ///@brief 当前信号方案色步信息
  76999. typedef struct tagCUR_STEP_INFO
  77000. {
  77001. int nLampNumber; // 灯组总数量
  77002. int nEnterNumber; // 信号灯控制路口的进口数量
  77003. int nStepInfoNum; // 灯组色步信息个数
  77004. STEP_INFO stuStepInfo[8]; // 灯组色步信息(0~8)包含1到N(进口数量)个灯组色步信息
  77005. BYTE byReserved[128]; // 预留字节
  77006. }CUR_STEP_INFO;
  77007. ///@brief 下一个周期信号方案色步信息
  77008. typedef struct tagNEXT_STEP_INFO
  77009. {
  77010. int nLampNumber; // 灯组总数量
  77011. int nEnterNumber; // 信号灯控制路口的进口数量
  77012. int nStepInfoNum; // 灯组色步信息个数
  77013. STEP_INFO stuStepInfo[8]; // 灯组色步信息(0~8)包含1到N(进口数量)个灯组色步信息
  77014. BYTE byReserved[128]; // 预留字节
  77015. }NEXT_STEP_INFO;
  77016. ///@brief 信号机运行事件, 对应事件类型 DH_ALARM_RTSC_RUNING
  77017. typedef struct tagALARM_RTSC_RUNNING_INFO
  77018. {
  77019. int nChannelID; // 通道号,从0开始
  77020. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  77021. DWORD dwReportState; // bit0:运行状态
  77022. // bit1:控制方式
  77023. // bit2:灯色状态信息
  77024. // bit3:车道功能状态
  77025. // bit4:车道/匝道控制状态信息
  77026. // bit5:当前信号方案色步信息
  77027. // bit6: 下一个周期信号方案色步信息
  77028. int nLongitudeNum; // 经度个数
  77029. double dbLongitude[3]; // 经度,格式:度,分,秒(秒为浮点数)
  77030. int nLatitudeNum; // 纬度个数
  77031. double dbLatitude[3]; // 纬度,格式:度,分,秒(秒为浮点数)
  77032. double dbAltitude; // 高度,单位为米
  77033. NET_TIME_EX UTC; // 事件发生时间,带时区偏差的UTC时间,单位秒
  77034. EM_STATUS emStatus; // 设备状态
  77035. EM_CONTROL_MODE emControlMode; // 控制模式
  77036. LAMP_STATE stuLampStateInfo; // 灯色状态信息
  77037. LANE_STATE stuLaneStateInfo; // 车道功能状态
  77038. LANE_CTRL_STATE stuLaneCtrlStateInfo; // 车道/匝道控制状态
  77039. CUR_STEP_INFO stuCurStepInfo; // 当前信号方案色步信息
  77040. NEXT_STEP_INFO stuNextStepInfo; // 下一个周期信号方案色步信息
  77041. BYTE byReserved[256]; // 预留字节
  77042. }ALARM_RTSC_RUNNING_INFO;
  77043. ///@brief 车道交通流信息
  77044. typedef struct tagLAN_TRAFFIC_INFO
  77045. {
  77046. int nPeriod; // 统计周期(秒)
  77047. int nLaneType; // 车道类型
  77048. int nTrafficFlux; // 交通流量统计周期内通过的车辆数
  77049. int nAverageSpeed; // 断面车辆平均速度单位为千米每小时(km/h)
  77050. int nIntervalAverageSpeed; // 区间车辆平均速度单位为千米每小时(km/h)
  77051. int nTimeOccupyRatio; // 时间占有率(0-100)
  77052. int nSpaceOccupyRatio; // 空间占有率(0-100)
  77053. int nQueueLen; // 排队长度 单位为米
  77054. BYTE byReserved[128]; // 预留字节
  77055. }LAN_TRAFFIC_INFO;
  77056. ///@brief 进口方向交通流信息
  77057. typedef struct tagENTER_TRAFFIC_INFO
  77058. {
  77059. int nEnterDir; // 进口方向以地理正北方向为起点的顺时针旋转角度,单位为度(°)
  77060. int nEnterLaneNumbner; // 进口车道数量
  77061. int nLanTrafficInfoNum; // 车道交通流信息个数
  77062. LAN_TRAFFIC_INFO stuLanTrafficInfo[8]; // 车道交通流信息(0~8),包含1到M(进口车道数量)个车道交通流信息
  77063. BYTE byReserved[128]; // 预留字节
  77064. }ENTER_TRAFFIC_INFO;
  77065. ///@brief 交通流信息
  77066. typedef struct tagTRAFFIC_INFO
  77067. {
  77068. int nEnterNumber; // 进口数量
  77069. int nEnterTrafficInfoNum; // 进口方向交通流信息个数
  77070. ENTER_TRAFFIC_INFO stuEnterTrafficInfo[8]; // 进口方向交通流信息, 包含1到N(进口数量)个进口方向交通流信息
  77071. BYTE byReserved[128]; // 预留字节
  77072. }TRAFFIC_INFO;
  77073. ///@brief 进口交通运行状态信息
  77074. typedef struct tagENTER_STATE_INFO
  77075. {
  77076. int nEnterDir; // 进口方向以地理正北方向为起点的顺时针旋转角度,单位为度(°)
  77077. int nLaneNumber; // 车道数量
  77078. int nLaneStateInfoNum; // 车道交通运行状态信息个数
  77079. LANE_STATE_INFO stuLaneStateInfo[8]; // 车道交通运行状态信息(0~8), 包含1到N(车道数量)个车道交通运行状态信息
  77080. BYTE byReserved[128]; // 预留字节
  77081. }ENTER_STATE_INFO;
  77082. ///@brief 交通运行状态信息
  77083. typedef struct tagTRAFFIC_STATE
  77084. {
  77085. int nEnterNumber; // 进口数量
  77086. int nEnterStateInfoNum; // 进口交通运行状态信息个数
  77087. ENTER_STATE_INFO stuEnterStateInfo[8]; // 进口交通运行状态信息(0~8), 包含1到N(进口数量)个进口交通运行状态信息
  77088. int nPeriod; // 统计分析周期,单位分钟1~255
  77089. BYTE byReserved[124]; // 预留字节
  77090. }TRAFFIC_STATE;
  77091. ///@brief 交通事件类型
  77092. typedef enum tagEM_TRAFFIC_EVENT
  77093. {
  77094. EM_TRAFFIC_EVENT_UNKNOWN, // 未知
  77095. EM_TRAFFIC_EVENT_ACCIDENT, // 交通事故
  77096. EM_TRAFFIC_EVENT_ROAD_BARRIERS, // 道路障碍
  77097. EM_TRAFFIC_EVENT_ROAD_AREAWATER, // 路面积水
  77098. EM_TRAFFIC_EVENT_ROAD_SLIPPERY, // 路面湿滑
  77099. EM_TRAFFIC_EVENT_ROAD_ICY, // 路面结冰
  77100. EM_TRAFFIC_EVENT_ROAD_CONSTRUCTION, // 道路施工
  77101. }EM_TRAFFIC_EVENT;
  77102. ///@brief 交通事件信息
  77103. typedef struct tagTRAFFIC_EVENT
  77104. {
  77105. char szCarId[128]; // 机动车电子标识序列号
  77106. char szPlateNumber[128]; // 车牌号码
  77107. int nDrivingDir; // 行驶方向以地理正北方向为起点的顺时针旋转角度,单位为度(°)
  77108. EM_TRAFFIC_EVENT emTrafficEvent; // 交通事件
  77109. BYTE byReserved[128]; // 预留字节
  77110. }TRAFFIC_EVENT;
  77111. ///@brief 车辆运行状态信息
  77112. typedef struct tagCAR_INFO
  77113. {
  77114. char szCarId[128]; // 机动车电子标识序列号
  77115. char szPlateNumber[128]; // 车牌号码
  77116. EM_CAR_TYPE emCarType; // 车辆类型
  77117. int nSpeed; // 速度单位为米每秒(m/s)
  77118. int nAcceleration; // 加速度单位为米每平方秒(m/s2)
  77119. int nHeadDirAngle; // 车头方向角以地理正北方向为起点的顺时针旋转角度,单位为度(°)
  77120. int nAlarm; // 车辆故障报警自动驾驶汽车测试期间主动上报的故障信息,按位表示:Bit0:故障报警灯开启Bit1~Bit7:保留
  77121. BYTE byReserved[256]; // 预留字节
  77122. }CAR_INFO;
  77123. ///@brief 信号机交通信息事件, 对应事件类型 DH_ALARM_RTSC_TRAFFIC
  77124. typedef struct tagALARM_RTSC_TRAFFIC_INFO
  77125. {
  77126. int nChannelID; // 通道号,从0开始
  77127. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  77128. DWORD dwReportState; // bit0:运行状态
  77129. // bit1:控制方式
  77130. // bit2:灯色状态信息
  77131. // bit3:车道功能状态
  77132. // bit4:车道/匝道控制状态信息
  77133. // bit5:当前信号方案色步信息
  77134. int nLongitudeNum; // 经度个数
  77135. double dbLongitude[3]; // 经度,格式:度,分,秒(秒为浮点数)
  77136. int nLatitudeNum; // 纬度个数
  77137. double dbLatitude[3]; // 纬度,格式:度,分,秒(秒为浮点数)
  77138. double dbAltitude; // 高度,单位为米
  77139. NET_TIME_EX UTC; // 事件发生时间,带时区偏差的UTC时间,单位秒
  77140. TRAFFIC_INFO stuTrafficInfo; // 交通流信息
  77141. TRAFFIC_STATE stuTrafficState; // 交通运行状态信息
  77142. CAR_INFO stuCarInfo; // 车辆运行状态信息
  77143. TRAFFIC_EVENT stuTrafficEvent; // 交通事件信息
  77144. BYTE byReserved[256]; // 预留字节
  77145. }ALARM_RTSC_TRAFFIC_INFO;
  77146. /*******************************消防类事件开始************************************************/
  77147. ///@brief 违章事件类型
  77148. typedef enum tagEM_HY_VIOLATION_TYPE
  77149. {
  77150. EM_HY_VIOLATION_TYPE_UNKNWON = -1, // 未知
  77151. EM_HY_VIOLATION_TYPE_MOTOR_ALARM, // 机动车违章报警
  77152. EM_HY_VIOLATION_TYPE_MOTOR_WARN, // 机动车违章预警
  77153. } EM_HY_VIOLATION_TYPE;
  77154. ///@brief 消防类火焰检测带图事件, 对应事件类型 EVENT_HY_FIRE_DETECTION
  77155. typedef struct tagDEV_EVENT_HY_FIRE_DETECTION_INFO
  77156. {
  77157. /* 事件公共信息 */
  77158. int nChannelID; // 通道号,从0开始
  77159. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  77160. char szName[128]; // 事件名称
  77161. double dbPTS; // 时间戳(单位是毫秒)
  77162. NET_TIME_EX stuUTC; // 事件发生的时间
  77163. UINT nEventID; // 事件ID
  77164. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  77165. int nCountInGroup; // 一个事件组内的抓拍张数
  77166. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  77167. UINT nPresetID; // 事件触发的预置点号, 若为0 则不关心该字段
  77168. /* 事件业务信息 */
  77169. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  77170. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  77171. DH_MSG_OBJECT stuVehicle; // 车辆信息
  77172. DH_MSG_OBJECT stuObject; // 检测到的物体
  77173. int nMark; // 标记抓拍帧
  77174. int nSource; // 视频分析的数据源地址
  77175. int nFrameSequence; // 视频分析帧序号
  77176. int nSequence; // 抓拍序号,如/0,1表示抓拍正常结束,0表示抓拍异常结束
  77177. UINT nCount; // 规则被触发生次数
  77178. int nDetectRegionNum; // 规则检测区域顶点数
  77179. DH_POINT DetectRegion[20]; // 规则检测区域
  77180. PTZ_POSITION_UNIT stuPtzPostion; // PTZ坐标和放大倍数
  77181. float fDistance[2]; // 火焰底部相对画面中心点坐标,单位:米 分别为相对中心点X、Y轴地面距离
  77182. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  77183. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  77184. EVENT_COMM_INFO stuCommInfo; // 公共信息
  77185. BYTE byReserve[1024]; // 预留字节
  77186. } DEV_EVENT_HY_FIRE_DETECTION_INFO;
  77187. ///@brief 消防类火焰检测普通不带图事件, 对应事件类型 DH_ALARM_HY_FIRE_DETECTION
  77188. typedef struct tagALARM_HY_FIRE_DETECTION_INFO
  77189. {
  77190. /* 事件公共信息 */
  77191. int nChannelID; // 通道号,从0开始
  77192. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  77193. char szName[128]; // 事件名称
  77194. double dbPTS; // 时间戳(单位是毫秒)
  77195. NET_TIME_EX stuUTC; // 事件发生的时间
  77196. UINT nEventID; // 事件ID
  77197. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  77198. int nCountInGroup; // 一个事件组内的抓拍张数
  77199. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  77200. UINT nPresetID; // 事件触发的预置点号, 若为0 则不关心该字段
  77201. /* 事件业务信息 */
  77202. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  77203. DH_MSG_OBJECT stuVehicle; // 车辆信息
  77204. DH_MSG_OBJECT stuObject; // 检测到的物体
  77205. int nMark; // 标记抓拍帧
  77206. int nSource; // 视频分析的数据源地址
  77207. int nFrameSequence; // 视频分析帧序号
  77208. int nSequence; // 抓拍序号,如/0,1表示抓拍正常结束,0表示抓拍异常结束
  77209. UINT nCount; // 规则被触发生次数
  77210. int nDetectRegionNum; // 规则检测区域顶点数
  77211. DH_POINT DetectRegion[20]; // 规则检测区域
  77212. PTZ_POSITION_UNIT stuPtzPostion; // PTZ坐标和放大倍数
  77213. float fDistance[2]; // 火焰底部相对画面中心点坐标,单位:米 分别为相对中心点X、Y轴地面距离
  77214. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  77215. EVENT_COMM_INFO stuCommInfo; // 公共信息
  77216. BYTE byReserve[1024]; // 预留字节
  77217. } ALARM_HY_FIRE_DETECTION_INFO;
  77218. ///@brief 消防类烟雾检测带图事件, 对应事件类型 EVENT_HY_SMOG_DETECTION
  77219. typedef struct tagDEV_EVENT_HY_SMOG_DETECTION_INFO
  77220. {
  77221. /* 事件公共信息 */
  77222. int nChannelID; // 通道号,从0开始
  77223. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  77224. char szName[128]; // 事件名称
  77225. double dbPTS; // 时间戳(单位是毫秒)
  77226. NET_TIME_EX stuUTC; // 事件发生的时间
  77227. UINT nEventID; // 事件ID
  77228. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  77229. int nCountInGroup; // 一个事件组内的抓拍张数
  77230. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  77231. UINT nPresetID; // 事件触发的预置点号, 若为0 则不关心该字段
  77232. /* 事件业务信息 */
  77233. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  77234. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  77235. int nRuleID; // 规则ID, 用于标示哪个规则触发的事件
  77236. DH_MSG_OBJECT stuVehicle; // 车辆信息
  77237. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  77238. int nMark; // 标记抓拍帧
  77239. int nSource; // 视频分析的数据源地址
  77240. int nFrameSequence; // 视频分析帧序号
  77241. int nSequence; // 抓拍序号,如/0,1表示抓拍正常结束,0表示抓拍异常结束
  77242. UINT nCount; // 规则被触发生次数
  77243. int nDetectRegionNum; // 规则检测区域顶点数
  77244. DH_POINT DetectRegion[20]; // 规则检测区域
  77245. SCENE_IMAGE_INFO_EX stuSceneImage; // 全景广角图
  77246. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  77247. EVENT_COMM_INFO stuCommInfo; // 公共信息
  77248. BYTE byReserved[1024]; // 保留字节
  77249. } DEV_EVENT_HY_SMOG_DETECTION_INFO;
  77250. ///@brief 消防类烟雾检测普通不带图事件, 对应事件类型 DH_ALARM_HY_SMOG_DETECTION
  77251. typedef struct tagALARM_HY_SMOG_DETECTION_INFO
  77252. {
  77253. /* 事件公共信息 */
  77254. int nChannelID; // 通道号,从0开始
  77255. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  77256. char szName[128]; // 事件名称
  77257. double dbPTS; // 时间戳(单位是毫秒)
  77258. NET_TIME_EX stuUTC; // 事件发生的时间
  77259. UINT nEventID; // 事件ID
  77260. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  77261. int nCountInGroup; // 一个事件组内的抓拍张数
  77262. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  77263. UINT nPresetID; // 事件触发的预置点号, 若为0 则不关心该字段
  77264. /* 事件业务信息 */
  77265. EM_TRIGGER_TYPE emTriggerType; // 触发类型
  77266. int nRuleID; // 规则ID, 用于标示哪个规则触发的事件
  77267. DH_MSG_OBJECT stuVehicle; // 车辆信息
  77268. DH_MSG_OBJECT stuObject; // 检测到的物体信息
  77269. int nMark; // 标记抓拍帧
  77270. int nSource; // 视频分析的数据源地址
  77271. int nFrameSequence; // 视频分析帧序号
  77272. int nSequence; // 抓拍序号,如/0,1表示抓拍正常结束,0表示抓拍异常结束
  77273. UINT nCount; // 规则被触发生次数
  77274. int nDetectRegionNum; // 规则检测区域顶点数
  77275. DH_POINT DetectRegion[20]; // 规则检测区域
  77276. DEV_EVENT_TRAFFIC_TRAFFICCAR_INFO stTrafficCar; // 交通车辆信息
  77277. EVENT_COMM_INFO stuCommInfo; // 公共信息
  77278. BYTE byReserved[1024]; // 保留字节
  77279. } ALARM_HY_SMOG_DETECTION_INFO;
  77280. ///@brief 消防类疏散通道阻塞带图事件, 对应事件类型 EVENT_HY_INFIRE_PASSAGE_DETECTION
  77281. typedef struct tagDEV_EVENT_HY_INFIRE_PASSAGE_DETECTION_INFO
  77282. {
  77283. /* 事件公共信息 */
  77284. int nChannelID; // 通道号,从0开始
  77285. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  77286. char szName[128]; // 事件名称
  77287. double dbPTS; // 时间戳(单位是毫秒)
  77288. NET_TIME_EX stuUTC; // 事件发生的时间
  77289. UINT nEventID; // 事件ID
  77290. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  77291. int nCountInGroup; // 一个事件组内的抓拍张数
  77292. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  77293. UINT nPresetID; // 事件触发的预置点号, 若为0 则不关心该字段
  77294. char szPresetName[64]; // 事件触发的预置点名称
  77295. /* 事件业务信息 */
  77296. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  77297. int nRuleID; // 规则ID, 用于标示哪个规则触发的事件
  77298. UINT nObjectNum; // 检测到的物体数量
  77299. DH_MSG_OBJECT stuObjects[64]; // 多个检测到的物体信息
  77300. int nDetectRegionNum; // 规则检测区域顶点数
  77301. DH_POINT DetectRegion[20]; // 规则检测区域
  77302. UINT nCount; // 规则被触发生次数
  77303. EM_EVENT_LEVEL emEventLevel; // 事件级别
  77304. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  77305. BYTE byReserved[1024]; // 保留字节
  77306. } DEV_EVENT_HY_INFIRE_PASSAGE_DETECTION_INFO;
  77307. ///@brief 消防类疏散通道阻塞普通不带图事件, 对应事件类型 DH_ALARM_HY_INFIRE_PASSAGE_DETECTION
  77308. typedef struct tagALARM_HY_INFIRE_PASSAGE_DETECTION_INFO
  77309. {
  77310. /* 事件公共信息 */
  77311. int nChannelID; // 通道号,从0开始
  77312. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  77313. char szName[128]; // 事件名称
  77314. double dbPTS; // 时间戳(单位是毫秒)
  77315. NET_TIME_EX stuUTC; // 事件发生的时间
  77316. UINT nEventID; // 事件ID
  77317. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  77318. int nCountInGroup; // 一个事件组内的抓拍张数
  77319. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  77320. UINT nPresetID; // 事件触发的预置点号, 若为0 则不关心该字段
  77321. char szPresetName[64]; // 事件触发的预置点名称
  77322. /* 事件业务信息 */
  77323. int nRuleID; // 规则ID, 用于标示哪个规则触发的事件
  77324. UINT nObjectNum; // 检测到的物体数量
  77325. DH_MSG_OBJECT stuObjects[64]; // 多个检测到的物体信息
  77326. int nDetectRegionNum; // 规则检测区域顶点数
  77327. DH_POINT DetectRegion[20]; // 规则检测区域
  77328. UINT nCount; // 规则被触发生次数
  77329. EM_EVENT_LEVEL emEventLevel; // 事件级别
  77330. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  77331. BYTE byReserved[1024]; // 保留字节
  77332. } ALARM_HY_INFIRE_PASSAGE_DETECTION_INFO;
  77333. ///@brief 消防类消防车通道占用/消防登高面占用带图事件, 对应事件类型 EVENT_HY_OUTFIRE_PASSAGE_DETECTION
  77334. typedef struct tagDEV_EVENT_HY_OUTFIRE_PASSAGE_DETECTION_INFO
  77335. {
  77336. /* 事件公共信息 */
  77337. int nChannelID; // 通道号,从0开始
  77338. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  77339. char szName[128]; // 事件名称
  77340. double dbPTS; // 时间戳(单位是毫秒)
  77341. NET_TIME_EX stuUTC; // 事件发生的时间
  77342. UINT nEventID; // 事件ID
  77343. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  77344. int nCountInGroup; // 一个事件组内的抓拍张数
  77345. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  77346. UINT nPresetID; // 事件触发的预置点号, 若为0 则不关心该字段
  77347. char szPresetName[64]; // 事件触发的预置点名称
  77348. /* 事件业务信息 */
  77349. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  77350. int nAlarmNum; // 报警阈值
  77351. int nNoMotorNum; // 非机动车实际数量
  77352. int nCount; // 规则被触发生次数
  77353. UINT nObjectNum; // 检测到的物体数量
  77354. DH_MSG_OBJECT stuObjects[64]; // 多个检测到的物体信息
  77355. int nDetectRegionNum; // 规则检测区域顶点数
  77356. DH_POINT DetectRegion[20]; // 规则检测区域
  77357. EM_HY_VIOLATION_TYPE emViolationAlarmType; // 违规事件类型
  77358. UINT nParkingDuration; // 违停持续时间,单位:秒, 0表示无意义
  77359. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  77360. PTZ_POSITION_UNIT stuPtzPostion; // PTZ坐标和放大倍数
  77361. SCENE_IMAGE_INFO stuSceneImage; // 全景广角图
  77362. BYTE byReserved[1024]; // 保留字节
  77363. } DEV_EVENT_HY_OUTFIRE_PASSAGE_DETECTION_INFO;
  77364. ///@brief 消防类消防车通道占用/消防登高面占用普通不带图事件, 对应事件类型 DH_ALARM_HY_OUTFIRE_PASSAGE_DETECTION
  77365. typedef struct tagALARM_HY_OUTFIRE_PASSAGE_DETECTION_INFO
  77366. {
  77367. /* 事件公共信息 */
  77368. int nChannelID; // 通道号,从0开始
  77369. int nEventAction; // 事件动作, 1表示开始, 2表示结束, -1表示未知
  77370. char szName[128]; // 事件名称
  77371. double dbPTS; // 时间戳(单位是毫秒)
  77372. NET_TIME_EX stuUTC; // 事件发生的时间
  77373. UINT nEventID; // 事件ID
  77374. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  77375. int nCountInGroup; // 一个事件组内的抓拍张数
  77376. int nIndexInGroup; // 一个事件组内的抓拍序号,从1开始
  77377. UINT nPresetID; // 事件触发的预置点号, 若为0 则不关心该字段
  77378. char szPresetName[64]; // 事件触发的预置点名称
  77379. /* 事件业务信息 */
  77380. UINT nAlarmNum; // 报警阈值
  77381. UINT nNoMotorNum; // 非机动车实际数量
  77382. UINT nCount; // 规则被触发生次数
  77383. UINT nObjectNum; // 检测到的物体数量
  77384. DH_MSG_OBJECT stuObjects[64]; // 多个检测到的物体信息
  77385. int nDetectRegionNum; // 规则检测区域顶点数
  77386. DH_POINT DetectRegion[20]; // 规则检测区域
  77387. EM_HY_VIOLATION_TYPE emViolationAlarmType; // 违规事件类型
  77388. UINT nParkingDuration; // 违停持续时间,单位:秒, 0表示无意义
  77389. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  77390. PTZ_POSITION_UNIT stuPtzPostion; // PTZ坐标和放大倍数
  77391. BYTE byReserved[1024]; // 保留字节
  77392. } ALARM_HY_OUTFIRE_PASSAGE_DETECTION_INFO;
  77393. ///@brief 消防类消控室人员离岗带图事件, 对应事件类型 EVENT_HY_MAN_LEAVING_DETECTION
  77394. typedef struct tagDEV_EVENT_HY_MAN_LEAVING_DETECTION_INFO
  77395. {
  77396. /* 事件公共信息 */
  77397. int nChannelID; // 通道号,从0开始
  77398. int nEventAction; // 事件动作, 0表示脉冲事件, 1表示开始, 2表示结束, -1表示未知
  77399. char szName[128]; // 事件名称
  77400. double dbPTS; // 时间戳(单位是毫秒)
  77401. BYTE byReserved1[4]; // 字节对齐
  77402. NET_TIME_EX stuUTC; // 事件发生的时间
  77403. UINT nEventID; // 事件ID
  77404. UINT nPresetID; // 事件触发的预置点号, 若为0 则不关心该字段
  77405. /* 事件业务信息 */
  77406. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  77407. UINT nAreaID; // 区域ID,该通道和PresetID下的某个区域, 为0,为单区域
  77408. int nDetectType; // 检测模式, -1:未知 0: 小于等于阈值报警 1: 大于等于阈值报警 2: 等于阀值报警 3: 不等于阀值报警 4: 人数变化报警
  77409. UINT nPrevNumber; // 变化前人数
  77410. UINT nCurrentNumber; // 当前人数
  77411. int nManListCount; // 区域人员数量
  77412. MAN_NUM_LIST_INFO stuManList[10]; // 区域内人员列表
  77413. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  77414. BYTE byReserved[1024]; // 保留字节
  77415. } DEV_EVENT_HY_MAN_LEAVING_DETECTION_INFO;
  77416. ///@brief 消防类消控室人员离岗普通不带图事件, 对应事件类型 DH_ALARM_HY_MAN_LEAVING_DETECTION
  77417. typedef struct tagALARM_HY_MAN_LEAVING_DETECTION_INFO
  77418. {
  77419. /* 事件公共信息 */
  77420. int nChannelID; // 通道号,从0开始
  77421. int nEventAction; // 事件动作, 0表示脉冲事件, 1表示开始, 2表示结束, -1表示未知
  77422. char szName[128]; // 事件名称
  77423. double dbPTS; // 时间戳(单位是毫秒)
  77424. BYTE byReserved1[4]; // 字节对齐
  77425. NET_TIME_EX stuUTC; // 事件发生的时间
  77426. int nEventID; // 事件ID
  77427. UINT nPresetID; // 事件触发的预置点号, 若为0 则不关心该字段
  77428. /* 事件业务信息 */
  77429. UINT nAreaID; // 区域ID,该通道和PresetID下的某个区域, 为0,为单区域
  77430. int nDetectType; // 检测模式, -1:未知 0: 小于等于阈值报警 1: 大于等于阈值报警 2: 等于阀值报警 3: 不等于阀值报警 4: 人数变化报警
  77431. UINT nPrevNumber; // 变化前人数
  77432. UINT nCurrentNumber; // 当前人数
  77433. int nManListCount; // 区域人员数量
  77434. MAN_NUM_LIST_INFO stuManList[10]; // 区域内人员列表
  77435. char szSourceID[32]; // 事件关联ID。应用场景是同一个物体或者同一张图片做不同分析,产生的多个事件的SourceID相同
  77436. BYTE byReserved[1024]; // 保留字节
  77437. } ALARM_HY_MAN_LEAVING_DETECTION_INFO;
  77438. ///@brief 消防离线故障事件设备类型
  77439. typedef enum tagEM_HY_FIRE_CONTROL_DEVICE_TYPE
  77440. {
  77441. EM_HY_FIRE_CONTROL_DEVICE_TYPE_UNKNOWN, // 未知
  77442. EM_HY_FIRE_CONTROL_DEVICE_TYPE_WIRELESSALARMHOST, // 无线报警主机
  77443. EM_HY_FIRE_CONTROL_DEVICE_TYPE_INTELLIELECMONITORDEV, // 智能用电监控设备
  77444. EM_HY_FIRE_CONTROL_DEVICE_TYPE_IMAGETYPESMOKEDETECTOR, // 图像型烟感
  77445. EM_HY_FIRE_CONTROL_DEVICE_TYPE_FLAMERECOGNITIONCAMERA, // 火焰识别摄像机
  77446. EM_HY_FIRE_CONTROL_DEVICE_TYPE_SMOKEFIREDETECTOR, // 感烟火灾探测器
  77447. EM_HY_FIRE_CONTROL_DEVICE_TYPE_TEMPERATUREFIREDETECTOR, // 感温火灾探测器
  77448. EM_HY_FIRE_CONTROL_DEVICE_TYPE_COMBUSTIBLEGASDETECTOR, // 可燃气体探测器
  77449. EM_HY_FIRE_CONTROL_DEVICE_TYPE_HANDLEALARMBUTTON, // 手动报警按钮
  77450. EM_HY_FIRE_CONTROL_DEVICE_TYPE_SOUNDLIGHTALARM, // 声光报警器
  77451. EM_HY_FIRE_CONTROL_DEVICE_TYPE_FAULTELECTRICARCSENSOR, // 故障电弧传感器
  77452. }EM_HY_FIRE_CONTROL_DEVICE_TYPE;
  77453. ///@brief 消防离线故障事件, 对应事件类型 DH_ALARM_HY_FIRE_CONTROL_OFFLINE_FAULT
  77454. typedef struct tagALARM_HY_FIRE_CONTROL_OFFLINE_FAULT_INFO
  77455. {
  77456. /* 事件公共信息 */
  77457. int nChannelID; // 通道号,从0开始
  77458. int nEventAction; // 事件动作, 0表示脉冲事件, 1表示开始, 2表示结束, -1表示未知
  77459. char szName[128]; // 事件名称
  77460. double dbPTS; // 时间戳(单位是毫秒)
  77461. NET_TIME_EX stuUTC; // 事件发生的时间
  77462. int nEventID; // 事件ID
  77463. /* 事件业务信息 */
  77464. char szAddress[256]; // 主机地址
  77465. char szChildNodeName[128]; // 子节点名称
  77466. char szChildNodeSN[64]; // 子节点序列号,格式为主节点MAC-子节点ID
  77467. EM_HY_FIRE_CONTROL_DEVICE_TYPE emDeviceType; // 设备类型
  77468. NET_TIME_EX stuTime; // 设备接收到事件的时间
  77469. BYTE byReserved[1024]; // 保留字节
  77470. } ALARM_HY_FIRE_CONTROL_OFFLINE_FAULT_INFO;
  77471. ///@brief 设备类型
  77472. typedef enum tagEM_HY_SMOKE_DEVICE_TYPE
  77473. {
  77474. EM_HY_SMOKE_DEVICE_TYPE_UNKNOWN, // 未知
  77475. EM_HY_SMOKE_DEVICE_TYPE_SURPLUS_ELECTRICITY, // 剩余电流传感器
  77476. EM_HY_SMOKE_DEVICE_TYPE_ELECTRICITY, // 电流传感器
  77477. EM_HY_SMOKE_DEVICE_TYPE_TEMPERATURE, // 测温传感器
  77478. }EM_HY_SMOKE_DEVICE_TYPE;
  77479. ///@brief 消防传感器故障事件, 对应事件类型 DH_ALARM_HY_FIRE_CONTROL_SENSOR_FAULT
  77480. typedef struct tagALARM_HY_FIRE_CONTROL_SENSOR_FAULT_INFO
  77481. {
  77482. /* 事件公共信息 */
  77483. int nChannelID; // 通道号,从0开始
  77484. int nEventAction; // 事件动作, 0表示脉冲事件, 1表示开始, 2表示结束, -1表示未知
  77485. char szName[128]; // 事件名称
  77486. double dbPTS; // 时间戳(单位是毫秒)
  77487. NET_TIME_EX stuUTC; // 事件发生的时间
  77488. int nEventID; // 事件ID
  77489. /* 事件业务信息 */
  77490. char szAddress[256]; // 主机地址
  77491. char szChildNodeName[128]; // 子节点名称
  77492. char szChildNodeSN[64]; // 子节点序列号,格式为主节点MAC-子节点ID
  77493. EM_HY_SMOKE_DEVICE_TYPE emDeviceType; // 设备类型
  77494. NET_TIME_EX stuTime; // 设备接收到事件的时间
  77495. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  77496. BYTE byReserved[1024]; // 保留字节
  77497. } ALARM_HY_FIRE_CONTROL_SENSOR_FAULT_INFO;
  77498. ///@brief 消防设备拆除事件, 对应事件类型 DH_ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT
  77499. typedef struct tagALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT_INFO
  77500. {
  77501. /* 事件公共信息 */
  77502. int nChannelID; // 通道号,从0开始
  77503. int nEventAction; // 事件动作, 0表示脉冲事件, 1表示开始, 2表示结束, -1表示未知
  77504. char szName[128]; // 事件名称
  77505. double dbPTS; // 时间戳(单位是毫秒)
  77506. NET_TIME_EX stuUTC; // 事件发生的时间
  77507. int nEventID; // 事件ID
  77508. /* 事件业务信息 */
  77509. char szAddress[256]; // 主机地址
  77510. char szSN[64]; // 主机序列号
  77511. EM_HY_FIRE_CONTROL_DEVICE_TYPE emDeviceType; // 设备类型
  77512. NET_TIME_EX stuTime; // 设备接收到事件的时间
  77513. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  77514. BYTE byReserved[1024]; // 保留字节
  77515. } ALARM_HY_FIRE_CONTROL_DISMANTLE_FAULT_INFO;
  77516. /*******************************消防类事件结束************************************************/
  77517. ///@brief 物体查询范围
  77518. typedef struct tagDEV_OBJECT_FIND_SCOPE_INFO
  77519. {
  77520. BOOL bEnable; // 是否开启物体数量查询
  77521. int nMinValue; // 最小查询值
  77522. int nMaxValue; // 最大查询值
  77523. } DEV_OBJECT_FIND_SCOPE_INFO;
  77524. ///@brief 遮阳板查询范围
  77525. typedef struct tagDEV_OBJECT_SUNSHIELD_FIND_SCOPE_INFO
  77526. {
  77527. BYTE byFindType; // 查找遮阳板方式:1 按数量查找 2 按座位查找(必填,其他值无效)
  77528. int nMinSunShieldNum; // 遮阳板个数最小查询值(选填)byFindType 为1时使用
  77529. int nMaxSunShieldNum; // 遮阳板个数最大查询值(选填)byFindType 为1时使用
  77530. NET_SUNSHADE_STATE emMasterShield; // 主驾驶座位遮阳板状态(选填)byFindType 为2时使用
  77531. NET_SUNSHADE_STATE emSlaveShield; // 副驾驶座位遮阳板状态(选填)byFindType 为2时使用
  77532. } DEV_OBJECT_SUNSHIELD_FIND_SCOPE_INFO;
  77533. ///@brief 车辆结构化查找条件
  77534. typedef struct tagDEV_VEHICLE_CONDITION_FEATURE_INFO
  77535. {
  77536. char szPlateNumber[DH_MAX_PLATE_NUMBER_LEN]; // 车牌号码
  77537. EM_NET_PLATE_TYPE emPlateType; // 车牌类型
  77538. NET_COLOR_RGBA stuPlateColor; // 车牌颜色
  77539. EM_NET_VEHICLE_TYPE emVehicleType; // 车辆类型
  77540. NET_COLOR_RGBA stuVehicleColor; // 车身颜色
  77541. char szVehicleLogo[32]; // 车标
  77542. WORD wVehicleSubBrand; // 车辆子品牌 需要通过映射表得到真正的子品牌 映射表详见开发手册
  77543. WORD wVehicleYearModel; // 车辆品牌年款 需要通过映射表得到真正的年款 映射表详见开发手册
  77544. EM_VEHICLE_DIRECTION emVehicleDirection; // 抓拍车的位置
  77545. NET_SAFEBELT_STATE emMainSeat; // 主驾驶座位安全带状态(选填)
  77546. NET_SAFEBELT_STATE emSlaveSeat; // 副驾驶座位安全带状态(选填)
  77547. DEV_OBJECT_SUNSHIELD_FIND_SCOPE_INFO stuSunShieldInfo; // 遮阳板查询信息(必填)
  77548. DEV_OBJECT_FIND_SCOPE_INFO stuDropInfo; // 挂坠个数范围(选填)
  77549. DEV_OBJECT_FIND_SCOPE_INFO stuPaperBoxInfo; // 纸巾盒个数范围(选填)
  77550. DEV_OBJECT_FIND_SCOPE_INFO stuAnnualInspectionInfo; // 年检标个数范围(选填)
  77551. BYTE byReserved[256]; // 保留字节
  77552. } DEV_VEHICLE_CONDITION_FEATURE_INFO;
  77553. ///@brief 车辆结构化查询结果
  77554. typedef struct tagDEV_VEHICLE_RESULT_FEATURE_INFO
  77555. {
  77556. char szPlateNumber[DH_MAX_PLATE_NUMBER_LEN]; // 车牌号码
  77557. EM_NET_PLATE_TYPE emPlateType; // 车牌类型
  77558. NET_COLOR_RGBA stuPlateColor; // 车牌颜色
  77559. NET_COLOR_RGBA stuVehicleColor; // 车身颜色
  77560. char szVehicleLogo[32]; // 车标
  77561. WORD wVehicleSubBrand; // 车辆子品牌 需要通过映射表得到真正的子品牌 映射表详见开发手册
  77562. WORD wVehicleYearModel; // 车辆品牌年款 需要通过映射表得到真正的年款 映射表详见开发手册
  77563. int nVehicleWindowNum; // 车窗个数
  77564. NET_RECT stuVehicleWindow[4]; // 车窗位置,下标0表示前车窗,下标1表示后车窗,其余表示侧车窗
  77565. EM_VEHICLE_DIRECTION emVehicleDirection; // 抓拍车的位置
  77566. NET_SAFEBELT_STATE emMainSeat; // 主驾驶座位安全带状态
  77567. NET_SAFEBELT_STATE emSlaveSeat; // 副驾驶座位安全带状态
  77568. NET_RECT stuMasterShield; // 主驾驶座位遮阳板位置
  77569. NET_RECT stuSlaveShield; // 副驾驶座位遮阳板位置
  77570. int nAnnualInspectionNum; // 年检标志个数
  77571. NET_RECT stuAnnualInspection[8]; // 年检标志
  77572. int nDropNum; // 挂坠个数
  77573. NET_RECT stuDrop[4]; // 挂坠位置
  77574. int nPaperBoxNum; // 纸巾盒个数
  77575. NET_RECT stuPaperBox[4]; // 纸巾盒位置
  77576. BYTE byReserved[256]; // 保留字节
  77577. } DEV_VEHICLE_RESULT_FEATURE_INFO;
  77578. ///@brief 特征图片类型
  77579. typedef enum tagEM_PIC_FEATURE_TYPE
  77580. {
  77581. EM_PIC_FEATURE_TYPE_UNKOWN, // 未知类型
  77582. EM_PIC_FEATURE_TYPE_GLOBAL_SENCE, // 全景大图
  77583. EM_PIC_FEATURE_TYPE_SMALL, // 特写图
  77584. }EM_PIC_FEATURE_TYPE;
  77585. ///@brief 图片请求信息,
  77586. typedef struct tagDEV_IMAGE_REQUEST_FEATURE_INFO
  77587. {
  77588. EM_PIC_FEATURE_TYPE emPicType; // 图片类型(必填)
  77589. DWORD dwoffset; // 在二进制数据块中的偏移,单位:字节
  77590. DWORD dwLength; // 图片大小,单位:字节
  77591. DWORD dwWidth; // 图片宽度
  77592. DWORD dwHeight; // 图片高度
  77593. BOOL bEnableRect; // 是否开启Rect查询
  77594. NET_RECT stuRect; // (选填)图片为GlobalScene时,标示大图中的物体坐标,使用绝对坐标,即像素点实际位置
  77595. BYTE byReserved[256]; // 保留字节
  77596. } DEV_IMAGE_REQUEST_FEATURE_INFO;
  77597. ///@brief 图片结果信息
  77598. typedef struct tagDEV_IMAGE_RESULT_FEATURE_INFO
  77599. {
  77600. DWORD dwSimilarity; // 图片的相似度,范围0~100
  77601. NET_TIME stuTime; // 图片检测/入库时间
  77602. DWORD dwObjectOffset; // 特写图在二进制数据块中的偏移,单位字节(取决于请求的NeedData)
  77603. DWORD dwObjectLength; // 特写图片大小,单位字节(取决于请求的NeedData)
  77604. char szObjectFilePath[MAX_PATH]; // 特写图HTTP文件路径(取决于请求的NeedData)
  77605. DWORD dwSceneOffset; // 全景图在二进制数据块中的偏移,单位字节(取决于请求的NeedData)
  77606. DWORD dwSceneLength; // 全景图图片大小,单位字节(取决于请求的NeedData)
  77607. char szSceneFilePath[MAX_PATH]; // 全景图HTTP文件路径(取决于请求的NeedData)
  77608. NET_RECT stuObjectRect; // 小图在大图的位置,绝对像素点
  77609. BYTE byReserved[256]; // 保留字节
  77610. } DEV_IMAGE_RESULT_FEATURE_INFO;
  77611. ///@brief CLIENT_DetectObjectStructlize 接口输入参数
  77612. typedef struct tagNET_IN_OBJECTSTRUCTLIZE_DETECT_PIC
  77613. {
  77614. DWORD dwSize;
  77615. int nWidth; // 图片宽度
  77616. int nHeight; // 图片高度
  77617. char *pBuffer; // 图片二进制数据缓冲地址, 由用户申请
  77618. int nBufferLen; // 图片二进制数据缓冲数据长度
  77619. }NET_IN_OBJECTSTRUCTLIZE_DETECT_PIC;
  77620. ///@brief 检测到的物体信息
  77621. typedef struct tagNET_OBJECT_DETECTED_INFO
  77622. {
  77623. DH_POINT stuPoint; // 小图左上角在大图的位置, 使用绝对坐标系
  77624. DWORD dwWidth; // 图片宽度
  77625. DWORD dwHeight; // 图片高度
  77626. char szObjectType[16]; // 物体类型, 参考 NET_OBJFILTER_INFO 的 szObjectType 说明
  77627. char szObjectSubType[32]; // 物体类型中的子类别, 参考 NET_OBJFILTER_INFO 的 szObjectSubType 说明
  77628. DEV_PERSON_RESULT_FEATURE_INFO stuPersonResult; // 人员结构化查询结果
  77629. DEV_VEHICLE_RESULT_FEATURE_INFO stuVehicleResult; // 车辆结构化查询结果
  77630. BYTE byReserved[512]; // 保留字节
  77631. } NET_OBJECT_DETECTED_INFO;
  77632. ///@brief CLIENT_DetectObjectStructlize 接口输出参数
  77633. typedef struct tagNET_OUT_OBJECTSTRUCTLIZE_DETECT_PIC
  77634. {
  77635. DWORD dwSize;
  77636. int nObjectNum; // 检测到的物体个数
  77637. NET_OBJECT_DETECTED_INFO stuObjectinfos[DH_MAX_OBJECT_LIST]; // 检测到的物体
  77638. }NET_OUT_OBJECTSTRUCTLIZE_DETECT_PIC;
  77639. ///@brief 结构化查询状态信息回调函数, lAttachHandle是 CLIENT_AttachObjectStructlizeFindState 的返回值
  77640. typedef struct tagNET_CB_OBJECTSTRUCTLIZE_FIND_STATE
  77641. {
  77642. DWORD dwSize;
  77643. int nToken; //查询令牌
  77644. int nProgress; //正常取值范围:0-100,-1,表示查询token不存在(当订阅一个不存在或结束的查询时)
  77645. int nCurrentCount; //目前符合查询条件的数量
  77646. }NET_OBJECTSTRUCTLIZE_FIND_STATE;
  77647. ///@brief 结构化查询订阅状态回调函数
  77648. // pstStates 的个数由 nStateNum 指出
  77649. typedef void (CALLBACK *fObjectStructlizeFindState)(LLONG lLoginID, LLONG lAttachHandle, NET_OBJECTSTRUCTLIZE_FIND_STATE* pstStates, int nStateNum, LDWORD dwUser);
  77650. ///@brief CLIENT_AttachObjectStructlizeFindState 接口输入参数
  77651. typedef struct tagNET_IN_OBJECTSTRUCTLIZE_FIND_STATE
  77652. {
  77653. DWORD dwSize; //结构体大小,必须填写
  77654. int nTokenNum; //查询令牌数,为0时,表示订阅所有的查询任务
  77655. int nTokens[8]; //查询令牌
  77656. fObjectStructlizeFindState cbObjectSFindState; //回调函数
  77657. LDWORD dwUser; //用户数据
  77658. }NET_IN_OBJECTSTRUCTLIZE_FIND_STATE;
  77659. ///@brief CLIENT_AttachObjectStructlizeFindState 接口输出参数
  77660. typedef struct tagNET_OUT_OBJECTSTRUCTLIZE_FIND_STATE
  77661. {
  77662. DWORD dwSize;
  77663. }NET_OUT_OBJECTSTRUCTLIZE_FIND_STATE;
  77664. ///@brief CLIENT_StartFindObjectStructlize 接口输入参数
  77665. typedef struct tagNET_IN_STARTFIND_OBJECTSTRUCTLIZE
  77666. {
  77667. DWORD dwSize;
  77668. int nChannelNum; // 通道数量
  77669. int stuChannelID[16]; // 所有的通道号
  77670. BOOL bTimeEnable; // 启用时间段查询
  77671. NET_TIME stStartTime; // (选填)开始时间,查询抓拍库需要,注册库不需要
  77672. NET_TIME stEndTime; // (选填)结束时间,查询抓拍库需要,注册库不需要
  77673. /*以下为查询过滤条件*/
  77674. char szObjectType[16]; // (必填)物体类型, 同 NET_OBJFILTER_INFO 字段
  77675. char szObjectSubType[32]; // (选填)物体类型中的子类别,同 NET_OBJFILTER_INFO 字段
  77676. int nSimilarity; // (必填)和查询图片的相似度,百分比,范围0~100
  77677. DEV_PERSON_CONDITION_FEATURE_INFO stuPersonCondition; // 人员查找信息,可以只填部分,多个条件是AND关系
  77678. DEV_VEHICLE_CONDITION_FEATURE_INFO stuVehicleCondition; // 车辆查找条件,可以只填部分,多个条件是AND关系
  77679. DEV_IMAGE_REQUEST_FEATURE_INFO stuImageRequestInfo; // 图片信息
  77680. int nRectNum; // 有效的特征框坐标个数
  77681. NET_RECT stuRect[4]; // 特征框坐标
  77682. /* 图片二进制数据 */
  77683. char *pBuffer; // 缓冲地址, 有用户申请
  77684. int nBufferLen; // 缓冲数据长度
  77685. }NET_IN_STARTFIND_OBJECTSTRUCTLIZE;
  77686. ///@brief CLIENT_StartFindObjectStructlize 接口输出参数
  77687. typedef struct tagNET_OUT_STARTFIND_OBJECTSTRUCTLIZE
  77688. {
  77689. DWORD dwSize;
  77690. int nTotalCount; // 返回的符合查询条件的记录个数
  77691. // -1表示总条数未生成,要推迟获取
  77692. // 使用 CLIENT_AttachObjectStructlizeFindState 接口状态
  77693. LLONG lFindHandle; // 查询句柄
  77694. int nToken; // 获取到的查询令牌
  77695. }NET_OUT_STARTFIND_OBJECTSTRUCTLIZE;
  77696. ///@brief CLIENT_DoFindObjectStructlize 接口输入参数
  77697. typedef struct tagNET_IN_DOFIND_OBJECTSTRUCTLIZE
  77698. {
  77699. DWORD dwSize;
  77700. LLONG lFindHandle; // (必填)查询句柄
  77701. int nBeginNum; // (必填)查询起始序号,0<=beginNumber<= totalCount-1
  77702. int nCount; // (必填)当前想查询的记录条数
  77703. EM_NEEDED_PIC_RETURN_TYPE emNeededData; // (必填)查询结果返回图片格式
  77704. }NET_IN_DOFIND_OBJECTSTRUCTLIZE;
  77705. ///@brief doFind检测到的物体信息
  77706. typedef struct tagNET_DODBFIND_OBJECT_DETECTED_INFO
  77707. {
  77708. int nChannelID; // 通道号
  77709. char szObjectType[16]; // 物体类型, 同 NET_OBJFILTER_INFO 字段
  77710. char szObjectSubType[32]; // 物体类型中的子类别, 同 NET_OBJFILTER_INFO 字段
  77711. DEV_PERSON_RESULT_FEATURE_INFO stuPersonResult; // 人员结构化查询结果
  77712. DEV_VEHICLE_RESULT_FEATURE_INFO stuVehicleResult; // 车辆结构化查询结果
  77713. int nImageNum; // 检测到的图片个数,查询抓拍库数组长度1;注册库数组长度可能大于1
  77714. DEV_IMAGE_RESULT_FEATURE_INFO stuImageResults[4]; // 检测到的图片信息结果
  77715. BYTE byReserved[512]; // 保留字节
  77716. } NET_DODBFIND_OBJECT_DETECTED_INFO;
  77717. ///@brief CLIENT_DoFindObjectStructlize 接口输出参数
  77718. typedef struct tagNET_OUT_DOFIND_OBJECTSTRUCTLIZE
  77719. {
  77720. DWORD dwSize;
  77721. int nfoundNum; // 查询到的条数
  77722. int nObjectNum; // 检测到的物体个数
  77723. NET_DODBFIND_OBJECT_DETECTED_INFO stuObjectinfos[DH_MAX_OBJECT_LIST]; // 检测到的物体
  77724. /* 图片二进制数据 */
  77725. char *pBuffer; // 缓冲地址, 有用户申请
  77726. int nBufferLen; // 缓冲数据长度
  77727. int nBufRet; // 实际返回的长度
  77728. }NET_OUT_DOFIND_OBJECTSTRUCTLIZE;
  77729. ///@brief 进行特征值提取, 以图搜图 pstInParam 与 pstOutPara m内存由用户申请释放
  77730. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetectObjectStructlize(LLONG lLoginID, const NET_IN_OBJECTSTRUCTLIZE_DETECT_PIC* pstInParam, NET_OUT_OBJECTSTRUCTLIZE_DETECT_PIC *pstOutParam, int nWaitTime );
  77731. ///@brief 订阅结构化查询状态 pstInParam 与 pstOutParam 内存由用户申请释放
  77732. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachObjectStructlizeFindState(LLONG lLoginID, const NET_IN_OBJECTSTRUCTLIZE_FIND_STATE* pstInParam, NET_OUT_OBJECTSTRUCTLIZE_FIND_STATE *pstOutParam, int nWaitTime );
  77733. ///@brief 取消结构化查询状态 lAttachHandle 为 CLIENT_AttachObjectStructlizeFindState 返回的句柄
  77734. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachObjectStructlizeFindState(LLONG lAttachHandle);
  77735. ///@brief 按条件查询结构化识别结果 pstInParam 与 pstOutParam内存由用户申请释放
  77736. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartFindObjectStructlize(LLONG lLoginID, const NET_IN_STARTFIND_OBJECTSTRUCTLIZE* pstInParam, NET_OUT_STARTFIND_OBJECTSTRUCTLIZE *pstOutParam, int nWaitTime );
  77737. ///@brief 查找结构化识别结果:nFilecount:需要查询的条数, 返回值为媒体文件条数 返回值<nFilecount则相应时间段内的文件查询完毕(每次最多只能查询20条记录),pstInParam与pstOutParam内存由用户申请释放
  77738. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindObjectStructlize(const NET_IN_DOFIND_OBJECTSTRUCTLIZE* pstInParam, NET_OUT_DOFIND_OBJECTSTRUCTLIZE *pstOutParam, int nWaitTime );
  77739. ///@brief 结束结构化查询
  77740. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindObjectStructlize(LLONG lFindHandle);
  77741. ///@brief 接口 CLIENT_GetSubModuleInfo 输入参数
  77742. typedef struct tagNET_IN_GET_SUBMODULES_INFO
  77743. {
  77744. DWORD dwSize;
  77745. }NET_IN_GET_SUBMODULES_INFO;
  77746. ///@brief 模块状态
  77747. typedef enum tagEM_STATE_SUBMODULE
  77748. {
  77749. EM_STATE_SUBMODULES_UNKNOWN,
  77750. EM_STATE_SUBMODULES_NORMAL, // 正常
  77751. EM_STATE_SUBMODULES_EXCEPTION, // 异常
  77752. }EM_STATE_SUBMODULE;
  77753. ///@brief 子模块信息
  77754. typedef struct tagNET_SUBMODULES_INFO
  77755. {
  77756. char szModuleName[DH_COMMON_STRING_32]; // 模块名称
  77757. char szHardwareVersion[DH_COMMON_STRING_64]; // 硬件版本信息
  77758. char szSoftwareVersion[DH_COMMON_STRING_64]; // 软件版本信息
  77759. EM_STATE_SUBMODULE emState; // 模块状态
  77760. BYTE byReserve[512];
  77761. }NET_SUBMODULES_INFO;
  77762. ///@brief 子模块扩展信息
  77763. typedef struct tagNET_SUBMODULES_INFO_EX
  77764. {
  77765. char szGMChipUpdateInfo[512]; // 芯片的cos固件信息, Base64解码之后的
  77766. int nGMChipUpdateInfoLen; // 芯片的cos固件信息长度
  77767. BYTE byReserve[1020]; // 预留字节
  77768. }NET_SUBMODULES_INFO_EX;
  77769. ///@brief 接口CLIENT_GetSubModuleInfo 输出参数
  77770. typedef struct tagNET_OUT_GET_SUBMODULES_INFO
  77771. {
  77772. DWORD dwSize;
  77773. int nRetNum; // 返回的子模块数量
  77774. NET_SUBMODULES_INFO stuSubModuleInfo[MAX_SUBMODULE_NUM]; // 子模块信息
  77775. NET_SUBMODULES_INFO_EX stuSubModuleInfoEx[MAX_SUBMODULE_NUM]; // 子模块扩展信息
  77776. }NET_OUT_GET_SUBMODULES_INFO;
  77777. ///@brief 获取子模块信息
  77778. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSubModuleInfo(LLONG lLoginID, const NET_IN_GET_SUBMODULES_INFO* pstInParam, NET_OUT_GET_SUBMODULES_INFO* pstOutParam, int nWaitTime);
  77779. ///@brief CLIENT_GetSoftwareVersion 入参
  77780. typedef struct tagNET_IN_GET_SOFTWAREVERSION_INFO
  77781. {
  77782. DWORD dwSize; // 结构体大小
  77783. }NET_IN_GET_SOFTWAREVERSION_INFO;
  77784. ///@brief 外设类型
  77785. typedef enum tagEM_PERIPHERAL_TYPE
  77786. {
  77787. EM_PERIPHERAL_NUKNOWN, // 未知
  77788. EM_PERIPHERAL_ASG_CONTROLLER, // 闸机控制板
  77789. EM_PERIPHERAL_ASG_MOTOR, // 闸机电机驱动
  77790. EM_PERIPHERAL_SECURITYGATE_DOOR_CONTROLLER, // 安检门门板控制器
  77791. EM_PERIPHERAL_INFRARED_TEMPERATURE_UNIT, // 红外测温模块
  77792. EM_PERIPHERAL_ASG_VOICE, // 闸机语音模块
  77793. EM_PERIPHERAL_ASG_READER, // 闸机读卡器
  77794. EM_PERIPHERAL_RTSCCOMMBOARD, // 信号机通讯板
  77795. EM_PERIPHERAL_SINGLECHIPMICROCOMPUTER, // 单片机
  77796. EM_PERIPHERAL_RECLOSING, // 重合闸
  77797. EM_PERIPHERAL_AIRSWITCHVERSION, // 空开
  77798. EM_PERIPHERAL_COS, // 国密芯片COS版本
  77799. }EM_PERIPHERAL_TYPE;
  77800. ///@brief 设备的外设软件版本
  77801. typedef struct tagNET_PERIPHERAL_VERSIONS
  77802. {
  77803. char szVersion[32]; // 对应外设的版本信息
  77804. EM_PERIPHERAL_TYPE emPeripheralType; // 外设类型
  77805. char szBuildDate[24]; // 对应外设版本的编译日期,精确到天
  77806. BYTE byReserved[228]; // 保留字节
  77807. }NET_PERIPHERAL_VERSIONS;
  77808. ///@brief CLIENT_GetSoftwareVersion 出参
  77809. typedef struct tagNET_OUT_GET_SOFTWAREVERSION_INFO
  77810. {
  77811. DWORD dwSize; // 结构体大小
  77812. char szVersion[DH_COMMON_STRING_64]; // 软件版本
  77813. NET_TIME stuBuildDate; // 日期
  77814. char szWebVersion[DH_COMMON_STRING_16]; // web软件信息
  77815. char szSecurityVersion[DH_COMMON_STRING_64]; // 安全基线版本
  77816. int nPeripheralNum; // 返回的外设数量
  77817. NET_PERIPHERAL_VERSIONS stuPeripheralVersions[32]; // 设备的外设软件版本
  77818. char szAlgorithmTrainingVersion[64]; // 算法训练对外代号
  77819. }NET_OUT_GET_SOFTWAREVERSION_INFO;
  77820. ///@brief 获取软件版本
  77821. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSoftwareVersion(LLONG lLoginID, const NET_IN_GET_SOFTWAREVERSION_INFO* pstInParam, NET_OUT_GET_SOFTWAREVERSION_INFO* pstOutParam, int nWaitTime);
  77822. ///@brief CLIENT_GetDeviceType 入参
  77823. typedef struct tagNET_IN_GET_DEVICETYPE_INFO
  77824. {
  77825. DWORD dwSize; // 结构体大小
  77826. }NET_IN_GET_DEVICETYPE_INFO;
  77827. ///@brief CLIENT_GetDeviceType 出参
  77828. typedef struct tagNET_OUT_GET_DEVICETYPE_INFO
  77829. {
  77830. DWORD dwSize; // 结构体大小
  77831. char szType[DH_COMMON_STRING_32]; // 设备类型,该字段被废弃
  77832. char szTypeEx[DH_COMMON_STRING_256]; // 设备类型, 扩展设备类型建议使用此字段
  77833. }NET_OUT_GET_DEVICETYPE_INFO;
  77834. ///@brief 获取设备类型
  77835. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDeviceType(LLONG lLoginID, const NET_IN_GET_DEVICETYPE_INFO* pstInParam, NET_OUT_GET_DEVICETYPE_INFO* pstOutParam, int nWaitTime);
  77836. ///@brief CLIENT_GetDeviceSerialNo 入参
  77837. typedef struct tagNET_IN_GET_DEVICESERIALNO_INFO
  77838. {
  77839. DWORD dwSize; // 结构体大小
  77840. }NET_IN_GET_DEVICESERIALNO_INFO;
  77841. ///@brief CLIENT_GetDeviceSerialNo 出参
  77842. typedef struct tagNET_OUT_GET_DEVICESERIALNO_INFO
  77843. {
  77844. DWORD dwSize; // 结构体大小
  77845. char szSN[64]; // 序列号
  77846. }NET_OUT_GET_DEVICESERIALNO_INFO;
  77847. ///@brief 获取设备序列号
  77848. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDeviceSerialNo(LLONG lLoginID, const NET_IN_GET_DEVICESERIALNO_INFO* pstInParam, NET_OUT_GET_DEVICESERIALNO_INFO* pstOutParam, int nWaitTime);
  77849. ///@brief CLIENT_GetMachineName 入参
  77850. typedef struct tagNET_IN_GET_MACHINENAME_INFO
  77851. {
  77852. DWORD dwSize; // 结构体大小
  77853. }NET_IN_GET_MACHINENAME_INFO;
  77854. ///@brief CLIENT_GetMachineName 出参
  77855. typedef struct tagNET_OUT_GET_MACHINENAME_INFO
  77856. {
  77857. DWORD dwSize; // 结构体大小
  77858. char szName[64]; // 本机名称
  77859. }NET_OUT_GET_MACHINENAME_INFO;
  77860. ///@brief 获取机器名称
  77861. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMachineName(LLONG lLoginID, const NET_IN_GET_MACHINENAME_INFO* pstInParam, NET_OUT_GET_MACHINENAME_INFO* pstOutParam, int nWaitTime);
  77862. ///@brief 查询要求返回的统计信息粒度
  77863. typedef enum tagEM_STATIS_GRANULARITY
  77864. {
  77865. EM_STATIS_GRANULARITY_UNKNOWN, // 未知类型
  77866. EM_STATIS_GRANULARITY_BY_HOUR, // 按小时取一个样本点数据
  77867. EM_STATIS_GRANULARITY_BY_DAY, // 按天取一个样本点数据
  77868. EM_STATIS_GRANULARITY_BY_MONTH, // 按月取一个样本点数据
  77869. }EM_STATIS_GRANULARITY;
  77870. ///@brief CLIENT_StartFindExternalSensor 接口输入参数
  77871. typedef struct tagNET_IN_STARTFIND_EXTERNALSENSOR
  77872. {
  77873. DWORD dwSize;
  77874. NET_TIME stStartTime; // 开始时间
  77875. NET_TIME stEndTime; // 结束时间
  77876. EM_STATIS_GRANULARITY emGranularity; // 查询要求返回的统计信息粒度:"Hour"按小时;"Day"每天取一个样本点数据;"Month"每月每天取一个样本点数据
  77877. UINT nVideoChannel; // 视频通道号,DVR/NVR对接时需要。单目IPC可以不填或填0
  77878. UINT nIndex; // 外部传感器通道号
  77879. UINT nRecordHour; // 样本时间点,单位小时,范围[0,23],"szGranularity"值为"Day"或"Month"时有效
  77880. }NET_IN_STARTFIND_EXTERNALSENSOR;
  77881. ///@brief CLIENT_StartFindExternalSensor 接口输出参数
  77882. typedef struct tagNET_OUT_STARTFIND_EXTERNALSENSOR
  77883. {
  77884. DWORD dwSize;
  77885. UINT nToken; // 查询令牌
  77886. UINT nTotalCount; // 符合此次查询条件的总条数
  77887. }NET_OUT_STARTFIND_EXTERNALSENSOR;
  77888. ///@brief 开始查询外部传感器数据
  77889. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindExternalSensor(LLONG lLoginID, const NET_IN_STARTFIND_EXTERNALSENSOR* pstInParam, NET_OUT_STARTFIND_EXTERNALSENSOR* pstOutParam, int nWaitTime);
  77890. ///@brief CLIENT_DoFindExternalSensor 接口输入参数
  77891. typedef struct tagNET_IN_DOFIND_EXTERNALSENSOR
  77892. {
  77893. DWORD dwSize;
  77894. UINT nToken; // 查询令牌
  77895. UINT nBegin; // 查询起始序号,表示从begin条记录开始,取nCount条记录返回
  77896. UINT nCount; // 每次查询的条数
  77897. }NET_IN_DOFIND_EXTERNALSENSOR;
  77898. ///@brief 外部传感器数据查询结果
  77899. typedef struct tagNET_FIND_EXTERNALSENSOR_INFO
  77900. {
  77901. UINT nVideoChannel; // 视频通道号
  77902. UINT nIndex; // 外部传感器通道号
  77903. NET_TIME stRecordTime; // 外部传感器数据存储时间
  77904. double dbData; // 外部传感器数据
  77905. BYTE byReserve[1024]; // 保留字节
  77906. }NET_FIND_EXTERNALSENSOR_INFO;
  77907. ///@brief CLIENT_DoFindExternalSensor 接口输出参数
  77908. typedef struct tagNET_OUT_DOFIND_EXTERNALSENSOR
  77909. {
  77910. DWORD dwSize;
  77911. UINT nFound; // 查询到的条数
  77912. UINT nMazNum; // 查询条数
  77913. NET_FIND_EXTERNALSENSOR_INFO* pstuInfo; // 外部传感器数据查询结果,用户分配内存,大小为sizeof(NET_FIND_EXTERNALSENSOR_INFO)*nMazNum
  77914. }NET_OUT_DOFIND_EXTERNALSENSOR;
  77915. ///@brief 获取符合查询条件的外部传感器数据
  77916. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindExternalSensor(LLONG lFindHandle, const NET_IN_DOFIND_EXTERNALSENSOR* pstInParam, NET_OUT_DOFIND_EXTERNALSENSOR* pstOutParam, int nWaitTime);
  77917. ///@brief 停止查询外部传感器数据
  77918. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindExternalSensor(LLONG lFindHandle);
  77919. ///@brief 获取跟踪盒显示配置
  77920. typedef struct tagNET_CFG_TRACKBOX
  77921. {
  77922. int nVideoChannel; // 视频通道号
  77923. BOOL bTargetBox; // 是否显示目标框
  77924. BOOL bTrackBox; // 是否显示跟踪框
  77925. BOOL bTargetNumber; // 是否显示目标编号
  77926. BYTE byReserved[1024];
  77927. }NET_CFG_TRACKBOX;
  77928. ///@brief CLIENT_GetTrackBox接口输入参数
  77929. typedef struct tagNET_IN_GET_TRACKBOX
  77930. {
  77931. DWORD dwSize;
  77932. int nVideoChannel; // 视频通道号
  77933. }NET_IN_GET_TRACKBOX;
  77934. ///@brief CLIENT_GetTrackBox接口输出参数
  77935. typedef struct tagNET_OUT_GET_TRACKBOX
  77936. {
  77937. DWORD dwSize;
  77938. NET_CFG_TRACKBOX stuGetTrackBox;
  77939. }NET_OUT_GET_TRACKBOX;
  77940. ///@brief 获取跟踪盒显示配置
  77941. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetTrackBox(LLONG lLoginID, const NET_IN_GET_TRACKBOX* pstInParam, NET_OUT_GET_TRACKBOX *pstOutParam, int nWaitTime);
  77942. ///@brief CLIENT_SetTrackBox接口输入参数
  77943. typedef struct tagNET_IN_SET_TRACKBOX
  77944. {
  77945. DWORD dwSize;
  77946. NET_CFG_TRACKBOX stuSetTrackBox;
  77947. }NET_IN_SET_TRACKBOX;
  77948. ///@brief CLIENT_SetTrackBox接口输出参数
  77949. typedef struct tagNET_OUT_SET_TRACKBOX
  77950. {
  77951. DWORD dwSize;
  77952. }NET_OUT_SET_TRACKBOX;
  77953. ///@brief 设置跟踪盒显示配置
  77954. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetTrackBox(LLONG lLoginID, const NET_IN_SET_TRACKBOX* pstInParam, NET_OUT_SET_TRACKBOX *pstOutParam, int nWaitTime);
  77955. ///@brief 跟踪模式
  77956. typedef enum tagEM_TRACK_MODE
  77957. {
  77958. EM_TRACK_MODE_UNKNOWN = -1, // 未知模式
  77959. EM_TRACK_MODE_AUTO, // 自动跟踪
  77960. EM_TRACK_MODE_SINGLE, // 单目标跟踪
  77961. EM_TRACK_MODE_MANUAL, // 手动控制
  77962. EM_TRACK_MODE_ALARM // 报警跟踪
  77963. }EM_TRACK_MODE;
  77964. ///@brief 跟踪模式
  77965. typedef struct tagNET_CFG_TRACKMODE
  77966. {
  77967. int nVideoChannel; // 视频通道号
  77968. EM_TRACK_MODE emTrackMode; // 跟踪模式
  77969. BYTE byReserved[1024]; // 保留字段
  77970. }NET_CFG_TRACKMODE;
  77971. ///@brief CLIENT_GetTrackMode输入参数
  77972. typedef struct tagNET_IN_GET_TRACKMODE
  77973. {
  77974. DWORD dwSize;
  77975. int nVideoChannel; // 视频通道号
  77976. }NET_IN_GET_TRACKMODE;
  77977. ///@brief CLIENT_GetTrackMode输出参数
  77978. typedef struct tagNET_OUT_GET_TRACKMODE
  77979. {
  77980. DWORD dwSize;
  77981. NET_CFG_TRACKMODE stuGetTrackMode;
  77982. }NET_OUT_GET_TRACKMODE;
  77983. ///@brief 获取跟踪模式
  77984. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetTrackMode(LLONG lLoginID, const NET_IN_GET_TRACKMODE* pstInParam, NET_OUT_GET_TRACKMODE *pstOutParam, int nWaitTime);
  77985. ///@brief CLIENT_SetTrackMode输入参数
  77986. typedef struct tagNET_IN_SET_TRACKMODE
  77987. {
  77988. DWORD dwSize;
  77989. NET_CFG_TRACKMODE stuSetTrackMode;
  77990. }NET_IN_SET_TRACKMODE;
  77991. ///@brief CLIENT_SetTrackMode输出参数
  77992. typedef struct tagNET_OUT_SET_TRACKMODE
  77993. {
  77994. DWORD dwSize;
  77995. }NET_OUT_SET_TRACKMODE;
  77996. ///@brief 设置跟踪模式
  77997. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetTrackMode(LLONG lLoginID, const NET_IN_SET_TRACKMODE* pstInParam, NET_OUT_SET_TRACKMODE *pstOutParam, int nWaitTime);
  77998. ///@brief 坐标
  77999. typedef struct tagNET_CFG_LINKPOS
  78000. {
  78001. int nVideoChannel; // 视频通道号
  78002. char szBallip[DH_COMMON_STRING_64]; // 联动球机IP地址,可以忽略不填
  78003. unsigned short nX; // 鼠标点击跟踪盒视频x坐标归一化值或鼠标框选矩形中心,范围[0,8191]
  78004. unsigned short nY; // 鼠标点击跟踪盒视频y坐标归一化值或鼠标框选矩形中心y坐标归一化值,范围[0,8191]
  78005. float fZoom; // zoom为负数表示点选联动,只联动不变倍。大于等于0,表示框选联动
  78006. BYTE byReserved[1024]; // 保留字段
  78007. }NET_CFG_LINKPOS;
  78008. ///@brief CLIENT_SetLinkPos输入参数
  78009. typedef struct tagNET_IN_SET_LINKPOS
  78010. {
  78011. DWORD dwSize;
  78012. NET_CFG_LINKPOS stuSetLinkPos;
  78013. }NET_IN_SET_LINKPOS;
  78014. ///@brief CLIENT_SetLinkPos输出参数
  78015. typedef struct tagNET_OUT_SET_LINKPOS
  78016. {
  78017. DWORD dwSize;
  78018. }NET_OUT_SET_LINKPOS;
  78019. ///@brief 点选联动和框选联动
  78020. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetLinkPos(LLONG lLoginID, const NET_IN_SET_LINKPOS* pstInParam, NET_OUT_SET_LINKPOS *pstOutParam, int nWaitTime);
  78021. ///@brief +++++++++++++++++++++++++++++++++++++++++++++++++++++云存储服务器相关接口+++++++++++++++++++++++++++++++++++++++++++
  78022. ///@brief bucket名称信息
  78023. typedef struct tagNET_BUCKET_NAME_INFO
  78024. {
  78025. char szName[DH_COMMON_STRING_64]; // 名称
  78026. BYTE byReserved[256]; // 保留字节
  78027. }NET_BUCKET_NAME_INFO;
  78028. ///@brief 开始查询bucket名称入参
  78029. typedef struct tagNET_IN_FIND_BUCKET_NAME
  78030. {
  78031. DWORD dwSize; // 结构体大小
  78032. UINT nOffset; // 查询偏移值
  78033. UINT nCount; // 查询数量
  78034. }NET_IN_FIND_BUCKET_NAME;
  78035. ///@brief 开始查询bucket名称出参
  78036. typedef struct tagNET_OUT_FIND_BUCKET_NAME
  78037. {
  78038. DWORD dwSize; // 结构体大小
  78039. UINT nTotalCount; // 总的bucket名称数量
  78040. UINT nFindCount; // 实际查询到bucket名称数量
  78041. NET_BUCKET_NAME_INFO* pBucketName; // bucket名称指针,由用户申请/释放内存,sdk会填充这块内存
  78042. UINT nNameCount; // bucket名称个数,用户填写
  78043. }NET_OUT_FIND_BUCKET_NAME;
  78044. ///@brief bucket下面的文件名称信息
  78045. typedef struct tagNET_BUCKET_FILE_NAME_INFO
  78046. {
  78047. char szName[DH_COMMON_STRING_1024]; // 文件名称
  78048. BYTE byReserved[256]; // 保留字节
  78049. }NET_BUCKET_FILE_NAME_INFO;
  78050. ///@brief 开始查询某个bucket下的文件名称信息入参
  78051. typedef struct tagNET_IN_FIND_BUCKET_FILE_NAME
  78052. {
  78053. DWORD dwSize; // 结构体大小
  78054. UINT nOffset; // 查询偏移量
  78055. UINT nCount; // 查询数量
  78056. char szBucketName[DH_COMMON_STRING_64]; // bucket名称
  78057. }NET_IN_FIND_BUCKET_FILE_NAME;
  78058. ///@brief 开始查询某个bucket下的文件名称信息出参
  78059. typedef struct tagNET_OUT_FIND_BUCKET_FILE_NAME
  78060. {
  78061. DWORD dwSize; // 结构体大小
  78062. UINT nTotalCount; // 总的文件名称数量
  78063. UINT nFindCount; // 查询到的文件名称数量
  78064. NET_BUCKET_FILE_NAME_INFO* pFileName; // file名称指针,由用户申请/释放内存,sdk会填充这块内存
  78065. UINT nFileCount; // file名称个数,用户填写
  78066. }NET_OUT_FIND_BUCKET_FILE_NAME;
  78067. ///@brief 查询EFS设备系统中的bucket名称信息
  78068. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindBucketName(LLONG lLoginID, const NET_IN_FIND_BUCKET_NAME* pstInParam, NET_OUT_FIND_BUCKET_NAME *pstOutParam, int nWaitTime );
  78069. ///@brief 查询某个bucket下面的文件名称信息
  78070. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindBucketFileName(LLONG lLoginID, const NET_IN_FIND_BUCKET_FILE_NAME* pstInParam, NET_OUT_FIND_BUCKET_FILE_NAME *pstOutParam, int nWaitTime );
  78071. /**********************************语音广播相关接口***************************************************/
  78072. ///@brief 广播语音对讲数据回调函数原形
  78073. typedef void (CALLBACK *pfAudioBroadcastDataCallBack)(LLONG lSpeakHandle, char *pDataBuf, DWORD dwBufSize, int nToken, LDWORD dwUser);
  78074. ///@brief 对指定的通道进行语音广播的输入参数
  78075. typedef struct tagNET_IN_START_CHANNEL_INFO
  78076. {
  78077. DWORD dwSize;
  78078. int nChannelCount; // 指定的通道数量
  78079. int nChannel[32]; // 指定的通道号的列表
  78080. pfAudioBroadcastDataCallBack pfcb; // 广播语音对讲数据回调函数
  78081. LDWORD dwUser; // 用户数据
  78082. } NET_IN_START_CHANNEL_INFO;
  78083. ///@brief 对指定的通道进行语音广播的输出参数
  78084. typedef struct tagNET_OUT_START_CHANNEL_INFO
  78085. {
  78086. DWORD dwSize;
  78087. int nToken; // 广播令牌
  78088. int nFrequency; // 音频采样频率
  78089. int nDepth; // 采样深度
  78090. DH_TALK_CODING_TYPE emCompressionType; // 音频编码类型
  78091. } NET_OUT_START_CHANNEL_INFO;
  78092. ///@brief CLIENT_TalkChannelSendData输入参数
  78093. typedef struct tagNET_TALK_CHANNEL_SENDDATA_IN
  78094. {
  78095. DWORD dwSize;
  78096. char *pSendBuf; // 需要发送的语音数据
  78097. int nSendBufLen; // 语音数据长度
  78098. } NET_TALK_CHANNEL_SENDDATA_IN;
  78099. ///@brief CLIENT_TalkChannelSendData输出参数
  78100. typedef struct tagNET_TALK_CHANNEL_SENDDATA_OUT
  78101. {
  78102. DWORD dwSize;
  78103. } NET_TALK_CHANNEL_SENDDATA_OUT;
  78104. ///@brief 对指定的通道进行广播语音
  78105. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartTalkChannel(LLONG lLoginID, const NET_IN_START_CHANNEL_INFO *pstInParam, NET_OUT_START_CHANNEL_INFO *pstOutParam, int nWaitTime);
  78106. ///@brief 对指定的通道发送语音数据
  78107. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TalkChannelSendData(LLONG lSpeakHandle, const NET_TALK_CHANNEL_SENDDATA_IN *pstInParam, NET_TALK_CHANNEL_SENDDATA_OUT *pstOutParam, int nWaitTime);
  78108. ///@brief 结束语音广播
  78109. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopTalkChannel(LLONG lSpeakHandle);
  78110. ///@brief +++++++++++++++++++++++++++++++++++++++++++++++++++++语音广播相关接口+++++++++++++++++++++++++++++++++++++++++++
  78111. ///@brief 初始化设备账户输入结构体
  78112. typedef struct tagNET_IN_INIT_DEVICE_ACCOUNT
  78113. {
  78114. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  78115. char szMac[DH_MACADDR_LEN]; // 设备mac地址
  78116. char szUserName[MAX_USER_NAME_LEN]; // 用户名
  78117. char szPwd[MAX_PWD_LEN]; // 设备密码
  78118. char szCellPhone[MAX_CELL_PHONE_NUMBER_LEN]; // 预留手机号
  78119. char szMail[MAX_MAIL_LEN]; // 预留邮箱
  78120. BYTE byInitStatus; // 此字段已经废弃
  78121. BYTE byPwdResetWay; // 设备支持的密码重置方式:搜索设备接口(CLIENT_SearchDevices、CLIENT_StartSearchDevices的回调函数、CLIENT_SearchDevicesByIPs)返回字段byPwdResetWay的值
  78122. // 该值的具体含义见 DEVICE_NET_INFO_EX 结构体,需要与设备搜索接口返回的 byPwdResetWay 值保持一致
  78123. // bit0 : 1-支持预留手机号,此时需要在szCellPhone数组中填入预留手机号(如果需要设置预留手机) ;
  78124. // bit1 : 1-支持预留邮箱,此时需要在szMail数组中填入预留邮箱(如果需要设置预留邮箱)
  78125. BYTE byReserved[2]; // 保留字段
  78126. }NET_IN_INIT_DEVICE_ACCOUNT;
  78127. ///@brief 初始化设备账户输出结构体
  78128. typedef struct tagNET_OUT_INIT_DEVICE_ACCOUNT
  78129. {
  78130. DWORD dwSize;// 结构体大小:初始化结构体时赋值
  78131. }NET_OUT_INIT_DEVICE_ACCOUNT;
  78132. ///@brief 初始化账户
  78133. CLIENT_NET_API BOOL CALL_METHOD CLIENT_InitDevAccount(const NET_IN_INIT_DEVICE_ACCOUNT* pInitAccountIn, NET_OUT_INIT_DEVICE_ACCOUNT* pInitAccountOut, DWORD dwWaitTime, char* szLocalIp);
  78134. ///@brief 根据设备IP初始化账户
  78135. CLIENT_NET_API BOOL CALL_METHOD CLIENT_InitDevAccountByIP(const NET_IN_INIT_DEVICE_ACCOUNT* pInitAccountIn, NET_OUT_INIT_DEVICE_ACCOUNT* pInitAccountOut, DWORD dwWaitTime, const char* szLocalIp,const char* szDeviceIP);
  78136. ///@brief CLIENT_InitDevSetLocalityConfig 输入参数
  78137. typedef struct tagNET_IN_INIT_DEVICE_SET_LOCALITY_CONFIG_INFO
  78138. {
  78139. DWORD dwSize; // 结构体大小
  78140. char szMac[40]; // 设备mac地址
  78141. char szCountry[3]; // 国家/地区
  78142. char szReserved[1]; // 字节对齐
  78143. EM_VIDEO_STANDARD emVideoStandard; // 视频制式
  78144. }NET_IN_INIT_DEVICE_SET_LOCALITY_CONFIG_INFO;
  78145. ///@brief CLIENT_InitDevSetLocalityConfig 输出参数
  78146. typedef struct tagNET_OUT_INIT_DEVICE_SET_LOCALITY_CONFIG_INFO
  78147. {
  78148. DWORD dwSize; // 结构体大小
  78149. }NET_OUT_INIT_DEVICE_SET_LOCALITY_CONFIG_INFO;
  78150. ///@brief 设置国家码,视频制式接口
  78151. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  78152. ///@param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  78153. ///@param[in] dwWaitTime 接口超时时间, 单位毫秒
  78154. ///@param[in] szLocalIp 本地IP
  78155. ///@return TRUE表示成功 FALSE表示失败
  78156. CLIENT_NET_API BOOL CALL_METHOD CLIENT_InitDevSetLocalityConfig(const NET_IN_INIT_DEVICE_SET_LOCALITY_CONFIG_INFO* pstuInParam, NET_OUT_INIT_DEVICE_SET_LOCALITY_CONFIG_INFO* pstuOutParam, DWORD dwWaitTime, char* szLocalIp);
  78157. ///@brief 开机向导流程入参
  78158. typedef struct tagNET_IN_INIT_DEVICE_ACCESS
  78159. {
  78160. DWORD dwSize; //结构体大小:初始化结构体时赋值
  78161. char szMac[DH_MACADDR_LEN]; // 设备mac地址
  78162. char szUserName[MAX_USER_NAME_LEN];// 账号名
  78163. char szPwd[MAX_PWD_LEN]; // 账号密码
  78164. BYTE byNetAccess; // 是否使能接入公网(Easy4IP/乐橙)0-不涉及,不处理1-关闭接入公网2-打开接入公网
  78165. BYTE byUpgradeCheck; // 是否打开在线升级自动检测0-不涉及,不处理1-关闭在线升级自动检测2-开启在线升级自动检测
  78166. BYTE byReserved[2]; // 保留字节
  78167. EM_VIDEO_STANDARD emVideoStandard; // 视频制式
  78168. }NET_IN_INIT_DEVICE_ACCESS;
  78169. ///@brief 开机向导流程出参
  78170. typedef struct tagNET_OUT_INIT_DEVICE_ACCESS
  78171. {
  78172. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  78173. }NET_OUT_INIT_DEVICE_ACCESS;
  78174. ///@brief 开机向导流程,接入公网、在线升级检测等功能
  78175. CLIENT_NET_API BOOL CALL_METHOD CLIENT_InitDevAccess(const NET_IN_INIT_DEVICE_ACCESS* pInitAccessIn, NET_OUT_INIT_DEVICE_ACCESS* pInitAccessOut, DWORD dwWaitTime, char* szLocalIp);
  78176. ///@brief 开机向导流程,接入公网、在线升级检测等功能
  78177. CLIENT_NET_API BOOL CALL_METHOD CLIENT_InitDevAccessByIp(const NET_IN_INIT_DEVICE_ACCESS* pInitAccessIn, NET_OUT_INIT_DEVICE_ACCESS* pInitAccessOut, DWORD dwWaitTime, char* szLocalIp, const char* szDeviceIP);
  78178. ///@brief 获取重置密码信息输入结构体
  78179. typedef struct tagNET_IN_DESCRIPTION_FOR_RESET_PWD
  78180. {
  78181. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  78182. char szMac[DH_MACADDR_LEN]; // 设备mac地址
  78183. char szUserName[MAX_USER_NAME_LEN]; // 用户名
  78184. BYTE byInitStatus; // 设备初始化状态:搜索设备接口(CLIENT_SearchDevices、CLIENT_StartSearchDevices的回调函数、CLIENT_SearchDevicesByIPs)返回字段byInitStatus的值
  78185. BYTE byReserved[3]; // 保留字段
  78186. }NET_IN_DESCRIPTION_FOR_RESET_PWD;
  78187. ///@brief 获取重置密码信息输出结构体
  78188. typedef struct tagNET_OUT_DESCRIPTION_FOR_RESET_PWD
  78189. {
  78190. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  78191. char szCellPhone[MAX_CELL_PHONE_NUMBER_LEN]; // 预留手机号
  78192. char szMailAddr[MAX_MAIL_LEN]; // 预留邮箱
  78193. char* pQrCode; // 二维码信息,用户分配内存(当前大小为360字节)
  78194. unsigned int nQrCodeLen; // 用户分配的二维码信息长度
  78195. unsigned int nQrCodeLenRet; // 设备返回的二维码信息长度
  78196. }NET_OUT_DESCRIPTION_FOR_RESET_PWD;
  78197. ///@brief 获取重置信息:手机号、邮箱、二维码信息
  78198. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDescriptionForResetPwd(const NET_IN_DESCRIPTION_FOR_RESET_PWD* pDescriptionIn, NET_OUT_DESCRIPTION_FOR_RESET_PWD* pDescriptionOut, DWORD dwWaitTime, char* szLocalIp);
  78199. ///@brief 重置密码输入结构体
  78200. typedef struct tagNET_IN_RESET_PWD
  78201. {
  78202. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  78203. char szMac[DH_MACADDR_LEN]; // 设备mac地址
  78204. char szUserName[MAX_USER_NAME_LEN]; // 用户名
  78205. char szPwd[MAX_PWD_LEN]; // 密码
  78206. char szSecurity[MAX_SECURITY_CODE_LEN]; // 平台发送到预留手机或邮箱中的安全码
  78207. BYTE byInitStaus; // 设备初始化状态:搜索设备接口(CLIENT_SearchDevices、CLIENT_StartSearchDevices的回调函数、CLIENT_SearchDevicesByIPs)返回字段byInitStatus的值
  78208. BYTE byPwdResetWay; // 设备支持的密码重置方式:搜索设备接口(CLIENT_SearchDevices、CLIENT_StartSearchDevices的回调函数、CLIENT_SearchDevicesByIPs)返回字段byPwdResetWay的值
  78209. BYTE byReserved[2]; // 保留字段
  78210. char szContact[MAX_CONTACT_LEN]; // 用户输入安全码需输入接收安全码的联系方式,如果bSetContact为TRUE,则该联系方式将作为预留联系方式
  78211. BOOL bSetContact; // 是否同意设置为预留手机号, TRUE:同意; FALSE:不同意
  78212. }NET_IN_RESET_PWD;
  78213. ///@brief 重置密码输出结构体
  78214. typedef struct tagNET_OUT_RESET_PWD
  78215. {
  78216. DWORD dwSize;// 结构体大小:初始化结构体时赋值
  78217. }NET_OUT_RESET_PWD;
  78218. ///@brief 重置密码
  78219. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ResetPwd(const NET_IN_RESET_PWD* pResetPwdIn, NET_OUT_RESET_PWD* pResetPwdOut, DWORD dwWaitTime, char* szLocalIp);
  78220. ///@brief 账户类型
  78221. typedef enum tagEM_ACCOUNT_TYPE
  78222. {
  78223. EM_ACCOUNT_TYPE_UNKNOWN, // 未知的
  78224. EM_ACCOUNT_TYPE_SDK, // sdk账户体系
  78225. EM_ACCOUNT_TYPE_WEB, // web账户体系
  78226. }EM_ACCOUNT_TYPE;
  78227. ///@brief 初始化账户入参
  78228. typedef struct tagNET_IN_INIT_ACCOUNT
  78229. {
  78230. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  78231. char szUser[MAX_USER_NAME_LEN]; // 用户名
  78232. char szPwd[MAX_PWD_LEN]; // 密码
  78233. char szMac[DH_MACADDR_LEN]; // 设备的Mac地址
  78234. EM_ACCOUNT_TYPE emAccountType; // 账号类型
  78235. }NET_IN_INIT_ACCOUNT;
  78236. ///@brief 初始化账户出参
  78237. typedef struct tagNET_OUT_INIT_ACCOUNT
  78238. {
  78239. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  78240. }NET_OUT_INIT_ACCOUNT;
  78241. ///@brief 重置WEB密码入参
  78242. typedef struct tagNET_IN_REST_WEB_PWD
  78243. {
  78244. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  78245. char szWebUser[MAX_USER_NAME_LEN]; // web用户名
  78246. char szWebPwd[MAX_PWD_LEN]; // 重置后的web密码
  78247. }NET_IN_REST_WEB_PWD;
  78248. ///@brief 重置WEB密码出参
  78249. typedef struct tagNET_OUT_REST_WEB_PWD
  78250. {
  78251. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  78252. }NET_OUT_REST_WEB_PWD;
  78253. ///@brief 初始化账户
  78254. CLIENT_NET_API BOOL CALL_METHOD CLIENT_InitAccount(const NET_IN_INIT_ACCOUNT* pInitAccountIn, NET_OUT_INIT_ACCOUNT* pInitAccountOut, int nWaitTime, char* szLocalIp);
  78255. ///@brief 指定设备IP进行账号初始化
  78256. CLIENT_NET_API BOOL CALL_METHOD CLIENT_InitAccountByIP( const NET_IN_INIT_ACCOUNT* pInitAccountIn, NET_OUT_INIT_ACCOUNT* pInitAccountOut, int nWaitTime, char* szLocalIp, const char* szDeviceIP);
  78257. ///@brief 重置web账户密码
  78258. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ResetWebPwd(LLONG lLoginID,const NET_IN_REST_WEB_PWD* pstInParam, NET_OUT_REST_WEB_PWD* pstOutParam, int nWaitTime);
  78259. ///@brief 校验安全码输入结构体
  78260. typedef struct tagNET_IN_CHECK_AUTHCODE
  78261. {
  78262. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  78263. char szMac[DH_MACADDR_LEN]; // 设备mac地址
  78264. char szSecurity[MAX_SECURITY_CODE_LEN]; // 平台发送到预留手机或邮箱中的安全码
  78265. char szContact[MAX_CONTACT_LEN]; // 用户输入安全码需输入接收安全码的联系方式
  78266. }NET_IN_CHECK_AUTHCODE;
  78267. ///@brief 校验安全码输出结构体
  78268. typedef struct tagNET_OUT_CHECK_AUTHCODE
  78269. {
  78270. DWORD dwSize;//结构体大小:初始化结构体时赋值
  78271. }NET_OUT_CHECK_AUTHCODE;
  78272. ///@brief 检验安全码
  78273. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CheckAuthCode(const NET_IN_CHECK_AUTHCODE* pCheckAuthCodeIn, NET_OUT_CHECK_AUTHCODE* pCheckAuthCodeOut, DWORD dwWaitTime, char* szLocalIp);
  78274. ///@brief 设置360全景运动相机媒体工作模式入参
  78275. typedef struct tagNET_IN_SET_EVEREST360_MEDIAMODE
  78276. {
  78277. DWORD dwSize;
  78278. UINT nMediaMode; // 相机工作模式,0:抓图模式,1:录像模式,2:Live模式
  78279. }NET_IN_SET_EVEREST360_MEDIAMODE;
  78280. ///@brief 设置360全景运动相机媒体工作模式出参
  78281. typedef struct tagNET_OUT_SET_EVEREST360_MEDIAMODE
  78282. {
  78283. DWORD dwSize;
  78284. }NET_OUT_SET_EVEREST360_MEDIAMODE;
  78285. ///@brief 设置360全景运动相机媒体工作模式
  78286. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetEverest360MediaMode(LLONG lLoginID, const NET_IN_SET_EVEREST360_MEDIAMODE *pstInParam, NET_OUT_SET_EVEREST360_MEDIAMODE *pstOutParam, int nWaitTime);
  78287. ///@brief CLIENT_GetPwdSpecification 输入结构体
  78288. typedef struct tagNET_IN_PWD_SPECI
  78289. {
  78290. DWORD dwSize; // 结构体大小
  78291. char szMac[DH_MACADDR_LEN]; // 设备mac地址
  78292. }NET_IN_PWD_SPECI;
  78293. ///@brief CLIENT_GetPwdSpecification 输出结构体
  78294. typedef struct tagNET_OUT_PWD_SPECI
  78295. {
  78296. DWORD dwSize; // 结构体大小
  78297. unsigned int nMaxPwdLen; // 最大密码长度
  78298. unsigned int nMinPwdLen; // 最小密码长度
  78299. char szType[MAX_PWD_BASIC_CHARS_ARRAY_LEN]; // 支持的基本字符类型列表:其中Number数字;Lower小写字母;Upper大写字母,字符串形式:"Number,Lower,Upper"
  78300. char szCharList[MAX_PWD_SPEC_CHARS_ARRAY_LEN]; // 支持的特殊字符,如"~!@#$%^"
  78301. int nCombine; // 密码组合要求:0-无特殊要求;1-必须有特殊字符,其它不限;2-必须包含2种类型以上(数字、大写、小写、特殊字符)
  78302. }NET_OUT_PWD_SPECI;
  78303. ///@brief 获取密码规范
  78304. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPwdSpecification(const NET_IN_PWD_SPECI* pPwdSpeciIn, NET_OUT_PWD_SPECI* pPwdSpeciOut, DWORD dwWaitTime, char* szLocalIp);
  78305. ///@brief CLIENT_GetSecurityEncryptInfo入参
  78306. typedef struct tagNET_IN_GET_SECURITY_ENCRYPT_INFO
  78307. {
  78308. DWORD dwSize; // 结构体大小
  78309. }NET_IN_GET_SECURITY_ENCRYPT_INFO;
  78310. ///@brief CLIENT_GetSecurityEncryptInfo出参
  78311. typedef struct tagNET_OUT_GET_SECURITY_ENCRYPT_INFO
  78312. {
  78313. DWORD dwSize; // 结构体大小
  78314. char szCipher[32]; // 设备支持的加密方法
  78315. }NET_OUT_GET_SECURITY_ENCRYPT_INFO;
  78316. ///@brief 获取支持的加密算法/公钥
  78317. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSecurityEncryptInfo(LLONG lLoginID, const NET_IN_GET_SECURITY_ENCRYPT_INFO *pstInParam, NET_OUT_GET_SECURITY_ENCRYPT_INFO *pstOutParam, int nWaitTime);
  78318. ///@brief CLIENT_SetLowRateWPANPower入参
  78319. typedef struct tagNET_IN_SET_LOWRATEWPAN_POWER
  78320. {
  78321. DWORD dwSize; // 结构体大小
  78322. int nPower; // 发射功率
  78323. char szSmartLockNum[MAX_COMMON_STRING_32]; // 智能锁序列号
  78324. }NET_IN_SET_LOWRATEWPAN_POWER;
  78325. ///@brief CLIENT_SetLowRateWPANPower出参
  78326. typedef struct tagNET_OUT_SET_LOWRATEWPAN_POWER
  78327. {
  78328. DWORD dwSize; // 结构体大小
  78329. }NET_OUT_SET_LOWRATEWPAN_POWER;
  78330. ///@brief 设置无线门锁发射功率
  78331. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetLowRateWPANPower(LLONG lLoginID, const NET_IN_SET_LOWRATEWPAN_POWER *pstInParam, NET_OUT_SET_LOWRATEWPAN_POWER *pstOutParam, int nWaitTime);
  78332. ///@brief 门禁控制器操作类型
  78333. typedef enum tagNET_EM_ACCESS_CTL_MANAGER
  78334. {
  78335. NET_EM_ACCESS_CTL_MANAGER_ADDDEVICE, // 添加单个分控器, 对应结构体 pstInParam = NET_IN_ACCESS_CTL_MANAGER_ADDDEVICE, pstOutParam = NET_OUT_ACCESS_CTL_MANAGER_ADDDEVICE
  78336. NET_EM_ACCESS_CTL_MANAGER_MODIFYDEVICE, // 修改分控器名称, 对应结构体 pstInParam = NET_IN_ACCESS_CTL_MANAGER_MODIFYDEVICE, pstOutParam = NET_OUT_ACCESS_CTL_MANAGER_MODIFYDEVICE
  78337. NET_EM_ACCESS_CTL_MANAGER_REMOVEDEVICE, // 删除分控器, 对应结构体 pstInParam = NET_IN_ACCESS_CTL_MANAGER_REMOVEDEVICE, pstOutParam = NET_OUT_ACCESS_CTL_MANAGER_REMOVEDEVICE
  78338. NET_EM_ACCESS_CTL_GETSUBCONTROLLER_INFO, // 获取分控器信息, 对应结构体 pstInParam = NET_IN_GET_SUB_CONTROLLER_INFO, pstOutParam = NET_OUT_GET_SUB_CONTROLLER_INFO
  78339. NET_EM_ACCESS_CTL_GETSUBCONTROLLER_STATE, // 获取分控器状态, 对应结构体 pstInParam = NET_IN_GET_SUB_CONTROLLER_STATE, pstOutParam = NET_OUT_GET_SUB_CONTROLLER_STATE
  78340. NET_EM_ACCESS_CTL_SET_REPEAT_ENTERROUTE, // 设置反潜路径信息, 对应结构体 pstInparam = NET_IN_SET_REPEAT_ENTERROUTE, pstOutParam = NET_OUT_SET_REPEAT_ENTERROUTE
  78341. NET_EM_ACCESS_CTL_GET_REPEAT_ENTERROUTE, // 获取反潜路径信息, 对应结构体 pstInparam = NET_IN_GET_REPEAT_ENTERROUTE, pstOutParam = NET_OUT_GET_REPEAT_ENTERROUTE
  78342. NET_EM_ACCESS_CTL_SET_ABLOCK_ROUTE, // 设置AB互锁路径信息, 对应结构体 pstInparam = NET_IN_SET_ABLOCK_ROUTE, pstOutParam = NET_OUT_SET_ABLOCK_ROUTE
  78343. NET_EM_ACCESS_CTL_GET_ABLOCK_ROUTE, // 获取AB互锁路径信息, 对应结构体 pstInparam = NET_IN_GET_ABLOCK_ROUTE, pstOutParam = NET_OUT_GET_ABLOCK_ROUTE
  78344. NET_EM_ACCESS_CTL_GET_LOGSTATUS, // 获取日志同步状态,对应结构体 pstInparam = NET_IN_GET_LOGSTATUS, pstOutParam = NET_OUT_GET_LOGSTATUS
  78345. NET_EM_ACCESS_CTL_SYNCHRO_OFFLINE_LOG, // 同步离线日志, 对应结构体 pstInparam = NET_IN_SYNCHRO_OFFLINE_LOG, pstOutParam = NET_OUT_SYNCHRO_OFFLINE_LOG
  78346. NET_EM_ACCESS_CTL_SYNCHRO_TIME, // 同步分控器时间,对应结构体 pstInparam = NET_IN_SYNCHRO_CONTROLLER_TIME, pstOutParam = NET_OUT_SYNCHRO_CONTROLLER_TIME
  78347. NET_EM_ACCESS_CTL_SET_QRCODEDECODE_INFO, // 设置二维码的解码信息, 对应结构体 pstInparam = NET_IN_SET_QRCODE_DECODE_INFO, pstOutParam = NET_OUT_SET_QRCODE_DECODE_INFO
  78348. }NET_EM_ACCESS_CTL_MANAGER;
  78349. ///@brief 添加分控器入参
  78350. typedef struct tagNET_IN_ACCESS_CTL_MANAGER_ADDDEVICE
  78351. {
  78352. DWORD dwSize;
  78353. int nSubControllerID; // 分控器ID,取值范围 1~255
  78354. char szSubControllerName[MAX_COMMON_STRING_128]; // 分控器名称
  78355. }NET_IN_ACCESS_CTL_MANAGER_ADDDEVICE;
  78356. ///@brief 添加分控器出参
  78357. typedef struct tagNET_OUT_ACCESS_CTL_MANAGER_ADDDEVICE
  78358. {
  78359. DWORD dwSize;
  78360. int nErrorCode; // 错误码0- 添加成功, 1-重复添加,2-已满,3-其他类型失败
  78361. }NET_OUT_ACCESS_CTL_MANAGER_ADDDEVICE;
  78362. ///@brief 修改分控器入参
  78363. typedef struct tagNET_IN_ACCESS_CTL_MANAGER_MODIFYDEVICE
  78364. {
  78365. DWORD dwSize;
  78366. int nSubControllerID; // 分控器ID,取值范围 0~255,0为本地
  78367. char szSubControllerName[MAX_COMMON_STRING_128]; // 分控器名称
  78368. }NET_IN_ACCESS_CTL_MANAGER_MODIFYDEVICE;
  78369. ///@brief 修改分控器出参
  78370. typedef struct tagNET_OUT_ACCESS_CTL_MANAGER_MODIFYDEVICE
  78371. {
  78372. DWORD dwSize;
  78373. }NET_OUT_ACCESS_CTL_MANAGER_MODIFYDEVICE;
  78374. ///@brief 删除分控器入参
  78375. typedef struct tagNET_IN_ACCESS_CTL_MANAGER_REMOVEDEVICE
  78376. {
  78377. DWORD dwSize;
  78378. int nSubControllerID[MAX_ACCESSSUBCONTROLLER_NUM]; // 分控器ID, 取值范围 1~255
  78379. int nSubControllerNum; // 需要删除的分控器数量
  78380. }NET_IN_ACCESS_CTL_MANAGER_REMOVEDEVICE;
  78381. ///@brief 删除返回结果
  78382. typedef struct tagNET_REMOVEDEVICE_RESULT
  78383. {
  78384. int nSubControllerID; // 分控器ID
  78385. int nErrorCode; // 返回结果, 0-删除成功,1-删除失败 2-未分配
  78386. BYTE byReserved[128];
  78387. }NET_REMOVEDEVICE_RESULT;
  78388. ///@brief 删除分控器出参
  78389. typedef struct tagNET_OUT_ACCESS_CTL_MANAGER_REMOVEDEVICE
  78390. {
  78391. DWORD dwSize;
  78392. int nResultNum;
  78393. NET_REMOVEDEVICE_RESULT stuResult[MAX_ACCESSSUBCONTROLLER_NUM];
  78394. }NET_OUT_ACCESS_CTL_MANAGER_REMOVEDEVICE;
  78395. ///@brief 获取分控器信息入参
  78396. typedef struct tagNET_IN_GET_SUB_CONTROLLER_INFO
  78397. {
  78398. DWORD dwSize;
  78399. int nSubControllerID[MAX_ACCESSSUBCONTROLLER_NUM]; // 分控器ID, 取值范围 -1~255, -1:获取所有,0:获取本地,1~255:外置分控
  78400. int nSubControllerNum; // 需要查询的分控器数量
  78401. }NET_IN_GET_SUB_CONTROLLER_INFO;
  78402. ///@brief 单双向
  78403. typedef enum tagNET_EM_ACCESS_PROPERTY
  78404. {
  78405. NET_EM_ACCESS_PROPERTY_UNKNOWN, // 未知
  78406. NET_EM_ACCESS_PROPERTY_BIDIRECT, // 双向门禁
  78407. NET_EM_ACCESS_PROPERTY_UNIDIRECT, // 单向门径
  78408. }NET_ACCESS_PROPERTY;
  78409. ///@brief 读卡器信息
  78410. typedef struct tagNET_CARDREAD_INFO
  78411. {
  78412. int nDoor; // 门序号
  78413. int nReadNum; // 读卡器数量
  78414. char szReadID[MAX_ACCESS_READER_NUM][DH_COMMON_STRING_32]; // 读卡器ID
  78415. BYTE byReserved[64];
  78416. }NET_CARDREAD_INFO;
  78417. ///@brief 分控器信息
  78418. typedef struct tagNET_SUB_CONTROLLER_INFO
  78419. {
  78420. int nSubControllerID; // 分控器ID,取值范围 0~255,0为本地
  78421. char szSubControllerName[MAX_COMMON_STRING_128]; // 分控器名称
  78422. NET_ACCESS_PROPERTY emProperty; // 门禁单双向
  78423. char szDeviceType[MAX_COMMON_STRING_128]; // 分控器型号
  78424. char szVesion[MAX_COMMON_STRING_128]; // 分控器版本号
  78425. int nDoorNum; // 门数量
  78426. NET_CARDREAD_INFO stuReaderInfo[MAX_ACCESSDOOR_NUM]; // 门对应的读卡器号
  78427. BYTE byReserved[128];
  78428. }NET_SUB_CONTROLLER_INFO;
  78429. ///@brief 获取分控器信息出参
  78430. typedef struct tagNET_OUT_GET_SUB_CONTROLLER_INFO
  78431. {
  78432. DWORD dwSize;
  78433. NET_SUB_CONTROLLER_INFO stuSubControllerInfo[MAX_ACCESSSUBCONTROLLER_NUM]; // 分控器信息
  78434. int nRetNum; // 查询到的分控器数量
  78435. }NET_OUT_GET_SUB_CONTROLLER_INFO;
  78436. ///@brief 获取分控器状态入参
  78437. typedef struct tagNET_IN_GET_SUB_CONTROLLER_STATE
  78438. {
  78439. DWORD dwSize;
  78440. int nSubControllerID[MAX_ACCESSSUBCONTROLLER_NUM]; // 分控器ID, 取值范围 -1~255, -1:获取所有,0:获取本地,1~255:外置分控
  78441. int nSubControllerNum; // 需要查询的分控器数量
  78442. }NET_IN_GET_SUB_CONTROLLER_STATE;
  78443. ///@brief 分控器状态信息
  78444. typedef struct tagNET_SUB_CONTROLLER_STATE
  78445. {
  78446. int nSubControllerID; // 分控器ID
  78447. int nState; // 0:离线 1:在线 2:未分配
  78448. BYTE byReserved[128];
  78449. }NET_SUB_CONTROLLER_STATE;
  78450. ///@brief 获取分控器状态出参
  78451. typedef struct tagNET_OUT_GET_SUB_CONTROLLER_STATE
  78452. {
  78453. DWORD dwSize;
  78454. NET_SUB_CONTROLLER_STATE stuSubControllerState[MAX_ACCESSSUBCONTROLLER_NUM]; // 分控器信息
  78455. int nRetNum; // 查询到的分控器数量
  78456. }NET_OUT_GET_SUB_CONTROLLER_STATE;
  78457. ///@brief 反潜路径点信息
  78458. typedef struct tagNET_POINT_READER_INFO
  78459. {
  78460. int nReaderNum; // 反潜点的读卡器数量
  78461. char szReaderID[MAX_ACCESS_READER_NUM][DH_COMMON_STRING_32]; // 读卡器ID
  78462. BYTE byReserved[128];
  78463. }NET_POINT_READER_INFO;
  78464. ///@brief 设置反潜路径入参
  78465. typedef struct tagNET_IN_SET_REPEAT_ENTERROUTE
  78466. {
  78467. DWORD dwSize;
  78468. UINT nIndex; // 反潜路径索引号
  78469. int nPointNum; // 路径上的点数量
  78470. NET_POINT_READER_INFO stuPointInfo[MAX_ACCESS_POINT_NUM]; // 点信息
  78471. int nTimeSection; // 门禁时间段配置AccessTimeSchedule下标,详细请查询dhconfigsdk.h
  78472. BOOL bFlag; // 是否启用
  78473. char szRouteName[MAX_COMMON_STRING_128]; // 路径名称
  78474. }NET_IN_SET_REPEAT_ENTERROUTE;
  78475. ///@brief 设置反潜路径出参
  78476. typedef struct tagNET_OUT_SET_REPEAT_ENTERROUTE
  78477. {
  78478. DWORD dwSize;
  78479. }NET_OUT_SET_REPEAT_ENTERROUTE;
  78480. ///@brief 获取反潜路径入参
  78481. typedef struct tagNET_IN_GET_REPEAT_ENTERROUTE
  78482. {
  78483. DWORD dwSize;
  78484. UINT nIndex; // 反潜路径索引号
  78485. }NET_IN_GET_REPEAT_ENTERROUTE;
  78486. ///@brief 获取反潜路径出参
  78487. typedef struct tagNET_OUT_GET_REPEAT_ENTERROUTE
  78488. {
  78489. DWORD dwSize;
  78490. int nPointNum; // 路径上的点数量
  78491. NET_POINT_READER_INFO stuPointInfo[MAX_ACCESS_POINT_NUM]; // 点信息
  78492. int nTimeSection; // 门禁时间段配置AccessTimeSchedule下标,详细请查询dhconfigsdk.h
  78493. BOOL bFlag; // 是否启用
  78494. char szRouteName[MAX_COMMON_STRING_128]; // 路径名称
  78495. }NET_OUT_GET_REPEAT_ENTERROUTE;
  78496. ///@brief AB互锁门信息
  78497. typedef struct tagNET_POINT_DOOR_INFO
  78498. {
  78499. int nDoorNum; // AB互锁门数量
  78500. int nDoorID[MAX_ACCESSDOOR_NUM]; // AB互锁门组合
  78501. BYTE byReserved[128];
  78502. }NET_POINT_DOOR_INFO;
  78503. ///@brief 设置AB互锁入参
  78504. typedef struct tagNET_IN_SET_ABLOCK_ROUTE
  78505. {
  78506. DWORD dwSize;
  78507. UINT nIndex; // AB互锁路径索引号
  78508. int nPointNum; // AB互锁的点数量
  78509. NET_POINT_DOOR_INFO stuPointInfo[MAX_ACCESS_POINT_NUM]; // 点信息
  78510. int nTimeSection; // 门禁时间段配置AccessTimeSchedule下标,详细请查询dhconfigsdk.h
  78511. BOOL bFlag; // 是否启用
  78512. char szRouteName[MAX_COMMON_STRING_128]; // AB互锁路线名称
  78513. }NET_IN_SET_ABLOCK_ROUTE;
  78514. ///@brief 设置AB互锁出参
  78515. typedef struct tagNET_OUT_SET_ABLOCK_ROUTE
  78516. {
  78517. DWORD dwSize;
  78518. }NET_OUT_SET_ABLOCK_ROUTE;
  78519. ///@brief 获取AB互锁路径信息入参
  78520. typedef struct tagNET_IN_GET_ABLOCK_ROUTE
  78521. {
  78522. DWORD dwSize;
  78523. UINT nIndex; // AB互锁路径索引号
  78524. }NET_IN_GET_ABLOCK_ROUTE;
  78525. ///@brief 获取AB互锁路径信息出参
  78526. typedef struct tagNET_OUT_GET_ABLOCK_ROUTE
  78527. {
  78528. DWORD dwSize;
  78529. int nPointNum; // AB互锁的点数量
  78530. NET_POINT_DOOR_INFO stuPointInfo[MAX_ACCESS_POINT_NUM]; // 点信息
  78531. int nTimeSection; // 门禁时间段配置AccessTimeSchedule下标,详细请查询dhconfigsdk.h
  78532. BOOL bFlag; // 是否启用
  78533. char szRouteName[MAX_COMMON_STRING_128]; // AB互锁路线名称
  78534. }NET_OUT_GET_ABLOCK_ROUTE;
  78535. ///@brief 获取离线日志状态入参
  78536. typedef struct tagNET_IN_GET_LOGSTATUS
  78537. {
  78538. DWORD dwSize;
  78539. int nControllerID; // 分控器ID 范围1 ~255
  78540. }NET_IN_GET_LOGSTATUS;
  78541. ///@brief 获取离线日志状态出参
  78542. typedef struct tagNET_OUT_GET_LOGSTATUS
  78543. {
  78544. DWORD dwSize;
  78545. BOOL bsynchronize; // true 正在同步 false 没有同步
  78546. }NET_OUT_GET_LOGSTATUS;
  78547. ///@brief 同步离线日志入参
  78548. typedef struct tagNET_IN_SYNCHRO_OFFLINE_LOG
  78549. {
  78550. DWORD dwSize;
  78551. int nControllerID; // 分控器ID 范围0 ~255
  78552. }NET_IN_SYNCHRO_OFFLINE_LOG;
  78553. ///@brief 同步离线日志出参
  78554. typedef struct tagNET_OUT_SYNCHRO_OFFLINE_LOG
  78555. {
  78556. DWORD dwSize;
  78557. }NET_OUT_SYNCHRO_OFFLINE_LOG;
  78558. ///@brief 同步分控器时间入参
  78559. typedef struct tagNET_IN_SYNCHRO_CONTROLLER_TIME
  78560. {
  78561. DWORD dwSize;
  78562. int nSubControllerID[MAX_ACCESSSUBCONTROLLER_NUM]; // 分控器ID, 取值范围 -1~255, -1:获取所有,0:获取本地,1~255:外置分控
  78563. int nSubControllerNum; // 同步的分控器数量
  78564. }NET_IN_SYNCHRO_CONTROLLER_TIME;
  78565. ///@brief 同步分控器时间出参
  78566. typedef struct tagNET_OUT_SYNCHRO_CONTROLLER_TIME
  78567. {
  78568. DWORD dwSize;
  78569. int nSubControllerID[MAX_ACCESSSUBCONTROLLER_NUM]; // 分控器信息
  78570. int nRetNum; // 返回失败的分控器数量, 0表示全部成功
  78571. }NET_OUT_SYNCHRO_CONTROLLER_TIME;
  78572. ///@brief 使用的加密算法
  78573. typedef enum tagNET_ENUM_QRCODE_CIPHER
  78574. {
  78575. NET_ENUM_QRCODE_CIPHER_UNKNOWN,
  78576. NET_ENUM_QRCODE_CIPHER_AES256, // AES-256
  78577. }NET_ENUM_QRCODE_CIPHER;
  78578. ///@brief 设置二维码的解码信息入参
  78579. typedef struct tagNET_IN_SET_QRCODE_DECODE_INFO
  78580. {
  78581. DWORD dwSize;
  78582. NET_ENUM_QRCODE_CIPHER emCipher; // 加密方式
  78583. char szKey[33]; // 秘钥
  78584. BYTE byReserved[3]; // 字节对齐
  78585. }NET_IN_SET_QRCODE_DECODE_INFO;
  78586. ///@brief 设置二维码的解码信息出参
  78587. typedef struct tagNET_OUT_SET_QRCODE_DECODE_INFO
  78588. {
  78589. DWORD dwSize;
  78590. }NET_OUT_SET_QRCODE_DECODE_INFO;
  78591. ///@brief 设置门禁安全等级入参
  78592. typedef struct tagNET_IN_SET_SAFE_LEVEL
  78593. {
  78594. DWORD dwSize; //结构体大小
  78595. BYTE byLevel; //安全等级:1.安全 2.消防 3.紧急
  78596. BYTE byReserved[3]; //字节对齐
  78597. }NET_IN_SET_SAFE_LEVEL;
  78598. ///@brief 设置门禁安全等级出参
  78599. typedef struct tagNET_OUT_SET_SAFE_LEVEL
  78600. {
  78601. DWORD dwSize;
  78602. }NET_OUT_SET_SAFE_LEVEL;
  78603. ///@brief 门禁控制器操作接口
  78604. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateAccessControlManager(LLONG lLoginID, NET_EM_ACCESS_CTL_MANAGER emtype, const void *pstInParam, void *pstOutParam, int nWaitTime);
  78605. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  78606. /////////////////////////////////////////////RTMPManager start///////////////////////////////////////////////////////
  78607. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  78608. ///@brief RTMP推流操作类型
  78609. typedef enum tagNET_EM_RTMP_MANAGER_OPER_TYPE
  78610. {
  78611. NET_EM_RTMP_MANAGER_OPER_TYPE_GETCAPS, // 获取设备RTMP推流能力, 对应结构体 pstInParam = NET_IN_RTMP_MANAGER_GETCAPS, pstOutParam = NET_OUT_RTMP_MANAGER_GETCAPS
  78612. NET_EM_RTMP_MANAGER_OPER_TYPE_ADD, // 添加推流地址, 对应结构体 pstInParam = NET_IN_RTMP_MANAGER_ADD, pstOutParam = NET_OUT_RTMP_MANAGER_ADD
  78613. NET_EM_RTMP_MANAGER_OPER_TYPE_REMOVE, // 删除推流地址, 对应结构体 pstInParam = NET_IN_RTMP_MANAGER_REMOVE, pstOutParam = NET_OUT_RTMP_MANAGER_REMOVE
  78614. NET_EM_RTMP_MANAGER_OPER_TYPE_START, // 启动推流, 对应结构体 pstInParam = NET_IN_RTMP_MANAGER_START, pstOutParam = NET_OUT_RTMP_MANAGER_START
  78615. NET_EM_RTMP_MANAGER_OPER_TYPE_STOP, // 停止推流, 对应结构体 pstInParam = NET_IN_RTMP_MANAGER_STOP, pstOutParam = NET_OUT_RTMP_MANAGER_STOP
  78616. NET_EM_RTMP_MANAGER_OPER_TYPE_PAUSE, // 暂停推流,只对回放流有效, 对应结构体 pstInparam = NET_IN_RTMP_MANAGER_PAUSE, pstOutParam = NET_OUT_RTMP_MANAGER_PAUSE
  78617. NET_EM_RTMP_MANAGER_OPER_TYPE_RESUME, // 恢复推流,只对回放流有效, 对应结构体 pstInparam = NET_IN_RTMP_MANAGER_RESUME, pstOutParam = NET_OUT_RTMP_MANAGER_RESUME
  78618. NET_EM_RTMP_MANAGER_OPER_TYPE_SET_SPEED, // 设置倍速推流,只对回放流有效, 对应结构体 pstInparam = NET_IN_RTMP_MANAGER_SET_SPEED, pstOutParam = NET_OUT_RTMP_MANAGER_SET_SPEED
  78619. }NET_EM_RTMP_MANAGER_OPER_TYPE;
  78620. ///@brief 获取设备RTMP推流能力入参
  78621. typedef struct tagNET_IN_RTMP_MANAGER_GETCAPS
  78622. {
  78623. DWORD dwSize; // 结构体大小
  78624. }NET_IN_RTMP_MANAGER_GETCAPS;
  78625. ///@brief 获取设备RTMP推流能力出参
  78626. typedef struct tagNET_OUT_RTMP_MANAGER_GETCAPS
  78627. {
  78628. DWORD dwSize; // 结构体大小
  78629. UINT nMaxLive; // 最大实时流推流通道数
  78630. UINT nMaxRecord; // 最大录像流推流通道数
  78631. }NET_OUT_RTMP_MANAGER_GETCAPS;
  78632. ///@brief 添加推流地址类型
  78633. typedef enum tagNET_EM_RTMP_MANAGER_ADD_TYPE
  78634. {
  78635. NET_EM_RTMP_MANAGER_ADD_TYPE_UNKNOWN = -1, // 未知
  78636. NET_EM_RTMP_MANAGER_ADD_TYPE_LIVE_STREAM, // 实时流
  78637. NET_EM_RTMP_MANAGER_ADD_TYPE_RECORD_STREAM, // 回放流
  78638. }NET_EM_RTMP_MANAGER_ADD_TYPE;
  78639. ///@brief 码流类型
  78640. typedef enum tagNET_EM_RTMP_MANAGER_STREAM_TYPE
  78641. {
  78642. NET_EM_RTMP_MANAGER_STREAM_TYPE_UNKNOWN = -1, // 未知
  78643. NET_EM_RTMP_MANAGER_STREAM_TYPE_MAINCODE_STREAM, // 主码流
  78644. NET_EM_RTMP_MANAGER_STREAM_TYPE_SECONDARYCODE_STREAM1, // 辅码流1
  78645. NET_EM_RTMP_MANAGER_STREAM_TYPE_SECONDARYCODE_STREAM2, // 辅码流2
  78646. }NET_EM_RTMP_MANAGER_STREAM_TYPE;
  78647. ///@brief Type为0表示实时流时,需要填写
  78648. typedef struct tagNET_RTMP_MANAGER_LIVE_STREAM
  78649. {
  78650. int nChannel; // 通道号
  78651. NET_EM_RTMP_MANAGER_STREAM_TYPE emStreamType; // 码流类型
  78652. BYTE byReserved[1024]; // 预留字节
  78653. }NET_RTMP_MANAGER_LIVE_STREAM;
  78654. ///@brief Type为1表示回放流时,需要填写
  78655. typedef struct tagNET_RTMP_MANAGER_RECORD_STREAM
  78656. {
  78657. char szFilePath[260]; // 录像文件路径
  78658. char szStartTime[20]; // 录像开始时间
  78659. char szEndTime[20]; // 录像结束时间
  78660. int nChannel; // 通道号
  78661. NET_EM_RTMP_MANAGER_STREAM_TYPE emStreamType; // 码流类型,默认为主码流
  78662. BYTE byReserved[1024]; // 预留字节
  78663. }NET_RTMP_MANAGER_RECORD_STREAM;
  78664. ///@brief 添加推流地址入参
  78665. typedef struct tagNET_IN_RTMP_MANAGER_ADD
  78666. {
  78667. DWORD dwSize; // 结构体大小
  78668. NET_EM_RTMP_MANAGER_ADD_TYPE emType; // 添加推流地址类型
  78669. NET_RTMP_MANAGER_LIVE_STREAM stuLiveStream; // Type为0表示实时流时,需要填写
  78670. NET_RTMP_MANAGER_RECORD_STREAM stuRecordStream; // Type为1表示回放流时,需要填写
  78671. char szUrl[512]; // 添加推流地址
  78672. }NET_IN_RTMP_MANAGER_ADD;
  78673. ///@brief Add 表示错误码
  78674. typedef enum tagNET_EM_RTMP_MANAGER_ADD_ERRCODE
  78675. {
  78676. NET_EM_RTMP_MANAGER_ADD_ERRCODE_UNKNOWN = -1, // 未知
  78677. NET_EM_RTMP_MANAGER_ADD_ERRCODE_NOERROR, // 无错误
  78678. NET_EM_RTMP_MANAGER_ADD_ERRCODE_LIVECHANNEL_NOT_ONLINE, // 实时流通道不在线
  78679. NET_EM_RTMP_MANAGER_ADD_ERRCODE_RECORDVIDEO_NOT_FOUND, // 回放流录像查不到
  78680. NET_EM_RTMP_MANAGER_ADD_ERRCODE_EXCEED_MAX_LIVECHANNEL, // 超过最大实时流推流通道限制
  78681. NET_EM_RTMP_MANAGER_ADD_ERRCODE_EXCEED_MAX_RECORDCHANNEL, // 超过最大回放流推流通道限制
  78682. NET_EM_RTMP_MANAGER_ADD_ERRCODE_OTHER_ERRORS, // 其他错误
  78683. }NET_EM_RTMP_MANAGER_ADD_ERRCODE;
  78684. ///@brief 添加推流地址出参
  78685. typedef struct tagNET_OUT_RTMP_MANAGER_ADD
  78686. {
  78687. DWORD dwSize; // 结构体大小
  78688. UINT nPushId; // 添加成功返回推流ID,失败时填0
  78689. NET_EM_RTMP_MANAGER_ADD_ERRCODE emErrCode; // Add 表示错误码
  78690. }NET_OUT_RTMP_MANAGER_ADD;
  78691. ///@brief 删除推流地址入参
  78692. typedef struct tagNET_IN_RTMP_MANAGER_REMOVE
  78693. {
  78694. DWORD dwSize; // 结构体大小
  78695. UINT nPushId; // 要删除的推流ID
  78696. }NET_IN_RTMP_MANAGER_REMOVE;
  78697. ///@brief 错误码
  78698. typedef enum tagNET_EM_RTMP_MANAGER_ERRCODE
  78699. {
  78700. NET_EM_RTMP_MANAGER_ERRCODE_UNKNOWN, // 未知
  78701. NET_EM_RTMP_MANAGER_ERRCODE_NOERROR, // 无错误
  78702. NET_EM_RTMP_MANAGER_ERRCODE_STREAMID_NOT_EXIST, // 推流ID不存在
  78703. NET_EM_RTMP_MANAGER_ERRCODE_OTHER_ERRORS, // 其他错误
  78704. }NET_EM_RTMP_MANAGER_ERRCODE;
  78705. ///@brief 删除推流地址出参
  78706. typedef struct tagNET_OUT_RTMP_MANAGER_REMOVE
  78707. {
  78708. DWORD dwSize; // 结构体大小
  78709. NET_EM_RTMP_MANAGER_ERRCODE emErrCode; // 错误码
  78710. }NET_OUT_RTMP_MANAGER_REMOVE;
  78711. ///@brief 启动推流入参
  78712. typedef struct tagNET_IN_RTMP_MANAGER_START
  78713. {
  78714. DWORD dwSize; // 结构体大小
  78715. UINT nPushId; // 要启动的推流ID
  78716. }NET_IN_RTMP_MANAGER_START;
  78717. ///@brief 启动推流出参
  78718. typedef struct tagNET_OUT_RTMP_MANAGER_START
  78719. {
  78720. DWORD dwSize; // 结构体大小
  78721. NET_EM_RTMP_MANAGER_ERRCODE emErrCode; // 错误码
  78722. }NET_OUT_RTMP_MANAGER_START;
  78723. ///@brief 停止推流入参
  78724. typedef struct tagNET_IN_RTMP_MANAGER_STOP
  78725. {
  78726. DWORD dwSize; // 结构体大小
  78727. UINT nPushId; // 要停止的推流ID
  78728. }NET_IN_RTMP_MANAGER_STOP;
  78729. ///@brief 停止推流出参
  78730. typedef struct tagNET_OUT_RTMP_MANAGER_STOP
  78731. {
  78732. DWORD dwSize; // 结构体大小
  78733. NET_EM_RTMP_MANAGER_ERRCODE emErrCode; // 错误码
  78734. }NET_OUT_RTMP_MANAGER_STOP;
  78735. ///@brief 暂停推流入参
  78736. typedef struct tagNET_IN_RTMP_MANAGER_PAUSE
  78737. {
  78738. DWORD dwSize; // 结构体大小
  78739. UINT nPushId; // 要暂停的推流ID
  78740. }NET_IN_RTMP_MANAGER_PAUSE;
  78741. ///@brief 暂停推流出参
  78742. typedef struct tagNET_OUT_RTMP_MANAGER_PAUSE
  78743. {
  78744. DWORD dwSize; // 结构体大小
  78745. NET_EM_RTMP_MANAGER_ERRCODE emErrCode; // 错误码
  78746. }NET_OUT_RTMP_MANAGER_PAUSE;
  78747. ///@brief 恢复推流入参
  78748. typedef struct tagNET_IN_RTMP_MANAGER_RESUME
  78749. {
  78750. DWORD dwSize; // 结构体大小
  78751. UINT nPushId; // 要恢复的推流ID
  78752. }NET_IN_RTMP_MANAGER_RESUME;
  78753. ///@brief 恢复推流出参
  78754. typedef struct tagNET_OUT_RTMP_MANAGER_RESUME
  78755. {
  78756. DWORD dwSize; // 结构体大小
  78757. NET_EM_RTMP_MANAGER_ERRCODE emErrCode; // 错误码
  78758. }NET_OUT_RTMP_MANAGER_RESUME;
  78759. ///@brief 设置倍速推流入参
  78760. typedef struct tagNET_IN_RTMP_MANAGER_SET_SPEED
  78761. {
  78762. DWORD dwSize; // 结构体大小
  78763. UINT nPushId; // 要恢复的推流ID
  78764. double dbSpeed; // 播放速度,正数表示正向播放,负数表示反向播放,数据表示倍数
  78765. }NET_IN_RTMP_MANAGER_SET_SPEED;
  78766. ///@brief 设置倍速推流出参
  78767. typedef struct tagNET_OUT_RTMP_MANAGER_SET_SPEED
  78768. {
  78769. DWORD dwSize; // 结构体大小
  78770. NET_EM_RTMP_MANAGER_ERRCODE emErrCode; // 错误码
  78771. }NET_OUT_RTMP_MANAGER_SET_SPEED;
  78772. ///@brief 状态变化
  78773. typedef enum tagNET_EM_RTMP_MANAGER_STATUS
  78774. {
  78775. NET_EM_RTMP_MANAGER_STATUS_UNKNOWN = -1, // 未知
  78776. NET_EM_RTMP_MANAGER_STATUS_NOT_ENABLED, // 未开启推流
  78777. NET_EM_RTMP_MANAGER_STATUS_PUSH_FLOW, // 推流中
  78778. NET_EM_RTMP_MANAGER_STATUS_PUSH_FLOW_END_NORMALLY, // 推流正常结束
  78779. NET_EM_RTMP_MANAGER_STATUS_FAILED, // 推流失败
  78780. NET_EM_RTMP_MANAGER_STATUS_STOP, // 推流暂停
  78781. }NET_EM_RTMP_MANAGER_STATUS;
  78782. ///@brief 推送的数据内容
  78783. typedef struct tagNET_CB_RTMP_MANAGER_INFO
  78784. {
  78785. UINT nPushId; // 推流ID
  78786. NET_EM_RTMP_MANAGER_STATUS emStatus; // 状态变化
  78787. NET_EM_RTMP_MANAGER_ERRCODE emErrCode; // 错误码
  78788. BYTE bReserved[256]; // 保留字段
  78789. }NET_CB_RTMP_MANAGER_INFO;
  78790. ///@brief 回调函数RTMP状态信息
  78791. typedef struct tagNET_CB_RTMP_STATUS_INFO
  78792. {
  78793. UINT nSID; // 订阅id号
  78794. NET_CB_RTMP_MANAGER_INFO stuInfo; // 推送的数据内容
  78795. BYTE bReserved[1024]; // 保留字段
  78796. }NET_CB_RTMP_STATUS_INFO;
  78797. ///@brief CLIENT_AttachStatusRTMPManager 入参的回调函数
  78798. typedef int (CALLBACK *fRTMPAttachStatusCallBack)(LLONG lHandle, NET_CB_RTMP_STATUS_INFO* pstuRTMPStatusInfo , LDWORD dwUser);
  78799. ///@brief CLIENT_AttachStatusRTMPManager入参
  78800. typedef struct tagNET_IN_RTMP_MANAGER_ATTACH_STATUS
  78801. {
  78802. DWORD dwSize; // 结构体大小
  78803. UINT nPushId; // 要订阅的推流ID
  78804. fRTMPAttachStatusCallBack cbRTMPAttachStatusCallBack; // 入参回调函数
  78805. LDWORD dwUser; // 用户自定义参数
  78806. }NET_IN_RTMP_MANAGER_ATTACH_STATUS;
  78807. ///@brief CLIENT_AttachStatusRTMPManager出参
  78808. typedef struct tagNET_OUT_RTMP_MANAGER_ATTACH_STATUS
  78809. {
  78810. DWORD dwSize; // 结构体大小
  78811. UINT nSID; // 订阅id号
  78812. NET_EM_RTMP_MANAGER_ERRCODE emErrCode; // 错误码
  78813. }NET_OUT_RTMP_MANAGER_ATTACH_STATUS;
  78814. ///@brief CLIENT_DetachStatusRTMPManager 入参
  78815. typedef struct tagNET_IN_RTMP_MANAGER_DETACH_STATUS
  78816. {
  78817. DWORD dwSize; // 结构体大小
  78818. UINT nPushId; // 要取消订阅的推流ID
  78819. }NET_IN_RTMP_MANAGER_DETACH_STATUS;
  78820. ///@brief CLIENT_DetachStatusRTMPManager出参
  78821. typedef struct tagNET_OUT_RTMP_MANAGER_DETACH_STATUS
  78822. {
  78823. DWORD dwSize; // 结构体大小
  78824. }NET_OUT_RTMP_MANAGER_DETACH_STATUS;
  78825. ///@brief 订阅推流状态变化及失败原因
  78826. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachStatusRTMPManager(LLONG lLoginID, NET_IN_RTMP_MANAGER_ATTACH_STATUS *pstuInParam, NET_OUT_RTMP_MANAGER_ATTACH_STATUS *pstuOutParam, int nWaitTime);
  78827. ///@brief 取消订阅推流状态变化及失败原因
  78828. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DetachStatusRTMPManager(LLONG lAttachStatusHandle, NET_IN_RTMP_MANAGER_DETACH_STATUS* pstuInParam, NET_OUT_RTMP_MANAGER_DETACH_STATUS* pstuOutParam);
  78829. ///@brief RTMP推流操作接口
  78830. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateRTMPManager(LLONG lLoginID, NET_EM_RTMP_MANAGER_OPER_TYPE emtype, const void *pstInParam, void *pstOutParam, int nWaitTime);
  78831. ///@brief CLIENT_GetPushInfosRTMPManager 接口入参
  78832. typedef struct tagNET_IN_RTMP_MANAGER_GETPUSHINFOS
  78833. {
  78834. DWORD dwSize; // 结构体大小
  78835. }NET_IN_RTMP_MANAGER_GETPUSHINFOS;
  78836. ///@brief 已创建推流任务的信息
  78837. typedef struct tagNET_RTMP_MANAGER_PUSHINFOS
  78838. {
  78839. UINT nPushId; // 推流ID
  78840. NET_EM_RTMP_MANAGER_ADD_TYPE emType; // 推流地址类型
  78841. NET_EM_RTMP_MANAGER_STATUS emStatus; // 推流状态
  78842. char szReserved[1028]; // 预留字节
  78843. }NET_RTMP_MANAGER_PUSHINFOS;
  78844. ///@brief CLIENT_GetPushInfosRTMPManager 接口出参
  78845. typedef struct tagNET_OUT_RTMP_MANAGER_GETPUSHINFOS
  78846. {
  78847. DWORD dwSize; // 结构体大小
  78848. int nPushInfosNum; // 已创建推流任务的信息个数
  78849. NET_RTMP_MANAGER_PUSHINFOS stuPushInfos[32]; // 已创建推流任务的信息
  78850. }NET_OUT_RTMP_MANAGER_GETPUSHINFOS;
  78851. ///@brief 获取设备已开启RTMP推流任务的信息
  78852. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPushInfosRTMPManager(LLONG lLoginID, NET_IN_RTMP_MANAGER_GETPUSHINFOS *pstuInParam, NET_OUT_RTMP_MANAGER_GETPUSHINFOS *pstuOutParam, int nWaitTime);
  78853. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  78854. /////////////////////////////////////////////RTMPManager end/////////////////////////////////////////////////////////
  78855. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  78856. ///@brief CLIENT_SetSmartLockUserName 入参
  78857. typedef struct tagNET_IN_SET_SMART_LOCK_USERNAME
  78858. {
  78859. DWORD dwSize; // 结构体大小
  78860. NET_ACCESS_METHOD emType; // 开锁方式类型
  78861. char szSerialNumber[MAX_COMMON_STRING_32]; // 智能锁序列号
  78862. char szUserID[MAX_COMMON_STRING_16]; // 用户ID(非AccessControlCard记录集中的UserID概念)
  78863. char szName[MAX_COMMON_STRING_32]; // 需要修改成的名称
  78864. } NET_IN_SET_SMART_LOCK_USERNAME;
  78865. ///@brief CLIENT_SetSmartLockUserName 出参
  78866. typedef struct tagNET_OUT_SET_SMART_LOCK_USERNAME
  78867. {
  78868. DWORD dwSize; // 结构体大小
  78869. } NET_OUT_SET_SMART_LOCK_USERNAME;
  78870. ///@brief 智能锁修改用户信息
  78871. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSmartLockUsername(LLONG lLoginID, const NET_IN_SET_SMART_LOCK_USERNAME *pstInParam, NET_OUT_SET_SMART_LOCK_USERNAME *pstOutParam, int nWaitTime);
  78872. #define MAX_NUMBER_REGISTER_INFO 32
  78873. ///@brief CLIENT_GetSmartLockRegisterInfo 入参 (每次获取最多获取32条信息)
  78874. typedef struct tagNET_IN_GET_SMART_LOCK_REGISTER_INFO
  78875. {
  78876. DWORD dwSize; // 结构体大小
  78877. char szSerialNumber[MAX_COMMON_STRING_32]; // 设备序列号
  78878. int nOffset; // 用户列表的偏移量
  78879. } NET_IN_GET_SMART_LOCK_REGISTER_INFO;
  78880. ///@brief 注册用户的信息
  78881. typedef struct tagNET_SMART_LOCK_REGISTER_INFO
  78882. {
  78883. NET_ACCESS_METHOD emType; // 开锁方式类型
  78884. char szUserID[MAX_COMMON_STRING_16]; // 用户ID(非AccessControlCard记录集中的UserID概念)
  78885. char szName[MAX_COMMON_STRING_32]; // 用户名称
  78886. BYTE byReserved[512]; // 保留字段
  78887. } NET_SMART_LOCK_REGISTER_INFO;
  78888. ///@brief CLIENT_GetSmartLockRegisterInfo 出参
  78889. typedef struct tagNET_OUT_GET_SMART_LOCK_REGISTER_INFO
  78890. {
  78891. DWORD dwSize; // 结构体大小
  78892. int nTotalCount; // 总的用户数量
  78893. int nReturnCount; // 实际返回的用户数量
  78894. NET_SMART_LOCK_REGISTER_INFO stuRegisterInfo[MAX_NUMBER_REGISTER_INFO]; // 注册用户的信息
  78895. } NET_OUT_GET_SMART_LOCK_REGISTER_INFO;
  78896. ///@brief 获取当前智能锁的注册用户信息
  78897. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSmartLockRegisterInfo(LLONG lLoginID, const NET_IN_GET_SMART_LOCK_REGISTER_INFO *pstInParam, NET_OUT_GET_SMART_LOCK_REGISTER_INFO *pstOutParam, int nWaitTime);
  78898. ///@brief 卡片信息
  78899. typedef struct tagNET_SMARTLOCK_CARDINFO
  78900. {
  78901. NET_ACCESS_METHOD emType; // 开门类型
  78902. int nIndex; // 用户信息序号
  78903. char szCardNo[32]; // 卡号
  78904. NET_ACCESSCTLCARD_TYPE emCardType; // 卡类型
  78905. char szReserve[512]; // 保留字段
  78906. }NET_SMARTLOCK_CARDINFO;
  78907. ///@brief 密码信息
  78908. typedef struct tagNET_SMARTLOCK_PWDINFO
  78909. {
  78910. NET_ACCESS_METHOD emType; // 开门类型
  78911. int nIndex; // 用户信息序号
  78912. char szPassword[32]; // 密码
  78913. UINT dwUseTime; // 使用次数
  78914. char szReserve[512]; // 保留字段
  78915. }NET_SMARTLOCK_PWDINFO;
  78916. ///@brief 信息信息
  78917. typedef struct tagNET_SMARTLOCK_FPINFO
  78918. {
  78919. NET_ACCESS_METHOD emType; // 开门类型
  78920. int nIndex; // 用户信息序号
  78921. int nFingerprintLen; // 信息数据长度,不超过1.5K
  78922. char* pFingerprintData; // 信息数据
  78923. char szReserve[512]; // 保留字段
  78924. }NET_SMARTLOCK_FPINFO;
  78925. ///@brief CLIENT_UpdateSmartLockUser 入参
  78926. typedef struct tagNET_IN_SMARTLOCK_UPDATE_USER_INFO
  78927. {
  78928. DWORD dwSize; // 结构体大小
  78929. char szSerialNumber[32]; // 设备序列号
  78930. char szCredentialHolder[16]; // 身份拥有者(与AccessControlCard记录集中的UserID概念一致)
  78931. char szUserName[32]; // 用户名称
  78932. NET_TIME stuStartTime; // 起始时间
  78933. NET_TIME stuEndTime; // 结束时间
  78934. char szReserve[512]; // 保留字段
  78935. int nCardInfoNum; // 卡信息数量
  78936. NET_SMARTLOCK_CARDINFO stuCardInfo[4]; // 卡的信息
  78937. int nPwdInfoNum; // 密码信息数量
  78938. NET_SMARTLOCK_PWDINFO stuPwdInfo[4]; // 密码信息
  78939. int nFingerPrintInfoNum; // 密码信息数量
  78940. NET_SMARTLOCK_FPINFO stuFingerPrintInfo[4]; // 信息信息
  78941. int nTaskID; // 任务ID
  78942. }NET_IN_SMARTLOCK_UPDATE_USER_INFO;
  78943. ///@brief CLIENT_UpdateSmartLockUser 出参
  78944. typedef struct tagNET_OUT_SMARTLOCK_UPDATE_USER_INFO
  78945. {
  78946. DWORD dwSize; // 结构体大小
  78947. }NET_OUT_SMARTLOCK_UPDATE_USER_INFO;
  78948. ///@brief 智能锁添加更新用户信息接口
  78949. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpdateSmartLockUser(LLONG lLoginID, const NET_IN_SMARTLOCK_UPDATE_USER_INFO *pstInParam,NET_OUT_SMARTLOCK_UPDATE_USER_INFO *pstOutParam, int nWaitTime);
  78950. ///@brief CLIENT_RemoveSmartLockUser 入参
  78951. typedef struct tagNET_IN_SMARTLOCK_REMOVE_USER_INFO
  78952. {
  78953. DWORD dwSize; // 结构体大小
  78954. char szSerialNumber[32]; // 设备序列号
  78955. char szCredentialHolder[16]; // 身份拥有者(与AccessControlCard记录集中的UserID概念一致)
  78956. NET_ACCESS_METHOD emType; // 开门类型,unknown 表示全部
  78957. int nIndex; // 某种开门方式的索引号,-1表示全部
  78958. int nTaskID; // 任务ID
  78959. }NET_IN_SMARTLOCK_REMOVE_USER_INFO;
  78960. ///@brief CLIENT_RemoveSmartLockUser 出参
  78961. typedef struct tagNET_OUT_SMARTLOCK_REMOVE_USER_INFO
  78962. {
  78963. DWORD dwSize; // 结构体大小
  78964. }NET_OUT_SMARTLOCK_REMOVE_USER_INFO;
  78965. ///@brief 智能锁删除用户接口
  78966. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveSmartLockUser(LLONG lLoginID, const NET_IN_SMARTLOCK_REMOVE_USER_INFO *pstInParam, NET_OUT_SMARTLOCK_REMOVE_USER_INFO *pstOutParam, int nWaitTime);
  78967. ///@brief 用户信息
  78968. typedef struct tagMATRIX_CAMERA_USERS_INFO
  78969. {
  78970. unsigned int nChannel; // 通道
  78971. char szUser[MAX_USER_NAME_LEN]; // 用户名
  78972. char szPwd[MAX_PWD_LEN]; // 密码
  78973. char szReserve[512]; // 保留字段
  78974. }MATRIX_CAMERA_USERS_INFO;
  78975. ///@brief CLIENT_MatrixGetCameraUsers 输入结构体
  78976. typedef struct tagNET_IN_MATRIX_GET_CAMERA_USERS
  78977. {
  78978. DWORD dwSize; // 结构体大小
  78979. unsigned int nStartChannel; // 起始查询通道
  78980. unsigned int nChannelCount; // 一次获取的通道数量
  78981. }NET_IN_MATRIX_GET_CAMERA_USERS;
  78982. ///@brief CLIENT_MatrixGetCameraUsers 输出结构体
  78983. typedef struct tagNET_OUT_MATRIX_GET_CAMERA_USERS
  78984. {
  78985. DWORD dwSize; // 结构体大小
  78986. MATRIX_CAMERA_USERS_INFO* pstuUserInfo; // 返回的用户信息数组,用户分配及释放内存,大小为sizeof(MATRIX_CAMERA_USERS_INFO)*nChannelCount,其中nChannelCount为NET_IN_MATRIX_GET_CAMERA_USERS中字段
  78987. unsigned int nChannelCountRet; // 返回的通道数量
  78988. }NET_OUT_MATRIX_GET_CAMERA_USERS;
  78989. ///@brief 获取前端设备用户名密码信息
  78990. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MatrixGetCameraUsers(LLONG lLoginID, const NET_IN_MATRIX_GET_CAMERA_USERS* pInParam, NET_OUT_MATRIX_GET_CAMERA_USERS* pOutParam, DWORD dwWaitTime);
  78991. ///@brief +++++++++++++++++++++++++++++++++++++++++++++++++++++MPT接入NVR相关接口+++++++++++++++++++++++++++++++++++++++++++
  78992. ///@brief MPT状态
  78993. typedef struct tagNET_MPT_STATUS
  78994. {
  78995. EM_MPT_STATE eState; // MPT接入状态
  78996. char szSerialNumber[DH_COMMON_STRING_32]; // MPT设备序列号,在state为2或3时有值
  78997. BYTE byReserved[256]; // 保留字节
  78998. }NET_MPT_STATUS;
  78999. ///@brief 获取MPT设备状态入参
  79000. typedef struct tagNET_IN_GET_MPT_STATUS
  79001. {
  79002. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79003. UINT nOffset; // 从第几个USB槽开始
  79004. UINT nCount; // 获取几个USB槽
  79005. }NET_IN_GET_MPT_STATUS;
  79006. #define MAX_MPT_STATUS_NUM (64) // MPT状态信息最大个数
  79007. ///@brief 获取MPT设备状态出参
  79008. typedef struct tagNET_OUT_GET_MPT_STATUS
  79009. {
  79010. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79011. UINT nTotalUsbNum; // 总的USB槽数量
  79012. UINT nStatusNum; // 获取的MPT状态数量
  79013. NET_MPT_STATUS stuStatus[MAX_MPT_STATUS_NUM]; // 获取的MPT状态数据
  79014. }NET_OUT_GET_MPT_STATUS;
  79015. ///@brief 获取USB槽接入的MPT状态
  79016. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMPTStatus(LLONG lLoginID,const NET_IN_GET_MPT_STATUS* pstInParam, NET_OUT_GET_MPT_STATUS* pstOutParam, DWORD dwWaitTime);
  79017. ///@brief MPT状态类型
  79018. typedef enum tagEM_MPTSTATUS_TYPE
  79019. {
  79020. EM_MPTSTATUS_UNKNOWN, // 未知
  79021. EM_MPTSTATUS_MPTBASE, // MPT底座连接状态, pOutParam = NET_MPTBASE_STATUS_INFO
  79022. EM_MPTSTATUS_EXTCAMERA, // 外置摄像头工作状态, pOutParam = NET_EXTCAMERA_STATUS_INFO
  79023. EM_MPTSTATUS_NETCONNECT, // 网络连接方式, pOutParam = NET_NETCONNECT_STATUS_INFO
  79024. } EM_MPTSTATUS_TYPE;
  79025. ///@brief MPT 底座连接状态类型
  79026. typedef enum tagNEM_MPTBASE_TYPE
  79027. {
  79028. NEM_MPTBASE_UNKNOWN, // 未知
  79029. NEM_MPTBASE_ON, // ON
  79030. NEM_MPTBASE_OFF, // OFF
  79031. } NEM_MPTBASE_TYPE;
  79032. ///@brief 外置摄像头工作状态类型
  79033. typedef enum tagEM_EXTCAMERA_TYPE
  79034. {
  79035. EM_EXTCAMERA_UNKNOWN, // 未知
  79036. EM_EXTCAMERA_NORMAL, //Normal
  79037. EM_EXTCAMERA_ABNORMAL, //Abnormal
  79038. } EM_EXTCAMERA_TYPE;
  79039. ///@brief 网络连接方式类型
  79040. typedef enum tagEM_NETCONNECT_TYPE
  79041. {
  79042. EM_NETCONNECT_UNKNOWN, // 未知
  79043. EM_NETCONNECT_WIFI, // WIFI
  79044. EM_NETCONNECT_MOBILE, // Mobile
  79045. EM_NETCONNECT_CABLE, // Cable
  79046. EM_NETCONNECT_MPTBASE, // MptBase
  79047. } EM_NETCONNECT_TYPE;
  79048. ///@brief MPT底座连接状态信息
  79049. typedef struct tagNET_MPTBASE_STATUS_INFO
  79050. {
  79051. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79052. NEM_MPTBASE_TYPE emMptBase; // MPT 底座连接状态类型
  79053. } NET_MPTBASE_STATUS_INFO;
  79054. ///@brief 外置摄像头工作状态信息
  79055. typedef struct tagNET_EXTCAMERA_STATUS_INFO
  79056. {
  79057. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79058. EM_EXTCAMERA_TYPE emExtCamera; // 外置摄像头工作状态类型
  79059. } NET_EXTCAMERA_STATUS_INFO;
  79060. ///@brief 网络连接方式信息
  79061. typedef struct tagNET_NETCONNECT_STATUS_INFO
  79062. {
  79063. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79064. EM_NETCONNECT_TYPE emNetConnect; // 网络连接方式类型
  79065. } NET_NETCONNECT_STATUS_INFO;
  79066. ///@brief 获取MPT 设备的信息状态
  79067. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryMPTStatus(LLONG lLoginID, const EM_MPTSTATUS_TYPE emStatusType, void* pstOutParam, DWORD dwWaitTime);
  79068. ///@brief CLIENT_GetPositionManagerStatus入参
  79069. typedef struct tagNET_IN_GET_POSITIONMANAGER_STATUS
  79070. {
  79071. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79072. int nChannel; // 通道号
  79073. }NET_IN_GET_POSITIONMANAGER_STATUS;
  79074. ///@brief CLIENT_GetPositionManagerStatus出参
  79075. typedef struct tagNET_OUT_GET_POSITIONMANAGER_STATUS
  79076. {
  79077. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79078. NET_GPS_STATUS_INFO stuGPSStatusInfo; // GPS信息
  79079. }NET_OUT_GET_POSITIONMANAGER_STATUS;
  79080. ///@brief 获取GPS状态
  79081. ///@param[in] lLoginID:登录接口返回的句柄
  79082. ///@param[in] pstuInParam :输入参数,需初始化dwSize
  79083. ///@param[out] pstuOutParam :输出参数,需初始化dwSize
  79084. ///@param[in] nWaitTime :接口超时时间
  79085. ///@return: BOOL TRUE :成功; FALSE :失败
  79086. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPositionManagerStatus(LLONG lLoginID, const NET_IN_GET_POSITIONMANAGER_STATUS* pstuInParam, NET_OUT_GET_POSITIONMANAGER_STATUS* pstuOutParam, DWORD dwWaitTime);
  79087. #define MAX_POLICE_ID_NUM 32 // 写入的警员ID最大数量
  79088. ///@brief 需要写入的警员ID信息
  79089. typedef struct tagNET_WRITE_POLICE_ID_INFO
  79090. {
  79091. int nUsbSlot; // 要写入警员ID的usb槽编号
  79092. int nPoliceIDCount; // 要写入的警员ID的数量
  79093. char szPoliceID[MAX_POLICE_ID_NUM][DH_COMMON_STRING_32]; // 要写入的警员ID数据
  79094. BYTE byReserved[512]; // 保留字节
  79095. }NET_WRITE_POLICE_ID_INFO;
  79096. #define MAX_POLICE_ID_INFO_NUM 64 // 最大警员信息数量
  79097. ///@brief 向MPT设备写入警员ID信息入参
  79098. typedef struct tagNET_IN_WRITE_POLICE_ID
  79099. {
  79100. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79101. int nIDInfoNum; // 警员ID信息数量
  79102. NET_WRITE_POLICE_ID_INFO stuIDInfo[MAX_POLICE_ID_INFO_NUM]; // 警员ID信息数据
  79103. }NET_IN_WRITE_POLICE_ID;
  79104. ///@brief 向MPT设备写入警员ID信息出参
  79105. typedef struct tagNET_OUT_WRITE_POLICE_ID
  79106. {
  79107. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79108. int nResultCount; // 写入结果数量
  79109. BOOL bResult[MAX_POLICE_ID_INFO_NUM]; // 接入结果数据 0-成功,1-失败
  79110. }NET_OUT_WRITE_POLICE_ID;
  79111. ///@brief 向MPT写入警员ID信息
  79112. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WritePoliceID(LLONG lLoginID,const NET_IN_WRITE_POLICE_ID* pstInParam, NET_OUT_WRITE_POLICE_ID* pstOutParam, DWORD dwWaitTime);
  79113. #define MAX_MPT_MEDIA_TYPE_NUM 64 // MPT录像文件类型最大个数
  79114. ///@brief 水平旋转组边界模式
  79115. typedef enum tagNET_EM_HORIZONTAL_ROTATION_GROUP_LIMITMODE_TYPE
  79116. {
  79117. NET_EM_HORIZONTAL_ROTATION_GROUP_LIMITMODE_TYPE_UNKNOWN, // 未知
  79118. NET_EM_HORIZONTAL_ROTATION_GROUP_LIMITMODE_TYPE_LEFT, // 左边界
  79119. NET_EM_HORIZONTAL_ROTATION_GROUP_LIMITMODE_TYPE_RIGHT, // 右边界
  79120. NET_EM_HORIZONTAL_ROTATION_GROUP_LIMITMODE_TYPE_UP, // 上边界
  79121. NET_EM_HORIZONTAL_ROTATION_GROUP_LIMITMODE_TYPE_DOWN, // 下边界
  79122. } NET_EM_HORIZONTAL_ROTATION_GROUP_LIMITMODE_TYPE;
  79123. ///@brief 标记MPT录像文件入参
  79124. typedef struct tagNET_IN_MARK_MPT_RECORD_FILE
  79125. {
  79126. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79127. int nChannelID; // 通道号
  79128. NET_TIME stuStartTime; // 起始时间
  79129. NET_TIME stuEndTime; // 结束时间
  79130. int nMediaTypeCount; // 文件类型个数
  79131. int nMediaType[MAX_MPT_MEDIA_TYPE_NUM]; // 文件类型数据,0:任意类型, 1:jpg图片, 2:dav文件
  79132. int nCrimeType; // 类型
  79133. int nCrimeTag; // 标记
  79134. char szComment[DH_COMMON_STRING_256]; // 用户对文件做的备注
  79135. }NET_IN_MARK_MPT_RECORD_FILE;
  79136. ///@brief 标记MPT录像文件出参
  79137. typedef struct tagNET_OUT_MARK_MPT_RECORD_FILE
  79138. {
  79139. DWORD dwSize; // 结构体大小:初始化结构体时赋值
  79140. }NET_OUT_MARK_MPT_RECORD_FILE;
  79141. ///@brief 标记MPT录像文件
  79142. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MarkMPTRecordFile(LLONG lLoginID,const NET_IN_MARK_MPT_RECORD_FILE* pstInParam, NET_OUT_MARK_MPT_RECORD_FILE* pstOutParam, DWORD dwWaitTime);
  79143. /***********************************************设备诊断功能接口*****************************************************/
  79144. ///@brief 查询设备诊断信息入参
  79145. typedef struct tagNET_IN_QUERY_DIAGNOSIS_INFO
  79146. {
  79147. DWORD dwSize; // 结构体大小
  79148. UINT nOffset; // 查询偏移量
  79149. UINT nCount; // 查询个数
  79150. }NET_IN_QUERY_DIAGNOSIS_INFO;
  79151. ///@brief 设备诊断条目信息
  79152. typedef struct tagNET_DIAGNOSIS_ITEM_INFO
  79153. {
  79154. NET_TIME stuOccurTime; // 事件发生的时间
  79155. UINT nFaultCode; // 错误码
  79156. BYTE byReserved[256]; // 保留字节
  79157. }NET_DIAGNOSIS_ITEM_INFO;
  79158. ///@brief 查询设备诊断信息出参
  79159. typedef struct tagNET_OUT_QUERY_DIAGNOSIS_INFO
  79160. {
  79161. DWORD dwSize; // 结构体大小
  79162. UINT nTotalCount; // 总的信息数量
  79163. NET_DIAGNOSIS_ITEM_INFO* pstuItemInfo; // 诊断信息数据指针(由用户申请内存,sdk负责填充)
  79164. UINT nMaxCount; // 诊断信息数据最大条目数量
  79165. UINT nRetCount; // 查询结果
  79166. }NET_OUT_QUERY_DIAGNOSIS_INFO;
  79167. ///@brief 查询诊断信息
  79168. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryDiagnosisInfo(LLONG lLoginID,const NET_IN_QUERY_DIAGNOSIS_INFO* pstInParam, NET_OUT_QUERY_DIAGNOSIS_INFO* pstOutParam, int nWaitTime);
  79169. ///@brief 恢复出厂设置入参
  79170. typedef struct tagNET_IN_RESET_SYSTEM
  79171. {
  79172. DWORD dwSize;
  79173. }NET_IN_RESET_SYSTEM;
  79174. ///@brief 恢复出厂设置出参
  79175. typedef struct tagNET_OUT_RESET_SYSTEM
  79176. {
  79177. DWORD dwSize;
  79178. }NET_OUT_RESET_SYSTEM;
  79179. ///@brief 重启系统,恢复出厂默认(包括清空配置和删除账户)并重启,实现硬复位功能
  79180. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ResetSystem(LLONG lLoginID,const NET_IN_RESET_SYSTEM* pstInParam, NET_OUT_RESET_SYSTEM* pstOutParam, int nWaitTime);
  79181. #define MAX_IMSI_LEN 32 // IMSI值最大长度
  79182. #define MAX_ICCID_LEN 32 // ICCID值最大长度
  79183. ///@brief 无线模块类型
  79184. typedef enum tagEM_WIRELESS_MODE
  79185. {
  79186. EM_WIRELESS_UNKNOWN,
  79187. EM_WIRELESS_3G,
  79188. EM_WIRELESS_3G1,
  79189. EM_WIRELESS_3G2,
  79190. EM_WIRELESS_3G3,
  79191. } EM_WIRELESS_MODE;
  79192. ///@brief CLIENT_MobileGetIMSI 接口入参
  79193. typedef struct tagNET_IN_GET_IMSI
  79194. {
  79195. DWORD dwSize;
  79196. EM_WIRELESS_MODE emMode; // 无线模块名称
  79197. } NET_IN_GET_IMSI;
  79198. ///@brief CLIENT_MobileGetIMSI 接口出参
  79199. typedef struct tagNET_OUT_GET_IMSI
  79200. {
  79201. DWORD dwSize;
  79202. char szIMSI[MAX_IMSI_LEN]; // IMSI值
  79203. char szICCID[MAX_ICCID_LEN]; // ICCID号
  79204. } NET_OUT_GET_IMSI;
  79205. ///@brief 获取SIM卡的IMSI 值
  79206. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MobileGetIMSI(LLONG lLoginID, const NET_IN_GET_IMSI* pstInParam, NET_OUT_GET_IMSI* pstOutParam, int nWaitTime); //逐渐废弃,功能见CLIENT_GetMobileSIMInfo
  79207. ///@brief 获取SIM卡的IMSI值入参
  79208. typedef struct tagNET_IN_SIMINFO_GET_IMSI
  79209. {
  79210. DWORD dwSize; // 赋值为结构体大小
  79211. EM_WIRELESS_MODE emMode; // 无线模块名称
  79212. } NET_IN_SIMINFO_GET_IMSI;
  79213. ///@brief 获取SIM卡的IMSI值出参
  79214. typedef struct tagNET_OUT_SIMINFO_GET_IMSI
  79215. {
  79216. DWORD dwSize; // 赋值为结构体大小
  79217. char szIMSI[MAX_IMSI_LEN]; // IMSI值
  79218. char szICCID[MAX_ICCID_LEN]; // ICCID号
  79219. } NET_OUT_SIMINFO_GET_IMSI;
  79220. ///@brief SIM卡状态类型
  79221. typedef enum tagEM_SIMSTATE_MODE
  79222. {
  79223. EM_SIMSTATE_UNKNOWN, // 状态未知
  79224. EM_SIMSTATE_UNEXIST, // 不存在
  79225. EM_SIMSTATE_EXIST, // 存在
  79226. EM_SIMSTATE_UNMATCH, // 移动网络号码不匹配
  79227. EM_SIMSTATE_PINLOCK, // Pin码锁
  79228. EM_SIMSTATE_PUKLOCK, // Puk码锁
  79229. } EM_SIMSTATE_MODE;
  79230. ///@brief 获取SIM卡的状态类型入参
  79231. typedef struct tagNET_IN_SIMINFO_GET_SIM_STATE
  79232. {
  79233. DWORD dwSize; // 赋值为结构体大小
  79234. EM_WIRELESS_MODE emMode; // 无线模块名称
  79235. } NET_IN_SIMINFO_GET_SIMSTATE;
  79236. ///@brief 获取SIM卡的状态类型出参
  79237. typedef struct tagNET_OUT_SIMINFO_GET_SIM_STATE
  79238. {
  79239. DWORD dwSize; //赋值为结构体大小
  79240. EM_SIMSTATE_MODE emMode; // SIM卡状态类型
  79241. } NET_OUT_SIMINFO_GET_SIMSTATE;
  79242. ///@brief SIM卡信息
  79243. typedef enum tagEM_SIMINFO_TYPE
  79244. {
  79245. EM_SIMINFO_TYPE_GET_IMSI, // 获取SIM卡的IMSI值,对应结构体pInParam = NET_IN_SIMINFO_GET_IMSI,pOutParam = NET_OUT_SIMINFO_GET_IMSI,替代CLIENT_MobileGetIMSI接口功能
  79246. EM_SIMINFO_TYPE_GET_SIMState, // 获取SIM卡的状态类型,对应结构体pInParam = NET_IN_SIMINFO_GET_SIMSTATE,pOutParam = NET_OUT_SIMINFO_GET_SIMSTATE
  79247. }EM_SIMINFO_TYPE;
  79248. ///@brief 获取SIM卡信息接口
  79249. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMobileSIMInfo(LLONG lLoginID, EM_SIMINFO_TYPE emType, void *pInParam, void *pOutParam, int nWaitTime);
  79250. ///@brief CLIENT_GetMobileModuleState 入参
  79251. typedef struct tagNET_IN_GET_MOBILE_MODULE_STATE
  79252. {
  79253. DWORD dwSize;
  79254. EM_WIRELESS_MODE emMode; // 无线模块名称
  79255. }NET_IN_GET_MOBILE_MODULE_STATE;
  79256. ///@brief 无线模块状态
  79257. typedef enum tagEM_MOBILE_MODULE_STATE
  79258. {
  79259. EM_MOBILE_MODULE_STATE_UNKNOWN = -1, // 未知
  79260. EM_MOBILE_MODULE_STATE_OFF, // 关闭
  79261. EM_MOBILE_MODULE_STATE_STARTING, // 正在启动
  79262. EM_MOBILE_MODULE_STATE_STARTED, // 已经启动
  79263. EM_MOBILE_MODULE_STATE_WORKING, // 正常工作
  79264. }EM_MOBILE_MODULE_STATE;
  79265. ///@brief CLIENT_GetMobileModuleState 出参
  79266. typedef struct tagNET_OUT_GET_MOBILE_MODULE_STATE
  79267. {
  79268. DWORD dwSize;
  79269. EM_MOBILE_MODULE_STATE emState; // 状态
  79270. }NET_OUT_GET_MOBILE_MODULE_STATE;
  79271. ///@brief 获取车载无线模块状态
  79272. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMobileModuleState(LLONG lLoginID, const NET_IN_GET_MOBILE_MODULE_STATE *pInParam, NET_OUT_GET_MOBILE_MODULE_STATE *pOutParam, int nWaitTime);
  79273. ////////////////////////////////////////////////////////////////////////////
  79274. ///@brief 网络应用组件 操作类型
  79275. typedef enum tagEM_RPC_NETAPP_TYPE
  79276. {
  79277. EM_RPC_NETAPP_TYPE_GET_NET_RESOURCE_STAT, // 获得网络资源统计, pstuIn 对应 NET_IN_NETAPP_GET_NET_RESOURCE_STAT*,pstuOut对应 NET_OUT_NETAPP_GET_NET_RESOURCE_STAT*
  79278. EM_RPC_NETAPP_TYPE_GET_MOBILE_RSSI, // 获取3G网络的信号强度, pstuIn 对应 NET_IN_NETAPP_GET_MOBILE_RSSI*, pstuOut 对应 NET_OUT_NETAPP_GET_MOBILE_RSSI*
  79279. EM_PRC_NETAPP_TYPE_GET_MOBILE_INTERFACE, // 获取所有移动网络接口, pstuIn 对应 NET_IN_NETAPP_GET_MOBILE_INTERFACE*,pstuOut对应 NET_OUT_NETAPP_GET_MOBILE_INTERFACE*
  79280. EM_PRC_NETAPP_TYPE_GET_DIAL_INFO, // 获取拨号信息, pstuIn 对应 NET_IN_NETAPP_GET_DIAL_INFO*,pstuOut对应 NET_OUT_NETAPP_GET_DIAL_INFO*
  79281. }EM_RPC_NETAPP_TYPE;
  79282. ///@brief EM_RPC_NETAPP_TYPE_GET_NET_RESOURCE_STAT 入参
  79283. typedef struct tagNET_IN_NETAPP_GET_NET_RESOURCE_STAT
  79284. {
  79285. DWORD dwSize;
  79286. }NET_IN_NETAPP_GET_NET_RESOURCE_STAT;
  79287. ///@brief EM_RPC_NETAPP_TYPE_GET_NET_RESOURCE_STAT 出参
  79288. typedef struct tagNET_OUT_NETAPP_GET_NET_RESOURCE_STAT
  79289. {
  79290. DWORD dwSize;
  79291. int nIPChanneIn; // IP通道接入 单位:kbps
  79292. int nNetRemain; // 网络接收剩余 单位:kbps
  79293. int nNetCapability; // 网络接收总能力 单位:Mbps
  79294. int nRemotePreview; // 远程预览 单位:kbps
  79295. int nRemotePlayAndDownload; // 远程回放及下载 单位:kbps
  79296. int nRemoteSendRemain; // 远程发送剩余 单位:kbps
  79297. int nRemoteSendCapability; // 远程发送总能力 单位:Mbps
  79298. }NET_OUT_NETAPP_GET_NET_RESOURCE_STAT;
  79299. ///@brief EM_PRC_NETAPP_TYPE_GET_MOBILE_INTERFACE 入参
  79300. typedef struct tagNET_IN_NETAPP_GET_MOBILE_INTERFACE
  79301. {
  79302. DWORD dwSize;
  79303. }NET_IN_NETAPP_GET_MOBILE_INTERFACE;
  79304. ///@brief EM_PRC_NETAPP_TYPE_GET_MOBILE_INTERFACE 出参
  79305. typedef struct tagNET_OUT_NETAPP_GET_MOBILE_INTERFACE
  79306. {
  79307. DWORD dwSize;
  79308. int nInterfaceNum; // 网络接口有效个数
  79309. DHDEV_NETINTERFACE_INFO stuInterface[64]; // 移动网络接口信息
  79310. }NET_OUT_NETAPP_GET_MOBILE_INTERFACE;
  79311. ///@brief EM_RPC_NETAPP_TYPE_GET_MOBILE_RSSI 入参
  79312. typedef struct tagNET_IN_NETAPP_GET_MOBILE_RSSI
  79313. {
  79314. DWORD dwSize;
  79315. EM_WIRELESS_MODE emName; // 无线模块名称
  79316. }NET_IN_NETAPP_GET_MOBILE_RSSI;
  79317. ///@brief EM_RPC_NETAPP_TYPE_GET_MOBILE_RSSI 出参
  79318. typedef struct tagNET_OUT_NETAPP_GET_MOBILE_RSSI
  79319. {
  79320. DWORD dwSize;
  79321. EM_WIRELESS_WORK_MODE emWorkMode; // 蜂窝移动模块的工作模式
  79322. int nTDSCDMA; // TD-SCDMA网络信号强度 范围0-100
  79323. int nWCDMA; // WCDMA网络信号强度 范围0-100
  79324. int nCDMA1x; // CDMA1.x网络信号强度 范围0-100
  79325. int nEDGE; // EDGE网络信号强度 范围0-100
  79326. int nEVDO; // EVDO网络信号强度 范围0-100
  79327. int nTDLTE; // TD-LTE网络信号强度 范围0-100
  79328. int nFDDLTE; // FDD-LTE网络信号强度 范围0-100
  79329. int nNR; // NR网络信号强度 范围0-100
  79330. }NET_OUT_NETAPP_GET_MOBILE_RSSI;
  79331. ///@brief 拨号网卡名称
  79332. typedef enum tagEM_DIAL_INTERFACE
  79333. {
  79334. EM_DIAL_INTERFACE_UNKNOWN, // 未知
  79335. EM_DIAL_INTERFACE_ETH0, // 有线网卡
  79336. EM_DIAL_INTERFACE_ETH2, // 无线网卡
  79337. EM_DIAL_INTERFACE_3G, // 3G网卡
  79338. }EM_DIAL_INTERFACE;
  79339. ///@brief EM_PRC_NETAPP_TYPE_GET_DIAL_INFO 入参
  79340. typedef struct tagNET_IN_NETAPP_GET_DIAL_INFO
  79341. {
  79342. DWORD dwSize;
  79343. EM_DIAL_INTERFACE emName; // 网卡名称
  79344. }NET_IN_NETAPP_GET_DIAL_INFO;
  79345. ///@brief EM_PRC_NETAPP_TYPE_GET_DIAL_INFO 出参
  79346. typedef struct tagNET_OUT_NETAPP_GET_DIAL_INFO
  79347. {
  79348. DWORD dwSize;
  79349. char szIP[48]; // 拨号IP地址
  79350. char szSubnetMask[40]; // 子网掩码
  79351. char szDefaultGateway[40];// 默认网关
  79352. char szDnsServers[2][40]; // DNS服务器地址
  79353. char szIPv6Address[48]; // 拨号IPv6地址
  79354. char szIPv6DefaultGateway[40]; // Pv6默认网关
  79355. UINT nIPv6Prefix; // IPv6网络前缀 [1~128]
  79356. char szIPv6DnsServers[2][40]; // IPv6 DNS服务器地址
  79357. char szIPv6LinkLocalAddress[48]; // IPv6链路本地地址
  79358. char szVendor[64]; // 服务提供商 3G网络使用
  79359. EM_NET_NETWORK_CARD_TYPE emNetwork; // 网络类型
  79360. int nState; // 拨号状态: 0:未知, 1:拨号成功, 2:拨号中, 3:拨号失败
  79361. }NET_OUT_NETAPP_GET_DIAL_INFO;
  79362. ///@brief 网络应用组件,公司内部定制接口
  79363. ///@brief 可用于获取前端设备的网络资源数据,如网络收发数据的速率等,pstuIn与pstuOut内存由用户申请释放,大小参照emType对应的结构体
  79364. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RPC_NetApp(LLONG lLoginID, EM_RPC_NETAPP_TYPE emType, const void* pstuIn, void* pstuOut, int nWaitTime = 1000);
  79365. #define MAX_ROOMNUM_COUNT 32 // 房间最大个数
  79366. #define MAX_FACE_COUTN 20 // 模板数据最大个数
  79367. ///@brief 目标信息
  79368. typedef struct tagNET_FACE_RECORD_INFO
  79369. {
  79370. char szUserName[MAX_USER_NAME_LEN]; // 用户名
  79371. int nRoom; // 房间个数
  79372. char szRoomNo[MAX_ROOMNUM_COUNT][DH_COMMON_STRING_16]; // 房间号列表
  79373. int nFaceData; // 模板数据个数
  79374. char szFaceData[MAX_FACE_COUTN][MAX_FACE_DATA_LEN]; // 模板数据
  79375. int nFaceDataLen[MAX_FACE_COUTN]; // 模版数据大小
  79376. int nFacePhoto; // 照片个数
  79377. int nFacePhotoLen[MAX_PHOTO_COUNT]; // 每张图片的大小
  79378. char* pszFacePhoto[MAX_PHOTO_COUNT]; // 照片数据,大小不超过120K
  79379. BOOL bValidDate; //是否设置有效时间
  79380. NET_TIME stuValidDateStart; //有效开始时间
  79381. NET_TIME stuValidDateEnd; //有效结束时间
  79382. int nValidCounts; // 刷脸有效次数:小于0表示不限次数, 等于0刷脸次数已用完
  79383. BOOL bValidCountsEnable; // 次数字段使能
  79384. BOOL bFaceDataExEnable; // 模板数据扩展使能
  79385. char* pszFaceDataEx[MAX_FACE_COUTN]; // 模板数据扩展, 由用户申请释放, 每张照片最大为8K
  79386. BYTE byReserved[240]; // 保留字节
  79387. } NET_FACE_RECORD_INFO;
  79388. ///@brief 添加记录信息输入参数
  79389. typedef struct tagNET_IN_ADD_FACE_INFO
  79390. {
  79391. DWORD dwSize;
  79392. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  79393. NET_FACE_RECORD_INFO stuFaceInfo; // 数据
  79394. } NET_IN_ADD_FACE_INFO;
  79395. ///@brief 添加记录信息输出参数
  79396. typedef struct tagNET_OUT_ADD_FACE_INFO
  79397. {
  79398. DWORD dwSize;
  79399. } NET_OUT_ADD_FACE_INFO;
  79400. ///@brief 获取记录信息输入参数
  79401. typedef struct tagNET_IN_GET_FACE_INFO
  79402. {
  79403. DWORD dwSize;
  79404. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  79405. } NET_IN_GET_FACE_INFO;
  79406. ///@brief 获取记录信息输出参数
  79407. typedef struct tagNET_OUT_GET_FACE_INFO
  79408. {
  79409. DWORD dwSize;
  79410. int nFaceData; // 模板数据个数
  79411. char szFaceData[MAX_FACE_COUTN][MAX_FACE_DATA_LEN]; // 模板数据
  79412. int nPhotoData; // 白光照片数据个数, 最大个数:5
  79413. int nInPhotoDataLen[MAX_PHOTO_COUNT]; // 用户申请的每张白光照片大小
  79414. int nOutPhotoDataLen[MAX_PHOTO_COUNT]; // 每张白光照片实际的大小
  79415. char* pPhotoData[MAX_PHOTO_COUNT]; // 白光照片数据, 由用户申请释放, 每张照片最大为200K
  79416. } NET_OUT_GET_FACE_INFO;
  79417. ///@brief 更新记录信息输入参数
  79418. typedef struct tagNET_IN_UPDATE_FACE_INFO
  79419. {
  79420. DWORD dwSize;
  79421. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  79422. NET_FACE_RECORD_INFO stuFaceInfo; // 数据
  79423. } NET_IN_UPDATE_FACE_INFO;
  79424. ///@brief 更新记录信息输出参数
  79425. typedef struct tagNET_OUT_UPDATE_FACE_INFO
  79426. {
  79427. DWORD dwSize;
  79428. } NET_OUT_UPDATE_FACE_INFO;
  79429. ///@brief 删除记录信息输入参数
  79430. typedef struct tagNET_IN_REMOVE_FACE_INFO
  79431. {
  79432. DWORD dwSize;
  79433. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  79434. } NET_IN_REMOVE_FACE_INFO;
  79435. ///@brief 删除记录信息输出参数
  79436. typedef struct tagNET_OUT_REMOVE_FACE_INFO
  79437. {
  79438. DWORD dwSize;
  79439. } NET_OUT_REMOVE_FACE_INFO;
  79440. ///@brief 清除记录信息输入参数
  79441. typedef struct tagNET_IN_CLEAR_FACE_INFO
  79442. {
  79443. DWORD dwSize;
  79444. } NET_IN_CLEAR_FACE_INFO;
  79445. ///@brief 清除记录信息输出参数
  79446. typedef struct tagNET_OUT_CLEAR_FACE_INFO
  79447. {
  79448. DWORD dwSize;
  79449. } NET_OUT_CLEAR_FACE_INFO;
  79450. ///@brief 获取特征值信息输入参数
  79451. typedef struct tagNET_IN_GETFACEEIGEN_INFO
  79452. {
  79453. DWORD dwSize;
  79454. int nPhotoDataLen; // 照片数据大小
  79455. char* pszPhotoData; // 照片数据, 由用户申请释放, 每张照片最大为200K
  79456. } NET_IN_GETFACEEIGEN_INFO;
  79457. ///@brief 获取特征值信息输出参数
  79458. typedef struct tagNET_OUT_GETFACEEIGEN_INFO
  79459. {
  79460. DWORD dwSize;
  79461. int nInFaceEigenLen; // 用户申请的目标特征值数据大小
  79462. int nOutFaceEigenLen; // 特征值数据实际的大小
  79463. char* pszFaceEigen; // 特征值数据, 由用户申请释放, 每张照片最大为8K
  79464. } NET_OUT_GETFACEEIGEN_INFO;
  79465. ///@brief 信息记录操作类型
  79466. typedef enum tagEM_FACEINFO_OPREATE_TYPE
  79467. {
  79468. EM_FACEINFO_OPREATE_ADD, // 添加, pInbuf = NET_IN_ADD_FACE_INFO , pOutBuf = NET_OUT_ADD_FACE_INFO
  79469. EM_FACEINFO_OPREATE_GET, // 获取, pInBuf = NET_IN_GET_FACE_INFO , pOutBuf = NET_OUT_GET_FACE_INFO
  79470. EM_FACEINFO_OPREATE_UPDATE, // 更新, pInbuf = NET_IN_UPDATE_FACE_INFO , pOutBuf = NET_OUT_UPDATE_FACE_INFO
  79471. EM_FACEINFO_OPREATE_REMOVE, // 删除, pInbuf = NET_IN_REMOVE_FACE_INFO , pOutBuf = NET_OUT_REMOVE_FACE_INFO
  79472. EM_FACEINFO_OPREATE_CLEAR, // 清除, pInbuf = NET_IN_CLEAR_FACE_INFO, pOutBuf = NET_OUT_CLEAR_FACE_INFO
  79473. EM_FACEINFO_OPREATE_GETFACEEIGEN, // 获取特征值, pInbuf = NET_IN_GETFACEEIGEN_INFO, pOutBuf = NET_OUT_GETFACEEIGEN_INFO
  79474. } EM_FACEINFO_OPREATE_TYPE;
  79475. ///@brief:信息记录操作函数
  79476. ///@param[in]: LLONG :lLoginID // 登陆句柄
  79477. ///@param[in]: EM_FACEINFO_OPREATE_TYPE: emType //操作类型
  79478. ///@param[in]: void* :pInParam // 接口输入参数, 资源由用户维护
  79479. ///@param[out]: void* :pOutParam // 接口输出参数, 资源由用户维护
  79480. ///@param[in]: int :nWaitTime // 等待超时时间
  79481. ///@return: BOOL
  79482. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceInfoOpreate(LLONG lLoginID, EM_FACEINFO_OPREATE_TYPE emType, void* pInParam, void* pOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  79483. ///@brief 用户信息数据
  79484. typedef struct tagFINGER_PRINT_INFO
  79485. {
  79486. char szFingerprintData[2048]; // 信息数据,base64编码
  79487. BYTE byReserved[1024]; // 预留字节
  79488. }FINGER_PRINT_INFO;
  79489. ///@brief 用户卡片信息
  79490. typedef struct tagCARD_INFO
  79491. {
  79492. char szCardNo[64]; // 卡号,base64编码
  79493. BYTE byReserved[512]; // 预留字节
  79494. }CARD_INFO;
  79495. ///@brief 人证设备用户信息
  79496. typedef struct tagNET_CITIZENIDENTTIFY_USER_INFO
  79497. {
  79498. char szCitizenID[20]; // 证件号
  79499. char szCitizen[30]; // 居民姓名
  79500. EM_CITIZENIDCARD_SEX_TYPE emSexType; // 性别
  79501. EM_CITIZENIDCARD_EC_TYPE emECType; // 民族
  79502. char szBirth[12]; // 出生日期
  79503. char szAddress[108]; // 住址
  79504. char szValidStart[12]; // 有效起始日期
  79505. char szValidEnd[12]; // 有效结束日期
  79506. int nTime; // 录入时间
  79507. int nFingerPrintInfoNum; // 信息数据个数
  79508. FINGER_PRINT_INFO stuFingerprintInfo[8]; // 信息信息,最大值为8组
  79509. int nCardInfoNum; // 卡片信息个数
  79510. CARD_INFO stuCardInfo[5]; // 卡片信息,最大值为5组
  79511. int nFaceNum; // 最大目标数
  79512. int nPacketLen; // 二进制包长度
  79513. int nFaceInfoNum; // 信息个数
  79514. SCENE_IMAGE_INFO stuFaceInfo[4]; // 信息 最大值为4组
  79515. char szStudentNum[32]; // 用于记录学生学号默认”FFFFFF”,若为学工号上报,则填对应学工号信息
  79516. BYTE byReserved[2016]; // 保留字节
  79517. }NET_CITIZENIDENTTIFY_USER_INFO;
  79518. ///@brief 下发用户信息入参
  79519. typedef struct tagNET_IN_CITIZENIDENTTIFY_SERVICE_INSERT
  79520. {
  79521. DWORD dwSize; // 结构体大小
  79522. int nInfoNum; // 用户信息个数,申请个数不能大于能力集提供最大插入数量MaxInsertNum
  79523. NET_CITIZENIDENTTIFY_USER_INFO* pUserInfo; // 人证设备用户信息,内存由用户申请释放,申请大小不小于nInfoNum*sizeof(NET_CITIZENIDENTTIFY_USER_INFO);
  79524. int nFaceDataLen; // 所有用户的二进制数据缓存大小
  79525. char* pFaceData; // 所有用户二进制数据, 用户申请释放,总大小为nFaceDataMaxLen,实际数据填充大小为nFaceDataRetLen
  79526. }NET_IN_CITIZENIDENTTIFY_SERVICE_INSERT;
  79527. ///@brief 下发用户信息出参
  79528. typedef struct tagNET_OUT_CITIZENIDENTTIFY_SERVICE_INSERT
  79529. {
  79530. DWORD dwSize; // 结构体大小
  79531. int nMaxRetNum; // 此字段SDK内部不做任何检验
  79532. }NET_OUT_CITIZENIDENTTIFY_SERVICE_INSERT;
  79533. ///@brief 删除用户数据入参
  79534. typedef struct tagNET_IN_CITIZEN_IDENTIFY_MANAGER_REMOVE
  79535. {
  79536. DWORD dwSize; // 结构体大小
  79537. int nUserNum; // 删除的数量
  79538. char szCitizenID[100][32]; // 证件号,数组最大值,参考能力集提供的MaxInsertNum
  79539. }NET_IN_CITIZEN_IDENTIFY_MANAGER_REMOVE;
  79540. ///@brief 删除用户数据出参
  79541. typedef struct tagNET_OUT_CITIZEN_IDENTIFY_MANAGER_REMOVE
  79542. {
  79543. DWORD dwSize; // 结构体大小
  79544. int nMaxRetNum; // 此字段SDK内部不做任何检验
  79545. }NET_OUT_CITIZEN_IDENTIFY_MANAGER_REMOVE;
  79546. ///@brief 删除所有用户数据入参
  79547. typedef struct tagNET_IN_CITIZEN_IDENTIFY_MANAGER_CLEAR
  79548. {
  79549. DWORD dwSize; // 结构体大小
  79550. }NET_IN_CITIZEN_IDENTIFY_MANAGER_CLEAR;
  79551. ///@brief 删除所有用户数据出参
  79552. typedef struct tagNET_OUT_CITIZEN_IDENTIFY_MANAGER_CLEAR
  79553. {
  79554. DWORD dwSize; // 结构体大小
  79555. }NET_OUT_CITIZEN_IDENTIFY_MANAGER_CLEAR;
  79556. ///@brief 更新用户数据入参
  79557. typedef struct tagNET_IN_CITIZEN_IDENTIFY_MANAGER_UPDATE
  79558. {
  79559. DWORD dwSize; // 结构体大小
  79560. int nInfoNum; // 用户信息个数,申请个数不能大于能力集提供最大插入数量MaxInsertNum
  79561. NET_CITIZENIDENTTIFY_USER_INFO* pUserInfo; // 人证设备用户信息,内存由用户申请释放,申请大小不小于nInfoNum*sizeof(NET_CITIZENIDENTTIFY_USER_INFO);
  79562. int nFaceDataLen; // 所有用户的二进制数据缓存大小
  79563. char* pFaceData; // 所有用户二进制数据, 用户申请释放,总大小为nFaceDataMaxLen,实际数据填充大小为nFaceDataRetLen
  79564. }NET_IN_CITIZEN_IDENTIFY_MANAGER_UPDATE;
  79565. ///@brief 更新用户数据出参
  79566. typedef struct tagNET_OUT_CITIZEN_IDENTIFY_MANAGER_UPDATE
  79567. {
  79568. DWORD dwSize; // 结构体大小
  79569. int nMaxRetNum; // 此字段SDK内部不做任何检验
  79570. }NET_OUT_CITIZEN_IDENTIFY_MANAGER_UPDATE;
  79571. ///@brief 人证设备用户信息操作类型
  79572. typedef enum tagNET_EM_CITIZENIDENTTIFY_OPREATE_TYPE
  79573. {
  79574. NET_EM_CITIZENIDENTTIFY_SERVICE_INSERT = 0, // 下发, pInbuf = NET_IN_CITIZENIDENTTIFY_SERVICE_INSERT , pOutBuf = NET_OUT_CITIZENIDENTTIFY_SERVICE_INSERT
  79575. NET_EM_CITIZENIDENTTIFY_SERVICE_UPDATE, // 更新, pInbuf = NET_IN_CITIZEN_IDENTIFY_MANAGER_UPDATE , pOutBuf = NET_OUT_CITIZEN_IDENTIFY_MANAGER_UPDATE
  79576. NET_EM_CITIZENIDENTTIFY_SERVICE_REMOVE, // 删除, pInbuf = NET_IN_CITIZEN_IDENTIFY_MANAGER_REMOVE , pOutBuf = NET_OUT_CITIZEN_IDENTIFY_MANAGER_REMOVE
  79577. NET_EM_CITIZENIDENTTIFY_SERVICE_CLEAR, // 清除(清空所有), pInbuf = NET_IN_CITIZEN_IDENTIFY_MANAGER_CLEAR, pOutBuf = NET_OUT_CITIZEN_IDENTIFY_MANAGER_CLEAR
  79578. } NET_EM_CITIZENIDENTTIFY_OPREATE_TYPE;
  79579. ///@brief 人证设备用户信息管理接口
  79580. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CitizenIdentifyService(LLONG lLoginID, NET_EM_CITIZENIDENTTIFY_OPREATE_TYPE emType, void* pInParam, void* pOutParam, int nWaitTime = NET_INTERFACE_DEFAULT_TIMEOUT);
  79581. ///@brief CLIENT_StartFindCollectInfo入参
  79582. typedef struct tagNET_IN_COLLECTINFO_START_FIND
  79583. {
  79584. DWORD dwSize; // 结构体大小
  79585. char szCitizenID[20]; // 证件号,不填或为""表示查询全部
  79586. int nTime; // 录入时间,不填或为0表示查询全部
  79587. }NET_IN_COLLECTINFO_START_FIND;
  79588. ///@brief CLIENT_StartFindCollectInfo出参
  79589. typedef struct tagNET_OUT_COLLECTINFO_START_FIND
  79590. {
  79591. DWORD dwSize; // 结构体大小
  79592. int nTotal; // 查找到的总条数
  79593. int nMaxSupportPerFind; // 查询能力,doFindCollectInfo一次查询结果可提供的最大条数
  79594. }NET_OUT_COLLECTINFO_START_FIND;
  79595. ///@brief CLIENT_DoFindCollectInfo入参
  79596. typedef struct tagNET_IN_COLLECTINFO_DO_FIND
  79597. {
  79598. DWORD dwSize; // 结构体大小
  79599. int nStartNo; // 起始序号
  79600. int nCount; // 本次查询需要获取的条数,不能超过startFindCollectInfo返回的MaxSupportPerFind查询能力
  79601. }NET_IN_COLLECTINFO_DO_FIND;
  79602. ///@brief CLIENT_DoFindCollectInfo出参
  79603. typedef struct tagNET_OUT_COLLECTINFO_DO_FIND
  79604. {
  79605. DWORD dwSize; // 结构体大小
  79606. int nRetNum; // 本次查询到的个数
  79607. NET_CITIZENIDENTTIFY_USER_INFO* pCollectInfo; // 人证设备用户信息,内存由用户申请释放,申请大小不小于nMaxNum*sizeof(NET_CITIZENIDENTTIFY_USER_INFO);
  79608. int nMaxNum; // 用户分配内存的个数
  79609. int nBinDataMaxLen; // 二进制数据缓存大小
  79610. int nBinDataRetLen; // 二进制数据实际大小,
  79611. char* pBinData; // 二进制数据, 用户申请释放,总大小为nBinDataMaxLen,实际数据填充大小为nBinDataRetLen
  79612. }NET_OUT_COLLECTINFO_DO_FIND;
  79613. ///@brief 开始查找用户信息
  79614. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindCollectInfo(LLONG lLoginID, NET_IN_COLLECTINFO_START_FIND* pstIn, NET_OUT_COLLECTINFO_START_FIND* pstOut, int nWaitTime);
  79615. ///@brief 查询采集用户信息 ,lFindHandle 为 CLIENT_StartFindCollectInfo 接口返回值
  79616. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindCollectInfo(LLONG lFindHandle, NET_IN_COLLECTINFO_DO_FIND* pstIn, NET_OUT_COLLECTINFO_DO_FIND* pstOut, int nWaitTime);
  79617. ///@brief 停止用户信息查找 ,lFindHandle 为 CLIENT_StopFindCollectInfo 接口返回值
  79618. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindCollectInfo(LLONG lFindHandle);
  79619. ///@brief CLIENT_CitizenIdentifyGetCustomData入参
  79620. typedef struct tagNET_IN_CITIZENIDENTTIFY_GET_CUSTOM
  79621. {
  79622. DWORD dwSize; // 结构体大小
  79623. int nType; // 请求数据类型,1-获取证件核验数据(对接新大陆项目使用)
  79624. char szCitizenID[32]; // 用户证件号码,emType为EM_CITIZENIDENTTIFY_GET_CUSTOM_TYPE_IDENTITY_CHECK时必填
  79625. char szName[64]; // 用户姓名,emType为EM_CITIZENIDENTTIFY_GET_CUSTOM_TYPE_IDENTITY_CHECK时必填
  79626. char szRandomNum[256]; // 核验随机数,emType为EM_CITIZENIDENTTIFY_GET_CUSTOM_TYPE_IDENTITY_CHECK时必填
  79627. }NET_IN_CITIZENIDENTTIFY_GET_CUSTOM;
  79628. ///@brief CLIENT_CitizenIdentifyGetCustomData出参
  79629. typedef struct tagNET_OUT_CITIZENIDENTTIFY_GET_CUSTOM
  79630. {
  79631. DWORD dwSize; // 结构体大小
  79632. char szCitizenCheckData[2048]; // 证件核验数据
  79633. }NET_OUT_CITIZENIDENTTIFY_GET_CUSTOM;
  79634. ///@brief 获取身份核验数据
  79635. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CitizenIdentifyGetCustomData(LLONG lLoginID, NET_IN_CITIZENIDENTTIFY_GET_CUSTOM* pstIn, NET_OUT_CITIZENIDENTTIFY_GET_CUSTOM* pstOut, int nWaitTime);
  79636. ///@brief CLIENT_StartFindFaceInfo 输入参数
  79637. typedef struct tagNET_IN_FACEINFO_START_FIND
  79638. {
  79639. DWORD dwSize;
  79640. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  79641. }NET_IN_FACEINFO_START_FIND;
  79642. ///@brief CLIENT_StartFindFaceInfo 输出参数
  79643. typedef struct tagNET_OUT_FACEINFO_START_FIND
  79644. {
  79645. DWORD dwSize;
  79646. UINT nTotalCount; // 符合查询条件的总数
  79647. }NET_OUT_FACEINFO_START_FIND;
  79648. ///@brief CLIENT_DoFindFaceInfo 输入参数
  79649. typedef struct tagNET_IN_FACEINFO_DO_FIND
  79650. {
  79651. DWORD dwSize;
  79652. int nStartNo; // 起始序号
  79653. int nCount; // 本次查询的条数
  79654. }NET_IN_FACEINFO_DO_FIND;
  79655. ///@brief 目标信息
  79656. typedef struct tagNET_FACEINFO
  79657. {
  79658. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  79659. int nMD5; // 有效的MD5编码数量
  79660. char szMD5[5][DH_COMMON_STRING_64]; // 图片对应的32字节MD5编码加密
  79661. int nEigenMD5; // 特征值对应的MD5值个数
  79662. char szEigenMD5[5][64]; // 特征值对应的MD5值
  79663. BYTE byReserved[188];
  79664. }NET_FACEINFO;
  79665. ///@brief CLIENT_DoFindFaceInfo 输出参数
  79666. typedef struct tagNET_OUT_FACEINFO_DO_FIND
  79667. {
  79668. DWORD dwSize;
  79669. int nRetNum; // 本次查询到的个数
  79670. NET_FACEINFO* pstuInfo; // 查询结果, 用户分配内存,大小为sizeof(NET_FACEINFO)*nMaxNum
  79671. int nMaxNum; // 用户分配内存的个数
  79672. BYTE byReserved[4];
  79673. }NET_OUT_FACEINFO_DO_FIND;
  79674. ///@brief 开始查询信息
  79675. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindFaceInfo(LLONG lLoginID, NET_IN_FACEINFO_START_FIND* pstIn, NET_OUT_FACEINFO_START_FIND* pstOut, int nWaitTime);
  79676. ///@brief 获取信息
  79677. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindFaceInfo(LLONG lFindHandle, NET_IN_FACEINFO_DO_FIND* pstIn, NET_OUT_FACEINFO_DO_FIND* pstOut, int nWaitTime);
  79678. ///@brief 停止查询信息
  79679. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindFaceInfo(LLONG lFindHandle);
  79680. ///@brief 证件类型
  79681. typedef enum tagEM_TYPE_OF_CERTIFICATE
  79682. {
  79683. EM_TYPE_OF_CERTIFICATE_UNKNOWN, // 未知
  79684. EM_TYPE_OF_CERTIFICATE_IDCARD, // 证件
  79685. EM_TYPE_OF_CERTIFICATE_HKMRPERMIT, // 港澳居住证
  79686. EM_TYPE_OF_CERTIFICATE_CHNPASSPORT, // 中国护照
  79687. EM_TYPE_OF_CERTIFICATE_FORPASSPORT, // 国外护照
  79688. EM_TYPE_OF_CERTIFICATE_PERRESIDENCE_PERMI, // 永久居住证
  79689. EM_TYPE_OF_CERTIFICATE_OTHER = 9, // 其他
  79690. }EM_TYPE_OF_CERTIFICATE;
  79691. ///@brief 用户信息
  79692. typedef struct tagNET_ACCESS_USER_INFO_EX
  79693. {
  79694. char szConsumptionTimeSections[42][34]; // 消费时间段
  79695. // 每天最多6个时间段,每6个元素对应一天。一共7天。
  79696. // 每个时段格式为"星期 时:分:秒-时:分:秒 消费类型 可消费次数 可消费金额",
  79697. // 星期从0开始,表示周日,前6个时段前面都是0,表示周日的6个时段,
  79698. // 剩下依次周一,周二... 一共42个时段。消费类型包括:0为定额消费,
  79699. // 1为非定额消费;可消费次数最大上限200次;可消费金额最高999900,也就是9999元
  79700. BYTE byReserved[1024]; // 保留字节
  79701. }NET_ACCESS_USER_INFO_EX;
  79702. ///@brief 一人对单个门支持多时段和假日计划方案
  79703. typedef struct tagNET_MULTI_TIMESECTION_INFO
  79704. {
  79705. int nDoor; // 门权限,控制器中的索引
  79706. int nTimeSectionNum; //门权限对应时间段索引数量
  79707. UINT nTimeSectionList[128]; // 门权限对应时间段索引, 表示当前门权限可在此时间段通行
  79708. UINT nSpecialDaysScheduleList[128]; // 假日计划标识
  79709. int nSpecialDaysScheduleNum; // 假日计划标识数量
  79710. char szReserved[508]; // 保留字节
  79711. }NET_MULTI_TIMESECTION_INFO;
  79712. ///@brief 扩展用户信息V2
  79713. typedef struct tagNET_ACCESS_USER_INFO_EX2
  79714. {
  79715. char szProjects[30][64]; // 平台下发的当前设备的涉密项目配置信息
  79716. int nProjectNum; // 涉密项目配置信息数量
  79717. int nMultiTimeSectionNum; // 时间段方案数量
  79718. NET_MULTI_TIMESECTION_INFO stuMultiTimeSection[128]; // 消费时间段
  79719. char szReserved[2048]; // 保留字节
  79720. }NET_ACCESS_USER_INFO_EX2;
  79721. ///@brief 用户信息
  79722. typedef struct tagNET_ACCESS_USER_INFO
  79723. {
  79724. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  79725. char szName[MAX_COMMON_STRING_32]; // 人员名称
  79726. NET_ENUM_USER_TYPE emUserType; // 用户类型
  79727. UINT nUserStatus; // 用户状态, 0 正常, 1 冻结
  79728. int nUserTime; // 来宾卡的通行次数
  79729. char szCitizenIDNo[MAX_COMMON_STRING_32]; // 证件号码
  79730. char szPsw[DH_MAX_CARDPWD_LEN]; // UserID+密码开门时密码
  79731. int nDoorNum; // 有效的门数目;
  79732. int nDoors[DH_MAX_DOOR_NUM]; // 有权限的门序号,即 CFG_CMD_ACCESS_EVENT 配置的数组下标
  79733. int nTimeSectionNum; // 有效的的开门时间段数目
  79734. int nTimeSectionNo[DH_MAX_TIMESECTION_NUM]; // 开门时间段索引,即 CFG_ACCESS_TIMESCHEDULE_INFO 的数组下标
  79735. int nSpecialDaysScheduleNum; // 假日计划表示数量
  79736. int nSpecialDaysSchedule[MAX_ACCESSDOOR_NUM]; // 假日计划标识, 即 NET_EM_CFG_ACCESSCTL_SPECIALDAYS_SCHEDULE 配置的下标
  79737. NET_TIME stuValidBeginTime; // 开始有效期
  79738. NET_TIME stuValidEndTime; // 结束有效期
  79739. BOOL bFirstEnter; // 是否拥有首卡权限
  79740. int nFirstEnterDoorsNum; // 拥有首用户权限的门数量
  79741. int nFirstEnterDoors[DH_MAX_DOOR_NUM]; // 拥有首用户权限的门序号,bFirstEnter为TRUE时有效,-1表示全通道
  79742. NET_ATTENDANCE_AUTHORITY emAuthority; // 用户权限,可选
  79743. int nRepeatEnterRouteTimeout; // 反潜超时时间
  79744. int nFloorNum; // 有效的楼层数量
  79745. char szFloorNo[MAX_ACCESS_FLOOR_NUM][DH_COMMON_STRING_16]; // 楼层号
  79746. int nRoom; // 房间个数
  79747. char szRoomNo[MAX_ROOMNUM_COUNT][DH_COMMON_STRING_16]; // 房间号列表
  79748. BOOL bFloorNoExValid; // szFloorNoEx 是否有效
  79749. int nFloorNumEx; // 有效的楼层数量扩展
  79750. char szFloorNoEx[256][4]; // 楼层号扩展
  79751. char szClassInfo[256]; // 班级信息
  79752. char szStudentNo[64]; // 学号(定制)
  79753. char szCitizenAddress[128]; // 证件地址
  79754. NET_TIME stuBirthDay; // 出生日期(年月日有效)
  79755. NET_ACCESSCTLCARD_SEX emSex; // 性别
  79756. char szDepartment[128]; // 部门
  79757. char szSiteCode[32]; // 站点码(定制)
  79758. char szPhoneNumber[32]; // 手机号码
  79759. char szDefaultFloor[8]; // 默认楼层号
  79760. BOOL bFloorNoEx2Valid; // 是否使用扩展结构体
  79761. NET_FLOORS_INFO* pstuFloorsEx2; // 楼层号(再次扩展)
  79762. BOOL bHealthStatus; // 人员健康状态 (定制)
  79763. int nUserTimeSectionsNum; // 用户自身的开门时间段校验有效个数
  79764. char szUserTimeSections[6][20]; // 针对用户自身的开门时间段校验
  79765. char szECType[64]; // 民族
  79766. EM_TYPE_OF_CERTIFICATE emTypeOfCertificate; // 证件类型
  79767. char szCountryOrAreaCode[8]; // 国籍或所在地区代码,符合GB/T 2659-2000的规范
  79768. char szCountryOrAreaName[64]; // 国籍或所在地区名称,符合GB/T 2659-2000的规范
  79769. char szCertificateVersionNumber[64]; // 永久居住证的证件版本号
  79770. char szApplicationAgencyCode[64]; // 申请受理机关代码
  79771. char szIssuingAuthority[64]; // 签发机关
  79772. char szStartTimeOfCertificateValidity[64]; // 证件有效开始时间
  79773. char szEndTimeOfCertificateValidity[64]; // 证件有效结束时间
  79774. int nSignNum; // 证件签发次数
  79775. char szActualResidentialAddr[108]; // 实际家庭住址
  79776. char szWorkClass[256]; // 工作班别
  79777. NET_TIME stuStartTimeInPeriodOfValidity; // 有效时间段内启动时间
  79778. EM_TEST_ITEMS emTestItems; // 测试项目
  79779. BOOL bUseNameEx; // szNameEx 是否有效,为TRUE时,使用szNameEx字段
  79780. char szNameEx[128]; // 人员名称扩展
  79781. BOOL bUserInfoExValid; // 是否使用用户信息结构体
  79782. NET_ACCESS_USER_INFO_EX* pstuUserInfoEx; // 扩展用户信息
  79783. UINT nAuthOverdueTime; // 授权时间、过期时间,时间单位: 小时
  79784. EM_GREENCNHEALTH_STATUS emGreenCNHealthStatus; // 人员健康状态(定制添加)
  79785. EM_ALLOW_PERMIT_FLAG emAllowPermitFlag; // 电子通行证状态(定制添加)
  79786. int nHolidayGroupIndex; // 工行定制专属 工行定制假日组HolidayGroup索引值
  79787. NET_TIME stuUpdateTime; // 信息更新时间,UTC时间
  79788. char szValidFroms[8][24]; // 用户的门通道起始有效期,每个通道设置一个有效期,数组元素与门通道一一对应
  79789. int nValidFromsNum; // 用户的门通道起始有效期有效个数, 最大值为8
  79790. int nValidTosNum; // 用户的门通道截止有效期有效个数, 最大值为8
  79791. char szValidTos[8][24]; // 用户的门通道截止有效期,每个通道设置一个有效期,数组元素与门通道一一对应
  79792. char szUserIDEx[128]; // 用户ID扩展,当前只支持32位有效值下发
  79793. BOOL bUserIDEx; // szUserIDEx 是否有效,为TRUE时,使用szUserIDEx字段
  79794. int nFinancialUserType; // 金融业务库的人员权限,-1:表示未知, 0:存取人, 1:复核人, 2:管理员
  79795. int nCustomUserType; // 自定义人员类型枚举 0 : 未知,1:武汉轻工定制类型
  79796. UINT nCustomUserTypeValue; // 自定义类型的枚举
  79797. //0默认值 1学生 2教师 3保安 4保障人员 5其他 6家属 7受限用户 8临时 9临时人员 10维修工
  79798. //11博士 12硕士 13本科 14特定学生 15在编 16校聘 17特殊岗位 19一般 20特殊 21蒋钱湾居民
  79799. //22立信公寓长城别苑居民 23社区居民 24常住户 25租户 26教职工家属 27预留1 28预留2 29预留3 30预留4
  79800. //31预留5 32预留6 33预留7 34预留8 35预留9 36预留10 37预留11 38预留12 39预留13 40预留14
  79801. NET_TIME_EX stuAllowCheckInTime; // 允许签入的时间点
  79802. NET_TIME_EX stuAllowCheckOutTime; // 允许签出的时间点
  79803. NET_ACCESS_USER_INFO_EX2* pstuUserInfoEx2; // 扩展用户信息V2
  79804. BOOL bUserInfoEx2Valid; // 是否使用用户信息结构体V2
  79805. BYTE byReserved[660 - 2*POINTERSIZE]; // 保留字节
  79806. }NET_ACCESS_USER_INFO;
  79807. ///@brief 新增或更新用户信息入参
  79808. typedef struct tagNET_IN_ACCESS_USER_SERVICE_INSERT
  79809. {
  79810. DWORD dwSize; // 结构体大小
  79811. int nInfoNum; // 用户信息数量
  79812. NET_ACCESS_USER_INFO* pUserInfo; // 用户信息,内存由用户申请释放,申请大小不小于nInfoNum*sizeof(NET_ACCESS_USER_INFO);
  79813. }NET_IN_ACCESS_USER_SERVICE_INSERT;
  79814. ///@brief 操作错误码
  79815. typedef enum tagNET_EM_FAILCODE
  79816. {
  79817. NET_EM_FAILCODE_NOERROR, // 没有错误
  79818. NET_EM_FAILCODE_UNKNOWN, // 未知错误
  79819. NET_EM_FAILCODE_INVALID_PARAM, // 参数错误
  79820. NET_EM_FAILCODE_INVALID_PASSWORD, // 无效密码
  79821. NET_EM_FAILCODE_INVALID_FP, // 无效信息数据
  79822. NET_EM_FAILCODE_INVALID_FACE, // 无效数据
  79823. NET_EM_FAILCODE_INVALID_CARD, // 无效卡数据
  79824. NET_EM_FAILCODE_INVALID_USER, // 无效人数据
  79825. NET_EM_FAILCODE_FAILED_GET_SUBSERVICE, // 能力集子服务获取失败
  79826. NET_EM_FAILCODE_FAILED_GET_METHOD, // 获取组件的方法集失败
  79827. NET_EM_FAILCODE_FAILED_GET_SUBCAPS, // 获取资源实体能力集失败
  79828. NET_EM_FAILCODE_ERROR_INSERT_LIMIT, // 已达插入上限
  79829. NET_EM_FAILCODE_ERROR_MAX_INSERT_RATE, // 已达最大插入速度
  79830. NET_EM_FAILCODE_FAILED_ERASE_FP, // 清除信息数据失败
  79831. NET_EM_FAILCODE_FAILED_ERASE_FACE, // 清除数据失败
  79832. NET_EM_FAILCODE_FAILED_ERASE_CARD, // 清除卡数据失败
  79833. NET_EM_FAILCODE_NO_RECORD, // 没有记录
  79834. NET_EM_FAILCODE_NOMORE_RECORD, // 查找到最后,没有更多记录
  79835. NET_EM_FAILCODE_RECORD_ALREADY_EXISTS, // 下发卡或信息时,数据重复
  79836. NET_EM_FAILCODE_MAX_FP_PERUSER, // 超过个人最大信息记录数
  79837. NET_EM_FAILCODE_MAX_CARD_PERUSER, // 超过个人最大卡片记录数
  79838. NET_EM_FAILCODE_EXCEED_MAX_PHOTOSIZE, // 超出最大照片大小
  79839. NET_EM_FAILCODE_INVALID_USERID, // 用户ID无效(未找到客户)
  79840. NET_EM_FAILCODE_EXTRACTFEATURE_FAIL, // 提取特征失败
  79841. NET_EM_FAILCODE_PHOTO_EXIST, // 照片已存在
  79842. NET_EM_FAILCODE_PHOTO_OVERFLOW, // 超出最大目标照片数
  79843. NET_EM_FAILCODE_INVALID_PHOTO_FORMAT, // 照片格式无效
  79844. NET_EM_FAILCODE_EXCEED_ADMINISTRATOR_LIMIT, // 超出管理员人数限制
  79845. NET_EM_FAILECODE_FACE_FEATURE_ALREADY_EXIST, // 特征已存在
  79846. NET_EM_FAILECODE_FINGERPRINT_EXIST, // 信息已存在
  79847. NET_EM_FAILECODE_CITIZENID_EXIST, // 证件号已存在
  79848. NET_EM_FAILECODE_NORMAL_USER_NOTSUPPORT, // 不支持普通用户下发
  79849. NET_EM_FAILCODE_NO_FACE_DETECTED, // 图片中检测到0个目标
  79850. NET_EM_FAILCODE_MULTI_FACE_DETECTED, // 图片中检测到多个目标,无法返回特征
  79851. NET_EM_FAILCODE_PICTURE_DECODING_ERROR, // 图片解码错误
  79852. NET_EM_FAILCODE_LOW_PICTURE_QUALITY, // 图片质量太低
  79853. NET_EM_FAILCODE_NOT_RECOMMENDED, // 结果不推荐使用,比如:对外国人,特征提取成功,但算法支持不好,容易造成误识别
  79854. NET_EM_FAILCODE_FACE_ANGLE_OVER_THRESHOLDS, // 角度超过配置阈值
  79855. NET_EM_FAILCODE_FACE_RADIO_EXCEEDS_RANGE, // 占比超出范围,算法建议占比:不要超过2/3;不要小于1/3
  79856. NET_EM_FAILCODE_FACE_OVER_EXPOSED, // 过爆
  79857. NET_EM_FAILCODE_FACE_UNDER_EXPOSED, // 欠爆
  79858. NET_EM_FAILCODE_BRIGHTNESS_IMBALANCE, // 亮度不均衡 ,用于判断阴阳脸
  79859. NET_EM_FAILCODE_FACE_LOWER_CONFIDENCE, // 置信度低
  79860. NET_EM_FAILCODE_FACE_LOW_ALIGN, // 对齐分数低
  79861. NET_EM_FAILCODE_FRAGMENTARY_FACE_DETECTED, // 存在遮挡、残缺不全
  79862. NET_EM_FAILCODE_PUPIL_DISTANCE_NOT_ENOUGH, // 瞳距小于阈值
  79863. NET_EM_FAILCODE_FACE_DATA_DOWNLOAD_FAILED, // 数据下载失败
  79864. NET_EM_FAILCODE_FACE_FFE_FAILED, // 可检测,但特征值提取失败(算法场景)
  79865. NET_EM_FAILCODE_PHOTO_FEATURE_FAILED_FOR_FA, // 照片因口罩,帽子,墨镜等属性不符合而提取特征值错误
  79866. NET_EM_FAILCODE_FACE_DATA_PHOTO_INCOMPLETE, // 照片不完整
  79867. NET_EM_FAILCODE_DATABASE_ERROR_INSERT_OVERFLOW, // 数据库插入越上限
  79868. NET_EM_CARD_NOT_EXIST, // 卡号不存在
  79869. NET_EM_FAILCODE_USER_EXIST, // User已存在
  79870. NET_EM_FAILCODE_CARD_NUM_EXIST, // 卡号已存在
  79871. NET_EM_FAILCODE_FINGERPRINT_DOWNLOAD_FAIL, // 信息通过URL下载方式下载失败
  79872. NET_EM_FAILCODE_ACCOUNT_IN_USE, // 账户登录中
  79873. NET_EM_FAILCODE_IRIS_INFO_NOT_EXISTED, // 更新用户眼睛信息时,用户不存在眼睛信息
  79874. NET_EM_FAILCODE_INVALID_IRIS_DATA, // 下发的眼睛信息数据格式、特征值大小错误
  79875. NET_EM_FAILCODE_IRIS_ALREADY_EXIST, // 眼睛信息已存在
  79876. NET_EM_FAILCODE_ERASE_IRIS_FAILED, // 眼睛信息信息删除失败
  79877. NET_EM_FAILCODE_EXCEED_MAX_IRIS_GROUP_COUNT_PER_USER, // 超出个人所支持的眼睛信息组数量,两个眼睛(左右眼)为一组
  79878. NET_EM_FAILCODE_EXCEED_MAX_IRIS_COUNT_PER_GROUP, // 超出个人单组所能记录的最大数量
  79879. }NET_EM_FAILCODE;
  79880. ///@brief 新增或更新用户信息出参
  79881. typedef struct tagNET_OUT_ACCESS_USER_SERVICE_INSERT
  79882. {
  79883. DWORD dwSize; // 结构体大小
  79884. int nMaxRetNum; // 申请的最大返回的错误信息数量,不小于NET_IN_ACCESS_USER_SERVICE_INSERT中nInfoNum
  79885. NET_EM_FAILCODE* pFailCode; // 用户分配释放内存,插入失败时,对应插入的每一项的结果,返回个数同NET_IN_ACCESS_USER_SERVICE_INSERT中nInfoNum
  79886. }NET_OUT_ACCESS_USER_SERVICE_INSERT;
  79887. ///@brief 获取用户信息入参
  79888. typedef struct tagNET_IN_ACCESS_USER_SERVICE_GET
  79889. {
  79890. DWORD dwSize; // 结构体大小
  79891. int nUserNum; // 查询的数量
  79892. char szUserID[100][32]; // 用户ID
  79893. char szUserIDEx[100][128]; // 用户ID扩展,当前只支持32位有效值下发
  79894. BOOL bUserIDEx; // szUserIDEx 是否有效,为TRUE时,使用szUserIDEx字段
  79895. }NET_IN_ACCESS_USER_SERVICE_GET;
  79896. ///@brief 获取用户信息出参
  79897. typedef struct tagNET_OUT_ACCESS_USER_SERVICE_GET
  79898. {
  79899. DWORD dwSize; // 结构体大小
  79900. int nMaxRetNum; // 查询返回的最大数量
  79901. NET_ACCESS_USER_INFO* pUserInfo; // 用户信息,内存由用户申请释放,申请大小不小于 nUserNum*sizeof(NET_ACCESS_USER_INFO) // 返回个数同NET_IN_ACCESS_USER_SERVICE_GET中nUserNum
  79902. NET_EM_FAILCODE* pFailCode; // 查询失败时,内存由用户申请释放,对应查询的每一项的结果,返回个数同NET_IN_ACCESS_USER_SERVICE_GET中nUserNum
  79903. }NET_OUT_ACCESS_USER_SERVICE_GET;
  79904. ///@brief 删除指定ID人员信息入参
  79905. typedef struct tagNET_IN_ACCESS_USER_SERVICE_REMOVE
  79906. {
  79907. DWORD dwSize; // 结构体大小
  79908. int nUserNum; // 删除的数量
  79909. char szUserID[100][32]; // 用户ID
  79910. char szUserIDEx[100][128]; // 用户ID扩展,当前只支持32位有效值下发
  79911. BOOL bUserIDEx; // szUserIDEx 是否有效,为TRUE时,使用szUserIDEx字段
  79912. }NET_IN_ACCESS_USER_SERVICE_REMOVE;
  79913. ///@brief 删除指定ID人员信息出参
  79914. typedef struct tagNET_OUT_ACCESS_USER_SERVICE_REMOVE
  79915. {
  79916. DWORD dwSize; // 结构体大小
  79917. int nMaxRetNum; // 返回的最大数量,不小于 NET_IN_ACCESS_USER_SERVICE_REMOVE中nUserNum
  79918. NET_EM_FAILCODE* pFailCode; // 插入失败时,内存由用户申请释放,对应插入的每一项的结果,返回个数同NET_IN_ACCESS_USER_SERVICE_REMOVE中nUserNum
  79919. }NET_OUT_ACCESS_USER_SERVICE_REMOVE;
  79920. ///@brief 删除所有人员信息入参
  79921. typedef struct tagNET_IN_ACCESS_USER_SERVICE_CLEAR
  79922. {
  79923. DWORD dwSize; // 结构体大小
  79924. }NET_IN_ACCESS_USER_SERVICE_CLEAR;
  79925. ///@brief 删除所有人员信息出参
  79926. typedef struct tagNET_OUT_ACCESS_USER_SERVICE_CLEAR
  79927. {
  79928. DWORD dwSize; // 结构体大小
  79929. }NET_OUT_ACCESS_USER_SERVICE_CLEAR;
  79930. ///@brief 人员信息操作类型
  79931. typedef enum tagNET_EM_ACCESS_CTL_USER_SERVICE
  79932. {
  79933. NET_EM_ACCESS_CTL_USER_SERVICE_INSERT = 0, // 添加人员信息, pstInParam = NET_IN_ACCESS_USER_SERVICE_INSERT , pstOutParam = NET_OUT_ACCESS_USER_SERVICE_INSERT
  79934. NET_EM_ACCESS_CTL_USER_SERVICE_GET, // 获取人员信息, pstInParam = NET_IN_ACCESS_USER_SERVICE_GET , pstOutParam = NET_OUT_ACCESS_USER_SERVICE_GET
  79935. NET_EM_ACCESS_CTL_USER_SERVICE_REMOVE, // 删除人员信息,包含所有授权信息 pstInParam = NET_IN_ACCESS_USER_SERVICE_REMOVE , pstOutParam = NET_OUT_ACCESS_USER_SERVICE_REMOVE
  79936. NET_EM_ACCESS_CTL_USER_SERVICE_CLEAR, // 清空所有人员信息, pstInParam = NET_IN_ACCESS_USER_SERVICE_CLEAR , pstOutParam = NET_OUT_ACCESS_USER_SERVICE_CLEAR
  79937. }NET_EM_ACCESS_CTL_USER_SERVICE;
  79938. ///@brief 门禁人员信息管理接口
  79939. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateAccessUserService(LLONG lLoginID, NET_EM_ACCESS_CTL_USER_SERVICE emtype, void *pstInParam, void *pstOutParam, int nWaitTime);
  79940. ///@brief CLIENT_StartFindUserInfo 输入参数
  79941. typedef struct tagNET_IN_USERINFO_START_FIND
  79942. {
  79943. DWORD dwSize; // 结构体大小
  79944. char szUserID[MAX_COMMON_STRING_32]; // 用户ID
  79945. }NET_IN_USERINFO_START_FIND;
  79946. ///@brief CLIENT_StartFindUserInfo 输出参数
  79947. typedef struct tagNET_OUT_USERINFO_START_FIND
  79948. {
  79949. DWORD dwSize; // 结构体大小
  79950. int nTotalCount; // 符合查询条件的总数
  79951. int nCapNum; // doFind一次查询的最大数量
  79952. }NET_OUT_USERINFO_START_FIND;
  79953. ///@brief CLIENT_DoFindUserInfo 输入参数
  79954. typedef struct tagNET_IN_USERINFO_DO_FIND
  79955. {
  79956. DWORD dwSize; // 结构体大小
  79957. int nStartNo; // 起始序号
  79958. int nCount; // 本次查询的条数
  79959. }NET_IN_USERINFO_DO_FIND;
  79960. ///@brief CLIENT_DoFindUserInfo 输出参数
  79961. typedef struct tagNET_OUT_USERINFO_DO_FIND
  79962. {
  79963. DWORD dwSize; // 结构体大小
  79964. int nRetNum; // 本次查询到的个数
  79965. NET_ACCESS_USER_INFO* pstuInfo; // 查询结果, 用户分配释放内存,大小为sizeof(NET_ACCESS_USER_INFO)*nMaxNum
  79966. int nMaxNum; // 用户分配内存的个数
  79967. BYTE byReserved[4];
  79968. }NET_OUT_USERINFO_DO_FIND;
  79969. ///@brief 开始查询人员信息
  79970. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindUserInfo(LLONG lLoginID, NET_IN_USERINFO_START_FIND* pstIn, NET_OUT_USERINFO_START_FIND* pstOut, int nWaitTime);
  79971. ///@brief 获取人员信息 ,lFindHandle 为 CLIENT_StartFindUserInfo 接口返回值
  79972. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindUserInfo(LLONG lFindHandle, NET_IN_USERINFO_DO_FIND* pstIn, NET_OUT_USERINFO_DO_FIND* pstOut, int nWaitTime);
  79973. ///@brief 停止查询人员信息 ,lFindHandle 为 CLIENT_StartFindUserInfo 接口返回值
  79974. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindUserInfo(LLONG lFindHandle);
  79975. ///@brief 卡片信息
  79976. typedef struct tagNET_ACCESS_CARD_INFO
  79977. {
  79978. char szCardNo[DH_MAX_CARDNO_LEN]; // 卡号
  79979. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  79980. NET_ACCESSCTLCARD_TYPE emType; // 卡类型,只支持一般卡、胁迫卡和母卡
  79981. char szDynamicCheckCode[16]; // 动态校验码
  79982. NET_TIME stuUpdateTime; // 信息更新时间,UTC时间
  79983. char szUserIDEx[128]; // 用户ID扩展,当前只支持32位有效值下发
  79984. BOOL bUserIDEx; // szUserIDEx 是否有效,为TRUE时,使用szUserIDEx字段
  79985. BYTE byReserved[3940]; // 保留字节
  79986. }NET_ACCESS_CARD_INFO;
  79987. ///@brief 新增卡片信息入参
  79988. typedef struct tagNET_IN_ACCESS_CARD_SERVICE_INSERT
  79989. {
  79990. DWORD dwSize; // 结构体大小
  79991. int nInfoNum; // 用户信息数量
  79992. NET_ACCESS_CARD_INFO* pCardInfo; // 卡片信息,用户分配释放内存,大小为sizeof(NET_ACCESS_CARD_INFO)*nInfoNum
  79993. }NET_IN_ACCESS_CARD_SERVICE_INSERT;
  79994. ///@brief 新增卡片信息出参
  79995. typedef struct tagNET_OUT_ACCESS_CARD_SERVICE_INSERT
  79996. {
  79997. DWORD dwSize; // 结构体大小
  79998. int nMaxRetNum; // 最大返回的用户信息数量,不小于NET_IN_ACCESS_CARD_SERVICE_INSERT中nInfoNum
  79999. NET_EM_FAILCODE* pFailCode; // 用户分配释放内存,插入失败时,对应插入的每一项的结果,返回个数同NET_IN_ACCESS_CARD_SERVICE_INSERT中nInfoNum
  80000. BYTE byReserved[4];
  80001. }NET_OUT_ACCESS_CARD_SERVICE_INSERT;
  80002. ///@brief 获取卡片信息入参
  80003. typedef struct tagNET_IN_ACCESS_CARD_SERVICE_GET
  80004. {
  80005. DWORD dwSize; // 结构体大小
  80006. int nCardNum; // 查询的数量
  80007. char szCardNo[100][32]; // 卡号
  80008. }NET_IN_ACCESS_CARD_SERVICE_GET;
  80009. ///@brief 获取卡片信息出参
  80010. typedef struct tagNET_OUT_ACCESS_CARD_SERVICE_GET
  80011. {
  80012. DWORD dwSize; // 结构体大小
  80013. int nMaxRetNum; // 查询返回的最大数量
  80014. NET_ACCESS_CARD_INFO* pCardInfo; // 卡片信息,内存由用户申请释放,申请大小不小于nCardNum*sizeof(NET_ACCESS_CARD_INFO); // 返回个数同NET_IN_ACCESS_CARD_SERVICE_GET中nCardNum
  80015. NET_EM_FAILCODE* pFailCode; // 查询失败时,对应查询的每一项的结果,返回个数同NET_IN_ACCESS_CARD_SERVICE_GET中nCardNum
  80016. }NET_OUT_ACCESS_CARD_SERVICE_GET;
  80017. ///@brief 更新卡片信息入参
  80018. typedef struct tagNET_IN_ACCESS_CARD_SERVICE_UPDATE
  80019. {
  80020. DWORD dwSize; // 结构体大小
  80021. int nInfoNum; // 用户信息数量
  80022. NET_ACCESS_CARD_INFO* pCardInfo; // 卡片信息,用户分配释放内存,大小为sizeof(NET_ACCESS_CARD_INFO)*nInfoNum
  80023. }NET_IN_ACCESS_CARD_SERVICE_UPDATE;
  80024. ///@brief 更新卡片信息出参
  80025. typedef struct tagNET_OUT_ACCESS_CARD_SERVICE_UPDATE
  80026. {
  80027. DWORD dwSize; // 结构体大小
  80028. int nMaxRetNum; // 最大返回的用户信息数量,不小于NET_IN_ACCESS_CARD_SERVICE_UPDATE中nInfoNum
  80029. NET_EM_FAILCODE* pFailCode; // 用户分配释放内存,插入失败时,对应插入的每一项的结果,返回个数同NET_IN_ACCESS_CARD_SERVICE_UPDATE中nInfoNum
  80030. BYTE byReserved[4];
  80031. }NET_OUT_ACCESS_CARD_SERVICE_UPDATE;
  80032. ///@brief 删除指定卡号信息入参
  80033. typedef struct tagNET_IN_ACCESS_CARD_SERVICE_REMOVE
  80034. {
  80035. DWORD dwSize; // 结构体大小
  80036. int nCardNum; // 删除的数量
  80037. char szCardNo[100][32]; // 卡号
  80038. }NET_IN_ACCESS_CARD_SERVICE_REMOVE;
  80039. ///@brief 删除指定卡号信息出参
  80040. typedef struct tagNET_OUT_ACCESS_CARD_SERVICE_REMOVE
  80041. {
  80042. DWORD dwSize; // 结构体大小
  80043. int nMaxRetNum; // 最大返回信息数量,不小于 NET_IN_ACCESS_CARD_SERVICE_REMOVE中nCardNum
  80044. NET_EM_FAILCODE* pFailCode; // 用户分配释放内存,插入失败时,对应删除的每一项的结果,返回个数同NET_IN_ACCESS_CARD_SERVICE_REMOVE中nCardNum
  80045. BYTE byReserved[4];
  80046. }NET_OUT_ACCESS_CARD_SERVICE_REMOVE;
  80047. ///@brief 删除所有卡片信息入参
  80048. typedef struct tagNET_IN_ACCESS_CARD_SERVICE_CLEAR
  80049. {
  80050. DWORD dwSize; // 结构体大小
  80051. }NET_IN_ACCESS_CARD_SERVICE_CLEAR;
  80052. ///@brief 删除所有卡片信息出参
  80053. typedef struct tagNET_OUT_ACCESS_CARD_SERVICE_CLEAR
  80054. {
  80055. DWORD dwSize; // 结构体大小
  80056. }NET_OUT_ACCESS_CARD_SERVICE_CLEAR;
  80057. ///@brief 卡片信息操作类型
  80058. typedef enum tagNET_EM_ACCESS_CTL_CARD_SERVICE
  80059. {
  80060. NET_EM_ACCESS_CTL_CARD_SERVICE_INSERT = 0, // 添加, pstInParam = NET_IN_ACCESS_CARD_SERVICE_INSERT , pstOutParam = NET_OUT_ACCESS_CARD_SERVICE_INSERT
  80061. NET_EM_ACCESS_CTL_CARD_SERVICE_GET, // 获取, pstInParam = NET_IN_ACCESS_CARD_SERVICE_GET , pstOutParam = NET_OUT_ACCESS_CARD_SERVICE_GET
  80062. NET_EM_ACCESS_CTL_CARD_SERVICE_UPDATE, // 更新, pstInParam = NET_IN_ACCESS_CARD_SERVICE_UPDATE , pstOutParam = NET_OUT_ACCESS_CARD_SERVICE_UPDATE
  80063. NET_EM_ACCESS_CTL_CARD_SERVICE_REMOVE, // 删除, pstInParam = NET_IN_ACCESS_CARD_SERVICE_REMOVE , pstOutParam = NET_OUT_ACCESS_CARD_SERVICE_REMOVE
  80064. NET_EM_ACCESS_CTL_CARD_SERVICE_CLEAR, // 清空, pstInParam = NET_IN_ACCESS_CARD_SERVICE_CLEAR , pstOutParam = NET_OUT_ACCESS_CARD_SERVICE_CLEAR
  80065. }NET_EM_ACCESS_CTL_CARD_SERVICE;
  80066. ///@brief 门禁卡片信息管理接口
  80067. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateAccessCardService(LLONG lLoginID, NET_EM_ACCESS_CTL_CARD_SERVICE emtype, void *pstInParam, void *pstOutParam, int nWaitTime);
  80068. ///@brief CLIENT_StartFindCardInfo 输入参数
  80069. typedef struct tagNET_IN_CARDINFO_START_FIND
  80070. {
  80071. DWORD dwSize; // 结构体大小
  80072. char szUserID[32]; // 用户ID
  80073. char szCardNo[32]; // 卡号
  80074. NET_ACCESSCTLCARD_TYPE emType; // 卡类型,只支持一般卡、胁迫卡和母卡
  80075. }NET_IN_CARDINFO_START_FIND;
  80076. ///@brief CLIENT_StartFindCardInfo 输出参数
  80077. typedef struct tagNET_OUT_CARDINFO_START_FIND
  80078. {
  80079. DWORD dwSize; // 结构体大小
  80080. int nTotalCount; // 符合查询条件的总数
  80081. int nCapNum; // CLIENT_DoFindCardInfo接口一次查询的最大数量
  80082. }NET_OUT_CARDINFO_START_FIND;
  80083. ///@brief CLIENT_DoFindCardInfo 输入参数
  80084. typedef struct tagNET_IN_CARDINFO_DO_FIND
  80085. {
  80086. DWORD dwSize; // 结构体大小
  80087. int nStartNo; // 起始序号
  80088. int nCount; // 本次查询的条数
  80089. }NET_IN_CARDINFO_DO_FIND;
  80090. ///@brief CLIENT_DoFindCardInfo 输出参数
  80091. typedef struct tagNET_OUT_CARDINFO_DO_FIND
  80092. {
  80093. DWORD dwSize; // 结构体大小
  80094. int nRetNum; // 本次查询到的个数
  80095. NET_ACCESS_CARD_INFO* pstuInfo; // 查询结果, 用户分配释放内存,大小为sizeof(NET_FACEINFO)*nMaxNum
  80096. int nMaxNum; // 用户分配内存的个数
  80097. BYTE byReserved[4]; // 保留字节
  80098. }NET_OUT_CARDINFO_DO_FIND;
  80099. ///@brief 开始查询卡片信息
  80100. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindCardInfo(LLONG lLoginID, NET_IN_CARDINFO_START_FIND* pstIn, NET_OUT_CARDINFO_START_FIND* pstOut, int nWaitTime);
  80101. ///@brief 获取卡片信息,lFindHandle 为CLIENT_StartFindCardInfo接口返回值
  80102. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindCardInfo(LLONG lFindHandle, NET_IN_CARDINFO_DO_FIND* pstIn, NET_OUT_CARDINFO_DO_FIND* pstOut, int nWaitTime);
  80103. ///@brief 停止查询卡片信息,lFindHandle 为CLIENT_StartFindCardInfo接口返回值
  80104. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindCardInfo(LLONG lFindHandle);
  80105. ///@brief 信息信息
  80106. typedef struct tagNET_ACCESS_FINGERPRINT_INFO
  80107. {
  80108. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  80109. int nPacketLen; // 单个信息数据包长度
  80110. int nPacketNum; // 信息数据包个数
  80111. char* szFingerPrintInfo; // 信息数据(数据总长度即nPacketLen*nPacketNum),用户分配释放内存
  80112. int nDuressIndex; // 胁迫信息序号,取值范围[1,nPacketNum] 非法取值的话,该字段无效
  80113. char szUserIDEx[128]; // 用户ID扩展,当前只支持32位有效值下发
  80114. BOOL bUserIDEx; // szUserIDEx 是否有效,为TRUE时,使用szUserIDEx字段
  80115. BYTE byReserved[3964]; // 保留字节
  80116. }NET_ACCESS_FINGERPRINT_INFO;
  80117. ///@brief 插入信息信息入参
  80118. typedef struct tagNET_IN_ACCESS_FINGERPRINT_SERVICE_INSERT
  80119. {
  80120. DWORD dwSize; // 结构体大小
  80121. int nFpNum; // 信息信息的数量
  80122. NET_ACCESS_FINGERPRINT_INFO* pFingerPrintInfo; // 信息信息,用户分配释放内存
  80123. }NET_IN_ACCESS_FINGERPRINT_SERVICE_INSERT;
  80124. ///@brief 插入信息信息出参
  80125. typedef struct tagNET_OUT_ACCESS_FINGERPRINT_SERVICE_INSERT
  80126. {
  80127. DWORD dwSize; // 结构体大小
  80128. int nMaxRetNum; // 返回信息数量,不小于NET_IN_ACCESS_FINGERPRINT_SERVICE_INSERT 中 nFpNum
  80129. NET_EM_FAILCODE* pFailCode; // 用户分配释放内存,插入失败时,对应插入的每一项的结果,返回个数同NET_IN_ACCESS_FINGERPRINT_SERVICE_INSERT 中nFpNum
  80130. }NET_OUT_ACCESS_FINGERPRINT_SERVICE_INSERT;
  80131. ///@brief 更新信息信息入参
  80132. typedef struct tagNET_IN_ACCESS_FINGERPRINT_SERVICE_UPDATE
  80133. {
  80134. DWORD dwSize; // 结构体大小
  80135. int nFpNum; // 信息信息的数量
  80136. NET_ACCESS_FINGERPRINT_INFO* pFingerPrintInfo; // 信息信息,用户分配释放内存
  80137. }NET_IN_ACCESS_FINGERPRINT_SERVICE_UPDATE;
  80138. ///@brief 更新信息信息出参
  80139. typedef struct tagNET_OUT_ACCESS_FINGERPRINT_SERVICE_UPDATE
  80140. {
  80141. DWORD dwSize; // 结构体大小
  80142. int nMaxRetNum; // 最大返回信息数量,不小于 NET_IN_ACCESS_FINGERPRINT_SERVICE_UPDATE中nFpNum
  80143. NET_EM_FAILCODE* pFailCode; // 用户分配释放内存,插入失败时,对应插入的每一项的结果,返回个数同NET_IN_ACCESS_FINGERPRINT_SERVICE_UPDATE中nFpNum
  80144. }NET_OUT_ACCESS_FINGERPRINT_SERVICE_UPDATE;
  80145. ///@brief 获取信息信息入参
  80146. typedef struct tagNET_IN_ACCESS_FINGERPRINT_SERVICE_GET
  80147. {
  80148. DWORD dwSize; // 结构体大小
  80149. char szUserID[DH_MAX_USERID_LEN]; // 用户ID
  80150. char szUserIDEx[128]; // 用户ID扩展,当前只支持32位有效值下发
  80151. BOOL bUserIDEx; // szUserIDEx 是否有效,为TRUE时,使用szUserIDEx字段
  80152. }NET_IN_ACCESS_FINGERPRINT_SERVICE_GET;
  80153. ///@brief 获取信息信息出参
  80154. typedef struct tagNET_OUT_ACCESS_FINGERPRINT_SERVICE_GET
  80155. {
  80156. DWORD dwSize; // 结构体大小
  80157. int nRetFingerPrintCount; // 实际返回的信息个数
  80158. int nSinglePacketLength; // 单个信息数据包长度
  80159. int nDuressIndex; // 胁迫信息序号
  80160. int nMaxFingerDataLength; // 接受信息数据的缓存的最大长度
  80161. int nRetFingerDataLength; // 实际返回的总的信息数据包的长度
  80162. BYTE* pbyFingerData; // 用户分配释放内存,信息数据
  80163. NET_TIME stuUpdateTime; // 信息更新时间,UTC时间
  80164. }NET_OUT_ACCESS_FINGERPRINT_SERVICE_GET;
  80165. ///@brief 删除用户信息信息入参
  80166. typedef struct tagNET_IN_ACCESS_FINGERPRINT_SERVICE_REMOVE
  80167. {
  80168. DWORD dwSize; // 结构体大小
  80169. int nUserNum; // 删除的用户数量
  80170. char szUserID[100][32]; // 用户ID
  80171. char szUserIDEx[100][128]; // 用户ID扩展,当前只支持32位有效值下发
  80172. BOOL bUserIDEx; // szUserIDEx 是否有效,为TRUE时,使用szUserIDEx字段
  80173. }NET_IN_ACCESS_FINGERPRINT_SERVICE_REMOVE;
  80174. ///@brief 删除用户信息信息出参
  80175. typedef struct tagNET_OUT_ACCESS_FINGERPRINT_SERVICE_REMOVE
  80176. {
  80177. DWORD dwSize; // 结构体大小
  80178. int nMaxRetNum; // 最大返回数量,不小于 NET_IN_ACCESS_FINGERPRINT_SERVICE_REMOVE中nUserNum
  80179. NET_EM_FAILCODE* pFailCode; // 用户分配释放内存,删除失败时,对应插入的每一项的结果,返回个数同NET_IN_ACCESS_FINGERPRINT_SERVICE_REMOVE中nUserNum
  80180. }NET_OUT_ACCESS_FINGERPRINT_SERVICE_REMOVE;
  80181. ///@brief 清除所有信息信息入参
  80182. typedef struct tagNET_IN_ACCESS_FINGERPRINT_SERVICE_CLEAR
  80183. {
  80184. DWORD dwSize; // 结构体大小
  80185. }NET_IN_ACCESS_FINGERPRINT_SERVICE_CLEAR;
  80186. ///@brief 清除所有信息信息出参
  80187. typedef struct tagNET_OUT_ACCESS_FINGERPRINT_SERVICE_CLEAR
  80188. {
  80189. DWORD dwSize; // 结构体大小
  80190. }NET_OUT_ACCESS_FINGERPRINT_SERVICE_CLEAR;
  80191. ///@brief 信息信息操作类型
  80192. typedef enum tagNET_EM_ACCESS_CTL_FINGERPRINT_SERVICE
  80193. {
  80194. NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE_INSERT = 0, // 添加, pInbuf = NET_IN_ACCESS_FINGERPRINT_SERVICE_INSERT , pOutBuf = NET_OUT_ACCESS_FINGERPRINT_SERVICE_INSERT
  80195. NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE_GET, // 获取, pInbuf = NET_IN_ACCESS_FINGERPRINT_SERVICE_GET , pOutBuf = NET_OUT_ACCESS_FINGERPRINT_SERVICE_GET
  80196. NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE_UPDATE, // 更新, pInbuf = NET_IN_ACCESS_FINGERPRINT_SERVICE_UPDATE , pOutBuf = NET_OUT_ACCESS_FINGERPRINT_SERVICE_UPDATE
  80197. NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE_REMOVE, // 删除, pInbuf = NET_IN_ACCESS_FINGERPRINT_SERVICE_REMOVE , pOutBuf = NET_OUT_ACCESS_FINGERPRINT_SERVICE_REMOVE
  80198. NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE_CLEAR, // 清空, pInbuf = NET_IN_ACCESS_FINGERPRINT_SERVICE_CLEAR , pOutBuf = NET_OUT_ACCESS_FINGERPRINT_SERVICE_CLEAR
  80199. }NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE;
  80200. ///@brief 信息信息管理接口
  80201. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateAccessFingerprintService(LLONG lLoginID, NET_EM_ACCESS_CTL_FINGERPRINT_SERVICE emtype, void *pstInParam, void *pstOutParam, int nWaitTime);
  80202. ///@brief 目标信息
  80203. typedef struct tagNET_ACCESS_FACE_INFO
  80204. {
  80205. char szUserID[32]; // 用户ID
  80206. int nFaceData; // 模板数据个数,最大20
  80207. char szFaceData[20][2048]; // 模板数据
  80208. int nFaceDataLen[20]; // 模版数据大小
  80209. int nFacePhoto; // 照片个数,不超过5个
  80210. int nInFacePhotoLen[5]; // 用户申请的每张图片的大小
  80211. int nOutFacePhotoLen[5]; // 每张图片实际的大小
  80212. char* pFacePhoto[5]; // 照片数据,大小不超过200K
  80213. BOOL bFaceDataExEnable; // 是否使用扩展模板数据
  80214. int nMaxFaceDataLen[20]; // 用户申请的扩展模板数据大小
  80215. int nRetFaceDataLen[20]; // 实际模板数据大小
  80216. char* pFaceDataEx[20]; // 模板数据扩展字段 当bFaceDataExEnable有效时,建议使用扩展字段pFaceDataEx
  80217. NET_TIME stuUpdateTime; // 信息更新时间,UTC时间
  80218. char szUserIDEx[128]; // 用户ID扩展,当前只支持32位有效值下发
  80219. BOOL bUserIDEx; // szUserIDEx 是否有效,为TRUE时,使用szUserIDEx字段
  80220. int nEigenData; // 特征值个数
  80221. int nInEigenDataLen[5]; // 用户申请的每个目标特征值大小
  80222. int nOutEigenDataLen[5]; // 每个特征值实际的大小
  80223. char* pEigenData[5]; // 特征值, 大小不超过2048
  80224. BYTE byReserved[1600-POINTERSIZE*5]; // 保留字节
  80225. } NET_ACCESS_FACE_INFO;
  80226. ///@brief 添加记录信息输入参数(NET_EM_ACCESS_CTL_FACE_SERVICE_INSERT)
  80227. typedef struct tagNET_IN_ACCESS_FACE_SERVICE_INSERT
  80228. {
  80229. DWORD dwSize; // 结构体大小
  80230. int nFaceInfoNum; // 信息数量
  80231. NET_ACCESS_FACE_INFO* pFaceInfo; // 数据,用户自行分配数据
  80232. }NET_IN_ACCESS_FACE_SERVICE_INSERT;
  80233. ///@brief 添加记录信息输出参数(NET_EM_ACCESS_CTL_FACE_SERVICE_INSERT)
  80234. typedef struct tagNET_OUT_ACCESS_FACE_SERVICE_INSERT
  80235. {
  80236. DWORD dwSize; // 结构体大小
  80237. int nMaxRetNum; // 最大返回数量,不小于 NET_IN_ACCESS_FACE_SERVICE_INSERT 中的nFaceInfoNum
  80238. NET_EM_FAILCODE* pFailCode; // 用户分配内存,添加失败时,对应插入的每一项的结果,返回个数同NET_IN_ACCESS_FACE_SERVICE_INSERT中的nFaceInfoNum
  80239. }NET_OUT_ACCESS_FACE_SERVICE_INSERT;
  80240. ///@brief 批量获取多用户多个输入参数(NET_EM_ACCESS_CTL_FACE_SERVICE_GET)
  80241. typedef struct tagNET_IN_ACCESS_FACE_SERVICE_GET
  80242. {
  80243. DWORD dwSize; // 结构体大小
  80244. int nUserNum; // 用户ID数量,最大100
  80245. char szUserID[100][32]; // 用户ID
  80246. char szUserIDEx[100][128]; // 用户ID扩展,当前只支持32位有效值下发
  80247. BOOL bUserIDEx; // szUserIDEx 是否有效,为TRUE时,使用szUserIDEx字段
  80248. }NET_IN_ACCESS_FACE_SERVICE_GET;
  80249. ///@brief 批量获取多用户多个输出参数(NET_EM_ACCESS_CTL_FACE_SERVICE_GET)
  80250. typedef struct tagNET_OUT_ACCESS_FACE_SERVICE_GET
  80251. {
  80252. DWORD dwSize; // 结构体大小
  80253. int nMaxRetNum; // 最大返回数量,不小于 NET_IN_ACCESS_FACE_SERVICE_GET 中的 nUserNum
  80254. NET_ACCESS_FACE_INFO* pFaceInfo; // 数据,用户分配内存,返回个数同NET_IN_ACCESS_FACE_SERVICE_GET中的nUserNum,只返回的模版数据
  80255. NET_EM_FAILCODE* pFailCode; // 用户分配内存,获取失败时,对应获取的每一项的结果,返回个数同NET_IN_ACCESS_FACE_SERVICE_GET中的nUserNum
  80256. }NET_OUT_ACCESS_FACE_SERVICE_GET;
  80257. ///@brief 更新多用户多个记录信息输入参数(NET_EM_ACCESS_CTL_FACE_SERVICE_UPDATE)
  80258. typedef struct tagNET_IN_ACCESS_FACE_SERVICE_UPDATE
  80259. {
  80260. DWORD dwSize; // 结构体大小
  80261. int nFaceInfoNum; // 信息数量
  80262. NET_ACCESS_FACE_INFO* pFaceInfo; // 目标数据,用户分配内存
  80263. }NET_IN_ACCESS_FACE_SERVICE_UPDATE;
  80264. ///@brief 更新多用户多个记录信息输出参数(NET_EM_ACCESS_CTL_FACE_SERVICE_UPDATE)
  80265. typedef struct tagNET_OUT_ACCESS_FACE_SERVICE_UPDATE
  80266. {
  80267. DWORD dwSize; // 结构体大小
  80268. int nMaxRetNum; // 最大返回数量,不小于 NET_IN_ACCESS_FACE_SERVICE_UPDATE中的nFaceInfoNum
  80269. NET_EM_FAILCODE* pFailCode; // 用户分配内存.更新失败时,对应更新的每一项的结果,返回个数同NET_IN_ACCESS_FACE_SERVICE_UPDATE中的nFaceInfoNum
  80270. }NET_OUT_ACCESS_FACE_SERVICE_UPDATE;
  80271. ///@brief 删除多用户的多个信息输入参数(NET_EM_ACCESS_CTL_FACE_SERVICE_REMOVE)
  80272. typedef struct tagNET_IN_ACCESS_FACE_SERVICE_REMOVE
  80273. {
  80274. DWORD dwSize; // 结构体大小
  80275. int nUserNum; // 用户ID数量,最大100
  80276. char szUserID[100][32]; // 用户ID
  80277. char szUserIDEx[100][128]; // 用户ID扩展,当前只支持32位有效值下发
  80278. BOOL bUserIDEx; // szUserIDEx 是否有效,为TRUE时,使用szUserIDEx字段
  80279. }NET_IN_ACCESS_FACE_SERVICE_REMOVE;
  80280. ///@brief 删除多用户的多个信息输出参数(NET_EM_ACCESS_CTL_FACE_SERVICE_REMOVE)
  80281. typedef struct tagNET_OUT_ACCESS_FACE_SERVICE_REMOVE
  80282. {
  80283. DWORD dwSize; // 结构体大小
  80284. int nMaxRetNum; // 最大返回数量,不小于 NET_IN_ACCESS_FACE_SERVICE_REMOVE中的nUserNum
  80285. NET_EM_FAILCODE* pFailCode; // 用户分配内存.删除失败时,对应删除的每一项的结果,返回个数同NET_IN_ACCESS_FACE_SERVICE_REMOVE中的nUserNum
  80286. }NET_OUT_ACCESS_FACE_SERVICE_REMOVE;
  80287. ///@brief 清空所有记录信息输入参数(NET_EM_ACCESS_CTL_FACE_SERVICE_CLEAR)
  80288. typedef struct tagNET_IN_ACCESS_FACE_SERVICE_CLEAR
  80289. {
  80290. DWORD dwSize; // 结构体大小
  80291. }NET_IN_ACCESS_FACE_SERVICE_CLEAR;
  80292. ///@brief 清空所有记录信息输出参数(NET_EM_ACCESS_CTL_FACE_SERVICE_CLEAR)
  80293. typedef struct tagNET_OUT_ACCESS_FACE_SERVICE_CLEAR
  80294. {
  80295. DWORD dwSize; // 结构体大小
  80296. }NET_OUT_ACCESS_FACE_SERVICE_CLEAR;
  80297. ///@brief 目标信息操作类型
  80298. typedef enum tagNET_EM_ACCESS_CTL_FACE_SERVICE
  80299. {
  80300. NET_EM_ACCESS_CTL_FACE_SERVICE_INSERT = 0, // 添加, pInbuf = NET_IN_ACCESS_FACE_SERVICE_INSERT , pOutBuf = NET_OUT_ACCESS_FACE_SERVICE_INSERT
  80301. NET_EM_ACCESS_CTL_FACE_SERVICE_GET, // 获取, pInbuf = NET_IN_ACCESS_FACE_SERVICE_GET , pOutBuf = NET_OUT_ACCESS_FACE_SERVICE_GET
  80302. NET_EM_ACCESS_CTL_FACE_SERVICE_UPDATE, // 更新, pInbuf = NET_IN_ACCESS_FACE_SERVICE_UPDATE , pOutBuf = NET_OUT_ACCESS_FACE_SERVICE_UPDATE
  80303. NET_EM_ACCESS_CTL_FACE_SERVICE_REMOVE, // 删除, pInbuf = NET_IN_ACCESS_FACE_SERVICE_REMOVE , pOutBuf = NET_OUT_ACCESS_FACE_SERVICE_REMOVE
  80304. NET_EM_ACCESS_CTL_FACE_SERVICE_CLEAR, // 清空, pInbuf = NET_IN_ACCESS_FACE_SERVICE_CLEAR , pOutBuf = NET_OUT_ACCESS_FACE_SERVICE_CLEAR
  80305. }NET_EM_ACCESS_CTL_FACE_SERVICE;
  80306. ///@brief 门禁目标信息管理接口
  80307. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateAccessFaceService(LLONG lLoginID, NET_EM_ACCESS_CTL_FACE_SERVICE emtype, void *pstInParam, void *pstOutParam, int nWaitTime);
  80308. ///@brief CLIENT_AccessStartFindFaceInfo 输入参数
  80309. typedef struct tagNET_IN_ACCESS_FACEINFO_START_FIND
  80310. {
  80311. DWORD dwSize; // 结构体大小
  80312. char szUserID[32]; // 用户ID
  80313. }NET_IN_ACCESS_FACEINFO_START_FIND;
  80314. ///@brief CLIENT_AccessStartFindFaceInfo 输出参数
  80315. typedef struct tagNET_OUT_ACCESS_FACEINFO_START_FIND
  80316. {
  80317. DWORD dwSize; // 结构体大小
  80318. int nCapNum; // 单次查询最大数量
  80319. int nTotalCount; // 符合查询条件的总数
  80320. }NET_OUT_ACCESS_FACEINFO_START_FIND;
  80321. ///@brief CLIENT_AccessDoFindFaceInfo 输入参数
  80322. typedef struct tagNET_IN_ACCESS_FACEINFO_DO_FIND
  80323. {
  80324. DWORD dwSize; // 结构体大小
  80325. int nStartNo; // 起始序号
  80326. int nCount; // 本次查询的条数,不能大于NET_OUT_ACCESS_FACEINFO_START_FIND中的nCapNum
  80327. }NET_IN_ACCESS_FACEINFO_DO_FIND;
  80328. ///@brief CLIENT_AccessDoFindFaceInfo 输出参数
  80329. typedef struct tagNET_OUT_ACCESS_FACEINFO_DO_FIND
  80330. {
  80331. DWORD dwSize; // 结构体大小
  80332. int nRetNum; // 本次查询到的个数
  80333. NET_FACEINFO* pstuInfo; // 查询结果, 用户分配内存,大小为sizeof(NET_FACEINFO)*nMaxNum
  80334. int nMaxNum; // 用户分配内存的个数
  80335. BYTE byReserved[4];
  80336. }NET_OUT_ACCESS_FACEINFO_DO_FIND;
  80337. ///@brief 开始查询目标信息,接口返回值为CLIENT_AccessDoFindFaceInfo、CLIENT_AccessStopFindFaceInfo接口入参lFindHandle字段
  80338. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AccessStartFindFaceInfo(LLONG lLoginID, NET_IN_ACCESS_FACEINFO_START_FIND* pstIn, NET_OUT_ACCESS_FACEINFO_START_FIND* pstOut, int nWaitTime);
  80339. ///@brief 获取目标信息
  80340. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AccessDoFindFaceInfo(LLONG lFindHandle, NET_IN_ACCESS_FACEINFO_DO_FIND* pstIn, NET_OUT_ACCESS_FACEINFO_DO_FIND* pstOut, int nWaitTime);
  80341. ///@brief 停止查询目标信息
  80342. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AccessStopFindFaceInfo(LLONG lFindHandle);
  80343. ///@brief 门禁用户伙伴陪同人员信息
  80344. typedef struct tagNET_USER_PARTNER_INFO
  80345. {
  80346. char szUserID[32]; // 用户ID,有效字符范围[0-9a-zA-Z]
  80347. BYTE byReserved[4]; // 保留字段,8字节对齐
  80348. int nCompanionInfo; // 陪同人员 stuCompanionInfo数组的有效个数
  80349. NET_COMPANION_INFO stuCompanionInfo[6]; // 陪同人员信息
  80350. BYTE byReserved1[256]; // 保留字段
  80351. }NET_USER_PARTNER_INFO;
  80352. ///@brief NET_EM_OPERATE_USER_PARTNER_REFRESH 下发陪同人员信息 入参
  80353. typedef struct tagNET_IN_REFRESH_USER_PARTNER_INFO
  80354. {
  80355. DWORD dwSize;
  80356. int nUserPartner; // 门禁用户及其陪同人员信息个数。最大不超过100。
  80357. NET_USER_PARTNER_INFO* pstuUserPartner; // 门禁用户及其陪同人员信息。 调用者分配内存,大小为sizeof(NET_USER_PARTNER_INFO)*nUserPartner
  80358. }NET_IN_REFRESH_USER_PARTNER_INFO;
  80359. ///@brief NET_EM_OPERATE_USER_PARTNER_REFRESH 下发陪同人员信息 出参
  80360. typedef struct tagNET_OUT_REFRESH_USER_PARTNER_INFO
  80361. {
  80362. DWORD dwSize;
  80363. }NET_OUT_REFRESH_USER_PARTNER_INFO;
  80364. ///@brief NET_EM_OPERATE_USER_PARTNER_LIST 获取陪同人员信息 入参
  80365. typedef struct tagNET_IN_LIST_USER_PARTNER_INFO
  80366. {
  80367. DWORD dwSize;
  80368. int nCntUserID; // 有效的用户ID个数,最大不超过100,
  80369. // 也不能超过 CLIENT_GetDevCaps(NET_ACCESSCONTROL_CAPS) 接口获取到的 NET_OUT_AC_CAPS.stuACCaps.nMaxInsertRate
  80370. char szUserID[100][32]; // 需要查询的用户ID数组
  80371. }NET_IN_LIST_USER_PARTNER_INFO;
  80372. ///@brief NET_EM_OPERATE_USER_PARTNER_LIST 获取陪同人员信息 出参
  80373. typedef struct tagNET_OUT_LIST_USER_PARTNER_INFO
  80374. {
  80375. DWORD dwSize;
  80376. int nUserPartner; // 门禁用户及其陪同人员信息个数。需要与入参NET_IN_LIST_USER_PARTNER_INFO中的nCntUserID相等,最大不超过100。
  80377. NET_USER_PARTNER_INFO* pstuUserPartner; // 门禁用户及其陪同人员信息。 调用者分配内存,大小为sizeof(NET_USER_PARTNER_INFO)*nUserPartner
  80378. int nRetUserPartner; // 实际返回的其陪同人员信息个数。
  80379. BYTE byReserved[4]; // 保留字段,对齐用。
  80380. }NET_OUT_LIST_USER_PARTNER_INFO;
  80381. ///@brief NET_EM_OPERATE_USER_PARTNER_DEL 删除陪同人员信息 入参
  80382. typedef struct tagNET_IN_DEL_USER_PARTNER_INFO
  80383. {
  80384. DWORD dwSize;
  80385. int nCntUserID; // 有效的用户ID个数,最大不超过100,
  80386. // 也不能超过 CLIENT_GetDevCaps(NET_ACCESSCONTROL_CAPS) 接口获取到的 NET_OUT_AC_CAPS.stuACCaps.nMaxInsertRate
  80387. char szUserID[100][32]; // 需要删除的用户ID数组
  80388. }NET_IN_DEL_USER_PARTNER_INFO;
  80389. ///@brief NET_EM_OPERATE_USER_PARTNER_DEL 删除陪同人员信息 出参
  80390. typedef struct tagNET_OUT_DEL_USER_PARTNER_INFO
  80391. {
  80392. DWORD dwSize;
  80393. }NET_OUT_DEL_USER_PARTNER_INFO;
  80394. ///@brief CLIENT_OperateAccessUserPartner 接口操作枚举
  80395. typedef enum tagNET_EM_OPERATE_USER_PARTNER
  80396. {
  80397. NET_EM_OPERATE_USER_PARTNER_UNKNOWN, // unknown
  80398. NET_EM_OPERATE_USER_PARTNER_REFRESH, // 下发陪同人员信息,对应结构体 pstIn = NET_IN_REFRESH_USER_PARTNER_INFO, pstOut = NET_OUT_REFRESH_USER_PARTNER_INFO
  80399. NET_EM_OPERATE_USER_PARTNER_LIST, // 获取陪同人员列表信息,对应结构体 pstIn = NET_IN_LIST_USER_PARTNER_INFO, pstOut = NET_OUT_LIST_USER_PARTNER_INFO
  80400. NET_EM_OPERATE_USER_PARTNER_DEL, // 删除伙伴信息列表,对应结构体 pstIn = NET_IN_DEL_USER_PARTNER_INFO, pstOut = NET_OUT_DEL_USER_PARTNER_INFO
  80401. }NET_EM_OPERATE_USER_PARTNER;
  80402. ///@brief 门禁用户及其陪同人员信息处理
  80403. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateAccessUserPartner(LLONG lLoginID, NET_EM_OPERATE_USER_PARTNER emtype, const void* pstIn, void* pstOut, int nWaitTime);
  80404. ///@brief:显示私有数据,例如规则框,规则框报警,移动侦测等
  80405. ///@param[in]: LLONG :lPlayHandle // 播放句柄
  80406. ///@param[in]: BOOL :bTrue // TRUE:打开 FALSE:关闭
  80407. ///@return: BOOL:TRUE 成功 FALSE 失败
  80408. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RenderPrivateData(LLONG lPlayHandle, BOOL bTrue);
  80409. ///@brief 获取考勤机在线状态入参
  80410. typedef struct tagNET_IN_ATTENDANCE_GETDEVSTATE
  80411. {
  80412. DWORD dwSize;
  80413. } NET_IN_ATTENDANCE_GETDEVSTATE;
  80414. ///@brief 获取考勤机在线状态出参
  80415. typedef struct tagNET_OUT_ATTENDANCE_GETDEVSTATE
  80416. {
  80417. DWORD dwSize;
  80418. int nState; // 0:离线;1:在线;其他:未知;考勤机状态
  80419. } NET_OUT_ATTENDANCE_GETDEVSTATE;
  80420. ///@brief 获取考勤机在线状态
  80421. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Attendance_GetDevState(LLONG lLoginID, const NET_IN_ATTENDANCE_GETDEVSTATE *pstuInParam, NET_OUT_ATTENDANCE_GETDEVSTATE *pstuOutParam, int nWaitTime);
  80422. ///@brief 获取设备自检状态输入参数
  80423. typedef struct tagNET_IN_GET_DEV_SELF_TEST
  80424. {
  80425. DWORD dwSize; // 结构体大小
  80426. UINT nSelfTestItem; //自检项,可组合,每一位代表一项自检项,该位设置为1则进行自检,否则不自检
  80427. // 0x1 - RTC时钟
  80428. // 0x2 - 网卡
  80429. // 0x4 – 摄像头
  80430. // 0x8 - 信息芯片
  80431. } NET_IN_GET_DEV_SELF_TEST;
  80432. ///@brief 获取设备自检状态输出参数
  80433. typedef struct tagNET_OUT_GET_DEV_SELF_TEST
  80434. {
  80435. DWORD dwSize; // 结构体大小
  80436. UINT nSelfTestResult; // 自检结果是否成功的标识,每一位代表一项自检项,该位设置为1则自检成功,否则自检失败
  80437. // 0x1 - RTC时钟
  80438. // 0x2 - 网卡
  80439. // 0x4 – 摄像头
  80440. // 0x8 - 信息芯片
  80441. } NET_OUT_GET_DEV_SELF_TEST;
  80442. ///@brief 获取设备自检状态
  80443. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevSelfTest(LLONG lLoginID, const NET_IN_GET_DEV_SELF_TEST* pstInParam, NET_OUT_GET_DEV_SELF_TEST* pstOutParam, int nWaitTime);
  80444. ///@brief 设置升级包URL入参
  80445. typedef struct tagNET_IN_UPGRADER_SETURL
  80446. {
  80447. DWORD dwSize; //结构体大小
  80448. char szUrl[DH_COMMON_STRING_256]; //升级包下载地址
  80449. UINT nCheckType; //升级包校验方式0:传入MD5值校验
  80450. char szCheckSum[DH_COMMON_STRING_128]; //升级包校验值
  80451. int nSpareUrl; //备选升级包的个数
  80452. char szSpareUrl[4][256]; //备选升级包下载地址
  80453. }NET_IN_UPGRADER_SETURL;
  80454. ///@brief 设置升级包URL出参
  80455. typedef struct tagNET_OUT_UPGRADER_SETURL
  80456. {
  80457. DWORD dwSize; //结构体大小
  80458. }NET_OUT_UPGRADER_SETURL;
  80459. ///@brief 设置升级包的URL,并从此下载地址下载升级包
  80460. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Upgrader_SetUrl(LLONG lLoginID, NET_IN_UPGRADER_SETURL *pInParam, NET_OUT_UPGRADER_SETURL *pOutParam, int nWaitTime);
  80461. ///@brief X光检包裹的查询条件
  80462. typedef struct tagNET_XRAY_PACK_CONDITION
  80463. {
  80464. NET_TIME_EX stuStartTime; // 开始时间(含时区)
  80465. NET_TIME_EX stuEndTime; // 结束时间(含时区)
  80466. BYTE byReserved[1024]; // 预留字节
  80467. }NET_XRAY_PACK_CONDITION;
  80468. ///@brief 获取X光检各类包裹数量统计信息入参
  80469. typedef struct tagNET_IN_XRAY_GETPACKTOTALINFO
  80470. {
  80471. DWORD dwSize; // 结构体大小
  80472. int nChannelNum; // 有效通道号的个数
  80473. int nChannelsID[MAX_XRAY_CHANNEL_NUM]; // 通道号
  80474. NET_XRAY_PACK_CONDITION stuCondition; // 查询条件
  80475. }NET_IN_XRAY_GETPACKTOTALINFO;
  80476. ///@brief 按危险等级统计的包裹数量信息
  80477. typedef struct tagNET_GRADE_PACK_NUM_INFO
  80478. {
  80479. unsigned int nNormalPackNum; // 普通包裹个数
  80480. unsigned int nWarnPackNum; // 警示包裹个数
  80481. unsigned int nDangerPackNum; // 危险包裹个数
  80482. BYTE byReserved[20]; // 预留字节
  80483. }NET_GRADE_PACK_NUM_INFO;
  80484. ///@brief 按物品类型统计的包裹数信息
  80485. typedef struct tagNET_PACK_TYPE_NUM_INFO
  80486. {
  80487. unsigned int nUnknownNum; // 未识别物品的包裹数量
  80488. unsigned int nKnifeNum; // 包含刀具的包裹数量
  80489. unsigned int nBottleLiquidNum; // 含瓶装液体的包裹数量
  80490. unsigned int nGunNum; // 含枪支的包裹数量
  80491. unsigned int nUmbrellaNum; // 含雨伞的包裹数量
  80492. unsigned int nPhoneNum; // 含手机的包裹数量
  80493. unsigned int nNotebookNum; // 含笔记本的包裹数量
  80494. unsigned int nPowerbankNum; // 含充电宝的包裹数量
  80495. unsigned int nShoesNum; // 含鞋子的包裹数量
  80496. unsigned int nRodNum; // 含杆子的包裹数量
  80497. unsigned int nMetalNum; // 含金属的包裹数量
  80498. unsigned int nExplosiveNum; // 含爆炸物的包裹数量
  80499. unsigned int nContainerSprayNum; // 含喷雾喷灌的包裹数量
  80500. unsigned int nExplosiveFireworksNum; // 含烟花爆竹的包裹数量
  80501. unsigned int nLighterNum; // 含打火机的包裹数量
  80502. unsigned int nStickNum; // 含警棍的包裹数量
  80503. unsigned int nBrassknuckleNum; // 含有指虎的包裹的数量
  80504. unsigned int nHandcuffsNum; // 含有手铐的包裹的数量
  80505. unsigned int nIvoryNum; // 含有象牙的包裹的数量
  80506. BYTE byReserved[996]; // 预留字节
  80507. }NET_PACK_TYPE_NUM_INFO;
  80508. ///@brief 包裹信息
  80509. typedef struct tagNET_XRAY_PACKINFO
  80510. {
  80511. unsigned int nTotalNum; // 所有包裹总数
  80512. NET_GRADE_PACK_NUM_INFO stuGradePackNumInfo; // 按危险等级统计的包裹数量信息
  80513. NET_PACK_TYPE_NUM_INFO stuPackTypeNumInfo; // 按物品类型统计的包裹数信息
  80514. int nChannel; // 统计信息通道号
  80515. BYTE byReserved[1024]; // 预留字节
  80516. }NET_XRAY_PACKINFO;
  80517. ///@brief 获取X光检各类包裹数量统计信息出参
  80518. typedef struct tagNET_OUT_XRAY_GETPACKTOTALINFO
  80519. {
  80520. DWORD dwSize; // 结构体大小
  80521. NET_XRAY_PACKINFO stuXrayPackInfo[MAX_XRAY_CHANNEL_NUM]; // X光检各类包裹数量统计信息
  80522. int nRetXrayPackInfoNum; // 返回的统计信息个数
  80523. }NET_OUT_XRAY_GETPACKTOTALINFO;
  80524. ///@brief 获取X光检各类包裹数量统计信息
  80525. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Xray_GetPackTotalInfo(LLONG lLoginID, const NET_IN_XRAY_GETPACKTOTALINFO* pInParam, NET_OUT_XRAY_GETPACKTOTALINFO* pOutParam,int nWaitTime);
  80526. ///@brief 通过危险物等级统计的包裹信息
  80527. typedef struct tagNET_IN_PACKAGE_STATISTICS_BYGRADE
  80528. {
  80529. EM_DANGER_GRADE_TYPE emGrade; // 危险物等级
  80530. UINT nCount; // 危险物数量
  80531. BYTE byReserved[64]; // 预留字段
  80532. }NET_IN_PACKAGE_STATISTICS_BYGRADE;
  80533. ///@brief 通过物品类型统计的包裹信息
  80534. typedef struct tagNET_IN_PACKAGE_STATISTICS_BYTYPE
  80535. {
  80536. EM_INSIDE_OBJECT_TYPE emType; // 危险物类型
  80537. UINT nCount; // 危险物数量
  80538. char szType[32]; // 自定义危险物类型
  80539. BYTE byReserved[32]; // 预留字段
  80540. }NET_IN_PACKAGE_STATISTICS_BYTYPE;
  80541. ///@brief 包裹信息
  80542. typedef struct tagNET_IN_XRAY_STATISTICS_INFO
  80543. {
  80544. char szUUID[36]; // UUID
  80545. UINT nStatisticsInfoID; // 统计信息ID
  80546. NET_TIME_EX stuBeginTime; // 开始时间
  80547. NET_TIME_EX stuEndTime; // 结束时间
  80548. UINT nTotalCount; // 包裹总数
  80549. UINT nStatisticsInfoByGradeNum; // 按危险等级统计的信息的数量
  80550. NET_IN_PACKAGE_STATISTICS_BYGRADE stuStatisticsInfoByGrade[16]; // 按危险等级统计的信息
  80551. UINT nStatisticsInfoByTypeNum; // 按危险类型统计的信息的数量
  80552. NET_IN_PACKAGE_STATISTICS_BYTYPE stuStatisticsInfoByType[64]; // 按危险类型统计的信息
  80553. BYTE byReserved[1024]; // 保留字段
  80554. }NET_IN_XRAY_PACKAGE_STATISTICS_INFO;
  80555. ///@brief 包裹信息回调函数
  80556. typedef void (CALLBACK *fXRayAttachPackageStatistics)(LLONG lAttachHandle, NET_IN_XRAY_PACKAGE_STATISTICS_INFO* pInfo, LDWORD dwUser);
  80557. ///@brief CLIENT_XRayAttachPackageStatistics 输入结构体
  80558. typedef struct tagNET_IN_XRAY_ATTACH_PACKAGE_STATISTICS
  80559. {
  80560. DWORD dwSize; // 赋值为结构体大小
  80561. char szUUID[36]; // UUID
  80562. fXRayAttachPackageStatistics cbNotify; // 回调函数
  80563. LDWORD dwUser; // 用户信息
  80564. }NET_IN_XRAY_ATTACH_PACKAGE_STATISTICS;
  80565. ///@brief CLIENT_XRayAttachPackageStatistics 输出结构体
  80566. typedef struct tagNET_OUT_XRAY_ATTACH_PACKAGE_STATISTICS
  80567. {
  80568. DWORD dwSize; // 赋值为结构体大小
  80569. }NET_OUT_XRAY_ATTACH_PACKAGE_STATISTICS;
  80570. ///@brief 订阅X光机包裹数量统计信息
  80571. CLIENT_NET_API LLONG CALL_METHOD CLIENT_XRayAttachPackageStatistics(LLONG lLoginID, const NET_IN_XRAY_ATTACH_PACKAGE_STATISTICS* pInParam, NET_OUT_XRAY_ATTACH_PACKAGE_STATISTICS* pOutParam, int nWaitTime);
  80572. ///@brief 取消订阅X光机包裹数量统计信息
  80573. ///@brief lAttachHandle 为 CLIENT_XRayAttachPackageStatistics 返回值
  80574. CLIENT_NET_API BOOL CALL_METHOD CLIENT_XRayDetachPackageStatistics(LLONG lAttachHandle);
  80575. ///@brief 外设类型
  80576. typedef enum tagEM_XRAY_PERIPHERAL_TYPE
  80577. {
  80578. EM_XRAY_PERIPHERAL_TYPE_UNKNOWN, // 未知
  80579. EM_XRAY_PERIPHERAL_TYPE_FLUID_DETECTION, // 液探
  80580. EM_XRAY_PERIPHERAL_TYPE_BLAST_DETECTION, // 炸探
  80581. }EM_XRAY_PERIPHERAL_TYPE;
  80582. ///@brief 外设信息
  80583. typedef struct tagNET_XRAY_PERIPHERAL_DEVICE_INFO
  80584. {
  80585. char szIp[64]; // IP地址
  80586. EM_XRAY_PERIPHERAL_TYPE emType; // 设备类型
  80587. BYTE byReserved[444]; // 保留字节
  80588. }NET_XRAY_PERIPHERAL_DEVICE_INFO;
  80589. ///@brief 在线外设设备列表回调函数
  80590. typedef void (CALLBACK *fAttachXRayPeripheralDeviceList)(LLONG lAttachHandle, NET_XRAY_PERIPHERAL_DEVICE_INFO* pDevList, int nDevListNum, LDWORD dwUser);
  80591. ///@brief CLIENT_XRay_GetPeripheralDeviceList 入参
  80592. typedef struct tagNET_IN_XRAY_GET_PERIPHERAL_DEVICE_LIST
  80593. {
  80594. DWORD dwSize; // 赋值为结构体大小
  80595. }NET_IN_XRAY_GET_PERIPHERAL_DEVICE_LIST;
  80596. ///@brief CLIENT_XRay_GetPeripheralDeviceList 出参
  80597. typedef struct tagNET_OUT_XRAY_GET_PERIPHERAL_DEVICE_LIST
  80598. {
  80599. DWORD dwSize; // 赋值为结构体大小
  80600. int nRetDevNum; // 返回的stuDevList实际个数
  80601. NET_XRAY_PERIPHERAL_DEVICE_INFO stuDevList[256]; // 设备信息列表
  80602. }NET_OUT_XRAY_GET_PERIPHERAL_DEVICE_LIST;
  80603. ///@brief CLIENT_XRay_AttachPeripheralDeviceList 入参
  80604. typedef struct tagNET_IN_XRAY_ATTACH_PERIPHERAL_DEVICE_LIST
  80605. {
  80606. DWORD dwSize; // 赋值为结构体大小
  80607. fAttachXRayPeripheralDeviceList cbNotify; // 回调函数
  80608. LDWORD dwUser; // 用户信息
  80609. }NET_IN_XRAY_ATTACH_PERIPHERAL_DEVICE_LIST;
  80610. ///@brief CLIENT_XRay_AttachPeripheralDeviceList 出参
  80611. typedef struct tagNET_OUT_XRAY_ATTACH_PERIPHERAL_DEVICE_LIST
  80612. {
  80613. DWORD dwSize; // 赋值为结构体大小
  80614. }NET_OUT_XRAY_ATTACH_PERIPHERAL_DEVICE_LIST;
  80615. ///@brief 获取在线外设设备列表
  80616. CLIENT_NET_API BOOL CALL_METHOD CLIENT_XRay_GetPeripheralDeviceList(LLONG lLoginID, const NET_IN_XRAY_GET_PERIPHERAL_DEVICE_LIST* pInParam, NET_OUT_XRAY_GET_PERIPHERAL_DEVICE_LIST* pOutParam, int nWaitTime);
  80617. ///@brief 订阅在线外设设备列表
  80618. CLIENT_NET_API LLONG CALL_METHOD CLIENT_XRay_AttachPeripheralDeviceList(LLONG lLoginID, const NET_IN_XRAY_ATTACH_PERIPHERAL_DEVICE_LIST* pInParam, NET_OUT_XRAY_ATTACH_PERIPHERAL_DEVICE_LIST* pOutParam, int nWaitTime);
  80619. ///@brief 取消订阅在线外设设备变化列表
  80620. // lAttachHandle 为 CLIENT_XRayAttachPeripheralDeviceList 返回值
  80621. CLIENT_NET_API BOOL CALL_METHOD CLIENT_XRay_DetachPeripheralDeviceList(LLONG lAttachHandle);
  80622. ///@brief X光机集中判图时的开包信息
  80623. typedef struct tagNET_XRARY_UNPACKING_INFO
  80624. {
  80625. char szPackageTag[32]; // 包裹标识
  80626. int nMainViewInsideNum; // 主视角包裹内危险物品个数
  80627. NET_INSIDE_OBJECT stuMainViewInside[32]; // 主视角包裹内危险物品信息
  80628. int nSlaveViewInsideNum; // 侧视角包裹内危险物品个数
  80629. NET_INSIDE_OBJECT stuSlaveViewInside[32]; // 侧视角包裹内危险物品信息
  80630. char reserved[1024];
  80631. }NET_XRARY_UNPACKING_INFO;
  80632. ///@brief CLIENT_XRay_RequstUnpacking 入参
  80633. typedef struct tagNET_IN_XRAY_REQ_UNPACKING
  80634. {
  80635. DWORD dwSize; // 赋值为结构体大小
  80636. NET_XRARY_UNPACKING_INFO stuPackage; // 包裹信息
  80637. }NET_IN_XRAY_REQ_UNPACKING;
  80638. ///@brief CLIENT_XRay_RequstUnpacking 出参
  80639. typedef struct tagNET_OUT_XRAY_REQ_UNPACKING
  80640. {
  80641. DWORD dwSize; // 赋值为结构体大小
  80642. }NET_OUT_XRAY_REQ_UNPACKING;
  80643. ///@brief 开包检查结果回调函数
  80644. typedef void (CALLBACK *fXRayUnpackingResult)(LLONG lAttachHandle, NET_XRARY_UNPACKING_INFO* pInfo, LDWORD dwUser);
  80645. ///@brief CLIENT_XRay_AttachUnpackingResult 入参
  80646. typedef struct tagNET_IN_XRAY_ATTACH_UNPACKING
  80647. {
  80648. DWORD dwSize; // 赋值为结构体大小
  80649. fXRayUnpackingResult cbNotify; // 开包检查结果回调
  80650. LDWORD dwUser; // 用户信息
  80651. }NET_IN_XRAY_ATTACH_UNPACKING;
  80652. ///@brief CLIENT_XRay_AttachUnpackingResult 出参
  80653. typedef struct tagNET_OUT_XRAY_ATTACH_UNPACKING
  80654. {
  80655. DWORD dwSize; // 赋值为结构体大小
  80656. }NET_OUT_XRAY_ATTACH_UNPACKING;
  80657. ///@brief X光机集中判图时 请求协助开包检查
  80658. CLIENT_NET_API BOOL CALL_METHOD CLIENT_XRay_RequstUnpacking(LLONG lLoginID, const NET_IN_XRAY_REQ_UNPACKING* pInParam, NET_OUT_XRAY_REQ_UNPACKING* pOutParam, int nWaitTime);
  80659. ///@brief X光机集中判图时 订阅开包检查结果
  80660. CLIENT_NET_API LLONG CALL_METHOD CLIENT_XRay_AttachUnpackingResult(LLONG lLoginID, const NET_IN_XRAY_ATTACH_UNPACKING* pInParam, NET_OUT_XRAY_ATTACH_UNPACKING* pOutParam, int nWaitTime);
  80661. ///@brief X光机集中判图时 退订开包检查结果
  80662. // lAttachHandle 为 CLIENT_XRay_AttachUnpackingResult 返回值
  80663. CLIENT_NET_API BOOL CALL_METHOD CLIENT_XRay_DetachUnpackingResult(LLONG lAttachHandle);
  80664. ///@brief 温度类型
  80665. typedef enum tagNET_TEMPERATURE_TYPE
  80666. {
  80667. NET_TEMPERATURE_TYPE_CPU, // 处理器
  80668. }NET_TEMPERATURE_TYPE;
  80669. ///@brief CLIENT_FaceBoard_GetHistoryTemperature的入参
  80670. typedef struct tagNET_IN_GET_HISTORY_TEMPERATURE
  80671. {
  80672. DWORD dwSize; // 结构体大小
  80673. NET_TEMPERATURE_TYPE emTemperatureType; // 温度类型
  80674. }NET_IN_GET_HISTORY_TEMPERATURE;
  80675. ///@brief 每个温度监测点的历史温度
  80676. typedef struct tagNET_TEMPERATURE_VALUE
  80677. {
  80678. double dbHistoryTemperature[MAX_HISTORY_TEMPERATURE_NUM]; // 历史温度值,单位:摄氏度
  80679. int nRetHistoryTemperatureNum; // 返回的有效历史温度值个数
  80680. BYTE byReserved[4]; // 保留字节
  80681. }NET_TEMPERATURE_VALUE;
  80682. ///@brief 历史温度信息
  80683. typedef struct tagNET_HISTORY_TEMPERATURE_INFO
  80684. {
  80685. int nRetMonitorPointNum; // 返回的有效温度监测点的个数
  80686. BYTE byReserved[4]; // 保留字节,为了字节对齐
  80687. NET_TEMPERATURE_VALUE stuMonitorPointTemperature[MAX_TEMPERATURE_POINT_NUM]; // 监测点历史温度
  80688. BYTE byReserved1[1024]; // 保留字节
  80689. }NET_HISTORY_TEMPERATURE_INFO;
  80690. ///@brief CLIENT_FaceBoard_GetHistoryTemperature的出参
  80691. typedef struct tagNET_OUT_GET_HISTORY_TEMPERATURE
  80692. {
  80693. DWORD dwSize; // 结构体大小
  80694. BYTE byReserved[4]; // 保留字节,为了字节对齐
  80695. NET_HISTORY_TEMPERATURE_INFO stuHistoryTemperatureInfo; // 历史温度信息
  80696. }NET_OUT_GET_HISTORY_TEMPERATURE;
  80697. ///@brief 获取历史温度值
  80698. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceBoard_GetHistoryTemperature(LLONG lLoginID, const NET_IN_GET_HISTORY_TEMPERATURE *pInParam, NET_OUT_GET_HISTORY_TEMPERATURE *pOutParam, int nWaitTime);
  80699. ///@brief 温度类型
  80700. typedef enum tagEM_TEMPERATUREEX_TYPE
  80701. {
  80702. EM_TEMPERATUREEX_TYPE_UNKNOWN, // 未知
  80703. EM_TEMPERATUREEX_TYPE_ALL, // 全部
  80704. EM_TEMPERATUREEX_TYPE_POWER, // 电源
  80705. EM_TEMPERATUREEX_TYPE_CABINET, // 机柜
  80706. EM_TEMPERATUREEX_TYPE_GLOBAL, // 环境
  80707. EM_TEMPERATUREEX_TYPE_MAINBOARD, // 主板
  80708. EM_TEMPERATUREEX_TYPE_CARD, // 子卡
  80709. EM_TEMPERATUREEX_TYPE_BACKBOARD, // 背板
  80710. EM_TEMPERATUREEX_TYPE_CPU, // 处理器
  80711. }EM_TEMPERATUREEX_TYPE;
  80712. ///@brief CLIENT_FaceBoard_GetTemperatureEx的入参
  80713. typedef struct tagNET_IN_GET_TEMPERATUREEX
  80714. {
  80715. DWORD dwSize; // 结构体大小
  80716. EM_TEMPERATUREEX_TYPE emTemperatureType; // 温度类型
  80717. }NET_IN_GET_TEMPERATUREEX;
  80718. ///@brief 每个监测点的温度
  80719. typedef struct tagNET_TEMPERATUREEX_VALUE
  80720. {
  80721. EM_TEMPERATUREEX_TYPE emTemperatureType; // 温度类型
  80722. int nRetTemperatureNum; // 返回的有效温度值个数
  80723. float fTemperature[MAX_HISTORY_TEMPERATURE_NUM]; // 温度值,单位:摄氏度
  80724. BYTE byReserved[128]; // 保留字节
  80725. }NET_TEMPERATUREEX_VALUE;
  80726. ///@brief CLIENT_FaceBoard_GetTemperatureEx的出参
  80727. typedef struct tagNET_OUT_GET_TEMPERATUREEX
  80728. {
  80729. DWORD dwSize; // 结构体大小
  80730. int nRetMonitorPointNum; // 返回的有效温度监测点的个数,num>1时,对应emTemperatureType为ALL
  80731. NET_TEMPERATUREEX_VALUE stuTemperatureEx[MAX_TEMPERATUREEX_POINT_NUM]; // 监测点温度
  80732. }NET_OUT_GET_TEMPERATUREEX;
  80733. ///@brief 获取温度值
  80734. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceBoard_GetTemperatureEx(LLONG lLoginID, const NET_IN_GET_TEMPERATUREEX *pInParam, NET_OUT_GET_TEMPERATUREEX *pOutParam, int nWaitTime);
  80735. ///@brief CLIENT_GetAlarmOutState 入参
  80736. typedef struct tagNET_IN_GET_ALARM_OUT_STATE
  80737. {
  80738. DWORD dwSize; // 结构体大小
  80739. } NET_IN_GET_ALARM_OUT_STATE;
  80740. #define MAX_OUT_STATE_COUNT 32
  80741. ///@brief CLIENT_GetAlarmOutState 出参
  80742. typedef struct tagNET_OUT_GET_ALARM_OUT_STATE
  80743. {
  80744. DWORD dwSize; // 结构体大小
  80745. int nState[MAX_OUT_STATE_COUNT]; // 输出端口状态, 0表示没有, 1表示有
  80746. } NET_OUT_GET_ALARM_OUT_STATE;
  80747. ///@brief 获得每个报警输出端口的状态
  80748. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAlarmOutState(LLONG lLoginID, const NET_IN_GET_ALARM_OUT_STATE *pInParam, NET_OUT_GET_ALARM_OUT_STATE *pOutParam, int nWaitTime);
  80749. ///@brief 二维码类型
  80750. typedef enum tagNET_EM_2DCODE_TYPE
  80751. {
  80752. NET_EM_2DCODE_TYPE_OZVISION, // P2P功能
  80753. NET_EM_2DCODE_TYPE_LCWEBSITE, // LC手机客户端
  80754. NET_EM_2DCODE_TYPE_EASY4IP, // easy4ip手机客户端
  80755. NET_EM_2DCODE_TYPE_DMSS, // i/gDMSS手机客户端
  80756. NET_EM_2DCODE_TYPE_VIDEOTALK, // 可视对讲客户端
  80757. NET_EM_2DCODE_TYPE_APPREGISTER, // app注册信息二维码
  80758. NET_EM_2DCODE_TYPE_DEVAUTH, // H500平台向MD平台获取授权
  80759. }NET_EM_2DCODE_TYPE;
  80760. ///@brief 获取工作目录实例 入参
  80761. typedef struct tagNET_IN_WORKDIRECTORY_GETGROUP_INFO
  80762. {
  80763. DWORD dwSize;
  80764. char szDirectoryName[DH_COMMON_STRING_256]; // 磁盘目录名称
  80765. }NET_IN_WORKDIRECTORY_GETGROUP_INFO;
  80766. ///@brief 获取工作目录实例 出参
  80767. typedef struct tagNET_OUT_WORKDIRECTORY_GETGROUP_INFO
  80768. {
  80769. DWORD dwSize;
  80770. char szGroupName[DH_COMMON_STRING_256]; // 工作目录组名
  80771. }NET_OUT_WORKDIRECTORY_GETGROUP_INFO;
  80772. ///@brief 获取工作目录组名
  80773. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WorkDirectoryGetGroup(LLONG lLoginID, const NET_IN_WORKDIRECTORY_GETGROUP_INFO *pInParam, NET_OUT_WORKDIRECTORY_GETGROUP_INFO *pOutParam, int nWaitTime);
  80774. ///@brief 设置工作目录组名 入参
  80775. typedef struct tagNET_IN_WORKDIRECTORY_SETGROUP_INFO
  80776. {
  80777. DWORD dwSize;
  80778. char szGroupName[DH_COMMON_STRING_256]; // 工作目录组名
  80779. char szDirectoryName[DH_COMMON_STRING_256]; // 磁盘目录名称
  80780. }NET_IN_WORKDIRECTORY_SETGROUP_INFO;
  80781. ///@brief 设置工作目录组名 出参
  80782. typedef struct tagNET_OUT_WORKDIRECTORY_SETGROUP_INFO
  80783. {
  80784. DWORD dwSize;
  80785. }NET_OUT_WORKDIRECTORY_SETGROUP_INFO;
  80786. ///@brief 设置工作目录组名
  80787. CLIENT_NET_API BOOL CALL_METHOD CLIENT_WorkDirectorySetGroup(LLONG lLoginID, const NET_IN_WORKDIRECTORY_SETGROUP_INFO *pInParam, NET_OUT_WORKDIRECTORY_SETGROUP_INFO *pOutParam, int nWaitTime);
  80788. ///@brief CLIENT_Get2DCode 入参
  80789. typedef struct tagNET_IN_GET_2DCODE
  80790. {
  80791. DWORD dwSize; // 结构体大小
  80792. NET_EM_2DCODE_TYPE em2DCodeType; // 二维码类型
  80793. }NET_IN_GET_2DCODE;
  80794. ///@brief CLIENT_Get2DCode 出参
  80795. typedef struct tagNET_OUT_GET_2DCODE
  80796. {
  80797. DWORD dwSize; // 结构体大小
  80798. char sz2DCode[DH_COMMON_STRING_512]; // 二维码信息
  80799. }NET_OUT_GET_2DCODE;
  80800. ///@brief 获取二维码信息
  80801. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Get2DCode(LLONG lLoginID, const NET_IN_GET_2DCODE *pInParam, NET_OUT_GET_2DCODE *pOutParam, int nWaitTime);
  80802. ///@brief CLIENT_Set2DCode 入参
  80803. typedef struct tagNET_IN_SET_2DCODE
  80804. {
  80805. DWORD dwSize; // 结构体大小
  80806. NET_EM_2DCODE_TYPE em2DCodeType; // 二维码类型
  80807. char sz2DCode[DH_COMMON_STRING_512]; // 二维码信息
  80808. }NET_IN_SET_2DCODE;
  80809. ///@brief CLIENT_Set2DCode 出参
  80810. typedef struct tagNET_OUT_SET_2DCODE
  80811. {
  80812. DWORD dwSize; // 结构体大小
  80813. }NET_OUT_SET_2DCODE;
  80814. ///@brief 设置二维码信息
  80815. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Set2DCode(LLONG lLoginID, const NET_IN_SET_2DCODE *pInParam, NET_OUT_SET_2DCODE *pOutParam, int nWaitTime);
  80816. ///@brief 目标库导入状态
  80817. typedef enum tagEM_IMPORT_FACEDB_STATE
  80818. {
  80819. EM_IMPORT_FACEDB_UNKNOWN, // 未知
  80820. EM_IMPORT_FACEDB_ONGING, // 导入中
  80821. EM_IMPORT_FACEDB_END, // 导入结束, 开始生成数据库
  80822. EM_IMPORT_FACEDB_BUSY, // 系统忙,已经有导入任务
  80823. EM_IMPORT_FACEDB_DATAERROR, // 数据包检验失败
  80824. EM_IMPORT_FACEDB_INVALID, // 数据包非法
  80825. EM_IMPORT_FACEDB_SYNC_SUCCESS, // 同步成功, 数据库已生成
  80826. EM_IMPORT_FACEDB_SYNC_FALIED, // 同步失败, 数据库无法生成
  80827. EM_IMPORT_FACEDB_DBFULL, // 数据库已满无法导入
  80828. EM_IMPORT_FACEDB_SDFULL, // 存储空间满无法导入
  80829. EM_IMPORT_FACEDB_CIPHER_ERROR, // 导入压缩包密码不对
  80830. EM_IMPORT_FACEDB_SEND_FAIL, // 发送目标库数据失败
  80831. EM_IMPORT_FACEDB_UPLOAD_FAIL, // 上传失败
  80832. EM_IMPORT_FACEDB_UPLOAD_NO_PERMISSION, // 无权上传数据
  80833. } EM_IMPORT_FACEDB_STATE;
  80834. ///@brief 目标对比库进度类型
  80835. typedef enum tagEM_FACEDB_PROGRESS_TYPE
  80836. {
  80837. EM_FACEDB_PROGRESS_IMPORT, // 目标库导入进度
  80838. EM_FACEDB_PROGRESS_DEPLOY, // 目标库部署进度
  80839. } EM_FACEDB_PROGRESS_TYPE;
  80840. ///@brief 导入目标库状态信息
  80841. typedef struct tagNET_IMPORT_FACEDB_STATE
  80842. {
  80843. unsigned int nProgress; // 进度, 百分比
  80844. EM_FACEDB_PROGRESS_TYPE emType; // 进度类型
  80845. EM_IMPORT_FACEDB_STATE emState; // 状态信息
  80846. int nLogicChannel; // 逻辑通道号, 0表示本地通道, 1表示远程通道0, 以此类推
  80847. int nDeploySuccessNum; // 当前已部署成功人员数量
  80848. int nTotalNum; // 人员总数
  80849. BYTE byReserved[500]; // 保留字节
  80850. } NET_IMPORT_FACEDB_STATE;
  80851. ///@brief 导入目标库回调函数原形
  80852. typedef void (CALLBACK *fImportFaceDbCallBack) (LLONG lImportFaceDbHandle, NET_IMPORT_FACEDB_STATE *pstFaceDbState, LDWORD dwUser);
  80853. ///@brief CLIENT_ImportFaceDB 接口输入参数
  80854. typedef struct tagNET_IN_IMPORT_FACE_DB
  80855. {
  80856. DWORD dwSize; // 结构体大小
  80857. char szGroupId[DH_COMMON_STRING_64]; // 人员组ID
  80858. char szPassWord[DH_COMMON_STRING_64]; // 压缩密码
  80859. char *pszFaceDBPath; // 目标库路径, 由用户指定, 后续优先使用szFaceDBFilePath
  80860. fImportFaceDbCallBack cbImportState; // 上传状态回调函数
  80861. LDWORD dwUser; // 用户数据
  80862. int nWaitTime; // 超时时间
  80863. UINT nFaceDBFileNum; // 目标库文件个数
  80864. char szFaceDBFilePath[32][256]; // 目标库文件路径列表, 由用户指定
  80865. // 文件列表并不是指多个目标库, 所有的文件都是指向同一个目标库
  80866. int nLogicChannelNum; // 逻辑通道号数
  80867. int nLogicChannels[10]; // 逻辑通道号数组, -1表示所有通道, 0表示本地通道, 1表示远程通道0, 以此类推
  80868. } NET_IN_IMPORT_FACE_DB;
  80869. ///@brief CLIENT_ImportFaceDB 接口输出参数
  80870. typedef struct tagNET_OUT_IMPORT_FACE_DB
  80871. {
  80872. DWORD dwSize; // 结构体大小
  80873. } NET_OUT_IMPORT_FACE_DB;
  80874. ///@brief 目标库导入接口
  80875. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ImportFaceDB(LLONG lLoginID, const NET_IN_IMPORT_FACE_DB *pInParam, NET_OUT_IMPORT_FACE_DB *pOutParam);
  80876. ///@brief 停止目标库导入
  80877. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopImportFaceDB(LLONG lImportFaceDbHandle);
  80878. ///@brief 导出目标对比库错误码
  80879. typedef enum tagEM_EXPORT_FACEDB_ERRORCODE
  80880. {
  80881. EM_EXPORT_FACEDB_REQUEST_SUCCESS = 1, // 目标库导出请求成功
  80882. EM_EXPORT_FACEDB_NO_AUTHORITY = 2, // 无权限
  80883. EM_EXPORT_FACEDB_NO_THIS_FILE = 3, // 文件不存在
  80884. EM_EXPORT_FACEDB_EXPORT_END = 4, // 导出结束
  80885. EM_EXPORT_FACEDB_EXPORTING = 5, // 导出中
  80886. EM_EXPORT_FACEDB_FILE_READY = 8, // 文件准备完成
  80887. EM_EXPORT_FACEDB_FILE_FAILED = 9, // 文件准备失败
  80888. EM_EXPORT_FACEDB_WAIT_FILE = 10, // 目标库导出请求成功, 需要等待设备准备数据
  80889. EM_EXPORT_FACEDB_SYSTEM_BUSY = 11, // 系统忙, 暂时无法导出数据
  80890. EM_EXPORT_FACEDB_NO_PASSWORD = 12, // 目标库数据未定义密码, 不允许导出
  80891. } EM_EXPORT_FACEDB_ERRORCODE;
  80892. ///@brief 导出目标库状态信息
  80893. typedef struct tagNET_EXPORT_FACEDB_STATE
  80894. {
  80895. unsigned int nProgress; // 进度, 百分比
  80896. EM_EXPORT_FACEDB_ERRORCODE emErrorCode; // 错误码
  80897. char *pDataBuf; // 目标库导出数据
  80898. DWORD dwDataLen; // 数据长度
  80899. int nLogicChannel; // 逻辑通道号, 0表示本地通道, 1表示远程通道0, 以此类推
  80900. BYTE byReserved[508]; // 保留字节
  80901. } NET_EXPORT_FACEDB_STATE;
  80902. ///@brief 导出目标库回调函数原形
  80903. typedef void (CALLBACK *fExportStateCallBack)(LLONG lExportFaceDbHandle, NET_EXPORT_FACEDB_STATE *pstFaceDbState, LDWORD dwUser);
  80904. ///@brief CLIENT_ExportFaceDB 接口输入参数
  80905. typedef struct tagNET_IN_EXPORT_FACE_DB
  80906. {
  80907. DWORD dwSize; // 结构体大小
  80908. char szGroupId[DH_COMMON_STRING_64]; // 人员组ID
  80909. char szPassWord[DH_COMMON_STRING_64]; // 压缩密码
  80910. fExportStateCallBack cbExportFaceDbCallBack; // 导出目标库回调函数
  80911. LDWORD dwUser; // 用户数据
  80912. int nWaitTime; // 超时时间
  80913. int nLogicChannel; // 逻辑通道号, 0表示本地通道, 1表示远程通道0, 以此类推
  80914. } NET_IN_EXPORT_FACE_DB;
  80915. ///@brief CLIENT_ExportFaceDB 接口输出参数
  80916. typedef struct tagNET_OUT_EXPORT_FACE_DB
  80917. {
  80918. DWORD dwSize; // 结构体大小
  80919. } NET_OUT_EXPORT_FACE_DB;
  80920. ///@brief 目标库导出接口
  80921. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ExportFaceDB(LLONG lLoginID, const NET_IN_EXPORT_FACE_DB *pInParam, NET_OUT_EXPORT_FACE_DB *pOutParam);
  80922. ///@brief 停止目标库导出
  80923. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopExportFaceDB(LLONG lExportFaceDbHandle);
  80924. ///@brief PIR检测区域信息
  80925. typedef struct tagNET_DETECT_WINDOW_IFNO
  80926. {
  80927. int nRegionID; // 动态窗口ID
  80928. char szRegionName[DH_COMMON_STRING_128]; // 动态窗口名称
  80929. int nThreshold; // 面积阀值, 取值[0, 100]
  80930. int nSensitive; // 灵敏度, 取值[0, 100]
  80931. int nRegionRow; // 动态检测区域的行数
  80932. int nRegionCol; // 动态检测区域的列数
  80933. BYTE byRegion[DH_MOTION_ROW][DH_MOTION_COL]; // 检测区域, 最多32*32块区域
  80934. int nLevel; // 灵敏度,取值[1,6]
  80935. BYTE byReserved[508]; // 保留字节
  80936. } NET_DETECT_WINDOW_IFNO;
  80937. ///@brief 灯光联动方式
  80938. typedef enum tagEM_PIR_LIGHT_LINK_TYPE
  80939. {
  80940. EM_PIR_LIGHT_LINK_TYPE_UNKNOWN, // 未知
  80941. EM_PIR_LIGHT_LINK_TYPE_FILCKER, // 闪烁
  80942. EM_PIR_LIGHT_LINK_TYPE_KEEPLIGHTING, // 常亮
  80943. } EM_PIR_LIGHT_LINK_TYPE;
  80944. ///@brief 联动白光灯威慑
  80945. typedef struct tagNET_LIGHTINGLINK_INFO
  80946. {
  80947. BOOL bEnable; // 是否联动
  80948. EM_PIR_LIGHT_LINK_TYPE emLightLinkType; // 灯光联动方式
  80949. int nFilckerIntevalTime; // 闪烁间隔时间, 单位为0.1s
  80950. int nLightDuration; // 灯光闪烁或常亮持续时间, 单位秒
  80951. DH_TSECT stuWhiteLightTimeSection[DH_TSCHE_DAY_NUM][DH_TSCHE_SEC_NUM]; // 联动白光灯威慑时间段
  80952. BYTE byReserved[512]; // 保留字节
  80953. } NET_LIGHTINGLINK_INFO ;
  80954. ///@brief 报警联动信息
  80955. typedef struct tagNET_PIR_LINK_INFO
  80956. {
  80957. BOOL bRecordEnable; // 录像使能
  80958. BOOL bAlarmOutEnable; // 报警输出使能
  80959. BOOL bSnapshotEnable; // 快照使能
  80960. BOOL bMailEnable; // 发送邮件,如果有图片,作为附件
  80961. BOOL bAlarmBellEnable; // 警号输出使能
  80962. BOOL bLogEnable; // 是否记录报警日志
  80963. int nRecordChannelNum; // 录像通道个数
  80964. int nRecordChannels[DH_COMMON_STRING_64]; // 录像通道号列表
  80965. int nRecordLatch; // 录像延时时间, 范围[10,300]
  80966. int nAlarmOutChannelNum; // 报警输出通道个数
  80967. int AlarmOutChannels[DH_COMMON_STRING_32]; // 报警输出通道号列表
  80968. int nAlarmOutLatch; // 报警输入停止后,输出延时时间,范围[1,300]
  80969. int nSnapshotChannelNum; // 快照通道个数
  80970. int SnapshotChannels[DH_COMMON_STRING_32]; // 快照通道号列表
  80971. int nAlarmBellLatch; // 警号输出延时时间,10~300
  80972. int nDejitter; // 去抖动时间
  80973. NET_LIGHTINGLINK_INFO stLightingLink; // 联动白光灯威慑
  80974. NET_CFG_TIME_SCHEDULE stTimeShecule; // 报警时间段
  80975. BYTE byReserved1[512]; // 保留字段
  80976. }NET_PIR_LINK_INFO;
  80977. // PIR检测区域最大个数
  80978. #define MAX_DETECT_WINDOW 4
  80979. ///@brief PIR配置信息
  80980. typedef struct tagNET_PIR_ALARM_INFO
  80981. {
  80982. BOOL bEnable;
  80983. int nDetectWindowCount; // PIR检测区域个数
  80984. NET_DETECT_WINDOW_IFNO stDetectWindow[MAX_DETECT_WINDOW]; // PIR检测区域
  80985. NET_PIR_LINK_INFO stPirLink; // 报警联动信息
  80986. } NET_PIR_ALARM_INFO;
  80987. ///@brief CLIENT_GetPirAlarmParam 入参
  80988. typedef struct tagNET_IN_GET_PIR_ALARM_PARAM
  80989. {
  80990. DWORD dwSize;
  80991. int nChannel; // 视频通道号
  80992. } NET_IN_GET_PIR_ALARM_PARAM;
  80993. ///@brief CLIENT_GetPirAlarmParam 出参
  80994. typedef struct tagNET_OUT_GET_PIR_ALARM_PARAM
  80995. {
  80996. DWORD dwSize;
  80997. NET_PIR_ALARM_INFO stPirAlarmInfo; // PIR配置信息
  80998. int nPirAlarmNum; // 实际获取到的个数
  80999. NET_PIR_ALARM_INFO stPirAlarmInfoEx[MAX_PIRPARAM_NUM]; // 用于有多个pir的设备,最大10
  81000. } NET_OUT_GET_PIR_ALARM_PARAM;
  81001. ///@brief CLIENT_SetPirAlarmParam 入参
  81002. typedef struct tagNET_IN_SET_PIR_ALARM_PARAM
  81003. {
  81004. DWORD dwSize;
  81005. int nChannel; // 视频通道号
  81006. NET_PIR_ALARM_INFO stPirAlarmInfo; // PIR配置信息
  81007. int nPirAlarmNum; // 需要设置的个数
  81008. NET_PIR_ALARM_INFO stPirAlarmInfoEx[MAX_PIRPARAM_NUM]; // 用于有多个pir的设备
  81009. } NET_IN_SET_PIR_ALARM_PARAM;
  81010. ///@brief CLIENT_SetPirAlarmParam 出参
  81011. typedef struct tagNET_OUT_SET_PIR_ALARM_PARAM
  81012. {
  81013. DWORD dwSize;
  81014. } NET_OUT_SET_PIR_ALARM_PARAM;
  81015. ///@brief 获取PIR配置
  81016. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPirAlarmParam(LLONG lLoginID, const NET_IN_GET_PIR_ALARM_PARAM *pstInParam, NET_OUT_GET_PIR_ALARM_PARAM *pstOutParam, int nWaitTime);
  81017. ///@brief 设置PIR配置
  81018. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPirAlarmParam(LLONG lLoginID, const NET_IN_SET_PIR_ALARM_PARAM *pstInParam, NET_OUT_SET_PIR_ALARM_PARAM *pstOutParam, int nWaitTime);
  81019. ///@brief Onvif 用户所在组
  81020. typedef enum tagEM_GROUP_TYPE
  81021. {
  81022. EM_GROUP_TYPE_UNKNOWN, // UnKnown
  81023. EM_GROUP_TYPE_ADMIN, // admin
  81024. EM_GROUP_TYPE_OPERATOR, // operator
  81025. EM_GROUP_TYPE_USER, // user
  81026. EM_GROUP_TYPE_ANONYMOUS, // anonymous
  81027. } EM_GROUP_TYPE;
  81028. ///@brief 动检数据
  81029. typedef struct tagNET_MOTION_DATA
  81030. {
  81031. int nRegionID; // 动态窗口ID
  81032. int nThreshold; // 面积阀值, 取值[0, 100]
  81033. BYTE byReserved[512]; // 保留字节
  81034. } NET_MOTION_DATA;
  81035. ///@brief Onvif 新用户信息
  81036. typedef struct tagNET_ONVIF_USER_INFO
  81037. {
  81038. char szName[DH_COMMON_STRING_128]; // 用户名
  81039. char szPassword[DH_COMMON_STRING_128]; // 密码
  81040. NET_TIME stuPasswordModifiedTime; // 最近修改密码的时间
  81041. EM_GROUP_TYPE emGroupType; // 用户所在的组
  81042. BOOL bReserved; // 用户是否为保留用户,保留用户不可删除
  81043. BYTE byReserved[512]; // 保留字节
  81044. } NET_ONVIF_USER_INFO;
  81045. ///@brief 添加Onvif用户,CLIENT_AddOnvifUser 入参
  81046. typedef struct tagNET_IN_ADD_ONVIF_USER_INFO
  81047. {
  81048. DWORD dwSize; // 结构体大小
  81049. char szName[128]; // 用户名
  81050. char szPassword[128]; // 密码
  81051. EM_GROUP_TYPE emGroupType; // 用户所在的组
  81052. } NET_IN_ADD_ONVIF_USER_INFO;
  81053. ///@brief 添加Onvif用户,CLIENT_AddOnvifUser 出参
  81054. typedef struct tagNET_OUT_ADD_ONVIF_USER_INFO
  81055. {
  81056. DWORD dwSize; // 结构体大小
  81057. } NET_OUT_ADD_ONVIF_USER_INFO;
  81058. ///@brief 修改 Onvif用户,CLIENT_ModifyOnvifUser 入参
  81059. typedef struct tagNET_IN_MODIFYONVIF_USER_INFO
  81060. {
  81061. DWORD dwSize; // 结构体大小
  81062. char szName[DH_COMMON_STRING_128]; // 需要修改的用户名称
  81063. NET_ONVIF_USER_INFO stUserInfo; // 新用户信息
  81064. } NET_IN_MODIFYONVIF_USER_INFO;
  81065. ///@brief 修改 Onvif用户,CLIENT_ModifyOnvifUser 出参
  81066. typedef struct tagNET_OUT_MODIFYONVIF_USER_INFO
  81067. {
  81068. DWORD dwSize; // 结构体大小
  81069. } NET_OUT_MODIFYONVIF_USER_INFO;
  81070. ///@brief 获取所有 Onvif 用户信息,CLIENT_GetOnvifUserInfoAll 入参
  81071. typedef struct tagNET_IN_GETONVIF_USERINFO_ALL_INFO
  81072. {
  81073. DWORD dwSize; // 结构体大小
  81074. } NET_IN_GETONVIF_USERINFO_ALL_INFO;
  81075. ///@brief 获取所有 Onvif 用户信息, CLIENT_GetOnvifUserInfoAll 出参
  81076. typedef struct tagNET_OUT_GETONVIF_USERINFO_ALL_INFO
  81077. {
  81078. DWORD dwSize; // 结构体大小
  81079. int nRetUserInfoNumber; // 本次已查询到的个数
  81080. NET_ONVIF_USER_INFO stuUserInfo[MAX_ONVIF_USER_NUM]; // 用户信息列表(无法获取到密码信息)
  81081. } NET_OUT_GETONVIF_USERINFO_ALL_INFO;
  81082. ///@brief 修改 Onvif 用户密码, CLIENT_ModifyOnvifUserPassword 入参
  81083. typedef struct tagNET_IN_MODIFYONVIF_PASSWORD_INFO
  81084. {
  81085. DWORD dwSize; // 结构体大小
  81086. char szName[DH_COMMON_STRING_128]; // 用户名称
  81087. char szPwd[DH_COMMON_STRING_128]; // 用户密码
  81088. char szPwdOld[DH_COMMON_STRING_128]; // 旧密码
  81089. } NET_IN_MODIFYONVIF_PASSWORD_INFO;
  81090. ///@brief 修改 Onvif 用户密码,CLIENT_ModifyOnvifUserPassword 出参
  81091. typedef struct tagNET_OUT_MODIFYONVIF_PASSWORD_INFO
  81092. {
  81093. DWORD dwSize; // 结构体大小
  81094. } NET_OUT_MODIFYONVIF_PASSWORD_INFO;
  81095. ///@brief 添加Onvif用户, pstInParam、pstOutParam 内存由用户申请、释放
  81096. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddOnvifUser(LLONG lLoginID, const NET_IN_ADD_ONVIF_USER_INFO *pstuInParam, NET_OUT_ADD_ONVIF_USER_INFO *pstuOutParam, int nWaitTime);
  81097. ///@brief 修改 Onvif 用户(只能修改非 admin用户)pstInParam、pstOutParam 内存由用户申请、释放
  81098. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyOnvifUser(LLONG lLoginID, const NET_IN_MODIFYONVIF_USER_INFO *pstInParam, NET_OUT_MODIFYONVIF_USER_INFO *pstOutParam, int nWaitTime);
  81099. ///@brief 获取所有 Onvif 用户信息,pstInParam、pstOutParam 内存由用户申请、释放
  81100. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetOnvifUserInfoAll(LLONG lLoginID, const NET_IN_GETONVIF_USERINFO_ALL_INFO *pstInParam, NET_OUT_GETONVIF_USERINFO_ALL_INFO *pstOutParam, int nWaitTime);
  81101. ///@brief 修改 Onvif 用户密码, pstInParam、pstOutParam 内存由用户申请、释放
  81102. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyOnvifUserPassword(LLONG lLoginID, const NET_IN_MODIFYONVIF_PASSWORD_INFO *pstInParam, NET_OUT_MODIFYONVIF_PASSWORD_INFO *pstOutParam, int nWaitTime);
  81103. #define MAX_MOTION_DATA_COUNT 4 // 动检窗口最大个数
  81104. ///@brief 回调元数据消息
  81105. typedef struct tagNET_CB_MOTION_DATA
  81106. {
  81107. DWORD dwSize;
  81108. int nMotionDataCount; // 动检窗口个数
  81109. NET_MOTION_DATA stMotionData[MAX_MOTION_DATA_COUNT]; // 动检数据
  81110. int nRegionRow; // 动态检测区域的行数
  81111. int nRegionCol; // 动态检测区域的列数
  81112. BYTE byRegion[DH_MOTION_ROW][DH_MOTION_COL]; // 检测区域, 最多32*32块区域
  81113. } NET_CB_MOTION_DATA;
  81114. ///@brief 订阅动检元数据处理回调函数原形,lAttachHandle是CLIENT_attachMotionData返回值, 每次1条
  81115. typedef void (CALLBACK *fAttachMotionDataCB) (LLONG lAttachHandle, NET_CB_MOTION_DATA* pBuf, LDWORD dwUser);
  81116. ///@brief CLIENT_AttachMotionData 输入参数
  81117. typedef struct tagNET_IN_ATTACH_MOTION_DATA
  81118. {
  81119. DWORD dwSize;
  81120. int nChannel; // 通道号
  81121. fAttachMotionDataCB cbNotify; // 回调函数
  81122. LDWORD dwUser; // 用户数据
  81123. } NET_IN_ATTACH_MOTION_DATA;
  81124. ///@brief CLIENT_AttachMotionData 输出参数
  81125. typedef struct tagNET_OUT_ATTACH_MOTION_DATA
  81126. {
  81127. DWORD dwSize;
  81128. } NET_OUT_ATTACH_MOTION_DATA;
  81129. ///@brief 订阅动检元数据
  81130. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachMotionData(LLONG lLoginID, const NET_IN_ATTACH_MOTION_DATA* pstInParam, NET_OUT_ATTACH_MOTION_DATA *pstOutParam, int nWaitTime);
  81131. ///@brief 退订事件元数据,lAttachHandle是CLIENT_attachMotionData返回值
  81132. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachMotionData(LLONG lAttachHandle);
  81133. ///@brief 指令源
  81134. typedef enum tagEM_SRC_INSRUCTION
  81135. {
  81136. EM_SRC_INSRUCTION_VTO_CALL, // 门口机呼叫
  81137. EM_SRC_INSRUCTION_VTO_CARD, // 门口机刷卡
  81138. EM_SRC_INSRUCTION_LIFT_CARD, // 梯控机刷卡
  81139. EM_SRC_INSRUCTION_VTH_CALL, // 室内机招梯
  81140. EM_SRC_INSRUCTION_VTO_FINGERPRINT, // 门口机刷信息
  81141. EM_SRC_INSRUCTION_VTO_PSW, // 门口机刷密码
  81142. }EM_SRC_INSRUCTION;
  81143. ///@brief CLIENT_CallLift 入参
  81144. typedef struct tagNET_IN_LIFTCONTROL_CALLLIFT_INFO
  81145. {
  81146. DWORD dwSize;
  81147. char szFloorNo[4]; // 楼层号
  81148. char szRoomNo[12]; // 房间号
  81149. char szUserID[8]; // 用户ID
  81150. char szCardNo[32]; // 卡号
  81151. EM_SRC_INSRUCTION emSrcInstruction; // 指令源
  81152. }NET_IN_LIFTCONTROL_CALLLIFT_INFO;
  81153. ///@brief CLIENT_CallLift 出参
  81154. typedef struct tagNET_OUT_LIFTCONTROL_CALLLIFT_INFO
  81155. {
  81156. DWORD dwSize;
  81157. }NET_OUT_LIFTCONTROL_CALLLIFT_INFO;
  81158. ///@brief 招梯控制。点亮上下行按钮
  81159. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CallLift(LLONG lLoginID, const NET_IN_LIFTCONTROL_CALLLIFT_INFO *pstInParam, NET_OUT_LIFTCONTROL_CALLLIFT_INFO *pstOutParam, int nWaitTime);
  81160. ///@brief CLIENT_ControlLift 入参
  81161. typedef struct tagNET_IN_LIFTCONTROL_CONTROLLIFT_INFO
  81162. {
  81163. DWORD dwSize;
  81164. int nFloorNum; // 楼层数量
  81165. char szFloorNo[32][4]; // 楼层号
  81166. char szRoomNo[12]; // 房间号
  81167. char szUserID[8]; // 用户ID
  81168. char szCardNo[32]; // 卡号
  81169. EM_SRC_INSRUCTION emSrcInstruction; // 指令源
  81170. }NET_IN_LIFTCONTROL_CONTROLLIFT_INFO;
  81171. ///@brief CLIENT_ControlLift 出参
  81172. typedef struct tagNET_OUT_LIFTCONTROL_CONTROLLIFT_INFO
  81173. {
  81174. DWORD dwSize;
  81175. }NET_OUT_LIFTCONTROL_CONTROLLIFT_INFO;
  81176. ///@brief 梯控控制。使用场景:门口机刷卡招梯,那么点亮电梯里有权限的楼层按钮
  81177. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlLift(LLONG lLoginID, const NET_IN_LIFTCONTROL_CONTROLLIFT_INFO *pstInParam, NET_OUT_LIFTCONTROL_CONTROLLIFT_INFO *pstOutParam, int nWaitTime);
  81178. ///@brief CLIENT_GetFloorInfo入参
  81179. typedef struct tagNET_IN_GET_FLOOR_INFO
  81180. {
  81181. DWORD dwSize; // 结构体大小
  81182. int nFloorNum; // 楼层号个数
  81183. char szFloors[128][8]; // 楼层号
  81184. }NET_IN_GET_FLOOR_INFO;
  81185. ///@brief 楼层号信息
  81186. typedef struct tagNET_FLOOR_INFO
  81187. {
  81188. char szFloor[16]; // 楼层号
  81189. UINT nControlModuleToken; // 楼层号对应梯控模块地址
  81190. UINT nControlModulePort; // 楼层号对应梯控模块端口
  81191. UINT nCallLiftModuleToken; // 楼层号对应呼梯模块令牌
  81192. UINT nCallLiftModulePort; // 楼层号对应呼梯模块端口
  81193. BYTE byReserved[256]; // 保留字节
  81194. }NET_FLOOR_INFO;
  81195. ///@brief CLIENT_GetFloorInfo出参
  81196. typedef struct tagNET_OUT_GET_FLOOR_INFO
  81197. {
  81198. DWORD dwSize; // 结构体大小
  81199. int nFloorInfoNum; // 楼层号信息个数
  81200. NET_FLOOR_INFO stuFloorInfo[128]; // 楼层号信息
  81201. }NET_OUT_GET_FLOOR_INFO;
  81202. ///@brief 根据楼层号获取对应梯控模块映射关系
  81203. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFloorInfo(LLONG lLoginID, const NET_IN_GET_FLOOR_INFO *pstInParam, NET_OUT_GET_FLOOR_INFO *pstOutParam, int nWaitTime);
  81204. ///@brief CLIENT_GetElevatorWorkInfo 接口入参
  81205. typedef struct tagNET_IN_GET_ELEVATOR_WORK_INFO
  81206. {
  81207. DWORD dwSize; // 结构体大小
  81208. int nChannel; // 视频通道号
  81209. char szReserved[256]; // 保留字节
  81210. }NET_IN_GET_ELEVATOR_WORK_INFO;
  81211. ///@brief CLIENT_GetElevatorWorkInfo 接口出参
  81212. typedef struct tagNET_OUT_GET_ELEVATOR_WORK_INFO
  81213. {
  81214. DWORD dwSize; // 结构体大小
  81215. UINT nElevatorWorkState; // 电梯运行状态, 0 电梯停止, 1 电梯上行, 2 电梯下行
  81216. char szElevatorFloor[32]; // 电梯所在的楼层
  81217. UINT nElevatorWorkSpeed; // 电梯运行速度, 单位mm/s
  81218. BOOL bIsCheckFloor; // 基准楼层是否已校准(梯控传感器重启需要重新校准)
  81219. char szReserved[256]; // 保留字节
  81220. }NET_OUT_GET_ELEVATOR_WORK_INFO;
  81221. ///@brief 获取当前电梯运行信息
  81222. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetElevatorWorkInfo(LLONG lLoginID, const NET_IN_GET_ELEVATOR_WORK_INFO* pstuInParam, NET_OUT_GET_ELEVATOR_WORK_INFO* pstuOutParam, int nWaitTime);
  81223. ///@brief 无线配置类型
  81224. typedef enum tagNET_ENUM_LOWRATEWPAN_CONFIG
  81225. {
  81226. NET_ENUM_LOWRATEWPAN_ACCESS_WORKMODE, // 工作模式配置,对应结构体 NET_LOWRATEWPAN_WORKMODE
  81227. }NET_ENUM_LOWRATEWPAN_CONFIG;
  81228. ///@brief 工作模式
  81229. typedef enum tagNET_ENUM_LOWRATEWPAN_WORKMODE
  81230. {
  81231. NET_ENUM_LOWRATEWPAN_WORKMODE_UNKNOWN, // 未知
  81232. NET_ENUM_LOWRATEWPAN_WORKMODE_NORMAL, // 正常
  81233. NET_ENUM_LOWRATEWPAN_WORKMODE_CLEAN, // 打扫
  81234. NET_ENUM_LOWRATEWPAN_WORKMODE_DECORATION, // 装修
  81235. NET_ENUM_LOWRATEWPAN_WORKMODE_UNUSED, // 停用
  81236. NET_ENUM_LOWRATEWPAN_WORKMODE_OUTSTANDING, // 欠费
  81237. }NET_ENUM_LOWRATEWPAN_WORKMODE;
  81238. ///@brief 工作模式配置
  81239. typedef struct tagNET_LOWRATEWPAN_WORKMODE
  81240. {
  81241. DWORD dwSize;
  81242. NET_ENUM_LOWRATEWPAN_WORKMODE emWorkMode; // 工作模式
  81243. }NET_LOWRATEWPAN_WORKMODE;
  81244. ///@brief 无线配置获取接口
  81245. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetLowRateWPANConfig(LLONG lLoginID,NET_ENUM_LOWRATEWPAN_CONFIG emType,char* SN,void* szOutBuffer, DWORD dwOutBufferSize, int nWaitTime, void *reserve);
  81246. ///@brief 无线配置设置接口
  81247. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetLowRateWPANConfig(LLONG lLoginID,NET_ENUM_LOWRATEWPAN_CONFIG emType,char* SN,void* szInBuffer, DWORD dwInBufferSize, int nWaitTime, int *restart, void *reserve);
  81248. ///@brief CLIENT_GetVideoDiagnosisState 入参
  81249. typedef struct tagNET_IN_GET_VIDEODIAGNOSIS_STATE
  81250. {
  81251. DWORD dwSize; // 结构体大小
  81252. char szProject[128]; // 计划名,为空表示所有执行的计划
  81253. }NET_IN_GET_VIDEODIAGNOSIS_STATE;
  81254. ///@brief 诊断状态
  81255. typedef struct tagVIDEODIAGNOSIS_STATE
  81256. {
  81257. BOOL bEnable; // 是否使能
  81258. BOOL bRunning; // 是否正在运行 使能开启,并且当前有工作任务正在进行,没有错误发生。
  81259. char szCurrentProject[MAX_PATH]; // 当前计划名称
  81260. char szCurrentTask[MAX_PATH]; // 当前任务名称
  81261. char szCurrentProfile[MAX_PATH]; // 当前任务配置参数表名称
  81262. int nCurrentSourceCount; // 当前任务轮训视频源个数
  81263. int nCurrentSourceIndex; // 当前任务当前视频源序号 从0开始
  81264. DH_TSECT stCurrentTimeSection; // 当前计划时间段
  81265. int nTaskCountOfProject; // 当前计划总任务数
  81266. int nIndexOfCurrentTask; // 当前任务序号 从0开始
  81267. int nIncompleteCause; // 只有当任务状态为TaskState=2时生效,返回未完成原因 0:指定时间内没有完成巡检,1:授权路数超限,2:加密到期
  81268. int nTaskState; // 任务运行状态 -1:未知 0表示未开始,1表示运行中,2表示未完成,3表示已完成
  81269. BYTE byReserved[504]; // 保留字节
  81270. }VIDEODIAGNOSIS_STATE;
  81271. ///@brief CLIENT_GetVideoDiagnosisState 出参
  81272. typedef struct tagNET_OUT_GET_VIDEODIAGNOSIS_STATE
  81273. {
  81274. DWORD dwSize; // 结构体大小
  81275. VIDEODIAGNOSIS_STATE stuState[2]; // 工作状态,数组下标0:Tour,1:RealTime
  81276. }NET_OUT_GET_VIDEODIAGNOSIS_STATE;
  81277. ///@brief 获取视频诊断进行状态
  81278. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoDiagnosisState(LLONG lLoginID, const NET_IN_GET_VIDEODIAGNOSIS_STATE *pstInParam, NET_OUT_GET_VIDEODIAGNOSIS_STATE *pstOutParam, int nWaitTime);
  81279. #define LOGIN_TYPE_DEVICE_NOT_SUPPORT 100 // 设备不支持此种登录
  81280. ///@brief CLIENT_PostLoginTask 输入参数
  81281. typedef struct tagNET_POST_LOGIN_TASK
  81282. {
  81283. LLONG lLoginID; //登录句柄
  81284. char* pchDVRIP; //设备IP
  81285. LONG nDVRPort; //设备端口
  81286. BOOL bOnline; //设备状态 bOnline为TRUE表示登录成功,为FALSE时表示登录失败。
  81287. NET_DEVICEINFO_Ex stuDeviceInfo; //设备信息扩展
  81288. int nError; //当登陆失败时(bOnline为FALSE),nError 的错误码含义说明参考 CLIENT_Login 中的 error 说明,同时,当nError为 LOGIN_TYPE_DEVICE_NOT_SUPPORT 时,表示设备不支持此种登录方式
  81289. char szReserve[1024]; //保留字段
  81290. }NET_POST_LOGIN_TASK;
  81291. ///@brief CLIENT_PostLoginTask 登录结果回调
  81292. typedef void (CALLBACK *fPostLoginTask)(DWORD dwTaskID, NET_POST_LOGIN_TASK* pOutParam, LDWORD dwUser);
  81293. ///@brief 连接类型
  81294. typedef enum tagEM_TCP_LOGIN_CONFIG_TYPE
  81295. {
  81296. EM_TCP_LOGIN_CONFIG_TYPE_UNKNOWN = 0, // 未知配置
  81297. EM_TCP_LOGIN_CONFIG_TYPE_MULTICAST, // 组播配置
  81298. }EM_TCP_LOGIN_CONFIG_TYPE;
  81299. ///@brief CLIENT_PostLoginTask 输入参数
  81300. typedef struct tagNET_IN_POST_LOGIN_TASK
  81301. {
  81302. DWORD dwSize; // 赋值为结构体大小
  81303. char szReserve1[4]; // 保留字段1
  81304. char* szIp; // 设备ip
  81305. unsigned int nPort; // 登陆端口
  81306. char szReserve2[4]; // 保留字段2
  81307. char* szName; // 用户名
  81308. char* szPwd; // 密码
  81309. EM_LOGIN_SPAC_CAP_TYPE emSpecCap; // 登录方式,目前只支持 EM_LOGIN_SPEC_CAP_TCP、
  81310. // EM_LOGIN_SPEC_CAP_MAIN_CONN_ONLY、EM_LOGIN_SPEC_CAP_P2P
  81311. EM_TCP_LOGIN_CONFIG_TYPE emConfigType; // 当emSpecCap为EM_LOGIN_SPEC_CAP_TCP时,需要获取的配置类型,此时获取的配置和拉流相关
  81312. // 当为EM_TCP_LOGIN_CONFIG_TYPE_UNKNOWN时,码流通过TCP传输,为EM_TCP_LOGIN_CONFIG_TYPE_MULTICAST时,码流通过组播传输
  81313. fPostLoginTask cbLogin; // 登陆结果回调
  81314. void* pUser; // 回调用户参数
  81315. BOOL bHighLevelSecurity; // 是否高安全等级登陆
  81316. EM_LOGIN_TLS_TYPE emTLSCap; // 登录的TLS模式,目前仅支持EM_LOGIN_SPEC_CAP_TCP模式下的 tls登陆(TLS加密优先使用该选项)
  81317. char byReserved[128]; // 预留字段
  81318. }NET_IN_POST_LOGIN_TASK;
  81319. ///@brief CLIENT_PostLoginTask 输出参数
  81320. typedef struct tagNET_OUT_POST_LOGIN_TASK
  81321. {
  81322. DWORD dwSize; // 赋值为结构体大小
  81323. }NET_OUT_POST_LOGIN_TASK;
  81324. ///@brief 投递异步登录任务
  81325. CLIENT_NET_API DWORD CALL_METHOD CLIENT_PostLoginTask(const NET_IN_POST_LOGIN_TASK* pInParam, NET_OUT_POST_LOGIN_TASK* pOutParam);
  81326. ///@brief 取消 CLIENT_PostLoginTask 接口的异步登录任务,dwTaskID 为 CLIENT_PostLoginTask 返回值
  81327. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CancelLoginTask(DWORD dwTaskID);
  81328. /****************************** start 报警主机接口 与老报警主机不兼容***************************************/
  81329. ///@brief 获取能力 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ALARMCAPS
  81330. typedef struct tagNET_IN_GET_ALARMCAPS
  81331. {
  81332. DWORD dwSize; // 结构体大小
  81333. }NET_IN_GET_ALARMCAPS;
  81334. ///@brief Partial Arm的配置信息
  81335. typedef struct tagNET_PARTIAL_ARM
  81336. {
  81337. BOOL bEnable; // 是否支持Partial Arm。当bSupportArmProfile不使能时,才支持显示Partial布防。
  81338. int nIndex; // 指示Partial N布防,比如Index为1时,支持Partial1布防
  81339. BYTE byReserved[64]; // 预留字节
  81340. }NET_PARTIAL_ARM;
  81341. ///@brief 布撤防模式信息
  81342. typedef struct tagNET_AREA_ARM_MODE
  81343. {
  81344. BOOL bOutDoor; // 是否支持显示外出布防,当bSupportArmProfile使能时,才支持显示外出布防。执行setArmMode接口的布防模式参数为"T"
  81345. BOOL bAtHome; // 是否支持显示留守布防,当bSupportArmProfile使能时,才支持显示留守布防。执行setArmMode接口的布防模式参数为"p1"
  81346. BOOL bTotalArm; // 是否支持Total布防。当bSupportArmProfile不使能时,才支持显示Total布防。
  81347. int nPartialArmNum; // 是否支持Partial Arm的个数
  81348. NET_PARTIAL_ARM stuPartialArm[4]; // 是否支持Partial Arm,最多支持4个
  81349. BOOL bDisArm; // 是否支持撤防。一般默认都需要显示撤防
  81350. BYTE byReserved[516]; // 预留字节
  81351. }NET_AREA_ARM_MODE;
  81352. ///@brief 支持的SIM卡信息
  81353. typedef struct tagNET_SUPPORT_MULITSIM_CARDS
  81354. {
  81355. int nIndex; // sim卡标识
  81356. BOOL bEnable; // 是否启用
  81357. BYTE bReserved[64]; // 预留字节
  81358. }NET_SUPPORT_MULITSIM_CARDS;
  81359. ///@brief 旁路模式类型
  81360. typedef enum tagEM_BYPASSMODE_TYPE
  81361. {
  81362. EM_BYPASSMODE_TYPE_UNKNOWN, // 未知
  81363. EM_BYPASSMODE_TYPE_OFF, // 不使用
  81364. EM_BYPASSMODE_TYPE_ACTIVE, // 正常
  81365. EM_BYPASSMODE_TYPE_BYPASSED, // 旁路
  81366. EM_BYPASSMODE_TYPE_ISOLATED, // 隔离
  81367. EM_BYPASSMODE_TYPE_TEST, // 测试
  81368. }EM_BYPASSMODE_TYPE;
  81369. ///@brief 获取能力 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ALARMCAPS
  81370. typedef struct tagNET_OUT_GET_ALARMCAPS
  81371. {
  81372. DWORD dwSize; // 结构体大小
  81373. int nSiren; // 支持的警号数量
  81374. int nAlarmIn; // 支持的报警输入数量
  81375. int nAlarmOut; // 支持的报警输出数量, 最多82个
  81376. int nRemoteControl; // 支持的遥控器数量
  81377. int nICCard; // 支持的IC卡数量
  81378. int nKeypad; // 支持的键盘数量
  81379. int nTelephoneNumber; // 支持的电话号码数量
  81380. int nKeypadUserCount; // 支持的键盘用户数量
  81381. int nAlarmAreas; // 支持的Area(也可称为子系统)数量
  81382. BOOL bSupportOneClickArmMode; // 是否支持主机一键布撤防
  81383. BOOL bSupportDefenceArmMode; // 是否支持单防区布撤防
  81384. BOOL bSupportArmProfile; // 是否启用布防的情景模式
  81385. NET_AREA_ARM_MODE stuAreaArmMode; // 布撤防模式
  81386. int nZoomNum; // 防区工作模式个数
  81387. EM_BYPASSMODE_TYPE emZoomMode[16]; // 支持的防区工作模式
  81388. BOOL bSupportAlarmClear; // 是否支持消警命令
  81389. int nNetworkUserCount; // 支持的网络用户数量
  81390. int nSupportMultiSIMCardsNum; // 支持的SIM个数
  81391. NET_SUPPORT_MULITSIM_CARDS stuSupportMultiSIMCards[8]; //支持的SIM卡信息
  81392. }NET_OUT_GET_ALARMCAPS;
  81393. ///@brief 获取布防模式 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ARMMODE
  81394. typedef struct tagNET_IN_GET_ALARMMODE
  81395. {
  81396. DWORD dwSize; // 结构体大小
  81397. }NET_IN_GET_ALARMMODE;
  81398. ///@brief 布撤防信息
  81399. typedef struct tagNET_ARMMODE_INFO
  81400. {
  81401. EM_ARM_STATE emArmState; // 布撤防状态
  81402. BYTE byReserved[1024]; // 保留字节
  81403. }NET_ARMMODE_INFO;
  81404. ///@brief 获取布防模式 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ARMMODE
  81405. typedef struct tagNET_OUT_GET_ALARMMODE
  81406. {
  81407. DWORD dwSize; // 结构体大小
  81408. int nArmModeRet; // 布撤防状态个数
  81409. NET_ARMMODE_INFO stuArmMode[MAX_AREA_NUMBER]; // 布撤防信息
  81410. int nArmModeRetEx; // 布撤防状态个数扩展 超过8个请使用这个字段
  81411. NET_ARMMODE_INFO stuArmModeEx[MAX_AREA_NUMBER_EX]; // 布撤防信息
  81412. }NET_OUT_GET_ALARMMODE;
  81413. ///@brief 布撤防详细信息
  81414. typedef struct tagNET_ARM_OPTIONS
  81415. {
  81416. NET_EM_SCENE_MODE emSceneMode; // 情景模式
  81417. EM_AREAARM_TRIGGERMODE emAreaarmTriggerMode; // 触发方式
  81418. int nId; // 触发者编号,如用户编号、键盘地址、遥控器编号、定时器编号或key类型防区号
  81419. char szName[64]; // 触发者名称,如用户名称,键盘名称等
  81420. char szClientAddress[64]; // 网络用户IP地址或网络地址,对于TriggerMode为Remote时,需要填写此项
  81421. BYTE bReserved[132]; // 预留字节
  81422. }NET_ARM_OPTIONS;
  81423. ///@brief 执行布撤防时的附加信息
  81424. typedef struct tagNET_DETAIL_INFO
  81425. {
  81426. NET_ARM_OPTIONS stuArmOption; // 布撤防详细信息
  81427. BYTE byReserved[128]; // 预留字节
  81428. }NET_DETAIL_INFO;
  81429. ///@brief 设置布防模式 输入参数。此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_ARMMODE
  81430. typedef struct tagNET_IN_SET_ALARMMODE
  81431. {
  81432. DWORD dwSize; // 结构体大小
  81433. EM_ARM_TYPE emArmType; // 布撤防类型
  81434. char szPwd[256]; // 密码
  81435. int nAreaNum; // 区域的个数
  81436. int arrAreas[MAX_AREA_NUMBER]; // 区域号
  81437. NET_DETAIL_INFO stuDetail; // 执行布撤防时的附加信息
  81438. int nAreaNumEx; // 区域的扩展个数
  81439. int arrAreasEx[MAX_AREA_NUMBER_EX]; // 区域号扩展 个数超过8个使用这个字段
  81440. }NET_IN_SET_ALARMMODE;
  81441. ///@brief 布防失败细节
  81442. typedef struct tagARM_FAILED_DETAIL
  81443. {
  81444. int nArea; //布防失败的区域号
  81445. int nAlarmSourceRet; // 报警源输入返回个数
  81446. int arrAlarmSource[MAX_ZONE_NUMBER]; // 区域下包含的有源输入的防区
  81447. BYTE byReserved[1024]; // 保留字节
  81448. }ARM_FAILED_DETAIL;
  81449. ///@brief 异常防区信息
  81450. typedef struct tagNET_ZONE_ABNORMAL_INFO
  81451. {
  81452. int nIndex; // 防区号
  81453. char szName[32]; // 防区名称
  81454. char szReason[32]; // 异常原因,异常原因,平台直接取值做显示即可
  81455. BYTE byReserved[188]; // 保留字节
  81456. }NET_ZONE_ABNORMAL_INFO;
  81457. ///@brief 布防失败细节扩展字段
  81458. typedef struct tagARM_FAILED_DETAIL_EX
  81459. {
  81460. int nArea; // 布防失败的区域号
  81461. int nAlarmSourceRetEx; // 报警源输入返回个数
  81462. int arrAlarmSourceEx[256]; // 区域下包含的有源输入的防区
  81463. int nZoneAbnormalNum; // 异常防区信息个数
  81464. NET_ZONE_ABNORMAL_INFO stuZoneAbnormal[1024]; // 异常防区信息,最大有1024个
  81465. }ARM_FAILED_DETAIL_EX;
  81466. ///@brief 设备异常信息
  81467. typedef struct tagNET_DEVICE_FAULT_INFO
  81468. {
  81469. char szName[32]; // 设备名称
  81470. char szReason[32]; // 异常原因,平台直接取值做显示即可
  81471. BYTE byReserved[512]; // 保留字节
  81472. }NET_DEVICE_FAULT_INFO;
  81473. ///@brief 设置布防模式 输出参数。此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_ARMMODE
  81474. typedef struct tagNET_OUT_SET_ALARMMODE
  81475. {
  81476. DWORD dwSize; // 结构体大小
  81477. int nArmResult; // 布防结果 0:成功 1:失败
  81478. int nFailedAreaRet; // 布防失败的区域个数
  81479. ARM_FAILED_DETAIL stuFailedDetail[MAX_AREA_NUMBER]; // 布防失败的细节
  81480. int nFailedDetailNum; // 布防失败个数, 最大值为64
  81481. ARM_FAILED_DETAIL_EX* pstuFailedDetailEx; // 布防失败的细节扩展字段 布防个数大于8个使用此字段
  81482. int nDeviceFaultNum; // 异常设备信息个数
  81483. NET_DEVICE_FAULT_INFO stuDeviceFault[256]; // 设备异常信息,最大支持256个
  81484. }NET_OUT_SET_ALARMMODE;
  81485. ///@brief 设置旁路状态 输入参数。此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_BYPASSMODE
  81486. typedef struct tagNET_IN_SET_BYPASSMODE
  81487. {
  81488. DWORD dwSize; // 结构体大小
  81489. char szPwd[256]; // 密码
  81490. EM_BYPASSMODE_TYPE emType; // 旁路模式
  81491. int nZoneNum; // 防区个数
  81492. int arrZones[MAX_ZONE_NUMBER]; // 防区号
  81493. int nZoneNumEx; // 防区个数扩展
  81494. int arrZonesEx[MAX_ZONE_NUMBER_EX]; // 防区号扩展,超过72时使用此字段
  81495. }NET_IN_SET_BYPASSMODE;
  81496. ///@brief 设置旁路状态 输出参数,此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_BYPASSMODE
  81497. typedef struct tagNET_OUT_SET_BYPASSMODE
  81498. {
  81499. DWORD dwSize; // 结构体大小
  81500. }NET_OUT_SET_BYPASSMODE;
  81501. ///@brief 获取旁路状态 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_BYPASSMODE
  81502. typedef struct tagNET_IN_GET_BYPASSMODE
  81503. {
  81504. DWORD dwSize; // 结构体大小
  81505. int nZoneNum; // 防区个数
  81506. int arrZones[MAX_ZONE_NUMBER]; // 防区号, 从1开始
  81507. int nZoneNumEx; // 防区个数扩展
  81508. int arrZonesEx[MAX_ZONE_NUMBER_EX]; // 防区号扩展 超过72使用这个字段
  81509. }NET_IN_GET_BYPASSMODE;
  81510. ///@brief 获取旁路状态 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_BYPASSMODE
  81511. typedef struct tagNET_OUT_GET_BYPASSMODE
  81512. {
  81513. DWORD dwSize; // 结构体大小
  81514. int nZoneRet; // 防区个数
  81515. EM_BYPASSMODE_TYPE arrModes[MAX_ZONE_NUMBER]; // 防区工作模式
  81516. int nZoneRetEx; // 防区个数扩展
  81517. EM_BYPASSMODE_TYPE arrModesEx[MAX_ZONE_NUMBER_EX]; // 防区号扩展 超过72使用这个字段
  81518. }NET_OUT_GET_BYPASSMODE;
  81519. ///@brief 获取区域防区信息 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_AREAZONES
  81520. typedef struct tagNET_IN_GET_AREAZONES
  81521. {
  81522. DWORD dwSize; // 结构体大小
  81523. int nAreaNum; // 区域个数
  81524. int arrArea[MAX_AREA_NUMBER]; // 区域号
  81525. int nAreaNumEx; // 区域个数
  81526. int arrAreaEx[MAX_AREA_NUMBER_EX]; // 区域号扩展 区域个数超过8使用这个字段
  81527. }NET_IN_GET_AREAZONES;
  81528. ///@brief 区域信息
  81529. typedef struct tagNET_AREA_INFO
  81530. {
  81531. int nArea; //区域号
  81532. int nZoneRet; // 区域下的防区个数
  81533. int arrZones[MAX_ZONE_NUMBER]; //区域下的防区号
  81534. BYTE byReserved[1024]; // 保留字段
  81535. }NET_AREA_INFO;
  81536. ///@brief 防区信息
  81537. typedef struct tagNET_ZONES_INFO
  81538. {
  81539. int nIndex; // 防区号
  81540. char szName[128]; // 防区名称
  81541. UINT nSupPartial; // 第0位为1,表示支持Partial1 第1位为1,表示支持Partial2
  81542. BYTE byReserved[512]; // 保留字段
  81543. }NET_ZONES_INFO;
  81544. ///@brief 区域信息扩展字段
  81545. typedef struct tagNET_AREA_INFO_EX
  81546. {
  81547. int nArea; // 区域号
  81548. int nZoneRetEx; // 区域下的防区个数扩展
  81549. int arrZonesEx[MAX_ZONE_NUMBER_EX]; //区域下的防区号
  81550. BYTE byReserved[1024]; // 保留字段
  81551. }NET_AREA_INFO_EX;
  81552. ///@brief 区域信息扩展字段补充字段 与 NET_AREA_INFO_EX 的合集表示区域信息
  81553. typedef struct tagNET_AREA_INFO_EX_SUPPLEMENT
  81554. {
  81555. NET_ZONES_INFO stuZonesInfo[MAX_ZONE_NUMBER_EX]; // 防区信息
  81556. char szAreaName[128]; // 区域名称
  81557. BYTE byReserved[1024]; // 保留字段
  81558. }NET_AREA_INFO_EX_SUPPLEMENT;
  81559. ///@brief 获取区域防区信息 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_AREAZONES
  81560. typedef struct tagNET_OUT_GET_AREAZONES
  81561. {
  81562. DWORD dwSize; // 结构体大小
  81563. int nAreaRet; // 区域个数
  81564. NET_AREA_INFO stuAreaInfo[MAX_AREA_NUMBER]; // 区域信息
  81565. int nAreaRetEx; // 区域个数
  81566. NET_AREA_INFO_EX stuAreaInfoEx[MAX_AREA_NUMBER_EX]; // 区域信息扩展 超过8个防区使用此字段
  81567. NET_AREA_INFO_EX_SUPPLEMENT stuAreaInfoExSupplement[MAX_AREA_NUMBER_EX]; // 区域信息扩展补充字段
  81568. }NET_OUT_GET_AREAZONES;
  81569. ///@brief 获取所有报警防区 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ALLINSLOTS
  81570. typedef struct tagNET_IN_GET_ALLINSLOTS
  81571. {
  81572. DWORD dwSize; // 结构体大小
  81573. }NET_IN_GET_ALLINSLOTS;
  81574. ///@brief 获取所有报警防区 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ALLINSLOTS
  81575. typedef struct tagNET_OUT_GET_ALLINSLOTS
  81576. {
  81577. DWORD dwSize; // 结构体大小
  81578. int nLocol; // 本地防区数量, 最多8个
  81579. int nWired; // 有线防区数量, 最多64个
  81580. int nWireless; // 无线防区数量, 最多64个
  81581. }NET_OUT_GET_ALLINSLOTS;
  81582. ///@brief 获取所有报警输出 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ALLOUTSLOTS
  81583. typedef struct tagNET_IN_GET_ALLOUTSLOTS
  81584. {
  81585. DWORD dwSize; // 结构体大小
  81586. }NET_IN_GET_ALLOUTSLOTS;
  81587. ///@brief 获取所有报警输出 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ALLOUTSLOTS
  81588. typedef struct tagNET_OUT_GET_ALLOUTSLOTS
  81589. {
  81590. DWORD dwSize; // 结构体大小
  81591. int nLocol; // 本地报警输出数量, 最多2个
  81592. int nWired; // 扩展有线报警输出数量, 最多80个
  81593. int nWireless; // 扩展无线报警输出数量, 最多80个
  81594. }NET_OUT_GET_ALLOUTSLOTS;
  81595. ///@brief 获取防区练连接状态 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ZONECONNECTIONSSTATUS
  81596. typedef struct tagNET_IN_GET_CONNECTIONSTATUS
  81597. {
  81598. DWORD dwSize; // 结构体大小
  81599. }NET_IN_GET_CONNECTIONSTATUS;
  81600. ///@brief 获取防区连接状态 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ZONECONNECTIONSSTATUS
  81601. typedef struct tagNET_OUT_GET_CONNECTIONSTATUS
  81602. {
  81603. DWORD dwSize; // 结构体大小
  81604. int nZoneRet; // 防区个数
  81605. bool arrZoneStates[MAX_ZONE_NUMBER];// 防区在线状态false:离线 true:在线
  81606. int nZoonRetEx; // 防区个数扩展
  81607. BOOL arrZoneStatesEx[MAX_ZONE_NUMBER_EX];// 防区在线状态扩展FALSE:离线 TRUE:在线,防区个数超过72使用这个字段
  81608. }NET_OUT_GET_CONNECTIONSTATUS;
  81609. ///@brief 获取异常防区类型
  81610. typedef enum tagEM_GET_AREASSTATUS_TYPE
  81611. {
  81612. EM_GET_AREASSTATUS_TYPE_UNKNOWN, // 未知
  81613. EM_GET_AREASSTATUS_TYPE_ACTIVE, // 激活
  81614. EM_GET_AREASSTATUS_TYPE_OPEN, // 打开
  81615. }EM_GET_AREASSTATUS_TYPE;
  81616. ///@brief 获取区域状态 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_AREASTATUS
  81617. typedef struct tagNET_IN_GET_AREAS_STATUS
  81618. {
  81619. DWORD dwSize; // 结构体大小
  81620. EM_GET_AREASSTATUS_TYPE emType; // 获取异常防区类型
  81621. }NET_IN_GET_AREAS_STATUS;
  81622. ///@brief 防区异常状态
  81623. typedef enum tagEM_ZONE_STATUS
  81624. {
  81625. EM_ZONE_STATUS_UNKNOWN, // 未知
  81626. EM_ZONE_STATUS_ALARM, // 防区报警/打开
  81627. EM_ZONE_STATUS_TAMPER, // 防区防拆
  81628. EM_ZONE_STATUS_MASK, // 防区防遮挡
  81629. EM_ZONE_STATUS_SHORT, // 防区短路
  81630. EM_ZONE_STATUS_NORMAL, // 防区正常
  81631. }EM_ZONE_STATUS;
  81632. ///@brief 防区异常信息
  81633. typedef struct tagNET_ZONE_STATUS
  81634. {
  81635. int nIndex; // 防区号
  81636. EM_ZONE_STATUS emStatus; // 防区异常状态
  81637. BYTE byReserved[1024]; // 保留字节
  81638. }NET_ZONE_STATUS;
  81639. ///@brief 区域异常防区信息
  81640. typedef struct tagNET_AREA_STATUS
  81641. {
  81642. int nArea; // 区域号
  81643. int nZoneRet; // 防区个数
  81644. NET_ZONE_STATUS stuZoneStatus[MAX_ZONE_NUMBER]; // 防区异常状态
  81645. BYTE byReserved[1024]; // 保留字节
  81646. }NET_AREA_STATUS;
  81647. ///@brief 区域异常防区信息扩展
  81648. typedef struct tagNET_AREA_STATUS_EX
  81649. {
  81650. int nArea; // 区域号
  81651. int nZoneRetEx; // 防区个数扩展
  81652. NET_ZONE_STATUS stuZoneStatusEx[MAX_ZONE_NUMBER_EX]; // 防区异常状态
  81653. BYTE byReserved[1024]; // 保留字节
  81654. }NET_AREA_STATUS_EX;
  81655. ///@brief 获取区域状态 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_AREASTATUS
  81656. typedef struct tagNET_OUT_GET_AREAS_STATUS
  81657. {
  81658. DWORD dwSize; // 结构体大小
  81659. int nAreaRet; // 区域个数
  81660. NET_AREA_STATUS stuAreaStatus[MAX_AREA_NUMBER]; //区域防区异常状态信息
  81661. int nAreaRetEx; // 区域个数扩展
  81662. NET_AREA_STATUS_EX stuAreaStatusEx[MAX_AREA_NUMBER_EX]; //区域防区异常状态信息扩展,区域个数超过8个使用这个字段
  81663. }NET_OUT_GET_AREAS_STATUS;
  81664. ///@brief 输出通道类型
  81665. typedef enum tagEM_OUTPUT_TYPE
  81666. {
  81667. EM_OUTPUT_TYPE_UNKNOWN, // 未知
  81668. EM_OUTPUT_TYPE_SIREN, // 警号
  81669. EM_OUTPUT_TYPE_ALARMOUT, // 输出通道
  81670. }EM_OUTPUT_TYPE;
  81671. ///@brief 获取输出状态 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_OUTPUTSTATE
  81672. typedef struct tagNET_IN_GET_OUTPUT_STATE
  81673. {
  81674. DWORD dwSize; // 结构体大小
  81675. EM_OUTPUT_TYPE emType; // 通道类型
  81676. }NET_IN_GET_OUTPUT_STATE;
  81677. ///@brief 获取输出状态 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_OUTPUTSTATE
  81678. typedef struct tagNET_OUT_GET_OUTPUT_STATE
  81679. {
  81680. DWORD dwSize; // 结构体大小
  81681. int nStateRet; // 状态个数
  81682. bool arrStates[82]; // 状态false:关闭true打开
  81683. BYTE byReserved[6]; // 对齐
  81684. int nStateRetEx; // 状态个数扩展 超过82个使用这个字段
  81685. BOOL arrStatesEx[MAX_ZONE_NUMBER_EX]; // 状态FLASE:关闭TRUE打开
  81686. BYTE byReserved1[4]; // 对齐
  81687. }NET_OUT_GET_OUTPUT_STATE;
  81688. ///@brief 设置输出状态 输入参数。此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_OUTPUTSTATE
  81689. typedef struct tagNET_IN_SET_OUTPUT_STATE
  81690. {
  81691. DWORD dwSize; // 结构体大小
  81692. EM_OUTPUT_TYPE emType; // 输出类型
  81693. int nChannel; // emType= EM_OUTPUT_TYPE_SIREN时表示警号号
  81694. // emType= EM_OUTPUT_TYPE_ALARMOUT时表示通道号
  81695. bool action; // 输出动作false:关闭true:打开
  81696. BYTE byReserved[3]; // 字节对齐
  81697. }NET_IN_SET_OUTPUT_STATE;
  81698. ///@brief 设置输出状态输出参数。此时CLIENT_SetAlarmRegionInfo的emType参数为NET_EM_SET_ALARMREGION_INFO_OUTPUTSTATE
  81699. typedef struct tagNET_OUT_SET_OUTPUT_STATE
  81700. {
  81701. DWORD dwSize; // 结构体大小
  81702. }NET_OUT_SET_OUTPUT_STATE;
  81703. ///@brief 获取防区故障 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ZONESTROUBLE
  81704. typedef struct tagNET_IN_GET_ZONES_TROUBLE
  81705. {
  81706. DWORD dwSize; // 结构体大小
  81707. }NET_IN_GET_ZONES_TROUBLE;
  81708. ///@brief 防区故障类型
  81709. typedef enum tagEM_ZONE_TROUBLE_TYPE
  81710. {
  81711. EM_ZONE_TROUBLE_TYPE_UNKNOWN, // 未知
  81712. EM_ZONE_TROUBLE_TYPE_TAMPER, // 通道防拆
  81713. EM_ZONE_TROUBLE_TYPE_MASK, // 通道遮挡
  81714. EM_ZONE_TROUBLE_TYPE_SHORT, // 通道防短
  81715. EM_ZONE_TROUBLE_TYPE_ALARM, // 通道报警/打开
  81716. EM_ZONE_TROUBLE_TYPE_NORMAL, // 通道正常
  81717. }EM_ZONE_TROUBLE_TYPE;
  81718. ///@brief 防区故障信息
  81719. typedef struct tagNET_ZONE_TROUBLE_INFO
  81720. {
  81721. int nIndex; // 防区号
  81722. EM_ZONE_TROUBLE_TYPE emTroubleType; // 故障类型
  81723. BYTE byReserved[1024]; // 保留字节
  81724. }NET_ZONE_TROUBLE_INFO;
  81725. ///@brief 获取防区故障 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ZONESTROUBLE
  81726. typedef struct tagNET_OUT_GET_ZONES_TROUBLE
  81727. {
  81728. DWORD dwSize; // 结构体大小
  81729. int nZoneRet; //故障防区个数
  81730. NET_ZONE_TROUBLE_INFO stuTroubleInfo[MAX_ZONE_NUMBER]; //防区故障信息
  81731. int nZoneRetEx; // 故障防区个数扩展
  81732. NET_ZONE_TROUBLE_INFO stuTroubleInfoEx[MAX_ZONE_NUMBER_EX]; //防区故障信息扩展个数超过72使用这字段
  81733. }NET_OUT_GET_ZONES_TROUBLE;
  81734. ///@brief 通道类型
  81735. typedef enum tagEM_CHANNELS_STATE_TYPE
  81736. {
  81737. EM_CHANNELS_STATE_TYPE_UNKNOWN, // 未知
  81738. EM_CHANNELS_STATE_TYPE_ALL, // 所有通道
  81739. EM_CHANNELS_STATE_TYPE_ALARMIN, // 报警输入通道
  81740. EM_CHANNELS_STATE_TYPE_ALARMOUT, // 报警输出通道
  81741. EM_CHANNELS_STATE_TYPE_SIREN, // 警号通道
  81742. }EM_CHANNELS_STATE_TYPE;
  81743. ///@brief 获取通道状态查询条件
  81744. typedef struct tagNET_GET_CHANNELS_STATE_CONDITION
  81745. {
  81746. EM_CHANNELS_STATE_TYPE emType; // 通道类型
  81747. BYTE byReserved[1020]; // 保留字节
  81748. }NET_CHANNELS_STATE_CONDITION;
  81749. ///@brief 获取通道状态 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_CHANNELSSTATE
  81750. typedef struct tagNET_IN_GET_CHANNELS_STATE
  81751. {
  81752. DWORD dwSize; // 结构体大小
  81753. NET_CHANNELS_STATE_CONDITION stuCondition; // 获取通道状态查询条件
  81754. }NET_IN_GET_CHANNELS_STATE;
  81755. ///@brief 设备状态
  81756. typedef enum tagEM_DEV_STATUS
  81757. {
  81758. EM_DEV_STATUS_UNKNOWN = -1, // 未知
  81759. EM_DEV_STATUS_OFFLINE, // 离线
  81760. EM_DEV_STATUS_ONLINE, // 在线
  81761. }EM_DEV_STATUS;
  81762. ///@brief 输出状态
  81763. typedef enum tagEM_OUTPUT_STATE
  81764. {
  81765. EM_OUTPUT_STATE_UNKNOWN = -1, // 未知
  81766. EM_OUTPUT_STATE_CLOSE, // 关闭
  81767. EM_OUTPUT_STATE_OPEN, // 打开
  81768. }EM_OUTPUT_STATE;
  81769. ///@brief 探测器状态信息
  81770. typedef struct tagNET_SENSOR_STATE
  81771. {
  81772. int nExPowerState; // 外接电源连接状态 : 0:正常, 1:未连接
  81773. int nTamper; // 配件防拆状态 : 0:正常, 1:打开
  81774. int nLowPowerState; // 电池电量状态 : 0:正常, 1:低电量, 2:掉电
  81775. char szReserved[244]; // 保留字节
  81776. } NET_SENSOR_STATE;
  81777. ///@brief 通道状态
  81778. typedef struct tagNET_CHANNELS_STATE
  81779. {
  81780. EM_CHANNELS_STATE_TYPE emType; // 通道类型
  81781. UINT nIndex; // 通道号
  81782. EM_DEV_STATUS emOnlineState; // 在线状态
  81783. EM_ZONE_STATUS emAlarmState; // 报警状态,当emType为EM_CHANNELS_STATE_TYPE_ALARMIN时有效
  81784. EM_OUTPUT_STATE emOutputState; // 输出状态,当emType为EM_CHANNELS_STATE_TYPE_ALARMOUT,EM_CHANNELS_STATE_TYPE_SIREN时有效
  81785. char szName[64]; // 通道对应名称
  81786. char szSN[32]; // 通道对应SN号
  81787. NET_SENSOR_STATE stuSensorState; // 探测器状态信息
  81788. BYTE byReserved[60]; // 保留字节
  81789. }NET_CHANNELS_STATE;
  81790. ///@brief 获取通道状态 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_CHANNELSSTATE
  81791. typedef struct tagNET_OUT_GET_CHANNELS_STATE
  81792. {
  81793. DWORD dwSize; // 结构体大小
  81794. UINT nChannelsStatesCount; // 通道状态个数
  81795. NET_CHANNELS_STATE stuChannelsStates[1024]; // 通道状态
  81796. }NET_OUT_GET_CHANNELS_STATE;
  81797. ///@brief 配件类型
  81798. typedef enum tagNET_EM_ACCESSORY_TYPE
  81799. {
  81800. NET_EM_ACCESSORY_TYPE_UNKNOWN, //未知
  81801. NET_EM_ACCESSORY_TYPE_Keypad, //键盘
  81802. NET_EM_ACCESSORY_TYPE_MBUSExpansionModule, //MBUS扩展报警输入/输出模块
  81803. NET_EM_ACCESSORY_TYPE_RS485ExpansionModule, //RS485扩展报警输入/输出模块
  81804. NET_EM_ACCESSORY_TYPE_MBUSMotherBoard, //MBUS主板
  81805. }NET_EM_ACCESSORY_TYPE;
  81806. ///@brief 获取配件信息 输入参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ACCESSORY
  81807. typedef struct tagNET_IN_GET_ACCESSORY_INFO
  81808. {
  81809. DWORD dwSize; // 结构体大小
  81810. NET_EM_ACCESSORY_TYPE emAccessoryType; // 配件类型
  81811. }NET_IN_GET_ACCESSORY_INFO;
  81812. ///@brief 配件能力集
  81813. typedef struct tagNET_ACCESSORY_GAPS
  81814. {
  81815. BYTE bySupportSensitivity; // 是否支持灵敏度修改( 0-不支持, 1-支持)
  81816. BYTE byReserved[63]; // 保留字节
  81817. }NET_ACCESSORY_GAPS;
  81818. ///@brief 配件信息
  81819. typedef struct tagNET_ACCESSORY_INFO
  81820. {
  81821. NET_EM_ACCESSORY_TYPE emType; // 配件类型
  81822. int nChannel; // 总线号
  81823. UINT nAddr; // 配件地址
  81824. UINT nAlarmInCount; // 配件的报警输入总数
  81825. int nAlarmInChannels[16]; // 配件报警输入对应的通道号,没有映射到报警输入的为0
  81826. BYTE byReserved[4]; // 保留字节
  81827. UINT nAlarmOutCount; // 配件的报警输出总数
  81828. int nAlarmOutChannels[16]; // 配件报警输出对应的通道号,没有映射到报警输入的为0
  81829. char szModel[32]; // 配件型号
  81830. char szName[64]; // 配件名称
  81831. char szVersion[64]; // 配件版本信息
  81832. NET_ACCESSORY_GAPS stuAccessoryCaps; // 配件支持的能力集
  81833. BYTE byReserved1[232]; // 保留字节
  81834. }NET_ACCESSORY_INFO;
  81835. ///@brief 获取配件信息 输出参数。此时CLIENT_GetAlarmRegionInfo的emType参数为NET_EM_GET_ALARMREGION_INFO_ACCESSORY
  81836. typedef struct tagNET_OUT_GET_ACCESSORY_INFO
  81837. {
  81838. DWORD dwSize; // 结构体大小
  81839. UINT nMaxAccessoryInfo; // 申请的配件个数
  81840. NET_ACCESSORY_INFO* pstuAccessoryInfos; // 配件信息指针,由调用者分配内存,分配的大小为 nMaxAccessoryInfo*sizeof(NET_ACCESSORY_INFO)
  81841. UINT nRetAccessoryInfo; // 返回的配件个数
  81842. }NET_OUT_GET_ACCESSORY_INFO;
  81843. ///@brief 获取的操作类型
  81844. typedef enum tagNET_EM_GET_ALARMREGION_INFO
  81845. {
  81846. NET_EM_GET_ALARMREGION_INFO_UNKNOWN, //未知
  81847. NET_EM_GET_ALARMREGION_INFO_ALARMCAPS, //获取防区能力, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ALARMCAPS, pstuOutParam类型为NET_OUT_GET_ALARMCAPS
  81848. NET_EM_GET_ALARMREGION_INFO_ARMMODE, //获取布防状态, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ALARMMODE, pstuOutParam类型为NET_OUT_GET_ALARMMODE
  81849. NET_EM_GET_ALARMREGION_INFO_BYPASSMODE, //获取旁路状态, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_BYPASSMODE, pstuOutParam类型为NET_OUT_GET_BYPASSMODE
  81850. NET_EM_GET_ALARMREGION_INFO_AREAZONES, //获取区域防区, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_AREAZONES, pstuOutParam类型为NET_OUT_GET_AREAZONES
  81851. NET_EM_GET_ALARMREGION_INFO_ALLINSLOTS, //获取所有的报警防区, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ALLINSLOTS, pstuOutParam类型为NET_OUT_GET_ALLINSLOTS
  81852. NET_EM_GET_ALARMREGION_INFO_ALLOUTSLOTS, //获取所有的报警输出, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ALLOUTSLOTS, pstuOutParam类型为NET_OUT_GET_ALLOUTSLOTS
  81853. NET_EM_GET_ALARMREGION_INFO_ZONECONNECTIONSSTATUS, //获取防区连接状态, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_CONNECTIONSTATUS, pstuOutParam类型为NET_OUT_GET_CONNECTIONSTATUS
  81854. NET_EM_GET_ALARMREGION_INFO_AREASTATUS, //获取区域状态, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_AREAS_STATUS, pstuOutParam类型为NET_OUT_GET_AREAS_STATUS
  81855. NET_EM_GET_ALARMREGION_INFO_OUTPUTSTATE, //获取输出状态, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_OUTPUT_STATE, pstuOutParam类型为NET_OUT_GET_OUTPUT_STATE
  81856. NET_EM_GET_ALARMREGION_INFO_ZONESTROUBLE, //获取防区故障信息, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ZONES_TROUBLE, pstuOutParam类型为NET_OUT_GET_ZONES_TROUBLE
  81857. NET_EM_GET_ALARMREGION_INFO_CHANNELSSTATE, //获取通道状态, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_CHANNELS_STATE, pstuOutParam类型为NET_OUT_GET_CHANNELS_STATE
  81858. NET_EM_GET_ALARMREGION_INFO_ACCESSORY, //获取配件信息, 此时CLIENT_GetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_GET_ACCESSORY_INFO, pstuOutParam类型为NET_OUT_GET_ACCESSORY_INFO
  81859. }NET_EM_GET_ALARMREGION_INFO;
  81860. ///@brief 报警主机获取操作
  81861. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAlarmRegionInfo(LLONG lLoginID, NET_EM_GET_ALARMREGION_INFO emType, const void *pstuInParam, void *pstuOutParam, int nWaitTime);
  81862. ///@brief 设置的操作类型
  81863. typedef enum tagNET_EM_SET_ALARMREGION_INFO
  81864. {
  81865. NET_EM_SET_ALARMREGION_INFO_UNKNOWN, //未知
  81866. NET_EM_SET_ALARMREGION_INFO_ARMMODE, //设置布防模式, 此时CLIENT_SetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_SET_ALARMMODE, pstuOutParam类型为NET_OUT_SET_ALARMMODE
  81867. NET_EM_SET_ALARMREGION_INFO_BYPASSMODE, //设置旁路模式, 此时CLIENT_SetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_SET_BYPASSMODE, pstuOutParam类型为NET_OUT_SET_BYPASSMODE
  81868. NET_EM_SET_ALARMREGION_INFO_OUTPUTSTATE, //设置输出状态, 此时CLIENT_SetAlarmRegionInfo接口中的pstuInParam类型为NET_IN_SET_OUTPUT_STATE, pstuOutParam类型为NET_OUT_SET_OUTPUT_STATE
  81869. }NET_EM_SET_ALARMREGION_INFO;
  81870. ///@brief 报警主机设置操作
  81871. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetAlarmRegionInfo(LLONG lLoginID, NET_EM_SET_ALARMREGION_INFO emType, const void *pstuInParam, void *pstuOutParam, int nWaitTime);
  81872. /****************************** end 报警主机接口 与老报警主机不兼容***************************************/
  81873. ///@brief 设备通知类型
  81874. typedef enum tagEM_DEVICE_NOTIFY_TYPE
  81875. {
  81876. EM_DEVICE_NOTIFY_TYPE_UNKNOWN, // 未知
  81877. EM_DEVICE_NOTIFY_TYPE_NEW, // 新设备添加
  81878. EM_DEVICE_NOTIFY_TYPE_UPDATE, // 设备信息更新
  81879. EM_DEVICE_NOTIFY_TYPE_REMOVE, // 设备删除
  81880. EM_DEVICE_NOTIFY_TYPE_CONNECT, // 设备有通道上下线
  81881. } EM_DEVICE_NOTIFY_TYPE;
  81882. ///@brief 向设备注册的回调返回信息
  81883. typedef struct tagNET_CB_ATTACH_DEVICE_STATE
  81884. {
  81885. EM_DEVICE_NOTIFY_TYPE emNotifyType; // 通知类型
  81886. int nRetCount; // 设备个数
  81887. char szDeviceIDs[MAX_LINK_DEVICE_NUM][DH_DEV_ID_LEN_EX]; // 设备列表
  81888. BYTE byReserved[512]; // 保留字节
  81889. }NET_CB_ATTACH_DEVICE_STATE;
  81890. ///@brief 向设备注册的回调函数原型
  81891. typedef void (CALLBACK *fDeviceStateCallBack)(LLONG lAttachHandle, NET_CB_ATTACH_DEVICE_STATE* pstDeviceState, LDWORD dwUser);
  81892. ///@brief CLIENT_AttachDeviceState 接口输入参数
  81893. typedef struct tagNET_IN_ATTACH_DEVICE_STATE
  81894. {
  81895. DWORD dwSize;
  81896. fDeviceStateCallBack cbDeviceState; //回调函数
  81897. LDWORD dwUser; //用户数据
  81898. }NET_IN_ATTACH_DEVICE_STATE;
  81899. ///@brief CLIENT_AttachDeviceState 接口输出参数
  81900. typedef struct tagNET_OUT_ATTACH_DEVICE_STATE
  81901. {
  81902. DWORD dwSize;
  81903. }NET_OUT_ATTACH_DEVICE_STATE;
  81904. ///@brief CLIENT_AsyncAddDevice 接口输入参数
  81905. typedef struct tagNET_IN_ASYNC_ADD_DEVICE
  81906. {
  81907. DWORD dwSize;
  81908. int nCount; //URL个数
  81909. char szUrls[MAX_ADD_DEVICE_NUM][MAX_COMMON_STRING_512]; //URL格式:协议名://用户名:密码@IP:端口 端口不填则用协议默认端口
  81910. }NET_IN_ASYNC_ADD_DEVICE;
  81911. ///@brief CLIENT_AsyncAddDevice 接口输出参数
  81912. typedef struct tagNET_OUT_ASYNC_ADD_DEVICE
  81913. {
  81914. DWORD dwSize;
  81915. UINT nTaskID; //任务ID
  81916. }NET_OUT_ASYNC_ADD_DEVICE;
  81917. ///@brief 接入设备协议类型
  81918. typedef enum tagEM_CUSTOM_DEV_PROTOCOL_TYPE
  81919. {
  81920. EM_CUSTOM_DEV_PROTOCOL_TYPE_PRIVATE, // Private
  81921. EM_CUSTOM_DEV_PROTOCOL_TYPE_DAHUA2, // Dahua2
  81922. EM_CUSTOM_DEV_PROTOCOL_TYPE_DAHUA3, // Dahua3
  81923. EM_CUSTOM_DEV_PROTOCOL_TYPE_GENERAL, // 以URL形式添加的设备
  81924. EM_CUSTOM_DEV_PROTOCOL_TYPE_ONVIF, // Onvif接入
  81925. EM_CUSTOM_DEV_PROTOCOL_TYPE_ONVIFS, // Onvif加密形式接入
  81926. EM_CUSTOM_DEV_PROTOCOL_TYPE_GB28181, // 国标28181接入
  81927. EM_CUSTOM_DEV_PROTOCOL_TYPE_EHOME, // HKEhome协议
  81928. EM_CUSTOM_DEV_PROTOCOL_TYPE_DAHUA_REG, // 主动注册
  81929. }EM_CUSTOM_DEV_PROTOCOL_TYPE;
  81930. ///@brief 服务类型
  81931. typedef enum tagEM_VIDEOINPUTS_SERVICE_TYPE
  81932. {
  81933. EM_VIDEOINPUTS_SERVICE_TYPE_AUTO, // 自动
  81934. EM_VIDEOINPUTS_SERVICE_TYPE_TCP, // TCP
  81935. EM_VIDEOINPUTS_SERVICE_TYPE_UDP, // UDP
  81936. EM_VIDEOINPUTS_SERVICE_TYPE_MULTICAST, // 组播
  81937. }EM_VIDEOINPUTS_SERVICE_TYPE;
  81938. ///@brief 视频输入信息
  81939. typedef struct tagNET_CUSTOM_DEV_VIDEO_INPUTS
  81940. {
  81941. char szMainStreamUrl[256]; // 主码流URL地址(注:接入设备协议类型为General时有效,此时主辅码流URL不能同时为空)
  81942. char szExtraStreamUrl[256]; // 辅码流URL地址(注:接入设备协议类型为General时有效,此时主辅码流URL不能同时为空)
  81943. EM_VIDEOINPUTS_SERVICE_TYPE emServiceType; // 服务类型
  81944. BYTE byReserved[508]; // 预留字节
  81945. }NET_CUSTOM_DEV_VIDEO_INPUTS;
  81946. ///@brief CLIENT_AsyncAddCustomDevice 接口输入参数
  81947. typedef struct tagNET_IN_ASYNC_ADD_CUSTOM_DEVICE
  81948. {
  81949. DWORD dwSize;
  81950. int nPort; // 端口号
  81951. char szAddress[128]; // 设备地址或者域名
  81952. char szUserName[128]; // 用户名
  81953. char szPassword[128]; // 密码
  81954. EM_CUSTOM_DEV_PROTOCOL_TYPE emProtocolType; // 接入设备协议类型
  81955. int nRemoteChannelNum; // 上述列表实际填写的有效通道数
  81956. int nRemoteChannels[512]; // 远程通道号数组,如果是IPC就数组大小为1
  81957. BOOL bSetLogicChannelStart; // 是否设置逻辑起始通道,FALSE代表随机通道作为起始通道
  81958. int nLogicChannelStart; // 逻辑通道起始通道,设置bSetLogicChannelStart为TRUE时生效
  81959. NET_CUSTOM_DEV_VIDEO_INPUTS stuVideoInput; // 视频输入信息
  81960. }NET_IN_ASYNC_ADD_CUSTOM_DEVICE;
  81961. ///@brief CLIENT_AsyncAddCustomDevice 接口输出参数
  81962. typedef struct tagNET_OUT_ASYNC_ADD_CUSTOM_DEVICE
  81963. {
  81964. DWORD dwSize;
  81965. int nLogicChannelNum; // 分配的逻辑通道个数
  81966. int nLogicChannels[128]; // 分配的逻辑通道号列表
  81967. char szDeviceID[128]; // 设备ID
  81968. }NET_OUT_ASYNC_ADD_CUSTOM_DEVICE;
  81969. ///@brief 设备的添加状态
  81970. typedef enum tagEM_DEVICE_ADD_STATE
  81971. {
  81972. EM_DEVICE_ADD_STATE_UNKNOWN, // 未知
  81973. EM_DEVICE_ADD_STATE_WAIT, // 等待添加
  81974. EM_DEVICE_ADD_STATE_CONNECT, // 连接中
  81975. EM_DEVICE_ADD_STATE_FAILURE, // 添加失败
  81976. EM_DEVICE_ADD_STATE_SUCCESS, // 添加成功
  81977. EM_DEVICE_ADD_STATE_STOP, // 停止添加
  81978. } EM_DEVICE_ADD_STATE;
  81979. ///@brief 注册添加设备的回调返回信息
  81980. typedef struct tagNET_CB_ATTACH_ADD_DEVICE
  81981. {
  81982. UINT nTaskID; // 任务ID
  81983. EM_DEVICE_ADD_STATE emAddState; // 添加设备结果
  81984. UINT nIndex; // 任务中设备序号(从0开始)
  81985. BYTE byReserved[512]; // 保留字节
  81986. }NET_CB_ATTACH_ADD_DEVICE;
  81987. ///@brief 注册添加设备的回调函数原型
  81988. typedef void (CALLBACK *fAddDeviceCallBack)(LLONG lAttachHandle, NET_CB_ATTACH_ADD_DEVICE* pstAddDevice, LDWORD dwUser);
  81989. ///@brief CLIENT_AttachAddDevice 接口输入参数
  81990. typedef struct tagNET_IN_ATTACH_ADD_DEVICE
  81991. {
  81992. DWORD dwSize;
  81993. fAddDeviceCallBack cbAddDevice; //回调函数
  81994. LDWORD dwUser; //用户数据
  81995. }NET_IN_ATTACH_ADD_DEVICE;
  81996. ///@brief CLIENT_AttachAddDevice 接口输出参数
  81997. typedef struct tagNET_OUT_ATTACH_ADD_DEVICE
  81998. {
  81999. DWORD dwSize;
  82000. }NET_OUT_ATTACH_ADD_DEVICE;
  82001. ///@brief CLIENT_GetAddDeviceInfo 接口输入参数
  82002. typedef struct tagNET_IN_GET_ADD_DEVICE_LIST_INFO
  82003. {
  82004. DWORD dwSize;
  82005. UINT nTaskID; // 任务ID
  82006. int nCount; // 设备个数
  82007. UINT nIndex[MAX_ADD_DEVICE_NUM]; // 设备序号列表(NET_IN_ADD_DEVICE中szUrls的序号,从0开始)
  82008. }NET_IN_GET_ADD_DEVICE_LIST_INFO;
  82009. ///@brief 添加中设备的结果信息
  82010. typedef struct tagNET_GET_ADD_DEVICE_INFO
  82011. {
  82012. char szDeviceID[DH_DEV_ID_LEN_EX]; // 设备ID
  82013. char szUrl[DH_COMMON_STRING_512]; // url
  82014. EM_DEVICE_ADD_STATE emAddState; // 当前添加状态
  82015. UINT nErrorCode; // 错误码
  82016. BYTE byReserved[512]; // 保留字节
  82017. }NET_GET_ADD_DEVICE_INFO;
  82018. ///@brief CLIENT_GetAddDeviceInfo 接口输出参数
  82019. typedef struct tagNET_OUT_GET_ADD_DEVICE_LIST_INFO
  82020. {
  82021. DWORD dwSize;
  82022. int nRetCount; // 设备个数
  82023. NET_GET_ADD_DEVICE_INFO stuDeviceInfo[MAX_ADD_DEVICE_NUM]; // 设备信息列表
  82024. }NET_OUT_GET_ADD_DEVICE_LIST_INFO;
  82025. ///@brief CLIENT_GetDeviceInfo 接口输入参数
  82026. typedef struct tagNET_IN_GET_DEVICE_LIST_INFO
  82027. {
  82028. DWORD dwSize;
  82029. int nCount; // 设备个数
  82030. char szDeviceIDs[MAX_LINK_DEVICE_NUM][DH_DEV_ID_LEN_EX]; // 设备信息列表
  82031. }NET_IN_GET_DEVICE_LIST_INFO;
  82032. ///@brief 已添加设备的结果信息
  82033. typedef struct tagNET_GET_DEVICE_INFO
  82034. {
  82035. char szDeviceID[DH_DEV_ID_LEN_EX]; // 设备ID
  82036. char szUrl[DH_COMMON_STRING_512]; // url
  82037. char szSerialNo[DH_COMMON_STRING_32]; // 设备序列号
  82038. char szDeviceType[DH_COMMON_STRING_64]; // 设备类型
  82039. char szDeviceClass[DH_DEV_CLASS_LEN]; // 设备大类
  82040. int nMacCount; // 设备mac个数
  82041. char szMacs[MAX_MACADDR_NUM][DH_MACADDR_LEN]; // 设备mac地址组
  82042. char szDevSoftVersion[DH_COMMON_STRING_128]; // 设备软件版本号
  82043. char szDeviceName[DH_DEV_NAME_LEN]; // 设备名称
  82044. char szDetail[DH_COMMON_STRING_512]; // 设备详细信息
  82045. UINT nVideoInputCh; // 视频输入通道数
  82046. UINT nVideoOutputCh; // 视频输出通道数
  82047. UINT nAudioInputCh; // 音频输入通道数
  82048. UINT nAudioOutputCh; // 音频输出通道数
  82049. UINT nAlarmInputCh; // 报警输入通道数
  82050. UINT nAlarmOutputCh; // 报警输出通道数
  82051. UINT nErrorCode; // 设备离线错误码
  82052. UINT nVtoDoors; // 门禁设备可控制的门的总数
  82053. BYTE byOnline; // 设备是否在线 0:离线 1:在线
  82054. BYTE byReserved[511]; // 保留字节
  82055. }NET_GET_DEVICE_INFO;
  82056. ///@brief CLIENT_GetDeviceInfo 接口输出参数
  82057. typedef struct tagNET_OUT_GET_DEVICE_LIST_INFO
  82058. {
  82059. DWORD dwSize;
  82060. int nMaxCount; // 用户申请的设备个数
  82061. int nRetCount; // 实际返回的设备个数
  82062. NET_GET_DEVICE_INFO* pstuDeviceInfo; // 设备信息列表, 由用户申请和释放内存, 申请大小为sizeof(NET_GET_DEVICE_INFO)*nMaxCount
  82063. }NET_OUT_GET_DEVICE_LIST_INFO;
  82064. ///@brief CLIENT_SetConnectChannel 接口输入参数
  82065. typedef struct tagNET_IN_SET_CONNECT_CHANNEL
  82066. {
  82067. DWORD dwSize;
  82068. char szDeviceID[DH_DEV_ID_LEN_EX]; // 设备ID
  82069. int nCount; // 通道个数
  82070. UINT nChannels[MAX_DEVICE_CHANNEL_NUM]; // 通道列表
  82071. }NET_IN_SET_CONNECT_CHANNEL;
  82072. ///@brief CLIENT_SetConnectChannel 接口输出参数
  82073. typedef struct tagNET_OUT_SET_CONNECT_CHANNEL
  82074. {
  82075. DWORD dwSize;
  82076. }NET_OUT_SET_CONNECT_CHANNEL;
  82077. ///@brief CLIENT_GetChannelInfo 接口输入参数
  82078. typedef struct tagNET_IN_GET_CHANNEL_INFO
  82079. {
  82080. DWORD dwSize;
  82081. char szDeviceID[DH_DEV_ID_LEN_EX]; // 设备ID
  82082. }NET_IN_GET_CHANNEL_INFO;
  82083. ///@brief 获取设备通道信息结果信息
  82084. typedef struct tagNET_GET_CHANNEL_INFO
  82085. {
  82086. UINT nRemoteChannel; // 远程通道号
  82087. int nLogicChannel; // 分配的逻辑通道,-1表示未分配
  82088. char szName[DH_DEV_NAME_LEN]; // 名称
  82089. char szDetail[DH_COMMON_STRING_512]; // 设备详细信息
  82090. char szDeviceType[DH_COMMON_STRING_64]; // 设备类型
  82091. char szDeviceClass[DH_DEV_CLASS_LEN]; // 设备大类
  82092. char szIP[DH_MAX_IPADDR_LEN]; // ip地址
  82093. char szMac[DH_MACADDR_LEN]; // 设备mac地址
  82094. char szSerialNo[DH_DEV_SERIALNO_LEN]; // 设备序列号
  82095. char szDevSoftVersion[DH_COMMON_STRING_128]; // 设备软件版本号
  82096. UINT nVideoInputCh; // 视频输入通道数
  82097. UINT nVideoOutputCh; // 视频输出通道数
  82098. UINT nAudioInputCh; // 音频输入通道数
  82099. UINT nAudioOutputCh; // 音频输出通道数
  82100. UINT nAlarmInputCh; // 报警输入通道数
  82101. UINT nAlarmOutputCh; // 报警输出通道数
  82102. BYTE byOnline; // 通道是否在线0:离线 1:在线
  82103. BYTE byUsed; // 该通道是否被本地设备使用 0:未使用 1:使用
  82104. BYTE byReserved[510]; // 保留字节
  82105. }NET_GET_CHANNEL_INFO;
  82106. ///@brief CLIENT_GetChannelInfo 接口输出参数
  82107. typedef struct tagNET_OUT_GET_CHANNEL_INFO
  82108. {
  82109. DWORD dwSize;
  82110. int nMaxCount; // 用户申请的通道个数
  82111. int nRetCount; // 实际返回的通道个数
  82112. NET_GET_CHANNEL_INFO* pstuChannelInfo; // 通道信息列表, 由用户申请和释放内存, 申请大小为sizeof(NET_GET_CHANNEL_INFO)*nMaxCount
  82113. }NET_OUT_GET_CHANNEL_INFO;
  82114. ///@brief CLIENT_RemoveDevice 接口输入参数
  82115. typedef struct tagNET_IN_REMOVE_DEVICE
  82116. {
  82117. DWORD dwSize;
  82118. int nCount; // 设备个数
  82119. char szDeviceIDs[MAX_LINK_DEVICE_NUM][DH_DEV_ID_LEN_EX]; // 设备信息列表
  82120. }NET_IN_REMOVE_DEVICE;
  82121. ///@brief CLIENT_RemoveDevice 接口输出参数
  82122. typedef struct tagNET_OUT_REMOVE_DEVICE
  82123. {
  82124. DWORD dwSize;
  82125. }NET_OUT_REMOVE_DEVICE;
  82126. ///@brief CLIENT_CancelAddDeviceTask 接口输入参数
  82127. typedef struct tagNET_IN_CANCEL_ADD_TASK
  82128. {
  82129. DWORD dwSize;
  82130. UINT nTaskID; // 任务ID
  82131. }NET_IN_CANCEL_ADD_TASK;
  82132. ///@brief CLIENT_CancelAddDeviceTask 接口输出参数
  82133. typedef struct tagNET_OUT_CANCEL_ADD_TASK
  82134. {
  82135. DWORD dwSize;
  82136. }NET_OUT_CANCEL_ADD_TASK;
  82137. ///@brief CLIENT_ConfirmAddDeviceTask 接口输入参数
  82138. typedef struct tagNET_IN_CONFIRM_ADD_TASK
  82139. {
  82140. DWORD dwSize;
  82141. UINT nTaskID; // 任务ID
  82142. }NET_IN_CONFIRM_ADD_TASK;
  82143. ///@brief CLIENT_ConfirmAddDeviceTask 接口输出参数
  82144. typedef struct tagNET_OUT_CONFIRM_ADD_TASK
  82145. {
  82146. DWORD dwSize;
  82147. }NET_OUT_CONFIRM_ADD_TASK;
  82148. ///@brief CLIENT_GetNMPDevInfo 接口输入参数
  82149. typedef struct tagNET_IN_GET_NMPDEV_INFO
  82150. {
  82151. DWORD dwSize; // 结构体大小
  82152. }NET_IN_GET_NMPDEV_INFO;
  82153. ///@brief 交换机下挂的设备信息
  82154. typedef struct tagNET_NEM_CONNECT_DEVICE_INFO
  82155. {
  82156. char szAddress[40]; // 设备地址或者域名
  82157. char szProtocolType[32]; // 连接设备的协议类型
  82158. char szDeviceType[64]; // 设备型号
  82159. char szMac[18]; // 设备mac地址,冒号+大写
  82160. char szName[64]; // 设备名称
  82161. char szVendor[32]; // 设备厂商
  82162. BYTE byReserved[126]; // 保留字节
  82163. }NET_NEM_CONNECT_DEVICE_INFO;
  82164. ///@brief 邻居设备数组
  82165. typedef struct tagNET_NEIGHBORS_INFO
  82166. {
  82167. char szRemotePortId[64]; // 邻居设备连接端口描述
  82168. char szRemoteDevice[128]; // 邻居设备的唯一值
  82169. NET_NEM_CONNECT_DEVICE_INFO stuDeviceInfo; // 设备信息
  82170. BYTE byReserved[128]; // 保留字节
  82171. }NET_NEIGHBORS_INFO;
  82172. ///@brief 端口连接状态
  82173. typedef enum tagEM_PORT_STATUS
  82174. {
  82175. EM_PORT_STATUS_UNKNOWN = -1, // 未知
  82176. EM_PORT_STATUS_DOWN, // 未连接
  82177. EM_PORT_STATUS_UP, // 连接
  82178. }EM_PORT_STATUS;
  82179. ///@brief 端口传输介质
  82180. typedef enum tagEM_MEDIA_TYPE
  82181. {
  82182. EM_MEDIA_TYPE_UNKNOWN, // 未知
  82183. EM_MEDIA_TYPE_COPPER, // 电口
  82184. EM_MEDIA_TYPE_FIBER, // 光口
  82185. }EM_MEDIA_TYPE;
  82186. ///@brief 端口双工状态
  82187. typedef enum tagEM_DUPLEX_MODE
  82188. {
  82189. EM_DUPLEX_MODE_UNKNOWN, // 未知
  82190. EM_DUPLEX_MODE_HALFDUPLEX, // 半双工
  82191. EM_DUPLEX_MODE_FULLDUPLEX, // 全双工
  82192. }EM_DUPLEX_MODE;
  82193. ///@brief PoE状态
  82194. typedef enum tagEM_POE_STATUS
  82195. {
  82196. EM_POE_STATUS_UNKNOWN = -1, // 未知
  82197. EM_POE_STATUS_NONENABLE, // 非使能状态
  82198. EM_POE_STATUS_ENABLE, // 使能状态
  82199. EM_POE_STATUS_UNSUPPORTED, // 不支持
  82200. }EM_POE_STATUS;
  82201. ///@brief 端口流量状态
  82202. typedef enum tagEM_FLOW_STATUS
  82203. {
  82204. EM_FLOW_STATUS_UNKNOWN = -1, // 未知
  82205. EM_FLOW_STATUS_NORMAL, // 正常
  82206. EM_FLOW_STATUS_ABNORMAL, // 异常
  82207. }EM_FLOW_STATUS;
  82208. ///@brief 端口开光状态
  82209. typedef enum tagEM_PORT_ENABLE_STATUS
  82210. {
  82211. EM_PORT_ENABLE_STATUS_UNKONWON = -1, // 未知
  82212. EM_PORT_ENABLE_STATUS_OFF, // 关
  82213. EM_PORT_ENABLE_STATUS_ON, // 开
  82214. }EM_PORT_ENABLE_STATUS;
  82215. ///@brief 端口双工模式
  82216. typedef enum tagEM_PORT_DUPLEX_MODE
  82217. {
  82218. EM_PORT_DUPLEX_MODE_UNKNOWN, // 未知
  82219. EM_PORT_DUPLEX_MODE_AUTO, // 自协商
  82220. EM_PORT_DUPLEX_MODE_HALF, // 半双工
  82221. EM_PORT_DUPLEX_MODE_FULL, // 双工
  82222. } EM_PORT_DUPLEX_MODE;
  82223. ///@brief 端口远距离传输开关状态
  82224. typedef enum tagEM_PORT_DISTANCE_STATUS
  82225. {
  82226. EM_PORT_DISTANCE_STATUS_UNKNOWN = -1, // 未知
  82227. EM_PORT_DISTANCE_STATUS_OFF, // 关
  82228. EM_PORT_DISTANCE_STATUS_ON, // 开
  82229. EM_PORT_DISTANCE_STATUS_UNSUPPORT, // 不支持
  82230. } EM_PORT_DISTANCE_STATUS;
  82231. ///@brief 端口流控状态
  82232. typedef enum tagEM_PORT_FLOW_STATUS
  82233. {
  82234. EM_PORT_FLOW_STATUS_UNKNOWN = -1, // 未知
  82235. EM_PORT_FLOW_STATUS_OFF, // 关
  82236. EM_PORT_FLOW_STATUS_ON, // 开
  82237. } EM_PORT_FLOW_STATUS;
  82238. ///@brief 端口流控使能状态
  82239. typedef enum tagEM_PORT_FLOW_ENABLE_STATUS
  82240. {
  82241. EM_PORT_FLOW_ENABLE_STATUS_UNKNOWN = -1, // 未知
  82242. EM_PORT_FLOW_ENABLE_STATUS_OFF, // 关
  82243. EM_PORT_FLOW_ENABLE_STATUS_ON, // 开
  82244. } EM_PORT_FLOW_ENABLE_STATUS;
  82245. ///@brief 看门狗开光状态
  82246. typedef enum tagEM_PDALIVE_ENABLE_STATUS
  82247. {
  82248. EM_PDALIVE_ENABLE_STATUS_UNKNOWN = -1, // 未知
  82249. EM_PDALIVE_ENABLE_STATUS_OFF, // 关
  82250. EM_PDALIVE_ENABLE_STATUS_ON, // 开
  82251. } EM_PDALIVE_ENABLE_STATUS;
  82252. ///@brief 带宽双工能力集
  82253. typedef struct tagNET_SPEED_DUPLEX_CAP
  82254. {
  82255. UINT nSpeedCap; // 端口带宽能力项, 0 表示自协商, 单位:Mbps
  82256. UINT nPortDuplexModeNum; // 实际有效的端口双工模式个数, 即emPortDuplexMode数组有效元素的个数
  82257. EM_PORT_DUPLEX_MODE emPortDuplexMode[4]; // 端口双工模式
  82258. } NET_SPEED_DUPLEX_CAP;
  82259. ///@brief 设备端口信息
  82260. typedef struct tagNET_NMPDEVPORT_INFO
  82261. {
  82262. DWORD dwLocalPortId; // 设备连接端口号
  82263. EM_POE_STATUS emPoEStatus; // PoE状态
  82264. char szLocalPortDescr[64]; // 设备连接端口描述
  82265. int nChassisId; // 端口所在框ID
  82266. int nSlotId; // 端口所在槽ID
  82267. char szAliasName[64]; // 设备端口别名
  82268. DWORD dwAggregationId; // 聚合ID(0表示不属于聚合)
  82269. DWORD dwSpeed; // 端口协商速率,单位:mbps
  82270. EM_PORT_STATUS emStatus; // 端口连接状态
  82271. EM_MEDIA_TYPE emMedia; // 端口传输介质
  82272. EM_DUPLEX_MODE emDuplexMode; // 端口双工状态
  82273. float fPoEPower; // PoE功耗
  82274. TP_U64 dwInUcastPkts; // 单播接收报文数
  82275. TP_U64 dwOutUcastPkts; // 单播发送报文数
  82276. TP_U64 dwInBroadcastPkts; // 广播接收报文数
  82277. TP_U64 dwOutBroadcastPkts; // 广播发送报文数
  82278. TP_U64 dwInMulticastPkts; // 组播接收报文数
  82279. TP_U64 dwOutMulticastPkts; // 组播发送报文数
  82280. TP_U64 dwInDiscardPkts; // 接收丢包数
  82281. TP_U64 dwOutDiscardPkts; // 发送丢包数
  82282. INT64 nInPausePkts; // 接收Pause帧总数(-1表示非法值)
  82283. INT64 nOutPausePkts; // 发送Pause帧总数(-1表示非法值)
  82284. INT64 nInFilterPkts; // 接收包过滤总包数(-1表示非法值)
  82285. TP_U64 dwInOctets; // 接收包字节总数
  82286. TP_U64 dwOutOctets; // 发送包字节总数
  82287. TP_U64 dwInRate; // 接收实时速率,单位:Byte
  82288. TP_U64 dwOutRate; // 发送实时速率,单位:Byte
  82289. EM_FLOW_STATUS emFlowStatus; // 端口流量状态
  82290. int nRetNeighborsNum; // 邻居设备数组个数
  82291. NET_NEIGHBORS_INFO stuNeighbors[255]; // 邻居设备数组
  82292. EM_PORT_ENABLE_STATUS emPortEnableStatus; // 端口开关状态
  82293. UINT nPortSpeedStatus; // 端口带宽配置状态, 0 表示自协商
  82294. EM_PORT_DUPLEX_MODE emPortDuplexMode; // 端口双工配置模式
  82295. EM_PORT_DISTANCE_STATUS emPortDistanceStatus; // 端口远距离传输开关状态
  82296. EM_PORT_FLOW_STATUS emPortFlowStatus; // 端口流控状态
  82297. EM_PORT_FLOW_ENABLE_STATUS emPortFlowEnable; // 端口流控使能状态
  82298. EM_PDALIVE_ENABLE_STATUS emPDaliveEnable; // 看门狗开关状态
  82299. UINT nInPortUsage; // 端口接收利用率,单位%
  82300. UINT nOutPortUsage; // 端口发送利用率,单位%
  82301. UINT nInThreshold; // 端口接收利用率阈值,单位%
  82302. UINT nOutThreshold; // 端口发送利用率阈值,单位%
  82303. UINT nRetSpeedDuplexCap; // 带宽双工能力个数, 即stuSpeedDuplexCap 数组的有效元素个数
  82304. NET_SPEED_DUPLEX_CAP stuSpeedDuplexCap[32]; // 带宽双工能力集
  82305. TP_U64 nInTopRate; // 端口七天峰值接收速率,单位:Byte
  82306. TP_U64 nOutTopRate; // 端口七天峰值发送速率,单位:Byte
  82307. int nMediaCap; // 端口传输介质能力集,按位运算 Bit0:电口 Bit1:光口 字段不存在时,仅支持Media字段描述的类型 例如:0x03 = 0x01 | 0x02 表示光电复合口,此时需要对于一个PortID,绘制光口和电口
  82308. BYTE byReserved[188]; // 保留字节
  82309. }NET_NMPDEVPORT_INFO;
  82310. ///@brief 设备信息
  82311. typedef struct tagNET_NMPDEV_INFO
  82312. {
  82313. char szAddress[40]; // 设备地址或者域名
  82314. char szDeviceClass[64]; // 设备类型
  82315. char szDeviceType[64]; // 设备型号
  82316. char szMac[18]; // 设备mac地址,冒号+大写
  82317. BYTE byReserved2[6]; // 字节对齐
  82318. char szProtocolType[32]; // 连接设备的协议类型
  82319. char szVersion[32]; // 设备版本号
  82320. char szSerialNo[64]; // 设备序列号
  82321. char szName[64]; // 设备名称
  82322. DWORD dwRetPortNum; // 设备返回端口个数
  82323. int nPortListMaxNum; // 用户分配端口信息个数
  82324. NET_NMPDEVPORT_INFO *pstuPorList; // 端口信息组
  82325. BOOL bPoESupport; // 是否支持Poe
  82326. float fPoETotalPower; // PoE总功耗
  82327. float fPoERemainPower; // PoE剩余功耗
  82328. DWORD dwUptime; // 本次上电运行时间(单位:分钟)
  82329. int nCPUUsage; // CPU使用率(百分比),-1为非法值
  82330. EM_DEV_STATUS emStatus; // 设备状态
  82331. char szSubnetMask[40]; // 子网掩码
  82332. char szParent[128]; // 父亲设备的唯一值
  82333. char szVendor[32]; // 设备厂商
  82334. DWORD dwPortNumber; // 设备总端口数
  82335. float fPoETopPower; // Poe七天功率峰值,单位W
  82336. int nMemUsage; // 内存利用率,单位%, -1: 非法值
  82337. BYTE byReserved[1012]; // 保留字节
  82338. }NET_NMPDEV_INFO;
  82339. ///@brief CLIENT_GetNMPDevInfo 接口输出参数
  82340. typedef struct tagNET_OUT_GET_NMPDEV_INFO
  82341. {
  82342. DWORD dwSize; // 结构体大小
  82343. BYTE byReserved[4]; // 字节对齐
  82344. NET_NMPDEV_INFO stuNMPDevInfo; // 设备信息
  82345. }NET_OUT_GET_NMPDEV_INFO;
  82346. ///@brief CLIENT_GetNMPDevCaps 接口输入参数
  82347. typedef struct tagNET_IN_GET_NMPDEV_CAPS
  82348. {
  82349. DWORD dwSize; // 结构体大小
  82350. } NET_IN_GET_NMPDEV_CAPS;
  82351. ///@brief CLIENT_GetNMPDevCaps 接口输出参数
  82352. typedef struct tagNET_OUT_GET_NMPDEV_CAPS
  82353. {
  82354. DWORD dwSize; // 结构体大小
  82355. BOOL bSupportPage; // 是否支持分页查找
  82356. } NET_OUT_GET_NMPDEV_CAPS;
  82357. ///@brief CLIENT_GetNMPPortInfoByPage 接口输入参数
  82358. typedef struct tagNET_IN_GET_NMPPORT_BY_PAGE
  82359. {
  82360. DWORD dwSize; // 结构体大小
  82361. UINT nOffset; // 端口信息列表的起始端口偏移量
  82362. UINT nPortNum; // 本次需要获取的端口数量, 若为0, 则返回端口总数量, 但没有端口的具体信息
  82363. } NET_IN_GET_NMPPORT_BY_PAGE;
  82364. ///@brief CLIENT_GetNMPPortInfoByPage 接口输出参数
  82365. typedef struct tagNET_OUT_GET_NMPPORT_BY_PAGE
  82366. {
  82367. DWORD dwSize; // 结构体大小
  82368. UINT nTotalSize; // 设备端口总数
  82369. UINT nMaxPortCount; // pstPortList数组的最大元素个数值, 由用户指定
  82370. UINT nRetPortCount; // 实际获取到的端口数量, 即pstPortList 数组中有效值的个数
  82371. NET_NMPDEVPORT_INFO *pstPortList; // 设备端口信息列表, 内存由用户申请和释放, 申请大小为nMaxPortCount*sizeof(NET_NMPDEVPORT_INFO)
  82372. } NET_OUT_GET_NMPPORT_BY_PAGE;
  82373. ///@brief 本地端口信息
  82374. typedef struct tagNET_LOCAL_PORT_INFO
  82375. {
  82376. UINT nLocalPortId; // 设备端口号
  82377. char szLocalPortDescr[64]; // 设备端口描述
  82378. UINT nRetNeighborsNum; // 实际的邻居设备个数, 即stuNeighbors 数组的有效元素个数
  82379. NET_NEIGHBORS_INFO stuNeighbors[256]; // 邻居设备数组
  82380. } NET_LOCAL_PORT_INFO;
  82381. ///@brief CLIENT_GetNMPNeighborInfoByPage 接口输入参数
  82382. typedef struct tagNET_IN_GET_NMPNEIGHBOR_BY_PAGE
  82383. {
  82384. DWORD dwSize; // 结构体大小
  82385. UINT nOffset; // 设备邻居列表列表的起始偏移量
  82386. UINT nNeighborNum; // 本次需要获取的邻居设备数量, 若为0, 则返回总数量, 但没有具体的设备信息
  82387. } NET_IN_GET_NMPNEIGHBOR_BY_PAGE;
  82388. ///@brief CLIENT_GetNMPNeighborInfoByPage 接口输出参数
  82389. typedef struct tagNET_OUT_GET_NMPNEIGHBOR_BY_PAGE
  82390. {
  82391. DWORD dwSize; // 结构体大小
  82392. UINT nTotalSize; // 设备端口邻居总数
  82393. UINT nMatchSize; // 本次查询匹配到的邻居总数
  82394. UINT nMaxLocalPortNum; // 邻居设备的本地端口个数最大值
  82395. NET_LOCAL_PORT_INFO *pstLocalPortList; // 存在邻居设备的本地端口列表
  82396. UINT nRetLocalPortNum; // 存在邻居设备的本地端口个数, 即pstLocalPortList 数组的有效个数
  82397. } NET_OUT_GET_NMPNEIGHBOR_BY_PAGE;
  82398. ///@brief NMP 设备端口状态信息
  82399. typedef struct tagNET_NMP_PORT_STATUS
  82400. {
  82401. UINT nLocalPortId; // 端口号
  82402. EM_PORT_STATUS emPortStatus; // 端口连接状态
  82403. BYTE byReserved[1024]; // 保留字节
  82404. } NET_NMP_PORT_STATUS;
  82405. ///@brief NMP 设备端口状态回调信息
  82406. typedef struct tagNET_CB_NMP_PORT_STATUS_INFO
  82407. {
  82408. char szAddress[64]; // ip 地址
  82409. char szMAC[24]; // MAC地址
  82410. NET_NMP_PORT_STATUS *pstPortStatusList; // 端口状态信息列表, 内存由sdk 内部申请和释放
  82411. UINT nRetPortNum; // 实际返回的端口数量, 即pstPortStatusList 数组中有效的元素个数
  82412. BYTE byReserved[1020]; // 保留字节
  82413. } NET_CB_NMP_PORT_STATUS_INFO;
  82414. ///@brief NMP 设备端口状态订阅函数原型, lAttachHandle 是 CLIENT_AttachNMPPortStatus接口的返回值
  82415. typedef void (CALLBACK *fNMPPortStatusCallBack)(LLONG lAttachHandle, NET_CB_NMP_PORT_STATUS_INFO *pstNMPPortStatus, LDWORD dwUser);
  82416. ///@brief CLIENT_AttachNMPPortStatus 接口输入参数
  82417. typedef struct tagNET_IN_ATTACH_NMP_PORT_STATUS
  82418. {
  82419. DWORD dwSize; // 结构体大小
  82420. BYTE byReserved[4]; // 对齐
  82421. fNMPPortStatusCallBack cbNMPPortStatusCallBac; // 端口状态订阅回调函数
  82422. LDWORD dwUser; // 用户数据
  82423. } NET_IN_ATTACH_NMP_PORT_STATUS;
  82424. ///@brief CLIENT_ClearPortStatisticsInfo 接口输入参数
  82425. typedef struct tagNET_IN_CLEAR_PORT_STATISTICS_INFO
  82426. {
  82427. DWORD dwSize; // 结构体大小
  82428. UINT nPortID; // 真实物理端口ID, 0表示清楚所有端口统计信息
  82429. } NET_IN_CLEAR_PORT_STATISTICS_INFO;
  82430. ///@brief CLIENT_ClearPortStatisticsInfo 接口输出参数
  82431. typedef struct tagNET_OUT_CLEAR_PORT_STATISTICS_INFO
  82432. {
  82433. DWORD dwSize; // 结构体大小
  82434. } NET_OUT_CLEAR_PORT_STATISTICS_INFO;
  82435. ///@brief 端口双工状态
  82436. typedef enum tagEM_DUPLEX_STATE
  82437. {
  82438. EM_DUPLEX_STATE_UNKNOWN = -1, // 未知
  82439. EM_DUPLEX_STATE_DOWN, // 关闭
  82440. EM_DUPLEX_STATE_AUTO, // 自动
  82441. EM_DUPLEX_STATE_10M_HALF, // 10M 半双工
  82442. EM_DUPLEX_STATE_10M_FULL, // 10M全双工
  82443. EM_DUPLEX_STATE_100M_HALF, // 100M 半双工
  82444. EM_DUPLEX_STATE_100M_FULL, // 100M全双工
  82445. EM_DUPLEX_STATE_1000M_FULL, // 1000M全双工
  82446. EM_DUPLEX_STATE_2_5G_FULL, // 2.5G全双工
  82447. EM_DUPLEX_STATE_5G_FULL, // 5G全双工
  82448. EM_DUPLEX_STATE_10G_FULL, // 10G全双工
  82449. EM_DUPLEX_STATE_25G_FULL, // 25G全双工
  82450. EM_DUPLEX_STATE_40G_FULL, // 40G全双工
  82451. EM_DUPLEX_STATE_100G_FULL, // 100G全双工
  82452. } EM_DUPLEX_STATE;
  82453. ///@brief POE开光状态
  82454. typedef enum tagEM_POE_ENABLE_STATUS
  82455. {
  82456. EM_POE_ENABLE_STATUS_UNKNOWN = -1, // 未知
  82457. EM_POE_ENABLE_STATUS_OFF, // 关
  82458. EM_POE_ENABLE_STATUS_ON, // 开
  82459. }EM_POE_ENABLE_STATUS;
  82460. ///@brief 端口配置信息
  82461. typedef struct tagNET_PORT_CFG_INFO
  82462. {
  82463. char szPortDescribe[64]; // 端口描述,支持英文、数字、特殊字符(只支持"."、"-"和"_")
  82464. UINT nPortID; // 真实物理端口ID, 从1 开始
  82465. EM_DUPLEX_STATE emDuplexState; // 端口双工状态
  82466. EM_PORT_FLOW_ENABLE_STATUS emFlowEnableCfg; // 流控使能配置
  82467. EM_POE_ENABLE_STATUS emPoeEnableCfg; // PoE开关配置
  82468. EM_PORT_ENABLE_STATUS emPortEnableCfg; // 端口开关配置
  82469. UINT nSpeedCfg; // 端口带宽配置, 单位:Mbps, 0表示自协商
  82470. EM_PORT_DUPLEX_MODE emDuplexModeCfg; // 端口双工模式配置
  82471. EM_PORT_DISTANCE_STATUS emLongDistanceCfg; // 端口远距离传输开关配置
  82472. EM_PDALIVE_ENABLE_STATUS emPDAliveCfg; // PDalivePOE看门狗开关配置
  82473. BYTE byReserved[2044]; // 保留字节
  82474. } NET_PORT_CFG_INFO;
  82475. ///@brief CLIENT_PortManagerSetPortInfo 接口输入参数
  82476. typedef struct tagNET_IN_PORTMANAGER_SET_PORT_INFO
  82477. {
  82478. DWORD dwSize; // 结构体大小
  82479. UINT nPortCfgNum; // 实际需要配置的端口数量, 由用户指定
  82480. NET_PORT_CFG_INFO *pstPortCfgInfo; // 端口配置信息, 内存信息由用户申请和释放, 申请大小:nPortCfgNum * sizeof(NET_PORT_CFG_INFO)
  82481. } NET_IN_PORTMANAGER_SET_PORT_INFO;
  82482. ///@brief CLIENT_PortManagerSetPortInfo 接口输出参数
  82483. typedef struct tagNET_OUT_PORTMANAGER_SET_PORT_INFO
  82484. {
  82485. DWORD dwSize; // 结构体大小
  82486. } NET_OUT_PORTMANAGER_SET_PORT_INFO;
  82487. ///@brief 端口拥塞状态
  82488. typedef enum tagEM_PORT_CONGESTION_STATUS
  82489. {
  82490. EM_PORT_CONGESTION_UNKNOWN, // 未知
  82491. EM_PORT_CONGESTION_NO, // 无拥塞/链路通畅
  82492. EM_PORT_CONGESTION_IN, // 接收方向信道拥塞
  82493. EM_PORT_CONGESTION_OUT, // 发送方向信道拥塞
  82494. EM_PORT_CONGESTION_ALL, // 全信道拥塞/单工/不区分方向
  82495. } EM_PORT_CONGESTION_STATUS;
  82496. ///@brief 端口拥塞信息
  82497. typedef struct tagNET_PORT_CONGESTION_INFO
  82498. {
  82499. UINT nLocalPortId; // 设备端口号
  82500. EM_PORT_CONGESTION_STATUS emCongestionStatus; // 端口拥塞状态
  82501. TP_U64 nInRate; // 接收实时速率,单位:Byte
  82502. TP_U64 nOutRate; // 发送实时速率,单位:Byte
  82503. BYTE byReserved[1024]; // 保留字节
  82504. } NET_PORT_CONGESTION_INFO;
  82505. ///@brief NMP 设备端口拥塞状态回调信息
  82506. typedef struct tagNET_CB_NMP_PORT_CONGESTION_INFO
  82507. {
  82508. char szMAC[24]; // MAC地址
  82509. NET_PORT_CONGESTION_INFO stuPortCongestionInfo[256]; // 端口拥塞状态信息列表
  82510. UINT nRetPortNum; // 实际返回的端口数量, 即stuPortCongestionInfo 数组中有效的元素个数
  82511. BYTE byReserved[1020]; // 保留字节
  82512. } NET_CB_NMP_PORT_CONGESTION_INFO;
  82513. ///@brief NMP 设备端口拥塞状态订阅回调函数原型, lAttachHandle 是 CLIENT_AttachNMPPortCongestion接口的返回值
  82514. typedef void (CALLBACK *fNMPPortCongestionCallBack)(LLONG lAttachHandle, NET_CB_NMP_PORT_CONGESTION_INFO *pstNMPCongestion, LDWORD dwUser);
  82515. ///@brief CLIENT_AttachNMPPortCongestion 接口输入参数
  82516. typedef struct tagNET_IN_ATTACH_NMP_PORT_CONGESTION
  82517. {
  82518. DWORD dwSize; // 结构体大小
  82519. BYTE byReserved[4]; // 对齐
  82520. fNMPPortCongestionCallBack cbNMPPortCongestion; // 端口拥塞状态订阅回调函数
  82521. LDWORD dwUser; // 用户数据
  82522. } NET_IN_ATTACH_NMP_PORT_CONGESTION;
  82523. ///@brief IP 冲突告警信息
  82524. typedef struct tagNET_IP_CONFICT_ALARM_INFO
  82525. {
  82526. char szAddress[64]; // 冲突的ip
  82527. UINT nMacNum; // 产生冲突的设备mac地址个数
  82528. char szMac[128][24]; // 产生冲突的设备mac地址
  82529. UINT nVlanId; // 检测到ip冲突的交换机vlanid
  82530. char szVlanIP[64]; // 检测到ip冲突的交换机vlanid对应的ip
  82531. BYTE byReserved[1024]; // 保留字节
  82532. } NET_IP_CONFICT_ALARM_INFO;
  82533. ///@brief NMP 环路告警信息
  82534. typedef struct tagNET_NMP_LOOP_DETECT_INFO
  82535. {
  82536. UINT nLoopNum; // 环路端口数量
  82537. UINT nLoopGroup[256]; // 环路组, 即本设备中 端口所在环路中的所有端口
  82538. BYTE byReserved[1020]; // 保留字节
  82539. } NET_NMP_LOOP_DETECT_INFO;
  82540. ///@brief NMP设备 网络告警信息
  82541. typedef struct tagNET_NMP_ALARM_INFO
  82542. {
  82543. NET_NMP_LOOP_DETECT_INFO stuLoopDetect[128]; // NMP 环路告警信息
  82544. UINT nLoopDetectNum; // NMP 环路告警信息个数
  82545. UINT nIPConfictAlarmNum; // IP 冲突告警信息个数
  82546. NET_IP_CONFICT_ALARM_INFO stuIPConfictAlarm[128]; // IP 冲突告警信息
  82547. BYTE byReserved[1024]; // 保留字节
  82548. } NET_NMP_ALARM_INFO;
  82549. ///@brief NMP设备 网络告警事件上报信息
  82550. typedef struct tagNET_CB_NMP_ALARM_INFO
  82551. {
  82552. char szMAC[24]; // MAC地址
  82553. NET_NMP_ALARM_INFO stuNmpAlarmInfo; // NMP设备 网络告警信息
  82554. BYTE byReserved[1024]; // 保留字节
  82555. } NET_CB_NMP_ALARM_INFO;
  82556. ///@brief NMP设备 网络告警事件上报回调函数原型, lAttachHandle 是 CLIENT_AttachNMPAlarmInfo接口的返回值
  82557. typedef void (CALLBACK *fNMPAlarmInfoCallBack)(LLONG lAttachHandle, NET_CB_NMP_ALARM_INFO *pstNMPAlarmInfo, LDWORD dwUser);
  82558. ///@brief CLIENT_AttachNMPAlarmInfo 接口输入参数
  82559. typedef struct tagNET_IN_ATTACH_NMP_ALARM_INFO
  82560. {
  82561. DWORD dwSize; // 结构体大小
  82562. BYTE byReserved[4]; // 对齐
  82563. fNMPAlarmInfoCallBack cbNMPAlarmInfo; // NMP设备 网络告警事件上报回调函数
  82564. LDWORD dwUser; // 用户数据
  82565. } NET_IN_ATTACH_NMP_ALARM_INFO;
  82566. ///@brief CLIENT_GetDeviceInfoEx 接口输入参数
  82567. typedef struct tagNET_IN_GET_DEVICE_INFO_EX
  82568. {
  82569. DWORD dwSize; // 结构体大小
  82570. int nCount; // 设备个数
  82571. char szDeviceIDs[32][128]; // 设备信息列表
  82572. }NET_IN_GET_DEVICE_INFO_EX;
  82573. ///@brief 设备属性
  82574. typedef enum tagEM_DEVICE_ATTRIBUTE
  82575. {
  82576. EM_DEVICE_ATTRIBUTE_UNKNOWN, // 未知
  82577. EM_DEVICE_ATTRIBUTE_MASTER, // 主属性
  82578. EM_DEVICE_ATTRIBUTE_ASSISTANT, // 辅属性
  82579. }EM_DEVICE_ATTRIBUTE;
  82580. ///@brief 设备接入网络服务类型
  82581. typedef enum tagEM_NET_SERVER_TYPE
  82582. {
  82583. EM_NET_SERVER_TYPE_UNKNOWN = -1, // 未知
  82584. EM_NET_SERVER_TYPE_AUTO, // 自动
  82585. EM_NET_SERVER_TYPE_TCP, // TCP
  82586. EM_NET_SERVER_TYPE_UDP, // UDP
  82587. EM_NET_SERVER_TYPE_MULTICAST, // 组播
  82588. }EM_NET_SERVER_TYPE;
  82589. ///@brief 跟设备对接时的拉流协议类型
  82590. typedef enum tagEM_CHANNEL_PROTOCOL_TYPE
  82591. {
  82592. EM_CHANNEL_PROTOCOL_TYPE_UNKNOWN, // 未知
  82593. EM_CHANNEL_PROTOCOL_TYPE_ONVIF, // Onvif接入
  82594. EM_CHANNEL_PROTOCOL_TYPE_GB28181, // 国标协议接入
  82595. EM_CHANNEL_PROTOCOL_TYPE_RTSP, // Rtsp协议接入
  82596. EM_CHANNEL_PROTOCOL_TYPE_GB35114, // GB35114协议接入
  82597. }EM_CHANNEL_PROTOCOL_TYPE;
  82598. ///@brief 通道信息
  82599. typedef struct tagNET_DEVICE_CHANNEL_INFO
  82600. {
  82601. UINT nRemoteChannel; // 远程通道号
  82602. int nLogicChannel; // 分配的逻辑通道, -1表示未分配
  82603. char szChannelID[32]; // 通道编码
  82604. char szGbCode[32]; // 通道国标编码
  82605. char szName[128]; // 显示在设备树的名称
  82606. char szDetail[512]; // 设备详细信息
  82607. char szDeviceType[64]; // 设备型号
  82608. char szDeviceClass[16]; // 设备大类
  82609. UINT nOnline; // 通道是否在线, 0:离线 1:在线
  82610. UINT nUsed; // 该通道是否被本地设备使用 0:未使用 1:使用
  82611. char szIP[40]; // ip地址
  82612. char szMac[18]; // mac地址
  82613. char szReserved1[6]; // 字节对齐
  82614. char szSN[32]; // 序列号
  82615. char szSoftwareVersion[128]; // 软件版本
  82616. UINT nVideoInChannels; // 视频输入通道数
  82617. UINT nVideoOutChannels; // 视频输出通道数
  82618. UINT nAudioInChannels; // 音频输入通道数
  82619. UINT nAudioOutChannels; // 音频输出通道数
  82620. UINT nAlarmInChannels; // 报警输入通道数
  82621. UINT nAlarmOutChannels; // 报警输出通道数
  82622. UINT nMaxExtraStream; // 支持最大辅码流路数(0~3路)
  82623. EM_NET_SERVER_TYPE emNetServerType; // 设备接入网络服务类型
  82624. EM_CHANNEL_PROTOCOL_TYPE emProtocolType; // 跟设备对接时的拉流协议类型
  82625. char szReserved2[4]; // 字节对齐
  82626. double dbTemperature; // 温度值,摄氏度
  82627. NET_TIME stuStateChangeTime; // 通道在离线状态改变时的时间
  82628. char szVideoImageChannelID[32]; // 视图库通道编码
  82629. char szPlatformDoID[32]; // 平台对接编号
  82630. char szReserved[1024]; // 保留字节
  82631. }NET_DEVICE_CHANNEL_INFO;
  82632. ///@brief 已添加设备的结果信息
  82633. typedef struct tagNET_GET_DEVICE_INFO_EX
  82634. {
  82635. char szDeviceID[128]; // 设备ID
  82636. char szUrl[512]; // url
  82637. char szSerialNo[64]; // 设备序列号
  82638. char szGBCode[32]; // 设备国标编码
  82639. char szOrgCode[64]; // 设备所属组织编码
  82640. char szDeviceType[64]; // 设备类型
  82641. char szDeviceClass[16]; // 设备大类
  82642. int nMacCount; // 设备mac个数
  82643. char szMacs[8][18]; // 设备mac地址组
  82644. char szDevSoftVersion[128]; // 设备软件版本号
  82645. char szDeviceName[128]; // 设备名称
  82646. char szDetail[512]; // 设备详细信息
  82647. UINT nVideoInChannel; // 视频输入通道数
  82648. UINT nVideoOutChannel; // 视频输出通道数
  82649. UINT nAudioInChannel; // 音频输入通道数
  82650. UINT nAudioOutChannel; // 音频输出通道数
  82651. UINT nAlarmIn; // 报警输入通道数
  82652. UINT nAlarmOut; // 报警输出通道数
  82653. UINT nOnline; // 设备是否在线 0:离线 1:在线
  82654. UINT nErrorCode; // 设备离线错误码
  82655. UINT nVtoDoors; // 门禁设备可控制的门的总数
  82656. UINT nIsPoeDevice; // 是否是POE设备, 0不是, 1是POE设备
  82657. UINT nPoePort; // Poe端口号, 取值范围>= 0; isPoeDevice字段为真时有效
  82658. BOOL bSupportedFR; // 是否支持目标比对
  82659. BOOL bControlSpeaker; // 是否支持语音联动
  82660. EM_DEVICE_ATTRIBUTE emDeviceAttribute; // 设备属性
  82661. BOOL bSupportedStatistic; // 是否具备统计功能
  82662. BOOL bIsMainProtocolExist; // 主协议是否存在
  82663. BOOL bIsVideoImageEnable; // 视图库是否使能
  82664. UINT nVideoImageOnline; // 视图库是否在线 0:离线 1:在线
  82665. UINT nVideoImageErrorCode; // 视图库离线错误码
  82666. char szVideoImageRegID[32]; // 视图库注册编号
  82667. int nMaxChannelCount; // 用户申请的通道个数
  82668. int nRetChannelCount; // 实际返回的通道个数
  82669. NET_DEVICE_CHANNEL_INFO *pstuChannelsInfo; // 通道信息, 由用户申请和释放内存, 申请大小为sizeof(NET_DEVICE_CHANNEL_INFO)*nMaxChannelCount
  82670. BOOL bControlLighter; // 是否支持白光灯控制
  82671. char szReserved[1024]; // 保留字节
  82672. }NET_GET_DEVICE_INFO_EX;
  82673. ///@brief CLIENT_GetDeviceInfoEx 接口输出参数
  82674. typedef struct tagNET_OUT_GET_DEVICE_INFO_EX
  82675. {
  82676. DWORD dwSize; // 结构体大小
  82677. int nMaxCount; // 用户申请的设备个数
  82678. int nRetCount; // 实际返回的设备个数
  82679. NET_GET_DEVICE_INFO_EX* pstuDeviceInfo; // 设备信息列表, 由用户申请和释放内存, 申请大小为sizeof(NET_GET_DEVICE_INFO)*nMaxCount
  82680. }NET_OUT_GET_DEVICE_INFO_EX;
  82681. ///@brief CLIENT_SetDeviceChannelInfo 接口输入参数
  82682. typedef struct tagNET_IN_SET_DEVICE_CHANNEL_INFO
  82683. {
  82684. DWORD dwSize; // 结构体大小
  82685. char szDeviceID[128]; // 设备ID
  82686. UINT nRemoteChannel; // 远程通道号
  82687. char szName[128]; // 显示在设备树的名称
  82688. char szDetail[512]; // 设备详细信息
  82689. char szMainStreamUrl[256]; // 主码流url
  82690. char szChannelID[32]; // 通道编码
  82691. char szVideoImageChannelID[32]; // 视图库通道编码
  82692. } NET_IN_SET_DEVICE_CHANNEL_INFO;
  82693. ///@brief CLIENT_SetDeviceChannelInfo 接口输出参数
  82694. typedef struct tagNET_OUT_SET_DEVICE_CHANNEL_INFO
  82695. {
  82696. DWORD dwSize; // 结构体大小
  82697. }NET_OUT_SET_DEVICE_CHANNEL_INFO;
  82698. ///@brief 注册设备状态回调
  82699. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachDeviceState(LLONG lLoginID, const NET_IN_ATTACH_DEVICE_STATE *pInParam, NET_OUT_ATTACH_DEVICE_STATE *pOutParam, int nWaitTime);
  82700. ///@brief 注销设备状态回调
  82701. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachDeviceState(LLONG lAttachHandle);
  82702. ///@brief 异步添加设备
  82703. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AsyncAddDevice(LLONG lLoginID, const NET_IN_ASYNC_ADD_DEVICE *pInParam, NET_OUT_ASYNC_ADD_DEVICE *pOutParam, int nWaitTime);
  82704. ///@brief 异步添加自定义设备
  82705. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AsyncAddCustomDevice(LLONG lLoginID, const NET_IN_ASYNC_ADD_CUSTOM_DEVICE *pInParam, NET_OUT_ASYNC_ADD_CUSTOM_DEVICE *pOutParam, int nWaitTime);
  82706. ///@brief 注册添加设备回调
  82707. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachAddDevice(LLONG lLoginID, const NET_IN_ATTACH_ADD_DEVICE *pInParam, NET_OUT_ATTACH_ADD_DEVICE *pOutParam, int nWaitTime);
  82708. ///@brief 注销添加设备回调
  82709. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachAddDevice(LLONG lAttachHandle);
  82710. ///@brief 获取添加中的设备状态
  82711. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAddDeviceInfo(LLONG lLoginID, const NET_IN_GET_ADD_DEVICE_LIST_INFO *pInParam, NET_OUT_GET_ADD_DEVICE_LIST_INFO *pOutParam, int nWaitTime);
  82712. ///@brief 获取已添加的设备状态
  82713. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDeviceInfo(LLONG lLoginID, const NET_IN_GET_DEVICE_LIST_INFO *pInParam, NET_OUT_GET_DEVICE_LIST_INFO *pOutParam, int nWaitTime);
  82714. ///@brief 设置连接通道
  82715. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetConnectChannel(LLONG lLoginID, const NET_IN_SET_CONNECT_CHANNEL *pInParam, NET_OUT_SET_CONNECT_CHANNEL *pOutParam, int nWaitTime);
  82716. ///@brief 获取设备通道信息
  82717. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetChannelInfo(LLONG lLoginID, const NET_IN_GET_CHANNEL_INFO *pInParam, NET_OUT_GET_CHANNEL_INFO *pOutParam, int nWaitTime);
  82718. ///@brief 删除设备
  82719. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveDevice(LLONG lLoginID, const NET_IN_REMOVE_DEVICE *pInParam, NET_OUT_REMOVE_DEVICE *pOutParam, int nWaitTime);
  82720. ///@brief 中止添加设备任务
  82721. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CancelAddDeviceTask(LLONG lLoginID, const NET_IN_CANCEL_ADD_TASK *pInParam, NET_OUT_CANCEL_ADD_TASK *pOutParam, int nWaitTime);
  82722. ///@brief 确认添加设备任务
  82723. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ConfirmAddDeviceTask(LLONG lLoginID, const NET_IN_CONFIRM_ADD_TASK *pInParam, NET_OUT_CONFIRM_ADD_TASK *pOutParam, int nWaitTime);
  82724. ///@brief 获取NMP设备信息
  82725. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetNMPDevInfo(LLONG lLoginID, const NET_IN_GET_NMPDEV_INFO *pInParam, NET_OUT_GET_NMPDEV_INFO *pOutParam, int nWaitTime);
  82726. ///@brief 获取NMP 设备能力集
  82727. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetNMPDevCaps(LLONG lLoginID, const NET_IN_GET_NMPDEV_CAPS *pInParam, NET_OUT_GET_NMPDEV_CAPS *pOutParam, int nWaitTime);
  82728. ///@brief 分页获取NMP 设备端口信息
  82729. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetNMPPortInfoByPage(LLONG lLoginID, const NET_IN_GET_NMPPORT_BY_PAGE *pInParam, NET_OUT_GET_NMPPORT_BY_PAGE *pOutParam, int nWaitTime);
  82730. ///@brief 分页获取NMP 设备邻居信息
  82731. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetNMPNeighborInfoByPage(LLONG lLoginID, const NET_IN_GET_NMPNEIGHBOR_BY_PAGE *pInParam, NET_OUT_GET_NMPNEIGHBOR_BY_PAGE *pOutParam, int nWaitTime);
  82732. ///@brief 订阅NMP 设备端口状态
  82733. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachNMPPortStatus(LLONG lLoginID, const NET_IN_ATTACH_NMP_PORT_STATUS *pInParam, int nWaitTime);
  82734. ///@brief 取消订阅NMP 设备端口状态, lAttachHandle 为 CLIENT_AttachNMPPortStatus 接口返回值
  82735. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachNMPPortStatus(LLONG lAttachHandle);
  82736. ///@brief 清除指定端口数据统计信息
  82737. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ClearPortStatisticsInfo(LLONG lLoginID, const NET_IN_CLEAR_PORT_STATISTICS_INFO *pInParam, NET_OUT_CLEAR_PORT_STATISTICS_INFO *pOutParam, int nWaitTime);
  82738. ///@brief 设置端口信息
  82739. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PortManagerSetPortInfo(LLONG lLoginID, const NET_IN_PORTMANAGER_SET_PORT_INFO *pInParam, NET_OUT_PORTMANAGER_SET_PORT_INFO *pOutParam, int nWaitTime);
  82740. ///@brief 订阅端口拥塞状态
  82741. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachNMPPortCongestion(LLONG lLoginID, const NET_IN_ATTACH_NMP_PORT_CONGESTION *pInParam, int nWaitTime);
  82742. ///@brief 取消订阅端口拥塞状态, lAttachHandle 为 CLIENT_AttachNMPPortCongestion 接口返回值
  82743. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachNMPPortCongestion(LLONG lAttachHandle);
  82744. ///@brief 订阅NMP设备 网络告警事件上报
  82745. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachNMPAlarmInfo(LLONG lLoginID, const NET_IN_ATTACH_NMP_ALARM_INFO *pInParam, int nWaitTime);
  82746. ///@brief 取消订阅NMP设备 网络告警事件上报, lAttachHandle 为 CLIENT_AttachNMPAlarmInfo 接口返回值
  82747. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachNMPAlarmInfo(LLONG lAttachHandle);
  82748. ///@brief 获取已添加的设备状态
  82749. ///@param[in] lLoginID: 登录句柄
  82750. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  82751. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  82752. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  82753. ///@return TRUE表示成功 FALSE表示失败
  82754. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDeviceInfoEx(LLONG lLoginID, const NET_IN_GET_DEVICE_INFO_EX *pstuInParam, NET_OUT_GET_DEVICE_INFO_EX *pstuOutParam, int nWaitTime);
  82755. ///@brief 设置设备通道信息
  82756. ///@param[in] lLoginID: 登录句柄
  82757. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  82758. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  82759. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  82760. ///@return TRUE表示成功 FALSE表示失败
  82761. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDeviceChannelInfo(LLONG lLoginID, const NET_IN_SET_DEVICE_CHANNEL_INFO *pstuInParam, NET_OUT_SET_DEVICE_CHANNEL_INFO *pstuOutParam, int nWaitTime);
  82762. #define MAX_BOARD_NUM 2 // 工作板最大个数
  82763. ///@brief 工作板状态
  82764. typedef enum tagNET_EM_BOARD_STATE
  82765. {
  82766. NET_EM_BOARD_STATE_UNKNOWN = 0, // 未知
  82767. NET_EM_BOARD_STATE_MASTER, // 主板
  82768. NET_EM_BOARD_STATE_SLAVE // 备板
  82769. }NET_EM_BOARD_STATE;
  82770. ///@brief 工作板信息
  82771. typedef struct tagNET_BOARD_STATE_INFO
  82772. {
  82773. char szTarget[DH_COMMON_STRING_64]; // 工作板名称
  82774. NET_EM_BOARD_STATE emState; // 工作板当前状态
  82775. int nBoardSlot; // 工作板卡槽序号
  82776. BYTE byReserved[1024]; // 保留字节
  82777. }NET_BOARD_STATE_INFO;
  82778. ///@brief CLIENT_GetDCSDoubleDevBoardState输入参数
  82779. typedef struct tagNET_IN_GET_BOARD_STATE
  82780. {
  82781. DWORD dwSize; // 结构体大小
  82782. }NET_IN_GET_BOARD_STATE;
  82783. ///@brief CLIENT_GetDCSDoubleDevBoardState输出参数
  82784. typedef struct tagNET_OUT_GET_BOARD_STATE
  82785. {
  82786. DWORD dwSize; // 结构体大小
  82787. int nBoardRet; // 返回的工作板个数
  82788. NET_BOARD_STATE_INFO stuBoardStateList[MAX_BOARD_NUM]; // 工作板列表
  82789. }NET_OUT_GET_BOARD_STATE;
  82790. ///@brief 获取双控工作板的状态
  82791. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDCSDoubleDevBoardState(LLONG lLoginID, const NET_IN_GET_BOARD_STATE* pInParam, NET_OUT_GET_BOARD_STATE* pOutParam, int waittime);
  82792. ///@brief CLIENT_GetDiagnosisEncryptSystemInfo输入参数
  82793. typedef struct tagNET_IN_GET_ENCRYPT_SYSTEM_INFO
  82794. {
  82795. DWORD dwSize;
  82796. }NET_IN_GET_ENCRYPT_SYSTEM_INFO;
  82797. ///@brief CLIENT_GetDiagnosisEncryptSystemInfo输出参数
  82798. typedef struct tagNET_OUT_GET_ENCRYPT_SYSTEM_INFO
  82799. {
  82800. DWORD dwSize;
  82801. char szEncryptContent[MAX_ENCRYPT_SYSTEM_INFO_CONTENT_LEN]; // 系统信息内容(密文)
  82802. }NET_OUT_GET_ENCRYPT_SYSTEM_INFO;
  82803. ///@brief 用于故障分析,获取加密系统信息
  82804. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDiagnosisEncryptSystemInfo(LLONG lLoginID, const NET_IN_GET_ENCRYPT_SYSTEM_INFO* pInParam, NET_OUT_GET_ENCRYPT_SYSTEM_INFO* pOutParam, int nWaitTime);
  82805. // 设备日志最大个数
  82806. #define MAX_LOG_LIST_COUNT 100
  82807. ///@brief 报警事件类型
  82808. typedef enum tagEM_QUERY_EVENT_LOG_TYPE
  82809. {
  82810. EM_QUERY_EVENT_LOG_TYPE_UNKNOWN, // 未知
  82811. EM_QUERY_EVENT_LOG_TYPE_MOTION_DETECT, // 动检报警事件
  82812. EM_QUERY_EVENT_LOG_TYPE_INPUT_ALARM, // 报警输入事件
  82813. EM_QUERY_EVENT_LOG_TYPE_VIDEO_LOSS, // 视频丢失事件
  82814. EM_QUERY_EVENT_LOG_TYPE_NO_DISK, // 无硬盘事件
  82815. EM_QUERY_EVENT_LOG_TYPE_DISK_ERROR, // 硬盘出错事件
  82816. EM_QUERY_EVENT_LOG_TYPE_DISK_FULL, // 硬盘满事件
  82817. EM_QUERY_EVENT_LOG_TYPE_NET_ABORT, // 网络中断事件
  82818. EM_QUERY_EVENT_LOG_TYPE_IP_CONFLICT, // IP冲突事件
  82819. EM_QUERY_EVENT_LOG_TYPE_TEMPERATURE_ALARM, // 温度报警事件
  82820. EM_QUERY_EVENT_LOG_TYPE_POWER_FAULT, // 电源故障事件
  82821. } EM_QUERY_EVENT_LOG_TYPE;
  82822. ///@brief 设备报警信息
  82823. typedef struct tagNET_LOG_LIST_INFO
  82824. {
  82825. EM_QUERY_EVENT_LOG_TYPE emEventType; // 报警事件
  82826. int nChannel; // 事件发生的通道号, -1表示该报警与通道无关
  82827. NET_TIME stStartTime; // 开始时间
  82828. BYTE byReserved[1024]; // 保留字节
  82829. } NET_LOG_LIST_INFO;
  82830. ///@brief CLIENT_QueryEventLog 输入参数
  82831. typedef struct tagNET_IN_QUERY_EVENT_LOG
  82832. {
  82833. DWORD dwSize; // 结构体大小
  82834. char szUUID[MAX_COMMON_STRING_128]; // 手机ID
  82835. } NET_IN_QUERY_EVENT_LOG;
  82836. ///@brief CLIENT_QueryEventLog 输出参数
  82837. typedef struct tagNET_OUT_QUERY_EVENT_LOG
  82838. {
  82839. DWORD dwSize; // 结构体大小
  82840. int nLogListCount; // 日志个数
  82841. NET_LOG_LIST_INFO stLogList[MAX_LOG_LIST_COUNT]; // 日志列表
  82842. char szDeviceName[MAX_COMMON_STRING_64]; // 设备名称
  82843. int nQueryID; // 查询ID
  82844. } NET_OUT_QUERY_EVENT_LOG;
  82845. ///@brief 获取设备报警日志(pInParam和pOutParam资源由用户申请和释放)
  82846. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryEventLog(LLONG lLoginID, const NET_IN_QUERY_EVENT_LOG* pInParam, NET_OUT_QUERY_EVENT_LOG* pOutParam, int nWaitTime);
  82847. ///@brief CLIENT_ConfirmEventLog 输入参数
  82848. typedef struct tagNET_IN_CONFIRM_EVENT_LOG
  82849. {
  82850. DWORD dwSize; // 结构体大小
  82851. char szUUID[MAX_COMMON_STRING_64]; // 手机ID
  82852. int nQueryID; // 查询ID
  82853. } NET_IN_CONFIRM_EVENT_LOG;
  82854. ///@brief CLIENT_ConfirmEventLog 输出参数
  82855. typedef struct tagNET_OUT_CONFIRM_EVENT_LOG
  82856. {
  82857. DWORD dwSize; // 结构体大小
  82858. } NET_OUT_CONFIRM_EVENT_LOG;
  82859. ///@brief 确认已经获取到设备报警日志(pInParam和pOutParam资源由用户申请和释放)
  82860. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ConfirmEventLog(LLONG lLoginID, const NET_IN_CONFIRM_EVENT_LOG* pInParam, NET_OUT_CONFIRM_EVENT_LOG* pOutParam, int nWaitTime);
  82861. #define DH_MAX_DISKLISK_NUM 1024 // 磁盘号最大值
  82862. ///@brief CLIENT_GetStorageBoundTimeEx 入参
  82863. typedef struct tagNET_IN_GET_BOUND_TIMEEX
  82864. {
  82865. DWORD dwSize; // 结构体大小
  82866. int nDiskCount; // 磁盘数量
  82867. int nDiskList[DH_MAX_DISKLISK_NUM]; // 磁盘号列表
  82868. }NET_IN_GET_BOUND_TIMEEX;
  82869. ///@brief 硬盘录像时间信息
  82870. typedef struct tagNET_BOUND_TIME_INFO
  82871. {
  82872. UINT nDiskNO; // 磁盘号
  82873. NET_TIME_EX stuStartTime; // 开始时间
  82874. NET_TIME_EX stuEndTime; // 结束时间
  82875. BYTE byReserved[1024]; // 保留字节
  82876. }NET_BOUND_TIME_INFO;
  82877. ///@brief CLIENT_GetStorageBoundTimeEx 出参
  82878. typedef struct tagNET_OUT_GET_BOUND_TIMEEX
  82879. {
  82880. DWORD dwSize; // 结构体大小
  82881. int nRetDiskCount; // 返回的磁盘数量
  82882. NET_BOUND_TIME_INFO stuBoundTime[DH_MAX_DISKLISK_NUM]; // 硬盘录像时间信息
  82883. }NET_OUT_GET_BOUND_TIMEEX;
  82884. ///@brief 获取录像时间范围
  82885. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetStorageBoundTimeEx(LLONG lLoginID, const NET_IN_GET_BOUND_TIMEEX* pInParam, NET_OUT_GET_BOUND_TIMEEX* pOutParam, int waittime);
  82886. ///@brief CLIENT_GetStoragePortInfo 入参
  82887. typedef struct tagNET_IN_GET_PORTINFO
  82888. {
  82889. DWORD dwSize; // 结构体大小
  82890. }NET_IN_GET_PORTINFO;
  82891. ///@brief CLIENT_GetStoragePortInfo 出参
  82892. typedef struct tagNET_OUT_GET_PORTINFO
  82893. {
  82894. DWORD dwSize; // 结构体大小
  82895. UINT nTotal; // 总线的接口数目,包括扩展的总线
  82896. UINT nPlug; // 已挂载的硬盘的数量, 不包括坏盘
  82897. UINT nMask; // 指示各个总线通道上是否挂载硬盘,包括坏盘
  82898. UINT nBadDisk; // 指示各个通道上是否挂载了坏的硬盘
  82899. UINT nIDEDisk; // 已挂载的IDE硬盘数
  82900. UINT nESATA; // eSATA的接口总数
  82901. UINT nUSB2; // 工作在USB2.0模式下的USB设备个数
  82902. UINT nUSB3; // 工作在USB3.0模式下的USB设备个数
  82903. }NET_OUT_GET_PORTINFO;
  82904. ///@brief 获取存储端口信息
  82905. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetStoragePortInfo(LLONG lLoginID, const NET_IN_GET_PORTINFO* pInParam, NET_OUT_GET_PORTINFO* pOutParam, int waittime);
  82906. // NAS文件操作最大数量
  82907. #define MAX_NASFILE_COUNT 1024
  82908. ///@brief NAS文件操作类型
  82909. typedef enum tagEM_NAS_FILE_OPERATE_TYPE
  82910. {
  82911. EM_NAS_FILE_OPERATE_TYPE_COPY, // 复制, 对应结构体pInParam = NET_IN_COPY_NAS_FILE,pOutParam = NET_OUT_COPY_NAS_FILE
  82912. EM_NAS_FILE_OPERATE_TYPE_MOVE, // 移动, 对应结构体pInParam = NET_IN_MOVE_NAS_FILE,pOutParam = NET_OUT_MOVE_NAS_FILE
  82913. EM_NAS_FILE_OPERATE_TYPE_REMOVE, // 删除, 对应结构体pInParam = NET_IN_REMOVE_NAS_FILE,pOutParam = NET_OUT_REMOVE_NAS_FILE
  82914. } EM_NAS_FILE_OPERATE_TYPE;
  82915. ///@brief NAS文件复制移动方式
  82916. typedef enum tagEM_NAS_FILE_OPTION
  82917. {
  82918. EM_NAS_FILE_OPTION_UNKNOWN, // 未知
  82919. EM_NAS_FILE_OPTION_U, // 表示源目标比目标文件新或目标文件不存在才拷贝
  82920. EM_NAS_FILE_OPTION_F, // 表示直接使用源文件覆盖目标文件
  82921. } EM_NAS_FILE_OPTION;
  82922. ///@brief NAS文件复制输入参数
  82923. typedef struct tagNET_IN_COPY_NAS_FILE
  82924. {
  82925. DWORD dwSize;
  82926. char szID[MAX_COMMON_STRING_128]; // 客户端分配任务ID
  82927. int nSrcNum; // 源文件(夹)名数量
  82928. char szSrcList[MAX_NASFILE_COUNT][MAX_COMMON_STRING_128]; // 源文件(夹)名列表
  82929. char szDstPath[MAX_COMMON_STRING_128]; // 目的路径
  82930. EM_NAS_FILE_OPTION emOption; // 拷贝选项
  82931. } NET_IN_COPY_NAS_FILE ;
  82932. ///@brief NAS文件复制输出参数
  82933. typedef struct tagNET_OUT_COPY_NAS_FILE
  82934. {
  82935. DWORD dwSize;
  82936. } NET_OUT_COPY_NAS_FILE;
  82937. ///@brief NAS文件移动输入参数
  82938. typedef struct tagNET_IN_MOVE_NAS_FILE
  82939. {
  82940. DWORD dwSize;
  82941. char szID[MAX_COMMON_STRING_128]; // 客户端分配任务ID
  82942. int nSrcNum; // 源文件(夹)名数量
  82943. char szSrcList[MAX_NASFILE_COUNT][MAX_COMMON_STRING_128]; // 源文件(夹)名列表
  82944. char szDstPath[MAX_COMMON_STRING_128]; // 目的路径
  82945. EM_NAS_FILE_OPTION emOption; // 移动选项
  82946. } NET_IN_MOVE_NAS_FILE;
  82947. ///@brief NAS文件移动输出参数
  82948. typedef struct tagNET_OUT_MOVE_NAS_FILE
  82949. {
  82950. DWORD dwSize;
  82951. } NET_OUT_MOVE_NAS_FILE;
  82952. ///@brief NAS文件删除输入参数
  82953. typedef struct tagNET_IN_REMOVE_NAS_FILE
  82954. {
  82955. DWORD dwSize;
  82956. char szID[MAX_COMMON_STRING_128]; // 任务ID
  82957. int nFileNum; // 删除文件数量
  82958. char szFileName[MAX_NASFILE_COUNT][MAX_COMMON_STRING_128]; // 源删除文件列表
  82959. } NET_IN_REMOVE_NAS_FILE;
  82960. ///@brief NAS文件删除输出参数
  82961. typedef struct tagNET_OUT_REMOVE_NAS_FILE
  82962. {
  82963. DWORD dwSize;
  82964. } NET_OUT_REMOVE_NAS_FILE;
  82965. ///@brief NAS文件操作接口
  82966. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateNASFile(LLONG lLoginID, EM_NAS_FILE_OPERATE_TYPE emOperateType, void *pInParam, void *pOutParam, int nWaitTime);
  82967. #define MAX_FILE_COMPRESS_COUNT 8 // 文件压缩最大个数
  82968. ///@brief 文件压缩格式
  82969. typedef enum tagEM_COMPRESS_TYPE
  82970. {
  82971. EM_COMPRESS_TYPE_UNKNWON, // 未知
  82972. EM_COMPRESS_TYPE_ZIP, // zip格式
  82973. } EM_COMPRESS_TYPE;
  82974. ///@brief 压缩文件操作输入参数
  82975. typedef struct tagNET_IN_COMPRESS_FILE
  82976. {
  82977. DWORD dwSize;
  82978. char szID[MAX_COMMON_STRING_128]; // 任务ID
  82979. int nSrcNum; // 源文件(夹)名数量
  82980. char szSrcFileList[MAX_FILE_COMPRESS_COUNT][MAX_COMMON_STRING_128]; // 源文件(夹)名列表
  82981. char szDstFile[MAX_COMMON_STRING_128]; // 目的文件
  82982. char szPassword[MAX_COMMON_STRING_64]; // 密码
  82983. EM_COMPRESS_TYPE emCompressType; // 压缩格式
  82984. } NET_IN_COMPRESS_FILE;
  82985. ///@brief 压缩文件操作输出参数
  82986. typedef struct tagNET_OUT_COMPRESS_FILE
  82987. {
  82988. DWORD dwSize;
  82989. } NET_OUT_COMPRESS_FILE;
  82990. ///@brief 压缩文件操作输入参数
  82991. typedef struct tagNET_IN_DECOMPRESS_FILE
  82992. {
  82993. DWORD dwSize;
  82994. char szID[MAX_COMMON_STRING_128]; // 任务ID
  82995. char szSrcFile[MAX_COMMON_STRING_128]; // 源文件名
  82996. char szDstPath[MAX_COMMON_STRING_128]; // 解压到指定目录
  82997. char szPassword[MAX_COMMON_STRING_64]; // 密码
  82998. } NET_IN_DECOMPRESS_FILE;
  82999. ///@brief 压缩文件操作输出参数
  83000. typedef struct tagNET_OUT_DECOMPRESS_FILE
  83001. {
  83002. DWORD dwSize;
  83003. } NET_OUT_DECOMPRESS_FILE;
  83004. ///@brief 文件压缩解压操作接口
  83005. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateFileCompress(LLONG lLoginID, EM_FILE_COMPRESS_TYPE emOperateType, void *pInParam, void *pOutParam, int nWaitTime);
  83006. ///////////////////////////////////////分组流量统计//////////////////////////////////////////////////////////////////
  83007. #define MAX_GROUP_CHANNEL_NUM 1024 // 一个组最大关联的通道个数
  83008. #define MAX_GROUPID_LEN 64 // 组ID的最大字符长度
  83009. #define MAX_GROUPNAME_LEN 128 // 组名称的最大字符长度
  83010. ///@brief 统计小计信息
  83011. typedef struct tagNET_NUMBERSTATGROUP_SUBTOTAL
  83012. {
  83013. int nTotal; // 设备运行后人数统计总数
  83014. int nHour; // 小时内的总人数
  83015. int nToday; // 当天的总人数, 不可手动清除
  83016. int nTotalInTimeSection; // IPC专用,如果不执行clearSectionStat操作,等同于Today人数
  83017. BYTE byReserved[252];
  83018. } NET_NUMBERSTATGROUP_SUBTOTAL;
  83019. ///@brief 分组客流统计数据
  83020. typedef struct tagNET_NUMBERSTATGROUP_SUMMARY
  83021. {
  83022. char szGroupID[MAX_GROUPID_LEN]; // 组ID
  83023. char szGroupName[MAX_GROUPNAME_LEN]; // 组名
  83024. int nChannelNum; // 通道号数
  83025. int arChannelList[MAX_GROUP_CHANNEL_NUM]; // 通道号列表
  83026. NET_TIME_EX stuUTC; // 统计时间秒数,已包含时区偏移
  83027. int nTimeZone; // 时区索引号
  83028. NET_NUMBERSTATGROUP_SUBTOTAL stuEnteredSubtotal; // 进入小计
  83029. NET_NUMBERSTATGROUP_SUBTOTAL stuExitedSubtotal; // 出去小计
  83030. int nInsideSubtotal; // 区域内人数
  83031. BYTE byReserved[1024]; // 保留
  83032. } NET_NUMBERSTATGROUP_SUMMARY;
  83033. ///@brief 分组客流统计数据回调函数原形,lAttachHandle 是 CLIENT_AttachNumberStatGroupSummary 返回值
  83034. typedef void (CALLBACK *fNumberStatGroupSumCallBack) (LLONG lAttachHandle, NET_NUMBERSTATGROUP_SUMMARY* pBuf, DWORD dwBufLen, LDWORD dwUser);
  83035. ///@brief 订阅分组客流量统计数据--输入参数
  83036. typedef struct tagNET_IN_ATTACH_NUMBERSTATGROUP_SUM
  83037. {
  83038. DWORD dwSize; // 结构体大小
  83039. fNumberStatGroupSumCallBack cbNumberStatGroupSum; // 分组客流量统计数据回调
  83040. LDWORD dwUser; // 用户数据
  83041. }NET_IN_ATTACH_NUMBERSTATGROUP_SUM;
  83042. ///@brief 订阅分组客流量统计数据--输出参数
  83043. typedef struct tagNET_OUT_ATTACH_NUMBERSTATGROUP_SUM
  83044. {
  83045. DWORD dwSize; // 结构体大小
  83046. }NET_OUT_ATTACH_NUMBERSTATGROUP_SUM;
  83047. ///@brief 订阅分组客流量统计数据
  83048. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachNumberStatGroupSummary(LLONG lLoginID, const NET_IN_ATTACH_NUMBERSTATGROUP_SUM* pInParam, NET_OUT_ATTACH_NUMBERSTATGROUP_SUM* pOutParam, int waittime);
  83049. ///@brief 取消订阅分组客流量统计数据
  83050. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachNumberStatGroupSummary(LLONG lAttachHandle);
  83051. ///@brief 分组人员统计--添加组 输入参数
  83052. typedef struct tagNET_IN_ADD_NUMBERSTATGROUP_INFO
  83053. {
  83054. DWORD dwSize; // 结构体大小
  83055. char szGroupName[MAX_GROUPNAME_LEN]; // 组名
  83056. int nChannelNum; // 通道数
  83057. int arChannelList[MAX_GROUP_CHANNEL_NUM]; // 通道列表
  83058. }NET_IN_ADD_NUMBERSTATGROUP_INFO;
  83059. ///@brief 分组人员统计--添加组 输出参数
  83060. typedef struct tagNET_OUT_ADD_NUMBERSTATGROUP_INFO
  83061. {
  83062. DWORD dwSize; // 结构体大小
  83063. char szGroupID[MAX_GROUPID_LEN]; // GroupID
  83064. }NET_OUT_ADD_NUMBERSTATGROUP_INFO;
  83065. ///@brief 分组人员统计--添加组
  83066. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddNumberStatGroup(LLONG lLoginID, const NET_IN_ADD_NUMBERSTATGROUP_INFO* pInParam, NET_OUT_ADD_NUMBERSTATGROUP_INFO* pOutParam, int waittime);
  83067. ///@brief 分组人员统计--删除组 输入参数
  83068. typedef struct tagNET_IN_DEL_NUMBERSTATGROUP_INFO
  83069. {
  83070. DWORD dwSize; // 结构体大小
  83071. char szGroupID[MAX_GROUPID_LEN]; // GroupID
  83072. }NET_IN_DEL_NUMBERSTATGROUP_INFO;
  83073. ///@brief 分组人员统计--删除组 输入参数
  83074. typedef struct tagNET_OUT_DEL_NUMBERSTATGROUP_INFO
  83075. {
  83076. DWORD dwSize; // 结构体大小
  83077. }NET_OUT_DEL_NUMBERSTATGROUP_INFO;
  83078. ///@brief 分组人员统计--删除组
  83079. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelNumberStatGroup(LLONG lLoginID, const NET_IN_DEL_NUMBERSTATGROUP_INFO* pInParam, NET_OUT_DEL_NUMBERSTATGROUP_INFO* pOutParam, int waittime);
  83080. ///@brief 组信息
  83081. typedef struct tagNET_NUMBERSTATGROUP_INFO
  83082. {
  83083. char szGroupID[MAX_GROUPID_LEN]; // GroupID
  83084. char szGroupName[MAX_GROUPNAME_LEN]; // 组名称
  83085. int nChannelNum; // 通道个数
  83086. int arChannelList[MAX_GROUP_CHANNEL_NUM]; // 通道号列表
  83087. BYTE byReserved[512]; // 保留
  83088. }NET_NUMBERSTATGROUP_INFO;
  83089. ///@brief 分组人员统计--修改组 输入参数
  83090. typedef struct tagNET_IN_MODIFY_NUMBERSTATGROUP_INFO
  83091. {
  83092. DWORD dwSize; // 结构体大小
  83093. NET_NUMBERSTATGROUP_INFO stuGroupInfo;
  83094. }NET_IN_MODIFY_NUMBERSTATGROUP_INFO;
  83095. ///@brief 分组人员统计--修改组 输出参数
  83096. typedef struct tagNET_OUT_MODIFY_NUMBERSTATGROUP_INFO
  83097. {
  83098. DWORD dwSize; // 结构体大小
  83099. }NET_OUT_MODIFY_NUMBERSTATGROUP_INFO;
  83100. ///@brief 分组人员统计--修改组
  83101. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyNumberStatGroup(LLONG lLoginID, const NET_IN_MODIFY_NUMBERSTATGROUP_INFO* pInParam, NET_OUT_MODIFY_NUMBERSTATGROUP_INFO* pOutParam, int waittime);
  83102. ///@brief 分组人员统计--获取组 输入参数
  83103. typedef struct tagNET_IN_NUMBERSTATGROUPS_INFO
  83104. {
  83105. DWORD dwSize; // 结构体大小
  83106. char szGroupID[MAX_GROUPID_LEN]; // GroupID
  83107. }NET_IN_NUMBERSTATGROUPS_INFO;
  83108. ///@brief 分组人员统计--获取组 输出参数
  83109. typedef struct tagNET_OUT_NUMBERSTATGROUPS_INFO
  83110. {
  83111. DWORD dwSize; // 结构体大小
  83112. int nGroupsRetNum; // 返回的组个数
  83113. int nGroupsMaxNum; // 用户分配的数组个数
  83114. NET_NUMBERSTATGROUP_INFO* pstuGroupList; // 组列表, 由用户分配,大小为sizeof(NET_NUMBERSTATGROUP_INFO) * nGroupsMaxNum
  83115. }NET_OUT_NUMBERSTATGROUPS_INFO;
  83116. ///@brief 分组人员统计--获取组
  83117. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetNumberStatGroups(LLONG lLoginID, const NET_IN_NUMBERSTATGROUPS_INFO* pInParam, NET_OUT_NUMBERSTATGROUPS_INFO* pOutParam, int waittime);
  83118. ///@brief 分组人员统计--获取摘要信息 输入参数
  83119. typedef struct tagNET_IN_NUMBERSTATGROUPSUMMARY_INFO
  83120. {
  83121. DWORD dwSize; // 结构体大小
  83122. char szGroupID[MAX_GROUPID_LEN]; // GroupID
  83123. }NET_IN_NUMBERSTATGROUPSUMMARY_INFO;
  83124. ///@brief 分组人员统计--获取摘要信息 输出参数
  83125. typedef struct tagNET_OUT_NUMBERSTATGROUPSUMMARY_INFO
  83126. {
  83127. DWORD dwSize; // 结构体大小
  83128. NET_NUMBERSTATGROUP_SUMMARY stuSummary; // 摘要信息
  83129. }NET_OUT_NUMBERSTATGROUPSUMMARY_INFO;
  83130. ///@brief 分组人员统计--获取摘要信息
  83131. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetNumberStatGroupSummary(LLONG lLoginID, const NET_IN_NUMBERSTATGROUPSUMMARY_INFO* pInParam, NET_OUT_NUMBERSTATGROUPSUMMARY_INFO* pOutParam, int waittime);
  83132. ///@brief 待查询数据的规则类型
  83133. typedef enum tagEM_NUMBERSTATGROUP_RULE_TYPE
  83134. {
  83135. EM_NUMBERSTATGROUP_RULE_UNKNOWN = 0,
  83136. EM_NUMBERSTATGROUP_RULE_NUMBERSTAT, // 返回Entered和Exited
  83137. EM_NUMBERSTATGROUP_RULE_MANNUMBERDETECTION, // 返回Inside统计
  83138. }EM_NUMBERSTATGROUP_RULE_TYPE;
  83139. ///@brief 统计信息粒度
  83140. typedef enum tagEM_GRANULARITY_TYPE
  83141. {
  83142. EM_GRANULARITY_UNKNOWN = 0,
  83143. EM_GRANULARITY_MINUTE, // 按分钟
  83144. EM_GRANULARITY_HOUR, // 按小时
  83145. EM_GRANULARITY_DAY, // 按天
  83146. EM_GRANULARITY_WEEK, // 按周
  83147. EM_GRANULARITY_MONTH, // 按月
  83148. EM_GRANULARITY_SEASON, // 按季
  83149. EM_GRANULARITY_YEAR // 按年
  83150. }EM_GRANULARITY_TYPE;
  83151. ///@brief 查询条件
  83152. typedef struct tagNET_IN_NUMBERSTATGROUP_START_FIND_INFO
  83153. {
  83154. DWORD dwSize; // 结构体大小
  83155. char szGroupID[MAX_GROUPID_LEN]; // 组ID,为""则查询所有组
  83156. NET_TIME stStartTime; // 开始时间
  83157. NET_TIME stEndTime; // 结束时间
  83158. EM_NUMBERSTATGROUP_RULE_TYPE emRuleType; // 待查询数据的规则类型
  83159. EM_GRANULARITY_TYPE emGranularity; // 查询粒度
  83160. UINT nPlanID; // 计划ID,仅球机有效,从1开始
  83161. }NET_IN_NUMBERSTATGROUP_START_FIND_INFO;
  83162. ///@brief 查询输出
  83163. typedef struct tagNET_OUT_NUMBERSTATGROUP_START_FIND_INFO
  83164. {
  83165. DWORD dwSize; // 结构体大小
  83166. UINT nTotalCount; // 符合查询条件的总数
  83167. }NET_OUT_NUMBERSTATGROUP_START_FIND_INFO;
  83168. ///@brief 分组人员统计--开始查找
  83169. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindNumberStatGroup(LLONG lLoginID, const NET_IN_NUMBERSTATGROUP_START_FIND_INFO* pInParam, NET_OUT_NUMBERSTATGROUP_START_FIND_INFO* pOutParam, int nWaitTime);
  83170. ///@brief 分组客流统计记录
  83171. typedef struct tagNET_NUMBERSTATGROUP_RECORD
  83172. {
  83173. char szGroupID[MAX_GROUPID_LEN]; // 组ID
  83174. char szGroupName[MAX_GROUPNAME_LEN]; // 组名
  83175. int nChannelNum; // 通道号数
  83176. int arChannelList[MAX_GROUP_CHANNEL_NUM]; // 通道号列表
  83177. EM_NUMBERSTATGROUP_RULE_TYPE emRuleName; // 规则类型
  83178. NET_TIME_EX stuStartTime; // 统计开始时间
  83179. NET_TIME_EX stuEndTime; // 统计结束时间,和开始时间一样表示统计人数是个瞬时值
  83180. UINT nEnteredSubtotal; // 进入小计
  83181. UINT nExitedSubtotal; // 出去小计
  83182. UINT nInsideSubtotal; // 区域内人数
  83183. BYTE byReserved[1024]; // 保留
  83184. } NET_NUMBERSTATGROUP_RECORD;
  83185. ///@brief CLIENT_DoFindNumberStatGroup输入参数
  83186. typedef struct tagNET_IN_NUMBERSTATGROUP_DO_FIND_INFO
  83187. {
  83188. DWORD dwSize;
  83189. int nStartNo; // 起始序号
  83190. int nCount; // 本次欲获得结果的个数
  83191. }NET_IN_NUMBERSTATGROUP_DO_FIND_INFO;
  83192. ///@brief CLIENT_DoFindNumberStatGroup输出参数
  83193. typedef struct tagNET_OUT_NUMBERSTATGROUP_DO_FIND_INFO
  83194. {
  83195. DWORD dwSize;
  83196. int nRetNum; // 本次查询到的个数
  83197. int nMaxNum; // 用户分配内存的个数
  83198. NET_NUMBERSTATGROUP_RECORD* pstuInfo; // 查询结果, 用户分配内存,大小为sizeof(NET_NUMBERSTATGROUP_RECORD)*nMaxNum
  83199. }NET_OUT_NUMBERSTATGROUP_DO_FIND_INFO;
  83200. ///@brief 分组人员统计--查找
  83201. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindNumberStatGroup(LLONG lFindHandle, const NET_IN_NUMBERSTATGROUP_DO_FIND_INFO* pInParam, NET_OUT_NUMBERSTATGROUP_DO_FIND_INFO* pOutParam, int nWaitTime);
  83202. ///@brief 分组人员统计--停止查找
  83203. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindNumberStatGroup(LLONG lFindHandle);
  83204. /**************************录像二次分析接口*************************/
  83205. #define MAX_SECONDARY_ANALYSE_TASK_NUM 32 // 二次分析任务支持的最大个数
  83206. #define MAX_SECONDARY_ANALYSE_RULE_NUM 8 // 二次分析规则支持的最大个数
  83207. #define MAX_SECONDARY_ANALYSE_EVENT_NUM 8 // 二次分析事件支持的最大个数
  83208. ///@brief 录像二次分析任务状态
  83209. typedef enum tagEM_SECONDARY_ANALYSE_STATE
  83210. {
  83211. EM_SECONDARY_ANALYSE_UNKNOWN, // 未知
  83212. EM_SECONDARY_ANALYSE_WAIT_DOWNLOAD, // 等待下载
  83213. EM_SECONDARY_ANALYSE_DOWNLOADING, // 下载中
  83214. EM_SECONDARY_ANALYSE_WAIT_ANALYSE, // 等待分析
  83215. EM_SECONDARY_ANALYSE_ANALYSING, // 分析中
  83216. EM_SECONDARY_ANALYSE_FINISH_ANALYSE, // 完成分析
  83217. EM_SECONDARY_ANALYSE_DOWNLOAD_FAILED, // 下载失败
  83218. EM_SECONDARY_ANALYSE_CANCELLED, // 任务取消
  83219. EM_SECONDARY_ANALYSE_NOTENOUGH_ANALYSER, // 分析器不够
  83220. EM_SECONDARY_ANALYSE_ANALYSER_ERROR, // 分析器异常
  83221. EM_SECONDARY_ANALYSE_PAUSE_DOWNLOAD, // 下载暂停
  83222. EM_SECONDARY_ANALYSE_PAUSE_ANALYSE, // 分析暂停
  83223. } EM_SECONDARY_ANALYSE_STATE;
  83224. ///@brief 录像二次分析任务状态信息
  83225. typedef struct tagNET_ANALYSE_TASK_INFO
  83226. {
  83227. UINT nTaskID; // 任务ID
  83228. EM_SECONDARY_ANALYSE_STATE emAnalyseState; // 当前任务状态
  83229. char szTaskName[DH_COMMON_STRING_128]; // 当前任务名称
  83230. UINT nProgress; // 当前分析进度
  83231. BYTE byReserved[516]; // 保留字节
  83232. } NET_ANALYSE_TASK_INFO;
  83233. ///@brief 录像二次分析状态订阅回调函数出参
  83234. typedef struct tagNET_CB_SECONDARY_ANALYSE_INFO
  83235. {
  83236. int nRetAnalyseTaskCount; // 实际返回的二次分析任务个数
  83237. BYTE byReserved1[4]; // 字节对齐
  83238. NET_ANALYSE_TASK_INFO stuAnalyseTaskInfo[MAX_SECONDARY_ANALYSE_TASK_NUM];// 二次分析任务信息
  83239. LDWORD dwUser; // 用户数据
  83240. BYTE byReserved[512]; // 保留字节
  83241. } NET_CB_SECONDARY_ANALYSE_INFO;
  83242. ///@brief 录像二次分析状态订阅回调函数原型
  83243. typedef int (CALLBACK *fSecondaryAnalyseCallBack)(LLONG lAnalyseHandle, NET_CB_SECONDARY_ANALYSE_INFO *pstSecondaryAnalyseInfo);
  83244. ///@brief 订阅录像二次分析进度输入参数
  83245. typedef struct tagNET_IN_ATTACH_SECONDARY_ANALYSE_STATE
  83246. {
  83247. DWORD dwSize; // 赋值为结构体大小
  83248. BYTE byReserved[4]; // 字节对齐
  83249. fSecondaryAnalyseCallBack cbSecondaryAnalyse; // 回调函数
  83250. LDWORD dwUser; // 用户数据
  83251. } NET_IN_ATTACH_SECONDARY_ANALYSE_STATE;
  83252. ///@brief 订阅录像二次分析进度输出参数
  83253. typedef struct tagNET_OUT_ATTACH_SECONDARY_ANALYSE_STATE
  83254. {
  83255. DWORD dwSize; // 赋值为结构体大小
  83256. } NET_OUT_ATTACH_SECONDARY_ANALYSE_STATE;
  83257. ///@brief 目标分析规则信息
  83258. typedef struct tagNET_ANALYSE_RULE_FACE_ANALYSIS_INFO
  83259. {
  83260. UINT nSimilarity; // 相似度
  83261. UINT nGroupNum; // 目标组个数
  83262. char szGroupID[MAX_FACE_DB_NUM][DH_COMMON_STRING_64]; // 目标组ID
  83263. BYTE byReserved[1024]; // 保留字节
  83264. } NET_ANALYSE_RULE_FACE_ANALYSIS_INFO;
  83265. ///@brief 规则类型
  83266. typedef enum tagEM_ANALYSE_RULE_TYPE
  83267. {
  83268. EM_ANALYSE_RULE_UNKNOWN, // 未知
  83269. EM_ANALYSE_RULE_FACE_ANALYSIS, // 目标分析, 对应结构体 NET_ANALYSE_RULE_FACE_ANALYSIS_INFO
  83270. EM_ANALYSE_RULE_FACE_ATTRIBUTE, // 目标检测, 无配置结构体
  83271. } EM_ANALYSE_RULE_TYPE;
  83272. ///@brief 事件类型
  83273. typedef enum tagEM_ANALYSE_EVENT_TYPE
  83274. {
  83275. EM_ANALYSE_EVENT_UNKNOWN, // 未知
  83276. EM_ANALYSE_EVENT_ALL, // 所有事件
  83277. EM_ANALYSE_EVENT_FACE_DETECTION, // 目标检测事件, 对应结构体 DEV_EVENT_FACEDETECT_INFO
  83278. EM_ANALYSE_EVENT_FACE_RECOGNITION, // 目标识别事件, 对应结构体 DEV_EVENT_FACERECOGNITION_INFO
  83279. EM_ANALYSE_EVENT_TRAFFICJUNCTION, // 交通路口事件, 对应结构体 DEV_EVENT_TRAFFICJUNCTION_INFO
  83280. EM_ANALYSE_EVENT_HUMANTRAIT, // 人体特征事件, 对应结构体 DEV_EVENT_HUMANTRAIT_INFO
  83281. EM_ANALYSE_EVENT_XRAY_DETECTION, // X光机检测事件, 对应结构体 DEV_EVENT_XRAY_DETECTION_INFO
  83282. EM_ANALYSE_EVENT_WORKCLOTHESDETECT, // 工装(安全帽/工作服等)检测事件, 对应结构体 DEV_EVENT_WORKCLOTHES_DETECT_INFO
  83283. EM_ANALYSE_EVENT_WORKSTATDETECTION, // 作业检测事件, 对应结构体 DEV_EVENT_WORKSTATDETECTION_INFO
  83284. EM_ANALYSE_EVENT_CORSSLINEDETECTION, // 警戒线事件, 对应结构体 DEV_EVENT_CROSSLINE_INFO
  83285. EM_ANALYSE_EVENT_CROSSREGIONDETECTION, // 警戒区事件, 对应结构体 DEV_EVENT_CROSSREGION_INFO
  83286. EM_ANALYSE_EVENT_FEATURE_ABSTRACT, // 特征提取事件 DEV_EVENT_FEATURE_ABSTRACT_INFO
  83287. EM_ANALYSE_EVENT_ELECTRIC_GLOVE_DETECT, // 电力检测手套检测事件, 对应结构体 DEV_EVENT_ELECTRIC_GLOVE_DETECT_INFO
  83288. EM_ANALYSE_EVENT_ELECTRIC_LADDER_DETECT, // 电力检测梯子检测事件, 对应结构体 DEV_EVENT_ELECTRIC_LADDER_DETECT_INFO
  83289. EM_ANALYSE_EVENT_ELECTRIC_CURTAIN_DETECT, // 电力检测布幔检测事件, 对应结构体 DEV_EVENT_ELECTRIC_CURTAIN_DETECT_INFO
  83290. EM_ANALYSE_EVENT_ELECTRIC_FENCE_DETECT, // 电力检测围栏检测事件, 对应结构体 DEV_EVENT_ELECTRIC_FENCE_DETECT_INFO
  83291. EM_ANALYSE_EVENT_ELECTRIC_SIGNBOARD_DETECT, // 电力检测标识牌检测事件, 对应结构体 DEV_EVENT_ELECTRIC_SIGNBOARD_DETECT_INFO
  83292. EM_ANALYSE_EVENT_ELECTRIC_BELT_DETECT, // 电力检测安全带检测事件, 对应结构体 DEV_EVENT_ELECTRIC_BELT_DETECT_INFO
  83293. EM_ANALYSE_EVENT_BANNER_DETECTION, // 拉横幅检测事件, 对应的结构体 DEV_EVENT_BANNER_DETECTION_INFO
  83294. EM_ANALYSE_EVENT_SMART_KITCHEN_CLOTHES_DETECTION, // 智慧厨房穿着检测事件, 对应结构体 DEV_EVENT_SMART_KITCHEN_CLOTHES_DETECTION_INFO
  83295. EM_ANALYSE_EVENT_WATER_STAGE_MONITOR, // 水位监测事件, 对应结构体DEV_EVENT_WATER_STAGE_MONITOR_INFO
  83296. EM_ANALYSE_EVENT_FLOATINGOBJECT_DETECTION, // 漂浮物检测事件, 对应结构体 DEV_EVENT_FLOATINGOBJECT_DETECTION_INFO
  83297. EM_ANALYSE_EVENT_IVS_RIOTERDETECTION, // 人群聚集 对应结构体 DEV_EVENT_RIOTERL_INFO)
  83298. EM_ANALYSE_EVENT_IVS_LEFTDETECTION, // 物品遗留事件 对应结构体 DEV_EVENT_LEFT_INFO
  83299. EM_ANALYSE_EVENT_IVS_PARKINGDETECTION, // 非法停车事件 对应结构体 DEV_EVENT_PARKINGDETECTION_INFO
  83300. EM_ANALYSE_EVENT_IVS_WANDERDETECTION, // 徘徊事件对应结构体 DEV_EVENT_WANDER_INFO
  83301. EM_ANALYSE_EVENT_IVS_VIDEOABNORMALDETECTION,// 视频异常对应结构体 DEV_EVENT_VIDEOABNORMALDETECTION_INFO
  83302. EM_ANALYSE_EVENT_MOVEDETECTION, // 运动检测事件, 对应结构体 DEV_EVENT_MOVE_INFO
  83303. EM_ANALYSE_EVENT_VIDEO_NORMAL_DETECTION, // 视频正常事件,在视频诊断检测周期结束时,将未报错的诊断项上报正常事件,对应结构体 DEV_EVENT_VIDEO_NORMAL_DETECTION_INFO
  83304. EM_ANALYSE_EVENT_CONVEYER_BELT_BULK, // 传送带大块异物检测事件, 对应结构体 DEV_EVENT_CONVEYER_BELT_BULK_INFO
  83305. EM_ANALYSE_EVENT_CONVEYER_BELT_NONLOAD, // 传送带空载检测事件, 对应结构体 DEV_EVENT_CONVEYER_BELT_NONLOAD_INFO
  83306. EM_ANALYSE_EVENT_CONVEYER_BELT_RUNOFF, // 传送带跑偏检测事件, 对应结构体 DEV_EVENT_CONVEYER_BELT_RUNOFF_INFO
  83307. EM_ANALYSE_EVENT_CONVEYER_BELT_BLOCK, // 传送带阻塞检测事件, 对应结构体 DEV_EVENT_CONVEYORBLOCK_DETECTION_INFO
  83308. EM_ANALYSE_EVENT_NUMBER_STAT, // 数量统计事件, 对应 结构体 DEV_EVENT_NUMBERSTAT_INFO
  83309. EM_ANALYSE_EVENT_FIGHTDETECTION, // 斗殴事件, 对应结构体 DEV_EVENT_FIGHT_INFO
  83310. EM_ANALYSE_EVENT_SMOKEDETECTION, // 烟雾报警检测事件, 对应结构体 DEV_EVENT_SMOKE_INFO
  83311. EM_ANALYSE_EVENT_FIREDETECTION, // 火警检测事件, 对应结构体 DEV_EVENT_FIRE_INFO
  83312. EM_ANALYSE_EVENT_PHONECALL_DETECT, // 打电话检测事件, 对应结构体 DEV_EVENT_PHONECALL_DETECT_INFO
  83313. EM_ANALYSE_EVENT_SMOKING_DETECT, // 吸烟检测事件, 对应结构体 DEV_EVENT_SMOKING_DETECT_INFO
  83314. EM_ANALYSE_EVENT_TUMBLE_DETECTION, // 跌倒检测事件, 对应结构体 DEV_EVENT_TUMBLE_DETECTION_INFO
  83315. EM_ANALYSE_EVENT_WATER_LEVEL_DETECTION, // 水位尺检测事件, 对应结构体 DEV_EVENT_WATER_LEVEL_DETECTION_INFO
  83316. EM_ANALYSE_EVENT_CLIMBDETECTION, // 攀高检测事件, 对应结构体 DEV_EVENT_IVS_CLIMB_INFO
  83317. EM_ANALYSE_EVENT_MAN_NUM_DETECTION, // 立体视觉区域内人数统计事件, 对应结构体DEV_EVENT_MANNUM_DETECTION_INFO
  83318. EM_ANALYSE_EVENT_DIALRECOGNITION, // 仪表检测事件, 对应结构体DEV_EVENT_DIALRECOGNITION_INFO
  83319. EM_ANALYSE_EVENT_ELECTRICFAULT_DETECT, // 仪表类缺陷检测事件, 对应结构体DEV_EVENT_ELECTRICFAULTDETECT_INFO
  83320. EM_ANALYSE_EVENT_IVS_TRAFFIC_ROAD_BLOCK, // 交通路障检测事件,对应结构体 DEV_EVENT_TRAFFIC_ROAD_BLOCK_INFO
  83321. EM_ANALYSE_EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION, //交通道路施工检测事件,对应结构体 DEV_EVENT_TRAFFIC_ROAD_CONSTRUCTION_INFO
  83322. EM_ANALYSE_EVENT_IVS_TRAFFIC_FLOWSTATE, // 交通流量统计事件,对应结构体 DEV_EVENT_TRAFFIC_FLOW_STATE
  83323. EM_ANALYSE_EVENT_IVS_TRAFFIC_OVERSPEED, // 超速事件,对应结构体 DEV_EVENT_TRAFFIC_OVERSPEED_INFO
  83324. EM_ANALYSE_EVENT_IVS_TRAFFIC_UNDERSPEED, // 欠速事件,对应结构体 DEV_EVENT_TRAFFIC_UNDERSPEED_INFO
  83325. EM_ANALYSE_EVENT_IVS_TRAFFIC_OVERYELLOWLINE,// 压黄线事件,对应结构体 DEV_EVENT_TRAFFIC_OVERYELLOWLINE_INFO
  83326. EM_ANALYSE_EVENT_IVS_TRAFFIC_CROSSLANE, // 违章变道事件, 对应结构体 DEV_EVENT_TRAFFIC_CROSSLANE_INFO
  83327. EM_ANALYSE_EVENT_IVS_TRAFFICJAM, // 交通拥堵事件, 对应结构体 DEV_EVENT_TRAFFICJAM_INFO
  83328. EM_ANALYSE_EVENT_IVS_TRAFFIC_PEDESTRAIN, // 交通行人事件, 对应结构体 DEV_EVENT_TRAFFIC_PEDESTRAIN_INFO
  83329. EM_ANALYSE_EVENT_IVS_TRAFFIC_THROW, // 抛洒物事件, 对应结构体 DEV_EVENT_TRAFFIC_THROW_INFO
  83330. EM_ANALYSE_EVENT_IVS_TRAFFIC_RETROGRADE, // 交通逆行事件, 对应结构体 DEV_EVENT_TRAFFIC_RETROGRADE_INFO
  83331. EM_ANALYSE_EVENT_IVS_TRAFFICACCIDENT, // 交通事故事件, 对应结构体 DEV_EVENT_TRAFFICACCIDENT_INFO
  83332. EM_ANALYSE_EVENT_IVS_TRAFFIC_BACKING, // 倒车事件, 对应结构体 DEV_EVENT_IVS_TRAFFIC_BACKING_INFO
  83333. EM_ANALYSE_EVENT_IVS_FOG_DETECTION, // 起雾检测事件, 对应结构体 DEV_EVENT_FOG_DETECTION
  83334. EM_ANALYSE_EVENT_IVS_CROSSREGIONDETECTION, // 警戒区事件, 对应结构体 DEV_EVENT_CROSSREGION_INFO
  83335. EM_ANALYSE_EVENT_IVS_TRAFFIC_PARKING, // 交通违章停车事件,对应结构体 DEV_EVENT_TRAFFIC_PARKING_INFO
  83336. EM_ANALYSE_EVENT_IVS_FINANCE_CASH_TRANSACTION,//智慧金融现金交易检测事件,对应结构体 DEV_EVENT_FINANCE_CASH_TRANSACTION_INFO
  83337. EM_ANALYSE_EVENT_IVS_LEAVEDETECTION, // 离岗检测事件,对应结构体 DEV_EVENT_IVS_LEAVE_INFO
  83338. EM_ANALYSE_EVENT_IVS_LADLE_NO_DETECTION, // 钢包编号识别事件,对应结构体 DEV_EVENT_LADLE_NO_DETECTION_INFO
  83339. EM_ANALYSE_EVENT_IVS_STAYDETECTION, // 停留事件,对应结构体 DEV_EVENT_STAY_INFO
  83340. EM_ANALYSE_EVENT_IVS_NEAR_OBJECT_DETECT, // 近物体检测事件,对应结构体 DEV_EVENT_NEAR_OBJECT_DETECT_INFO
  83341. EM_ANALYSE_EVENT_IVS_CRANE_LOAD_STAY_DETECTION, // 天车吊物滞留事件,对应结构体 DEV_EVENT_CRANE_LOAD_STAY_DETECTION_INFO
  83342. EM_ANALYSE_EVENT_IVS_PIC_COMPARE_DETECTION, // 图片比对不上事件,对应结构体 NET_DEV_EVENT_PIC_COMPARE_DETECTION_INFO
  83343. EM_ANALYSE_EVENT_CONVEYOR_ARTICLE_TYPE, // 传送带异物检测事件, 对应结构体 DEV_EVENT_CONVEYOR_ARTICLE_TYPE_INFO
  83344. EM_ANALYSE_EVENT_CROSSLINEDETECTION_EX = 2000, // 警戒线事件(扩展), 对应结构体 DEV_EVENT_CROSSLINE_INFO_EX
  83345. } EM_ANALYSE_EVENT_TYPE;
  83346. ///@brief 录像二次分析规则信息
  83347. typedef struct tagNET_ANALYSE_INFO
  83348. {
  83349. EM_ANALYSE_RULE_TYPE emAnalyseType; // 规则类型
  83350. BYTE byReserved1[4]; // 字节对齐
  83351. void *pRuleInfo; // 规则具体信息, 根据emAnalyseType来确定具体的结构体
  83352. BYTE byReserved[512]; // 保留字节
  83353. } NET_ANALYSE_INFO;
  83354. ///@brief 需要添加的录像二次分析任务信息
  83355. typedef struct tagNET_SECONDARY_ANALYSE_TASK_INFO
  83356. {
  83357. char szRecordPath[DH_COMMON_STRING_256]; // 录像文件路径
  83358. int nAnalyseCount; // 录像二次分析的规则个数
  83359. NET_ANALYSE_INFO stuAnalyseInfo[MAX_SECONDARY_ANALYSE_RULE_NUM]; // 录像二次分析的规则信息
  83360. char szTaskName[DH_COMMON_STRING_128]; // 任务名称
  83361. BOOL bNeedSave; // 录像是否保存到设备端
  83362. BYTE byReserved[1024]; // 保留字节
  83363. } NET_SECONDARY_ANALYSE_TASK_INFO;
  83364. ///@brief 添加录像二次分析任务输入参数
  83365. typedef struct tagNET_IN_SECONDARY_ANALYSE_ADDTASK
  83366. {
  83367. DWORD dwSize; // 赋值为结构体大小
  83368. int nAnalyseTaskCount; // 实际的二次分析任务个数
  83369. NET_SECONDARY_ANALYSE_TASK_INFO stuAnalyseTaskInfo[MAX_SECONDARY_ANALYSE_TASK_NUM];// 二次分析任务信息
  83370. } NET_IN_SECONDARY_ANALYSE_ADDTASK;
  83371. ///@brief 添加任务返回的信息
  83372. typedef struct tagNET_TASK_ADD_RESULT_INFO
  83373. {
  83374. UINT nTaskID; // 任务ID, 大于0。失败返回0,与文件列表一一对应
  83375. char szLocalPath[DH_COMMON_STRING_256]; // 将要保存在设备端的录像文件路径
  83376. BYTE byReserved[1024]; // 保留字节
  83377. } NET_TASK_ADD_RESULT_INFO;
  83378. ///@brief 添加录像二次分析任务输出参数
  83379. typedef struct tagNET_OUT_SECONDARY_ANALYSE_ADDTASK
  83380. {
  83381. DWORD dwSize; // 赋值为结构体大小
  83382. UINT nRetTaskResultNum; // 实际返回的任务添加结果信息
  83383. NET_TASK_ADD_RESULT_INFO stuResultInfo[MAX_SECONDARY_ANALYSE_TASK_NUM];// 添加任务返回的结果信息
  83384. } NET_OUT_SECONDARY_ANALYSE_ADDTASK;
  83385. ///@brief 开始录像二次分析任务输入参数
  83386. typedef struct tagNET_IN_SECONDARY_ANALYSE_STARTTASK
  83387. {
  83388. DWORD dwSize; // 赋值为结构体大小
  83389. UINT nTaskIdNum; // 任务ID个数, 为0表示全部
  83390. UINT nTaskID[MAX_SECONDARY_ANALYSE_TASK_NUM];// 任务ID,0表示全部
  83391. } NET_IN_SECONDARY_ANALYSE_STARTTASK;
  83392. ///@brief 开始录像二次分析任务输出参数
  83393. typedef struct tagNET_OUT_SECONDARY_ANALYSE_STARTTASK
  83394. {
  83395. DWORD dwSize; // 赋值为结构体大小
  83396. } NET_OUT_SECONDARY_ANALYSE_STARTTASK;
  83397. ///@brief 暂停录像二次分析任务输入参数
  83398. typedef struct tagNET_IN_SECONDARY_ANALYSE_PAUSETASK
  83399. {
  83400. DWORD dwSize; // 赋值为结构体大小
  83401. UINT nTaskIdNum; // 任务数量
  83402. UINT nTaskID[MAX_SECONDARY_ANALYSE_TASK_NUM];// 任务ID
  83403. } NET_IN_SECONDARY_ANALYSE_PAUSETASK;
  83404. ///@brief 暂停录像二次分析任务输出参数
  83405. typedef struct tagNET_OUT_SECONDARY_ANALYSE_PAUSETASK
  83406. {
  83407. DWORD dwSize; // 赋值为结构体大小
  83408. } NET_OUT_SECONDARY_ANALYSE_PAUSETASK;
  83409. ///@brief 删除录像二次分析任务输入参数
  83410. typedef struct tagNET_IN_SECONDARY_ANALYSE_REMOVETASK
  83411. {
  83412. DWORD dwSize; // 赋值为结构体大小
  83413. UINT nTaskIdNum; // 任务数量, 0表示删除全部
  83414. UINT nTaskID[MAX_SECONDARY_ANALYSE_TASK_NUM];// 任务ID
  83415. } NET_IN_SECONDARY_ANALYSE_REMOVETASK;
  83416. ///@brief 删除录像二次分析任务输出参数
  83417. typedef struct tagNET_OUT_SECONDARY_ANALYSE_REMOVETASK
  83418. {
  83419. DWORD dwSize; // 赋值为结构体大小
  83420. } NET_OUT_SECONDARY_ANALYSE_REMOVETASK;
  83421. ///@brief 开始查询录像二次分析任务信息输入参数
  83422. typedef struct tagNET_IN_SECONDARY_ANALYSE_STARTFIND_TASK
  83423. {
  83424. DWORD dwSize; // 赋值为结构体大小
  83425. UINT nTaskNum; // 任务个数, 为0表示查找全部
  83426. UINT nTaskID[MAX_SECONDARY_ANALYSE_TASK_NUM];// 任务ID
  83427. } NET_IN_SECONDARY_ANALYSE_STARTFIND_TASK;
  83428. ///@brief 开始查询录像二次分析任务信息输出参数
  83429. typedef struct tagNET_OUT_SECONDARY_ANALYSE_STARTFIND_TASK
  83430. {
  83431. DWORD dwSize; // 赋值为结构体大小
  83432. UINT nTotalCount; // 符合条件的任务总数
  83433. } NET_OUT_SECONDARY_ANALYSE_STARTFIND_TASK;
  83434. ///@brief 录像二次分析任务状态信息
  83435. typedef struct tagNET_SECONDARY_ANALYSE_TASK_STATE_INFO
  83436. {
  83437. UINT nTaskID; // 任务ID
  83438. char szTaskName[DH_COMMON_STRING_256]; // 任务名称
  83439. char szRecordPath[DH_COMMON_STRING_256]; // 录像文件路径
  83440. BOOL bNeedSave; // 录像是否保存到设备端
  83441. char szLoaclPath[DH_COMMON_STRING_256]; // 将要保存在设备端的录像文件路径
  83442. EM_SECONDARY_ANALYSE_STATE emAnalyseState; // 当前任务状态
  83443. NET_TIME stuStartTime; // 任务开始时间
  83444. NET_TIME stuFinishTime; // 任务结束时间
  83445. UINT nProgress; // 当前分析进度
  83446. int nAnalyseCount; // 录像二次分析的规则个数
  83447. NET_ANALYSE_INFO stuAnalyseInfo[MAX_SECONDARY_ANALYSE_RULE_NUM]; // 录像二次分析的规则信息
  83448. BYTE byReserved[1024]; // 保留字节
  83449. } NET_SECONDARY_ANALYSE_TASK_STATE_INFO;
  83450. ///@brief 执行查询录像二次分析任务信息输入参数
  83451. typedef struct tagNET_IN_SECONDARY_ANALYSE_DOFIND_TASK
  83452. {
  83453. DWORD dwSize; // 赋值为结构体大小
  83454. UINT nBeginNumber; // 开始查询的起始编号
  83455. UINT nCount; // 本次要查询的任务条数
  83456. } NET_IN_SECONDARY_ANALYSE_DOFIND_TASK;
  83457. ///@brief 执行查询录像二次分析任务信息输出参数
  83458. typedef struct tagNET_OUT_SECONDARY_ANALYSE_DOFIND_TASK
  83459. {
  83460. DWORD dwSize; // 赋值为结构体大小
  83461. UINT nFoundCount; // 查询到的任务数量
  83462. NET_SECONDARY_ANALYSE_TASK_STATE_INFO stuAnalyseTaskInfo[MAX_SECONDARY_ANALYSE_TASK_NUM]; // 录像二次分析任务状态信息
  83463. } NET_OUT_SECONDARY_ANALYSE_DOFIND_TASK;
  83464. ///@brief 二次录像分析事件信息
  83465. typedef struct tagNET_SECONDARY_ANALYSE_EVENT_INFO
  83466. {
  83467. EM_ANALYSE_EVENT_TYPE emEventType; // 事件类型
  83468. BYTE byReserved1[4]; // 字节对齐
  83469. void *pstEventInfo; // 事件信息, 根据emEventType确定不同的结构体
  83470. BYTE byReserved[1024]; // 保留字节
  83471. } NET_SECONDARY_ANALYSE_EVENT_INFO;
  83472. ///@brief 二次录像分析实时结果订阅回调结果结构体
  83473. typedef struct tagNET_CB_ANALYSE_RESULT_INFO
  83474. {
  83475. UINT nTaskID; // 任务ID
  83476. NET_TIME stuPicTime; // 图片时间
  83477. int nRetEventCount; // 实际的事件个数
  83478. NET_SECONDARY_ANALYSE_EVENT_INFO stuEventInfo[MAX_SECONDARY_ANALYSE_EVENT_NUM];// 录像二次分析事件信息
  83479. LDWORD dwUser; // 用户数据
  83480. char szUserData[64]; // 视频源数据 标示视频源信息 对应addPollingTask中UserData字段。
  83481. BYTE byReserved[960]; // 保留字节
  83482. } NET_CB_ANALYSE_RESULT_INFO;
  83483. ///@brief 二次录像分析实时结果订阅函数原型
  83484. typedef int (CALLBACK *fAnalyseResultCallBack)(LLONG lAnalyseHandle, NET_CB_ANALYSE_RESULT_INFO *pstAnalyseResultInfo, BYTE *pBuffer, DWORD dwBufSize);
  83485. ///@brief 订阅二次录像分析实时结果输入参数
  83486. typedef struct tagNET_IN_ATTACH_SECONDARY_ANALYSE_RESULT
  83487. {
  83488. DWORD dwSize; // 赋值为结构体大小
  83489. int nTaskNum; // 需要订阅的任务个数, 0表示订阅全部
  83490. UINT nTaskID[MAX_SECONDARY_ANALYSE_TASK_NUM]; // 任务ID
  83491. int nEventCount; // 需要订阅的事件个数
  83492. EM_ANALYSE_EVENT_TYPE emEventType[MAX_SECONDARY_ANALYSE_TASK_NUM];// 需要订阅的事件
  83493. BOOL bNeedPicData; // 是否需要图片数据
  83494. fAnalyseResultCallBack cbAnalyseResult; // 二次录像分析实时结果订阅函数
  83495. LDWORD dwUser; // 用户数据
  83496. } NET_IN_ATTACH_SECONDARY_ANALYSE_RESULT;
  83497. ///@brief 订阅二次录像分析实时结果输出参数
  83498. typedef struct tagNET_OUT_ATTACH_SECONDARY_ANALYSE_RESULT
  83499. {
  83500. DWORD dwSize; // 赋值为结构体大小
  83501. } NET_OUT_ATTACH_SECONDARY_ANALYSE_RESULT;
  83502. ///@brief 订阅录像二次分析任务进度, pstInParam与pstOutParam内存由用户申请释放
  83503. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRecordSecondaryAnalyseTaskState(LLONG lLoginID, NET_IN_ATTACH_SECONDARY_ANALYSE_STATE *pstInParam, NET_OUT_ATTACH_SECONDARY_ANALYSE_STATE *pstOutParam, int nWaitTime);
  83504. ///@brief 取消订阅录像二次分析进度
  83505. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRecordSecondaryAnalyseState(LLONG lAnalyseHandle);
  83506. ///@brief 添加录像二次分析任务 pstInParam与pstOutParam内存由用户申请释放
  83507. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecordSecondaryAnalyseAddTask(LLONG lLoginID, NET_IN_SECONDARY_ANALYSE_ADDTASK *pstInParam, NET_OUT_SECONDARY_ANALYSE_ADDTASK *pstOutParam, int nWaitTime);
  83508. ///@brief 开始录像二次分析任务 pstInParam与pstOutParam内存由用户申请释放
  83509. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecordSecondaryAnalyseStartTask(LLONG lLoginID, NET_IN_SECONDARY_ANALYSE_STARTTASK *pstInParam, NET_OUT_SECONDARY_ANALYSE_STARTTASK *pstOutParam, int nWaitTime);
  83510. ///@brief 暂停录像二次分析任务 pstInParam与pstOutParam内存由用户申请释放
  83511. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecordSecondaryAnalysePauseTask(LLONG lLoginID, NET_IN_SECONDARY_ANALYSE_PAUSETASK *pstInParam, NET_OUT_SECONDARY_ANALYSE_PAUSETASK *pstOutParam, int nWaitTime);
  83512. ///@brief 删除录像二次分析任务 pstInParam与pstOutParam内存由用户申请释放
  83513. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecordSecondaryAnalyseRemoveTask(LLONG lLoginID, NET_IN_SECONDARY_ANALYSE_REMOVETASK *pstInParam, NET_OUT_SECONDARY_ANALYSE_REMOVETASK *pstOutParam, int nWaitTime);
  83514. ///@brief 开始查询录像二次分为任务信息 pstInParam与pstOutParam内存由用户申请释放
  83515. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RecordSecondaryAnalyseStartFindTask(LLONG lLoginID, NET_IN_SECONDARY_ANALYSE_STARTFIND_TASK *pstInParam, NET_OUT_SECONDARY_ANALYSE_STARTFIND_TASK *pstOutParam, int nWaitTime);
  83516. ///@brief 执行查询录像二次分为任务信息 pstInParam与pstOutParam内存由用户申请释放
  83517. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecordSecondaryAnalyseDoFindTask(LLONG lFindHandle, NET_IN_SECONDARY_ANALYSE_DOFIND_TASK *pstInParam, NET_OUT_SECONDARY_ANALYSE_DOFIND_TASK *pstOutParam, int nWaitTime);
  83518. ///@brief 停止查询录像二次分为任务信息
  83519. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecordSecondaryAnalyseStopFindTask(LLONG lFindHandle);
  83520. ///@brief 订阅录像二次分析实时结果 pstInParam与pstOutParam内存由用户申请释放
  83521. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRecordSecondaryAnalyseResult(LLONG lLoginID, NET_IN_ATTACH_SECONDARY_ANALYSE_RESULT *pstInParam, NET_OUT_ATTACH_SECONDARY_ANALYSE_RESULT *pstOutParam, int nWaitTime);
  83522. ///@brief 取消订阅录像二次分析实时结果
  83523. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRecordSecondaryAnalyseResult(LLONG lAttachHandle);
  83524. ///@brief 比对结果
  83525. typedef enum tagEM_COMPARE_RESULT
  83526. {
  83527. EM_COMPARE_RESULT_UNKNOWN=-1, // 未知
  83528. EM_COMPARE_RESULT_SUCCESS, // 成功
  83529. EM_COMPARE_RESULT_OTHERERROR, // 其他错误
  83530. EM_COMPARE_RESULT_NOTINDATABASE, // 不在目标库中
  83531. EM_COMPARE_RESULT_EXCEED_SINGLE_DAY_ENTER_TIMES, // 超过单日进门次数限制
  83532. EM_COMPARE_RESULT_NO_ENTER_RECORD_LEAVE_FAIL, // 无进门记录,离开失败
  83533. EM_COMPARE_RESULT_AREA_FULL, // 区域人员已满
  83534. EM_COMPARE_RESULT_REPEATENTER_CHECK_FAIL, // 防反潜验证失败(没有正常出门记录再次进门)
  83535. }EM_COMPARE_RESULT;
  83536. ///@brief 开门方式
  83537. typedef enum tagEM_FACE_OPEN_DOOR_TYPE
  83538. {
  83539. EM_FACE_OPEN_DOOR_TYPE_UNKNOWN = 0, // 未知
  83540. EM_FACE_OPEN_DOOR_TYPE_REMOTEFACE, // 远程目标识别
  83541. EM_FACE_OPEN_DOOR_TYPE_REMOTEQRCODE // 远程二维码
  83542. }EM_FACE_OPEN_DOOR_TYPE;
  83543. ///@brief 信息类型
  83544. typedef enum tagEM_EDUCATION_INFO_TYPE
  83545. {
  83546. EM_EDUCATION_INFO_TYPE_UNKNOWN, // 未知
  83547. EM_EDUCATION_INFO_TYPE_CHECK_IN, // 签到
  83548. EM_EDUCATION_INFO_TYPE_SIGN_BACK, // 签退
  83549. EM_EDUCATION_INFO_TYPE_ROLL_CALL, // 点名
  83550. EM_EDUCATION_INFO_TYPE_LEARNING_ABNORMAL, // 学习异常
  83551. EM_EDUCATION_INFO_TYPE_EXAMINATION, // 考试
  83552. EM_EDUCATION_INFO_TYPE_END_OF_STUDY, // 结束学习
  83553. EM_EDUCATION_INFO_TYPE_EXPERIENCE_LEARNING, // 体验学习
  83554. EM_EDUCATION_INFO_TYPE_NOT_LEARNING, // 未学习
  83555. EM_EDUCATION_INFO_TYPE_MIDWAY_IN, // 中途进入
  83556. EM_EDUCATION_INFO_TYPE_MIDWAY_LEAVE, // 中途离开
  83557. EM_EDUCATION_INFO_TYPE_CAMPUS_TIPS, // 校园提示信息
  83558. EM_EDUCATION_INFO_TYPE_PHOTO_REPEAT, // 照片重复,请重新采集
  83559. EM_EDUCATION_INFO_TYPE_LOW_FACE_QUALITY, // 目标质量低,请重新采集
  83560. EM_EDUCATION_INFO_TYPE_FACE_BRIGHTNESS_TOO_LOW, // 目标亮度过低,请重新采集
  83561. EM_EDUCATION_INFO_TYPE_FACE_BRIGHTNESS_TOO_HIGH, // 目标亮度过高:请重新采集
  83562. EM_EDUCATION_INFO_TYPE_FACE_BRIGHTNESS_UNEVEN, // 目标亮度不均匀,请重新采集
  83563. EM_EDUCATION_INFO_TYPE_PROVIDE_FRONT_FACE_PHOTO, // 请提供正脸照片
  83564. EM_EDUCATION_INFO_TYPE_UNCLEAR_FACE, // 目标不清晰,请重新采集
  83565. EM_EDUCATION_INFO_TYPE_EYE_BEEN_COVERED, // 眼部有遮挡,请重新采集
  83566. EM_EDUCATION_INFO_TYPE_FACE_TOO_SMALL, // 目标过小,请重新采集
  83567. EM_EDUCATION_INFO_TYPE_PROVIDE_COLOR_PHOTO, // 请提供彩色照片
  83568. EM_EDUCATION_INFO_TYPE_ABSENCE_OF_FACE, // 脸部缺失,请重新采集
  83569. EM_EDUCATION_INFO_TYPE_NOT_WEAR_MASK, // 禁止戴口罩,请重新采集
  83570. EM_EDUCATION_INFO_TYPE_PHOTO_TOO_BIG, // 上传照片过大,请重新采集
  83571. EM_EDUCATION_INFO_TYPE_PHOTO_TOO_SAMLL, // 上传照片过小,请重新采集
  83572. } EM_EDUCATION_INFO_TYPE;
  83573. ///@brief 语音类型
  83574. typedef enum tagEM_CUSTOM_EDUCATION_VOICE_TYPE
  83575. {
  83576. EM_CUSTOM_EDUCATION_VOICE_TYPE_UNKNOWN, // 未知
  83577. EM_CUSTOM_EDUCATION_VOICE_TYPE_LEAVE_SCHOOL_TIMEOUT, // 超时出校
  83578. EM_CUSTOM_EDUCATION_VOICE_TYPE_ENTER_SCHOOL_TIMEOUT, // 超时进校
  83579. EM_CUSTOM_EDUCATION_VOICE_TYPE_LEAVE_SCHOOL, // 出校
  83580. EM_CUSTOM_EDUCATION_VOICE_TYPE_CARD_NOT_BIND, // 此卡未绑定
  83581. EM_CUSTOM_EDUCATION_VOICE_TYPE_BOARDER, // 寄宿生
  83582. EM_CUSTOM_EDUCATION_VOICE_TYPE_PARENT_CARD_REPORT_LOST, // 家长卡已挂失
  83583. EM_CUSTOM_EDUCATION_VOICE_TYPE_ENTER_SCHOOL_OVERDUE, // 进校已过期
  83584. EM_CUSTOM_EDUCATION_VOICE_TYPE_PACKAGE_TO_PICKUP, // 您有包裹待领取
  83585. EM_CUSTOM_EDUCATION_VOICE_TYPE_ASKFORLEAVE, // 请假
  83586. EM_CUSTOM_EDUCATION_VOICE_TYPE_RETURN_SCHOOL_TIMEOUT_WHEN_ASKFORLEAVE, // 请假返校超时
  83587. EM_CUSTOM_EDUCATION_VOICE_TYPE_INANDOUT_SCHOOL_TIMENOTUP_WHEN_ASKFORLEAVE, // 请假进出校时间未到
  83588. EM_CUSTOM_EDUCATION_VOICE_TYPE_REFUSE_LEAVE_SCHOOL_WHEN_ASKFORLEAVE, // 请假拒绝出校
  83589. EM_CUSTOM_EDUCATION_VOICE_TYPE_REFUSE_ENTER_SCHOOL_WHEN_ASKFORLEAVE, // 请假拒绝进校
  83590. EM_CUSTOM_EDUCATION_VOICE_TYPE_ASKFORLEAVE_IN_REVIEW, // 请假审核中
  83591. EM_CUSTOM_EDUCATION_VOICE_TYPE_ASKFORLEAVE_EXPIRED, // 请假已过期
  83592. EM_CUSTOM_EDUCATION_VOICE_TYPE_ASKFORLEAVE_APPROVED, // 请假已批准
  83593. EM_CUSTOM_EDUCATION_VOICE_TYPE_FORBID_LEAVE_SCHOOL_WITH_LEAVE_INVALID, // 请假已失效禁止重复出校
  83594. EM_CUSTOM_EDUCATION_VOICE_TYPE_TIME_ISNOT_UP, // 时间未到
  83595. EM_CUSTOM_EDUCATION_VOICE_TYPE_NOT_APPOINT, // 未预约
  83596. EM_CUSTOM_EDUCATION_VOICE_TYPE_NO_PASSAGE_IN_NONPERMIT_TIMESECTION, // 未在允许时段内禁止通行
  83597. EM_CUSTOM_EDUCATION_VOICE_TYPE_INVALID_CARD, // 无效卡
  83598. EM_CUSTOM_EDUCATION_VOICE_TYPE_ALREADY_APPOINTED, // 已预约
  83599. EM_CUSTOM_EDUCATION_VOICE_TYPE_ALLOW_BACK_SCHOOL, // 允许返校
  83600. EM_CUSTOM_EDUCATION_VOICE_TYPE_GOODBYE, // 再见
  83601. EM_CUSTOM_EDUCATION_VOICE_TYPE_ENTER_SCHOOL_NORMALLY, // 正常进校
  83602. EM_CUSTOM_EDUCATION_VOICE_TYPE_REPEAT_LEAVE_SCHOOLL, // 重复出校
  83603. EM_CUSTOM_EDUCATION_VOICE_TYPE_REPEAT_ENTER_SCHOOLL, // 重复进校
  83604. EM_CUSTOM_EDUCATION_VOICE_TYPE_DAY_STUDENT, // 走读生
  83605. EM_CUSTOM_EDUCATION_VOICE_TYPE_WELCOME, // 欢迎光临
  83606. EM_CUSTOM_EDUCATION_VOICE_TYPE_FACULTY, // 教职工
  83607. EM_CUSTOM_EDUCATION_VOICE_TYPE_TEACHER, // 老师
  83608. EM_CUSTOM_EDUCATION_VOICE_TYPE_HELLO_TEACHER, // 老师好
  83609. EM_CUSTOM_EDUCATION_VOICE_TYPE_ALLOW_ACCESS = 33, // 允许访问
  83610. EM_CUSTOM_EDUCATION_VOICE_TYPE_TTS_TEXT_VOICE_OUTPUT = 50, // tts文字语音输出
  83611. }EM_CUSTOM_EDUCATION_VOICE_TYPE;
  83612. ///@brief 教育信息
  83613. typedef struct tagNET_CUSTOM_EDUCATION_INFO
  83614. {
  83615. EM_EDUCATION_INFO_TYPE emInfoType; // 信息类型
  83616. int nStudentSeatNumber; // 座位号,最小值为1
  83617. char szInfoContent[128]; // 消息内容
  83618. EM_CUSTOM_EDUCATION_VOICE_TYPE emVoiceType; // 语音类型
  83619. } NET_CUSTOM_EDUCATION_INFO;
  83620. ///@brief 经历信息
  83621. typedef struct tagNET_EPIDEMIC_AREA_EXPERIENCE
  83622. {
  83623. char szAddress[128]; // 地址
  83624. NET_TIME stuTime; // 时间
  83625. BYTE byReserved[256]; // 预留字段
  83626. }NET_EPIDEMIC_AREA_EXPERIENCE;
  83627. ///@brief 健康码状态
  83628. typedef enum tagEM_HEALTH_CODE_STATUS
  83629. {
  83630. EM_HEALTH_CODE_STATUS_UNKNOWN = 0, // 未知
  83631. EM_HEALTH_CODE_STATUS_RED, // 红码
  83632. EM_HEALTH_CODE_STATUS_GREEN, // 绿码
  83633. EM_HEALTH_CODE_STATUS_YELLOW, // 黄码
  83634. EM_HEALTH_CODE_STATUS_INVALID, // 无效
  83635. EM_HEALTH_CODE_STATUS_GREY, // 灰码
  83636. EM_HEALTH_CODE_STATUS_ORANGE, // 橙码
  83637. EM_HEALTH_CODE_STATUS_PURPLE, // 紫码
  83638. }EM_HEALTH_CODE_STATUS;
  83639. ///@brief 健康码信息
  83640. typedef struct tagNET_HEALTH_CODE_INFO
  83641. {
  83642. char szCitizenID[32]; // 证件号
  83643. char szCitizenName[128]; // 证件姓名
  83644. char szPermanentAddr[128]; // 常驻地
  83645. char szCurrentAddr[128]; // 当前地址
  83646. EM_HEALTH_CODE_STATUS emHealthCodeStatus; // 健康码状态
  83647. char szPhoneNumber[32]; // 手机号
  83648. char szAbnormalCodeReason[256]; // 异常原因
  83649. NET_TIME stuQueryTime; // 查询时间戳
  83650. int nEpidemicAreaExperience; // stuEpidemicAreaExperience 个数
  83651. NET_EPIDEMIC_AREA_EXPERIENCE stuEpidemicAreaExperience[10]; // 疫区经历
  83652. BYTE byReserved[512]; // 预留字段
  83653. }NET_HEALTH_CODE_INFO;
  83654. ///@brief 证件消息类型
  83655. typedef enum tagEM_IDCARD_MSG_TYPE
  83656. {
  83657. EM_IDCARD_MSG_TYP_UNKNOWN = 0, // 未知
  83658. EM_IDCARD_MSG_TYP_QUERY, // 证件查询信息
  83659. EM_IDCARD_MSG_TYPE_ISSUE_PERMISSION, // 证件权限下发
  83660. }EM_IDCARD_MSG_TYPE;
  83661. ///@brief 证件信息
  83662. typedef struct tagNET_IDCARD_INFO
  83663. {
  83664. EM_IDCARD_MSG_TYPE emIDCardMsgType; // 证件消息类型
  83665. // EM_IDCARD_MSG_TYP_QUERY:除 nEventGroupID 和 szRoomNo (在上一层)字段不用填,其余必填
  83666. // EM_IDCARD_MSG_TYPE_ISSUE_PERMISSION:nEventGroupID 、szRoomNo(在上一层)及 szCitizenName 字段必填,其余可为空
  83667. char szCitizenName[32]; // 姓名
  83668. EM_CITIZENIDCARD_SEX_TYPE emSexType; // 性别
  83669. int nMZ;
  83670. NET_TIME stuBirthday; // 生日(年月日有效)
  83671. char szAddress[128]; // 住址
  83672. char szCitizenID[32]; // 证件号
  83673. char szAuthority[48]; // 签发机关
  83674. NET_TIME stuBeginValidTime; // 有效期限起始日期(年月日有效)
  83675. NET_TIME stuEndValidTime; // 有效期限截止日期(年月日有效)
  83676. int nEventGroupID; // 事件组ID ,用于标示不同事件的对同一动作的关联
  83677. BYTE byReserved[1024]; // 预留字段
  83678. }NET_IDCARD_INFO;
  83679. ///@brief 酒精状态
  83680. typedef enum tagEM_ALCOHOL_STATE
  83681. {
  83682. EM_ALCOHOL_STATE_UNKNOWN, // 未知
  83683. EM_ALCOHOL_STATE_NORMAL, // 正常
  83684. EM_ALCOHOL_STATE_DRINK, // 饮酒
  83685. }EM_ALCOHOL_STATE;
  83686. ///@brief 车修理状态
  83687. typedef enum tagEM_BUS_REPAIR_STATE
  83688. {
  83689. EM_BUS_REPAIR_STATE_UNKNOWN, // 未知
  83690. EM_BUS_REPAIR_STATE_NOT_REPAIR, // 未修理
  83691. EM_BUS_REPAIR_STATE_REPAIRING, // 修理中
  83692. }EM_BUS_REPAIR_STATE;
  83693. ///@brief 车加油状态
  83694. typedef enum tagEM_BUS_OIL_STATE
  83695. {
  83696. EM_BUS_OIL_STATE_UNKNOWN, // 未知
  83697. EM_BUS_OIL_STATE_REFUELED, // 已加油
  83698. EM_BUS_OIL_STATE_NOT_REFUEL, // 未加油
  83699. }EM_BUS_OIL_STATE;
  83700. ///@brief 洗车状态
  83701. typedef enum tagEM_BUS_WASH_STATE
  83702. {
  83703. EM_BUS_WASH_STATE_UNKNOWN, // 未知
  83704. EM_BUS_WASH_STATE_WASHED, // 已洗车
  83705. EM_BUS_WASH_STATE_NOT_WASH, // 未洗车
  83706. }EM_BUS_WASH_STATE;
  83707. ///@brief 收银状态
  83708. typedef enum tagEM_BUS_CASH_STATE
  83709. {
  83710. EM_BUS_CASH_STATE_UNKNOWN, // 未知
  83711. EM_BUS_CASH_STATE_COLLECTED, // 已收银
  83712. EM_BUS_CASH_STATE_UNCOLLECT, // 未收银
  83713. }EM_BUS_CASH_STATE;
  83714. ///@brief 排班状态
  83715. typedef enum tagEM_SCHEDULE_STATE
  83716. {
  83717. EM_SCHEDULE_STATE_UNKNOWN, // 未知
  83718. EM_SCHEDULE_STATE_SCHEDULED, // 已排班
  83719. EM_SCHEDULE_STATE_NOT_SCHEDULE, // 未排班
  83720. }EM_SCHEDULE_STATE;
  83721. ///@brief 公交站信息(定制)
  83722. typedef struct tagNET_BUS_STATION_INFO
  83723. {
  83724. char szBusNo[64]; // 车号
  83725. char szParkPosition[64]; // 泊位
  83726. EM_ALCOHOL_STATE emAlcoholState; // 酒精状态
  83727. EM_BUS_REPAIR_STATE emRepairState; // 修理状态
  83728. EM_BUS_OIL_STATE emOilState; // 加油状态
  83729. EM_BUS_WASH_STATE emWashState; // 洗车状态
  83730. EM_BUS_CASH_STATE emCashState; // 收银状态
  83731. EM_SCHEDULE_STATE emScheduleState; // 排班状态
  83732. BYTE byReserved[1024]; // 预留字段
  83733. }NET_BUS_STATION_INFO;
  83734. ///@brief 工人信息(定制)
  83735. typedef struct tagNET_CUSTOM_WORKER_INFO
  83736. {
  83737. char szSex[8]; // 性别
  83738. char szRole[32]; // 角色
  83739. char szProjNo[32]; // 项目ID
  83740. char szProjName[64]; // 项目名称
  83741. char szBuilderName[64]; // 施工单位全称
  83742. char szBuilderID[32]; // 施工单位ID
  83743. char szBuilderType[32]; // 施工单位类型
  83744. char szBuliderTypeID[8]; // 施工单位类别ID
  83745. char szPictureID[64]; // 人员照片ID
  83746. char szContractID[16]; // 原合同系统合同编号
  83747. char szWorkerTypeID[8]; // 工种ID
  83748. char szWorkerTypeName[32]; // 工种名称
  83749. BOOL bPersonStatus; // 人员状态
  83750. BOOL bProjNameEx; // szProjNameEx 是否有效,为TRUE时,szProjNameEx 有效
  83751. char szProjNameEx[256]; // 项目名称扩展字段
  83752. BYTE bReserved[1388]; // 预留字节
  83753. }NET_CUSTOM_WORKER_INFO;
  83754. ///@brief 访客信息(定制)
  83755. typedef struct tagNET_CUSTOM_VISITOR_INFO
  83756. {
  83757. char szVisitorName[128]; // 访客姓名
  83758. char szVisitorTel[32]; // 访客电话
  83759. char szVisitorStartTime[32]; // 访问开始时间
  83760. char szVisitorEndTime[32]; // 访问结束时间
  83761. char szVisitorAccessFor[256]; // 访客事由
  83762. char szVisitorCitizenID[32]; // 访客证件号
  83763. char szRespondentName[128]; // 被访者姓名
  83764. char szRespondentTel[32]; // 被访者电话
  83765. char szRespondentCompany[128]; // 被访者单位
  83766. char szRespondentSection[64]; // 被访者部门
  83767. char szReserved[1024]; // 保留字节
  83768. }NET_CUSTOM_VISITOR_INFO;
  83769. ///@brief 语音类型
  83770. typedef enum tagEM_CUSTOM_MEDICAL_VOICE_TYPE
  83771. {
  83772. EM_CUSTOM_MEDICAL_VOICE_TYPE_UNKNOWN, // 未知
  83773. EM_CUSTOM_MEDICAL_VOICE_TYPE_1, // 门已打开,可以进入
  83774. EM_CUSTOM_MEDICAL_VOICE_TYPE_2, // 不是本科室,不能进入
  83775. EM_CUSTOM_MEDICAL_VOICE_TYPE_3, // 已出院,不能进入
  83776. EM_CUSTOM_MEDICAL_VOICE_TYPE_4, // 核酸检测超期,不能进入
  83777. EM_CUSTOM_MEDICAL_VOICE_TYPE_5, // 体温不正常,不能进入
  83778. EM_CUSTOM_MEDICAL_VOICE_TYPE_6, // 证件信息缺失,不能进入
  83779. EM_CUSTOM_MEDICAL_VOICE_TYPE_7, // 其他问题,不能进入
  83780. }EM_CUSTOM_MEDICAL_VOICE_TYPE;
  83781. ///@brief 匹配信息扩展字段
  83782. typedef struct tagNET_OPENDOOR_MATCHINFO_EX
  83783. {
  83784. char szUserNameEx[128]; // 扩展用户名
  83785. EM_CUSTOM_MEDICAL_VOICE_TYPE emVoiceType; // 语音类型 (医疗定制使用)
  83786. NET_ANTIGEN_INFO stuAntigenInfo; // 抗原检测信息
  83787. char szVoiceTTSMessage[128]; // tts语音输出
  83788. UINT nCheckLocal; // 鉴权方式,1:设备端鉴权, 在emCompareResult为0后端鉴权成功的情况下,设备还需要二次验证, 2:后端鉴权,根据emCompareResult进行开门与否的判定条件, 255:默认鉴权,兼容历史设备
  83789. BYTE bReserved[1616]; // 预留字节
  83790. }NET_OPENDOOR_MATCHINFO_EX;
  83791. ///@brief 匹配信息
  83792. typedef struct tagNET_OPENDOOR_MATCHINFO
  83793. {
  83794. char szUserID[32]; // 远程用户ID
  83795. char szUserName[32]; // 用户名
  83796. EM_USER_TYPE emUserType; // 用户类型
  83797. char szName[64]; // 门禁名称
  83798. UINT nMatchRate; // 匹配度,范围为0-100
  83799. EM_FACE_OPEN_DOOR_TYPE emOpenDoorType; // 开门方式
  83800. NET_TIME stuActivationTime; // (卡、头像)生效日期
  83801. NET_TIME stuExpiryTime; // (卡、头像)截止日期
  83802. int nScore; // 信用积分
  83803. char szCompanyName[MAX_COMPANY_NAME_LEN]; // 单位名称
  83804. char szCompanionName[120]; // 陪同人员姓名
  83805. char szCompanionCompany[MAX_COMPANY_NAME_LEN]; // 陪同人员单位名称
  83806. char szPermissibleArea[MAX_COMMON_STRING_128]; // 准许通行区域
  83807. char szSection[200]; // 部门名称
  83808. NET_CUSTOM_EDUCATION_INFO* pstuCustomEducationInfo; // 教育信息
  83809. NET_HEALTH_CODE_INFO* pstuHealthCodeInfo; // 健康码信息
  83810. char szRoomNo[32]; // 房间号
  83811. NET_IDCARD_INFO* pstuIDCardInfo; // 证件信息
  83812. NET_BUS_STATION_INFO* pstuBusStationInfo; // 公交站信息
  83813. NET_CUSTOM_WORKER_INFO* pstuCustomWorkerInfo; // 工地工人信息
  83814. BOOL bUseMatchInfoEx; // 是否使用匹配信息扩展字段
  83815. NET_OPENDOOR_MATCHINFO_EX* pstuMatchInfoEx; // 匹配信息扩展字段
  83816. NET_HSJC_INFO* pstuHSJCInfo; // 核酸检测信息
  83817. NET_VACCINE_INFO* pstuVaccineInfo; // 接种信息
  83818. NET_TRAVEL_INFO* pstuTravelInfo; // 行程码信息
  83819. NET_CUSTOM_VISITOR_INFO* pstuCustomVisitorInfo; // 访客信息
  83820. BYTE byReserved[8]; // 预留字段
  83821. }NET_OPENDOOR_MATCHINFO;
  83822. ///@brief 图片信息
  83823. typedef struct tagNET_OPENDOOR_IMAGEINFO
  83824. {
  83825. int nLibImageLen; // 目标库照片长度,限制为150k
  83826. int nSnapImageLen; // 抓拍照片长度,限制为150k
  83827. char* pLibImage; // 目标库照片,内存由用户申请
  83828. char* pSnapImage; // 抓拍照片,内存由用户申请
  83829. BYTE byReserved[1024]; // 预留字段
  83830. }NET_OPENDOOR_IMAGEINFO;
  83831. ///@brief 目标识别开门输入参数
  83832. typedef struct tagNET_IN_FACE_OPEN_DOOR
  83833. {
  83834. DWORD dwSize;
  83835. UINT nChannel; // 门通道号
  83836. EM_COMPARE_RESULT emCompareResult; // 比对结果
  83837. NET_OPENDOOR_MATCHINFO stuMatchInfo; // 匹配信息
  83838. NET_OPENDOOR_IMAGEINFO stuImageInfo; // 图片信息
  83839. }NET_IN_FACE_OPEN_DOOR;
  83840. ///@brief 目标识别开门输出参数
  83841. typedef struct tagNET_OUT_FACE_OPEN_DOOR
  83842. {
  83843. DWORD dwSize;
  83844. }NET_OUT_FACE_OPEN_DOOR;
  83845. ///@brief 远程认证开门(闸机)
  83846. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceOpenDoor(LLONG lLoginID, NET_IN_FACE_OPEN_DOOR* pInParam, NET_OUT_FACE_OPEN_DOOR* pOutParam,int nWaitTime);
  83847. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  83848. ///@brief 分区状态
  83849. typedef enum tagEM_LOGIC_VOLUME_STATUS
  83850. {
  83851. EM_LOGIC_VOLUME_STATUS_UNKNOWN = -1, // 未知
  83852. EM_LOGIC_VOLUME_STATUS_NOT_NEED_REPAIR, // 没有分区需要修复
  83853. EM_LOGIC_VOLUME_STATUS_LV_NEED_REPAIR, // 有分区需要修复
  83854. EM_LOGIC_VOLUME_STATUS_LV_REPAIRING, // 分区正在修复
  83855. EM_LOGIC_VOLUME_STATUS_LV_REPAIR_COMPLETE, // 分区已经修复完成
  83856. }EM_LOGIC_VOLUME_STATUS;
  83857. ///@brief CLIENT_NASGetLogicVolumeStatus接口入参
  83858. typedef struct tagNET_IN_NAS_GETLOGICVOLUMESTATUS
  83859. {
  83860. DWORD dwSize; // 结构体大小
  83861. }NET_IN_NAS_GETLOGICVOLUMESTATUS;
  83862. ///@brief CLIENT_NASGetLogicVolumeStatus接口出参
  83863. typedef struct tagNET_OUT_NAS_GETLOGICVOLUMESTATUS
  83864. {
  83865. DWORD dwSize; // 结构体大小
  83866. EM_LOGIC_VOLUME_STATUS emLVStatus; // 分区状态
  83867. char szLvName[MAX_LV_NAME_NUM][MAX_LV_NAME_LEN]; // 分区名称,当emLVStatus为EM_LOGIC_VOLUME_STATUS_LV_NEED_REPAIR或EM_LOGIC_VOLUME_STATUS_LV_REPAIRING时有效
  83868. int nRetLvNameNum; // 返回的分区名称个数
  83869. }NET_OUT_NAS_GETLOGICVOLUMESTATUS;
  83870. ///@brief 获取分区状态
  83871. CLIENT_NET_API BOOL CALL_METHOD CLIENT_NASGetLogicVolumeStatus(LLONG lLoginID, const NET_IN_NAS_GETLOGICVOLUMESTATUS *pInParam, NET_OUT_NAS_GETLOGICVOLUMESTATUS *pOutParam, int nWaitTime);
  83872. ///@brief 分区修复状态
  83873. typedef enum tagEM_LOGIC_VOLUME_REPAIR_STATUS
  83874. {
  83875. EM_LOGIC_VOLUME_REPAIR_STATUS_UNKNOWN = -1, // 未知
  83876. EM_LOGIC_VOLUME_REPAIR_STATUS_FAILED, // 修复失败
  83877. EM_LOGIC_VOLUME_REPAIR_STATUS_SUCCESS, // 修复成功
  83878. }EM_LOGIC_VOLUME_REPAIR_STATUS;
  83879. ///@brief 分区信息
  83880. typedef struct tagNET_LV_STATE
  83881. {
  83882. EM_LOGIC_VOLUME_REPAIR_STATUS emLVRepairStatus; // 修复状态
  83883. char szLvName[MAX_LV_NAME_NUM][MAX_LV_NAME_LEN]; // 分区名称
  83884. int nRetLvNameNum; // 返回的分区名称个数
  83885. BYTE byReserved[1024]; // 保留
  83886. }NET_LV_STATE;
  83887. ///@brief 分区修复状态回调函数原形,lAttachHandle 是 CLIENT_AttachNASRepairState 返回值
  83888. typedef void (CALLBACK *fLVRepairStateCallBack) (LLONG lAttachHandle, NET_LV_STATE* pBuf, DWORD dwBufLen, LDWORD dwUser);
  83889. ///@brief CLIENT_AttachNASRepairState接口入参
  83890. typedef struct tagNET_IN_ATTACH_NAS_REPAIRSTATE
  83891. {
  83892. DWORD dwSize; // 结构体大小
  83893. fLVRepairStateCallBack cbLVRepairState; // 分区修复状态回调
  83894. BYTE byReserved[4]; // 预留对齐字节
  83895. LDWORD dwUser; // 用户数据
  83896. }NET_IN_ATTACH_NAS_REPAIRSTATE;
  83897. ///@brief CLIENT_AttachNASRepairState接口出参
  83898. typedef struct tagNET_OUT_ATTACH_NAS_REPAIRSTATE
  83899. {
  83900. DWORD dwSize; // 结构体大小
  83901. }NET_OUT_ATTACH_NAS_REPAIRSTATE;
  83902. ///@brief 订阅分区修复状态
  83903. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachNASRepairState(LLONG lLoginID, const NET_IN_ATTACH_NAS_REPAIRSTATE* pInParam, NET_OUT_ATTACH_NAS_REPAIRSTATE* pOutParam, int nWaitTime);
  83904. ///@brief 取消订阅分区修复状态
  83905. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachNASRepairState(LLONG lAttachHandle);
  83906. ///@brief 文件查询结果
  83907. typedef struct tagNET_FILE_FINEDER
  83908. {
  83909. unsigned int nRetFileListsCount; // 实际返回的文件名条数
  83910. char szFileLists[MAX_FILE_LIST_NUM][MAX_FILE_LIST_LEN]; // 查找结果文件名列表
  83911. BOOL bFindFinished; // 是否查找完成,TRUE表示查找完成,FALSE表示正在查找
  83912. BYTE byReserved[1024]; // 保留字节
  83913. }NET_FILE_FINEDER;
  83914. ///@brief 异步查找文件回调函数原形,lAttachHandle 是 CLIENT_AttachNASFileFinder 返回值
  83915. typedef void (CALLBACK *fNasFileFinderCallback) (LLONG lAttachHandle, NET_FILE_FINEDER* pBuf, DWORD dwBufLen, LDWORD dwUser);
  83916. ///@brief CLIENT_AttachNASFileFinder接口入参
  83917. typedef struct tagNET_IN_ATTACHNASFILEFINDER
  83918. {
  83919. DWORD dwSize; // 结构体大小
  83920. int nFindPathsNum; // 请求的查找路径个数
  83921. char szFindPaths[MAX_FILE_FINDER_PATH_NUM][MAX_FILE_FINDER_PATH_LEN]; // 查找路径名列表
  83922. char szKey[MAX_KEY_LEN]; // 查找的关键字
  83923. unsigned int nOffset; // 查找偏移量
  83924. unsigned int nCount; // 查找数量
  83925. fNasFileFinderCallback cbNasFileFinder; // 查找文件结果回调
  83926. LDWORD dwUser; // 用户数据
  83927. }NET_IN_ATTACHNASFILEFINDER;
  83928. ///@brief CLIENT_AttachNASFileFinder接口出参
  83929. typedef struct tagNET_OUT_ATTACHNASFILEFINDER
  83930. {
  83931. DWORD dwSize; // 结构体大小
  83932. }NET_OUT_ATTACHNASFILEFINDER;
  83933. ///@brief 异步查找文件
  83934. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachNASFileFinder(LLONG lLoginID, const NET_IN_ATTACHNASFILEFINDER* pInParam, NET_OUT_ATTACHNASFILEFINDER* pOutParam, int nWaitTime);
  83935. ///@brief 取消异步查找文件
  83936. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachNASFileFinder(LLONG lAttachHandle);
  83937. ///@brief 回放回调码流类型
  83938. typedef enum tagEM_PLAYBACK_STREAM_TYPE
  83939. {
  83940. EM_PLAYBACK_STREAM_TYPE_UNKNOWN = -1, // 未知
  83941. EM_PLAYBACK_STREAM_TYPE_ORIGINAL_STREAM, // 只回调原始码流
  83942. EM_PLAYBACK_STREAM_TYPE_MAX, // 最大值
  83943. }EM_PLAYBACK_STREAM_TYPE;
  83944. ///@brief 设置回放回调码流类型
  83945. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPlayBackStreamType(LLONG lLoginID, EM_PLAYBACK_STREAM_TYPE emStreamType);
  83946. ///@brief CLIENT_GetFingerprintCaps接口入参
  83947. typedef struct tagNET_IN_GET_FINGERPRINTCAPS
  83948. {
  83949. DWORD dwSize; // 结构体大小
  83950. }NET_IN_GET_FINGERPRINTCAPS;
  83951. ///@brief CLIENT_GetFingerprintCaps接口出参
  83952. typedef struct tagNET_OUT_GET_FINGERPRINTCAPS
  83953. {
  83954. DWORD dwSize; // 结构体大小
  83955. BOOL bSupportFingerprint; // 是否支持信息, TRUE:支持; FALSE:不支持
  83956. }NET_OUT_GET_FINGERPRINTCAPS;
  83957. ///@brief 获取信息能力
  83958. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFingerprintCaps(LLONG lLoginID, NET_IN_GET_FINGERPRINTCAPS* pInParam, NET_OUT_GET_FINGERPRINTCAPS* pOutParam, int nWaitTime);
  83959. ///@brief 设备程序所在的市场区域
  83960. typedef enum tagEM_DEVICE_MARKET_AREA
  83961. {
  83962. EM_DEVICE_MARKET_AREA_UNKNOWN, // 未知
  83963. EM_DEVICE_MARKET_AREA_MAINLAND, // 国内
  83964. EM_DEVICE_MARKET_AREA_OVERSEA, // 海外
  83965. }EM_DEVICE_MARKET_AREA;
  83966. ///@brief CLIENT_GetMarketArea接口入参
  83967. typedef struct tagNET_IN_GET_MARKET_AREA
  83968. {
  83969. DWORD dwSize; // 结构体大小
  83970. }NET_IN_GET_MARKET_AREA;
  83971. ///@brief CLIENT_GetMarketArea接口出参
  83972. typedef struct tagNET_OUT_GET_MARKET_AREA
  83973. {
  83974. DWORD dwSize; // 结构体大小
  83975. EM_DEVICE_MARKET_AREA emMarketArea; // 市场区域
  83976. }NET_OUT_GET_MARKET_AREA;
  83977. ///@brief 得到市场区域
  83978. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMarketArea(LLONG lLoginID, const NET_IN_GET_MARKET_AREA* pInParam, NET_OUT_GET_MARKET_AREA* pOutParam, int nWaitTime);
  83979. /////////////////////////////雷球联动接口 start//////////////////////////////
  83980. ///@brief 雷达开始升级通知入参(对应 EM_RADAR_OPERATE_TYPE_STARTUPGRADE)
  83981. typedef struct tagNET_IN_RADAR_STARTUPGRADE
  83982. {
  83983. DWORD dwSize; // 结构体大小
  83984. }NET_IN_RADAR_STARTUPGRADE;
  83985. ///@brief 雷达开始升级通知出参(对应 EM_RADAR_OPERATE_TYPE_STARTUPGRADE)
  83986. typedef struct tagNET_OUT_RADAR_STARTUPGRADE
  83987. {
  83988. DWORD dwSize; // 结构体大小
  83989. }NET_OUT_RADAR_STARTUPGRADE;
  83990. ///@brief 获取雷达能力入参(对应 EM_RADAR_OPERATE_TYPE_GETCAPS)
  83991. typedef struct tagNET_IN_RADAR_GETCAPS
  83992. {
  83993. DWORD dwSize; // 结构体大小
  83994. int nChannel; // 通道号
  83995. char szRadarIP[32]; // 雷达ip
  83996. }NET_IN_RADAR_GETCAPS;
  83997. ///@brief 雷达功率配置能力
  83998. typedef struct tagNET_RADAR_CAPACITY_CAP
  83999. {
  84000. BOOL bSupport; // 是否支持该能力
  84001. int nListNum; // 探测距离列表的有效数据个数
  84002. int nDistanceList[24]; // 配置时可选的探测距离列表
  84003. BYTE byReserved[224]; // 预留
  84004. }NET_RADAR_CAPACITY_CAP;
  84005. ///@brief 雷达场景配置能力
  84006. typedef struct tagNET_RADAR_SCENE_CAP
  84007. {
  84008. BOOL bSupport; // 是否支持该能力
  84009. BYTE byReserved[252]; // 预留
  84010. }NET_RADAR_SCENE_CAP;
  84011. ///@brief 雷达信道配置能力
  84012. typedef struct tagNET_RADAR_CHANNEL_CAP
  84013. {
  84014. BOOL bSupport; // 是否支持该能力
  84015. int nListNum; // 信道号列表的有效数据个数
  84016. int nChannelList[24]; // 配置时可选的信道号列表
  84017. BYTE byReserved[224]; // 预留
  84018. }NET_RADAR_CHANNEL_CAP;
  84019. ///@brief 雷达场景变更能力
  84020. typedef struct tagNET_RADAR_MOVEDDETECT_CAP
  84021. {
  84022. BOOL bSupport; // 是否支持该能力
  84023. BYTE byReserved[252]; // 预留
  84024. }NET_RADAR_MOVEDDETECT_CAP;
  84025. ///@brief 雷达控制盒支持的协议能力信息
  84026. typedef struct tagNET_RADAR_PROTOCAL_CAP
  84027. {
  84028. BOOL bSupport; // 是否支持切换协议能力
  84029. UINT nProtocalNum; // 支持的协议类型个数, 即szPtotoList 数组的有效元素个数
  84030. char szPtotoList[10][32]; // 雷达控制盒支持的协议列表
  84031. int nLongitude; // 经度,用整型传输,放大1000000倍,小数点后6位有效,不足6位用0补齐,例如120125400代表120.1254
  84032. int nLatitude; // 纬度,用整型传输,放大1000000倍,小数点后6位有效,不足6位用0补齐,例如120125400代表120.1254
  84033. int nAngle; // 雷达地图朝向角,放大100倍,例如112897,实际是128.97度
  84034. BYTE byReserved[1020]; // 预留字节
  84035. } NET_RADAR_PROTOCAL_CAP;
  84036. ///@brief 设备程序所在的雷达区域
  84037. typedef enum tagEM_RADAR_GETCAPS_AREASUB_TYPE
  84038. {
  84039. EM_RADAR_GETCAPS_AREASUB_TYPE_UNKNOWN, // 未知
  84040. EM_RADAR_GETCAPS_AREASUB_TYPE_SECTOR, // 扇形
  84041. EM_RADAR_GETCAPS_AREASUB_TYPE_ELLIPSE, // 椭圆
  84042. }EM_RADAR_GETCAPS_AREASUB_TYPE;
  84043. ///@brief 雷达类型
  84044. typedef enum tagEM_RADAR_GETCAPS_RADAR_TYPE
  84045. {
  84046. EM_RADAR_GETCAPS_RADAR_TYPE_UNKNOWN, // 未知
  84047. EM_RADAR_GETCAPS_RADAR_TYPE1, // 单IP雷达
  84048. EM_RADAR_GETCAPS_RADAR_TYPE2, // 雷达控制盒
  84049. EM_RADAR_GETCAPS_RADAR_TYPE3, // 端站一体机
  84050. EM_RADAR_GETCAPS_RADAR_TYPE4, // 室内雷达
  84051. EM_RADAR_GETCAPS_RADAR_TYPE5, // 体征雷达
  84052. }EM_RADAR_GETCAPS_RADAR_TYPE;
  84053. ///@brief 获取雷达能力出参(对应 EM_RADAR_OPERATE_TYPE_GETCAPS)
  84054. typedef struct tagNET_OUT_RADAR_GETCAPS
  84055. {
  84056. DWORD dwSize; // 结构体大小
  84057. int nDetectionRange; // 雷达探测距离,实际距离扩大100倍,单位米
  84058. int nDetectionAngle; // 雷达探测角度,实际角度扩大100倍,单位度
  84059. int nDetectionHuman; // 雷达人探测距离,实际距离扩大100倍,单位米
  84060. BOOL bExValid; // 下列扩展能力是否有效(老设备不支持获取下列能力,从而无法用于判断是否支持下列能力)
  84061. NET_RADAR_CAPACITY_CAP stuCapacityCap; // 雷达功率配置能力
  84062. NET_RADAR_SCENE_CAP stuSceneCap; // 雷达场景配置能力
  84063. NET_RADAR_CHANNEL_CAP stuChannelCap; // 雷达信道配置能力
  84064. NET_RADAR_MOVEDDETECT_CAP stuMovedDetectCap; // 雷达场景变更能力
  84065. NET_RADAR_PROTOCAL_CAP stuProtocalCap; // 雷达控制盒支持的协议能力
  84066. EM_RADAR_GETCAPS_AREASUB_TYPE emAreaSubType; // 雷达探测范围形状
  84067. EM_RADAR_GETCAPS_RADAR_TYPE emRadarType; // 雷达类型
  84068. }NET_OUT_RADAR_GETCAPS;
  84069. ///@brief 获取雷达状态入参(对应 EM_RADAR_OPERATE_TYPE_GETSTATUS)
  84070. typedef struct tagNET_IN_RADAR_GETSTATUS
  84071. {
  84072. DWORD dwSize; // 结构体大小
  84073. int nChannel; // 通道号
  84074. }NET_IN_RADAR_GETSTATUS;
  84075. ///@brief 雷达状态
  84076. typedef enum tagEM_RADAR_STATUS
  84077. {
  84078. EM_RADAR_STATUS_UNKNOWN, // 未知
  84079. EM_RADAR_STATUS_NORMAL, // 正常
  84080. EM_RADAR_STATUS_ABNORMAL, // 异常
  84081. }EM_RADAR_STATUS;
  84082. ///@brief 获取雷达状态出参(对应 EM_RADAR_OPERATE_TYPE_GETSTATUS)
  84083. typedef struct tagNET_OUT_RADAR_GETSTATUS
  84084. {
  84085. DWORD dwSize; // 结构体大小
  84086. EM_RADAR_STATUS emRadarStatus; // 雷达状态
  84087. }NET_OUT_RADAR_GETSTATUS;
  84088. ///@brief 图片中线段的像素坐标
  84089. typedef struct tagNET_RADAR_PIXELLINE
  84090. {
  84091. int nLeftX; // 左顶点的X坐标
  84092. int nLeftY; // 左顶点的Y坐标
  84093. int nRightX; // 右顶点的X坐标
  84094. int nRightY; // 右顶点的Y坐标
  84095. BYTE byReserved[64]; // 保留字节
  84096. }NET_RADAR_PIXELLINE;
  84097. ///@brief 计算图片对应的地图实际长度入参(对应 EM_RADAR_OPERATE_TYPE_CALCULATEREALSIZE)
  84098. typedef struct tagNET_IN_RADAR_CALCULATEREALSIZE
  84099. {
  84100. DWORD dwSize; // 结构体大小
  84101. int nChannel; // 通道号
  84102. NET_RADAR_PIXELLINE stuPixelLine; // 图片中线段的像素坐标
  84103. double dDistance; // 图片中线段代表的实际长度,单位米
  84104. }NET_IN_RADAR_CALCULATEREALSIZE;
  84105. ///@brief 计算图片对应的地图实际长度出参(对应 EM_RADAR_OPERATE_TYPE_CALCULATEREALSIZE)
  84106. typedef struct tagNET_OUT_RADAR_CALCULATEREALSIZE
  84107. {
  84108. DWORD dwSize; // 结构体大小
  84109. int nRealMapLength; // 实际地图的高度,单位米(实际长度扩大100倍表示)
  84110. int nRealMapWidth; // 实际地图的宽度,单位米(实际宽度扩大100倍表示)
  84111. }NET_OUT_RADAR_CALCULATEREALSIZE;
  84112. ///@brief 图片中校准点的像素坐标
  84113. typedef struct tagNET_RADAR_PIXELPOINT
  84114. {
  84115. int nPixelPointX; // X像素坐标区间[0,8191]
  84116. int nPixelPointY; // Y像素坐标区间[0,8191]
  84117. }NET_RADAR_PIXELPOINT;
  84118. ///@brief 雷球校准配置入参(对应 EM_RADAR_OPERATE_TYPE_SETCALIBRATION)
  84119. typedef struct tagNET_IN_RADAR_SETCALIBRATION
  84120. {
  84121. DWORD dwSize; // 结构体大小
  84122. BYTE byReserved[4]; // 保留字节
  84123. NET_RADAR_PIXELPOINT stuPixelPoint; // 图片中校准点的像素坐标
  84124. double dInstallHeigt; // 球机的安装高度,单位米
  84125. }NET_IN_RADAR_SETCALIBRATION;
  84126. ///@brief 雷球校准配置出参(对应 EM_RADAR_OPERATE_TYPE_SETCALIBRATION)
  84127. typedef struct tagNET_OUT_RADAR_SETCALIBRATION
  84128. {
  84129. DWORD dwSize; // 结构体大小
  84130. }NET_OUT_RADAR_SETCALIBRATION;
  84131. ///@brief 雷达操作类型
  84132. typedef enum tagEM_RADAR_OPERATE_TYPE
  84133. {
  84134. EM_RADAR_OPERATE_TYPE_STARTUPGRADE = 0, // 雷达开始升级通知,入参:NET_IN_RADAR_STARTUPGRADE,出参:NET_OUT_RADAR_STARTUPGRADE
  84135. EM_RADAR_OPERATE_TYPE_GETCAPS = 1, // 获取雷达能力,入参:NET_IN_RADAR_GETCAPS,出参:NET_OUT_RADAR_GETCAPS
  84136. EM_RADAR_OPERATE_TYPE_GETSTATUS = 2, // 获取雷达状态,入参:NET_IN_RADAR_GETSTATUS,出参:NET_OUT_RADAR_GETSTATUS
  84137. EM_RADAR_OPERATE_TYPE_CALCULATEREALSIZE = 3, // 计算图片对应的地图实际长度,入参:NET_IN_RADAR_CALCULATEREALSIZE,出参:NET_OUT_RADAR_CALCULATEREALSIZE
  84138. EM_RADAR_OPERATE_TYPE_SETCALIBRATION = 4, // 雷球校准配置下发,入参:NET_IN_RADAR_SETCALIBRATION,出参:NET_OUT_RADAR_SETCALIBRATION
  84139. }EM_RADAR_OPERATE_TYPE;
  84140. ///@brief 雷达操作
  84141. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RadarOperate(LLONG lLoginID, EM_RADAR_OPERATE_TYPE emType, void* pInBuf, void* pOutBuf, int nWaitTime);
  84142. #define NET_RADAR_MAX_NUM_ALARMPOINT 64 // 雷达报警点的最大数量
  84143. ///@brief 点类型的掩码
  84144. typedef enum tagEM_RADAR_POINTTYPE
  84145. {
  84146. EM_RADAR_POINTTYPE_UNKNOWN, // 未知
  84147. EM_RADAR_POINTTYPE_ALARMPOINT, // 当前点是报警区的报警点
  84148. EM_RADAR_POINTTYPE_LINKMONITORPOINT, // 当前点是正在被联动监控的点
  84149. EM_RADAR_POINTTYPE_DISAPPEARTRACKPOINT, // 当前点是消失的轨迹点
  84150. }EM_RADAR_POINTTYPE;
  84151. ///@brief 点所指对象的类型的掩码
  84152. typedef enum tagEM_RADAR_OBJECTTYPE
  84153. {
  84154. EM_RADAR_OBJECTTYPE_UNKNOWN, // 未识别目标
  84155. EM_RADAR_OBJECTTYPE_PERSON, // 目标为人
  84156. EM_RADAR_OBJECTTYPE_VEHICLE, // 目标为交通工具
  84157. EM_RADAR_OBJECTTYPE_TREE, // 目标为树
  84158. EM_RADAR_OBJECTTYPE_BUILIDING, // 目标为建筑物
  84159. EM_RADAR_OBJECTTYPE_SCREEN, // 目标为屏幕
  84160. EM_RADAR_OBJECTTYPE_ANIMAL, // 目标为动物
  84161. EM_RADAR_OBJECTTYPE_BIG_SHIP, // 目标为大船
  84162. EM_RADAR_OBJECTTYPE_MID_SHIP, // 目标为中船
  84163. EM_RADAR_OBJECTTYPE_SMALL_SHIP, // 目标为小船
  84164. EM_RADAR_OBJECTTYPE_STATIONARY_TARGET_TYPE, // 目标为静止目标类型
  84165. }EM_RADAR_OBJECTTYPE;
  84166. ///@brief 单个雷达报警点信息
  84167. typedef struct tagNET_RADAR_ALARMPOINT_INFO
  84168. {
  84169. EM_RADAR_POINTTYPE emPointType; // 点类型的掩码,该字段废弃,请不要使用,请使用nPointType
  84170. int nPointType; // 点类型的掩码
  84171. //bit0:无效
  84172. //bit1:当前点是消失的轨迹点
  84173. //bit2:当前点是正在被联动监控的点
  84174. //bit3:当前点是报警区的报警点
  84175. //备注:点的状态可能有多个,例如值为0xC时,表示当前的点既是正在被联动监控的点,又是报警区的报警点
  84176. int nRegionNumber; // 当前点所属的防区编号,范围[0,10]([1,10]为防区编号,0表示当前点不属于任何一个防区)
  84177. EM_RADAR_OBJECTTYPE emObjectType; // 点所指对象的类型的掩码
  84178. int nTrackID; // 点所属的轨迹号,范围[0,63]
  84179. int nDistance; // 当前点像素极坐标值-距离,实际长度扩大100倍的结果,单位米
  84180. int nAngle; // 当前点像素极坐标值-角度,实际角度扩大100倍的结果,单位度
  84181. int nSpeed; // 当前点速度,扩大100倍的结果,单位米/秒
  84182. int nLongitude; // 经度, 用整型传输, 放大1000000倍, 小数点后6位有效, 不足6位用0补齐, 例如120125400代表120.1254
  84183. int nLatitude; // 纬度, 用整型传输, 放大1000000倍, 小数点后6位有效, 不足6位用0补齐, 例如120125400代表120.1254
  84184. char szTrackerIP[16]; // 正在跟踪目标的球机的IP地址
  84185. BYTE byReserved[488]; // 保留字节
  84186. }NET_RADAR_ALARMPOINT_INFO;
  84187. ///@brief 雷达规则信息
  84188. typedef struct tagNET_RADAR_RULE_INFO
  84189. {
  84190. int nRuleID; // 规则编号
  84191. int nPointNumber; // 规则内轨迹数量
  84192. UINT nTrackerIP; // 正在跟踪目标的球机, 0 为无效值
  84193. char byReserved[60]; // 保留字节
  84194. } NET_RADAR_RULE_INFO;
  84195. ///@brief 上报的雷达报警点信息
  84196. typedef struct tagNET_RADAR_NOTIFY_ALARMPOINTINFO
  84197. {
  84198. int nNumAlarmPoint; // 雷达报警点的数量
  84199. NET_RADAR_ALARMPOINT_INFO stuAlarmPoint[NET_RADAR_MAX_NUM_ALARMPOINT]; // 雷达报警点信息
  84200. int nChannel; // 通道号
  84201. UINT nRuleNum; // 规则数量
  84202. NET_RADAR_RULE_INFO stuRuleInfo[10]; // 雷达规则信息
  84203. NET_TIME stuRealUTC; // 雷达设备识别到目标上报的时间,时间是标准UTC时间
  84204. BYTE byReserved[272]; // 保留字节
  84205. }NET_RADAR_NOTIFY_ALARMPOINTINFO;
  84206. ///@brief 雷达报警点信息回调函数指针
  84207. typedef void (CALLBACK *fRadarAlarmPointInfoCallBack) (LLONG lLoginId, LLONG lAttachHandle, const NET_RADAR_NOTIFY_ALARMPOINTINFO* pBuf, DWORD dwBufLen, void* pReserved, LDWORD dwUser);
  84208. ///@brief 订阅雷达的报警点信息入参(对应接口 CLIENT_AttachRadarAlarmPointInfo)
  84209. typedef struct tagNET_IN_RADAR_ALARMPOINTINFO
  84210. {
  84211. DWORD dwSize; // 结构体大小
  84212. fRadarAlarmPointInfoCallBack cbAlarmPointInfo; // 雷达报警点信息回调
  84213. LDWORD dwUser; // 用户数据
  84214. int nChannel; // 通道号
  84215. }NET_IN_RADAR_ALARMPOINTINFO;
  84216. ///@brief 订阅雷达的报警点信息出参(对应接口 CLIENT_AttachRadarAlarmPointInfo)
  84217. typedef struct tagNET_OUT_RADAR_ALARMPOINTINFO
  84218. {
  84219. DWORD dwSize; // 结构体大小
  84220. }NET_OUT_RADAR_ALARMPOINTINFO;
  84221. ///@brief 订阅雷达的报警点信息
  84222. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRadarAlarmPointInfo(LLONG lLoginID, const NET_IN_RADAR_ALARMPOINTINFO * pstInParam, NET_OUT_RADAR_ALARMPOINTINFO* pstOutParam, int nWaitTime);
  84223. ///@brief 取消订阅雷达的报警点信息
  84224. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRadarAlarmPointInfo(LLONG lAttachHandle);
  84225. ///@brief mini雷达报警点信息
  84226. typedef struct tagNET_MINI_RADAR_ALARMPOINT_INFO
  84227. {
  84228. UINT nHeartRate; // 心率值(生命体征雷达使用)
  84229. UINT nBreathe; // 呼吸值(生命体征雷达使用)
  84230. BOOL bGetUpStatus; // 起身状态(生命体征雷达使用)
  84231. BOOL bAFBStatus; // 离床状态(生命体征雷达使用)
  84232. BOOL bTurnOverStatus; // 翻身状态(生命体征雷达使用)
  84233. UINT nSleepQuality; // 睡眠质量(生命体征雷达使用)
  84234. BOOL bPosture; // 摔倒状态(室内雷达)
  84235. UINT nNum; // 人数(室内雷达)
  84236. int nId; // 目标ID,0-31,室内雷达使用
  84237. int nXPosNum; // 位置信息x个数
  84238. int nXPos[32]; // 位置信息x,单位米。扩大100倍,最多32人
  84239. int nYPosNum; // 位置信息y个数
  84240. int nYPos[32]; // 位置信息y,单位米。扩大100倍,最多32人
  84241. int nSpeedNum; // 速度个数
  84242. int nSpeed[32]; // 速度 m/s,100倍,最多32人
  84243. int nTypeNum; // 人员类型个数
  84244. int nType[32]; // 人员类型:大人、小孩
  84245. UINT nHeartRateLevel; // 广告机专用;1-5,最多支持5个等级
  84246. UINT nDistance; // 广告机专用;人与广告机的距离,单位米,扩大100倍
  84247. int nGetUpTimes; // 人员在床时的起身次数, 人员离床时为0(生命体征雷达使用)
  84248. int nTurnTimes; // 人员在床时的翻身次数, 人员离床时为0(生命体征雷达使用)
  84249. char szReserved[248]; // 保留字节
  84250. }NET_MINI_RADAR_ALARMPOINT_INFO;
  84251. ///@brief 防区信息
  84252. typedef struct tagNET_RADAR_REGION_INFO
  84253. {
  84254. int nRegionID; // 防区ID 1:设备右前方; 2:设备左前方; 3:设备左后方; 4:设备右后方
  84255. BOOL bAction; // TRUE:开始 FALSE:停止
  84256. char byReserved[24]; // 保留字节
  84257. } NET_RADAR_REGION_INFO;
  84258. ///@brief 上报的mini雷达报警点信息
  84259. typedef struct tagNET_MINI_RADAR_NOTIFY_ALARMPOINTINFO
  84260. {
  84261. UINT nSID; // 订阅的SID
  84262. int nAlarmPointNum; // mini雷达报警点的数量
  84263. NET_MINI_RADAR_ALARMPOINT_INFO stuAlarmPoint[64]; // mini雷达报警点信息
  84264. int nRegionRealNum; // 防区信息真实数量
  84265. NET_RADAR_REGION_INFO stuRegionInfo[4]; // 防区信息
  84266. char szReserved[124]; // 保留字节
  84267. }NET_MINI_RADAR_NOTIFY_ALARMPOINTINFO;
  84268. ///@brief mini雷达报警点信息回调函数指针
  84269. typedef void (CALLBACK *fMiniRadarAlarmPointInfoCallBack) (LLONG lLoginId, LLONG lAttachHandle, const NET_MINI_RADAR_NOTIFY_ALARMPOINTINFO* pBuf, DWORD dwBufLen, void* pReserved, LDWORD dwUser);
  84270. ///@brief 订阅mini雷达的报警点信息入参(对应接口 CLIENT_AttachMiniRadarAlarmPointInfo)
  84271. typedef struct tagNET_IN_MINI_RADAR_ALARMPOINTINFO
  84272. {
  84273. DWORD dwSize; // 结构体大小
  84274. fMiniRadarAlarmPointInfoCallBack cbAlarmPointInfo; // 雷达报警点信息回调
  84275. LDWORD dwUser; // 用户数据
  84276. }NET_IN_MINI_RADAR_ALARMPOINTINFO;
  84277. ///@brief 订阅mini雷达的报警点信息出参(对应接口 CLIENT_AttachMiniRadarAlarmPointInfo)
  84278. typedef struct tagNET_OUT_MINI_RADAR_ALARMPOINTINFO
  84279. {
  84280. DWORD dwSize; // 结构体大小
  84281. UINT nSID; // 订阅的SID
  84282. }NET_OUT_MINI_RADAR_ALARMPOINTINFO;
  84283. ///@brief 订阅mini雷达的报警点信息
  84284. ///@param[in] lLoginID 登录句柄
  84285. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  84286. ///@param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  84287. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  84288. ///@return TRUE表示成功, FALSE表示失败
  84289. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachMiniRadarAlarmPointInfo(LLONG lLoginID, const NET_IN_MINI_RADAR_ALARMPOINTINFO * pstuInParam, NET_OUT_MINI_RADAR_ALARMPOINTINFO* pstuOutParam, int nWaitTime);
  84290. ///@brief 取消订阅mini雷达的报警点信息
  84291. ///@param[in] lAttachHandle 订阅接口返回句柄
  84292. ///@return TRUE表示成功, FALSE表示失败
  84293. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachMiniRadarAlarmPointInfo(LLONG lAttachHandle);
  84294. ///@brief 获取雷达联动的远程球机状态输入参数
  84295. typedef struct tagNET_IN_RADAR_GET_LINKSTATE
  84296. {
  84297. DWORD dwSize; // 结构体大小
  84298. int nChannel; // 通道号
  84299. int nSDLinkNum; // 待查的联动设备ip个数(当个数为0时,会返回当前设备所有的联动设备状态)
  84300. char szSDLinkIP[MAX_RADAR_SD_NUM][32];//待查联动设备ip数组
  84301. }NET_IN_RADAR_GET_LINKSTATE;
  84302. ///@brief 联动设备状态
  84303. typedef enum tagNET_EM_RADAR_LINK_SD_STATE
  84304. {
  84305. NET_EM_RADAR_LINK_SD_STATE_UNKNOWN = -1, // 未知
  84306. NET_EM_RADAR_LINK_SD_STATE_NORMAL, // 正常
  84307. NET_EM_RADAR_LINK_SD_STATE_TIMEOUT, // 超时
  84308. NET_EM_RADAR_LINK_SD_STATE_OFFLINE, // 离线
  84309. NET_EM_RADAR_LINK_SD_STATE_NOT_LINK, // 未连接
  84310. }NET_EM_RADAR_LINK_SD_STATE;
  84311. ///@brief 联动设备状态信息
  84312. typedef struct tagNET_LINKSTATE_INFO
  84313. {
  84314. char szSDLinkIP[32]; // 联动设备ip
  84315. NET_EM_RADAR_LINK_SD_STATE emState; // 联动设备状态
  84316. int nVirtualChannel; // 虚拟视频通道号,用于雷达控多球,通道号1开始
  84317. BYTE byReserved[1020]; // 保留
  84318. }NET_LINKSTATE_INFO;
  84319. ///@brief 获取雷达联动的远程球机状态输出参数
  84320. typedef struct tagNET_OUT_RADAR_GET_LINKSTATE
  84321. {
  84322. DWORD dwSize; // 结构体大小
  84323. int nSDLinkNum; // 联动设备个数
  84324. NET_LINKSTATE_INFO stuSDLinkState[MAX_RADAR_SD_NUM];// 联动设备状态信息
  84325. }NET_OUT_RADAR_GET_LINKSTATE;
  84326. ///@brief 待添加的远程联动设备连接信息
  84327. typedef struct tagNET_RADARLINKDEVICE_ADD_INFO
  84328. {
  84329. char szSDLinkIP[32]; // 被控制的设备ip
  84330. char szUserName[128]; // 用户名
  84331. char szPassword[32]; // 密码
  84332. int nPort; // 服务端口
  84333. BYTE byReserved[316]; // 保留
  84334. }NET_RADARLINKDEVICE_ADD_INFO;
  84335. ///@brief CLIENT_AddRadarLinkSD接口入参
  84336. typedef struct tagNET_IN_RADAR_ADD_RADARLINKSD
  84337. {
  84338. DWORD dwSize; // 结构体大小
  84339. int nChannelID; // 通道号
  84340. NET_RADARLINKDEVICE_ADD_INFO stuDevices[MAX_RADAR_SD_NUM]; // 联动球机数组
  84341. int nDevicesNum; // 有效数据个数
  84342. }NET_IN_RADAR_ADD_RADARLINKSD;
  84343. ///@brief 错误码
  84344. typedef enum tagNET_EM_RADARLINKDEVICE_ADD_ERRORCODE
  84345. {
  84346. EM_EM_RADARLINKDEVICE_ADD_UNKNOWN = -1, // 未知
  84347. EM_EM_RADARLINKDEVICE_ADD_SUCCESS = 0, // 正常
  84348. EM_EM_RADARLINKDEVICE_ADD_TIMEOUT, // 超时
  84349. EM_EM_RADARLINKDEVICE_ADD_ACCOUNTERROR, // 用户名或者密码错误
  84350. EM_EM_RADARLINKDEVICE_ADD_NOTSUPPORT, // 设备不支持联动
  84351. }NET_EM_RADARLINKDEVICE_ADD_ERRORCODE;
  84352. ///@brief 添加联动球机接口返回的结果
  84353. typedef struct tagNET_RADARLINKDEVICE_ADD_RESULT
  84354. {
  84355. NET_EM_RADARLINKDEVICE_ADD_ERRORCODE emErrorCode; // 错误码
  84356. BYTE byReserved[252]; // 保留
  84357. }NET_RADARLINKDEVICE_ADD_RESULT;
  84358. ///@brief CLIENT_AddRadarLinkSD接口出参
  84359. typedef struct tagNET_OUT_RADAR_ADD_RADARLINKSD
  84360. {
  84361. DWORD dwSize; // 结构体大小
  84362. int nRetResultNum; // 有效数据个数
  84363. NET_RADARLINKDEVICE_ADD_RESULT stuAddResult[MAX_RADAR_SD_NUM]; // 添加结果,下标对应入参中的设备信息
  84364. }NET_OUT_RADAR_ADD_RADARLINKSD;
  84365. ///@brief 待删除的远程联动设备信息
  84366. typedef struct tagNET_RADARLINKDEVICE_DEL_INFO
  84367. {
  84368. char szSDLinkIP[32]; // 被控制的设备ip
  84369. BYTE byReserved[224]; // 保留
  84370. }NET_RADARLINKDEVICE_DEL_INFO;
  84371. ///@brief CLIENT_DelRadarLinkSD接口入参
  84372. typedef struct tagNET_IN_RADAR_DEL_RADARLINKSD
  84373. {
  84374. DWORD dwSize; // 结构体大小
  84375. int nChannelID; // 通道号
  84376. NET_RADARLINKDEVICE_DEL_INFO stuDevices[MAX_RADAR_SD_NUM]; // 联动球机数组
  84377. int nDevicesNum; // 有效数据个数,为0表示删除所有联动设备
  84378. }NET_IN_RADAR_DEL_RADARLINKSD;
  84379. ///@brief CLIENT_DelRadarLinkSD接口出参
  84380. typedef struct tagNET_OUT_RADAR_DEL_RADARLINKSD
  84381. {
  84382. DWORD dwSize; // 结构体大小
  84383. }NET_OUT_RADAR_DEL_RADARLINKSD;
  84384. ///@brief CLIENT_RadarManualLocate接口入参
  84385. typedef struct tagNET_IN_RADAR_MANUAL_LOCATE
  84386. {
  84387. DWORD dwSize; // 结构体大小
  84388. int nChannelID; // 通道号
  84389. NET_POINT stuLocatePoint; // 定位点的像素坐标
  84390. }NET_IN_RADAR_MANUAL_LOCATE;
  84391. ///@brief CLIENT_RadarManualLocate接口出参
  84392. typedef struct tagNET_OUT_RADAR_MANUAL_LOCATE
  84393. {
  84394. DWORD dwSize; // 结构体大小
  84395. }NET_OUT_RADAR_MANUAL_LOCATE;
  84396. ///@brief 卡片行为
  84397. typedef enum tagNET_EM_RADAR_RFIDCARD_ACTION
  84398. {
  84399. EM_RADAR_RFIDCARD_ACTION_UNKNOWN = 0, // 未知
  84400. EM_RADAR_RFIDCARD_ACTION_LEAVE, // 卡片离开
  84401. EM_RADAR_RFIDCARD_ACTION_ENTER, // 卡片进入
  84402. }NET_EM_RADAR_RFIDCARD_ACTION;
  84403. ///@brief RFID卡片信息
  84404. typedef struct tagNET_RADAR_RFIDCARD_INFO
  84405. {
  84406. char szCardID[24]; // 卡片ID
  84407. NET_EM_RADAR_RFIDCARD_ACTION emCardAction; // 卡片行为
  84408. UINT nCardEntryTime; // 卡片进入时间的UTC时间戳
  84409. UINT nCardQuitTime; // 卡片离开时间的UTC时间戳,卡片未离开则为0
  84410. BYTE byReserved[116]; // 保留字节
  84411. }NET_RADAR_RFIDCARD_INFO;
  84412. ///@brief 上报的雷达RFID信息
  84413. typedef struct tagNET_RADAR_NOTIFY_RFIDCARD_INFO
  84414. {
  84415. int nChannel;
  84416. int nCardNum;
  84417. NET_RADAR_RFIDCARD_INFO stuCardInfo[256]; // RFID卡片信息
  84418. BYTE byReserved[1024]; // 保留字节
  84419. }NET_RADAR_NOTIFY_RFIDCARD_INFO;
  84420. ///@brief 雷达RFID信息回调函数指针
  84421. typedef void (CALLBACK *fRadarRFIDCardInfoCallBack) (LLONG lLoginId, LLONG lAttachHandle, const NET_RADAR_NOTIFY_RFIDCARD_INFO* pBuf, DWORD dwBufLen, void* pReserved, LDWORD dwUser);
  84422. ///@brief CLIENT_AttachRadarRFIDCardInfo接口入参
  84423. typedef struct tagNET_IN_ATTACH_RADAR_RFIDCARD_INFO
  84424. {
  84425. DWORD dwSize; // 结构体大小
  84426. int nChannelID; // 通道号
  84427. fRadarRFIDCardInfoCallBack cbRFIDCardInfo; // 雷达RFIDCard信息回调
  84428. LDWORD dwUser; // 用户数据
  84429. }NET_IN_ATTACH_RADAR_RFIDCARD_INFO;
  84430. ///@brief CLIENT_AttachRadarRFIDCardInfo接口出参
  84431. typedef struct tagNET_OUT_ATTACH_RADAR_RFIDCARD_INFO
  84432. {
  84433. DWORD dwSize; // 结构体大小
  84434. }NET_OUT_ATTACH_RADAR_RFIDCARD_INFO;
  84435. ///@brief CLIENT_GetRadarRFIDMode接口入参
  84436. typedef struct tagNET_IN_RADAR_GET_RFID_MODE
  84437. {
  84438. DWORD dwSize; // 结构体大小
  84439. }NET_IN_RADAR_GET_RFID_MODE;
  84440. ///@brief CLIENT_GetRadarRFIDMode接口出参
  84441. typedef struct tagNET_OUT_RADAR_GET_RFID_MODE
  84442. {
  84443. DWORD dwSize; // 结构体大小
  84444. int nMode; // RFID规则模式,0:设备单独工作时使用,全部为有效卡;1:平台接入时使用,区分RFID卡片有效性
  84445. }NET_OUT_RADAR_GET_RFID_MODE;
  84446. ///@brief CLIENT_SetRadarRFIDMode接口入参
  84447. typedef struct tagNET_IN_RADAR_SET_RFID_MODE
  84448. {
  84449. DWORD dwSize; // 结构体大小
  84450. int nMode; // RFID规则模式,0:设备单独工作时使用,全部为有效卡;1:平台接入时使用,区分RFID卡片有效性
  84451. }NET_IN_RADAR_SET_RFID_MODE;
  84452. ///@brief CLIENT_SetRadarRFIDMode接口出参
  84453. typedef struct tagNET_OUT_RADAR_SET_RFID_MODE
  84454. {
  84455. DWORD dwSize; // 结构体大小
  84456. }NET_OUT_RADAR_SET_RFID_MODE;
  84457. ///@brief 地图构建设备返回信息
  84458. typedef struct tagNET_MAP_BUILDING_INFO
  84459. {
  84460. char szRadarIP[32]; // 设备IP
  84461. NET_EM_RADAR_LINK_SD_STATE emState; // 设备状态
  84462. char szReserved[252]; // 保留字节
  84463. } NET_MAP_BUILDING_INFO ;
  84464. ///@brief CLIENT_MapRadarBuilding接口入参
  84465. typedef struct tagNET_IN_RADAR_MAP_BUILDING
  84466. {
  84467. DWORD dwSize; // 结构体大小
  84468. int nCount; // 激光雷达设备个数
  84469. char szRadarIP[24][32]; // 激光雷达设备IP, 如果数组为空或字段不存在, 默认所有激光雷达都地图构建
  84470. int nAction[24]; // 地图构建的操作类型,大小跟szRadarIP保持一致,0表示开始地图构建,1表示取消地图构建
  84471. }NET_IN_RADAR_MAP_BUILDING;
  84472. ///@brief CLIENT_MapRadarBuilding接口出参
  84473. typedef struct tagNET_OUT_RADAR_MAP_BUILDING
  84474. {
  84475. DWORD dwSize; // 结构体大小
  84476. int nCount; // 返回设备信息个数
  84477. NET_MAP_BUILDING_INFO stuMapInfo[24]; // 设备信息
  84478. }NET_OUT_RADAR_MAP_BUILDING;
  84479. ///@brief CLIENT_RadarManualTrack接口入参
  84480. typedef struct tagNET_IN_RADAR_MANUAL_TRACK
  84481. {
  84482. DWORD dwSize; // 结构体大小
  84483. char szSDIP[32]; // 需要跟踪的球机
  84484. int nTrackID; // 需要跟踪目标的轨迹号
  84485. int nTime; // 跟踪时间,单位为s
  84486. int nAction; // 跟踪动作, 0:停止手动跟踪, 1:开始手动跟踪
  84487. int arrCoordinate[2]; // 经纬度坐标,用整型传输,扩大1000000倍,小数点后6位有效,数组0表示经度,数组1表示纬度
  84488. int nAlarmType; // 手动跟踪的原因, bit0表示超速 bit1表示是否AIS匹配 bit2表示是否禁行 bit3表示是否逆行 (bit位置1表示需要手动跟踪,全0表示普通跟踪命令)
  84489. int nSpeed; // 航速:要跟踪目标的速度,单位km/h 扩大10000 倍下发(精度0.0001)
  84490. int nAzimuth; // 航向:正北方向为0° 顺时针为正 0-360°,扩大100倍下发
  84491. } NET_IN_RADAR_MANUAL_TRACK;
  84492. ///@brief CLIENT_RadarManualTrack接口出参
  84493. typedef struct tagNET_OUT_RADAR_MANUAL_TRACK
  84494. {
  84495. DWORD dwSize; // 结构体大小
  84496. char szSDIP[32]; // 返回被跟踪轨迹对应的球机ip
  84497. int nEventID; // 返回被跟踪目标的一个全局唯一id
  84498. }NET_OUT_RADAR_MANUAL_TRACK;
  84499. ///@brief 上报的雷达AIS信息
  84500. typedef struct tagNET_RADAR_NOTIFY_AIS_INFO
  84501. {
  84502. int nDataLength; // AIS数据大小
  84503. UINT nData[512]; // AIS数据数组
  84504. int nSID; // 订阅ID
  84505. BYTE byReserved[1024]; // 保留字节
  84506. }NET_RADAR_NOTIFY_AIS_INFO;
  84507. ///@brief 雷达AIS信息回调函数指针
  84508. typedef void (CALLBACK *fRadarAISInfoCallBack) (LLONG lLoginId, LLONG lAttachHandle, const NET_RADAR_NOTIFY_AIS_INFO* pBuf, DWORD dwBufLen, void* pReserved, LDWORD dwUser);
  84509. ///@brief CLIENT_AttachRadarAISInfo接口入参
  84510. typedef struct tagNET_IN_ATTACH_RADAR_AIS_INFO
  84511. {
  84512. DWORD dwSize; // 结构体大小
  84513. fRadarAISInfoCallBack cbAISInfo; // 雷达AIS信息回调
  84514. LDWORD dwUser; // 用户数据
  84515. }NET_IN_ATTACH_RADAR_AIS_INFO;
  84516. ///@brief CLIENT_AttachRadarAISInfo接口出参
  84517. typedef struct tagNET_OUT_ATTACH_RADAR_AIS_INFO
  84518. {
  84519. DWORD dwSize; // 结构体大小
  84520. }NET_OUT_ATTACH_RADAR_AIS_INFO;
  84521. ///@brief 轨迹信息
  84522. typedef struct tagNET_RADAR_SET_TRACK_INFO
  84523. {
  84524. int nTrackID; // 轨迹ID
  84525. int nAISMatch; // 是否AIS匹配,0表示不匹配,1表示匹配
  84526. char szReserved[64]; // 预留字节
  84527. }NET_RADAR_SET_TRACK_INFO;
  84528. ///@brief CLIENT_SetRadarTrackInfo 接口入参
  84529. typedef struct tagNET_IN_RADAR_SET_TRACK_INFO
  84530. {
  84531. DWORD dwSize; // 结构体大小
  84532. int nInfoNum; // 轨迹信息个数
  84533. NET_RADAR_SET_TRACK_INFO stuInfo[128]; // 轨迹信息
  84534. }NET_IN_RADAR_SET_TRACK_INFO;
  84535. ///@brief CLIENT_SetRadarTrackInfo 接口出参
  84536. typedef struct tagNET_OUT_RADAR_SET_TRACK_INFO
  84537. {
  84538. DWORD dwSize; // 结构体大小
  84539. }NET_OUT_RADAR_SET_TRACK_INFO;
  84540. ///@brief CLIENT_SetDevicePower 接口入参
  84541. typedef struct tagNET_IN_RADAR_SET_DEVICE_POWER
  84542. {
  84543. DWORD dwSize; // 结构体大小
  84544. int nType; // 0 : 表示设备断电, 断电就只能手动去把空开合闸
  84545. // 1 : 表示设备重启, 重启是空开会自动合闸
  84546. }NET_IN_RADAR_SET_DEVICE_POWER;
  84547. ///@brief CLIENT_SetDevicePower 接口出参
  84548. typedef struct tagNET_OUT_RADAR_SET_DEVICE_POWER
  84549. {
  84550. DWORD dwSize; // 结构体大小
  84551. }NET_OUT_RADAR_SET_DEVICE_POWER;
  84552. ///@brief 获取雷达联动的远程球机状态
  84553. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRadarLinkSDState(LLONG lLoginID, const NET_IN_RADAR_GET_LINKSTATE * pstInParam, NET_OUT_RADAR_GET_LINKSTATE* pstOutParam, int nWaitTime);
  84554. ///@brief 用于雷达联动球机添加
  84555. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddRadarLinkSD(LLONG lLoginID, const NET_IN_RADAR_ADD_RADARLINKSD * pstInParam, NET_OUT_RADAR_ADD_RADARLINKSD* pstOutParam, int nWaitTime);
  84556. ///@brief 用于雷达联动球机删除
  84557. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelRadarLinkSD(LLONG lLoginID, const NET_IN_RADAR_DEL_RADARLINKSD * pstInParam, NET_OUT_RADAR_DEL_RADARLINKSD* pstOutParam, int nWaitTime);
  84558. ///@brief 手动定位功能,用于雷达控制球机云台转动用于定位
  84559. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RadarManualLocate(LLONG lLoginID, const NET_IN_RADAR_MANUAL_LOCATE * pstInParam, NET_OUT_RADAR_MANUAL_LOCATE* pstOutParam, int nWaitTime);
  84560. ///@brief 雷达订阅RFID卡片信息
  84561. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRadarRFIDCardInfo(LLONG lLoginID, const NET_IN_ATTACH_RADAR_RFIDCARD_INFO * pstInParam, NET_OUT_ATTACH_RADAR_RFIDCARD_INFO* pstOutParam, int nWaitTime);
  84562. ///@brief 雷达取消订阅RFID卡片信息
  84563. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRadarRFIDCardInfo(LLONG lAttachHandle);
  84564. ///@brief 查询RFID的工作模式
  84565. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRadarRFIDMode(LLONG lLoginID, const NET_IN_RADAR_GET_RFID_MODE * pstInParam, NET_OUT_RADAR_GET_RFID_MODE* pstOutParam, int nWaitTime);
  84566. ///@brief 设置RFID的工作模式
  84567. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRadarRFIDMode(LLONG lLoginID, const NET_IN_RADAR_SET_RFID_MODE * pstInParam, NET_OUT_RADAR_SET_RFID_MODE* pstOutParam, int nWaitTime);
  84568. ///@brief 支持调用激光雷达的地图自动构建
  84569. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MapRadarBuilding(LLONG lLoginID, const NET_IN_RADAR_MAP_BUILDING * pstInParam, NET_OUT_RADAR_MAP_BUILDING* pstOutParam, int nWaitTime);
  84570. ///@brief 手动选择轨迹目标让球机跟踪
  84571. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RadarManualTrack(LLONG lLoginID, const NET_IN_RADAR_MANUAL_TRACK* pstInParam, NET_OUT_RADAR_MANUAL_TRACK* pstOutParam, int nWaitTime);
  84572. ///@brief 雷达订阅AIS信息
  84573. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRadarAISInfo(LLONG lLoginID, const NET_IN_ATTACH_RADAR_AIS_INFO * pstInParam, NET_OUT_ATTACH_RADAR_AIS_INFO* pstOutParam, int nWaitTime);
  84574. ///@brief 雷达取消订阅AIS信息
  84575. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRadarAISInfo(LLONG lAttachHandle);
  84576. ///@brief 下发的雷达轨迹信息,用作AIS报警判断与球机联动
  84577. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRadarTrackInfo(LLONG lLoginID, const NET_IN_RADAR_SET_TRACK_INFO* pstInParam, NET_OUT_RADAR_SET_TRACK_INFO* pstOutParam, int nWaitTime);
  84578. ///@brief 设备断电和重启接口
  84579. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDevicePower(LLONG lLoginID, const NET_IN_RADAR_SET_DEVICE_POWER* pstInParam, NET_OUT_RADAR_SET_DEVICE_POWER* pstOutParam, int nWaitTime);
  84580. ///@brief CLIENT_GetWaterRadarCaps 输入参数
  84581. typedef struct tagNET_IN_GET_WATERRADAR_CAPS
  84582. {
  84583. DWORD dwSize; // 结构体大小
  84584. }NET_IN_GET_WATERRADAR_CAPS;
  84585. ///@brief CLIENT_GetWaterRadarCaps 输出参数
  84586. typedef struct tagNET_OUT_GET_WATERRADAR_CAPS
  84587. {
  84588. DWORD dwSize; // 结构体大小
  84589. BOOL bSupport; // 当前是否支持水利雷达功能 FALSE: 不支持 TRUE: 支持
  84590. }NET_OUT_GET_WATERRADAR_CAPS;
  84591. ///@brief CLIENT_GetWaterRadarObjectInfo 输入参数
  84592. typedef struct tagNET_IN_GET_WATERRADAR_OBJECTINFO
  84593. {
  84594. DWORD dwSize; // 结构体大小
  84595. }NET_IN_GET_WATERRADAR_OBJECTINFO;
  84596. ///@brief CLIENT_GetWaterRadarObjectInfo 输出参数
  84597. typedef struct tagNET_OUT_GET_WATERRADAR_OBJECTINFO
  84598. {
  84599. DWORD dwSize; // 结构体大小
  84600. float fWaterLevel; // 水位 单位 cm
  84601. }NET_OUT_GET_WATERRADAR_OBJECTINFO;
  84602. ///@brief 获取水利雷达能力
  84603. ///@param[in] lLoginID 登录句柄
  84604. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  84605. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  84606. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  84607. ///@return TRUE表示成功 FALSE表示失败
  84608. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetWaterRadarCaps(LLONG lLoginID, const NET_IN_GET_WATERRADAR_CAPS* pInParam, NET_OUT_GET_WATERRADAR_CAPS* pOutParam, int nWaitTime);
  84609. ///@brief 获取雷达检测目标数据
  84610. ///@param[in] lLoginID 登录句柄
  84611. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  84612. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  84613. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  84614. ///@return TRUE表示成功 FALSE表示失败
  84615. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetWaterRadarObjectInfo(LLONG lLoginID, const NET_IN_GET_WATERRADAR_OBJECTINFO* pInParam, NET_OUT_GET_WATERRADAR_OBJECTINFO* pOutParam, int nWaitTime);
  84616. ///@brief 雷达区域检测事件的RFID卡片信息
  84617. typedef struct tagNET_RADAR_REGIONDETECTION_RFIDCARD_INFO
  84618. {
  84619. char szCardID[24]; // 卡片ID
  84620. char byReserved[256]; // 保留字节
  84621. }NET_RADAR_REGIONDETECTION_RFIDCARD_INFO;
  84622. ///@brief 雷达区域检测事件(对应 DH_ALARM_RADAR_REGIONDETECTION)
  84623. typedef struct tagALARM_RADAR_REGIONDETECTION_INFO
  84624. {
  84625. int nAction; // 事件动作1:Start 2:Stop
  84626. NET_TIME_EX stuTime; // 事件发生的时间
  84627. int nChannelID; // 通道号
  84628. int nObjectNum; // 检测到的对象个数
  84629. NET_RADAR_DETECT_OBJECT stuObjects[100]; // 雷达检测对象列表
  84630. char szName[128]; // 事件名称
  84631. int nPresetID; // 事件触发的预置点号
  84632. int nDetectRegionNum; // 检测区域顶点数
  84633. NET_POINT stuDetectRegion[20]; // 检测区域,[0,8191]
  84634. EM_RADAR_ALARM_TYPE emAlarmType; // 报警类型
  84635. int nLongitude; // 经度,扩大1000000倍,小数点后6位有效,不足6位用0补齐,例如120125400代表120.1254
  84636. int nLatitude; // 纬度,扩大1000000倍,小数点后6位有效,不足6位用0补齐,例如120125400代表120.1254
  84637. UINT nRuleID; // 智能事件规则编号,用于表示哪个规则触发的事件。
  84638. int nCardNum; // RFID卡片数量
  84639. NET_RADAR_REGIONDETECTION_RFIDCARD_INFO stuCardInfo[256]; // RFID卡片信息
  84640. UINT nAlarmLevel; // 报警等级,0 表示未知, 1表示预警警告,2表示报警
  84641. int nAlarmFlag; // 报警标志位,bit0表示是否超速,bit1表示是否AIS匹配 第2bit位表示是否禁行 第3bit位表示是否逆行
  84642. int nAlarmChannel; // 报警输入通道号
  84643. UINT nEventID; // 事件编号,用来唯一标志一个事件
  84644. int nSpeed; // 触发事件目标的速度,用整型传输,扩大100倍 单位m/s
  84645. int nTrackID; // 触发事件目标的id,范围[0,63]
  84646. int nObjectType; // 触发事件目标的类型的掩码: 0x00未识别目标 0x01目标为人 0x02目标为交通工具 0x03目标为树 0x04目标为建筑物 0x05目标为屏幕 0x06目标为动物 0x07目标为大船 0x08目标为中船 0x09目标为小船
  84647. int nUpDownGoing; // 车道/航道方向 -1:未知 0:无效 1:上行 2:下行
  84648. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  84649. int nDistance; // 当前触发事件目标的像素极坐标值--距离,扩大100倍的结果,单位米
  84650. int nAngle; // 当前触发事件目标的极坐标值--角度,扩大100倍的结果,单位度
  84651. char byReserved[992]; // 预留字节
  84652. }ALARM_RADAR_REGIONDETECTION_INFO;
  84653. ///@brief 雷达警戒线/绊线检测事件(对应事件DH_ALARM_RADAR_LINEDETECTION)
  84654. typedef struct tagALARM_RADAR_LINEDETECTION_INFO
  84655. {
  84656. int nChannelID; // 通道号
  84657. int nAction; // 事件动作1:Start 2:Stop
  84658. char szName[128]; // 事件名称
  84659. NET_TIME_EX stuTime; // 事件发生的时间
  84660. int nObjectNum; // 检测到的对象个数
  84661. NET_RADAR_DETECT_OBJECT stuObjects[100]; // 雷达检测对象列表
  84662. int nPresetID; // 事件触发的预置点号
  84663. int nDetectRegionNum; // 检测区域顶点数
  84664. NET_POINT stuDetectRegion[20]; // 检测区域,[0,8191]
  84665. int nLongitude; // 经度,扩大1000000倍,小数点后6位有效,不足6位用0补齐,例如120125400代表120.1254
  84666. int nLatitude; // 纬度,扩大1000000倍,小数点后6位有效,不足6位用0补齐,例如120125400代表120.1254
  84667. UINT nAlarmLevel; // 报警等级,0 表示未知, 1表示预警警告,2表示报警
  84668. int nAlarmFlag; // 报警标志位,bit0表示是否超速,bit1表示是否AIS匹配
  84669. EM_RADAR_ALARM_TYPE emAlarmType; // 报警类型
  84670. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  84671. char byReserved[1012]; // 预留字节
  84672. } ALARM_RADAR_LINEDETECTION_INFO;
  84673. ///@brief 雷达在地图上的位置信息
  84674. typedef struct tagNET_RADAR_PLACE_INFO
  84675. {
  84676. int nRadarPixel[2]; // 雷达在地图上的像素坐标
  84677. double dbRadarAngle; // 雷达朝向配置,单位度
  84678. char byReserved[512]; // 预留字节
  84679. } NET_RADAR_PLACE_INFO;
  84680. ///@brief 雷达地图尺寸配置(对应 NET_EM_CFG_RADAR_MAPPARA)
  84681. typedef struct tagNET_CFG_RADAR_MAPPARA_INFO
  84682. {
  84683. DWORD dwSize; // 结构体大小
  84684. BYTE byReserved[4]; // 字节对齐
  84685. NET_RADAR_PIXELLINE stuPixelLine; // 图片中线段的像素坐标
  84686. double dDistance; // 图片中线段代表的实际长度,单位米
  84687. NET_RADAR_PIXELPOINT stuPixelPoint; // 雷达在地图上的像素坐标
  84688. double dRadarDirectionAngle; // 雷达朝向配置,单位度
  84689. UINT nLongitudeNum; // 经度个数
  84690. int nLongitude[4]; // 经度, 最多4组, 放大1000000倍, 小数点后6位有效, 不足6位用0补齐, 例如120125400代表120.1254
  84691. UINT nLatitudeNum; // 纬度个数
  84692. int nLatitude[4]; // 纬度, 最多4组, 放大1000000倍, 小数点后6位有效, 不足6位用0补齐, 例如120125400代表120.1254
  84693. char byReserved1[4]; // 字节对齐
  84694. UINT nRadarPlaceNum; // 雷达在地图上的位置个数
  84695. NET_RADAR_PLACE_INFO stuRadarPlaceInfo[4]; // 雷达在地图上的位置参数
  84696. }NET_CFG_RADAR_MAPPARA_INFO;
  84697. ///@brief 校准点
  84698. typedef struct tagNET_RADAR_CALIBRATIONPOS
  84699. {
  84700. NET_RADAR_PIXELPOINT stuPixelPoint; // 校准点的像素坐标
  84701. double dPositionX; // 水平角度,归一化到-1~1
  84702. double dPositionY; // 垂直角度,归一化到-1~1
  84703. double dZoom; // 放大倍数,归一化到 0~1
  84704. BYTE byReserved[512]; // 保留字节
  84705. }NET_RADAR_CALIBRATIONPOS;
  84706. ///@brief 校准参数
  84707. typedef struct tagNET_RADAR_CALIBRATION_PARAS
  84708. {
  84709. int nCalibrationPosNum; // 校准点个数
  84710. BYTE byReserved1[4]; // 字节对齐
  84711. NET_RADAR_CALIBRATIONPOS stuCalibrationPos[4]; // 校准点数组
  84712. char szSDLinkIP[32]; // 被控制的设备ip
  84713. double dLinkSDHeight; // 联动的球机安装高度,单位米
  84714. double dTiltRecoupAngle; // 联动球机垂直补偿角
  84715. BYTE byReserved[1024]; // 保留字节
  84716. }NET_RADAR_CALIBRATION_PARAS;
  84717. ///@brief 雷球校准配置(对应 NET_EM_CFG_RADAR_CALIBRATION)
  84718. typedef struct tagNET_CFG_RADAR_CALIBRATION_INFO
  84719. {
  84720. DWORD dwSize; // 结构体大小
  84721. int nCalibrationParasNum; // 校准参数组数
  84722. NET_RADAR_CALIBRATION_PARAS stuCalibrationParas[MAX_RADAR_SD_NUM]; // 校准参数
  84723. double dInstallHeight; // 安装高度,单位米
  84724. double dSlopeAngle; // 斜坡补偿角度
  84725. }NET_CFG_RADAR_CALIBRATION_INFO;
  84726. ///@brief 雷达联动球机使能配置(对应 NET_EM_CFG_RADAR_LINKSD)
  84727. typedef struct tagNET_CFG_RADAR_LINKSD_INFO
  84728. {
  84729. DWORD dwSize; // 结构体大小
  84730. BOOL bRadarLink; // 雷达联动球机使能
  84731. }NET_CFG_RADAR_LINKSD_INFO;
  84732. #define NET_RADAR_MAX_NUM_RULELINE 10 // 规则线的最大数量
  84733. #define NET_RADAR_MAX_NUM_POLYGON 24 // 规则线顶点的最大数量
  84734. ///@brief 雷达规则类型
  84735. typedef enum tagEM_RADAR_RULETYPE
  84736. {
  84737. EM_RADAR_RULETYPE_UNKNOWN, // 未知
  84738. EM_RADAR_RULETYPE_ALARM, // 预警
  84739. EM_RADAR_RULETYPE_SHIELD, // 屏蔽
  84740. EM_RADAR_RULETYPE_HIGHALARM, // 报警,高级别
  84741. }EM_RADAR_RULETYPE;
  84742. #define RADAR_TARGET_FILTER_HUMAN 0x01 // 人
  84743. #define RADAR_TARGET_FILTER_CAR 0x02 // 车
  84744. #define RADAR_TARGET_FILTER_ANIMAL 0x04 // 动物
  84745. ///@brief 规则线
  84746. typedef struct tagNET_RADAR_RULELINE
  84747. {
  84748. char szName[DH_COMMON_STRING_128];// 规则名称,不能重名
  84749. int nRegionNumber; // 规则线编号,范围[1,10]
  84750. BOOL bEnable; // 规则是否使能
  84751. EM_RADAR_RULETYPE emRuleType; // 规则类型,告警或者屏蔽类型
  84752. DH_POINT stuPolygon[DH_MAX_POLYGON_NUM]; // 规则点,每个点依次表示规则线的顶点坐标
  84753. int nPolygonPointNum; // 规则线顶点的个数,点的个数范围[3, 24]
  84754. int nTargetFilter; // 目标过滤 bit1:人, bit2:车, bit3:动物 配置使用|,校验使用&
  84755. int nAlarmOutNumber; // 关联的报警输出配置的编号,对应NET_RADAR_ANALYSERULE配置nAlarmOutNumber字段
  84756. int nLongitudeNum; // 经度个数, 即nLongitude 数组的有效元素个数
  84757. int nLongitude[21]; // 规则点的经度,用整型传输, 放大1000000倍, 小数点后6位有效,例如120125400代表120.1254
  84758. int nLatitudeNum; // 维度个数, 即nLatitude 数组的有效元素个数
  84759. int nLatitude[21]; // 规则点的维度,用整型传输, 放大1000000倍, 小数点后6位有效,例如120125400代表120.1254
  84760. int nRadarPolygonNum; // 雷达坐标系下的防区规则数组实际有效个数
  84761. int nRadarPolygon[20][2]; // 雷达坐标系下的防区规则。雷达法线为极轴,逆时针方向为正方向。int[][0u]:距离 单位:米,扩大100倍;int[][1u] :角度 单位:度 扩大100倍
  84762. BYTE byReserved[164]; // 保留字节
  84763. }NET_RADAR_RULELINE;
  84764. ///@brief 雷达规则线配置(对应 NET_EM_CFG_RADAR_RULELINE)
  84765. typedef struct tagNET_CFG_RADAR_RULELINE_INFO
  84766. {
  84767. DWORD dwSize; // 结构体大小
  84768. int nNumRuleLine; // 要配置的规则线数量
  84769. NET_RADAR_RULELINE stuRuleLine[NET_RADAR_MAX_NUM_RULELINE]; //规则线
  84770. BOOL bUseEx; // nNumRuleLineEx/stuRuleLineEx 是否有效
  84771. int nNumRuleLineEx; // 要配置的规则线数量
  84772. NET_RADAR_RULELINE stuRuleLineEx[25]; // 规则线
  84773. }NET_CFG_RADAR_RULELINE_INFO;
  84774. ///@brief 报警联动配置
  84775. typedef struct tagNET_RADAR_ANALYSERULE
  84776. {
  84777. char szSDLinkIP[32]; // 被控制的球机IP
  84778. int nAlarmOutNumber; // 报警配置编号,编号唯一
  84779. BOOL bEnable; // 报警使能
  84780. NET_CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动配置
  84781. BYTE byReserved[1024]; // 保留字节
  84782. }NET_RADAR_ANALYSERULE;
  84783. ///@brief 雷达报警联动配置(对应 NET_EM_CFG_RADAR_ANALYSERULE)
  84784. typedef struct tagNET_CFG_RADAR_ANALYSERULE_INFO
  84785. {
  84786. DWORD dwSize; // 结构体大小
  84787. int nAnalyseRuleNum; // 报警联动配置个数
  84788. NET_RADAR_ANALYSERULE stuAnalyseRules[MAX_RADAR_SD_NUM]; // 报警联动配置数组
  84789. }NET_CFG_RADAR_ANALYSERULE_INFO;
  84790. ///@brief 跟踪切换模式
  84791. typedef enum tagEM_RADAR_TRACKSWITCHMODE
  84792. {
  84793. EM_RADAR_TRACKSWITCHMODE_UNKNOWN, // 未知
  84794. EM_RADAR_TRACKSWITCHMODE_ROTATION, // 轮巡
  84795. EM_RADAR_TRACKSWITCHMODE_TIMEFIRST, // 时间优先
  84796. EM_RADAR_TRACKSWITCHMODE_DISTANCEFIRST, // 距离优先
  84797. }EM_RADAR_TRACKSWITCHMODE;
  84798. ///@brief 雷达跟踪全局配置(对应 NET_EM_CFG_RADAR_TRACKGLOBALCONFIG)
  84799. typedef struct tagNET_CFG_RADAR_TRACKGLOBALCONFIG_INFO
  84800. {
  84801. DWORD dwSize; // 结构体大小
  84802. BOOL bSectorDisable; // 防区隐藏使能
  84803. int nTrajectoryTime; // 轨迹时长,单位秒,范围[3,30]
  84804. int nTrackSwitchTime; // 跟踪切换时间,单位秒,范围[1,15]
  84805. EM_RADAR_TRACKSWITCHMODE emTrackSwitchMode; // 跟踪切换模式
  84806. }NET_CFG_RADAR_TRACKGLOBALCONFIG_INFO;
  84807. ///@brief 雷达场景类型
  84808. typedef enum tagNET_EM_RADAR_SCENE_TYPE
  84809. {
  84810. NET_EM_RADAR_SCENE_UNKNOWN = 0, // 未知
  84811. NET_EM_RADAR_SCENE_DEFAULT, // 默认
  84812. NET_EM_RADAR_SCENE_SHRUB, // 灌木
  84813. NET_EM_RADAR_SCENE_ROOMY, // 宽敞
  84814. NET_EM_RADAR_SCENE_CUSTOM, // 自定义
  84815. }NET_EM_RADAR_SCENE_TYPE;
  84816. ///@brief 雷达场景
  84817. typedef struct tagNET_RADAR_SCENE
  84818. {
  84819. NET_EM_RADAR_SCENE_TYPE emType; // 雷达场景类型
  84820. BYTE byReserved[508]; // 保留
  84821. }NET_RADAR_SCENE;
  84822. ///@brief 结构信息配置
  84823. typedef struct tagNET_RADAR_STRUCTURED
  84824. {
  84825. BOOL bEnable; // 结构信息显示使能
  84826. BYTE byReserved[508]; // 保留
  84827. }NET_RADAR_STRUCTURED;
  84828. ///@brief 雷达发射功率
  84829. typedef struct tagNET_RADAR_CAPACITY
  84830. {
  84831. int nPower; // 功率 1:50米; 2:100米; 3:150米
  84832. BYTE byReserved[508]; // 保留
  84833. }NET_RADAR_CAPACITY;
  84834. ///@brief 雷达信道设置
  84835. typedef struct tagNET_RADAR_RADARCHANNEL
  84836. {
  84837. int nRoute; // 信道选择, 1: 信道1 2:信道2
  84838. BYTE byReserved[508]; // 保留
  84839. }NET_RADAR_RADARCHANNEL;
  84840. ///@brief 雷达控球跟踪画面占比
  84841. typedef struct tagNET_RADAR_TARGETRATIO
  84842. {
  84843. int nRatio; // 画面占比比例倒数
  84844. BYTE byReserved[60]; // 保留
  84845. }NET_RADAR_TARGETRATIO;
  84846. ///@brief 雷达功能设置(对应 NET_EM_CFG_RADAR_RADARPARA)
  84847. typedef struct tagNET_CFG_RADAR_RADARPARA_INFO
  84848. {
  84849. DWORD dwSize; // 结构体大小
  84850. NET_RADAR_SCENE stuScene; // 雷达场景
  84851. NET_RADAR_STRUCTURED stuStructured; // 结构信息配置
  84852. NET_RADAR_CAPACITY stuCapacity; // 雷达发射功率
  84853. NET_RADAR_RADARCHANNEL stuRadarChannel; // 雷达信道设置
  84854. NET_RADAR_TARGETRATIO stuTargetRatio; // 雷达控球跟踪画面占比
  84855. }NET_CFG_RADAR_RADARPARA_INFO;
  84856. ///@brief 远程球机联动使能信息
  84857. typedef struct tagNET_REMOTESDLINK_INFO
  84858. {
  84859. char szSDLinkIP[32]; // 被控制的设备ip
  84860. BOOL bRadarLink; // 联动使能
  84861. BYTE byReserved[476]; // 保留
  84862. }NET_REMOTESDLINK_INFO;
  84863. ///@brief 雷达远程球机联动使能配置(对应 NET_EM_CFG_RADAR_REMOTESDLINK)
  84864. typedef struct tagNET_CFG_RADAR_REMOTESDLINK_INFO
  84865. {
  84866. DWORD dwSize; // 结构体大小
  84867. int nLinkNum; // 联动个数
  84868. NET_REMOTESDLINK_INFO stuLinkInfos[MAX_RADAR_SD_NUM];// 远程球机联动使能信息
  84869. }NET_CFG_RADAR_REMOTESDLINK_INFO;
  84870. ///@brief 远程联动设备信息
  84871. typedef struct tagNET_RADARLINKDEVICE_INFO
  84872. {
  84873. char szSDLinkIP[32]; // 设备ip
  84874. char szVendor[32]; // 设备来源
  84875. int nPort; // 服务端口(已废弃,请使用CLIENT_AddRadarLinkSD)
  84876. char szUserName[128]; // 用户名(已废弃,请使用CLIENT_AddRadarLinkSD)
  84877. char szPassword[32]; // 密码(已废弃,请使用CLIENT_AddRadarLinkSD)
  84878. char szDeviceType[32]; // 设备类型
  84879. char szDeviceName[128]; // 设备名称
  84880. BYTE byReserved[124]; // 保留
  84881. }NET_RADARLINKDEVICE_INFO;
  84882. ///@brief 雷达远程联动设备配置(对应 NET_EM_CFG_RADAR_RADARLINKDEVICE)
  84883. typedef struct tagNET_CFG_RADAR_RADARLINKDEVICE_INFO
  84884. {
  84885. DWORD dwSize; // 结构体大小
  84886. int nDevNum; // 球机个数
  84887. NET_RADARLINKDEVICE_INFO stuDevInfo[MAX_RADAR_SD_NUM]; // 远程设备信息
  84888. }NET_CFG_RADAR_RADARLINKDEVICE_INFO;
  84889. ///@brief OSD 叠加位置
  84890. typedef enum tagNET_EM_OSD_AREA
  84891. {
  84892. NET_EM_OSD_AREA_UNKNOWN, // 未知
  84893. NET_EM_OSD_AREA_LEFT_TOP, // 左上
  84894. NET_EM_OSD_AREA_MID_TOP, // 中上
  84895. NET_EM_OSD_AREA_RIGHT_TOP, // 右上
  84896. NET_EM_OSD_AREA_MID_LEFT, // 中左
  84897. NET_EM_OSD_AREA_MID_RIGHT, // 中右
  84898. NET_EM_OSD_AREA_LEFT_BOTTOM, // 左下
  84899. NET_EM_OSD_AREA_MID_BOTTOM, // 中下
  84900. NET_EM_OSD_AREA_RIGHT_BOTTOM, // 右下
  84901. }NET_EM_OSD_AREA;
  84902. ///@brief 雷达地图OSD叠加配置(对应 NET_EM_CFG_RADAR_MAPOSDPARA)
  84903. typedef struct tagNET_CFG_RADAR_MAPOSDPARA_INFO
  84904. {
  84905. DWORD dwSize; // 结构体大小
  84906. NET_EM_OSD_AREA emOSDArea; // 叠加位置
  84907. }NET_CFG_RADAR_MAPOSDPARA_INFO;
  84908. ///@brief 雷达设备信息
  84909. typedef struct tagNET_RADAR_DEVICE_INFO
  84910. {
  84911. char szProtocalType[32]; // 协议类型
  84912. char szRadarIP[32]; // 雷达设备IP
  84913. char szDeviceType[32]; // 设备类型
  84914. char szDeviceName[32]; // 设备名称
  84915. char szRadarVer[16]; // Radar模块版本号
  84916. char szUserName[128]; // 用户名
  84917. char szPassWord[32]; // 密码
  84918. int nPort; // 服务端口号
  84919. int nLongitude; // 经度, 用整型传输, 放大1000000倍, 小数点后6位有效, 不足6位用0补齐, 例如120125400代表120.1254
  84920. int nLatitude; // 纬度, 用整型传输, 放大1000000倍, 小数点后6位有效, 不足6位用0补齐, 例如120125400代表120.1254
  84921. int nAngle; // 雷达地图朝向角, 放大100倍, 例如112897, 实际是128.97度
  84922. int nDectAngle; // 雷达检测角度,放大100倍显示,例如12897,实际是128.97度
  84923. int nDectDistance; // 雷达检测距离,放大100倍显示,例如16000,表示检测距离是160米
  84924. BYTE bReserved[1016]; // 保留字节
  84925. } NET_RADAR_DEVICE_INFO;
  84926. ///@brief 雷达设备列表配置, 对应配置项NET_EM_CFG_RADAR_DEVLIST
  84927. typedef struct tagNET_CFG_RADAR_DEVLIST_INFO
  84928. {
  84929. DWORD dwSize; // 结构体大小
  84930. UINT nRadarDevNum; // 雷达设备个数, 即stuRadarDevList 数组有效元素个数
  84931. NET_RADAR_DEVICE_INFO stuRadarDevList[10]; // 雷达设备列表信息
  84932. } NET_CFG_RADAR_DEVLIST_INFO;
  84933. ///@brief 雷达规则与球机绑定关系
  84934. typedef struct tagNET_RADAR_RULE_BIND_SD_RELATION
  84935. {
  84936. char szSDIP[32]; // 规则绑定的球机IP
  84937. int nRuleId; // 规则ID
  84938. BYTE bReserved[1020]; // 保留字节
  84939. } NET_RADAR_RULE_BIND_SD_RELATION;
  84940. ///@brief 雷达规则绑定球机配置, 对应配置项NET_EM_CFG_RADAR_RULE_BIND_SD
  84941. typedef struct tagNET_CFG_RADAR_RULE_BIND_SD_INFO
  84942. {
  84943. DWORD dwSize; // 结构体大小
  84944. UINT nRuleSdRelationNum; // 雷达规则与球机绑定个数, 即stuRuleSdRelation 数组的有效元素个数
  84945. NET_RADAR_RULE_BIND_SD_RELATION stuRuleSdRelation[10]; // 雷达规则与球机绑定关系
  84946. } NET_CFG_RADAR_RULE_BIND_SD_INFO;
  84947. ///@brief 雷达屏幕显示规则
  84948. typedef struct tagNET_RADAR_SCREEN_RULE
  84949. {
  84950. char szRuleName[512]; // 屏幕显示的规则名字
  84951. int nDisplayColor; // 屏幕文字颜色,0:红色,1:绿色,2:黄色
  84952. int nDisplayMode; // 屏幕文字显示方式,0:立即显示;1:滚动显示
  84953. int nDisplaySpeed; // 屏幕文字滚动速度,当显示方式为立即显示时速度为0,速度范围在0-9
  84954. char szDisplayText[512]; // 屏幕显示的文本内容
  84955. int nRuleID; // 屏幕显示的规则编号
  84956. char szReserved[1024]; // 保留字节
  84957. } NET_RADAR_SCREEN_RULE;
  84958. ///@brief 雷达屏幕显示规则配置, 对应配置项NET_EM_CFG_RADAR_SCREEN_RULE
  84959. typedef struct tagNET_CFG_RADAR_SCREEN_RULE_INFO
  84960. {
  84961. DWORD dwSize; // 结构体大小
  84962. UINT nScreenRuleNum; // 雷达屏幕显示规则个数, stuScreenRule 数组的有效元素个数
  84963. NET_RADAR_SCREEN_RULE stuScreenRule[10]; // 雷达屏幕显示规则
  84964. } NET_CFG_RADAR_SCREEN_RULE_INFO;
  84965. ///@brief 雷达模块算法参数
  84966. typedef struct tagNET_RADAR_ALGORITHM_PARAM
  84967. {
  84968. char szName[64]; // 参数名
  84969. int nValue; // 参数值, 扩大100倍使用
  84970. }NET_RADAR_ALGORITHM_PARAM;
  84971. ///@brief 雷达模块算法参数配置, 对应配置项 NET_EM_CFG_RADAR_ALGORITHM_PARAM
  84972. typedef struct tagNET_CFG_RADAR_ALGORITHM_PARAM_INFO
  84973. {
  84974. DWORD dwSize; // 结构体大小
  84975. UINT nRadarAlgorithmParamNum; // 雷达模块算法参数个数, stuRadarAlgorithmParam 数组的有效元素个数
  84976. NET_RADAR_ALGORITHM_PARAM stuRadarAlgorithmParam[20]; // 雷达模块算法参数
  84977. } NET_CFG_RADAR_ALGORITHM_PARAM_INFO;
  84978. ///@brief 雷达轨迹上报频率
  84979. typedef struct tagNET_RADAR_TRACK_FREQUENCY
  84980. {
  84981. int nFrequency; // 雷达轨迹上报频率,扩大100倍,单位秒/帧
  84982. }NET_RADAR_TRACK_FREQUENCY;
  84983. ///@brief 雷达轨迹上报频率配置, 对应配置项 NET_EM_CFG_RADAR_TRACK_FREQUENCY
  84984. typedef struct tagNET_CFG_RADAR_TRACK_FREQUENCY_INFO
  84985. {
  84986. DWORD dwSize; // 结构体大小
  84987. NET_RADAR_TRACK_FREQUENCY stuRadarTrackFrequency; // 雷达轨迹上报频率
  84988. } NET_CFG_RADAR_TRACK_FREQUENCY_INFO;
  84989. ///@brief 按时间段来 四个模式总时间段需要等于24小时
  84990. typedef struct tagNET_TRACK_MOVE_MODE_TIMESECTION
  84991. {
  84992. BOOL bEnable; // 该时间段是否生效
  84993. char szTime[32]; // 00:00-00:00 小时:分钟(开始时间)-小时:分钟(结束时间)
  84994. char szReserved[252]; // 保留字节
  84995. }NET_TRACK_MOVE_MODE_TIMESECTION;
  84996. ///@brief 雷球联动跟踪模式选择
  84997. typedef struct tagNET_RADAR_TRACK_MOVE_MODE_INFO
  84998. {
  84999. int nMode; // -1:未知 0:默认 1:智能开启(事件上报、抓图、目标检测) 2:智能关闭(只抓图) 3:时间段 4:距离
  85000. BOOL bAllDayUse; // TRUE:全天使用该模式 FALSE:全天不使用该模式
  85001. NET_TRACK_MOVE_MODE_TIMESECTION stuTimeSection; // 按时间段来 四个模式总时间段需要等于24小时
  85002. int nDayDistance; // 距离模式下,白天生效距离,单位米
  85003. int nNightDistance; // 距离模式下,晚上生效距离,单位米
  85004. BOOL bEnable; // 雷球联动跟踪模式选择使能
  85005. BOOL bRelayTrack; // 接力跟踪使能
  85006. char szReserved[1024]; // 保留字节
  85007. }NET_RADAR_TRACK_MOVE_MODE_INFO;
  85008. ///@brief 雷球联动跟踪模式选择配置, 对应配置项 NET_EM_CFG_RADAR_TRACK_MOVE_MODE
  85009. typedef struct tagNET_CFG_CFG_RADAR_TRACK_MOVE_MODE_INFO
  85010. {
  85011. DWORD dwSize; // 结构体大小
  85012. int nTrackMoveModeNum; // 雷球联动跟踪模式选择个数
  85013. NET_RADAR_TRACK_MOVE_MODE_INFO stuTrackMoveMode[10]; // 雷球联动跟踪模式选择
  85014. } NET_CFG_CFG_RADAR_TRACK_MOVE_MODE_INFO;
  85015. ///@brief Mini雷达探测参数配置, 对应配置项 NET_EM_CFG_MINIRADAR_DECT_PARAM
  85016. typedef struct tagNET_CFG_MINIRADAR_DECT_PARAM_INFO
  85017. {
  85018. DWORD dwSize; // 结构体大小
  85019. UINT nSensitivity; // 灵敏度
  85020. UINT nReportInterval; // 上报间隔,单位秒
  85021. }NET_CFG_MINIRADAR_DECT_PARAM_INFO;
  85022. ///@brief 呼吸异常报警配置
  85023. typedef struct tagNET_CFG_MINIRADAR_BREATHE
  85024. {
  85025. BOOL bEnable; // 使能开关
  85026. UINT nMax; // 合理范围的上限值,大于这个值报警
  85027. UINT nMin; // 合理范围的下限值,小于这个值报警
  85028. UINT nDelay; // 单位秒,报警延迟时间
  85029. UINT nAlarmOutMask; // 关联报警输出端口,每一bit代表一路报警输出
  85030. char szReserved[1020]; // 保留字节
  85031. }NET_CFG_MINIRADAR_BREATHE;
  85032. ///@brief 心率呼吸异常报警
  85033. typedef struct tagNET_CFG_MINIRADAR_HEATERATE
  85034. {
  85035. BOOL bEnable; // 使能开关
  85036. UINT nMax; // 合理范围的上限值,大于这个值报警
  85037. UINT nMin; // 合理范围的下限值,小于这个值报警
  85038. UINT nDelay; // 单位秒, 报警延迟时间
  85039. UINT nAlarmOutMask; // 关联报警输出端口,每一bit代表一路报警输出
  85040. char szReserved[1020]; // 保留字节
  85041. }NET_CFG_MINIRADAR_HEATERATE;
  85042. ///@brief 在/离床报警
  85043. typedef struct tagNET_CFG_MINIRADAR_AFBSTATUS
  85044. {
  85045. BOOL bEnable; // 使能开关
  85046. UINT nAFBFlag; // 0表示离床报警 1表示在床报警
  85047. UINT nDelay; // 单位秒, 报警延迟时间
  85048. UINT nAlarmOutMask; // 关联报警输出端口,每一bit代表一路报警输出
  85049. char szReserved[1024]; // 保留字节
  85050. }NET_CFG_MINIRADAR_AFBSTATUS;
  85051. ///@brief 跌倒异常报警
  85052. typedef struct tagNET_CFG_MINIRADAR_FALLALARM
  85053. {
  85054. BOOL bEnable; // 使能开关
  85055. UINT nDelay; // 单位秒, 报警延迟时间
  85056. UINT nAlarmOutMask; // 关联报警输出端口,每一bit代表一路报警输出
  85057. char szReserved[1020]; // 保留字节
  85058. }NET_CFG_MINIRADAR_FALLALARM;
  85059. ///@brief 人数异常报警
  85060. typedef struct tagNET_CFG_MINIRADAR_NUMALARM
  85061. {
  85062. BOOL bEnable; // 使能开关
  85063. UINT nMax; // 合理范围的上限值,大于这个值报警
  85064. UINT nMin; // 合理范围的下限值,小于这个值报警
  85065. UINT nDelay; // 单位秒,报警延迟时间
  85066. UINT nAlarmOutMask; // 关联报警输出端口,每一bit代表一路报警输出
  85067. char szReserved[1020]; // 保留字节
  85068. }NET_CFG_MINIRADAR_NUMALARM;
  85069. ///@brief 驻留报警
  85070. typedef struct tagNET_CFG_MINIRADAR_RESIDENTALARM
  85071. {
  85072. BOOL bEnable; // 使能开关
  85073. UINT nTime; // 单位秒,驻留时间,超过该时间就报警
  85074. UINT nDelay; // 单位秒,报警输出延迟时间
  85075. UINT nAlarmOutMask; // 关联报警输出端口,每一bit代表一路报警输出
  85076. char szReserved[1024]; // 保留字节
  85077. }NET_CFG_MINIRADAR_RESIDENTALARM;
  85078. ///@brief Mini雷达报警配置, 对应配置项 NET_EM_CFG_MINIRADAR_INDOOR_ALARM
  85079. typedef struct tagNET_CFG_MINIRADAR_INDOOR_ALARM_INFO
  85080. {
  85081. DWORD dwSize; // 结构体大小
  85082. NET_CFG_MINIRADAR_BREATHE stuBreathe; // 呼吸异常报警配置
  85083. NET_CFG_MINIRADAR_HEATERATE stuHeateRate; // 心率呼吸异常报警
  85084. NET_CFG_MINIRADAR_AFBSTATUS stuAFBStatus; // 在/离床报警
  85085. NET_CFG_MINIRADAR_FALLALARM stuFallAlarm; // 跌倒异常报警
  85086. NET_CFG_MINIRADAR_NUMALARM stuNumAlarm; // 人数异常报警
  85087. NET_CFG_MINIRADAR_RESIDENTALARM stuResidentAlarm; // 驻留报警
  85088. }NET_CFG_MINIRADAR_INDOOR_ALARM_INFO;
  85089. ///@brief Mini雷达角度补偿配置, 对应配置项 NET_EM_CFG_MINIRADAR_COMP_INFO
  85090. typedef struct tagNET_CFG_MINIRADAR_COMP_INFO
  85091. {
  85092. DWORD dwSize; // 结构体大小
  85093. int nRollAngle; // 横滚角,单位度,扩大100倍
  85094. int nPitchAngle; // 俯仰角,单位度,扩大100倍
  85095. int nYawAngle; // 横滚角,单位度,扩大100倍
  85096. }NET_CFG_MINIRADAR_COMP_INFO;
  85097. ///@brief Mini雷达安装信息配置, 对应配置项 NET_EM_CFG_MINIRADAR_INSTALL_INFO
  85098. typedef struct tagNET_CFG_MINIRADAR_INSTALL_INFO
  85099. {
  85100. DWORD dwSize; // 结构体大小
  85101. UINT nInstallType; // 安装方式(室内雷达使用) 0:未知, 1:壁装, 2:墙角装
  85102. UINT nInstallHeigh; // 安装高度;单位米,扩大100倍
  85103. int nInstallAngle; // 安装角度;单位度,扩大100倍
  85104. }NET_CFG_MINIRADAR_INSTALL_INFO;
  85105. ///@brief Mini雷达探测区域配置, 对应配置项 NET_EM_CFG_MINIRADAR_REGION_DETECT
  85106. typedef struct tagNET_CFG_MINIRADAR_REGION_DETECT_INFO
  85107. {
  85108. DWORD dwSize; // 结构体大小
  85109. UINT nFrontDecDis; // 前方探测距离,单位米,扩大100倍
  85110. UINT nBehindDecDis; // 前方探测距离,单位米,扩大100倍
  85111. UINT nLeftDecDis; // 左侧探测距离,单位米,扩大100倍
  85112. UINT nRightDecDis; // 右侧探测距离,单位米,扩大100倍
  85113. }NET_CFG_MINIRADAR_REGION_DETECT_INFO;
  85114. ///@brief 外接广告机配置信息
  85115. typedef struct tagNET_MINIRADAR_SCREEN_CONFIG
  85116. {
  85117. char szStatus[64]; // 状态名称
  85118. char szUIPrompts[1024]; // UI提示语
  85119. UINT nMax; // 当前区间最大值
  85120. UINT nMin; // 当前区间最小值
  85121. char szResvered[1024]; // 保留字段
  85122. }NET_MINIRADAR_SCREEN_CONFIG;
  85123. ///@brief Mini雷达外接广告机专配置, 对应配置项 NET_EM_CFG_MINIRADAR_SCREEN_CONFIG
  85124. typedef struct tagNET_CFG_MINIRADAR_SCREEN_CONFIG_INFO
  85125. {
  85126. DWORD dwSize; // 结构体大小
  85127. int nConfigNum; // 广告机配置个数
  85128. NET_MINIRADAR_SCREEN_CONFIG stuConfig[6]; // 广告机配置
  85129. }NET_CFG_MINIRADAR_SCREEN_CONFIG_INFO;
  85130. /////////////////////////////雷球联动接口 end////////////////////////////////
  85131. /////////////////////////////客流统计服务接口 start/////////////////////////////
  85132. #define MAX_ACTIVITY_ANALYSE_GROUP 128 // 统计横坐标个数数据分组的最大个数
  85133. ///@brief 业务类型
  85134. typedef enum tagNET_EM_VS_TYPE
  85135. {
  85136. NET_EM_VS_TYPE_ACTIVITY_ANALYSE = 0, // 活跃度分析实时数据,对应 NET_VIDEOSTAT_SUMMARY_STEREO
  85137. NET_EM_VS_TYPE_CROWD_DISTRI_MAP = 1, // 人群分布图报表实时数据,对应 NET_VIDEOSTAT_CROWD_DISTRI_MAP
  85138. NET_EM_VS_TYPE_INTELLIG_PARKING = 3, // 智能停车实时数据,对应 NET_VIDEOSTAT_SUMMARY_INTELLIPARKING
  85139. NET_EM_VS_TYPE_HEAD_LIFT_DETECTION = 4, // 抬头检测周期上报数据, 对应 NET_VIDEOSTAT_SUMMARY_HEAD_LIFT_DETECTION
  85140. NET_EM_VS_TYPE_TANK_CAPACITY_DETECTION = 5, // 贮柜储量检测实时上报数据, 对应 NET_VIDEOSTAT_SUMMARY_TANK_CAPACITY_DETECTION
  85141. }NET_EM_VS_TYPE;
  85142. ///@brief 数据类型
  85143. typedef enum tagNET_EM_VS_DATA_TYPE
  85144. {
  85145. NET_EM_VS_DATA_TYPE_X = 0, // 数据是当前人数的横坐标
  85146. }NET_EM_VS_DATA_TYPE;
  85147. ///@brief 目标实时检测位置统计
  85148. typedef struct tagNET_VIDEOSTAT_INSIDESUBTOTAL_INFO
  85149. {
  85150. int nPosXs[32]; // 当前时间点上报人数的横坐标集,坐标体系是1024体系,数组每个元素的范围为[0, 1023]
  85151. int nPoxXsNum; // nPoxXs数组有效数据个数
  85152. BYTE byReserved[988]; // 预留
  85153. }NET_VIDEOSTAT_INSIDESUBTOTAL_INFO;
  85154. ///@brief 立体行为-视频统计摘要信息
  85155. typedef struct tagNET_VIDEOSTAT_SUMMARY_STEREO
  85156. {
  85157. NET_TIME_EX UTC; // 时间
  85158. int nChannelID; // 通道号
  85159. int nPtzPresetId; // 预置点编号
  85160. NET_EM_VS_DATA_TYPE emType; // 数据类型
  85161. NET_VIDEOSTAT_INSIDESUBTOTAL_INFO stuInsideSubtotal; // 目标实时检测位置统计
  85162. BYTE reserved[1024]; // 保留字节
  85163. } NET_VIDEOSTAT_SUMMARY_STEREO;
  85164. ///@brief 统计区报表数据列表
  85165. typedef struct tagNET_PEOPLE_REGION_INFO
  85166. {
  85167. char szRegionName[128]; // 区域名称
  85168. UINT nRegionPeopleNum; // 当前时间点统计区内人数
  85169. BYTE reserved[1020]; // 保留字节
  85170. }NET_PEOPLE_REGION_INFO;
  85171. ///@brief 人群分布图报表实时数据
  85172. typedef struct tagNET_VIDEOSTAT_CROWD_DISTRI_MAP
  85173. {
  85174. NET_TIME_EX UTC; // 时间
  85175. UINT nChannelID; // 通道号
  85176. UINT nPtzPresetId; // 预置点编号
  85177. UINT nRegionNum; // 统计区个数
  85178. NET_PEOPLE_REGION_INFO stuRegionList[16]; // 统计区列表, 实际个数和nRegionNum保持一致
  85179. BYTE reserved[1024]; // 保留字节
  85180. }NET_VIDEOSTAT_CROWD_DISTRI_MAP;
  85181. ///@brief 智能停车数据类型
  85182. typedef enum tagNET_EM_INTELLIPARKING_DATA_TYPE
  85183. {
  85184. NET_EM_INTELLIPARKING_DATA_TYPE_PLANAREA = 0, // 数据是规划式停车场车位ID的使用情况,PlanArea字段有效
  85185. NET_EM_INTELLIPARKING_DATA_TYPE_OPENAREA, // 数据是开放式停车场停车信息,OpenArea字段有效
  85186. }NET_EM_INTELLIPARKING_DATA_TYPE;
  85187. ///@brief 当前时间点上报车位ID的使用情况
  85188. typedef struct tagNET_INTELLIPARKING_PLANAREA_IDINFO
  85189. {
  85190. int nID; // 车位对应的ID
  85191. UINT nIsUsed; // 车位ID对应的使用情况
  85192. BYTE reserved[512]; // 保留字节
  85193. } NET_INTELLIPARKING_PLANAREA_IDINFO;
  85194. ///@brief 规划式停车场车位信息统计
  85195. typedef struct tagNET_INTELLIPARKING_PLANAREA_INFO
  85196. {
  85197. int nIDInfoNum; // 当前时间点上报车位ID的使用情况个数
  85198. NET_INTELLIPARKING_PLANAREA_IDINFO stIDInfo[32]; // 当前时间点上报车位ID的使用情况集
  85199. BYTE reserved[512]; // 保留字节
  85200. } NET_INTELLIPARKING_PLANAREA_INFO;
  85201. ///@brief 规划式停车场车位信息统计
  85202. typedef struct tagNET_INTELLIPARKING_OPENAREA_INFO
  85203. {
  85204. int nID; // 车位对应的ID
  85205. int nParkingNum; // 停车场中停车数
  85206. BYTE reserved[512]; // 保留字节
  85207. } NET_INTELLIPARKING_OPENAREA_INFO;
  85208. ///@brief 立体行为-智能停车实时数据
  85209. typedef struct tagNET_VIDEOSTAT_SUMMARY_INTELLIPARKING
  85210. {
  85211. NET_TIME_EX UTC; // 时间
  85212. int nChannelID; // 通道号
  85213. int nPtzPresetId; // 预置点编号
  85214. NET_EM_INTELLIPARKING_DATA_TYPE emType; // 数据类型
  85215. NET_INTELLIPARKING_PLANAREA_INFO stPlanArea; // 规划式停车场车位信息统计,当emType为NET_EM_INTELLIPARKING_DATA_TYPE_PLANAREA时有效
  85216. NET_INTELLIPARKING_OPENAREA_INFO stOpenArea; // 开放式停车场信息统计,当emType为NET_EM_INTELLIPARKING_DATA_TYPE_OPENAREA时有效
  85217. BYTE reserved[1024]; // 保留字节
  85218. } NET_VIDEOSTAT_SUMMARY_INTELLIPARKING;
  85219. ///@brief 抬头检测周期上报的回调
  85220. typedef struct tagNET_VIDEOSTAT_SUMMARY_HEAD_LIFT_DETECTION
  85221. {
  85222. int nChannelID; // 通道号
  85223. int nPtzPresetId; // 预置点编号
  85224. NET_TIME_EX UTC; // 时间
  85225. UINT nFaceCount; // 检测到的抬头人数
  85226. UINT nHumanCount; // 检测到的总人数
  85227. char szReserved[1024]; // 保留字节
  85228. } NET_VIDEOSTAT_SUMMARY_HEAD_LIFT_DETECTION;
  85229. ///@brief 贮柜储量检测实时上报的回调
  85230. typedef struct tagNET_VIDEOSTAT_SUMMARY_TANK_CAPACITY_DETECTION
  85231. {
  85232. int nChannelID; // 通道号
  85233. EM_TANK_STATUS emTankStatus; // 贮柜当前状态
  85234. NET_TIME_EX stuUTC; // 时间
  85235. UINT nCurrentRatio; // 用料当前占比(百分比)
  85236. char szReserved[1024]; // 保留字节
  85237. } NET_VIDEOSTAT_SUMMARY_TANK_CAPACITY_DETECTION;
  85238. ///@brief 立体行为-视频统计信息回调函数原形,lAttachHandle 是 CLIENT_AttachVideoStatistics返回值
  85239. typedef void (CALLBACK *fVideoStatisticsInfoCallBack) (LLONG lAttachHandle, NET_EM_VS_TYPE emType, void* pBuf, DWORD dwBufLen, LDWORD dwUser);
  85240. ///@brief CLIENT_AttachVideoStatistics 输入参数
  85241. typedef struct tagNET_IN_ATTACH_VIDEO_STATISTICS
  85242. {
  85243. DWORD dwSize; // 结构体大小
  85244. int nChannelID; // 通道号
  85245. fVideoStatisticsInfoCallBack cbCallBack; // 用户回调函数
  85246. LDWORD dwUser; // 用户数据
  85247. NET_EM_VS_TYPE emType; // 业务类型
  85248. }NET_IN_ATTACH_VIDEO_STATISTICS;
  85249. ///@brief CLIENT_AttachVideoStatistics 输出参数
  85250. typedef struct tagNET_OUT_ATTACH_VIDEO_STATISTICS
  85251. {
  85252. DWORD dwSize; // 结构体大小
  85253. }NET_OUT_ATTACH_VIDEO_STATISTICS;
  85254. ///@brief 活跃度分析数据
  85255. typedef struct tagNET_ACTIVITY_ANALYSE_DATA
  85256. {
  85257. BYTE byVersion; // 版本号
  85258. BYTE byChannelID; // 通道号
  85259. BYTE byPtzPresetID; // 预置点
  85260. BYTE byReserved; // 预留
  85261. DWORD dwNumOfBranches; // 此次查询数据归纳的总分割数
  85262. DWORD dwDatas[MAX_ACTIVITY_ANALYSE_GROUP]; // 统计横坐标个数数据,
  85263. BYTE byReserved1[1024]; // 预留字段
  85264. }NET_ACTIVITY_ANALYSE_DATA;
  85265. ///@brief 活跃度数据查询条件
  85266. typedef struct tagNET_VIDEOSTAT_DATA_INFO
  85267. {
  85268. int nType; // 0:查询教师活跃区域图
  85269. int nPartitionNum; // 查询结果分割的区域数,最大128
  85270. BYTE byReserved[1024]; // 预留字段
  85271. }NET_VIDEOSTAT_DATA_INFO;
  85272. ///@brief 视频统计数据查询条件
  85273. typedef struct tagNET_GET_VIDEO_STATISTICS_DATA_CONDITION
  85274. {
  85275. int nChannelID; // 通道号
  85276. int nPtzPresetId; // 预置点编号
  85277. NET_TIME stuStartTime; // 起始时间
  85278. NET_TIME stuEndTime; // 结束时间
  85279. NET_VIDEOSTAT_DATA_INFO stuVideoStatDataInfo; // 业务相关条件
  85280. }NET_GET_VIDEO_STATISTICS_DATA_CONDITION;
  85281. ///@brief CLIENT_GetVideoStatisticsData 输入参数
  85282. typedef struct tagNET_IN_GET_VIDEO_STATISTICS_DATA
  85283. {
  85284. DWORD dwSize; // 结构体大小
  85285. NET_GET_VIDEO_STATISTICS_DATA_CONDITION stuCondition; // 查询条件
  85286. }NET_IN_GET_VIDEO_STATISTICS_DATA;
  85287. ///@brief CLIENT_GetVideoStatisticsData 输出参数
  85288. typedef struct tagNET_OUT_GET_VIDEO_STATISTICS_DATA
  85289. {
  85290. DWORD dwSize; // 结构体大小
  85291. NET_ACTIVITY_ANALYSE_DATA stuData; // 数据内容
  85292. }NET_OUT_GET_VIDEO_STATISTICS_DATA;
  85293. ///@brief 抬头检测数据查询条件
  85294. typedef struct tagNET_GET_HEAD_LIFT_DATA_CONDITION
  85295. {
  85296. int nChannelID; // 通道号
  85297. int nPtzPresetId; // 预置点编号
  85298. char szReserved[1024]; // 保留字节
  85299. }NET_GET_HEAD_LIFT_DATA_CONDITION;
  85300. ///@brief CLIENT_GetVideoStatisticsHeadLiftData 输入参数
  85301. typedef struct tagNET_IN_GET_VIDEO_STATISTICS_HEAD_LIFT_DATA
  85302. {
  85303. DWORD dwSize; // 结构体大小
  85304. NET_GET_HEAD_LIFT_DATA_CONDITION stuCondition; // 查询条件
  85305. }NET_IN_GET_VIDEO_STATISTICS_HEAD_LIFT_DATA;
  85306. ///@brief CLIENT_GetVideoStatisticsHeadLiftData 输出参数
  85307. typedef struct tagNET_OUT_GET_VIDEO_STATISTICS_HEAD_LIFT_DATA
  85308. {
  85309. DWORD dwSize; // 结构体大小
  85310. UINT nFaceCount; // 检测到的抬头人数
  85311. UINT nHumanCount; // 检测到的总人数
  85312. }NET_OUT_GET_VIDEO_STATISTICS_HEAD_LIFT_DATA;
  85313. ///@brief 订阅客流统计服务实时数据
  85314. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachVideoStatistics(LLONG lLoginID, const NET_IN_ATTACH_VIDEO_STATISTICS* pstInParam, NET_OUT_ATTACH_VIDEO_STATISTICS* pstOutParam, int nWaitTime);
  85315. ///@brief 取消订阅客流统计服务实时数据
  85316. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVideoStatistics(LLONG lAttachHandle);
  85317. ///@brief 查询活跃度统计数据
  85318. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoStatisticsData(LLONG lLoginID, const NET_IN_GET_VIDEO_STATISTICS_DATA* pstInParam, NET_OUT_GET_VIDEO_STATISTICS_DATA* pstOutParam, int nWaitTime);
  85319. ///@brief 查询抬头检测数据
  85320. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoStatisticsHeadLiftData(LLONG lLoginID, const NET_IN_GET_VIDEO_STATISTICS_HEAD_LIFT_DATA* pstuInParam, NET_OUT_GET_VIDEO_STATISTICS_HEAD_LIFT_DATA* pstuOutParam, int nWaitTime);
  85321. /////////////////////////////客流统计服务接口 end/////////////////////////////
  85322. #define NET_CFG_MAX_CTRLTYPE_NUM 16 // 最大道闸控制方式
  85323. #define NET_MAX_ALL_SNAP_CAR_COUNT 32 // 所有车开闸种类个数
  85324. ///@brief 道闸控制方式枚举
  85325. typedef enum tagNET_EM_CFG_TRAFFICSTROBE_CTRTYPE
  85326. {
  85327. NET_EM_CFG_CTRTYPE_UNKNOWN = 0, // 未定义
  85328. NET_EM_CFG_CTRTYPE_TRAFFICTRUSTLIST, // 通过允许名单控制是否开闸;只有允许名单内车辆才开闸
  85329. NET_EM_CFG_CTRTYPE_ALLSNAPCAR, // 针对所有抓拍车辆都开闸
  85330. NET_EM_CFG_CTRTYPE_ORDER, // 通过上层下发的命令开闸
  85331. } NET_EM_CFG_TRAFFICSTROBE_CTRTYPE;
  85332. ///@brief 所有车开闸种类
  85333. typedef enum tagNET_EM_CFG_ALL_SNAP_CAR
  85334. {
  85335. NET_EM_CFG_ALL_SNAP_CAR_UNKNOWN, // 未知开闸种类
  85336. NET_EM_CFG_ALL_SNAP_CAR_PLATE, // 所有有牌车车辆
  85337. NET_EM_CFG_ALL_SNAP_CAR_NOPLATE, // 所有无牌车车辆
  85338. }NET_EM_CFG_ALL_SNAP_CAR;
  85339. ///@brief 道闸常开配置
  85340. typedef struct tagNET_CFG_STATIONARY_OPEN
  85341. {
  85342. BOOL bEnable; // 使能
  85343. NET_CFG_TIME_SCHEDULE stTimeShecule; // 常开模式执行时间段
  85344. }NET_CFG_STATIONARY_OPEN;
  85345. ///@brief 道闸配置信息(对应 NET_EM_CFG_TRAFFICSTROBE 命令)
  85346. typedef struct tagNET_CFG_TRAFFICSTROBE_INFO
  85347. {
  85348. DWORD dwSize; // 结构体大小
  85349. BOOL bEnable; // 使能
  85350. int nCtrlTypeCount; // 道闸控制方式个数
  85351. NET_EM_CFG_TRAFFICSTROBE_CTRTYPE emCtrlType[NET_CFG_MAX_CTRLTYPE_NUM]; // 道闸控制方式
  85352. int nAllSnapCarCount; // 所有车开闸种类个数
  85353. NET_EM_CFG_ALL_SNAP_CAR emAllSnapCar[NET_MAX_ALL_SNAP_CAR_COUNT]; // 所有车开闸种类
  85354. NET_ALARM_MSG_HANDLE stuEventHandler; // 开启道闸联动参数
  85355. NET_ALARM_MSG_HANDLE stuEventHandlerClose; // 关闭道闸联动参数
  85356. char szOrderIP[DH_MAX_IPADDR_EX_LEN]; // 负责命令开闸的平台IP
  85357. NET_EM_CFG_TRAFFICSTROBE_CTRTYPE emCtrlTypeOnDisconnect; // 平台IP与设备断开连接后,设备采用的开闸方式
  85358. NET_CFG_STATIONARY_OPEN stuStationaryOpen; // 道闸常开配置
  85359. }NET_CFG_TRAFFICSTROBE_INFO;
  85360. ///@brief CLIENT_DialRecognitionAddTask接口入参
  85361. typedef struct tagNET_IN_DIALRECOGNITION_ADD_TASK
  85362. {
  85363. DWORD dwSize; // 结构体大小
  85364. unsigned int nChannel; // 通道号
  85365. unsigned int nPresetID; // 预置点ID,如果是普通IPC,只能设置为0,否则添加任务会失败
  85366. }NET_IN_DIALRECOGNITION_ADD_TASK;
  85367. ///@brief 添加结果
  85368. typedef enum tagEM_ADD_RESULT
  85369. {
  85370. EM_ADD_RESULT_UNKNOWN, // 未知错误
  85371. EM_ADD_RESULT_SUCCESS, // 添加成功
  85372. EM_ADD_RESULT_PRESET_ERROR, // 预置点错误
  85373. }EM_ADD_RESULT;
  85374. ///@brief CLIENT_DialRecognitionAddTask接口出参
  85375. typedef struct tagNET_OUT_DIALRECOGNITION_ADD_TASK
  85376. {
  85377. DWORD dwSize; // 结构体大小
  85378. EM_ADD_RESULT emAddResult; // 添加结果
  85379. char szTaskID[MAX_TASK_ID_LEN]; // 任务ID,只有在emAddResult为EM_ADD_RESULT_SUCCESS时有效
  85380. }NET_OUT_DIALRECOGNITION_ADD_TASK;
  85381. ///@brief 添加仪表识别任务
  85382. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DialRecognitionAddTask(LLONG lLoginID, const NET_IN_DIALRECOGNITION_ADD_TASK* pInParam, NET_OUT_DIALRECOGNITION_ADD_TASK* pOutParam, int nWaitTime);
  85383. ///@brief 任务业务类型
  85384. typedef enum tagEM_DIAL_RECOGNITION_TASK_TYPE
  85385. {
  85386. EM_DIAL_RECOGNITION_TASK_TYPE_UNKNOWN, // 未知
  85387. EM_DIAL_RECOGNITION_TASK_TYPE_DIALCHECK, // 仪表识别
  85388. EM_DIAL_RECOGNITION_TASK_TYPE_QRCODECHECK, // 二维码识别
  85389. } EM_DIAL_RECOGNITION_TASK_TYPE;
  85390. ///@brief CLIENT_DialRecognitionAddTaskEx接口入参
  85391. typedef struct tagNET_IN_DIALRECOGNITION_ADD_TASK_EX
  85392. {
  85393. DWORD dwSize; // 结构体大小
  85394. unsigned int nChannel; // 通道号
  85395. unsigned int nPresetID; // 预置点ID,如果是普通IPC,只能设置为0,否则添加任务会失败
  85396. EM_DIAL_RECOGNITION_TASK_TYPE emType; // 任务业务类型
  85397. }NET_IN_DIALRECOGNITION_ADD_TASK_EX;
  85398. ///@brief CLIENT_DialRecognitionAddTaskEx接口出参
  85399. typedef struct tagNET_OUT_DIALRECOGNITION_ADD_TASK_EX
  85400. {
  85401. DWORD dwSize; // 结构体大小
  85402. EM_ADD_RESULT emAddResult; // 添加结果
  85403. char szTaskID[MAX_TASK_ID_LEN]; // 任务ID,只有在emAddResult为EM_ADD_RESULT_SUCCESS时有效
  85404. }NET_OUT_DIALRECOGNITION_ADD_TASK_EX;
  85405. ///@brief 按任务类型添加仪表识别任务
  85406. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DialRecognitionAddTaskEx(LLONG lLoginID, const NET_IN_DIALRECOGNITION_ADD_TASK_EX* pInParam, NET_OUT_DIALRECOGNITION_ADD_TASK_EX* pOutParam, int nWaitTime);
  85407. ///@brief 当前任务处理状态
  85408. typedef enum tagEM_CURRENT_TASK_STATE
  85409. {
  85410. EM_CURRENT_TASK_STATE_UNKNWON, // 未知
  85411. EM_CURRENT_TASK_STATE_FAILED, // 任务处理失败
  85412. EM_CURRENT_TASK_STATE_SUCCEEDED, // 任务处理成功
  85413. }EM_CURRENT_TASK_STATE;
  85414. ///@brief 错误码
  85415. typedef enum tagEM_ERROR_CODE_TYPE
  85416. {
  85417. EM_ERROR_CODE_TYPE_UNKNOWN, // 未知错误
  85418. EM_ERROR_CODE_TYPE_NORMAL, // 正常
  85419. EM_ERROR_CODE_TYPE_GET_PICTURE_ERROR, // 图片获取失败
  85420. EM_ERROR_CODE_TYPE_ALGO_ERROR, // 算法错误
  85421. }EM_ERROR_CODE_TYPE;
  85422. ///@brief 节点信息
  85423. typedef struct tagNET_NODE_INFO
  85424. {
  85425. unsigned int nChannel; // 视频通道号
  85426. unsigned int nPresetID; // 预置点ID
  85427. EM_INSTRUMENT_TYPE emInstrumentType; // 仪表类型
  85428. NET_IMAGE_INFO stuImgaeInfo[MAX_IMAGE_INFO_NUM]; // 图片信息
  85429. int nRetImageInfoNum; // 返回的图片信息个数
  85430. char szDialResult[MAX_DIAL_RESULT_LEN]; // 分析结果字符串
  85431. }NET_NODE_INFO;
  85432. ///@brief 节点类型
  85433. typedef enum tagEM_NODE_INFO_TYPE
  85434. {
  85435. EM_NODE_INFO_TYPE_UNKNOWN, // 未知
  85436. EM_NODE_INFO_TYPE_DIAL_RECOGNITION, // 仪表识别
  85437. EM_NODE_INFO_TYPE_ELECTRIC_FAULT_DETECT, // 仪表类缺陷检测
  85438. EM_NODE_INFO_TYPE_QRCODE_CHECK, // 二维码检测
  85439. } EM_NODE_INFO_TYPE;
  85440. ///@brief 仪表类缺陷检测
  85441. typedef struct tagNET_ELECTRIC_FAULT_DETECT_INFO
  85442. {
  85443. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  85444. UINT nChannel; // 视频通道号
  85445. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  85446. double PTS; // 时间戳(单位是毫秒)
  85447. NET_TIME_EX UTC; // 事件发生的时间
  85448. int nEventID; // 事件ID
  85449. UINT nPresetID; // 预置点ID
  85450. int nEnableRulesNum; // 设备所使能的检测规则个数
  85451. ELECTRIC_FAULT_ENABLE_RULES emEnableRules[16]; // 对应设备所使能的检测规则
  85452. int nAirborneDetectNum; // 挂空悬浮物检测异常输出结果个数
  85453. NET_AIRBORNE_DETECT stuAirborneDetectInfo[8]; // 挂空悬浮物检测异常输出结果
  85454. int nNestDetectNum; // 鸟巢检测结果个数
  85455. NET_NEST_DETECT stuNestDetectInfo[8]; // 鸟巢检测结果
  85456. int nDialDetectNum; // 表盘检测结果个数
  85457. NET_DIAL_DETECT stuDialDetectInfo[8]; // 表盘检测结果
  85458. int nLeakageDetectNum; // 渗漏检测结果个数
  85459. NET_LEAKAGE_DETECT stuLeakageDetectInfo[8]; // 渗漏检测结果
  85460. int nDoorDetectNum; // 箱门检测结果个数
  85461. NET_DOOR_DETECT stuDoorDetectInfo[8]; // 箱门检测结果
  85462. int nRespiratorDetectNum; // 呼吸器检测个数
  85463. NET_RESPIRATOR_DETECT stuRespiratorDetectInfo[8]; // 呼吸器检测结果
  85464. SCENE_IMAGE_INFO stuSceneImageInfo; // 大图
  85465. int nSmokingDetectNum; // 吸烟检测结果个数
  85466. NET_SMOKING_DETECT stuSmokingDetectInfo[8]; // 吸烟检测结果
  85467. int nInsulatorDetectNum; // 绝缘子检测结果个数
  85468. NET_INSULATOR_DETECT stuInsulatorDetectInfo[8]; // 绝缘子检测结果
  85469. int nCoverPlateDetectNum; // 盖板检测结果个数
  85470. NET_COVER_PLATE_DETECT stuCoverPlateDetectInfo[8]; // 盖板检测结果
  85471. int nPressingPlateDetectNum; // 压板检测结果个数
  85472. NET_PRESSING_PLATE_DETECT stuPressingPlateDetectInfo[8]; // 压板检测结果
  85473. BYTE bReserved[1024]; // 预留字段
  85474. } NET_ELECTRIC_FAULT_DETECT_INFO;
  85475. ///@brief 二维码检测信息
  85476. typedef struct tagNET_QRCODE_CHECK_INFO
  85477. {
  85478. EM_CLASS_TYPE emClassType; // 智能事件所属大类
  85479. UINT nChannel; // 视频通道号
  85480. char szName[DH_EVENT_NAME_LEN]; // 事件名称
  85481. double PTS; // 时间戳(单位是毫秒)
  85482. NET_TIME_EX UTC; // 事件发生的时间
  85483. int nEventID; // 事件ID
  85484. UINT nPresetID; // 预置点ID
  85485. BYTE byReserved1[4]; // 对齐
  85486. char szQRCode[512]; // 二维码字符串
  85487. BYTE byReserved[1024]; // 预留字节
  85488. } NET_QRCODE_CHECK_INFO;
  85489. ///@brief 任务状态结果
  85490. typedef struct tagNET_TASK_STATE
  85491. {
  85492. char szTaskID[MAX_TASK_ID_LEN]; // 任务ID
  85493. EM_CURRENT_TASK_STATE emTaskState; // 当前任务处理状态
  85494. EM_ERROR_CODE_TYPE emErrorCode; // 错误码
  85495. NET_NODE_INFO stuNodeInfo; // 节点信息,节点类型仅仅为EM_NODE_INFO_TYPE_DIAL_RECOGNITION, 此字段有效,且与pstuNodeInfo的内容相同
  85496. // 用此字段为旧平台软件使用, 新的平台软件统一用pstuNodeInfo
  85497. EM_NODE_INFO_TYPE emNodeInfoType; // 节点类型
  85498. void* pstuNodeInfo; // 节点类型为EM_NODE_INFO_TYPE_DIAL_RECOGNITION, 用NET_NODE_INFO
  85499. // 节点类型为EM_NODE_INFO_TYPE_ELECTRIC_FAULT_DETECT, 用NET_ELECTRIC_FAULT_DETECT_INFO
  85500. // 节点类型为EM_NODE_INFO_TYPE_QRCODE_CHECK, 用NET_QRCODE_CHECK_INFO
  85501. }NET_TASK_STATE;
  85502. ///@brief 任务状态结果回调函数原形,lAttachHandle 是 CLIENT_AttachDialRecognitionTaskProc 返回值
  85503. typedef void (CALLBACK *fTaskStateCallback) (LLONG lAttachHandle, NET_TASK_STATE* pBuf, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  85504. ///@brief CLIENT_AttachDialRecognitionTaskProc接口入参
  85505. typedef struct tagNET_IN_ATTACH_TASK_PROC
  85506. {
  85507. DWORD dwSize; // 结构体大小
  85508. BYTE byReserved[4]; // 预留对齐字节
  85509. fTaskStateCallback cbTaskState; // 任务状态结果回调
  85510. LDWORD dwUser; // 用户数据
  85511. }NET_IN_ATTACH_TASK_PROC;
  85512. ///@brief CLIENT_AttachDialRecognitionTaskProc接口出参
  85513. typedef struct tagNET_OUT_ATTACH_TASK_PROC
  85514. {
  85515. DWORD dwSize; // 结构体大小
  85516. }NET_OUT_ATTACH_TASK_PROC;
  85517. ///@brief 注册仪表任务状态
  85518. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachDialRecognitionTaskProc(LLONG lLoginID, const NET_IN_ATTACH_TASK_PROC* pInParam, NET_OUT_ATTACH_TASK_PROC* pOutParam, int nWaitTime);
  85519. ///@brief 取消注册仪表任务状态
  85520. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachDialRecognitionTaskProc(LLONG lAttachHandle);
  85521. ///@brief 本地实体证书类型
  85522. typedef enum tagEM_LOCAL_CERTIFICATE_TYPE
  85523. {
  85524. EM_LOCAL_CERTIFICATE_TYPE_UNKNOWN, // 未知
  85525. EM_LOCAL_CERTIFICATE_TYPE_IDENTITY_AUTH_CERT, // 供身份认证使用的本地实体证书
  85526. EM_LOCAL_CERTIFICATE_TYPE_DATA_AUTH_CERT, // 供信令及码流数据签名使用的本地实体证书
  85527. }EM_LOCAL_CERTIFICATE_TYPE;
  85528. ///@brief 国密特定网络类型
  85529. typedef enum tagEM_NETWORK_TYPE
  85530. {
  85531. EM_NETWORK_TYPE_PUBLIC_SECURITY_INFO_NETWORK, // 公安信息网
  85532. EM_NETWORK_TYPE_VIDEO_PRIVATE_NETWORK, // 视频专网
  85533. }EM_NETWORK_TYPE;
  85534. ///@brief 证书管理类型
  85535. typedef enum tagEM_DIGITAL_CERTIFICATE_TYPE
  85536. {
  85537. EM_DIGITAL_CERTIFICATE_TYPE_UNKNOWN, // 未知
  85538. EM_DIGITAL_CERTIFICATE_TYPE_GM, // 国密类型
  85539. EM_DIGITAL_CERTIFICATE_TYPE_GENERAL, // 通用类型
  85540. EM_DIGITAL_CERTIFICATE_TYPE_MAX, // 枚举最大值,若增加枚举,则在这之前增加
  85541. }EM_DIGITAL_CERTIFICATE_TYPE;
  85542. ///@brief CLIENT_GetCertReqInfo接口入参
  85543. typedef struct tagNET_IN_GET_CERT_REQINFO
  85544. {
  85545. DWORD dwSize; // 结构体大小
  85546. EM_LOCAL_CERTIFICATE_TYPE emLocalCertType; // 本地实体证书类型
  85547. int nForm; // 请求文件的类型,0表示PKCS#10,默认为0
  85548. char szCountry[MAX_COUNTRY_CODE_LEN]; // 证书持有者所在国家代号
  85549. char szProvince[MAX_PROVINCE_CODE_LEN]; // 证书持有者所在省份代号
  85550. char szCity[MAX_CITY_CODE_LEN]; // 证书持有者所在城市代号
  85551. char szArea[MAX_AREA_CODE_LEN]; // 证书持有者所在区域代号
  85552. EM_NETWORK_TYPE emSpecificNetworkType; // 国密特定网络类型
  85553. EM_DIGITAL_CERTIFICATE_TYPE emDigitalCertificateType; // 证书管理类型
  85554. char szCommonName[160]; // 使用者名称
  85555. char szOrganization[64]; // 组织名称
  85556. char szOrganizationUnit[64]; // 组织单元
  85557. int nPubKeyType; // 生成证书请求的公钥类型, 0:未知, 1:RSA2048, 2:SM2
  85558. }NET_IN_GET_CERT_REQINFO;
  85559. ///@brief CLIENT_GetCertReqInfo接口出参
  85560. typedef struct tagNET_OUT_GET_CERT_REQINFO
  85561. {
  85562. DWORD dwSize; // 结构体大小
  85563. int nReqInfoLen; // 返回的请求文件实际大小
  85564. char szReqInfo[MAX_REQ_INFO_LEN]; // 返回的请求文件
  85565. char szSigInfo[1024]; // 证书文件签名
  85566. char szSigAlg[64]; // 签名算法
  85567. char szCACertSN[40]; // 证书SN号
  85568. char szIssuer[512]; // 颁发者信息
  85569. }NET_OUT_GET_CERT_REQINFO;
  85570. ///@brief 获取制作证书时的请求文件,pstInParam和pstOutParam内存由用户申请和释放
  85571. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCertReqInfo(LLONG lLoginID, NET_IN_GET_CERT_REQINFO *pstInParam, NET_OUT_GET_CERT_REQINFO *pstOutParam, int nWaitTime);
  85572. ///@brief 证书类型
  85573. typedef enum tagEM_CERT_TYPE
  85574. {
  85575. EM_CERT_TYPE_UNKNWON, // 未知
  85576. EM_CERT_TYPE_CA_CERT, // 根级CA证书
  85577. EM_CERT_TYPE_ADMIN_CERT, // 本地管理员登录证书IdentityAuthCert
  85578. EM_CERT_TYPE_IDENTITY_AUTH_CERT, // 本地实体证书, 身份认证使用
  85579. EM_CERT_TYPE_DATA_AUTH_CERT, // 本地实体证书,信令及码流数据签名使用
  85580. EM_CERT_TYPE_REMOTE_IDENTITY_AUTH_CERT, // 远端实体证书, 身份认证使用(仅过检时使用)
  85581. EM_CERT_TYPE_REMOTE_DATA_AUTH_CERT, // 远端实体证书,信令及码流数据签名使用(仅过检时使用)
  85582. EM_CERT_TYPE_MAX, // 枚举最大值,以后再增加枚举往EM_CERT_TYPE_MAX前加
  85583. }EM_CERT_TYPE;
  85584. ///@brief 证书使用的服务列表
  85585. typedef enum tagEM_CERT_SERVER_NAME
  85586. {
  85587. EM_CERT_SERVER_NAME_GENERAL, // General
  85588. EM_CERT_SERVER_NAME_802_1X, // 802.1x
  85589. EM_CERT_SERVER_NAME_HTTPS, // HTTP over ssl/tls
  85590. EM_CERT_SERVER_NAME_MAX, // 枚举最大值,以后再增加枚举往EM_SERVER_NAME_MAX前增加
  85591. }EM_CERT_SERVER_NAME;
  85592. ///@brief CLIENT_ImportCert 接口入参
  85593. typedef struct tagNET_IN_IMPORT_CERT
  85594. {
  85595. DWORD dwSize; // 结构体大小
  85596. EM_CERT_TYPE emCertType; // 证书类型
  85597. char* pszCert; // 证书内容,由用户申请内存,大小为nCertLen
  85598. int nCertLen; // 证书内容实际长度,不能超过5300个字节
  85599. BOOL bActiveCert; // 是否有激活证书,当emDigitalCertificateType为EM_DIGITAL_CERTIFICATE_TYPE_GENERAL时有效
  85600. char szUserName[64]; // 管理员用户,当emCertType为EM_CERT_TYPE_ADMIN_CERT时有效
  85601. EM_DIGITAL_CERTIFICATE_TYPE emDigitalCertificateType; // 证书管理类型
  85602. int nKeyLen; // 与证书对应的私钥的实际长度,不能超过8192个字节
  85603. char* pszKey; // 与证书对应的私钥,由用户申请内存,大小为nKeyLen,当emDigitalCertificateType为EM_DIGITAL_CERTIFICATE_TYPE_GENERAL时有效
  85604. char szKeyPassword[64]; // 密钥文件加密密钥,当emDigitalCertificateType为EM_DIGITAL_CERTIFICATE_TYPE_GENERAL时有效
  85605. int nKeyPasswordLen; // 密钥文件加密密钥的实际长度
  85606. EM_CERT_SERVER_NAME emServerNames[8]; // 证书使用的服务列表,当emDigitalCertificateType为EM_DIGITAL_CERTIFICATE_TYPE_GENERAL时有效
  85607. // General和其他服务互斥,如果需要下发General,则nServerNameNum为1,emServerNames[0]=EM_CERT_SERVER_NAME_GENERAL
  85608. int nServerNameNum; // 实际的证书使用的服务列表个数
  85609. }NET_IN_IMPORT_CERT;
  85610. ///@brief 支持证书链信息
  85611. typedef struct tagNET_SUPPORT_CERT_LIST_INFO
  85612. {
  85613. EM_CERT_TYPE emCertType; // 证书类型
  85614. NET_TIME stuEffectiveDate; // 证书生效日期
  85615. NET_TIME stuExpirationDate; // 证书失效日期
  85616. char szCertSN[40]; // 证书序列号
  85617. char szDeviceIdentifier[160]; // 设备标识
  85618. char szRealCertSN[80]; // 证书真实序列号
  85619. int nPubKeyType; // 生成证书请求的公钥类型, 0:未知, 1:RSA2048, 2:SM2
  85620. int nCertUse; // 国密证书用途(仅nPubKeyType为2时有效), 0: 未知用途, 1: 签名, 2: 加密
  85621. BYTE byReserved[936]; // 预留字节
  85622. }NET_SUPPORT_CERT_LIST_INFO;
  85623. ///@brief CLIENT_ImportCert 接口出参
  85624. typedef struct tagNET_OUT_IMPORT_CERT
  85625. {
  85626. DWORD dwSize; // 结构体大小
  85627. int nRetSupportCertListNum; // 返回的支持证书链个数
  85628. NET_SUPPORT_CERT_LIST_INFO stuSupportCertList[8]; // 支持证书链信息
  85629. }NET_OUT_IMPORT_CERT;
  85630. ///@brief 导入已制作的数字证书,pstInParam和pstOutParam内存由用户申请和释放
  85631. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ImportCert(LLONG lLoginID, NET_IN_IMPORT_CERT *pstInParam, NET_OUT_IMPORT_CERT *pstOutParam, int nWaitTime);
  85632. ///@brief CLIENT_ImportCRL接口入参
  85633. typedef struct tagNET_IN_IMPORT_CRL
  85634. {
  85635. DWORD dwSize; // 结构体大小
  85636. int nCRLLen; // CRL内容实际长度,大小不能超过5300个字节
  85637. char* pszCRL; // CRL内容,由用户申请内存,大小为nCRLLen
  85638. EM_DIGITAL_CERTIFICATE_TYPE emDigitalCertificateType; // 证书管理类型
  85639. BYTE byReserved[4]; // 预留对齐字节
  85640. }NET_IN_IMPORT_CRL;
  85641. ///@brief CLIENT_ImportCRL接口出参
  85642. typedef struct tagNET_OUT_IMPORT_CRL
  85643. {
  85644. DWORD dwSize; // 结构体大小
  85645. }NET_OUT_IMPORT_CRL;
  85646. ///@brief 导入已制作的证书吊销列表,pstInParam和pstOutParam内存由用户申请和释放
  85647. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ImportCRL(LLONG lLoginID, NET_IN_IMPORT_CRL *pstInParam, NET_OUT_IMPORT_CRL *pstOutParam, int nWaitTime);
  85648. ///@brief 协议名称
  85649. typedef enum tagEM_PROTOCOL_NAME
  85650. {
  85651. EM_PROTOCOL_NAME_UNKNOWN, // 未知
  85652. EM_PROTOCOL_NAME_GB28181, // Gb28181
  85653. EM_PROTOCOL_NAME_MAX, // 最大值
  85654. }EM_PROTOCOL_NAME;
  85655. ///@brief CLIENT_IntervideoManagerGetVersion接口入参
  85656. typedef struct tagNET_IN_GET_VERSION
  85657. {
  85658. DWORD dwSize; // 结构体大小
  85659. EM_PROTOCOL_NAME emProtocolName; // 协议名称
  85660. }NET_IN_GET_VERSION;
  85661. ///@brief CLIENT_IntervideoManagerGetVersion接口出参
  85662. typedef struct tagNET_OUT_GET_VERSION
  85663. {
  85664. DWORD dwSize; // 结构体大小
  85665. char szGB28181Version[MAX_GB28181_PROTOCOL_VERSION]; // GB28181协议版本
  85666. }NET_OUT_GET_VERSION;
  85667. ///@brief 获取协议版本,pstInParam和pstOutParam内存由用户申请和释放
  85668. CLIENT_NET_API BOOL CALL_METHOD CLIENT_IntervideoManagerGetVersion(LLONG lLoginID, NET_IN_GET_VERSION *pstInParam, NET_OUT_GET_VERSION *pstOutParam, int nWaitTime);
  85669. ///@brief CLIENT_NASFileSetUserAuthInfo接口入参
  85670. typedef struct tagNET_IN_SET_USER_AUTH_INFO
  85671. {
  85672. DWORD dwSize; // 结构体大小
  85673. char szPassword[DH_COMMON_STRING_128]; // 密码
  85674. char szPasswordHint[DH_COMMON_STRING_128]; // 密码提示问题
  85675. char szPhoneNo[DH_COMMON_STRING_32]; // 手机号,可选
  85676. char szEmail[DH_COMMON_STRING_128]; // 邮箱,可选
  85677. }NET_IN_SET_USER_AUTH_INFO;
  85678. ///@brief CLIENT_NASFileSetUserAuthInfo接口出参
  85679. typedef struct tagNET_OUT_SET_USER_AUTH_INFO
  85680. {
  85681. DWORD dwSize; // 结构体大小
  85682. }NET_OUT_SET_USER_AUTH_INFO;
  85683. ///@brief 配置隐私空间信息,pInParam和pOutParam内存由用户申请和释放
  85684. CLIENT_NET_API BOOL CALL_METHOD CLIENT_NASFileSetUserAuthInfo(LLONG lLoginID, const NET_IN_SET_USER_AUTH_INFO* pInParam, NET_OUT_SET_USER_AUTH_INFO* pOutParam, int nWaitTime);
  85685. ///@brief CLIENT_NASFileModifyPassword接口入参
  85686. typedef struct tagNET_IN_MODIFY_PASSWORD
  85687. {
  85688. DWORD dwSize; // 结构体大小
  85689. char szOldPassword[DH_COMMON_STRING_128]; // 旧密码
  85690. char szNewPassword[DH_COMMON_STRING_128]; // 新密码
  85691. char szPasswordHint[DH_COMMON_STRING_128]; // 密码提示问题
  85692. }NET_IN_MODIFY_PASSWORD;
  85693. ///@brief CLIENT_NASFileModifyPassword接口出参
  85694. typedef struct tagNET_OUT_MODIFY_PASSWORD
  85695. {
  85696. DWORD dwSize; // 结构体大小
  85697. }NET_OUT_MODIFY_PASSWORD;
  85698. ///@brief 修改隐私空间密码,pInParam和pOutParam内存由用户申请和释放
  85699. CLIENT_NET_API BOOL CALL_METHOD CLIENT_NASFileModifyPassword(LLONG lLoginID, const NET_IN_MODIFY_PASSWORD* pInParam, NET_OUT_MODIFY_PASSWORD* pOutParam, int nWaitTime);
  85700. ///@brief CLIENT_NASFileAuthenticate接口入参
  85701. typedef struct tagNET_IN_AUTHENTICATE
  85702. {
  85703. DWORD dwSize; // 结构体大小
  85704. char szPassword[DH_COMMON_STRING_128]; // 验证密码
  85705. }NET_IN_AUTHENTICATE;
  85706. ///@brief CLIENT_NASFileAuthenticate接口出参
  85707. typedef struct tagNET_OUT_AUTHENTICATE
  85708. {
  85709. DWORD dwSize; // 结构体大小
  85710. }NET_OUT_AUTHENTICATE;
  85711. ///@brief 鉴权密码功能,pInParam和pOutParam内存由用户申请和释放
  85712. CLIENT_NET_API BOOL CALL_METHOD CLIENT_NASFileAuthenticate(LLONG lLoginID, const NET_IN_AUTHENTICATE* pInParam, NET_OUT_AUTHENTICATE* pOutParam, int nWaitTime);
  85713. ///@brief 扩展模块类型
  85714. typedef enum tagEM_EXMODULE_TYPE
  85715. {
  85716. EM_EXMODULE_TYPE_UNKNOWN, //未知
  85717. EM_EXMODULE_TYPE_M_BUS, //M-BUS
  85718. EM_EXMODULE_TYPE_RS_485, //RS-485
  85719. }EM_EXMODULE_TYPE;
  85720. ///@brief CLIENT_GetExModuleInfo接口入参(对应枚举NET_EM_GET_EXMODULE_INFO_DETAIL)
  85721. typedef struct tagNET_IN_GETEXMODULEDETAIL
  85722. {
  85723. DWORD dwSize; //结构体大小
  85724. EM_EXMODULE_TYPE emType; //扩展模块类型
  85725. int nAddr; //扩展模块编号
  85726. }NET_IN_GETEXMODULEDETAIL;
  85727. ///@brief CLIENT_GetExModuleInfo接口出参(对应枚举NET_EM_GET_EXMODULE_INFO_DETAIL)
  85728. typedef struct tagNET_OUT_GETEXMODULEDETAIL
  85729. {
  85730. DWORD dwSize; //结构体大小
  85731. int nAlarmInChannelCount; //报警输入通道号数量
  85732. int alarmInChannels[16]; //报警输入对应的通道号。模块报警输入对应的通道号,没有映射时为-1
  85733. int nAlarmOutChannelCount; //报警输出通道号数量
  85734. int alarmOutChannels[16]; //报警输出对应的通道号。模块报警输出对应的通道号,没有映射时为-1
  85735. }NET_OUT_GETEXMODULEDETAIL;
  85736. ///@brief 扩展模块类型
  85737. typedef enum tagNET_EM_GET_EXMODULE_INFO
  85738. {
  85739. NET_EM_GET_EXMODULE_INFO_UNKNOWN, //未知
  85740. NET_EM_GET_EXMODULE_INFO_DETAIL, //获取扩展模块详细信息。(入参NET_IN_GETEXMODULEDETAIL,出参NET_OUT_GETEXMODULEDETAIL)
  85741. NET_EM_GET_EXMODULE_INFO_STATE, //获取扩展模块状态。(入参NET_IN_EXMODULE_INFO,出参NET_OUT_EXMODULE_INFO_ALL)
  85742. }NET_EM_GET_EXMODULE_INFO;
  85743. ///@brief 获取扩展模块信息
  85744. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetExModuleInfo(LLONG lLoginID, NET_EM_GET_EXMODULE_INFO emType,const void *pstuInParam, void *pstuOutParam, int nWaitTime);
  85745. ///@brief CLIENT_GetNationInfo 入参
  85746. typedef struct tagNET_IN_GET_NATIONINFO
  85747. {
  85748. DWORD dwSize; // 结构体大小
  85749. }NET_IN_GET_NATIONINFO;
  85750. #define NET_COUNTRYZONE_LENGTH 64 // 国家/地区名称长度
  85751. #define NET_COUNTRYABBR_LENGTH 4 // 国家/地区简称长度
  85752. #define NET_LANGUAGE_LENGTH 12 // 默认语言长度
  85753. #define NET_TIMEZONE_LENGTH 80 // 默认时区值描述长度
  85754. ///@brief 国家/地区相关信息
  85755. typedef struct tagNET_NATION_INFO{
  85756. char szCountry[NET_COUNTRYZONE_LENGTH]; // 国家/地区名称,符合ISO3166标准
  85757. char szAbbreviation[NET_COUNTRYABBR_LENGTH]; // 国家/地区简称,符合ISO3166标准
  85758. char szLanguage[NET_LANGUAGE_LENGTH]; // 默认语言, 由于协议扩展,请使用szLanguageEx
  85759. EM_VIDEO_STANDARD emVideoStandard; // 默认视频制式
  85760. char szTimeZoneDesc[NET_TIMEZONE_LENGTH]; // 默认时区值描述
  85761. char szLanguageEx[32]; // 默认语言扩展
  85762. BYTE byReserved[96]; // 保留字节
  85763. }NET_NATION_INFO;
  85764. ///@brief CLIENT_GetNationInfo 出参
  85765. typedef struct tagNET_OUT_GET_NATIONINFO
  85766. {
  85767. DWORD dwSize; // 结构体大小
  85768. int nNationInfoCnt; // 国家的个数
  85769. NET_NATION_INFO arrNationInfo[300]; // 国家/地区相关信息,是个数组
  85770. }NET_OUT_GET_NATIONINFO;
  85771. ///@brief 获取设备国家语言制式等对应表
  85772. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetNationInfo(LLONG lLoginID, NET_IN_GET_NATIONINFO* pInParam, NET_OUT_GET_NATIONINFO* pOutParam, int waittime);
  85773. ///@brief CLIENT_GetLanguageList 入参
  85774. typedef struct tagNET_IN_GET_LANGUAGELIST
  85775. {
  85776. DWORD dwSize; // 结构体大小
  85777. }NET_IN_GET_LANGUAGELIST;
  85778. #define NET_LANGUAGELIST_LENGTH 12 // 语言列表的长度
  85779. ///@brief CLIENT_GetLanguageList 出参
  85780. typedef struct tagNET_OUT_GET_LANGUAGELIST
  85781. {
  85782. DWORD dwSize; // 结构体大小
  85783. int nLangueListCnt; // 语言列表的个数,该字段废弃,请使用nLangueListCntEx
  85784. char arrLanguageList[50][NET_LANGUAGELIST_LENGTH]; // 语言列表是个数组,该字段废弃,请使用arrLanguageListEx
  85785. int nLangueListCntEx; // 语言列表的个数扩展
  85786. char arrLanguageListEx[50][24]; // 语言列表扩展
  85787. }NET_OUT_GET_LANGUAGELIST;
  85788. ///@brief 获取设备支持的语言列表
  85789. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetLanguageList(LLONG lLoginID, NET_IN_GET_LANGUAGELIST* pInParam, NET_OUT_GET_LANGUAGELIST* pOutParam, int waittime);
  85790. #define MAX_SCENEID_LEN 32 //场景ID最大长度
  85791. ///@brief CLIENT_ConfirmSceneChangeResult 输入参数
  85792. typedef struct tagNET_IN_CONFIRMSCENECHANGERESULT_INFO
  85793. {
  85794. DWORD dwSize; // 结构体大小
  85795. char szSceneID[MAX_SCENEID_LEN]; // 场景ID
  85796. BOOL bResult; // 处理结果: TRUE表示成功 FALSE表示失败
  85797. }NET_IN_CONFIRMSCENECHANGERESULT_INFO;
  85798. ///@brief CLIENT_ConfirmSceneChangeResult 输出参数
  85799. typedef struct tagNET_OUT_CONFIRMSCENECHANGERESULT_INFO
  85800. {
  85801. DWORD dwSize; // 结构体大小
  85802. }NET_OUT_CONFIRMSCENECHANGERESULT_INFO;
  85803. ///@brief 确认智能家居场景切换结果 pstuInParam和pstuOutParam内存由用户分配和释放
  85804. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ConfirmSceneChangeResult(LLONG lLoginID, const NET_IN_CONFIRMSCENECHANGERESULT_INFO *pstuInParam, NET_OUT_CONFIRMSCENECHANGERESULT_INFO *pstuOutParam, int nWaitTime);
  85805. ///@brief CLIENT_ConfirmAuthorizedResult 输入参数
  85806. typedef struct tagNET_IN_CONFIRM_AUTHORIZED_RESULT
  85807. {
  85808. DWORD dwSize; // 结构体大小
  85809. int nResult; // 0:二维码信息有效,非0:错误码
  85810. // 0x01: 业务人员未在管理后台配置信息/云端未找到该家庭的配置信息
  85811. // 0x02: APP账号未绑定智能家居设备
  85812. char* pszQRCode; // 二维码信息,base64编码
  85813. BOOL bIsTest; // 下发的是否为体验二维码; TRUE:下发的是体验二维码, FALSE:下发的是正式二维码
  85814. UINT nTimeout; // 二维码有效时间, 单位:秒, 仅下发体验二维码时有效
  85815. UINT nExpiryTime; // 用户体验时间, 单位:秒, 仅下发体验二维码时有效
  85816. }NET_IN_CONFIRM_AUTHORIZED_RESULT;
  85817. ///@brief CLIENT_ConfirmAuthorizedResult 输出参数
  85818. typedef struct tagNET_OUT_CONFIRM_AUTHORIZED_RESULT
  85819. {
  85820. DWORD dwSize; // 结构体大小
  85821. }NET_OUT_CONFIRM_AUTHORIZED_RESULT;
  85822. ///@brief 确认智能家居授权二维码信息
  85823. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ConfirmAuthorizedResult(LLONG lLoginID, const NET_IN_CONFIRM_AUTHORIZED_RESULT* pstInParam, NET_OUT_CONFIRM_AUTHORIZED_RESULT* pstOutParam, int nWaitTime);
  85824. ///@brief CLIENT_GetSensorCollectSupportList接口入参
  85825. typedef struct tagNET_IN_GET_SENSOR_COLLECT_SUPPORT_LIST
  85826. {
  85827. DWORD dwSize; // 结构体大小
  85828. } NET_IN_GET_SENSOR_COLLECT_SUPPORT_LIST;
  85829. ///@brief 传感器传输介质
  85830. typedef enum tagEM_SENSOR_MEDIA_TYPE
  85831. {
  85832. EM_SENSOR_MEDIA_TYPE_UNKNOWN, // 未知
  85833. EM_SENSOR_MEDIA_TYPE_COAXIAL, // 同轴接入的传感器
  85834. EM_SENSOR_MEDIA_TYPE_433, // 通过433接入的传感器
  85835. } EM_SENSOR_MEDIA_TYPE;
  85836. ///@brief 无线传感器类型
  85837. typedef enum tagEM_WIRELESS_SENSOR_TYPE
  85838. {
  85839. EM_WIRELESS_SENSOR_TYPE_UNKNOWN, // 未知类型
  85840. EM_WIRELESS_SENSOR_TYPE_HUMIDITY_SENSOR, // 湿度传感器
  85841. EM_WIRELESS_SENSOR_TYPE_TEMP_SENSOR, // 温度传感器
  85842. EM_WIRELESS_SENSOR_TYPE_DOOR_MAGNETISM, // 门磁传感器
  85843. EM_WIRELESS_SENSOR_TYPE_URGENCY_BUTTON, // 紧急按钮
  85844. EM_WIRELESS_SENSOR_TYPE_PASSIVE_INFRARED, // 被动红外
  85845. EM_WIRELESS_SENSOR_TYPE_CURTAIN_SENSOR, // 幕帘
  85846. EM_WIRELESS_SENSOR_TYPE_WATER_SENSOR, // 水浸传感
  85847. EM_WIRELESS_SENSOR_TYPE_SMOKING_SENSOR, // 烟雾传感
  85848. EM_WIRELESS_SENSOR_TYPE_COAXIAL_EXTALARM, // 同轴外部报警
  85849. } EM_WIRELESS_SENSOR_TYPE;
  85850. ///@brief 传感器ID信息
  85851. typedef struct tagNET_SENSOR_ID_INFO
  85852. {
  85853. EM_SENSOR_MEDIA_TYPE emMediaType; // 传感器传输介质
  85854. DWORD nAPIndex; // 接入点序号
  85855. DWORD nAlarmChannel; // 报警通道号
  85856. NET_WIRELESS_DEVICE_TYPE emDeviceType; // 无线设备类型
  85857. EM_WIRELESS_SENSOR_TYPE emSensorType; // 传感器类型
  85858. BYTE byReserved[128]; // 保留字节
  85859. } NET_SENSOR_ID_INFO;
  85860. // 传感器ID数组最大个数
  85861. #define MAX_SENSOR_ID_COUNT 256
  85862. ///@brief CLIENT_GetSensorCollectSupportList接口出参
  85863. typedef struct tagNET_OUT_GET_SENSOR_COLLECT_SUPPORT_LIST
  85864. {
  85865. DWORD dwSize; // 结构体大小
  85866. int nCount; // 传感器ID数量
  85867. NET_SENSOR_ID_INFO stInfo[MAX_SENSOR_ID_COUNT];// 传感器ID数组
  85868. } NET_OUT_GET_SENSOR_COLLECT_SUPPORT_LIST;
  85869. ///@brief 获取可采集的传感器列表, pInParam和pOutParam内存由用户申请和释放
  85870. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSensorCollectSupportList(LLONG lLoginID, const NET_IN_GET_SENSOR_COLLECT_SUPPORT_LIST* pInParam, NET_OUT_GET_SENSOR_COLLECT_SUPPORT_LIST* pOutParam, int nWaitTime);
  85871. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_START_REMOTELOWRATEWPAN_ALARMBELL命令参数
  85872. typedef struct tagNET_IN_START_REMOTELOWRATEWPAN_ALARMBELL
  85873. {
  85874. DWORD dwSize; // 结构体大小
  85875. int nChannelID; // 视频通道号(-1表示全通道)
  85876. } NET_IN_START_REMOTELOWRATEWPAN_ALARMBELL;
  85877. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_START_REMOTELOWRATEWPAN_ALARMBELL命令参数
  85878. typedef struct tagNET_OUT_START_REMOTELOWRATEWPAN_ALARMBELL
  85879. {
  85880. DWORD dwSize; // 结构体大小
  85881. } NET_OUT_START_REMOTELOWRATEWPAN_ALARMBELL;
  85882. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_STOP_REMOTELOWRATEWPAN_ALARMBELL命令参数
  85883. typedef struct tagNET_IN_STOP_REMOTELOWRATEWPAN_ALARMBELL
  85884. {
  85885. DWORD dwSize; // 结构体大小
  85886. int nChannelID; // 视频通道号(-1表示全通道)
  85887. } NET_IN_STOP_REMOTELOWRATEWPAN_ALARMBELL;
  85888. ///@brief CLIENT_ControlDevice接口的 DH_CTRL_STOP_REMOTELOWRATEWPAN_ALARMBELL命令参数
  85889. typedef struct tagNET_OUT_STOP_REMOTELOWRATEWPAN_ALARMBELL
  85890. {
  85891. DWORD dwSize; // 结构体大小
  85892. } NET_OUT_STOP_REMOTELOWRATEWPAN_ALARMBELL;
  85893. ///@brief 门禁对讲状态
  85894. typedef enum tagEM_CALL_STATUS
  85895. {
  85896. EM_CALL_STATUS_UNKNOWN,
  85897. EM_CALL_STATUS_TRYING, // 通话请求正在处理事件
  85898. EM_CALL_STATUS_RINGING, // 主叫时,被叫回铃事件
  85899. EM_CALL_STATUS_PREPARECONNECTED, // 收到对端通话接通
  85900. EM_CALL_STATUS_CONNECTED, // 双方通话已经正式建立
  85901. EM_CALL_STATUS_CALLED, // 被叫来电事件
  85902. EM_CALL_STATUS_PREPARELEAVINGMESSAGE, // 收到留言请求事件
  85903. EM_CALL_STATUS_LEAVINGMESSAGECONNECTED, // 留言通话接通事件
  85904. EM_CALL_STATUS_CALLEND, // 呼叫结束事件
  85905. EM_CALL_STATUS_CALLTRANSFER, // 转移呼叫到其他设备
  85906. EM_CALL_STATUS_CALLTRANSFERCONNECTED, // 呼叫转移接通
  85907. EM_CALL_STATUS_HELD, // 呼叫保持
  85908. EM_CALL_STATUS_RESUME, // 呼叫召回
  85909. EM_CALL_STATUS_DND, // 免打扰
  85910. EM_CALL_STATUS_REMOTESDPCHANGE, // 远端SDP改变
  85911. EM_CALL_STATUS_REFUSE, // 拒接
  85912. }EM_CALL_STATUS;
  85913. ///@brief CLIENT_ControlDeviceEx接口的 DH_CTRL_SET_THIRD_CALLSTATUS 命令参数入参
  85914. typedef struct tagNET_IN_VTP_THIRDCALL_STATUS
  85915. {
  85916. DWORD dwSize;
  85917. EM_CALL_STATUS emCallStatus; // 门禁对讲状态
  85918. }NET_IN_VTP_THIRDCALL_STATUS;
  85919. ///@brief CLIENT_ControlDeviceEx接口的 DH_CTRL_SET_THIRD_CALLSTATUS 命令参数出参
  85920. typedef struct tagNET_OUT_VTP_THIRDCALL_STATUS
  85921. {
  85922. DWORD dwSize;
  85923. char szCallID[64]; // 对讲id
  85924. }NET_OUT_VTP_THIRDCALL_STATUS;
  85925. ///@brief CLIENT_ControlDeviceEx接口的 DH_CTRL_ACCESS_CLEAR_STATUS 命令参数入参
  85926. typedef struct tagNET_IN_ACCESS_CLEAR_STATUS
  85927. {
  85928. DWORD dwSize;
  85929. }NET_IN_ACCESS_CLEAR_STATUS;
  85930. ///@brief CLIENT_ControlDeviceEx接口的 DH_CTRL_ACCESS_CLEAR_STATUS 命令参数出参
  85931. typedef struct tagNET_OUT_ACCESS_CLEAR_STATUS
  85932. {
  85933. DWORD dwSize;
  85934. BOOL bClearResult; // 清除指令执行结果
  85935. }NET_OUT_ACCESS_CLEAR_STATUS;
  85936. ///@brief 操作状态
  85937. typedef enum tagEM_ACCESS_DEAL_RECORD_STATUS
  85938. {
  85939. EM_ACCESS_DEAL_RECORD_STATUS_NO, // 无状态
  85940. EM_ACCESS_DEAL_RECORD_STATUS_ENTRY, // 进门
  85941. EM_ACCESS_DEAL_RECORD_STATUS_EXIT, // 出门
  85942. }EM_ACCESS_DEAL_RECORD_STATUS;
  85943. ///@brief CLIENT_ControlDeviceEx接口的 DH_CTRL_ACCESS_DEAL_RECORD 命令参数入参
  85944. typedef struct tagNET_IN_ACCESS_DEAL_RECORD
  85945. {
  85946. DWORD dwSize;
  85947. char szUserID[32]; // 用户ID
  85948. int nType; // 0-查询, 1-设置
  85949. EM_ACCESS_DEAL_RECORD_STATUS emStatus; // 设置状态
  85950. }NET_IN_ACCESS_DEAL_RECORD;
  85951. ///@brief CLIENT_ControlDeviceEx接口的 DH_CTRL_ACCESS_DEAL_RECORD 命令参数出参
  85952. typedef struct tagNET_OUT_ACCESS_DEAL_RECORD
  85953. {
  85954. DWORD dwSize;
  85955. BOOL bDealResult; // 操作结果
  85956. EM_ACCESS_DEAL_RECORD_STATUS emStatus; // 查询状态
  85957. }NET_OUT_ACCESS_DEAL_RECORD;
  85958. ///@brief 代理服务器地址
  85959. typedef struct tagNET_PROXY_SERVER_INFO
  85960. {
  85961. char szIP[DH_MAX_IPADDR_LEN_EX]; // IP地址
  85962. UINT nPort; // 端口
  85963. BYTE byReserved[84];
  85964. } NET_PROXY_SERVER_INFO ;
  85965. ///@brief CLIENT_CheckCloudUpgrader 入参
  85966. typedef struct tagNET_IN_CHECK_CLOUD_UPGRADER
  85967. {
  85968. DWORD dwSize; // 结构体大小
  85969. UINT nWay; // 检测路径, 0-直连升级服务器检测, 1-通过代理服务器检测, 2-获取缓存的检测结果
  85970. NET_PROXY_SERVER_INFO stProxy; // 代理服务器地址, way==1时有意义
  85971. } NET_IN_CHECK_CLOUD_UPGRADER;
  85972. ///@brief 云升级状态
  85973. typedef enum tagEM_CLOUD_UPGRADER_CHECK_STATE
  85974. {
  85975. EM_CLOUD_UPGRADER_CHECK_STATE_UNKNOWN, // 未知
  85976. EM_CLOUD_UPGRADER_CHECK_STATE_NONE, // 没有检测到更新
  85977. EM_CLOUD_UPGRADER_CHECK_STATE_REGULAR, // 一般升级 (需要用户确认, 只能向高版本)
  85978. EM_CLOUD_UPGRADER_CHECK_STATE_EMERGENCY, // 强制升级 (设备自动检测执行, 可以向低版本)
  85979. EM_CLOUD_UPGRADER_CHECK_STATE_AUTOMATIC, // 自动升级 (有新升级包, 自动升级, 需使能页面自动升级选项)
  85980. } EM_CLOUD_UPGRADER_CHECK_STATE;
  85981. ///@brief 云升级新版本升级包类型
  85982. typedef enum tagEM_CLOUD_UPGRADER_PACKAGE_TYPE
  85983. {
  85984. EM_CLOUD_UPGRADER_PACKAGE_TYPE_UNKNOWN, // 未知
  85985. EM_CLOUD_UPGRADER_PACKAGE_TYPE_ALL, // 整包
  85986. EM_CLOUD_UPGRADER_PACKAGE_TYPE_PTZ, // 云台主控包
  85987. EM_CLOUD_UPGRADER_PACKAGE_TYPE_WEB, // Web
  85988. EM_CLOUD_UPGRADER_PACKAGE_TYPE_LOGO, // Logo
  85989. EM_CLOUD_UPGRADER_PACKAGE_TYPE_CUSTOM, // Custom
  85990. EM_CLOUD_UPGRADER_PACKAGE_TYPE_GUI, // Gui
  85991. EM_CLOUD_UPGRADER_PACKAGE_TYPE_PD, // PD
  85992. EM_CLOUD_UPGRADER_PACKAGE_TYPE_DATA, // Data
  85993. EM_CLOUD_UPGRADER_PACKAGE_TYPE_PTZ_POWER, // 云台电源
  85994. EM_CLOUD_UPGRADER_PACKAGE_TYPE_PTZ_LIGHT, // 云台灯光
  85995. EM_CLOUD_UPGRADER_PACKAGE_TYPE_PTZ_HEATER, // 云台加热器
  85996. } EM_CLOUD_UPGRADER_PACKAGE_TYPE;
  85997. ///@brief CLIENT_CheckCloudUpgrader 出参
  85998. typedef struct tagNET_OUT_CHECK_CLOUD_UPGRADER
  85999. {
  86000. DWORD dwSize; // 结构体大小
  86001. EM_CLOUD_UPGRADER_CHECK_STATE emState; // 升级状态
  86002. EM_CLOUD_UPGRADER_PACKAGE_TYPE emPackageType; // 新版本升级包类型, State不为None需要返回
  86003. char szOldVersion[MAX_COMMON_STRING_64]; // 旧版本号, State不为None需要返回
  86004. char szNewVersion[MAX_COMMON_STRING_64]; // 新版本号,State不为None需要返回
  86005. char szAttention[MAX_COMMON_STRING_2048]; // 新的升级包更新内容
  86006. char szPackageURL[MAX_COMMON_STRING_256]; // 升级包下载地址(代理升级需要)
  86007. char szPackageID[MAX_COMMON_STRING_64]; // 升级包ID
  86008. char szCheckSum[MAX_COMMON_STRING_64]; // 升级包的SHA-256校验和
  86009. char szBuildTime[MAX_COMMON_STRING_32]; // 升级包构建时间
  86010. } NET_OUT_CHECK_CLOUD_UPGRADER;
  86011. ///@brief 在线升级检查是否有可用升级包, pInParam和pOutParam内存由用户申请和释放
  86012. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CheckCloudUpgrader(LLONG lLoginID, const NET_IN_CHECK_CLOUD_UPGRADER* pInParam, NET_OUT_CHECK_CLOUD_UPGRADER* pOutParam, int nWaitTime);
  86013. ///@brief 升级包信息
  86014. typedef struct tagNET_CLOUD_UPGRADER_INFO
  86015. {
  86016. char szPackageURL[MAX_COMMON_STRING_256]; // 升级包下载地址(代理升级需要)
  86017. char szPackageID[MAX_COMMON_STRING_64]; // 升级包ID
  86018. char szCheckSum[MAX_COMMON_STRING_64]; // 升级包的SHA-256校验和
  86019. BYTE byReserved[1024]; // 保留字节
  86020. } NET_CLOUD_UPGRADER_INFO;
  86021. ///@brief CLIENT_ExecuteCloudUpgrader 入参
  86022. typedef struct tagNET_IN_EXECUTE_CLOUD_UPGRADER
  86023. {
  86024. DWORD dwSize; // 结构体大小
  86025. char szNewVersion[MAX_COMMON_STRING_64]; // 上一次check得到的新版本号
  86026. UINT nWay; // 检测路径, 0-直连升级服务器检测, 1-通过代理服务器检测
  86027. NET_PROXY_SERVER_INFO stProxy; // 代理服务器地址, nWay==1时有意义
  86028. NET_CLOUD_UPGRADER_INFO stInfo; // 升级包信息
  86029. } NET_IN_EXECUTE_CLOUD_UPGRADER;
  86030. ///@brief CLIENT_ExecuteCloudUpgrader 出参
  86031. typedef struct tagNET_OUT_EXECUTE_CLOUD_UPGRADER
  86032. {
  86033. DWORD dwSize; // 结构体大小
  86034. } NET_OUT_EXECUTE_CLOUD_UPGRADER;
  86035. ///@brief 执行在线云升级, pInParam和pOutParam内存由用户申请和释放
  86036. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ExecuteCloudUpgrader(LLONG lLoginID, const NET_IN_EXECUTE_CLOUD_UPGRADER* pInParam, NET_OUT_EXECUTE_CLOUD_UPGRADER* pOutParam, int nWaitTime);
  86037. ///@brief CLIENT_GetCloudUpgraderState 入参
  86038. typedef struct tagNET_IN_GET_CLOUD_UPGRADER_STATE
  86039. {
  86040. DWORD dwSize; // 结构体大小
  86041. } NET_IN_GET_CLOUD_UPGRADER_STATE;
  86042. ///@brief 在线升级状态
  86043. typedef enum tagEM_CLOUD_UPGRADER_STATE
  86044. {
  86045. EM_CLOUD_UPGRADER_STATE_UNKNOWN, // 未知
  86046. EM_CLOUD_UPGRADER_STATE_NOUPGRADE, // "Noupgrade"-未进行升级
  86047. EM_CLOUD_UPGRADER_STATE_PREPARING, // "Preparing"-准备升级
  86048. EM_CLOUD_UPGRADER_STATE_DOWNLOADING, // "Downloading"-正在下载数据
  86049. EM_CLOUD_UPGRADER_STATE_DOWNLOADFAILED, // "DownloadFailed"-下载失败
  86050. EM_CLOUD_UPGRADER_STATE_UPGRADING, // "Upgrading"-正在升级
  86051. EM_CLOUD_UPGRADER_STATE_INVALID, // "Invalid"-升级包不正确
  86052. EM_CLOUD_UPGRADER_STATE_FAILED, // "Failed"-升级包写入Flash失败
  86053. EM_CLOUD_UPGRADER_STATE_SUCCEEDED, // "Succeeded"-升级包写入Flash成功
  86054. } EM_CLOUD_UPGRADER_STATE;
  86055. ///@brief CLIENT_GetCloudUpgraderState 出参
  86056. typedef struct tagNET_OUT_GET_CLOUD_UPGRADER_STATE
  86057. {
  86058. DWORD dwSize; // 结构体大小
  86059. EM_CLOUD_UPGRADER_STATE emState; // 升级状态
  86060. UINT nProgress; // 升级进度, 状态是Downloading/Upgrading时有意义
  86061. } NET_OUT_GET_CLOUD_UPGRADER_STATE;
  86062. ///@brief 获取云升级在线升级状态, pInParam和pOutParam内存由用户申请和释放
  86063. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCloudUpgraderState(LLONG lLoginID, const NET_IN_GET_CLOUD_UPGRADER_STATE* pInParam, NET_OUT_GET_CLOUD_UPGRADER_STATE* pOutParam, int nWaitTime);
  86064. ///@brief CLIENT_GetCloudUpgraderAutoCheck 输入参数
  86065. typedef struct tagNET_IN_GET_CLOUD_UPGRADER_AUTO_CHECK
  86066. {
  86067. DWORD dwSize; // 结构体大小, 必须赋值
  86068. } NET_IN_GET_CLOUD_UPGRADER_AUTO_CHECK;
  86069. ///@brief CLIENT_GetCloudUpgraderAutoCheck 输出参数
  86070. typedef struct tagNET_OUT_GET_CLOUD_UPGRADER_AUTO_CHECK
  86071. {
  86072. DWORD dwSize; // 结构体大小, 必须赋值
  86073. BOOL bFlag; // 检测标记, TRUE-打开定时检测 FALSE-关闭定时检测
  86074. } NET_OUT_GET_CLOUD_UPGRADER_AUTO_CHECK;
  86075. ///@brief 获取是否开启了云升级周期检测
  86076. ///@param[in] lLoginID: 登录句柄
  86077. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  86078. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  86079. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  86080. ///@return TRUE表示成功FALSE表示失败
  86081. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCloudUpgraderAutoCheck(LLONG lLoginID, const NET_IN_GET_CLOUD_UPGRADER_AUTO_CHECK* pstuInParam, NET_OUT_GET_CLOUD_UPGRADER_AUTO_CHECK* pstuOutParam, int nWaitTime);
  86082. ///@brief CLIENT_SetCloudUpgraderAutoCheck 输入参数
  86083. typedef struct tagNET_IN_SET_CLOUD_UPGRADER_AUTO_CHECK
  86084. {
  86085. DWORD dwSize; // 结构体大小, 必须赋值
  86086. BOOL bFlag; // 检测标记, TRUE-打开定时检测 FALSE-关闭定时检测
  86087. } NET_IN_SET_CLOUD_UPGRADER_AUTO_CHECK;
  86088. ///@brief CLIENT_SetCloudUpgraderAutoCheck 输出参数
  86089. typedef struct tagNET_OUT_SET_CLOUD_UPGRADER_AUTO_CHECK
  86090. {
  86091. DWORD dwSize; // 结构体大小, 必须赋值
  86092. } NET_OUT_SET_CLOUD_UPGRADER_AUTO_CHECK;
  86093. ///@brief 设置是否开启云升级周期检测
  86094. ///@param[in] lLoginID: 登录句柄
  86095. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  86096. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  86097. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  86098. ///@return TRUE表示成功FALSE表示失败
  86099. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetCloudUpgraderAutoCheck(LLONG lLoginID, const NET_IN_SET_CLOUD_UPGRADER_AUTO_CHECK* pstuInParam, NET_OUT_SET_CLOUD_UPGRADER_AUTO_CHECK* pstuOutParam, int nWaitTime);
  86100. ///@brief CLIENT_GetVideoDiagnosisChannelNumber 接口入参
  86101. typedef struct tagNET_IN_GET_SUPPORT_CHANNEL_NUM
  86102. {
  86103. DWORD dwSize; // 结构体大小
  86104. }NET_IN_GET_SUPPORT_CHANNEL_NUM;
  86105. ///@brief CLIENT_GetVideoDiagnosisChannelNumber 接口出参
  86106. typedef struct tagNET_OUT_GET_SUPPORT_CHANNEL_NUM
  86107. {
  86108. DWORD dwSize; // 结构体大小
  86109. int nCount; // IVS-V支持的检测通道数目
  86110. }NET_OUT_GET_SUPPORT_CHANNEL_NUM;
  86111. ///@brief 获取IVS-V支持的检测通道数目
  86112. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoDiagnosisChannelNumber(LLONG lLoginID, const NET_IN_GET_SUPPORT_CHANNEL_NUM* pInParam, NET_OUT_GET_SUPPORT_CHANNEL_NUM* pOutParam, int nWaitTime);
  86113. #define MAX_VIDEO_CHANNEL_COUNT 128 // 最大视频通道号
  86114. ///@brief CLIENT_GetRemoteLowRateWPANCaps 入参
  86115. typedef struct tagNET_IN_GET_REMOTELOWRATEWPAN_CAPS
  86116. {
  86117. DWORD dwSize; // 结构体大小
  86118. int nChannelCount; // 实际要获取的视频通道个数
  86119. int stChannels[MAX_VIDEO_CHANNEL_COUNT]; // 视频通道号, 每一项对应单个通道的结果
  86120. } NET_IN_GET_REMOTELOWRATEWPAN_CAPS;
  86121. ///@brief 设备能力
  86122. typedef struct tagNET_REMOTE_LOW_RATE_WPAN_CAPS
  86123. {
  86124. BOOL bSupportWirelessGateway; // 设备是否支持无线网关
  86125. BYTE byRevserved[256]; // 保留字节
  86126. } NET_REMOTE_LOW_RATE_WPAN_CAPS;
  86127. ///@brief 返回结果
  86128. typedef enum tagEM_RETURN_CODE_TYPE
  86129. {
  86130. EM_RETURN_CODE_TYPE_UNKNOWN, // 未知
  86131. EM_RETURN_CODE_TYPE_OK, // 返回成功
  86132. EM_RETURN_CODE_TYPE_FAILED, // 返回失败
  86133. EM_RETURN_CODE_TYPE_TIMEOUT, // 返回超时
  86134. } EM_RETURN_CODE_TYPE;
  86135. ///@brief CLIENT_GetRemoteLowRateWPANCaps 出参
  86136. typedef struct tagNET_OUT_GET_REMOTELOWRATEWPAN_CAPS
  86137. {
  86138. DWORD dwSize; // 结构体大小
  86139. int nRetChannelCount; // 实际返回的通道个数
  86140. NET_REMOTE_LOW_RATE_WPAN_CAPS stCaps[MAX_VIDEO_CHANNEL_COUNT]; // 每个视频通道对应的设备能力
  86141. int nRetCodeCount; // 实际返回的结果个数
  86142. EM_RETURN_CODE_TYPE stReturnCode[MAX_VIDEO_CHANNEL_COUNT]; // 每个视频通道对应的返回结果
  86143. } NET_OUT_GET_REMOTELOWRATEWPAN_CAPS;
  86144. ///@brief 获取对应视频通道的设备能力, pInParam和pOutParam内存由用户申请和释放
  86145. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRemoteLowRateWPANCaps(LLONG lLoginID, const NET_IN_GET_REMOTELOWRATEWPAN_CAPS* pInParam, NET_OUT_GET_REMOTELOWRATEWPAN_CAPS* pOutParam, int nWaitTime);
  86146. ///@brief CLIENT_GetCoaxialSensorInfo 入参
  86147. typedef struct tagNET_IN_GET_COAXIAL_SENSOR_INFO
  86148. {
  86149. DWORD dwSize; // 结构体大小
  86150. int nChannel; // 视频通道, -1表示全部通道
  86151. } NET_IN_GET_COAXIAL_SENSOR_INFO;
  86152. ///@brief 传感器大类
  86153. typedef enum tagEM_SENSOR_CLASS_TYPE
  86154. {
  86155. EM_SENSOR_CLASS_TYPE_UNKOWN, // 未知
  86156. EM_SENSOR_CLASS_TYPE_ALARM_IN, // 开关量报警输入类
  86157. EM_SENSOR_CLASS_TYPE_ALARM_OUT, // 报警输出类
  86158. EM_SENSOR_CLASS_TYPE_ANALOGALARM, // 模拟量输入
  86159. } EM_SENSOR_CLASS_TYPE;
  86160. #define MAX_COAXIAL_SENSOR_INFO_COUNT 256 // 传感器信息最大个数
  86161. ///@brief 传感器信息
  86162. typedef struct tagNET_COAXIAL_SENSOR_INFO
  86163. {
  86164. NET_SENSOR_ID_INFO stSensorID; // 传感器ID信息
  86165. BOOL bIsOnLine; // 传感器是否在线
  86166. char szAlarmName[MAX_COMMON_STRING_128]; // 报警通道名称
  86167. EM_SENSOR_CLASS_TYPE emSensorClass; // 传感器大类
  86168. char szSN[MAX_COMMON_STRING_32]; // 传感器序列号
  86169. BYTE byRevserved[256]; // 保留字节
  86170. } NET_COAXIAL_SENSOR_INFO;
  86171. ///@brief CLIENT_GetCoaxialSensorInfo 出参
  86172. typedef struct tagNET_OUT_GET_COAXIAL_SENSOR_INFO
  86173. {
  86174. DWORD dwSize; // 结构体大小
  86175. int nRetCount; // 返回的传感器ID数量
  86176. NET_COAXIAL_SENSOR_INFO stSensorInfo[MAX_COAXIAL_SENSOR_INFO_COUNT]; // 传感器信息数组
  86177. } NET_OUT_GET_COAXIAL_SENSOR_INFO;
  86178. ///@brief 获取接入的传感器信息, pInParam和pOutParam内存由用户申请和释放
  86179. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCoaxialSensorInfo(LLONG lLoginID, const NET_IN_GET_COAXIAL_SENSOR_INFO* pInParam, NET_OUT_GET_COAXIAL_SENSOR_INFO* pOutParam, int nWaitTime);
  86180. #define MAX_VIDEO_URL_LEN 256 // 视频源URL地址长度
  86181. ///@brief 视频源信息
  86182. typedef struct tagNET_VIDEO_SOURCE_INFO
  86183. {
  86184. EM_DEV_PROTOCOL_TYPE emProtocolType; // 设备协议类型
  86185. char szIp[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // 前端设备IP 地址
  86186. int nPort; // 前端设备端口号
  86187. char szUser[DH_NEW_USER_NAME_LENGTH]; // 前端设备用户名
  86188. char szPwd[DH_NEW_USER_PSW_LENGTH]; // 前端设备密码
  86189. int nChannelID; // 前端设备通道号
  86190. char szStreamUrl[512]; // 视频源url地址, emProtocolType为EM_DEV_PROTOCOL_GENERAL 时有效
  86191. BYTE byReserved[256]; // 保留字节
  86192. } NET_VIDEO_SOURCE_INFO;
  86193. ///@brief 图像质量
  86194. typedef enum tagEM_TRANSCODE_IMAGE_QUALITY
  86195. {
  86196. EM_TRANSCODE_IMAGE_QUALITY_SELFADAPT, // 自适应
  86197. EM_TRANSCODE_IMAGE_QUALITY_Q10, // 10%
  86198. EM_TRANSCODE_IMAGE_QUALITY_Q30, // 30%
  86199. EM_TRANSCODE_IMAGE_QUALITY_Q50, // 50%
  86200. EM_TRANSCODE_IMAGE_QUALITY_Q60, // 60%
  86201. EM_TRANSCODE_IMAGE_QUALITY_Q80, // 80%
  86202. EM_TRANSCODE_IMAGE_QUALITY_Q100, // 100%
  86203. } EM_TRANSCODE_IMAGE_QUALITY;
  86204. ///@brief 虚拟转码视频压缩格式
  86205. typedef enum tagEM_TRANSCODE_VIDEO_COMPRESSION
  86206. {
  86207. EM_TRANSCODE_VIDEO_AUTO, // auto
  86208. EM_TRANSCODE_VIDEO_MPEG4, // MPEG4
  86209. EM_TRANSCODE_VIDEO_MPEG2, // MPEG2
  86210. EM_TRANSCODE_VIDEO_MPEG1, // MPEG1
  86211. EM_TRANSCODE_VIDEO_MJPG, // MJPG
  86212. EM_TRANSCODE_VIDEO_H263, // H.263
  86213. EM_TRANSCODE_VIDEO_H264, // H.264
  86214. EM_TRANSCODE_VIDEO_H265, // H.265
  86215. } EM_TRANSCODE_VIDEO_COMPRESSION;
  86216. ///@brief 转码视频格式
  86217. typedef struct tagNET_TRANSCODE_VIDEO_FORMAT
  86218. {
  86219. EM_TRANSCODE_VIDEO_COMPRESSION emCompression; // 视频压缩格式
  86220. UINT nWidth; // 视频宽度
  86221. UINT nHeight; // 视频高度
  86222. NET_EM_BITRATE_CONTROL emBitRateControl; // 码流控制模式
  86223. UINT nBitRate; // 视频码流(kbps)
  86224. float fFrameRate; // 视频帧率
  86225. UINT nIFrameInterval; // I帧间隔(1-100),比如50表示每49个B帧或P帧,设置一个I帧。
  86226. EM_TRANSCODE_IMAGE_QUALITY emImageQuality; // 图像质量
  86227. BYTE byReserved[512]; // 保留字节
  86228. } NET_TRANSCODE_VIDEO_FORMAT;
  86229. ///@brief 转码音频格式
  86230. typedef struct tagNET_TRANSCODE_AUDIO_FORMAT
  86231. {
  86232. NET_EM_AUDIO_FORMAT emCompression; // 音频压缩模式
  86233. UINT nFrequency; // 音频采样频率
  86234. BYTE byReserved[512]; // 保留字节
  86235. } NET_TRANSCODE_AUDIO_FORMAT;
  86236. ///@brief 转码抓图格式参数
  86237. typedef struct tagNET_TRANSCODE_SNAP_FORMAT
  86238. {
  86239. UINT nWidth; // 抓图宽度
  86240. UINT nHeight; // 抓图高度
  86241. BYTE byReserved[128]; // 保留字节
  86242. } NET_TRANSCODE_SNAP_FORMAT;
  86243. ///@brief 转码水印参数
  86244. typedef struct tagNET_TRANSCODE_WATER_MARK
  86245. {
  86246. char szText[256]; // 水印文本信息
  86247. BYTE byReserved[512]; // 保留字节
  86248. } NET_TRANSCODE_WATER_MARK;
  86249. ///@brief 虚拟通道转码策略
  86250. typedef struct tagNET_VIRTUALCHANNEL_POLICY
  86251. {
  86252. BOOL bDeleteByCaller; // 虚拟通道是否由调用者销毁
  86253. // 能力接口CLIENT_GetCapsOfTransCode出参NET_OUT_TRANSCODE_GET_CAPS.bSupportDelByCaller为TRUE时有效
  86254. BOOL bContinuous; // 是否持续转码
  86255. // 能力接口CLIENT_GetCapsOfTransCode出参NET_OUT_TRANSCODE_GET_CAPS.bSupportContinuous为TRUE时有效
  86256. UINT nVirtualChannel; // 虚拟通道号。当大于0时表示虚拟通道号由客户端指定和管理,范围处于 CLIENT_GetCapsOfTransCode返回的nMinVirtualChannel~nMaxVirtualChannel两值中间。否则由压缩设备管理
  86257. BYTE byReserved[508]; // 保留字节
  86258. } NET_VIRTUALCHANNEL_POLICY;
  86259. ///@brief CLIENT_GetVirtualChannelOfTransCode 接口输入参数
  86260. typedef struct tagNET_IN_GET_VIRTUALCHANNEL_OF_TRANSCODE
  86261. {
  86262. DWORD dwSize; // 结构体大小
  86263. NET_VIDEO_SOURCE_INFO stuVideoSourceInfo; // 视频源信息
  86264. NET_TRANSCODE_VIDEO_FORMAT stuTransVideoFormat; // 转码视频格式
  86265. NET_TRANSCODE_AUDIO_FORMAT stuTransAudioFormat; // 转码音频格式
  86266. NET_VIRTUALCHANNEL_POLICY stuVirtualChnPolicy; // 虚拟通道转码策略
  86267. NET_TRANSCODE_SNAP_FORMAT stuSnapFormat; // 转码抓图格式参数
  86268. NET_TRANSCODE_WATER_MARK stuWaterMark[4]; // 水印配置
  86269. } NET_IN_GET_VIRTUALCHANNEL_OF_TRANSCODE;
  86270. ///@brief CLIENT_GetVirtualChannelOfTransCode 接口输出参数
  86271. typedef struct tagNET_OUT_GET_VIRTUALCHANNEL_OF_TRANSCODE
  86272. {
  86273. DWORD dwSize; // 结构体大小
  86274. UINT nVirtualChannel; // 虚拟通道号
  86275. } NET_OUT_GET_VIRTUALCHANNEL_OF_TRANSCODE;
  86276. ///@brief CLIENT_DelVirtualChannelOfTransCode 接口输入参数
  86277. typedef struct tagNET_IN_DEL_VIRTUALCHANNEL_OF_TRANSCODE
  86278. {
  86279. DWORD dwSize; // 结构体大小
  86280. int nVirtualChannel; // 虚拟通道号, -1 表示删除所有虚拟通道号
  86281. } NET_IN_DEL_VIRTUALCHANNEL_OF_TRANSCODE;
  86282. ///@brief CLIENT_DelVirtualChannelOfTransCode 接口输出参数
  86283. typedef struct tagNET_OUT_DEL_VIRTUALCHANNEL_OF_TRANSCODE
  86284. {
  86285. DWORD dwSize; // 结构体大小
  86286. } NET_OUT_DEL_VIRTUALCHANNEL_OF_TRANSCODE;
  86287. ///@brief CLIENT_GetCapsOfTransCode 接口输入参数
  86288. typedef struct tagNET_IN_TRANDCODE_GET_CAPS
  86289. {
  86290. DWORD dwSize; // 结构体大小
  86291. } NET_IN_TRANDCODE_GET_CAPS;
  86292. ///@brief CLIENT_GetCapsOfTransCode 接口输出参数
  86293. typedef struct tagNET_OUT_TRANSCODE_GET_CAPS
  86294. {
  86295. DWORD dwSize; // 结构体大小
  86296. int nMinVirtualChannel; // 最小虚拟通道号
  86297. int nMaxVirtualChannel; // 最大虚拟通道号
  86298. BOOL bSupportErrorCode; // 是否支持压缩错误码实时上报
  86299. BOOL bSupportContinuous; // 是否支持从创建虚拟通道后持续转码直至虚拟通道被删除
  86300. BOOL bSupportDelByCaller; // 是否支持由调用者删除该虚拟通道
  86301. BOOL bSupportSpecifyVirtualChannel; // 是否支持由调用者指定虚拟通道号,
  86302. // 此项为true时,调用CLIENT_GetVirtualChannelOfTransCode时指定虚拟通道nVirtualChannel,虚拟通道号必须在nMinVirtualChannel~nMaxVirtualChannel的范围内;
  86303. // 当此项为false时,不支持客户端指定虚拟通道号。
  86304. float fMaxDownLoadSpeed; // 支持最大的压缩下载倍速
  86305. UINT nSupportCompressMaxChannel; // 设备当前支持的最多压缩通道数
  86306. char szSupportCompressResolutionRangeMin[32]; // 支持压缩的分辨率 最小值
  86307. char szSupportCompressResolutionRangeMax[32]; // 支持压缩的分辨率 最大值
  86308. int nSupportCompressFpsRangeMin; // 支持压缩的帧率 最小值
  86309. int nSupportCompressFpsRangeMax; // 支持压缩的帧率 最大值
  86310. char szSupportCompressAudioTypes[64][32]; // 支持的音频格式
  86311. int nSupportCompressAudioTypesNum; // 支持的音频格式个数
  86312. int nSupportCompressCompressionTypesNum; // 支持的视频压缩格式个数
  86313. char szSupportCompressCompressionTypes[64][32]; // 支持的视频压缩格式
  86314. } NET_OUT_TRANSCODE_GET_CAPS;
  86315. ///@brief 虚拟转码通道状态
  86316. typedef enum tagEM_VIRCHANNEL_STATUS
  86317. {
  86318. EM_VIRCHANNEL_STATUS_UNKNOWN = -1, // 未知
  86319. EM_VIRCHANNEL_STATUS_OVER_DECODE, // 超出解码
  86320. EM_VIRCHANNEL_STATUS_OVER_COMPRESS, // 超出压缩
  86321. EM_VIRCHANNEL_STATUS_NO_ORIGI_STREAM, // 无原始码流
  86322. EM_VIRCHANNEL_STATUS_SLAVE_OFFLINE, // 压缩通道所在的从片掉线
  86323. EM_VIRCHANNEL_STATUS_UNKNOWN_FAILURE = 255, // 未知的失败原因
  86324. } EM_VIRCHANNEL_STATUS;
  86325. ///@brief 虚拟转码通道状态信息
  86326. typedef struct tagNET_CB_VIRTUALCHANNEL_STATUS_INFO
  86327. {
  86328. UINT nVirChannelID; // 虚拟转码通道号
  86329. EM_VIRCHANNEL_STATUS emVirChannelStatus; // 虚拟转码通道状态
  86330. BYTE byReserved[1024]; // 保留字节
  86331. } NET_CB_VIRTUALCHANNEL_STATUS_INFO;
  86332. ///@brief 虚拟转码通道状态订阅函数原型, lAttachHandle 为 CLIENT_AttachVirtualChannelStatus 函数的返回值
  86333. typedef int (CALLBACK *fVirtualChannelStatusCallBack)(const LLONG lAttachHandle, const NET_CB_VIRTUALCHANNEL_STATUS_INFO *pstVirChnStatusInfo, const LDWORD dwUser);
  86334. ///@brief CLIENT_AttachVirtualChannelStatus 接口输入参数
  86335. typedef struct tagNET_IN_ATTACH_VIRTUALCHANNEL_STATUS
  86336. {
  86337. DWORD dwSize; // 结构体大小
  86338. BYTE byReserved[4]; // 用于字节对齐
  86339. fVirtualChannelStatusCallBack cbVirtualChannelStatus; // 虚拟转码通道状态订阅函数
  86340. LDWORD dwUser; // 用户数据
  86341. } NET_IN_ATTACH_VIRTUALCHANNEL_STATUS;
  86342. ///@brief CLIENT_GetRemoteCompressStatus 接口输入参数
  86343. typedef struct tagNET_IN_REMOTE_COMPRESS_STATUS
  86344. {
  86345. DWORD dwSize; // 结构体大小
  86346. } NET_IN_REMOTE_COMPRESS_STATUS;
  86347. ///@brief 业务类型
  86348. typedef enum tagEM_REMOTE_COMPRESS_TRADE_TYPE
  86349. {
  86350. EM_REMOTE_COMPRESS_TRADE_UNKNOWN = -1, // 未知
  86351. EM_REMOTE_COMPRESS_TRADE_PLAY, // 压缩预览
  86352. EM_REMOTE_COMPRESS_TRADE_PLAYBACK, // 压缩回放
  86353. EM_REMOTE_COMPRESS_TRADE_PLAYBACK_X2, // 压缩回放X2
  86354. EM_REMOTE_COMPRESS_TRADE_PLAYBACK_X4, // 压缩回放X4
  86355. EM_REMOTE_COMPRESS_TRADE_PLAYBACK_X8, // 压缩回放X8
  86356. EM_REMOTE_COMPRESS_TRADE_DOWNLOAD, // 压缩下载
  86357. EM_REMOTE_COMPRESS_TRADE_PLAYBACK_HALF, // 压缩回放X1/2
  86358. EM_REMOTE_COMPRESS_TRADE_PLAYBACK_QUARTER, // 压缩回放X1/4
  86359. EM_REMOTE_COMPRESS_TRADE_PLAYBACK_EIGHTH, // 压缩回放X1/8
  86360. } EM_REMOTE_COMPRESS_TRADE_TYPE;
  86361. ///@brief 压缩状态
  86362. typedef enum tagEM_REMOTE_COMPRESS_STATUS
  86363. {
  86364. EM_REMOTE_COMPRESS_STATUS_UNKNOWN = -1, // 未知
  86365. EM_REMOTE_COMPRESS_STATUS_OVERDECODE, // 超出解码能力
  86366. EM_REMOTE_COMPRESS_STATUS_OVERCOMPRESS, // 超出压缩能力
  86367. EM_REMOTE_COMPRESS_STATUS_ABNORMALCHANNEL, // 远程通道异常
  86368. EM_REMOTE_COMPRESS_STATUS_OFFLINE, // 子卡掉线
  86369. EM_REMOTE_COMPRESS_STATUS_ABNORMALSTREAM, // 异常码流
  86370. EM_REMOTE_COMPRESS_STATUS_NORMAL, // 正常
  86371. EM_REMOTE_COMPRESS_STATUS_OTHER = 255, // 其他
  86372. } EM_REMOTE_COMPRESS_STATUS;
  86373. ///@brief 远程通道的压缩状态信息
  86374. typedef struct tagNET_REMOTE_COMPRESS_STATUS_INFO
  86375. {
  86376. UINT nChannel; // 设备通道号, 可以表示本地通道或压缩任务虚拟通道号
  86377. UINT nRemoteChannel; // 远程设备通道号
  86378. char szIPAddr[64]; // 源始码流的IP地址
  86379. EM_DEV_PROTOCOL_TYPE emProtocolType; // 连接设备的协议类型
  86380. UINT nPort; // 端口号
  86381. EM_REMOTE_COMPRESS_TRADE_TYPE emTradeType; // 业务类型
  86382. EM_REMOTE_COMPRESS_STATUS emRemoteCompressStatus; // 压缩状态
  86383. CAPTURE_SIZE emOriginResolution; // 原始码流分辨率, 固定分辨率用字符串表示,和实际分辨率的对应关系如下。如果在分辨率列表中不存在、或者无法区分N制P制时,统一采用"WWxHH"的格式表示
  86384. UINT nOriginBitrate; // 当前获取的原始码流实时比特率, 单位 Kbps
  86385. UINT nCompressBitrate; // 当前获取的压缩码流实时比特率, 单位 Kbps
  86386. CAPTURE_SIZE emCompressResolution; // 压缩码流分辨率, 固定分辨率用字符串表示,和实际分辨率的对应关系如下。如果在分辨率列表中不存在、或者无法区分N制P制时,统一采用"WWxHH"的格式表示,
  86387. INT64 nStartStreamTime; // 视频流开始压缩时间戳,调度任务下发的时间戳,按设备时间为准
  86388. char szOriginCompressionType[32]; // 原始码流视频格式,默认值是H.264
  86389. char szCompressCompressionType[32]; // 压缩后码流视频格式,默认值是H.264
  86390. BYTE byReserved[952]; // 保留字节
  86391. } NET_REMOTE_COMPRESS_STATUS_INFO;
  86392. ///@brief CLIENT_GetRemoteCompressStatus 接口输出参数
  86393. typedef struct tagNET_OUT_REMOTE_COMPRESS_STATUS
  86394. {
  86395. DWORD dwSize; // 结构体大小
  86396. NET_REMOTE_COMPRESS_STATUS_INFO stuInfo[1024]; // 远程通道的压缩状态信息
  86397. int nstuInfoNum; // 远程通道的压缩状态信息数量
  86398. } NET_OUT_REMOTE_COMPRESS_STATUS;
  86399. ///@brief 编码参数
  86400. typedef struct tagNET_REMOTE_COMPRESS_REMAIN_ENCODE
  86401. {
  86402. UINT nWidth; // 视频宽度,单位: 像素
  86403. UINT nHeight; // 视频高度,单位: 像素
  86404. UINT nFPS; // 视频帧率, 单位: 帧/秒
  86405. BYTE byReserved[126]; // 保留字节
  86406. } NET_REMOTE_COMPRESS_REMAIN_ENCODE;
  86407. ///@brief CLIENT_GetRemoteCompressRemain 接口输出参数
  86408. typedef struct tagNET_IN_REMOTE_COMPRESS_REMAIN
  86409. {
  86410. DWORD dwSize; // 结构体大小
  86411. NET_REMOTE_COMPRESS_REMAIN_ENCODE stuEncode; // 编码参数
  86412. } NET_IN_REMOTE_COMPRESS_REMAIN;
  86413. ///@brief CLIENT_GetRemoteCompressRemain 接口输出参数
  86414. typedef struct tagNET_OUT_REMOTE_COMPRESS_REMAIN
  86415. {
  86416. DWORD dwSize; // 结构体大小
  86417. UINT nChannelNum; // 剩余压缩路数
  86418. } NET_OUT_REMOTE_COMPRESS_REMAIN;
  86419. ///@brief 获取转码虚拟通道号(虚拟通道号用于预览与回放), pInParam 和pOutParam 由用户申请和释放
  86420. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVirtualChannelOfTransCode(LLONG lLoginID, const NET_IN_GET_VIRTUALCHANNEL_OF_TRANSCODE* pInParam, NET_OUT_GET_VIRTUALCHANNEL_OF_TRANSCODE* pOutParam, int nWaitTime);
  86421. ///@brief 删除转码虚拟通道号, pInParam 和pOutParam 由用户申请和释放
  86422. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelVirtualChannelOfTransCode(LLONG lLoginID, const NET_IN_DEL_VIRTUALCHANNEL_OF_TRANSCODE* pInParam, NET_OUT_DEL_VIRTUALCHANNEL_OF_TRANSCODE* pOutParam, int nWaitTime);
  86423. ///@brief 获取转码能力集, pInParam 和pOutParam 由用户申请和释放
  86424. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCapsOfTransCode(LLONG lLoginID, const NET_IN_TRANDCODE_GET_CAPS* pInParam, NET_OUT_TRANSCODE_GET_CAPS* pOutParam, int nWaitTime);
  86425. ///@brief 订阅虚拟转码通道状态, pInParam 由用户申请和释放
  86426. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachVirtualChannelStatus(LLONG lLoginID, const NET_IN_ATTACH_VIRTUALCHANNEL_STATUS* pInParam, const int nWaitTime);
  86427. ///@brief 取消订阅虚拟转码通道状态, lAttachHandle 为 CLIENT_AttachVirtualChannelStatus 函数的返回值
  86428. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVirtualChannelStatus(LLONG lAttachHandle);
  86429. ///@brief 获取远程通道的压缩状态, pInParam 由用户申请和释放
  86430. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRemoteCompressStatus(LLONG lLoginID, const NET_IN_REMOTE_COMPRESS_STATUS* pInParam, NET_OUT_REMOTE_COMPRESS_STATUS* pOutParam, int nWaitTime);
  86431. ///@brief 获取压缩转码剩余能力, pInParam 由用户申请和释放
  86432. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRemoteCompressRemain(LLONG lLoginID, const NET_IN_REMOTE_COMPRESS_REMAIN* pInParam, NET_OUT_REMOTE_COMPRESS_REMAIN* pOutParam, int nWaitTime);
  86433. ////////////////////////////////////远程设备信息采集接口 start/////////////////////////////////////////
  86434. ///@brief 远程设备信息采集能力入参,对应 NET_REMOTE_COLLECT_DEVINFO_CAPS
  86435. typedef struct tagNET_IN_REMOTE_COLLECT_DEVINFO_CAPS
  86436. {
  86437. DWORD dwSize; // 结构体大小
  86438. UINT nChannel; // 远程设备通道号,若为IPC,请填0
  86439. }NET_IN_REMOTE_COLLECT_DEVINFO_CAPS;
  86440. ///@brief 远程设备信息采集能力出参,对应 NET_REMOTE_COLLECT_DEVINFO_CAPS
  86441. typedef struct tagNET_OUT_REMOTE_COLLECT_DEVINFO_CAPS
  86442. {
  86443. DWORD dwSize; // 结构体大小
  86444. BOOL bSupportRemoteCollectSniffer; // 是否支持远程采集抓包
  86445. BOOL bSupportRemoteCollectLog; // 是否支持远程采集串口日志
  86446. }NET_OUT_REMOTE_COLLECT_DEVINFO_CAPS;
  86447. ///@brief 远程采集类型
  86448. typedef enum tagNET_EM_REMOTE_COLLECT_TYPE
  86449. {
  86450. NET_EM_REMOTE_COLLECT_TYPE_UNKNOWN = 0, // 未知
  86451. NET_EM_REMOTE_COLLECT_TYPE_CAPTURE, // 抓包
  86452. NET_EM_REMOTE_COLLECT_TYPE_LOG, // 日志
  86453. }NET_EM_REMOTE_COLLECT_TYPE;
  86454. ///@brief 当前采集状态
  86455. typedef enum tagNET_EM_REMOTE_COLLECT_STATUS
  86456. {
  86457. NET_EM_REMOTE_COLLECT_STATUS_UNKNOWN = 0, // 未知
  86458. NET_EM_REMOTE_COLLECT_STATUS_IDLE, // 空闲
  86459. NET_EM_REMOTE_COLLECT_STATUS_COLLECTING, // 正在采集
  86460. }NET_EM_REMOTE_COLLECT_STATUS;
  86461. ///@brief 日志级别
  86462. typedef enum tagNET_EM_REMOTE_COLLECT_LOG_LEVEL
  86463. {
  86464. NET_EM_REMOTE_COLLECT_LOG_LEVEL_NO_PRINT = 0, // 不打印
  86465. NET_EM_REMOTE_COLLECT_LOG_LEVEL_FATAL, // 致命
  86466. NET_EM_REMOTE_COLLECT_LOG_LEVEL_ERROR, // 错误
  86467. NET_EM_REMOTE_COLLECT_LOG_LEVEL_WARN, // 警告
  86468. NET_EM_REMOTE_COLLECT_LOG_LEVEL_INFO, // 提示
  86469. NET_EM_REMOTE_COLLECT_LOG_LEVEL_TRACE, // 跟踪
  86470. NET_EM_REMOTE_COLLECT_LOG_LEVEL_DEBUG, // 调试
  86471. }NET_EM_REMOTE_COLLECT_LOG_LEVEL;
  86472. ///@brief 远程采集文件信息
  86473. typedef struct tagNET_REMOTE_COLLECT_FILE_INFO
  86474. {
  86475. char szFilePath[260]; // 文件路径
  86476. UINT nFileSize; // 文件大小,单位Byte
  86477. BYTE byReserved[248]; // 预留
  86478. }NET_REMOTE_COLLECT_FILE_INFO;
  86479. ///@brief 设备远程采集信息
  86480. typedef struct tagNET_REMOTE_COLLECT_DEV_INFO
  86481. {
  86482. NET_EM_REMOTE_COLLECT_TYPE emType; // 采集类型
  86483. NET_EM_REMOTE_COLLECT_STATUS emStatus; // 采集状态
  86484. NET_REMOTE_COLLECT_FILE_INFO stuFileInfos[128]; // 文件信息
  86485. int nFileInfoNum; // 文件个数
  86486. BYTE byReserved[1020]; // 预留
  86487. }NET_REMOTE_COLLECT_DEV_INFO;
  86488. ///@brief 获取设备远程采集信息输入参数
  86489. typedef struct tagNET_IN_GET_REMOTE_COLLECT_DEV_INFO
  86490. {
  86491. DWORD dwSize; // 结构体大小
  86492. UINT nChannel; // 通道号
  86493. }NET_IN_GET_REMOTE_COLLECT_DEV_INFO;
  86494. ///@brief 获取设备远程采集信息输出参数
  86495. typedef struct tagNET_OUT_GET_REMOTE_COLLECT_DEV_INFO
  86496. {
  86497. DWORD dwSize; // 结构体大小
  86498. int nInfoNum; // 返回的信息个数
  86499. NET_REMOTE_COLLECT_DEV_INFO stuInfos[8]; // 采集信息列表
  86500. }NET_OUT_GET_REMOTE_COLLECT_DEV_INFO;
  86501. ///@brief 抓包端口过滤方式
  86502. typedef enum tagNET_EM_PROT_FILTER_TYPE
  86503. {
  86504. NET_EM_PROT_FILTER_TYPE_NOUSE, // 不使用
  86505. NET_EM_PROT_FILTER_TYPE_INCLUDE, // 包含
  86506. NET_EM_PROT_FILTER_TYPE_EXCLUDE, // 排除
  86507. }NET_EM_PROT_FILTER_TYPE;
  86508. ///@brief 文件采集规则信息
  86509. typedef struct tagNET_REMOTE_COLLECT_TO_FILE_RULE
  86510. {
  86511. NET_EM_REMOTE_COLLECT_TYPE emType; // 采集类型
  86512. NET_EM_REMOTE_COLLECT_LOG_LEVEL emLevel; // 日志级别,采集类型为日志时生效
  86513. char szNetworkCard[128]; // 网卡名称,采集类型为抓包时生效
  86514. NET_EM_PROT_FILTER_TYPE emSrcPortFilter; // 源端口过滤方式
  86515. int nSrcPortNum; // 源端口过滤列表个数
  86516. unsigned short nSrcPorts[16]; // 源端口过滤列表,采集类型为抓包时生效
  86517. NET_EM_PROT_FILTER_TYPE emDstPortFilter; // 目标端口过滤方式
  86518. int nDstPortNum; // 目标端口过滤列表个数
  86519. unsigned short nDstPorts[16]; // 目标端口过滤列表,采集类型为抓包时生效
  86520. BYTE byReserved[1024]; // 保留字节
  86521. }NET_REMOTE_COLLECT_TO_FILE_RULE;
  86522. ///@brief CLIENT_StartRemoteCollectToFile 入参
  86523. typedef struct tagNET_IN_START_REMOTE_COLLECT_TO_FILE
  86524. {
  86525. DWORD dwSize; // 结构体大小
  86526. UINT nChannel; // 通道号
  86527. NET_REMOTE_COLLECT_TO_FILE_RULE stuRules[8]; // 设备采集规则信息
  86528. int nRuleNum; // 设备采集规则数量
  86529. }NET_IN_START_REMOTE_COLLECT_TO_FILE;
  86530. ///@brief CLIENT_StartRemoteCollectToFile 出参
  86531. typedef struct tagNET_OUT_START_REMOTE_COLLECT_TO_FILE
  86532. {
  86533. DWORD dwSize; // 结构体大小
  86534. }NET_OUT_START_REMOTE_COLLECT_TO_FILE;
  86535. ///@brief 获取远程采集
  86536. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRemoteCollectDevInfo(LLONG lLoginID, NET_IN_GET_REMOTE_COLLECT_DEV_INFO* pstInParam, NET_OUT_GET_REMOTE_COLLECT_DEV_INFO* pstOutParam, int nWaitTime);
  86537. ///@brief 开始文件方式远程采集设备信息接口
  86538. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartRemoteCollectToFile(LLONG lLoginID, const NET_IN_START_REMOTE_COLLECT_TO_FILE* pInParam, NET_OUT_START_REMOTE_COLLECT_TO_FILE* pOutParam, const int nWaitTime);
  86539. ///@brief 停止文件方式远程采集设备信息接口,lCollectID为 CLIENT_StartRemoteCollectToFile 返回值
  86540. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopRemoteCollectToFile(LLONG lCollectID);
  86541. ////////////////////////////////////远程设备信息采集接口 end/////////////////////////////
  86542. /////////////////////////////手机报警推送订阅新协议 Start/////////////////////////////////
  86543. ///@brief CLIENT_GetMobilePusherCaps 入参
  86544. typedef struct tagNET_IN_GET_MOBILE_PUSHER_CAPS
  86545. {
  86546. DWORD dwSize; // 结构体大小
  86547. } NET_IN_GET_MOBILE_PUSHER_CAPS;
  86548. ///@brief 设备新增支持按通道订阅的事件集合
  86549. typedef struct tagNET_SUPPORT_CHANNEL_SUBSCRIBE_EVENT
  86550. {
  86551. BOOL bIsSupportProfileAlarmTransmit; // 是否支持 ProfileAlarmTransmit事件
  86552. BOOL bIsSupportCallNoAnswered; // 是否支持 CallNoAnswered 事件
  86553. BYTE byReserved[56]; // 保留字节
  86554. }NET_SUPPORT_CHANNEL_SUBSCRIBE_EVENT;
  86555. ///@brief CLIENT_GetMobilePusherCaps 出参
  86556. typedef struct tagNET_OUT_GET_MOBILE_PUSHER_CAPS
  86557. {
  86558. DWORD dwSize; // 结构体大小
  86559. BOOL bEnablePush; // 设备是否支持设置手机报警推送使能
  86560. BOOL bAddNotification; // 设备是否支持添加推送订阅
  86561. BOOL bDelNotification; // 设备是否支持取消推送订阅
  86562. BOOL bSupportPriority; // DMSS手机推送,是否支持优先级,手机APP需要根据此字段来判断下发的主服务器配置
  86563. BOOL bPushEventSchedule; // 是否支持订制时间段内推送
  86564. BOOL bVTOPushErrorCode; // 是否支持VTO推送错误码上报
  86565. BOOL bSupportGetPushConfig; // 是否支持获取设备订阅配置
  86566. NET_SUPPORT_CHANNEL_SUBSCRIBE_EVENT stuChannelSubscribeEvent; // 设备新增支持按通道订阅的事件集合
  86567. } NET_OUT_GET_MOBILE_PUSHER_CAPS;
  86568. ///@brief 获取手机推送支持能力, pInParam和pOutParam内存由用户申请和释放
  86569. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMobilePusherCaps(LLONG lLoginID, NET_IN_GET_MOBILE_PUSHER_CAPS *pInParam, NET_OUT_GET_MOBILE_PUSHER_CAPS *pOutParam, int nWaitTime);
  86570. ///@brief CLIENT_EnablePushMobilePusher 入参
  86571. typedef struct tagNET_IN_ENABLE_PUSH_MOBILE_PUSHER
  86572. {
  86573. DWORD dwSize; // 结构体大小
  86574. BOOL bEnablePush; // 是否开启手机推送
  86575. } NET_IN_ENABLE_PUSH_MOBILE_PUSHER;
  86576. ///@brief CLIENT_EnablePushMobilePusher 出参
  86577. typedef struct tagNET_OUT_ENABLE_PUSH_MOBILE_PUSHER
  86578. {
  86579. DWORD dwSize; // 结构体大小
  86580. } NET_OUT_ENABLE_PUSH_MOBILE_PUSHER;
  86581. ///@brief 设置手机报警推送使能, pInParam和pOutParam内存由用户申请和释放
  86582. CLIENT_NET_API BOOL CALL_METHOD CLIENT_EnablePushMobilePusher(LLONG lLoginID, NET_IN_ENABLE_PUSH_MOBILE_PUSHER *pInParam, NET_OUT_ENABLE_PUSH_MOBILE_PUSHER *pOutParam, int nWaitTime);
  86583. ///@brief 推送服务器配置
  86584. typedef struct tagNET_PUSH_SERVER_INFO_EX
  86585. {
  86586. char szAddress[MAX_URL_LEN]; // 地址
  86587. int nPort; // 端口
  86588. BYTE byReserved[512]; // 保留字节
  86589. } NET_PUSH_SERVER_INFO_EX;
  86590. ///@brief 订阅组
  86591. typedef struct tagNET_REGISTER_GROUP
  86592. {
  86593. int nIndex; // 通道号,-1表示按库订阅,不区分通道,为MobilePushNotification 中indexs的子集
  86594. int nGroupCount; // 目标库ID集合的数量
  86595. char szGroup[64][64]; // 目标库ID集合
  86596. BYTE byReserved[128]; // 保留字节
  86597. } NET_REGISTER_GROUP;
  86598. ///@brief 目标比对事件过滤器
  86599. typedef struct tagNET_CUSTOM_TILTER_OF_FACE_COMPARISION
  86600. {
  86601. int nRegisterGroupCount; // 订阅组数量
  86602. NET_REGISTER_GROUP stuRegisterGroup[256]; // 订阅组
  86603. BYTE byReserved[1028]; // 保留字节
  86604. } NET_CUSTOM_TILTER_OF_FACE_COMPARISION;
  86605. ///@brief CLIENT_AddMobilePusherNotification 入参
  86606. typedef struct tagNET_IN_ADD_MOBILE_PUSHER_NOTIFICATION
  86607. {
  86608. DWORD dwSize; // 结构体大小
  86609. char szRegisterID[MAX_REGISTER_ID_LEN]; // RegisterID, 机向Appple/Android服务器注册返回的, 每次不同
  86610. char szAppID[MAX_APP_ID_LEN]; // AppID
  86611. EM_MOBILE_SERVER_TYPE emServerType; // 平台类型
  86612. EM_PUSH_GATEWAY_TYPE emPushGatewayType; // 推送网关类型, emServerType为EM_MOBILE_SERVER_TYPE_SDKCLOUD时有效
  86613. int nPeriodOfValidity; // 有效时间,单位为秒
  86614. char szAuthServerAddr[MAX_URL_LEN]; // Android验证服务器地址
  86615. int nAuthServerPort; // Android验证服务器端口
  86616. NET_PUSH_SERVER_INFO_EX stuPushServerMain; // 推送服务器配置, 官方。首选服务器,如果推送失败,再尝试重定向或代理服务器
  86617. char szPushServerAddr[MAX_URL_LEN]; // 推送服务器地址
  86618. // 按官方服务器要求,选用最新的加密算法再转发给官方服务器
  86619. int nPushServerPort; // 推送服务器端口
  86620. char szDevName[MAX_COMMON_STRING_64]; // 设备别名,手机端设置显示
  86621. char szDevID[MAX_COMMON_STRING_64]; // 设备标识,手机端设置使用
  86622. char szUser[MAX_COMMON_STRING_64]; // google的GCM/C2DM推送验证用户名
  86623. char szCertificate[MAX_IOS_CERTIFICATE_LEN]; // 证书信息,base64之后的字符串,需要采用TLS加密时有效, iOS需要
  86624. char szSecretKey[MAX_IOS_SECRET_KEY_LEN]; // 极光(Jpush)推送密钥, 明文字符串, Android极光Jpush推送需要
  86625. int nSubScribeNum; // 实际的订阅类型个数, 获取配置有效
  86626. NET_SUBSCRIBE_INFO_EX* pstuSubscribes; // 订阅类型,由用户申请内存,大小为sizeof(NET_SUBSCRIBE_INFO)*nSubScribeMax
  86627. DH_TSECT stuAllEventPushTime[DH_N_WEEKS][DH_N_TSECT]; // 设备推送时间段,为一个7*6的二维数组,7个元素对应每周7天(第一个为星期日),每天内最多6个单独时间段。
  86628. // 每个时间段的第一个数字1代表该时间段使能,0为非使能状态。
  86629. // 当bIsTimeEnable为TRUE时,必须设置有效推送时间段; bIsTimeEnable为FALSE时,设备推送不受时间限制
  86630. BOOL bIsTimeEnable; // 设备推送时间段(stuAllEventPushTime)字段是否有效,默认为FALSE
  86631. BOOL bUserEx; // 登陆用户名的扩展是否有效
  86632. char szUserEx[256]; // 登陆用户名的扩展
  86633. char szBindingUserName[64]; // APP配置所绑定的用户名(当删除该用户时候,需要同时把该条配置删除,实现不再推送到APP)
  86634. } NET_IN_ADD_MOBILE_PUSHER_NOTIFICATION;
  86635. ///@brief CLIENT_AddMobilePusherNotification 出参
  86636. typedef struct tagNET_OUT_ADD_MOBILE_PUSHER_NOTIFICATION
  86637. {
  86638. DWORD dwSize; // 结构体大小
  86639. } NET_OUT_ADD_MOBILE_PUSHER_NOTIFICATION;
  86640. ///@brief 手机APP向设备添加一个推送订阅, pInParam和pOutParam内存由用户申请和释放
  86641. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddMobilePusherNotification(LLONG lLoginID, NET_IN_ADD_MOBILE_PUSHER_NOTIFICATION *pInParam, NET_OUT_ADD_MOBILE_PUSHER_NOTIFICATION *pOutParam, int nWaitTime);
  86642. ///@brief CLIENT_DelMobilePusherNotification 入参
  86643. typedef struct tagNET_IN_DEL_MOBILE_PUSHER_NOTIFICATION
  86644. {
  86645. DWORD dwSize; // 结构体大小
  86646. char szRegisterID[MAX_REGISTER_ID_LEN]; // RegisterID, 手机向Appple/Android服务器注册返回的,每次不同;
  86647. char szAppID[MAX_APP_ID_LEN]; // AppID(手机每开一个客户端,会产生一个)
  86648. } NET_IN_DEL_MOBILE_PUSHER_NOTIFICATION;
  86649. ///@brief CLIENT_DelMobilePusherNotification 出参
  86650. typedef struct tagNET_OUT_DEL_MOBILE_PUSHER_NOTIFICATION
  86651. {
  86652. DWORD dwSize; // 结构体大小
  86653. } NET_OUT_DEL_MOBILE_PUSHER_NOTIFICATION;
  86654. ///@brief 手机APP向设备删除一个推送订阅, pInParam和pOutParam内存由用户申请和释放
  86655. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelMobilePusherNotification(LLONG lLoginID, NET_IN_DEL_MOBILE_PUSHER_NOTIFICATION *pInParam, NET_OUT_DEL_MOBILE_PUSHER_NOTIFICATION *pOutParam, int nWaitTime);
  86656. ///@brief 手机APP指定配置名称查询模式
  86657. typedef enum tagEM_MOBILE_PUSHER_NOTIFICATION_TYPE
  86658. {
  86659. EM_MOBILE_PUSHER_NOTIFICATION_TYPE_UNKNOWN, // 未知
  86660. EM_MOBILE_PUSHER_NOTIFICATION_TYPE_ALL, // 全部
  86661. EM_MOBILE_PUSHER_NOTIFICATION_TYPE_SINGLE, // 单个
  86662. }EM_MOBILE_PUSHER_NOTIFICATION_TYPE;
  86663. ///@brief 手机APP向设备查询当前使用的配置名称,以及设备的订阅配置(CLIENT_GetMobilePusherNotification)入参
  86664. typedef struct tagNET_IN_GET_MOBILE_PUSHER_NOTIFICATION_INFO
  86665. {
  86666. DWORD dwSize; // 结构体大小
  86667. EM_MOBILE_PUSHER_NOTIFICATION_TYPE emFindMode; // 查询模式
  86668. char szRegisterID[256]; // App注册ID
  86669. char szAppID[256]; // AppID
  86670. } NET_IN_GET_MOBILE_PUSHER_NOTIFICATION_INFO;
  86671. ///@brief 设备使用的推送配置名称
  86672. typedef enum tagEM_MOBILE_PUSHER_NAME_TYPE
  86673. {
  86674. EM_MOBILE_PUSHER_NAME_TYPE_UNKNOWN, // 未知
  86675. EM_MOBILE_PUSHER_NAME_TYPE_NOTIFICATION, // 通知
  86676. EM_MOBILE_PUSHER_NAME_TYPE_NOTIFICATIONCFG, // 通知配置
  86677. }EM_MOBILE_PUSHER_NAME_TYPE;
  86678. ///@brief 手机APP向设备查询当前使用的配置名称,以及设备的订阅配置(CLIENT_GetMobilePusherNotification) 出参
  86679. typedef struct tagNET_OUT_GET_MOBILE_PUSHER_NOTIFICATION_INFO
  86680. {
  86681. DWORD dwSize; // 结构体大小
  86682. EM_MOBILE_PUSHER_NAME_TYPE emMobilePusherName; // 配置名称
  86683. int nMaxNotificationNum; // 用户分配最大接收查询配置消息个数
  86684. int nRetNotificationNum; // 实际返回接收查询配置消息个数
  86685. NET_MOBILE_PUSH_NOTIFICATION_GENERAL_INFO *pstuMobilePusherNotificationCfg;// 订阅配置
  86686. }NET_OUT_GET_MOBILE_PUSHER_NOTIFICATION_INFO;
  86687. ///@brief 手机APP向设备查询当前使用的配置名称,以及设备的订阅配置
  86688. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMobilePusherNotificationCfg(LLONG lLoginID, const NET_IN_GET_MOBILE_PUSHER_NOTIFICATION_INFO *pInParam, NET_OUT_GET_MOBILE_PUSHER_NOTIFICATION_INFO *pOutParam, int nWaitTime);
  86689. ///@brief CLIENT_GetMobilePusherEventList 入参
  86690. typedef struct tagNET_IN_GET_MOBILE_PUSHER_EVNET_LIST
  86691. {
  86692. DWORD dwSize; // 结构体大小
  86693. UINT nChannelNum; // 通道号的数量
  86694. int nChannel[1024]; // 通道号,每个元素表示一个通道,-1 表示全通道
  86695. } NET_IN_GET_MOBILE_PUSHER_EVNET_LIST;
  86696. ///@brief 事件的组推送能力集,目前只有目标比对事件(EVENT_IVS_FACE_COMPARISION)支持该能力
  86697. typedef enum tagEM_PUSH_BY_GROUP_TYPE
  86698. {
  86699. EM_PUSH_BY_GROUP_NOT_INVOLVE, // 不涉及该能力
  86700. EM_PUSH_BY_GROUP_SUPPORT, // 支持组推送能力
  86701. EM_PUSH_BY_GROUP_NOT_SUPPORT, // 不支持组推送能力
  86702. }EM_PUSH_BY_GROUP_TYPE;
  86703. ///@brief 单个事件信息
  86704. typedef struct tagNET_MOBILE_PUSHER_EVNET
  86705. {
  86706. char szCode[64]; // 事件码
  86707. int nEventType; // 事件类型
  86708. EM_PUSH_BY_GROUP_TYPE emPushByGroupType; // 事件的组推送能力集
  86709. BYTE byReserved[128]; // 保留字节
  86710. } NET_MOBILE_PUSHER_EVNET;
  86711. ///@brief 事件列表信息
  86712. typedef struct tagNET_MOBILE_PUSHER_EVNET_LIST_INFO
  86713. {
  86714. int nCount; // 所支持的事件数量
  86715. BYTE byReserved[4]; // 保留字节
  86716. NET_MOBILE_PUSHER_EVNET stuMobilePusherEvent[1024]; // 事件信息数组
  86717. }NET_MOBILE_PUSHER_EVNET_LIST_INFO;
  86718. ///@brief CLIENT_GetMobilePusherEventList 出参
  86719. typedef struct tagNET_OUT_GET_MOBILE_PUSHER_EVNET_LIST
  86720. {
  86721. DWORD dwSize; // 结构体大小
  86722. UINT nMaxEventlistNum; // 事件列表最大的数量
  86723. UINT nRetEventlistNum; // 返回的事件列表数量
  86724. NET_MOBILE_PUSHER_EVNET_LIST_INFO* pMobilePusherEventlist; // 事件列表的指针,需要用户申请
  86725. } NET_OUT_GET_MOBILE_PUSHER_EVNET_LIST;
  86726. ///@brief 获取手机推送事件能力
  86727. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMobilePusherEventList(LLONG lLoginID,
  86728. const NET_IN_GET_MOBILE_PUSHER_EVNET_LIST* pInParam,
  86729. NET_OUT_GET_MOBILE_PUSHER_EVNET_LIST* pOutParam,
  86730. int nWaitTime);
  86731. /////////////////////////////手机报警推送订阅新协议 End/////////////////////////////////
  86732. ///@brief 凭证信息
  86733. typedef struct tagNET_CREDENTIAL_INFO
  86734. {
  86735. char CredentialHolder[16]; // 身份拥有者
  86736. NET_TIME stuValidDateStart; // 开始有效期
  86737. NET_TIME stuValidDateEnd; // 截止有效期
  86738. NET_ACCESS_METHOD emType; // 开门类型
  86739. DWORD nIndex; // 索引号
  86740. char szCardNo[DH_MAX_CARDINFO_LEN]; // 卡号
  86741. BYTE byReserved[1024]; // 保留字节
  86742. }NET_CREDENTIAL_INFO;
  86743. ///@brief 上报的离线授权信息
  86744. typedef struct tagNET_SMARTLOCK_NOTIFY_OFFLINEAUTH
  86745. {
  86746. char szSerialNumber[32]; // 无线设备序列号(智能锁)
  86747. DWORD nACK; // 确认号
  86748. NET_CREDENTIAL_INFO stCredentialInfo; // 凭证信息
  86749. BYTE byReserved[1024]; // 保留字节
  86750. }NET_SMARTLOCK_NOTIFY_OFFLINEAUTH;
  86751. ///@brief 离线授权信息回调函数指针
  86752. typedef void (CALLBACK *fSmartLockOfflineAuthCallBack) (LLONG lLoginId, LLONG lAttachHandle, const NET_SMARTLOCK_NOTIFY_OFFLINEAUTH* pBuf, LDWORD dwUser);
  86753. ///@brief 智能锁离线授权订阅入参(对应接口 CLIENT_AttachSmartLockOfflineAuth)
  86754. typedef struct tagNET_IN_SMARTLOCK_OFFLINEAUTH
  86755. {
  86756. DWORD dwSize; // 结构体大小
  86757. char szUUID[36]; // 客户端惟一标识
  86758. fSmartLockOfflineAuthCallBack cbOfflineAuth; // 离线授权信息回调
  86759. LDWORD dwUser; // 用户数据
  86760. }NET_IN_SMARTLOCK_OFFLINEAUTH;
  86761. ///@brief 智能锁离线授权订阅出参(对应接口 CLIENT_AttachSmartLockOfflineAuth)
  86762. typedef struct tagNET_OUT_SMARTLOCK_OFFLINEAUTH
  86763. {
  86764. DWORD dwSize; // 结构体大小
  86765. }NET_OUT_SMARTLOCK_OFFLINEAUTH;
  86766. ///@brief 智能锁离线授权订阅
  86767. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSmartLockOfflineAuth(LLONG lLoginID, const NET_IN_SMARTLOCK_OFFLINEAUTH* pstInParam, NET_OUT_SMARTLOCK_OFFLINEAUTH* pstOutParam, int nWaitTime);
  86768. ///@brief 智能锁退订事件重传
  86769. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSmartLockOfflineAuth(LLONG lAttachHandle);
  86770. ///@brief 智能锁确认离线授权入参(对应接口 CLIENT_AckSmartLockOfflineAuth)
  86771. typedef struct tagNET_IN_SMARTLOCK_ACK_OFFLINEAUTH
  86772. {
  86773. DWORD dwSize; // 结构体大小
  86774. char szUUID[36]; // 客户端惟一标识
  86775. char szSerialNumber[32]; // 无线设备序列号(智能锁)
  86776. DWORD nACK; // 事件的确认ID
  86777. }NET_IN_SMARTLOCK_ACK_OFFLINEAUTH;
  86778. ///@brief 智能锁确认离线授权出参(对应接口 CLIENT_AckSmartLockOfflineAuth)
  86779. typedef struct tagNET_OUT_SMARTLOCK_ACK_OFFLINEAUTH
  86780. {
  86781. DWORD dwSize; // 结构体大小
  86782. }NET_OUT_SMARTLOCK_ACK_OFFLINEAUTH;
  86783. ///@brief 智能锁确认离线授权
  86784. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AckSmartLockOfflineAuth(LLONG lLoginID, NET_IN_SMARTLOCK_ACK_OFFLINEAUTH* pstInParam, NET_OUT_SMARTLOCK_ACK_OFFLINEAUTH* pstOutParam, int nWaitTime);
  86785. ///@brief CLIENT_EncryptString 接口入参
  86786. typedef struct tagNET_IN_ENCRYPT_STRING
  86787. {
  86788. DWORD dwSize; // 结构体大小
  86789. char szCard[33]; // 卡号
  86790. BYTE byReserved1[3]; // 字节对齐
  86791. char szKey[33]; // 秘钥
  86792. BYTE byReserved2[3]; // 字节对齐
  86793. } NET_IN_ENCRYPT_STRING;
  86794. ///@brief CLIENT_EncryptString 接口出参
  86795. typedef struct tagNET_OUT_ENCRYPT_STRING
  86796. {
  86797. DWORD dwSize; // 结构体大小
  86798. char szEncryptString[1024]; // 加密后字符串
  86799. } NET_OUT_ENCRYPT_STRING;
  86800. ///@brief 字符串加密接口 (pInParam, pOutParam内存由用户申请释放)
  86801. CLIENT_NET_API BOOL CALL_METHOD CLIENT_EncryptString(const NET_IN_ENCRYPT_STRING *pInParam, NET_OUT_ENCRYPT_STRING *pOutParam, int nWaitTime);
  86802. ///@brief CLIENT_PreUploadRemoteFile 接口输入参数(设置文件长度)
  86803. typedef struct tagNET_IN_PRE_UPLOAD_REMOTE_FILE
  86804. {
  86805. DWORD dwSize; // 结构体大小
  86806. char* pszFileSrc; // 源文件路径
  86807. char* pszFileDst; // 保存在设备端的文件路径
  86808. } NET_IN_PRE_UPLOAD_REMOTE_FILE;
  86809. ///@brief 错误原因类型
  86810. typedef enum tagEM_REASON_TYPE
  86811. {
  86812. EM_REASON_TYPE_UNKNOWN, // 未知原因
  86813. EM_REASON_TYPE_OVERNUMBER, // 文件个数超出
  86814. EM_REASON_TYPE_FULLSTORAGE, // 文件存储空间已满
  86815. EM_REASON_TYPE_TOOLARGE_FILE, // 该文件太大
  86816. EM_REASON_TYPE_INVALID_FILETYPE, // 无效的文件类型
  86817. EM_REASON_TYPE_UNAUTH_UPLOAD, // 没有上传权限
  86818. EM_REASON_TYPE_EXCEPTION_NAME, // 文件命名异常
  86819. EM_REASON_TYPE_TOOLONG_NAME, // 文件名太长
  86820. EM_REASON_TYPE_EXIST_NAME, // 文件名已存在
  86821. } EM_REASON_TYPE;
  86822. ///@brief CLIENT_PreUploadRemoteFile 接口输出参数(设置文件长度)
  86823. typedef struct tagNET_OUT_PRE_UPLOAD_REMOTE_FILE
  86824. {
  86825. DWORD dwSize; // 结构体大小
  86826. BOOL bContinue2Upload; // 标志是否继续上传该文件, true:上传 false:不上传
  86827. EM_REASON_TYPE emType; // 错误原因, 当bContinue2Upload为false时emType有效
  86828. } NET_OUT_PRE_UPLOAD_REMOTE_FILE;
  86829. ///@brief 设置文件长度, pInParam与pOutParam内存由用户申请释放
  86830. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PreUploadRemoteFile(LLONG lLoginID, const NET_IN_PRE_UPLOAD_REMOTE_FILE* pInParam, NET_OUT_PRE_UPLOAD_REMOTE_FILE* pOutParam, int nWaitTime);
  86831. ///@brief CLIENT_GetInstallDiagnosticStatCaps入参
  86832. typedef struct tagNET_IN_GET_CAPS_INSTALL_DIAGNOSTIC_STAT
  86833. {
  86834. DWORD dwSize;
  86835. }NET_IN_GET_CAPS_INSTALL_DIAGNOSTIC_STAT;
  86836. ///@brief 通道信息
  86837. typedef struct tagNET_INSTALL_DIAGNOSTIC_STAT_CAPS_INFO
  86838. {
  86839. int nChannel; //视频通道号
  86840. int nEventNum; //事件数量
  86841. int nEventsCode[32]; //事件列表
  86842. BYTE bReserved[256]; //保留字节
  86843. }NET_INSTALL_DIAGNOSTIC_STAT_CAPS_INFO;
  86844. ///@brief CLIENT_GetInstallDiagnosticStatCaps出参
  86845. typedef struct tagNET_OUT_GET_CAPS_INSTALL_DIAGNOSTIC_STAT
  86846. {
  86847. DWORD dwSize; //结构体大小
  86848. int nCapsNum; //通道数量
  86849. NET_INSTALL_DIAGNOSTIC_STAT_CAPS_INFO stuCaps[16]; //通道信息数组
  86850. }NET_OUT_GET_CAPS_INSTALL_DIAGNOSTIC_STAT;
  86851. ///@brief 获取设备能提供诊断的事件,pInParam与pOutParam内存由用户申请释放
  86852. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetInstallDiagnosticStatCaps(LLONG lLoginID, const NET_IN_GET_CAPS_INSTALL_DIAGNOSTIC_STAT* pInParam, NET_OUT_GET_CAPS_INSTALL_DIAGNOSTIC_STAT* pOutParam, int nWaitTime);
  86853. ///@brief 数据结构体
  86854. typedef struct tagNET_INSTALL_DIAGNOSTIC_STAT_DATALIST
  86855. {
  86856. int nPitchAngle; //俯仰角(抬头,低头)。范围[-90,90],0为正脸 180为无效值
  86857. int nYawAngle; //偏航角(左右转头)。范围[-90,90],0为正脸 180为无效值
  86858. int nRollAngle; //侧滚角(平面左偏右偏)。范围[-90,90],0为正脸 180为无效值
  86859. int nQuality; //目标质量分值。范围[1,100],0为无效值
  86860. int nWidth; //像素点宽度
  86861. int nHeight; //像素点高度
  86862. BYTE byReserved[64]; //保留字节
  86863. }NET_INSTALL_DIAGNOSTIC_STAT_DATALIST;
  86864. ///@brief 安装数据信息
  86865. typedef struct tagNET_INSTALL_DIAGNOSTIC_STAT_RESULT
  86866. {
  86867. int nEventCode; // 事件码
  86868. int nDatalistLen; // 数据个数
  86869. NET_INSTALL_DIAGNOSTIC_STAT_DATALIST stuDataList[128]; // 数据列表
  86870. BYTE byReserved[256]; // 保留字节
  86871. }NET_INSTALL_DIAGNOSTIC_STAT_RESULT;
  86872. ///@brief 订阅安装诊断数据回调出参
  86873. typedef struct tagNET_INSTALL_DIAGNOSTIC_STAT
  86874. {
  86875. int nChannel; // 通道号
  86876. int nResultNum; // 数据个数
  86877. NET_INSTALL_DIAGNOSTIC_STAT_RESULT stuResult[32]; // 数据列表
  86878. BYTE byReserved[512]; // 保留字节
  86879. }NET_INSTALL_DIAGNOSTIC_STAT;
  86880. ///@brief 订阅安装诊断数据回调
  86881. typedef void (CALLBACK *fInstallDiagnosticStatCallBack)(LLONG lAttachHandle, NET_INSTALL_DIAGNOSTIC_STAT* pBuf, DWORD dwBufLen, LDWORD dwUser);
  86882. ///@brief 过滤信息
  86883. typedef struct tagNET_ATTACH_DIAGNOSTIC_FILTER
  86884. {
  86885. int nChannelNum; // 通道数量
  86886. int nChannels[16]; // 通道号列表
  86887. int nEventNum; // 事件数量
  86888. int nEventsCode[32]; // 事件列表
  86889. BYTE byReserved[128]; // 保留字节
  86890. }NET_ATTACH_DIAGNOSTIC_FILTER;
  86891. ///@brief 订阅安装回调入参
  86892. typedef struct tagNET_IN_ATTACH_INSTALL_DIAGNOSTIC_STAT
  86893. {
  86894. DWORD dwSize; // 结构体大小
  86895. NET_ATTACH_DIAGNOSTIC_FILTER stuFilter; // 过滤信息
  86896. fInstallDiagnosticStatCallBack cbDiagnosticStat; // 订阅回调函数
  86897. LDWORD dwUser; // 用户数据
  86898. }NET_IN_ATTACH_INSTALL_DIAGNOSTIC_STAT;
  86899. ///@brief 订阅安装回调出参
  86900. typedef struct tagNET_OUT_ATTACH_INSTALL_DIAGNOSTIC_STAT
  86901. {
  86902. DWORD dwSize; // 结构体大小
  86903. }NET_OUT_ATTACH_INSTALL_DIAGNOSTIC_STAT;
  86904. ///@brief 订阅安装诊断数据
  86905. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachInstallDiagnosticStat(LLONG lLoginID, const NET_IN_ATTACH_INSTALL_DIAGNOSTIC_STAT* pInParam, NET_OUT_ATTACH_INSTALL_DIAGNOSTIC_STAT* pOutParam, int nWaitTime);
  86906. ///@brief 取消订阅安装诊断数据
  86907. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachInstallDiagnosticStat(LLONG lAttachHandle);
  86908. ///@brief CLIENT_GetSCADADeviceStatus入参
  86909. typedef struct tagNET_IN_GET_SCADA_STATUS
  86910. {
  86911. DWORD dwSize; // 结构体大小
  86912. }NET_IN_GET_SCADA_STATUS;
  86913. ///@brief 设备状态信息
  86914. typedef struct tagNET_SCADA_DEV_INFO
  86915. {
  86916. char szDeviceID[32]; // 设备ID
  86917. char szDeviceName[32]; // 设备名称
  86918. EM_SCADA_DEVICE_STATUS emDevStatus; // 设备状态
  86919. }NET_SCADA_DEV_INFO;
  86920. ///@brief 设备信息
  86921. typedef struct tagNET_SCADA_STATUS_INFO
  86922. {
  86923. EM_ALARM_SCADA_DEV_TYPE emDevType; // 设备类型
  86924. int nDevInfoNum; // 设备信息个数
  86925. NET_SCADA_DEV_INFO stuDevInfo[128]; // 设备信息
  86926. }NET_SCADA_STATUS_INFO;
  86927. ///@brief CLIENT_GetSCADADeviceStatus出参
  86928. typedef struct tagNET_OUT_GET_SCADA_STATUS
  86929. {
  86930. DWORD dwSize; // 结构体大小
  86931. int nDevStatusNum; // 设备状态信息个数
  86932. NET_SCADA_STATUS_INFO stuStatusInfo[64]; // 设备状态信息
  86933. }NET_OUT_GET_SCADA_STATUS;
  86934. ///@brief 获取控制器设备列表及状态
  86935. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSCADADeviceStatus(LLONG lLoginID, const NET_IN_GET_SCADA_STATUS* pInParam, NET_OUT_GET_SCADA_STATUS* pOutParam, int nWaitTime);
  86936. ///@brief 获取标定点信息入参
  86937. typedef struct tagNET_IN_GET_CALIBRATEINFO_INFO
  86938. {
  86939. DWORD dwSize; // 结构体大小
  86940. UINT nID; // 标定点编号
  86941. UINT nChannel; // 通道号
  86942. }NET_IN_GET_CALIBRATEINFO_INFO;
  86943. ///@brief 标定点位置信息
  86944. typedef struct tagNET_GET_CALIBRATEINFO_CALCINFO_INFO
  86945. {
  86946. float fPosition[3]; // 标定点坐标及倍率
  86947. UINT nLocation[2]; // 标定点在图像中坐标
  86948. }NET_GET_CALIBRATEINFO_CALCINFO_INFO;
  86949. ///@brief 标定点参数信息
  86950. typedef struct tagNET_GET_CALIBRATEINFO_POINT_INFO
  86951. {
  86952. UINT nID; // 标定点编号
  86953. char szName[DH_COMMON_STRING_128]; // 标定点名称
  86954. BOOL bEnable; // 使能
  86955. UINT nLongitude; // 经度
  86956. UINT nLatitude; // 纬度
  86957. double fAltitude; // 海拔
  86958. NET_GET_CALIBRATEINFO_CALCINFO_INFO stuCalcInfo[5][2]; // 标定点坐标 第一维表示不同位置, 第二位表示可见光或热成像
  86959. int nPointNum; // 标定点个数
  86960. BYTE byReserved[4]; // 字节对齐
  86961. }NET_GET_CALIBRATEINFO_POINT_INFO;
  86962. ///@brief 获取标定点信息出参
  86963. typedef struct tagNET_OUT_GET_CALIBRATEINFO_INFO
  86964. {
  86965. DWORD dwSize; // 结构体大小
  86966. NET_GET_CALIBRATEINFO_POINT_INFO stuPointInfo; // 标定点信息
  86967. }NET_OUT_GET_CALIBRATEINFO_INFO;
  86968. ///@brief 设置标定点信息入参
  86969. typedef struct tagNET_IN_SET_CALIBRATEINFO_INFO
  86970. {
  86971. DWORD dwSize; // 结构体大小
  86972. NET_GET_CALIBRATEINFO_POINT_INFO stuPointInfo; //标定点信息
  86973. }NET_IN_SET_CALIBRATEINFO_INFO;
  86974. ///@brief 设置标定点信息出参
  86975. typedef struct tagNET_OUT_SET_CALIBRATEINFO_INFO
  86976. {
  86977. DWORD dwSize; // 结构体大小
  86978. }NET_OUT_SET_CALIBRATEINFO_INFO;
  86979. ///@brief 删除标定点信息入参
  86980. typedef struct tagNET_IN_DELETE_CALIBRATEINFO_INFO
  86981. {
  86982. DWORD dwSize; // 结构体大小
  86983. UINT nID; // 标定点ID
  86984. }NET_IN_DELETE_CALIBRATEINFO_INFO;
  86985. ///@brief 删除标定点信息出参
  86986. typedef struct tagNET_OUT_DELETE_CALIBRATEINFO_INFO
  86987. {
  86988. DWORD dwSize; // 结构体大小
  86989. }NET_OUT_DELETE_CALIBRATEINFO_INFO;
  86990. ///@brief 获取所有标定点信息入参
  86991. typedef struct tagNET_IN_GETALL_CALIBRATEINFO_INFO
  86992. {
  86993. DWORD dwSize; // 结构体大小
  86994. UINT nChannel; // 通道号
  86995. }NET_IN_GETALL_CALIBRATEINFO_INFO;
  86996. ///@brief GPS信息
  86997. typedef struct tagNET_DEVLOCATION_INFO
  86998. {
  86999. UINT unLongitude; // 经度 单位百万分之一度,范围0-360度
  87000. UINT unLatitude; // 纬度 单位百万分之一度,范围0-360度
  87001. double dbAltitude; // 海拔 单位米
  87002. BOOL bConfigEnable; // true:GPS信息按照配置上报
  87003. float fHeight; // 设备高度 单位米
  87004. }NET_DEVLOCATION_INFO;
  87005. ///@brief 标定基本信息
  87006. typedef struct tagNET_CALIBRATE_UNIT_INFO
  87007. {
  87008. UINT nHeight; // 分辨率高
  87009. UINT nWidth; // 分辨率宽
  87010. float nPosition[3]; // 云台位置(P/T/Z 归一化)
  87011. UINT nLocation[2]; // 标定点坐标
  87012. UINT nHFOV; // 横向视场角(单位:0.01度)
  87013. UINT nVFOV; // 纵向视场角(单位:0.01度)
  87014. }NET_CALIBRATE_UNIT_INFO;
  87015. ///@brief 标定详细信息
  87016. typedef struct tagNET_CALIBRATE_INFO
  87017. {
  87018. NET_CALIBRATE_UNIT_INFO stuCalibrateUnitInfo[5][2]; //标定点基本信息
  87019. int nInfoNum; // 基本信息数量
  87020. }NET_CALIBRATE_INFO;
  87021. ///@brief 标定点信息
  87022. typedef struct tagNET_LOCATION_CALIBRATE_POINT_INFO
  87023. {
  87024. UINT nID; // 标定点ID
  87025. char szName[DH_COMMON_STRING_128]; // 标定点名称
  87026. BOOL bEnable; // 使能
  87027. UINT nLongitude; // 经度
  87028. UINT nLatitude; // 纬度
  87029. double fAltitude; // 海拔
  87030. NET_CALIBRATE_INFO stuCalibrateInfo; // 标定点基本信息
  87031. BYTE byReserved1[4]; // 字节对齐
  87032. }NET_LOCATION_CALIBRATE_POINT_INFO;
  87033. #define MAX_CALIBRATE_POINT_NUM 64 //标定点最大个数
  87034. ///@brief 设备标定信息
  87035. typedef struct tagNET_LOCATION_CALIBRATE_INFO
  87036. {
  87037. UINT nVisualMaxHFOV; // 可见光横向视角
  87038. UINT nVisualMaxVFOV; // 可见光纵向视角
  87039. UINT nThermoMaxHFOV; // 热成像横向视角
  87040. UINT nThermoMaxVFOV; // 热成像纵向视角
  87041. NET_LOCATION_CALIBRATE_POINT_INFO stuPointInfo[MAX_CALIBRATE_POINT_NUM]; // 标定点信息
  87042. int nPointNum; // 标定点个数
  87043. BYTE byReserved1[4]; // 字节对齐
  87044. }NET_LOCATION_CALIBRATE_INFO;
  87045. ///@brief 获取所有标定信息出参
  87046. typedef struct tagNET_OUT_GETALL_CALIBRATEINFO_INFO
  87047. {
  87048. DWORD dwSize; // 结构体大小
  87049. NET_DEVLOCATION_INFO stuGPSInfo; // GPS信息
  87050. NET_LOCATION_CALIBRATE_INFO stuLocationCalibrateInfo; // 标定信息
  87051. }NET_OUT_GETALL_CALIBRATEINFO_INFO;
  87052. ///@brief 设备标定信息操作类型
  87053. typedef enum tagEM_CALIBRATEINFO_OPERATE_TYPE
  87054. {
  87055. EM_CALIBRATEINFO_OPERATE_GET, // 获取指定点标定信息, pStuInParam = NET_IN_GET_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_GET_CALIBRATEINFO_INFO
  87056. EM_CALIBRATEINFO_OPERATE_SET, // 设置指定点标定信息, pStuInParam = NET_IN_SET_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_SET_CALIBRATEINFO_INFO
  87057. EM_CALIBRATEINFO_OPERATE_DELETE, // 删除指定点标定信息, pStuInParam = NET_IN_DELETE_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_DELETE_CALIBRATEINFO_INFO
  87058. EM_CALIBRATEINFO_OPERATE_GETALL, // 获取所有标定信息, pStuInParam = NET_IN_GETALL_CALIBRATEINFO_INFO, pStuOutParam = NET_OUT_GETALL_CALIBRATEINFO_INFO
  87059. }EM_CALIBRATEINFO_OPERATE_TYPE;
  87060. ///@brief 操作设备标定信息
  87061. CLIENT_NET_API BOOL CALL_METHOD CLIENT_OperateCalibrateInfo(LLONG lLoginID, EM_CALIBRATEINFO_OPERATE_TYPE emType, const void* pStuInParam, void* pStuOutParam, int nWaitTime);
  87062. ///@brief 云台水平旋转组信息
  87063. typedef struct tagNET_PAN_GROUP_INFO
  87064. {
  87065. char szName[32]; // 水平旋转组名称
  87066. unsigned int nSpeed; // 水平旋转速度0~7
  87067. BOOL bEnable; // 使能
  87068. unsigned int nInterval; // 停留时间,单位:秒
  87069. BYTE byReserved[64]; // 保留字节
  87070. }NET_PAN_GROUP_INFO;
  87071. ///@brief CLIENT_PTZSetPanGroup入参数结构体
  87072. typedef struct tagNET_IN_SET_PAN_GROUP_PARAM
  87073. {
  87074. DWORD dwSize; // 结构体大小
  87075. int nChannel; // 通道号
  87076. unsigned int nIndex; // 旋转组内元素序号从1开始
  87077. NET_PAN_GROUP_INFO stuPanGroupInfo; // 水平旋转组信息
  87078. }NET_IN_SET_PAN_GROUP_PARAM;
  87079. ///@brief CLIENT_PTZSetPanGroup出参数结构体
  87080. typedef struct tagNET_OUT_SET_PAN_GROUP_PARAM
  87081. {
  87082. DWORD dwSize; // 结构体大小
  87083. }NET_OUT_SET_PAN_GROUP_PARAM;
  87084. ///@brief 设置云台水平旋转组信息(热成像专用)
  87085. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZSetPanGroup(LLONG lLoginID, const NET_IN_SET_PAN_GROUP_PARAM* pInParam, NET_OUT_SET_PAN_GROUP_PARAM* pOutParam, int nWaitTime);
  87086. ///@brief CLIENT_PTZGetPanGroup入参结构体
  87087. typedef struct tagNET_IN_GET_PAN_GROUP_PARAM
  87088. {
  87089. DWORD dwSize; // 结构体大小
  87090. int nChannel; // 通道号
  87091. }NET_IN_GET_PAN_GROUP_PARAM;
  87092. ///@brief CLIENT_PTZGetPanGroup出参结构体
  87093. typedef struct tagNET_OUT_GET_PAN_GROUP_PARAM
  87094. {
  87095. DWORD dwSize; // 结构体大小
  87096. int nRetNum; // 实际返回个数
  87097. NET_PAN_GROUP_INFO stuPanGroupInfo[8]; // 水平旋转组信息
  87098. }NET_OUT_GET_PAN_GROUP_PARAM;
  87099. ///@brief 获取云台水平旋转组信息(热成像专用)
  87100. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZGetPanGroup(LLONG lLoginID, const NET_IN_GET_PAN_GROUP_PARAM* pInParam, NET_OUT_GET_PAN_GROUP_PARAM* pOutParam, int nWaitTime);
  87101. ///@brief CLIENT_PTZGotoPanPosition 入参结构体
  87102. typedef struct tagNET_IN_GOTO_PAN_POSITION
  87103. {
  87104. DWORD dwSize; // 结构体大小
  87105. int nChannel; // 通道号
  87106. unsigned int nIndex; // 旋转组内序号从1开始
  87107. }NET_IN_GOTO_PAN_POSITION;
  87108. ///@brief CLIENT_PTZGotoPanPosition 出参结构体
  87109. typedef struct tagNET_OUT_GOTO_PAN_POSITION
  87110. {
  87111. DWORD dwSize; // 结构体大小
  87112. }NET_OUT_GOTO_PAN_POSITION;
  87113. ///@brief 云台转动到指定水平(热成像专用)
  87114. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZGotoPanPosition(LLONG lLogindID, const NET_IN_GOTO_PAN_POSITION* pInParam, NET_OUT_GOTO_PAN_POSITION* pOutParam, int nWaitTime);
  87115. ///@brief 水平旋转组边界模式
  87116. typedef enum tagNET_EM_PAN_GROUP_LIMIT_MODE
  87117. {
  87118. NET_EM_PAN_GROUP_LIMIT_MODE_LEFT = 1, // 左边界
  87119. NET_EM_PAN_GROUP_LIMIT_MODE_RIGHT, // 右边界
  87120. NET_EM_PAN_GROUP_LIMIT_MODE_UP, // 上边界
  87121. NET_EM_PAN_GROUP_LIMIT_MODE_DOWN, // 下边界
  87122. } NET_EM_PAN_GROUP_LIMIT_MODE;
  87123. ///@brief 设置水平旋转边界值 输入参数
  87124. typedef struct tagNET_IN_PAN_GROUP_LIMIT_INFO
  87125. {
  87126. DWORD dwSize; // 结构体大小
  87127. int nChannelID; // 正确通道号,范围 0~设备通道数
  87128. unsigned int nIndex; // 旋转组内序号从1开始
  87129. NET_EM_PAN_GROUP_LIMIT_MODE emPanGroupLimitMode; // 水平旋转组限界类型
  87130. } NET_IN_PAN_GROUP_LIMIT_INFO;
  87131. ///@brief 设置水平旋转边界值 输出参数
  87132. typedef struct tagNET_OUT_PAN_GROUP_LIMIT_INFO
  87133. {
  87134. DWORD dwSize;
  87135. } NET_OUT_PAN_GROUP_LIMIT_INFO;
  87136. ///@brief 设置水平旋转组边界值
  87137. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZSetPanGroupLimit(LLONG lLoginID, const NET_IN_PAN_GROUP_LIMIT_INFO *pstInParam, NET_OUT_PAN_GROUP_LIMIT_INFO *pstOutParam, DWORD dwWaitTime);
  87138. ///@brief 云台位置坐标 解决Position的精度问题
  87139. typedef struct tagNET_PTZ_POSITION
  87140. {
  87141. double dbPositionX; //云台水平坐标,范围[0.0~360.0]
  87142. double dbPositionY; //云台垂直坐标,范围[-180.0~180.0]
  87143. double dbZoom; //云台放大倍数,范围不同机芯不一样
  87144. }NET_PTZ_POSITION;
  87145. ///@brief 预置点列表
  87146. typedef struct tagNET_PTZ_PRESET_LIST_INFO
  87147. {
  87148. BOOL bEnable; // 该预置点是否生效
  87149. char szName[256]; // 预置点名称
  87150. NET_PTZ_POSITION stuPosition; // 云台位置坐标
  87151. int nTiltBoundary; // 设置预置点时设备主动轮所在的齿轮边界位置。当为0或无该字段时,不关心是否处于边界位置,表示无因齿隙过大导致的预置点精度问题,当为1时,处于下边界,当为2时,处于上边界。
  87152. char szReserve[32]; //预留字节
  87153. } NET_PTZ_PRESET_LIST_INFO;
  87154. ///@brief 设置预置位信息 输入参数
  87155. typedef struct tagNET_IN_SET_PRESET_INFO
  87156. {
  87157. DWORD dwSize; // 结构体大小
  87158. int nChannelID; // 正确通道号,范围 0~设备通道数
  87159. int nIndex; // 预置点编号: -1表示preset为全部预置位信息, 1~PresetMax表示设置对应的预置位内容
  87160. int nPresetInfoNum; // 调用者分配预置点列表个数, 最大为512
  87161. NET_PTZ_PRESET_LIST_INFO* pstuPresetInfo; // 预置点列表, 由用户申请内存,大小为sizeof(NET_PTZ_PRESET_LIST_INFO)*nPresetInfoNum
  87162. } NET_IN_SET_PRESET_INFO;
  87163. ///@brief 设置预置位信息 输出参数
  87164. typedef struct tagNET_OUT_SET_PRESET_INFO
  87165. {
  87166. DWORD dwSize; // 结构体大小
  87167. } NET_OUT_SET_PRESET_INFO;
  87168. ///@brief 设置预置位信息
  87169. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZSetPreset(LLONG lLoginID, const NET_IN_SET_PRESET_INFO *pstInParam, NET_OUT_SET_PRESET_INFO *pstOutParam, DWORD dwWaitTime);
  87170. ///@brief 获取预置位信息 输入参数
  87171. typedef struct tagNET_IN_GET_PRESET_INFO
  87172. {
  87173. DWORD dwSize; // 结构体大小
  87174. int nChannelID; // 正确通道号,范围 0~设备通道数
  87175. int nIndex; // 预置点编号: -1表示preset为全部预置位信息, 1~PresetMax表示设置对应的预置位内容
  87176. } NET_IN_GET_PRESET_INFO;
  87177. ///@brief 获取预置位信息 输出参数
  87178. typedef struct tagNET_OUT_GET_PRESET_INFO
  87179. {
  87180. DWORD dwSize; // 结构体大小
  87181. int nChannelID; // 正确通道号,范围 0~设备通道数
  87182. int nIndex; // 预置点编号: -1表示preset为全部预置位信息, 1~PresetMax表示设置对应的预置位内容
  87183. int nPresetInfoNum; // 调用者分配预置点列表个数, 最大为512
  87184. NET_PTZ_PRESET_LIST_INFO* pstuPresetInfo; // 预置点列表,由用户申请内存,大小为sizeof(NET_PTZ_PRESET_LIST_INFO)*nPresetInfoNum
  87185. int nRetPresetInfoNum; // 设备返回的预置点列表个数,最大为512
  87186. } NET_OUT_GET_PRESET_INFO;
  87187. ///@brief 获取预置位信息
  87188. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZGetPreset(LLONG lLoginID, const NET_IN_GET_PRESET_INFO *pstInParam, NET_OUT_GET_PRESET_INFO *pstOutParam, DWORD dwWaitTime);
  87189. ///@brief CLIENT_PTZStartTour 接口输入参数
  87190. typedef struct tagNET_IN_PTZ_START_TOUR
  87191. {
  87192. DWORD dwSize; // 结构体大小
  87193. int nChannel; // 通道号, 范围 0~设备通道数
  87194. int nIndex; // 巡航线路编号
  87195. }NET_IN_PTZ_START_TOUR;
  87196. ///@brief CLIENT_PTZStartTour 接口输出参数
  87197. typedef struct tagNET_OUT_PTZ_START_TOUR
  87198. {
  87199. DWORD dwSize; // 结构体大小
  87200. }NET_OUT_PTZ_START_TOUR;
  87201. ///@brief 开始巡航
  87202. ///@param[in] lLoginID: 登录句柄
  87203. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87204. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87205. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87206. ///@return TRUE表示成功 FALSE表示失败
  87207. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZStartTour(LLONG lLoginID, const NET_IN_PTZ_START_TOUR *pstuInParam, NET_OUT_PTZ_START_TOUR *pstuOutParam, int nWaitTime);
  87208. ///@brief CLIENT_PTZStopTour 接口输入参数
  87209. typedef struct tagNET_IN_PTZ_STOP_TOUR
  87210. {
  87211. DWORD dwSize; // 结构体大小
  87212. int nChannel; // 通道号, 范围 0~设备通道数
  87213. int nIndex; // 巡航线路编号
  87214. }NET_IN_PTZ_STOP_TOUR;
  87215. ///@brief CLIENT_PTZStopTour 接口输出参数
  87216. typedef struct tagNET_OUT_PTZ_STOP_TOUR
  87217. {
  87218. DWORD dwSize; // 结构体大小
  87219. }NET_OUT_PTZ_STOP_TOUR;
  87220. ///@brief 停止巡航
  87221. ///@param[in] lLoginID: 登录句柄
  87222. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87223. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87224. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87225. ///@return TRUE表示成功 FALSE表示失败
  87226. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZStopTour(LLONG lLoginID, const NET_IN_PTZ_STOP_TOUR *pstuInParam, NET_OUT_PTZ_STOP_TOUR *pstuOutParam, int nWaitTime);
  87227. ///@brief 获取巡航线路的预置点列表信息 输入参数
  87228. typedef struct tagNET_IN_GET_TOUR_POINTS
  87229. {
  87230. DWORD dwSize; // 结构体大小
  87231. int nChannel; // 通道号
  87232. int nIndex; // 巡航线路编号
  87233. int reserved; // 预留字段
  87234. }NET_IN_GET_TOUR_POINTS;
  87235. ///@brief 预置点相关的参数
  87236. typedef struct tagPresetPointParams
  87237. {
  87238. int nIndex; // 预置点配置索引号,从0开始
  87239. int nStayTime; // 预置点停留时间, 单位秒
  87240. int nSpeed; // 到达改预置点的转动速度, 1-10级速度
  87241. char reserved[68]; // 预留字段
  87242. }PresetPointParams;
  87243. ///@brief 获取巡航线路的预置点列表信息 输出参数
  87244. typedef struct tagNET_OUT_GET_TOUR_POINTS
  87245. {
  87246. DWORD dwSize; // 结构体大小
  87247. int nPointNum; // 该链路的预置点个数
  87248. PresetPointParams stuPoints[128]; // 该路径包含的预置点参数
  87249. }NET_OUT_GET_TOUR_POINTS;
  87250. ///@brief 获取巡航线路的预置点列表信息
  87251. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZGetToursPoints(LLONG lLoginID, const NET_IN_GET_TOUR_POINTS *pstInParam, NET_OUT_GET_TOUR_POINTS *pstOutParam, DWORD dwWaitTime);
  87252. ///@brief 执行上次被打断的历史任务, 入参
  87253. typedef struct tagNET_IN_RESUME_PTZ_LASTTASK_INFO
  87254. {
  87255. DWORD dwSize; // 结构体大小
  87256. int nChannelID; // 正确通道号,范围 0~设备通道数
  87257. } NET_IN_RESUME_PTZ_LASTTASK_INFO;
  87258. ///@brief 执行上次被打断的历史任务, 出参
  87259. typedef struct tagNET_OUT_RESUME_PTZ_LASTTASK_INFO
  87260. {
  87261. DWORD dwSize; // 结构体大小
  87262. } NET_OUT_RESUME_PTZ_LASTTASK_INFO;
  87263. ///@brief 两个作用:
  87264. ///@brief 1、执行上次被打断的历史任务包括:循迹、巡航、线扫、水平旋转,命令执行中被人为移动云台打断,而非正常结束
  87265. ///@brief 2、该命令将启用火情事件联动动作
  87266. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ResumePtzLastTask(LLONG lLoginID, const NET_IN_RESUME_PTZ_LASTTASK_INFO *pstInParam, NET_OUT_RESUME_PTZ_LASTTASK_INFO *pstOutParam, DWORD dwWaitTime);
  87267. ///@brief 暂停当前云台动作, 入参
  87268. typedef struct tagNET_IN_PAUSE_PTZ_ACTION_INFO
  87269. {
  87270. DWORD dwSize; // 结构体大小
  87271. int nChannelID; // 通道ID
  87272. } NET_IN_PAUSE_PTZ_ACTION_INFO;
  87273. ///@brief 暂停当前云台动作,出参
  87274. typedef struct tagNET_OUT_PAUSE_PTZ_ACTION_INFO
  87275. {
  87276. DWORD dwSize; // 结构体大小
  87277. } NET_OUT_PAUSE_PTZ_ACTION_INFO;
  87278. ///@brief 暂停云台当前动作
  87279. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PausePtzAction(LLONG lLoginID, const NET_IN_PAUSE_PTZ_ACTION_INFO *pstInParam, NET_OUT_PAUSE_PTZ_ACTION_INFO *pstOutParam, DWORD dwWaitTime);
  87280. ///@brief 标定球机和蓄水池污点位置, 入参
  87281. typedef struct tagNET_IN_SET_PTZ_WASH_POSISTION_INFO
  87282. {
  87283. DWORD dwSize; // 结构体大小
  87284. UINT nIndex; // 0 - 标定喷水枪位置, 1 - 标定污点位置
  87285. float fHeight; // 球机到蓄水池底的高度
  87286. UINT nChannelID; // 通道ID
  87287. }NET_IN_SET_PTZ_WASH_POSISTION_INFO;
  87288. ///@brief 标定球机和蓄水池污点位置,出参
  87289. typedef struct tagNET_OUT_SET_PTZ_WASH_POSISTION_INFO
  87290. {
  87291. DWORD dwSize; // 结构体大小
  87292. }NET_OUT_SET_PTZ_WASH_POSISTION_INFO;
  87293. ///@brief 标定球机和蓄水池污点位置
  87294. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PtzSetWashPosistion(LLONG lLoginID, const NET_IN_SET_PTZ_WASH_POSISTION_INFO *pstInParam, NET_OUT_SET_PTZ_WASH_POSISTION_INFO *pstOutParam, DWORD dwWaitTime);
  87295. ///@brief 获取标定后的冲洗信息, 入参
  87296. typedef struct tagNET_IN_GET_PTZ_WASH_INFO
  87297. {
  87298. DWORD dwSize; // 结构体大小
  87299. UINT nChannelID; // 通道ID
  87300. }NET_IN_GET_PTZ_WASH_INFO;
  87301. ///@brief 冲洗信息
  87302. typedef struct tagNET_PTZ_WASH_INFO
  87303. {
  87304. float fAnagle; // 喷水枪的水平偏转角度
  87305. float fDistance; // 喷水枪距离污点距离
  87306. char szReserved[256]; // 保留字节
  87307. }NET_PTZ_WASH_INFO;
  87308. ///@brief 获取标定后的冲洗信息,出参
  87309. typedef struct tagNET_OUT_GET_PTZ_WASH_INFO
  87310. {
  87311. DWORD dwSize; // 结构体大小
  87312. NET_PTZ_WASH_INFO stuWashInfo; // 冲洗信息
  87313. }NET_OUT_GET_PTZ_WASH_INFO;
  87314. ///@brief 获取标定后的冲洗信息
  87315. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PtzGetWashInfo(LLONG lLoginID, const NET_IN_GET_PTZ_WASH_INFO *pstInParam, NET_OUT_GET_PTZ_WASH_INFO *pstOutParam, DWORD dwWaitTime);
  87316. ///@brief CLIENT_PTZSetZoomValue 接口输入参数
  87317. typedef struct tagNET_IN_PTZ_SET_ZOOM_VALUE
  87318. {
  87319. DWORD dwSize; // 结构体大小
  87320. int nChannel; // 通道号, 范围 0~设备通道数
  87321. int nValue; // 变倍值,扩大10倍表示
  87322. }NET_IN_PTZ_SET_ZOOM_VALUE;
  87323. ///@brief CLIENT_PTZSetZoomValue 接口输出参数
  87324. typedef struct tagNET_OUT_PTZ_SET_ZOOM_VALUE
  87325. {
  87326. DWORD dwSize; // 结构体大小
  87327. }NET_OUT_PTZ_SET_ZOOM_VALUE;
  87328. ///@brief 设置云台变倍
  87329. ///@param[in] lLoginID: 登录句柄
  87330. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87331. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87332. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87333. ///@return TRUE表示成功 FALSE表示失败
  87334. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZSetZoomValue(LLONG lLoginID, const NET_IN_PTZ_SET_ZOOM_VALUE *pstuInParam, NET_OUT_PTZ_SET_ZOOM_VALUE *pstuOutParam, int nWaitTime);
  87335. ///@brief CLIENT_PTZSetFocusValue 接口输入参数
  87336. typedef struct tagNET_IN_PTZ_SET_FOCUS_VALUE
  87337. {
  87338. DWORD dwSize; // 结构体大小
  87339. int nChannel; // 通道号, 从0开始
  87340. int nValue; // 镜头焦距值参数, 单位0.01mm,扩大100倍表示.
  87341. }NET_IN_PTZ_SET_FOCUS_VALUE;
  87342. ///@brief CLIENT_PTZSetFocusValue 接口输出参数
  87343. typedef struct tagNET_OUT_PTZ_SET_FOCUS_VALUE
  87344. {
  87345. DWORD dwSize; // 结构体大小
  87346. }NET_OUT_PTZ_SET_FOCUS_VALUE;
  87347. ///@brief 设置镜头焦距参数
  87348. ///@param[in] lLoginID: 登录句柄
  87349. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87350. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87351. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87352. ///@return TRUE表示成功 FALSE表示失败
  87353. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZSetFocusValue(LLONG lLoginID, const NET_IN_PTZ_SET_FOCUS_VALUE *pstuInParam, NET_OUT_PTZ_SET_FOCUS_VALUE *pstuOutParam, int nWaitTime);
  87354. ///@brief CLIENT_PTZSetTour 接口输入参数
  87355. typedef struct tagNET_IN_PTZ_SET_TOUR
  87356. {
  87357. DWORD dwSize; // 结构体大小
  87358. UINT nindex; // 巡航线路编号,从1开始
  87359. char szname[64]; // 巡航线路名称
  87360. int nChannel; // 通道号
  87361. }NET_IN_PTZ_SET_TOUR;
  87362. ///@brief CLIENT_PTZSetTour 接口输出参数
  87363. typedef struct tagNET_OUT_PTZ_SET_TOUR
  87364. {
  87365. DWORD dwSize; // 结构体大小
  87366. }NET_OUT_PTZ_SET_TOUR;
  87367. ///@brief 设置巡航线路
  87368. ///@param[in] lLoginID: 登录句柄
  87369. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87370. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87371. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87372. ///@return TRUE表示成功 FALSE表示失败
  87373. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZSetTour(LLONG lLoginID, const NET_IN_PTZ_SET_TOUR *pstuInParam, NET_OUT_PTZ_SET_TOUR *pstuOutParam, int nWaitTime);
  87374. ///@brief CLIENT_PTZIntelliSetTrackObjectInfo 接口输入参数
  87375. typedef struct tagNET_IN_PTZ_INTELLI_SET_TRACK_OBJECT_INFO
  87376. {
  87377. DWORD dwSize; // 结构体大小
  87378. BOOL bSpeed; // 跟踪目标的速度是否有效
  87379. int nSpeed; // 跟踪目标的速度
  87380. BOOL bAzimuth; // 跟踪目标的方向是否有效
  87381. int nAzimuth; // 跟踪目标的方向
  87382. BOOL bAction; // 跟踪动作是否有效
  87383. int nAction; // 跟踪动作,默认为0
  87384. BOOL bLongitude; // 目标经度是否有效
  87385. UINT nLongitude; // 目标经度,单位百万分之一度
  87386. BOOL bLatitude; // 目标纬度是否有效
  87387. UINT nLatitude; // 目标纬度,单位百万分之一度
  87388. BOOL bDistance; // 目标距离是否有效
  87389. int nDistance; // 目标距离,单位米,扩大100倍表示
  87390. BOOL bChannel; // 跟踪通道是否有效
  87391. int nChannel; // 跟踪通道,例如1可见光、2热成像
  87392. BOOL bTime; // 目标出现时间是否有效
  87393. UINT nTime; // 目标出现时间,对应的UTC(1970-1-1 00:00:00)秒数
  87394. }NET_IN_PTZ_INTELLI_SET_TRACK_OBJECT_INFO;
  87395. ///@brief CLIENT_PTZIntelliSetTrackObjectInfo 接口输出参数
  87396. typedef struct tagNET_OUT_PTZ_INTELLI_SET_TRACK_OBJECT_INFO
  87397. {
  87398. DWORD dwSize; // 结构体大小
  87399. }NET_OUT_PTZ_INTELLI_SET_TRACK_OBJECT_INFO;
  87400. ///@brief 雷球联动中,将雷达跟踪的目标信息设置给设备,提升跟踪效果
  87401. ///@param[in] lLoginID: 登录句柄
  87402. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87403. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87404. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87405. ///@return TRUE表示成功 FALSE表示失败
  87406. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZIntelliSetTrackObjectInfo(LLONG lLoginID, const NET_IN_PTZ_INTELLI_SET_TRACK_OBJECT_INFO *pstuInParam, NET_OUT_PTZ_INTELLI_SET_TRACK_OBJECT_INFO *pstuOutParam, int nWaitTime);
  87407. ///@brief CLIENT_PTZAdjustIris 接口输入参数
  87408. typedef struct tagNET_IN_PTZ_ADJUST_IRIS
  87409. {
  87410. DWORD dwSize; // 结构体大小
  87411. int nChannel; // 通道号, 范围 0~设备通道数
  87412. float fChange; // 相对变化, 归一化到-1~1
  87413. }NET_IN_PTZ_ADJUST_IRIS;
  87414. ///@brief CLIENT_PTZAdjustIris 接口输出参数
  87415. typedef struct tagNET_OUT_PTZ_ADJUST_IRIS
  87416. {
  87417. DWORD dwSize; // 结构体大小
  87418. }NET_OUT_PTZ_ADJUST_IRIS;
  87419. ///@brief 调节光圈
  87420. ///@param[in] lLoginID: 登录句柄
  87421. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87422. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87423. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87424. ///@return TRUE表示成功 FALSE表示失败
  87425. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZAdjustIris(LLONG lLoginID, const NET_IN_PTZ_ADJUST_IRIS *pstuInParam, NET_OUT_PTZ_ADJUST_IRIS *pstuOutParam, int nWaitTime);
  87426. ///@brief CLIENT_PTZLensInit 接口输入参数
  87427. typedef struct tagNET_IN_PTZ_LENS_INIT
  87428. {
  87429. DWORD dwSize; // 结构体大小
  87430. int nChannel; // 通道号, 范围 0~设备通道数
  87431. }NET_IN_PTZ_LENS_INIT;
  87432. ///@brief CLIENT_PTZLensInit 接口输出参数
  87433. typedef struct tagNET_OUT_PTZ_LENS_INIT
  87434. {
  87435. DWORD dwSize; // 结构体大小
  87436. }NET_OUT_PTZ_LENS_INIT;
  87437. ///@brief 镜头初始化
  87438. ///@param[in] lLoginID: 登录句柄
  87439. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87440. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87441. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87442. ///@return TRUE表示成功 FALSE表示失败
  87443. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PTZLensInit(LLONG lLoginID, const NET_IN_PTZ_LENS_INIT *pstuInParam, NET_OUT_PTZ_LENS_INIT *pstuOutParam, int nWaitTime);
  87444. ///@brief CLIENT_TransmitCmd 接口输入参数
  87445. typedef struct tagNET_IN_TRANSMIT_CMD
  87446. {
  87447. DWORD dwSize; // 结构体大小
  87448. int nChannel; // 通道号, 范围 0~设备通道数
  87449. int nHannel; // 协议类型,0 : 整形数组
  87450. BOOL bReply; // 此命令需要接收回复
  87451. int nMessageCount; // 命令字节数量
  87452. int* pMessage; // 具体命令,是一个数组,每个元素为每个字节的整形值,使用DVR同前端交互协议,需要用户分配内存空间
  87453. }NET_IN_TRANSMIT_CMD;
  87454. ///@brief CLIENT_TransmitCmd 接口输出参数
  87455. typedef struct tagNET_OUT_TRANSMIT_CMD
  87456. {
  87457. DWORD dwSize; // 结构体大小
  87458. int nChannel; // 通道号, 范围 0~设备通道数
  87459. int nHannel; // 协议类型,0 : 整形数组
  87460. int nRetMessageCount; // 返回命令长度
  87461. int nMaxMessageCount; // 用户填写,为pMessage指针所指的数组元素数量
  87462. int* pMessage; // 返回值,是一个数组,每个元素为每个字节的整形值,需要用户分配内存空间
  87463. }NET_OUT_TRANSMIT_CMD;
  87464. ///@brief RPC测试
  87465. ///@param[in] lLoginID: 登录句柄
  87466. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87467. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87468. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87469. ///@return TRUE表示成功 FALSE表示失败
  87470. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TransmitCmd(LLONG lLoginID, const NET_IN_TRANSMIT_CMD *pstuInParam, NET_OUT_TRANSMIT_CMD *pstuOutParam, int nWaitTime);
  87471. ///@brief CLIENT_ManualTest 接口输入参数
  87472. typedef struct tagNET_IN_MANUAL_TEST
  87473. {
  87474. DWORD dwSize; // 结构体大小
  87475. DWORD dwTestID; // 测试ID,每次下发的测试ID不一样
  87476. UINT nChannel; // 测试的通道号,可以对应某一个要测试的SIA服务器
  87477. }NET_IN_MANUAL_TEST;
  87478. ///@brief CLIENT_ManualTest 接口输出参数
  87479. typedef struct tagNET_OUT_MANUAL_TEST
  87480. {
  87481. DWORD dwSize; // 结构体大小
  87482. int nTestResult; // 结果 1:测试成功,结果同步返回 2:发送测试请求成功,结果异步返回 3:测试失败
  87483. }NET_OUT_MANUAL_TEST;
  87484. ///@brief 手动测试
  87485. ///@param[in] lLoginID: 登录句柄
  87486. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87487. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87488. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87489. ///@return TRUE表示成功 FALSE表示失败
  87490. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ManualTest(LLONG lLoginID, const NET_IN_MANUAL_TEST *pstuInParam, NET_OUT_MANUAL_TEST *pstuOutParam, int nWaitTime);
  87491. ///@brief CLIENT_AddAlarmUser 接口输入参数
  87492. typedef struct tagNET_IN_ADD_ALARM_USER
  87493. {
  87494. DWORD dwSize; // 结构体大小
  87495. NET_ALARM_USER stuAlarmUser; // 添加的用户信息
  87496. }NET_IN_ADD_ALARM_USER;
  87497. ///@brief CLIENT_AddAlarmUser 接口输出参数
  87498. typedef struct tagNET_OUT_ADD_ALARM_USER
  87499. {
  87500. DWORD dwSize; // 结构体大小
  87501. }NET_OUT_ADD_ALARM_USER;
  87502. ///@brief 添加报警用户
  87503. ///@param[in] lLoginID: 登录句柄
  87504. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87505. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87506. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87507. ///@return TRUE表示成功 FALSE表示失败
  87508. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddAlarmUser(LLONG lLoginID, const NET_IN_ADD_ALARM_USER *pstuInParam, NET_OUT_ADD_ALARM_USER *pstuOutParam, int nWaitTime);
  87509. ///@brief CLIENT_ModifyAlarmUser 接口输入参数
  87510. typedef struct tagNET_IN_MODIFY_ALARM_USER
  87511. {
  87512. DWORD dwSize; // 结构体大小
  87513. char szUserID[64]; // 用户ID,用户唯一标识
  87514. NET_ALARM_USER stuAlarmUser; // 修改的用户信息
  87515. }NET_IN_MODIFY_ALARM_USER;
  87516. ///@brief CLIENT_ModifyAlarmUser 接口输出参数
  87517. typedef struct tagNET_OUT_MODIFY_ALARM_USER
  87518. {
  87519. DWORD dwSize; // 结构体大小
  87520. }NET_OUT_MODIFY_ALARM_USER;
  87521. ///@brief 修改报警用户
  87522. ///@param[in] lLoginID: 登录句柄
  87523. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87524. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87525. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87526. ///@return TRUE表示成功 FALSE表示失败
  87527. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyAlarmUser(LLONG lLoginID, const NET_IN_MODIFY_ALARM_USER *pstuInParam, NET_OUT_MODIFY_ALARM_USER *pstuOutParam, int nWaitTime);
  87528. ///@brief CLIENT_ModifyAlarmUserPassword 接口输入参数
  87529. typedef struct tagNET_IN_MODIFY_ALARM_USER_PASSWORD
  87530. {
  87531. DWORD dwSize; // 结构体大小
  87532. char szUserID[64]; // 用户ID,用户唯一标识
  87533. char szOldPassword[64]; // 旧密码
  87534. char szNewPassword[64]; // 新密码
  87535. }NET_IN_MODIFY_ALARM_USER_PASSWORD;
  87536. ///@brief CLIENT_ModifyAlarmUserPassword 接口输出参数
  87537. typedef struct tagNET_OUT_MODIFY_ALARM_USER_PASSWORD
  87538. {
  87539. DWORD dwSize; // 结构体大小
  87540. }NET_OUT_MODIFY_ALARM_USER_PASSWORD;
  87541. ///@brief 修改报警用户密码
  87542. ///@param[in] lLoginID: 登录句柄
  87543. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87544. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87545. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87546. ///@return TRUE表示成功 FALSE表示失败
  87547. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyAlarmUserPassword(LLONG lLoginID, const NET_IN_MODIFY_ALARM_USER_PASSWORD *pstuInParam, NET_OUT_MODIFY_ALARM_USER_PASSWORD *pstuOutParam, int nWaitTime);
  87548. ///@brief CLIENT_DeleteAlarmUser 接口输入参数
  87549. typedef struct tagNET_IN_DELETE_ALARM_USER
  87550. {
  87551. DWORD dwSize; // 结构体大小
  87552. char szUserID[64]; // 用户ID,用户唯一标识
  87553. }NET_IN_DELETE_ALARM_USER;
  87554. ///@brief CLIENT_DeleteAlarmUser 接口输出参数
  87555. typedef struct tagNET_OUT_DELETE_ALARM_USER
  87556. {
  87557. DWORD dwSize; // 结构体大小
  87558. }NET_OUT_DELETE_ALARM_USER;
  87559. ///@brief 删除报警用户
  87560. ///@param[in] lLoginID: 登录句柄
  87561. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  87562. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  87563. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  87564. ///@return TRUE表示成功 FALSE表示失败
  87565. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteAlarmUser(LLONG lLoginID, const NET_IN_DELETE_ALARM_USER *pstuInParam, NET_OUT_DELETE_ALARM_USER *pstuOutParam, int nWaitTime);
  87566. /////////////////////////////智能分析服务接口 开始/////////////////////////////////
  87567. #define MAX_ANALYSE_REMAIN_CAPACITY_NUM 32 // 智能分析最大剩余数量
  87568. #define MAX_ANALYSE_RULE_COUNT 32 // 最大分析规则条数
  87569. #define MAX_ANALYSE_PICTURE_FILE_NUM 32 // 图片文件最大数量
  87570. #define MAX_ANALYSE_TASK_NUM 64 // 最大智能分析任务个数
  87571. #define MAX_ANALYSE_FILTER_EVENT_NUM 64 // 最大支持过滤的事件个数
  87572. #define MAX_ANALYSE_ALGORITHM_NUM 16 // 最大算法数量
  87573. #define MAX_ANALYSE_TOTALCAPS_NUM 32 // 最大的智能分析总能力数量
  87574. ///@brief 智能分析剩余能力具体信息
  87575. typedef struct tagNET_REMAIN_ANALYSE_CAPACITY
  87576. {
  87577. UINT nMaxStreamNum; // 剩余能分析的视频流数目
  87578. EM_SCENE_CLASS_TYPE emClassType; // 大类业务方案
  87579. BYTE byReserved[1024]; // 保留字节
  87580. } NET_REMAIN_ANALYSE_CAPACITY;
  87581. ///@brief 可供任务调度的总的智能能力
  87582. typedef struct tagNET_REMAIN_ANALYSE_TOTAL_CAPACITY
  87583. {
  87584. EM_SCENE_CLASS_TYPE emClassType; // 业务大类
  87585. UINT nNumber; // 任务调度总共能分析的视频流数目
  87586. BYTE byReserved[256]; // 预留字节
  87587. } NET_REMAIN_ANALYSE_TOTAL_CAPACITY;
  87588. ///@brief 图片智能分析剩余能力具体信息
  87589. typedef struct tagNET_REMAIN_PICTURE_ANALYSE_CAPACITY
  87590. {
  87591. UINT nMaxStreamNum; // 剩余能分析的视频流数目
  87592. EM_SCENE_CLASS_TYPE emClassType; // 大类业务方案
  87593. BYTE byReserved[1024]; // 保留字节
  87594. } NET_REMAIN_PICTURE_ANALYSE_CAPACITY;
  87595. ///@brief 可供任务调度的总的图片智能能力
  87596. typedef struct tagNET_REMAIN_PICTURE_ANALYSE_TOTAL_CAPACITY
  87597. {
  87598. EM_SCENE_CLASS_TYPE emClassType; // 业务大类
  87599. UINT nNumber; // 任务调度总共能分析的视频流数目
  87600. BYTE byReserved[256]; // 预留字节
  87601. } NET_REMAIN_PICTURE_ANALYSE_TOTAL_CAPACITY;
  87602. ///@brief 特征库类型
  87603. typedef enum tagEM_REPOSITORY_TYPE
  87604. {
  87605. EM_REPOSITORY_TYPE_UNKNOWN = -1, // 未知
  87606. EM_REPOSITORY_TYPE_BLOCKLIST, // 禁止访问名单库
  87607. EM_REPOSITORY_TYPE_ALLOWLIST, // 允许访问名单库
  87608. EM_REPOSITORY_TYPE_STATIC, // 静态库
  87609. EM_REPOSITORY_TYPE_SNAPSHOT, // 抓拍库
  87610. } EM_REPOSITORY_TYPE;
  87611. ///@brief 特征比对能力
  87612. typedef struct tagNET_FEATURE_MATCH
  87613. {
  87614. EM_SCENE_CLASS_TYPE emClassType; // 业务大类
  87615. BYTE byReserved1[4]; // 字节对齐
  87616. EM_REPOSITORY_TYPE emRepositoryType[16]; // 支持的特征库类型
  87617. int nRepositoryTypeNum; // 支持的特征库个数
  87618. UINT nComparePerSecond; // 每秒比对次数,单位次/s
  87619. UINT nFeatureCapacity; // 特征库存储特征数据总容量大小,单位个
  87620. UINT nFreeFeatureCapacity; // 特征库存储特征数据剩余容量大小,单位个
  87621. BYTE byReserved[512]; // 保留字节
  87622. }NET_FEATURE_MATCH;
  87623. ///@brief 智能分析剩余能力
  87624. typedef struct tagNET_CB_REMAIN_CAPACITY
  87625. {
  87626. UINT nRemainCapacityNum; // 智能分析剩余能力数量
  87627. NET_REMAIN_ANALYSE_CAPACITY stuRemainCapacities[MAX_ANALYSE_REMAIN_CAPACITY_NUM]; // 智能分析剩余能力
  87628. NET_REMAIN_ANALYSE_TOTAL_CAPACITY stuTotalCapacity[32]; // 可供任务调度的总的智能能力
  87629. UINT nTotalCapacityNum; // 可供任务调度的总的智能能力个数
  87630. UINT nRemainDecodeCaps; // 剩余解码能力,即剩余解码资源个数
  87631. UINT nRemainComputingCaps; // 剩余算力
  87632. NET_REMAIN_PICTURE_ANALYSE_CAPACITY stuRemainPictureCapacities[32]; // 图片智能分析剩余能力
  87633. UINT nRemainPictureCapacityNum; // 智能分析剩余能力数量
  87634. UINT nTotalPictureCapacityNum; // 可供任务调度的总的图片智能能力个数
  87635. NET_REMAIN_PICTURE_ANALYSE_TOTAL_CAPACITY stuTotalPictureCapacity[32]; // 可供任务调度的总的图片智能能力
  87636. NET_FEATURE_MATCH stuFeatureMatch[32]; // 特征比对能力
  87637. UINT nFeatureMatchNum; // 特征比对能力个数
  87638. BYTE byReserved[1016]; // 保留字节
  87639. } NET_CB_REMAIN_CAPACITY;
  87640. ///@brief 订阅剩余智能分析资源回调函数原形,lAttachHandle是CLIENT_IntelliAttachResource返回值
  87641. typedef void (CALLBACK *fAttachRemainAnalyseResourceCB) (LLONG lAttachHandle, NET_CB_REMAIN_CAPACITY* pstRemainCapacity, LDWORD dwUser);
  87642. ///@brief CLIENT_AttachRemainAnalyseResource 接入输出参数
  87643. typedef struct tagNET_IN_ATTACH_REMAIN_ANALYSE_RESOURCE
  87644. {
  87645. DWORD dwSize; // 结构体大小
  87646. BYTE byReserved[4]; // 用于字节对齐
  87647. fAttachRemainAnalyseResourceCB cbAttachResource; // 剩余智能分析资源回调函数
  87648. LDWORD dwUser; // 用户数据
  87649. } NET_IN_ATTACH_REMAIN_ANALYSE_RESOURCE;
  87650. ///@brief 智能分析数据源类型
  87651. typedef enum tagEM_DATA_SOURCE_TYPE
  87652. {
  87653. EM_DATA_SOURCE_REMOTE_UNKNOWN = 0, // 未知
  87654. EM_DATA_SOURCE_REMOTE_REALTIME_STREAM = 1, // 远程实时流 , 对应 NET_REMOTE_REALTIME_STREAM_INFO
  87655. EM_DATA_SOURCE_PUSH_PICFILE, // 主动推送图片文件, 对应 NET_PUSH_PICFILE_INFO
  87656. EM_DATA_SOURCE_REMOTE_VIDEO_FILE, // 远程视频文件, 对应 NET_REMOTE_VIDEO_FILE_INFO
  87657. EM_DATA_SOURCE_REMOTE_PICTURE_FILE, // 远程图片文件, 对应 NET_REMOTE_PICTURE_FILE_INFO
  87658. EM_DATA_SOURCE_OFFLINE_VIDEO_FILE, // 离线视频文件(第三方导入的文件), 对应 NET_OFFLINE_VIDEO_FILE_INFO
  87659. EM_DATA_SOURCE_PUSH_PICFILE_BYRULE, // 主动推送图片文件,添加任务时无规则和图片信息,通过推送图片接口,每张图片中带有不同的规则信息(目前能源场景中使用), 对应 NET_PUSH_PICFILE_BYRULE_INFO
  87660. EM_DATA_SOURCE_LOCAL_STREAM, // 本地实时流, 对应 NET_LOCAL_STREAM_INFO
  87661. EM_DATA_SOURCE_ALL_SOURCE_TYPE, // 所有的任务类型,目前只在CLIENT_RemoveAnalyseTaskByType接口使用,表示删除所有的任务类型的任务
  87662. } EM_DATA_SOURCE_TYPE;
  87663. ///@brief 目标属性类型
  87664. typedef enum tagNET_EM_FACEFEATURE_TYPE
  87665. {
  87666. NET_EM_FACEFEATURE_UNKNOWN, // 未知
  87667. NET_EM_FACEFEATURE_SEX, // 性别
  87668. NET_EM_FACEFEATURE_AGE, // 年龄
  87669. NET_EM_FACEFEATURE_EMOTION, // 表情
  87670. NET_EM_FACEFEATURE_GLASSES, // 眼镜状态
  87671. NET_EM_FACEFEATURE_EYE, // 眼睛状态
  87672. NET_EM_FACEFEATURE_MOUTH, // 嘴巴状态
  87673. NET_EM_FACEFEATURE_MASK, // 口罩状态
  87674. NET_EM_FACEFEATURE_BEARD, // 胡子状态
  87675. NET_EM_FACEFEATURE_ATTRACTIVE, // 魅力值
  87676. } NET_EM_FACEFEATURE_TYPE;
  87677. ///@brief 事件类型EVENT_IVS_FACEANALYSIS(目标分析事件) 对应的规则配置
  87678. typedef struct tagNET_FACEANALYSIS_RULE_INFO
  87679. {
  87680. DWORD dwSize; // 结构体大小
  87681. int nDetectRegionPoint; // 检测区顶点数
  87682. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87683. int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  87684. int nLinkGroupNum; // 联动布控个数
  87685. NET_CFG_LINKGROUP_INFO stuLinkGroup[20]; // 联动的布控组
  87686. NET_CFG_STRANGERMODE_INFO stuStrangerMode; // 陌生人布防模式
  87687. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  87688. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  87689. BOOL bFeatureEnable; // 是否开启目标属性识别, IPC增加
  87690. int nFaceFeatureNum; // 需要检测的目标属性个数
  87691. NET_EM_FACEFEATURE_TYPE emFaceFeatureType[32]; // 需检测的目标属性
  87692. BOOL bFeatureFilter; // 在目标属性开启前提下,如果目标图像质量太差,是否不上报属性
  87693. // true-图像太差不上报属性 false-图像很差也上报属性(可能会非常不准,影响用户体验)
  87694. int nMinQuality; // 目标图片质量阈值,和bFeatureFilter一起使用 范围[1,100]
  87695. } NET_FACEANALYSIS_RULE_INFO;
  87696. ///@brief 事件类型EVENT_IVS_TRAFFIC_ROAD_BLOCK(交通路障检测事件) 对应的规则配置
  87697. typedef struct tagNET_TRAFFIC_ROAD_BLOCK_RULE_INFO
  87698. {
  87699. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87700. int nDetectRegionPoint; // 检测区顶点数
  87701. UINT nMinDuration; // 最短持续时间,单位:秒 0~65535
  87702. UINT nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  87703. int nLaneNumber; // 车道编号 与场景中的车道号对应
  87704. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍。有两种情况不适合变倍
  87705. // 1.车速较快场合,变倍会导致跟踪不及时
  87706. // 2.车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  87707. // 在以上这两种情况下,需要关闭变倍。注意是否要关闭变倍取决于现场情况,属于比较专业的配置,只对Web或者调试工具开放该选项
  87708. // true开启变倍,false不变倍
  87709. // web上默认勾选
  87710. UINT nRepeatAlarmTime; // 重复报警时间,单位:秒,范围0-3600.无该字段时,不做处理
  87711. BYTE byReserved[4096]; // 保留字节
  87712. } NET_TRAFFIC_ROAD_BLOCK_RULE_INFO;
  87713. ///@brief 事件类型EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION(交通道路施工检测事件) 对应的规则配置
  87714. typedef struct tagNET_TRAFFIC_ROAD_CONSTRUCTION_RULE_INFO
  87715. {
  87716. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87717. int nDetectRegionPoint; // 检测区顶点数
  87718. UINT nMinDuration; // 最短持续时间,单位:秒 0~65535
  87719. UINT nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  87720. int nLaneNumber; // 车道编号 与场景中的车道号对应
  87721. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍。有两种情况不适合变倍
  87722. // 1.车速较快场合,变倍会导致跟踪不及时
  87723. // 2.车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  87724. // 在以上这两种情况下,需要关闭变倍。注意是否要关闭变倍取决于现场情况,属于比较专业的配置,只对Web或者调试工具开放该选项
  87725. // true开启变倍,false不变倍
  87726. // web上默认勾选
  87727. UINT nRepeatAlarmTime; // 重复报警时间,单位:秒,范围0-3600.无该字段时,不做处理
  87728. BYTE byReserved[4096]; // 保留字节
  87729. } NET_TRAFFIC_ROAD_CONSTRUCTION_RULE_INFO;
  87730. ///@brief 事件类型EVENT_IVS_TRAFFIC_FLOWSTATE(交通流量统计事件) 对应的规则配置
  87731. typedef struct tagNET_TRAFFIC_FLOWSTAT_RULE_INFO
  87732. {
  87733. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87734. int nDetectRegionPoint; // 检测区顶点数
  87735. int nDetectLineNum; // 规则检测线顶点数
  87736. DH_POINT DetectLine[DH_MAX_DETECT_LINE_NUM]; // 规则检测线
  87737. int nLaneNumber; // 车道编号 与场景中的车道号对应
  87738. UINT nPeriod; // 统计周期,单位:分钟
  87739. BYTE byReserved[4096]; // 保留字节
  87740. } NET_TRAFFIC_FLOWSTAT_RULE_INFO;
  87741. ///@brief 速度限制
  87742. typedef struct tagNET_SPEED_LIMIT
  87743. {
  87744. int nSpeedUpperLimit; // 速度上限
  87745. int nSpeedLowerLimit; // 速度下限
  87746. } NET_SPEED_LIMIT;
  87747. ///@brief 事件类型EVENT_IVS_TRAFFIC_OVERSPEED(超速事件) 对应的规则配置
  87748. typedef struct tagNET_TRAFFIC_OVERSPEED_RULE_INFO
  87749. {
  87750. NET_SPEED_LIMIT stuSpeedLimit; // 限速范围
  87751. int nMinDuration; // 最短触发时间,单位:秒
  87752. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  87753. NET_SPEED_LIMIT stuYellowSpeedLimit; // 黄牌车限速范围,范围0~255km/h
  87754. int nLaneNumber; // 车道编号 与场景中的车道号对应
  87755. BOOL bSpeedLimitForSize; // 是否启用大小车限速,True-使用下面具体的大小车限速字段,False-使用SpeedLimit字段,该字段缺省时默认False,即使用通用字段SpeedLimit
  87756. NET_SPEED_LIMIT stuSmallCarSpeedLimit; // 小型车辆速度下限和上限,0~255km/h,启用bSpeedLimitForSize有效,作为普通车辆限速
  87757. NET_SPEED_LIMIT stuBigCarSpeedLimit; // 大型车辆速度下限和上限,0~255km/h,启用bSpeedLimitForSize有效,作为大型车辆限速
  87758. NET_SPEED_LIMIT stuOverSpeedMargin; // 小车限高速宽限值,单位:km/h,不启用大小车限速时作为普通车辆高速宽限值,启用bSpeedLimitForSize时作为小车高速宽限值
  87759. NET_SPEED_LIMIT stuBigCarOverSpeedMargin; // 大车限高速宽限值,单位:km/h,不启用大小车限速时作为普通车辆高速宽限值,启用bSpeedLimitForSize时作为大型车辆高速宽限值
  87760. NET_SPEED_LIMIT stuUnderSpeedMargin; // 小车限低速宽限值,单位:km/h,不启用大小车限速时作为普通车辆低速宽限值,启用bSpeedLimitForSize时,作为小车低速宽限值
  87761. NET_SPEED_LIMIT stuBigCarUnderSpeedMargin; // 大车限低速宽限值,单位:km/h,不启用大小车限速时作为普通车辆低速宽限值,启用bSpeedLimitForSize时作为大型车辆高速宽限值
  87762. BOOL bVoiceBroadcastEnable; // 语音播报使能
  87763. BYTE byReserved[4092]; // 保留字节
  87764. } NET_TRAFFIC_OVERSPEED_RULE_INFO;
  87765. ///@brief 事件类型EVENT_IVS_TRAFFIC_UNDERSPEED(欠速事件) 对应的规则配置
  87766. typedef struct tagNET_TRAFFIC_UNDERSPEED_RULE_INFO
  87767. {
  87768. NET_SPEED_LIMIT stuSpeedLimit; // 限速范围
  87769. int nMinDuration; // 最短触发时间,单位:秒
  87770. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  87771. NET_SPEED_LIMIT stuYellowSpeedLimit; // 黄牌车限速范围,范围0~255km/h
  87772. int nLaneNumber; // 车道编号 与场景中的车道号对应
  87773. BOOL bSpeedLimitForSize; // 是否启用大小车限速,True-使用下面具体的大小车限速字段,False-使用SpeedLimit字段,该字段缺省时默认False,即使用通用字段SpeedLimit
  87774. NET_SPEED_LIMIT stuSmallCarSpeedLimit; // 小型车辆速度下限和上限,0~255km/h,启用bSpeedLimitForSize有效,作为普通车辆限速
  87775. NET_SPEED_LIMIT stuBigCarSpeedLimit; // 大型车辆速度下限和上限,0~255km/h,启用bSpeedLimitForSize有效,作为大型车辆限速
  87776. NET_SPEED_LIMIT stuOverSpeedMargin; // 小车限高速宽限值,单位:km/h,不启用大小车限速时作为普通车辆高速宽限值,启用bSpeedLimitForSize时作为小车高速宽限值
  87777. NET_SPEED_LIMIT stuBigCarOverSpeedMargin; // 大车限高速宽限值,单位:km/h,不启用大小车限速时作为普通车辆高速宽限值,启用bSpeedLimitForSize时作为大型车辆高速宽限值
  87778. NET_SPEED_LIMIT stuUnderSpeedMargin; // 小车限低速宽限值,单位:km/h,不启用大小车限速时作为普通车辆低速宽限值,启用bSpeedLimitForSize时,作为小车低速宽限值
  87779. NET_SPEED_LIMIT stuBigCarUnderSpeedMargin; // 大车限低速宽限值,单位:km/h,不启用大小车限速时作为普通车辆低速宽限值,启用bSpeedLimitForSize时作为大型车辆高速宽限值
  87780. BOOL bVoiceBroadcastEnable; // 语音播报使能
  87781. BYTE byReserved[4092]; // 保留字节
  87782. } NET_TRAFFIC_UNDERSPEED_RULE_INFO;
  87783. ///@brief 事件类型EVENT_IVS_TRAFFIC_OVERYELLOWLINE(压黄线事件) 对应的规则配置
  87784. typedef struct tagNET_TRAFFIC_OVERYELLOWLINE_RULE_INFO
  87785. {
  87786. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87787. int nDetectRegionPoint; // 检测区顶点数
  87788. int nLaneNumber; // 车道编号 与场景中的车道号对应
  87789. BOOL bAreaTrigEnable; // 是否使能区域内触发该规则, false-不使能,true-使能
  87790. UINT nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  87791. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  87792. UINT nDelayTime; // 事件检测模式下,配置给算法,表示检测到事件发生后,多长时间开始报警,单位:秒,范围0-3600,无该字段不做处理
  87793. BYTE byReserved[4096]; // 保留字节
  87794. } NET_TRAFFIC_OVERYELLOWLINE_RULE_INFO;
  87795. ///@brief 事件类型EVENT_IVS_TRAFFIC_CROSSLANE(违章变道事件) 对应的规则配置
  87796. typedef struct tagNET_TRAFFIC_CROSSLANE_RULE_INFO
  87797. {
  87798. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87799. int nDetectRegionPoint; // 检测区顶点数
  87800. int nLaneNumber; // 车道编号 与场景中的车道号对应
  87801. DH_POINT stuDirectionStart; // 起点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
  87802. DH_POINT stuDirectionEnd; // 终点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
  87803. UINT nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  87804. BOOL bAreaTrigEnable; // 是否使能区域内触发该规则, false-不使能,true-使能
  87805. BOOL bContinueCrossLaneEnable; // 方案参数, false-普通变道(只要变道一次即可),true -抓连续变道(变道2次及以上)
  87806. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
  87807. // 如下两种情况不适合变倍
  87808. // 1. 车速较快场合,变倍会导致跟踪不及时
  87809. // 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  87810. // 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
  87811. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  87812. UINT nDelayTime; // 事件检测模式下,配置给算法,表示检测到事件发生后,多长时间开始报警,单位:秒,范围0-3600,无该字段不做处理
  87813. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  87814. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  87815. BOOL bSnapNoPlateMotor; // 是否抓拍无牌车,true-抓拍无牌车 false-不抓拍无牌车
  87816. BYTE byReserved[4096]; // 保留字节
  87817. } NET_TRAFFIC_CROSSLANE_RULE_INFO;
  87818. ///@brief 事件类型EVENT_IVS_TRAFFICJAM(交通拥堵事件) 对应的规则配置
  87819. typedef struct tagNET_TRAFFIC_JAM_RULE_INFO
  87820. {
  87821. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87822. int nDetectRegionPoint; // 检测区顶点数
  87823. UINT nJamLineMargin; // 占线限值起始值(上限),拥堵长度占车道比例限值1-100
  87824. UINT nJamLineMarginEnd; // 占线限值终值(下限),必须比JamLineMargin小,两值的差推荐大于10,不能相等1-99
  87825. int nLaneNumber; // 车道编号 与场景中的车道号对应
  87826. UINT nDelay; // 检测到报警发生到开始上报的时间,单位:秒 范围1~65535
  87827. UINT nInterval; // 报警间隔时间,单位:秒 范围1~65535
  87828. UINT nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  87829. UINT nReportTimes; // 上报次数 1~255
  87830. UINT nVehicleNumberThreshold; // 路口车辆数目阈值,大于0:只有当前路口车辆数目大于此值时才会判定为拥堵;等于0:对车辆数目没要求
  87831. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
  87832. // 如下两种情况不适合变倍
  87833. // 1. 车速较快场合,变倍会导致跟踪不及时
  87834. // 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  87835. // 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
  87836. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  87837. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  87838. UINT nDiscontinuousTimeThreshold; // 不连续时间阈值(单位:秒):若超过该时间阈值为不拥堵的情况,将对报警计数清零 0-255
  87839. BYTE byReserved[4096]; // 保留字节
  87840. } NET_TRAFFIC_JAM_RULE_INFO;
  87841. ///@brief 事件类型EVENT_IVS_TRAFFIC_PEDESTRAIN(交通行人事件) 对应的规则配置
  87842. typedef struct tagNET_TRAFFIC_PEDESTRAIN_RULE_INFO
  87843. {
  87844. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87845. int nDetectRegionPoint; // 检测区顶点数
  87846. int nLaneNumber; // 车道编号 与场景中的车道号对应
  87847. int nMinDuration; // 最短触发时间,单位:秒
  87848. int nInterval; // 报警间隔时间,单位:秒
  87849. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  87850. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
  87851. // 如下两种情况不适合变倍
  87852. // 1. 车速较快场合,变倍会导致跟踪不及时
  87853. // 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  87854. // 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
  87855. UINT nRepeatAlarmTime; // 重复报警时间,无该字段不做处理
  87856. UINT nSnapObjectType; // 抓拍目标类型,默认抓拍行人,后续可做扩展.无该字段不做处理
  87857. UINT nDelayTime; // 检测到行人后多少时间开始报警。单位:秒,范围0-3600.无该字段不做处理
  87858. UINT nSensitivity; // 灵敏度,范围1~100 ,配置0即为默认值,灵敏度越大算法检测越灵敏
  87859. BYTE byReserved[4096]; // 保留字节
  87860. } NET_TRAFFIC_PEDESTRAIN_RULE_INFO;
  87861. ///@brief 事件类型EVENT_IVS_TRAFFIC_THROW(抛洒物事件) 对应的规则配置
  87862. typedef struct tagNET_TRAFFIC_THROW_RULE_INFO
  87863. {
  87864. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87865. int nDetectRegionPoint; // 检测区顶点数
  87866. int nLaneNumber; // 车道编号 与场景中的车道号对应
  87867. int nMinDuration; // 最短触发时间,单位:秒
  87868. int nInterval; // 报警间隔时间,单位:秒
  87869. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  87870. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
  87871. // 如下两种情况不适合变倍
  87872. // 1. 车速较快场合,变倍会导致跟踪不及时
  87873. // 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  87874. // 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
  87875. UINT nRepeatAlarmTime; // 重复报警时间,无该字段不做处理
  87876. UINT nSnapObjectType; // 抓拍目标类型,默认抓拍行人,后续可做扩展.无该字段不做处理
  87877. UINT nDelayTime; // 检测到行人后多少时间开始报警。单位:秒,范围0-3600.无该字段不做处理
  87878. UINT nSensitivity; // 灵敏度,范围1~100 ,配置0即为默认值,灵敏度越大算法检测越灵敏
  87879. BYTE byReserved[4096]; // 保留字节
  87880. } NET_TRAFFIC_THROW_RULE_INFO;
  87881. ///@brief 事件类型EVENT_IVS_RETROGRADEDETECTION(逆行检测事件) 对应的规则配置
  87882. typedef struct tagNET_RETROGRADE_DETECTION_RULE_INFO
  87883. {
  87884. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87885. int nDetectRegionPoint; // 检测区顶点数
  87886. int nTriggerPosition; // 触发报警位置数
  87887. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  87888. DH_POINT stuDirectionStart; // 起点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
  87889. DH_POINT stuDirectionEnd; // 终点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
  87890. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  87891. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  87892. UINT nSensitivity; // 灵敏度,值越小灵敏度越低。取决于方向夹角,取值1-10
  87893. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  87894. UINT nDistance; // 逆行多少距离后触发报警,GB30147要求,距离归一化到8192坐标
  87895. BYTE byReserved[4096]; // 保留字节
  87896. } NET_RETROGRADE_DETECTION_RULE_INFO;
  87897. ///@brief 抓拍机动车枚举
  87898. typedef enum tagNET_EM_SNAP_PLATEMOTOR_TYPE
  87899. {
  87900. NET_EM_SNAP_PLATEMOTOR_YES, // 抓拍机动车,默认值
  87901. NET_EM_SNAP_PLATEMOTOR_NO, // 不抓拍机动车
  87902. } NET_EM_SNAP_PLATEMOTOR_TYPE;
  87903. ///@brief 事件类型EVENT_IVS_TRAFFIC_RETROGRADE(交通逆行检测事件) 对应的规则配置
  87904. typedef struct tagNET_TRAFFIC_RETROGRADE_RULE_INFO
  87905. {
  87906. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87907. int nDetectRegionPoint; // 检测区顶点数
  87908. BYTE byReserved1[4]; // 字节对齐
  87909. DH_POINT stuDirectionStart; // 起点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
  87910. DH_POINT stuDirectionEnd; // 终点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
  87911. int nMinDuration; // 最短触发时间,单位:秒
  87912. UINT nLaneNumber; // 车道编号 与场景中的车道号对应
  87913. BOOL bLegal; // 逆行是否违章
  87914. UINT nPositionDistinctness; // 抓拍位置变化区分度
  87915. UINT nSensitivity; // 灵敏度,值越小灵敏度越低。取决于方向夹角,取值1-10
  87916. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
  87917. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  87918. UINT nSnapNonMotor; // 是否抓拍非机动车
  87919. UINT nSnapNoPlateMotor; // 是否抓拍无牌机动车
  87920. NET_EM_SNAP_PLATEMOTOR_TYPE emSnapPlateMotor; // 是否抓拍机动车
  87921. UINT nSnapBicycle; // 是否抓拍自行车
  87922. UINT nDurationTime; // 事件检测模式下,逆行时间超过这个值后开始报警,单位:秒,范围0-3600
  87923. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  87924. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  87925. UINT nReverseDisplacement; // 逆行位移,默认1024坐标系, 范围是1-1023 单位是像素, 若无该字段或该字段配置为0时,算法设置默认值
  87926. BYTE byReserved[4096]; // 保留字节
  87927. } NET_TRAFFIC_RETROGRADE_RULE_INFO;
  87928. ///@brief 事件类型EVENT_IVS_TRAFFIC_PARKING(交通违章停车事件) 对应的规则配置
  87929. typedef struct tagNET_TRAFFIC_PARKING_RULE_INFO
  87930. {
  87931. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87932. int nDetectRegionPoint; // 检测区顶点数
  87933. UINT nLaneNumber; // 车道编号 与场景中的车道号对应
  87934. UINT nDelay; // 检测到报警发生到开始上报的时间,单位:秒 范围1~65535
  87935. UINT nReportTimes; // 上报次数 1~255
  87936. UINT nParkingAllowedTime; // 允许停车时间 单位:秒,范围1~65535
  87937. UINT nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  87938. UINT nParkingNumThreshold; // 停车数阈值,画面中停车数量大于此值时不报警 取值1-128
  87939. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
  87940. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  87941. UINT nDectRegionNumber; // 检测区域号 与场景中的检测区域编号对应
  87942. UINT nShadeSnap; // 遮挡抓拍,默认为0 0:不支持1:支持
  87943. UINT nControlMoreAlerts; // 是否开启抑制同一个目标重复多报功能,0:不开启该功能,1:开启功能
  87944. UINT nReduceUnderreporting; // 是否开启减少id跳变导致的漏报功能,0:不开启该功能,1:开启功能
  87945. BYTE byReserved[4096]; // 保留字节
  87946. } NET_TRAFFIC_PARKING_RULE_INFO;
  87947. ///@brief 事件类型EVENT_IVS_FINANCE_CASH_TRANSACTION(智慧金融现金交易检测事件) 对应的规则配置
  87948. typedef struct tagNET_FINANCE_CASH_TRANSACTION_RULE_INFO
  87949. {
  87950. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87951. int nDetectRegionPoint; // 检测区顶点数
  87952. int nHumanDetectRegionPoint; // 人员检测区顶点数
  87953. POINTCOORDINATE stuHumanDetectRegion[20]; // 人员检测区
  87954. UINT nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  87955. UINT nMinDuration; // 最短持续时间,单位:秒 (5S—60S)
  87956. UINT nReportInterval; // 重复报警间隔,单位:秒 (0S—300S)
  87957. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  87958. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  87959. BYTE byReserved[4096]; // 保留字节
  87960. } NET_FINANCE_CASH_TRANSACTION_RULE_INFO;
  87961. ///@brief 事件类型EVENT_IVS_LEAVEDETECTION(离岗检测事件) 对应的规则配置
  87962. typedef struct tagNET_LEAVEDETECTION_RULE_INFO
  87963. {
  87964. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87965. int nDetectRegionPoint; // 检测区顶点数
  87966. UINT nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  87967. UINT nMinDuration; // 最短持续时间,单位:秒
  87968. UINT nReportInterval; // 报告时间间隔,单位:秒
  87969. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  87970. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  87971. UINT nPersonLimitMin; // 允许值岗人数范围最小值
  87972. UINT nPersonLimitMax; // 允许值岗人数范围最大值
  87973. BYTE byReserved[4096]; // 保留字节
  87974. } NET_LEAVEDETECTION_RULE_INFO;
  87975. ///@brief 检测目标
  87976. typedef enum tagEM_NEAR_DETECT_OBJECT
  87977. {
  87978. EM_NEAR_DETECT_OBJECT_UNKNOWN, // 未知
  87979. EM_NEAR_DETECT_OBJECT_PERSON, // 人
  87980. EM_NEAR_DETECT_OBJECT_ANIMAL, // 动物
  87981. }EM_NEAR_DETECT_OBJECT;
  87982. ///@brief 被接近目标类型
  87983. typedef enum tagEM_NEAR_OBJECT_TYPE
  87984. {
  87985. EM_NEAR_OBJECT_TYPE_UNKNOWN, // 未知
  87986. EM_NEAR_OBJECT_TYPE_MOVING_FOR_KLIFT, // 移动叉车
  87987. EM_NEAR_OBJECT_TYPE_SILICON_PACKAGE, // 硅包
  87988. EM_NEAR_OBJECT_TYPE_MOVING_SILICON_PACKAGE, // 移动的硅包
  87989. EM_NEAR_OBJECT_TYPE_PURING_SILICON_PACKAGE, // 倒硅水的硅包
  87990. }EM_NEAR_OBJECT_TYPE;
  87991. ///@brief 事件类型 EVENT_IVS_NEAR_OBJECT_DETECT(近物体检测事件) 对应的规则配置
  87992. typedef struct tagNET_IVS_NEAR_OBJECT_DETECT_RULE_INFO
  87993. {
  87994. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  87995. int nDetectRegionPoint; // 检测区顶点数
  87996. UINT nMinDuration; // 最短持续时间,单位秒
  87997. UINT nReportInterval; // 报告时间间隔,单位秒
  87998. UINT nSensitivity; // 灵敏度,值越小灵敏度越低。取值1-10
  87999. EM_NEAR_DETECT_OBJECT emDetectObject; // 检测目标
  88000. EM_NEAR_OBJECT_TYPE emNearObjectType; // 被接近目标类型
  88001. char szReserved[2048]; // 保留字节
  88002. } NET_IVS_NEAR_OBJECT_DETECT_RULE_INFO;
  88003. ///@brief 事件类型 EVENT_IVS_PIC_COMPARE_DETECTION (图片比对不上报警事件) 对应的规则配置
  88004. typedef struct tagNET_IVS_PIC_COMPARE_DETECTION_RULE_INFO
  88005. {
  88006. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  88007. int nDetectRegionPoint; // 检测区顶点数
  88008. UINT nMinDuration; // 最短持续时间,单位秒
  88009. UINT nReportInterval; // 报告时间间隔,单位秒
  88010. UINT nSensitivity; // 灵敏度,值越小灵敏度越低 取值1-10
  88011. BOOL bSizeFilter; // 规则特定的尺寸过滤器是否有效
  88012. NET_CFG_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器
  88013. char szReserved[2048]; // 保留字节
  88014. } NET_IVS_PIC_COMPARE_DETECTION_RULE_INFO;
  88015. ///@brief 事件类型EVENT_IVS_TRAFFICACCIDENT(交通事故) 对应的规则配置
  88016. typedef struct tagNET_TRAFFIC_ACCIDENT_RULE_INFO
  88017. {
  88018. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  88019. int nDetectRegionPoint; // 检测区顶点数
  88020. int nLaneNumber; // 车道编号 与场景中的车道号对应
  88021. int nMinDuration; // 最短触发时间,单位:秒
  88022. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
  88023. // 如下两种情况不适合变倍
  88024. // 1. 车速较快场合,变倍会导致跟踪不及时
  88025. // 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  88026. // 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
  88027. UINT nZoomStayTime; // 变倍停留时间,单位:秒,在ZoomEnable为true时有效,为0时表示不停留,默认为0
  88028. UINT nVehicleDelayTime; // 车辆触发报警时间阈值,大于该阈值认为是交通事件,单位:秒,范围0-3600
  88029. UINT nPersonDelayTime; // 行人触发报警时间阈值,大于该阈值认为是交通事件,单位:秒,范围0-3600
  88030. UINT nMaxDelayTime; // 最大报警时长 超过此时间将不再报警,单位:秒,范围0-3600
  88031. UINT nVehicleNumberThreshold; // 拥堵状态下的停车数阈值,用于拥堵造成的交通事故,不做报警
  88032. UINT nWanderTime; // 追尾后停车时间阈值,超过阈值报警,单位ms 0~65535
  88033. UINT nRepeatTime; // 重复报警时间,单位ms; 0~65535
  88034. BOOL bRelateHuman; // 是否需要关联行人才报警,false为不关联,true为关联
  88035. BYTE byReserved[4096]; // 保留字节
  88036. } NET_TRAFFIC_ACCIDENT_RULE_INFO;
  88037. ///@brief 事件类型EVENT_IVS_TRAFFIC_BACKING(倒车) 对应的规则配置
  88038. typedef struct tagNET_TRAFFIC_BACKING_RULE_INFO
  88039. {
  88040. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  88041. int nDetectRegionPoint; // 检测区顶点数
  88042. int nLaneNumber; // 车道编号 与场景中的车道号对应
  88043. DH_POINT stuDirectionStart; // 起点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
  88044. DH_POINT stuDirectionEnd; // 终点,从起点到终点是正向行驶,反过来是逆行,点的坐标归一化到[0,8192)区间。
  88045. UINT nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  88046. BOOL bAreaTrigEnable; // 是否使能区域内触发该规则, false-不使能,true-使能
  88047. BOOL bContinueCrossLaneEnable; // 方案参数, false-普通变道(只要变道一次即可),true -抓连续变道(变道2次及以上)
  88048. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
  88049. // 如下两种情况不适合变倍
  88050. // 1. 车速较快场合,变倍会导致跟踪不及时
  88051. // 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  88052. // 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
  88053. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  88054. UINT nDelayTime; // 事件检测模式下,配置给算法,表示检测到事件发生后,多长时间开始报警,单位:秒,范围0-3600,无该字段不做处理
  88055. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  88056. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  88057. BOOL bSnapNoPlateMotor; // 是否抓拍无牌车,true-抓拍无牌车 false-不抓拍无牌车
  88058. BYTE byReserved[4096]; // 保留字节
  88059. } NET_TRAFFIC_BACKING_RULE_INFO;
  88060. ///@brief 事件类型EVENT_IVS_FOG_DETECTION(起雾检测) 对应的规则配置
  88061. typedef struct tagNET_FOG_DETECTION_RULE_INFO
  88062. {
  88063. EM_FOG_LEVEL emAlarmFogLevel; // 报警阈值。当雾情达到什么程度时,进行报警
  88064. UINT nAlarmInterval; // 报警时间间隔,单位秒,取值范围为[60,86400]
  88065. BOOL bRealDataUpload; // 是否上报实时数据
  88066. UINT nRealUpdateInterval; // 实时数据上报间隔,单位秒,取值范围为[60,86400]
  88067. BYTE byReserved[4096]; // 保留字节
  88068. } NET_FOG_DETECTION_RULE_INFO;
  88069. ///@brief 视频支持的目标类型
  88070. typedef enum tagNET_ANALYSE_HUMANFACE_TYPE
  88071. {
  88072. NET_ANALYSE_HUMANFACE_TYPE_UNKNOWN, // 未知类型
  88073. NET_ANALYSE_HUMANFACE_TYPE_NORMAL, // 普通目标
  88074. NET_ANALYSE_HUMANFACE_TYPE_HIDEEYE, // 眼部遮挡
  88075. NET_ANALYSE_HUMANFACE_TYPE_HIDENOSE, // 鼻子遮挡
  88076. NET_ANALYSE_HUMANFACE_TYPE_HIDEMOUTH, // 嘴部遮挡
  88077. NET_ANALYSE_HUMANFACE_TYPE_ADJACENTFACE, // 相邻目标 (注,ATM,尾随)
  88078. NET_ANALYSE_HUMANFACE_TYPE_ABNORMALFACE, // 异常目标
  88079. NET_ANALYSE_HUMANFACE_TYPE_HELMETFACE, // 头盔目标(如摩托车盔)
  88080. }NET_ANALYSE_HUMANFACE_TYPE;
  88081. ///@brief 年龄段
  88082. typedef enum tagEM_HUMAN_AGE_SEG
  88083. {
  88084. EM_HUMAN_AGE_SEG_UNKOWN, // 未知: ""
  88085. EM_HUMAN_AGE_SEG_CHILD, // 幼儿: "Child"
  88086. EM_HUMAN_AGE_SEG_ADULT, // 中年: "Adult"
  88087. EM_HUMAN_AGE_SEG_ELDERLY, // 老年: "Elderly"
  88088. }EM_HUMAN_AGE_SEG;
  88089. ///@brief 年龄段信息的描述信息
  88090. typedef struct tagNET_HUMAN_DESC_INFO
  88091. {
  88092. EM_HUMAN_AGE_SEG emName; // 称谓: EM_HUMAN_AGE_SEG_CHILD-"Child", EM_HUMAN_AGE_SEG_ADULT-"Adult", EM_HUMAN_AGE_SEG_ELDERLY-"Elderly"
  88093. UINT nRange[2]; // 年龄取值范围: nRange[0]为闭区间左值,nRange[1]为闭区间右值
  88094. char szReserved[256]; // 保留字节
  88095. }NET_HUMAN_DESC_INFO;
  88096. ///@brief 年龄过滤条件
  88097. typedef struct tagNET_HUMAN_AGE_INFO
  88098. {
  88099. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88100. int nShowListNums; // 过滤显示的年龄段的个数,最大值是16
  88101. EM_HUMAN_AGE_SEG emHumanAgeShowList[16]; // 过滤显示的年龄段
  88102. NET_HUMAN_DESC_INFO* pstuHumanDesc; // 年龄段信息的描述信息, 内存由用户申请和释放, 申请大小sizeof(NET_HUMAN_DESC_INFO)*nShowListNums
  88103. char szReserved[256]; // 保留字节
  88104. }NET_HUMAN_AGE_INFO;
  88105. ///@brief 性别过滤条件
  88106. typedef struct tagNET_HUMAN_SEX_INFO
  88107. {
  88108. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88109. int nShowListNums; // 过滤显示的性别的个数,最大值是2
  88110. EM_SEX_TYPE emHumanSexShowList[2]; // 过滤显示的性别
  88111. char szReserved[256]; // 保留字节
  88112. }NET_HUMAN_SEX_INFO;
  88113. ///@brief 表情过滤条件
  88114. typedef struct tagNET_HUMAN_EMOTION_INFO
  88115. {
  88116. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88117. int nShowListNums; // 过滤显示的表情的个数,最大值是32
  88118. EM_EMOTION_TYPE emHumanEmotionShowList[32]; // 过滤显示的表情
  88119. char szReserved[256]; // 保留字节
  88120. }NET_HUMAN_EMOTION_INFO;
  88121. ///@brief 眼镜佩戴过滤条件
  88122. typedef struct tagNET_HUMAN_GLASSES_INFO
  88123. {
  88124. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88125. int nShowListNums; // 过滤显示的眼镜佩戴情况的个数,最大值是16
  88126. EM_HAS_GLASS emHumanGlassesShowList[16]; // 过滤显示的眼镜佩戴情况
  88127. BOOL bHasGlasses; // 是否戴眼镜,TRUE-有,FALSE-无
  88128. char szReserved[256]; // 保留字节
  88129. }NET_HUMAN_GLASSES_INFO;
  88130. ///@brief 口罩佩戴过滤条件
  88131. typedef struct tagNET_HUMAN_MASK_INFO
  88132. {
  88133. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88134. int nShowListNums; // 过滤显示的口罩佩戴情况的个数,最大值是2
  88135. EM_MASK_TYPE emHumanMaskShowList[2]; // 过滤显示的口罩佩戴情况
  88136. char szReserved[256]; // 保留字节
  88137. }NET_HUMAN_MASK_INFO;
  88138. ///@brief 胡子情况
  88139. typedef enum tagEM_HUMAN_BEARD_TYPE
  88140. {
  88141. EM_HUMAN_BEARD_TYPE_UNKNOWN, // 未知
  88142. EM_HUMAN_BEARD_TYPE_NONE, // 没胡子
  88143. EM_HUMAN_BEARD_TYPE_BEARD, // 有胡子
  88144. } EM_HUMAN_BEARD_TYPE;
  88145. ///@brief 胡子过滤条件
  88146. typedef struct tagNET_HUMAN_BEARD_INFO
  88147. {
  88148. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88149. int nShowListNums; // 过滤显示的胡子情况的个数,最大值是2
  88150. EM_HUMAN_BEARD_TYPE emHumanBeardShowList[2]; // 胡子情况
  88151. char szReserved[256]; // 保留字节
  88152. }NET_HUMAN_BEARD_INFO;
  88153. ///@brief上衣类型
  88154. typedef enum tagEM_HUMAN_COAT_TYPE
  88155. {
  88156. EM_HUMAN_COAT_TYPE_UNKNOWN, // 未知
  88157. EM_HUMAN_COAT_TYPE_LONG_SLEEVE, // 长袖
  88158. EM_HUMAN_COAT_TYPE_SHORT_SLEEVE, // 短袖
  88159. }EM_HUMAN_COAT_TYPE;
  88160. ///@brief 上衣类型过滤条件
  88161. typedef struct tagNET_HUMAN_COAT_TYPE_INFO
  88162. {
  88163. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88164. int nShowListNums; // 需要过滤的上衣类型的个数,最大值是16
  88165. EM_HUMAN_COAT_TYPE emHumanCoatTypeShowList[16]; // 需要过滤的上衣类型
  88166. char szReserved[256]; // 保留字节
  88167. }NET_HUMAN_COAT_TYPE_INFO;
  88168. ///@brief 上衣颜色过滤条件
  88169. typedef struct tagNET_HUMAN_COAT_COLOR_INFO
  88170. {
  88171. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88172. int nShowListNums; // 过滤出对应的上衣颜色的个数,最大值是32
  88173. EM_CLOTHES_COLOR emHumanCoatColorShowList[32]; // 上衣颜色
  88174. char szReserved[256]; // 保留字节
  88175. }NET_HUMAN_COAT_COLOR_INFO;
  88176. ///@brief 裤子类型
  88177. typedef enum tagEM_HUMAN_TROUSERS_TYPE
  88178. {
  88179. EM_HUMAN_TROUSERS_TYPE_UNKNOWN, // 未知
  88180. EM_HUMAN_TROUSERS_TYPE_SHORT_PANTS, // 短裤
  88181. EM_HUMAN_TROUSERS_TYPE_PANTS, // 长裤
  88182. EM_HUMAN_TROUSERS_TYPE_SKIRT, // 裙子
  88183. }EM_HUMAN_TROUSERS_TYPE;
  88184. ///@brief 裤子类型过滤条件
  88185. typedef struct tagNET_HUMAN_TROUSERS_TYPE_INFO
  88186. {
  88187. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88188. int nShowListNums; // 需要过滤的裤子类型的个数,最大值是16
  88189. EM_HUMAN_TROUSERS_TYPE emHumanTrousersTypeShowList[16]; // 需要过滤的裤子类型
  88190. char szReserved[256]; // 保留字节
  88191. }NET_HUMAN_TROUSERS_TYPE_INFO;
  88192. ///@brief 裤子颜色过滤条件
  88193. typedef struct tagNET_HUMAN_TROUSERS_COLOR_INFO
  88194. {
  88195. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88196. int nShowListNums; // 需要过滤的裤子颜色颜色类型的个数,最大值是32
  88197. EM_CLOTHES_COLOR emHumanTrousersColorShowList[32]; // 需要过滤的裤子颜色类型
  88198. char szReserved[256]; // 保留字节
  88199. }NET_HUMAN_TROUSERS_COLOR_INFO;
  88200. ///@brief 背包情况
  88201. typedef enum tagEM_HUMAN_BAG_TYPE
  88202. {
  88203. EM_HUMAN_BAG_TYPE_UNKNOWN, // 未知
  88204. EM_HUMAN_BAG_TYPE_BAG, // 背包
  88205. EM_HUMAN_BAG_TYPE_CARRIER_BAG, // 手提包
  88206. EM_HUMAN_BAG_TYPE_SHOULDER_BAG, // 肩包
  88207. EM_HUMAN_BAG_TYPE_NONE, // 无
  88208. } EM_HUMAN_BAG_TYPE;
  88209. ///@brief 背包过滤条件
  88210. typedef struct tagNET_HUMAN_HAS_BAG_INFO
  88211. {
  88212. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88213. int nShowListNums; // 需要过滤的背包情况的个数,最大值是16
  88214. EM_HUMAN_BAG_TYPE emHumanHasBagShowList[16]; // 背包情况
  88215. char szReserved[256]; // 保留字节
  88216. }NET_HUMAN_HAS_BAG_INFO;
  88217. ///@brief 雨伞检测情况
  88218. typedef enum tagEM_HUMAN_UMBRELLA_TYPE
  88219. {
  88220. EM_HUMAN_UMBRELLA_TYPE_UNKNOWN, // 未知
  88221. EM_HUMAN_UMBRELLA_TYPE_WITH_UMBRELLA, // 带伞
  88222. EM_HUMAN_UMBRELLA_TYPE_NO_UMBRELLA, // 不带伞
  88223. } EM_HUMAN_UMBRELLA_TYPE;
  88224. ///@brief 雨伞过滤条件
  88225. typedef struct tagNET_HUMAN_HAS_UMBRELLA_INFO
  88226. {
  88227. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88228. int nShowListNums; // 雨伞检测情况的个数,最大值是2
  88229. EM_HUMAN_UMBRELLA_TYPE emHumanHasUmbrellaShowList[2]; // 雨伞检测情况
  88230. char szReserved[256]; // 保留字节
  88231. }NET_HUMAN_HAS_UMBRELLA_INFO;
  88232. ///@brief 穿戴雨披类型
  88233. typedef enum tagEM_HUMAN_RAIN_COAT_TYPE
  88234. {
  88235. EM_HUMAN_RAIN_COAT_TYPE_UNKNOWN, // 未知
  88236. EM_HUMAN_RAIN_COAT_TYPE_YES, // 有
  88237. EM_HUMAN_RAIN_COAT_TYPE_NO, // 无
  88238. } EM_HUMAN_RAIN_COAT_TYPE;
  88239. ///@brief 穿戴雨披
  88240. typedef struct tagNET_HUMAN_RAIN_COAT_INFO
  88241. {
  88242. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88243. int nShowListNums; // 穿戴雨披类型的个数,最大值是2
  88244. EM_HUMAN_RAIN_COAT_TYPE emHumanRainCoatShowList[2]; // 穿戴雨披类型
  88245. char szReserved[256]; // 保留字节
  88246. }NET_HUMAN_RAIN_COAT_INFO;
  88247. ///@brief 帽子情况
  88248. typedef enum tagEM_HUMAN_HAT_TYPE
  88249. {
  88250. EM_HUMAN_HAT_TYPE_UNKNOWN, // 未知
  88251. EM_HUMAN_HAT_TYPE_WITH_HAT, // 普通帽
  88252. EM_HUMAN_HAT_TYPE_WITH_HELMET, // 头盔
  88253. EM_HUMAN_HAT_TYPE_NONE, // 无
  88254. } EM_HUMAN_HAT_TYPE;
  88255. ///@brief 帽子过滤条件
  88256. typedef struct tagNET_HUMAN_HAS_HAT_INFO
  88257. {
  88258. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88259. int nShowListNums; // 需要过滤的帽子情况的个数,最大值是16
  88260. EM_HUMAN_HAT_TYPE emHumanHasHatShowList[16]; // 需要过滤的帽子情况
  88261. char szReserved[256]; // 保留字节
  88262. }NET_HUMAN_HAS_HAT_INFO;
  88263. ///@brief 安全帽合规性检测信息
  88264. typedef struct tagNET_HUMAN_HELMET_INFO
  88265. {
  88266. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88267. BOOL bHasHelmet; // 是否有戴安全帽,TRUE-有,FALSE-无
  88268. int nShowListNums; // 安全帽颜色的个数,最大值是32
  88269. EM_CLOTHES_COLOR emHumanHelmetColorShowList[32]; // 安全帽颜色
  88270. char szReserved[256]; // 保留字节
  88271. }NET_HUMAN_HELMET_INFO;
  88272. ///@brief 是否有穿反光背心
  88273. typedef enum tagEM_HUMAN_VEST_TYPE
  88274. {
  88275. EM_HUMAN_VEST_TYPE_UNKNOWN = -1, // 未知
  88276. EM_HUMAN_VEST_TYPE_NO, // 无
  88277. EM_HUMAN_VEST_TYPE_YES, // 有
  88278. } EM_HUMAN_VEST_TYPE;
  88279. ///@brief 安全背心合规性检测信息
  88280. typedef struct tagNET_HUMAN_VEST_INFO
  88281. {
  88282. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88283. int nShowListNums; // 是否有穿反光背心的类型的个数,最大值是2
  88284. EM_HUMAN_VEST_TYPE emHumanVestShowList[2]; // 是否有穿反光背心的类型
  88285. char szReserved[256]; // 保留字节
  88286. }NET_HUMAN_VEST_INFO;
  88287. ///@brief 发型类型
  88288. typedef enum tagEM_HUMAN_HAIR_STYLE_TYPE
  88289. {
  88290. EM_HUMAN_HAIR_STYLE_TYPE_UNKNOWN, // 未知
  88291. EM_HUMAN_HAIR_STYLE_TYPE_LONG, // 长发
  88292. EM_HUMAN_HAIR_STYLE_TYPE_SHORT, // 短发
  88293. EM_HUMAN_HAIR_STYLE_TYPE_PONYTAIL, // 马尾
  88294. EM_HUMAN_HAIR_STYLE_TYPE_UPDO, // 盘发
  88295. EM_HUMAN_HAIR_STYLE_TYPE_HEAD_COVERED, // 遮挡头部
  88296. } EM_HUMAN_HAIR_STYLE_TYPE;
  88297. ///@brief 发型过滤条件
  88298. typedef struct tagNET_HUMAN_HAIR_STYLE_INFO
  88299. {
  88300. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88301. int nShowListNums; // 需要过滤的发型类型的个数,最大值是16
  88302. EM_HUMAN_HAIR_STYLE_TYPE emHumanHairStyleShowList[16]; // 需要过滤的发型类型
  88303. char szReserved[256]; // 保留字节
  88304. }NET_HUMAN_HAIR_STYLE_INFO;
  88305. ///@brief 人体拍摄角度
  88306. typedef struct tagNET_HUMAN_ANGLE_INFO
  88307. {
  88308. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88309. int nShowListNums; // 需要过滤的拍摄角度类型的个数,最大值是16
  88310. EM_ANGLE_TYPE emHumanAngleShowList[16]; // 需要过滤的拍摄角度类型
  88311. char szReserved[256]; // 保留字节
  88312. }NET_HUMAN_ANGLE_INFO;
  88313. ///@brief 抱小孩类型
  88314. typedef enum tagEM_HUMAN_HOLD_BABY_TYPE
  88315. {
  88316. EM_HUMAN_HOLD_BABY_TYPE_UNKNOWN, // 未知
  88317. EM_HUMAN_HOLD_BABY_TYPE_HOLD, // 抱
  88318. EM_HUMAN_HOLD_BABY_TYPE_NO_HOLD, // 未抱
  88319. } EM_HUMAN_HOLD_BABY_TYPE;
  88320. ///@brief 抱小孩
  88321. typedef struct tagNET_HUMAN_HOLD_BABY_INFO
  88322. {
  88323. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88324. int nShowListNums; // 抱小孩类型的个数,最大值是2
  88325. EM_HUMAN_HOLD_BABY_TYPE emHumanHoldBabyShowList[2]; // 抱小孩类型
  88326. char szReserved[256]; // 保留字节
  88327. }NET_HUMAN_HOLD_BABY_INFO;
  88328. ///@brief 人体过滤配置,包括人体和目标的属性
  88329. typedef struct tagNET_COMPLIANT_HUMAN_INFO
  88330. {
  88331. NET_HUMAN_AGE_INFO stuHumanAge; // 年龄过滤条件
  88332. NET_HUMAN_SEX_INFO stuHumanSex; // 性别过滤条件
  88333. NET_HUMAN_EMOTION_INFO stuHumanEmotion; // 表情过滤条件
  88334. NET_HUMAN_GLASSES_INFO stuHumanGlasses; // 眼镜佩戴过滤条件
  88335. NET_HUMAN_MASK_INFO stuHumanMask; // 口罩佩戴过滤条件
  88336. NET_HUMAN_BEARD_INFO stuHumanBeard; // 胡子过滤条件
  88337. NET_HUMAN_COAT_TYPE_INFO stuHumanCoatType; // 上衣类型过滤条件
  88338. NET_HUMAN_COAT_COLOR_INFO stuHumanCoatColor; // 上衣颜色过滤条件
  88339. NET_HUMAN_TROUSERS_TYPE_INFO stuHumanTrousersType; // 裤子类型过滤条件
  88340. NET_HUMAN_TROUSERS_COLOR_INFO stuHumanTrousersColor; // 裤子颜色过滤条件
  88341. NET_HUMAN_HAS_BAG_INFO stuHumanHasBag; // 背包过滤条件
  88342. NET_HUMAN_HAS_UMBRELLA_INFO stuHumanHasUmbrella; // 雨伞过滤条件
  88343. NET_HUMAN_RAIN_COAT_INFO stuHumanRainCoat; // 穿戴雨披
  88344. NET_HUMAN_HAS_HAT_INFO stuHumanHasHat; // 帽子过滤条件
  88345. NET_HUMAN_HELMET_INFO stuHumanHelmet; // 安全帽合规性检测信息
  88346. NET_HUMAN_VEST_INFO stuHumanVest; // 安全背心合规性检测信息
  88347. NET_HUMAN_HAIR_STYLE_INFO stuHumanHairStyle; // 发型过滤条件
  88348. NET_HUMAN_ANGLE_INFO stuHumanAngle; // 人体拍摄角度
  88349. NET_HUMAN_HOLD_BABY_INFO stuHumanHoldBaby; // 抱小孩
  88350. char szReserved[1024]; // 保留字节
  88351. }NET_COMPLIANT_HUMAN_INFO;
  88352. ///@brief 机动车车色过滤配置
  88353. typedef struct tagNET_VEHICLE_COLOR_INFO
  88354. {
  88355. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88356. int nShowListNums; // 机动车车身颜色的个数,最大值是32
  88357. EM_OBJECT_COLOR_TYPE emVehicleColorShowList[32]; // 机动车车身颜色
  88358. char szReserved[256]; // 保留字节
  88359. }NET_VEHICLE_COLOR_INFO;
  88360. ///@brief 车标过滤配置
  88361. typedef struct tagNET_VEHICLE_BRAND_INFO
  88362. {
  88363. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88364. int nShowListNums; // 车标的个数,最大值是256
  88365. int nBrandShowList[256]; // 车标对应的枚举值, 数字到具体品牌映射见映射表(由算法统一提供), 目前有效值为0-562
  88366. char szReserved[256]; // 保留字节
  88367. }NET_VEHICLE_BRAND_INFO;
  88368. ///@brief 机动车车辆类型
  88369. typedef enum tagEM_COMPLIANT_VEHICLE_TYPE
  88370. {
  88371. EM_COMPLIANT_VEHICLE_TYPE_UNKNOWN, // 未知
  88372. EM_COMPLIANT_VEHICLE_TYPE_PASSENGER_CAR, // 客车
  88373. EM_COMPLIANT_VEHICLE_TYPE_LARGE_TRUCK, // 大货车
  88374. EM_COMPLIANT_VEHICLE_TYPE_MID_TRUCK, // 中货车
  88375. EM_COMPLIANT_VEHICLE_TYPE_MID_PASSENGER_CAR, // 中客车
  88376. EM_COMPLIANT_VEHICLE_TYPE_SALOON_CAR, // 轿车
  88377. EM_COMPLIANT_VEHICLE_TYPE_MICROBUS, // 面包车
  88378. EM_COMPLIANT_VEHICLE_TYPE_MICRO_TRUCK, // 小货车
  88379. EM_COMPLIANT_VEHICLE_TYPE_SUV, // SUV
  88380. EM_COMPLIANT_VEHICLE_TYPE_SUV_MPV, // SUV或者MPV
  88381. EM_COMPLIANT_VEHICLE_TYPE_MPV_PICKUP, // 皮卡车
  88382. EM_COMPLIANT_VEHICLE_TYPE_MINI_CARRIAGE, // 微型车
  88383. EM_COMPLIANT_VEHICLE_TYPE_TANK_CAR, // 危化品车辆
  88384. EM_COMPLIANT_VEHICLE_TYPE_CONCRETE_MIXER_TRUCK, // 混凝土搅拌车
  88385. EM_COMPLIANT_VEHICLE_TYPE_SUCTION_SEWAGE_TRUCK, // 吸污车
  88386. EM_COMPLIANT_VEHICLE_TYPE_NORMAL_TANK_TRUCK, // 普通罐车
  88387. EM_COMPLIANT_VEHICLE_TYPE_TRACTOR, // 拖拉机
  88388. EM_COMPLIANT_VEHICLE_TYPE_MACHINE_SHOP_TRUCK, // 工程车
  88389. EM_COMPLIANT_VEHICLE_TYPE_DREGS_CAR, // 渣土车
  88390. EM_COMPLIANT_VEHICLE_TYPE_POLICE, // 警车
  88391. EM_COMPLIANT_VEHICLE_TYPE_AMBULANCE, // 救护车
  88392. EM_COMPLIANT_VEHICLE_TYPE_FIRE_ENGINE, // 消防车
  88393. EM_COMPLIANT_VEHICLE_TYPE_WATERING_CAR, // 洒水车
  88394. EM_COMPLIANT_VEHICLE_TYPE_TAXI, // 出租车
  88395. EM_COMPLIANT_VEHICLE_TYPE_POWER_LOT_VEHICLE, // 粉粒物料车
  88396. EM_COMPLIANT_VEHICLE_TYPE_SCHOOL_BUS, // 校车
  88397. EM_COMPLIANT_VEHICLE_TYPE_BUS, // 公交车
  88398. EM_COMPLIANT_VEHICLE_TYPE_ESCORT, // 押运车
  88399. EM_COMPLIANT_VEHICLE_TYPE_OTHER, // 其他
  88400. } EM_COMPLIANT_VEHICLE_TYPE;
  88401. ///@brief 机动车车型过滤配置
  88402. typedef struct tagNET_VEHICLE_TYPE_INFO
  88403. {
  88404. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88405. int nShowListNums; // 车型的个数,最大值是64
  88406. EM_COMPLIANT_VEHICLE_TYPE emVehicleTypeShowList[64]; // 车辆类型
  88407. char szReserved[256]; // 保留字节
  88408. }NET_VEHICLE_TYPE_INFO;
  88409. ///@brief 车牌颜色过滤配置
  88410. typedef struct tagNET_VEHICLE_PLATE_COLOR_INFO
  88411. {
  88412. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88413. int nShowListNums; // 车牌颜色的个数,最大值是16
  88414. EM_NET_PLATE_COLOR_TYPE emVehiclePlateColorShowList[16]; // 车牌颜色
  88415. char szReserved[256]; // 保留字节
  88416. }NET_VEHICLE_PLATE_COLOR_INFO;
  88417. ///@brief 打电话情况
  88418. typedef enum tagEM_VEHICLE_CALLING_TYPE
  88419. {
  88420. EM_VEHICLE_CALLING_TYPE_UNKNOWN, // 未知
  88421. EM_VEHICLE_CALLING_TYPE_CALLING, // 正在打电话
  88422. EM_VEHICLE_CALLING_TYPE_NO_CALL, // 没有在打电话
  88423. } EM_VEHICLE_CALLING_TYPE;
  88424. ///@brief 打电话过滤配置
  88425. typedef struct tagNET_VEHICLE_CALLING_INFO
  88426. {
  88427. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88428. int nShowListNums; // 打电话情况的个数,最大值是2
  88429. EM_VEHICLE_CALLING_TYPE emVehicleCallingShowList[2]; // 打电话情况
  88430. char szReserved[256]; // 保留字节
  88431. }NET_VEHICLE_CALLING_INFO;
  88432. ///@brief 安全带情况
  88433. typedef enum tagEM_VEHICLE_SAFE_BELT_TYPE
  88434. {
  88435. EM_VEHICLE_SAFE_BELT_TYPE_UNKNOWN, // 未知
  88436. EM_VEHICLE_SAFE_BELT_TYPE_WITH_SAFE_BELT, // 安全带正常
  88437. EM_VEHICLE_SAFE_BELT_TYPE_WITHOUT_SAFE_BELT, // 未系安全带
  88438. } EM_VEHICLE_SAFE_BELT_TYPE;
  88439. ///@brief 安全带过滤配置
  88440. typedef struct tagNET_VEHICLE_SAFE_BELT_INFO
  88441. {
  88442. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88443. int nShowListNums; // 安全带情况的个数,最大值是2
  88444. EM_VEHICLE_SAFE_BELT_TYPE emVehicleSafeBeltShowList[2]; // 安全带情况
  88445. char szReserved[256]; // 保留字节
  88446. }NET_VEHICLE_SAFE_BELT_INFO;
  88447. ///@brief 车内饰品情况
  88448. typedef enum tagEM_VEHICLE_ATTACHMENT_TYPE
  88449. {
  88450. EM_VEHICLE_ATTACHMENT_TYPE_UNKNOWN, // 未知
  88451. EM_VEHICLE_ATTACHMENT_TYPE_FURNITURE, // 摆件
  88452. EM_VEHICLE_ATTACHMENT_TYPE_PENDANT, // 挂件
  88453. EM_VEHICLE_ATTACHMENT_TYPE_TISSUE_BOX, // 纸巾盒
  88454. EM_VEHICLE_ATTACHMENT_TYPE_PERFUME_BOX, // 香水盒
  88455. EM_VEHICLE_ATTACHMENT_TYPE_DANGER, // 危险品
  88456. EM_VEHICLE_ATTACHMENT_TYPE_NONE, // 无车内饰品
  88457. EM_VEHICLE_ATTACHMENT_TYPE_CARD, // 卡片
  88458. } EM_VEHICLE_ATTACHMENT_TYPE;
  88459. ///@brief 车上挂件过滤条件
  88460. typedef struct tagNET_VEHICLE_ATTACHMENT_INFO
  88461. {
  88462. BOOL bEnable; // 是否过滤启用: TRUE-下发该配置 FALSE-不下发该配置
  88463. int nShowListNums; // 车内饰品情况的个数,最大值是16
  88464. EM_VEHICLE_ATTACHMENT_TYPE emVehicleAttachmentShowList[16]; // 车内饰品情况
  88465. char szReserved[256]; // 保留字节
  88466. }NET_VEHICLE_ATTACHMENT_INFO;
  88467. ///@brief 机动车合规报警过滤配置
  88468. typedef struct tagNET_COMPLIANT_VEHICLE_INFO
  88469. {
  88470. NET_VEHICLE_COLOR_INFO stuVehicleColor; // 机动车车色过滤配置
  88471. NET_VEHICLE_BRAND_INFO stuVehicleBrand; // 车标过滤配置
  88472. NET_VEHICLE_TYPE_INFO stuVehicleType; // 机动车车型过滤配置
  88473. NET_VEHICLE_PLATE_COLOR_INFO stuVehiclePlateColor; // 车牌颜色过滤配置
  88474. NET_VEHICLE_CALLING_INFO stuVehicleCalling; // 打电话过滤配置
  88475. NET_VEHICLE_SAFE_BELT_INFO stuVehicleSafeBelt; // 安全带过滤配置
  88476. NET_VEHICLE_ATTACHMENT_INFO stuVehicleAttachment; // 车上挂件过滤条件
  88477. char szReserved[1024]; // 保留字节
  88478. }NET_COMPLIANT_VEHICLE_INFO;
  88479. ///@brief 非机动车颜色过滤条件
  88480. typedef struct tagNET_NONMOTOR_COLOR_INFO
  88481. {
  88482. BOOL bEnable; // 是否启用, 为TRUE则下发非机动车颜色过滤条件,为FALSE则不下发非机动车颜色过滤条件
  88483. int nShowListNums; // 非机动车车身颜色的个数,最大值是32
  88484. EM_OBJECT_COLOR_TYPE emNonMotorColorShowList[32]; // 非机动车车身颜色
  88485. char szReserved[256]; // 保留字节
  88486. }NET_NONMOTOR_COLOR_INFO;
  88487. ///@brief 车上人数过滤条件
  88488. typedef struct tagNET_NONMOTOR_CYCLING_NUM_INFO
  88489. {
  88490. BOOL bEnable; // 是否启用, 为TRUE则下发车上人数过滤条件,为FALSE则不下发车上人数过滤条件
  88491. UINT nCyclingNum; // 需要过滤出对应的人体数目
  88492. char szReserved[256]; // 保留字节
  88493. }NET_NONMOTOR_CYCLING_NUM_INFO;
  88494. ///@brief 过滤出对应的非机动车类型
  88495. typedef enum tagEM_NONMOTOR_TYPE
  88496. {
  88497. EM_NONMOTOR_TYPE_UNKNOWN = 0, // 未知
  88498. EM_NONMOTOR_TYPE_BICYCLE, // 自行车
  88499. EM_NONMOTOR_TYPE_VANTRICYCLE, // 厢式三轮车
  88500. EM_NONMOTOR_TYPE_MOTORBIKE, // 摩托车
  88501. EM_NONMOTOR_TYPE_MANNED_CONVERTIBLE_TRICYCLE, // 载人敞篷三轮车
  88502. EM_NONMOTOR_TYPE_NO_MANNED_CONVERTIBLE_TRICYCLE, // 不载人敞篷三轮车
  88503. }EM_NONMOTOR_TYPE;
  88504. ///@brief 非机动车类型过滤条件
  88505. typedef struct tagNET_NONMOTOR_CATEGORY_INFO
  88506. {
  88507. BOOL bEnable; // 是否启用, 为TRUE则下发非机动车类型过滤条件,为FALSE则不下发非机动车类型过滤条件
  88508. int nShowListNums; // 非机动车类型的个数,最大值是32
  88509. EM_NONMOTOR_TYPE emNonMotorTypeShowList[32]; // 过滤出对应的非机动车类型
  88510. char szReserved[256]; // 保留字节
  88511. }NET_NONMOTOR_CATEGORY_INFO;
  88512. ///@brief 非机动车过滤配置
  88513. typedef struct tagNET_COMPLIANT_NONMOTOR_INFO
  88514. {
  88515. NET_NONMOTOR_COLOR_INFO stuNonMotorColor; // 非机动车颜色过滤条件
  88516. NET_NONMOTOR_CYCLING_NUM_INFO stuNumOfCycling; // 车上人数过滤条件
  88517. NET_NONMOTOR_CATEGORY_INFO stuCategory; // 非机动车类型过滤条件
  88518. char szReserved[1024]; // 保留字节
  88519. }NET_COMPLIANT_NONMOTOR_INFO;
  88520. ///@brief 船只类型
  88521. typedef enum tagEM_BOAT_TYPE
  88522. {
  88523. EM_BOAT_TYPE_UNKNOWN = 0, // 未知
  88524. EM_BOAT_TYPE_SAND_MINING_SHIP, // 采砂船
  88525. }EM_BOAT_TYPE;
  88526. ///@brief 船只类型过滤配置
  88527. typedef struct tagNET_BOAT_TYPE_INFO
  88528. {
  88529. BOOL bEnable; // 是否启用, 为TRUE则下发船只类型过滤配置,为FALSE则不下发船只类型过滤配置
  88530. int nShowListNums; // 船只类型的个数,最大值是64
  88531. EM_BOAT_TYPE emBoatTypeShowList[64]; // 船只类型
  88532. char szReserved[256]; // 保留字节
  88533. }NET_BOAT_TYPE_INFO;
  88534. ///@brief 船只合规报警过滤配置
  88535. typedef struct tagNET_COMPLIANT_BOAT_INFO
  88536. {
  88537. NET_BOAT_TYPE_INFO stuBoatType; // 船只类型过滤配置
  88538. char szReserved[1024]; // 保留字节
  88539. }NET_COMPLIANT_BOAT_INFO;
  88540. ///@brief 合规报警属性过滤规则
  88541. typedef struct tagNET_COMPLIANT_FORMAT_INFO
  88542. {
  88543. BOOL bSupportHuman; // 为TRUE: 下发人体过滤配置, 为FALSE: 不下发人体过滤配置
  88544. NET_COMPLIANT_HUMAN_INFO stuHuman; // 人体过滤配置,包括人体和目标的属性
  88545. BOOL bSupportVehicle; // 为TRUE: 下发机动车合规报警过滤配置, 为FALSE: 不下发机动车合规报警过滤配置
  88546. NET_COMPLIANT_VEHICLE_INFO stuVehicle; // 机动车合规报警过滤配置
  88547. BOOL bSupportNonMotor; // 为TRUE: 下发非机动车过滤配置, 为FALSE: 不下发非机动车过滤配置
  88548. NET_COMPLIANT_NONMOTOR_INFO stuNonMotor; // 非机动车过滤配置
  88549. NET_COMPLIANT_BOAT_INFO stuBoat; // 船只合规报警过滤配置
  88550. char szReserved[1024]; // 保留字节
  88551. }NET_COMPLIANT_FORMAT_INFO;
  88552. ///@brief 合规报警规则
  88553. typedef struct tagNET_COMPLIANT_INFO
  88554. {
  88555. UINT nCompliantType; // 合规报警报警类型,0:不合规,1-合规, 2-不限(IVSS专用)
  88556. BOOL bCompliantEnable; // 合规条件使能, TRUE: 开启, FALSE-关闭,如果使能为TRUE上报合规相关属性
  88557. NET_COMPLIANT_FORMAT_INFO stuCompliantFormat; // 合规报警属性过滤规则
  88558. char szReserved[1024]; // 保留字节
  88559. }NET_COMPLIANT_INFO;
  88560. ///@brief 事件类型EVENT_IVS_HUMANTRAIT(人员检测规则)对应的规则配置
  88561. typedef struct tagNET_HUMANTRAIT_RULE_INFO
  88562. {
  88563. DWORD dwSize; // 结构体大小
  88564. int nHumanFaceTypeNum; // 支持的目标检测类型个数
  88565. NET_ANALYSE_HUMANFACE_TYPE emHumanFaceType[8]; // 支持的目标检测类型列表
  88566. int nMinDuration; // 最短触发时间,单位:秒
  88567. int nTriggerTargets; // 触发报警的目标个数
  88568. int nSensitivity; // 灵敏度,越高越容易检测, 0-10
  88569. BOOL bSizeFileter; // 是否使用尺寸过滤器
  88570. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器,提高判断精度
  88571. BOOL bFeatureEnable; // 是否开启目标属性识别
  88572. BOOL bFeatureFilter; // 在目标属性开启前提下,如果目标图像质量太差,是否不上报属性 true-图像太差不上报属性;false-图像很差也上报属性(可能会非常不准,影响用户体验)
  88573. int nMinQuality; // 目标图片质量阈值,和bFeatureFilter一起使用
  88574. int nFaceFeatureNum; // 需要检测的目标属性个数
  88575. NET_EM_FACEFEATURE_TYPE emFaceFeatureType[32]; // 需检测的目标属性
  88576. UINT nDetectRegionPoint; // 检测区顶点数
  88577. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  88578. int nExcludeRegionNum; // 排除区域数
  88579. DH_POLY_POINTS stuExcludeRegion[10]; // 排除区域
  88580. BOOL bFaceSnapEnable; // 是否进行目标抓图: TRUE:进行目标抓图, FALSE:不进行目标抓图
  88581. BOOL bFeatureExtractEnable; // 是否提取人体特征向量
  88582. NET_COMPLIANT_INFO stuCompliant; // 合规报警规则
  88583. BOOL bHumanFeatureEnable; // 是否开启人体属性识别, TRUE-开启 FALSE-关闭
  88584. int nHumanFeatureList; // 人体属性的个数
  88585. char szHumanFeatureList[32][16]; // 配置要检测哪些人体属性,开启人体属性时有效(bHumanFeatureEnable为TRUE),目前支持的取值范围见如下能力描述
  88586. /**********能力描述 Start****************************************************************************************************************************************************************/
  88587. /*
  88588. * "PersonID"-人员记录ID "ImageID"-图片ID "Sex"-人体性别 "Age"-人体年龄 "HasHat"-是否戴帽子 "HasBadge"-是否佩戴工牌
  88589. * "Cap"-帽类型 "CapColor"-帽子颜色 "HairStyle"-头发样式 "CoatColor"-上衣颜色 "CoatType"-上衣类型 "CoatStyle"-上衣款式
  88590. * "UpperPattern"-上半身衣服图案 "UniformStyle"-制服类型 "TrousersColor"-裤子颜色 "TrousersType"-裤子类型 "ShoesType"-鞋子类型 "ShoesColor"-鞋子颜色
  88591. * "RainCoat"-是否有雨披 "HasUmbrella"-是否打伞 "HasBag"-是否带包 "Bag"-包类型 "BackBag"-是否有背包 "CarrierBag"-是否带手提包
  88592. * "ShoulderBag"-是否有肩包 "MessengerBag"-是否有斜跨包 "HoldBaby"-是否抱小孩 "BoundingBox"-包围盒 "Center"-物体型心 "Angle"-角度
  88593. * "Mask"-口罩状态 "MaskColor"-口罩颜色 "HasVest"-是否有反光背心 "HasBabyCarriage"-是否推婴儿车 "IsErrorDetect"-是否虚检 "HasHead"-人体部位是否有头
  88594. * "HasDownBody"-人体部位是否有下半身 "QeScore"-人体优选分数 "Integrality"-目标完整性 "ExtRecordSource"-是否与其他目标关联 "UmbrellaColor"-雨伞颜色 "HasBagBody"-是否有包身
  88595. * "BagColor"-包颜色 "Trunk"-是否有行李箱 "AgeSeg"-年龄段 "Orientation"-方位 "HumanClarity"-人体清晰度 "HumanCompleteScore"-人体完整度评分
  88596. * "IsRelatedFace"-表示当前人体是否曾经关联过目标
  88597. */
  88598. /**********能力描述 End******************************************************************************************************************************************************************/
  88599. BOOL bFaceFeatureExtractEnable; // 是否提取目标特征向量
  88600. }NET_HUMANTRAIT_RULE_INFO;
  88601. ///@brief 检测方向
  88602. typedef enum tagEM_DETECT_DIRECTION_TYPE
  88603. {
  88604. EM_DETECT_DIRECTION_UNKNOWN = 0, // 未知
  88605. EM_DETECT_DIRECTION_LEFT_TO_RIGHT, // 从左向右
  88606. EM_DETECT_DIRECTION_RIGHT_TO_LEFT, // 从右向左
  88607. }EM_DETECT_DIRECTION_TYPE;
  88608. ///@brief XRAY检测方案
  88609. typedef enum tagEM_XRAY_SCHEME_TYPE
  88610. {
  88611. EM_XRAY_SCHEME_UNKNOWN, // 未知
  88612. EM_XRAY_SCHEME_TONGFANG_100, // 同方100
  88613. EM_XRAY_SCHEME_TONGFANG_200, // 同方200
  88614. EM_XRAY_SCHEME_TONGFANG_300, // 同方300
  88615. EM_XRAY_SCHEME_TONGFANG_400, // 同方400
  88616. EM_XRAY_SCHEME_ANTIANXIA_100, // 安天下100
  88617. EM_XRAY_SCHEME_ANTIANXIA_200, // 安天下200
  88618. EM_XRAY_SCHEME_DAHUA_100, // 大华100
  88619. EM_XRAY_SCHEME_DAHUA_200, // 大华200
  88620. EM_XRAY_SCHEME_DAHUA_300, // 大华300
  88621. EM_XRAY_SCHEME_DAHUA_400, // 大华400
  88622. EM_XRAY_SCHEME_DAHUA_301, // 大华301
  88623. EM_XRAY_SCHEME_SHANGCHEN_HIGH, // 上琛高检出
  88624. EM_XRAY_SCHEME_SHANGCHEN_LOW, // 上琛低误检
  88625. } EM_XRAY_SCHEME_TYPE;
  88626. ///@brief XRAY物体上报规则
  88627. typedef struct tagNET_XRAY_OBJECT_UPLOAD_RULE
  88628. {
  88629. BOOL bUploadEnable; // 上报使能
  88630. UINT nSimilarity; // 物体上报相似度, [1,100]
  88631. BYTE byReserved[128]; // 保留字节
  88632. } NET_XRAY_OBJECT_UPLOAD_RULE;
  88633. ///@brief XRAY物体检测规则
  88634. typedef struct tagNET_XRAY_OBJECT_DETECT_RULE
  88635. {
  88636. EM_INSIDE_OBJECT_TYPE emObjectType; // 物体名称
  88637. BOOL bDetectEnable; // 检测使能
  88638. EM_DANGER_GRADE_TYPE emDangerGrade; // 安全等级
  88639. NET_XRAY_OBJECT_UPLOAD_RULE stuUploadRuleInfo; // 物体上报规则信息
  88640. BYTE byReserved[512]; // 保留字节
  88641. } NET_XRAY_OBJECT_DETECT_RULE;
  88642. ///@brief EVENT_IVS_XRAY_DETECT_BYOBJECT(X光按物体检测)对应的规则配置
  88643. typedef struct tagNET_XRAY_DETECT_BYPBJECT_RULE_INFO
  88644. {
  88645. DWORD dwSize; // 结构体大小
  88646. int nDetectRegionPoint; // 检测区顶点数
  88647. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  88648. UINT nSensitivity; // 灵敏度,[1,10]
  88649. EM_DETECT_DIRECTION_TYPE emDirectionType; // 检测方向
  88650. EM_XRAY_SCHEME_TYPE emSchemeType; // 检查方案
  88651. UINT nObjectRuleNum; // XRAY物体检测规则数量
  88652. NET_XRAY_OBJECT_DETECT_RULE stuObjectRuleInfo[128]; // XRAY物体检测规则信息
  88653. EM_XRAY_VIEW_TYPE emViewType; // 视角类型
  88654. } NET_XRAY_DETECT_BYPBJECT_RULE_INFO;
  88655. ///@brief 非机动车属性类型
  88656. typedef enum tagEM_NONMOTOR_FEATURE
  88657. {
  88658. EM_NONMOTOR_FEATURE_UNKNOWN, // 未知
  88659. EM_NONMOTOR_FEATURE_HELMET, // 头盔
  88660. EM_NONMOTOR_FEATURE_NUMOFCYCLING, // 车上人数
  88661. EM_NONMOTOR_FEATURE_NONMOTORCOLOR, // 车身颜色
  88662. EM_NONMOTOR_FEATURE_SEX, // 性别
  88663. EM_NONMOTOR_FEATURE_AGE, // 年龄
  88664. EM_NONMOTOR_FEATURE_HAT, // 帽子
  88665. EM_NONMOTOR_FEATURE_BAG, // 背包
  88666. EM_NONMOTOR_FEATURE_CARRIERBAG, // 手提包
  88667. EM_NONMOTOR_FEATURE_UMBRELLA, // 雨伞
  88668. EM_NONMOTOR_FEATURE_UPPERBODYCOLOR, // 上衣颜色
  88669. EM_NONMOTOR_FEATURE_LOWERBODYCOLOR, // 下衣颜色
  88670. EM_NONMOTOR_FEATURE_UPCLOTHES, // 上衣类型
  88671. EM_NONMOTOR_FEATURE_DOWNCLOTHES, // 下衣类型
  88672. EM_NONMOTOR_FEATURE_CATEGORY, // 车类型
  88673. }EM_NONMOTOR_FEATURE;
  88674. ///@brief 事件类型EVENT_IVS_NONMOTORDETECT(非机动车事件)对应的规则配置
  88675. typedef struct tagNET_NONMOTORDETECT_RULE_INFO
  88676. {
  88677. DWORD dwSize; // 结构体大小
  88678. int nFeatureNum; // 支持的非机动车属性个数
  88679. EM_NONMOTOR_FEATURE emFeatureList[32]; // 支持的非机动车属性列表
  88680. UINT nDetectRegionPoint; // 检测区顶点数
  88681. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  88682. int nExcludeRegionNum; // 排除区域数
  88683. DH_POLY_POINTS stuExcludeRegion[10]; // 排除区域
  88684. NET_COMPLIANT_INFO stuCompliant; // 合规报警规则
  88685. BOOL bSizeFileter; // 是否使用尺寸过滤器
  88686. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器,提高判断精度
  88687. BOOL bFeatureExtractEnable; // 是否提取非机动车特征向量
  88688. BOOL bFaceFeatureExtractEnable; // 是否提取目标特征向量
  88689. BOOL bFaceFeatureEnable; // 是否开启目标属性识别
  88690. BOOL bFaceSnapEnable; // 是否支持目标抓图
  88691. }NET_NONMOTORDETECT_RULE_INFO;
  88692. ///@brief 事件类型EVENT_IVS_VEHICLEDETECT(机动车事件)对应的规则配置
  88693. typedef struct tagNET_VEHICLEDETECT_RULE_INFO
  88694. {
  88695. DWORD dwSize; // 结构体大小
  88696. int nSnapThreshold; // 车辆抓拍阈值,是一个百分数,表示当车辆检测框高度占画面百分比大于这个阈值时,触发规则进行抓拍。
  88697. UINT nDetectRegionPoint; // 检测区顶点数
  88698. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  88699. int nExcludeRegionNum; // 排除区域数
  88700. DH_POLY_POINTS stuExcludeRegion[10]; // 排除区域
  88701. NET_COMPLIANT_INFO stuCompliant; // 合规报警规则
  88702. BOOL bFeatureExtractEnable; // 是否提取机动车特征向量
  88703. BOOL bSizeFileter; // 是否使用尺寸过滤器
  88704. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器,提高判断精度
  88705. }NET_VEHICLEDETECT_RULE_INFO;
  88706. ///@brief 安全帽检测规则扩展信息
  88707. typedef struct tagNET_HELMET_RULE_EXT_INFO
  88708. {
  88709. BOOL bDetectMultiColor; // 是否指定检测的颜色, 支持多种颜色
  88710. UINT nDetectColorNum; // 检测的颜色个数
  88711. EM_CLOTHES_COLOR emMultiColor[32]; // 工作服颜色, bDetectMultiColor 为TRUE时有效
  88712. BYTE byReserved[2048]; // 保留字节
  88713. } NET_HELMET_RULE_EXT_INFO;
  88714. ///@brief 安全帽检测规则
  88715. typedef struct tagNET_HELMET_DETECT_RULE
  88716. {
  88717. BOOL bEnable; // 是否检测安全帽
  88718. BOOL bWear; // 是否检测穿戴安全帽
  88719. BOOL bDetectColor; // 是否指定检测的颜色
  88720. EM_CLOTHES_COLOR emHelmetColor; // 安全帽颜色, bDetectColor 为 TRUE 时有效
  88721. NET_HELMET_RULE_EXT_INFO *pstHelmetRuleExtInfo; // 安全帽检测规则信息扩展, 由用户申请和释放内存
  88722. BYTE byReserved[120]; // 保留字节
  88723. } NET_HELMET_DETECT_RULE;
  88724. ///@brief 工作服上衣类型
  88725. typedef enum tagEM_WORK_CLOTHES_TYPE
  88726. {
  88727. EM_WORK_CLOTHES_UNKNOWN, // 未知
  88728. EM_WORK_CLOTHES_LONG_SLEEVE, // 长袖
  88729. EM_WORK_CLOTHES_SHORT_SLEEVE, // 短袖
  88730. } EM_WORK_CLOTHES_TYPE;
  88731. ///@brief 工作服纹理类型
  88732. typedef enum tagEM_CLOTHES_TEXTURE_TYPE
  88733. {
  88734. EM_CLOTHES_TEXTURE_UNKNOWN, // 未知
  88735. EM_CLOTHES_TEXTURE_CHECKED, // 格子
  88736. EM_CLOTHES_TEXTURE_FLORAL, // 碎花
  88737. EM_CLOTHES_TEXTURE_PURE, // 纯色
  88738. EM_CLOTHES_TEXTURE_STRIPE, // 条纹
  88739. EM_CLOTHES_TEXTURE_DESIGN, // 图案
  88740. EM_CLOTHES_TEXTURE_JOINT, // 拼接
  88741. } EM_CLOTHES_TEXTURE_TYPE;
  88742. ///@brief 工作服检测规则扩展信息
  88743. typedef struct tagNET_WORKCLOTH_RULE_EXT_INFO
  88744. {
  88745. UINT nColorLegal; // 指定的检测颜色是合规还是不合规,0表示未定义,1表示合规,2表示不合规
  88746. BOOL bDetectMultiColor; // 是否指定检测的颜色, 支持多种颜色
  88747. UINT nDetectColorNum; // 检测的颜色个数
  88748. EM_CLOTHES_COLOR emMultiColor[32]; // 工作服颜色, bDetectMultiColor 为TRUE时有效
  88749. UINT nTypeLegal; // 指定的检测类型是合规还是不合规,0表示未定义,1表示合规,2表示不合规
  88750. UINT nClothesTypeNum; // 检测的工作服类型个数
  88751. EM_WORK_CLOTHES_TYPE emClothesType[32]; // 工作服类型
  88752. UINT nTextureLegal; // 指定的纹理规则是合规还是不合规,0表示未定义,1表示合规,2表示不合规
  88753. UINT nTextureNum; // 工作服纹理个数
  88754. EM_CLOTHES_TEXTURE_TYPE emTextureType[32]; // 工作服纹理
  88755. BYTE byReserved[2044]; // 保留字节
  88756. } NET_WORKCLOTH_RULE_EXT_INFO;
  88757. ///@brief 工作服检测规则
  88758. typedef struct tagNET_WORKCLOTH_DETECT_RULE
  88759. {
  88760. BOOL bEnable; // 是否检测工作服
  88761. BOOL bWear; // 是否检测穿着工作服
  88762. BOOL bDetectColor; // 是否指定检测的颜色
  88763. EM_CLOTHES_COLOR emClothesColor; // 工作服颜色, bDetectColor 为 TRUE 时有效
  88764. NET_WORKCLOTH_RULE_EXT_INFO *pstWorkClothRuleExtInfo; // 工作服检测规则信息扩展, 由用户申请和释放内存
  88765. BYTE byReserved[120]; // 保留字节
  88766. } NET_WORKCLOTH_DETECT_RULE;
  88767. ///@brief 工作马甲检测规则
  88768. typedef struct tagNET_WORKVEST_DETECT_RULE
  88769. {
  88770. BOOL bEnable; // 是否检测马甲
  88771. BOOL bWear; // 是否检测穿着马甲
  88772. BOOL bDetectColor; // 是否指定检测的颜色
  88773. EM_CLOTHES_COLOR emVestColor; // 马甲颜色, bDetectColor 为 TRUE 时有效
  88774. BYTE byReserved[128]; // 保留字节
  88775. } NET_WORKVEST_DETECT_RULE;
  88776. ///@brief 工作裤类型
  88777. typedef enum tagEM_WORKPANTS_TYPE
  88778. {
  88779. EM_WORKPANTS_TYPE_UNKNWON, // 未知
  88780. EM_WORKPANTS_TYPE_LONG, // 长裤
  88781. EM_WORKPANTS_TYPE_SHORT, // 短裤
  88782. } EM_WORKPANTS_TYPE;
  88783. ///@brief 工作裤检测规则
  88784. typedef struct tagNET_WORKPANTS_DETECT_RULE
  88785. {
  88786. BOOL bEnable; // 是否检测工作裤
  88787. BOOL bWear; // 是否检测穿着工作裤
  88788. UINT nPantsTypeNum; // 工作裤类型个数
  88789. EM_WORKPANTS_TYPE emPantsType[32]; // 工作裤类型
  88790. BYTE byReserved[252]; // 保留字节
  88791. } NET_WORKPANTS_DETECT_RULE;
  88792. ///@brief 防护面罩检测规则
  88793. typedef struct tagNET_PROHELMET_DETECT_RULE
  88794. {
  88795. BOOL bEnable; // 是否检测防护面罩
  88796. BOOL bWear; // 是否检测穿着防护面罩
  88797. char byReserved[128]; // 保留字节
  88798. } NET_PROHELMET_DETECT_RULE;
  88799. ///@brief 工装特征描述信息
  88800. typedef struct tagNET_WORKCLOTHES_DESCRIPT
  88801. {
  88802. NET_HELMET_DETECT_RULE stuHelemetRule; // 安全帽检测规则
  88803. NET_WORKCLOTH_DETECT_RULE stuWorkClothRule; // 工作服检测规则
  88804. NET_WORKVEST_DETECT_RULE stuWorkVestRule; // 工作马甲检测规则
  88805. NET_WORKPANTS_DETECT_RULE stuWorkPantsRule; // 工作裤检测规则
  88806. UINT nSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  88807. UINT nAlarmTime; // 首次报警时间, 事件持续多长时间后报警,单位秒
  88808. UINT nAlarmRepeatTime; // 重复报警时间间隔,单位秒
  88809. NET_PROHELMET_DETECT_RULE stuProhelmet; // 防护面罩检测规则
  88810. BYTE byReserved[484]; // 保留字节
  88811. } NET_WORKCLOTHES_DESCRIPT;
  88812. ///@brief 工装检测规则类型
  88813. typedef enum tagEM_WORKCLOTHDETECT_RULE_TYPE
  88814. {
  88815. EM_WORKCLOTHDETECT_RULE_UNKNWON, // 未知
  88816. EM_WORKCLOTHDETECT_RULE_HELMET, // 安全帽
  88817. EM_WORKCLOTHDETECT_RULE_WORKCLOTH, // 工作服
  88818. EM_WORKCLOTHDETECT_RULE_WORKPANTS, // 工作裤
  88819. EM_WORKCLOTHDETECT_RULE_PROTECTIVE, // 防护服
  88820. EM_WORKCLOTHDETECT_RULE_TYPE_PROHELMET, // 防护面罩
  88821. EM_WORKCLOTHDETECT_RULE_FIREPROOFCLOTHES, // 防火衣
  88822. } EM_WORKCLOTHDETECT_RULE_TYPE;
  88823. ///@brief 触发模式
  88824. typedef enum tagEM_WORKCLOTHDETECT_TRIGGER_MODE
  88825. {
  88826. EM_WORKCLOTHDETECT_TRIGGER_MODE_UNKNWON, // 未知
  88827. EM_WORKCLOTHDETECT_TRIGGER_MODE_TYPEDETECT, // 属性检测
  88828. EM_WORKCLOTHDETECT_TRIGGER_MODE_COMPAREDETECT, // 比对检测
  88829. } EM_WORKCLOTHDETECT_TRIGGER_MODE;
  88830. ///@brief 事件类型EVENT_IVS_WORKCLOTHDETECT(工装检测事件)对应的规则配置
  88831. typedef struct tagNET_WORKCLOTHDETECT_RULE_INFO
  88832. {
  88833. DWORD dwSize; // 结构体大小
  88834. UINT nDetectRegionPoint; // 检测区顶点数
  88835. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  88836. UINT nDescriptNum; // 工装描述信息个数
  88837. NET_WORKCLOTHES_DESCRIPT stuWorkClothesDescript[64]; // 工装描述信息, 数组各项是逻辑或关系
  88838. EM_WORKCLOTHDETECT_RULE_TYPE emRuleType[32]; // 规则检测类型
  88839. UINT nRuleTypeNum; // 规则检测类型个数
  88840. EM_WORKCLOTHDETECT_TRIGGER_MODE emTriggerMode; // 触发模式
  88841. } NET_WORKCLOTHDETECT_RULE_INFO;
  88842. ///@brief 事件类型EVENT_IVS_SILICON_FIREPUTTER_DETECTION(刺火推杆检测事件)对应的规则配置
  88843. typedef struct tagNET_SILICON_FIREPUTTER_DETECTION_RULE_INFO
  88844. {
  88845. DWORD dwSize; // 结构体大小
  88846. UINT nDetectRegionPoint; // 检测区顶点数
  88847. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  88848. UINT nMinDuration; // 最短持续时间,单位:秒 0~65535
  88849. UINT nRepeatAlarmTime; // 重复报警时间,单位是秒 范围0-3600 为0则不重复报警
  88850. int nSensibility; // 灵敏度等级 1~100, 值越高越灵敏,0表示使用默认
  88851. } NET_SILICON_FIREPUTTER_DETECTION_RULE_INFO;
  88852. ///@brief 触发报警的条件表达式
  88853. typedef enum tagEM_CONDITION_EXPR_TYPE
  88854. {
  88855. EM_CONDITION_EXPR_UNKNOWN = 0, // 未知
  88856. EM_CONDITION_EXPR_GREATER, // 大于
  88857. EM_CONDITION_EXPR_LESS, // 小于
  88858. EM_CONDITION_EXPR_EQUAL, // 等于
  88859. } EM_CONDITION_EXPR_TYPE;
  88860. ///@brief 作业统计描述信息
  88861. typedef struct tagNET_WORKSTAT_DESCRIPT
  88862. {
  88863. NET_WORKCLOTHES_DESCRIPT stuWorkClothesDescript; // 工装特征描述信息
  88864. UINT nTriggerNum; // 触发报警的人员数量
  88865. EM_CONDITION_EXPR_TYPE emConditionExpr; // 条件表达式,与nTriggerNum组合使用,当满足(emConditionExpr nTriggerNum) 条件时触发报警
  88866. UINT nStatInterval; // 统计时长,单位秒,范围1-86400
  88867. UINT nSensitivity; // 灵敏度,值越小灵敏度越低, 取值1-10
  88868. UINT nAlarmTime; // 首次报警时间, 事件持续多长时间后报警,单位秒
  88869. UINT nAlarmRepeatTime; // 重复报警时间间隔,单位秒
  88870. BYTE byReserved[1012]; // 保留字节
  88871. } NET_WORKSTAT_DESCRIPT;
  88872. ///@brief 事件类型EVENT_IVS_WORKSTATDETECTION(作业统计)对应的规则配置
  88873. typedef struct tagNET_WORKSTATDETECTION_RULE_INFO
  88874. {
  88875. DWORD dwSize; // 结构体大小
  88876. UINT nStatDescriptNum; // 作业统计描述信息个数
  88877. NET_WORKSTAT_DESCRIPT stuWorkStatDescript[64]; // 作业统计描述信息
  88878. UINT nDetectRegionPoint; // 检测区顶点数
  88879. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  88880. UINT nDetectTyeNum; // 检测类型个数
  88881. EM_WORKSTATDETECTION_TYPE emDetectType[32]; // 检测类型
  88882. } NET_WORKSTATDETECTION_RULE_INFO;
  88883. ///@brief 物体过滤类型
  88884. typedef enum tagEM_OBJECT_FILTER_TYPE
  88885. {
  88886. EM_OBJECT_FILTER_TYPE_UNKNOWN, // 未知
  88887. EM_OBJECT_FILTER_TYPE_HUMAN, // 人
  88888. EM_OBJECT_FILTER_TYPE_VEHICLE, // 车
  88889. } EM_OBJECT_FILTER_TYPE;
  88890. ///@brief 物体过滤器
  88891. typedef struct tagNET_OBJECT_FILTER_INFO
  88892. {
  88893. UINT nObjectFilterTypeNum; // 物体过滤类型个数
  88894. EM_OBJECT_FILTER_TYPE emObjectFilterType[16]; // 物体过滤类型
  88895. BYTE byReserved[1024]; // 保留字节
  88896. }NET_OBJECT_FILTER_INFO;
  88897. ///@brief 事件类型EVENT_IVS_CROSSLINEDETECTION(警戒线事件)对应的规则配置
  88898. typedef struct tagNET_CROSSLINE_RULE_INFO
  88899. {
  88900. DWORD dwSize; // 结构体大小
  88901. int nDirection; // 检测方向:0:由左至右;1:由右至左;2:两者都可以
  88902. int nDetectLinePoint; // 警戒线顶点数
  88903. POINTCOORDINATE stuDetectLine[20]; // 警戒线
  88904. int nPtzPresetId; // 云台预置点编号 0~65535
  88905. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  88906. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  88907. int nTriggerPosition; // 触发报警位置数
  88908. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  88909. int nTrackDuration; // 跟踪持续时间,单位秒, 范围[0-300],0秒:一直跟踪, 1~300秒:跟踪持续时间
  88910. UINT nVehicleSubTypeNum; // 检测的车辆子类型个数
  88911. EM_CATEGORY_TYPE emVehicleSubType[128]; // 检测的车辆子类型列表
  88912. BOOL bObjectFilter; // 物体过滤器是否有效, 即stuObjectFilter 是否有效
  88913. NET_OBJECT_FILTER_INFO stuObjectFilter; // 物体过滤器信息
  88914. int nSensitivity; // 灵敏度,越高越容易检测, 0-10
  88915. char byReserved[4]; // 仅用于字节对齐
  88916. } NET_CROSSLINE_RULE_INFO;
  88917. ///@brief 事件类型EVENT_IVS_CROSSREGIONDETECTION(警戒区事件)对应的规则配置
  88918. typedef struct tagNET_CROSSREGION_RULE_INFO
  88919. {
  88920. DWORD dwSize; // 结构体大小
  88921. int nDirection; // 检测方向:0:Enter;1:Leave;2:Both
  88922. int nDetectRegionPoint; // 警戒区顶点数
  88923. POINTCOORDINATE stuDetectRegion[20]; // 警戒区
  88924. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  88925. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  88926. int nActionType; // 检测动作个数
  88927. BYTE bActionType[4]; // 检测动作列表,0-出现 1-消失 2-在区域内 3-穿越区域
  88928. int nMinTargets; // 最小目标个数(当bActionType中包含"2-在区域内"时有效)
  88929. int nMaxTargets; // 最大目标个数(当bActionType中包含"2-在区域内"时有效)
  88930. int nMinDuration; // 最短持续时间, 单位秒(当bActionType中包含"2-在区域内"时有效)
  88931. int nReportInterval; // 报告时间间隔, 单位秒(当bActionType中包含"2-在区域内"时有效)
  88932. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  88933. UINT nVehicleSubTypeNum; // 检测的车辆子类型个数
  88934. EM_CATEGORY_TYPE emVehicleSubType[128]; // 检测的车辆子类型列表
  88935. BOOL bObjectFilter; // 物体过滤器是否有效, 即stuObjectFilter 是否有效
  88936. NET_OBJECT_FILTER_INFO stuObjectFilter; // 物体过滤器信息
  88937. int nSensitivity; // 灵敏度,越高越容易检测, 0-10
  88938. char byReserved[4]; // 仅用于字节对齐
  88939. } NET_CROSSREGION_RULE_INFO;
  88940. ///@brief 进行特征提取的类型
  88941. typedef enum tagEM_FEATURE_ABSTRACT_TYPE
  88942. {
  88943. EM_FEATURE_ABSTRACT_UNKNOWN = -1, // 未知
  88944. EM_FEATURE_ABSTRACT_FACE, // 目标
  88945. EM_FEATURE_ABSTRACT_HUMAN_TRAIT, // 人体
  88946. EM_FEATURE_ABSTRACT_VEHICLE, // 机动车
  88947. EM_FEATURE_ABSTRACT_NON_MOTOR_VEHICLE, // 非机动车
  88948. }EM_FEATURE_ABSTRACT_TYPE;
  88949. ///@brief 事件类型EVENT_IVS_FEATURE_ABSTRACT(提取特征)对应的规则配置
  88950. typedef struct tagNET_FEATURE_ABSTRACT_RULE_INFO
  88951. {
  88952. DWORD dwSize; // 结构体大小
  88953. int nFeature; // 特征的数量
  88954. char szFeatureVersions[10][32]; // 对图片进行特征向量提取时使用,需要对图片进行同一种特征向量多个版本进行提取,最大是10个版本
  88955. EM_FEATURE_ABSTRACT_TYPE emAbstractType; // 进行特征提取的类型
  88956. }NET_FEATURE_ABSTRACT_RULE_INFO;
  88957. ///@brief 电力手套特征
  88958. typedef struct tagNET_ELECTRIC_GLOVE_FEATURE
  88959. {
  88960. BOOL bInsulate; // 是否绝缘, TRUE:绝缘手套, FALSE:普通手套
  88961. BYTE byReserved[1028]; // 保留字节
  88962. } NET_ELECTRIC_GLOVE_FEATURE;
  88963. ///@brief 电力检测手套检测规则条件
  88964. typedef struct tagNET_ELECTRIC_GLOVE_DETECT_CONDITION
  88965. {
  88966. BOOL bExist; // 是否检测, 与bGloveFeature 和stuGloveFeature配合使用
  88967. // (1) 若bGloveFeature=FALSE, 则表示检测是否有手套
  88968. // (2) 若bGloveFeature=TRUE, bExist=TRUE, 则表示检测符合stuGloveFeature的手套
  88969. // (3) 若bGloveFeature=TRUE, bExist=FALSE, 则表示检测不符合stuGloveFeature的手套
  88970. BOOL bGloveFeature; // 手套特征是否有效
  88971. NET_ELECTRIC_GLOVE_FEATURE stuGloveFeature; // 手套特征
  88972. BYTE byReserved[512]; // 保留字节
  88973. } NET_ELECTRIC_GLOVE_DETECT_CONDITION;
  88974. ///@brief 事件类型EVENT_IVS_ELECTRIC_GLOVE_DETECT(电力检测手套检测事件)对应的规则配置
  88975. typedef struct tagNET_ELECTRIC_GLOVE_DETECT_RULE_INFO
  88976. {
  88977. DWORD dwSize; // 结构体大小
  88978. int nDetectRegionPoint; // 检测区顶点数
  88979. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  88980. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  88981. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  88982. UINT nDetectConditionNum; // 检测条件个数
  88983. NET_ELECTRIC_GLOVE_DETECT_CONDITION stuGloveDetectCondition[32]; // 手套检测条件, 各个条件之间是逻辑或的关系
  88984. } NET_ELECTRIC_GLOVE_DETECT_RULE_INFO;
  88985. ///@brief 电力梯子特征
  88986. typedef struct tagNET_ELECTRIC_LADDER_FEATURE
  88987. {
  88988. BOOL bInsulate; // 是否绝缘 , TRUE:绝缘梯子, FALSE:普通梯子
  88989. BYTE byReserved[1028]; // 保留字节
  88990. } NET_ELECTRIC_LADDER_FEATURE;
  88991. ///@brief 电力检测梯子检测规则条件
  88992. typedef struct tagNET_ELECTRIC_LADDER_DETECT_CONDITION
  88993. {
  88994. BOOL bExist; // 是否检测, 与bLadderFeature 和stuLadderFeature配合使用
  88995. // (1) 若bLadderFeature=FALSE, 则表示检测是否有梯子
  88996. // (2) 若bLadderFeature=TRUE, bExist=TRUE, 则表示检测符合stuLadderFeature的梯子
  88997. // (3) 若bLadderFeature=TRUE, bExist=FALSE, 则表示检测不符合stuLadderFeature的梯子
  88998. BOOL bLadderFeature; // 梯子特征是否有效
  88999. NET_ELECTRIC_LADDER_FEATURE stuLadderFeature; // 梯子特征
  89000. BYTE byReserved[512]; // 保留字节
  89001. } NET_ELECTRIC_LADDER_DETECT_CONDITION;
  89002. ///@brief 事件类型EVENT_IVS_ELECTRIC_LADDER_DETECT(电力检测梯子检测事件)对应的规则配置
  89003. typedef struct tagNET_ELECTRIC_LADDER_DETECT_RULE_INFO
  89004. {
  89005. DWORD dwSize; // 结构体大小
  89006. int nDetectRegionPoint; // 检测区顶点数
  89007. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89008. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89009. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89010. UINT nDetectConditionNum; // 检测条件个数
  89011. NET_ELECTRIC_LADDER_DETECT_CONDITION stuLadderDetectCondition[32]; // 梯子检测条件, 各个条件之间是逻辑或的关系
  89012. } NET_ELECTRIC_LADDER_DETECT_RULE_INFO;
  89013. ///@brief 颜色操作关系
  89014. typedef enum tagEM_COLOR_OPERATE_TYPE
  89015. {
  89016. EM_COLOR_OPERATE_TYPE_UNKNOWN = -1, // 未知
  89017. EM_COLOR_OPERATE_TYPE_UNEQUAL, // !=
  89018. EM_COLOR_OPERATE_TYPE_EQUAL, // ==
  89019. } EM_COLOR_OPERATE_TYPE;
  89020. ///@brief 颜色特征
  89021. typedef struct tagNET_COLOR_FEATRUE
  89022. {
  89023. EM_COLOR_OPERATE_TYPE emColorOperate; // 颜色操作关系
  89024. EM_UNIFIED_COLOR_TYPE emColor; // 颜色
  89025. BYTE byReserved[128]; // 保留字节
  89026. } NET_COLOR_FEATRUE;
  89027. ///@brief 电力布幔特征
  89028. typedef struct tagNET_ELECTRIC_CURTAIN_FEATURE
  89029. {
  89030. NET_COLOR_FEATRUE stuColorFeature; // 颜色特征
  89031. BYTE byReserved[1024]; // 保留字节
  89032. } NET_ELECTRIC_CURTAIN_FEATURE;
  89033. ///@brief 电力检测布幔检测规则条件
  89034. typedef struct tagNET_ELECTRIC_CURTAIN_DETECT_CONDITION
  89035. {
  89036. BOOL bExist; // 是否检测, 与bCurtainFeature 和stuCurtainFeature配合使用
  89037. // (1) 若bCurtainFeature=FALSE, 则表示检测是否有布幔
  89038. // (2) 若bCurtainFeature=TRUE, bExist=TRUE, 则表示检测符合stuCurtainFeature的布幔
  89039. // (3) 若bCurtainFeature=TRUE, bExist=FALSE, 则表示检测不符合stuCurtainFeature的布幔
  89040. BOOL bCurtainFeature; // 布幔特征是否有效
  89041. NET_ELECTRIC_CURTAIN_FEATURE stuCurtainFeature; // 布幔特征
  89042. BYTE byReserved[512]; // 保留字节
  89043. } NET_ELECTRIC_CURTAIN_DETECT_CONDITION;
  89044. ///@brief 事件类型EVENT_IVS_ELECTRIC_CURTAIN_DETECT(电力检测布幔检测事件)对应的规则配置
  89045. typedef struct tagNET_ELECTRIC_CURTAIN_DETECT_RULE_INFO
  89046. {
  89047. DWORD dwSize; // 结构体大小
  89048. int nDetectRegionPoint; // 检测区顶点数
  89049. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89050. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89051. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89052. UINT nDetectConditionNum; // 检测条件个数
  89053. NET_ELECTRIC_CURTAIN_DETECT_CONDITION stuCurtainDetectCondition[32]; // 布幔检测条件, 各个条件之间是逻辑或的关系
  89054. } NET_ELECTRIC_CURTAIN_DETECT_RULE_INFO;
  89055. ///@brief 电力围栏特征
  89056. typedef struct tagNET_ELECTRIC_FENCE_FEATURE
  89057. {
  89058. EM_ELECTRIC_FENCE_TYPE emFenceType; // 围栏类型
  89059. BYTE byReserved[1028]; // 保留字节
  89060. } NET_ELECTRIC_FENCE_FEATURE;
  89061. ///@brief 电力检测围栏检测规则条件
  89062. typedef struct tagNET_ELECTRIC_FENCE_DETECT_CONDITION
  89063. {
  89064. BOOL bExist; // 是否检测, 与bFenceFeature 和stuFenceFeature配合使用
  89065. // (1) 若bFenceFeature=FALSE, 则表示检测是否有围栏
  89066. // (2) 若bFenceFeature=TRUE, bExist=TRUE, 则表示检测符合stuFenceFeature的围栏
  89067. // (3) 若bFenceFeature=TRUE, bExist=FALSE, 则表示检测不符合stuFenceFeature的围栏
  89068. BOOL bFenceFeature; // 围栏特征是否有效
  89069. NET_ELECTRIC_FENCE_FEATURE stuFenceFeature; // 围栏特征
  89070. BYTE byReserved[512]; // 保留字节
  89071. } NET_ELECTRIC_FENCE_DETECT_CONDITION;
  89072. ///@brief 事件类型EVENT_IVS_ELECTRIC_FENCE_DETECT(电力检测围栏检测事件)对应的规则配置
  89073. typedef struct tagNET_ELECTRIC_FENCE_DETECT_RULE_INFO
  89074. {
  89075. DWORD dwSize; // 结构体大小
  89076. int nDetectRegionPoint; // 检测区顶点数
  89077. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89078. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89079. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89080. UINT nDetectConditionNum; // 检测条件个数
  89081. NET_ELECTRIC_FENCE_DETECT_CONDITION stuFenceDetectCondition[32]; // 围栏检测条件, 各个条件之间是逻辑或的关系
  89082. } NET_ELECTRIC_FENCE_DETECT_RULE_INFO;
  89083. ///@brief 电力标识牌特征
  89084. typedef struct tagNET_ELECTRIC_SIGNBOARD_FEATURE
  89085. {
  89086. EM_ELECTRIC_SIGNBOARD_TYPE emSignboardType; // 标识牌类型
  89087. BYTE byReserved[1028]; // 保留字节
  89088. } NET_ELECTRIC_SIGNBOARD_FEATURE;
  89089. ///@brief 电力检测标识牌检测规则条件
  89090. typedef struct tagNET_ELECTRIC_SIGNBOARD_DETECT_CONDITION
  89091. {
  89092. BOOL bExist; // 是否检测, 与bSignboardFeature 和stuSignboardFeature配合使用
  89093. // (1) 若bSignboardFeature=FALSE, 则表示检测是否有标识牌
  89094. // (2) 若bSignboardFeature=TRUE, bExist=TRUE, 则表示检测符合stuSignboardFeature的标识牌
  89095. // (3) 若bSignboardFeature=TRUE, bExist=FALSE, 则表示检测不符合stuSignboardFeature的标识牌
  89096. BOOL bSignboardFeature; // 标识牌特征是否有效
  89097. NET_ELECTRIC_SIGNBOARD_FEATURE stuSignboardFeature; // 标识牌特征
  89098. BYTE byReserved[512]; // 保留字节
  89099. } NET_ELECTRIC_SIGNBOARD_DETECT_CONDITION;
  89100. ///@brief 事件类型EVENT_IVS_ELECTRIC_SIGNBOARD_DETECT(电力检测标识牌检测事件)对应的规则配置
  89101. typedef struct tagNET_ELECTRIC_SIGNBOARD_DETECT_RULE_INFO
  89102. {
  89103. DWORD dwSize; // 结构体大小
  89104. int nDetectRegionPoint; // 检测区顶点数
  89105. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89106. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89107. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89108. UINT nDetectConditionNum; // 检测条件个数
  89109. NET_ELECTRIC_SIGNBOARD_DETECT_CONDITION stuSignboardCondition[32]; // 标识牌检测条件, 各个条件之间是逻辑或的关系
  89110. } NET_ELECTRIC_SIGNBOARD_DETECT_RULE_INFO;
  89111. ///@brief 电力安全带特征
  89112. typedef struct tagNET_ELECTRIC_BELT_FEATURE
  89113. {
  89114. EM_BELT_WARE_TYPE emBeltWareType; // 安全带穿戴方式
  89115. BYTE byReserved[1028]; // 保留字节
  89116. } NET_ELECTRIC_BELT_FEATURE;
  89117. ///@brief 电力安全带检测规则条件
  89118. typedef struct tagNET_ELECTRIC_BELT_DETECT_CONDITION
  89119. {
  89120. BOOL bExist; // 是否检测, 与bBeltFeature 和stuBeltFeature配合使用
  89121. // (1) 若bBeltFeature=FALSE, 则表示检测是否有安全带
  89122. // (2) 若bBeltFeature=TRUE, bExist=TRUE, 则表示检测符合stuBeltFeature的安全带
  89123. // (3) 若bBeltFeature=TRUE, bExist=FALSE, 则表示检测不符合stuBeltFeature的安全带
  89124. BOOL bBeltFeature; // 安全带特征是否有效
  89125. NET_ELECTRIC_BELT_FEATURE stuBeltFeature; // 安全带特征
  89126. BYTE byReserved[512]; // 保留字节
  89127. } NET_ELECTRIC_BELT_DETECT_CONDITION;
  89128. ///@brief 事件类型EVENT_IVS_ELECTRIC_BELT_DETECT(电力检测安全带检测事件)对应的规则配置
  89129. typedef struct tagNET_ELECTRIC_BELT_DETECT_RULE_INFO
  89130. {
  89131. DWORD dwSize; // 结构体大小
  89132. int nDetectRegionPoint; // 检测区顶点数
  89133. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89134. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89135. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89136. UINT nDetectConditionNum; // 检测条件个数
  89137. NET_ELECTRIC_BELT_DETECT_CONDITION stuBeltCondition[32]; // 安全带检测条件, 各个条件之间是逻辑或的关系
  89138. } NET_ELECTRIC_BELT_DETECT_RULE_INFO;
  89139. ///@brief 事件类型EVENT_IVS_BANNER_DETECTION(拉横幅检测事件)对应的规则配置
  89140. typedef struct tagNET_BANNER_DETECTION_RULE_INFO
  89141. {
  89142. DWORD dwSize; // 结构体大小
  89143. int nDetectRegionNum; // 检测区顶点数
  89144. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89145. int nMinDuration; // 最短持续时间, 单位:秒,范围1-600, 默认30
  89146. int nReportInterval; // 重复报警间隔,单位:秒,范围0-600,默认30,为0表示不重复
  89147. int nSensitivity; // 检测灵敏度,范围1-10
  89148. int nBannerPercent; // 近景抓拍时横幅在画面的百分比,范围1~100,默认80
  89149. BYTE bReserved[520]; // 保留字节
  89150. } NET_BANNER_DETECTION_RULE_INFO;
  89151. ///@brief 检测符合要求的厨师服颜色不报警
  89152. typedef enum tagEM_CFG_CHEF_CLOTHES_COLORS
  89153. {
  89154. EM_CFG_CHEF_CLOTHES_COLORS_UNKNOWN, // 未知
  89155. EM_CFG_CHEF_CLOTHES_COLORS_BLACK, // 黑色
  89156. EM_CFG_CHEF_CLOTHES_COLORS_WHITE, // 白色
  89157. EM_CFG_CHEF_CLOTHES_COLORS_RED, // 红色
  89158. } EM_CFG_CHEF_CLOTHES_COLORS;
  89159. ///@brief 事件类型 EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION(智慧类型衣着检测)对应的规则配置
  89160. typedef struct tagNET_SMART_KITCHEN_CLOTHES_DETECTION_RULE_INFO
  89161. {
  89162. DWORD dwSize; // 结构体大小
  89163. BOOL bMaskEnable; // 是否开启口罩检测 (TRUE:开启 FALSE:关闭)
  89164. BOOL bChefHatEnable; // 是否开启厨师帽检测(TRUE:开启 FALSE:关闭)
  89165. BOOL bChefClothesEnable; // 是否开启厨师服检测(TRUE:开启 FALSE:关闭)
  89166. int nChefClothesColorNum; // 配置检查允许的厨师服颜色个数
  89167. EM_CFG_CHEF_CLOTHES_COLORS emChefClothesColors[8]; // 配置检查允许的厨师服颜色
  89168. int nReportInterval; // 重复报警间隔,单位:秒,范围0-600,默认30,为0表示不重复
  89169. BYTE byReserved[4096]; // 保留字节
  89170. }NET_SMART_KITCHEN_CLOTHES_DETECTION_RULE_INFO;
  89171. ///@brief 标定线
  89172. typedef struct tagNET_CALIBRATE_LINE_INFO
  89173. {
  89174. NET_POINT stuStartPoint; // 起点
  89175. NET_POINT stuEndPoint; // 终点
  89176. } NET_CALIBRATE_LINE_INFO;
  89177. ///@brief 事件类型EVENT_IVS_WATER_STAGE_MONITOR(水位检测事件)对应的规则配置
  89178. typedef struct tagNET_WATER_STAGE_MONITOR_RULE_INFO
  89179. {
  89180. int nDetectRegionPoint; // 检测区顶点数
  89181. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89182. DWORD dwSceneMask; // 使能检测的场景掩码
  89183. // bit0:水位检测,有水位尺, bit1:水位检测,无水位尺
  89184. // bit2:内涝检测,有水位尺, bit3:内涝检测,无水位尺
  89185. NET_CALIBRATE_LINE_INFO stuCalibrateLine; // 标定线
  89186. BYTE byReserved[4096]; // 预留字节
  89187. } NET_WATER_STAGE_MONITOR_RULE_INFO;
  89188. ///@brief 事件类型 EVENT_IVS_FLOATINGOBJECT_DETECTION (漂浮物检测)对应的规则配置
  89189. typedef struct tagNET_FLOATINGOBJECT_DETECTION_RULE_INFO
  89190. {
  89191. int nDetectRegionPoint; // 检测区顶点数
  89192. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  89193. float fAlarmThreshold; // 报警阈值。当检测区域内的漂浮物占比超过阈值时则产生报警;单位:%,取值范围(0, 100]
  89194. UINT nAlarmInterval; // 报警时间间隔。(单位:秒)。取值范围[60, 86400]
  89195. BOOL bDataUpload; // 是否上报实时数据。
  89196. UINT nUpdateInterval; // 实时数据上报间隔。(单位:秒)。取值范围[60, 86400]
  89197. BYTE byReserved[4096]; // 保留字节
  89198. } NET_FLOATINGOBJECT_DETECTION_RULE_INFO;
  89199. ///@brief 事件类型 EVENT_IVS_RIOTERDETECTION (人群聚集) 对应的规则配置
  89200. typedef struct tagNET_RIOTERDETECTION_RULE_INFO
  89201. {
  89202. int nDetectRegionPoint; // 检测区域顶点数
  89203. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89204. int nModeNum; // 检测模式个数
  89205. BYTE nModeList[64]; // 支持的检测模式, 实际只能选一种 0:表示"MinArea"按最小聚集区域检测 1: 表示"Humans" 按聚集人员数量阀值
  89206. POINTCOORDINATE stuMinDetectRect[2]; // 最小聚集区域矩形框,分别对应矩形框的左上和右下点,矩形框的实际面积表示触发报警的最小人群聚集面积
  89207. int nRioterThreshold; // 聚集人数阀值, 聚集人数超过此值,开始报警. 0表示不报警 ModeList为1时使用
  89208. int nMinDuration; // 最短持续时间,单位:秒 1~600,默认值30
  89209. int nReportInterval; // 报告时间间隔,单位秒 0~600;等于0表示不重复报警, 默认值30
  89210. int nSensitivity; // 灵敏度,取值1-10,值越小灵敏度越低,对应人群的密集程度越高
  89211. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  89212. BYTE byReserved[4096]; // 保留字节
  89213. }NET_RIOTERDETECTION_RULE_INFO;
  89214. ///@brief 事件类型 EVENT_IVS_LEFTDETECTION (物品遗留事件) 对应的规则配置
  89215. ///@brief 事件类型 EVENT_IVS_PARKINGDETECTION 非法停车事件 对应的规则配置
  89216. typedef struct tagNET_LEFTDETECTION_RULE_INFO
  89217. {
  89218. int nDetectRegionPoint; // 检测区域顶点数
  89219. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89220. int nTriggerPosition; // 触发报警位置数
  89221. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  89222. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  89223. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  89224. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89225. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89226. UINT nSensitivity; // 灵敏度,取值1-10,值越小灵敏度越低
  89227. BYTE byReserved[4092]; // 保留字节
  89228. }NET_LEFTDETECTION_RULE_INFO, NET_PARKINGDETECTION_RULE_INFO;
  89229. ///@brief 检测的目标类型
  89230. typedef enum tagEM_RULE_DETECT_OBJECT_TYPE
  89231. {
  89232. EM_RULE_DETECT_OBJECT_TYPE_UNKNOWN, // 未知
  89233. EM_RULE_DETECT_OBJECT_TYPE_HANGING_PACKAGE, // 吊物(硅包、钢包、铁包)
  89234. }EM_RULE_DETECT_OBJECT_TYPE;
  89235. ///@brief 事件类型 EVENT_IVS_WANDERDETECTION( 徘徊事件)对应的规则配置
  89236. ///@brief 事件类型 EVENT_IVS_STAYDETECTION( 停留事件)对应的规则配置
  89237. typedef struct tagNET_WANDERDETECTION_RULE_INFO
  89238. {
  89239. int nDetectRegionPoint; // 检测区域顶点数
  89240. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89241. int nTriggerPosition; // 触发报警位置数
  89242. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  89243. int nTriggerTargetsNumber; // 触发报警的徘徊或滞留人数
  89244. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  89245. int nReportInterval; // 报告时间间隔,单位秒 0~600;等于0表示不重复报警, 默认值30
  89246. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  89247. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89248. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89249. char szRuleType[32]; // 规则类型:"WorkManage":作业管控 无该字段,则默认常规场景
  89250. EM_RULE_DETECT_OBJECT_TYPE emDetectObject; // 检测的目标类型 该字段与RuleType同步使用
  89251. UINT nSensitivity; // 灵敏度,取值1-10,值越小灵敏度越低
  89252. BYTE byReserved[4056]; // 保留字节
  89253. } NET_WANDERDETECTION_RULE_INFO;
  89254. ///@brief 事件类型EVENT_IVS_VIDEOABNORMALDETECTION(视频异常)对应的规则配置
  89255. typedef struct tagNET_VIDEOABNORMALDETECTION_RULE_INFO
  89256. {
  89257. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  89258. int nSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低(只对检测类型视频遮挡,过亮,过暗,场景变化有效)
  89259. int nDetectType; // 检测类型数
  89260. int nReserved; // 保留字段
  89261. int nThreshold[32]; // 异常检测阈值,范围1~100
  89262. BYTE bDetectType[32]; // 检测类型,0-视频丢失, 1-视频遮挡, 2-画面冻结, 3-过亮, 4-过暗, 5-场景变化
  89263. // 6-条纹检测 , 7-噪声检测 , 8-偏色检测 , 9-视频模糊检测 , 10-对比度异常检测
  89264. // 11-视频运动 , 12-视频闪烁 , 13-视频颜色 , 14-虚焦检测 , 15-过曝检测, 16-场景巨变
  89265. BYTE byReserved[4096]; // 保留字节
  89266. } NET_VIDEOABNORMALDETECTION_RULE_INFO;
  89267. ///@brief EVENT_IVSS_FACEATTRIBUTE (目标属性检测) 对应的规则配置结构体
  89268. typedef struct tagNET_FACEATTRIBUTE_RULE_INFO
  89269. {
  89270. int nDetectRegionPoint; // 检测区域顶点数
  89271. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89272. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  89273. int nTriggerTargets; // 触发报警的目标个数
  89274. int nSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低
  89275. int nReportInterval; // 报告时间间隔,单位秒 0~600;等于0表示不重复报警, 默认值30
  89276. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89277. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89278. int nFaceFeatureNum; // 需要检测的目标属性个数
  89279. NET_EM_FACEFEATURE_TYPE emFaceFeatureType[32]; // 需检测的目标属性
  89280. BYTE byReserved[4096]; // 保留字节
  89281. }NET_FACEATTRIBUTE_RULE_INFO;
  89282. ///@brief 移动检测类型
  89283. typedef enum tagEM_MOVEDETECTION_TYPE
  89284. {
  89285. EM_MOVEDETECTION_UNKNOWN, // 未知类型
  89286. EM_MOVEDETECTION_FASTMOVE, // 快速运动
  89287. EM_MOVEDETECTION_ABRUPT_SPEEDUP, // 突然加速
  89288. EM_MOVEDETECTION_ABRUPT_SLOWDOWN, // 突然减速
  89289. }EM_MOVEDETECTION_TYPE;
  89290. ///@brief EVENT_IVS_MOVEDETECTION (移动检测) 对应的规则配置结构体
  89291. typedef struct tagNET_MOVEDETECTION_RULE_INFO
  89292. {
  89293. int nDetectRegionPoint; // 检测区域顶点数
  89294. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89295. int nTriggerPosition; // 触发报警位置数
  89296. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  89297. int nTriggerSpeed; // 触发速度,大于该速度报警,单位km/h
  89298. int nSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低
  89299. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  89300. int nTrackDuration; // 跟踪持续时间单位秒
  89301. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89302. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89303. int nDetectNum; // 检测类型个数
  89304. EM_MOVEDETECTION_TYPE emDetectType[8]; // 检测类型
  89305. BYTE byReserved[4096]; // 保留字节
  89306. }NET_MOVEDETECTION_RULE_INFO;
  89307. ///@brief EVENT_IVSS_FACECOMPARE (IVSS目标识别事件) 对应的规则配置结构体
  89308. typedef struct tagNET_FACECOMPARE_INFO
  89309. {
  89310. UINT nRemoveRepeatInterval; // 目标智能去重时间间隔,单位:秒
  89311. UINT nStayInterval; // 滞留时间间隔,单位:秒
  89312. UINT nWanderInterval; // 排行时间间隔,单位:秒
  89313. int nLinkGroupNum; // 联动布控个数
  89314. NET_CFG_LINKGROUP_INFO stuLinkGroup[20]; // 联动的布控组
  89315. NET_CFG_STRANGERMODE_INFO stuStrangerMode; // 陌生人布防模式
  89316. BYTE byReserved[4096]; // 保留字节
  89317. }NET_FACECOMPARE_INFO;
  89318. ///@brief 传送带检测类型
  89319. typedef enum tagEM_CONVEYER_BELT_DETECT_TYPE
  89320. {
  89321. EM_CONVEYER_BELT_DETECT_UNKNOWN, // 未知
  89322. EM_CONVEYER_BELT_DETECT_FULL_LOAD, // 满载
  89323. EM_CONVEYER_BELT_DETECT_NON_LOAD, // 空载
  89324. EM_CONVEYER_BELT_DETECT_RUN_OFF, // 跑偏
  89325. EM_CONVEYER_BELT_DETECT_BLOCK, // 阻塞
  89326. EM_CONVEYER_BELT_DETECT_BULK, // 大块异物
  89327. EM_CONVEYER_BELT_DETECT_COALRATIO, // 煤量占比
  89328. EM_CONVEYER_BELT_DETECT_ARTICLE, // 异物类型检测
  89329. EM_CONVEYER_BELT_DETECT_STHTONTH, // 物品从有到无
  89330. EM_CONVEYER_BELT_DETECT_NTHTOSTH, // 物品从无到有
  89331. } EM_CONVEYER_BELT_DETECT_TYPE;
  89332. ///@brief 报警模式
  89333. typedef enum tagEM_NET_ALARM_OUT_MODE
  89334. {
  89335. EM_NET_ALARM_OUT_MODE_UNKNOWN = -1, // 未知
  89336. EM_NET_ALARM_OUT_MODE_0, // 报警输出1输出
  89337. EM_NET_ALARM_OUT_MODE_1, // 报警输出2输出
  89338. EM_NET_ALARM_OUT_MODE_2, // 报警输出1,2同时输出
  89339. }EM_NET_ALARM_OUT_MODE;
  89340. ///@brief 煤量占比配置
  89341. typedef struct tagNET_COAL_RATIO_LEVEL
  89342. {
  89343. float fCoalLevelMin; // 煤量占比最小值,用于界定当前等级煤量的最小值。取值0-1
  89344. float fCoalLevelMax; // 煤量占比最大值,用于界定当前等级煤量的最大值。取值0-1
  89345. EM_NET_ALARM_OUT_MODE emAlarmOutMode; // 报警模式,用于界定不同煤量占比等级对应报警输出报警模式
  89346. }NET_COAL_RATIO_LEVEL;
  89347. ///@brief EVENT_IVS_CONVEYER_BELT_DETECT(传送带检测)对应的规则配置结构体
  89348. ///@brief 对应事件EM_ANALYSE_EVENT_CONVEYER_BELT_BULK/EM_ANALYSE_EVENT_CONVEYER_BELT_NONLOAD/EM_ANALYSE_EVENT_CONVEYOR_ARTICLE_TYPE
  89349. ///@brief EM_ANALYSE_EVENT_CONVEYER_BELT_RUNOFF/EM_ANALYSE_EVENT_CONVEYER_BELT_BLOCK/EVENT_IVS_CONVEYER_BELT_COAL_RATIO
  89350. typedef struct tagNET_CONVEYER_BELT_DETECT_RULE_INFO
  89351. {
  89352. int nDetectRegionPoint; // 检测区域顶点数
  89353. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89354. EM_CONVEYER_BELT_DETECT_TYPE emDetectType; // 传送带检测类型
  89355. UINT nMinDuration; // 最短持续时间,单位秒, 取值:[3-30]
  89356. UINT nReportInterval; // 报告时间间隔,单位秒, 取值:[1-300]
  89357. UINT nSensitivity; // 灵敏度,值越小灵敏度越低。取值1-10
  89358. POINTCOORDINATE stuComparetLine[2]; // 对比线,用于表示检测区域内传送带的平均宽度
  89359. // 直线类型,直中每个端点的坐标归一化到[0,8191]区间
  89360. UINT nSizeFilterThreshold; // 大块物占比值,尺寸大于SizeFilterThreshold / 10* ComparetLine表示的传送带平均宽度 的物体被认为是大块异物,取值[2-8]
  89361. UINT nWarningThreshold; // 预警值,用于界定跑偏的程度;0<预警值<停机值<10, 取值[1-9]
  89362. UINT nDowntimeThreshold; // 停机值,用于界定跑偏的程度;0<预警值<停机值<10, 取值[1-9]
  89363. NET_COAL_RATIO_LEVEL stuCoalRatioLevel[3]; // 煤量占比配置,默认三组,对应煤量占比三个等级,每个等级由煤量占比最大值、最小值组成煤量阈值,三档的阈值互不冲突。
  89364. int nCoalRatioLevelNums; // 煤量占比配置数
  89365. UINT nClogThreshold; // 阻塞报警阈值;取值0-10
  89366. UINT nIsMoveAlarm; // 输出不同皮带运动状态时的报警, 0代表该报警不考虑皮带是否运动(默认,即包含1和2),1代表仅在皮带静止时输出报警,2代表仅在皮带运动时输出报警
  89367. UINT nRunOffFlag; // 皮带跑偏报警标识,皮带是否跑偏至托辊外,0表示无效值,1代表托辊内,2代表托辊外
  89368. EM_ARTICLE_TYPE emArticleType; // 检测异物类型
  89369. UINT nConveyorBeltWidth; // 皮带实际物理宽度,范围[0-1000],单位cm
  89370. BYTE byReserved[4036]; // 保留字节
  89371. } NET_CONVEYER_BELT_DETECT_RULE_INFO;
  89372. ///@brief 数量统计类型
  89373. typedef enum tagEM_NUMBERSTAT_TYPE
  89374. {
  89375. EM_NUMSTAT_TYPE_REGION, // "Region" 区域类型
  89376. EM_NUMSTAT_TYPE_ENTRANCE, // "Entrance" 出入口类型
  89377. EM_NUMSTAT_TYPE_OTHER, // other
  89378. } EM_NUMBERSTAT_TYPE;
  89379. ///@brief EVENT_IVS_NUMBERSTAT(数量统计)对应的规则配置结构体
  89380. typedef struct tagNET_NUMBERSTAT_RULE_INFO
  89381. {
  89382. int nUpperLimit; // 数量上限 单位:个,1~65535
  89383. int nPeriod; // 上报周期 单位:秒,1~65535
  89384. int nDetectRegionPoint; // 检测区顶点数
  89385. POINTCOORDINATE stuDetectRegion[20]; // 检测区
  89386. int nPtzPresetId; // 云台预置点编号 0~65535
  89387. EM_NUMBERSTAT_TYPE emType; // 数量统计类型 支持:"Region" 区域类型 "Entrance" 出入口类型
  89388. POINTCOORDINATE stDirection[2]; // 正常运动方向, 按照此方向行驶是正向,反过来是逆行 只对出入口类型有效。第一个点是起点,第二个点是终点,点的坐标归一化到[0,8191]区间。
  89389. int nEnterThreshold; // 进入数报警阈值,0表示不报警
  89390. int nExitThreshold; // 离开数报警阈值,0表示不报警
  89391. int nInsideThreshold; // 滞留数报警阈值,0表示不报警
  89392. UINT nAreaID; // 区域ID,一个预置点可以对应多个区域
  89393. int nMaxDetectLineNum; // 检测线实际最大个数
  89394. POINTCOORDINATE stuDetectLine[20]; // 离开检测线坐标
  89395. UINT nStayMinDuration; // 停留超时时间
  89396. BYTE byReserved[4092]; // 保留字节
  89397. } NET_NUMBERSTAT_RULE_INFO;
  89398. ///@brief EVENT_IVS_STEREO_FIGHTDETECTION(立体行为分析打架/剧烈运动检测)对应的规则配置
  89399. typedef struct tagNET_STEREO_FIGHTDETECTION_RULE_INFO
  89400. {
  89401. int nDetectRegionPoint; // 检测区域顶点数
  89402. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89403. int nSensitivity; // 灵敏度, 1-10, 默认值5
  89404. int nMaxHeight; // 最大检测高度,单位cm
  89405. int nMinHeight; // 最小检测高度,单位cm
  89406. EM_STEREO_ACTION_TYPE emActionType; // 动作类型
  89407. BYTE bReserved[508]; // 保留字节
  89408. } NET_STEREO_FIGHTDETECTION_RULE_INFO;
  89409. ///@brief 烟雾检测场景类型
  89410. typedef enum tagEM_SMOKEDETECTION_SCENE_TYPE
  89411. {
  89412. EM_SMOKEDETECTION_SCENE_UNKNOWN, // 未知
  89413. EM_SMOKEDETECTION_SCENE_INDOOR, // 室内场景
  89414. EM_SMOKEDETECTION_SCENE_OUTDOOR, // 室外场景
  89415. EM_SMOKEDETECTION_SCENE_TUNNEL, // 交通隧道场景
  89416. EM_SMOKEDETECTION_SCENE_FOREST, // 森林场景
  89417. } EM_SMOKEDETECTION_SCENE_TYPE;
  89418. ///@brief EVENT_IVS_SMOKEDETECTION(烟雾报警检测) 对应的规则配置
  89419. typedef struct tagNET_SMOKEDETECTION_RULE_INFO
  89420. {
  89421. UINT nMinDuration; // 最短持续时间 单位:秒,0~65535
  89422. UINT nDetectRegionPoint; // 检测区域顶点数
  89423. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89424. UINT nSensitivity; // 灵敏度, 取值1-10
  89425. UINT nRepeatAlarmTime; // 重复报警时间,单位:秒,范围0-3600
  89426. EM_SMOKEDETECTION_SCENE_TYPE emSceneType; // 检测场景类型
  89427. BYTE bReserved[2044]; // 保留字节
  89428. } NET_SMOKEDETECTION_RULE_INFO;
  89429. ///@brief EVENT_IVS_FIREDETECTION(火警检测) 对应的规则配置
  89430. typedef struct tagNET_FIREDETECTION_RULE_INFO
  89431. {
  89432. UINT nMinDuration; // 最短持续时间 单位:秒,0~65535
  89433. UINT nDetectRegionPoint; // 检测区域顶点数
  89434. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89435. UINT nSensitivity; // 灵敏度, 取值1-10
  89436. UINT nRepeatAlarmTime; // 重复报警时间,单位:秒,范围0-3600
  89437. EM_SMOKEDETECTION_SCENE_TYPE emSceneType; // 检测场景类型
  89438. BYTE bReserved[2044]; // 保留字节
  89439. } NET_FIREDETECTION_RULE_INFO;
  89440. ///@brief EVENT_IVS_PHONECALL_DETECT(打电话检测) 对应的规则配置
  89441. typedef struct tagNET_PHONECALL_DETECT_RULE_INFO
  89442. {
  89443. UINT nMinDuration; // 最短持续时间 单位:秒,0~65535
  89444. UINT nDetectRegionPoint; // 检测区域顶点数
  89445. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89446. UINT nSensitivity; // 灵敏度, 取值1-10
  89447. UINT nReportInterval; // 重复报警时间,单位:秒,范围0-3600
  89448. BYTE bReserved[2048]; // 保留字节
  89449. } NET_PHONECALL_DETECT_RULE_INFO;
  89450. ///@brief EVENT_IVS_SMOKING_DETECT(吸烟检测)对应的规则配置
  89451. typedef struct tagNET_SMOKING_DETECT_RULE_INFO
  89452. {
  89453. UINT nMinDuration; // 最短持续时间 单位:秒,0~65535
  89454. UINT nDetectRegionPoint; // 检测区域顶点数
  89455. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89456. UINT nSensitivity; // 灵敏度, 取值1-10
  89457. UINT nReportInterval; // 重复报警时间,单位:秒,范围0-3600
  89458. BYTE bReserved[2048]; // 保留字节
  89459. } NET_SMOKING_DETECT_RULE_INFO;
  89460. ///@brief EVENT_IVS_STEREO_STEREOFALLDETECTION(立体行为分析跌倒检测) 对应的规则配置
  89461. typedef struct tagNET_STEREO_STEREOFALLDETECTION_RULE_INFO
  89462. {
  89463. UINT nMinDuration; // 最短持续时间 单位:秒,0~65535
  89464. UINT nDetectRegionPoint; // 检测区域顶点数
  89465. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89466. UINT nSensitivity; // 灵敏度, 取值1-10
  89467. UINT nReportInterval; // 重复报警时间,单位:秒,范围0-3600
  89468. BYTE bReserved[2048]; // 保留字节
  89469. } NET_STEREO_STEREOFALLDETECTION_RULE_INFO;
  89470. ///@brief EVENT_IVS_WATER_LEVEL_DETECTION(水位尺检测) 对应的规则配置
  89471. typedef struct tagNET_WATER_LEVEL_DETECTION_RULE_INFO
  89472. {
  89473. UINT nDetectRegionPoint; // 检测区域顶点数
  89474. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89475. float fHighLevel; // 水位上限报警阈值(单位:米)
  89476. float fLowLevel; // 水位下线报警阈值(单位:米)
  89477. BYTE bReserved[2044]; // 保留字节
  89478. } NET_WATER_LEVEL_DETECTION_RULE_INFO;
  89479. ///@brief EVENT_IVS_CLIMBDETECTION(攀高检测) 对应的规则配置
  89480. typedef struct tagNET_CLIMBDETECTION_RULE_INFO
  89481. {
  89482. UINT nDetectLinePoint; // 攀高线顶点数
  89483. POINTCOORDINATE stuDetectLine[20]; // 攀高线
  89484. BYTE bReserved[2044]; // 保留字节
  89485. } NET_CLIMBDETECTION_RULE_INFO;
  89486. ///@brief 检测动作类型
  89487. typedef enum tagEM_ARTICLEDETECT_ACTION
  89488. {
  89489. EM_ARTICLEDETECT_ACTION_UNKNOWN, // 未知动作
  89490. EM_ARTICLEDETECT_ACTION_LEFT, // 遗留
  89491. EM_ARTICLEDETECT_ACTION_TAKENAWAY, // 搬移
  89492. }EM_ARTICLEDETECT_ACTION;
  89493. ///@brief EVENT_IVS_ARTICLE_DETECTION(物品检测)对应的规则配置
  89494. typedef struct tagNET_ARTICLE_DETECTION_RULE_INFO
  89495. {
  89496. UINT nMinDuration; // 最短持续时间 单位:秒,0~65535
  89497. UINT nDetectRegionPoint; // 检测区域顶点数
  89498. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89499. UINT nSensitivity; // 灵敏度, 取值1-10
  89500. UINT nDetectActionNum; // 检测动作个数
  89501. EM_ARTICLEDETECT_ACTION emDetectAction[8]; // 检测动作列表
  89502. BYTE bReserved[2008]; // 保留字节
  89503. } NET_ARTICLE_DETECTION_RULE_INFO;
  89504. ///@brief EVENT_IVS_MAN_NUM_DETECTION(立体视觉区域内人数统计事件)对应的规则配置
  89505. typedef struct tagNET_IVS_MAN_NUM_DETECTION_RULE_INFO
  89506. {
  89507. UINT nThreshold; // 异常人数阈值
  89508. UINT nDetectRegionPoint; // 检测区域顶点数
  89509. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89510. UINT nMinDuration; // 最短持续时间,单位是秒,低于该时间不报警, 默认2 范围[1,60] ,单位:秒
  89511. UINT nReportInterval; // 重复报警时间,为0不重复报警, 默认0 范围[0,300],单位:秒
  89512. EM_EVENT_DETECT_TYPE emDetectType; // 检测模式
  89513. int nSensitivity; // 灵敏度, 范围[1, 10]
  89514. int nMaxHeight; // 最大检测高度,单位cm
  89515. int nMinHeight; // 最小检测高度,单位cm
  89516. UINT nAreaID; // 区域ID
  89517. UINT nPlanId; // 计划id
  89518. BOOL bStayDetectEnable; // 是否开启滞留检测报警功能, 对应报警为StayDetection
  89519. int nStayMinDuration; // 最短滞留持续时间, 单位秒. 开启滞留检测报警时需设置, 范围[1, 1800]
  89520. BOOL bManNumAlarmEnable; // 是否开启人数异常报警功能. 对应报警为ManNumDetection
  89521. UINT nPersonNum[2]; // 报警人数, emDetectType为EM_EVENT_DETECT_TYPE_IN_INTERVAL/EM_EVENT_DETECT_TYPE_OUT_INTERVAL时有效
  89522. BYTE bReserved[2004]; // 保留字节
  89523. } NET_IVS_MAN_NUM_DETECTION_RULE_INFO;
  89524. ///@brief 仪表类型
  89525. typedef enum tagEM_DIALDETECT_TYPE
  89526. {
  89527. EM_DIALDETECT_TYPE_UNKNOWN, // 未知
  89528. EM_DIALDETECT_TYPE_PLATEN, // 压板检测
  89529. EM_DIALDETECT_TYPE_KNIFE, // 刀闸检测
  89530. EM_DIALDETECT_TYPE_POINTERMETER, // 指针表计检测
  89531. EM_DIALDETECT_TYPE_OILMETER, // 油位表计
  89532. EM_DIALDETECT_TYPE_LED, // 数码管字符检测
  89533. EM_DIALDETECT_TYPE_LCD, // 液晶屏字符检测
  89534. EM_DIALDETECT_TYPE_LIGHT, // 指示灯检测
  89535. EM_DIALDETECT_TYPE_SWITCH, // 旋转开关检测
  89536. EM_DIALDETECT_TYPE_PESPIRATOR, // 呼吸器检测
  89537. EM_DIALDETECT_TYPE_CHARLNDICTOR, // 字符指示器检测
  89538. EM_DIALDETECT_TYPE_POINTERLNDICTOR, // 指针指示器检测
  89539. EM_DIALDETECT_TYPE_OILLEVEL, // 液位计检测
  89540. EM_DIALDETECT_TYPE_DIALSWTICH, // 拨码盘字符检测
  89541. }EM_DIALDETECT_TYPE;
  89542. ///@brief EVENT_IVS_DIALRECOGNITION(仪表检测事件)对应的规则配置
  89543. typedef struct tagNET_IVS_DIALRECOGNITION_RULE_INFO
  89544. {
  89545. EM_DIALDETECT_TYPE emType; // 仪表类型
  89546. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89547. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89548. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89549. int nDetectRegionNum; // 检测区域顶点数
  89550. int nKinfeOpenAngleThreshold; // 敞开式隔离开关有效,分夹角阈值, 单位度,取值范围0~90, 建议20
  89551. int nKinfeClossAngleThreshold; // 敞开式隔离开关有效,合夹角阈值, 单位度,取值范围0~90, 建议10
  89552. char bReserved[2044]; // 保留字节
  89553. } NET_IVS_DIALRECOGNITION_RULE_INFO;
  89554. ///@brief EVENT_IVS_ELECTRICFAULT_DETECT(仪表类缺陷检测事件)对应的规则配置
  89555. typedef struct tagNET_IVS_ELECTRICFAULT_DETECT_RULE_INFO
  89556. {
  89557. BOOL bAirborneDetectEnable; // 挂空悬浮物检测使能
  89558. BOOL bNestDetectEnable; // 鸟巢检测使能
  89559. BOOL bDialDetectEnable; // 表盘检测(表盘模糊)使能
  89560. BOOL bLeakageDetectEnable; // 渗漏检测使能
  89561. BOOL bDoorDetectEnable; // 箱门检测使能
  89562. BOOL bRespiratorDetectEnable; // 呼吸器检测使能
  89563. BOOL bSmokingDetectEnable; // 吸烟检测使能
  89564. BOOL bInsulatorDetectEnable; // 绝缘子检测使能
  89565. BOOL bCoverPlateDetectEnable; // 盖板检测使能
  89566. BOOL bPressingPlateDetectEnable; // 压板开合检测使能
  89567. BOOL bMetalCorrosionEnable; // 金属锈蚀检测使能
  89568. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  89569. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89570. POINTCOORDINATE stuDetectRegion[20]; // 检测区域
  89571. int nDetectRegionNum; // 检测区域顶点数
  89572. char bReserved[2048]; // 保留字节
  89573. } NET_IVS_ELECTRICFAULT_DETECT_RULE_INFO;
  89574. ///@brief 智能分析规则信息
  89575. typedef struct tagNET_ANALYSE_RULE_INFO
  89576. {
  89577. EM_SCENE_CLASS_TYPE emClassType; // 分析大类类型
  89578. DWORD dwRuleType; // 规则类型, 详见dhnetsdk.h中"智能分析事件类型"
  89579. // EVENT_IVS_FACEANALYSIS(目标分析)对应结构体 NET_FACEANALYSIS_RULE_INFO
  89580. // EVENT_IVS_NONMOTORDETECT(非机动车)对应结构体 NET_NONMOTORDETECT_RULE_INFO
  89581. // EVENT_IVS_VEHICLEDETECT(机动车) 对应结构体 NET_VEHICLEDETECT_RULE_INFO
  89582. // EVENT_IVS_HUMANTRAIT(人体) 对应结构体NET_HUMANTRAIT_RULE_INFO
  89583. // EVENT_IVS_XRAY_DETECT_BYOBJECT(X光按物体检测) 对应结构体 NET_XRAY_DETECT_BYPBJECT_RULE_INFO
  89584. // EVENT_IVS_WORKCLOTHES_DETECT(工装检测)对应结构体NET_WORKCLOTHDETECT_RULE_INFO
  89585. // EVENT_IVS_WORKSTATDETECTION(作业统计)对应结构体NET_WORKSTATDETECTION_RULE_INFO
  89586. // EVENT_IVS_CROSSLINEDETECTION(警戒线)对应结构体NET_CROSSLINE_RULE_INFO
  89587. // EVENT_IVS_CROSSREGIONDETECTION(警戒区)对应结构体 NET_CROSSREGION_RULE_INFO
  89588. // EVENT_IVS_FEATURE_ABSTRACT(特征提取)对应结构体 NET_FEATURE_ABSTRACT_RULE_INFO
  89589. // EVENT_IVS_ELECTRIC_GLOVE_DETECT(电力检测手套检测事件)对应结构体NET_ELECTRIC_GLOVE_DETECT_RULE_INFO
  89590. // EVENT_IVS_ELECTRIC_LADDER_DETECT(电力检测梯子检测事件)对应结构体NET_ELECTRIC_LADDER_DETECT_RULE_INFO
  89591. // EVENT_IVS_ELECTRIC_CURTAIN_DETECT(电力检测布幔检测事件)对应结构体NET_ELECTRIC_CURTAIN_DETECT_RULE_INFO
  89592. // EVENT_IVS_ELECTRIC_FENCE_DETECT(电力检测围栏检测事件)对应结构体NET_ELECTRIC_FENCE_DETECT_RULE_INFO
  89593. // EVENT_IVS_ELECTRIC_SIGNBOARD_DETECT(电力检测标识牌检测事件)对应结构体NET_ELECTRIC_SIGNBOARD_DETECT_RULE_INFO
  89594. // EVENT_IVS_ELECTRIC_BELT_DETECT(电力检测安全带检测事件)对应结构体NET_ELECTRIC_BELT_DETECT_RULE_INFO
  89595. // EVENT_IVS_BANNER_DETECTION(拉横幅检测事件)对应结构体NET_BANNER_DETECTION_RULE_INFO
  89596. // EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION(智慧厨房衣着检测事件)对应结构体NET_SMART_KITCHEN_CLOTHES_DETECTION_RULE_INFO
  89597. // EVENT_IVS_WATER_STAGE_MONITOR(水位检测事件)对应结构体NET_WATER_STAGE_MONITOR_RULE_INFO
  89598. // EVENT_IVS_FLOATINGOBJECT_DETECTION(漂浮物检测事件)对应结构体 NET_FLOATINGOBJECT_DETECTION_RULE_INFO
  89599. // EVENT_IVS_RIOTERDETECTION (人群聚集) 对应结构体 NET_RIOTERDETECTION_RULE_INFO
  89600. // EVENT_IVS_LEFTDETECTION (物品遗留事件) 对应结构体 NET_LEFTDETECTION_RULE_INFO
  89601. // EVENT_IVS_PARKINGDETECTION (非法停车事件) 对应结构体 NET_PARKINGDETECTION_RULE_INFO
  89602. // EVENT_IVS_WANDERDETECTION( 徘徊事件)对应结构体 NET_WANDERDETECTION_RULE_INFO
  89603. // EVENT_IVS_STAYDETECTION (停留事件) 对应结构体 NET_WANDERDETECTION_RULE_INFO
  89604. // EVENT_IVS_VIDEOABNORMALDETECTION (视频异常)对应结构体 NET_VIDEOABNORMALDETECTION_RULE_INFO
  89605. // EVENT_IVSS_FACEATTRIBUTE (目标属性检测) 对应结构体 NET_FACEATTRIBUTE_RULE_INFO
  89606. // EVENT_IVS_MOVEDETECTION (移动检测) 对应结构体 NET_MOVEDETECTION_RULE_INFO
  89607. // EVENT_IVSS_FACECOMPARE(IVSS目标识别事件) 对应结构体 NET_FACECOMPARE_INFO
  89608. // EVENT_IVS_CONVEYER_BELT_DETECT(传送带检测) 对应结构体 NET_CONVEYER_BELT_DETECT_RULE_INFO
  89609. // EVENT_IVS_NUMBERSTAT(数量统计事件) 对应结构体NET_NUMBERSTAT_RULE_INFO
  89610. // EVENT_IVS_STEREO_FIGHTDETECTION(立体行为分析打架/剧烈运动检测) 对应结构体NET_STEREO_FIGHTDETECTION_RULE_INFO
  89611. // EVENT_IVS_SMOKEDETECTION(烟雾报警检测) 对应结构体 NET_SMOKEDETECTION_RULE_INFO
  89612. // EVENT_IVS_FIREDETECTION(火警检测)对应结构体 NET_FIREDETECTION_RULE_INFO
  89613. // EVENT_IVS_PHONECALL_DETECT(打电话检测)对应结构体 NET_PHONECALL_DETECT_RULE_INFO
  89614. // EVENT_IVS_SMOKING_DETECT(吸烟检测)对应结构体 NET_SMOKING_DETECT_RULE_INFO
  89615. // EVENT_IVS_STEREO_STEREOFALLDETECTION(立体行为分析跌倒检测)对应结构体 NET_STEREO_STEREOFALLDETECTION_RULE_INFO
  89616. // EVENT_IVS_WATER_LEVEL_DETECTION(水位尺检测)对应结构体 NET_WATER_LEVEL_DETECTION_RULE_INFO
  89617. // EVENT_IVS_CLIMBDETECTION(攀高检测)对应结构体 NET_CLIMBDETECTION_RULE_INFO
  89618. // EVENT_IVS_ARTICLE_DETECTION(物品检测)对应结构体NET_ARTICLE_DETECTION_RULE_INFO
  89619. // EVENT_IVS_MAN_NUM_DETECTION(立体视觉区域内人数统计事件)对应结构体NET_IVS_MAN_NUM_DETECTION_RULE_INFO
  89620. // EVENT_IVS_DIALRECOGNITION(仪表检测事件)对应结构体NET_IVS_DIALRECOGNITION_RULE_INFO
  89621. // EVENT_IVS_ELECTRICFAULT_DETECT(仪表类缺陷检测事件)对应结构体NET_IVS_ELECTRICFAULT_DETECT_RULE_INFO
  89622. // EVENT_IVS_TRAFFIC_ROAD_BLOCK(交通路障检测事件) 对应结构体 NET_TRAFFIC_ROAD_BLOCK_RULE_INFO
  89623. // EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION(交通道路施工检测事件) 对应结构体 NET_TRAFFIC_ROAD_CONSTRUCTION_RULE_INFO
  89624. // EVENT_IVS_TRAFFIC_FLOWSTATE(交通流量统计事件) 对应结构体 NET_TRAFFIC_FLOWSTAT_RULE_INFO
  89625. // EVENT_IVS_TRAFFIC_OVERSPEED(超速事件) 对应结构体 NET_TRAFFIC_OVERSPEED_RULE_INFO
  89626. // EVENT_IVS_TRAFFIC_UNDERSPEED(欠速事件) 对应结构体 NET_TRAFFIC_UNDERSPEED_RULE_INFO
  89627. // EVENT_IVS_TRAFFIC_OVERYELLOWLINE(压黄线事件) 对应结构体 NET_TRAFFIC_OVERYELLOWLINE_RULE_INFO
  89628. // EVENT_IVS_TRAFFIC_CROSSLANE(违章变道事件) 对应结构体 NET_TRAFFIC_CROSSLANE_RULE_INFO
  89629. // EVENT_IVS_TRAFFICJAM(交通拥堵事件) 对应结构体 NET_TRAFFIC_JAM_RULE_INFO
  89630. // EVENT_IVS_TRAFFIC_PEDESTRAIN(交通行人事件) 对应结构体 NET_TRAFFIC_PEDESTRAIN_RULE_INFO
  89631. // EVENT_IVS_TRAFFIC_THROW(抛洒物事件) 对应结构体 NET_TRAFFIC_THROW_RULE_INFO
  89632. // EVENT_IVS_TRAFFIC_RETROGRADE(逆行检测事件) 对应结构体 NET_TRAFFIC_RETROGRADE_RULE_INFO
  89633. // EVENT_IVS_TRAFFICACCIDENT(交通事故事件) 对应结构体 NET_TRAFFIC_ACCIDENT_RULE_INFO
  89634. // EVENT_IVS_TRAFFIC_BACKING(倒车事件) 对应结构体 NET_TRAFFIC_BACKING_RULE_INFO
  89635. // EVENT_IVS_FOG_DETECTION(起雾检测事件) 对应结构体 NET_FOG_DETECTION_RULE_INFO
  89636. // EVENT_IVS_CROSSREGIONDETECTION(警戒区事件) 对应结构体 NET_CROSSREGION_RULE_INFO
  89637. // EVENT_IVS_TRAFFIC_PARKING(交通违章停车事件) 对应结构体 NET_TRAFFIC_PARKING_RULE_INFO
  89638. // EVENT_IVS_FINANCE_CASH_TRANSACTION(智慧金融现金交易检测事件) 对应结构体 NET_FINANCE_CASH_TRANSACTION_RULE_INFO
  89639. // EVENT_IVS_LEAVEDETECTION(离岗检测事件) 对应结构体 NET_LEAVEDETECTION_RULE_INFO
  89640. // EVENT_IVS_LADLE_NO_DETECTION(钢包编号识别事件) 对应规则配置为空
  89641. // EVENT_IVS_DIALRECOGNITION_EX(仪表检测事件)对应结构体NET_IVS_DIALRECOGNITION_RULE_INFO
  89642. // EVENT_IVS_NEAR_OBJECT_DETECT(近物体检测事件) 对应结构体 NET_IVS_NEAR_OBJECT_DETECT_RULE_INFO
  89643. // EVENT_IVS_PIC_COMPARE_DETECTION(图片比对不上报警事件)对应结构体 NET_IVS_PIC_COMPARE_DETECTION_RULE_INFO
  89644. // EVENT_IVS_SILICON_FIREPUTTER_DETECTION(刺火推杆检测事件)对应结构体NET_SILICON_FIREPUTTER_DETECTION_RULE_INFO
  89645. void* pReserved; // 规则配置, 具体结构体类型根据dwRuleType来确定, 具体信息见dwRuleType的注释
  89646. UINT nObjectTypeNum; // 检测物体类型个数, 为0 表示不指定物体类型
  89647. EM_ANALYSE_OBJECT_TYPE emObjectTypes[16]; // 检测物体类型列表
  89648. char szRuleName[128]; // 规则名称,不带预置点的设备规则名称不能重名,带预置点的设备,同一预置点内规则名称不能重名,不同预置点之间规则名称可以重名
  89649. BYTE byReserved[828]; // 保留字节
  89650. } NET_ANALYSE_RULE_INFO;
  89651. ///@brief 智能分析规则
  89652. typedef struct tagNET_ANALYSE_RULE
  89653. {
  89654. NET_ANALYSE_RULE_INFO stuRuleInfos[MAX_ANALYSE_RULE_COUNT]; // 分析规则信息
  89655. UINT nRuleCount; // 分析规则条数
  89656. BYTE byReserved[1028]; // 保留字节
  89657. } NET_ANALYSE_RULE;
  89658. ///@brief 视频流协议类型
  89659. typedef enum tagEM_STREAM_PROTOCOL_TYPE
  89660. {
  89661. EM_STREAM_PROTOCOL_UNKNOWN, // 未知
  89662. EM_STREAM_PROTOCOL_PRIVATE_V2, // 私有二代
  89663. EM_STREAM_PROTOCOL_PRIVATE_V3, // 私有三代
  89664. EM_STREAM_PROTOCOL_RTSP, // rtsp
  89665. EM_STREAM_PROTOCOL_ONVIF, // Onvif
  89666. EM_STREAM_PROTOCOL_GB28181, // GB28181
  89667. EM_STREAM_PROTOCOL_HIKVISION,
  89668. EM_STREAM_PROTOCOL_BSCP // 蓝星
  89669. } EM_STREAM_PROTOCOL_TYPE;
  89670. ///@brief 智能任务启动规则
  89671. typedef enum tagEM_ANALYSE_TASK_START_RULE
  89672. {
  89673. EM_ANALYSE_TASK_START_NOW, // 立刻启动
  89674. EM_ANALYSE_TASK_START_LATER, // 稍候手动启动
  89675. } EM_ANALYSE_TASK_START_RULE;
  89676. ///@brief 车道线属性
  89677. typedef enum tagEM_GLOBAL_LANES_LINE_TYPE
  89678. {
  89679. EM_GLOBAL_LANES_LINE_TYPE_UNKNOWN, // 未知
  89680. EM_GLOBAL_LANES_LINE_TYPE_WHITESOLID, // 白实线
  89681. EM_GLOBAL_LANES_LINE_TYPE_WHITEDOTTED, // 白虚线
  89682. EM_GLOBAL_LANES_LINE_TYPE_YELLOW, // 黄线
  89683. EM_GLOBAL_LANES_LINE_TYPE_UPSOLIDDOWNDOTTED, // 上实下虚
  89684. EM_GLOBAL_LANES_LINE_TYPE_UPDOTTEDDOWNSOLID, // 上虚下实
  89685. } EM_GLOBAL_LANES_LINE_TYPE;
  89686. ///@brief 车道信息,每个车道两条边界线
  89687. typedef struct tagNET_ANALYSE_TASK_GLOBAL_LANES
  89688. {
  89689. BOOL bEnable; // 车道使能
  89690. // 本车道规则只有在车道使能情况下才可能生效,实际应对用户在一段时期内某车道施工引起的误检
  89691. // 该字段缺省时默认该车道使能
  89692. int nNumber; // 车道编号
  89693. DH_POINT stuLeftLinePoint[20]; // 左车道线,车道线的方向表示车道方向,沿车道方向左边的称为左车道线点的坐标坐标归一化到[0,8192)区间
  89694. int nLeftLinePointNum; // 左车道线点个数
  89695. EM_GLOBAL_LANES_LINE_TYPE emLeftLineType; // 左车道线的属性
  89696. DH_POINT stuRightLinePoint[20]; // 右车道线,车道线的方向表示车道方向,沿车道方向左边的称为左车道线点的坐标坐标归一化到[0,8192)区间
  89697. int nRightLinePointNum; // 右车道线点个数
  89698. EM_GLOBAL_LANES_LINE_TYPE emRightLineType; // 右车道线的属性
  89699. BYTE byReserved[1024]; // 保留字节
  89700. } NET_ANALYSE_TASK_GLOBAL_LANES;
  89701. ///@brief 标定区域
  89702. typedef struct tagNET_ANALYSE_TASK_GLOBAL_CALIBRATEAREA
  89703. {
  89704. int nStaffs; // 标尺线个数
  89705. NET_STAFF_INFO stuStaffs[32]; // 标尺线
  89706. DH_POINT stuCalibratePloygonArea[MAX_CALIBRATE_PLOYGON_AREA_NUM]; // 标定多边形区域
  89707. int nCalibratePloygonAreaNum; // 标定多边形区域顶点个数
  89708. BYTE byReserved[1024]; // 保留字节
  89709. } NET_ANALYSE_TASK_GLOBAL_CALIBRATEAREA;
  89710. ///@brief 任务全局配置
  89711. typedef struct tagNET_ANALYSE_TASK_GLOBAL
  89712. {
  89713. int nLanesNum; // 车道信息数量
  89714. NET_ANALYSE_TASK_GLOBAL_LANES stuLanes[8]; // 车道信息
  89715. int nCalibrateArea; // 标定区域个数
  89716. NET_ANALYSE_TASK_GLOBAL_CALIBRATEAREA stuCalibrateArea[32]; // 标定区域
  89717. BYTE byReserved[1024]; // 保留字节
  89718. } NET_ANALYSE_TASK_GLOBAL;
  89719. ///@brief 任务模块配置
  89720. typedef struct tagNET_ANALYSE_TASK_MODULE
  89721. {
  89722. NET_CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  89723. DH_POLY_POINTS stuExcludeRegion[DH_MAX_EXCLUDEREGION_NUM]; // 排除区域
  89724. int nExcludeRegionNum; // 排除区域数
  89725. BYTE byReserved[1020]; // 保留字节
  89726. } NET_ANALYSE_TASK_MODULE;
  89727. ///@brief 远程实时视频源信息
  89728. typedef struct tagNET_REMOTE_REALTIME_STREAM_INFO
  89729. {
  89730. DWORD dwSize; // 结构体大小
  89731. EM_ANALYSE_TASK_START_RULE emStartRule; // 智能任务启动规则, Polling任务时无效
  89732. NET_ANALYSE_RULE stuRuleInfo; // 分析规则信息
  89733. EM_STREAM_PROTOCOL_TYPE emStreamProtocolType; // 视频流协议类型
  89734. char szPath[DH_COMMON_STRING_256]; // 视频流地址
  89735. char szIp[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // IP 地址
  89736. WORD wPort; // 端口号
  89737. BYTE byReserved[2]; // 用于字节对齐
  89738. char szUser[DH_COMMON_STRING_64]; // 用户名
  89739. char szPwd[DH_COMMON_STRING_64]; // 密码
  89740. int nChannelID; // 通道号
  89741. UINT nStreamType; // 码流类型, 0:主码流; 1:辅1码流; 2:辅2码流;
  89742. char szTaskUserData[256]; // 任务数据
  89743. char szMQConfig[4096]; // MQ配置信息,参考Paas协议配置中心-算子配置。当远程访问类型为RabbitMq时,尝试从该字段获取MQ配置
  89744. int nIsRepeat; // 是否许可重复,0默认是可以重复,1表示不能重复
  89745. NET_ANALYSE_TASK_GLOBAL stuGlobal; // 全局配置
  89746. NET_ANALYSE_TASK_MODULE stuModule; // 模块配置
  89747. char szChannelId[32]; // 平台通道信息
  89748. } NET_REMOTE_REALTIME_STREAM_INFO;
  89749. ///@brief 远程实时视频源信息("analyseTaskManager.analysePushPictureFileByRule"协议使用)
  89750. typedef struct tagNET_REMOTE_STREAM_INFO
  89751. {
  89752. EM_STREAM_PROTOCOL_TYPE emStreamProtocolType; // 视频流协议类型
  89753. BYTE byReserved1[4]; // 用于字节对齐
  89754. char szPath[256]; // 视频流地址
  89755. char szIp[64]; // IP 地址
  89756. WORD wPort; // 端口号
  89757. char szUser[64]; // 用户名
  89758. char szPwd[64]; // 密码
  89759. int nChannelID; // 通道号
  89760. UINT nStreamType; // 码流类型, 0:主码流; 1:辅1码流; 2:辅2码流;
  89761. char byReserved[1024]; // 保留字节
  89762. } NET_REMOTE_STREAM_INFO;
  89763. ///@brief 推送图片文件信息
  89764. typedef struct tagNET_PUSH_PICFILE_INFO
  89765. {
  89766. DWORD dwSize; // 结构体大小
  89767. EM_ANALYSE_TASK_START_RULE emStartRule; // 智能任务启动规则
  89768. NET_ANALYSE_RULE stuRuleInfo; // 分析规则信息
  89769. char szTaskUserData[256]; // 任务数据
  89770. char szMQConfig[4096]; // MQ配置信息,参考Paas协议配置中心-算子配置。当远程访问类型为RabbitMq时,尝试从该字段获取MQ配置
  89771. int nIsRepeat; // 是否许可重复,0默认是可以重复,1表示不能重复
  89772. NET_ANALYSE_TASK_GLOBAL stuGlobal; // 全局配置
  89773. NET_ANALYSE_TASK_MODULE stuModule; // 模块配置
  89774. } NET_PUSH_PICFILE_INFO;
  89775. ///@brief 远程文件访问协议
  89776. typedef enum tagEM_REMOTE_FILE_PROTOCOL_TYPE
  89777. {
  89778. EM_REMOTE_FILE_PROTOCOL_UNKNOWN, // 未知
  89779. EM_REMOTE_FILE_PROTOCOL_RTSP, // RTSP
  89780. EM_REMOTE_FILE_PROTOCOL_RABBITMQ, // RabbitMq
  89781. EM_REMOTE_FILE_PROTOCOL_HTTP, // HTTP
  89782. EM_REMOTE_FILE_PROTOCOL_PRIVATE, // Private
  89783. EM_REMOTE_FILE_PROTOCOL_ONVIF, // Onvif
  89784. EM_REMOTE_FILE_PROTOCOL_GB28181, // GB28181
  89785. EM_REMOTE_FILE_PROTOCOL_HIKVISION, // HK
  89786. EM_REMOTE_FILE_PROTOCOL_BSCP, // BSCP
  89787. EM_REMOTE_FILE_PROTOCOL_ACTIVEMQ, // ActiveMq
  89788. } EM_REMOTE_FILE_PROTOCOL_TYPE;
  89789. ///@brief 远程视频文件信息
  89790. typedef struct tagNET_REMOTE_VIDEO_FILE_INFO
  89791. {
  89792. DWORD dwSize; // 结构体大小
  89793. EM_ANALYSE_TASK_START_RULE emStartRule; // 智能任务启动规则
  89794. NET_ANALYSE_RULE stuRuleInfo; // 分析规则信息
  89795. EM_REMOTE_FILE_PROTOCOL_TYPE emRemoteFileProtocolType; // 远程文件访问协议类型
  89796. char szPath[DH_COMMON_STRING_256]; // 文件路径
  89797. char szIp[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // IP 地址
  89798. WORD wPort; // 端口号
  89799. char szUser[DH_COMMON_STRING_64]; // 用户名
  89800. char szPwd[DH_COMMON_STRING_64]; // 密码
  89801. char szFileID[128]; // 文件ID
  89802. char szTaskUserData[256]; // 任务数据
  89803. char szMQConfig[4096]; // MQ配置信息,参考Paas协议配置中心-算子配置。当远程访问类型为RabbitMq时,尝试从该字段获取MQ配置
  89804. int nIsRepeat; // 是否许可重复,0默认是可以重复,1表示不能重复
  89805. UINT nVideoAnalysisProcess; // 分析进度,有效范围0~100,100表示分析完成
  89806. NET_TIME stuStartTime; // 开始时间
  89807. NET_TIME stuEndTime; // 结束时间
  89808. int nChannelID; // 通道号
  89809. UINT nStreamType; // 码流类型, 0:主码流; 1:辅1码流; 2:辅2码流;
  89810. } NET_REMOTE_VIDEO_FILE_INFO;
  89811. ///@brief 远程图片信息
  89812. typedef struct tagNET_REMOTE_PIC_FILE_INFO
  89813. {
  89814. char szFileID[128]; // 文件ID
  89815. char szPath[260]; // 文件路径
  89816. BYTE byReserved[512]; // 保留字节
  89817. } NET_REMOTE_PIC_FILE_INFO;
  89818. ///@brief 远程图片文件信息
  89819. typedef struct tagNET_REMOTE_PICTURE_FILE_INFO
  89820. {
  89821. DWORD dwSize; // 结构体大小
  89822. EM_ANALYSE_TASK_START_RULE emStartRule; // 智能任务启动规则
  89823. NET_ANALYSE_RULE stuRuleInfo; // 分析规则信息
  89824. EM_REMOTE_FILE_PROTOCOL_TYPE emRemoteFileProtocolType; // 远程文件访问协议类型
  89825. char szIp[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // IP 地址
  89826. WORD wPort; // 端口号
  89827. char szUser[DH_COMMON_STRING_64]; // 用户名
  89828. char szPwd[DH_COMMON_STRING_64]; // 密码
  89829. NET_REMOTE_PIC_FILE_INFO stuFileInfo[32]; // 文件列表
  89830. char szTaskUserData[256]; // 任务数据
  89831. char szMQConfig[4096]; // MQ配置信息,参考Paas协议配置中心-算子配置。当远程访问类型为RabbitMq时,尝试从该字段获取MQ配置
  89832. int nIsRepeat; // 是否许可重复,0默认是可以重复,1表示不能重复
  89833. } NET_REMOTE_PICTURE_FILE_INFO;
  89834. ///@brief 离线视频文件信息(第三方导入的文件)
  89835. typedef struct tagNET_OFFLINE_VIDEO_FILE_INFO
  89836. {
  89837. DWORD dwSize; // 结构体大小
  89838. EM_ANALYSE_TASK_START_RULE emStartRule; // 智能任务启动规则
  89839. NET_ANALYSE_RULE stuRuleInfo; // 分析规则信息
  89840. EM_REMOTE_FILE_PROTOCOL_TYPE emRemoteFileProtocolType; // 远程文件访问协议类型
  89841. char szPath[260]; // 文件路径
  89842. char szFileID[128]; // 文件ID
  89843. char szIp[DH_MAX_IPADDR_OR_DOMAIN_LEN]; // IP 地址
  89844. WORD wPort; // 端口号
  89845. char szUser[DH_COMMON_STRING_64]; // 用户名
  89846. char szPwd[DH_COMMON_STRING_64]; // 密码
  89847. char szTaskUserData[256]; // 任务数据
  89848. char szMQConfig[4096]; // MQ配置信息,参考Paas协议配置中心-算子配置。当远程访问类型为RabbitMq时,尝试从该字段获取MQ配置
  89849. int nIsRepeat; // 是否许可重复,0默认是可以重复,1表示不能重复
  89850. UINT nVideoAnalysisProcess; // 分析进度,有效范围0~100,100表示分析完成
  89851. TP_U64 nFileSize; // 文件大小,单位字节
  89852. BOOL bIsReportPTS; // 是否上报相对时间戳,true为上报,false为不上报
  89853. } NET_OFFLINE_VIDEO_FILE_INFO;
  89854. ///@brief 推送远程图片文件,添加任务时无规则和图片信息,通过推送图片接口,每张图片中带有不同的规则信息(目前能源场景中使用)
  89855. typedef struct tagNET_PUSH_PICFILE_BYRULE_INFO
  89856. {
  89857. DWORD dwSize; // 结构体大小
  89858. EM_ANALYSE_TASK_START_RULE emStartRule; // 智能任务启动规则
  89859. char szTaskUserData[256]; // 任务数据
  89860. } NET_PUSH_PICFILE_BYRULE_INFO;
  89861. ///@brief 本地实时流信息
  89862. typedef struct tagNET_LOCAL_STREAM_INFO
  89863. {
  89864. DWORD dwSize; // 结构体大小
  89865. EM_ANALYSE_TASK_START_RULE emStartRule; // 智能任务启动规则, Polling任务时无效
  89866. NET_ANALYSE_RULE stuRuleInfo; // 分析规则信息
  89867. int nChannelID; // 通道号
  89868. UINT nStreamType; // 码流类型, 0:主码流; 1:辅1码流; 2:辅2码流;
  89869. char szTaskUserData[512]; // 任务数据
  89870. int nIsRepeat; // 是否许可重复,0默认是可以重复,1表示不能重复
  89871. NET_ANALYSE_TASK_GLOBAL stuGlobal; // 全局配置
  89872. NET_ANALYSE_TASK_MODULE stuModule; // 模块配置
  89873. } NET_LOCAL_STREAM_INFO;
  89874. ///@brief CLIENT_AddAnalyseTask 接口输出参数
  89875. typedef struct tagNET_OUT_ADD_ANALYSE_TASK
  89876. {
  89877. DWORD dwSize; // 结构体大小
  89878. UINT nTaskID; // 任务ID
  89879. UINT nVirtualChannel; // 任务对应的虚拟通道号
  89880. char szUrl[256]; // 智能码流rtsp地址
  89881. } NET_OUT_ADD_ANALYSE_TASK;
  89882. ///@brief CLIENT_ModifyAnalyseTask 接口输入参数
  89883. typedef struct tagNET_IN_MODIFY_ANALYSE_TASK
  89884. {
  89885. DWORD dwSize; // 结构体大小
  89886. UINT nTaskID; // 任务ID
  89887. BYTE byReserved1[4]; // 字节对齐
  89888. EM_DATA_SOURCE_TYPE emDataSourceType; // 智能分析数据源类型
  89889. void* pSourceData; // 智能分析数据源, 结构体类型根据emDataSourceType的值来决定
  89890. BYTE byReserved[1024]; // 保留字节
  89891. } NET_IN_MODIFY_ANALYSE_TASK;
  89892. ///@brief CLIENT_ModifyAnalyseTask 接口输出参数
  89893. typedef struct tagNET_OUT_MODIFY_ANALYSE_TASK
  89894. {
  89895. DWORD dwSize; // 结构体大小
  89896. UINT nTaskID; // 任务ID
  89897. UINT nVirtualChannel; // 任务对应的虚拟通道号
  89898. } NET_OUT_MODIFY_ANALYSE_TASK;
  89899. ///@brief 轮询任务对象
  89900. typedef struct tagNET_POLLING_INFO
  89901. {
  89902. EM_DATA_SOURCE_TYPE emSourceType; // 数据源类型
  89903. void* pSourceData; // 数据源信息, 根据emSouceType对应不一样的结构体
  89904. char szUserData[64]; // 视频源数据,标示视频源信息。在返回结果时,原封不动的带上。当任务的包含多个视频源时,attachResult每个视频源单独上报结果
  89905. char szTaskUserData[64]; // 设备编号和设备通道等信息。在返回结果时,原封不动的带上。当任务的包含多个视频源时,attachResult每个视频源单独上报结果
  89906. BYTE byReserved[192]; // 保留字节
  89907. }NET_POLLING_INFO;
  89908. ///@brief CLIENT_AddPollingAnalyseTask 接口输入参数
  89909. typedef struct tagNET_IN_ADD_POLLING_ANALYSE_TASK
  89910. {
  89911. DWORD dwSize; // 结构体大小
  89912. int nIntervalTime; // 每个视频源的检测执行时间,单位为秒,1~65535
  89913. int nLoopCount; // 诊断轮询次数, 0代表永久轮询
  89914. int nInfoCount; // 任务对象个数
  89915. NET_POLLING_INFO* pInfoList; // 任务对象列表
  89916. }NET_IN_ADD_POLLING_ANALYSE_TASK;
  89917. ///@brief CLIENT_AddPollingAnalyseTask 接口输出参数
  89918. typedef struct tagNET_OUT_ADD_POLLING_ANALYSE_TASK
  89919. {
  89920. DWORD dwSize; // 结构体大小
  89921. UINT nTaskID; // 任务ID
  89922. }NET_OUT_ADD_POLLING_ANALYSE_TASK;
  89923. ///@brief CLIENT_UpdatePollingAnalyseTask 接口输入参数
  89924. typedef struct tagNET_IN_UPDATE_POLLING_ANALYSE_TASK
  89925. {
  89926. DWORD dwSize; // 结构体大小
  89927. UINT nTaskID; // 任务ID
  89928. int nIntervalTime; // 每个视频源的检测执行时间,单位为秒,1~65535
  89929. int nLoopCount; // 诊断轮询次数, 0代表永久轮询
  89930. int nInfoCount; // 任务对象个数
  89931. int nReserved; // 字节对齐
  89932. NET_POLLING_INFO* pInfoList; // 任务对象列表
  89933. }NET_IN_UPDATE_POLLING_ANALYSE_TASK;
  89934. ///@brief CLIENT_UpdatePollingAnalyseTask 接口输出参数
  89935. typedef struct tagNET_OUT_UPDATE_POLLING_ANALYSE_TASK
  89936. {
  89937. DWORD dwSize; // 结构体大小
  89938. }NET_OUT_UPDATE_POLLING_ANALYSE_TASK;
  89939. ///@brief CLIENT_StartAnalyseTask 接口输入参数
  89940. typedef struct tagNET_IN_START_ANALYSE_TASK
  89941. {
  89942. DWORD dwSize; // 结构体大小
  89943. UINT nTaskID; // 任务ID
  89944. } NET_IN_START_ANALYSE_TASK;
  89945. ///@brief CLIENT_StartAnalyseTask 接口输出参数
  89946. typedef struct tagNET_OUT_START_ANALYSE_TASK
  89947. {
  89948. DWORD dwSize; // 结构体大小
  89949. } NET_OUT_START_ANALYSE_TASK;
  89950. ///@brief CLIENT_RemoveAnalyseTask 接口输入参数
  89951. typedef struct tagNET_IN_REMOVE_ANALYSE_TASK
  89952. {
  89953. DWORD dwSize; // 结构体大小
  89954. UINT nTaskID; // 任务ID
  89955. } NET_IN_REMOVE_ANALYSE_TASK;
  89956. ///@brief CLIENT_RemoveAnalyseTask 接口输出参数
  89957. typedef struct tagNET_OUT_REMOVE_ANALYSE_TASK
  89958. {
  89959. DWORD dwSize; // 结构体大小
  89960. } NET_OUT_REMOVE_ANALYSE_TASK;
  89961. ///@brief 分析状态
  89962. typedef enum tagEM_ANALYSE_STATE
  89963. {
  89964. EM_ANALYSE_STATE_UNKNOWN, // 未知
  89965. EM_ANALYSE_STATE_IDLE, // 已创建但未运行
  89966. EM_ANALYSE_STATE_ANALYSING, // 分析中
  89967. EM_ANALYSE_STATE_ANALYSING_WAITPUSH, // 分析中并等待push数据
  89968. EM_ANALYSE_STATE_FINISH, // 正常完成
  89969. EM_ANALYSE_STATE_ERROR, // 执行异常
  89970. EM_ANALYSE_STATE_REMOVED, // 被删除
  89971. EM_ANALYSE_STATE_ROUNDFINISH, // 完成一轮视频源分析
  89972. EM_ANALYSE_STATE_STARTING, // 任务开启状态
  89973. } EM_ANALYSE_STATE;
  89974. ///@brief 智能分析任务错误码
  89975. typedef enum tagEM_ANALYSE_TASK_ERROR
  89976. {
  89977. EM_ANALYSE_TASK_ERROR_UNKNOWN = 1, // 未知
  89978. EM_ANALYSE_TASK_ERROR_INSUFFICIENT_DECODING_CAPABILITY, // 解码能力不足
  89979. EM_ANALYSE_TASK_ERROR_INSUFFICIENT_INTELLIGENCE_CAPABILITY, // 智能能力不足
  89980. EM_ANALYSE_TASK_ERROR_BITSTREAM_FORMAT_NOT_SUPPORTED, // 码流格式不支持
  89981. EM_ANALYSE_TASK_ERROR_ANALYZER_OFF_LINE, // 分析器离线
  89982. EM_ANALYSE_TASK_ERROR_ANALYZER_ON_LINE, // 分析器上线
  89983. } EM_ANALYSE_TASK_ERROR;
  89984. ///@brief 智能分析任务信息
  89985. typedef struct tagNET_ANALYSE_TASKS_INFO
  89986. {
  89987. UINT nTaskID; // 任务ID
  89988. EM_ANALYSE_STATE emAnalyseState; // 分析状态
  89989. EM_ANALYSE_TASK_ERROR emErrorCode; // 错误码
  89990. BYTE byReserved1[4]; // 字节对齐
  89991. char szTaskUserData[256]; // 任务数据
  89992. int nVideoAnalysisProcess; // 录像分析进度,当任务添加接口CLIENT_AddAnalyseTask emDataSourceType参数为录像分析"EM_DATA_SOURCE_REMOTE_PICTURE_FILE"时有效 范围1~100,100表示分析完成
  89993. char szUrl[256]; // 智能流rtsp地址,实时流时才填写
  89994. EM_SCENE_CLASS_TYPE emClassType; // 智能大类类型
  89995. EM_DATA_SOURCE_TYPE emSourceType; // 数据源类型
  89996. int nChipId; // 任务使用的分析子卡ID.-1表示无效子卡,大于等于0的值表示子卡ID号
  89997. // emErrorCode为EM_ANALYSE_TASK_ERROR_ANALYZER_OFF_LINE或EM_ANALYSE_TASK_ERROR_ANALYZER_ON_LINE时此字段有效
  89998. BYTE byReserved[428]; // 保留字节
  89999. } NET_ANALYSE_TASKS_INFO;
  90000. ///@brief CLIENT_FindAnalyseTask 接口输入参数
  90001. typedef struct tagNET_IN_FIND_ANALYSE_TASK
  90002. {
  90003. DWORD dwSize; // 结构体大小
  90004. } NET_IN_FIND_ANALYSE_TASK;
  90005. ///@brief CLIENT_FindAnalyseTask 接口输出参数
  90006. typedef struct tagNET_OUT_FIND_ANALYSE_TASK
  90007. {
  90008. DWORD dwSize; // 结构体大小
  90009. UINT nTaskNum; // 智能分析任务个数
  90010. NET_ANALYSE_TASKS_INFO stuTaskInfos[MAX_ANALYSE_TASK_NUM]; // 智能分析任务信息
  90011. } NET_OUT_FIND_ANALYSE_TASK;
  90012. ///@brief 智能分析图片信息
  90013. typedef struct tagNET_PUSH_PICTURE_INFO
  90014. {
  90015. char szFileID[DH_COMMON_STRING_128]; // 文件ID
  90016. UINT nOffset; // 文件数据在二进制数据中的偏移, 单位:字节
  90017. UINT nLength; // 文件数据长度, 单位:字节
  90018. NET_XRAY_CUSTOM_INFO stuXRayCustomInfo; // 客户自定义信息
  90019. char szUrl[512]; // 远程文件url地址 带访问所需必要信息 包含用户名 密码
  90020. BYTE byReserved[256]; // 保留字节
  90021. } NET_PUSH_PICTURE_INFO;
  90022. ///@brief CLIENT_PushAnalysePictureFile 接口输入参数
  90023. typedef struct tagNET_IN_PUSH_ANALYSE_PICTURE_FILE
  90024. {
  90025. DWORD dwSize; // 结构体大小
  90026. UINT nTaskID; // 任务ID
  90027. NET_PUSH_PICTURE_INFO stuPushPicInfos[MAX_ANALYSE_PICTURE_FILE_NUM]; // 推送图片信息
  90028. UINT nPicNum; // 推送图片数量
  90029. UINT nBinBufLen; // 数据缓冲区长度, 单位:字节
  90030. char* pBinBuf; // 数据缓冲区, 由用户申请和释放
  90031. } NET_IN_PUSH_ANALYSE_PICTURE_FILE;
  90032. ///@brief CLIENT_PushAnalysePictureFile 接口输出参数
  90033. typedef struct tagNET_OUT_PUSH_ANALYSE_PICTURE_FILE
  90034. {
  90035. DWORD dwSize; // 结构体大小
  90036. } NET_OUT_PUSH_ANALYSE_PICTURE_FILE;
  90037. ///@brief 智能分析图片信息
  90038. typedef struct tagNET_PUSH_PICTURE_BYRULE_INFO
  90039. {
  90040. char szFileID[128]; // 文件ID
  90041. UINT nOffset; // 文件数据在二进制数据中的偏移, 单位:字节 (URL和Offset/Length应该是两者有且只有一个)
  90042. UINT nLength; // 文件数据长度, 单位:字节 (URL和Offset/Length应该是两者有且只有一个)
  90043. NET_ANALYSE_RULE stuRuleInfo; // 分析规则信息
  90044. char szUserDefineData[512]; // 用户定义数据,通过client.notifyTaskResult回调中”UserDefineData”字段带回
  90045. char szModelUrl[512]; // 模型远程文件url地址,目前支持http方式下载
  90046. NET_REMOTE_STREAM_INFO stuRemoteStreamInfo; // 远程实时视频流信息
  90047. UINT nDetectType; // 能源SDT仪器仪表使用;0:深度学习 1:建模方式 2:图片比较方式,通过PicUr下载图片下发给算法,进行对应检测
  90048. int nPicUrlNum; // 图片远程文件url地址个数
  90049. char szPicUrl[64][512]; // 图片远程文件url地址,目前支持http方式下载
  90050. BYTE byReserved[256]; // 保留字节
  90051. } NET_PUSH_PICTURE_BYRULE_INFO;
  90052. ///@brief CLIENT_PushAnalysePictureFileByRule 接口输入参数
  90053. typedef struct tagNET_IN_PUSH_ANALYSE_PICTURE_FILE_BYRULE
  90054. {
  90055. DWORD dwSize; // 结构体大小
  90056. UINT nTaskID; // 任务ID
  90057. NET_PUSH_PICTURE_BYRULE_INFO* pstuPushPicByRuleInfos; // 推送图片信息,文件列表支持url路径和二进制数据两种方式,但是每次只能选择一种方式,即URL和Offset/Length应该是两者有且只有一个
  90058. // 用户自定义空间
  90059. UINT nPicNum; // 推送图片数量,用户定义
  90060. UINT nBinBufLen; // 数据缓冲区长度, 单位:字节
  90061. char* pBinBuf; // 数据缓冲区, 由用户申请和释放,选择nOffset/nLength方式,需要传送图片数据
  90062. } NET_IN_PUSH_ANALYSE_PICTURE_FILE_BYRULE;
  90063. ///@brief CLIENT_PushAnalysePictureFileByRule 接口输出参数
  90064. typedef struct tagNET_OUT_PUSH_ANALYSE_PICTURE_FILE_BYRULE
  90065. {
  90066. DWORD dwSize; // 结构体大小
  90067. } NET_OUT_PUSH_ANALYSE_PICTURE_FILE_BYRULE;
  90068. ///@brief 智能分析任务状态回调信息
  90069. typedef struct tagNET_CB_ANALYSE_TASK_STATE_INFO
  90070. {
  90071. NET_ANALYSE_TASKS_INFO stuTaskInfos[MAX_ANALYSE_TASK_NUM]; // 智能分析任务信息
  90072. UINT nTaskNum; // 任务个数
  90073. BYTE byReserved[1024]; // 保留字节
  90074. } NET_CB_ANALYSE_TASK_STATE_INFO;
  90075. ///@brief 智能分析状态订阅函数原型, lAttachHandle 为 CLIENT_AttachAnalyseTaskState 函数的返回值
  90076. typedef int (CALLBACK *fAnalyseTaskStateCallBack)(LLONG lAttachHandle, NET_CB_ANALYSE_TASK_STATE_INFO *pstAnalyseTaskStateInfo, LDWORD dwUser);
  90077. ///@brief CLIENT_AttachAnalyseTaskState 接口输入参数
  90078. typedef struct tagNET_IN_ATTACH_ANALYSE_TASK_STATE
  90079. {
  90080. DWORD dwSize; // 结构体大小
  90081. UINT nTaskIDs[MAX_ANALYSE_TASK_NUM]; // 智能分析任务ID
  90082. UINT nTaskIdNum; // 智能分析任务个数, 0表示订阅全部任务
  90083. fAnalyseTaskStateCallBack cbAnalyseTaskState; // 智能分析任务状态订阅函数
  90084. LDWORD dwUser; // 用户数据
  90085. } NET_IN_ATTACH_ANALYSE_TASK_STATE;
  90086. ///@brief 智能分析结果订阅的过滤条件
  90087. typedef struct tagNET_ANALYSE_RESULT_FILTER
  90088. {
  90089. DWORD dwAlarmTypes[MAX_ANALYSE_FILTER_EVENT_NUM]; // 过滤事件, 详见dhnetsdk.h中"智能分析事件类型"
  90090. UINT nEventNum; // 过滤事件数量
  90091. int nImageDataFlag; // 是否包含图片, 0-包含, 1-不包含
  90092. BYTE byReserved1[4]; // 对齐
  90093. int nImageTypeNum; // pImageType有效个数
  90094. EM_FILTER_IMAGE_TYPE *pImageType; // 过滤上报的图片类型
  90095. BYTE byReserved[1004]; // 保留字节
  90096. } NET_ANALYSE_RESULT_FILTER;
  90097. ///@brief 文件分析状态
  90098. typedef enum tagEM_FILE_ANALYSE_STATE
  90099. {
  90100. EM_FILE_ANALYSE_UNKNOWN = -1, // 未知
  90101. EM_FILE_ANALYSE_EXECUTING, // 分析中
  90102. EM_FILE_ANALYSE_FINISH, // 分析完成
  90103. EM_FILE_ANALYSE_FAILED, // 分析失败
  90104. } EM_FILE_ANALYSE_STATE;
  90105. ///@brief MQ相关信息
  90106. typedef struct tagNET_TASK_ACTIVE_MQ_INFO
  90107. {
  90108. char szIp[64]; // ip地址
  90109. int nPort; // 端口号
  90110. int nChannelSeq; // 通道号,默认为-1
  90111. char szDeviceCode[256]; // 设备code码
  90112. char szImgUrl[512]; // 图片url
  90113. char szSceneImgUrl[512]; // 场景大图url
  90114. NET_TIME_EX stuBeginTime; // 开始时间
  90115. NET_TIME_EX stuEndTime; // 结束时间
  90116. NET_TIME_EX stuCaptureTime; // 抓拍时间
  90117. char szTaskCode[256]; // 任务code码
  90118. char szPlateImgUrl[512]; // 车牌图url
  90119. char szHumanFaceUrl[512]; // 人体目标图url
  90120. BYTE byReserved[2048]; // 保留字节
  90121. } NET_TASK_ACTIVE_MQ_INFO;
  90122. ///@brief 任务自定义数据
  90123. typedef struct tagNET_TASK_CUSTOM_DATA
  90124. {
  90125. char szClientIP[128]; // 客户端IP
  90126. char szDeviceID[128]; // 设备ID
  90127. NET_TASK_ACTIVE_MQ_INFO *pstuActiveMQInfo; //MQ相关信息,通过MQ下发
  90128. BYTE byReserved[256 - POINTERSIZE]; // 保留字节
  90129. } NET_TASK_CUSTOM_DATA;
  90130. ///@brief 智能分析任务结果信息
  90131. typedef struct tagNET_ANALYSE_TASK_RESULT
  90132. {
  90133. UINT nTaskID; // 任务ID
  90134. char szFileID[DH_COMMON_STRING_128]; // 文件ID, 分析文件时有效
  90135. EM_FILE_ANALYSE_STATE emFileAnalyseState; // 文件分析状态
  90136. char szFileAnalyseMsg[DH_COMMON_STRING_256]; // 文件分析额外信息, 一般都是分析失败的原因
  90137. NET_SECONDARY_ANALYSE_EVENT_INFO stuEventInfos[MAX_SECONDARY_ANALYSE_EVENT_NUM];// 事件信息
  90138. int nEventCount; // 实际的事件个数
  90139. NET_TASK_CUSTOM_DATA stuCustomData; // 自定义数据
  90140. char szUserData[64]; // 频源数据,标示视频源信息,对应addPollingTask中UserData字段。
  90141. char szTaskUserData[256]; // 任务数据
  90142. NET_SECONDARY_ANALYSE_EVENT_INFO *pstuEventInfosEx; // 扩展事件信息
  90143. int nRetEventInfoExNum; // 返回扩展事件信息个数
  90144. char szUserDefineData[512]; // 用户定义数据,对应analyseTaskManager.analysePushPictureFileByRule中UserDefineData字段
  90145. UINT nFailedFileSize; // 失败文件大小,单位字节
  90146. BYTE byReserved[180]; // 保留字节
  90147. } NET_ANALYSE_TASK_RESULT;
  90148. ///@brief 智能分析任务结果回调信息
  90149. typedef struct tagNET_CB_ANALYSE_TASK_RESULT_INFO
  90150. {
  90151. NET_ANALYSE_TASK_RESULT stuTaskResultInfos[MAX_ANALYSE_TASK_NUM]; // 智能分析任务结果信息
  90152. UINT nTaskResultNum; // 任务个数
  90153. BYTE byReserved[1028]; // 保留字节
  90154. } NET_CB_ANALYSE_TASK_RESULT_INFO;
  90155. ///@brief 智能分析状态订阅函数原型, lAttachHandle 是 CLIENT_AttachAnalyseTaskResult接口的返回值
  90156. typedef int (CALLBACK *fAnalyseTaskResultCallBack)(LLONG lAttachHandle, NET_CB_ANALYSE_TASK_RESULT_INFO *pstAnalyseTaskResult, const char *pBuf, const DWORD dwBufSize, LDWORD dwUser);
  90157. ///@brief CLIENT_AttachAnalyseTaskResult 接口输入参数
  90158. typedef struct tagNET_IN_ATTACH_ANALYSE_RESULT
  90159. {
  90160. DWORD dwSize; // 结构体大小
  90161. UINT nTaskIDs[MAX_ANALYSE_TASK_NUM]; // 智能分析任务ID
  90162. UINT nTaskIdNum; // 智能分析任务个数, 0表示订阅全部任务
  90163. NET_ANALYSE_RESULT_FILTER stuFilter; // 过滤条件
  90164. BYTE byReserved[4]; // 对齐
  90165. fAnalyseTaskResultCallBack cbAnalyseTaskResult; // 智能分析任务结果订阅函数
  90166. LDWORD dwUser; // 用户数据
  90167. } NET_IN_ATTACH_ANALYSE_RESULT;
  90168. ///@brief CLIENT_SetAnalyseTaskCustomData 接口输入参数
  90169. typedef struct tagNET_IN_SET_ANALYSE_TASK_CUSTOM_DATA
  90170. {
  90171. DWORD dwSize; // 结构体大小
  90172. UINT nTaskID; // 任务ID
  90173. NET_TASK_CUSTOM_DATA stuTaskCustomData; // 自定义数据
  90174. } NET_IN_SET_ANALYSE_TASK_CUSTOM_DATA;
  90175. ///@brief CLIENT_SetAnalyseTaskCustomData 接口输出参数
  90176. typedef struct tagNET_OUT_SET_ANALYSE_TASK_CUSTOM_DATA
  90177. {
  90178. DWORD dwSize; // 结构体大小
  90179. } NET_OUT_SET_ANALYSE_TASK_CUSTOM_DATA;
  90180. ///@brief CLIENT_PutAnalyseDisposition 接口输入参数
  90181. typedef struct tagNET_IN_PUT_ANALYSE_DISPOSITION
  90182. {
  90183. DWORD dwSize; // 结构体大小
  90184. BOOL bAction; // 布控或者撤控,true:布控,false:撤控
  90185. UINT nGroupIDNum; // 目标库名称个数
  90186. char szGroupID[128][64]; // 目标库名称列表
  90187. UINT nSimilaryNum; // 目标库比对相识度个数
  90188. BYTE bySimilary[128]; // 目标库比对相识度,同groudID对应
  90189. }NET_IN_PUT_ANALYSE_DISPOSITION;
  90190. ///@brief CLIENT_PutAnalyseDisposition 接口输出参数
  90191. typedef struct tagNET_OUT_PUT_ANALYSE_DISPOSITION
  90192. {
  90193. DWORD dwSize; // 结构体大小
  90194. }NET_OUT_PUT_ANALYSE_DISPOSITION;
  90195. ///@brief 算法厂商
  90196. typedef enum tagEM_ALGORITHM_VENDOR
  90197. {
  90198. EM_ALGORITHM_VENDOR_UNKNOWN, // 未知
  90199. EM_ALGORITHM_VENDOR_DAHUA, // 大华
  90200. EM_ALGORITHM_VENDOR_SHANGTANG, // 商汤
  90201. EM_ALGORITHM_VENDOR_HUAFU, // 华富
  90202. EM_ALGORITHM_VENDOR_SHENMO, // 深晶
  90203. } EM_ALGORITHM_VENDOR;
  90204. ///@brief 算法版本信息
  90205. typedef struct tagNET_ALGORITHM_INFO
  90206. {
  90207. EM_SCENE_CLASS_TYPE emClassType; // 业务大类
  90208. char szVersion[DH_COMMON_STRING_32]; // 算法版本
  90209. EM_ALGORITHM_VENDOR emAlgorithmVendor; // 算法厂商
  90210. char szAlgorithmLibVersion[DH_COMMON_STRING_32]; // 算法库文件版本
  90211. BYTE byReserved[992]; // 保留字节
  90212. } NET_ALGORITHM_INFO;
  90213. ///@brief 智能分析总能力
  90214. typedef struct tagNET_TOTAL_CAP
  90215. {
  90216. EM_SCENE_CLASS_TYPE emClassType; // 业务大类
  90217. DWORD dwRuleTypes[MAX_ANALYSE_RULE_COUNT]; // 规则类型, 详见dhnetsdk.h中"智能分析事件类型"
  90218. UINT nRuleNum; // 规则数量
  90219. UINT nMaxStreamNum; // 最多支持同时分析的视频流数目
  90220. UINT nNeedResources; // 该分析类型所需的算力
  90221. BYTE byReserved[1020]; // 保留字节
  90222. } NET_TOTAL_CAP;
  90223. ///@brief 智能分析的算法版本信息
  90224. typedef struct tagNET_ANALYSE_CAPS_ALGORITHM
  90225. {
  90226. DWORD dwSize; // 结构体大小
  90227. NET_ALGORITHM_INFO stuAlgorithmInfos[MAX_ANALYSE_ALGORITHM_NUM]; // 算法版本信息
  90228. UINT nAlgorithmNum; // 算法个数
  90229. } NET_ANALYSE_CAPS_ALGORITHM;
  90230. ///@brief 智能分析的总能力
  90231. typedef struct tagNET_ANALYSE_CAPS_TOTAL
  90232. {
  90233. DWORD dwSize; // 结构体大小
  90234. NET_TOTAL_CAP stuTotalCaps[MAX_ANALYSE_TOTALCAPS_NUM]; // 智能分析总能力
  90235. UINT nTotalCapsNum; // 智能分析总能力个数
  90236. UINT nTotalDecodeCaps; // 总解码能力,即总解码资源个数
  90237. UINT nTotalComputingCaps; // 总算力
  90238. UINT nSingleTaskComputingCaps; // 单任务最大算力
  90239. } NET_ANALYSE_CAPS_TOTAL;
  90240. ///@brief 算法SDK信息
  90241. typedef struct tagNET_ALGORITHM_SDK_INFO
  90242. {
  90243. UINT nApiVersion; // 算法 api 头文件版本
  90244. UINT nCompiler; // 编译平台代号
  90245. char szSdkName[128]; // 算法sdk名称
  90246. char szSdkVersion[64]; // 算法sdk版本信息
  90247. BYTE byReserved[1024]; // 保留字节
  90248. } NET_ALGORITHM_SDK_INFO;
  90249. ///@brief 分区打包类型
  90250. typedef enum tagEM_STORAGE_PACKET_TYPE
  90251. {
  90252. EM_STORAGE_PACKET_UNKNOWN, // 未知
  90253. EM_STORAGE_PACKET_PARTITION, // 分区方式
  90254. EM_STORAGE_PACKET_FILE, // 文件方式
  90255. EM_STORAGE_PACKET_DHOP, // DHOP方式
  90256. } EM_STORAGE_PACKET_TYPE;
  90257. ///@brief 分区类型
  90258. typedef enum tagEM_ALGORITHM_PARTITION_TYPE
  90259. {
  90260. EM_ALGORITHM_PARTITION_UNKNOWN, // 未知
  90261. EM_ALGORITHM_PARTITION_EXT4, // ext4分区
  90262. EM_ALGORITHM_PARTITION_SUQSHFS, // squashfs 分区
  90263. EM_ALGORITHM_PARTITION_UBIFS, // ubifs 分区
  90264. } EM_ALGORITHM_PARTITION_TYPE;
  90265. ///@brief 设备分区信息
  90266. typedef struct tagNET_ALGORITHM_DEV_STORAGE_INFO
  90267. {
  90268. EM_STORAGE_PACKET_TYPE emPakcetType; // 分区打包方式
  90269. /*以下信息当emPakcetType 为EM_STORAGE_PACKET_PARTITION 时有效*/
  90270. UINT nAddr; // 分区起始地址
  90271. UINT nSize; // 分区大小,单位byte
  90272. EM_ALGORITHM_PARTITION_TYPE emPartitionType; // 分区类型
  90273. UINT nBlock; // 分区块大小,单位KB
  90274. /*以上信息当emPakcetType 为EM_STORAGE_PACKET_PARTITION 时有效*/
  90275. BYTE byReserved[1020]; // 保留字节
  90276. } NET_ALGORITHM_DEV_STORAGE_INFO;
  90277. ///@brief 算法构建SVN信息
  90278. typedef struct tagNET_ALGORITHM_SVN_INFO
  90279. {
  90280. char szAddr[512]; // svn地址
  90281. UINT nRevision; // svn版本号
  90282. BYTE byReserved[1020]; // 保留字节
  90283. } NET_ALGORITHM_SVN_INFO;
  90284. ///@brief 算法构建信息
  90285. typedef struct tagNET_ALGORITHM_BUILD_INFO
  90286. {
  90287. NET_ALGORITHM_SVN_INFO stuSvnInfo; // 算法SVN信息
  90288. char szPackName[128]; // 升级包的名字
  90289. BYTE byReserved[896]; // 保留字节
  90290. } NET_ALGORITHM_BUILD_INFO;
  90291. ///@brief 独立算法升级支持的AI方案信息
  90292. typedef struct tagNET_ALGORITHM_UPGRADE_AI_INFO
  90293. {
  90294. NET_ALGORITHM_SDK_INFO stuSdkInfo[32]; // 算法SDK信息
  90295. UINT nRetSdkNum; // 实际返回的算法sdk个数, 即stuSdkInfo数组的有效元素个数
  90296. BYTE byReserved[1020]; // 保留字节
  90297. } NET_ALGORITHM_UPGRADE_AI_INFO;
  90298. ///@brief 算法独立升级能力
  90299. typedef struct tagNET_ANALYSE_CAPS_SUPPORT_ALGORITHM_UPGRADE
  90300. {
  90301. DWORD dwSize; // 结构体大小
  90302. BOOL bSupportOnlyAlgorithmUpgrade; // 是否支持算法独立升级能力
  90303. UINT nMaxUpgradeAINum; // AI 方案最大个数, 由用户指定, 最大支持128
  90304. UINT nRetUpgradeAINum; // 实际返回的AI 方案个数, 即pstUpgradeAIInfo 数组的有效元素个数
  90305. NET_ALGORITHM_UPGRADE_AI_INFO *pstUpgradeAIInfo; // 独立算法升级支持的AI方案信息, 内存由用户申请和释放, 申请大小sizeof(NET_ALGORITHM_UPGRADE_AI_INFO)*nMaxUpgradeAINum
  90306. UINT nRetStorageNum; // 实际返回的设备分区个数, 即stuStorageInfo 数组的有效元素个数
  90307. NET_ALGORITHM_DEV_STORAGE_INFO stuStorageInfos[16]; // 设备的分区信息
  90308. NET_ALGORITHM_BUILD_INFO stuBuildInfo; // 算法构建信息
  90309. } NET_ANALYSE_CAPS_SUPPORT_ALGORITHM_UPGRADE;
  90310. ///@brief 获取算法引擎平台信息
  90311. typedef struct tagNET_ANALYSE_CAPS_SUPPORT_PLATFORM_INFO
  90312. {
  90313. DWORD dwSize; // 结构体大小
  90314. char szPlatform[32]; // 算法编译平台
  90315. char szEngine[32]; // 算法引擎
  90316. char szEngineVersion[32]; // 算法引擎版本
  90317. } NET_ANALYSE_CAPS_SUPPORT_PLATFORM_INFO;
  90318. ///@brief 获取是否支持算法URL升级方式
  90319. typedef struct tagNET_ANALYSE_CAPS_SUPPORT_ALGORITHM_URL_UPGRADE
  90320. {
  90321. DWORD dwSize; // 结构体大小
  90322. BOOL bSupportAlgorithmURLUpgrade; // 是否支持算法URL升级方式
  90323. } NET_ANALYSE_CAPS_SUPPORT_ALGORITHM_URL_UPGRADE;
  90324. ///@brief 获取是否支持外部进行智能任务调度
  90325. typedef struct tagNET_ANALYSE_CAPS_SUPPORT_ANALYSE_TASK_MANAGER
  90326. {
  90327. DWORD dwSize; // 结构体大小
  90328. BOOL bSupporAnalyseTaskManager; // 是否支持外部进行智能任务调度
  90329. } NET_ANALYSE_CAPS_SUPPORT_ANALYSE_TASK_MANAGER;
  90330. ///@brief 获取是否支持特征库下发
  90331. typedef struct tagNET_ANALYSE_CAPS_SUPPORT_FEATURE_DB
  90332. {
  90333. DWORD dwSize; // 结构体大小
  90334. BOOL bSupporFeatureDB; // 是否支持特征库下发
  90335. } NET_ANALYSE_CAPS_SUPPORT_FEATURE_DB;
  90336. ///@brief 算法Model信息
  90337. typedef struct tagNET_ALGORITHM_MODEL_INFO
  90338. {
  90339. char szName[256]; // 算法Model名称
  90340. char szVersion[256]; // 算法Model版本
  90341. char szReserved[1024]; // 保留字节
  90342. } NET_ALGORITHM_MODEL_INFO ;
  90343. ///@brief 算法独立升级支持的AI方案信息
  90344. typedef struct tagNET_SUPPORT_UPGRADE_AI_TYPE_INFO
  90345. {
  90346. int nSdkInfoCount; // 算法SDK信息个数
  90347. NET_ALGORITHM_SDK_INFO stuSdkInfo[32]; // 算法SDK信息
  90348. int nModelInfoCount; // 算法Model信息个数
  90349. NET_ALGORITHM_MODEL_INFO stuModelInfo[64]; // 算法Model信息
  90350. char szReserved[1024]; // 保留字节
  90351. } NET_SUPPORT_UPGRADE_AI_TYPE_INFO;
  90352. ///@brief 算法独立升级支持的AI方案信息
  90353. typedef struct tagNET_ANALYSE_CAPS_SUPPORT_UPGRADE_AI_TYPE
  90354. {
  90355. DWORD dwSize; // 结构体大小
  90356. UINT nMaxNum; // 算法独立升级支持的AI 方案最大个数, 由用户指定, 最大支持128
  90357. UINT nRetNum; // 实际返回的AI 方案个数, 即pstUpgradeAIInfo 数组的有效元素个数
  90358. NET_SUPPORT_UPGRADE_AI_TYPE_INFO *pstuSupportUpgradeAITypeInfo; // 独立算法升级支持的AI方案信息, 内存由用户申请和释放, 申请大小sizeof(NET_SUPPORT_UPGRADE_AI_TYPE_INFO)*nMaxNum
  90359. } NET_ANALYSE_CAPS_SUPPORT_UPGRADE_AI_TYPE;
  90360. ///@brief 算法独立升级支持的AI方案信息
  90361. typedef struct tagNET_ANALYSE_CAPS_STORAGE
  90362. {
  90363. DWORD dwSize; // 结构体大小
  90364. UINT nStorageNum; // 实际返回的设备分区个数, 即stuStorageInfo 数组的有效元素个数
  90365. NET_ALGORITHM_DEV_STORAGE_INFO stuStorageInfos[16]; // 设备的分区信息
  90366. } NET_ANALYSE_CAPS_STORAGE;
  90367. ///@brief 升级包打包环境的构建信息
  90368. typedef struct tagNET_ANALYSE_CAPS_BUILD_INFO
  90369. {
  90370. DWORD dwSize; // 结构体大小
  90371. NET_ALGORITHM_BUILD_INFO stuBuildInfo; // 算法独立升级支持的AI方案信息
  90372. } NET_ANALYSE_CAPS_BUILD_INFO;
  90373. ///@brief 卸油区检测功能是否支持本地实现卸油
  90374. typedef struct tagNET_ANALYSE_CAPS_SUPPORT_UNLOAD_OIL_LOCAL_FUNC
  90375. {
  90376. DWORD dwSize; // 结构体大小
  90377. BOOL bSupportUnloadOilLocalFunc; // 是否本地实现卸油
  90378. }NET_ANALYSE_CAPS_SUPPORT_UNLOAD_OIL_LOCAL_FUNC;
  90379. ///@brief 门体分区描述枚举
  90380. typedef enum tagEM_SOLUTION_ALGORITHM_TYPE
  90381. {
  90382. EM_ALGORITHM_UNKNOWN, // 未知
  90383. EM_ALGORITHM_OD_SOLUTION, // 目标检测算法
  90384. EM_ALGORITHM_OC_SOLUTION, // 图像多属性分类算法
  90385. EM_ALGORITHM_OD_OC_SOLUTION, // 检测及多属性分类混合算法
  90386. EM_ALGORITHM_BD_SOLUTION, // 视频行为分析算法
  90387. EM_ALGORITHM_OCR_SOLUTION, // 图像文本识别算法
  90388. EM_ALGORITHM_IR_SOLUTION, // 检索对比算法
  90389. }EM_SOLUTION_ALGORITHM_TYPE;
  90390. ///@brief 获取设备支持的开放智能类型以及对应的AMCC号
  90391. typedef struct tagNET_AI_SOLUTION_LIST
  90392. {
  90393. DWORD dwSize; // 结构体大小
  90394. char szAMCC[128]; // AMCC号
  90395. EM_SOLUTION_ALGORITHM_TYPE emSolutionType; // 算法方案
  90396. }NET_AI_SOLUTION_LIST;
  90397. ///@brief 获取设备支持的开放智能类型以及对应的AMCC号
  90398. typedef struct tagNET_ANALYSE_CAPS_AI_SOLUTION_LIST
  90399. {
  90400. DWORD dwSize; // 结构体大小
  90401. UINT nAISolutionNum; // 实际返回的设备支持的开放智能类型以及对应的AMCC号 个数, stuAISolutionList 数组的有效元素个数
  90402. NET_AI_SOLUTION_LIST stuAISolutionList[64]; // AMCC号
  90403. }NET_ANALYSE_CAPS_AI_SOLUTION_LIST;
  90404. ///@brief 能力名字为空时的返回信息
  90405. typedef struct tagNET_ANALYSE_CAPS_NULL
  90406. {
  90407. DWORD dwSize; // 结构体大小
  90408. int nClassTypeNum; // 业务大类的有效个数
  90409. EM_SCENE_CLASS_TYPE emClassType[32]; // 业务大类
  90410. NET_TOTAL_CAP stuTotalCaps[MAX_ANALYSE_TOTALCAPS_NUM]; // 智能分析总能力
  90411. UINT nTotalCapsNum; // 智能分析总能力个数
  90412. } NET_ANALYSE_CAPS_NULL;
  90413. ///@brief 智能分析服务能力类型
  90414. typedef enum tagEM_ANALYSE_CAPS_TYPE
  90415. {
  90416. EM_ANALYSE_CAPS_NULL = 0, // 表示能力名字为空时(capsName为NULL时), 对应输出结构体 NET_ANALYSE_CAPS_NULL
  90417. EM_ANALYSE_CAPS_ALGORITHM = 1, // 算法版本, 对应输出结构体 NET_ANALYSE_CAPS_ALGORITHM
  90418. EM_ANALYSE_CAPS_TOTALCAPS, // 智能分析总能力, 对应输出结构体 NET_ANALYSE_CAPS_TOTAL
  90419. EM_ANALYSE_CAPS_SUPPORT_ALGORITHM_UPGRADE, // 算法独立升级能力, 对应输出结构体 NET_ANALYSE_CAPS_SUPPORT_ALGORITHM_UPGRADE
  90420. EM_ANALYSE_CAPS_SUPPORT_PLATFORM_INFO, // 获取算法引擎平台信息, 对应输出结构体 NET_ANALYSE_CAPS_SUPPORT_PLATFORM_INFO
  90421. EM_ANALYSE_CAPS_SUPPORT_ALGORITHM_URL_UPGRADE, // 获取是否支持算法URL升级方式, 对应输出结构体 NET_ANALYSE_CAPS_SUPPORT_ALGORITHM_URL_UPGRADE
  90422. EM_ANALYSE_CAPS_SUPPORT_ANALYSE_TASK_MANAGER, // 获取是否支持外部进行智能任务调度, 对应输出结构体 NET_ANALYSE_CAPS_SUPPORT_ANALYSE_TASK_MANAGER
  90423. EM_ANALYSE_CAPS_SUPPORT_FEATURE_DB, // 获取是否支持特征库下发,对应输出结构体 NET_ANALYSE_CAPS_SUPPORT_FEATURE_DB
  90424. EM_ANALYSE_CAPS_SUPPORT_UPGRADE_AI_TYPE, // 算法独立升级支持的AI方案信息, 对应输出结构体 NET_ANALYSE_CAPS_SUPPORT_UPGRADE_AI_TYPE
  90425. EM_ANALYSE_CAPS_STORAGE, // 设备的分区信息, 对应输出结构体 NET_ANALYSE_CAPS_STORAGE
  90426. EM_ANALYSE_CAPS_BUILD_INFO, // 升级包打包环境的构建信息, 对应输出结构体 NET_ANALYSE_CAPS_BUILD_INFO
  90427. EM_ANALYSE_CAPS_SUPPORT_UNLOAD_OIL_LOCAL_FUNC, // 卸油区检测功能是否支持本地实现卸油,对应输出结构体 NET_ANALYSE_CAPS_SUPPORT_UNLOAD_OIL_LOCAL_FUNC
  90428. EM_ANALYSE_CAPS_AI_SOLUTION_LIST, // 获取设备支持的开放智能类型以及对应的AMCC号,对应输出结构体 NET_ANALYSE_CAPS_AI_SOLUTION_LIST
  90429. } EM_ANALYSE_CAPS_TYPE;
  90430. ///@brief 获取剩余智能分析资源入参
  90431. typedef struct tagNET_IN_REMAIN_ANAYLSE_RESOURCE
  90432. {
  90433. DWORD dwSize; // 结构体大小
  90434. }NET_IN_REMAIN_ANAYLSE_RESOURCE;
  90435. ///@brief 获取剩余智能分析资源出参
  90436. typedef struct tagNET_OUT_REMAIN_ANAYLSE_RESOURCE
  90437. {
  90438. DWORD dwSize; // 结构体大小
  90439. UINT nRetRemainCapNum; // 返回的能力个数
  90440. NET_REMAIN_ANALYSE_CAPACITY stuRemainCapacities[32]; // 智能分析剩余能力
  90441. NET_REMAIN_ANALYSE_TOTAL_CAPACITY stuTotalCapacity[32]; // 可供任务调度的总的智能能力
  90442. UINT nTotalCapacityNum; // 可供任务调度的总的智能能力个数
  90443. UINT nRetRemainPictureCapNum; // 返回的能力个数
  90444. NET_REMAIN_PICTURE_ANALYSE_CAPACITY stuRemainPictureCapacities[32]; // 图片智能分析剩余能力
  90445. NET_REMAIN_PICTURE_ANALYSE_TOTAL_CAPACITY stuTotalPictureCapacity[32]; // 可供任务调度的总的图片智能能力
  90446. UINT nTotalPictureCapacityNum; // 可供任务调度的总的图片智能能力个数
  90447. int nFeatureMatchNum; // 特征比对能力个数
  90448. NET_FEATURE_MATCH stuFeatureMatch[32]; // 特征比对能力
  90449. }NET_OUT_REMAIN_ANAYLSE_RESOURCE;
  90450. ///@brief 获取视频分析服务智能能力集, pstOutParam根据emCapsType的值取对应的结构体, pstOutParam 资源由用户申请和释放
  90451. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAnalyseCaps(LLONG lLoginID, EM_ANALYSE_CAPS_TYPE emCapsType, void *pOutParam, int nWaitTime);
  90452. ///@brief 添加智能分析任务, 输入参数pInParam的结构体类型根据emDataSourceType的值来决定, pInParam 和 pOutParam 资源由用户申请和释放
  90453. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddAnalyseTask(LLONG lLoginID, EM_DATA_SOURCE_TYPE emDataSourceType, void *pInParam, NET_OUT_ADD_ANALYSE_TASK *pOutParam, int nWaitTime);
  90454. ///@brief 修改智能分析任务, 输入参数pInParam的结构体类型根据emDataSourceType的值来决定, pInParam 和 pOutParam 资源由用户申请和释放
  90455. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyAnalyseTask(LLONG lLoginID, NET_IN_MODIFY_ANALYSE_TASK* pInParam, NET_OUT_MODIFY_ANALYSE_TASK *pOutParam, int nWaitTime);
  90456. ///@brief 添加轮询检测任务
  90457. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddPollingAnalyseTask(LLONG lLoginID, const NET_IN_ADD_POLLING_ANALYSE_TASK *pInParam, NET_OUT_ADD_POLLING_ANALYSE_TASK *pOutParam, int nWaitTime);
  90458. ///@brief 更新轮询检测任务规则
  90459. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpdatePollingAnalyseTask(LLONG lLoginID, const NET_IN_UPDATE_POLLING_ANALYSE_TASK *pInParam, NET_OUT_UPDATE_POLLING_ANALYSE_TASK *pOutParam, int nWaitTime);
  90460. ///@brief 启动智能分析任务, pInParam 和 pOutParam 资源由用户申请和释放
  90461. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartAnalyseTask(LLONG lLoginID, NET_IN_START_ANALYSE_TASK *pInParam, NET_OUT_START_ANALYSE_TASK *pOutParam, int nWaitTime);
  90462. ///@brief 删除(停止)智能分析任务, pInParam 和 pOutParam 资源由用户申请和释放
  90463. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveAnalyseTask(LLONG lLoginID, NET_IN_REMOVE_ANALYSE_TASK *pInParam, NET_OUT_REMOVE_ANALYSE_TASK *pOutParam, int nWaitTime);
  90464. ///@brief 查找智能分析任务信息, pInParam 和 pOutParam 资源由用户申请和释放
  90465. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindAnalyseTask(LLONG lLoginID, NET_IN_FIND_ANALYSE_TASK *pInParam, NET_OUT_FIND_ANALYSE_TASK *pOutParam, int nWaitTime);
  90466. ///@brief 推送智能分析图片文件,当CLIENT_AddAnalyseTask的数据源类型emDataSourceType为 EM_DATA_SOURCE_PUSH_PICFILE 时使用
  90467. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PushAnalysePictureFile(LLONG lLoginID, NET_IN_PUSH_ANALYSE_PICTURE_FILE *pInParam, NET_OUT_PUSH_ANALYSE_PICTURE_FILE *pOutParam, int nWaitTime);
  90468. ///@brief 推送智能分析图片文件和规则信息,当CLIENT_AddAnalyseTask的数据源类型emDataSourceType为 EM_DATA_SOURCE_PUSH_PICFILE_BYRULE 时使用
  90469. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PushAnalysePictureFileByRule(LLONG lLoginID, NET_IN_PUSH_ANALYSE_PICTURE_FILE_BYRULE *pInParam, NET_OUT_PUSH_ANALYSE_PICTURE_FILE_BYRULE *pOutParam, int nWaitTime);
  90470. ///@brief 订阅智能分析任务状态, pInParam 资源由用户申请和释放
  90471. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachAnalyseTaskState(LLONG lLoginID, NET_IN_ATTACH_ANALYSE_TASK_STATE *pInParam, int nWaitTime);
  90472. ///@brief 取消订阅智能分析任务状态, lAttachHandle 为 CLIENT_AttachAnalyseTaskState接口的返回值
  90473. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachAnalyseTaskState(LLONG lAttachHandle);
  90474. ///@brief 订阅智能分析结果, pInParam 资源由用户申请和释放
  90475. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachAnalyseTaskResult(LLONG lLoginID, NET_IN_ATTACH_ANALYSE_RESULT *pInParam, int nWaitTime);
  90476. ///@brief 取消订阅智能分析结果, lAttachHandle 为 CLIENT_AttachAnalyseTaskResult接口的返回值
  90477. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachAnalyseTaskResult(LLONG lAttachHandle);
  90478. ///@brief 订阅剩余智能分析资源接口, pstInParam资源由用户申请和释放
  90479. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRemainAnalyseResource(LLONG lLoginID, NET_IN_ATTACH_REMAIN_ANALYSE_RESOURCE *pInParam, int nWaitTime);
  90480. ///@brief 取消订阅智能分析结果, lAttachHandle 为 CLIENT_AttachAnalyseTaskResult接口的返回值
  90481. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRemainAnalyseResource(LLONG lAttachHandle);
  90482. ///@brief 获取剩余智能分析资源
  90483. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRemainAnalyseResource(LLONG lLoginID, const NET_IN_REMAIN_ANAYLSE_RESOURCE* pInParam, NET_OUT_REMAIN_ANAYLSE_RESOURCE *pOutParam, int nWaitTime);
  90484. ///@brief 设置任务的自定义数据
  90485. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetAnalyseTaskCustomData(LLONG lLoginID, const NET_IN_SET_ANALYSE_TASK_CUSTOM_DATA *pInParam, NET_OUT_SET_ANALYSE_TASK_CUSTOM_DATA *pOutParam, const int nWaitTime);
  90486. ///@brief 全局布控
  90487. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PutAnalyseDisposition(LLONG lLoginID, const NET_IN_PUT_ANALYSE_DISPOSITION *pInParam, NET_OUT_PUT_ANALYSE_DISPOSITION *pOutParam, const int nWaitTime);
  90488. ///@brief 分析规则
  90489. typedef struct tagNET_UPDATE_ANALYSE_TASK_RULES
  90490. {
  90491. EM_SCENE_CLASS_TYPE emClassType; // 分析大类类型
  90492. DWORD dwRuleType; // 规则类型, 详见 NET_ANALYSE_RULE_INFO 结构体dwRuleType字段注释
  90493. void* pRuleConfig; // 规则配置, 具体结构体类型根据dwRuleType来确定
  90494. int nObjectTypeNum; // 检测的物体类型个数
  90495. char szObjectTypes[16][16]; // 检测的物体类型列表
  90496. char szReserved[764]; // 保留字节
  90497. }NET_UPDATE_ANALYSE_TASK_RULES;
  90498. ///@brief CLIENT_UpdateAnalyseTaskRules 输入参数
  90499. typedef struct tagNET_IN_UPDATE_ANALYSE_TASK_RULES
  90500. {
  90501. DWORD dwSize; // 结构体大小
  90502. UINT nTaskID; // 任务ID
  90503. int nRulesNum; // 分析规则个数
  90504. NET_UPDATE_ANALYSE_TASK_RULES stuRules[16]; // 分析规则
  90505. }NET_IN_UPDATE_ANALYSE_TASK_RULES;
  90506. ///@brief CLIENT_UpdateAnalyseTaskRules 输出参数
  90507. typedef struct tagNET_OUT_UPDATE_ANALYSE_TASK_RULES
  90508. {
  90509. DWORD dwSize; // 结构体大小
  90510. }NET_OUT_UPDATE_ANALYSE_TASK_RULES;
  90511. ///@brief 更新任务规则接口
  90512. ///@param[in] lLoginID 登录句柄
  90513. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  90514. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  90515. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  90516. ///@return TRUE表示成功 FALSE表示失败
  90517. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UpdateAnalyseTaskRules(LLONG lLoginID, const NET_IN_UPDATE_ANALYSE_TASK_RULES* pInParam, NET_OUT_UPDATE_ANALYSE_TASK_RULES *pOutParam, const int nWaitTime);
  90518. ///@brief 平台下发轮询配置信息
  90519. typedef struct tagNET_SET_POLLING_CONFIG_INFO
  90520. {
  90521. BOOL bEnable; // 使能开关
  90522. UINT nChannel; // 通道号
  90523. char szGlobalType[64]; // 全局配置
  90524. int nRulelTypeCnt; // 规则配置个数
  90525. char szReserved1[4]; // 保留字节
  90526. char szRulelType[16][64]; // 规则配置
  90527. char szGlobalTypeList[6][64];// 全局配置列表, 扩展支持单个通道多种智能的开启,和szGlobalType二选一使能,如果szGlobalTypeList 里面有场景内容则优先使用
  90528. int nGlobalTypeListNum; // 全局配置列表个数
  90529. char szReserved[636]; // 保留字节
  90530. } NET_SET_POLLING_CONFIG_INFO;
  90531. ///@brief 平台下发轮询配置入参
  90532. typedef struct tagNET_IN_SET_POLLING_CONFIG
  90533. {
  90534. DWORD dwSize; // 结构体大小
  90535. UINT nConfigCnt; // 平台下发轮询配置个数
  90536. NET_SET_POLLING_CONFIG_INFO stuConfigInfos[256]; // 平台下发轮询配置信息
  90537. }NET_IN_SET_POLLING_CONFIG;
  90538. ///@brief 平台下发轮询配置出参
  90539. typedef struct tagNET_OUT_SET_POLLING_CONFIG
  90540. {
  90541. DWORD dwSize; // 结构体大小
  90542. }NET_OUT_SET_POLLING_CONFIG;
  90543. ///@brief 平台下发轮询配置
  90544. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPollingConfig(LLONG lLoginID, const NET_IN_SET_POLLING_CONFIG *pInParam, NET_OUT_SET_POLLING_CONFIG *pOutParam, const int nWaitTime);
  90545. ///@brief 分区打包类型
  90546. typedef enum tagEM_ALGO_MATCH_TYPE_ENUM
  90547. {
  90548. EM_ALGO_MATCH_UNKNOWN, // 未知
  90549. EM_ALGO_MATCH_ALGORITHM_SHELF, // 算法货架
  90550. EM_ALGO_MATCH_ALGORITHM_PARTITION, // 算法分区
  90551. }EM_ALGO_MATCH_TYPE_ENUM;
  90552. ///@brief 属性值的索引和名称的映射表
  90553. typedef struct tagNET_ATTR_MAP
  90554. {
  90555. char szValue[128]; // 属性值名称
  90556. int nKey; // 属性值索引,方案内唯一
  90557. char szReserved[252]; // 保留字节
  90558. }NET_ATTR_MAP;
  90559. ///@brief 属性能力集,按目标类型列举
  90560. typedef struct tagNET_ALGO_PACK_MANAGER_ATTRIBUTE
  90561. {
  90562. char szAttrName[128]; // 属性label名称
  90563. int nAttrID; // 属性label索引,方案内唯一
  90564. UINT nAttrMapNum; // 设备实际下发的属性值的索引和名称的映射表
  90565. NET_ATTR_MAP stuAttrMap[256]; // 属性值的索引和名称的映射表
  90566. char szReserved[256]; // 保留字节
  90567. }NET_ALGO_PACK_MANAGER_ATTRIBUTE;
  90568. ///@brief 开放算法的目标组合
  90569. typedef struct tagNET_ALGO_PACK_MANAGER_OBJECTS
  90570. {
  90571. char szLabel[128]; // 目标类型名称s
  90572. int nKey; // 目标类型索引,方案内唯一
  90573. UINT nAttributeNum; // 设备实际下发的属性能力集
  90574. NET_ALGO_PACK_MANAGER_ATTRIBUTE stuAttribute[256]; // 属性能力集,按目标类型列举
  90575. char szReserved[256]; // 保留字节
  90576. }NET_ALGO_PACK_MANAGER_OBJECTS;
  90577. ///@brief 算法信息
  90578. typedef struct tagNET_ALGO_TEMPLATE_CFG
  90579. {
  90580. char szName[128]; // 开放算法名称
  90581. char szType[128]; // 开放算法的基础规则类型
  90582. char szAlgoID[128]; // 算法ID
  90583. int nAlarmId; // 自定义报警ID
  90584. UINT nObjectsNum; // 设备实际下发的开放算法的目标组合
  90585. NET_ALGO_PACK_MANAGER_OBJECTS *pstuObjects; // 开放算法的目标组合
  90586. char szReserved[256]; // 保留字节
  90587. }NET_ALGO_TEMPLATE_CFG;
  90588. ///@brief CLIENT_ImportByUrl 入参
  90589. typedef struct tagNET_IN_IMPORT_BY_URL
  90590. {
  90591. DWORD dwSize; // 结构体大小
  90592. BYTE szReserved[4];
  90593. char szUrl[512]; // 下载url地址
  90594. char szCheckSum[128]; // 模型包校验值,MD5
  90595. char szAlgoPackName[64]; // 算法包名称
  90596. EM_SOLUTION_ALGORITHM_TYPE emAlgoSolution; // 算法方案
  90597. UINT nAlgoTemplateCfgNum; // 设备实际下发的算法信息个数
  90598. NET_ALGO_TEMPLATE_CFG *pstuAlgoTemplateCfg; // 算法信息
  90599. }NET_IN_IMPORT_BY_URL;
  90600. ///@brief CLIENT_ImportByUrl 出参
  90601. typedef struct tagNET_OUT_IMPORT_BY_URL
  90602. {
  90603. DWORD dwSize; // 结构体大小
  90604. UINT nTaskID; // 任务ID
  90605. }NET_OUT_IMPORT_BY_URL;
  90606. ///@brief 通过url下载模型
  90607. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ImportByUrl(LLONG lLoginID, const NET_IN_IMPORT_BY_URL *pInParam, NET_OUT_IMPORT_BY_URL *pOutParam, const int nWaitTime);
  90608. ///@brief CLIENT_CancelImport 入参
  90609. typedef struct tagNET_IN_CANCEL_IMPORT
  90610. {
  90611. DWORD dwSize; // 结构体大小
  90612. UINT nTaskID; // 任务ID
  90613. }NET_IN_CANCEL_IMPORT;
  90614. ///@brief CLIENT_CancelImport 出参
  90615. typedef struct tagNET_OUT_CANCEL_IMPORT
  90616. {
  90617. DWORD dwSize; // 结构体大小
  90618. }NET_OUT_CANCEL_IMPORT;
  90619. ///@brief 删除模型下发任务
  90620. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CancelImport(LLONG lLoginID, const NET_IN_CANCEL_IMPORT *pInParam, NET_OUT_CANCEL_IMPORT *pOutParam, const int nWaitTime);
  90621. ///@brief 校验码验证结果
  90622. typedef enum tagEM_FAILED_CODE
  90623. {
  90624. EM_FAILED_CODE_UNKNOWN=-1, // 未知
  90625. EM_FAILED_CODE_NO_ERROR, // 无错误
  90626. EM_FAILED_CODE_FAILED_TO_DOWNLOAD_THE_MODEL, // 下载模型失败
  90627. EM_FAILED_CODE_STORAGE_SPACE_IS_INSUFFICIENT, // 存储空间不足
  90628. EM_FAILED_CODE_FILE_IS_TOO_LARGE, // 文件太大
  90629. EM_FAILED_CODE_MODEL_PACKET_HEADER_ANALYSIS_FAILS, // 模型包头解析失败
  90630. EM_FAILED_CODE_MODEL_FORMAT_VERIFICATION_ERROR, // 模型格式校验错误
  90631. EM_FAILED_CODE_HARDWARE_PLATFORM_VERIFICATION_FAILS, // 硬件平台校验失败
  90632. EM_FAILED_CODE_DEVICE_DOES_NOT_SUPPORT_MODEL_DELIVERY, // 设备不支持模型下发
  90633. EM_FAILED_CODE_CURRENT_DEVICE_MODE_IS_NOT_SUPPORTED, // 当前设备模式不支持
  90634. EM_FAILED_CODE_MODEL_NAME_ALREADY_EXISTS, // 模型名称已存在
  90635. EM_FAILED_CODE_EXCEEDS_THE_UPPER_LIMIT, // 算法个数超过最大限制
  90636. EM_FAILED_CODE_OTHER_ERRORS, // 其他错误
  90637. }EM_FAILED_CODE;
  90638. ///@brief 分析结果信息
  90639. typedef struct tagDEV_ALGO_PACK_RESULT_INFO
  90640. {
  90641. UINT nTaskID; // 任务ID
  90642. char szState[32]; // 下发状态
  90643. UINT nProgress; // 下载进度
  90644. EM_FAILED_CODE emFailedCode; // 错误码
  90645. char szResvered[256]; // 保留字节
  90646. }DEV_ALGO_PACK_RESULT_INFO;
  90647. ///@brief 订阅的分析结果
  90648. typedef struct tagNET_NOTIFY_ALGO_PACK_RESULT_INFO
  90649. {
  90650. int nInfosNum; // 分析结果信息有效个数
  90651. DEV_ALGO_PACK_RESULT_INFO stuInfos[32]; // 分析结果信息
  90652. char szResvered[1024]; // 保留字节
  90653. }NET_NOTIFY_ALGO_PACK_RESULT_INFO;
  90654. ///@brief 模型下载分析结果订阅回调函数原型, lAlgoPackResultHandle 为 CLIENT_AttachImportResult 接口的返回值
  90655. ///@param[out] lAlgoPackResultHandle 订阅句柄
  90656. ///@param[out] pstuSCADADataNotifyInfo 订阅的分析结果
  90657. ///@param[out] dwUser 用户信息
  90658. ///@return void
  90659. typedef void (CALLBACK *fNotifyAlgoPackResult)(LLONG lAlgoPackResultHandle, NET_NOTIFY_ALGO_PACK_RESULT_INFO* pstuAlgoPackResultNotifyInfo, LDWORD dwUser);
  90660. ///@brief CLIENT_AttachImportResult 接口入参
  90661. typedef struct tagNET_IN_ALGO_PACK_RESULT_INFO
  90662. {
  90663. DWORD dwSize; // 此结构体大小,必须赋值
  90664. int nTaskIDNum; // 设备实际下发的TaskID个数
  90665. UINT nTaskID[64]; // 订阅的TaskID
  90666. fNotifyAlgoPackResult cbfNotifyAlgoPackResult; // 回调函数, 设备传回的分析结果
  90667. LDWORD dwUser; // 用户自定义参数
  90668. }NET_IN_ALGO_PACK_RESULT_INFO;
  90669. ///@brief CLIENT_AttachImportResult 接口出参
  90670. typedef struct tagNET_OUT_ALGO_PACK_RESULT_INFO
  90671. {
  90672. DWORD dwSize; // 此结构体大小,必须赋值
  90673. }NET_OUT_ALGO_PACK_RESULT_INFO;
  90674. ///@brief 模型下载分析结果订阅
  90675. ///@param[in] lLoginID 登录句柄
  90676. ///@param[in] pstInParam 接口输入参数
  90677. ///@param[out] pstOutParam 接口输出参数
  90678. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  90679. ///@return 返回订阅句柄
  90680. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachImportResult(LLONG lLoginID, NET_IN_ALGO_PACK_RESULT_INFO* pstInParam, NET_OUT_ALGO_PACK_RESULT_INFO* pstOutParam, int nWaitTime);
  90681. ///@brief 模型下载分析结果退订
  90682. ///@param[in] lAlgoPackResultHandle 订阅句柄
  90683. ///@return TRUE表示成功 FALSE表示失败
  90684. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachImportResult(LLONG lAlgoPackResultHandle);
  90685. ///@brief CLIENT_GetAlgMatchInfo 入参
  90686. typedef struct tagNET_IN_GET_ALG_MATCH_INFO
  90687. {
  90688. DWORD dwSize; // 结构体大小
  90689. }NET_IN_GET_ALG_MATCH_INFO;
  90690. ///@brief CLIENT_GetAlgMatchInfo 出参
  90691. typedef struct tagNET_OUT_GET_ALG_MATCH_INFO
  90692. {
  90693. DWORD dwSize; // 结构体大小
  90694. EM_ALGO_MATCH_TYPE_ENUM emMatchType; // 匹配的算法方案类型
  90695. char szInfo[4096]; // 用于专业算法包升级前匹配使用的版本信息
  90696. }NET_OUT_GET_ALG_MATCH_INFO;
  90697. ///@brief 获取专业算法版本信息表
  90698. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAlgMatchInfo(LLONG lLoginID, const NET_IN_GET_ALG_MATCH_INFO *pInParam, NET_OUT_GET_ALG_MATCH_INFO *pOutParam, const int nWaitTime);
  90699. ///@brief CLIENT_GetChannelState 入参
  90700. typedef struct tagNET_IN_GET_CHANNEL_STATE
  90701. {
  90702. DWORD dwSize; // 结构体大小
  90703. int nChannelNum; // 视频通道数组个数
  90704. UINT nChannel[256]; // 视频通道数组,当该字段不存在或为空时代表获取所有通道
  90705. }NET_IN_GET_CHANNEL_STATE;
  90706. ///@brief 已开启的智能规则信息
  90707. typedef struct tagNET_INTELLI_INFO
  90708. {
  90709. int nTypeNum; // 智能规则类型个数
  90710. char szType[16][64]; // 智能规则类型
  90711. char szClass[64]; // 智能场景类型
  90712. char szReserved[516]; // 保留字节
  90713. }NET_INTELLI_INFO;
  90714. ///@brief 智能业务状态信息(已废弃,用NET_CHANNEL_STATE_INFO_EX替代)
  90715. typedef struct tagNET_CHANNEL_STATE_INFO
  90716. {
  90717. UINT nChannel; // 通道号
  90718. int nIntelliInfoNum; // 已开启的智能规则信息个数
  90719. NET_INTELLI_INFO stuIntelliInfo[16]; // 已开启的智能规则信息
  90720. char szReserved[512]; // 保留字节
  90721. }NET_CHANNEL_STATE_INFO;
  90722. ///@brief 关闭的智能规则信息
  90723. typedef struct tagNET_CHANNEL_STATE_INFO_EX
  90724. {
  90725. UINT nChannel; // 通道号
  90726. int nIntelliInfoNum; // 已开启的智能规则信息个数
  90727. NET_INTELLI_INFO stuIntelliInfo[16]; // 已开启的智能规则信息
  90728. int nClosedIntelliInfoNum; // 已关闭的智能规则信息个数
  90729. NET_INTELLI_INFO stuClosedIntelliInfo[64]; // 已关闭的智能规则信息
  90730. char szReserved[512]; // 保留字节
  90731. }NET_CHANNEL_STATE_INFO_EX;
  90732. ///@brief CLIENT_GetChannelState 出参
  90733. typedef struct tagNET_OUT_GET_CHANNEL_STATE
  90734. {
  90735. DWORD dwSize; // 结构体大小
  90736. int nStateNum; // 智能业务状态信息实际个数
  90737. int nMaxStateNum; // 用户申请智能业务状态信息最大个数
  90738. char szReserved[4]; // 字节对齐
  90739. NET_CHANNEL_STATE_INFO *pstuState; // 智能业务状态信息(已废弃,可不用) 需要用户申请内存空间 大小 sizeof(NET_CHANNEL_STATE_INFO)*nMaxStateNum
  90740. NET_CHANNEL_STATE_INFO_EX *pstuStateEx; // 智能业务状态信息扩展 需要用户申请内存空间 大小 sizeof(NET_CHANNEL_STATE_INFO_EX)*nMaxStateNum
  90741. }NET_OUT_GET_CHANNEL_STATE;
  90742. ///@brief 按通道获取设备智能业务的运行状态
  90743. ///@param[in] lLoginID 登录句柄
  90744. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  90745. ///@param[out] pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  90746. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  90747. ///@return TRUE表示成功 FALSE表示失败
  90748. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetChannelState(LLONG lLoginID, const NET_IN_GET_CHANNEL_STATE *pstuInParam, NET_OUT_GET_CHANNEL_STATE *pstuOutParam, int nWaitTime);
  90749. ///@brief 特征库信息
  90750. typedef struct tagNET_LOAD_FEATURE_DB_INFO
  90751. {
  90752. char szShardID[64]; // 分片ID
  90753. BYTE byReserved[512]; // 保留字节
  90754. } NET_LOAD_FEATURE_DB_INFO;
  90755. ///@brief 特征值类型
  90756. typedef enum tagEM_LOAD_FEATURE_TYPE
  90757. {
  90758. EM_LOAD_FEATURE_TYPE_UNKNOWN, // 未知
  90759. EM_LOAD_FEATURE_TYPE_FACE, // 目标特征
  90760. EM_LOAD_FEATURE_TYPE_OBJECT, // 结构化特征
  90761. EM_LOAD_FEATURE_TYPE_VEHICLE, // 车辆特征
  90762. } EM_LOAD_FEATURE_TYPE;
  90763. ///@brief 特征库列表
  90764. typedef struct tagNET_LOAD_FEATURE_DB_LIST
  90765. {
  90766. char szRequestID[64]; // 请求ID
  90767. char szRepositoryId[64]; // 加载库ID
  90768. EM_REPOSITORY_TYPE emRepositoryType; // 特征库类型
  90769. int nFeatureDBInfoNum; // 特征库数量
  90770. NET_LOAD_FEATURE_DB_INFO stuFeatureDBInfo[32]; // 特征库信息
  90771. char szPfurl[256]; // 特征库请求地址
  90772. EM_LOAD_FEATURE_TYPE emFeatureType; // 特征类型
  90773. BYTE byReserved[1024]; // 保留字节
  90774. } NET_LOAD_FEATURE_DB_LIST;
  90775. ///@brief CLIENT_LoadFeatureRepository 入参
  90776. typedef struct tagNET_IN_LOAD_FEATURE_REPOSITORY
  90777. {
  90778. DWORD dwSize; // 结构体大小
  90779. NET_LOAD_FEATURE_DB_LIST stuFeatureDB[32]; // 特征值信息
  90780. int nFeatureDBNum; // 特征值信息个数
  90781. } NET_IN_LOAD_FEATURE_REPOSITORY;
  90782. ///@brief CLIENT_LoadFeatureRepository 出参
  90783. typedef struct tagNET_OUT_LOAD_FEATURE_REPOSITORY
  90784. {
  90785. DWORD dwSize; // 结构体大小
  90786. } NET_OUT_LOAD_FEATURE_REPOSITORY;
  90787. ///@brief 加载特征值库
  90788. CLIENT_NET_API BOOL CALL_METHOD CLIENT_LoadFeatureRepository(LLONG lLoginID, const NET_IN_LOAD_FEATURE_REPOSITORY *pInParam, NET_OUT_LOAD_FEATURE_REPOSITORY *pOutParam, const int nWaitTime);
  90789. ///@brief 特征库列表
  90790. typedef struct tagNET_UNLOAD_FEATURE_DB_LIST
  90791. {
  90792. char szRepositoryId[64]; // 特征库ID
  90793. char szShardID[32][64]; // 分片ID
  90794. int nShardIDNum; // 分片ID数量
  90795. EM_REPOSITORY_TYPE emRepositoryType; // 加载特征库类型
  90796. BYTE byReserved[1024]; // 保留字节
  90797. } NET_UNLOAD_FEATURE_DB_LIST;
  90798. ///@brief CLIENT_UnLoadFeatureRepository 入参
  90799. typedef struct tagNET_IN_UNLOAD_FEATURE_REPOSITORY
  90800. {
  90801. DWORD dwSize; // 结构体大小
  90802. NET_UNLOAD_FEATURE_DB_LIST stuFeatureDB[32]; // 特征值信息
  90803. int nFeatureDBNum; // 特征值信息个数
  90804. } NET_IN_UNLOAD_FEATURE_REPOSITORY;
  90805. ///@brief CLIENT_UnLoadFeatureRepository 出参
  90806. typedef struct tagNET_OUT_UNLOAD_FEATURE_REPOSITORY
  90807. {
  90808. DWORD dwSize; // 结构体大小
  90809. } NET_OUT_UNLOAD_FEATURE_REPOSITORY;
  90810. ///@brief 卸载特征值库
  90811. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UnLoadFeatureRepository(LLONG lLoginID, const NET_IN_UNLOAD_FEATURE_REPOSITORY *pInParam, NET_OUT_UNLOAD_FEATURE_REPOSITORY *pOutParam, const int nWaitTime);
  90812. ///@brief 结构化特征区分子类型
  90813. typedef enum tagEM_STRUCTURED_FEATURE_SUB_TYPE
  90814. {
  90815. EM_STRUCTURED_FEATURE_SUB_TYPE_UNKNOWN, // 未知
  90816. EM_STRUCTURED_FEATURE_SUB_TYPE_FACE, // 目标
  90817. EM_STRUCTURED_FEATURE_SUB_TYPE_HUMAN, // 人体
  90818. EM_STRUCTURED_FEATURE_SUB_TYPE_MOTOR = 4, // 机动车
  90819. EM_STRUCTURED_FEATURE_SUB_TYPE_NONMOTOR = 8, // 非机动车
  90820. } EM_STRUCTURED_FEATURE_SUB_TYPE;
  90821. ///@brief 特征信息列表
  90822. typedef struct tagNET_ADD_FEATURE_DB_LIST
  90823. {
  90824. char szRepositoryID[64]; // 特征库ID
  90825. char szFeatureID[64]; // 特征ID
  90826. EM_REPOSITORY_TYPE emRepositoryType; // 库类型
  90827. char szShardID[64]; // 分片ID
  90828. TP_U64 nCapTime; // 抓拍时间
  90829. EM_STRUCTURED_FEATURE_SUB_TYPE emObjectSubType; // 结构化特征区分子类型
  90830. char* pszFeature; // Base64裸特征
  90831. int nFeatureLen; // Base64裸特征长度
  90832. char szAlgorithmVersion[32]; // 特征版本号
  90833. char szVendor[32]; // 厂商 可能改枚举
  90834. BYTE byReserved[1024]; // 保留字节
  90835. } NET_ADD_FEATURE_DB_LIST;
  90836. ///@brief CLIENT_FeatureDBAddFeature 入参
  90837. typedef struct tagNET_IN_ADD_FEATURE
  90838. {
  90839. DWORD dwSize; // 结构体大小
  90840. int nFeatureDBNum; // 特征值信息个数
  90841. NET_ADD_FEATURE_DB_LIST stuFeatureDB[32]; // 特征值信息
  90842. } NET_IN_ADD_FEATURE;
  90843. ///@brief CLIENT_FeatureDBAddFeature 出参
  90844. typedef struct tagNET_OUT_ADD_FEATURE
  90845. {
  90846. DWORD dwSize; // 结构体大小
  90847. } NET_OUT_ADD_FEATURE;
  90848. ///@brief 为指定特征库添加特征
  90849. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FeatureDBAddFeature(LLONG lLoginID, const NET_IN_ADD_FEATURE *pInParam, NET_OUT_ADD_FEATURE *pOutParam, const int nWaitTime);
  90850. ///@brief 特征库信息列表
  90851. typedef struct tagNET_DELETE_FEATURE_DB_LIST
  90852. {
  90853. char szRepositoryID[64]; // 库ID
  90854. char szFeatureID[64]; // 特征ID
  90855. char szShardID[64]; // 分片ID
  90856. BYTE byReserved[512]; // 保留字节
  90857. } NET_DELETE_FEATURE_DB_LIST;
  90858. ///@brief CLIENT_FeatureDBDeleteFeature 入参
  90859. typedef struct tagNET_IN_DELETE_FEATURE
  90860. {
  90861. DWORD dwSize; // 结构体大小
  90862. int nFeatureDBNum; // 特征值信息个数
  90863. NET_DELETE_FEATURE_DB_LIST stuFeatureDB[32]; // 特征值信息
  90864. } NET_IN_DELETE_FEATURE;
  90865. ///@brief CLIENT_FeatureDBDeleteFeature 出参
  90866. typedef struct tagNET_OUT_DELETE_FEATURE
  90867. {
  90868. DWORD dwSize; // 结构体大小
  90869. } NET_OUT_DELETE_FEATURE;
  90870. ///@brief 删除设备上特征库中的特征
  90871. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FeatureDBDeleteFeature(LLONG lLoginID, const NET_IN_DELETE_FEATURE *pInParam, NET_OUT_DELETE_FEATURE *pOutParam, const int nWaitTime);
  90872. ///@brief 下载状态
  90873. typedef enum tagEM_FEATUREDB_TASK_STATE_TYPE
  90874. {
  90875. EM_FEATUREDB_TASK_STATE_TYPE_UNKNOWN, // 未知
  90876. EM_FEATUREDB_TASK_STATE_TYPE_IDLE, // 未运行
  90877. EM_FEATUREDB_TASK_STATE_TYPE_DOWNLOADING, // 下载中
  90878. EM_FEATUREDB_TASK_STATE_TYPE_FINISH, // 正常完成
  90879. EM_FEATUREDB_TASK_STATE_TYPE_ERROR, // 下载失败
  90880. } EM_FEATUREDB_TASK_STATE_TYPE;
  90881. ///@brief 下载错误码
  90882. typedef enum tagEM_FEATUREDB_TASK_ERROR_CODE
  90883. {
  90884. EM_FEATUREDB_TASK_ERROR_CODE_UNKNOWN, // 未知
  90885. EM_FEATUREDB_TASK_ERROR_CODE_OVERLIMIT, // 超过库的最大限制
  90886. } EM_FEATUREDB_TASK_ERROR_CODE;
  90887. ///@brief 特征库信息
  90888. typedef struct tagNET_FEATUREDB_TASK_REPOSITORY_INFO
  90889. {
  90890. char szShardID[64]; // 分片ID
  90891. BYTE byReserved[512]; // 保留字节
  90892. } NET_FEATUREDB_TASK_REPOSITORY_INFO;
  90893. ///@brief 特征库下载任务状态信息
  90894. typedef struct tagNET_FEATUREDB_TASK_STATE
  90895. {
  90896. char szRequestID[64]; // 请求ID
  90897. char szRepositoryID[64]; // 库ID
  90898. EM_REPOSITORY_TYPE emRepositoryType; // 特征库类型
  90899. int nRepositoryInfoNum; // 特征库信息个数
  90900. NET_FEATUREDB_TASK_REPOSITORY_INFO stuRepositoryInfo[32]; // 特征库信息
  90901. EM_FEATUREDB_TASK_STATE_TYPE emTaskState; // 下载状态
  90902. UINT nCurrentFeatureCount; // 当前已经加载特征值数
  90903. UINT nFailedFeatureCount; // 当前加载失败的特征值数
  90904. EM_FEATUREDB_TASK_ERROR_CODE emError; // 错误码,emTaskState为EM_FEATUREDB_TASK_STATE_TYPE_ERROR时填写改字段
  90905. BYTE byReserved[512]; // 保留字节
  90906. } NET_FEATUREDB_TASK_STATE;
  90907. ///@brief 加载特征库状态回调信息
  90908. typedef struct tagNET_CB_FEATUREDB_STATE_INFO
  90909. {
  90910. NET_FEATUREDB_TASK_STATE stuTaskState[32]; // 任务状态
  90911. int nTaskStateNum; // 任务状态个数
  90912. BYTE bReserved[2048]; // 保留字段
  90913. } NET_CB_FEATUREDB_STATE_INFO;
  90914. ///@brief 加载特征库状态回调函数,lAttachHandle为CLIENT_AttachFeatureDBLoadingState 返回的句柄
  90915. typedef int (CALLBACK *fFeatureDBStateCallBack)(LLONG lAttachHandle, NET_CB_FEATUREDB_STATE_INFO *pstFeatureDBStateInfo, LDWORD dwUser);
  90916. ///@brief CLIENT_AttachFeatureDBLoadingState 入参
  90917. typedef struct tagNET_IN_ATTACH_FEATUREDB_STATE
  90918. {
  90919. DWORD dwSize; // 结构体大小
  90920. BYTE bReserved1[4]; // 字节对齐
  90921. fFeatureDBStateCallBack cbFeatureDBState; // 智能分析任务状态订阅函数
  90922. LDWORD dwUser; // 用户数据
  90923. } NET_IN_ATTACH_FEATUREDB_STATE;
  90924. ///@brief CLIENT_AttachFeatureDBLoadingState 出参
  90925. typedef struct tagNET_OUT_ATTACH_FEATUREDB_STATE
  90926. {
  90927. DWORD dwSize; // 结构体大小
  90928. } NET_OUT_ATTACH_FEATUREDB_STATE;
  90929. ///@brief 订阅加载特征库状态
  90930. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachFeatureDBLoadingState(LLONG lLoginID, const NET_IN_ATTACH_FEATUREDB_STATE *pInParam, NET_OUT_ATTACH_FEATUREDB_STATE *pOutParam, const int nWaitTime);
  90931. ///@brief 取消订阅加载特征值状态
  90932. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachFeatureDBLoadingState(LLONG lAttachHandle);
  90933. ///@brief CLIENT_EnableIntelliFrame 入参
  90934. typedef struct tagNET_IN_ENABLE_INTELLIFRAME
  90935. {
  90936. DWORD dwSize; // 结构体大小
  90937. BOOL bEnable; // 智能帧属性使能,true开启,false关闭
  90938. int nTaskID; // 操作任务的taskId
  90939. }NET_IN_ENABLE_INTELLIFRAME;
  90940. ///@brief CLIENT_EnableIntelliFrame 出参
  90941. typedef struct tagNET_OUT_ENABLE_INTELLIFRAME
  90942. {
  90943. DWORD dwSize; // 结构体大小
  90944. }NET_OUT_ENABLE_INTELLIFRAME;
  90945. ///@brief 开启智能帧属性使能
  90946. CLIENT_NET_API BOOL CALL_METHOD CLIENT_EnableIntelliFrame(LLONG lLoginID,const NET_IN_ENABLE_INTELLIFRAME *pInParam, NET_OUT_ENABLE_INTELLIFRAME *pOutParam, const int nWaitTime);
  90947. ///@brief 特征值信息
  90948. typedef struct tagNET_SEARCH_FEATUREDB_FEATURE_DATA_INFO
  90949. {
  90950. char* pszFeatureData; // Base64裸特征数据
  90951. int nFeatureDataLen; // Base64裸特征数据长度
  90952. char szAlgorithmVersion[64]; // 特征值版本号
  90953. char szVendor[64]; // 特征提取算法厂商编码
  90954. BYTE bReserved[512]; // 保留字段
  90955. }NET_SEARCH_FEATUREDB_FEATURE_DATA_INFO;
  90956. ///@brief 特征检索信息
  90957. typedef struct tagNET_SEARCH_FEATUREDB_RETRIEVAL_MESSAGES
  90958. {
  90959. char RequestID[64]; // 请求ID
  90960. NET_SEARCH_FEATUREDB_FEATURE_DATA_INFO stuFeatureDataInfo[32]; // 特征值信息
  90961. int nFeatureDataInfoNum; // 特征值信息个数
  90962. BYTE bReserved[512]; // 保留字段
  90963. }NET_SEARCH_FEATUREDB_RETRIEVAL_MESSAGES;
  90964. ///@brief 搜图方式
  90965. typedef enum tagEM_SEARCH_FEATUREDB_MULTIMERGE_RESULT
  90966. {
  90967. EM_SEARCH_FEATUREDB_MULTIMERGE_RESULT_BATCH, // 批量以图搜图
  90968. EM_SEARCH_FEATUREDB_MULTIMERGE_RESULT_MULTIANGLE, // 多角度图搜
  90969. } EM_SEARCH_FEATUREDB_MULTIMERGE_RESULT;
  90970. ///@brief CLIENT_SearchFeatureDB 入参
  90971. typedef struct tagNET_IN_SEARCH_FEATUREDB
  90972. {
  90973. DWORD dwSize; // 结构体大小
  90974. NET_SEARCH_FEATUREDB_RETRIEVAL_MESSAGES stuRetrievalMessages[32]; // 特征检索信息
  90975. int nRetrievalMessagesNum; // 特征检索信息个数
  90976. int nThreshold; // 阈值,[0,100],默认值是80
  90977. char szRepositoryID[2048][64]; // 特征库ID
  90978. int nRepositoryIDNum; // 特征库ID个数
  90979. BYTE bReserved1[4]; // 字节对齐
  90980. UINT nStartTime; // 特征值对应图片的抓拍起始时间,抓拍库才有效, (不写和值为-1都表示为空)
  90981. UINT nEndTime; // 特征值对应图片的抓拍结束时间,抓拍库才有效, (不写和值为-1都表示为空)
  90982. int nTopN; // 返回结果总数(最大1000),默认500
  90983. int nObjectSubType; // 结构化特征区分子类型 1表示目标 2表示人体 4表示机动车 8表示非机动车,结构化必填,其他选填;
  90984. EM_SEARCH_FEATUREDB_MULTIMERGE_RESULT emMultiMergeResult; // 搜图方式
  90985. }NET_IN_SEARCH_FEATUREDB;
  90986. ///@brief 特征比对结果
  90987. typedef struct tagNET_SEARCH_FEATUREDB_RETRIEVAL_SINGLE_RESULT
  90988. {
  90989. char szFeatureID[64]; // 特征ID
  90990. char szRepositoryID[64]; // 库ID
  90991. int nSimilarity; // 相似度,[0,100]
  90992. int nCapTime; // 特征值对应图片的抓拍时间,抓拍库才有效, (不写和值为-1都表示为空)
  90993. BYTE bReserved[512]; // 保留字段
  90994. }NET_SEARCH_FEATUREDB_RETRIEVAL_SINGLE_RESULT;
  90995. ///@brief 进度信息
  90996. typedef struct tagNET_SEARCH_FEATUREDB_PROCESS_INFO
  90997. {
  90998. char szRepositoryID[64]; // 库ID
  90999. int nTotal; // 已经完成比对特征值个数
  91000. BYTE bReserved[508]; // 保留字段
  91001. }NET_SEARCH_FEATUREDB_PROCESS_INFO;
  91002. ///@brief 特征检索结果
  91003. typedef struct tagNET_SEARCH_FEATUREDB_RESULT
  91004. {
  91005. char szRequestID[64]; // 请求ID
  91006. int nReturnCode; // 0成功,1失败
  91007. int nErrorCode; // 1:算子繁忙;2:特征非法3:特征版本号为空4:库不存在
  91008. char szErrorMessage[64]; // 错误信息字符串
  91009. NET_SEARCH_FEATUREDB_RETRIEVAL_SINGLE_RESULT stuRetrievalSingleResults[1000]; // 特征比对结果集合
  91010. int nRetrievalSingleResultsNum; // 特征比对结果集合个数
  91011. int nProcessInfoNum; // 比对进度个数
  91012. NET_SEARCH_FEATUREDB_PROCESS_INFO stuProcessInfo[32]; // 比对进度
  91013. BYTE bReserved[512]; // 保留字段
  91014. }NET_SEARCH_FEATUREDB_RESULT;
  91015. ///@brief CLIENT_SearchFeatureDB 出参
  91016. typedef struct tagNET_OUT_SEARCH_FEATUREDB
  91017. {
  91018. DWORD dwSize; // 结构体大小
  91019. NET_SEARCH_FEATUREDB_RESULT stuResults[32]; // 查询输出参数
  91020. int nResultsNum; // 查询输出参数个数
  91021. }NET_OUT_SEARCH_FEATUREDB;
  91022. ///@brief 特征库检索
  91023. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SearchFeatureDB(LLONG lLoginID,const NET_IN_SEARCH_FEATUREDB *pInParam, NET_OUT_SEARCH_FEATUREDB *pOutParam, const int nWaitTime);
  91024. ///@brief CLIENT_GetDevCaps NET_ANALYSE_TASK_MANAGER_CAPS 入参
  91025. typedef struct tagNET_IN_ANALYSE_TASK_MANAGER_CAPS_INFO
  91026. {
  91027. DWORD dwSize; // 结构体大小
  91028. }NET_IN_ANALYSE_TASK_MANAGER_CAPS_INFO;
  91029. ///@brief 能力支持的智能分析规则信息
  91030. typedef struct tagNET_ANALYSE_RULE_CAPS
  91031. {
  91032. EM_SCENE_CLASS_TYPE emClassType; // 分析大类类型
  91033. int nRuleTypeNum; // 规则类型个数
  91034. DWORD dwRuleTypes[32]; // 规则类型, 详见dhnetsdk.h中"智能分析事件类型"
  91035. // EVENT_IVS_FACEANALYSIS(目标分析)
  91036. // EVENT_IVS_NONMOTORDETECT(非机动车)
  91037. // EVENT_IVS_VEHICLEDETECT(机动车)
  91038. // EVENT_IVS_HUMANTRAIT(人体)
  91039. // EVENT_IVS_XRAY_DETECT_BYOBJECT(X光按物体检测)
  91040. // EVENT_IVS_WORKCLOTHES_DETECT(工装检测)
  91041. // EVENT_IVS_WORKSTATDETECTION(作业统计)
  91042. // EVENT_IVS_CROSSLINEDETECTION(警戒线)
  91043. // EVENT_IVS_CROSSREGIONDETECTION(警戒区)
  91044. // EVENT_IVS_FEATURE_ABSTRACT(特征提取)
  91045. // EVENT_IVS_ELECTRIC_GLOVE_DETECT(电力检测手套检测事件)
  91046. // EVENT_IVS_ELECTRIC_LADDER_DETECT(电力检测梯子检测事件)
  91047. // EVENT_IVS_ELECTRIC_CURTAIN_DETECT(电力检测布幔检测事件)
  91048. // EVENT_IVS_ELECTRIC_FENCE_DETECT(电力检测围栏检测事件)
  91049. // EVENT_IVS_ELECTRIC_SIGNBOARD_DETECT(电力检测标识牌检测事件)
  91050. // EVENT_IVS_ELECTRIC_BELT_DETECT(电力检测安全带检测事件)
  91051. // EVENT_IVS_BANNER_DETECTION(拉横幅检测事件)
  91052. // EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION(智慧厨房衣着检测事件)
  91053. // EVENT_IVS_WATER_STAGE_MONITOR(水位检测事件)
  91054. // EVENT_IVS_FLOATINGOBJECT_DETECTION(漂浮物检测事件)
  91055. // EVENT_IVS_RIOTERDETECTION (人群聚集)
  91056. // EVENT_IVS_LEFTDETECTION (物品遗留事件)
  91057. // EVENT_IVS_PARKINGDETECTION (非法停车事件)
  91058. // EVENT_IVS_WANDERDETECTION( 徘徊事件)
  91059. // EVENT_IVS_VIDEOABNORMALDETECTION (视频异常)
  91060. // EVENT_IVSS_FACEATTRIBUTE(目标属性检测)
  91061. // EVENT_IVS_SILICON_FIREPUTTER_DETECTION(刺火推杆检测)
  91062. BYTE byReserved[256]; // 保留字节
  91063. } NET_ANALYSE_RULE_CAPS;
  91064. ///@brief 图片流协议类型
  91065. typedef enum tagEM_PICTURE_PROTOCOL_TYPE
  91066. {
  91067. EM_PICTURE_PROTOCOL_UNKNOWN, // 未知
  91068. EM_PICTURE_PROTOCOL_RABBITMQ, // RabbitMQ
  91069. }EM_PICTURE_PROTOCOL_TYPE;
  91070. ///@brief CLIENT_GetDevCaps NET_ANALYSE_TASK_MANAGER_CAPS 出参
  91071. typedef struct tagNET_OUT_ANALYSE_TASK_MANAGER_CAPS_INFO
  91072. {
  91073. DWORD dwSize; // 结构体大小
  91074. int nSourceTypeNum; // 数据源类型个数
  91075. EM_DATA_SOURCE_TYPE emSourceTypes[32]; // 数据源类型
  91076. EM_STREAM_PROTOCOL_TYPE emStreamProtocolTypes[32]; // 视频流协议类型, 当emSourceTypes中包括EM_DATA_SOURCE_REMOTE_REALTIME_STREAM时候有效
  91077. int nStreamProtocolTypeNum; // 视频流协议类型个数
  91078. int nRuleNum; // 分析规则信息个数
  91079. NET_ANALYSE_RULE_CAPS stuRuleInfo[64]; // 分析规则信息
  91080. NET_EM_VIDEO_COMPRESSION emCompressionTypes[64]; // 视频压缩格式
  91081. int nCompressionTypeNum; // 视频压缩格式个数
  91082. int nPictureProtocolTypesNum; // 图片流协议类型个数
  91083. EM_PICTURE_PROTOCOL_TYPE emPictureProtocolTypes[32]; // 图片流协议类型, 当emSourceTypes中包括EM_DATA_SOURCE_PUSH_PICFILE时候有效
  91084. }NET_OUT_ANALYSE_TASK_MANAGER_CAPS_INFO;
  91085. /////////////////////////////智能分析服务接口 结束/////////////////////////////////
  91086. ///@brief CLIENT_GetDevCaps NET_PERIPHERAL_CHIP_CAPS 入参
  91087. typedef struct tagNET_IN_PERIPHERAL_CHIP_CAPS
  91088. {
  91089. DWORD dwSize; // 结构体大小
  91090. }NET_IN_PERIPHERAL_CHIP_CAPS;
  91091. ///@brief 支持的从片类型
  91092. typedef enum tagEM_PERIPHERAL_CHIP_TYPE
  91093. {
  91094. EM_PERIPHERAL_CHIP_TYPE_UNKNOWN, // 未知
  91095. EM_PERIPHERAL_CHIP_TYPE_MOVIDIUS, // MOVIDIUS
  91096. EM_PERIPHERAL_CHIP_TYPE_TX1, // TX1
  91097. EM_PERIPHERAL_CHIP_TYPE_AI1, // AI1
  91098. } EM_PERIPHERAL_CHIP_TYPE;
  91099. ///@brief 支持的智能卡型号
  91100. typedef enum tagEM_PERIPHERAL_MODEL_TYPE
  91101. {
  91102. EM_PERIPHERAL_MODEL_TYPE_UNKNOWN, // 未知
  91103. } EM_PERIPHERAL_MODEL_TYPE;
  91104. ///@brief 设备从片能力
  91105. typedef struct tagNET_PERIPHERAL_CHIP_CAPS_INFO
  91106. {
  91107. EM_PERIPHERAL_CHIP_TYPE emType; // 支持的从片类型
  91108. UINT nCount; // 从片数量
  91109. EM_PERIPHERAL_MODEL_TYPE emModel; // 支持的智能卡型号
  91110. char szChipType[32]; // 芯片类型
  91111. BYTE byReserved[256]; // 预留字段
  91112. } NET_PERIPHERAL_CHIP_CAPS_INFO;
  91113. ///@brief CLIENT_GetDevCaps NET_PERIPHERAL_CHIP_CAPS 出参
  91114. typedef struct tagNET_OUT_PERIPHERAL_CHIP_CAPS
  91115. {
  91116. DWORD dwSize; // 结构体大小
  91117. int nCapsNum; // 设备从片能力个数
  91118. NET_PERIPHERAL_CHIP_CAPS_INFO stuCaps[128]; // 设备从片能力列表
  91119. }NET_OUT_PERIPHERAL_CHIP_CAPS;
  91120. ///@brief CLIENT_GetDevCaps NET_CITIZEN_IDENTITY_MANAGER_CAPS 入参
  91121. typedef struct tagNET_IN_CITIZEN_IDENTITY_MANAGER_CAPS
  91122. {
  91123. DWORD dwSize; // 结构体大小
  91124. }NET_IN_CITIZEN_IDENTITY_MANAGER_CAPS;
  91125. ///@brief CLIENT_GetDevCaps NET_CITIZEN_IDENTITY_MANAGER_CAPS 出参
  91126. typedef struct tagNET_OUT_CITIZEN_IDENTITY_MANAGER_CAPS
  91127. {
  91128. DWORD dwSize; // 结构体大小
  91129. BOOL bSupportSelfHelpCollect; // 是否支持自动采集
  91130. BOOL bSupportJointCollect; // 是否支持协同采集
  91131. BOOL bSupportOfflineExtract; // 是否支持提取离线数据
  91132. BOOL bSupportVisitor; // 是否支持访客系统
  91133. int nMaxInsertNum; // 最大插入数量
  91134. }NET_OUT_CITIZEN_IDENTITY_MANAGER_CAPS;
  91135. ///@brief CLIENT_GetDevCaps NET_AROUD_4G_PROBE_SEARCH_CAPS 入参
  91136. typedef struct tagNET_IN_AROUD_4G_PROBE_SEARCH_CAPS
  91137. {
  91138. DWORD dwSize; // 结构体大小
  91139. }NET_IN_AROUD_4G_PROBE_SEARCH_CAPS;
  91140. ///@brief CLIENT_GetDevCaps NET_AROUD_4G_PROBE_SEARCH_CAPS 出参
  91141. typedef struct tagNET_OUT_AROUD_4G_PROBE_SEARCH_CAPS
  91142. {
  91143. DWORD dwSize; // 结构体大小
  91144. BOOL bSupport; // 当前是否具备4G探针采集功能
  91145. BOOL bSupportOptimization; // 是否支持上报优化
  91146. int nDeduplicatePeriod[2]; // 采集信息去重周期, 单位秒; 元素0-最小值 元素1-最大值
  91147. }NET_OUT_AROUD_4G_PROBE_SEARCH_CAPS;
  91148. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_LIGHTING_MIX_SOLUTION_CAPS 入参
  91149. typedef struct tagNET_IN_LIGHTING_MIX_SOLUTION_CAPS
  91150. {
  91151. DWORD dwSize; // 结构体大小
  91152. int nChannel; // 通道号
  91153. }NET_IN_LIGHTING_MIX_SOLUTION_CAPS;
  91154. ///@brief CLIENT_GetDevCaps NET_VIDEOIN_LIGHTING_MIX_SOLUTION_CAPS 出参
  91155. typedef struct tagNET_OUT_LIGHTING_MIX_SOLUTION_CAPS
  91156. {
  91157. DWORD dwSize; // 该结构体大小
  91158. BOOL bSupport; // 是否支持柔光双色能力
  91159. int nRetModeNum; // emMode 有效个数
  91160. EM_LIGHTING_SCHEME_MODE emMode[8]; // 补光灯方案
  91161. int nAIMixLightSwitchDelayRange[2]; // 智能补光方案下生效 表示红外白光切换延时范围,防止来回切换影响寿命和体验,单位:秒 范围[0,300]
  91162. }NET_OUT_LIGHTING_MIX_SOLUTION_CAPS;
  91163. ///@brief CLIENT_GetDevCaps NET_IXRAY_PACKAGE_MANAGER_CAPS 入参
  91164. typedef struct tagNET_IN_IXRAY_PACKAGE_MANAGER_CAPS
  91165. {
  91166. DWORD dwSize; // 结构体大小
  91167. }NET_IN_IXRAY_PACKAGE_MANAGER_CAPS;
  91168. ///@brief CLIENT_GetDevCaps NET_IXRAY_PACKAGE_MANAGER_CAPS 出参
  91169. typedef struct tagNET_OUT_IXRAY_PACKAGE_MANAGER_CAPS
  91170. {
  91171. DWORD dwSize; // 该结构体大小
  91172. int nObjectTypes; // 包裹违禁物类型个数
  91173. EM_INSIDE_OBJECT_TYPE emObjectType[128]; // 包裹违禁物类型列表
  91174. }NET_OUT_IXRAY_PACKAGE_MANAGER_CAPS;
  91175. ///@brief 支持的从片类型
  91176. typedef enum tagEM_FLOW_STAT_CAPS_TYPE
  91177. {
  91178. EM_FLOW_STAT_CAPS_TYPE_UNKNOWN, // 未知
  91179. EM_FLOW_STAT_CAPS_TYPE_CAPSINTELLIPARKING, // 智能停车场景OSD能力,对应结构体 NET_CAPS_CAPSINTELLIPARKING
  91180. } EM_FLOW_STAT_CAPS_TYPE;
  91181. ///@brief 智能停车场景OSD能力
  91182. typedef struct tagNET_CAPS_CAPSINTELLIPARKING
  91183. {
  91184. UINT nSupport; // 支持智能停车场景统计掩码
  91185. // bit0-支持总车位数统计
  91186. // bit1-支持余位数统计
  91187. }NET_CAPS_CAPSINTELLIPARKING;
  91188. ///@brief CLIENT_GetDevCaps NET_FLOW_STAT_CAPS 入参
  91189. typedef struct tagNET_IN_FLOW_STAT_CAPS
  91190. {
  91191. DWORD dwSize; // 结构体大小
  91192. int nChannel; // 通道号
  91193. EM_FLOW_STAT_CAPS_TYPE emClass; // 能力类型
  91194. }NET_IN_FLOW_STAT_CAPS;
  91195. ///@brief CLIENT_GetDevCaps NET_FLOW_STAT_CAPS 出参
  91196. typedef struct tagNET_OUT_FLOW_STAT_CAPS
  91197. {
  91198. DWORD dwSize; // 结构体大小
  91199. void* pCaps; // 能力结构体,根据NET_IN_FLOW_STAT_CAPS 中emClass 类型创建对应结构体,用户创建释放
  91200. }NET_OUT_FLOW_STAT_CAPS;
  91201. ///@brief CLIENT_GetDevCaps NET_FIRE_CONTROL_MANAGER_CAPS 入参
  91202. typedef struct tagNET_IN_FIRE_CONTROL_MANAGER_CAPS
  91203. {
  91204. DWORD dwSize; // 结构体大小
  91205. char szSN[64]; // 主机序列号
  91206. }NET_IN_FIRE_CONTROL_MANAGER_CAPS;
  91207. ///@brief 支持下发的配置集合
  91208. typedef struct tagNET_CAPS_CONFIGDISTRIBUTE
  91209. {
  91210. BOOL bAnalogAlarm; // 是否支持下发模拟量配置
  91211. BOOL bSmokeCfg; // 是否支持烟雾配置下发
  91212. BOOL bTempCfg; // 是否支持温度配置下发
  91213. BOOL bHumidityCfg; // 是否支持湿度配置下发
  91214. char szReserved[1012]; // 保留字节
  91215. }NET_CAPS_CONFIGDISTRIBUTE;
  91216. ///@brief CLIENT_GetDevCaps NET_FIRE_CONTROL_MANAGER_CAPS 出参
  91217. typedef struct tagNET_OUT_FIRE_CONTROL_MANAGER_CAPS
  91218. {
  91219. DWORD dwSize; // 结构体大小
  91220. BOOL bReboot; // 是否支持重启
  91221. NET_CAPS_CONFIGDISTRIBUTE stuConfigDistribute; // 支持下发的配置集合
  91222. BOOL bErasure; // 是否支持消音
  91223. }NET_OUT_FIRE_CONTROL_MANAGER_CAPS;
  91224. ///@brief CLIENT_FlowStatClearOSD 入参
  91225. typedef struct tagNET_IN_FLOW_STAT_CLEAROSD
  91226. {
  91227. DWORD dwSize; // 结构体大小
  91228. int nChannel; // 通道号
  91229. EM_FLOW_STAT_CAPS_TYPE emClass; // OSD操作所属大类
  91230. }NET_IN_FLOW_STAT_CLEAROSD;
  91231. ///@brief CLIENT_FlowStatClearOSD 出参
  91232. typedef struct tagNET_OUT_FLOW_STAT_CLEAROSD
  91233. {
  91234. DWORD dwSize; // 结构体大小
  91235. }NET_OUT_FLOW_STAT_CLEAROSD;
  91236. ///@brief 清空osd协议
  91237. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FlowStatClearOSD(LLONG lLoginID,const NET_IN_FLOW_STAT_CLEAROSD *pInParam, NET_OUT_FLOW_STAT_CLEAROSD *pOutParam, const int nWaitTime);
  91238. ///@brief CLIENT_GetLensInfo 接口输入参数
  91239. typedef struct tagNET_IN_GETLENSINFO
  91240. {
  91241. DWORD dwSize; // 结构体大小
  91242. UINT nChannel; // 视频通道号
  91243. } NET_IN_GETLENSINFO;
  91244. ///@brief 镜头类型
  91245. typedef enum tagEM_LENS_TYPE
  91246. {
  91247. EM_LENS_TYPE_UNKNOWN = -1, // 未知
  91248. EM_LENS_TYPE_FIXED_FOCUS, // 定焦
  91249. EM_LENS_TYPE_INTERNEL_ZOOM, // 内置变焦镜头
  91250. EM_LENS_TYPE_MANUAL_ZOOM, // 手动变焦镜头
  91251. EM_LENS_TYPE_EXTERNEL_ZOOM, // 外置变焦镜头
  91252. } EM_LENS_TYPE;
  91253. ///@brief CLIENT_GetLensInfo 接口输出参数
  91254. typedef struct tagNET_OUT_GETLENSINFO
  91255. {
  91256. DWORD dwSize; // 结构体大小
  91257. EM_LENS_TYPE emLensType; // 镜头类型
  91258. } NET_OUT_GETLENSINFO;
  91259. ///@brief 获取镜头信息, pInParam 和 pOutParam 资源由用户申请和释放
  91260. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetLensInfo(LLONG lLoginID, NET_IN_GETLENSINFO *pInParam, NET_OUT_GETLENSINFO *pOutParam, int nWaitTime);
  91261. ///@brief 镜头行为
  91262. typedef enum tagEM_LENS_ACTION
  91263. {
  91264. EM_LENS_ACTION_UNKNOWN = -1, // 未知
  91265. EM_LENS_ACTION_SINGLE_STEP, // 单步(单击+-)
  91266. EM_LENS_ACTION_START_CONTINUOUS_ADJUSTMENT, // 开始持续调整(长按+-)
  91267. EM_LENS_ACTION_END_CONTINUOUS_ADJUSTMENT, // 结束持续调整(结束长按+-)
  91268. } EM_LENS_ACTION;
  91269. ///@brief 命令信息
  91270. typedef struct tagNET_CMD_INFO
  91271. {
  91272. int nZoom; // 变倍步长, 负数表示减量方向, focus非0时, zoom必须为0
  91273. int nFocus; // 聚焦步长, 负数表示减量方向, zoom非0时, focus必须为0
  91274. EM_LENS_ACTION emLensAction; // 镜头行为
  91275. BYTE byReserved[1024]; // 保留字节
  91276. } NET_CMD_INFO;
  91277. ///@brief CLIENT_AdjustRelativeLensFocus 接口输入参数
  91278. typedef struct tagNET_IN_ADJUSTRELATIVELENSFOCUS
  91279. {
  91280. DWORD dwSize; // 结构体大小
  91281. UINT nChannel; // 视频通道号
  91282. NET_CMD_INFO stuCmdInfo; // 命令信息
  91283. } NET_IN_ADJUSTRELATIVELENSFOCUS;
  91284. ///@brief CLIENT_AdjustRelativeLensFocus 接口输出参数
  91285. typedef struct tagNET_OUT_ADJUSTRELATIVELENSFOCUS
  91286. {
  91287. DWORD dwSize; // 结构体大小
  91288. } NET_OUT_ADJUSTRELATIVELENSFOCUS;
  91289. ///@brief 相对焦距调节, pInParam 和 pOutParam 资源由用户申请和释放
  91290. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AdjustRelativeLensFocus(LLONG lLoginID, NET_IN_ADJUSTRELATIVELENSFOCUS *pInParam, NET_OUT_ADJUSTRELATIVELENSFOCUS *pOutParam, int nWaitTime);
  91291. ///@brief 分类检测结果人数统计信息
  91292. typedef struct tagNET_CLASSIFY_RESULT_STATISTICS_INFO
  91293. {
  91294. UINT nObjectType; // 分类检结果物品类型, 0:未分类, 1:手机类, 2:刀枪工具类, 3:易拉罐类, 4:马口铁类
  91295. UINT nInCount; // 进入方向包含该报警物品类型的人数
  91296. UINT nOutCount; // 离开方向包含该报警物品类型的人数
  91297. char szResvered[244]; // 保留字节
  91298. }NET_CLASSIFY_RESULT_STATISTICS_INFO;
  91299. ///@brief 安全门报警统计信息
  91300. typedef struct tagNET_SECURITYGATE_ALARM_STATISTICS_INFO
  91301. {
  91302. char szUUID[36]; // UUID
  91303. UINT nStatisticsInfoID; // 统计信息ID
  91304. NET_TIME_EX stuBeginTime; // 开始时间
  91305. NET_TIME_EX stuEndTime; // 结束时间
  91306. UINT nPassIn; // 进入通过人数
  91307. UINT nAlarmIn; // 进入报警人数
  91308. UINT nPassOut; // 离开通过人数
  91309. UINT nAlarmOut; // 离开报警人数
  91310. UINT nTempNormalCount; // 体温正常人数
  91311. UINT nTempAlarmCount; // 体温异常人数
  91312. UINT nClassifyResultStatisticsCount; // 分类检测结果人数统计信息个数
  91313. NET_CLASSIFY_RESULT_STATISTICS_INFO stuClassifyResultStatistics[32]; // 分类检测结果人数统计信息
  91314. BYTE byReserved[1024]; // 保留字段
  91315. }NET_SECURITYGATE_ALARM_STATISTICS_INFO;
  91316. ///@brief 安全门报警订阅回调函数
  91317. typedef void (CALLBACK *fSecurityGateAttachAlarmStatistics)(LLONG lAttachHandle, NET_SECURITYGATE_ALARM_STATISTICS_INFO* pInfo, LDWORD dwUser);
  91318. ///@brief CLIENT_SecurityGateAttachAlarmStatistics 输入结构体
  91319. typedef struct tagNET_IN_SECURITYGATE_ATTACH_ALARM_STATISTICS
  91320. {
  91321. DWORD dwSize; // 赋值为结构体大小
  91322. char szUUID[36]; // UUID
  91323. fSecurityGateAttachAlarmStatistics cbNotify; // 回调函数
  91324. LDWORD dwUser; // 用户信息
  91325. }NET_IN_SECURITYGATE_ATTACH_ALARM_STATISTICS;
  91326. ///@brief CLIENT_SecurityGateAttachAlarmStatistics 输出结构体
  91327. typedef struct tagNET_OUT_SECURITYGATE_ATTACH_ALARM_STATISTICS
  91328. {
  91329. DWORD dwSize; // 赋值为结构体大小
  91330. }NET_OUT_SECURITYGATE_ATTACH_ALARM_STATISTICS;
  91331. ///@brief 订阅安全门报警统计信息
  91332. CLIENT_NET_API LLONG CALL_METHOD CLIENT_SecurityGateAttachAlarmStatistics(LLONG lLoginID, const NET_IN_SECURITYGATE_ATTACH_ALARM_STATISTICS* pInParam, NET_OUT_SECURITYGATE_ATTACH_ALARM_STATISTICS* pOutParam, int nWaitTime);
  91333. ///@brief 取消订阅安全门报警统计信息
  91334. // lAttachHandle 为 CLIENT_SecurityGateAttachAlarmStatistics 返回值
  91335. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGateDetachAlarmStatistics(LLONG lAttachHandle);
  91336. ///@brief 相机的信息
  91337. typedef struct tagNET_CAMERA_CFG_INFO
  91338. {
  91339. char szIP[32]; // IP地址
  91340. UINT nPort; // 端口
  91341. char szLoginName[32]; // 登陆用户名
  91342. char szLoginPwd[32]; // 登陆密码, 设置的时候不填表示不修改密码
  91343. BOOL bUsePwdNew; // 是否使用szLoginPwdNew字段修改密码
  91344. char szLoginPwdNew[64]; // 登陆密码,设置的时候不填表示不修改密码
  91345. BYTE byReserved[956]; // 保留字节
  91346. }NET_CAMERA_CFG_INFO;
  91347. ///@brief CLIENT_SetCameraCfg 接口输入参数
  91348. typedef struct tagNET_IN_SET_CAMERA_CFG
  91349. {
  91350. DWORD dwSize; // 结构体大小
  91351. int nCameraNo; // 相机编号
  91352. NET_CAMERA_CFG_INFO stuCameraInfo; // 相机的信息
  91353. } NET_IN_SET_CAMERA_CFG;
  91354. ///@brief CLIENT_SetCameraCfg 接口输出参数
  91355. typedef struct tagNET_OUT_SET_CAMERA_CFG
  91356. {
  91357. DWORD dwSize; // 结构体大小
  91358. } NET_OUT_SET_CAMERA_CFG;
  91359. ///@brief CLIENT_GetCameraCfg 接口输入参数
  91360. typedef struct tagNET_IN_GET_CAMERA_CFG
  91361. {
  91362. DWORD dwSize; // 结构体大小
  91363. int nCameraNo; // 相机编号
  91364. } NET_IN_GET_CAMERA_CFG;
  91365. ///@brief CLIENT_GetCameraCfg 接口输出参数
  91366. typedef struct tagNET_OUT_GET_CAMERA_CFG
  91367. {
  91368. DWORD dwSize; // 结构体大小
  91369. int nCameraNo; // 相机编号
  91370. NET_CAMERA_CFG_INFO stuCameraInfo; // 相机的信息
  91371. } NET_OUT_GET_CAMERA_CFG;
  91372. ///@brief 进口方向
  91373. typedef enum tagEM_ENTRY_DIRECTION
  91374. {
  91375. EM_ENTRY_UNKNOWN, // 未知
  91376. EM_ENTRY_NORTH_TO_SOUTH, // 北向南
  91377. EM_ENTRY_EASTNORTH_TO_WESTSOUTH, // 东北向西南
  91378. EM_ENTRY_EAST_TO_WEST, // 东向西
  91379. EM_ENTRY_EASTSOUTH_TO_WESTNORTH, // 东南向西北
  91380. EM_ENTRY_SOUTH_TO_NORTH, // 南向北
  91381. EM_ENTRY_WESTSOUTH_TO_EASTSOUTH, // 西南向东北
  91382. EM_ENTRY_WEST_TO_EAST, // 西向东
  91383. EM_ENTRY_WESTNORTH_TO_EASTSOUTH, // 西北向东南
  91384. } EM_ENTRY_DIRECTION;
  91385. ///@brief 进口类型
  91386. typedef enum tagEM_ENTRY_TYPE
  91387. {
  91388. EM_ENTRY_TYPE_UNKNOWN, // 未知
  91389. EM_ENTRY_TYPE_TURN_LEFT, // 左转
  91390. EM_ENTRY_TYPE_STRAIGHT, // 直行
  91391. EM_ENTRY_TYPE_TRUN_RIGHT, // 右转
  91392. EM_ENTRY_TYPE_TURN_ROUND, // 掉头
  91393. }EM_ENTRY_TYPE;
  91394. ///@brief 通道信息
  91395. typedef struct tagNET_CHANNEL_CFG_INFO
  91396. {
  91397. int nCameraNo; // 上报的相机编号(废弃,用pCameraNo)
  91398. EM_ENTRY_DIRECTION emEntryDirection; // 进口方向
  91399. EM_ENTRY_TYPE emEntryType[16]; // 进口类型
  91400. int nRetEntryTypeNum; // 进口类型个数
  91401. int nLaneNo; // 车道号
  91402. int* pCameraNo; // 上报的相机编号,用户分配内存
  91403. int nCameraCount; // pCameraNo 个数
  91404. int nCameraCountRet; // 返回的 pCameraNo 个数,获取时有效,设置时无效
  91405. BYTE byReserved[940]; // 保留字节
  91406. }NET_CHANNEL_CFG_INFO;
  91407. ///@brief CLIENT_SetChannelCfg 接口输入参数
  91408. typedef struct tagNET_IN_SET_CHANNEL_CFG
  91409. {
  91410. DWORD dwSize; // 结构体大小
  91411. int nChannelNo; // 检测通道
  91412. NET_CHANNEL_CFG_INFO stuChannelInfo; // 通道信息
  91413. } NET_IN_SET_CHANNEL_CFG;
  91414. ///@brief CLIENT_SetChannelCfg 接口输出参数
  91415. typedef struct tagNET_OUT_SET_CHANNEL_CFG
  91416. {
  91417. DWORD dwSize; // 结构体大小
  91418. } NET_OUT_SET_CHANNEL_CFG;
  91419. ///@brief CLIENT_GetChannelCfg 接口输入参数
  91420. typedef struct tagNET_IN_GET_CHANNEL_CFG
  91421. {
  91422. DWORD dwSize; // 结构体大小
  91423. int nChannelNo; // 检测通道
  91424. } NET_IN_GET_CHANNEL_CFG;
  91425. ///@brief CLIENT_GetChannelCfg 接口输出参数
  91426. typedef struct tagNET_OUT_GET_CHANNEL_CFG
  91427. {
  91428. DWORD dwSize; // 结构体大小
  91429. int nChannelNo; // 检测通道
  91430. NET_CHANNEL_CFG_INFO stuChannelInfo; // 通道信息
  91431. } NET_OUT_GET_CHANNEL_CFG;
  91432. ///@brief 红绿灯检测类型
  91433. typedef enum tagEM_TRAFFIC_LIGHT_DETECT_MODE
  91434. {
  91435. EM_TRAFFIC_DETECT_UNKNOWN = -1, // 未知
  91436. EM_TRAFFIC_DETECT_RED, // 红灯模式
  91437. EM_TRAFFIC_DETECT_GREEN, // 绿灯模式
  91438. }EM_TRAFFIC_LIGHT_DETECT_MODE;
  91439. ///@brief CLIENT_SetDetectMode 接口输入参数
  91440. typedef struct tagNET_IN_SET_DETECT_MODE
  91441. {
  91442. DWORD dwSize; // 结构体大小
  91443. int nDetectTimeout; // 异常超时时间
  91444. EM_TRAFFIC_LIGHT_DETECT_MODE emDetectionMode; // 模式
  91445. } NET_IN_SET_DETECT_MODE;
  91446. ///@brief CLIENT_SetDetectMode 接口输出参数
  91447. typedef struct tagNET_OUT_SET_DETECT_MODE
  91448. {
  91449. DWORD dwSize; // 结构体大小
  91450. } NET_OUT_SET_DETECT_MODE;
  91451. ///@brief CLIENT_GetDetectMode 接口输入参数
  91452. typedef struct tagNET_IN_GET_DETECT_MODE
  91453. {
  91454. DWORD dwSize; // 结构体大小
  91455. } NET_IN_GET_DETECT_MODE;
  91456. ///@brief CLIENT_GetDetectMode 接口输出参数
  91457. typedef struct tagNET_OUT_GET_DETECT_MODE
  91458. {
  91459. DWORD dwSize; // 结构体大小
  91460. int nDetectTimeout; // 异常超时时间
  91461. EM_TRAFFIC_LIGHT_DETECT_MODE emDetectionMode; // 模式
  91462. } NET_OUT_GET_DETECT_MODE;
  91463. ///@brief 相机连接状态
  91464. typedef enum tagEM_CAMERA_CONNECT_STATE
  91465. {
  91466. EM_CAMERA_CONNECT_STATE_UNKNOWN = -1, // 未知
  91467. EM_CAMERA_CONNECT_STATE_UNCONNECT, // 未连接
  91468. EM_CAMERA_CONNECT_STATE_CONNECTED, // 已连接
  91469. }EM_CAMERA_CONNECT_STATE;
  91470. ///@brief 红绿灯状态
  91471. typedef enum tagEM_TRAFFIC_LIGHT_DETECT_STATE
  91472. {
  91473. EM_TRAFFIC_DETECT_STATE_UNKNOWN = -1, // 未知
  91474. EM_TRAFFIC_DETECT_STATE_RED, // 红灯
  91475. EM_TRAFFIC_DETECT_STATE_GREEN, // 绿灯
  91476. }EM_TRAFFIC_LIGHT_DETECT_STATE;
  91477. ///@brief 相机对应的红绿灯通道状态
  91478. typedef struct tagNET_LIGHTINFO_CFG
  91479. {
  91480. int nLightNo; // 红绿灯通道
  91481. EM_TRAFFIC_LIGHT_DETECT_STATE emLightState; // 红绿灯状态
  91482. BYTE byReserved[504]; // 预留
  91483. }NET_LIGHTINFO_CFG;
  91484. ///@brief CLIENT_GetCameraInfo 接口输入参数
  91485. typedef struct tagNET_IN_GET_CAMERA_INFO
  91486. {
  91487. DWORD dwSize; // 结构体大小
  91488. int nCameraNo; // 相机编号
  91489. }NET_IN_GET_CAMERA_INFO;
  91490. ///@brief CLIENT_GetCameraInfo 接口输出参数
  91491. typedef struct tagNET_OUT_GET_CAMERA_INFO
  91492. {
  91493. DWORD dwSize; // 结构体大小
  91494. int nCameraNo; // 相机编号
  91495. EM_CAMERA_CONNECT_STATE emConnectState; // 相机连接状态
  91496. int nRetLightInfoNum; // 返回的红绿灯通道数
  91497. NET_LIGHTINFO_CFG stuLightInfos[16]; // 相机对应的红绿灯通道状态
  91498. }NET_OUT_GET_CAMERA_INFO;
  91499. ///@brief 交通通道信息
  91500. typedef struct tagNET_TRAFFICLIGHT_CHANNEL_INFO
  91501. {
  91502. int nChannel; // 检测通道
  91503. EM_ENTRY_DIRECTION emEntryDirection; // 进口方向
  91504. EM_ENTRY_TYPE emEntryType[32]; // 进口类型
  91505. int nRetEntryTypeNum; // 进口类型个数
  91506. EM_TRAFFIC_LIGHT_DETECT_STATE emLightState; // 红绿灯状态
  91507. BYTE byReserved[368]; // 保留字节
  91508. }NET_TRAFFICLIGHT_CHANNEL_INFO;
  91509. ///@brief 交通信号灯信息
  91510. typedef struct tagNET_TRAFFICLIGHT_INFO
  91511. {
  91512. NET_TIME stuUTC; // UTC时间, 发生红绿灯切换时的时间, 本地时区
  91513. int nRetChannelNum; // stuChannels 有效个数
  91514. NET_TRAFFICLIGHT_CHANNEL_INFO stuChannels[32];// 通道信息
  91515. int nRetLightChangedNum; // nLightChangedChannels 有效个数
  91516. int nLightChangedChannels[32];// 发生红绿灯变换的通道
  91517. BYTE byReserved[512]; // 保留字节
  91518. }NET_TRAFFICLIGHT_INFO;
  91519. ///@brief 交通信号灯回调函数
  91520. // lLoginID - 登录句柄 lAttchHandle - 订阅句柄
  91521. typedef void (CALLBACK *fTrafficLightState)(LLONG lLoginID, LLONG lAttchHandle, NET_TRAFFICLIGHT_INFO *pInfo, LDWORD dwUser);
  91522. ///@brief CLIENT_AttachTrafficLightState 接口入参
  91523. typedef struct tagNET_IN_ATTACH_TRAFFICLIGHT_INFO
  91524. {
  91525. DWORD dwSize; // 结构体大小
  91526. fTrafficLightState cbState; // 回调函数
  91527. LDWORD dwUser; // 用户信息
  91528. }NET_IN_ATTACH_TRAFFICLIGHT_INFO;
  91529. ///@brief CLIENT_AttachTrafficLightState 接口出参
  91530. typedef struct tagNET_OUT_ATTACH_TRAFFICLIGHT_INFO
  91531. {
  91532. DWORD dwSize; // 结构体大小
  91533. }NET_OUT_ATTACH_TRAFFICLIGHT_INFO;
  91534. ///@brief 设置相机参数, pInParam 和 pOutParam 资源由用户申请和释放
  91535. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetCameraCfg(LLONG lLoginID, NET_IN_SET_CAMERA_CFG *pInParam, NET_OUT_SET_CAMERA_CFG *pOutParam, int nWaitTime);
  91536. ///@brief 获取相机参数, pInParam 和 pOutParam 资源由用户申请和释放
  91537. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCameraCfg(LLONG lLoginID, NET_IN_GET_CAMERA_CFG *pInParam, NET_OUT_GET_CAMERA_CFG *pOutParam, int nWaitTime);
  91538. ///@brief 设置通道参数, pInParam 和 pOutParam 资源由用户申请和释放
  91539. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetChannelCfg(LLONG lLoginID, NET_IN_SET_CHANNEL_CFG *pInParam, NET_OUT_SET_CHANNEL_CFG *pOutParam, int nWaitTime);
  91540. ///@brief 获取通道参数, pInParam 和 pOutParam 资源由用户申请和释放
  91541. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetChannelCfg(LLONG lLoginID, NET_IN_GET_CHANNEL_CFG *pInParam, NET_OUT_GET_CHANNEL_CFG *pOutParam, int nWaitTime);
  91542. ///@brief 设置检测模式, pInParam 和 pOutParam 资源由用户申请和释放
  91543. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDetectMode(LLONG lLoginID, NET_IN_SET_DETECT_MODE *pInParam, NET_OUT_SET_DETECT_MODE *pOutParam, int nWaitTime);
  91544. ///@brief 获取检测模式, pInParam 和 pOutParam 资源由用户申请和释放
  91545. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDetectMode(LLONG lLoginID, NET_IN_GET_DETECT_MODE *pInParam, NET_OUT_GET_DETECT_MODE *pOutParam, int nWaitTime);
  91546. ///@brief 交通灯信号检测-获取相机信息, pInParam 和 pOutParam 资源由用户申请和释放
  91547. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCameraInfo(LLONG lLoginID, NET_IN_GET_CAMERA_INFO *pInParam, NET_OUT_GET_CAMERA_INFO *pOutParam, int nWaitTime);
  91548. ///@brief 订阅交通信号灯状态
  91549. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachTrafficLightState(LLONG lLoginID, NET_IN_ATTACH_TRAFFICLIGHT_INFO *pInParam, NET_OUT_ATTACH_TRAFFICLIGHT_INFO *pOutParam, int nWaitTime);
  91550. ///@brief 退订交通信号灯状态
  91551. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachTrafficLightState(LLONG lAttchHandle);
  91552. ///@brief CLIENT_GetAreaInfo 输入结构体
  91553. typedef struct tagNET_IN_GETAREA_INFO
  91554. {
  91555. DWORD dwSize; // 赋值为结构体大小
  91556. int nChannel; // 通道
  91557. }NET_IN_GETAREA_INFO;
  91558. ///@brief 区域规则类型
  91559. typedef enum tagEM_AREA_RULE_TYPE
  91560. {
  91561. EM_AREA_RULE_UNKNOWN, // 未知
  91562. EM_AREA_RULE_QUEUE_DETECTION, // 队列检测区域
  91563. EM_AREA_RULE_MAN_NUM_DETECTION, // 人数检测区域
  91564. EM_AREA_RULE_NUMBERSTAT, // 客流量统计区域
  91565. EM_AREA_RULE_STEREO_NUMBERSTAT, // 客流量统计区域(双目客流相机使用, 其他相机不使用该字段)
  91566. }EM_AREA_RULE_TYPE;
  91567. ///@brief 区域信息
  91568. typedef struct tagNET_GETAREA_INFO
  91569. {
  91570. unsigned short nAreaId; // 区域ID
  91571. BYTE byReserved1[2]; // 保留字节,用于字节对齐
  91572. EM_AREA_RULE_TYPE emAreaRuleType; // 区域规则类型
  91573. int nPointNum; // 检测区域的点数
  91574. NET_POINT stuDetectRegion[20]; // 检测区域,多边形,多边形中每个顶点的坐标坐标归一化到[0,8191]区间
  91575. char szAreaName[64]; // 区域名称
  91576. BYTE byReserved[1024]; // 保留字节
  91577. }NET_GETAREA_INFO;
  91578. ///@brief CLIENT_GetAreaInfo 输出结构体
  91579. typedef struct tagNET_OUT_GETAREA_INFO
  91580. {
  91581. DWORD dwSize; // 赋值为结构体大小
  91582. int nChannle; // 通道数
  91583. int nAreaCount; // 区域个数
  91584. NET_GETAREA_INFO stuAreaInfo[20]; // 区域信息
  91585. }NET_OUT_GETAREA_INFO;
  91586. ///@brief 获取区域人数统计区域信息
  91587. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAreaInfo(LLONG lLoginID, const NET_IN_GETAREA_INFO* pInParam, NET_OUT_GETAREA_INFO* pOutParam, int nWaitTime);
  91588. ///@brief CLIENT_GetRealTimeVehiclesInfoByRegion 接口输入参数
  91589. typedef struct tagNET_IN_GET_VEHICLES_INFO
  91590. {
  91591. DWORD dwSize; // 结构体大小
  91592. UINT nChannel; // 通道
  91593. int nPointNum; // 多边形点的个数,最少4个点
  91594. NET_POINT stuPoint[32]; // 多边形区域,8192坐标系,即X轴和Y轴的范围都是0到8191
  91595. }NET_IN_GET_VEHICLES_INFO;
  91596. ///@brief 区域内车辆信息
  91597. typedef struct tagNET_VEHICLES_INFO_IN_REGION
  91598. {
  91599. UINT nVehicleQuantity; // 区域内车辆数量
  91600. BYTE byReserved[1024]; // 保留字节
  91601. }NET_VEHICLES_INFO_IN_REGION;
  91602. ///@brief CLIENT_GetRealTimeVehiclesInfoByRegion 接口输出参数
  91603. typedef struct tagNET_OUT_GET_VEHICLES_INFO
  91604. {
  91605. DWORD dwSize; // 结构体大小
  91606. NET_VEHICLES_INFO_IN_REGION stuVehiclesInfo; // 区域内车辆信息
  91607. }NET_OUT_GET_VEHICLES_INFO;
  91608. ///@brief 获取指定视频通道下矩形区域内的车辆统计信息, pInParam 和 pOutParam 资源由用户申请和释放
  91609. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRealTimeVehiclesInfoByRegion(LLONG lLoginID, NET_IN_GET_VEHICLES_INFO *pInParam, NET_OUT_GET_VEHICLES_INFO *pOutParam, int nWaitTime);
  91610. ///@brief 统计区车辆,排队信息
  91611. typedef struct tagNET_VEHICLES_DISTRIBUTION_DATA
  91612. {
  91613. UINT nPtzPresetId; // 预置点
  91614. UINT nRuleId; // 规则ID
  91615. UINT nRuleType; // 规则类型
  91616. UINT nVehiclesNum; // 车辆数量
  91617. UINT nQueueLen; // 排队长度,单位:米
  91618. NET_UINT_POINT stuRegion[32]; // 区域坐标 多边形中每个顶点的坐标坐标归一化到[0,8191]区间
  91619. int nRegionNum; // 区域坐标个数
  91620. UINT nVehiclesLimit; // 区域车辆上限
  91621. char szRuleName[32]; // 规则名称
  91622. }NET_VEHICLES_DISTRIBUTION_DATA;
  91623. ///@brief CLIENT_AttachVehiclesDistributionData回调信息
  91624. typedef struct tagNET_CB_VEHICLES_DISTRIBUTION_DATA
  91625. {
  91626. UINT nSID; // 服务器订阅ID号
  91627. UINT nChannel; // 通道号
  91628. UINT nVehiclesDataNums; // 统计区数据个数
  91629. NET_VEHICLES_DISTRIBUTION_DATA stuVehiclesData[16];// 统计区数据
  91630. }NET_CB_VEHICLES_DISTRIBUTION_DATA;
  91631. ///@brief 接口 CLIENT_AttachVehiclesDistributionData 回调函数,pBuf是json和图片数据,nBufLen是pBuf相应长度,用于转发服务
  91632. typedef int (CALLBACK *fNotifyVehiclesDistributionData)(LLONG lVehiclesHandle, NET_CB_VEHICLES_DISTRIBUTION_DATA* pDiagnosisInfo, LDWORD dwUser);
  91633. ///@brief 接口 CLIENT_AttachVehiclesDistributionData 的输入参数
  91634. typedef struct tagNET_IN_ATTACH_VEHICLES_DISTRIBUTION_DATA
  91635. {
  91636. DWORD dwSize; // 此结构体大小
  91637. DWORD dwWaitTime; // 接口超时等待时间
  91638. UINT nChannelID; // 通道号
  91639. fNotifyVehiclesDistributionData cbNotifySnapData; // 回调函数
  91640. LDWORD dwUser; // 用户自定义参数
  91641. } NET_IN_ATTACH_VEHICLES_DISTRIBUTION_DATA;
  91642. ///@brief 接口 CLIENT_AttachVehiclesDistributionData 的输出参数
  91643. typedef struct tagNET_OUT_ATTACH_VEHICLES_DISTRIBUTION_DATA
  91644. {
  91645. DWORD dwSize; // 此结构体大小
  91646. } NET_OUT_ATTACH_VEHICLES_DISTRIBUTION_DATA;
  91647. ///@brief 订阅统计区域内的车辆数据或者排队长度信息,pstInParam与pstOutParam内存由用户申请释放
  91648. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachVehiclesDistributionData(LLONG lLoginID, NET_IN_ATTACH_VEHICLES_DISTRIBUTION_DATA* pstInParam, NET_OUT_ATTACH_VEHICLES_DISTRIBUTION_DATA* pstOutParam);
  91649. ///@brief 取消订阅统计区域内的车辆数据或者排队长度信息,pstInParam与pstOutParam内存由用户申请释放
  91650. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachVehiclesDistributionData(LLONG lAttachHandle);
  91651. ///@brief 检测区区域人数统计信息
  91652. typedef struct tagNET_REGION_PEOPLE_STAT_INFO
  91653. {
  91654. UINT nRegionID; // 区域ID
  91655. char szRegionName[128]; // 区域名称
  91656. UINT nRegionPointNum; // 区域顶点个数
  91657. NET_POINT stuRegionPoint[20]; // 区域顶点坐标
  91658. UINT nPeopleNum; // 区域内人数
  91659. BYTE byReserved[1024]; // 保留字节
  91660. } NET_REGION_PEOPLE_STAT_INFO;
  91661. ///@brief 检测区统计信息
  91662. typedef struct tagNET_CROWD_STAT_DATA
  91663. {
  91664. UINT nChannelID; // 通道号
  91665. UINT nGloabalPeopleNum; // 检测区内总人数
  91666. UINT nRegionNum; // 检测区内区域个数
  91667. NET_REGION_PEOPLE_STAT_INFO stuRegionPeople[8]; // 检测区内区域人数统计信息
  91668. BYTE byReserved[1024]; // 保留字节
  91669. } NET_CROWD_STAT_DATA;
  91670. ///@brief 订阅人群分布图实时统回调信息
  91671. typedef struct tagNET_CB_CROWD_DISTRI_STREAM_INFO
  91672. {
  91673. UINT nCrowStatNum; // 检测区个数
  91674. NET_CROWD_STAT_DATA stuCrowdStatData[8]; // 检测区统计信息
  91675. BYTE byReserved[2048]; // 保留字节
  91676. } NET_CB_CROWD_DISTRI_STREAM_INFO;
  91677. ///@brief 订阅人群分布图实时统计信息回调函数原型, lAttachHandle为CLIENT_AttachCrowdDistriMap接口的返回值
  91678. typedef void (CALLBACK *fCrowdDistriStream)(LLONG lAttachHandle, NET_CB_CROWD_DISTRI_STREAM_INFO* pstResult, LDWORD dwUser);
  91679. ///@brief CLIENT_AttachCrowdDistriMap接口输入参数
  91680. typedef struct tagNET_IN_ATTACH_CROWDDISTRI_MAP_INFO
  91681. {
  91682. DWORD dwSize; // 结构体大小
  91683. UINT nChannelID; // 通道号
  91684. fCrowdDistriStream cbCrowdDistriStream; // 订阅人群分布图实时统计信息回调函数
  91685. LDWORD dwUser; // 用户数据
  91686. } NET_IN_ATTACH_CROWDDISTRI_MAP_INFO;
  91687. ///@brief CLIENT_AttachCrowdDistriMap 接口输出参数
  91688. typedef struct tagNET_OUT_ATTACH_CROWDDISTRI_MAP_INFO
  91689. {
  91690. DWORD dwSize; // 结构体大小
  91691. } NET_OUT_ATTACH_CROWDDISTRI_MAP_INFO;
  91692. ///@brief: 订阅人群分布图实时统计信息
  91693. ///@param[in]: LLONG :lLoginID // 登陆句柄
  91694. ///@param[in]: NET_IN_ATTACH_CROWDDISTRI_MAP_INFO* :pstInParam // 输入参数, 由用户申请资源
  91695. ///@param[out]: NET_OUT_ATTACH_CROWDDISTRI_MAP_INFO* :pstOutParam // 输出参数, 由用户申请资源
  91696. ///@param[in]: int :nWaitTime // 等待超时时间
  91697. ///@return: LLONG
  91698. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachCrowdDistriMap(LLONG lLoginID, NET_IN_ATTACH_CROWDDISTRI_MAP_INFO *pstInParam, NET_OUT_ATTACH_CROWDDISTRI_MAP_INFO *pstOutParam, int nWaitTime);
  91699. ///@brief: 取消订阅人群分布图实时统计信息
  91700. ///@param[in]: LLONG :lAttachHandle // 订阅句柄,为接口CLIENT_AttachCrowdDistriMap的返回值
  91701. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachCrowdDistriMap(LLONG lAttachHandle);
  91702. ///@brief 区域人数统计列表
  91703. typedef struct tagNET_GETSUMMARY_REGION_PEOPLE_LIST_INFO
  91704. {
  91705. UINT nRegionID; // 区域ID
  91706. UINT nRegionPeopleNum; // 区域人数
  91707. UINT nRegionPointNum; // 区域顶点个数
  91708. NET_POINT stuRegionPoint[20]; // 区域顶点坐标
  91709. char szReserved[1024]; // 保留字节
  91710. }NET_GETSUMMARY_REGION_PEOPLE_LIST_INFO;
  91711. ///@brief 拥挤人群列表
  91712. typedef struct tagNET_GETSUMMARY_CROWD_LIST_INFO
  91713. {
  91714. NET_POINT stuCenter; // 拥挤人群中心点坐标
  91715. UINT nRadius; // 半径
  91716. char szReserved[1024]; // 保留字节
  91717. }NET_GETSUMMARY_CROWD_LIST_INFO;
  91718. ///@brief 报警区域列表
  91719. typedef struct tagNET_GETSUMMARY_REGION_LIST_INFO
  91720. {
  91721. UINT nRegionID; // 区域ID
  91722. UINT nPeopleNum; // 区域内人数统计值
  91723. UINT nRegionPointNum; // 区域坐标个数
  91724. NET_POINT stuRegionPoint[20]; // 区域坐标
  91725. char szReserved[1024]; // 保留字节
  91726. }NET_GETSUMMARY_REGION_LIST_INFO;
  91727. ///@brief 检测区信息
  91728. typedef struct tagNET_GETSUMMARY_CROWD_STAT_DATA
  91729. {
  91730. UINT nChannelID; // 通道号
  91731. UINT nGloabalPeopleNum; // 检测区内总人数
  91732. UINT nRegionNum; // 检测区内区域个数
  91733. NET_GETSUMMARY_REGION_PEOPLE_LIST_INFO stuRegionPeopleList[16]; // 区域人数统计列表
  91734. UINT nCrowdEventNum; // 全局拥挤人群报警个数
  91735. NET_GETSUMMARY_CROWD_LIST_INFO stuCrowdList[5]; // 拥挤人群列表
  91736. UINT nRegionEventNum; // 报警区域个数
  91737. NET_GETSUMMARY_REGION_LIST_INFO stuRegionList[8]; // 报警区域列表
  91738. char szReserved[1024]; // 保留字节
  91739. }NET_GETSUMMARY_CROWD_STAT_DATA;
  91740. ///@brief CLIENT_GetSummaryCrowdDistriMap 接口输入参数
  91741. typedef struct tagNET_IN_GETSUMMARY_CROWDDISTRI_MAP_INFO
  91742. {
  91743. DWORD dwSize; // 结构体大小
  91744. UINT nChannelID; // 通道号
  91745. }NET_IN_GETSUMMARY_CROWDDISTRI_MAP_INFO;
  91746. ///@brief CLIENT_GetSummaryCrowdDistriMap 接口输出参数
  91747. typedef struct tagNET_OUT_GETSUMMARY_CROWDDISTRI_MAP_INFO
  91748. {
  91749. DWORD dwSize; // 结构体大小
  91750. int nCrowdStatNum; // 检测区个数
  91751. NET_GETSUMMARY_CROWD_STAT_DATA stuCrowdStatData[8]; // 检测区信息
  91752. }NET_OUT_GETSUMMARY_CROWDDISTRI_MAP_INFO;
  91753. ///@brief 获取人群分布图全局和区域实时人数统计值
  91754. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSummaryCrowdDistriMap(LLONG lLoginID, NET_IN_GETSUMMARY_CROWDDISTRI_MAP_INFO* pstInParam, NET_OUT_GETSUMMARY_CROWDDISTRI_MAP_INFO* pstOutParam, int nWaitTime);
  91755. ///@brief Ping的信息
  91756. typedef struct tagNET_PING_INFO
  91757. {
  91758. char szAddress[128]; // Ping的地址或者域名
  91759. BYTE byReserved[512]; // 保留字节
  91760. }NET_PING_INFO;
  91761. ///@brief CLIENT_GetPingStatus 接口输入参数
  91762. typedef struct tagNET_IN_GET_PING_STATUS_INFO
  91763. {
  91764. DWORD dwSize; // 结构体大小
  91765. NET_PING_INFO stuPingInfo; // Ping的信息
  91766. }NET_IN_GET_PING_STATUS_INFO;
  91767. ///@brief ping的状态
  91768. typedef struct tagNET_PING_STATUS_INFO
  91769. {
  91770. float fAveDelay; // 平均网络延迟,单位秒
  91771. float fLossRate; // 丢包率,大小[0-1]
  91772. BYTE byReserved[512]; // 保留字节
  91773. }NET_PING_STATUS_INFO;
  91774. ///@brief CLIENT_GetPingStatus 接口输出参数
  91775. typedef struct tagNET_OUT_GET_PING_STATUS_INFO
  91776. {
  91777. DWORD dwSize; // 结构体大小
  91778. NET_PING_STATUS_INFO stuPingStatus; // ping的状态
  91779. }NET_OUT_GET_PING_STATUS_INFO;
  91780. ///@brief 获取指定ip的ping状态
  91781. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPingStatus(LLONG lLoginID, NET_IN_GET_PING_STATUS_INFO *pInParam, NET_OUT_GET_PING_STATUS_INFO *pOutParam, int nWaitTime);
  91782. ///@brief CLIENT_GetDevRemoteChannelAlarmState 接口输入参数
  91783. typedef struct tagNET_IN_GET_REMOTE_CHANNEL_ALARM_STATE
  91784. {
  91785. DWORD dwSize; // 结构体大小
  91786. UINT nChannelNum; // 通道个数
  91787. UINT nChannel[128]; // 通道列表
  91788. } NET_IN_GET_REMOTE_CHANNEL_ALARM_STATE;
  91789. ///@brief 报警通道状态
  91790. typedef struct tagNET_ALARM_CHANNEL_STATE
  91791. {
  91792. int nChannel; // 视频通道号
  91793. DWORD dwAlatmInState; // 远程设备报警输入通道状态。按位表示,每一位表示一个远程设备的报警输入通道的状态;
  91794. BYTE byReserved[256]; // 保留字节
  91795. } NET_ALARM_CHANNEL_STATE;
  91796. ///@brief CLIENT_GetDevRemoteChannelAlarmState 接口输出参数
  91797. typedef struct tagNET_OUT_GET_REMOTE_CHANNEL_ALARM_STATE
  91798. {
  91799. DWORD dwSize; // 结构体大小
  91800. UINT nAlarmChannelNum; // 报警通道个数
  91801. NET_ALARM_CHANNEL_STATE stuAlarmChannelState[128]; // 报警通道状态
  91802. } NET_OUT_GET_REMOTE_CHANNEL_ALARM_STATE;
  91803. ///@brief 获取设备通道报警状态
  91804. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevRemoteChannelAlarmState(LLONG lLoginID, NET_IN_GET_REMOTE_CHANNEL_ALARM_STATE *pstInParam, NET_OUT_GET_REMOTE_CHANNEL_ALARM_STATE *pstOutParam, int nWaitTime);
  91805. ///@brief CLIENT_GetDevRemoteInChannelAlarmSlots 接口输入参数
  91806. typedef struct tagNET_IN_GET_REMOTE_IN_CHANNEL_ALARM_SLOTS
  91807. {
  91808. DWORD dwSize; // 结构体大小
  91809. UINT nChannelNum; // 通道个数
  91810. int nChannel[128]; // 通道列表
  91811. } NET_IN_GET_REMOTE_IN_CHANNEL_ALARM_SLOTS;
  91812. ///@brief 报警输入通道数
  91813. typedef struct tagNET_ALARM_IN_CHANNEL_SLOTS
  91814. {
  91815. int nChannel; // 通道号
  91816. int nInputs; // 本地输入通道数目
  91817. BYTE byReserved[256]; // 保留字节
  91818. } NET_ALARM_IN_CHANNEL_SLOTS;
  91819. ///@brief CLIENT_GetDevRemoteInChannelAlarmSlots 接口输出参数
  91820. typedef struct tagNET_OUT_GET_REMOTE_IN_CHANNEL_ALARM_SLOTS
  91821. {
  91822. DWORD dwSize; // 结构体大小
  91823. UINT nAlarmChannelNum; // 报警通道个数
  91824. NET_ALARM_IN_CHANNEL_SLOTS stuAlarmChannelSlots[128]; // 报警输入通道数
  91825. } NET_OUT_GET_REMOTE_IN_CHANNEL_ALARM_SLOTS;
  91826. ///@brief 获取前端报警端口的输入通道数
  91827. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevRemoteInChannelAlarmSlots(LLONG lLoginID, NET_IN_GET_REMOTE_IN_CHANNEL_ALARM_SLOTS *pstInParam, NET_OUT_GET_REMOTE_IN_CHANNEL_ALARM_SLOTS *pstOutParam, int nWaitTime);
  91828. ///@brief CLIENT_GetRemoteAlarmConfig 接口输入参数
  91829. typedef struct tagNET_IN_GET_REMOTE_ALARM_CONFIG_INFO
  91830. {
  91831. DWORD dwSize; // 结构体大小
  91832. int nChannel; // 视频通道号,为-1时表示获取本地所有的配置
  91833. BOOL bIsUseDeviceID; // 是否通过DeviceID获取设备配置
  91834. BOOL bEnableAlarmChannel; // 是否下发报警通道号
  91835. int nAlarmChannel; // 报警通道号,如果没有或者为-1,表示获取所有的报警通道
  91836. BOOL bOnlyLocal; // 是否只获取本地缓存配置(速度快),默认为FALSE
  91837. char szDeviceID[128]; // 逻辑对象所属ID,该字段只有像IVSS存在设备树的设备才有,与channel二选一,如果都存在设备树的设备以deviceID为准,否则以channel为准
  91838. } NET_IN_GET_REMOTE_ALARM_CONFIG_INFO;
  91839. ///@brief 报警输入通道数
  91840. typedef struct tagNET_ALARM_CONFIG_REMOTE_INFO
  91841. {
  91842. char szName[64]; // 报警通道名称
  91843. char szReserved[1024]; // 保留字节
  91844. } NET_ALARM_CONFIG_REMOTE_INFO;
  91845. ///@brief 报警输入通道数
  91846. typedef struct tagNET_ALARM_CONFIG_LOCAL_INFO
  91847. {
  91848. int nRemoteAlarmInfoNum; // 本地通道中远程报警通道数, 用户申请的NET_ALARM_CONFIG_REMOTE_INFO结构体个数
  91849. int nRemoteAlarmInfoRealNum; // 设备实际返回的本地通道中远程报警通道数
  91850. NET_ALARM_CONFIG_REMOTE_INFO* pstuRemoteAlarmInfo; // 远程报警通道信息, 需用户申请内存
  91851. } NET_ALARM_CONFIG_LOCAL_INFO;
  91852. ///@brief CLIENT_GetRemoteAlarmConfig 接口输出参数
  91853. typedef struct tagNET_OUT_GET_REMOTE_ALARM_CONFIG_INFO
  91854. {
  91855. DWORD dwSize; // 结构体大小
  91856. int nLoaclAlarmNum; // 报警本地通道个数
  91857. NET_ALARM_CONFIG_LOCAL_INFO stuLoaclAlarmInfo[1024]; // 报警本地输入通道数
  91858. } NET_OUT_GET_REMOTE_ALARM_CONFIG_INFO;
  91859. ///@brief 获取前端报警端口的输入通道数
  91860. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRemoteAlarmConfig(LLONG lLoginID, NET_IN_GET_REMOTE_ALARM_CONFIG_INFO *pstInParam, NET_OUT_GET_REMOTE_ALARM_CONFIG_INFO *pstOutParam, int nWaitTime);
  91861. ///@brief 门禁数据进度类型
  91862. typedef enum tagEM_ACCESSCONTROL_PROGRESS_TYPE
  91863. {
  91864. EM_ACCESSCONTROL_PROGRESS_IMPORT, // 数据导入进度
  91865. EM_ACCESSCONTROL_PROGRESS_DEPLOY, // 数据同步进度
  91866. } EM_ACCESSCONTROL_PROGRESS_TYPE;
  91867. ///@brief 门禁数据导入返回状态
  91868. typedef enum tagEM_ACCESSCONTROL_IMPORT_STATE
  91869. {
  91870. EM_ACCESSCONTROL_IMPORT_UNKNOWN, // 未知
  91871. EM_ACCESSCONTROL_IMPORT_ONGING, // 导入中
  91872. EM_ACCESSCONTROL_IMPORT_END, // 导入结束, 开始生成数据库
  91873. EM_ACCESSCONTROL_IMPORT_BUSY, // 系统忙,已经有导入任务
  91874. EM_ACCESSCONTROL_IMPORT_DATAERROR, // 数据包检验失败
  91875. EM_ACCESSCONTROL_IMPORT_INVALID, // 数据包非法
  91876. EM_ACCESSCONTROL_IMPORT_SYNC_SUCCESS, // 同步成功, 数据库已生成
  91877. EM_ACCESSCONTROL_IMPORT_SYNC_FALIED, // 同步失败, 数据库无法生成
  91878. EM_ACCESSCONTROL_IMPORT_DBFULL, // 数据库已满无法导入
  91879. EM_ACCESSCONTROL_IMPORT_SDFULL, // 存储空间满无法导入
  91880. EM_ACCESSCONTROL_IMPORT_CIPHER_ERROR, // 导入压缩包密码不对
  91881. EM_ACCESSCONTROL_IMPORT_SEND_FAIL, // 发送门禁数据失败
  91882. } EM_ACCESSCONTROL_IMPORT_STATE;
  91883. ///@brief 导入门禁数据状态信息
  91884. typedef struct tagNET_IMPORT_ACCESSCONTROL_STATE
  91885. {
  91886. unsigned int nProgress; // 进度, 百分比
  91887. EM_ACCESSCONTROL_PROGRESS_TYPE emProcessType; // 进度类型
  91888. EM_ACCESSCONTROL_IMPORT_STATE emState; // 状态信息
  91889. BYTE byReserved[512]; // 保留字节
  91890. } NET_IMPORT_ACCESSCONTROL_STATE;
  91891. ///@brief 导入目标库回调函数原形
  91892. typedef void (CALLBACK *fImportAccessControlDataCallBack) (LLONG lImportHandle, NET_IMPORT_ACCESSCONTROL_STATE *pstAccessControlState, LDWORD dwUser);
  91893. ///@brief CLIENT_ImportAccessControlData 接口输入参数
  91894. typedef struct tagNET_IN_IMPORT_ACCESS_CONTROL_DATA
  91895. {
  91896. DWORD dwSize; // 结构体大小
  91897. DWORD dwDataType; // 数据类型掩码, 0x01 门禁对讲通信录; 0x02 门禁自定义密码; 0x04 门禁卡片信息;
  91898. // 0x08 门禁目标信息; 0x10 门禁信息信息; 0x20 门禁对讲远程设备信息
  91899. char szPassWord[DH_COMMON_STRING_64]; // 压缩密码
  91900. char szFilePath[MAX_FILE_PATH_LEN]; // 门禁数据路径, 由用户指定
  91901. UINT nBeforeLen; // 文件压缩前大小
  91902. BYTE byReserved[4]; // 对齐
  91903. fImportAccessControlDataCallBack cbImportState; // 上传状态回调函数
  91904. LDWORD dwUser; // 用户数据
  91905. } NET_IN_IMPORT_ACCESS_CONTROL_DATA;
  91906. ///@brief CLIENT_ImportAccessControlData 接口输出参数
  91907. typedef struct tagNET_OUT_IMPORT_ACCESS_CONTROL_DATA
  91908. {
  91909. DWORD dwSize; // 结构体大小
  91910. } NET_OUT_IMPORT_ACCESS_CONTROL_DATA;
  91911. ///@brief 导入门禁数据
  91912. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ImportAccessControlData(LLONG lLoginID, NET_IN_IMPORT_ACCESS_CONTROL_DATA* pstInParam,
  91913. NET_OUT_IMPORT_ACCESS_CONTROL_DATA* pstOutParam, const int nWaitTime);
  91914. ///@brief 停止导入门禁数据
  91915. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopImportAccessControlData(LLONG lImportHandle);
  91916. ///@brief 导出门禁快速复核信息错误码
  91917. typedef enum tagEM_EXPORT_FAST_CHECK_ERRORCODE
  91918. {
  91919. EM_EXPORT_FAST_CHECK_SUCCESS = 1, // 导出请求成功
  91920. EM_EXPORT_FAST_CHECK_NO_AUTHORITY = 2, // 无权限
  91921. EM_EXPORT_FAST_CHECK_NO_THIS_FILE = 3, // 文件不存在
  91922. EM_EXPORT_FAST_CHECK_EXPORT_END = 4, // 导出结束
  91923. EM_EXPORT_FAST_CHECK_EXPORTING = 5, // 导出中
  91924. EM_EXPORT_FAST_CHECK_FILE_READY = 8, // 文件准备完成
  91925. EM_EXPORT_FAST_CHECK_FILE_FAILED = 9, // 文件准备失败
  91926. EM_EXPORT_FAST_CHECK_WAIT_FILE = 10, // 导出请求成功, 需要等待设备准备数据
  91927. EM_EXPORT_FAST_CHECK_SYSTEM_BUSY = 11, // 系统忙, 暂时无法导出数据
  91928. EM_EXPORT_FAST_CHECK_NO_PASSWORD = 12, // 数据未定义密码, 不允许导出
  91929. } EM_EXPORT_FAST_CHECK_ERRORCODE;
  91930. ///@brief 门禁快速复核信息状态信息
  91931. typedef struct tagNET_EXPORT_FAST_CHECK_STATE
  91932. {
  91933. unsigned int nProgress; // 进度, 百分比
  91934. EM_EXPORT_FAST_CHECK_ERRORCODE emErrorCode; // 错误码
  91935. char *pDataBuf; // 导出数据
  91936. DWORD dwDataLen; // 数据长度
  91937. BYTE byReserved[516]; // 保留字节
  91938. } NET_EXPORT_FAST_CHECK_STATE;
  91939. ///@brief 导出门禁快速复核信息回调函数原形
  91940. typedef void (CALLBACK *fExportFastCheckCallBack)(LLONG lExportHandle, NET_EXPORT_FAST_CHECK_STATE *pstFastCheckState, LDWORD dwUser);
  91941. ///@brief CLIENT_ExportAccessControlFastCheckData 接口输入参数
  91942. typedef struct tagNET_IN_EXPORT_ACCESSCONTROL_FASTCHECK_DATA
  91943. {
  91944. DWORD dwSize; // 结构体大小
  91945. DWORD dwDataType; // 数据类型掩码, 0x01 门禁对讲通信录; 0x02 门禁自定义密码; 0x04 门禁卡片信息;
  91946. // 0x08 门禁目标信息; 0x10 门禁信息信息; 0x20 门禁对讲远程设备信息; 0x40 人员数据
  91947. char szPassWord[DH_COMMON_STRING_64]; // 压缩密码
  91948. fExportFastCheckCallBack cbExportFastCheckCallBack; // 导出快速复核信息回调函数
  91949. LDWORD dwUser; // 用户数据
  91950. } NET_IN_EXPORT_ACCESSCONTROL_FASTCHECK_DATA;
  91951. ///@brief CLIENT_ExportAccessControlFastCheckData 接口输出参数
  91952. typedef struct tagNET_OUT_EXPORT_ACCESSCONTROL_FASTCHECK_DATA
  91953. {
  91954. DWORD dwSize; // 结构体大小
  91955. } NET_OUT_EXPORT_ACCESSCONTROL_FASTCHECK_DATA;
  91956. ///@brief 导出门禁快速复核信息
  91957. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ExportAccessControlFastCheckData(LLONG lLoginID, NET_IN_EXPORT_ACCESSCONTROL_FASTCHECK_DATA* pstInParam,
  91958. NET_OUT_EXPORT_ACCESSCONTROL_FASTCHECK_DATA* pstOutParam, const int nWaitTime);
  91959. ///@brief 停止导出门禁快速复核数据
  91960. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopExportAccessControlFastCheckData(LLONG lExportHandle);
  91961. ///@brief CLIENT_GetUSBInfo 输入结构体
  91962. typedef struct tagNET_IN_GET_USB_INFO
  91963. {
  91964. DWORD dwSize; // 赋值为结构体大小
  91965. }NET_IN_GET_USB_INFO;
  91966. ///@brief USB 传输协议类型
  91967. typedef enum EM_USB_PROTOCOL_TYPE
  91968. {
  91969. EM_USB_PROTOCOL_TYPE_UNKNOWN, // 未知
  91970. EM_USB_PROTOCOL_TYPE_V2, // USB 2.0
  91971. EM_USB_PROTOCOL_TYPE_V3, // USB 3.0
  91972. }EM_USB_PROTOCOL_TYPE;
  91973. ///@brief CLIENT_GetUSBInfo 输出结构体
  91974. typedef struct tagNET_OUT_GET_USB_INFO
  91975. {
  91976. DWORD dwSize; // 赋值为结构体大小
  91977. EM_USB_PROTOCOL_TYPE emType; // USB传输协议类型
  91978. }NET_OUT_GET_USB_INFO;
  91979. ///@brief 获取USB传输协议类型
  91980. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetUSBInfo(LLONG lLoginID, NET_IN_GET_USB_INFO* pstuIn, NET_OUT_GET_USB_INFO* pstuOut, int nWaitTime);
  91981. ///@brief 充值机查询类型
  91982. typedef enum EM_RECHARGE_BUSINESS_QUERY_TYPE
  91983. {
  91984. EM_RECHARGE_BUSINESS_QUERY_TYPE_UNKNOWN = 0, // 未知
  91985. EM_RECHARGE_BUSINESS_QUERY_TYPE_CARD, // 卡号查询
  91986. EM_RECHARGE_BUSINESS_QUERY_TYPE_HUMANFACE, // 目标查询
  91987. }EM_RECHARGE_BUSINESS_QUERY_TYPE;
  91988. ///@brief 充值机操作类型
  91989. typedef enum EM_RECHARGE_BUSINESS_OPERATE_TYPE
  91990. {
  91991. EM_RECHARGE_BUSINESS_OPERATE_TYPE_UNKNOWN = 0, // 未知
  91992. EM_RECHARGE_BUSINESS_OPERATE_TYPE_QUERY, // 账户查询
  91993. EM_RECHARGE_BUSINESS_OPERATE_TYPE_RECHARGE, // 账户充值
  91994. }EM_RECHARGE_BUSINESS_OPERATE_TYPE;
  91995. ///@brief 充值机账户查询事件信息
  91996. typedef struct tagNET_RECHARGE_BUSINESS_QUERY_EVENT_INFO
  91997. {
  91998. EM_RECHARGE_BUSINESS_QUERY_TYPE emQueryType; // 查询类型
  91999. char szCardNo[32]; // 查询账户卡号
  92000. char szUserID[32]; // 查询账户的用户ID
  92001. NET_TIME_EX stuTime; // 查询账户时设备本地时间
  92002. char* pszFaceData; // 目标照片:emType 为 EM_RECHARGE_BUSINESS_TYPE_CARD 时无意义
  92003. int nFaceDataLen; // 目标照片长度
  92004. }NET_RECHARGE_BUSINESS_QUERY_EVENT_INFO;
  92005. ///@brief 充值机账户充值事件信息
  92006. typedef struct tagNET_RECHARGE_BUSINESS_RECHARGE_EVENT_INFO
  92007. {
  92008. EM_RECHARGE_BUSINESS_QUERY_TYPE emQueryType; // 查询类型
  92009. char szCardNo[32]; // 查询账户卡号
  92010. char szUserID[32]; // 查询账户的用户ID
  92011. NET_TIME_EX stuTime; // 查询账户时设备本地时间
  92012. char* pszFaceData; // 目标照片:emType 为 EM_RECHARGE_BUSINESS_TYPE_CARD 时无意义
  92013. int nFaceDataLen; // 目标照片长度
  92014. int nAmount; // 充值金额,[100, 9999900],单位:分,必须是100的整数倍
  92015. }NET_RECHARGE_BUSINESS_RECHARGE_EVENT_INFO;
  92016. ///@brief 充值机订阅回调信息
  92017. typedef struct tagNET_RECHARGE_BUSINESS_INFO
  92018. {
  92019. EM_RECHARGE_BUSINESS_OPERATE_TYPE emOperateType; // 操作类型
  92020. BYTE byReserved[4]; // 字节对齐
  92021. char szBusinessID[32]; // 业务ID
  92022. void* pstuEventInfo; // 操作信息
  92023. // 当 emOperateType 为 EM_RECHARGE_BUSINESS_OPERATE_TYPE_QUERY,类型为 NET_RECHARGE_BUSINESS_QUERY_EVENT_INFO
  92024. // 当 emOperateType 为 EM_RECHARGE_BUSINESS_OPERATE_TYPE_RECHARGE,类型为 NET_RECHARGE_BUSINESS_RECHARGE_EVENT_INFO
  92025. }NET_RECHARGE_BUSINESS_INFO;
  92026. ///@brief 充值机订阅信息回调函数
  92027. typedef void (CALLBACK *fRechargeBusiness)(LLONG lAttachHandle, NET_RECHARGE_BUSINESS_INFO* pInfo, LDWORD dwUser);
  92028. ///@brief CLIENT_AttachRechargeBusiness 输入结构体
  92029. typedef struct tagNET_IN_ATTACH_RECHARGE_BUSINESS
  92030. {
  92031. DWORD dwSize; // 赋值为结构体大小
  92032. BYTE szReserved[4]; // 保留字段
  92033. fRechargeBusiness cbNotify; // 回调函数
  92034. LDWORD dwUser; // 用户信息
  92035. }NET_IN_ATTACH_RECHARGE_BUSINESS;
  92036. ///@brief CLIENT_AttachRechargeBusiness 输出结构体
  92037. typedef struct tagNET_OUT_ATTACH_RECHARGE_BUSINESS
  92038. {
  92039. DWORD dwSize; // 赋值为结构体大小
  92040. }NET_OUT_ATTACH_RECHARGE_BUSINESS;
  92041. ///@brief 订阅充值机业务
  92042. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachRechargeBusiness(LLONG lLoginID, NET_IN_ATTACH_RECHARGE_BUSINESS* pInParam, NET_OUT_ATTACH_RECHARGE_BUSINESS* pOutParam, int nWaitTime);
  92043. ///@brief 取消订阅充值机业务
  92044. // lAttachHandle 为 CLIENT_AttachRechargeBusiness 返回值
  92045. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachRechargeBusiness(LLONG lAttachHandle);
  92046. ///@brief 充值错误码
  92047. typedef enum EM_RECHARGE_BUSINESS_ERROR_CODE
  92048. {
  92049. EM_RECHARGE_BUSINESS_ERRORCODE_UNKNOWN = -1, // 未知
  92050. EM_RECHARGE_BUSINESS_ERRORCODE_NONE, // 无错误
  92051. EM_RECHARGE_BUSINESS_ERRORCODE_UNAUTHORIZED_CARD = 11, // 卡片未授权
  92052. EM_RECHARGE_BUSINESS_ERRORCODE_INVALID_CARD = 14, // 无效卡号
  92053. EM_RECHARGE_BUSINESS_ERRORCODE_EXCEED_MAX_AMOUNT = 48, // 超出卡最大金额
  92054. EM_RECHARGE_BUSINESS_ERRORCODE_INVALID_TERMINAL = 89, // 无效终端
  92055. EM_RECHARGE_BUSINESS_ERRORCODE_SYSTEM_EXCEPTION = 96, // 系统异常
  92056. EM_RECHARGE_BUSINESS_ERRORCODE_EXCEED_DAY_RECHARGE_NUM = 107, // 超出日最大充值次数
  92057. EM_RECHARGE_BUSINESS_ERRORCODE_EXCEED_SINGLE_MAX_RECHARGE_AMOUNT = 108, // 超出单次最大充值金额
  92058. }EM_RECHARGE_BUSINESS_ERROR_CODE;
  92059. ///@brief CLIENT_SetRechargeBusinessQueryResult 输入结构体
  92060. typedef struct tagNET_IN_RECHARGE_BUSINESS_QUERY_RESULT
  92061. {
  92062. DWORD dwSize; // 赋值为结构体大小
  92063. char szCardNo[32]; // 卡号
  92064. char szUserID[32]; // 用户ID
  92065. char szBusinessID[32]; // 业务ID,CLIENT_AttachRechargeBusiness 回调函数上报的 szBusinessID
  92066. int nBalance; // 账户余额,单位:分
  92067. EM_RECHARGE_BUSINESS_ERROR_CODE emErrorCode; // 错误码
  92068. }NET_IN_RECHARGE_BUSINESS_QUERY_RESULT;
  92069. ///@brief CLIENT_SetRechargeBusinessQueryResult 输出结构体
  92070. typedef struct tagNET_OUT_RECHARGE_BUSINESS_QUERY_RESULT
  92071. {
  92072. DWORD dwSize; // 赋值为结构体大小
  92073. }NET_OUT_RECHARGE_BUSINESS_QUERY_RESULT;
  92074. ///@brief 设置充值机查询结果
  92075. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRechargeBusinessQueryResult(LLONG lLoginID, NET_IN_RECHARGE_BUSINESS_QUERY_RESULT* pInParam, NET_OUT_RECHARGE_BUSINESS_QUERY_RESULT* pOutParam, int nWaitTime);
  92076. ///@brief CLIENT_SetRechargeBusinessRechargeResult 输入结构体
  92077. typedef struct tagNET_IN_RECHARGE_BUSINESS_RECHARGE_RESULT
  92078. {
  92079. DWORD dwSize; // 赋值为结构体大小
  92080. char szCardNo[32]; // 卡号
  92081. char szUserID[32]; // 用户ID
  92082. char szBusinessID[32]; // 业务ID,CLIENT_AttachRechargeBusiness 回调函数上报的 szBusinessID
  92083. int nBalance; // 账户余额,单位:分
  92084. EM_RECHARGE_BUSINESS_ERROR_CODE emErrorCode; // 错误码
  92085. }NET_IN_RECHARGE_BUSINESS_RECHARGE_RESULT;
  92086. ///@brief CLIENT_SetRechargeBusinessRechargeResult 输出结构体
  92087. typedef struct tagNET_OUT_RECHARGE_BUSINESS_RECHARGE_RESULT
  92088. {
  92089. DWORD dwSize; // 赋值为结构体大小
  92090. }NET_OUT_RECHARGE_BUSINESS_RECHARGE_RESULT;
  92091. ///@brief 设置充值机充值结果
  92092. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRechargeBusinessRechargeResult(LLONG lLoginID, NET_IN_RECHARGE_BUSINESS_RECHARGE_RESULT* pInParam, NET_OUT_RECHARGE_BUSINESS_RECHARGE_RESULT* pOutParam, int nWaitTime);
  92093. ///@brief 设备需要展示的颜色
  92094. typedef enum tagEM_SHOW_COLOR
  92095. {
  92096. EM_SHOW_COLOR_UNKNOWN, // 未知
  92097. EM_SHOW_COLOR_BLUE, // 蓝
  92098. EM_SHOW_COLOR_YELLOW, // 黄
  92099. EM_SHOW_COLOR_ORANGE, // 橙
  92100. EM_SHOW_COLOR_RED, // 红
  92101. }EM_SHOW_COLOR;
  92102. ///@brief CLIENT_SetPersonInfoInputResult 输入参数
  92103. typedef struct tagNET_IN_PERSON_INFO_INPUT_RESULT
  92104. {
  92105. DWORD dwSize; // 结构体大小
  92106. int nChannelID; // 通道ID
  92107. UINT nResult; // 0 : 成功 1 : 人员信息不在人员库中
  92108. BYTE byReserved[4]; // 字节对齐
  92109. char szCitizenID[64]; // 证件号码
  92110. EM_SHOW_COLOR emColor; // 设备展示颜色(定制)
  92111. UINT nDataType; // 0:实时采集的数据 1:离线采集的数据
  92112. }NET_IN_PERSON_INFO_INPUT_RESULT;
  92113. ///@brief CLIENT_SetPersonInfoInputResult 输出参数
  92114. typedef struct tagNET_OUT_PERSON_INFO_INPUT_RESULT
  92115. {
  92116. DWORD dwSize; // 结构体大小
  92117. }NET_OUT_PERSON_INFO_INPUT_RESULT;
  92118. ///@brief 下发人员信息录入结果
  92119. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPersonInfoInputResult(LLONG lLoginID, NET_IN_PERSON_INFO_INPUT_RESULT* pInParam, NET_OUT_PERSON_INFO_INPUT_RESULT* pOutParam, int nWaitTime);
  92120. ///@brief CLIENT_PlayBackBySecondaryAnalyse 接口输入参数
  92121. typedef struct tagNET_IN_PLAYBACK_BY_SECONDARYANALYSE
  92122. {
  92123. DWORD dwSize; // 结构体大小
  92124. int nChannelID; // 通道
  92125. NET_TIME stBeginTime; // 开始时间
  92126. NET_TIME stEndTime; // 结束时间
  92127. HWND hWnd; // 播放窗口, 可为NULL
  92128. fDownLoadPosCallBack cbDownLoadPos; // 进度回调
  92129. LDWORD dwPosUser; // 进度回调用户信息
  92130. fDataCallBack fDownLoadDataCallBack; // 数据回调
  92131. LDWORD dwDataUser; // 数据回调用户信息
  92132. int nPlayDirection; // 播放方向, 0:正放; 1:倒放;
  92133. int nTaskID; // 任务ID,浓缩视频回放使用
  92134. }NET_IN_PLAYBACK_BY_SECONDARYANALYSE;
  92135. ///@brief CLIENT_PlayBackBySecondaryAnalyse 接口输出参数
  92136. typedef struct tagNET_OUT_PLAYBACK_BY_SECONDARYANALYSE
  92137. {
  92138. DWORD dwSize; // 结构体大小
  92139. }NET_OUT_PLAYBACK_BY_SECONDARYANALYSE;
  92140. ///@brief 二次分析回放
  92141. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackBySecondaryAnalyse(LLONG lLoginID, NET_IN_PLAYBACK_BY_SECONDARYANALYSE* pInParam, NET_OUT_PLAYBACK_BY_SECONDARYANALYSE* pOutParam,int nWaitTime);
  92142. ///@brief CLIENT_PlayBackSecondaryAnalyseByFile 接口输入参数
  92143. typedef struct tagNET_IN_PLAYBACK_SECONDARYANALYSE_BY_FILE
  92144. {
  92145. DWORD dwSize; // 结构体大小
  92146. int nTaskID; // 任务ID,浓缩视频回放使用
  92147. NET_RECORDFILE_INFO stuRecordInfo; // 录像文件信息
  92148. HWND hWnd; // 播放窗口, 可为NULL
  92149. fDownLoadPosCallBack cbDownLoadPos; // 进度回调函数
  92150. fDataCallBack fDownLoadDataCallBack; // 回放数据回调函数
  92151. LDWORD dwUserData; // 进度回调用户信息
  92152. LDWORD dwDataUser; // 回放数据回调用户信息
  92153. int nPlayDirection; // 播放方向, 0:正放; 1:倒放;
  92154. char szResvered[4]; // 字节对齐
  92155. }NET_IN_PLAYBACK_SECONDARYANALYSE_BY_FILE;
  92156. ///@brief CLIENT_PlayBackSecondaryAnalyseByFile 接口输出参数
  92157. typedef struct tagNET_OUT_PLAYBACK_SECONDARYANALYSE_BY_FILE
  92158. {
  92159. DWORD dwSize; // 结构体大小
  92160. }NET_OUT_PLAYBACK_SECONDARYANALYSE_BY_FILE;
  92161. ///@brief 按文件回放二次分析录像
  92162. ///@param[in] lLoginID: 登录句柄
  92163. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  92164. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  92165. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  92166. ///@return 录像文件下载句柄,非0表示成功 0表示失败
  92167. CLIENT_NET_API LLONG CALL_METHOD CLIENT_PlayBackSecondaryAnalyseByFile(LLONG lLoginID, NET_IN_PLAYBACK_SECONDARYANALYSE_BY_FILE* pstuInParam, NET_OUT_PLAYBACK_SECONDARYANALYSE_BY_FILE* pstuOutParam,int nWaitTime);
  92168. ///@brief CLIENT_DownloadBySecondaryAnalyse 接口输入参数
  92169. typedef struct tagNET_IN_DOWNLOAD_BY_SECONDARYANALYSE
  92170. {
  92171. DWORD dwSize; // 结构体大小
  92172. NET_RECORDFILE_INFO stuInfo; // 录像文件信息
  92173. int nTaskID; // 任务ID,浓缩视频回放使用
  92174. char* szSavedFileName; // 文件保存路径
  92175. fDownLoadPosCallBack cbDownLoadPos; // 进度回调函数
  92176. fDataCallBack fDownLoadDataCallBack; // 回放数据回调函数
  92177. LDWORD dwUserData; // 进度回调用户信息
  92178. LDWORD dwDataUser; // 回放数据回调用户信息
  92179. }NET_IN_DOWNLOAD_BY_SECONDARYANALYSE;
  92180. ///@brief CLIENT_DownloadBySecondaryAnalyse 接口输出参数
  92181. typedef struct tagNET_OUT_DOWNLOAD_BY_SECONDARYANALYSE
  92182. {
  92183. DWORD dwSize; // 结构体大小
  92184. }NET_OUT_DOWNLOAD_BY_SECONDARYANALYSE;
  92185. ///@brief 二次分析下载
  92186. ///@param[in] lLoginID: 登录句柄
  92187. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  92188. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  92189. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  92190. ///@return 录像文件下载句柄,非0表示成功 0表示失败
  92191. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DownloadBySecondaryAnalyse(LLONG lLoginID, NET_IN_DOWNLOAD_BY_SECONDARYANALYSE* pstuInParam, NET_OUT_DOWNLOAD_BY_SECONDARYANALYSE* pstuOutParam,int nWaitTime);
  92192. ///@brief CLIENT_GetDevWifiListInfo 接口输入参数
  92193. typedef struct tagNET_IN_GET_DEV_WIFI_LIST
  92194. {
  92195. DWORD dwSize; // 结构体大小
  92196. UINT nPort; // 设备端口号
  92197. char szDevIP[64]; // 设备IP
  92198. } NET_IN_GET_DEV_WIFI_LIST;
  92199. ///@brief CLIENT_GetDevWifiListInfo 接口输出参数
  92200. typedef struct tagNET_OUT_GET_DEV_WIFI_LIST
  92201. {
  92202. DWORD dwSize; // 结构体大小
  92203. UINT nWlanDevCount; // 搜索到的无线设备个数
  92204. DHDEV_WLAN_DEVICE_EX stuWlanDev[MAX_WLAN_DEVICE_NUM]; // 搜索到的无线设备信息
  92205. } NET_OUT_GET_DEV_WIFI_LIST;
  92206. ///@brief CLIENT_SetDevWifiInfo 接口输入参数
  92207. typedef struct tagNET_IN_SET_DEV_WIFI
  92208. {
  92209. DWORD dwSize; // 结构体大小
  92210. UINT nPort; // 设备端口号
  92211. char szDevIP[64]; // 设备IP
  92212. int nEnable; // 无线使能, 0: 使能, 1: 关闭
  92213. char szSSID[36]; // SSID
  92214. int nLinkMode; // 连接模式;0:auto,1:adhoc,2:Infrastructure
  92215. int nEncryption; // 加密;0:off,2:WEP64bit,3:WEP128bit, 4:WPA-PSK-TKIP, 5: WPA-PSK-CCMP(AES), 6:WPA2-PSK-TKIP 7:WPA2-PSK-AES 8:WPA-TKIP 9:WPA-AES
  92216. // 10:WPA2-TKIP 11:WPA2-AES 12:AUTO 13:WEP-OPEN 14:WEP-SHARED; 15:WPA3-SAE-CCMP; 16:WPA3-SAE/PSK-CCMP
  92217. int nKeyType; // 0:Hex,1:ASCII
  92218. int nKeyID; // 序号
  92219. char szKeys[4][32]; // 四组密码, nEncryption为非WPA方式时使用
  92220. char szWPAKeys[128]; // nEncryption为WPA相关方式时使用,传128长度,不用结束符。
  92221. int nKeyFlag;
  92222. int nConnectedFlag; // 0: 无连接, 1: 连接
  92223. char szMacAddr[18]; // 设备MAC地址
  92224. } NET_IN_SET_DEV_WIFI;
  92225. ///@brief CLIENT_SetDevWifiInfo 接口输出参数
  92226. typedef struct tagNET_OUT_SET_DEV_WIFI
  92227. {
  92228. DWORD dwSize; // 结构体大小
  92229. } NET_OUT_SET_DEV_WIFI;
  92230. ///@brief 获取设备wifi信息列表, 无需鉴权
  92231. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevWifiListInfo(NET_IN_GET_DEV_WIFI_LIST *pInParam, NET_OUT_GET_DEV_WIFI_LIST *pOutParam, const int nWaitTime);
  92232. ///@brief 下发wifi信息,无需鉴权
  92233. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDevWifiInfo(NET_IN_SET_DEV_WIFI *pInParam, NET_OUT_SET_DEV_WIFI *pOutParam, const int nWaitTime);
  92234. ///@brief 设置WLAN配置信息
  92235. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetWlanConfigInfo(LLONG lLoginID, NET_IN_WLAN_CONFIG_INFO *pInParam, NET_OUT_WLAN_CONFIG_INFO *pOutParam, const int nWaitTime);
  92236. ///@brief 抓拍物体信息
  92237. typedef struct tagNET_SNAP_OBJECT_INFO
  92238. {
  92239. NET_RECT stuBoundingBox; // 物体包围盒, 点坐标归一化到[0,8191]坐标
  92240. BYTE byReserved[512]; // 保留字节
  92241. } NET_SNAP_OBJECT_INFO;
  92242. ///@brief CLIENT_SnapPictureByAnalyseObject 接口输入参数
  92243. typedef struct tagNET_IN_SNAP_BY_ANALYSE_OBJECT
  92244. {
  92245. DWORD dwSize; // 结构体大小
  92246. UINT nChannelID; // 通道号
  92247. BYTE byReserved[4]; // 字节对齐
  92248. UINT nSnapObjectNum; // 抓拍物体个数
  92249. NET_SNAP_OBJECT_INFO stuSnapObjects[32]; // 抓拍物体信息
  92250. } NET_IN_SNAP_BY_ANALYSE_OBJECT;
  92251. ///@brief CLIENT_SnapPictureByAnalyseObject 接口输出参数
  92252. typedef struct tagNET_OUT_SNAP_BY_ANALYSE_OBJECT
  92253. {
  92254. DWORD dwSize; // 结构体大小
  92255. } NET_OUT_SNAP_BY_ANALYSE_OBJECT;
  92256. ///@brief 选中目标进行抓拍
  92257. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SnapPictureByAnalyseObject(LLONG lLoginID, NET_IN_SNAP_BY_ANALYSE_OBJECT* pInParam, NET_OUT_SNAP_BY_ANALYSE_OBJECT* pOutParam,int nWaitTime);
  92258. ///@brief 智能算法的状态信息
  92259. typedef struct tagNET_INTELLI_STATE_INFO
  92260. {
  92261. BOOL bSupportOnlyAlgorithmUpgrade; // 是否支持算法独立升级
  92262. UINT nAlgorithmNum; // 算法个数
  92263. NET_ALGORITHM_INFO stuAlgorithmInfos[MAX_ANALYSE_ALGORITHM_NUM]; // 算法版本信息
  92264. BYTE byReserve[1024]; // 保留字节
  92265. }NET_INTELLI_STATE_INFO;
  92266. ///@brief 智能算法的状态信息回调函数
  92267. typedef void (CALLBACK *fIntelliState)(LLONG lAttachHandle, NET_INTELLI_STATE_INFO* pInfo, LDWORD dwUser);
  92268. ///@brief CLIENT_AttachIntelliState 输入结构体
  92269. typedef struct tagNET_IN_ATTACH_INTELLI_STATE
  92270. {
  92271. DWORD dwSize; // 结构体大小
  92272. BYTE szReserved[4]; // 保留字段
  92273. fIntelliState cbNotify; // 回调函数
  92274. LDWORD dwUser; // 用户信息
  92275. }NET_IN_ATTACH_INTELLI_STATE;
  92276. ///@brief CLIENT_AttachIntelliState 输出结构体
  92277. typedef struct tagNET_OUT_ATTACH_INTELLI_STATE
  92278. {
  92279. DWORD dwSize; // 结构体大小
  92280. }NET_OUT_ATTACH_INTELLI_STATE;
  92281. ///@brief 订阅智能算法的状态信息
  92282. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachIntelliState(LLONG lLoginID, NET_IN_ATTACH_INTELLI_STATE* pInParam, NET_OUT_ATTACH_INTELLI_STATE* pOutParam, int nWaitTime);
  92283. ///@brief 取消订阅智能算法的状态信息
  92284. ///@brief lAttachHandle 为 CLIENT_AttachIntelliState 返回值
  92285. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachIntelliState(LLONG lAttachHandle);
  92286. ///@brief CLIENT_GetGDPRAbility 输入参数
  92287. typedef struct tagNET_IN_GET_GDPR_ABILITY
  92288. {
  92289. DWORD dwSize; // 结构体大小
  92290. }NET_IN_GET_GDPR_ABILITY;
  92291. ///@brief GDPR能力集
  92292. typedef enum EM_GDPR_ABILITY
  92293. {
  92294. EM_GDPR_ABILITY_V1_STREAM = 0x01, // 支持GDPRV1版本的拉流、回放
  92295. EM_GDPR_ABILITY_V2_STREAM = 0x02, // 支持GDPRV2版本的拉流、回放
  92296. EM_GDPR_ABILITY_DOWNLOAD = 0x04, // 支持GDPR下载
  92297. }EM_GDPR_ABILITY;
  92298. ///@brief CLIENT_GetGDPRAbility 输出参数
  92299. typedef struct tagNET_OUT_GET_GDPR_ABILITY
  92300. {
  92301. DWORD dwSize; // 结构体大小
  92302. int nAbility; // 能力,取值见 EM_GDPR_ABILITY,支持 '|' 运算
  92303. }NET_OUT_GET_GDPR_ABILITY;
  92304. ///@brief 获取设备GDPR能力集
  92305. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetGDPRAbility(LLONG lLoginID, NET_IN_GET_GDPR_ABILITY* pInParam, NET_OUT_GET_GDPR_ABILITY* pOutParam, int nWaitTime);
  92306. ///@brief GDPR使能全局开关
  92307. CLIENT_NET_API void CALL_METHOD CLIENT_SetGDPREnable(BOOL bEnable);
  92308. ///@brief 目标下载失败错误码
  92309. typedef enum tagEM_FACEDB_ERRCODE
  92310. {
  92311. EM_FACEDB_ERRCODE_UNKNOWN = -1, // 未知
  92312. EM_FACEDB_ERRCODE_SUCCESS, // 成功
  92313. EM_FACEDB_ERRCODE_CONNECT_FAIL = 2, // 连接失败
  92314. EM_FACEDB_ERRCODE_LOGIN_FAIL, // 登陆失败
  92315. EM_FACEDB_ERRCODE_RECV_TIMEOUT, // 接收数据超时
  92316. EM_FACEDB_ERRCODE_STRING_NULL, // 目标字符串为空
  92317. EM_FACEDB_ERRCODE_FILE_DIRECTORY_NOT_EXIST, // 目录或文件不存在
  92318. EM_FACEDB_ERRCODE_STORAGE_FAIL, // 文件存储失败
  92319. } EM_FACEDB_ERRCODE;
  92320. ///@brief 目标库下载进度回调信息
  92321. typedef struct tagNET_CB_FACEDB_DOWNLOAD_RESULT
  92322. {
  92323. char szFaceDbVersion[32]; // 目标库版本号
  92324. UINT nTotalDownloadCount; // 总下载文件个数
  92325. UINT nSuccessDownloadCount; // 已下载文件个数
  92326. EM_FACEDB_ERRCODE emFaceDbErrCode; // 目标下载失败错误码
  92327. char szGroupID[64]; // 人员组ID
  92328. int nFaceUUIDCount; // 人脸UUID个数
  92329. char szFaceUUID[10][64]; // 人脸UUID
  92330. BYTE byReserved[316]; // 保留字节
  92331. } NET_CB_FACEDB_DOWNLOAD_RESULT;
  92332. ///@brief 订阅目标库下载进度回调函数原型, lAttachHandle为 CLIENT_AttachFaceDbDownLoadResult 接口的返回值
  92333. typedef void (CALLBACK *fFaceDbDownLoadResult)(LLONG lAttachHandle, NET_CB_FACEDB_DOWNLOAD_RESULT* pstResult, LDWORD dwUser);
  92334. ///@brief CLIENT_AttachFaceDbDownLoadResult 接口输入参数
  92335. typedef struct tagNET_IN_ATTACH_FACEDB_DOWNLOAD_RESULT
  92336. {
  92337. DWORD dwSize; // 结构体大小
  92338. BYTE byReserved[4]; // 字节对齐
  92339. fFaceDbDownLoadResult cbFaceDbDownLoadResult; // 目标库下载进度回调函数
  92340. LDWORD dwUser; // 用户数据
  92341. } NET_IN_ATTACH_FACEDB_DOWNLOAD_RESULT;
  92342. ///@brief CLIENT_AttachFaceDbDownLoadResult 接口输出参数
  92343. typedef struct tagNET_OUT_ATTACH_FACEDB_DOWNLOAD_RESULT
  92344. {
  92345. DWORD dwSize; // 结构体大小
  92346. } NET_OUT_ATTACH_FACEDB_DOWNLOAD_RESULT;
  92347. ///@brief 订阅目标库下载结果
  92348. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachFaceDbDownLoadResult(LLONG lLoginID, NET_IN_ATTACH_FACEDB_DOWNLOAD_RESULT* pInParam, NET_OUT_ATTACH_FACEDB_DOWNLOAD_RESULT* pOutParam, int nWaitTime);
  92349. ///@brief 取消订阅目标库下载结果, lAttachHandle为 CLIENT_AttachFaceDbDownLoadResult 接口的返回值
  92350. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachFaceDbDownLoadResult(LLONG lAttachHandle);
  92351. ///@brief 目标库下载进度回调信息
  92352. typedef struct tagNET_CB_FACEDB_MODEL_RESULT
  92353. {
  92354. char szFaceDbVersion[32]; // 目标库版本号
  92355. UINT nTotalModelCount; // 需要建模文件个数
  92356. UINT nSuccessModelCount; // 已建模文件个数
  92357. char szGroupID[64]; // 人员组ID
  92358. int nErrorCode; // 错误码, -1:未知 0:成功 1:未知错误 2:建模失败
  92359. int nFaceUUIDCount; // 人脸UUID个数
  92360. char szFaceUUID[10][64]; // 人脸UUID
  92361. BYTE byReserved[1024]; // 保留字节
  92362. } NET_CB_FACEDB_MODEL_RESULT;
  92363. ///@brief 订阅目标库下载进度回调函数原型, lAttachHandle为 CLIENT_AttachFaceDbModelResult 接口的返回值
  92364. typedef void (CALLBACK *fFaceDbModelResult)(LLONG lAttachHandle, NET_CB_FACEDB_MODEL_RESULT* pstResult, LDWORD dwUser);
  92365. ///@brief CLIENT_AttachFaceDbModelResult 接口输入参数
  92366. typedef struct tagNET_IN_ATTACH_FACEDB_MODEL_RESULT
  92367. {
  92368. DWORD dwSize; // 结构体大小
  92369. BYTE byReserved[4]; // 字节对齐
  92370. fFaceDbModelResult cbFaceDbModelResult; // 目标库下载进度回调函数
  92371. LDWORD dwUser; // 用户数据
  92372. } NET_IN_ATTACH_FACEDB_MODEL_RESULT;
  92373. ///@brief CLIENT_AttachFaceDbModelResult 接口输出参数
  92374. typedef struct tagNET_OUT_ATTACH_FACEDB_MODEL_RESULT
  92375. {
  92376. DWORD dwSize; // 结构体大小
  92377. } NET_OUT_ATTACH_FACEDB_MODEL_RESULT;
  92378. ///@brief 订阅人脸库建模进度通知
  92379. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachFaceDbModelResult(LLONG lLoginID, NET_IN_ATTACH_FACEDB_MODEL_RESULT* pstuInParam, NET_OUT_ATTACH_FACEDB_MODEL_RESULT* pstuOutParam, int nWaitTime);
  92380. ///@brief 取消订阅人脸库建模进度通知, lAttachHandle为 CLIENT_AttachFaceDbModelResult 接口的返回值
  92381. ///@param[in] lAttachHandle 订阅句柄
  92382. ///@return TRUE表示成功 FALSE表示失败
  92383. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachFaceDbModelResult(LLONG lAttachHandle);
  92384. ///@brief 算法方案
  92385. typedef enum tagEM_AI_SOLUTION_ALGORITHM_TYPE
  92386. {
  92387. EM_AI_SOLUTION_ALGORITHM_TYPE_UNKNOWN = 0, // 未知
  92388. EM_AI_SOLUTION_ALGORITHM_TYPE_ODSOLUTION, // 目标检测算法
  92389. EM_AI_SOLUTION_ALGORITHM_TYPE_OCSOLUTION, // 图像多属性分类算法
  92390. EM_AI_SOLUTION_ALGORITHM_TYPE_OD_OC_SOLUTION, // 检测及多属性分类混合算法
  92391. EM_AI_SOLUTION_ALGORITHM_TYPE_BDSOLUTION, // 视频行为分析算法
  92392. EM_AI_SOLUTION_ALGORITHM_TYPE_OCRSOLUTION, // 图像文本识别算法
  92393. EM_AI_SOLUTION_ALGORITHM_TYPE_IRSOLUTION, // 检索对比算法
  92394. } EM_AI_SOLUTION_ALGORITHM_TYPE;
  92395. ///@brief 开放智能能力信息
  92396. typedef struct tagNET_AI_SOLUTION_INFO
  92397. {
  92398. char szAMCC[128]; // AMCC号
  92399. EM_AI_SOLUTION_ALGORITHM_TYPE emSolutionType; // 算法方案
  92400. char szReserved[1020]; // 保留字节
  92401. } NET_AI_SOLUTION_INFO;
  92402. ///@brief 开放智能能力
  92403. typedef struct tagNET_CB_AI_SOLUTION_LIST
  92404. {
  92405. NET_AI_SOLUTION_INFO stuAISolutionList[64]; // AI开放智能能力
  92406. int nAISolutionListNum; // AI开放智能能力数量
  92407. char szReserved[1020]; // 保留字节
  92408. } NET_CB_AI_SOLUTION_LIST;
  92409. ///@brief 订阅开放智能能力回调函数原型, lAttachHandle为 CLIENT_AttachAISolutionList 接口的返回值
  92410. typedef void (CALLBACK *fAISolutionListResult)(LLONG lAttachHandle, NET_CB_AI_SOLUTION_LIST* pstResult, LDWORD dwUser);
  92411. ///@brief CLIENT_AttachAISolutionList 接口输入参数
  92412. typedef struct tagNET_IN_ATTACH_AI_SOLUTION_LIST
  92413. {
  92414. DWORD dwSize; // 结构体大小
  92415. BYTE byReserved[4]; // 字节对齐
  92416. fAISolutionListResult cbAISolutionListResult; // 开放智能能力变更通知回调函数
  92417. LDWORD dwUser; // 用户数据
  92418. } NET_IN_ATTACH_AI_SOLUTION_LIST;
  92419. ///@brief CLIENT_AttachAISolutionList 接口输出参数
  92420. typedef struct tagNET_OUT_ATTACH_AI_SOLUTION_LIST
  92421. {
  92422. DWORD dwSize; // 结构体大小
  92423. } NET_OUT_ATTACH_AI_SOLUTION_LIST;
  92424. ///@brief 订阅开放智能能力
  92425. ///@param[in] lLoginID 登录句柄
  92426. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  92427. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  92428. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  92429. ///@return 订阅句柄,0表示订阅失败
  92430. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachAISolutionList(LLONG lLoginID, NET_IN_ATTACH_AI_SOLUTION_LIST* pstuInParam, NET_OUT_ATTACH_AI_SOLUTION_LIST* pstuOutParam, int nWaitTime);
  92431. ///@brief 取消订阅订阅开放智能能力, lAttachHandle为 CLIENT_AttachAISolutionList 接口的返回值
  92432. ///@param[in] lAttachHandle 订阅句柄
  92433. ///@return TRUE表示成功 FALSE表示失败
  92434. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachAISolutionList(LLONG lAttachHandle);
  92435. ///@brief 目标库下载任务信息
  92436. typedef struct tagNET_FACEDB_DOWNLOAD_TASK_INFO
  92437. {
  92438. UINT nURLNum; // 图片URL个数
  92439. char szURLList[4][256]; // 图片URL地址列表, 一张目标图片的地址可能存放在多个ftp服务器上
  92440. char szID[32]; // ID
  92441. char szFaceUUID[32]; // 目标唯一码,每次平台更新目标图片都需要更新该字段,用于设备端比较是否重新下载目标图片
  92442. BYTE byReserved[2048]; // 保留字节
  92443. } NET_FACEDB_DOWNLOAD_TASK_INFO;
  92444. ///@brief CLIENT_AddFaceDbDownLoadTask 接口输入参数
  92445. typedef struct tagNET_IN_ADD_FACEDB_DOWNLOAD_TASK
  92446. {
  92447. DWORD dwSize; // 结构体大小
  92448. BOOL bIsEnd; // 是否为最后一包(此字段废弃)
  92449. char szFaceDbVersion[32]; // 目标库版本号
  92450. BYTE byReserved[4]; // 字节对齐
  92451. UINT nTaskNum; // 目标库下载任务个数, 由用户指定个数, 最多支持100个
  92452. NET_FACEDB_DOWNLOAD_TASK_INFO *pstTaskInfo; // 目标库下载任务信息, 由用户申请空间, 大小为nTaskNum*sizeof(NET_FACELIB_DOWNLOAD_TASK_INFO)
  92453. UINT nPacketTotal; // 表示当前任务总共有几个包
  92454. UINT nPacketIndex; // 表示当前是第几个包,下标从1开始
  92455. char szGroupID[64]; // 人员组ID, 表示下载到指定的人员组ID的目标库中
  92456. } NET_IN_ADD_FACEDB_DOWNLOAD_TASK;
  92457. ///@brief CLIENT_AddFaceDbDownLoadTask 接口输出参数
  92458. typedef struct tagNET_OUT_ADD_FACEDB_DOWNLOAD_TASK
  92459. {
  92460. DWORD dwSize; // 结构体大小
  92461. } NET_OUT_ADD_FACEDB_DOWNLOAD_TASK;
  92462. ///@brief 添加目标库下载任务
  92463. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddFaceDbDownLoadTask(LLONG lLoginID, NET_IN_ADD_FACEDB_DOWNLOAD_TASK* pInParam, NET_OUT_ADD_FACEDB_DOWNLOAD_TASK* pOutParam, int nWaitTime);
  92464. ///@brief 车牌库下载进度回调信息
  92465. typedef struct tagNET_CB_PLATENUMBERDB_DOWNLOAD_RESULT
  92466. {
  92467. char szPlateNumberDbVersion[32]; // 车牌库版本号
  92468. UINT nTotalDownloadCount; // 需要下载文件个数
  92469. UINT nSuccessDownloadCount; // 已下载文件个数
  92470. EM_FACEDB_ERRCODE emPlateNumberDbErrorCode; // 车牌下载失败错误码
  92471. BYTE byReserved[1020]; // 保留字节
  92472. } NET_CB_PLATENUMBERDB_DOWNLOAD_RESULT;
  92473. ///@brief 订阅车牌库下载进度回调函数原型, lAttachHandle为 CLIENT_AttachPlateNumberDbDownloadResult 接口的返回值
  92474. typedef void (CALLBACK *fPlateNumberDbDownloadResult)(LLONG lAttachHandle, NET_CB_PLATENUMBERDB_DOWNLOAD_RESULT* pstResult, LDWORD dwUser);
  92475. ///@brief CLIENT_AttachPlateNumberDbDownloadResult 接口输入参数
  92476. typedef struct tagNET_IN_ATTACH_PLATENUMBERDB_DOWNLOAD_RESULT
  92477. {
  92478. DWORD dwSize; // 结构体大小
  92479. BYTE byReserved[4]; // 字节对齐
  92480. fPlateNumberDbDownloadResult cbPlateNumberDbDownloadResult; // 车牌库下载进度回调函数
  92481. LDWORD dwUser; // 用户数据
  92482. } NET_IN_ATTACH_PLATENUMBERDB_DOWNLOAD_RESULT;
  92483. ///@brief CLIENT_AttachPlateNumberDbDownloadResult 接口输出参数
  92484. typedef struct tagNET_OUT_ATTACH_PLATENUMBERDB_DOWNLOAD_RESULT
  92485. {
  92486. DWORD dwSize; // 结构体大小
  92487. } NET_OUT_ATTACH_PLATENUMBERDB_DOWNLOAD_RESULT;
  92488. ///@brief 订阅车牌库下载进度
  92489. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachPlateNumberDbDownloadResult(LLONG lLoginID, NET_IN_ATTACH_PLATENUMBERDB_DOWNLOAD_RESULT* pInParam, NET_OUT_ATTACH_PLATENUMBERDB_DOWNLOAD_RESULT* pOutParam, int nWaitTime);
  92490. ///@brief 取消订阅车牌库下载进度, lAttachHandle为 CLIENT_AttachPlateNumberDbDownloadResult 接口的返回值
  92491. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachPlateNumberDbDownloadResult(LLONG lAttachHandle);
  92492. ///@brief 车牌库下载任务信息
  92493. typedef struct tagNET_PLATE_NUMBER_DB_DOWNLOAD_TASK_INFO
  92494. {
  92495. UINT nURLNum; // 图片URL个数
  92496. char szURLList[4][256]; // 图片URL地址列表, 一张车牌图片的地址可能存放在多个ftp服务器上
  92497. BYTE byReserved[1020]; // 保留字节
  92498. } NET_PLATE_NUMBER_DB_DOWNLOAD_TASK_INFO;
  92499. ///@brief CLIENT_AddPlateNumberDbDownloadTask 接口输入参数
  92500. typedef struct tagNET_IN_ADD_PLATE_NUMBER_DB_DOWNLOAD_TASK
  92501. {
  92502. DWORD dwSize; // 结构体大小
  92503. UINT nTaskNum; // 车辆库下载任务个数, 由用户指定个数, 最多支持100个
  92504. NET_PLATE_NUMBER_DB_DOWNLOAD_TASK_INFO *pstTaskInfo; // 车辆库下载任务信息, 由用户申请空间, 大小为nTaskNum*sizeof(NET_PLATE_NUMBER_DB_DOWNLOAD_TASK_INFO)
  92505. char szPlateNumberDbVersion[32]; // 车辆库版本
  92506. UINT nPacketTotal; // 表示当前任务总共有几个包
  92507. UINT nPacketIndex; // 表示当前是第几个包,下标从1开始
  92508. } NET_IN_ADD_PLATE_NUMBER_DB_DOWNLOAD_TASK;
  92509. ///@brief CLIENT_AddPlateNumberDbDownloadTask 接口输出参数
  92510. typedef struct tagNET_OUT_ADD_PLATE_NUMBER_DB_DOWNLOAD_TASK
  92511. {
  92512. DWORD dwSize; // 结构体大小
  92513. } NET_OUT_ADD_PLATE_NUMBER_DB_DOWNLOAD_TASK;
  92514. ///@brief 添加车牌库下载任务
  92515. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddPlateNumberDbDownloadTask(LLONG lLoginID, NET_IN_ADD_PLATE_NUMBER_DB_DOWNLOAD_TASK* pInParam, NET_OUT_ADD_PLATE_NUMBER_DB_DOWNLOAD_TASK* pOutParam, int nWaitTime);
  92516. ///@brief 图片库下载任务信息
  92517. typedef struct tagNET_PIC_FILE_DOWNLOAD_TASK_INFO
  92518. {
  92519. UINT nTaskId; // 任务ID
  92520. UINT nURLNum; // 图片URL个数
  92521. char szURLList[4][256]; // 图片URL地址列表, 一张车牌图片的地址可能存放在多个ftp服务器上
  92522. BYTE byReserved[1024]; // 保留字节
  92523. }NET_PIC_FILE_DOWNLOAD_TASK_INFO;
  92524. ///@brief CLIENT_AddPicFileDownloadTask 接口输入参数
  92525. typedef struct tagNET_IN_ADD_PIC_FILE_DOWNLOAD_TASK
  92526. {
  92527. DWORD dwSize; // 结构体大小
  92528. UINT nPacketTotal; // 表示当前任务总共有几个包
  92529. UINT nPacketIndex; // 表示当前是第几个包(下标从1开始)
  92530. UINT nDelayTime; // 任务延时时间(单位:秒)
  92531. NET_PIC_FILE_DOWNLOAD_TASK_INFO *pstTaskInfo; // 图片库下载任务信息, 大小为nTaskNum*sizeof(NET_PIC_FILE_DOWNLOAD_TASK_INFO)
  92532. UINT nTaskNum; // 客户申请图片下载任务个数
  92533. }NET_IN_ADD_PIC_FILE_DOWNLOAD_TASK;
  92534. ///@brief CLIENT_AddPicFileDownloadTask 接口输出参数
  92535. typedef struct tagNET_OUT_ADD_PIC_FILE_DOWNLOAD_TASK
  92536. {
  92537. DWORD dwSize; // 结构体大小
  92538. }NET_OUT_ADD_PIC_FILE_DOWNLOAD_TASK;
  92539. ///@brief 添加图片下载任务
  92540. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddPicFileDownloadTask(LLONG lLoginID, const NET_IN_ADD_PIC_FILE_DOWNLOAD_TASK *pInParam, NET_OUT_ADD_PIC_FILE_DOWNLOAD_TASK *pOutParam, int nWaitTime);
  92541. ///@brief 图片下载任务返回码
  92542. typedef enum tagEM_PIC_FILE_ERRCODE
  92543. {
  92544. EM_PIC_FILE_ERRCODE_UNKNOWN = -1, // 未知
  92545. EM_PIC_FILE_ERRCODE_SUCCESS, // 成功
  92546. EM_PIC_FILE_ERRCODE_CONNECT_FAIL = 2, // 连接失败
  92547. EM_PIC_FILE_ERRCODE_LOGIN_FAIL, // 登陆失败
  92548. EM_PIC_FILE_ERRCODE_RECV_TIMEOUT, // 接收数据超时
  92549. EM_PIC_FILE_ERRCODE_STRING_NULL, // 目标字符串为空
  92550. EM_PIC_FILE_ERRCODE_FILE_DIRECTORY_NOT_EXIST, // 目录或文件不存在
  92551. EM_PIC_FILE_ERRCODE_STORAGE_FAIL, // 文件存储失败
  92552. }EM_PIC_FILE_ERRCODE;
  92553. ///@brief 图片下载任务信息
  92554. typedef struct tagNET_PIC_FILE_URL_LIST_INFO
  92555. {
  92556. EM_PIC_FILE_ERRCODE emPicFileDbErrorCode; // 图片下载任务失败错误码
  92557. UINT nTaskId; // 任务ID
  92558. char szFileUrl[256]; // 文件下载地址
  92559. BYTE byReserved[256]; // 保留字节
  92560. }NET_PIC_FILE_URL_LIST_INFO;
  92561. ///@brief 订阅图片下载任务回调信息
  92562. typedef struct tagNET_CB_PIC_FILE_DOWNLOAD_RESULT
  92563. {
  92564. NET_PIC_FILE_URL_LIST_INFO *pUrlList; // 图片下载任务列表信息,由库申请空间, 大小为nUrlListNum*sizeof(NET_PIC_FILE_URL_LIST_INFO)
  92565. int nUrlListNum; // 下载图片信息个数
  92566. BYTE byReserved[1020]; // 保留字节
  92567. }NET_CB_PIC_FILE_DOWNLOAD_RESULT;
  92568. ///@brief 订阅图片下载任务回调函数原型, lAttachHandle为 CLIENT_AttachPicFileDownloadResult 接口的返回值
  92569. typedef void (CALLBACK *fPicFileDownloadResult)(LLONG lAttachHandle, NET_CB_PIC_FILE_DOWNLOAD_RESULT *pstResult, LDWORD dwUser);
  92570. ///@brief CLIENT_AttachPicFileDownloadResult 接口输入参数
  92571. typedef struct tagNET_IN_ATTACH_PIC_FILE_DOWNLOAD_RESULT
  92572. {
  92573. DWORD dwSize; // 结构体大小
  92574. BYTE byReserved[4]; // 字节对齐
  92575. fPicFileDownloadResult cbPicFileDownloadResult; // 订阅图片下载任务状态回调函数
  92576. LDWORD dwUser; // 用户数据
  92577. }NET_IN_ATTACH_PIC_FILE_DOWNLOAD_RESULT;
  92578. ///@brief CLIENT_AttachPicFileDownloadResult 接口输出参数
  92579. typedef struct tagNET_OUT_ATTACH_PIC_FILE_DOWNLOAD_RESULT
  92580. {
  92581. DWORD dwSize; // 结构体大小
  92582. }NET_OUT_ATTACH_PIC_FILE_DOWNLOAD_RESULT;
  92583. ///@brief 订阅图片下载任务
  92584. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachPicFileDownloadResult(LLONG lLoginID, const NET_IN_ATTACH_PIC_FILE_DOWNLOAD_RESULT *pInParam, NET_OUT_ATTACH_PIC_FILE_DOWNLOAD_RESULT *pOutParam, int nWaitTime);
  92585. ///@brief 取消订阅图片下载任务, lAttachHandle为 CLIENT_AttachPicFileDownloadResult 接口的返回值
  92586. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachPicFileDownloadResult(LLONG lAttachHandle);
  92587. ///@brief CLIENT_GetPlateNumberDbVersion 接口输入参数
  92588. typedef struct tagNET_IN_GET_PLATE_NUMBER_DB_VERSION
  92589. {
  92590. DWORD dwSize; // 结构体大小
  92591. } NET_IN_GET_PLATE_NUMBER_DB_VERSION;
  92592. ///@brief CLIENT_GetPlateNumberDbVersion 接口输出参数
  92593. typedef struct tagNET_OUT_GET_PLATE_NUMBER_DB_VERSION
  92594. {
  92595. DWORD dwSize; // 结构体大小
  92596. char szPlateNumberDbVersion[32]; // 车牌库版本号,如果从来未下发或者设备异常没有下发完,车牌库版本号”0”
  92597. } NET_OUT_GET_PLATE_NUMBER_DB_VERSION;
  92598. ///@brief 平台主动查询设备端车牌库版本信息
  92599. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPlateNumberDbVersion(LLONG lLoginID, NET_IN_GET_PLATE_NUMBER_DB_VERSION* pInParam, NET_OUT_GET_PLATE_NUMBER_DB_VERSION* pOutParam, int nWaitTime);
  92600. ///@brief FTP服务协议类型
  92601. typedef enum tagEM_FTP_PROTOCOL_TYPE
  92602. {
  92603. EM_FTP_PROTOCOL_TYPE_UNKNOWN = -1, // 未知
  92604. EM_FTP_PROTOCOL_TYPE_FTPS, // ftps
  92605. } EM_FTP_PROTOCOL_TYPE;
  92606. ///@brief FTP服务信息
  92607. typedef struct tagNET_FTP_SERVER_INFO
  92608. {
  92609. char szIP[32]; // IP地址
  92610. char szUserName[32]; // 用户名
  92611. char szPassword[32]; // 密码
  92612. UINT nPort; // 端口号
  92613. EM_FTP_PROTOCOL_TYPE emFtpProtocolType; // FTP服务协议类型
  92614. UINT nTimeOut; // 连接超时时间, 单位: 毫秒
  92615. char szDirectory[128]; // 存放视频的根目录
  92616. BYTE byReserved[1020]; // 保留字节
  92617. } NET_FTP_SERVER_INFO;
  92618. ///@brief CLIENT_SendFtpUploadServerInfo 接口输入参数
  92619. typedef struct tagNET_IN_SEND_FTP_UPLOAD_SERVER_INFO
  92620. {
  92621. DWORD dwSize; // 结构体大小
  92622. UINT nFtpServerNum; // FTP 服务个数
  92623. NET_FTP_SERVER_INFO stuFtpServerInfo[4]; // FTP 服务信息
  92624. } NET_IN_SEND_FTP_UPLOAD_SERVER_INFO;
  92625. ///@brief CLIENT_SendFtpUploadServerInfo 接口输出参数
  92626. typedef struct tagNET_OUT_SEND_FTP_UPLOAD_SERVER_INFO
  92627. {
  92628. DWORD dwSize; // 结构体大小
  92629. } NET_OUT_SEND_FTP_UPLOAD_SERVER_INFO;
  92630. ///@brief 下发补传视频ftp服务器信息
  92631. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SendFtpUploadServerInfo(LLONG lLoginID, NET_IN_SEND_FTP_UPLOAD_SERVER_INFO* pInParam, NET_OUT_SEND_FTP_UPLOAD_SERVER_INFO* pOutParam, int nWaitTime);
  92632. ///@brief 文件上传结果码
  92633. typedef enum tagEM_FILE_UPLOAD_RESULT_CODE
  92634. {
  92635. EM_FILE_UPLOAD_RESULT_CODE_UNKNOWN = -1, // 未知
  92636. EM_FILE_UPLOAD_RESULT_CODE_SUCCESS, // 成功
  92637. EM_FILE_UPLOAD_RESULT_CODE_CONNECT_FAIL = 2, // 连接失败
  92638. EM_FILE_UPLOAD_RESULT_CODE_LOGIN_FAIL, // 登录失败
  92639. EM_FILE_UPLOAD_RESULT_CODE_RCV_TIMEOUT, // 接收数据超时
  92640. EM_FILE_UPLOAD_RESULT_CODE_OBJ_STR_NULL, // 目标字符串为空
  92641. EM_FILE_UPLOAD_RESULT_CODE_NO_FOLD_FILE, // 目录或文件不存在
  92642. EM_FILE_UPLOAD_RESULT_CODE_STORE_FAIL, // 文件存储失败
  92643. EM_FILE_UPLOAD_RESULT_CODE_SEND_FAIL, // 发送数据失败
  92644. } EM_FILE_UPLOAD_RESULT_CODE;
  92645. ///@brief 文件上传结果信息
  92646. typedef struct tagNET_FILE_UPLOAD_RESULT_INFO
  92647. {
  92648. char szFileUrl[256]; // 文件路径
  92649. EM_FILE_UPLOAD_RESULT_CODE emResultCode; // 文件上传结果码
  92650. BYTE byReserved[1020]; // 保留字节
  92651. } NET_FILE_UPLOAD_RESULT_INFO;
  92652. ///@brief 文件上传结果回调信息
  92653. typedef struct tagNET_CB_FILE_UPLOAD_RESULT
  92654. {
  92655. UINT nResultNum; // 文件上传结果个数
  92656. NET_FILE_UPLOAD_RESULT_INFO stuUploadResultInfo[4]; // 文件上传结果信息
  92657. BYTE byReserved[1024]; // 保留字节
  92658. } NET_CB_FILE_UPLOAD_RESULT;
  92659. ///@brief 订阅文件上传结果信息回调函数原型, lAttachHandle为 CLIENT_AttachFileUploadResult 接口的返回值
  92660. typedef void (CALLBACK *fFileUploadResult)(LLONG lAttachHandle, NET_CB_FILE_UPLOAD_RESULT* pstResult, LDWORD dwUser);
  92661. ///@brief CLIENT_AttachFileUploadResult 接口输入参数
  92662. typedef struct tagNET_IN_ATTACH_FILE_UPLOAD_RESULT
  92663. {
  92664. DWORD dwSize; // 结构体大小
  92665. BYTE byReserved[4]; // 字节对齐
  92666. fFileUploadResult cbFileUploadResult; // 文件上传结果回调函数
  92667. LDWORD dwUser; // 用户数据
  92668. } NET_IN_ATTACH_FILE_UPLOAD_RESULT;
  92669. ///@brief CLIENT_AttachFileUploadResult 接口输出参数
  92670. typedef struct tagNET_OUT_ATTACH_FILE_UPLOAD_RESULT
  92671. {
  92672. DWORD dwSize; // 结构体大小
  92673. } NET_OUT_ATTACH_FILE_UPLOAD_RESULT;
  92674. ///@brief 订阅文件上传结果信息
  92675. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachFileUploadResult(LLONG lLoginID, NET_IN_ATTACH_FILE_UPLOAD_RESULT* pInParam, NET_OUT_ATTACH_FILE_UPLOAD_RESULT* pOutParam, const int nWaitTime);
  92676. ///@brief 取消订阅文件上传结果信息, lAttachHandle为 CLIENT_AttachFileUploadResult 接口的返回值
  92677. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachFileUploadResult(LLONG lAttachHandle);
  92678. ///@brief CLIENT_GetFaceDbVersion 接口输入参数
  92679. typedef struct tagNET_IN_GET_FACE_DB_VERSION
  92680. {
  92681. DWORD dwSize; // 结构体大小
  92682. } NET_IN_GET_FACE_DB_VERSION;
  92683. ///@brief 设备其它人员组ID的目标库信息
  92684. typedef struct tagNET_FACE_LIB_INFO_EX
  92685. {
  92686. char szGroupID[64]; // 人员组ID
  92687. char szFaceLibVersion[32]; // 目标库版本号,平台如果没有从没下发过目标或者设备异常目标未下载完全,目标库版本号为"0"
  92688. UINT nTotalDownloadCount; // 需要下载文件个数
  92689. UINT nSuccessDownloadCount; // 已下载文件个数
  92690. char szResvered[1024]; // 保留字节
  92691. }NET_FACE_LIB_INFO_EX;
  92692. ///@brief CLIENT_GetFaceDbVersion 接口输出参数
  92693. typedef struct tagNET_OUT_GET_FACE_DB_VERSION
  92694. {
  92695. DWORD dwSize; // 结构体大小
  92696. char szFaceDbVersion[32]; // 目标库版本号, 没下发过目标或者设备异常目标未下载完全,目标库版本号为"0"
  92697. UINT nTotalCount; // 总共需要下载的文件个数
  92698. UINT nSuccessDCount; // 已下载的文件个数
  92699. char szGroupID[64]; // 人员组ID
  92700. int nFaceLibInfoExCount; // 设备其它人员组ID的目标库信息个数
  92701. NET_FACE_LIB_INFO_EX stuFaceLibInfoEx[8]; // 设备其它人员组ID的目标库信息
  92702. } NET_OUT_GET_FACE_DB_VERSION;
  92703. ///@brief 主动查询设备端目标库版本信息
  92704. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFaceDbVersion(LLONG lLoginID, NET_IN_GET_FACE_DB_VERSION* pInParam, NET_OUT_GET_FACE_DB_VERSION* pOutParam, const int nWaitTime);
  92705. ///@brief CLIENT_ControlThermoSensor 接口输入参数
  92706. typedef struct tagNET_IN_CONTROL_THERMO_SENSOR
  92707. {
  92708. DWORD dwSize; // 结构体大小
  92709. int nChannel; // 通道
  92710. int nState; // 热成像机芯开关, 0 - 关闭;1 - 开启
  92711. BYTE byReserverd[4]; // 保留字节,用于字节对齐
  92712. } NET_IN_CONTROL_THERMO_SENSOR;
  92713. ///@brief CLIENT_ControlThermoSensor 接口输出参数
  92714. typedef struct tagNET_OUT_CONTROL_THERMO_SENSOR
  92715. {
  92716. DWORD dwSize; // 结构体大小
  92717. } NET_OUT_CONTROL_THERMO_SENSOR;
  92718. ///@brief CLIENT_GetDistanceRes 接口输入参数
  92719. typedef struct tagNET_IN_GET_DISTANCE_RES
  92720. {
  92721. DWORD dwSize; // 结构体大小
  92722. UINT nChannel; // 通道
  92723. } NET_IN_GET_DISTANCE_RES;
  92724. ///@brief 查询的的热成像日志类型
  92725. typedef enum tagEM_GET_DISTANCE_RES_STATUS
  92726. {
  92727. EM_GET_DISTANCE_RES_UNKNOWN = -1, // 未知
  92728. EM_GET_DISTANCE_RES_SUCCESS, // 成功
  92729. EM_GET_DISTANCE_RES_BEYOND_PITCH_LIMIT, // 超出俯仰角限制
  92730. EM_GET_DISTANCE_RES_INTERFACE_EXCEPTION, // 接口异常
  92731. EM_GET_DISTANCE_RES_GENERAL_ERROR, // 通用错误
  92732. EM_GET_DISTANCE_RES_LASER_NO_DATA_RETURN, // 激光测距仪无数据返回。
  92733. EM_GET_DISTANCE_RES_LASER_DATA_LENGTH_ERROR, // 激光测距仪返回的数据长度错误
  92734. EM_GET_DISTANCE_RES_LASER_DATA_FORMAT_ERROR, // 激光测距仪返回的数据格式不正确
  92735. EM_GET_DISTANCE_RES_LASER_DATA_VERIFIED_ERROR, // 激光测距仪返回的数据校验失败
  92736. }EM_GET_DISTANCE_RES_STATUS;
  92737. ///@brief CLIENT_GetDistanceRes 接口输出参数
  92738. typedef struct tagNET_OUT_GET_DISTANCE_RES
  92739. {
  92740. DWORD dwSize; // 结构体大小
  92741. UINT nDistance; // 目标距离,单位米
  92742. int nOverTimeStatus; // 超时状态(0,超时 1未超时)
  92743. EM_GET_DISTANCE_RES_STATUS emStatus; // 结果状态
  92744. } NET_OUT_GET_DISTANCE_RES;
  92745. ///@brief 热成像制冷机芯强制开启或关闭
  92746. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlThermoSensor(LLONG lLoginID, NET_IN_CONTROL_THERMO_SENSOR* pInParam, NET_OUT_CONTROL_THERMO_SENSOR* pOutParam,int nWaitTime);
  92747. ///@brief CLIENT_ControlThermoDelayShutDown 接口输入参数
  92748. typedef struct tagNET_IN_CONTROL_THERMO_DELAY_SHUT_DOWN_INFO
  92749. {
  92750. DWORD dwSize; // 结构体大小
  92751. int nChannel; // 通道
  92752. }NET_IN_CONTROL_THERMO_DELAY_SHUT_DOWN_INFO;
  92753. ///@brief CLIENT_ControlThermoDelayShutDown 接口输出参数
  92754. typedef struct tagNET_OUT_CONTROL_THERMO_DELAY_SHUT_DOWN_INFO
  92755. {
  92756. DWORD dwSize; // 结构体大小
  92757. }NET_OUT_CONTROL_THERMO_DELAY_SHUT_DOWN_INFO;
  92758. ///@brief 热成像制冷机芯延迟关闭(在制冷机芯关机倒计时出现后,每调用一次,延迟5分钟,最多3次)
  92759. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ControlThermoDelayShutDown(LLONG lLoginID, NET_IN_CONTROL_THERMO_DELAY_SHUT_DOWN_INFO* pInParam, NET_OUT_CONTROL_THERMO_DELAY_SHUT_DOWN_INFO* pOutParam,int nWaitTime);
  92760. ///@brief 获取画面中心位置目标的距离
  92761. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDistanceRes(LLONG lLoginID, NET_IN_GET_DISTANCE_RES* pInParam, NET_OUT_GET_DISTANCE_RES* pOutParam,int nWaitTime);
  92762. ///@brief 查询的的热成像日志类型
  92763. typedef enum tagEM_THREM_LOG_TYPE
  92764. {
  92765. EM_THREM_LOG_UNKNOWN = -1, // 未知,只用于查询结果,不用于查询条件
  92766. EM_THREM_LOG_ALL, // 全部,只用于查询条件,不用于查询结果
  92767. EM_THREM_LOG_CORE_OP, // 机芯开光操作相关
  92768. EM_THREM_LOG_LASER, // 激光测距操作相关
  92769. EM_THREM_LOG_PTZ, // 云台运动相关
  92770. EM_THREM_LOG_VISUAL_ZOOM, // 可见光变倍
  92771. EM_THREM_LOG_VISUAL_FOCUS, // 可见光聚焦
  92772. EM_THREM_LOG_THERM_ZOOM, // 热成像变倍
  92773. EM_THREM_LOG_THERM_FOCUS, // 热成像聚焦
  92774. EM_THREM_LOG_CLEAR_LOG, // 日志清除
  92775. EM_THREM_LOG_TEMPERATURE, // 记录的温度信息
  92776. }EM_THREM_LOG_TYPE;
  92777. ///@brief CLIENT_StartFindThermLog 接口输入参数
  92778. typedef struct tagNET_IN_START_FIND_THERM_LOG
  92779. {
  92780. DWORD dwSize; // 结构体大小
  92781. EM_THREM_LOG_TYPE emLogType; // 查询的日志类型
  92782. NET_TIME stuStartTime; // 查询的开始时间
  92783. NET_TIME stuEndTime; // 查询的结束时间
  92784. } NET_IN_START_FIND_THERM_LOG;
  92785. ///@brief CLIENT_StartFindThermLog 接口输出参数
  92786. typedef struct tagNET_OUT_START_FIND_THERM_LOG
  92787. {
  92788. DWORD dwSize; // 结构体大小
  92789. } NET_OUT_START_FIND_THERM_LOG;
  92790. ///@brief CLIENT_GetThermLogCount 接口输入参数
  92791. typedef struct tagNET_IN_GET_THERM_LOG_COUNT
  92792. {
  92793. DWORD dwSize; // 结构体大小
  92794. } NET_IN_GET_THERM_LOG_COUNT;
  92795. ///@brief CLIENT_GetThermLogCount 接口输出参数
  92796. typedef struct tagNET_OUT_GET_THERM_LOG_COUNT
  92797. {
  92798. DWORD dwSize; // 结构体大小
  92799. int nLogCount; // 日志数量
  92800. } NET_OUT_GET_THERM_LOG_COUNT;
  92801. ///@brief CLIENT_DoSeekFindThermLog 接口输入参数
  92802. typedef struct tagNET_IN_DO_SEEK_FIND_THERM_LOG
  92803. {
  92804. DWORD dwSize; // 结构体大小
  92805. int nOffset; // 从满足条件开始,偏移offset条记录开始查询
  92806. int nCount; // 每次查询的日志条数
  92807. BYTE byReserve[4]; // 保留字节,用于字节对齐
  92808. } NET_IN_DO_SEEK_FIND_THERM_LOG;
  92809. ///@brief 热成像日志信息
  92810. typedef struct tagNET_THERM_LOG
  92811. {
  92812. NET_TIME stuTime; // 日志时间
  92813. EM_THREM_LOG_TYPE emLogType; // 日志类型
  92814. char szDetail[512]; // 日志内容
  92815. BYTE byReserve[1024]; // 保留字节
  92816. } NET_THERM_LOG;
  92817. ///@brief CLIENT_DoSeekFindThermLog 接口输出参数
  92818. typedef struct tagNET_OUT_DO_SEEK_FIND_THERM_LOG
  92819. {
  92820. DWORD dwSize; // 结构体大小
  92821. int nMaxCount; // 用户指定分配结构体个数,需大于等于NET_IN_DO_SEEK_FIND_THERM_LOG的nCount
  92822. NET_THERM_LOG* pstuLogInfo; // 返回日志信息,缓存大小由用户指定
  92823. int nRetCount; // 查询到的条数,0 表示没有更多日志可以查询(不能以found小于请求的count作为判断的依据。设备有可能受内存等限制,无法一次性返回。)
  92824. BYTE byReserve[4]; // 保留字节,用于字节对齐
  92825. } NET_OUT_DO_SEEK_FIND_THERM_LOG;
  92826. ///@brief 开始查询热成像日志
  92827. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindThermLog(LLONG lLoginID, const NET_IN_START_FIND_THERM_LOG* pInParam, NET_OUT_START_FIND_THERM_LOG* pOutParam, int nWaitTime);
  92828. ///@brief 查询当前的热成像日志数量
  92829. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetThermLogCount(LLONG lLogID, NET_IN_GET_THERM_LOG_COUNT* pInParam, NET_OUT_GET_THERM_LOG_COUNT* pOutParam, int nWaitTime);
  92830. ///@brief 查询当前热成像日志记录
  92831. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoSeekFindThermLog(LLONG lLogID, NET_IN_DO_SEEK_FIND_THERM_LOG* pInParam, NET_OUT_DO_SEEK_FIND_THERM_LOG* pOutParam, int nWaitTime);
  92832. ///@brief 结束查询热成像日志
  92833. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindThermLog(LLONG lLogID);
  92834. ///@brief 课程状态
  92835. typedef enum tagEM_COURSE_STATE
  92836. {
  92837. EM_COURSE_STATE_UNKNOWN, // 未知
  92838. EM_COURSE_STATE_NOT_RECORD, // 未录制
  92839. EM_COURSE_STATE_IN_RECORDING, // 录制中
  92840. EM_COURSE_STATE_ALREADY_RECORDED, // 已录制
  92841. } EM_COURSE_STATE;
  92842. ///@brief 课程信息
  92843. typedef struct tagNET_COURSE
  92844. {
  92845. NET_TIME stuStartTime; // 开始时间
  92846. NET_TIME stuEndTime; // 结束时间
  92847. char szCourseName[DH_COMMON_STRING_64]; // 课程名称
  92848. char szTeacherName[DH_COMMON_STRING_64]; // 教师姓名
  92849. char szIntroduction[DH_COMMON_STRING_128]; // 课程简介
  92850. int nCanStartStreamNum; // 能否被拉流逻辑通道数
  92851. int nIsRecordNum; // 是否要录像逻辑通道号数
  92852. EM_CAN_START_STREAM emCanStartStream[64]; // 能否被拉流
  92853. EM_IS_RECORD emIsRecord[64]; // 是否要录像
  92854. int nCompositeChannelMode; // 组合通道模式; 0: 无效, 1: 电影模式, 2: 常态模式, 3: 精品模式, <0:自定义模式
  92855. EM_COURSE_STATE emCourseState; // 课程状态
  92856. BYTE byReserved[128]; // 保留字节
  92857. } NET_COURSE;
  92858. ///@brief CLIENT_AddCourse 入参
  92859. typedef struct tagNET_IN_ADD_COURSE
  92860. {
  92861. DWORD dwSize; // 结构体大小
  92862. int nCourseNum; // 课程数量
  92863. NET_COURSE stuCourseInfo[64]; // 课程信息
  92864. }NET_IN_ADD_COURSE;
  92865. ///@brief CLIENT_AddCourse 出参
  92866. typedef struct tagNET_OUT_ADD_COURSE
  92867. {
  92868. DWORD dwSize; // 结构体大小
  92869. int nIdNum; // 课程ID数量
  92870. int nId[64]; // 返回新增的课程ID; -1:数据库中无此记录, -2:记录已存在, -3:数据库已满
  92871. }NET_OUT_ADD_COURSE;
  92872. ///@brief 添加新的课程记录
  92873. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddCourse(LLONG lLoginID, const NET_IN_ADD_COURSE *pstInParam, NET_OUT_ADD_COURSE *pstOutParam, int nWaitTime= NET_INTERFACE_DEFAULT_TIMEOUT);
  92874. ///@brief CLIENT_AddCourseOverWrite 入参
  92875. typedef struct tagNET_IN_ADD_COURSE_OVERWRITE
  92876. {
  92877. DWORD dwSize; // 结构体大小
  92878. int nCourseNum; // 课程数量
  92879. NET_COURSE stuCourseInfo[64]; // 课程信息
  92880. }NET_IN_ADD_COURSE_OVERWRITE;
  92881. ///@brief CLIENT_AddCourseOverWrite 出参
  92882. typedef struct tagNET_OUT_ADD_COURSE_OVERWRITE
  92883. {
  92884. DWORD dwSize; // 结构体大小
  92885. int nIdNum; // 课程ID数量
  92886. int nId[64]; // 返回新增的课程ID; -1:数据库中无此记录, -3:数据库已满
  92887. NET_COURSE stuOverwriteCourseInfo[64]; // 被覆盖课程信息
  92888. int nOverwriteTotalCount; // 被覆盖的总个数
  92889. }NET_OUT_ADD_COURSE_OVERWRITE;
  92890. ///@brief 添加新的课程记录,记录在数据库中已存在则进行覆盖
  92891. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddCourseOverWrite(LLONG lLoginID, const NET_IN_ADD_COURSE_OVERWRITE *pstInParam, NET_OUT_ADD_COURSE_OVERWRITE *pstOutParam, int nWaitTime);
  92892. ///@brief CLIENT_DeleteCourse 入参
  92893. typedef struct tagNET_IN_DELETE_COURSE
  92894. {
  92895. DWORD dwSize; // 结构体大小
  92896. int nIdNum; // 课程ID数量
  92897. int nId[64]; // 课程ID
  92898. }NET_IN_DELETE_COURSE;
  92899. ///@brief CLIENT_DeleteCourse 出参
  92900. typedef struct tagNET_OUT_DELETE_COURSE
  92901. {
  92902. DWORD dwSize; // 结构体大小
  92903. int nResultIdNum; // 课程ID数量
  92904. int nResultId[64]; // 课程ID; -1:删除成功, 原id:删除失败
  92905. }NET_OUT_DELETE_COURSE;
  92906. ///@brief 删除课程
  92907. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteCourse(LLONG lLoginID, const NET_IN_DELETE_COURSE *pstInParam, NET_OUT_DELETE_COURSE *pstOutParam, int nWaitTime= NET_INTERFACE_DEFAULT_TIMEOUT);
  92908. ///@brief CLIENT_ModifyCourse 入参
  92909. typedef struct tagNET_IN_MODIFY_COURSE
  92910. {
  92911. DWORD dwSize; // 结构体大小
  92912. int nCourseNum; // 课程数量
  92913. NET_COURSE stuCourseInfo[64]; // 课程信息
  92914. int nId[64]; // 课程ID
  92915. }NET_IN_MODIFY_COURSE;
  92916. ///@brief CLIENT_ModifyCourse 出参
  92917. typedef struct tagNET_OUT_MODIFY_COURSE
  92918. {
  92919. DWORD dwSize; // 结构体大小
  92920. int nResultIDNum; // 修改的课程ID数量
  92921. int nResultID[64]; // 修改的课程ID; 原ID: 修改成功, -1: 数据库中无此记录, -2: 时间冲突
  92922. }NET_OUT_MODIFY_COURSE;
  92923. ///@brief 修改课程
  92924. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyCourse(LLONG lLoginID, const NET_IN_MODIFY_COURSE *pstInParam, NET_OUT_MODIFY_COURSE *pstOutParam, int nWaitTime= NET_INTERFACE_DEFAULT_TIMEOUT);
  92925. ///@brief CLIENT_QueryCourseOpen 入参
  92926. typedef struct tagNET_IN_QUERY_COURSE_OPEN
  92927. {
  92928. DWORD dwSize; // 结构体大小
  92929. NET_TIME stuStartTime; // 查询开始时间
  92930. NET_TIME stuEndTime; // 查询结束时间
  92931. }NET_IN_QUERY_COURSE_OPEN;
  92932. ///@brief CLIENT_QueryCourseOpen 出参
  92933. typedef struct tagNET_OUT_QUERY_COURSE_OPEN
  92934. {
  92935. DWORD dwSize; // 结构体大小
  92936. int nTotalNum; // 查询到的总个数
  92937. int nFindID; // 查询的句柄号
  92938. }NET_OUT_QUERY_COURSE_OPEN;
  92939. ///@brief 开始查询课程
  92940. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryCourseOpen(LLONG lLoginID, const NET_IN_QUERY_COURSE_OPEN *pstInParam, NET_OUT_QUERY_COURSE_OPEN *pstOutParam, int nWaitTime= NET_INTERFACE_DEFAULT_TIMEOUT);
  92941. ///@brief CLIENT_QueryCourse 入参
  92942. typedef struct tagNET_IN_QUERY_COURSE
  92943. {
  92944. DWORD dwSize; // 结构体大小
  92945. int nFindID; // 查询句柄号
  92946. int nOffset; // 开始查询偏移
  92947. int nCount; // 需要查询的个数
  92948. }NET_IN_QUERY_COURSE;
  92949. ///@brief 课程信息和ID
  92950. typedef struct tagNET_COURSE_RESULT
  92951. {
  92952. NET_COURSE stuCourseInfo; // 课程信息
  92953. int nId; // 课程ID
  92954. BYTE byReserved[4]; // 保留字节
  92955. } NET_COURSE_RESULT;
  92956. ///@brief CLIENT_QueryCourse 出参
  92957. typedef struct tagNET_OUT_QUERY_COURSE
  92958. {
  92959. DWORD dwSize; // 结构体大小
  92960. int nCountResult; // 查找到的个数
  92961. NET_COURSE_RESULT stuCourseResult[64]; // 查询的课程信息结果
  92962. }NET_OUT_QUERY_COURSE;
  92963. ///@brief 查询课程
  92964. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryCourse(LLONG lLoginID, const NET_IN_QUERY_COURSE *pstInParam, NET_OUT_QUERY_COURSE *pstOutParam, int nWaitTime= NET_INTERFACE_DEFAULT_TIMEOUT);
  92965. ///@brief CLIENT_QueryCourseClose 入参
  92966. typedef struct tagNET_IN_QUERY_COURSE_CLOSE
  92967. {
  92968. DWORD dwSize; // 结构体大小
  92969. int nFindID; // 课程数量
  92970. }NET_IN_QUERY_COURSE_CLOSE;
  92971. ///@brief CLIENT_QueryCourseClose 出参
  92972. typedef struct tagNET_OUT_QUERY_COURSE_CLOSE
  92973. {
  92974. DWORD dwSize; // 结构体大小
  92975. }NET_OUT_QUERY_COURSE_CLOSE;
  92976. ///@brief 关闭课程查询
  92977. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryCourseClose(LLONG lLoginID, const NET_IN_QUERY_COURSE_CLOSE *pstInParam, NET_OUT_QUERY_COURSE_CLOSE *pstOutParam, int nWaitTime= NET_INTERFACE_DEFAULT_TIMEOUT);
  92978. ///@brief 打开播放组
  92979. CLIENT_NET_API LLONG CALL_METHOD CLIENT_OpenPlayGroup();
  92980. ///@brief CLIENT_AddPlayHandleToPlayGroup 输入参数
  92981. typedef struct tagNET_IN_ADD_PLAYHANDLE_TO_PLAYGROUP
  92982. {
  92983. DWORD dwSize; // 结构体大小
  92984. BYTE byReserved[4]; // 字节对齐
  92985. LLONG lPlayGroupHandle; // 播放组句柄,CLIENT_OpenPlayGroup 返回
  92986. LLONG lPlayHandle; // 播放句柄(当前只支持回放)
  92987. }NET_IN_ADD_PLAYHANDLE_TO_PLAYGROUP;
  92988. ///@brief CLIENT_AddPlayHandleToPlayGroup 输出参数
  92989. typedef struct tagNET_OUT_ADD_PLAYHANDLE_TO_PLAYGROUP
  92990. {
  92991. DWORD dwSize; // 结构体大小
  92992. }NET_OUT_ADD_PLAYHANDLE_TO_PLAYGROUP;
  92993. ///@brief 将播放句柄加入播放组,保证同步播放
  92994. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddPlayHandleToPlayGroup(const NET_IN_ADD_PLAYHANDLE_TO_PLAYGROUP* pInParam, NET_OUT_ADD_PLAYHANDLE_TO_PLAYGROUP* pOutParam);
  92995. ///@brief 暂停/恢复播放组
  92996. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PausePlayGroup(LLONG lPlayGroupHandle, BOOL bPause);
  92997. ///@brief CLIENT_QueryPlayGroupTime 输入参数
  92998. typedef struct tagNET_IN_QUERY_PLAYGROUP_TIME
  92999. {
  93000. DWORD dwSize; // 结构体大小
  93001. BYTE byReserved[4]; // 字节对齐
  93002. LLONG lPlayGroupHandle; // 播放组句柄,CLIENT_OpenPlayGroup 返回值
  93003. }NET_IN_QUERY_PLAYGROUP_TIME;
  93004. ///@brief CLIENT_QueryPlayGroupTime 输出参数
  93005. typedef struct tagNET_OUT_QUERY_PLAYGROUP_TIME
  93006. {
  93007. DWORD dwSize; // 结构体大小
  93008. NET_TIME_EX stuTime; // 时间
  93009. }NET_OUT_QUERY_PLAYGROUP_TIME;
  93010. ///@brief 获取播放组时间
  93011. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryPlayGroupTime(const NET_IN_QUERY_PLAYGROUP_TIME* pInParam, NET_OUT_QUERY_PLAYGROUP_TIME* pOutParam);
  93012. ///@brief CLIENT_SetPlayGroupBaseChannel 输入参数
  93013. typedef struct tagNET_IN_SET_PLAYGROUP_BASECHANNEL
  93014. {
  93015. DWORD dwSize; // 结构体大小
  93016. BYTE byReserved[4]; // 字节对齐
  93017. LLONG lPlayGroupHandle; // 播放组句柄,CLIENT_OpenPlayGroup 返回值
  93018. LLONG lPlayHandle; // 播放句柄(当前只支持回放)
  93019. }NET_IN_SET_PLAYGROUP_BASECHANNEL;
  93020. ///@brief CLIENT_SetPlayGroupBaseChannel 输出参数
  93021. typedef struct tagNET_OUT_SET_PLAYGROUP_BASECHANNEL
  93022. {
  93023. DWORD dwSize; // 结构体大小
  93024. }NET_OUT_SET_PLAYGROUP_BASECHANNEL;
  93025. ///@brief 设置播放组基准通道
  93026. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPlayGroupBaseChannel(const NET_IN_SET_PLAYGROUP_BASECHANNEL* pInParam, NET_OUT_SET_PLAYGROUP_BASECHANNEL* pOutParam);
  93027. ///@brief CLIENT_DeleteFromPlayGroup 输入参数
  93028. typedef struct tagNET_IN_DELETE_FROM_PLAYGROUP
  93029. {
  93030. DWORD dwSize; // 结构体大小
  93031. BYTE byReserved[4]; // 字节对齐
  93032. LLONG lPlayGroupHandle; // 播放组句柄,CLIENT_OpenPlayGroup 返回值
  93033. LLONG lPlayHandle; // 播放句柄(当前只支持回放)
  93034. }NET_IN_DELETE_FROM_PLAYGROUP;
  93035. ///@brief CLIENT_DeleteFromPlayGroup 输出参数
  93036. typedef struct tagNET_OUT_DELETE_FROM_PLAYGROUP
  93037. {
  93038. DWORD dwSize; // 结构体大小
  93039. }NET_OUT_DELETE_FROM_PLAYGROUP;
  93040. ///@brief 将播放句柄从播放组中移除
  93041. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteFromPlayGroup(const NET_IN_DELETE_FROM_PLAYGROUP* pInParam, NET_OUT_DELETE_FROM_PLAYGROUP* pOutParam);
  93042. ///@brief 关闭播放组
  93043. // lPlayGroupHandle 是 CLIENT_OpenPlayGroup 的返回值
  93044. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ClosePlayGroup(LLONG lPlayGroupHandle);
  93045. ///@brief CLIENT_GetChannelOfAudioInput 输入结构体
  93046. typedef struct tagNET_IN_GET_CHANNEL_OF_AUDIO_INPUT
  93047. {
  93048. DWORD dwSize; // 结构体大小
  93049. }NET_IN_GET_CHANNEL_OF_AUDIO_INPUT;
  93050. ///@brief CLIENT_GetChannelOfAudioInput 输出结构体
  93051. typedef struct tagNET_OUT_GET_CHANNEL_OF_AUDIO_INPUT
  93052. {
  93053. DWORD dwSize; // 结构体大小
  93054. UINT nChannels; // 支持的音频输入通道数
  93055. }NET_OUT_GET_CHANNEL_OF_AUDIO_INPUT;
  93056. ///@brief CLIENT_GetChannelOfAudioOutput 输入结构体
  93057. typedef struct tagNET_IN_GET_CHANNEL_OF_AUDIO_OUTPUT
  93058. {
  93059. DWORD dwSize; // 结构体大小
  93060. }NET_IN_GET_CHANNEL_OF_AUDIO_OUTPUT;
  93061. ///@brief CLIENT_GetChannelOfAudioOutput 输出结构体
  93062. typedef struct tagNET_OUT_GET_CHANNEL_OF_AUDIO_OUTPUT
  93063. {
  93064. DWORD dwSize; // 结构体大小
  93065. UINT nChannels; // 支持的音频输出通道数
  93066. }NET_OUT_GET_CHANNEL_OF_AUDIO_OUTPUT;
  93067. ///@brief 获取音频输入的通道数
  93068. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetChannelOfAudioInput(LLONG lLoginID, NET_IN_GET_CHANNEL_OF_AUDIO_INPUT* pInParam, NET_OUT_GET_CHANNEL_OF_AUDIO_INPUT* pOutParam,int nWaitTime);
  93069. ///@brief 获取音频输出的通道数
  93070. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetChannelOfAudioOutput(LLONG lLoginID, NET_IN_GET_CHANNEL_OF_AUDIO_OUTPUT* pInParam, NET_OUT_GET_CHANNEL_OF_AUDIO_OUTPUT* pOutParam,int nWaitTime);
  93071. ///@brief CLIENT_SetChannelOfAudioVolume 输入结构体
  93072. typedef struct tagNET_IN_SET_CHANNEL_OF_AUDIO_VOLUME_INFO
  93073. {
  93074. DWORD dwSize; // 结构体大小
  93075. int nChannel; // 音频输出通道
  93076. int nVolume; // 音量,范围[0~100]
  93077. }NET_IN_SET_CHANNEL_OF_AUDIO_VOLUME_INFO;
  93078. ///@brief CLIENT_SetChannelOfAudioVolume 输出结构体
  93079. typedef struct tagNET_OUT_SET_CHANNEL_OF_AUDIO_VOLUME_INFO
  93080. {
  93081. DWORD dwSize; // 结构体大小
  93082. }NET_OUT_SET_CHANNEL_OF_AUDIO_VOLUME_INFO;
  93083. ///@brief 设置通道音频音量大小
  93084. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetChannelOfAudioVolume(LLONG lLoginID, NET_IN_SET_CHANNEL_OF_AUDIO_VOLUME_INFO *pInParam, NET_OUT_SET_CHANNEL_OF_AUDIO_VOLUME_INFO *pOutParam, int nWaitTime);
  93085. ///@brief CLIENT_SetChannelOfAudioEnable 输入结构体
  93086. typedef struct tagNET_IN_SET_CHANNEL_OF_AUDIO_ENABLE_INFO
  93087. {
  93088. DWORD dwSize; // 结构体大小
  93089. int nChannel; // 音频输出通道
  93090. BOOL bEnable; // 使能:TRUE 不使能:FALSE
  93091. }NET_IN_SET_CHANNEL_OF_AUDIO_ENABLE_INFO;
  93092. ///@brief CLIENT_SetChannelOfAudioEnable 输出结构体
  93093. typedef struct tagNET_OUT_SET_CHANNEL_OF_AUDIO_ENABLE_INFO
  93094. {
  93095. DWORD dwSize; // 结构体大小
  93096. }NET_OUT_SET_CHANNEL_OF_AUDIO_ENABLE_INFO;
  93097. ///@brief 设置通道音频开关
  93098. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetChannelOfAudioEnable(LLONG lLoginID, NET_IN_SET_CHANNEL_OF_AUDIO_ENABLE_INFO *pInParam, NET_OUT_SET_CHANNEL_OF_AUDIO_ENABLE_INFO *pOutParam, int nWaitTime);
  93099. ///@brief 音频源设备信息
  93100. typedef struct tagNET_DEV_ID_AUDIO_SOURCE_INFO
  93101. {
  93102. char szDevice[32]; // 设备ID
  93103. EM_VIDEO_STREAM emVideoStream; // 视频码流
  93104. UINT nVideoChannel; // 视频通道
  93105. BYTE byReserved[1020]; // 保留字节
  93106. }NET_DEV_ID_AUDIO_SOURCE_INFO;
  93107. ///@brief CLIENT_BindAudioSourceDevIDInfo 输入结构体
  93108. typedef struct tagNET_IN_BIND_AUDIO_SOURCE_DEV_ID_INFO
  93109. {
  93110. DWORD dwSize; // 结构体大小
  93111. int nChannel; // 音频输出通道
  93112. NET_DEV_ID_AUDIO_SOURCE_INFO stuAudioSourceInfo; // 音频源信息
  93113. }NET_IN_BIND_AUDIO_SOURCE_DEV_ID_INFO;
  93114. ///@brief CLIENT_BindAudioSourceDevIDInfo 输出结构体
  93115. typedef struct tagNET_OUT_BIND_AUDIO_SOURCE_DEV_ID_INFO
  93116. {
  93117. DWORD dwSize; // 结构体大小
  93118. }NET_OUT_BIND_AUDIO_SOURCE_DEV_ID_INFO;
  93119. ///@brief 绑定设备ID音频源信息
  93120. CLIENT_NET_API BOOL CALL_METHOD CLIENT_BindAudioSourceDevIDInfo(LLONG lLoginID, NET_IN_BIND_AUDIO_SOURCE_DEV_ID_INFO *pInParam, NET_OUT_BIND_AUDIO_SOURCE_DEV_ID_INFO *pOutParam, int nWaitTime);
  93121. ///@brief 视频输入通道信息
  93122. typedef struct tagNET_AUDIO_SOURCE_DEV_VIDEO_INPUTS_INFO
  93123. {
  93124. char szChnName[32]; // 通道名称
  93125. char szCaption[32]; // 通道备注
  93126. char szControlID[64]; // 控制ID
  93127. char szMainStreamUrl[256]; // 主码流url地址
  93128. char szExtraStreamUrl[256]; // 辅码流url地址
  93129. char szOptionalMainUrls[8][256]; // 备用主码流地址列表
  93130. int nOptionalMainUrlsNum; // 备用主码流地址列表下发个数
  93131. char szOptionalExtraUrls[8][256]; // 备用辅码流地址列表
  93132. int nOptionalExtraUrlsNum; // 备用辅码流地址列表下发个数
  93133. NET_SOURCE_STREAM_ENCRYPT stuSourceStreamEncrypt; // 码流加密方式
  93134. EM_STREAM_TRANSMISSION_SERVICE_TYPE emServiceType; // 指码流传输的服务类型
  93135. BYTE byReserved[1020];
  93136. }NET_AUDIO_SOURCE_DEV_VIDEO_INPUTS_INFO;
  93137. ///@brief 音频源设备清晰度
  93138. typedef enum tagEM_AUDIO_SOURCE_DEV_DEFINITION
  93139. {
  93140. EM_AUDIO_SOURCE_DEV_DEFINITION_UNKNOWN, // 未知
  93141. EM_AUDIO_SOURCE_DEV_DEFINITION_STANDARD, // 标清
  93142. EM_AUDIO_SOURCE_DEV_DEFINITION_HIGH, // 高清
  93143. }EM_AUDIO_SOURCE_DEV_DEFINITION;
  93144. ///@brief 连接设备的协议类型
  93145. typedef enum tagEM_AUDIO_SOURCE_DEV_PROTOCOL_TYPE
  93146. {
  93147. EM_DEV_PROTOCOL_TYPE_UNKNOWN, // 未知
  93148. EM_DEV_PROTOCOL_TYPE_DAHUA, // Dahua
  93149. EM_DEV_PROTOCOL_TYPE_DAHUA2, // Dahua2
  93150. EM_DEV_PROTOCOL_TYPE_DAHUA3, // Dahua3
  93151. EM_DEV_PROTOCOL_TYPE_PRIVATE, // Private
  93152. EM_DEV_PROTOCOL_TYPE_GENERAL, // General
  93153. }EM_AUDIO_SOURCE_DEV_PROTOCOL_TYPE;
  93154. ///@brief 音频源设备信息
  93155. typedef struct tagNET_AUDIO_SOURCE_DEV_INFO
  93156. {
  93157. BOOL bEnable; // 固定 TRUE
  93158. EM_AUDIO_SOURCE_DEV_DEFINITION emVideoDefinition; // 视频清晰度
  93159. EM_AUDIO_SOURCE_DEV_PROTOCOL_TYPE emProtocolType; // 协议类型
  93160. UINT nPort; // 端口
  93161. char szAddress[40]; // 备地址或域名
  93162. char szUser[64]; // 用户名
  93163. char szPassword[64]; // 密码
  93164. char szName[128]; // 机器名称
  93165. UINT nVideoInputChannels; // 视频输入通道数
  93166. UINT nAudioInputChannels; // 音频输入通道数
  93167. UINT nHttpPort; // http端口号
  93168. UINT nRtspPort; // Rtsp端口号
  93169. char szDeviceClass[32]; // 设备类型
  93170. char szDeviceType[32]; // 设备型号
  93171. char szHint[32]; // 视频源
  93172. NET_AUDIO_SOURCE_DEV_VIDEO_INPUTS_INFO *pVideoInput; // 视频输入通道
  93173. int nVideoInputsNum; // 实际返回视频输入通道个数
  93174. BYTE byReserved[1020]; // 保留字节
  93175. }NET_AUDIO_SOURCE_DEV_INFO;
  93176. ///@brief 音频源信息
  93177. typedef struct tagNET_DEV_INFO_AUDIO_SOURCE_INFO
  93178. {
  93179. BOOL bEnable; // 设备是否启用,启用:TRUE 不启用:FALSE
  93180. EM_VIDEO_STREAM emVideoStream; // 视频码流
  93181. UINT nVideoChannel; // 视频通道
  93182. UINT nInterval; // 轮巡时间间隔,单位:秒
  93183. NET_AUDIO_SOURCE_DEV_INFO stuDeviceInfo; // 设备信息
  93184. BYTE byReserved[1024]; // 保留字节
  93185. }NET_DEV_INFO_AUDIO_SOURCE_INFO;
  93186. ///@brief CLIENT_BindAudioSourceDeviceInfo 输入结构体
  93187. typedef struct tagNET_IN_BIND_AUDIO_SOURCE_DEV_INFO
  93188. {
  93189. DWORD dwSize; // 结构体大小
  93190. int nChannel; // 音频输出通道
  93191. NET_DEV_INFO_AUDIO_SOURCE_INFO stuAudioSourceInfo; // 音频源信息
  93192. }NET_IN_BIND_AUDIO_SOURCE_DEV_INFO;
  93193. ///@brief CLIENT_BindAudioSourceDeviceInfo 输出结构体
  93194. typedef struct tagNET_OUT_BIND_AUDI0_SOURCE_DEV_INFO
  93195. {
  93196. DWORD dwSize; // 结构体大小
  93197. }NET_OUT_BIND_AUDIO_SOURCE_DEV_INFO;
  93198. ///@brief 绑定音频源设备信息
  93199. CLIENT_NET_API BOOL CALL_METHOD CLIENT_BindAudioSourceDeviceInfo(LLONG lLoginID, NET_IN_BIND_AUDIO_SOURCE_DEV_INFO *pInParam, NET_OUT_BIND_AUDIO_SOURCE_DEV_INFO *pOutParam, int nWaitTime);
  93200. ///@brief CLIENT_ClearBindAudioSourceDevInfo 输入结构体
  93201. typedef struct tagNET_IN_CLEAR_BIND_AUDIO_SOURCE_DEV_INFO
  93202. {
  93203. DWORD dwSize; // 结构体大小
  93204. int nChannel; // 音频输出通道
  93205. }NET_IN_CLEAR_BIND_AUDIO_SOURCE_DEV_INFO;
  93206. ///@brief CLIENT_ClearBindAudioSourceDevInfo 输出结构体
  93207. typedef struct tagNET_OUT_CLEAR_BIND_AUDIO_SOURCE_DEV_INFO
  93208. {
  93209. DWORD dwSize; // 结构体大小
  93210. }NET_OUT_CLEAR_BIND_AUDIO_SOURCE_DEV_INFO;
  93211. ///@brief 清除绑定音频源设备信息
  93212. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ClearBindAudioSourceDevInfo(LLONG lLoginID, NET_IN_CLEAR_BIND_AUDIO_SOURCE_DEV_INFO *pInParam, NET_OUT_CLEAR_BIND_AUDIO_SOURCE_DEV_INFO *pOutParam, int nWaitTime);
  93213. ///@brief CLIENT_RemoteSleep 输入接口参数
  93214. typedef struct tagNET_IN_REMOTE_SLEEP
  93215. {
  93216. DWORD dwSize; // 结构体大小
  93217. }NET_IN_REMOTE_SLEEP;
  93218. ///@brief CLIENT_RemoteSleep 输出接口参数
  93219. typedef struct tagNET_OUT_REMOTE_SLEEP
  93220. {
  93221. DWORD dwSize; // 结构体大小
  93222. }NET_OUT_REMOTE_SLEEP;
  93223. ///@brief 远程休眠模式
  93224. ///@param[in] lLoginID登录句柄
  93225. ///@param[in] pInParam 接口输入参数
  93226. ///@param[out] pOutParam 接口输出参数
  93227. ///@param[in] nWaitTime 接口超时时间 单位毫秒
  93228. ///@return BOOL TRUE: 成功, FLASE:失败
  93229. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteSleep(LLONG lLoginID, NET_IN_REMOTE_SLEEP* pInParam, NET_OUT_REMOTE_SLEEP* pOutParam, int nWaitTime);
  93230. ///@brief CLIENT_ExitApp 接口输入参数
  93231. typedef struct tagNET_IN_EXIT_APP
  93232. {
  93233. DWORD dwSize; // 结构体大小
  93234. } NET_IN_EXIT_APP;
  93235. ///@brief CLIENT_ExitApp 接口输出参数
  93236. typedef struct tagNET_OUT_EXIT_APP
  93237. {
  93238. DWORD dwSize; // 结构体大小
  93239. } NET_OUT_EXIT_APP;
  93240. ///@brief 退出应用程序
  93241. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ExitApp(LLONG lLoginID, NET_IN_EXIT_APP* pInParam, NET_OUT_EXIT_APP* pOutParam, int nWaitTime);
  93242. ///@brief CLIENT_RebootDevice 接口输入参数
  93243. typedef struct tagNET_IN_REBOOT_DEVICE
  93244. {
  93245. DWORD dwSize; // 结构体大小
  93246. } NET_IN_REBOOT_DEVICE;
  93247. ///@brief CLIENT_RebootDevice 接口输出参数
  93248. typedef struct tagNET_OUT_REBOOT_DEVICE
  93249. {
  93250. DWORD dwSize; // 结构体大小
  93251. } NET_OUT_REBOOT_DEVICE;
  93252. ///@brief 四合一烟感平台下发整机重启
  93253. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RebootDevice(LLONG lLoginID, NET_IN_REBOOT_DEVICE* pInParam, NET_OUT_REBOOT_DEVICE* pOutParam, int nWaitTime);
  93254. ///@brief CLIENT_GetWorkModeCaps 接口输入参数
  93255. typedef struct tagNET_IN_GET_WORK_MODE_CAPS
  93256. {
  93257. DWORD dwSize; // 结构体大小
  93258. } NET_IN_GET_WORK_MODE_CAPS;
  93259. ///@brief CLIENT_GetWorkModeCaps 接口输出参数
  93260. typedef struct tagNET_OUT_GET_WORK_MODE_CAPS
  93261. {
  93262. DWORD dwSize; // 结构体大小
  93263. BOOL bSupportWorkMode; // 是否支持工作模式
  93264. int nWorkModesCount; // 具体支持的工作模式个数
  93265. EM_WORK_MODE emWorkModes[8]; // 具体支持的工作模式
  93266. } NET_OUT_GET_WORK_MODE_CAPS;
  93267. ///@brief 获取电池相机的工作模式能力
  93268. ///@param[in] lLoginID 登录句柄
  93269. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  93270. ///@param[out]pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  93271. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  93272. ///@return TRUE表示成功, FALSE表示失败
  93273. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetWorkModeCaps(LLONG lLoginID, NET_IN_GET_WORK_MODE_CAPS* pstuInParam, NET_OUT_GET_WORK_MODE_CAPS* pstuOutParam, int nWaitTime);
  93274. ///@brief CLIENT_DelayReboot 接口输入参数
  93275. typedef struct tagNET_IN_DELAY_REBOOT
  93276. {
  93277. DWORD dwSize; // 结构体大小
  93278. UINT nDelay; // 时间,单位:s 范围:0-10000
  93279. } NET_IN_DELAY_REBOOT;
  93280. ///@brief CLIENT_DelayReboot 接口输出参数
  93281. typedef struct tagNET_OUT_DELAY_REBOOT
  93282. {
  93283. DWORD dwSize; // 结构体大小
  93284. } NET_OUT_DELAY_REBOOT;
  93285. ///@brief 重启设备
  93286. ///@param[in] lLoginID 登录句柄
  93287. ///@param[in] pstuInParam 接口输入参数
  93288. ///@param[out]pstuOutParam 接口输出参数
  93289. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  93290. ///@return TRUE表示成功, FALSE表示失败
  93291. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelayReboot(LLONG lLoginID, NET_IN_DELAY_REBOOT* pstuInParam, NET_OUT_DELAY_REBOOT* pstuOutParam, int nWaitTime);
  93292. ///@brief CLIENT_SetPlayGroupDirection 输入参数
  93293. typedef struct tagNET_IN_SET_PLAYGROUP_DIRECTION
  93294. {
  93295. DWORD dwSize; // 结构体大小
  93296. int nPlayDirection; // 播放方向, 0:正放; 1:倒放
  93297. LLONG lPlayGroupHandle; // 播放组句柄,由 CLIENT_OpenPlayGroup 返回
  93298. }NET_IN_SET_PLAYGROUP_DIRECTION;
  93299. ///@brief CLIENT_SetPlayGroupDirection 输出参数
  93300. typedef struct tagNET_OUT_SET_PLAYGROUP_DIRECTION
  93301. {
  93302. DWORD dwSize; // 结构体大小
  93303. }NET_OUT_SET_PLAYGROUP_DIRECTION;
  93304. ///@brief 设置播放组播放方向
  93305. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPlayGroupDirection(const NET_IN_SET_PLAYGROUP_DIRECTION* pInParam, NET_OUT_SET_PLAYGROUP_DIRECTION* pOutParam);
  93306. ///@brief CLIENT_SetPlayGroupSpeed 输入参数
  93307. typedef struct tagNET_IN_SET_PLAYGROUP_SPEED
  93308. {
  93309. DWORD dwSize; // 结构体大小
  93310. EM_PLAY_BACK_SPEED emSpeed; // 播放速度
  93311. LLONG lPlayGroupHandle; // 播放组句柄,由 CLIENT_OpenPlayGroup 返回
  93312. }NET_IN_SET_PLAYGROUP_SPEED;
  93313. ///@brief CLIENT_SetPlayGroupSpeed 输出参数
  93314. typedef struct tagNET_OUT_SET_PLAYGROUP_SPEED
  93315. {
  93316. DWORD dwSize; // 结构体大小
  93317. }NET_OUT_SET_PLAYGROUP_SPEED;
  93318. ///@brief 设置播放组播放速度
  93319. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPlayGroupSpeed(const NET_IN_SET_PLAYGROUP_SPEED* pInParam, NET_OUT_SET_PLAYGROUP_SPEED* pOutParam);
  93320. ///@brief 播放组快放
  93321. // lPlayGroupHandle 是播放组句柄,由 CLIENT_OpenPlayGroup 返回
  93322. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FastPlayGroup(LLONG lPlayGroupHandle);
  93323. ///@brief 播放组慢放
  93324. // lPlayGroupHandle 是播放组句柄,由 CLIENT_OpenPlayGroup 返回
  93325. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SlowPlayGroup(LLONG lPlayGroupHandle);
  93326. ///@brief 播放组正常播放
  93327. // lPlayGroupHandle 是播放组句柄,由 CLIENT_OpenPlayGroup 返回
  93328. CLIENT_NET_API BOOL CALL_METHOD CLIENT_NormalPlayGroup(LLONG lPlayGroupHandle);
  93329. ///@brief AOL异步搜索设备入参(组播)
  93330. typedef struct tagNET_IN_AOL_STARTSEARCH_DEVICE
  93331. {
  93332. DWORD dwSize; // 结构体大小
  93333. char szLocalIp[MAX_LOCAL_IP_LEN]; // 发起搜索的本地IP
  93334. fSearchDevicesCBEx cbSearchDevices; // 设备信息回调函数
  93335. void* pUserData; // 用户自定义数据
  93336. }NET_IN_AOL_STARTSEARCH_DEVICE;
  93337. ///@brief AOL异步搜索设备出参
  93338. typedef struct tagNET_OUT_AOL_STARTSEARCH_DEVICE
  93339. {
  93340. DWORD dwSize; // 结构体大小
  93341. }NET_OUT_AOL_STARTSEARCH_DEVICE;
  93342. ///@brief AOL异步搜索设备
  93343. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartSearchDevicesForAOL(NET_IN_AOL_STARTSEARCH_DEVICE* pInParam, NET_OUT_AOL_STARTSEARCH_DEVICE* pOutParam);
  93344. ///@brief CLIENT_SearchDevicesByIPsForAOL 输入参数
  93345. typedef struct tagNET_IN_AOL_SEARCHDEVICE_BYIPS
  93346. {
  93347. DWORD dwSize; // 结构体大小
  93348. int nIpNum; // 当前搜索的IP个数
  93349. char szIP[DH_MAX_SAERCH_IP_NUM][64]; // 具体待搜索的IP信息
  93350. char* szLocalIp; // 发起搜索的本地IP
  93351. fSearchDevicesCB cbSearchDevices; // 回调函数
  93352. LDWORD dwUserData; // 用户数据
  93353. }NET_IN_AOL_SEARCHDEVICE_BYIPS;
  93354. ///@brief CLIENT_SearchDevicesByIPsForAOL 输出参数
  93355. typedef struct tagNET_OUT_AOL_SEARCHDEVICE_BYIPS
  93356. {
  93357. DWORD dwSize; // 结构体大小
  93358. }NET_OUT_AOL_SEARCHDEVICE_BYIPS;
  93359. ///@brief AOL 指定IP搜索设备
  93360. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SearchDevicesByIPsForAOL(NET_IN_AOL_SEARCHDEVICE_BYIPS* pInParam, NET_OUT_AOL_SEARCHDEVICE_BYIPS* pOutParam, int nWaitTime);
  93361. ///@brief CLIENT_ResetSystemEx 输入参数
  93362. typedef struct tagNET_IN_RESET_SYSTEM_EX
  93363. {
  93364. DWORD dwSize; // 结构体大小
  93365. UINT nType; // 0: 硬恢复; 1:软恢复
  93366. }NET_IN_RESET_SYSTEM_EX;
  93367. ///@brief CLIENT_ResetSystemEx 输出参数
  93368. typedef struct tagNET_OUT_RESET_SYSTEM_EX
  93369. {
  93370. DWORD dwSize; // 结构体大小
  93371. }NET_OUT_RESET_SYSTEM_EX;
  93372. ///@brief 恢复出厂配置扩展接口(包括清空配置和删除账户),实现硬复位及软复位功能
  93373. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ResetSystemEx(LLONG lLoginID,const NET_IN_RESET_SYSTEM_EX* pstInParam, NET_OUT_RESET_SYSTEM_EX* pstOutParam, int nWaitTime);
  93374. ///@brief CLIENT_GetVendor 输入参数
  93375. typedef struct tagNET_IN_GET_VENDOR_INFO
  93376. {
  93377. DWORD dwSize; // 结构体大小
  93378. }NET_IN_GET_VENDOR_INFO;
  93379. ///@brief CLIENT_GetVendor 输出参数
  93380. typedef struct tagNET_OUT_GET_VENDOR_INFO
  93381. {
  93382. DWORD dwSize; // 结构体大小
  93383. char szVendor[16]; // 厂商(废弃,请使用szVendorEx)
  93384. char szVendorEx[32]; // 厂商
  93385. }NET_OUT_GET_VENDOR_INFO;
  93386. ///@brief 获取厂商
  93387. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVendor(LLONG lLoginID, const NET_IN_GET_VENDOR_INFO *pstInParam, NET_OUT_GET_VENDOR_INFO *pstOutParam, int nWaitTime);
  93388. ///@brief 导出 AOL 日志文件错误码
  93389. typedef enum tagEM_EXPORT_AOL_LOGFILE_ERRORCODE
  93390. {
  93391. EM_EXPORT_AOL_LOGFILE_SUCCESS = 1, // 导出请求成功
  93392. EM_EXPORT_AOL_LOGFILE_NO_AUTHORITY = 2, // 无权限
  93393. EM_EXPORT_AOL_LOGFILE_NO_THIS_FILE = 3, // 文件不存在
  93394. EM_EXPORT_AOL_LOGFILE_EXPORT_END = 4, // 文件下载结束
  93395. EM_EXPORT_AOL_LOGFILE_EXPORTING = 5, // 文件下载中
  93396. EM_EXPORT_AOL_LOGFILE_FILE_SUCCESS = 6, // 文件终止下载请求成功
  93397. EM_EXPORT_AOL_LOGFILE_FILE_FAIL = 7, // 文件终止下载请求失败
  93398. EM_EXPORT_AOL_LOGFILE_FILE_READY = 8, // 文件准备完成
  93399. EM_EXPORT_AOL_LOGFILE_FILE_FAILED = 9, // 文件准备失败
  93400. EM_EXPORT_AOL_LOGFILE_WAIT_FILE = 10, // 导出请求成功, 需要等待设备准备数据
  93401. EM_EXPORT_AOL_LOGFILE_SYSTEM_BUSY = 11, // 系统忙, 暂时无法导出数据
  93402. } EM_EXPORT_AOL_LOGFILE_ERRORCODE;
  93403. ///@brief 导出AOL日志文件状态信息
  93404. typedef struct tagNET_EXPORT_AOL_LOGFILE_STATE
  93405. {
  93406. unsigned int nProgress; // 进度, 百分比
  93407. EM_EXPORT_AOL_LOGFILE_ERRORCODE emErrorCode; // 错误码
  93408. char *pDataBuf; // 导出数据
  93409. DWORD dwDataLen; // 数据长度
  93410. BYTE byReserved[516]; // 保留字节
  93411. } NET_EXPORT_AOL_LOGFILE_STATE;
  93412. ///@brief 导出AOL日志文件回调函数原形
  93413. typedef void (CALLBACK *fExportAOLLogFileCallBack)(LLONG lExportHandle, NET_EXPORT_AOL_LOGFILE_STATE *pstLogFileState, LDWORD dwUser);
  93414. ///@brief CLIENT_ExportAOLLogFile 接口输入参数
  93415. typedef struct tagNET_IN_EXPORT_AOL_LOGFILE
  93416. {
  93417. DWORD dwSize; // 结构体大小
  93418. BYTE byReserved[4]; // 字节对齐
  93419. fExportAOLLogFileCallBack cbExport; // 导出日志文件回调函数
  93420. LDWORD dwUser; // 用户数据
  93421. }NET_IN_EXPORT_AOL_LOGFILE;
  93422. ///@brief CLIENT_ExportAOLLogFile 接口输出参数
  93423. typedef struct tagNET_OUT_EXPORT_AOL_LOGFILE
  93424. {
  93425. DWORD dwSize; // 结构体大小
  93426. }NET_OUT_EXPORT_AOL_LOGFILE;
  93427. ///@brief 导出AOL日志文件
  93428. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ExportAOLLogFile(LLONG lLoginID, const NET_IN_EXPORT_AOL_LOGFILE* pInParam, NET_OUT_EXPORT_AOL_LOGFILE* pOutParam, int nWaitTime);
  93429. ///@brief 停止导出AOL日志文件
  93430. // lExportHandle 为 CLIENT_ExportAOLLogFile 返回值
  93431. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopExportAOLLogFile(LLONG lExportHandle);
  93432. ///@brief CLIENT_DeleteAllDiagnosisFaultCode 输入参数
  93433. typedef struct tagNET_IN_DELETE_ALLDIAGNOSIS_FAULTCODE
  93434. {
  93435. DWORD dwSize; // 结构体大小
  93436. }NET_IN_DELETE_ALLDIAGNOSIS_FAULTCODE;
  93437. ///@brief CLIENT_DeleteAllDiagnosisFaultCode 输出参数
  93438. typedef struct tagNET_OUT_DELETE_ALLDIAGNOSIS_FAULTCODE
  93439. {
  93440. DWORD dwSize; // 结构体大小
  93441. }NET_OUT_DELETE_ALLDIAGNOSIS_FAULTCODE;
  93442. ///@brief 删除所有故障码
  93443. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteAllDiagnosisFaultCode(LLONG lLoginID, const NET_IN_DELETE_ALLDIAGNOSIS_FAULTCODE* pInParam, NET_OUT_DELETE_ALLDIAGNOSIS_FAULTCODE* pOutParam, int nWaitTime);
  93444. ///@brief 猪体温信息
  93445. typedef struct tagNET_PIG_TEMPERATURE_DATA
  93446. {
  93447. NET_RECT stuRect; // 物体位置
  93448. UINT nID; // 物体编号
  93449. float fMaxTemperature; // 最高的温度
  93450. float fMinTemperature; // 最低的温度
  93451. float fAverageTemperature; // 平均温度
  93452. BYTE byReserve[1024]; // 保留字节
  93453. } NET_PIG_TEMPERATURE_DATA;
  93454. ///@brief 猪体温信息数组
  93455. typedef struct tagNET_PIG_TEMPERATURE_INFO
  93456. {
  93457. UINT nPigNum; // 猪的数量
  93458. NET_PIG_TEMPERATURE_DATA stuPigInfo[48]; // 猪的信息
  93459. BYTE byReserve[1024]; // 保留字节
  93460. } NET_PIG_TEMPERATURE_INFO;
  93461. ///@brief 自定义抓图类型
  93462. typedef enum tagEM_CUSTOM_SNAP_TYPE
  93463. {
  93464. EM_CUSTOM_SNAP_UNKNOWN, // 未知
  93465. EM_CUSTOM_SNAP_PIG_TEMPERATURE, // 猪体温检测, 对应结构体 NET_PIG_TEMPERATURE_INFO
  93466. } EM_CUSTOM_SNAP_TYPE;
  93467. ///@brief 图片文件订阅回调信息
  93468. typedef struct tagNET_CB_CUSTOM_SNAP_INFO
  93469. {
  93470. UINT nChannelID; // 通道号
  93471. NET_TIME stuSnapTime; // 抓图时间
  93472. EM_CUSTOM_SNAP_TYPE emCustomSnapType; // 自定义抓图类型
  93473. void* pDetailInfo; // 图片包含数据, 根据emCustomSnapType值来确定具体的结构体类型
  93474. BYTE byReserve[1024]; // 保留字节
  93475. } NET_CB_CUSTOM_SNAP_INFO;
  93476. ///@brief 自定义定时抓图订阅回调函数原型, lAttachHandle为 CLIENT_AttachCustomSnapInfo 接口的返回值
  93477. typedef void (CALLBACK *fAttachCustomSnapInfo)(LLONG lAttachHandle, NET_CB_CUSTOM_SNAP_INFO* pstResult, const char *pBuf, const DWORD dwBufSize, LDWORD dwUser);
  93478. ///@brief CLIENT_AttachCustomSnapInfo 接口输入参数
  93479. typedef struct tagNET_IN_ATTACH_CUSTOM_SNAP_INFO
  93480. {
  93481. DWORD dwSize; // 结构体大小
  93482. int nChannelID; // 订阅通道号
  93483. fAttachCustomSnapInfo cbCustomSnapInfo; // 自定义定时抓图订阅回调函数
  93484. LDWORD dwUser; // 用户数据
  93485. } NET_IN_ATTACH_CUSTOM_SNAP_INFO;
  93486. ///@brief CLIENT_AttachCustomSnapInfo 接口输出参数
  93487. typedef struct tagNET_OUT_ATTACH_CUSTOM_SNAP_INFO
  93488. {
  93489. DWORD dwSize; // 结构体大小
  93490. } NET_OUT_ATTACH_CUSTOM_SNAP_INFO;
  93491. ///@brief 自定义定时抓图订阅接口(目前智慧养殖猪温检测在用)
  93492. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachCustomSnapInfo(LLONG lLoginID, NET_IN_ATTACH_CUSTOM_SNAP_INFO* pInParam, NET_OUT_ATTACH_CUSTOM_SNAP_INFO* pOutParam, const int nWaitTime);
  93493. ///@brief 取消自定义定时抓图订阅接口(目前智慧养殖猪温检测在用)
  93494. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachCustomSnapInfo(LLONG lAttachHandle);
  93495. ///@brief CLIENT_GetInstalledAppInfo 接口输入参数
  93496. typedef struct tagNET_IN_GET_INSTALLED_APP_INFO
  93497. {
  93498. DWORD dwSize; // 结构体大小
  93499. } NET_IN_GET_INSTALLED_APP_INFO;
  93500. ///@brief APP的能力信息
  93501. typedef struct tagNET_APP_CAPS
  93502. {
  93503. BOOL bShowWebConsole; // 是否支持 web Console
  93504. BOOL bShowPerformance; // 是否支持查看性能
  93505. BOOL bShowDebug; // 是否支持调试
  93506. BYTE byReserved[128]; // 保留字节
  93507. }NET_APP_CAPS;
  93508. ///@brief APP的运行状态
  93509. typedef enum tagEM_APP_RUNNING_STATE
  93510. {
  93511. EM_APP_RUNNING_STATE_UNKNOWN, // 未知
  93512. EM_APP_RUNNING_STATE_RUNNING, // 运行中
  93513. EM_APP_RUNNING_STATE_STOP, // 已停止
  93514. EM_APP_RUNNING_STATE_ERROR, // 异常状态
  93515. } EM_APP_RUNNING_STATE;
  93516. ///@brief APP的证书状态
  93517. typedef enum tagEM_APP_LICENSE_STATE
  93518. {
  93519. EM_APP_LICENSE_STATE_UNKNOEN, // 未知
  93520. EM_APP_LICENSE_STATE_IN_TRAL, // 证书试用期
  93521. EM_APP_LICENSE_STATE_IN_LICENSE, // 证书正式合法
  93522. EM_APP_LICENSE_STATE_EXPIRED, // 证书过期
  93523. }EM_APP_LICENSE_STATE;
  93524. ///@brief APP的调试状态
  93525. typedef enum tagEM_APP_DEBUG_STATE
  93526. {
  93527. EM_APP_DEBUG_STATE_UNKNOWN, // 未知
  93528. EM_APP_DEBUG_STATE_ENABLE, // 开启调试
  93529. EM_APP_DEBUG_STATE_DISABLE, // 关闭调试
  93530. }EM_APP_DEBUG_STATE;
  93531. ///@brief 安装的应用信息
  93532. typedef struct tagNET_INSTALLED_APP_INFO
  93533. {
  93534. char szAppName[128]; // APP的名称
  93535. char szVersion[64]; // APP的版本
  93536. char szExtend[64]; // 扩展信息
  93537. UINT nAppID; // APP的ID
  93538. EM_APP_DEBUG_STATE emAppDebugState; // APP的调试状态
  93539. EM_APP_RUNNING_STATE emAppRunningState; // APP的运行状态
  93540. EM_APP_LICENSE_STATE emAppLicenseState; // APP的license状态
  93541. NET_APP_CAPS stuAppCaps; // APP的能力信息
  93542. BYTE byReserved[256]; // 保留字节
  93543. } NET_INSTALLED_APP_INFO;
  93544. ///@brief CLIENT_GetInstalledAppInfo 接口输出参数
  93545. typedef struct tagNET_OUT_GET_INSTALLED_APP_INFO
  93546. {
  93547. DWORD dwSize; // 结构体大小
  93548. UINT nListCount; // 返回以安装的应用列表信息的数量
  93549. NET_INSTALLED_APP_INFO stuAppInfoList[16]; // 安装的应用列表信息
  93550. } NET_OUT_GET_INSTALLED_APP_INFO;
  93551. ///@brief CLIENT_StartApp 接口输入参数
  93552. typedef struct tagNET_IN_START_APP
  93553. {
  93554. DWORD dwSize; // 结构体大小
  93555. UINT nAppID; // APP的ID
  93556. char szAppName[128]; // APP的名称
  93557. } NET_IN_START_APP;
  93558. ///@brief CLIENT_StartApp 接口输出参数
  93559. typedef struct tagNET_OUT_START_APP
  93560. {
  93561. DWORD dwSize; // 结构体大小
  93562. } NET_OUT_START_APP;
  93563. ///@brief CLIENT_StopApp 接口输出参数
  93564. typedef struct tagNET_IN_STOP_APP
  93565. {
  93566. DWORD dwSize; // 结构体大小
  93567. UINT nAppID; // APP的ID
  93568. char szAppName[128]; // APP的名称
  93569. } NET_IN_STOP_APP;
  93570. ///@brief CLIENT_StopApp 接口输出参数
  93571. typedef struct tagNET_OUT_STOP_APP
  93572. {
  93573. DWORD dwSize; // 结构体大小
  93574. } NET_OUT_STOP_APP;
  93575. ///@brief CLIENT_RemoveApp 接口输入参数
  93576. typedef struct tagNET_IN_REMOVE_APP
  93577. {
  93578. DWORD dwSize; // 结构体大小
  93579. UINT nAppID; // APP的ID
  93580. char szAppName[128]; // APP的名称
  93581. } NET_IN_REMOVE_APP;
  93582. ///@brief CLIENT_RemoveApp 接口输出参数
  93583. typedef struct tagNET_OUT_REMOVE_APP
  93584. {
  93585. DWORD dwSize; // 结构体大小
  93586. } NET_OUT_REMOVE_APP;
  93587. ///@brief 获取安装的应用列表
  93588. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetInstalledAppInfo(LLONG lLoginID, const NET_IN_GET_INSTALLED_APP_INFO* pInParam, NET_OUT_GET_INSTALLED_APP_INFO* pOutParam, int nWaitTime);
  93589. ///@brief 启动程序
  93590. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartApp(LLONG lLoginID, const NET_IN_START_APP* pInParam, NET_OUT_START_APP* pOutParam, int nWaitTime);
  93591. ///@brief 停止程序运行
  93592. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopApp(LLONG lLoginID, const NET_IN_STOP_APP* pInParam, NET_OUT_STOP_APP* pOutParam, int nWaitTime);
  93593. ///@brief 卸载程序
  93594. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveApp(LLONG lLoginID, const NET_IN_REMOVE_APP* pInParam, NET_OUT_REMOVE_APP* pOutParam, int nWaitTime);
  93595. ///@brief CLIENT_GetASGState 接口输入参数
  93596. typedef struct tagNET_IN_ACCESS_GET_ASG_STATE
  93597. {
  93598. DWORD dwSize;
  93599. }NET_IN_ACCESS_GET_ASG_STATE;
  93600. ///@brief 门翼状态
  93601. typedef enum tagEM_DOOR_WING_STATE
  93602. {
  93603. EM_DOOR_WING_STATE_UNKNOWN, // 未知
  93604. EM_DOOR_WING_STATE_CLOSE, // 关门
  93605. EM_DOOR_WING_STATE_ENTER_OPEN, // 进口打开
  93606. EM_DOOR_WING_STATE_LEAVE_OPEN, // 出口打开
  93607. } EM_DOOR_WING_STATE;
  93608. ///@brief Can通信状态
  93609. typedef enum tagEM_CAN_COMMUNICATE_STATE
  93610. {
  93611. EM_CAN_COMMUNICATE_STATE_UNKNOWN = -1, // 未知
  93612. EM_CAN_COMMUNICATE_STATE_NORMAL, // 正常
  93613. EM_CAN_COMMUNICATE_STATE_ABNORMAL, // 异常
  93614. } EM_CAN_COMMUNICATE_STATE;
  93615. ///@brief 闸机电池状态
  93616. typedef enum tagEM_ASG_BATTERY_STATE
  93617. {
  93618. EM_ASG_BATTERY_STATE_UNKNOWN = 0, // 未知
  93619. EM_ASG_BATTERY_STATE_NOT_IN_PLACE, // 不在位
  93620. EM_ASG_BATTERY_STATE_IN_PLACE, // 在位
  93621. }EM_ASG_BATTERY_STATE;
  93622. ///@brief CLIENT_GetASGState 接口输出参数
  93623. typedef struct tagNET_OUT_ACCESS_GET_ASG_STATE
  93624. {
  93625. DWORD dwSize;
  93626. int nInfraredStateNum; // 红外状态个数
  93627. int szInfraredStateMask[6]; // 红外状态掩码;
  93628. // 数组[0] Bit0 表示第1路,Bit7表示第8路, 数组[1] Bit0 表示第9路,Bit7表示第16路;
  93629. // 位定义为 0:灭(未遮挡),1:亮(被遮挡)
  93630. EM_DOOR_WING_STATE emDoorWingState; // 门翼状态
  93631. EM_CAN_COMMUNICATE_STATE emCanState; // Can通信状态
  93632. int nEnterNum; // 进通行人数
  93633. int nLeaveNum; // 出通行人数
  93634. EM_ASG_BATTERY_STATE emBatteryState; // 蓄电池状态
  93635. UINT nMotorExceptionNum; // 电机异常次数
  93636. UINT nMotorRotationNum; // 电机转动次数
  93637. }NET_OUT_ACCESS_GET_ASG_STATE;
  93638. ///@brief 获取闸机状态
  93639. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetASGState(LLONG lLoginID, const NET_IN_ACCESS_GET_ASG_STATE* pInParam, NET_OUT_ACCESS_GET_ASG_STATE* pOutParam, int nWaitTime);
  93640. ///@brief CLIENT_StartFindXRayPkg 接口输入参数
  93641. typedef struct tagNET_IN_START_FIND_XRAY_PKG
  93642. {
  93643. DWORD dwSize; // 结构体大小
  93644. EM_RESULT_ORDER_TYPE emTimeOrder; // 查询结果按时间排序
  93645. NET_TIME stuStartTime; // 查询的开始时间
  93646. NET_TIME stuEndTime; // 查询的结束时间
  93647. UINT nSimilarityRange[2]; // 相似度范围,下标0:表示最小值, 下标1:表示最大值
  93648. UINT nObjTypeNum; // 物体类型的数量
  93649. EM_INSIDE_OBJECT_TYPE emObjType[32]; // 物品类型
  93650. UINT nObjTypeCount; // 自定义物体类型的数量
  93651. NET_XRAY_INSIDE_ONJECT_TYPE stuObjType[32]; // 自定义物品类型
  93652. } NET_IN_START_FIND_XRAY_PKG;
  93653. ///@brief CLIENT_StartFindXRayPkg 接口输出参数
  93654. typedef struct tagNET_OUT_START_FIND_XRAY_PKG
  93655. {
  93656. DWORD dwSize; // 结构体大小
  93657. UINT nTotal; // 包裹总数
  93658. } NET_OUT_START_FIND_XRAY_PKG;
  93659. ///@brief CLIENT_DoFindXRayPkg 接口输出参数
  93660. typedef struct tagNET_IN_DO_FIND_XRAY_PKG
  93661. {
  93662. DWORD dwSize; // 结构体大小
  93663. UINT nOffset; // 查询偏移
  93664. UINT nCount; // 需要查找的数目
  93665. } NET_IN_DO_FIND_XRAY_PKG;
  93666. ///@brief X光机物体信息
  93667. typedef struct tagNET_PKG_OBJECT_INFO
  93668. {
  93669. EM_INSIDE_OBJECT_TYPE emObjType; // 物品类型
  93670. EM_DANGER_GRADE_TYPE emDangerGrade; // 物品危险等级
  93671. UINT nSimilarity; // 相似度,0~100
  93672. char szObjectType[32]; // 自定义物品类型,emObjType为 EM_INSIDE_OBJECT_UNKNOWN 时使用
  93673. BYTE byReserved[100]; // 保留字节
  93674. }NET_PKG_OBJECT_INFO;
  93675. ///@brief 视角信息数
  93676. typedef struct tagNET_PKG_VIEW_INFO
  93677. {
  93678. EM_XRAY_VIEW_TYPE emViewType; // 视图类型
  93679. UINT nEnergyImageLength; // 能量图大小 单位字节
  93680. char szEnergyImagePath[128]; // 能量图绝对路径
  93681. UINT nColorImageLength; // 彩图大小单位字节
  93682. char szColorImagePath[128]; // 彩图绝对路径
  93683. UINT nColorOverlayImageLength; // 彩图叠加图大小单位字节
  93684. char szColorOverlayImagePath[128];// 彩图叠加图绝对路径
  93685. NET_PKG_OBJECT_INFO stuObject[32]; // 物体数组
  93686. UINT nObjectCount; // 物体数量
  93687. BYTE byReserved[1024]; // 保留字节
  93688. } NET_PKG_VIEW_INFO;
  93689. ///@brief X光机的包裹信息
  93690. typedef struct tagNET_XRAY_PKG_INFO
  93691. {
  93692. NET_TIME stuTime; // 包裹产生时间(含时区)
  93693. int nChannelIn; // 关联的进口IPC通道号,从0开始,-1表示无效
  93694. int nChannelOut; // 关联的出口IPC通道号,从0开始,-1表示无效
  93695. char szUser[128]; // 用户名
  93696. NET_PKG_VIEW_INFO stuViewInfo[2]; // 视角信息数组
  93697. BYTE byReserved[1024]; // 保留字节
  93698. } NET_XRAY_PKG_INFO;
  93699. ///@brief CLIENT_DoFindXRayPkg 接口输出参数
  93700. typedef struct tagNET_OUT_DO_FIND_XRAY_PKG
  93701. {
  93702. DWORD dwSize; // 结构体大小
  93703. UINT nMaxCount; // 用户指定分配结构体个数,需大于等于NET_IN_DO_FIND_XRAY_PKG的nCount
  93704. UINT nRetCount; // 实际返回的查询数量
  93705. NET_XRAY_PKG_INFO* pstuXRayPkgInfo; // X光机的包裹信息,缓存大小由用户指定
  93706. } NET_OUT_DO_FIND_XRAY_PKG;
  93707. ///@brief 开始查找X光机包裹信息
  93708. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindXRayPkg(LLONG lLoginID, const NET_IN_START_FIND_XRAY_PKG* pInParam, NET_OUT_START_FIND_XRAY_PKG* pOutParam, int nWaitTime);
  93709. ///@brief 查询X光机包裹的信息,lFindID为CLIENT_StartFindXRayPkg接口返回的查找ID
  93710. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindXRayPkg(LLONG lFindID, const NET_IN_DO_FIND_XRAY_PKG* pInParam, NET_OUT_DO_FIND_XRAY_PKG* pOutParam, int nWaitTime);
  93711. ///@brief 结束查询X光机包裹的信息, lFindID为CLIENT_StartFindXRayPkg接口返回的查找ID
  93712. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindXRayPkg(LLONG lFindID);
  93713. ///@brief 电视墙场景回调信息
  93714. typedef struct tagNET_CB_MONITOR_WALL_SCENE
  93715. {
  93716. char szCurrentCollectionName[32]; // 当前预案名称
  93717. DH_MONITORWALL_SCENE stuScene; // 电视墙场景
  93718. BYTE byReserve[1024]; // 保留字节
  93719. } NET_CB_MONITOR_WALL_SCENE;
  93720. ///@brief 电视墙场景订阅回调函数原型, lAttachHandle为 CLIENT_AttachMonitorWallScene 接口的返回值
  93721. typedef void (CALLBACK *fMonitorWallScene)(LLONG lAttachHandle, NET_CB_MONITOR_WALL_SCENE* pstResult, LDWORD dwUser);
  93722. ///@brief CLIENT_AttachMonitorWallScene 接口输入参数
  93723. typedef struct tagNET_IN_ATTACH_MONITOR_WALL_SCENE
  93724. {
  93725. DWORD dwSize; // 结构体大小
  93726. int nMonitorWallID; // 电视墙ID
  93727. fMonitorWallScene cbMonitorWallScene; // 电视墙场景订阅回调函数
  93728. LDWORD dwUser; // 用户数据
  93729. } NET_IN_ATTACH_MONITOR_WALL_SCENE;
  93730. ///@brief CLIENT_AttachMonitorWallScene 接口输出参数
  93731. typedef struct tagNET_OUT_ATTACH_MONITOR_WALL_SCENE
  93732. {
  93733. DWORD dwSize; // 结构体大小
  93734. } NET_OUT_ATTACH_MONITOR_WALL_SCENE;
  93735. ///@brief 订阅电视墙场景
  93736. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachMonitorWallScene(LLONG lLoginID, NET_IN_ATTACH_MONITOR_WALL_SCENE* pInParam, NET_OUT_ATTACH_MONITOR_WALL_SCENE* pOutParam, const int nWaitTime);
  93737. ///@brief 取消订阅电视墙场景,, lAttachHandle为 CLIENT_AttachMonitorWallScene 接口的返回值
  93738. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachMonitorWallScene(LLONG lAttachHandle);
  93739. ///@brief CLIENT_GetSystemCaps 接口输入参数
  93740. typedef struct tagNET_IN_SYSTEM_GETCAPS
  93741. {
  93742. DWORD dwSize; // 结构体大小
  93743. }NET_IN_SYSTEM_GETCAPS;
  93744. ///@brief CLIENT_GetSystemCaps 接口输出参数
  93745. typedef struct tagNET_OUT_SYSTEM_GETCAPS
  93746. {
  93747. DWORD dwSize; // 结构体大小
  93748. BOOL bSupportCascadeCall; // 是否支持级联调用
  93749. DWORD dwCascadeType; // 级联调用方式, bSupportCascadeCall 为TRUE时有效
  93750. // 值为掩码方式, 第一位表示通道方式
  93751. }NET_OUT_SYSTEM_GETCAPS;
  93752. ///@brief 获取设备系统能力
  93753. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSystemCaps(LLONG lLoginID, const NET_IN_SYSTEM_GETCAPS* pInParam, NET_OUT_SYSTEM_GETCAPS* pOutParam, const int nWaitTime);
  93754. ///@brief 修改密码时校验当前密码方式
  93755. typedef enum tagEM_VERIFY_PASSWORD_TYPE
  93756. {
  93757. EM_VERIFY_PASSWORD_TYPE_UNKNOWN = -1, // 未知
  93758. EM_VERIFY_PASSWORD_TYPE_PLAIN, // 明文(也即szOldPwd为当前用户的账户密码)
  93759. }EM_VERIFY_PASSWORD_TYPE;
  93760. ///@brief 修改设备密码方式
  93761. typedef enum tagEM_MODIFY_PASSWORD_TYPE
  93762. {
  93763. EM_MODIFY_PASSWORD_TYPE_UNKNOWN = -1, // 未知
  93764. EM_MODIFY_PASSWORD_TYPE_BY_MULTICAST, // 组播修改
  93765. EM_MODIFY_PASSWORD_TYPE_BY_UNICAST, // 单播修改
  93766. }EM_MODIFY_PASSWORD_TYPE;
  93767. ///@brief CLIENT_ModifyDevPassword 入参
  93768. typedef struct tagNET_IN_MODIFY_DEV_PASSWORD
  93769. {
  93770. DWORD dwSize; // 结构体大小
  93771. EM_MODIFY_PASSWORD_TYPE emModifyType; // 修改密码方式
  93772. char szMac[DH_MACADDR_LEN]; // 设备mac地址
  93773. char szDeviceIP[DH_MAX_IPADDR_LEN_EX]; // 设备IP(emModifyType 为 EM_MODIFY_PASSWORD_TYPE_BY_UNICAST 时填写)
  93774. char szUserName[MAX_USER_NAME_LEN]; // 用户名
  93775. char szNewPwd[MAX_PWD_LEN]; // 新密码
  93776. char szOldPwd[MAX_PWD_LEN]; // 老密码
  93777. EM_VERIFY_PASSWORD_TYPE emVerifyPasswdType; // 校验密码方式
  93778. char szLocalIP[DH_MAX_IPADDR_LEN_EX]; // 本地IP(如果不填,绑定到默认网卡)
  93779. } NET_IN_MODIFY_DEV_PASSWORD;
  93780. ///@brief CLIENT_ModifyDevPassword 出参
  93781. typedef struct tagNET_OUT_MODIFY_DEV_PASSWORD
  93782. {
  93783. DWORD dwSize; // 结构体大小
  93784. int nRemainModifyTimes; // 修改密码失败时有效,旧密码输错剩余可尝试的输入次数(-1表示无限次,-2表示未知)
  93785. int nRemainLockSeconds; // 修改密码失败时有效,锁定修改密码操作剩余时间,单位秒(-1表示不锁定,-2表示未知)
  93786. BYTE byReserved[4]; // 预留字段
  93787. }NET_OUT_MODIFY_DEV_PASSWORD;
  93788. ///@brief 修改设备密码
  93789. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyDevPassword(const NET_IN_MODIFY_DEV_PASSWORD* pInParam, NET_OUT_MODIFY_DEV_PASSWORD* pOutParam, int nWaitTime);
  93790. ///@brief CLIENT_GetHumanRadioCaps 接口输入参数
  93791. typedef struct tagNET_IN_GET_HUMAN_RADIO_CAPS
  93792. {
  93793. DWORD dwSize; // 结构体大小
  93794. int nChannel; // 通道号,需要是热成像通道号
  93795. } NET_IN_GET_HUMAN_RADIO_CAPS;
  93796. ///@brief CLIENT_GetHumanRadioCaps 接口输出参数
  93797. typedef struct tagNET_OUT_GET_HUMAN_RADIO_CAPS
  93798. {
  93799. DWORD dwSize; // 结构体大小
  93800. BOOL bSupportRegulatorAlarm; // 是否支持黑体异常报警
  93801. } NET_OUT_GET_HUMAN_RADIO_CAPS;
  93802. ///@brief 获取能力级
  93803. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetHumanRadioCaps(LLONG lLoginID, const NET_IN_GET_HUMAN_RADIO_CAPS* pInParam, NET_OUT_GET_HUMAN_RADIO_CAPS* pOutParam, int nWaitTime);
  93804. ///@brief 人员组类型
  93805. typedef enum tagEM_PEOPLE_GROUP_TYPE
  93806. {
  93807. EM_PEOPLE_GROUP_TYPE_UNKNOWN, // 未知
  93808. EM_PEOPLE_GROUP_TYPE_HISTORYDB, // 历史数据库,保存视频通道的抓拍目标图片
  93809. EM_PEOPLE_GROUP_TYPE_BLACKLISTDB, // 禁止名单组,保存外部导入的图片
  93810. EM_PEOPLE_GROUP_TYPE_ALARMDB, // 报警组
  93811. } EM_PEOPLE_GROUP_TYPE;
  93812. ///@brief CLIENT_RemoteFaceRecognitionCreateGroup 接口输入参数
  93813. typedef struct tagNET_IN_REMOTEFACERECOGNITION_CREATE_GROUP
  93814. {
  93815. DWORD dwSize; // 结构体大小
  93816. UINT nChannel; // 前端相机视频通道号
  93817. char szGroupName[128]; // 人员组名称
  93818. char szGroupDetail[256]; // 人员组备注信息
  93819. EM_PEOPLE_GROUP_TYPE emGroupType; // 人员组类型
  93820. BYTE byReserved[4]; // 对齐
  93821. } NET_IN_REMOTEFACERECOGNITION_CREATE_GROUP;
  93822. ///@brief CLIENT_RemoteFaceRecognitionCreateGroup 接口输出参数
  93823. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_CREATE_GROUP
  93824. {
  93825. DWORD dwSize; // 结构体大小
  93826. BYTE byReserved[4]; // 对齐
  93827. char szGroupID[64]; // 人员组ID
  93828. } NET_OUT_REMOTEFACERECOGNITION_CREATE_GROUP;
  93829. ///@brief 通过NVR创建IPC上的人员组(前智能)
  93830. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionCreateGroup(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_CREATE_GROUP* pInParam, NET_OUT_REMOTEFACERECOGNITION_CREATE_GROUP* pOutParam, int nWaitTime);
  93831. ///@brief CLIENT_RemoteFaceRecognitionFindGroup 接口输入参数
  93832. typedef struct tagNET_IN_REMOTEFACERECOGNITION_FIND_GROUP
  93833. {
  93834. DWORD dwSize; // 结构体大小
  93835. UINT nChannel; // 前端相机视频通道号
  93836. char szGroupID[64]; // 人员组信息ID,""表示查找全部人员组信息
  93837. } NET_IN_REMOTEFACERECOGNITION_FIND_GROUP;
  93838. ///@brief 查找的人员组信息
  93839. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_FIND_GROUP_INFO
  93840. {
  93841. EM_PEOPLE_GROUP_TYPE emGroupType; // 人员组类型
  93842. int nGroupSize; // 当前组内人员数
  93843. char szGroupName[128]; // 人员组名称
  93844. char szGroupDetail[256]; // 人员组备注信息
  93845. char szGroupID[64]; // 人员组编号
  93846. int nChannelNum; // 当前组绑定到的视频通道号数
  93847. int nSimilarityNum; // 当前组绑定视频时的相似度阈值数
  93848. int nChannels[1024]; // 当前组绑定到的视频通道号列表, 未和任何视频通道关联填[-1]
  93849. UINT nSimilarity[1024]; // 当前组绑定视频时的相似度阈值, 未绑定视频时IPC的Web会把下标0元素作为默认相似度阈值使用
  93850. NET_CFG_TIME_SCHEDULE stuTimeSection; // 时间段
  93851. UINT nFeatureState[4]; // 组内建模中/未建模/已建模人员的数量,未完成建模(特征提取)的人员无法进行识别
  93852. // 数组下标对应关系
  93853. // [0]-建模中
  93854. // [1]-未建模
  93855. // [2]-已建模
  93856. // [3]-曾经建模成功
  93857. BYTE byReserved[1020]; // 预留字节
  93858. } NET_OUT_REMOTEFACERECOGNITION_FIND_GROUP_INFO;
  93859. ///@brief CLIENT_RemoteFaceRecognitionFindGroup 接口输出参数
  93860. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_FIND_GROUP
  93861. {
  93862. DWORD dwSize; // 结构体大小
  93863. int nGroupNum; // 人员组数
  93864. NET_OUT_REMOTEFACERECOGNITION_FIND_GROUP_INFO stuGroupInfo[64]; // 查找的人员组信息
  93865. } NET_OUT_REMOTEFACERECOGNITION_FIND_GROUP;
  93866. ///@brief 通过NVR查找IPC的人员组信息(前智能),支持模糊查询
  93867. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionFindGroup(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_FIND_GROUP* pInParam, NET_OUT_REMOTEFACERECOGNITION_FIND_GROUP* pOutParam, int nWaitTime);
  93868. ///@brief CLIENT_RemoteFaceRecognitionModifyGroup 接口输入参数
  93869. typedef struct tagNET_IN_REMOTEFACERECOGNITION_MODIFY_GROUP
  93870. {
  93871. DWORD dwSize; // 结构体大小
  93872. UINT nChannel; // 前端相机视频通道号
  93873. EM_PEOPLE_GROUP_TYPE emGroupType; // 人员组类型
  93874. UINT nSimilarity; // 当前组绑定视频时的相似度阈值
  93875. char szGroupName[128]; // 人员组名称
  93876. char szGroupDetail[256]; // 人员组备注信息
  93877. char szGroupID[128]; // 人员组编号
  93878. NET_CFG_TIME_SCHEDULE stuTimeSection; // 时间段
  93879. BOOL bSimilarityNotValid; // nSimilarity字段是否无效,TRUE:无效,不下发;FALSE:有效,下发
  93880. BOOL bTimeSectionNotValid; // stuTimeSection字段是否无效,TRUE:无效,不下发;FALSE:有效,下发
  93881. } NET_IN_REMOTEFACERECOGNITION_MODIFY_GROUP;
  93882. ///@brief CLIENT_RemoteFaceRecognitionModifyGroup 接口输出参数
  93883. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_MODIFY_GROUP
  93884. {
  93885. DWORD dwSize; // 结构体大小
  93886. } NET_OUT_REMOTEFACERECOGNITION_MODIFY_GROUP;
  93887. ///@brief 通过NVR修改IPC的人员组(前智能)
  93888. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionModifyGroup(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_MODIFY_GROUP* pInParam, NET_OUT_REMOTEFACERECOGNITION_MODIFY_GROUP* pOutParam, int nWaitTime);
  93889. ///@brief CLIENT_RemoteFaceRecognitionModifyGroup 接口输出参数
  93890. typedef struct tagNET_IN_REMOTEFACERECOGNITION_DELETE_GROUP
  93891. {
  93892. DWORD dwSize; // 结构体大小
  93893. UINT nChannel; // 前端相机视频通道号
  93894. char szGroupID[64]; // 人员组信息ID,""表示删除全部人员组信息
  93895. } NET_IN_REMOTEFACERECOGNITION_DELETE_GROUP;
  93896. ///@brief CLIENT_RemoteFaceRecognitionModifyGroup 接口输出参数
  93897. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_DELETE_GROUP
  93898. {
  93899. DWORD dwSize; // 结构体大小
  93900. } NET_OUT_REMOTEFACERECOGNITION_DELETE_GROUP;
  93901. ///@brief 通过NVR删除IPC的人员组(前智能)
  93902. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionDeleteGroup(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_DELETE_GROUP* pInParam, NET_OUT_REMOTEFACERECOGNITION_DELETE_GROUP* pOutParam, int nWaitTime);
  93903. ///@brief 回调函数信息
  93904. typedef struct tagNET_CB_REMOTEFACERECOGNITION_APPEND_STATE
  93905. {
  93906. int nTokenNum; // 令牌数量
  93907. int nReportNum; // 添加报告数量
  93908. UINT nToken[64]; // 查询令牌
  93909. UINT nReport[64]; // 添加成功或失败报告, 1-成功 0-失败
  93910. char szUID[64][32]; // 添加成功返回UID,失败返回空字符串""
  93911. int nUIDNum; // UID 个数
  93912. int nUUIDNum; // UUID 个数
  93913. char szUUID[64][64]; // 平台唯一标识目标字段
  93914. int nChannel[64]; // 通道号
  93915. int nChannelNum; // 通道号个数
  93916. BYTE byReserved[508]; // 预留字节
  93917. } NET_CB_REMOTEFACERECOGNITION_APPEND_STATE;
  93918. ///@brief 向客户端发送添加前智能目标添加回调函数, lAttachHandle 为 CLIENT_AttachAppendState 返回的结果
  93919. typedef void (CALLBACK *fFaceRecognitionAppendStateCallBack)(LLONG lAttachHandle, NET_CB_REMOTEFACERECOGNITION_APPEND_STATE* pstuState, LDWORD dwUser);
  93920. ///@brief CLIENT_AttachAppendState 入参
  93921. typedef struct tagNET_IN_REMOTEFACERECOGNITION_APPEND_STATE_ATTACH_INFO
  93922. {
  93923. DWORD dwSize; // 结构体大小
  93924. fFaceRecognitionAppendStateCallBack cbAppendState; // 回调函数
  93925. LDWORD dwUser; // 用户信息
  93926. }NET_IN_REMOTEFACERECOGNITION_APPEND_STATE_ATTACH_INFO;
  93927. ///@brief CLIENT_AttachAppendState 出参
  93928. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_APPEND_STATE_ATTACH_INFO
  93929. {
  93930. DWORD dwSize; // 结构体大小
  93931. }NET_OUT_REMOTEFACERECOGNITION_APPEND_STATE_ATTACH_INFO;
  93932. ///@brief 订阅前智能添加多目标库进度,pInParam与pOutParam内存由用户申请释放
  93933. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RemoteFaceRecognitionAttachAppendState(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_APPEND_STATE_ATTACH_INFO *pInParam, NET_OUT_REMOTEFACERECOGNITION_APPEND_STATE_ATTACH_INFO *pOutParam, int nWaitTime);
  93934. ///@brief 注销前智能添加目标回调, lAttachHandle是CLIENT_RemoteFaceRecognitionAttachAppendState的返回值
  93935. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionDetachAppendState(LLONG lAttachHandle);
  93936. ///@brief CLIENT_RemoteFaceRecognitionMultiAppendAsync 接口输入参数
  93937. typedef struct tagNET_IN_REMOTEFACERECOGNITION_MULTI_APPEND_ASYNC
  93938. {
  93939. DWORD dwSize; // 结构体大小
  93940. int nPersonNum; // 人员个数, 最大值为64
  93941. FACERECOGNITION_PERSON_INFOEX* pstuPersonInfo; // 人员信息
  93942. /* 图片二进制数据 */
  93943. char *pBuffer; // 缓冲地址
  93944. UINT nBufferLen; // 缓冲数据长度
  93945. UINT nChannel; // 前端相机视频通道号
  93946. } NET_IN_REMOTEFACERECOGNITION_MULTI_APPEND_ASYNC;
  93947. ///@brief CLIENT_RemoteFaceRecognitionMultiAppendAsync 接口输出参数
  93948. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_MULTI_APPEND_ASYNC
  93949. {
  93950. DWORD dwSize; // 结构体大小
  93951. int nTokenNum; // 令牌数量
  93952. UINT nToken[64]; // 添加令牌,用于回调时标识
  93953. } NET_OUT_REMOTEFACERECOGNITION_MULTI_APPEND_ASYNC;
  93954. ///@brief 通过NVR向IPC添加人员信息和目标样本(前智能),如果人员已经存在,图片数据和原来的数据合并
  93955. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionMultiAppendAsync(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_MULTI_APPEND_ASYNC* pInParam, NET_OUT_REMOTEFACERECOGNITION_MULTI_APPEND_ASYNC* pOutParam, int nWaitTime);
  93956. ///@brief CLIENT_RemoteFaceRecognitionModifyPerson 接口输入参数
  93957. typedef struct tagNET_IN_REMOTEFACERECOGNITION_MODIFY_PERSON
  93958. {
  93959. DWORD dwSize; // 结构体大小
  93960. int nChannel; // 相机视频通道号
  93961. FACERECOGNITION_PERSON_INFOEX stuPersonInfo; // 人员信息
  93962. /* 图片二进制数据 */
  93963. char *pBuffer; // 缓冲地址
  93964. UINT nBufferLen; // 缓冲数据长度
  93965. BYTE byReserved[4]; // 对齐
  93966. } NET_IN_REMOTEFACERECOGNITION_MODIFY_PERSON;
  93967. ///@brief CLIENT_RemoteFaceRecognitionModifyPerson 接口输出参数
  93968. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_MODIFY_PERSON
  93969. {
  93970. DWORD dwSize; // 结构体大小
  93971. } NET_OUT_REMOTEFACERECOGNITION_MODIFY_PERSON;
  93972. ///@brief 通过NVR修改IPC的人员信息
  93973. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionModifyPerson(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_MODIFY_PERSON* pInParam, NET_OUT_REMOTEFACERECOGNITION_MODIFY_PERSON* pOutParam, int nWaitTime);
  93974. ///@brief CLIENT_RemoteFaceRecognitionDeletePerson 接口输入参数
  93975. typedef struct tagNET_IN_REMOTEFACERECOGNITION_DELETE_PERSON
  93976. {
  93977. DWORD dwSize; // 结构体大小
  93978. int nChannel; // 相机视频通道号
  93979. char szUID[32]; // 人员唯一标识符
  93980. char szGroupID[64]; // IPC产品支持多组目标,只有UID无法正确删除目标,必须同时指定组ID和UID才能删除
  93981. } NET_IN_REMOTEFACERECOGNITION_DELETE_PERSON;
  93982. ///@brief CLIENT_RemoteFaceRecognitionDeletePerson 接口输出参数
  93983. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_DELETE_PERSON
  93984. {
  93985. DWORD dwSize; // 结构体大小
  93986. } NET_OUT_REMOTEFACERECOGNITION_DELETE_PERSON;
  93987. ///@brief 通过NVR删除IPC人员信息和目标样本
  93988. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionDeletePerson(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_DELETE_PERSON* pInParam, NET_OUT_REMOTEFACERECOGNITION_DELETE_PERSON* pOutParam, int nWaitTime);
  93989. ///@brief 排序类型
  93990. typedef enum tagEM_ORDER_TYPE
  93991. {
  93992. EM_ORDER_TYPE_UNKNOWN, // 未知
  93993. EM_ORDER_TYPE_ASC_BY_LASTAPPEARTIME, // 查询结果按人员的最近出现时间升序
  93994. EM_ORDER_TYPE_ASC_BY_STORAGETIME, // 查询结果按人员的入库时间升序
  93995. }EM_ORDER_TYPE;
  93996. ///@brief 查询条件
  93997. typedef struct tagNET_REMOTEFACERECOGNITION_FIND_CONDITION
  93998. {
  93999. int nRangeNum; // 查询类型个数
  94000. int nGroupNum; // 查询库列表个数
  94001. EM_PEOPLE_GROUP_TYPE emGroupType[8]; // 查询类型
  94002. char szGroupID[128][64]; // 查询库列表
  94003. NET_TIME stuBirthdayRange[2]; // 生日范围(IPC需求), [0]表示开始日期,[1]表示结束日期, ["", ""]都表示查询所有生日范围
  94004. NET_TIME stuStartTime; // 开始时间
  94005. NET_TIME stuEndTime; // 结束时间
  94006. int nUIDsNum; // 人员唯一标识列表个数
  94007. int nUUIDsNum; // 平台端人员唯一标识列表个数
  94008. char szUIDs[64][32]; // 人员唯一标识列表
  94009. char szUUIDs[64][32]; // 平台端人员唯一标识列表,根据getCaps获取到的能力是否存在字段SupportIDFromServer且值为true时有效
  94010. EM_ORDER_TYPE emOrderType; // 排序类型
  94011. BYTE byReserved[512]; // 预留字节
  94012. } NET_REMOTEFACERECOGNITION_FIND_CONDITION;
  94013. ///@brief 查询的人员信息
  94014. typedef struct tagNET_REMOTEFACERECOGNITION_FIND_PERSON_INFO
  94015. {
  94016. EM_SEX_TYPE emSex; // 性别
  94017. EM_CERTIFICATE_TYPE emCertificateType; // 证件类型
  94018. char szName[64]; // 姓名
  94019. char szID[32]; // 人员证件号码,工号,或其他编号
  94020. char szProvince[64]; // 省份
  94021. char szCity[64]; // 城市
  94022. EM_PERSON_FEATURE_STATE emFeatureState; // 人员建模状态(IVSS需求)
  94023. BYTE byReserved[508]; // 预留字节
  94024. } NET_REMOTEFACERECOGNITION_FIND_PERSON_INFO;
  94025. ///@brief CLIENT_RemoteFaceRecognitionStartFindRegInfo 接口输入参数
  94026. typedef struct tagNET_IN_REMOTEFACERECOGNITION_START_FIND_REG_INFO
  94027. {
  94028. DWORD dwSize; // 结构体大小
  94029. int nChannel; // 相机视频通道号
  94030. NET_REMOTEFACERECOGNITION_FIND_CONDITION stuCondition; // 查询条件
  94031. NET_REMOTEFACERECOGNITION_FIND_PERSON_INFO stuPersonInfo; // 查询的人员信息,可以只填部分,根据这部分在数据库查询
  94032. } NET_IN_REMOTEFACERECOGNITION_START_FIND_REG_INFO;
  94033. ///@brief CLIENT_RemoteFaceRecognitionStartFindRegInfo 接口输出参数
  94034. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_START_FIND_REG_INFO
  94035. {
  94036. DWORD dwSize; // 结构体大小
  94037. UINT nToken; // 取到的查询令牌
  94038. int nTotalCount; // 符合此次查询条件的结果总条数, -1表示总条数未生成,要推迟获取
  94039. BYTE byReserved[4]; // 对齐
  94040. } NET_OUT_REMOTEFACERECOGNITION_START_FIND_REG_INFO;
  94041. ///@brief 通过NVR查找IPC注册库人员信息
  94042. CLIENT_NET_API LLONG CALL_METHOD CLIENT_RemoteFaceRecognitionStartFindRegInfo(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_START_FIND_REG_INFO* pInParam, NET_OUT_REMOTEFACERECOGNITION_START_FIND_REG_INFO* pOutParam, int nWaitTime);
  94043. ///@brief CLIENT_RemoteFaceRecognitionDoFind 接口输入参数
  94044. typedef struct tagNET_IN_REMOTEFACERECOGNITION_DO_FIND
  94045. {
  94046. DWORD dwSize; // 结构体大小
  94047. UINT nBeginNumber; // 查询起始序号
  94048. int nCount; // 每次获取的条数, 一般不应该超过50
  94049. int nNeedDataMask; // 查询结果返回图片格式掩码, bit0 返回图片HTTP链接, bit1 返回图片二进制数据
  94050. } NET_IN_REMOTEFACERECOGNITION_DO_FIND;
  94051. ///@brief 候选人员信息列表
  94052. typedef struct tagNET_CANDIDATE_INFO
  94053. {
  94054. FACERECOGNITION_PERSON_INFOEX stuPersonInfo; // 人员信息
  94055. EM_PEOPLE_GROUP_TYPE emGroupType; // 候选人来自哪个数据库
  94056. BYTE byReserved[2044]; // 预留字节
  94057. } NET_CANDIDATE_INFO;
  94058. ///@brief CLIENT_RemoteFaceRecognitionDoFind 接口输出参数
  94059. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_DO_FIND
  94060. {
  94061. DWORD dwSize; // 结构体大小
  94062. int nFound; // 查询到的条数
  94063. int nCandidateMaxNum; // 候选人最大个数, 最大数为64
  94064. int nCandidateNum; // 候选返回个数
  94065. NET_CANDIDATE_INFO* pstuCandidateInfo; // 候选人员信息列表
  94066. } NET_OUT_REMOTEFACERECOGNITION_DO_FIND;
  94067. ///@brief 通过NVR查询IPC人员信息, lFindID是CLIENT_RemoteFaceRecognitionStartFindRegInfo的返回值
  94068. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionDoFind(LLONG lFindID, const NET_IN_REMOTEFACERECOGNITION_DO_FIND* pInParam, NET_OUT_REMOTEFACERECOGNITION_DO_FIND* pOutParam, int nWaitTime);
  94069. ///@brief 结束通过NVR查询IPC人员信息, lFindID是CLIENT_RemoteFaceRecognitionStartFindRegInfo的返回值
  94070. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionStopFind(LLONG lFindID);
  94071. ///@brief CLIENT_RemoteFaceRecognitionSetGroup 接口输入参数
  94072. typedef struct tagNET_IN_REMOTEFACERECOGNITION_SET_GROUP
  94073. {
  94074. DWORD dwSize; // 结构体大小
  94075. int nChannel; // 相机视频通道号
  94076. int nGroupIDNum; // 组ID个数
  94077. int nSimilaryNum; // 组的相似度阈值个数
  94078. char szGroupID[128][64]; // 组ID, 如果值为[""]表示视频通道不布控目标组,此时目标识别退化为目标检测
  94079. char nSimilary[128]; // 组的相似度阈值, 范围[0, 100]
  94080. } NET_IN_REMOTEFACERECOGNITION_SET_GROUP;
  94081. ///@brief CLIENT_RemoteFaceRecognitionSetGroup 接口输出参数
  94082. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_SET_GROUP
  94083. {
  94084. DWORD dwSize; // 结构体大小
  94085. } NET_OUT_REMOTEFACERECOGNITION_SET_GROUP;
  94086. ///@brief 通过NVR设置IPC视频通道布控
  94087. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionSetGroup(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_SET_GROUP* pInParam, NET_OUT_REMOTEFACERECOGNITION_SET_GROUP* pOutParam, int nWaitTime);
  94088. ///@brief CLIENT_RemoteFaceRecognitionGetGroup 入参
  94089. typedef struct tagNET_IN_REMOTEFACERECOGNITION_GET_GROUP
  94090. {
  94091. DWORD dwSize; // 结构体大小
  94092. int nChannel; // 通道
  94093. }NET_IN_REMOTEFACERECOGNITION_GET_GROUP;
  94094. ///@brief CLIENT_RemoteFaceRecognitionGetGroup 出参
  94095. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_GET_GROUP
  94096. {
  94097. DWORD dwSize; // 结构体大小
  94098. int nValidCount; // szGroupID和nSimilarys有效个数, 最大128
  94099. char szGroupID[128][64]; // 目标组ID列表
  94100. int nSimilarys[128]; // 目标组的相似度阈值, 元素范围 范围[0, 100]
  94101. }NET_OUT_REMOTEFACERECOGNITION_GET_GROUP;
  94102. ///@brief 获取布控在视频通道的组ID
  94103. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionGetGroup(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_GET_GROUP* pInParam, NET_OUT_REMOTEFACERECOGNITION_GET_GROUP* pOutParam, int nWaitTime);
  94104. ///@brief CLIENT_RemoteFaceRecognitionDownloadPiece 接口输入参数
  94105. typedef struct tagNET_IN_REMOTEFACERECOGNITION_DOWNLOAD_PIECE
  94106. {
  94107. DWORD dwSize; // 结构体大小
  94108. int nChannel; // 相机视频通道号
  94109. char szFilename[260]; // 文件名称,全路径
  94110. UINT nOffset; // 下载偏移量
  94111. UINT nNeedLength; // 请求下载数据量, 单位字节, 建议值32K,最大不超过4M
  94112. BYTE byReserved[4]; // 对齐
  94113. } NET_IN_REMOTEFACERECOGNITION_DOWNLOAD_PIECE;
  94114. ///@brief CLIENT_RemoteFaceRecognitionDownloadPiece 接口输出参数
  94115. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_DOWNLOAD_PIECE
  94116. {
  94117. DWORD dwSize; // 结构体大小
  94118. UINT nFileLength; // 文件总长度,单位字节
  94119. char* szBuffer; // 本次请求的文件数据, 用户申请内存
  94120. UINT nBufferLen; // 本次请求的文件数据长度, 单位字节
  94121. UINT nPacketLength; // 本次请求的二进制数据长度, 客户端根据总长度判断和累计下载量来判断是否下载结束
  94122. } NET_OUT_REMOTEFACERECOGNITION_DOWNLOAD_PIECE;
  94123. ///@brief 分包下载目标库图片文件
  94124. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionDownloadPiece(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_DOWNLOAD_PIECE* pInParam, NET_OUT_REMOTEFACERECOGNITION_DOWNLOAD_PIECE* pOutParam, int nWaitTime);
  94125. ///@brief CLIENT_RemoteFaceRecognitionPutDisposition 入参
  94126. typedef struct tagNET_IN_REMOTEFACERECOGNITION_PUT_DISPOSITION
  94127. {
  94128. DWORD dwSize;
  94129. int nChannel; // 远程设备通道号
  94130. char szGroupID[64]; // 组ID
  94131. int nSimilary; // 相似度阈值, 0-100
  94132. }NET_IN_REMOTEFACERECOGNITION_PUT_DISPOSITION;
  94133. ///@brief CLIENT_RemoteFaceRecognitionPutDisposition 出参
  94134. typedef struct tagNET_OUT_REMOTE_FACERECOGNITION_PUT_DISPOSITION
  94135. {
  94136. DWORD dwSize;
  94137. }NET_OUT_REMOTEFACERECOGNITION_PUT_DISPOSITION;
  94138. ///@brief 以目标库的角度进行远程设备布控, pstInParam与pstOutParam内存由用户申请释放
  94139. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionPutDisposition(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_PUT_DISPOSITION* pstInParam, NET_OUT_REMOTEFACERECOGNITION_PUT_DISPOSITION *pstOutParam, int nWaitTime);
  94140. ///@brief CLIENT_RemoteFaceRecognitionDelDisposition 入参
  94141. typedef struct tagNET_IN_REMOTEFACERECOGNITION_DEL_DISPOSITION
  94142. {
  94143. DWORD dwSize;
  94144. int nChannel; // 远程设备通道号
  94145. char szGroupID[64]; // 组ID
  94146. }NET_IN_REMOTEFACERECOGNITION_DEL_DISPOSITION;
  94147. ///@brief CLIENT_RemoteFaceRecognitionDelDisposition 出参
  94148. typedef struct tagNET_OUT_REMOTEFACERECOGNITION_DEL_DISPOSITION
  94149. {
  94150. DWORD dwSize;
  94151. }NET_OUT_REMOTEFACERECOGNITION_DEL_DISPOSITION;
  94152. ///@brief 以目标库的角度进行远程设备撤控, pstInParam与pstOutParam内存由用户申请释放
  94153. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteFaceRecognitionDelDisposition(LLONG lLoginID, const NET_IN_REMOTEFACERECOGNITION_DEL_DISPOSITION* pstInParam, NET_OUT_REMOTEFACERECOGNITION_DEL_DISPOSITION *pstOutParam, int nWaitTime);
  94154. ///@brief CLIENT_GetDevCaps 对应的类型(NET_REMOTE_FACE_RECOGNITION_CAPS)入参
  94155. typedef struct tagNET_IN_REMOTE_FACE_RECOGNITION_CAPS
  94156. {
  94157. DWORD dwSize; // 结构体大小
  94158. UINT nChannel; // 前端相机视频通道号
  94159. } NET_IN_REMOTE_FACE_RECOGNITION_CAPS;
  94160. ///@brief 支持的业务种类
  94161. typedef enum tagEM_FACE_RECOGGNIZE_FUNCTION
  94162. {
  94163. EM_FACE_RECOGGNIZE_FUNCTION_UNKNOW = -1, // 未知
  94164. EM_FACE_RECOGGNIZE_FUNCTION_SELF, // 用自身的目标识别模块
  94165. EM_FACE_RECOGGNIZE_FUNCTION_AGENT, // 用代理的目标识别模块
  94166. } EM_FACE_RECOGGNIZE_FUNCTION;
  94167. ///@brief 支持目标库重建方式
  94168. typedef enum tagEM_FACE_DATABASE_RECONSTRUCTION
  94169. {
  94170. EM_FACE_DATABASE_RECONSTRUCTION_UNKNOWN = -1, // 未知
  94171. EM_FACE_DATABASE_RECONSTRUCTION_REABSTRACT, // 支持reAbstract重建
  94172. EM_FACE_DATABASE_RECONSTRUCTION_REABSTRACT_WITH_GROUPREABSTRACT, // 支持reAbstract和groupReAbstract重建
  94173. } EM_FACE_DATABASE_RECONSTRUCTION;
  94174. ///@brief 支持从大图检测小图的方法
  94175. typedef enum tagEM_FACE_RECOGGNIZE_DETECT_METHOD
  94176. {
  94177. EM_FACE_RECOGGNIZE_DETECT_METHOD_UNKNOWN = -1, // 未知
  94178. EM_FACE_RECOGGNIZE_DETECT_METHOD_UNCERTAIN = 0, // 不确定
  94179. EM_FACE_RECOGGNIZE_DETECT_METHOD_MULTIFACE = 1, // 支持检测多目标
  94180. } EM_FACE_RECOGGNIZE_DETECT_METHOD;
  94181. ///@brief CLIENT_GetDevCaps 对应的类型(NET_REMOTE_FACE_RECOGNITION_CAPS)出参
  94182. typedef struct tagNET_OUT_REMOTE_FACE_RECOGNITION_CAPS
  94183. {
  94184. DWORD dwSize; // 结构体大小
  94185. BOOL bMultiFind; // 是否支持多通道同时查找
  94186. UINT nMaxFaceType; // 最多支持添加多少个自定义目标类型
  94187. EM_FACE_RECOGGNIZE_FUNCTION emSupportFunction; // 支持的业务种类
  94188. EM_FACE_DATABASE_RECONSTRUCTION emReAbstract; // 支持目标库重建方式
  94189. EM_FACE_RECOGGNIZE_DETECT_METHOD emDetectMethod; // 支持从大图检测小图的方法
  94190. NET_FACEBOXCOLOR_CAPS stuFaceBoxColor; // 目标检测框颜色能力
  94191. BOOL bAsynPush; // 是否支持以图搜图数据推送
  94192. BOOL bModifyPersonByToken; // 是否支持带令牌的人员修改
  94193. UINT nMaxGroupNum; // 最大目标库数量, 0表示无效
  94194. UINT nMaxPersonNum; // 最大存储目标容量, 0表示无效
  94195. UINT nMultiAppendPicLength; // 批量导图每次接收图片的大小, 单位KB
  94196. EM_SUPPORT_SEARCH_BY_PIC emSupportSearchByPic; // 是否支持以图搜图
  94197. DWORD dwSearchTypeMask; // 以图搜图支持的目标类型掩码, emSupportSearchByPic为EM_SUPPORT_SEARCH_BY_PIC_SUPPORT时有效
  94198. // bit0:目标, bit1:人体, bit2:机动车, bit3:非机动车
  94199. UINT nSinglePicMaxLength; // 单个图片最大大小的值,单位KB
  94200. BOOL bPersonWithMultiFace; // 设备目标注册库是不是支持一人多图的情况
  94201. } NET_OUT_REMOTE_FACE_RECOGNITION_CAPS;
  94202. ///@brief CLIENT_GetDevCaps 对应的类型( NET_MONITOR_WALL_CAPS )入参
  94203. typedef struct tagNET_IN_MONITOR_WALL_CAPS_INFO
  94204. {
  94205. DWORD dwSize; // 结构体大小
  94206. } NET_IN_MONITOR_WALL_CAPS_INFO;
  94207. ///@brief CLIENT_GetDevCaps 对应的类型( NET_MONITOR_WALL_CAPS )出参
  94208. typedef struct tagNET_OUT_MONITOR_WALL_CAPS_INFO
  94209. {
  94210. DWORD dwSize; // 结构体大小
  94211. int nMonitorWallCount; // 电视墙数量
  94212. BOOL bSupportAnnotation; // 是否支持批注功能
  94213. BOOL bSupportMeetingMode; // 设备是否支持会议室模式功能
  94214. BOOL bSupportCrossDevice; // 是否支持跨设备拼接电视墙
  94215. }NET_OUT_MONITOR_WALL_CAPS_INFO;
  94216. ///@brief CLIENT_ModifyRemoteDevicePassword 接口输入参数
  94217. typedef struct tagNET_IN_MODIFY_REMOTEDEVICE_PASSWORD
  94218. {
  94219. DWORD dwSize; // 结构体大小
  94220. int nChannel; // 通道号
  94221. char szUserName[128]; // 用户名
  94222. char szNewPassword[128]; // 新密码
  94223. char szOldPassword[128]; // 旧密码
  94224. } NET_IN_MODIFY_REMOTEDEVICE_PASSWORD;
  94225. ///@brief CLIENT_ModifyRemoteDevicePassword 接口输出参数
  94226. typedef struct tagNET_OUT_MODIFY_REMOTEDEVICE_PASSWORD
  94227. {
  94228. DWORD dwSize; // 结构体大小
  94229. int nErrorCode; // 错误码, 只在返回错误的时候有意义, 0表示无错误, 具体可参考当前文件 错误类型代号_EC()
  94230. // 0x46e 密码无效
  94231. int nRemainModifyTimes; // 修改密码时,旧密码输错剩余可尝试的输入次数, -1表示无限次(在有错误码有效的时候使用)
  94232. int nRemainLockSeconds; // 锁定修改密码操作剩余时间,-1表示不锁定(在有错误码有效的时候使用)
  94233. } NET_OUT_MODIFY_REMOTEDEVICE_PASSWORD;
  94234. ///@brief 修改前端相机的登录密码
  94235. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyRemoteDevicePassword(LLONG lLoginID, const NET_IN_MODIFY_REMOTEDEVICE_PASSWORD* pInParam, NET_OUT_MODIFY_REMOTEDEVICE_PASSWORD* pOutParam, int nWaitTime);
  94236. ///@brief CLIENT_GetIntelliStatesEnableInfo 接口输入参数
  94237. typedef struct tagNET_IN_GET_INTELLI_STATES_ENABLE_INFO
  94238. {
  94239. DWORD dwSize; // 结构体大小
  94240. UINT nChannelCount; // 视频通道个数
  94241. UINT nChannels[1024]; // 视频通道号
  94242. } NET_IN_GET_INTELLI_STATES_ENABLE_INFO;
  94243. ///@brief 人体目标检测属性信息
  94244. typedef struct tagNET_HUMAN_TRAIT_ENABLE_INFO
  94245. {
  94246. BOOL bFeatureExtract; // 特征上报使能
  94247. BOOL bAttributeExtract; // 属性上报使能
  94248. char szResvered[32]; // 预留字节
  94249. }NET_HUMAN_TRAIT_ENABLE_INFO;
  94250. ///@brief 机动车目标检测属性信息
  94251. typedef struct tagNET_VEHICLE_ENABLE_INFO
  94252. {
  94253. BOOL bFeatureExtract; // 特征上报使能
  94254. BOOL bAttributeExtract; // 属性上报使能
  94255. char szResvered[32]; // 预留字节
  94256. }NET_VEHICLE_ENABLE_INFO;
  94257. ///@brief 非机动车目标检测属性信息
  94258. typedef struct tagNET_NON_MOTOR_ENABLE_INFO
  94259. {
  94260. BOOL bFeatureExtract; // 特征上报使能
  94261. BOOL bAttributeExtract; // 属性上报使能
  94262. char szResvered[32]; // 预留字节
  94263. }NET_NON_MOTOR_ENABLE_INFO;
  94264. ///@brief 目标检测属性信息
  94265. typedef struct tagNET_OBJECT_DETECT_ENABLE_INFO
  94266. {
  94267. BOOL bFeatureExtract; // 特征上报总使能状态
  94268. BOOL bAttributeExtract; // 属性上报总使能状态
  94269. BOOL bHumanTrait; // 人体目标,FALSE则表示默认支持属性上报
  94270. NET_HUMAN_TRAIT_ENABLE_INFO stuHumanTrait; // 人体目标使能信息
  94271. BOOL bVehicle; // 机动车目标,FALSE则表示默认支持属性上报
  94272. NET_VEHICLE_ENABLE_INFO stuVehicle; // 机动车目标使能信息
  94273. BOOL bNonMotor; // 非机动车目标,FALSE则表示默认支持属性上报
  94274. NET_NON_MOTOR_ENABLE_INFO stuNonMotor; // 非机动车目标使能信息
  94275. char szResvered[36]; // 预留字节
  94276. }NET_OBJECT_DETECT_ENABLE_INFO;
  94277. ///@brief 智能场景信息
  94278. typedef struct tagNET_INTELLI_SCENE_INFO
  94279. {
  94280. EM_CLASS_TYPE emClassType; // 智能大类类型
  94281. BOOL bObjectDetect; // stuObjectDetect信息是否有效
  94282. NET_OBJECT_DETECT_ENABLE_INFO stuObjectDetect; // 目标检测属性信息
  94283. BYTE byReserved[336]; // 预留字节
  94284. } NET_INTELLI_SCENE_INFO;
  94285. ///@brief 视频通道上的智能信息
  94286. typedef struct tagNET_INTELLI_INFO_ABOUT_CHANNEL
  94287. {
  94288. UINT nChannelID; // 视频通道号
  94289. UINT nRetSceneNum; // 实际获取到的智能场景个数
  94290. NET_INTELLI_SCENE_INFO stuIntelliSceneInfos[32]; // 智能场景信息
  94291. BYTE byReserved[512]; // 预留字节
  94292. } NET_INTELLI_INFO_ABOUT_CHANNEL;
  94293. ///@brief CLIENT_GetIntelliStatesEnableInfo 接口输出参数
  94294. typedef struct tagNET_OUT_GET_INTELLI_STATES_ENABLE_INFO
  94295. {
  94296. DWORD dwSize; // 结构体大小
  94297. UINT nRetIntelliNum; // 实际获取到的智能信息个数
  94298. UINT nMaxIntelliNum; // 智能信息pstIntelliInfos 数组最大个数,最大1024个,由用户指定
  94299. BYTE byReserved[4]; // 字节对齐
  94300. NET_INTELLI_INFO_ABOUT_CHANNEL *pstIntelliInfos; // 智能信息, 内存由用户分配, 大小为 sizeof(NET_INTELLI_INFO_ABOUT_CHANNEL)*nMaxIntelliNum
  94301. } NET_OUT_GET_INTELLI_STATES_ENABLE_INFO;
  94302. ///@brief 获取指定通道上开启的所有智能并集
  94303. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetIntelliStatesEnableInfo(LLONG lLoginID, const NET_IN_GET_INTELLI_STATES_ENABLE_INFO* pInParam, NET_OUT_GET_INTELLI_STATES_ENABLE_INFO* pOutParam, int nWaitTime);
  94304. ///@brief CLIENT_RemoveParkingCarInfo 接口输入参数
  94305. typedef struct tagNET_IN_REMOVE_PARKING_CAR_INFO
  94306. {
  94307. DWORD dwSize; // 结构体大小
  94308. DEV_OCCUPIED_WARNING_INFO stuParkingCarInfo; // 车位信息
  94309. } NET_IN_REMOVE_PARKING_CAR_INFO;
  94310. ///@brief CLIENT_RemoveParkingCarInfo 接口输出参数
  94311. typedef struct tagNET_OUT_REMOVE_PARKING_CAR_INFO
  94312. {
  94313. DWORD dwSize; // 结构体大小
  94314. } NET_OUT_REMOVE_PARKING_CAR_INFO;
  94315. ///@brief 清除异常车位车辆信息
  94316. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveParkingCarInfo(LLONG lLoginID, const NET_IN_REMOVE_PARKING_CAR_INFO* pInParam, NET_OUT_REMOVE_PARKING_CAR_INFO* pOutParam, int nWaitTime);
  94317. ///@brief CLIENT_GetRemoteEventLink 接口入参
  94318. typedef struct tagNET_IN_REMOTE_EVENT_LINK
  94319. {
  94320. DWORD dwSize; // 此结构体大小
  94321. int nChannel; // 本地通道号
  94322. BYTE bReserved[4]; // 对齐
  94323. int nCodeNum; // 查询联动事件个数
  94324. EM_NET_QUERY_CODE szCodeName[MAX_EVENT_LINK_QUERY_CODE_NUMBER]; // 查询联动事件列表
  94325. } NET_IN_REMOTE_EVENT_LINK;
  94326. ///@brief 联动项信息
  94327. typedef struct tagNET_EVENT_LINK_CODE
  94328. {
  94329. EM_NET_LINK_NAME emLinkName[MAX_EVENT_LINK_NAME_NUMBER]; // 联动名称
  94330. int nNameNum; // 联动名称个数
  94331. BYTE byReserved[1020]; // 预留字节
  94332. } NET_EVENT_LINK_CODE;
  94333. ///@brief CLIENT_GetRemoteEventLink 接口出参
  94334. typedef struct tagNET_OUT_REMOTE_EVENT_LINK
  94335. {
  94336. DWORD dwSize; // 此结构体大小
  94337. int nCodeNum; // 联动项个数
  94338. NET_EVENT_LINK_CODE stuLinkCode[MAX_EVENT_LINK_QUERY_CODE_NUMBER]; // 联动项信息
  94339. } NET_OUT_REMOTE_EVENT_LINK;
  94340. ///@brief 获取远程指定事件的联动能力集(pInParam, pOutParam内存由用户申请释放)
  94341. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRemoteEventLink(LLONG lLoginID, const NET_IN_REMOTE_EVENT_LINK* pInParam, NET_OUT_REMOTE_EVENT_LINK* pOutParam, int nWaitTime);
  94342. ///@brief CLIENT_GetIFrameDataFromStorageVideo 接口输入参数
  94343. typedef struct tagNET_IN_GET_I_FRAME_DATA_FROM_STORAGE_VIDEO
  94344. {
  94345. DWORD dwSize; // 结构体大小
  94346. int nChannel; // 通道号
  94347. NET_TIME stuTime; // 时间
  94348. } NET_IN_GET_I_FRAME_DATA_FROM_STORAGE_VIDEO;
  94349. ///@brief CLIENT_GetIFrameDataFromStorageVideo 接口输出参数
  94350. typedef struct tagNET_OUT_GET_I_FRAME_DATA_FROM_STORAGE_VIDEO
  94351. {
  94352. DWORD dwSize; // 结构体大小
  94353. UINT nBufferLen; // 获取到的I帧数据内存大小, 单位字节
  94354. char* szBuffer; // 获取到的I帧数据, 用户申请内存
  94355. UINT nRetBufferLen; // 获取到的I帧数据实际返回长度, 单位字节
  94356. BYTE bReserved[4]; // 对齐
  94357. } NET_OUT_GET_I_FRAME_DATA_FROM_STORAGE_VIDEO;
  94358. ///@brief 获取录像文件指定通道号和时间的最近的一帧I帧数据
  94359. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetIFrameDataFromStorageVideo(LLONG lLoginID, const NET_IN_GET_I_FRAME_DATA_FROM_STORAGE_VIDEO* pInParam, NET_OUT_GET_I_FRAME_DATA_FROM_STORAGE_VIDEO* pOutParam, int nWaitTime);
  94360. ///@brief 盘组信息
  94361. typedef struct tagNET_GROUP_INFO
  94362. {
  94363. char szGroup[32]; // 盘组名称
  94364. TP_U64 nFreeSpace; // 剩余容量, 单位字节
  94365. TP_U64 nTotalSpace; // 总容量,单位字节
  94366. UINT nDeviceNum; // 盘组中设备个数
  94367. char szReserved[256]; // 保留字节
  94368. }NET_GROUP_INFO;
  94369. ///@brief CLIENT_GetStorageAssistantGroupInfos 接口输入参数
  94370. typedef struct tagNET_IN_GET_STORAGE_ASSISTANT_GROUP_INFO
  94371. {
  94372. DWORD dwSize; // 结构体大小
  94373. } NET_IN_GET_STORAGE_ASSISTANT_GROUP_INFO;
  94374. ///@brief CLIENT_GetStorageAssistantGroupInfos 接口输出参数
  94375. typedef struct tagNET_OUT_GET_STORAGE_ASSISTANT_GROUP_INFO
  94376. {
  94377. DWORD dwSize; // 结构体大小
  94378. int nGroupNums; // 盘组的个数
  94379. NET_GROUP_INFO stuGroupInfo[128]; // 盘组信息
  94380. } NET_OUT_GET_STORAGE_ASSISTANT_GROUP_INFO;
  94381. ///@brief 获取所有盘组信息
  94382. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetStorageAssistantGroupInfos(LLONG lLoginID, const NET_IN_GET_STORAGE_ASSISTANT_GROUP_INFO* pInParam, NET_OUT_GET_STORAGE_ASSISTANT_GROUP_INFO* pOutParam, int nWaitTime);
  94383. ///@brief CLIENT_GetWorkGroupDeviceInfos 接口输入参数
  94384. typedef struct tagNET_IN_GET_WORK_GROUP_DEVICE_INFO
  94385. {
  94386. DWORD dwSize; // 结构体大小
  94387. char szName[32]; // 工作组名称, 用于获取工作组实例
  94388. } NET_IN_GET_WORK_GROUP_DEVICE_INFO;
  94389. ///@brief CLIENT_GetWorkGroupDeviceInfos 接口输出参数
  94390. typedef struct tagNET_OUT_GET_WORK_GROUP_DEVICE_INFO
  94391. {
  94392. DWORD dwSize; // 结构体大小
  94393. DH_STORAGE_DEVICE* pstuDeviceInfo; // 存储设备信息,由用户申请内存,大小为sizeof(DH_STORAGE_DEVICE)*nMaxCount
  94394. int nMaxCount; // 存储设备信息的个数, 最大为128个
  94395. int nReturnCount; // 返回的存储设备信息的个数, 最大为128个
  94396. } NET_OUT_GET_WORK_GROUP_DEVICE_INFO;
  94397. ///@brief 获取指定盘组下的设备成员信息
  94398. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetWorkGroupDeviceInfos(LLONG lLoginID, const NET_IN_GET_WORK_GROUP_DEVICE_INFO* pInParam, NET_OUT_GET_WORK_GROUP_DEVICE_INFO* pOutParam, int nWaitTime);
  94399. ///@brief CLIENT_SetWorkDirectoryGoup 接口输入参数
  94400. typedef struct tagNET_IN_SET_WORK_DIRECTORY_GROUP
  94401. {
  94402. DWORD dwSize; // 结构体大小
  94403. char szName[256]; // 工作目录名称, 用于获取工作目录实例
  94404. char szSubClassID[32]; // 接口子类型, 用于获取工作目录实例
  94405. char szGroup[32]; // 目录所属组
  94406. } NET_IN_SET_WORK_DIRECTORY_GROUP;
  94407. ///@brief CLIENT_SetWorkDirectoryGoup 接口输出参数
  94408. typedef struct tagNET_OUT_SET_WORK_DIRECTORY_GROUP
  94409. {
  94410. DWORD dwSize; // 结构体大小
  94411. } NET_OUT_SET_WORK_DIRECTORY_GROUP;
  94412. ///@brief 设置工作目录组名
  94413. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetWorkDirectoryGoup(LLONG lLoginID, const NET_IN_SET_WORK_DIRECTORY_GROUP* pInParam, NET_OUT_SET_WORK_DIRECTORY_GROUP* pOutParam, int nWaitTime);
  94414. ///@brief 文件类型
  94415. typedef enum tagEM_WORK_DIRECTORY_FILE_TYPE
  94416. {
  94417. EM_WORK_DIRECTORY_FILE_TYPE_UNKNOWN = 0, // 未知
  94418. EM_WORK_DIRECTORY_FILE_TYPE_DAV, // "dav"
  94419. EM_WORK_DIRECTORY_FILE_TYPE_JPG, // "jpg"
  94420. EM_WORK_DIRECTORY_FILE_TYPE_MP4, // "mp4"
  94421. }EM_WORK_DIRECTORY_FILE_TYPE;
  94422. ///@brief 事件类型
  94423. typedef enum tagEM_WORK_DIRECTORY_EVENT_TYPE
  94424. {
  94425. EM_WORK_DIRECTORY_EVENT_TYPE_UNKNOWN = 0, // 未知
  94426. EM_WORK_DIRECTORY_EVENT_TYPE_ANY_EVENT, // 任意事件
  94427. EM_WORK_DIRECTORY_EVENT_TYPE_ALARMLOCAL, // "AlarmLocal" 外部报警事件事件
  94428. EM_WORK_DIRECTORY_EVENT_TYPE_VIDEOMOTION, // "VideoMotion" 视频移动侦测事件
  94429. EM_WORK_DIRECTORY_EVENT_TYPE_FACEDETECTION, // "FaceDetection" 目标检测事件事件
  94430. }EM_WORK_DIRECTORY_EVENT_TYPE;
  94431. ///@brief CLIENT_GetWorkDirectoryBitmapEx 接口输入参数的查询条件
  94432. typedef struct tagNET_WORK_DIRECTORY_BITMAPEX_CONDITION
  94433. {
  94434. int nYear; // 年
  94435. int nMonth; // 月
  94436. int nChannel; // 通道号,通道从0开始,-1表示所有通道
  94437. int nFileTypeNums; // 文件类型列表的个数, 最大值32, 最小值为0,若该值为0: 表示下发的文件类型列表字段值为null(为空表示查询任意类型)
  94438. EM_WORK_DIRECTORY_FILE_TYPE emFileTypes[32]; // 文件类型列表,是一个数组,一次可查询多种文件类型,目前仅支持"dav","jpg"
  94439. BOOL bIsSupportEventTypes; // 事件类型列表字段下发使能,TRUE: 表示事件类型列表emEventTypes有效且下发, FALSE: 表示事件类型列表emEventTypes无效且不下发(事件类型列表字段不存在,表示查询所有事件),
  94440. int nEventTypeNums; // 事件类型列表的个数,最大值为256, 最小值为0,若该值为0: 表示下发的事件类型列表字段值为null(为空表示查询所有事件)
  94441. EM_WORK_DIRECTORY_EVENT_TYPE emEventTypes[256]; // 事件类型列表, 目前仅支持实现:"AlarmLocal","VideoMotion","FaceDetection"
  94442. char szReserved[256]; // 保留字节
  94443. } NET_WORK_DIRECTORY_BITMAPEX_CONDITION;
  94444. ///@brief CLIENT_GetWorkDirectoryBitmapEx 接口输入参数
  94445. typedef struct tagNET_IN_GET_WORK_DIRECTORY_BITMAPEX
  94446. {
  94447. DWORD dwSize; // 结构体大小
  94448. char szName[256]; // 工作目录名称, 用于获取工作目录实例
  94449. char szSubClassID[32]; // 接口子类型, 用于获取工作目录实例
  94450. NET_WORK_DIRECTORY_BITMAPEX_CONDITION stuCondition; // 查询条件
  94451. } NET_IN_GET_WORK_DIRECTORY_BITMAPEX;
  94452. ///@brief CLIENT_GetWorkDirectoryBitmapEx 接口输出参数
  94453. typedef struct tagNET_OUT_GET_WORK_DIRECTORY_BITMAPEX
  94454. {
  94455. DWORD dwSize; // 结构体大小
  94456. UINT nBitmap; // 录像位图掩码,每一位表示对应某天是否有录像,bit0无意义, bit1表示第一天, 以此类推
  94457. } NET_OUT_GET_WORK_DIRECTORY_BITMAPEX;
  94458. ///@brief 得到某年某月某通道文件分布位图
  94459. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetWorkDirectoryBitmapEx(LLONG lLoginID, const NET_IN_GET_WORK_DIRECTORY_BITMAPEX* pInParam, NET_OUT_GET_WORK_DIRECTORY_BITMAPEX* pOutParam, int nWaitTime);
  94460. ///@brief CLIENT_SetEnvironmentTemperature 输入结构体
  94461. typedef struct tagNET_IN_SET_ENVIRONMENT_TEMPERATURE
  94462. {
  94463. DWORD dwSize; // 结构体大小
  94464. int nEnvironmentTemp; // 环境温度(扩大100倍),温度单位见配置 CFG_CMD_THERMOMETRY
  94465. }NET_IN_SET_ENVIRONMENT_TEMPERATURE;
  94466. ///@brief CLIENT_SetEnvironmentTemperature 输出结构体
  94467. typedef struct tagNET_OUT_SET_ENVIRONMENT_TEMPERATURE
  94468. {
  94469. DWORD dwSize; // 结构体大小
  94470. }NET_OUT_SET_ENVIRONMENT_TEMPERATURE;
  94471. ///@brief 设置环境温度
  94472. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetEnvironmentTemperature(LLONG lLoginID, const NET_IN_SET_ENVIRONMENT_TEMPERATURE* pInParam, NET_OUT_SET_ENVIRONMENT_TEMPERATURE* pOutParam, int nWaitTime);
  94473. ///@brief CLIENT_ClickDrawRectCustom 入参
  94474. typedef struct tagNET_IN_CLICK_DRAW_RECT_CUSTOM_INFO
  94475. {
  94476. DWORD dwSize; // 结构体大小
  94477. UINT nChannel; // 通道
  94478. UINT nMode; // 测温环境模式。 0:表示常温环境、 1:低温环境 2:高温环境
  94479. }NET_IN_CLICK_DRAW_RECT_CUSTOM_INFO;
  94480. ///@brief CLIENT_ClickDrawRectCustom 出参
  94481. typedef struct tagNET_OUT_CLICK_DRAW_RECT_CUSTOM_INFO
  94482. {
  94483. DWORD dwSize; // 结构体大小
  94484. }NET_OUT_CLICK_DRAW_RECT_CUSTOM_INFO;
  94485. ///@brief 一键画框
  94486. ///@param[in] lLoginID:登录接口返回的句柄
  94487. ///@param[in] pstuInParam :输入参数,需初始化dwSize
  94488. ///@param[out] pstuOutParam :输出参数,需初始化dwSize
  94489. ///@param[in] nWaitTime :接口超时时间
  94490. ///@return: BOOL TRUE :成功; FALSE :失败
  94491. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ClickDrawRectCustom(LLONG lLoginID, const NET_IN_CLICK_DRAW_RECT_CUSTOM_INFO *pstuInParam, NET_OUT_CLICK_DRAW_RECT_CUSTOM_INFO *pstuOutParam, int nWaitTime);
  94492. ///@brief CLIENT_ClickCaliCustom 入参
  94493. typedef struct tagNET_IN_CLICK_CALI_CUSTOM_INFO
  94494. {
  94495. DWORD dwSize; // 结构体大小
  94496. UINT nChannel; // 通道
  94497. UINT nMode; // 温度环境模式。 0:表示常环境、 1:低环境 2:高环境
  94498. int nEnvTemp; // 当前环境温度,精度0.01,实际值扩大100倍
  94499. }NET_IN_CLICK_CALI_CUSTOM_INFO;
  94500. ///@brief CLIENT_ClickCaliCustom 出参
  94501. typedef struct tagNET_OUT_CLICK_CALI_CUSTOM_INFO
  94502. {
  94503. DWORD dwSize; // 结构体大小
  94504. }NET_OUT_CLICK_CALI_CUSTOM_INFO;
  94505. ///@brief 一键标定
  94506. ///@param[in] lLoginID:登录接口返回的句柄
  94507. ///@param[in] pstuInParam :输入参数,需初始化dwSize
  94508. ///@param[out] pstuOutParam :输出参数,需初始化dwSize
  94509. ///@param[in] nWaitTime :接口超时时间
  94510. ///@return: BOOL TRUE :成功; FALSE :失败
  94511. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ClickCaliCustom(LLONG lLoginID, const NET_IN_CLICK_CALI_CUSTOM_INFO *pstuInParam, NET_OUT_CLICK_CALI_CUSTOM_INFO *pstuOutParam, int nWaitTime);
  94512. ///@brief CLIENT_ClickAbortCustom 入参
  94513. typedef struct tagNET_IN_CLICK_ABORT_CUSTOM_INFO
  94514. {
  94515. DWORD dwSize; // 结构体大小
  94516. UINT nChannel; // 通道
  94517. }NET_IN_CLICK_ABORT_CUSTOM_INFO;
  94518. ///@brief CLIENT_ClickAbortCustom 出参
  94519. typedef struct tagNET_OUT_CLICK_ABORT_CUSTOM_INFO
  94520. {
  94521. DWORD dwSize; // 结构体大小
  94522. }NET_OUT_CLICK_ABORT_CUSTOM_INFO;
  94523. ///@brief 中止测温一键标定
  94524. ///@param[in] lLoginID:登录接口返回的句柄
  94525. ///@param[in] pstuInParam :输入参数,需初始化dwSize
  94526. ///@param[out] pstuOutParam :输出参数,需初始化dwSize
  94527. ///@param[in] nWaitTime :接口超时时间
  94528. ///@return: BOOL TRUE :成功; FALSE :失败
  94529. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ClickAbortCustom(LLONG lLoginID, const NET_IN_CLICK_ABORT_CUSTOM_INFO *pstuInParam, NET_OUT_CLICK_ABORT_CUSTOM_INFO *pstuOutParam, int nWaitTime);
  94530. ///@brief CLIENT_GetCaliProgressCustom 入参
  94531. typedef struct tagNET_IN_GET_CALI_PROGRESS_CUSTOM_INFO
  94532. {
  94533. DWORD dwSize; // 结构体大小
  94534. UINT nChannel; // 通道
  94535. }NET_IN_GET_CALI_PROGRESS_CUSTOM_INFO;
  94536. ///@brief CLIENT_GetCaliProgressCustom 出参
  94537. typedef struct tagNET_OUT_GET_CALI_PROGRESS_CUSTOM_INFO
  94538. {
  94539. DWORD dwSize; // 结构体大小
  94540. UINT nProgress; // 返回的进度,0-100
  94541. }NET_OUT_GET_CALI_PROGRESS_CUSTOM_INFO;
  94542. ///@brief 获取一键标定的进度
  94543. ///@param[in] lLoginID:登录接口返回的句柄
  94544. ///@param[in] pstuInParam :输入参数,需初始化dwSize
  94545. ///@param[out] pstuOutParam :输出参数,需初始化dwSize
  94546. ///@param[in] nWaitTime :接口超时时间
  94547. ///@return: BOOL TRUE :成功; FALSE :失败
  94548. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCaliProgressCustom(LLONG lLoginID, const NET_IN_GET_CALI_PROGRESS_CUSTOM_INFO *pstuInParam, NET_OUT_GET_CALI_PROGRESS_CUSTOM_INFO *pstuOutParam, int nWaitTime);
  94549. ///@brief 获取人体测温自适应温升值(CLIENT_GetAdaptiveTempRaise) 出参
  94550. typedef struct tagNET_IN_GET_ADAPTIVE_TEMP_RAISE_INFO
  94551. {
  94552. DWORD dwSize; // 结构体大小
  94553. UINT nChannel; // 通道
  94554. }NET_IN_GET_ADAPTIVE_TEMP_RAISE_INFO;
  94555. ///@brief 获取人体测温自适应温升值(CLIENT_GetAdaptiveTempRaise) 出参
  94556. typedef struct tagNET_OUT_GET_ADAPTIVE_TEMP_RAISE_INFO
  94557. {
  94558. DWORD dwSize; // 结构体大小
  94559. int nAdaptiveRaiseTemp; // 自适应温升值,精度0.01,实际值扩大100倍
  94560. int nEnvTemp; // 环境温度,精度0.01,实际值扩大100倍
  94561. }NET_OUT_GET_ADAPTIVE_TEMP_RAISE_INFO;
  94562. ///@brief 获取人体测温自适应温升值
  94563. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAdaptiveTempRaise(LLONG lLoginID, const NET_IN_GET_ADAPTIVE_TEMP_RAISE_INFO *pInParam, NET_OUT_GET_ADAPTIVE_TEMP_RAISE_INFO *pOutParam, int nWaitTime);
  94564. ///@brief 授权类型
  94565. typedef enum tagEM_ACCESSCONTROL_AUTHORITY_TYPE
  94566. {
  94567. EM_ACCESSCONTROL_AUTHORITY_TYPE_UNKNOWN = 0, // 未知
  94568. EM_ACCESSCONTROL_AUTHORITY_TYPE_8900APP, // H8900手机app
  94569. EM_ACCESSCONTROL_AUTHORITY_TYPE_8900CLIENT, // H8900平台客户端
  94570. EM_ACCESSCONTROL_AUTHORITY_TYPE_YUNRUIAPP, // 云睿手机app
  94571. EM_ACCESSCONTROL_AUTHORITY_TYPE_MANAGE_MACHINE, // 管理机
  94572. EM_ACCESSCONTROL_AUTHORITY_TYPE_INDOOR_MACHINE, // 室内机
  94573. }EM_ACCESSCONTROL_AUTHORITY_TYPE;
  94574. ///@brief CLIENT_AccessControlIssueAuthority 输入结构体
  94575. typedef struct tagNET_IN_ACCESSCONTROL_ISSUE_AUTHORITY
  94576. {
  94577. DWORD dwSize; // 结构体大小
  94578. char szRoomNo[32]; // 权限授予的范围(等同于 szRoomNo 的权限范围)
  94579. char szCitizenID[32]; // 证件ID(被授权对象的证件ID)
  94580. EM_ACCESSCONTROL_AUTHORITY_TYPE emAuthorityType; // 授权类型
  94581. }NET_IN_ACCESSCONTROL_ISSUE_AUTHORITY;
  94582. ///@brief CLIENT_AccessControlIssueAuthority 输出结构体
  94583. typedef struct tagNET_OUT_ACCESSCONTROL_ISSUE_AUTHORITY
  94584. {
  94585. DWORD dwSize; // 结构体大小
  94586. }NET_OUT_ACCESSCONTROL_ISSUE_AUTHORITY;
  94587. ///@brief 门禁控制授权
  94588. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AccessControlIssueAuthority(LLONG lLoginID, const NET_IN_ACCESSCONTROL_ISSUE_AUTHORITY* pInParam, NET_OUT_ACCESSCONTROL_ISSUE_AUTHORITY* pOutParam, int nWaitTime);
  94589. ///@brief CLIENT_AccessControlCaptureNewCard 输入结构体
  94590. typedef struct tagNET_IN_ACCESSCONTROL_CAPTURE_NEWCARD
  94591. {
  94592. DWORD dwSize; // 结构体大小
  94593. UINT nAllowTime; // 授权时间
  94594. }NET_IN_ACCESSCONTROL_CAPTURE_NEWCARD;
  94595. ///@brief CLIENT_AccessControlCaptureNewCard 输出结构体
  94596. typedef struct tagNET_OUT_ACCESSCONTROL_CAPTURE_NEWCARD
  94597. {
  94598. DWORD dwSize; // 结构体大小
  94599. }NET_OUT_ACCESSCONTROL_CAPTURE_NEWCARD;
  94600. ///@brief 门禁设备开始捕获新卡
  94601. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AccessControlCaptureNewCard(LLONG lLoginID, const NET_IN_ACCESSCONTROL_CAPTURE_NEWCARD* pInParam, NET_OUT_ACCESSCONTROL_CAPTURE_NEWCARD* pOutParam, int nWaitTime);
  94602. ///@brief 采集类型
  94603. typedef enum tagEM_GATHER_TYPE
  94604. {
  94605. EM_GATHER_TYPE_UNKNOWN = 0, // 未知类型
  94606. EM_GATHER_TYPE_FACE, // 目标采集
  94607. EM_GATHER_TYPE_IDCARD, // 证件采集
  94608. }EM_GATHER_TYPE;
  94609. ///@brief CLIENT_AccessControlCaptureCmd 输入结构体
  94610. typedef struct tagNET_IN_ACCESSCONTROL_CAPTURE_CMD
  94611. {
  94612. DWORD dwSize; // 结构体大小
  94613. EM_GATHER_TYPE emGathertype; // 采集类型 (EM_COLLECTION_TYPE已被使用)
  94614. char szUserID[12]; // 用户ID(智能楼宇需求,可选)
  94615. }NET_IN_ACCESSCONTROL_CAPTURE_CMD;
  94616. ///@brief CLIENT_AccessControlCaptureCmd 输出结构体
  94617. typedef struct tagNET_OUT_ACCESSCONTROL_CAPTURE_CMD
  94618. {
  94619. DWORD dwSize; // 结构体大小
  94620. }NET_OUT_ACCESSCONTROL_CAPTURE_CMD;
  94621. ///@brief 门禁人证设备获取目标
  94622. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AccessControlCaptureCmd(LLONG lLoginID, const NET_IN_ACCESSCONTROL_CAPTURE_CMD* pInParam, NET_OUT_ACCESSCONTROL_CAPTURE_CMD* pOutParam, int nWaitTime);
  94623. ///@brief 重置密码的方式
  94624. typedef enum tagEM_CONTACT_MODE_FOR_RESET_PASSWD
  94625. {
  94626. EM_CONTACT_MODE_FOR_RESET_PASSWD_UNKNOWN, // 未知
  94627. EM_CONTACT_MODE_FOR_RESET_PASSWD_PHONE, // 手机号
  94628. EM_CONTACT_MODE_FOR_RESET_PASSWD_EMAIL, // 邮箱
  94629. } EM_CONTACT_MODE_FOR_RESET_PASSWD;
  94630. ///@brief CLIENT_SetContactForResetPasswd 接口输入参数
  94631. typedef struct tagNET_IN_SET_CONTACT_FOR_RESET_PASSWD
  94632. {
  94633. DWORD dwSize; // 结构体大小
  94634. EM_CONTACT_MODE_FOR_RESET_PASSWD emMode; // 重置密码的方式
  94635. char szContact[256]; // 重置密码的预留信息
  94636. } NET_IN_SET_CONTACT_FOR_RESET_PASSWD;
  94637. ///@brief CLIENT_SetContactForResetPasswd 接口输出参数
  94638. typedef struct tagNET_OUT_SET_CONTACT_FOR_RESET_PASSWD
  94639. {
  94640. DWORD dwSize; // 结构体大小
  94641. } NET_OUT_SET_CONTACT_FOR_RESET_PASSWD;
  94642. ///@brief 设置重置密码的联系方式
  94643. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetContactForResetPasswd(LLONG lLoginID, const NET_IN_SET_CONTACT_FOR_RESET_PASSWD* pInParam, NET_OUT_SET_CONTACT_FOR_RESET_PASSWD* pOutParam, int nWaitTime);
  94644. ///@brief CLIENT_RemotePreUploadFile 接口输入参数(前端设备预上传文件)
  94645. typedef struct tagNET_IN_REMOTE_PREUPLOAD_FILE
  94646. {
  94647. DWORD dwSize; // 结构体大小
  94648. int nChannel; // 通道号
  94649. char szFileSrc[256]; // 源文件路径
  94650. char szFileNameDst[128]; // 目标文件保存名称
  94651. char szFolderDst[256]; // 目标文件夹路径:可为空字符串, 空时设备使用默认路径校验。
  94652. }NET_IN_REMOTE_PREUPLOAD_FILE;
  94653. ///@brief CLIENT_RemotePreUploadFile 接口输出参数(前端设备预上传文件)
  94654. typedef struct tagNET_OUT_REMOTE_PREUPLOAD_FILE
  94655. {
  94656. DWORD dwSize; // 结构体大小
  94657. BOOL bContinue2Upload; // 标志是否继续上传该文件。因如文件过大,设备可拒绝接收上传。
  94658. EM_REASON_TYPE emType; // 错误原因, 当bContinue2Upload为false时emType有效
  94659. }NET_OUT_REMOTE_PREUPLOAD_FILE;
  94660. ///@brief 上传进度状态
  94661. typedef enum tagNET_UPLOAD_PROCESS_STATUS
  94662. {
  94663. NET_UPLOAD_PROCESS_STATUS_UPLOADING, // 上传中
  94664. NET_UPLOAD_PROCESS_STATUS_COMPLETE, // 完成
  94665. NET_UPLOAD_PROCESS_STATUS_FAILED, // 失败
  94666. NET_UPLOAD_PROCESS_STATUS_CANCEL, // 取消
  94667. }NET_UPLOAD_PROCESS_STATUS;
  94668. ///@brief 开始异步文件上传至前端的调函数原形,lRemoteUploadFileID 为 CLIENT_StartRemoteUploadFile 接口返回值
  94669. typedef void (CALLBACK *fRemoteUploadFileCallBack) (LLONG lRemoteUploadFileID, int nTotalSize, int nSendSize, NET_UPLOAD_PROCESS_STATUS emStatus, LDWORD dwUser);
  94670. ///@brief CLIENT_StartRemoteUploadFile 接口输入参数(上传文件到前端设备)
  94671. typedef struct tagNET_IN_REMOTE_UPLOAD_FILE
  94672. {
  94673. DWORD dwSize; // 结构体大小
  94674. int nChannel; // 通道号
  94675. char szFileSrc[256]; // 源文件路径
  94676. char szFileNameDst[128]; // 目标文件保存名称
  94677. char szFolderDst[256]; // 目标文件夹路径:可为空字符串, 空时设备使用默认路径
  94678. fRemoteUploadFileCallBack cbUploadFile; // 上传进度回调
  94679. LDWORD dwUser; // 用户参数
  94680. UINT nPacketLen; // 文件传输分包大小(字节): 0表示SDK默认分包
  94681. } NET_IN_REMOTE_UPLOAD_FILE;
  94682. ///@brief CLIENT_StartRemoteUploadFile 接口输出参数(上传文件到前端设备)
  94683. typedef struct tagNET_OUT_REMOTE_UPLOAD_FILE
  94684. {
  94685. DWORD dwSize; // 结构体大小
  94686. } NET_OUT_REMOTE_UPLOAD_FILE;
  94687. ///@brief 通过存储设备远程预上传文件至前端设备,用于识别前端设备是否具备接收文件的条件,pInParam与pOutParam内存由用户申请释放
  94688. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemotePreUploadFile(LLONG lLoginID, const NET_IN_REMOTE_PREUPLOAD_FILE* pInParam, NET_OUT_REMOTE_PREUPLOAD_FILE* pOutParam,int nWaitTime);
  94689. ///@brief 开始异步通过存储设备上传文件到前端设备 pInParam与pOutParam内存由用户申请释放
  94690. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartRemoteUploadFile(LLONG lLoginID, const NET_IN_REMOTE_UPLOAD_FILE* pInParam, NET_OUT_REMOTE_UPLOAD_FILE* pOutParam, int nWaitTime);
  94691. ///@brief 停止异步通过存储设备上传文件到前端设备
  94692. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopRemoteUploadFile(LLONG lRemoteUploadFileID);
  94693. ///@brief CLIENT_RemoteList 接口输入参数
  94694. typedef struct tagNET_IN_REMOTE_LIST
  94695. {
  94696. DWORD dwSize; // 结构体大小
  94697. int nChannel; // 通道号
  94698. char szPath[256]; // 指定路径
  94699. } NET_IN_REMOTE_LIST;
  94700. ///@brief 文件信息
  94701. typedef struct tagNET_REMOTE_FILE_INFO
  94702. {
  94703. char szPath[256]; // 文件绝对路径
  94704. UINT nSize; // 文件大小,单位:字节
  94705. BYTE byReserved[508]; // 预留字节
  94706. } NET_REMOTE_FILE_INFO;
  94707. ///@brief CLIENT_RemoteList 接口输出参数
  94708. typedef struct tagNET_OUT_REMOTE_LIST
  94709. {
  94710. DWORD dwSize; // 结构体大小
  94711. NET_REMOTE_FILE_INFO* pstuFileInfo; // 文件信息
  94712. int nMaxFileCount; // 文件信息数组大小, 用户填写
  94713. int nRetFileCount; // 返回的文件数量
  94714. } NET_OUT_REMOTE_LIST;
  94715. ///@brief 得到远程指定目录下文件信息(含文件/子目录)pInParam与pOutParam内存由用户申请释放
  94716. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteList(LLONG lLoginID, const NET_IN_REMOTE_LIST* pInParam, NET_OUT_REMOTE_LIST* pOutParam, int nWaitTime);
  94717. ///@brief CLIENT_RemoteRename 接口输入参数
  94718. typedef struct tagNET_IN_REMOTE_RENAME
  94719. {
  94720. DWORD dwSize; // 结构体大小
  94721. int nChannel; // 通道号
  94722. char szOldName[128]; // 旧的文件名
  94723. char szNewName[128]; // 新的文件名
  94724. } NET_IN_REMOTE_RENAME;
  94725. ///@brief CLIENT_RemoteRename 接口输出参数
  94726. typedef struct tagNET_OUT_REMOTE_RENAME
  94727. {
  94728. DWORD dwSize; // 结构体大小
  94729. } NET_OUT_REMOTE_RENAME;
  94730. ///@brief 重命名远程文件 pInParam与pOutParam内存由用户申请释放
  94731. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteRename(LLONG lLoginID, const NET_IN_REMOTE_RENAME* pInParam, NET_OUT_REMOTE_RENAME* pOutParam, int nWaitTime);
  94732. ///@brief CLIENT_RemoteRemoveFiles 接口输入参数
  94733. typedef struct tagNET_IN_REMOTE_REMOVE_FILES
  94734. {
  94735. DWORD dwSize; // 结构体大小
  94736. int nChannel; // 通道号
  94737. int nFileNum; // 文件个数
  94738. char** pszFileName; // 文件名数组指针
  94739. } NET_IN_REMOTE_REMOVE_FILES;
  94740. ///@brief CLIENT_RemoteRemoveFiles 接口输出参数
  94741. typedef struct tagNET_OUT_REMOTE_REMOVE_FILES
  94742. {
  94743. DWORD dwSize; // 结构体大小
  94744. } NET_OUT_REMOTE_REMOVE_FILES;
  94745. ///@brief 删除多个远程文件或目录 pInParam与pOutParam内存由用户申请释放
  94746. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoteRemoveFiles(LLONG lLoginID, const NET_IN_REMOTE_REMOVE_FILES* pInParam, NET_OUT_REMOTE_REMOVE_FILES* pOutParam, int nWaitTime);
  94747. ///@brief 图片数据
  94748. typedef struct tagNET_USER_PICTURE_DATA
  94749. {
  94750. char* pszPictureData; // 图片数据,最大 200K
  94751. UINT nPictureLen; // pszPictureData 长度
  94752. BYTE byReserved[1020]; // 预留字段
  94753. }NET_USER_PICTURE_DATA;
  94754. ///@brief CLIENT_DeliverUserFacePicture 入参
  94755. typedef struct tagNET_IN_DELIVER_USER_PICTURE
  94756. {
  94757. DWORD dwSize; // 结构体大小
  94758. int nResult; // 平台查询结果
  94759. // 0:有数据 1:不在人员库
  94760. char szCitizenID[32]; // 证件信息
  94761. char szUserID[64]; // 用户标识(选填)
  94762. NET_USER_PICTURE_DATA stuPictureData[5]; // 图片信息
  94763. int nPictureData; // stuPictureData 个数
  94764. BYTE byReserved[4]; // 预留字段
  94765. }NET_IN_DELIVER_USER_PICTURE;
  94766. ///@brief CLIENT_DeliverUserFacePicture 出参
  94767. typedef struct tagNET_OUT_DELIVER_USER_PICTURE
  94768. {
  94769. DWORD dwSize; // 结构体大小
  94770. }NET_OUT_DELIVER_USER_PICTURE;
  94771. ///@brief 下发目标图片信息
  94772. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeliverUserFacePicture(LLONG lLoginID, const NET_IN_DELIVER_USER_PICTURE* pInParam, NET_OUT_DELIVER_USER_PICTURE* pOutParam, int nWaitTime);
  94773. ///@brief CLIENT_ResetPTZ 入参
  94774. typedef struct tagNET_IN_RESET_PTZ
  94775. {
  94776. DWORD dwSize; // 结构体大小
  94777. int nChannel; // 通道号
  94778. }NET_IN_RESET_PTZ;
  94779. ///@brief CLIENT_ResetPTZ 出参
  94780. typedef struct tagNET_OUT_RESET_PTZ
  94781. {
  94782. DWORD dwSize; // 结构体大小
  94783. }NET_OUT_RESET_PTZ;
  94784. ///@brief 清空云台相关配置,恢复出厂设置
  94785. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ResetPTZ(LLONG lLoginID, const NET_IN_RESET_PTZ* pInParam, NET_OUT_RESET_PTZ* pOutParam, int nWaitTime);
  94786. ///@brief 日志信息
  94787. typedef struct tagNET_ATTACH_LOG_ONLINE_BACKUP_INFO
  94788. {
  94789. char szUserType[64]; // 用户类型
  94790. NET_TIME stuTime; // 时间
  94791. DH_LOG_QUERY_TYPE emLogType; // 日志类型
  94792. int nLogLevel; // 日志等级
  94793. char szLogDetail[4096]; // 日志详细信息
  94794. }NET_ATTACH_LOG_ONLINE_BACKUP_INFO;
  94795. ///@brief 回调函数
  94796. typedef void (CALLBACK *fAttachLogOnlineBackUpCallBack)(LLONG lAttachHandle, NET_ATTACH_LOG_ONLINE_BACKUP_INFO* pstLogInfo, int nLogCount,LDWORD dwUser);
  94797. ///@brief CLIENT_AttachLogOnlineBackUp 输入参数
  94798. typedef struct tagNET_IN_ATTACH_LOG_ONLINE_BACKUP
  94799. {
  94800. DWORD dwSize; // 结构体大小
  94801. DH_LOG_QUERY_TYPE emLogType; // 日志类型
  94802. int nLogLevel; // 日志等级(0 ~ 255),-1表示所有等级
  94803. BYTE byReserved[4]; // 字节对齐
  94804. fAttachLogOnlineBackUpCallBack cbLogBackUp; // 回调函数
  94805. LDWORD dwUser; // 用户自定义数据
  94806. }NET_IN_ATTACH_LOG_ONLINE_BACKUP;
  94807. ///@brief CLIENT_AttachLogOnlineBackUp 输出参数
  94808. typedef struct tagNET_OUT_ATTACH_LOG_ONLINE_BACKUP
  94809. {
  94810. DWORD dwSize; // 结构体大小
  94811. }NET_OUT_ATTACH_LOG_ONLINE_BACKUP;
  94812. ///@brief 订阅日志备份
  94813. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachLogOnlineBackUp(LLONG lLoginID, const NET_IN_ATTACH_LOG_ONLINE_BACKUP* pInParam, NET_OUT_ATTACH_LOG_ONLINE_BACKUP* pOutParam, int nWaitTime);
  94814. ///@brief 取消日志备份订阅
  94815. ///@brief lAttachHandle 是 CLIENT_AttachLogOnlineBackUp 返回值
  94816. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachLogOnlineBackUp(LLONG lAttachHandle);
  94817. ///@brief
  94818. ///@brief 预约结果
  94819. typedef enum tagEM_APPOINTMENT_RESULT
  94820. {
  94821. EM_APPOINTMENT_RESULT_UNKNOWN, // 未知
  94822. EM_APPOINTMENT_RESULT_ALREADY_APPOINT, // 已预约
  94823. EM_APPOINTMENT_RESULT_NOT_APPOINT, // 未预约
  94824. }EM_APPOINTMENT_RESULT;
  94825. ///@brief CLIENT_DeliverAppointmentInfo 入参
  94826. typedef struct tagNET_IN_DELIVER_APPOINTMENT_INFO
  94827. {
  94828. DWORD dwSize; // 结构体大小
  94829. int nChannel; // 通道号
  94830. EM_APPOINTMENT_RESULT emResult; // 预约结果
  94831. BYTE byReserved[4]; // 预留字段
  94832. char szCitizenID[32]; // 证件信息
  94833. char szCitizenName[128]; // 证件姓名
  94834. char szIntervieweeName[128]; // 被访人姓名
  94835. char* pszVisitReason; // 来访事由,使用者分配内存
  94836. UINT nVisitReason; // pszVisitReason 大小
  94837. UINT nUniqueID; // 预约请求ID,由 DH_ALARM_REQUEST_APPOINTMENT_INFO 事件返回
  94838. }NET_IN_DELIVER_APPOINTMENT_INFO;
  94839. ///@brief CLIENT_DeliverAppointmentInfo 出参
  94840. typedef struct tagNET_OUT_DELIVER_APPOINTMENT_INFO
  94841. {
  94842. DWORD dwSize; // 结构体大小
  94843. }NET_OUT_DELIVER_APPOINTMENT_INFO;
  94844. ///@brief 下发预约信息
  94845. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeliverAppointmentInfo(LLONG lLoginID, const NET_IN_DELIVER_APPOINTMENT_INFO* pInParam, NET_OUT_DELIVER_APPOINTMENT_INFO* pOutParam, int nWaitTime);
  94846. ///@brief 前面板灯类型
  94847. typedef enum tagEM_LED_TYPE
  94848. {
  94849. EM_LED_TYPE_UNKNOWN, // 未知
  94850. EM_LED_TYPE_NET, // 网络灯
  94851. EM_LED_TYPE_POWER, // 电源灯
  94852. EM_LED_TYPE_INFO, // 信息灯
  94853. EM_LED_TYPE_ALARM, // 报警灯
  94854. } EM_LED_TYPE;
  94855. ///@brief 前面板灯模式
  94856. typedef enum tagEM_LED_MODE
  94857. {
  94858. EM_LED_MODE_UNKNOWN = -1, // 未知
  94859. EM_LED_MODE_ALWAYS_ON, // 常亮
  94860. EM_LED_MODE_FLASHING, // 闪烁
  94861. EM_LED_MODE_OFF, // 熄灭
  94862. } EM_LED_MODE;
  94863. ///@brief CLIENT_FaceBoard_SetLedMode 入参
  94864. typedef struct tagNET_IN_SET_LED_MODE
  94865. {
  94866. DWORD dwSize; // 结构体大小
  94867. EM_LED_TYPE emLedType; // 控制前面板灯类型
  94868. EM_LED_MODE emMode; // 控制前面板灯模式
  94869. BYTE byReserved[4]; // 对齐
  94870. }NET_IN_SET_LED_MODE;
  94871. ///@brief CLIENT_FaceBoard_SetLedMode 出参
  94872. typedef struct tagNET_OUT_SET_LED_MODE
  94873. {
  94874. DWORD dwSize; // 结构体大小
  94875. }NET_OUT_SET_LED_MODE;
  94876. ///@brief 设置前面板LED灯模式
  94877. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FaceBoard_SetLedMode(LLONG lLoginID, const NET_IN_SET_LED_MODE* pInParam, NET_OUT_SET_LED_MODE* pOutParam, int nWaitTime);
  94878. ///@brief CLIENT_GetFaceBoardInkScreenCaps 入参
  94879. typedef struct tagNET_IN_GET_INKSCREEN_CAPS_INFO
  94880. {
  94881. DWORD dwSize; // 结构体大小
  94882. }NET_IN_GET_INKSCREEN_CAPS_INFO;
  94883. ///@brief 模式具体能力
  94884. typedef struct tagNET_FACE_BOARD_MODES
  94885. {
  94886. char szName[32]; // 模式名称 Clock:时钟模式 GP:工牌模式
  94887. int nTypes; // 模板类型ID 同一种模式下可能有多种模板
  94888. char szReserved[252]; // 预留字段
  94889. }NET_FACE_BOARD_MODES;
  94890. ///@brief CLIENT_GetFaceBoardInkScreenCaps 出参
  94891. typedef struct taNET_OUT_GET_INKSCREEN_CAPS_INFO
  94892. {
  94893. DWORD dwSize; // 结构体大小
  94894. int nModesNum; // 模式具体能力个数
  94895. NET_FACE_BOARD_MODES stuModes[32]; // 模式具体能力
  94896. }NET_OUT_GET_INKSCREEN_CAPS_INFO;
  94897. ///@brief CLIENT_GetFaceBoardInkScreenConfig 入参
  94898. typedef struct tagNET_IN_GET_INKSCREEN_CONFIG_INFO
  94899. {
  94900. DWORD dwSize; // 结构体大小
  94901. }NET_IN_GET_INKSCREEN_CONFIG_INFO;
  94902. ///@brief CLIENT_GetFaceBoardInkScreenConfig 出参
  94903. typedef struct tagNET_OUT_GET_INKSCREEN_CONFIG_INFO
  94904. {
  94905. DWORD dwSize; // 结构体大小
  94906. NET_FACE_BOARD_MODES stuMode; // 配置
  94907. }NET_OUT_GET_INKSCREEN_CONFIG_INFO;
  94908. ///@brief CLIENT_SetFaceBoardInkScreenConfig 入参
  94909. typedef struct tagNET_IN_SET_INKSCREEN_CONFIG_INFO
  94910. {
  94911. DWORD dwSize; // 结构体大小
  94912. NET_FACE_BOARD_MODES stuMode; // 配置
  94913. }NET_IN_SET_INKSCREEN_CONFIG_INFO;
  94914. ///@brief CLIENT_SetFaceBoardInkScreenConfig 出参
  94915. typedef struct tagNET_OUT_SET_INKSCREEN_CONFIG_INFO
  94916. {
  94917. DWORD dwSize; // 结构体大小
  94918. }NET_OUT_SET_INKSCREEN_CONFIG_INFO;
  94919. ///@brief 获取设备支持的墨水屏显示模式和每种模式下的样式数目
  94920. ///@param[in] lLoginID 登录句柄
  94921. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  94922. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  94923. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  94924. ///@return TRUE表示成功 FALSE表示失败
  94925. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFaceBoardInkScreenCaps(LLONG lLoginID, const NET_IN_GET_INKSCREEN_CAPS_INFO* pInParam, NET_OUT_GET_INKSCREEN_CAPS_INFO* pOutParam, int nWaitTime);
  94926. ///@brief 获取设备当前墨水屏显示模式和样式
  94927. ///@param[in] lLoginID 登录句柄
  94928. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  94929. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  94930. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  94931. ///@return TRUE表示成功 FALSE表示失败
  94932. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFaceBoardInkScreenConfig(LLONG lLoginID, const NET_IN_GET_INKSCREEN_CONFIG_INFO* pInParam, NET_OUT_GET_INKSCREEN_CONFIG_INFO* pOutParam, int nWaitTime);
  94933. ///@brief 设置设备当前墨水屏显示模式和样式
  94934. ///@param[in] lLoginID 登录句柄
  94935. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  94936. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  94937. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  94938. ///@return TRUE表示成功 FALSE表示失败
  94939. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetFaceBoardInkScreenConfig(LLONG lLoginID, const NET_IN_SET_INKSCREEN_CONFIG_INFO* pInParam, NET_OUT_SET_INKSCREEN_CONFIG_INFO* pOutParam, int nWaitTime);
  94940. ///@brief 事件处理结果
  94941. typedef enum tagEM_DEAL_EVENT_RESULT
  94942. {
  94943. EM_DEAL_EVENT_RESULT_UNKNOWN, // 未知
  94944. EM_DEAL_EVENT_RESULT_IDLE, // 空闲
  94945. EM_DEAL_EVENT_RESULT_RUNNING, // 处理中
  94946. EM_DEAL_EVENT_RESULT_SUCCESS, // 处理成功
  94947. EM_DEAL_EVENT_RESULT_FAIL // 处理失败
  94948. }EM_DEAL_EVENT_RESULT;
  94949. ///@brief CLIENT_ReceiptEvent 入参
  94950. typedef struct tagNET_IN_RECEIPT_EVENT_INFO
  94951. {
  94952. DWORD dwSize; // 结构体大小
  94953. int nEventID; // 事件编号,由 DH_ALARM_REQUEST_RECORD, DH_ALARM_REQUEST_SNAP 事件返回
  94954. EM_DEAL_EVENT_RESULT emResult; // 预约结果
  94955. BYTE byReserved[1020]; // 预留字段
  94956. }NET_IN_RECEIPT_EVENT_INFO;
  94957. ///@brief CLIENT_ReceiptEvent 出参
  94958. typedef struct tagNET_OUT_RECEIPT_EVENT_INFO
  94959. {
  94960. DWORD dwSize; // 结构体大小
  94961. }NET_OUT_RECEIPT_EVENT_INFO;
  94962. ///@brief 事件回执
  94963. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ReceiptEvent(LLONG lLoginID, const NET_IN_RECEIPT_EVENT_INFO* pInParam, NET_OUT_RECEIPT_EVENT_INFO* pOutParam, int nWaitTime);
  94964. ///@brief 驾驶员信息
  94965. typedef struct tagNET_DRIVER_INFO
  94966. {
  94967. NET_TIME stuTime; // 刷卡时间
  94968. char szDriverName[64]; // 司机姓名
  94969. char szDriverID[64]; // 工号或驾驶证号码
  94970. char szCertificateID[64]; // 从业资格证号
  94971. char szOrganize[64]; // 发证机构名称
  94972. NET_TIME stuUsefulLife; // 证件有效期的
  94973. char szDriverCode[32]; // 司机代码
  94974. NET_DRIVER_CHECK_TYPE emType; // 驾驶员刷卡类型
  94975. BYTE byReserved[1020]; // 预留字段
  94976. } NET_DRIVER_INFO;
  94977. ///@brief CLIENT_GetDriverInfo 入参
  94978. typedef struct tagNET_IN_GET_DRIVER_INFO
  94979. {
  94980. DWORD dwSize; // 结构体大小
  94981. }NET_IN_GET_DRIVER_INFO;
  94982. ///@brief CLIENT_GetDriverInfo 出参
  94983. typedef struct tagNET_OUT_GET_DRIVER_INFO
  94984. {
  94985. DWORD dwSize; // 结构体大小
  94986. NET_DRIVER_INFO stuDriverInfo; // 驾驶员信息
  94987. }NET_OUT_GET_DRIVER_INFO;
  94988. ///@brief 获取当前驾驶员信息
  94989. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDriverInfo(LLONG lLoginID, const NET_IN_GET_DRIVER_INFO* pInParam, NET_OUT_GET_DRIVER_INFO* pOutParam, int nWaitTime);
  94990. ///@brief CLIENT_GetVehicleInfo 入参
  94991. typedef struct tagNET_IN_GET_VEHICLE_INFO
  94992. {
  94993. DWORD dwSize; // 结构体大小
  94994. }NET_IN_GET_VEHICLE_INFO;
  94995. ///@brief CLIENT_GetVehicleInfo 出参
  94996. typedef struct tagNET_OUT_GET_VEHICLE_INFO
  94997. {
  94998. DWORD dwSize; // 结构体大小
  94999. NET_TIME stuUTC; // 实时时间
  95000. char szPlate[32]; // 车牌号
  95001. char szPlateType[32]; // 车牌分类(车牌分类是指烟草运输车有电动车、燃油车两种车型,对应的车牌类型不一样)
  95002. char szDriverCode[64]; // 驾驶员代码
  95003. char szDriverID[64]; // 驾驶证号
  95004. char szVehicleVIN[64]; // 车辆VIN号
  95005. int nPulseFactor; // 车速传递系数(即脉冲系数)
  95006. }NET_OUT_GET_VEHICLE_INFO;
  95007. ///@brief 获取行驶信息
  95008. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVehicleInfo(LLONG lLoginID, const NET_IN_GET_VEHICLE_INFO* pInParam, NET_OUT_GET_VEHICLE_INFO* pOutParam, int nWaitTime);
  95009. ///@brief 自定义升级信息
  95010. typedef struct tagNET_UPGRADE_CUSTOM_INFO
  95011. {
  95012. char szAppName[128]; // 自定义升级的app名称
  95013. char szUri[256]; // 自定义升级数据源的URI
  95014. char szVersion[32]; // 本次升级的自定义版本信息
  95015. char szMd5Sum[40]; // 本次升级包的md5值,Hex字符串格式
  95016. BYTE byReserved[1020]; // 预留字段
  95017. } NET_UPGRADE_CUSTOM_INFO;
  95018. ///@brief CLIENT_SendCmdToDhopApp 入参
  95019. typedef struct tagNET_IN_SEND_CMD_TO_APP
  95020. {
  95021. DWORD dwSize; // 结构体大小
  95022. EM_CMD_TO_APP_TYPE emCmdType; // 信令类型
  95023. void* pstData; // 信令信息,根据不同的信令类型取不同的结构体
  95024. // emCmdType为EM_CMD_TO_APP_TYPE_UPGRADECUSTOM,结构体为NET_UPGRADE_CUSTOM_INFO
  95025. char szUUID[64]; // 本次请求的唯一标识UUID
  95026. }NET_IN_SEND_CMD_TO_APP;
  95027. ///@brief CLIENT_SendCmdToDhopApp 出参
  95028. typedef struct tagNET_OUT_SEND_CMD_TO_APP
  95029. {
  95030. DWORD dwSize; // 结构体大小
  95031. EM_CMD_TO_APP_TYPE emCmdType; // 信令类型
  95032. void* pstRsp; // 不同的信令对应不同的结构体
  95033. // emCmdType为EM_CMD_TO_APP_TYPE_UPGRADECUSTOM, 结构体为NULL
  95034. }NET_OUT_SEND_CMD_TO_APP;
  95035. ///@brief 透传信令到Dhop的App
  95036. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SendCmdToDhopApp(LLONG lLoginID, const NET_IN_SEND_CMD_TO_APP* pInParam, NET_OUT_SEND_CMD_TO_APP* pOutParam, int nWaitTime);
  95037. ///@brief 设置视频编码帧延时,入参
  95038. typedef struct tagNET_IN_SET_VIDEO_ENCODE_DELAY_INFO
  95039. {
  95040. DWORD dwSize; // 结构体大小
  95041. int nChannel; // 通道号
  95042. NET_STREAM_TYPE emStreamType; // 码流类型
  95043. int nDelayTime; // 编码延时间(单位:毫秒)
  95044. }NET_IN_SET_VIDEO_ENCODE_DELAY_INFO;// 设置视频编码帧延时,入参
  95045. ///@brief 设置视频编码帧延时,出参
  95046. typedef struct tagNET_OUT_SET_VIDEO_ENCODE_DELAY_INFO
  95047. {
  95048. DWORD dwSize; // 结构体大小
  95049. }NET_OUT_SET_VIDOE_ENCODE_DELAY_INFO;
  95050. ///@brief 设置视频帧编码延时
  95051. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetVideoEncodeDelay(LLONG lLoginID, const NET_IN_SET_VIDEO_ENCODE_DELAY_INFO *pInParam, NET_OUT_SET_VIDOE_ENCODE_DELAY_INFO *pOutParam, int nWaitTime);
  95052. ///@brief CLIENT_GetVideoEncodeBitrate,入参
  95053. typedef struct tagNET_IN_GET_VIDEO_ENCODE_BITRATE_INFO
  95054. {
  95055. DWORD dwSize; // 结构体大小
  95056. int nChannel; // 通道号
  95057. NET_STREAM_TYPE emStreamType; // 码流类型
  95058. }NET_IN_GET_VIDEO_ENCODE_BITRATE_INFO;
  95059. ///@brief CLIENT_GetVideoEncodeBitrate,出参
  95060. typedef struct tagNET_OUT_GET_VIDEO_ENCODE_BITRATE_INFO
  95061. {
  95062. DWORD dwSize; // 结构体大小
  95063. UINT nBitrate; // 码率大小,单位kbps
  95064. }NET_OUT_GET_VIDOE_ENCODE_BITRATE_INFO;
  95065. ///@brief 获取码率,比特率
  95066. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVideoEncodeBitrate(LLONG lLoginID, const NET_IN_GET_VIDEO_ENCODE_BITRATE_INFO *pInParam, NET_OUT_GET_VIDOE_ENCODE_BITRATE_INFO *pOutParam, int nWaitTime);
  95067. ///@brief CLIENT_GetBootParameter 入参
  95068. typedef struct tagNET_IN_GET_BOOT_PARAMETER
  95069. {
  95070. DWORD dwSize; // 结构体大小
  95071. int nNameNum; // 参数个数
  95072. char szNames[32][32]; // 具体参数名称列表
  95073. } NET_IN_GET_BOOT_PARAMETER;
  95074. ///@brief 具体参数信息
  95075. typedef struct tagNET_BOOT_PARAMETER_INFO
  95076. {
  95077. char szName[32]; // 具体参数名称
  95078. char szParameterValue[256]; // 具体参数信息
  95079. BYTE bReserved[256]; // 保留字节
  95080. } NET_BOOT_PARAMETER_INFO;
  95081. ///@brief CLIENT_GetBootParameter 出参
  95082. typedef struct tagNET_OUT_GET_BOOT_PARAMETER
  95083. {
  95084. DWORD dwSize; // 结构体大小
  95085. UINT nRetBootParamNum; // 实际返回的参数个数
  95086. NET_BOOT_PARAMETER_INFO stuBootParamInfo[32]; // 具体参数信息
  95087. } NET_OUT_GET_BOOT_PARAMETER;
  95088. ///@brief 获取系统参数
  95089. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetBootParameter(LLONG lLoginID, const NET_IN_GET_BOOT_PARAMETER *pInParam, NET_OUT_GET_BOOT_PARAMETER *pOutParam, int nWaitTime);
  95090. ///@brief CLIENT_GetLocalIPv4 入参
  95091. typedef struct tagNET_IN_GET_LOCAL_IPV4
  95092. {
  95093. DWORD dwSize; // 结构体大小
  95094. } NET_IN_GET_LOCAL_IPV4;
  95095. ///@brief CLIENT_GetLocalIPv4 出参
  95096. typedef struct tagNET_OUT_GET_LOCAL_IPV4
  95097. {
  95098. DWORD dwSize; // 结构体大小
  95099. char szIPv4[32][DH_MAX_IPADDRV4_LEN]; // 存放IPv4的缓存区,不能为空
  95100. unsigned int nValidNum; // 实际返回有效IPv4个数
  95101. } NET_OUT_GET_LOCAL_IPV4;
  95102. ///@brief 获取本机所有IPv4
  95103. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetLocalIPv4(const NET_IN_GET_LOCAL_IPV4 *pInParam, NET_OUT_GET_LOCAL_IPV4 *pOutParam);
  95104. ///@brief 选择使用哪个IP。(使用szIPv4的下标,从0开始,由CLIENT_GetLocalIPv4获取)
  95105. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetLocalIPv4(unsigned int nIndex);
  95106. ///@brief CLIENT_GetLocalIPv6 入参
  95107. typedef struct tagNET_IN_GET_LOCAL_IPV6
  95108. {
  95109. DWORD dwSize; // 结构体大小
  95110. } NET_IN_GET_LOCAL_IPV6;
  95111. ///@brief CLIENT_GetLocalIPv6 出参
  95112. typedef struct tagNET_OUT_GET_LOCAL_IPV6
  95113. {
  95114. DWORD dwSize; // 结构体大小
  95115. char szIPv6[32][DH_MAX_IPADDRV6_LEN]; // 存放IPv6的缓存区,不能为空
  95116. unsigned int nValidNum; // 实际返回有效IPv6个数
  95117. } NET_OUT_GET_LOCAL_IPV6;
  95118. ///@brief 获取本机所有IPv6
  95119. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetLocalIPv6(const NET_IN_GET_LOCAL_IPV6 *pInParam, NET_OUT_GET_LOCAL_IPV6 *pOutParam);
  95120. ///@brief 选择使用哪个IP。(使用szIPv6的下标,从0开始,由CLIENT_GetLocalIPv6获取)
  95121. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetLocalIPv6(unsigned int nIndex);
  95122. ///@brief CLIENT_GetLVMInfo 入参
  95123. typedef struct tagNET_IN_GET_LVM_INFO
  95124. {
  95125. DWORD dwSize; // 结构体大小
  95126. char szName[32]; // 逻辑卷名称
  95127. }NET_IN_GET_LVM_INFO;
  95128. ///@brief 逻辑卷状态
  95129. typedef enum tagEM_LVM_VG_STATE
  95130. {
  95131. EM_LMV_VG_STATE_UNKNOWN, // 未知
  95132. EM_LMV_VG_STATE_NORMAL, // 正常
  95133. EM_LMV_VG_STATE_RUINED, // 损坏
  95134. EM_LMV_VG_STATE_ERROR, // 错误
  95135. }EM_LMV_VG_STATE;
  95136. ///@brief 逻辑卷信息
  95137. typedef struct tagNET_LVM_INFO
  95138. {
  95139. double dbFreeSpace; // 逻辑卷剩余空间 单位:MB
  95140. double dbTotalSpace; // 逻辑卷总空间 单位:MB
  95141. EM_LMV_VG_STATE emStatus; // 逻辑卷状态
  95142. }NET_LVM_INFO;
  95143. ///@brief CLIENT_GetLVMInfo 出参
  95144. typedef struct tagNET_OUT_GET_LVM_INFO
  95145. {
  95146. DWORD dwSize; // 结构体大小
  95147. NET_LVM_INFO stuInfo; // 逻辑卷信息
  95148. }NET_OUT_GET_LVM_INFO;
  95149. ///@brief 获取逻辑卷信息
  95150. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetLVMInfo(LLONG lLoginID, const NET_IN_GET_LVM_INFO *pInparam, NET_OUT_GET_LVM_INFO *pOutParam, int nWaitTime);
  95151. ///@brief 传感器感应方式枚举类型
  95152. typedef enum tagNET_EM_SENSE_METHOD
  95153. {
  95154. NET_EM_SENSE_UNKNOWN = -1, // 未知类型
  95155. NET_EM_SENSE_DOOR=0, // 门磁
  95156. NET_EM_SENSE_PASSIVEINFRA, // 被动红外
  95157. NET_EM_SENSE_GAS, // 气感
  95158. NET_EM_SENSE_SMOKING, // 烟感
  95159. NET_EM_SENSE_WATER, // 水感
  95160. NET_EM_SENSE_ACTIVEFRA, // 主动红外
  95161. NET_EM_SENSE_GLASS, // 玻璃破碎
  95162. NET_EM_SENSE_EMERGENCYSWITCH, // 紧急开关
  95163. NET_EM_SENSE_SHOCK, // 震动
  95164. NET_EM_SENSE_DOUBLEMETHOD, // 双鉴(红外+微波)
  95165. NET_EM_SENSE_THREEMETHOD, // 三技术
  95166. NET_EM_SENSE_TEMP, // 温度
  95167. NET_EM_SENSE_HUMIDITY, // 湿度
  95168. NET_EM_SENSE_WIND, // 风速
  95169. NET_EM_SENSE_CALLBUTTON, // 呼叫按钮
  95170. NET_EM_SENSE_GASPRESSURE, // 气体压力
  95171. NET_EM_SENSE_GASCONCENTRATION, // 燃气浓度
  95172. NET_EM_SENSE_GASFLOW, // 气体流量
  95173. NET_EM_SENSE_OIL, // 油量检测
  95174. NET_EM_SENSE_MILEAGE, // 里程数检测
  95175. NET_EM_SENSE_OTHER, // 其他
  95176. NET_EM_SEHSE_CO2, // 二氧化碳浓度检测
  95177. NET_EM_SEHSE_SOUND, // 噪音检测
  95178. NET_EM_SEHSE_PM25, // PM2.5检测
  95179. NET_EM_SEHSE_SF6, // 六氟化硫浓度检测
  95180. NET_EM_SEHSE_O3, // 臭氧
  95181. NET_EM_SEHSE_AMBIENTLIGHT, // 环境光照检测
  95182. NET_EM_SEHSE_INFRARED, // 红外报警
  95183. NET_EM_SEHSE_TEMP1500, // 1500温度传感器
  95184. NET_EM_SEHSE_TEMPDS18B20, // DS18B20温度传感器
  95185. NET_EM_SEHSE_HUMIDITY1500, // 1500湿度传感器
  95186. NET_EM_SEHSE_URGENCYBUTTON, // 紧急按钮
  95187. NET_EM_SEHSE_STEAL, // 盗窃
  95188. NET_EM_SEHSE_PERIMETER, // 周界
  95189. NET_EM_SEHSE_PREVENTREMOVE, // 防拆
  95190. NET_EM_SEHSE_DOORBELL, // 门铃
  95191. NET_EM_SEHSE_ALTERVOLT, // 交流电压传感器
  95192. NET_EM_SEHSE_DIRECTVOLT, // 直流电压传感器
  95193. NET_EM_SEHSE_ALTERCUR, // 交流电流传感器
  95194. NET_EM_SEHSE_DIRECTCUR, // 直流电流传感器
  95195. NET_EM_SEHSE_RSUGENERAL, // 高新兴通用模拟量
  95196. NET_EM_SEHSE_RSUDOOR, // 高新兴门禁感应
  95197. NET_EM_SEHSE_RSUPOWEROFF, // 高新兴断电感应
  95198. NET_EM_SEHSE_CURTAINSENSOR, // 幕帘传感器
  95199. NET_EM_SEHSE_MOBILESENSOR, // 移动传感器
  95200. NET_EM_SEHSE_FIREALARM, // 火警
  95201. NET_EM_SEHSE_LOCKTONGUE, // 锁舌
  95202. NET_EM_SENSE_NUM // 枚举类型总数,注意:这个值不能作为常量使用
  95203. }NET_EM_SENSE_METHOD;
  95204. ///@brief 报警使能控制方式枚举类型
  95205. typedef enum tagNET_EM_CTRL_ENABLE
  95206. {
  95207. NET_EM_CTRL_NORMAL=0, //不控制使能
  95208. NET_EM_CTRL_ALWAYS_EN, //总是使能
  95209. NET_EM_CTRL_ONCE_DIS, //旁路
  95210. NET_EM_CTRL_ALWAYS_DIS, //移除
  95211. NET_EM_CTRL_NUM //枚举类型总数
  95212. }NET_EM_CTRL_ENABLE;
  95213. ///@brief 防区类型
  95214. typedef enum tagNET_EM_CFG_DEFENCEAREATYPE
  95215. {
  95216. NET_EM_CFG_DefenceAreaType_Unknown = 0, // 未知类型
  95217. NET_EM_CFG_DefenceAreaType_InTime, // 即时防区
  95218. NET_EM_CFG_DefenceAreaType_Delay, // 延时防区
  95219. NET_EM_CFG_DefenceAreaType_FullDay, // 24小时防区
  95220. NET_EM_CFG_DefenceAreaType_Follow, // 跟随防区
  95221. NET_EM_CFG_DefenceAreaType_Medical, // 医疗紧急防区
  95222. NET_EM_CFG_DefenceAreaType_Panic, // 恐慌防区
  95223. NET_EM_CFG_DefenceAreaType_Fire, // 火警防区
  95224. NET_EM_CFG_DefenceAreaType_FullDaySound, // 24小时有声防区
  95225. NET_EM_CFG_DefenceAreaType_FullDaySlient, // 24小时无声防区
  95226. NET_EM_CFG_DefenceAreaType_Entrance1, // 出入防区1
  95227. NET_EM_CFG_DefenceAreaType_Entrance2, // 出入防区2
  95228. NET_EM_CFG_DefenceAreaType_InSide, // 内部防区
  95229. NET_EM_CFG_DefenceAreaType_OutSide, // 外部防区
  95230. NET_EM_CFG_DefenceAreaType_PeopleDetect, // 人员检测防区
  95231. NET_EM_CFG_DefenceAreaType_Robbery, // 匪警防区
  95232. NET_EM_CFG_DefenceAreaType_Key, // Key防区
  95233. NET_EM_CFG_DefenceAreaType_FulldayAuxiliary,// 24小时辅助防区
  95234. NET_EM_CFG_DefenceAreaType_FulldayVibration,// 24小时震动防区
  95235. NET_EM_CFG_DefenceAreaType_Chime, // Chime防区
  95236. }NET_EM_CFG_DEFENCEAREATYPE;
  95237. ///@brief 外部报警配置
  95238. typedef struct tagNET_CFG_ALARMIN_INFO
  95239. {
  95240. DWORD dwSize; // 结构体大小
  95241. int nChannelID; // 报警通道号(0开始)
  95242. BOOL bEnable; // 使能开关
  95243. char szChnName[64]; // 报警通道名称
  95244. int nAlarmType; // 报警器类型,0:常闭,1:常开
  95245. NET_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  95246. NET_CFG_TIME_SECTION stuTimeSection[7][6]; // 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  95247. BOOL abDevID; //
  95248. char szDevID[128]; // 设备ID
  95249. int nPole; // 传感器触发模式, 0:高有效,1低有效;
  95250. // 具体表现为传感器接地or电源,与nAlarmType组合使用
  95251. NET_EM_SENSE_METHOD emSense; // 传感器感应方式
  95252. NET_EM_CTRL_ENABLE emCtrl; // 报警使能控制方式
  95253. int nDisDelay; // 延时撤防时间,防区类型为"Delay"(延时防区)时才有效, 单位: 秒, 最大时间通过查询能力获得
  95254. // emCtrl值为EM_CTRL_NORMAL或EM_CTRL_ALWAYS_EN 时有效。
  95255. NET_EM_CFG_DEFENCEAREATYPE emDefenceAreaType; // 防区类型, 具体支持的类型通过查询能力获得
  95256. int nEnableDelay; // 延时布防时间, 防区类型为"Delay"(延时防区)时才有效, 单位: 秒, 最大时间通过查询能力获得
  95257. int nSlot; // 根地址, -1表示无效, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推
  95258. int nLevel1; // 第一级级联地址, 表示连接在第nSlot串口上的第nLevel1个探测器或仪表, -1表示无效, 从0开始
  95259. BOOL abLevel2; // 表示nLevel2字段是否存在
  95260. int nLevel2; // 第二级级联地址, 表示连接在第nLevel1个的仪表上的探测器序号, -1表示无效, 从0开始
  95261. int nDoorNotClosedTimeout; // 门未关超时时间,单位为s,范围 15s-300s
  95262. } NET_CFG_ALARMIN_INFO;
  95263. ///@brief 保存矫正角度配置,对应配置项 NET_EM_CFG_PTZ_DIRECTION_CORRECT
  95264. typedef struct tagNET_CFG_PTZ_DIRECTION_CORRECT_INFO
  95265. {
  95266. DWORD dwSize; // 结构体大小
  95267. UINT nPanRefAngle; // 正北方向矫正角度单位0.01度 范围:0-35999
  95268. UINT nRefTimes; // 云台方向矫正次数默认是0
  95269. UINT nMoveMode; // 云台移动模式,0为逆时针转动,1为顺时针转动,默认为0
  95270. }NET_CFG_PTZ_DIRECTION_CORRECT_INFO;
  95271. ///@brief 雨量报警上报控制配置
  95272. typedef struct tagCFG_ALARM_UPLOAD
  95273. {
  95274. BOOL bEnable; // 雨量报警使能
  95275. float fHighLevel; // 雨量上限报警阈值(单位:毫米)
  95276. UINT nAlarmInterval; // 报警间隔(单位:秒)
  95277. BYTE byReserved1[4]; // 字节对齐
  95278. char bReserved[256]; // 预留字节
  95279. }CFG_ALARM_UPLOAD;
  95280. ///@brief 实时雨量数据上报配置
  95281. typedef struct tagCFG_DATA_UPLOAD
  95282. {
  95283. BOOL bEnable; // 实时雨量数据上报使能
  95284. UINT nUploadInterval; // 实时雨量数据上报间隔(单位:秒)
  95285. char bReserved[256]; // 预留字节
  95286. }CFG_DATA_UPLOAD;
  95287. ///@brief 雨量筒信息配置
  95288. typedef struct tagCFG_PER_RAIN_FALL_CONFIG_INFO
  95289. {
  95290. CFG_ALARM_UPLOAD stuAlarmUpload; // 雨量报警上报控制配置
  95291. CFG_DATA_UPLOAD stuDataUpload; // 实时雨量数据上报配置
  95292. char bReserved[1024]; // 预留字节
  95293. }CFG_PER_RAIN_FALL_CONFIG_INFO;
  95294. ///@brief 雨量筒信息配置(对应 NET_EM_CFG_RAIN_FALL_CONFIG)
  95295. typedef struct tagNET_CFG_RAIN_FALL_CONFIG_INFO
  95296. {
  95297. DWORD dwSize; // 结构体大小
  95298. CFG_PER_RAIN_FALL_CONFIG_INFO stuRainFallConfig[64]; // 雨量筒信息配置
  95299. UINT nRainFallConfigNum; // 雨量筒信息配置个数
  95300. }NET_CFG_RAIN_FALL_CONFIG_INFO;
  95301. //////////////////////////////////////////////////////////////
  95302. ///@brief CLIENT_AddDoubleRecordTask 入参
  95303. typedef struct tagNET_IN_ADD_DOUBLE_RECORD_TASK_INFO
  95304. {
  95305. DWORD dwSize; // 结构体大小
  95306. char szTaskName[256]; // 任务列表名称
  95307. int nChannels[512]; // 双录通道列表
  95308. int nChannelNum; // 通道个数
  95309. NET_TIME stuStartTime; // 开始时间
  95310. NET_TIME stuEndTime; // 结束时间
  95311. }NET_IN_ADD_DOUBLE_RECORD_TASK_INFO;
  95312. ///@brief 错误码 taskID为0时有效
  95313. typedef enum tagEM_TASK_ADD_ERROR_CODE
  95314. {
  95315. EM_TASK_ADD_ERROR_CODE_UNKNOWN, // 未知
  95316. EM_TASK_ADD_ERROR_CODE_NO_ERROR, // 无错误
  95317. EM_TASK_ADD_ERROR_CODE_PARAMETER_ERROR, // 参数错误
  95318. EM_TASK_ADD_ERROR_CODE_NO_RECORD, // 录像不存在
  95319. }EM_TASK_ADD_ERROR_CODE;
  95320. ///@brief CLIENT_AddDoubleRecordTask 出参
  95321. typedef struct tagNET_OUT_ADD_DOUBLE_RECORD_TASK_INFO
  95322. {
  95323. DWORD dwSize; // 结构体大小
  95324. UINT nTaskID; // 任务ID号
  95325. EM_TASK_ADD_ERROR_CODE emErrorCode; // 错误码
  95326. }NET_OUT_ADD_DOUBLE_RECORD_TASK_INFO;
  95327. ///@brief 双录备份添加任务
  95328. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddDoubleRecordTask(LLONG lLoginID, const NET_IN_ADD_DOUBLE_RECORD_TASK_INFO *pInParam, NET_OUT_ADD_DOUBLE_RECORD_TASK_INFO *pOutParam, int nWaitTime);
  95329. ///@brief 任务类型
  95330. typedef enum tagEM_TASK_TYPE
  95331. {
  95332. EM_TASK_TYPE_UNKNOWN, // 未知
  95333. EM_TASK_TYPE_USB, // "usb"
  95334. EM_TASK_TYPE_SFTP, // "sftp"
  95335. EM_TASK_TYPE_BACKUPDISK, // "backupDisk"
  95336. }EM_TASK_TYPE;
  95337. ///@brief 备份 任务
  95338. typedef struct tagNET_BACKUP_TASK_INFO
  95339. {
  95340. char szTaskName[256]; // 任务名称
  95341. NET_TIME stuStartTime; // 开始时间
  95342. NET_TIME stuEndTime; // 结束时间
  95343. char szBackupsTypePath[256][256]; // 备份录像路径
  95344. int nBackupsPathNum; // 备份路径个数
  95345. EM_TASK_TYPE emBackupsType; // 备份类型
  95346. BYTE byReserved[256]; // 保留字节
  95347. }NET_BACKUP_TASK_INFO;
  95348. ///@brief CLIENT_AddDoubleRecordLocalTask 入参
  95349. typedef struct tagNET_IN_ADD_DOUBLE_RECORD_LOCAL_TASK
  95350. {
  95351. DWORD dwSize; // 结构体大小
  95352. NET_BACKUP_TASK_INFO stuBackupTask; // 备份任务
  95353. }NET_IN_ADD_DOUBLE_RECORD_LOCAL_TASK;
  95354. ///@brief CLIENT_AddDoubleRecordLocalTask 出参
  95355. typedef struct tagNET_OUT_ADD_DOUBLE_RECORD_LOCAL_TASK
  95356. {
  95357. DWORD dwSize; // 结构体大小
  95358. UINT nTaskID; // 任务ID号
  95359. EM_TASK_ADD_ERROR_CODE emErrorCode; // 错误码
  95360. }NET_OUT_ADD_DOUBLE_RECORD_LOCAL_TASK;
  95361. ///@brief 双录备份增加本地备份任务
  95362. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddDoubleRecordLocalTask(LLONG lLoginID, const NET_IN_ADD_DOUBLE_RECORD_LOCAL_TASK *pInParam, NET_OUT_ADD_DOUBLE_RECORD_LOCAL_TASK *pOutParam, int nWaitTime);
  95363. ///@brief CLIENT_GetDoubleRecordTaskInfo 入参
  95364. typedef struct tagNET_IN_GET_DOUBLE_RECORD_TASK_INFO
  95365. {
  95366. DWORD dwSize; // 结构体大小
  95367. UINT nTaskID; // 任务号
  95368. }NET_IN_GET_DOUBLE_RECORD_TASK_INFO;
  95369. ///@brief CLIENT_GetDoubleRecordTaskInfo 出参
  95370. typedef struct tagNET_OUT_GET_DOUBLE_RECORD_TASK_INFO
  95371. {
  95372. DWORD dwSize; // 结构体大小
  95373. EM_TASK_TYPE emTaskType; // 任务类型
  95374. UINT nTaskID; // 任务编号
  95375. UINT nProgress; // 任务当前进度
  95376. char szTaskName[256]; // 任务名称
  95377. NET_TIME stuProgressStartTime; // 任务开始时间
  95378. NET_TIME stuProgressEndTime ; // 任务结束时间
  95379. NET_TIME stuStartTime; // 开始时间
  95380. NET_TIME stuEndTime; // 结束时间
  95381. UINT nProgressFileNum; // 文件个数
  95382. UINT nFileSize; // 文件大小 单位:kb
  95383. }NET_OUT_GET_DOUBLE_RECORD_TASK_INFO;
  95384. ///@brief 双录备份获取任务信息
  95385. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDoubleRecordTaskInfo(LLONG lLoginID, const NET_IN_GET_DOUBLE_RECORD_TASK_INFO *pInParam, NET_OUT_GET_DOUBLE_RECORD_TASK_INFO *pOutParam, int nWaitTime);
  95386. ///@brief CLIENT_StartDoubleRecordTask 入参
  95387. typedef struct tagNET_IN_START_DOUBLE_RECORD_TASK_INFO
  95388. {
  95389. DWORD dwSize; // 结构体大小
  95390. int nTaskNum; // 任务个数
  95391. UINT nTaskID[1024]; // 任务编号
  95392. }NET_IN_START_DOUBLE_RECORD_TASK_INFO;
  95393. ///@brief CLIENT_StartDoubleRecordTask 出参
  95394. typedef struct tagNET_OUT_START_DOUBLE_RECORD_TASK_INFO
  95395. {
  95396. DWORD dwSize; // 结构体大小
  95397. }NET_OUT_START_DOUBLE_RECORD_TASK_INFO;
  95398. ///@brief 双录备份开始任务
  95399. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartDoubleRecordTask(LLONG lLoginID, const NET_IN_START_DOUBLE_RECORD_TASK_INFO *pInParam, NET_OUT_START_DOUBLE_RECORD_TASK_INFO *pOutParam, int nWaitTime);
  95400. ///@brief CLIENT_RemoveDoubleRecordTask 出参
  95401. typedef struct tagNET_IN_REMOVE_DOUBLE_RECORD_TASK_INFO
  95402. {
  95403. DWORD dwSize; // 结构体大小
  95404. int nTaskNum; // 任务个数
  95405. UINT nTaskID[1024]; // 任务编号
  95406. }NET_IN_REMOVE_DOUBLE_RECORD_TASK_INFO;
  95407. ///@brief CLIENT_RemoveDoubleRecordTask 入参
  95408. typedef struct tagNET_OUT_REMOVE_DOUBLE_RECORD_TASK_INFO
  95409. {
  95410. DWORD dwSize; // 结构体大小
  95411. }NET_OUT_REMOVE_DOUBLE_RECORD_TASK_INFO;
  95412. ///@brief 删除任务
  95413. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveDoubleRecordTask(LLONG lLoginID, const NET_IN_REMOVE_DOUBLE_RECORD_TASK_INFO *pInParam, NET_OUT_REMOVE_DOUBLE_RECORD_TASK_INFO *pOutParam, int nWaitTime);
  95414. ///@brief 查询条件
  95415. typedef struct tagNET_FIND_CONDITION_INFO
  95416. {
  95417. char szName[32]; // 任务名称
  95418. BYTE byReserved[256]; // 保留字节
  95419. }NET_FIND_CONDITION_INFO;
  95420. ///@brief CLIENT_StartFindDoubleRecordTask 入参
  95421. typedef struct tagNET_IN_START_FIND_DOUBLE_RECORD_TASK_IFNO
  95422. {
  95423. DWORD dwSize; // 结构体大小
  95424. NET_FIND_CONDITION_INFO stuCondition; // 查询条件
  95425. }NET_IN_START_FIND_DOUBLE_RECORD_TASK_INFO;
  95426. ///@brief CLIENT_StartFindDoubleRecordTask 出参
  95427. typedef struct tagNET_OUT_START_FIND_DOUBLE_RECORD_TASK_INFO
  95428. {
  95429. DWORD dwSize; // 结构体大小
  95430. UINT nTotal; // 查询到的总条数
  95431. }NET_OUT_START_FIND_DOUBLE_RECORD_TASK_INFO;
  95432. ///@brief 开始查找任务信息
  95433. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindDoubleRecordTask(LLONG lLoginID, const NET_IN_START_FIND_DOUBLE_RECORD_TASK_INFO *pInParam, NET_OUT_START_FIND_DOUBLE_RECORD_TASK_INFO *pOutParam, int nWaitTime);
  95434. ///@brief CLIENT_DoFindDoubleRecordTask 入参
  95435. typedef struct tagNET_IN_DO_FIND_DOUBLE_RECORD_TASK_INFO
  95436. {
  95437. DWORD dwSize; // 结构体大小
  95438. UINT nBeginNumber; // 查找起始序号(从0开始)
  95439. UINT nCount; // 每次获取的条数
  95440. }NET_IN_DO_FIND_DOUBLE_RECORD_TASK_INFO;
  95441. ///@brief 查找任务列表信息
  95442. typedef struct tagNET_FIND_TASK_LIST_INFO
  95443. {
  95444. EM_TASK_TYPE emBackupsType; // 任务类型
  95445. UINT nTaskID; // 任务ID号
  95446. char szTaskName[32]; // 任务名称
  95447. NET_TIME stuProgressStartTime; // 任务开始时间
  95448. NET_TIME stuProgressEndTime; // 任务结束时间
  95449. UINT nProgress; // 任务进度
  95450. UINT nProgressFileNum; // 文件个数
  95451. NET_TIME stuStartTime; // 开始时间
  95452. NET_TIME stuEndTime; // 结束时间
  95453. UINT nFileSize; // 文件大小 单位:kb
  95454. BYTE byReserved[252]; // 保留字节
  95455. }NET_FIND_TASK_LIST_INFO;
  95456. ///@brief CLIENT_DoFindDoubleRecordTask 出参
  95457. typedef struct tagNET_OUT_DO_FIND_DOUBLE_RECORD_TASK_INFO
  95458. {
  95459. DWORD dwSize; // 结构体大小
  95460. UINT nMaxCount; // 用户指定分配结构体个
  95461. UINT nRetCount; // 返回条数
  95462. NET_FIND_TASK_LIST_INFO *pstuFindLTaskListInfo; // 任务列表信息(内存需要用户分配)
  95463. UINT nFound; // 查询到的条数
  95464. }NET_OUT_DO_FIND_DOUBLE_RECORD_TASK_INFO;
  95465. ///@brief 查找任务信息
  95466. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindDoubleRecordTask(LLONG lFindID, const NET_IN_DO_FIND_DOUBLE_RECORD_TASK_INFO *pInParam, NET_OUT_DO_FIND_DOUBLE_RECORD_TASK_INFO *pOutParam, int nWaitTime);
  95467. ///@brief 结束查找任务信息
  95468. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindDoubleRecordTask(LLONG lFindID);
  95469. ///@brief 任务列表
  95470. typedef struct tagNET_DOUBLE_RECORD_TASK_LIST
  95471. {
  95472. char szTaskName[256]; // 任务名称
  95473. NET_TIME stuProgressStartTime; // 执行开始时间
  95474. NET_TIME stuProgressEndTime; // 执行结束时间
  95475. EM_TASK_TYPE emTaskType; // 任务类型
  95476. UINT nProgress; // 当前任务进度
  95477. NET_TIME stuStartTime; // 开始时间
  95478. NET_TIME stuEndTime; // 结束时间
  95479. UINT nFileSize; // 文件大小
  95480. BYTE byReserved[252]; // 保留字节
  95481. }NET_DOUBLE_RECORD_TASK_LIST;
  95482. ///@brief 任务列表
  95483. typedef struct tagNET_DOUBLE_RECORD_TASK_INFO
  95484. {
  95485. NET_DOUBLE_RECORD_TASK_LIST *pTaskList; // 任务列表
  95486. int nTaskNum; // 任务列表个数
  95487. BYTE byReserved[1020]; // 保留字节
  95488. }NET_DOUBLE_RECORD_TASK_INFO;
  95489. ///@brief 双录备份任务进度、完成百分比、状态回调函数原形,lAttachHandle是CLIENT_AttachDoubleRecordTaskState返回值
  95490. typedef void (CALLBACK *fAttachTaskState) (LLONG lAttachHandle, NET_DOUBLE_RECORD_TASK_INFO *stuBuf, LDWORD dwUser);
  95491. ///@brief CLIENT_AttachDoubleRecordTaskState输入参数
  95492. typedef struct tagNET_IN_ATTACH_TASK_STATE_INFO
  95493. {
  95494. DWORD dwSize;
  95495. fAttachTaskState cbAttachTaskStateCB; // 对码数据回调
  95496. LDWORD dwUser; // 用户数据
  95497. }NET_IN_ATTACH_TASK_STATE_INFO;
  95498. ///@brief CLIENT_AttachDoubleRecordTaskState输出参数
  95499. typedef struct tagNET_OUT_ATTACH_TASK_STATE_INFO
  95500. {
  95501. DWORD dwSize;
  95502. }NET_OUT_ATTACH_TASK_STATE_INFO;
  95503. ///@brief 双录备份任务进度、完成百分比、状态
  95504. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachDoubleRecordTaskState(LLONG lLoginID, const NET_IN_ATTACH_TASK_STATE_INFO *pInParam, NET_OUT_ATTACH_TASK_STATE_INFO *pOutParam, int nWaitTime);
  95505. ///@brief 取消订阅监测点位报警信息
  95506. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachDoubleRecordTaskState(LLONG lAttachHandle);
  95507. /***************************************备份任务接口*******************************************/
  95508. ///@brief 源模式
  95509. typedef enum tagEM_BACKUP_SOURCE_MODE
  95510. {
  95511. EM_SOURCE_MODE_SINGLE, // "Single",/*单个备份模式*/
  95512. EM_SOURCE_MODE_COMBIN, // "Combin",/*合并备份模式*/
  95513. }EM_BACKUP_SOURCE_MODE;
  95514. ///@brief 备份模式
  95515. typedef enum tagEM_BACKUP_TARGET_MODE
  95516. {
  95517. EM_TARGET_MODE_SYNC, // "Sync", /*同步备份*/
  95518. EM_TARGET_MODE_TURN, // "Turn", /*轮训备份*/
  95519. EM_TARGET_MODE_CYCLE, // "Cycle", /*循环备份*/
  95520. }EM_BACKUP_TARGET_MODE;
  95521. ///@brief 格式类型
  95522. typedef enum tagEM_BACKUP_FORMAT
  95523. {
  95524. EM_BACKUP_FORMAT_ASF, // "asf"
  95525. EM_BACKUP_FORMAT_DAV, // "dav"
  95526. EM_BACKUP_FORMAT_MP4, // "mp4"
  95527. }EM_BACKUP_FORMAT;
  95528. ///@brief 源类型
  95529. typedef enum tagEM_BACKUP_SOURCE_TYPE
  95530. {
  95531. EM_SOURCE_TYPE_REALTIME, // "RealTime", /*实时源*/,源类型有效
  95532. EM_SOURCE_TYPE_LOCAL, // "Local", /*本地源*/
  95533. EM_SOURCE_TYPE_NETWORK, // "Network", /*网络源*/
  95534. }EM_BACKUP_SOURCE_TYPE;
  95535. ///@brief 目标类型
  95536. typedef enum tagEM_BACKUP_TARGET_TYPE
  95537. {
  95538. EM_BACKUP_TARGET_TYPE_LOCAL, // "Local", /*本地源*/
  95539. EM_BACKUP_TARGET_TYPE_NETWORK, // "Network", /*网络源*/
  95540. }EM_BACKUP_TARGET_TYPE;
  95541. ///@brief 备份源
  95542. typedef struct tagNET_BACKUP_SOURCE
  95543. {
  95544. EM_BACKUP_SOURCE_TYPE emSourceType; // 源类型
  95545. char Reserved[4]; // 字节对齐
  95546. char szPath[256]; // 源路径,emSourceType为EM_BACKUP_SOURCE_TYPE_REALTIME时,对应格式"通道号/码流类型"。例:"1/Main"
  95547. // 码流类型:Main、Extra1、Extra2、Extra3
  95548. char szRename[256]; // 备份后的文件名
  95549. char byReserved[1024]; // 保留字节
  95550. }NET_BACKUP_SOURCE;
  95551. ///@brief 备份目的
  95552. typedef struct tagNET_BACKUP_TARGET
  95553. {
  95554. EM_BACKUP_TARGET_TYPE emTargetType; // 目标类型
  95555. char Reserved[4]; // 字节对齐
  95556. char szPath[256]; // 备份的目标路径
  95557. char szRename[256]; // 备份后的文件名,如果无该字段,保留原文件名
  95558. char byReserved[1024]; // 保留字节
  95559. }NET_BACKUP_TARGET;
  95560. ///@brief CLIENT_StartBackupTask接口输入参数
  95561. typedef struct tagNET_IN_START_BACKUP_TASK_INFO
  95562. {
  95563. DWORD dwSize;
  95564. EM_BACKUP_SOURCE_MODE emSourceMode; // 源模式
  95565. EM_BACKUP_TARGET_MODE emTargetMode; // 备份模式
  95566. int nSourceNum; // 备份源个数
  95567. NET_BACKUP_SOURCE* pstuSource; // 备份源,用户分配内存,大小为sizeof(NET_BACKUP_SOURCE)*nSourceNum
  95568. NET_BACKUP_TARGET* pstuTarget; // 备份目的,用户分配内存,大小为sizeof(NET_BACKUP_TARGET)*nTargetNum
  95569. int nTargetNum; // 备份目的个数
  95570. EM_BACKUP_FORMAT emFormat; // 期望备份成为的格式类型
  95571. unsigned int nGroupID; // 任务组ID
  95572. BOOL bTakePlayer; // 是否带私有播放器,emFormat值dav时,需要私有播放器播放。
  95573. }NET_IN_START_BACKUP_TASK_INFO;
  95574. ///@brief CLIENT_StartBackupTask接口输出参数
  95575. typedef struct tagNET_OUT_START_BACKUP_TASK_INFO
  95576. {
  95577. DWORD dwSize;
  95578. }NET_OUT_START_BACKUP_TASK_INFO;
  95579. ///@brief 格式类型
  95580. typedef enum tagEM_BACKUP_STATES
  95581. {
  95582. EM_CB_STATES_UNKNOWN, // "Unknown"
  95583. EM_CB_STATES_CREATED, // "Created"
  95584. EM_CB_STATES_READY, // "Ready"
  95585. EM_CB_STATES_RUNNING, // "Running"
  95586. EM_CB_STATES_FINISHED, // "Finished"
  95587. EM_CB_STATES_ERROR, // "Error"
  95588. EM_CB_STATES_ABORTED, // "Aborted"
  95589. EM_CB_STATES_PAUSE, // "Pause"
  95590. }EM_BACKUP_STATES;
  95591. ///@brief 备份状态信息
  95592. typedef struct tagNET_BACKUP_STATES_INFO
  95593. {
  95594. unsigned int nProgress; // 备份进度
  95595. EM_BACKUP_STATES emState; // 备份状态值
  95596. char szDeviceName[64]; // 备份的设备名称
  95597. char byReserved[256]; // 保留字节
  95598. }NET_BACKUP_STATES_INFO;
  95599. ///@brief fAttachBackupTaskStateCB 参数
  95600. typedef struct tagNET_CB_BACKUPTASK_STATE
  95601. {
  95602. NET_BACKUP_STATES_INFO stuStates[1024]; // 备份状态信息
  95603. int nStatesNum; // 备份状态信息个数
  95604. char bReserved[1020]; // 预留字节数
  95605. }NET_CB_BACKUPTASK_STATE;
  95606. ///@brief 刻录设备回调函数原形,lAttachHandle是CLIENT_AttachBackupTaskState返回值,
  95607. typedef void (CALLBACK *fAttachBackupTaskStateCB) (LLONG lAttachHandle, NET_CB_BACKUPTASK_STATE* pBuf, LDWORD dwUser);
  95608. ///@brief CLIENT_AttachBackupTaskState 输入参数
  95609. typedef struct tagNET_IN_ATTACH_BACKUP_STATE
  95610. {
  95611. DWORD dwSize; // 结构体大小.
  95612. unsigned int nGroupID; // 任务组ID
  95613. fAttachBackupTaskStateCB cbAttachState; // 订阅备份状态回调
  95614. LDWORD dwUser; // 用户数据
  95615. char bReserved[4]; // 字节对齐
  95616. }NET_IN_ATTACH_BACKUP_STATE;
  95617. ///@brief CLIENT_AttachBackupTaskState 输出参数
  95618. typedef struct tagNET_OUT_ATTACH_BACKUP_STATE
  95619. {
  95620. DWORD dwSize;
  95621. }NET_OUT_ATTACH_BACKUP_STATE;
  95622. ///@brief 开始备份任务,pstInParam与pstOutParam内存由用户申请释放
  95623. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartBackupTask(LLONG lLoginID, const NET_IN_START_BACKUP_TASK_INFO* pstInParam, NET_OUT_START_BACKUP_TASK_INFO *pstOutParam, int nWaitTime);
  95624. ///@brief 订阅备份状态,pstInParam与pstOutParam内存由用户申请释放
  95625. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachBackupTaskState(LLONG lLoginID, const NET_IN_ATTACH_BACKUP_STATE* pstInParam, NET_OUT_ATTACH_BACKUP_STATE *pstOutParam, int nWaitTime);
  95626. ///@brief 取消订阅备份状态,lAttachHandle是CLIENT_AttachBackupTaskState返回值
  95627. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachBackupTaskState(LLONG lAttachHandle);
  95628. /////////////////////////////消防接口 Start/////////////////////////////////
  95629. ///@brief CLIENT_SmokeRemoteReboot 入参
  95630. typedef struct tagNET_IN_SMOKE_REMOTE_REBOOT_INFO
  95631. {
  95632. DWORD dwSize; // 结构体大小
  95633. int nChannel; // 通道号
  95634. }NET_IN_SMOKE_REMOTE_REBOOT_INFO;
  95635. ///@brief CLIENT_SmokeRemoteReboot 出参
  95636. typedef struct tagNET_OUT_SMOKE_REMOTE_REBOOT_INFO
  95637. {
  95638. DWORD dwSize; // 结构体大小
  95639. }NET_OUT_SMOKE_REMOTE_REBOOT_INFO;
  95640. ///@brief 远程复位(消防)
  95641. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SmokeRemoteReboot(LLONG lLoginID, const NET_IN_SMOKE_REMOTE_REBOOT_INFO *pInParam, NET_OUT_SMOKE_REMOTE_REBOOT_INFO *pOutParam, int nWaitTime);
  95642. ///@brief 消音模式
  95643. typedef enum tagEM_HY_SMOKE_ERASURE_MODE
  95644. {
  95645. EM_HY_SMOKE_ERASURE_MODE_UNKNOWN, // 未知
  95646. EM_HY_SMOKE_ERASURE_MODE_ONCE, // 一次消音
  95647. EM_HY_SMOKE_ERASURE_MODE_PERMANENT, // 永久消音
  95648. }EM_HY_SMOKE_ERASURE_MODE;
  95649. ///@brief CLIENT_SmokeRemoteErasure 入参
  95650. typedef struct tagNET_IN_SMOKE_REMOTE_ERASURE_INFO
  95651. {
  95652. DWORD dwSize; // 结构体大小
  95653. int nChannel; // 通道号
  95654. EM_HY_SMOKE_ERASURE_MODE emErasureMode; // 消音模式
  95655. }NET_IN_SMOKE_REMOTE_ERASURE_INFO;
  95656. ///@brief CLIENT_SmokeRemoteErasure 出参
  95657. typedef struct tagNET_OUT_SMOKE_REMOTE_ERASURE_INFO
  95658. {
  95659. DWORD dwSize; // 结构体大小
  95660. }NET_OUT_SMOKE_REMOTE_ERASURE_INFO;
  95661. ///@brief 远程消音(消防)
  95662. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SmokeRemoteErasure(LLONG lLoginID, const NET_IN_SMOKE_REMOTE_ERASURE_INFO *pInParam, NET_OUT_SMOKE_REMOTE_ERASURE_INFO *pOutParam, int nWaitTime);
  95663. ///@brief CLIENT_GetSmokeData 入参
  95664. typedef struct tagNET_IN_GET_SMOKE_DATA
  95665. {
  95666. DWORD dwSize; // 结构体大小
  95667. int nChannel; // 通道号
  95668. }NET_IN_GET_SMOKE_DATA;
  95669. ///@brief CLIENT_GetSmokeData 出参
  95670. typedef struct tagNET_OUT_GET_SMOKE_DATA
  95671. {
  95672. DWORD dwSize; // 结构体大小
  95673. float ftemperatureData; // 温度值
  95674. NET_TEMPERATURE_UNIT emTemperatureUnit; // 温度单位
  95675. int nHumidityData; // 湿度值,单位%RH
  95676. int nCOData; // 一氧化碳浓度 单位:ppm
  95677. float nCH4Data; // 甲烷浓度, 单位:%LEL
  95678. }NET_OUT_GET_SMOKE_DATA;
  95679. ///@brief 获取烟感数据
  95680. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSmokeData(LLONG lLoginID, const NET_IN_GET_SMOKE_DATA *pInParam, NET_OUT_GET_SMOKE_DATA *pOutParam, int nWaitTime);
  95681. /////////////////////////////消防接口 end/////////////////////////////////
  95682. /////////////////////////////闸机接口 Start/////////////////////////////////
  95683. ///@brief CLIENT_ASGManagerGetConfig 入参
  95684. typedef struct tagNET_IN_ASGMANAGER_GET_CONFIG
  95685. {
  95686. DWORD dwSize; // 结构体大小
  95687. }NET_IN_ASGMANAGER_GET_CONFIG;
  95688. ///@brief 语音ID
  95689. typedef enum tagEM_VOICE_ID
  95690. {
  95691. EM_VOICE_ID_UNKNOWN = -1, // 未知
  95692. EM_VOICE_ID_NO, // 无语音
  95693. EM_VOICE_ID_WELCOME, // 欢迎光临
  95694. EM_VOICE_ID_WELCOME_HOME, // 欢迎回家
  95695. EM_VOICE_ID_GOOD_JOURNEY, // 一路顺风
  95696. EM_VOICE_ID_WELCOME_BACK_NEXT, // 欢迎下次光临
  95697. EM_VOICE_ID_THANKS_FOR_PATRONAGE, // 谢谢惠顾
  95698. EM_VOICE_ID_AUTHORIZ_SUCCESS, // 授权成功
  95699. EM_VOICE_ID_SAFE_JOURNEY, // 一路平安
  95700. EM_VOICE_ID_VERIFY_SUCCESS, // 验证成功
  95701. EM_VOICE_ID_WELCOME_ADMISSION, // 欢迎入园
  95702. EM_VOICE_ID_HOPE_HEALTH, // 祝你健康
  95703. EM_VOICE_ID_HOPE_SAFE, // 祝你平安
  95704. EM_VOICE_ID_HOPE_SPEED_RECOVERY, // 祝你早日康复
  95705. EM_VOICE_ID_WORK_SUCCESS, // 祝你工作顺利
  95706. EM_VOICE_ID_CUSTOMIZED_VOICE1 = 16, // 自定义1
  95707. EM_VOICE_ID_CUSTOMIZED_VOICE2, // 自定义2
  95708. EM_VOICE_ID_CUSTOMIZED_VOICE3, // 自定义3
  95709. } EM_VOICE_ID;
  95710. ///@brief 通行语音列表
  95711. typedef struct tagNET_VOICE_LIST
  95712. {
  95713. UINT nDirectionIndication; // 指示进出门方向0: 进门方向1: 出门方向
  95714. EM_VOICE_ID emVoiceID; // 语音ID
  95715. char szReserved[512]; // 预留字节
  95716. }NET_VOICE_LIST;
  95717. ///@brief 通行模式
  95718. typedef enum tagEM_NET_PASS_MODE
  95719. {
  95720. EM_NET_PASS_MODE_UNKNOWN = -1, // 未知
  95721. EM_NET_PASS_MODE_IN_AUTHORIZATION_OUT_AUTHORIZATION, // 进授权出授权
  95722. EM_NET_PASS_MODE_IN_AUTHORIZATION_OUT_FREE, // 进授权出自由
  95723. EM_NET_PASS_MODE_IN_AUTHORIZATION_OUT_FORBID, // 进授权出禁止
  95724. EM_NET_PASS_MODE_IN_FREE_OUT_AUTHORIZATION, // 进自由出授权
  95725. EM_NET_PASS_MODE_IN_FREE_OUT_FREE, // 进自由出自由
  95726. EM_NET_PASS_MODE_IN_FREE_OUT_FORBID, // 进自由出禁止
  95727. EM_NET_PASS_MODE_IN_FORBID_OUT_AUTHORIZATION, // 进禁止出授权
  95728. EM_NET_PASS_MODE_IN_FORBID_OUT_FREE, // 进禁止出自由
  95729. EM_NET_PASS_MODE_IN_FORBID_OUT_FORBID, // 进禁止出禁止
  95730. } EM_NET_PASS_MODE;
  95731. ///@brief 闸机断电以后门摆动放向
  95732. typedef enum tagEM_NET_DIRECTION_AFTER_POWER_OFF
  95733. {
  95734. EM_NET_DIRECTION_AFTER_POWER_OFF_UNKNOWN = -1, // 未知
  95735. EM_NET_DIRECTION_AFTER_POWER_OFF_IN, // 进门方向
  95736. EM_NET_DIRECTION_AFTER_POWER_OFF_OUT, // 出门方向
  95737. } EM_NET_DIRECTION_AFTER_POWER_OFF;
  95738. ///@brief 工作模式
  95739. typedef enum tagEM_NET_ASG_WORK_MODE
  95740. {
  95741. EM_NET_ASG_WORK_MODE_UNKNOWN = -1, // 未知
  95742. EM_NET_ASG_WORK_MODE_CLOSE, // 常闭模式
  95743. EM_NET_ASG_WORK_MODE_OPEN, // 常开模式
  95744. } EM_NET_ASG_WORK_MODE;
  95745. ///@brief 启动模式
  95746. typedef enum tagEM_NET_STARTUP_MODE
  95747. {
  95748. EM_NET_STARTUP_MODE_UNKNOWN = -1, // 未知
  95749. EM_NET_STARTUP_MODE_NORMAL, // 正常启动模式
  95750. EM_NET_STARTUP_MODE_ZERO_SETTING, // 零位设置启动模式
  95751. EM_NET_STARTUP_MODE_AGING_TEST, // 老化测试启动模式
  95752. } EM_NET_STARTUP_MODE;
  95753. ///@brief 闸机类型
  95754. typedef enum tagEM_NET_GATE_TYPE
  95755. {
  95756. EM_NET_ASG_GATE_TYPE_UNKNOWN = -1, // 未知
  95757. EM_NET_ASG_GATE_TYPE_SWING_GATE_ONE, // 摆闸1
  95758. EM_NET_ASG_GATE_TYPE_SWING_GATE_TWO, // 摆闸2
  95759. EM_NET_ASG_GATE_TYPE_WING_GATE_ONE, // 翼闸1
  95760. EM_NET_ASG_GATE_TYPE_WING_GATE_TWO, // 翼闸2
  95761. EM_NET_ASG_GATE_TYPE_WING_GATE_THREE, // 翼闸3
  95762. EM_NET_ASG_GATE_TYPE_THREE_STICK_GATE_ONE = 10, // 三棍闸1
  95763. EM_NET_ASG_GATE_TYPE_THREE_STICK_GATE_TWO, // 三棍闸2
  95764. EM_NET_ASG_GATE_TYPE_SWING_GATE_THREE = 20, // 摆闸3
  95765. EM_NET_ASG_GATE_TYPE_SWING_GATE_FOUR, // 摆闸4
  95766. EM_NET_ASG_GATE_TYPE_SWING_GATE_FIVE, // 摆闸5
  95767. } EM_NET_GATE_TYPE;
  95768. ///@brief 通道宽度
  95769. typedef enum tagEM_NET_CHANNEL_WIDTH
  95770. {
  95771. EM_NET_CHANNEL_WIDTH_UNKNOWN = -1, // 未知
  95772. EM_NET_CHANNEL_WIDTH_600, // 600mm
  95773. EM_NET_CHANNEL_WIDTH_700, // 700mm
  95774. EM_NET_CHANNEL_WIDTH_800, // 800mm
  95775. EM_NET_CHANNEL_WIDTH_900, // 900mm
  95776. EM_NET_CHANNEL_WIDTH_1000, // 1000mm
  95777. EM_NET_CHANNEL_WIDTH_1100, // 1100mm
  95778. EM_NET_CHANNEL_WIDTH_1200, // 1200mm
  95779. EM_NET_CHANNEL_WIDTH_1300, // 1300mm
  95780. EM_NET_CHANNEL_WIDTH_1400, // 1400mm
  95781. EM_NET_CHANNEL_WIDTH_1500, // 1500mm
  95782. } EM_NET_CHANNEL_WIDTH;
  95783. ///@brief 闸机主板配置
  95784. typedef struct tagNET_MAIN_BOARD_CONFIG
  95785. {
  95786. UINT nVoiceListNum; // 通行语音列表个数
  95787. NET_VOICE_LIST stuVoiceList[16]; // 通行语音列表
  95788. EM_NET_PASS_MODE emPassMode; // 通行模式
  95789. UINT nOpenDoorSpeed; // 开门速度档位, 范围:0-7, 对应1-8档
  95790. UINT nPassTimeOut; // 通行超时时间, 范围:2-60, 单位:秒
  95791. UINT nCloseDelayTime; // 延时关门时间,单位:秒,范围(0-60)即,行人通过后延迟指定时间再关门。
  95792. UINT nSecurityLevel; // 闸机安全等级, 范围:0-4, 对应1-5级
  95793. BOOL bSecondOpenEnable; // 二次开启功能开关;False:关闭, True:开启
  95794. UINT nSecondOpenTimeSec; // 二次开启时间段值,即AccessTimeSchedule的数组索引
  95795. BOOL bMemoryModeEnable; // 记忆功能开关;False:关闭, True:开启
  95796. UINT nVolumeLevel; // 设备音量等级共8档, 范围:0-7, 0级表示静音
  95797. EM_NET_DIRECTION_AFTER_POWER_OFF emDirectionAfterPowerOff; // 闸机断电以后门摆动放向
  95798. EM_NET_ASG_WORK_MODE emWorkMode; // 工作模式
  95799. UINT nWorkModeTimeSec; // 工作模式时间段值,即AccessTimeSchedule的数组索引
  95800. EM_NET_STARTUP_MODE emStartUpMode; // 启动模式
  95801. int nMasterWingAngleAdjust; // 主机侧门翼零位微调角度,取值范围,-100 ~ 100, 单位:0.1°,即可调节-10度~10度
  95802. int nSlaveWingAngleAdjust; // 从机侧门翼零位微调角度,取值范围,-100 ~ 100, 单位:0.1°,即可调节-10度~10度
  95803. EM_NET_GATE_TYPE emGateType; // 闸机类型
  95804. EM_NET_CHANNEL_WIDTH emChannelWidth; // 通道宽度
  95805. UINT nGateMaterial; // 闸机门翼材质 0:不锈钢 1:亚克力
  95806. UINT nMemoryModeTimeSec; // 记忆模式时间段值
  95807. char szReserved[1016]; // 预留字节
  95808. }NET_MAIN_BOARD_CONFIG;
  95809. ///@brief CLIENT_ASGManagerGetConfig 出参
  95810. typedef struct tagNET_OUT_ASGMANAGER_GET_CONFIG
  95811. {
  95812. DWORD dwSize; // 结构体大小
  95813. NET_MAIN_BOARD_CONFIG stuMainBoardConfig; // 闸机主板配置
  95814. }NET_OUT_ASGMANAGER_GET_CONFIG;
  95815. ///@brief 闸机设置配置获取专用方法,pstInParam与pstOutParam内存由用户申请释放
  95816. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ASGManagerGetConfig(LLONG lLoginID, const NET_IN_ASGMANAGER_GET_CONFIG *pInParam, NET_OUT_ASGMANAGER_GET_CONFIG *pOutParam, int nWaitTime);
  95817. ///@brief CLIENT_ASGManagerSetConfig 入参
  95818. typedef struct tagNET_IN_ASGMANAGER_SET_CONFIG
  95819. {
  95820. DWORD dwSize; // 结构体大小
  95821. NET_MAIN_BOARD_CONFIG stuMainBoardConfig; // 闸机主板配置
  95822. }NET_IN_ASGMANAGER_SET_CONFIG;
  95823. ///@brief CLIENT_ASGManagerSetConfig 出参
  95824. typedef struct tagNET_OUT_ASGMANAGER_SET_CONFIG
  95825. {
  95826. DWORD dwSize; // 结构体大小
  95827. }NET_OUT_ASGMANAGER_SET_CONFIG;
  95828. ///@brief 闸机设置配置下发专用方法,pstInParam与pstOutParam内存由用户申请释放
  95829. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ASGManagerSetConfig(LLONG lLoginID, const NET_IN_ASGMANAGER_SET_CONFIG *pInParam, NET_OUT_ASGMANAGER_SET_CONFIG *pOutParam, int nWaitTime);
  95830. ///@brief CLIENT_ASGManagerClearStatistics 入参
  95831. typedef struct tagNET_IN_ASGMANAGER_CLEAR_STATISTICS
  95832. {
  95833. DWORD dwSize; // 结构体大小
  95834. BOOL bCleanPassNum; // 是否清除通行人数
  95835. }NET_IN_ASGMANAGER_CLEAR_STATISTICS;
  95836. ///@brief CLIENT_ASGManagerClearStatistics 出参
  95837. typedef struct tagNET_OUT_ASGMANAGER_CLEAR_STATISTICS
  95838. {
  95839. DWORD dwSize; // 结构体大小
  95840. }NET_OUT_ASGMANAGER_CLEAR_STATISTICS;
  95841. ///@brief 清除闸机的统计信息方法,pstInParam与pstOutParam内存由用户申请释放
  95842. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ASGManagerClearStatistics(LLONG lLoginID, const NET_IN_ASGMANAGER_CLEAR_STATISTICS *pInParam, NET_OUT_ASGMANAGER_CLEAR_STATISTICS *pOutParam, int nWaitTime);
  95843. ///@brief CLIENT_ASGManagerGetConfigCaps 入参
  95844. typedef struct tagNET_IN_ASGMANAGER_GET_CONFIG_CAPS
  95845. {
  95846. DWORD dwSize; // 结构体大小
  95847. }NET_IN_ASGMANAGER_GET_CONFIG_CAPS;
  95848. ///@brief CLIENT_ASGManagerGetConfigCaps 出参
  95849. typedef struct tagNET_OUT_ASGMANAGER_GET_CONFIG_CAPS
  95850. {
  95851. DWORD dwSize; // 结构体大小
  95852. BOOL bSupportVoiceList; // 支持配置语音列表
  95853. BOOL bSupportPassMode; // 支持配置通行模式
  95854. BOOL bSupportOpenDoorSpeed; // 支持配置开门速度
  95855. BOOL bSupportCloseDoorSpeed; // 支持配置关门速度
  95856. BOOL bSupportPassTimeOut; // 支持配置通行超时时间
  95857. BOOL bSupportCloseDelayTime; // 支持配置关门延时时间
  95858. BOOL bSupportSecurityLevel; // 支持配置安全等级
  95859. BOOL bSupportSecondOpenEnable; // 支持配置二次开启
  95860. BOOL bSupportSecondOpenTimeSec; // 支持配置二次开启时间段
  95861. BOOL bSupportMemoryModeEnable; // 支持配置记忆模式
  95862. BOOL bSupportVolumeLevel; // 支持配置语音音量
  95863. BOOL bSupportDirectionAfterPowerOff; // 支持配置断电开闸方向
  95864. BOOL bSupportWorkMode; // 支持配置工作模式
  95865. BOOL bSupportWorkModeTimeSec; // 支持配置工作模式时间段
  95866. BOOL bSupportStartUpMode; // 支持配置启动模式
  95867. BOOL bSupportMasterWingAngleAdjust; // 支持配置主机零位调节
  95868. BOOL bSupportSlaveWingAngleAdjust; // 支持配置辅机零位调节
  95869. BOOL bSupportGateType; // 支持闸机类型设置
  95870. BOOL bSupportChannelWidth; // 支持配置通道宽度
  95871. BOOL bSupportGateMaterial; // 支持配置闸机门翼材质
  95872. }NET_OUT_ASGMANAGER_GET_CONFIG_CAPS;
  95873. ///@brief 闸机配置项能力集获取专用方法,pstInParam与pstOutParam内存由用户申请释放
  95874. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ASGManagerGetConfigCaps(LLONG lLoginID, const NET_IN_ASGMANAGER_GET_CONFIG_CAPS *pInParam, NET_OUT_ASGMANAGER_GET_CONFIG_CAPS *pOutParam, int nWaitTime);
  95875. /////////////////////////////闸机接口 end/////////////////////////////////
  95876. /////////////////////////////项目接口 Start/////////////////////////////////
  95877. ///@brief 加油枪操作类型
  95878. typedef enum tagEM_OLIGUN_OPERATE_TYPE
  95879. {
  95880. EM_OLIGUN_OPERATE_TYPE_CARRY, // 提枪
  95881. EM_OLIGUN_OPERATE_TYPE_HANG, // 挂枪
  95882. } EM_OLIGUN_OPERATE_TYPE;
  95883. ///@brief 加油点车辆信息返回类型
  95884. typedef enum tagEM_GASSTATION_CARINFO_RETURN_TYPE
  95885. {
  95886. EM_GASSTATION_CARINFO_RETURN_TYPE_NON, // 无任何返回
  95887. EM_GASSTATION_CARINFO_RETURN_TYPE_PLATENUM, // 返回车牌号文字
  95888. EM_GASSTATION_CARINFO_RETURN_TYPE_PLATENUM_PIC, // 返回车牌号文字和车辆抓拍图片
  95889. } EM_GASSTATION_CARINFO_RETURN_TYPE;
  95890. ///@brief CLIENT_GetGasStationCarInfoByOilgunIndex 接口输入参数
  95891. typedef struct tagNET_IN_GET_GASSTATION_CAR_BY_OLIGUNINDEX
  95892. {
  95893. DWORD dwSize; // 结构体大小
  95894. char szReserved[4]; // 字节对齐
  95895. UINT nRequestTime; // 提枪或挂枪的操作时间,时间格式:UTC时间
  95896. EM_OLIGUN_OPERATE_TYPE emOpreateType; // 油枪操作类型
  95897. UINT nOligunIndex; // 油枪编号
  95898. EM_GASSTATION_CARINFO_RETURN_TYPE emCarInfoReturnType; // 车辆信息返回类型
  95899. } NET_IN_GET_GASSTATION_CAR_BY_OLIGUNINDEX;
  95900. ///@brief 获取加油站车辆信息的返回码
  95901. typedef enum tagEM_GASSTATION_CAR_RESPOND_CODE
  95902. {
  95903. EM_GASSTATION_CAR_RESPOND_UNKNOWN = -1, // 未知
  95904. EM_GASSTATION_CAR_RESPOND_SUCCESS, // 提交处理成功
  95905. EM_GASSTATION_CAR_RESPOND_INVALID_PARAM, // 参数不正确
  95906. EM_GASSTATION_CAR_RESPOND_SERVICE_NOT_SUPPORT, // 服务不支持
  95907. EM_GASSTATION_CAR_RESPOND_CONN_SNAPDEV_FAILED, // 连接抓拍设备失败
  95908. EM_GASSTATION_CAR_RESPOND_DB_ERROR, // 数据库执行失败
  95909. EM_GASSTATION_CAR_RESPOND_NO_EFFECTIVE_PLATE, // 没有识别到有效车牌
  95910. EM_GASSTATION_CAR_RESPOND_NET_ERROR, // 网络异常
  95911. EM_GASSTATION_CAR_RESPOND_ENCRY_DECRY_ERROR, // 加解密异常
  95912. EM_GASSTATION_CAR_RESPOND_SYSTEM_ERROR, // 系统异常
  95913. } EM_GASSTATION_CAR_RESPOND_CODE;
  95914. ///@brief 加油站车辆图片信息
  95915. typedef struct tagNET_GASSTATION_CAR_IMAGE
  95916. {
  95917. UINT nOffset; // 车辆图片在二进制数据块中的偏移,单位字节
  95918. UINT nLength; // 车辆图片长度,单位:字节
  95919. char szReserved[512]; // 保留字节
  95920. } NET_GASSTATION_CAR_IMAGE;
  95921. ///@brief 加油站车辆类型
  95922. typedef enum tagEM_GASSTATION_CAR_TYPE
  95923. {
  95924. EM_GASSTATION_UNKNOWN, // 未知
  95925. EM_GASSTATION_OTHER, // 其他
  95926. EM_GASSTATION_MPV, // MPV
  95927. EM_GASSTATION_SUV, // SUV
  95928. EM_GASSTATION_LARGE_TRUCK, // 大货车
  95929. EM_GASSTATION_MOTOR_BUS, // 大客车
  95930. EM_GASSTATION_MICROBUS, // 面包车
  95931. EM_GASSTATION_PICKUP, // 皮卡车
  95932. EM_GASSTATION_MINI_CARRIAGE, // 微型轿车
  95933. EM_GASSTATION_MICRO_TRUCK, // 小货车
  95934. EM_GASSTATION_CARRIAGE, // 小轿车
  95935. EM_GASSTATION_MID_TRUCK, // 中货车
  95936. EM_GASSTATION_MID_PASSENGER_CAR, // 中客车
  95937. EM_GASSTATION_TRICYCLE, // 三轮车
  95938. EM_GASSTATION_MOTORCYCLE, // 摩托车
  95939. } EM_GASSTATION_CAR_TYPE;
  95940. ///@brief CLIENT_GetGasStationCarInfoByOilgunIndex 接口输出参数
  95941. typedef struct tagNET_OUT_GET_GASSTATION_CAR_BY_OLIGUNINDEX
  95942. {
  95943. DWORD dwSize; // 结构体大小
  95944. EM_GASSTATION_CAR_RESPOND_CODE emRespondCode; // 获取加油站车辆信息的返回码
  95945. char szPlateNumber[64]; // 车牌号码
  95946. NET_GASSTATION_CAR_IMAGE stuCarImageInfo; // 车辆图片信息
  95947. EM_GASSTATION_CAR_TYPE emCarType; // 加油站车辆类型
  95948. UINT nCarImageBufLen; // 车辆图片缓冲区大小
  95949. char *pCarImageBuf; // 车辆图片缓冲区
  95950. } NET_OUT_GET_GASSTATION_CAR_BY_OLIGUNINDEX;
  95951. ///@brief CLIENT_GetGasStationCameraInfo 接口输入参数
  95952. typedef struct tagNET_IN_GET_GASSTATION_GAMERA_INFO
  95953. {
  95954. DWORD dwSize; // 结构体大小
  95955. } NET_IN_GET_GASSTATION_GAMERA_INFO;
  95956. ///@brief 加油站相机位置
  95957. typedef enum tagEM_GASSTATION_CAMERA_LOCATION
  95958. {
  95959. EM_GASSTATION_CAMERA_LOCATION_UNKNWON, // 未知
  95960. EM_GASSTATION_CAMERA_LOCATION_ENTER, // 入口
  95961. EM_GASSTATION_CAMERA_LOCATION_GAS, // 加油岛
  95962. EM_GASSTATION_CAMERA_LOCATION_EXIT, // 出口
  95963. } EM_GASSTATION_CAMERA_LOCATION;
  95964. ///@brief 加油站监控点相机信息
  95965. typedef struct tagNET_GASSTATION_CAMERA_INFO
  95966. {
  95967. UINT nChannelID; // 通道号
  95968. EM_GASSTATION_CAMERA_LOCATION emLocation; // 加油站相机位置
  95969. char szReserved[512]; // 保留字节
  95970. } NET_GASSTATION_CAMERA_INFO;
  95971. ///@brief CLIENT_GetGasStationCameraInfo 接口输出参数
  95972. typedef struct tagNET_OUT_GET_GASSTATION_GAMERA_INFO
  95973. {
  95974. DWORD dwSize; // 结构体大小
  95975. UINT nCameraNum; // 加油站相机个数
  95976. NET_GASSTATION_CAMERA_INFO stuCmaeraList[256]; // 加油站相机信息
  95977. } NET_OUT_GET_GASSTATION_GAMERA_INFO;
  95978. ///@brief 通过油枪编号获取对应加油点车辆信息
  95979. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetGasStationCarInfoByOilgunIndex(LLONG lLoginID, const NET_IN_GET_GASSTATION_CAR_BY_OLIGUNINDEX *pInParam, NET_OUT_GET_GASSTATION_CAR_BY_OLIGUNINDEX *pOutParam, int nWaitTime);
  95980. ///@brief 获取加油站相机信息
  95981. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetGasStationCameraInfo(LLONG lLoginID, const NET_IN_GET_GASSTATION_GAMERA_INFO *pInParam, NET_OUT_GET_GASSTATION_GAMERA_INFO *pOutParam, int nWaitTime);
  95982. /////////////////////////////项目接口 End/////////////////////////////////
  95983. /***************************工装合规接口Start***************************************************/
  95984. ///@brief 工装合规组优先方案
  95985. typedef enum tagEM_WORKSUIT_GROUP_POLICY
  95986. {
  95987. EM_WORKSUIT_GROUP_POLICY_UNKNWON = -1, // 未知
  95988. EM_WORKSUIT_GROUP_POLICY_WHOLE_BODY, // 全身
  95989. EM_WORKSUIT_GROUP_POLICY_UPPER_BODY, // 上半身
  95990. } EM_WORKSUIT_GROUP_POLICY;
  95991. ///@brief 工装合规组类型
  95992. typedef enum tagEM_WORKSUIT_GROUP_TYPE
  95993. {
  95994. EM_WORKSUIT_GROUP_TYPE_UNKNWON, // 未知
  95995. EM_WORKSUIT_GROUP_TYPE_BLOCK, // 注册库(布控名单)
  95996. } EM_WORKSUIT_GROUP_TYPE;
  95997. ///@brief 合规库布控信息(视频通道角度)
  95998. typedef struct tagNET_WORKSUIT_CHANNEL_INFO
  95999. {
  96000. int nChannel; // 当前组绑定的通道信息, 只读, 获取时有效
  96001. UINT nSimilarity; // 相似度阈值,范围 [1, 100],默认67, 只读, 获取时有效
  96002. char szReserved[128]; // 保留字节
  96003. } NET_WORKSUIT_CHANNEL_INFO;
  96004. ///@brief 工装合规组信息
  96005. typedef struct tagNET_WORKSUIT_COMPARE_GROUP_INFO
  96006. {
  96007. char szGroupID[64]; // 合规组ID, 只读, 由设备生成, 创建工装库时无需指定
  96008. char szGroupName[128]; // 合规组名称
  96009. char szGroupDetail[256]; // 合规组备注信息
  96010. EM_WORKSUIT_GROUP_POLICY emWorkSuitPolicy; // 工装优选方案
  96011. UINT nSimilarity; // 相似度阈值,范围 [1, 100],默认67
  96012. EM_WORKSUIT_GROUP_TYPE emGroupType; // 合规组类型
  96013. int nGroupSize; // 当前组内工装数, 只读, 获取时有效
  96014. NET_WORKSUIT_CHANNEL_INFO stuChannelInfo[1024]; // 合规库视频通道布控信息, 只读, 获取时有效
  96015. UINT nChannelInfoNum; // 当前组绑定的通道数量, 只读, 获取时有效
  96016. char szReserved[2044]; // 保留字节
  96017. } NET_WORKSUIT_COMPARE_GROUP_INFO;
  96018. ///@brief CLIENT_CreateWorkSuitCompareGroup 接口输入参数
  96019. typedef struct tagNET_IN_CREATE_WORKSUIT_COMPARE_GROUP
  96020. {
  96021. DWORD dwSize; // 结构体大小
  96022. char szReserved[4]; // 字节对齐
  96023. NET_WORKSUIT_COMPARE_GROUP_INFO stuWorkSuitGroupInfo; // 工装合规组信息
  96024. } NET_IN_CREATE_WORKSUIT_COMPARE_GROUP;
  96025. ///@brief CLIENT_CreateWorkSuitCompareGroup 接口输出参数
  96026. typedef struct tagNET_OUT_CREATE_WORKSUIT_COMPARE_GROUP
  96027. {
  96028. DWORD dwSize; // 结构体大小
  96029. char szReserved[4]; // 字节对齐
  96030. char szGroupID[64]; // 合规库组ID
  96031. } NET_OUT_CREATE_WORKSUIT_COMPARE_GROUP;
  96032. ///@brief CLIENT_DeleteWorkSuitCompareGroup 接口输入参数
  96033. typedef struct tagNET_IN_DELETE_WORKSUIT_COMPARE_GROUP
  96034. {
  96035. DWORD dwSize; // 结构体大小
  96036. char szReserved[4]; // 字节对齐
  96037. char szGroupID[64]; // 合规库组ID
  96038. } NET_IN_DELETE_WORKSUIT_COMPARE_GROUP;
  96039. ///@brief CLIENT_DeleteWorkSuitCompareGroup 接口输出参数
  96040. typedef struct tagNET_OUT_DELETE_WORKSUIT_COMPARE_GROUP
  96041. {
  96042. DWORD dwSize; // 结构体大小
  96043. } NET_OUT_DELETE_WORKSUIT_COMPARE_GROUP;
  96044. ///@brief CLIENT_FindWorkSuitCompareGroup 接口输入参数
  96045. typedef struct tagNET_IN_FIND_WORKSUIT_COMPARE_GROUP
  96046. {
  96047. DWORD dwSize; // 结构体大小
  96048. char szReserved[4]; // 字节对齐
  96049. char szGroupID[64]; // 合规库组ID, 不填组ID表示查找全部组信息
  96050. } NET_IN_FIND_WORKSUIT_COMPARE_GROUP;
  96051. ///@brief CLIENT_FindWorkSuitCompareGroup 接口输出参数
  96052. typedef struct tagNET_OUT_FIND_WORKSUIT_COMPARE_GROUP
  96053. {
  96054. DWORD dwSize; // 结构体大小
  96055. char szReserved[4]; // 字节对齐
  96056. UINT nMaxGroupNum; // 工装合规组最大个数, 由用户指定, 即pstWorkSuitGroupInfo 数组大小
  96057. UINT nRetGroupNum; // 实际返回的工装合规组个数, 即pstWorkSuitGroupInfo数组的有效元素个数
  96058. NET_WORKSUIT_COMPARE_GROUP_INFO *pstWorkSuitGroupInfo; // 工装合规组信息, 内存由用户申请, 申请大小nMaxGroupNum*sizeof(NET_WORKSUIT_COMPARE_GROUP_INFO)
  96059. } NET_OUT_FIND_WORKSUIT_COMPARE_GROUP;
  96060. ///@brief CLIENT_ModifyWorkSuitCompareGroup 接口输入参数
  96061. typedef struct tagNET_IN_MODIFY_WORKSUIT_COMPARE_GROUP
  96062. {
  96063. DWORD dwSize; // 结构体大小
  96064. char szReserved[4]; // 字节对齐
  96065. NET_WORKSUIT_COMPARE_GROUP_INFO stuWorkSuitGroupInfo; // 工装合规组信息
  96066. } NET_IN_MODIFY_WORKSUIT_COMPARE_GROUP;
  96067. ///@brief CLIENT_ModifyWorkSuitCompareGroup 接口输出参数
  96068. typedef struct tagNET_OUT_MODIFY_WORKSUIT_COMPARE_GROUP
  96069. {
  96070. DWORD dwSize; // 结构体大小
  96071. } NET_OUT_MODIFY_WORKSUIT_COMPARE_GROUP;
  96072. ///@brief 工装合规布控组信息
  96073. typedef struct tagNET_WORKSUIT_CONTROL_GROUP_INFO
  96074. {
  96075. char szGroupID[64]; // 合规库组ID
  96076. UINT nSimilary; // 相似度阈值, 范围[0, 100], 0表示不修改阈值
  96077. char szReserved[1020]; // 保留字节
  96078. } NET_WORKSUIT_CONTROL_GROUP_INFO;
  96079. ///@brief CLIENT_SetWorkSuitCompareGroupToChannel 接口输入参数
  96080. typedef struct tagNET_IN_SET_WORKSUIT_COMPARE_GROUP
  96081. {
  96082. DWORD dwSize; // 结构体大小
  96083. char szReserved[4]; // 字节对齐
  96084. int nChannel; // 视频通道号
  96085. UINT nGroupNum; // 工装合规布控组个数,
  96086. NET_WORKSUIT_CONTROL_GROUP_INFO stuGroupInfo[128]; // 工装合规布控组信息
  96087. } NET_IN_SET_WORKSUIT_COMPARE_GROUP;
  96088. ///@brief CLIENT_SetWorkSuitCompareGroupToChannel 接口输出参数
  96089. typedef struct tagNET_OUT_SET_WORKSUIT_COMPARE_GROUP
  96090. {
  96091. DWORD dwSize; // 结构体大小
  96092. } NET_OUT_SET_WORKSUIT_COMPARE_GROUP;
  96093. ///@brief CLIENT_GetWorkSuitCompareGroupAppendToken 接口输入参数
  96094. typedef struct tagNET_IN_GET_WORKSUIT_GROUP_APPEND_TOKEN
  96095. {
  96096. DWORD dwSize; // 结构体大小
  96097. } NET_IN_GET_WORKSUIT_GROUP_APPEND_TOKEN;
  96098. ///@brief CLIENT_GetWorkSuitCompareGroupAppendToken 接口输出参数
  96099. typedef struct tagNET_OUT_GET_WORKSUIT_GROUP_APPEND_TOKEN
  96100. {
  96101. DWORD dwSize; // 结构体大小
  96102. UINT nToken; // 工装合规库导入令牌
  96103. } NET_OUT_GET_WORKSUIT_GROUP_APPEND_TOKEN;
  96104. ///@brief 工装合规样本信息
  96105. typedef struct tagNET_WORKSUIT_SAMPLE_INFO
  96106. {
  96107. char szGroupID[64]; // 合规库组ID
  96108. char szGroupName[128]; // 合规库组名称
  96109. char szSourceUID[64]; // 全景图唯一标识符,由平台生成
  96110. char szSourceFileName[64]; // 全景图图片名称
  96111. SCENE_IMAGE_INFO stuImageInfo; // 图片信息
  96112. char szFilePath[256]; // 文件路径, 支持HTTP URL表示; 支持FTP URL表示; 支持服务器本地路径,填写图片路径后无需填写图片信息中的offset与length字段
  96113. char szReserved[1792]; // 保留字节
  96114. } NET_WORKSUIT_SAMPLE_INFO;
  96115. ///@brief 工装合规导入标识信息
  96116. typedef struct tagNET_WORKSUIT_APPEND_IDENTI_INFO
  96117. {
  96118. UINT nToken; // 该次图片导入的token值
  96119. BOOL bAppendEnd; // 表示该次添加图片是否结束,TRUE表示结束,FALSE表示未结束
  96120. char szReserved[1024]; // 保留字节
  96121. } NET_WORKSUIT_APPEND_IDENTI_INFO;
  96122. ///@brief CLIENT_MultiAppendToWorkSuitCompareGroup 接口输入参数
  96123. typedef struct tagNET_IN_MULTI_APPEND_TO_WORKSUIT_GROUP
  96124. {
  96125. DWORD dwSize; // 结构体大小
  96126. UINT nWorkSuitSampleNum; // 工装合规样本个数, 由用户指定大小
  96127. NET_WORKSUIT_SAMPLE_INFO *pstWorkSuitSampleInfo; // 工装合规样本信息, 内存由用户申请, 申请大小为nWorkSuitSampleNum * sizeof(NET_WORKSUIT_SAMPLE_INFO)
  96128. NET_WORKSUIT_APPEND_IDENTI_INFO stuAppendIdentiInfo; // 工装合规导入标识信息
  96129. char *pszImageBuffer; // 工装合规导入图片缓冲区, 用于存放需要导入的图片数据, 内存由用户申请
  96130. UINT nImageBufLen; // 图片缓冲区大小
  96131. char szReserved[4]; // 字节对齐
  96132. } NET_IN_MULTI_APPEND_TO_WORKSUIT_GROUP;
  96133. ///@brief 工装合规导入返回的错误码信息
  96134. typedef enum tagEM_WORKSUIT_APPEND_ERRCODE
  96135. {
  96136. EM_WORKSUIT_APPEND_ERRCODE_UNKNOWN = -1, // 未知
  96137. EM_WORKSUIT_APPEND_ERRCODE_SUCCESS, // 成功
  96138. EM_WORKSUIT_APPEND_ERRCODE_INVALID_ID, // 组ID不存在或为空
  96139. EM_WORKSUIT_APPEND_ERRCODE_DB_ERROR, // 数据库操作失败
  96140. EM_WORKSUIT_APPEND_ERRCODE_IMAGE_SIZE, // 图片大小不对
  96141. EM_WORKSUIT_APPEND_ERRCODE_IMAGE_RESO, // 图片分辨率不对
  96142. EM_WORKSUIT_APPEND_ERRCODE_IMAGE_WRITE, // 图片文件写入失败
  96143. } EM_WORKSUIT_APPEND_ERRCODE;
  96144. ///@brief CLIENT_MultiAppendToWorkSuitCompareGroup 接口输出参数
  96145. typedef struct NET_OUT_MULTI_APPEND_TO_WORKSUIT_GROUP
  96146. {
  96147. DWORD dwSize; // 结构体大小
  96148. UINT nErrCodeNum; // 工装合规导入返回的错误码个数
  96149. EM_WORKSUIT_APPEND_ERRCODE emErrCode[1000]; // 工装合规导入返回的错误码信息
  96150. } NET_OUT_MULTI_APPEND_TO_WORKSUIT_GROUP;
  96151. ///@brief CLIENT_DeleteWorkSuitBySourceUID 接口输入参数
  96152. typedef struct tagNET_IN_DELETE_WORKSUIT_BY_SOURCEUID
  96153. {
  96154. DWORD dwSize; // 结构体大小
  96155. UINT nSourceUIDNum; // 全景图唯一标识符个数
  96156. char szSourceUID[64][64]; // 全景图唯一标识符,由平台生成
  96157. char szGroupID[64]; // 工装合规组ID
  96158. } NET_IN_DELETE_WORKSUIT_BY_SOURCEUID;
  96159. ///@brief 通过全景图唯一标识符删除工装合规样本错误码信息
  96160. typedef enum tagEM_DELETE_BY_SOURCEUID_ERRCODE
  96161. {
  96162. EM_DELETE_BY_SOURCEUID_ERRCODE_UNKNWON = -1, // 未知
  96163. EM_DELETE_BY_SOURCEUID_ERRCODE_SUCCESS, // 成功
  96164. EM_DELETE_BY_SOURCEUID_ERRCODE_NOT_EXIST, // 工装不存在
  96165. EM_DELETE_BY_SOURCEUID_ERRCODE_DB_ERROR, // 数据库操作失败
  96166. } EM_DELETE_BY_SOURCEUID_ERRCODE;
  96167. ///@brief CLIENT_DeleteWorkSuitBySourceUID 接口输出参数
  96168. typedef struct tagNET_OUT_DELETE_WORKSUIT_BY_SOURCEUID
  96169. {
  96170. DWORD dwSize; // 结构体大小
  96171. UINT nErrCodeNum; // 错误码个数
  96172. EM_DELETE_BY_SOURCEUID_ERRCODE emErrCode[64]; // 错误码信息
  96173. } NET_OUT_DELETE_WORKSUIT_BY_SOURCEUID;
  96174. ///@brief 创建工装合规组
  96175. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CreateWorkSuitCompareGroup(LLONG lLoginID, const NET_IN_CREATE_WORKSUIT_COMPARE_GROUP *pInParam, NET_OUT_CREATE_WORKSUIT_COMPARE_GROUP *pOutParam, int nWaitTime);
  96176. ///@brief 删除工装合规组
  96177. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteWorkSuitCompareGroup(LLONG lLoginID, const NET_IN_DELETE_WORKSUIT_COMPARE_GROUP *pInParam, NET_OUT_DELETE_WORKSUIT_COMPARE_GROUP *pOutParam, int nWaitTime);
  96178. ///@brief 查找工装合规组信息
  96179. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindWorkSuitCompareGroup(LLONG lLoginID, const NET_IN_FIND_WORKSUIT_COMPARE_GROUP *pInParam, NET_OUT_FIND_WORKSUIT_COMPARE_GROUP *pOutParam, int nWaitTime);
  96180. ///@brief 修改工装合规组信息
  96181. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyWorkSuitCompareGroup(LLONG lLoginID, const NET_IN_MODIFY_WORKSUIT_COMPARE_GROUP *pInParam, NET_OUT_MODIFY_WORKSUIT_COMPARE_GROUP *pOutParam, int nWaitTime);
  96182. ///@brief 在视频通道上布控工装合规库
  96183. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetWorkSuitCompareGroupToChannel(LLONG lLoginID, const NET_IN_SET_WORKSUIT_COMPARE_GROUP *pInParam, NET_OUT_SET_WORKSUIT_COMPARE_GROUP *pOutParam, int nWaitTime);
  96184. ///@brief 获取工装合规库导入令牌
  96185. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetWorkSuitCompareGroupAppendToken(LLONG lLoginID, const NET_IN_GET_WORKSUIT_GROUP_APPEND_TOKEN *pInParam, NET_OUT_GET_WORKSUIT_GROUP_APPEND_TOKEN *pOutParam, int nWaitTime);
  96186. ///@brief 批量添加工装合规样本
  96187. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MultiAppendToWorkSuitCompareGroup(LLONG lLoginID, const NET_IN_MULTI_APPEND_TO_WORKSUIT_GROUP *pInParam, NET_OUT_MULTI_APPEND_TO_WORKSUIT_GROUP *pOutParam, int nWaitTime);
  96188. ///@brief 通过全景图唯一标识符删除工装合规样本
  96189. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteWorkSuitBySourceUID(LLONG lLoginID, const NET_IN_DELETE_WORKSUIT_BY_SOURCEUID *pInParam, NET_OUT_DELETE_WORKSUIT_BY_SOURCEUID *pOutParam, int nWaitTime);
  96190. /***************************工装合规接口End***************************************************/
  96191. /***************************安检门接口Start***************************************************/
  96192. ///@brief CLIENT_GetPopulationStatistics 接口输入参数
  96193. typedef struct tagNET_IN_GET_POPULATION_STATISTICS
  96194. {
  96195. DWORD dwSize; // 结构体大小
  96196. } NET_IN_GET_POPULATION_STATISTICS;
  96197. ///@brief CLIENT_GetPopulationStatistics 接口输出参数
  96198. typedef struct tagNET_OUT_GET_POPULATION_STATISTICS
  96199. {
  96200. DWORD dwSize; // 结构体大小
  96201. UINT nPassPopulation; // 正向通过人数
  96202. UINT nMetalAlarmPopulation; // 正向触发金属报警人数
  96203. UINT nReversePassPopulation; // 反向通过人数
  96204. UINT nReverseMetalAlarmPopulation; // 反向触发金属报警人数
  96205. TP_U64 nTempNormalPopulation; // 体温正常人数
  96206. TP_U64 nTempAlarmPopulation; // 体温异常人数
  96207. } NET_OUT_GET_POPULATION_STATISTICS;
  96208. ///@brief 获取安检门人数统计信息
  96209. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPopulationStatistics(LLONG lLoginID, const NET_IN_GET_POPULATION_STATISTICS *pInParam, NET_OUT_GET_POPULATION_STATISTICS *pOutParam, int nWaitTime);
  96210. ///@brief 人数变化信息
  96211. typedef struct tagNET_POPULATION_STATISTICS_INFO
  96212. {
  96213. DWORD dwSize; // 结构体大小
  96214. UINT nPassPopulation; // 正向通过人数
  96215. UINT nMetalAlarmPopulation; // 正向触发金属报警人数
  96216. UINT nReversePassPopulation; // 反向通过人数
  96217. UINT nReverseMetalAlarmPopulation; // 反向触发金属报警人数
  96218. TP_U64 nTempNormalPopulation; // 体温正常人数
  96219. TP_U64 nTempAlarmPopulation; // 体温异常人数
  96220. } NET_POPULATION_STATISTICS_INFO;
  96221. ///@brief 接口 CLIENT_AttachPopulationStatistics 回调函数
  96222. // pstuPopulationStatisticsInfos 人数变化信息
  96223. typedef int (CALLBACK *fNotifyPopulationStatisticsInfo)(LLONG lPopulationStatisticsHandle, NET_POPULATION_STATISTICS_INFO* pstuPopulationStatisticsInfos, LDWORD dwUser);
  96224. ///@brief 接口 CLIENT_AttachPopulationStatistics 的输入参数
  96225. typedef struct tagNET_IN_ATTACH_GATE_POPULATION_STATISTICS_INFO
  96226. {
  96227. DWORD dwSize; // 此结构体大小,必须赋值
  96228. fNotifyPopulationStatisticsInfo cbNotifyPopulationStatisticsInfo; // 回调函数,有人数变化信息时,回调给上层
  96229. LDWORD dwUser; // 用户自定义参数
  96230. }NET_IN_ATTACH_GATE_POPULATION_STATISTICS_INFO;
  96231. ///@brief 接口 CLIENT_AttachPopulationStatistics 的输出参数
  96232. typedef struct tagNET_OUT_ATTACH_GATE_POPULATION_STATISTICS_INFO
  96233. {
  96234. DWORD dwSize; //此结构体大小,必须赋值
  96235. }NET_OUT_ATTACH_GATE_POPULATION_STATISTICS_INFO;
  96236. ///@brief 订阅安检门人数变化信息,pstInParam与pstOutParam内存由用户申请释放
  96237. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachPopulationStatistics(LLONG lLoginID, NET_IN_ATTACH_GATE_POPULATION_STATISTICS_INFO* pstInParam, NET_OUT_ATTACH_GATE_POPULATION_STATISTICS_INFO* pstOutParam , int nWaitTime);
  96238. ///@brief 取消订阅安检门人数变化信息 lPopulationStatisticsHandle 为 CLIENT_AttachPopulationStatistics 返回的句柄
  96239. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachPopulationStatistics(LLONG lPopulationStatisticsHandle);
  96240. ///@brief 接口 CLIENT_StartPopulationOverrunAlarm 的输入参数
  96241. typedef struct tagNET_IN_START_POPULATION_OVERRUN_ALARM
  96242. {
  96243. DWORD dwSize; // 此结构体大小,必须赋值
  96244. UINT nMaxPopulation; // 人数上限值
  96245. } NET_IN_START_POPULATION_OVERRUN_ALARM;
  96246. ///@brief 接口 CLIENT_StartPopulationOverrunAlarm 的输出参数
  96247. typedef struct tagNET_OUT_START_POPULATION_OVERRUN_ALARM
  96248. {
  96249. DWORD dwSize; //此结构体大小,必须赋值
  96250. }NET_OUT_START_POPULATION_OVERRUN_ALARM;
  96251. ///@brief 安检门超过人数上限报警
  96252. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartPopulationOverrunAlarm(LLONG lLoginID, NET_IN_START_POPULATION_OVERRUN_ALARM* pstInParam, NET_OUT_START_POPULATION_OVERRUN_ALARM* pstOutParam , int nWaitTime);
  96253. ///@brief 接口 CLIENT_GetXRayMultiLevelDetectCFG 的输入参数
  96254. typedef struct tagNET_IN_GET_XRAY_MULTILEVEL_DETECT_INFO
  96255. {
  96256. DWORD dwSize; // 此结构体大小,必须赋值
  96257. }NET_IN_GET_XRAY_MULTILEVEL_DETECT_INFO;
  96258. ///@brief X光机物品检测配置等级
  96259. typedef enum tagEM_XRAY_OBJECT_DETECT_CONFIG_LEVEL
  96260. {
  96261. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_UNKNWON = -1, // 未知
  96262. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_HIGH, // 高
  96263. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_MID, // 中
  96264. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_NORMAL, // 普通
  96265. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_CUSTOM1, // 自定义1
  96266. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_CUSTOM2, // 自定义2
  96267. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_CUSTOM3, // 自定义3
  96268. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_CUSTOM4, // 自定义4
  96269. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL_CUSTOM5, // 自定义5
  96270. } EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL;
  96271. ///@brief 分组物品颜色
  96272. typedef enum tagEM_GROUP_COLOR_TYPE
  96273. {
  96274. EM_GROUP_COLOR_TYPE_UNKNOWN = -1, // 未知
  96275. EM_GROUP_COLOR_TYPE_JUJUBE_RED, // 枣红色,rgb(195,33,54)
  96276. EM_GROUP_COLOR_TYPE_PURPLE, // 紫色,rgb(255,0,255)
  96277. EM_GROUP_COLOR_TYPE_GRAY, // 灰色,rgb(192,192,192)
  96278. EM_GROUP_COLOR_TYPE_HIGHLIGHT_YELLOW, // 高亮黄色,rgb(255,255, 0)
  96279. EM_GROUP_COLOR_TYPE_CYAN, // 青色
  96280. EM_GROUP_COLOR_TYPE_PINK, // 粉色
  96281. EM_GROUP_COLOR_TYPE_BLACK, // 黑色
  96282. EM_GROUP_COLOR_TYPE_BROWN, // 棕色
  96283. } EM_GROUP_COLOR_TYPE;
  96284. ///@brief 联动语音配置
  96285. typedef struct tagNET_EVENT_HANDLER_VOICE
  96286. {
  96287. char szAudioFileName[256]; // 联动语音文件绝对路径,为空播放系统默认报警联动音
  96288. char szReserved[256]; // 预留
  96289. }NET_EVENT_HANDLER_VOICE;
  96290. ///@brief 分组事件联动
  96291. typedef struct tagNET_XRAY_OBJECT_GROUP_EVENT_HANDLER
  96292. {
  96293. int nAlarmOutChannels[64]; // 报警输出通道号列表 一维数组,每个成员表示对应的通道需要执行报警输出,通道号从0开始。
  96294. int nAlarmOutChannelsNum; // 报警输出通道号个数
  96295. BOOL bAlarmOutEnable; // 报警输出使能
  96296. int nAlarmOutLatch; // 报警输入停止后,输出延时时间(秒) 范围[1,300]
  96297. BOOL bMessageEnable; // 是否上传到报警中心服务器 报警中心不需要登陆设备,由设备直接推送给报警中心的业务
  96298. BOOL bVoiceEnable; // 语音提示
  96299. NET_EVENT_HANDLER_VOICE stuVoice; // 语音提示联动
  96300. BOOL bMoveStop; // 传送带是否停止(X光机需求)
  96301. BOOL bBeepEnable; // 蜂鸣
  96302. char szReserved[256]; // 预留
  96303. }NET_XRAY_OBJECT_GROUP_EVENT_HANDLER;
  96304. ///@brief X光机物品分组
  96305. typedef struct tagNET_XRAY_OBJECT_GROUP
  96306. {
  96307. EM_INSIDE_OBJECT_TYPE emGroupType; // 分组类型
  96308. BOOL bGroupEnable; // 分组检测使能
  96309. EM_GROUP_GRADE_TYPE emGroupGrade; // 分组安全等级
  96310. EM_GROUP_COLOR_TYPE emGroupColor; // 分组物品颜色
  96311. NET_XRAY_OBJECT_GROUP_EVENT_HANDLER stuGroupEventHandler; // 分组事件联动
  96312. NET_XRAY_OBJECT_INFO stuObjects[64]; // 物体
  96313. int nObjectsNum; // 物体个数
  96314. char szGrouptype[32]; // 自定义分组类型
  96315. char szReserved[224]; // 预留
  96316. }NET_XRAY_OBJECT_GROUP;
  96317. ///@brief 等级配置
  96318. typedef struct tagNET_MULTI_LEVEL_INFO
  96319. {
  96320. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL emLevel; // 配置等级
  96321. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL emDefaultReferenceLevel; // 默认参考等级,该等级的默认配置与参考等级的默认配置一样
  96322. char szName[128]; // 等级名字
  96323. NET_XRAY_OBJECT_GROUP stuObjectGroups[64]; // 物品分组数组
  96324. int nObjectGroupsNum; // 物品分组数组个数
  96325. int nSlaveViewObjectGroupsNum; // 侧视角物品分组数组个数
  96326. NET_XRAY_OBJECT_GROUP stuSlaveViewObjectGroups[64]; // 侧视角物品分组数组
  96327. char szReserved[512]; // 预留
  96328. }NET_MULTI_LEVEL_INFO;
  96329. ///@brief 安全等级信息
  96330. typedef struct tagNET_XRAY_MULTILEVEL_DETECT_CFG_INFO
  96331. {
  96332. EM_XRAY_OBJECT_DETECT_CONFIG_LEVEL emCurrentLevel; // 当前配置等级
  96333. int nMultiLevelConfigMax; // 等级配置最大个数(用户配置)
  96334. int nMultiLevelConfigCnt; // 等级配置个数(实际返回)
  96335. NET_MULTI_LEVEL_INFO* pstuMultiLevelConfig; // 等级配置 此部分内存需要用户申请,申请大小为(nMultiLevelConfigMax*sizeof(NET_MULTI_LEVEL_INFO))。
  96336. char szReserved[1024]; // 预留
  96337. }NET_XRAY_MULTILEVEL_DETECT_CFG_INFO;
  96338. ///@brief 接口 CLIENT_GetXRayMultiLevelDetectCFG 的输出参数
  96339. typedef struct tagNET_OUT_GET_XRAY_MULTILEVEL_DETECT_INFO
  96340. {
  96341. DWORD dwSize; // 此结构体大小,必须赋值
  96342. NET_XRAY_MULTILEVEL_DETECT_CFG_INFO stuInfo; // 安全等级信息
  96343. }NET_OUT_GET_XRAY_MULTILEVEL_DETECT_INFO;
  96344. ///@brief 获取安检机安全等级信息,pstInParam与pstOutParam内存由用户申请释放
  96345. CLIENT_NET_API LLONG CALL_METHOD CLIENT_GetXRayMultiLevelDetectCFG(LLONG lLoginID, NET_IN_GET_XRAY_MULTILEVEL_DETECT_INFO* pInParam, NET_OUT_GET_XRAY_MULTILEVEL_DETECT_INFO* pOutParam , int nWaitTime);
  96346. ///@brief 接口 CLIENT_SetXRayMultiLevelDetectCFG 的输入参数
  96347. typedef struct tagNET_IN_SET_XRAY_MULTILEVEL_DETECT_INFO
  96348. {
  96349. DWORD dwSize; // 此结构体大小,必须赋值
  96350. NET_XRAY_MULTILEVEL_DETECT_CFG_INFO stuInfo; // 安全等级信息
  96351. }NET_IN_SET_XRAY_MULTILEVEL_DETECT_INFO;
  96352. ///@brief 接口 CLIENT_SetXRayMultiLevelDetectCFG 的输出参数
  96353. typedef struct tagNET_OUT_SET_XRAY_MULTILEVEL_DETECT_INFO
  96354. {
  96355. DWORD dwSize; // 此结构体大小,必须赋值
  96356. }NET_OUT_SET_XRAY_MULTILEVEL_DETECT_INFO;
  96357. ///@brief 设置安检机安全等级信息,pstInParam与pstOutParam内存由用户申请释放
  96358. CLIENT_NET_API LLONG CALL_METHOD CLIENT_SetXRayMultiLevelDetectCFG(LLONG lLoginID, NET_IN_SET_XRAY_MULTILEVEL_DETECT_INFO* pInParam, NET_OUT_SET_XRAY_MULTILEVEL_DETECT_INFO* pOutParam , int nWaitTime);
  96359. ///@brief 按键消息
  96360. typedef struct tagNET_KEY_MESSAGE_INFO
  96361. {
  96362. int nClientType; // 客户端类型 0: 专用键盘, 1: 主屏, 2: 辅屏1, 3:平台
  96363. int nKey; // 键值
  96364. int nAction; // 按键动作 0: 按键弹起, 1: 按键按下
  96365. char byReserved[4]; // 仅用于字节对齐, 无意义
  96366. char szReserved[1024]; // 预留字段
  96367. }NET_KEY_MESSAGE_INFO;
  96368. ///@brief CLIENT_SendXRayKeyManagerKey 的输入参数
  96369. typedef struct tagNET_IN_SEND_XRAY_KEY_MANAGER_KEY_INFO
  96370. {
  96371. DWORD dwSize; // 此结构体大小,必须赋值
  96372. NET_KEY_MESSAGE_INFO stuKeyMessage; // 按键消息
  96373. }NET_IN_SEND_XRAY_KEY_MANAGER_KEY_INFO;
  96374. ///@brief CLIENT_SendXRayKeyManagerKey 的输出参数
  96375. typedef struct tagNET_OUT_SEND_XRAY_KEY_MANAGER_KEY_INFO
  96376. {
  96377. DWORD dwSize; // 此结构体大小,必须赋值
  96378. }NET_OUT_SEND_XRAY_KEY_MANAGER_KEY_INFO;
  96379. ///@brief 发送按键消息
  96380. ///@param[in] lLoginID: 登录句柄
  96381. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  96382. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  96383. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  96384. ///@return TRUE表示成功FALSE表示失败
  96385. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SendXRayKeyManagerKey(LLONG lLoginID, const NET_IN_SEND_XRAY_KEY_MANAGER_KEY_INFO* pstuInParam, NET_OUT_SEND_XRAY_KEY_MANAGER_KEY_INFO* pstuOutParam, int nWaitTime);
  96386. ///@brief CLIENT_GetXRayKeyManagerAllKeyFuncState 的输入参数
  96387. typedef struct tagNET_IN_GET_XRAY_KEY_MANAGER_KEY_FUNC_STATE_INFO
  96388. {
  96389. DWORD dwSize; // 此结构体大小,必须赋值
  96390. int nScreenID; // 屏幕id 1: 主屏, 2: 辅屏1
  96391. }NET_IN_GET_XRAY_KEY_MANAGER_KEY_FUNC_STATE_INFO;
  96392. ///@brief 键值对应的功能的状态
  96393. typedef struct tagNET_KEY_FUNC_STATE_INFO
  96394. {
  96395. int nKey; // 键值
  96396. int nState; // 键值对应功能的状态
  96397. int nValue; // 键值对应功能的数值
  96398. char byReserved[4]; // 仅用于字节对齐, 无意义
  96399. char szReserved[256]; // 预留字段
  96400. }NET_KEY_FUNC_STATE_INFO;
  96401. ///@brief CLIENT_GetXRayKeyManagerAllKeyFuncState 的输出参数
  96402. typedef struct tagNET_OUT_GET_XRAY_KEY_MANAGER_KEY_FUNC_STATE_INFO
  96403. {
  96404. DWORD dwSize; // 此结构体大小,必须赋值
  96405. int nStatesNum; // 设备返回的键值对应的功能的状态的个数, 最大值为128
  96406. NET_KEY_FUNC_STATE_INFO stuStates[128]; // 键值对应的功能的状态, 数组最大长度为128
  96407. }NET_OUT_GET_XRAY_KEY_MANAGER_KEY_FUNC_STATE_INFO;
  96408. ///@brief 获取键值对应功能的状态
  96409. ///@param[in] lLoginID: 登录句柄
  96410. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  96411. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  96412. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  96413. ///@return TRUE表示成功FALSE表示失败
  96414. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetXRayKeyManagerAllKeyFuncState(LLONG lLoginID, const NET_IN_GET_XRAY_KEY_MANAGER_KEY_FUNC_STATE_INFO* pstuInParam, NET_OUT_GET_XRAY_KEY_MANAGER_KEY_FUNC_STATE_INFO* pstuOutParam, int nWaitTime);
  96415. ///@brief 回调的键值对应功能的状态信息
  96416. typedef struct tagNET_KEY_FUNC_STATE_NOTIFY_INFO
  96417. {
  96418. NET_KEY_FUNC_STATE_INFO stuStates[128]; // 键值对应的功能的状态, 数组最大长度为128
  96419. int nStatesNum; // 设备返回的键值对应的功能的状态的个数, 最大值为128
  96420. char byReserved[4]; // 仅用于字节对齐, 无意义
  96421. char szResvered[1024]; // 保留字节
  96422. }NET_KEY_FUNC_STATE_NOTIFY_INFO;
  96423. ///@brief 订阅键值对应功能的状态信息回调函数原型, lAttachHandle为CLIENT_AttachKeyFuncState接口的返回值
  96424. ///@param[out] lAttachHandle 订阅句柄
  96425. ///@param[out] pstuKeyFuncStateInfo 订阅键值对应功能的状态回调信息
  96426. ///@param[out] dwUser 用户信息
  96427. ///@return void
  96428. typedef void (CALLBACK *fNotifyKeyFuncState)(LLONG lAttachHandle, NET_KEY_FUNC_STATE_NOTIFY_INFO* pstuKeyFuncStateInfo, LDWORD dwUser);
  96429. ///@brief CLIENT_AttachKeyFuncState 的输入参数
  96430. typedef struct tagNET_IN_ATTACH_KEY_FUNC_STATE
  96431. {
  96432. DWORD dwSize; // 此结构体大小,必须赋值
  96433. int nScreenID; // 屏幕id 1: 主屏, 2: 辅屏1
  96434. fNotifyKeyFuncState cbNotify; // 回调函数,通知键值对应功能的状态
  96435. LDWORD dwUser; // 用户自定义参数
  96436. }NET_IN_ATTACH_KEY_FUNC_STATE;
  96437. ///@brief CLIENT_AttachKeyFuncState 的输出参数
  96438. typedef struct tagNET_OUT_ATTACH_KEY_FUNC_STATE
  96439. {
  96440. DWORD dwSize; // 此结构体大小,必须赋值
  96441. }NET_OUT_ATTACH_KEY_FUNC_STATE;
  96442. ///@brief 订阅键值对应功能的状态
  96443. ///@param[in] lLoginID 登录句柄
  96444. ///@param[in] pstInParam 接口输入参数
  96445. ///@param[out] pstOutParam 接口输出参数
  96446. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  96447. ///@return 返回订阅句柄
  96448. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachKeyFuncState(LLONG lLoginID, NET_IN_ATTACH_KEY_FUNC_STATE* pstuInParam, NET_OUT_ATTACH_KEY_FUNC_STATE* pstuOutParam , int nWaitTime);
  96449. ///@brief 取消订阅键值对应功能的状态
  96450. ///@param[in] lAttachHandle 订阅句柄
  96451. ///@return TRUE表示成功 FALSE表示失败
  96452. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachKeyFuncState(LLONG lAttachHandle);
  96453. ///@brief 尾箱存取结果
  96454. typedef struct tagNET_TRUNK_ACCESS_INFO
  96455. {
  96456. int nType; // 操作类型, 0-存箱, 1-取箱
  96457. int nCabinIndex; // 舱位号
  96458. char szAccessorID[64]; // 存取人ID
  96459. char szAccessorName[64]; // 存取人名称
  96460. char szReviewerID[64]; // 复核人ID
  96461. char szReviewerName[64]; // 复核人名称
  96462. char szApproverID[64]; // 远程审批人ID
  96463. char szApproverName[64]; // 远程审批人名称
  96464. int nResult; // 存取结果, 0-存取过程已完成, 1-存取过程未完成确认, 2-审批超时, 3-审批拒绝
  96465. char byResvered[4]; // 仅用于字节, 无意义
  96466. char szTime[32]; // 记录时间, 格式为:"YYYY-MM-DD hh:mm:ss"
  96467. char szAccessorSnap[128]; // 存取人认证通过抓图存储路径,可用于图片下载
  96468. char szReviewerSnap[128]; // 复核人认证通过抓图存储路径,可用于图片下载
  96469. char szConfirmSnap[128]; // 存取后信息确认时抓图存储路径,可用于图片下载
  96470. char szRFIDNo[128]; // 存取的尾箱RFID编号
  96471. char szResvered[1024]; // 保留字节
  96472. }NET_TRUNK_ACCESS_INFO;
  96473. ///@brief 回调的尾箱存取结果
  96474. typedef struct tagNET_TRUNK_ACCESS_MANAGER_NOTIFY_INFO
  96475. {
  96476. NET_TRUNK_ACCESS_INFO stuTrunkAccessInfo; // 尾箱存取结果
  96477. char szResvered[1024]; // 保留字节
  96478. }NET_TRUNK_ACCESS_MANAGER_NOTIFY_INFO;
  96479. ///@brief 订阅尾箱存取结果信息回调函数原型, lAttachHandle为CLIENT_AttachTrunkAccessManager接口的返回值
  96480. ///@param[out] lAttachHandle 订阅句柄
  96481. ///@param[out] pstuTrunkAccessManagerInfo 订阅尾箱存取结果的回调信息
  96482. ///@param[out] dwUser 用户信息
  96483. ///@return void
  96484. typedef void (CALLBACK *fNotifyTrunkAccessManager)(LLONG lAttachHandle, NET_TRUNK_ACCESS_MANAGER_NOTIFY_INFO* pstuTrunkAccessManagerInfo, LDWORD dwUser);
  96485. ///@brief CLIENT_AttachTrunkAccessManager 的输入参数
  96486. typedef struct tagNET_IN_ATTACH_TRUNK_ACCESS_MANAGER
  96487. {
  96488. DWORD dwSize; // 此结构体大小,必须赋值
  96489. fNotifyTrunkAccessManager cbNotify; // 回调函数,通知尾箱存取结果信息
  96490. LDWORD dwUser; // 用户自定义参数
  96491. }NET_IN_ATTACH_TRUNK_ACCESS_MANAGER;
  96492. ///@brief CLIENT_AttachTrunkAccessManager 的输出参数
  96493. typedef struct tagNET_OUT_ATTACH_TRUNK_ACCESS_MANAGER
  96494. {
  96495. DWORD dwSize; // 此结构体大小,必须赋值
  96496. }NET_OUT_ATTACH_TRUNK_ACCESS_MANAGER;
  96497. ///@brief 订阅尾箱存取结果
  96498. ///@param[in] lLoginID 登录句柄
  96499. ///@param[in] pstuInParam 接口输入参数
  96500. ///@param[out] pstuOutParam 接口输出参数
  96501. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  96502. ///@return 返回订阅句柄
  96503. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachTrunkAccessManager(LLONG lLoginID, NET_IN_ATTACH_TRUNK_ACCESS_MANAGER* pstuInParam, NET_OUT_ATTACH_TRUNK_ACCESS_MANAGER* pstuOutParam , int nWaitTime);
  96504. ///@brief 撤销尾箱存取记录结果订阅
  96505. ///@param[in] lAttachHandle 订阅句柄
  96506. ///@return TRUE表示成功 FALSE表示失败
  96507. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachTrunkAccessManager(LLONG lAttachHandle);
  96508. ///@brief CLIENT_ReplyRemoteApproval 的输入参数
  96509. typedef struct tagNET_IN_REPLY_REMOTE_APPROVAL_INFO
  96510. {
  96511. DWORD dwSize; // 此结构体大小,必须赋值
  96512. int nApprovalNo; // 审批单号
  96513. BOOL bApprovalResult; // 审批结果, TRUE-审批通过, FALSE-审批不通过
  96514. char szApproverID[64]; // 审批者ID
  96515. char szApproverName[64]; // 审批者名称
  96516. }NET_IN_REPLY_REMOTE_APPROVAL_INFO;
  96517. ///@brief CLIENT_ReplyRemoteApproval 的输出参数
  96518. typedef struct tagNET_OUT_REPLY_REMOTE_APPROVAL_INFO
  96519. {
  96520. DWORD dwSize; // 此结构体大小,必须赋值
  96521. }NET_OUT_REPLY_REMOTE_APPROVAL_INFO;
  96522. ///@brief 回复远程审批结果
  96523. ///@param[in] lLoginID: 登录句柄
  96524. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  96525. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  96526. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  96527. ///@return TRUE表示成功FALSE表示失败
  96528. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ReplyRemoteApproval(LLONG lLoginID, const NET_IN_REPLY_REMOTE_APPROVAL_INFO* pstuInParam, NET_OUT_REPLY_REMOTE_APPROVAL_INFO* pstuOutParam, int nWaitTime);
  96529. ///@brief 锁状态
  96530. typedef enum tagEM_VAULT_LOCKSTATE
  96531. {
  96532. EM_VAULT_LOCKSTATE_UNKNOWN, // 未知
  96533. EM_VAULT_LOCKSTATE_ISCLOSED, // 关锁
  96534. EM_VAULT_LOCKSTATE_ISOPENED, // 开锁
  96535. }EM_VAULT_LOCKSTATE;
  96536. ///@brief 门状态
  96537. typedef enum tagEM_VAULT_DOORSTATE
  96538. {
  96539. EM_VAULT_DOORSTATE_UNKNOWN, // 未知
  96540. EM_VAULT_DOORSTATE_ISCLOSED, // 关门
  96541. EM_VAULT_DOORSTATE_ISOPENED, // 开门
  96542. }EM_VAULT_DOORSTATE;
  96543. ///@brief CLIENT_GetVaultDoorState 的输入参数
  96544. typedef struct tagNET_IN_GET_VAULTDOOR_STATE_INFO
  96545. {
  96546. DWORD dwSize; // 结构体大小
  96547. }NET_IN_GET_VAULTDOOR_STATE_INFO;
  96548. ///@brief CLIENT_GetVaultDoorState 的输出参数
  96549. typedef struct tagNET_OUT_GET_VAULTDOOR_STATE_INFO
  96550. {
  96551. DWORD dwSize; // 结构体大小
  96552. EM_VAULT_LOCKSTATE emLockState; // 锁状态
  96553. EM_VAULT_DOORSTATE emDoorState; // 门状态
  96554. }NET_OUT_GET_VAULTDOOR_STATE_INFO;
  96555. ///@brief 获取金库门状态
  96556. ///@param[in] lLoginID: 登录句柄
  96557. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  96558. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  96559. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  96560. ///@return TRUE表示成功FALSE表示失败
  96561. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVaultDoorState(LLONG lLoginID, const NET_IN_GET_VAULTDOOR_STATE_INFO* pstuInParam, NET_OUT_GET_VAULTDOOR_STATE_INFO* pstuOutParam, int nWaitTime);
  96562. ///@brief CLIENT_GetFinancialCabinetState 的输入参数
  96563. typedef struct tagNET_IN_GET_CABINET_STATE_INFO
  96564. {
  96565. DWORD dwSize; // 结构体大小
  96566. }NET_IN_GET_CABINET_STATE_INFO;
  96567. ///@brief CLIENT_GetFinancialCabinetState 的输出参数
  96568. typedef struct tagNET_OUT_GET_CABINET_STATE_INFO
  96569. {
  96570. DWORD dwSize; // 结构体大小
  96571. float fTemperature; // 柜体温度,单位摄氏度
  96572. float fHumidity; // 柜体湿度,单位百分比
  96573. }NET_OUT_GET_CABINET_STATE_INFO;
  96574. ///@brief 获取金融柜体设备状态
  96575. ///@param[in] lLoginID: 登录句柄
  96576. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  96577. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  96578. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  96579. ///@return TRUE表示成功FALSE表示失败
  96580. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFinancialCabinetState(LLONG lLoginID, const NET_IN_GET_CABINET_STATE_INFO* pstuInParam, NET_OUT_GET_CABINET_STATE_INFO* pstuOutParam, int nWaitTime);
  96581. ///@brief 在岗状态
  96582. typedef enum tagEM_SECURITY_INSPECTOR_STATE
  96583. {
  96584. EM_SECURITY_INSPECTOR_STATE_UNKNWON = -1, // 未知
  96585. EM_SECURITY_INSPECTOR_STATE_LEAVE_JOB, // 离岗
  96586. EM_SECURITY_INSPECTOR_STATE_ON_JOB, // 在岗
  96587. EM_SECURITY_INSPECTOR_STATE_PASS_WITHOUT_PACKAGE, // 无包裹通过
  96588. } EM_SECURITY_INSPECTOR_STATE;
  96589. ///@brief 检查结果
  96590. typedef struct tagNET_SECURITY_INSPECTOR_CHECK_RESULT
  96591. {
  96592. DWORD dwSize; // 结构体大小
  96593. char szUser[128]; // 用户名
  96594. EM_SECURITY_INSPECTOR_STATE emState; // 在岗状态
  96595. UINT nUTC; // 对应的UTC
  96596. UINT nCheckID; // 在岗检查ID
  96597. } NET_SECURITY_INSPECTOR_CHECK_RESULT;
  96598. ///@brief 接口 CLIENT_AttachSecurityInspectorCheckResult 回调函数
  96599. typedef int (CALLBACK *fNotifySecurityInspectorCheckResult)(LLONG lCheckResultHandle, NET_SECURITY_INSPECTOR_CHECK_RESULT* pstuSecurityInspectorCheckResult, LDWORD dwUser);
  96600. ///@brief 接口 CLIENT_AttachSecurityInspectorCheckResult 的输入参数
  96601. typedef struct tagNET_IN_ATTACH_SECURITY_INSPECTOR_CHECK_RESULT
  96602. {
  96603. DWORD dwSize; // 此结构体大小,必须赋值
  96604. fNotifySecurityInspectorCheckResult cbNotifySecurityInspectorCheckResult; // 回调函数,通知安检员在岗检查结果
  96605. LDWORD dwUser; // 用户自定义参数
  96606. }NET_IN_ATTACH_SECURITY_INSPECTOR_CHECK_RESULT;
  96607. ///@brief 接口 CLIENT_AttachSecurityInspectorCheckResult 的输出参数
  96608. typedef struct tagNET_OUT_ATTACH_SECURITY_INSPECTOR_CHECK_RESULT
  96609. {
  96610. DWORD dwSize; //此结构体大小,必须赋值
  96611. }NET_OUT_ATTACH_SECURITY_INSPECTOR_CHECK_RESULT;
  96612. ///@brief 订阅安检员在岗检查结果,pstInParam与pstOutParam内存由用户申请释放
  96613. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSecurityInspectorCheckResult(LLONG lLoginID, NET_IN_ATTACH_SECURITY_INSPECTOR_CHECK_RESULT* pstInParam, NET_OUT_ATTACH_SECURITY_INSPECTOR_CHECK_RESULT* pstOutParam , int nWaitTime);
  96614. ///@brief 取消订阅安检员在岗检查结果 lCheckResultHandle 为 CLIENT_AttachSecurityInspectorCheckResult 返回的句柄
  96615. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSecurityInspectorCheckResult(LLONG lCheckResultHandle);
  96616. ///@brief 接口 CLIENT_ResetPopulationStatistics 的输入参数
  96617. typedef struct tagNET_IN_RESET_POPULATION_STATISTICS
  96618. {
  96619. DWORD dwSize; // 此结构体大小,必须赋值
  96620. }NET_IN_RESET_POPULATION_STATISTICS;
  96621. ///@brief 接口 CLIENT_ResetPopulationStatistics 的输出参数
  96622. typedef struct tagNET_OUT_RESET_POPULATION_STATISTICS
  96623. {
  96624. DWORD dwSize; //此结构体大小,必须赋值
  96625. }NET_OUT_RESET_POPULATION_STATISTICS;
  96626. ///@brief 重置安检门人数统计信息
  96627. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ResetPopulationStatistics(LLONG lLoginID, const NET_IN_RESET_POPULATION_STATISTICS *pInParam, NET_OUT_RESET_POPULATION_STATISTICS *pOutParam, int nWaitTime);
  96628. /************************************************** 安检门声光报警配置 Start******************************************************/
  96629. ///@brief 门体分区
  96630. typedef enum tagEM_DOOR_REGION
  96631. {
  96632. EM_DOOR_REGION_UNKNOWN = -1, // 未知
  96633. EM_DOOR_REGION_SIX, // 6分区
  96634. EM_DOOR_REGION_TWELVE, // 12分区
  96635. EM_DOOR_REGION_EIGHTEEN, // 18分区
  96636. EM_DOOR_REGION_TEN, // 10分区
  96637. EM_DOOR_REGION_THIRTYTHREE, // 33分区
  96638. EM_DOOR_REGION_ONE, // 1分区
  96639. EM_DOOR_REGION_TWO, // 2分区
  96640. EM_DOOR_REGION_THREE, // 3分区
  96641. EM_DOOR_REGION_FOUR, // 4分区
  96642. EM_DOOR_REGION_EIGHT, // 8分区
  96643. EM_DOOR_REGION_NINE, // 9分区
  96644. EM_DOOR_REGION_SIXTEEN, // 16分区
  96645. EM_DOOR_REGION_TWENTY, // 20分区
  96646. EM_DOOR_REGION_TWENTYFOUR, // 24分区
  96647. EM_DOOR_REGION_THIRTYSIX, // 36分区
  96648. EM_DOOR_REGION_FORTY, // 40分区
  96649. EM_DOOR_REGION_FORTYFIVE, // 45分区
  96650. EM_DOOR_REGION_FORTYEIGHT, // 48分区
  96651. EM_DOOR_REGION_SIXTY, // 60分区
  96652. }EM_DOOR_REGION;
  96653. ///@brief 铃声模式
  96654. typedef enum tagEM_SECURITY_GATE_BELL_MODE
  96655. {
  96656. EM_SECURITY_GATE_BELL_MODE_UNKNOWN = -1, // 未知
  96657. EM_SECURITY_GATE_BELL_MODE_BY_FREQUENCY, // 表示“按频率”,根据开机后系统自动设置的频率设置铃声
  96658. EM_SECURITY_GATE_BELL_MODE_BY_SAVEVAULE, // 表示“按保存值”,根据“报警设置”菜单里的“铃声选择”设置铃声,与频率无关
  96659. }EM_SECURITY_GATE_BELL_MODE;
  96660. ///@brief 铃声类型
  96661. typedef enum tagEM_SECURITY_GATE_BELL_TYPE
  96662. {
  96663. EM_SECURITY_GATE_BELL_TYPE_UNKNOWN, // 未知
  96664. EM_SECURITY_GATE_BELL_TYPE_RINGING1, // 铃声1
  96665. EM_SECURITY_GATE_BELL_TYPE_RINGING2, // 铃声2
  96666. EM_SECURITY_GATE_BELL_TYPE_RINGING3, // 铃声3
  96667. EM_SECURITY_GATE_BELL_TYPE_RINGING4, // 铃声4
  96668. EM_SECURITY_GATE_BELL_TYPE_RINGING5, // 铃声5
  96669. EM_SECURITY_GATE_BELL_TYPE_RINGING6, // 铃声6
  96670. EM_SECURITY_GATE_BELL_TYPE_RINGING7, // 铃声7
  96671. EM_SECURITY_GATE_BELL_TYPE_RINGING8, // 铃声8
  96672. EM_SECURITY_GATE_BELL_TYPE_RINGING9, // 铃声9
  96673. }EM_SECURITY_GATE_BELL_TYPE;
  96674. ///@brief 报警区位
  96675. typedef enum tagEM_SECURITY_GATE_ALARM_REGION
  96676. {
  96677. EM_SECURITY_GATE_ALARM_REGION_UNKNOWN = -1, // 未知
  96678. EM_SECURITY_GATE_ALARM_REGION_INTERVAL, // 间隔报警
  96679. EM_SECURITY_GATE_ALARM_REGION_CONTINUOUS, // 连续报警
  96680. EM_SECURITY_GATE_ALARM_REGION_SINGLE_ZONE, // 单区报警
  96681. }EM_SECURITY_GATE_ALARM_REGION;
  96682. ///@brief 安检门声光报警配置信息
  96683. typedef struct tagNET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM
  96684. {
  96685. DWORD dwSize; // 结构体大小
  96686. EM_DOOR_REGION emDoorRegion; // 门体分区
  96687. UINT nAlarmTime; // 报警时长
  96688. EM_SECURITY_GATE_BELL_MODE emBellMode; // 铃声模式
  96689. EM_SECURITY_GATE_BELL_TYPE emBellType; // 铃声类型
  96690. UINT nSetVolume; // 音量设置
  96691. EM_SECURITY_GATE_ALARM_REGION emAlarmRegion; // 报警区位
  96692. char byReserved[236]; // 预留字节
  96693. }NET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM;
  96694. ///@brief CLIENT_AttachSecurityGateAcoustoOpticAlarm回调
  96695. typedef void (CALLBACK *fNotifySecurityGateAcoustoOpticAlarm)(LLONG lSecurityGateAcoustoOpticAlarmHandle, NET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM* pstuSecurityGateAcoustoOpticAlarm, LDWORD dwUser);
  96696. ///@brief 接口 CLIENT_AttachSecurityGateAcoustoOpticAlarm 的输入参数
  96697. typedef struct tagNET_IN_ATTACH_SECURITY_GATE_ACOUSTO_OPTIC_ALARM
  96698. {
  96699. DWORD dwSize; // 此结构体大小,必须赋值
  96700. fNotifySecurityGateAcoustoOpticAlarm cbNotifySecurityGateAcoustoOpticAlarm; // 回调函数,通知安检门声光报警配置信息
  96701. LDWORD dwUser; // 用户自定义参数
  96702. }NET_IN_ATTACH_SECURITY_GATE_ACOUSTO_OPTIC_ALARM;
  96703. ///@brief 接口 CLIENT_AttachSecurityGateAcoustoOpticAlarm 的输出参数
  96704. typedef struct tagNET_OUT_ATTACH_SECURITY_GATE_ACOUSTO_OPTIC_ALARM
  96705. {
  96706. DWORD dwSize; //此结构体大小,必须赋值
  96707. }NET_OUT_ATTACH_SECURITY_GATE_ACOUSTO_OPTIC_ALARM;
  96708. ///@brief 订阅安检门声光报警配置信息,
  96709. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSecurityGateAcoustoOpticAlarm(LLONG lLoginID, NET_IN_ATTACH_SECURITY_GATE_ACOUSTO_OPTIC_ALARM* pstInParam, NET_OUT_ATTACH_SECURITY_GATE_ACOUSTO_OPTIC_ALARM* pstOutParam , int nWaitTime);
  96710. ///@brief 取消订阅安检门声光报警配置信息, lSecurityGateAcoustoOpticAlarmHandle为 CLIENT_AttachSecurityGateAcoustoOpticAlarm 返回的句柄
  96711. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSecurityGateAcoustoOpticAlarm(LLONG lSecurityGateAcoustoOpticAlarmHandle);
  96712. ///@brief 接口 CLIENT_GetSecurityGateAcoustoOpticAlarmConfig 的输入参数
  96713. typedef struct tagNET_IN_GET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO
  96714. {
  96715. DWORD dwSize; // 此结构体大小,必须赋值
  96716. UINT nTimeOut; // 超时时间,单位:毫秒
  96717. }NET_IN_GET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO;
  96718. ///@brief 接口 CLIENT_GetSecurityGateAcoustoOpticAlarmConfig 的输出参数
  96719. typedef struct tagNET_OUT_GET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO
  96720. {
  96721. DWORD dwSize; // 此结构体大小,必须赋值
  96722. EM_DOOR_REGION emDoorRegion; // 门体分区
  96723. UINT nAlarmTime; // 报警时长
  96724. EM_SECURITY_GATE_BELL_MODE emBellMode; // 铃声模式
  96725. EM_SECURITY_GATE_BELL_TYPE emBellType; // 铃声类型
  96726. UINT nSetVolume; // 音量设置
  96727. EM_SECURITY_GATE_ALARM_REGION emAlarmRegion; // 报警区位
  96728. }NET_OUT_GET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO;
  96729. ///@brief 接口 CLIENT_SetSecurityGateAcoustoOpticAlarmConfig 的输入参数
  96730. typedef struct tagNET_IN_SET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO
  96731. {
  96732. DWORD dwSize; // 结构体大小
  96733. EM_DOOR_REGION emDoorRegion; // 门体分区
  96734. UINT nAlarmTime; // 报警时长
  96735. EM_SECURITY_GATE_BELL_MODE emBellMode; // 铃声模式
  96736. EM_SECURITY_GATE_BELL_TYPE emBellType; // 铃声类型
  96737. UINT nSetVolume; // 音量设置
  96738. EM_SECURITY_GATE_ALARM_REGION emAlarmRegion; // 报警区位
  96739. }NET_IN_SET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO;
  96740. ///@brief 接口 CLIENT_SetSecurityGateAcoustoOpticAlarmConfig 的输出参数
  96741. typedef struct tagNET_OUT_SET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO
  96742. {
  96743. DWORD dwSize; // 结构体大小
  96744. }NET_OUT_SET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO;
  96745. ///@brief 接口 CLIENT_SecurityGateAcoustoOpticAlarmGetCaps 的输入参数
  96746. typedef struct tagNET_IN_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_GET_CAPS_INFO
  96747. {
  96748. DWORD dwSize; // 结构体大小
  96749. UINT nTimeOut; // 超时时间,单位:毫秒
  96750. }NET_IN_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_GET_CAPS_INFO;
  96751. ///@brief 接口 CLIENT_SecurityGateAcoustoOpticAlarmGetCaps 的输出参数
  96752. typedef struct tagNET_OUT_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_GET_CAPS_INFO
  96753. {
  96754. DWORD dwSize; // 结构体大小
  96755. UINT nVolumeMin; // 最小音量数值
  96756. UINT nVolumeMax; // 最大音量数值
  96757. UINT nAlarmTimeMax; // 最大持续报警时间,单位:毫秒
  96758. BOOL bSupportBellMode; // 是否支持铃声模式设置
  96759. BOOL bSupportAuditionBell; // 是否支持试听铃声
  96760. }NET_OUT_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_GET_CAPS_INFO;
  96761. ///@brief 接口 CLIENT_SecurityGateAcoustoOpticAlarmAuditionBell 的输入参数
  96762. typedef struct tagNET_IN_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_AUDITION_BELL_INFO
  96763. {
  96764. DWORD dwSize; // 结构体大小
  96765. EM_SECURITY_GATE_BELL_MODE emBellMode; // 铃声模式
  96766. EM_SECURITY_GATE_BELL_TYPE emBellType; // 铃声类型
  96767. UINT nVolume; // 音量大小
  96768. }NET_IN_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_AUDITION_BELL_INFO;
  96769. ///@brief 接口 CLIENT_SecurityGateAcoustoOpticAlarmAuditionBell 的输出参数
  96770. typedef struct tagNET_OUT_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_AUDITION_BELL_INFO
  96771. {
  96772. DWORD dwSize; // 结构体大小
  96773. }NET_OUT_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_AUDITION_BELL_INFO;
  96774. ///@brief 获取安检门声光报警配置信息
  96775. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSecurityGateAcoustoOpticAlarmConfig(LLONG lLoginID, NET_IN_GET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO* pstInParam, NET_OUT_GET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO* pstOutParam , int nWaitTime);
  96776. ///@brief 设置安检门声光报警配置信息
  96777. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetSecurityGateAcoustoOpticAlarmConfig(LLONG lLoginID, NET_IN_SET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO* pstInParam, NET_OUT_SET_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_INFO* pstOutParam , int nWaitTime);
  96778. ///@brief 获取声光报警能力集
  96779. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGateAcoustoOpticAlarmGetCaps(LLONG lLoginID, NET_IN_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_GET_CAPS_INFO* pstInParam, NET_OUT_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_GET_CAPS_INFO* pstOutParam, int nWaitTime);
  96780. ///@brief 试听铃声
  96781. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGateAcoustoOpticAlarmAuditionBell(LLONG lLoginID, NET_IN_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_AUDITION_BELL_INFO* pstInParam, NET_OUT_SECURITY_GATE_ACOUSTO_OPTIC_ALARM_AUDITION_BELL_INFO* pstOutParam, int nWaitTime);
  96782. /************************************************** 安检门声光报警配置 End******************************************************/
  96783. /************************************************** 安检门灵敏度配置 Start******************************************************/
  96784. ///@brief 倍率
  96785. typedef enum tagEM_RATE_TYPE
  96786. {
  96787. EM_RATE_TYPE_UNKNOWN = -1, // 未知
  96788. EM_RATE_TYPE_NOT_CHANGE, // 灵敏度保持不变
  96789. EM_RATE_TYPE_FIFTY_TIMES_LOWER, // 灵敏度降低50倍
  96790. }EM_RATE_TYPE;
  96791. ///@brief 排除小金属区位
  96792. typedef enum tagEM_EXCLUDE_SMALL_METAL
  96793. {
  96794. EM_EXCLUDE_SMALL_METAL_UNKNOWN = -1, // 未知
  96795. EM_EXCLUDE_SMALL_METAL_DISABLE, // 禁用排除小金属功能
  96796. EM_EXCLUDE_SMALL_METAL_SPECIFIC_LOCATION, // 特定区位
  96797. EM_EXCLUDE_SMALL_METAL_ALL_LOCATION, // 全部区位
  96798. }EM_EXCLUDE_SMALL_METAL;
  96799. ///@brief 应用场景类型
  96800. typedef enum tagEM_SCENCE_TYPE
  96801. {
  96802. EM_SCENCE_TYPE_UNKNOWN = -1, // 未知
  96803. EM_SCENCE_TYPE_CUSTOM, // 0:自定义
  96804. EM_SCENCE_TYPE_ELECTRONICS_FACTORY, // 1:电子厂
  96805. EM_SCENCE_TYPE_HARDWARE_FACTORY, // 2:五金厂
  96806. EM_SCENCE_TYPE_COURT_SYSTEM, // 3:法院系统
  96807. EM_SCENCE_TYPE_AIRPORT_SECURITY_CHECK, // 4:机场安检
  96808. EM_SCENCE_TYPE_STADIUM, // 5:体育场所
  96809. EM_SCENCE_TYPE_ENTERTAINMENT_VENUES, // 6:娱乐场所
  96810. EM_SCENCE_TYPE_PS_SYSTEM,
  96811. EM_SCENCE_TYPE_STATION_SECURITY_CHECK, // 8:车站安检
  96812. EM_SCENCE_TYPE_EXHIBITION_SECURITY_CHECK, // 9:展馆安检
  96813. EM_SCENCE_TYPE_SCHOOL_SYSTEM, // 10:学校系统
  96814. EM_SCENCE_TYPE_GOVERNMENT_SYSTEM, // 11:政府系统
  96815. EM_SCENCE_TYPE_BUILDINGS, // 12:建筑物
  96816. EM_SCENCE_TYPE_HIGH, // 13:高
  96817. EM_SCENCE_TYPE_MEDIUM, // 14:中
  96818. EM_SCENCE_TYPE_LOW, // 15:低
  96819. EM_SCENCE_TYPE_SPECIAL_EVENT, // 16:特殊事件
  96820. EM_SCENCE_TYPE_ARENA, // 17:竞技场
  96821. EM_SCENCE_TYPE_PS_MODE, // 18:犯人模式
  96822. EM_SCENCE_TYPE_INSPECTOR_MODE, // 19:探监者模式
  96823. EM_SCENCE_TYPE_VISITOR_MODE, // 20:来访者模式
  96824. EM_SCENCE_TYPE_LARGE_FLOW, // 21:大流量
  96825. EM_SCENCE_TYPE_ANTI_INTERFERENCE, // 22:抗干扰
  96826. EM_SCENCE_TYPE_NILECJ_L1, // 23:NILECJ L1
  96827. EM_SCENCE_TYPE_NILECJ_L1A, // 24:NILECJ L1A
  96828. EM_SCENCE_TYPE_NILECJ_L2, // 25:NILECJ L2
  96829. EM_SCENCE_TYPE_NILECJ_L2A, // 26:NILECJ L2A
  96830. EM_SCENCE_TYPE_NILECJ_L3, // 27:NILECJ L3
  96831. EM_SCENCE_TYPE_NILECJ_L3A, // 28:NILECJ L3A
  96832. EM_SCENCE_TYPE_NILECJ_L4, // 29:NILECJ L4
  96833. EM_SCENCE_TYPE_NILECJ_L5, // 30:NILECJ L5
  96834. EM_SCENCE_TYPE_NIJ_LO, // 31:NIJ LO
  96835. EM_SCENCE_TYPE_NIJ_MO, // 32:NIJ MO
  96836. EM_SCENCE_TYPE_GB_L3, // 33:GB L3
  96837. EM_SCENCE_TYPE_GB_L2, // 34:GB L2
  96838. EM_SCENCE_TYPE_GB_L1, // 35:GB L1
  96839. EM_SCENCE_TYPE_ALL_METAL, // 36:全金属
  96840. EM_SCENCE_TYPE_ALL_METAL_HIGH, // 37:全金属高灵敏
  96841. EM_SCENCE_TYPE_ALL_METAL_LOW, // 38:全金属低灵敏
  96842. EM_SCENCE_TYPE_MAGNETIC_METAL, // 39:磁性金属
  96843. EM_SCENCE_TYPE_MAGNETIC_METAL_HIGH, // 40:磁性高灵敏
  96844. EM_SCENCE_TYPE_MAGNETIC_METAL_LOW, // 41:磁性低灵敏
  96845. EM_SCENCE_TYPE_NOT_MAGNETIC_METAL, // 42:非磁性金属
  96846. EM_SCENCE_TYPE_NOT_MAGNETIC_METAL_HIGH, // 43:非磁性高灵敏
  96847. EM_SCENCE_TYPE_NOT_MAGNETIC_METAL_LOW, // 44:非磁性低灵敏
  96848. EM_SCENCE_TYPE_RESTAURANT, // 45:餐厅
  96849. EM_SCENCE_TYPE_HOTEL, // 46:酒店
  96850. EM_SCENCE_TYPE_HOSPITAL, // 47:医院
  96851. EM_SCENCE_TYPE_BAR, // 48:酒吧
  96852. EM_SCENCE_TYPE_CONCERT_HALL, // 49:音乐厅
  96853. EM_SCENCE_TYPE_LOGISTICS, // 50:物流
  96854. EM_SCENCE_TYPE_EXPRESS, // 51:快递
  96855. EM_SCENCE_TYPE_AIRPORT1, // 52:机场1
  96856. EM_SCENCE_TYPE_AIRPORT2, // 53:机场2
  96857. EM_SCENCE_TYPE_AIRPORT3, // 54:机场3
  96858. EM_SCENCE_TYPE_AIRPORT4, // 55:机场4
  96859. EM_SCENCE_TYPE_AIRPORT5, // 56:机场5
  96860. EM_SCENCE_TYPE_TRAIN_STATION, // 57:火车站
  96861. EM_SCENCE_TYPE_BUS_STATION, // 58:汽车站
  96862. EM_SCENCE_TYPE_METRO_STATION, // 59:地铁站
  96863. EM_SCENCE_TYPE_MUSEUM, // 60:博物馆
  96864. EM_SCENCE_TYPE_KEY_FACILITIES, // 61:关键设施
  96865. EM_SCENCE_TYPE_BORDER, // 62
  96866. EM_SCENCE_TYPE_PROCURATORATE, // 63:检察院
  96867. EM_SCENCE_TYPE_PS,
  96868. EM_SCENCE_TYPE_POST_OFFICE, // 65:邮局
  96869. EM_SCENCE_TYPE_WAREHOUSE, // 66:仓库
  96870. EM_SCENCE_TYPE_SENSITIVITY1, // 67:灵敏度1
  96871. EM_SCENCE_TYPE_SENSITIVITY2, // 68:灵敏度2
  96872. EM_SCENCE_TYPE_SENSITIVITY3, // 69:灵敏度3
  96873. EM_SCENCE_TYPE_SENSITIVITY4, // 70:灵敏度4
  96874. EM_SCENCE_TYPE_SENSITIVITY5, // 71:灵敏度5
  96875. EM_SCENCE_TYPE_SENSITIVITY6, // 72:灵敏度6
  96876. EM_SCENCE_TYPE_SENSITIVITY7, // 73:灵敏度7
  96877. EM_SCENCE_TYPE_SENSITIVITY8, // 74:灵敏度8
  96878. EM_SCENCE_TYPE_SENSITIVITY9, // 75:灵敏度9
  96879. EM_SCENCE_TYPE_SENSITIVITY10, // 76:灵敏度10
  96880. EM_SCENCE_TYPE_SENSITIVITY11, // 77:灵敏度11
  96881. EM_SCENCE_TYPE_SENSITIVITY12, // 78:灵敏度12
  96882. EM_SCENCE_TYPE_SENSITIVITY13, // 79:灵敏度13
  96883. EM_SCENCE_TYPE_SENSITIVITY14, // 80:灵敏度14
  96884. EM_SCENCE_TYPE_SENSITIVITY15, // 81:灵敏度15
  96885. EM_SCENCE_TYPE_SENSITIVITY16, // 82:灵敏度16
  96886. EM_SCENCE_TYPE_SENSITIVITY17, // 83:灵敏度17
  96887. EM_SCENCE_TYPE_SENSITIVITY18, // 84:灵敏度18
  96888. EM_SCENCE_TYPE_SENSITIVITY19, // 85:灵敏度19
  96889. EM_SCENCE_TYPE_SENSITIVITY20, // 86:灵敏度20
  96890. EM_SCENCE_TYPE_SENSITIVITY21, // 87:灵敏度21
  96891. EM_SCENCE_TYPE_SENSITIVITY22, // 88:灵敏度22
  96892. EM_SCENCE_TYPE_SENSITIVITY23, // 89:灵敏度23
  96893. EM_SCENCE_TYPE_SENSITIVITY24, // 90:灵敏度24
  96894. EM_SCENCE_TYPE_SENSITIVITY25, // 91:灵敏度25
  96895. EM_SCENCE_TYPE_CUSTOM1, // 92:自定义1
  96896. EM_SCENCE_TYPE_CUSTOM2, // 93:自定义2
  96897. EM_SCENCE_TYPE_CUSTOM3, // 94:自定义3
  96898. EM_SCENCE_TYPE_CUSTOM4, // 95:自定义4
  96899. EM_SCENCE_TYPE_CUSTOM5, // 96:自定义5
  96900. EM_SCENCE_TYPE_CUSTOM6, // 97:自定义6
  96901. EM_SCENCE_TYPE_CUSTOM7, // 98:自定义7
  96902. EM_SCENCE_TYPE_CUSTOM8, // 99:自定义8
  96903. EM_SCENCE_TYPE_CUSTOM9, // 100:自定义9
  96904. EM_SCENCE_TYPE_CUSTOM10, // 101:自定义10
  96905. }EM_SCENCE_TYPE;
  96906. ///@brief 配置信息
  96907. typedef struct tagNET_SECURITY_GATE_SENVITITY_CONFIG_INFO
  96908. {
  96909. EM_SCENCE_TYPE emScence; // 应用场景
  96910. UINT nSecurityLevel; // 安全等级值
  96911. UINT nSensitivity[32]; // 各分区灵敏度值
  96912. // 6分区时:有效数据长度6个, 数组下标0~5表示1区~6区灵敏度
  96913. // 12分区或18分区 33分区时:有效数据长度12个,数组下标0~5表示左1~左6区灵敏度,数组下标6~11表示右1~右6区灵敏度
  96914. int nSensitivityNum; // 各分区有效的灵敏度值的个数
  96915. EM_RATE_TYPE emRateType; // 倍率
  96916. EM_EXCLUDE_SMALL_METAL emExcludeSmallMetal; // 排除小金属区位
  96917. char byReserved[256]; // 预留字节
  96918. }NET_SECURITY_GATE_SENVITITY_CONFIG_INFO;
  96919. ///@brief 安检门灵敏度配置信息
  96920. typedef struct tagNET_SECURITY_GATE_SENVITITY_MANAGER
  96921. {
  96922. DWORD dwSize; // 结构体大小
  96923. NET_SECURITY_GATE_SENVITITY_CONFIG_INFO stuConfig; // 配置信息
  96924. }NET_SECURITY_GATE_SENVITITY_MANAGER;
  96925. ///@brief 接口 CLIENT_AttachSecurityGateSenvitityManager回调
  96926. typedef void (CALLBACK *fNotifySecurityGateSenvitityManager)(LLONG lSecurityGateSenvitityManagerHandle, NET_SECURITY_GATE_SENVITITY_MANAGER* pstuSecurityGateSenvitityManager, LDWORD dwUser);
  96927. ///@brief 接口 CLIENT_AttachSecurityGateSenvitityManager 的输入参数
  96928. typedef struct tagNET_IN_ATTACH_SECURITY_GATE_SENVITITY_MANAGER
  96929. {
  96930. DWORD dwSize; // 此结构体大小,必须赋值
  96931. fNotifySecurityGateSenvitityManager cbNotifySecurityGateSenvitityManager; // 回调函数,通知安检门灵敏度配置信息
  96932. LDWORD dwUser; // 用户自定义参数
  96933. }NET_IN_ATTACH_SECURITY_GATE_SENVITITY_MANAGER;
  96934. ///@brief 接口 CLIENT_AttachSecurityGateSenvitityManager 的输出参数
  96935. typedef struct tagNET_OUT_ATTACH_SECURITY_GATE_SENVITITY_MANAGER
  96936. {
  96937. DWORD dwSize; // 此结构体大小,必须赋值
  96938. }NET_OUT_ATTACH_SECURITY_GATE_SENVITITY_MANAGER;
  96939. ///@brief 订阅安检门灵敏度配置信息
  96940. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSecurityGateSenvitityManager(LLONG lLoginID, NET_IN_ATTACH_SECURITY_GATE_SENVITITY_MANAGER* pstInParam, NET_OUT_ATTACH_SECURITY_GATE_SENVITITY_MANAGER* pstOutParam , int nWaitTime);
  96941. ///@brief 取消订阅安检门灵敏度配置信息,lSecurityGateSenvitityManagerHandle 为 CLIENT_AttachSecurityGateSenvitityManager 返回的句柄
  96942. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSecurityGateSenvitityManager(LLONG lSecurityGateSenvitityManagerHandle);
  96943. ///@brief 接口 CLIENT_GetSecurityGateSenvitityManagerConfig 的输入参数
  96944. typedef struct tagNET_IN_GET_SECURITY_GATE_SENVITITY_MANAGER_INFO
  96945. {
  96946. DWORD dwSize; // 此结构体大小,必须赋值
  96947. UINT nTimeOut; // 超时时间,单位:毫秒
  96948. }NET_IN_GET_SECURITY_GATE_SENVITITY_MANAGER_INFO;
  96949. ///@brief 接口 CLIENT_GetSecurityGateSenvitityManagerConfig 的输出参数
  96950. typedef struct tagNET_OUT_GET_SECURITY_GATE_SENVITITY_MANAGER_INFO
  96951. {
  96952. DWORD dwSize; // 此结构体大小,必须赋值
  96953. NET_SECURITY_GATE_SENVITITY_CONFIG_INFO stuConfig; // 配置信息
  96954. }NET_OUT_GET_SECURITY_GATE_SENVITITY_MANAGER_INFO;
  96955. ///@brief 接口 CLIENT_SetSecurityGateSenvitityManagerConfig 的输入参数
  96956. typedef struct tagNET_IN_SET_SECURITY_GATE_SENVITITY_MANAGER_INFO
  96957. {
  96958. DWORD dwSize; // 结构体大小
  96959. NET_SECURITY_GATE_SENVITITY_CONFIG_INFO stuConfig; // 配置信息
  96960. }NET_IN_SET_SECURITY_GATE_SENVITITY_MANAGER_INFO;
  96961. ///@brief 接口 CLIENT_SetSecurityGateSenvitityManagerConfig 的输出参数
  96962. typedef struct tagNET_OUT_SET_SECURITY_GATE_SENVITITY_MANAGER_INFO
  96963. {
  96964. DWORD dwSize; // 结构体大小
  96965. }NET_OUT_SET_SECURITY_GATE_SENVITITY_MANAGER_INFO;
  96966. ///@brief 接口 CLIENT_SecurityGateSenvitityManagerGetSensitivityCaps 的输入参数
  96967. typedef struct tagNET_IN_SECURITY_GATE_GET_SENSITIVITY_CAPS_INFO
  96968. {
  96969. DWORD dwSize; // 结构体大小
  96970. }NET_IN_SECURITY_GATE_GET_SENSITIVITY_CAPS_INFO;
  96971. ///@brief 接口 CLIENT_SecurityGateSenvitityManagerGetSensitivityCaps 的输出参数
  96972. typedef struct tagNET_OUT_SECURITY_GATE_GET_SENSITIVITY_CAPS_INFO
  96973. {
  96974. DWORD dwSize; // 结构体大小
  96975. UINT nSensitivityMinValue; // 分区灵敏度最小值
  96976. UINT nSensitivityMaxValue; // 分区灵敏度最大值
  96977. BOOL bSupportRateType; // 是否支持倍率设置
  96978. BOOL bSupportRecurityLevel; // 是否支持安全等级设置
  96979. int nSensitivityModeNum; // 应用场景数组实际个数
  96980. UINT arrSensitivityMode[128]; // 应用场景数组
  96981. }NET_OUT_SECURITY_GATE_GET_SENSITIVITY_CAPS_INFO;
  96982. ///@brief 获取安检门声光报警配置信息
  96983. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSecurityGateSenvitityManagerConfig(LLONG lLoginID, NET_IN_GET_SECURITY_GATE_SENVITITY_MANAGER_INFO* pstInParam, NET_OUT_GET_SECURITY_GATE_SENVITITY_MANAGER_INFO* pstOutParam , int nWaitTime);
  96984. ///@brief 设置安检门灵敏度配置信息
  96985. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGateSenvitityManagerSetConfig(LLONG lLoginID, NET_IN_SET_SECURITY_GATE_SENVITITY_MANAGER_INFO* pstInParam, NET_OUT_SET_SECURITY_GATE_SENVITITY_MANAGER_INFO* pstOutParam , int nWaitTime);
  96986. ///@brief 获取安检门灵敏度能力集
  96987. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGateSenvitityManagerGetSensitivityCaps(LLONG lLoginID, NET_IN_SECURITY_GATE_GET_SENSITIVITY_CAPS_INFO* pstInParam, NET_OUT_SECURITY_GATE_GET_SENSITIVITY_CAPS_INFO* pstOutParam , int nWaitTime);
  96988. /************************************************** 安检门灵敏度配置 End******************************************************/
  96989. /************************************************** 安检门基础配置 Start******************************************************/
  96990. ///@brief 探测物体类型
  96991. typedef enum tagEM_DETECT_TYPE
  96992. {
  96993. EM_DETECT_TYPE_UNKNOWN = -1, // 未知
  96994. EM_DETECT_TYPE_ALL_METALS, // 所有金属
  96995. EM_DETECT_TYPE_IRON, // 铁磁物
  96996. EM_DETECT_TYPE_NOT_IRON, // 非铁磁物
  96997. }EM_DETECT_TYPE;
  96998. ///@brief 红外计数方式
  96999. typedef enum tagEM_COUNT_TYPE
  97000. {
  97001. EM_COUNT_TYPE_UNKNOWN = -1, // 未知
  97002. EM_COUNT_TYPE_SEPARATE_COUNTING, // 分开计数
  97003. EM_COUNT_TYPE_COUNTING1, // 前+后+
  97004. EM_COUNT_TYPE_COUNTING2, // 前+后-
  97005. }EM_COUNT_TYPE;
  97006. ///@brief 红外模式
  97007. typedef enum tagEM_INFRARED_MODE
  97008. {
  97009. EM_INFRARED_MODE_UNKNOWN = -1, // 未知
  97010. EM_INFRARED_MODE_ALL_CLOSE, // 全关
  97011. EM_INFRARED_MODE_FRONT_CLOSE, // 前关
  97012. EM_INFRARED_MODE_AFTER_CLOSE, // 后关
  97013. EM_INFRARED_MODE_ALL_OPEN, // 全开
  97014. }EM_INFRARED_MODE;
  97015. ///@brief 数字滤波类型
  97016. typedef enum tagEM_DIGITAL_FILTER_TYPE
  97017. {
  97018. EM_DIGITAL_FILTER_TYPE_UNKNOWN = -1, // 未知
  97019. EM_DIGITAL_FILTER_TYPE_NO_FILTERING, // 不滤波
  97020. EM_DIGITAL_FILTER_TYPE_LOW_FILTERING, // 低通滤波
  97021. EM_DIGITAL_FILTER_TYPE_HIGH_FILTERING, // 高通滤波
  97022. EM_DIGITAL_FILTER_TYPE_BAND_FILTERING, // 带通滤波
  97023. }EM_DIGITAL_FILTER_TYPE;
  97024. ///@brief 安检门基础配置信息
  97025. typedef struct tagNET_SECURITY_GATE_SYSTEM_MANAGER
  97026. {
  97027. DWORD dwSize; // 结构体大小
  97028. UINT nFrequency; // 当前频率
  97029. EM_DETECT_TYPE emDetectType; // 探测物体类型
  97030. EM_COUNT_TYPE emCountType; // 红外计数方式
  97031. UINT nInfraredTriggerEnable; // 红外触发报警使能,0 不使能,1 使能
  97032. UINT nAutoSetFreqEnable; // 开机自动设置频率,0 不使能,1 使能
  97033. EM_INFRARED_MODE emInfraredMode; // 红外模式
  97034. EM_DIGITAL_FILTER_TYPE emDigitalFilterType; // 数字滤波类型
  97035. }NET_SECURITY_GATE_SYSTEM_MANAGER;
  97036. ///@brief 接口 CLIENT_AttachSecurityGateSystemManager回调
  97037. typedef void (CALLBACK *fNotifySecurityGateSystemManager)(LLONG lSecurityGateSystemManagerHandle, NET_SECURITY_GATE_SYSTEM_MANAGER* pstuSecurityGateSystemManager, LDWORD dwUser);
  97038. ///@brief 接口 CLIENT_AttachSecurityGateSystemManager 的输入参数
  97039. typedef struct tagNET_IN_ATTACH_SECURITY_GATE_SYSTEM_MANAGER
  97040. {
  97041. DWORD dwSize; // 结构体大小
  97042. fNotifySecurityGateSystemManager cbNotifySecurityGateSystemManager; // 回调函数,安检门基础配置信息
  97043. LDWORD dwUser; // 用户自定义参数
  97044. }NET_IN_ATTACH_SECURITY_GATE_SYSTEM_MANAGER;
  97045. ///@brief 接口 CLIENT_AttachSecurityGateSystemManager 的输出参数
  97046. typedef struct tagNET_OUT_ATTACH_SECURITY_GATE_SYSTEM_MANAGER
  97047. {
  97048. DWORD dwSize; // 结构体大小
  97049. }NET_OUT_ATTACH_SECURITY_GATE_SYSTEM_MANAGER;
  97050. ///@brief 接口 CLIENT_GetSecurityGateSystemManagerConfig 的输入参数
  97051. typedef struct tagNET_IN_GET_SECURITY_GATE_SYSTEM_MANAGER_INFO
  97052. {
  97053. DWORD dwSize; // 结构体大小
  97054. UINT nTimeOut; // 超时时间,单位:毫秒
  97055. }NET_IN_GET_SECURITY_GATE_SYSTEM_MANAGER_INFO;
  97056. ///@brief 接口 CLIENT_GetSecurityGateSystemManagerConfig 的输出参数
  97057. typedef struct tagNET_OUT_GET_SECURITY_GATE_SYSTEM_MANAGER_INFO
  97058. {
  97059. DWORD dwSize; // 结构体大小
  97060. UINT nFrequency; // 当前频率
  97061. EM_DETECT_TYPE emDetectType; // 探测物体类型
  97062. EM_COUNT_TYPE emCountType; // 红外计数方式
  97063. UINT nInfraredTriggerEnable; // 红外触发报警使能,0 不使能,1 使能
  97064. UINT nAutoSetFreqEnable; // 开机自动设置频率,0 不使能,1 使能
  97065. EM_INFRARED_MODE emInfraredMode; // 红外模式
  97066. EM_DIGITAL_FILTER_TYPE emDigitalFilterType; // 数字滤波类型
  97067. }NET_OUT_GET_SECURITY_GATE_SYSTEM_MANAGER_INFO;
  97068. ///@brief 接口 CLIENT_SetSecurityGateSystemManagerConfig 的输入参数
  97069. typedef struct tagNET_IN_SET_SECURITY_GATE_SYSTEM_MANAGER_INFO
  97070. {
  97071. DWORD dwSize; // 结构体大小
  97072. UINT nFrequency; // 当前频率
  97073. EM_DETECT_TYPE emDetectType; // 探测物体类型
  97074. EM_COUNT_TYPE emCountType; // 红外计数方式
  97075. UINT nInfraredTriggerEnable; // 红外触发报警使能,0 不使能,1 使能
  97076. UINT nAutoSetFreqEnable; // 开机自动设置频率,0 不使能,1 使能
  97077. EM_INFRARED_MODE emInfraredMode; // 红外模式
  97078. EM_DIGITAL_FILTER_TYPE emDigitalFilterType; // 数字滤波类型
  97079. }NET_IN_SET_SECURITY_GATE_SYSTEM_MANAGER_INFO;
  97080. ///@brief 接口 CLIENT_SetSecurityGateSystemManagerConfig 的输出参数
  97081. typedef struct tagNET_OUT_SET_SECURITY_GATE_SYSTEM_MANAGER_INFO
  97082. {
  97083. DWORD dwSize; // 结构体大小
  97084. }NET_OUT_SET_SECURITY_GATE_SYSTEM_MANAGER_INFO;
  97085. ///@brief 接口 CLIENT_SecurityGateSystemManagerGetCaps 的输入参数
  97086. typedef struct tagNET_IN_SECURITY_GATE_SYSTEM_MANAGER_GETCAPS_INFO
  97087. {
  97088. DWORD dwSize; // 结构体大小
  97089. UINT nTimeOut; // 超时时间,单位:毫秒
  97090. }NET_IN_SECURITY_GATE_SYSTEM_MANAGER_GETCAPS_INFO;
  97091. ///@brief 接口 CLIENT_SecurityGateSystemManagerGetCaps 的输出参数
  97092. typedef struct tagNET_OUT_SECURITY_GATE_SYSTEM_MANAGER_GETCAPS_INFO
  97093. {
  97094. DWORD dwSize; // 结构体大小
  97095. UINT nFrequencyMin; // 当前频率最小值
  97096. UINT nFrequencyMax; // 当前频率最大值
  97097. BOOL bSupportDetectType; // 是否支持探测物体设置
  97098. BOOL bSupportInfraredMode; // 是否支持红外模式设置
  97099. BOOL bSupportAutoSetFreqEnable; // 是否支持开机自动设置频率
  97100. BOOL bSupportAutoSearchFreq; // 是否支持自动搜索频率
  97101. BOOL bSupportDigitalFilterType; // 是否支持数字滤波类型设置
  97102. }NET_OUT_SECURITY_GATE_SYSTEM_MANAGER_GETCAPS_INFO;
  97103. ///@brief 接口 CLIENT_SecurityGateSystemManagerStartAutoSearchFreq 的输入参数
  97104. typedef struct tagNET_IN_SECURITY_GATE_SYSTEM_MANAGER_START_SEARCH_INFO
  97105. {
  97106. DWORD dwSize; // 结构体大小
  97107. }NET_IN_SECURITY_GATE_SYSTEM_MANAGER_START_SEARCH_INFO;
  97108. ///@brief 接口 CLIENT_SecurityGateSystemManagerStartAutoSearchFreq 的输出参数
  97109. typedef struct tagNET_OUT_SECURITY_GATE_SYSTEM_MANAGER_START_SEARCH_INFO
  97110. {
  97111. DWORD dwSize; // 结构体大小
  97112. UINT nFrequency; // 当前频率
  97113. }NET_OUT_SECURITY_GATE_SYSTEM_MANAGER_START_SEARCH_INFO;
  97114. ///@brief 订阅安检门基础配置信息
  97115. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSecurityGateSystemManager(LLONG lLoginID, NET_IN_ATTACH_SECURITY_GATE_SYSTEM_MANAGER* pstInParam, NET_OUT_ATTACH_SECURITY_GATE_SYSTEM_MANAGER* pstOutParam , int nWaitTime);
  97116. ///@brief 取消订阅安检门基础配置信息,lSecurityGateSystemManagerHandle 为 CLIENT_AttachSecurityGateSystemManager 返回的句柄
  97117. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSecurityGateSystemManager(LLONG lSecurityGateSystemManagerHandle);
  97118. ///@brief 获取安检门基础配置信息
  97119. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGateSystemManagerGetConfig(LLONG lLoginID, NET_IN_GET_SECURITY_GATE_SYSTEM_MANAGER_INFO* pstInParam, NET_OUT_GET_SECURITY_GATE_SYSTEM_MANAGER_INFO* pstOutParam , int nWaitTime);
  97120. ///@brief 设置安检门基础配置信息
  97121. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGateSystemManagerSetConfig(LLONG lLoginID, NET_IN_SET_SECURITY_GATE_SYSTEM_MANAGER_INFO* pstInParam, NET_OUT_SET_SECURITY_GATE_SYSTEM_MANAGER_INFO* pstOutParam , int nWaitTime);
  97122. ///@brief 获取安检门基础配置能力集
  97123. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGateSystemManagerGetCaps(LLONG lLoginID, NET_IN_SECURITY_GATE_SYSTEM_MANAGER_GETCAPS_INFO* pstInParam, NET_OUT_SECURITY_GATE_SYSTEM_MANAGER_GETCAPS_INFO* pstOutParam , int nWaitTime);
  97124. ///@brief 开始自动搜索频率
  97125. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGateSystemManagerStartAutoSearchFreq(LLONG lLoginID, NET_IN_SECURITY_GATE_SYSTEM_MANAGER_START_SEARCH_INFO* pstInParam, NET_OUT_SECURITY_GATE_SYSTEM_MANAGER_START_SEARCH_INFO* pstOutParam , int nWaitTime);
  97126. /************************************************** 安检门基础配置 End******************************************************/
  97127. /************************************************** 安检门外设状态信息 Start******************************************************/
  97128. ///@brief 交通灯状态
  97129. typedef enum tagEM_TRAFFIC_LIGHT_COLOR_STATE
  97130. {
  97131. EM_TRAFFIC_LIGHT_COLOR_STATE_UNKNOWN = -1, // 未知
  97132. EM_TRAFFIC_LIGHT_COLOR_STATE_RED, // 红色
  97133. EM_TRAFFIC_LIGHT_COLOR_STATE_GREEN, // 绿色
  97134. EM_TRAFFIC_LIGHT_COLOR_STATE_YELLOW, // 黄色
  97135. EM_TRAFFIC_LIGHT_COLOR_STATE_BLUE, // 蓝色
  97136. }EM_TRAFFIC_LIGHT_COLOR_STATE;
  97137. ///@brief 状态信息
  97138. typedef struct tagNET_PERIPHERALL_INFO
  97139. {
  97140. EM_TRAFFIC_LIGHT_COLOR_STATE emTrafficLightState; // 交通灯状态
  97141. char byReserved[256]; // 预留字节
  97142. }NET_PERIPHERALL_INFO;
  97143. ///@brief 安检门外设状态信息
  97144. typedef struct tagNET_SECURITY_GATE_MANAGER
  97145. {
  97146. DWORD dwSize; // 结构体大小
  97147. NET_PERIPHERALL_INFO stuPeripheralInfo; // 状态信息
  97148. }NET_SECURITY_GATE_MANAGER;
  97149. ///@brief 回调函数
  97150. typedef void (CALLBACK *fNotifySecurityGateManager)(LLONG lSecurityGateManagerHandle, NET_SECURITY_GATE_MANAGER* pstuSecurityGateSenvitityManager, LDWORD dwUser);
  97151. ///@brief 接口 CLIENT_AttachSecurityGateManager 的输入参数
  97152. typedef struct tagNET_IN_ATTACH_SECURITY_GATE_MANAGER
  97153. {
  97154. DWORD dwSize; // 此结构体大小,必须赋值
  97155. fNotifySecurityGateManager cbNotifySecurityGateManager; // 回调函数,通知安检门外设状态信息
  97156. LDWORD dwUser; // 用户自定义参数
  97157. }NET_IN_ATTACH_SECURITY_GATE_MANAGER;
  97158. ///@brief 接口 CLIENT_AttachSecurityGateManager 的输出参数
  97159. typedef struct tagNET_OUT_ATTACH_SECURITY_GATE_MANAGER
  97160. {
  97161. DWORD dwSize; // 此结构体大小,必须赋值
  97162. }NET_OUT_ATTACH_SECURITY_GATE_MANAGER;
  97163. ///@brief 订阅安检门外设状态信息
  97164. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSecurityGateManager(LLONG lLoginID, NET_IN_ATTACH_SECURITY_GATE_MANAGER* pstInParam, NET_OUT_ATTACH_SECURITY_GATE_MANAGER* pstOutParam , int nWaitTime);
  97165. ///@brief 取消订阅安检门外设状态信息,lSecurityGateManagerHandle 为 CLIENT_AttachSecurityGateManager 返回的句柄
  97166. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSecurityGateManager(LLONG lSecurityGateManagerHandle);
  97167. ///@brief 接口 CLIENT_GetSecurityGateManagerInfo 的输入参数
  97168. typedef struct tagNET_IN_GET_SECURITY_GATE_MANAGER_INFO
  97169. {
  97170. DWORD dwSize; // 此结构体大小,必须赋值
  97171. UINT nTimeOut; // 超时时间,单位:毫秒
  97172. }NET_IN_GET_SECURITY_GATE_MANAGER_INFO;
  97173. ///@brief 接口 CLIENT_GetSecurityGateManagerInfo 的输出参数
  97174. typedef struct tagNET_OUT_GET_SECURITY_GATE_MANAGER_INFO
  97175. {
  97176. DWORD dwSize; // 此结构体大小,必须赋值
  97177. EM_TRAFFIC_LIGHT_COLOR_STATE emTrafficLightState; // 交通灯状态
  97178. }NET_OUT_GET_SECURITY_GATE_MANAGER_INFO;
  97179. ///@brief 获取安检门外设状态信息
  97180. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSecurityGateManagerInfo(LLONG lLoginID, NET_IN_GET_SECURITY_GATE_MANAGER_INFO* pstInParam, NET_OUT_GET_SECURITY_GATE_MANAGER_INFO* pstOutParam , int nWaitTime);
  97181. /************************************************** 安检门外设状态信息 End******************************************************/
  97182. ///@brief 接口 CLIENT_SecurityInspectorCheckOnJob 的输入参数
  97183. typedef struct tagNET_IN_ATTACH_SECURITY_INSPECTOR_CHECK_ONJOB
  97184. {
  97185. DWORD dwSize; // 此结构体大小,必须赋值
  97186. }NET_IN_ATTACH_SECURITY_INSPECTOR_CHECK_ONJOB;
  97187. ///@brief 接口 CLIENT_SecurityInspectorCheckOnJob 的输出参数
  97188. typedef struct tagNET_OUT_ATTACH_SECURITY_INSPECTOR_CHECK_ONJOB
  97189. {
  97190. DWORD dwSize; //此结构体大小,必须赋值
  97191. UINT nCheckID; // 在岗检查ID
  97192. }NET_OUT_ATTACH_SECURITY_INSPECTOR_CHECK_ONJOB;
  97193. ///@brief 安检员检查在岗,pstInParam与pstOutParam内存由用户申请释放
  97194. CLIENT_NET_API LLONG CALL_METHOD CLIENT_SecurityInspectorCheckOnJob(LLONG lLoginID, NET_IN_ATTACH_SECURITY_INSPECTOR_CHECK_ONJOB* pInParam, NET_OUT_ATTACH_SECURITY_INSPECTOR_CHECK_ONJOB* pOutParam , int nWaitTime);
  97195. ///@brief CLIENT_UploadUnpackingCheckInfo 入参
  97196. typedef struct tagNET_IN_UPLOAD_UPPACKING_CHECK_INFO
  97197. {
  97198. DWORD dwSize; // 结构体大小
  97199. int nImageDataLen; // 图片二进制数据缓存大小
  97200. char* pImageData; // 图片二进制数据块
  97201. UNPACKING_CHECK_INFO stuCheckInfo; // 开包检查信息
  97202. }NET_IN_UPLOAD_UPPACKING_CHECK_INFO;
  97203. ///@brief CLIENT_UploadUnpackingCheckInfo 出参
  97204. typedef struct tagNET_OUT_UPLOAD_UPPACKING_CHECK_INFO
  97205. {
  97206. DWORD dwSize; // 结构体大小
  97207. }NET_OUT_UPLOAD_UPPACKING_CHECK_INFO;
  97208. ///@brief 开包工作台上报开包检查信息
  97209. CLIENT_NET_API BOOL CALL_METHOD CLIENT_UploadUnpackingCheckInfo(LLONG lLoginID, const NET_IN_UPLOAD_UPPACKING_CHECK_INFO* pInParam, NET_OUT_UPLOAD_UPPACKING_CHECK_INFO* pOutParam, int nWaitTime);
  97210. ///@brief 电平信号
  97211. typedef enum tagEM_ELECTRICAL_LEVEL
  97212. {
  97213. EM_ELECTRICAL_LEVEL_UNKNOWN = -1, // 未知
  97214. EM_ELECTRICAL_LEVEL_LOW, // 低电平
  97215. EM_ELECTRICAL_LEVEL_HIGH, // 高电平
  97216. }EM_ELECTRICAL_LEVEL;
  97217. ///@brief 安检门红外传感器数据
  97218. typedef struct tagNET_SECURITY_GATE_SENSOR_DATA
  97219. {
  97220. DWORD dwSize; // 结构体大小
  97221. UINT nChannel; // 红外传感器通道号 0:前对红外 1:后对红外
  97222. EM_ELECTRICAL_LEVEL emElectricalLevel; // 电平信号
  97223. }NET_SECURITY_GATE_SENSOR_DATA;
  97224. ///@brief 回调函数
  97225. typedef void (CALLBACK *fNotifySecurityGateSensorData)(LLONG lSecurityGateSensorDataHandle, NET_SECURITY_GATE_SENSOR_DATA* pstuSecurityGateSensorData, LDWORD dwUser);
  97226. ///@brief CLIENT_AttachSecurityGateSensorData 的输入参数
  97227. typedef struct tagNET_IN_ATTACH_SECURITY_GATE_SENSOR_DATA
  97228. {
  97229. DWORD dwSize; // 此结构体大小,必须赋值
  97230. fNotifySecurityGateSensorData cbNotifySecurityGateSensorData; // 回调函数,安检门红外传感器数据
  97231. LDWORD dwUser; // 用户自定义参数
  97232. }NET_IN_ATTACH_SECURITY_GATE_SENSOR_DATA;
  97233. ///@brief CLIENT_AttachSecurityGateSensorData 的输出参数
  97234. typedef struct tagNET_OUT_ATTACH_SECURITY_GATE_SENSOR_DATA
  97235. {
  97236. DWORD dwSize; // 此结构体大小,必须赋值
  97237. }NET_OUT_ATTACH_SECURITY_GATE_SENSOR_DATA;
  97238. ///@brief 订阅安检门接收红外传感器数据
  97239. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSecurityGateSensorData(LLONG lLoginID, NET_IN_ATTACH_SECURITY_GATE_SENSOR_DATA* pstInParam, NET_OUT_ATTACH_SECURITY_GATE_SENSOR_DATA* pstOutParam , int nWaitTime);
  97240. ///@brief 取消订阅安检门接收红外传感器数据,lSecurityGateSensorDataHandle 为 CLIENT_AttachSecurityGateSensorData 返回的句柄
  97241. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSecurityGateSensorData(LLONG lSecurityGateSensorDataHandle);
  97242. ///@brief CLIENT_GetSecurityGateSensorData 的输入参数
  97243. typedef struct tagNET_IN_GET_SECURITY_GATE_SENSOR_DATA
  97244. {
  97245. DWORD dwSize; // 此结构体大小,必须赋值
  97246. UINT nChannel; // 红外传感器通道号 0:前对红外 1:后对红外
  97247. }NET_IN_GET_SECURITY_GATE_SENSOR_DATA;
  97248. ///@brief CLIENT_GetSecurityGateSensorData 的输出参数
  97249. typedef struct tagNET_OUT_GET_SECURITY_GATE_SENSOR_DATA
  97250. {
  97251. DWORD dwSize; // 此结构体大小,必须赋值
  97252. EM_ELECTRICAL_LEVEL emElectricalLevel; // 电平信号
  97253. }NET_OUT_GET_SECURITY_GATE_SENSOR_DATA;
  97254. ///@brief 获取红外传感器当前电平信号
  97255. CLIENT_NET_API LLONG CALL_METHOD CLIENT_GetSecurityGateSensorData(LLONG lLoginID, NET_IN_GET_SECURITY_GATE_SENSOR_DATA* pstInParam, NET_OUT_GET_SECURITY_GATE_SENSOR_DATA* pstOutParam , int nWaitTime);
  97256. ///@brief 按键值
  97257. typedef enum tagEM_SECURITY_GATE_KEY_CODE
  97258. {
  97259. EM_SECURITY_GATE_KEY_CODE_UNKNOWN = -1, // 未知
  97260. EM_SECURITY_GATE_KEY_CODE_RIGHT, // 方向右键
  97261. EM_SECURITY_GATE_KEY_CODE_CONFIRM, // 确认键
  97262. EM_SECURITY_GATE_KEY_CODE_POWER, // 电源键
  97263. EM_SECURITY_GATE_KEY_CODE_LEFT, // 方向左键
  97264. EM_SECURITY_GATE_KEY_CODE_RETURN, // 返回键
  97265. EM_SECURITY_GATE_KEY_CODE_RESET, // 复位键
  97266. EM_SECURITY_GATE_KEY_CODE_UPPER, // 方向上键
  97267. EM_SECURITY_GATE_KEY_CODE_LOWER, // 方向下键
  97268. EM_SECURITY_GATE_KEY_CODE_MENU, // 菜单键
  97269. EM_SECURITY_GATE_KEY_CODE_HOME, // HOME键
  97270. }EM_SECURITY_GATE_KEY_CODE;
  97271. ///@brief 按键消息
  97272. typedef struct tagNET_SECURITY_GATE_KEY_CODE
  97273. {
  97274. DWORD dwSize; // 结构体大小
  97275. EM_SECURITY_GATE_KEY_CODE emKeyCode; // 按键值
  97276. }NET_SECURITY_GATE_KEY_CODE;
  97277. ///@brief CLIENT_AttachSecurityGateKeyCode 回调函数
  97278. typedef void (CALLBACK *fNotifySecurityGateKeyCode)(LLONG lSecurityGateKeyCodeHandle, NET_SECURITY_GATE_KEY_CODE* pstuSecurityGateKeyCode, LDWORD dwUser);
  97279. ///@brief CLIENT_AttachSecurityGateKeyCode 的输入参数
  97280. typedef struct tagNET_IN_ATTACH_SECURITY_GATE_KEY_CODE
  97281. {
  97282. DWORD dwSize; // 此结构体大小,必须赋值
  97283. fNotifySecurityGateKeyCode cbNotifySecurityGateKeyCode; // 回调函数,安检门按键消息
  97284. LDWORD dwUser; // 用户自定义参数
  97285. }NET_IN_ATTACH_SECURITY_GATE_KEY_CODE;
  97286. ///@brief CLIENT_AttachSecurityGateKeyCode 的输出参数
  97287. typedef struct tagNET_OUT_ATTACH_SECURITY_GATE_KEY_CODE
  97288. {
  97289. DWORD dwSize; // 此结构体大小,必须赋值
  97290. }NET_OUT_ATTACH_SECURITY_GATE_KEY_CODE;
  97291. ///@brief 订阅安检门订阅按键消息
  97292. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSecurityGateKeyCode(LLONG lLoginID, NET_IN_ATTACH_SECURITY_GATE_KEY_CODE* pstInParam, NET_OUT_ATTACH_SECURITY_GATE_KEY_CODE* pstOutParam , int nWaitTime);
  97293. ///@brief 取消订阅安检门订阅按键消息,lSecurityGateKeyCodeHandle 为 CLIENT_AttachSecurityGateKeyCode 返回的句柄
  97294. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSecurityGateKeyCode(LLONG lSecurityGateKeyCodeHandle);
  97295. ///@brief 外设类型
  97296. typedef enum tagEM_SECURITY_GATE_PERIPHERAL_TYPE
  97297. {
  97298. EM_SECURITY_GATE_PERIPHERAL_TYPE_UNKNOWN = -1, // 未知
  97299. EM_SECURITY_GATE_PERIPHERAL_TYPE_DISPLAY, // 显示屏
  97300. EM_SECURITY_GATE_PERIPHERAL_TYPE_KEY_LIGHT_BOARD, // 按键灯板
  97301. EM_SECURITY_GATE_PERIPHERAL_TYPE_DOOR_PANEL_LAMP, // 门板灯带
  97302. }EM_SECURITY_GATE_PERIPHERAL_TYPE;
  97303. ///@brief CLIENT_SecurityGateSwitchPeripheralPower 的输入参数
  97304. typedef struct tagNET_IN_SECURITY_GATE_SWITCH_PERIPHERAL_POWER
  97305. {
  97306. DWORD dwSize; // 此结构体大小,必须赋值
  97307. EM_SECURITY_GATE_PERIPHERAL_TYPE emPeripheralType; // 外设类型
  97308. UINT nSwitchPower; // 控制开关 0:关闭 1:打开
  97309. }NET_IN_SECURITY_GATE_SWITCH_PERIPHERAL_POWER;
  97310. ///@brief CLIENT_SecurityGateSwitchPeripheralPower 的输出参数
  97311. typedef struct tagNET_OUT_SECURITY_GATE_SWITCH_PERIPHERAL_POWER
  97312. {
  97313. DWORD dwSize; // 此结构体大小,必须赋值
  97314. }NET_OUT_SECURITY_GATE_SWITCH_PERIPHERAL_POWER;
  97315. ///@brief 向安检门发送控制外设开关命令
  97316. CLIENT_NET_API LLONG CALL_METHOD CLIENT_SecurityGateSwitchPeripheralPower(LLONG lLoginID, NET_IN_SECURITY_GATE_SWITCH_PERIPHERAL_POWER* pstInParam, NET_OUT_SECURITY_GATE_SWITCH_PERIPHERAL_POWER* pstOutParam , int nWaitTime);
  97317. ///@brief 查询条件
  97318. typedef struct tagNET_SECURITY_GATE_STATISTICS_FIND_CONDITION
  97319. {
  97320. NET_TIME stuStartTime; // 开始时间
  97321. NET_TIME stuEndTime; // 结束时间
  97322. UINT nGranularity; // 粒度, 0表示按小时, 1表示按天
  97323. char szResvered[1020]; // 保留字节
  97324. }NET_SECURITY_GATE_STATISTICS_FIND_CONDITION;
  97325. ///@brief 接口 CLIENT_StartFindSecurityGateStatistics 的输入参数
  97326. typedef struct tagNET_IN_START_FIND_SECURITY_GATE_STATISTICS
  97327. {
  97328. DWORD dwSize; // 此结构体大小,必须赋值
  97329. NET_SECURITY_GATE_STATISTICS_FIND_CONDITION stuCondition; // 查询条件
  97330. }NET_IN_START_FIND_SECURITY_GATE_STATISTICS;
  97331. ///@brief 接口 CLIENT_StartFindSecurityGateStatistics 的输出参数
  97332. typedef struct tagNET_OUT_START_FIND_SECURITY_GATE_STATISTICS
  97333. {
  97334. DWORD dwSize; // 此结构体大小,必须赋值
  97335. UINT nToken; // 查询令牌
  97336. UINT nTotal; // 结果总数
  97337. }NET_OUT_START_FIND_SECURITY_GATE_STATISTICS;
  97338. ///@brief 安检门人数统计开始查询
  97339. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartFindSecurityGateStatistics(LLONG lLoginID, NET_IN_START_FIND_SECURITY_GATE_STATISTICS* pstuInParam, NET_OUT_START_FIND_SECURITY_GATE_STATISTICS* pstuOutParam , int nWaitTime);
  97340. ///@brief 接口 CLIENT_FindNextSecurityGateStatistics 的输入参数
  97341. typedef struct tagNET_IN_FIND_NEXT_SECURITY_GATE_STATISTICS
  97342. {
  97343. DWORD dwSize; // 此结构体大小,必须赋值
  97344. int nToken; // 查询令牌
  97345. int nCount; // 需要查找的数目
  97346. }NET_IN_FIND_NEXT_SECURITY_GATE_STATISTICS;
  97347. ///@brief 人数统计信息
  97348. typedef struct tagNET_STATISTICS_LIST_INFO
  97349. {
  97350. NET_TIME stuStartTime; // 开始时间
  97351. NET_TIME stuEndTime; // 结束时间
  97352. UINT nInNormalCount; // 进入通过人数
  97353. UINT nInAlarmCount; // 进入报警人数
  97354. UINT nOutNormalCount; // 离开通过人数
  97355. UINT nOutAlarmCount; // 离开报警人数
  97356. UINT nTempNormalCount; // 体温正常人数
  97357. UINT nTempAlarmCount; // 体温异常人数
  97358. UINT nClassifyResultStatisticsCount; // 分类检测结果人数统计信息个数
  97359. NET_CLASSIFY_RESULT_STATISTICS_INFO stuClassifyResultStatistics[32]; // 分类检测结果人数统计信息
  97360. char szResvered[1024]; // 保留字节
  97361. }NET_STATISTICS_LIST_INFO;
  97362. ///@brief 接口 CLIENT_FindNextSecurityGateStatistics 的输出参数
  97363. typedef struct tagNET_OUT_FIND_NEXT_SECURITY_GATE_STATISTICS
  97364. {
  97365. DWORD dwSize; // 此结构体大小,必须赋值
  97366. UINT nFound; // 查找到的条数
  97367. NET_STATISTICS_LIST_INFO stuStatisticsList[128]; // 人数统计信息
  97368. int nStatisticsListNum; // 人数统计信息个数
  97369. }NET_OUT_FIND_NEXT_SECURITY_GATE_STATISTICS;
  97370. ///@brief 在指定条件基础上查询安检门人数统计结果
  97371. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindNextSecurityGateStatistics(LLONG lLoginID, NET_IN_FIND_NEXT_SECURITY_GATE_STATISTICS* pstuInParam, NET_OUT_FIND_NEXT_SECURITY_GATE_STATISTICS* pstuOutParam , int nWaitTime);
  97372. ///@brief 接口 CLIENT_StopFindSecurityGateStatistics 的输入参数
  97373. typedef struct tagNET_IN_STOP_FIND_SECURITY_GATE_STATISTICS
  97374. {
  97375. DWORD dwSize; // 此结构体大小,必须赋值
  97376. int nToken; // 查询令牌
  97377. }NET_IN_STOP_FIND_SECURITY_GATE_STATISTICS;
  97378. ///@brief 接口 CLIENT_StopFindSecurityGateStatistics 的输出参数
  97379. typedef struct tagNET_OUT_STOP_FIND_SECURITY_GATE_STATISTICS
  97380. {
  97381. DWORD dwSize; // 此结构体大小,必须赋值
  97382. }NET_OUT_STOP_FIND_SECURITY_GATE_STATISTICS;
  97383. ///@brief 停止查询安检门人数统计
  97384. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindSecurityGateStatistics(LLONG lLoginID, NET_IN_STOP_FIND_SECURITY_GATE_STATISTICS* pstuInParam, NET_OUT_STOP_FIND_SECURITY_GATE_STATISTICS* pstuOutParam , int nWaitTime);
  97385. ///@brief 接口 CLIENT_GetXRayObjectManagerCaps 的输入参数
  97386. typedef struct tagNET_IN_GET_XRAYOBJECT_MANAGER_CAPS
  97387. {
  97388. DWORD dwSize; // 此结构体大小,必须赋值
  97389. }NET_IN_GET_XRAYOBJECT_MANAGER_CAPS;
  97390. ///@brief 物品所属模型
  97391. typedef enum tagEM_XRAYOBJECT_MANAGER_MODEL
  97392. {
  97393. EM_XRAYOBJECT_MANAGER_MODEL_UNKNOWN = -1, // 未知
  97394. EM_XRAYOBJECT_MANAGER_MODEL_DH, // 表示私有模型
  97395. EM_XRAYOBJECT_MANAGER_MODEL_CUSTOM, // 表示自定义模型
  97396. }EM_XRAYOBJECT_MANAGER_MODEL;
  97397. ///@brief 能力信息
  97398. typedef struct tagNET_XRAYOBJECT_MANAGER_OBJECT
  97399. {
  97400. char szType[64]; // 可识别物品类型
  97401. char szName[64]; // 可识别物品名称
  97402. EM_XRAYOBJECT_MANAGER_MODEL emModel; // 物品所属模型
  97403. char szResvered[1020]; // 保留字节
  97404. }NET_XRAYOBJECT_MANAGER_OBJECT;
  97405. ///@brief 音视频版本保护
  97406. typedef enum tagEM_SUPPORT_XRAY_CUSTOMITEM
  97407. {
  97408. EM_SUPPORT_XRAY_CUSTOMITEM_UNKNOWN = -1, // 未知
  97409. EM_SUPPORT_XRAY_CUSTOMITEM_OLD, // 旧版本
  97410. EM_SUPPORT_XRAY_CUSTOMITEM_NEW, // 新版本
  97411. }EM_SUPPORT_XRAY_CUSTOMITEM;
  97412. ///@brief 接口 CLIENT_GetXRayObjectManagerCaps 的输出参数
  97413. typedef struct tagNET_OUT_GET_XRAYOBJECT_MANAGER_CAPS
  97414. {
  97415. DWORD dwSize; // 此结构体大小,必须赋值
  97416. int nObjectsNum; // 能力信息个数
  97417. NET_XRAYOBJECT_MANAGER_OBJECT stuObjects[128]; // 能力信息
  97418. EM_SUPPORT_XRAY_CUSTOMITEM emSupportXRayCustomItem; // 音视频版本保护
  97419. }NET_OUT_GET_XRAYOBJECT_MANAGER_CAPS;
  97420. ///@brief 获取可识别物品能力集
  97421. ///@param[in] lLoginID 登录句柄
  97422. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  97423. ///@param[out] pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  97424. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97425. ///@return TRUE表示成功 FALSE表示失败
  97426. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetXRayObjectManagerCaps(LLONG lLoginID, NET_IN_GET_XRAYOBJECT_MANAGER_CAPS* pstuInParam, NET_OUT_GET_XRAYOBJECT_MANAGER_CAPS* pstuOutParam, int nWaitTime);
  97427. /***************************安检门接口End***************************************************/
  97428. /***************************温湿度数据接口 start***************************************************/
  97429. ///@brief 回调的温湿度信息
  97430. typedef struct tagNET_HYGROTHERMOGRAPH_INFO
  97431. {
  97432. float fTemperature; // 温度, 单位: ℃
  97433. float fHumidity; // 温度, 单位: ℃
  97434. int nChannel; // 上报通道号
  97435. char szResvered[1020]; // 保留字节
  97436. }NET_HYGROTHERMOGRAPH_INFO;
  97437. ///@brief 订阅温湿度实时检测数据回调函数原型, lHygrothermographHandle为CLIENT_AttachHygrothermograph接口的返回值
  97438. ///@param[out] lHygrothermographHandle 订阅句柄
  97439. ///@param[out] pstuHygrothermographInfo 订阅温湿度实时检测数据回调信息
  97440. ///@param[out] dwUser 用户信息
  97441. ///@return void
  97442. typedef void (CALLBACK *fNotifyHygrothermograph)(LLONG lHygrothermographHandle, NET_HYGROTHERMOGRAPH_INFO* pstuHygrothermographInfo, LDWORD dwUser);
  97443. ///@brief 过滤器
  97444. typedef struct tagNET_ATTACH_HYGROTHERMOGRAPH_FILTER_INFO
  97445. {
  97446. int nChannel; // 订阅通道号;-1代表订阅全通道;
  97447. char szResvered[252]; // 保留字节
  97448. }NET_ATTACH_HYGROTHERMOGRAPH_FILTER_INFO;
  97449. ///@brief 接口 CLIENT_AttachHygrothermograph 的输入参数
  97450. typedef struct tagNET_IN_ATTACH_HYGROTHERMOGRAPH
  97451. {
  97452. DWORD dwSize; // 此结构体大小,必须赋值
  97453. fNotifyHygrothermograph cbNotifyHygrothermograph; // 回调函数,通知温湿度信息
  97454. LDWORD dwUser; // 用户自定义参数
  97455. int nFilterCount; // 过滤器个数
  97456. NET_ATTACH_HYGROTHERMOGRAPH_FILTER_INFO stuFilter[256]; // 过滤器
  97457. }NET_IN_ATTACH_HYGROTHERMOGRAPH;
  97458. ///@brief 接口 CLIENT_AttachHygrothermograph 的输出参数
  97459. typedef struct tagNET_OUT_ATTACH_HYGROTHERMOGRAPH
  97460. {
  97461. DWORD dwSize; // 此结构体大小,必须赋值
  97462. }NET_OUT_ATTACH_HYGROTHERMOGRAPH;
  97463. ///@brief 订阅温湿度实时检测数据
  97464. ///@param[in] lLoginID 登录句柄
  97465. ///@param[in] pstInParam 接口输入参数
  97466. ///@param[out]pstOutParam 接口输出参数
  97467. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97468. ///@return 返回订阅句柄
  97469. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachHygrothermograph(LLONG lLoginID, NET_IN_ATTACH_HYGROTHERMOGRAPH* pstInParam, NET_OUT_ATTACH_HYGROTHERMOGRAPH* pstOutParam , int nWaitTime);
  97470. ///@brief 退订温湿度实时检测数据
  97471. ///@param[in] lHygrothermographHandle 订阅句柄
  97472. ///@return TRUE表示成功 FALSE表示失败
  97473. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachHygrothermograph(LLONG lHygrothermographHandle);
  97474. /***************************温湿度数据接口 End*****************************************************/
  97475. /***************************电量数据接口 start***************************************************/
  97476. ///@brief 电量信息
  97477. typedef struct tagNET_POWER_INFO
  97478. {
  97479. int nPowerVoltage; // 电压值, 单位: mV
  97480. int nPowerCurrent; // 电流值, 单位: mA
  97481. int nPowerValue; // 功率, 单位: mW
  97482. EM_ALARM_INTERFACE_TYPE emInterfaceType; // 感应器相位类型
  97483. char szResvered[256]; // 保留字节
  97484. }NET_POWER_INFO;
  97485. ///@brief 回调的电量信息
  97486. typedef struct tagNET_POWER_SWITCHER_INFO
  97487. {
  97488. int nPowerInfoNum; // 返回的电量信息的个数, 最大值为3
  97489. NET_POWER_INFO stuPowerInfo[3]; // 电量信息
  97490. int nElectricity; // 电能值,单位:Wh
  97491. int nActivePower; // 三相有功功率,单位:W
  97492. int nPowerFactor; // 三相总功率因数,单位:PF
  97493. int nChannel; // 上报数据通道号
  97494. char szResvered[1008]; // 保留字节
  97495. }NET_POWER_SWITCHER_INFO;
  97496. ///@brief 订阅温湿度实时检测数据回调函数原型, lPowerSwitcherHandle为CLIENT_AttachPowerSwitcher接口的返回值
  97497. ///@param[out] lPowerSwitcherHandle 订阅句柄
  97498. ///@param[out] pstuPowerSwitcherInfo 订阅温湿度实时检测数据回调信息
  97499. ///@param[out] dwUser 用户信息
  97500. ///@return void
  97501. typedef void (CALLBACK *fNotifyPowerSwitcher)(LLONG lPowerSwitcherHandle, NET_POWER_SWITCHER_INFO* pstuPowerSwitcherInfo, LDWORD dwUser);
  97502. ///@brief 过滤器
  97503. typedef struct tagNET_ATTACH_POWER_SWITCHER_FILTER_INFO
  97504. {
  97505. int nChannel; // 订阅通道号;-1代表订阅全通道;
  97506. char szResvered[252]; // 保留字节
  97507. }NET_ATTACH_POWER_SWITCHER_FILTER_INFO;
  97508. ///@brief 接口 CLIENT_AttachPowerSwitcher 的输入参数
  97509. typedef struct tagNET_IN_ATTACH_POWER_SWITCHER
  97510. {
  97511. DWORD dwSize; // 此结构体大小,必须赋值
  97512. fNotifyPowerSwitcher cbNotifyPowerSwitcher; // 回调函数,通知电量信息
  97513. LDWORD dwUser; // 用户自定义参数
  97514. int nFilterCount; // 过滤器个数
  97515. NET_ATTACH_POWER_SWITCHER_FILTER_INFO stuFilter[256]; // 过滤器
  97516. }NET_IN_ATTACH_POWER_SWITCHER;
  97517. ///@brief 接口 CLIENT_AttachPowerSwitcher 的输出参数
  97518. typedef struct tagNET_OUT_ATTACH_POWER_SWITCHER
  97519. {
  97520. DWORD dwSize; // 此结构体大小,必须赋值
  97521. }NET_OUT_ATTACH_POWER_SWITCHER;
  97522. ///@brief 订阅电量实时检测数据
  97523. ///@param[in] lLoginID 登录句柄
  97524. ///@param[in] pstInParam 接口输入参数
  97525. ///@param[out]pstOutParam 接口输出参数
  97526. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97527. ///@return 返回订阅句柄
  97528. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachPowerSwitcher(LLONG lLoginID, NET_IN_ATTACH_POWER_SWITCHER* pstInParam, NET_OUT_ATTACH_POWER_SWITCHER* pstOutParam , int nWaitTime);
  97529. ///@brief 退订电量实时检测数据
  97530. ///@param[in] lPowerSwitcherHandle 订阅句柄
  97531. ///@return TRUE表示成功 FALSE表示失败
  97532. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachPowerSwitcher(LLONG lPowerSwitcherHandle);
  97533. /***************************电量数据接口 End*****************************************************/
  97534. ///@brief EAS检测通道信息
  97535. typedef struct tagNET_DETECT_CHANNEL_INFO
  97536. {
  97537. char szName[128]; // EAS检测通道名字
  97538. UINT uDetectChannel; // EAS检测通道号,从0开始
  97539. UINT uDetectChannelState; // EAS检测通道状态:0表示未配置 1表示连接失败 2表示连接成功
  97540. char szResvered[256]; // 保留字节
  97541. }NET_DETECT_CHANNEL_INFO;
  97542. ///@brief EAS通道变化信息
  97543. typedef struct tagNET_ESA_CHANNEL_INFO
  97544. {
  97545. UINT uDeviceChannel; // EAS通道号,从0开始
  97546. UINT uChannelState; // EAS通道状态:0表示连接失败 1表示连接成功
  97547. char szName[128]; // EAS通道名称
  97548. int nDetechInfoSize; // EAS检测通道信息数组大小
  97549. NET_DETECT_CHANNEL_INFO stuDetechInfo[32]; // EAS检测通道信息
  97550. char szSN[32]; // EAS
  97551. char szResvered[256]; // 保留字节
  97552. }NET_ESA_CHANNEL_INFO;
  97553. ///@brief 回调的通道变化信息
  97554. typedef struct tagNET_NOTIFY_EAS_CHANNEL_INFO
  97555. {
  97556. int nInfoSize; // EAS通道信息数组大小
  97557. NET_ESA_CHANNEL_INFO stuInfo[64]; // EAS通道信息
  97558. char szResvered[256]; // 保留字节
  97559. }NET_NOTIFY_EAS_CHANNEL_INFO;
  97560. ///@brief 订阅EAS通道信息回调函数原型, lEASManagerHandle为CLIENT_AttachEASManager接口的返回值
  97561. ///@param[out] lEASManagerHandle 订阅句柄
  97562. ///@param[out] pstuEASNotifyInfo 订阅的EAS通道变化回调信息
  97563. ///@param[out] dwUser 用户信息
  97564. ///@return void
  97565. typedef void (CALLBACK *fNotifyEASManager)(LLONG lEASManagerHandle, NET_NOTIFY_EAS_CHANNEL_INFO* pstuEASNotifyInfo, LDWORD dwUser);
  97566. ///@brief 设备通道信息
  97567. typedef struct tagNET_DEV_CHANNEL_INFO
  97568. {
  97569. int nDevChannel;
  97570. char szResvered[252]; // 保留字节
  97571. }NET_DEV_CHANNEL_INFO;
  97572. ///@brief CLIENT_AttachEASManager接口入参
  97573. typedef struct tagNET_IN_ATTACH_EASMANAGER
  97574. {
  97575. DWORD dwSize; // 此结构体大小,必须赋值
  97576. fNotifyEASManager cbfNotifyEASManager; // 回调函数,通知通道变化信息
  97577. LDWORD dwUser; // 用户自定义参数
  97578. int nInfoSize; // 通道信息结构体大小
  97579. NET_DEV_CHANNEL_INFO stuInfo[64]; // 通道
  97580. }NET_IN_ATTACH_EASMANAGER;
  97581. ///@brief CLIENT_AttachEASManager接口出参
  97582. typedef struct tagNET_OUT_ATTACH_EASMANAGER
  97583. {
  97584. DWORD dwSize; // 此结构体大小,必须赋值
  97585. }NET_OUT_ATTACH_EASMANAGER;
  97586. ///@brief 订阅EAS通道信息
  97587. ///@param[in] lLoginID 登录句柄
  97588. ///@param[in] pstInParam 接口输入参数
  97589. ///@param[out] pstOutParam 接口输出参数
  97590. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97591. ///@return 返回订阅句柄
  97592. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachEASManager(LLONG lLoginID, NET_IN_ATTACH_EASMANAGER* pstInParam, NET_OUT_ATTACH_EASMANAGER* pstOutParam, int nWaitTime);
  97593. ///@brief 退订EAS通道信息
  97594. ///@param[in] lEASManagerHandle 订阅句柄
  97595. ///@return TRUE表示成功 FALSE表示失败
  97596. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachEASManager(LLONG lEASManagerHandle);
  97597. ///@brief CLIENT_GetDeviceChannelInfo接口入参
  97598. typedef struct tagNET_IN_GET_DEV_CHANNEL_INFO
  97599. {
  97600. DWORD dwSize; // 此结构体大小,必须赋值
  97601. int nInfoSize; // 查询的通道号数量
  97602. NET_DEV_CHANNEL_INFO stuInfo[64]; // 查询的通道号
  97603. }NET_IN_GET_DEV_CHANNEL_INFO;
  97604. ///@brief CLIENT_GetDeviceChannelInfo接口出参
  97605. typedef struct tagNET_OUT_GET_DEV_CHANNEL_INFO
  97606. {
  97607. DWORD dwSize; // 此结构体大小,必须赋值
  97608. int nInfoSize; // 查询到的EAS通道信息数组大小
  97609. NET_ESA_CHANNEL_INFO stuInfo[64]; // 查询到的EAS通道信息
  97610. }NET_OUT_GET_DEV_CHANNEL_INFO;
  97611. ///@brief 获取EAS设备通道信息
  97612. ///@param[in] lLoginID 登录句柄
  97613. ///@param[in] pstInParam 接口入参
  97614. ///@param[out] pstOutParam 接口出参
  97615. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97616. ///@return TRUE表示成功 FALSE表示失败
  97617. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEASDevChannelInfo(LLONG lLoginID, NET_IN_GET_DEV_CHANNEL_INFO* pstInParam, NET_OUT_GET_DEV_CHANNEL_INFO* pstOutParam, int nWaitTime);
  97618. ///@brief CLIENT_GetEASCaps接口入参
  97619. typedef struct tagNET_IN_GET_EAS_CAPS
  97620. {
  97621. DWORD dwSize; // 此结构体大小,必须赋值
  97622. }NET_IN_GET_EAS_CAPS;
  97623. ///@brief CLIENT_GetEASCaps接口出参
  97624. typedef struct tagNET_OUT_GET_EAS_CAPS
  97625. {
  97626. DWORD dwSize; // 此结构体大小,必须赋值
  97627. BOOL bSupport; // 是否支持EAS设备接入
  97628. }NET_OUT_GET_EAS_CAPS;
  97629. ///@brief 获取设备是否支持EAS
  97630. ///@param[in] lLoginID 登录句柄
  97631. ///@param[in] pstuInParam 接口入参
  97632. ///@param[out] pstuOutParam 接口出参
  97633. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97634. ///@return TRUE表示成功 FALSE表示失败
  97635. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEASCaps(LLONG lLoginID, NET_IN_GET_EAS_CAPS* pstuInParam, NET_OUT_GET_EAS_CAPS* pstuOutParam, int nWaitTime);
  97636. ///@brief EAS查询参数
  97637. typedef struct tagNET_EAS_SYSTEM_STATUS_REQ_PARAM
  97638. {
  97639. int nDeviceChannel; // EAS通道号,-1表示所有通道
  97640. char szResvered[124]; // 保留字节
  97641. }NET_EAS_SYSTEM_STATUS_REQ_PARAM;
  97642. ///@brief CLIENT_GetEASSystemStatus 接口入参
  97643. typedef struct tagNET_IN_GET_EAS_SYSTEM_STATUS
  97644. {
  97645. DWORD dwSize; // 此结构体大小,必须赋值
  97646. int nEASRequestParamsNum; // EAS查询参数数组设置数量
  97647. NET_EAS_SYSTEM_STATUS_REQ_PARAM stuEASRequestParams[64]; // EAS查询参数
  97648. }NET_IN_GET_EAS_SYSTEM_STATUS;
  97649. ///@brief EAS设备状态信息
  97650. typedef struct tagNET_EAS_EAS_SYSTEM_STATUS
  97651. {
  97652. UINT nDeviceChannel; // EAS通道号,从0开始
  97653. UINT nPowerFrequency; // 电源频率,单位Hz
  97654. char szResvered[124]; // 保留字节
  97655. }NET_EAS_EAS_SYSTEM_STATUS;
  97656. ///@brief CLIENT_GetEASSystemStatus 接口出参
  97657. typedef struct tagNET_OUT_GET_EAS_SYSTEM_STATUS
  97658. {
  97659. DWORD dwSize; // 此结构体大小,必须赋值
  97660. int nEASSystemStatusNum; // EAS设备状态信息数组有效数量
  97661. NET_EAS_EAS_SYSTEM_STATUS stuEASSystemStatus[64]; // EAS设备状态信息
  97662. }NET_OUT_GET_EAS_SYSTEM_STATUS;
  97663. ///@brief 获取EAS设备系统状态
  97664. ///@param[in] lLoginID 登录句柄
  97665. ///@param[in] pstuInParam 接口入参
  97666. ///@param[out] pstuOutParam 接口出参
  97667. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97668. ///@return TRUE表示成功 FALSE表示失败
  97669. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEASSystemStatus(LLONG lLoginID, NET_IN_GET_EAS_SYSTEM_STATUS* pstuInParam, NET_OUT_GET_EAS_SYSTEM_STATUS* pstuOutParam, int nWaitTime);
  97670. ///@brief EAS设备环境数据
  97671. typedef struct tagNET_EAS_ENV_MONITOR_DATA_INFO
  97672. {
  97673. int nDataNum; // 返回的环境数组大小,包含以下字段: nSignal, nNoise, nSnr, nAmp, nRms, nStd.上述字段数组实际大小值总一致
  97674. UINT nSignal[256]; // 标签信号实时值 ,元素大小0~4096
  97675. UINT nNoise[256]; // 环境噪声实时值,元素大小0~4096
  97676. UINT nSnr[256]; // 信噪比实时值,元素大小0~65535
  97677. UINT nAmp[256]; // 幅度实时值,元素大小0~65535
  97678. UINT nRms[256]; // 有效度实时值,元素大小0~65535
  97679. UINT nStd[256]; // 离散度实时值,元素大小0~65535
  97680. char szResvered[256]; // 保留字节
  97681. }NET_EAS_ENV_MONITOR_DATA_INFO;
  97682. ///@brief EAS设备通道数据
  97683. typedef struct tagNET_EAS_ENV_CHANNEL_INFO
  97684. {
  97685. UINT nDeviceChannel; // EAS通道号,从0开始
  97686. UINT nSamplingFrequency; // 数据采样频率,单位ms
  97687. UINT nUploadFrequency; // 数据上传频率,单位ms
  97688. int nEASEnvInfoNum; // 各检测通道环境监测数据数组大小
  97689. NET_EAS_ENV_MONITOR_DATA_INFO stuEASEnvInfo[64]; // 各检测通道环境监测数据
  97690. char szResvered[256]; // 保留字节
  97691. }NET_EAS_ENV_CHANNEL_INFO;
  97692. ///@brief EAS环境检测回调函数参数
  97693. typedef struct tagNET_NOTIFY_EAS_ENV_MONITOR_CHANNEL_INFO
  97694. {
  97695. int nEASEnvChannelInfoNum; // EAS设备通道数据数组大小
  97696. NET_EAS_ENV_CHANNEL_INFO stuEASEnvChannelInfo[64]; // EAS设备通道数据
  97697. char szResvered[256]; // 保留字节
  97698. }NET_NOTIFY_EAS_ENV_MONITOR_CHANNEL_INFO;
  97699. ///@brief 订阅EAS通道信息回调函数原型, lEASEnvMonitorDataHandle 为 CLIENT_AttachEASEnvMonitorData 接口的返回值
  97700. ///@param[out] lEASEnvMonitorDataHandle 订阅句柄
  97701. ///@param[out] pstuEASEnvMonitorDataNotifyInfo 订阅的EAS通道变化回调信息
  97702. ///@param[out] dwUser 用户信息
  97703. ///@return void
  97704. typedef void (CALLBACK *fNotifyEASEnvMonitorData)(LLONG lEASEnvMonitorDataHandle, NET_NOTIFY_EAS_ENV_MONITOR_CHANNEL_INFO* pstuEASEnvMonitorDataNotifyInfo, LDWORD dwUser);
  97705. ///@brief 订阅EAS设备环境检测请求参数
  97706. typedef struct tagNET_EAS_ENV_REQ_PARAM
  97707. {
  97708. int nDeviceChannel; // EAS通道号,-1表示所有通道
  97709. char szResvered[124]; // 保留字节
  97710. }NET_EAS_ENV_REQ_PARAM;
  97711. ///@brief CLIENT_AttachEASEnvMonitorData 接口入参
  97712. typedef struct tagNET_IN_ATTACH_EAS_ESV_MONITOR_DATA
  97713. {
  97714. DWORD dwSize; // 此结构体大小,必须赋值
  97715. fNotifyEASEnvMonitorData cbfNotifyEASEnvMonitorData; // 回调函数,通知通道变化信息
  97716. LDWORD dwUser; // 用户自定义参数
  97717. int ReqParamsNum; // 订阅EAS设备环境检测请求参数数组大小
  97718. NET_EAS_ENV_REQ_PARAM stuReqParams[64]; // 订阅EAS设备环境检测请求参数
  97719. }NET_IN_ATTACH_EAS_ESV_MONITOR_DATA;
  97720. ///@brief CLIENT_AttachEASEnvMonitorData 接口出参
  97721. typedef struct tagNET_OUT_ATTACH_EAS_ESV_MONITOR_DATA
  97722. {
  97723. DWORD dwSize; // 此结构体大小,必须赋值
  97724. }NET_OUT_ATTACH_EAS_ESV_MONITOR_DATA;
  97725. ///@brief 订阅EAS设备通道环境监测数据,这里的环境数据指的是天线本身的工作状态。
  97726. ///@param[in] lLoginID 登录句柄
  97727. ///@param[in] pstInParam 接口输入参数
  97728. ///@param[out] pstOutParam 接口输出参数
  97729. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97730. ///@return 返回订阅句柄
  97731. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachEASEnvMonitorData(LLONG lLoginID, NET_IN_ATTACH_EAS_ESV_MONITOR_DATA* pstInParam, NET_OUT_ATTACH_EAS_ESV_MONITOR_DATA* pstOutParam, int nWaitTime);
  97732. ///@brief 退订EAS设备通道环境监测数据
  97733. ///@param[in] lEASEnvMonitorDataHandle 订阅句柄
  97734. ///@return TRUE表示成功 FALSE表示失败
  97735. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachEASEnvMonitorData(LLONG lEASEnvMonitorDataHandle);
  97736. ///@brief EAS设备报警数据
  97737. typedef struct tagNET_EAS_ALARM_DATA_INFO
  97738. {
  97739. int nFalseAlarmCountNum; // EAS设备通道误报信息数组大小
  97740. UINT nFalseAlarmCount[64]; // EAS设备通道误报信息,只有当 szType=FalseAlarm 时有效,各通道误报次数
  97741. char szResvered[256]; // 保留字节
  97742. }NET_EAS_ALARM_DATA_INFO;
  97743. ///@brief EAS设备通道数据
  97744. typedef struct tagNET_EAS_ALARM_CHANNEL_INFO
  97745. {
  97746. UINT nDeviceChannel; // EAS通道号,从0开始
  97747. char szType[32]; // 报警信息类型 FalseAlarm -- 误报信息
  97748. NET_EAS_ALARM_DATA_INFO stuEASDevAlarmInfo; // 各通道报警数据
  97749. UINT nAlarmCount; // 报警计数,0~255
  97750. UINT nAlarmSignalStrength; // 报警信号强度
  97751. char szResvered[248]; // 保留字节
  97752. }NET_EAS_ALARM_CHANNEL_INFO;
  97753. ///@brief 订阅EAS设备报警信息回调函数参数
  97754. typedef struct tagNET_NOTIFY_EAS_ALARM_INFO
  97755. {
  97756. int nEASDevAlarmChannelInfoNum; // EAS设备通道数据数组大小
  97757. NET_EAS_ALARM_CHANNEL_INFO stuEASDevAlarmChannelInfo[64]; // EAS设备通道数据
  97758. char szResvered[256]; // 保留字节
  97759. }NET_NOTIFY_EAS_ALARM_INFO;
  97760. ///@brief 订阅EAS设备报警信息回调函数原型, lEASDevAlarmInfoHandle 为 CLIENT_AttachEASDevAlarmInfo 接口的返回值
  97761. ///@param[out] lEASDevAlarmInfoHandle 订阅句柄
  97762. ///@param[out] pstuEASNotifyInfo 订阅的EAS设备报警信息回调信息
  97763. ///@param[out] dwUser 用户信息
  97764. ///@return void
  97765. typedef void (CALLBACK *fNotifyEASDevAlarmInfo)(LLONG lEASDevAlarmInfoHandle, NET_NOTIFY_EAS_ALARM_INFO* pstuEASDevAlarmInfoNotifyInfo, LDWORD dwUser);
  97766. ///@brief 订阅EAS设备报警信息请求参数
  97767. typedef struct tagNET_EAS_ALARM_REQ_PARAM
  97768. {
  97769. int nDeviceChannel; // EAS通道号,-1表示所有通道
  97770. int nTypeNum; // 报警信息类型数组第一维长度
  97771. char szType[32][32]; // 报警信息类型 All -- 所有报警信息 FalseAlarm -- 误报信息
  97772. char szResvered[124]; // 保留字节
  97773. }NET_EAS_ALARM_REQ_PARAM;
  97774. ///@brief CLIENT_AttachEASDevAlarmInfo 接口入参
  97775. typedef struct tagNET_IN_ATTACH_EAS_ALARM_INFO
  97776. {
  97777. DWORD dwSize; // 此结构体大小,必须赋值
  97778. fNotifyEASDevAlarmInfo cbfNotifyEASDevAlarmInfo; // 回调函数,通知EAS设备报警信息
  97779. LDWORD dwUser; // 用户自定义参数
  97780. int ReqParamsNum; // 订阅EAS设备报警信息请求参数数组大小
  97781. NET_EAS_ALARM_REQ_PARAM stuReqParams[64]; // 订阅EAS设备报警信息请求参数
  97782. }NET_IN_ATTACH_EAS_ALARM_INFO;
  97783. ///@brief CLIENT_AttachEASDevAlarmInfo 接口出参
  97784. typedef struct tagNET_OUT_ATTACH_EAS_ALARM_INFO
  97785. {
  97786. DWORD dwSize; // 此结构体大小,必须赋值
  97787. }NET_OUT_ATTACH_EAS_ALARM_INFO;
  97788. ///@brief 订阅EAS设备报警信息
  97789. ///@param[in] lLoginID 登录句柄
  97790. ///@param[in] pstInParam 接口输入参数
  97791. ///@param[out] pstOutParam 接口输出参数
  97792. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97793. ///@return 返回订阅句柄
  97794. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachEASDevAlarmInfo(LLONG lLoginID, NET_IN_ATTACH_EAS_ALARM_INFO* pstInParam, NET_OUT_ATTACH_EAS_ALARM_INFO* pstOutParam, int nWaitTime);
  97795. ///@brief 退订EAS设备报警信息
  97796. ///@param[in] lEASDevAlarmInfoHandle 订阅句柄
  97797. ///@return TRUE表示成功 FALSE表示失败
  97798. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachEASDevAlarmInfo(LLONG lEASDevAlarmInfoHandle);
  97799. ///@brief EAS设备通道相位数据
  97800. typedef struct tagNET_EAS_PHASE_CHANNEL_INFO
  97801. {
  97802. UINT nDeviceChannel; // EAS通道号,从0开始
  97803. UINT nPhaseValue; // 相位值,0~120
  97804. UINT nSyncMode; // 相位同步方式 0--上升沿同步 1--下降沿同步
  97805. UINT nSyncResult; // 同相结果 0 -- 同相完成 1 -- 无可同相设备
  97806. char szResvered[256]; // 保留字节
  97807. }NET_EAS_PHASE_CHANNEL_INFO;
  97808. ///@brief 订阅EAS设备相位配置回调函数参数
  97809. typedef struct tagNET_NOTIFY_EAS_PHASE_INFO
  97810. {
  97811. int nEASPhaseChannelInfoNum; // EAS设备通道相位数据数组大小
  97812. NET_EAS_PHASE_CHANNEL_INFO stuEASPhaseChannelInfo[64]; // EAS设备通道相位数据
  97813. char szResvered[256]; // 保留字节
  97814. }NET_NOTIFY_EAS_PHASE_INFO;
  97815. ///@brief 订阅EAS设备相位配置回调函数原型, lEASPhaseConfigHandle 为 CLIENT_AttachEASPhaseConfig 接口的返回值
  97816. ///@param[out] lEASPhaseConfigHandle 订阅句柄
  97817. ///@param[out] pstuEASPhaseConfigNotifyInfo 订阅的EAS设备相位配置信息
  97818. ///@param[out] dwUser 用户信息
  97819. ///@return void
  97820. typedef void (CALLBACK *fNotifyPhaseConfig)(LLONG lEASPhaseConfigHandle, NET_NOTIFY_EAS_PHASE_INFO* pstuEASPhaseConfigNotifyInfo, LDWORD dwUser);
  97821. ///@brief 订阅EAS设备相位配置请求参数
  97822. typedef struct tagNET_EAS_PHASE_REQ_PARAM
  97823. {
  97824. int nDeviceChannel; // EAS通道号,-1表示所有通道
  97825. char szResvered[124]; // 保留字节
  97826. }NET_EAS_PHASE_REQ_PARAM;
  97827. ///@brief CLIENT_AttachEASPhaseConfig 接口入参
  97828. typedef struct tagNET_IN_ATTACH_EAS_PHASE_CONFIG_INFO
  97829. {
  97830. DWORD dwSize; // 此结构体大小,必须赋值
  97831. fNotifyPhaseConfig cbfNotifyPhaseConfig; // 回调函数,通知EAS设备相位配置信息
  97832. LDWORD dwUser; // 用户自定义参数
  97833. int ReqParamsNum; // 订阅EAS设备相位配置请求参数数组大小
  97834. NET_EAS_PHASE_REQ_PARAM stuReqParams[64]; // 订阅EAS设备相位配置请求参数
  97835. }NET_IN_ATTACH_EAS_PHASE_CONFIG_INFO;
  97836. ///@brief CLIENT_AttachEASPhaseConfig 接口出参
  97837. typedef struct tagNET_OUT_ATTACH_EAS_PHASE_CONFIG_INFO
  97838. {
  97839. DWORD dwSize; // 此结构体大小,必须赋值
  97840. }NET_OUT_ATTACH_EAS_PHASE_CONFIG_INFO;
  97841. ///@brief 订阅EAS设备相位配置信息
  97842. ///@param[in] lLoginID 登录句柄
  97843. ///@param[in] pstInParam 接口输入参数
  97844. ///@param[out] pstOutParam 接口输出参数
  97845. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97846. ///@return 返回订阅句柄
  97847. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachEASPhaseConfig(LLONG lLoginID, NET_IN_ATTACH_EAS_PHASE_CONFIG_INFO* pstInParam, NET_OUT_ATTACH_EAS_PHASE_CONFIG_INFO* pstOutParam, int nWaitTime);
  97848. ///@brief 退订EAS设备相位配置信息
  97849. ///@param[in] lEASPhaseConfigHandle 订阅句柄
  97850. ///@return TRUE表示成功 FALSE表示失败
  97851. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachEASPhaseConfig(LLONG lEASPhaseConfigHandle);
  97852. ///@brief EAS设备误报信息查询参数
  97853. typedef struct tagNET_EAS_GET_ALARM_REQ_PARAM
  97854. {
  97855. int nDeviceChannel; // EAS通道号,-1表示所有通道
  97856. int nTypeNum; // 报警信息类型数组大小
  97857. char szType[32][32]; // 报警信息类型 All -- 全部报警信息 FalseAlarm -- 误报信息, AlarmCount -- 报警计数, AlarmSignalAtrength -- 报警信号强度
  97858. char szResvered[128]; // 保留字节
  97859. }NET_EAS_GET_ALARM_REQ_PARAM;
  97860. ///@brief CLIENT_GetEASDevAlarmInfo 接口入参
  97861. typedef struct tagNET_IN_GET_EAS_ALARM_INFO
  97862. {
  97863. DWORD dwSize; // 此结构体大小,必须赋值
  97864. int nEASGetAlarmRequestParamsNum; // EAS设备误报信息查询参数数组大小
  97865. NET_EAS_GET_ALARM_REQ_PARAM stuEASGetAlarmRequestParams[64]; // EAS设备误报信息查询参数
  97866. }NET_IN_GET_EAS_ALARM_INFO;
  97867. ///@brief EAS设备报警数据
  97868. typedef struct tagNET_EAS_ALARM_INFO
  97869. {
  97870. UINT nDeviceChannel; // EAS通道号,从0开始
  97871. char szType[32]; // 报警信息类型 All -- 全部报警信息 FalseAlarm -- 误报信息, AlarmCount -- 报警计数, AlarmSignalAtrength -- 报警信号强度
  97872. NET_EAS_ALARM_DATA_INFO stuEASDevAlarmData; // EAS设备报警数据
  97873. char szResvered[128]; // 保留字节
  97874. }NET_EAS_ALARM_INFO;
  97875. ///@brief CLIENT_GetEASDevAlarmInfo 接口出参
  97876. typedef struct tagNET_OUT_GET_EAS_ALARM_INFO
  97877. {
  97878. DWORD dwSize; // 此结构体大小,必须赋值
  97879. int nEASDevAlarmInfoNum; // EAS设备报警数据数组有效数量
  97880. NET_EAS_ALARM_INFO stuEASDevAlarmInfo[64]; // EAS设备报警数据
  97881. UINT nAlarmCount[64]; // 报警计数,范围: 0~255
  97882. UINT nAlarmSignalStrength[64]; // 报警信号强度
  97883. }NET_OUT_GET_EAS_ALARM_INFO;
  97884. ///@brief 获取EAS设备误报信息
  97885. ///@param[in] lLoginID 登录句柄
  97886. ///@param[in] pstuInParam 接口入参
  97887. ///@param[out] pstuOutParam 接口出参
  97888. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97889. ///@return TRUE表示成功 FALSE表示失败
  97890. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEASDevAlarmInfo(LLONG lLoginID, NET_IN_GET_EAS_ALARM_INFO* pstuInParam, NET_OUT_GET_EAS_ALARM_INFO* pstuOutParam, int nWaitTime);
  97891. ///@brief EAS设备开始相位同步参数
  97892. typedef struct tagNET_EAS_START_EAS_PHASE_SYNC_REQ_PARAM
  97893. {
  97894. int nDeviceChannel; // EAS通道号,-1表示所有通道
  97895. UINT nSyncMode; // 相位同步方式 0 -- 上升沿同步 1-- 下降沿同步
  97896. char szResvered[128]; // 保留字节
  97897. }NET_EAS_START_EAS_PHASE_SYNC_REQ_PARAM;
  97898. ///@brief CLIENT_StartEASPhaseSync 接口入参
  97899. typedef struct tagNET_IN_START_EAS_PHASE_SYNC_INFO
  97900. {
  97901. DWORD dwSize; // 此结构体大小,必须赋值
  97902. int nEASstartPhaseSyncRequestParamsNum; // EAS设备开始相位同步参数数组大小
  97903. NET_EAS_START_EAS_PHASE_SYNC_REQ_PARAM stuEASstartPhaseSyncRequestParams[64]; // EAS设备开始相位同步参数
  97904. }NET_IN_START_EAS_PHASE_SYNC_INFO;
  97905. ///@brief CLIENT_StartEASPhaseSync 接口出参
  97906. typedef struct tagNET_OUT_START_EAS_PHASE_SYNC_INFO
  97907. {
  97908. DWORD dwSize; // 此结构体大小,必须赋值
  97909. }NET_OUT_START_EAS_PHASE_SYNC_INFO;
  97910. ///@brief 开始EAS设备相位同步
  97911. ///@param[in] lLoginID 登录句柄
  97912. ///@param[in] pstuInParam 接口入参
  97913. ///@param[out] pstuOutParam 接口出参
  97914. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97915. ///@return TRUE表示成功 FALSE表示失败
  97916. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartEASPhaseSync(LLONG lLoginID, NET_IN_START_EAS_PHASE_SYNC_INFO* pstuInParam, NET_OUT_START_EAS_PHASE_SYNC_INFO* pstuOutParam, int nWaitTime);
  97917. ///@brief 设置EAS设备相位配置参数
  97918. typedef struct tagNET_SET_EAS_PHASE_CONFIG_REQ_PARAM
  97919. {
  97920. int nDeviceChannel; // EAS通道号,-1表示所有通道
  97921. UINT nPhaseValue; // 相位值,0~120
  97922. char szResvered[128]; // 保留字节
  97923. }NET_SET_EAS_PHASE_CONFIG_REQ_PARAM;
  97924. ///@brief CLIENT_SetEASPhaseConfig 接口入参
  97925. typedef struct tagNET_IN_SET_EAS_PHASE_CONFIG_INFO
  97926. {
  97927. DWORD dwSize; // 此结构体大小,必须赋值
  97928. int nSetEASPhaseConfigRequestParamsNum; // 设置EAS设备相位配置参数数组大小
  97929. NET_SET_EAS_PHASE_CONFIG_REQ_PARAM stuSetEASPhaseConfigRequestParams[64]; // 设置EAS设备相位配置参数
  97930. }NET_IN_SET_EAS_PHASE_CONFIG_INFO;
  97931. ///@brief CLIENT_SetEASPhaseConfig 接口出参
  97932. typedef struct tagNET_OUT_SET_EAS_PHASE_CONFIG_INFO
  97933. {
  97934. DWORD dwSize; // 此结构体大小,必须赋值
  97935. }NET_OUT_SET_EAS_PHASE_CONFIG_INFO;
  97936. ///@brief 设置EAS设备相位配置
  97937. ///@param[in] lLoginID 登录句柄
  97938. ///@param[in] pstuInParam 接口入参
  97939. ///@param[out] pstuOutParam 接口出参
  97940. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97941. ///@return TRUE表示成功 FALSE表示失败
  97942. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetEASPhaseConfig(LLONG lLoginID, NET_IN_SET_EAS_PHASE_CONFIG_INFO* pstuInParam, NET_OUT_SET_EAS_PHASE_CONFIG_INFO* pstuOutParam, int nWaitTime);
  97943. ///@brief EAS设备相位配置信息查询参数
  97944. typedef struct tagNET_EAS_GET_PHASE_CONFIG_REQ_PARAM
  97945. {
  97946. int nDeviceChannel; // EAS通道号,-1表示所有通道
  97947. char szResvered[128]; // 保留字节
  97948. }NET_EAS_GET_PHASE_CONFIG_REQ_PARAM;
  97949. ///@brief CLIENT_GetEASPhaseConfig 接口入参
  97950. typedef struct tagNET_IN_GET_EAS_PHASE_CONFIG_INFO
  97951. {
  97952. DWORD dwSize; // 此结构体大小,必须赋值
  97953. int nEASGetPhaseConfigRequestParamsNum; // EAS设备相位配置查询参数数组大小
  97954. NET_EAS_GET_PHASE_CONFIG_REQ_PARAM stuEASGetPhaseConfigRequestParams[64]; // EAS设备相位配置信息查询参数
  97955. }NET_IN_GET_EAS_PHASE_CONFIG_INFO;
  97956. ///@brief EAS设备相位配置数据
  97957. typedef struct tagNET_EAS_PHASE_CONFIG_INFO
  97958. {
  97959. UINT nDeviceChannel; // EAS通道号,从0开始
  97960. UINT nPhaseValue; // 相位值,0~120
  97961. UINT nSyncMode; // 相位同步方式 0 -- 上升沿同步 1-- 下降沿同步
  97962. char szResvered[128]; // 保留字节
  97963. }NET_EAS_PHASE_CONFIG_INFO;
  97964. ///@brief CLIENT_GetEASPhaseConfig 接口出参
  97965. typedef struct tagNET_OUT_GET_EAS_PHASE_CONFIG_INFO
  97966. {
  97967. DWORD dwSize; // 此结构体大小,必须赋值
  97968. int nEASPhaseConfigInfoNum; // EAS设备相位配置数据数组有效数量
  97969. NET_EAS_PHASE_CONFIG_INFO stuEASPhaseConfigInfo[64]; // EAS设备相位配置数据
  97970. }NET_OUT_GET_EAS_PHASE_CONFIG_INFO;
  97971. ///@brief 获取EAS设备相位配置
  97972. ///@param[in] lLoginID 登录句柄
  97973. ///@param[in] pstuInParam 接口入参
  97974. ///@param[out] pstuOutParam 接口出参
  97975. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  97976. ///@return TRUE表示成功 FALSE表示失败
  97977. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEASPhaseConfig(LLONG lLoginID, NET_IN_GET_EAS_PHASE_CONFIG_INFO* pstuInParam, NET_OUT_GET_EAS_PHASE_CONFIG_INFO* pstuOutParam, int nWaitTime);
  97978. ///@brief 获取EAS设备能力集查询参数
  97979. typedef struct tagNET_EAS_GET_DEVICE_CAPS_REQ_PARAM
  97980. {
  97981. int nDeviceChannel; // EAS通道号,-1表示所有通道
  97982. char szResvered[128]; // 保留字节
  97983. }NET_EAS_GET_DEVICE_CAPS_REQ_PARAM;
  97984. ///@brief CLIENT_GetEASDeviceCaps 接口入参
  97985. typedef struct tagNET_IN_GET_EAS_DEVICE_CAPS_INFO
  97986. {
  97987. DWORD dwSize; // 此结构体大小,必须赋值
  97988. int nEASGetDeviceCapsRequestParamsNum; // 获取EAS设备能力集查询参数数组大小
  97989. NET_EAS_GET_DEVICE_CAPS_REQ_PARAM stuEASGetDeviceCapsRequestParams[64]; // 获取EAS设备能力集查询参数
  97990. }NET_IN_GET_EAS_DEVICE_CAPS_INFO;
  97991. ///@brief EAS设备能力集数据
  97992. typedef struct tagNET_EAS_DEVICE_CAPS_INFO
  97993. {
  97994. UINT nDeviceChannel; // EAS通道号,从0开始
  97995. BOOL bSupportLedColor; // 是否支持待机灯光颜色设置
  97996. UINT nToneNum; // 可设置的报警音频数
  97997. UINT nVolumeMin; // 报警音量最小值
  97998. UINT nVolumeMax; // 报警音量最大值
  97999. char szResvered[116]; // 保留字节
  98000. }NET_EAS_DEVICE_CAPS_INFO;
  98001. ///@brief 支持的报警信息
  98002. typedef enum tagEM_EAS_DEVICE_ALARM_INFO_CAPS
  98003. {
  98004. EM_EAS_DEVICE_ALARM_INFO_UNKNOWN, // 未知
  98005. EM_EAS_DEVICE_ALARM_INFO_ALL, // All:所有的报警信息
  98006. EM_EAS_DEVICE_ALARM_INFO_FALSE_ALARM, // FalseAlarm:误报信息
  98007. EM_EAS_DEVICE_ALARM_INFO_ALARM_COUNT, // AlarmCount:报警计数
  98008. EM_EAS_DEVICE_ALARM_INFO_ALARM_SIGNAL_STRENGTH, // AlarmSignalAtrength:报警信号强度
  98009. }EM_EAS_DEVICE_ALARM_INFO_CAPS;
  98010. ///@brief EAS设备能力集支持的报警信息
  98011. typedef struct tagNET_EAS_DEVICE_ALARM_INFO_CAPS
  98012. {
  98013. int nAlarmInfoCapsCount; // 支持的报警信息个数
  98014. EM_EAS_DEVICE_ALARM_INFO_CAPS emAlarmInfoCaps[32]; // 支持的报警信息: All:所有的报警信息, FalseAlarm:误报信息, AlarmCount:报警计数, AlarmSignalAtrength:报警信号强度
  98015. char szResvered[60]; // 保留字节
  98016. }NET_EAS_DEVICE_ALARM_INFO_CAPS;
  98017. ///@brief CLIENT_GetEASDeviceCaps 接口出参
  98018. typedef struct tagNET_OUT_GET_EAS_DEVICE_CAPS_INFO
  98019. {
  98020. DWORD dwSize; // 此结构体大小,必须赋值
  98021. int nEASDeviceCapsInfoNum; // EAS设备能力集数据数组有效数量
  98022. NET_EAS_DEVICE_CAPS_INFO stuEASDeviceCapsInfo[64]; // EAS设备能力集数据
  98023. NET_EAS_DEVICE_ALARM_INFO_CAPS stuAlarmInfoCaps[64]; // EAS设备支持的报警信息
  98024. }NET_OUT_GET_EAS_DEVICE_CAPS_INFO;
  98025. ///@brief 获取EAS设备能力集
  98026. ///@param[in] lLoginID 登录句柄
  98027. ///@param[in] pstuInParam 接口入参
  98028. ///@param[out] pstuOutParam 接口出参
  98029. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98030. ///@return TRUE表示成功 FALSE表示失败
  98031. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEASDeviceCaps(LLONG lLoginID, NET_IN_GET_EAS_DEVICE_CAPS_INFO* pstuInParam, NET_OUT_GET_EAS_DEVICE_CAPS_INFO* pstuOutParam, int nWaitTime);
  98032. ///@brief CLIENT_SleepingControlGetCaps接口入参
  98033. typedef struct tagNET_IN_SLEEPING_CONTROL_GETCAPS
  98034. {
  98035. DWORD dwSize; // 此结构体大小,必须赋值
  98036. int nChannel; // 通道号,从0开始
  98037. }NET_IN_SLEEPING_CONTROL_GETCAPS;
  98038. ///@brief 设备休眠能力结构体
  98039. typedef struct tagNET_SLEEPING_CONTROL_CAPS
  98040. {
  98041. BOOL bSupport; // 是否支持休眠能力
  98042. int nSleepingControlStrategy; // 休眠控制策略,1:机芯始终上电状态的休眠唤醒, 2:通过机芯上下电方式休眠唤醒, 3:DSP下电休眠唤醒
  98043. char szResvered[1024]; // 保留字节
  98044. }NET_SLEEPING_CONTROL_CAPS;
  98045. ///@brief CLIENT_SleepingControlGetCaps接口出参
  98046. typedef struct tagNET_OUT_SLEEPING_CONTROL_GETCAPS
  98047. {
  98048. DWORD dwSize; // 此结构体大小,必须赋值
  98049. NET_SLEEPING_CONTROL_CAPS stuCaps; // 设备休眠能力
  98050. }NET_OUT_SLEEPING_CONTROL_GETCAPS;
  98051. ///@brief 获取设备休眠能力
  98052. ///@param[in] lLoginID 登录句柄
  98053. ///@param[in] pstInParam 接口入参
  98054. ///@param[out] pstOutParam 接口出参
  98055. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98056. ///@return TRUE表示成功 FALSE表示失败
  98057. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SleepingControlGetCaps(LLONG lLoginID, NET_IN_SLEEPING_CONTROL_GETCAPS* pstInParam, NET_OUT_SLEEPING_CONTROL_GETCAPS* pstOutParam, int nWaitTime);
  98058. /***************************水质检测接口 start***************************************************/
  98059. ///@brief CLIENT_GetWaterDataStatServerCaps 输入参数
  98060. typedef struct tagNET_IN_WATERDATA_STAT_SERVER_GETCAPS_INFO
  98061. {
  98062. DWORD dwSize; // 此结构体大小,必须赋值
  98063. }NET_IN_WATERDATA_STAT_SERVER_GETCAPS_INFO;
  98064. ///@brief 当前是否具备水质检测功能
  98065. typedef enum tagEM_WATERDATA_STAT_SERVER_SUPPORT
  98066. {
  98067. EM_WATERDATA_STAT_SERVER_SUPPORT_UNKNOWN = -1, // 未知
  98068. EM_WATERDATA_STAT_SERVER_SUPPORT_NO, // 不支持
  98069. EM_WATERDATA_STAT_SERVER_SUPPORT_YES, // 支持
  98070. }EM_WATERDATA_STAT_SERVER_SUPPORT;
  98071. ///@brief 是否支持本地存储
  98072. typedef enum tagEM_SUPPORT_LOCALDATA_STORE
  98073. {
  98074. EM_SUPPORT_LOCALDATA_STORE_UNKNOWN = -1, // 未知
  98075. EM_SUPPORT_LOCALDATA_STORE_NO, // 不支持
  98076. EM_SUPPORT_LOCALDATA_STORE_YES, // 支持
  98077. }EM_SUPPORT_LOCALDATA_STORE;
  98078. ///@brief CLIENT_GetWaterDataStatServerCaps 输出参数
  98079. typedef struct tagNET_OUT_WATERDATA_STAT_SERVER_GETCAPS_INFO
  98080. {
  98081. DWORD dwSize; // 此结构体大小,必须赋值
  98082. EM_WATERDATA_STAT_SERVER_SUPPORT emSupport; // 当前是否具备水质检测功能
  98083. EM_SUPPORT_LOCALDATA_STORE emSupportLocalDataStore; // 是否支持本地存储
  98084. }NET_OUT_WATERDATA_STAT_SERVER_GETCAPS_INFO;
  98085. ///@brief CLIENT_GetWaterDataStatServerWaterData 输入参数
  98086. typedef struct tagNET_IN_WATERDATA_STAT_SERVER_GETDATA_INFO
  98087. {
  98088. DWORD dwSize; // 此结构体大小,必须赋值
  98089. int nTypeNum; // 检测类型个数
  98090. EM_WATER_DETECTION_ALARM_TYPE emType[32]; // 检测类型
  98091. }NET_IN_WATERDATA_STAT_SERVER_GETDATA_INFO;
  98092. ///@brief 水质类别,越小越好
  98093. typedef enum tagEM_WATER_QUALITY
  98094. {
  98095. EM_WATER_QUALITY_UNKNOWN, // 未知
  98096. EM_WATER_QUALITY_1, // 1类
  98097. EM_WATER_QUALITY_2, // 2类
  98098. EM_WATER_QUALITY_3, // 3类
  98099. EM_WATER_QUALITY_4, // 4类
  98100. EM_WATER_QUALITY_5, // 5类
  98101. }EM_WATER_QUALITY;
  98102. ///@brief CLIENT_GetWaterDataStatServerWaterData 输出参数
  98103. typedef struct tagNET_OUT_WATERDATA_STAT_SERVER_GETDATA_INFO
  98104. {
  98105. DWORD dwSize; // 此结构体大小,必须赋值
  98106. EM_WATER_QUALITY emQuality; // 水质类别,越小越好
  98107. NET_WATER_DETECTION_UPLOAD_INFO stuUploadInfo; // 水质检测上报数据信息
  98108. int nFlunkTypeNum; // 参数超过阈值类型个数
  98109. EM_WATER_DETECTION_ALARM_TYPE emFlunkType[32]; // 参数超过阈值类型
  98110. }NET_OUT_WATERDATA_STAT_SERVER_GETDATA_INFO;
  98111. ///@brief 水质检测数据查询条件
  98112. typedef struct tagNET_START_FIND_WATERDATA_CONDITION
  98113. {
  98114. NET_TIME_EX stuStartTime; // 开始时间
  98115. EM_WATER_DETECTION_ALARM_TYPE emType[32]; // 检测类型
  98116. int nTypeNum; // 检测类型个数
  98117. int nPresetIDNum; // 预置点个数
  98118. int nPresetID[32]; // 预置点
  98119. NET_TIME_EX stuEndTime; // 结束时间
  98120. char szReserved[256]; // 预留字节
  98121. }NET_START_FIND_WATERDATA_CONDITION;
  98122. ///@brief CLIENT_StartFindWaterDataStatServer 输入参数
  98123. typedef struct tagNET_IN_START_FIND_WATERDATA_STAT_SERVER_INFO
  98124. {
  98125. DWORD dwSize; // 此结构体大小,必须赋值
  98126. NET_START_FIND_WATERDATA_CONDITION stuCondition; // 水质检测数据查询条件
  98127. }NET_IN_START_FIND_WATERDATA_STAT_SERVER_INFO;
  98128. ///@brief CLIENT_StartFindWaterDataStatServer 输出参数
  98129. typedef struct tagNET_OUT_START_FIND_WATERDATA_STAT_SERVER_INFO
  98130. {
  98131. DWORD dwSize; // 此结构体大小,必须赋值
  98132. UINT nToken; // 取到的查询令牌
  98133. UINT nTotalCount; // 符合此次查询条件的结果总条数
  98134. }NET_OUT_START_FIND_WATERDATA_STAT_SERVER_INFO;
  98135. ///@brief CLIENT_DoFindWaterDataStatServer 输入参数
  98136. typedef struct tagNET_IN_DO_FIND_WATERDATA_STAT_SERVER_INFO
  98137. {
  98138. DWORD dwSize; // 此结构体大小,必须赋值
  98139. UINT nToken; // 查询令牌
  98140. UINT nBeginNumber; // 查询起始序号, 表示从beginNumber条记录开始,取count条记录返回
  98141. int nCount; // 每次查询的流量统计条数
  98142. }NET_IN_DO_FIND_WATERDATA_STAT_SERVER_INFO;
  98143. ///@brief 流量统计信息
  98144. typedef struct tagNET_WATERDATA_STAT_SERVER_INFO
  98145. {
  98146. NET_TIME_EX stuStartTime; // 开始时间
  98147. EM_WATER_QUALITY emQuality; // 水质类别
  98148. NET_WATER_DETECTION_UPLOAD_INFO stuUploadInfo; // 水质检测上报数据信息
  98149. char szReserved[256]; // 预留字节
  98150. }NET_WATERDATA_STAT_SERVER_INFO;
  98151. ///@brief CLIENT_DoFindWaterDataStatServer 输出参数
  98152. typedef struct tagNET_OUT_DO_FIND_WATERDATA_STAT_SERVER_INFO
  98153. {
  98154. DWORD dwSize; // 此结构体大小,必须赋值
  98155. UINT nFound; // 查询到的条数
  98156. int nInfoNum; // 流量统计信息个数
  98157. NET_WATERDATA_STAT_SERVER_INFO stuInfo[64]; // 流量统计信息
  98158. }NET_OUT_DO_FIND_WATERDATA_STAT_SERVER_INFO;
  98159. ///@brief CLIENT_StopFindWaterDataStatServer 输入参数
  98160. typedef struct tagNET_IN_STOP_FIND_WATERDATA_STAT_SERVER_INFO
  98161. {
  98162. DWORD dwSize; // 此结构体大小,必须赋值
  98163. UINT nToken; // 查询令牌
  98164. }NET_IN_STOP_FIND_WATERDATA_STAT_SERVER_INFO;
  98165. ///@brief CLIENT_StopFindWaterDataStatServer 输出参数
  98166. typedef struct tagNET_OUT_STOP_FIND_WATERDATA_STAT_SERVER_INFO
  98167. {
  98168. DWORD dwSize; // 此结构体大小,必须赋值
  98169. }NET_OUT_STOP_FIND_WATERDATA_STAT_SERVER_INFO;
  98170. ///@brief 获取水质检测能力
  98171. ///@param[in] lLoginID 登录句柄
  98172. ///@param[in] pstuInParam 接口输入参数
  98173. ///@param[out]pstuOutParam 接口输出参数
  98174. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98175. ///@return TRUE表示成功 FALSE表示失败
  98176. CLIENT_NET_API LLONG CALL_METHOD CLIENT_GetWaterDataStatServerCaps(LLONG lLoginID, NET_IN_WATERDATA_STAT_SERVER_GETCAPS_INFO* pstuInParam, NET_OUT_WATERDATA_STAT_SERVER_GETCAPS_INFO* pstuOutParam, int nWaitTime);
  98177. ///@brief 水质检测实时数据获取
  98178. ///@param[in] lLoginID 登录句柄
  98179. ///@param[in] pstuInParam 接口输入参数
  98180. ///@param[out]pstuOutParam 接口输出参数
  98181. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98182. ///@return TRUE表示成功 FALSE表示失败
  98183. CLIENT_NET_API LLONG CALL_METHOD CLIENT_GetWaterDataStatServerWaterData(LLONG lLoginID, NET_IN_WATERDATA_STAT_SERVER_GETDATA_INFO* pstuInParam, NET_OUT_WATERDATA_STAT_SERVER_GETDATA_INFO* pstuOutParam, int nWaitTime);
  98184. ///@brief 开始水质检测报表数据查询
  98185. ///@param[in] lLoginID 登录句柄
  98186. ///@param[in] pstuInParam 接口输入参数
  98187. ///@param[out]pstuOutParam 接口输出参数
  98188. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98189. ///@return TRUE表示成功 FALSE表示失败
  98190. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindWaterDataStatServer(LLONG lLoginID, NET_IN_START_FIND_WATERDATA_STAT_SERVER_INFO* pstuInParam, NET_OUT_START_FIND_WATERDATA_STAT_SERVER_INFO* pstuOutParam, int nWaitTime);
  98191. ///@brief 水质检测报表数据查询
  98192. ///@param[in] lLoginID 登录句柄
  98193. ///@param[in] pstuInParam 接口输入参数
  98194. ///@param[out]pstuOutParam 接口输出参数
  98195. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98196. ///@return TRUE表示成功 FALSE表示失败
  98197. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DoFindWaterDataStatServer(LLONG lLoginID, NET_IN_DO_FIND_WATERDATA_STAT_SERVER_INFO* pstuInParam, NET_OUT_DO_FIND_WATERDATA_STAT_SERVER_INFO* pstuOutParam, int nWaitTime);
  98198. ///@brief 停止水质检测报表数据查询
  98199. ///@param[in] lLoginID 登录句柄
  98200. ///@param[in] pstuInParam 接口输入参数
  98201. ///@param[out]pstuOutParam 接口输出参数
  98202. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98203. ///@return TRUE表示成功 FALSE表示失败
  98204. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StopFindWaterDataStatServer(LLONG lLoginID, NET_IN_STOP_FIND_WATERDATA_STAT_SERVER_INFO* pstuInParam, NET_OUT_STOP_FIND_WATERDATA_STAT_SERVER_INFO* pstuOutParam, int nWaitTime);
  98205. /***************************水质检测接口 end***************************************************/
  98206. /***************************视频会议MCU会议管理接口 start***************************************************/
  98207. ///@brief 参加会议终端信息
  98208. typedef struct tagNET_VIDEO_MCU_MEMBER_INFO
  98209. {
  98210. char szTerminalId[16]; // 终端Id
  98211. char szName[128]; // 终端名称
  98212. BOOL bAppeared; // 是否出席会议
  98213. BOOL bCreator; // 是否会议创建者
  98214. BOOL bChairman; // 是否会议主席
  98215. BOOL bPresented; // 是否开启演示
  98216. BOOL bMicOpen; // 是否开麦
  98217. char szReserved[1020]; // 预留字节
  98218. }NET_VIDEO_MCU_MEMBER_INFO;
  98219. ///@brief 会议信息
  98220. typedef struct tagNET_VIDEO_MCU_CONFERENCE_INFO
  98221. {
  98222. char szId[16]; // 会议Id,唯一标识会议,随机生成,不可修改
  98223. char szName[128]; // 会议名称
  98224. char szPassword[128]; // 会议明文密码
  98225. char szType[32]; // 会议类型,"Instant":即时会议,"Bespeak":预约会议
  98226. char szState[32]; // 会议状态,"UnStart":未开始,"Meeting":会议中,"Finished":已结束
  98227. NET_TIME_EX stuStartTime; // 会议开始时间
  98228. NET_TIME_EX stuEndTime; // 会议结束时间
  98229. NET_VIDEO_MCU_MEMBER_INFO stuMember[32]; // 参加会议终端信息
  98230. int nMemberNum; // 参加会议终端信息个数
  98231. UINT nTime; // 会议真实时长,单位秒
  98232. char szCreatorId[16]; // 会议创建者Id,,终端创建则传终端Id,MCU创建则传"MCU"
  98233. char szCreatorName[128]; // 会议创建者名称,终端创建则传终端名称,MCU创建则传"MCU"
  98234. char szReserved[1024]; // 预留字节
  98235. }NET_VIDEO_MCU_CONFERENCE_INFO;
  98236. ///@brief CLIENT_CreateVideoMcuConference 输入参数
  98237. typedef struct tagNET_IN_CREATE_VIDEO_MCU_CONFERENCE_INFO
  98238. {
  98239. DWORD dwSize; // 此结构体大小,必须赋值
  98240. NET_VIDEO_MCU_CONFERENCE_INFO stuConference; // 会议信息
  98241. char szHandlers[16]; // 会控管理操作者,终端创建传终端Id,MCU创建传"MCU"
  98242. }NET_IN_CREATE_VIDEO_MCU_CONFERENCE_INFO;
  98243. ///@brief CLIENT_CreateVideoMcuConference 输出参数
  98244. typedef struct tagNET_OUT_CREATE_VIDEO_MCU_CONFERENCE_INFO
  98245. {
  98246. DWORD dwSize; // 此结构体大小,必须赋值
  98247. }NET_OUT_CREATE_VIDEO_MCU_CONFERENCE_INFO;
  98248. ///@brief CLIENT_ApplyVideoMcuConferenceID 输入参数
  98249. typedef struct tagNET_IN_APPLY_VIDEO_MCU_CONFERENCEID_INFO
  98250. {
  98251. DWORD dwSize; // 此结构体大小,必须赋值
  98252. }NET_IN_APPLY_VIDEO_MCU_CONFERENCEID_INFO;
  98253. ///@brief CLIENT_ApplyVideoMcuConferenceID 输出参数
  98254. typedef struct tagNET_OUT_APPLY_VIDEO_MCU_CONFERENCEID_INFO
  98255. {
  98256. DWORD dwSize; // 此结构体大小,必须赋值
  98257. char szId[16]; // 会议Id
  98258. }NET_OUT_APPLY_VIDEO_MCU_CONFERENCEID_INFO;
  98259. ///@brief CLIENT_FinishVideoMcuConference 输入参数
  98260. typedef struct tagNET_IN_FINISH_VIDEO_MCU_CONFERENCE_INFO
  98261. {
  98262. DWORD dwSize; // 此结构体大小,必须赋值
  98263. char szConferenceId[16]; // 会议ID
  98264. char szHandlers[16]; // 会控管理操作者,终端结束传终端Id,MCU结束传"MCU"
  98265. }NET_IN_FINISH_VIDEO_MCU_CONFERENCE_INFO;
  98266. ///@brief CLIENT_FinishVideoMcuConference 输出参数
  98267. typedef struct tagNET_OUT_FINISH_VIDEO_MCU_CONFERENCE_INFO
  98268. {
  98269. DWORD dwSize; // 此结构体大小,必须赋值
  98270. }NET_OUT_FINISH_VIDEO_MCU_CONFERENCE_INFO;
  98271. ///@brief CLIENT_ExitVideoMcuConference 输入参数
  98272. typedef struct tagNET_IN_EXIT_VIDEO_MCU_CONFERENCE_INFO
  98273. {
  98274. DWORD dwSize; // 此结构体大小,必须赋值
  98275. char szConferenceId[16]; // 会议ID
  98276. char szTerminalId[16]; // 退会的终端Id
  98277. char szHandlers[16]; // 会控管理操作者,终端退出传终端Id,MCU退出传"MCU"
  98278. }NET_IN_EXIT_VIDEO_MCU_CONFERENCE_INFO;
  98279. ///@brief CLIENT_ExitVideoMcuConference 输出参数
  98280. typedef struct tagNET_OUT_EXIT_VIDEO_MCU_CONFERENCE_INFO
  98281. {
  98282. DWORD dwSize; // 此结构体大小,必须赋值
  98283. }NET_OUT_EXIT_VIDEO_MCU_CONFERENCE_INFO;
  98284. ///@brief CLIENT_ModifyVideoMcuConference 输入参数
  98285. typedef struct tagNET_IN_MODIFY_VIDEO_MCU_CONFERENCE_INFO
  98286. {
  98287. DWORD dwSize; // 此结构体大小,必须赋值
  98288. NET_VIDEO_MCU_CONFERENCE_INFO stuConference; // 会议信息
  98289. char szHandlers[16]; // 会控管理操作者,终端修改传终端Id,MCU修改传"MCU"
  98290. }NET_IN_MODIFY_VIDEO_MCU_CONFERENCE_INFO;
  98291. ///@brief CLIENT_ModifyVideoMcuConference 输出参数
  98292. typedef struct tagNET_OUT_MODIFY_VIDEO_MCU_CONFERENCE_INFO
  98293. {
  98294. DWORD dwSize; // 此结构体大小,必须赋值
  98295. }NET_OUT_MODIFY_VIDEO_MCU_CONFERENCE_INFO;
  98296. ///@brief CLIENT_OpenMicVideoMcuConference 输入参数
  98297. typedef struct tagNET_IN_OPENMIC_VIDEO_MCU_CONFERENCE_INFO
  98298. {
  98299. DWORD dwSize; // 此结构体大小,必须赋值
  98300. char szConferenceId[16]; // 会议ID
  98301. char szTerminalId[32][16]; // 终端Id,字段为空或者不存在就对会议所有终端有效
  98302. int nTerminalIdNum; // 终端Id个数
  98303. char szHandlers[16]; // 会控管理操作者,终端开启传终端Id,MCU开启传"MCU"
  98304. }NET_IN_OPENMIC_VIDEO_MCU_CONFERENCE_INFO;
  98305. ///@brief CLIENT_OpenMicVideoMcuConference 输出参数
  98306. typedef struct tagNET_OUT_OPENMIC_VIDEO_MCU_CONFERENCE_INFO
  98307. {
  98308. DWORD dwSize; // 此结构体大小,必须赋值
  98309. }NET_OUT_OPENMIC_VIDEO_MCU_CONFERENCE_INFO;
  98310. ///@brief CLIENT_CloseMicVideoMcuConference 输入参数
  98311. typedef struct tagNET_IN_CLOSEMIC_VIDEO_MCU_CONFERENCE_INFO
  98312. {
  98313. DWORD dwSize; // 此结构体大小,必须赋值
  98314. char szConferenceId[16]; // 会议ID
  98315. char szTerminalId[32][16]; // 终端Id,字段为空或者不存在就对会议所有终端有效
  98316. int nTerminalIdNum; // 终端Id个数
  98317. char szHandlers[16]; // 会控管理操作者,终端关闭传终端Id,MCU关闭传"MCU"
  98318. }NET_IN_CLOSEMIC_VIDEO_MCU_CONFERENCE_INFO;
  98319. ///@brief CLIENT_CloseMicVideoMcuConference 输出参数
  98320. typedef struct tagNET_OUT_CLOSEMIC_VIDEO_MCU_CONFERENCE_INFO
  98321. {
  98322. DWORD dwSize; // 此结构体大小,必须赋值
  98323. }NET_OUT_CLOSEMIC_VIDEO_MCU_CONFERENCE_INFO;
  98324. ///@brief CLIENT_GetVideoMcuConference 输入参数
  98325. typedef struct tagNET_IN_GET_VIDEO_MCU_CONFERENCE_INFO
  98326. {
  98327. DWORD dwSize; // 此结构体大小,必须赋值
  98328. char szConferenceId[16]; // 会议Id,为空或者字段不存在时查询所有
  98329. char szTerminalId[16]; // 终端Id,字段为空或者不存在就对会议所有终端有效
  98330. BOOL bIsParticipating; // true查询终端Id正参与的会议,false或字段不在时返回终端Id所有能参与的会议
  98331. }NET_IN_GET_VIDEO_MCU_CONFERENCE_INFO;
  98332. ///@brief CLIENT_GetVideoMcuConference 输出参数
  98333. typedef struct tagNET_OUT_GET_VIDEO_MCU_CONFERENCE_INFO
  98334. {
  98335. DWORD dwSize; // 此结构体大小,必须赋值
  98336. int nConferenceNum; // 会议信息个数
  98337. NET_VIDEO_MCU_CONFERENCE_INFO stuConference[16]; // 会议信息
  98338. }NET_OUT_GET_VIDEO_MCU_CONFERENCE_INFO;
  98339. ///@brief CLIENT_StartQueryVideoMcuConference 输入参数
  98340. typedef struct tagNET_IN_START_QUERY_VIDEO_MCU_CONFERENCE_INFO
  98341. {
  98342. DWORD dwSize; // 此结构体大小,必须赋值
  98343. NET_TIME_EX stuStartTime; // 会议开始时间 字段为空或者不存在就查询所有
  98344. NET_TIME_EX stuEndTime; // 会议结束时间 字段为空或者不存在就查询所有
  98345. }NET_IN_START_QUERY_VIDEO_MCU_CONFERENCE_INFO;
  98346. ///@brief CLIENT_StartQueryVideoMcuConference 输出参数
  98347. typedef struct tagNET_OUT_START_QUERY_VIDEO_MCU_CONFERENCE_INFO
  98348. {
  98349. DWORD dwSize; // 此结构体大小,必须赋值
  98350. int nTotal; // 查询到的会议信息总数
  98351. int nFindId; // 查询Id号
  98352. }NET_OUT_START_QUERY_VIDEO_MCU_CONFERENCE_INFO;
  98353. ///@brief CLIENT_QueryVideoMcuConference 输入参数
  98354. typedef struct tagNET_IN_QUERY_VIDEO_MCU_CONFERENCE_INFO
  98355. {
  98356. DWORD dwSize; // 此结构体大小,必须赋值
  98357. int nFindId; // 查询Id号
  98358. int nOffset; // 开始查询偏移 Offset >=0
  98359. int nCount; // 需要查询的个数 Count >0
  98360. }NET_IN_QUERY_VIDEO_MCU_CONFERENCE_INFO;
  98361. ///@brief CLIENT_QueryVideoMcuConference 输出参数
  98362. typedef struct tagNET_OUT_QUERY_VIDEO_MCU_CONFERENCE_INFO
  98363. {
  98364. DWORD dwSize; // 此结构体大小,必须赋值
  98365. int nConferenceNum; // 会议信息个数
  98366. NET_VIDEO_MCU_CONFERENCE_INFO stuConference[16]; // 会议信息,当查询到的个数小于需要查询的个数时结束查询
  98367. }NET_OUT_QUERY_VIDEO_MCU_CONFERENCE_INFO;
  98368. ///@brief CLIENT_StopQueryVideoMcuConference 输入参数
  98369. typedef struct tagNET_IN_STOP_QUERY_VIDEO_MCU_CONFERENCE_INFO
  98370. {
  98371. DWORD dwSize; // 此结构体大小,必须赋值
  98372. int nFindId; // 查询Id号
  98373. }NET_IN_STOP_QUERY_VIDEO_MCU_CONFERENCE_INFO;
  98374. ///@brief CLIENT_StopQueryVideoMcuConference 输出参数
  98375. typedef struct tagNET_OUT_STOP_QUERY_VIDEO_MCU_CONFERENCE_INFO
  98376. {
  98377. DWORD dwSize; // 此结构体大小,必须赋值
  98378. }NET_OUT_STOP_QUERY_VIDEO_MCU_CONFERENCE_INFO;
  98379. ///@brief 创建会议
  98380. ///@param[in] lLoginID 登录句柄
  98381. ///@param[in] pstuInParam 接口输入参数
  98382. ///@param[out]pstuOutParam 接口输出参数
  98383. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98384. ///@return TRUE表示成功 FALSE表示失败
  98385. CLIENT_NET_API LLONG CALL_METHOD CLIENT_CreateVideoMcuConference(LLONG lLoginID, NET_IN_CREATE_VIDEO_MCU_CONFERENCE_INFO* pstuInParam, NET_OUT_CREATE_VIDEO_MCU_CONFERENCE_INFO* pstuOutParam, int nWaitTime);
  98386. ///@brief 申请会议ID
  98387. ///@param[in] lLoginID 登录句柄
  98388. ///@param[in] pstuInParam 接口输入参数
  98389. ///@param[out]pstuOutParam 接口输出参数
  98390. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98391. ///@return TRUE表示成功 FALSE表示失败
  98392. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ApplyVideoMcuConferenceID(LLONG lLoginID, NET_IN_APPLY_VIDEO_MCU_CONFERENCEID_INFO* pstuInParam, NET_OUT_APPLY_VIDEO_MCU_CONFERENCEID_INFO* pstuOutParam, int nWaitTime);
  98393. ///@brief 结束会议
  98394. ///@param[in] lLoginID 登录句柄
  98395. ///@param[in] pstuInParam 接口输入参数
  98396. ///@param[out]pstuOutParam 接口输出参数
  98397. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98398. ///@return TRUE表示成功 FALSE表示失败
  98399. CLIENT_NET_API LLONG CALL_METHOD CLIENT_FinishVideoMcuConference(LLONG lLoginID, NET_IN_FINISH_VIDEO_MCU_CONFERENCE_INFO* pstuInParam, NET_OUT_FINISH_VIDEO_MCU_CONFERENCE_INFO* pstuOutParam, int nWaitTime);
  98400. ///@brief 退出会议
  98401. ///@param[in] lLoginID 登录句柄
  98402. ///@param[in] pstuInParam 接口输入参数
  98403. ///@param[out]pstuOutParam 接口输出参数
  98404. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98405. ///@return TRUE表示成功 FALSE表示失败
  98406. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ExitVideoMcuConference(LLONG lLoginID, NET_IN_EXIT_VIDEO_MCU_CONFERENCE_INFO* pstuInParam, NET_OUT_EXIT_VIDEO_MCU_CONFERENCE_INFO* pstuOutParam, int nWaitTime);
  98407. ///@brief 修改会议
  98408. ///@param[in] lLoginID 登录句柄
  98409. ///@param[in] pstuInParam 接口输入参数
  98410. ///@param[out]pstuOutParam 接口输出参数
  98411. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98412. ///@return TRUE表示成功 FALSE表示失败
  98413. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ModifyVideoMcuConference(LLONG lLoginID, NET_IN_MODIFY_VIDEO_MCU_CONFERENCE_INFO* pstuInParam, NET_OUT_MODIFY_VIDEO_MCU_CONFERENCE_INFO* pstuOutParam, int nWaitTime);
  98414. ///@brief 开启会议麦克风
  98415. ///@param[in] lLoginID 登录句柄
  98416. ///@param[in] pstuInParam 接口输入参数
  98417. ///@param[out]pstuOutParam 接口输出参数
  98418. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98419. ///@return TRUE表示成功 FALSE表示失败
  98420. CLIENT_NET_API LLONG CALL_METHOD CLIENT_OpenMicVideoMcuConference(LLONG lLoginID, NET_IN_OPENMIC_VIDEO_MCU_CONFERENCE_INFO* pstuInParam, NET_OUT_OPENMIC_VIDEO_MCU_CONFERENCE_INFO* pstuOutParam, int nWaitTime);
  98421. ///@brief 关闭会议麦克风
  98422. ///@param[in] lLoginID 登录句柄
  98423. ///@param[in] pstuInParam 接口输入参数
  98424. ///@param[out]pstuOutParam 接口输出参数
  98425. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98426. ///@return TRUE表示成功 FALSE表示失败
  98427. CLIENT_NET_API LLONG CALL_METHOD CLIENT_CloseMicVideoMcuConference(LLONG lLoginID, NET_IN_CLOSEMIC_VIDEO_MCU_CONFERENCE_INFO* pstuInParam, NET_OUT_CLOSEMIC_VIDEO_MCU_CONFERENCE_INFO* pstuOutParam, int nWaitTime);
  98428. ///@brief 获取未结束会议信息
  98429. ///@param[in] lLoginID 登录句柄
  98430. ///@param[in] pstuInParam 接口输入参数
  98431. ///@param[out]pstuOutParam 接口输出参数
  98432. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98433. ///@return TRUE表示成功 FALSE表示失败
  98434. CLIENT_NET_API LLONG CALL_METHOD CLIENT_GetVideoMcuConference(LLONG lLoginID, NET_IN_GET_VIDEO_MCU_CONFERENCE_INFO* pstuInParam, NET_OUT_GET_VIDEO_MCU_CONFERENCE_INFO* pstuOutParam, int nWaitTime);
  98435. ///@brief 开始查询已结束会议信息
  98436. ///@param[in] lLoginID 登录句柄
  98437. ///@param[in] pstuInParam 接口输入参数
  98438. ///@param[out]pstuOutParam 接口输出参数
  98439. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98440. ///@return TRUE表示成功 FALSE表示失败
  98441. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartQueryVideoMcuConference(LLONG lLoginID, NET_IN_START_QUERY_VIDEO_MCU_CONFERENCE_INFO* pstuInParam, NET_OUT_START_QUERY_VIDEO_MCU_CONFERENCE_INFO* pstuOutParam, int nWaitTime);
  98442. ///@brief 查询历史会议信息
  98443. ///@param[in] lLoginID 登录句柄
  98444. ///@param[in] pstuInParam 接口输入参数
  98445. ///@param[out]pstuOutParam 接口输出参数
  98446. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98447. ///@return TRUE表示成功 FALSE表示失败
  98448. CLIENT_NET_API LLONG CALL_METHOD CLIENT_QueryVideoMcuConference(LLONG lLoginID, NET_IN_QUERY_VIDEO_MCU_CONFERENCE_INFO* pstuInParam, NET_OUT_QUERY_VIDEO_MCU_CONFERENCE_INFO* pstuOutParam, int nWaitTime);
  98449. ///@brief 结束会议查询
  98450. ///@param[in] lLoginID 登录句柄
  98451. ///@param[in] pstuInParam 接口输入参数
  98452. ///@param[out]pstuOutParam 接口输出参数
  98453. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98454. ///@return TRUE表示成功 FALSE表示失败
  98455. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StopQueryVideoMcuConference(LLONG lLoginID, NET_IN_STOP_QUERY_VIDEO_MCU_CONFERENCE_INFO* pstuInParam, NET_OUT_STOP_QUERY_VIDEO_MCU_CONFERENCE_INFO* pstuOutParam, int nWaitTime);
  98456. /***************************视频会议MCU会议管理接口 end****************************************************/
  98457. /***************************视频会议MCU终端管理接口 start****************************************************/
  98458. ///@brief 终端信息
  98459. typedef struct tagNET_TERMINAL_INFO
  98460. {
  98461. char szId[16]; // 终端Id 唯一标识终端 不做修改
  98462. char szName[128]; // 终端名称
  98463. char szPassword[128]; // 终端明文密码
  98464. BOOL bOnline; // 终端是否在线
  98465. char szReserved[256]; // 预留字节
  98466. }NET_TERMINAL_INFO;
  98467. ///@brief CLIENT_AddVideoMcuTerminal 输入参数
  98468. typedef struct tagNET_IN_ADD_VIDEO_MCU_TERMINAL_INFO
  98469. {
  98470. DWORD dwSize; // 此结构体大小,必须赋值
  98471. NET_TERMINAL_INFO stuTerminalInfo; // 终端信息
  98472. }NET_IN_ADD_VIDEO_MCU_TERMINAL_INFO;
  98473. ///@brief CLIENT_AddVideoMcuTerminal 输出参数
  98474. typedef struct tagNET_OUT_ADD_VIDEO_MCU_TERMINAL_INFO
  98475. {
  98476. DWORD dwSize; // 此结构体大小,必须赋值
  98477. }NET_OUT_ADD_VIDEO_MCU_TERMINAL_INFO;
  98478. ///@brief CLIENT_ApplyVideoMcuTerminalID 输入参数
  98479. typedef struct tagNET_IN_APPLY_VIDEO_MCU_TERMINALID_INFO
  98480. {
  98481. DWORD dwSize; // 此结构体大小,必须赋值
  98482. }NET_IN_APPLY_VIDEO_MCU_TERMINALID_INFO;
  98483. ///@brief CLIENT_ApplyVideoMcuTerminalID 输出参数
  98484. typedef struct tagNET_OUT_APPLY_VIDEO_MCU_TERMINALID_INFO
  98485. {
  98486. DWORD dwSize; // 此结构体大小,必须赋值
  98487. char szId[16]; // 随机生成的终端Id
  98488. }NET_OUT_APPLY_VIDEO_MCU_TERMINALID_INFO;
  98489. ///@brief CLIENT_ModifyVideoMcuTerminal 输入参数
  98490. typedef struct tagNET_IN_MODIFY_VIDEO_MCU_TERMINAL_INFO
  98491. {
  98492. DWORD dwSize; // 此结构体大小,必须赋值
  98493. NET_TERMINAL_INFO stuTerminalInfo; // 终端信息
  98494. }NET_IN_MODIFY_VIDEO_MCU_TERMINAL_INFO;
  98495. ///@brief CLIENT_ModifyVideoMcuTerminal 输出参数
  98496. typedef struct tagNET_OUT_MODIFY_VIDEO_MCU_TERMINAL_INFO
  98497. {
  98498. DWORD dwSize; // 此结构体大小,必须赋值
  98499. }NET_OUT_MODIFY_VIDEO_MCU_TERMINAL_INFO;
  98500. ///@brief CLIENT_DeleteVideoMcuTerminal 输入参数
  98501. typedef struct tagNET_IN_DELETE_VIDEO_MCU_TERMINAL_INFO
  98502. {
  98503. DWORD dwSize; // 此结构体大小,必须赋值
  98504. char szId[16]; // 终端Id
  98505. }NET_IN_DELETE_VIDEO_MCU_TERMINAL_INFO;
  98506. ///@brief CLIENT_DeleteVideoMcuTerminal 输出参数
  98507. typedef struct tagNET_OUT_DELETE_VIDEO_MCU_TERMINAL_INFO
  98508. {
  98509. DWORD dwSize; // 此结构体大小,必须赋值
  98510. }NET_OUT_DELETE_VIDEO_MCU_TERMINAL_INFO;
  98511. ///@brief CLIENT_GetAllVideoMcuTerminal 输入参数
  98512. typedef struct tagNET_IN_GETALL_VIDEO_MCU_TERMINAL_INFO
  98513. {
  98514. DWORD dwSize; // 此结构体大小,必须赋值
  98515. }NET_IN_GETALL_VIDEO_MCU_TERMINAL_INFO;
  98516. ///@brief CLIENT_GetAllVideoMcuTerminal 输出参数
  98517. typedef struct tagNET_OUT_GETALL_VIDEO_MCU_TERMINAL_INFO
  98518. {
  98519. DWORD dwSize; // 此结构体大小,必须赋值
  98520. int nTerminalInfoNum; // 终端信息个数
  98521. NET_TERMINAL_INFO stuTerminalInfo[32]; // 终端信息
  98522. }NET_OUT_GETALL_VIDEO_MCU_TERMINAL_INFO;
  98523. ///@brief CLIENT_GetVideoMcuTerminal 输入参数
  98524. typedef struct tagNET_IN_GET_VIDEO_MCU_TERMINAL_INFO
  98525. {
  98526. DWORD dwSize; // 此结构体大小,必须赋值
  98527. char szTerminalId[16]; // 终端 Id
  98528. }NET_IN_GET_VIDEO_MCU_TERMINAL_INFO;
  98529. ///@brief CLIENT_GetVideoMcuTerminal 输出参数
  98530. typedef struct tagNET_OUT_GET_VIDEO_MCU_TERMINAL_INFO
  98531. {
  98532. DWORD dwSize; // 此结构体大小,必须赋值
  98533. NET_TERMINAL_INFO stuTerminalInfo; // 终端信息
  98534. }NET_OUT_GET_VIDEO_MCU_TERMINAL_INFO;
  98535. ///@brief 添加视频会议终端
  98536. ///@param[in] lLoginID 登录句柄
  98537. ///@param[in] pstuInParam 接口输入参数
  98538. ///@param[out]pstuOutParam 接口输出参数
  98539. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98540. ///@return TRUE表示成功 FALSE表示失败
  98541. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AddVideoMcuTerminal(LLONG lLoginID, NET_IN_ADD_VIDEO_MCU_TERMINAL_INFO* pstuInParam, NET_OUT_ADD_VIDEO_MCU_TERMINAL_INFO* pstuOutParam, int nWaitTime);
  98542. ///@brief 申请视频会议终端Id
  98543. ///@param[in] lLoginID 登录句柄
  98544. ///@param[in] pstuInParam 接口输入参数
  98545. ///@param[out]pstuOutParam 接口输出参数
  98546. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98547. ///@return TRUE表示成功 FALSE表示失败
  98548. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ApplyVideoMcuTerminalID(LLONG lLoginID, NET_IN_APPLY_VIDEO_MCU_TERMINALID_INFO* pstuInParam, NET_OUT_APPLY_VIDEO_MCU_TERMINALID_INFO* pstuOutParam, int nWaitTime);
  98549. ///@brief 修改视频会议终端
  98550. ///@param[in] lLoginID 登录句柄
  98551. ///@param[in] pstuInParam 接口输入参数
  98552. ///@param[out]pstuOutParam 接口输出参数
  98553. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98554. ///@return TRUE表示成功 FALSE表示失败
  98555. CLIENT_NET_API LLONG CALL_METHOD CLIENT_ModifyVideoMcuTerminal(LLONG lLoginID, NET_IN_MODIFY_VIDEO_MCU_TERMINAL_INFO* pstuInParam, NET_OUT_MODIFY_VIDEO_MCU_TERMINAL_INFO* pstuOutParam, int nWaitTime);
  98556. ///@brief 删除视频会议终端
  98557. ///@param[in] lLoginID 登录句柄
  98558. ///@param[in] pstuInParam 接口输入参数
  98559. ///@param[out]pstuOutParam 接口输出参数
  98560. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98561. ///@return TRUE表示成功 FALSE表示失败
  98562. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DeleteVideoMcuTerminal(LLONG lLoginID, NET_IN_DELETE_VIDEO_MCU_TERMINAL_INFO* pstuInParam, NET_OUT_DELETE_VIDEO_MCU_TERMINAL_INFO* pstuOutParam, int nWaitTime);
  98563. ///@brief 获取全部视频会议终端信息
  98564. ///@param[in] lLoginID 登录句柄
  98565. ///@param[in] pstuInParam 接口输入参数
  98566. ///@param[out]pstuOutParam 接口输出参数
  98567. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98568. ///@return TRUE表示成功 FALSE表示失败
  98569. CLIENT_NET_API LLONG CALL_METHOD CLIENT_GetAllVideoMcuTerminal(LLONG lLoginID, NET_IN_GETALL_VIDEO_MCU_TERMINAL_INFO* pstuInParam, NET_OUT_GETALL_VIDEO_MCU_TERMINAL_INFO* pstuOutParam, int nWaitTime);
  98570. ///@brief 获取视频会议终端信息
  98571. ///@param[in] lLoginID 登录句柄
  98572. ///@param[in] pstuInParam 接口输入参数
  98573. ///@param[out]pstuOutParam 接口输出参数
  98574. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98575. ///@return TRUE表示成功 FALSE表示失败
  98576. CLIENT_NET_API LLONG CALL_METHOD CLIENT_GetVideoMcuTerminal(LLONG lLoginID, NET_IN_GET_VIDEO_MCU_TERMINAL_INFO* pstuInParam, NET_OUT_GET_VIDEO_MCU_TERMINAL_INFO* pstuOutParam, int nWaitTime);
  98577. /***************************视频会议MCU终端管理接口 end****************************************************/
  98578. /***************************精准客流统计Start***************************************************/
  98579. ///@brief 区域内分时人数
  98580. typedef struct tagNET_CLUSTER_INFO
  98581. {
  98582. NET_TIME stuStartTime; // 该条记录开始时间
  98583. NET_TIME stuEndTime; // 该条记录开始时间
  98584. TP_U64 nTotalNum; // 区域人数
  98585. }NET_CLUSTER_INFO;
  98586. ///@brief 报表详细数据
  98587. typedef struct tagNET_CLUSTER_RESULT_DETAIL
  98588. {
  98589. char szAreaName[64]; // 区域名
  98590. int nAreaID; // 区域ID
  98591. NET_CLUSTER_INFO stuClusterInfo[300]; // 报表详细数据
  98592. int nClusterInfoNum; // 报表详细数据的有效个数
  98593. }NET_CLUSTER_RESULT_DETAIL;
  98594. ///@brief 聚档结果报表
  98595. typedef struct tagNET_CLUSTER_RESULT_INFO
  98596. {
  98597. char szRuleType[64]; // 上报的数据报表类型
  98598. NET_CLUSTER_RESULT_DETAIL stuClusterResultDetail[50]; // 报表详细数据,最大值50
  98599. int nClusterResultDetailNum; // 报表详细数据的有效个数
  98600. TP_U64 nCustomerBatchTotal; // 返回的人数今日批次总数
  98601. int nBatchNo; // 上报记录的批次号
  98602. int nTotal; // 当前批次总记录数
  98603. int nIndex; // 当前记录
  98604. char szReserved[256]; // 保留字节
  98605. }NET_CLUSTER_RESULT_INFO;
  98606. ///@brief 回调聚档报表
  98607. typedef struct tagNET_CLUSTER_RESULT
  98608. {
  98609. NET_CLUSTER_RESULT_INFO stuClusterResultInfo; // 聚档结果报表
  98610. char szReserved[256]; // 保留字节
  98611. }NET_CLUSTER_RESULT;
  98612. ///@brief 接口 CLIENT_AttachClusterResult回调函数
  98613. typedef void (CALLBACK *fNotifyClusterResult)(LLONG lClusterResultHandle, NET_CLUSTER_RESULT* pstuClusterResult, LDWORD dwUser);
  98614. ///@brief 接口 CLIENT_AttachClusterResult 的输入参数
  98615. typedef struct tagNET_IN_ATTACH_CLUSTER_RESULT
  98616. {
  98617. DWORD dwSize; // 此结构体大小,必须赋值
  98618. fNotifyClusterResult cbNotifyClusterResult; // 回调聚档报表函数
  98619. LDWORD dwUser; // 用户自定义参数
  98620. }NET_IN_ATTACH_CLUSTER_RESULT;
  98621. ///@brief 接口 CLIENT_AttachClusterResult 的输出参数
  98622. typedef struct tagNET_OUT_ATTACH_CLUSTER_RESULT
  98623. {
  98624. DWORD dwSize; // 此结构体大小,必须赋值
  98625. }NET_OUT_ATTACH_CLUSTER_RESULT;
  98626. ///@brief 订阅聚档报表结果
  98627. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachClusterResult(LLONG lLoginID, NET_IN_ATTACH_CLUSTER_RESULT* pstInParam, NET_OUT_ATTACH_CLUSTER_RESULT* pstOutParam , int nWaitTime);
  98628. ///@brief 取消订阅聚档报表结果,lClusterResultHandle 为 CLIENT_AttachClusterResult 返回的句柄
  98629. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachClusterResult(LLONG lClusterResultHandle);
  98630. ///@brief 区域绑定信息
  98631. typedef struct tagNET_CLUSTER_AREA_INFO
  98632. {
  98633. int nAreaID; // 区域绑定信息的个数
  98634. int nChannelNum; // 通道编号的有效个数
  98635. int nChannels[128]; // 该区域包含的通道编号
  98636. char szAreaName[64]; // 区域名称
  98637. char szReserved[256]; // 保留字节
  98638. }NET_CLUSTER_AREA_INFO;
  98639. ///@brief 批次统计规则信息
  98640. typedef struct tagNET_CLUSTER_BATCH_RULE
  98641. {
  98642. int nAppearTimes; // 同时出现次数
  98643. int nAppearInterval; // 出现的时间间隔
  98644. char szReserved[256]; // 保留字节
  98645. }NET_CLUSTER_BATCH_RULE;
  98646. ///@brief 营业时间
  98647. typedef struct tagNET_CLUSTER_BUSINESS_HOUR
  98648. {
  98649. int nBusinessStart; // 营业开始时间(24小时制)
  98650. int nBusinessEnd; // 营业结束时间(24小时制)
  98651. int nBusinessStartMinute; // 营业开始时间颗粒度可设置成分钟(配合BusinessStart使用)
  98652. int nBusinessEndMinute; // 营业结束时间颗粒度可设置成分钟(配合BusinessEnd使用)
  98653. char szReserved[248]; // 保留字节
  98654. }NET_CLUSTER_BUSINESS_HOUR;
  98655. ///@brief 粒度类型
  98656. typedef enum tagEM_CLUSTER_GRANULARITY_TYPE
  98657. {
  98658. EM_CLUSTER_GRANULARITY_TYPE_UNKNOWN, // 未知
  98659. EM_CLUSTER_GRANULARITY_TYPE_MINUTE, // 分钟粒度
  98660. EM_CLUSTER_GRANULARITY_TYPE_HOUR, // 小时颗粒度
  98661. }EM_CLUSTER_GRANULARITY_TYPE;
  98662. ///@brief 报表统计颗粒度
  98663. typedef struct tagNET_GRANULARITY_INFO
  98664. {
  98665. EM_CLUSTER_GRANULARITY_TYPE emGranularity; // 粒度类型
  98666. int nCycle; // 与emGranularity结合使用,如emGranularity为EM_GRANULARITY_TYPE_MINUTE, Cycle值为5,表示以5分钟统计周期上报数据,上层限制最小单位5分钟
  98667. char szReserved[256]; // 保留字节
  98668. }NET_GRANULARITY_INFO;
  98669. ///@brief 接口 CLIENT_SetClusterRule 的输入参数
  98670. typedef struct tagNET_IN_SET_CLUSTER_RULE
  98671. {
  98672. DWORD dwSize; // 此结构体大小,必须赋值
  98673. char szRuleType[32]; // 区分类型: "BusiniessHour"时,取营业开始结束时间。 "AreaInfo"时,更新区域信息。 "BatchRule"时,取BatchRuler人数批次统计规则信息。 "GranularityInfo"时,取GranularityInfo上报颗粒度信息
  98674. NET_CLUSTER_AREA_INFO* pstuAreaInfo; // 区域绑定信息, 用户分配内存,大小为sizeof(NET_CLUSTER_AREA_INFO)*nNumAreaInfoNum
  98675. int nNumAreaInfoNum; // 区域绑定信息的个数, 最大值1024
  98676. NET_CLUSTER_BATCH_RULE stuBatchRule; // 批次统计规则信息
  98677. NET_CLUSTER_BUSINESS_HOUR stuBusinessHour; // 营业时间
  98678. NET_GRANULARITY_INFO stuGranularityInfo; // 报表统计颗粒度
  98679. }NET_IN_SET_CLUSTER_RULE;
  98680. ///@brief 接口 CLIENT_SetClusterRule 的输出参数
  98681. typedef struct tagNET_OUT_SET_CLUSTER_RULE
  98682. {
  98683. DWORD dwSize; // 此结构体大小,必须赋值
  98684. int nState; // 状态码: 0为成功今日生效,1隔天生效,2为参数不合法, -1其他未知原因失败
  98685. }NET_OUT_SET_CLUSTER_RULE;
  98686. ///@brief 设置客流聚档相关配置
  98687. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetClusterRule(LLONG lLoginID, NET_IN_SET_CLUSTER_RULE* pstInParam, NET_OUT_SET_CLUSTER_RULE* pstOutParam , int nWaitTime);
  98688. ///@brief 查询条件
  98689. typedef struct tagNET_CLUSTER_CONDITION
  98690. {
  98691. NET_TIME stuDate; // 查询的记录时间,已当天营业开始时间为准
  98692. char szRuleType[32]; // 查询的类型, "DailyClusterReport" 每日聚档数据
  98693. int nAreaIDNum; // 区域ID的个数, 最大为50
  98694. int nAreaID[50]; // 区域ID, 若包含-1,则认为查询全区域,否则不超过50条
  98695. char szReserved[256]; // 保留字节
  98696. }NET_CLUSTER_CONDITION;
  98697. ///@brief 接口 CLIENT_StartFindNumberStatCluster 的输入参数
  98698. typedef struct tagNET_IN_START_FIND_CLUSTER
  98699. {
  98700. DWORD dwSize; // 此结构体大小,必须赋值
  98701. NET_CLUSTER_CONDITION stuCondition; // 查询条件
  98702. }NET_IN_START_FIND_CLUSTER;
  98703. ///@brief 接口 CLIENT_StartFindNumberStatCluster 的输出参数
  98704. typedef struct tagNET_OUT_START_FIND_CLUSTER
  98705. {
  98706. DWORD dwSize; // 此结构体大小,必须赋值
  98707. int nToken; // 取到的查询令牌
  98708. int nTotalCount; // 符合此次查询结构的总条数
  98709. }NET_OUT_START_FIND_CLUSTER;
  98710. ///@brief 开始查询已归档的历史数据
  98711. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartFindNumberStatCluster(LLONG lLoginID, NET_IN_START_FIND_CLUSTER* pstInParam, NET_OUT_START_FIND_CLUSTER* pstOutParam , int nWaitTime);
  98712. ///@brief 接口 CLIENT_DoFindNumberStatCluster 的输入参数
  98713. typedef struct tagNET_IN_DO_FIND_CLUSTER
  98714. {
  98715. DWORD dwSize; // 此结构体大小,必须赋值
  98716. int nToken; // 取到的查询令牌
  98717. int nBeginNumber; // 查询开始序列号
  98718. int nCount; // 查询的记录条数(单次最多50)
  98719. }NET_IN_DO_FIND_CLUSTER;
  98720. ///@brief 接口 CLIENT_DoFindNumberStatCluster 的输出参数
  98721. typedef struct tagNET_OUT_DO_FIND_CLUSTER
  98722. {
  98723. DWORD dwSize; // 此结构体大小,必须赋值
  98724. char szRuleType[64]; // 聚档结果报表
  98725. int nFound; // 查询到的记录条数,单次最多50
  98726. TP_U64 nBatchTotal; // 今日统计区域内总批次数
  98727. NET_CLUSTER_RESULT_DETAIL* pstuClusterResultDetail; // 人数聚档报表结果(按区域纬度),用户分配内存,大小为sizeof(NET_CLUSTER_RESULT_DETAIL)*nClusterResultDetailNum
  98728. int nClusterResultDetailNum; // 人数聚档报表结果的个数, 最大值为50
  98729. int nRetClusterResultDetailNum; // 返回的人数聚档报表结果的有效个数, 单次最多50
  98730. }NET_OUT_DO_FIND_CLUSTER;
  98731. ///@brief 获取查询结果已归档的历史数据
  98732. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindNumberStatCluster(LLONG lLoginID, NET_IN_DO_FIND_CLUSTER* pstInParam, NET_OUT_DO_FIND_CLUSTER* pstOutParam , int nWaitTime);
  98733. ///@brief 接口 CLIENT_StopFindNumberStatCluster 的输入参数
  98734. typedef struct tagNET_IN_STOP_FIND_CLUSTER
  98735. {
  98736. DWORD dwSize; // 此结构体大小,必须赋值
  98737. int nToken; // 分配的令牌
  98738. }NET_IN_STOP_FIND_CLUSTER;
  98739. ///@brief 接口 CLIENT_StopFindNumberStatCluster 的输出参数
  98740. typedef struct tagNET_OUT_STOP_FIND_CLUSTER
  98741. {
  98742. DWORD dwSize; // 此结构体大小,必须赋值
  98743. }NET_OUT_STOP_FIND_CLUSTER;
  98744. ///@brief 停止查询
  98745. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindNumberStatCluster(LLONG lLoginID, NET_IN_STOP_FIND_CLUSTER* pstInParam, NET_OUT_STOP_FIND_CLUSTER* pstOutParam , int nWaitTime);
  98746. ///@brief 查询条件
  98747. typedef struct tagNET_CLUSTER_DETAIL_CONDITION
  98748. {
  98749. int nClusterDate; // 聚档周期Key, 一次只能查询一个聚档周期内的数据,必填.与开始结束时间取交集
  98750. BOOL bIsNeedProfileID; // 是否需要过滤ProfileID
  98751. int nProfileID; // 聚档结果ID,如果不带该字段或为空,则默认不过滤ProfileID
  98752. char szReserved[256]; // 保留字节
  98753. }NET_CLUSTER_DETAIL_CONDITION;
  98754. ///@brief 接口 CLIENT_StartFindDetailNumberStatCluster 的输入参数
  98755. typedef struct tagNET_IN_START_FIND_DETAIL_CLUSTER
  98756. {
  98757. DWORD dwSize; // 此结构体大小,必须赋值
  98758. NET_CLUSTER_DETAIL_CONDITION stuCondition; // 查询条件
  98759. }NET_IN_START_FIND_DETAIL_CLUSTER;
  98760. ///@brief 接口 CLIENT_StartFindDetailNumberStatCluster 的输出参数
  98761. typedef struct tagNET_OUT_START_FIND_DETAIL_CLUSTER
  98762. {
  98763. DWORD dwSize; // 此结构体大小,必须赋值
  98764. int nToken; // 取到的查询令牌
  98765. UINT nCount; // 记录总数
  98766. NET_TIME_EX stuClusterBeginTime; // 查询该天的营业开始时间
  98767. NET_TIME_EX stuClusterEndTime; // 查询该天的营业结束时间
  98768. }NET_OUT_START_FIND_DETAIL_CLUSTER;
  98769. ///@brief 区分报表查询, 单独实现一套全量查询数据接口
  98770. ///@param[in] lLoginID 登录句柄
  98771. ///@param[in] pstInParam 接口输入参数
  98772. ///@param[out] pstOutParam 接口输出参数
  98773. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98774. ///@return TRUE表示成功 FALSE表示失败
  98775. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartFindDetailNumberStatCluster(LLONG lLoginID, NET_IN_START_FIND_DETAIL_CLUSTER* pstInParam, NET_OUT_START_FIND_DETAIL_CLUSTER* pstOutParam , int nWaitTime);
  98776. ///@brief 接口 CLIENT_DoFindDetailNumberStatCluster 的输入参数
  98777. typedef struct tagNET_IN_DO_FIND_DETAIL_CLUSTER
  98778. {
  98779. DWORD dwSize; // 此结构体大小,必须赋值
  98780. int nToken; // start接口返回的token, token保存的数量有限, 未stop的会在连接销毁时或队列满时被释放, 再用同一token访问会导致失败
  98781. UINT nStartIndex; // 查询记录的开始偏移
  98782. UINT nCount; // 查询的记录数,单次不超过1024
  98783. }NET_IN_DO_FIND_DETAIL_CLUSTER;
  98784. ///@brief 查询返回的记录信息
  98785. typedef struct tagNET_CLUSTER_DETAIL_FIND_INFO
  98786. {
  98787. INT64 nRcNo; // 设备端数据库ID
  98788. char szTrackID[40]; // 人员记录的唯一Key, 取32位uuid, 实际有效长度32, 由于最后一位取'\0', 数组长度扩展为40
  98789. INT64 nProfileID; // 聚档结果ID, 对应平台的sessionID, -1及小于0的代表无效记录
  98790. INT64 nChannel; // 抓拍通道号
  98791. int nAge; // 年龄, 参照人体按照年龄段上报, 0.unknow 未知, 1.child 儿童, 2.young 青年, 3.adult 成年, 4.old 老年
  98792. int nGender; // 性别 0.Unknow 未知, 1.male 男, 2.female 女, 3.other 其他
  98793. int nStaffType; // 是否为员工类,算法上报, -1 非该类, 0 未知, 1 是员工类
  98794. NET_TIME_EX stuEventTime; // 事件发生的时间
  98795. int nHumanState; // 人员的经过属性, 0 进, 1 出, 2 过
  98796. char szEmotion[20]; // 表情
  98797. char szReserved[44]; // 保留字节
  98798. }NET_CLUSTER_DETAIL_FIND_INFO;
  98799. ///@brief 接口 CLIENT_DoFindDetailNumberStatCluster 的输出参数
  98800. typedef struct tagNET_OUT_DO_FIND_DETAIL_CLUSTER
  98801. {
  98802. DWORD dwSize; // 此结构体大小,必须赋值
  98803. UINT nFound; // 实际查询返回的记录数
  98804. int nFindInfoRealNum; // 返回记录实际条数
  98805. NET_CLUSTER_DETAIL_FIND_INFO stuClusterFindInfo[1024]; // 返回的记录,单次不超过1024
  98806. }NET_OUT_DO_FIND_DETAIL_CLUSTER;
  98807. ///@brief 分批查询全量记录
  98808. ///@param[in] lLoginID 登录句柄
  98809. ///@param[in] pstInParam 接口输入参数
  98810. ///@param[out] pstOutParam 接口输出参数
  98811. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98812. ///@return TRUE表示成功 FALSE表示失败
  98813. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindDetailNumberStatCluster(LLONG lLoginID, NET_IN_DO_FIND_DETAIL_CLUSTER* pstInParam, NET_OUT_DO_FIND_DETAIL_CLUSTER* pstOutParam , int nWaitTime);
  98814. ///@brief 接口 CLIENT_StopFindDetailNumberStatCluster 的输入参数
  98815. typedef struct tagNET_IN_STOP_FIND_DETAIL_CLUSTER_INFO
  98816. {
  98817. DWORD dwSize; // 此结构体大小,必须赋值
  98818. int nToken; // start接口返回的token, token仅会保存
  98819. }NET_IN_STOP_FIND_DETAIL_CLUSTER_INFO;
  98820. ///@brief 接口 CLIENT_StopFindDetailNumberStatCluster 的输出参数
  98821. typedef struct tagNET_OUT_STOP_FIND_DETAIL_CLUSTER_INFO
  98822. {
  98823. DWORD dwSize; // 此结构体大小,必须赋值
  98824. }NET_OUT_STOP_FIND_DETAIL_CLUSTER_INFO;
  98825. ///@brief 停止查询
  98826. ///@param[in] lLoginID 登录句柄
  98827. ///@param[in] pstInParam 接口输入参数
  98828. ///@param[out] pstOutParam 接口输出参数
  98829. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98830. ///@return TRUE表示成功 FALSE表示失败
  98831. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindDetailNumberStatCluster(LLONG lLoginID, NET_IN_STOP_FIND_DETAIL_CLUSTER_INFO* pstInParam, NET_OUT_STOP_FIND_DETAIL_CLUSTER_INFO* pstOutParam , int nWaitTime);
  98832. ///@brief 查询排序方式
  98833. typedef enum tagEM_SMD_ORDER_TYPE
  98834. {
  98835. EM_SMD_ORDER_TYPE_UNKNOWN, // 未知
  98836. EM_SMD_ORDER_TYPE_ASCORDER, // 升序
  98837. EM_SMD_ORDER_TYPE_DESORDER, // 降序
  98838. }EM_SMD_ORDER_TYPE;
  98839. ///@brief 查询条件
  98840. typedef struct tagNET_SMD_DATA_CONDITION
  98841. {
  98842. int nChannel; // 通道号,-1表示查询所有通道
  98843. int nChannelNum; // 通道号数组数量,为0时nChannel字段有效,非0时nChannels字段有效
  98844. int nChannels[128]; // 通道号数组,从0开始Channel与Channels字段至少需要有一个,一般不应该都存在,如果都存在,以Channels为准
  98845. EM_SMD_RECORD_TYPE emSmdRecordType[8]; // 需要查询的SMD录像类型
  98846. int nSmdRecordTypeNum; // 需要查询的SMD录像类型个数
  98847. EM_SMD_ORDER_TYPE emOrder; // 查询排序方式
  98848. NET_TIME stuStartTime; // 开始时间
  98849. NET_TIME stuEndTime; // 结束时间
  98850. char szReserved[256]; // 保留字节
  98851. }NET_SMD_DATA_CONDITION;
  98852. ///@brief 接口 CLIENT_StartFindSMDData 的输入参数
  98853. typedef struct tagNET_IN_START_FIND_SMD_DATA
  98854. {
  98855. DWORD dwSize; // 结构体大小
  98856. NET_SMD_DATA_CONDITION stuCondition; // 查询条件
  98857. }NET_IN_START_FIND_SMD_DATA;
  98858. ///@brief 接口 CLIENT_StartFindSMDData 的输出参数
  98859. typedef struct tagNET_OUT_START_FIND_SMD_DATA
  98860. {
  98861. DWORD dwSize; // 此结构体大小,必须赋值
  98862. int nToken; // 返回查询id
  98863. int nCount; // 查询到的总条数
  98864. }NET_OUT_START_FIND_SMD_DATA;
  98865. ///@brief 开始查询SMD数据
  98866. ///@param[in] lLoginID 登录句柄
  98867. ///@param[in] pstuInParam 接口输入参数
  98868. ///@param[out] pstuOutParam 接口输出参数
  98869. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98870. ///@return TRUE表示成功 FALSE表示失败
  98871. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartFindSMDData(LLONG lLoginID, const NET_IN_START_FIND_SMD_DATA* pstuInParam, NET_OUT_START_FIND_SMD_DATA* pstuOutParam , int nWaitTime);
  98872. ///@brief 接口 CLIENT_DoFindSMDData 的输入参数
  98873. typedef struct tagNET_IN_DO_FIND_SMD_DATA
  98874. {
  98875. DWORD dwSize; // 此结构体大小
  98876. int nToken; // 查询id
  98877. int nOffset; // 开始查询的位置偏移
  98878. int nCount; // 查询条数,单次不超过1024
  98879. }NET_IN_DO_FIND_SMD_DATA;
  98880. ///@brief 查询返回的记录信息
  98881. typedef struct tagNET_SMD_DATA_INFO
  98882. {
  98883. int nChannel; // 通道号,从0开始
  98884. EM_SMD_RECORD_TYPE emSmdRecordType; // 录像类型
  98885. NET_TIME stuStartTime; // 开始时间
  98886. NET_TIME stuEndTime; // 结束时间
  98887. char szReserved[64]; // 保留字节
  98888. }NET_SMD_DATA_INFO;
  98889. ///@brief 接口 CLIENT_DoFindSMDData 的输出参数
  98890. typedef struct tagNET_OUT_DO_FIND_SMD_DATA
  98891. {
  98892. DWORD dwSize; // 结构体大小
  98893. int nFindInfoNum; // 返回记录实际条数
  98894. NET_SMD_DATA_INFO stuSMDDataInfo[1024]; // 返回的记录,单次不超过1024
  98895. }NET_OUT_DO_FIND_SMD_DATA;
  98896. ///@brief 分批查询SMD数据
  98897. ///@param[in] lLoginID 登录句柄
  98898. ///@param[in] pstuInParam 接口输入参数
  98899. ///@param[out] pstuOutParam 接口输出参数
  98900. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98901. ///@return TRUE表示成功 FALSE表示失败
  98902. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindSMDData(LLONG lLoginID, const NET_IN_DO_FIND_SMD_DATA* pstuInParam, NET_OUT_DO_FIND_SMD_DATA* pstuOutParam , int nWaitTime);
  98903. ///@brief 接口 CLIENT_StopFindSMDData 的输入参数
  98904. typedef struct tagNET_IN_STOP_FIND_SMD_DATA
  98905. {
  98906. DWORD dwSize; // 此结构体大小,必须赋值
  98907. int nToken; // start接口返回的token, token仅会保存
  98908. }NET_IN_STOP_FIND_SMD_DATA;
  98909. ///@brief 接口 CLIENT_StopFindSMDData 的输出参数
  98910. typedef struct tagNET_OUT_STOP_FIND_SMD_DATA
  98911. {
  98912. DWORD dwSize; // 此结构体大小,必须赋值
  98913. }NET_OUT_STOP_FIND_SMD_DATA;
  98914. ///@brief 停止查询
  98915. ///@param[in] lLoginID 登录句柄
  98916. ///@param[in] pstuInParam 接口输入参数
  98917. ///@param[out] pstuOutParam 接口输出参数
  98918. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98919. ///@return TRUE表示成功 FALSE表示失败
  98920. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindSMDData(LLONG lLoginID, const NET_IN_STOP_FIND_SMD_DATA* pstuInParam, NET_OUT_STOP_FIND_SMD_DATA* pstuOutParam , int nWaitTime);
  98921. ///@brief 接口 CLIENT_GetClusterState 的输入参数
  98922. typedef struct tagNET_IN_GET_CLUSTER_STATE_INFO
  98923. {
  98924. DWORD dwSize; // 此结构体大小,必须赋值
  98925. int nClusterDate; // 非必选, 当包含该字段时查对应日期的聚档状态, 否则返回最近一次的状态
  98926. }NET_IN_GET_CLUSTER_STATE_INFO;
  98927. ///@brief 接口 CLIENT_GetClusterState 的输出参数
  98928. typedef struct tagNET_OUT_GET_CLUSTER_STATE_INFO
  98929. {
  98930. DWORD dwSize; // 此结构体大小,必须赋值
  98931. int nClusterState; // 当前聚档状态 1.已完成. 2.进行中 3.聚档失败
  98932. NET_TIME_EX stuDealTime; // 记录更新时间,已设备本地时间为准
  98933. int nClusterData; // 聚档触发时间, 按照年月日记录, 作为聚档的唯一key, 单设备每日只有一条聚档记录.如20220530则表示在20220530当日已经聚档
  98934. int nClusterType; // 上次聚档类型: 1.自动每日聚档 2.平台下发手动聚档 3.手动测试触发 4.聚档主动失败重试
  98935. }NET_OUT_GET_CLUSTER_STATE_INFO;
  98936. ///@brief 平台主动获取设备聚档状态
  98937. ///@param[in] lLoginID 登录句柄
  98938. ///@param[in] pstInParam 接口输入参数
  98939. ///@param[out] pstOutParam 接口输出参数
  98940. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  98941. ///@return TRUE表示成功 FALSE表示失败
  98942. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetClusterState(LLONG lLoginID, NET_IN_GET_CLUSTER_STATE_INFO* pstInParam, NET_OUT_GET_CLUSTER_STATE_INFO* pstOutParam , int nWaitTime);
  98943. /***************************精准客流统计End***************************************************/
  98944. /***************************智能卡接口Start***************************************************/
  98945. ///@brief CLIENT_GetChipUsageInfo 接口输入参数
  98946. typedef struct tagNET_IN_GET_CHIP_USAGE_INFO
  98947. {
  98948. DWORD dwSize; // 结构体大小
  98949. char szchip[16]; // 指定子卡Id, 为All时表示获取所有智能卡的运行情况
  98950. } NET_IN_GET_CHIP_USAGE_INFO;
  98951. ///@brief 智能卡功能状态
  98952. typedef enum tagEM_CHIP_USAGE_FUNCTION_STATE
  98953. {
  98954. EM_CHIP_USAGE_FUNCTION_STATE_UNKNWON = 0, // 未知
  98955. EM_CHIP_USAGE_FUNCTION_STATE_COMPRESS, // 正在进行智能压缩
  98956. EM_CHIP_USAGE_FUNCTION_STATE_INTELLI, // 正在进行智能分析
  98957. EM_CHIP_USAGE_FUNCTION_STATE_COMBINATION, // 正在进行智能分析和智能压缩
  98958. EM_CHIP_USAGE_FUNCTION_STATE_SWITCHTOCOMPRESS, // 正在切换到智能压缩功能
  98959. EM_CHIP_USAGE_FUNCTION_STATE_SWITCHTOINTELLI, // 正在切换到智能分析功能
  98960. EM_CHIP_USAGE_FUNCTION_STATE_SWITCHTOCOMBINA, // 正在切换到混合模式
  98961. EM_CHIP_USAGE_FUNCTION_STATE_ERROR, // 智能卡错误不可用
  98962. } EM_CHIP_USAGE_FUNCTION_STATE;
  98963. ///@brief 智能卡信息
  98964. typedef struct tagNET_CHIP_USAGE_INFO
  98965. {
  98966. char szchip[16]; // 指定子卡Id, 为All时表示获取所有智能卡的运行情况
  98967. EM_CHIP_USAGE_FUNCTION_STATE emFunctionalState; // 智能卡功能状态
  98968. UINT nCompressUsagePercent; // 智能压缩功能运行使用情况,压缩能力利用百分比单位:%
  98969. int nVideoChannel[128]; // 智能分析功能运行使用情况,智能卡上正在进行智能分析的本地通道号
  98970. int nVideoChannelNum; // 智能卡上正在进行智能分析的本地通道号个数
  98971. char szReserved[512]; // 预留字节
  98972. } NET_CHIP_USAGE_INFO;
  98973. ///@brief CLIENT_GetChipUsageInfo 接口输出参数
  98974. typedef struct tagNET_OUT_GET_CHIP_USAGE_INFO
  98975. {
  98976. DWORD dwSize; // 结构体大小
  98977. int nChipUsageInfoNum; // 智能卡个数
  98978. NET_CHIP_USAGE_INFO stuChipUsageInfo[64]; // 智能卡信息
  98979. } NET_OUT_GET_CHIP_USAGE_INFO;
  98980. ///@brief 获取智能卡的运行使用情况
  98981. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetChipUsageInfo(LLONG lLoginID, const NET_IN_GET_CHIP_USAGE_INFO *pInParam, NET_OUT_GET_CHIP_USAGE_INFO *pOutParam, int nWaitTime);
  98982. ///@brief CLIENT_GetPeripheralChipStateByID 接口输入参数
  98983. typedef struct tagNET_IN_GET_CHIP_STATE_BYID_INFO
  98984. {
  98985. DWORD dwSize; // 结构体大小
  98986. int nListNum; // List数组个数
  98987. char szList[32][16]; // nListNum为1 list[0]为"All"时表示获取全部从片状态
  98988. } NET_IN_GET_CHIP_STATE_BYID_INFO;
  98989. ///@brief 从片状态
  98990. typedef enum tagEM_CHIP_STATE
  98991. {
  98992. EM_CHIP_STATE_UNKNWON = 0, // 未知
  98993. EM_CHIP_STATE_NORMAL, // 正常
  98994. EM_CHIP_STATE_EXCEPTION, // 异常
  98995. EM_CHIP_STATE_NOTRUNNING, // 未运行
  98996. } EM_CHIP_STATE;
  98997. ///@brief 卡片状态信息
  98998. typedef struct tagNET_CHIP_STATE_INFO
  98999. {
  99000. char szChip[16]; // 从片信息
  99001. EM_CHIP_STATE emChipState; // 从片状态
  99002. char szReserved[128]; // 预留字节
  99003. } NET_CHIP_STATE_INFO;
  99004. ///@brief CLIENT_GetPeripheralChipStateByID 接口输出参数
  99005. typedef struct tagNET_OUT_GET_CHIP_STATE_BYID_INFO
  99006. {
  99007. DWORD dwSize; // 结构体大小
  99008. int nChipStateInfoNum; // 卡片状态信息个数
  99009. NET_CHIP_STATE_INFO stuChipStateInfo[32]; // 卡片状态信息
  99010. } NET_OUT_GET_CHIP_STATE_BYID_INFO;
  99011. ///@brief 获取从片状态
  99012. ///@param[in] lLoginID: 登录句柄
  99013. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  99014. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  99015. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  99016. ///@return TRUE表示成功 FALSE表示失败
  99017. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPeripheralChipStateByID(LLONG lLoginID, const NET_IN_GET_CHIP_STATE_BYID_INFO *pstuInParam, NET_OUT_GET_CHIP_STATE_BYID_INFO *pstuOutParam, int nWaitTime);
  99018. /***************************智能卡接口End***************************************************/
  99019. /***************************车牌库接口Start***************************************************/
  99020. ///@brief CLIENT_CreateGroupForVehicleRegisterDB 接口输入参数
  99021. typedef struct tagNET_IN_CREATE_GROUP_FOR_VEHICLE_REG_DB
  99022. {
  99023. DWORD dwSize; // 结构体大小
  99024. char szGroupName[128]; // 车辆组名称
  99025. char szGroupDetail[256]; // 车辆组备注信息
  99026. int nGroupType; // 车辆组类型,0:代表允许,1:代表禁止
  99027. } NET_IN_CREATE_GROUP_FOR_VEHICLE_REG_DB;
  99028. ///@brief CLIENT_CreateGroupForVehicleRegisterDB 接口输出参数
  99029. typedef struct tagNET_OUT_CREATE_GROUP_FOR_VEHICLE_REG_DB
  99030. {
  99031. DWORD dwSize; // 结构体大小
  99032. char szGroupID[64]; // 车辆组标识
  99033. } NET_OUT_CREATE_GROUP_FOR_VEHICLE_REG_DB;
  99034. ///@brief 创建车辆组
  99035. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CreateGroupForVehicleRegisterDB(LLONG lLoginID, const NET_IN_CREATE_GROUP_FOR_VEHICLE_REG_DB *pInParam, NET_OUT_CREATE_GROUP_FOR_VEHICLE_REG_DB *pOutParam, int nWaitTime);
  99036. ///@brief CLIENT_DeleteGroupFromVehicleRegisterDB 接口输入参数
  99037. typedef struct tagNET_IN_DELETE_GROUP_FROM_VEHICLE_REG_DB
  99038. {
  99039. DWORD dwSize; // 结构体大小
  99040. char szGroupID[64]; // 车辆组标识, 为空时表示删除全部车辆组
  99041. } NET_IN_DELETE_GROUP_FROM_VEHICLE_REG_DB;
  99042. ///@brief CLIENT_DeleteGroupFromVehicleRegisterDB 接口输出参数
  99043. typedef struct tagNET_OUT_DELETE_GROUP_FROM_VEHICLE_REG_DB
  99044. {
  99045. DWORD dwSize; // 结构体大小
  99046. } NET_OUT_DELETE_GROUP_FROM_VEHICLE_REG_DB;
  99047. ///@brief 删除车辆组
  99048. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteGroupFromVehicleRegisterDB(LLONG lLoginID, const NET_IN_DELETE_GROUP_FROM_VEHICLE_REG_DB *pInParam, NET_OUT_DELETE_GROUP_FROM_VEHICLE_REG_DB *pOutParam, int nWaitTime);
  99049. ///@brief CLIENT_MultiAppendToVehicleRegisterDB 接口输入参数
  99050. typedef struct tagNET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB
  99051. {
  99052. DWORD dwSize; // 结构体大小
  99053. int nVehicleNum; // 车辆个数
  99054. NET_VEHICLE_INFO* pstuVehicles; // 车辆信息, 用户分配内存,大小为sizeof(NET_VEHICLE_INFO)*nVehicleNum
  99055. BOOL bReplace; // 遇到相同记录是否覆盖, TRUE覆盖, FALSE跳过
  99056. } NET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB;
  99057. ///@brief 车牌库操作错误码信息
  99058. typedef enum tagEM_VEHICLE_REG_DB_OPERATOR_ERRCODE
  99059. {
  99060. EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_UNKNWON = 0, // 未知
  99061. EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_SUCCESS, // 成功
  99062. EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_DB_ERROR, // 数据库操作失败
  99063. EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_NOT_EXIST, // 车牌库不存在
  99064. EM_VEHICLE_REG_DB_OPERATOR_ERRCODE_EXCEED_MAX_NUM, // 超出车牌库数量限制
  99065. } EM_VEHICLE_REG_DB_OPERATOR_ERRCODE;
  99066. ///@brief CLIENT_MultiAppendToVehicleRegisterDB 接口输出参数
  99067. typedef struct tagNET_OUT_MULTI_APPEND_TO_VEHICLE_REG_DB
  99068. {
  99069. DWORD dwSize; // 结构体大小
  99070. UINT nErrCodeNum; // 错误码个数, 逻辑上该数量跟NET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB中的nVehicleNum保持一致
  99071. UINT nRetErrCodeNum; // 返回的错误码数量
  99072. EM_VEHICLE_REG_DB_OPERATOR_ERRCODE* pemErrCodes; // 错误码信息, 用户分配内存,大小为sizeof(EM_VEHICLE_REG_DB_OPERATOR_ERRCODE)*nErrCodeNum
  99073. } NET_OUT_MULTI_APPEND_TO_VEHICLE_REG_DB;
  99074. ///@brief 向车牌库添加车辆信息
  99075. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MultiAppendToVehicleRegisterDB(LLONG lLoginID, const NET_IN_MULTI_APPEND_TO_VEHICLE_REG_DB *pInParam, NET_OUT_MULTI_APPEND_TO_VEHICLE_REG_DB *pOutParam, int nWaitTime);
  99076. ///@brief 删除车牌库中的车辆 过滤条件
  99077. typedef struct tagNET_DELETE_VEHICLE_CONDITION_INFO
  99078. {
  99079. char szPlateCountry[4]; // 车辆所在国家,2字节,符合ISO3166规范
  99080. char szPlateNumber[64]; // 车牌号码
  99081. int nVehicleType; // 车型(轿车、卡车等)
  99082. // 001 巡逻车
  99083. // 002 交警车辆
  99084. // 003 消防车
  99085. // 004 单兵
  99086. // 005 其他警车
  99087. // 006 其他设备
  99088. // 020 政府车辆
  99089. // 031 校车
  99090. // 032 运钞车
  99091. // 033 客运车辆
  99092. // 034 公交车
  99093. // 035 出租车
  99094. // 036 危险品车辆
  99095. int nBrand; // 车辆车标,需要通过映射表得到真正的车标.同卡口事件的CarLogoIndex
  99096. NET_COLOR_RGBA stuVehicleColor; // 车色 第一个元素表示红色分量值; 第二个元素表示绿色分量值; 第三个元素表示蓝色分量值;
  99097. // 注意:第四个元素不再表示透明度分量,而用来表示车色字段是否是一个有效的过滤条件,0 - 无效的过滤条件,非0 - 有效的过滤条件
  99098. char szOwnerName[64]; // 车主名称
  99099. char szPersonID[32]; // 车主证件号码,工号,或其他编号
  99100. char szPhoneNo[128]; // 车主电话号码
  99101. char szEmail[32]; // 车主电子邮箱
  99102. char szHomeAddress[128]; // 车主家庭地址(IVSS需求)
  99103. BYTE bReserved[512];
  99104. }NET_DELETE_VEHICLE_CONDITION_INFO;
  99105. ///@brief CLIENT_DeleteByConditionFromVehicleRegisterDB 接口输入参数
  99106. typedef struct tagNET_IN_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB
  99107. {
  99108. DWORD dwSize; // 结构体大小
  99109. char szGroupID[64]; // 车辆组标识
  99110. NET_DELETE_VEHICLE_CONDITION_INFO stuDelCondition; // 删除车辆的过滤条件
  99111. DWORD dwUIDCnt; // 不删除的车辆列表有效个数
  99112. char szUIDList[1024][32]; // 不删除的车辆列表
  99113. } NET_IN_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB;
  99114. ///@brief CLIENT_DeleteByConditionFromVehicleRegisterDB 接口输出参数
  99115. typedef struct tagNET_OUT_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB
  99116. {
  99117. DWORD dwSize; // 结构体大小
  99118. } NET_OUT_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB;
  99119. ///@brief 按条件删除车牌库中的车牌
  99120. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteByConditionFromVehicleRegisterDB(LLONG lLoginID, const NET_IN_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB *pInParam, NET_OUT_DEL_BY_CONDITION_FROM_VEHICLE_REG_DB *pOutParam, int nWaitTime);
  99121. ///@brief 车辆组信息
  99122. typedef struct tagNET_VEHICLE_GROUP_INFO
  99123. {
  99124. char szGroupID[64]; // 车辆组标识
  99125. char szGroupName[128]; // 车辆组名称
  99126. char szGroupDetail[256]; // 车辆组备注信息
  99127. int nGroupType; // 车辆组类型,0:未知 1:禁止列表 2:允许列表
  99128. char szReserved[512]; // 保留字段
  99129. }NET_VEHICLE_GROUP_INFO;
  99130. ///@brief CLIENT_ModifyGroupForVehicleRegisterDB 接口输入参数
  99131. typedef struct tagNET_IN_MODIFY_GROUP_FOR_VEHICLE_REG_DB
  99132. {
  99133. DWORD dwSize; // 结构体大小
  99134. NET_VEHICLE_GROUP_INFO stuGroupInfo; // 车辆组信息
  99135. } NET_IN_MODIFY_GROUP_FOR_VEHICLE_REG_DB;
  99136. ///@brief CLIENT_ModifyGroupForVehicleRegisterDB 接口输出参数
  99137. typedef struct tagNET_OUT_MODIFY_GROUP_FOR_VEHICLE_REG_DB
  99138. {
  99139. DWORD dwSize; // 结构体大小
  99140. } NET_OUT_MODIFY_GROUP_FOR_VEHICLE_REG_DB;
  99141. ///@brief 修改车辆组
  99142. ///@param[in] lLoginID 登录句柄
  99143. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  99144. ///@param[out] pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  99145. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99146. ///@return TRUE表示成功 FALSE表示失败
  99147. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyGroupForVehicleRegisterDB(LLONG lLoginID, const NET_IN_MODIFY_GROUP_FOR_VEHICLE_REG_DB *pstuInParam, NET_OUT_MODIFY_GROUP_FOR_VEHICLE_REG_DB *pstuOutParam, int nWaitTime);
  99148. ///@brief CLIENT_FindGroupFormVehicleRegisterDB 接口输入参数
  99149. typedef struct tagNET_IN_FIND_GROUP_FROM_VEHICLE_REG_DB
  99150. {
  99151. DWORD dwSize; // 结构体大小
  99152. char szGroupID[64]; // 组ID,为空表示查找全部车辆组信息
  99153. } NET_IN_FIND_GROUP_FROM_VEHICLE_REG_DB;
  99154. ///@brief 查找返回的车辆组信息
  99155. typedef struct tagNET_VEHICLE_GROUP_FOUND_INFO
  99156. {
  99157. char szGroupID[64]; // 车辆组标识
  99158. char szGroupName[128]; // 车辆组名称
  99159. char szGroupDetail[256]; // 车辆组备注信息
  99160. int nGroupType; // 车辆组类型,0:未知 1:禁止列表 2:允许列表
  99161. int nGroupSize; // 当前组内车辆数
  99162. int nChannels[1024]; // 当前组绑定到的视频通道号列表,未和任何视频通道关联为[-1]
  99163. int nChannelsNum; // 返回视频通道号列表个数
  99164. char szReserved[508]; // 保留字段
  99165. }NET_VEHICLE_GROUP_FOUND_INFO;
  99166. ///@brief CLIENT_FindGroupFormVehicleRegisterDB 接口输出参数
  99167. typedef struct tagNET_OUT_FIND_GROUP_FROM_VEHICLE_REG_DB
  99168. {
  99169. DWORD dwSize; // 结构体大小
  99170. int nGroupListNum; // 返回的车辆组数量
  99171. NET_VEHICLE_GROUP_FOUND_INFO stuGroupList[128]; //返回的车辆组信息
  99172. } NET_OUT_FIND_GROUP_FROM_VEHICLE_REG_DB;
  99173. ///@brief 查找车辆组信息
  99174. ///@param[in] lLoginID 登录句柄
  99175. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  99176. ///@param[out] pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  99177. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99178. ///@return TRUE表示成功 FALSE表示失败
  99179. CLIENT_NET_API BOOL CALL_METHOD CLIENT_FindGroupFormVehicleRegisterDB(LLONG lLoginID, const NET_IN_FIND_GROUP_FROM_VEHICLE_REG_DB *pstuInParam, NET_OUT_FIND_GROUP_FROM_VEHICLE_REG_DB *pstuOutParam, int nWaitTime);
  99180. ///@brief CLIENT_ModifyVehicleForVehicleRegisterDB 接口输入参数
  99181. typedef struct tagNET_IN_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB
  99182. {
  99183. DWORD dwSize; // 结构体大小
  99184. NET_VEHICLE_INFO stuVehicleInfo; // 车辆信息
  99185. } NET_IN_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB;
  99186. ///@brief CLIENT_ModifyVehicleForVehicleRegisterDB 接口输出参数
  99187. typedef struct tagNET_OUT_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB
  99188. {
  99189. DWORD dwSize; // 结构体大小
  99190. } NET_OUT_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB;
  99191. ///@brief 修改车辆信息
  99192. ///@param[in] lLoginID 登录句柄
  99193. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  99194. ///@param[out] pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  99195. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99196. ///@return TRUE表示成功 FALSE表示失败
  99197. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyVehicleForVehicleRegisterDB(LLONG lLoginID, const NET_IN_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB *pstuInParam, NET_OUT_MODIFY_VEHICLE_FOR_VEHICLE_REG_DB *pstuOutParam, int nWaitTime);
  99198. ///@brief CLIENT_DeleteVehicleFromVehicleRegisterDB 接口输入参数
  99199. typedef struct tagNET_IN_DELETE_VEHICLE_FROM_VEHICLE_REG_DB
  99200. {
  99201. DWORD dwSize; // 结构体大小
  99202. UINT nUID; // 车辆唯一标识符
  99203. char szGroupID[64]; // 车辆组ID
  99204. char szPlateNumber[64]; // 车牌
  99205. } NET_IN_DELETE_VEHICLE_FROM_VEHICLE_REG_DB;
  99206. ///@brief CLIENT_DeleteVehicleFromVehicleRegisterDB 接口输出参数
  99207. typedef struct tagNET_OUT_DELETE_VEHICLE_FROM_VEHICLE_REG_DB
  99208. {
  99209. DWORD dwSize; // 结构体大小
  99210. } NET_OUT_DELETE_VEHICLE_FROM_VEHICLE_REG_DB;
  99211. ///@brief 删除车辆信息
  99212. ///@param[in] lLoginID 登录句柄
  99213. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  99214. ///@param[out] pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  99215. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99216. ///@return TRUE表示成功 FALSE表示失败
  99217. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeleteVehicleFromVehicleRegisterDB(LLONG lLoginID, const NET_IN_DELETE_VEHICLE_FROM_VEHICLE_REG_DB *pstuInParam, NET_OUT_DELETE_VEHICLE_FROM_VEHICLE_REG_DB *pstuOutParam, int nWaitTime);
  99218. ///@brief CLIENT_StartFindVehicleRegisterDB 接口输入参数
  99219. typedef struct tagNET_IN_START_FIND_VEHICLE_REG_DB
  99220. {
  99221. DWORD dwSize; // 结构体大小
  99222. NET_VEHICLE_INFO stuVehicleInfo; // 车辆信息
  99223. } NET_IN_START_FIND_VEHICLE_REG_DB;
  99224. ///@brief CLIENT_StartFindVehicleRegisterDB 接口输出参数
  99225. typedef struct tagNET_OUT_START_FIND_VEHICLE_REG_DB
  99226. {
  99227. DWORD dwSize; // 结构体大小
  99228. UINT nToken; // 取到的查询令牌
  99229. int nTotalCount; // 符合此次查询条件的结果总条数
  99230. } NET_OUT_START_FIND_VEHICLE_REG_DB;
  99231. ///@brief 向指定注册库查询车辆
  99232. ///@param[in] lLoginID 登录句柄
  99233. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  99234. ///@param[out] pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  99235. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99236. ///@return TRUE表示成功 FALSE表示失败
  99237. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartFindVehicleRegisterDB(LLONG lLoginID, const NET_IN_START_FIND_VEHICLE_REG_DB *pstuInParam, NET_OUT_START_FIND_VEHICLE_REG_DB *pstuOutParam, int nWaitTime);
  99238. ///@brief 车辆查询条件
  99239. typedef struct tagNET_FIND_VEHICLE_CONDITION
  99240. {
  99241. UINT nToken; // 查询令牌
  99242. UINT nBeginNumber; // 查询起始序号 表示从beginNumber条记录开始,取count条记录返回;0<=beginNumber<= totalCount-1
  99243. int nCount; // 每次获取的条数
  99244. char szReserved[128]; // 保留字段
  99245. } NET_FIND_VEHICLE_CONDITION;
  99246. ///@brief CLIENT_DoFindVehicleRegisterDB 接口输入参数
  99247. typedef struct tagNET_IN_DO_FIND_VEHICLE_REG_DB
  99248. {
  99249. DWORD dwSize; // 结构体大小
  99250. NET_FIND_VEHICLE_CONDITION stuCondition; // 查询条件
  99251. } NET_IN_DO_FIND_VEHICLE_REG_DB;
  99252. ///@brief CLIENT_DoFindVehicleRegisterDB 接口输出参数
  99253. typedef struct tagNET_OUT_DO_FIND_VEHICLE_REG_DB
  99254. {
  99255. DWORD dwSize; // 结构体大小
  99256. int nCarCandidateNum; // 候选车辆数量
  99257. NET_CAR_CANDIDATE_INFO stuCarCandidate[128]; // 候选车辆数据
  99258. int nFound; // 查询到的条数
  99259. } NET_OUT_DO_FIND_VEHICLE_REG_DB;
  99260. ///@brief 获取车辆查询结果信息
  99261. ///@param[in] lLoginID 登录句柄
  99262. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  99263. ///@param[out] pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  99264. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99265. ///@return TRUE表示成功 FALSE表示失败
  99266. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindVehicleRegisterDB(LLONG lLoginID, const NET_IN_DO_FIND_VEHICLE_REG_DB *pstuInParam, NET_OUT_DO_FIND_VEHICLE_REG_DB *pstuOutParam, int nWaitTime);
  99267. ///@brief CLIENT_StopFindVehicleRegisterDB 接口输入参数
  99268. typedef struct tagNET_IN_STOP_FIND_VEHICLE_REG_DB
  99269. {
  99270. DWORD dwSize; // 结构体大小
  99271. UINT nToken; // 查询令牌
  99272. } NET_IN_STOP_FIND_VEHICLE_REG_DB;
  99273. ///@brief CLIENT_StopFindVehicleRegisterDB 接口输出参数
  99274. typedef struct tagNET_OUT_STOP_FIND_VEHICLE_REG_DB
  99275. {
  99276. DWORD dwSize; // 结构体大小
  99277. } NET_OUT_STOP_FIND_VEHICLE_REG_DB;
  99278. ///@brief 结束车辆查询
  99279. ///@param[in] lLoginID 登录句柄
  99280. ///@param[in] pstuInParam 接口输入参数, 内存资源由用户申请和释放
  99281. ///@param[out] pstuOutParam 接口输出参数, 内存资源由用户申请和释放
  99282. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99283. ///@return TRUE表示成功 FALSE表示失败
  99284. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopFindVehicleRegisterDB(LLONG lLoginID, const NET_IN_STOP_FIND_VEHICLE_REG_DB *pstuInParam, NET_OUT_STOP_FIND_VEHICLE_REG_DB *pstuOutParam, int nWaitTime);
  99285. /***************************车牌库接口End***************************************************/
  99286. /***************************设备日志接口Start***************************************************/
  99287. ///@brief 文件信息
  99288. typedef struct tagNET_PREPARE_EXPORT_FILEINFO
  99289. {
  99290. char szFileName[128]; // 文件名
  99291. char szReserverd[256]; // 预留字节
  99292. }NET_PREPARE_EXPORT_FILEINFO;
  99293. ///@brief 文件信息数组
  99294. typedef struct tagNET_PREPARE_EXPORT_INFO
  99295. {
  99296. NET_PREPARE_EXPORT_FILEINFO stuFileInfo[256]; // 文件信息,包括core文件或syslog文件,单次最多导出256个文件
  99297. int nFileInfoNum; // 文件信息个数
  99298. char szReserverd[256]; // 预留字节
  99299. }NET_PREPARE_EXPORT_INFO;
  99300. ///@brief CLIENT_PrepareExport 接口入参
  99301. typedef struct tagNET_IN_PREPARE_EXPORT_INFO
  99302. {
  99303. DWORD dwSize; // 结构体大小
  99304. NET_PREPARE_EXPORT_INFO stuInfo; // 文件信息数组
  99305. }NET_IN_PREPARE_EXPORT_INFO;
  99306. ///@brief CLIENT_PrepareExport 接口出参
  99307. typedef struct tagNET_OUT_PREPARE_EXPORT_INFO
  99308. {
  99309. DWORD dwSize; // 结构体大小
  99310. UINT nToken; // 下载令牌
  99311. }NET_OUT_PREPARE_EXPORT_INFO;
  99312. ///@brief 导出参数
  99313. typedef struct tagNET_EXPORT_ENCRYPED_DEBUGFILES_CONDITION
  99314. {
  99315. UINT nRequestLength; // 本次请求下载数据量,单位字节,建议值32K,最大不超过4M
  99316. char szReserverd[256]; // 预留字节
  99317. }NET_EXPORT_ENCRYPED_DEBUGFILES_CONDITION;
  99318. ///@brief CLIENT_ExportEncrypedDebugFiles 接口入参
  99319. typedef struct tagNET_IN_EXPORT_ENCRYPED_DEBUGFILES_INFO
  99320. {
  99321. DWORD dwSize; // 结构体大小
  99322. UINT nToken; // 下载令牌 prepareExport返回
  99323. NET_EXPORT_ENCRYPED_DEBUGFILES_CONDITION stuCondition; // 导出参数
  99324. }NET_IN_EXPORT_ENCRYPED_DEBUGFILES_INFO;
  99325. ///@brief 导出情况
  99326. typedef struct tagNET_EXPORT_ENCRYPED_DEBUGFILES_INFO
  99327. {
  99328. char* pData; // 传递的二进制数据块 用户申请内存,大小为nDataLength
  99329. int nDataLength; // 本次传递的二进制数据最大长度
  99330. int nDataLengthRet; // 本次传递的二进制数据实际长度
  99331. char szReserverd[256]; // 预留字节
  99332. }NET_EXPORT_ENCRYPED_DEBUGFILES_INFO;
  99333. ///@brief CLIENT_ExportEncrypedDebugFiles 接口出参
  99334. typedef struct tagNET_OUT_EXPORT_ENCRYPED_DEBUGFILES_INFO
  99335. {
  99336. DWORD dwSize; // 结构体大小
  99337. NET_EXPORT_ENCRYPED_DEBUGFILES_INFO stuInfo; // 导出情况
  99338. }NET_OUT_EXPORT_ENCRYPED_DEBUGFILES_INFO;
  99339. ///@brief 通知设备需要导出的文件信息
  99340. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PrepareExport(LLONG lLoginID, NET_IN_PREPARE_EXPORT_INFO* pInParam, NET_OUT_PREPARE_EXPORT_INFO* pOutParam, int nWaitTime);
  99341. ///@brief 需与PrepareExport配合使用,若导出多个文件,则最终会将多个文件加密并压缩为一个文件导出
  99342. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ExportEncrypedDebugFiles(LLONG lLoginID, NET_IN_EXPORT_ENCRYPED_DEBUGFILES_INFO* pInParam, NET_OUT_EXPORT_ENCRYPED_DEBUGFILES_INFO* pOutParam, int nWaitTime);
  99343. /***************************设备日志接口End***************************************************/
  99344. /***************************动态密码锁对接接口Start***************************/
  99345. ///@brief 动态密码锁错误码
  99346. typedef enum tagEM_DYNAMIC_LOCK_ERRORCODE
  99347. {
  99348. EM_DYNAMIC_LOCK_ERRORCODE_UNKNOWN = -1, // 未知
  99349. EM_DYNAMIC_LOCK_ERRORCODE_SUCCESS, // 成功
  99350. EM_DYNAMIC_LOCK_ERRORCODE_FAIL, // 操作失败
  99351. EM_DYNAMIC_LOCK_ERRORCODE_LOCK_NO_EXIT, // 锁ID不存在
  99352. EM_DYNAMIC_LOCK_ERRORCODE_LOCK_INIT, // 锁已初始化
  99353. EM_DYNAMIC_LOCK_ERRORCODE_LOCK_NOT_USE, // 锁模块未启用
  99354. }EM_DYNAMIC_LOCK_ERRORCODE;
  99355. ///@brief CLIENT_GetDynamicPasswordLockList 接口入参
  99356. typedef struct tagNET_IN_GET_DYNAMIC_PASSWORD_LOCKLIST_INFO
  99357. {
  99358. DWORD dwSize; // 结构体大小
  99359. }NET_IN_GET_DYNAMIC_PASSWORD_LOCKLIST_INFO;
  99360. ///@brief 动态密码锁信息
  99361. typedef struct tagNET_DYNAMIC_LOCK_LIST_INFO
  99362. {
  99363. char szID[32]; // 密码锁ID
  99364. char szReserverd[128]; // 预留字节
  99365. }NET_DYNAMIC_LOCK_LIST_INFO;
  99366. ///@brief CLIENT_GetDynamicPasswordLockList 接口出参
  99367. typedef struct tagNET_OUT_GET_DYNAMIC_PASSWORD_LOCKLIST_INFO
  99368. {
  99369. DWORD dwSize; // 结构体大小
  99370. EM_DYNAMIC_LOCK_ERRORCODE emErrorCode; // 动态密码锁错误码
  99371. int nListNum; // 动态密码锁信息个数
  99372. NET_DYNAMIC_LOCK_LIST_INFO stuList[32]; // 动态密码锁信息
  99373. }NET_OUT_GET_DYNAMIC_PASSWORD_LOCKLIST_INFO;
  99374. ///@brief CLIENT_GetDynamicPasswordLockInfo 接口入参
  99375. typedef struct tagNET_IN_GET_DYNAMIC_PASSWORD_LOCK_INFO
  99376. {
  99377. DWORD dwSize; // 结构体大小
  99378. int nListNum; // 动态密码锁信息个数
  99379. NET_DYNAMIC_LOCK_LIST_INFO stuList[32]; // 动态密码锁信息
  99380. }NET_IN_GET_DYNAMIC_PASSWORD_LOCK_INFO;
  99381. ///@brief 动态密码锁信息
  99382. typedef struct tagNET_DYNAMIC_PASSWORD_LOCK_INFO
  99383. {
  99384. char szID[32]; // 密码锁ID
  99385. BOOL bInitState; // 是否初始化, TRUE-已初始化,FALSE-未初始化
  99386. BOOL bLockState; // 是否闭锁, TRUE-闭锁,FALSE-开锁
  99387. BOOL bOnlineState; // 是否在线, TRUE-在线,FALSE-离线
  99388. char szReserverd[124]; // 预留字节
  99389. }NET_DYNAMIC_PASSWORD_LOCK_INFO;
  99390. ///@brief CLIENT_GetDynamicPasswordLockInfo 接口出参
  99391. typedef struct tagNET_OUT_GET_DYNAMIC_PASSWORD_LOCK_INFO
  99392. {
  99393. DWORD dwSize; // 结构体大小
  99394. EM_DYNAMIC_LOCK_ERRORCODE emErrorCode; // 动态密码锁错误码
  99395. int nInfoNum; // 动态密码锁信息个数
  99396. NET_DYNAMIC_PASSWORD_LOCK_INFO stuInfo[32]; // 动态密码锁信息
  99397. }NET_OUT_GET_DYNAMIC_PASSWORD_LOCK_INFO;
  99398. ///@brief CLIENT_GetDynamicLockRandomPublicKey 接口入参
  99399. typedef struct tagNET_IN_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO
  99400. {
  99401. DWORD dwSize; // 结构体大小
  99402. char szID[32]; // 密码锁ID
  99403. char szCenterPublicKey[512]; // 中心公钥
  99404. }NET_IN_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO;
  99405. ///@brief CLIENT_GetDynamicLockRandomPublicKey 接口出参
  99406. typedef struct tagNET_OUT_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO
  99407. {
  99408. DWORD dwSize; // 结构体大小
  99409. EM_DYNAMIC_LOCK_ERRORCODE emErrorCode; // 动态密码锁错误码
  99410. char szRandomPublicKey[512]; // 锁随机公钥
  99411. }NET_OUT_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO;
  99412. ///@brief CLIENT_SetDynamicLockCommunicationKey 接口入参
  99413. typedef struct tagNET_IN_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO
  99414. {
  99415. DWORD dwSize; // 结构体大小
  99416. char szID[32]; // 密码锁ID
  99417. char szCommuKey[512]; // 通讯密钥
  99418. char szKeyVerify[512]; // 通讯密钥校验数据
  99419. char szOldKeyVerify[512]; // 原通讯密钥校验数据
  99420. char szPrivateSigniture[512]; // 加密主机私钥签名
  99421. }NET_IN_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO;
  99422. ///@brief CLIENT_SetDynamicLockCommunicationKey 接口出参
  99423. typedef struct tagNET_OUT_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO
  99424. {
  99425. DWORD dwSize; // 结构体大小
  99426. EM_DYNAMIC_LOCK_ERRORCODE emErrorCode; // 动态密码锁错误码
  99427. }NET_OUT_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO;
  99428. ///@brief CLIENT_SetDynamicLockOpenKey 接口入参
  99429. typedef struct tagNET_IN_SET_DYNAMIC_LOCK_OPENKEY_INFO
  99430. {
  99431. DWORD dwSize; // 结构体大小
  99432. char szID[32]; // 密码锁ID
  99433. char szOpenKey[512]; // 开锁密钥
  99434. char szKeyVerify[512]; // 开锁密钥校验
  99435. char szKeyVersion[512]; // 开锁密钥版本
  99436. }NET_IN_SET_DYNAMIC_LOCK_OPENKEY_INFO;
  99437. ///@brief CLIENT_SetDynamicLockOpenKey 接口出参
  99438. typedef struct tagNET_OUT_SET_DYNAMIC_LOCK_OPENKEY_INFO
  99439. {
  99440. DWORD dwSize; // 结构体大小
  99441. EM_DYNAMIC_LOCK_ERRORCODE emErrorCode; // 动态密码锁错误码
  99442. }NET_OUT_SET_DYNAMIC_LOCK_OPENKEY_INFO;
  99443. ///@brief CLIENT_SetDynamicLockTempUserID 接口入参
  99444. typedef struct tagNET_IN_SET_DYNAMIC_LOCK_TEMP_USERID_INFO
  99445. {
  99446. DWORD dwSize; // 结构体大小
  99447. char szID[32]; // 密码锁ID
  99448. char szTmpUserID[512]; // 开锁密钥
  99449. }NET_IN_SET_DYNAMIC_LOCK_TEMP_USERID_INFO;
  99450. ///@brief CLIENT_SetDynamicLockTempUserID 接口出参
  99451. typedef struct tagNET_OUT_SET_DYNAMIC_LOCK_TEMP_USERID_INFO
  99452. {
  99453. DWORD dwSize; // 结构体大小
  99454. EM_DYNAMIC_LOCK_ERRORCODE emErrorCode; // 动态密码锁错误码
  99455. }NET_OUT_SET_DYNAMIC_LOCK_TEMP_USERID_INFO;
  99456. ///@brief CLIENT_SetDynamicLockOpenCode 接口入参
  99457. typedef struct tagNET_IN_SET_DYNAMIC_LOCK_OPEN_CODE_INFO
  99458. {
  99459. DWORD dwSize; // 结构体大小
  99460. char szID[32]; // 密码锁ID
  99461. char szOpenCode[512]; // 开锁密钥
  99462. }NET_IN_SET_DYNAMIC_LOCK_OPEN_CODE_INFO;
  99463. ///@brief CLIENT_SetDynamicLockOpenCode 接口出参
  99464. typedef struct tagNET_OUT_SET_DYNAMIC_LOCK_OPEN_CODE_INFO
  99465. {
  99466. DWORD dwSize; // 结构体大小
  99467. EM_DYNAMIC_LOCK_ERRORCODE emErrorCode; // 动态密码锁错误码
  99468. }NET_OUT_SET_DYNAMIC_LOCK_OPEN_CODE_INFO;
  99469. ///@brief 获取密码锁列表
  99470. ///@param[in] lLoginID 登录句柄
  99471. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  99472. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  99473. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99474. ///@return TRUE表示成功 FALSE表示失败
  99475. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDynamicPasswordLockList(LLONG lLoginID, NET_IN_GET_DYNAMIC_PASSWORD_LOCKLIST_INFO* pInParam, NET_OUT_GET_DYNAMIC_PASSWORD_LOCKLIST_INFO* pOutParam, int nWaitTime);
  99476. ///@brief 获取密码锁信息
  99477. ///@param[in] lLoginID 登录句柄
  99478. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  99479. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  99480. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99481. ///@return TRUE表示成功 FALSE表示失败
  99482. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDynamicPasswordLockInfo(LLONG lLoginID, NET_IN_GET_DYNAMIC_PASSWORD_LOCK_INFO* pInParam, NET_OUT_GET_DYNAMIC_PASSWORD_LOCK_INFO* pOutParam, int nWaitTime);
  99483. ///@brief 根据中心公钥获取锁具随机公钥
  99484. ///@param[in] lLoginID 登录句柄
  99485. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  99486. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  99487. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99488. ///@return TRUE表示成功 FALSE表示失败
  99489. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDynamicLockRandomPublicKey(LLONG lLoginID, NET_IN_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO* pInParam, NET_OUT_GET_DYNAMIC_LOCK_RANDOM_PUBLICKEY_INFO* pOutParam, int nWaitTime);
  99490. ///@brief 设置通讯秘钥
  99491. ///@param[in] lLoginID 登录句柄
  99492. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  99493. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  99494. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99495. ///@return TRUE表示成功 FALSE表示失败
  99496. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDynamicLockCommunicationKey(LLONG lLoginID, NET_IN_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO* pInParam, NET_OUT_SET_DYNAMIC_LOCK_COMMUNICATIONKEY_INFO* pOutParam, int nWaitTime);
  99497. ///@brief 设置开锁密钥
  99498. ///@param[in] lLoginID 登录句柄
  99499. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  99500. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  99501. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99502. ///@return TRUE表示成功 FALSE表示失败
  99503. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDynamicLockOpenKey(LLONG lLoginID, NET_IN_SET_DYNAMIC_LOCK_OPENKEY_INFO* pInParam, NET_OUT_SET_DYNAMIC_LOCK_OPENKEY_INFO* pOutParam, int nWaitTime);
  99504. ///@brief 设置临时身份码
  99505. ///@param[in] lLoginID 登录句柄
  99506. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  99507. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  99508. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99509. ///@return TRUE表示成功 FALSE表示失败
  99510. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDynamicLockTempUserID(LLONG lLoginID, NET_IN_SET_DYNAMIC_LOCK_TEMP_USERID_INFO* pInParam, NET_OUT_SET_DYNAMIC_LOCK_TEMP_USERID_INFO* pOutParam, int nWaitTime);
  99511. ///@brief 设置开锁码
  99512. ///@param[in] lLoginID 登录句柄
  99513. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  99514. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  99515. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99516. ///@return TRUE表示成功 FALSE表示失败
  99517. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetDynamicLockOpenCode(LLONG lLoginID, NET_IN_SET_DYNAMIC_LOCK_OPEN_CODE_INFO* pInParam, NET_OUT_SET_DYNAMIC_LOCK_OPEN_CODE_INFO* pOutParam, int nWaitTime);
  99518. /***************************动态密码锁对接接口End***************************/
  99519. ///@brief CLIENT_GetFinancialCabinInfo 输入参数
  99520. typedef struct tagNET_IN_GET_FINANCIAL_CABIN_INFO
  99521. {
  99522. DWORD dwSize; // 结构体大小
  99523. int nIndexNum; // 舱位下标索引个数
  99524. UINT nIndex[64]; // 舱位下标索引数组
  99525. }NET_IN_GET_FINANCIAL_CABIN_INFO;
  99526. ///@brief 舱位信息
  99527. typedef struct tagNET_FINANCIAL_CABIN_INFO
  99528. {
  99529. char szRFIDNo[128]; // 舱位读取到尾箱RFID卡编号
  99530. char szBindRFIDNo[128]; // 舱位绑定的尾箱RFID卡编号,为空时表示未绑定尾箱
  99531. char szType[32]; // 舱位类型,"Cash"-现金柜,"Bill"-票据柜
  99532. char szDoorState[32]; // 舱位门状态,"IsClosed"-关门,"IsOpened"-开门
  99533. float fAmount; // 舱位现金金额,尾箱类型为"Cash"时有效, 单位:人民币
  99534. char szReserved[124]; // 预留字节
  99535. }NET_FINANCIAL_CABIN_INFO;
  99536. ///@brief CLIENT_GetFinancialCabinInfo 输出参数
  99537. typedef struct tagNET_OUT_GET_FINANCIAL_CABIN_INFO
  99538. {
  99539. DWORD dwSize; // 结构体大小
  99540. int nInfoNum; // 舱位信息个数
  99541. NET_FINANCIAL_CABIN_INFO stuInfo[64]; // 舱位信息,是数组和Index数组下标对应
  99542. }NET_OUT_GET_FINANCIAL_CABIN_INFO;
  99543. ///@brief 获取业务库管理的舱位信息
  99544. ///@param[in] lLoginID 登录句柄
  99545. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  99546. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  99547. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  99548. ///@return TRUE表示成功 FALSE表示失败
  99549. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFinancialCabinInfo(LLONG lLoginID, NET_IN_GET_FINANCIAL_CABIN_INFO* pInParam, NET_OUT_GET_FINANCIAL_CABIN_INFO* pOutParam, int nWaitTime);
  99550. /***************************信号机对接接口Start***************************/
  99551. ///@brief 红绿灯方案/可变车道方案:
  99552. typedef enum tagEM_CTRL_SCHEME
  99553. {
  99554. EM_CTRL_SCHEME_UNKNOWN, // 未知
  99555. EM_CTRL_SCHEME_REDYELLOW_BACKUP = 150, // 进入备份模式(红绿灯)
  99556. EM_CTRL_SCHEME_REDYELLOW_BACKUP_NORMAL_QUIT, // 正常退出备份模式(红绿灯)
  99557. EM_CTRL_SCHEME_REDYELLOW_BACKUP_ABNORMAL_QUIT, // 异常退出备份模式(红绿灯)
  99558. EM_CTRL_SCHEME_VARLANE_BACKUP, // 异常退出备份模式(可变车道)
  99559. EM_CTRL_SCHEME_VARLANE_BACKUP_NORMAL_QUIT, // 正常退出备份模式(可变车道)
  99560. EM_CTRL_SCHEME_VARLANE_BACKUP_ABNORMAL_QUIT, // 异常退出备份模式(可变车道)
  99561. }EM_CTRL_SCHEME;
  99562. ///@brief CLIENT_SetRtscBackupMode 接口输入参数
  99563. typedef struct tagNET_IN_SET_BACKUP_MODE
  99564. {
  99565. DWORD dwSize; // 结构体大小
  99566. EM_CTRL_SCHEME emCtrlScheme; // 红绿灯/可变车道方案:150-152代表红绿灯 153-155代表可变车道方案:
  99567. } NET_IN_SET_BACKUP_MODE;
  99568. ///@brief 备份模式设置错误码
  99569. typedef enum tagEM_BACKUP_ERROR_CODE
  99570. {
  99571. EM_BACKUP_ERROR_CODE_UNKNOWN = -1, // 未知
  99572. EM_BACKUP_ERROR_CODE_SUCCESS, // 备份模式设置成功
  99573. EM_BACKUP_ERROR_CODE_CYCLE_PLAN, // 周期方案表有误
  99574. EM_BACKUP_ERROR_CODE_GREEN_LETTER, // 绿信比表有误
  99575. EM_BACKUP_ERROR_CODE_TIME_BASE_PLAN, // 时基方案表有误
  99576. EM_BACKUP_ERROR_CODE_DAY_PLAN, // 日计划表有误
  99577. EM_BACKUP_ERROR_CODE_ACTION_PLAN, // 动作方案表有误
  99578. EM_BACKUP_ERROR_CODE_PHASE_SEQUENCE, // 相序表有误
  99579. EM_BACKUP_ERROR_CODE_CHANNEL_TABLE, // 通道表有误
  99580. EM_BACKUP_ERROR_CODE_FOLLOW_PHASE_TABLE, // 跟随相位表有误
  99581. EM_BACKUP_ERROR_CODE_PHASE_CONFLCT, // 相位冲突
  99582. EM_BACKUP_ERROR_CODE_DELIVERY_PLAN, // 下发方案超时
  99583. EM_BACKUP_ERROR_CODE_LANE_TABLE_SETTING, // 车道表设置有误
  99584. EM_BACKUP_ERROR_CODE_NOT_SUPPORT_SHORT_JUNCTIONS, // 用于信号灯,提示信号灯不支持短连接路口
  99585. EM_BACKUP_ERROR_CODE_CHANNEL_CONFIGURATION, // 通道配置有误 用于信号灯 无掉头箭头灯、直行非机动车灯、左转非机动车灯、公交信号灯--可变车道
  99586. EM_BACKUP_ERROR_CODE_VARIABLEE_LANE_TABLE, // 可变车道方案表有误
  99587. EM_BACKUP_ERROR_CODE_WEEKLY_PLAN, // 周计划方案表有误
  99588. }EM_BACKUP_ERROR_CODE;
  99589. ///@brief CLIENT_SetRtscBackupMode 接口输出参数
  99590. typedef struct tagNET_OUT_SET_BACKUP_MODE
  99591. {
  99592. DWORD dwSize; // 结构体大小
  99593. EM_BACKUP_ERROR_CODE emBackUpErrCode; // 备份模式设置错误码
  99594. } NET_OUT_SET_BACKUP_MODE;
  99595. ///@brief CLIENT_SetRtscRunningMode 接口输入参数
  99596. typedef struct tagNET_IN_SET_RUNNING_MODE
  99597. {
  99598. DWORD dwSize; // 结构体大小
  99599. int nMode; // 平台下发运行模式: 0x01 //定时模式 0xfb //关灯模式 0xfc //全红模式 0xfd //区域自适应模式
  99600. // 0xfe //感应模式 0xff //黄闪模式 0xf6 //实时控制模式 0xf2//单点自适应模式 0xf8//红闪模式 0xf9//绿闪模式
  99601. } NET_IN_SET_RUNNING_MODE;
  99602. ///@brief CLIENT_SetRtscRunningMode 接口输出参数
  99603. typedef struct tagNET_OUT_SET_RUNNING_MODE
  99604. {
  99605. DWORD dwSize; // 结构体大小
  99606. } NET_OUT_SET_RUNNING_MODE;
  99607. ///@brief CLIENT_GetRtscRunningMode 接口输入参数
  99608. typedef struct tagNET_IN_GET_RUNNING_MODE
  99609. {
  99610. DWORD dwSize; // 结构体大小
  99611. }NET_IN_GET_RUNNING_MODE;
  99612. ///@brief CLIENT_GetRtscRunningMode 接口输出参数
  99613. typedef struct tagNET_OUT_GET_RUNNING_MODE
  99614. {
  99615. DWORD dwSize; // 结构体大小
  99616. int nMode; // 平台下发运行模式: 0x01 //定时模式 0xfb //关灯模式 0xfc //全红模式 0xfd //区域自适应模式
  99617. // 0xfe //感应模式 0xff //黄闪模式 0xf6 //实时控制模式 0xf2//单点自适应模式 0xf8//红闪模式 0xf9//绿闪模式
  99618. }NET_OUT_GET_RUNNING_MODE;
  99619. ///@brief 灯组故障等级
  99620. typedef enum tagEM_LIGHTGROUP_FAULT_LEVEL
  99621. {
  99622. EM_LIGHTGROUP_FAULT_UNKNOWN, // 未知
  99623. EM_LIGHTGROUP_FAULT_INGORE, // 忽略所有灯组故障
  99624. EM_LIGHTGROUP_FAULT_INGORE_YELLOWGREENPEDESTRIAN, // 忽略车行灯黄灯、绿灯和人行灯故障
  99625. EM_LIGHTGROUP_FAULT_INGORE_YELLOWREDPEDESTRIAN, // 忽略车行灯黄灯、红灯和人行灯故障
  99626. EM_LIGHTGROUP_FAULT_INGORE_YELLOWPEDESTRIAN, // 忽略车行灯黄灯和人行灯故障
  99627. EM_LIGHTGROUP_FAULT_UNINGORE, // 不忽略任何灯组故障
  99628. }EM_LIGHTGROUP_FAULT_LEVEL;
  99629. ///@brief 倒计时方式
  99630. typedef enum tagEM_COUNTDOWN_TYPE
  99631. {
  99632. EM_COUNTDOWN_TYPE_UNKNOWN, // 未知
  99633. EM_COUNTDOWN_TYPE_LEARNING, // 学习式
  99634. EM_COUNTDOWN_TYPE_PLUSE, // 脉冲式
  99635. EM_COUNTDOWN_TYPE_FULL485, // 全程485式
  99636. EM_COUNTDOWN_TYPE_HALFWAY485, // 半程485式
  99637. }EM_COUNTDOWN_TYPE;
  99638. ///@brief 自动维护星期
  99639. typedef enum tagEM_AUTO_PROTECT_WEEK
  99640. {
  99641. EM_AUTO_PROTECT_UNKNOWN, // 未知
  99642. EM_AUTO_PROTECT_MONDAY, // 星期一
  99643. EM_AUTO_PROTECT_TUESDAY, // 星期二
  99644. EM_AUTO_PROTECT_WEDNESDAY, // 星期三
  99645. EM_AUTO_PROTECT_THURSDAY, // 星期四
  99646. EM_AUTO_PROTECT_FIRDAY, // 星期五
  99647. EM_AUTO_PROTECT_SATURDAY, // 星期六
  99648. EM_AUTO_PROTECT_SUNDAY, // 星期天
  99649. EM_AUTO_PROTECT_EVERYDAY, // 每天
  99650. }EM_AUTO_PROTECT_WEEK;
  99651. ///@brief 全局参数信息
  99652. typedef struct tagGLOBAL_INFO
  99653. {
  99654. EM_LIGHTGROUP_FAULT_LEVEL emLightGroupFault; // 灯组故障等级
  99655. EM_COUNTDOWN_TYPE emCountDownType; // 倒计时方式
  99656. int nPulseWidth; // 脉冲式倒计时脉冲宽度(单位ms)
  99657. int nPulseTime; // 脉冲式倒计时倒计时时间(单位s)
  99658. int nBaudRault; // 485倒计时波特率 INTEGER(2400 4800 9600 19200 38400)
  99659. int nGatType; // 485倒计时使用协议(0:GAT208-2004 1:GAT208-2014)
  99660. int nHalfTime; // 半程485倒计时时间(单位秒)
  99661. int nDefaultRunModel; // 未配置相位运行模式1:全红 2:关灯 3:黄闪 4:红闪 -1不设置
  99662. int nVarLaneCommunicationType; // 可变车道通讯方式选择 0:供电式 1:通讯式 -1不设置
  99663. int nAutoProtectEnable; // 自动维护使能:0-不启用,1-启用 -1不设置
  99664. EM_AUTO_PROTECT_WEEK emAutoProtectWeek; // 自动维护星期
  99665. int nAutoProtectHour; // 自动维护小时
  99666. int nAutoProtectMinute; // 自动维护分钟
  99667. int nControlUnlockTime; // 通道自动解锁时间(0-65535)
  99668. int nFaultReport; // 故障是否推送(按位表示,置0表示开启上报,置1表示关闭上报.bit0:灯组故障bit1:检测器故障bit2:绿冲突故障bit3:外围板故障bit4:
  99669. int nRatedVoltage; // 额定电压值
  99670. int nPercentageValNum; // 百分比值个数
  99671. int nPercentageVal[4]; // 百分比值;array[0]:百分比1(关机电压比)/ array[1]:百分比2(闪烁启动电压比)/array[2]:百分比3
  99672. int nStartUpLampNum; // 开机启动灯色个数
  99673. int nStartUpLamp[3]; // 开机启动灯色 1:红灯 2:黄灯 4: 红闪 5: 黄闪 ; array[n]:阶段n灯色,n <3
  99674. int nStartUpTimeNum; // 开机启动时间个数
  99675. int nStartUpTime[3]; // 开机启动时间 array[n]:阶段n时间,n <3
  99676. int nPlatformCtrl; // 平台下发临时控制: 1-阶段切换 2-阶段驻留 3-阶段锁相 4-通道锁定 5-还原
  99677. int nPlatformCtrlValNum; // 平台下发控制详细值个数
  99678. int nPlatformCtrlVal[16]; // 平台下发控制详细值
  99679. // 当ctrl等于3-阶段锁相时,该数组代表需要锁定的相位集合,且每个相位占用两个字节,低字节代表相位编号,高字节代表重复出现的次数,例如锁定相位为A1,B2,则内容值为[1,1,2,2]
  99680. // 当ctrl等于4-通道锁定时,该数组代表需要锁定通道的集合,其余为0
  99681. BYTE byReserved[952]; // 预留字节
  99682. }GLOBAL_INFO;
  99683. ///@brief CLIENT_GetRtscGlobalParam 接口输入参数
  99684. typedef struct tagNET_IN_GET_GLOBAL_PARAMETER
  99685. {
  99686. DWORD dwSize; // 结构体大小
  99687. }NET_IN_GET_GLOBAL_PARAMETER;
  99688. ///@brief CLIENT_GetRtscGlobalParam 接口输出参数
  99689. typedef struct tagNET_OUT_GET_GLOBAL_PARAMETER
  99690. {
  99691. DWORD dwSize; // 结构体大小
  99692. GLOBAL_INFO stuGlobalInfo; // 全局信息
  99693. }NET_OUT_GET_GLOBAL_PARAMETER;
  99694. ///@brief CLIENT_SetRtscGlobalParam 接口输入参数
  99695. typedef struct tagNET_IN_SET_GLOBAL_PARAMETER
  99696. {
  99697. DWORD dwSize; // 结构体大小
  99698. GLOBAL_INFO stuGlobalInfo; // 全局信息
  99699. }NET_IN_SET_GLOBAL_PARAMETER;
  99700. ///@brief CLIENT_SetRtscGlobalParam 接口输出参数
  99701. typedef struct tagNET_OUT_SET_GLOBAL_PARAMETER
  99702. {
  99703. DWORD dwSize; // 结构体大小
  99704. }NET_OUT_SET_GLOBAL_PARAMETER;
  99705. ///@brief CLIENT_GetRtscRunningInfo 接口输入参数
  99706. typedef struct tagNET_IN_GET_RUNNING_INFO
  99707. {
  99708. DWORD dwSize; // 结构体大小
  99709. UINT nType; // 查询类型,按位表示: bit0:运行状态 bit1:控制方式 bit2:车道功能状态 bit3:车道/匝道控制状态信息 bit4:当前信号方案色步信息 bit5: 下一个周期信号方案色步信息
  99710. }NET_IN_GET_RUNNING_INFO;
  99711. ///@brief CLIENT_GetRtscRunningInfo 接口输出参数
  99712. typedef struct tagNET_OUT_GET_RUNNING_INFO
  99713. {
  99714. DWORD dwSize; // 结构体大小
  99715. DWORD dwReportState; // bit0:运行状态
  99716. // bit1:控制方式
  99717. // bit2:车道功能状态
  99718. // bit3:车道/匝道控制状态信息
  99719. // bit4:当前信号方案色步信息
  99720. // bit5: 下一个周期信号方案色步信息
  99721. int nLongitudeNum; // 经度个数
  99722. double dbLongitude[3]; // 经度,格式:度,分,秒(秒为浮点数)
  99723. int nLatitudeNum; // 纬度个数
  99724. double dbLatitude[3]; // 纬度,格式:度,分,秒(秒为浮点数)
  99725. double dbAltitude; // 高度,单位为米
  99726. NET_TIME_EX UTC; // 事件发生时间,带时区偏差的UTC时间,单位秒
  99727. EM_STATUS emStatus; // 设备状态
  99728. EM_CONTROL_MODE emControlMode; // 控制模式
  99729. LANE_STATE stuLaneStateInfo; // 车道功能状态
  99730. LANE_CTRL_STATE stuLaneCtrlStateInfo; // 车道/匝道控制状态
  99731. CUR_STEP_INFO stuCurStepInfo; // 当前信号方案色步信息
  99732. NEXT_STEP_INFO stuNextStepInfo; // 下一个周期信号方案色步信息
  99733. }NET_OUT_GET_RUNNING_INFO;
  99734. ///@brief 设置信号机备份模式,pInParam与pOutParam内存由用户申请释放
  99735. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRtscBackupMode(LLONG lLoginID, const NET_IN_SET_BACKUP_MODE* pInParam, NET_OUT_SET_BACKUP_MODE* pOutParam, int nWaitTime);
  99736. ///@brief 设置信号机运行模式,pInParam与pOutParam内存由用户申请释放
  99737. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRtscRunningMode(LLONG lLoginID, const NET_IN_SET_RUNNING_MODE* pInParam, NET_OUT_SET_RUNNING_MODE* pOutParam, int nWaitTime);
  99738. ///@brief 获取信号机运行模式,pInParam与pOutParam内存由用户申请释放
  99739. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRtscRunningMode(LLONG lLoginID, const NET_IN_GET_RUNNING_MODE* pInParam, NET_OUT_GET_RUNNING_MODE* pOutParam, int nWaitTime);
  99740. ///@brief 获取信号机全局配置,pInParam与pOutParam内存由用户申请释放
  99741. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRtscGlobalParam(LLONG lLoginID, const NET_IN_GET_GLOBAL_PARAMETER* pInParam, NET_OUT_GET_GLOBAL_PARAMETER* pOutParam, int nWaitTime);
  99742. ///@brief 设置信号机全局配置,pInParam与pOutParam内存由用户申请释放
  99743. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetRtscGlobalParam(LLONG lLoginID, const NET_IN_SET_GLOBAL_PARAMETER* pInParam, NET_OUT_SET_GLOBAL_PARAMETER* pOutParam, int nWaitTime);
  99744. ///@brief 获取信号机运行信息,pInParam与pOutParam内存由用户申请释放
  99745. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRtscRunningInfo(LLONG lLoginID, const NET_IN_GET_RUNNING_INFO* pInParam, NET_OUT_GET_RUNNING_INFO* pOutParam, int nWaitTime);
  99746. /***************************信号机对接接口End***************************/
  99747. /***************************智慧用电Things接口Start***************************/
  99748. ///@brief 属性值类型
  99749. typedef enum tagEM_PROPERTIES_VALUE_TYPE
  99750. {
  99751. EM_PROPERTIES_VALUE_UNKNOWN, // 未知
  99752. EM_PROPERTIES_VALUE_INT, // int类型,1,100,1000
  99753. EM_PROPERTIES_VALUE_BOOL, // bool类型,true,false
  99754. EM_PROPERTIES_VALUE_STRING, // string类型,"1","100","1000"
  99755. EM_PROPERTIES_VALUE_INTARRAY, // int数组类型,"[1,2,3]"
  99756. }EM_PROPERTIES_VALUE_TYPE;
  99757. ///@brief 物模型标识
  99758. typedef struct tagNET_PROPERTIES_NAME
  99759. {
  99760. char szPropertiesName[64]; // "*","BJPZ_DDBJLDMS"、"SBJCXX_CPLX"、"SBJCXX_SBLX"等
  99761. char szReserved[1024]; // 预留字节
  99762. }NET_PROPERTIES_NAME;
  99763. ///@brief int+Array值
  99764. typedef struct tagNET_PROPERTIES_INTARRAY_VALUE
  99765. {
  99766. int nValue; // Value:1,2,3
  99767. char szReserved[32]; // 预留字节
  99768. }NET_PROPERTIES_INTARRAY_VALUE;
  99769. ///@brief 属性值信息
  99770. typedef struct tagNET_PROPERTIES_INFO
  99771. {
  99772. char szKey[64]; // BJPZ_DDBJLDMS、SBJCXX_CPLX、SBJCXX_SBLX等
  99773. char szValue[256]; // 1,true,"normal"等
  99774. EM_PROPERTIES_VALUE_TYPE emValueType; // szValue对应的类型;有int,bool,string类型
  99775. int nIntArrayValueNum; // stuIntArrayValue实际个数
  99776. NET_PROPERTIES_INTARRAY_VALUE stuIntArrayValue[128]; // int+Array值,当emValueType为EM_PROPERTIES_VALUE_INTARRAY
  99777. char szReserved[512]; // 预留字节
  99778. }NET_PROPERTIES_INFO;
  99779. ///@brief CLIENT_GetThingsConfig 接口输入参数
  99780. typedef struct tagNET_IN_THINGS_GET
  99781. {
  99782. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99783. char szProductID[64]; // 产品ID,全网唯一
  99784. char szDeviceID[128]; // 设备ID,产品下唯一
  99785. int nProperCount; // pstuGetInProperName个数
  99786. NET_PROPERTIES_NAME* pstuGetInProperName; // 物模型标志,需要查询的物模型标志名称
  99787. // 用户分配内存,大小为sizeof(NET_PROPERTIES_INFO)*nPropertiesCount
  99788. }NET_IN_THINGS_GET;
  99789. ///@brief CLIENT_GetThingsConfig 接口输出参数
  99790. typedef struct tagNET_OUT_THINGS_GET
  99791. {
  99792. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99793. char szProductID[64]; // 产品ID,全网唯一
  99794. char szDeviceID[128]; // 设备ID,产品下唯一
  99795. int nRetPropertiesCount; // 实际返回的pstuGetOutProperInfo个数
  99796. int nMaxPropertiesCount; // 用户分配的pstuGetOutProperInfo个数
  99797. NET_PROPERTIES_INFO* pstuGetOutProperInfo; // 属性值,具体内容由物模型协议决定, Key,Value,ValueType均有效
  99798. // 用户分配内存,大小为sizeof(NET_PROPERTIES_INFO)*nMaxPropertiesCount
  99799. }NET_OUT_THINGS_GET;
  99800. ///@brief CLIENT_SetThingsConfig 接口输入参数
  99801. typedef struct tagNET_IN_THINGS_SET
  99802. {
  99803. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99804. char szProductID[64]; // 产品ID,全网唯一
  99805. char szDeviceID[128]; // 设备ID,产品下唯一
  99806. int nProperCount; // pstuSetInProperInfo个数
  99807. NET_PROPERTIES_INFO* pstuSetInProperInfo; // 属性值,具体内容由物模型协议决定, Key,Value,ValueType均需要填写
  99808. // 用户分配内存,大小为sizeof(NET_PROPERTIES_INFO)*nPropertiesCount
  99809. }NET_IN_THINGS_SET;
  99810. ///@brief CLIENT_SetThingsConfig 接口输出参数
  99811. typedef struct tagNET_OUT_THINGS_SET
  99812. {
  99813. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99814. }NET_OUT_THINGS_SET;
  99815. ///@brief 订阅类型
  99816. typedef enum tagEM_ATTACH_TOPICS
  99817. {
  99818. EM_ATTACH_TOPICS_ALL, // "*" 表示订阅所有属性和事件
  99819. EM_ATTACH_TOPICS_PROPS, // "Props" 表示订阅设备属性上报
  99820. EM_ATTACH_TOPICS_EVENTS, // "Events" 标识订阅设备事件上报
  99821. }EM_ATTACH_TOPICS;
  99822. ///@brief 物模型属性信息
  99823. typedef struct tagNET_CB_THINGS_PROPER_INFO
  99824. {
  99825. char szKey[64]; // DQZT、FHZYY、Action等
  99826. char szValue[256]; // 1,true,"normal"等
  99827. EM_PROPERTIES_VALUE_TYPE emValueType; // szValue对应的类型;有int,bool,string类型
  99828. int nIntArrayValueNum; // stuIntArrayValue实际个数
  99829. NET_PROPERTIES_INTARRAY_VALUE stuIntArrayValue[64]; // int+Array值,当emValueType为EM_PROPERTIES_VALUE_INTARRAY
  99830. char szReserved[1024]; // 预留字节
  99831. }NET_CB_THINGS_PROPER_INFO;
  99832. ///@brief 物模型属性订阅回调信息
  99833. typedef struct tagNET_CB_THINGS_INFO
  99834. {
  99835. EM_ATTACH_TOPICS emTopics; // 订阅类型
  99836. int nSID; // sid
  99837. char szProductID[64]; // 产品ID,全网唯一
  99838. char szDeviceID[128]; // 设备ID,产品下唯一
  99839. char szEventID[64]; // 当Topics为events时,必须携带, 具体内容由物模型定义决定
  99840. NET_TIME_EX stuEventTime; // 事件触发时间
  99841. NET_CB_THINGS_PROPER_INFO* pstuProperInfo; // 物模型属性信息或事件参数数组, 内存由sdk 内部申请和释放
  99842. UINT nRetProperInfoNum; // 实际返回的物模型属性信息数量, 即pstuProperInfo 数组中有效的元素个数
  99843. char szReserve[256]; // 保留字节
  99844. }NET_CB_THINGS_INFO;
  99845. ///@brief 物模型属性订阅回调函数原型, lAttachHandle为CLIENT_AttachThingsInfo接口的返回值
  99846. ///@param[out] lAttachHandle 订阅句柄
  99847. ///@param[out] pstResult 物模型属性订阅回调信息
  99848. ///@param[out] dwUserData 用户信息
  99849. ///@return void
  99850. typedef void (CALLBACK *fThingsCallBack)(LLONG lAttachHandle, NET_CB_THINGS_INFO* pstResult, LDWORD dwUserData);
  99851. ///@brief CLIENT_AttachThingsInfo接口输入参数
  99852. typedef struct tagNET_IN_THINGS_ATTACH
  99853. {
  99854. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99855. EM_ATTACH_TOPICS emTopics; // 订阅类型
  99856. char szProductID[64]; // 产品ID,全网唯一
  99857. char szDeviceID[64]; // 设备ID,产品下唯一
  99858. fThingsCallBack cbThingsInfo; // 物模型属性信息回调
  99859. LDWORD dwUser; // 用户数据
  99860. }NET_IN_THINGS_ATTACH;
  99861. ///@brief CLIENT_AttachThingsInfo接口输出参数
  99862. typedef struct tagNET_OUT_THINGS_ATTACH
  99863. {
  99864. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99865. }NET_OUT_THINGS_ATTACH;
  99866. ///@brief CLIENT_GetThingsCaps接口输入参数
  99867. typedef struct tagNET_IN_THINGS_GET_CAPS
  99868. {
  99869. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99870. char szDeviceID[128]; // 设备ID,产品下唯一
  99871. }NET_IN_THINGS_GET_CAPS;
  99872. ///@brief CLIENT_GetThingsCaps接口输出参数
  99873. typedef struct tagNET_OUT_THINGS_GET_CAPS
  99874. {
  99875. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99876. int nMaxProperCount; // 用户分配的pstuGetCapsProperName个数
  99877. int nRetProperCount; // 实际返回的pstuGetCapsProperName个数
  99878. NET_PROPERTIES_NAME* pstuGetCapsProperName; // 物模型标识符,用户分配内存,大小为sizeof(NET_PROPERTIES_NAME)*nMaxProperCount
  99879. }NET_OUT_THINGS_GET_CAPS;
  99880. ///@brief 设备列表
  99881. typedef struct tagNET_THINGS_DEVLIST_INFO
  99882. {
  99883. char szDevID[128]; // "1","2"等
  99884. char szDevClass[128]; // "001","002"等
  99885. char szReserved[1024]; // 预留字节
  99886. }NET_THINGS_DEVLIST_INFO;
  99887. ///@brief CLIENT_GetThingsDevList接口输入参数
  99888. typedef struct tagNET_IN_THINGS_GET_DEVLIST
  99889. {
  99890. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99891. }NET_IN_THINGS_GET_DEVLIST;
  99892. ///@brief 设备连接状态
  99893. typedef enum tagEM_THINGS_CONNECT_STATE
  99894. {
  99895. EM_THINGS_CONNECT_STATE_UNKNOWN = -1, // 未知
  99896. EM_THINGS_CONNECT_STATE_DISCONNECT, // 连接断开
  99897. EM_THINGS_CONNECT_STATE_CONNECT, // 已连接
  99898. }EM_THINGS_CONNECT_STATE;
  99899. ///@brief CLIENT_GetThingsDevList接口输出参数
  99900. typedef struct tagNET_OUT_THINGS_GET_DEVLIST
  99901. {
  99902. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99903. int nMaxDevListCount; // 用户分配的pstuDevListInfo个数
  99904. int nRetDevListCount; // 实际返回的pstuDevListInfo个数
  99905. NET_THINGS_DEVLIST_INFO* pstuDevListInfo; // 设备列表信息,用户分配内存,大小为sizeof(NET_THINGS_DEVLIST_INFO)*nMaxDevListCount
  99906. }NET_OUT_THINGS_GET_DEVLIST;
  99907. ///@brief CLIENT_GetThingsNetState接口输入参数
  99908. typedef struct tagNET_IN_THINGS_GET_NETSTATE
  99909. {
  99910. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99911. }NET_IN_THINGS_GET_NETSTATE;
  99912. ///@brief CLIENT_GetThingsNetState接口输出参数
  99913. typedef struct tagNET_OUT_THINGS_GET_NETSTATE
  99914. {
  99915. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99916. EM_THINGS_CONNECT_STATE emConnectState; // 设备连接状态
  99917. }NET_OUT_THINGS_GET_NETSTATE;
  99918. ///@brief 闸门控制输入参数(对应 EM_THINGS_SERVICE_TYPE_VALVECONTROL)
  99919. typedef struct tagNET_IN_THINGS_SERVICE_VALVECONTROL
  99920. {
  99921. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99922. BOOL bSwitch; // 开关
  99923. char szProductID[64]; // 产品ID
  99924. char szDeviceID[64]; // 设备ID
  99925. }NET_IN_THINGS_SERVICE_VALVECONTROL;
  99926. ///@brief 闸门控制输出参数(对应 EM_THINGS_SERVICE_TYPE_VALVECONTROL)
  99927. typedef struct tagNET_OUT_THINGS_SERVICE_VALVECONTROL
  99928. {
  99929. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99930. BOOL bResult; // 设置结果,实际闸门控制设置成功/失败已该值为准
  99931. int nErrcode; // 物模型协议错误码定义
  99932. char szProductID[64]; // 产品ID
  99933. char szDeviceID[64]; // 设备ID
  99934. }NET_OUT_THINGS_SERVICE_VALVECONTROL;
  99935. ///@brief 电量清零输入参数(对应 EM_THINGS_SERVICE_TYPE_CHARGECLEAR)
  99936. typedef struct tagNET_IN_THINGS_SERVICE_CHARGECLEAR
  99937. {
  99938. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99939. char szProductID[64]; // 产品ID
  99940. char szDeviceID[64]; // 设备ID
  99941. }NET_IN_THINGS_SERVICE_CHARGECLEAR;
  99942. ///@brief 电量清零输出参数(对应 EM_THINGS_SERVICE_TYPE_CHARGECLEAR)
  99943. typedef struct tagNET_OUT_THINGS_SERVICE_CHARGECLEAR
  99944. {
  99945. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99946. int nErrcode; // 物模型协议错误码定义
  99947. char szProductID[64]; // 产品ID
  99948. char szDeviceID[64]; // 设备ID
  99949. }NET_OUT_THINGS_SERVICE_CHARGECLEAR;
  99950. ///@brief 漏电自检输入参数(对应 EM_THINGS_SERVICE_TYPE_LEAKCURTPOST)
  99951. typedef struct tagNET_IN_THINGS_SERVICE_LEAKCURTPOST
  99952. {
  99953. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99954. char szProductID[64]; // 产品ID
  99955. char szDeviceID[64]; // 设备ID
  99956. }NET_IN_THINGS_SERVICE_LEAKCURTPOST;
  99957. ///@brief 漏电自检输出参数(对应 EM_THINGS_SERVICE_TYPE_LEAKCURTPOST)
  99958. typedef struct tagNET_OUT_THINGS_SERVICE_LEAKCURTPOST
  99959. {
  99960. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99961. int nErrcode; // 物模型协议错误码定义
  99962. char szProductID[64]; // 产品ID
  99963. char szDeviceID[64]; // 设备ID
  99964. BOOL bCheckResult; // 检测结果
  99965. char szErrorMsg[1024]; // 失败原因
  99966. }NET_OUT_THINGS_SERVICE_LEAKCURTPOST;
  99967. ///@brief 漏电自检异步输入参数(对应 EM_THINGS_SERVICE_TYPE_LEAKCURTPOSTASYNC)
  99968. typedef struct tagNET_IN_THINGS_SERVICE_LEAKCURTPOSTASYNC
  99969. {
  99970. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99971. char szProductID[64]; // 产品ID
  99972. char szDeviceID[64]; // 设备ID
  99973. }NET_IN_THINGS_SERVICE_LEAKCURTPOSTASYNC;
  99974. ///@brief 漏电自检异步输出参数(对应 EM_THINGS_SERVICE_TYPE_LEAKCURTPOSTASYNC)
  99975. typedef struct tagNET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC
  99976. {
  99977. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99978. int nErrcode; // 物模型协议错误码定义
  99979. char szProductID[64]; // 产品ID
  99980. char szDeviceID[64]; // 设备ID
  99981. BOOL bCheckResult; // 检测结果
  99982. char szErrorMsg[1024]; // 失败原因
  99983. }NET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC;
  99984. ///@brief 空开红蓝灯闪烁输入参数(对应 EM_THINGS_SERVICE_TYPE_AIRSWITHFIND)
  99985. typedef struct tagNET_IN_THINGS_SERVICE_AIRSWITHFIND
  99986. {
  99987. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99988. char szProductID[64]; // 产品ID
  99989. char szDeviceID[64]; // 设备ID
  99990. }NET_IN_THINGS_SERVICE_AIRSWITHFIND;
  99991. ///@brief 空开红蓝灯闪烁输出参数(对应 EM_THINGS_SERVICE_TYPE_AIRSWITHFIND)
  99992. typedef struct tagNET_OUT_THINGS_SERVICE_AIRSWITHFIND
  99993. {
  99994. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  99995. int nErrcode; // 物模型协议错误码定义
  99996. char szProductID[64]; // 产品ID
  99997. char szDeviceID[64]; // 设备ID
  99998. }NET_OUT_THINGS_SERVICE_AIRSWITHFIND;
  99999. ///@brief 空开恢复出厂设置输入参数(对应 EM_THINGS_SERVICE_TYPE_AIRSWITHRESET)
  100000. typedef struct tagNET_IN_THINGS_SERVICE_AIRSWITHRESET
  100001. {
  100002. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100003. char szProductID[64]; // 产品ID
  100004. char szDeviceID[64]; // 设备ID
  100005. }NET_IN_THINGS_SERVICE_AIRSWITHRESET;
  100006. ///@brief 空开恢复出厂设置输出参数(对应 EM_THINGS_SERVICE_TYPE_AIRSWITHRESET)
  100007. typedef struct tagNET_OUT_THINGS_SERVICE_AIRSWITHRESET
  100008. {
  100009. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100010. int nErrcode; // 物模型协议错误码定义
  100011. char szProductID[64]; // 产品ID
  100012. char szDeviceID[64]; // 设备ID
  100013. }NET_OUT_THINGS_SERVICE_AIRSWITHRESET;
  100014. ///@brief 场景规则类型
  100015. typedef enum tagEM_THINGS_RULECONTENT_TYPE
  100016. {
  100017. EM_THINGS_RULECONTENT_TYPE_UNKNOWN, // 未知
  100018. EM_THINGS_RULECONTENT_TYPE_IFTTT, // IFTTT类型
  100019. }EM_THINGS_RULECONTENT_TYPE;
  100020. /* 每一个域都使用数字,但还可以出现如下特殊字符,它们的含义是:
  100021. (1)*:表示匹配该域的任意值。假如在Minutes域使用*, 即表示每分钟都会触发事件。
  100022. (2)?:只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发,实际上并不是这样。
  100023. (3)-:表示范围。例如在Minutes域使用5-20,表示从5分到20分钟每分钟触发一次
  100024. (4)/:表示起始时间开始触发,然后每隔固定时间触发一次。例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次.
  100025. (5),:表示列出枚举值。例如:在Minutes域使用5,20,则意味着在5和20分每分钟触发一次。
  100026. (6)L:表示最后,只能出现在DayofWeek和DayofMonth域。如果在DayofWeek域使用5L,意味着在最后的一个星期四触发。
  100027. (7)W:表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份 。
  100028. (8)LW:这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五。
  100029. (9)#:用于确定每个月第几个星期几,只能出现在DayofMonth域。例如在4#2,表示某月的第二个星期三。
  100030. 例子"0 0 8 ? 1-6 1/5 *", // 每年的1-6月,每周1-周5,早上8:00:00 */
  100031. ///@brief 定时触发类型Cron内容
  100032. typedef struct tagNET_THINGS_TRIGGER_TIMER_CORN
  100033. {
  100034. char szSeconds[8]; // 秒,值:0~59的整数以及特殊4个字符, - * /
  100035. char szMinutes[8]; // 分,值:0~59的整数以及特殊4个字符, - * /
  100036. char szHours[8]; // 时,值:0~23的整数以及特殊4个字符, - * /
  100037. char szDayofMonth[8]; // 日期,值:1~31的整数(但是你需要考虑你月的天数)以及特殊8个字符, - * ? / L W C
  100038. char szMonth[8]; // 月份,值:1~12的整数或者 JAN-DEC以及特殊4个字符, - * /
  100039. char szDayofWeek[8]; // 星期,值:1~7的整数或者 SUN-SAT以及特殊8个字符, - * ? / L W C
  100040. char szYear[8]; // 年,值:1970~2099的整数以及特殊4个字符, - * /
  100041. char szReserve[256]; // 保留字节
  100042. }NET_THINGS_TRIGGER_TIMER_CORN;
  100043. ///@brief 定时触发类型内容表达式类型
  100044. typedef enum tagEM_THINGS_TRIGGER_TIMER_CORN_TYPE
  100045. {
  100046. EM_THINGS_TRIGGER_TIMER_CORN_TYPE_UNKNOWN, // 未知
  100047. EM_THINGS_TRIGGER_TIMER_CORN_TYPE_QUARTZCORN, // "quartz_cron" 表达式结构:$second $minute $hour $dayofmonth $month $dayofweek $year
  100048. EM_THINGS_TRIGGER_TIMER_CORN_TYPE_LINUX, // "linux" 表达式结构:$minute $hour $day of month $month $dayofweek
  100049. }EM_THINGS_TRIGGER_TIMER_CORN_TYPE;
  100050. ///@brief 定时触发类型内容(对应EM_THINGS_TRIGGER_TYPE_TRIGGER_TIMER)
  100051. typedef struct tagNET_THINGS_RULECONTENT_TRIGGER_TIMER
  100052. {
  100053. NET_THINGS_TRIGGER_TIMER_CORN stuCron; // Cron时间格式
  100054. EM_THINGS_TRIGGER_TIMER_CORN_TYPE emCronType; // Corn表达式类
  100055. char szTimezoneID[64]; // 时区,示例:Asia/Shanghai
  100056. char szReserve[256]; // 保留字节
  100057. }NET_THINGS_RULECONTENT_TRIGGER_TIMER;
  100058. ///@brief 设备属性触发类型内容(对应EM_THINGS_TRIGGER_TYPE_TRIGGER_PROPERTY)
  100059. typedef struct tagNET_THINGS_RULECONTENT_TRIGGER_PROPERTY
  100060. {
  100061. char szProductId[64]; // 设备类型
  100062. char szDeviceName[32]; // 设备ID
  100063. char szPropertyName[32]; // 属性名称
  100064. char szCompareType[8]; // 对比格式:< ==等
  100065. char szCompareValue[32]; // 对比值
  100066. EM_PROPERTIES_VALUE_TYPE emCompareValueType; //对比值类型
  100067. char szReserve[256]; // 保留字节
  100068. }NET_THINGS_RULECONTENT_TRIGGER_PROPERTY;
  100069. ///@brief 场景的触发类型
  100070. typedef enum tagEM_THINGS_TRIGGER_TYPE
  100071. {
  100072. EM_THINGS_TRIGGER_TYPE_UNKNOWN, // 未知
  100073. EM_THINGS_TRIGGER_TYPE_TRIGGER_TIMER, // "trigger/timer" 定时触发,对应结构体NET_THINGS_RULECONTENT_TRIGGER_TIMER
  100074. EM_THINGS_TRIGGER_TYPE_TRIGGER_PROPERTY, // "trigger/device/property" 设备属性触发,对应结构体NET_THINGS_RULECONTENT_TRIGGER_PROPERTY
  100075. }EM_THINGS_TRIGGER_TYPE;
  100076. ///@brief 场景的触发器
  100077. typedef struct tagNET_THINGS_RULECONTENT_TRIGGER
  100078. {
  100079. EM_THINGS_TRIGGER_TYPE emUri; // 场景的触发类型,见EM_THINGS_TRIGGER_TYPE
  100080. NET_THINGS_RULECONTENT_TRIGGER_TIMER stuTriggerTimer; // 定时触发,emUri为EM_THINGS_TRIGGER_TYPE_TRIGGER_TIMER有效
  100081. NET_THINGS_RULECONTENT_TRIGGER_PROPERTY stuTriggerProperty; // 设备属性触发,emUri为EM_THINGS_TRIGGER_TYPE_TRIGGER_PROPERTY有效
  100082. char szReserve[1024]; // 保留字节
  100083. }NET_THINGS_SERVICE_RULECONTENT_TRIGGER;
  100084. ///@brief 设置设备属性类型内容(对应EM_THINGS_ACTION_TYPE_SETPROPERTY)
  100085. typedef struct tagNET_THINGS_RULECONTENT_ACTION_SETPROPERTY
  100086. {
  100087. char szProductId[64]; // 设备类型
  100088. char szDeviceName[32]; // 设备ID
  100089. char szPropertyName[32]; // 属性名称
  100090. char szPropertyValue[32];// 属性值
  100091. EM_PROPERTIES_VALUE_TYPE emPropertyValueType; //属性值类型
  100092. char szReserve[256]; // 保留字节
  100093. }NET_THINGS_RULECONTENT_ACTION_SETPROPERTY;
  100094. ///@brief 场景触发执行动作类型
  100095. typedef enum tagEM_THINGS_ACTION_TYPE
  100096. {
  100097. EM_THINGS_ACTION_TYPE_UNKNOWN, // 未知
  100098. EM_THINGS_ACTION_TYPE_SETPROPERTY, // "action/device/setProperty" 设置设备属性,对应结构体NET_THINGS_RULECONTENT_ACTION_SETPROPERTY
  100099. }EM_THINGS_ACTION_TYPE;
  100100. ///@brief 场景触发执行动作
  100101. typedef struct tagNET_THINGS_RULECONTENT_ACTION
  100102. {
  100103. EM_THINGS_ACTION_TYPE emActionUri; // 场景触发执行动作类型,见EM_THINGS_ACTION_TYPE
  100104. NET_THINGS_RULECONTENT_ACTION_SETPROPERTY stuActionSetProperty; // 设置设备属性,emUri为EM_THINGS_ACTION_TYPE_SETPROPERTY有效
  100105. char szReserve[1024]; // 保留字节
  100106. }NET_THINGS_SERVICE_RULECONTENT_ACTION;
  100107. ///@brief 场景触发过滤条件类型
  100108. typedef enum tagEM_THINGS_CONDITION_TYPE
  100109. {
  100110. EM_THINGS_CONDITION_TYPE_UNKNOWN, // 未知
  100111. EM_THINGS_CONDITION_TYPE_TIMERANGE, // "condition/timeRange" 比较当前时间是否在一个区间内,对应结构体
  100112. EM_THINGS_CONDITION_TYPE_PROPERTY, // "condition/device/property" 设备属性过滤,对应结构体
  100113. }EM_THINGS_CONDITION_TYPE;
  100114. ///@brief 比较当前时间是否在一个区间内内容(对应EM_THINGS_CONDITION_TYPE_TIMERANGE)
  100115. typedef struct tagNET_THINGS_RULECONTENT_CONDITION_TIMER
  100116. {
  100117. NET_THINGS_TRIGGER_TIMER_CORN stuCron; // Cron时间格式
  100118. EM_THINGS_TRIGGER_TIMER_CORN_TYPE emCronType; // Corn表达式类
  100119. char szTimezoneID[64]; // 时区,示例:Asia/Shanghai
  100120. char szReserve[256]; // 保留字节
  100121. }NET_THINGS_RULECONTENT_CONDITION_TIMER;
  100122. ///@brief 设备属性过滤内容(对应EM_THINGS_CONDITION_TYPE_PROPERTY)
  100123. typedef struct tagNET_THINGS_RULECONTENT_CONDITION_PROPERTY
  100124. {
  100125. char szProductId[64]; // 设备类型
  100126. char szDeviceName[32]; // 设备ID
  100127. char szPropertyName[32]; // 属性名称
  100128. char szCompareType[8]; // 对比格式:< ==等
  100129. char szCompareValue[32]; // 对比值
  100130. EM_PROPERTIES_VALUE_TYPE emCompareValueType; //对比值类型
  100131. char szReserve[256]; // 保留字节
  100132. }NET_THINGS_RULECONTENT_CONDITION_PROPERTY;
  100133. ///@brief 场景触发过滤条件
  100134. typedef struct tagNET_THINGS_RULECONTENT_CONDITION
  100135. {
  100136. EM_THINGS_CONDITION_TYPE emConditionUri; // 场景触发过滤条件类型,见EM_THINGS_CONDITION_TYPE
  100137. NET_THINGS_RULECONTENT_TRIGGER_TIMER stuTriggerTimer; // 比较当前时间是否在一个区间内,emConditionUri为EM_THINGS_CONDITION_TYPE_TIMERANGE有效
  100138. NET_THINGS_RULECONTENT_CONDITION_PROPERTY stuConditionProperty; // 设置设备属性,emConditionUri为EM_THINGS_CONDITION_TYPE_PROPERTY有效
  100139. char szReserve[1024]; // 保留字节
  100140. }NET_THINGS_SERVICE_RULECONTENT_CONDITION;
  100141. ///@brief 联动规则
  100142. typedef struct tagNET_THINGS_SERVICE_RULECONTENT
  100143. {
  100144. EM_THINGS_RULECONTENT_TYPE emRuleContentType; // 场景规则类型
  100145. int nTriggerNum; // 场景触发个数
  100146. NET_THINGS_SERVICE_RULECONTENT_TRIGGER* pstuTrigger; // 场景的触发器,用户分配内存,大小为nTriggerNum * sizeof(NET_THINGS_SERVICE_RULECONTENT_TRIGGER)
  100147. NET_THINGS_SERVICE_RULECONTENT_ACTION* pstuAction; // 场景触发执行动作,用户分配内存,大小为nActionNum * sizeof(NET_THINGS_SERVICE_RULECONTENT_ACTION)
  100148. int nActionNum; // 场景触发执行动作个数
  100149. int nConditionNum; // 场景触发过滤条件个数
  100150. NET_THINGS_SERVICE_RULECONTENT_CONDITION* pstuCondition; // 场景触发过滤条件,用户分配内存,大小为nConditionNum * sizeof(NET_THINGS_SERVICE_RULECONTENT_CONDITION)
  100151. char szReserve[1024]; // 保留字节
  100152. }NET_THINGS_SERVICE_RULECONTENT;
  100153. ///@brief 添加联动规则输入参数(对应 EM_THINGS_SERVICE_TYPE_ADDRULE)
  100154. typedef struct tagNET_IN_THINGS_SERVICE_ADDRULE
  100155. {
  100156. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100157. char szProductID[64]; // 产品ID,全网唯一
  100158. char szDeviceID[64]; // 设备ID
  100159. char szClassName[256]; // 类型名称“timer”、“alarm”
  100160. NET_THINGS_SERVICE_RULECONTENT stuRuleContent; // 联动规则内容
  100161. }NET_IN_THINGS_SERVICE_ADDRULE;
  100162. ///@brief 添加联动规则输出参数(对应 EM_THINGS_SERVICE_TYPE_ADDRULE)
  100163. typedef struct tagNET_OUT_THINGS_SERVICE_ADDRULE
  100164. {
  100165. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100166. int nErrcode; // 物模型协议错误码定义
  100167. char szProductID[64]; // 产品ID
  100168. char szDeviceID[64]; // 设备ID
  100169. char szRuleID[256]; // 规则ID
  100170. }NET_OUT_THINGS_SERVICE_ADDRULE;
  100171. ///@brief 删除联动规则输入参数(对应 EM_THINGS_SERVICE_TYPE_DELRULE)
  100172. typedef struct tagNET_IN_THINGS_SERVICE_DELRULE
  100173. {
  100174. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100175. char szProductID[64]; // 产品ID,全网唯一
  100176. char szDeviceID[64]; // 设备ID
  100177. char szRuleID[256]; // 规则ID
  100178. char szClassName[256]; // 类型名称“timer”、“alarm”
  100179. }NET_IN_THINGS_SERVICE_DELRULE;
  100180. ///@brief 删除联动规则输出参数(对应 EM_THINGS_SERVICE_TYPE_DELRULE)
  100181. typedef struct tagNET_OUT_THINGS_SERVICE_DELRULE
  100182. {
  100183. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100184. int nErrcode; // 物模型协议错误码定义
  100185. char szProductID[64]; // 产品ID
  100186. char szDeviceID[64]; // 设备ID
  100187. }NET_OUT_THINGS_SERVICE_DELRULE;
  100188. ///@brief 修改联动规则输入参数(对应 EM_THINGS_SERVICE_TYPE_MODRULE)
  100189. typedef struct tagNET_IN_THINGS_SERVICE_MODRULE
  100190. {
  100191. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100192. char szProductID[64]; // 产品ID,全网唯一
  100193. char szDeviceID[64]; // 设备ID
  100194. char szRuleID[256]; // 规则ID
  100195. char szClassName[256]; // 类型名称“timer”、“alarm”
  100196. char szRuleContentType[256]; // 规则内容类型"Action"
  100197. NET_THINGS_SERVICE_RULECONTENT stuRuleContent; // 联动规则内容
  100198. }NET_IN_THINGS_SERVICE_MODRULE;
  100199. ///@brief 修改联动规则输出参数(对应 EM_THINGS_SERVICE_TYPE_MODRULE)
  100200. typedef struct tagNET_OUT_THINGS_SERVICE_MODRULE
  100201. {
  100202. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100203. int nErrcode; // 物模型协议错误码定义
  100204. char szProductID[64]; // 产品ID
  100205. char szDeviceID[64]; // 设备ID
  100206. }NET_OUT_THINGS_SERVICE_MODRULE;
  100207. ///@brief 查询联动规则输入参数(对应 EM_THINGS_SERVICE_TYPE_QUERULE)
  100208. typedef struct tagNET_IN_THINGS_SERVICE_QUERULE
  100209. {
  100210. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100211. char szProductID[64]; // 产品ID,全网唯一
  100212. char szDeviceID[64]; // 设备ID
  100213. int nPageSize; // 每一页的数据大小
  100214. int nPage; // 按页查询
  100215. char szClassName[256]; // 类型名称“timer”、“alarm”
  100216. }NET_IN_THINGS_SERVICE_QUERULE;
  100217. ///@brief 联动规则
  100218. typedef struct tagNET_THINGS_SERVICE_QUERULE_RULECONTENT
  100219. {
  100220. EM_THINGS_RULECONTENT_TYPE emRuleContentType; // 场景规则类型
  100221. int nMaxTriggerNum; // 用户分配的pstuTrigger个数
  100222. int nRetTriggerNum; // 实际返回的pstuTrigger个数
  100223. NET_THINGS_SERVICE_RULECONTENT_TRIGGER* pstuTrigger; // 场景的触发器,用户分配内存,大小为nMaxTriggerNum * sizeof(NET_THINGS_SERVICE_RULECONTENT_TRIGGER)
  100224. int nMaxActionNum; // 用户分配的pstuAction个数
  100225. int nRetActionNum; // 实际返回的pstuAction个数
  100226. NET_THINGS_SERVICE_RULECONTENT_ACTION* pstuAction; // 场景触发执行动作,用户分配内存,大小为nMaxActionNum * sizeof(NET_THINGS_SERVICE_RULECONTENT_ACTION)
  100227. int nMaxConditionNum; // 用户分配的pstuCondition个数
  100228. int nRetConditionNum; // 实际返回的pstuCondition个数
  100229. NET_THINGS_SERVICE_RULECONTENT_CONDITION* pstuCondition; // 场景触发过滤条件,用户分配内存,大小为nMaxConditionNum * sizeof(NET_THINGS_SERVICE_RULECONTENT_CONDITION)
  100230. char szReserve[1024]; // 保留字节
  100231. }NET_THINGS_SERVICE_QUERULE_RULECONTENT;
  100232. ///@brief 规则详情
  100233. typedef struct tagNET_THINGS_SERVICE_QUERULE_RULES
  100234. {
  100235. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100236. BOOL bEnable; // 使能
  100237. char szRuleID[256]; // 规则ID
  100238. NET_THINGS_SERVICE_QUERULE_RULECONTENT stuRuleContent; // 联动规则内容
  100239. }NET_THINGS_SERVICE_QUERULE_RULES;
  100240. ///@brief 查询联动规则输出参数(对应 EM_THINGS_SERVICE_TYPE_QUERULE)
  100241. typedef struct tagNET_OUT_THINGS_SERVICE_QUERULE
  100242. {
  100243. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100244. int nErrcode; // 物模型协议错误码定义
  100245. char szProductID[64]; // 产品ID
  100246. char szDeviceID[64]; // 设备ID
  100247. int nPageCount; // 页个数
  100248. int nPageSize; // 每一页的数据大小
  100249. int nTotal; // 总数
  100250. int nPage; // 按页查询
  100251. int nRetRulesNum; // 实际返回的pstuRules个数
  100252. int nMaxRulesNum; // 用户分配的pstuRules个数
  100253. NET_THINGS_SERVICE_QUERULE_RULES* pstuRules; // 规则详情,用户分配内存,大小为 nMaxRulesNum * sizeof(NET_THINGS_SERVICE_QUERULE_RULES)
  100254. }NET_OUT_THINGS_SERVICE_QUERULE;
  100255. ///@brief 使能联动规则输入参数(对应 EM_THINGS_SERVICE_TYPE_ENABLERULE)
  100256. typedef struct tagNET_IN_THINGS_SERVICE_ENABLE
  100257. {
  100258. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100259. char szProductID[64]; // 产品ID,全网唯一
  100260. char szDeviceID[64]; // 设备ID
  100261. BOOL bEnable; // 使能
  100262. char szRuleID[256]; // 规则ID
  100263. char szClassName[256]; // 类型名称“timer”、“alarm”
  100264. }NET_IN_THINGS_SERVICE_ENABLE;
  100265. ///@brief 使能联动规则输出参数(对应 EM_THINGS_SERVICE_TYPE_ENABLERULE)
  100266. typedef struct tagNET_OUT_THINGS_SERVICE_ENABLE
  100267. {
  100268. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100269. int nErrcode; // 物模型协议错误码定义
  100270. char szProductID[64]; // 产品ID
  100271. char szDeviceID[64]; // 设备ID
  100272. }NET_OUT_THINGS_SERVICE_ENABLE;
  100273. ///@brief 添加设备输入参数(对应 EM_THINGS_SERVICE_TYPE_ADDDEVICE)
  100274. typedef struct tagNET_IN_THINGS_SERVICE_ADDDEVICE
  100275. {
  100276. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100277. char szProductID[64]; // 产品ID,全网唯一
  100278. char szDeviceID[64]; // 设备ID
  100279. UINT nDevCata; // 添加设备类型,3:电表 5:塑壳 6:烟感
  100280. UINT nDev485Addr; // 485地址(塑壳、烟感填写)
  100281. char szDevSn[128]; // 设备序列号(电表填写)
  100282. char szDevName[128]; // 设备别名(电表填写)
  100283. }NET_IN_THINGS_SERVICE_ADDDEVICE;
  100284. ///@brief 添加设备输出参数(对应 EM_THINGS_SERVICE_TYPE_ADDDEVICE)
  100285. typedef struct tagNET_OUT_THINGS_SERVICE_ADDDEVICE
  100286. {
  100287. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100288. int nErrcode; // 物模型协议错误码定义
  100289. char szProductID[64]; // 产品ID
  100290. char szDeviceID[64]; // 设备ID
  100291. }NET_OUT_THINGS_SERVICE_ADDDEVICE;
  100292. ///@brief 子设备ID
  100293. typedef struct tagNET_THINGS_SERVICE_DELDEVICE_LIST
  100294. {
  100295. char szDevieID[64]; // 子设备ID
  100296. char szReserve[512]; // 保留字节
  100297. }NET_THINGS_SERVICE_DELDEVICE_LIST;
  100298. ///@brief 删除子设备输入参数(对应 EM_THINGS_SERVICE_TYPE_DELDEVICE)
  100299. typedef struct tagNET_IN_THINGS_SERVICE_DELDEVICE
  100300. {
  100301. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100302. int nDelidListCount; // 子设备ID个数
  100303. NET_THINGS_SERVICE_DELDEVICE_LIST stuDelidList[64]; // 子设备ID列表
  100304. char szProductID[64]; // 产品ID,全网唯一
  100305. char szDeviceID[64]; // 设备ID
  100306. }NET_IN_THINGS_SERVICE_DELDEVICE;
  100307. ///@brief 删除子设备输出参数(对应 EM_THINGS_SERVICE_TYPE_DELDEVICE)
  100308. typedef struct tagNET_OUT_THINGS_SERVICE_DELDEVICE
  100309. {
  100310. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100311. int nErrcode; // 物模型协议错误码定义
  100312. char szProductID[64]; // 产品ID
  100313. char szDeviceID[64]; // 设备ID
  100314. }NET_OUT_THINGS_SERVICE_DELDEVICE;
  100315. ///@brief 子设备替换输入参数(对应 EM_THINGS_SERVICE_TYPE_DEVREPLACE)
  100316. typedef struct tagNET_IN_THINGS_SERVICE_DEVREPLACE
  100317. {
  100318. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100319. char szProductID[64]; // 产品ID,全网唯一
  100320. char szDeviceID[64]; // 设备ID
  100321. char szReplacedDevID[64]; // 被替换空开ID
  100322. char szNewDevID[64]; // 新空开ID
  100323. }NET_IN_THINGS_SERVICE_DEVREPLACE;
  100324. ///@brief 子设备替换输出参数(对应 EM_THINGS_SERVICE_TYPE_DEVREPLACE)
  100325. typedef struct tagNET_OUT_THINGS_SERVICE_DEVREPLACE
  100326. {
  100327. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100328. int nErrcode; // 物模型协议错误码定义
  100329. char szProductID[64]; // 产品ID
  100330. char szDeviceID[64]; // 设备ID
  100331. }NET_OUT_THINGS_SERVICE_DEVREPLACE;
  100332. ///@brief 离线日志清除输入参数(对应 EM_THINGS_SERVICE_TYPE_OFFLINELOGCLEAN)
  100333. typedef struct tagNET_IN_THINGS_SERVICE_OFFLINELOGCLEAN
  100334. {
  100335. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100336. char szProductID[64]; // 产品ID,全网唯一
  100337. char szDeviceID[64]; // 设备ID
  100338. }NET_IN_THINGS_SERVICE_OFFLINELOGCLEAN;
  100339. ///@brief 离线日志清除输出参数(对应 EM_THINGS_SERVICE_TYPE_OFFLINELOGCLEAN)
  100340. typedef struct tagNET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN
  100341. {
  100342. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100343. int nErrcode; // 物模型协议错误码定义
  100344. char szProductID[64]; // 产品ID
  100345. char szDeviceID[64]; // 设备ID
  100346. }NET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN;
  100347. ///@brief 获取所有空开当前报警状态输入参数(对应 EM_THINGS_SERVICE_TYPE_CURRENTSTATUSGET)
  100348. typedef struct tagNET_IN_THINGS_SERVICE_CURRENTSTATUSGET
  100349. {
  100350. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100351. char szProductID[64]; // 产品ID,全网唯一
  100352. char szDeviceID[64]; // 设备ID
  100353. }NET_IN_THINGS_SERVICE_CURRENTSTATUSGET;
  100354. ///@brief 报警状态
  100355. typedef enum tagEM_THINGS_CURRENTSTATUSGET_STATUS
  100356. {
  100357. EM_THINGS_CURRENTSTATUSGET_STATUS_UNKNOWN = -1, // 未知
  100358. EM_THINGS_CURRENTSTATUSGET_STATUS_NORMAL, // 正常
  100359. EM_THINGS_CURRENTSTATUSGET_STATUS_EARLY, // 预警
  100360. EM_THINGS_CURRENTSTATUSGET_STATUS_ALARM, // 报警
  100361. }EM_THINGS_CURRENTSTATUSGET_STATUS;
  100362. ///@brief 设备状态数据
  100363. typedef struct tagNET_THINGS_SERVICE_CURRENTSTATUSGET_STATUS
  100364. {
  100365. char szDeviceID[64]; // 设备ID
  100366. EM_THINGS_CURRENTSTATUSGET_STATUS emStatus; // 报警状态
  100367. char szReserve[512]; // 保留字节
  100368. }NET_THINGS_SERVICE_CURRENTSTATUSGET_STATUS;
  100369. ///@brief 获取所有空开当前报警状态输出参数(对应 EM_THINGS_SERVICE_TYPE_CURRENTSTATUSGET)
  100370. typedef struct tagNET_OUT_THINGS_SERVICE_CURRENTSTATUSGET
  100371. {
  100372. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100373. int nErrcode; // 物模型协议错误码定义
  100374. char szProductID[64]; // 产品ID
  100375. char szDeviceID[64]; // 设备ID
  100376. int nRetStatusNum; // 实际返回stuStatus个数
  100377. NET_THINGS_SERVICE_CURRENTSTATUSGET_STATUS stuStatus[64]; // 设备状态数据
  100378. }NET_OUT_THINGS_SERVICE_CURRENTSTATUSGET;
  100379. ///@brief 物模型服务类型
  100380. typedef enum tagEM_THINGS_SERVICE_TYPE
  100381. {
  100382. EM_THINGS_SERVICE_TYPE_VALVECONTROL, // 阀门控制,入参:NET_IN_THINGS_SERVICE_VALVECONTROL,出参:NET_OUT_THINGS_SERVICE_VALVECONTROL
  100383. EM_THINGS_SERVICE_TYPE_CHARGECLEAR, // 电量清零,入参:NET_IN_THINGS_SERVICE_CHARGECLEAR,出参:NET_OUT_THINGS_SERVICE_CHARGECLEAR
  100384. EM_THINGS_SERVICE_TYPE_LEAKCURTPOST, // 漏电自检,入参:NET_IN_THINGS_SERVICE_LEAKCURTPOST,出参:NET_OUT_THINGS_SERVICE_LEAKCURTPOST
  100385. EM_THINGS_SERVICE_TYPE_LEAKCURTPOSTASYNC, // 漏电自检异步,入参:NET_IN_THINGS_SERVICE_LEAKCURTPOSTASYNC,出参:NET_OUT_THINGS_SERVICE_LEAKCURTPOSTASYNC
  100386. EM_THINGS_SERVICE_TYPE_AIRSWITHFIND, // 空开红蓝灯闪烁(寻找空开),入参:NET_IN_THINGS_SERVICE_AIRSWITHFIND,出参:NET_OUT_THINGS_SERVICE_AIRSWITHFIND
  100387. EM_THINGS_SERVICE_TYPE_AIRSWITHRESET, // 空开恢复出厂设置,入参:NET_IN_THINGS_SERVICE_AIRSWITHRESET,出参:NET_OUT_THINGS_SERVICE_AIRSWITHRESET
  100388. EM_THINGS_SERVICE_TYPE_ADDRULE, // 添加联动规则,入参:NET_IN_THINGS_SERVICE_ADDRULE,出参:NET_OUT_THINGS_SERVICE_ADDRULE
  100389. EM_THINGS_SERVICE_TYPE_DELRULE, // 删除联动规则,入参:NET_IN_THINGS_SERVICE_DELRULE,出参:NET_OUT_THINGS_SERVICE_DELRULE
  100390. EM_THINGS_SERVICE_TYPE_MODRULE, // 修改联动规则,入参:NET_IN_THINGS_SERVICE_MODRULE,出参:NET_OUT_THINGS_SERVICE_MODRULE
  100391. EM_THINGS_SERVICE_TYPE_QUERULE, // 查询联动规则,入参:NET_IN_THINGS_SERVICE_QUERULE,出参:NET_OUT_THINGS_SERVICE_QUERULE
  100392. EM_THINGS_SERVICE_TYPE_ENABLERULE, // 使能联动规则,入参:NET_IN_THINGS_SERVICE_ENABLE,出参:NET_OUT_THINGS_SERVICE_ENABLE
  100393. EM_THINGS_SERVICE_TYPE_ADDDEVICE, // 添加设备,入参:NET_IN_THINGS_SERVICE_ADDDEVICE,出参:NET_OUT_THINGS_SERVICE_ADDDEVICE
  100394. EM_THINGS_SERVICE_TYPE_DELDEVICE, // 删除子设备,入参:NET_IN_THINGS_SERVICE_DELDEVICE,出参:NET_OUT_THINGS_SERVICE_DELDEVICE
  100395. EM_THINGS_SERVICE_TYPE_DEVREPLACE, // 子设备替换,入参:NET_IN_THINGS_SERVICE_DEVREPLACE,出参:NET_OUT_THINGS_SERVICE_DEVREPLACE
  100396. EM_THINGS_SERVICE_TYPE_OFFLINELOGCLEAN, // 离线日志清除,入参:NET_IN_THINGS_SERVICE_OFFLINELOGCLEAN,出参:NET_OUT_THINGS_SERVICE_OFFLINELOGCLEAN
  100397. EM_THINGS_SERVICE_TYPE_CURRENTSTATUSGET, // 获取所有空开当前报警状态,入参:NET_IN_THINGS_SERVICE_CURRENTSTATUSGET,出参:NET_OUT_THINGS_SERVICE_CURRENTSTATUSGET
  100398. }EM_THINGS_SERVICE_TYPE;
  100399. ///@brief 历史数据主题列表
  100400. typedef struct tagNET_THINGS_START_HISTORYDATA_TOPICS
  100401. {
  100402. char szTopics[32]; // 历史数据具体内容,即历史数据分类由物模型定义决定,可以不填,默认下""
  100403. char szReserve[256]; // 保留字节
  100404. }NET_THINGS_START_HISTORYDATA_TOPICS;
  100405. ///@brief CLIENT_StartThingsHistoryData 输入参数
  100406. typedef struct tagNET_IN_THINGS_START_HISTORYDATA
  100407. {
  100408. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100409. int nTopicsCount; // 历史数据主题个数
  100410. NET_THINGS_START_HISTORYDATA_TOPICS stuTopics[64]; // 历史数据主题列表
  100411. }NET_IN_THINGS_START_HISTORYDATA;
  100412. ///@brief CLIENT_StartThingsHistoryData 输出参数
  100413. typedef struct tagNET_OUT_THINGS_START_HISTORYDATA
  100414. {
  100415. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100416. DWORD dwCount; // 符合查询条件的总数
  100417. }NET_OUT_THINGS_START_HISTORYDATA;
  100418. ///@brief CLIENT_DoFindThingsHistoryData 输入参数
  100419. typedef struct tagNET_IN_THINGS_DOFIND_HISTORYDATA
  100420. {
  100421. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100422. UINT uOffset; // 偏移量
  100423. UINT uCount; // 每次查询数量
  100424. }NET_IN_THINGS_DOFIND_HISTORYDATA;
  100425. ///@brief 查询结果物模型属性信息
  100426. typedef struct tagNET_THINGS_HISTORYDATA_PROPER_INFO
  100427. {
  100428. char szKey[64]; // DQZT、FHZYY、Action等
  100429. char szValue[256]; // 1,true,"normal"等
  100430. EM_PROPERTIES_VALUE_TYPE emValueType; // szValue对应的类型;有int,bool,string类型
  100431. int nIntArrayValueNum; // stuIntArrayValue实际个数
  100432. NET_PROPERTIES_INTARRAY_VALUE stuIntArrayValue[64]; // int+Array值,当emValueType为EM_PROPERTIES_VALUE_INTARRAY
  100433. char szReserved[256]; // 预留字节
  100434. }NET_THINGS_HISTORYDATA_PROPER_INFO;
  100435. ///@brief 历史数据内容
  100436. typedef struct tagNET_THINGS_HISTORYDATA
  100437. {
  100438. char szEventID[32]; // 标识符, "CZSJ_ZMZTGB"等
  100439. char szDeviceID[32]; // 设备ID
  100440. char szDevSN[64]; // 设备序列ID
  100441. NET_TIME_EX stuEventTime; // 数据时间
  100442. char szProductID[32]; // 产品ID
  100443. int nOrder; // 序号
  100444. UINT nRetProInfoNum; // 实际返回的pstuProInfo个数
  100445. UINT nMaxProInfoNum; // 用户分配的pstuProInfo个数
  100446. NET_THINGS_HISTORYDATA_PROPER_INFO* pstuProInfo;// 查询结果物模型属性信息,用户分配内存,大小为 nMaxProInfoNum * sizeof(NET_THINGS_HISTORYDATA_PROPER_INFO)
  100447. //格式:参数含义;参数名称;数据类型
  100448. //1. 当前状态;DQZT;bool
  100449. //2. 分合闸原因;FHZYY;int
  100450. //3. 事件动作;Happen; int
  100451. //4. 对应值;DYZ;int
  100452. //5. 报警动作;Action; int
  100453. //6. A相对应值;DYZA;int
  100454. //7. B相对应值;DYZB;int
  100455. //8. C相对应值;DYZC;int
  100456. //9. 检测结果;JCJG;bool
  100457. //10. 失败原因;SBYY;string
  100458. //11. 设备ID;SBID;string
  100459. //12. 变更类型;BGLX;int
  100460. //13. 任务ID;RWID;string
  100461. //14. 执行时间;ZXSJ;string
  100462. //15. 失败原因;SBYY;string
  100463. //16. 执行参数; CJXX_ZMZT; bool
  100464. //17. 执行结果;ZXJG;bool
  100465. char szReserve[512]; // 保留字节
  100466. }NET_THINGS_HISTORYDATA;
  100467. ///@brief CLIENT_DoFindThingsHistoryData 输出参数
  100468. typedef struct tagNET_OUT_THINGS_DOFIND_HISTORYDATA
  100469. {
  100470. DWORD dwSize; // 结构体大小, 调用者必须初始化该字段
  100471. int nCount; // 查询到的数量
  100472. int nMaxHisDataNum; // 用户分配的pstuHistoryData个数
  100473. NET_THINGS_HISTORYDATA* pstuHistoryData; // 历史数据内容,用户分配内存,大小为 nMaxHisDataNum * sizeof(NET_THINGS_HISTORYDATA)
  100474. }NET_OUT_THINGS_DOFIND_HISTORYDATA;
  100475. ///@brief 智慧用电Things配置获取接口
  100476. ///@param[in] lLoginID 登录句柄
  100477. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100478. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100479. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  100480. ///@return TRUE表示成功 FALSE表示失败
  100481. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetThingsConfig(LLONG lLoginID, const NET_IN_THINGS_GET* pInParam, NET_OUT_THINGS_GET* pOutParam, int nWaitTime);
  100482. ///@brief 智慧用电Things配置设置接口
  100483. ///@param[in] lLoginID 登录句柄
  100484. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100485. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100486. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  100487. ///@return TRUE表示成功 FALSE表示失败
  100488. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetThingsConfig(LLONG lLoginID, const NET_IN_THINGS_SET* pInParam, NET_OUT_THINGS_SET* pOutParam, int nWaitTime);
  100489. ///@brief 智慧用电Things物模型属性订阅接口
  100490. ///@param[in] lLoginID 登录句柄
  100491. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100492. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100493. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  100494. ///@return 订阅句柄
  100495. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachThingsInfo(LLONG lLoginID, const NET_IN_THINGS_ATTACH* pInParam, NET_OUT_THINGS_ATTACH* pOutParam, int nWaitTime);
  100496. ///@brief 智慧用电Things取消物模型属性订阅接口
  100497. ///@param[in] lAttachHandle 订阅句柄
  100498. ///@return TRUE表示成功 FALSE表示失败
  100499. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachThingsInfo(LLONG lAttachHandle);
  100500. ///@brief 智慧用电Things获取设备能力集接口
  100501. ///@param[in] lLoginID 登录句柄
  100502. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100503. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100504. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  100505. ///@return TRUE表示成功 FALSE表示失败
  100506. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetThingsCaps(LLONG lLoginID, const NET_IN_THINGS_GET_CAPS* pInParam, NET_OUT_THINGS_GET_CAPS* pOutParam, int nWaitTime);
  100507. ///@brief 智慧用电Things获取设备列表接口
  100508. ///@param[in] lLoginID 登录句柄
  100509. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100510. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100511. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  100512. ///@return TRUE表示成功 FALSE表示失败
  100513. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetThingsDevList(LLONG lLoginID, const NET_IN_THINGS_GET_DEVLIST* pInParam, NET_OUT_THINGS_GET_DEVLIST* pOutParam, int nWaitTime);
  100514. ///@brief 智慧用电Things获取设备连接状态信息接口
  100515. ///@param[in] lLoginID 登录句柄
  100516. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100517. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100518. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  100519. ///@return TRUE表示成功 FALSE表示失败
  100520. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetThingsNetState(LLONG lLoginID, const NET_IN_THINGS_GET_NETSTATE* pInParam, NET_OUT_THINGS_GET_NETSTATE* pOutParam, int nWaitTime);
  100521. ///@brief 智慧用电Things物模型服务调用接口
  100522. ///@param[in] lLoginID 登录句柄
  100523. ///@param[in] emType 物模型服务类型
  100524. ///@param[in] pInBuf 接口输入参数,参考emType类型,内存资源由用户申请和释放
  100525. ///@param[out] pOutBuf 接口输出参数, 参考emType类型,内存资源由用户申请和释放
  100526. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  100527. ///@return TRUE表示成功 FALSE表示失败
  100528. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ThingsServiceOperate(LLONG lLoginID, EM_THINGS_SERVICE_TYPE emType, void* pInBuf, void* pOutBuf, int nWaitTime);
  100529. ///@brief 开始获取设备历史数据接口
  100530. ///@param[in] lLoginID 登录句柄
  100531. ///@param[in] pstInParam 接口输入参数, 内存资源由用户申请和释放
  100532. ///@param[out] pstOutParam 接口输出参数, 内存资源由用户申请和释放
  100533. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  100534. ///@return 查找句柄
  100535. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartThingsHistoryData(LLONG lLoginID, const NET_IN_THINGS_START_HISTORYDATA* pstInParam, NET_OUT_THINGS_START_HISTORYDATA* pstOutParam, int nWaitTime);
  100536. ///@brief 获取设备历史数据结果接口
  100537. ///@param[in] lFindHandle 查找句柄
  100538. ///@param[in] pstInParam 接口输入参数, 内存资源由用户申请和释放
  100539. ///@param[out] pstOutParam 接口输出参数, 内存资源由用户申请和释放
  100540. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  100541. ///@return TRUE表示成功 FALSE表示失败
  100542. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoFindThingsHistoryData(LLONG lFindHandle, const NET_IN_THINGS_DOFIND_HISTORYDATA* pstInParam, NET_OUT_THINGS_DOFIND_HISTORYDATA *pstOutParam, int nWaitTime);
  100543. ///@brief 停止获取设备历史数据
  100544. ///@param[in] lFindHandle 查找句柄
  100545. ///@return TRUE表示成功 FALSE表示失败
  100546. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopThingsHistoryData(LLONG lFindHandle);
  100547. /***************************智慧用电Things接口 END***************************/
  100548. ///@brief CLIENT_VerifyUpgradeVerify 接口入参
  100549. typedef struct tagNET_IN_VERIFY_UPGRADE_VERIFY
  100550. {
  100551. DWORD dwSize; // 结构体大小
  100552. char szData[256]; // 加密数据
  100553. } NET_IN_VERIFY_UPGRADE_VERIFY;
  100554. ///@brief CLIENT_VerifyUpgradeVerify 接口出参
  100555. typedef struct tagNET_OUT_VERIFY_UPGRADE_VERIFY
  100556. {
  100557. DWORD dwSize; // 结构体大小
  100558. } NET_OUT_VERIFY_UPGRADE_VERIFY;
  100559. ///@brief 通过将得到的随机经过转换加密后返回给设备端
  100560. CLIENT_NET_API BOOL CALL_METHOD CLIENT_VerifyUpgradeVerify(LLONG lLoginID, const NET_IN_VERIFY_UPGRADE_VERIFY* pInParam, NET_OUT_VERIFY_UPGRADE_VERIFY* pOutParam, int nWaitTime);
  100561. ///@brief CLIENT_GetUpgradeVerifyCurrentData 接口入参
  100562. typedef struct tagNET_IN_GET_UPGRADE_VERIFY_CURRENT_DATA
  100563. {
  100564. DWORD dwSize; // 结构体大小
  100565. } NET_IN_GET_UPGRADE_VERIFY_CURRENT_DATA;
  100566. ///@brief 验证信息
  100567. typedef struct tagNET_VERIFY_INFO
  100568. {
  100569. char szData[64]; // 随机数
  100570. char szPublicKeyVersion[16]; // 设备端公钥版本
  100571. char szReserved[1024]; // 保留字节
  100572. } NET_VERIFY_INFO;
  100573. ///@brief CLIENT_GetUpgradeVerifyCurrentData 接口出参
  100574. typedef struct tagNET_OUT_GET_UPGRADE_VERIFY_CURRENT_DATA
  100575. {
  100576. DWORD dwSize; // 结构体大小
  100577. NET_VERIFY_INFO stuVerifyInfo; // 验证信息
  100578. } NET_OUT_GET_UPGRADE_VERIFY_CURRENT_DATA;
  100579. ///@brief 获取当前随机数信息
  100580. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetUpgradeVerifyCurrentData(LLONG lLoginID, const NET_IN_GET_UPGRADE_VERIFY_CURRENT_DATA* pInParam, NET_OUT_GET_UPGRADE_VERIFY_CURRENT_DATA* pOutParam, int nWaitTime);
  100581. ///@brief CLIENT_GetRegisterStatus 接口入参
  100582. typedef struct tagNET_IN_GET_REGISTER_STATUS
  100583. {
  100584. DWORD dwSize; // 结构体大小
  100585. } NET_IN_GET_REGISTER_STATUS;
  100586. ///@brief CLIENT_GetRegisterStatus 接口出参
  100587. typedef struct tagNET_OUT_GET_REGISTER_STATUS
  100588. {
  100589. DWORD dwSize; // 结构体大小
  100590. BOOL bIsRegistered; // 注册的状态, true:注册成功, false:注册失败或未注册
  100591. } NET_OUT_GET_REGISTER_STATUS;
  100592. ///@brief 获取注册的状态
  100593. ///@param[in] lLoginID: 登录句柄
  100594. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  100595. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  100596. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  100597. ///@return TRUE表示成功FALSE表示失败
  100598. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetRegisterStatus(LLONG lLoginID, const NET_IN_GET_REGISTER_STATUS* pstuInParam, NET_OUT_GET_REGISTER_STATUS* pstuOutParam, int nWaitTime);
  100599. ///@brief CLIENT_GetParticipatingConference 接口入参
  100600. typedef struct tagNET_IN_GET_PARTICIPATING_CONFERENCE
  100601. {
  100602. DWORD dwSize; // 结构体大小
  100603. } NET_IN_GET_PARTICIPATING_CONFERENCE;
  100604. ///@brief 会议信息
  100605. typedef struct tagNET_CONFERENCE_INFO
  100606. {
  100607. BOOL bIsCloseMicDefault; // 终端是否默认闭麦入会, true表示闭麦入会, false表示开麦入会
  100608. char szID[16]; // 会议ID(唯一)
  100609. char szName[128]; // 会议名称
  100610. char szPassword[32]; // 会议密码
  100611. NET_TIME stuStartTime; // 会议开始时间
  100612. NET_TIME stuEndTime; // 会议结束时间
  100613. char szCreatorID[16]; // 会议创建者终端ID
  100614. char szCreatorName[128]; // 会议创建者终端名称
  100615. char szChairmanID[16]; // 会议主席终端ID
  100616. BOOL bIsAutoLayout; // 是否自动布局,自动布局则布局信息LayoutInfo无效,不使用
  100617. UINT nBandwidth; // 会议带宽,单位kb
  100618. char szResvered[512]; // 保留字节
  100619. }NET_CONFERENCE_INFO;
  100620. ///@brief CLIENT_GetParticipatingConference 接口出参
  100621. typedef struct tagNET_OUT_GET_PARTICIPATING_CONFERENCE
  100622. {
  100623. DWORD dwSize; // 结构体大小
  100624. NET_CONFERENCE_INFO stuConferenceInfo; // 会议信息
  100625. } NET_OUT_GET_PARTICIPATING_CONFERENCE;
  100626. ///@brief 获取正在参与的会议的信息
  100627. ///@param[in] lLoginID: 登录句柄
  100628. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  100629. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  100630. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  100631. ///@return TRUE表示成功FALSE表示失败
  100632. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetParticipatingConference(LLONG lLoginID, const NET_IN_GET_PARTICIPATING_CONFERENCE* pstuInParam, NET_OUT_GET_PARTICIPATING_CONFERENCE* pstuOutParam, int nWaitTime);
  100633. /***************************设备分压业务接口Start***************************/
  100634. ///@brief 子连接连接方式
  100635. typedef enum tagEM_SUBLINK_TYPE
  100636. {
  100637. EM_SUBLINK_TYPE_PASSIVE, // 直连方式
  100638. EM_SUBLINK_TYPE_PORT, // 主动注册方式
  100639. } EM_SUBLINK_TYPE;
  100640. ///@brief 子连接连接业务模式
  100641. typedef enum tagEM_SUBLINK_MODE
  100642. {
  100643. EM_SUBLINK_MODE_NORMAL = 0, //通用模式,默认值
  100644. EM_SUBLINK_MODE_LOWPOWER = 1, //低功耗模式
  100645. }EM_SUBLINK_MODE;
  100646. ///@brief 本地服务网络信息
  100647. typedef struct tagNET_LOCAL_SERVER_NET_INFO
  100648. {
  100649. char szLocalIp[64]; // 本地服务IP
  100650. UINT nLocalPort; // 本地服务端口
  100651. char szReserved[516]; // 保留字节
  100652. } NET_LOCAL_SERVER_NET_INFO;
  100653. ///@brief CLIENT_TransferSubLinkInfo 接口输入参数
  100654. typedef struct tagNET_IN_TRANSFER_SUBLINK_INFO
  100655. {
  100656. DWORD dwSize; // 结构体大小
  100657. EM_SUBLINK_TYPE emLinkType; // 连接方式
  100658. char szBSID[64]; // 会话ID
  100659. NET_LOCAL_SERVER_NET_INFO stuLoaclServerInfo; // 本地服务信息, emLinkType为EM_SUBCONNECT_TYPE_PORT(主动注册)方式时有效
  100660. EM_SUBLINK_MODE emLinkMode; // 连接模式
  100661. } NET_IN_TRANSFER_SUBLINK_INFO;
  100662. ///@brief 发送创建子连接所需的信息返回的错误信息
  100663. typedef enum tagEM_TRANSFER_SUBCONNECT_ERROR
  100664. {
  100665. EM_TRANSFER_SUBCONNECT_UNKNWON, // 未知错误
  100666. EM_TRANSFER_SUBCONNECT_EXCEED, // 子链接超上限
  100667. } EM_TRANSFER_SUBCONNECT_ERROR;
  100668. ///@brief CLIENT_TransferSubLinkInfo 接口输出参数
  100669. typedef struct tagNET_OUT_TRANSFER_SUBLINK_INFO
  100670. {
  100671. DWORD dwSize; // 结构体大小
  100672. } NET_OUT_TRANSFER_SUBLINK_INFO;
  100673. ///@brief 设备网络信息
  100674. typedef struct tagNET_DEV_NETWORK_INFO
  100675. {
  100676. char szDevIP[64]; // 设备IP
  100677. UINT nDevPort; // 设备端口号
  100678. char szReserved[516]; // 保留字节
  100679. } NET_DEV_NETWORK_INFO;
  100680. ///@brief CLIENT_CreateSubBusinessModule 接口输入参数
  100681. typedef struct tagNET_IN_CREAT_SUB_BUSINESS_MDL_INFO
  100682. {
  100683. DWORD dwSize; // 结构体大小
  100684. EM_SUBLINK_TYPE emLinkType; // 连接方式
  100685. char szBSID[64]; // bsid
  100686. NET_DEV_NETWORK_INFO stuDevNetInfo; // 设备网络信息, emLinkType 为 EM_SUBLINK_TYPE_PASSIVE(直连)方式时有效
  100687. EM_SUBLINK_MODE emLinkMode; // 连接模式
  100688. } NET_IN_CREAT_SUB_BUSINESS_MDL_INFO;
  100689. ///@brief CLIENT_CreateSubBusinessModule 接口输出参数
  100690. typedef struct tagNET_OUT_CREAT_SUB_BUSINESS_MDL_INFO
  100691. {
  100692. DWORD dwSize; // 结构体大小
  100693. } NET_OUT_CREAT_SUB_BUSINESS_MDL_INFO;
  100694. ///@brief 文件下载回调信息
  100695. typedef struct tagNET_DOWNLOAD_MEDIA_FILE_CALLBACK_INFO
  100696. {
  100697. INT64 nTotalSize; // 文件总长度
  100698. INT64 nDownLoadSize; // 已下载数据长度, -1 表示下载完成
  100699. UINT nErrCode; // 错误信息
  100700. // 0:无错误
  100701. // 1: 无权限,2:设备不支持此操作,3:资源不足, 4:设备无法获取当前请求数据
  100702. // 11: 表示高级用户抢占低级用户资源
  100703. // 12: 禁止入网
  100704. // 13: 磁盘读数据限制
  100705. // 14: 多画面预览已打开,资源不足,压缩回放失败
  100706. // 15: 压缩回放功能已打开,导致失败
  100707. // 16: 表示此视频通道处于离线,拉流失败
  100708. // 21: 未知的压缩失败原因,
  100709. // 22: 超出解码能力,导致压缩失败
  100710. // 23: 超出压缩能力,导致压缩失败
  100711. // 24: 无原始码流,导致压缩失败
  100712. // 25: 压缩通道所在的从片掉线,导致压缩失败
  100713. // 26: 主码流成功的情况下,拉辅码流时登录失败
  100714. // 27: 辅码流被前端关闭
  100715. // 28: 文件不存在
  100716. // 100: 未知错误
  100717. UINT nBufferSize; // 数据长度
  100718. char *pDataBuffer; // 文件数据
  100719. LDWORD dwUserData; // 用户数据
  100720. char szReserved[1024]; // 保留字节
  100721. } NET_DOWNLOAD_MEDIA_FILE_CALLBACK_INFO;
  100722. ///@brief 分压连接断线回调信息
  100723. typedef struct tagNET_SUBBIZ_DISCONNECT_CALLBACK
  100724. {
  100725. NET_DEV_NETWORK_INFO stuDevNetInfo; // 设备网络信息
  100726. LDWORD dwUserData; // 用户数据
  100727. char szReserved[1024]; // 保留字节
  100728. } NET_SUBBIZ_DISCONNECT_CALLBACK;
  100729. ///@brief 分压业务连接断线回调
  100730. ///@param[out] lSubBizHandle 分压业务sdk句柄, 由CLIENT_CreateSubBusinessModule接口返回
  100731. ///@param[out] lOperateHandle 业务句柄
  100732. ///@param[out] pstDisConnectInfo 断线回调数据
  100733. ///@return void
  100734. typedef void (CALLBACK *fSubBizDisConnectCallBack)(LLONG lSubBizHandle, LLONG lOperateHandle, NET_SUBBIZ_DISCONNECT_CALLBACK* pstDisConnectInfo);
  100735. ///@brief 文件下载回调函数原型
  100736. ///@param[out] lDownHandle 下载句柄, 由CLIENT_StartDownloadMediaFile接口返回
  100737. ///@param[out] pstDwonloadCallBackInfo 文件下载回调数据
  100738. ///@return void
  100739. typedef int (CALLBACK *fDownLoadMediaFileCallBack)(LLONG lDownHandle, NET_DOWNLOAD_MEDIA_FILE_CALLBACK_INFO* pstDwonloadCallBackInfo);
  100740. ///@brief CLIENT_StartSubBizDownloadMediaFile 接口输入参数
  100741. typedef struct tagNET_IN_START_DOWNLOAD_MEDIA_FILE
  100742. {
  100743. DWORD dwSize; // 结构体大小
  100744. char szReserved[4]; // 保留字节
  100745. fDownLoadMediaFileCallBack cbDownLoadCallBack; // 文件下载回调函数
  100746. fSubBizDisConnectCallBack cbDisConnectCallBack; // 连接断线回调
  100747. LDWORD dwUserData; // 用户数据
  100748. } NET_IN_START_DOWNLOAD_MEDIA_FILE;
  100749. ///@brief CLIENT_StartSubBizDownloadMediaFile 接口输出参数
  100750. typedef struct tagNET_OUT_START_DOWNLOAD_MEDIA_FILE
  100751. {
  100752. DWORD dwSize; // 结构体大小
  100753. } NET_OUT_START_DOWNLOAD_MEDIA_FILE;
  100754. ///@brief 文件类型
  100755. typedef enum tagEM_RECORDFILE_TYPE
  100756. {
  100757. EM_RECORDFILE_TYPE_NORMAL, // 普通录像
  100758. EM_RECORDFILE_TYPE_ALARM, // 报警录像
  100759. EM_RECORDFILE_TYPE_MOVE_DETECT, // 移动检测录像
  100760. EM_RECORDFILE_TYPE_CARD, // 卡号录像
  100761. EM_RECORDFILE_TYPE_PIC, // 图片
  100762. EM_RECORDFILE_TYPE_AUDIO, // 音频
  100763. } EM_RECORDFILE_TYPE;
  100764. ///@brief CLIENT_DoSubBizDownloadMediaFile 接口输入参数
  100765. typedef struct tagNET_IN_DO_DOWNLOAD_MEDIA_FILE
  100766. {
  100767. DWORD dwSize; // 结构体大小
  100768. int nChannelID; // 视频通道号, -1 表示无效, 即不关心通道
  100769. EM_RECORDFILE_TYPE emRecordType; // 录像文件类型
  100770. char szFilePath[256]; // 录像文件路径
  100771. UINT nOffLength; // 偏移大小, 单位字节
  100772. UINT nFileLength; // 文件长度, 单位字节
  100773. } NET_IN_DO_DOWNLOAD_MEDIA_FILE;
  100774. ///@brief CLIENT_DoSubBizDownloadMediaFile 接口输出参数
  100775. typedef struct tagNET_OUT_DO_DOWNLOAD_MEDIA_FILE
  100776. {
  100777. DWORD dwSize; // 结构体大小
  100778. } NET_OUT_DO_DOWNLOAD_MEDIA_FILE;
  100779. ///@brief 子连接状态
  100780. typedef enum tagEM_SUBLINK_STATE
  100781. {
  100782. EM_SUBLINK_STATE_UNKNWON, // 未知
  100783. EM_SUBLINK_STATE_CONNECT, // 已连接
  100784. EM_SUBLINK_STATE_DISCONNECT, // 已断开
  100785. EM_SUBLINK_STATE_BSID_ERROR, // BSID校验失败, 子连接创建失败
  100786. } EM_SUBLINK_STATE;
  100787. ///@brief 子链接监听服务回调信息
  100788. typedef struct tagNET_SUBLINK_SERVER_CALLBACK
  100789. {
  100790. EM_SUBLINK_STATE emSubLinkState; // 子连接状态
  100791. NET_DEV_NETWORK_INFO stuDevNetInfo; // 设备网络信息
  100792. LDWORD dwUserData; // 用户数据
  100793. } NET_SUBLINK_SERVER_CALLBACK;
  100794. ///@brief callback
  100795. ///@brief 子连接监听服务回调函数原型
  100796. ///@param[out] lListenServer 子链接监听服务句柄, 由CLIENT_StartSubLinkListenServer接口返回
  100797. ///@param[out] lSubBizHandle 分压业务sdk句柄, 由CLIENT_CreateSubBusinessModule接口返回
  100798. ///@param[out] pstSubLinkCallBack 子链接监听服务回调信息
  100799. ///@return void
  100800. typedef void (CALLBACK *fSubLinkServiceCallBack)(LLONG lListenServer, LLONG lSubBizHandle, NET_SUBLINK_SERVER_CALLBACK *pstSubLinkCallBack);
  100801. ///@brief CLIENT_StartSubLinkListenServer 接口输入参数
  100802. typedef struct tagNET_IN_START_SUBLINK_LISTEN_SERVER
  100803. {
  100804. DWORD dwSize; // 结构体大小
  100805. NET_LOCAL_SERVER_NET_INFO stuLoaclServerInfo; // 本地服务信息
  100806. fSubLinkServiceCallBack cbSubLinkServiceCallBack; // 子连接监听服务回调函数
  100807. LDWORD dwUserData; // 用户数据
  100808. } NET_IN_START_SUBLINK_LISTEN_SERVER;
  100809. ///@brief CLIENT_StartSubLinkListenServer 接口输出参数
  100810. typedef struct tagNET_OUT_START_SUBLINK_LISTEN_SERVER
  100811. {
  100812. DWORD dwSize; // 结构体大小
  100813. } NET_OUT_START_SUBLINK_LISTEN_SERVER;
  100814. ///@brief CLIENT_GetSubBusinessCaps 接口输入参数
  100815. typedef struct tagNET_IN_GET_SUBBIZ_CAPS
  100816. {
  100817. DWORD dwSize; // 结构体大小
  100818. } NET_IN_GET_SUBBIZ_CAPS;
  100819. ///@brief CLIENT_GetSubBusinessCaps 接口输出参数
  100820. typedef struct tagNET_OUT_GET_SUBBIZ_CAPS
  100821. {
  100822. DWORD dwSize; // 结构体大小
  100823. int nBusinessDivision; // 子(分压)业务能力掩码, 0表示不支持分压, bit0:实时流 bit1:回放流 bit2:图片流, bit3:按文件下载, bit4:私有透传隧道
  100824. }NET_OUT_GET_SUBBIZ_CAPS;
  100825. ///@brief CLIENT_SetTransmitTunnelParam 接口输入参数
  100826. typedef struct tagNET_IN_SET_TRANSMITTUNNEL_PARAM
  100827. {
  100828. DWORD dwSize; // 结构体大小
  100829. char szReserved[4]; // 字节对齐
  100830. char szLoaclIP[64]; // 本地服务IP
  100831. UINT nPort[2]; // 向上侦听端口的最小值和最大值
  100832. } NET_IN_SET_TRANSMITTUNNEL_PARAM;
  100833. ///@brief CLIENT_SetTransmitTunnelParam 接口输出参数
  100834. typedef struct tagNET_OUT_SET_TRANSMITTUNNEL_PARAM
  100835. {
  100836. DWORD dwSize; /// 结构体大小
  100837. }NET_OUT_SET_TRANSMITTUNNEL_PARAM;
  100838. ///@brief 私有隧道断线原因
  100839. typedef enum tagEM_TRANSMIT_DISCONNECT_REASON
  100840. {
  100841. EM_TRANSMIT_DISCONNECT_REASON_UNKNOWN, // 未知
  100842. EM_TRANSMIT_DISCONNECT_REASON_TIMEOUT, // 隧道超时2分钟断线
  100843. EM_TRANSMIT_DISCONNECT_REASON_SERVICE_CHANGE, // 设备服务关键信息改变
  100844. } EM_TRANSMIT_DISCONNECT_REASON;
  100845. ///@brief 隧道连接断开回调信息
  100846. typedef struct tagNET_TRANSMIT_DISCONNECT_CALLBACK
  100847. {
  100848. NET_DEV_NETWORK_INFO stuDevNetInfo; // 设备网络信息
  100849. LDWORD dwUserData; // 用户数据
  100850. EM_TRANSMIT_DISCONNECT_REASON emDisReason; // 断线原因
  100851. char szReserved[1020]; // 保留字节
  100852. } NET_TRANSMIT_DISCONNECT_CALLBACK;
  100853. ///@brief 隧道业务连接断开回调
  100854. ///@param[out] lSubBizHandle 分压模块句柄, 由CLIENT_CreateSubBusinessModule接口返回
  100855. ///@param[out] lOperateHandle 业务句柄
  100856. ///@param[out] pstDisConnectInfo 断线回调数据
  100857. ///@return void
  100858. typedef void (CALLBACK *fTransmitDisConnectCallBack)(LLONG lSubBizHandle, LLONG lOperateHandle, NET_TRANSMIT_DISCONNECT_CALLBACK* pstDisConnectInfo);
  100859. ///@brief 私有隧道代理类型
  100860. typedef enum tagEM_TRANSMIT_PROXY_TYPE
  100861. {
  100862. EM_TRANSMIT_PROXY_TYPE_WEB=1, // Web代理。由服务端自动获取web端口,客户端不需要关心
  100863. EM_TRANSMIT_PROXY_TYPE_GENERAL, // 通用端口代理。要求客户端知道服务的端口
  100864. } EM_TRANSMIT_PROXY_TYPE;
  100865. ///@brief 私有隧道代理模式
  100866. typedef enum tagEM_TRANSMIT_PROXY_MODE
  100867. {
  100868. EM_TRANSMIT_PROXY_MODE_LOCAL=1, // 本地代理
  100869. EM_TRANSMIT_PROXY_MODE_CASCADE, // 级联代理
  100870. } EM_TRANSMIT_PROXY_MODE;
  100871. ///@brief CLIENT_CreateTransmitTunnel 接口输入参数
  100872. typedef struct tagNET_IN_CREATE_TRANSMIT_TUNNEL
  100873. {
  100874. DWORD dwSize; // 结构体大小
  100875. EM_TRANSMIT_PROXY_TYPE emProxyType; // 代理类型
  100876. EM_TRANSMIT_PROXY_MODE emProxyMode; // 代理模式
  100877. int nPort; // 当emProxyType为EM_TRANSMIT_PROXY_TYPE_GENERAL 是有效
  100878. // 本地代理时指本地的代理端口。级联代理时指远端的代理端口。默认80
  100879. int nChannel; // emProxyMode为EM_TRANSMIT_PROXY_MODE_CASCADE时有效,与Port一起,组成需级联代理的服务
  100880. char szReserved[4]; // 字节对齐
  100881. fTransmitDisConnectCallBack cbDisConnectCallBack; // 隧道超时2分钟断线回调
  100882. fSubBizDisConnectCallBack cbDisConnectCallBackEx; // 隧道断线回调
  100883. LDWORD dwUserData; // 用户数据
  100884. } NET_IN_CREATE_TRANSMIT_TUNNEL;
  100885. ///@brief CLIENT_RefuseLowPowerDevSleep 接口输入参数
  100886. typedef struct tagNET_IN_REFUSE_SLEEP_INFO
  100887. {
  100888. DWORD dwSize; // 结构体大小
  100889. }NET_IN_REFUSE_SLEEP_INFO;
  100890. ///@brief CLIENT_RefuseLowPowerDevSleep 接口输出参数
  100891. typedef struct tagNET_OUT_REFUSE_SLEEP_INFO
  100892. {
  100893. DWORD dwSize; // 结构体大小
  100894. }NET_OUT_REFUSE_SLEEP_INFO;
  100895. ///@brief 低功耗设备保活状态回调数据
  100896. typedef struct tagNET_LOW_POWER_KEEPALIVE_CALLBACK_INFO
  100897. {
  100898. BOOL bKeepAlive; // 是否收到设备保活包
  100899. LDWORD dwUserData; // 用户数据
  100900. char szReserved[1024]; // 保留字节
  100901. }NET_LOW_POWER_KEEPALIVE_CALLBACK_INFO;
  100902. ///@brief 收到低功耗设备保活包回调函数原型
  100903. ///@param[out] lLowPowerHandle 低功耗通道句柄, 由 CLIENT_CreateLowPowerChannel 接口返回
  100904. ///@param[out] pstLowPowerKeepAliveCallBackInfo 低功耗设备保活状态回调数据
  100905. ///@return void
  100906. typedef void (CALLBACK *fLowPowerKeepAliveCallBack)(LLONG lLowPowerHandle, NET_LOW_POWER_KEEPALIVE_CALLBACK_INFO* pstLowPowerKeepAliveCallBackInfo);
  100907. ///@brief CLIENT_CreateLowPowerChannel 接口输入参数
  100908. typedef struct tagNET_IN_CREATE_LOW_POWER_CHANNEL
  100909. {
  100910. DWORD dwSize; // 结构体大小
  100911. fSubBizDisConnectCallBack cbDisConnectCallBack; // 连接断线回调
  100912. LDWORD dwUserData; // 用户数据
  100913. fLowPowerKeepAliveCallBack cbLowPowerKeepAliveCallBack; // 低功耗设备保活状态回调
  100914. }NET_IN_CREATE_LOW_POWER_CHANNEL;
  100915. ///@brief CLIENT_CreateLowPowerChannel 接口输出参数
  100916. typedef struct tagNET_OUT_CREATE_LOW_POWER_CHANNEL
  100917. {
  100918. DWORD dwSize; // 结构体大小
  100919. }NET_OUT_CREATE_LOW_POWER_CHANNEL;
  100920. ///@brief CLIENT_DoWakeUpLowPowerDevcie 接口输入参数
  100921. typedef struct tagNET_IN_WAKE_UP_INFO
  100922. {
  100923. DWORD dwSize; // 结构体大小
  100924. }NET_IN_WAKE_UP_INFO;
  100925. ///@brief CLIENT_DoWakeUpLowPowerDevcie 接口输出参数
  100926. typedef struct tagNET_OUT_WAKE_UP_INFO
  100927. {
  100928. DWORD dwSize; // 结构体大小
  100929. }NET_OUT_WAKE_UP_INFO;
  100930. ///@brief 私有web代理协议类型
  100931. typedef enum tagEM_WEB_TUNNEL_PROTOCOL
  100932. {
  100933. EM_WEB_TUNNEL_PROTOCOL_UNKNOWN, // 未知
  100934. EM_WEB_TUNNEL_PROTOCOL_HTTP, // HTTP
  100935. EM_WEB_TUNNEL_PROTOCOL_HTTPS, // THTPS
  100936. } EM_WEB_TUNNEL_PROTOCOL;
  100937. ///@brief CLIENT_CreateTransmitTunnel 接口输出参数
  100938. typedef struct tagNET_OUT_CREATE_TRANSMIT_TUNNEL
  100939. {
  100940. DWORD dwSize; // 结构体大小
  100941. int nPort; // 对上侦听端口
  100942. EM_WEB_TUNNEL_PROTOCOL emWebProtocol; // 私有web代理访问协议
  100943. char szUserName[128]; // 用户名
  100944. char szTempToken[128]; // 令牌
  100945. }NET_OUT_CREATE_TRANSMIT_TUNNEL;
  100946. ///@brief 获取分压业务能力信息, 由主业务模块调用
  100947. ///@param[in] lLoginID 登录句柄
  100948. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100949. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100950. ///@param[in] nWaitTime 接口超时时间, 单位毫秒(目前不生效, 保留在此以便后续扩展)
  100951. ///@return TRUE表示成功 FALSE表示失败
  100952. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetSubBusinessCaps(LLONG lLoginID, const NET_IN_GET_SUBBIZ_CAPS *pInParam, NET_OUT_GET_SUBBIZ_CAPS *pOutParam, int nWaitTime);
  100953. ///@brief 发送创建子连接所需的信息给设备, 由主业务模块调用
  100954. ///@param[in] lLoginID 登录句柄
  100955. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100956. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100957. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  100958. ///@return TRUE表示成功 FALSE表示失败
  100959. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TransferSubLinkInfo(LLONG lLoginID, const NET_IN_TRANSFER_SUBLINK_INFO *pInParam, NET_OUT_TRANSFER_SUBLINK_INFO *pOutParam, int nWaitTime);
  100960. ///@brief 创建业务sdk模块
  100961. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100962. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100963. ///@return 业务sdk句柄,非0表示成功 0表示失败
  100964. CLIENT_NET_API LLONG CALL_METHOD CLIENT_CreateSubBusinessModule(const NET_IN_CREAT_SUB_BUSINESS_MDL_INFO *pInParam, NET_OUT_CREAT_SUB_BUSINESS_MDL_INFO *pOutParam);
  100965. ///@brief 销毁业务sdk模块
  100966. ///@param[in] lSubBizHandle 业务sdk句柄,由CLIENT_CreateSubBusinessModule接口返回
  100967. ///@return TRUE表示成功 FALSE表示失败
  100968. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DestroySubBusinessModule(LLONG lSubBizHandle);
  100969. ///@brief 启动子连接监听服务
  100970. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100971. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100972. ///@return 子链接监听服务句柄, 非0表示成功 0表示失败
  100973. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartSubLinkListenServer(const NET_IN_START_SUBLINK_LISTEN_SERVER *pInParam, NET_OUT_START_SUBLINK_LISTEN_SERVER *pOutParam);
  100974. ///@brief 停止子连接监听服务
  100975. ///@param[in] lListenServer 监听服务句柄,由CLIENT_StartSubLinkListenServer接口返回
  100976. ///@return TRUE表示成功 FALSE表示失败
  100977. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopSubLinkListenServer(LLONG lListenServer);
  100978. ///@brief 开始媒体文件下载
  100979. ///@param[in] lSubBizHandle 业务sdk句柄,由CLIENT_CreateSubBusinessModule接口返回
  100980. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100981. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100982. ///@retval LLONG
  100983. ///@return 录像文件下载句柄,非0表示成功 0表示失败
  100984. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartSubBizDownloadMediaFile(LLONG lSubBizHandle, NET_IN_START_DOWNLOAD_MEDIA_FILE *pInParam, NET_OUT_START_DOWNLOAD_MEDIA_FILE *pOutParam);
  100985. ///@brief 执行媒体文件下载
  100986. ///@param[in] lDownHandle 录像文件下载句柄,由CLIENT_StartDownloadRecordFile接口返回
  100987. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  100988. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  100989. ///@return TRUE表示成功 FALSE表示失败
  100990. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoSubBizDownloadMediaFile(LLONG lDownHandle, NET_IN_DO_DOWNLOAD_MEDIA_FILE *pInParam, NET_OUT_DO_DOWNLOAD_MEDIA_FILE *pOutParam);
  100991. ///@brief 停止媒体文件下载
  100992. ///@param[in] lDownHandle 录像文件下载句柄,由CLIENT_StartSubBizDownloadMediaFile接口返回
  100993. ///@return TRUE 表示成功 FALSE表示失败
  100994. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopSubBizDownloadMediaFile(LLONG lDownHandle);
  100995. ///@brief 暂停或恢复文件下载
  100996. ///@param[in] lDownHandle 文件下载句柄,由CLIENT_StartSubBizDownloadMediaFile接口返回
  100997. ///@param[in] bPause 是否暂停,TRUE表示暂停下载, FALSE表示恢复下载
  100998. ///@return TRUE 表示成功 FALSE表示失败
  100999. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PauseSubBizDownloadMediaFile(LLONG lDownHandle, BOOL bPause);
  101000. /***************************透传隧道接口start******************/
  101001. ///@brief 设置私有透传通道参数
  101002. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  101003. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  101004. ///@return TRUE表示成功 FALSE表示失败
  101005. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetTransmitTunnelParam( const NET_IN_SET_TRANSMITTUNNEL_PARAM *pInParam, NET_OUT_SET_TRANSMITTUNNEL_PARAM *pOutParam);
  101006. ///@brief 创建隧道
  101007. ///@param[in] lSubBizHandle 业务sdk句柄,由CLIENT_CreateSubBusinessModule接口返回
  101008. ///@param[in] pInParam 接口输入参数, 内存资源由用户申请和释放
  101009. ///@param[out] pOutParam 接口输出参数, 内存资源由用户申请和释放
  101010. ///@return LLONG 透传隧道业务句柄,非0表示成功 0表示失败
  101011. CLIENT_NET_API LLONG CALL_METHOD CLIENT_CreateTransmitTunnel(LLONG lSubBizHandle, const NET_IN_CREATE_TRANSMIT_TUNNEL *pInParam, NET_OUT_CREATE_TRANSMIT_TUNNEL *pOutParam);
  101012. ///@brief 销毁隧道
  101013. ///@param[in] lTransmitHandle 透传隧道业务句柄,由CLIENT_CreateTransmitTunnel接口返回
  101014. ///@return TRUE表示成功 FALSE表示失败
  101015. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DestroyTransmitTunnel(LLONG lTransmitHandle);
  101016. /***************************透传隧道接口End*****************/
  101017. /***************************4G低功耗业务 start********************/
  101018. ///@brief 拒绝休眠
  101019. ///@param[in] lLoginID 登录句柄
  101020. ///@param[in] pInParam 接口输入参数
  101021. ///@param[out] pOutParam 接口输出参数
  101022. ///@param[in] nWaitTime 接口超时时间, 单位毫秒(目前不生效, 保留在此以便后续扩展)
  101023. ///@return TRUE表示成功 ,FALSE表示失败
  101024. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RefuseLowPowerDevSleep(LLONG lLoginID, const NET_IN_REFUSE_SLEEP_INFO *pInParam, NET_OUT_REFUSE_SLEEP_INFO *pOutParam, int nWaitTime);
  101025. ///@brief 创建低功耗通道
  101026. ///@param[in] lSubBizHandle 业务sdk句柄,由CLIENT_CreateSubBusinessModule接口返回
  101027. ///@param[in] pInParam 接口输入参数
  101028. ///@param[out] pOutParam 接口输出参数
  101029. ///@return LLONG 低功耗通道句柄,非0表示成功 0表示失败
  101030. CLIENT_NET_API LLONG CALL_METHOD CLIENT_CreateLowPowerChannel(LLONG lSubBizHandle, NET_IN_CREATE_LOW_POWER_CHANNEL *pInParam, NET_OUT_CREATE_LOW_POWER_CHANNEL *pOutParam);
  101031. ///@brief 唤醒设备
  101032. ///@param[in] lChannelHandle 低功耗业务句柄,由CLIENT_CreateLowPowerChannel接口返回
  101033. ///@param[in] pInParam 接口输入参数
  101034. ///@param[out] pOutParam 接口输参数
  101035. ///@return TRUE表示成功 ,FALSE表示失败
  101036. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DoWakeUpLowPowerDevcie(LLONG lChannelHandle, NET_IN_WAKE_UP_INFO *pInParam, NET_OUT_WAKE_UP_INFO *pOutParam);
  101037. ///@brief 销毁低功耗通道
  101038. ///@param[in] lChannelHandle 低功耗业务句柄,由CLIENT_CreateLowPowerChannel接口返回
  101039. ///@return TRUE表示成功 ,FALSE表示失败
  101040. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DestoryLowPowerChannel(LLONG lChannelHandle);
  101041. /***************************4G低功耗业务 end********************/
  101042. /***************************设备分压业务接口End***************************/
  101043. /***************************开放平台业务接口Start***************************/
  101044. ///@brief CLIENT_InstallManagerGetCustomEventCaps入参
  101045. typedef struct tagNET_IN_INSTALLMANAGER_GETCUSTOMEVENT_CAPS
  101046. {
  101047. DWORD dwSize; // 结构体大小
  101048. }NET_IN_INSTALLMANAGER_GETCUSTOMEVENT_CAPS;
  101049. ///@brief 开放平台自定义事件能力信息
  101050. typedef struct tagNET_CUSTOMEVENTCAPS_INFO
  101051. {
  101052. char szAppName[128]; // 程序名称
  101053. char szClass[128][32]; // 程序支持的自定义事件类别
  101054. int nClassNum; // 程序支持的自定义事件个数
  101055. BYTE bReserved[2048]; // 保留字节
  101056. }NET_CUSTOMEVENTCAPS_INFO;
  101057. ///@brief CLIENT_InstallManagerGetCustomEventCaps出参
  101058. typedef struct tagNET_OUT_INSTALLMANAGER_GETCUSTOMEVENT_CAPS
  101059. {
  101060. DWORD dwSize; // 结构体大小
  101061. int nListCapNum; // 开放平台自定义事件能力个数
  101062. NET_CUSTOMEVENTCAPS_INFO stuListCap[16]; // 开放平台自定义事件能力列表
  101063. }NET_OUT_INSTALLMANAGER_GETCUSTOMEVENT_CAPS;
  101064. ///@brief 获取开放平台自定义事件能力, pInParam与pOutParam内存由用户申请释放
  101065. CLIENT_NET_API BOOL CALL_METHOD CLIENT_InstallManagerGetCustomEventCaps(LLONG lLoginID, const NET_IN_INSTALLMANAGER_GETCUSTOMEVENT_CAPS* pInParam, NET_OUT_INSTALLMANAGER_GETCUSTOMEVENT_CAPS* pOutParam, int nWaitTime);
  101066. /***************************开放平台业务接口End***************************/
  101067. ///@brief CLIENT_CalcScrapsteelPunish 接口输入参数
  101068. typedef struct tagNET_IN_CALC_SCRAPSTEEL_PUNISH
  101069. {
  101070. DWORD dwSize; // 结构体大小
  101071. int nLayerDetectInfoNum; // 车厢废钢每层分析结果的个数, 最大值为512
  101072. NET_SCRAPSTEEL_LAYER_DETECT_INFO* pstuLayerDetectInfo; // 车厢废钢每层分析结果, 由用户申请空间,空间大小为 sizeof(NET_SCRAPSTEEL_LAYER_DETECT_INFO) * nLayerDetectInfoNum
  101073. int nNetWeight; // 车辆净重(kg), 净重和毛重必须至少填一个
  101074. char szPlateNum[32]; // 车牌号码
  101075. int nGrossWeight; // 车辆毛重(kg), 净重和毛重必须至少填一个
  101076. }NET_IN_CALC_SCRAPSTEEL_PUNISH;
  101077. ///@brief CLIENT_CalcScrapsteelPunish 接口输出参数
  101078. typedef struct tagNET_OUT_CALC_SCRAPSTEEL_PUNISH
  101079. {
  101080. DWORD dwSize; // 结构体大小
  101081. float fPunishResult; // 扣重扣杂结果
  101082. float fPunishResultRatio; // 扣重扣杂结果百分比
  101083. float fPunishPrice; // 扣价结果
  101084. }NET_OUT_CALC_SCRAPSTEEL_PUNISH;
  101085. ///@brief 扣重扣杂
  101086. ///@param[in] lLoginID: 登录句柄
  101087. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101088. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101089. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101090. ///@return TRUE表示成功 FALSE表示失败
  101091. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CalcScrapsteelPunish(LLONG lLoginID, const NET_IN_CALC_SCRAPSTEEL_PUNISH *pstuInParam, NET_OUT_CALC_SCRAPSTEEL_PUNISH *pstuOutParam, int nWaitTime);
  101092. ///@brief CLIENT_SetConsumeResult 输入结构体
  101093. typedef struct tagNET_IN_SET_CONSUME_RESULT
  101094. {
  101095. DWORD dwSize; // 结构体大小
  101096. int nChannelID; // 通道号
  101097. char szUserID[32]; // 用户ID
  101098. UINT nRemainAmount; // 消费后余额,如果消费失败则是消费前余额,单位分。
  101099. BOOL bConsumeResult; // 消费成功与否
  101100. int nErrorCode; // 错误码
  101101. // 0x00:无错误;
  101102. // 0x01:余额不足
  101103. // 0x02:已过就餐时间
  101104. // 0x03:已消费
  101105. // 0x04:无权限
  101106. // 0x05: 超过消费金额上限
  101107. // 0x06: 重复交易
  101108. UINT nConsumptionAmount; // 平台固定消费金额,单位(分)
  101109. BOOL bExcessConsumption; // 是否是超额消费
  101110. int nRemainingTimes; // 剩余消费次数,-1表示不限制消费次数,0以上(包括0)表示剩余消费次数
  101111. char szTransactionSerialNumber[128]; // 消费流水号
  101112. }NET_IN_SET_CONSUME_RESULT;
  101113. ///@brief CLIENT_SetConsumeResult 输出结构体
  101114. typedef struct tagNET_OUT_SET_CONSUME_RESULT
  101115. {
  101116. DWORD dwSize; // 结构体大小
  101117. }NET_OUT_SET_CONSUME_RESULT;
  101118. ///@brief 设置消费结果
  101119. ///@param[in] lLoginID: 登录句柄
  101120. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101121. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101122. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101123. ///@return TRUE表示成功FALSE表示失败
  101124. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetConsumeResult(LLONG lLoginID, const NET_IN_SET_CONSUME_RESULT* pInParam, NET_OUT_SET_CONSUME_RESULT* pOutParam, int nWaitTime);
  101125. ///@brief CLIENT_TransferHospitalHostResult 输入结构体
  101126. typedef struct tagNET_IN_TRANSFER_HOSPITAL_HOST_RESULT
  101127. {
  101128. DWORD dwSize; // 结构体大小
  101129. int nOperator; // 操作类型, 0:发起托管操作, 1:取消托管操作
  101130. BOOL bResult; // 操作结果
  101131. char szErrorInfo[512]; // 失败原因
  101132. char szSrcHostCode[64]; // 发起托管的医护主机设备编码
  101133. char szDestHostCode[64]; // 接收托管的医护主机设备编码
  101134. }NET_IN_TRANSFER_HOSPITAL_HOST_RESULT;
  101135. ///@brief CLIENT_TransferHospitalHostResult 输出结构体
  101136. typedef struct tagNET_OUT_TRANSFER_HOSPITAL_HOST_RESULT
  101137. {
  101138. DWORD dwSize; // 结构体大小
  101139. }NET_OUT_TRANSFER_HOSPITAL_HOST_RESULT;
  101140. ///@brief 通知医护主机托管结果
  101141. ///@param[in] lLoginID: 登录句柄
  101142. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101143. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101144. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101145. ///@return TRUE表示成功FALSE表示失败
  101146. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TransferHospitalHostResult(LLONG lLoginID, const NET_IN_TRANSFER_HOSPITAL_HOST_RESULT* pstuInParam, NET_OUT_TRANSFER_HOSPITAL_HOST_RESULT* pstuOutParam, int nWaitTime);
  101147. ///@brief CLIENT_GetAiPickUpWorkState 输入参数
  101148. typedef struct tagNET_IN_GET_AI_PICK_UP_WORK_STATE
  101149. {
  101150. DWORD dwSize; // 结构体大小
  101151. int nChannel; // 视频通道号
  101152. }NET_IN_GET_AI_PICK_UP_WORK_STATE;
  101153. ///@brief CLIENT_GetAiPickUpWorkState 输出参数
  101154. typedef struct tagNET_OUT_GET_AI_PICK_UP_WORK_STATE
  101155. {
  101156. DWORD dwSize; // 结构体大小
  101157. int nState; // 0 异常,1 正常,2 离线
  101158. }NET_OUT_GET_AI_PICK_UP_WORK_STATE;
  101159. ///@brief 获取拾音器工作状态
  101160. ///@param[in] lLoginID: 登录句柄
  101161. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101162. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101163. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101164. ///@return TRUE表示成功FALSE表示失败
  101165. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAiPickUpWorkState(LLONG lLoginID, const NET_IN_GET_AI_PICK_UP_WORK_STATE* pstuInParam, NET_OUT_GET_AI_PICK_UP_WORK_STATE* pstuOutParam, int nWaitTime);
  101166. ///@brief CLIENT_GetAiPickUpDeviceInfo 输入参数
  101167. typedef struct tagNET_IN_GET_AI_PICK_UP_DEVICE_INFO
  101168. {
  101169. DWORD dwSize; // 结构体大小
  101170. int nChannel; // 视频通道号
  101171. }NET_IN_GET_AI_PICK_UP_DEVICE_INFO;
  101172. ///@brief CLIENT_GetAiPickUpDeviceInfo 输出参数
  101173. typedef struct tagNET_OUT_GET_AI_PICK_UP_DEVICE_INFO
  101174. {
  101175. DWORD dwSize; // 结构体大小
  101176. UINT nCPUMainVer; // 主CPU程序版本
  101177. UINT nCPUExtraVer; // 从CPU程序版本
  101178. UINT nCPUAiVer; // AI程序版本
  101179. char szMAC[32]; // 设备mac地址
  101180. char szIP[32]; // 设备IP
  101181. }NET_OUT_GET_AI_PICK_UP_DEVICE_INFO;
  101182. ///@brief 获取拾音器设备信息
  101183. ///@param[in] lLoginID: 登录句柄
  101184. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101185. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101186. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101187. ///@return TRUE表示成功FALSE表示失败
  101188. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetAiPickUpDeviceInfo(LLONG lLoginID, const NET_IN_GET_AI_PICK_UP_DEVICE_INFO* pstuInParam, NET_OUT_GET_AI_PICK_UP_DEVICE_INFO* pstuOutParam, int nWaitTime);
  101189. ///@brief 眼睛信息
  101190. typedef struct tagNET_ACCESS_IRIS_INFO
  101191. {
  101192. UINT nType; // 眼睛类型,0表示左眼,1表示右眼
  101193. int nPhotoDataLen; // 眼睛图片大小,最大102400
  101194. char* pszPhotoData; // 眼睛图片,内存由用户申请
  101195. char szPhotoUrl[512]; // 眼睛图片URL,与PhotoData二选一
  101196. char* pszEigenValue; // 眼睛特征值,内存由用户申请
  101197. int nEigenValueLen; // 眼睛特征值,最大2048
  101198. char szResvered[124]; // 保留字节
  101199. }NET_ACCESS_IRIS_INFO;
  101200. ///@brief 眼睛特征值与图片组
  101201. typedef struct tagNET_ACCESS_IRIS_DATA_INFO
  101202. {
  101203. NET_ACCESS_IRIS_INFO stuIrisInfo[2]; // 眼睛信息
  101204. int nIrisInfoCount; // 眼睛信息个数
  101205. char szResvered[124]; // 保留字节
  101206. }NET_ACCESS_IRIS_DATA_INFO;
  101207. ///@brief 下发眼睛信息列表
  101208. typedef struct tagNET_ACCESS_IRIS_LIST
  101209. {
  101210. char szUserID[32]; // 用户ID,唯一标识由于有产品以证件ID作为UserID,每个字符的取值范围为数字[0-9]或者字母[a-zA-Z]
  101211. NET_ACCESS_IRIS_DATA_INFO stuIrisData[5]; // 眼睛特征值与图片组
  101212. int nIrisDataCount; // 眼睛特征值与图片组个数
  101213. char szResvered[124]; // 保留字节
  101214. }NET_ACCESS_IRIS_LIST;
  101215. ///@brief CLIENT_MultiInsertAccessIris 输入参数
  101216. typedef struct tagNET_IN_MULTI_INSERT_ACCESS_IRIS
  101217. {
  101218. DWORD dwSize; // 结构体大小
  101219. int nIrisListCount; // 下发眼睛信息个数
  101220. NET_ACCESS_IRIS_LIST stuIrisList[10]; // 下发眼睛信息信息列表
  101221. }NET_IN_MULTI_INSERT_ACCESS_IRIS;
  101222. ///@brief CLIENT_MultiInsertAccessIris 输出参数
  101223. typedef struct tagNET_OUT_MULTI_INSERT_ACCESS_IRIS
  101224. {
  101225. DWORD dwSize; // 结构体大小
  101226. int nFailCodesCount; // 失败个数
  101227. NET_EM_FAILCODE emFailCodes[10]; // 当出现失败时,对应的每一项故障码(0代表此项成功), 数组大小为批量执行的大小。数组元素索引位置对应操作的结果。
  101228. }NET_OUT_MULTI_INSERT_ACCESS_IRIS;
  101229. ///@brief 批量下发眼睛信息
  101230. ///@param[in] lLoginID: 登录句柄
  101231. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101232. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101233. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101234. ///@return TRUE表示成功FALSE表示失败
  101235. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MultiInsertAccessIris(LLONG lLoginID, const NET_IN_MULTI_INSERT_ACCESS_IRIS* pstuInParam, NET_OUT_MULTI_INSERT_ACCESS_IRIS* pstuOutParam, int nWaitTime);
  101236. ///@brief CLIENT_RemoveAllAccessIris 输入参数
  101237. typedef struct tagNET_IN_REMOVE_ALL_ACCESS_IRIS
  101238. {
  101239. DWORD dwSize; // 结构体大小
  101240. }NET_IN_MULTI_REMOVE_ALL_ACCESS_IRIS;
  101241. ///@brief CLIENT_RemoveAllAccessIris 输出参数
  101242. typedef struct tagNET_OUT_REMOVE_ALL_ACCESS_IRIS
  101243. {
  101244. DWORD dwSize; // 结构体大小
  101245. }NET_OUT_REMOVE_ALL_ACCESS_IRIS;
  101246. ///@brief 清空所有眼睛信息
  101247. ///@param[in] lLoginID: 登录句柄
  101248. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101249. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101250. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101251. ///@return TRUE表示成功FALSE表示失败
  101252. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveAllAccessIris(LLONG lLoginID, const NET_IN_MULTI_REMOVE_ALL_ACCESS_IRIS* pstuInParam, NET_OUT_REMOVE_ALL_ACCESS_IRIS* pstuOutParam, int nWaitTime);
  101253. ///@brief CLIENT_MultiRemoveAccessIris 输入参数
  101254. typedef struct tagNET_IN_MULTI_REMOVE_ACCESS_IRIS
  101255. {
  101256. DWORD dwSize; // 结构体大小
  101257. int nCount; // 要删除的眼睛信息个数
  101258. char szUserList[10][32]; // 要删除的眼睛信息用户UserID列表
  101259. }NET_IN_MULTI_REMOVE_ACCESS_IRIS;
  101260. ///@brief CLIENT_MultiRemoveAccessIris 输出参数
  101261. typedef struct tagNET_OUT_MULTI_REMOVE_ACCESS_IRIS
  101262. {
  101263. DWORD dwSize; // 结构体大小
  101264. int nFailCodesCount; // 失败个数
  101265. NET_EM_FAILCODE emFailCodes[10]; // 当出现失败时,对应的每一项故障码(0代表此项成功), 数组大小为批量执行的大小。数组元素索引位置对应操作的结果。
  101266. }NET_OUT_MULTI_REMOVE_ACCESS_IRIS;
  101267. ///@brief 批量删除用户眼睛信息
  101268. ///@param[in] lLoginID: 登录句柄
  101269. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101270. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101271. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101272. ///@return TRUE表示成功FALSE表示失败
  101273. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MultiRemoveAccessIris(LLONG lLoginID, const NET_IN_MULTI_REMOVE_ACCESS_IRIS* pstuInParam, NET_OUT_MULTI_REMOVE_ACCESS_IRIS* pstuOutParam, int nWaitTime);
  101274. ///@brief CLIENT_MultiUpdateAccessIris 输入参数
  101275. typedef struct tagNET_IN_MULTI_UPDATE_ACCESS_IRIS
  101276. {
  101277. DWORD dwSize; // 结构体大小
  101278. int nIrisListCount; // 下发眼睛信息个数
  101279. NET_ACCESS_IRIS_LIST stuIrisList[10]; // 下发眼睛信息列表
  101280. }NET_IN_MULTI_UPDATE_ACCESS_IRIS;
  101281. ///@brief CLIENT_MultiUpdateAccessIris 输出参数
  101282. typedef struct tagNET_OUT_MULTI_UPDATE_ACCESS_IRIS
  101283. {
  101284. DWORD dwSize; // 结构体大小
  101285. int nFailCodesCount; // 失败个数
  101286. NET_EM_FAILCODE emFailCodes[10]; // 当出现失败时,对应的每一项故障码(0代表此项成功), 数组大小为批量执行的大小。数组元素索引位置对应操作的结果。
  101287. }NET_OUT_MULTI_UPDATE_ACCESS_IRIS;
  101288. ///@brief 批量更新目标信息
  101289. ///@param[in] lLoginID: 登录句柄
  101290. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101291. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101292. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101293. ///@return TRUE表示成功FALSE表示失败
  101294. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MultiUpdateAccessIris(LLONG lLoginID, const NET_IN_MULTI_UPDATE_ACCESS_IRIS* pstuInParam, NET_OUT_MULTI_UPDATE_ACCESS_IRIS* pstuOutParam, int nWaitTime);
  101295. ///@brief CLIENT_SetHygrothermographConfig 输入参数
  101296. typedef struct tagNET_IN_SET_HYGROTHERMOGRAPH_CONFIG
  101297. {
  101298. DWORD dwSize; // 结构体大小
  101299. int nTemperatureRange[2]; // 温度正常范围,单位:℃
  101300. int nHumidityRange[2]; // 湿度正常范围,单位:%RH(相对湿度百分比)
  101301. int nChannel; // 通道号,接多个平台时中间平台使用,IPC对此不作处理
  101302. }NET_IN_SET_HYGROTHERMOGRAPH_CONFIG;
  101303. ///@brief CLIENT_SetHygrothermographConfig 输出参数
  101304. typedef struct tagNET_OUT_SET_HYGROTHERMOGRAPH_CONFIG
  101305. {
  101306. DWORD dwSize; // 结构体大小
  101307. }NET_OUT_SET_HYGROTHERMOGRAPH_CONFIG;
  101308. ///@brief 设置温湿度阈值
  101309. ///@param[in] lLoginID: 登录句柄
  101310. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101311. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101312. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101313. ///@return TRUE表示成功FALSE表示失败
  101314. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetHygrothermographConfig(LLONG lLoginID, const NET_IN_SET_HYGROTHERMOGRAPH_CONFIG* pstuInParam, NET_OUT_SET_HYGROTHERMOGRAPH_CONFIG* pstuOutParam, int nWaitTime);
  101315. ///@brief CLIENT_SetPowerSwitcherConfig 输入参数
  101316. typedef struct tagNET_IN_SET_POWER_SWITCHER_CONFIG
  101317. {
  101318. DWORD dwSize; // 结构体大小
  101319. int nCurrentRange[2]; // 电流正常范围,单位:mA
  101320. int nVoltageRange[2]; // 电压正常范围,单位:mV
  101321. int nChannel; // 通道号,接多个平台时中间平台使用,IPC对此不作处理
  101322. }NET_IN_SET_POWER_SWITCHER_CONFIG;
  101323. ///@brief CLIENT_SetPowerSwitcherConfig 输出参数
  101324. typedef struct tagNET_OUT_SET_POWER_SWITCHER_CONFIG
  101325. {
  101326. DWORD dwSize; // 结构体大小
  101327. }NET_OUT_SET_POWER_SWITCHER_CONFIG;
  101328. ///@brief 设置电量阈值
  101329. ///@param[in] lLoginID: 登录句柄
  101330. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101331. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101332. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101333. ///@return TRUE表示成功FALSE表示失败
  101334. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPowerSwitcherConfig(LLONG lLoginID, const NET_IN_SET_POWER_SWITCHER_CONFIG* pstuInParam, NET_OUT_SET_POWER_SWITCHER_CONFIG* pstuOutParam, int nWaitTime);
  101335. ///@brief CLIENT_GetCollectDeviceBodyInfo 接口入参
  101336. typedef struct tagNET_IN_GET_COLLECT_DEVICE_BODY_INFO
  101337. {
  101338. DWORD dwSize; // 结构体大小
  101339. int nSlotBodyNum; // 挂机索引个数
  101340. int nSlotBodyIndex[4]; // 挂机索引数组,存放挂机的逻辑序号
  101341. } NET_IN_GET_COLLECT_DEVICE_BODY_INFO;
  101342. ///@brief 挂机信息
  101343. typedef struct tagNET_COLLECT_DEVICE_BODY_INFO
  101344. {
  101345. BOOL bExist; // 挂机是否存在
  101346. UINT nSlotNum; // 挂机支持的槽位号数量
  101347. char szResvered[512]; // 保留字节
  101348. }NET_COLLECT_DEVICE_BODY_INFO;
  101349. ///@brief CLIENT_GetCollectDeviceBodyInfo 接口出参
  101350. typedef struct tagNET_OUT_GET_COLLECT_DEVICE_BODY_INFO
  101351. {
  101352. DWORD dwSize; // 结构体大小
  101353. int nBodyCount; // 挂机信息个数
  101354. NET_COLLECT_DEVICE_BODY_INFO stuBodyInfo[4]; // 挂机信息
  101355. } NET_OUT_GET_COLLECT_DEVICE_BODY_INFO;
  101356. ///@brief 获取采集站挂机信息
  101357. ///@param[in] lLoginID: 登录句柄
  101358. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101359. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101360. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101361. ///@return TRUE表示成功FALSE表示失败
  101362. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCollectDeviceBodyInfo(LLONG lLoginID, const NET_IN_GET_COLLECT_DEVICE_BODY_INFO* pstuInParam, NET_OUT_GET_COLLECT_DEVICE_BODY_INFO* pstuOutParam, int nWaitTime);
  101363. ///@brief 槽位ID信息
  101364. typedef struct tagNET_COLLECT_DEVICE_SLOT_ID_INFO
  101365. {
  101366. int nSlotBodyIndex; // 槽位所在挂机号
  101367. int nSlotIndex; // 槽位号
  101368. char szResvered[128]; // 保留字节
  101369. }NET_COLLECT_DEVICE_SLOT_ID_INFO;
  101370. ///@brief CLIENT_GetCollectDeviceInfo 接口入参
  101371. typedef struct tagNET_IN_GET_COLLECT_DEVICE_INFO
  101372. {
  101373. DWORD dwSize; // 结构体大小
  101374. int nSlotBodyNum; // 挂机索引个数
  101375. NET_COLLECT_DEVICE_SLOT_ID_INFO stuSlotID[8]; // 槽位ID数组
  101376. } NET_IN_GET_COLLECT_DEVICE_INFO;
  101377. ///@brief 采集文件数据详细信息
  101378. typedef struct tagNET_COLLOCT_FILE_INFO
  101379. {
  101380. UINT nFileTotal; // 文件总数
  101381. UINT nFileOkCounts; // 采集成功文件个数
  101382. UINT nFileFailCounts; // 采集失败文件个数
  101383. UINT nFileTotalLength; // 文件总长度,单位字节
  101384. UINT nFileOkTotalLength; // 采集成功文件总大小,单位字节
  101385. UINT nFileFailTotalLength; // 采集失败文件总大小,单位字节
  101386. char szResvered[128]; // 保留字节
  101387. }NET_COLLOCT_FILE_INFO;
  101388. ///@brief 采集设备的槽位信息
  101389. typedef struct tagNET_COLLECT_DEVICE_SLOT_INFO
  101390. {
  101391. NET_COLLECT_DEVICE_SLOT_ID_INFO stuSlotID; // 槽位标识
  101392. int nState; // 槽位状态
  101393. // 0:槽位上未接入设备
  101394. // 1:槽位接入设备,槽位门未锁定
  101395. // 2:槽位接入设备,槽位门已解锁
  101396. // 3:槽位接入设备,未成功登陆状态
  101397. // 4:槽位接入设备,登陆锁定状态
  101398. // 5:槽位接入设备并成功登陆,设备未绑定执法人
  101399. // 6:槽位接入设备并成功登陆,采集数据中
  101400. // 7:槽位接入设备并成功登陆,数据采集异常
  101401. // 8:槽位接入设备并成功登陆,升级中
  101402. // 9:槽位接入设备并成功登陆,设备升级失败
  101403. // 10:槽位接入设备并成功登陆,设备采集结束
  101404. BOOL bPriorityCollectEnable; // 槽位是否开启数据优先采集
  101405. UINT nCollectBindwith; // 槽位数据采集带宽,单位字节
  101406. UINT nLock; // 槽位锁定状态, 0:槽位门锁定, 1:槽位门未锁定
  101407. char szSerial[32]; // 被采集设备的序列号
  101408. char szName[64]; // 被采集设备名称,对已登录的状态有效
  101409. int nBattery; // 0~100:表示被采集设备当前电量百分比, -1:表示电量信息未获取到
  101410. UINT nLoginTryCount; // 表示连续登陆被采集设备的失败次数,nState为3和4时有效
  101411. UINT nLoginLockLeftSeconds; // 登陆锁定剩余时间,单位是秒,nState为4时有效
  101412. UINT nProcess; // 升级进度百分比,范围0-100
  101413. NET_COLLOCT_FILE_INFO stuVideoFileInfo; // 采集的视频文件信息
  101414. NET_COLLOCT_FILE_INFO stuAudioFileInfo; // 采集的音频文件信息
  101415. NET_COLLOCT_FILE_INFO stuPicFileInfo; // 采集的图片文件信息
  101416. char szResvered[256]; // 保留字节
  101417. }NET_COLLECT_DEVICE_SLOT_INFO;
  101418. ///@brief CLIENT_GetCollectDeviceInfo 接口出参
  101419. typedef struct tagNET_OUT_GET_COLLECT_DEVICE_INFO
  101420. {
  101421. DWORD dwSize; // 结构体大小
  101422. int nSlotInfoCount; // 挂机信息个数
  101423. NET_COLLECT_DEVICE_SLOT_INFO stuSlotInfo[8]; // 挂机信息
  101424. } NET_OUT_GET_COLLECT_DEVICE_INFO;
  101425. ///@brief 获取采集站槽位信息
  101426. ///@param[in] lLoginID: 登录句柄
  101427. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101428. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101429. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101430. ///@return TRUE表示成功FALSE表示失败
  101431. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCollectDeviceInfo(LLONG lLoginID, const NET_IN_GET_COLLECT_DEVICE_INFO* pstuInParam, NET_OUT_GET_COLLECT_DEVICE_INFO* pstuOutParam, int nWaitTime);
  101432. ///@brief 回调的槽位信息
  101433. typedef struct tagNET_COLLECT_DEVICE_MANAGER_NOTIFY_INFO
  101434. {
  101435. NET_COLLECT_DEVICE_SLOT_INFO stuSlotInfo; // 槽位信息
  101436. char szResvered[1024]; // 保留字节
  101437. }NET_COLLECT_DEVICE_MANAGER_NOTIFY_INFO;
  101438. ///@brief 订阅采集站槽位的状态信息回调函数原型, lAttachHandle为CLIENT_AttachCollectDeviceManager接口的返回值
  101439. ///@param[out] lAttachHandle 订阅句柄
  101440. ///@param[out] pstuCollectDeviceInfo 订阅采集站槽位的状态回调信息
  101441. ///@param[out] dwUser 用户信息
  101442. ///@return void
  101443. typedef void (CALLBACK *fNotifyCollectDeviceManager)(LLONG lAttachHandle, NET_COLLECT_DEVICE_MANAGER_NOTIFY_INFO* pstuCollectDeviceInfo, LDWORD dwUser);
  101444. ///@brief 接口 CLIENT_AttachCollectDevice 的输入参数
  101445. typedef struct tagNET_IN_ATTACH_COLLECT_DEVICE_MANAGER
  101446. {
  101447. DWORD dwSize; // 此结构体大小,必须赋值
  101448. fNotifyCollectDeviceManager cbNotify; // 回调函数,通知槽位信息
  101449. LDWORD dwUser; // 用户自定义参数
  101450. }NET_IN_ATTACH_COLLECT_DEVICE_MANAGER;
  101451. ///@brief 接口 CLIENT_AttachCollectDevice 的输出参数
  101452. typedef struct tagNET_OUT_ATTACH_COLLECT_DEVICE_MANAGER
  101453. {
  101454. DWORD dwSize; // 此结构体大小,必须赋值
  101455. }NET_OUT_ATTACH_COLLECT_DEVICE_MANAGER;
  101456. ///@brief 订阅采集站槽位的状态信息
  101457. ///@param[in] lLoginID 登录句柄
  101458. ///@param[in] pstInParam 接口输入参数
  101459. ///@param[out] pstOutParam 接口输出参数
  101460. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101461. ///@return 返回订阅句柄
  101462. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachCollectDeviceManager(LLONG lLoginID, NET_IN_ATTACH_COLLECT_DEVICE_MANAGER* pstuInParam, NET_OUT_ATTACH_COLLECT_DEVICE_MANAGER* pstuOutParam , int nWaitTime);
  101463. ///@brief 取消采集站槽位状态订阅
  101464. ///@param[in] lAttachHandle 订阅句柄
  101465. ///@return TRUE表示成功 FALSE表示失败
  101466. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachCollectDeviceManager(LLONG lAttachHandle);
  101467. ///@brief CLIENT_ChooseRemoteUpgraderChip 输入参数
  101468. typedef struct tagNET_IN_CHOOSE_REMOTE_UPGRADER_CHIP
  101469. {
  101470. DWORD dwSize; // 结构体大小
  101471. int nChannel; // 视频通道号
  101472. EM_CHIP_TYPE emChipType; // 准备升级的芯片
  101473. }NET_IN_CHOOSE_REMOTE_UPGRADER_CHIP;
  101474. ///@brief CLIENT_ChooseRemoteUpgraderChip 输出参数
  101475. typedef struct tagNET_OUT_CHOOSE_REMOTE_UPGRADER_CHIP
  101476. {
  101477. DWORD dwSize; // 结构体大小
  101478. }NET_OUT_CHOOSE_REMOTE_UPGRADER_CHIP;
  101479. ///@brief 选择升级的芯片
  101480. ///@param[in] lLoginID: 登录句柄
  101481. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101482. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101483. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101484. ///@return TRUE表示成功FALSE表示失败
  101485. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ChooseRemoteUpgraderChip(LLONG lLoginID, const NET_IN_CHOOSE_REMOTE_UPGRADER_CHIP* pstuInParam, NET_OUT_CHOOSE_REMOTE_UPGRADER_CHIP* pstuOutParam, int nWaitTime);
  101486. ///@brief CLIENT_GetDevStorageSmartValue 接口入参
  101487. typedef struct tagNET_IN_GET_DEV_STORAGE_SMART_VALUE
  101488. {
  101489. DWORD dwSize; // 结构体大小
  101490. char szName[64]; // 存储设备名称
  101491. } NET_IN_GET_DEV_STORAGE_SMART_VALUE;
  101492. ///@brief 设备SMART信息
  101493. typedef struct tagNET_SMART_VALUE_INFO
  101494. {
  101495. UINT nID; // 属性ID
  101496. char szName[32]; // 属性名
  101497. UINT nCurrent; // 属性值
  101498. UINT nWorst; // 最大出错值
  101499. UINT nThreshold; // 阈值
  101500. char szRaw[32]; // 实际值
  101501. int nPredict; // 状态
  101502. int nSync; // Raid同步状态, -1: 未知; 0: 自适应; 1: 同步优先,I/O优先分给Raid同步; 2:业务优先,I/O优先分给硬盘写数据; 3: 均衡
  101503. char szResvered[256]; // 保留字节
  101504. }NET_SMART_VALUE_INFO;
  101505. ///@brief CLIENT_GetDevStorageSmartValue 接口出参
  101506. typedef struct tagNET_OUT_GET_DEV_STORAGE_SMART_VALUE
  101507. {
  101508. DWORD dwSize; // 结构体大小
  101509. int nCount; // 设备SMART信息个数
  101510. NET_SMART_VALUE_INFO stuValuesInfo[64]; // 设备SMART信息
  101511. } NET_OUT_GET_DEV_STORAGE_SMART_VALUE;
  101512. ///@brief 获取SMART扫描信息
  101513. ///@param[in] lLoginID: 登录句柄
  101514. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101515. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101516. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101517. ///@return TRUE表示成功FALSE表示失败
  101518. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevStorageSmartValue(LLONG lLoginID, const NET_IN_GET_DEV_STORAGE_SMART_VALUE* pstuInParam, NET_OUT_GET_DEV_STORAGE_SMART_VALUE* pstuOutParam, int nWaitTime);
  101519. ///@brief CLIENT_GetDeviceEthBandInfo 接口入参
  101520. typedef struct tagNET_IN_GET_DEVICE_ETH_BAND_INFO
  101521. {
  101522. DWORD dwSize; // 结构体大小
  101523. } NET_IN_GET_DEVICE_ETH_BAND_INFO;
  101524. ///@brief 网卡信息
  101525. typedef struct tagNET_BAND_SPEED_INFO
  101526. {
  101527. char szEthName[16]; // 网卡名称
  101528. double dbReceivedBytes; // 网卡接收速率,单位 Mb/s
  101529. double dbTransmittedBytes; // 网卡发送速率,单位 Mb/s
  101530. char szResvered[512]; // 保留字节
  101531. }NET_BAND_SPEED_INFO;
  101532. ///@brief CLIENT_GetDeviceEthBandInfo 接口出参
  101533. typedef struct tagNET_OUT_GET_DEVICE_ETH_BAND_INFO
  101534. {
  101535. DWORD dwSize; // 结构体大小
  101536. int nCount; // 网卡信息个数
  101537. NET_BAND_SPEED_INFO stuBandSpeedInfo[10]; // 网卡信息
  101538. } NET_OUT_GET_DEVICE_ETH_BAND_INFO;
  101539. ///@brief 获取设备各网卡的上传与发送速率
  101540. ///@param[in] lLoginID: 登录句柄
  101541. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101542. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101543. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101544. ///@return TRUE表示成功FALSE表示失败
  101545. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDeviceEthBandInfo(LLONG lLoginID, const NET_IN_GET_DEVICE_ETH_BAND_INFO* pstuInParam, NET_OUT_GET_DEVICE_ETH_BAND_INFO* pstuOutParam, int nWaitTime);
  101546. ///@brief 回调的安检门金属检测消息
  101547. typedef struct tagNET_METAL_DETECT_NOTIFY_INFO
  101548. {
  101549. UINT nMetalIntensity; // 金属检测强度,范围0~100
  101550. UINT nSignalPhaseDiff; // 金属信号相位差值
  101551. UINT nDoorRegion; // 门体分区:
  101552. // 0:表示6分区;
  101553. // 1:表示12分区;
  101554. // 2:表示18分区;
  101555. // 3:表示10分区;
  101556. // 4:表示33分区;
  101557. // 5:表示1分区;
  101558. // 6:表示2分区;
  101559. // 7:表示3分区;
  101560. // 8:表示4分区;
  101561. // 9:表示8分区;
  101562. // 10:表示9分区;
  101563. // 11:表示16分区;
  101564. // 12:表示20分区;
  101565. // 13:表示24分区;
  101566. // 14:表示36分区;
  101567. // 15:表示40分区;
  101568. // 16:表示45分区;
  101569. // 17:表示48分区;
  101570. // 18:表示60分区
  101571. UINT nAlarmPositonNum; // 安检门区位个数
  101572. UINT nAlarmPositon[128]; // 安检门区位
  101573. UINT nTurnOffMetalDetect; // 关闭金属检测, 0:未知, 1:不关闭, 2:关闭
  101574. UINT nWriteToFlash; // 金属检测信息是否写入flash, 0:未知, 1:写入, 2:不写入
  101575. UINT nMetalRelativeIntensity; // 金属检测强度相对值(百分比*100的整数值)
  101576. char szResvered[1024]; // 保留字节
  101577. }NET_METAL_DETECT_NOTIFY_INFO;
  101578. ///@brief 订阅安检门金属检测信息回调函数原型, lAttachHandle为CLIENT_AttachMetalDetectInfo接口的返回值
  101579. ///@param[out] lAttachHandle 订阅句柄
  101580. ///@param[out] pstuMetalDetectInfo 安检门金属检测消息
  101581. ///@param[out] dwUser 用户信息
  101582. ///@return void
  101583. typedef void (CALLBACK *fNotifyMetalDetectInfoManager)(LLONG lAttachHandle, NET_METAL_DETECT_NOTIFY_INFO* pstuMetalDetectInfo, LDWORD dwUser);
  101584. ///@brief 接口 CLIENT_AttachMetalDetectInfo 的输入参数
  101585. typedef struct tagNET_IN_ATTACH_METAL_DETECT_INFO
  101586. {
  101587. DWORD dwSize; // 此结构体大小,必须赋值
  101588. fNotifyMetalDetectInfoManager cbNotify; // 回调函数,回调安检门金属检测消息
  101589. LDWORD dwUser; // 用户自定义参数
  101590. }NET_IN_ATTACH_METAL_DETECT_INFO;
  101591. ///@brief 接口 CLIENT_AttachCollectDevice 的输出参数
  101592. typedef struct tagNET_OUT_ATTACH_METAL_DETECT_INFO
  101593. {
  101594. DWORD dwSize; // 此结构体大小,必须赋值
  101595. }NET_OUT_ATTACH_METAL_DETECT_INFO;
  101596. ///@brief 订阅安检门金属检测信息
  101597. ///@param[in] lLoginID 登录句柄
  101598. ///@param[in] pstInParam 接口输入参数
  101599. ///@param[out] pstOutParam 接口输出参数
  101600. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101601. ///@return 返回订阅句柄
  101602. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachMetalDetectInfo(LLONG lLoginID, NET_IN_ATTACH_METAL_DETECT_INFO* pstuInParam, NET_OUT_ATTACH_METAL_DETECT_INFO* pstuOutParam , int nWaitTime);
  101603. ///@brief 取消订阅金属检测信息
  101604. ///@param[in] lAttachHandle 订阅句柄
  101605. ///@return TRUE表示成功 FALSE表示失败
  101606. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachMetalDetectInfo(LLONG lAttachHandle);
  101607. ///@brief CLIENT_GetMetalDetectInfo 输入参数
  101608. typedef struct tagNET_IN_GET_METAL_DETECT_INFO
  101609. {
  101610. DWORD dwSize; // 结构体大小
  101611. }NET_IN_GET_METAL_DETECT_INFO;
  101612. ///@brief CLIENT_GetMetalDetectInfo 输出参数
  101613. typedef struct tagNET_OUT_GET_METAL_DETECT_INFO
  101614. {
  101615. DWORD dwSize; // 结构体大小
  101616. UINT nMetalIntensity; // 金属检测强度,范围0~100
  101617. UINT nSignalPhaseDiff; // 金属信号相位差值
  101618. UINT nDoorRegion; // 门体分区:
  101619. // 0:表示6分区;
  101620. // 1:表示12分区;
  101621. // 2:表示18分区;
  101622. // 3:表示10分区;
  101623. // 4:表示33分区;
  101624. // 5:表示1分区;
  101625. // 6:表示2分区;
  101626. // 7:表示3分区;
  101627. // 8:表示4分区;
  101628. // 9:表示8分区;
  101629. // 10:表示9分区;
  101630. // 11:表示16分区;
  101631. // 12:表示20分区;
  101632. // 13:表示24分区;
  101633. // 14:表示36分区;
  101634. // 15:表示40分区;
  101635. // 16:表示45分区;
  101636. // 17:表示48分区;
  101637. // 18:表示60分区
  101638. UINT nAlarmPositonNum; // 安检门区位个数
  101639. UINT nAlarmPositon[128]; // 安检门区位
  101640. UINT nTurnOffMetalDetect; // 关闭金属检测, 0:未知, 1:不关闭, 2:关闭
  101641. UINT nWriteToFlash; // 金属检测信息是否写入flash, 0:未知, 1:写入, 2:不写入
  101642. UINT nMetalRelativeIntensity; // 金属检测强度相对值(百分比*100的整数值)
  101643. }NET_OUT_GET_METAL_DETECT_INFO;
  101644. ///@brief 获取安检门当前金属检测信息
  101645. ///@param[in] lLoginID: 登录句柄
  101646. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101647. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101648. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101649. ///@return TRUE表示成功FALSE表示失败
  101650. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMetalDetectInfo(LLONG lLoginID, const NET_IN_GET_METAL_DETECT_INFO* pstuInParam, NET_OUT_GET_METAL_DETECT_INFO* pstuOutParam, int nWaitTime);
  101651. ///@brief CLIENT_GetFaceFlowStatCaps 输入参数
  101652. typedef struct tagNET_IN_GET_FACE_FLOW_STAT_CAPS
  101653. {
  101654. DWORD dwSize; // 结构体大小
  101655. }NET_IN_GET_FACE_FLOW_STAT_CAPS;
  101656. ///@brief CLIENT_GetFaceFlowStatCaps 输出参数
  101657. typedef struct tagNET_OUT_GET_FACE_FLOW_STAT_CAPS
  101658. {
  101659. DWORD dwSize; // 结构体大小
  101660. UINT nSupport; // 支持目标检测统计掩码, bit0-支持目标检测统计, bit1-支持目标识别统计, bit2-支持按统计粒度Granularity字段来查询
  101661. }NET_OUT_GET_FACE_FLOW_STAT_CAPS;
  101662. ///@brief 查询目标数量统计能力
  101663. ///@param[in] lLoginID: 登录句柄
  101664. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101665. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101666. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101667. ///@return TRUE表示成功FALSE表示失败
  101668. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFaceFlowStatCaps(LLONG lLoginID, const NET_IN_GET_FACE_FLOW_STAT_CAPS* pstuInParam, NET_OUT_GET_FACE_FLOW_STAT_CAPS* pstuOutParam, int nWaitTime);
  101669. ///@brief 人员信息
  101670. typedef struct tagNET_FACE_FLOW_STAT_PERSON
  101671. {
  101672. EM_SEX_TYPE emSex; // 查询性别
  101673. UINT nAge[2]; // 查询年龄区间
  101674. char szResvered[1024]; // 保留字节
  101675. }NET_FACE_FLOW_STAT_PERSON;
  101676. ///@brief CLIENT_StartFindFaceFlowStat 输入参数
  101677. typedef struct tagNET_IN_START_FIND_FACE_FLOW_STAT
  101678. {
  101679. DWORD dwSize; // 结构体大小
  101680. NET_TIME stuStartTime; // 查询开始时间
  101681. NET_TIME stuEndTime; // 查询结束时间
  101682. UINT nGranularity; // 查询要求返回的统计信息粒度, 0:未知,1:按小时,2:按天,3:按月,4:按年,
  101683. NET_FACE_FLOW_STAT_PERSON stuPerson; // 查询人员信息
  101684. int nChannel; // 通道号
  101685. int nPresetIDCount; // 预置点个数
  101686. int nPresetID[512]; // 预置点
  101687. }NET_IN_START_FIND_FACE_FLOW_STAT;
  101688. ///@brief CLIENT_StartFindFaceFlowStat 输出参数
  101689. typedef struct tagNET_OUT_START_FIND_FACE_FLOW_STAT
  101690. {
  101691. DWORD dwSize; // 结构体大小
  101692. UINT nToken; // 查询令牌
  101693. UINT nTotalCount; // 符合此次查询条件的结果总条数
  101694. }NET_OUT_START_FIND_FACE_FLOW_STAT;
  101695. ///@brief 开始目标识别统计查询
  101696. ///@param[in] lLoginID 登录句柄
  101697. ///@param[in] pstuInParam 接口输入参数
  101698. ///@param[out]pstuOutParam 接口输出参数
  101699. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101700. ///@return TRUE表示成功 FALSE表示失败
  101701. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartFindFaceFlowStat(LLONG lLoginID, NET_IN_START_FIND_FACE_FLOW_STAT* pstuInParam, NET_OUT_START_FIND_FACE_FLOW_STAT* pstuOutParam, int nWaitTime);
  101702. ///@brief CLIENT_DoFindFaceFlowStat 输入参数
  101703. typedef struct tagNET_IN_DO_FIND_FACE_FLOW_STAT
  101704. {
  101705. DWORD dwSize; // 结构体大小
  101706. UINT nToken; // 查询令牌
  101707. UINT nBeginNumber; // 查询起始序号, 表示从beginNumber条记录开始, 取count条记录返回; 0<=beginNumber<=totalCount-1
  101708. UINT nCount; // 每次查询的目标识别统计条数
  101709. }NET_IN_DO_FIND_FACE_FLOW_STAT;
  101710. ///@brief 目标识别统计信息
  101711. typedef struct tagNET_FACE_FLOW_STAT_INFO
  101712. {
  101713. UINT nChannel; // 通道号
  101714. int nPresetIDCount; // 预置点个数
  101715. int nPresetID[512]; // 预置点
  101716. NET_TIME stuStartTime; // 开始时间
  101717. NET_TIME stuEndTime; // 结束时间
  101718. UINT nRepeatCount; // 重复总次数
  101719. UINT nFaceDetectCount; // 目标检测去重后的次数统计
  101720. UINT nFaceAnalysisCount; // 目标识别去重后的次数统计
  101721. char szResvered[252]; // 保留字节
  101722. }NET_FACE_FLOW_STAT_INFO;
  101723. ///@brief CLIENT_StartFindFaceFlowStat 输出参数
  101724. typedef struct tagNET_OUT_DO_FIND_FACE_FLOW_STAT
  101725. {
  101726. DWORD dwSize; // 结构体大小
  101727. UINT nFound; // 查询到的条数
  101728. NET_FACE_FLOW_STAT_INFO stuInfo[64]; // 目标识别统计信息
  101729. }NET_OUT_DO_FIND_FACE_FLOW_STAT;
  101730. ///@brief 获取目标识别统计信息
  101731. ///@param[in] lLoginID 登录句柄
  101732. ///@param[in] pstuInParam 接口输入参数
  101733. ///@param[out]pstuOutParam 接口输出参数
  101734. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101735. ///@return TRUE表示成功 FALSE表示失败
  101736. CLIENT_NET_API LLONG CALL_METHOD CLIENT_DoFindFaceFlowStat(LLONG lLoginID, NET_IN_DO_FIND_FACE_FLOW_STAT* pstuInParam, NET_OUT_DO_FIND_FACE_FLOW_STAT* pstuOutParam, int nWaitTime);
  101737. ///@brief CLIENT_StopFindFaceFlowStat 输入参数
  101738. typedef struct tagNET_IN_STOP_FIND_FACE_FLOW_STAT
  101739. {
  101740. DWORD dwSize; // 结构体大小
  101741. UINT nToken; // 查询令牌
  101742. }NET_IN_STOP_FIND_FACE_FLOW_STAT;
  101743. ///@brief CLIENT_StopFindFaceFlowStat 输出参数
  101744. typedef struct tagNET_OUT_STOP_FIND_FACE_FLOW_STAT
  101745. {
  101746. DWORD dwSize; // 结构体大小
  101747. }NET_OUT_STOP_FIND_FACE_FLOW_STAT;
  101748. ///@brief 结束目标识别统计查询
  101749. ///@param[in] lLoginID 登录句柄
  101750. ///@param[in] pstuInParam 接口输入参数
  101751. ///@param[out]pstuOutParam 接口输出参数
  101752. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101753. ///@return TRUE表示成功 FALSE表示失败
  101754. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StopFindFaceFlowStat(LLONG lLoginID, NET_IN_STOP_FIND_FACE_FLOW_STAT* pstuInParam, NET_OUT_STOP_FIND_FACE_FLOW_STAT* pstuOutParam, int nWaitTime);
  101755. ///@brief CLIENT_GetPrivacyMasking 输入参数
  101756. typedef struct tagNET_IN_GET_PRIVACY_MASKING
  101757. {
  101758. DWORD dwSize; // 结构体大小
  101759. int nChannel; // 通道号
  101760. int nOffset; // 本次从第几个遮档块开始获取
  101761. int nLimit; // 本次获取多少个遮档块信息,最大不超过24
  101762. }NET_IN_GET_PRIVACY_MASKING;
  101763. ///@brief 隐私遮挡信息
  101764. typedef struct tagNET_PRIVACY_MASKING_INFO
  101765. {
  101766. int nIndex; // 遮档块编号,从0开始
  101767. int nEnable; // 隐私遮挡开关标志 1 开,0关
  101768. char szName[64]; // 每个遮挡块可命名
  101769. EM_PRIVACY_MASKING_TYPE emShapeType; // 形状类型为矩形,Rect项有效(默认),形状类型为多边形,此时Polygon有效
  101770. DH_RECT stuRect; // 矩形区域,使用相对坐标体系,取值均为0-8192
  101771. NET_UINT_POINT stuPolygon[64]; // 多边形顶点坐标,多边形顶点不超过64, 使用相对坐标体系,取值均为0-8192
  101772. int nPointNum; // 多边形顶点坐标个数
  101773. DH_COLOR_RGBA stuColor; // 遮挡块颜色,下发时nMosaic为0则必填
  101774. int nMosaic; // 遮挡块马赛克类型,马赛克时颜色Color无效,具体值参考获取能力后NET_MOSAIC_MASKING_CAPS的nSupportMosaicType字段
  101775. int nShieldZoom; // 屏蔽倍率,度数扩大10倍表示
  101776. char szResvered[512]; // 保留字节
  101777. }NET_PRIVACY_MASKING_INFO;
  101778. ///@brief CLIENT_GetPrivacyMasking 输出参数
  101779. typedef struct tagNET_OUT_GET_PRIVACY_MASKING
  101780. {
  101781. DWORD dwSize; // 结构体大小
  101782. int nTotal; // 总共有多少个遮档块
  101783. NET_PRIVACY_MASKING_INFO stuPrivacyMaskingInfo[24]; // 隐私遮挡块信息
  101784. int nPrivacyMasking; // 返回的隐私遮挡数组数量
  101785. }NET_OUT_GET_PRIVACY_MASKING;
  101786. ///@brief 获取隐私遮挡列表
  101787. ///@param[in] lLoginID 登录句柄
  101788. ///@param[in] pstuInParam 接口输入参数
  101789. ///@param[out]pstuOutParam 接口输出参数
  101790. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101791. ///@return TRUE表示成功 FALSE表示失败
  101792. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPrivacyMasking(LLONG lLoginID, const NET_IN_GET_PRIVACY_MASKING* pstuInParam, NET_OUT_GET_PRIVACY_MASKING* pstuOutParam, int nWaitTime);
  101793. ///@brief CLIENT_SetPrivacyMasking 输入参数
  101794. typedef struct tagNET_IN_SET_PRIVACY_MASKING
  101795. {
  101796. DWORD dwSize; // 结构体大小
  101797. int nChannel; // 通道号
  101798. NET_PRIVACY_MASKING_INFO stuPrivacyMaskingInfo; // 隐私遮挡块信息
  101799. }NET_IN_SET_PRIVACY_MASKING;
  101800. ///@brief CLIENT_SetPrivacyMasking 输出参数
  101801. typedef struct tagNET_OUT_SET_PRIVACY_MASKING
  101802. {
  101803. DWORD dwSize; // 结构体大小
  101804. }NET_OUT_SET_PRIVACY_MASKING;
  101805. ///@brief 设置隐私遮挡列表
  101806. ///@param[in] lLoginID 登录句柄
  101807. ///@param[in] pstuInParam 接口输入参数
  101808. ///@param[out]pstuOutParam 接口输出参数
  101809. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101810. ///@return TRUE表示成功 FALSE表示失败
  101811. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPrivacyMasking(LLONG lLoginID, const NET_IN_SET_PRIVACY_MASKING* pstuInParam, NET_OUT_SET_PRIVACY_MASKING* pstuOutParam, int nWaitTime);
  101812. ///@brief CLIENT_SetPrivacyMaskingEnable 输入参数
  101813. typedef struct tagNET_IN_SET_PRIVACY_MASKING_ENABLE
  101814. {
  101815. DWORD dwSize; // 结构体大小
  101816. int nChannel; // 通道号
  101817. BOOL bEnable; // true 使能所有隐私遮挡块 false 关闭所有隐私遮挡块
  101818. }NET_IN_SET_PRIVACY_MASKING_ENABLE;
  101819. ///@brief CLIENT_SetPrivacyMaskingEnable 输出参数
  101820. typedef struct tagNET_OUT_SET_PRIVACY_MASKING_ENABLE
  101821. {
  101822. DWORD dwSize; // 结构体大小
  101823. }NET_OUT_SET_PRIVACY_MASKING_ENABLE;
  101824. ///@brief 使能或关闭所有隐私遮挡块
  101825. ///@param[in] lLoginID 登录句柄
  101826. ///@param[in] pstuInParam 接口输入参数
  101827. ///@param[out]pstuOutParam 接口输出参数
  101828. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101829. ///@return TRUE表示成功 FALSE表示失败
  101830. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPrivacyMaskingEnable(LLONG lLoginID, const NET_IN_SET_PRIVACY_MASKING_ENABLE* pstuInParam, NET_OUT_SET_PRIVACY_MASKING_ENABLE* pstuOutParam, int nWaitTime);
  101831. ///@brief CLIENT_GetPrivacyMaskingEnable 输入参数
  101832. typedef struct tagNET_IN_GET_PRIVACY_MASKING_ENABLE
  101833. {
  101834. DWORD dwSize; // 结构体大小
  101835. int nChannel; // 通道号
  101836. }NET_IN_GET_PRIVACY_MASKING_ENABLE;
  101837. ///@brief CLIENT_GetPrivacyMaskingEnable 输出参数
  101838. typedef struct tagNET_OUT_GET_PRIVACY_MASKING_ENABLE
  101839. {
  101840. DWORD dwSize; // 结构体大小
  101841. BOOL bEnable; // true 开 false 关
  101842. }NET_OUT_GET_PRIVACY_MASKING_ENABLE;
  101843. ///@brief 获取隐私遮挡总开关使能状态
  101844. ///@param[in] lLoginID 登录句柄
  101845. ///@param[in] pstuInParam 接口输入参数
  101846. ///@param[out]pstuOutParam 接口输出参数
  101847. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101848. ///@return TRUE表示成功 FALSE表示失败
  101849. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPrivacyMaskingEnable(LLONG lLoginID, const NET_IN_GET_PRIVACY_MASKING_ENABLE* pstuInParam, NET_OUT_GET_PRIVACY_MASKING_ENABLE* pstuOutParam, int nWaitTime);
  101850. ///@brief CLIENT_GotoPrivacyMasking 输入参数
  101851. typedef struct tagNET_IN_GOTO_PRIVACY_MASKING
  101852. {
  101853. DWORD dwSize; // 结构体大小
  101854. int nChannel; // 通道号
  101855. int nIndex; // 遮档块编号,从0开始
  101856. }NET_IN_GOTO_PRIVACY_MASKING;
  101857. ///@brief CLIENT_GotoPrivacyMasking 输出参数
  101858. typedef struct tagNET_OUT_GOTO_PRIVACY_MASKING
  101859. {
  101860. DWORD dwSize; // 结构体大小
  101861. }NET_OUT_GOTO_PRIVACY_MASKING;
  101862. ///@brief 跳转到隐私遮档块
  101863. ///@param[in] lLoginID 登录句柄
  101864. ///@param[in] pstuInParam 接口输入参数
  101865. ///@param[out]pstuOutParam 接口输出参数
  101866. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101867. ///@return TRUE表示成功 FALSE表示失败
  101868. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GotoPrivacyMasking(LLONG lLoginID, const NET_IN_GOTO_PRIVACY_MASKING* pstuInParam, NET_OUT_GOTO_PRIVACY_MASKING* pstuOutParam, int nWaitTime);
  101869. ///@brief CLIENT_DeletePrivacyMasking 输入参数
  101870. typedef struct tagNET_IN_DELETE_PRIVACY_MASKING
  101871. {
  101872. DWORD dwSize; // 结构体大小
  101873. int nChannel; // 通道号
  101874. int nIndex; // 遮档块编号,从0开始
  101875. }NET_IN_DELETE_PRIVACY_MASKING;
  101876. ///@brief CLIENT_DeletePrivacyMasking 输出参数
  101877. typedef struct tagNET_OUT_DELETE_PRIVACY_MASKING
  101878. {
  101879. DWORD dwSize; // 结构体大小
  101880. }NET_OUT_DELETE_PRIVACY_MASKING;
  101881. ///@brief 删除隐私遮档块
  101882. ///@param[in] lLoginID 登录句柄
  101883. ///@param[in] pstuInParam 接口输入参数
  101884. ///@param[out]pstuOutParam 接口输出参数
  101885. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101886. ///@return TRUE表示成功 FALSE表示失败
  101887. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DeletePrivacyMasking(LLONG lLoginID, const NET_IN_DELETE_PRIVACY_MASKING* pstuInParam, NET_OUT_DELETE_PRIVACY_MASKING* pstuOutParam, int nWaitTime);
  101888. ///@brief CLIENT_ClearPrivacyMasking 输入参数
  101889. typedef struct tagNET_IN_CLEAR_PRIVACY_MASKING
  101890. {
  101891. DWORD dwSize; // 结构体大小
  101892. int nChannel; // 通道号
  101893. }NET_IN_CLEAR_PRIVACY_MASKING;
  101894. ///@brief CLIENT_ClearPrivacyMasking 输出参数
  101895. typedef struct tagNET_OUT_CLEAR_PRIVACY_MASKING
  101896. {
  101897. DWORD dwSize; // 结构体大小
  101898. }NET_OUT_CLEAR_PRIVACY_MASKING;
  101899. ///@brief 清除遮挡
  101900. ///@param[in] lLoginID 登录句柄
  101901. ///@param[in] pstuInParam 接口输入参数
  101902. ///@param[out]pstuOutParam 接口输出参数
  101903. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101904. ///@return TRUE表示成功 FALSE表示失败
  101905. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ClearPrivacyMasking(LLONG lLoginID, const NET_IN_CLEAR_PRIVACY_MASKING* pstuInParam, NET_OUT_CLEAR_PRIVACY_MASKING* pstuOutParam, int nWaitTime);
  101906. ///@brief CLIENT_SetFileAlias 输入参数
  101907. typedef struct tagNET_IN_SET_FILE_ALIAS_INFO
  101908. {
  101909. DWORD dwSize; // 结构体大小
  101910. int nChannel; // 目标文件对应的视频通道号
  101911. NET_TIME stuStartTime; // 开始时间
  101912. NET_TIME stuEndTime; // 结束时间
  101913. int nVideoStream; // 视频码流 0-主码流 1-辅码流1 2-辅码流2 3-辅码流3
  101914. int nFlagCount; // 文件标志总个数;
  101915. EM_RECORD_SNAP_FLAG_TYPE emFlagsList[128]; // 文件标志
  101916. int nMediaType; // 文件类型 0:dav, 1:jpg
  101917. char szRecordAlias[256]; // 要关联的文件名称
  101918. }NET_IN_SET_FILE_ALIAS_INFO;
  101919. ///@brief CLIENT_SetFileAlias 输出参数
  101920. typedef struct tagNET_OUT_SET_FILE_ALIAS_INFO
  101921. {
  101922. DWORD dwSize; // 结构体大小
  101923. }NET_OUT_SET_FILE_ALIAS_INFO;
  101924. ///@brief 指定时间段内录像自定义重命名
  101925. ///@param[in] lLoginID: 登录句柄
  101926. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101927. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101928. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101929. ///@return TRUE表示成功FALSE表示失败
  101930. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetFileAlias(LLONG lLoginID, const NET_IN_SET_FILE_ALIAS_INFO* pstuInParam, NET_OUT_SET_FILE_ALIAS_INFO* pstuOutParam, int nWaitTime);
  101931. ///@brief CLIENT_SearchFileByAlias 输入参数
  101932. typedef struct tagNET_IN_SEARCH_FILE_BYALIAS_INFO
  101933. {
  101934. DWORD dwSize; // 结构体大小
  101935. char szRecordAlias[256]; // 要查询的文件名称
  101936. UINT nMaxCount; // 最大查询数量
  101937. }NET_IN_SEARCH_FILE_BYALIAS_INFO;
  101938. ///@brief 根据录像的命名搜索录像文件 查询到的录像信息
  101939. typedef struct tagNET_RECORS_BYALIAS_INFO
  101940. {
  101941. int nChannel; // 视频通道号
  101942. int nVideoStream; // 视频码流 0 未知 1-主码流 2-辅码流1 3-辅码流2 4-辅码流3
  101943. NET_TIME stuStartTime; // 开始时间
  101944. NET_TIME stuEndTime; // 结束时间
  101945. int nFlagCount; // 文件标志总个数;
  101946. EM_RECORD_SNAP_FLAG_TYPE emFlagsList[128]; // 文件标志
  101947. UINT nDriveNo; // 磁盘号
  101948. UINT nCluster; // 簇号
  101949. int nMediaType; // 文件类型 0:未知, 1:dav, 2:jpg
  101950. int nPartition; // 分区号
  101951. UINT nLength; // 整个文件长度 单位:字节
  101952. UINT nCutLength; // 按查询时间段截取过的文件长度
  101953. char szFilePath[260]; // 图片路径,录像类型无此字段
  101954. char szResvered[1024]; // 保留字节
  101955. }NET_RECORS_BYALIAS_INFO;
  101956. ///@brief CLIENT_SearchFileByAlias 输出参数
  101957. typedef struct tagNET_OUT_SEARCH_FILE_BYALIAS_INFO
  101958. {
  101959. DWORD dwSize; // 结构体大小
  101960. char szReserved1[4]; // 字节对齐
  101961. UINT nMaxCount; // 最大查询数量,用户填写
  101962. UINT nRetCount; // 实际查到的录像条数
  101963. NET_RECORS_BYALIAS_INFO* pstuRecordInfo; // 查询到的录像信息,用户申请内存,数组大小为nMaxCount
  101964. }NET_OUT_SEARCH_FILE_BYALIAS_INFO;
  101965. ///@brief 根据录像的命名调取录像
  101966. ///@param[in] lLoginID: 登录句柄
  101967. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  101968. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  101969. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  101970. ///@return TRUE表示成功FALSE表示失败
  101971. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SearchFileByAlias(LLONG lLoginID, const NET_IN_SEARCH_FILE_BYALIAS_INFO* pstuInParam, NET_OUT_SEARCH_FILE_BYALIAS_INFO* pstuOutParam, int nWaitTime);
  101972. ///@brief CLIENT_GetFanSpeedEx 输入参数
  101973. typedef struct tagNET_IN_GET_FAN_SPEED_EX
  101974. {
  101975. DWORD dwSize; // 结构体大小
  101976. int nType; // 风扇类型,0: 表示全部,1: CPU处理器,2: Cabinet机柜,3: Mainboard主板,4: Power电源
  101977. }NET_IN_GET_FAN_SPEED_EX;
  101978. ///@brief CLIENT_GetFanSpeedEx 输出参数
  101979. typedef struct tagNET_OUT_GET_FAN_SPEED_EX
  101980. {
  101981. DWORD dwSize; // 结构体大小
  101982. int nCPUCount; // CPU风扇个数
  101983. int nCPU[16]; // CPU风扇转数, -1表示获取失败
  101984. int nCabinetCount; // 机柜风扇个数
  101985. int nCabinet[16]; // 机柜风扇转数
  101986. int nMainboardCount; // 主板风扇个数
  101987. int nMainboard[16]; // 主板风扇转数
  101988. int nPowerCount; // 电源风扇个数
  101989. int nPower[16]; // 电源风扇转数
  101990. }NET_OUT_GET_FAN_SPEED_EX;
  101991. ///@brief 获取风扇转速
  101992. ///@param[in] lLoginID 登录句柄
  101993. ///@param[in] pstuInParam 接口输入参数
  101994. ///@param[out]pstuOutParam 接口输出参数
  101995. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  101996. ///@return TRUE表示成功 FALSE表示失败
  101997. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFanSpeedEx(LLONG lLoginID, const NET_IN_GET_FAN_SPEED_EX* pstuInParam, NET_OUT_GET_FAN_SPEED_EX* pstuOutParam, int nWaitTime);
  101998. ///@brief 用户信息
  101999. typedef struct tagNET_MODIFY_USER_INFO
  102000. {
  102001. char szName[128]; // 用户名
  102002. char szGroup[8]; // 用户所在的组名
  102003. int nPwdValidPeriod; // 账户密码有效期,单位天
  102004. BOOL bUseGroupEx; // 是否使用szGroupEx
  102005. char szGroupEx[32]; // 用户所在的组名扩展
  102006. char szResvered[984]; // 保留字节
  102007. }NET_MODIFY_USER_INFO;
  102008. ///@brief CLIENT_ModifyUserManagerUser 接口入参
  102009. typedef struct tagNET_IN_MODIFY_USER_MANAGER_USER
  102010. {
  102011. DWORD dwSize; // 结构体大小
  102012. char szName[128]; // 修改的用户名称,必须是已有的用户名
  102013. NET_MODIFY_USER_INFO stuUserInfo; // 用户信息
  102014. }NET_IN_MODIFY_USER_MANAGER_USER;
  102015. ///@brief CLIENT_ModifyUserManagerUser 接口出参
  102016. typedef struct tagNET_OUT_MODIFY_USER_MANAGER_USER
  102017. {
  102018. DWORD dwSize; // 结构体大小
  102019. }NET_OUT_MODIFY_USER_MANAGER_USER;
  102020. ///@brief 全量式修改用户信息
  102021. ///@param[in] lLoginID: 登录句柄
  102022. ///@param[in] pstuInParam: 接口输入参数
  102023. ///@param[out] pstuOutParam: 接口输出参数
  102024. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  102025. ///@return TRUE表示成功 FALSE表示失败
  102026. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ModifyUserManagerUser(LLONG lLoginID, NET_IN_MODIFY_USER_MANAGER_USER* pstuInParam, NET_OUT_MODIFY_USER_MANAGER_USER* pstuOutParam, int nWaitTime);
  102027. ///@brief 回调的声音检测元数据信息
  102028. typedef struct tagNET_NOTIFY_SOUND_DATA_INFO
  102029. {
  102030. DWORD dwSize; // 此结构体大小,必须赋值
  102031. UINT nChannel; // 通道号
  102032. UINT nSoundVolume; // 声强大小
  102033. char szSource[32]; // 元数据来源
  102034. char szResvered[256]; // 保留字节
  102035. }NET_NOTIFY_SOUND_DATA_INFO;
  102036. ///@brief 订阅声音检测元数据接口回调函数原型, lAttachSoundDataHandle为CLIENT_AttachSoundData接口的返回值
  102037. ///@param[out] lAttachSoundDataHandle 订阅句柄
  102038. ///@param[out] pstuSoundDataInfo 订阅的声音检测元数据回调信息
  102039. ///@param[out] dwUser 用户信息
  102040. ///@return void
  102041. typedef void (CALLBACK *fNotifySoundData)(LLONG lAttachSoundDataHandle, NET_NOTIFY_SOUND_DATA_INFO* pstuSoundDataInfo, LDWORD dwUser);
  102042. ///@brief CLIENT_AttachSoundData接口入参
  102043. typedef struct tagNET_IN_ATTACH_SOUNDDATA
  102044. {
  102045. DWORD dwSize; // 此结构体大小,必须赋值
  102046. fNotifySoundData cbfNotifySoundData; // 回调函数,通知通道变化信息
  102047. LDWORD dwUser; // 用户自定义参数
  102048. int nChannel; // 订阅通道,用于创建音频检测设备实例
  102049. char szSource[32]; // 元数据来源
  102050. }NET_IN_ATTACH_SOUNDDATA;
  102051. ///@brief CLIENT_AttachSoundData接口出参
  102052. typedef struct tagNET_OUT_ATTACH_SOUNDDATA
  102053. {
  102054. DWORD dwSize; // 此结构体大小,必须赋值
  102055. }NET_OUT_ATTACH_SOUNDDATA;
  102056. ///@brief 订阅声音检测元数据接口
  102057. ///@param[in] lLoginID 登录句柄
  102058. ///@param[in] pstInParam 接口输入参数
  102059. ///@param[out] pstOutParam 接口输出参数
  102060. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102061. ///@return 返回订阅句柄
  102062. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSoundData(LLONG lLoginID,const NET_IN_ATTACH_SOUNDDATA* pstInParam, NET_OUT_ATTACH_SOUNDDATA* pstOutParam, int nWaitTime);
  102063. ///@brief 退订声音检测元数据接口
  102064. ///@param[in] lAttachSoundDataHandle 订阅句柄
  102065. ///@return TRUE表示成功 FALSE表示失败
  102066. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSoundData(LLONG lAttachSoundDataHandle);
  102067. ///@brief CLIENT_SecurityExportDataEx接口入参
  102068. typedef struct tagNET_IN_SECURITY_EXPORT_DATA_INFO
  102069. {
  102070. DWORD dwSize; // 此结构体大小,必须赋值
  102071. char szKey[1024]; // 公钥加密后再经过Base64编码的密码串
  102072. int nfileTypeMask; // 导出数据类型, 其文件的类型取值即此文件的掩码位数
  102073. // Bit3通讯录
  102074. // Bit4密码信息
  102075. // Bit5 卡片信息
  102076. // Bit6 目标信息
  102077. // Bit7信息信息
  102078. // Bit8 对讲IPC信息
  102079. // Bit13 预置点信息
  102080. int nOffset; // 导出偏移
  102081. int nNeedLength; // 需要导出的字节长度
  102082. }NET_IN_SECURITY_EXPORT_DATA_INFO;
  102083. ///@brief CLIENT_SecurityExportDataEx接口出参
  102084. typedef struct tagNET_OUT_SECURITY_EXPORT_DATA_INFO
  102085. {
  102086. DWORD dwSize; // 此结构体大小,必须赋值
  102087. char* pBufData; // 导出文件数据, 用户申请内存, 大小为nBufLen
  102088. int nBufLen; // pBufData最大长度
  102089. int nBufRet; // 实际返回的长度
  102090. int nTotalLength; // 导出文件数据总长度
  102091. int nPackLength; // 二进制包长度
  102092. }NET_OUT_SECURITY_EXPORT_DATA_INFO;
  102093. ///@brief 设备导出文件接口
  102094. ///@param[in] lLoginID 登录句柄
  102095. ///@param[in] pstInParam 接口输入参数
  102096. ///@param[out] pstOutParam 接口输出参数
  102097. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102098. ///@return TRUE表示成功 FALSE表示失败
  102099. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityExportDataEx(LLONG lLoginID,const NET_IN_SECURITY_EXPORT_DATA_INFO* pstInParam, NET_OUT_SECURITY_EXPORT_DATA_INFO* pstOutParam, int nWaitTime);
  102100. ///@brief 设备导入文件状态
  102101. typedef enum tagEM_STATUS_TYPE
  102102. {
  102103. EM_IMPORT_STATUS_UNKNOWN, // 未知
  102104. EM_IMPORT_STATUS_BEGIN, // 开始
  102105. EM_IMPORT_STATUS_APPEND, // 追加
  102106. EM_IMPORT_STATUS_END, // 结束
  102107. } EM_STATUS_TYPE;
  102108. ///@brief CLIENT_SecurityImportDataEx接口入参
  102109. typedef struct tagNET_IN_SECURITY_IMPORT_DATA_INFO
  102110. {
  102111. DWORD dwSize; // 此结构体大小,必须赋值
  102112. char szKey[1024]; // 公钥加密后再经过Base64编码的密码串
  102113. BOOL bIsOverWrite; // 是否覆盖
  102114. EM_STATUS_TYPE emStatus; // 设备导入文件状态
  102115. char* pBufData; // 下发二进制文件数据
  102116. int nLength; // 数据长度,单位:字节
  102117. }NET_IN_SECURITY_IMPORT_DATA_INFO;
  102118. ///@brief CLIENT_SecurityImportDataEx接口出参
  102119. typedef struct tagNET_OUT_SECURITY_IMPORT_DATA_INFO
  102120. {
  102121. DWORD dwSize; // 此结构体大小,必须赋值
  102122. }NET_OUT_SECURITY_IMPORT_DATA_INFO;
  102123. ///@brief 设备导入文件接口
  102124. ///@param[in] lLoginID 登录句柄
  102125. ///@param[in] pstInParam 接口输入参数
  102126. ///@param[out] pstOutParam 接口输出参数
  102127. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102128. ///@return TRUE表示成功 FALSE表示失败
  102129. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityImportDataEx(LLONG lLoginID,const NET_IN_SECURITY_IMPORT_DATA_INFO* pstInParam, NET_OUT_SECURITY_IMPORT_DATA_INFO* pstOutParam, int nWaitTime);
  102130. ///@brief CLIENT_SecurityPrepareExportData接口入参
  102131. typedef struct tagNET_IN_SECURITY_PREPARE_EXPORT_DATA_INFO
  102132. {
  102133. DWORD dwSize; // 此结构体大小,必须赋值
  102134. int nfileTypeMask; // 导出数据类型, 其文件的类型取值即此文件的掩码位数
  102135. // Bit3 通讯录
  102136. // Bit4 密码信息
  102137. // Bit5 卡片信息
  102138. // Bit6 目标信息
  102139. // Bit7 信息
  102140. // Bit13 预置点信息
  102141. char szKey[1024]; // 公钥加密后再经过Base64编码的密码串
  102142. }NET_IN_SECURITY_PREPARE_EXPORT_DATA_INFO;
  102143. ///@brief CLIENT_SecurityPrepareExportData接口出参
  102144. typedef struct tagNET_OUT_SECURITY_PREPARE_EXPORT_DATA_INFO
  102145. {
  102146. DWORD dwSize; // 此结构体大小,必须赋值
  102147. }NET_OUT_SECURITY_PREPARE_EXPORT_DATA_INFO;
  102148. ///@brief 准备生成导出文件接口
  102149. ///@param[in] lLoginID 登录句柄
  102150. ///@param[in] pstInParam 接口输入参数
  102151. ///@param[out] pstOutParam 接口输出参数
  102152. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102153. ///@return TRUE表示成功 FALSE表示失败
  102154. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityPrepareExportData(LLONG lLoginID,const NET_IN_SECURITY_PREPARE_EXPORT_DATA_INFO* pstInParam, NET_OUT_SECURITY_PREPARE_EXPORT_DATA_INFO* pstOutParam, int nWaitTime);
  102155. ///@brief CLIENT_SecurityGetCaps接口入参
  102156. typedef struct tagNET_IN_SECURITY_GETCAPS_INFO
  102157. {
  102158. DWORD dwSize; // 此结构体大小,必须赋值
  102159. }NET_IN_SECURITY_GETCAPS_INFO;
  102160. ///@brief CLIENT_SecurityGetCaps接口出参
  102161. typedef struct tagNET_OUT_SECURITY_GETCAPS_INFO
  102162. {
  102163. DWORD dwSize; // 此结构体大小,必须赋值
  102164. int nTypesRealNum; // 返回支持类型
  102165. int nSupportTypes[32]; // 0 车牌允许名单
  102166. // 1 车牌禁止名单
  102167. // 2 车牌禁止和允许名单
  102168. // 3 对讲通信录
  102169. // 4 自定义密码
  102170. // 5 卡片记录集
  102171. // 6 门禁目标信息
  102172. // 7 门禁信息
  102173. // 8 对讲IPC信息
  102174. // 9 对讲人员信息
  102175. // 10 公共密码记录集
  102176. // 11 运维信息
  102177. // 13 预置点信息
  102178. // 14 管理机设备管理信息
  102179. }NET_OUT_SECURITY_GETCAPS_INFO;
  102180. ///@brief 查询特定数据类型的任务状态接口
  102181. ///@param[in] lLoginID 登录句柄
  102182. ///@param[in] pstInParam 接口输入参数
  102183. ///@param[out] pstOutParam 接口输出参数
  102184. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102185. ///@return TRUE表示成功 FALSE表示失败
  102186. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGetCaps(LLONG lLoginID,const NET_IN_SECURITY_GETCAPS_INFO* pstInParam, NET_OUT_SECURITY_GETCAPS_INFO* pstOutParam, int nWaitTime);
  102187. ///@brief CLIENT_SecurityGetTaskStatus接口入参
  102188. typedef struct tagNET_IN_SECURITY_GET_TASK_STATUS_INFO
  102189. {
  102190. DWORD dwSize; // 此结构体大小,必须赋值
  102191. int nType; // 任务数据类型, 13:预置点信息
  102192. }NET_IN_SECURITY_GET_TASK_STATUS_INFO;
  102193. ///@brief 当前任务类型
  102194. typedef enum tagEM_SECURITY_TASK_TYPE
  102195. {
  102196. EM_TYPE_STATUS_UNKNOWN, // 未知
  102197. EM_TYPE_STATUS_NONE, // 当前无任务
  102198. EM_TYPE_STATUS_IMPORT, // 有导入任务
  102199. EM_TYPE_STATUS_EXPORT, // 有导出任务
  102200. } EM_SECURITY_TASK_TYPE;
  102201. ///@brief 当前任务状态
  102202. typedef enum tagEM_SECURITY_TASK_STATUS
  102203. {
  102204. EM_TASK_STATUS_UNKNOWN, // 未知
  102205. EM_TASK_STATUS_RUNNING, // 任务执行中
  102206. EM_TASK_STATUS_SUCCEEDED, // 任务执行成功
  102207. EM_TASK_STATUS_FAILED, // 任务执行失败
  102208. } EM_SECURITY_TASK_STATUS;
  102209. ///@brief CLIENT_SecurityGetTaskStatus接口出参
  102210. typedef struct tagNET_OUT_SECURITY_GET_TASK_STATUS_INFO
  102211. {
  102212. DWORD dwSize; // 此结构体大小,必须赋值
  102213. EM_SECURITY_TASK_TYPE nTaskType; // 当前任务类型
  102214. EM_SECURITY_TASK_STATUS nStatus; // 当前任务状态
  102215. char szErrorCode[128]; // 当任务状态"Status"为"Failed"时, 填写错误信息, 例如:"File content error!" 文件错误
  102216. int nProgress; // 当前任务执行进度百分比
  102217. }NET_OUT_SECURITY_GET_TASK_STATUS_INFO;
  102218. ///@brief 查询当前支持的导入导出数据类型
  102219. ///@param[in] lLoginID 登录句柄
  102220. ///@param[in] pstInParam 接口输入参数
  102221. ///@param[out] pstOutParam 接口输出参数
  102222. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102223. ///@return TRUE表示成功 FALSE表示失败
  102224. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SecurityGetTaskStatus(LLONG lLoginID,const NET_IN_SECURITY_GET_TASK_STATUS_INFO* pstInParam, NET_OUT_SECURITY_GET_TASK_STATUS_INFO* pstOutParam, int nWaitTime);
  102225. ///@brief CLIENT_ICRGetState接口入参
  102226. typedef struct tagNET_IN_ICR_GET_STATE_INFO
  102227. {
  102228. DWORD dwSize; // 此结构体大小,必须赋值
  102229. }NET_IN_ICR_GET_STATE_INFO;
  102230. ///@brief 滤光片类型
  102231. typedef enum tagEM_ICR_STATE_TYPE
  102232. {
  102233. EM_ICR_STATE_TYPE_UNKNOWN, // 未知
  102234. EM_ICR_STATE_TYPE_NORMAL, // 普通
  102235. EM_ICR_STATE_TYPE_IR, // 红外
  102236. EM_ICR_STATE_TYPE_CPL, // 偏振镜
  102237. } EM_ICR_STATE_TYPE;
  102238. ///@brief CLIENT_ICRGetState接口出参
  102239. typedef struct tagNET_OUT_ICR_GET_STATE_INFO
  102240. {
  102241. DWORD dwSize; // 此结构体大小,必须赋值
  102242. int nState; // 滤光片状态 -1 无效值, 0 白片(IPC的描述为彩色), 1 夜片(IPC的描述为黑白)
  102243. EM_ICR_STATE_TYPE emICRState; // 滤光片类型
  102244. }NET_OUT_ICR_GET_STATE_INFO;
  102245. ///@brief 通知开始获取数据
  102246. ///@param[in] lLoginID 登录句柄
  102247. ///@param[in] pstInParam 接口输入参数
  102248. ///@param[out] pstOutParam 接口输出参数
  102249. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102250. ///@return TRUE表示成功 FALSE表示失败
  102251. CLIENT_NET_API BOOL CALL_METHOD CLIENT_ICRGetState(LLONG lLoginID,const NET_IN_ICR_GET_STATE_INFO* pstInParam, NET_OUT_ICR_GET_STATE_INFO* pstOutParam, int nWaitTime);
  102252. ///@brief CLIENT_RemoveAnalyseTaskByType 输入参数
  102253. typedef struct tagNET_IN_REMOVE_ANALYSE_TASK_BYTYPE
  102254. {
  102255. DWORD dwSize; // 结构体大小
  102256. EM_DATA_SOURCE_TYPE emSourceType; // 任务类型
  102257. }NET_IN_REMOVE_ANALYSE_TASK_BYTYPE;
  102258. ///@brief CLIENT_RemoveAnalyseTaskByType 输出参数
  102259. typedef struct tagNET_OUT_REMOVE_ANALYSE_TASK_BYTYPE
  102260. {
  102261. DWORD dwSize; // 结构体大小
  102262. }NET_OUT_REMOVE_ANALYSE_TASK_BYTYPE;
  102263. ///@brief 按数据源类型删除智能分析任务
  102264. ///@param[in] lLoginID 登录句柄
  102265. ///@param[in] pstuInParam 接口输入参数
  102266. ///@param[out]pstuOutParam 接口输出参数
  102267. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102268. ///@return TRUE表示成功 FALSE表示失败
  102269. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveAnalyseTaskByType(LLONG lLoginID, const NET_IN_REMOVE_ANALYSE_TASK_BYTYPE* pstuInParam, NET_OUT_REMOVE_ANALYSE_TASK_BYTYPE* pstuOutParam, int nWaitTime);
  102270. ///@brief 获取设备状态入参
  102271. typedef struct tagNET_IN_UNIFIEDINFOCOLLECT_GET_DEVSTATUS
  102272. {
  102273. DWORD dwSize; // 结构体大小
  102274. }NET_IN_UNIFIEDINFOCOLLECT_GET_DEVSTATUS;
  102275. ///@brief 供电类型
  102276. typedef enum tagNET_EM_POWER_TYPE
  102277. {
  102278. NET_EM_POWER_TYPE_UNKNOWN = -1, // 未知
  102279. NET_EM_POWER_TYPE_POWERADAPTER, // 电源适配器
  102280. NET_EM_POWER_TYPE_BATTERY, // 电池
  102281. NET_EM_POWER_TYPE_BATTERY_AND_POWERADAPTER, // 电池+电源适配器
  102282. }NET_EM_POWER_TYPE;
  102283. ///@brief 电源电池相关信息
  102284. typedef struct tagNET_DEVSTATUS_POWER_INFO
  102285. {
  102286. UINT nBatteryPercent; // 电池电量百分比,0~100
  102287. NET_EM_POWER_TYPE emPowerType; // 供电类型
  102288. }NET_DEVSTATUS_POWER_INFO;
  102289. ///@brief 有线网连接状态
  102290. typedef enum tagNET_EM_ETH_STATE
  102291. {
  102292. NET_EM_ETH_UNKNOWN, // 未知
  102293. NET_EM_ETH_CONNECT, // 连接
  102294. NET_EM_ETH_DISCONNECT, // 未连接
  102295. }NET_EM_ETH_STATE;
  102296. ///@brief sim卡状态
  102297. typedef enum tagNET_EM_SIM_STATE
  102298. {
  102299. NET_EM_SIM_UNKNOWN, // 未知
  102300. NET_EM_SIM_ONLINE, // 在线
  102301. NET_EM_SIM_OFFLINE, // 离线
  102302. }NET_EM_SIM_STATE;
  102303. ///@brief sim卡状态信息
  102304. typedef struct tagNET_DEVSTATUS_SIM_INFO
  102305. {
  102306. NET_EM_SIM_STATE emStatus; // SIM卡状态
  102307. BYTE byIndex; // SIM卡编号
  102308. BYTE byReserved[31]; // 预留字段
  102309. }NET_DEVSTATUS_SIM_INFO;
  102310. ///@brief 网络相关信息
  102311. typedef struct tagNET_DEVSTATUS_NET_INFO
  102312. {
  102313. UINT nWifiIntensity; // wifi信号强度等级,0~5,0表示没有信号
  102314. UINT nWifiSignal; // wifi信号强度,单位dbm, 0~100,0表示没有信号
  102315. UINT nCellulSignal; // 2g/3g/4g信号强度,单位dbm. 0~100, 0表示没有信号
  102316. UINT nCellulIntensity; // 2g/3g/4g信号强度等级,0~5, 0表示没有信号
  102317. NET_EM_ETH_STATE emEthState; // 有线网连接状态
  102318. UINT n3Gflux; // 蜂窝网络实际使用流量,单位:MB
  102319. UINT n3GfluxByTime; // 网络实际使用时长,单位:分钟
  102320. NET_EM_ETH_STATE emWifiState; // 网络连接状态
  102321. NET_EM_ETH_STATE emCellularstate; // 蜂窝网络连接状态
  102322. UINT nSimNum; // SIM卡数量
  102323. NET_DEVSTATUS_SIM_INFO stuSimInfo[DH_GATEWAY_MAX_SIM_NUM]; // SIM卡状态信息
  102324. }NET_DEVSTATUS_NET_INFO;
  102325. ///@brief 主机防拆状态
  102326. typedef enum tagNET_EM_TAMPER_STATE
  102327. {
  102328. NET_EM_TAMPER_UNKNOWN = -1, // 未知
  102329. NET_EM_TAMPER_NOALARM, // 未报警
  102330. NET_EM_TAMPER_ALARMING, // 报警中
  102331. }NET_EM_TAMPER_STATE;
  102332. ///@brief 获取设备状态出参
  102333. typedef struct tagNET_OUT_UNIFIEDINFOCOLLECT_GET_DEVSTATUS
  102334. {
  102335. DWORD dwSize; // 结构体大小
  102336. NET_DEVSTATUS_POWER_INFO stuPowerInfo; // 电源电池相关信息
  102337. NET_DEVSTATUS_NET_INFO stuNetInfo; // 网络相关信息
  102338. char szVersion[DH_COMMON_STRING_32]; // 主机软件版本
  102339. NET_EM_TAMPER_STATE emTamperState; // 主机防拆状态
  102340. }NET_OUT_UNIFIEDINFOCOLLECT_GET_DEVSTATUS;
  102341. ///@brief 获取设备状态, DMSS专用接口, pInParam与pOutParam内存由用户申请释放
  102342. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetUnifiedStatus(LLONG lLoginID, NET_IN_UNIFIEDINFOCOLLECT_GET_DEVSTATUS* pInParam, NET_OUT_UNIFIEDINFOCOLLECT_GET_DEVSTATUS* pOutParam, int nWaitTime);
  102343. ///@brief 获取token入参
  102344. typedef struct tagNET_IN_MAKE_TOKEN
  102345. {
  102346. DWORD dwSize; // 结构体大小
  102347. char szUUID[128]; // 客户端唯一标示符
  102348. int nKeepLiveTime; // Token保活时间, 范围60~86400
  102349. }NET_IN_MAKE_TOKEN;
  102350. ///@brief 获取token出参
  102351. typedef struct tagNET_OUT_MAKE_TOKEN
  102352. {
  102353. DWORD dwSize; // 结构体大小
  102354. UINT nToken; // Token
  102355. }NET_OUT_MAKE_TOKEN;
  102356. ///@brief 获取token, pstuInParam与pstuOutParam内存由用户申请释放
  102357. ///@param[in] lLoginID 登录句柄
  102358. ///@param[in] pstuInParam 接口输入参数
  102359. ///@param[out]pstuOutParam 接口输出参数
  102360. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102361. ///@return TRUE表示成功 FALSE表示失败
  102362. CLIENT_NET_API BOOL CALL_METHOD CLIENT_MakeToken(LLONG lLoginID, NET_IN_MAKE_TOKEN* pstuInParam, NET_OUT_MAKE_TOKEN* pstuOutParam, int nWaitTime);
  102363. ///@brief CLIENT_GetNASDirectoryInfo接口入参
  102364. typedef struct tagNET_IN_NAS_DIRECTORY_GET_INFO
  102365. {
  102366. DWORD dwSize; // 此结构体大小,必须赋值
  102367. char szName[128]; // 共享文件夹名称, 用于创建设备组件实例, 必须填写
  102368. }NET_IN_NAS_DIRECTORY_GET_INFO;
  102369. ///@brief NAS状态
  102370. typedef enum tagEM_NAS_STATE_TYPE
  102371. {
  102372. EM_NAS_STATE_TYPE_UNKNOWN, // 未知
  102373. EM_NAS_STATE_TYPE_ACTIVE, // 正常
  102374. EM_NAS_STATE_TYPE_LVFAILED, // LV异常
  102375. EM_NAS_STATE_TYPE_INACTIVE, // 非活跃
  102376. EM_NAS_STATE_TYPE_VGFAILED, // LV所属的VG异常
  102377. EM_NAS_STATE_TYPE_NOTSTARTED, // 服务未开启
  102378. } EM_NAS_STATE_TYPE;
  102379. ///@brief CLIENT_GetNASDirectoryInfo接口出参
  102380. typedef struct tagNET_OUT_NAS_DIRECTORY_GET_INFO
  102381. {
  102382. DWORD dwSize; // 此结构体大小,必须赋值
  102383. UINT nFreeSpace; // 剩余空间, 单位MB
  102384. UINT nTotalSpace; // 总空间, 单位MB
  102385. EM_NAS_STATE_TYPE emState; // NAS状态
  102386. }NET_OUT_NAS_DIRECTORY_GET_INFO;
  102387. ///@brief 获取共享文件夹工作目录信息
  102388. ///@param[in] lLoginID 登录句柄
  102389. ///@param[in] pstInParam 接口输入参数
  102390. ///@param[out] pstOutParam 接口输出参数
  102391. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102392. ///@return TRUE表示成功 FALSE表示失败
  102393. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetNASDirectoryInfo(LLONG lLoginID,const NET_IN_NAS_DIRECTORY_GET_INFO* pstInParam, NET_OUT_NAS_DIRECTORY_GET_INFO* pstOutParam, int nWaitTime);
  102394. ///@brief CLIENT_GetFileManagerExFileInfoByPath接口入参
  102395. typedef struct tagNET_IN_GET_FILE_INFO_BY_PATH_INFO
  102396. {
  102397. DWORD dwSize; // 此结构体大小,必须赋值
  102398. char szPath[256]; // 文件路径
  102399. }NET_IN_GET_FILE_INFO_BY_PATH_INFO;
  102400. ///@brief 文件上传状态
  102401. typedef enum tagEM_FILE_UPDATE_STATE
  102402. {
  102403. EM_FILE_UPDATE_STATE_UNKNOWN, // 未知
  102404. EM_FILE_UPDATE_STATE_UPLOADING, // 正在上传
  102405. EM_FILE_UPDATE_STATE_PAUSED, // 上传中断
  102406. EM_FILE_UPDATE_STATE_SUCCEEDED, // 上传成功
  102407. } EM_FILE_UPDATE_STATE;
  102408. ///@brief CLIENT_GetFileManagerExFileInfoByPath接口出参
  102409. typedef struct tagNET_OUT_GET_FILE_INFO_BY_PATH_INFO
  102410. {
  102411. DWORD dwSize; // 此结构体大小,必须赋值
  102412. EM_FILE_UPDATE_STATE emState; // 文件上传状态
  102413. NET_TIME_EX stuStartTime; // 文件开始时间
  102414. NET_TIME_EX stuEndTime; // 文件结束时间
  102415. UINT nProgress; // 文件上传进度
  102416. UINT nCurrentSlice; // 当前分片(切片上传模式所需数据)
  102417. TP_U64 nFileLength; // 文件大小
  102418. int nReason; // 错误原因
  102419. // 0: 未知原因
  102420. // 1: 文件个数超出
  102421. // 2: 文件存储空间已满
  102422. // 3: 该文件太大
  102423. // 4: 无效的文件类型
  102424. // 5: 没有上传权限
  102425. // 6: 文件命名异常
  102426. // 7: 文件名太长
  102427. // 8: 文件名已经存在
  102428. // 9: 验签失败
  102429. char szReserved[4]; // 字节对齐
  102430. }NET_OUT_GET_FILE_INFO_BY_PATH_INFO;
  102431. ///@brief 根据文件路径获取外部导入文件信息
  102432. ///@param[in] lLoginID 登录句柄
  102433. ///@param[in] pstInParam 接口输入参数
  102434. ///@param[out] pstOutParam 接口输出参数
  102435. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102436. ///@return TRUE表示成功 FALSE表示失败
  102437. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFileManagerExFileInfoByPath(LLONG lLoginID,const NET_IN_GET_FILE_INFO_BY_PATH_INFO* pstInParam, NET_OUT_GET_FILE_INFO_BY_PATH_INFO* pstOutParam, int nWaitTime);
  102438. ///@brief CLIENT_GetStorageTankInfo接口入参
  102439. typedef struct tagNET_IN_GET_STORAGE_TANK_INFO
  102440. {
  102441. DWORD dwSize; // 此结构体大小,必须赋值
  102442. }NET_IN_GET_STORAGE_TANK_INFO;
  102443. ///@brief 磁盘柜信息
  102444. typedef struct tagNET_STORAGE_TANK_INFO
  102445. {
  102446. int nSlotNum; // 磁盘柜总槽位数
  102447. char szReserved[2044]; // 保留字段
  102448. }NET_STORAGE_TANK_INFO;
  102449. ///@brief CLIENT_GetStorageTankInfo接口出参
  102450. typedef struct tagNET_OUT_GET_STORAGE_TANK_INFO
  102451. {
  102452. DWORD dwSize; // 此结构体大小,必须赋值
  102453. int nTankInfoNum; // 磁盘柜数量
  102454. NET_STORAGE_TANK_INFO stuTankInfo[32]; // 磁盘柜信息
  102455. }NET_OUT_GET_STORAGE_TANK_INFO;
  102456. ///@brief 查询磁盘柜信息
  102457. ///@param[in] lLoginID 登录句柄
  102458. ///@param[in] pstuInParam 接口输入参数
  102459. ///@param[out] pstuOutParam 接口输出参数
  102460. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102461. ///@return TRUE表示成功 FALSE表示失败
  102462. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetStorageTankInfo(LLONG lLoginID,const NET_IN_GET_STORAGE_TANK_INFO* pstuInParam, NET_OUT_GET_STORAGE_TANK_INFO* pstuOutParam, int nWaitTime);
  102463. ///@brief CLIENT_AddOSDText接口入参
  102464. typedef struct tagNET_IN_ADD_OSD_TEXT_INFO
  102465. {
  102466. DWORD dwSize; // 此结构体大小,必须赋值
  102467. int nType; // 叠加的类型, 0 与GPS信息叠加强相关
  102468. int nChannelNum; // 实际下发的通道数
  102469. int nChannel[16]; // 需要叠加的通道
  102470. char szText[256]; // 叠加的文本信息
  102471. UINT nDuration; // 叠加显示时长, 0表示一直叠加至下一次协议下发, 其它数字表示显示时长, 单位秒
  102472. }NET_IN_ADD_OSD_TEXT_INFO;
  102473. ///@brief CLIENT_AddOSDText接口出参
  102474. typedef struct tagNET_OUT_ADD_OSD_TEXT_INFO
  102475. {
  102476. DWORD dwSize; // 此结构体大小,必须赋值
  102477. }NET_OUT_ADD_OSD_TEXT_INFO;
  102478. ///@brief 添加叠加文本信息
  102479. ///@param[in] lLoginID 登录句柄
  102480. ///@param[in] pstInParam 接口输入参数
  102481. ///@param[out] pstOutParam 接口输出参数
  102482. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102483. ///@return TRUE表示成功 FALSE表示失败
  102484. CLIENT_NET_API BOOL CALL_METHOD CLIENT_AddOSDText(LLONG lLoginID,const NET_IN_ADD_OSD_TEXT_INFO* pstuInParam, NET_OUT_ADD_OSD_TEXT_INFO* pstuOutParam, int nWaitTime);
  102485. ///@brief 导出数据包描述
  102486. typedef struct tagNET_STREAM_DATA_FILE_INFO
  102487. {
  102488. char szDestFile[70]; // 目录名:导出数据存放文件夹
  102489. char szResvered1[2]; // 预留字节1
  102490. char szDestPath[128]; // 导出数据存放路径
  102491. char szDestFileName[128]; // 导出文件名
  102492. UINT nIndex; // 文件分片索引号从1开始一次递增, 若单个文件完整输出则填0
  102493. char szResvered[1024]; // 预留字节
  102494. }NET_STREAM_DATA_FILE_INFO;
  102495. ///@brief CLIENT_AttachStartStreamData的回调信息
  102496. typedef struct tagNET_CB_START_STREAM_DATA_INFO
  102497. {
  102498. NET_STREAM_DATA_FILE_INFO stuFileInfo; // 导出数据包描述
  102499. BOOL bEOF; // 数据完成标志
  102500. UINT nProgress; // 数据传输进度, 百分比, 范围[0, 100]
  102501. char szReserved[2048]; // 预留字节
  102502. }NET_CB_START_STREAM_DATA_INFO;
  102503. ///@brief CLIENT_AttachStartStreamData的回调函数
  102504. typedef void (CALLBACK *fStartStreamDataCallBack)(LLONG lAttachHandle, NET_CB_START_STREAM_DATA_INFO* pstuStartStreamData, LDWORD dwUser, BYTE *pBuffer, DWORD dwBufSize);
  102505. ///@brief CLIENT_AttachStartStreamData 接口输入参数
  102506. typedef struct tagNET_IN_ATTACH_START_STREAM_DATA
  102507. {
  102508. DWORD dwSize; // 此结构体大小,必须赋值
  102509. fStartStreamDataCallBack cbStartStreamData; // 回调函数
  102510. LDWORD dwUser; // 用户信息
  102511. }NET_IN_ATTACH_START_STREAM_DATA;
  102512. ///@brief CLIENT_AttachStartStreamData 接口输出参数
  102513. typedef struct tagNET_OUT_ATTACH_START_STREAM_DATA
  102514. {
  102515. DWORD dwSize; // 结构体大小
  102516. } NET_OUT_ATTACH_START_STREAM_DATA;
  102517. ///@brief 获取设备当前状态并绑定导出接口
  102518. ///@param[in] lLoginID: 登录句柄
  102519. ///@param[in] pstuInParam: 接口输入参数, 内存资源由用户申请和释放
  102520. ///@param[out] pstuOutParam: 接口输出参数, 内存资源由用户申请和释放
  102521. ///@param[in] nWaitTime: 接口超时时间, 单位毫秒
  102522. ///@return 订阅句柄
  102523. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachStartStreamData(LLONG lLoginID, NET_IN_ATTACH_START_STREAM_DATA* pstuInParam, NET_OUT_ATTACH_START_STREAM_DATA* pstuOutParam , int nWaitTime);
  102524. ///@brief 注销一键导出处理
  102525. ///@param[in] lAttachHandle 订阅接口返回句柄
  102526. ///@return TRUE表示成功, FALSE表示失败
  102527. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachStopStreamData(LLONG lAttachHandle);
  102528. ///@brief CLIENT_GetDevVideoInputCollect接口入参
  102529. typedef struct tagNET_IN_GET_DEV_VIDEO_INPUT_COLLECT
  102530. {
  102531. DWORD dwSize; // 结构体大小
  102532. }NET_IN_GET_DEV_VIDEO_INPUT_COLLECT;
  102533. ///@brief CLIENT_GetDevVideoInputCollect接口出参
  102534. typedef struct tagNET_OUT_GET_DEV_VIDEO_INPUT_COLLECT
  102535. {
  102536. DWORD dwSize; // 结构体大小
  102537. UINT nChannels; // 模拟输入通道数
  102538. }NET_OUT_GET_DEV_VIDEO_INPUT_COLLECT;
  102539. ///@brief 获取模拟输入通道数, pstuInParam与pstuOutParam内存由用户申请释放
  102540. ///@param[in] lLoginID 登录句柄
  102541. ///@param[in] pstuInParam 接口输入参数
  102542. ///@param[out]pstuOutParam 接口输出参数
  102543. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102544. ///@return TRUE表示成功 FALSE表示失败
  102545. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDevVideoInputCollect(LLONG lLoginID, NET_IN_GET_DEV_VIDEO_INPUT_COLLECT* pstuInParam, NET_OUT_GET_DEV_VIDEO_INPUT_COLLECT* pstuOutParam, int nWaitTime);
  102546. ///@brief 回调的触摸屏触摸信息
  102547. typedef struct tagNET_NOTIFY_HOOK_DATA_INFO
  102548. {
  102549. UINT nType; // 输入源类型
  102550. UINT nMessage; // 消息类型
  102551. UINT nParam1; // 按键键值
  102552. UINT nParam2; // 触摸坐标值
  102553. char szReserved[1024]; // 保留字节
  102554. }NET_NOTIFY_HOOK_DATA_INFO;
  102555. ///@brief 订阅触摸屏触摸信息接口回调函数原型, lAttachHookHandle为CLIENT_AttachHook接口的返回值
  102556. ///@param[out] lAttachHookHandle 订阅句柄
  102557. ///@param[out] pstuHookDataInfo 订阅的触摸屏触摸信息
  102558. ///@param[out] dwUser 用户信息
  102559. ///@return void
  102560. typedef void (CALLBACK *fNotifyHookData)(LLONG lAttachHookHandle, NET_NOTIFY_HOOK_DATA_INFO* pstuHookDataInfo, LDWORD dwUser);
  102561. ///@brief CLIENT_AttachHook接口入参
  102562. typedef struct tagNET_IN_ATTACH_HOOK
  102563. {
  102564. DWORD dwSize; // 此结构体大小,必须赋值
  102565. fNotifyHookData cbNotifyHookData; // 回调函数
  102566. LDWORD dwUser; // 用户自定义参数
  102567. }NET_IN_ATTACH_HOOK;
  102568. ///@brief CLIENT_AttachHook接口出参
  102569. typedef struct tagNET_OUT_ATTACH_HOOK
  102570. {
  102571. DWORD dwSize; // 此结构体大小,必须赋值
  102572. }NET_OUT_ATTACH_HOOK;
  102573. ///@brief 订阅触摸屏触摸信息接口
  102574. ///@param[in] lLoginID 登录句柄
  102575. ///@param[in] pstuInParam 接口输入参数
  102576. ///@param[out] pstuOutParam 接口输出参数
  102577. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102578. ///@return 返回订阅句柄
  102579. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachHook(LLONG lLoginID, const NET_IN_ATTACH_HOOK* pstuInParam, NET_OUT_ATTACH_HOOK* pstuOutParam, int nWaitTime);
  102580. ///@brief 取消触摸屏触摸信息订阅接口
  102581. ///@param[in] lAttachHandle 订阅句柄
  102582. ///@return TRUE表示成功 FALSE表示失败
  102583. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachHook(LLONG lAttachHandle);
  102584. ///@brief 回调的陀螺仪数据信息
  102585. typedef struct tagNET_NOTIFY_GYRO_DATA_INFO
  102586. {
  102587. double dbAngularSpeedX; // X轴角速度,单位rad/s
  102588. double dbAngularSpeedY; // Y轴角速度,单位rad/s
  102589. double dbAngularSpeedZ; // z轴角速度,单位rad/s
  102590. double dbAccelX; // X轴加速度,单位m/s^2
  102591. double dbAccelY; // Y轴加速度,单位m/s^2
  102592. double dbAccelZ; // Z轴加速度,单位m/s^2
  102593. char szReserved[1024]; // 保留字节
  102594. }NET_NOTIFY_GYRO_DATA_INFO;
  102595. ///@brief 订阅陀螺仪数据接口回调函数原型, lAttachGyroHandle为CLIENT_AttachGyro接口的返回值
  102596. ///@param[out] lAttachGyroHandle 订阅句柄
  102597. ///@param[out] pstuGyroDataInfo 订阅的陀螺仪数据回调信息
  102598. ///@param[out] dwUser 用户信息
  102599. ///@return void
  102600. typedef void (CALLBACK *fNotifyGyroData)(LLONG lAttachGyroHandle, NET_NOTIFY_GYRO_DATA_INFO* pstuGyroDataInfo, LDWORD dwUser);
  102601. ///@brief CLIENT_AttachGyro接口入参
  102602. typedef struct tagNET_IN_ATTACH_GYRO
  102603. {
  102604. DWORD dwSize; // 此结构体大小,必须赋值
  102605. fNotifyGyroData cbNotifyGyroData; // 回调函数
  102606. LDWORD dwUser; // 用户自定义参数
  102607. }NET_IN_ATTACH_GYRO;
  102608. ///@brief CLIENT_AttachGyro接口出参
  102609. typedef struct tagNET_OUT_ATTACH_GYRO
  102610. {
  102611. DWORD dwSize; // 此结构体大小,必须赋值
  102612. }NET_OUT_ATTACH_GYRO;
  102613. ///@brief 订阅陀螺仪数据接口
  102614. ///@param[in] lLoginID 登录句柄
  102615. ///@param[in] pstuInParam 接口输入参数
  102616. ///@param[out] pstuOutParam 接口输出参数
  102617. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102618. ///@return 返回订阅句柄
  102619. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachGyro(LLONG lLoginID,const NET_IN_ATTACH_GYRO* pstuInParam, NET_OUT_ATTACH_GYRO* pstuOutParam, int nWaitTime);
  102620. ///@brief 取消陀螺仪数据订阅接口
  102621. ///@param[in] lAttachHandle 订阅句柄
  102622. ///@return TRUE表示成功 FALSE表示失败
  102623. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachGyro(LLONG lAttachHandle);
  102624. ///@brief CLIENT_SetArchivePlan接口入参
  102625. typedef struct tagNET_IN_SET_ARCHIVE_PLAN
  102626. {
  102627. DWORD dwSize; // 结构体大小
  102628. char szChannelID[64]; // 通道ID
  102629. char szChannelName[64]; // 通道名称
  102630. DH_TSECT stuTimeSection[8][24]; //备份时间段
  102631. int nVideoStream; // 视频码流,0-未知,1-主码流,2-辅码流1,3-辅码流2
  102632. }NET_IN_SET_ARCHIVE_PLAN;
  102633. ///@brief CLIENT_SetArchivePlan接口出参
  102634. typedef struct tagNET_OUT_SET_ARCHIVE_PLAN
  102635. {
  102636. DWORD dwSize; // 结构体大小
  102637. }NET_OUT_SET_ARCHIVE_PLAN;
  102638. ///@brief 设置归档计划
  102639. ///@param[in] lLoginID 登录句柄
  102640. ///@param[in] pstuInParam 接口输入参数
  102641. ///@param[out]pstuOutParam 接口输出参数
  102642. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102643. ///@return TRUE表示成功 FALSE表示失败
  102644. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetArchivePlan(LLONG lLoginID, const NET_IN_SET_ARCHIVE_PLAN* pstuInParam, NET_OUT_SET_ARCHIVE_PLAN* pstuOutParam, int nWaitTime);
  102645. ///@brief CLIENT_RemoveArchivePlans接口入参
  102646. typedef struct tagNET_IN_REMOVE_ARCHIVE_PLANS
  102647. {
  102648. DWORD dwSize; // 结构体大小
  102649. int nChannelIDNum; // 通道ID数量
  102650. char szChannelIDs[64][1024]; // 通道ID列表
  102651. }NET_IN_REMOVE_ARCHIVE_PLANS;
  102652. ///@brief CLIENT_RemoveArchivePlans接口出参
  102653. typedef struct tagNET_OUT_REMOVE_ARCHIVE_PLANS
  102654. {
  102655. DWORD dwSize; // 结构体大小
  102656. }NET_OUT_REMOVE_ARCHIVE_PLANS;
  102657. ///@brief 删除归档计划
  102658. ///@param[in] lLoginID 登录句柄
  102659. ///@param[in] pstuInParam 接口输入参数
  102660. ///@param[out]pstuOutParam 接口输出参数
  102661. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102662. ///@return TRUE表示成功 FALSE表示失败
  102663. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RemoveArchivePlans(LLONG lLoginID, const NET_IN_REMOVE_ARCHIVE_PLANS* pstuInParam, NET_OUT_REMOVE_ARCHIVE_PLANS* pstuOutParam, int nWaitTime);
  102664. ///@brief CLIENT_GetArchivePlanStat接口入参
  102665. typedef struct tagNET_IN_GET_ARCHIVE_PLAN_STAT
  102666. {
  102667. DWORD dwSize; // 结构体大小
  102668. }NET_IN_GET_ARCHIVE_PLAN_STAT;
  102669. ///@brief CLIENT_GetArchivePlanStat接口出参
  102670. typedef struct tagNET_OUT_GET_ARCHIVE_PLAN_STAT
  102671. {
  102672. DWORD dwSize; // 结构体大小
  102673. UINT nMaxPlanNum; // 最大归档计划数
  102674. UINT nInUsePlanNum; // 使用中的归档计划数
  102675. UINT nRemovedPlanNum; // 已删除的归档计划数
  102676. }NET_OUT_GET_ARCHIVE_PLAN_STAT;
  102677. ///@brief 获取归档计划的统计信息
  102678. ///@param[in] lLoginID 登录句柄
  102679. ///@param[in] pstuInParam 接口输入参数
  102680. ///@param[out]pstuOutParam 接口输出参数
  102681. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102682. ///@return TRUE表示成功 FALSE表示失败
  102683. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetArchivePlanStat(LLONG lLoginID, const NET_IN_GET_ARCHIVE_PLAN_STAT* pstuInParam, NET_OUT_GET_ARCHIVE_PLAN_STAT* pstuOutParam, int nWaitTime);
  102684. ///@brief CLIENT_GetArchivePlanInfos接口入参
  102685. typedef struct tagNET_IN_GET_ARCHIVE_PLAN_INFOS
  102686. {
  102687. DWORD dwSize; // 结构体大小
  102688. UINT nQueryType; // 归档计划的查询类型。0-查询所有的归档计划;1-查询使用中的归档计划;2-查询已删除的归档计划。
  102689. }NET_IN_GET_ARCHIVE_PLAN_INFOS;
  102690. ///@brief 归档计划信息
  102691. typedef struct tagNET_ARCHIVE_PLAN_INFOS
  102692. {
  102693. char szChannelID[64]; // 通道ID
  102694. char szChannelName[64]; // 通道名称
  102695. DH_TSECT stuTimeSection[8][24]; // 备份时间段
  102696. char szRealRtspURL[256]; // 实时流RTSP地址
  102697. int nVideoStream; // 视频码流,0-未知,1-主码流,2-辅码流1,3-辅码流2
  102698. UINT nStatus; // 归档计划的状态。UINT_MAX - 未知;0-归档计划正常;1-归档计划异常;2-归档计划已删除。
  102699. NET_TIME stuLastArchivedTime; // 最近归档的时间
  102700. NET_TIME stuLastModifiedTime; // 最近添加或修改归档计划的时间
  102701. char szReserved[1024]; // 保留字节
  102702. }NET_ARCHIVE_PLAN_INFOS;
  102703. ///@brief CLIENT_GetArchivePlanInfos接口出参
  102704. typedef struct tagNET_OUT_GET_ARCHIVE_PLAN_INFOS
  102705. {
  102706. DWORD dwSize; // 结构体大小
  102707. int nMaxArchivePlanCount; // 归档计划信息最大值, 用户填写
  102708. NET_ARCHIVE_PLAN_INFOS* pstuArchivePlanInfo; // 归档计划信息列表, 用户分配内存
  102709. int nRetArchivePlanCount; // 实际返回归档计划个数
  102710. }NET_OUT_GET_ARCHIVE_PLAN_INFOS;
  102711. ///@brief 查询归档计划信息
  102712. ///@param[in] lLoginID 登录句柄
  102713. ///@param[in] pstuInParam 接口输入参数
  102714. ///@param[out]pstuOutParam 接口输出参数
  102715. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102716. ///@return TRUE表示成功 FALSE表示失败
  102717. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetArchivePlanInfos(LLONG lLoginID, const NET_IN_GET_ARCHIVE_PLAN_INFOS* pstuInParam, NET_OUT_GET_ARCHIVE_PLAN_INFOS* pstuOutParam, int nWaitTime);
  102718. ///@brief CLIENT_GetDeviceSubClass接口入参
  102719. typedef struct tagNET_IN_GET_DEVICE_SUB_CLASS
  102720. {
  102721. DWORD dwSize; // 结构体大小
  102722. }NET_IN_GET_DEVICE_SUB_CLASS;
  102723. ///@brief CLIENT_GetDeviceSubClass接口出参
  102724. typedef struct tagNET_OUT_GET_DEVICE_SUB_CLASS
  102725. {
  102726. DWORD dwSize; // 结构体大小
  102727. char szType[16]; // 设备子类型
  102728. }NET_OUT_GET_DEVICE_SUB_CLASS;
  102729. ///@brief 获取设备子类型
  102730. ///@param[in] lLoginID 登录句柄
  102731. ///@param[in] pstuInParam 接口输入参数
  102732. ///@param[out]pstuOutParam 接口输出参数
  102733. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102734. ///@return TRUE表示成功 FALSE表示失败
  102735. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDeviceSubClass(LLONG lLoginID, const NET_IN_GET_DEVICE_SUB_CLASS* pstuInParam, NET_OUT_GET_DEVICE_SUB_CLASS* pstuOutParam, int nWaitTime);
  102736. ///@brief CLIENT_StartRemoteBackupTask接口入参
  102737. typedef struct tagNET_IN_START_REMOTE_BACKUP_TASK
  102738. {
  102739. DWORD dwSize; // 结构体大小
  102740. char szDeviceIP[64]; // 备份设备IP
  102741. char szAPMac[64]; // 备份设备连接无线访问节点的mac地址
  102742. }NET_IN_START_REMOTE_BACKUP_TASK;
  102743. ///@brief CLIENT_StartRemoteBackupTask接口出参
  102744. typedef struct tagNET_OUT_START_REMOTE_BACKUP_TASK
  102745. {
  102746. DWORD dwSize; // 结构体大小
  102747. }NET_OUT_START_REMOTE_BACKUP_TASK;
  102748. ///@brief 开始回传任务
  102749. ///@param[in] lLoginID 登录句柄
  102750. ///@param[in] pstuInParam 接口输入参数
  102751. ///@param[out]pstuOutParam 接口输出参数
  102752. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102753. ///@return TRUE表示成功 FALSE表示失败
  102754. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartRemoteBackupTask(LLONG lLoginID, const NET_IN_START_REMOTE_BACKUP_TASK* pstuInParam, NET_OUT_START_REMOTE_BACKUP_TASK* pstuOutParam, int nWaitTime);
  102755. ///@brief CLIENT_GetThermoReceptorParam 入参
  102756. typedef struct tagNET_IN_GET_THERMO_RECEPTOR_PARAM_INFO
  102757. {
  102758. DWORD dwSize;
  102759. int nChannel; // 热成像通道
  102760. } NET_IN_GET_THERMO_RECEPTOR_PARAM_INFO;
  102761. ///@brief CLIENT_GetThermoReceptorParam 出参
  102762. typedef struct tagNET_OUT_GET_THERMO_RECEPTOR_PARAM_INFO
  102763. {
  102764. DWORD dwSize;
  102765. int nHourseTemp; // 腔体温度, 取值[-273,1000](精度0.01,实际值已扩大100倍,原值0.00)
  102766. int nTECTemp; // TEC温度, 取值[-273,1000](精度0.01,实际值已扩大100倍,原值0.00)
  102767. int nBoardTemp; // 电路板温度, 取值[-273,1000](精度0.01,实际值已扩大100倍,原值0.00)
  102768. } NET_OUT_GET_THERMO_RECEPTOR_PARAM_INFO;
  102769. ///@brief 获取机芯温度传感器参数
  102770. ///@param[in] lLoginID 登录句柄
  102771. ///@param[in] pstuInParam 接口输入参数
  102772. ///@param[out]pstuOutParam 接口输出参数
  102773. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102774. ///@return TRUE表示成功 FALSE表示失败
  102775. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetThermoReceptorParam(LLONG lLoginID, const NET_IN_GET_THERMO_RECEPTOR_PARAM_INFO* pstuInParam, NET_OUT_GET_THERMO_RECEPTOR_PARAM_INFO* pstuOutParam, int nWaitTime);
  102776. /////////////////////////////////////////// IVS智能事件查询相关业务 开始 (仅IVS产品使用)//////////////////////////////////////////
  102777. ///@brief CLIENT_IVSEventFind接口入参
  102778. typedef struct tagNET_IN_IVSEVENT_FIND_INFO
  102779. {
  102780. DWORD dwSize; // 此结构体大小,必须赋值
  102781. int nVaild; // 报警诊断类型
  102782. // 0:全部
  102783. // 1:未处理
  102784. // 2:正确
  102785. // 3:错误
  102786. // 4:重复正确报警
  102787. // 5:重复错误报警
  102788. NET_TIME stStartTime; // 查询开始时间
  102789. NET_TIME stEndTime; // 查询结束时间
  102790. int nChannelList[128]; // 通道号列表
  102791. DWORD dwChannelCnt; // nChannelList中有效通道号个数,填0表示查询所有通道号
  102792. DWORD dwEventCodeCnt; // dwEventCodeList中有效的事件类型个数
  102793. DWORD dwEventCodeList[128]; // 智能事件类型列表,参考 EVENT_IVS_ALL 这个宏下面的智能事件宏定义
  102794. // 注意,并非所有的事件都能查询,需要根据所用的IVS设备支持的情况,填写对应的智能事件类型
  102795. }NET_IN_IVSEVENT_FIND_INFO;
  102796. ///@brief CLIENT_IVSEventFind接口出参
  102797. typedef struct tagNET_OUT_IVSEVENT_FIND_INFO
  102798. {
  102799. DWORD dwSize; // 此结构体大小,必须赋值
  102800. DWORD dwCount; // 查询到结果总数
  102801. }NET_OUT_IVSEVENT_FIND_INFO;
  102802. ///@brief CLIENT_IVSEventNextFind接口入参
  102803. typedef struct tagNET_IN_IVSEVENT_NEXTFIND_INFO
  102804. {
  102805. DWORD dwSize; // 此结构体大小,必须赋值
  102806. unsigned int nStartIndex; // 查询起点偏移
  102807. unsigned int nLimit; // 单次查询返回数量
  102808. }NET_IN_IVSEVENT_NEXTFIND_INFO;
  102809. ///@brief 智能事件数据信息
  102810. typedef struct tagNET_IVSEVENT_EVENT_INFO
  102811. {
  102812. int nChannel; // 通道号 从0开始,-1表示通道号未知
  102813. DWORD nId; // 事件编号
  102814. DWORD dwEventCode; // 事件类型,值含义参考 EVENT_IVS_ALL 下面的智能事件类型宏定义
  102815. int nVaild; // 报警诊断类型
  102816. // 0:未知
  102817. // 1:未处理
  102818. // 2:正确
  102819. // 3:错误
  102820. // 4:重复正确报警
  102821. // 5:重复错误报警
  102822. NET_TIME_EX stuTime; // 事件发生的时间
  102823. char szChannel[32]; // 通道号,字符串形式
  102824. BYTE byReserved[988]; // 保留字节
  102825. }NET_IVSEVENT_EVENT_INFO;
  102826. ///@brief CLIENT_IVSEventNextFind接口出参
  102827. typedef struct tagNET_OUT_IVSEVENT_NEXTFIND_INFO
  102828. {
  102829. DWORD dwSize; // 此结构体大小,必须赋值
  102830. DWORD dwEventCnt; // pstuEventInfo的个数, 等于 NET_IN_IVSEVENT_NEXTFIND_INFO 的nLimit字段
  102831. NET_IVSEVENT_EVENT_INFO* pstuEventInfo; // 事件信息数组,用户分配内存,大小为sizeof(NET_IVSEVENT_EVENT_INFO)*dwEventCnt
  102832. DWORD dwRetEventCnt; // 返回的pstuEventInfo个数
  102833. }NET_OUT_IVSEVENT_NEXTFIND_INFO;
  102834. ///@brief 智能事件开始查询
  102835. ///@param[in] lLoginID 登录句柄
  102836. ///@param[in] pstInParam 接口输入参数
  102837. ///@param[out] pstOutParam 接口输出参数
  102838. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102839. ///@return 查询句柄 非0表示成功,0表示失败
  102840. CLIENT_NET_API LLONG CALL_METHOD CLIENT_IVSEventFind(LLONG lLoginID,const NET_IN_IVSEVENT_FIND_INFO* pstInParam, NET_OUT_IVSEVENT_FIND_INFO* pstOutParam, int nWaitTime);
  102841. ///@brief 智能事件信息查询
  102842. ///@param[in] lFindHandle 查询句柄
  102843. ///@param[in] pstInParam 接口输入参数
  102844. ///@param[out] pstOutParam 接口输出参数
  102845. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102846. ///@return TRUE表示成功 FALSE表示失败
  102847. CLIENT_NET_API BOOL CALL_METHOD CLIENT_IVSEventNextFind(LLONG lFindHandle, const NET_IN_IVSEVENT_NEXTFIND_INFO* pstInParam, NET_OUT_IVSEVENT_NEXTFIND_INFO* pstOutParam, int nWaitTime);
  102848. ///@brief 智能事件结束查询
  102849. ///@param[in] lFindHandle 查询句柄
  102850. ///@return TRUE表示成功 FALSE表示失败
  102851. CLIENT_NET_API BOOL CALL_METHOD CLIENT_IVSEventFindClose(LLONG lFindHandle);
  102852. ///////////////////////////////////////////IVS智能事件查询相关业务 结束//////////////////////////////////////////
  102853. ///@brief 订阅的设备密码找回验证码信息
  102854. typedef struct tagNET_NOTIFY_PWD_RESET_STATE_INFO
  102855. {
  102856. char szVerifyCode[256]; // 验证码
  102857. char szResvered[1024]; // 保留字节
  102858. }NET_NOTIFY_PWD_RESET_STATE_INFO;
  102859. ///@brief 订阅设备密码找回状态回调函数原型, lPwdResetStateHandle 为 CLIENT_AttachPwdResetState 接口的返回值
  102860. ///@param[out] lPwdResetStateHandle 订阅句柄
  102861. ///@param[out] pstuPwdResetStateNotifyInfo 订阅的设备密码找回验证码信息
  102862. ///@param[out] dwUser 用户信息
  102863. ///@return void
  102864. typedef void (CALLBACK *fNotifyPwdResetState)(LLONG lPwdResetStateHandle, NET_NOTIFY_PWD_RESET_STATE_INFO* pstuPwdResetStateNotifyInfo, LDWORD dwUser);
  102865. ///@brief CLIENT_AttachPwdResetState 接口入参
  102866. typedef struct tagNET_IN_ATTACH_PWD_RESET_STATE_INFO
  102867. {
  102868. DWORD dwSize; // 此结构体大小,必须赋值
  102869. fNotifyPwdResetState cbfNotifyPwdResetState; // 回调函数,通知EAS设备相位配置信息
  102870. LDWORD dwUser; // 用户自定义参数
  102871. }NET_IN_ATTACH_PWD_RESET_STATE_INFO;
  102872. ///@brief CLIENT_AttachPwdResetState 接口出参
  102873. typedef struct tagNET_OUT_ATTACH_PWD_RESET_STATE_INFO
  102874. {
  102875. DWORD dwSize; // 此结构体大小,必须赋值
  102876. }NET_OUT_ATTACH_PWD_RESET_STATE_INFO;
  102877. ///@brief 订阅设备密码找回状态
  102878. ///@param[in] lLoginID 登录句柄
  102879. ///@param[in] pstInParam 接口输入参数
  102880. ///@param[out] pstOutParam 接口输出参数
  102881. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102882. ///@return 返回订阅句柄
  102883. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachPwdResetState(LLONG lLoginID, NET_IN_ATTACH_PWD_RESET_STATE_INFO* pstInParam, NET_OUT_ATTACH_PWD_RESET_STATE_INFO* pstOutParam, int nWaitTime);
  102884. ///@brief 退订设备密码找回状态
  102885. ///@param[in] lPwdResetStateHandle 订阅句柄
  102886. ///@return TRUE表示成功 FALSE表示失败
  102887. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachPwdResetState(LLONG lPwdResetStateHandle);
  102888. ///@brief CLIENT_SendPwdResetRequest 接口入参
  102889. typedef struct tagNET_IN_SEND_PWD_RESET_REQ_INFO
  102890. {
  102891. DWORD dwSize; // 此结构体大小,必须赋值
  102892. char szVerifyCode[256]; // 验证码
  102893. }NET_IN_SEND_PWD_RESET_REQ_INFO;
  102894. ///@brief CLIENT_SendPwdResetRequest 接口出参
  102895. typedef struct tagNET_OUT_SEND_PWD_RESET_REQ_INFO
  102896. {
  102897. DWORD dwSize; // 此结构体大小,必须赋值
  102898. }NET_OUT_SEND_PWD_RESET_REQ_INFO;
  102899. ///@brief 密码找回请求
  102900. ///@param[in] lLoginID 登录句柄
  102901. ///@param[in] pstuInParam 接口入参
  102902. ///@param[out] pstuOutParam 接口出参
  102903. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102904. ///@return TRUE表示成功 FALSE表示失败
  102905. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SendPwdResetRequest(LLONG lLoginID, NET_IN_SEND_PWD_RESET_REQ_INFO* pstuInParam, NET_OUT_SEND_PWD_RESET_REQ_INFO* pstuOutParam, int nWaitTime);
  102906. ///@brief 校验码验证结果
  102907. typedef enum tagEM_SEND_PWD_RESET_STATE
  102908. {
  102909. EM_SEND_PWD_RESET_STATE_UNKNOWN, // 未知
  102910. EM_SEND_PWD_RESET_STATE_SUCCESS, // 验证成功
  102911. EM_SEND_PWD_RESET_STATE_FAILED, // 验证失败
  102912. EM_SEND_PWD_RESET_STATE_OVERTIME, // 验证码超时失效
  102913. }EM_SEND_PWD_RESET_STATE;
  102914. ///@brief CLIENT_SendCodeCheckResult 接口入参
  102915. typedef struct tagNET_IN_SEND_CODE_CHECK_RESULT_INFO
  102916. {
  102917. DWORD dwSize; // 此结构体大小,必须赋值
  102918. EM_SEND_PWD_RESET_STATE emPwdResetState; // 校验码验证结果
  102919. char szVerifyCode[256]; // 验证码
  102920. }NET_IN_SEND_CODE_CHECK_RESULT_INFO;
  102921. ///@brief CLIENT_SendCodeCheckResult 接口出参
  102922. typedef struct tagNET_OUT_SEND_CODE_CHECK_RESULT_INFO
  102923. {
  102924. DWORD dwSize; // 此结构体大小,必须赋值
  102925. }NET_OUT_SEND_CODE_CHECK_RESULT_INFO;
  102926. ///@brief 向设备发送校验码验证结果
  102927. ///@param[in] lLoginID 登录句柄
  102928. ///@param[in] pstuInParam 接口入参
  102929. ///@param[out] pstuOutParam 接口出参
  102930. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102931. ///@return TRUE表示成功 FALSE表示失败
  102932. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SendCodeCheckResult(LLONG lLoginID, NET_IN_SEND_CODE_CHECK_RESULT_INFO* pstuInParam, NET_OUT_SEND_CODE_CHECK_RESULT_INFO* pstuOutParam, int nWaitTime);
  102933. ///@brief CLIENT_GetCodeCheckResult 接口入参
  102934. typedef struct tagNET_IN_GET_CODE_CHECK_RESULT_INFO
  102935. {
  102936. DWORD dwSize; // 此结构体大小,必须赋值
  102937. }NET_IN_GET_CODE_CHECK_RESULT_INFO;
  102938. ///@brief 校验码验证结果
  102939. typedef enum tagEM_PWD_RESET_STATE
  102940. {
  102941. EM_PWD_RESET_STATE_UNKNOWN=-1, // 未知
  102942. EM_PWD_RESET_STATE_NO_RESULT, // 尚未获取到平台验证结果
  102943. EM_PWD_RESET_STATE_SUCCESS, // 验证成功
  102944. EM_PWD_RESET_STATE_FAILED, // 验证失败
  102945. EM_PWD_RESET_STATE_OVERTIME, // 验证码超时失效
  102946. }EM_PWD_RESET_STATE;
  102947. ///@brief CLIENT_GetCodeCheckResult 接口出参
  102948. typedef struct tagNET_OUT_GET_CODE_CHECK_RESULT_INFO
  102949. {
  102950. DWORD dwSize; // 此结构体大小,必须赋值
  102951. EM_PWD_RESET_STATE emPwdResetState; // 校验码验证结果
  102952. }NET_OUT_GET_CODE_CHECK_RESULT_INFO;
  102953. ///@brief 获取验证码校验结果
  102954. ///@param[in] lLoginID 登录句柄
  102955. ///@param[in] pstuInParam 接口入参
  102956. ///@param[out] pstuOutParam 接口出参
  102957. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  102958. ///@return TRUE表示成功 FALSE表示失败
  102959. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetCodeCheckResult(LLONG lLoginID, NET_IN_GET_CODE_CHECK_RESULT_INFO* pstuInParam, NET_OUT_GET_CODE_CHECK_RESULT_INFO* pstuOutParam, int nWaitTime);
  102960. ///@brief 遥测数据信息
  102961. typedef struct tagDEV_SCADA_DATA_INFO
  102962. {
  102963. char szID[32]; // 点位ID
  102964. NET_TIME_EX stuTime; // 遥测数据采集时间,utc
  102965. int nStatus; // 点位状态,0:无告警,1:一级告警, -1为未收到报警状态
  102966. char szType[8]; // 点位类型,YC:遥测
  102967. char szUnit[8]; // 遥测数据单位,如m/s,℃
  102968. float fSetupVal; // 遥调值
  102969. float fMeasuredVal; // 点位遥测值
  102970. char szAddress[16]; // 电力104点号,当启用电力104协议时存在
  102971. char szResvered[256]; // 保留字节
  102972. }DEV_SCADA_DATA_INFO;
  102973. ///@brief 订阅的遥测数据
  102974. typedef struct tagNET_NOTIFY_SCADA_DATA_INFO
  102975. {
  102976. char szDeviceId[256]; // 探测器设备ID
  102977. int nDataInfoNum; // 遥测数据信息数组有效个数
  102978. DEV_SCADA_DATA_INFO stuDataInfo[128]; // 遥测数据信息
  102979. char szResvered[1024]; // 保留字节
  102980. }NET_NOTIFY_SCADA_DATA_INFO;
  102981. ///@brief 动环遥测数据订阅回调函数原型, lSCADADataHandle 为 CLIENT_AttachSCADAData 接口的返回值
  102982. ///@param[out] lSCADADataHandle 订阅句柄
  102983. ///@param[out] pstuSCADADataNotifyInfo 订阅的遥测数据
  102984. ///@param[out] dwUser 用户信息
  102985. ///@return void
  102986. typedef void (CALLBACK *fNotifySCADAData)(LLONG lSCADADataHandle, NET_NOTIFY_SCADA_DATA_INFO* pstuSCADADataNotifyInfo, LDWORD dwUser);
  102987. ///@brief CLIENT_AttachSCADAData 接口入参
  102988. typedef struct tagNET_IN_ATTACH_SCADA_DATA_INFO
  102989. {
  102990. DWORD dwSize; // 此结构体大小,必须赋值
  102991. fNotifySCADAData cbfNotifySCADAData; // 回调函数, 设备传回的遥测数据
  102992. LDWORD dwUser; // 用户自定义参数
  102993. }NET_IN_ATTACH_SCADA_DATA_INFO;
  102994. ///@brief CLIENT_AttachSCADAData 接口出参
  102995. typedef struct tagNET_OUT_ATTACH_SCADA_DATA_INFO
  102996. {
  102997. DWORD dwSize; // 此结构体大小,必须赋值
  102998. }NET_OUT_ATTACH_SCADA_DATA_INFO;
  102999. ///@brief 动环遥测数据订阅
  103000. ///@param[in] lLoginID 登录句柄
  103001. ///@param[in] pstInParam 接口输入参数
  103002. ///@param[out] pstOutParam 接口输出参数
  103003. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103004. ///@return 返回订阅句柄
  103005. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachSCADAData(LLONG lLoginID, NET_IN_ATTACH_SCADA_DATA_INFO* pstInParam, NET_OUT_ATTACH_SCADA_DATA_INFO* pstOutParam, int nWaitTime);
  103006. ///@brief 动环遥测数据退订
  103007. ///@param[in] lSCADADataHandle 订阅句柄
  103008. ///@return TRUE表示成功 FALSE表示失败
  103009. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachSCADAData(LLONG lSCADADataHandle);
  103010. ///@brief CLIENT_GetGpsStatus 接口入参
  103011. typedef struct tagNET_IN_GET_GPS_STATUS_INFO
  103012. {
  103013. DWORD dwSize; // 此结构体大小,必须赋值
  103014. }NET_IN_GET_GPS_STATUS_INFO;
  103015. ///@brief CLIENT_GetGpsStatus 接口出参
  103016. typedef struct tagNET_OUT_GET_GPS_STATUS_INFO
  103017. {
  103018. DWORD dwSize; // 此结构体大小,必须赋值
  103019. NET_GPS_STATUS_INFO stuGPSStatus; // GPS状态
  103020. }NET_OUT_GET_GPS_STATUS_INFO;
  103021. ///@brief 获取GPS定位信息
  103022. ///@param[in] lLoginID 登录句柄
  103023. ///@param[in] pstuInParam 接口入参
  103024. ///@param[out] pstuOutParam 接口出参
  103025. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103026. ///@return TRUE表示成功 FALSE表示失败
  103027. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetGpsStatus(LLONG lLoginID, NET_IN_GET_GPS_STATUS_INFO* pstuInParam, NET_OUT_GET_GPS_STATUS_INFO* pstuOutParam, int nWaitTime);
  103028. ///@brief CLIENT_GetPTZDueNorthDirectionAngle 接口入参
  103029. typedef struct tagNET_IN_GET_PTZ_NORTH_ANGLE_INFO
  103030. {
  103031. DWORD dwSize; // 此结构体大小,必须赋值
  103032. int nChannel; // 通道号
  103033. }NET_IN_GET_PTZ_NORTH_ANGLE_INFO;
  103034. ///@brief CLIENT_GetPTZDueNorthDirectionAngle 接口出参
  103035. typedef struct tagNET_OUT_GET_PTZ_NORTH_ANGLE_INFO
  103036. {
  103037. DWORD dwSize; // 此结构体大小,必须赋值
  103038. char szReserved[4]; // 字节对齐
  103039. double dbAngle; // 镜头指向角度,范围0~360
  103040. }NET_OUT_GET_PTZ_NORTH_ANGLE_INFO;
  103041. ///@brief 获取设备镜头与地理方位正北方向的夹角
  103042. ///@param[in] lLoginID 登录句柄
  103043. ///@param[in] pstuInParam 接口入参
  103044. ///@param[out] pstuOutParam 接口出参
  103045. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103046. ///@return TRUE表示成功 FALSE表示失败
  103047. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetPTZDueNorthDirectionAngle(LLONG lLoginID, NET_IN_GET_PTZ_NORTH_ANGLE_INFO* pstuInParam, NET_OUT_GET_PTZ_NORTH_ANGLE_INFO* pstuOutParam, int nWaitTime);
  103048. ///@brief CLIENT_CalcWorkTime 接口入参
  103049. typedef struct tagNET_IN_CALC_WORK_TIME
  103050. {
  103051. DWORD dwSize; // 此结构体大小,必须赋值
  103052. int nType; // 返回的操作结果类型, 0: 返回查询剩余加班额度结果, 1: 返回申请加班时长结果
  103053. char szUserID[32]; // 用户编号
  103054. char szUserName[128]; // 用户姓名
  103055. float fRemainingOvertimeLimit; // 剩余加班额度
  103056. BOOL bResult; // 返回成功或失败,Type为1时必选项
  103057. }NET_IN_CALC_WORK_TIME;
  103058. ///@brief CLIENT_CalcWorkTime 接口出参
  103059. typedef struct tagNET_OUT_CALC_WORK_TIME
  103060. {
  103061. DWORD dwSize; // 此结构体大小,必须赋值
  103062. }NET_OUT_CALC_WORK_TIME;
  103063. ///@brief 核算加班信息
  103064. ///@param[in] lLoginID 登录句柄
  103065. ///@param[in] pstuInParam 接口入参
  103066. ///@param[out] pstuOutParam 接口出参
  103067. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103068. ///@return TRUE表示成功 FALSE表示失败
  103069. CLIENT_NET_API BOOL CALL_METHOD CLIENT_CalcWorkTime(LLONG lLoginID, NET_IN_CALC_WORK_TIME* pstuInParam, NET_OUT_CALC_WORK_TIME* pstuOutParam, int nWaitTime);
  103070. ///@brief CLIENT_GetTrafficFlowStatCaps 接口入参
  103071. typedef struct tagNET_IN_GET_TRAFFIC_FLOW_STAT_CAPS
  103072. {
  103073. DWORD dwSize; // 此结构体大小,必须赋值
  103074. }NET_IN_GET_TRAFFIC_FLOW_STAT_CAPS;
  103075. ///@brief CLIENT_GetTrafficFlowStatCaps 接口出参
  103076. typedef struct tagNET_OUT_GET_TRAFFIC_FLOW_STAT_CAPS
  103077. {
  103078. DWORD dwSize; // 此结构体大小,必须赋值
  103079. int nSupportRealFlowStatCaps; // 表示支持实时车流量功能的方式, 0:未知, 1:使用事件形式发送, 2:使用接口回调的形式发送
  103080. }NET_OUT_GET_TRAFFIC_FLOW_STAT_CAPS;
  103081. ///@brief 获取流量统计能力集
  103082. ///@param[in] lLoginID 登录句柄
  103083. ///@param[in] pstuInParam 接口入参
  103084. ///@param[out] pstuOutParam 接口出参
  103085. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103086. ///@return TRUE表示成功 FALSE表示失败
  103087. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetTrafficFlowStatCaps(LLONG lLoginID, NET_IN_GET_TRAFFIC_FLOW_STAT_CAPS* pstuInParam, NET_OUT_GET_TRAFFIC_FLOW_STAT_CAPS* pstuOutParam, int nWaitTime);
  103088. ///@brief CLIENT_GetEncodeBitrate 接口入参
  103089. typedef struct tagNET_IN_GET_ENCODE_BITRATE
  103090. {
  103091. DWORD dwSize; // 此结构体大小,必须赋值
  103092. int nChannelCount; // 通道号个数
  103093. int nChannels[1024]; // 要查询的通道号
  103094. }NET_IN_GET_ENCODE_BITRATE;
  103095. ///@brief CLIENT_GetEncodeBitrate 接口出参
  103096. typedef struct tagNET_OUT_GET_ENCODE_BITRATE
  103097. {
  103098. DWORD dwSize; // 此结构体大小,必须赋值
  103099. int nRetBitrateCount; // 实际返回的个数
  103100. int nBitrareCount[1024]; // 对应通道的码率大小
  103101. }NET_OUT_GET_ENCODE_BITRATE;
  103102. ///@brief 获取码流值
  103103. ///@param[in] lLoginID 登录句柄
  103104. ///@param[in] pstuInParam 接口入参
  103105. ///@param[out] pstuOutParam 接口出参
  103106. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103107. ///@return TRUE表示成功 FALSE表示失败
  103108. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetEncodeBitrate(LLONG lLoginID, NET_IN_GET_ENCODE_BITRATE* pstuInParam, NET_OUT_GET_ENCODE_BITRATE* pstuOutParam, int nWaitTime);
  103109. ////////////////////////////////////////
  103110. ///@brief 多门控制校验结果
  103111. typedef struct tagNET_CENTRAL_CHECK_RESP_INFO
  103112. {
  103113. UINT nAction; // 0:反潜检查 1:多门互锁检查
  103114. int nDoorChannel; // 门通道, nAction为多门互锁有效
  103115. char szTransID[36]; // 事务ID,由请求源端产生唯一ID
  103116. char szUserID[32]; // 人员编号ID, 对应nAction为反潜才有效
  103117. char szReaderID[32]; // 门读卡器ID, 对应nAction为反潜才有效
  103118. char szResvered[1024]; // 保留字节
  103119. }NET_CENTRAL_CHECK_RESP_INFO;
  103120. ///@brief 注册集中式多门控制校验函数订阅回调数据
  103121. typedef struct tagNET_NOTIFY_MULTI_DOOR_CTRL_CHECK_INFO
  103122. {
  103123. NET_CENTRAL_CHECK_RESP_INFO stuReq; // 多门控制校验结果
  103124. char szResvered[1024]; // 保留字节
  103125. }NET_NOTIFY_MULTI_DOOR_CTRL_CHECK_INFO;
  103126. ///@brief 注册集中式多门控制校验函数订阅回调函数原型, lCheckCentraMultiDoorCtrlHandle 为 CLIENT_AttachCheckCentraMultiDoorCtrl 接口的返回值
  103127. ///@param[out] lCheckCentraMultiDoorCtrlHandle 订阅句柄
  103128. ///@param[out] pstuMultiDoorCtrlCheckNotifyInfo 多门控制校验结果
  103129. ///@param[out] dwUser 用户信息
  103130. ///@return void
  103131. typedef void (CALLBACK *fNotifyCentraMultiDoorCtrlCheck)(LLONG lCheckCentraMultiDoorCtrlHandle, NET_NOTIFY_MULTI_DOOR_CTRL_CHECK_INFO* pstuMultiDoorCtrlCheckNotifyInfo, LDWORD dwUser);
  103132. ///@brief CLIENT_AttachCheckCentraMultiDoorCtrl 接口入参
  103133. typedef struct tagNET_IN_ATTACH_CHECK_CENTRA_MULTI_DOOR_CTRL_INFO
  103134. {
  103135. DWORD dwSize; // 此结构体大小,必须赋值
  103136. fNotifyCentraMultiDoorCtrlCheck cbfNotifyCentraMultiDoorCtrlCheck; // 回调函数, 多门控制校验结果
  103137. UINT nAction; // 需要设置回调函数的过滤器, 0:反潜检查 , 1:多门互锁检查
  103138. LDWORD dwUser; // 用户自定义参数
  103139. }NET_IN_ATTACH_CHECK_CENTRA_MULTI_DOOR_CTRL_INFO;
  103140. ///@brief CLIENT_AttachCheckCentraMultiDoorCtrl 接口出参
  103141. typedef struct tagNET_OUT_ATTACH_CHECK_CENTRA_MULTI_DOOR_CTRL_INFO
  103142. {
  103143. DWORD dwSize; // 此结构体大小,必须赋值
  103144. }NET_OUT_ATTACH_CHECK_CENTRA_MULTI_DOOR_CTRL_INFO;
  103145. ///@brief 注册集中式多门控制校验函数订阅
  103146. ///@param[in] lLoginID 登录句柄
  103147. ///@param[in] pstInParam 接口输入参数
  103148. ///@param[out] pstOutParam 接口输出参数
  103149. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103150. ///@return 返回订阅句柄
  103151. CLIENT_NET_API LLONG CALL_METHOD CLIENT_AttachCheckCentraMultiDoorCtrl(LLONG lLoginID, NET_IN_ATTACH_CHECK_CENTRA_MULTI_DOOR_CTRL_INFO* pstInParam, NET_OUT_ATTACH_CHECK_CENTRA_MULTI_DOOR_CTRL_INFO* pstOutParam, int nWaitTime);
  103152. ///@brief 注册集中式多门控制校验函数退订
  103153. ///@param[in] lCheckCentraMultiDoorCtrlHandle 订阅句柄
  103154. ///@return TRUE表示成功 FALSE表示失败
  103155. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DetachCheckCentraMultiDoorCtrl(LLONG lCheckCentraMultiDoorCtrlHandle);
  103156. ///@brief CLIENT_SetCheckResultByCentra 接口入参
  103157. typedef struct tagNET_IN_CENTRA_CHECK_RESULT_INFO
  103158. {
  103159. DWORD dwSize; // 此结构体大小,必须赋值
  103160. UINT nAction; // 0:反潜检查 1:多门互锁检查
  103161. char szTransID[36]; // 事务ID
  103162. UINT nAntiSumarineResult; // 反潜触发结果 0:没有触发防反潜 1:触发防反潜,对应Action为反潜有效
  103163. UINT nInterLockResult; // 互锁检查结果 0:没有构成互锁 1:构成互锁,对应Action为互锁有效
  103164. }NET_IN_CENTRA_CHECK_RESULT_INFO;
  103165. ///@brief CLIENT_SetCheckResultByCentra 接口出参
  103166. typedef struct tagNET_OUT_CENTRA_CHECK_RESULT_INFO
  103167. {
  103168. DWORD dwSize; // 此结构体大小,必须赋值
  103169. UINT nErrorCode; // 返回错误码 0:处理成功;1:处理失败(通用错误码,尽量在后追加更具体错误码,方便客户端提示);2:该事务处理超时
  103170. }NET_OUT_CENTRA_CHECK_RESULT_INFO;
  103171. ///@brief 中心设置校验结果给下级设备
  103172. ///@param[in] lLoginID 登录句柄
  103173. ///@param[in] pstuInParam 接口入参
  103174. ///@param[out] pstuOutParam 接口出参
  103175. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103176. ///@return TRUE表示成功 FALSE表示失败
  103177. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetCheckResultByCentra(LLONG lLoginID, NET_IN_CENTRA_CHECK_RESULT_INFO* pstuInParam, NET_OUT_CENTRA_CHECK_RESULT_INFO* pstuOutParam, int nWaitTime);
  103178. ///@brief CLIENT_SetAntiSubmarineRuleCfg 接口入参
  103179. typedef struct tagNET_IN_ANTI_SUBMARINE_RULE_CFG_INFO
  103180. {
  103181. DWORD dwSize; // 此结构体大小,必须赋值
  103182. int nForceReaderIDsNum; // 强执行的读头ID数组第一维长度
  103183. int nWeakReaderIDsNum; // 弱执行的读头ID数组第一维长度
  103184. char szReserved[4]; // 字节对齐
  103185. char szForceReaderIDs[32][16]; // 强执行的读头ID
  103186. char szWeakReaderIDs[32][16]; // 弱执行的读头ID
  103187. }NET_IN_ANTI_SUBMARINE_RULE_CFG_INFO;
  103188. ///@brief CLIENT_SetAntiSubmarineRuleCfg 接口出参
  103189. typedef struct tagNET_OUT_ANTI_SUBMARINE_RULE_CFG_INFO
  103190. {
  103191. DWORD dwSize; // 此结构体大小,必须赋值
  103192. }NET_OUT_ANTI_SUBMARINE_RULE_CFG_INFO;
  103193. ///@brief 中心设置反潜规则配置给下级设备
  103194. ///@param[in] lLoginID 登录句柄
  103195. ///@param[in] pstuInParam 接口入参
  103196. ///@param[out] pstuOutParam 接口出参
  103197. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103198. ///@return TRUE表示成功 FALSE表示失败
  103199. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetAntiSubmarineRuleCfg(LLONG lLoginID, NET_IN_ANTI_SUBMARINE_RULE_CFG_INFO* pstuInParam, NET_OUT_ANTI_SUBMARINE_RULE_CFG_INFO* pstuOutParam, int nWaitTime);
  103200. ///@brief CLIENT_SetInterLockRule 接口入参
  103201. typedef struct tagNET_IN_INTER_LOCK_RULE_INFO
  103202. {
  103203. DWORD dwSize; // 此结构体大小,必须赋值
  103204. int nForceDoorChannelsNum; // 强执行的门通道ID数组长度
  103205. int nWeakDoorChannelsNum; // 弱执行的门通道ID数组长度
  103206. UINT szForceDoorChannels[32]; // 强执行的门通道ID
  103207. UINT szWeakDoorChannels[32]; // 弱执行的门通道ID
  103208. }NET_IN_INTER_LOCK_RULE_INFO;
  103209. ///@brief CLIENT_SetInterLockRule 接口出参
  103210. typedef struct tagNET_OUT_INTER_LOCK_RULE_INFO
  103211. {
  103212. DWORD dwSize; // 此结构体大小,必须赋值
  103213. }NET_OUT_INTER_LOCK_RULE_INFO;
  103214. ///@brief 给主控的下级设备设置互锁规则配置
  103215. ///@param[in] lLoginID 登录句柄
  103216. ///@param[in] pstuInParam 接口入参
  103217. ///@param[out] pstuOutParam 接口出参
  103218. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103219. ///@return TRUE表示成功 FALSE表示失败
  103220. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetInterLockRule(LLONG lLoginID, NET_IN_INTER_LOCK_RULE_INFO* pstuInParam, NET_OUT_INTER_LOCK_RULE_INFO* pstuOutParam, int nWaitTime);
  103221. ////////////////////////////////////////
  103222. ///@brief 各个小区信息
  103223. typedef struct tagNET_COMMUNITY_INFO
  103224. {
  103225. char szCommunityId[64]; // 小区ID
  103226. char szCommunityAddr[64]; // 小区地址
  103227. char szCommunityName[64]; // 小区名称
  103228. char szReserved[256]; // 预留字段
  103229. }NET_COMMUNITY_INFO;
  103230. ///@brief 通道信息,数组下标对应通道
  103231. typedef struct tagNET_CHANNEL_LIST_INFO
  103232. {
  103233. char szChannelCode[64]; // 通道编码
  103234. char szChannelName[64]; // 通道名称
  103235. char szReserved[256]; // 预留字段
  103236. }NET_CHANNEL_LIST_INFO;
  103237. ///@brief CLIENT_SetCommunityInfo 接口入参
  103238. typedef struct tagNET_IN_SET_COMMUNITY_INFO
  103239. {
  103240. DWORD dwSize; // 此结构体大小,必须赋值
  103241. int nCommunityInfoNum; // 各个小区信息数组长度
  103242. int nChannelListNum; // 通道信息数组长度
  103243. char szReserved[4]; // 字节对齐
  103244. NET_COMMUNITY_INFO stuCommunityInfo[128]; // 各个小区信息
  103245. NET_CHANNEL_LIST_INFO stuChannelList[128]; // 通道信息
  103246. }NET_IN_SET_COMMUNITY_INFO;
  103247. ///@brief CLIENT_SetCommunityInfo 接口出参
  103248. typedef struct tagNET_OUT_SET_COMMUNITY_INFO
  103249. {
  103250. DWORD dwSize; // 此结构体大小,必须赋值
  103251. }NET_OUT_SET_COMMUNITY_INFO;
  103252. ///@brief 设置小区信息
  103253. ///@param[in] lLoginID 登录句柄
  103254. ///@param[in] pstuInParam 接口入参
  103255. ///@param[out] pstuOutParam 接口出参
  103256. ///@param[in] nWaitTime 接口超时时间, 单位毫秒
  103257. ///@return TRUE表示成功 FALSE表示失败
  103258. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetCommunityInfo(LLONG lLoginID, NET_IN_SET_COMMUNITY_INFO* pstuInParam, NET_OUT_SET_COMMUNITY_INFO* pstuOutParam, int nWaitTime);
  103259. /////////////////////////////淘汰接口 Start/////////////////////////////////
  103260. ///@brief web信息上传接口:该接口淘汰,请使用 CLIENT_TransmitInfoForWebEx
  103261. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TransmitInfoForWeb(LLONG lLoginID, char* szInBuffer, DWORD dwInBufferSize, char* szOutBuffer, DWORD dwOutBufferSize, void* pExtData, int waittime=500);
  103262. ///@brief 查询系统服务器配置;该接口已淘汰,请使用CLIENT_GetDevConfig
  103263. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryConfig(LLONG lLoginID, int nConfigType, char *pConfigbuf, int maxlen, int *nConfigbuflen, int waittime=1000);
  103264. ///@brief 设置系统服务器配置;该接口已淘汰,请使用CLIENT_SetDevConfig
  103265. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetupConfig(LLONG lLoginID, int nConfigType, char *pConfigbuf, int nConfigbuflen, int waittime=1000);
  103266. ///@brief 该接口已淘汰,请不要使用
  103267. CLIENT_NET_API BOOL CALL_METHOD CLIENT_Reset(LLONG lLoginID, BOOL bReset);
  103268. ///@brief 查询串口协议 - 该接口已淘汰,请使用CLIENT_GetDevConfig
  103269. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryComProtocol(LLONG lLoginID, int nProtocolType, char *pProtocolBuffer, int maxlen, int *nProtocollen, int waittime=1000);
  103270. ///@brief 开始对讲;该接口已淘汰,请使用CLIENT_StartTalkEx
  103271. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StartTalk(LLONG lRealHandle, BOOL bCustomSend=false);
  103272. ///@brief 结束对讲;该接口已淘汰,请使用CLIENT_StopTalkEx
  103273. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopTalk(LLONG lRealHandle);
  103274. ///@brief 发送自定义对讲数据;该接口已淘汰,请使用CLIENT_TalkSendData
  103275. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SendTalkData_Custom(LLONG lRealHandle, char *pBuffer, DWORD dwBufSize);
  103276. ///@brief 设置实时预览缓冲大小
  103277. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetPlayerBufNumber(LLONG lRealHandle, DWORD dwBufNum);
  103278. ///@brief 通过时间下载文件
  103279. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetFileByTime(LLONG lLoginID, int nChannelID, LPNET_TIME lpStartTime, LPNET_TIME lpStopTime, char *sSavedFileName);
  103280. ///@brief 网络回放控制
  103281. CLIENT_NET_API BOOL CALL_METHOD CLIENT_PlayBackControl(LLONG lPlayHandle, DWORD dwControlCode, DWORD dwInValue, DWORD *lpOutValue);
  103282. ///@brief 查询设备工作状态 该接口已淘汰,请使用CLIENT_QueryDevState
  103283. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetDEVWorkState(LLONG lLoginID, LPNET_DEV_WORKSTATE lpWorkState, int waittime=1000);
  103284. ///@brief 异步查询设备日志
  103285. CLIENT_NET_API BOOL CALL_METHOD CLIENT_QueryLogCallback(LLONG lLoginID, fLogDataCallBack cbLogData, LDWORD dwUser);
  103286. ///@brief 录像开启和关闭,pstRecIn与pstRecOut内存由用户申请释放
  103287. CLIENT_NET_API BOOL CALL_METHOD CLIENT_RecMngCtrlMpt300(LLONG lLoginID, const NET_IN_REC_MNG_CTRL_MPT300 *pstRecIn, NET_OUT_REC_MNG_CTRL_MPT300 *pstRecOut, int nWaitTime);
  103288. ///@brief 同步直接透传接口,pstInTransmit与pstOutTransmit内存由用户申请释放
  103289. CLIENT_NET_API BOOL CALL_METHOD CLIENT_TransmitInfoDirectly(LLONG lLoginID, const NET_IN_TRANSMIT_DIRECTLY *pstInTransmit, NET_OUT_TRANSMIT_DIRECTLY *pstOutTransmit, int nWaittime = 1000);
  103290. ///@brief 异步直接透传回调函数原型
  103291. typedef void (CALLBACK *fTransmitInfoDirectlyCallBack)(LLONG lLoginID, LLONG lStartHandle, const char *pszOutBuf, DWORD dwBufLen, LDWORD dwUser);
  103292. ///@brief 异步直接透传接口,pstInTransmit与pstOutTransmit内存由用户申请释放
  103293. CLIENT_NET_API LLONG CALL_METHOD CLIENT_StartTransmitInfoDirectly(LLONG lLoginID, const NET_IN_TRANSMIT_DIRECTLY *pstInTransmit, NET_OUT_TRANSMIT_DIRECTLY *pstOutTransmit, fTransmitInfoDirectlyCallBack cbDirectly, LDWORD dwUser, int nWaitTime = 1000);
  103294. ///@brief 取消异步直接透传接口,pstInTransmit与pstOutTransmit内存由用户申请释放
  103295. CLIENT_NET_API BOOL CALL_METHOD CLIENT_StopTransmitInfoDirectly(LLONG lStartHandle, const NET_IN_TRANSMIT_DIRECTLY *pstInTransmit, NET_OUT_TRANSMIT_DIRECTLY *pstOutTransmit, int nWaitTime = 1000);
  103296. ///@brief 获取VK,淘汰废弃接口,请使用CLIENT_AttachVK获取当前甚至前一个vk并订阅vk
  103297. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetVK(LLONG lLoginID, const NET_IN_GET_VKINFO* pInParam, NET_OUT_GET_VKINFO* pOutParam, int nWaitTime);
  103298. ///@brief GDPR版本信息
  103299. typedef enum EM_GDPR_VERSION
  103300. {
  103301. EM_GDPR_VERSION_NON = 0, // 非GDPR设备
  103302. EM_GDPR_VERSION_V1, // GDPR V1设备:支持V1版本的拉流、回放
  103303. EM_GDPR_VERSION_V2, // GDPR V2设备:支持V2版本的拉流、回放
  103304. }EM_GDPR_VERSION;
  103305. ///@brief 获取GDPR版本信息,废弃接口,请使用 CLIENT_GetGDPRAbility 接口
  103306. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetGDPRVersion(LLONG lLoginID, EM_GDPR_VERSION* pVersion, int nWaitTime);
  103307. ///@brief 淘汰废弃接口
  103308. // 手机订阅推送信息, 使用RegisterID标识配置项,pstuCfg内存由用户申请释放
  103309. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetMobilePushNotify(LLONG lLoginID, const NET_MOBILE_PUSH_NOTIFY *pstuCfg, int *nError, int *nRestart, int nWaitTime = 1000);
  103310. ///@brief 淘汰废弃接口
  103311. // 删除手机订阅推送信息, 使用RegisterID标识配置项,pstuIn与pstuOut内存由用户申请释放
  103312. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelMobilePushNotify(LLONG lLoginID, const NET_MOBILE_PUSH_NOTIFY_DEL *pstuIn, NET_OUT_DELETECFG* pstuOut, int nWaitTime = 1000);
  103313. ///@brief 淘汰废弃接口
  103314. // 获取手机订阅推送信息, 使用RegisterID+AppID标识配置项,AppID内容不能带点号,点号可以用下划线代替,pstuCfg内存由用户申请释放
  103315. CLIENT_NET_API BOOL CALL_METHOD CLIENT_GetMobilePushNotifyCfg(LLONG lLoginID, NET_MOBILE_PUSH_NOTIFY_CFG *pstuCfg, int *nError, int nWaitTime = 1000);
  103316. ///@brief 淘汰废弃接口
  103317. // 设置手机订阅推送信息, 使用RegisterID+AppID标识配置项,AppID内容不能带点号,点号可以用下划线代替,pstuCfg内存由用户申请释放
  103318. CLIENT_NET_API BOOL CALL_METHOD CLIENT_SetMobilePushNotifyCfg(LLONG lLoginID, const NET_MOBILE_PUSH_NOTIFY_CFG *pstuCfg, int *nError, int *nRestart, int nWaitTime = 1000);
  103319. ///@brief 淘汰废弃接口
  103320. // 删除手机订阅推送信息, 使用RegisterID+AppID标识配置项,AppID内容不能带点号,点号可以用下划线代替,pstuIn与pstuOut内存由用户申请释放
  103321. CLIENT_NET_API BOOL CALL_METHOD CLIENT_DelMobilePushNotifyCfg(LLONG lLoginID, const NET_MOBILE_PUSH_NOTIFY_CFG_DEL *pstuIn, NET_OUT_DELETECFG* pstuOut, int nWaitTime = 1000);
  103322. ///@brief 操作类型枚举
  103323. typedef enum tagNET_EVENT_OPERATE_TYPE
  103324. {
  103325. NET_EVENT_OPERATE_TYPE_UNKOWN =0, //未知
  103326. NET_EVENT_OPERATE_TYPE_ADD, //增加
  103327. NET_EVENT_OPERATE_TYPE_DELETE, //删除
  103328. NET_EVENT_OPERATE_TYPE_MODIFY, //修改
  103329. }NET_EVENT_OPERATE_TYPE;
  103330. ///@brief 用户类型枚举
  103331. typedef enum tagNET_EVENT_USER_TYPE
  103332. {
  103333. NET_EVENT_USER_TYPE_UNKOWN =0, //未知
  103334. NET_EVENT_USER_TYPE_KEYPAD, //键盘
  103335. }NET_EVENT_USER_TYPE;
  103336. ///@brief 设备类型枚举
  103337. typedef enum tagNET_EVENT_DEVICE_TYPE
  103338. {
  103339. NET_EVENT_DEVICE_TYPE_UNKOWN =0, //未知
  103340. NET_EVENT_DEVICE_TYPE_CARD, //卡片
  103341. }NET_EVENT_DEVICE_TYPE;
  103342. ///@brief RF干扰上报事件 (对应 DH_ALARM_RF_JAMMING)
  103343. typedef struct tagNET_ALARM_RF_JAMMING_INFO
  103344. {
  103345. int nAction; // 事件动作 0:脉冲
  103346. int nChannel; // 通道号
  103347. NET_TIME_EX stuUTC; // 事件发生的时间,标准的(不带时区偏差的)UTC时间
  103348. char szDeviceName[256]; // 设备名称
  103349. char szReserved[1024]; // 保留字节
  103350. }NET_ALARM_RF_JAMMING_INFO;
  103351. ///@brief 布防失败上报事件 (对应 DH_ALARM_ARMING_FAILURE)
  103352. typedef struct tagNET_ALARM_ARMING_FAILURE_INFO
  103353. {
  103354. int nAction; // 事件动作 0:脉冲
  103355. int nChannel; // 通道号
  103356. NET_TIME_EX stuUTC; // 事件发生的时间,标准的(不带时区偏差的)UTC时间
  103357. EM_ARM_TYPE emMode; // 布撤防模式
  103358. char szReserved[1024]; // 保留字节
  103359. }NET_ALARM_ARMING_FAILURE_INFO;
  103360. ///@brief 用户信息被修改(增加、删除、修改)上报事件 (对应 DH_ALARM_USER_MODIFIED)
  103361. typedef struct tagNET_ALARM_USER_MODIFIED_INFO
  103362. {
  103363. int nAction; // 事件动作 0:脉冲
  103364. int nChannel; // 通道号
  103365. char szUser[128]; // 用户名称
  103366. NET_EVENT_OPERATE_TYPE emOpType; // 操作类型
  103367. NET_EVENT_USER_TYPE emUserType; // 用户类型
  103368. char szReserved[1024]; // 保留字节
  103369. }NET_ALARM_USER_MODIFIED_INFO;
  103370. ///@brief 手动测试上报事件 (对应 DH_ALARM_MANUAL_TEST)
  103371. typedef struct tagNET_ALARM_MANUAL_TEST_INFO
  103372. {
  103373. int nAction; // 事件动作 0:脉冲
  103374. int nChannel; // 通道号
  103375. NET_TIME_EX stuUTC; // 事件发生的时间,标准的(不带时区偏差的)UTC时间
  103376. char szSN[32]; // 配件序列号
  103377. char szName[32]; // 配件名称
  103378. char szAreaName[128]; // 配件所属区域名称
  103379. char szReserved[1024]; // 保留字节
  103380. }NET_ALARM_MANUAL_TEST_INFO;
  103381. ///@brief 设备设息修改(增加、删除、修改)上报事件 (对应 DH_ALARM_DEVICE_MODIFIED)
  103382. typedef struct tagNET_ALARM_DEVICE_MODIFIED_INFO
  103383. {
  103384. int nAction; // 事件动作 0:脉冲
  103385. int nChannel; // 通道号
  103386. NET_TIME_EX stuUTC; // 事件发生的时间,标准的(不带时区偏差的)UTC时间
  103387. char szUser[32]; // 用户名称
  103388. NET_EVENT_OPERATE_TYPE emOpType; // 操作类型
  103389. NET_EVENT_DEVICE_TYPE emDeviceType; // 设备类型
  103390. char szReserved[1024];// 保留字节
  103391. }NET_ALARM_DEVICE_MODIFIED_INFO;
  103392. ///@brief 报警传输系统故障上报事件 (对应 DH_ALARM_ATS_FAULT)
  103393. typedef struct tagNET_ALARM_ATS_FAULT_INFO
  103394. {
  103395. int nAction; // 事件动作, 1:开始 2:停止
  103396. int nChannel; // 通道号
  103397. NET_TIME_EX stuUTC; // 事件发生的时间,标准的(不带时区偏差的)UTC时间
  103398. char szReserved[1024];// 保留字节
  103399. }NET_ALARM_ATS_FAULT_INFO;
  103400. ///@brief 报警接收中心离线上报事件 (对应 DH_ALARM_ARC_OFFLINE)
  103401. typedef struct tagNET_ALARM_ARC_OFFLINE_INFO
  103402. {
  103403. int nAction; // 事件动作, 1:开始 2:停止
  103404. int nChannel; // 通道号
  103405. NET_TIME_EX stuUTC; // 事件发生的时间,标准的(不带时区偏差的)UTC时间
  103406. char szDetail[128]; // ARC通讯异常描述信息
  103407. char szReserved[1024];// 保留字节
  103408. }NET_ALARM_ARC_OFFLINE_INFO;
  103409. ///@brief 所属区域信息结构体
  103410. typedef struct tagNET_EVENT_AREAR_INFO
  103411. {
  103412. char szName[128]; // 所属区域名称
  103413. int nIndex; // 所属区域编号
  103414. char szRsd[64]; // 保留字节
  103415. }NET_EVENT_AREAR_INFO;
  103416. ///@brief wifi故障上报事件 (对应 DH_ALARM_WIFI_FAILURE)
  103417. typedef struct tagNET_ALARM_WIFI_FAILURE_INFO
  103418. {
  103419. int nAction; // 事件动作, 1:开始 2:停止
  103420. NET_TIME_EX stuUTC; // 事件发生的时间,标准的(不带时区偏差的)UTC时间
  103421. char szSN[32]; // 配件序列号
  103422. char szName[64]; // 配件名称
  103423. int nErrorCode; // wifi故障错误码 1:未知错误;2:无效的网络名称;3:无效的网络口令;4:网络故障
  103424. int nAreaInfoNum; // 所属区域信息个数
  103425. NET_EVENT_AREAR_INFO stuAreaInfo[64]; // 所属区域信息
  103426. char szReserved[1024];// 保留字节
  103427. }NET_ALARM_WIFI_FAILURE_INFO;
  103428. ///@brief 超温上报事件 (对应 DH_ALARM_OVER_TEMPERATURE)
  103429. typedef struct tagNET_ALARM_OVER_TEMPERATURE_INFO
  103430. {
  103431. int nAction; // 事件动作 0:脉冲
  103432. int nChannel; // 通道号
  103433. NET_TIME_EX stuUTC; // 事件发生的时间,标准的(不带时区偏差的)UTC时间
  103434. char szSN[32]; // 配件序列号
  103435. char szName[64]; // 配件名称
  103436. int nTemperatureType; // 超温类型 0:温度恢复正常;1:温度超过下限;2:温度超过上限
  103437. int nAreaInfoNum; // 所属区域信息个数
  103438. NET_EVENT_AREAR_INFO stuAreaInfo[64]; // 所属区域信息
  103439. char szReserved[1024]; // 保留字节
  103440. }NET_ALARM_OVER_TEMPERATURE_INFO;
  103441. ///@brief 隔栏传物事件检测到的目标信息结构体
  103442. typedef struct tagNET_DETECTION_OBJECT_INFO
  103443. {
  103444. char szObjectType[16]; // 目标类型 支持"Human"
  103445. NET_RECT_EX stuBoundingBox; // 目标物体包围盒,矩形类型归一化到[0,8192)区间
  103446. UINT nObjectID; // 目标ID
  103447. char szReserved[516]; // 保留字节
  103448. }NET_DETECTION_OBJECT_INFO;
  103449. ///@brief 隔栏传物事件 (对应 DH_ALARM_RAILING_PASS_DETECTION)
  103450. typedef struct tagNET_DEV_EVENT_RAILING_PASS_DETECTION_INFO
  103451. {
  103452. int nChannelID; // 通道号,从0开始
  103453. int nEventAction; // 事件动作, 0表示脉冲事件, 1表示开始, 2表示结束
  103454. UINT nRuleID; // 智能事件规则编号,用于标示哪个规则触发的事件。
  103455. NET_TIME_EX stuUTC; // 事件发生的时间,标准的(不带时区偏差的)UTC时间
  103456. NET_EVENT_INFO_EXTEND stuEventInfoEx; // 事件公共扩展字段结构体
  103457. char szName[128]; // 事件名称
  103458. char szClass[16]; // 智能事件所属大类
  103459. int nGroupID; // 事件组ID,同一物体抓拍过程内GroupID相同
  103460. int nCountInGroup; // 一个事件组内的抓拍张数
  103461. int nIndexInGroup; // 一个事件组内的抓拍序号
  103462. int nCount; // 规则被触发次数
  103463. double dbPTS; // 相对事件时间戳,单位毫秒
  103464. UINT nUTCMS; // 事件时间毫秒数
  103465. UINT nEventID; // 事件编号
  103466. DH_POINT_EX stuDetectLine[2]; // 配置的规则线,包含一个起点、一个终点坐标,归一化到[0,8192)区间
  103467. DH_POINT_EX stuDetectRegion[20]; // 配置的检测区,多边形中每个顶点的坐标归一化到[0,8192)区间
  103468. int nDetectRegionPointNum; // 多边形中顶点个数
  103469. int nObjectsCount; // 检测到的目标信息个数
  103470. NET_DETECTION_OBJECT_INFO stuObjects[100]; // 检测到的目标信息
  103471. char szReserved[1024]; // 保留字节
  103472. }NET_DEV_EVENT_RAILING_PASS_DETECTION_INFO;
  103473. /////////////////////////////淘汰接口 End/////////////////////////////////
  103474. #ifdef __cplusplus
  103475. }
  103476. #endif
  103477. #endif // DHNETSDK_H