dhconfigsdk.h 1.0 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737
  1. #ifndef DHCONFIGSDK_H
  2. #define DHCONFIGSDK_H
  3. #ifndef AVGLOBAL_H
  4. #define AVGLOBAL_H
  5. typedef int AV_int32;
  6. typedef unsigned int AV_uint32;
  7. #ifndef __OBJC__
  8. typedef int AV_BOOL;
  9. #else
  10. typedef BOOL AV_BOOL;
  11. #endif
  12. typedef void* AV_HANDLE;
  13. typedef unsigned char AV_BYTE;
  14. typedef float AV_float;
  15. #ifdef WIN32
  16. typedef __int64 AV_int64;
  17. typedef unsigned __int64 AV_uint64;
  18. #else
  19. typedef long long AV_int64;
  20. typedef unsigned long long AV_uint64;
  21. #endif
  22. #endif
  23. #if (defined(_MSC_VER))
  24. #include <windows.h>
  25. #ifdef CONFIGSDK_EXPORTS
  26. #if((defined(_WIN64) || defined(WIN64)))
  27. #define CLIENT_CFG_API
  28. #else
  29. #define CLIENT_CFG_API __declspec(dllexport)
  30. #endif
  31. #else
  32. #define CLIENT_CFG_API __declspec(dllimport)
  33. #endif
  34. #define CALLBACK __stdcall
  35. #define CALL_METHOD __stdcall //__cdecl
  36. #ifndef LLONG
  37. #if (defined(WIN32) || defined(_WIN32) || defined(_WIN64))
  38. #ifdef _WIN64
  39. #define LLONG __int64
  40. #else //WIN32
  41. #define LLONG LONG
  42. #endif
  43. #else //Linux
  44. #define LLONG long
  45. #endif
  46. #endif
  47. #ifndef LDWORD
  48. #if (defined(WIN32) || defined(_WIN32) || defined(_WIN64))
  49. #ifdef _WIN64
  50. #define LDWORD __int64
  51. #else //WIN32
  52. #define LDWORD DWORD
  53. #endif
  54. #else //Linux
  55. #define LDWORD long
  56. #endif
  57. #endif
  58. #else //Linux
  59. #define CLIENT_CFG_API extern "C"
  60. #define CALL_METHOD
  61. #define CALLBACK
  62. #endif
  63. #ifdef __cplusplus
  64. extern "C" {
  65. #endif
  66. #define CFG_POINTERSIZE sizeof(void*)
  67. /************************************************************************
  68. ** 常量定义
  69. ***********************************************************************/
  70. #define MAX_CHANNEL_COUNT 16
  71. #define MAX_VIDEO_CHANNEL_NUM 256 // 最大通道数256
  72. #define MAX_CHANNELNAME_LEN 64 // 最大通道名称长度
  73. #define MAX_VIDEOSTREAM_NUM 4 // 最大码流个数
  74. #define MAX_VIDEO_COVER_NUM 16 // 最大遮挡区域个数
  75. #define WEEK_DAY_NUM 7 // 一周的天数
  76. #define MAX_REC_TSECT 6 // 录像时间段个数
  77. #define MAX_REC_TSECT_EX 10 // 录像时间段扩展个数
  78. #define MAX_WATERMARK_LEN 4096 // 数字水印数据最大长度
  79. #define MAX_MOTION_ROW 32 // 动态检测区域的行数
  80. #define MAX_MOTION_COL 32 // 动态检测区域的列数
  81. #define MAX_IMAGESIZE_NUM 256 // 最大支持的分辨率个数
  82. #define MAX_FPS_NUM 1024 // 最大支持的帧率个数
  83. #define MAX_QUALITY_NUM 32 // 最大支持的画质个数
  84. #define MAX_ADDRESS_LEN 256 // 最大的地址长度
  85. #define MAX_USERNAME_LEN 64 // 最大用户名长度
  86. #define MAX_PASSWORD_LEN 64 // 最大密码长度
  87. #define MAX_DIRECTORY_LEN 256 // 文件夹名字字符串长度
  88. #define MAX_NAS_TIME_SECTION 2 // 网络存储时间段个数
  89. #define MAX_NAME_LEN 128 // 通用名字字符串长度
  90. #define MAX_SCENE_TYPE_LIST_SIZE 8 // 场景列表中最多支持的场景个数
  91. #define MAX_DECPRO_LIST_SIZE 100 // 解码器协议列表个数上限
  92. #define MAX_SCENE_LIST_SIZE 32 // 视频分析设备支持的场景类型列表个数上限
  93. #define MAX_OBJECT_LIST_SIZE 16 // 视频分析设备支持的检测物体类型列表个数上限
  94. #define MAX_RULE_LIST_SIZE 128 // 视频分析设备支持的规则列表个数上限
  95. #define MAX_SUPPORTED_COMP_SIZE 4 // 最大支持的场景组合项
  96. #define MAX_SUPPORTED_COMP_DATA 8 // 每个组合项里最多支持的场景个数
  97. #define MAX_ANALYSE_MODULE_NUM 16 // 视频分析设备最大检测模块个数
  98. #define MAX_ANALYSE_RULE_NUM 32 // 视频分析设备最大规则个数
  99. #define MAX_POLYGON_NUM 20 // 视频分析设备区域顶点个数上限
  100. #define MAX_POLYLINE_NUM 20 // 视频分析设备折线顶点个数上限
  101. #define MAX_TEMPLATEREGION_NUM 32 // 视频分析设备模拟区域信息点对个数上限
  102. #define POINT_PAIR_NUM 2 // 视频分析设备模拟区域点对包含的点个数
  103. #define MAX_VEHICLE_SIZE_LIST 4 // 视频分析设备车辆大小个数上限
  104. #define MAX_VEHICLE_TYPE_LIST 4 // 视频分析设备车辆类型个数上限
  105. #define MAX_PLATE_TYPE_LIST 32 // 视频分析设备车牌类型个数上限
  106. #define MAX_LANE_NUM 8 // 视频分析设备每个通道对应车道数上限
  107. #define MAX_STAFF_NUM 20 // 视频分析设备每个通道对应的标尺数上限
  108. #define MAX_CALIBRATEAREA_NUM 20 // 视频分析设备标定区域的上限
  109. #define MAX_EXCLUDEREGION_NUM 10 // 智能分析检测区域中需要排除的区域个数上限
  110. #define MAX_CALIBRATEBOX_NUM 10 // 智能分析校准框个数上限
  111. #define MAX_SPECIALDETECT_NUM 10 // 智能分析特殊检测区域上限
  112. #define MAX_HUMANFACE_LIST_SIZE 8 // 视频分析设备支持的目标检测类型列表个数上限
  113. #define MAX_FEATURE_LIST_SIZE 32 // 视频分析设备支持的目标属性列表个数上限
  114. #define MAX_SEVER_NUM 16 // 服务类型上限
  115. #define MAX_SERVER_NAME_LEN 16 // 服务名称字符串大小
  116. #define MAX_POWER_NUM 8 // 电源个数上限
  117. #define MAX_FUN_NUM 8 // 风扇个数上限
  118. #define MAX_CPU_NUM 8 // cpu个数上限
  119. #define MAX_HARDDISK_NUM 32 // 硬盘上限
  120. #define MAX_TANK_NUM 16 // 最大存储柜上限
  121. #define MAX_CHAN_NUM 256 // 最大通道数上限
  122. #define MAX_RAID_NUM 16 // 最大磁盘阵列上限
  123. #define MAX_DEV_NUM 16 // 最大设备上限
  124. #define MAX_STORAGEPOOL_NUM 16 // 最大存储池上限
  125. #define MAX_STRORAGEPOS_NUM 16 // 最大存储位置上限
  126. #define MAX_VIDEODEV_NUM 256 // 前端设备上限
  127. #define MAX_REMOTEDEVICENAME_LEN 32 // 最大远程设备名字长度
  128. #define MAX_REMOTE_DEV_NUM 256 // 最大远程设备数量
  129. #define MAX_PLATEHINT_NUM 8 // 车牌字符暗示个数上限
  130. #define MAX_LIGHT_NUM 8 // 交通灯个数上限
  131. #define MAX_LIGHTGROUP_NUM 8 // 交通灯组个数上限
  132. #define MAX_LIGHT_TYPE 8 // 交通灯类型上限
  133. #define MAX_LIGHT_DIRECTION 8 // 交通灯指示方向数上限
  134. #define MAX_TRIGGERMODE_NUM 32 // 交通路口规则触发模式上限
  135. #define MAX_VIOLATIONCODE 16 // 智能交通违章代码长度上限
  136. #define MAX_DETECTOR 6 // 智能交通车检器配置上限
  137. #define MAX_COILCONFIG 3 // 智能交通车检器线圈配置上限
  138. #define MAX_DEVICE_ADDRESS 256 // TrafficSnapshot智能交通设备地址
  139. #define MAX_DEPARTMENT 256 // Department智能交通设备所属单位
  140. #define MAX_ROADWAYNO 128 // 道路编号 由32个数字和字母构成
  141. #define MAX_VIOLATIONCODE_DESCRIPT 64 // 智能交通违章代码长度上限
  142. #define MAX_DRIVINGDIRECTION 256 // 行驶方向字符串长度
  143. #define MAX_ACTIVEUSER_NUM 64 // 最大活动用户信息数
  144. #define MAX_POLYGON_NUM10 10 // 视频分析设备区域顶点个数上限
  145. #define MAX_VIDEODIAGNOSIS_DETECT_TYPE 64 // 视频诊断类型个数上限
  146. #define MAX_ACTION_LIST_SIZE 16 // 视频分析设备支持的规则的动作类型列表个数上限
  147. #define MAX_STORAGEGROUPNAME_LEN 32 // 存储组名称缓冲区上限
  148. #define MAX_CALIBRATEAREA_TYPE_NUM 4 // 标定区域类型上限
  149. #define MAX_PROTOCOL_NAME_LEN 32 // 协议名称长度
  150. #define MAX_COMM_NUM 16 // 最大串口数量
  151. #define MAX_DNS_SERVER_NUM 2 // DNS最大数量
  152. #define MAX_NETWORK_INTERFACE_NUM 32 // 最大网卡数量
  153. #define MAX_NAS_NUM 16 // 网络存储服务器最大数量
  154. #define MAX_STORAGEPOINT_NUM 32 // 录像存储点映射最大数量
  155. #define MAX_TRACKSCENE_NUM 10 // 智能跟踪场景最大数量
  156. #define MAX_STATUS_NUM 16 // 交通设备状态最大个数
  157. #define MAX_SERVICE_NUM 128 // 服务器支持的最大服务数
  158. #define MAX_DBKEY_NUM 64 // 数据库关键字最大值
  159. #define MAX_SUMMARY_LEN 1024 // 叠加到JPEG图片的摘要信息最大长度
  160. #define MAX_MOTION_WINDOW 10 // 动检支持的视频窗口值
  161. #define MAX_OSD_SUMMARY_LEN 256 // osd叠加内容最大长度
  162. #define MAX_OSD_TITLE_LEN 128 // osd叠加标题最大长度
  163. #define MAX_CUSTOMCASE_NUM 16 // 自定义案件最大个数
  164. #define MAX_GLOBAL_MSTERSLAVE_NUM 64 //主从式跟踪器最大全局配置数
  165. #define MAX_OBJECT_ATTRIBUTES_SIZE 16 // 视频分析设备支持的检测物体属性类型列表个数上限
  166. #define MAX_MODEL_LEN 32 // 设备型号长度
  167. #define MAX_BURNING_DEV_NUM 32 // 最大刻录设备个数
  168. #define MAX_NET_TYPE_NUM 8 // 最大网络类型个数
  169. #define MAX_NET_TYPE_LEN 64 // 网络类型字符串长度
  170. #define MAX_DEVICE_NAME_LEN 64 // 机器名称
  171. #define MAX_DEV_ID_LEN_EX 128 // 设备ID最大长度
  172. #define MONTH_OF_YEAR 12 // 一年中月份数
  173. #define MAX_SERVER_NUM 10 // 服务器最大个数
  174. #define MAX_REGISTER_NUM 10 // 主动注册配置最大个数
  175. #define MAX_VIDEO_IN_ZOOM 32 // 单通道最大变速配置个数
  176. #define MAX_ANALYSE_SCENE_NUM 32 // 视频分析全局配置场景最大数量
  177. #define MAX_CONFIG_NUM 32 // 每个云台的最大配置数
  178. #define MAX_PTZ_PRESET_NAME_LEN 64 // 云台预置点名称长度
  179. #define CFG_COMMON_STRING_8 8 // 通用字符串长度8
  180. #define CFG_COMMON_STRING_16 16 // 通用字符串长度16
  181. #define CFG_COMMON_STRING_32 32 // 通用字符串长度32
  182. #define CFG_COMMON_STRING_64 64 // 通用字符串长度64
  183. #define CFG_COMMON_STRING_128 128 // 通用字符串长度128
  184. #define CFG_COMMON_STRING_256 256 // 通用字符串长度256
  185. #define CFG_COMMON_STRING_512 512 // 通用字符串长度512
  186. #define AV_CFG_Channel_Name_Len 64 // 通道名称长度
  187. #define CFG_MAX_CHANNEL_NAME_LEN 256 // 通道名称最大长度
  188. #define AV_CFG_Weekday_Num 7 // 一周天数
  189. #define AV_CFG_Max_TimeSection 6 // 时间段数量
  190. #define AV_CFG_Device_ID_Len 64 // 设备ID长度
  191. #define AV_CFG_IP_Address_Len 32 // ip长度
  192. #define AV_CFG_IP_Address_Len_EX 40 // 扩展IP地址字符串长度, 支持IPV6
  193. #define AV_CFG_User_Name_Len 64 // 用户名长度
  194. #define AV_CFG_Password_Len 64 // 密码长度
  195. #define AV_CFG_Protocol_Len 32 // 协议名长度
  196. #define AV_CFG_Serial_Len 32 // 序列号长度
  197. #define AV_CFG_Device_Class_Len 16 // 设备类型长度
  198. #define AV_CFG_Device_Type_Len 32 // 设备具体型号长度
  199. #define AV_CFG_Device_Name_Len 128 // 机器名称
  200. #define AV_CFG_Address_Len 128 // 机器部署地点
  201. #define AV_CFG_Max_Path 260 // 路径长度
  202. #define AV_CFG_Max_Split_Window 128 // 最大分割窗口数量
  203. #define AV_CFG_Monitor_Favorite_In_Channel 64 // 每个输出通道的最大轮训画面收藏数量
  204. #define AV_CFG_Monitor_Favorite_Name_Len 64 // 画面收藏名称长度
  205. #define AV_CFG_Max_Monitor_Favorite_Window 64 // 画面收藏的最大窗口数量
  206. #define AV_CFG_Max_Split_Group 64 // 分割最大分组数量
  207. #define AV_CFG_Max_Split_Mode 32 // 分割模式最大数量
  208. #define AV_CFG_Raid_Name_Len 64 // RAID名称长度
  209. #define AV_CFG_Max_Rail_Member 32 // 单个RAID包含磁盘数
  210. #define AV_CFG_Max_Encode_Main_Format 3 // 主码流编码类型数
  211. #define AV_CFG_Max_Encode_Extra_Format 3 // 辅码流编码类型数
  212. #define AV_CFG_Max_Encode_Snap_Format 3 // 抓图编码类型数
  213. #define AV_CFG_Max_VideoColor 24 // 每个通道最大视频输入颜色配置数量
  214. #define AV_CFG_Custom_Title_Len 1024 // 自定义标题名称长度(扩充到1024)
  215. #define AV_CFG_Custom_TitleType_Len 32 // 自定义标题类型长度
  216. #define AV_CFG_Max_Video_Widget_Cover 16 // 编码区域覆盖最大数量
  217. #define AV_CFG_Max_Video_Widget_Custom_Title 8 // 编码物件自定义标题最大数量
  218. #define AV_CFG_Max_Video_Widget_Sensor_Info 2 // 编码物件叠加传感器信息的最大数目
  219. #define AV_CFG_Max_Description_Num 4 // 叠加区域描述信息的最大个数
  220. #define AV_CFG_Group_Name_Len 64 // 分组名称长度
  221. #define AV_CFG_DeviceNo_Len 32 // 设备编号长度
  222. #define AV_CFG_Group_Memo_Len 128 // 分组说明长度
  223. #define AV_CFG_Max_Channel_Num 1024 // 最大通道数量
  224. #define AV_CFG_Time_Format_Len 32 // 时间格式长度
  225. #define AV_CFG_Max_White_List 1024 // 允许名单数量
  226. #define AV_CFG_Max_Black_List 1024 // 禁止名单数量
  227. #define AV_CFG_Filter_IP_Len 96 // 过滤IP最大长度
  228. #define AV_CFG_Max_ChannelRule 32 // 通道存储规则最大长度, 仅通道部分
  229. #define AV_CFG_Max_DBKey_Num 64 // 事件关键字数量
  230. #define AV_CFG_DBKey_Len 32 // 事件关键字长度
  231. #define AV_CFG_Max_Summary_Len 1024 // 摘要长度
  232. #define AV_CFG_Max_Event_Title_Num 32 // 事件标题最大数量
  233. #define AV_CFG_Max_Tour_Link_Num 128 // 联动轮巡最大数量
  234. #define AV_CFG_PIP_BASE 1000 // 画中画分割模式基础值
  235. #define DES_KEY_LEN 8 // DES密钥的字节长度
  236. #define DES_KEY_NUM 3 // 3DES密钥的个数
  237. #define AES_KEY_LEN 32 // AES密钥的字节长度
  238. #define MAX_TIME_SCHEDULE_NUM 8 // 时间表元素个数
  239. #define MAX_SCENE_SUBTYPE_LEN 64 // 场景子类型字符串长度
  240. #define MAX_SCENE_SUBTYPE_NUM 32 // 场景子类型最大个数
  241. #define MAX_VIDEO_IN_FOCUS 32 // 单通道最大聚焦配置个数
  242. #define MAX_TIMESPEEDLIMIT_NUM 16 // 最大时间段限速配置个数
  243. #define MAX_VOICEALERT_NUM 64 // 最大语音提示配置个数
  244. #define CFG_MAX_LOWER_MATRIX_NUM 16 // 最大下位矩阵数量
  245. #define CFG_MAX_LOWER_MATRIX_INPUT 64 // 最大下位矩阵输入通道数
  246. #define CFG_MAX_LOWER_MATRIX_OUTPUT 32 // 最大下位矩阵输出通道数
  247. #define CFG_MAX_AUDIO_MATRIX_INPUT 32 // 音频矩阵最大输入通道数
  248. #define CFG_MAX_AUDIO_OUTPUT_CHN 32 // 音频矩阵最大输出通道数
  249. #define CFG_MAX_AUDIO_MATRIX_NUM 4 // 最大音频矩阵数量
  250. #define CFG_MAX_AUDIO_MATRIX_OUTPUT 8 // 每个音频矩阵支持的最大输出通道数
  251. #define CFG_MAX_VIDEO_IN_DEFOG 3 // 每个通道最多透雾配置个数
  252. #define CFG_MAX_INFRARED_BOARD_TEMPLATE_NUM 16 // 最大红外面板模板数量
  253. #define CFG_MAX_INFRARED_KEY_NUM 128 // 最大红外面板按键数量
  254. #define CFG_MAX_INFRARED_BOARD_NUM 16 // 最大红外面板数量
  255. #define CFG_MAX_VTO_NUM 128 // 最大门口机数量
  256. #define MAX_PHONE_NUMBER_LEN 32 // 电话号码最大长度
  257. #define MAX_AUDIO_OUTPUT_NUM 16 // 音频输出最大通道数
  258. #define MAX_AUDIO_INPUT_NUM 32 // 音频输入最大通道数
  259. #define MAX_LIGHT_GLOBAL_NUM 16 // 乐橙状态灯最大数目
  260. #define MAX_AUDIO_MIX_NUM 16 // 混合音频最大通道数
  261. #define MAX_PSTN_SERVER_NUM 8 // 最大报警电话服务器数
  262. #define MAX_ALARM_CHANNEL_NUM 32 // 最大报警通道数
  263. #define MAX_ALARM_DEFENCE_TYPE_NUM 8 // 最大报警防区类型数
  264. #define MAX_ALARM_SENSE_METHOD_NUM 16 // 最大报警感应器方式数
  265. #define MAX_EXALARMBOX_PROTOCOL_NUM 8 // 最大支持扩展报警盒协议数
  266. #define MAX_EXALARM_CHANNEL_NUM 256 // 最大报警通道数
  267. #define MAX_EXALARMBOX_NUM 8 // 最大报警盒子数
  268. #define MAX_MAILTITLE_LEN 256 // 最大邮件标题长度
  269. #define MAX_DEVICE_ID_LEN 48 // 最大设备编码长度
  270. #define MAX_DEVICE_MARK_LEN 64 // 最大设备描述长度
  271. #define MAX_BRAND_NAME_LEN 64 // 最大设备品牌长度
  272. #define MAX_ADDRESS_NUM 16 // 最大串口地址个数
  273. #define MAX_AIRCONDITION_NUM 16 // 最大空调设备个数
  274. #define CFG_MAX_COLLECTION_NUM 64 // 最大预案数
  275. #define MAX_FLOOR_NUM 128 // 最大楼层数
  276. #define MAX_SEAT_NUM 8 // 最大座位数
  277. #define AV_CFG_Local_Device_ID "Local" // 本地设备ID
  278. #define AV_CFG_Remote_Devce_ID "Remote" // 远程设备ID
  279. #define MAX_LANE_CONFIG_NUMBER 32 // 车道最大个数
  280. #define MAX_PRIORITY_NUMBER 256 // 违章优先级包含违章最大个数
  281. #define MAX_CATEGORY_TYPE_NUMBER 128 // 子类别类型数
  282. #define MAX_TRIGGER_MODE_NUMBER 64 // 触发模式个数
  283. #define MAX_ABNORMAL_DETECT_TYPE 32 // 异常检测类型数
  284. #define MAX_ABNORMAL_THRESHOLD_LEN 32 // 异常检测阙值最大个数
  285. #define TS_POINT_NUM 3 // 触摸屏校准点数
  286. #define CFG_FILTER_IP_LEN 96 // 过滤IP最大长度
  287. #define CFG_MAX_TRUST_LIST 1024 // 允许名单数量
  288. #define CFG_MAX_BANNED_LIST 1024 // 禁止名单数量
  289. #define VIDEOIN_TSEC_NUM 3 // VideoIn 系列协议时间段个数,目前有普通、白天、黑夜三种
  290. #define MAX_RECT_COUNT 4 // 单个通道支持的马赛克区域最大个数
  291. #define CFG_MAX_SSID_LEN 36 // SSID最大长度
  292. #define MAX_OUTAUDIO_CHANNEL_COUNT 16 // 最大音频输出通道数
  293. #define MAX_INAUDIO_CHANNEL_COUNT 32 // 最大音频输入通道数
  294. #define MAX_FREQUENCY_COUNT 16 // 最大频率段个数
  295. #define MAX_NTP_SERVER 4 // 最大备用NTP服务器地址
  296. #define MAX_ACCESS_TEXTDISPLAY_LEN 32 // 最大门禁控制显示文字长度
  297. #define CFG_MAX_NVR_ENCRYPT_COUNT 4 // 每个通道最多加密配置个数
  298. #define MAX_IP_ADDR_LEN 16 // IP地址字符串长度
  299. #define MAX_PRIVACY_MASKING_COUNT 64 // 单个通道隐私遮挡配置个数
  300. #define MAX_ALL_SNAP_CAR_COUNT 32 // 所有车开闸种类个数
  301. #define CFG_MAX_PLATE_NUMBER_LEN 32 // 最大车牌号码长度
  302. #define CFG_MAX_SN_LEN 32 // 最大设备序列号长度
  303. #define CFG_MAX_ACCESS_CONTROL_ADDRESS_LEN 64 // 最大的地址长度
  304. #define MAX_CFG_APN_NAME 32 // Wireless中接入网络名长度
  305. #define MAX_CFG_DAIL_NUMBER 32 // Wireless中拨号号码长度
  306. #define MAX_GROUP_ID_LEN 64 // 最大布控组ID长度
  307. #define MAX_COLOR_NAME_LEN 32 // 最大颜色名长度
  308. #define MAX_COLOR_HEX_LEN 8 // 最大HEX颜色长度
  309. #define MAX_LINK_GROUP_NUM 20 // 联动的布控组最大数量
  310. #define MAX_CROWD_DISTRI_MAP_REGION_POINT_NUM 20 // 区域检测坐标个数
  311. #define MAX_PEOPLESTATREGIONS_NUM 8 // 人数统计区域个数
  312. #define MAX_AUDIOCHANNELS_ARRAY_NUM 8 // 视频通道的伴音通道号列表数组的最大个数
  313. #define MAX_NUMBER_STAT_MAULT_NUM 32 // 最大客流量统计场景PD个数
  314. #define CFG_MAX_DAY_NIGHT_MODE 3 // 每个视频输入通道对应多个配置(分别表示白天、黑夜、普通)
  315. ///@brief MACRO_GROUP_GET_NEW_DEV_37_BEGIN
  316. /************************************************************************
  317. ** 配置命令 对应CLIENT_GetNewDevConfig和CLIENT_SetNewDevConfig接口
  318. ***********************************************************************/
  319. #define CFG_CMD_ENCODE "Encode" // 图像通道属性配置(对应 CFG_ENCODE_INFO)
  320. #define CFG_CMD_RECORD "Record" // 定时录像配置(对应 CFG_RECORD_INFO)
  321. #define CFG_CMD_ALARMINPUT "Alarm" // 外部输入报警配置(对应 CFG_ALARMIN_INFO)
  322. #define CFG_CMD_NETALARMINPUT "NetAlarm" // 网络报警配置(对应 CFG_NETALARMIN_INFO)
  323. #define CFG_CMD_MOTIONDETECT "MotionDetect" // 动态检测报警配置(对应 CFG_MOTION_INFO)
  324. #define CFG_CMD_VIDEOLOST "LossDetect" // 视频丢失报警配置(对应 CFG_VIDEOLOST_INFO)
  325. #define CFG_CMD_VIDEOBLIND "BlindDetect" // 视频遮挡报警配置(对应 CFG_SHELTER_INFO)
  326. #define CFG_CMD_STORAGENOEXIST "StorageNotExist" // 无存储设备报警配置(对应 CFG_STORAGENOEXIST_INFO)
  327. #define CFG_CMD_STORAGEFAILURE "StorageFailure" // 存储设备访问出错报警配置(对应 CFG_STORAGEFAILURE_INFO)
  328. #define CFG_CMD_STORAGELOWSAPCE "StorageLowSpace" // 存储设备空间不足报警配置(对应 CFG_STORAGELOWSAPCE_INFO)
  329. #define CFG_CMD_NETABORT "NetAbort" // 网络断开报警配置(对应 CFG_NETABORT_INFO)
  330. #define CFG_CMD_IPCONFLICT "IPConflict" // IP冲突报警配置(对应 CFG_IPCONFLICT_INFO)
  331. #define CFG_CMD_SNAPCAPINFO "SnapInfo" // 抓图能力查询(对应 CFG_SNAPCAPINFO_INFO)
  332. #define CFG_CMD_NAS "NAS" // 网络存储服务器配置(对应 CFG_NAS_INFO)
  333. #define CFG_CMD_PTZ "Ptz" // 云台配置(对应 CFG_PTZ_INFO)
  334. #define CFG_CMD_PTZ_AUTO_MOVEMENT "PtzAutoMovement" // 云台定时动作配置(对应 CFG_PTZ_AUTOMOVE_INFO)
  335. #define CFG_CMD_WATERMARK "WaterMark" // 视频水印配置(对应 CFG_WATERMARK_INFO)
  336. #define CFG_CMD_ANALYSEGLOBAL "VideoAnalyseGlobal" // 视频分析全局配置(对应 CFG_ANALYSEGLOBAL_EX_INFO), 后续CFG_ANALYSEGLOBAL_INFO不在扩展
  337. #define CFG_CMD_ANALYSEMODULE "VideoAnalyseModule" // 物体的检测模块配置(对应 CFG_ANALYSEMODULES_INFO)
  338. #define CFG_CMD_ANALYSERULE "VideoAnalyseRule" // 视频分析规则配置(对应 CFG_ANALYSERULES_INFO)
  339. #define CFG_CMD_ANALYSESOURCE "VideoAnalyseSource" // 视频分析资源配置(对应 CFG_ANALYSESOURCE_INFO)
  340. #define CFG_CMD_RAINBRUSH "RainBrush" // 雨刷配置(对应 CFG_RAINBRUSH_INFO)
  341. #define CFG_CMD_INTELLECTIVETRAFFIC "TrafficSnapshot" // 智能交通抓拍(CFG_TRAFFICSNAPSHOT_INFO 只为兼容老协议;请使用CFG_CMD_TRAFFICSNAPSHOT_MULTI)
  342. #define CFG_CMD_TRAFFICGLOBAL "TrafficGlobal" // 智能交通全局配置(CFG_TRAFFICGLOBAL_INFO)
  343. #define CFG_CMD_DEV_GENERRAL "General" // 普通配置 (对应 CFG_DEV_DISPOSITION_INFO)
  344. #define CFG_CMD_ATMMOTION "FetchMoneyOverTime" // ATM取款超时配置(对应 CFG_ATMMOTION_INFO)
  345. #define CFG_CMD_DEVICESTATUS "DeviceStatus" // 设备状态信息(对应 CFG_DEVICESTATUS_INFO)
  346. #define CFG_CMD_HARDDISKTANK "HardDiskTank" // 扩展柜信息(对应 CFG_HARDISKTANKGROUP_INFO)
  347. #define CFG_CMD_RAIDGROUP "RaidGroup" // Raid组信息(对应 CFG_RAIDGROUP_INFO)
  348. #define CFG_CMD_STORAGEPOOLGROUP "StoragePoolGroup" // 存储池组信息(对应 CFG_STORAGEPOOLGROUP_INFO)
  349. #define CFG_CMD_STORAGEPOSITIONGROUP "StoragePositionGroup" // 文件系统组信息(对应 CFG_STORAGEPOSITIONGROUP_INFO)
  350. #define CFG_CMD_VIDEOINDEVGROUP "VideoInDevGroup" // 前端设备组信息(对应 CFG_VIDEOINDEVGROUP_INFO)
  351. #define CFG_CMD_DEVRECORDGROUP "DevRecordGroup" // 通道录像组状态(对应 CFG_DEVRECORDGROUP_INFO)
  352. #define CFG_CMD_IPSSERVER "IpsServer" // 服务状态(对应 CFG_IPSERVER_STATUS)
  353. #define CFG_CMD_SNAPSOURCE "SnapSource" // 抓图源配置(对应 CFG_SNAPSOURCE_INFO)
  354. #define CFG_CMD_DHRADER "DahuaRadar" // 雷达配置(透传 json 串)
  355. #define CFG_CMD_DHRADER_PP "DahuaRadar" // 雷达配置(解析为结构体,对应 CFG_DAHUA_RADAR)
  356. #define CFG_CMD_TRANSRADER "TransRadar" // T雷达配置
  357. #define CFG_CMD_LANDUNRADER "LanDunRadar" // L雷达配置
  358. #define CFG_CMD_LANDUNCOILS "LanDunCoils" // 线圈配置
  359. #define CFG_CMD_MATRIX_SPOT "SpotMatrix" // Spot视屏矩阵(对应 CFG_VIDEO_MATRIX)
  360. #define CFG_CMD_HDVR_DSP "DspEncodeCap" // HDVR传每个数字通道的dsp信息 数字通道可以连IPC或DVR 也就是IPC或DVR的能力(对应CFG_DSPENCODECAP_INFO)
  361. #define CFG_CMD_HDVR_ATTR_CFG "SystemAttr" // HDVR传每个数字通道的所连设备的信息
  362. #define CFG_CMD_CHANNEL_HOLIDAY "HolidaySchedule" // 假期录像计划(对应结构体 CFG_HOLIDAY_SCHEDULE数组)
  363. #define CFG_CMD_HEALTH_MAIL "HealthMail" // 健康邮件
  364. #define CFG_CMD_CAMERAMOVE "IntelliMoveDetect" // 摄像机移位侦测联动
  365. #define CFG_CMD_SPLITTOUR "SplitTour" // 视频分割轮巡配置(对应 CFG_VIDEO_MATRIX)
  366. #define CFG_CMD_VIDEOENCODEROI "VideoEncodeROI" // 视频编码ROI(Region of Intrest)配置 CFG_VIDEOENCODEROI_INFO
  367. #define CFG_CMD_VIDEO_INMETERING "VideoInMetering" // 测光配置(对应 CFG_VIDEO_INMETERING_INFO)
  368. #define CFG_CMD_TRAFFIC_FLOWSTAT "TrafficFlowStat" // 交通流量统计配置(对应 CFG_TRAFFIC_FLOWSTAT_INFO)
  369. #define CFG_CMD_HDMIMATRIX "HDMIMatrix" // HDMI视频矩阵配置
  370. #define CFG_CMD_VIDEOINOPTIONS "VideoInOptions" // 视频输入前端选项(对应 CFG_VIDEO_IN_OPTIONS)
  371. #define CFG_CMD_RTSP "RTSP" // RTSP的配置( 对应 CFG_RTSP_INFO_IN和CFG_RTSP_INFO_OUT )
  372. #define CFG_CMD_TRAFFICSNAPSHOT "TrafficSnapshotNew" // 智能交通抓拍(CFG_TRAFFICSNAPSHOT_INFO 废除,请使用 CFG_CMD_TRAFFICSNAPSHOT_MULTI_EX)
  373. #define CFG_CMD_TRAFFICSNAPSHOT_MULTI "TrafficSnapshotNew" // 智能交通抓拍(CFG_TRAFFICSNAPSHOT_NEW_INFO 废除,请使用 CFG_CMD_TRAFFICSNAPSHOT_MULTI_EX)
  374. #define CFG_CMD_TRAFFICSNAPSHOT_MULTI_EX "TrafficSnapshotNew" // 智能交通抓拍(CFG_TRAFFICSNAPSHOT_NEW_EX_INFO)
  375. #define CFG_CMD_MULTICAST "Multicast" // 组播的相关配置(对应 CFG_MULTICASTS_INFO_IN和CFG_MULTICASTS_INFO_OUT)
  376. #define CFG_CMD_VIDEODIAGNOSIS_PROFILE "VideoDiagnosisProfile" // 视频诊断参数表(CFG_VIDEODIAGNOSIS_PROFILE)
  377. #define CFG_CMD_VIDEODIAGNOSIS_TASK "VideoDiagnosisTask" // 视频诊断任务表(CFG_VIDEODIAGNOSIS_TASK)
  378. #define CFG_CMD_VIDEODIAGNOSIS_PROJECT "VideoDiagnosisProject" // 视频诊断计划表(CFG_VIDEODIAGNOSIS_PROJECT)
  379. #define CFG_CMD_VIDEODIAGNOSIS_REALPROJECT "VideoDiagnosisRealProject" // 视频诊断实时计划表(CFG_VIDEODIAGNOSIS_REALPROJECT)
  380. #define CFG_CMD_VIDEODIAGNOSIS_GLOBAL "VideoDiagnosisGlobal" // 视频诊断全局表(CFG_VIDEODIAGNOSIS_GLOBAL)
  381. #define CFG_CMD_VIDEODIAGNOSIS_TASK_ONE "VideoDiagnosisTask.x" // 视频诊断任务表(CFG_VIDEODIAGNOSIS_TASK)
  382. #define CFG_CMD_TRAFFIC_WORKSTATE "WorkState" // 设备工作状态相关配置(对应 CFG_TRAFFIC_WORKSTATE_INFO)
  383. #define CFG_CMD_STORAGEDEVGROUP "StorageDevGroup" // 磁盘存储组配置(对应 CFG_STORAGEGROUP_INFO)
  384. #define CFG_CMD_RECORDTOGROUP "RecordToGroup" // 录像存放的存储组配置(对应 CFG_RECORDTOGROUP_INFO)
  385. #define CFG_CMD_INTELLITRACKSCENE "IntelliTrackScene" // 智能跟踪场景配置(CFG_INTELLITRACKSCENE_INFO)
  386. #define CFG_CMD_IVSFRAM_RULE "IVSFramRule" // 智能帧规则配置(对应 CFG_ANALYSERULES_INFO)
  387. #define CFG_CMD_RECORD_STORAGEPOINT "RecordStoragePoint" // 录像存储点映射配置(对应 CFG_RECORDTOSTORAGEPOINT_INFO)
  388. #define CFG_CMD_RECORD_STORAGEPOINT_EX "RecordStoragePoint" // 录像存储点映射配置扩展 (对应 CFG_RECORDTOSTORAGEPOINT_EX_INFO)
  389. #define CFG_CMD_MD_SERVER "MetaDataServer" // 元数据服务器配置(对应 CFG_METADATA_SERVER结构体)
  390. #define CFG_CMD_CHANNELTITLE "ChannelTitle" // 通道名称(对应 AV_CFG_ChannelName)
  391. #define CFG_CMD_RECORDMODE "RecordMode" // 录像模式(对应 AV_CFG_RecordMode)
  392. #define CFG_CMD_VIDEOOUT "VideoOut" // 视频输出属性(对应 AV_CFG_VideoOutAttr)
  393. #define CFG_CMD_REMOTEDEVICE "RemoteDevice" // 远程设备信息(对应 AV_CFG_RemoteDevice数组, 通道无关)
  394. #define CFG_CMD_REMOTECHANNEL "RemoteChannel" // 远程通道(对应 AV_CFG_RemoteChannel)
  395. #define CFG_CMD_MONITORTOUR "MonitorTour" // 画面轮训配置(对应 AV_CFG_MonitorTour)
  396. #define CFG_CMD_MONITORCOLLECTION "MonitorCollection" // 画面收藏配置(对应 AV_CFG_MonitorCollection)
  397. #define CFG_CMD_DISPLAYSOURCE "DisplaySource" // 画面分割显示源配置(对应 AV_CFG_ChannelDisplaySource)(废除,不建议使用)
  398. #define CFG_CMD_RAID "Raid" // 存储卷组配置(对应 AV_CFG_Raid数组, 通道无关)
  399. #define CFG_CMD_RECORDSOURCE "RecordSource" // 录像源配置(对应 AV_CFG_RecordSource)
  400. #define CFG_CMD_VIDEOCOLOR "VideoColor" // 视频输入颜色配置(对应 AV_CFG_ChannelVideoColor)
  401. #define CFG_CMD_VIDEOWIDGET "VideoWidget" // 视频编码物件配置(对应 AV_CFG_VideoWidget)
  402. #define CFG_CMD_STORAGEGROUP "StorageGroup" // 存储组信息(对应 AV_CFG_StorageGroup数组, 通道无关)
  403. #define CFG_CMD_LOCALS "Locales" // 区域配置(对应 AV_CFG_Locales)
  404. #define CFG_CMD_LANGUAGE "Language" // 语言选择(对应 AV_CFG_Language)
  405. #define CFG_CMD_ACCESSFILTER "AccessFilter" // 访问地址过滤(对应 AV_CFG_AccessFilter)
  406. #define CFG_CMD_AUTOMAINTAIN "AutoMaintain" // 自动维护(对应 AV_CFG_AutoMaintain)
  407. #define CFG_CMD_REMOTEEVENT "RemoteEvent" // 远程设备事件处理(对应 AV_CFG_RemoteEvent数组)
  408. #define CFG_CMD_MONITORWALL "MonitorWall" // 电视墙配置(对应 AV_CFG_MonitorWall数组, 通道无关)
  409. #define CFG_CMD_SPLICESCREEN "VideoOutputComposite" // 融合屏配置(对应 AV_CFG_SpliceScreen数组, 通道无关)
  410. #define CFG_CMD_TEMPERATUREALARM "TemperatureAlarm" // 温度报警配置(对应 AV_CFG_TemperatureAlarm, 通道无关)
  411. #define CFG_CMD_FANSPEEDALARM "FanSpeedAlarm" // 风扇转速报警配置(对应 AV_CFG_FanSpeedAlarm, 通道无关)
  412. #define CFG_CMD_RECORDBACKUP "RecordBackupRestore" // 录像回传配置(对应 AV_CFG_RecordBackup, 通道无关)
  413. #define CFG_CMD_RECORDDOWNLOADSPEED "RecordDownloadSpeed" // 录像下载速度配置(对应CFG_RecordDownloadSpeed)
  414. #define CFG_CMD_COMM "Comm" // 串口配置(对应 CFG_COMMGROUP_INFO)
  415. #define CFG_CMD_NETWORK "Network" // 网络配置(对应 CFG_NETWORK_INFO)
  416. #define CFG_CMD_NASEX "NAS" // 网络存储服务器配置, 多服务器(对应 CFG_NAS_INFO_EX)
  417. #define CFG_CMD_LDAP "LDAP" // LDAP配置
  418. #define CFG_CMD_ACTIVE_DIR "ActiveDirectory" // 活动目录配置
  419. #define CFG_CMD_FLASH "FlashLight" // 补光灯配置(对应 CFG_FLASH_LIGHT)
  420. #define CFG_CMD_AUDIO_ANALYSERULE "AudioAnalyseRule" // 音频分析规则配置(对应 CFG_ANALYSERULES_INFO)
  421. #define CFG_CMD_JUDICATURE "Judicature" // 刻录配置(对应 CFG_JUDICATURE_INFO)
  422. #define CFG_CMD_GOODS_WEIGHT "CQDTSet" // 车载货重配置(对应 CFG_GOOD_WEIGHT_INFO)
  423. #define CFG_CMD_VIDEOIN "VideoIn" // 输入通道配置(对应 CFG_VIDEO_IN_INFO)
  424. #define CFG_CMD_ENCODEPLAN "EncodePlan" // 刻录光盘编码计划(对应 CFG_ENCODE_PLAN_INFO)
  425. #define CFG_CMD_PICINPIC "PicInPic" // 审讯画中画(对应 CFG_PICINPIC_INFO)改为数组方式,兼容以前单个配置,根据长度区分
  426. #define CFG_CMD_BURNFULL "BurnFull" // 刻录满事件配置(对应 CFG_BURNFULL_INFO)
  427. #define CFG_CMD_MASTERSLAVE_GLOBAL "MasterSlaveTrackerGlobal" // 主从式全局配置(对应 CFG_MASTERSLAVE_GLOBAL_INFO)
  428. #define CFG_CMD_MASTERSLAVE_LINKAGE "MasterSlaveGlobal" // 枪球联动全局配置(对应 CFG_MASTERSLAVE_LINKAGE_INFO)
  429. #define CFG_CMD_MASTERSLAVE_GROUP "MasterSlaveGroup" // 枪球联动绑定关系配置(对应 CFG_MASTERSLAVE_GROUP_INFO)
  430. #define CFG_CMD_ANALYSEWHOLE "VideoAnalyseWhole" // 视频分析整体配置(对应 CFG_ANALYSEWHOLE_INFO)
  431. #define CFG_CMD_VIDEO_IN_BOUNDARY "VideoInBoundary" // 视频输入边界配置(对应 CFG_VIDEO_IN_BOUNDARY)
  432. #define CFG_CMD_MONITORWALL_COLLECTION "MonitorWallCollection" // 电视墙预案(对应 CFG_MONITORWALL_COLLECTION数组)
  433. #define CFG_CMD_ANALOGMATRIX "AnalogMatrix" // 模拟矩阵(对应 CFG_ANALOG_MATRIX_INFO)
  434. #define CFG_CMD_ANALOG_MATRIX_PROTOCOL "AnalogMatrixProtocol" // 模拟矩阵协议配置(对应 CFG_ANALOG_MATRIX_PROTOCOL数组)
  435. #define CFG_CMD_VIDEO_OUT_TITLE "VideoOutputTitle" // 视频输出标题(对应 CFG_VIDEO_OUT_TITLE)
  436. #define CFG_CMD_DISK_FLUX_ALARM "DiskFluxAlarm" // 硬盘数据流量报警配置(对应 CFG_DISK_FLUX_INFO)
  437. #define CFG_CMD_NET_FLUX_ALARM "NetFluxAlarm" // 网络数据流量报警配置(对应 CFG_NET_FLUX_INFO)
  438. #define CFG_CMD_DVRIP "DVRIP" // 网络协议配置(对应 CFG_DVRIP_INFO)
  439. #define CFG_CMD_PARKINGSPACE_SCREEN "ParkingSpaceScreen" // 和相机对接的区域屏配置(对应 CFG_PARKINGSPACE_SCREEN_INFO ,是数组,元素最大值是DH_PRODUCTION_DEFNITION.nMaxParkingSpaceScreen)
  440. #define CFG_CMD_PARKINGSPACE_STATUS "ParkingSpaceCellStatus" // 车位设置(专有车位和普通车位设置)(对应 CFG_PARKINGSPACE_STATUS_INFO ,是数组,元素最大值是DH_PRODUCTION_DEFNITION.nMaxRoadWays)
  441. #define CFG_CMD_CLIENT_CUSTOM_DATA "ClientCustomData" // 平台自定义信息(对应 CFG_CLIENT_CUSTOM_INFO)
  442. #define CFG_CMD_BURN_RECORD_FORMAT "BurnRecordFormat" // 刻录格式配置(对应 CFG_BURN_RECORD_FORMAT)
  443. #define CFG_CMD_MULTIBURN "MultiBurn" // 多光盘同步刻录(对应 CFG_MULTIBURN_INFO)是一个数组,每一个元素表示一组多光盘同步刻录及校验
  444. #define CFG_CMD_ENCODE_ENCRYPT "EncodeEncrypt" // 编码加密配置信息( CFG_ENCODE_ENCRYPT_CHN_INFO )
  445. #define CFG_CMD_VIDEO_IN_ZOOM "VideoInZoom" // 云台通道变倍配置(对应 CFG_VIDEO_IN_ZOOM)
  446. #define CFG_CMD_SNAP "Snap" // 抓图配置(对应 CFG_SNAP_INFO)
  447. #define CFG_CMD_REMOTE_STORAGE_LIMIT "RemoteStorageLimit" // 网络存储服务器限制配置(对应 CFG_REMOTE_STORAGELIMIT_GROUP)
  448. #define CFG_CMD_SPECIAL_DIR "SpecialDirectoryDefine" // 特殊用途目录定义(对应 CFG_SPECIAL_DIR_INFO)
  449. #define CFG_CMD_AUTO_STARTUP_DELAY "AutoStartupDelay" // 关机后延时自动开机配置(对应 CFG_AUTO_STARTUP_DELAY_INFO)
  450. #define CFG_CMD_CANFILTER "CANFilter" // CAN透传配置(对应 CFG_CANFILTER_LIST)
  451. #define CFG_CMD_VIDEOIN_FOCUS "VideoInFocus" // 聚焦设置(对应 CFG_VIDEO_IN_FOCUS)
  452. #define CFG_CMD_ENCODE_ADAPT "EncodeAdapt" // 编码自适应配置(对应 CFG_ENCODE_ADAPT_INFO)
  453. #define CFG_CMD_VIDEOANALYSE_CALIBRATE "VideoAnalyseCalibrate" // 视频分析标定配置(对应 CFG_VIDEO_ANALYSE_CALIBRATEAREA)
  454. #define CFG_CMD_PTZ_PRESET "PtzPreset" // 云台预置点配置(对应结构 PTZ_PRESET_INFO)
  455. #define CFG_CMD_TIMESPEEDLIMIT "TimeSpeedLimit" // 时间段限速值配置(对应结构体 CFG_TIMESPEEDLIMIT_LIST)
  456. #define CFG_CMD_VOICEALERT "VoiceAlert" // 语音提示配置(对应结构体 CFG_VOICEALERT_LIST)
  457. #define CFG_CMD_DEVICEKEEPALIVE "DeviceKeepAlive" // 设备保活配置(对应结构体 CFG_DEVICEKEEPALIVELIST)
  458. #define CFG_CMD_AUDIO_SPIRIT "AudioSpirit" // 语音激励(对应 CFG_AUDIO_SPIRIT)
  459. #define CFG_CMD_AUDIO_MATRIX_SILENCE "AudioMatrixSilence" // 静音矩阵配置(对应 CFG_AUDIO_MATRIX_SILENCE)
  460. #define CFG_CMD_AUDIO_MATRIX "AudioMatrixConfig" // 音频矩阵配置(对应 CFG_AUDIO_MATRIX)
  461. #define CFG_CMD_COMPOSE_CHANNEL "ComposeChannel" // 合成通道配置(对应 CFG_COMPOSE_CHANNEL)
  462. #define CFG_CMD_COMPOSE_LINKAGE "ComposeLinkage" // 合成通道配置 庭审主机使用,证物切换功能(对应 CFG_COMPOSE_CHANNEL)
  463. #define CFG_CMD_LOWER_MATRIX "LowerMatrix" // 下位矩阵配置(对应 CFG_LOWER_MATRIX_LIST)
  464. #define CFG_CMD_INFRARED_BOARD_TEMPLATE "InfraredBoardTemplate" // 红外面板模板(对应 CFG_INFRARED_BOARD_TEMPLATE_GROUP)
  465. #define CFG_CMD_INFRARED_BOARD "InfraredBoard" // 红外面板模板(对应 CFG_INFRARED_BOARD_GROUP)
  466. #define CFG_CMD_VIDEOIN_EXPOSURE "VideoInExposure" // 曝光设置(对应 CFG_VIDEOIN_EXPOSURE_INFO)
  467. #define CFG_CMD_VIDEOIN_BACKLIGHT "VideoInBacklight" // 光线环境配置(对应CFG_VIDEOIN_BACKLIGHT_INFO)
  468. #define CFG_CMD_ACCESS_GENERAL "AccessControlGeneral" // 门禁基本配置(对应 CFG_ACCESS_GENERAL_INFO)
  469. #define CFG_CMD_ACCESS_EVENT "AccessControl" // 门禁事件配置(对应 CFG_ACCESS_EVENT_INFO 数组)
  470. #define CFG_CMD_WIRELESS "Wireless" // 无线网络连接设置(对应 CFG_WIRELESS_INFO)
  471. #define CFG_CMD_ALARMSERVER "AlarmServer" // 报警服务器配置(对应 CFG_ALARMCENTER_INFO)
  472. #define CFG_CMD_COMMGLOBAL "CommGlobal" // 报警全局配置(对应 CFG_COMMGLOBAL_INFO)
  473. #define CFG_CMD_ANALOGALARM "AnalogAlarm" // 模拟量报警通道配置(对应 CFG_ANALOGALARM_INFO)
  474. #define CFG_CMD_ALARMOUT "AlarmOut" // 报警输出通道配置(对应 CFG_ALARMOUT_INFO)
  475. #define CFG_CMD_NTP "NTP" // 时间同步服务器(对应 CFG_NTP_INFO)
  476. #define CFG_CMD_ALARMBELL "AlarmBell" // 警号配置(对应 CFG_ALARMBELL_INFO)
  477. #define CFG_CMD_MOBILE "Mobile" // 移动相关业务配置(对应 CFG_MOBILE_INFO)
  478. #define CFG_CMD_PHONEEVENTNOTIFY "PhoneEventNotify" // (对应 CFG_PHONEEVENTNOTIFY_INFO)
  479. #define CFG_CMD_PSTN_ALARM_SERVER "PSTNAlarmServer" // 电话报警中心配置(CFG_PSTN_ALARM_CENTER_INFO)
  480. #define CFG_CMD_AUDIO_OUTPUT_VOLUME "AudioOutputVolume" // 音频输出音量(CFG_AUDIO_OUTPUT_VOLUME)
  481. #define CFG_CMD_AUDIO_INPUT_VOLUME "AudioInputVolume" // 音频输入音量(CFG_AUDIO_INPUT_VOLUME)
  482. #define CFG_CMD_LIGHT_GLOBAL "LightGlobal" // 指示灯控制配置 (CFG_LIGHT_GLOBAL)
  483. #define CFG_CMD_AUDIO_MIX_VOLUME "AudioMixVolume" // 混合音频音量,用于庭审主机(CFG_AUDIO_MIX_VOLUME)
  484. #define CFG_CMD_ALARMKEYBOARD "AlarmKeyboard" // 报警键盘配置(CFG_ALARMKEYBOARD_INFO)
  485. #define CFG_CMD_POWERFAULT "PowerFault" // 电源故障配置(CFG_POWERFAULT_INFO)
  486. #define CFG_CMD_CHASSISINTRUSION "ChassisIntrusion" // 机箱入侵报警(防拆报警)配置(CFG_CHASSISINTRUSION_INFO)
  487. #define CFG_CMD_EXALARMBOX "ExAlarmBox" // 扩展报警盒配置 (CFG_EXALARMBOX_INFO)
  488. #define CFG_CMD_EXALARMOUTPUT "ExAlarmOut" // 扩展报警输出配置(CFG_EXALARMOUTPUT_INFO)
  489. #define CFG_CMD_EXALARMINPUT "ExAlarm" // 扩展报警输入配置(CFG_EXALARMINPUT_INFO)
  490. #define CFG_CMD_ACCESSTIMESCHEDULE "AccessTimeSchedule" // 门禁刷卡时间段(CFG_ACCESS_TIMESCHEDULE_INFO)
  491. #define CFG_CMD_URGENCY "Emergency" // 紧急事件配置(CFG_URGENCY_INFO)
  492. #define CFG_CMD_SENSORSAMPLING "SensorSampling" // 传感器采样(CFG_SENSORSAMPLING_INFO)
  493. #define CFG_CMD_STP "STP" // 环网配置(CFG_STP_INFO)
  494. #define CFG_CMD_ALARM_SUBSYSTEM "AlarmSubSystem" // 报警子系统配置(CFG_ALARM_SUBSYSTEM_INFO)
  495. #define CFG_CMD_BATTERY_LOW_POWER "BatteryLowPowerAlarm" // 电池电量低配置(CFG_BATTERY_LOW_POWER_INFO)
  496. #define CFG_CMD_SNAPLIKAGE "SnapLinkage" // 抓图通道联动外设配置(CFG_SNAPLINKAGE_INFO)
  497. #define CFG_CMD_AUDIOINPUT "AudioInput" // 音频输入配置(CFG_AUDIO_INPUT)
  498. #define CFG_CMD_EMAIL "Email" // 邮件发送配置(CFG_EMAIL_INFO)
  499. #define CFG_CMD_TRAFFIC_TRANSFER_OFFLINE "TrafficTransferOffline" // 传输离线文件配置(TRAFFIC_TRANSFER_OFFLINE_INFO)
  500. #define CFG_CMD_COMMSUBSCRIBE "CommSubscribe" // 订阅串口数据配置(CFG_DEVCOMM_SUBSCRIBE)
  501. #define CFG_CMD_PARKINGSPACE_LIGHT_STATE "ParkingSpaceLightState" // 车位状态对应的车位指示灯(CFG_PARKINGSPACE_LIGHT_STATE)
  502. #define CFG_CMD_AIRCONDITION "AirCondition" // 空调设备配置(CFG_AIRCONDITION_INFO)
  503. #define CFG_CMD_COMPRESS_PLAY "CompressPlay" // 压缩回放配置(CFG_COMPRESS_PLAY_INFO)
  504. #define CFG_CMD_BUILDING "Building" // VTO楼层配置(CFG_BUILDING_INFO)
  505. #define CFG_CMD_BUILDING_EXTERNAL "BuildingExternal" // VTO楼层扩展配置(CFG_BUILDING_EXTERNAL_INFO)
  506. #define CFG_CMD_DIALRULE "DialRule" // 拨号规则(CFG_DIALRULE_INFO)
  507. #define CFG_CMD_OIL_MASS_INFO "OilMassInfo" // 车辆油箱配置(CFG_OIL_MASS_INFO)
  508. #define CFG_CMD_FISHEYE_INFO "FishEye" // 鱼眼详细信息配置(CFG_FISHEYE_DETAIL_INFO)
  509. #define CFG_CMD_VTNOANSWER_FORWARD "VTNoAnswerForward" // 平台下发呼叫无应答转移配置列表(CFG_VT_NOANSWER_FORWARD_INFO)
  510. #define CFG_CMD_VTO_CALL "VTOCall" // VTO呼叫配置(CFG_VTO_CALL_INFO)
  511. #define CFG_CMD_MACCONFLICT "MacConflict" // MAC冲突报警配置(CFG_MACCONFLICT_INFO)
  512. #define CFG_CMD_IDLEMOTION_INFO "IdleMotion" // 空闲动作配置(CFG_IDLE_MOTION_INFO)
  513. #define CFG_CMD_MONITORWALL_COLL_TOUR "MonitorWallCollectionTour" // 电视墙预案轮巡配置(CFG_MONITORWALL_COLLECTION_TOUR_INFO)
  514. #define CFG_CMD_PSTN_BREAK_LINE "PSTNBreakLine" // PSTN断线事件配置(CFG_PSTN_BREAK_LINE_INFO)
  515. #define CFG_CMD_NET_COLLECTION "NetCollection" // 网络采集设备配置(CFG_NET_COLLECTION_INFO)
  516. #define CFG_CMD_ALARM_SLOT_BOND "AlarmSlotBond" // 虚拟Slot节点与具体物理设备的对应关系(CFG_ALARM_SLOT_BOND_INFO)
  517. #define CFG_CMD_TRAFFICSTROBE "TrafficStrobe" // 道闸配置(CFG_TRAFFICSTROBE_INFO)
  518. #define CFG_CMD_TRAFFICVOICE "TrafficVoiceBroadcast" // 智能交通语音播报配置( CFG_TRAFFICVOICE_BROADCAST)
  519. #define CFG_CMD_STANDING_TIME "StandingTime" // 停车时间配置(CFG_STANDING_TIME_INFO)
  520. #define CFG_CMD_ENCLOSURE_TIME_SCHEDULE "EnclosureTimeSchedule" // 电子围栏报警时间段配置(CFG_ENCLOSURE_TIME_SCHEDULE_INFO)
  521. #define CFG_CMD_ECKCONFIG "ECKConfig" // 停车场出入口控制器配置(CFG_ECKCONFIG_INFO)
  522. #define CFG_CMD_PARKING_CARD "ParkingCard" // 停车场出入口刷卡报警事件配置(CFG_PARKING_CARD_INFO)
  523. #define CFG_CMD_RCEMERGENCY_CALL "RCEmergencyCall" // 紧急呼叫报警事件配置(CFG_RCEMERGENCY_CALL_INFO)
  524. #define CFG_CMD_LANES_STATE_REPORT "LanesStateReport" // 车道信息上报配置(CFG_LANES_STATE_REPORT)
  525. #define CFG_CMD_OPEN_DOOR_GROUP "OpenDoorGroup" // 多人多开门方式组合配置(CFG_OPEN_DOOR_GROUP_INFO)
  526. #define CFG_CMD_OPEN_DOOR_ROUTE "OpenDoorRoute" // 开门路线集合,或称防反潜路线配置(CFG_OPEN_DOOR_ROUTE_INFO)
  527. #define CFG_CMD_BURNPLAN "BurnPlan" // 刻录计划配置(对应 CFG_BURNPLAN_INFO)
  528. #define CFG_CMD_SCADA_DEV "SCADADev" // 检测采集设备配置(CFG_SCADA_DEV_INFO)
  529. #define CFG_CMD_VSP_GAYS "VSP_GAYS" // 平台接入配置(CFG_VSP_GAYS_INFO)
  530. #define CFG_CMD_AUDIODETECT "AudioDetect" // 音频检测报警配置(CFG_AUDIO_DETECT_INFO数组)
  531. #define CFG_CMD_GUIDESCREEN "GuideScreen" // 诱导屏系统配置(CFG_GUIDESCREEN_INFO)
  532. #define CFG_CMD_VTS_CALL_INFO "VTSCallInfo" // VTS呼叫配置(CFG_VTS_CALL_INFO)
  533. #define CFG_CMD_DEV_LIST "DevList" // 设备列表配置(CFG_DEV_LIST_INFO)
  534. #define CFG_CMD_CALIBRATE_MATRIX "CalibrateMatrix" // 主从式跟踪器标定矩阵配置(CFG_CALIBRATE_MATRIX_INFO, 新配置对应CFG_CALIBRATE_MATRIX_EX_INFO)
  535. #define CFG_CMD_DEFENCE_AREA_DELAY "DefenceAreaDelay" // 防区延时配置(CFG_DEFENCE_AREA_DELAY_INFO)
  536. #define CFG_CMD_THERMO_GRAPHY "ThermographyOptions" // 热成像摄像头属性配置(CFG_THERMOGRAPHY_INFO)
  537. #define CFG_CMD_THERMOMETRY_RULE "ThermometryRule" // 热成像测温规则配置(CFG_RADIOMETRY_RULE_INFO)
  538. #define CFG_CMD_TEMP_STATISTICS "TemperatureStatistics" // 温度统计配置(CFG_TEMP_STATISTICS_INFO)
  539. #define CFG_CMD_THERMOMETRY "HeatImagingThermometry" // 热成像测温全局配置(CFG_THERMOMETRY_INFO)(通道无关,通道号传-1)
  540. #define CFG_CMD_FLAT_FIELD_CORRECTION "FlatFieldCorrection" // 热成像平场聚焦校准配置(CFG_FLAT_FIELD_CORRECTION_INFO)
  541. #define CFG_CMD_THERMO_FUSION "ThermographyFusion" // 热成像视频融合配置(CFG_THERMO_FUSION_INFO)
  542. #define CFG_CMD_LCE_STATE "LCEState" // 热成像自研机芯中摄像头属性的局部对比度增强配置(CFG_LCE_STATE_INFO)
  543. #define CFG_CMD_LIGHTING "Lighting" // 灯光设置(CFG_LIGHTING_INFO)
  544. #define CFG_CMD_RAINBRUSHMODE "RainBrushMode" // 雨刷模式相关配置(对应 CFG_RAINBRUSHMODE_INFO数组)
  545. #define CFG_CMD_LIGHTINGSCHEDULE "LightingSchedule" // 灯光计划配置(对应 CFG_LIGHTINGSCHEDULE_INFO)
  546. #define CFG_CMD_EMERGENCY_RECORD_FOR_PULL "EmergencyRecordForPull" // 紧急录像存储配置,用于客户端主动拉的方式。在客户端拉流存储异常之后,进行紧急录像存储(CFG_EMERGENCY_RECORD_FOR_PULL_INFO)
  547. #define CFG_CMD_ALARM_SHIELD_RULE "AlarmShieldRule" // 告警屏蔽规则( CFG_ALARM_SHIELD_RULE_INFO)
  548. #define CFG_CMD_VIDEOIN_ANALYSERULE "VideoInAnalyseRule" // 视频通道智能规则配置(CFG_VIDEOIN_ANALYSE_RULE_INFO)
  549. #define CFG_CMD_ACCESS_WORK_MODE "AccessWorkMode" // 门锁工作模式(对应 CFG_ACCESS_WORK_MODE_INFO 数组)
  550. #define CFG_CMD_VIDEO_TALK_PHONE_GENERAL "VideoTalkPhoneGeneral" // 视频对讲电话通用配置(CFG_VIDEO_TALK_PHONE_GENERAL)
  551. #define CFG_CMD_TRAFFIC_SNAP_MOSAIC "TrafficSnapMosaic" // 抓图合成配置(对应 CFG_TRAFFIC_SNAP_MOSAIC_INFO)
  552. #define CFG_CMD_SCENE_SNAP_RULE "SceneSnapShotWithRule" // 场景抓拍设置(对应 CFG_SCENE_SNAPSHOT_RULE_INFO)
  553. #define CFG_CMD_PTZTOUR "PtzTour" // 云台巡航路径配置(对应 CFG_PTZTOUR_INFO)
  554. #define CFG_CMD_VTO_INFO "VTOInfo" // 门口机配置(对应 CFG_VTO_LIST)
  555. #define CFG_CMD_TS_POINT "TSPoint" // 触摸屏校准配置(对应 CFG_TSPOINT_INFO)
  556. #define CFG_CMD_VTH_NUMBER_INFO "VTHNumberInfo" // 室内机号码信息(对应 CFG_VTH_NUMBER_INFO)
  557. #define CFG_CMD_GPS "GPS" // GPS配置(对应 CFG_GPS_INFO_ALL)
  558. #define CFG_CMD_VTO_BASIC_INFO "VTOBasicInfo" // VTO基本信息 (对应 CFG_VTO_BASIC_INFO)
  559. #define CFG_CMD_SHORTCUT_CALL "ShortcutCall" // 快捷号配置 (对应 CFG_SHORTCUT_CALL_INFO)
  560. #define CFG_CMD_GPS_LOCATION_VER "GPSLocationVersion" // 记录集GPSLocation的版本号(对应 CFG_LOCATION_VER_INFO)
  561. #define CFG_CMD_PARKING_SPACE_ACCESS_FILTER "ParkingSpaceAccessFilter" // 设备可访问地址过滤配置(对应 CFG_PARKING_SPACE_ACCESS_FILTER_INFO)
  562. #define CFG_CMD_WORK_TIME "WorkTime" // 工作时间配置(对应 CFG_WORK_TIME_INFO)
  563. #define CFG_CMD_PARKING_SPACE_LIGHT_GROUP "ParkingSpaceLightGroup" // 车位指示灯本机配置(对应 CFG_PARKING_SPACE_LIGHT_GROUP_INFO_ALL)
  564. #define CFG_CMD_CUSTOM_AUDIO "CustomAudio" // 自定义音频配置(CFG_CUSTOM_AUDIO)
  565. #define CFG_CMD_WIFI_SEARCH "AroudWifiSearch" // 设备通过wifi模块扫描周围无线设备配置(对应 CFG_WIFI_SEARCH_INFO)
  566. #define CFG_CMD_G3G4AUTOCHANGE "G3G4AutoChange" // 车载设备通信模块3G 4G自动切换(CFG_G3G4AUTOCHANGE)
  567. #define CFG_CMD_CHECKCODE "CheckCode" // 刷卡机校验码校验配置(对应 CFG_CHECKCODE_INFO)
  568. #define CFG_CMD_VSP_SCYDKD "VSP_SCYDKD" // 平台接入配置(对应 CFG_VSP_SCYDKD_INFO)
  569. #define CFG_CMD_VIDEOIN_DAYNIGHT "VideoInDayNight" // 球机机芯日夜配置(对应 CFG_VIDEOIN_DAYNIGHT_INFO)
  570. #define CFG_CMD_PTZ_POWERUP "PowerUp" // 云台开机动作设置(对应 CFG_PTZ_POWERUP_INFO)
  571. #define CFG_CMD_AUDIO_MIX_CHANNEL "AudioMixChannel" // 配置定义每个纯音频通道的组成(对应 CFG_AUDIO_MIX_CHANNEL_INFO_ALL)
  572. #define CFG_CMD_AUDIO_TOUCH "AudioTouch" // 变音,对音调进行变化(对应 CFG_AUDIO_TOUCH_INFO_ALL)
  573. #define CFG_CMD_VIDEO_MOSAIC "VideoMosaic" // 马赛克叠加配置(对应CFG_VIDEO_MOSAIC_INFO)
  574. #define CFG_CMD_VTH_REMOTE_IPC_INFO "VTHRemoteIPCInfo" // VTH中远程IPC配置(对应 CFG_VTH_REMOTE_IPC_INFO),该配置是全局的,不区分通道
  575. #define CFG_CMD_UNFOCUSDETECT "UnFocusDetect" // 虚焦检测配置(对应CFG_UNFOCUSDETECT_INFO)
  576. #define CFG_CMD_MOVE_DETECT "MovedDetect" // 场景变更检测配置(对应CFG_MOVE_DETECT_INFO)
  577. #define CFG_CMD_FLOODLIGHT "Floodlight" // 防护舱照明灯控制配置(对应 CFG_FLOODLIGHT_CONTROLMODE_INFO)
  578. #define CFG_CMD_AIRFAN "AirFan" // 防护舱风扇控制配置(对应 CFG_AIRFAN_CONTROLMODE_INFO)
  579. #define CFG_CMD_WLAN "WLan" // WLAN配置(对应 CFG_NETAPP_WLAN)
  580. #define CFG_CMD_SMART_ENCODE "SmartEncode" // Smart H264编码方式(对应 CFG_SMART_ENCODE_INFO)
  581. #define CFG_CMD_VEHICLE_HIGH_SPEED "HighSpeed" // 车载高速报警配置(对应 CFG_VEHICLE_HIGHSPEED_INFO )
  582. #define CFG_CMD_VEHICLE_LOW_SPEED "LowSpeed" // 车载低速报警配置(对应 CFG_VEHICLE_LOWSPEED_INFO )
  583. #define CFG_CMD_PSTN_PERSON_SERVER "PSTNPersonServer" // 个人电话接机配置(对应 CFG_PSTN_PERSON_SERVER_INFO_ALL )
  584. #define CFG_CMD_ARM_LINK "ArmLink" // 布撤防联动配置(对应 CFG_ARMLINK_INFO )
  585. #define CFG_CMD_CABINLED_TIME_SCHEDULE "CabinLedTimeSchedule" // 防护舱Led显示计划配置(对应 CFG_CABINLED_TIME_SCHEDULE)
  586. #define CFG_CMD_PSTN_TESTPLAN "PSTNTestPlan" // PSTN 测试计划配置(对应 CFG_PSTN_TESTPLAN_INFO)
  587. #define CFG_CMD_DEFENCE_ARMMODE "DefenceArmMode" // 单防区布撤防使能配置(对应 CFG_DEFENCE_ARMMODE_INFO)
  588. #define CFG_CMD_SENSORMODE "SensorMode" // 探测器安装工作模式配置(对应 CFG_SENSORMODE_INFO)
  589. #define CFG_CMD_ALARMLAMP "AlarmLamp" // 警灯配置(对应 CFG_ALARMLAMP_INFO)
  590. #define CFG_CMD_RADAR_SPEED_MEASURE "RadarSpeedMeasure" // 雷达测速配置 智能楼宇专用(对应 CFG_RADAR_SPEED_MEASURE_INFO)
  591. #define CFG_CMD_VIDEOINDEFOG "VideoInDefog" // 透雾设置配置(对应结构体 CFG_VIDEOINDEFOG_LIST)
  592. #define CFG_CMD_RTMP "RTMP" // RTMP配置(对应结构体 CFG_RTMP_INFO)
  593. #define CFG_CMD_AUDIO_OUT_EQUALIZER "AudioOutEqualizer" // 音频输出均衡器配置(对应结构体CFG_AUDIO_OUTEQUALIZER_INFO)
  594. #define CFG_CMD_AUDIO_OUT_SUPPRESSION "AudioOutSuppression" // 音频抑制设置(对应结构体CFG_AUDIO_SUPPRESSION_INFO)
  595. #define CFG_CMD_AUDIO_IN_CONTROL "AudioInControl" // 音频输入控制(对应结构体CFG_AUDIO_INCONTROL_INFO)
  596. #define CFG_CMD_LASER_DIST_MEASURE "LaserDistMeasure" // 激光测距器配置(对应结构体 CFG_LASER_DIST_MEASURE_INFO)
  597. #define CFG_CMD_OIL_4G_OVERFLOW "Oil4GFlow" // 4G流量阈值及模式配置(对应结构体 CFG_OIL_4G_OVERFLOW_INFO)
  598. #define CFG_CMD_OIL_VIDEOWIDGET_4G_FLOW "VideoWidget4GFlow" // 4G流量OSD叠加配置(对应结构体 CFG_OIL_VIDEOWIDGET_4G_FLOW_INFO)
  599. #define CFG_CMD_ATMOSPHERE_OSD "AtmosphereOSD" // 气象信息叠加配置(对应结构体 CFG_CMD_ATMOSPHERE_OSD_INFO)
  600. #define CFG_CMD_PARK_SPACE_OUT_LIGHT "ParkSpaceOutLight" // 外接指示灯配置(对应结构体 CFG_PARK_SPACE_OUT_LIGHT_INFO)
  601. #define CFD_CMD_VTO_CALL_INFO_EXTEND "VTOCallInfo" // VTO呼叫配置扩展(对应结构体CFG_VTO_CALL_INFO_EXTEND)
  602. #define CFG_CMD_ACCESS_TEXTDISPLAY "AccessControlTextDisplay" // 门禁文字提示显示配置(对应结构体 CFG_ACCESS_TEXTDISPLAY_INFO)
  603. #define CFG_CMD_NETNVR_ENCRYPT "NvrEncrypt" // 加密配置信息,涉及IPC和NVR( CFG_NETNVR_ENCRYPT_INFO )
  604. #define CFG_CMD_LIGHT "Light" // 灯光设备配置 (对应结构体 CFG_LIGHT_INFO)
  605. #define CFG_CMD_CURTAIN "Curtain" // 窗帘配置(对应结构体 CFG_CURTAIN_INFO)
  606. #define CFG_CMD_FRESH_AIR "FreshAir" // 新风配置(对应结构体 CFG_FRESH_AIR_INFO)
  607. #define CFG_CMD_GROUND_HEAT "GroundHeat" // 地暖配置(对应结构体 CFG_GROUND_HEAT_INFO)
  608. #define CFG_CMD_SCENE_MODE "SceneMode" // 情景模式(对应结构体 CFG_SCENE_MODE_INFO)
  609. #define CFG_CMD_AIO_APP_CONFIG "AIOAppConfig" // AIOAppConfig参数设置(对应结构体 CFG_AIO_APP_CONFIG_INFO)
  610. #define CFG_CMD_HTTPS "Https" // Https服务配置(对应结构体 CFG_HTTPS_INFO)
  611. #define CFG_CMD_NETAUTOADAPTORENCODE "NetAutoAdaptEncode" // 网络自适应编码配置(对应结构体 CFG_NET_AUTO_ADAPT_ENCODE)
  612. #define CFG_CMD_USERLOCKALARM "UserLockAlarm" // 登陆锁定配置(对应结构体 CFG_USERLOCKALARM_INFO)
  613. #define CFG_CMD_STROBOSCOPIC_LAMP "StroboscopicLamp" // 频闪灯配置(对应结构体 CFG_STROBOSCOPIC_LAMP_INFO)
  614. #define CFG_CMD_FREECOMBINATION "FreeCombination" // 自由分割模式的窗口配置 CFG_FREECOMBINATION_INFO )
  615. #define CFG_CMD_IOT_INFRARED_DETECT "IOT_InfraredDetect" // 物联网红外检测配置(对应结构体CFG_IOT_INFRARED_DETECT_INFO)
  616. #define CFG_CMD_IOT_RECORD_HANDLE "IOT_RecordHandle" // 物联网录像联动配置(对应结构体CFG_IOT_RECORD_HANDLE_INFO)
  617. #define CFG_CMD_IOT_SNAP_HANDLE "IOT_SnapHandle" // 物联网抓图联动配置(对应结构体CFG_IOT_SNAP_HANDLE_INFO)
  618. #define CFG_CMD_PLATFORM_MONITOR_IPC "PlatformMonitorIPC" // 平台侧预览IPC配置 CFG_PLATFORMMONITORIPC_INFO )
  619. #define CFG_CMD_CALLFORWARD "CallForward" // 呼叫转移配置(对应结构体 CFG_CALLFORWARD_INFO)
  620. #define CFD_CMD_DOORBELLSOUND "DoorBellSound" // 门铃配置(对应结构体CFG_DOOR_BELLSOUND_INFO)
  621. #define CFG_CMD_TELNET "Telnet" // telnet配置(对应结构体CFG_TELNET_INFO)
  622. #define CFG_CMD_OSDSYSABNORMAL "OSDSysAbnormal" // 显示异常信息的叠加配置(对应结构体 CFG_OSD_SYSABNORMAL_INFO)
  623. #define CFG_CMD_VIDEO_WIDGET2 "VideoWidget2" // 视频编码物件配置(对应结构体 CFG_VIDEO_WIDGET2_INFO)
  624. #define CFG_CMD_VIDEOWIDGET_NUMBERSTAT "VideoWidgetNumberStat" // 人数统计叠加OSD配置(对应结构体 CFG_VIDEOWIDGET_NUMBERSTAT_INFO)
  625. #define CFG_CMD_PRIVACY_MASKING "PrivacyMasking" // 隐私遮挡设置(对应结构体 CFG_PRIVACY_MASKING_INFO)
  626. #define CFG_CMD_DEVICE_INFO "DeviceInfo" // 设备信息(对应结构体 CFG_DEVICE_INFO)
  627. #define CFG_CMD_POLICEID_MAP_INFO "PoliceMap" // 警员ID和设备通道映射关系信息(对应结构体 CFG_POLICEID_MAP_INFO)
  628. #define CFG_CMD_GPS_NOT_ALIGNED "GpsNotAligned" // GPS未定位配置(对应结构体 CFG_GPS_NOT_ALIGNED_INFO)
  629. #define CFG_CMD_WIRELESS_NOT_CONNECTED "WireLessNotConnected" // 网络未连接(包括wifi,3G/4G)配置(对应结构体 CFG_WIRELESS_NOT_CONNECTED_INFO)
  630. #define CFG_CMD_MCS_GENERAL_CAPACITY_LOW "MCSGeneralCapacityLow" // 微云常规容量告警配置(对应结构体CFG_MCS_GENERAL_CAPACITY_LOW)
  631. #define CFG_CMD_MCS_DATA_NODE_OFFLINE "MCSDataNodeOffline" // 微云存储节点下线(对应结构体CFG_MCS_DATA_NODE_OFFLINE)
  632. #define CFG_CMD_MCS_DISK_OFFLINE "MCSDiskOffline" // 微云磁盘下线告警配置(对应结构体CFG_MCS_DISK_OFFLINE)
  633. #define CFG_CMD_MCS_DISK_SLOW "MCSDiskSlow" // 微云磁盘变慢告警配置(对应结构体CFG_MCS_DISK_SLOW)
  634. #define CFG_CMD_MCS_DISK_BROKEN "MCSDiskBroken" // 微云磁盘损坏告警配置(对应结构体CFG_MCS_DISK_BROKEN)
  635. #define CFG_CMD_MCS_DISK_UNKNOW_ERROR "MCSDiskUnknowError" // 微云磁盘未知错误告警配置(对应结构体CFG_MCS_DISK_UNKNOW_ERROR)
  636. #define CFG_CMD_MCS_METADATA_SERVER_ABNORMAL "MCSMetadataServerAbnormal" // 微云元数据服务器异常告警配置(对应结构体CFG_MCS_METADATA_SERVER_ABNORMAL)
  637. #define CFG_CMD_MCS_CATALOG_SERVER_ABNORMAL "MCSCatalogServerAbnormal" // 微云目录服务器异常告警配置(对应结构体CFG_MCS_CATALOG_SERVER_ABNORMAL)
  638. #define CFG_CMD_MCS_GENERAL_CAPACITY_RESUME "MCSGeneralCapacityResume" // 微云常规容量告警恢复告警配置(对应结构体CFG_MCS_GENERAL_CAPACITY_RESUME)
  639. #define CFG_CMD_MCS_DATA_NODE_ONLINE "MCSDataNodeOnline" // 微云存储节点上线告警配置(对应结构体CFG_MCS_DATA_NODE_ONLINE)
  640. #define CFG_CMD_MCS_DISK_ONLINE "MCSDiskOnline" // 微云磁盘上线告警配置(对应结构体CFG_MCS_DISK_ONLINE)
  641. #define CFG_CMD_MCS_METADATA_SLAVE_ONLINE "MCSMetadataSlaveOnline" // 微云元数据备机上线告警配置(对应结构体CFG_MCS_METADATA_SLAVE_ONLINE)
  642. #define CFG_CMD_MCS_CATALOG_SERVER_ONLINE "MCSCatalogServerOnline" // 微云目录服务器上线告警配置(对应结构体CFG_MCS_CATALOG_SERVER_ONLINE)
  643. #define CFG_CMD_SECURITY_ALARMS_PRIVACY "SecurityAlarmsPrivacy" // 隐私保护(对应结构体CFG_SECURITY_ALARMS_PRIVACY)
  644. #define CFG_CMD_NO_FLY_TIME "NoFlyTime" // 无人机禁飞时段配置 ( 对应结构体 CFG_NO_FLY_TIME_INFO )
  645. #define CFG_CMD_PWD_RESET "PwdReset" // 密码重置功能使能配置 ( 对应结构体 CFG_PWD_RESET_INFO )
  646. #define CFG_CMD_NET_MONITOR_ABORT "NetMonitorAbort" // 网络预览中断事件配置( 对应结构体 CFG_NET_MONITOR_ABORT_INFO )
  647. #define CFG_CMD_LOCAL_EXT_ALARM "LocalExtAlarm" // 本地扩展报警配置 ( 对应结构体 CFG_LOCAL_EXT_ALARME_INFO )
  648. #define CFG_CMD_ACCESSCONTROL_DELAYSTRATEGY "DelayStrategy" // 门禁卡欠费与预欠费状态配置(对应结构体 CFG_ACCESSCONTROL_DELAYSTRATEGY)
  649. #define CFG_CMD_VIDEO_TALK_PHONE_BASIC "VideoTalkPhoneBasic" // 视频对讲电话基础配置( 对应结构体 CFG_VIDEO_TALK_PHONE_BASIC_INFO )
  650. #define CFG_CMD_APP_EVENT_LANGUAGE "AppEventLanguage" // 手机推送消息的翻译目标语言配置(对应结构体 CFG_APP_EVENT_LANGUAGE_INFO )
  651. #define CFG_CMD_LOGIN_FAILURE_ALARM "LoginFailureAlarm" // 登陆失败报警配置(对应结构体 CFG_LOGIN_FAILURE_ALARM)
  652. #define CFG_CMD_DROPBOXTOKEN "DropBoxToken" // Dropbox Token 配置( 对应结构体 CFG_DROPBOXTOKEN_INFO)
  653. #define CFG_CMD_IDLINGTIME "IdlingTime" // 怠速配置(对应结构体 CFG_IDLINGTIME_INFO)
  654. #define CFG_CMD_CARDIVERSTATE "CarDiverState" // 汽车行驶状态配置(对应结构体 CFG_CARDIVERSTATE_INFO)
  655. #define CFG_CMD_VEHICLE "Vehicle" // 车载配置(对应结构体 CFG_VEHICLE_INFO)
  656. #define CFG_CMD_PTZDEVICE "PtzDevice" // 模拟云台配置( 对应结构体 CFG_PTZDEVICE_INFO)
  657. #define CFG_CMD_DEVLOCATION "DevLocation" // 设备安装位置的GPS坐标信息( 对应结构体 CFG_DEVLOCATION_INFO)
  658. #define CFG_CMD_SMARTHOME_SCENELIST "SmartHomeSceneList" // 智能家居场景列表(对应结构体CFG_SMARTHOME_SCENELIST_INFO)
  659. #define CFG_CMD_LIGHTING_V2 "Lighting_V2" // 全彩相机补光灯灵敏度配置(对应结构体 CFG_LIGHTING_V2_INFO)
  660. #define CFG_CMD_KBUSER_PASSWORD "KbuserPassword" // 键盘操作员用户配置(对应结构体CFG_KBUSER_USERS_INFO)
  661. #define CFG_CMD_ACCESS_OEM "AccessOEMSettings" // 门禁信息配置,对应结构体CFG_ACCESS_OEM_INFO
  662. #define CFG_CMD_FIRE_WARNING_EXT "FireWarningExt" // 火警配置扩展(对应结构体CFG_FIREWARNING_EXT_INFO)
  663. #define CFG_CMD_LOCATION_CALIBRATE "LocationCalibrate" // 设备参数标定配置(对应结构体CFG_LOCATION_CALIBRATE_INFO)
  664. #define CFG_CMD_THERM_DENOISE "ThermDenoise" // 热成像特有的机芯降噪,对应结构体CFG_THERM_DENOISE
  665. #define CFG_CMD_CONSTANT_LAMP "ConstantLamp" // 智能交通灯光配置,对应结构体CFG_CONSTANT_LAMP_INFO
  666. #define CFG_CMD_TRAFFIC_IO "TrafficIO" // 线圈IO配置,对应结构体CFG_TRAFFIC_IO
  667. #define CFG_CMD_MONITOR_WALL_COLLECTION_MAP "MonitorWallCollectionMap" // 电视墙预关联配置,对应结构体CFG_MONITOR_WALL_COLLECTION_MAP_INFO,通道只支持传-1
  668. #define CFG_CMD_VIDEO_INPUT_GROUP "VideoInputGroup" // 视频输入组配置,对应结构体CFG_VIDEO_INPUT_GROUP_INFO
  669. #define CFG_CMD_DOOR_NOT_CLOSE "DoorNotClosed" // 门未关报警,对应结构体 CFG_DOOR_NOT_CLOSE_INFO
  670. #define CFG_CMD_BREAK_IN "BreakIn" // 闯入报警,对应结构体 CFG_BREAK_IN_INFO
  671. #define CFG_CMD_ANTI_PASSBACK "AntiPassback" // 反潜回报警,对应结构体 CFG_ANTI_PASSBACK_INFO
  672. #define CFG_CMD_DURESS "Duress" // 胁迫报警,对应结构体 CFG_DURESS_INFO
  673. #define CFG_CMD_MALICIOUS_ACCESSCONTROL "MaliciousAccessControl" // 非法超次报警报警,对应结构体 CFG_DOOR_MALICIOUS_ACCESSCONTROL_INFO
  674. #define CFG_CMD_REGULATOR_DETECT "RegulatorDetect" // 标准黑体源异常报警,对应结构体 CFG_REGULATOR_DETECT_INFO. 热成像通道有效
  675. #define CFG_CMD_REMOTE_ANALYSEGLOBAL "RemoteVideoAnalyseGlobal" // 远程视频分析全局配置(对应 CFG_ANALYSEGLOBAL_EX_INFO), 后续CFG_ANALYSEGLOBAL_INFO不在扩展
  676. #define CFG_CMD_REMOTE_ANALYSEMODULE "RemoteVideoAnalyseModule" // 远程物体的检测模块配置(对应 CFG_ANALYSEMODULES_INFO)
  677. #define CFG_CMD_REMOTE_ANALYSERULE "RemoteVideoAnalyseRule" // 远程视频分析规则配置(对应 CFG_ANALYSERULES_INFO)
  678. #define CFG_CMD_INFRARED_CONFIG "InfraredSet" // 红外功能配置 (对应 CFG_INFRARED_INFO, 手持设备使用)
  679. #define CFG_CMD_ACCESS_DOOR_STATUS "AccessDoorStatus" // 时间表对应门状态配置 与门禁刷卡时间段(CFG_ACCESS_TIMESCHEDULE_INFO)配套使用 对应(CFG_ACCESS_DOORSTATUS_INFO)
  680. #define CFG_CMD_UPNP "UPnP" // UPnP配置(对应CFG_UPNP_INFO)
  681. #define CFG_CMD_ESDCOMMSETTING "ESDCommSetting" // ESD通用配置(对应CFG_ESDCOMMSETTING_INFO)
  682. #define CFG_CMD_VTO_CALL_LIFT_INFO "VTOCallLiftInfo" // 门口机梯控信息配置(对应CFG_VTO_CALL_LIFT_INFO)
  683. #define CFG_CMD_NETAUTOADAPTORENCODE_EX "NetAutoAdaptEncodeEX" // 网络自适应编码配置(对应结构体 CFG_NET_AUTO_ADAPT_ENCODE_EX) 原配置不能扩展采用新配置项
  684. ///@brief MACRO_GROUP_GET_NEW_DEV_37_END
  685. ///@brief MACRO_GROUP_QUERY_CAPS_38_BEGIN
  686. /************************************************************************
  687. ** 能力集命令 对应CLIENT_QueryNewSystemInfo/CLIENT_QueryNewSystemInfoEx
  688. ***********************************************************************/
  689. #define CFG_CAP_CMD_VIDEOANALYSE "devVideoAnalyse.getCaps" // 视频分析能力集(对应 CFG_CAP_ANALYSE_INFO, pExtendInfo 对应 CFG_CAP_ANALYSE_REQ_EXTEND_INFO)
  690. #define CFG_CAP_CMD_VIDEOANALYSE_EX "devVideoAnalyse.getCapsEx" // 视频分析能力集(对应CFG_CAP_ANALYSE_INFO_EX)
  691. #define CFG_CAP_CMD_REMOTE_VIDEOANALYSE "devRemoteVideoAnalyse.getCaps" // 远程视频分析能力集(对应CFG_CAP_ANALYSE_INFO)
  692. #define CFG_NETAPP_REMOTEDEVICE "netApp.getRemoteDeviceStatus" // 获取后端设备的的在线状态(对应CFG_REMOTE_DEVICE_STATUS)
  693. #define CFG_CAP_CMD_PRODUCTDEFINITION "magicBox.getProductDefinition" // 接入设备信息(对应 CFG_PRODUCT_DEFINITION_INFO)
  694. #define CFG_DEVICE_CAP_CMD_VIDEOANALYSE "intelli.getVideoAnalyseDeviceChannels" // 设备智能分析能力(对应CFG_CAP_DEVICE_ANALYSE_INFO)兼容老设备
  695. #define CFG_DEVICE_CAP_NEW_CMD_VIDEOANALYSE "devVideoAnalyse.factory.getCollect" // 设备智能分析能力(对应CFG_CAP_DEVICE_ANALYSE_INFO)
  696. #define CFG_CAP_CMD_CPU_COUNT "magicBox.getCPUCount" // 获得CPU个数 内部暂未实现
  697. #define CFG_CAP_CMD_CPU_USAGE "magicBox.getCPUUsage" // 获取CPU占用率 内部暂未实现
  698. #define CFG_CAP_CMD_MEMORY_INFO "magicBox.getMemoryInfo" // 获得内存容量 内部暂未实现
  699. #define CFG_CAP_CMD_DEVICE_CLASS "magicBox.getDeviceClass" // 获取设备类型(对应CFG_DEVICE_CLASS_INFO)
  700. #define CFG_CAP_CMD_DEVICE_STATE "trafficSnap.getDeviceStatus" // 获取设备状态信息 (对应CFG_CAP_TRAFFIC_DEVICE_STATUS)
  701. #define CFG_CAP_CMD_VIDEOINPUT "devVideoInput.getCaps" // 视频输入能力集(对应CFG_CAP_VIDEOINPUT_INFO)
  702. #define CFG_USERMANAGER_ACTIVEUSER "userManager.getActiveUserInfoAll" // 得到所有活动的用户信息(对应 CFG_ACTIVEALLUSER_INFO)
  703. #define CFG_CAP_VIDEOSTAT_SUMMARY "videoStatServer.getSummary" // 获取视频统计摘要信息(对应CFG_VIDEOSATA_SUMMARY_INFO)
  704. #define CFG_CAP_CMD_VIDEODIAGNOSIS_SERVER "videoDiagnosisServer.getCaps" // 获取视频诊断服务能力(CFG_VIDEODIAGNOSIS_CAPS_INFO)
  705. #define CFG_CMD_VIDEODIAGNOSIS_GETCOLLECT "videoDiagnosisServer.factory.getCollect" // 获取视频诊断通道数目(CFG_VIDEODIAGNOSIS_GETCOLLECT_INFO)
  706. #define CFG_CMD_VIDEODIAGNOSIS_GETSTATE "videoDiagnosisServer.getState" // 获取视频诊断进行状态(CFG_VIDEODIAGNOSIS_STATE_INFO)
  707. #define CFG_CAP_CMD_SERVICE_LIST "system.listService" // 获取服务器上支持的服务列表(CFG_DEV_SERVICE_LIST)
  708. #define CFG_CAP_CMD_EVENTHANDLER "capsManager.get&EventManagerEventHandler" // 获取服务器报警联动能力集(CFG_CAP_EVENTHANDLER_INFO)
  709. #define CFG_CAP_ALARM "alarm.getAlarmCaps" // 获取报警能力集(CFG_CAP_ALARM_INFO)
  710. #define CFG_CAP_CMD_AUDIO_ANALYSE "devAudioAnalyse.getCaps" // 获取音频分析能力集(CFG_CAP_AUDIO_ANALYSE_INFO)
  711. #define CFG_CMD_MASTERSLAVE_GETCOLLECT "masterSlaveTracker.factory.getCollect" // 获取主从式跟踪器通道数目(对应结构体CFG_MASTERSLAVETRACKER_INFO)
  712. #define CFG_CAP_CMD_MASTERSLAVE "capsManager.get&MasterSlaveTracker" // 获取主从式设备能力集(CFG_CAP_MASTERSLAVE_INFO)
  713. #define CFG_CAP_CMD_FOCUS_STATE "devVideoInput.getFocusStatus" // 获取镜头聚焦状态信息 (对应CFG_CAP_FOCUS_STATUS)
  714. #define CFG_CAP_CMD_NETAPP "netApp.getCaps" // 获取网络应用能力集(对应CFG_CAP_NETAPP)
  715. #define CFG_CAP_CMD_PTZ_ENABLE "ptz.factory.instance" // 获取云台支持信息(CFG_CAP_PTZ_ENABLEINFO )
  716. #define CFG_CAP_CMD_RECORD "recordManager.getCaps" // 获取录像能力集(CFG_CAP_RECORD_INFO)
  717. #define CFG_CAP_CMD_BURN_MANAGER "BurnManager.getCaps" // 获取刻录管理能力集( CFG_CAP_BURN_MANAGER)
  718. #define CFG_CAP_CMD_PTZ "ptz.getCurrentProtocolCaps" // 获取云台能力集(CFG_PTZ_PROTOCOL_CAPS_INFO)
  719. #define CFG_CMD_ENCODE_GETCAPS "encode.getCaps" // 获取编码能力集(CFG_ENCODECAP)
  720. #define CFG_CAP_CMD_VIDEOINPUT_EX "devVideoInput.getCapsEx" // 视频输入能力集扩展(对应CFG_CAP_VIDEOINPUT_INFO_EX)
  721. #define CFG_CAP_CMD_ANALYSE_MODE "intelli.getCaps.AnalyseMode" // 获取设备智能分析模式(对应 CFG_ANALYSE_MODE)
  722. #define CFG_CAP_CMD_EVENTMANAGER "eventManager.getCaps" // 获取设备报警联动能力,老协议已废除,新开发请使用该字段(CFG_CAP_EVENTMANAGER_INFO)
  723. #define CFG_CAP_CMD_REMOTE_EVENTMANAGER "RemoteEventManager.getCaps" // 获取远程设备事件整体联动能力集(对应 CFG_CAP_EVENTMANAGER_INFO)
  724. #define CFG_CAP_CMD_FILEMANAGER "FileManager.getCaps" // 获取文件能力(CFG_CAP_FILEMANAGER)
  725. #define CFG_CAP_CMD_LOG "log.getCaps" // 获取日志服务能力(CFG_CAP_LOG)
  726. #define CFG_CAP_CMD_SPEAK "speak.getCaps" // 扬声器播放能力(CFG_CAP_SPEAK)
  727. #define CFG_CAP_CMD_ACCESSCONTROLMANAGER "accessControlManager.getCaps" // 门禁能力(CFG_CAP_ACCESSCONTROL)
  728. #define CFG_CAP_CMD_EXALARM "alarm.getExAlarmCaps" // 获取扩展报警能力集, (对应结构体 CFG_CAP_EXALARM_INFO)
  729. #define CFG_CAP_CMD_EXALARMBOX "alarm.getExAlarmBoxCaps" // 获取扩展报警盒能力集, (对应结构体 CFG_CAP_EXALARMBOX_INFO)
  730. #define CFG_CAP_CMD_RECORDFINDER "RecordFinder.getCaps" // 获取查询记录能力集, (对应结构体 CFG_CAP_RECORDFINDER_INFO)
  731. #define CFG_CAP_CMD_ANALOGALARM "AnalogAlarm.getCaps" // 模拟量报警输入通道能力(对应结构体 CFG_CAP_ANALOGALARM)
  732. #define CFG_CAP_CMD_LOWRATEWPAN "LowRateWPAN.getCaps" // 获取LowRateWPAN能力(对应的结构体 CFG_CAP_LOWRATEWPAN)
  733. #define CFG_CAP_CMD_ADAPTENCODE "encode.getNAACaps" // 获取编码自适应编码能力(对应的结构体 CFG_CAP_ADAPT_ENCODE_INFO)
  734. #define CFG_CAP_CMD_PTZPROTOCAL "ptz.getProtocol" // 获取该云台实际能够使用的协议,按介质区分 (对应结构体 CFG_CAP_PTZ_PROTOCOL)
  735. #define CFG_CAP_CMD_MEDIACROP "encode.getCropCaps" // 查询是否支持视频裁剪能力 (对应结构体 CFG_CAP_MEDIA_CROP)
  736. #define CFG_CAP_CMD_OSDMANAGER "OSDManager.getCaps" // 获取OSD叠加能力(对应结构体CFG_CAP_OSDMANAGER_INFO)
  737. #define CFG_CAP_CMD_CUSTOM "OSDManager.getCustomCaps" // 获取自定义标题能力集(对应结构体CFG_CAP_CUSTOM_OSD_INFO)
  738. ///@brief MACRO_GROUP_QUERY_CAPS_38_END
  739. ///@brief MACRO_GROUP_VIDEOINANALYSE_39_BEGIN
  740. /************************************************************************
  741. ** 智能模板配置命令 对应CLIENT_GetVideoInAnalyse
  742. ***********************************************************************/
  743. #define CFG_VIDEOINANALYSE_RULE "VideoInAnalyse.getTemplateRule" // 获取智能规则配置模板和默认值(对应结构体CFG_ANALYSERULES_INFO)
  744. #define CFG_VIDEOINANALYSE_GLOBAL "VideoInAnalyse.getTemplateGlobal" // 获取智能全局配置模板和默认值(对应结构体CFG_VIDEOINANALYSE_GLOBAL_INFO)
  745. #define CFG_VIDEOINANALYSE_MODULE "VideoInAnalyse.getTemplateModule" // 获取智能检测区配置模板和默认值(对应结构体CFG_VIDEOINANALYSE_MODULE_INFO)
  746. ///@brief MACRO_GROUP_VIDEOINANALYSE_39_END
  747. ///@brief 日志能力
  748. typedef struct tagCFG_CAP_LOG
  749. {
  750. DWORD dwMaxLogItems; // 最大日志条数
  751. DWORD dwMaxPageItems; // 每个分页的最大日志条数
  752. BOOL bSupportStartNo; // 查询条件是否支持起始序号
  753. BOOL bSupportTypeFilter; // 查询条件是否支持类型过滤
  754. BOOL bSupportTimeFilter; // 查询条件是否支持时间过滤
  755. BOOL bSupportRealUTC; // 查询条件是否支持日志查询的UTC能力
  756. }CFG_CAP_LOG;
  757. #define MAX_AUDIO_PROPERTY_NUM 32 // 音频属性最大个数
  758. #define MAX_AUDIO_FORMAT_NUM 16 // 音频格式最大个数
  759. ///@brief 音频编码压缩格式
  760. typedef enum EM_TALK_AUDIO_TYPE
  761. {
  762. EM_TALK_AUDIO_PCM,
  763. EM_TALK_AUDIO_ADPCM,
  764. EM_TALK_AUDIO_G711A,
  765. EM_TALK_AUDIO_G711Mu,
  766. EM_TALK_AUDIO_G726,
  767. EM_TALK_AUDIO_G729,
  768. EM_TALK_AUDIO_MPEG2,
  769. EM_TALK_AUDIO_AMR,
  770. EM_TALK_AUDIO_AAC,
  771. }EM_TALK_AUDIO_TYPE;
  772. ///@brief 音频属性
  773. typedef struct CFG_AUDIO_PROPERTY
  774. {
  775. int nBitRate; // 码流大小,单位:kbps,比如192kbps
  776. int nSampleBit; // 采样的位深,如8或16
  777. int nSampleRate; // 采样率,单位:Hz,比如44100Hz
  778. }CFG_AUDIO_PROPERTY;
  779. ///@brief 支持的音频格式
  780. typedef struct CFG_CAP_AUDIO_FORMAT
  781. {
  782. EM_TALK_AUDIO_TYPE emCompression; // 音频压缩格式,具体见枚举AV_Talk_Audio_Type
  783. int nPropertyNum; // 音频属性个数
  784. CFG_AUDIO_PROPERTY stuProperty[MAX_AUDIO_PROPERTY_NUM]; // 音频属性
  785. }CFG_CAP_AUDIO_FORMAT;
  786. ///@brief 音频播放路径
  787. typedef struct tagCFG_AUDIO_PLAY_PATH
  788. {
  789. char szPath[256]; // 文件路径
  790. BOOL bSupportUpload; // 是否支持上传
  791. int nMaxFileUploadNum; // 支持最大上传个数, 支持上传才有效
  792. int nMaxUploadFileSize; // 最大上传文件大小,单位字节, 支持上传才有效
  793. } CFG_AUDIO_PLAY_PATH;
  794. ///@brief 时间预案播放语音控制能力
  795. typedef struct tagCFG_VOICE_PLAY_PLAN
  796. {
  797. BOOL bSupport; // 是否支持时间预案语音播报
  798. int nVoiceTaskNum; // 支持时间预案的语音个数
  799. } CFG_VOICE_PLAY_PLAN;
  800. ///@brief 扬声器能力
  801. typedef struct CFG_CAP_SPEAK
  802. {
  803. int nAudioCapNum; // 支持的音频格式个数
  804. CFG_CAP_AUDIO_FORMAT stuAudioCap[MAX_AUDIO_FORMAT_NUM]; // 支持的音频格式
  805. int nAudioPlayPathNum; // 音频播放路径个数
  806. CFG_AUDIO_PLAY_PATH stuAudioPlayPath[8]; // 音频播放路径
  807. CFG_VOICE_PLAY_PLAN stuVoicePlayPlan; // 时间预案播放语音控制能力
  808. }CFG_CAP_SPEAK;
  809. ///@brief AccessControlCustomPassword记录集中密码的保存方式
  810. typedef enum tagEM_CUSTOM_PASSWORD_ENCRYPTION_MODE
  811. {
  812. EM_CUSTOM_PASSWORD_ENCRYPTION_MODE_UNKNOWN, // 未知方式
  813. EM_CUSTOM_PASSWORD_ENCRYPTION_MODE_PLAINTEXT, // 明文
  814. EM_CUSTOM_PASSWORD_ENCRYPTION_MODE_MD5, // MD5加密方式
  815. }EM_CUSTOM_PASSWORD_ENCRYPTION_MODE;
  816. ///@brief 是否支持信息功能
  817. typedef enum tagEM_SUPPORTFINGERPRINT
  818. {
  819. EM_SUPPORTFINGERPRINT_UNKNOWN, // 未知
  820. EM_SUPPORTFINGERPRINT_NONSUPPORT, // 不支持信息功能
  821. EM_SUPPORTFINGERPRINT_SUPPORT, // 支持信息功能
  822. }EM_SUPPORTFINGERPRINT;
  823. ///@brief 假日计划
  824. typedef struct tagNET_SPECIAL_DAYS_SCHEDULE
  825. {
  826. BOOL bSupport; // 是否支持假日计划
  827. int nMaxSpecialDaysSchedules; // 设备支持的最大计划数量
  828. int nMaxTimePeriodsPerDay; // 每天最多的时间段
  829. int nMaxSpecialDayGroups; // 设备支持的最大假日组数
  830. int nMaxDaysInSpecialDayGroup; // 每个假日组里最大的假日数
  831. BYTE byReserved[128]; // 保留字节
  832. } NET_SPECIAL_DAYS_SCHEDULE;
  833. ///@brief 是否支持门禁快速导入功能
  834. typedef enum tagEM_SUPPORT_FAST_IMPORT_TYPE
  835. {
  836. EM_SUPPORT_FAST_IMPORT_UNKNOWN = -1, // 未知
  837. EM_SUPPORT_FAST_IMPORT_NONSUPPORT, // 不支持
  838. EM_SUPPORT_FAST_IMPORT_SUPPORT, // 支持
  839. } EM_SUPPORT_FAST_IMPORT_TYPE;
  840. ///@brief 是否支持门禁快速复核功能
  841. typedef enum tagEM_SUPPORT_FAST_CHECK_TYPE
  842. {
  843. EM_SUPPORT_FAST_CHECK_UNKNOWN = -1, // 未知
  844. EM_SUPPORT_FAST_CHECK_NONSUPPORT, // 不支持
  845. EM_SUPPORT_FAST_CHECK_SUPPORT, // 支持
  846. } EM_SUPPORT_FAST_CHECK_TYPE;
  847. ///@brief 支持的梯控制方式类型
  848. typedef enum tagEM_SUPPORT_LIFT_CONTROL_TYPES
  849. {
  850. EM_SUPPORT_LIFT_CONTROL_TYPES_UNKNOWN , // 未知
  851. EM_SUPPORT_LIFT_CONTROL_TYPES_LOCAL485, // 本地485协议梯控方式
  852. EM_SUPPORT_LIFT_CONTROL_TYPES_LINKMAINVTO, // 从门口机联动主门口进行召梯
  853. EM_SUPPORT_LIFT_CONTROL_TYPES_LINkLIFTCONTROLHOST, // 联动梯控主机召梯
  854. }EM_SUPPORT_LIFT_CONTROL_TYPES;
  855. ///@brief 梯控功能能力集
  856. typedef struct tagNET_SUPPORT_CALLLIFT_FUNCTION
  857. {
  858. BOOL bWeeklyPlan; /// 是否支持梯控周计划
  859. BOOL bPublicOpenDayPlan; /// 是否支持开放日计划
  860. BOOL bPublicFloors; /// 是否支持平台下发公共楼层
  861. BOOL bOneClickControl; /// 是否支持一键管控
  862. char szReserved[64]; /// 预留字节
  863. }NET_SUPPORT_CALLLIFT_FUNCTION;
  864. ///@brief 门禁控制能力
  865. typedef struct tagCFG_CAP_ACCESSCONTROL
  866. {
  867. int nAccessControlGroups; // 门禁组数、
  868. BOOL bSupAccessControlAlarmRecord; // 是否支持门禁报警日志记录在记录集中
  869. EM_CUSTOM_PASSWORD_ENCRYPTION_MODE emCustomPasswordEncryption; // AccessControlCustomPassword记录集中密码的保存方式
  870. EM_SUPPORTFINGERPRINT emSupportFingerPrint; // 是否支持信息功能
  871. BOOL bOnlySingleDoorAuth; // 是否只支持单门授权(发卡)
  872. BOOL bAsynAuth; // 是否支持授权异步返回
  873. NET_SPECIAL_DAYS_SCHEDULE stSpecialDaysSchedule; // 假日计划
  874. BOOL bSupportMultiUserMultiTypeAuth; // 是否支持多人多类型组合开门
  875. EM_SUPPORT_FAST_IMPORT_TYPE bSupportFastImport; // 是否支持门禁快速导入功能
  876. EM_SUPPORT_FAST_CHECK_TYPE bSupportFastCheck; // 是否支持门禁快速复核功能
  877. BOOL bSupportCallLift; // 是否支持梯控功能
  878. EM_SUPPORT_LIFT_CONTROL_TYPES emSupportLiftControlTypes[32]; // 支持的梯控制方式类型的集合
  879. int nSupportLiftControlTypesNum; // 支持的梯控方式类型的有效数
  880. BOOL bSupportESD; // 支持静电检测功能
  881. BOOL bSupportSpecialDaysAlwaysOpenOrClose;//是否支持假日常开常闭功能
  882. UINT nSupportPersonCollection; // 能力bit位控制:0-不支持人员采集新接口, 1-支持人脸使用新接口, 2-支持身份证采集使用新接口, 4-支持指纹采集使用新接口, 8-支持卡采集使用新接口 16-支持虹膜采集使用新接口, 32-支持掌纹采集使用新接口
  883. BOOL bSupportSpecialDaysConfig; // 是否支持平台下发假日计划
  884. BOOL bSupportSetDoorChannelSensorType; // 是否支持按照门通道设置门磁的常开/常闭类型
  885. BOOL bSupportAccessControlSnap; // 楼宇设备是否支持开门抓图并上传功能配置
  886. UINT nCardSetFunction; // IC卡设置相关能力bit控制,0表示不支持,支持内容根据bit控制,卡片能力集,对应能力位:1支持,0不支持
  887. // bit0: IC加密使能
  888. // bit1: IC使能
  889. // bit2: CPU卡使能
  890. // bit3: PSAM卡使能
  891. // bit4: NFC卡使能位
  892. // bit5: desfire卡使能
  893. // bit6: desfire卡加密使能
  894. BOOL bSupportSetRepeatCardEnterTime; // 是否支持设置卡片重复验证时间
  895. BOOL bSupportCallliftFunction; /// 是否支持梯控功能能力集
  896. NET_SUPPORT_CALLLIFT_FUNCTION stuSupportCallliftFunction; /// 梯控功能能力集
  897. BOOL bSupportUserAuthCodeOpenDoor; /// 设备是否支持弱密码开门能力
  898. char szResvered[916]; // 保留字段
  899. }CFG_CAP_ACCESSCONTROL;
  900. ///@brief 传感器感应方式枚举类型
  901. typedef enum tagEM_SENSE_METHOD
  902. {
  903. EM_SENSE_UNKNOWN = -1, // 未知类型
  904. EM_SENSE_DOOR=0, // 门磁
  905. EM_SENSE_PASSIVEINFRA, // 被动红外
  906. EM_SENSE_GAS, // 气感
  907. EM_SENSE_SMOKING, // 烟感
  908. EM_SENSE_WATER, // 水感
  909. EM_SENSE_ACTIVEFRA, // 主动红外
  910. EM_SENSE_GLASS, // 玻璃破碎
  911. EM_SENSE_EMERGENCYSWITCH, // 紧急开关
  912. EM_SENSE_SHOCK, // 震动
  913. EM_SENSE_DOUBLEMETHOD, // 双鉴(红外+微波)
  914. EM_SENSE_THREEMETHOD, // 三技术
  915. EM_SENSE_TEMP, // 温度
  916. EM_SENSE_HUMIDITY, // 湿度
  917. EM_SENSE_WIND, // 风速
  918. EM_SENSE_CALLBUTTON, // 呼叫按钮
  919. EM_SENSE_GASPRESSURE, // 气体压力
  920. EM_SENSE_GASCONCENTRATION, // 燃气浓度
  921. EM_SENSE_GASFLOW, // 气体流量
  922. EM_SENSE_OIL, // 油量检测
  923. EM_SENSE_MILEAGE, // 里程数检测
  924. EM_SENSE_OTHER, // 其他
  925. EM_SEHSE_CO2, // 二氧化碳浓度检测
  926. EM_SEHSE_SOUND, // 噪音检测
  927. EM_SEHSE_PM25, // PM2.5检测
  928. EM_SEHSE_SF6, // 六氟化硫浓度检测
  929. EM_SEHSE_O3, // 臭氧
  930. EM_SEHSE_AMBIENTLIGHT, // 环境光照检测
  931. EM_SEHSE_INFRARED, // 红外报警
  932. EM_SEHSE_TEMP1500, // 1500温度传感器
  933. EM_SEHSE_TEMPDS18B20, // DS18B20温度传感器
  934. EM_SEHSE_HUMIDITY1500, // 1500湿度传感器
  935. EM_SEHSE_URGENCYBUTTON, // 紧急按钮
  936. EM_SEHSE_STEAL, // 盗窃
  937. EM_SEHSE_PERIMETER, // 周界
  938. EM_SEHSE_PREVENTREMOVE, // 防拆
  939. EM_SEHSE_DOORBELL, // 门铃
  940. EM_SEHSE_ALTERVOLT, // 交流电压传感器
  941. EM_SEHSE_DIRECTVOLT, // 直流电压传感器
  942. EM_SEHSE_ALTERCUR, // 交流电流传感器
  943. EM_SEHSE_DIRECTCUR, // 直流电流传感器
  944. EM_SEHSE_RSUGENERAL, // 通用模拟量
  945. EM_SEHSE_RSUDOOR, // 门禁感应
  946. EM_SEHSE_RSUPOWEROFF, // 断电感应
  947. EM_SEHSE_CURTAINSENSOR, // 幕帘传感器
  948. EM_SEHSE_MOBILESENSOR, // 移动传感器
  949. EM_SEHSE_FIREALARM, // 火警
  950. EM_SEHSE_LOCKTONGUE, // 锁舌
  951. EM_SENSE_NUM // 枚举类型总数,注意:这个值不能作为常量使用
  952. }EM_SENSE_METHOD;
  953. ///@brief 传感器报警方式
  954. typedef struct tagCFG_EXALARM_SENSE_METHOD
  955. {
  956. int nSupportSenseMethodNum; // 支持的传感器方式数
  957. EM_SENSE_METHOD emSupportSenseMethod[MAX_ALARM_SENSE_METHOD_NUM]; // 支持的传感器方式
  958. }CFG_EXALARM_SENSE_METHOD;
  959. ///@brief 模拟量报警输入通道能力
  960. typedef struct tagCFG_CAP_ANALOGALARM
  961. {
  962. DWORD dwLocalNum; // 本地模拟量报警输入通道数
  963. DWORD dwExLocalNum; // 扩展模拟量报警输入通道数
  964. int nAnalogAlarmChannelNum; // 模拟量报警通道数, 此为0时表示每个通道支持所有类型的传感器
  965. CFG_EXALARM_SENSE_METHOD stuAnalogAlarmChannel[MAX_EXALARM_CHANNEL_NUM]; // 报警通道集合
  966. }CFG_CAP_ANALOGALARM;
  967. ///@brief 获取LowRateWPAN能力结构体
  968. typedef struct tagCFG_CAP_LOWRATEWPAN
  969. {
  970. UINT nMaxPageSize; // 最大分页查询的对码条数
  971. UINT n433GatewayCount; // 获取支持的433网关数目, 0表示不支持无线设备
  972. }CFG_CAP_LOWRATEWPAN;
  973. ///@brief 自适应能力
  974. typedef struct tagCFG_CAP_ADAPT_ENCODE
  975. {
  976. BOOL bSupportedNAAEncode; // 自适应编码调整能力 ,主码流暂不支持
  977. BOOL bSupportedIPSmoothness; // 设备编码平滑配置能力
  978. }CFG_CAP_ADAPT_ENCODE;
  979. ///@brief 获取编码自适应能力
  980. typedef struct tagCFG_CAP_ADAPT_ENCODE_INFO
  981. {
  982. CFG_CAP_ADAPT_ENCODE stuMainStream[MAX_VIDEOSTREAM_NUM]; // 主码流,0-普通录像,1-动检录像,2-报警录像
  983. CFG_CAP_ADAPT_ENCODE stuExtraStream[MAX_VIDEOSTREAM_NUM]; // 辅码流,0-辅码流1,1-辅码流2,2-辅码流3
  984. }CFG_CAP_ADAPT_ENCODE_INFO;
  985. ///@brief 查询是否支持视频裁剪能力
  986. typedef struct tagCFG_CAP_MEDIA_CROP
  987. {
  988. BOOL bExtra1SupportCrop; // 辅码流1裁剪能力
  989. BOOL bExtra2SupportCrop; // 辅码流2裁剪能力
  990. }CFG_CAP_MEDIA_CROP;
  991. ///@brief osd叠加能力
  992. typedef struct CFG_CAP_OSDMANAGER_INFO
  993. {
  994. BOOL bLineSpacing; // 是否支持OSD字体行间距,选填
  995. BOOL bSysAbnormal; // 是否支持异常信息显示
  996. BOOL bNetAbort; // 是否显示网络断开
  997. BOOL bIPConflict; // 是否显示IP冲突
  998. BOOL bVoltageStatus; // 是否显示电压异常
  999. BOOL bSDHotPlug; // 是否显示SD卡插入、拔出 异常
  1000. BOOL bSDLowSpace; // 是否显示SD卡空间不足
  1001. BOOL bSDFailure; // 是否显示SD卡出错
  1002. BOOL bDestroy; // 是否显示破坏检测
  1003. BOOL bOvercurrent; // 是否显示对外供电电流过流
  1004. BOOL bTaskName; // 是否支持动作任务名称
  1005. unsigned int nMaxSize; // 图片最大字节数,单位字节
  1006. unsigned int nMaxWidth; // 图片最大宽度, 单位像素
  1007. unsigned int nMaxHeight; // 图片最大高度, 单位像素
  1008. } CFG_CAP_OSDMANAGER_INFO;
  1009. ///@brief 自定义OSD标题叠加
  1010. typedef struct tagCFG_CAP_CUSTOM_OSD_TITLE_INFO
  1011. {
  1012. BOOL bSupport; /// 是否支持自定义叠加,true 支持,false 不支持
  1013. unsigned int nTitleLine; /// 自定义标题默认行数
  1014. unsigned int nWebExtensionTitleLine; /// 自定义标题web显示允许扩展行数
  1015. unsigned int nMaxCharacterSizeTitleLine; /// 自定义标题每行最大可输入字符个数
  1016. BOOL bCustomTitleAlignmentOsd; /// 自定义标题对齐是否显示
  1017. char szReserved[508]; /// 保留字节
  1018. } CFG_CAP_CUSTOM_OSD_TITLE_INFO;
  1019. ///@brief 自定义标题能力集
  1020. typedef struct tagCFG_CAP_CUSTOM_OSD_INFO
  1021. {
  1022. BOOL abGeography; // bGeography是否有效
  1023. BOOL bGeography; //是否支持地理信息叠加
  1024. BOOL abTitleLine; // nTitleLine是否有效
  1025. unsigned int nTitleLine; // 地理信息行数, 默认为5
  1026. CFG_CAP_CUSTOM_OSD_TITLE_INFO stuCustomOSDTitle; /// 自定义OSD标题叠加
  1027. char szReserved[1024]; /// 保留字节
  1028. } CFG_CAP_CUSTOM_OSD_INFO;
  1029. ///@brief 应用场景, 内容与EM_SCENE_CLASS_TYPE一致
  1030. typedef enum tagEM_SCENE_TYPE
  1031. {
  1032. EM_SCENE_UNKNOW, // 未知
  1033. EM_SCENE_NORMAL, // "Normal" 普通场景
  1034. EM_SCENE_TRAFFIC, // "Traffic" 交通场景
  1035. EM_SCENE_TRAFFIC_PATROL, // "TrafficPatrol" 交通巡视
  1036. EM_SCENE_FACEDETECTION, // "FaceDetection" 目标检测/目标识别
  1037. EM_SCENE_ATM, // "ATM"
  1038. EM_SCENE_INDOOR, // "Indoor" 室内行为分析,和普通规则相同,对室内场景的算法优化版
  1039. EM_SCENE_FACERECOGNITION, // "TargetRecognition" 目标识别
  1040. EM_SCENE_PS,
  1041. EM_SCENE_NUMBERSTAT, // "NumberStat" 客流量统计
  1042. EM_SCENE_HEAT_MAP, // "HeatMap" 热度图
  1043. EM_SCENE_VIDEODIAGNOSIS, // "VideoDiagnosis" 视频诊断
  1044. EM_SCENE_VEHICLEANALYSE, // "VehicleAnalyse" 车辆特征检测分析
  1045. EM_SCENE_COURSERECORD, // "CourseRecord" 自动录播
  1046. EM_SCENE_VEHICLE, // "Vehicle" 车载场景(车载行业用,不同于智能交通的Traffic)
  1047. EM_SCENE_STANDUPDETECTION, // "StandUpDetection" 起立检测
  1048. EM_SCENE_GATE, // "Gate" 卡口
  1049. EM_SCENE_SDFACEDETECTION, // "SDFaceDetect" 多预置点目标检测,配置一条规则但可以在不同预置点下生效
  1050. EM_SCENE_HEAT_MAP_PLAN, // "HeatMapPlan" 球机热度图计划
  1051. EM_SCENE_NUMBERSTAT_PLAN, // "NumberStatPlan" 球机客流量统计计划
  1052. EM_SCENE_ATMFD, // "ATMFD"金融目标检测,包括正常目标、异常目标、相邻目标、头盔目标等针对ATM场景特殊优化
  1053. EM_SCENE_HIGHWAY, // "Highway" 高速交通事件检测
  1054. EM_SCENE_CITY, // "City" 城市交通事件检测
  1055. EM_SCENE_LETRACK, // "LeTrack" 民用简易跟踪
  1056. EM_SCENE_SCR, // "SCR"打靶相机
  1057. EM_SCENE_STEREO_VISION, // "StereoVision"立体视觉(双目)
  1058. EM_SCENE_HUMANDETECT, // "HumanDetect"人体检测
  1059. EM_SCENE_FACEANALYSIS, // "FaceAnalysis" 目标分析(同时支持目标检测、目标识别、目标属性等综合型业务)
  1060. EM_SCENE_XRAY_DETECTION, // "XRayDetection" X光检测
  1061. EM_SCENE_STEREO_NUMBER, // "StereoNumber" 双目相机客流量统计
  1062. EM_SCENE_CROWD_DISTRI_MAP, // "CrowdDistriMap" 人群分布图
  1063. EM_SCENE_OBJECTDETECT, // "ObjectDetect" 目标检测(含人机非等物体)
  1064. EM_SCENE_FACEATTRIBUTE, // "FaceAttribute" IVSS目标检测
  1065. EM_SCENE_FACECOMPARE, // "FaceCompare" IVSS目标识别
  1066. EM_SCENE_STEREO_BEHAVIOR, // "StereoBehavior" 立体行为分析(典型场景ATM舱)
  1067. EM_SCENE_INTELLICITYMANAGER,// "IntelliCityMgr" 智慧城管
  1068. EM_SCENE_PROTECTIVECABIN, // "ProtectiveCabin" 防护舱(ATM舱内)
  1069. EM_SCENE_AIRPLANEDETECT, // "AirplaneDetect" 飞机行为检测
  1070. EM_SCENE_CROWDPOSTURE, // "CrowdPosture" 人群态势(人群分布图服务)
  1071. EM_SCENE_PHONECALLDETECT, // "PhoneCallDetect" 打电话检测
  1072. EM_SCENE_SMOKEDETECTION, // "SmokeDetection" 烟雾检测
  1073. EM_SCENE_BOATDETECTION, // "BoatDetection" 船只检测
  1074. EM_SCENE_SMOKINGDETECT, // "SmokingDetect" 吸烟检测
  1075. EM_SCENE_WATERMONITOR, // "WaterMonitor" 水利监测
  1076. EM_SCENE_GENERATEGRAPHDETECTION, // GenerateGraphDetection 生成图规则
  1077. EM_SCENE_TRAFFIC_PARK, // "TrafficPark" 交通停车
  1078. EM_SCENE_OPERATEMONITOR, // "OperateMonitor" 作业检测
  1079. EM_SCENE_INTELLI_RETAIL, // "IntelliRetail" 智慧零售大类
  1080. EM_SCENE_CLASSROOM_ANALYSE, // "ClassroomAnalyse" 教育智慧课堂
  1081. EM_SCENE_FEATURE_ABSTRACT, // "FeatureAbstract" 特征向量提取大类
  1082. EM_SCENE_FACEBODY_DETECT, // "FaceBodyDetect"人体检测
  1083. EM_SCENE_FACEBODY_ANALYSE, // "FaceBodyAnalyse"人体识别
  1084. EM_SCENE_VEHICLES_DISTRI, // "VehiclesDistri"车辆密度
  1085. EM_SCENE_INTELLI_BREED, // "IntelliBreed" 智慧养殖检测
  1086. EM_SCENE_INTELLI_PS,
  1087. EM_SCENE_ELECTRIC_DETECT, // "ElectricDetect" 电力检测
  1088. EM_SCENE_RADAR_DETECT, // "RadarDetect" 雷检检测
  1089. EM_SCENE_PARKINGSPACE, // "ParkingSpace" 车位检测大类
  1090. EM_SCENE_INTELLI_FINANCE, // "IntelliFinance" 智慧金融
  1091. EM_SCENE_CROWD_ABNORMAL, // "CrowdAbnormal"
  1092. EM_SCENE_ANATOMYTEMP_DETECT,// "AnatomyTempDetect" 超温检测
  1093. EM_SCENE_WEATHER_MONITOR, // "WeatherMonitor"天气监控
  1094. EM_SCENE_ELEVATOR_ACCESS_CONTROL,// "ElevatorAccessControl" 电梯门禁
  1095. EM_SCENE_BREAK_RULE_BUILDING, // "BreakRuleBuilding"违章建筑
  1096. EM_SCENE_PANORAMA_TRAFFIC, // "PanoramaTraffic"全景交通
  1097. EM_SCENE_PORTRAIT_DETECT, // "PortraitDetect"人像检测
  1098. EM_SCENE_CONVEY_OR_BLOCK, // "ConveyorBlock" 传送带阻塞
  1099. EM_SCENE_KITCHEN_ANIMAL, // "KitchenAnimal" 厨房有害动物检测
  1100. EM_SCENE_ALLSEEINGEYE, // "AllSeeingEye" 万物检测
  1101. EM_SCENE_DRIVE, // "Drive" 驾驶行为分析
  1102. EM_SCENE_DRIVEASSISTANT, // "DriveAssistant" 高级驾驶辅助系统
  1103. EM_SCENE_INCABINMONITOR, // "InCabinMonitor" 车内驾驶舱监测
  1104. EM_SCENE_BLINDSPOTDETECTION, // "BlindSpotDetection" 盲区检测
  1105. EM_SCENE_CONVERYER_BELT, // "ConveyerBelt" 传送带检测
  1106. EM_SCENE_INTELLI_LOGISTICS, // "IntelliLogistics" 智慧物流
  1107. EM_SCENE_SMOKE_FIRE, // "SmokeFire" 烟火检测
  1108. EM_SCENE_OBJECT_MONITOR, // "ObjectMonitor" 物品监控
  1109. EM_SCENE_FIRE_FACILITIES, // "FireFacilities" 消防设施检测
  1110. EM_SCENE_FIRE_CONTROL, // "IntelliFireControl" 智慧消防
  1111. EM_SCENE_INTELLI_PARKING, // "IntelliParking" 智能停车
  1112. EM_SCENE_FINANCE_REGULATION, // "FinanceRegulation" 金融常规
  1113. EM_SCENE_ENERGY, // "Energy" 智慧能源
  1114. EM_SCENE_FIRE_CONTROL_EX, // "FireControl" 智慧消防
  1115. EM_SCENE_ANIMAL_DETECTION, // "AnimalDetection" 动物检测
  1116. EM_SCENE_FIRE_CONTROL_MONITOR, // "FireControlMonitor" 火警监控
  1117. EM_SCENE_PROTECTIVE_SUIT, // "ProtectiveSuit" 防护服或工作服检测
  1118. EM_SCENE_FISH_MONITOR, // "FishMonitor" 鱼群监测
  1119. EM_SCENE_SHOPTRUCK_DETECT, // "ShopTruckDetect" 工程车检测
  1120. EM_SCENE_GENEAL_ATTITUDE, // "GenealAttitude" 姿态检测
  1121. EM_SCENE_TRAFFIC_MAINTENANCE, /// "TrafficMaintenance" 交通运维
  1122. EM_SCENE_TRAFFIC_THROW, /// "TrafficThrow" 交通抛洒物品检测
  1123. EM_SCENE_GROUND_THING, /// "GroundThing" 地物检测
  1124. EM_SCENE_OCR_DETECTION, /// "OCRDetection" OCR字符识别
  1125. EM_SCENE_OCR_MOSAIC, /// "Mosaic" 隐私打码
  1126. EM_SCENE_TRAFFIC_EVENT, /// "TrafficEvent" 交通事件检测(该模式下,检测到的违章,作为事件报警使用,不做违章处罚)
  1127. EM_SCENE_OPEN_INTELLI, /// "OpenIntelli" 开放智能目标类检测
  1128. EM_SCENE_GENERAL_VISION_BIG_MODEL, /// "GeneralVisionBigModel" 通用视觉大模型检测
  1129. EM_SCENE_CHANGE_DETECTION, /// "ChangeDetection" 变化事件检测
  1130. EM_SCENE_CUSTOMER_FLOW, /// "CustomerFlow" 精准客流
  1131. }EM_SCENE_TYPE;
  1132. ///@brief MACRO_GROUP_PARSEDATA_CB_40_BEGIN
  1133. /************************************************************************
  1134. ** fAnalyzerData回调函数dwDataType类型定义
  1135. ***********************************************************************/
  1136. #define TYPE_CB_VIDEOSTAT 0x1000000 // 回调解析视频信息摘要类型,对应结构体为CFG_VIDEOSATA_SUMMARY_INFO
  1137. #define TYPE_CB_ANARULES 0x1000001 // 回调解析视频输入通道对应的所有事件规则类型,对应结构体为CFG_ANALYSERULES_INFO
  1138. #define TYPE_CB_VIDEOSYNOPSIS 0x1000002 // 回调解析浓缩视频的智能帧,对应结构体DH_MSG_OBJECT
  1139. #define TYPE_CB_TRAFFICFLOWINFO 0x1000003 // 回调解析交通流量信息,对应结构体DEV_EVENT_TRAFFIC_FLOWSTAT_INFO
  1140. #define TYPE_CB_TRAFFICFLOWRULE 0x1000004 // 回调解析交通流量规则信息,对应结构体 CFG_TRAFFIC_FLOWSTAT_INFO
  1141. #define TYPE_CB_VIDEOSYNOPSIS_RULE 0x1000005 // 回调解析浓缩视频的规则信息,对应结构体 NET_VIDEOSYNOPSISRULE_INFO
  1142. ///@brief MACRO_GROUP_PARSEDATA_CB_40_END
  1143. /************************************************************************
  1144. ** 配置信息(每个结构体都有能力信息,以区分不同设备程序版本和不同型号设备)
  1145. ***********************************************************************/
  1146. ///@brief 协议版本信息
  1147. typedef enum
  1148. {
  1149. CFG_PROTOCOL_VERSION_2 = 2, // 二代协议
  1150. CFG_PROTOCOL_VERSION_3 = 3 // 三代协议
  1151. }EM_PROTOCOL_VERSION;
  1152. ///@brief 视频输入通道
  1153. typedef struct CFG_RemoteDeviceVideoInput
  1154. {
  1155. BOOL bEnable;
  1156. char szName[MAX_DEVICE_NAME_LEN];
  1157. char szControlID[MAX_DEV_ID_LEN_EX];
  1158. char szMainUrl[MAX_PATH]; // 主码流url地址
  1159. char szExtraUrl[MAX_PATH]; // 辅码流url地址
  1160. int nServiceType; // 服务类型, 0-TCP, 1-UDP, 2-MCAST, -1-AUTO
  1161. }CFG_RemoteDeviceVideoInput;
  1162. ///@brief 远程设备
  1163. typedef struct AV_CFG_RemoteDevice
  1164. {
  1165. AV_int32 nStructSize;
  1166. AV_BOOL bEnable; // 使能
  1167. char szID[AV_CFG_Device_ID_Len]; // 设备ID
  1168. char szIP[AV_CFG_IP_Address_Len]; // 设备IP
  1169. AV_int32 nPort; // 端口
  1170. char szProtocol[AV_CFG_Protocol_Len];// 协议类型
  1171. char szUser[AV_CFG_User_Name_Len]; // 用户名
  1172. char szPassword[AV_CFG_Password_Len];// 密码
  1173. char szSerial[AV_CFG_Serial_Len]; // 设备序列号
  1174. char szDevClass[AV_CFG_Device_Class_Len];// 设备类型
  1175. char szDevType[AV_CFG_Device_Type_Len]; // 设备型号
  1176. char szName[AV_CFG_Device_Name_Len]; // 机器名称
  1177. char szAddress[AV_CFG_Address_Len]; // 机器部署地点
  1178. char szGroup[AV_CFG_Group_Name_Len]; // 机器分组
  1179. AV_int32 nDefinition; // 清晰度, 0-标清, 1-高清
  1180. AV_int32 nVideoChannel; // 视频输入通道数
  1181. AV_int32 nAudioChannel; // 音频输入通道数
  1182. AV_int32 nRtspPort; // Rtsp端口号
  1183. char szVendor[MAX_PATH]; // 设备接入类型
  1184. CFG_RemoteDeviceVideoInput *pVideoInput; // 视频输入通道,用户申请nMaxVideoInputs个CFG_RemoteDeviceVideoInput空间
  1185. int nMaxVideoInputs;
  1186. int nRetVideoInputs;
  1187. int nHttpPort; // http端口号
  1188. // 以下3项为国际接入方式相关
  1189. AV_BOOL bGB28181; // 是否有国际接入方式
  1190. int nDevLocalPort; // 设备本地端口
  1191. char szDeviceNo[AV_CFG_DeviceNo_Len];// 设备编号
  1192. int nLoginType; // 登录方式 0 : TCP直连(默认方式) 6 : 主动注册 7 : P2P方式,此方式时通过SerialNo与设备通过P2P连接
  1193. char szVersion[32]; // 设备软件版本
  1194. BOOL bPoE; // 是否由PoE端口连接, 该选项为只读, 只能由设备修改
  1195. UINT nPoEPort; // PoE物理端口号, 该选项为只读, 只能由设备修改
  1196. char szMac[18]; // 设备mac地址,冒号+大写
  1197. char szResvered1[2]; // 字节对齐
  1198. BOOL bEncryption; // 是否采用SSL加密传输数据,暂时仅适用从HTTP切换到HTTPS
  1199. }AV_CFG_RemoteDevice;
  1200. //-----------------------------图像通道属性-------------------------------
  1201. ///@brief 画质
  1202. typedef enum tagCFG_IMAGE_QUALITY
  1203. {
  1204. IMAGE_QUALITY_Q10 = 1, // 图像质量10%
  1205. IMAGE_QUALITY_Q30, // 图像质量30%
  1206. IMAGE_QUALITY_Q50, // 图像质量50%
  1207. IMAGE_QUALITY_Q60, // 图像质量60%
  1208. IMAGE_QUALITY_Q80, // 图像质量80%
  1209. IMAGE_QUALITY_Q100, // 图像质量100%
  1210. } CFG_IMAGE_QUALITY;
  1211. ///@brief 视频压缩格式
  1212. typedef enum tagCFG_VIDEO_COMPRESSION
  1213. {
  1214. VIDEO_FORMAT_MPEG4, // MPEG4
  1215. VIDEO_FORMAT_MS_MPEG4, // MS-MPEG4
  1216. VIDEO_FORMAT_MPEG2, // MPEG2
  1217. VIDEO_FORMAT_MPEG1, // MPEG1
  1218. VIDEO_FORMAT_H263, // H.263
  1219. VIDEO_FORMAT_MJPG, // MJPG
  1220. VIDEO_FORMAT_FCC_MPEG4, // FCC-MPEG4
  1221. VIDEO_FORMAT_H264, // H.264
  1222. VIDEO_FORMAT_H265, // H.265
  1223. VIDEO_FORMAT_SVAC, // SVAC
  1224. } CFG_VIDEO_COMPRESSION;
  1225. ///@brief 音频编码模式
  1226. typedef enum tatCFG_AUDIO_FORAMT
  1227. {
  1228. AUDIO_FORMAT_G711A, // G711a
  1229. AUDIO_FORMAT_PCM, // PCM
  1230. AUDIO_FORMAT_G711U, // G711u
  1231. AUDIO_FORMAT_AMR, // AMR
  1232. AUDIO_FORMAT_AAC, // AAC
  1233. AUDIO_FORMAT_G726, // G.726
  1234. AUDIO_FORMAT_MPEG2_LAYER2, // MPEG2-Layer2
  1235. AUDIO_FORMAT_G729, // G.729
  1236. AUDIO_FORMAT_G7221, // G.722.1
  1237. AUDIO_FORMAT_ADPCM, // ADPCM
  1238. AUDIO_FORMAT_MPEG2, // MPEG2-Layer1
  1239. AUDIO_FORMAT_OGG, // OGG
  1240. AUDIO_FORMAT_MP3, // MP3
  1241. AUDIO_FORMAT_G723, // G723
  1242. AUDIO_FORMAT_SVAC, // SVAC
  1243. AUDIO_FORMAT_OPUS, // OPUS
  1244. } CFG_AUDIO_FORMAT;
  1245. ///@brief 码流控制模式
  1246. typedef enum tagCFG_BITRATE_CONTROL
  1247. {
  1248. BITRATE_CBR, // 固定码流
  1249. BITRATE_VBR, // 可变码流
  1250. BITRATE_MBR, // 混合码流
  1251. BITRATE_CQP, // 画质调节
  1252. BITRATE_ABR, // 平均码流
  1253. } CFG_BITRATE_CONTROL;
  1254. ///@brief H264 编码级别
  1255. typedef enum tagCFG_H264_PROFILE_RANK
  1256. {
  1257. PROFILE_BASELINE = 1, // 提供I/P帧,仅支持progressive(逐行扫描)和CAVLC
  1258. PROFILE_MAIN, // 提供I/P/B帧,支持progressiv和interlaced,提供CAVLC或CABAC
  1259. PROFILE_EXTENDED, // 提供I/P/B/SP/SI帧,仅支持progressive(逐行扫描)和CAVLC
  1260. PROFILE_HIGH, // 即FRExt,Main_Profile基础上新增:8x8 intra prediction(8x8 帧内预测)
  1261. // quant(自定义量化), lossless video coding(无损视频编码), 更多的yuv格式
  1262. }CFG_H264_PROFILE_RANK;
  1263. ///@brief 分辨率枚举
  1264. typedef enum tagCFG_CAPTURE_SIZE
  1265. {
  1266. IMAGE_SIZE_D1, // 704*576(PAL) 704*480(NTSC)
  1267. IMAGE_SIZE_HD1, // 352*576(PAL) 352*480(NTSC)
  1268. IMAGE_SIZE_BCIF, // 704*288(PAL) 704*240(NTSC)
  1269. IMAGE_SIZE_CIF, // 352*288(PAL) 352*240(NTSC)
  1270. IMAGE_SIZE_QCIF, // 176*144(PAL) 176*120(NTSC)
  1271. IMAGE_SIZE_VGA, // 640*480
  1272. IMAGE_SIZE_QVGA, // 320*240
  1273. IMAGE_SIZE_SVCD, // 480*480
  1274. IMAGE_SIZE_QQVGA, // 160*128
  1275. IMAGE_SIZE_SVGA, // 800*592
  1276. IMAGE_SIZE_XVGA, // 1024*768
  1277. IMAGE_SIZE_WXGA, // 1280*800
  1278. IMAGE_SIZE_SXGA, // 1280*1024
  1279. IMAGE_SIZE_WSXGA, // 1600*1024
  1280. IMAGE_SIZE_UXGA, // 1600*1200
  1281. IMAGE_SIZE_WUXGA, // 1920*1200
  1282. IMAGE_SIZE_LTF, // 240*192
  1283. IMAGE_SIZE_720, // 1280*720
  1284. IMAGE_SIZE_1080, // 1920*1080
  1285. IMAGE_SIZE_1_3M, // 1280*960
  1286. IMAGE_SIZE_2M, // 1872*1408
  1287. IMAGE_SIZE_5M, // 3744*1408
  1288. IMAGE_SIZE_3M, // 2048*1536
  1289. IMAGE_SIZE_5_0M, // 2432*2050
  1290. IMAGE_SIZE_1_2M, // 1216*1024
  1291. IMAGE_SIZE_1408_1024, // 1408*1024
  1292. IMAGE_SIZE_8M, // 3296*2472
  1293. IMAGE_SIZE_2560_1920, // 2560*1920(5M)
  1294. IMAGE_SIZE_960H, // 960*576(PAL) 960*480(NTSC)
  1295. IMAGE_SIZE_960_720, // 960*720
  1296. IMAGE_SIZE_NHD, // 640*360
  1297. IMAGE_SIZE_QNHD, // 320*180
  1298. IMAGE_SIZE_QQNHD, // 160*90
  1299. IMAGE_SIZE_NR
  1300. } CFG_CAPTURE_SIZE;
  1301. ///@brief 视频格式
  1302. typedef struct tagCFG_VIDEO_FORMAT
  1303. {
  1304. bool abCompression;
  1305. bool abWidth;
  1306. bool abHeight;
  1307. bool abBitRateControl;
  1308. bool abBitRate;
  1309. bool abFrameRate;
  1310. bool abIFrameInterval;
  1311. bool abImageQuality;
  1312. bool abFrameType;
  1313. bool abProfile;
  1314. CFG_VIDEO_COMPRESSION emCompression; // 视频压缩格式
  1315. int nWidth; // 视频宽度
  1316. int nHeight; // 视频高度
  1317. CFG_BITRATE_CONTROL emBitRateControl; // 码流控制模式
  1318. int nBitRate; // 视频码流(kbps)
  1319. float nFrameRate; // 视频帧率
  1320. int nIFrameInterval; // I帧间隔(1-100),比如50表示每49个B帧或P帧,设置一个I帧。
  1321. CFG_IMAGE_QUALITY emImageQuality; // 图像质量
  1322. int nFrameType; // 打包模式,0-DHAV,1-"PS"
  1323. CFG_H264_PROFILE_RANK emProfile; // H.264编码级别
  1324. int nMaxBitrate; // 最大码流单位是kbps
  1325. int nAiGOP; // 图像组I帧间隔,1-150
  1326. int nSVCTLayer; // SVC-T层数
  1327. char szCustomResolutionName[16]; // 默认分辨率名称
  1328. int nPriority; // 编码优先级,0:画质优先(默认), 1:码率优先
  1329. UINT nQualityRange; // 图像质量取值范围:6,100
  1330. int nLimitBitRate; // 码流控制模式ABR下,瞬时码率上限,kbps为单位
  1331. BOOL bVirutualIFrameEnable; // 码流控制模式ABR下,是否使能虚拟I帧功能
  1332. int nEncodeType; // 0表示General,1表示SmartEncode,2表示Aicoding
  1333. int nQualityEx; // 图像质量,范围1-nQualityRange
  1334. bool abAiGOP; // nAiGOP字段是否有效
  1335. bool abSVCTLayer; // nSVCTLayer字段是否有效
  1336. bool abPriority; // nPriority字段是否有效
  1337. bool abQualityRange; // nQualityRange字段是否有效
  1338. bool abLimitBitRate; // nLimitBitRate字段是否有效
  1339. bool abVirutualIFrameEnable; // bVirutualIFrameEnable字段是否有效
  1340. bool abEncodeType; // nEncodeType字段是否有效
  1341. bool abCustomResolutionName; // szCustomResolutionName字段是否有效
  1342. BOOL bUseQualityEx; // 使用QualityEx字段表示图像质量
  1343. char szReserved[1020]; // 保留字节
  1344. } CFG_VIDEO_FORMAT;
  1345. ///@brief 音频格式
  1346. typedef struct tagCFG_AUDIO_FORMAT
  1347. {
  1348. bool abCompression;
  1349. bool abDepth;
  1350. bool abFrequency;
  1351. bool abMode;
  1352. bool abFrameType;
  1353. bool abPacketPeriod;
  1354. bool abChannels;
  1355. bool abMix;
  1356. CFG_AUDIO_FORMAT emCompression; // 音频压缩模式
  1357. AV_int32 nDepth; // 音频采样深度
  1358. AV_int32 nFrequency; // 音频采样频率
  1359. AV_int32 nMode; // 音频编码模式
  1360. AV_int32 nFrameType; // 音频打包模式, 0-DHAV, 1-PS
  1361. AV_int32 nPacketPeriod; // 音频打包周期, ms
  1362. AV_int32 nChannelsNum; // 视频通道的伴音通道号列表个数
  1363. AV_uint32 arrChannels[MAX_AUDIOCHANNELS_ARRAY_NUM]; // 视频通道的伴音通道号列表
  1364. BOOL bMix; // 是否同源
  1365. } CFG_AUDIO_ENCODE_FORMAT;
  1366. ///@brief 视频编码参数
  1367. typedef struct tagCFG_VIDEOENC_OPT
  1368. {
  1369. bool abVideoEnable;
  1370. bool abAudioEnable;
  1371. bool abSnapEnable;
  1372. bool abAudioAdd; // 音频叠加能力
  1373. bool abAudioFormat;
  1374. BOOL bVideoEnable; // 视频使能
  1375. CFG_VIDEO_FORMAT stuVideoFormat; // 视频格式
  1376. BOOL bAudioEnable; // 音频使能
  1377. BOOL bSnapEnable; // 定时抓图使能
  1378. BOOL bAudioAddEnable; // 音频叠加使能
  1379. CFG_AUDIO_ENCODE_FORMAT stuAudioFormat; // 音频格式
  1380. } CFG_VIDEOENC_OPT;
  1381. ///@brief RGBA信息
  1382. typedef struct tagCFG_RGBA
  1383. {
  1384. int nRed;
  1385. int nGreen;
  1386. int nBlue;
  1387. int nAlpha;
  1388. } CFG_RGBA;
  1389. ///@brief 区域信息
  1390. typedef struct tagCFG_RECT
  1391. {
  1392. int nLeft;
  1393. int nTop;
  1394. int nRight;
  1395. int nBottom;
  1396. } CFG_RECT;
  1397. ///@brief 区域顶点信息
  1398. typedef struct tagCFG_POLYGON
  1399. {
  1400. int nX; //0~8191
  1401. int nY;
  1402. } CFG_POLYGON;
  1403. ///@brief 区域信息
  1404. typedef struct tagCFG_REGION
  1405. {
  1406. int nPointNum;
  1407. CFG_POLYGON stuPolygon[MAX_POLYGON_NUM];
  1408. }CFG_REGION;
  1409. ///@brief 折线的端点信息
  1410. typedef struct tagCFG_POLYLINE
  1411. {
  1412. int nX; //0~8191
  1413. int nY;
  1414. } CFG_POLYLINE;
  1415. #define MASTERSLAVE_LIST_MAX_NUM 5 // 枪球联动最大主从机个数
  1416. #define MASTERSLAVE_AREA_MAX_NUM 8 // 枪球联动最大优先级区域个数
  1417. #define MASTERSLAVE_NAME_LEN 64 // 监控点最大名称长度
  1418. #define MASTERSLAVE_DEV_SERIALNO_LEN 48 // 设备序列号最大长度
  1419. ///@brief 枪球联动全局配置 (CFG_CMD_MASTERSLAVE_LINKAGE)
  1420. typedef struct tagCFG_MASTERSLAVE_LINKAGE_INFO
  1421. {
  1422. BOOL bEnable; // 枪球联动使能总开关
  1423. BOOL bAutoTrack; // 自动跟踪使能
  1424. int nAutoTrackTime[2]; // 自动跟踪时长范围, [最小时长, 最大时长], 默认[1, 300], 单位秒
  1425. int nLocateUnlockTime; // 手动定位解锁时间(秒), 0 表示永不解锁, 默认30秒. 解锁后可用于跟踪
  1426. int nPriorityAreaNum; // 优先级区域个数
  1427. CFG_RECT stuPriorityArea[MASTERSLAVE_AREA_MAX_NUM]; // 优先级区域, 数据越靠前的区域优先级越高,可为空
  1428. UINT nTrackZoomScale; // 跟踪目标对角线长占从机画面对角线的比例,使用百分制默认30%
  1429. }CFG_MASTERSLAVE_LINKAGE_INFO;
  1430. ///@brief 主设备类型
  1431. typedef enum tagEM_MASTER_TYPE
  1432. {
  1433. EM_MASTER_UNKNOWN, // 未知类型
  1434. EM_MASTER_FISHEYE, // 鱼眼联动
  1435. EM_MASTER_CAMERA, // 枪球联动
  1436. }EM_MASTER_TYPE;
  1437. ///@brief 主机列表
  1438. typedef struct tagCFG_MASTER_DEV_INFO
  1439. {
  1440. int nChannel; // 本地通道号, 从0开始
  1441. char szDevSerial[MASTERSLAVE_DEV_SERIALNO_LEN]; // 设备序列号
  1442. }CFG_MASTER_DEV_INFO;
  1443. ///@brief 从机列表
  1444. typedef struct tagCFG_SLAVER_DEV_INFO
  1445. {
  1446. int nChannel; // 本地通道号, 从0开始
  1447. char szDevSerial[MASTERSLAVE_DEV_SERIALNO_LEN]; // 设备序列号
  1448. CFG_REGION stuControlRegion; // 从机管控区域
  1449. }CFG_SLAVER_DEV_INFO;
  1450. ///@brief 枪球联动绑定关系配置 (CFG_CMD_MASTERSLAVE_GROUP)
  1451. typedef struct tagCFG_MASTERSLAVE_GROUP_INFO
  1452. {
  1453. char szName[MASTERSLAVE_NAME_LEN]; // 监控点名称
  1454. int nGroupID; // 组号
  1455. EM_MASTER_TYPE emMasterType; // 主设备类型
  1456. int nMasterNum; // 主机个数
  1457. CFG_MASTER_DEV_INFO stuMasterList[MASTERSLAVE_LIST_MAX_NUM]; // 主机列表
  1458. int nSlaverNum; // 从机个数
  1459. CFG_SLAVER_DEV_INFO stuSlaverList[MASTERSLAVE_LIST_MAX_NUM]; // 从机列表
  1460. }CFG_MASTERSLAVE_GROUP_INFO;
  1461. ///@brief 行驶方向
  1462. typedef enum tagCFG_FLOWSTAT_DIRECTION
  1463. {
  1464. CFG_DRIVING_DIR_APPROACH , //上行,即车辆离设备部署点越来越近
  1465. CFG_DRIVING_DIR_LEAVE , //下行,即车辆离设备部署点越来越远
  1466. }CFG_FLOWSTAT_DIRECTION;
  1467. #define CFG_FLOWSTAT_ADDR_NAME 16 //上下行地点名长
  1468. ///@brief 车辆流量统计车道方向信息
  1469. typedef struct tagCFG_TRAFFIC_FLOWSTAT_DIR_INFO
  1470. {
  1471. CFG_FLOWSTAT_DIRECTION emDrivingDir; //行驶方向
  1472. char szUpGoing[CFG_FLOWSTAT_ADDR_NAME]; //上行地点
  1473. char szDownGoing[CFG_FLOWSTAT_ADDR_NAME]; //下行地点
  1474. }CFG_TRAFFIC_FLOWSTAT_DIR_INFO;
  1475. ///@brief 道路等级
  1476. typedef enum tagEM_LANE_RANK_TYPE
  1477. {
  1478. EM_LANE_RANK_UNKNOWN, // 未知类型
  1479. EM_LANE_RANK_RAPID, // 快速路
  1480. EM_LANE_RANK_TRUNK, // 主干路
  1481. EM_LANE_RANK_SUBTRUNK, // 次干路
  1482. EM_LANE_RANK_BRANCH, // 支路
  1483. } EM_LANE_RANK_TYPE;
  1484. ///@brief 车道信息
  1485. typedef struct tagCFG_LANE
  1486. {
  1487. int nLaneId; // 车道编号
  1488. int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
  1489. CFG_POLYLINE stuLeftLine[MAX_POLYLINE_NUM]; // 左车道线,车道线的方向表示车道方向,沿车道方向左边的称为左车道线
  1490. int nLeftLineNum; // 左车道线顶点数
  1491. CFG_POLYLINE stuRightLine[MAX_POLYLINE_NUM]; // 右车道线,车道线的方向表示车道方向,沿车道方向右边的称为右车道线
  1492. int nRightLineNum; // 右车道线顶点数
  1493. int nLeftLineType; // 左车道线属性,1-表示白实线,2- 白虚线,3- 黄线
  1494. int nRightLineType; // 右车道线属性,1-表示白实线,2- 白虚线,3- 黄线
  1495. BOOL bDriveDirectionEnable; // 车道行驶方向使能
  1496. int nDriveDirectionNum; // 车道行驶方向数
  1497. char szDriveDirection[MAX_LIGHT_DIRECTION][MAX_NAME_LEN]; // 车道行驶方向,"Straight" 直行,"TurnLeft" 左转,"TurnRight" 右转,"U-Turn":掉头
  1498. int nStopLineNum; // 车道对应停止线顶点数
  1499. CFG_POLYLINE stuStopLine[MAX_POLYLINE_NUM]; // 车道对应停止线
  1500. int nTrafficLightNumber; // 车道对应的红绿灯组编号
  1501. bool abDetectLine; // 对应能力集
  1502. bool abPreLine;
  1503. bool abPostLine;
  1504. BYTE byReserved[1];
  1505. int nDetectLine;
  1506. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 车道对应的检测线
  1507. int nPreLine;
  1508. CFG_POLYLINE stuPreLine[MAX_POLYLINE_NUM]; // 车道对应的前置线
  1509. int nPostLine;
  1510. CFG_POLYLINE stuPostLine[MAX_POLYLINE_NUM]; // 车道对应的后置线
  1511. CFG_TRAFFIC_FLOWSTAT_DIR_INFO stuTrafficFlowDir; // 车道流量信息
  1512. EM_LANE_RANK_TYPE emRankType; // 道路等级,用于车流量统计上报交通状态
  1513. UINT nRoadwayNumber; // 用户自定义车道号, 1-16
  1514. }CFG_LANE;
  1515. ///@brief 交通灯属性
  1516. typedef struct tagCFG_LIGHTATTRIBUTE
  1517. {
  1518. BOOL bEnable; // 当前交通灯是否有效,与车辆通行无关的交通需要设置无效
  1519. int nTypeNum;
  1520. char szLightType[MAX_LIGHT_TYPE][MAX_NAME_LEN]; // 当前交通灯显现内容(包括:红-Red,黄-Yellow,绿-Green,倒计时-Countdown),如某交通灯可以显示红黄绿三种颜色,某交通灯只显示倒计时
  1521. int nDirectionNum;
  1522. char szDirection[MAX_LIGHT_DIRECTION][MAX_NAME_LEN]; // 交通灯指示的行车方向,"Straight": 直行,"TurnLeft":左转,"TurnRight":右转,"U-Turn": 掉头
  1523. int nYellowTime; // 黄灯亮时间
  1524. }CFG_LIGHTATTRIBUTE;
  1525. ///@brief 交通灯组配置信息
  1526. typedef struct tagCFG_LIGHTGROUPS
  1527. {
  1528. int nLightGroupId; // 灯组编号
  1529. CFG_RECT stuLightLocation; // 灯组坐标
  1530. int nDirection; // 灯组的方向,1- 灯组水平向,2- 灯组垂直向
  1531. BOOL bExternalDetection; // 是否为外接红绿灯信号,当外接红绿灯时,以外界信号为判断依据。外界信号每次跳变时通知
  1532. BOOL bSwingDetection; // 是否支持自适应灯组摇摆检测,在风吹或者容易震动的场景下,位置会进行一定的浮动偏差。如果由算法自行检测,会增加检测时间
  1533. int nLightNum; // 灯组中交通灯的数量
  1534. CFG_LIGHTATTRIBUTE stuLightAtrributes[MAX_LIGHT_NUM]; // 灯组中各交通灯的属性
  1535. }CFG_LIGHTGROUPS;
  1536. ///@brief 交通灯属性扩展
  1537. typedef struct tagCFG_LIGHTATTRIBUTE_V2
  1538. {
  1539. BOOL bEnable; // 当前交通灯是否有效,与车辆通行无关的交通需要设置无效
  1540. int nTypeNum;
  1541. char szLightType[MAX_LIGHT_TYPE][MAX_NAME_LEN]; // 当前交通灯显现内容(包括:红-Red,黄-Yellow,绿-Green,倒计时-Countdown),如某交通灯可以显示红黄绿三种颜色,某交通灯只显示倒计时
  1542. int nDirectionNum;
  1543. char szDirection[MAX_LIGHT_DIRECTION][MAX_NAME_LEN]; // 交通灯指示的行车方向,"Straight": 直行,"TurnLeft":左转,"TurnRight":右转,"U-Turn": 掉头
  1544. int nYellowTime; // 黄灯亮时间
  1545. UINT nDetectorPort; // 该灯对应的外接网络红绿灯信号检测器上的端口
  1546. int nGroupType; // 信号灯主体类型
  1547. char szReserved[64]; // 保留字节
  1548. }CFG_LIGHTATTRIBUTE_V2;
  1549. ///@brief 交通灯组配置信息 扩展
  1550. typedef struct tagCFG_LIGHTGROUPS_V2
  1551. {
  1552. int nLightGroupId; // 灯组编号
  1553. CFG_RECT stuLightLocation; // 灯组坐标
  1554. int nDirection; // 灯组的方向,1- 灯组水平向,2- 灯组垂直向
  1555. BOOL bExternalDetection; // 是否为外接红绿灯信号,当外接红绿灯时,以外界信号为判断依据。外界信号每次跳变时通知
  1556. BOOL bSwingDetection; // 是否支持自适应灯组摇摆检测,在风吹或者容易震动的场景下,位置会进行一定的浮动偏差。如果由算法自行检测,会增加检测时间
  1557. int nLightNum; // 灯组中交通灯的数量
  1558. CFG_LIGHTATTRIBUTE_V2 stuLightAtrributes[MAX_LIGHT_NUM]; // 灯组中各交通灯的属性
  1559. char szPassType[16]; // 通行依据"RedOff": 红灯灭 "GreenOn":绿灯亮
  1560. char szReserved[128]; // 保留字节
  1561. }CFG_LIGHTGROUPS_V2;
  1562. ///@brief 标尺类型
  1563. typedef enum EM_STAFF_TYPE
  1564. {
  1565. EM_STAFF_TYPE_ERR,
  1566. EM_STAFF_TYPE_HORIZONTAL, // "Horizontal" 水平线段
  1567. EM_STAFF_TYPE_VERTICAL, // "Vertical" 垂直线段
  1568. EM_STAFF_TYPE_ANY, // "Any" 任意线段
  1569. EM_STAFF_TYPE_CROSS, // "Cross" 垂直面交线段
  1570. }EM_STAFF_TYPE;
  1571. ///@brief 标定区域类型
  1572. typedef enum EM_CALIBRATEAREA_TYPE
  1573. {
  1574. EM_CALIBRATEAREA_TYPE_ERR,
  1575. EM_CALIBRATEAREA_TYPE_GROUD, // "Groud" : 地面,需要N条竖直线段+M条水平线段((N=3,M=1);(N=2,M=2);今后扩展)。
  1576. EM_CALIBRATEAREA_TYPE_HORIZONTAL, // "Horizontal" : 水平面,需要水平面上一点到地面点的投影垂直线段。
  1577. EM_CALIBRATEAREA_TYPE_VERTICAL, // "Vertical" : 垂直面,需要垂直面与地面的交线。
  1578. EM_CALIBRATEAREA_TYPE_ANY, // "Any" 任意平面,N条竖直线段,及每条长度(N=3,及今后扩展)。
  1579. }EM_CALIBRATEAREA_TYPE;
  1580. ///@brief 特殊区域的属性类型
  1581. typedef enum EM_SEPCIALREGION_PROPERTY_TYPE
  1582. {
  1583. EM_SEPCIALREGION_PROPERTY_TYPE_HIGHLIGHT = 1, // 高亮,键盘检测区域具有此特性
  1584. EM_SEPCIALREGION_PROPERTY_TYPE_REGULARBLINK, // 规律的闪烁,插卡区域具有此特性
  1585. EM_SEPCIALREGION_PROPERTY_TYPE_IREGULARBLINK, // 不规律的闪烁,屏幕区域具有此特性
  1586. EM_SEPCIALREGION_PROPERTY_TYPE_NUM = 4,
  1587. }EM_SEPCIALREGION_PROPERTY_TYPE;
  1588. ///@brief 目标检测类型
  1589. typedef enum EM_FACEDETECTION_TYPE
  1590. {
  1591. EM_FACEDETECTION_TYPE_ERR,
  1592. EM_FACEDETECTION_TYPE_SMALLFACE, //小脸类型,目标在视频中的比重大概17%
  1593. EM_FACEDETECTION_TYPE_LARGEFACE, //大脸类型,目标在视频中的比重大概33%
  1594. EM_FACEDETECTION_TYPE_BOTH, //检测类型
  1595. }EM_FACEDETECTION_TYPE;
  1596. ///@brief 垂直标尺
  1597. typedef struct tagCFG_STAFF
  1598. {
  1599. CFG_POLYLINE stuStartLocation; // 起始坐标点
  1600. CFG_POLYLINE stuEndLocation; // 终止坐标点
  1601. float nLenth; // 实际长度,单位米
  1602. EM_STAFF_TYPE emType; // 标尺类型
  1603. }CFG_STAFF;
  1604. ///@brief Size
  1605. typedef struct tagCFG_SIZE
  1606. {
  1607. union
  1608. {
  1609. float nWidth; // 宽
  1610. float nArea; // 面积
  1611. };
  1612. float nHeight; // 高
  1613. } CFG_SIZE;
  1614. ///@brief 遮挡信息
  1615. typedef struct tagCFG_COVER_INFO
  1616. {
  1617. bool abBlockType;
  1618. bool abEncodeBlend;
  1619. bool abPreviewBlend;
  1620. CFG_RECT stuRect; // 覆盖的区域坐标
  1621. CFG_RGBA stuColor; // 覆盖的颜色
  1622. int nBlockType; // 覆盖方式;0-黑块,1-马赛克
  1623. int nEncodeBlend; // 编码级遮挡;1-生效,0-不生效
  1624. int nPreviewBlend; // 预览遮挡;1-生效,0-不生效
  1625. } CFG_COVER_INFO;
  1626. ///@brief 多区域遮挡配置
  1627. typedef struct tagCFG_VIDEO_COVER
  1628. {
  1629. int nTotalBlocks; // 支持的遮挡块数
  1630. int nCurBlocks; // 已设置的块数
  1631. CFG_COVER_INFO stuCoverBlock[MAX_VIDEO_COVER_NUM]; // 覆盖的区域
  1632. } CFG_VIDEO_COVER;
  1633. ///@brief OSD信息
  1634. typedef struct tagCFG_OSD_INFO
  1635. {
  1636. bool abShowEnable; // 能力
  1637. CFG_RGBA stuFrontColor; // 前景颜色
  1638. CFG_RGBA stuBackColor; // 背景颜色
  1639. CFG_RECT stuRect; // 矩形区域
  1640. BOOL bShowEnable; // 显示使能
  1641. } CFG_OSD_INFO;
  1642. ///@brief 画面颜色属性
  1643. typedef struct tagCFG_COLOR_INFO
  1644. {
  1645. int nBrightness; // 亮度(0-100)
  1646. int nContrast; // 对比度(0-100)
  1647. int nSaturation; // 饱和度(0-100)
  1648. int nHue; // 色度(0-100)
  1649. int nGain; // 增益(0-100)
  1650. BOOL bGainEn; // 增益使能
  1651. } CFG_COLOR_INFO;
  1652. ///@brief 图像通道属性信息
  1653. typedef struct tagCFG_ENCODE_INFO
  1654. {
  1655. int nChannelID; // 通道号(0开始),获取时,该字段有效;设置时,该字段无效
  1656. char szChnName[MAX_CHANNELNAME_LEN]; // 无效字段
  1657. CFG_VIDEOENC_OPT stuMainStream[MAX_VIDEOSTREAM_NUM]; // 主码流,0-普通录像,1-动检录像,2-报警录像
  1658. int nValidCountMainStream; // 主码流数组中有效的个数
  1659. CFG_VIDEOENC_OPT stuExtraStream[MAX_VIDEOSTREAM_NUM];// 辅码流,0-辅码流1,1-辅码流2,2-辅码流3
  1660. int nValidCountExtraStream; // 辅码流数组中有效的个数
  1661. CFG_VIDEOENC_OPT stuSnapFormat[MAX_VIDEOSTREAM_NUM]; // 抓图,0-普通抓图,1-动检抓图,2-报警抓图
  1662. int nValidCountSnapFormat; // 抓图数组中有效的个数
  1663. DWORD dwCoverAbilityMask; // 无效字段
  1664. DWORD dwCoverEnableMask; // 无效字段
  1665. CFG_VIDEO_COVER stuVideoCover; // 无效字段
  1666. CFG_OSD_INFO stuChnTitle; // 无效字段
  1667. CFG_OSD_INFO stuTimeTitle; // 无效字段
  1668. CFG_COLOR_INFO stuVideoColor; // 无效字段
  1669. CFG_AUDIO_FORMAT emAudioFormat; // 无效字段
  1670. int nProtocolVer; // 协议版本号, 只读,获取时,该字段有效;设置时,该字段无效
  1671. BOOL bIsUseExtraStreamEx; // 是否使用辅码流扩展
  1672. CFG_VIDEOENC_OPT stuExtraStreamEx[12]; // 辅码流扩展,0-辅码流1,1-辅码流2,2-辅码流3,3-辅码流4,4-辅码流5,5-辅码流6,6-辅码流7,7-辅码流8,8-辅码流9,9-辅码流10,10-辅码流11,11-辅码流12
  1673. int nValidCountExtraStreamEx; // 辅码流扩展数组中有效的个数
  1674. char szReserved[120]; // 保留字节
  1675. } CFG_ENCODE_INFO;
  1676. ///@brief 视频输入前端能力集
  1677. typedef struct tagCFG_VIDEO_ENCODECAP
  1678. {
  1679. int nMaxCIFFrame; // CIF P帧最大值 单位Kbits, 默认值40
  1680. int nMinCIFFrame; // CIF P帧最小值 单位Kbits, 默认值7
  1681. int nMaxEncodeAudios; // 支持的最大编码音频数,用于双音频,默认1
  1682. int nMaxExtraStream; // 最大辅码流路数
  1683. }CFG_VIDEO_ENCODECAP;
  1684. ///@brief 多画面预览工作模式
  1685. typedef enum tagCFG_EM_PREVIEW_MODE
  1686. {
  1687. CFG_EM_PREVIEW_MODE_UNKNOWN = 0, //
  1688. CFG_EM_PREVIEW_MODE_SNAPSHOT, // 快照方式
  1689. CFG_EM_PREVIEW_MODE_SPLITENCODE, // 分割编码方式
  1690. CFG_EM_PREVIEW_MODE_SPLITSNAP, // 分割快照方式
  1691. }CFG_EM_PREVIEW_MODE;
  1692. #define MAX_PREVIEW_MODE_SPLIT_TYPE_NUM 8 // 最大多画面预览窗口分割种类数
  1693. ///@brief 视频浓缩能力
  1694. typedef struct tagCFG_SUPPORT_VIDEO_COMPRESS_ENCODECAP
  1695. {
  1696. BOOL bSupport[4]; // 视频浓缩能力数组,4个元素,对应主码流、辅1、辅2、辅3
  1697. char szReserved[64]; // 保留字节
  1698. }CFG_SUPPORT_VIDEO_COMPRESS_ENCODECAP;
  1699. ///@brief 编码能力集
  1700. typedef struct tagCFG_ENCODECAP
  1701. {
  1702. int nChannelNum; // 实际通道数
  1703. CFG_VIDEO_ENCODECAP stuVideoEncodeCap[MAX_VIDEO_CHANNEL_NUM]; // 各通道编码能力信息数组
  1704. CFG_EM_PREVIEW_MODE emPreviewMode; // 多画面预览工作模式
  1705. int nSplitModeNum; // 有效的多画面预览窗口分割种类数
  1706. int anSplitMode[MAX_PREVIEW_MODE_SPLIT_TYPE_NUM];// 多画面预览窗口分割数信息, 可以为1, 4, 6, 8, 9, 16, 25, 36...
  1707. // -1表示默认[1, 4, 8, 9, 16, …模拟通道数量], 为小于模拟通道数的N的平方数, 如果模拟通道大于8, 也包含8
  1708. int nAudioFrequence[16]; // 支持的音频编码采样率
  1709. int nAudioFrequenceCount; // 支持的音频编码采样率的实际个数
  1710. int nMaxExtraStream; // 最大辅码流路数
  1711. int nSupportVideoCompressNum; // 视频浓缩能力元素数量
  1712. CFG_SUPPORT_VIDEO_COMPRESS_ENCODECAP stuSupportVideoCompress[1024];
  1713. char szReserved[1020]; // 保留字节
  1714. }CFG_ENCODECAP;
  1715. ///@brief 水印配置
  1716. typedef struct tagCFG_WATERMARK_INFO
  1717. {
  1718. int nChannelID; // 通道号(0开始)
  1719. BOOL bEnable; // 使能开关
  1720. int nStreamType; // 码流类型(1~n),0-所有码流
  1721. int nDataType; // 数据类型,1-文字,2-图片
  1722. char pData[MAX_WATERMARK_LEN]; // 字符串水印数据
  1723. } CFG_WATERMARK_INFO;
  1724. ///@brief dsp配置
  1725. typedef struct tagCFG_DSPENCODECAP_INFO{
  1726. DWORD dwVideoStandardMask; // 视频制式掩码,按位表示设备能够支持的视频制式
  1727. DWORD dwImageSizeMask; // 分辨率掩码,按位表示设备能够支持的分辨率
  1728. DWORD dwEncodeModeMask; // 编码模式掩码,按位表示设备能够支持的编码模式
  1729. DWORD dwStreamCap; // 按位表示设备支持的多媒体功能,
  1730. // 第一位表示支持主码流
  1731. // 第二位表示支持辅码流1
  1732. // 第三位表示支持辅码流2
  1733. // 第五位表示支持jpg抓图
  1734. DWORD dwImageSizeMask_Assi[32];// 表示主码流为各分辨率时,支持的辅码流分辨率掩码。
  1735. DWORD dwMaxEncodePower; // DSP支持的最高编码能力
  1736. WORD wMaxSupportChannel; // 每块DSP支持最多输入视频通道数
  1737. WORD wChannelMaxSetSync; // DSP每通道的最大编码设置是否同步;0:不同步,1:同步
  1738. BYTE bMaxFrameOfImageSize[256];// 不同分辨率下的最大采集帧率,与dwVideoStandardMask按位对应
  1739. BYTE bEncodeCap; // 标志,配置时要求符合下面条件,否则配置不能生效;
  1740. // 0:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
  1741. // 1:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
  1742. // 辅码流的编码能力 <= 主码流的编码能力,
  1743. // 辅码流的分辨率 <= 主码流的分辨率,
  1744. // 主码流和辅码流的帧率 <= 前端视频采集帧率
  1745. // 2:N5的计算方法
  1746. // 辅码流的分辨率 <= 主码流的分辨率
  1747. // 查询支持的分辨率和相应最大帧率
  1748. BYTE byResolutionNum; // bResolution的长度
  1749. BYTE byResolutionNum_1; // bResolution_1的长度
  1750. BYTE byReserved;
  1751. BYTE byResolution[256]; //主码流,按照分辨率进行索引,如果支持该分辨率,则bResolution[n]等于支持的最大帧率.否则为0.
  1752. BYTE byResolution_1[256]; //辅助码流1,同主码流说明.
  1753. char reserved[28];
  1754. BYTE byImageSize[256]; // 支持的分辨率数组,参见enum CAPTURE_SIZE
  1755. BYTE byImageSize_Assi[256][256]; //表示主码流为各分辨率时,支持的辅码流分辨率,数组下标表示主码流所支持的分辨率值。
  1756. }CFG_DSPENCODECAP_INFO;
  1757. ///@brief 云台动作
  1758. typedef enum tagEM_PTZ_ACTION {
  1759. EM_PTZ_ACTION_UNKNOWN, // 未知
  1760. EM_PTZ_ACTION_SCAN, // 扫描
  1761. EM_PTZ_ACTION_PRESET, // 预置点
  1762. EM_PTZ_ACTION_PATTERN, // 巡迹
  1763. EM_PTZ_ACTION_TOUR, // 巡航
  1764. } EM_PTZ_ACTION;
  1765. //-------------------------------录象配置---------------------------------
  1766. ///@brief 时间段信息
  1767. typedef struct tagCFG_TIME_SECTION
  1768. {
  1769. DWORD dwRecordMask; // 录像掩码,按位分别为Bit0-动态检测录像、Bit1-报警录像、Bit2-定时录像、Bit3-动检和报警同时触发时才录像、Bit4-卡号录像、Bit5-智能录像、Bit6-POS录像、Bit7~Bit15保留
  1770. int nBeginHour;
  1771. int nBeginMin;
  1772. int nBeginSec;
  1773. int nEndHour;
  1774. int nEndMin;
  1775. int nEndSec;
  1776. } CFG_TIME_SECTION;
  1777. ///@brief 时间表信息
  1778. typedef struct tagCFG_TIME_SCHEDULE
  1779. {
  1780. BOOL bEnableHoliday; // 是否支持节假日配置,默认为不支持,除非获取配置后返回为TRUE,不要使能假日配置
  1781. CFG_TIME_SECTION stuTimeSection[MAX_TIME_SCHEDULE_NUM][MAX_REC_TSECT]; // 第一维前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段
  1782. } CFG_TIME_SCHEDULE;
  1783. ///@brief 实时抽帧配置,EVS
  1784. typedef struct tagCFG_BACKUP_LIVE_INFO
  1785. {
  1786. BOOL bEnable; // 是否启动抽帧
  1787. int nBackupRate; // 抽帧备份比率,如为0表示只保留I帧,其它情况下表示保留I帧以及紧邻其后的若干P帧
  1788. // 单位:百分比
  1789. // 如果GOP为50,20表示保留50*20%=10帧数据(即1个I帧和9个P帧)。如果计算结果带小数,则取整
  1790. CFG_TIME_SECTION stuTimeSection; // 抽帧时间段
  1791. } CFG_BACKUP_LIVE_INFO;
  1792. ///@brief 定时录像配置信息
  1793. typedef struct tagCFG_RECORD_INFO
  1794. {
  1795. int nChannelID; // 通道号(0开始)
  1796. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 时间表
  1797. int nPreRecTime; // 预录时间,为零时表示关闭(0~300)
  1798. BOOL bRedundancyEn; // 录像冗余开关
  1799. int nStreamType; // 0-主码流,1-辅码流1,2-辅码流2,3-辅码流3
  1800. int nProtocolVer; // 协议版本号, 只读
  1801. // 能力
  1802. BOOL abHolidaySchedule; // 为true时有假日配置信息,bHolidayEn、stuHolTimeSection才有效;
  1803. BOOL bHolidayEn; // 假日录像使能TRUE:使能,FALSE:未使能
  1804. CFG_TIME_SECTION stuHolTimeSection[MAX_REC_TSECT]; // 假日录像时间表
  1805. int nBackupLiveNum; // 实时抽帧配置个数
  1806. CFG_BACKUP_LIVE_INFO stuBackupLiveInfo[8]; // 实时抽帧配置,EVS
  1807. BOOL bSaveVideo; // 是否录制视频帧
  1808. BOOL bSaveAudio; // 录像时是否保存音频数据
  1809. BOOL bEnable; // 报警输入使能
  1810. UINT nMaxRecordTime; // 单次Pir录像时长限制(单位秒),0表示无限制
  1811. char szReserved[1024]; // 预留字节
  1812. } CFG_RECORD_INFO;
  1813. //-------------------------------报警配置---------------------------------
  1814. ///@brief 云台联动类型
  1815. typedef enum tagCFG_LINK_TYPE
  1816. {
  1817. LINK_TYPE_NONE, // 无联动
  1818. LINK_TYPE_PRESET, // 联动预置点
  1819. LINK_TYPE_TOUR, // 联动巡航
  1820. LINK_TYPE_PATTERN, // 联动轨迹
  1821. } CFG_LINK_TYPE;
  1822. ///@brief 联动云台信息
  1823. typedef struct tagCFG_PTZ_LINK
  1824. {
  1825. CFG_LINK_TYPE emType; // 联动类型
  1826. int nValue; // 联动取值分别对应预置点号,巡航号等等
  1827. } CFG_PTZ_LINK;
  1828. ///@brief 联动云台信息扩展
  1829. typedef struct tagCFG_PTZ_LINK_EX
  1830. {
  1831. CFG_LINK_TYPE emType; // 联动类型
  1832. int nParam1; // 联动参数1
  1833. int nParam2; // 联动参数2
  1834. int nParam3; // 联动参数3
  1835. int nChannelID; // 所联动云台通道
  1836. } CFG_PTZ_LINK_EX;
  1837. ///@brief 事件标题内容结构体
  1838. typedef struct tagCFG_EVENT_TITLE
  1839. {
  1840. char szText[MAX_CHANNELNAME_LEN];
  1841. CFG_POLYGON stuPoint; // 标题左上角坐标, 采用0-8191相对坐标系
  1842. CFG_SIZE stuSize; // 标题的宽度和高度,采用0-8191相对坐标系,某项或者两项为0表示按照字体自适应宽高
  1843. CFG_RGBA stuFrontColor; // 前景颜色
  1844. CFG_RGBA stuBackColor; // 背景颜色
  1845. } CFG_EVENT_TITLE;
  1846. ///@brief 邮件附件类型
  1847. typedef enum tagCFG_ATTACHMENT_TYPE
  1848. {
  1849. ATTACHMENT_TYPE_PIC, // 图片附件
  1850. ATTACHMENT_TYPE_VIDEO, // 视频附件
  1851. ATTACHMENT_TYPE_NUM, // 附件类型总数
  1852. } CFG_ATTACHMENT_TYPE;
  1853. ///@brief 邮件详细内容
  1854. typedef struct tagCFG_MAIL_DETAIL
  1855. {
  1856. CFG_ATTACHMENT_TYPE emAttachType; // 附件类型
  1857. int nMaxSize; // 文件大小上限,单位kB
  1858. int nMaxTimeLength; // 最大录像时间长度,单位秒,对video有效
  1859. }CFG_MAIL_DETAIL;
  1860. ///@brief 分割模式
  1861. typedef enum tagCFG_SPLITMODE
  1862. {
  1863. SPLITMODE_1 = 1, // 1画面
  1864. SPLITMODE_2 = 2, // 2画面
  1865. SPLITMODE_4 = 4, // 4画面
  1866. SPLITMODE_5 = 5, // 5画面
  1867. SPLITMODE_6 = 6, // 6画面
  1868. SPLITMODE_8 = 8, // 8画面
  1869. SPLITMODE_9 = 9, // 9画面
  1870. SPLITMODE_3 = 10, // 3画面
  1871. SPLITMODE_3B = 11, // 3画面倒品
  1872. SPLITMODE_12 = 12, // 12画面
  1873. SPLITMODE_16 = 16, // 16画面
  1874. SPLITMODE_20 = 20, // 20画面
  1875. SPLITMODE_25 = 25, // 25画面
  1876. SPLITMODE_36 = 36, // 36画面
  1877. SPLITMODE_49 = 49, // 49画面
  1878. SPLITMODE_64 = 64, // 64画面
  1879. SPLITMODE_144 = 144, // 144画面
  1880. SPLITMODE_PIP = 1000, // 画中画分割模式基础值
  1881. SPLITMODE_PIP1 = SPLITMODE_PIP + 1, // 画中画模式, 1个全屏大画面+1个小画面窗口
  1882. SPLITMODE_PIP3 = SPLITMODE_PIP + 3, // 画中画模式, 1个全屏大画面+3个小画面窗口
  1883. SPLITMODE_PIPN = 1999, // 画中画模式,一个全屏大画面,加n个小画面窗口。这种模式下,小画面窗口的数量是可变的,但窗口数量取决于静态配置,不可动态变化。
  1884. SPLITMODE_FREE = SPLITMODE_PIP * 2, // 自由开窗模式,可以自由创建、关闭窗口,自由设置窗口位置和Z轴次序
  1885. SPLITMODE_COMPOSITE_1 = SPLITMODE_PIP * 3 + 1, // 融合屏成员1分割
  1886. SPLITMODE_COMPOSITE_4 = SPLITMODE_PIP * 3 + 4, // 融合屏成员4分割
  1887. SPLITMODE_4A = 4001, /// 同时输出4个画面,一个大画面在左边,3个小画面在右边排成一列
  1888. SPLITMODE_4C = 4002, /// 同时输出1*4个通道(1行4列),组合序号0输出0-3通道,组合序号1输出4-7通道,依次类推。C表示Column
  1889. SPLITMODE_EOF, // 结束标识
  1890. } CFG_SPLITMODE;
  1891. ///@brief 轮巡联动配置
  1892. typedef struct tagCFG_TOURLINK
  1893. {
  1894. BOOL bEnable; // 轮巡使能
  1895. CFG_SPLITMODE emSplitMode; // 轮巡时的分割模式
  1896. int nChannels[MAX_VIDEO_CHANNEL_NUM]; // 轮巡通道号列表
  1897. int nChannelCount; // 轮巡通道数量
  1898. } CFG_TOURLINK;
  1899. ///@brief 门禁操作类型
  1900. typedef enum EM_CFG_ACCESSCONTROLTYPE
  1901. {
  1902. EM_CFG_ACCESSCONTROLTYPE_NULL = 0, // 不做操作
  1903. EM_CFG_ACCESSCONTROLTYPE_AUTO, // 自动
  1904. EM_CFG_ACCESSCONTROLTYPE_OPEN, // 开门
  1905. EM_CFG_ACCESSCONTROLTYPE_CLOSE, // 关门
  1906. EM_CFG_ACCESSCONTROLTYPE_OPENALWAYS, // 永远开启
  1907. EM_CFG_ACCESSCONTROLTYPE_CLOSEALWAYS, // 永远关闭
  1908. }EM_CFG_ACCESSCONTROLTYPE;
  1909. #define MAX_ACCESSCONTROL_NUM 8 // 最大门禁操作的组合数
  1910. ///@brief 语音呼叫发起方
  1911. typedef enum
  1912. {
  1913. EM_CALLER_DEVICE = 0, // 设备发起
  1914. }EM_CALLER_TYPE;
  1915. ///@brief 呼叫协议
  1916. typedef enum
  1917. {
  1918. EM_CALLER_PROTOCOL_CELLULAR = 0, // 手机方式
  1919. }EM_CALLER_PROTOCOL_TYPE;
  1920. ///@brief 语音呼叫联动信息
  1921. typedef struct tagCFG_TALKBACK_INFO
  1922. {
  1923. BOOL bCallEnable; // 语音呼叫使能
  1924. EM_CALLER_TYPE emCallerType; // 语音呼叫发起方
  1925. EM_CALLER_PROTOCOL_TYPE emCallerProtocol; // 语音呼叫协议
  1926. }CFG_TALKBACK_INFO;
  1927. ///@brief 电话报警中心联动信息
  1928. typedef struct tagCFG_PSTN_ALARM_SERVER
  1929. {
  1930. BOOL bNeedReport; // 是否上报至电话报警中心
  1931. int nServerCount; // 电话报警服务器个数
  1932. BYTE byDestination[MAX_PSTN_SERVER_NUM]; // 上报的报警中心下标,详见配置CFG_PSTN_ALARM_CENTER_INFO
  1933. }CFG_PSTN_ALARM_SERVER;
  1934. ///@brief 报警联动信息
  1935. typedef struct tagCFG_ALARM_MSG_HANDLE
  1936. {
  1937. //能力
  1938. bool abRecordMask;
  1939. bool abRecordEnable;
  1940. bool abRecordLatch;
  1941. bool abAlarmOutMask;
  1942. bool abAlarmOutEn;
  1943. bool abAlarmOutLatch;
  1944. bool abExAlarmOutMask;
  1945. bool abExAlarmOutEn;
  1946. bool abPtzLinkEn;
  1947. bool abTourMask;
  1948. bool abTourEnable;
  1949. bool abSnapshot;
  1950. bool abSnapshotEn;
  1951. bool abSnapshotPeriod;
  1952. bool abSnapshotTimes;
  1953. bool abTipEnable;
  1954. bool abMailEnable;
  1955. bool abMessageEnable;
  1956. bool abBeepEnable;
  1957. bool abVoiceEnable;
  1958. bool abMatrixMask;
  1959. bool abMatrixEnable;
  1960. bool abEventLatch;
  1961. bool abLogEnable;
  1962. bool abDelay;
  1963. bool abVideoMessageEn;
  1964. bool abMMSEnable;
  1965. bool abMessageToNetEn;
  1966. bool abTourSplit;
  1967. bool abSnapshotTitleEn;
  1968. bool abChannelCount;
  1969. bool abAlarmOutCount;
  1970. bool abPtzLinkEx;
  1971. bool abSnapshotTitle;
  1972. bool abMailDetail;
  1973. bool abVideoTitleEn;
  1974. bool abVideoTitle;
  1975. bool abTour;
  1976. bool abDBKeys;
  1977. bool abJpegSummary;
  1978. bool abFlashEn;
  1979. bool abFlashLatch;
  1980. BYTE byReserved1[2]; // 补齐
  1981. //信息
  1982. int nChannelCount; // 设备的视频通道数
  1983. int nAlarmOutCount; // 设备的报警输出个数
  1984. DWORD dwRecordMask[MAX_CHANNEL_COUNT]; // 录像通道掩码(按位)
  1985. BOOL bRecordEnable; // 录像使能
  1986. int nRecordLatch; // 录像延时时间(秒)
  1987. DWORD dwAlarmOutMask[MAX_CHANNEL_COUNT]; // 报警输出通道掩码
  1988. BOOL bAlarmOutEn; // 报警输出使能
  1989. int nAlarmOutLatch; // 报警输出延时时间(秒)
  1990. DWORD dwExAlarmOutMask[MAX_CHANNEL_COUNT]; // 扩展报警输出通道掩码
  1991. BOOL bExAlarmOutEn; // 扩展报警输出使能
  1992. CFG_PTZ_LINK stuPtzLink[MAX_VIDEO_CHANNEL_NUM]; // 云台联动项
  1993. BOOL bPtzLinkEn; // 云台联动使能
  1994. DWORD dwTourMask[MAX_CHANNEL_COUNT]; // 轮询通道掩码
  1995. BOOL bTourEnable; // 轮询使能
  1996. DWORD dwSnapshot[MAX_CHANNEL_COUNT]; // 快照通道号掩码
  1997. BOOL bSnapshotEn; // 快照使能
  1998. int nSnapshotPeriod; // 连拍周期(秒)
  1999. int nSnapshotTimes; // 连拍次数
  2000. BOOL bTipEnable; // 本地消息框提示
  2001. BOOL bMailEnable; // 发送邮件,如果有图片,作为附件
  2002. BOOL bMessageEnable; // 上传到报警服务器
  2003. BOOL bBeepEnable; // 蜂鸣
  2004. BOOL bVoiceEnable; // 语音提示
  2005. DWORD dwMatrixMask[MAX_CHANNEL_COUNT]; // 联动视频矩阵通道掩码
  2006. BOOL bMatrixEnable; // 联动视频矩阵
  2007. int nEventLatch; // 联动开始延时时间(秒),0-15
  2008. BOOL bLogEnable; // 是否记录日志
  2009. int nDelay; // 设置时先延时再生效,单位为秒
  2010. BOOL bVideoMessageEn; // 叠加提示字幕到视频。叠加的字幕包括事件类型,通道号,秒计时。
  2011. BOOL bMMSEnable; // 发送彩信使能
  2012. BOOL bMessageToNetEn; // 消息上传给网络使能
  2013. int nTourSplit; // 轮巡时的分割模式 0: 1画面; 1: 8画面
  2014. BOOL bSnapshotTitleEn; // 是否叠加图片标题
  2015. int nPtzLinkExNum; // 云台配置数
  2016. CFG_PTZ_LINK_EX stuPtzLinkEx[MAX_VIDEO_CHANNEL_NUM]; // 扩展云台信息
  2017. int nSnapTitleNum; // 图片标题内容数
  2018. CFG_EVENT_TITLE stuSnapshotTitle[MAX_VIDEO_CHANNEL_NUM]; // 图片标题内容
  2019. CFG_MAIL_DETAIL stuMailDetail; // 邮件详细内容
  2020. BOOL bVideoTitleEn; // 是否叠加视频标题,主要指主码流
  2021. int nVideoTitleNum; // 视频标题内容数目
  2022. CFG_EVENT_TITLE stuVideoTitle[MAX_VIDEO_CHANNEL_NUM]; // 视频标题内容
  2023. int nTourNum; // 轮询联动数目
  2024. CFG_TOURLINK stuTour[MAX_VIDEO_CHANNEL_NUM]; // 轮询联动配置
  2025. int nDBKeysNum; // 指定数据库关键字的有效数
  2026. char szDBKeys[MAX_DBKEY_NUM][MAX_CHANNELNAME_LEN]; // 指定事件详细信息里需要写到数据库的关键字
  2027. BYTE byJpegSummary[MAX_SUMMARY_LEN]; // 叠加到JPEG图片的摘要信息
  2028. BOOL bFlashEnable; // 是否使能补光灯
  2029. int nFlashLatch; // 补光灯延时时间(秒),延时时间范围:[10,300]
  2030. bool abAudioFileName;
  2031. bool abAlarmBellEn;
  2032. bool abAccessControlEn;
  2033. bool abAccessControl;
  2034. char szAudioFileName[MAX_PATH]; // 联动语音文件绝对路径
  2035. BOOL bAlarmBellEn; // 警号使能
  2036. BOOL bAccessControlEn; // 门禁使能
  2037. DWORD dwAccessControl; // 门禁组数
  2038. EM_CFG_ACCESSCONTROLTYPE emAccessControlType[MAX_ACCESSCONTROL_NUM]; // 门禁联动操作信息
  2039. bool abTalkBack;
  2040. BYTE byReserved2[3]; // 补齐
  2041. CFG_TALKBACK_INFO stuTalkback; // 语音呼叫联动信息
  2042. bool abPSTNAlarmServer;
  2043. BYTE byReserved3[3]; // 补齐
  2044. CFG_PSTN_ALARM_SERVER stuPSTNAlarmServer; // 电话报警中心联动信息
  2045. CFG_TIME_SCHEDULE stuTimeSection; // 事件响应时间表
  2046. bool abAlarmBellLatch;
  2047. bool abScheduleID; // 日程ID是否有效
  2048. short nScheduleID; // 日程ID
  2049. int nAlarmBellLatch; // 警号输出延时时间(10-300秒)
  2050. bool abAudioPlayTimes;
  2051. bool abAudioLinkTime;
  2052. BYTE byReserved5[2]; // 补齐
  2053. UINT nAudioPlayTimes; // 联动语音播放次数
  2054. UINT nAudioLinkTime; // 联动语音播放的时间, 单位:秒
  2055. bool abAlarmOutTime; // nAlarmOutTime 是否有效
  2056. int nAlarmOutTime; // 报警输出持续时间,单位秒, 如果无此字段,按设备原来的方式实现
  2057. bool abBeepTime; // nBeepTime 是否有效
  2058. int nBeepTime; // 蜂鸣时长,单位秒,最大值为3600,0代表持续蜂鸣
  2059. } CFG_ALARM_MSG_HANDLE;
  2060. ///@brief 微云元数据备机上线告警配置(对应 CFG_CMD_MCS_METADATA_SLAVE_ONLINE)
  2061. typedef struct tagCFG_MCS_METADATA_SLAVE_ONLINE
  2062. {
  2063. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  2064. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2065. }CFG_MCS_METADATA_SLAVE_ONLINE;
  2066. ///@brief 报警使能控制方式枚举类型
  2067. typedef enum tagEM_CTRL_ENABLE
  2068. {
  2069. EM_CTRL_NORMAL=0, //不控制使能
  2070. EM_CTRL_ALWAYS_EN, //总是使能
  2071. EM_CTRL_ONCE_DIS, //旁路
  2072. EM_CTRL_ALWAYS_DIS, //移除
  2073. EM_CTRL_NUM //枚举类型总数
  2074. }EM_CTRL_ENABLE;
  2075. ///@brief 防区类型
  2076. typedef enum tagEM_CFG_DEFENCEAREATYPE
  2077. {
  2078. EM_CFG_DefenceAreaType_Unknown = 0, // 未知类型
  2079. EM_CFG_DefenceAreaType_InTime, // 即时防区
  2080. EM_CFG_DefenceAreaType_Delay, // 延时防区
  2081. EM_CFG_DefenceAreaType_FullDay, // 24小时防区
  2082. EM_CFG_DefenceAreaType_Follow, // 跟随防区
  2083. EM_CFG_DefenceAreaType_Medical, // 医疗紧急防区
  2084. EM_CFG_DefenceAreaType_Panic, // 恐慌防区
  2085. EM_CFG_DefenceAreaType_Fire, // 火警防区
  2086. EM_CFG_DefenceAreaType_FullDaySound, // 24小时有声防区
  2087. EM_CFG_DefenceAreaType_FullDaySlient, // 24小时无声防区
  2088. EM_CFG_DefenceAreaType_Entrance1, // 出入防区1
  2089. EM_CFG_DefenceAreaType_Entrance2, // 出入防区2
  2090. EM_CFG_DefenceAreaType_InSide, // 内部防区
  2091. EM_CFG_DefenceAreaType_OutSide, // 外部防区
  2092. EM_CFG_DefenceAreaType_PeopleDetect, // 人员检测防区
  2093. EM_CFG_DefenceAreaType_Robbery, // 匪警防区
  2094. }EM_CFG_DEFENCEAREATYPE;
  2095. ///@brief 外部报警配置
  2096. typedef struct tagCFG_ALARMIN_INFO
  2097. {
  2098. int nChannelID; // 报警通道号(0开始)
  2099. BOOL bEnable; // 使能开关
  2100. char szChnName[MAX_CHANNELNAME_LEN]; // 报警通道名称
  2101. int nAlarmType; // 报警器类型,0:常闭,1:常开
  2102. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2103. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  2104. BOOL abDevID; //
  2105. char szDevID[MAX_NAME_LEN]; // 设备ID
  2106. int nPole; // 传感器触发模式, 0:高有效,1低有效;
  2107. // 具体表现为传感器接地or电源,与nAlarmType组合使用
  2108. EM_SENSE_METHOD emSense; // 传感器感应方式
  2109. EM_CTRL_ENABLE emCtrl; // 报警使能控制方式
  2110. int nDisDelay; // 延时撤防时间,防区类型为"Delay"(延时防区)时才有效, 单位: 秒, 最大时间通过查询能力获得
  2111. // emCtrl值为EM_CTRL_NORMAL或EM_CTRL_ALWAYS_EN 时有效。
  2112. EM_CFG_DEFENCEAREATYPE emDefenceAreaType; // 防区类型, 具体支持的类型通过查询能力获得
  2113. int nEnableDelay; // 延时布防时间, 防区类型为"Delay"(延时防区)时才有效, 单位: 秒, 最大时间通过查询能力获得
  2114. int nSlot; // 根地址, -1表示无效, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推
  2115. int nLevel1; // 第一级级联地址, 表示连接在第nSlot串口上的第nLevel1个探测器或仪表, -1表示无效, 从0开始
  2116. bool abLevel2; // 表示nLevel2字段是否存在
  2117. int nLevel2; // 第二级级联地址, 表示连接在第nLevel1个的仪表上的探测器序号, -1表示无效, 从0开始
  2118. int nDoorNotClosedTimeout; // 门未关超时时间,单位为s,范围 15s-300s
  2119. } CFG_ALARMIN_INFO;
  2120. ///@brief 网络输入报警配置
  2121. typedef struct tagCFG_NETALARMIN_INFO
  2122. {
  2123. int nChannelID; // 报警通道号(0开始)
  2124. BOOL bEnable; // 使能开关
  2125. char szChnName[MAX_CHANNELNAME_LEN]; // 报警通道名称
  2126. int nAlarmType; // 报警器类型,0:常闭,1:常开
  2127. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2128. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  2129. } CFG_NETALARMIN_INFO;
  2130. ///@brief 动检支持的视频窗口配置
  2131. typedef struct tagCFG_MOTION_WINDOW
  2132. {
  2133. int nThreshold; // 面积阀值,取值[0, 100]
  2134. int nSensitive; // 灵敏度,取值[0, 100]
  2135. CFG_RECT stuWindow; // 动检窗口区域, 坐标位置取值[0, 8192)
  2136. }CFG_MOTION_WINDOW;
  2137. ///@brief 检测区域
  2138. typedef struct tagCFG_DETECT_REGION
  2139. {
  2140. int nRegionID; // 区域ID
  2141. char szRegionName[CFG_COMMON_STRING_64]; // 动态窗口名称
  2142. int nThreshold; // 面积阀值,取值[0, 100]
  2143. int nSenseLevel; // 灵敏度1~6
  2144. int nMotionRow; // 动态检测区域的行数
  2145. int nMotionCol; // 动态检测区域的列数
  2146. BYTE byRegion[MAX_MOTION_ROW][MAX_MOTION_COL]; // 检测区域,最多32*32块区域
  2147. }CFG_DETECT_REGION;
  2148. ///@brief 动态检测报警配置
  2149. typedef struct tagCFG_MOTION_INFO
  2150. {
  2151. int nChannelID; // 报警通道号(0开始), nVersion=1时,此字段无效
  2152. BOOL bEnable; // 使能开关
  2153. int nSenseLevel; // 一代动检灵敏度1~6
  2154. int nMotionRow; // 一代动态检测区域的行数
  2155. int nMotionCol; // 一代动态检测区域的列数
  2156. BYTE byRegion[MAX_MOTION_ROW][MAX_MOTION_COL]; // 一代检测区域,最多32*32块区域
  2157. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2158. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  2159. int nVersion; // 0, 1, 由能力集确定, 只读, 等于1时以下字段有效
  2160. BOOL bSenseLevelEn; // 只读,决定nSenseLevel是否有效
  2161. BOOL bVRatioEn; // 只读,面积占用比使能, 决定nVolumeRatio是否有效
  2162. int nVolumeRatio; // 一代动检的面积占用比,1-100
  2163. BOOL bSRatioEn; // 只读,灵敏度使能,决定nSubRatio值是否有效
  2164. int nSubRatio; // 一代动检的残差阈值, 1-100
  2165. BOOL abWindow; // 此字段及以下两个字段已废弃
  2166. int nWindowCount; // 视频窗口个数
  2167. CFG_MOTION_WINDOW stuWindows[MAX_MOTION_WINDOW]; // 视频窗口数组
  2168. BOOL abDetectRegion; // 只读,1:nRegionCount,stuRegion有效
  2169. // 0:nMotionRow,nMotionCol,byRegion有效
  2170. int nRegionCount; // 三代动态检测区域个数
  2171. CFG_DETECT_REGION stuRegion[MAX_MOTION_WINDOW]; // 三代动态检测区域
  2172. CFG_ALARM_MSG_HANDLE stuRemoteEventHandler; // 前端动态检测联动
  2173. CFG_TIME_SECTION stuRemoteTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 前端动态检测联动, 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuRemoteEventHandler 中的 stuTimeSection
  2174. } CFG_MOTION_INFO;
  2175. ///@brief 视频丢失报警配置
  2176. typedef struct tagCFG_VIDEOLOST_INFO
  2177. {
  2178. int nChannelID; // 报警通道号(0开始)
  2179. BOOL bEnable; // 使能开关
  2180. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2181. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  2182. } CFG_VIDEOLOST_INFO;
  2183. ///@brief 视频遮挡报警配置
  2184. typedef struct tagCFG_SHELTER_INFO
  2185. {
  2186. int nChannelID; // 报警通道号(0开始)
  2187. BOOL bEnable; // 使能开关
  2188. int nSenseLevel; // 灵敏度
  2189. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2190. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  2191. } CFG_SHELTER_INFO;
  2192. ///@brief 无存储设备报警配置
  2193. typedef struct tagCFG_STORAGENOEXIST_INFO
  2194. {
  2195. BOOL bEnable; // 使能开关
  2196. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2197. } CFG_STORAGENOEXIST_INFO;
  2198. ///@brief 存储设备访问出错报警配置
  2199. typedef struct tagCFG_STORAGEFAILURE_INFO
  2200. {
  2201. BOOL bEnable; // 使能开关
  2202. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2203. } CFG_STORAGEFAILURE_INFO;
  2204. ///@brief 存储设备空间不足报警配置
  2205. typedef struct tagCFG_STORAGELOWSAPCE_INFO
  2206. {
  2207. BOOL bEnable; // 使能开关
  2208. int nLowerLimit; // 硬盘剩余容量下限,百分数(0~99)
  2209. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2210. } CFG_STORAGELOWSAPCE_INFO;
  2211. ///@brief 网络断开报警配置
  2212. typedef struct tagCFG_NETABORT_INFO
  2213. {
  2214. BOOL bEnable; // 使能开关
  2215. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2216. } CFG_NETABORT_INFO;
  2217. ///@brief IP冲突报警配置
  2218. typedef struct tagCFG_IPCONFLICT_INFO
  2219. {
  2220. BOOL bEnable; // 使能开关
  2221. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2222. } CFG_IPCONFLICT_INFO;
  2223. ///@brief CLIENT_QueryNewSystemInfo 接口的命令 CFG_CAP_ALARM (获取报警能力集)对应结构体
  2224. ///@brief 传感器报警方式
  2225. typedef struct tagCFG_ALARM_SENSE_METHOD
  2226. {
  2227. int nSupportSenseMethodNum; // 支持的传感器方式数
  2228. EM_SENSE_METHOD emSupportSenseMethod[MAX_ALARM_SENSE_METHOD_NUM]; // 支持的传感器方式
  2229. }CFG_ALARM_SENSE_METHOD;
  2230. ///@brief 获取报警能力集
  2231. typedef struct tagCFG_CAP_ALARM_INFO
  2232. {
  2233. BOOL bAlarmPir; // 设备是否支持PIR(人体热式感应器)报警,外部报警的一种
  2234. BOOL bFlashLight; // 设备是否支持补光灯
  2235. int nDefenceAreaTypeNum; // 防区类型种类数,为0表示无此字段时报警输入不作为防区使用。
  2236. EM_CFG_DEFENCEAREATYPE emDefenceAreaType[MAX_ALARM_DEFENCE_TYPE_NUM]; // 支持防区类型
  2237. int nMaxDelay; // 延时防区的最大延时时间,单位为秒,只有支持延时防区时此字段才有效。
  2238. int nAlarmChannelNum; // 报警通道数,为了保持兼容性,此为0时表示每个通道支持所有类型的传感器
  2239. CFG_ALARM_SENSE_METHOD stuAlarmChannel[MAX_ALARM_CHANNEL_NUM]; // 报警通道集合
  2240. int nAlarmBellCount; // 警号个数
  2241. int nMaxBackupAlarmServer; // 最大备用报警中心数,无此字段时默认为0,0表示不支持备用报警中心
  2242. int nMaxPSTNAlarmServer; // 最大电话报警中心数, 无此字段时默认为0,0表示不支持电话报警中心。
  2243. BOOL bSupportAlarmRegion; // 报警设备是否支持AlarmRegion组件。如果没有该字段或者该字段为false,客户端使用已有报警组件(alarm、alarmSubregion)操作设备;如果该字段为true,客户端使用新报警组件操作设备
  2244. BOOL bVTHSensorTypeCorrectly; // VTH报警输入传感器类型NO、NC正确使用,无这个能力或false的VTH表示NO、NC与协议相反使用
  2245. char szResvered[1024]; // 保留字段
  2246. }CFG_CAP_ALARM_INFO;
  2247. ///@brief 补光灯配置
  2248. typedef struct tagCFG_FLASH_LIGHT
  2249. {
  2250. BOOL bEnable; // 使能开关
  2251. int nBrightness; // 亮度 0~100
  2252. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 补光灯工作时间段
  2253. }CFG_FLASH_LIGHT;
  2254. ///@brief 自定义案件信息
  2255. typedef struct tagCFG_CUSTOMCASE
  2256. {
  2257. char szCaseTitle[MAX_OSD_TITLE_LEN]; // 案件名称
  2258. char szCaseContent[MAX_OSD_SUMMARY_LEN]; // 案件名称
  2259. BOOL bCaseNoOsdEn; // 案件编号叠加使能
  2260. }CFG_CUSTOMCASE;
  2261. ///@brief 时间
  2262. typedef struct tagCFG_NET_TIME
  2263. {
  2264. int nStructSize;
  2265. DWORD dwYear; // 年
  2266. DWORD dwMonth; // 月
  2267. DWORD dwDay; // 日
  2268. DWORD dwHour; // 时
  2269. DWORD dwMinute; // 分
  2270. DWORD dwSecond; // 秒
  2271. } CFG_NET_TIME;
  2272. ///@brief 刻录配置
  2273. typedef struct tagCFG_JUDICATURE_INFO
  2274. {
  2275. char szDiskPassword[MAX_PASSWORD_LEN]; // 光盘密码(废弃, 使用szPassword和nPasswordLen)
  2276. char szCaseNo[MAX_OSD_SUMMARY_LEN]; // 案件编号
  2277. BOOL bCaseNoOsdEn; // 案件编号叠加使能
  2278. char szCaseTitle[MAX_OSD_SUMMARY_LEN]; // 案件名称
  2279. BOOL bCaseTitleOsdEn; // 案件名称叠加使能
  2280. char szOfficer[MAX_OSD_SUMMARY_LEN]; // 办案人员
  2281. BOOL bOfficerOsdEn; // 办案人员叠加使能
  2282. char szLocation[MAX_OSD_SUMMARY_LEN]; // 办案地点
  2283. BOOL bLocationOsdEn; // 办案地点叠加使能
  2284. char szRelatedMan[MAX_OSD_SUMMARY_LEN]; // 涉案人员
  2285. BOOL bRelatedManOsdEn; // 涉案人员叠加使能
  2286. char szDiskNo[MAX_OSD_SUMMARY_LEN]; // 光盘编号
  2287. BOOL bDiskNoOsdEn; // 光盘编号叠加使能
  2288. BOOL bCustomCase; // TRUE:自定义案件信息,FALSE: 上边szCaseNo等字段有效
  2289. int nCustomCase; // 实际CFG_CUSTOMCASE个数
  2290. CFG_CUSTOMCASE stuCustomCases[MAX_CUSTOMCASE_NUM];// 自定义案件信息
  2291. BOOL bDataCheckOsdEn; // 光盘刻录数据校验配置 叠加使能
  2292. BOOL bAttachFileEn; // 附件上传使能
  2293. char szPassword[MAX_PASSWORD_LEN]; // 密码, 刻录光盘时、配置读保护密码
  2294. int nPasswordLen; // 密码长度
  2295. CFG_NET_TIME stuStartTime; // 片头信息叠加开始时间
  2296. int nPeriod; // 片头信息叠加时间长度,单位:分钟
  2297. }CFG_JUDICATURE_INFO;
  2298. ///@brief 刻录满事件配置
  2299. typedef struct tagCFG_BURNFULL_ONE
  2300. {
  2301. char szBurnDisk[MAX_NAME_LEN]; // 刻录设备
  2302. BOOL bEnable; // 使能开关
  2303. unsigned int nLowerLimit; // 光盘剩余容量下限 单位:M
  2304. BOOL bBurnStop; // 刻录停止使能
  2305. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  2306. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段
  2307. BOOL bChangeDisk; // 换盘使能
  2308. }CFG_BURNFULL_ONE;
  2309. ///@brief 刻录满事件配
  2310. typedef struct tagCFG_BURNFULL_INFO
  2311. {
  2312. unsigned int nBurnDev; // 实际刻录设备个数
  2313. CFG_BURNFULL_ONE stuBurns[MAX_BURNING_DEV_NUM]; // 每个元素对应一个刻录设备
  2314. }CFG_BURNFULL_INFO;
  2315. //-------------------------------抓图配置能力---------------------------------
  2316. ///@brief 抓图配置能力
  2317. typedef struct tagCFG_SNAPCAPINFO_INFO
  2318. {
  2319. int nChannelID; // 抓图通道号(0开始)
  2320. DWORD dwIMageSizeNum; // 支持的分别率信息
  2321. CFG_CAPTURE_SIZE emIMageSizeList[MAX_IMAGESIZE_NUM];
  2322. DWORD dwFramesPerSecNum; // 支持的帧率信息
  2323. int nFramesPerSecList[MAX_FPS_NUM];
  2324. DWORD dwQualityMun; // 支持的画质信息
  2325. CFG_IMAGE_QUALITY emQualityList[MAX_QUALITY_NUM];
  2326. DWORD dwMode; // 模式,按位:第一位:定时;第二位:手动。
  2327. DWORD dwFormat; // 图片格式模式,按位:第一位:bmp;第二位:jpg。
  2328. } CFG_SNAPCAPINFO_INFO;
  2329. //-------------------------------网络存储服务器配置---------------------------------
  2330. ///@brief 网络存储服务器配置
  2331. typedef struct tagCFG_CHANNEL_TIME_SECTION
  2332. {
  2333. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_NAS_TIME_SECTION];//存储时间段
  2334. } CFG_CHANNEL_TIME_SECTION;
  2335. ///@brief NAS信息
  2336. typedef struct tagCFG_NAS_INFO
  2337. {
  2338. BOOL bEnable; // 使能开关
  2339. int nVersion; // 网络存储服务器版本0=老的FTP,1=NAS存储
  2340. int nProtocol; // 协议类型0=FTP 1=SMB
  2341. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  2342. int nPort; // 端口号
  2343. char szUserName[MAX_USERNAME_LEN]; // 帐户名
  2344. char szPassword[MAX_PASSWORD_LEN]; // 密码
  2345. char szDirectory[MAX_DIRECTORY_LEN]; // 共享的目录名
  2346. int nFileLen; // 文件长度
  2347. int nInterval; // 相邻文件时间间隔
  2348. CFG_CHANNEL_TIME_SECTION stuChnTime[MAX_VIDEO_CHANNEL_NUM]; // 存储时间段
  2349. int nChnTimeCount; // 有效的存储时间段数
  2350. } CFG_NAS_INFO;
  2351. //------------------------------云台配置--------------------------------------------
  2352. ///@brief 协议名
  2353. typedef struct tagCFG_PRONAME
  2354. {
  2355. char name[MAX_NAME_LEN]; // 协议名
  2356. } CFG_PRONAME;
  2357. ///@brief 串口基本属性
  2358. typedef struct tagCFG_COMM_PROP
  2359. {
  2360. BYTE byDataBit; // 数据位;0:5,1:6,2:7,3:8
  2361. BYTE byStopBit; // 停止位;0:1位,1:1.5位,2:2位
  2362. BYTE byParity; // 校验位;0:无校验,1:奇校验;2:偶校验
  2363. BYTE byBaudRate; // 波特率;0:300,1:600,2:1200,3:2400,4:4800,
  2364. // 5:9600,6:19200,7:38400,8:57600,9:115200
  2365. } CFG_COMM_PROP;
  2366. ///@brief 归位预置点配置
  2367. typedef struct tagCFG_PRESET_HOMING
  2368. {
  2369. int nPtzPresetId; //云台预置点编号 0~65535
  2370. //-1表示无效
  2371. int nFreeSec; //空闲的时间,单位为秒
  2372. }CFG_PRESET_HOMING;
  2373. ///@brief 云台配置
  2374. typedef struct tagCFG_PTZ_INFO
  2375. {
  2376. bool abMartixID;
  2377. bool abCamID;
  2378. bool abPTZType;
  2379. int nChannelID; // 通道号(0开始)
  2380. BOOL bEnable; // 使能开关
  2381. char szProName[MAX_NAME_LEN]; // 协议名称
  2382. int nDecoderAddress; // 解码器地址;0 - 255
  2383. CFG_COMM_PROP struComm;
  2384. int nMartixID; // 矩阵号
  2385. int nPTZType; // 云台类型0-兼容,本地云台 1-远程网络云台
  2386. int nCamID; // 摄像头ID
  2387. int nPort; // 使用的串口端口号
  2388. CFG_PRESET_HOMING stuPresetHoming; // 一段时间不操作云台,自动归位到某个预置点
  2389. int nControlMode; // 控制模式, 0:"RS485"串口控制(默认);1:"Coaxial" 同轴口控制
  2390. } CFG_PTZ_INFO;
  2391. ///@brief 定时功能类型
  2392. typedef enum tagCFG_PTZ_FUNC_TYPE
  2393. {
  2394. FUNC_TYPE_TOUR = 0 , //巡航
  2395. FUNC_TYPE_PATTERN , //自动巡迹
  2396. FUNC_TYPE_PRE , //预置点
  2397. FUNC_TYPE_SCAN , //自动线扫
  2398. FUNC_TYPE_MAX ,
  2399. }CFG_PTZ_FUNC_TYPE;
  2400. ///@brief 自动归位
  2401. typedef struct tagCFG_AUTO_HOMING
  2402. {
  2403. BOOL bEnable; // 自动归位开关
  2404. int nTime; // 空闲时间,表示空闲的时间,单位为秒
  2405. }CFG_AUTO_HOMING;
  2406. ///@brief 定时动作配置
  2407. typedef struct tagCFG_PTZ_PER_AUTOMOVE_INFO
  2408. {
  2409. BOOL bEnable; // 定时动作开关标志 TRUE 开,FALSE 关
  2410. CFG_TIME_SCHEDULE stTimeSchedule; // 时间表类型
  2411. CFG_PTZ_FUNC_TYPE emFuncType; // 定时功能
  2412. int nTourId; // 巡航编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wTourMin和wTourMax
  2413. int nPatternId; // 自动巡迹编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wPatternMin和wPatternMax
  2414. int nPresetId; // 预置点编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wPresetMin和wPresetMax
  2415. int nScanId; // 自动线扫编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wAutoScanMin和wAutoScanMax
  2416. CFG_AUTO_HOMING stAutoHoming; // 自动归位,一段时间不操作云台,自动归位到该时间段内的动作
  2417. BOOL bSnapshotEnable; // 预置点快照使能,只有当emFuncType为FUNC_TYPE_PRE时才有效
  2418. int nSnapshortDelayTime; // 预置点抓拍延时时间,单位秒,只有当emFuncType为FUNC_TYPE_PRE时才有效
  2419. BOOL bEnableSpecialTime; // 是否启用szSpecialTime字段
  2420. int nSpecialTimeNum; // 指定日期的工作时间段数量
  2421. char szSpecialTime[64][32]; // 指定日期的工作时间 如:"2023-05-05 00:00:00-08:00:00"表示2023年5月5号0点到8点生效
  2422. char szReserved[1024]; // 保留字节
  2423. }CFG_PTZ_PER_AUTOMOVE_INFO;
  2424. ///@brief 云台的配置信息
  2425. typedef struct tagCFG_PTZ_ALL_AUTOMOVE_INFO
  2426. {
  2427. CFG_PTZ_PER_AUTOMOVE_INFO stPTZPerInfo[MAX_CONFIG_NUM]; //配置信息
  2428. int nCfgNum; //获取到的配置个数
  2429. }CFG_PTZ_ALL_AUTOMOVE_INFO;
  2430. ///@brief 云台定时动作配置,注意,此结构针对设备
  2431. typedef struct tagCFG_PTZ_AUTOMOVE_INFO
  2432. {
  2433. CFG_PTZ_ALL_AUTOMOVE_INFO *pstPTZAutoConfig; //云台的配置信息
  2434. int nMaxPTZNum; //结构体申请的云台个数(对于多通道查询,申请不小于设备通数,对于单通道查询,一个就够了)
  2435. int nReturnPTZNum; //设备返回的云台个数(一般为设备通道数)
  2436. }CFG_PTZ_AUTOMOVE_INFO;
  2437. //---------------------------------视频分析设备配置------------------------------------------
  2438. ///@brief 目标属性类型
  2439. typedef enum tagEM_FACEFEATURE_TYPE
  2440. {
  2441. EM_FACEFEATURE_UNKNOWN, // 未知
  2442. EM_FACEFEATURE_SEX, // 性别
  2443. EM_FACEFEATURE_AGE, // 年龄
  2444. EM_FACEFEATURE_EMOTION, // 表情
  2445. EM_FACEFEATURE_GLASSES, // 眼镜状态
  2446. EM_FACEFEATURE_EYE, // 眼睛状态
  2447. EM_FACEFEATURE_MOUTH, // 嘴巴状态
  2448. EM_FACEFEATURE_MASK, // 口罩状态
  2449. EM_FACEFEATURE_BEARD, // 胡子状态
  2450. EM_FACEFEATURE_ATTRACTIVE, // 魅力值
  2451. } EM_FACEFEATURE_TYPE;
  2452. ///@brief 定时上报以及上报周期
  2453. typedef struct tagCFG_SUPPORT_SCHEDULE_REPORT
  2454. {
  2455. BOOL bEnable; // 是否支持定时上报功能
  2456. int nSupportPeriodNum; //有效的上报周期个数
  2457. int nSupportPeriod[16]; // 设备支持的上报周期颗粒度数组,单位为分钟
  2458. }CFG_SUPPORT_SCHEDULE_REPORT;
  2459. ///@brief 精准人数统计类型
  2460. typedef enum tagEM_RULE_TYPE_ACCURATE
  2461. {
  2462. EM_RULE_TYPE_ACCURATE_UNKNOWN, // 未知
  2463. EM_RULE_TYPE_ACCURATE_NUMBERSTAT, // 客流ReID
  2464. EM_RULE_TYPE_ACCURATE_TARGETRECOGNITION, // 目标去重
  2465. EM_RULE_TYPE_ACCURATE_NUMBERSTATCLUSTER, // 客流聚档
  2466. }EM_RULE_TYPE_ACCURATE;
  2467. ///@brief 支持的去重方向
  2468. typedef enum tagEM_DIRECTION_ACCURATE
  2469. {
  2470. EM_DIRECTION_ACCURATE_UNKNOWN, // 未知
  2471. EM_DIRECTION_ACCURATE_ENTER, // 进入
  2472. EM_DIRECTION_ACCURATE_EXIT, // 离开
  2473. }EM_DIRECTION_ACCURATE;
  2474. ///@brief 精准客流能力,客流ReID, 人脸去重,客流聚档的对外能力
  2475. typedef struct tagCFG_ACCURATE_NUMBER_STAT
  2476. {
  2477. BOOL bSupport; // 是否支持精准客流
  2478. BOOL bSupportLocalDataStore; // 是否支持本地报表查询
  2479. EM_RULE_TYPE_ACCURATE emRuleType; // 精准人数统计类型
  2480. int nChannelsNum; // 支持客流融合的通道号个数
  2481. int nChannels[1024]; // 支持客流融合的通道号,在RuleType为NumberStatCluster时有效
  2482. int nAreaNum; // 单个通道支持的区域个数,NVR填写1,IPC根据支持的区域数填写
  2483. BOOL bSupportTimeCfg; // 是否支持营业时间设置,FaceRecognition存在支持和不支持营业时间设置两种形态
  2484. int nDirectionNum; // 支持的去重方向个数
  2485. EM_DIRECTION_ACCURATE emDirection[32]; // 支持的去重方向
  2486. int nGranularityNum; // 支持查询粒度个数
  2487. char szGranularity[8][8]; // 支持查询粒度
  2488. }CFG_ACCURATE_NUMBER_STAT;
  2489. ///@brief 人数统计大类场景
  2490. typedef struct tagCFG_NUMBER_STAT_INFO
  2491. {
  2492. UINT nCameraType; // 相机类型,0:表示老单目客流 1:表示新统一单目客流 2:表示新统一双目客流
  2493. CFG_SUPPORT_SCHEDULE_REPORT stuSupportScheduleReport; // 定时上报以及上报周期
  2494. CFG_ACCURATE_NUMBER_STAT stuAccurateNumberStat; // 精准客流能力,客流ReID, 目标去重,客流聚档的对外能力
  2495. }CFG_NUMBER_STAT_INFO;
  2496. ///@brief 客流量统计
  2497. typedef struct tagCFG_NUMBERSTAT_RULE_INFO
  2498. {
  2499. UINT nMaxRules; // 支持规则的最大个数
  2500. }CFG_NUMBERSTAT_RULE_INFO;
  2501. ///@brief 排队检测
  2502. typedef struct tagCFG_QUEUEDETECTION_RULE_INFO
  2503. {
  2504. UINT nMaxRules; // 支持规则的最大个数
  2505. }CFG_QUEUEDETECTION_RULE_INFO;
  2506. ///@brief 区域内人数统计
  2507. typedef struct tagCFG_MANNUMDETECTION_RULE_INFO
  2508. {
  2509. UINT nMaxRules; // 支持规则的最大个数
  2510. }CFG_MANNUMDETECTION_RULE_INFO;
  2511. ///@brief 人体检测及人体识别支持的脸部特征
  2512. typedef enum tagCFG_EM_FACE_TRAIT
  2513. {
  2514. CFG_EM_FACE_TRAIT_UNKNOWN, // 未知
  2515. CFG_EM_FACE_TRAIT_SEX, // 性别
  2516. CFG_EM_FACE_TRAIT_AGE, // 年龄
  2517. CFG_EM_FACE_TRAIT_GLASSES, // 眼镜
  2518. CFG_EM_FACE_TRAIT_BEARD, // 胡子
  2519. CFG_EM_FACE_TRAIT_MASK, // 口罩
  2520. CFG_EM_FACE_TRAIT_EMOTION, // 表情
  2521. }CFG_EM_FACE_TRAIT;
  2522. ///@brief 人体检测及人体识别支持的身体特征
  2523. typedef enum tagCFG_EM_BODY_TRAIT
  2524. {
  2525. CFG_EM_BODY_TRAIT_UNKNOWN, // 未知
  2526. CFG_EM_BODY_TRAIT_SEX, // 性别
  2527. CFG_EM_BODY_TRAIT_AGEGROUP, // 年龄组
  2528. CFG_EM_BODY_TRAIT_COATTYPE, // 上衣
  2529. CFG_EM_BODY_TRAIT_TROUSERSTYPE, // 裤子
  2530. CFG_EM_BODY_TRAIT_ANGLE, // 人体角度
  2531. CFG_EM_BODY_TRAIT_UPPERPATTERN, // 上衣模式
  2532. CFG_EM_BODY_TRAIT_TROUSERSCOLOR, // 裤子颜色
  2533. CFG_EM_BODY_TRAIT_UMBRELLA, // 打伞
  2534. CFG_EM_BODY_TRAIT_UMBRELLACOLOR, // 雨伞颜色
  2535. CFG_EM_BODY_TRAIT_HOLD, // 胸前报东西
  2536. CFG_EM_BODY_TRAIT_TROUSERSPATTERN, // 裤子模式
  2537. CFG_EM_BODY_TRAIT_HATTYPE, // 帽子款式
  2538. CFG_EM_BODY_TRAIT_HATCOLOR, // 帽子颜色
  2539. CFG_EM_BODY_TRAIT_UPPERTYPE, // 上衣款式
  2540. CFG_EM_BODY_TRAIT_COATCOLOR, // 上衣颜色
  2541. CFG_EM_BODY_TRAIT_HAIRSTYLE, // 发型
  2542. CFG_EM_BODY_TRAIT_HAIRCOLOR, // 头发颜色
  2543. CFG_EM_BODY_TRAIT_SHOESTYPE, // 鞋子款式
  2544. CFG_EM_BODY_TRAIT_SHOESCOLOR, // 鞋子颜色
  2545. CFG_EM_BODY_TRAIT_BAG, // 箱包款式
  2546. CFG_EM_BODY_TRAIT_BAGCOLOR, // 箱包颜色
  2547. CFG_EM_BODY_TRAIT_MASK, // 口罩
  2548. CFG_EM_BODY_TRAIT_MASKCOLOR, // 口罩颜色
  2549. }CFG_EM_BODY_TRAIT;
  2550. ///@brief 人体检测及人体识别支持的脸部抓拍策略
  2551. typedef enum tagCFG_EM_FACE_SNAP_POLICY
  2552. {
  2553. CFG_EM_FACE_SNAP_POLICY_UNKNOWN, // 未知
  2554. CFG_EM_FACE_SNAP_POLICY_REALTIME, // 实时抓拍模式(当前的通用模式,实时性优先)
  2555. CFG_EM_FACE_SNAP_POLICY_OPTIMAL, // 优选抓拍模式,在设定的延时区间(OptimalTime)内挑选评分最高的抓图,准确性优先但延时较大
  2556. CFG_EM_FACE_SNAP_POLICY_QUALITY, // 质量抓拍模式,在Optimal的基础上,如果图片质量好于阈值提前结束优选,提高实时性
  2557. CFG_EM_FACE_SNAP_POLICY_RECOGNITION, // 识别优先抓拍模式,在优选时间内,以一定间隔帧数多次进行比对;一旦比对成功则立即结束优选,以提高对比成功率,取代质量优先模式。
  2558. CFG_EM_FACE_SNAP_POLICY_QUICK, // 快速优选,从检测到目标/人体开始,抓拍一定帧数内的质量最好的目标或人体
  2559. CFG_EM_FACE_SNAP_POLICY_FULLTRACK, // 全程优选,抓拍全程质量最好的目标人体
  2560. CFG_EM_FACE_SNAP_POLICY_INTERVAL, // 间隔抓拍
  2561. CFG_EM_FACE_SNAP_POLICY_SINGLE, // 单人模式,常用于门禁
  2562. CFG_EM_FACE_SNAP_POLICY_PRECISION, // 高精度模式,增强目标识别
  2563. }CFG_EM_FACE_SNAP_POLICY;
  2564. ///@brief 人体检测能力集
  2565. typedef struct tagFACEBODY_DETECT_CAPS
  2566. {
  2567. CFG_EM_FACE_TRAIT szFaceFeatureList[32]; // 支持检测的目标属性
  2568. unsigned int nFaceFeature; // 返回的目标属性个数
  2569. CFG_EM_BODY_TRAIT szBodyFeatureList[32]; // 支持检测的人体属性
  2570. unsigned int nBodyFeature; // 返回的目标属性个数
  2571. CFG_EM_FACE_SNAP_POLICY szSnapPolicyList[16]; // 支持抓拍属性
  2572. unsigned int nSnapPolicy; // 返回的目标属性个数
  2573. BYTE byReserved[256]; // 预留字段
  2574. }FACEBODY_DETECT_CAPS;
  2575. ///@brief 人体识别能力集
  2576. typedef struct tagFACEBODY_ANALYSE_CAPS
  2577. {
  2578. CFG_EM_FACE_TRAIT szFaceFeatureList[32]; // 支持检测的目标属性
  2579. unsigned int nFaceFeature; // 返回的目标属性个数
  2580. CFG_EM_BODY_TRAIT szBodyFeatureList[32]; // 支持检测的人体属性
  2581. unsigned int nBodyFeature; // 返回的目标属性个数
  2582. CFG_EM_FACE_SNAP_POLICY szSnapPolicyList[16]; // 支持抓拍属性
  2583. unsigned int nSnapPolicy; // 返回的目标属性个数
  2584. BYTE byReserved[256]; // 预留字段
  2585. }FACEBODY_ANALYSE_CAPS;
  2586. ///@brief 可选择特写模式
  2587. typedef enum tagEM_SUPPORT_CLOSE_UP_TYPE
  2588. {
  2589. EM_SUPPORT_CLOSE_UP_TYPE_UNKNOWN, // 未知
  2590. EM_SUPPORT_CLOSE_UP_TYPE_TRACK_MODE, // 跟踪模式
  2591. EM_SUPPORT_CLOSE_UP_TYPE_FIXED_MODE, // 固定模式
  2592. EM_SUPPORT_CLOSE_UP_TYPE_DESIGNED_REGION_MODE, // 指定区域模式
  2593. } EM_SUPPORT_CLOSE_UP_TYPE;
  2594. ///@brief 睿厨着装检特征列表
  2595. typedef enum tagEM_FEATURE_LIST_TYPE
  2596. {
  2597. EM_FEATURE_LIST_UNKNOWN, // 未知
  2598. EM_FEATURE_LIST_HAS_MASK, // 是否戴口罩
  2599. EM_FEATURE_LIST_HAS_CHEF_HAT, // 是否戴厨师帽
  2600. EM_FEATURE_LIST_HAS_CHEF_CLOTHES,//是否穿厨师服
  2601. EM_FEATURE_LIST_CHEF_CLOTHES_COLOR, // 厨师服的颜色
  2602. }EM_FEATURE_LIST_TYPE;
  2603. ///@brief 检测符合要求的厨师服颜色不报警(无此字段表示不检测厨师服颜色)
  2604. typedef enum tagEM_SUPPORTED_COLOR_LIST_TYPE
  2605. {
  2606. EM_SUPPORTED_COLOR_LIST_TYPE_UNKNOWN, // 未知
  2607. EM_SUPPORTED_COLOR_LIST_TYPE_BLACK, // 黑色
  2608. EM_SUPPORTED_COLOR_LIST_TYPE_WHITE, // 白色
  2609. EM_SUPPORTED_COLOR_LIST_TYPE_RED, // 红色
  2610. }EM_SUPPORTED_COLOR_LIST_TYPE;
  2611. ///@brief 联动业务大类选项
  2612. typedef struct tagCFG_LINK_CLASS_TYPE
  2613. {
  2614. int nChannel; // 待级联的业务所在通道号
  2615. EM_SCENE_TYPE emClassType; // 待级联的业务大类
  2616. BOOL bSupportAllTimeWork; // 联动状态下是否支持全时检测
  2617. BYTE byReserved[252]; // 预留字段
  2618. } CFG_LINK_CLASS_TYPE;
  2619. ///@brief 活跃度统计规则
  2620. typedef struct tagCFG_ACTIVITY_ANALYSE_CAPS
  2621. {
  2622. BOOL bSupportLocalDataStore; // 是否支持本地数据存储
  2623. UINT nMaxRules; // 该规则支持的最大规则数
  2624. BYTE byReserved[256]; // 预留字段
  2625. }CFG_ACTIVITY_ANALYSE_CAPS;
  2626. ///@brief 抓拍策略取值
  2627. typedef enum tagEM_SNAP_POLICY_TYPE
  2628. {
  2629. EM_SNAP_POLICY_TYPE_UNKNOWN, // 未知
  2630. EM_SNAP_POLICY_TYPE_REALTIME, // 实时
  2631. EM_SNAP_POLICY_TYPE_OPTIMAL, // 优选
  2632. EM_SNAP_POLICY_TYPE_QUALITY, // 质量
  2633. EM_SNAP_POLICY_TYPE_TRIPLINE, // 拌线
  2634. }EM_SNAP_POLICY_TYPE;
  2635. ///@brief 人像检测信息
  2636. typedef struct tagCFG_PORTRAIT_DETECTION_CAPS
  2637. {
  2638. int nSnapPolicyNum; // 抓拍策略取值个数
  2639. EM_SNAP_POLICY_TYPE emSnapPolicyType[8]; // 抓拍策略取值
  2640. BOOL bCompliantDetectSupport;// 是否支持合规检测
  2641. BYTE byReserved[256]; // 预留字节
  2642. }CFG_PORTRAIT_DETECTION_CAPS;
  2643. ///@brief 工装检测信息
  2644. typedef struct tagCFG_WORK_CLOTHES_DETECTION_CAPS
  2645. {
  2646. int nShoesMultiColorSupportListNum; // 鞋子支持的颜色列表个数
  2647. int nShoesMultTypeSupportListNum; // 鞋子支持的的检测款式列表个数
  2648. int nGlassesMultTypeSupportListNum; // 眼镜支持的的检测款式列表个数
  2649. int nSupportSensitivityListNum; // 支持独立配置检测灵敏度的工装属性列表个数
  2650. char szShoesMultiColorSupportList[32][16]; // 鞋子支持的颜色
  2651. char szShoesMultTypeSupportList[32][16]; // 鞋子支持的颜色
  2652. char szGlassesMultTypeSupportList[32][16]; // 鞋子支持的颜色
  2653. char szSupportSensitivityList[32][16]; // 鞋子支持的颜色
  2654. char szReserved[1024]; // 预留字节
  2655. }CFG_WORK_CLOTHES_DETECTION_CAPS;
  2656. ///@brief 场景支持的规则
  2657. typedef struct
  2658. {
  2659. DWORD dwSupportedRule; // 规则类型
  2660. int nSupportedObjectTypeNum; // 支持的检测物体类型个数
  2661. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 支持的检测物体类型列表
  2662. int nSupportedActionsNum; // 支持的检测物体动作个数
  2663. char szSupportedActions[MAX_ACTION_LIST_SIZE][MAX_NAME_LEN]; // 支持的检测物体动作列表
  2664. int nSupportedDetectTypeNum; // 支持的检测类型个数
  2665. char szSupportedDetectTypes[MAX_ACTION_LIST_SIZE][MAX_NAME_LEN]; // 支持的检测类型列表
  2666. int nSupportFaceTypeNum; // 支持的目标检测类型个数
  2667. char szSupportFaceTypes[MAX_HUMANFACE_LIST_SIZE][MAX_NAME_LEN]; // 支持的目标检测类型列表
  2668. BOOL bTriggerPosition; // 是否支持触发报警位置
  2669. BOOL bTriggerTrack; // 是否支持触发跟踪
  2670. BOOL bFaceDetection; // 是否允许配置开启目标属性识别
  2671. int nSupportFeactureNum; // 支持的目标属性类型个数
  2672. EM_FACEFEATURE_TYPE emFeatureList[MAX_FEATURE_LIST_SIZE]; // 支持的目标属性类型列表
  2673. int nMaxRules; // 支持规则的最大个数
  2674. FACEBODY_DETECT_CAPS stuFaceBodyDetectCaps; // 人体检测能力
  2675. FACEBODY_ANALYSE_CAPS stuFaceBodyAnalyseCaps; // 人体识别能力
  2676. UINT nFeatureSupport; // 是否允许配置FeatureEnable,0-不支持(默认)1-支持(用于绊线检测事件和警戒区域检测事件)
  2677. BOOL bSupportMinRegion; // 人员聚集检测是否支持"最小聚集区域"配置,默认TRUE
  2678. int nSupportCloseUp; // 支持的联动特写情况。 0:表示没这个字段或者不支持,1表示支持
  2679. int nSupportCloseUpTypeNum; // 特写模式个数
  2680. EM_SUPPORT_CLOSE_UP_TYPE emSupportCloseUpType[32]; // 可选择特写模式
  2681. EM_FEATURE_LIST_TYPE emFeature[32]; // 睿厨着装检特征列表
  2682. int nDetectFeatureCount; // 检测到的特征个数
  2683. EM_SUPPORTED_COLOR_LIST_TYPE emSupportedColorList[8]; // 检测到的厨师服装颜色列表
  2684. int nDetectSupportedColorCount; // 检测到的厨师服装颜色个数
  2685. BOOL bSupportPolygon; // 人群分布图是否支持多边形,TRUE:表示支持任意边形;FALSE:表示没有这个能力表示或者只支持4个点的平行四边形
  2686. CFG_ACTIVITY_ANALYSE_CAPS stuActivityAnalyseCaps; // 活跃度统计规则
  2687. int nLink; // 联动业务个数
  2688. CFG_LINK_CLASS_TYPE stuLinkClassType[16]; // 联动业务大类选项
  2689. CFG_PORTRAIT_DETECTION_CAPS stuPortraitDetectionCaps; // 人像检测
  2690. CFG_WORK_CLOTHES_DETECTION_CAPS stuWorkClothesDetectionCaps; // 工装检测规则能力集
  2691. char szReserved[1024]; // 保留字节
  2692. }SCENE_SUPPORT_RULE;
  2693. ///@brief 标定区域能力信息
  2694. typedef struct tagCFG_CAP_CELIBRATE_AREA
  2695. {
  2696. EM_CALIBRATEAREA_TYPE emType; // 标定区域类型
  2697. BYTE byMaxHorizontalStaffNum; // 支持的水平标尺最大个数
  2698. BYTE byMinHorizontalStaffNum; // 支持的水平标尺最小个数
  2699. BYTE byMaxVerticalStaffNum; // 支持的垂直标尺最大个数
  2700. BYTE byMinVerticalStaffNum; // 支持的垂直标尺最小个数
  2701. }CFG_CAP_CELIBRATE_AREA;
  2702. ///@brief 车辆种类划分类型
  2703. typedef enum tagEM_VEHICLE_TYPE_SPLIT
  2704. {
  2705. EM_VEHICLE_TYPE_SPLIT_UNKNOWN, // 未知
  2706. EM_VEHICLE_TYPE_SPLIT_FUNC, // 按功能划分
  2707. EM_VEHICLE_TYPE_SPLIT_STANDARD, // 按标准划分
  2708. } EM_VEHICLE_TYPE_SPLIT;
  2709. ///@brief 隐私保护的物体类型
  2710. typedef enum tagEM_PRIVACY_MASK_TYPE
  2711. {
  2712. EM_PRIVACY_MASK_UNKNOWN, // 未知类型
  2713. EM_PRIVACY_MASK_HUMAN_FACE, // 目标
  2714. EM_PRIVACY_MASK_HUMAN, // 人体
  2715. }EM_PRIVACY_MASK_TYPE;
  2716. ///@brief 人群分布图的标定线段相关能力
  2717. typedef struct tagCROWD_CALIBRATION
  2718. {
  2719. UINT nHorizontalLines; // 水平线段数量
  2720. UINT nVerticalLines; // 垂直线段数量
  2721. }CROWD_CALIBRATION;
  2722. ///@brief 智能类型
  2723. typedef enum tagCFG_EM_FACEDETECT_TYPE
  2724. {
  2725. CFG_EM_FACEDETECT_TYPE_UNKNOWN = 0, // 未知
  2726. CFG_EM_FACEDETECT_TYPE_VISUAL, // 可见光
  2727. CFG_EM_FACEDETECT_TYPE_THERMAL, // 红外
  2728. CFG_EM_FACEDETECT_TYPE_SWITCHBYTIME, // 按时间段切换
  2729. }CFG_EM_FACEDETECT_TYPE;
  2730. ///@brief 人体测温的可见光的能力
  2731. typedef struct tagCFG_ANATOMYTEMP_VISUAL_CAPS
  2732. {
  2733. BOOL bSupportFaceRight; // 是否支持目标左右角度过滤
  2734. BOOL bSupportFaceUp; // 是否支持目标上下角度过滤
  2735. BOOL bSupportFaceRoll; // 是否支持目标左右歪头角度过滤
  2736. BYTE byReserved[64]; // 预留
  2737. }CFG_ANATOMYTEMP_VISUAL_CAPS;
  2738. ///@brief 人体测温检测场景能力
  2739. typedef struct tagCFG_ANATOMYTEMP_DETECT_SCENE_CAPS
  2740. {
  2741. CFG_EM_FACEDETECT_TYPE emFaceDetectTypes[32]; // 人体测温智能支持类型
  2742. int nFaceDetectTypesNum; // 人体测温智能支持类型的个数
  2743. CFG_ANATOMYTEMP_VISUAL_CAPS stuVisual; // 可见光的能力配置
  2744. BYTE byReserved[1024]; // 预留
  2745. }CFG_ANATOMYTEMP_DETECT_SCENE_CAPS;
  2746. ///@brief 立体行为场景能力特有字段
  2747. typedef struct tagCFG_STEREO_BEHAVIOR_SCENE_CAPS
  2748. {
  2749. int nEventListNum; // 可查询事件的个数
  2750. DWORD dwOnlyFindLastEventList[32]; // 该大类下支持哪些事件可查询当前点的上一次事件内容,事件详见-智能分析事件类型
  2751. BYTE byReserved[892]; // 预留
  2752. }CFG_STEREO_BEHAVIOR_SCENE_CAPS;
  2753. ///@brief 姿态行为分析场景能力
  2754. typedef struct tagCFG_GENEAL_ATTITUDE_CAPS
  2755. {
  2756. int nMaxRules; // 支持的最大规则数
  2757. char szShowType[32]; // 大类外部翻译展示名称
  2758. char szReserved[988]; // 预留字节
  2759. }CFG_GENEAL_ATTITUDE_CAPS;
  2760. ///@brief 道路拥堵规则
  2761. typedef struct tagCFG_CONGESTION_SUPPORTED_RULES
  2762. {
  2763. BOOL bSupportLocalDataStore; // 是否支持报表
  2764. char szReserved[1020]; // 预留字节
  2765. }CFG_CONGESTION_SUPPORTED_RULES;
  2766. ///@brief 停车上限规则
  2767. typedef struct tagCFG_VEHICLE_LIMIT_SUPPORTED_RULES
  2768. {
  2769. BOOL bSupportLocalDataStore; // 是否支持报表
  2770. char szReserved[1020]; // 预留字节
  2771. }CFG_VEHICLE_LIMIT_SUPPORTED_RULES;
  2772. ///@brief 车辆态势规则
  2773. typedef struct tagCFG_VEHICLE_POSTURE_SUPPORTED_RULES
  2774. {
  2775. BOOL bSupportLocalDataStore; // 是否支持报表
  2776. BOOL bSupportSensitivity; // 是否支持灵敏度
  2777. char szSupportDetectTypeList[32][16]; // 支持的态势检测模式:"Percent",按百分比;"Vehicle",按车辆数
  2778. int nSupportDetectTypeListNum; // 态势检测模式数量
  2779. char szReserved[1020]; // 预留字节
  2780. }CFG_VEHICLE_POSTURE_SUPPORTED_RULES;
  2781. ///@brief 支持的规则
  2782. typedef struct tagCFG_VEHICLES_SUPPORTED_RULES
  2783. {
  2784. CFG_CONGESTION_SUPPORTED_RULES stuCongestionDetection; // 道路拥堵规则
  2785. CFG_VEHICLE_LIMIT_SUPPORTED_RULES stuVehicleLimitDetection; // 停车上限规则
  2786. CFG_VEHICLE_POSTURE_SUPPORTED_RULES stuVehiclePostureDetection; // 车辆态势规则
  2787. char szReserved[1024]; // 预留字节
  2788. }CFG_VEHICLES_SUPPORTED_RULES;
  2789. ///@brief 标定线段相关能力
  2790. typedef struct tagCFG_VEHICLES_CALIBRATION
  2791. {
  2792. UINT nHorizontalLines; // 水平线段数量
  2793. UINT nVerticalLines; // 垂直线段数量
  2794. char szReserved[1024]; // 预留字节
  2795. }CFG_VEHICLES_CALIBRATION;
  2796. ///@brief 车辆密度
  2797. typedef struct tagCFG_VEHICLES_DISTRI
  2798. {
  2799. CFG_VEHICLES_SUPPORTED_RULES stuSupportedRules; // 支持的规则
  2800. CFG_VEHICLES_CALIBRATION stuCalibration; // 标定线段相关能力
  2801. UINT nMaxRules; // 支持的最大规则数
  2802. char szReserved[1020]; // 预留字节
  2803. }CFG_VEHICLES_DISTRI;
  2804. ///@brief 人群分布图规则
  2805. typedef struct tagCFG_CROWD_DISTRI_MAP_RULE
  2806. {
  2807. BOOL bSupportPolygon; // 人群分布图统计区是否支持任意边形
  2808. BOOL bSupportLocalDataStore; // 是否支持报表
  2809. char szFeatureList[32][16]; // AI预览中支持展示的属性:"Event",事件;"Type",报警类型;"PeopleNum",人数;"Percent",百分比
  2810. int nFeatureListNum; // 属性列表数量
  2811. char szReserved[1024]; // 预留字节
  2812. }CFG_CROWD_DISTRI_MAP_RULE;
  2813. ///@brief 人群态势检测
  2814. typedef struct tagCFG_CROWD_POSTURE_DETECTION_RULE
  2815. {
  2816. BOOL bSupportSensitivity; // 是否支持灵敏度
  2817. BOOL bSupportLocalDataStore; // 是否支持报表
  2818. UINT nMiniNumLimit[2]; // 人群态势小模型下人数检测范围
  2819. char szFeatureList[32][16]; // AI预览中支持展示的属性:"Event",事件;"Type",报警类型;"PeopleNum",人数;"Percent",百分比
  2820. char szSupportDetectTypeList[32][16]; // 支持的态势检测模式:"Percent",按百分比;"Person",按人数
  2821. int nFeatureListNum; // 属性列表数量
  2822. int nSupportDetectTypeListNum; // 态势检测模式列表数量
  2823. char szReserved[1024]; // 预留字节
  2824. }CFG_CROWD_POSTURE_DETECTION_RULE;
  2825. ///@brief 支持的规则
  2826. typedef struct tagCFG_CROWD_SUPPORTED_RULES
  2827. {
  2828. CFG_CROWD_DISTRI_MAP_RULE stuCrowdDistriMap; // 人群分布图规则
  2829. CFG_CROWD_POSTURE_DETECTION_RULE stuCrowdPostureDetection; // 人群态势检测
  2830. char szReserved[1024]; // 预留字节
  2831. }CFG_CROWD_SUPPORTED_RULES;
  2832. ///@brief 大模型能力
  2833. typedef struct tagCFG_CROWD_LLM_INFO
  2834. {
  2835. UINT nLargeNumLimit[2]; // 人数检测范围
  2836. BOOL bSupportUmbrella; // 大模型下是否支持打伞检测
  2837. BOOL bSupportGlobalSensitivity; // 大模型是否支持全局灵敏度
  2838. BOOL bSupportAiView; // 是否支持大模型下AI预览
  2839. BOOL bSupport; // 是否支持大模型
  2840. BOOL bSupportOSDDisplay; // 是否支持码流显示大模型信息
  2841. UINT nEnableCtrl; // 大模型的使能控制策略:0,不支持控制;1,支持控制;2,支持控制
  2842. char szModelList[32][64]; // 支持的大模型列表
  2843. int nModelListNum; // 支持的大模型列表数量
  2844. char szReserved[1024]; // 预留字节
  2845. }CFG_CROWD_LLM_INFO;
  2846. ///@brief 人群分布图
  2847. typedef struct tagCFG_CROWD_DISTRI_MAP
  2848. {
  2849. CFG_CROWD_SUPPORTED_RULES stuSupportedRules; // 支持的规则
  2850. CFG_VEHICLES_CALIBRATION stuCalibration; // 标定线段相关能力
  2851. CFG_CROWD_LLM_INFO stuLLM; // 大模型能力
  2852. UINT nMaxRules; // 支持的最大规则数
  2853. char szReserved[1020]; // 预留字节
  2854. }CFG_CROWD_DISTRI_MAP;
  2855. ///@brief 场景能力
  2856. typedef struct tagCFG_CAP_SCENE
  2857. {
  2858. char szSceneName[MAX_PATH]; // 场景名称
  2859. int nSupportedObjectTypeNum; // 当前规则类型支持的检测物体类型个数
  2860. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 当前规则类型支持的检测物体类型列表
  2861. int nSupportRules; // 支持的规则个数
  2862. SCENE_SUPPORT_RULE stSpportRules[MAX_RULE_LIST_SIZE]; // 支持的规则列表
  2863. //支持的模块参数
  2864. bool bDisturbance; // 是否支持扰动强度设置
  2865. bool bAntiDisturbance; // 是否支持去扰动处理
  2866. bool bBacklight; // 是否支持逆光处理
  2867. bool bShadow; // 是否支持阴影处理
  2868. bool bAccuracy; // 是否支持检测精度
  2869. bool bMovingStep; // 是否支持检测步长
  2870. bool bScalingFactor; // 是否支持检测缩放
  2871. bool bThresholdY; // 是否支持Y分量判定阈值
  2872. bool bThresholdUV; // 是否支持UV分量判定阈值
  2873. bool bThresholdEdge; // 是否支持边缘检测判定阈值
  2874. bool bDetectBalance; // 是否支持检测平衡
  2875. bool bAlgorithmIndex; // 是否支持算法序号
  2876. bool bHighlight; // 是否支持高光处理,即Backgroud参数
  2877. bool bSnapshot; // 是否支持物体抓图
  2878. bool bDetectRegion; // 是否支持检测区域配置
  2879. bool bExcludeRegion; // 是否支持排除区域配置
  2880. bool bContourAssistantTrack; // 是否支持轮廓辅助跟踪
  2881. //支持的场景参数
  2882. bool bCameraAspect; // 是否摄像头位置参数
  2883. bool bJitter; // 是否支持抖动参数
  2884. bool bDejitter; // 是否支持去抖动处理参数
  2885. // 支持的标定能力集
  2886. int nMaxCalibrateAreaNum; // 最大标定区域个数
  2887. int nCalibrateAreaNum; // 标定区域能力信息个数
  2888. CFG_CAP_CELIBRATE_AREA stCalibrateAreaCap[MAX_CALIBRATEAREA_TYPE_NUM]; // 标定区域能力信息
  2889. // 尺寸过滤器计量方式
  2890. bool bPixel; // 是否支持像素计量方式
  2891. bool bMetric; // 是否支持实际长度计量方式
  2892. bool bCalibratedPixel; // 是否支持远端近端标定后的像素计量方式
  2893. char szSubType[MAX_SCENE_SUBTYPE_NUM][MAX_SCENE_SUBTYPE_LEN]; // 当前场景下支持的子场景类型
  2894. int nSubTypeNum; // 子场景类型个数
  2895. int nMaxRules; // 每个大类支持的最大规则条数
  2896. BOOL bSupportedSetModule; // 是否支持重建背景,默认不支持(false)
  2897. BOOL bSupportFightCalibrate; // 是否支持打架标定配置,默认FALSE
  2898. UINT nVehicleTypeSplitNum; // 车辆种类划分类型个数
  2899. EM_VEHICLE_TYPE_SPLIT emVehicleTypeSplit[16]; // 车辆种类划分类型
  2900. BOOL bPrivacyMaskSupport; // 是否支持隐私保护, false-不支持(默认);true-支持
  2901. UINT nPrivacyMaskCount; // 隐私保护的物体类型的数量
  2902. EM_PRIVACY_MASK_TYPE emPrivacyMaskTypes[32]; // 隐私保护的物体类型
  2903. char szClassAlias[16]; // 大类业务方案别名
  2904. CROWD_CALIBRATION stuCalibration; // 人群分布图的标定线段相关能力
  2905. CFG_ANATOMYTEMP_DETECT_SCENE_CAPS stuAnatomyTempDetect; // 人体测温场景能力
  2906. CFG_STEREO_BEHAVIOR_SCENE_CAPS stuStereoBehaviorCaps; // 立体行为分析场景能力
  2907. int nGenealAttitudeCaps; // 姿态行为分析场景能力个数
  2908. CFG_GENEAL_ATTITUDE_CAPS stuGenealAttitudeCaps[128]; // 姿态行为分析场景能力
  2909. CFG_VEHICLES_DISTRI *pstuVehiclesDistri; // 车辆密度,由用户申请,内存大小为sizeof(CFG_VEHICLES_DISTRI)
  2910. CFG_CROWD_DISTRI_MAP *pstuCrowdDistriMap; // 人群分布图,由用户申请,内存大小为sizeof(CFG_CROWD_DISTRI_MAP)
  2911. BYTE byReserved[1024 - 2*CFG_POINTERSIZE]; // 保留字节
  2912. }CFG_CAP_SCENE;
  2913. ///@brief 场景列表
  2914. typedef struct tagCFG_VACAP_SUPPORTEDSCENES
  2915. {
  2916. int nScenes; // 支持的场景个数
  2917. CFG_CAP_SCENE stScenes[MAX_SCENE_LIST_SIZE]; // 支持的场景列表
  2918. CFG_NUMBER_STAT_INFO stuNumberStat; // 人数统计大类场景
  2919. }CFG_VACAP_SUPPORTEDSCENES;
  2920. #define CFG_DEVICE_ANALYSE_INFO CFG_CAP_DEVICE_ANALYSE_INFO
  2921. ///@brief 视频分析设备能力信息
  2922. typedef struct tagCFG_CAP_DEVICE_ANALYSE_INFO
  2923. {
  2924. int nMaxChannels; // 支持智能分析的最大通道数
  2925. }CFG_CAP_DEVICE_ANALYSE_INFO;
  2926. ///@brief 设备类型
  2927. typedef enum tagNET_EM_DEVICE_TYPE
  2928. {
  2929. NET_EM_DEVICE_UNKNOWN, // 未知类型
  2930. NET_EM_DEVICE_CAMERA, // 模拟摄像机
  2931. NET_EM_DEVICE_DOME, // 模拟球机
  2932. NET_EM_DEVICE_MATRIX, // 模拟矩阵
  2933. NET_EM_DEVICE_IPC, // 网络摄像机
  2934. NET_EM_DEVICE_NVS, // 视频服务器
  2935. NET_EM_DEVICE_SD, // 网络球机
  2936. NET_EM_DEVICE_ITSE, // 智能存储盒
  2937. NET_EM_DEVICE_ITC, // 智能摄像机
  2938. NET_EM_DEVICE_TPC, // 热成像摄像机
  2939. NET_EM_DEVICE_DVR, // 数字硬盘录像机
  2940. NET_EM_DEVICE_HDVR, // 混合型数字硬盘录像机
  2941. NET_EM_DEVICE_HCVR, // 高清CVI接口录像机
  2942. NET_EM_DEVICE_NVR, // 网络录像机
  2943. NET_EM_DEVICE_PCNVR, // 工作在PC上的软件网络录像机
  2944. NET_EM_DEVICE_NVD, // 网络解码器
  2945. NET_EM_DEVICE_SNVD, // 软件网络解码器
  2946. NET_EM_DEVICE_UDS, // 万能解码器
  2947. NET_EM_DEVICE_SVR, // 存储服务器式录像机
  2948. NET_EM_DEVICE_M, // 视频综合平台
  2949. NET_EM_DEVICE_IVS, // IVS服务器
  2950. NET_EM_DEVICE_VNCSERVER, // 虚拟网络服务器
  2951. NET_EM_DEVICE_VNCCLIENT, // 虚拟网络客户端
  2952. NET_EM_DEVICE_DSCON, // 嵌入式多屏控制器
  2953. NET_EM_DEVICE_PC, // 通用个人计算机
  2954. NET_EM_DEVICE_EVS, // 网络视频存储服务器
  2955. NET_EM_DEVICE_VCS, // 视频转码服务器
  2956. NET_EM_DEVICE_A, // 报警主机, 15 年前
  2957. NET_EM_DEVICE_ARC, // 报警主机, 15年后
  2958. NET_EM_DEVICE_SDHNI, // 智能球机
  2959. NET_EM_DEVICE_BSC, // 门禁主机
  2960. NET_EM_DEVICE_BSR, // 门禁读卡器
  2961. NET_EM_DEVICE_MGATEWAY, // 媒体网关(接入安卓设备)
  2962. NET_EM_DEVICE_VTO, // 智网门口机设备
  2963. NET_EM_DEVICE_VTH, // 智网室内机设备
  2964. NET_EM_DEVICE_VTT, // 可视对讲终端
  2965. NET_EM_DEVICE_VTS, // 管理机
  2966. NET_EM_DEVICE_VTNC, // 控制器
  2967. NET_EM_DEVICE_CE, // 消费类卡片机产品
  2968. NET_EM_DEVICE_MPT, // 手持终端
  2969. NET_EM_DEVICE_ATM, // 金融ATM
  2970. NET_EM_DEVICE_SHG, // 智网家庭网关
  2971. NET_EM_DEVICE_ARM, // 防护舱控制器
  2972. NET_EM_DEVICE_ASM, // 无线中继设备
  2973. NET_EM_DEVICE_VTA, // 报警柱
  2974. NET_EM_DEVICE_UAVGA, // 机载云台
  2975. NET_EM_DEVICE_UAVR, // 一体化遥控器
  2976. NET_EM_DEVICE_AIRCRAFT, // 无人机
  2977. NET_EM_DEVICE_UAVS, // 地面站
  2978. NET_EM_DEVICE_TPCSD, // 热成像云台摄像机
  2979. NET_EM_DEVICE_TPCBF, // 热成像枪机
  2980. NET_EM_DEVICE_RADAR, // 雷达
  2981. NET_EM_DEVICE_RADAR_PTZ, // 雷达系统
  2982. NET_EM_DEVICE_RADAR_CAM, // 摄像雷达
  2983. NET_EM_DEVICE_KVM_IN, // KVM输入节点
  2984. NET_EM_DEVICE_KVM_OUT, // KVM输出节点
  2985. NET_EM_DEVICE_IVSS, // IVSS
  2986. NET_EM_DEVICE_GP, // 工牌相机
  2987. } NET_EM_DEVICE_TYPE;
  2988. ///@brief 设备类型信息
  2989. typedef struct tagCFG_DEVICE_CLASS_INFO
  2990. {
  2991. DWORD dwSize;
  2992. NET_EM_DEVICE_TYPE emDeviceType; // 设备类型
  2993. } CFG_DEVICE_CLASS_INFO;
  2994. ///@brief 某个规则支持的物体类型
  2995. typedef struct
  2996. {
  2997. DWORD dwRuleType; // 当前规则类型
  2998. int nSupportedObjectTypeNum; // 当前规则类型支持的检测物体类型个数
  2999. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 当前规则类型支持的检测物体类型列表
  3000. }RULE_SUPPORTED_OBJECT_TYPE;
  3001. ///@brief 场景组合
  3002. typedef struct tagCFG_SUPPORTED_COMP
  3003. {
  3004. int nSupportedData; // 场景组合项下支持的场景个数
  3005. char szSupportedData[MAX_SUPPORTED_COMP_DATA][CFG_COMMON_STRING_16]; // 场景组合项下支持的场景列表
  3006. }CFG_SUPPORTED_COMP;
  3007. ///@brief 摄像头安装角度显示方式
  3008. typedef enum tagEM_DISPLAY_CAMERA_ANGLE_TYPE
  3009. {
  3010. EM_DISPLAY_CAMERA_ANGLE_UNKNOWN, // 未知的显示方式
  3011. EM_DISPLAY_CAMERA_ANGLE_NUM, // 按角度值配置(默认)
  3012. EM_DISPLAY_CAMERA_ANGLE_MODE, // 按模式配置,0~20展示为顶装,21~90展示为斜装,配置时按60下发
  3013. } EM_DISPLAY_CAMERA_ANGLE_TYPE;
  3014. ///@brief 支持的规则
  3015. typedef struct tagCFG_SUPPORTED_RULES_INFO
  3016. {
  3017. CFG_NUMBERSTAT_RULE_INFO stuNumberStat; // 客流量统计规则
  3018. CFG_QUEUEDETECTION_RULE_INFO stuQueueDetection; // 排队检测规则
  3019. CFG_MANNUMDETECTION_RULE_INFO stuManNumDetection; // 区域内人数统计规则
  3020. }CFG_SUPPORTED_RULES_INFO;
  3021. ///@brief 客流量统计PD
  3022. typedef struct tagCFG_NUMBERSTART_MULT_INFO
  3023. {
  3024. UINT nMaxRules; // 最大返回规则个数
  3025. BOOL bHiddenDetailEnable;// 隐藏部分参数配置使能 true-对于StereoNumber/NumberStat算法大类,隐藏StereoCalibrate标定配置和规则的MaxHeight/MinHeight
  3026. UINT nCameraType; // 相机类型,0:表示老单目客流 1:表示新统一单目客流 2:表示新统一双目客流
  3027. int nMaxSupportedRulesNum; // 支持的事件类型规则个数
  3028. CFG_SUPPORTED_RULES_INFO stuSupportedRules[MAX_RULE_LIST_SIZE]; // 支持的事件类型规则列表,事件类型,详见dhnetsdk.h中"智能分析事件类型"
  3029. }CFG_NUMBERSTAT_MULT_INFO;
  3030. ///@brief 视频分析能力集
  3031. typedef struct _tagVA_CAPS_INFO
  3032. {
  3033. char szSceneName[MAX_SCENE_LIST_SIZE][MAX_NAME_LEN]; // 支持的场景列表
  3034. int nSupportedSceneNum; // 支持的场景个数
  3035. BYTE byReserved[4]; // 预留字段
  3036. }VA_CAPS_INFO;
  3037. ///@brief 动态能力集
  3038. typedef struct _tagVA_DYNAMIC_CAPS_INFO
  3039. {
  3040. EM_SCENE_TYPE emSceneType[32]; // 支持的场景类型
  3041. int nSceneNum; // 支持的场景个数
  3042. BYTE byReserved[252]; // 预留字段
  3043. }VA_DYNAMIC_CAPS_INFO;
  3044. ///@brief 视频分析能力集
  3045. typedef struct tagCFG_CAP_ANALYSE_INFO
  3046. {
  3047. int nSupportedSceneNum; // 支持的场景个数
  3048. char szSceneName[MAX_SCENE_LIST_SIZE][MAX_NAME_LEN]; // 支持的场景列表
  3049. int nMaxMoudles; // 每通道支持最大分析模块数
  3050. int nSupportedObjectTypeNum; // 支持的检测物体类型个数
  3051. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 支持的检测物体类型列表
  3052. int nMaxRules; // 每通道支持最大规则条数
  3053. int nSupportedRulesNum; // 支持的事件类型规则个数
  3054. DWORD dwRulesType[MAX_RULE_LIST_SIZE]; // 支持的事件类型规则列表,事件类型,详见dhnetsdk.h中"智能分析事件类型"
  3055. int nMaxStaffs; // 支持的最大标尺个数
  3056. int nMaxPointOfLine; // 折线最大顶点数
  3057. int nMaxPointOfRegion; // 区域最大顶点数
  3058. int nMaxInternalOptions; // 最大内部选项个数
  3059. bool bComplexSizeFilter; // 是否支持复杂尺寸过滤器 复杂尺寸过滤器使用独立的面积过滤和宽高比过滤参数。
  3060. bool bSpecifiedObjectFilter; // 是否支持特定的物体过滤器
  3061. int nMaxExcludeRegionNum; // 支持模块中的最大排除区域个数
  3062. int nMaxCalibrateBoxNum; // 支持的模块中的最大校准框个数
  3063. int nMinCalibrateBoxNum; // 模块中至少需要设置的校准框个数
  3064. int nMaxSepcialDetectRegions; // 模块中支持的最大特殊区域检测个数
  3065. int nSupportedTimeSectionNum; // 支持的每天的时间段个数
  3066. int nSpecialDetectPropertyNum; // 支持的特殊检测区属性个数
  3067. int nSupportedSpecialDetectPropertys[EM_SEPCIALREGION_PROPERTY_TYPE_NUM]; // 支持的特殊检测区属性
  3068. DWORD nSupportedVideoChannelType; // 支持的视频通道类型选择 第0位为1表示支持数字类型,第1位为1表示支持模拟类型,第2为1表示支持混合(数字和模拟)
  3069. bool bSupportMultiSceneSwitch; // 是否支持多场景切换
  3070. CFG_VACAP_SUPPORTEDSCENES stSupportScenes; // 支持的场景能力集
  3071. int nSupportedComp; // 支持的场景组合项个数
  3072. CFG_SUPPORTED_COMP stuSupportedComp[MAX_SUPPORTED_COMP_SIZE]; // 支持的场景组合项列表
  3073. BYTE byFilterMask; // 0 Module/Rule配置均要设置(默认,智能服务器), 1 仅Rule配置要设置(IPC/xVR)
  3074. EM_DISPLAY_CAMERA_ANGLE_TYPE emDisCameraAngleType; // 摄像头安装角度显示方式
  3075. int nMaxNumberStatMultNum; // 实际返回客流量统计场景PD个数
  3076. CFG_NUMBERSTAT_MULT_INFO stuNumberStatMult[MAX_NUMBER_STAT_MAULT_NUM]; // 客流量统计场景PD
  3077. VA_CAPS_INFO stuFullCaps; // 全能力集,表示视频通道能力 full可以认为是不变的
  3078. VA_DYNAMIC_CAPS_INFO stuDynamicCaps; // 动态能力集,表示当前视频通道能力
  3079. char szSupportedObjectTypes[32][32]; // 支持的检测物体类型
  3080. int nSupportedObjectTypesNum; // 支持的检测物体类型数量
  3081. char szReserved[1020]; // 保留字节
  3082. } CFG_CAP_ANALYSE_INFO;
  3083. ///@brief 智能分析实例类型
  3084. typedef enum tagCFG_EM_INSTANCE_SUBCLASS_TYPE
  3085. {
  3086. CFG_EM_INSTANCE_SUBCLASS_TYPE_LOCAL = 0, // 本地实例
  3087. CFG_EM_INSTANCE_SUBCLASS_TYPE_REMOTE, // 远程实例
  3088. }CFG_EM_INSTANCE_SUBCLASS_TYPE;
  3089. ///@brief 获取能力的请求数据扩展
  3090. typedef struct tagCFG_CAP_ANALYSE_REQ_EXTEND_INFO
  3091. {
  3092. DWORD dwSize; // 结构体大小
  3093. CFG_EM_INSTANCE_SUBCLASS_TYPE emSubClassID; // 智能分析实例类型
  3094. }CFG_CAP_ANALYSE_REQ_EXTEND_INFO;
  3095. ///@brief 视频分析支持的对象类型
  3096. typedef enum tagEM_VIDEO_ANALYSE_OBJECT_TYPE
  3097. {
  3098. EM_VIDEO_ANALYSE_OBJECT_TYPE_UNKNOWN, // 未知的
  3099. EM_VIDEO_ANALYSE_OBJECT_TYPE_ALL_OBJECT, // 所有物体
  3100. EM_VIDEO_ANALYSE_OBJECT_TYPE_HUMAN, // 人
  3101. EM_VIDEO_ANALYSE_OBJECT_TYPE_VEHICLE, // 车辆
  3102. EM_VIDEO_ANALYSE_OBJECT_TYPE_FIRE, // 火
  3103. EM_VIDEO_ANALYSE_OBJECT_TYPE_SMOKE, // 烟雾
  3104. EM_VIDEO_ANALYSE_OBJECT_TYPE_PLATE, // 片状物体
  3105. EM_VIDEO_ANALYSE_OBJECT_TYPE_HUMANFACE, // 目标
  3106. EM_VIDEO_ANALYSE_OBJECT_TYPE_CONTAINER, // 货柜
  3107. EM_VIDEO_ANALYSE_OBJECT_TYPE_ANIMAL, // 动物
  3108. EM_VIDEO_ANALYSE_OBJECT_TYPE_TRAFFICLIGHT, // 红绿灯
  3109. EM_VIDEO_ANALYSE_OBJECT_TYPE_PASTEPAPER, // 贴纸 贴片
  3110. EM_VIDEO_ANALYSE_OBJECT_TYPE_HUMANHEAD, // 人的头部
  3111. EM_VIDEO_ANALYSE_OBJECT_TYPE_ENTITY, // 普通物体
  3112. }EM_VIDEO_ANALYSE_OBJECT_TYPE;
  3113. ///@brief 视频分析支持的动作类型
  3114. typedef enum tagEM_VIDEO_ANALYSE_ACTION_TYPE
  3115. {
  3116. EM_VIDEO_ANALYSE_ACTION_TYPE_UNKNOWN, // 未知行为
  3117. EM_VIDEO_ANALYSE_ACTION_TYPE_APPEAR, // 出现,针对的是目标,出现就报警
  3118. EM_VIDEO_ANALYSE_ACTION_TYPE_DISAPPEAR, // 消失
  3119. EM_VIDEO_ANALYSE_ACTION_TYPE_INSIDE, // 在区域内,需要区域内目标个数达到指定数量和指定时间才报警
  3120. EM_VIDEO_ANALYSE_ACTION_TYPE_CROSS, // 穿越区域
  3121. }EM_VIDEO_ANALYSE_ACTION_TYPE;
  3122. ///@brief 视频分析支持的检测类型
  3123. typedef enum tagEM_VIDEO_ANALYSE_DETECT_TYPE
  3124. {
  3125. EM_VIDEO_ANALYSE_DETECT_TYPE_UNKNOWN, // 未知类型
  3126. EM_VIDEO_ANALYSE_DETECT_TYPE_LOSS, // 视频丢失
  3127. EM_VIDEO_ANALYSE_DETECT_TYPE_COVER, // 视频遮挡
  3128. EM_VIDEO_ANALYSE_DETECT_TYPE_FROZEN, // 画面冻结
  3129. EM_VIDEO_ANALYSE_DETECT_TYPE_LIGHT, // 过亮
  3130. EM_VIDEO_ANALYSE_DETECT_TYPE_DARK, // 过暗
  3131. EM_VIDEO_ANALYSE_DETECT_TYPE_SCENECHANGE, // 场景变化
  3132. EM_VIDEO_ANALYSE_DETECT_TYPE_STRIATION, // 条纹检测
  3133. EM_VIDEO_ANALYSE_DETECT_TYPE_NOISE, // 噪声检测
  3134. EM_VIDEO_ANALYSE_DETECT_TYPE_UNBALANCE, // 偏色检测
  3135. EM_VIDEO_ANALYSE_DETECT_TYPE_BLUR, // 视频模糊检测
  3136. EM_VIDEO_ANALYSE_DETECT_TYPE_CONTRAST, // 对比度异常检测
  3137. EM_VIDEO_ANALYSE_DETECT_TYPE_MOTION, // 视频运动
  3138. EM_VIDEO_ANALYSE_DETECT_TYPE_FILCKERING, // 视频闪烁
  3139. EM_VIDEO_ANALYSE_DETECT_TYPE_COLOR, // 视频颜色变化
  3140. EM_VIDEO_ANALYSE_DETECT_TYPE_UNFOCUS, // 虚焦检测
  3141. EM_VIDEO_ANALYSE_DETECT_TYPE_OVEREXPOSURE, // 过曝检测
  3142. }EM_VIDEO_ANALYSE_DETECT_TYPE;
  3143. ///@brief 视频支持的目标类型
  3144. typedef enum tagEM_VIDEO_ANALYSE_HUMANFACE_TYPE
  3145. {
  3146. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_UNKNOWN, // 未知类型
  3147. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_NORMAL, // 普通目标
  3148. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_HIDEEYE, // 眼部遮挡
  3149. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_HIDENOSE, // 鼻子遮挡
  3150. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_HIDEMOUTH, // 嘴部遮挡
  3151. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_ADJACENTFACE, // 相邻目标 (注,ATM,尾随)
  3152. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_ABNORMALFACE, // 异常目标
  3153. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_HELMETFACE, // 头盔目标(如摩托车盔)
  3154. }EM_VIDEO_ANALYSE_HUMANFACE_TYPE;
  3155. ///@brief 场景支持的规则
  3156. typedef struct
  3157. {
  3158. DWORD dwSupportedRule; // 规则类型
  3159. int nSupportedObjectTypeNum; // 支持的检测物体类型个数
  3160. EM_VIDEO_ANALYSE_OBJECT_TYPE emObjectType[MAX_OBJECT_LIST_SIZE]; // 支持的检测物体类型列表
  3161. int nSupportedActionsNum; // 支持的检测物体动作个数
  3162. EM_VIDEO_ANALYSE_ACTION_TYPE emSupportedAction[MAX_ACTION_LIST_SIZE]; // 支持的检测物体动作列表
  3163. int nSupportedDetectTypeNum; // 支持的检测类型个数
  3164. EM_VIDEO_ANALYSE_DETECT_TYPE emSupportedDetectType[MAX_ACTION_LIST_SIZE]; // 支持的检测类型列表
  3165. int nSupportFaceTypeNum; // 支持的目标检测类型个数
  3166. EM_VIDEO_ANALYSE_HUMANFACE_TYPE emSupportFaceType[MAX_HUMANFACE_LIST_SIZE]; // 支持的目标检测类型列表
  3167. BOOL bTriggerPosition; // 是否支持触发报警位置
  3168. BOOL bTriggerTrack; // 是否支持触发跟踪
  3169. FACEBODY_DETECT_CAPS stuFaceBodyDetectCaps; // 人体检测能力
  3170. FACEBODY_ANALYSE_CAPS stuFaceBodyAnalyseCaps; // 人体识别能力
  3171. EM_FEATURE_LIST_TYPE emFeature[32]; // 睿厨着装检特征列表
  3172. int nDetectFeatureCount; // 检测到的特征个数
  3173. EM_SUPPORTED_COLOR_LIST_TYPE emSupportedColorList[8]; // 检测到的厨师服装颜色列表
  3174. int nDetectSupportedColorCount; // 检测到的厨师服装颜色个数
  3175. int nLink; // 联动业务个数
  3176. CFG_LINK_CLASS_TYPE stuLinkClassType[16]; // 联动业务大类选项
  3177. BOOL bSupportPolygon; // 人群分布图是否支持多边形,TRUE:表示支持任意边形;FALSE:表示没有这个能力表示或者只支持4个点的平行四边形
  3178. CFG_WORK_CLOTHES_DETECTION_CAPS stuWorkClothesDetectionCaps; // 工装检测规则能力集
  3179. char szReserved[1020]; // 保留字节
  3180. }SCENE_SUPPORT_RULE_EX;
  3181. ///@brief 场景能力
  3182. typedef struct tagCFG_CAP_SCENE_EX
  3183. {
  3184. char szSceneName[MAX_PATH]; // 场景名称
  3185. int nSupportedObjectTypeNum; // 当前规则类型支持的检测物体类型个数
  3186. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 当前规则类型支持的检测物体类型列表
  3187. int nSupportRules; // 支持的规则个数
  3188. SCENE_SUPPORT_RULE_EX stSpportRules[MAX_RULE_LIST_SIZE]; // 支持的规则列表
  3189. //支持的模块参数
  3190. bool bDisturbance; // 是否支持扰动强度设置
  3191. bool bAntiDisturbance; // 是否支持去扰动处理
  3192. bool bBacklight; // 是否支持逆光处理
  3193. bool bShadow; // 是否支持阴影处理
  3194. bool bAccuracy; // 是否支持检测精度
  3195. bool bMovingStep; // 是否支持检测步长
  3196. bool bScalingFactor; // 是否支持检测缩放
  3197. bool bThresholdY; // 是否支持Y分量判定阈值
  3198. bool bThresholdUV; // 是否支持UV分量判定阈值
  3199. bool bThresholdEdge; // 是否支持边缘检测判定阈值
  3200. bool bDetectBalance; // 是否支持检测平衡
  3201. bool bAlgorithmIndex; // 是否支持算法序号
  3202. bool bHighlight; // 是否支持高光处理,即Backgroud参数
  3203. bool bSnapshot; // 是否支持物体抓图
  3204. bool bDetectRegion; // 是否支持检测区域配置
  3205. bool bExcludeRegion; // 是否支持排除区域配置
  3206. bool bContourAssistantTrack; // 是否支持轮廓辅助跟踪
  3207. //支持的场景参数
  3208. bool bCameraAspect; // 是否摄像头位置参数
  3209. bool bJitter; // 是否支持抖动参数
  3210. bool bDejitter; // 是否支持去抖动处理参数
  3211. // 支持的标定能力集
  3212. int nMaxCalibrateAreaNum; // 最大标定区域个数
  3213. int nCalibrateAreaNum; // 标定区域能力信息个数
  3214. CFG_CAP_CELIBRATE_AREA stCalibrateAreaCap[MAX_CALIBRATEAREA_TYPE_NUM]; // 标定区域能力信息
  3215. // 尺寸过滤器计量方式
  3216. bool bPixel; // 是否支持像素计量方式
  3217. bool bMetric; // 是否支持实际长度计量方式
  3218. bool bCalibratedPixel; // 是否支持远端近端标定后的像素计量方式
  3219. char szSubType[MAX_SCENE_SUBTYPE_NUM][MAX_SCENE_SUBTYPE_LEN]; // 当前场景下支持的子场景类型
  3220. int nSubTypeNum; // 子场景类型个数
  3221. int nMaxRules; // 每个大类支持的最大规则条数
  3222. BOOL bSupportedSetModule; // 是否支持重建背景,默认不支持(false)
  3223. BOOL bSupportFightCalibrate; // 是否支持打架标定配置,默认FALSE
  3224. char szClassAlias[16]; // 大类业务方案别名
  3225. CROWD_CALIBRATION stuCalibration; // 人群分布图的标定线段相关能力
  3226. CFG_ANATOMYTEMP_DETECT_SCENE_CAPS stuAnatomyTempDetect; // 人体测温场景能力
  3227. CFG_STEREO_BEHAVIOR_SCENE_CAPS stuStereoBehaviorCaps; // 立体行为分析场景能力
  3228. CFG_VEHICLES_DISTRI *pstuVehiclesDistri; // 车辆密度,由用户申请,内存大小为sizeof(CFG_VEHICLES_DISTRI)
  3229. CFG_CROWD_DISTRI_MAP *pstuCrowdDistriMap; // 人群分布图,由用户申请,内存大小为sizeof(CFG_CROWD_DISTRI_MAP)
  3230. BYTE byReserved[1024 - 2*CFG_POINTERSIZE]; // 保留字节
  3231. }CFG_CAP_SCENE_EX;
  3232. ///@brief 场景列表
  3233. typedef struct tagCFG_VACAP_SUPPORTEDSCENES_EX
  3234. {
  3235. int nScenes; // 支持的场景个数
  3236. CFG_CAP_SCENE_EX stScenes[MAX_SCENE_LIST_SIZE]; // 支持的场景列表
  3237. }CFG_VACAP_SUPPORTEDSCENES_EX;
  3238. ///@brief 视频分析能力集(除了字段stSupportScenes外,其他字段和CFG_CAP_ANALYSE_INFO一样)
  3239. typedef struct tagCFG_CAP_ANALYSE_INFO_EX
  3240. {
  3241. int nSupportedSceneNum; // 支持的场景个数
  3242. char szSceneName[MAX_SCENE_LIST_SIZE][MAX_NAME_LEN]; // 支持的场景列表
  3243. int nMaxMoudles; // 每通道支持最大分析模块数
  3244. int nSupportedObjectTypeNum; // 支持的检测物体类型个数
  3245. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 支持的检测物体类型列表
  3246. int nMaxRules; // 每通道支持最大规则条数
  3247. int nSupportedRulesNum; // 支持的事件类型规则个数
  3248. DWORD dwRulesType[MAX_RULE_LIST_SIZE]; // 支持的事件类型规则列表,事件类型,详见dhnetsdk.h中"智能分析事件类型"
  3249. int nMaxStaffs; // 支持的最大标尺个数
  3250. int nMaxPointOfLine; // 折线最大顶点数
  3251. int nMaxPointOfRegion; // 区域最大顶点数
  3252. int nMaxInternalOptions; // 最大内部选项个数
  3253. bool bComplexSizeFilter; // 是否支持复杂尺寸过滤器 复杂尺寸过滤器使用独立的面积过滤和宽高比过滤参数。
  3254. bool bSpecifiedObjectFilter; // 是否支持特定的物体过滤器
  3255. int nMaxExcludeRegionNum; // 支持模块中的最大排除区域个数
  3256. int nMaxCalibrateBoxNum; // 支持的模块中的最大校准框个数
  3257. int nMinCalibrateBoxNum; // 模块中至少需要设置的校准框个数
  3258. int nMaxSepcialDetectRegions; // 模块中支持的最大特殊区域检测个数
  3259. int nSupportedTimeSectionNum; // 支持的每天的时间段个数
  3260. int nSpecialDetectPropertyNum; // 支持的特殊检测区属性个数
  3261. int nSupportedSpecialDetectPropertys[EM_SEPCIALREGION_PROPERTY_TYPE_NUM]; // 支持的特殊检测区属性
  3262. DWORD nSupportedVideoChannelType; // 支持的视频通道类型选择 第0位为1表示支持数字类型,第1位为1表示支持模拟类型,第2为1表示支持混合(数字和模拟)
  3263. bool bSupportMultiSceneSwitch; // 是否支持多场景切换
  3264. CFG_VACAP_SUPPORTEDSCENES_EX stSupportScenes; // 支持的场景能力集
  3265. int nSupportedComp; // 支持的场景组合项个数
  3266. CFG_SUPPORTED_COMP stuSupportedComp[MAX_SUPPORTED_COMP_SIZE]; // 支持的场景组合项列表
  3267. BYTE byFilterMask; // 0 Module/Rule配置均要设置(默认,智能服务器), 1 仅Rule配置要设置(IPC/xVR)
  3268. EM_DISPLAY_CAMERA_ANGLE_TYPE emDisCameraAngleType; // 摄像头安装角度显示方式
  3269. VA_DYNAMIC_CAPS_INFO stuDynamicCaps; // 动态能力集,表示当前视频通道当前能力
  3270. }CFG_CAP_ANALYSE_INFO_EX;
  3271. ///@brief 校准框信息
  3272. typedef struct tagCFG_CALIBRATEBOX_INFO
  3273. {
  3274. CFG_POLYGON stuCenterPoint; // 校准框中心点坐标(点的坐标归一化到[0,8191]区间)
  3275. float fRatio; // 相对基准校准框的比率(比如1表示基准框大小,0.5表示基准框大小的一半)
  3276. }CFG_CALIBRATEBOX_INFO;
  3277. ///@brief 标定方式
  3278. typedef enum tagEM_METHOD_TYPE
  3279. {
  3280. EM_METHOD_UNKNOWN, // 未知方式
  3281. EM_METHOD_SCENE, // 景深标定
  3282. EM_METHOD_LANE, // 车道标定
  3283. EM_METHOD_PLATE, // 车牌标定
  3284. EM_METHOD_STEREO, // 双目标定
  3285. } EM_METHOD_TYPE;
  3286. ///@brief 标定区域,普通场景使用
  3287. typedef struct tagCFG_CALIBRATEAREA_INFO
  3288. {
  3289. int nLinePoint; // 水平方向标尺线顶点数
  3290. CFG_POLYGON stuLine[MAX_POLYLINE_NUM]; // 水平方向标尺线
  3291. float fLenth; // 实际长度
  3292. CFG_REGION stuArea; // 区域
  3293. int nStaffNum; // 垂直标尺数
  3294. CFG_STAFF stuStaffs[MAX_STAFF_NUM]; // 垂直标尺
  3295. EM_CALIBRATEAREA_TYPE emType; // 区域类型
  3296. EM_METHOD_TYPE emMethodType; // 标定方式
  3297. }CFG_CALIBRATEAREA_INFO;
  3298. ///@brief 目标识别场景
  3299. typedef struct tagCFG_FACERECOGNITION_SCENCE_INFO
  3300. {
  3301. double dbCameraHeight; // 摄像头离地高度 单位:米
  3302. double dbCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  3303. int nMainDirection; // 人流主要方向顶点数
  3304. CFG_POLYGON stuMainDirection[MAX_POLYLINE_NUM]; // 人流主要方向,第一个点是起始点,第二个点是终止点
  3305. char byFaceAngleDown; // 需要检测的目标向下最大偏角, 单位度,-45~45,负数表示目标向画面上边,正数表示目标向画面下边,0表示目标垂直方向上正对着摄像头。
  3306. char byFaceAngleUp; // 需要检测的目标向上最大偏角,单位度,-45~45,负数表示目标向画面上边,正数表示目标向画面下边,0表示目标垂直方向上正对着摄像头。
  3307. char byFaceAngleLeft; // 需要检测的目标向左最大偏角,单位度,-45~45,负数表示目标向画面左边,正数表示目标向画面右边,0表示目标水平方向上正对着摄像头
  3308. char byFaceAngleRight; // 需要检测的目标向右最大偏角,单位度,-45~45,负数表示目标向画面左边,正数表示目标向画面右边,0表示目标水平方向上正对着摄像头
  3309. EM_FACEDETECTION_TYPE emDetectType; // 目标检测类型
  3310. }CFG_FACERECOGNITION_SCENCE_INFO;
  3311. ///@brief 目标检测场景
  3312. typedef struct tagCFG_FACEDETECTION_SCENCE_INFO
  3313. {
  3314. double dbCameraHeight; // 摄像头离地高度 单位:米
  3315. double dbCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  3316. int nMainDirection; // 人流主要方向顶点数
  3317. CFG_POLYGON stuMainDirection[MAX_POLYLINE_NUM]; // 人流主要方向,第一个点是起始点,第二个点是终止点
  3318. char byFaceAngleDown; // 需要检测的目标向下最大偏角, 单位度,-45~45,负数表示目标向画面上边,正数表示目标向画面下边,0表示目标垂直方向上正对着摄像头。
  3319. char byFaceAngleUp; // 需要检测的目标向上最大偏角,单位度,-45~45,负数表示目标向画面上边,正数表示目标向画面下边,0表示目标垂直方向上正对着摄像头。
  3320. char byFaceAngleLeft; // 需要检测的目标向左最大偏角,单位度,-45~45,负数表示目标向画面左边,正数表示目标向画面右边,0表示目标水平方向上正对着摄像头
  3321. char byFaceAngleRight; // 需要检测的目标向右最大偏角,单位度,-45~45,负数表示目标向画面左边,正数表示目标向画面右边,0表示目标水平方向上正对着摄像头
  3322. EM_FACEDETECTION_TYPE emDetectType; // 目标检测类型
  3323. }CFG_FACEDETECTION_SCENCE_INFO;
  3324. ///@brief 交通灯颜色校正配置,分立项
  3325. typedef struct tagADJUST_LEVEL_SEP
  3326. {
  3327. int nType; // 0:未定义,1:视频,2:图片
  3328. int nTime; // 0:未定义,1:白天,2:夜晚
  3329. int nLevel; // 范围0~100,数值越大矫正越明显
  3330. } ADJUST_LEVEL_SEP;
  3331. ///@brief 交通灯颜色校正配置
  3332. typedef struct tagCFG_ADJUST_LIGHT_COLOR
  3333. {
  3334. int nMode; // 红灯颜色校正模式 0:未定义 1:红绿灯才校正 2:一直校正
  3335. BOOL bEnable; // 是否允许图片红绿灯颜色校正
  3336. int nLevel; // 校正等级 范围0~100,数值越大矫正越明显
  3337. BOOL bVideoEnable; // 是否启用视频涂红功能,存在此项时,Level值使用LevelSeparate下的Level值
  3338. ADJUST_LEVEL_SEP stLevelSep[4]; // 分立等级,目前为4个
  3339. } CFG_ADJUST_LIGHT_COLOR;
  3340. #define MAX_PARKING_SPACE_NUM 6 //最多配置6个车位信息
  3341. #define MAX_SHIELD_AREA_NUM 16 //1个车位最多对应16个屏蔽区域
  3342. ///@brief 车位配置信息
  3343. typedef struct tagCFG_PARKING_SPACE
  3344. {
  3345. int nNumber; // 车位编号
  3346. CFG_REGION stArea; // 检测区域
  3347. int nShieldAreaNum; // 有效屏蔽区个数
  3348. CFG_REGION stShieldArea[MAX_SHIELD_AREA_NUM]; // 屏蔽区域
  3349. char szCustomParkNo[CFG_COMMON_STRING_32]; // 自定义车位名称
  3350. char szAssociateDevice[16][32]; /// 关联到的外设唯一标识
  3351. int nAssociateDeviceNum; /// 关联到的外设唯一标识个数
  3352. char szReserved[1020]; /// 预留字节
  3353. }CFG_PARKING_SPACE;
  3354. ///@brief 交通场景
  3355. typedef struct tagCFG_TRAFFIC_SCENE_INFO
  3356. {
  3357. BOOL abCompatibleMode;
  3358. int nCompatibleMode; // 0:"OldTrafficRule" : 交通老规则兼容模式;1:"NewTrafficRule" : 交通新规则兼容模式;-1:字符串错误
  3359. float fCameraHeight; // 摄像头离地高度 单位:米
  3360. float fCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  3361. char szSubType[MAX_NAME_LEN]; // 交通场景的子类型,"Gate" 卡口类型,"Junction" 路口类型
  3362. // "Tunnel"隧道类型 , "ParkingSpace"车位检测类型
  3363. // "Bridge"桥梁类型
  3364. // "Freeway"高速公路类型
  3365. CFG_POLYGON stuNearDetectPoint; // 近景检测点
  3366. CFG_POLYGON stuFarDectectPoint; // 远景检测点
  3367. int nNearDistance; // NearDetectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
  3368. int nFarDistance; // FarDectectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
  3369. int nPlateHintNum; // 车牌字符暗示个数
  3370. char szPlateHints[MAX_PLATEHINT_NUM][MAX_NAME_LEN]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
  3371. int nLaneNum; // 车道数
  3372. CFG_LANE stuLanes[MAX_LANE_NUM]; // 车道信息
  3373. int nLightGroupNum; // 灯组数
  3374. CFG_LIGHTGROUPS stLightGroups[MAX_LIGHTGROUP_NUM]; // 灯组配置信息
  3375. BOOL bHangingWordPlate; // 是否识别挂字车牌
  3376. BOOL bNonStdPolicePlate; // 是否识别非标准警牌
  3377. BOOL bYellowPlateLetter; // 是否识别黄牌字母
  3378. int nReportMode; // 上报模式,0:未定义,1:上报所有违章车辆,2:上报车牌识别成功的违章车辆
  3379. int nPlateMatch; // 车牌匹配率,0~100,多次识别车牌使用,表示重复识别车牌和前一次识别车牌的一致性要求
  3380. int nJudgment; // 违章判定依据,0:未定义,1:按车道,2:按行驶方向,3:按车道和行驶方向
  3381. int nLeftDivisionPtCount; // 左转弯分界线点数
  3382. CFG_POLYLINE stLeftDivisionLine[MAX_POLYLINE_NUM]; // 左转弯分界线
  3383. int nRightDivisionPtCount; // 右转弯分界线点数
  3384. CFG_POLYLINE stRightDivisionLine[MAX_POLYLINE_NUM]; // 右转弯分界线
  3385. CFG_ADJUST_LIGHT_COLOR stAdjustLightColor; // 交通灯颜色校正配置
  3386. int nParkingSpaceNum; // 车位数
  3387. CFG_PARKING_SPACE stParkingSpaces[MAX_PARKING_SPACE_NUM];// 车位配置信息,每个元素代表一个车位
  3388. } CFG_TRAFFIC_SCENE_INFO;
  3389. ///@brief 普遍场景
  3390. typedef struct tagCFG_NORMAL_SCENE_INFO
  3391. {
  3392. float fCameraHeight; // 摄像头离地高度 单位:米
  3393. float fCameraAngle; // 摄像头与垂方向的夹角 单位度,0~90,
  3394. float fCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  3395. CFG_POLYGON stuLandLineStart; // 地平线线段起始点(点的坐标坐标归一化到[0,8192)区间。)
  3396. CFG_POLYGON stuLandLineEnd; // 地平线线段终止点(点的坐标坐标归一化到[0,8192)区间。)
  3397. } CFG_NORMAL_SCENE_INFO;
  3398. ///@brief 交通巡视场景
  3399. typedef struct tagCFG_TRAFFIC_TOUR_SCENE_INFO
  3400. {
  3401. int nPlateHintNum; // 车牌字符暗示个数
  3402. char szPlateHints[MAX_PLATEHINT_NUM][MAX_NAME_LEN]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
  3403. } CFG_TRAFFIC_TOUR_SCENE_INFO;
  3404. ///@brief 人群态势和人群密度场景
  3405. typedef struct tagCFG_CROWD_SCENE_INFO
  3406. {
  3407. float fCameraHeight; // 摄像头离地高度 单位:米
  3408. } CFG_CROWD_SCENE_INFO;
  3409. ///@brief 画面景深类型
  3410. typedef enum tagEM_DEPTH_TYPE
  3411. {
  3412. EM_DEPTH_UNKNOWN, //unknown
  3413. EM_DEPTH_NORMAL, // "Normal" 未知
  3414. EM_DEPTH_FAR, // "Far" 远景
  3415. EM_DEPTH_MIDDLE, // "Middle" 中景
  3416. EM_DEPTH_NEAR // "Near" 近景
  3417. }EM_DEPTH_TYPE;
  3418. ///@brief 统一场景配置,TypeList存在时配置此场景
  3419. typedef struct tagCFG_INTELLI_UNIFORM_SCENE{
  3420. char szSubType[MAX_NAME_LEN]; // 交通场景的子类型,"Gate" 卡口类型,"Junction" 路口类型
  3421. // "Tunnel"隧道类型 , "ParkingSpace"车位检测类型
  3422. // "Bridge"桥梁类型
  3423. // "Freeway"高速公路类型
  3424. int nPlateHintNum; // 车牌字符暗示个数
  3425. char szPlateHints[MAX_PLATEHINT_NUM][MAX_NAME_LEN]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
  3426. int nLaneNum; // 车道数
  3427. CFG_LANE stuLanes[MAX_LANE_NUM]; // 车道信息
  3428. }CFG_INTELLI_UNIFORM_SCENE;
  3429. ///@brief 可见光配置
  3430. typedef struct tagCFG_FACEDETECT_VISUAL_INFO
  3431. {
  3432. UINT nFaceAngleUp; // 需要检测的目标向上(向下)最大偏角,超过此角度不上报,单位度,0-90。
  3433. UINT nFaceAngleRight; // 需要检测的目标向右(向左)最大偏角,超过此角度不上报,单位度,0-90。
  3434. UINT nFaceRollRight; // 需要检测的目标向右(向左)歪头最大偏角,超过此角度不上报,单位度,0-90。
  3435. BOOL bTempOptimization; // 是否开启智能优选
  3436. BOOL bEyesWidthDetection; // 是否开启检测,换算出目标距离
  3437. BYTE byReserved[1016]; // 预留字段
  3438. }CFG_FACEDETECT_VISUAL_INFO;
  3439. ///@brief 人体测温场景配置
  3440. typedef struct tagCFG_ANATOMYTEMP_SCENCE_INFO
  3441. {
  3442. CFG_EM_FACEDETECT_TYPE emFaceDetectType; // 目标检测智能类型
  3443. CFG_FACEDETECT_VISUAL_INFO stuVisual; // 可见光配置,emFaceDetectType为CFG_EM_FACEDETECT_TYPE_VISUAL或CFG_EM_FACEDETECT_TYPE_TIMESECTION时有效
  3444. CFG_TIME_SECTION stuTimeSection; // 可见光时间段,emFaceDetectType为CFG_EM_FACEDETECT_TYPE_TIMESECTION时有效
  3445. BYTE byReserved[1024]; // 预留字段
  3446. }CFG_ANATOMYTEMP_SCENCE_INFO;
  3447. ///@brief 规则相关检测区域信息
  3448. typedef struct tagCFG_DETECT_REGIONS_INFO
  3449. {
  3450. BOOL bEnable; // 检测区域使能字段不存在时默认为TRUE
  3451. int nDetectRegionPoint; // 检测区域顶点数
  3452. CFG_POLYGON stuDetectRegion[20]; // 检测区域
  3453. }CFG_DETECT_REGIONS_INFO;
  3454. ///@brief 视频分析全局配置场景
  3455. typedef struct tagCFG_ANALYSEGLOBAL_SCENE
  3456. {
  3457. char szSceneType[MAX_NAME_LEN]; // 应用场景,详见"支持的场景列表"
  3458. // 以下为场景具体信息, 根据szSceneType决定哪个场景有效
  3459. union
  3460. {
  3461. CFG_FACEDETECTION_SCENCE_INFO stuFaceDetectionScene; // 目标检测场景/目标识别检查
  3462. CFG_TRAFFIC_SCENE_INFO stuTrafficScene; // 交通场景
  3463. CFG_NORMAL_SCENE_INFO stuNormalScene; // 普通场景/远景场景/中景场景/近景场景/室内场景/人数统计场景
  3464. CFG_TRAFFIC_TOUR_SCENE_INFO stuTrafficTourScene; // 交通巡视场景
  3465. CFG_CROWD_SCENE_INFO stuCrowdScene; // 人群态势和人群密度场景
  3466. CFG_ANATOMYTEMP_SCENCE_INFO stuAnatomyTempScene; // 人体测温场景
  3467. };
  3468. EM_DEPTH_TYPE emDepthType; // 画面景深
  3469. int nPtzPresetId; // 云台预置点编号,0~255
  3470. // 以下是有多个大类业务的情况
  3471. int nSceneListCount; // 实际场景个数
  3472. char szSceneTypeList[MAX_SCENE_TYPE_LIST_SIZE][CFG_COMMON_STRING_16];// 场景列表,同一视频通道下启用多个场景时,表示第2个之后的方案
  3473. // 多个大类业务时有效
  3474. CFG_INTELLI_UNIFORM_SCENE stuUniformScene; // 统一场景配置
  3475. BOOL bSceneTypeListEx; // szSceneTypeListEx 是否有效,当为TRUE时,使用szSceneTypeListEx
  3476. int nSceneListCountEx; // 实际场景个数扩展,szSceneTypeListEx 的有效个数
  3477. char szSceneTypeListEx[32][128]; // 场景列表扩展,szSceneTypeList 的扩展字段
  3478. CFG_DETECT_REGIONS_INFO *pstuDetectRegionsInfo; // 规则相关检测区域信息
  3479. int nMaxDetectRegions; // 最大规则相关检测区域个数,内存由客户申请
  3480. int nDetectRegionsNum; // 规则相关检测区域信息个数
  3481. } CFG_ANALYSEGLOBAL_SCENE;
  3482. ///@brief 时间
  3483. typedef struct tagCFG_TIME
  3484. {
  3485. DWORD dwHour; // 时
  3486. DWORD dwMinute; // 分
  3487. DWORD dwSecond; // 秒
  3488. }CFG_TIME;
  3489. ///@brief 时间
  3490. typedef struct tagCFG_TIME_EX
  3491. {
  3492. int nHour; // 时
  3493. int nMinute; // 分
  3494. int nSecond; // 秒
  3495. }CFG_TIME_EX;
  3496. ///@brief 时间
  3497. typedef struct tagCFG_TIME_PERIOD
  3498. {
  3499. CFG_TIME stuStartTime;
  3500. CFG_TIME stuEndTime;
  3501. }CFG_TIME_PERIOD;
  3502. ///@brief 多场景标定区域配置基本单元
  3503. typedef struct tagCFG_CALIBRATEAREA_SCENE_UNIT
  3504. {
  3505. unsigned int nCalibrateAreaNum; // 此场景内标定区域数
  3506. CFG_CALIBRATEAREA_INFO stuCalibrateArea[MAX_CALIBRATEBOX_NUM]; // 标定区域(若该字段不存在,则以整幅场景为标定区域)
  3507. }
  3508. CFG_CALIBRATEAREA_SCENE_UNIT;
  3509. ///@brief 多场景标定区域配置
  3510. typedef struct tagCFG_CALIBRATEAREA_SCENE_INFO
  3511. {
  3512. DWORD dwMaxSceneCalibrateAreaNum; // 多场景标定区域最大个数(需要申请此大小内存)
  3513. DWORD dwRetSceneCalibrateAreaNum; // 实际包含多场景标定区域个数
  3514. CFG_CALIBRATEAREA_SCENE_UNIT *pstuCalibrateArea; // 多场景标定区域单元
  3515. }
  3516. CFG_CALIBRATEAREA_SCENE_INFO;
  3517. ///@brief 云台控制坐标单元
  3518. typedef struct tagCFG_PTZ_SPACE_UNIT
  3519. {
  3520. int nPositionX; //云台水平运动位置,有效范围:[0,3600]
  3521. int nPositionY; //云台垂直运动位置,有效范围:[-1800,1800]
  3522. int nZoom; //云台光圈变动位置,有效范围:[0,128]
  3523. }CFG_PTZ_SPACE_UNIT;
  3524. ///@brief 标定区域配置
  3525. typedef struct tagCFG_CALIBRATEAREA_UNIT
  3526. {
  3527. int nSceneID; // 场景编号
  3528. int nPtzPresetID; // 预置点编号
  3529. BOOL abCalibrateArea; // 标定区域是否存在
  3530. CFG_CALIBRATEAREA_SCENE_UNIT stuCalibrateArea; // 标定区域
  3531. CFG_PTZ_SPACE_UNIT stuPtzPosition; // 标定的云台位置
  3532. }
  3533. CFG_VIDEO_ANALYSE_CALIBRATEAREA_UNIT;
  3534. ///@brief 标定区域配置
  3535. typedef struct tagCFG_VIDEO_ANALYSE_CALIBRATEAREA
  3536. {
  3537. DWORD dwMaxSceneCalibrateNum; // 多场景标定区域最大个数(需要申请此大小内存)
  3538. DWORD dwRetSceneCalibrateNum; // 实际包含多场景标定区域个数
  3539. CFG_VIDEO_ANALYSE_CALIBRATEAREA_UNIT *pstuCalibrateAreaUnit; // 标定区域
  3540. }
  3541. CFG_VIDEO_ANALYSE_CALIBRATEAREA;
  3542. ///@brief 昼夜算法切换模式
  3543. typedef enum tagCFG_TIMEPERIOD_SWITCH_MODE
  3544. {
  3545. CFG_TIMEPERIOD_SWITCH_MODE_UNKNOWN, // 未知
  3546. CFG_TIMEPERIOD_SWITCH_MODE_BYCOLOR, // 通过色彩切换
  3547. CFG_TIMEPERIOD_SWITCH_MODE_BYBRIGHTNESS, // 通过亮度切换
  3548. CFG_TIMEPERIOD_SWITCH_MODE_BYPOS, // 通过经纬度计算日出日落时间切换
  3549. }CFG_TIMEPERIOD_SWITCH_MODE;
  3550. ///@brief 多场景标定白天和黑夜配置基本单元
  3551. typedef struct tagCFG_TIME_PERIOD_SCENE_UNIT
  3552. {
  3553. CFG_TIME_PERIOD stuDayTimePeriod; // 标定白天的时间段.(8,20),表示从8点到晚上20点为白天
  3554. CFG_TIME_PERIOD stuNightTimePeriod; // 标定黑夜的时间段.(20,7),表示从晚8点到凌晨7点为黑夜
  3555. CFG_TIMEPERIOD_SWITCH_MODE emSwitchMode; // 昼夜算法切换模式,详见CFG_TIMEPERIOD_SWITCH_MODE
  3556. UINT unLongitude; // 经度 单位百万分之一度
  3557. UINT unLatitude; // 纬度 单位百万分之一度
  3558. }
  3559. CFG_TIME_PERIOD_SCENE_UNIT;
  3560. ///@brief 多场景标定白天和黑夜配置
  3561. typedef struct tagCFG_TIME_PERIOD_SCENE_INFO
  3562. {
  3563. DWORD dwMaxTimePeriodSceneNum; // 多场景标定白天和黑夜配置最大个数(需要申请此大小内存)
  3564. DWORD dwRetTimePeriodSceneNum; // 实际包含多场景标定白天和黑夜配置个数
  3565. CFG_TIME_PERIOD_SCENE_UNIT *pstuTimePeriodScene; // 多场景标白天和黑夜配置域单元,由用户申请内存,大小为sizeof(CFG_TIME_PERIOD_SCENE_UNIT)*dwMaxTimePeriodSceneNum
  3566. }CFG_TIME_PERIOD_SCENE_INFO;
  3567. ///@brief 驾驶辅助场景配置
  3568. typedef struct tagCFG_DETAIL_DRIVEASSISTANT_INFO
  3569. {
  3570. BOOL bValid; // 是否有效
  3571. int nVehicleWidth; // 车宽 0-5000mm 单位mm
  3572. int nCamHeight; // 相机高度 0-5000mm 单位mm
  3573. int nCamToCarHead; // 车头到相机的距离 0-5000mm 单位mm
  3574. CFG_POLYGON stuCenterPoint; // 车道中心点
  3575. BYTE byReserved[48]; // 保留
  3576. }CFG_DETAIL_DRIVEASSISTANT_INFO;
  3577. ///@brief 区域信息
  3578. typedef struct tagCFG_AREA_MODE_INFO
  3579. {
  3580. char szName[32]; // 区域名称
  3581. UINT nCount; // 该区域的总车位个数
  3582. UINT nAreaCount; // 区域坐标个数
  3583. CFG_POLYGON stuArea[20]; // 区域坐标
  3584. int nSpaceType; // 车位类型: 0:未知, 1:小车车位, 2:大车车位, 3:危化品车位, 4:货车车位, 5:小客车车位, 6:大客车车位
  3585. char szReserved[60]; // 保留字节
  3586. }CFG_AREA_MODE_INFO;
  3587. ///@brief 车位信息
  3588. typedef struct tagCFG_SPACE_MODE_INFO
  3589. {
  3590. char szParkNo[32]; // 车位编号
  3591. CFG_POLYGON stuCoordinate; // 车位中心点坐标
  3592. int nSpaceType; // 车位类型: 0:未知, 1:小车车位, 2:大车车位, 3:危化品车位, 4:货车车位, 5:小客车车位, 6:大客车车位
  3593. char szReserved[60]; // 保留字节
  3594. }CFG_SPACE_MODE_INFO;
  3595. ///@brief 车位统计场景配置信息
  3596. typedef struct tagCFG_PARKING_STATISTICS_INFO
  3597. {
  3598. char szStatisticsMode[16]; // 统计模式: "AreaMode" 区域模式, "SpaceMode" 车位模式
  3599. int nAreaModeCount; // 区域个数
  3600. CFG_AREA_MODE_INFO stuAreaMode[128]; // 区域信息数组, 每个元素表示一个区域; szStatisticsMode为AreaMode时有效
  3601. int nSpaceModeCount; // 车位个数
  3602. CFG_SPACE_MODE_INFO stuSpaceMode[128]; // 车位信息数组, 每个元素表示一个车位; szStatisticsMode为SpaceMode时有效
  3603. UINT nConfidenceFilter; // 车辆置信度阈值, 范围[0, 100], 低于该阈值的车辆不做统计
  3604. }CFG_PARKING_STATISTICS_INFO;
  3605. ///@brief 视频分析全局配置
  3606. typedef struct tagCFG_ANALYSEGLOBAL_INFO
  3607. {
  3608. char szSceneType[MAX_NAME_LEN]; // 应用场景,详见"支持的场景列表"
  3609. double CameraHeight; // 摄像头离地高度 单位:米
  3610. double CameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  3611. CFG_POLYGON stuNearDetectPoint; // 近景检测点
  3612. CFG_POLYGON stuFarDectectPoint; // 远景检测点
  3613. int nNearDistance; // NearDetectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
  3614. int nFarDistance; // FarDectectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
  3615. char szSubType[MAX_NAME_LEN]; // 交通场景的子类型,"Gate",卡口类型,"Junction" 路口类型,"ParkingSpace" 车位检测类型, "ParkingStatistics":车位统计类型
  3616. int nLaneNum; // 车道数
  3617. CFG_LANE stuLanes[MAX_LANE_NUM]; // 车道信息
  3618. int nPlateHintNum; // 车牌字符暗示个数
  3619. char szPlateHints[MAX_PLATEHINT_NUM][MAX_NAME_LEN]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
  3620. int nLightGroupNum; // 灯组数
  3621. CFG_LIGHTGROUPS stLightGroups[MAX_LIGHTGROUP_NUM]; // 灯组配置信息
  3622. BOOL bHangingWordPlate; // 是否识别挂字车牌
  3623. BOOL bNonStdPolicePlate; // 是否识别非标准警牌
  3624. BOOL bYellowPlateLetter; // 是否识别黄牌字母
  3625. int nReportMode; // 上报模式,0:未定义,1:上报所有违章车辆,2:上报车牌识别成功的违章车辆
  3626. int nPlateMatch; // 车牌匹配率,0~100,多次识别车牌使用,表示重复识别车牌和前一次识别车牌的一致性要求
  3627. int nJudgment; // 违章判定依据,0:未定义,1:按车道,2:按行驶方向,3:按车道和行驶方向
  3628. int nLeftDivisionPtCount; // 左转弯分界线点数
  3629. CFG_POLYLINE stLeftDivisionLine[MAX_POLYLINE_NUM]; // 左转弯分界线
  3630. int nRightDivisionPtCount; // 右转弯分界线点数
  3631. CFG_POLYLINE stRightDivisionLine[MAX_POLYLINE_NUM]; // 右转弯分界线
  3632. CFG_ADJUST_LIGHT_COLOR stAdjustLightColor; // 交通灯颜色校正配置
  3633. int nParkingSpaceNum; // 车位数
  3634. CFG_PARKING_SPACE stParkingSpaces[MAX_PARKING_SPACE_NUM]; // 车位配置信息,每个元素代表一个车位
  3635. // 一般场景信息
  3636. int nStaffNum; // 标尺数
  3637. CFG_STAFF stuStaffs[MAX_STAFF_NUM]; // 标尺
  3638. unsigned int nCalibrateAreaNum; // 标定区域数
  3639. CFG_CALIBRATEAREA_INFO stuCalibrateArea[MAX_CALIBRATEBOX_NUM]; // 标定区域(若该字段不存在,则以整幅场景为标定区域)
  3640. BOOL bFaceRecognition; // 目标识别场景是否有效
  3641. CFG_FACERECOGNITION_SCENCE_INFO stuFaceRecognitionScene; // 目标识别场景
  3642. bool abJitter;
  3643. bool abDejitter;
  3644. BYTE bReserved[2]; // 保留字段
  3645. int nJitter; // 摄像机抖动率 : 摄像机抖动率,取值0-100,反应静止摄像机抖动程度,抖动越厉害,值越大。
  3646. BOOL bDejitter; // 是否开启去抖动模块 目前不实现
  3647. BOOL abCompatibleMode;
  3648. int nCompatibleMode; // 0:"OldTrafficRule" : 交通老规则兼容模式;1:"NewTrafficRule" : 交通新规则兼容模式;-1:字符串错误
  3649. int nCustomDataLen; // 实际数据长度,不能大于1024
  3650. BYTE byCustomData[1024]; // 第三方自定义配置数据
  3651. double CameraAngle; // 摄像头与垂方向的夹角
  3652. CFG_POLYGON stuLandLineStart; // 地平线线段起始点(点的坐标坐标归一化到[0,8192)区间。)
  3653. CFG_POLYGON stuLandLineEnd; // 地平线线段终止点(点的坐标坐标归一化到[0,8192)区间。)
  3654. BOOL bFaceDetection; // 目标检测场景是否有效
  3655. CFG_FACEDETECTION_SCENCE_INFO stuFaceDetectionScene; // 目标检测场景
  3656. CFG_TIME_PERIOD stuDayTimePeriod; // 标定白天的时间段.(8,20),表示从8点到晚上20点为白天
  3657. CFG_TIME_PERIOD stuNightTimePeriod; // 标定黑夜的时间段.(20,7),表示从晚8点到凌晨7点为黑夜
  3658. CFG_TIME_PERIOD_SCENE_INFO stuTimePeriodSceneInfo; // 多场景标定白天和黑夜时间段
  3659. CFG_CALIBRATEAREA_SCENE_INFO stuCalibrateAreaSceneInfo; // 多场景标定区域配置信息
  3660. CFG_TIMEPERIOD_SWITCH_MODE emSwitchMode; // 昼夜算法切换模式,详见CFG_TIMEPERIOD_SWITCH_MODE
  3661. int nSceneNum; // 场景数, >0时表示支持多场景, stuMultiScene有效
  3662. CFG_ANALYSEGLOBAL_SCENE stuMultiScene[MAX_ANALYSE_SCENE_NUM]; // 多场景配置
  3663. int nSceneCount; // 实际场景个数
  3664. char szSceneTypeList[MAX_SCENE_TYPE_LIST_SIZE][CFG_COMMON_STRING_16];// 场景列别,同一视频通道下启用多个场景时,表示第2个之后的方案(可选)
  3665. EM_DEPTH_TYPE emDepthType; // 画面景深
  3666. int nPtzPresetId; // 云台预置点编号,0~255
  3667. UINT unLongitude; // 经度 单位百万分之一度
  3668. UINT unLatitude; // 纬度 单位百万分之一度
  3669. BOOL bSceneTypeListEx; // szSceneTypeListEx 是否有效,当为TRUE时,使用 szSceneTypeListEx;否则使用 szSceneTypeList
  3670. int nSceneCountEx; // 实际场景个数扩展,szSceneTypeListEx 的有效个数
  3671. char szSceneTypeListEx[32][128]; // 场景列表扩展,szSceneTypeList 扩展字段
  3672. CFG_ANATOMYTEMP_SCENCE_INFO stuAnatomyTempScene; // 人体测温场景配置
  3673. CFG_DETECT_REGIONS_INFO *pstuDetectRegionsInfo; // 规则相关检测区域信息
  3674. int nMaxDetectRegions; // 最大规则相关检测区域个数,内存由客户申请
  3675. int nDetectRegionsNum; // 规则相关检测区域信息个数
  3676. CFG_DETAIL_DRIVEASSISTANT_INFO stuDriveAssistant; // 驾驶辅助场景配置
  3677. BOOL bParkingSpaceChangeEnable; // 车位变更使能 FALSE:不使能 TRUE:使能
  3678. EM_SCENE_TYPE emSceneType; // szSceneType的枚举形式
  3679. int nSceneCountEm; // SceneTypeList数量
  3680. EM_SCENE_TYPE emSceneTypeList[32]; // szSceneTypeList的枚举形式
  3681. CFG_PARKING_STATISTICS_INFO stuParkingStatistics; // 车位统计场景配置信息, szSubType为ParkingStatistics时有效
  3682. } CFG_ANALYSEGLOBAL_INFO;
  3683. ///@brief 坐标点
  3684. typedef struct tagNET_CFG_UINT_POINT
  3685. {
  3686. UINT nX;
  3687. UINT nY;
  3688. } NET_CFG_UINT_POINT;
  3689. ///@brief 人Lian美化
  3690. typedef struct tagCFG_FACE_BEAUTIFICATION
  3691. {
  3692. BOOL bEnable; /// 使能
  3693. UINT nBeautyLevel; /// 降噪等级取值为0~100,默认值50, 等级0与人Lian美化使能不开效果一致,等级越高,降噪程度越大,对人Lian美化效果越高
  3694. UINT nModelType; /// 0:手动,1:自动,默认手动
  3695. UINT nEeLevel; /// 人Lian边缘锐度参数[0, 100],默认50
  3696. UINT nBlackEdge; /// 黑边抑制,取值范围[0, 100] 默认 50,值越大,黑边越明显
  3697. UINT nWhiteEdge; /// 白边抑制,取值范围[0, 100],默认 50 ,值越大,白边越明显
  3698. UINT nBrightness; /// 亮度等级,取值[0,100], 默认50,值越大,亮度越高
  3699. UINT nSaturation; /// 颜色等级,取值[0,100], 默认50,值越大,颜色越鲜艳
  3700. char szReserved[128]; // 保留字节
  3701. } CFG_FACE_BEAUTIFICATION;
  3702. ///@brief 车道信息扩展
  3703. typedef struct tagCFG_LANE_EX
  3704. {
  3705. int nRoadwayDirection; ///车道方向 0:未知 1: 南向北 2: 西南向东北 3: 西向东 4: 西北向东南 5: 北向南 6: 东北向西南 7: 东向西 8: 东南向西北 9: 忽略 10: 自定义
  3706. char szReserved[60]; // 保留字节
  3707. }CFG_LANE_EX;
  3708. ///@brief 视频分析全局配置
  3709. typedef struct tagCFG_ANALYSEGLOBAL_EX_INFO
  3710. {
  3711. char szSceneType[MAX_NAME_LEN]; // 应用场景,详见"支持的场景列表"
  3712. double CameraHeight; // 摄像头离地高度 单位:米
  3713. double CameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  3714. CFG_POLYGON stuNearDetectPoint; // 近景检测点
  3715. CFG_POLYGON stuFarDectectPoint; // 远景检测点
  3716. int nNearDistance; // NearDetectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
  3717. int nFarDistance; // FarDectectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
  3718. char szSubType[MAX_NAME_LEN]; // 交通场景的子类型,"Gate",卡口类型,"Junction" 路口类型,"ParkingSpace" 车位检测类型, "ParkingStatistics":车位统计类型
  3719. int nLaneNum; // 车道数
  3720. CFG_LANE stuLanes[MAX_LANE_NUM]; // 车道信息
  3721. int nPlateHintNum; // 车牌字符暗示个数
  3722. char szPlateHints[MAX_PLATEHINT_NUM][MAX_NAME_LEN]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
  3723. int nLightGroupNum; // 灯组数
  3724. CFG_LIGHTGROUPS stLightGroups[MAX_LIGHTGROUP_NUM]; // 灯组配置信息
  3725. BOOL bHangingWordPlate; // 是否识别挂字车牌
  3726. BOOL bNonStdPolicePlate; // 是否识别非标准警牌
  3727. BOOL bYellowPlateLetter; // 是否识别黄牌字母
  3728. int nReportMode; // 上报模式,0:未定义,1:上报所有违章车辆,2:上报车牌识别成功的违章车辆
  3729. int nPlateMatch; // 车牌匹配率,0~100,多次识别车牌使用,表示重复识别车牌和前一次识别车牌的一致性要求
  3730. int nJudgment; // 违章判定依据,0:未定义,1:按车道,2:按行驶方向,3:按车道和行驶方向
  3731. int nLeftDivisionPtCount; // 左转弯分界线点数
  3732. CFG_POLYLINE stLeftDivisionLine[MAX_POLYLINE_NUM]; // 左转弯分界线
  3733. int nRightDivisionPtCount; // 右转弯分界线点数
  3734. CFG_POLYLINE stRightDivisionLine[MAX_POLYLINE_NUM]; // 右转弯分界线
  3735. CFG_ADJUST_LIGHT_COLOR stAdjustLightColor; // 交通灯颜色校正配置
  3736. int nParkingSpaceNum; // 车位数
  3737. CFG_PARKING_SPACE stParkingSpaces[MAX_PARKING_SPACE_NUM]; // 车位配置信息,每个元素代表一个车位
  3738. // 一般场景信息
  3739. int nStaffNum; // 标尺数
  3740. CFG_STAFF stuStaffs[MAX_STAFF_NUM]; // 标尺
  3741. unsigned int nCalibrateAreaNum; // 标定区域数
  3742. CFG_CALIBRATEAREA_INFO stuCalibrateArea[MAX_CALIBRATEBOX_NUM]; // 标定区域(若该字段不存在,则以整幅场景为标定区域)
  3743. BOOL bFaceRecognition; // 目标识别场景是否有效
  3744. CFG_FACERECOGNITION_SCENCE_INFO stuFaceRecognitionScene; // 目标识别场景
  3745. bool abJitter;
  3746. bool abDejitter;
  3747. BYTE bReserved[2]; // 保留字段
  3748. int nJitter; // 摄像机抖动率 : 摄像机抖动率,取值0-100,反应静止摄像机抖动程度,抖动越厉害,值越大。
  3749. BOOL bDejitter; // 是否开启去抖动模块 目前不实现
  3750. BOOL abCompatibleMode;
  3751. int nCompatibleMode; // 0:"OldTrafficRule" : 交通老规则兼容模式;1:"NewTrafficRule" : 交通新规则兼容模式;-1:字符串错误
  3752. int nCustomDataLen; // 实际数据长度,不能大于1024
  3753. BYTE byCustomData[1024]; // 第三方自定义配置数据
  3754. double CameraAngle; // 摄像头与垂方向的夹角
  3755. CFG_POLYGON stuLandLineStart; // 地平线线段起始点(点的坐标坐标归一化到[0,8192)区间。)
  3756. CFG_POLYGON stuLandLineEnd; // 地平线线段终止点(点的坐标坐标归一化到[0,8192)区间。)
  3757. BOOL bFaceDetection; // 目标检测场景是否有效
  3758. CFG_FACEDETECTION_SCENCE_INFO stuFaceDetectionScene; // 目标检测场景
  3759. CFG_TIME_PERIOD stuDayTimePeriod; // 标定白天的时间段.(8,20),表示从8点到晚上20点为白天
  3760. CFG_TIME_PERIOD stuNightTimePeriod; // 标定黑夜的时间段.(20,7),表示从晚8点到凌晨7点为黑夜
  3761. CFG_TIME_PERIOD_SCENE_INFO stuTimePeriodSceneInfo; // 多场景标定白天和黑夜时间段
  3762. CFG_CALIBRATEAREA_SCENE_INFO stuCalibrateAreaSceneInfo; // 多场景标定区域配置信息
  3763. CFG_TIMEPERIOD_SWITCH_MODE emSwitchMode; // 昼夜算法切换模式,详见CFG_TIMEPERIOD_SWITCH_MODE
  3764. int nSceneNum; // 场景数, >0时表示支持多场景, stuMultiScene有效
  3765. CFG_ANALYSEGLOBAL_SCENE stuMultiScene[MAX_ANALYSE_SCENE_NUM]; // 多场景配置
  3766. int nSceneCount; // 实际场景个数
  3767. char szSceneTypeList[MAX_SCENE_TYPE_LIST_SIZE][CFG_COMMON_STRING_16];// 场景列别,同一视频通道下启用多个场景时,表示第2个之后的方案(可选)
  3768. EM_DEPTH_TYPE emDepthType; // 画面景深
  3769. int nPtzPresetId; // 云台预置点编号,0~255
  3770. UINT unLongitude; // 经度 单位百万分之一度
  3771. UINT unLatitude; // 纬度 单位百万分之一度
  3772. BOOL bSceneTypeListEx; // szSceneTypeListEx 是否有效,当为TRUE时,使用 szSceneTypeListEx;否则使用 szSceneTypeList
  3773. int nSceneCountEx; // 实际场景个数扩展,szSceneTypeListEx 的有效个数
  3774. char szSceneTypeListEx[32][128]; // 场景列表扩展,szSceneTypeList 扩展字段
  3775. CFG_ANATOMYTEMP_SCENCE_INFO stuAnatomyTempScene; // 人体测温场景配置
  3776. CFG_DETECT_REGIONS_INFO *pstuDetectRegionsInfo; // 规则相关检测区域信息
  3777. int nMaxDetectRegions; // 最大规则相关检测区域个数,内存由客户申请
  3778. int nDetectRegionsNum; // 规则相关检测区域信息个数
  3779. CFG_DETAIL_DRIVEASSISTANT_INFO stuDriveAssistant; // 驾驶辅助场景配置
  3780. BOOL bParkingSpaceChangeEnable; // 车位变更使能 FALSE:不使能 TRUE:使能
  3781. EM_SCENE_TYPE emSceneType; // szSceneType的枚举形式
  3782. int nSceneCountEm; // SceneTypeList数量
  3783. EM_SCENE_TYPE emSceneTypeList[32]; // szSceneTypeList的枚举形式
  3784. CFG_PARKING_STATISTICS_INFO stuParkingStatistics; // 车位统计场景配置信息, szSubType为ParkingStatistics时有效
  3785. int nParkingSpaceNumEx; // 车位数,为nParkingSpaceNum的扩展字段,后续使用此字段
  3786. CFG_PARKING_SPACE stParkingSpacesEx[64]; // 车位配置信息,每个元素代表一个车位,为stParkingSpaces的扩展字段,后续使用此字段
  3787. int nLightGroupNumEx; // 灯组数 为nLightGroupNum的扩展字段,后续使用此字段
  3788. CFG_LIGHTGROUPS_V2 stLightGroupsEx[8]; // 灯组配置信息, 为stLightGroups的扩展字段,后续使用此字段
  3789. CFG_POLYLINE stuPositionMatchLine[20]; // 外设抓拍物体匹配线
  3790. int nPositionMatchLineNum; // 外设抓拍物体匹配线个数
  3791. UINT nPositionDetectRegionNum; // 车辆位置检测区域个数
  3792. NET_CFG_UINT_POINT stuPositionDetectRegion[20]; // 车辆位置检测区域
  3793. CFG_FACE_BEAUTIFICATION stuFaceBeautification; /// 人Lian美化
  3794. int nOSDMode; // 客流OSD叠加方式,默认智能帧解析。 0:智能帧解析; 1:视频叠加
  3795. int nLaneNumEx; // 车道数
  3796. CFG_LANE_EX stuLanesEx[8]; // 车道信息
  3797. NET_CFG_UINT_POINT stuStraightDivisionLine[20]; // 直行分界线
  3798. UINT nStraightDivisionLineNum; // 直行分界线顶点有效个数
  3799. UINT nFaceAngleUp; /// 需要检测的人脸向上最大偏角,超过此角度不上报,单位度,0-45,正数表示人脸向画面下边
  3800. UINT nFaceAngleRight; /// 需要检测的人脸向右最大偏角,超过此角度不上报,单位度,0~45,正数表示人脸向画面右边
  3801. char szResvered[4]; // 保留字节
  3802. } CFG_ANALYSEGLOBAL_EX_INFO;
  3803. ///@brief 尺寸过滤器
  3804. typedef struct tagCFG_SIZEFILTER_INFO
  3805. {
  3806. int nCalibrateBoxNum; // 校准框个数
  3807. CFG_CALIBRATEBOX_INFO stuCalibrateBoxs[MAX_CALIBRATEBOX_NUM]; // 校准框(远端近端标定模式下有效)
  3808. bool bMeasureModeEnable; // 计量方式参数是否有效
  3809. BYTE bMeasureMode; // 计量方式,0-像素,不需要远端、近端标定, 1-实际长度,单位:米, 2-远端近端标定后的像素
  3810. bool bFilterTypeEnable; // 过滤类型参数是否有效
  3811. // ByArea,ByRatio仅作兼容,使用独立的ByArea和ByRatio选项代替 2012/03/06
  3812. BYTE bFilterType; // 过滤类型:0:"ByLength",1:"ByArea", 2"ByWidthHeight"
  3813. bool bCfgSizeUseUInt; // 兼容字段,置为true则CFG_SIZE结构体内部使用UINT类型下发
  3814. BYTE bReserved[1]; // 保留字段
  3815. bool bFilterMinSizeEnable; // 物体最小尺寸参数是否有效
  3816. bool bFilterMaxSizeEnable; // 物体最大尺寸参数是否有效
  3817. CFG_SIZE stuFilterMinSize; // 物体最小尺寸 "ByLength"模式下表示宽高的尺寸,"ByArea"模式下宽表示面积,高无效(远端近端标定模式下表示基准框的宽高尺寸)。
  3818. CFG_SIZE stuFilterMaxSize; // 物体最大尺寸 "ByLength"模式下表示宽高的尺寸,"ByArea"模式下宽表示面积,高无效(远端近端标定模式下表示基准框的宽高尺寸)。
  3819. bool abByArea;
  3820. bool abMinArea;
  3821. bool abMaxArea;
  3822. bool abMinAreaSize;
  3823. bool abMaxAreaSize;
  3824. bool bByArea; // 是否按面积过滤 通过能力ComplexSizeFilter判断是否可用
  3825. bool bReserved1[2]; // 补齐
  3826. float nMinArea; // 最小面积
  3827. float nMaxArea; // 最大面积
  3828. CFG_SIZE stuMinAreaSize; // 最小面积矩形框尺寸 "计量方式"为"像素"时,表示最小面积矩形框的宽高尺寸;"计量方式"为"远端近端标定模式"时,表示基准框的最小宽高尺寸;
  3829. CFG_SIZE stuMaxAreaSize; // 最大面积矩形框尺寸, 同上
  3830. bool abByRatio;
  3831. bool abMinRatio;
  3832. bool abMaxRatio;
  3833. bool abMinRatioSize;
  3834. bool abMaxRatioSize;
  3835. bool bByRatio; // 是否按宽高比过滤 通过能力ComplexSizeFilter判断是否可用
  3836. bool bReserved2[6]; // 补齐
  3837. double dMinRatio; // 最小宽高比
  3838. double dMaxRatio; // 最大宽高比
  3839. CFG_SIZE stuMinRatioSize; // 最小宽高比矩形框尺寸,最小宽高比对应矩形框的宽高尺寸。
  3840. CFG_SIZE stuMaxRatioSize; // 最大宽高比矩形框尺寸,同上
  3841. int nAreaCalibrateBoxNum; // 面积校准框个数
  3842. CFG_CALIBRATEBOX_INFO stuAreaCalibrateBoxs[MAX_CALIBRATEBOX_NUM];// 面积校准框
  3843. int nRatioCalibrateBoxs; // 宽高校准框个数
  3844. CFG_CALIBRATEBOX_INFO stuRatioCalibrateBoxs[MAX_CALIBRATEBOX_NUM];// 宽高校准框
  3845. bool abBySize; // 长宽过滤使能参数是否有效
  3846. bool bBySize; // 长宽过滤使能
  3847. BYTE bReserved3[6]; // 保留字段
  3848. }CFG_SIZEFILTER_INFO;
  3849. ///@brief 各种物体特定的过滤器
  3850. typedef struct tagCFG_OBJECT_SIZEFILTER_INFO
  3851. {
  3852. char szObjectType[MAX_NAME_LEN]; // 物体类型
  3853. CFG_SIZEFILTER_INFO stSizeFilter; // 对应的尺寸过滤器
  3854. }CFG_OBJECT_SIZEFILTER_INFO;
  3855. ///@brief 特殊检测区,是指从检测区中区分出来,有特殊检测属性的区域
  3856. typedef struct tagCFG_SPECIALDETECTREGION_INFO
  3857. {
  3858. int nDetectNum; // 检测区域顶点数
  3859. CFG_POLYGON stDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3860. int nPropertyNum; // 特殊检测区属性个数
  3861. int nPropertys[EM_SEPCIALREGION_PROPERTY_TYPE_NUM]; // 特殊检测区属性
  3862. }CFG_SPECIALDETECT_INFO;
  3863. ///@brief 各类物体的子类型
  3864. typedef enum tagCFG_CATEGORY_TYPE
  3865. {
  3866. CFG_CATEGORY_TYPE_UNKNOW, // 未知类型
  3867. //车型相关子类别
  3868. CFG_CATEGORY_VEHICLE_TYPE_MOTOR, // "Motor" 机动车
  3869. CFG_CATEGORY_VEHICLE_TYPE_NON_MOTOR, // "Non-Motor"非机动车
  3870. CFG_CATEGORY_VEHICLE_TYPE_BUS, // "Bus"公交车
  3871. CFG_CATEGORY_VEHICLE_TYPE_BICYCLE, // "Bicycle" 自行车
  3872. CFG_CATEGORY_VEHICLE_TYPE_MOTORCYCLE, // "Motorcycle"摩托车
  3873. CFG_CATEGORY_VEHICLE_TYPE_UNLICENSEDMOTOR, // "UnlicensedMotor": 无牌机动车
  3874. CFG_CATEGORY_VEHICLE_TYPE_LARGECAR, // "LargeCar" 大型汽车
  3875. CFG_CATEGORY_VEHICLE_TYPE_MICROCAR, // "MicroCar" 小型汽车
  3876. CFG_CATEGORY_VEHICLE_TYPE_EMBASSYCAR, // "EmbassyCar" 使馆汽车
  3877. CFG_CATEGORY_VEHICLE_TYPE_MARGINALCAR, // "MarginalCar" 领馆汽车
  3878. CFG_CATEGORY_VEHICLE_TYPE_AREAOUTCAR, // "AreaoutCar" 境外汽车
  3879. CFG_CATEGORY_VEHICLE_TYPE_FOREIGNCAR, // "ForeignCar" 外籍汽车
  3880. CFG_CATEGORY_VEHICLE_TYPE_DUALTRIWHEELMOTORCYCLE, // "DualTriWheelMotorcycle"两、三轮摩托车
  3881. CFG_CATEGORY_VEHICLE_TYPE_LIGHTMOTORCYCLE, // "LightMotorcycle" 轻便摩托车
  3882. CFG_CATEGORY_VEHICLE_TYPE_EMBASSYMOTORCYCLE, // "EmbassyMotorcycle "使馆摩托车
  3883. CFG_CATEGORY_VEHICLE_TYPE_MARGINALMOTORCYCLE, // "MarginalMotorcycle "领馆摩托车
  3884. CFG_CATEGORY_VEHICLE_TYPE_AREAOUTMOTORCYCLE, // "AreaoutMotorcycle "境外摩托车
  3885. CFG_CATEGORY_VEHICLE_TYPE_FOREIGNMOTORCYCLE, // "ForeignMotorcycle "外籍摩托车
  3886. CFG_CATEGORY_VEHICLE_TYPE_FARMTRANSMITCAR, // "FarmTransmitCar" 农用运输车
  3887. CFG_CATEGORY_VEHICLE_TYPE_TRACTOR, // "Tractor" 拖拉机
  3888. CFG_CATEGORY_VEHICLE_TYPE_TRAILER, // "Trailer" 挂车
  3889. CFG_CATEGORY_VEHICLE_TYPE_COACHCAR, // "CoachCar"教练汽车
  3890. CFG_CATEGORY_VEHICLE_TYPE_COACHMOTORCYCLE, // "CoachMotorcycle "教练摩托车
  3891. CFG_CATEGORY_VEHICLE_TYPE_TRIALCAR, // "TrialCar" 试验汽车
  3892. CFG_CATEGORY_VEHICLE_TYPE_TRIALMOTORCYCLE, // "TrialMotorcycle "试验摩托车
  3893. CFG_CATEGORY_VEHICLE_TYPE_TEMPORARYENTRYCAR, // "TemporaryEntryCar"临时入境汽车
  3894. CFG_CATEGORY_VEHICLE_TYPE_TEMPORARYENTRYMOTORCYCLE, // "TemporaryEntryMotorcycle"临时入境摩托车
  3895. CFG_CATEGORY_VEHICLE_TYPE_TEMPORARYSTEERCAR, // "TemporarySteerCar"临时行驶车
  3896. CFG_CATEGORY_VEHICLE_TYPE_PASSENGERCAR, // "PassengerCar" 客车
  3897. CFG_CATEGORY_VEHICLE_TYPE_LARGETRUCK, // "LargeTruck" 大货车
  3898. CFG_CATEGORY_VEHICLE_TYPE_MIDTRUCK, // "MidTruck" 中货车
  3899. CFG_CATEGORY_VEHICLE_TYPE_SALOONCAR, // "SaloonCar" 轿车
  3900. CFG_CATEGORY_VEHICLE_TYPE_MICROBUS, // "Microbus"面包车
  3901. CFG_CATEGORY_VEHICLE_TYPE_MICROTRUCK, // "MicroTruck"小货车
  3902. CFG_CATEGORY_VEHICLE_TYPE_TRICYCLE, // "Tricycle"三轮车
  3903. CFG_CATEGORY_VEHICLE_TYPE_PASSERBY, // "Passerby" 行人
  3904. CFG_CATEGORY_VEHICLE_TYPE_OILTANKTRUCK, // "OilTankTruck" 油罐车
  3905. CFG_CATEGORY_VEHICLE_TYPE_TANKCAR, // "TankCar" 槽罐车
  3906. CFG_CATEGORY_VEHICLE_TYPE_SUV, // "SUV" SUV
  3907. CFG_CATEGORY_VEHICLE_TYPE_MPV, // "MPV" MPV
  3908. //车牌相关子类别
  3909. CFG_CATEGORY_PLATE_TYPE_NORMAL, // "Normal" 蓝牌黑字
  3910. CFG_CATEGORY_PLATE_TYPE_YELLOW, // "Yellow" 黄牌
  3911. CFG_CATEGORY_PLATE_TYPE_DOUBLEYELLOW, // "DoubleYellow" 双层黄尾牌
  3912. CFG_CATEGORY_PLATE_TYPE_POLICE, // "Police" 警牌
  3913. CFG_CATEGORY_PLATE_TYPE_WJ,
  3914. CFG_CATEGORY_PLATE_TYPE_OUTERGUARD,
  3915. CFG_CATEGORY_PLATE_TYPE_DOUBLEOUTERGUARD,
  3916. CFG_CATEGORY_PLATE_TYPE_SAR, // "SAR" 港澳特区号牌
  3917. CFG_CATEGORY_PLATE_TYPE_TRAINNING, // "Trainning" 教练车号牌
  3918. CFG_CATEGORY_PLATE_TYPE_PERSONAL, // "Personal" 个性号牌
  3919. CFG_CATEGORY_PLATE_TYPE_AGRI, // "Agri" 农用牌
  3920. CFG_CATEGORY_PLATE_TYPE_EMBASSY, // "Embassy" 使馆号牌
  3921. CFG_CATEGORY_PLATE_TYPE_MOTO, // "Moto" 摩托车号牌
  3922. CFG_CATEGORY_PLATE_TYPE_TRACTOR, // "Tractor" 拖拉机号牌
  3923. CFG_CATEGORY_PLATE_TYPE_OFFICIALCAR, // "OfficialCar" 公务车
  3924. CFG_CATEGORY_PLATE_TYPE_PERSONALCAR, // "PersonalCar" 私家车
  3925. CFG_CATEGORY_PLATE_TYPE_WARCAR,
  3926. CFG_CATEGORY_PLATE_TYPE_OTHER, // "Other" 其他号牌
  3927. CFG_CATEGORY_PLATE_TYPE_CIVILAVIATION, // "Civilaviation" 民航号牌
  3928. CFG_CATEGORY_PLATE_TYPE_BLACK, // "Black" 黑牌
  3929. CFG_CATEGORY_PLATE_TYPE_PURENEWENERGYMICROCAR, // "PureNewEnergyMicroCar" 纯电动新能源小车
  3930. CFG_CATEGORY_PLATE_TYPE_MIXEDNEWENERGYMICROCAR, // "MixedNewEnergyMicroCar" 混合新能源小车
  3931. CFG_CATEGORY_PLATE_TYPE_PURENEWENERGYLARGECAR, // "PureNewEnergyLargeCar" 纯电动新能源大车
  3932. CFG_CATEGORY_PLATE_TYPE_MIXEDNEWENERGYLARGECAR, // "MixedNewEnergyLargeCar" 混合新能源大车
  3933. }CFG_CATEGORY_TYPE;
  3934. ///@brief 计量方式
  3935. typedef enum tagEM_CFG_MEASURE_MODE_TYPE
  3936. {
  3937. EM_CFG_NEASURE_MODE_TYPE_UNKNOW, // 未知
  3938. EM_CFG_NEASURE_MODE_TYPE_PIXEL, // 像素
  3939. EM_CFG_NEASURE_MODE_TYPE_METRIC, // 实际长度
  3940. }EM_CFG_MEASURE_MODE_TYPE;
  3941. ///@brief 过滤类型
  3942. typedef enum tagCFG_FILTER_HEIGHT_TYPE
  3943. {
  3944. CFG_FILTER_HEIGHT_TYPE_UNKNOW, // 未知
  3945. CFG_FILTER_HEIGHT_TYPE_BYHEIGHT, // 高度
  3946. }CFG_FILTER_HEIGHT_TYPE;
  3947. ///@brief 物体类型长度过滤器
  3948. typedef struct tagCFG_LENGTH_FILTER_INFO
  3949. {
  3950. EM_CFG_MEASURE_MODE_TYPE emMeasureMode; // 计量方式
  3951. CFG_FILTER_HEIGHT_TYPE emFilterType; // 过滤类型
  3952. int nDetectType; // 0:大于且小于 1:大于或等于且小于或等于 2:大于且小于或等于 3:大于或等于且小于
  3953. int nMinLen; // 最小检测长度,单位:cm
  3954. int nMaxLen; // 最大检测长度,单位:cm
  3955. }CFG_LENGTH_FILETER_INFO;
  3956. ///@brief 不同区域各种类型物体的检测模块配置
  3957. typedef struct tagCFG_MODULE_INFO
  3958. {
  3959. char szObjectType[MAX_NAME_LEN]; // 默认物体类型,详见"支持的检测物体类型列表"
  3960. bool bSnapShot; // 是否对识别物体抓图
  3961. BYTE bSensitivity; // 灵敏度,取值1-10,值越小灵敏度越低
  3962. bool bMeasureModeEnable; // 计量方式参数是否有效
  3963. BYTE bMeasureMode; // 计量方式,0-像素,不需要远端、近端标定, 1-实际长度,单位:米, 2-远端近端标定后的像素
  3964. int nDetectRegionPoint; // 检测区域顶点数
  3965. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3966. int nTrackRegionPoint; // 跟踪区域顶点数
  3967. CFG_POLYGON stuTrackRegion[MAX_POLYGON_NUM]; // 跟踪区域
  3968. bool bFilterTypeEnable; // 过滤类型参数是否有效
  3969. // ByArea,ByRatio仅作兼容,使用独立的ByArea和ByRatio选项代替 2012/03/06
  3970. BYTE nFilterType; // 过滤类型:0:"ByLength",1:"ByArea", 2:"ByWidthHeight", 3:"ByRatio": 按照宽高比,宽度除以高度的结果小于某个值或者大于某个值的问题将被过滤掉。
  3971. bool bBackgroudEnable; // 区域的背景类型参数是否有效
  3972. BYTE bBackgroud; // 区域的背景类型, 0-普通类型, 1-高光类型
  3973. bool abBySize; // 长宽过滤使能参数是否有效
  3974. bool bBySize; // 长宽过滤使能
  3975. bool bFilterMinSizeEnable; // 物体最小尺寸参数是否有效
  3976. bool bFilterMaxSizeEnable; // 物体最大尺寸参数是否有效
  3977. CFG_SIZE stuFilterMinSize; // 物体最小尺寸 "ByLength"模式下表示宽高的尺寸,"ByArea"模式下宽表示面积,高无效。
  3978. CFG_SIZE stuFilterMaxSize; // 物体最大尺寸 "ByLength"模式下表示宽高的尺寸,"ByArea"模式下宽表示面积,高无效。
  3979. int nExcludeRegionNum; // 排除区域数
  3980. CFG_REGION stuExcludeRegion[MAX_EXCLUDEREGION_NUM];// 排除区域
  3981. int nCalibrateBoxNum; // 校准框个数
  3982. CFG_CALIBRATEBOX_INFO stuCalibrateBoxs[MAX_CALIBRATEBOX_NUM];// 校准框(远端近端标定模式下有效)
  3983. bool bAccuracy; // 检测精度是否有效
  3984. BYTE byAccuracy; // 检测精度
  3985. bool bMovingStep; // 算法移动步长是否有效
  3986. BYTE byMovingStep; // 算法移动步长
  3987. bool bScalingFactor; // 算法缩放因子是否有效
  3988. BYTE byScalingFactor; // 算法缩放因子
  3989. BYTE bReserved2[1]; // 保留字段
  3990. bool abDetectBalance; // 漏检和误检平衡参数是否有效
  3991. int nDetectBalance; // 漏检和误检平衡 0-折中模式(默认)1-漏检更少2-误检更少
  3992. bool abByRatio;
  3993. bool abMinRatio;
  3994. bool abMaxRatio;
  3995. bool abMinAreaSize;
  3996. bool abMaxAreaSize;
  3997. bool bByRatio; // 是否按宽高比过滤 通过能力ComplexSizeFilter判断是否可用 可以和nFilterType复用
  3998. BYTE byLowDetectSensitivity; // 车辆检测低灵敏度, 取值1~100
  3999. BYTE byHighDetectSensitivity; // 车辆检测高灵敏度, 取值1~100
  4000. double dMinRatio; // 最小宽高比
  4001. double dMaxRatio; // 最大宽高比
  4002. CFG_SIZE stuMinAreaSize; // 最小面积矩形框尺寸 "计量方式"为"像素"时,表示最小面积矩形框的宽高尺寸;"计量方式"为"远端近端标定模式"时,表示基准框的最小宽高尺寸;
  4003. CFG_SIZE stuMaxAreaSize; // 最大面积矩形框尺寸, 同上
  4004. bool abByArea;
  4005. bool abMinArea;
  4006. bool abMaxArea;
  4007. bool abMinRatioSize;
  4008. bool abMaxRatioSize;
  4009. bool bByArea; // 是否按面积过滤 通过能力ComplexSizeFilter判断是否可用 可以和nFilterType复用
  4010. bool bReserved3[2];
  4011. float nMinArea; // 最小面积
  4012. float nMaxArea; // 最大面积
  4013. CFG_SIZE stuMinRatioSize; // 最小宽高比矩形框尺寸,最小宽高比对应矩形框的宽高尺寸。
  4014. CFG_SIZE stuMaxRatioSize; // 最大宽高比矩形框尺寸,同上
  4015. int nAreaCalibrateBoxNum; // 面积校准框个数
  4016. CFG_CALIBRATEBOX_INFO stuAreaCalibrateBoxs[MAX_CALIBRATEBOX_NUM];// 面积校准框
  4017. int nRatioCalibrateBoxs; // 比例校准框个数
  4018. CFG_CALIBRATEBOX_INFO stuRatioCalibrateBoxs[MAX_CALIBRATEBOX_NUM];// 比例校准框个数
  4019. bool bAntiDisturbance; // 是否开启去扰动模块
  4020. bool bBacklight; // 是否有逆光
  4021. bool bShadow; // 是否有阴影
  4022. bool bContourAssistantTrack; // 是否开启轮廓辅助跟踪,例:在目标识别时可以通过跟踪人体来辅助识别目标
  4023. int nPtzPresetId; // 云台预置点,0~255,0表示固定场景,忽略预置点。大于0表示在此预置点时模块有效
  4024. int nObjectFilterNum; // 物体特定的过滤器个数
  4025. CFG_OBJECT_SIZEFILTER_INFO stObjectFilter[MAX_OBJECT_LIST_SIZE]; // 物体特定的过滤器信息
  4026. BOOL abObjectImageSize;
  4027. CFG_SIZE stObjectImageSize; // 保证物体图像尺寸相同,单位是像素,不支持小数,取值:>=0, 0 表示自动调整大小
  4028. int nSpecailDetectNum; // 特殊检测区域个数
  4029. CFG_SPECIALDETECT_INFO stSpecialDetectRegions[MAX_SPECIALDETECT_NUM]; // 特殊检测区信息
  4030. unsigned int nAttribute; // 需要识别物体的属性个数
  4031. char szAttributes[MAX_OBJECT_ATTRIBUTES_SIZE][MAX_NAME_LEN]; // 需要识别物体的属性列表,“Category” 物体子类;“Size” 物体大小;“Color” 物体颜色;“Speed” 物体速度;“Sign” 物体标志,对车辆而言,指车标;“Action” 物体动作
  4032. BOOL abPlateAnalyseMode; // nPlateAnalyseMode是否有效
  4033. int nPlateAnalyseMode; // 车牌识别模式,0-只识别车头牌照 1-只识别车尾牌照 2-车头牌照优先(场景中大部分车均是车头牌照)3-车尾牌照优先(场景中大部分车均是车尾牌照)
  4034. //szAttributes属性存在"Category"时生效
  4035. unsigned int nCategoryNum; // 需要识别物体的子类型总数
  4036. CFG_CATEGORY_TYPE emCategoryType[MAX_CATEGORY_TYPE_NUMBER]; // 子类型信息
  4037. char szSceneType[CFG_COMMON_STRING_16]; // 检测区参数用于的场景类型
  4038. CFG_LENGTH_FILETER_INFO stuLengthFilter; // 物体类型过滤器,如果指定新的过滤器以新的为准
  4039. BOOL bSceneTypeEx; // szSceneTypeEx 是否有效
  4040. char szSceneTypeEx[128]; // 检测区参数用于的场景类型扩展
  4041. int nDetectLineMode; //辅助线模式,开关门检测智能大类使用 0:未知 1:中线 2:边线
  4042. int nDetectLineNum; //警戒线数量
  4043. CFG_POLYGON stuDetectLine[20]; //警戒线折线类型,折线中每个端点的坐标归一化到[0,8192)区间。
  4044. BOOL bMotorcycleAsMotor; /// 摩托车是否作为机动车处理
  4045. BYTE byReserved[1020]; // 预留
  4046. } CFG_MODULE_INFO;
  4047. ///@brief 模块配置
  4048. typedef struct tagCFG_ANALYSEMODULES_INFO
  4049. {
  4050. int nMoudlesNum; // 检测模块数
  4051. CFG_MODULE_INFO stuModuleInfo[MAX_ANALYSE_MODULE_NUM]; // 每个视频输入通道对应的各种类型物体的检测模块配置
  4052. } CFG_ANALYSEMODULES_INFO;
  4053. ///@brief 视频分析事件规则配置相关结构体定义
  4054. typedef enum CFG_EM_DETECTMODE_T{
  4055. CFG_EM_DETECTMODE_NONE, // 无此字段
  4056. CFG_EM_DETECTMODE_BY_VIDEO, // 视频检测模式
  4057. CFG_EM_DETECTMODE_BY_BYAUDIO, // 音频检测模式
  4058. CFG_EM_DETECTMODE_BY_BOTH, // 音视频联合检测模式
  4059. CFG_EM_DETECTMODE_ERR=255 // 字段数据错误
  4060. }CFG_EM_DETECTMODE_T;
  4061. ///@brief 公共信息
  4062. typedef struct tag_VIDEOINANALYSE_GLOBAL_COMM_INFO
  4063. {
  4064. EM_SCENE_TYPE emClassType; // 应用场景
  4065. int nPtzPresetId; // 预置点
  4066. } VIDEOINANALYSE_GLOBAL_COMM_INFO;
  4067. ///@brief 多场景配置
  4068. typedef struct tagCFG_VIDEOINANALYSE_GLOBAL_SCENE
  4069. {
  4070. VIDEOINANALYSE_GLOBAL_COMM_INFO stuCommInfo; // 公共信息
  4071. // 以下为场景具体信息, 根据stuCommInfo中的emSceneType决定哪个场景有效
  4072. union
  4073. {
  4074. CFG_FACEDETECTION_SCENCE_INFO stuFaceDetectionScene; // 目标检测场景/目标识别检查
  4075. CFG_TRAFFIC_SCENE_INFO stuTrafficScene; // 交通场景
  4076. CFG_NORMAL_SCENE_INFO stuNormalScene; // 普通场景/远景场景/中景场景/近景场景/室内场景/人数统计场景
  4077. CFG_TRAFFIC_TOUR_SCENE_INFO stuTrafficTourScene; // 交通巡视场景
  4078. };
  4079. } CFG_VIDEOINANALYSE_GLOBAL_SCENE;
  4080. ///@brief 全局配置模板和默认值
  4081. typedef struct tagCFG_VIDEOINANALYSE_GLOBAL_INFO
  4082. {
  4083. unsigned int nCalibrateAreaNum; // 标定区域数
  4084. CFG_CALIBRATEAREA_INFO stuCalibrateArea[MAX_CALIBRATEBOX_NUM]; // 标定区域(若该字段不存在,则以整幅场景为标定区域)
  4085. CFG_VIDEOINANALYSE_GLOBAL_SCENE stuVideoInAnalyseScene; // 多场景配置
  4086. }CFG_VIDEOINANALYSE_GLOBAL_INFO;
  4087. ///@brief 智能检测区配置模板和默认值
  4088. typedef struct tagCFG_VIDEOINANALYSE_MODULE_INFO
  4089. {
  4090. CFG_MODULE_INFO stuModuleInfo; // 获取到的智能检测区配置模板和默认值
  4091. }CFG_VIDEOINANALYSE_MODULE_INFO;
  4092. ///@brief 车辆类型
  4093. typedef enum tagEM_CFG_CATEGORY_TYPE
  4094. {
  4095. EM_CFG_CATEGORY_UNKNOWN, // 未知
  4096. EM_CFG_CATEGORY_OTHER, // 其他
  4097. EM_CFG_CATEGORY_MOTOR, // 机动车
  4098. EM_CFG_CATEGORY_BUS, // 公交车
  4099. EM_CFG_CATEGORY_UNLICENSED_MOTOR, // 无牌机动车
  4100. EM_CFG_CATEGORY_LARGE_CAR, // 大型汽车
  4101. EM_CFG_CATEGORY_MICRO_CAR, // 小型汽车
  4102. EM_CFG_CATEGORY_EMBASSY_CAR, // 使馆汽车
  4103. EM_CFG_CATEGORY_MARGINAL_CAR, // 领馆汽车
  4104. EM_CFG_CATEGORY_AREAOUT_CAR, // 境外汽车
  4105. EM_CFG_CATEGORY_FOREIGN_CAR, // 外籍汽车
  4106. EM_CFG_CATEGORY_FARMTRANSMIT_CAR, // 农用运输车
  4107. EM_CFG_CATEGORY_TRACTOR, // 拖拉机
  4108. EM_CFG_CATEGORY_TRAILER, // 挂车
  4109. EM_CFG_CATEGORY_COACH_CAR, // 教练汽车
  4110. EM_CFG_CATEGORY_TRIAL_CAR, // 试验汽车
  4111. EM_CFG_CATEGORY_TEMPORARY_ENTRY_CAR, // 临时入境汽车
  4112. EM_CFG_CATEGORY_TEMPORARY_ENTRY_MOTORCYCLE, // 临时入境摩托
  4113. EM_CFG_CATEGORY_TEMPORARY_STEER_CAR, // 临时行驶车
  4114. EM_CFG_CATEGORY_LARGE_TRUCK, // 大货车
  4115. EM_CFG_CATEGORY_MID_TRUCK, // 中货车
  4116. EM_CFG_CATEGORY_MICRO_TRUCK, // 小货车
  4117. EM_CFG_CATEGORY_MICROBUS, // 面包车
  4118. EM_CFG_CATEGORY_SALOON_CAR, // 轿车
  4119. EM_CFG_CATEGORY_CARRIAGE, // 小轿车
  4120. EM_CFG_CATEGORY_MINI_CARRIAGE, // 微型轿车
  4121. EM_CFG_CATEGORY_SUV_MPV, // SUV或者MPV
  4122. EM_CFG_CATEGORY_SUV, // SUV
  4123. EM_CFG_CATEGORY_MPV, // MPV
  4124. EM_CFG_CATEGORY_PASSENGER_CAR, // 客车
  4125. EM_CFG_CATEGORY_MOTOR_BUS, // 大客
  4126. EM_CFG_CATEGORY_MID_PASSENGER_CAR, // 中客车
  4127. EM_CFG_CATEGORY_MINI_BUS, // 小客车
  4128. EM_CFG_CATEGORY_PICKUP, // 皮卡车
  4129. EM_CFG_CATEGORY_OILTANK_TRUCK, // 油罐车
  4130. EM_CFG_CATEGORY_TANK_CAR, // 危化品车辆
  4131. EM_CFG_CATEGORY_SLOT_TANK_CAR, // 槽罐车
  4132. EM_CFG_CATEGORY_DREGS_CAR, // 渣土车
  4133. EM_CFG_CATEGORY_CONCRETE_MIXER_TRUCK, // 混凝土搅拌车
  4134. EM_CFG_CATEGORY_TAXI, // 出租车
  4135. EM_CFG_CATEGORY_POLICE, // 警车
  4136. EM_CFG_CATEGORY_AMBULANCE, // 救护车
  4137. EM_CFG_CATEGORY_GENERAL, // 普通车
  4138. EM_CFG_CATEGORY_WATERING_CAR, // 洒水车
  4139. EM_CFG_CATEGORY_FIRE_ENGINE, // 消防车
  4140. EM_CFG_CATEGORY_MACHINE_TRUCK, // 工程车
  4141. EM_CFG_CATEGORY_POWER_LOT_VEHICLE, // 粉粒物料车
  4142. EM_CFG_CATEGORY_SUCTION_SEWAGE_TRUCK, // 吸污车
  4143. EM_CFG_CATEGORY_NORMAL_TANK_TRUCK, // 普通罐车
  4144. EM_CFG_CATEGORY_SCHOOL_BUS, // 校车
  4145. EM_CFG_CATEGORY_EXCAVATOR, // 挖掘车
  4146. EM_CFG_CATEGORY_BULLDOZER, // 推土车
  4147. EM_CFG_CATEGORY_CRANE, // 吊车
  4148. EM_CFG_CATEGORY_PIMP_TRUCK, // 泵车
  4149. } EM_CFG_CATEGORY_TYPE;
  4150. ///@brief 物体过滤类型
  4151. typedef enum tagEM_CFG_OBJECT_FILTER_TYPE
  4152. {
  4153. EM_CFG_OBJECT_FILTER_TYPE_UNKNOWN, // 未知
  4154. EM_CFG_OBJECT_FILTER_TYPE_HUMAN, // 人
  4155. EM_CFG_OBJECT_FILTER_TYPE_VEHICLE, // 车
  4156. } EM_CFG_OBJECT_FILTER_TYPE;
  4157. ///@brief 物体过滤器
  4158. typedef struct tagNET_CFG_OBJECT_FILTER_INFO
  4159. {
  4160. UINT nObjectFilterTypeNum; // 物体过滤类型个数
  4161. EM_CFG_OBJECT_FILTER_TYPE emObjectFilterType[16]; // 物体过滤类型
  4162. BYTE byReserved[1024]; // 保留字节
  4163. }NET_CFG_OBJECT_FILTER_INFO;
  4164. ///@brief 报警类型
  4165. typedef enum tagEM_CFG_CROSSREGION_ALARMTYPE
  4166. {
  4167. EM_CFG_CROSSREGION_ALARMTYPE_UNKNOWN, // 未知
  4168. EM_CFG_CROSSREGION_ALARMTYPE_ALARM, // 报警
  4169. EM_CFG_CROSSREGION_ALARMTYPE_WARNING, // 预警
  4170. EM_CFG_CROSSREGION_ALARMTYPE_SHIELD, // 屏蔽
  4171. }EM_CFG_CROSSREGION_ALARMTYPE;
  4172. ///@brief 绝对时间信息
  4173. typedef struct tagNET_ABSOLUTE_TIME_INFO
  4174. {
  4175. NET_TIME stuStartTime; /// 开始时间
  4176. NET_TIME stuStopTime; /// 结束时间
  4177. BOOL bEnable; /// 绝对时间使能
  4178. char szReserved[28]; /// 预留字节
  4179. }NET_ABSOLUTE_TIME_INFO;
  4180. ///@brief 视频分析事件规则配置
  4181. ///@brief 事件类型 EVENT_IVS_CROSSLINEDETECTION (警戒线事件)对应的规则配置
  4182. typedef struct tagCFG_CROSSLINE_INFO
  4183. {
  4184. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4185. bool bRuleEnable; // 规则使能
  4186. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4187. BYTE bReserved[2]; // 保留字段
  4188. int nObjectTypeNum; // 相应物体类型个数
  4189. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4190. int nDirection; // 检测方向:0:由左至右;1:由右至左;2:两者都可以
  4191. int nDetectLinePoint; // 警戒线顶点数
  4192. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 警戒线
  4193. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4194. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4195. BOOL bDisableTimeSection; // stuTimeSection字段是否禁用,默认FALSE:不禁用,TRUE:禁用,用户控制
  4196. int nPtzPresetId; // 云台预置点编号 0~65535
  4197. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4198. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4199. int nTriggerPosition; // 触发报警位置数
  4200. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  4201. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  4202. UINT nVehicleSubTypeNum; // 检测的车辆子类型个数
  4203. EM_CFG_CATEGORY_TYPE emVehicleSubType[128]; // 检测的车辆子类型列表
  4204. BOOL bFeatureEnable; // 是否开启目标属性识别,默认false
  4205. CFG_ALARM_MSG_HANDLE stuRemoteEventHandler; // 前端视频分析联动
  4206. CFG_TIME_SECTION stuRemoteTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 前端视频分析联动响应时间段
  4207. BOOL bDisableRemoteTimeSection; // stuRemoteTimeSection字段是否禁用, 默认FALSE:不禁用, TRUE:禁用, 用户控制
  4208. BOOL bObjectFilter; // 物体过滤器是否有效, 即stuObjectFilter 是否有效
  4209. NET_CFG_OBJECT_FILTER_INFO stuObjectFilter; // 物体过滤器信息
  4210. NET_ABSOLUTE_TIME_INFO stuAbsoluteTime[24]; /// 绝对时间数组
  4211. UINT nAbsoluteTimeNum; /// 绝对时间数组信息有效个数
  4212. int nCorrelationTime; /// 关联时间,单位:秒,范围:0-60。在绊线事件上报后在关联时间内触发打电话或者玩手机事件上报一个携带手机事件。 当值为0的时候,不生效
  4213. UINT nSensitivity; /// 灵敏度,值越小灵敏度越低,取值1-10
  4214. char szReserved[1012]; /// 预留字节
  4215. } CFG_CROSSLINE_INFO;
  4216. ///@brief 事件类型EVENT_IVS_CROSSFENCEDETECTION(翻越围栏规则)对应的规则配置
  4217. typedef struct tagCFG_CROSSFENCEDETECTION_INFO
  4218. {
  4219. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4220. bool bRuleEnable; // 规则使能
  4221. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4222. BYTE bReserved[2]; // 保留字段
  4223. int nObjectTypeNum; // 相应物体类型个数
  4224. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4225. int nPtzPresetId; // 云台预置点编号 0~65535
  4226. int nDirection; // 翻越围栏方向:0:由左至右;1:由右至左;2:两者都可以
  4227. int nUpstairsLinePointNumber; // 围栏上线顶点数
  4228. CFG_POLYLINE stuUpstairsLine[MAX_POLYLINE_NUM]; // 围栏上线
  4229. int nDownstairsLinePointNumber; // 围栏下线顶点数
  4230. CFG_POLYLINE stuDownstairsLine[MAX_POLYLINE_NUM]; // 围栏下线
  4231. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4232. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4233. int nTriggerPosition; // 触发报警位置数
  4234. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  4235. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4236. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4237. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  4238. } CFG_CROSSFENCEDETECTION_INFO;
  4239. ///@brief 事件类型EVENT_IVS_CROSSREGIONDETECTION(警戒区事件)对应的规则配置
  4240. typedef struct tagCFG_CROSSREGION_INFO
  4241. {
  4242. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4243. bool bRuleEnable; // 规则使能
  4244. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4245. BYTE bReserved[2]; // 保留字段
  4246. int nObjectTypeNum; // 相应物体类型个数
  4247. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4248. int nDirection; // 检测方向:0:Enter;1:Leave;2:Both
  4249. int nDetectRegionPoint; // 警戒区顶点数
  4250. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区
  4251. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4252. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4253. BOOL bDisableTimeSection; // stuTimeSection字段是否禁用,默认FALSE:不禁用,TRUE:禁用,用户控制
  4254. int nPtzPresetId; // 云台预置点编号 0~65535
  4255. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4256. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4257. int nActionType; // 检测动作数
  4258. BYTE bActionType[4]; // 检测动作列表,0-出现 1-消失 2-在区域内 3-穿越区域
  4259. int nMinTargets; // 最小目标个数(当bActionType中包含"2-在区域内"时有效)
  4260. int nMaxTargets; // 最大目标个数(当bActionType中包含"2-在区域内"时有效)
  4261. int nMinDuration; // 最短持续时间, 单位秒(当bActionType中包含"2-在区域内"时有效)
  4262. int nReportInterval; // 报告时间间隔, 单位秒(当bActionType中包含"2-在区域内"时有效)
  4263. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  4264. UINT nVehicleSubTypeNum; // 检测的车辆子类型个数
  4265. EM_CFG_CATEGORY_TYPE emVehicleSubType[128]; // 检测的车辆子类型列表
  4266. BOOL bFeatureEnable; // 是否开启目标属性识别,默认false
  4267. CFG_ALARM_MSG_HANDLE stuRemoteEventHandler; // 前端视频分析联动
  4268. CFG_TIME_SECTION stuRemoteTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 前端视频分析联动响应时间段
  4269. BOOL bDisableRemoteTimeSection; // stuRemoteTimeSection字段是否禁用, 默认FALSE:不禁用, TRUE:禁用, 用户控制
  4270. BOOL bObjectFilter; // 物体过滤器是否有效, 即stuObjectFilter 是否有效
  4271. NET_CFG_OBJECT_FILTER_INFO stuObjectFilter; // 物体过滤器信息
  4272. UINT nSensitivity; // 灵敏度,值越小灵敏度越低。取值1-10
  4273. EM_CFG_CROSSREGION_ALARMTYPE emAlarmType; // 报警类型
  4274. NET_ABSOLUTE_TIME_INFO stuAbsoluteTime[24]; /// 绝对时间数组
  4275. UINT nAbsoluteTimeNum; /// 绝对时间数组信息有效个数
  4276. char szReserved[1020]; /// 预留字节
  4277. } CFG_CROSSREGION_INFO;
  4278. ///@brief 事件类型EVENT_IVS_PASTEDETECTION(ATM贴条事件)对应的规则配置
  4279. typedef struct tagCFG_PASTE_INFO
  4280. {
  4281. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4282. bool bRuleEnable; // 规则使能
  4283. BYTE bReserved[3]; // 保留字段
  4284. int nObjectTypeNum; // 相应物体类型个数
  4285. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4286. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4287. int nDetectRegionPoint; // 检测区域顶点数
  4288. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4289. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4290. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4291. int nPtzPresetId; // 云台预置点编号 0~65535
  4292. int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  4293. } CFG_PASTE_INFO;
  4294. ///@brief 事件类型EVENT_IVS_LEFTDETECTION(物品遗留事件)对应的规则配置
  4295. typedef struct tagCFG_LEFT_INFO
  4296. {
  4297. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4298. bool bRuleEnable; // 规则使能
  4299. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4300. BYTE bReserved[2]; // 保留字段
  4301. int nObjectTypeNum; // 相应物体类型个数
  4302. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4303. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4304. int nDetectRegionPoint; // 检测区域顶点数
  4305. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4306. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4307. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4308. int nPtzPresetId; // 云台预置点编号 0~65535
  4309. int nTriggerPosition; // 触发报警位置数
  4310. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  4311. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4312. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4313. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  4314. UINT nReportInterval; // 报告时间间隔,单位:秒 0~600;等于0表示不重复报警, 默认值30
  4315. } CFG_LEFT_INFO;
  4316. ///@brief 事件类型EVENT_IVS_TAKENAWAYDETECTION(物品搬移规则配置)对应的规则配置
  4317. typedef struct tagCFG_TAKENAWAYDETECTION_INFO
  4318. {
  4319. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4320. bool bRuleEnable; // 规则使能
  4321. BYTE bTrackEnable; // 触发跟踪使能
  4322. BYTE bReserved[2]; // 保留字段
  4323. int nObjectTypeNum; // 相应物体类型个数
  4324. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4325. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4326. int nDetectRegionPoint; // 检测区域顶点数
  4327. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4328. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4329. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4330. int nPtzPresetId; // 云台预置点编号 0~65535
  4331. int nTriggerPosition; // 触发报警位置数
  4332. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  4333. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4334. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4335. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  4336. } CFG_TAKENAWAYDETECTION_INFO;
  4337. ///@brief 事件类型EVENT_IVS_PARKINGDETECTION (非法停车)对应的规则配置
  4338. typedef struct tagCFG_PARKINGDETECTION_INFO
  4339. {
  4340. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4341. bool bRuleEnable; // 规则使能
  4342. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4343. BYTE bReserved[2]; // 保留字段
  4344. int nObjectTypeNum; // 相应物体类型个数
  4345. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4346. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4347. int nDetectRegionPoint; // 检测区域顶点数
  4348. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4349. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4350. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4351. int nPtzPresetId; // 云台预置点编号 0~65535
  4352. int nTriggerPosition; // 触发报警位置数
  4353. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  4354. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4355. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4356. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  4357. } CFG_PARKINGDETECTION_INFO;
  4358. ///@brief 事件类型EVENT_IVS_PRESERVATION(物品保全事件)对应的规则配置
  4359. typedef struct tagCFG_PRESERVATION_INFO
  4360. {
  4361. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4362. bool bRuleEnable; // 规则使能
  4363. BYTE bReserved[3]; // 保留字段
  4364. int nObjectTypeNum; // 相应物体类型个数
  4365. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4366. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4367. int nDetectRegionPoint; // 检测区域顶点数
  4368. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4369. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4370. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4371. int nPtzPresetId; // 云台预置点编号 0~65535
  4372. } CFG_PRESERVATION_INFO;
  4373. ///@brief 穿着方式
  4374. typedef enum tagEM_ELECTRICBELT_WEAR_TYPE
  4375. {
  4376. EM_ELECTRICBELT_WEAR_TYPE_UNKNOWN, // 未知
  4377. EM_ELECTRICBELT_WEAR_TYPE_NORMAL, // 正常穿着
  4378. EM_ELECTRICBELT_WEAR_TYPE_MISSMAIN, // 主保护绳缺失
  4379. EM_ELECTRICBELT_WEAR_TYPE_MISSBACKUP, // 备用保护绳缺失
  4380. EM_ELECTRICBELT_WEAR_TYPE_LOWHANGING, // 作业低挂高用
  4381. }EM_ELECTRICBELT_WEAR_TYPE;
  4382. ///@brief 电力安全带检测条件
  4383. typedef struct tagCFG_ELECTRICBELT_DETECTCOND
  4384. {
  4385. BOOL bExist; // 如果emWearType 为未知,Exist表示仅检测是否有电力安全带
  4386. // 如果emWearType不为未知,且Exist=true表示需检测有Description描述的电力安全带类型;
  4387. // 如果emWearType不为未知,且Exist=false表示需检测没有Description描述的电力安全带类型;
  4388. EM_ELECTRICBELT_WEAR_TYPE emWearType; // 穿着方式
  4389. } CFG_ELECTRICBELT_DETECTCOND;
  4390. ///@brief 事件类型EVENT_IVS_ELECTRIC_BELT_DETECT(电力安全带检测)对应的规则配置
  4391. typedef struct tagCFG_ELECTRICBELTDETECTION_INFO
  4392. {
  4393. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4394. bool bRuleEnable; // 规则使能
  4395. BYTE bReserved[3]; // 保留字段
  4396. int nObjectTypeNum; // 相应物体类型个数
  4397. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4398. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4399. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4400. int nPtzPresetId; // 云台预置点编号 0~65535
  4401. CFG_ELECTRICBELT_DETECTCOND stDetectCond[32]; // 电力安全带检测条件
  4402. int nDetectCondNum; // 电力安全带检测条件数量
  4403. int nDetectRegionPoint; // 检测区域顶点数
  4404. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4405. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4406. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4407. } CFG_ELECTRICBELTDETECTION_INFO;
  4408. ///@brief 事件类型EVENT_IVS_STAYDETECTION(停留事件/滞留)对应的规则配置
  4409. typedef struct tagCFG_STAY_INFO
  4410. {
  4411. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4412. bool bRuleEnable; // 规则使能
  4413. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4414. BYTE bReserved[2]; // 保留字段
  4415. int nObjectTypeNum; // 相应物体类型个数
  4416. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4417. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4418. int nDetectRegionPoint; // 检测区域顶点数
  4419. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4420. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4421. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4422. int nPtzPresetId; // 云台预置点编号 0~65535
  4423. int nTriggerPosition; // 触发报警位置数
  4424. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  4425. int nTriggerTargetsNumber; // 触发报警的徘徊或滞留人数
  4426. int nReportInterval; // 报告时间间隔,单位秒
  4427. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4428. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4429. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  4430. } CFG_STAY_INFO;
  4431. ///@brief 事件类型EVENT_IVS_WANDERDETECTION(徘徊事件)对应的规则配置
  4432. typedef struct tagCFG_WANDER_INFO
  4433. {
  4434. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4435. bool bRuleEnable; // 规则使能
  4436. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4437. BYTE bReserved[2]; // 保留字段
  4438. int nObjectTypeNum; // 相应物体类型个数
  4439. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4440. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4441. int nDetectRegionPoint; // 检测区域顶点数
  4442. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4443. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4444. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4445. int nPtzPresetId; // 云台预置点编号 0~65535
  4446. int nTriggerPosition; // 触发报警位置数
  4447. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  4448. int nTriggerTargetsNumber; // 触发报警的徘徊或滞留人数
  4449. int nReportInterval; // 报告时间间隔,单位秒
  4450. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4451. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4452. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  4453. } CFG_WANDER_INFO;
  4454. ///@brief 事件类型EVENT_IVS_MOVEDETECTION(移动事件/运动检测)对应的规则配置
  4455. typedef struct tagCFG_MOVE_INFO
  4456. {
  4457. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4458. bool bRuleEnable; // 规则使能
  4459. BYTE bSensitivity; // 灵敏度,取值1-10,值越小灵敏度越低
  4460. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4461. BYTE bReserved[1]; // 保留字段
  4462. int nObjectTypeNum; // 相应物体类型个数
  4463. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4464. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4465. int nDetectRegionPoint; // 检测区域顶点数
  4466. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4467. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4468. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4469. int nPtzPresetId; // 云台预置点编号 0~65535
  4470. int nTriggerSpeed; // 触发速度,km/h
  4471. int nTriggerPosition; // 触发报警位置数
  4472. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  4473. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4474. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4475. int nTypeNumber; // 检测类型数
  4476. BYTE bDetectType[4]; // 检测动作列表,0-快速运动 1-突然加速 2-突然减速
  4477. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  4478. } CFG_MOVE_INFO;
  4479. ///@brief 事件类型EVENT_IVS_TAILDETECTION(尾随事件)对应的规则配置
  4480. typedef struct tagCFG_TAIL_INFO
  4481. {
  4482. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4483. bool bRuleEnable; // 规则使能
  4484. BYTE bReserved[3]; // 保留字段
  4485. int nObjectTypeNum; // 相应物体类型个数
  4486. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4487. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4488. int nDetectRegionPoint; // 检测区域顶点数
  4489. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4490. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4491. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4492. int nPtzPresetId; // 云台预置点编号 0~65535
  4493. int nDistance; // 间距,尾随配置中使用,范围[0, 500]
  4494. int nSensitivity; // 灵敏度,,范围[1, 10]
  4495. BYTE byReserved[512]; // 保留字节
  4496. } CFG_TAIL_INFO;
  4497. ///@brief 区域顶点信息
  4498. typedef struct tagNET_CFG_POLYGON
  4499. {
  4500. UINT nX; // X坐标
  4501. UINT nY; // Y坐标
  4502. char szReserved[32]; // 预留字节
  4503. }NET_CFG_POLYGON;
  4504. ///@brief 排除区域信息
  4505. typedef struct tagNET_EXCLUDE_REGION_INFO
  4506. {
  4507. NET_CFG_POLYGON stuExcludeRegion[20]; // 排除区域
  4508. int nDetectRegionPoint; // 排除区域有效顶点数
  4509. char szReserved[60]; // 预留字节
  4510. }NET_EXCLUDE_REGION_INFO;
  4511. ///@brief 主动巡视类型
  4512. typedef enum tagEM_PATROL_TYPE
  4513. {
  4514. EM_PATROL_TYPE_UNKNOWN, // 未知
  4515. EM_PATROL_TYPE_PRESET, // 预置点主动巡航
  4516. }EM_PATROL_TYPE;
  4517. ///@brief 预置点配置列表信息
  4518. typedef struct tagNET_PRESET_CONFIG_LIST_INFO
  4519. {
  4520. UINT nIndex; // 预置点编号,从1开始编号
  4521. UINT nStayTime; // 预置点到位后的停留时间(单位:秒),取值范围1-3600
  4522. char szReserved[128]; // 预留字节
  4523. }NET_PRESET_CONFIG_LIST_INFO;
  4524. ///@brief 预置点主动巡视具体信息
  4525. typedef struct tagNET_PRESET_INFO
  4526. {
  4527. NET_PRESET_CONFIG_LIST_INFO* pstList; // 预置点配置列表,内存由用户申请释放
  4528. UINT nMaxListNum; // 预置点配置内存申请个数
  4529. UINT nRetListNum; // 预置点配置有效返回个数,获取配置时作为出参
  4530. UINT nArriveTimeout; // 预置点到位超时时间(单位:秒),取值范围5-300
  4531. char szReserved[252 - CFG_POINTERSIZE]; // 预留字节
  4532. }NET_PRESET_INFO;
  4533. ///@brief 周界主动巡视信息
  4534. typedef struct tagNET_PARTOL_LINKAGE_INFO
  4535. {
  4536. BOOL bEnable; // 是否开启主动巡视
  4537. EM_PATROL_TYPE emPatrolType; // 主动巡视类型
  4538. NET_PRESET_INFO stuPreset; // 预置点主动巡视具体信息
  4539. char szReserved[1024]; // 预留字节
  4540. }NET_PARTOL_LINKAGE_INFO;
  4541. ///@brief 事件类型EVENT_IVS_RIOTERDETECTION(聚众事件)对应的规则配置
  4542. typedef struct tagCFG_RIOTER_INFO
  4543. {
  4544. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4545. bool bRuleEnable; // 规则使能
  4546. BYTE bAreaPercent; // 聚集所占区域面积百分比
  4547. BYTE bSensitivity; // 灵敏度,取值1-10,值越小灵敏度越低,对应人群的密集程度越高(取代bAreaPercent)
  4548. BYTE bReserved; // 保留字段
  4549. int nObjectTypeNum; // 相应物体类型个数
  4550. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4551. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4552. int nDetectRegionPoint; // 检测区域顶点数
  4553. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4554. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4555. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4556. int nPtzPresetId; // 云台预置点编号 0~65535
  4557. int nReportInterval; // 报告时间间隔,单位秒 [1,600] 默认0表示不重复报警
  4558. CFG_POLYGON stuMinDetectRect[2]; // 最小聚集区域矩形框,分别对应矩形框的左上和右下点,矩形框的实际面积表示触发报警的最小人群聚集面积
  4559. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  4560. BYTE bTrackEnable; // 触发跟踪使能
  4561. int nRioterThreshold; // 聚集人数阀值, 聚集人数超过此值,开始报警
  4562. UINT nDetectModesNum; // 当前规则的检测模式有效个数
  4563. UINT nDetectModes[64]; // 当前规则的检测模式
  4564. char szCompareMode[32]; // 人数聚集的检测方式,对RioterThreshold参数的判断方式
  4565. // "COMPARE_MODE_MORE" 大于, "COMPARE_MODE_LESS" 小于
  4566. // "COMPARE_MODE_NOT_EQUAL" 不等于, "COMPARE_MODE_EQUAL" 等于, "COMPARE_MODE_NONE" 不做比较,直接输出人数
  4567. UINT nCompositeMode; // 比较模式间的组合方式, 0 组合模式不生效, 1 采用"与"的方式组合, 2 采用"或"的方式组合
  4568. UINT nRioterSecondThreshold; // 组合模式时, 聚集人数阈值, CompositeMode不为0时生效
  4569. char szSecondCompareMode[32]; // 人数聚集的检测方式, 值同szCompareMode
  4570. NET_EXCLUDE_REGION_INFO stuExcludeRegions[20]; // 对应1个或多个排除区域
  4571. NET_PARTOL_LINKAGE_INFO stuPatrolLinkage; // 主动巡视配置信息
  4572. UINT nExcludeRegionsNum; // 排除区域有效个数
  4573. char szReserved[1020]; // 预留字节
  4574. } CFG_RIOTER_INFO;
  4575. ///@brief 计量方式
  4576. typedef enum tagEM_MEASUER_MODE
  4577. {
  4578. EM_MEASUER_MODE_UNKNOWN, // 未知
  4579. EM_MEASUER_MODE_PIXEL, // 像素
  4580. EM_MEASUER_MODE_METRIC, // 实际长度,单位:米
  4581. EM_MEASUER_MODE_CALIBRATED_PIXEL, // 远端近端标定后的像素
  4582. }EM_MEASUER_MODE;
  4583. ///@brief 过滤类型
  4584. typedef enum tagEM_FILTER_TYPE
  4585. {
  4586. EM_FILTER_TYPE_UNKNOWN, // 未知
  4587. EM_FILTER_TYPE_BY_LENGTH, // 按照宽度或高度
  4588. EM_FILTER_TYPE_BY_WIDTH_HEIGHT, // 按照宽度和高度
  4589. EM_FILTER_TYPE_BY_WIDTH, // 按照宽度
  4590. }EM_FILTER_TYPE;
  4591. ///@brief 尺寸
  4592. typedef struct tagNET_OBJECT_SIZE_INFO
  4593. {
  4594. UINT nWidth; // 宽度
  4595. UINT nHeight; // 高度
  4596. char szReserved[32]; // 预留字节
  4597. }NET_OBJECT_SIZE_INFO;
  4598. ///@brief 长宽校准框信息
  4599. typedef struct tagNET_CALIBRATE_BOXS_INFO
  4600. {
  4601. NET_CFG_POLYGON stuCenterPoint; // 校准框中心点坐标, [0, 8192)
  4602. double dbRatio; // 对基准校准框的比率
  4603. char szReserved[252]; // 预留字节
  4604. }NET_CALIBRATE_BOXS_INFO;
  4605. ///@brief 面积校准框信息
  4606. typedef struct tagNET_AREA_CALIBRATE_BOXS_INFO
  4607. {
  4608. NET_CFG_POLYGON stuCenterPoint; // 校准框中心点坐标, [0, 8192)
  4609. double dbRatio; // 对基准校准框的比率
  4610. char szReserved[252]; // 预留字节
  4611. }NET_AREA_CALIBRATE_BOXS_INFO;
  4612. ///@brief 比率校准框信息
  4613. typedef struct tagNET_RATIO_CALIBRATE_BOXS_INFO
  4614. {
  4615. NET_CFG_POLYGON stuCenterPoint; // 校准框中心点坐标, [0, 8192)
  4616. double dbRatio; // 对基准校准框的比率
  4617. char szReserved[252]; // 预留字节
  4618. }NET_RATIO_CALIBRATE_BOXS_INFO;
  4619. ///@brief 尺寸过滤器
  4620. typedef struct tagNET_SIZEFILTER_INFO
  4621. {
  4622. EM_MEASUER_MODE emMeasureMode; // 计量方式
  4623. BOOL bBySize; // 简单过滤,是否按长宽过滤
  4624. BOOL bByArea; // 复杂过滤,是否按面积过滤
  4625. EM_FILTER_TYPE emType; // 过滤类型
  4626. NET_OBJECT_SIZE_INFO stuMinSize; // 物体最小尺寸
  4627. NET_OBJECT_SIZE_INFO stuMaxSize; // 物体最大尺寸
  4628. double dbMinArea; // 最小面积
  4629. double dbMaxArea; // 最大面积
  4630. NET_OBJECT_SIZE_INFO stuMinAreaSize; // 最小面积矩形框尺寸
  4631. NET_OBJECT_SIZE_INFO stuMaxAreaSize; // 最大面积矩形框尺寸
  4632. double dbMinRatio; // 最小宽高比, 取值范围0.001~1000
  4633. double dbMaxRatio; // 最大宽高比, 取值范围0.001~1000
  4634. NET_OBJECT_SIZE_INFO stuMinRatioSize; // 最小宽高比矩形框尺寸
  4635. NET_OBJECT_SIZE_INFO stuMaxRatioSize; // 最大宽高比矩形框尺寸
  4636. BOOL bByRatio; // 复杂过滤,是否按宽高比过滤
  4637. UINT nCalibrateBoxsNum; // 长宽校准框有效个数
  4638. NET_CALIBRATE_BOXS_INFO stuCalibrateBoxs[10]; // 长宽校准框
  4639. NET_AREA_CALIBRATE_BOXS_INFO stuAreaCalibrateBoxs[10]; // 面积校准框
  4640. UINT nAreaCalibrateBoxsNum; // 面积校准框有效个数
  4641. UINT nRatioCalibrateBoxsNum; // 比率校准框有效个数
  4642. NET_RATIO_CALIBRATE_BOXS_INFO stuRatioCalibrateBoxs[10]; // 比率校准框
  4643. NET_OBJECT_SIZE_INFO stuNearMinSize; // 近景物体最小尺寸
  4644. NET_OBJECT_SIZE_INFO stuNearMaxSize; // 近景物体最大尺寸
  4645. NET_OBJECT_SIZE_INFO stuFarMinSize; // 远景物体最小尺寸
  4646. NET_OBJECT_SIZE_INFO stuFarMaxSize; // 远景物体最大尺寸
  4647. char szReserved[1024]; // 预留字节
  4648. }NET_SIZEFILTER_INFO;
  4649. ///@brief 过滤目标类型
  4650. typedef enum tagEM_CFG_FILTER_OBJECT
  4651. {
  4652. EM_CFG_FILTER_OBJECT_UNKNOWN, // 未知
  4653. EM_CFG_FILTER_OBJECT_HUMAN, // 人
  4654. EM_CFG_FILTER_OBJECT_VEHICLE, // 机动车,不包括非机动车
  4655. EM_CFG_FILTER_OBJECT_NONMOTOR, // 非机动车
  4656. }EM_CFG_FILTER_OBJECT;
  4657. ///@brief 事件类型EVENT_IVS_OBJECT_APPEAR_DETECTION(目标出现事件)对应的规则配置
  4658. typedef struct tagCFG_OBJECT_APPEAR_DETECTION_INFO
  4659. {
  4660. char szRuleName[128]; // 规则名称,不同规则不能重名
  4661. BOOL bRuleEnable; // 规则使能
  4662. int nObjectTypeNum; // 相应物体类型个数
  4663. char szObjectTypes[16][128]; // 相应物体类型列表
  4664. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4665. CFG_TIME_SECTION stuTimeSection[7][10]; // 事件响应时间段
  4666. int nPtzPresetId; // 云台预置点编号 0~65535
  4667. UINT nMinDuration; // 最短持续时间, 范围[1-3600], 单位:秒
  4668. UINT nReportInterval; // 报警时间间隔, 取值范围[0-3600], 单位:秒
  4669. UINT nDetectMode; // 检测模式: 0:未知, 1:自定义, 2:自适应
  4670. int nSensitivity; // 灵敏度,取值[1-10]
  4671. UINT nDetectRegionNum; // 检测区顶点数
  4672. NET_CFG_POLYGON stuDetectRegion[20]; // 检测区
  4673. EM_CFG_FILTER_OBJECT emFilterObjectList[16]; // 过滤目标
  4674. UINT nFilterObjectListCount; // 过滤目标个数
  4675. BOOL bMovingTargetFilterEnable; // 是否开启运动目标过滤
  4676. NET_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器
  4677. BOOL bSizeFilter; // 规则特定的尺寸过滤器是否有效
  4678. UINT nAlgId; // 规则使用的变化事件算法id
  4679. char szAlgName[128]; // 算法名称
  4680. UINT nAlarmId; // 自定义报警ID
  4681. char szReserved[4092]; // 预留字节
  4682. }CFG_OBJECT_APPEAR_DETECTION_INFO;
  4683. ///@brief 事件类型EVENT_IVS_OBJECT_DISAPPEAR_DETECTION(目标消失事件)对应的规则配置
  4684. typedef struct tagCFG_OBJECT_DISAPPEAR_DETECTION_INFO
  4685. {
  4686. char szRuleName[128]; // 规则名称,不同规则不能重名
  4687. BOOL bRuleEnable; // 规则使能
  4688. int nObjectTypeNum; // 相应物体类型个数
  4689. char szObjectTypes[16][128]; // 相应物体类型列表
  4690. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4691. CFG_TIME_SECTION stuTimeSection[7][10]; // 事件响应时间段
  4692. int nPtzPresetId; // 云台预置点编号 0~65535
  4693. UINT nMinDuration; // 最短持续时间, 范围[1-3600], 单位:秒
  4694. UINT nReportInterval; // 报警时间间隔, 取值范围[0-3600], 单位:秒
  4695. UINT nDetectMode; // 检测模式: 0:未知, 1:自定义, 2:自适应
  4696. int nSensitivity; // 灵敏度,取值[1-10]
  4697. UINT nDetectRegionNum; // 检测区顶点数
  4698. NET_CFG_POLYGON stuDetectRegion[20]; // 检测区
  4699. EM_CFG_FILTER_OBJECT emFilterObjectList[16]; // 过滤目标
  4700. UINT nFilterObjectListCount; // 过滤目标个数
  4701. BOOL bMovingTargetFilterEnable; // 是否开启运动目标过滤
  4702. NET_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器
  4703. BOOL bSizeFilter; // 规则特定的尺寸过滤器是否有效
  4704. UINT nAlgId; // 规则使用的变化事件算法id
  4705. char szAlgName[128]; // 算法名称
  4706. UINT nAlarmId; // 自定义报警ID
  4707. char szReserved[4092]; // 预留字节
  4708. }CFG_OBJECT_DISAPPEAR_DETECTION_INFO;
  4709. ///@brief 物体子类型
  4710. typedef struct tagNET_SUB_OBJECT_TYPES
  4711. {
  4712. char szNonMotor[64][32]; // 非机动车的子类别列表
  4713. char szBag[64][32]; // 箱包盒的子类别列表
  4714. char szTransport[64][32]; // 运输工具的子类别列表
  4715. char szElectronic[64][32]; // 电子产品的子类别列表
  4716. char szPublic[64][32]; // 公共物品的子类别列表
  4717. int nNonMotorNum; // 非机动车的子类别列表个数
  4718. int nBagNum; // 箱包盒的子类别列表个数
  4719. int nTransportNum; // 运输工具的子类别列表个数
  4720. int nElectronicNum; // 电子产品的子类别列表个数
  4721. int nPublicNum; // 公共物品的子类别列表个数
  4722. char szReserved[252]; // 预留字节
  4723. }NET_SUB_OBJECT_TYPES;
  4724. ///@brief 事件类型EVENT_IVS_OBJECT_REMOVAL(物品拿取事件)对应的规则配置
  4725. typedef struct tagCFG_OBJECT_REMOVAL_RULE_INFO
  4726. {
  4727. char szRuleName[128]; // 规则名称,不同规则不能重名
  4728. BOOL bRuleEnable; // 规则使能
  4729. int nObjectTypeNum; // 相应物体类型个数
  4730. char szObjectTypes[16][128]; // 相应物体类型列表
  4731. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4732. CFG_TIME_SECTION stuTimeSection[7][10]; // 事件响应时间段
  4733. int nPtzPresetId; // 云台预置点编号 0~65535
  4734. UINT nMinDuration; // 最短持续时间, 单位:秒
  4735. UINT nReportInterval; // 报警时间间隔, 单位:秒
  4736. UINT nSensitivity; // 灵敏度,取值[1-10]
  4737. NET_CFG_POLYGON stuDetectRegion[20]; // 检测区
  4738. NET_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器
  4739. UINT nDetectRegionNum; // 检测区顶点数
  4740. BOOL bSizeFilter; // 规则特定的尺寸过滤器是否有效
  4741. NET_SUB_OBJECT_TYPES stuSubObjTypes; // 物体子类型
  4742. char szObjTypes[32][64]; // 需要检测的物体类型列表
  4743. int nObjTypesNum; // 需要检测的物体类型列表个数
  4744. char szReserved[4092]; // 预留字节
  4745. }CFG_OBJECT_REMOVAL_RULE_INFO;
  4746. ///@brief 事件类型EVENT_IVS_OBJECT_PLACEMENT(物品拿取事件)对应的规则配置
  4747. typedef struct tagCFG_OBJECT_PLACEMENT_RULE_INFO
  4748. {
  4749. char szRuleName[128]; // 规则名称,不同规则不能重名
  4750. BOOL bRuleEnable; // 规则使能
  4751. int nObjectTypeNum; // 相应物体类型个数
  4752. char szObjectTypes[16][128]; // 相应物体类型列表
  4753. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4754. CFG_TIME_SECTION stuTimeSection[7][10]; // 事件响应时间段
  4755. int nPtzPresetId; // 云台预置点编号 0~65535
  4756. UINT nMinDuration; // 最短持续时间, 范围[1-3600], 单位:秒
  4757. UINT nReportInterval; // 报警时间间隔, 取值范围[0-3600], 单位:秒
  4758. UINT nSensitivity; // 灵敏度,取值[1-10]
  4759. NET_CFG_POLYGON stuDetectRegion[20]; // 检测区
  4760. NET_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器
  4761. UINT nDetectRegionNum; // 检测区顶点数
  4762. BOOL bSizeFilter; // 规则特定的尺寸过滤器是否有效
  4763. NET_SUB_OBJECT_TYPES stuSubObjTypes; // 物体子类型
  4764. char szObjTypes[32][64]; // 需要检测的物体类型列表
  4765. int nObjTypesNum; // 需要检测的物体类型列表个数
  4766. char szReserved[4092]; // 预留字节
  4767. }CFG_OBJECT_PLACEMENT_RULE_INFO;
  4768. ///@brief 联动注册库信息
  4769. typedef struct tagNET_CFG_STATE_DETECTION_LINKGROUP_INFO
  4770. {
  4771. char szGroupID[64]; // 当前视频通道对应的布控组ID
  4772. char szGroupName[20]; // 注册库名称
  4773. BOOL bEnable; // 注册库是否启用
  4774. int nSimilarity; // 相似度阈值
  4775. char szReserved[1020]; // 预留字节
  4776. }NET_CFG_STATE_DETECTION_LINKGROUP_INFO;
  4777. ///@brief 事件类型EVENT_IVS_OBJECT_STATE_DETECTION(目标状态事件)对应的规则配置
  4778. typedef struct tagCFG_OBJECT_STATE_DETECTION_INFO
  4779. {
  4780. char szRuleName[128]; // 规则名称,不同规则不能重名
  4781. BOOL bRuleEnable; // 规则使能
  4782. int nObjectTypeNum; // 相应物体类型个数
  4783. char szObjectTypes[16][128]; // 相应物体类型列表
  4784. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4785. CFG_TIME_SECTION stuTimeSection[7][10]; // 事件响应时间段
  4786. int nPtzPresetId; // 云台预置点编号 0~65535
  4787. UINT nMinDuration; // 最短持续时间, 范围[1-3600], 单位:秒
  4788. UINT nReportInterval; // 报警时间间隔,取值范围[0-3600], 单位:秒
  4789. int nSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4790. UINT nDetectMode; // 检测模式: 0:未知, 1:自定义, 2:自适应
  4791. UINT nDetectRegionNum; // 检测区顶点数
  4792. NET_CFG_POLYGON stuDetectRegion[20]; // 检测区
  4793. NET_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器
  4794. BOOL bSizeFilter; // 规则特定的尺寸过滤器是否有效
  4795. UINT nAlgId; // 规则使用的变化事件算法id
  4796. char szAlgName[128]; // 算法名称
  4797. UINT nAlarmId; // 自定义报警ID
  4798. UINT nLinkGroupNum; // 联动注册库有效个数
  4799. NET_CFG_STATE_DETECTION_LINKGROUP_INFO stuLinkGroup[64]; // 联动注册库
  4800. char szReserved[4096]; // 预留字节
  4801. }CFG_OBJECT_STATE_DETECTION_INFO;
  4802. ///@brief 事件类型EVENT_IVS_DENSITYDETECTION(人群密度检测事件)对应的规则配置
  4803. typedef struct tagCFG_DENSITYDETECTION_INFO
  4804. {
  4805. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4806. bool bRuleEnable; // 规则使能
  4807. BYTE byUnit; // 密度检测数值单位GB30147需要 0 密度等级,划分为四个,很稀疏,稀疏,密集,很密集。1 密度百分比
  4808. BYTE bSensitivity; // 灵敏度(取值1-10,值越小灵敏度越低,对应人群的密集程度越高)
  4809. BYTE byMinAlarmDensity; // 最小报警密度 取值1-100,报警门限值百分比
  4810. int nObjectTypeNum; // 相应物体类型个数
  4811. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4812. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4813. int nDetectRegionPoint; // 检测区域顶点数
  4814. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4815. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4816. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4817. int nPtzPresetId; // 云台预置点编号 0~65535
  4818. } CFG_DENSITYDETECTION_INFO;
  4819. ///@brief 事件类型EVENT_IVS_FIGHTDETECTION(斗殴事件)对应的规则配置
  4820. typedef struct tagCFG_FIGHT_INFO
  4821. {
  4822. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4823. bool bRuleEnable; // 规则使能
  4824. BYTE bReserved[3]; // 保留字段
  4825. int nObjectTypeNum; // 相应物体类型个数
  4826. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4827. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4828. int nDetectRegionPoint; // 检测区域顶点数
  4829. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4830. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4831. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4832. int nPtzPresetId; // 云台预置点编号 0~65535
  4833. int nSensitivity; // 灵敏度, 1-10
  4834. CFG_EM_DETECTMODE_T emDetectMode; // 检测模式
  4835. } CFG_FIGHT_INFO;
  4836. ///@brief 事件类型EVENT_IVS_FIREDETECTION(火警事件/火焰检测)对应的规则配置
  4837. typedef struct tagCFG_FIRE_INFO
  4838. {
  4839. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4840. bool bRuleEnable; // 规则使能
  4841. BYTE bReserved[3]; // 保留字段
  4842. int nObjectTypeNum; // 相应物体类型个数
  4843. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4844. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4845. int nDetectRegionPoint; // 检测区域顶点数
  4846. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4847. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4848. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4849. int nPtzPresetId; // 云台预置点编号 0~65535
  4850. int nSensitivity; // 灵敏度 1~10
  4851. UINT nRepeatAlarmTime; // 报警重复时长 单位:秒 范围:0-3600
  4852. BOOL bRepeatAlarmEnable; // 重复报警使能
  4853. UINT nOverlapThreshold; // 重叠区域比例阈值,范围0-100,0表示不进行匹配
  4854. } CFG_FIRE_INFO;
  4855. ///@brief 事件类型EVENT_IVS_ELECTROSPARKDETECTION(电火花事件)对应的规则配置
  4856. typedef struct tagCFG_ELECTROSPARK_INFO
  4857. {
  4858. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4859. bool bRuleEnable; // 规则使能
  4860. BYTE bReserved[3]; // 保留字段
  4861. int nObjectTypeNum; // 相应物体类型个数
  4862. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4863. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4864. int nDetectRegionPoint; // 检测区域顶点数
  4865. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4866. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4867. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4868. int nPtzPresetId; // 云台预置点编号 0~65535
  4869. } CFG_ELECTROSPARK_INFO;
  4870. ///@brief 事件类型 EVENT_IVS_SMOKEDETECTION (烟雾报警事件)对应的规则配置
  4871. typedef struct tagCFG_SMOKE_INFO
  4872. {
  4873. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4874. bool bRuleEnable; // 规则使能
  4875. BYTE bReserved[3]; // 保留字段
  4876. int nObjectTypeNum; // 相应物体类型个数
  4877. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4878. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  4879. int nDetectRegionPoint; // 检测区域顶点数
  4880. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4881. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4882. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4883. int nPtzPresetId; // 云台预置点编号 0~65535
  4884. int nSensitivity; // 灵敏度 1~10
  4885. } CFG_SMOKE_INFO;
  4886. ///@brief 事件类型EVENT_IVS_FLOWSTAT(流量统计事件)对应的规则配置
  4887. typedef struct tagCFG_FLOWSTAT_INFO
  4888. {
  4889. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4890. bool bRuleEnable; // 规则使能
  4891. BYTE bReserved[3]; // 保留字段
  4892. int nObjectTypeNum; // 相应物体类型个数
  4893. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4894. int nUpperLimit; // 流量上限 单位:个/秒,1~65535
  4895. int nPeriod; // 上报周期 单位:秒,1~65535
  4896. int nDetectLinePoint; // 检测线顶点数
  4897. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 检测线
  4898. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4899. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4900. int nPtzPresetId; // 云台预置点编号 0~65535
  4901. } CFG_FLOWSTAT_INFO;
  4902. ///@brief 事件类型EVENT_IVS_SEATING_RATE_DETECTION(就座率检测事件)对应的规则配置
  4903. typedef struct tagCFG_SEATING_RATE_DETECTION_INFO
  4904. {
  4905. char szRuleName[128]; // 规则名称,不同规则不能重名
  4906. BOOL bRuleEnable; // 规则使能
  4907. int nObjectTypeNum; // 相应物体类型个数
  4908. char szObjectTypes[16][128]; // 相应物体类型列表
  4909. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4910. CFG_TIME_SECTION stuTimeSection[7][10]; // 事件响应时间段
  4911. int nPtzPresetId; // 云台预置点编号 0~65535
  4912. UINT nMinDuration; // 最短持续时间,单位是秒,低于该时间不报警,默认0
  4913. int nReportInterval; // 重复报警间隔,为0不重复报警,单位:秒,默认0
  4914. UINT nSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4915. UINT nDetectType; // 检测模式: 0-大于阈值报警 ,1-小于阈值报警 ,2-不等于阈值报警 ,3-等于阈值报警,4-人数变化报警(该模式下只要灵敏度参数)
  4916. int nMinHeight; // 最小检测高度,单位cm,默认0
  4917. int nMaxHeight; // 最大检测高度,单位cm,默认0
  4918. UINT nPeriodicReportInterval; // 周期上报时间间隔,1-15分钟可配,默认5分钟
  4919. int nThreshold; // 报警阈值百分比
  4920. UINT nDetectionDuration; // 就座率的检测时长设置(范围1~30分钟,默认3分钟)
  4921. int nRecordedSceneType; // 智慧录播子场景信息:1-教师场景 2-学生场景,无此配置不区分场景
  4922. UINT nSeatCount; // 总座位数
  4923. UINT nDetectRegionNum; // 检测区顶点数
  4924. NET_CFG_POLYGON stuDetectRegion[20]; // 检测区
  4925. NET_CFG_POLYGON stuExcludeRegion[20]; // 排除域:检测区域中需要排除的区域,一个检测区域对应1个排除区域 坐标点归一化到0~8192,默认为NULL
  4926. UINT nExcludeRegionNum; // 排除域顶点数
  4927. char szReserved[1020]; // 预留字节
  4928. }CFG_SEATING_RATE_DETECTION_INFO;
  4929. ///@brief 数量统计类型
  4930. typedef enum NET_NUMBERSTAT_TYPE
  4931. {
  4932. NET_EM_NUMSTAT_TYPE_REGION, // "Region" 区域类型
  4933. NET_EM_NUMSTAT_TYPE_ENTRANCE, // "Entrance" 出入口类型
  4934. NET_EM_NUMSTAT_TYPE_OTHER, // other
  4935. }NET_NUMBERSTAT_TYPE;
  4936. ///@brief 人数去重策略配置
  4937. typedef struct tagCFG_DUPLICATE_REMOVE_INFO
  4938. {
  4939. BOOL bEnable; // 使能开关
  4940. UINT nSensitivity; // 人数去重灵敏度,取值1-10,默认5,值越小越不容易判断重复,值越高越容易被判断为重复,仅在支持人数去重时生效。
  4941. int nType; // 策略类型 0: 按时刻表
  4942. BOOL bUseBeginTime; /// 是否使用去重开始结束时间
  4943. CFG_TIME_EX stuBeginTime; /// 去重起始时间, 仅时分有效
  4944. CFG_TIME_EX stuEndTime; /// 去重结束时间, 仅时分有效
  4945. char szReserved[96]; // 保留字段
  4946. } CFG_DUPLICATE_REMOVE_INFO;
  4947. ///@brief 事件类型EVENT_IVS_NUMBERSTAT(数量统计事件)对应的规则配置
  4948. typedef struct tagCFG_NUMBERSTAT_INFO
  4949. {
  4950. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4951. bool bRuleEnable; // 规则使能
  4952. BYTE bReserved[3]; // 保留字段
  4953. int nObjectTypeNum; // 相应物体类型个数
  4954. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4955. int nUpperLimit; // 数量上限 单位:个,1~65535
  4956. int nPeriod; // 上报周期 单位:秒,1~65535
  4957. int nDetectRegionPoint; // 检测区顶点数
  4958. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4959. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4960. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4961. int nPtzPresetId; // 云台预置点编号 0~65535
  4962. NET_NUMBERSTAT_TYPE emType; // 数量统计类型 支持:"Region" 区域类型 "Entrance" 出入口类型
  4963. CFG_POLYGON stDirection[2]; // 正常运动方向, 按照此方向行驶是正向,反过来是逆行 只对出入口类型有效。第一个点是起点,第二个点是终点,点的坐标归一化到[0,8191]区间。
  4964. int nRecordInterval; // 记录周期,单位:分钟,1~10
  4965. int nEnterThreshold; // 进入数报警阈值,0表示不报警
  4966. int nExitThreshold; // 离开数报警阈值,0表示不报警
  4967. int nInsideThreshold; // 滞留数报警阈值,0表示不报警
  4968. UINT nPlanID; // 计划ID,仅球机有效,从1开始
  4969. UINT nAreaID; // 区域ID,一个预置点可以对应多个区域
  4970. int nMaxDetectLineNum; // 检测线实际最大个数
  4971. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 离开检测线坐标
  4972. UINT nStayMinDuration; // 停留超时时间
  4973. CFG_ALARM_MSG_HANDLE stuRemoteEventHandler; // 前端视频分析联动
  4974. CFG_TIME_SECTION stuRemoteTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 前端视频分析联动响应时间段
  4975. CFG_DUPLICATE_REMOVE_INFO stuDuplicateRemove; //人数去重策略配置
  4976. BOOL bAttrEnable; /// 人员目标属性使能开关,true:开启,false:关闭
  4977. char szReserved[1020]; // 保留字段
  4978. } CFG_NUMBERSTAT_INFO;
  4979. ///@brief 事件类型EVENT_IVS_RETROGRADEDETECTION(人员逆行事件)对应的规则配置
  4980. typedef struct tagCFG_RETROGRADEDETECTION_INFO
  4981. {
  4982. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4983. bool bRuleEnable; // 规则使能
  4984. BYTE bSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低
  4985. BYTE bReserved[2]; // 保留字段
  4986. int nObjectTypeNum; // 相应物体类型个数
  4987. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4988. int nPtzPresetId; // 云台预置点编号 0~65535
  4989. int nDetectRegionPoint; // 检测区域顶点数
  4990. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4991. int nDirectionPoint; // 正常行驶方向顶点数
  4992. CFG_POLYGON stuDirection[MAX_POLYLINE_NUM]; // 正常行驶方向, 按照此方向行驶是正向,反过来是逆行(第一个点是起点,第二个点是终点,点的坐标归一化到[0,8191]区间)
  4993. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4994. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4995. int nTriggerPosition; // 触发报警位置数
  4996. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  4997. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4998. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4999. } CFG_RETROGRADEDETECTION_INFO;
  5000. ///@brief 事件类型EVENT_IVS_ABNORMALRUNDETECTION(异常奔跑事件)对应的规则配置
  5001. typedef struct tagCFG_ABNORMALRUNDETECTION_INFO
  5002. {
  5003. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5004. bool bRuleEnable; // 规则使能
  5005. BYTE bSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低
  5006. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  5007. BYTE bReserved[1]; // 保留字段
  5008. int nObjectTypeNum; // 相应物体类型个数
  5009. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5010. int nPtzPresetId; // 云台预置点编号 0~65535
  5011. int nDetectRegionPoint; // 检测区域顶点数
  5012. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5013. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  5014. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  5015. int nTriggerPosition; // 触发报警位置数
  5016. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  5017. int nDetectType; // 检测类型数
  5018. BYTE bDetectType[4]; // 检测类型,0-快速奔跑, 1-突然加速, 2-突然减速
  5019. int nTriggerSpeed; // 触发速度,大于该速度报警 单位:km/h
  5020. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  5021. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5022. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5023. } CFG_ABNORMALRUNDETECTION_INFO;
  5024. ///@brief 事件类型EVENT_IVS_VIDEOABNORMALDETECTION(视频异常)对应的规则配置
  5025. typedef struct tagCFG_VIDEOABNORMALDETECTION_INFO
  5026. {
  5027. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5028. bool bRuleEnable; // 规则使能
  5029. BYTE bSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低(只对检测类型视频遮挡,过亮,过暗,场景变化有效)
  5030. BYTE bReserved[2]; // 保留字段
  5031. int nObjectTypeNum; // 相应物体类型个数
  5032. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5033. int nPtzPresetId; // 云台预置点编号 0~65535
  5034. int nDetectType; // 检测类型数
  5035. BYTE bDetectType[MAX_ABNORMAL_DETECT_TYPE]; // 检测类型,0-视频丢失, 1-视频遮挡, 2-画面冻结, 3-过亮, 4-过暗, 5-场景变化
  5036. // 6-条纹检测 , 7-噪声检测 , 8-偏色检测 , 9-视频模糊检测 , 10-对比度异常检测
  5037. // 11-视频运动 , 12-视频闪烁 , 13-视频颜色 , 14-虚焦检测 , 15-过曝检测, 16-场景巨变
  5038. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  5039. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5040. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5041. int nDetectRegionPoint; // 检测区顶点数
  5042. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5043. int nThresholdNum; // 异常检测阈值数量
  5044. int nThreshold[MAX_ABNORMAL_THRESHOLD_LEN]; // 异常检测阈值,范围1~100
  5045. } CFG_VIDEOABNORMALDETECTION_INFO;
  5046. ///@brief 事件类型EVENT_IVS_FACERECOGNITION(目标识别)对应的规则配置
  5047. typedef struct tagCFG_FACERECOGNITION_INFO
  5048. {
  5049. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5050. bool bRuleEnable; // 规则使能
  5051. BYTE bReserved[2]; // 保留字段
  5052. int nObjectTypeNum; // 相应物体类型个数
  5053. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5054. int nPtzPresetId; // 云台预置点编号 0~65535
  5055. BYTE bySimilarity; // 相似度,必须大于该相识度才报告(1~100)
  5056. BYTE byAccuracy; // 识别精度(取值1~10,随着值增大,检测精度提高,检测速度下降。最小值为1 表示检测速度优先,最大值为10表示检测精度优先)
  5057. BYTE byMode; // 对比模式, 0-正常, 1-指定目标区域组合, 2-智能模式(算法根据目标各个区域情况自动选取组合)
  5058. BYTE byImportantRank; // 查询重要等级大于等于此等级的人员(1~10,数值越高越重要)
  5059. int nAreaNum; // 区域数
  5060. BYTE byAreas[8]; // 目标区域组合, 0-眉毛,1-眼睛,2-鼻子,3-嘴巴,4-脸颊(此参数在对比模式为1时有效)
  5061. int nMaxCandidate; // 报告的最大匹配图片个数
  5062. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5063. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5064. } CFG_FACERECOGNITION_INFO;
  5065. ///@brief 事件类型EVENT_IVS_TRAFFICCONTROL(交通管理事件)对应的规则配置
  5066. typedef struct tagCFG_TRAFFICCONTROL_INFO
  5067. {
  5068. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5069. bool bRuleEnable; // 规则使能
  5070. BYTE bReserved[3]; // 保留字段
  5071. int nObjectTypeNum; // 相应物体类型个数
  5072. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5073. int nDetectLinePoint; // 检测线顶点数
  5074. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 检测线
  5075. CFG_TIME_SECTION stuTimeSchedule[WEEK_DAY_NUM][MAX_REC_TSECT]; // 限行时间表
  5076. int nVehicleSizeNum; // 车辆大小类型个数
  5077. char szVehicleSizeList[MAX_VEHICLE_SIZE_LIST][MAX_NAME_LEN]; // 车辆大小类型列表"Light-duty":小型车; "Medium":中型车; "Oversize":大型车
  5078. int nPlateTypeNum; // 车牌类型个数
  5079. char szPlateTypesList[MAX_PLATE_TYPE_LIST][MAX_NAME_LEN]; // 车牌类型列表"Unknown" 未知; "Normal" 蓝牌黑牌; "Yellow" 黄牌; "DoubleYellow" 双层黄尾牌
  5080. // "Police" 警牌; "SAR" 港澳特区号牌; "Trainning" 教练车号牌; "Personal" 个性号牌; "Agri" 农用牌
  5081. // "Embassy" 使馆号牌; "Moto" 摩托车号牌; "Tractor" 拖拉机号牌; "Other" 其他号牌
  5082. // "Civilaviation"民航号牌,"Black"黑牌,"PureNewEnergyMicroCar"纯电动新能源小车
  5083. // "MixedNewEnergyMicroCar,"混合新能源小车,"PureNewEnergyLargeCar",纯电动新能源大车
  5084. // "MixedNewEnergyLargeCar"混合新能源大车
  5085. int nPlateNumber; // 车牌单双号 0:单号; 1:双号; 2:单双号;
  5086. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5087. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5088. int nPtzPresetId; // 云台预置点编号 0~65535
  5089. } CFG_TRAFFICCONTROL_INFO;
  5090. ///@brief 事件类型EVENT_IVS_TRAFFICACCIDENT(交通事故事件)对应的规则配置
  5091. typedef struct tagCFG_TRAACCIDENT_INFO
  5092. {
  5093. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5094. bool bRuleEnable; // 规则使能
  5095. BYTE bReserved[3]; // 保留字段
  5096. int nObjectTypeNum; // 相应物体类型个数
  5097. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5098. int nDetectRegionPoint; // 检测区顶点数
  5099. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5100. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5101. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5102. int nPtzPresetId; // 云台预置点编号 0~65535
  5103. int nMinDuration; // 最短持续时间,单位:秒 0~65535
  5104. int nLaneNo; // 车道编号
  5105. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍。
  5106. // 如下两种情况不适合变倍
  5107. // 1. 车速较快场合,变倍会导致跟踪不及时
  5108. // 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  5109. // 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
  5110. int nZoomStayTime; // 变倍停留时间,单位:秒,在 bZoomEnable 为 TRUE 时有效,0 表示不停留,默认为0
  5111. int nVehicleDelayTime; // 车辆触发报警时间阈值,大于该阈值认为是交通事件,单位:秒,范围0-3600
  5112. int nPersonDelayTime; // 行人触发报警时间阈值,大于该阈值认为是交通事件,单位:秒,范围0-3600
  5113. int nMaxDelayTime; // 最大报警时长 超过此时间将不再报警,单位:秒,范围0-3600
  5114. int nVehicleNumberThreshold; // 车辆数目阈值, 拥堵状态下的停车数阈值,用于拥堵造成的交通事故,不做报警
  5115. } CFG_TRAACCIDENT_INFO;
  5116. ///@brief 事件类型EVENT_IVS_TRAFFICJUNCTION(交通路口老规则事件)对应的规则配置
  5117. typedef struct tagCFG_TRAJUNCTION_INFO
  5118. {
  5119. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5120. bool bRuleEnable; // 规则使能
  5121. int nObjectTypeNum; // 相应物体类型个数
  5122. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5123. int nLane; // 车道编号
  5124. int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
  5125. int nPreLinePoint; // 前置检测线顶点数
  5126. CFG_POLYLINE stuPreLine[MAX_POLYLINE_NUM]; // 前置检测线
  5127. int nMiddleLinePoint; // 中间检测线顶点数
  5128. CFG_POLYLINE stuMiddleLine[MAX_POLYLINE_NUM]; // 中间检测线
  5129. int nPostLinePoint; // 后置检测线顶点数
  5130. CFG_POLYLINE stuPostLine[MAX_POLYLINE_NUM]; // 后置检测线
  5131. int nFlowLimit; // 流量上限,单位辆/秒
  5132. int nSpeedDownLimit; // 速度下限,若为0,则表示不设下限,km/h
  5133. int nSpeedUpLimit; // 速度上限,若为0,则表示不设上限,km/h
  5134. int nTriggerModeNum; // 触发模式个数
  5135. char szTriggerMode[MAX_TRIGGERMODE_NUM][MAX_NAME_LEN]; // 触发模式,"Passing" : 穿过路口(以中间检测线为准,只能单独使用),"RunRedLight" : 闯红灯
  5136. // "Overline":压白车道线,"OverYellowLine": 压黄线, "Retrograde":逆行
  5137. // "TurnLeft":违章左转, "TurnRight":违章右转, "CrossLane":违章变道
  5138. // "U-Turn" 违章掉头, "Parking":违章停车, "WaitingArea" 违章进入待行区
  5139. // "OverSpeed": 超速,"UnderSpeed":欠速,"Overflow" : 流量过大
  5140. // "Human":行人,"NoMotor":非机动车
  5141. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5142. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX];// 事件响应时间段
  5143. int nPtzPresetId; // 云台预置点编号 0~65535
  5144. BOOL bMaskRetrograde; // 是否屏蔽逆行,即将逆行当作正常处理
  5145. } CFG_TRAJUNCTION_INFO;
  5146. ///@brief 事件类型EVENT_IVS_TRAFFICGATE(交通卡口老规则事件)对应的规则配置
  5147. typedef struct tagCFG_TRAFFICGATE_INFO
  5148. {
  5149. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5150. bool bRuleEnable; // 规则使能
  5151. BYTE bReserved[3]; // 保留字段
  5152. int nObjectTypeNum; // 相应物体类型个数
  5153. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5154. int nLane; // 车道编号
  5155. int nDetectLinePoint1; // 检测线(虚拟线圈)1顶点数
  5156. CFG_POLYLINE stuDetectLine1[MAX_POLYLINE_NUM]; // 检测线1
  5157. int nDetectLinePoint2; // 检测线(虚拟线圈)2顶点数
  5158. CFG_POLYLINE stuDetectLine2[MAX_POLYLINE_NUM]; // 检测线2
  5159. int nLeftLinePoint; // 左车道线顶点数
  5160. CFG_POLYLINE stuLeftLine[MAX_POLYLINE_NUM]; // 左车道线
  5161. int nRightLinePoint; // 右车道线顶点数
  5162. CFG_POLYLINE stuRightLine[MAX_POLYLINE_NUM]; // 右车道线
  5163. int nSpeedWeight; // 速度权重系数(最终车速=测量车速*权重系数)
  5164. double MetricDistance; // 两条检测线实际距离,单位:米
  5165. int nSpeedUpperLimit; // 速度上限 0表示不限上限 单位:km/h
  5166. int nSpeedLowerLimit; // 速度下限 0表示不限下限 单位:km/h
  5167. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5168. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5169. int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
  5170. int nTriggerModeNum; // 触发模式个数
  5171. char szTriggerMode[MAX_TRIGGERMODE_NUM][MAX_NAME_LEN]; // 触发模式,"OverLine":压线,"Retrograde":逆行,"OverSpeed":超速,"UnderSpeed":欠速
  5172. // "Passing":穿过路口,属正常抓拍, "WrongRunningRoute":有车占道(单独使用),"YellowVehicleInRoute": 黄牌占道
  5173. // "OverYellowLine":压黄线
  5174. int nPtzPresetId; // 云台预置点编号 0~65535
  5175. BOOL bMaskRetrograde; // 是否屏蔽逆行,即将逆行当作正常处理
  5176. } CFG_TRAFFICGATE_INFO;
  5177. ///@brief 事件类型EVENT_IVS_TRAFFIC_TOLLGATE(交通卡口新规则事件)对应的规则配置
  5178. typedef struct tagCFG_TRAFFICTOLLGATE_INFO
  5179. {
  5180. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5181. bool bRuleEnable; // 规则使能
  5182. BYTE nDirectionNum; // 车辆行驶方向个数
  5183. BYTE nDirection[2]; // 相对车道方向需要上报的车辆行驶方向, 0:未知, 1:正向, 2:反向
  5184. int nObjectTypeNum; // 相应物体类型个数
  5185. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5186. int nPtzPresetId; // 云台预置点编号 0~65535
  5187. int nLane; // 车道编号
  5188. int nDetectLinePoint; // 卡口报警线顶点数
  5189. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 卡口报警线
  5190. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5191. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5192. } CFG_TRAFFICTOLLGATE_INFO;
  5193. ///@brief 事件类型EVENT_IVS_FACEDETECT(目标检测事件)对应的规则配置
  5194. typedef struct tagCFG_FACEDETECT_INFO
  5195. {
  5196. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5197. bool bRuleEnable; // 规则使能
  5198. BYTE bReserved[3]; // 保留字段
  5199. int nObjectTypeNum; // 相应物体类型个数
  5200. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5201. int nDetectRegionPoint; // 检测区顶点数
  5202. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5203. int nHumanFaceTypeCount; // 触发事件的目标类型个数
  5204. char szHumanFaceType[MAX_HUMANFACE_LIST_SIZE][MAX_NAME_LEN]; // 触发事件的目标类型
  5205. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5206. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5207. int nPtzPresetId; // 云台预置点编号 0~65535
  5208. int nMinDuration; // 最短触发时间,单位:秒
  5209. int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  5210. int nReportInterval; // 重复报警间隔,单位:秒,[0,600](等于0表示不重复报警)
  5211. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  5212. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  5213. BOOL bFeatureEnable; // 是否开启目标属性识别, IPC增加
  5214. //(通过FaceDetection能力中的FeatureSupport来确定该配置是否可以设置)
  5215. int nFaceFeatureNum; // 需要检测的目标属性个数
  5216. EM_FACEFEATURE_TYPE emFaceFeatureType[MAX_FEATURE_LIST_SIZE]; // 需检测的目标属性, 通过FaceDetection能力来获取支持哪些目标属性
  5217. CFG_FACE_BEAUTIFICATION stuFaceBeautification; /// 人Lian美化
  5218. char szReserved[1024]; // 保留字段
  5219. }CFG_FACEDETECT_INFO;
  5220. ///@brief 联动的布控组
  5221. typedef struct tagCFG_LINKGROUP_INFO
  5222. {
  5223. BOOL bEnable; // 布控组是否启用
  5224. char szGroupID[MAX_GROUP_ID_LEN]; // 布控组ID
  5225. BYTE bySimilarity; // 相似度阈值
  5226. char szColorName[MAX_COLOR_NAME_LEN]; // 事件触发时绘制目标框的颜色
  5227. BOOL bShowTitle; // 事件触发时规则框上是否显示报警标题
  5228. BOOL bShowPlate; // 事件触发时是否显示比对面板
  5229. BYTE bReserved[511]; // 保留字段
  5230. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5231. }CFG_LINKGROUP_INFO;
  5232. ///@brief 陌生人布防模式
  5233. typedef struct tagCFG_STRANGERMODE_INFO
  5234. {
  5235. BOOL bEnable; // 模式是否启用
  5236. char szColorHex[MAX_COLOR_HEX_LEN]; // 事件触发时绘制目标框的颜色
  5237. BOOL bShowTitle; // 事件触发时规则框上是否显示报警标题
  5238. BOOL bShowPlate; // 事件触发时是否显示比对面板
  5239. BYTE bReserved[512]; // 保留字段
  5240. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5241. }CFG_STRANGERMODE_INFO;
  5242. ///@brief 事件类型EVENT_IVS_FACEANALYSIS(目标分析事件) 对应的规则配置
  5243. typedef struct tagCFG_FACEANALYSIS_INFO
  5244. {
  5245. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5246. bool bRuleEnable; // 规则使能
  5247. BYTE bReserved[3]; // 保留字段
  5248. int nObjectTypeNum; // 相应物体类型个数
  5249. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5250. int nDetectRegionPoint; // 检测区顶点数
  5251. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5252. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5253. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5254. int nPtzPresetId; // 云台预置点编号 0~65535
  5255. int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  5256. int nLinkGroupNum; // 联动布控个数
  5257. CFG_LINKGROUP_INFO stuLinkGroup[MAX_LINK_GROUP_NUM]; // 联动的布控组
  5258. CFG_STRANGERMODE_INFO stuStrangerMode; // 陌生人布防模式
  5259. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  5260. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  5261. BOOL bFeatureEnable; // 是否开启目标属性识别, IPC增加
  5262. int nFaceFeatureNum; // 需要检测的目标属性个数
  5263. EM_FACEFEATURE_TYPE emFaceFeatureType[MAX_FEATURE_LIST_SIZE]; // 需检测的目标属性
  5264. BOOL bFeatureFilter; // 在目标属性开启前提下,如果目标图像质量太差,是否不上报属性
  5265. // true-图像太差不上报属性 false-图像很差也上报属性(可能会非常不准,影响用户体验)
  5266. int nMinQuality; // 目标图片质量阈值,和bFeatureFilter一起使用 范围[1,100]
  5267. CFG_FACE_BEAUTIFICATION stuFaceBeautification; /// 人Lian美化
  5268. UINT nRecognizeDistance; /// 人脸的识别距离,单位cm(设为0表示自动,识别距离不受限制)
  5269. char szReserved[1020]; // 保留字段
  5270. } CFG_FACEANALYSIS_INFO;
  5271. ///@brief 事件类型EVENT_IVSS_FACEATTRIBUTE(IVSS目标检测事件) 对应的规则配置
  5272. typedef struct tagCFG_FACEATTRIBUTE_INFO
  5273. {
  5274. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5275. bool bRuleEnable; // 规则使能
  5276. BYTE bReserved[3]; // 保留字段
  5277. int nObjectTypeNum; // 相应物体类型个数
  5278. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5279. int nDetectRegionPoint; // 检测区顶点数
  5280. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5281. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5282. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5283. int nPtzPresetId; // 云台预置点编号 0~65535
  5284. int nMinDuration; // 最短触发时间,单位:秒
  5285. int nTriggerTargetsNumber; // 触发报警的目标个数
  5286. int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测(默认值5)
  5287. int nReportInterval; // 重复报警间隔,单位:秒,[0,600] 等于0表示不重复报警(默认值30)
  5288. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  5289. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  5290. int nFaceFeatureNum; // 需要检测的目标属性个数
  5291. EM_FACEFEATURE_TYPE emFaceFeatureType[MAX_FEATURE_LIST_SIZE]; // 需检测的目标属性
  5292. BOOL bFeatureFilter; // 在目标属性开启前提下,如果目标图像质量太差,是否不上报属性
  5293. int nMinQuality; // 目标图片质量阈值,和bFeatureFilter一起使用 范围[0,100]
  5294. } CFG_FACEATTRIBUTE_INFO;
  5295. ///@brief 事件类型EVENT_IVSS_FACECOMPARE(IVSS目标识别事件) 对应的规则配置
  5296. typedef struct tagCFG_FACECOMPARE_INFO
  5297. {
  5298. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5299. bool bRuleEnable; // 规则使能
  5300. BYTE bReserved[3]; // 保留字段
  5301. int nObjectTypeNum; // 相应物体类型个数
  5302. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5303. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5304. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5305. int nPtzPresetId; // 云台预置点编号 0~65535
  5306. int nLinkGroupNum; // 联动布控个数
  5307. CFG_LINKGROUP_INFO stuLinkGroup[MAX_LINK_GROUP_NUM]; // 联动的布控组
  5308. CFG_STRANGERMODE_INFO stuStrangerMode; // 陌生人布防模式
  5309. } CFG_FACECOMPARE_INFO;
  5310. ///@brief 事件类型EVENT_IVS_TRAFFIC_NOPASSING(交通违章-禁止通行事件)对应的数据块描述信息
  5311. typedef struct tagCFG_NOPASSING_INFO
  5312. {
  5313. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5314. bool bRuleEnable; // 规则使能
  5315. BYTE bReserved[3]; // 保留字段
  5316. }CFG_NOPASSING_INFO;
  5317. ///@brief 事件类型EVENT_IVS_TRAFFICJAM (交通拥堵事件)对应的规则配置
  5318. typedef struct tagCFG_TRAFFICJAM_INFO
  5319. {
  5320. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5321. bool bRuleEnable; // 规则使能
  5322. BYTE bJamLineMargin; // 占线限值,拥堵长度占车道比例限值,0-100
  5323. BYTE bSensitivity; // 灵敏度,值越小灵敏度越低。取值1-10
  5324. BYTE bReserved[1]; // 保留字段
  5325. int nObjectTypeNum; // 相应物体类型个数
  5326. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5327. int nPtzPresetId; // 云台预置点编号 0~65535
  5328. int nLane; // 车道编号
  5329. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  5330. int nIntervalTime; // 报警间隔时间, 单位:秒,范围1~65535
  5331. int nReportTimes; // 上报次数, 1~255
  5332. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5333. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5334. int nDetectRegionPoint; // 检测区顶点数
  5335. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5336. UINT nDiscontinuousTimeThreshold; // 拥堵阈值(若超过该时间阈值为不拥堵的情况),单位:秒 范围:0~255
  5337. }CFG_TRAFFICJAM_INFO;
  5338. ///@brief 事件类型EVENT_IVS_TRAFFIC_NONMOTORINMOTORROUTE(非机动车占机动车车道配置)对应的规则配置
  5339. typedef struct tagCFG_TRAFFIC_NONMOTORINMOTORROUTE_INFO
  5340. {
  5341. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5342. bool bRuleEnable; // 规则使能
  5343. bool bSnapMotorcycle; // 是否抓拍摩托车,同一个视频通道部分规则需要抓拍摩托车,其它不需要,所以使用规则
  5344. BYTE bReserved[2]; // 保留字段
  5345. int nObjectTypeNum; // 相应物体类型个数
  5346. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5347. int nPtzPresetId; // 云台预置点编号 0~65535
  5348. int nLaneNumber; // 车道编号
  5349. CFG_POLYGON stDirection[2]; // 正常行驶方向, 按照此方向行驶是正向,反过来是逆行 第一个点是起点,第二个点是终点,点的坐标归一化到[0,8192)区间。
  5350. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5351. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5352. } CFG_TRAFFIC_NONMOTORINMOTORROUTE_INFO;
  5353. ///@brief 事件类型EVENT_IVS_TRAFFIC_NONMOTOR_OVERLOAD(非机动车超载配置)对应的规则配置
  5354. typedef struct tagCFG_TRAFFIC_NONMOTOR_OVERLOAD_INFO
  5355. {
  5356. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5357. bool bRuleEnable; // 规则使能
  5358. BYTE bReserved[3]; // 保留字段
  5359. int nObjectTypeNum; // 相应物体类型个数
  5360. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5361. int nPtzPresetId; // 云台预置点编号 0~65535
  5362. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5363. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5364. int nLaneNumber; // 车道编号
  5365. }CFG_TRAFFIC_NONMOTOR_OVERLOAD_INFO;
  5366. ///@brief 事件类型EVENT_IVS_TRAFFIC_NONMOTOR_HOLDUMBRELLA(非机动车装载伞具事件)对应的规则配置
  5367. typedef struct tagCFG_TRAFFIC_NONMOTOR_HOLDUMBRELLA_INFO
  5368. {
  5369. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5370. bool bRuleEnable; // 规则使能
  5371. BYTE bReserved[3]; // 保留字段
  5372. int nObjectTypeNum; // 相应物体类型个数
  5373. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5374. int nPtzPresetId; // 云台预置点编号 0~65535
  5375. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5376. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5377. int nLaneNumber; // 车道编号
  5378. int nSnapInterval; // 抓拍间隔时间
  5379. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  5380. }CFG_TRAFFIC_NONMOTOR_HOLDUMBRELLA_INFO;
  5381. ///@brief 事件类型EVENT_IVS_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT (非机动车未戴安全帽配置)对应的规则配置
  5382. typedef struct tagCFG_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT_INFO
  5383. {
  5384. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5385. bool bRuleEnable; // 规则使能
  5386. BYTE bReserved[3]; // 保留字段
  5387. int nObjectTypeNum; // 相应物体类型个数
  5388. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5389. int nPtzPresetId; // 云台预置点编号 0~65535
  5390. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5391. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5392. int nLaneNumber; // 车道编号
  5393. }CFG_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT_INFO;
  5394. ///@brief 事件类型EVENT_IVS_CITY_MOTORPARKING (城市机动车违停事件)对应的规则配置
  5395. typedef struct tagCFG_CITY_MOTORPARKING_INFO
  5396. {
  5397. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5398. BOOL bRuleEnable; // 规则使能
  5399. int nObjectTypeNum; // 相应物体类型个数
  5400. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5401. int nPtzPresetId; // 云台预置点编号 0~65535
  5402. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5403. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5404. int nDetectRegionPoint; // 检测区顶点数
  5405. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5406. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  5407. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  5408. int nSensitivity; // 灵敏度,值越小灵敏度越低, 范围 [1, 10]
  5409. }CFG_CITY_MOTORPARKING_INFO;
  5410. ///@brief 事件类型EVENT_IVS_CITY_NONMOTORPARKING (城市非机动车违停事件)对应的规则配置
  5411. typedef struct tagCFG_CITY_NONMOTORPARKING_INFO
  5412. {
  5413. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5414. BOOL bRuleEnable; // 规则使能
  5415. int nObjectTypeNum; // 相应物体类型个数
  5416. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5417. int nPtzPresetId; // 云台预置点编号 0~65535
  5418. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5419. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5420. int nDetectRegionPoint; // 检测区顶点数
  5421. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5422. int nAlarmNum; // 报警数量阈值,单位:辆 范围[1, 100]
  5423. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  5424. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  5425. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  5426. }CFG_CITY_NONMOTORPARKING_INFO;
  5427. ///@brief 事件类型EVENT_IVS_FLOWBUSINESS (流动摊贩事件)对应的规则配置
  5428. typedef struct tagCFG_FLOWBUSINESS_INFO
  5429. {
  5430. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5431. BOOL bRuleEnable; // 规则使能
  5432. int nObjectTypeNum; // 相应物体类型个数
  5433. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5434. int nPtzPresetId; // 云台预置点编号 0~65535
  5435. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5436. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5437. int nDetectRegionPoint; // 检测区顶点数
  5438. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5439. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  5440. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  5441. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  5442. }CFG_FLOWBUSINESS_INFO;
  5443. ///@brief 事件类型EVENT_IVS_SHOPPRESENCE (商铺占道事件)对应的规则配置
  5444. typedef struct tagCFG_SHOPPRESENCE_INFO
  5445. {
  5446. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5447. BOOL bRuleEnable; // 规则使能
  5448. int nObjectTypeNum; // 相应物体类型个数
  5449. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5450. int nPtzPresetId; // 云台预置点编号 0~65535
  5451. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5452. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5453. int nDetectRegionPoint; // 检测区顶点数
  5454. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5455. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  5456. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  5457. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  5458. char szShopAddress[256]; // 商铺地址
  5459. }CFG_SHOPPRESENCE_INFO;
  5460. ///@brief 事件类型EVENT_IVS_TRAFFIC_IDLE (交通空闲事件)对应的规则配置
  5461. typedef struct tagCFG_TRAFFIC_IDLE_INFO
  5462. {
  5463. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5464. bool bRuleEnable; // 规则使能
  5465. BYTE bJamLineMargin; // 占线限值,拥堵长度占车道比例限值,0-100
  5466. BYTE bReserved[2]; // 保留字段
  5467. int nObjectTypeNum; // 相应物体类型个数
  5468. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5469. int nPtzPresetId; // 云台预置点编号 0~65535
  5470. int nLane; // 车道编号
  5471. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  5472. int nIntervalTime; // 报警间隔时间, 单位:秒,范围1~65535
  5473. int nReportTimes; // 上报次数, 1~255
  5474. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5475. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5476. int nDetectRegionPoint; // 检测区顶点数
  5477. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5478. }CFG_TRAFFIC_IDLE_INFO;
  5479. ///@brief 事件类型EVENT_IVS_TRAFFIC_PARKING (交通违章停车事件) / EVENT_IVS_TRAFFIC_PARKING_B (B类交通违章停车事件) /
  5480. ///@brief EVENT_IVS_TRAFFIC_PARKING_C (C类交通违章停车事件) / EVENT_IVS_TRAFFIC_PARKING_D (D类交通违章停车事件)/
  5481. ///@brief EVENT_IVS_TRAFFIC_PARKING_MANUAL(手动取证交通违法)对应的规则配置
  5482. typedef struct tagCFG_TRAFFIC_PARKING_INFO
  5483. {
  5484. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5485. bool bRuleEnable; // 规则使能
  5486. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  5487. BYTE bSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低(只对检测类型视频遮挡,过亮,过暗,场景变化有效)
  5488. BYTE bParkingNumThreshold; // 停车数阈值,画面中停车数量大于此值时不报警,取值1-128
  5489. int nObjectTypeNum; // 相应物体类型个数
  5490. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5491. int nPtzPresetId; // 云台预置点编号 0~65535
  5492. int nLane; // 车道编号
  5493. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  5494. int nParkingAllowedTime; // 允许停车时间, 单位:秒,范围1~65535
  5495. int nReportTimes; // 上报次数, 1~255
  5496. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5497. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5498. int nDetectRegionPoint; // 检测区域顶点数
  5499. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5500. UINT nControlMoreAlerts; // 是否开启过滤同一目标重复上报功能, 0:关闭 1:开启
  5501. UINT nReduceUnderreporting; // 是否开启id跳变减少导致的漏报功能, 0:关闭 1:开启
  5502. }CFG_TRAFFIC_PARKING_INFO;
  5503. ///@brief 事件类型EVENT_IVS_TRAFFIC_PARKING_SPACEDETECTION(违停相机单球车位检测)规则配置
  5504. typedef struct tagCFG_TRAFFIC_PARKING_SPACEDETECTION_INFO
  5505. {
  5506. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5507. bool bRuleEnable; // 规则使能
  5508. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  5509. BYTE bSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低(只对检测类型视频遮挡,过亮,过暗,场景变化有效)
  5510. BYTE bReserved; // 保留字段
  5511. int nObjectTypeNum; // 相应物体类型个数
  5512. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5513. int nPtzPresetId; // 云台预置点编号 0~65535
  5514. int nLane; // 车道编号
  5515. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  5516. int nParkingAllowedTime; // 允许停车时间, 单位:秒,范围1~65535
  5517. int nReportTimes; // 上报次数, 1~255
  5518. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5519. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5520. int nDetectRegionPoint; // 检测区域顶点数
  5521. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5522. }CFG_TRAFFIC_PARKING_SPACEDETECTION_INFO;
  5523. ///@brief 事件类型 EVENT_IVS_TRAFFIC_RUNREDLIGHT (交通违章-闯红灯事件)对应的规则配置
  5524. typedef struct tagCFG_TRAFFIC_RUNREDLIGHT_INFO
  5525. {
  5526. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5527. bool bRuleEnable; // 规则使能
  5528. BYTE bReserved[3]; // 保留字段
  5529. int nObjectTypeNum; // 相应物体类型个数
  5530. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5531. int nPtzPresetId; // 云台预置点编号 0~65535
  5532. int nLane; // 车道编号
  5533. int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
  5534. int nPreLinePoint; // 前置检测线顶点数
  5535. CFG_POLYLINE stuPreLine[MAX_POLYLINE_NUM]; // 前置检测线
  5536. int nMiddleLinePoint; // 中间检测线顶点数
  5537. CFG_POLYLINE stuMiddleLine[MAX_POLYLINE_NUM]; // 中间检测线
  5538. int nPostLinePoint; // 后置检测线顶点数
  5539. CFG_POLYLINE stuPostLine[MAX_POLYLINE_NUM]; // 后置检测线
  5540. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5541. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5542. }CFG_TRAFFIC_RUNREDLIGHT_INFO;
  5543. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PEDESTRAINRUNREDLIGHT (交通违章-行人闯红灯事件)对应的规则配置
  5544. typedef struct tagCFG_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO
  5545. {
  5546. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5547. bool bRuleEnable; // 规则使能
  5548. BYTE bReserved[3]; // 保留字段
  5549. int nObjectTypeNum; // 相应物体类型个数
  5550. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5551. int nPtzPresetId; // 云台预置点编号 0~65535
  5552. int nLane; // 车道编号
  5553. int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
  5554. int nPreLinePoint; // 前置检测线顶点数
  5555. CFG_POLYLINE stuPreLine[MAX_POLYLINE_NUM]; // 前置检测线
  5556. int nMiddleLinePoint; // 中间检测线顶点数
  5557. CFG_POLYLINE stuMiddleLine[MAX_POLYLINE_NUM]; // 中间检测线
  5558. int nPostLinePoint; // 后置检测线顶点数
  5559. CFG_POLYLINE stuPostLine[MAX_POLYLINE_NUM]; // 后置检测线
  5560. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5561. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5562. }CFG_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO;
  5563. ///@brief 事件类型 EVENT_IVS_TRAFFIC_WRONGROUTE (不按车道行驶事件)对应的规则配置
  5564. ///@brief 事件类型 EVENT_IVS_TRAFFIC_CROSSLANE (变道)对应的规则配置
  5565. ///@brief 事件类型 EVENT_IVS_TRAFFIC_OVERLINE (压车道线)对应的规则配置
  5566. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TURNLEFT (左转事件)对应的规则配置
  5567. ///@brief 事件类型 EVENT_IVS_TRAFFIC_TURNRIGHT (右转)对应的规则配置
  5568. ///@brief 事件类型 EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE (黄牌车占道事件)对应的规则配置
  5569. ///@brief 事件类型 EVENT_IVS_TRAFFIC_VEHICLEINROUTE (有车占道事件)对应的规则配置
  5570. ///@brief 事件类型 EVENT_IVS_TRAFFIC_BACKING (倒车事件)对应的规则配置
  5571. typedef struct tagCFG_TRAFFIC_WRONGROUTE_INFO
  5572. {
  5573. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5574. bool bRuleEnable; // 规则使能
  5575. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  5576. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  5577. BYTE bReserved; // 保留字段
  5578. int nObjectTypeNum; // 相应物体类型个数
  5579. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5580. int nPtzPresetId; // 云台预置点编号 0~65535
  5581. int nLane; // 车道编号
  5582. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5583. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5584. int nDetectRegionPoint; // 检测区顶点数
  5585. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5586. int nDirectionLinPoint; // 正常行驶方向顶点数
  5587. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  5588. UINT nDelayTime; // 报警延时时间,单位:秒
  5589. UINT nSnapWhiteSolidLine; // 是否抓拍白实线 0:不抓拍 1:抓拍
  5590. UINT nBackCarDisplacement; // 该字段只在TrafficBacking规则中设置 倒车位移,默认1024坐标系, 范围是1-1023 单位是像素, 若无该字段或该字段配置为0时,算法设置默认值
  5591. }CFG_TRAFFIC_WRONGROUTE_INFO, CFG_TRAFFIC_CROSSLANE_INFO, CFG_TRAFFIC_OVERLINE_INFO, CFG_TRAFFIC_TURNLEFT_INFO,
  5592. CFG_TRAFFIC_TURNRIGHT_INFO, CFG_TRAFFIC_YELLOWPLATEINLANE_INFO, CFG_TRAFFIC_VEHICLEINROUTE_INFO,
  5593. CFG_TRAFFIC_BACKING_INFO;
  5594. ///@brief 事件类型 EVENT_IVS_TRAFFIC_OVERYELLOWLINE (压黄线)对应的规则配置
  5595. typedef struct tagCFG_TRAFFIC_OVERYELLOWLINE_INFO
  5596. {
  5597. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5598. bool bRuleEnable; // 规则使能
  5599. BYTE bReserved[3]; // 保留字段
  5600. int nObjectTypeNum; // 相应物体类型个数
  5601. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5602. int nPtzPresetId; // 云台预置点编号 0~65535
  5603. int nLane; // 车道编号
  5604. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5605. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5606. int nDetectRegionPoint; // 检测区域顶点数
  5607. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5608. UINT nSensitivity; // 灵敏度,值越小灵敏度越低。取值1-10
  5609. BOOL bOverWhiteLine; // 是否开启压白线检测
  5610. UINT nDelayTime; // 事件检测模式下,配置给算法,表示检测到事件发生后,多长时间开始报警,单位:秒,范围0-3600
  5611. }CFG_TRAFFIC_OVERYELLOWLINE_INFO;
  5612. ///@brief 事件类型 EVENT_IVS_TRAFFIC_RETROGRADE (逆行事件)对应的规则配置
  5613. typedef struct tagCFG_TRAFFIC_RETROGRADE_INFO
  5614. {
  5615. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5616. bool bRuleEnable; // 规则使能
  5617. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  5618. BYTE bReserved[2]; // 保留字段
  5619. int nObjectTypeNum; // 相应物体类型个数
  5620. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5621. int nPtzPresetId; // 云台预置点编号 0~65535
  5622. int nLane; // 车道编号
  5623. BOOL bLegal; // TRUE: 逆行合法;FALSE:逆行不合法
  5624. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5625. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5626. int nDetectRegionPoint; // 检测区域顶点数
  5627. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5628. int nDirectionLinPoint; // 正常行驶方向顶点数
  5629. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  5630. int nMinDuration; // 最短触发时间 单位:秒
  5631. UINT nReverseDisplacement; // 逆行位移,默认1024坐标系, 范围是1-1023 单位是像素, 若无该字段或该字段配置为0时,算法设置默认值
  5632. }CFG_TRAFFIC_RETROGRADE_INFO;
  5633. ///@brief 事件类型 EVENT_IVS_TRAFFIC_UTURN (掉头)对应的规则配置
  5634. typedef struct tagCFG_TRAFFIC_UTURN_INFO
  5635. {
  5636. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5637. bool bRuleEnable; // 规则使能
  5638. bool bTrackEnable; // 触发跟踪使能,对绊线、入侵的物体跟踪
  5639. BYTE bReserved[2]; // 保留字段
  5640. int nObjectTypeNum; // 相应物体类型个数
  5641. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5642. int nPtzPresetId; // 云台预置点编号 0~65535
  5643. int nLane; // 车道编号
  5644. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5645. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5646. int nDetectRegionPoint; // 检测区域顶点数
  5647. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5648. int nTriggerAngle; // 掉头触发角度,取值范围(90,180),目标调头前后的运动夹角
  5649. BOOL abSizeFileter; // 规则特定的尺寸过滤器是否有效
  5650. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  5651. }CFG_TRAFFIC_UTURN_INFO;
  5652. ///@brief 事件类型 EVENT_IVS_TRAFFIC_OVERSPEED (交通违章-超速)对应的规则配置
  5653. typedef struct tagCFG_TRAFFIC_OVERSPEED_INFO
  5654. {
  5655. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5656. bool bRuleEnable; // 规则使能
  5657. BYTE bReserved[3]; // 保留字段
  5658. int nObjectTypeNum; // 相应物体类型个数
  5659. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5660. int nPtzPresetId; // 云台预置点编号 0~65535
  5661. int nLane; // 车道编号
  5662. int nSpeedUpperLimit; // 速度上限
  5663. int nSpeedLowerLimit; // 速度下限
  5664. int nMinDuration; // 最短触发时间 单位:秒
  5665. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5666. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5667. bool bSpeedLimitForSize; // 是否启用大小车限速
  5668. BYTE bReserved1[3]; // 保留字段
  5669. int nSmallCarSpeedUpperLimit; // 小型车速度上限
  5670. int nSmallCarSpeedLowerLimit; // 小型车速度下限
  5671. int nBigCarUnderSpeedMargin; // 大车限低速宽限值
  5672. int nBigCarOverSpeedMargin; // 大车限高速宽限值
  5673. int nUnderSpeedMargin; // 小车限低速宽限值
  5674. int nOverSpeedMargin; // 小车限高速宽限值
  5675. int nBigCarSpeedUpperLimit; // 大车车速度上限
  5676. int nBigCarSpeedLowerLimit; // 大车车速度下限
  5677. int nYellowSpeedUpperLimit; // 黄牌车限速上限
  5678. int nYellowSpeedLowerLimit; // 黄牌车限速下限
  5679. bool bSnapMotorcycle; // 是否抓拍摩托车
  5680. BYTE bSnapNoPlateMotor; // 是否抓拍无牌机动车,0为不抓拍无牌机动车,1为抓拍无牌机动车,默认为0
  5681. BYTE bReserved2[2]; // 保留字段
  5682. }CFG_TRAFFIC_OVERSPEED_INFO;
  5683. ///@brief 事件类型 EVENT_IVS_TRAFFIC_UNDERSPEED (欠速)对应的规则配置
  5684. typedef struct tagCFG_TRAFFIC_UNDERSPEED_INFO
  5685. {
  5686. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5687. bool bRuleEnable; // 规则使能
  5688. BYTE bReserved[3]; // 保留字段
  5689. int nObjectTypeNum; // 相应物体类型个数
  5690. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5691. int nPtzPresetId; // 云台预置点编号 0~65535
  5692. int nLane; // 车道编号
  5693. int nSpeedUpperLimit; // 速度上限
  5694. int nSpeedLowerLimit; // 速度下限
  5695. int nMinDuration; // 最短触发时间 单位:秒
  5696. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5697. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5698. }CFG_TRAFFIC_UNDERSPEED_INFO;
  5699. ///@brief 事件来源
  5700. typedef enum tagEM_CFG_EVENT_ORIGIN
  5701. {
  5702. EM_CFG_EVENT_ORIGIN_UNKNOWN = -1, // 未知
  5703. EM_CFG_EVENT_ORIGIN_VIDEO, // 视频检测
  5704. EM_CFG_EVENT_ORIGIN_NET, // 网络
  5705. }EM_CFG_EVENT_ORIGIN;
  5706. ///@brief 事件类型 EVENT_IVS_TRAFFIC_JAM_FORBID_INTO (车辆拥堵禁入事件)对应的规则配置
  5707. typedef struct tagCFG_TRAFFIC_JAM_FORBID_INTO_INFO
  5708. {
  5709. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5710. BOOL bRuleEnable; // 规则使能
  5711. int nObjectTypeNum; // 相应物体类型个数
  5712. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5713. int nPtzPresetId; // 云台预置点编号 0~65535
  5714. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5715. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5716. int nLaneNumber; // 车道编号
  5717. int nTriggerTime; // 前面的车停了多少时间才算拥堵,后面的车上来就算拥堵禁入,单位秒
  5718. int nFollowTime; // 跟随时间阈值,跟随前车进入路口的不算拥堵禁入违章,单位秒
  5719. int nDelayTime; // 绿灯灭后延时抓拍第三张时间,单位秒
  5720. EM_CFG_EVENT_ORIGIN emEventOrigin; // 拥堵事件来源
  5721. int nJamForbidIntoLineCount; // 拥堵事件边界线点数
  5722. CFG_POLYLINE stuJamForbidIntoLine[MAX_POLYLINE_NUM]; // 拥堵事件边界线, 坐标归一化到[0,8192)区间
  5723. }CFG_TRAFFIC_JAM_FORBID_INTO_INFO;
  5724. ///@brief 事件类型 EVENT_IVS_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING (拥堵滞留斑马线事件)对应的规则配置
  5725. typedef struct tagCFG_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING_INFO
  5726. {
  5727. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5728. BOOL bRuleEnable; // 规则使能
  5729. int nObjectTypeNum; // 相应物体类型个数
  5730. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5731. int nPtzPresetId; // 云台预置点编号 0~65535
  5732. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5733. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5734. int nLaneNumber; // 车道编号
  5735. int nJamStopDelay; // 拥堵滞留延时时间
  5736. int nSnapInterval; // 抓拍间隔时间
  5737. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  5738. int nDetectRegionPoint; // 检测区顶点数
  5739. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5740. }CFG_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING_INFO;
  5741. ///@brief 事件类型 EVENT_IVS_PSRISEDETECTION (起身检测事件)对应的规则配置
  5742. typedef struct tagCFG_PSRISEDETECTION_INFO
  5743. {
  5744. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5745. bool bRuleEnable; // 规则使能
  5746. BYTE bReserved[3]; // 保留字段
  5747. int nObjectTypeNum; // 相应物体类型个数
  5748. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5749. int nPtzPresetId; // 云台预置点编号 0~65535
  5750. int nDetectRegionPoint; // 警戒区顶点数
  5751. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM10]; // 警戒区
  5752. CFG_POLYGON stDirection[2]; // 人睡觉方向 第一个点是起点,第二个点是终点,点的坐标归一化到[0,8191]区间
  5753. CFG_POLYGON stBedMiddleLine[2]; // 床铺中线 点的坐标归一化到[0,8191]区间
  5754. int nBedSide; // 床铺的方位 1左边铺位,2右边铺位
  5755. int nMinDuration; // 最短触发时间 单位:秒
  5756. int nReportInterval; // 重复报警间隔 单位:秒
  5757. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  5758. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  5759. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5760. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5761. }CFG_PSRISEDETECTION_INFO;
  5762. // 最大的配置的个数
  5763. #define MAX_AREACONFIG_NUMBER 8
  5764. ///@brief 触发报警的行人方向
  5765. typedef enum tagEM_CFG_PEOPLE_DIRECTION
  5766. {
  5767. EM_CFG_PEOPLE_DIRECTION_LEFT = 1, // 左
  5768. EM_CFG_PEOPLE_DIRECTION_RIGHT = 2, // 右
  5769. }EM_CFG_PEOPLE_DIRECTION;
  5770. ///@brief 检测区域配置
  5771. typedef struct tagCFG_AREACONFIG
  5772. {
  5773. int nPeopleTargets; // 触发报警的行人个数
  5774. UINT nPeopleDirectionMask; // 触发报警的行人方向, EM_CFG_PEOPLE_DIRECTION 的 位集合,例:nPeopleDirectionMask |= EM_CFG_PEOPLE_DIRECTION_LEFT;
  5775. BYTE byReserved[1024]; // 保留字段
  5776. }CFG_AREACONFIG;
  5777. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY (行人礼让检测/斑马线行人优先事件)对应的规则配置
  5778. typedef struct tagCFG_TRAFFIC_PEDESTRAINPRIORITY_INFO
  5779. {
  5780. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5781. bool bRuleEnable; // 规则使能
  5782. BYTE bReserved[3]; // 保留字段
  5783. int nObjectTypeNum; // 相应物体类型个数
  5784. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5785. int nPtzPresetId; // 云台预置点编号 0~65535
  5786. int nLane; // 车道编号
  5787. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5788. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5789. //
  5790. int nAreaConfigNum; // 规则对应的检测区域配置的个数
  5791. CFG_AREACONFIG stuAreaConfigList[MAX_AREACONFIG_NUMBER]; // 规则对应的检测区域配置
  5792. int nSpeedLimit; // 车速阀值
  5793. int nFollowTime; // 跟随时间,单位秒
  5794. BOOL bSnapMotorcycle; // 是否抓拍摩托车,同一个视频通道部分规则需要抓拍摩托车,其它不需要,所以使用规则
  5795. int nAlarmDistanceRate; // 触发机动车不礼让行人的检测距离
  5796. int nSnapPicHavePriCategory; // 抓拍的图片是否要有行人或非机动车的掩码值每个bit位含义,1:抓拍图片要有行人;0:抓拍图片可以无行人
  5797. // bit0:第一张图片是否需要有行人
  5798. // bit1:第二张图片是否需要有行人
  5799. // bit2:第三张图片是否需要有行人
  5800. int nMinDuration; // 最短持续时间,单位:秒
  5801. int nSensitivity; // 灵敏度,值越小灵敏度越低, 范围 [1, 100]
  5802. }CFG_TRAFFIC_PEDESTRAINPRIORITY_INFO;
  5803. ///@brief 事件类型 EVENT_IVS_QUEUEDETECTION (排队检测事件)对应的规则配置
  5804. typedef struct tagCFG_IVS_QUEUEDETECTION_INFO
  5805. {
  5806. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5807. bool bRuleEnable; // 规则使能
  5808. BYTE bReserved[3]; // 保留字段
  5809. int nObjectTypeNum; // 相应物体类型个数
  5810. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5811. int nPtzPresetId; // 云台预置点编号 0~65535
  5812. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5813. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5814. CFG_POLYLINE stuDetectLine[2]; // 警戒线
  5815. int nOccupyLineMargin; // 占线限值,队伍长度占线比例限值
  5816. int nTriggerTime; // 单位秒,排队检测报警时间,排队超过阈值的状态维持了"排队检测报警时间"以后报警
  5817. int nMaxDetectRegionNum; // 最大检测区域的个数
  5818. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5819. int nThreshold; // 异常人数阈值
  5820. int nDetectType; // 人数异常检测方式
  5821. int nPlanID; // 计划ID
  5822. int nAreaID; // 区域ID(一个预置点可以对应多个区域ID)
  5823. BOOL bStayDetectEnable; // 滞留检测报警使能,对应报警为 EVENT_IVS_STAYDETECTION
  5824. int nStayMinDuration; // 最短滞留持续时间,单位秒[1, 1800], 开启滞留检测报警时需设置
  5825. BOOL bManNumAlarmEnable; // 人数异常报警使能, 默认为TRUE。对应报警为 EVENT_IVS_MAN_NUM_DETECTION
  5826. }CFG_IVS_QUEUEDETECTION_INFO;
  5827. ///@brief 事件类型 EVENT_IVS_CLIMBDETECTION (攀高检测事件)对应的规则配置
  5828. typedef struct tagCFG_IVS_CLIMBDETECTION_INFO
  5829. {
  5830. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5831. bool bRuleEnable; // 规则使能
  5832. BYTE bReserved[3]; // 保留字段
  5833. int nObjectTypeNum; // 相应物体类型个数
  5834. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5835. int nPtzPresetId; // 云台预置点编号 0~65535
  5836. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5837. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5838. int nDetectLine; // 检测线顶点个数
  5839. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 对应的检测折线,[0,8192)
  5840. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  5841. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  5842. UINT nMinDuration; // 最短持续时间,单位秒
  5843. }CFG_IVS_CLIMBDETECTION_INFO;
  5844. ///@brief 事件类型 EVENT_IVS_LEAVEDETECTION (离岗检测事件)对应的规则配置
  5845. typedef enum CFG_EM_LEAVEDETECTION_MODE{
  5846. CFG_EM_LEAVEDETECTION_MODE_NONE,
  5847. CFG_EM_LEAVEDETECTION_MODE_PATROL, // 巡逻模式
  5848. CFG_EM_LEAVEDETECTION_MODE_SENTRY, // 岗哨模式
  5849. CFG_EM_LEAVEDETECTION_MODE_ERR=255
  5850. }CFG_EM_LEAVEDETECTION_MODE;
  5851. ///@brief 触发模式
  5852. typedef enum EM_CFG_LEAVEDETECTION_TRIGGERMODE{
  5853. CFG_LEAVEDETECTION_TRIGGERMODE_UNKNOWN, //未知
  5854. CFG_LEAVEDETECTION_TRIGGERMODE_NOPERSON, //无人
  5855. CFG_LEAVEDETECTION_TRIGGERMODE_LEAVE, //离开
  5856. CFG_LEAVEDETECTION_TRIGGERMODE_STATIC, //静止(睡岗)
  5857. CFG_LEAVEDETECTION_TRIGGERMODE_OUTPERSONLIMIT, // 不在允许值岗人数范围内(值岗人数异常)
  5858. }CFG_LEAVEDETECTION_TRIGGERMODE;
  5859. ///@brief 离岗检测事件规则配置
  5860. typedef struct tagCFG_IVS_LEAVEDETECTION_INFO
  5861. {
  5862. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5863. bool bRuleEnable; // 规则使能
  5864. BYTE bReserved[3]; // 保留字段
  5865. int nObjectTypeNum; // 相应物体类型个数
  5866. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5867. int nPtzPresetId; // 云台预置点编号 0~65535
  5868. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5869. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5870. CFG_EM_LEAVEDETECTION_MODE emMode; // 检测模式
  5871. unsigned int nMinDuration; // 最短持续时间,单位:秒
  5872. unsigned int nReportInterval; // 报告时间间隔,单位:秒
  5873. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  5874. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  5875. int nDetectRegionPoint; // 检测区顶点数
  5876. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5877. int nTriggerModeCount; // 触发模式数组有效个数
  5878. CFG_LEAVEDETECTION_TRIGGERMODE emTriggerMode[MAX_TRIGGER_MODE_NUMBER]; // 触发模式数组
  5879. int anPersonLimit[2]; // 允许值岗人数范围, 不在此范围内时报警,数组第一个元素为最小值,第二个元素为最大值,最大值为0时表示不限制上限
  5880. }CFG_IVS_LEAVEDETECTION_INFO;
  5881. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PARKINGONYELLOWBOX(黄网格线抓拍事件)对应的规则配置
  5882. typedef struct tagCFG_TRAFFIC_PARKINGONYELLOWBOX_INFO
  5883. {
  5884. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5885. bool bRuleEnable; // 规则使能
  5886. BYTE bReserved[3]; // 保留字段
  5887. int nObjectTypeNum; // 相应物体类型个数
  5888. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5889. int nPtzPresetId; // 云台预置点编号 0~65535
  5890. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5891. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5892. int nLane; // 车道号
  5893. int nInterval1; // 第二张和第一张的延时时间,单位秒
  5894. int nInterval2; // 第三张和第二张的延时时间,单位秒
  5895. int nFollowTime; // 跟随时间,如果一辆车与前一辆车进入黄网格的时间差小于此值,就认为是跟车进入
  5896. }CFG_TRAFFIC_PARKINGONYELLOWBOX_INFO;
  5897. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING(车位有车事件)对应的规则配置
  5898. typedef struct tagCFG_TRAFFIC_PARKINGSPACEPARKING_INFO
  5899. {
  5900. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5901. bool bRuleEnable; // 规则使能
  5902. BYTE bReserved[3]; // 保留字段
  5903. int nObjectTypeNum; // 相应物体类型个数
  5904. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5905. int nPtzPresetId; // 云台预置点编号 0~65535
  5906. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5907. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5908. int nLane; // 车位号
  5909. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  5910. int nDetectRegionPoint; // 检测区域顶点数
  5911. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5912. int nPlateSensitivity; // 有牌检测灵敏度(控制抓拍)
  5913. int nNoPlateSensitivity; // 无牌检测灵敏度(控制抓拍)
  5914. int nLightPlateSensitivity; // 有牌检测灵敏度(控制车位状态灯)
  5915. int nLightNoPlateSensitivity; // 无牌检测灵敏度(控制车位状态灯)
  5916. BOOL bForbidParkingEnable; // 禁止停车使能 TRUE:禁止 FALSE:未禁止
  5917. }CFG_TRAFFIC_PARKINGSPACEPARKING_INFO;
  5918. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING(车位无车事件)对应的规则配置
  5919. typedef struct tagCFG_TRAFFIC_PARKINGSPACENOPARKING_INFO
  5920. {
  5921. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5922. bool bRuleEnable; // 规则使能
  5923. BYTE bReserved[3]; // 保留字段
  5924. int nObjectTypeNum; // 相应物体类型个数
  5925. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5926. int nPtzPresetId; // 云台预置点编号 0~65535
  5927. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5928. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5929. int nLane; // 车位号
  5930. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  5931. int nDetectRegionPoint; // 检测区域顶点数
  5932. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5933. int nPlateSensitivity; // 有牌检测灵敏度(控制抓拍)
  5934. int nNoPlateSensitivity; // 无牌检测灵敏度(控制抓拍)
  5935. int nLightPlateSensitivity; // 有牌检测灵敏度(控制车位状态灯)
  5936. int nLightNoPlateSensitivity; // 无牌检测灵敏度(控制车位状态灯)
  5937. }CFG_TRAFFIC_PARKINGSPACENOPARKING_INFO;
  5938. ///@brief 事件类型EVENT_IVS_TRAFFIC_PARKINGSPACEOVERLINE(车位压线事件)对应的规则配置
  5939. typedef struct tagCFG_TRAFFIC_PARKINGSPACEOVERLINE_INFO
  5940. {
  5941. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5942. bool bRuleEnable; // 规则使能
  5943. bool bAllowParkingSpaceParkingSnap; // 是否允许车位有车上传抓拍,true-表示允许(默认不允许)
  5944. BYTE byReserved[2]; // 保留字段
  5945. int nObjectTypeNum; // 相应物体类型个数
  5946. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5947. int nPtzPresetId; // 云台预置点编号 0~65535
  5948. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5949. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5950. int nLane; // 车位号
  5951. }CFG_TRAFFIC_PARKINGSPACEOVERLINE_INFO;
  5952. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PEDESTRAIN (交通行人事件)对应的规则配置
  5953. typedef struct tagCFG_TRAFFIC_PEDESTRAIN_INFO
  5954. {
  5955. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5956. bool bRuleEnable; // 规则使能
  5957. BYTE bReserved[3]; // 保留字段
  5958. int nObjectTypeNum; // 相应物体类型个数
  5959. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5960. int nPtzPresetId; // 云台预置点编号 0~65535
  5961. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5962. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5963. int nLane; // 车道编号
  5964. int nDetectRegionPoint; // 检测区顶点数
  5965. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5966. int nMinDuration; // 最短触发时间,单位:秒
  5967. UINT nRepeatAlarmTime; // 报警重复时长 单位:秒
  5968. }CFG_TRAFFIC_PEDESTRAIN_INFO;
  5969. ///@brief 事件类型 EVENT_IVS_TRAFFIC_THROW (交通抛洒事件)对应的规则配置
  5970. typedef struct tagCFG_TRAFFIC_THROW_INFO
  5971. {
  5972. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5973. bool bRuleEnable; // 规则使能
  5974. BYTE bReserved[3]; // 保留字段
  5975. int nObjectTypeNum; // 相应物体类型个数
  5976. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5977. int nPtzPresetId; // 云台预置点编号 0~65535
  5978. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5979. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5980. int nLane; // 车道编号
  5981. int nDetectRegionPoint; // 检测区顶点数
  5982. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5983. int nMinDuration; // 最短触发时间,单位:秒
  5984. UINT nRepeatAlarmTime; // 报警重复时长,单位:秒
  5985. }CFG_TRAFFIC_THROW_INFO;
  5986. ///@brief 事件类型 EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE(占用公交车道事件)对应规则配置
  5987. typedef struct tagCFG_TRAFFIC_VEHICLEINBUSROUTE_INFO
  5988. {
  5989. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5990. bool bRuleEnable; // 规则使能
  5991. BYTE byCarType; // 抓拍车辆类型,0:非黄牌车 1:蓝牌车 2:非大客车
  5992. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  5993. BYTE bEnclosure; // 电子围栏功能, 1-打开 0-关闭
  5994. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  5995. int nObjectTypeNum; // 相应物体类型个数
  5996. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5997. int nPtzPresetId; // 云台预置点编号 0~65535
  5998. int nLane; // 车道编号
  5999. int nDetectRegionPoint; // 检测区顶点数
  6000. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6001. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6002. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6003. }CFG_TRAFFIC_VEHICLEINBUSROUTE_INFO;
  6004. ///@brief 需要抓拍的驾驶座座位
  6005. typedef enum tagCFG_SAFEBELT_SEAT
  6006. {
  6007. CSS_UNKNOW ,
  6008. CSS_MAIN_SEAT , //主驾驶座位
  6009. CSS_SLAVE_SEAT , //副驾驶座位
  6010. }CFG_SAFEBELT_SEAT;
  6011. ///@brief 事件类型 EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT(交通未系安全带事件)对应规则配置
  6012. typedef struct tagCFG_TRAFFIC_WITHOUT_SAFEBELT
  6013. {
  6014. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6015. bool bRuleEnable; // 规则使能
  6016. BYTE bReserved[3]; // 保留字段
  6017. int nObjectTypeNum; // 相应物体类型个数
  6018. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6019. int nPtzPresetId; // 云台预置点编号 0~65535
  6020. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6021. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6022. int nLane; // 车道编号
  6023. int nSeatNum; // 获取的座位数
  6024. CFG_SAFEBELT_SEAT emSnapSeat[MAX_SEAT_NUM]; // 需要抓拍的驾驶座座位
  6025. }CFG_TRAFFIC_WITHOUT_SAFEBELT;
  6026. ///@brief 事件类型 EVENT_IVS_GETOUTBEDDETECTION(下床事件)对应规则配置
  6027. typedef struct tagCFG_IVS_GETOUTBEDDETECTION_INFO
  6028. {
  6029. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6030. bool bRuleEnable; // 规则使能
  6031. BYTE bReserved[3]; // 保留字段
  6032. int nObjectTypeNum; // 相应物体类型个数
  6033. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6034. int nPtzPresetId; // 云台预置点编号 0~65535
  6035. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6036. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6037. int nDetectRegionPoint; // 检测区顶点数
  6038. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区,多边形类型,多边形中每个顶点的坐标归一化到[0,8192)区间
  6039. unsigned int nMinDuration; // 最短持续时间,单位:秒
  6040. unsigned int nReportInterval; // 报告时间间隔,单位:秒
  6041. int nAssisDectLinePointNum; // 辅助检测线点数
  6042. CFG_POLYLINE stuAssisDectLine[MAX_POLYLINE_NUM]; // 辅助检测线
  6043. }CFG_IVS_GETOUTBEDDETECTION_INFO;
  6044. ///@brief 事件类型 EVENT_IVS_PATROLDETECTION(巡逻检测事件)对应规则配置
  6045. typedef struct tagCFG_IVS_PATROLDETECTION_INFO
  6046. {
  6047. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6048. bool bRuleEnable; // 规则使能
  6049. BYTE bReserved[3]; // 保留字段
  6050. int nObjectTypeNum; // 相应物体类型个数
  6051. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6052. int nPtzPresetId; // 云台预置点编号 0~65535
  6053. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6054. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6055. int nDetectRegionPoint; // 警戒区顶点数
  6056. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区,多边形类型,多边形中每个顶点的坐标归一化到[0,8192)区间
  6057. unsigned int nMinDuration; // 最短持续时间,单位:秒
  6058. unsigned int nReportInterval; // 报告时间间隔,单位:秒
  6059. unsigned int nPatrolTime; // 巡逻时间,单位:秒
  6060. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  6061. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  6062. }CFG_IVS_PATROLDETECTION_INFO;
  6063. ///@brief 事件类型 EVENT_IVS_ONDUTYDETECTION(站岗检测事件)对应规则配置
  6064. typedef struct tagCFG_IVS_ONDUTYDETECTION_INFO
  6065. {
  6066. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6067. bool bRuleEnable; // 规则使能
  6068. BYTE bReserved[3]; // 保留字段
  6069. int nObjectTypeNum; // 相应物体类型个数
  6070. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6071. int nPtzPresetId; // 云台预置点编号 0~65535
  6072. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6073. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6074. int nDetectRegionPoint; // 警戒区顶点数
  6075. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区,多边形类型,多边形中每个顶点的坐标归一化到[0,8192)区间
  6076. unsigned int nMinDuration; // 最短持续时间,单位:秒
  6077. unsigned int nReportInterval; // 报告时间间隔,单位:秒
  6078. int nTemplateRegionPointPairNum; // 模板区域信息点对个数
  6079. CFG_POLYGON stuTemplateRegion[MAX_TEMPLATEREGION_NUM][POINT_PAIR_NUM]; // 模板区域信息,个数对应于模板图片个数
  6080. }CFG_IVS_ONDUTYDETECTION_INFO;
  6081. ///@brief 事件类型 EVENT_IVS_TRAFFIC_DRIVER_SMOKING(驾驶员抽烟事件)对应规则配置
  6082. typedef struct tagCFG_TRAFFIC_DRIVER_SMOKING
  6083. {
  6084. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6085. bool bRuleEnable; // 规则使能
  6086. BYTE bReserved[3]; // 保留字段
  6087. int nObjectTypeNum; // 相应物体类型个数
  6088. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6089. int nPtzPresetId; // 云台预置点编号 0~65535
  6090. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6091. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6092. int nLane; // 车道编号
  6093. }CFG_TRAFFIC_DRIVER_SMOKING;
  6094. ///@brief 事件类型 EVNET_IVS_TRAFFIC_DRIVER_CALLING(驾驶员打电话事件)对应规则配置
  6095. typedef struct tagCFG_TRAFFIC_DRIVER_CALLING
  6096. {
  6097. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6098. bool bRuleEnable; // 规则使能
  6099. BYTE bReserved[3]; // 保留字段
  6100. int nObjectTypeNum; // 相应物体类型个数
  6101. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6102. int nPtzPresetId; // 云台预置点编号 0~65535
  6103. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6104. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6105. int nLane; // 车道编号
  6106. }CFG_TRAFFIC_DRIVER_CALLING;
  6107. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PASSNOTINORDER(未按规定依次通行)对应规则配置
  6108. typedef struct tagCFG_TRAFFIC_PASSNOTINORDER_INFO
  6109. {
  6110. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6111. bool bRuleEnable; // 规则使能
  6112. BYTE bReserved[3]; // 保留字段
  6113. int nObjectTypeNum; // 相应物体类型个数
  6114. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6115. int nPtzPresetId; // 云台预置点编号 0~65535
  6116. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6117. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6118. int nLane; // 车道编号
  6119. int nFollowTime; // 跟随时间阈值,高于此值不算违章 单位:毫秒(ms)
  6120. }CFG_TRAFFIC_PASSNOTINORDER_INFO;
  6121. ///@brief 事件类型 EVENT_IVS_HEATMAP/EVENT_IVS_HEATMAP_PLAN(热度图/热度图计划)对应规则配置
  6122. typedef struct tagCFG_IVS_HEATMAP_INFO
  6123. {
  6124. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6125. bool bRuleEnable; // 规则使能
  6126. BYTE bReserved[3]; // 保留字段
  6127. int nObjectTypeNum; // 相应物体类型个数
  6128. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6129. int nPtzPresetId; // 云台预置点编号 0~65535
  6130. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6131. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6132. int nDetectRegionPoint; // 警戒区顶点数
  6133. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区,多边形类型,多边形中每个顶点的坐标归一化到[0,8192)区间
  6134. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  6135. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  6136. UINT nPlanID; // 计划ID,仅球机有效,从1开始 (热度图统一之前使用,统一之后使用nPtzPresetId)
  6137. }CFG_IVS_HEATMAP_INFO;
  6138. ///@brief 过滤器
  6139. typedef struct tagCFG_REGION_FILTER
  6140. {
  6141. CFG_RECT stuMaxRect; // 最大人头区域
  6142. CFG_RECT stuMinRect; // 最小人头区域
  6143. }CFG_REGION_FILTER;
  6144. ///@brief 事件类型 EVENT_IVS_STANDUPDETECTION 人起立检测 对应规则配置
  6145. typedef struct tagCFG_IVS_STANDUPDETECTION_INFO
  6146. {
  6147. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6148. bool bRuleEnable; // 规则使能
  6149. BYTE bReserved[3]; // 保留字段
  6150. int nObjectTypeNum; // 相应物体类型个数
  6151. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6152. int nPtzPresetId; // 云台预置点编号 0~65535
  6153. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6154. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6155. CFG_REGION stuHumanRegion; // 检测人区域
  6156. int nStandUpDirectionNum; // 起立方向顶点数
  6157. CFG_POLYLINE stuStandUpDirection[MAX_POLYLINE_NUM]; // 起立方向, 第一个为起点, 第二个为终点, 前两点有效
  6158. CFG_REGION_FILTER stuRegionFilter; // 过滤器
  6159. }CFG_IVS_STANDUPDETECTION_INFO;
  6160. ///@brief 事件类型 EVENT_IVS_SHOOTINGSCORERECOGNITION 打靶像机事件 对应规则配置
  6161. typedef struct tagCFG_IVS_SHOOTINGSCORERECOGNITION_INFO
  6162. {
  6163. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6164. bool bRuleEnable; // 规则使能
  6165. BYTE bReserved[3]; // 保留字段
  6166. int nObjectTypeNum; // 相应物体类型个数
  6167. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6168. int nPtzPresetId; // 云台预置点编号 0~65535
  6169. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6170. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6171. CFG_REGION stuDetectRegion; // 检测区域 参见警戒区配置DetectRegion
  6172. int nRound; // 计数周期加1后弹孔序号重新从1开始计数
  6173. int nSensitivity; // 灵敏度
  6174. int nCaliber; // 弹孔口径,0:5mm口径, 1:7~8mm口径, 2:9mm口径
  6175. }CFG_IVS_SHOOTINGSCORERECOGNITION_INFO;
  6176. ///@brief 事件类型EVENT_IVS_VEHICLEANALYSE(车辆特征检测分析)对应规则配置
  6177. typedef struct tagCFG_IVS_VEHICLEANALYSE_INFO
  6178. {
  6179. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6180. bool bRuleEnable; // 规则使能
  6181. BYTE bReserved[3]; // 保留字段
  6182. int nObjectTypeNum; // 相应物体类型个数
  6183. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6184. int nPtzPresetId; // 云台预置点编号 0~65535
  6185. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6186. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6187. int nDetectRegionPoint; // 警戒区顶点数
  6188. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区
  6189. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  6190. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  6191. } CFG_IVS_VEHICLEANALYSE_INFO;
  6192. ///@brief 事件类型EVENT_IVS_LETRACK(简单跟踪事件)对应规则配置
  6193. typedef struct tagCFG_IVS_LETRACK_INFO
  6194. {
  6195. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6196. BOOL bRuleEnable; // 规则使能
  6197. int nObjectTypeNum; // 相应物体类型个数
  6198. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6199. int nPtzPresetId; // 云台预置点编号 0~65535
  6200. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6201. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6202. BYTE bReserved[512]; // 保留字节
  6203. } CFG_IVS_LETRACK_INFO;
  6204. ///@brief 事件类型EVENT_IVS_MAN_STAND_DETECTION(立体视觉站立事件)
  6205. ///@brief EVENT_IVS_NEAR_DISTANCE_DETECTION(近距离接触事件)对应的规则配置
  6206. typedef struct tagCFG_STEREO_VISION_INFO
  6207. {
  6208. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6209. BOOL bRuleEnable; // 规则使能
  6210. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6211. BYTE bReserved1[3]; // 保留字段
  6212. int nObjectTypeNum; // 相应物体类型个数
  6213. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6214. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6215. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6216. int nPtzPresetId; // 云台预置点编号 0~65535
  6217. int nDetectLinePoint; // 检测区域顶点数
  6218. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 检测区域
  6219. int nDetectRegionPoint; // 检测区域顶点数
  6220. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域坐标
  6221. int nThreshold; // 异常阈值
  6222. int nDetectType; // 人数异常检测方式(仅用于区域内人数统计)
  6223. // 0-小于等于阈值报警 1-大于等于阈值报警
  6224. int nSensitivity; // 灵敏度,[0-100]
  6225. int nMaxHeight; // 最大检测高度,单位cm
  6226. int nMinHeight; // 最小检测高度,单位cm
  6227. UINT nMinDuration; // 最短持续时间, 单位: 秒
  6228. UINT nReportInterval; // 报警时间间隔,单位秒
  6229. BYTE bReserved[504]; // 保留字节
  6230. } CFG_STEREO_VISION_INFO;
  6231. ///@brief 事件类型EVENT_IVS_MAN_NUM_DETECTION(立体视觉区域内人数统计事件)对应的规则配置
  6232. typedef struct tagCFG_IVS_MAN_NUM_DETECTION_INFO
  6233. {
  6234. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6235. BOOL bRuleEnable; // 规则使能
  6236. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6237. BYTE bReserved1[3]; // 保留字段
  6238. int nObjectTypeNum; // 相应物体类型个数
  6239. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6240. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6241. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6242. int nPtzPresetId; // 云台预置点编号 0~65535
  6243. int nDetectRegionPoint; // 检测区域顶点数
  6244. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域坐标
  6245. int nThreshold; // 异常人数阈值
  6246. int nDetectType; // 人数异常检测方式
  6247. // 0-小于等于阈值报警 1-大于等于阈值报警
  6248. int nSensitivity; // 灵敏度,[1-10]
  6249. int nMaxHeight; // 最大检测高度,单位cm
  6250. int nMinHeight; // 最小检测高度,单位cm
  6251. BOOL bStayDetectEnable; // 是否开启滞留检测报警功能, 对应报警为StayDetection。
  6252. int nStayMinDuration; // 最短滞留持续时间,单位秒[2, 65535], 开启滞留检测报警时需设置
  6253. BOOL bManNumAlarmEnable; // 是否开启人数异常报警功能, 默认为TRUE。对应报警为ManNumDetection
  6254. UINT nAreaID; // 区域ID(一个预置点对应多个区域ID)
  6255. UINT nPlanId; // 计划ID,范围 1~MaxNumberStatPlan
  6256. BYTE bReserved[504]; // 保留字节
  6257. } CFG_IVS_MAN_NUM_DETECTION_INFO;
  6258. ///@brief 事件类型EVENT_IVS_STEREO_NUMBERSTAT(立体视觉人数统计事件)对应的规则配置
  6259. typedef struct tagCFG_IVS_STEREO_NUMBERSTAT_INFO
  6260. {
  6261. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6262. BOOL bRuleEnable; // 规则使能
  6263. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6264. BYTE bReserved1[3]; // 保留字段
  6265. int nObjectTypeNum; // 相应物体类型个数
  6266. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6267. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6268. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6269. int nPtzPresetId; // 云台预置点编号 0~65535
  6270. int nDetectLinePoint; // 检测线顶点数
  6271. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 检测线
  6272. int nDetectRegionPoint; // 检测区域顶点数
  6273. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域坐标
  6274. int nSensitivity; // 灵敏度, 1-10
  6275. int nMaxHeight; // 最大检测高度,单位cm
  6276. int nMinHeight; // 最小检测高度,单位cm
  6277. int nEnterThreshold; // 进入人数报警阈值, 0表示不报警
  6278. int nExitThreshold; // 离开人数报警阈值, 0表示不报警
  6279. int nInsideThreshold; // 滞留人数报警阈值, 0表示不报警
  6280. char szDirection[CFG_COMMON_STRING_8]; // 检测方向
  6281. BYTE bReserved[512]; // 保留字节
  6282. } CFG_IVS_STEREO_NUMBERSTAT_INFO;
  6283. ///@brief 动作类型
  6284. typedef enum tagEM_CFG_ACTION_TYPE
  6285. {
  6286. EM_CFG_ACTION_TYPE_UNKNOWN, // 未知
  6287. EM_CFG_ACTION_TYPE_DRASTIC_MOTION, // 剧烈运动
  6288. EM_CFG_ACTION_TYPE_SINGLE_FIGHT, // 单人打砸
  6289. EM_CFG_ACTION_TYPE_MULTI_FIGHT, // 多人打架
  6290. }EM_CFG_ACTION_TYPE;
  6291. ///@brief 事件类型EVENT_IVS_STEREO_FIGHTDETECTION(立体行为分析打架/剧烈运动检测)对应的规则配置
  6292. typedef struct tagCFG_IVS_STEREO_FIGHTDETECTION_INFO
  6293. {
  6294. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6295. BOOL bRuleEnable; // 规则使能
  6296. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6297. BYTE bReserved1[3]; // 保留字段
  6298. int nObjectTypeNum; // 相应物体类型个数
  6299. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6300. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6301. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6302. int nPtzPresetId; // 云台预置点编号 0~65535
  6303. int nDetectRegionPoint; // 检测区域顶点数
  6304. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  6305. int nSensitivity; // 灵敏度, 1-10, 默认值5
  6306. int nMaxHeight; // 最大检测高度,单位cm
  6307. int nMinHeight; // 最小检测高度,单位cm
  6308. EM_CFG_ACTION_TYPE emActionType; // 动作类型
  6309. BYTE bReserved[508]; // 保留字节
  6310. } CFG_IVS_STEREO_FIGHTDETECTION_INFO;
  6311. ///@brief 事件类型EVENT_IVS_STEREO_STEREOFALLDETECTION(立体行为分析跌倒检测)对应的规则配置
  6312. typedef struct tagCFG_IVS_STEREO_STEREOFALLDETECTION_INFO
  6313. {
  6314. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6315. BOOL bRuleEnable; // 规则使能
  6316. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6317. BYTE bReserved1[3]; // 保留字段
  6318. int nObjectTypeNum; // 相应物体类型个数
  6319. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6320. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6321. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6322. int nPtzPresetId; // 云台预置点编号 0~65535
  6323. int nDetectRegionPoint; // 检测区域顶点数
  6324. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  6325. int nMinDuration; // 最短持续时间,单位是秒,低于该时间不报警, 默认1 范围[1,60]
  6326. int nReportInterval; // 跌倒重复报警时间,为0不重复报警, 默认0 范围[0,300],单位:秒
  6327. int nSensitivity; // 灵敏度, 1-10, 默认值5
  6328. int nMaxHeight; // 最大检测高度,单位cm
  6329. int nMinHeight; // 最小检测高度,单位cm
  6330. BYTE bReserved[512]; // 保留字节
  6331. } CFG_IVS_STEREO_STEREOFALLDETECTION_INFO;
  6332. ///@brief 事件类型EVENT_IVS_STEREO_STAYDETECTION(立体行为分析人员滞留检测)对应的规则配置
  6333. typedef struct tagCFG_IVS_STEREO_STAYDETECTION_INFO
  6334. {
  6335. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6336. BOOL bRuleEnable; // 规则使能
  6337. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6338. BYTE bReserved1[3]; // 保留字段
  6339. int nObjectTypeNum; // 相应物体类型个数
  6340. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6341. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6342. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6343. int nPtzPresetId; // 云台预置点编号 0~65535
  6344. int nDetectRegionPoint; // 检测区域顶点数
  6345. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  6346. int nMinDuration; // 滞留时间阈值,单位是秒,低于该时间不报警, 默认300, 范围[1,3600]
  6347. int nReportInterval; // 跌倒重复报警时间,为0不重复报警, 默认0 范围[0,300],单位:秒
  6348. int nSensitivity; // 灵敏度, 1-10, 默认5
  6349. int nMaxHeight; // 最大检测高度,单位cm
  6350. int nMinHeight; // 最小检测高度,单位cm
  6351. BYTE bReserved[512]; // 保留字节
  6352. } CFG_IVS_STEREO_STAYDETECTION_INFO;
  6353. ///@brief 事件类型EVENT_IVS_STEREO_DISTANCE_DETECTION(立体行为分析间距异常/人员靠近检测)对应的规则配置
  6354. typedef struct tagCFG_IVS_STEREO_DISTANCE_DETECTION_INFO
  6355. {
  6356. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6357. BOOL bRuleEnable; // 规则使能
  6358. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6359. BYTE bReserved1[3]; // 保留字段
  6360. int nObjectTypeNum; // 相应物体类型个数
  6361. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6362. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6363. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6364. int nPtzPresetId; // 云台预置点编号 0~65535
  6365. int nDetectRegionPoint; // 检测区域顶点数
  6366. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  6367. int nMinDuration; // 最短持续时间, 单位是秒,低于该时间不报警, 默认2, 范围[1,60]
  6368. int nReportInterval; // 重复报警时间, 单位:秒, 为0不重复报警, 默认0, 范围[0,300]
  6369. int nSensitivity; // 灵敏度, 1-10, 默认5
  6370. int nMinHeight; // 最小检测高度,单位cm
  6371. int nMaxHeight; // 最大检测高度,单位cm
  6372. int nDetectType; // 检测模式, 取值:0-大于阈值报警 1-小于阈值报警, 默认为 1
  6373. int nDistance; // 间距阈值, 单位:cm, 取值10-600,默认值100
  6374. BYTE bReserved[512]; // 保留字节
  6375. } CFG_IVS_STEREO_DISTANCE_DETECTION_INFO;
  6376. ///@brief 事件类型EVENT_IVS_STEREO_MANNUM_DETECTION(立体行为分析人数异常检测)对应的规则配置
  6377. typedef struct tagCFG_IVS_STEREO_MANNUM_DETECTION_INFO
  6378. {
  6379. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6380. BOOL bRuleEnable; // 规则使能
  6381. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6382. BYTE bReserved1[3]; // 保留字段
  6383. int nObjectTypeNum; // 相应物体类型个数
  6384. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6385. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6386. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6387. int nPtzPresetId; // 云台预置点编号 0~65535
  6388. int nDetectRegionPoint; // 检测区域顶点数
  6389. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  6390. int nMinDuration; // 最短持续时间, 单位是秒,低于该时间不报警, 默认2, 范围[1,60]
  6391. int nReportInterval; // 重复报警时间, 单位:秒, 为0不重复报警, 默认0, 范围[0,300]
  6392. int nSensitivity; // 灵敏度, 1-10, 默认5
  6393. int nMinHeight; // 最小检测高度,单位cm
  6394. int nMaxHeight; // 最大检测高度,单位cm
  6395. int nDetectType; // 检测模式, 取值:0-大于阈值报警 1-小于阈值报警 2-不等于阈值报警 3-等于阈值报警
  6396. int nThresholdPerson; // 报警人数阈值, 取值0-10,默认值2
  6397. BYTE bReserved[512]; // 保留字节
  6398. } CFG_IVS_STEREO_MANNUM_DETECTION_INFO;
  6399. ///@brief 事件类型EVENT_IVS_ROAD_CONSTRUCTION (道路施工检测事件) 和EVENT_IVS_ROAD_BLOCK(路障检测事件)对应的规则配置
  6400. typedef struct tagCFG_ROAD_DETECTION_INFO
  6401. {
  6402. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6403. BOOL bRuleEnable; // 规则使能
  6404. int nObjectTypeNum; // 相应物体类型个数
  6405. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6406. int nPtzPresetId; // 云台预置点编号 0~65535
  6407. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6408. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6409. int nDetectRegionPoint; // 检测区域顶点数
  6410. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  6411. int nMinDuration; // 最短持续时间, 单位秒, 0-65535
  6412. int nSensitivity; // 灵敏度, 1-10
  6413. } CFG_ROAD_DETECTION_INFO;
  6414. ///@brief 人数统计区域
  6415. typedef struct tagPEOPLE_STAT_REGIONS_INFO
  6416. {
  6417. CFG_POLYGON stuRegion[MAX_CROWD_DISTRI_MAP_REGION_POINT_NUM]; // 区域检测坐标
  6418. UINT nPointNum; // 区域有效点数
  6419. unsigned int nPeopleNumLimit; // 区域内人数上限,单位:人
  6420. char szName[32]; // 区域名称(废弃,请使用szNameEx字段)
  6421. UINT nMinDuration; // 最短持续时间,单位秒, 范围[1, 600](CrowdPosture大类才支持)
  6422. UINT nReportInterval; // 重复报警间隔,单位秒, 范围[0, 3600](CrowdPosture大类才支持)
  6423. UINT nSensitivity; // 灵敏度, 范围[1, 10](CrowdPosture大类才支持)
  6424. char szNameEx[128]; // 区域名称,协议备注前63位有效
  6425. BYTE byReserved[208]; // 保留字节
  6426. }PEOPLE_STAT_REGIONS_INFO;
  6427. ///@brief 事件类型EVENT_IVS_CROWDDETECTION(人群密度检测事件)对应的规则配置
  6428. typedef struct tagCFG_CROWDDISTRIMAP_INFO
  6429. {
  6430. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6431. BOOL bRuleEnable; // 规则使能
  6432. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6433. BYTE bReserved1[3]; // 保留字段
  6434. int nObjectTypeNum; // 相应物体类型个数
  6435. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6436. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6437. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6438. int nPtzPresetId; // 云台预置点编号 0~65535
  6439. BOOL bGeneralAlarmEnable; // 全局人群密度超限报警使能
  6440. unsigned int nCrowdDensity; // 全局人群密度报警阈值,单位:人/平方米
  6441. BOOL bRegionAlarmEnable; // 区域人员数量超限报警使能
  6442. int nPeopleStatRegionsNum; // 人数统计区域个数
  6443. PEOPLE_STAT_REGIONS_INFO stuPeopleStatRegions[MAX_PEOPLESTATREGIONS_NUM]; // 人数统计区域
  6444. BOOL bSlaveTrackEnable; // 枪球联动跟踪使能
  6445. UINT nMinDuration; // 最短持续时间, 单位秒, 范围[1, 600](CrowdPosture大类才支持)
  6446. UINT nReportInterval; // 重复报警间隔, 单位秒, 范围[0, 3600](CrowdPosture大类才支持)
  6447. UINT nSensitivity; // 灵敏度, 范围[1, 10](CrowdPosture大类才支持)
  6448. BYTE bReserved[500]; // 保留字节
  6449. }CFG_CROWDDISTRIMAP_INFO;
  6450. ///@brief 事件类型EVENT_IVS_BANNER_DETECTION(拉横幅事件)对应的规则配置
  6451. typedef struct tagCFG_BANNER_DETECTION_INFO
  6452. {
  6453. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6454. BOOL bRuleEnable; // 规则使能
  6455. int nObjectTypeNum; // 相应物体类型个数
  6456. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6457. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6458. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6459. int nPtzPresetId; // 云台预置点编号 0~65535
  6460. int nDetectRegionPoint; // 检测区域顶点数
  6461. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  6462. int nMinDuration; // 最短持续时间, 单位:秒,范围1-600, 默认30
  6463. int nReportInterval; // 重复报警间隔,单位:秒,范围0-600,默认30,为0表示不重复
  6464. int nSensitivity; // 检测灵敏度,范围1-10
  6465. BYTE bReserved[512]; // 保留字节
  6466. } CFG_BANNER_DETECTION_INFO;
  6467. ///@brief 事件类型EVENT_IVS_NORMAL_FIGHTDETECTION(普通斗殴事件)对应的规则配置
  6468. typedef struct tagCFG_NORMAL_FIGHT_INFO
  6469. {
  6470. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6471. bool bRuleEnable; // 规则使能
  6472. int nObjectTypeNum; // 相应物体类型个数
  6473. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6474. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6475. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6476. int nPtzPresetId; // 云台预置点编号 0~65535
  6477. int nMinDuration; // 最短持续时间 单位:秒,范围1-600, 默认值30
  6478. int nDetectRegionPoint; // 检测区域顶点数
  6479. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  6480. int nTrackDuration; // 持续跟踪时间, 单位:秒, 范围5-300
  6481. int nSensitivity; // 灵敏度, 1-10
  6482. CFG_EM_DETECTMODE_T emDetectMode; // 检测模式
  6483. BYTE bReserved[512]; // 保留字节
  6484. } CFG_NORMAL_FIGHT_INFO;
  6485. ///@brief 事件类型EVENT_IVS_ELEVATOR_ABNORMAL(电动扶梯运行异常事件)对应的规则配置
  6486. typedef struct tagCFG_ELEVATOR_ABNORMAL_INFO
  6487. {
  6488. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6489. BOOL bRuleEnable; // 规则使能
  6490. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6491. BYTE bReserved1[3]; // 保留字段
  6492. int nDetectRegionPoint; // 检测区顶点数
  6493. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6494. int nObjectTypeNum; // 相应物体类型个数
  6495. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6496. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6497. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6498. int nPtzPresetId; // 云台预置点编号 0~65535
  6499. int nMinDuration; // 扶梯逆行时间阈值
  6500. int nReportInterval; // 扶梯逆行重复报警间隔秒数,为0则不重复报警
  6501. int nSensitivity; // 灵敏度, 取值1-10, 默认值6
  6502. CFG_POLYLINE stuDetectLineBegin; // 扶梯运行方向的起点
  6503. CFG_POLYLINE stuDetectLineEnd; // 扶梯运行方向的终点
  6504. int nAbnormalActionNum; // 检测扶梯异常动作数量
  6505. int nAbnormalAction[2]; // 检测扶梯异常动作: 0:未知 1: 扶梯骤停 2: 扶梯逆转
  6506. BYTE bReserved[500]; // 保留字节
  6507. } CFG_ELEVATOR_ABNORMAL_INFO;
  6508. ///@brief 非机动车属性类型
  6509. typedef enum tagEM_CFG_NONMOTOR_FEATURE
  6510. {
  6511. EM_CFG_NONMOTOR_FEATURE_HELMET, //头盔
  6512. EM_CFG_NONMOTOR_FEATURE_NUMOFCYCLING, //车上人数
  6513. EM_CFG_NONMOTOR_FEATURE_NONMOTORCOLOR, //车身颜色
  6514. EM_CFG_NONMOTOR_FEATURE_SEX, //性别
  6515. EM_CFG_NONMOTOR_FEATURE_AGE, //年龄
  6516. EM_CFG_NONMOTOR_FEATURE_HAT, //帽子
  6517. EM_CFG_NONMOTOR_FEATURE_BAG, //背包
  6518. EM_CFG_NONMOTOR_FEATURE_CARRIERBAG, //手提包
  6519. EM_CFG_NONMOTOR_FEATURE_UMBRELLA, //雨伞
  6520. EM_CFG_NONMOTOR_FEATURE_UPPERBODYCOLOR, //上衣颜色
  6521. EM_CFG_NONMOTOR_FEATURE_LOWERBODYCOLOR, //下衣颜色
  6522. EM_CFG_NONMOTOR_FEATURE_UPCLOTHES, //上衣类型
  6523. EM_CFG_NONMOTOR_FEATURE_DOWNCLOTHES, //下衣类型
  6524. EM_CFG_NONMOTOR_FEATURE_CATEGORY, //车类型
  6525. }EM_CFG_NONMOTOR_FEATURE;
  6526. #define MAX_NONMOTOR_ATTRIBUTE_NUM 32 // 支持的非机动车属性个数
  6527. ///@brief 事件类型EVENT_IVS_NONMOTORDETECT(非机动车事件)对应的规则配置
  6528. typedef struct tagCFG_NONMOTORDETECT_INFO
  6529. {
  6530. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6531. BOOL bRuleEnable; // 规则使能
  6532. int nObjectTypeNum; // 相应物体类型个数
  6533. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6534. int nPtzPresetId; // 云台预置点编号 0~65535
  6535. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6536. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6537. int nFeatureNum; // 支持的非机动车属性个数
  6538. EM_CFG_NONMOTOR_FEATURE emFeatureList[MAX_NONMOTOR_ATTRIBUTE_NUM]; // 支持的非机动车属性列表
  6539. BYTE bReserved[512]; // 保留字节
  6540. }CFG_NONMOTORDETECT_INFO;
  6541. ///@brief 事件类型EVENT_IVS_HUMANTRAIT(人员检测规则)对应的规则配置
  6542. typedef struct tagCFG_HUMANTRAIT_INFO
  6543. {
  6544. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6545. BOOL bRuleEnable; // 规则使能
  6546. int nObjectTypeNum; // 相应物体类型个数
  6547. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6548. int nPtzPresetId; // 云台预置点编号 0~65535
  6549. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6550. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6551. int nHumanFaceTypeNum; // 支持的目标检测类型个数
  6552. EM_VIDEO_ANALYSE_HUMANFACE_TYPE emHumanFaceType[MAX_HUMANFACE_LIST_SIZE]; // 支持的目标检测类型列表
  6553. int nMinDuration; // 最短触发时间,单位:秒
  6554. int nTriggerTargets; // 触发报警的目标个数
  6555. int nSensitivity; // 灵敏度,越高越容易检测, 0-10
  6556. BOOL bSizeFileter; // 是否使用尺寸过滤器
  6557. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器,提高判断精度
  6558. BOOL bFeatureEnable; // 是否开启目标属性识别
  6559. BOOL bFeatureFilter; // 在目标属性开启前提下,如果目标图像质量太差,是否不上报属性 true-图像太差不上报属性;false-图像很差也上报属性(可能会非常不准,影响用户体验)
  6560. int nMinQuality; // 目标图片质量阈值,和bFeatureFilter一起使用
  6561. int nFaceFeatureNum; // 需要检测的目标属性个数
  6562. EM_FACEFEATURE_TYPE emFaceFeatureType[MAX_FEATURE_LIST_SIZE]; // 需检测的目标属性
  6563. BYTE bReserved[512]; // 保留字节
  6564. }CFG_HUMANTRAIT_INFO;
  6565. ///@brief 事件类型EVENT_IVS_VEHICLEDETECT(机动车事件)对应的规则配置
  6566. typedef struct tagCFG_VEHICLEDETECT_INFO
  6567. {
  6568. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6569. BOOL bRuleEnable; // 规则使能
  6570. int nObjectTypeNum; // 相应物体类型个数
  6571. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6572. int nPtzPresetId; // 云台预置点编号 0~65535
  6573. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6574. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6575. int nSnapThreshold; // 车辆抓拍阈值,是一个百分数,表示当车辆检测框高度占画面百分比大于这个阈值时,触发规则进行抓拍。
  6576. BYTE bReserved[512]; // 保留字节
  6577. }CFG_VEHICLEDETECT_INFO;
  6578. ///@brief 事件类型EVENT_IVS_TUMBLE_DETECTION(倒地事件)对应的规则配置
  6579. typedef struct tagCFG_TUMBLE_DETECTION_INFO
  6580. {
  6581. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6582. BOOL bRuleEnable; // 规则使能
  6583. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  6584. BYTE bReserved1[3]; // 保留字段
  6585. int nDetectRegionPoint; // 检测区顶点数
  6586. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6587. int nObjectTypeNum; // 相应物体类型个数
  6588. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6589. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6590. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6591. int nPtzPresetId; // 云台预置点编号 0~65535
  6592. int nMinDuration; // 倒地首次报警时间阈值,低于该时间不报警。范围[0,30],单位:秒
  6593. int nReportInterval; // 倒地重复报警时间,为0不重复报警。范围[1,300],单位:秒
  6594. int nMinHeight; // 最小检测高度。单位:厘米
  6595. int nMaxHeight; // 最大检测高度。单位:厘米
  6596. int nSensitivity; // 灵敏度,范围[1,10]
  6597. BYTE byReserved[512]; // 保留字节
  6598. }CFG_TUMBLE_DETECTION_INFO;
  6599. ///@brief 检测方向
  6600. typedef enum tagEM_CFG_DIRECTION_TYPE
  6601. {
  6602. EM_CFG_DIRECTION_UNKNOWN = 0, // 未知
  6603. EM_CFG_DIRECTION_LEFT_TO_RIGHT, // 从左向右
  6604. EM_CFG_DIRECTION_RIGHT_TO_LEFT, // 从右向左
  6605. EM_CFG_DIRECTION_BOTH // 全部
  6606. }EM_CFG_DIRECTION_TYPE;
  6607. ///@brief 事件类型EVENT_IVS_SPILLEDMATERIAL_DETECTION(抛洒物检测事件)对应的规则配置
  6608. typedef struct tagCFG_SPILLEDMATERIAL_DETECTION_INFO
  6609. {
  6610. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6611. BOOL bRuleEnable; // 规则使能
  6612. int nObjectTypeNum; // 相应物体类型个数
  6613. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6614. int nPtzPresetId; // 云台预置点编号 0~65535
  6615. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6616. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6617. int nDetectLinePointNum; // 警戒线端点个数
  6618. CFG_POLYLINE stuDetectLine[MAX_POLYGON_NUM]; // 警戒线。 折线类型,折线中每个端点的坐标归一化到[0,8192)区间。
  6619. EM_CFG_DIRECTION_TYPE emDirection; // 检测方向
  6620. CFG_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器,为提高规则判断精度
  6621. BYTE byReserved[4096]; // 保留字节
  6622. }CFG_SPILLEDMATERIAL_DETECTION_INFO;
  6623. ///@brief 事件类型 EVENT_IVS_AIRPLANE_DETECTION (飞机行为检测)对应的规则配置
  6624. typedef struct tagCFG_AIRPLANE_DETECTION_INFO
  6625. {
  6626. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6627. BOOL bRuleEnable; // 规则使能
  6628. int nObjectTypeNum; // 相应物体类型个数
  6629. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6630. int nPtzPresetId; // 云台预置点编号 0~65535
  6631. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6632. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6633. CFG_POLYLINE stuGuideLine[2]; // 导向线
  6634. CFG_POLYLINE stuStopLine[10][2]; // 停止线
  6635. int nStopLineNum; // 停止线数量
  6636. BYTE byReserved[4096]; // 保留字节
  6637. } CFG_AIRPLANE_DETECTION_INFO;
  6638. ///@brief 事件类型 DEV_EVENT_GENERATEGRAPH_DETECTION_INFO(生成规则图事件)对应的规则配置
  6639. typedef struct tagCFG_GENERATEGRAPH_DETECTION_INFO
  6640. {
  6641. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6642. BOOL bRuleEnable; // 规则使能
  6643. int nObjectTypeNum; // 相应物体类型个数
  6644. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6645. int nPtzPresetId; // 云台预置点编号 0~65535
  6646. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6647. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6648. UINT nPlanID; // 计划ID,仅球机有效,从1开始
  6649. }CFG_GENERATEGRAPH_DETECTION_INFO;
  6650. ///@brief 事件类型 EVENT_IVS_FLOATINGOBJECT_DETECTION (漂浮物检测)对应的规则配置
  6651. typedef struct tagCFG_FLOATINGOBJECT_DETECTION_INFO
  6652. {
  6653. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6654. BOOL bRuleEnable; // 规则使能
  6655. int nObjectTypeNum; // 相应物体类型个数
  6656. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6657. int nPtzPresetId; // 云台预置点编号 0~65535
  6658. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6659. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6660. int nDetectRegionPoint; // 检测区顶点数
  6661. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6662. float fAlarmThreshold; // 报警阈值。当检测区域内的漂浮物占比超过阈值时则产生报警;单位:%,取值范围(0, 100]
  6663. UINT nAlarmInterval; // 报警时间间隔。(单位:秒)。取值范围[60, 86400]
  6664. BOOL bDataUpload; // 是否上报实时数据。
  6665. UINT nUpdateInterval; // 实时数据上报间隔。(单位:秒)。取值范围[60, 86400]
  6666. BYTE byReserved[4096]; // 保留字节
  6667. } CFG_FLOATINGOBJECT_DETECTION_INFO;
  6668. ///@brief 事件类型 EVENT_IVS_WATER_LEVEL_DETECTION (水位检测事件)对应的规则配置
  6669. typedef struct tagCFG_WATER_LEVEL_DETECTION_INFO
  6670. {
  6671. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6672. BOOL bRuleEnable; // 规则使能
  6673. int nObjectTypeNum; // 相应物体类型个数
  6674. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6675. int nPtzPresetId; // 云台预置点编号 0~65535
  6676. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6677. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6678. int nBaseLinePointNum; // 拼接的水位尺坐标点数
  6679. CFG_POLYGON stuBaseLine[16]; // 对于拼接的水位尺,需页面上标定出拼接处,若无拼接无需填充
  6680. // 一般4个点,最大不超过16个点,每个点坐标归一化到[0,8192]区间
  6681. float fBaseLevel; // 对应BaseLine标定的实际水位值。(单位:米)
  6682. float fHighLevel; // 水位上限报警阈值(单位:米)
  6683. float fLowLevel; // 水位下限报警阈值(单位:米)
  6684. UINT nAlarmInterval; // 报警时间间隔。(单位:秒)。取值范围[60, 86400]
  6685. BOOL bDataUpload; // 是否上报实时数据。
  6686. UINT nUpdateInterval; // 实时数据上报间隔。(单位:秒)。取值范围[60, 86400]
  6687. BYTE byReserved[4096]; // 保留字节
  6688. } CFG_WATER_LEVEL_DETECTION_INFO;
  6689. ///@brief 事件类型 EVENT_IVS_PHONECALL_DETECT (打电话报警事件)对应的规则配置
  6690. typedef struct tagCFG_PHONECALL_DETECT_INFO
  6691. {
  6692. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6693. BOOL bRuleEnable; // 规则使能
  6694. int nObjectTypeNum; // 相应物体类型个数
  6695. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6696. int nPtzPresetId; // 云台预置点编号 0~65535
  6697. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6698. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6699. int nDetectRegionPoint; // 检测区顶点数
  6700. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6701. int nMinDuration; // 最短持续时间,单位秒
  6702. int nSensitivity; // 灵敏度
  6703. int nReportInterval; // 报告时间间隔
  6704. BOOL bSizeFilterEnable; // 是否包含尺寸过滤器
  6705. CFG_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器,为提高规则判断精度
  6706. BOOL bRelateFace; // 关联目标, 抓拍目标使能开关,false:关闭,true:开启,默认关闭
  6707. BYTE byReserved[3608]; // 保留字节
  6708. } CFG_PHONECALL_DETECT_INFO;
  6709. ///@brief 事件类型 EVENT_IVS_SMOKING_DETECT (吸烟检测报警事件)对应的规则配置
  6710. typedef struct tagCFG_SMOKING_DETECT_INFO
  6711. {
  6712. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6713. BOOL bRuleEnable; // 规则使能
  6714. int nObjectTypeNum; // 相应物体类型个数
  6715. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6716. int nPtzPresetId; // 云台预置点编号 0~65535
  6717. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6718. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6719. int nDetectRegionPoint; // 检测区顶点数
  6720. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6721. int nMinDuration; // 最短持续时间,单位秒
  6722. int nSensitivity; // 灵敏度
  6723. int nReportInterval; // 报告时间间隔
  6724. BYTE byReserved[4096]; // 保留字节
  6725. } CFG_SMOKING_DETECT_INFO;
  6726. ///@brief 事件类型 EVENT_IVS_HELMET_DETECTION (安全帽检测)对应的规则配置
  6727. typedef struct tagCFG_HELMET_DETECTION_INFO
  6728. {
  6729. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6730. BOOL bRuleEnable; // 规则使能
  6731. int nObjectTypeNum; // 相应物体类型个数
  6732. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6733. int nPtzPresetId; // 云台预置点编号 0~65535
  6734. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6735. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6736. int nDetectRegionPoint; // 检测区顶点数
  6737. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  6738. int nDectRegionID; // 检测区域编号
  6739. BYTE byReserved[4096]; // 保留字节
  6740. }CFG_HELMET_DETECTION_INFO;
  6741. ///@brief 事件类型EVENT_IVS_HOLD_UMBRELLA(违规打伞事件)对应规则配置
  6742. typedef struct tagCFG_HOLDUMBRELLA_INFO
  6743. {
  6744. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6745. BOOL bRuleEnable; // 规则使能
  6746. int nObjectTypeNum; // 相应物体类型个数
  6747. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6748. int nPtzPresetId; // 云台预置点编号 0~65535
  6749. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6750. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6751. int nDetectRegionPoint; // 检测区顶点数
  6752. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6753. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  6754. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  6755. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  6756. UINT nDetectRegionNumber; // 检测区域号
  6757. BYTE byReserved[4096]; // 保留字节
  6758. }CFG_HOLDUMBRELLA_INFO;
  6759. ///@brief 事件类型EVENT_IVS_GARBAGE_EXPOSURE(垃圾暴露事件)对应规则配置
  6760. typedef struct tagCFG_GARBAGEEXPOSURE_INFO
  6761. {
  6762. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6763. BOOL bRuleEnable; // 规则使能
  6764. int nObjectTypeNum; // 相应物体类型个数
  6765. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6766. int nPtzPresetId; // 云台预置点编号 0~65535
  6767. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6768. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6769. int nDetectRegionPoint; // 检测区顶点数
  6770. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6771. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  6772. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  6773. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  6774. UINT nDetectRegionNumber; // 检测区域号
  6775. BYTE byReserved[4096]; // 保留字节
  6776. }CFG_GARBAGEEXPOSURE_INFO;
  6777. ///@brief 事件类型EVENT_IVS_DUSTBIN_OVER_FLOW(垃圾桶满溢事件)对应规则配置
  6778. typedef struct tagCFG_DUSTBIN_OVERFLOW_INFO
  6779. {
  6780. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6781. BOOL bRuleEnable; // 规则使能
  6782. int nObjectTypeNum; // 相应物体类型个数
  6783. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6784. int nPtzPresetId; // 云台预置点编号 0~65535
  6785. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6786. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6787. int nDetectRegionPoint; // 检测区顶点数
  6788. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6789. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  6790. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  6791. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  6792. UINT nDetectRegionNumber; // 检测区域号
  6793. BYTE byReserved[4096]; // 保留字节
  6794. }CFG_DUSTBIN_OVERFLOW_INFO;
  6795. ///@brief 事件类型EVENT_IVS_DOOR_FRONT_DIRTY(门前脏乱事件)对应规则配置
  6796. typedef struct tagCFG_DOORFRONT_DIRTY_INFO
  6797. {
  6798. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6799. BOOL bRuleEnable; // 规则使能
  6800. int nObjectTypeNum; // 相应物体类型个数
  6801. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6802. int nPtzPresetId; // 云台预置点编号 0~65535
  6803. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6804. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6805. int nDetectRegionPoint; // 检测区顶点数
  6806. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6807. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  6808. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  6809. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  6810. char szShopAddress[256]; // 商铺地址
  6811. UINT nDetectRegionNumber; // 检测区域号
  6812. BYTE byReserved[4096]; // 保留字节
  6813. }CFG_DOORFRONT_DIRTY_INFO;
  6814. ///@brief 事件类型 EVENT_IVS_STAY_ALONE_DETECTION (单人独处事件)对应的规则配置
  6815. typedef struct tagCFG_STAY_ALONE_DETECTION_INFO
  6816. {
  6817. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6818. BOOL bRuleEnable; // 规则使能
  6819. int nObjectTypeNum; // 相应物体类型个数
  6820. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6821. int nPtzPresetId; // 云台预置点编号 0~65535
  6822. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6823. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6824. int nDetectRegionNum; // 多边形检测区域顶点个数
  6825. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 多边形检测区域
  6826. UINT nMinDuration; // 最短持续时间, 单位:秒
  6827. UINT nReportInterval; // 报告时间间隔, 单位:秒, 为0时表示只报一次
  6828. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  6829. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  6830. BYTE byReserved[4096]; // 保留字节
  6831. }CFG_STAY_ALONE_DETECTION_INFO;
  6832. ///@brief 事件类型EVENT_IVS_INTELLI_SHELF(智能补货事件)对应的规则配置
  6833. typedef struct tagCFG_INTELLI_SHELF_INFO
  6834. {
  6835. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6836. BOOL bRuleEnable; // 规则使能
  6837. int nObjectTypeNum; // 相应物体类型个数
  6838. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6839. int nPtzPresetId; // 云台预置点编号 0~65535
  6840. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6841. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6842. int nDetectRegionPoint; // 检测区顶点数
  6843. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6844. unsigned short nThreshold; // 货架上货物百分比低于阈值则报警, 0表示不报警
  6845. unsigned short nAreaID; // 区域ID,该通道和PresetID下的某个区域,取值范围1-5
  6846. BYTE byReserved[4096]; // 保留字节
  6847. }CFG_INTELLI_SHELF_INFO;
  6848. ///@brief 事件类型EVENT_IVS_SHOP_WINDOW_POST(橱窗张贴事件)对应的规则配置
  6849. typedef struct tagCFG_SHOP_WINDOW_POST_INFO
  6850. {
  6851. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6852. BOOL bRuleEnable; // 规则使能
  6853. int nObjectTypeNum; // 相应物体类型个数
  6854. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6855. int nPtzPresetId; // 云台预置点编号 0~65535
  6856. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6857. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6858. int nDetectRegionPoint; // 检测区顶点数
  6859. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6860. unsigned short nMinDuration; // 最短持续时间,单位:秒0-3600s
  6861. unsigned short nTrackDuration; // 跟踪持续时间 0-3600s
  6862. int nSensitivity; // 灵敏度,值越小灵敏度越低 取值1-10
  6863. UINT nDetectRegionNumber; // 检测区域号
  6864. char szShopAddress[256]; // 商铺地址
  6865. BYTE byReserved[1024]; // 保留字节
  6866. }CFG_SHOP_WINDOW_POST_INFO;
  6867. ///@brief 事件类型EVENT_IVS_SHOP_SIGN_ABNORMAL(店招异常事件)对应的规则配置
  6868. typedef struct tagCFG_SHOP_SIGN_ABNORMAL_INFO
  6869. {
  6870. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6871. BOOL bRuleEnable; // 规则使能
  6872. int nObjectTypeNum; // 相应物体类型个数
  6873. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6874. int nPtzPresetId; // 云台预置点编号 0~65535
  6875. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6876. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6877. int nDetectRegionPoint; // 检测区顶点数
  6878. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6879. unsigned short nMinDuration; // 最短持续时间,单位:秒0-3600s
  6880. unsigned short nTrackDuration; // 跟踪持续时间 0-3600s
  6881. int nSensitivity; // 灵敏度,值越小灵敏度越低 取值1-10
  6882. UINT nDetectRegionNumber; // 检测区域号
  6883. char szShopAddress[256]; // 商铺地址
  6884. BYTE byReserved[1024]; // 保留字节
  6885. }CFG_SHOP_SIGN_ABNORMAL_INFO;
  6886. ///@brief 动物检测规则下的场景类型
  6887. typedef enum tagEM_CFG_DETECTION_SCENE_TYPE
  6888. {
  6889. EM_CFG_DETECTION_SCENE_TYPE_UNKNOWN, // 未知
  6890. EM_CFG_DETECTION_SCENE_TYPE_ANIMAL, // 兽类场景,可检测动物、人、车
  6891. EM_CFG_DETECTION_SCENE_TYPE_BIRD, // 鸟类场景,可检测鸟类,人、车
  6892. } EM_CFG_DETECTION_SCENE_TYPE;
  6893. ///@brief 事件类型EVENT_IVS_ANIMAL_DETECTION(动物检测事件)对应的规则配置
  6894. typedef struct tagCFG_ANIMAL_DETECTION_INFO
  6895. {
  6896. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6897. BOOL bRuleEnable; // 规则使能
  6898. int nObjectTypeNum; // 相应物体类型个数
  6899. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6900. int nPtzPresetId; // 云台预置点编号 0~65535
  6901. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6902. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6903. int nDetectRegionPoint; // 检测区顶点数
  6904. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6905. int nReportInterval; // 报警周期,单位秒,范围(1,3600),默认5s取值范围1-5
  6906. EM_CFG_DETECTION_SCENE_TYPE emDetectionSceneType; // 场景类型
  6907. BYTE byReserved[1020]; // 保留字节
  6908. }CFG_ANIMAL_DETECTION_INFO;
  6909. ///@brief 人体测温其他参数
  6910. typedef struct tagCFG_HUMAN_TEMP_PARAM_INFO
  6911. {
  6912. int nTempPickTime; // 温度优选时间,取值:0~20
  6913. BYTE byReserved[252]; // 保留
  6914. }HUMAN_TEMP_PARAM_INFO;
  6915. ///@brief 人体测温规则配置
  6916. typedef struct tagCFG_ANATOMY_TEMP_DETECT_INFO
  6917. {
  6918. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6919. BOOL bRuleEnable; // 规则使能
  6920. int nObjectTypeNum; // 相应物体类型个数
  6921. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6922. int nPtzPresetId; // 云台预置点编号 0~65535
  6923. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6924. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6925. BYTE bTrackEnable; // 触发跟踪使能,仅对警戒线事件,警戒区规则有效
  6926. int nDetectRegionPoint; // 多边形顶点数
  6927. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域,多边形
  6928. BOOL bHighEnable; // 温度异常报警是否开启
  6929. BOOL bLowEnable; // 温度异常报警是否开启
  6930. int fHighThresholdTemp; // 温度异常阈值,精度0.1,扩大10倍
  6931. int fLowThresholdTemp; // 温度异常阈值,精度0.1,扩大10倍
  6932. BOOL bIsAutoStudy; // 是否自动学习
  6933. int fHighAutoOffset; // 温度自动学习偏差值,精度0.1,扩大10倍
  6934. int fLowAutoOffset; // 温度自动学习偏差值,精度0.1,扩大10倍
  6935. int nSensitivity; // 灵敏度 范围[1, 10]
  6936. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  6937. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  6938. BOOL bIsCaptureNormal; // 是否上报正常体温信息
  6939. HUMAN_TEMP_PARAM_INFO stuHumanTempParamInfo; // 人体测温其他参数
  6940. BYTE byReserved[768]; // 保留字节
  6941. }CFG_ANATOMY_TEMP_DETECT_INFO;
  6942. ///@brief 事件类型EVENT_IVS_CONGESTION_DETECTION(道路场景车辆拥堵报警事件)对应的规则配置
  6943. typedef struct tagCFG_CONGESTION_DETECTION_INFO
  6944. {
  6945. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6946. BOOL bRuleEnable; // 规则使能
  6947. int nObjectTypeNum; // 相应物体类型个数
  6948. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6949. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6950. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6951. int nPtzPresetId; // 云台预置点编号 0~65535
  6952. int nDetectRegionPoint; // 检测区顶点数
  6953. CFG_POLYGON stuDetectRegion[32]; // 检测区
  6954. BOOL bCongestionAlarmEnable; // 拥堵报警使能
  6955. BOOL bQueueAlarmEnable; // 排队长度报警使能
  6956. UINT nCongestionThreshold; // 拥堵车辆报警阈值,单位辆,取值[10,1000]
  6957. UINT nQueueLengthThreshold; // 车辆排队长度报警阈值,单位米,取值[10,1000]
  6958. UINT nCongestionDuration; // 最短拥堵时间阈值 单位分钟,取值[1,100]
  6959. UINT nAlarmInterval; // 报警时间间隔,取0只报警一次 单位秒,取值[0,65535]
  6960. BYTE byReserved[4096]; // 保留字节
  6961. }CFG_CONGESTION_DETECTION_INFO;
  6962. ///@brief 事件类型EVENT_IVS_VEHICLELIMIT_DETECTION(停车场场景下停车车辆上限报警)对应的规则配置
  6963. typedef struct tagCFG_VEHICLELIMIT_DETECTION_INFO
  6964. {
  6965. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6966. BOOL bRuleEnable; // 规则使能
  6967. int nObjectTypeNum; // 相应物体类型个数
  6968. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6969. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6970. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6971. int nPtzPresetId; // 云台预置点编号 0~65535
  6972. int nDetectRegionPoint; // 检测区顶点数
  6973. CFG_POLYGON stuDetectRegion[32]; // 检测区
  6974. BOOL bLimitAlarmEnable; // 车辆上限报警使能
  6975. UINT nVehicleThreshold; // 车辆上限阈值,单位辆,取值[10,1000]
  6976. UINT nAlarmInterval; // 报警时间间隔,取0只报警一次 单位秒,取值[0,65535]
  6977. BYTE byReserved[4096]; // 保留字节
  6978. }CFG_VEHICLELIMIT_DETECTION_INFO;
  6979. ///@brief 检测区域信息
  6980. typedef struct tagNET_DETECT_REGION_INFO
  6981. {
  6982. int nDetectRegionPoint; // 检测区顶点数
  6983. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  6984. BYTE byReserved[252]; // 保留字节
  6985. } NET_DETECT_REGION_INFO;
  6986. ///@brief 事件类型EVENT_IVS_BREED_DETECTION(智慧养殖检测事件)对应的规则配置
  6987. typedef struct tagCFG_BREED_DETECTION_INFO
  6988. {
  6989. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6990. BOOL bRuleEnable; // 规则使能
  6991. int nObjectTypeNum; // 相应物体类型个数
  6992. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  6993. int nPtzPresetId; // 云台预置点编号 0~65535
  6994. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6995. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6996. UINT nSensitivity; // 灵敏度, 1-10
  6997. UINT nMinDuration; // 检测频率,指定时间内检测一次,单位:秒
  6998. float fCameraHeight; // 摄像机安装高度,单位:m, 2-5
  6999. float fHeightMultiple; // 摄像机安装高度倍数,用于算法修正结果值, 0.5-2
  7000. UINT nDetectRegionNum; // 检测区个数
  7001. NET_DETECT_REGION_INFO stuDetectRegionInfo[8]; // 检测区信息
  7002. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  7003. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  7004. BYTE byReserved[4096]; // 保留字节
  7005. } CFG_BREED_DETECTION_INFO;
  7006. ///@brief 工装颜色
  7007. typedef enum tagEM_WORKCLOTHES_COLOR_TYPE
  7008. {
  7009. EM_WORKCLOTHES_COLOR_UNKNOWN, // 未知
  7010. EM_WORKCLOTHES_COLOR_WHITE, // 白色
  7011. EM_WORKCLOTHES_COLOR_ORANGE, // 橙色
  7012. EM_WORKCLOTHES_COLOR_PINK, // 粉色
  7013. EM_WORKCLOTHES_COLOR_BLACK, // 黑色
  7014. EM_WORKCLOTHES_COLOR_RED, // 红色
  7015. EM_WORKCLOTHES_COLOR_YELLOW, // 黄色
  7016. EM_WORKCLOTHES_COLOR_GRAY, // 灰色
  7017. EM_WORKCLOTHES_COLOR_BLUE, // 蓝色
  7018. EM_WORKCLOTHES_COLOR_GREEN, // 绿色
  7019. EM_WORKCLOTHES_COLOR_PURPLE, // 紫色
  7020. EM_WORKCLOTHES_COLOR_BROWN, // 棕色
  7021. }EM_WORKCLOTHES_COLOR_TYPE;
  7022. ///@brief 安全帽检测
  7023. typedef struct tagNET_WORK_HELMET
  7024. {
  7025. BOOL bEnbale; // 是否检测安全帽
  7026. BOOL bWeared; // 是否穿戴安全帽
  7027. BOOL bDetectColor; // 是否指定检测颜色
  7028. EM_WORKCLOTHES_COLOR_TYPE emColor; // 安全帽颜色,DetectColor为 TRUE 时有效
  7029. BYTE byReserved[64]; // 保留字节
  7030. }NET_WORK_HELMET;
  7031. ///@brief 工作服检测
  7032. typedef struct tagNET_WORK_CLOTHES
  7033. {
  7034. BOOL bEnbale; // 是否检测工作服
  7035. BOOL bWeared; // 是否穿着工作服
  7036. BOOL bDetectColor; // 是否指定检测颜色
  7037. EM_WORKCLOTHES_COLOR_TYPE emColor; // 工作服颜色,DetectColor为 TRUE 时有效
  7038. BYTE byReserved[64]; // 保留字节
  7039. }NET_WORK_CLOTHES;
  7040. ///@brief 马甲检测
  7041. typedef struct tagNET_WORK_VEST
  7042. {
  7043. BOOL bEnbale; // 是否检测马甲
  7044. BOOL bWeared; // 是否穿着马甲
  7045. BOOL bDetectColor; // 是否指定检测颜色
  7046. EM_WORKCLOTHES_COLOR_TYPE emColor; // 马甲颜色,DetectColor为 TRUE 时有效
  7047. BYTE byReserved[64]; // 保留字节
  7048. }NET_WORK_VEST;
  7049. ///@brief 工作裤检测
  7050. typedef struct tagNET_WORK_PANTS
  7051. {
  7052. BOOL bEnbale; // 是否检测工作裤
  7053. BOOL bWeared; // 是否穿着工作裤
  7054. BOOL bDetectColor; // 是否指定检测颜色
  7055. EM_WORKCLOTHES_COLOR_TYPE emColor; // 工作裤颜色,bDetectColor 为 TRUE 时有效
  7056. BYTE byReserved[64]; // 保留字节
  7057. }NET_WORK_PANTS;
  7058. ///@brief 无帽子检测
  7059. typedef struct tagNET_NO_HAT
  7060. {
  7061. BOOL bEnbale; // 是否检测无帽子
  7062. UINT nTypeLegal; // 检测类型,0-字段不存在,1-合规,2-不合规,3-未定义
  7063. char szType[32]; // 无帽子类型
  7064. UINT nMinDuration; // 最短持续时间,单位秒,默认值10,范围0-3600
  7065. UINT nReportInterval; // 重复报警间隔,单位秒,0-600,等于0表示不重复报警,默认值30
  7066. UINT nSensitivity; // 检测灵敏度,取值范围1-10,默认值5,灵敏度越高越容易检测
  7067. UINT nAlarmType; // 关联规则中表示子规则是正向还是反向事件,0-字段不存在,1为反向事件,2为正向事件
  7068. UINT nAlarmOrder; // 子规则的顺序,组合关联规则生效的先后顺序
  7069. UINT nAlarmOriented; // 按规则,或目标报警,0-字段不存在,1为按目标报警,2为按规则报警
  7070. char szReserved[32]; // 保留字节
  7071. }NET_NO_HAT;
  7072. ///@brief 工装特征描述
  7073. typedef struct tagNET_WORK_CLOTHES_DESCRIPTION
  7074. {
  7075. NET_WORK_HELMET stuWorkHelmet; // 安全帽检测
  7076. NET_WORK_CLOTHES stuWorkClothes; // 工作服检测
  7077. NET_WORK_VEST stuWorkVest; // 马甲检测
  7078. NET_WORK_PANTS stuWorkPants; // 工装裤检测
  7079. int nAlarmTime; // 事件持续多长时间后报警,单位秒
  7080. int nAlarmRepeatTime; // 重复报警时间间隔,单位秒
  7081. UINT nSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  7082. int nWorkClothesDescriptionType; /// 0:全部检测规则, 1:安全帽检测规则, 2:工作服检测规则, 3:工作马甲检测规则, 4:工作裤检测规则
  7083. NET_NO_HAT stuNoHat; // 无帽子检测
  7084. BOOL bUseNoHat; // 是否启用NoHat字段
  7085. BYTE bReserved[316]; // 保留字节
  7086. }NET_WORK_CLOTHES_DESCRIPTION;
  7087. ///@brief 事件类型EVENT_IVS_WORKCLOTHES_DETECT(工装(安全帽/工作服等)检测事件)对应的规则配置
  7088. typedef struct tagCFG_WORKCLOTHES_DETECT_INFO
  7089. {
  7090. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7091. BOOL bRuleEnable; // 规则使能
  7092. int nObjectTypeNum; // 相应物体类型个数
  7093. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7094. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7095. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7096. int nPtzPresetId; // 云台预置点编号 0~65535
  7097. UINT nDetectRegionPoint; // 检测区顶点数
  7098. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  7099. UINT nWorkClothesDescriptionCount; // 工装特征描述数组的实际个数
  7100. NET_WORK_CLOTHES_DESCRIPTION stuWorkClothesDescription[64]; // 工装特征描述,数组最大元素64个
  7101. BYTE byReserved[1028]; // 保留字节
  7102. } CFG_WORKCLOTHES_DETECT_INFO;
  7103. ///@brief 事件类型EVENT_IVS_AIRPORT_VEHICLE_DETECT(机场智能保障车辆检测事件)对应的规则配置
  7104. typedef struct tagCFG_AIRPORT_VEHICLE_DETECT_INFO
  7105. {
  7106. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7107. BOOL bRuleEnable; // 规则使能
  7108. int nObjectTypeNum; // 相应物体类型个数
  7109. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7110. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7111. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7112. int nPtzPresetId; // 云台预置点编号 0~65535
  7113. UINT nDetectRegionPoint; // 检测区顶点数
  7114. CFG_POLYGON stuDetectRegion[20]; // 检测区
  7115. BYTE byReserved[4096]; // 保留字节
  7116. } CFG_AIRPORT_VEHICLE_DETECT_INFO;
  7117. ///@brief 事件类型EVENT_IVS_PIG_TEMP_DETECT(智慧养殖猪体温检测)对应的规则配置
  7118. typedef struct tagCFG_PIG_TEMPERATURE_DETECT_INFO
  7119. {
  7120. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7121. BOOL bRuleEnable; // 规则使能
  7122. int nObjectTypeNum; // 相应物体类型个数
  7123. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7124. int nPtzPresetId; // 云台预置点编号 0~65535
  7125. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7126. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7127. UINT nSensitivity; // 灵敏度, 1-10
  7128. UINT nMaxTemperatureNum; // 猪体温按排序最高体温个数
  7129. int nDetectRegionPoint; // 检测区顶点数
  7130. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  7131. BYTE byReserved1[4]; // 补齐
  7132. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  7133. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  7134. BYTE byReserved[4096]; // 保留字节
  7135. } CFG_PIG_TEMPERATURE_DETECT_INFO;
  7136. ///@brief 本组车位排列方向
  7137. typedef enum tagEM_PARKING_DIRECTION
  7138. {
  7139. EM_PARKING_DIRECTION_UNKNOWN, // 未知
  7140. EM_PARKING_DIRECTION_HORIZONTAL, // 横向
  7141. EM_PARKING_DIRECTION_VERTICAL, // 纵向
  7142. } EM_PARKING_DIRECTION;
  7143. ///@brief 停车车位信息
  7144. typedef struct tagCFG_PARKING_INFO
  7145. {
  7146. int nID; // 车位ID,范围:[0,99]
  7147. char szName[32]; // 车位名称
  7148. int nDetectRegionPoint; // 检测区顶点数
  7149. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7150. BYTE byReserved[512]; // 保留字节
  7151. } CFG_PARKING_INFO;
  7152. ///@brief 室外停车位组信息
  7153. typedef struct tagCFG_PARKING_GROUP
  7154. {
  7155. EM_PARKING_DIRECTION emDirection; // 本组车位排列方向
  7156. int nParkingNum; // 停车车位个数
  7157. CFG_PARKING_INFO stuParkingInfo[100]; // 停车车位信息
  7158. BYTE byReserved[512]; // 保留字节
  7159. } CFG_PARKING_GROUP;
  7160. ///@brief 事件类型 EVENT_IVS_PARKING_LOT_STATUS_DETECTION (室外停车位状态检测)对应的规则配置
  7161. typedef struct tagCFG_PARKING_LOT_STATUS_DETECTION
  7162. {
  7163. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7164. BOOL bRuleEnable; // 规则使能
  7165. int nObjectTypeNum; // 相应物体类型个数
  7166. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7167. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7168. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7169. int nPtzPresetId; // 云台预置点编号 0~65535
  7170. int nReportInterval; // 报告时间间隔, 单位秒,范围:[5,3600]
  7171. int nConfirmTime; // 停车状态确定时间阀值, 单位为秒, 范围:[0,20]
  7172. BOOL bSubscribePicture; // 是否订阅图片
  7173. int nParkingGroupNumber; // 室外停车位组个数
  7174. CFG_PARKING_GROUP stuParkingGroup[100]; // 室外停车位组信息
  7175. BYTE byReserved[1024]; // 保留字节
  7176. } CFG_PARKING_LOT_STATUS_DETECTION;
  7177. ///@brief 事件类型 EVENT_IVS_DREGS_UNCOVERED (渣土车未遮盖载货检测事件)对应的规则配置
  7178. typedef struct tagCFG_DREGS_UNCOVERED_DETECTION
  7179. {
  7180. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7181. BOOL bRuleEnable; // 规则使能
  7182. int nObjectTypeNum; // 相应物体类型个数
  7183. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7184. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7185. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7186. int nPtzPresetId; // 云台预置点编号 0~65535
  7187. int nDetectRegionPoint; // 检测区顶点数
  7188. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7189. BYTE byReserved[1020]; // 保留字节
  7190. } CFG_DREGS_UNCOVERED_DETECTION;
  7191. ///@brief 事件类型 EVENT_IVS_VEHICLE_COMPARE (前智能检测+后智能比对)对应的规则配置
  7192. typedef struct tagCFG_VEHICLE_COMPARE
  7193. {
  7194. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7195. BOOL bRuleEnable; // 规则使能
  7196. int nObjectTypeNum; // 相应物体类型个数
  7197. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7198. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7199. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7200. int nPtzPresetId; // 云台预置点编号 0~65535
  7201. int nLinkGroupNum; // 联动布控个数
  7202. CFG_LINKGROUP_INFO stuLinkGroup[MAX_LINK_GROUP_NUM]; // 联动的布控组
  7203. BYTE byReserved[1024]; // 保留字节
  7204. } CFG_VEHICLE_COMPARE;
  7205. ///@brief 轨迹线颜色类型
  7206. typedef enum tagEM_LINE_COLOR_TYPE
  7207. {
  7208. EM_LINE_COLOR_TYPE_UNKNOWN, // 未知
  7209. EM_LINE_COLOR_TYPE_RED, // 红色
  7210. EM_LINE_COLOR_TYPE_YELLOW, // 黄色
  7211. EM_LINE_COLOR_TYPE_BLUE, // 蓝色
  7212. EM_LINE_COLOR_TYPE_GREEN, // 绿色
  7213. EM_LINE_COLOR_TYPE_BLACK, // 黑色
  7214. EM_LINE_COLOR_TYPE_WHITE, // 白色
  7215. }EM_LINE_COLOR_TYPE;
  7216. ///@brief 事件类型EVENT_IVS_HIGH_TOSS_DETECT(高空抛物检测)对应的规则配置
  7217. typedef struct tagCFG_HIGH_TOSS_DETECT_INFO
  7218. {
  7219. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7220. BOOL bRuleEnable; // 规则使能
  7221. int nObjectTypeNum; // 相应物体类型个数
  7222. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7223. int nPtzPresetId; // 云台预置点编号 0~65535
  7224. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7225. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7226. UINT nDetectRegionPoint; // 检测区顶点数
  7227. CFG_POLYGON stuDetectRegion[20]; // 检测区
  7228. CFG_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器,为提高规则判断精度
  7229. BOOL bSizeFilterEnable; // 尺寸过滤器使能
  7230. UINT nSensitivity; // 灵敏度,越高越容易检测, 取值1-10,默认值5
  7231. BOOL bTrackEnable; // 画轨迹使能
  7232. UINT nTrackPointNum; // 轨迹点数量,TrackEnable为true时有效(2~10)
  7233. UINT nTrackLineLevel; // 轨迹线粗细等级,TrackEnable为true时有效(1~10)
  7234. EM_LINE_COLOR_TYPE emColor; // 轨迹线颜色
  7235. BYTE byReserved[3592]; // 保留字节
  7236. } CFG_HIGH_TOSS_DETECT_INFO;
  7237. ///@brief 雷达过滤对象类型
  7238. typedef enum tagCFG_EM_RADAR_OBJECT_FILTER_TYPE
  7239. {
  7240. CFG_EM_RADAR_OBJECT_FILTER_UNKNOWN, // 未知
  7241. CFG_EM_RADAR_OBJECT_FILTER_HUMAN, // 人
  7242. CFG_EM_RADAR_OBJECT_FILTER_VEHICLE // 车
  7243. }CFG_EM_RADAR_OBJECT_FILTER_TYPE;
  7244. ///@brief 雷达警戒线报警类型
  7245. typedef enum tagCFG_EM_RADAR_ALARM_TYPE
  7246. {
  7247. CFG_EM_RADAR_ALARM_UNKNOWN, // 未知
  7248. CFG_EM_RADAR_ALARM_ALARM, // 报警
  7249. CFG_EM_RADAR_ALARM_WARNING, // 预警
  7250. CFG_EM_RADAR_ALARM_SHIELD, // 屏蔽
  7251. }CFG_EM_RADAR_ALARM_TYPE;
  7252. ///@brief 目标限速类型
  7253. typedef enum tagCFG_EM_SPEED_LIMIT_TYPE
  7254. {
  7255. CFG_EM_SPEED_LIMIT_TYPE_UNKNOWN, // 未知
  7256. CFG_EM_SPEED_LIMIT_TYPE_BELOW, // 低于
  7257. CFG_EM_SPEED_LIMIT_TYPE_ABOVE, // 高于
  7258. CFG_EM_SPEED_LIMIT_TYPE_EQUAL, // 等于
  7259. }CFG_EM_SPEED_LIMIT_TYPE;
  7260. ///@brief 目标限速过滤器
  7261. typedef struct CFG_MOVESPEED_FILTER
  7262. {
  7263. BOOL bEnable; // 目标限速使能
  7264. CFG_EM_SPEED_LIMIT_TYPE emSpeedLimitType; // 目标限速类型
  7265. int nSpeedValue; // 目标限速,单位0.01km/h
  7266. BYTE byReserved[500]; // 预留字段
  7267. }CFG_MOVESPEED_FILTER;
  7268. ///@brief 物体过滤器
  7269. typedef struct tagCFG_RADAR_OBJECT_FILTER
  7270. {
  7271. CFG_MOVESPEED_FILTER stuMoveSpeedFilter; // 目标限速过滤器
  7272. CFG_EM_RADAR_OBJECT_FILTER_TYPE emTypes[16]; // 雷达对象类型
  7273. int nTypeNum; // 对象的个数,nTypeNum为0时表示不过滤
  7274. BYTE byReserved[992]; // 预留字段
  7275. }CFG_RADAR_OBJECT_FILTER;
  7276. ///@brief 事件类型EVENT_IVS_RADAR_LINE_DETECTION(雷达警戒线/绊线检测事件)对应的规则配置
  7277. typedef struct tagCFG_RADAR_LINE_DETECTION_INFO
  7278. {
  7279. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7280. BOOL bRuleEnable; // 规则使能
  7281. int nObjectTypeNum; // 相应物体类型个数
  7282. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7283. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7284. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7285. int nPtzPresetId; // 云台预置点编号 0~65535
  7286. int nDetectLineNum; // 警戒线端点个数
  7287. CFG_POLYLINE stuDetectLine[MAX_POLYGON_NUM]; // 警戒线。 折线类型,折线中每个端点的坐标归一化到[0,8192)区间。
  7288. CFG_RADAR_OBJECT_FILTER stuObjectFilter; // 物体过滤器
  7289. EM_CFG_DIRECTION_TYPE emDirection; // 检测方向
  7290. CFG_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器,为提高规则判断精度
  7291. BOOL bSizeFilterEnable; // 尺寸过滤器使能
  7292. BYTE byReserved[4092]; // 保留字节
  7293. } CFG_RADAR_LINE_DETECTION_INFO;
  7294. ///@brief 区域穿越方向
  7295. typedef enum tagCFG_EM_CROSS_DIRECTION_TYPE
  7296. {
  7297. CFG_EM_CROSS_DIRECTION_UNKNOWN, // 未知
  7298. CFG_EM_CROSS_DIRECTION_ENTER, // 进入
  7299. CFG_EM_CROSS_DIRECTION_LEAVE, // 离开
  7300. CFG_EM_CROSS_DIRECTION_BOTH, // 进入离开
  7301. }CFG_EM_CROSS_DIRECTION_TYPE;
  7302. ///@brief 事件类型EVENT_IVS_RADAR_REGION_DETECTION(雷达警戒区检测事件)对应的规则配置
  7303. typedef struct tagCFG_RADAR_REGION_DETECTION_INFO
  7304. {
  7305. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7306. BOOL bRuleEnable; // 规则使能
  7307. int nObjectTypeNum; // 相应物体类型个数
  7308. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7309. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7310. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7311. int nPtzPresetId; // 云台预置点编号 0~65535
  7312. int nDetectRegionNum; // 警戒区端点个数
  7313. CFG_POLYLINE stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区, 多边形类型,多边形中每个端点的坐标归一化到[0,8192)区间。
  7314. CFG_RADAR_OBJECT_FILTER stuObjectFilter; // 物体过滤器
  7315. CFG_EM_CROSS_DIRECTION_TYPE emDirection; // 检测方向
  7316. CFG_EM_RADAR_ALARM_TYPE emAlarmType; // 报警类型
  7317. EM_VIDEO_ANALYSE_ACTION_TYPE emActions[MAX_ACTION_LIST_SIZE]; // 支持的检测物体动作列表
  7318. int nActionNum; // 动作列表元素的个数
  7319. BOOL bSizeFilterEnable; // 尺寸过滤器使能
  7320. CFG_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器,为提高规则判断精度
  7321. BYTE byReserved[4096]; // 保留字节
  7322. } CFG_RADAR_REGION_DETECTION_INFO;
  7323. ///@brief 事件类型EVENT_IVS_SLEEP_DETECT(睡觉检测事件)对应的规则配置
  7324. typedef struct tagCFG_SLEEP_DETECT_INFO
  7325. {
  7326. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7327. BOOL bRuleEnable; // 规则使能
  7328. int nObjectTypeNum; // 相应物体类型个数
  7329. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7330. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7331. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7332. int nPtzPresetId; // 云台预置点编号 0~65535
  7333. UINT nMinDuration; // 最短持续时间,单位:秒, 范围(30S—300S)
  7334. UINT nReportInterval; // 重复报警间隔,单位:秒, 范围(0S—300S)
  7335. UINT nDetectRegionPoint; // 检测区顶点数
  7336. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区,[0,8192)
  7337. UINT nSensitivity; // 灵敏度,值越小灵敏度越低,取值1-10
  7338. BYTE byReserved[4088]; // 保留字节
  7339. }CFG_SLEEP_DETECT_INFO;
  7340. ///@brief 事件类型EVENT_IVS_WALK_AROUND_DETECT(随意走动检测事件)对应的规则配置
  7341. typedef struct tagDEV_CFG_WALK_AROUND_DETECT_INFO
  7342. {
  7343. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7344. BOOL bRuleEnable; // 规则使能
  7345. int nObjectTypeNum; // 相应物体类型个数
  7346. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7347. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7348. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7349. int nPtzPresetId; // 云台预置点编号 0~65535
  7350. UINT nMinDuration; // 最短持续时间,单位:秒, 范围(10S—60S)
  7351. UINT nReportInterval; // 重复报警间隔,单位:秒, 范围(0S—300S)
  7352. UINT nSensitivity; // 灵敏度,值越小灵敏度越低。取值1-10
  7353. UINT nDetectRegionPoint; // 检测区顶点数
  7354. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区,[0,8192)
  7355. BYTE byReserved[4096]; // 保留字节
  7356. }CFG_WALK_AROUND_DETECT_INFO;
  7357. ///@brief 事件类型EVENT_IVS_PLAY_MOBILEPHONE(玩手机事件)对应的规则配置
  7358. typedef struct tagCFG_PLAY_MOBILEPHONE_INFO
  7359. {
  7360. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7361. BOOL bRuleEnable; // 规则使能
  7362. int nObjectTypeNum; // 相应物体类型个数
  7363. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7364. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7365. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7366. int nPtzPresetId; // 云台预置点编号 0~65535
  7367. UINT nMinDuration; // 最短持续时间,单位:秒, 范围(10S—3600S)
  7368. UINT nReportInterval; // 重复报警间隔,单位:秒, 范围(0S—300S)
  7369. UINT nDetectRegionPoint; // 检测区顶点数
  7370. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区,[0,8192)
  7371. UINT nSensitivity; // 灵敏度,值越小灵敏度越低。取值1-10
  7372. BOOL bSizeFilterEnable; // 是否设置尺寸过滤器
  7373. CFG_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器,为提高规则判断精度
  7374. BYTE byReserved[3604]; // 保留字节
  7375. }CFG_PLAY_MOBILEPHONE_INFO;
  7376. ///@brief 事件类型EVENT_IVS_FINANCE_CONTRABAND_DETECT(智慧金融违规物品检测事件)对应的规则配置
  7377. typedef struct tagCFG_FINANCE_CONTRABAND_DETECT_INFO
  7378. {
  7379. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7380. BOOL bRuleEnable; // 规则使能
  7381. int nObjectTypeNum; // 相应物体类型个数
  7382. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7383. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7384. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7385. int nPtzPresetId; // 云台预置点编号 0~65535
  7386. UINT nMinDuration; // 最短持续时间,单位:秒, 范围(5S—60S)
  7387. UINT nReportInterval; // 重复报警间隔,单位:秒, 范围(0S—300S)
  7388. UINT nDetectRegionPoint; // 检测区顶点数
  7389. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区,[0,8192)
  7390. UINT nHumanDetectRegionNum; // 检测人体区域顶点数
  7391. CFG_POLYGON stuHumanDetectRegion[MAX_POLYGON_NUM]; // 检测的人体区域,[0,8192)
  7392. BYTE byReserved[4096]; // 保留字节
  7393. }CFG_FINANCE_CONTRABAND_DETECT_INFO;
  7394. ///@brief 事件类型EVENT_IVS_FINANCE_CASH_TRANSACTION(智慧金融现金交易检测事件)对应的规则配置
  7395. typedef struct tagCFG_FINANCE_CASH_TRANSACTION_INFO
  7396. {
  7397. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7398. BOOL bRuleEnable; // 规则使能
  7399. int nObjectTypeNum; // 相应物体类型个数
  7400. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7401. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7402. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7403. int nPtzPresetId; // 云台预置点编号 0~65535
  7404. UINT nMinDuration; // 最短持续时间,单位:秒, 范围(5S—60S)
  7405. UINT nReportInterval; // 重复报警间隔,单位:秒, 范围(0S—300S)
  7406. UINT nDetectRegionPoint; // 检测区顶点数
  7407. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  7408. UINT nHumanDetectRegionNum; // 检测人体区域顶点数
  7409. CFG_POLYGON stuHumanDetectRegion[MAX_POLYGON_NUM]; // 检测的人体区域
  7410. BYTE byReserved[4096]; // 保留字节
  7411. }CFG_FINANCE_CASH_TRANSACTION_INFO;
  7412. ///@brief 事件类型EVENT_IVS_WALK_DETECTION(走动检测事件)对应的规则配置
  7413. typedef struct tagCFG_WALK_DETECTION_INFO
  7414. {
  7415. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7416. BOOL bRuleEnable; // 规则使能
  7417. int nObjectTypeNum; // 相应物体类型个数
  7418. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7419. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7420. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7421. int nPtzPresetId; // 云台预置点编号 0~65535
  7422. int nDetectRegionNum; // 警戒区端点个数
  7423. CFG_POLYLINE stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区, 多边形类型,多边形中每个端点的坐标归一化到[0,8192)区间。
  7424. UINT nMinDuration; // 最短持续时间, 单位 s, 默认2,范围[1,3600]
  7425. UINT nSensitivity; // 灵敏度灵敏度,[1, 10], 默认值5
  7426. int nMaxHeight; // 最大检测高度,单位cm
  7427. int nMinHeight; // 最小检测高度,单位cm
  7428. UINT nReportInterval; // 重复报警间隔,为0不重复报警, 单位:秒,默认0,范围[0,300]
  7429. BYTE byReserved[4096]; // 保留字节
  7430. } CFG_WALK_DETECTION_INFO;
  7431. ///@brief 事件类型 EVENT_IVS_SMART_KITCHEN_CLOTHES_DETECTION (智慧厨房穿着检测)对应的规则配置
  7432. typedef struct tagCFG_SMART_KITCHEN_CLOTHES_DETECTION_INFO
  7433. {
  7434. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7435. BOOL bRuleEnable; // 规则使能
  7436. int nObjectTypeNum; // 相应物体类型个数
  7437. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7438. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7439. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7440. int nPtzPresetId; // 云台预置点编号 0~65535
  7441. BOOL bMaskEnable; // 是否开启口罩检测 (TRUE:开启 FALSE:关闭)
  7442. BOOL bChefHatEnable; // 是否开启厨师帽检测(TRUE:开启 FALSE:关闭)
  7443. BOOL bChefClothesEnable; // 是否开启厨师服检测(TRUE:开启 FALSE:关闭)
  7444. EM_SUPPORTED_COLOR_LIST_TYPE emChefClothesColors[8]; // 检测符合要求的厨师服颜色不报警
  7445. int nChefClothesColorsNum; // 符合检测不需要报警的厨师服颜色个数
  7446. UINT nReportInterval; // 报告时间间隔,单位秒 [0,600] 默认30,0表示不重复报警
  7447. int nDetectRegionNum; // 警戒区端点个数
  7448. CFG_POLYLINE stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区, 多边形类型,多边形中每个端点的坐标归一化到[0,8192)区间。
  7449. BOOL bSizeFilterEnable; // 是否设置尺寸过滤器
  7450. CFG_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器,为提高规则判断精度
  7451. UINT nSensitivity; // 灵敏度
  7452. UINT nMinDuration; // 最短持续时间,单位:秒0~3600默认值0,表示检测到即上报
  7453. BYTE byReserved[3444]; // 保留字节
  7454. } CFG_SMART_KITCHEN_CLOTHES_DETECTION;
  7455. ///@brief 事件类型EVENT_IVS_BACK_TO_DETECTION(背对检测事件)对应的规则配置
  7456. typedef struct tagCFG_BACK_TO_DETECTION_INFO
  7457. {
  7458. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7459. BOOL bRuleEnable; // 规则使能
  7460. int nObjectTypeNum; // 相应物体类型个数
  7461. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7462. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7463. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7464. int nPtzPresetId; // 云台预置点编号 0~65535
  7465. int nDetectRegionNum; // 警戒区端点个数
  7466. CFG_POLYLINE stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区, 多边形类型,多边形中每个端点的坐标归一化到[0,8192)区间。
  7467. UINT nMinDuration; // 最短持续时间, 单位 s, 默认2,范围[1,3600]
  7468. UINT nSensitivity; // 灵敏度灵敏度,[1, 10], 默认值5
  7469. int nMaxHeight; // 最大检测高度,单位cm
  7470. int nMinHeight; // 最小检测高度,单位cm
  7471. UINT nReportInterval; // 重复报警间隔,为0不重复报警, 单位:秒,默认0,范围[0,300]
  7472. BYTE byReserved[4096]; // 保留字节
  7473. } CFG_BACK_TO_DETECTION_INFO;
  7474. ///@brief 系统联动特写模式
  7475. typedef enum tagEM_CLOSE_UP_MODE
  7476. {
  7477. EM_CLOSE_UP_MODE_UNKNOWN, // 未知
  7478. EM_CLOSE_UP_MODE_NO_LINKAGE, // 不联动
  7479. EM_CLOSE_UP_MODE_TRACK_MODE, // 跟踪模式
  7480. EM_CLOSE_UP_MODE_FIXED_MODE, // 固定模式
  7481. EM_CLOSE_UP_MODE_DESIGNED_REGION_MODE, // 指定区域模式
  7482. } EM_CLOSE_UP_MODE;
  7483. ///@brief 联动码流类型
  7484. typedef enum tagEM_LINKAGE_STREAM_TYPE
  7485. {
  7486. EM_LINKAGE_STREAM_TYPE_UNKNOWN, // 未知
  7487. EM_LINKAGE_STREAM_TYPE_MAIN, // 主码流
  7488. EM_LINKAGE_STREAM_TYPE_EXTRA_1, // 辅码流1
  7489. EM_LINKAGE_STREAM_TYPE_EXTRA_2, // 辅码流2
  7490. EM_LINKAGE_STREAM_TYPE_EXTRA_3, // 辅码流3
  7491. } EM_LINKAGE_STREAM_TYPE;
  7492. ///@brief 事件类型EVENT_IVS_WRITE_ON_THE_BOARD_DETECTION(板书检测事件)对应的规则配置
  7493. typedef struct tagCFG_WRITE_ON_THE_BOARD_DETECTION_INFO
  7494. {
  7495. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7496. BOOL bRuleEnable; // 规则使能
  7497. int nObjectTypeNum; // 相应物体类型个数
  7498. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7499. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7500. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7501. int nPtzPresetId; // 云台预置点编号 0~65535
  7502. int nDetectRegionNum; // 警戒区端点个数
  7503. CFG_POLYLINE stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区, 多边形类型,多边形中每个端点的坐标归一化到[0,8192)区间。
  7504. UINT nMinDuration; // 最短持续时间, 单位 s, 默认2,范围[1,3600]
  7505. UINT nSensitivity; // 灵敏度灵敏度,[1, 10], 默认值5
  7506. int nMaxHeight; // 最大检测高度,单位cm
  7507. int nMinHeight; // 最小检测高度,单位cm
  7508. EM_CLOSE_UP_MODE emCloseUpMode; // 系统联动特写模式, 为UNKNOWN时不下发
  7509. int nChannelID; // 联动的通道号
  7510. EM_LINKAGE_STREAM_TYPE emStreamType; // 联动码流类型
  7511. UINT nDesignedRegionPoint; // 检测区顶点数
  7512. CFG_POLYGON stuDesignedRegion[2]; // 检测区
  7513. BYTE byReserved[4096]; // 保留字节
  7514. } CFG_WRITE_ON_THE_BOARD_DETECTION_INFO;
  7515. ///@brief 事件类型EVENT_IVS_ACTIVITY_ANALYSE(活跃度分析)对应的规则配置
  7516. typedef struct tagCFG_ACTIVITY_ANALYSE_INFO
  7517. {
  7518. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7519. BOOL bRuleEnable; // 规则使能
  7520. int nObjectTypeNum; // 相应物体类型个数
  7521. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7522. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7523. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7524. int nPtzPresetId; // 云台预置点编号 0~65535
  7525. int nDetectRegionNum; // 检测区域端点个数
  7526. CFG_POLYLINE stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域, 多边形类型,多边形中每个端点的坐标归一化到[0,8192)区间。
  7527. BYTE byReserved[4096]; // 保留字节
  7528. } CFG_ACTIVITY_ANALYSE_INFO;
  7529. ///@brief 事件类型 EVENT_IVS_TRAFFIC_MOTOR_OVERLOAD (机动车超载)对应的规则配置
  7530. typedef struct tagCFG_TRAFFIC_MOTOR_OVERLOAD_INFO
  7531. {
  7532. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7533. BOOL bRuleEnable; // 规则使能
  7534. int nObjectTypeNum; // 相应物体类型个数
  7535. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7536. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7537. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7538. int nPtzPresetId; // 云台预置点编号 0~65535
  7539. int nLaneNumber; // 车道号
  7540. int nSnapTruckByPlateColor; // 货车车牌颜色过滤
  7541. // 0-表示只抓拍黄牌货车; 1-表示黄牌、蓝牌货车都抓拍;
  7542. int nSnapNoPlateMotor; // 是否抓拍无牌机动车;
  7543. // 0-表示不抓拍无牌车; 1-表示支持抓拍无牌车
  7544. int nTruckNum; // 机动车超载抓拍货车的车辆类型的个数,不能为0
  7545. EM_CFG_CATEGORY_TYPE emTruckTypes[32]; // 机动车超载抓拍货车的车辆类型
  7546. BYTE byReserved[4096]; // 保留字节
  7547. } CFG_TRAFFIC_MOTOR_OVERLOAD_INFO;
  7548. ///@brief 事件类型 EVENT_IVS_TRAFFIC_PLATE_OCCLUSION (车牌污损)对应的规则配置
  7549. typedef struct tagCFG_TRAFFIC_PLATE_OCCLUSION_INFO
  7550. {
  7551. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7552. BOOL bRuleEnable; // 规则使能
  7553. int nObjectTypeNum; // 相应物体类型个数
  7554. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7555. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7556. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7557. int nPtzPresetId; // 云台预置点编号 0~65535
  7558. int nLaneNumber; // 车道号
  7559. BOOL bSnapMotorcycle; // 是否检测摩托车
  7560. BYTE byReserved[4096]; // 保留字节
  7561. } CFG_TRAFFIC_PLATE_OCCLUSION_INFO;
  7562. ///@brief 事件类型 EVENT_IVS_STEREO_PRAM_DETECTION (婴儿车检测)对应的规则配置
  7563. typedef struct tagCFG_STEREO_PRAM_DETECTION_INFO
  7564. {
  7565. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7566. bool bRuleEnable; // 规则使能
  7567. int nObjectTypeNum; // 相应物体类型个数
  7568. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7569. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7570. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7571. int nPtzPresetId; // 云台预置点编号 0~65535
  7572. int nDetectRegionPoint; // 检测区域顶点数
  7573. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7574. int nMaxHeight; // 最大检测高度,单位:cm
  7575. int nMinHeight; // 最小检测高度,单位:cm
  7576. UINT nMinDuration; // 最短持续时间,单位:秒,范围:1-60
  7577. UINT nReportInterval; // 重复报警间隔,单位:秒,为0不重复报警,范围:0-300
  7578. UINT nSensitivity; // 灵敏度,范围:1-10
  7579. BYTE byReserved[4092]; // 保留字节
  7580. } CFG_STEREO_PRAM_DETECTION_INFO;
  7581. ///@brief 事件类型 EVENT_IVS_STEREO_BIG_BAGGAGE_DETECTION (大件行李箱检测)对应的规则配置
  7582. typedef struct tagCFG_STEREO_BIG_BAGGAGE_DETECTION_INFO
  7583. {
  7584. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7585. bool bRuleEnable; // 规则使能
  7586. int nObjectTypeNum; // 相应物体类型个数
  7587. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7588. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7589. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7590. int nPtzPresetId; // 云台预置点编号 0~65535
  7591. int nDetectRegionPoint; // 检测区域顶点数
  7592. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7593. int nMaxHeight; // 最大检测高度,单位:cm
  7594. int nMinHeight; // 最小检测高度,单位:cm
  7595. UINT nMinDuration; // 最短持续时间,单位:秒,范围:1-60
  7596. UINT nReportInterval; // 重复报警间隔,单位:秒,为0不重复报警,范围:0-300
  7597. UINT nSensitivity; // 灵敏度,范围:1-10
  7598. BYTE byReserved[4092]; // 保留字节
  7599. } CFG_STEREO_BIG_BAGGAGE_DETECTION_INFO;
  7600. ///@brief 逃票检测动作类型
  7601. typedef enum tagEM_CFG_STEREO_TICKET_ACTION_TYPE
  7602. {
  7603. EM_CFG_STEREO_TICKET_ACTION_TYPE_UNKNOWN, // 未知
  7604. EM_CFG_STEREO_TICKET_ACTION_TYPE_FOLLOW, // 尾随
  7605. EM_CFG_STEREO_TICKET_ACTION_TYPE_SQUAT, // 下蹲
  7606. EM_CFG_STEREO_TICKET_ACTION_TYPE_CLIMB, // 翻越
  7607. } EM_CFG_STEREO_TICKET_ACTION_TYPE;
  7608. ///@brief 事件类型 EVENT_IVS_STEREO_TICKET_EVADE_DETECTION (逃票检测)对应的规则配置
  7609. typedef struct tagCFG_STEREO_TICKET_EVADE_DETECTION_INFO
  7610. {
  7611. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7612. bool bRuleEnable; // 规则使能
  7613. int nObjectTypeNum; // 相应物体类型个数
  7614. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7615. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7616. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7617. int nPtzPresetId; // 云台预置点编号 0~65535
  7618. int nDetectRegionPoint; // 检测区域顶点数
  7619. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7620. int nMaxHeight; // 最大检测高度,单位:cm
  7621. int nMinHeight; // 最小检测高度,单位:cm
  7622. UINT nMinDuration; // 最短持续时间,单位:秒,范围:1-60
  7623. UINT nReportInterval; // 重复报警间隔,单位:秒,为0不重复报警,范围:0-300
  7624. UINT nSensitivity; // 灵敏度,范围:1-10
  7625. int nActionNum; // 事件动作个数
  7626. EM_CFG_STEREO_TICKET_ACTION_TYPE emActionType[8]; // 事件动作类型, 不配置默认为尾随
  7627. BYTE byReserved[4096]; // 保留字节
  7628. } CFG_STEREO_TICKET_EVADE_DETECTION_INFO;
  7629. ///@brief 事件类型 EVENT_IVS_TRAFFIC_ROAD_CONSTRUCTION (交通道路施工检测事件) 对应的规则配置
  7630. typedef struct tagCFG_TRAFFIC_ROAD_CONSTRUCTION_INFO
  7631. {
  7632. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7633. BOOL bRuleEnable; // 规则使能
  7634. int nObjectTypeNum; // 相应物体类型个数
  7635. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7636. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7637. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7638. int nPtzPresetId; // 云台预置点编号,范围0~65535
  7639. int nDetectRegionNum; // 检测区域顶点数, stuDetectRegion 个数
  7640. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7641. int nMinDuration; // 最短持续时间,单位:秒,范围0~65535
  7642. int nSensitivity; // 灵敏度,范围1-10
  7643. UINT nLaneNo; // 车道编号
  7644. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
  7645. // 如下两种情况不适合变倍
  7646. // 1. 车速较快场合,变倍会导致跟踪不及时
  7647. // 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  7648. // 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
  7649. UINT nRepeatAlarmTime; // 重复报警时间,单位:秒,范围0-3600
  7650. BYTE byReserved[4096]; // 保留字节
  7651. } CFG_TRAFFIC_ROAD_CONSTRUCTION_INFO;
  7652. ///@brief 事件类型 EVENT_IVS_TRAFFIC_ROAD_BLOCK (交通路障检测事件) 对应的规则配置
  7653. typedef struct tagCFG_TRAFFIC_ROAD_BLOCK_INFO
  7654. {
  7655. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7656. BOOL bRuleEnable; // 规则使能
  7657. int nObjectTypeNum; // 相应物体类型个数
  7658. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7659. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7660. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7661. int nPtzPresetId; // 云台预置点编号,范围0~65535
  7662. int nDetectRegionNum; // 检测区域顶点数, stuDetectRegion 个数
  7663. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7664. int nMinDuration; // 最短持续时间,单位:秒,范围0~65535
  7665. int nSensitivity; // 灵敏度,范围1-10
  7666. UINT nLaneNo; // 车道编号
  7667. BOOL bZoomEnable; // 变倍抓拍,违停球做规则判断时,默认会变倍
  7668. // 如下两种情况不适合变倍
  7669. // 1. 车速较快场合,变倍会导致跟踪不及时
  7670. // 2. 车牌很近,由于机芯的光轴畸变会导致车牌过大,算法无法识别
  7671. // 在以上这两种情况下,需要关闭变倍。是否要关闭变倍取决于现场情况,属于比较专业的配置
  7672. UINT nRepeatAlarmTime; // 重复报警时间,单位:秒,范围0-3600
  7673. BYTE byReserved[4096]; // 保留字节
  7674. } CFG_TRAFFIC_ROAD_BLOCK_INFO;
  7675. ///@brief 检测区域
  7676. typedef struct tagCFG_VIOLENT_THROW_REGION
  7677. {
  7678. char szRegionName[64]; // 暴力抛物检测区域名称
  7679. CFG_POLYGON stuDetectRegion[4]; // 暴力抛物检测区域
  7680. int nDetectRegionNum; // 暴力抛物检测区域顶点数
  7681. BYTE byReserved[252]; // 预留字段
  7682. } CFG_VIOLENT_THROW_REGION;
  7683. ///@brief 事件类型 EVENT_IVS_VIOLENT_THROW_DETECTION (暴力抛物检测) 对应的规则配置
  7684. typedef struct tagCFG_VIOLENT_THROW_DETECTION_INFO
  7685. {
  7686. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7687. BOOL bRuleEnable; // 规则使能
  7688. int nObjectTypeNum; // 相应物体类型个数
  7689. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7690. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7691. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7692. int nPtzPresetId; // 云台预置点编号,范围0~65535
  7693. int nRegionNum; // 检测区域个数
  7694. CFG_VIOLENT_THROW_REGION stuRegion[4]; // 检测区域
  7695. int nSensitivity; // 灵敏度,范围1-10
  7696. BYTE byReserved[2044]; // 保留字节
  7697. } CFG_VIOLENT_THROW_DETECTION_INFO;
  7698. ///@brief 目标规则
  7699. typedef struct tagCFG_PORTRAIT_FACE_INFO
  7700. {
  7701. BOOL bSnapEnable; // 是否开启抓图
  7702. UINT nSensitivity; // 目标抓拍灵敏度, 数字越大越灵敏, 范围[0,100]
  7703. UINT nMinQuality; // 目标质量阈值, 范围[1,100]
  7704. BOOL bFeatureEnable; // 是否开启目标属性识别
  7705. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  7706. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  7707. int nFeatureListNum; // 目标属性个数
  7708. EM_FACEFEATURE_TYPE emFeatureList[32]; // 目标属性列表, bFeatureEnable为true有效
  7709. BOOL bFeatureFilter; // 在目标属性开启前提下,如果目标图像质量太差,是否不上报属性
  7710. BOOL bFaceEnable; // 是否开启目标检测
  7711. BYTE byReserved[256]; // 预留字节
  7712. } CFG_PORTRAIT_FACE_INFO;
  7713. ///@brief 人体规则
  7714. typedef struct tagCFG_PORTRAIT_BODY_INFO
  7715. {
  7716. BOOL bSnapEnable; // 是否开启抓图
  7717. UINT nSensitivity; // 人体抓拍灵敏度, 数字越大越灵敏, 范围[0,100]
  7718. UINT nMinQuality; // 人体质量阈值, 范围[1,100]
  7719. BOOL bFeatureEnable; // 是否开启人体属性识别
  7720. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  7721. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  7722. int nFeatureListNum; // 人体属性个数
  7723. EM_FACEFEATURE_TYPE emFeatureList[32]; // 人体属性列表, bFeatureEnable为true有效
  7724. BOOL bFeatureFilter; // 在人体属性开启前提下,如果人体图像质量太差,是否不上报属性
  7725. BOOL bBodyEnable; // 是否开启人体检测
  7726. BYTE byReserved[256]; // 预留字节
  7727. } CFG_PORTRAIT_BODY_INFO;
  7728. ///@brief 事件类型 EVENT_IVS_PORTRAIT_DETECTION (人像检测) 对应的规则配置
  7729. typedef struct tagCFG_PORTRAIT_DETECTION_INFO
  7730. {
  7731. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7732. BOOL bRuleEnable; // 规则使能
  7733. int nObjectTypeNum; // 相应物体类型个数
  7734. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7735. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7736. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7737. int nPtzPresetId; // 云台预置点编号,范围0~65535
  7738. CFG_PORTRAIT_FACE_INFO stuFaceInfo; // 目标规则
  7739. CFG_PORTRAIT_BODY_INFO stuBodyInfo; // 人体规则
  7740. int nMinDuration; // 最短触发时间,单位:秒
  7741. int nTriggerTargets; // 触发报警的目标个数
  7742. UINT nReportInterval; // 重复报警间隔,单位:秒, 范围0~600;等于0表示不重复报警
  7743. BOOL bFilterUnAliveEnable; // 是否开启过滤非活体
  7744. UINT nSnapThreshold; // 目标抓拍过滤阈值,数值越高过滤强度越大, 范围[1,100]
  7745. UINT nLiveSensitivity; // 活体灵敏度,灵敏度越大判为活体概率越大,范围[1,100]
  7746. BYTE byReserved[4096]; // 保留字节
  7747. } CFG_PORTRAIT_DETECTION_INFO;
  7748. ///@brief 检测方向
  7749. typedef enum tagCFG_DIRECTION_TYPE
  7750. {
  7751. CFG_DIRECTION_TYPE_UNKNOWN, // 未知
  7752. CFG_DIRECTION_TYPE_LEFT_TO_RIGHT, // 左到右
  7753. CFG_DIRECTION_TYPE_RIGHT_TO_LEFT, // 右到左
  7754. }CFG_DIRECTION_TYPE;
  7755. ///@brief 事件类型 EVENT_IVS_TRAFFICFLOW_FOR_PRMA 全景交通车流 对应的规则配置
  7756. typedef struct tagCFG_TRAFFICFLOW_FOR_PRMA_INFO
  7757. {
  7758. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7759. BOOL bRuleEnable; // 规则使能
  7760. int nObjectTypeNum; // 相应物体类型个数
  7761. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7762. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7763. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7764. int nPtzPresetId; // 云台预置点编号,范围0~65535
  7765. CFG_POLYGON stuDetectLine[2]; // 检测线
  7766. int nLane; // 车道号
  7767. int nPeriod; // 统计周期,单位min
  7768. CFG_DIRECTION_TYPE emDirection; // 检测方向
  7769. int nMaxVehicleNums; // 统计周期内最大的车流量,若超过改流量则触发过流报警
  7770. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  7771. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  7772. BYTE byReserved[4096]; // 保留字节
  7773. }CFG_TRAFFICFLOW_FOR_PRMA_INFO;
  7774. ///@brief 事件类型 EVENT_IVS_TRUCKNOTCLEAN_FOR_PRMA 工程车未清洗 对应的规则配置
  7775. typedef struct tagCFG_TRUCKNOTCLEAN_FOR_PRMA_INFO
  7776. {
  7777. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7778. BOOL bRuleEnable; // 规则使能
  7779. int nObjectTypeNum; // 相应物体类型个数
  7780. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7781. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7782. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7783. int nPtzPresetId; // 云台预置点编号,范围0~65535
  7784. CFG_POLYGON stuDetectRegion[20]; // 检测区域
  7785. int nDetectRegionNum; // 检测区域顶点数
  7786. int nCleanTime; // 清洗时间,单位min
  7787. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  7788. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  7789. BYTE byReserved[4096]; // 保留字节
  7790. }CFG_TRUCKNOTCLEAN_FOR_PRMA_INFO;
  7791. ///@brief 事件类型 EVENT_IVS_ROADOCCUPATION_BY_FOREIGNOBJECT 异物占道事件
  7792. typedef struct tagCFG_ROADOCCUPATION_BY_FOREIGNOBJECT
  7793. {
  7794. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7795. BOOL bRuleEnable; // 规则使能
  7796. int nObjectTypeNum; // 相应物体类型个数
  7797. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7798. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7799. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7800. int nPtzPresetId; // 云台预置点编号,范围0~65535
  7801. CFG_POLYGON stuDetectRegion[20]; // 检测区域
  7802. int nDetectRegionNum; // 检测区域顶点数
  7803. int nAlarmInterval; // 报警间隔时间,单位min
  7804. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  7805. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  7806. BYTE byReserved[4096]; // 保留字节
  7807. }CFG_ROADOCCUPATION_BY_FOREIGNOBJECT_INFO;
  7808. ///@brief 当前作业规则类型
  7809. typedef enum tagEM_WORK_RULE_TYPE
  7810. {
  7811. EM_WORK_RULE_TYPE_UNKNOWN, // 未知
  7812. EM_WORK_RULE_TYPE_NOWORKER, // 脱岗检测
  7813. EM_WORK_RULE_TYPE_SINGLEWORKER, // 单人作业
  7814. EM_WORK_RULE_TYPE_NOWORKLEADER, // 工作负责人脱岗检测
  7815. } EM_WORK_RULE_TYPE;
  7816. ///@brief 条件表达式
  7817. typedef enum tagEM_CONDITIONEXPR
  7818. {
  7819. EM_CONDITIONEXPR_UNKNWON, // 未知
  7820. EM_CONDITIONEXPR_GREATER, // 大于
  7821. EM_CONDITIONEXPR_LESS, // 小于
  7822. EM_CONDITIONEXPR_EQUAL, // 等于
  7823. } EM_CONDITIONEXPR;
  7824. ///@brief 作业统计描述信息
  7825. typedef struct tagCFG_WORKSTATDESCRIPTION_INFO
  7826. {
  7827. NET_WORK_CLOTHES_DESCRIPTION stuWorkClothesDescription; // 工装特征
  7828. UINT nTriggerNum; // 触发报警的人员数量
  7829. EM_CONDITIONEXPR emConditionExpr; // 条件表达式, 和 nTriggerNum 做比较
  7830. UINT nStatInterval; // 统计时长,单位秒,范围: [1-86400]
  7831. UINT nAlarmTime; // 事件持续多长时间后报警,单位:秒, 如值为600表示,统计10分钟内符合工装特征的人员
  7832. UINT nAlarmRepeatTime; // 重复报警时间间隔,单位:秒
  7833. UINT nSensitivity; // 灵敏度,值越小灵敏度越低。取值1-10
  7834. } CFG_WORKSTATDESCRIPTION_INFO;
  7835. ///@brief 事件类型 EVENT_IVS_WORKSTATDETECTION (作业统计事件)对应的规则配置
  7836. typedef struct tagCFG_WORKSTATDETECTION_INFO
  7837. {
  7838. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7839. bool bRuleEnable; // 规则使能
  7840. int nObjectTypeNum; // 相应物体类型个数
  7841. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7842. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7843. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7844. int nPtzPresetId; // 云台预置点编号 0~65535
  7845. UINT nDectRegionNumber; // 检测区域号
  7846. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7847. int nDetectRegionPoint; // 检测区域顶点数
  7848. int nRuleNum; // 当前作业规则个数
  7849. EM_WORK_RULE_TYPE emWorkRuleType[32]; // 当前作业规则类型
  7850. CFG_WORKSTATDESCRIPTION_INFO stuWorkStatDescription[64]; // 作业统计描述信息
  7851. int nWorkStatDescriptionNum; // 作业统计描述信息个数
  7852. BYTE byReserved[4092]; // 保留字节
  7853. } CFG_WORKSTATDETECTION_INFO;
  7854. ///@brief 辅助驾驶工作模式
  7855. typedef enum EM_DRIVEASSISTANT_WORKMODE
  7856. {
  7857. EM_DRIVEASSISTANT_WORKMODE_UNKNOWN, // 未知
  7858. EM_DRIVEASSISTANT_WORKMODE_DAY, // 白天模式
  7859. EM_DRIVEASSISTANT_WORKMODE_NIGHT, // 夜晚模式
  7860. }EM_DRIVEASSISTANT_WORKMODE;
  7861. ///@brief 事件类型 EVENT_IVS_PARKING_DETECTION_FOR_PRMA (全景异常停车事件)对应的规则配置
  7862. typedef struct tagCFG_PARKING_DETECTION_FOR_PRMA_INFO
  7863. {
  7864. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7865. BOOL bRuleEnable; // 规则使能
  7866. int nObjectTypeNum; // 相应物体类型个数
  7867. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7868. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7869. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7870. int nPtzPresetId; // 云台预置点编号 0~65535
  7871. int nDetectRegionPoint; // 检测区域顶点数
  7872. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7873. bool abMinDuration; // nMinDuration是否有效
  7874. bool abMaxVehicleNums; // nMaxVehicleNums是否有效
  7875. bool abAlarmInterval; // nAlarmInterval是否有效
  7876. BYTE byReserved1[1]; // 对齐
  7877. UINT nMinDuration; // 最短持续时间,单位:秒, 范围:0~65535
  7878. UINT nMaxVehicleNums; // 检测区域车辆阈值
  7879. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  7880. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  7881. UINT nAlarmInterval; // 报警间隔时间,单位:秒
  7882. BYTE byReserved[4092]; // 保留字节
  7883. } CFG_PARKING_DETECTION_FOR_PRMA_INFO;
  7884. ///@brief 事件类型 EVENT_IVS_TRAFFIC_JAM_FOR_PRMA (全景交通拥堵事件)对应的规则配置
  7885. typedef struct tagCFG_TRAFFIC_JAM_FOR_PRMA_INFO
  7886. {
  7887. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7888. BOOL bRuleEnable; // 规则使能
  7889. int nObjectTypeNum; // 相应物体类型个数
  7890. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7891. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7892. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7893. int nPtzPresetId; // 云台预置点编号 0~65535
  7894. int nDetectRegionPoint; // 检测区域顶点数
  7895. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7896. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 检测线
  7897. int nDetectLinePoint; // 检测线顶点数
  7898. bool abMinVehicleNums; // nMinVehicleNums是否有效
  7899. bool abBySpeed; // nSpeed是否有效
  7900. bool abByTimeAndNums; // nNums和nTime是否有效
  7901. bool abAlarmInterval; // nAlarmInterval是否有效
  7902. UINT nMinVehicleNums; // 拥堵时,区域内最少的车辆数,单位:辆, 范围:0~65535
  7903. UINT nSpeed; // 车流量速度,单位: 辆/分钟。
  7904. UINT nNums; // 车流统计车辆,单位: 量
  7905. UINT nTime; // 车流统计间隔时间,单位: 分钟
  7906. UINT nAlarmInterval; // 报警间隔时间,单位:秒
  7907. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  7908. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  7909. BYTE byReserved[4096]; // 保留字节
  7910. } CFG_TRAFFIC_JAM_FOR_PRMA_INFO;
  7911. ///@brief 事件类型 EVENT_IVS_TRAFFIC_ACCIDENT_FOR_PRMA (全景交通事故事件)对应的规则配置
  7912. typedef struct tagCFG_TRAFFIC_ACCIDENT_FOR_PRMA_INFO
  7913. {
  7914. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7915. BOOL bRuleEnable; // 规则使能
  7916. int nObjectTypeNum; // 相应物体类型个数
  7917. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7918. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7919. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7920. int nPtzPresetId; // 云台预置点编号 0~65535
  7921. int nDetectRegionPoint; // 检测区域顶点数
  7922. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7923. bool abMinDuration; // nMinDuration是否有效
  7924. bool abAlarmInterval; // nAlarmInterval是否有效
  7925. BYTE byReserved1[2]; // 对齐
  7926. UINT nMinDuration; // 最短持续时间,单位:秒, 范围:0~65535
  7927. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  7928. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  7929. UINT nAlarmInterval; // 报警间隔时间,单位:秒
  7930. BYTE byReserved[4096]; // 保留字节
  7931. } CFG_TRAFFIC_ACCIDENT_FOR_PRMA_INFO;
  7932. ///@brief 事件类型 EVENT_IVS_TRAFFIC_SPECIAL_VEHICLE_DETECT (特殊车辆检测)对应的规则配置
  7933. typedef struct tagCFG_TRAFFIC_SPECIAL_VEHICLE_DETECT_INFO
  7934. {
  7935. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7936. BOOL bRuleEnable; // 规则使能
  7937. int nObjectTypeNum; // 相应物体类型个数
  7938. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7939. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7940. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7941. int nPtzPresetId; // 云台预置点编号 0~65535
  7942. int nDetectRegionNum; // 检测区域顶点数
  7943. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7944. UINT nMinDuration; // 最短持续时间, 范围:0-3600s, 单位:秒
  7945. UINT nSensitivity; // 灵敏度, 配置0即为默认值,数值越大代表灵敏度越高, 取值1-10
  7946. EM_CFG_CATEGORY_TYPE emVehicleType[64]; // 特殊车辆类型列表
  7947. int nVehicleTypeNum; // 特殊车辆个数
  7948. BYTE byReserved[4092]; // 保留字节
  7949. } CFG_TRAFFIC_SPECIAL_VEHICLE_DETECT_INFO;
  7950. ///@brief 事件类型 EVENT_IVS_TRAFFIC_NONMOTOR (交通非机动车事件检测)对应的规则配置
  7951. typedef struct tagCFG_TRAFFIC_NONMOTOR_INFO
  7952. {
  7953. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7954. BOOL bRuleEnable; // 规则使能
  7955. int nObjectTypeNum; // 相应物体类型个数
  7956. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7957. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7958. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7959. int nPtzPresetId; // 云台预置点编号 0~65535
  7960. int nDetectRegionPoint; // 检测区域顶点数
  7961. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7962. UINT nMinDuration; // 最短持续时间,单位:秒, 范围:0-3600s
  7963. int nSensitivity; // 灵敏度,范围1-10
  7964. BYTE byReserved[4096]; // 保留字节
  7965. } CFG_TRAFFIC_NONMOTOR_INFO;
  7966. ///@brief 事件类型 EVENT_IVS_TRAFFIC_BOARD (交通违章上下客事件检测)对应的规则配置
  7967. typedef struct tagCFG_TRAFFIC_BOARD_INFO
  7968. {
  7969. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7970. BOOL bRuleEnable; // 规则使能
  7971. int nObjectTypeNum; // 相应物体类型个数
  7972. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7973. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7974. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7975. int nPtzPresetId; // 云台预置点编号 0~65535
  7976. int nDetectRegionPoint; // 检测区域顶点数
  7977. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7978. UINT nMinDuration; // 最短持续时间,单位:秒, 范围:0-3600s
  7979. int nSensitivity; // 灵敏度,范围1-10
  7980. BYTE byReserved[4096]; // 保留字节
  7981. } CFG_TRAFFIC_BOARD_INFO;
  7982. ///@brief 事件类型 EVENT_IVS_TRAFFIC_VISIBILITY (交通能见度事件检测)对应的规则配置
  7983. typedef struct tagCFG_TRAFFIC_VISIBILITY_INFO
  7984. {
  7985. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  7986. BOOL bRuleEnable; // 规则使能
  7987. int nObjectTypeNum; // 相应物体类型个数
  7988. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  7989. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7990. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  7991. int nPtzPresetId; // 云台预置点编号 0~65535
  7992. int nDetectRegionPoint; // 检测区域顶点数
  7993. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7994. UINT nMinDuration; // 最短持续时间,单位:秒, 范围:0-3600s
  7995. int nSensitivity; // 灵敏度,范围1-10
  7996. BYTE byReserved[4096]; // 保留字节
  7997. } CFG_TRAFFIC_VISIBILITY_INFO;
  7998. ///@brief 事件类型 EVENT_IVS_TRAFFIC_VEHICLE_CLEANLINESS (交通车辆清洁度检测事件检测)对应的规则配置
  7999. typedef struct tagCFG_TRAFFIC_VEHICLE_CLEANLINESS_INFO
  8000. {
  8001. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8002. BOOL bRuleEnable; // 规则使能
  8003. int nObjectTypeNum; // 相应物体类型个数
  8004. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8005. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8006. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8007. int nPtzPresetId; // 云台预置点编号 0~65535
  8008. int nDetectRegionPoint; // 检测区域顶点数
  8009. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  8010. UINT nMinDuration; // 最短持续时间,单位:秒, 范围:0-3600s
  8011. int nSensitivity; // 灵敏度,范围1-10
  8012. BYTE byReserved[4096]; // 保留字节
  8013. } CFG_TRAFFIC_VEHICLE_CLEANLINESS_INFO;
  8014. ///@brief 事件类型 EVENT_IVS_ANYTHING_DETECT 全物体类型检测事件对应的规则配置
  8015. typedef struct tagCFG_ANYTHING_DETECT_INFO
  8016. {
  8017. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8018. BOOL bRuleEnable; // 规则使能
  8019. int nObjectTypeNum; // 相应物体类型个数
  8020. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8021. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8022. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8023. int nPtzPresetId; // 云台预置点编号 0~65535
  8024. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  8025. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  8026. int nSensitivity; // 灵敏度,范围1-10
  8027. BOOL bSnapObjRectEnable; // 抓图叠加轨迹框功能使能开关
  8028. BYTE byReserved[4096]; // 保留字节
  8029. }CFG_ANYTHING_DETECT_INFO;
  8030. ///@brief 辅助驾驶压线报警
  8031. typedef struct tagCFG_PRESSLINE_INFO
  8032. {
  8033. BOOL bEnable; // 使能
  8034. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8035. int nSensitivity; // 灵敏度 取值范围: -30~30, 默认值为0
  8036. int nAlarmInterval; // 时间间隔 取值范围:0-65536,默认值为60
  8037. int nAlarmSpeed; // 报警触发速度 取值范围:0-200,默认值为30 KM/s
  8038. int nAlarmReportSpeed; // 报警上报速度 取值范围:0-200,默认值为30
  8039. BYTE byReserved[1024]; // 保留
  8040. }CFG_PRESSLINE_INFO;
  8041. ///@brief 辅助驾驶前向碰撞预警
  8042. typedef struct tagCFG_FORWARDCOLLIDE_INFO
  8043. {
  8044. BOOL bEnable; // 使能
  8045. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8046. float fSensitivity; // 灵敏度 取值范围: -30~30, 默认值为2.7
  8047. int nAlarmInterval; // 时间间隔 取值范围:0-65536,默认值为60
  8048. int nAlarmSpeed; // 报警触发速度 取值范围:0-200,默认值为30 KM/s
  8049. int nAlarmReportSpeed; // 报警上报速度 取值范围:0-200,默认值为30
  8050. BYTE byReserved[1024]; // 保留
  8051. }CFG_FORWARDCOLLIDE_INFO;
  8052. ///@brief 辅助驾驶车距过近预警
  8053. typedef struct tagCFG_DISTANCE_CLOSE_INFO
  8054. {
  8055. BOOL bEnable; // 使能
  8056. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8057. float fSensitivity; // 灵敏度 取值范围: -30~30, 默认值为 1.5
  8058. int nAlarmInterval; // 时间间隔 取值范围:0-65536,默认值为60
  8059. int nAlarmSpeed; // 报警触发速度 取值范围:0-200,默认值为30 KM/s
  8060. int nAlarmReportSpeed; // 报警上报速度 取值范围:0-200,默认值为30
  8061. BYTE byReserved[1024]; // 保留
  8062. }CFG_DISTANCE_CLOSE_INFO;
  8063. ///@brief 斑马线礼让行人
  8064. typedef struct tagCFG_PEDESTRIAN_ON_ZEBRA_INFO
  8065. {
  8066. BOOL bEnable; // 使能
  8067. float fSensitivity; // 灵敏度 取值范围: 0.0-10.0, 默认值为 1.5
  8068. UINT nAlarmInterval; // 时间间隔 取值范围:0-65536,默认值为60
  8069. BYTE byReserved[1024]; // 保留
  8070. }CFG_PEDESTRIAN_ON_ZEBRA_INFO;
  8071. ///@brief 绿灯检测
  8072. typedef struct tagCFG_TRAFFIC_LIGHT_STATE_INFO
  8073. {
  8074. BOOL bEnable; // 使能
  8075. float fSensitivity; // 灵敏度 取值范围: 0.0-10.0, 默认值为 1.5
  8076. UINT nAlarmInterval; // 时间间隔 取值范围:0-65536,默认值为60
  8077. BYTE byReserved[1024]; // 保留
  8078. }CFG_TRAFFIC_LIGHT_STATE_INFO;
  8079. ///@brief 前车起步
  8080. typedef struct tagCFG_FRONT_CAR_GO_INFO
  8081. {
  8082. BOOL bEnable; // 使能
  8083. float fSensitivity; // 灵敏度 取值范围: 0.0-10.0, 默认值为 1.5
  8084. UINT nAlarmInterval; // 时间间隔 取值范围:0-65536,默认值为60
  8085. BYTE byReserved[1024]; // 保留
  8086. }CFG_FRONT_CAR_GO_INFO;
  8087. ///@brief 斑马线行人预警
  8088. typedef struct tagCFG_PEDESTRIAN_ON_ZEBRA_DISCOURTESY_INFO
  8089. {
  8090. BOOL bEnable; // 使能
  8091. float fSensitivity; // 灵敏度 取值范围: 0.0-10.0, 默认值为 1.5
  8092. UINT nAlarmInterval; // 时间间隔 取值范围:0-65536,默认值为60
  8093. BYTE byReserved[1024]; // 保留
  8094. }CFG_PEDESTRIAN_ON_ZEBRA_DISCOURTESY_INFO;
  8095. ///@brief 限速牌相关配置
  8096. typedef struct tagCFG_SPEED_LIMIT_PLATE_INFO
  8097. {
  8098. BOOL bEnable; // 使能
  8099. float fSensitivity; // 灵敏度 取值范围: 0.0-10.0, 默认值为 1.5
  8100. UINT nAlarmInterval; // 时间间隔 取值范围:0-65536,默认值为60
  8101. BYTE byReserved[1024]; // 保留
  8102. }CFG_SPEED_LIMIT_PLATE_INFO;
  8103. ///@brief 事件类型 EVENT_IVS_DRIVE_ASSISTANT 辅助驾驶 对应的规则配置
  8104. typedef struct tagCFG_DRIVE_ASSISTANT_INFO
  8105. {
  8106. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8107. BOOL bRuleEnable; // 规则使能
  8108. int nObjectTypeNum; // 相应物体类型个数
  8109. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8110. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8111. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8112. int nPtzPresetId; // 云台预置点编号 0~65535
  8113. int nWorkMode; // 工作模式 0白天模式,1夜晚模式
  8114. CFG_PRESSLINE_INFO stuPressLine; // 压线报警
  8115. CFG_FORWARDCOLLIDE_INFO stuForwardCollide; // 前向碰撞预警
  8116. CFG_DISTANCE_CLOSE_INFO stuTooClose; // 车距过近预警
  8117. int nPicNums; // 报警多抓张数 取值范围[0,10], 默认3
  8118. int nPicInterval; // 报警多抓时间间隔 取值范围[100, 10000],默认:3000
  8119. CFG_PEDESTRIAN_ON_ZEBRA_INFO stuPedestrianOnZebraCfg; // 斑马线礼让行人
  8120. CFG_TRAFFIC_LIGHT_STATE_INFO stuTrafficLightStateCfg; // 绿灯检测
  8121. CFG_FRONT_CAR_GO_INFO stuFrontCarGoCfg; // 前车起步
  8122. CFG_PEDESTRIAN_ON_ZEBRA_DISCOURTESY_INFO stuPedestrianOnZebraDiscourtesyCfg; // 斑马线行人预警
  8123. CFG_SPEED_LIMIT_PLATE_INFO stuSpeedLimitPlateCfg; // 限速牌相关配置
  8124. BYTE byReserved[4092];
  8125. }CFG_DRIVE_ASSISTANT_INFO;
  8126. ///@brief 疲劳驾驶报警配置
  8127. typedef struct tagCFG_FATIGUE_DRIVING
  8128. {
  8129. BOOL bEnable; // 使能
  8130. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8131. int nEyesClosedTime; // 闭眼持续时间 取值范围:0-10,默认值为2
  8132. int nYawningTime; // 哈欠持续时间 取值范围:0-10,默认值为2
  8133. int nAlarmInterval; // 时间间隔, 取值范围:0-65536,默认值为60
  8134. int nAlarmSpeed; // 报警触发速度, 取值范围:0-200,默认值为30
  8135. int nAlarmReportSpeed; // 报警上报速度, 取值范围:0-200,默认值为30
  8136. BYTE byReserved[1024]; // 保留
  8137. }CFG_FATIGUE_DRIVING;
  8138. ///@brief 分心驾驶报警配置 DistractCfg
  8139. typedef struct tagCFG_DISTRACT_DRIVING
  8140. {
  8141. BOOL bEnable; // 使能
  8142. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8143. int nBowDownTime; // 低头持续时间 取值范围:0-10,默认值为2
  8144. int nGlanceRightAndLeftTime;// 左顾右盼持续时间 取值范围:0-10,默认值为2
  8145. int nAlarmInterval; // 时间间隔, 取值范围:0-65536,默认值为60
  8146. int nAlarmSpeed; // 报警触发速度, 取值范围:0-200,默认值为30
  8147. int nAlarmReportSpeed; // 报警上报速度, 取值范围:0-200,默认值为30
  8148. BYTE byReserved[1024]; // 保留
  8149. }CFG_DISTRACT_DRIVING;
  8150. ///@brief 打电话报警配置
  8151. typedef struct tagCFG_DRIVEING_CALLING
  8152. {
  8153. BOOL bEnable; // 使能
  8154. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8155. int nBowDownTime; // 低头持续时间 取值范围:0-10,默认值为2
  8156. int nCallingTime; // 打电话持续时间, 取值范围:0-10,默认值为2
  8157. int nAlarmInterval; // 时间间隔, 取值范围:0-65536,默认值为60
  8158. int nAlarmSpeed; // 报警触发速度, 取值范围:0-200,默认值为30
  8159. int nAlarmReportSpeed; // 报警上报速度, 取值范围:0-200,默认值为30
  8160. BYTE byReserved[1024]; // 保留
  8161. }CFG_DRIVEING_CALLING;
  8162. ///@brief 离岗报警配置
  8163. typedef struct tagCFG_DRIVE_LEAVE_INFO
  8164. {
  8165. BOOL bEnable; // 使能
  8166. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8167. int nLeaveTime; // 离岗持续时间, 取值范围:0-10,默认值为2
  8168. int nAlarmInterval; // 时间间隔, 取值范围:0-65536,默认值为60
  8169. int nAlarmSpeed; // 报警触发速度, 取值范围:0-200,默认值为30
  8170. int nAlarmReportSpeed; // 报警上报速度, 取值范围:0-200,默认值为30
  8171. BYTE byReserved[1024]; // 保留
  8172. }CFG_DRIVE_LEAVE_INFO;
  8173. ///@brief 红外阻断报警配置
  8174. typedef struct tagCFG_INFRARED_BLOCKING
  8175. {
  8176. BOOL bEnable; // 使能
  8177. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8178. int nInfraredBlockingTime; // 红外阻断持续时间, 取值范围:0-10,默认值为2
  8179. int nAlarmInterval; // 时间间隔, 取值范围:0-65536,默认值为60
  8180. int nAlarmSpeed; // 报警触发速度, 取值范围:0-200,默认值为30
  8181. int nAlarmReportSpeed; // 报警上报速度, 取值范围:0-200,默认值为30
  8182. BYTE byReserved[1024]; // 保留
  8183. }CFG_INFRARED_BLOCKING;
  8184. ///@brief 抽烟报警配置
  8185. typedef struct tagCFG_DRIVE_SMOKING
  8186. {
  8187. BOOL bEnable; // 使能
  8188. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8189. int nSmokingTime; // 抽烟持续时间, 取值范围:0-10,默认值为2
  8190. int nAlarmInterval; // 时间间隔, 取值范围:0-65536,默认值为60
  8191. int nAlarmSpeed; // 报警触发速度, 取值范围:0-200,默认值为30
  8192. int nAlarmReportSpeed; // 报警上报速度, 取值范围:0-200,默认值为30
  8193. BYTE byReserved[1024]; // 保留
  8194. }CFG_DRIVE_SMOKING;
  8195. ///@brief 相机遮挡报警配置
  8196. typedef struct tagCFG_CAMERA_OCCLUSION
  8197. {
  8198. BOOL bEnable; // 使能
  8199. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8200. int nCameraOcclusionTime; // 相机遮挡持续时间, 取值范围:0-10,默认值为2
  8201. int nAlarmInterval; // 时间间隔, 取值范围:0-65536,默认值为60
  8202. int nAlarmSpeed; // 报警触发速度, 取值范围:0-200,默认值为30
  8203. int nAlarmReportSpeed; // 报警上报速度, 取值范围:0-200,默认值为30
  8204. BYTE byReserved[1024]; // 保留
  8205. }CFG_CAMERA_OCCLUSION;
  8206. ///@brief 身份异常报警配置 IdentityAnomalyCfg
  8207. typedef struct tagCFG_IDENTITY_ANOMALY
  8208. {
  8209. BOOL bEnable; // 使能
  8210. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8211. int nAlarmInterval; // 时间间隔, 取值范围:0-65536,默认值为60
  8212. int nAlarmSpeed; // 报警触发速度, 取值范围:0-200,默认值为30
  8213. BYTE byReserved[1016]; // 保留
  8214. }CFG_IDENTITY_ANOMALY;
  8215. ///@brief 换人驾驶报警配置 SubstitutionDrivingCfg
  8216. typedef struct tagCFG_SUBSTITUTION_DRIVING
  8217. {
  8218. BOOL bEnable; // 使能
  8219. BOOL bVoiceBroadcastEnable; // 语音播报使能
  8220. BYTE byReserved[1024]; // 保留
  8221. }CFG_SUBSTITUTION_DRIVING;
  8222. ///@brief 未系安全带报警配置
  8223. typedef struct tagCFG_DRIVER_NOBELT
  8224. {
  8225. BOOL bEnable; // 使能
  8226. int nNobeltTime; // 未系安全带持续时间, 取值范围:0-255,默认值为10
  8227. int nAlarmInterval; // 时间间隔, 取值范围:0-65536,默认值为60
  8228. int nAlarmSpeed; // 报警触发速度, 取值范围:0-200,默认值为30
  8229. int nAlarmReportSpeed; // 报警上报速度, 取值范围:0-200,默认值为30
  8230. BYTE byReserved[1024]; // 保留
  8231. }CFG_DRIVER_NOBELT;
  8232. ///@brief 事件类型 EVENT_IVS_DRIVE_ACTION_ANAYLSE 驾驶行为分析 对应的规则配置
  8233. typedef struct tagCFG_DRIVE_ACIONANAYLSE_INFO
  8234. {
  8235. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8236. BOOL bRuleEnable; // 规则使能
  8237. int nObjectTypeNum; // 相应物体类型个数
  8238. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8239. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8240. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8241. int nPtzPresetId; // 云台预置点编号 0~65535
  8242. int nSensitivity; // 灵敏度 取值1-10,默认值5 值越小灵敏度越低
  8243. int nWorkMode; // 工作模式 0:正常模式 1:测试模式
  8244. int nAlarmSpeed; // 报警触发速度
  8245. int nGradeSpeed; // 报警分级速度
  8246. CFG_FATIGUE_DRIVING stuFatigue; // 疲劳驾驶报警配置
  8247. CFG_DISTRACT_DRIVING stuDistract; // 分心驾驶报警
  8248. CFG_DRIVEING_CALLING stuCalling; // 打电话报警配置
  8249. CFG_DRIVE_LEAVE_INFO stuLeave; // 离岗报警配置
  8250. CFG_INFRARED_BLOCKING stuInfraredBlocking; // 红外阻断报警配置
  8251. CFG_DRIVE_SMOKING stuSmoking; // 抽烟报警配置
  8252. CFG_CAMERA_OCCLUSION stuCameraOcclusionTime; // 相机遮挡持续时间
  8253. CFG_IDENTITY_ANOMALY stuIdentityAnomaly; // 身份异常报警配置
  8254. CFG_SUBSTITUTION_DRIVING stuSubstitution; // 换人驾驶报警配置
  8255. CFG_DRIVER_NOBELT stuNobelt; // 未系安全带报警配置
  8256. int nPicNums; // 报警多抓张数 取值范围[0, 10],默认3
  8257. int nPicInterval; // 报警多抓时间间隔,单位:ms 取值范围[100, 10000],默认:3000
  8258. BYTE byReserved[4092];
  8259. }CFG_DRIVE_ACIONANAYLSE_INFO;
  8260. ///@brief 事件类型 EVENT_IVS_DRIVE_HANDSOFF_STEERING_WHEEL 驾驶行为分析 手离开方向盘 对应的规则配置
  8261. typedef struct tagCFG_DRIVE_HANDSOFF_STEERING_WHEEL_INFO
  8262. {
  8263. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8264. BOOL bRuleEnable; // 规则使能
  8265. int nObjectTypeNum; // 相应物体类型个数
  8266. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8267. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8268. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8269. int nPtzPresetId; // 云台预置点编号 0~65535
  8270. int nSensitivity; // 灵敏度 值越小灵敏度越低
  8271. int nWorkMode; // 工作模式 0:正常模式 1:测试模式
  8272. int nPostion; // 0:从前往后;1:从右往左;2:从后往前;3:从左往右
  8273. int nAlarmSpeed; // 报警触发速度 取值范围:0-200,默认值为30
  8274. int nAlarmReportSpeed; // 报警上报速度 取值范围:0-200,默认值为30
  8275. int nMinDuration; // 报警时间,即检测到阻塞持续多久产生报警 单位:秒 1~600,默认值30
  8276. int nReportInterval; // 重复报警间隔,单位:秒 0~600;等于0表示不重复报警, 默认值30
  8277. int nPicNums; // 报警多抓张数 取值范围[0, 10],默认3
  8278. int nPicInterval; // 报警多抓时间间隔,单位:ms取值范围[100, 10000],默认:3000
  8279. CFG_REGION stuDetectRegion; // 检测区域
  8280. BYTE byReserved[4092];
  8281. }CFG_DRIVE_HANDSOFF_STEERING_WHEEL_INFO;
  8282. ///@brief 事件类型 EVENT_IVS_DRIVE_BLIND_SPOT 驾驶行为分析 盲点检测 对应的规则配置
  8283. typedef struct tagCFG_DRIVE_BLIND_SPOT_INFO
  8284. {
  8285. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8286. BOOL bRuleEnable; // 规则使能
  8287. int nObjectTypeNum; // 相应物体类型个数
  8288. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8289. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8290. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8291. int nPtzPresetId; // 云台预置点编号 0~65535
  8292. int nSensitivity; // 灵敏度,值越小灵敏度越低 取值0-3,默认值1
  8293. int nWorkMode; // 工作模式 0:正常模式 1:测试模式
  8294. int nPostion; // 安装位置:0:从前往后;1:从后往前
  8295. int nValidAlarmLine; // 有效报警线个数
  8296. CFG_REGION stuAlarmLines[5]; // 报警线信息,最多5条报警线
  8297. CFG_REGION stuDetectRegion; // 检测区域
  8298. BYTE byReserved[4092];
  8299. }CFG_DRIVE_BLIND_SPOT_INFO;
  8300. ///@brief 检测动作类型
  8301. typedef enum tagEM_ARTICLE_DETECTION_ACTION
  8302. {
  8303. EM_ARTICLE_DETECTION_ACTION_UNKNOWN, // 未知动作
  8304. EM_ARTICLE_DETECTION_ACTION_LEFT, // 遗留, 触发物品遗留报警 EVENT_IVS_LEFTDETECTION
  8305. EM_ARTICLE_DETECTION_ACTION_TAKENAWAY, // 搬移, 触发物品搬移报警 EVENT_IVS_TAKENAWAYDETECTION
  8306. }EM_ARTICLE_DETECTION_ACTION;
  8307. ///@brief 事件类型 EVENT_IVS_ARTICLE_DETECTION 物体检测对应的规则配置
  8308. typedef struct tagCFG_ARTICLE_DETECTION_INFO
  8309. {
  8310. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8311. BOOL bRuleEnable; // 规则使能
  8312. int nObjectTypeNum; // 相应物体类型个数
  8313. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8314. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8315. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8316. int nPtzPresetId; // 云台预置点编号 0~65535
  8317. int nDetectRegionPoint; // 检测区域顶点数
  8318. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  8319. int nActionNum; // 检测动作个数
  8320. EM_ARTICLE_DETECTION_ACTION emAction[8]; // 检测动作列表
  8321. int nTriggerPosition; // 触发报警位置数
  8322. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  8323. UINT nMinDuration; // 最短持续时间,单位:秒, 范围:0~65535
  8324. UINT nTrackDuration; // 跟踪持续时间 5~300秒
  8325. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  8326. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  8327. UINT nReportInterval; // 报告时间间隔,单位:秒0~600;等于0表示不重复报警, 默认值30
  8328. int nSensitivity; // 灵敏度,取值1-10,默认值5,值越小灵敏度越低
  8329. BYTE byReserved[4096]; // 保留字节
  8330. }CFG_ARTICLE_DETECTION_INFO;
  8331. ///@brief 事件类型 EVENT_IVS_STREET_SUNCURE 沿街晾晒对应的规则配置
  8332. typedef struct tagCFG_STREET_SUNCURE_INFO
  8333. {
  8334. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8335. BOOL bRuleEnable; // 规则使能
  8336. int nObjectTypeNum; // 相应物体类型个数
  8337. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8338. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8339. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8340. int nPtzPresetId; // 云台预置点编号 0~65535
  8341. UINT nDetectRegionPoint; // 检测区域顶点数
  8342. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  8343. UINT nMinDuration; // 最短持续时间,范围:0~3600, 单位:秒
  8344. UINT nTrackDuration; // 跟踪持续时间,范围:0~3600, 单位:秒
  8345. UINT nDetectRegionNumber; // 检测区域号
  8346. UINT nSensitivity; // 灵敏度,值越小灵敏度越低 取值1-10
  8347. UINT nReportInterval; // 重复报警时间,单位:秒,0则不重复报警
  8348. BYTE byReserved[4092]; // 保留字节
  8349. }CFG_STREET_SUNCURE_INFO;
  8350. ///@brief 事件类型 EVENT_IVS_DISTRESS_DETECTION 物体检测对应的规则配置
  8351. typedef struct tagCFG_DISTRESS_DETECTION_INFO
  8352. {
  8353. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8354. BOOL bRuleEnable; // 规则使能
  8355. int nObjectTypeNum; // 相应物体类型个数
  8356. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8357. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8358. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8359. int nPtzPresetId; // 云台预置点编号 0~65535
  8360. int nDetectRegionPoint; // 检测区域顶点数
  8361. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  8362. UINT nMinDuration; // 最短持续时间,单位:秒, 范围:0~65535
  8363. UINT nReportInterval; // 报告时间间隔,单位:秒0~600;等于0表示不重复报警, 默认值30
  8364. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  8365. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  8366. int nSensitivity; // 灵敏度,取值1-10,默认值5,值越小灵敏度越低
  8367. BYTE byReserved[4096]; // 保留字节
  8368. }CFG_DISTRESS_DETECTION_INFO;
  8369. ///@brief 事件类型 EVENT_IVS_TRAFFIC_SPEED_CHANGE_DETECTION 变速检测对应的规则配置
  8370. typedef struct tagCFG_TRAFFIC_SPEED_CHANGE_DETECTION_INFO
  8371. {
  8372. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8373. BOOL bRuleEnable; // 规则使能
  8374. int nObjectTypeNum; // 相应物体类型个数
  8375. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8376. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8377. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8378. int nPtzPresetId; // 云台预置点编号 0~65535
  8379. int nLaneNumber; // 车道号
  8380. int nMinDuration; // 最短持续时间, 单位:秒
  8381. int nSpeedThreshold; // 速度变化阀值, 超过该值报警. 单位:秒(1-230)
  8382. BYTE byReserved[4096]; // 保留字节
  8383. }CFG_TRAFFIC_SPEED_CHANGE_DETECTION_INFO;
  8384. ///@brief 事件类型 EVENT_IVS_OUTDOOR_ADVERTISEMENT 户外广告事件对应的规则配置
  8385. typedef struct tagCFG_OUTDOOR_ADVERTISEMENT_INFO
  8386. {
  8387. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8388. BOOL bRuleEnable; // 规则使能
  8389. int nObjectTypeNum; // 相应物体类型个数
  8390. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8391. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8392. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8393. int nPtzPresetId; // 云台预置点编号 0~65535
  8394. UINT nDetectRegionPoint; // 检测区域顶点数
  8395. CFG_POLYGON stuDetectRegion[20]; // 检测区域
  8396. UINT nMinDuration; // 最短持续时间,范围:0~3600, 单位:秒
  8397. UINT nTrackDuration; // 跟踪持续时间,范围:0~3600, 单位:秒
  8398. UINT nDetectRegionNumber; // 检测区域号
  8399. UINT nSensitivity; // 灵敏度,值越小灵敏度越低 取值1-10
  8400. UINT nReportInterval; // 重复报警时间,单位:秒,0则不重复报警
  8401. BYTE byReserved[4092]; // 保留字节
  8402. }CFG_OUTDOOR_ADVERTISEMENT_INFO;
  8403. ///@brief 事件类型 EVENT_IVS_HUDDLE_MATERIAL 乱堆物料检测事件对应的规则配置
  8404. typedef struct tagCFG_HUDDLE_MATERIAL_INFO
  8405. {
  8406. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8407. BOOL bRuleEnable; // 规则使能
  8408. int nObjectTypeNum; // 相应物体类型个数
  8409. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8410. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8411. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8412. int nPtzPresetId; // 云台预置点编号 0~65535
  8413. UINT nDetectRegionPoint; // 检测区域顶点数
  8414. CFG_POLYGON stuDetectRegion[20]; // 检测区域
  8415. UINT nMinDuration; // 最短持续时间,范围:0~3600, 单位:秒
  8416. UINT nTrackDuration; // 跟踪持续时间,范围:0~3600, 单位:秒
  8417. UINT nDetectRegionNumber; // 检测区域号
  8418. UINT nSensitivity; // 灵敏度,值越小灵敏度越低 取值1-10
  8419. UINT nReportInterval; // 重复报警时间,单位:秒,0则不重复报警
  8420. BYTE byReserved[4092]; // 保留字节
  8421. }CFG_HUDDLE_MATERIAL_INFO;
  8422. ///@brief 消防占道检测类型
  8423. typedef enum tagEM_FIRE_LANE_DETECT_TYPE
  8424. {
  8425. EM_FIRE_LANE_DETECT_TYPE_UNKNOWN, // 未知类型
  8426. EM_FIRE_LANE_DETECT_TYPE_NONMOTOR, // 非机动车
  8427. EM_FIRE_LANE_DETECT_TYPE_CARTON, // 箱包
  8428. EM_FIRE_LANE_DETECT_TYPE_BOX, // 盒子
  8429. }EM_FIRE_LANE_DETECT_TYPE;
  8430. ///@brief 事件类型 EVENT_IVS_FIRE_LANE_DETECTION 消防占道检测事件对应的规则配置
  8431. typedef struct tagCFG_FIRE_LANE_DETECTION_INFO
  8432. {
  8433. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8434. BOOL bRuleEnable; // 规则使能
  8435. int nObjectTypeNum; // 相应物体类型个数
  8436. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8437. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8438. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8439. int nPtzPresetId; // 云台预置点编号 0~65535
  8440. int nDetectRegionPoint; // 检测区域顶点数
  8441. CFG_POLYGON stuDetectRegion[20]; // 检测区域
  8442. int nDetectType; // 检测类型个数
  8443. EM_FIRE_LANE_DETECT_TYPE emDetectType[16]; // 检测类型,数组元素为FireLaneJams物体的子类型,数组可以为空,表示不进行过滤
  8444. UINT nMinDuration; // 最短持续时间, 单位:秒, 范围:0~65535
  8445. UINT nReportInterval; // 报告时间间隔, 单位:秒, 0~600; 等于0表示不重复报警,默认值30
  8446. int nSensitivity; // 灵敏度,取值1-10,默认值5,值越小灵敏度越低
  8447. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  8448. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  8449. BYTE byReserved[4096]; // 保留字节
  8450. }CFG_FIRE_LANE_DETECTION_INFO;
  8451. ///@brief 非机动车进电梯检测类型
  8452. typedef enum tagEM_NON_MOTOR_ENTRYING_DETECT_TYPE
  8453. {
  8454. EM_NON_MOTOR_ENTRYING_DETECT_TYPE_UNKNOWN, // 未知非机动车类型
  8455. EM_NON_MOTOR_ENTRYING_DETECT_TYPE_BICYCLE, // 自行车
  8456. EM_NON_MOTOR_ENTRYING_DETECT_TYPE_TRICYCLE, // 三轮车
  8457. EM_NON_MOTOR_ENTRYING_DETECT_TYPE_MOTORCYCLE, // 摩托车(包含电动车,二轮摩托车)
  8458. }EM_NON_MOTOR_ENTRYING_DETECT_TYPE;
  8459. ///@brief 事件类型 EVENT_IVS_NONMOTOR_ENTRYING 非机动车进入电梯对应的规则配置
  8460. typedef struct tagCFG_NONMOTOR_ENTRYING_INFO
  8461. {
  8462. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8463. BOOL bRuleEnable; // 规则使能
  8464. int nObjectTypeNum; // 相应物体类型个数
  8465. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8466. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8467. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8468. int nPtzPresetId; // 云台预置点编号 0~65535
  8469. int nDetectRegionPoint; // 检测区域顶点数
  8470. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  8471. int nDetectType; // 检测类型个数
  8472. EM_NON_MOTOR_ENTRYING_DETECT_TYPE emDetectType[32]; // 检测类型,数组元素为NonMotor物体的子类型,数组可以为空,表示不进行过滤
  8473. UINT nMinDuration; // 最短持续时间, 单位:秒, 范围:0~65535
  8474. UINT nReportInterval; // 报告时间间隔, 单位:秒, 0~600; 等于0表示不重复报警,默认值30
  8475. int nSensitivity; // 灵敏度,取值1-10,默认值5,值越小灵敏度越低
  8476. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  8477. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  8478. BYTE byReserved[4096]; // 保留字节
  8479. }CFG_NONMOTOR_ENTRYING_INFO;
  8480. ///@brief 传送带检测类型
  8481. typedef enum tagEM_CFG_CONVEYER_BELT_DETECT_TYPE
  8482. {
  8483. EM_CFG_CONVEYER_BELT_DETECT_UNKNOWN, // 未知
  8484. EM_CFG_CONVEYER_BELT_DETECT_FULL_LOAD, // 满载
  8485. EM_CFG_CONVEYER_BELT_DETECT_NON_LOAD, // 空载
  8486. EM_CFG_CONVEYER_BELT_DETECT_RUN_OFF, // 跑偏
  8487. EM_CFG_CONVEYER_BELT_DETECT_BLOCK, // 阻塞
  8488. EM_CFG_CONVEYER_BELT_DETECT_BULK, // 大块异物
  8489. EM_CFG_CONVEYER_BELT_DETECT_COALRATIO, // 煤量占比
  8490. EM_CFG_CONVEYER_BELT_DETECT_ARTICLE, // 异物类型检测
  8491. EM_CFG_CONVEYER_BELT_DETECT_STHTONTH, // 物品从有到无
  8492. EM_CFG_CONVEYER_BELT_DETECT_NTHTOSTH, // 物品从无到有
  8493. EM_CFG_CONVEYER_BELT_DETECT_MOVETOSTOP, // 运动到静止
  8494. EM_CFG_CONVEYER_BELT_DETECT_STOPTOMOVE, // 静止到运动
  8495. EM_CFG_CONVEYER_BELT_DETECT_LOADINGRATE, // 装载率
  8496. } EM_CFG_CONVEYER_BELT_DETECT_TYPE;
  8497. ///@brief 报警模式
  8498. typedef enum tagEM_CFG_ALARM_OUT_MODE
  8499. {
  8500. EM_CFG_ALARM_OUT_MODE_UNKNOWN = -1, // 未知
  8501. EM_CFG_ALARM_OUT_MODE_0, // 报警输出1输出
  8502. EM_CFG_ALARM_OUT_MODE_1, // 报警输出2输出
  8503. EM_CFG_ALARM_OUT_MODE_2, // 报警输出1,2同时输出
  8504. }EM_CFG_ALARM_OUT_MODE;
  8505. ///@brief 煤量占比配置
  8506. typedef struct tagCFG_COAL_RATIO_LEVEL
  8507. {
  8508. float fCoalLevelMin; // 煤量占比最小值,用于界定当前等级煤量的最小值。取值0-1
  8509. float fCoalLevelMax; // 煤量占比最大值,用于界定当前等级煤量的最大值。取值0-1
  8510. EM_CFG_ALARM_OUT_MODE emAlarmOutMode; // 报警模式,用于界定不同煤量占比等级对应报警输出报警模式
  8511. }CFG_COAL_RATIO_LEVEL;
  8512. ///@brief 检测异物类型
  8513. typedef enum tagEM_CFG_ARTICLE_TYPE
  8514. {
  8515. EM_CFG_ARTICLE_TYPE_UNKNOWN, // 未知
  8516. EM_CFG_ARTICLE_TYPE_ANCHORROD, // 锚杆
  8517. }EM_CFG_ARTICLE_TYPE;
  8518. ///@brief 报警等级阈值
  8519. typedef struct tagCFG_ALARM_LEVEL_THRESHOLD
  8520. {
  8521. int nMinThreshold; // 小阈值
  8522. int nMaxThreshold; // 大阈值
  8523. int nMinCmpType; // 小阈值的比较模式,0:未知;1:不比较;2:大于;3:大于等于;4:小于;5:小于等于
  8524. int nMaxCmpType; // 大阈值的比较模式,0:未知;1:不比较;2:大于;3:大于等于;4:小于;5:小于等于
  8525. int nAlarmLevel; // 报警等级,范围1~5
  8526. int nAlarmRuleType; // 0:未知 1:"NonLoad"空载 2:"RunOff"跑偏 3:"Block"阻塞 4:"Bulk"大块异物
  8527. char szReserved[64]; // 保留字节
  8528. }CFG_ALARM_LEVEL_THRESHOLD;
  8529. ///@brief EVENT_IVS_CONVEYER_BELT_DETECT(传送带检测)对应的规则配置
  8530. ///@brief 对应事件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
  8531. typedef struct tagCFG_CONVEYER_BELT_DETECT_INFO
  8532. {
  8533. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8534. BOOL bRuleEnable; // 规则使能
  8535. int nObjectTypeNum; // 相应物体类型个数
  8536. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8537. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8538. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8539. int nPtzPresetId; // 云台预置点编号 0~65535
  8540. int nDetectRegionPoint; // 检测区域顶点数
  8541. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  8542. EM_CFG_CONVEYER_BELT_DETECT_TYPE emDetectType; // 传送带检测类型
  8543. UINT nMinDuration; // 最短持续时间,单位秒, 取值:[3-30]
  8544. UINT nReportInterval; // 报告时间间隔,单位秒, 取值:[1-300]
  8545. UINT nSensitivity; // 灵敏度,值越小灵敏度越低。取值1-10
  8546. CFG_POLYLINE stuComparetLine[2]; // 对比线,用于表示检测区域内传送带的平均宽度
  8547. // 直线类型,直中每个端点的坐标归一化到[0,8192)区间
  8548. UINT nSizeFilterThreshold; // 大块物占比值,尺寸大于SizeFilterThreshold / 10* ComparetLine表示的传送带平均宽度 的物体被认为是大块异物,取值[2-8]
  8549. UINT nWarningThreshold; // 预警值,用于界定跑偏的程度;0<预警值<停机值<10, 取值[1-9]
  8550. UINT nDowntimeThreshold; // 停机值,用于界定跑偏的程度;0<预警值<停机值<10, 取值[1-9]
  8551. CFG_COAL_RATIO_LEVEL stuCoalRatioLevel[3]; // 煤量占比配置,默认三组,对应煤量占比三个等级,每个等级由煤量占比最大值、最小值组成煤量阈值,三档的阈值互不冲突。
  8552. int nCoalRatioLevelNums; // 煤量占比配置数
  8553. UINT nClogThreshold; // 阻塞报警阈值;取值0-10
  8554. UINT nIsMoveAlarm; // 输出不同皮带运动状态时的报警, 0代表该报警不考虑皮带是否运动(默认,即包含1和2),1代表仅在皮带静止时输出报警,2代表仅在皮带运动时输出报警
  8555. UINT nRunOffFlag; // 皮带跑偏报警标识,皮带是否跑偏至托辊外,0表示无效值,1代表托辊内,2代表托辊外
  8556. EM_CFG_ARTICLE_TYPE emArticleType; // 检测异物类型
  8557. UINT nConveyorBeltWidth; // 皮带实际物理宽度,范围[0-1000],单位cm
  8558. CFG_ALARM_LEVEL_THRESHOLD stuAlarmLevelThreshold[20]; //报警等级阈值,最多20组,每组包含一组阈值和一个报警等级
  8559. //跑偏:可设置多组阈值,范围0~100
  8560. //空载:设置一组阈值,范围为0~15
  8561. //大块物:煤炭矿业大块物检测可设置多组报警等级阈值,范围[1-200],其他可不用配置等级阈值
  8562. //阻塞:设置一组阈值,范围0~100
  8563. int nAlarmLevelThresholdNum; // 报警等级阈值组数
  8564. UINT nLoadingRateReportInterval; // 装载率上报间隔 单位:秒 范围[1-1800]
  8565. UINT nLoadingThreshold; // 装载率报警阈值;取值0-10
  8566. BYTE byReserved[2264]; // 保留字节
  8567. } CFG_CONVEYER_BELT_DETECT_INFO;
  8568. ///@brief 联动车牌库信息
  8569. typedef struct tagLINK_GROUP_INFO
  8570. {
  8571. BOOL bEnable; // 布控组是否启用
  8572. char szReserved1[4]; // 字节对齐
  8573. char szGroupID[64]; // 当前视频通道对应的布控组ID,取自NET_FACERECONGNITION_GROUP_INFO中的szGroupId
  8574. char szColor[32]; // 事件触发时绘制目标框的颜色
  8575. BOOL bShowTitle; // 事件触发时规则框上是否显示报警标题
  8576. BOOL bShowPlate; // 事件触发时是否显示比对面板
  8577. CFG_ALARM_MSG_HANDLE stuEventHandler; // 每个布控组一个联动项,使用这里的联动项,外面的EventHandler可以不用
  8578. char szReserved[1024]; // 保留字节
  8579. }LINK_GROUP_INFO;
  8580. ///@brief 加油机信息
  8581. typedef struct tagGAS_PUMP_NOZZLE_INFO
  8582. {
  8583. int nSurfaceNumber; // 区域绑定加油机面号
  8584. int nNodeNumber; // 区域绑定加油机节点号
  8585. char szOilType[8]; // 对应油号
  8586. char szReserved[512]; // 保留字节
  8587. }GAS_PUMP_NOZZLE_INFO;
  8588. ///@brief 检测区域信息
  8589. typedef struct tagREGIONS_INFO
  8590. {
  8591. int nDetectRegionPoint; // 检测区顶点数
  8592. char szReserved1[4]; // 字节对齐
  8593. CFG_POLYGON stuDetectRegion[4]; // 检测区,[0,8192)
  8594. UINT nMinDuration; // 最小停留时间(超过这个时间就认为是开始加油),5-3600秒
  8595. char szReserved2[4]; // 字节对齐
  8596. char szRegionName[256]; // 加油点名称
  8597. int nGasPumpNozzleInfoNum; // 加油机信息个数
  8598. char szReserved3[4]; // 字节对齐
  8599. GAS_PUMP_NOZZLE_INFO stuGasPumpNozzleInfo[8]; // 加油机信息
  8600. char szReserved[1024]; // 保留字节
  8601. }REGIONS_INFO;
  8602. ///@brief 是否进行空车位检测
  8603. typedef struct tagEMPTY_PLACE_DETECT
  8604. {
  8605. BOOL bEnable; // 使能标识
  8606. UINT nMinDuration; // 超过该时间还无车辆则认为该加油站枪位空闲
  8607. char szReserved[512]; // 保留字节
  8608. }EMPTY_PLACE_DETECT;
  8609. ///@brief EVENT_IVS_GASSTATION_VEHICLE_DETECT(加油站车辆检测)对应的规则配置
  8610. typedef struct tagCFG_GAS_STATION_VEHICLE_DETECT_INFO
  8611. {
  8612. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  8613. BOOL bRuleEnable; // 规则使能
  8614. int nObjectTypeNum; // 相应物体类型个数
  8615. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  8616. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8617. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8618. int nPtzPresetId; // 云台预置点编号 0~65535
  8619. int nLinkGroupNum; // 联动车牌库信息个数
  8620. LINK_GROUP_INFO stuLinkGroupInfo[MAX_LINK_GROUP_NUM]; // 联动车牌库信息
  8621. int nRegionNum; // 检测区域个数
  8622. char szReserved1[4]; // 字节对齐
  8623. REGIONS_INFO stuRegions[4]; // 检测区域信息
  8624. EMPTY_PLACE_DETECT stuEmptyPlaceDetect; // 是否进行空车位检测
  8625. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  8626. char szReserved2[4]; // 字节对齐
  8627. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  8628. char szReserved[512]; // 保留字节
  8629. }CFG_GAS_STATION_VEHICLE_DETECT_INFO;
  8630. ///@brief EVENT_IVS_FISH_STATE_DETECTION(鱼类状态检测报警)对应的规则配置
  8631. typedef struct tagCFG_FISH_STATE_DETECTION_INFO
  8632. {
  8633. char szRuleName[128]; // 规则名称,不同规则不能重名
  8634. BOOL bRuleEnable; // 规则使能
  8635. int nObjectTypeNum; // 相应物体类型个数
  8636. char szObjectTypes[16][128]; // 相应物体类型列表
  8637. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8638. CFG_TIME_SECTION stuTimeSection[7][10]; // 事件响应时间段
  8639. int nPtzPresetId; // 云台预置点编号 0~65535
  8640. int nDetectRegionCount; // 检测区个数
  8641. CFG_POLYGON stuDetectRegion[20]; // 检测区
  8642. UINT nMinAlarmSecond; // 最短持续时间, 单位: 秒, 范围: 0~65535
  8643. UINT nRepeatAlarmSecond; // 重复报警时间,单位:秒
  8644. UINT nSensitivity; // 灵敏度, 取值1-10, 10是最灵敏
  8645. UINT nCameraDeep; // 相机深度参数,单位:米
  8646. UINT nTemperature; // 相机所处位置的环境温度,单位:摄氏度
  8647. int nFishTypeCount; // 当前检测到的鱼类型个数
  8648. int nFishType[8]; // 当前检测到的鱼类型, 0: 各种鱼, 1: 三文鱼
  8649. UINT nNumEnable; // 数量检测使能, 0: 不检测, 1:检测
  8650. UINT nActualQuantity; // 鱼群的真值, 返回配置下发来的值,, 单位:条
  8651. int nLowFish; // 鱼数量低报警百分比(例: 低于20%则报警) 单位: 百分比, 0-100
  8652. char szReserved[512]; // 保留字节
  8653. }CFG_FISH_STATE_DETECTION_INFO;
  8654. ///@brief 姿态类型
  8655. typedef enum tagEM_ATTITUDE_TYPE
  8656. {
  8657. EM_ATTITUDE_TYPE_UNKNOWN, // 未知
  8658. EM_ATTITUDE_TYPE_ONE_HAND, // 单手递接
  8659. EM_ATTITUDE_TYPE_AKIMBO, // 叉腰
  8660. EM_ATTITUDE_TYPE_HAND_SON_HEAD, // 双手抱头
  8661. EM_ATTITUDE_TYPE_HAND_SON_CHEST, // 双手抱胸
  8662. EM_ATTITUDE_TYPE_HIT_WALL, // 撞墙
  8663. EM_ATTITUDE_TYPE_BEND, // 弯腰
  8664. EM_ATTITUDE_TYPE_SITTING, // 坐状态
  8665. EM_ATTITUDE_TYPE_STANDING, // 站状态
  8666. EM_ATTITUDE_TYPE_SIT_DOWN, // 坐下
  8667. EM_ATTITUDE_TYPE_STAND_UP, // 起立
  8668. EM_ATTITUDE_TYPE_ON_TABLE, // 趴桌子
  8669. EM_ATTITUDE_TYPE_LOOK_BACK, // 回头
  8670. EM_ATTITUDE_TYPE_DELIVERY, // 传递
  8671. EM_ATTITUDE_TYPE_GAZE_AROUND, // 东张西望
  8672. EM_ATTITUDE_TYPE_HAND_DOWN_PEEP, // 手放桌下偷看
  8673. EM_ATTITUDE_TYPE_PICK_UP, // 捡东西
  8674. EM_ATTITUDE_TYPE_HAND_UP, // 举手
  8675. EM_ATTITUDE_TYPE_WRITE, // 书写
  8676. EM_ATTITUDE_TYPE_WAVE_HAND, // 挥手
  8677. EM_ATTITUDE_TYPE_HAND_POSE_OK, // OK手势
  8678. EM_ATTITUDE_TYPE_VICTORY, // 比耶手势
  8679. EM_ATTITUDE_TYPE_GOOD, // 点赞手势
  8680. EM_ATTITUDE_TYPE_HELP, // 双手举过头顶(求救)
  8681. EM_ATTITUDE_TYPE_TOUCH_CULTURAL_RELIC, // 触摸文物
  8682. } EM_ATTITUDE_TYPE;
  8683. ///@brief 姿态发生检测或屏蔽区域信息
  8684. typedef struct tagCFG_GENEAL_ATTITUDE_REGION_INFO
  8685. {
  8686. BOOL bEnable; // 此区域是否起作用
  8687. UINT nRegionId; // 区域id
  8688. UINT nRegionType; // 区域类型: 1-检测区域 2-屏蔽区域
  8689. UINT nRegionDirect; // 区域方向类型: 0-上方区域 1-下方区域 2-左方区域 3-右方区域 4-前方区域 5-后方区域
  8690. int nDetectRegionNum; // 多边形个数
  8691. CFG_POLYGON stuDetectRegion[20]; // RegionId对应的多边形类型
  8692. char szResvered[252]; // 保留字节
  8693. }CFG_GENEAL_ATTITUDE_REGION_INFO;
  8694. ///@brief EVENT_IVS_GENEAL_ATTITUDE(通用姿态行为事件)对应的规则配置
  8695. typedef struct tagCFG_GENEAL_ATTITUDE_INFO
  8696. {
  8697. char szRuleName[128]; // 规则名称,不同规则不能重名
  8698. BOOL bRuleEnable; // 规则使能
  8699. int nObjectTypeNum; // 相应物体类型个数
  8700. char szObjectTypes[16][128]; // 相应物体类型列表
  8701. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8702. CFG_TIME_SECTION stuTimeSection[7][10]; // 事件响应时间段
  8703. int nPtzPresetId; // 云台预置点编号 0~65535
  8704. int nDetectRegionNum; // 检测区顶点数
  8705. CFG_POLYGON stuDetectRegion[20]; // 检测区
  8706. UINT nMinDuration; // 最短持续时间, 单位:秒(5s-60s)
  8707. UINT nRecordInterval; // 重复报警间隔, 单位:秒(0s-300s)
  8708. UINT nSensitivity; // 灵敏度, 值越小灵敏度越低, 取值1-10
  8709. UINT nRateEnable; // 是否激活动作评价功能,0-不激活,1-激活
  8710. EM_ATTITUDE_TYPE emAttitudeType; // 姿态类型
  8711. int nRegionInfoNum; // 姿态发生检测或屏蔽区域信息个数
  8712. CFG_GENEAL_ATTITUDE_REGION_INFO stuRegionInfo[16]; // 姿态发生检测或屏蔽区域信息
  8713. char szReserved[512]; // 保留字节
  8714. }CFG_GENEAL_ATTITUDE_INFO;
  8715. ///@brief 规则通用信息
  8716. typedef struct tagCFG_RULE_COMM_INFO
  8717. {
  8718. BYTE bRuleId; // 规则编号
  8719. EM_SCENE_TYPE emClassType; // 规则所属的场景
  8720. BYTE bReserved[512]; // 保留字节
  8721. }CFG_RULE_COMM_INFO;
  8722. ///@brief 规则信息
  8723. typedef struct tagCFG_RULE_INFO
  8724. {
  8725. DWORD dwRuleType; // 事件类型,详见dhnetsdk.h中"智能分析事件类型"
  8726. int nRuleSize; // 该事件类型规则配置结构体大小
  8727. CFG_RULE_COMM_INFO stuRuleCommInfo; // 规则通用信息
  8728. } CFG_RULE_INFO;
  8729. ///@brief 每个视频输入通道对应的所有事件规则:缓冲区pRuleBuf填充多个事件规则信息,每个事件规则信息内容为CFG_RULE_INFO+"事件类型对应的规则配置结构体"。
  8730. typedef struct tagCFG_ANALYSERULES_INFO
  8731. {
  8732. int nRuleCount; // 事件规则个数
  8733. char* pRuleBuf; // 每个视频输入通道对应的视频分析事件规则配置缓冲
  8734. int nRuleLen; // 缓冲大小
  8735. } CFG_ANALYSERULES_INFO;
  8736. ///@brief 视频分析资源类型
  8737. typedef enum tagCFG_VIDEO_SOURCE_TYPE
  8738. {
  8739. CFG_VIDEO_SOURCE_REALSTREAM, // 实时流
  8740. CFG_VIDEO_SOURCE_FILESTREAM, // 文件流
  8741. }CFG_VIDEO_SOURCE_TYPE;
  8742. ///@brief 分析源文件类型
  8743. typedef enum tagCFG_SOURCE_FILE_TYPE
  8744. {
  8745. CFG_SOURCE_FILE_UNKNOWN, // 未知类型
  8746. CFG_SOURCE_FILE_RECORD, // 录像文件
  8747. CFG_SOURCE_FILE_PICTURE, // 图片文件
  8748. }CFG_SOURCE_FILE_TYPE;
  8749. ///@brief 视频分析源文件信息
  8750. typedef struct tagCFG_SOURCE_FILE_INFO
  8751. {
  8752. char szFilePath[MAX_PATH]; // 文件路径
  8753. CFG_SOURCE_FILE_TYPE emFileType; // 文件类型,详见CFG_SOURCE_FILE_TYPE
  8754. }CFG_SOURCE_FILE_INFO;
  8755. ///@brief 每个视频输入通道对应的视频分析资源配置信息
  8756. typedef struct tagCFG_ANALYSESOURCE_INFO
  8757. {
  8758. bool bEnable; // 视频分析使能
  8759. BYTE bReserved[3]; // 保留对齐
  8760. int nChannelID; // 智能分析的前端视频通道号
  8761. int nStreamType; // 智能分析的前端视频码流类型,0:抓图码流; 1:主码流; 2:子码流1; 3:子码流2; 4:子码流3; 5:物体流
  8762. char szRemoteDevice[MAX_NAME_LEN]; // 设备名
  8763. BOOL abDeviceInfo; // 设备信息是否有效
  8764. AV_CFG_RemoteDevice stuDeviceInfo; // 设备信息
  8765. CFG_VIDEO_SOURCE_TYPE emSourceType; // 视频分析源类型,详见CFG_VIDEO_SOURCE_TYPE
  8766. CFG_SOURCE_FILE_INFO stuSourceFile; // 当视频分析源类型为CFG_VIDEO_SOURCE_FILESTREAM时,有效
  8767. } CFG_ANALYSESOURCE_INFO;
  8768. ///@brief 视频分析整体配置,影响设备或服务器整体行为
  8769. typedef struct tagCFG_ANALYSEWHOLE_INFO
  8770. {
  8771. unsigned int nVideoChannelType; // 视频通道类型选择 0:数字,1;模拟,2:数字和模拟
  8772. }CFG_ANALYSEWHOLE_INFO;
  8773. ///@brief 雨刷巡航模式配置
  8774. typedef struct tagCFG_RAINBRUSH_TOUR_INFO
  8775. {
  8776. int nTimes; // 雨刷执行次数:单位次
  8777. int nPeriod; // 雨刷巡航周期:单位秒
  8778. }CFG_RAINBRUSH_TOUR_INFO;
  8779. ///@brief 周期模式配置
  8780. typedef struct tagCFG_RAINBRUSH_CYCLE
  8781. {
  8782. char szUnit[32]; /// 周期模式下,周期的单位
  8783. int nCycleLength; /// 周期模式下,周期长度,单位由Unit字段决定
  8784. int nRunTime; /// 周期模式下,雨刷运行的时长,单位:秒
  8785. int nCycleInterval; /// 周期模式下,雨刷运行的间隔时间,单位:秒
  8786. int nSelfCleanTimes; /// 周期模式下,一个周期内完成自清洁操作的次数
  8787. char szReserved[1024]; /// 保留字段
  8788. }CFG_RAINBRUSH_CYCLE;
  8789. ///@brief 雨刷配置
  8790. typedef struct tagCFG_RAINBRUSH_INFO
  8791. {
  8792. bool bEnable; // 雨刷使能
  8793. BYTE bSpeedRate; // 雨刷速度,1:快速;2:中速;3:慢速
  8794. BYTE bReserved[2]; // 保留对齐
  8795. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段
  8796. int nInterval; // 雨刷运动间隔事件, 单位: 秒
  8797. BOOL bProtectEnable; // 雨刷保护使能: true 保护开启, false 保护关闭
  8798. int nProtectTime; // 保护时间, 单位: 秒
  8799. CFG_RAINBRUSH_TOUR_INFO stuRainBrushTour; // 雨刷巡航模式配置,当CFG_RAINBRUSHMODE_INFO中EM_CFG_RAINBRUSHMODE_MODE为EM_CFG_RAINBRUSHMODE_MODE_TOUR时有效
  8800. CFG_RAINBRUSH_CYCLE stuRainBrushCycle; /// 周期模式配置,当CFG_RAINBRUSHMODE_INFO中EM_CFG_RAINBRUSHMODE_MODE为EM_CFG_RAINBRUSHMODE_MODE_CYCLE时有效
  8801. int nSelfCleanRunTime; /// 手动模式下,一次自清洗操作雨刷运行的时长,单位:秒
  8802. char szReserved[1024]; /// 保留字节
  8803. }CFG_RAINBRUSH_INFO;
  8804. ///@brief 违章抓拍
  8805. typedef struct tagBREAKINGSNAPTIMES_INFO
  8806. {
  8807. int nNormal; // 正常
  8808. int nRunRedLight; // 闯红灯
  8809. int nOverLine; // 压线
  8810. int nOverYellowLine; // 压黄线
  8811. int nRetrograde; // 逆向
  8812. int nUnderSpeed; // 欠速
  8813. int nOverSpeed; // 超速
  8814. int nWrongRunningRoute; // 有车占道
  8815. int nYellowInRoute; // 黄牌占道
  8816. int nSpecialRetrograde; // 特殊逆行
  8817. int nTurnLeft; // 违章左转
  8818. int nTurnRight; // 违章右转
  8819. int nCrossLane; // 违章变道
  8820. int nU_Turn; // 违章调头
  8821. int nParking; // 违章停车
  8822. int nWaitingArea; // 违章进入待行区
  8823. int nWrongRoute; // 不按车道行驶
  8824. int nParkingSpaceParking; // 车位有车
  8825. int nParkingSpaceNoParking; // 车位无车
  8826. int nRunYellowLight; // 闯黄灯
  8827. int nStay; // 违章停留
  8828. int nPedestrainPriority; // 斑马线行人优先违章
  8829. int nVehicleInBusRoute; // 违章占道
  8830. int nBacking; // 违章倒车
  8831. int nOverStopLine; // 压停止线
  8832. int nParkingOnYellowBox; // 黄网格线停车
  8833. int nRestrictedPlate; // 受限车牌
  8834. int nNoPassing; // 禁行
  8835. int nWithoutSafeBelt; // 不系安全带
  8836. int nDriverSmoking; // 驾驶员抽烟
  8837. int nDriverCalling; // 驾驶员打电话
  8838. int nPedestrianRunRedLight; // 行人闯红灯
  8839. int nPassNotInOrder; // 未按规定依次通行
  8840. }BREAKINGSNAPTIMES_INFO;
  8841. ///@brief OSD黑边
  8842. typedef struct tagBLACK_REGION_INFO
  8843. {
  8844. int nHeight; //黑边高度 取值范围:0 ~ ( 8192-原图片高度)
  8845. int nOSDPosition; //黑边位置 0=未知 , 1=顶部 , 2=底部
  8846. }BLACK_REGION_INFO;
  8847. #define MAX_OSD_CUSTOM_SORT_NUM 8
  8848. #define MAX_OSD_CUSTOM_SORT_ELEM_NUM 8
  8849. #define MAX_OSD_CUSTOM_GENERAL_NUM 8
  8850. #define MAX_OSD_ITEM_ATTR_NUM 8
  8851. #define MAX_PRE_POX_STR_LEN 32
  8852. #define MAX_OSD_CUSTOM_NAME_LEN 32
  8853. #define MAX_OSD_CUSTOM_VALUE_LEN 256
  8854. ///@brief 全体OSD项共用属性
  8855. typedef struct tagOSD_WHOLE_ATTR
  8856. {
  8857. BOOL bPositionAsBlackRegion; //位置是否同黑边相同,true时,下面的Position无效
  8858. CFG_RECT stPostion; //位置,不能超过图片范围
  8859. BOOL bNewLine; //超出矩形范围是否换行,bPositionAsBlackRegion为true时有效
  8860. BOOL bLoneVehicle; //车辆信息独立显示,true 一行显示一辆车信息,false 允许多辆车信息显示在一行
  8861. }OSD_WHOLE_ATTR;
  8862. ///@brief OSD属性配置方案内容
  8863. typedef union tagOSD_ATTR_SCHEME
  8864. {
  8865. OSD_WHOLE_ATTR stWholeAttr;
  8866. }OSD_ATTR_SCHEME;
  8867. ///@brief OSD具体叠加元素
  8868. typedef struct tagOSD_CUSTOM_ELEMENT
  8869. {
  8870. int nNameType; //名称类型, 0:szName字段含义参照szOSDOrder字段定义的项
  8871. // 1:"Name"字段表示自定义项,无需解析
  8872. char szName[MAX_OSD_CUSTOM_VALUE_LEN]; // 该项名称
  8873. char szPrefix[MAX_PRE_POX_STR_LEN]; // 叠加前缀字符串
  8874. char szPostfix[MAX_PRE_POX_STR_LEN]; //叠加后缀字符串
  8875. int nSeperaterCount; //后面添加分隔符个数
  8876. }OSD_CUSTOM_ELEMENT;
  8877. ///@brief OSD叠加内容自定义排序
  8878. typedef struct tagOSD_CUSTOM_SORT
  8879. {
  8880. OSD_CUSTOM_ELEMENT stElements[MAX_OSD_CUSTOM_SORT_ELEM_NUM]; //具体叠加元素
  8881. int nElementNum;
  8882. }OSD_CUSTOM_SORT;
  8883. ///@brief 具体叠加元素
  8884. typedef struct tagOSD_CUSTOM_GENERAL_INFO
  8885. {
  8886. BOOL bEnable; //是否叠加
  8887. }OSD_CUSTOM_GENERAL_INFO;
  8888. ///@brief OSD自定义项
  8889. typedef struct tagOSD_CUSTOM_INFO
  8890. {
  8891. OSD_CUSTOM_GENERAL_INFO stGeneralInfos[MAX_OSD_CUSTOM_GENERAL_NUM]; //具体叠加元素
  8892. int nGeneralInfoNum;
  8893. }OSD_CUSTOM_INFO;
  8894. #define MAX_CONF_CHAR 256
  8895. ///@brief OSD属性
  8896. typedef struct tagOSD_INFO
  8897. {
  8898. BLACK_REGION_INFO stBackRegionInfo; //OSD黑边属性
  8899. int nOSDAttrScheme; //OSD属性配置方案 0=未知 , 1=全体OSD项共用属性 , 2=每个OSD项一个属性
  8900. OSD_ATTR_SCHEME stOSDAttrScheme; //OSD属性配置方案内容
  8901. OSD_CUSTOM_SORT stOSDCustomSorts[MAX_OSD_CUSTOM_SORT_NUM]; //OSD叠加内容自定义排序
  8902. int nOSDCustomSortNum;
  8903. int nRedLightTimeDisplay; //OSD红灯时间配置 0=未知,1=违法最后一张,2=所有张
  8904. char cSeperater; //OSD不同项之间的分隔符
  8905. BYTE bReserved[3]; //字节对齐
  8906. char szOSDOrder[MAX_CONF_CHAR];
  8907. int nOSDContentScheme; //0=未知, 1=Mask , 2=CustomizeSort
  8908. OSD_CUSTOM_INFO stOSDCustomInfo; //OSD自定义项
  8909. }OSD_INFO;
  8910. ///@brief CoilConfig
  8911. typedef struct tagCOILCONFIG_INFO
  8912. {
  8913. int nDelayFlashID; // 延时闪光灯序号 每个线圈对应的延时闪关灯序号,范围0~5,0表示不延时任何闪光灯
  8914. int nFlashSerialNum; // 闪光灯序号 范围0~5,0表示不打开闪光灯
  8915. int nRedDirection; // 红灯方向 每个线圈对应的红灯方向:0-不关联,1-左转红灯,2-直行红灯,3-右转红灯,4-待左,5-待直,6-待右, 只在电警中有效
  8916. int nTriggerMode ; // 线圈触发模式 触发模式:0-入线圈触发1-出线圈触发
  8917. int nFlashSerialNum2; //多抓第二张对应闪光灯序号 范围0~5,0表示不打开闪光灯
  8918. int nFlashSerialNum3; //多抓第三张对应闪光灯序号 范围0~5,0表示不打开闪光灯
  8919. }COILCONFIG_INFO;
  8920. ///@brief 线圈映射
  8921. typedef struct tagCOIL_MAP_INFO
  8922. {
  8923. UINT nPhyCoilID; // 物理线圈号
  8924. UINT nLogicCoilID; // 逻辑线圈号
  8925. }COIL_MAP_INFO;
  8926. ///@brief 车检器配置
  8927. typedef struct tagDETECTOR_INFO
  8928. {
  8929. int nDetectBreaking; // 违章类型掩码 从低位到高位依次是:0-正常1-闯红灯2-压线3-逆行4-欠速5-超速6-有车占道
  8930. // 7-黄牌占道 8-闯黄灯 9-违章占公交车道 10-不系安全带 11-驾驶员抽烟 12-驾驶员打电话
  8931. COILCONFIG_INFO arstCoilCfg[MAX_COILCONFIG]; // 线圈配置数组
  8932. int nRoadwayNumber; // 车道号 1-16 ; 0表示不启用
  8933. int nRoadwayDirection; // 车道方向(车开往的方向) 0-南向北 1-西南向东北 2-东 3-西北向东南 4-北向南 5-东北向西南 6-东向西 7-东南向西北 8-忽略
  8934. int nRedLightCardNum; // 卡口图片序号 表示将电警中的某一张图片作为卡口图片(共三张),0表示不采用,1~3,表示采用对应序号的图片
  8935. int nCoilsNumber; // 线圈个数 1-3
  8936. int nOperationType; // 业务模式 0-卡口电警1-电警2-卡口
  8937. int arnCoilsDistance[3]; // 两两线圈的间隔 范围0-1000,单位为厘米
  8938. int nCoilsWidth; // 每个线圈的宽度 0~200cm
  8939. int arnSmallCarSpeedLimit[2]; // 小型车辆速度下限和上限 0~255km/h,不启用大小车限速时作为普通车辆限速
  8940. int arnBigCarSpeedLimit[2]; // 大型车辆速度下限和上限 0~255km/h,启用大小车限速时有效
  8941. int nOverSpeedMargin; // 限高速宽限值 单位:km/h
  8942. int nBigCarOverSpeedMargin; // 大车限高速宽限值 单位:km/h,启用大小车限速时有效
  8943. int nUnderSpeedMargin; // 限低速宽限值 单位:km/h
  8944. int nBigCarUnderSpeedMargin; // 大车限低速宽限值 单位:km/h,启用大小车限速时有效
  8945. bool bSpeedLimitForSize; // 是否启用大小车限速
  8946. bool bMaskRetrograde; // 逆行是否视为违章行为
  8947. BYTE byReserved[2]; // 保留对齐
  8948. char szDrivingDirection[3][MAX_DRIVINGDIRECTION]; //
  8949. // "DrivingDirection" : ["Approach", "上海", "杭州"],行驶方向
  8950. // "Approach"-上行,即车辆离设备部署点越来越近;"Leave"-下行,
  8951. // 即车辆离设备部署点越来越远,第二和第三个参数分别代表上行和
  8952. // 下行的两个地点,UTF-8编码
  8953. int nOverPercentage; // 超速百分比,超过限速百分比后抓拍
  8954. int nCarScheme; // 具体的方案Index,具体方案含义参参考打包环境local.png;根据CFG_TRAFFICSNAPSHOT_INFO.abSchemeRange字段区分作用范围
  8955. int nSigScheme; // 同上,非卡口使用
  8956. BOOL bEnable; // 车道是否有效,只有有效时才抓拍
  8957. int nYellowSpeedLimit[2]; //黄牌车限速上限和下限 范围0~255km/h
  8958. int nRoadType; //工作路段 0 普通公路 1 高速公路
  8959. int nSnapMode; //抓拍模式 0-全部抓拍 1-超速抓拍 2-逆向抓拍
  8960. int nDelayMode; //延时抓拍方案 0-使DelaySnapshotDistance,1-使用DelayTime
  8961. int nDelayTime; //延时抓拍时间 闯红灯第三张抓拍位置距离最后一个线圈的时间,单位毫秒
  8962. int nTriggerMode; //触发模式 0-入线圈触发 1-出线圈触发 2-出入都抓拍 3-关闭
  8963. int nErrorRange; //速度误差值,进线圈2与进线圈3之间的速度误差值,若实际误差大于或等于该值,视速度无效,否则取平均速度 0-20
  8964. double dSpeedCorrection; //速度校正系数,即速度值为测出的值乘以该系数
  8965. int nDirection[2]; //相对车道方向需要上报车辆行驶方向,nDirection[0] 0--空 1--正向 ; nDirection[1] 0--空 1--反向
  8966. char szCustomParkNo[CFG_COMMON_STRING_32 + 1]; // 自定义车位号(停车场用)
  8967. BYTE btReserved[3];
  8968. int nCoilMap; // 有多少对线圈映射关系
  8969. COIL_MAP_INFO stuCoilMap[16]; // 线圈号映射关系
  8970. }DETECTOR_INFO;
  8971. ///@brief 雷达信息
  8972. typedef struct tagRADAR_INFO
  8973. {
  8974. int nAngle; //角度,用于修正雷达探头安装的角度造成的速度误差,范围[0,90]
  8975. int nAntiJammingValue; //抗干扰门槛值
  8976. int nComeInValue; //来向进入门槛值,取值范围[0,65535]
  8977. int nComeOutValue; //来向离开门槛值
  8978. int nDelayTime; //雷达延时,单位ms,范围[0,255]
  8979. DWORD nDetectBreaking; //违章类型掩码,从低位到高位依次是:
  8980. //0-正常,1-闯红灯, 2-压线, 3-逆行,4-欠速
  8981. //5-超速,6-有车占道,7-黄牌占道,8-闯黄灯,9-违章占公交车道
  8982. int nDetectMode; //检测模式 0-车头检测 1-车尾检测 2-双向检测
  8983. int nInstallMode; //雷达安装方式 0-侧面安装 1-上方安装
  8984. int nLevel; //灵敏度,0级灵敏度最高,范围[0,5]
  8985. int nMultiTargetFilter; //多目标过滤模式,0-正常 1-过滤
  8986. int nWentEndValue; //去向信号结束门槛值
  8987. int nWentInValue; //去向进入门槛值
  8988. int nWentOutValue; //去向离开门槛值
  8989. }RADAR_INFO;
  8990. ///@brief 视频抓拍速度来源
  8991. typedef enum tagEM_MIX_SNAP_SPEED_SOURCE
  8992. {
  8993. EM_SNAP_SPEED_SOURCE_UNKNOWN, // 未知
  8994. EM_SNAP_SPEED_SOURCE_VIDEO, // 视频
  8995. EM_SNAP_SPEED_SOURCE_RADAR, // 雷达
  8996. }EM_MIX_SNAP_SPEED_SOURCE;
  8997. ///@brief 报警联动信息扩展
  8998. typedef struct tagCFG_ALARM_MSG_HANDLE_EX
  8999. {
  9000. int nSnapshotTitleFontSize[256]; ///标题文本字体大小,单位像素,对应SnapshotTitle,个数与stuSnapshotTitle匹配。
  9001. char szReserved[1024]; /// 预留字节
  9002. }CFG_ALARM_MSG_HANDLE_EX;
  9003. ///@brief 交通抓拍信息
  9004. typedef struct tagCFG_TRAFFICSNAPSHOT_INFO
  9005. {
  9006. char szDeviceAddress[MAX_DEVICE_ADDRESS]; // 设备地址 UTF-8编码,256字节
  9007. DWORD nVideoTitleMask; // OSD叠加类型掩码 从低位到高位分别表示:0-时间 1-地点 2-车牌3-车长 4-车速 5-限速6-大车限速 7-小车限速8-超速 9-违法代码10-车道号 11-车身颜色 12-车牌类型 13-车牌颜色14-红灯点亮时间 15-违章类型 16-雷达方向 17-设备编号 18-标定到期时间 19-车型 20-行驶方向
  9008. int nRedLightMargin; // 红灯冗余间隔时间 红灯开始的一段时间内,车辆通行不算闯红灯,单位:秒
  9009. float fLongVehicleLengthLevel; // 超长车长度最小阈值 单位:米,包含
  9010. float arfLargeVehicleLengthLevel[2]; // 大车长度阈值 单位:米,包含小值
  9011. float arfMediumVehicleLengthLevel[2]; // 中型车长度阈值 单位:米,包含小值
  9012. float arfSmallVehicleLengthLevel[2]; // 小车长度阈值 单位:米,包含小值
  9013. float fMotoVehicleLengthLevel; // 摩托车长度最大阈值 单位:米,不包含
  9014. BREAKINGSNAPTIMES_INFO stBreakingSnapTimes; // 违章抓拍张数
  9015. DETECTOR_INFO arstDetector[MAX_DETECTOR]; // 车检器配置,下标是车道号
  9016. int nCarType; // 抓拍车辆类型 0-大小车都抓拍1-抓拍小车2-抓拍大车3-大小车都不抓拍
  9017. int nMaxSpeed; // 当测得的速度超过最大速度时,则以最大速度计 0~255km/h
  9018. int nFrameMode; // 帧间隔模式 1-速度自适应(超过速度上限取0间隔,低于速度下限取2间隔,中间取1间隔)2-由联动参数决定
  9019. int arnAdaptiveSpeed[2]; // 速度自适应下限和上限
  9020. CFG_ALARM_MSG_HANDLE stuEventHandler; // 交通抓拍联动参数
  9021. BOOL abSchemeRange; // TRUE:方案针对相机,以车到0的值为准;FALSE:方案针对车道。不可以修改此字段数据, 只内部使用
  9022. DWORD nVideoTitleMask1; // 从低位到高位分别表示:0-车标 1-红灯结束时间 2-设备制造商 3-小车低限速 4-大车低限速 5-小车高限速 6-大车高限速 7-设备工作模式 8-通用自定义 9-车道自定义 10-抓拍触发源 11-停车场区域12-车辆类型(面包车、轿车等等) 13-中车低限速 14-中车高限速 15-道路方向 16-GPS信息
  9023. DWORD nMergeVideoTitleMask; // 合成图片OSD叠加类型掩码 参照nVideoTitleMask字段
  9024. DWORD nMergeVideoTitleMask1; // 合成图片OSD叠加类型掩码 参照nVideoTitleMask1字段
  9025. int nTriggerSource; // 触发源掩码 0-RS232 1-RS485 2-IO 3-Video 4-Net
  9026. int nSnapMode; // 抓拍模式 0-全部抓拍 1-超速抓拍 2-逆向抓拍 3-PK模式
  9027. int nWorkMode; // 工作模式 0-自动模式,1-线圈抓拍模式,2-线圈抓拍识别,3-视频抓拍,4-视频识别, 5-混合抓拍(带识别)
  9028. int nCarThreShold; // 车长阈值 区分大小车长的阈值,单位: cm
  9029. int nSnapType; // 抓拍或抓录选择 0-正常抓拍模式 1-视频抓拍模式 2-黑屏快抓模式
  9030. int nCustomFrameInterval[3]; // 自定义抓拍帧间隔 第一个元素指车速小于速度自适应下限时的抓拍帧间隔,依次类推
  9031. int nKeepAlive; // 与雷达、车检器的默认保活周期 单位秒
  9032. OSD_INFO stOSD; // 原始图片OSD参数配置
  9033. OSD_INFO stMergeOSD; // 合成图片OSD参数配置
  9034. CFG_NET_TIME stValidUntilTime; // 标定到期时间,指该时间点之前抓拍照片有效
  9035. RADAR_INFO stRadar;
  9036. char szRoadwayCode[MAX_ROADWAYNO]; // 道路代码
  9037. DWORD nVideoTitleMask2; // 原始图片OSD叠加类型掩码2 从低位到高位分别表示:0-国别 1-尾气数据
  9038. DWORD nMergeVideoTitleMask2; // 合成图片OSD叠加类型掩码2 参照nVideoTitleMask2字段
  9039. int nParkType; // 出入口类型,0-默认( 兼容以前,不区分出口/入口 ),1-入口相机, 2-出口相机
  9040. UINT nCoilSpeedAdjustDelayFrameTime; // 线圈速度校正等待时间,范围【500, 4000】,单位:毫秒
  9041. BOOL bCoilSpeedAdjustEnable; // 线圈速度校正使能,TRUE:校正 FALSE:不校正
  9042. UINT nSnapSigMinConfidence; // 触发雷达信号抓拍值,范围【0~100】
  9043. EM_MIX_SNAP_SPEED_SOURCE emMixSnapSpeedSource; // 视频抓拍速度来源
  9044. CFG_ALARM_MSG_HANDLE_EX stuEventHandlerEx; // 交通抓拍联动参数扩展
  9045. }CFG_TRAFFICSNAPSHOT_INFO;
  9046. ///@brief 智能交通抓拍
  9047. typedef struct tagCFG_TRAFFICSNAPSHOT_NEW_INFO
  9048. {
  9049. int nCount; // 有效成员个数
  9050. CFG_TRAFFICSNAPSHOT_INFO stInfo[8]; // 交通抓拍表数组
  9051. }CFG_TRAFFICSNAPSHOT_NEW_INFO;
  9052. ///@brief 交通抓拍(CFG_CMD_TRAFFICSNAPSHOT_MULTI_EX)
  9053. typedef struct tagCFG_TRAFFICSNAPSHOT_NEW_EX_INFO
  9054. {
  9055. CFG_TRAFFICSNAPSHOT_INFO* pstInfo; // 交通抓拍表指针,用户分配,大小为sizeof(CFG_TRAFFICSNAPSHOT_INFO) * nMaxInfoNum
  9056. int nMaxInfoNum; // 用户分配CFG_TRAFFICSNAPSHOT_INFO成员个数
  9057. int nRetInfoNum; // 获取参数时表示获取到CFG_TRAFFICSNAPSHOT_INFO成员个数
  9058. }CFG_TRAFFICSNAPSHOT_NEW_EX_INFO;
  9059. ///@brief 日期
  9060. typedef struct tagCFG_DATA_TIME
  9061. {
  9062. DWORD dwYear; // 年
  9063. DWORD dwMonth; // 月
  9064. DWORD dwDay; // 日
  9065. DWORD dwHour; // 时
  9066. DWORD dwMinute; // 分
  9067. DWORD dwSecond; // 秒
  9068. DWORD dwReserved[2]; // 保留字段
  9069. } CFG_DATA_TIME;
  9070. ///@brief 普通配置本地GUI锁定策略
  9071. typedef struct tagCFG_LOCAL_POLICY_INFO
  9072. {
  9073. BOOL bLockLoginEnable; // 登陆失败可尝试次数使能
  9074. UINT nCheckDuration; // 清零周期,如果规定时间内登陆次数未超过可尝试次数,尝试次数清零
  9075. int nLockLoginTimes; // 登陆失败可尝试次数
  9076. int nLoginFailLockTime; // 登陆失败锁定时间
  9077. char szReserved[128]; // 保留字节
  9078. }CFG_LOCAL_POLICY_INFO;
  9079. ///@brief 普通配置 (CFG_CMD_DEV_GENERRAL) General
  9080. typedef struct tagCFG_DEV_DISPOSITION_INFO
  9081. {
  9082. int nLocalNo; // 本机编号,主要用于遥控器区分不同设备 0~998
  9083. char szMachineName[256]; // 机器名称或编号
  9084. char szMachineAddress[256]; // 机器部署地点即道路编码
  9085. char szMachineGroup[256]; // 机器分组或叫设备所属单位 默认为空,用户可以将不同的设备编为一组,便于管理,可重复。
  9086. char szMachineID[64]; // 机器编号, 联网平台内唯一
  9087. int nLockLoginTimes; // 登陆失败可尝试次数
  9088. int nLoginFailLockTime; // 登陆失败锁定时间
  9089. BOOL bLockLoginEnable; // 登陆失败可尝试次数使能
  9090. CFG_DATA_TIME stuActivationTime; // 启动时间
  9091. UINT nCheckDuration; // 清零周期,如果规定时间内登陆次数未超过可尝试次数,尝试次数清零
  9092. BOOL bUseLocalPolicy; // 是否使用本地GUI锁定策略
  9093. CFG_LOCAL_POLICY_INFO stuLocalPolicy; // 本地GUI锁定策略
  9094. char szMachineName1[256]; // 机器名称或编号
  9095. BYTE bReserved[508]; // 保留字节
  9096. }CFG_DEV_DISPOSITION_INFO;
  9097. ///@brief 超速比例代码
  9098. typedef struct tagOVERSPEED_INFO
  9099. {
  9100. int nSpeedingPercentage[2]; // 超速百分比区间要求区间不能重叠。有效值为0,正数,-1,-1表示无穷大值
  9101. // 如果是欠速:要求区间不能重叠。有效值为0,正数,-1,-1表示无穷大值,欠速百分比的计算方式:限低速-实际车速/限低速
  9102. char szCode[MAX_VIOLATIONCODE]; // 违章代码
  9103. char szDescription[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述
  9104. }CFG_OVERSPEED_INFO;
  9105. typedef CFG_OVERSPEED_INFO CFG_OVERSPEED_HIGHWAY_INFO;
  9106. typedef CFG_OVERSPEED_INFO CFG_UNDERSPEED_INFO;
  9107. typedef CFG_OVERSPEED_INFO CFG_BIG_CAR_OVERSPEED_INFO;
  9108. ///@brief ViolationCode 违章代码配置表
  9109. typedef struct tagVIOLATIONCODE_INFO
  9110. {
  9111. char szRetrograde[MAX_VIOLATIONCODE]; // 逆行
  9112. char szRetrogradeDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9113. char szRetrogradeShowName[MAX_VIOLATIONCODE_DESCRIPT]; //显示名称
  9114. char szRetrogradeHighway[MAX_VIOLATIONCODE]; // 逆行-高速公路
  9115. char szRetrogradeHighwayDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9116. char szRunRedLight[MAX_VIOLATIONCODE]; // 闯红灯
  9117. char szRunRedLightDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9118. char szCrossLane[MAX_VIOLATIONCODE]; // 违章变道
  9119. char szCrossLaneDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9120. char szCrossLaneShowName[MAX_VIOLATIONCODE_DESCRIPT]; //违章变道显示名称
  9121. char szTurnLeft[MAX_VIOLATIONCODE]; // 违章左转
  9122. char szTurnLeftDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9123. char szTurnRight[MAX_VIOLATIONCODE]; // 违章右转
  9124. char szTurnRightDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9125. char szU_Turn[MAX_VIOLATIONCODE]; // 违章掉头
  9126. char szU_TurnDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9127. char szU_TurnShowName[MAX_VIOLATIONCODE_DESCRIPT]; //显示信息
  9128. char szJam[MAX_VIOLATIONCODE]; // 交通拥堵
  9129. char szJamDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9130. char szParking[MAX_VIOLATIONCODE]; // 违章停车
  9131. char szParkingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9132. char szParkingShowName[MAX_VIOLATIONCODE_DESCRIPT]; //违章停车显示名称
  9133. // 超速 和 超速比例 只需且必须有一个配置
  9134. char szOverSpeed[MAX_VIOLATIONCODE]; // 超速
  9135. char szOverSpeedDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9136. CFG_OVERSPEED_INFO stOverSpeedConfig[5]; // 超速比例代码
  9137. // 超速(高速公路) 和 超速比例(高速公路) 只需且必须有一个配置
  9138. char szOverSpeedHighway[MAX_VIOLATIONCODE]; // 超速-高速公路
  9139. char szOverSpeedHighwayDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 超速-违章描述信息
  9140. CFG_OVERSPEED_HIGHWAY_INFO stOverSpeedHighwayConfig[5]; // 超速比例代码
  9141. // 欠速 和 欠速比例 只需且必须有一个配置
  9142. char szUnderSpeed[MAX_VIOLATIONCODE]; // 欠速
  9143. char szUnderSpeedDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9144. CFG_UNDERSPEED_INFO stUnderSpeedConfig[5]; // 欠速配置信息 是一个数组,不同的欠速比违章代码不同,为空表示违章代码不区分超速比
  9145. char szOverLine[MAX_VIOLATIONCODE]; // 压线
  9146. char szOverLineDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9147. char szOverLineShowName[MAX_VIOLATIONCODE_DESCRIPT]; //压线显示名称
  9148. char szOverYellowLine[MAX_VIOLATIONCODE]; // 压黄线
  9149. char szOverYellowLineDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  9150. char szYellowInRoute[MAX_VIOLATIONCODE]; // 黄牌占道
  9151. char szYellowInRouteDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 黄牌占道违章描述信息
  9152. char szWrongRoute[MAX_VIOLATIONCODE]; // 不按车道行驶
  9153. char szWrongRouteDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 不按车道行驶违章描述信息
  9154. char szDrivingOnShoulder[MAX_VIOLATIONCODE]; // 路肩行驶
  9155. char szDrivingOnShoulderDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 路肩行驶违章描述信息
  9156. char szPassing[MAX_VIOLATIONCODE]; // 正常行驶
  9157. char szPassingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 正常行驶违章描述信息
  9158. char szNoPassing[MAX_VIOLATIONCODE]; // 禁止行驶
  9159. char szNoPassingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 禁止行驶违章描述信息
  9160. char szFakePlate[MAX_VIOLATIONCODE]; // 套牌
  9161. char szFakePlateDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 套牌违章描述信息
  9162. char szParkingSpaceParking[MAX_VIOLATIONCODE]; // 车位有车
  9163. char szParkingSpaceParkingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 车位有车违章描述信息、
  9164. char szParkingSpaceNoParking[MAX_VIOLATIONCODE]; // 车位无车
  9165. char szParkingSpaceNoParkingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 车位无车违章描述信息
  9166. char szWithoutSafeBelt[MAX_VIOLATIONCODE]; // 不系安全带
  9167. char szWithoutSafeBeltShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 不系安全带显示名称
  9168. char szWithoutSafeBeltDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 不系安全带违章描述信息
  9169. char szDriverSmoking[MAX_VIOLATIONCODE]; // 驾驶员抽烟
  9170. char szDriverSmokingShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员抽烟显示名称
  9171. char szDriverSmokingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员抽烟带违章描述信息
  9172. char szDriverCalling[MAX_VIOLATIONCODE]; // 驾驶员打电话
  9173. char szDriverCallingShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员打电话显示名称
  9174. char szDriverCallingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员打电话违章描述信息
  9175. char szBacking[MAX_VIOLATIONCODE]; // 违章倒车
  9176. char szBackingShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 违章倒车显示名称
  9177. char szBackingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章倒车描述信息
  9178. char szVehicleInBusRoute[MAX_VIOLATIONCODE]; // 违章占道
  9179. char szVehicleInBusRouteShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 违章占道显示名称
  9180. char szVehicleInBusRouteDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章占道描述信息
  9181. char szPedestrianRunRedLight[MAX_VIOLATIONCODE]; // 行人闯红灯
  9182. char szPedestrianRunRedLightShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 行人闯红灯显示名称
  9183. char szPedestrianRunRedLightDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 行人闯红灯描述信息
  9184. char szPassNotInOrder[MAX_VIOLATIONCODE]; // 未按规定依次通行
  9185. char szPassNotInOrderShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 未按规定依次通行显示名称
  9186. char szPassNotInOrderDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 未按规定依次通行描述信息
  9187. char szTrafficBan[MAX_VIOLATIONCODE]; // 机动车违法禁令标识
  9188. char szTrafficBanShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 机动车违法禁令标识显示名称
  9189. char szTrafficBanDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 描述信息
  9190. char szParkingB[MAX_VIOLATIONCODE]; // B类违章停车
  9191. char szParkingBDesc[MAX_VIOLATIONCODE_DESCRIPT]; // B类违章描述信息
  9192. char szParkingBShowName[MAX_VIOLATIONCODE_DESCRIPT]; // B类违章停车显示名称
  9193. char szParkingC[MAX_VIOLATIONCODE]; // C类违章停车
  9194. char szParkingCDesc[MAX_VIOLATIONCODE_DESCRIPT]; // C类违章描述信息
  9195. char szParkingCShowName[MAX_VIOLATIONCODE_DESCRIPT]; // C类违章停车显示名称
  9196. char szParkingD[MAX_VIOLATIONCODE]; // D类违章停车
  9197. char szParkingDDesc[MAX_VIOLATIONCODE_DESCRIPT]; // D类违章描述信息
  9198. char szParkingDShowName[MAX_VIOLATIONCODE_DESCRIPT]; // D类违章停车显示名称
  9199. char szNonMotorHoldUmbrella[MAX_VIOLATIONCODE]; // 非机动车装载伞具代码
  9200. char szNonMotorHoldUmbrellaDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 非机动车装载伞具描述信息
  9201. char szNonMotorHoldUmbrellaShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 非机动车装载伞具显示名称
  9202. int nBigCarOverSpeedConfigNum; // 大车超速配置信息数量
  9203. CFG_BIG_CAR_OVERSPEED_INFO stBigCarOverSpeedConfig[5]; // 大车超速配置信息
  9204. }VIOLATIONCODE_INFO;
  9205. ///@brief 车道检测类型
  9206. typedef enum tagEmCheckType
  9207. {
  9208. EM_CHECK_TYPE_UNKNOWN, // 不识别的检测类型
  9209. EM_CHECK_TYPE_PHYSICAL, // 物理检测
  9210. EM_CHECK_TYPE_VIDEO, // 视频检测
  9211. }EM_CHECK_TYPE;
  9212. ///@brief 车道配置对应事件检测信息
  9213. typedef struct tagTrafficEventCheckInfo
  9214. {
  9215. BOOL abTrafficGate; // 是否携带交通卡口信息
  9216. EM_CHECK_TYPE emTrafficGate; // 交通卡口检测类型
  9217. BOOL abTrafficJunction; // 是否携带交通路口信息
  9218. EM_CHECK_TYPE emTrafficJunction; // 交通路口检测类型
  9219. BOOL abTrafficTollGate; // 是否携带新交通卡口信息
  9220. EM_CHECK_TYPE emTrafficTollGate; // 新交通卡口检测类型
  9221. BOOL abTrafficRunRedLight; // 是否携带交通闯红灯信息
  9222. EM_CHECK_TYPE emTrafficRunRedLight; // 交通闯红灯检测类型
  9223. BOOL abTrafficRunYellowLight; // 是否携带交通闯黄灯信息
  9224. EM_CHECK_TYPE emTrafficRunYellowLight; // 交通闯黄灯检测类型
  9225. BOOL abTrafficOverLine; // 是否携带交通压线信息
  9226. EM_CHECK_TYPE emTrafficOverLine; // 交通压线检测类型
  9227. BOOL abTrafficOverYellowLine; // 是否携带交通压黄线信息
  9228. EM_CHECK_TYPE emTrafficOverYellowLine; // 交通压黄线检测类型
  9229. BOOL abTrafficRetrograde; // 是否携带交通逆行信息
  9230. EM_CHECK_TYPE emTrafficRetrograde; // 交通逆行检测类型
  9231. BOOL abTrafficTurnLeft; // 是否携带交通违章左转信息
  9232. EM_CHECK_TYPE emTrafficTurnLeft; // 交通违章左转检测类型
  9233. BOOL abTrafficTurnRight; // 是否携带交通违章右转信息
  9234. EM_CHECK_TYPE emTrafficTurnRight; // 交通路口违章右转类型
  9235. BOOL abTrafficU_Turn; // 是否携带交通违章掉头信息
  9236. EM_CHECK_TYPE emTrafficU_Turn; // 交通违章掉头检测类型
  9237. BOOL abTrafficCrossLane; // 是否携带交通违章变道信息
  9238. EM_CHECK_TYPE emTrafficCrossLane; // 交通违章变道检测类型
  9239. BOOL abTrafficParking; // 是否携带交通违章停车信息
  9240. EM_CHECK_TYPE emTrafficParking; // 交通违章停车检测类型
  9241. BOOL abTrafficJam; // 是否携带交通拥堵信息
  9242. EM_CHECK_TYPE emTrafficJam; // 交通拥堵检测类型
  9243. BOOL abTrafficIdle; // 是否携带交通交通空闲信息
  9244. EM_CHECK_TYPE emTrafficIdle; // 交通交通空闲检测类型
  9245. BOOL abTrafficWaitingArea; // 是否携带交通违章驶入待行区信息
  9246. EM_CHECK_TYPE emTrafficWaitingArea; // 交通违章驶入待行区检测类型
  9247. BOOL abTrafficUnderSpeed; // 是否携带交通欠速信息
  9248. EM_CHECK_TYPE emTrafficUnderSpeed; // 交通欠速检测类型
  9249. BOOL abTrafficOverSpeed; // 是否携带交通超速信息
  9250. EM_CHECK_TYPE emTrafficOverSpeed; // 交通超速检测类型
  9251. BOOL abTrafficWrongRoute; // 是否携带交通不按车道行驶信息
  9252. EM_CHECK_TYPE emTrafficWrongRoute; // 交通不按车道行驶检测类型
  9253. BOOL abTrafficYellowInRoute; // 是否携带交通黄牌占道信息
  9254. EM_CHECK_TYPE emTrafficYellowInRoute; // 交通黄牌占道检测类型
  9255. BOOL abTrafficVehicleInRoute; // 是否携带交通有车占道信息
  9256. EM_CHECK_TYPE emTrafficVehicleInRoute; // 交通有车占道检测类型
  9257. BOOL abTrafficControl; // 是否携带交通交通管理信息
  9258. EM_CHECK_TYPE emTrafficControl; // 交通交通管理检测类型
  9259. BOOL abTrafficObjectAlarm; // 是否携带交通指定类型抓拍信息
  9260. EM_CHECK_TYPE emTrafficObjectAlarm; // 交通指定类型抓拍检测类型
  9261. BOOL abTrafficAccident; // 是否携带交通交通事故信息
  9262. EM_CHECK_TYPE emTrafficAccident; // 交通交通事故检测类型
  9263. BOOL abTrafficStay; // 是否携带交通交通停留/滞留信息
  9264. EM_CHECK_TYPE emTrafficStay; // 交通交通停留/滞留检测类型
  9265. BOOL abTrafficPedestrainPriority; // 是否携带交通斑马线行人优先信息
  9266. EM_CHECK_TYPE emTrafficPedestrainPriority; // 交通斑马线行人优先检测类型
  9267. BOOL abTrafficPedestrain; // 是否携带交通交通行人事件信息
  9268. EM_CHECK_TYPE emTrafficPedestrain; // 交通交通行人事件检测类型
  9269. BOOL abTrafficThrow; // 是否携带交通交通抛洒物品事件信息
  9270. EM_CHECK_TYPE emTrafficThrow; // 交通交通抛洒物品事件检测类型
  9271. BOOL abTrafficVehicleInBusRoute; // 是否携带交通违章占道信息
  9272. EM_CHECK_TYPE emTrafficVehicleInBusRoute; // 交通违章占道检测类型
  9273. BOOL abTrafficBacking; // 是否携带交通违章倒车信息
  9274. EM_CHECK_TYPE emTrafficBacking; // 交通违章倒车检测类型
  9275. BOOL abTrafficOverStopLine; // 是否携带交通压停止线信息
  9276. EM_CHECK_TYPE emTrafficOverStopLine; // 交通压停止线检测类型
  9277. BOOL abTrafficParkingOnYellowBox; // 是否携带交通黄网格线抓拍信息
  9278. EM_CHECK_TYPE emTrafficParkingOnYellowBox; // 交通黄网格线抓拍检测类型
  9279. BOOL abTrafficParkingSpaceParking; // 是否携带交通车位有车信息
  9280. EM_CHECK_TYPE emTrafficParkingSpaceParking; // 交通车位有车检测类型
  9281. BOOL abTrafficParkingSpaceNoParking; // 是否携带交通车位无车信息
  9282. EM_CHECK_TYPE emTrafficParkingSpaceNoParking; // 交通车位无车检测类型
  9283. BOOL abTrafficParkingSpaceOverLine; // 是否携带交通车位有车压线信息
  9284. EM_CHECK_TYPE emTrafficParkingSpaceOverLine; // 交通车位有车压线检测类型
  9285. BOOL abParkingSpaceDetection; // 是否携带交通多停车位状态检测信息
  9286. EM_CHECK_TYPE emParkingSpaceDetection; // 交通多停车位状态检测检测类型
  9287. BOOL abTrafficRestrictedPlate; // 是否携带交通受限车牌信息
  9288. EM_CHECK_TYPE emTrafficRestrictedPlate; // 交通受限车牌检测类型
  9289. BOOL abTrafficWithoutSafeBelt; // 是否携带交通不系安全带信息
  9290. EM_CHECK_TYPE emTrafficWithoutSafeBelt; // 交通不系安全带检测类型
  9291. BOOL abTrafficNoPassing; // 是否携带交通禁行信息
  9292. EM_CHECK_TYPE emTrafficNoPassing; // 交通禁行检测类型
  9293. BOOL abVehicleAnalyse; // 是否携带交通车辆特征检测分析信息
  9294. EM_CHECK_TYPE emVehicleAnalyse; // 交通车辆特征检测类型
  9295. BOOL abCrossLineDetection; // 是否携带交通警戒线信息
  9296. EM_CHECK_TYPE emCrossLineDetection; // 交通警戒线检测类型
  9297. BOOL abCrossFenceDetection; // 是否携带交通穿越围栏信息
  9298. EM_CHECK_TYPE emCrossFenceDetection; // 交通穿越围栏检测类型
  9299. BOOL abCrossRegionDetection; // 是否携带交通警戒区信息
  9300. EM_CHECK_TYPE emCrossRegionDetection; // 交通警戒区检测类型
  9301. BOOL abPasteDetection; // 是否携带交通ATM贴条信息
  9302. EM_CHECK_TYPE emPasteDetection; // 交通ATM贴条检测类型
  9303. BOOL abLeftDetection; // 是否携带交通物品遗留信息
  9304. EM_CHECK_TYPE emLeftDetection; // 交通物品遗留检测类型
  9305. BOOL abPreservation; // 是否携带交通物品保全信息
  9306. EM_CHECK_TYPE emPreservation; // 交通物品保全检测类型
  9307. BOOL abTakenAwayDetection; // 是否携带交通物品搬移信息
  9308. EM_CHECK_TYPE emTakenAwayDetection; // 交通物品搬移检测类型
  9309. BOOL abStayDetection; // 是否携带交通停留/滞留信息
  9310. EM_CHECK_TYPE emStayDetection; // 交通停留/滞留检测类型
  9311. BOOL abParkingDetection; // 是否携带交通非法停车信息
  9312. EM_CHECK_TYPE emParkingDetection; // 交通非法停车检测类型
  9313. BOOL abWanderDetection; // 是否携带交通徘徊信息
  9314. EM_CHECK_TYPE emWanderDetection; // 交通徘徊检测类型
  9315. BOOL abMoveDetection; // 是否携带交通运动信息
  9316. EM_CHECK_TYPE emMoveDetection; // 交通运动检测类型
  9317. BOOL abTailDetection; // 是否携带交通尾随信息
  9318. EM_CHECK_TYPE emTailDetection; // 交通尾随检测类型
  9319. BOOL abRioterDetection; // 是否携带交通聚集信息
  9320. EM_CHECK_TYPE emRioterDetection; // 交通聚集检测类型
  9321. BOOL abFightDetection; // 是否携带交通打架信息
  9322. EM_CHECK_TYPE emFightDetection; // 交通打架检测类型
  9323. BOOL abRetrogradeDetection; // 是否携带交通逆行信息
  9324. EM_CHECK_TYPE emRetrogradeDetection; // 交通逆行检测类型
  9325. BOOL abFireDetection; // 是否携带交通火焰信息
  9326. EM_CHECK_TYPE emFireDetection; // 交通火焰检测类型
  9327. BOOL abSmokeDetection; // 是否携带交通烟雾信息
  9328. EM_CHECK_TYPE emSmokeDetection; // 交通烟雾检测类型
  9329. BOOL abNumberStat; // 是否携带交通数量统计信息
  9330. EM_CHECK_TYPE emNumberStat; // 交通数量统计检测类型
  9331. BOOL abVideoAbnormalDetection; // 是否携带交通视频异常信息
  9332. EM_CHECK_TYPE emVideoAbnormalDetection; // 交通视频异常检测类型
  9333. BOOL abPSRiseDetection; // 是否携带人员起身检测信息
  9334. EM_CHECK_TYPE emPSRiseDetection; // 人员起身检测检测类型
  9335. BOOL abFaceDetection; // 是否携带目标检测信息
  9336. EM_CHECK_TYPE emFaceDetection; // 目标检测检测类型
  9337. BOOL abFaceRecognition; // 是否携带目标识别信息
  9338. EM_CHECK_TYPE emFaceRecognition; // 目标识别检测类型
  9339. BOOL abDensityDetection; // 是否携带密集度检测信息
  9340. EM_CHECK_TYPE emDensityDetection; // 密集度检测检测类型
  9341. BOOL abQueueDetection; // 是否携带排队检测信息
  9342. EM_CHECK_TYPE emQueueDetection; // 排队检测检测类型
  9343. BOOL abClimbDetection; // 是否携带攀高检测信息
  9344. EM_CHECK_TYPE emClimbDetection; // 攀高检测类型
  9345. BOOL abLeaveDetection; // 是否携带离岗检测信息
  9346. EM_CHECK_TYPE emLeaveDetection; // 离岗检测类型
  9347. BOOL abVehicleOnPoliceCar; // 是否携带车载警车信息
  9348. EM_CHECK_TYPE emVehicleOnPoliceCar; // 车载警车检测类型
  9349. BOOL abVehicleOnBus; // 是否携带车载公交信息
  9350. EM_CHECK_TYPE emVehicleOnBus; // 车载公交检测类型
  9351. BOOL abVehicleOnSchoolBus; // 是否携带车载校车信息
  9352. EM_CHECK_TYPE emVehicleOnSchoolBus; // 车载校车检测类型
  9353. BOOL abStandUpDetection; // 是否携带学生起立信息
  9354. EM_CHECK_TYPE emStandUpDetection; // 学生起立检测类型
  9355. }TRAFFIC_EVENT_CHECK_INFO;
  9356. ///@brief 违章类型支持的检测模式掩码配置
  9357. typedef struct tagTrafficEventCheckMask
  9358. {
  9359. BOOL abTrafficGate; // 是否携带交通卡口信息
  9360. int nTrafficGate; // 交通卡口检测模式掩码
  9361. BOOL abTrafficJunction; // 是否携带交通路口信息
  9362. int nTrafficJunction; // 交通路口检测模式掩码
  9363. BOOL abTrafficTollGate; // 是否携带新交通卡口信息
  9364. int nTrafficTollGate; // 新交通卡口检测模式掩码
  9365. BOOL abTrafficRunRedLight; // 是否携带交通闯红灯信息
  9366. int nTrafficRunRedLight; // 交通闯红灯检测模式掩码
  9367. BOOL abTrafficRunYellowLight; // 是否携带交通闯黄灯信息
  9368. int nTrafficRunYellowLight; // 交通闯黄灯检测模式掩码
  9369. BOOL abTrafficOverLine; // 是否携带交通压线信息
  9370. int nTrafficOverLine; // 交通压线检测模式掩码
  9371. BOOL abTrafficOverYellowLine; // 是否携带交通压黄线信息
  9372. int nTrafficOverYellowLine; // 交通压黄线检测模式掩码
  9373. BOOL abTrafficRetrograde; // 是否携带交通逆行信息
  9374. int nTrafficRetrograde; // 交通逆行检测模式掩码
  9375. BOOL abTrafficTurnLeft; // 是否携带交通违章左转信息
  9376. int nTrafficTurnLeft; // 交通违章左转检测模式掩码
  9377. BOOL abTrafficTurnRight; // 是否携带交通违章右转信息
  9378. int nTrafficTurnRight; // 交通路口违章右转类型
  9379. BOOL abTrafficU_Turn; // 是否携带交通违章掉头信息
  9380. int nTrafficU_Turn; // 交通违章掉头检测模式掩码
  9381. BOOL abTrafficCrossLane; // 是否携带交通违章变道信息
  9382. int nTrafficCrossLane; // 交通违章变道检测模式掩码
  9383. BOOL abTrafficParking; // 是否携带交通违章停车信息
  9384. int nTrafficParking; // 交通违章停车检测模式掩码
  9385. BOOL abTrafficJam; // 是否携带交通拥堵信息
  9386. int nTrafficJam; // 交通拥堵检测模式掩码
  9387. BOOL abTrafficIdle; // 是否携带交通交通空闲信息
  9388. int nTrafficIdle; // 交通交通空闲检测模式掩码
  9389. BOOL abTrafficWaitingArea; // 是否携带交通违章驶入待行区信息
  9390. int nTrafficWaitingArea; // 交通违章驶入待行区检测模式掩码
  9391. BOOL abTrafficUnderSpeed; // 是否携带交通欠速信息
  9392. int nTrafficUnderSpeed; // 交通欠速检测模式掩码
  9393. BOOL abTrafficOverSpeed; // 是否携带交通超速信息
  9394. int nTrafficOverSpeed; // 交通超速检测模式掩码
  9395. BOOL abTrafficWrongRoute; // 是否携带交通不按车道行驶信息
  9396. int nTrafficWrongRoute; // 交通不按车道行驶检测模式掩码
  9397. BOOL abTrafficYellowInRoute; // 是否携带交通黄牌占道信息
  9398. int nTrafficYellowInRoute; // 交通黄牌占道检测模式掩码
  9399. BOOL abTrafficVehicleInRoute; // 是否携带交通有车占道信息
  9400. int nTrafficVehicleInRoute; // 交通有车占道检测模式掩码
  9401. BOOL abTrafficControl; // 是否携带交通交通管理信息
  9402. int nTrafficControl; // 交通交通管理检测模式掩码
  9403. BOOL abTrafficObjectAlarm; // 是否携带交通指定类型抓拍信息
  9404. int nTrafficObjectAlarm; // 交通指定类型抓拍检测模式掩码
  9405. BOOL abTrafficAccident; // 是否携带交通交通事故信息
  9406. int nTrafficAccident; // 交通交通事故检测模式掩码
  9407. BOOL abTrafficStay; // 是否携带交通交通停留/滞留信息
  9408. int nTrafficStay; // 交通交通停留/滞留检测模式掩码
  9409. BOOL abTrafficPedestrainPriority; // 是否携带交通斑马线行人优先信息
  9410. int nTrafficPedestrainPriority; // 交通斑马线行人优先检测模式掩码
  9411. BOOL abTrafficPedestrain; // 是否携带交通交通行人事件信息
  9412. int nTrafficPedestrain; // 交通交通行人事件检测模式掩码
  9413. BOOL abTrafficThrow; // 是否携带交通交通抛洒物品事件信息
  9414. int nTrafficThrow; // 交通交通抛洒物品事件检测模式掩码
  9415. BOOL abTrafficVehicleInBusRoute; // 是否携带交通违章占道信息
  9416. int nTrafficVehicleInBusRoute; // 交通违章占道检测模式掩码
  9417. BOOL abTrafficBacking; // 是否携带交通违章倒车信息
  9418. int nTrafficBacking; // 交通违章倒车检测模式掩码
  9419. BOOL abTrafficOverStopLine; // 是否携带交通压停止线信息
  9420. int nTrafficOverStopLine; // 交通压停止线检测模式掩码
  9421. BOOL abTrafficParkingOnYellowBox; // 是否携带交通黄网格线抓拍信息
  9422. int nTrafficParkingOnYellowBox; // 交通黄网格线抓拍检测模式掩码
  9423. BOOL abTrafficParkingSpaceParking; // 是否携带交通车位有车信息
  9424. int nTrafficParkingSpaceParking; // 交通车位有车检测模式掩码
  9425. BOOL abTrafficParkingSpaceNoParking; // 是否携带交通车位无车信息
  9426. int nTrafficParkingSpaceNoParking; // 交通车位无车检测模式掩码
  9427. BOOL abTrafficParkingSpaceOverLine; // 是否携带交通车位有车压线信息
  9428. int nTrafficParkingSpaceOverLine; // 交通车位有车压线检测模式掩码
  9429. BOOL abParkingSpaceDetection; // 是否携带交通多停车位状态检测信息
  9430. int nParkingSpaceDetection; // 交通多停车位状态检测检测模式掩码
  9431. BOOL abTrafficRestrictedPlate; // 是否携带交通受限车牌信息
  9432. int nTrafficRestrictedPlate; // 交通受限车牌检测模式掩码
  9433. BOOL abTrafficWithoutSafeBelt; // 是否携带交通不系安全带信息
  9434. int nTrafficWithoutSafeBelt; // 交通不系安全带检测模式掩码
  9435. BOOL abTrafficNoPassing; // 是否携带交通禁行信息
  9436. int nTrafficNoPassing; // 交通禁行检测模式掩码
  9437. BOOL abVehicleAnalyse; // 是否携带交通车辆特征检测分析信息
  9438. int nVehicleAnalyse; // 交通车辆特征检测模式掩码
  9439. BOOL abCrossLineDetection; // 是否携带交通警戒线信息
  9440. int nCrossLineDetection; // 交通警戒线检测模式掩码
  9441. BOOL abCrossFenceDetection; // 是否携带交通穿越围栏信息
  9442. int nCrossFenceDetection; // 交通穿越围栏检测模式掩码
  9443. BOOL abCrossRegionDetection; // 是否携带交通警戒区信息
  9444. int nCrossRegionDetection; // 交通警戒区检测模式掩码
  9445. BOOL abPasteDetection; // 是否携带交通ATM贴条信息
  9446. int nPasteDetection; // 交通ATM贴条检测模式掩码
  9447. BOOL abLeftDetection; // 是否携带交通物品遗留信息
  9448. int nLeftDetection; // 交通物品遗留检测模式掩码
  9449. BOOL abPreservation; // 是否携带交通物品保全信息
  9450. int nPreservation; // 交通物品保全检测模式掩码
  9451. BOOL abTakenAwayDetection; // 是否携带交通物品搬移信息
  9452. int nTakenAwayDetection; // 交通物品搬移检测模式掩码
  9453. BOOL abStayDetection; // 是否携带交通停留/滞留信息
  9454. int nStayDetection; // 交通停留/滞留检测模式掩码
  9455. BOOL abParkingDetection; // 是否携带交通非法停车信息
  9456. int nParkingDetection; // 交通非法停车检测模式掩码
  9457. BOOL abWanderDetection; // 是否携带交通徘徊信息
  9458. int nWanderDetection; // 交通徘徊检测模式掩码
  9459. BOOL abMoveDetection; // 是否携带交通运动信息
  9460. int nMoveDetection; // 交通运动检测模式掩码
  9461. BOOL abTailDetection; // 是否携带交通尾随信息
  9462. int nTailDetection; // 交通尾随检测模式掩码
  9463. BOOL abRioterDetection; // 是否携带交通聚集信息
  9464. int nRioterDetection; // 交通聚集检测模式掩码
  9465. BOOL abFightDetection; // 是否携带交通打架信息
  9466. int nFightDetection; // 交通打架检测模式掩码
  9467. BOOL abRetrogradeDetection; // 是否携带交通逆行信息
  9468. int nRetrogradeDetection; // 交通逆行检测模式掩码
  9469. BOOL abFireDetection; // 是否携带交通火焰信息
  9470. int nFireDetection; // 交通火焰检测模式掩码
  9471. BOOL abSmokeDetection; // 是否携带交通烟雾信息
  9472. int nSmokeDetection; // 交通烟雾检测模式掩码
  9473. BOOL abNumberStat; // 是否携带交通数量统计信息
  9474. int nNumberStat; // 交通数量统计检测模式掩码
  9475. BOOL abVideoAbnormalDetection; // 是否携带交通视频异常信息
  9476. int nVideoAbnormalDetection; // 交通视频异常检测模式掩码
  9477. BOOL abPSRiseDetection; // 是否携带囚犯起身检测信息
  9478. int nPSRiseDetection; // 囚犯起身检测检测模式掩码
  9479. BOOL abFaceDetection; // 是否携带目标检测信息
  9480. int nFaceDetection; // 目标检测检测模式掩码
  9481. BOOL abFaceRecognition; // 是否携带目标识别信息
  9482. int nFaceRecognition; // 目标识别检测模式掩码
  9483. BOOL abDensityDetection; // 是否携带密集度检测信息
  9484. int nDensityDetection; // 密集度检测检测模式掩码
  9485. BOOL abQueueDetection; // 是否携带排队检测信息
  9486. int nQueueDetection; // 排队检测检测模式掩码
  9487. BOOL abClimbDetection; // 是否携带攀高检测信息
  9488. int nClimbDetection; // 攀高检测模式掩码
  9489. BOOL abLeaveDetection; // 是否携带离岗检测信息
  9490. int nLeaveDetection; // 离岗检测模式掩码
  9491. BOOL abVehicleOnPoliceCar; // 是否携带车载警车信息
  9492. int nVehicleOnPoliceCar; // 车载警车检测模式掩码
  9493. BOOL abVehicleOnBus; // 是否携带车载公交信息
  9494. int nVehicleOnBus; // 车载公交检测模式掩码
  9495. BOOL abVehicleOnSchoolBus; // 是否携带车载校车信息
  9496. int nVehicleOnSchoolBus; // 车载校车检测模式掩码
  9497. }TRAFFIC_EVENT_CHECK_MASK;
  9498. ///@brief 违章抓拍时间配置表
  9499. typedef struct tagTimeScheduleInfo
  9500. {
  9501. BOOL bEnable; // 是否启用时间表
  9502. CFG_TIME_SECTION stuTimeSchedule[WEEK_DAY_NUM][MAX_REC_TSECT]; // 时间表
  9503. }TIME_SCHEDULE_INFO;
  9504. ///@brief 违章抓拍自定义时间配置
  9505. typedef struct tagViolationTimeSchedule
  9506. {
  9507. BOOL abTrafficGate; // 是否携带交通卡口信息
  9508. TIME_SCHEDULE_INFO stTrafficGate; // 交通卡口时间配置
  9509. BOOL abTrafficJunction; // 是否携带交通路口信息
  9510. TIME_SCHEDULE_INFO stTrafficJunction; // 交通路口时间配置
  9511. BOOL abTrafficTollGate; // 是否携带新交通卡口信息
  9512. TIME_SCHEDULE_INFO stTrafficTollGate; // 新交通卡口时间配置
  9513. BOOL abTrafficRunRedLight; // 是否携带交通闯红灯信息
  9514. TIME_SCHEDULE_INFO stTrafficRunRedLight; // 交通闯红灯时间配置
  9515. BOOL abTrafficRunYellowLight; // 是否携带交通闯黄灯信息
  9516. TIME_SCHEDULE_INFO stTrafficRunYellowLight; // 交通闯黄灯时间配置
  9517. BOOL abTrafficOverLine; // 是否携带交通压线信息
  9518. TIME_SCHEDULE_INFO stTrafficOverLine; // 交通压线时间配置
  9519. BOOL abTrafficOverYellowLine; // 是否携带交通压黄线信息
  9520. TIME_SCHEDULE_INFO stTrafficOverYellowLine; // 交通压黄线时间配置
  9521. BOOL abTrafficRetrograde; // 是否携带交通逆行信息
  9522. TIME_SCHEDULE_INFO stTrafficRetrograde; // 交通逆行时间配置
  9523. BOOL abTrafficTurnLeft; // 是否携带交通违章左转信息
  9524. TIME_SCHEDULE_INFO stTrafficTurnLeft; // 交通违章左转时间配置
  9525. BOOL abTrafficTurnRight; // 是否携带交通违章右转信息
  9526. TIME_SCHEDULE_INFO stTrafficTurnRight; // 交通路口违章右转类型
  9527. BOOL abTrafficU_Turn; // 是否携带交通违章掉头信息
  9528. TIME_SCHEDULE_INFO stTrafficU_Turn; // 交通违章掉头时间配置
  9529. BOOL abTrafficCrossLane; // 是否携带交通违章变道信息
  9530. TIME_SCHEDULE_INFO stTrafficCrossLane; // 交通违章变道时间配置
  9531. BOOL abTrafficParking; // 是否携带交通违章停车信息
  9532. TIME_SCHEDULE_INFO stTrafficParking; // 交通违章停车时间配置
  9533. BOOL abTrafficJam; // 是否携带交通拥堵信息
  9534. TIME_SCHEDULE_INFO stTrafficJam; // 交通拥堵时间配置
  9535. BOOL abTrafficIdle; // 是否携带交通交通空闲信息
  9536. TIME_SCHEDULE_INFO stTrafficIdle; // 交通交通空闲时间配置
  9537. BOOL abTrafficWaitingArea; // 是否携带交通违章驶入待行区信息
  9538. TIME_SCHEDULE_INFO stTrafficWaitingArea; // 交通违章驶入待行区时间配置
  9539. BOOL abTrafficUnderSpeed; // 是否携带交通欠速信息
  9540. TIME_SCHEDULE_INFO stTrafficUnderSpeed; // 交通欠速时间配置
  9541. BOOL abTrafficOverSpeed; // 是否携带交通超速信息
  9542. TIME_SCHEDULE_INFO stTrafficOverSpeed; // 交通超速时间配置
  9543. BOOL abTrafficWrongRoute; // 是否携带交通不按车道行驶信息
  9544. TIME_SCHEDULE_INFO stTrafficWrongRoute; // 交通不按车道行驶时间配置
  9545. BOOL abTrafficYellowInRoute; // 是否携带交通黄牌占道信息
  9546. TIME_SCHEDULE_INFO stTrafficYellowInRoute; // 交通黄牌占道时间配置
  9547. BOOL abTrafficVehicleInRoute; // 是否携带交通有车占道信息
  9548. TIME_SCHEDULE_INFO stTrafficVehicleInRoute; // 交通有车占道时间配置
  9549. BOOL abTrafficControl; // 是否携带交通交通管理信息
  9550. TIME_SCHEDULE_INFO stTrafficControl; // 交通交通管理时间配置
  9551. BOOL abTrafficObjectAlarm; // 是否携带交通指定类型抓拍信息
  9552. TIME_SCHEDULE_INFO stTrafficObjectAlarm; // 交通指定类型抓拍时间配置
  9553. BOOL abTrafficAccident; // 是否携带交通交通事故信息
  9554. TIME_SCHEDULE_INFO stTrafficAccident; // 交通交通事故时间配置
  9555. BOOL abTrafficStay; // 是否携带交通交通停留/滞留信息
  9556. TIME_SCHEDULE_INFO stTrafficStay; // 交通交通停留/滞留时间配置
  9557. BOOL abTrafficPedestrainPriority; // 是否携带交通斑马线行人优先信息
  9558. TIME_SCHEDULE_INFO stTrafficPedestrainPriority; // 交通斑马线行人优先时间配置
  9559. BOOL abTrafficPedestrain; // 是否携带交通交通行人事件信息
  9560. TIME_SCHEDULE_INFO stTrafficPedestrain; // 交通交通行人事件时间配置
  9561. BOOL abTrafficThrow; // 是否携带交通交通抛洒物品事件信息
  9562. TIME_SCHEDULE_INFO stTrafficThrow; // 交通交通抛洒物品事件时间配置
  9563. BOOL abTrafficVehicleInBusRoute; // 是否携带交通违章占道信息
  9564. TIME_SCHEDULE_INFO stTrafficVehicleInBusRoute; // 交通违章占道时间配置
  9565. BOOL abTrafficBacking; // 是否携带交通违章倒车信息
  9566. TIME_SCHEDULE_INFO stTrafficBacking; // 交通违章倒车时间配置
  9567. BOOL abTrafficOverStopLine; // 是否携带交通压停止线信息
  9568. TIME_SCHEDULE_INFO stTrafficOverStopLine; // 交通压停止线时间配置
  9569. BOOL abTrafficParkingOnYellowBox; // 是否携带交通黄网格线抓拍信息
  9570. TIME_SCHEDULE_INFO stTrafficParkingOnYellowBox; // 交通黄网格线抓拍时间配置
  9571. BOOL abTrafficParkingSpaceParking; // 是否携带交通车位有车信息
  9572. TIME_SCHEDULE_INFO stTrafficParkingSpaceParking; // 交通车位有车时间配置
  9573. BOOL abTrafficParkingSpaceNoParking; // 是否携带交通车位无车信息
  9574. TIME_SCHEDULE_INFO stTrafficParkingSpaceNoParking; // 交通车位无车时间配置
  9575. BOOL abTrafficParkingSpaceOverLine; // 是否携带交通车位有车压线信息
  9576. TIME_SCHEDULE_INFO stTrafficParkingSpaceOverLine; // 交通车位有车压线时间配置
  9577. BOOL abParkingSpaceDetection; // 是否携带交通多停车位状态检测信息
  9578. TIME_SCHEDULE_INFO stParkingSpaceDetection; // 交通多停车位状态检测时间配置
  9579. BOOL abTrafficRestrictedPlate; // 是否携带交通受限车牌信息
  9580. TIME_SCHEDULE_INFO stTrafficRestrictedPlate; // 交通受限车牌时间配置
  9581. BOOL abTrafficWithoutSafeBelt; // 是否携带交通不系安全带信息
  9582. TIME_SCHEDULE_INFO stTrafficWithoutSafeBelt; // 交通不系安全带时间配置
  9583. BOOL abTrafficNoPassing; // 是否携带交通禁行信息
  9584. TIME_SCHEDULE_INFO stTrafficNoPassing; // 交通禁行时间配置
  9585. BOOL abVehicleAnalyse; // 是否携带交通车辆特征检测分析信息
  9586. TIME_SCHEDULE_INFO stVehicleAnalyse; // 交通车辆特征时间配置
  9587. BOOL abCrossLineDetection; // 是否携带交通警戒线信息
  9588. TIME_SCHEDULE_INFO stCrossLineDetection; // 交通警戒线时间配置
  9589. BOOL abCrossFenceDetection; // 是否携带交通穿越围栏信息
  9590. TIME_SCHEDULE_INFO stCrossFenceDetection; // 交通穿越围栏时间配置
  9591. BOOL abCrossRegionDetection; // 是否携带交通警戒区信息
  9592. TIME_SCHEDULE_INFO stCrossRegionDetection; // 交通警戒区时间配置
  9593. BOOL abPasteDetection; // 是否携带交通ATM贴条信息
  9594. TIME_SCHEDULE_INFO stPasteDetection; // 交通ATM贴条时间配置
  9595. BOOL abLeftDetection; // 是否携带交通物品遗留信息
  9596. TIME_SCHEDULE_INFO stLeftDetection; // 交通物品遗留时间配置
  9597. BOOL abPreservation; // 是否携带交通物品保全信息
  9598. TIME_SCHEDULE_INFO stPreservation; // 交通物品保全时间配置
  9599. BOOL abTakenAwayDetection; // 是否携带交通物品搬移信息
  9600. TIME_SCHEDULE_INFO stTakenAwayDetection; // 交通物品搬移时间配置
  9601. BOOL abStayDetection; // 是否携带交通停留/滞留信息
  9602. TIME_SCHEDULE_INFO stStayDetection; // 交通停留/滞留时间配置
  9603. BOOL abParkingDetection; // 是否携带交通非法停车信息
  9604. TIME_SCHEDULE_INFO stParkingDetection; // 交通非法停车时间配置
  9605. BOOL abWanderDetection; // 是否携带交通徘徊信息
  9606. TIME_SCHEDULE_INFO stWanderDetection; // 交通徘徊时间配置
  9607. BOOL abMoveDetection; // 是否携带交通运动信息
  9608. TIME_SCHEDULE_INFO stMoveDetection; // 交通运动时间配置
  9609. BOOL abTailDetection; // 是否携带交通尾随信息
  9610. TIME_SCHEDULE_INFO stTailDetection; // 交通尾随时间配置
  9611. BOOL abRioterDetection; // 是否携带交通聚集信息
  9612. TIME_SCHEDULE_INFO stRioterDetection; // 交通聚集时间配置
  9613. BOOL abFightDetection; // 是否携带交通打架信息
  9614. TIME_SCHEDULE_INFO stFightDetection; // 交通打架时间配置
  9615. BOOL abRetrogradeDetection; // 是否携带交通逆行信息
  9616. TIME_SCHEDULE_INFO stRetrogradeDetection; // 交通逆行时间配置
  9617. BOOL abFireDetection; // 是否携带交通火焰信息
  9618. TIME_SCHEDULE_INFO stFireDetection; // 交通火焰时间配置
  9619. BOOL abSmokeDetection; // 是否携带交通烟雾信息
  9620. TIME_SCHEDULE_INFO stSmokeDetection; // 交通烟雾时间配置
  9621. BOOL abNumberStat; // 是否携带交通数量统计信息
  9622. TIME_SCHEDULE_INFO stNumberStat; // 交通数量统计时间配置
  9623. BOOL abVideoAbnormalDetection; // 是否携带交通视频异常信息
  9624. TIME_SCHEDULE_INFO stVideoAbnormalDetection; // 交通视频异常时间配置
  9625. BOOL abPSRiseDetection; // 是否携带囚犯起身检测信息
  9626. TIME_SCHEDULE_INFO stPSRiseDetection; // 囚犯起身检测时间配置
  9627. BOOL abFaceDetection; // 是否携带目标检测信息
  9628. TIME_SCHEDULE_INFO stFaceDetection; // 目标检测时间配置
  9629. BOOL abFaceRecognition; // 是否携带目标识别信息
  9630. TIME_SCHEDULE_INFO stFaceRecognition; // 目标识别时间配置
  9631. BOOL abDensityDetection; // 是否携带密集度检测信息
  9632. TIME_SCHEDULE_INFO stDensityDetection; // 密集度检测时间配置
  9633. BOOL abQueueDetection; // 是否携带排队检测信息
  9634. TIME_SCHEDULE_INFO stQueueDetection; // 排队检测时间配置
  9635. BOOL abClimbDetection; // 是否携带攀高检测信息
  9636. TIME_SCHEDULE_INFO stClimbDetection; // 攀高时间配置
  9637. BOOL abLeaveDetection; // 是否携带离岗检测信息
  9638. TIME_SCHEDULE_INFO stLeaveDetection; // 离岗时间配置
  9639. BOOL abVehicleOnPoliceCar; // 是否携带车载警车信息
  9640. TIME_SCHEDULE_INFO stVehicleOnPoliceCar; // 车载警车时间配置
  9641. BOOL abVehicleOnBus; // 是否携带车载公交信息
  9642. TIME_SCHEDULE_INFO stVehicleOnBus; // 车载公交时间配置
  9643. BOOL abVehicleOnSchoolBus; // 是否携带车载校车信息
  9644. TIME_SCHEDULE_INFO stVehicleOnSchoolBus; // 车载校车时间配置
  9645. BOOL abTrafficNonMotorHoldUmbrella; // 是否携带非机动车装载伞具时间配置
  9646. TIME_SCHEDULE_INFO stTrafficNonMotorHoldUmbrella; // 非机动车装载伞具时间配置
  9647. }VIOLATION_TIME_SCHEDULE;
  9648. ///@brief MixModeConfig中关于车道配置信息
  9649. typedef struct tagMixModeLaneInfo
  9650. {
  9651. unsigned int nLaneNum; // 车道配置个数
  9652. TRAFFIC_EVENT_CHECK_INFO stCheckInfo[MAX_LANE_CONFIG_NUMBER]; // 车道配置对应事件检测信息
  9653. }MIX_MODE_LANE_INFO;
  9654. ///@brief MixModeConfig 混合模式违章配置
  9655. typedef struct tagMIX_MODE_CONFIG
  9656. {
  9657. BOOL bLaneDiffEnable; // 是否按车道区分
  9658. MIX_MODE_LANE_INFO stLaneInfo;
  9659. TRAFFIC_EVENT_CHECK_INFO stCheckInfo;
  9660. }MIX_MODE_CONFIG;
  9661. ///@brief 标定有效期
  9662. typedef struct tagPeriodOfValidity
  9663. {
  9664. CFG_NET_TIME stBeginTime; // 标定开始时间
  9665. CFG_NET_TIME stEndTime; // 标定到期时间
  9666. }PERIOD_OF_VALIDITY;
  9667. ///@brief 交通全局配置对应标定相关配置
  9668. typedef struct tagTrafficCalibrationInfo
  9669. {
  9670. char szUnit[CFG_COMMON_STRING_256]; // 标定单位
  9671. char szCertificate[CFG_COMMON_STRING_256]; // 标定证书
  9672. PERIOD_OF_VALIDITY stPeriodOfValidity; // 标定有效期
  9673. }TRAFFIC_CALIBRATION_INFO;
  9674. ///@brief 交通配置对应传输策略
  9675. typedef enum tagEmTransferPolicy
  9676. {
  9677. EM_TRAFFIC_TRANSFER_UNKNOWN, // 未知策略
  9678. EM_TRAFFIC_TRANSFER_REALTIME, // "RealtimePriority" 实时优先
  9679. EM_TRAFFIC_TRANSFER_SEQUENCE, // "SequencePriority" 顺序优先
  9680. }EM_TRANSFER_POLICY;
  9681. ///@brief 交通全局配置对应图片命名格式参数配置
  9682. typedef struct tagTrafficNamingFormat
  9683. {
  9684. char szFormat[CFG_COMMON_STRING_256]; // 图片格式
  9685. }TRAFFIC_NAMING_FORMAT;
  9686. ///@brief 交通全局配置对应灯组状态配置
  9687. typedef struct tagEnableLightStateInfo
  9688. {
  9689. BOOL bEnable; // 是否启动应用层收到的灯组状态给底层
  9690. }ENABLE_LIGHT_STATE_INFO;
  9691. ///@brief CFG_CMD_TRAFFICGLOBAL 交通全局配置配置表
  9692. typedef struct tagCFG_TRAFFICGLOBAL_INFO
  9693. {
  9694. VIOLATIONCODE_INFO stViolationCode; // 违章代码配置表
  9695. BOOL bEnableRedList; // 使能红名单检测,使能后,名单内车辆违章不上报
  9696. BOOL abViolationTimeSchedule; // 是否携带违章抓拍自定义时间配置
  9697. VIOLATION_TIME_SCHEDULE stViolationTimeSchedule; // 违章抓拍自定义时间配置
  9698. BOOL abEnableBlackList; // 是否携带使能禁止名单检测信息
  9699. BOOL bEnableBlackList; // 使能禁止名单检测
  9700. BOOL abPriority; // 是否携带违章优先级参数
  9701. unsigned int nPriority; // 违章优先级个数
  9702. char szPriority[MAX_PRIORITY_NUMBER][CFG_COMMON_STRING_256]; // 违章优先级, 0为最高优先级
  9703. BOOL abNamingFormat; // 是否携带图片命名格式参数
  9704. TRAFFIC_NAMING_FORMAT stNamingFormat; // 图片命名格式参数配置
  9705. BOOL abVideoNamingFormat; // 是否携带录像命名格式参数
  9706. TRAFFIC_NAMING_FORMAT stVideoNamingFormat; // 录像命名格式参数配置
  9707. BOOL abCalibration; // 是否携带标定信息
  9708. TRAFFIC_CALIBRATION_INFO stCalibration; // 标定信息
  9709. BOOL abAddress; // 是否携带查询地址参数
  9710. char szAddress[CFG_COMMON_STRING_256]; // 查询地址,UTF-8编码
  9711. BOOL abTransferPolicy; // 是否携带传输策略参数
  9712. EM_TRANSFER_POLICY emTransferPolicy; // 传输策略
  9713. BOOL abSupportModeMaskConfig; // 是否携带违章掩码
  9714. TRAFFIC_EVENT_CHECK_MASK stSupportModeMaskConfig; // 违章类型支持的检测模式掩码配置
  9715. BOOL abIsEnableLightState; // 是否携带灯组状态
  9716. ENABLE_LIGHT_STATE_INFO stIsEnableLightState; // 交通全局配置对应图片命名格式参数配置
  9717. BOOL abMixModeInfo; // 是否含有混合模式配置
  9718. MIX_MODE_CONFIG stMixModeInfo; // 混合模式配置
  9719. }CFG_TRAFFICGLOBAL_INFO;
  9720. #define DH_MAX_QUALITY_REGION_NUM 8
  9721. ///@brief CFG_CMD_VIDEOENCODEROI 视频编码ROI(Region of Intrest)配置
  9722. typedef struct tagCFG_VIDEOENCODEROI_INFO
  9723. {
  9724. int nRegionNum; // 优化区域个数
  9725. CFG_RECT stRegions[DH_MAX_QUALITY_REGION_NUM]; // 优化区域 支持多个优化区域,使用相对坐标体系,取值均为0~8191
  9726. BYTE byQuality; // 图像质量 取值1~6,值越大,图像质量越好
  9727. bool bMain; // 优化主码流视频编码
  9728. bool bExtra1; // 优化辅码流1视频编码
  9729. bool bExtra2; // 优化辅码流2视频编码
  9730. bool bExtra3; // 优化辅码流3视频编码
  9731. bool bSnapshot; // 优化抓图编码
  9732. BYTE byReserved2[1]; // 对齐
  9733. BYTE byDynamicTrack; // 动态区域模糊状态 0-不做图像调整 1-对动态识别区域做增强 2-对动态识别区域做模糊(马塞克)
  9734. int nDynamicDelayTime; // 动态模糊的延时时间, 默认60s 单位秒
  9735. }CFG_VIDEOENCODEROI_INFO;
  9736. ///@brief ATM取款超时配置
  9737. typedef struct tagCFG_ATMMOTION_INFO
  9738. {
  9739. int nTimeLimit; // 取款超时时间,单位:秒
  9740. }CFG_ATMMOTION_INFO;
  9741. ///@brief SNAPSOURCE_INFO_SINGLE_CHANNEL数组的地址
  9742. typedef struct tagCFG_SNAPSOURCE_INFO_SINGLE_CHANNEL
  9743. {
  9744. bool bEnable; // 使能
  9745. BYTE bReserved1[3]; // 保留字段,对齐
  9746. BYTE bDevice[64]; // 设备名
  9747. DWORD dwChannel; // 视频通道号
  9748. DWORD dwLinkVideoChannel; // 抓图通道对应的视频通道号
  9749. BYTE bReserved[512]; // 保留字段
  9750. }SNAPSOURCE_INFO_SINGLE_CHANNEL;
  9751. ///@brief 抓图源配置
  9752. typedef struct tagCFG_SNAPSOURCE_INFO
  9753. {
  9754. DWORD dwCount; //要配置的通道的个数
  9755. SNAPSOURCE_INFO_SINGLE_CHANNEL singleChnSanpInfo[MAX_VIDEO_CHANNEL_NUM]; //SNAPSOURCE_INFO_SINGLE_CHANNEL数组的地址
  9756. }CFG_SNAPSOURCE_INFO;
  9757. ///@brief 设备状态
  9758. typedef struct tagDEVICE_STATUS
  9759. {
  9760. char szDeviceName[MAX_REMOTEDEVICENAME_LEN]; //远程设备的名字
  9761. BYTE bDeviceStatus; //远程设备的状态 0:断线 1:在线
  9762. BYTE bReserved[63]; //保留字节
  9763. }DEVICE_STATUS;
  9764. ///@brief 获取后端设备的的在线状态
  9765. typedef struct tagCFG_REMOTE_DEVICE_STATUS
  9766. {
  9767. DEVICE_STATUS devStatus[MAX_REMOTE_DEV_NUM]; //设备状态
  9768. DWORD dwDevCount; //设备数量
  9769. BYTE bReserved[1024]; //保留字节
  9770. }CFG_REMOTE_DEVICE_STATUS;
  9771. #define MAX_COAXIAL_ALARM_COUNT 64
  9772. ///@brief 同轴报警类型
  9773. typedef enum tagEM_COAXIAL_ALARM_TYPE
  9774. {
  9775. EM_COAXIAL_ALARM_TYPE_UNKNOWN, // 未知
  9776. EM_COAXIAL_ALARM_TYPE_EXT_ALARM, // 同轴自带外部报警
  9777. EM_COAXIAL_ALARM_TYPE_MOTION_ALARM, // 同轴自带动检报警
  9778. EM_COAXIAL_ALARM_TYPE_VOLTAGE_ALARM, // 同轴自带电压报警
  9779. EM_COAXIAL_ALARM_TYPE_ALARM_LOCAL, // 同轴网关防区传感器报警
  9780. EM_COAXIAL_ALARM_TYPE_ALARM_BEL, // 同轴网关报警喇叭
  9781. EM_COAXIAL_ALARM_TYPE_TEMPERATURE_ALARM, // 同轴温度报警
  9782. EM_COAXIAL_ALARM_TYPE_HUMIDITY_ALARM, // 同轴湿度报警
  9783. } EM_COAXIAL_ALARM_TYPE;
  9784. ///@brief 分辨率枚举,细分到具体分辨率
  9785. typedef enum tagEM_CAPTURE_SIZE_EX1
  9786. {
  9787. EM_CAPTURE_SIZE_EX1_UNKNOWN = -1, /// 未知
  9788. EM_CAPTURE_SIZE_EX1_D1, /// D1 704*576(PAL) 704*480(NTSC),兼容WWxHH,下同
  9789. EM_CAPTURE_SIZE_EX1_D1_PAL, /// 704*576(PAL)
  9790. EM_CAPTURE_SIZE_EX1_D1_NTSC, /// 704*480(NTSC)
  9791. EM_CAPTURE_SIZE_EX1_HD1, /// HD1 352*576(PAL) 352*480(NTSC)
  9792. EM_CAPTURE_SIZE_EX1_HD1_PAL, /// 352*576(PAL)
  9793. EM_CAPTURE_SIZE_EX1_HD1_NTSC, /// 352*480(NTSC)
  9794. EM_CAPTURE_SIZE_EX1_BCIF, /// BCIF 704*288(PAL) 704*240(NTSC)
  9795. EM_CAPTURE_SIZE_EX1_BCIF_PAL, /// 704*288(PAL)
  9796. EM_CAPTURE_SIZE_EX1_BCIF_NTSC, /// 704*240(NTSC)
  9797. EM_CAPTURE_SIZE_EX1_CIF, /// CIF 352*288(PAL) 352*240(NTSC)
  9798. EM_CAPTURE_SIZE_EX1_CIF_PAL, /// 352*288(PAL)
  9799. EM_CAPTURE_SIZE_EX1_CIF_NTSC, /// 352*240(NTSC)
  9800. EM_CAPTURE_SIZE_EX1_QCIF, /// QCIF 176*144(PAL) 176*120(NTSC)
  9801. EM_CAPTURE_SIZE_EX1_QCIF_PAL, /// 176*144(PAL)
  9802. EM_CAPTURE_SIZE_EX1_QCIF_NTSC, /// 176*120(NTSC)
  9803. EM_CAPTURE_SIZE_EX1_VGA, /// 640*480
  9804. EM_CAPTURE_SIZE_EX1_QVGA, /// 320*240
  9805. EM_CAPTURE_SIZE_EX1_SVCD, /// 480*480
  9806. EM_CAPTURE_SIZE_EX1_QQVGA, /// 160*128
  9807. EM_CAPTURE_SIZE_EX1_SVGA, /// 800*592
  9808. EM_CAPTURE_SIZE_EX1_XVGA, /// 1024*768
  9809. EM_CAPTURE_SIZE_EX1_WXGA, /// 1280*800
  9810. EM_CAPTURE_SIZE_EX1_SXGA, /// 1280*1024
  9811. EM_CAPTURE_SIZE_EX1_WSXGA, /// 1600*1024
  9812. EM_CAPTURE_SIZE_EX1_UXGA, /// 1600*1200
  9813. EM_CAPTURE_SIZE_EX1_WUXGA, /// 1920*1200
  9814. EM_CAPTURE_SIZE_EX1_LTF, /// 240*192,ND1
  9815. EM_CAPTURE_SIZE_EX1_720, /// 1280*720
  9816. EM_CAPTURE_SIZE_EX1_1080, /// 1920*1080
  9817. EM_CAPTURE_SIZE_EX1_1_3M, /// 1280*960
  9818. EM_CAPTURE_SIZE_EX1_2M, /// 1872*1408,2_5M
  9819. EM_CAPTURE_SIZE_EX1_5M, /// 3744*1408
  9820. EM_CAPTURE_SIZE_EX1_3M, /// 2048*1536
  9821. EM_CAPTURE_SIZE_EX1_5_0M, /// 2432*2050
  9822. EM_CAPTURE_SIZE_EX1_1_2M, /// 1216*1024
  9823. EM_CAPTURE_SIZE_EX1_1408_1024, /// 1408*1024
  9824. EM_CAPTURE_SIZE_EX1_8M, /// 3296*2472
  9825. EM_CAPTURE_SIZE_EX1_2560_1920, /// 2560*1920(5_1M)
  9826. EM_CAPTURE_SIZE_EX1_960H, /// 960H 960*576(PAL) 960*480(NTSC)
  9827. EM_CAPTURE_SIZE_EX1_960H_PAL, /// 960*576(PAL)
  9828. EM_CAPTURE_SIZE_EX1_960H_NTSC, /// 960*480(NTSC)
  9829. EM_CAPTURE_SIZE_EX1_960_720, /// 960*720
  9830. EM_CAPTURE_SIZE_EX1_NHD, /// 640*360
  9831. EM_CAPTURE_SIZE_EX1_QNHD, /// 320*180
  9832. EM_CAPTURE_SIZE_EX1_QQNHD, /// 160*90
  9833. EM_CAPTURE_SIZE_EX1_960_540, /// 960*540
  9834. EM_CAPTURE_SIZE_EX1_640_352, /// 640*352
  9835. EM_CAPTURE_SIZE_EX1_640_400, /// 640*400
  9836. EM_CAPTURE_SIZE_EX1_320_192, /// 320*192
  9837. EM_CAPTURE_SIZE_EX1_320_176, /// 320*176
  9838. EM_CAPTURE_SIZE_EX1_SVGA1, /// 800*600
  9839. EM_CAPTURE_SIZE_EX1_2560_1440, /// 2560*1440
  9840. EM_CAPTURE_SIZE_EX1_2304_1296, /// 2304*1296
  9841. EM_CAPTURE_SIZE_EX1_2592_1520, /// 2592*1520
  9842. EM_CAPTURE_SIZE_EX1_4000_3000, /// 4000*3000
  9843. EM_CAPTURE_SIZE_EX1_2880_2880, /// 2880*2880
  9844. EM_CAPTURE_SIZE_EX1_2880_2160, /// 2880*2160
  9845. EM_CAPTURE_SIZE_EX1_2688_1520, /// 2688*1520
  9846. EM_CAPTURE_SIZE_EX1_2592_1944, /// 2592*1944
  9847. EM_CAPTURE_SIZE_EX1_3072_1728, /// 3072*1728
  9848. EM_CAPTURE_SIZE_EX1_3072_2048, /// 3072*2048
  9849. EM_CAPTURE_SIZE_EX1_3840_2160, /// 3840*2160
  9850. EM_CAPTURE_SIZE_EX1_NR=255
  9851. } EM_CAPTURE_SIZE_EX1;
  9852. ///@brief 码流分辨率限制扩展
  9853. typedef struct tagNET_ENCODING_RESOLUTION_LIMIT_EX
  9854. {
  9855. int nResolutionNum; /// 分辨率个数
  9856. EM_CAPTURE_SIZE_EX1 emResolution[10]; /// 分辨率
  9857. char szReserved[1024]; /// 保留字节
  9858. }NET_ENCODING_RESOLUTION_LIMIT_EX;
  9859. ///@brief 产品定义信息
  9860. typedef struct tagCFG_PRODUCT_DEFINITION_INFO
  9861. {
  9862. int nCoaxialAlarmCount; // 设备支持的报警数量
  9863. EM_COAXIAL_ALARM_TYPE emCoaxialAlarm[MAX_COAXIAL_ALARM_COUNT]; // 设备支持的报警
  9864. int nEncodingResolutionLimitNum; ///码流分辨率组合限制个数
  9865. NET_ENCODING_RESOLUTION_LIMIT_EX stuEncodingResolutionLimit[10]; /// 码流分辨率限制,限制界面和功能模块只能使用指定范围之内的分辨率,前提是设备支持该分辨率。是一个二维数组,第一级对应不同的码流,第二级对应支持的分辨率集合。二级数组为空表示不做限制,使用所有设备能提供的分辨率。
  9866. char szReserved[1024]; /// 保留字节
  9867. } CFG_PRODUCT_DEFINITION_INFO;
  9868. //----------------------------音频分析相关配置------------------------------
  9869. ///@brief 事件类型 EVENT_IVS_AUDIO_ABNORMALDETECTION (声音异常检测事件)对应规则配置
  9870. typedef struct tagCFG_IVS_AUDIO_ABNORMALDETECTION_INFO
  9871. {
  9872. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  9873. bool bRuleEnable; // 规则使能
  9874. BYTE bReserved[3]; // 保留字段
  9875. int nDecibel; // 声音强度,单位 db
  9876. int nFrequency; // 声音频率, 单位 Hz
  9877. int nMinDuration; // 最短持续时间, 单位 s
  9878. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  9879. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  9880. }CFG_IVS_AUDIO_ABNORMALDETECTION_INFO;
  9881. ///@brief 获取音频分析能力集
  9882. typedef struct tagCFG_CAP_AUDIO_ANALYSE_INFO
  9883. {
  9884. int nSupportedRuleNum; // 支持的规则类型数
  9885. DWORD dwSupportedRules[MAX_RULE_LIST_SIZE]; // 具体支持的规则类型
  9886. }CFG_CAP_AUDIO_ANALYSE_INFO;
  9887. //------------------------IPS && SVR------------------------------
  9888. ///@brief 设备状态信息
  9889. typedef struct tagCFG_DEVICESTATUS_INFO
  9890. {
  9891. int nPowerNum; // 电源个数
  9892. BYTE byPowerStatus[MAX_POWER_NUM]; // 电源状态,1:正常 2:异常 3:未知
  9893. int nCPUNum; // CPU个数
  9894. int nCPUTemperature[MAX_CPU_NUM]; // CPU温度
  9895. int nFanNum; // 风扇个数
  9896. int nRotatoSpeed[MAX_FUN_NUM]; // 风扇转速
  9897. }CFG_DEVICESTATUS_INFO;
  9898. ///@brief 扩展柜信息
  9899. typedef struct tagCFG_HARDDISK_INFO
  9900. {
  9901. int nChannel; // 通道号
  9902. int nCapacity; // 硬盘容量
  9903. BYTE byStatus; // 硬盘状态,0:unknown 1:running 2:fail 3.spare热备
  9904. // 4.sync同步 5.faulty失效 6.rebuilding重建 7.remove移除 8.sleep休眠
  9905. BYTE byUsedStatus; // 使用状态,1.空闲 2.在用 3.未知
  9906. BYTE byHotBack; // 是否是热备盘,0:热备盘 1:非热备盘
  9907. BYTE byReserved; // 字节对齐
  9908. char szRaidName[MAX_NAME_LEN]; // 所在Raid(磁盘组)的名称 "RaidName" : "Raid0",
  9909. // 所在Raid(磁盘组)的名称。如不属于任何Raid,则字段为null。
  9910. // 比如热备盘,属于全局热备盘的,则传null。
  9911. char szType[32]; // 硬盘型号
  9912. int nTank; // 扩展柜, 0:主机;1:扩展柜1; 2:扩展柜2 ……
  9913. int nRemainSpace; // 剩余容量,单位M
  9914. }CFG_HARDDISK_INFO;
  9915. ///@brief 硬盘存储柜
  9916. typedef struct tagCFG_HARDDISKTANK_INFO
  9917. {
  9918. char szTankName[MAX_NAME_LEN]; // 存储柜名称
  9919. int nHardDiskNum; // 硬盘个数
  9920. CFG_HARDDISK_INFO stuHarddiskInfo[MAX_HARDDISK_NUM]; // 硬盘信息
  9921. }CFG_HARDDISKTANK_INFO;
  9922. ///@brief 扩展柜信息
  9923. typedef struct tagCFG_HARDISKTANKGROUP_INFO
  9924. {
  9925. int nTankNum; // 硬盘存储柜个数
  9926. CFG_HARDDISKTANK_INFO stuHarddisktank[MAX_TANK_NUM]; // 硬盘存储柜数组
  9927. }CFG_HARDISKTANKGROUP_INFO;
  9928. ///@brief Raid组信息
  9929. typedef struct tagCFG_RAID_INFO
  9930. {
  9931. char szRaidName[MAX_NAME_LEN]; // Raid名称
  9932. BYTE byType; // 类型 1:Jbob, 2:Raid0, 3:Raid1, 4:Raid5
  9933. BYTE byStatus; // 状态 0:unknown, 1:active, 2:degraded, 3:inactive, 4: Resyncing
  9934. // 5.Clean 6.Unknow 7.Recovering 8.Reshaping 9.Checking 10.NotStarted
  9935. BYTE byStatusCount; // 状态数量, 状态数>=1时, 用byStatusGroup表示状态
  9936. BYTE byReserved; // 字节对齐
  9937. int nMember[MAX_CHAN_NUM]; // 组成磁盘通道
  9938. int nDiskNUM; // 磁盘个数
  9939. int nCapacity; // 容量
  9940. int nTank; // 扩展柜
  9941. int nRemainSpace; // 剩余容量,单位M
  9942. BYTE byStatusGroup[MAX_STATUS_NUM]; // 状态数组, 参数值同byStatus
  9943. }CFG_RAID_INFO;
  9944. ///@brief Raid组信息
  9945. typedef struct tagCFG_RAIDGROUP_INFO
  9946. {
  9947. int nRaidNum; // Raid个数
  9948. CFG_RAID_INFO stuRaidInfo[MAX_RAID_NUM]; // Raid组信息
  9949. }CFG_RAIDGROUP_INFO;
  9950. ///@brief 存储池组信息
  9951. typedef struct tagCFG_STORAGEPOOL_INFO
  9952. {
  9953. char szName[MAX_NAME_LEN]; // 存储池名称
  9954. int nMemberNum; // 设备数量
  9955. char szMember[MAX_DEV_NUM][MAX_NAME_LEN];// 组成设备
  9956. int nUsed; // 已用容量
  9957. int nCapacity; // 总容量
  9958. int nStatus; // 状态 0:unknown 1:active 2:degraded 3:inactive
  9959. int nTank; // 扩展柜 0:主机, 1:扩展柜1, 2:扩展柜2 ……
  9960. }CFG_STORAGEPOOL_INFO;
  9961. ///@brief 存储池组信息
  9962. typedef struct tagCFG_STORAGEPOOLGROUP_INFO
  9963. {
  9964. int nStroagePoolNum; // 存储池个数
  9965. CFG_STORAGEPOOL_INFO stuStoragePoolInfo[MAX_STORAGEPOOL_NUM]; // 存储池信息
  9966. }CFG_STORAGEPOOLGROUP_INFO;
  9967. ///@brief 文件系统组信息
  9968. typedef struct tagCFG_STORAGEPOSITION_INFO
  9969. {
  9970. char szName[MAX_NAME_LEN]; // 存储位置名称
  9971. char szStoragePoolName[MAX_NAME_LEN]; // 存储池名称
  9972. int nUsedCapacity; // 已用容量,单位G
  9973. int nTotalCapacity; // 容量,单位G
  9974. BYTE byStatus; // 状态 0.未知 1.正常 2.配置异常 3.挂载异常
  9975. BYTE byReserved[3]; // 字节对齐
  9976. }CFG_STORAGEPOSITION_INFO;
  9977. ///@brief 文件系统组信息
  9978. typedef struct tafCFG_STORAGEPOSITIONGROUP_INFO
  9979. {
  9980. int nStoragePositionNum; // 存储信息个数
  9981. CFG_STORAGEPOSITION_INFO stuStoragePositionInfo[MAX_STRORAGEPOS_NUM]; // 文件系统组信息
  9982. }CFG_STORAGEPOSITIONGROUP_INFO;
  9983. ///@brief 前端设备组信息
  9984. typedef struct tagCFG_VIDEOINDEV_INFO
  9985. {
  9986. char szDevName[MAX_NAME_LEN]; // 前端设备名称
  9987. char szDevID[MAX_NAME_LEN]; // 设备ID
  9988. char szDevType[MAX_NAME_LEN]; // 设备类型
  9989. int nTotalChan; // 总通道数
  9990. int nTotalAlarmChan; // 报警通道总数
  9991. char szIP[MAX_ADDRESS_LEN]; // 设备IP
  9992. BYTE byStatus; // 状态 0:未知 1:在线 2:离线
  9993. BYTE byReserved[3]; // 字节对齐
  9994. }CFG_VIDEOINDEV_INFO;
  9995. ///@brief 前端设备组信息
  9996. typedef struct tafCFG_VIDEOINDEVGROUP_INFO
  9997. {
  9998. int nVideoDevNum; // 前端设备个数
  9999. CFG_VIDEOINDEV_INFO stuVideoInDevInfo[MAX_VIDEODEV_NUM]; // 前端设备组信息
  10000. }CFG_VIDEOINDEVGROUP_INFO;
  10001. ///@brief 通道录像组状态
  10002. typedef struct tagCFG_DEVRECORD_INFO
  10003. {
  10004. char szDevName[MAX_NAME_LEN]; // 设备名称
  10005. char szIP[MAX_ADDRESS_LEN]; // 设备IP
  10006. char szChannel[MAX_NAME_LEN]; // 通道号
  10007. char szChannelName[MAX_NAME_LEN]; // 通道名称
  10008. char szStoragePosition[MAX_NAME_LEN]; // 存储位置信息
  10009. BYTE byStatus; // 状态 0:未知 1:录像 2:停止
  10010. BYTE byReserved[3]; // 字节对齐
  10011. }CFG_DEVRECORD_INFO;
  10012. ///@brief 通道录像组状态
  10013. typedef struct tagCFG_DEVRECORDGROUP_INFO
  10014. {
  10015. int nChannelNum; // 通道个数
  10016. CFG_DEVRECORD_INFO stuDevRecordInfo[MAX_CHAN_NUM]; // 通道录像状态信息
  10017. }CFG_DEVRECORDGROUP_INFO;
  10018. #define byDahuaII byPrivateII
  10019. #define byDahuaIId byPrivateIId
  10020. ///@brief 服务状态
  10021. typedef struct tagCFG_IPSERVER_STATUS
  10022. {
  10023. int nSupportedServerNum; // 提供的服务个数
  10024. char szSupportServer[MAX_SEVER_NUM][MAX_NAME_LEN]; // 提供的服务名称 Svr Svrd(SVR守护服务) DataBase DataBased(DataBase守护服务) NtpServer NtpServerd(NtpServer守护服务) Samba Nfs Ftp iScsi
  10025. int nSvrSuppSubServerNum; // Svr提供的子服务信息个数
  10026. char szSvrSuppSubServer[MAX_SEVER_NUM][MAX_NAME_LEN]; // Svr提供的子服务信息 CMS DMS MTS SS RMS DBR
  10027. BYTE byCMS; // 0:未知 1:运行 2:未运行
  10028. BYTE byDMS; // 0:未知 1:运行 2:未运行
  10029. BYTE byMTS; // 0:未知 1:运行 2:未运行
  10030. BYTE bySS; // 0:未知 1:运行 2:未运行
  10031. BYTE byRMS; // 0:未知 1:运行 2:未运行
  10032. BYTE byDBR; // 0:未知 1:运行 2:未运行
  10033. BYTE bySvrd; // 0:未知 1:运行 2:未运行
  10034. BYTE byDataBase; // 0:未知 1:运行 2:未运行
  10035. BYTE byDataBased; // 0:未知 1:运行 2:未运行
  10036. BYTE byNtpServer; // 0:未知 1:运行 2:未运行
  10037. BYTE byNtpServerd; // 0:未知 1:运行 2:未运行
  10038. BYTE byPrivateII; // 0:未知 1:运行 2:未运行
  10039. BYTE byPrivateIId; // 0:未知 1:运行 2:未运行
  10040. BYTE bySAMBA; // 0:未知 1:运行 2:未运行
  10041. BYTE byNFS; // 0:未知 1:运行 2:未运行
  10042. BYTE byFTP; // 0:未知 1:运行 2:未运行
  10043. BYTE byISCSI; // 0:未知 1:运行 2:未运行
  10044. BYTE byReserved[3]; // 字节对齐
  10045. }CFG_IPSERVER_STATUS;
  10046. //--------------------------视频矩阵-----------------------------------
  10047. #define MAX_SUPPORT_SPLIT_MODE_NUM 16 // 支持的画面分割的能力最大数
  10048. #define MAX_MATRIX_PLAN 4 // 最大矩阵方案数
  10049. #define MAX_TOUR_MODE 16 // 最大轮巡队列数
  10050. ///@brief 画面分割模式
  10051. typedef enum tagMATRIX_VIEW_SPLITMODE
  10052. {
  10053. MATRIX_VIEW_SPLIT1 = 0,
  10054. MATRIX_VIEW_SPLIT2,
  10055. MATRIX_VIEW_SPLIT4,
  10056. MATRIX_VIEW_SPLIT8,
  10057. MATRIX_VIEW_SPLIT9,
  10058. MATRIX_VIEW_SPLIT16,
  10059. MATRIX_VIEW_SPLITPIP,
  10060. MATRIX_VIEW_SPLIT6,
  10061. MATRIX_VIEW_SPLIT12,
  10062. MATRIX_VIEW_SPLIT25,
  10063. MATRIX_VIEW_SPLIT36,
  10064. MATRIX_VIEW_SPLIT_NR,
  10065. }MATRIX_VIEW_SPLITMODE;
  10066. ///@brief 轮巡模式
  10067. typedef struct tagCFG_TOUR_MODE
  10068. {
  10069. int nViewMode; // 画面分割模式,参考枚举类型MATRIX_VIEW_SPLITMODE
  10070. unsigned int dwViewSplitMask; // 表示ViewMode指定模式下,使能的几个分隔方法,使用掩码表达方式
  10071. // 例如:0x00000007:表示模式3(SPLIT8)的分隔1,2,3使能开启,其他未使能,0x0000000F表示分隔1,2,3,4使能
  10072. }CFG_TOUR_MODE;
  10073. ///@brief SPOT视频矩阵方案
  10074. typedef struct tagCFG_VIDEO_MATRIX_PLAN
  10075. {
  10076. BOOL bEnable; // 矩阵配置方案使能
  10077. int nTourPeriod; // 矩阵轮巡间隔,单位秒,>=1
  10078. int nTourModeNum; // 轮巡队列个数
  10079. CFG_TOUR_MODE stuTourMode[MAX_TOUR_MODE]; // 轮巡队列
  10080. }CFG_VIDEO_MATRIX_PLAN;
  10081. ///@brief SPOT矩阵配置
  10082. typedef struct tagCFG_VIDEO_MATRIX
  10083. {
  10084. int nSupportSplitModeNumber; // 支持的画面分割的能力数
  10085. BYTE bySupportSplitMode[MAX_SUPPORT_SPLIT_MODE_NUM]; // 支持的画面分割的能力
  10086. int nMatrixPlanNumber; // 矩阵方案数
  10087. CFG_VIDEO_MATRIX_PLAN stuMatrixPlan[MAX_MATRIX_PLAN]; // 矩阵方案
  10088. }CFG_VIDEO_MATRIX;
  10089. ///////////////////////////////////视频诊断配置///////////////////////////////////////
  10090. ///@brief 视频抖动检测
  10091. typedef struct tagCFG_VIDEO_DITHER_DETECTION
  10092. {
  10093. BOOL bEnable; // 使能配置
  10094. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10095. BYTE byThrehold1; // 预警阀值 取值1-100
  10096. BYTE byThrehold2; // 报警阀值 取值1-100
  10097. }CFG_VIDEO_DITHER_DETECTION;
  10098. ///@brief 条纹检测
  10099. typedef struct tagCFG_VIDEO_STRIATION_DETECTION
  10100. {
  10101. BOOL bEnable; // 使能配置
  10102. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10103. BYTE byThrehold1; // 预警阀值 取值1-100
  10104. BYTE byThrehold2; // 报警阀值 取值1-100
  10105. BYTE byReserved1[2]; // 字节对齐
  10106. BOOL bUVDetection; // UV分量是否检测
  10107. }CFG_VIDEO_STRIATION_DETECTION;
  10108. ///@brief 视频丢失检测
  10109. typedef struct tagCFG_VIDEO_LOSS_DETECTION
  10110. {
  10111. BOOL bEnable; // 使能配置
  10112. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10113. }CFG_VIDEO_LOSS_DETECTION;
  10114. ///@brief 视频遮挡检测
  10115. typedef struct tagCFG_VIDEO_COVER_DETECTION
  10116. {
  10117. BOOL bEnable; // 使能配置
  10118. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10119. BYTE byThrehold1; // 预警阀值 取值1-100
  10120. BYTE byThrehold2; // 报警阀值 取值1-100
  10121. }CFG_VIDEO_COVER_DETECTION;
  10122. ///@brief 画面冻结检测
  10123. typedef struct tagCFG_VIDEO_FROZEN_DETECTION
  10124. {
  10125. BOOL bEnable; // 使能配置
  10126. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10127. }CFG_VIDEO_FROZEN_DETECTION;
  10128. ///@brief 亮度异常检测
  10129. typedef struct tagCFG_VIDEO_BRIGHTNESS_DETECTION
  10130. {
  10131. BOOL bEnable; // 使能配置
  10132. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10133. BYTE bylowerThrehold1; // 预警阀值 取值1-100
  10134. BYTE bylowerThrehold2; // 报警阀值 取值1-100
  10135. BYTE byUpperThrehold1; // 预警阀值 取值1-100
  10136. BYTE byUpperThrehold2; // 报警阀值 取值1-100
  10137. }CFG_VIDEO_BRIGHTNESS_DETECTION;
  10138. ///@brief 对比度异常检测
  10139. typedef struct tagCFG_VIDEO_CONTRAST_DETECTION
  10140. {
  10141. BOOL bEnable; // 使能配置
  10142. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10143. BYTE bylowerThrehold1; // 预警阀值 取值1-100
  10144. BYTE bylowerThrehold2; // 报警阀值 取值1-100
  10145. BYTE byUpperThrehold1; // 预警阀值 取值1-100
  10146. BYTE byUpperThrehold2; // 报警阀值 取值1-100
  10147. }CFG_VIDEO_CONTRAST_DETECTION;
  10148. ///@brief 偏色检测
  10149. typedef struct tagCFG_VIDEO_UNBALANCE_DETECTION
  10150. {
  10151. BOOL bEnable; // 使能配置
  10152. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10153. BYTE byThrehold1; // 预警阀值 取值1-100
  10154. BYTE byThrehold2; // 报警阀值 取值1-100
  10155. }CFG_VIDEO_UNBALANCE_DETECTION;
  10156. ///@brief 噪声检测
  10157. typedef struct tagCFG_VIDEO_NOISE_DETECTION
  10158. {
  10159. BOOL bEnable; // 使能配置
  10160. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10161. BYTE byThrehold1; // 预警阀值 取值1-100
  10162. BYTE byThrehold2; // 报警阀值 取值1-100
  10163. }CFG_VIDEO_NOISE_DETECTION;
  10164. ///@brief 模糊检测
  10165. typedef struct tagCFG_VIDEO_BLUR_DETECTION
  10166. {
  10167. BOOL bEnable; // 使能配置
  10168. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10169. BYTE byThrehold1; // 预警阀值 取值1-100
  10170. BYTE byThrehold2; // 报警阀值 取值1-100
  10171. }CFG_VIDEO_BLUR_DETECTION;
  10172. ///@brief 场景变化检测
  10173. typedef struct tagCFG_VIDEO_SCENECHANGE_DETECTION
  10174. {
  10175. BOOL bEnable; // 使能配置
  10176. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  10177. BYTE byThrehold1; // 预警阀值 取值1-100
  10178. BYTE byThrehold2; // 报警阀值 取值1-100
  10179. }CFG_VIDEO_SCENECHANGE_DETECTION;
  10180. ///@brief 视频延时检测
  10181. typedef struct tagCFG_VIDEO_DELAY_DETECTION
  10182. {
  10183. BOOL bEnable; // 使能配置
  10184. }CFG_VIDEO_DELAY_DETECTION;
  10185. ///@brief 云台移动检测
  10186. typedef struct tagCFG_PTZ_MOVING_DETECTION
  10187. {
  10188. BOOL bEnable; // 使能配置
  10189. }CFG_PTZ_MOVING_DETECTION;
  10190. ///@brief 黑白图像检测
  10191. typedef struct tagCFG_VIDEO_BLACKWHITE_DETECTION
  10192. {
  10193. BOOL bEnable; // 使能配置
  10194. int nEarlyWarning; // 预警阈值
  10195. int nAlarm; // 报警阈值
  10196. int nMinDuration; // 最短持续时间
  10197. } CFG_VIDEO_BLACKWHITE_DETECTION;
  10198. ///@brief 场景剧变检测
  10199. typedef struct tagCFG_VIDEO_DRAMATICCHANGE_DETECTION
  10200. {
  10201. BOOL bEnable; // 使能配置
  10202. int nEarlyWarning; // 预警阈值
  10203. int nAlarm; // 报警阈值
  10204. int nMinDuration; // 最短持续时间
  10205. } CFG_VIDEO_DRAMATICCHANGE_DETECTION;
  10206. ///@brief 视频完好率监测
  10207. typedef struct tagCFG_VIDEO_AVAILABILITY_DETECTION
  10208. {
  10209. BOOL bEnable; // 使能配置
  10210. }CFG_VIDEO_AVAILABILITY_DETECTION;
  10211. ///@brief 雪花屏检测
  10212. typedef struct tagCFG_VIDEO_SNOWFLAKE_DETECTION
  10213. {
  10214. BOOL bEnable; // 使能配置
  10215. int nWarnThreshold; // 预警阈值, 范围:1~100
  10216. int nAlarmThreshold; // 报警阈值, 范围:1~100
  10217. int nMinDuration; // 最短持续时间, 单位:秒, 取值: 0~65535
  10218. }CFG_VIDEO_SNOWFLAKE_DETECTION;
  10219. ///@brief 算法百分占比,总100
  10220. typedef struct tagCFG_VIDEO_ALGORITHMTYPE_ALGORITHM
  10221. {
  10222. UINT nDetectionPercent; // 检测百分比
  10223. UINT nRecognitionPercent; // 识别百分比
  10224. UINT nAttributePercent; // 属性百分比
  10225. }CFG_VIDEO_ALGORITHMTYPE_ALGORITHM;
  10226. ///@brief 视频算法类型检测
  10227. typedef struct tagCFG_VIDEO_ALGORITHMTYPE_DETECTION
  10228. {
  10229. BOOL bEnable; // 使能配置
  10230. UINT nFaceAlgorithmThreshold; // 目标算法阀值
  10231. CFG_VIDEO_ALGORITHMTYPE_ALGORITHM stuFaceAlgorithm; // 目标算法百分占比,总100
  10232. UINT nHumanBodyAlgorithmThreshold;//人体算法阀值
  10233. CFG_VIDEO_ALGORITHMTYPE_ALGORITHM stuHumanBodyAlgorithm; // 人体算法百分占比,总100
  10234. UINT nVehicleAlgorithmThreshold; // 车辆算法阀值
  10235. CFG_VIDEO_ALGORITHMTYPE_ALGORITHM stuVehicleAlgorithm; // 车辆算法百分占比,总100
  10236. UINT nPlateNumAlgorithmThreshold;// 车牌算法阀值
  10237. CFG_VIDEO_ALGORITHMTYPE_ALGORITHM stuPlateNumAlgorithm; // 车牌算法百分占比,总100
  10238. }CFG_VIDEO_ALGORITHMTYPE_DETECTION;
  10239. ///@brief 闪频检测
  10240. typedef struct tagCFG_VIDEO_FILCKERING_DETECTION
  10241. {
  10242. BOOL bEnable; // 使能配置
  10243. int nWarnThreshold; // 预警阈值, 范围:1~100
  10244. int nAlarmThreshold; // 报警阈值, 范围:1~100
  10245. int nMinDuration; // 最短持续时间, 单位: 秒, 取值: 0~65535
  10246. char szReserver[256]; // 保留字节
  10247. }CFG_VIDEO_FILCKERING_DETECTION;
  10248. ///@brief 丢帧检测
  10249. typedef struct tagCFG_VIDEO_LOSS_FRAME_DETECTION
  10250. {
  10251. BOOL bEnable; // 使能配置
  10252. int nWarnThreshold; // 预警阈值, 范围:1~100
  10253. int nAlarmThreshold; // 报警阈值, 范围:1~100
  10254. int nMinDuration; // 最短持续时间, 单位: 秒, 取值: 0~65535
  10255. char szReserver[256]; // 保留字节
  10256. }CFG_VIDEO_LOSS_FRAME_DETECTION;
  10257. ///@brief 视频诊断
  10258. typedef struct tagCFG_VIDEO_DIAGNOSIS_PROFILE
  10259. {
  10260. char szName[MAX_PATH]; // 名称Ansi编码
  10261. CFG_VIDEO_DITHER_DETECTION* pstDither; // 视频抖动检测
  10262. CFG_VIDEO_STRIATION_DETECTION* pstStriation; // 视频条纹检测
  10263. CFG_VIDEO_LOSS_DETECTION* pstLoss; // 视频丢失检测
  10264. CFG_VIDEO_COVER_DETECTION* pstCover; // 视频遮挡检测
  10265. CFG_VIDEO_FROZEN_DETECTION* pstFrozen; // 视频冻结检测
  10266. CFG_VIDEO_BRIGHTNESS_DETECTION* pstBrightness; // 视频亮度异常检测
  10267. CFG_VIDEO_CONTRAST_DETECTION* pstContrast; // 对比度异常检测
  10268. CFG_VIDEO_UNBALANCE_DETECTION* pstUnbalance; // 偏色异常检测
  10269. CFG_VIDEO_NOISE_DETECTION* pstNoise; // 噪声检测
  10270. CFG_VIDEO_BLUR_DETECTION* pstBlur; // 模糊检测
  10271. CFG_VIDEO_SCENECHANGE_DETECTION* pstSceneChange; // 场景变化检测
  10272. CFG_VIDEO_DELAY_DETECTION* pstVideoDelay; // 视频延时检测
  10273. CFG_PTZ_MOVING_DETECTION* pstPTZMoving; // 云台移动检测
  10274. CFG_VIDEO_BLACKWHITE_DETECTION* pstBlackAndWhite; // 黑白图像检测
  10275. CFG_VIDEO_DRAMATICCHANGE_DETECTION* pstDramaticChange; // 场景剧变检测
  10276. CFG_VIDEO_AVAILABILITY_DETECTION* pstVideoAvailability; // 视频完好率监测
  10277. CFG_VIDEO_SNOWFLAKE_DETECTION* pstSnowflake; // 雪花屏检测
  10278. CFG_VIDEO_ALGORITHMTYPE_DETECTION* pstVideoAlgorithmType; // 视频算法类型检测
  10279. CFG_VIDEO_FILCKERING_DETECTION *pstuVideoFilckeringDetection; // 闪频检测
  10280. CFG_VIDEO_LOSS_FRAME_DETECTION *pstuVideoLossFrameDetection; // 丢帧检测
  10281. BOOL bIsCompareRecord; // 是否比较录像
  10282. }CFG_VIDEO_DIAGNOSIS_PROFILE;
  10283. ///@brief 视频诊断参数表(CFG_CMD_VIDEODIAGNOSIS_PROFILE),支持多种参数表,用表名称来索引 调用者申请内存并初始化
  10284. typedef struct tagCFG_VIDEODIAGNOSIS_PROFILE
  10285. {
  10286. int nTotalProfileNum; // 调用者分配参数表数 根据能力集获取
  10287. int nReturnProfileNum; // 返回的实际参数表数
  10288. CFG_VIDEO_DIAGNOSIS_PROFILE* pstProfiles; // 调用者分配nTotalProfileNum个CFG_VIDEO_DIAGNOSIS_PROFILE
  10289. }CFG_VIDEODIAGNOSIS_PROFILE;
  10290. ///@brief 视频诊断任务
  10291. typedef enum CFG_EM_STREAM_TYPE
  10292. {
  10293. CFG_EM_STREAM_ERR, // 其它
  10294. CFG_EM_STREAM_MAIN, // "Main"-主码流
  10295. CFG_EM_STREAM_EXTRA_1, // "Extra1"-辅码流1
  10296. CFG_EM_STREAM_EXTRA_2, // "Extra2"-辅码流2
  10297. CFG_EM_STREAM_EXTRA_3, // "Extra3"-辅码流3
  10298. CFG_EM_STREAM_SNAPSHOT, // "Snapshot"-抓图码流
  10299. CFG_EM_STREAM_OBJECT, // "Object"-物体流
  10300. }CFG_EM_STREAM_TYPE;
  10301. ///@brief 设备详细信息
  10302. typedef struct tagCFG_TASK_REMOTEDEVICE
  10303. {
  10304. char szAddress[MAX_PATH]; // 设备地址或域名
  10305. unsigned int dwPort; // 端口号
  10306. char szUserName[MAX_PATH]; // 用户名
  10307. char szPassword[MAX_PATH]; // 密码明文
  10308. char szProtocolType[MAX_PATH]; // 连接设备的协议类型
  10309. CFG_RemoteDeviceVideoInput *pVideoInput; // 视频输入通道,用户申请nMaxVideoInputs个CFG_RemoteDeviceVideoInput空间
  10310. int nMaxVideoInputs; // 视频输入通道最大数
  10311. int nRetVideoInputs; // 返回的视频输入通道数
  10312. }CFG_TASK_REMOTEDEVICE;
  10313. ///@brief 视频诊断录像保存位置
  10314. typedef enum tagEM_SOURCE_VIDEO_LOCATION
  10315. {
  10316. EM_SOURCE_VIDEO_LOCATION_UNKNOWN, // 未知
  10317. EM_SOURCE_VIDEO_LOCATION_DEVICE, // 存于设备
  10318. EM_SOURCE_VIDEO_LOCATION_CENTER, // 存于平台
  10319. EM_SOURCE_VIDEO_LOCATION_THIRD, // 存于第三方云
  10320. } EM_SOURCE_VIDEO_LOCATION;
  10321. ///@brief 录像的类型
  10322. typedef enum tagEM_VIDEO_TYPE
  10323. {
  10324. EM_VIDEO_TYPE_UNKNOWN, // 未知
  10325. EM_VIDEO_TYPE_ALL, // 全部
  10326. EM_VIDEO_TYPE_MANUAL, // 手动保存的录像
  10327. EM_VIDEO_TYPE_ALARM, // 报警录像
  10328. } EM_VIDEO_TYPE;
  10329. ///@brief 视频诊断录像详细信息
  10330. typedef struct tagNET_VIDEO_DIAGNOSIS_RECORD_INFO
  10331. {
  10332. EM_SOURCE_VIDEO_LOCATION emSourceLocation; // 录像保存的位置
  10333. EM_VIDEO_TYPE emRecordType; // 视频诊断录像类型
  10334. CFG_NET_TIME stuStartTime; // 视频诊断录像开始时间
  10335. int nPreSeconds; // 视频诊断录像开始时间为当前实际检测时间的前PreSeconds秒(当该字段与StartTime同时存在时,以该字段优先)
  10336. char szLocalRecordFilePath[256]; // 录像文件地址
  10337. } NET_VIDEO_DIAGNOSIS_RECORD_INFO;
  10338. ///@brief 视频源输入方式
  10339. typedef enum tagEM_VIDEO_CHANNEL_SOURCE_INPUT_TYPE
  10340. {
  10341. EM_VIDEO_CHANNEL_SOURCE_INPUT_UNKNOWN, // 未知
  10342. EM_VIDEO_CHANNEL_SOURCE_INPUT_STD, // STD
  10343. EM_VIDEO_CHANNEL_SOURCE_INPUT_AHD, // AHD
  10344. EM_VIDEO_CHANNEL_SOURCE_INPUT_HDCVR, // HDCVR
  10345. EM_VIDEO_CHANNEL_SOURCE_INPUT_VGA, // VGA
  10346. } EM_VIDEO_CHANNEL_SOURCE_INPUT_TYPE;
  10347. ///@brief 比较录像详细信息
  10348. typedef struct tagNET_VIDEO_DIAGNOSIS_COMPARE_RECORD_INFO
  10349. {
  10350. CFG_NET_TIME stuStartTime; // 录像开始时间
  10351. EM_SOURCE_VIDEO_LOCATION emSourceType; // 录像保存位置
  10352. EM_VIDEO_TYPE emRecordType; // 录像类型
  10353. int nPreSeconds; // 视频诊断录像开始时间为当前实际检测时间的前PreSeconds秒(当该字段与StartTime同时存在时, 以该字段优先)
  10354. char szReserved[256]; // 保留字节
  10355. } NET_VIDEO_DIAGNOSIS_COMPARE_RECORD_INFO;
  10356. ///@brief 任务数据源
  10357. typedef struct tagCFG_TAST_SOURCES
  10358. {
  10359. // 能力
  10360. bool abDeviceID; // abDeviceID(使用szDeviceID) 和 abRemoteDevice(使用stRemoteDevice) 必须有一个为true,否则Sources是null
  10361. bool abRemoteDevice;
  10362. char szDeviceID[MAX_PATH]; // 设备ID
  10363. CFG_TASK_REMOTEDEVICE stRemoteDevice; // 设备详细信息
  10364. int nVideoChannel; // 视频通道号
  10365. CFG_EM_STREAM_TYPE emVideoStream; // 视频码流类型
  10366. int nDuration; // 持续诊断时间
  10367. BOOL abStartTime; // 表示stuStartTime字段是否有效; 若源为录像文件则设置为TRUE, 否则设置成FALSE.
  10368. CFG_NET_TIME stuStartTime; // 当abStartTime为TRUE时有效,表示要分析的录像的开始时间
  10369. // stuStartTime字段作废,后续都使用stuDiagnosisRecordInfo,保留此字段只为兼容老设备
  10370. BOOL abDiagnosisRecordInfo; // 表示stuDiagnosisRecordInfo字段是否有效; 若源为录像文件则设置为TRUE, 否则设置成FALSE.
  10371. NET_VIDEO_DIAGNOSIS_RECORD_INFO stuDiagnosisRecordInfo; // 视频诊断录像信息, 当 abDiagnosisRecordInfo 为TRUE有效
  10372. EM_VIDEO_CHANNEL_SOURCE_INPUT_TYPE emSourceInputType; // 视频源输入方式
  10373. char szPath[MAX_PATH]; // 视频流地址,字段不为空优先使用
  10374. BOOL abCompareRecordInfo; // 表示stuCompareRecordInfo字段是否有效;
  10375. NET_VIDEO_DIAGNOSIS_COMPARE_RECORD_INFO stuCompareRecordInfo; // 比较录像详细信息
  10376. }CFG_TAST_SOURCES;
  10377. ///@brief 任务配置
  10378. typedef struct tagCFG_DIAGNOSIS_TASK
  10379. {
  10380. char szTaskName[MAX_PATH]; // 任务名称Ansi编码
  10381. char szProfileName[MAX_PATH]; // 本任务使用的诊断参数表名Ansi编码
  10382. int nTotalSourceNum; // 调用者分配任务数据源的个数 根据能力集获取
  10383. int nReturnSourceNum; // 返回实际任务数据源的个数
  10384. CFG_TAST_SOURCES* pstSources; // 任务数据源 调用者分配内存nTotalSourceNum个
  10385. }CFG_DIAGNOSIS_TASK;
  10386. ///@brief 视频诊断任务表(CFG_CMD_VIDEODIAGNOSIS_TASK),不同的任务通过名子索引 调用者申请内存并初始化
  10387. typedef struct tagCFG_VIDEODIAGNOSIS_TASK
  10388. {
  10389. int nTotalTaskNum; // 调用者分配任务个数 根据能力集获取
  10390. int nReturnTaskNum; // 返回实际任务个数
  10391. CFG_DIAGNOSIS_TASK* pstTasks; // 任务配置 调用者分配内存nTotalTaskNum个
  10392. }CFG_VIDEODIAGNOSIS_TASK;
  10393. ///@brief 视频诊断计划
  10394. typedef struct tagPROJECT_TASK
  10395. {
  10396. BOOL bEnable; // 任务是否使能
  10397. char szTaskName[MAX_PATH]; // 任务名称Ansi编码
  10398. CFG_TIME_SECTION stTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 任务时间段
  10399. BOOL bIsCycle; // 任务是否循环,TRUE表示循环,FALSE表示不循环
  10400. BOOL bIsRepeat; // 任务是否重复执行,(跨天/周是否重复执行)
  10401. int nCycleInterval; // 任务循环间隔,单位秒
  10402. }CFG_PROJECT_TASK;
  10403. ///@brief 计划配置
  10404. typedef struct tagDIAGNOSIS_PROJECT
  10405. {
  10406. char szProjectName[MAX_PATH]; // 计划名称Ansi编码
  10407. int nTotalTaskNum; // 调用者分配任务列表个数 根据能力集获取
  10408. int nReturnTaskNum; // 返回实际任务列表个数
  10409. CFG_PROJECT_TASK* pstProjectTasks; // 任务列表 调用者分配内存nTotalTaskNum个
  10410. }CFG_DIAGNOSIS_PROJECT;
  10411. ///@brief 频诊断计划表(CFG_CMD_VIDEODIAGNOSIS_PROJECT),不同的计划通过名字索引 调用者申请内存并初始化
  10412. typedef struct tagCFG_VIDEODIAGNOSIS_PROJECT
  10413. {
  10414. int nTotalProjectNum; // 调用者分配计划个数 根据能力集获取
  10415. int nReturnProjectNum; // 返回实际计划个数
  10416. CFG_DIAGNOSIS_PROJECT* pstProjects; // 计划配置 调用者分配内存nTotalProjectNum个
  10417. }CFG_VIDEODIAGNOSIS_PROJECT;
  10418. ///@brief 实时计划相关信息
  10419. typedef struct tagCFG_DIAGNOSIS_REALPROJECT
  10420. {
  10421. char szProjectName[MAX_PATH]; // 计划名称Ansi编码
  10422. CFG_DIAGNOSIS_TASK stProjectTask; // 任务信息
  10423. }CFG_DIAGNOSIS_REALPROJECT;
  10424. ///@brief 视频诊断实时计划表
  10425. typedef struct tagCFG_VIDEODIAGNOSIS_REALPROJECT
  10426. {
  10427. int nProjectNum; // 实时计划个数
  10428. CFG_DIAGNOSIS_REALPROJECT* pstProjects; // 计划配置 调用者分配内存nProjectNum个
  10429. }CFG_VIDEODIAGNOSIS_REALPROJECT;
  10430. ///@brief 视频诊断全局表(CFG_CMD_VIDEODIAGNOSIS_GLOBAL),每个通道支持一个诊断配置
  10431. typedef struct tagCFG_VIDEODIAGNOSIS_GLOBAL_CHNNL
  10432. {
  10433. BOOL abProjectName; // 计划名称是否有效
  10434. char szProjectName[MAX_PATH]; // 计划名称,Ansi编码
  10435. BOOL abRealProjectName; // 实时计划名称是否有效
  10436. char szRealProjectName[MAX_PATH]; // 实时计划名称,Ansi编码
  10437. }CFG_VIDEODIAGNOSIS_GLOBAL_CHNNL;
  10438. ///@brief 视频诊断全局表
  10439. typedef struct tagCFG_VIDEODIAGNOSIS_GLOBAL
  10440. {
  10441. int nTotalGlobalNum; // 调用者分配全局配置个数 根据能力集获取
  10442. int nReturnGlobalNum; // 返回实际全局配置个数
  10443. CFG_VIDEODIAGNOSIS_GLOBAL_CHNNL *pstGlobals; // 视频诊断全局配置 调用者分配内存nTotalGlobalNum个CFG_VIDEODIAGNOSIS_GLOBAL_CHNNL
  10444. }CFG_VIDEODIAGNOSIS_GLOBAL;
  10445. ///@brief 视频诊断服务能力集(CFG_CAP_CMD_VIDEODIAGNOSIS_SERVER)
  10446. typedef struct tagCFG_VIDEODIAGNOSIS_CAPS_INFO
  10447. {
  10448. int nTypeCount; // 支持的视频诊断类型 个数
  10449. char szSupportedType[MAX_VIDEODIAGNOSIS_DETECT_TYPE][MAX_PATH];// 支持的视频诊断类型
  10450. int nMaxProfiles; // 最大参数表个数
  10451. int nMaxTasks; // 最大任务个数
  10452. int nMaxSourcesOfTask; // 最大单个任务的视频源个数
  10453. int nMaxProjects; // 最大方案个数
  10454. UINT nSupportedProfileConfig; // 支持方案配置的方式, 0表示支持VideoDiagnosisProfile, 1表示支持VideoDiagnosisProfileEx, 2表示支持所有
  10455. UINT nMaxSources; // 支持的最大授权视频源个数, 0表示不限制
  10456. UINT nMaxConcurrent; // 支持的最大并行任务数
  10457. UINT nLeftSources; // 剩余授权视频源个数
  10458. UINT nLeftDiskSpace; // 剩余磁盘空间, 单位KB
  10459. UINT nLeftDiskUsedDays; // 剩余磁盘使用天数
  10460. }CFG_VIDEODIAGNOSIS_CAPS_INFO;
  10461. ///@brief 获取视频诊断通道数目( CFG_CMD_VIDEODIAGNOSIS_GETCOLLECT )对应结构体
  10462. typedef struct tagCFG_VIDEODIAGNOSIS_COLLECT_INFO
  10463. {
  10464. int nDiagnosisChannels; // 视频诊断通道数目
  10465. }CFG_VIDEODIAGNOSIS_COLLECT_INFO;
  10466. ///@brief 任务运行状态
  10467. typedef enum tagEM_VIDEODIAGNOSIS_TASK_STATE
  10468. {
  10469. EM_VIDEODIAGNOSIS_TASK_STATE_UNKNOWN = -1, // 未知
  10470. EM_VIDEODIAGNOSIS_TASK_STATE_NOT_STARTED, // 未开始
  10471. EM_VIDEODIAGNOSIS_TASK_STATE_ONGOING, // 运行中
  10472. EM_VIDEODIAGNOSIS_TASK_STATE_INCOMPLETE, // 未完成
  10473. EM_VIDEODIAGNOSIS_TASK_STATE_COMPLETED, // 已完成
  10474. } EM_VIDEODIAGNOSIS_TASK_STATE;
  10475. ///@brief 获取视频诊断进行状态( CFG_CMD_VIDEODIAGNOSIS_GETSTATE )对应结构体
  10476. typedef struct tagCFG_VIDEODIAGNOSIS_STATE_INFO
  10477. {
  10478. BOOL bEnable; // 是否使能
  10479. BOOL bRunning; // 是否正在运行 使能开启,并且当前有工作任务正在进行,没有错误发生。
  10480. char szCurrentProject[MAX_PATH]; // 当前计划名称
  10481. char szCurrentTask[MAX_PATH]; // 当前任务名称
  10482. char szCurrentProfile[MAX_PATH]; // 当前任务配置参数表名称
  10483. int nCurrentSourceCount; // 当前任务轮训视频源个数
  10484. int nCurrentSourceIndex; // 当前任务当前视频源序号 从0开始
  10485. CFG_TIME_SECTION stCurrentTimeSection; // 当前计划时间段
  10486. int nTaskCountOfProject; // 当前计划总任务数
  10487. int nIndexOfCurrentTask; // 当前任务序号 从0开始
  10488. EM_VIDEODIAGNOSIS_TASK_STATE emTaskState; // 任务运行状态
  10489. }CFG_VIDEODIAGNOSIS_STATE_INFO;
  10490. ///@brief 服务器支持的服务列表
  10491. typedef struct tagCFG_DEV_SERVICE_LIST
  10492. {
  10493. int nServiceNum; // 支持的服务数
  10494. char szService[MAX_SERVICE_NUM][MAX_NAME_LEN]; // 服务器支持具体的服务项
  10495. }CFG_DEV_SERVICE_LIST;
  10496. ///@brief 获取主从式跟踪器数目
  10497. typedef struct tagCFG_MASTERSLAVETRACKER_INFO
  10498. {
  10499. int nStructSize;
  10500. int nChannels; //主从式跟踪器通道数目
  10501. }CFG_MASTERSLAVETRACKER_INFO;
  10502. #define MAX_CAMERA_TYPE 64
  10503. #define MAX_TYPE_STRING 64
  10504. ///@brief 具体的型号信息
  10505. typedef struct tagCFG_CAMERA_PER_TYPE_INFO
  10506. {
  10507. char szCameraType[MAX_TYPE_STRING]; //相机型号
  10508. char szLensType[MAX_TYPE_STRING]; //相机镜头型号 镜头型号和相机型号相关,可以为空值
  10509. }CFG_CAMERA_PER_TYPE_INFO;
  10510. ///@brief 摄像机类型
  10511. typedef struct tagCFG_CAMERA_TYPE_INFO
  10512. {
  10513. int nCameraTypeNum; //该类型的相机所具有的不同型号数
  10514. CFG_CAMERA_PER_TYPE_INFO stCameraTypeInfos[MAX_CAMERA_TYPE]; //具体的型号信息
  10515. }CFG_CAMERA_TYPE_INFO;
  10516. ///@brief 变倍类型
  10517. typedef enum tagCFG_ZOOM_TYPE
  10518. {
  10519. ZOOM_TYPE_EXPECTMULTIPLE =0, // 固定期望倍数变倍
  10520. ZOOM_TYPE_IVSADAPTIVE, // 根据智能设备输出自适应变倍
  10521. ZOOM_TYPE_MULTIPLEADAPTIVE, // 自适应变倍
  10522. ZOOM_TYPE_NUM
  10523. }CFG_ZOOM_TYPE;
  10524. ///@brief 跟踪模式
  10525. typedef enum tagCFG_TRACKING_MODE
  10526. {
  10527. TRACKING_MODE_ALARM=0, // 报警跟踪
  10528. TRACKING_MODE_MANUALOBJECT, // 手动选定物体跟踪
  10529. TRACKING_MODE_AUTOOBJECT, // 自动选定物体跟踪
  10530. TRACKING_MODE_SELECTPOINT, // 定点跟踪
  10531. TRACKING_MODE_MIX, // 混合跟踪(以上四种跟踪模式同时支持)
  10532. TRACKING_MODE_SLAVESELF, // 球机自主控制(主要用于用户对球机控制)
  10533. TRACKING_MODE_NUM = 6,
  10534. }CFG_TRACKING_MODE;
  10535. ///@brief 主从式跟踪器全局配置基本结构体
  10536. typedef struct tagCFG_MASTERSLAVE_GLOBAL_INFO
  10537. {
  10538. int nStructSize;
  10539. float fMaxZoom; // 最大变倍倍数, 只能是整数,小数被忽略
  10540. float fMinZoom; // 最小变倍倍数, 只能是整数,小数被忽略
  10541. float fExpectMultiple; // 期望倍数(基准倍数),最小变倍倍数<期望倍数<最大变倍倍数, 只能是整数,小数被忽略
  10542. float fPollTrackTime; // 轮询跟踪时长,单位:秒;>0.0
  10543. float fPointTrackTime; // 定点跟踪时长,单位:秒;>0.0在报警跟踪、自动选定物体跟踪、混合跟踪模式下有效
  10544. float fObjectTrackTime; // 手动选定物体跟踪时长, 单位:秒;>0.0在报警跟踪、自动选定物体跟踪、混合跟踪模式下有效
  10545. float fExpectAngleX; // 期望倍数对应球机角度x(水平), 只能是整数,小数被忽略
  10546. float fExpectAngleY; // 期望倍数对应球机角度y(垂直), 只能是整数,小数被忽略
  10547. CFG_SIZE stTargetFaceSize; // 靶面尺寸(单位:毫米), 球机设备参数,与球机有关, 只能是整数,小数被忽略
  10548. float fMinFocus; // 最小焦距(单位:毫米), 只能是整数,小数被忽略
  10549. float fMaxFocus; // 最大焦距(单位:毫米), 只能是整数,小数被忽略
  10550. CFG_ZOOM_TYPE emZoomType; // 变倍类型
  10551. CFG_TRACKING_MODE emTrackingMode; // 跟踪模式
  10552. CFG_CAMERA_TYPE_INFO stCameraInfo; // 枪式摄像机
  10553. CFG_CAMERA_TYPE_INFO stDomeInfo; // 球式摄像机
  10554. int nTrackZoomLevel; // 跟踪倍数等级 -5<= TrackZoomLevel <=5 0表示用默认算法方式
  10555. BOOL bReturnPtzPreset; // TRUE,跟踪后返回预置点 , FALSE,跟踪后不返回预置点
  10556. }CFG_MASTERSLAVE_GLOBAL_INFO;
  10557. ///@brief 获取主从式设备能力集
  10558. typedef struct tagCFG_CAP_MASTERSLAVE_INFO
  10559. {
  10560. int nStructSize;
  10561. BYTE byTrackingMode[TRACKING_MODE_NUM]; // 数组下标表示CFG_TRACKING_MODE枚举相对应模式,1表示支持
  10562. CFG_CAMERA_TYPE_INFO stCameraInfo; // 枪式摄像机
  10563. CFG_CAMERA_TYPE_INFO stDomeInfo; // 球式摄像机
  10564. }CFG_CAP_MASTERSLAVE_INFO;
  10565. ///@brief 获取服务器报警联动能力集
  10566. typedef struct tagCFG_CAP_EVENTHANDLER_INFO
  10567. {
  10568. BOOL bTimeSectionEnable; //
  10569. BOOL bRecordEnable; // 是否支持录像
  10570. BOOL bAlarmOutEnable; // 是否支持报警输出
  10571. BOOL bPtzLinkEnable; // 是否支持报警输出
  10572. BOOL bSnapshotEnable; // 是否支持快照
  10573. BOOL bMailEnable; // 是否支持发送邮件
  10574. BOOL bBeepEnable; // 是否支持蜂鸣
  10575. BOOL bDejitterEnable; // 是否支持去抖动
  10576. BOOL bTipEnable; // 是否支持本地消息框提示
  10577. BOOL bMonitorTourEnable; // 是否支持轮询联动配置
  10578. }CFG_CAP_EVENTHANDLER_INFO;
  10579. //---------------------------------视频输入配置------------------------------------------
  10580. #define DH_MAX_INMETERING_REGION_NUM 8
  10581. ///@brief 测光信息
  10582. typedef struct tagVIDEO_INMETERING_INFO_CHANNEL
  10583. {
  10584. // 能力
  10585. bool bRegion;
  10586. bool bMode;
  10587. BYTE bReserved1[2]; // 保留字段1
  10588. int nRegionNum; // 测光区域个数
  10589. CFG_RECT stuRegions[DH_MAX_INMETERING_REGION_NUM]; // 测光区域, 局部测光使用,支持多个测光区域,使用相对坐标体系,取值均为0~8191
  10590. BYTE byMode; // 测光模式,0:平均测光,1:局部测光
  10591. BYTE bReserved2[3]; // 保留字段2
  10592. BYTE bReserved3[32]; // 保留字段3
  10593. }VIDEO_INMETERING_INFO_CHANNEL;
  10594. ///@brief 测光配置(CFG_CMD_VIDEO_INMETERING)是一个数组,每个视频输入通道一个配置
  10595. typedef struct tagCFG_VIDEO_INMETERING_INFO
  10596. {
  10597. int nChannelNum; // 通道数
  10598. VIDEO_INMETERING_INFO_CHANNEL stuMeteringMode[MAX_VIDEO_CHANNEL_NUM]; // 每个通道的测光信息,下标对应通道号
  10599. }CFG_VIDEO_INMETERING_INFO;
  10600. ///@brief 视频输入能力集(CFG_CAP_CMD_VIDEOINPUT)配置
  10601. typedef struct tagCFG_CAP_VIDEOINPUT_INFO
  10602. {
  10603. int nMeteringRegionCount; // 最大测光区域个数
  10604. BOOL bFishEye; // 是否支持鱼眼
  10605. BOOL bElectricFocus; // 是否支持电动调焦
  10606. DWORD dwExposureMode; // 支持的自动曝光模式掩码 从低位到高位依次表示,0-自动曝光,1-低噪声(增益)优先,2-弱拖影(快门)优先, 3-50HZ防闪烁,4-60HZ防闪烁
  10607. int nWideDynamicRange; // 是否支持宽动态 0-不支持,1-支持数字宽动态
  10608. int nGlareInhibition; // 是否支持强光抑制 0-不支持,1-支持
  10609. }CFG_CAP_VIDEOINPUT_INFO;
  10610. ///@brief 流量统计报警信息配置
  10611. typedef struct tagCFG_TRAFFIC_FLOWSTAT_ALARM_INFO
  10612. {
  10613. bool bEnable; // 是否使能
  10614. int nPeriod; // 统计周期,单位:分钟
  10615. int nLimit; // 统计周期内车辆数上下限,单位:辆
  10616. int nRestore; // 统计周期内报警恢复车辆数,单位:辆
  10617. int nDelay; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  10618. int nInterval; // 报警间隔时间, 单位:秒, 范围1~65535
  10619. int nReportTimes; // 上报次数,1~255
  10620. CFG_TIME_SECTION stCurrentTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 当前计划时间段
  10621. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  10622. }CFG_TRAFFIC_FLOWSTAT_ALARM_INFO;
  10623. ///@brief 流量配置
  10624. typedef struct tagCFG_TRAFFIC_FLOWSTAT_INFO_CHNL
  10625. {
  10626. bool abEnable;
  10627. bool bEnable; // 是否使能
  10628. CFG_TRAFFIC_FLOWSTAT_ALARM_INFO stuAlarmUpperInfo; // 报警上线参数
  10629. CFG_TRAFFIC_FLOWSTAT_ALARM_INFO stuAlarmLowInfo; // 报警下线参数
  10630. int nDetectRegionPoint; // 检测区顶点数
  10631. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  10632. char szName[MAX_NAME_LEN]; // 当前车道规则名称,不同规则不能重名
  10633. int nPresetID; // 云台所在预置点编号(仅球机有效)
  10634. BOOL bIsDetectLine; // 表示车流量检测线是否有效
  10635. CFG_POLYGON stuDetectLine[POINT_PAIR_NUM]; // 车流量检测线,若不配置,算法自动生成检测线
  10636. }CFG_TRAFFIC_FLOWSTAT_INFO_LANE;
  10637. ///@brief 交通流量统计配置(CFG_CMD_TRAFFIC_FLOWSTAT)
  10638. typedef struct tagCFG_TRAFFIC_FLOWSTAT_INFO
  10639. {
  10640. // 能力
  10641. bool abPeriod;
  10642. BYTE bReserved1[3]; // 保留字段1
  10643. int nPeriod; // 统计周期,单位分钟
  10644. int nLaneNum; // 车道数
  10645. CFG_TRAFFIC_FLOWSTAT_INFO_LANE stuTrafficFlowstat[MAX_LANE_NUM]; // 每个车道的流量配置,下标对应车道号
  10646. DWORD dwLaneExtraMaxNum; // 车道数扩充最大值(用于申请内存),多场景应用多余的车道信息需要
  10647. DWORD dwLaneExtraRetNum; // 多场景应用多余的车道数实际个数
  10648. CFG_TRAFFIC_FLOWSTAT_INFO_LANE *pstuTrafficFlowstat; // 多场景的车道数, stuTrafficFlowstat数组放不开的车道在这里继续保存,序号从车道MAX_LANE_NUM+1开始
  10649. UINT nPeriodByMili; // 车流量统计周期,和nPeriod一起使用。单位毫秒,范围[0, 59999]
  10650. char bReserved2[260]; // 保留字段2
  10651. }CFG_TRAFFIC_FLOWSTAT_INFO;
  10652. ///@brief 视频浓缩规则配置(CFG_CMD_SYNOPSISANALYSE_RULE_INFO)
  10653. typedef struct tagCFG_VIDOE_SYNOPSIS_ANALYSE_RULE_INFO
  10654. {
  10655. CFG_ANALYSERULES_INFO stDetailRuleInfo; //详细规则
  10656. }CFG_VIDOE_SYNOPSIS_ANALYSE_RULE_INFO;
  10657. //----------------------------------视频输入前端选项-------------------------------------------
  10658. ///@brief 视频输入夜晚特殊配置选项,在晚上光线较暗时自动切换到夜晚的配置参数
  10659. typedef struct tagCFG_VIDEO_IN_NIGHT_OPTIONS
  10660. {
  10661. BYTE bySwitchMode; //已废弃,使用CFG_VIDEO_IN_OPTIONS里面的bySwitchMode
  10662. //0-不切换,总是使用白天配置;1-根据亮度切换;2-根据时间切换;3-不切换,总是使用夜晚配置;4-使用普通配置
  10663. BYTE byProfile; // 当前使用的配置文件.
  10664. // 0-白天
  10665. // 1-晚上
  10666. // 2-Normal
  10667. // 0,1,2都为临时配置,使图像生效,便于查看图像调试效果,不点击确定,离开页面不保存至设备。
  10668. ///3-非临时配置,点击确定后保存至设备,与SwitchMode结合使用,根据SwitchMode决定最终生效的配置。
  10669. // SwitchMode=0,Profile=3,设置白天配置到设备;
  10670. // SwitchMode=1,Profile=3,则设置夜晚配置到设备
  10671. // SwitchMode=2,Profile=3,根据日出日落时间段切换,白天时间段使用白天配置,夜晚时间段使用夜晚配置,保存至设备;
  10672. // SwitchMode=4,Profile=3;使用普通配置,保存至设备
  10673. BYTE byBrightnessThreshold ; // 亮度阈值 0~100
  10674. BYTE bySunriseHour; // 大致日出和日落时间,日落之后日出之前,将采用夜晚特殊的配置。
  10675. BYTE bySunriseMinute; // 00:00:00 ~ 23:59:59
  10676. BYTE bySunriseSecond;
  10677. BYTE bySunsetHour;
  10678. BYTE bySunsetMinute;
  10679. BYTE bySunsetSecond;
  10680. BYTE byGainRed; // 红色增益调节,白平衡为"Custom"模式下有效 0~100
  10681. BYTE byGainBlue; // 绿色增益调节,白平衡为"Custom"模式下有效 0~100
  10682. BYTE byGainGreen; // 蓝色增益调节,白平衡为"Custom"模式下有效 0~100
  10683. BYTE byExposure; // 曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n==byExposureEn)
  10684. float fExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  10685. float fExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
  10686. BYTE byWhiteBalance ; // 白平衡, 0-"unable", 1-"Auto", 2-"Custom", 3-"Sunny", 4-"Cloudy", 5-"Home", 6-"Office", 7-"Night", 8-"HighColorTemperature", 9-"LowColorTemperature", 10-"AutoColorTemperature", 11-"CustomColorTemperature"
  10687. BYTE byGain; // 0~100, GainAuto为true时表示自动增益的上限,否则表示固定的增益值
  10688. bool bGainAuto; // 自动增益
  10689. bool bIrisAuto; // 自动光圈
  10690. float fExternalSyncPhase; // 外同步的相位设置 0~360
  10691. BYTE byGainMin; // 增益下限
  10692. BYTE byGainMax; // 增益上限
  10693. BYTE byBacklight; // 背光补偿:取值范围取决于设备能力集:0-关闭1-启用2-指定区域背光补偿
  10694. BYTE byAntiFlicker; // 防闪烁模式 0-Outdoor 1-50Hz防闪烁 2-60Hz防闪烁
  10695. BYTE byDayNightColor; // 日/夜模式;0-总是彩色,1-根据亮度自动切换,2-总是黑白
  10696. BYTE byExposureMode; // 曝光模式调节 曝光等级为自动曝光时有效,取值:0-默认自动,1-增益优先,2-快门优先
  10697. BYTE byRotate90; // 0-不旋转,1-顺时针90°,2-逆时针90°
  10698. bool bMirror; // 镜像
  10699. BYTE byWideDynamicRange; // 宽动态值 0-关闭,1~100-为真实范围值
  10700. BYTE byGlareInhibition; // 强光抑制 0-关闭, 1~100为范围值
  10701. CFG_RECT stuBacklightRegion; // 背光补偿区域
  10702. BYTE byFocusMode; // 0-关闭,1-辅助聚焦,2-自动聚焦
  10703. bool bFlip; // 翻转
  10704. BYTE reserved[74]; // 保留
  10705. } CFG_VIDEO_IN_NIGHT_OPTIONS;
  10706. ///@brief 普通参数
  10707. typedef struct tagCFG_VIDEO_IN_NORMAL_OPTIONS
  10708. {
  10709. BYTE byGainRed; // 红色增益调节,白平衡为"Custom"模式下有效 0~100
  10710. BYTE byGainBlue; // 绿色增益调节,白平衡为"Custom"模式下有效 0~100
  10711. BYTE byGainGreen; // 蓝色增益调节,白平衡为"Custom"模式下有效 0~100
  10712. BYTE byExposure; // 曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n==byExposureEn)
  10713. float fExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  10714. float fExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
  10715. BYTE byWhiteBalance ; // 白平衡, 0-"unable", 1-"Auto", 2-"Custom", 3-"Sunny", 4-"Cloudy", 5-"Home", 6-"Office", 7-"Night", 8-"HighColorTemperature", 9-"LowColorTemperature", 10-"AutoColorTemperature", 11-"CustomColorTemperature"
  10716. BYTE byGain; // 0~100, GainAuto为true时表示自动增益的上限,否则表示固定的增益值
  10717. bool bGainAuto; // 自动增益
  10718. bool bIrisAuto; // 自动光圈
  10719. float fExternalSyncPhase; // 外同步的相位设置 0~360
  10720. BYTE byGainMin; // 增益下限
  10721. BYTE byGainMax; // 增益上限
  10722. BYTE byBacklight; // 背光补偿:取值范围取决于设备能力集:0-关闭1-启用2-指定区域背光补偿
  10723. BYTE byAntiFlicker; // 防闪烁模式 0-Outdoor 1-50Hz防闪烁 2-60Hz防闪烁
  10724. BYTE byDayNightColor; // 日/夜模式;0-总是彩色,1-根据亮度自动切换,2-总是黑白
  10725. BYTE byExposureMode; // 曝光模式调节 曝光等级为自动曝光时有效,取值:0-默认自动,1-增益优先,2-快门优先
  10726. BYTE byRotate90; // 0-不旋转,1-顺时针90°,2-逆时针90°
  10727. bool bMirror; // 镜像
  10728. BYTE byWideDynamicRange; // 宽动态值 0-关闭,1~100-为真实范围值
  10729. BYTE byGlareInhibition; // 强光抑制 0-关闭, 1~100为范围值
  10730. CFG_RECT stuBacklightRegion; // 背光补偿区域
  10731. BYTE byFocusMode; // 0-关闭,1-辅助聚焦,2-自动聚焦
  10732. bool bFlip; // 翻转
  10733. BYTE reserved[74]; // 保留
  10734. }CFG_VIDEO_IN_NORMAL_OPTIONS;
  10735. ///@brief 闪光灯配置
  10736. typedef struct tagCFG_FLASH_CONTROL
  10737. {
  10738. BYTE byMode; // 工作模式,0-禁止闪光,1-始终闪光,2-自动闪光
  10739. BYTE byValue; // 工作值, 0-0us, 1-64us, 2-128us, 3-192...15-960us
  10740. BYTE byPole; // 触发模式, 0-低电平 1-高电平 2-上升沿 3-下降沿
  10741. BYTE byPreValue; // 亮度预设值 区间0~100
  10742. BYTE byDutyCycle; // 占空比, 0~100
  10743. BYTE byFreqMultiple; // 倍频, 0~10
  10744. BYTE reserved[122]; // 保留
  10745. }CFG_FLASH_CONTROL;
  10746. ///@brief 抓拍参数特殊配置
  10747. typedef struct tagCFG_VIDEO_IN_SNAPSHOT_OPTIONS
  10748. {
  10749. BYTE byGainRed; // 红色增益调节,白平衡为"Custom"模式下有效 0~100
  10750. BYTE byGainBlue; // 绿色增益调节,白平衡为"Custom"模式下有效 0~100
  10751. BYTE byGainGreen; // 蓝色增益调节,白平衡为"Custom"模式下有效 0~100
  10752. BYTE byExposure; // 曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n==byExposureEn)
  10753. float fExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  10754. float fExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
  10755. BYTE byWhiteBalance; // 白平衡, 0-"unable", 1-"Auto", 2-"Custom", 3-"Sunny", 4-"Cloudy", 5-"Home", 6-"Office", 7-"Night", 8-"HighColorTemperature", 9-"LowColorTemperature", 10-"AutoColorTemperature", 11-"CustomColorTemperature"
  10756. BYTE byColorTemperature; // 色温等级, 白平衡为"CustomColorTemperature"模式下有效
  10757. bool bGainAuto; // 自动增益
  10758. BYTE byGain; // 增益调节, GainAuto为true时表示自动增益的上限,否则表示固定的增益值
  10759. BYTE reversed[112]; // 保留
  10760. } CFG_VIDEO_IN_SNAPSHOT_OPTIONS;
  10761. ///@brief 鱼眼矫正模式
  10762. typedef enum
  10763. {
  10764. CFG_CALIBRATE_MODE_UNKOWN, // 未知模式
  10765. CFG_CALIBRATE_MODE_ORIGIAL, // 原始图像模式
  10766. CFG_CALIBRATE_MODE_CONFIG, // 配置模式
  10767. CFG_CALIBRATE_MODE_PANORAMA, // 全景模式
  10768. CFG_CALIBRATE_MODE_DOUBLEPANORAMA, // 双全景模式
  10769. CFG_CALIBRATE_MODE_ORIGIALPLUSTHREEEPTZREGION, // 1+3模式(一个原始鱼眼图像加3个EPtz图像)
  10770. CFG_CALIBRATE_MODE_SINGLE, // 单画面EPtz模式(只有一个EPtz画面)
  10771. CFG_CALIBRATE_MODE_FOUREPTZREGION, // 4画面模式(4个EPtz控制画面)
  10772. CFG_CALIBRATE_MODE_NORMAL, // 普通模式
  10773. }CFG_CALIBRATE_MODE;
  10774. ///@brief 鱼眼镜头配置
  10775. typedef struct tagCFG_FISH_EYE
  10776. {
  10777. CFG_POLYGON stuCenterPoint; // 鱼眼圆心坐标,范围[0,8192]
  10778. unsigned int nRadius; // 鱼眼半径大小,范围[0,8192]
  10779. float fDirection; // 镜头旋转方向,旋转角度[0,360.0]
  10780. BYTE byPlaceHolder; // 镜头安装方式 1顶装,2壁装;3地装,默认1
  10781. BYTE byCalibrateMode; // 鱼眼矫正模式,详见CFG_CALIBRATE_MODE枚举值
  10782. BYTE reversed[31]; // 保留
  10783. }CFG_FISH_EYE;
  10784. ///@brief 视频输入前端选项
  10785. typedef struct tagCFG_VIDEO_IN_OPTIONS
  10786. {
  10787. BYTE byBacklight; // 背光补偿:取值范围取决于设备能力集:0-关闭1-启用2-指定区域背光补偿
  10788. BYTE byDayNightColor; // 日/夜模式;0-总是彩色,1-根据亮度自动切换,2-总是黑白
  10789. BYTE byWhiteBalance; // 白平衡, 0-"Disable", 1-"Auto", 2-"Custom", 3-"Sunny", 4-"Cloudy", 5-"Home", 6-"Office", 7-"Night", 8-"HighColorTemperature", 9-"LowColorTemperature", 10-"AutoColorTemperature", 11-"CustomColorTemperature"
  10790. // 12-"Indoor", 13-"Outdoor", 14-"ATW", 15-"Manual", 16-"AutoOutdoor", 17-"SodiumAuto", 18-"Sodium", 19-"Track", 20-"AutoTrack", 21-"ManualDatum", 22-"PartWhiteBalance", 23-"Natural", 24-"StreetLamp"
  10791. BYTE byColorTemperature; // 色温等级, 白平衡为"CustomColorTemperature"模式下有效
  10792. bool bMirror; // 镜像
  10793. bool bFlip; // 翻转
  10794. bool bIrisAuto; // 自动光圈
  10795. bool bInfraRed; // 根据环境光自动开启红外补偿灯
  10796. BYTE byGainRed; // 红色增益调节,白平衡为"Custom"模式下有效 0~100
  10797. BYTE byGainBlue; // 绿色增益调节,白平衡为"Custom"模式下有效 0~100
  10798. BYTE byGainGreen; // 蓝色增益调节,白平衡为"Custom"模式下有效 0~100
  10799. BYTE byExposure; // 曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n==byExposureEn)
  10800. float fExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  10801. float fExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
  10802. bool bGainAuto; // 自动增益
  10803. BYTE byGain; // 增益调节, GainAuto为true时表示自动增益的上限,否则表示固定的增益值
  10804. BYTE bySignalFormat; // 信号格式, 0-Inside(内部输入) 1-BT656 2-720p 3-1080p 4-1080i 5-1080sF
  10805. BYTE byRotate90; // 0-不旋转,1-顺时针90°,2-逆时针90°
  10806. float fExternalSyncPhase; // 外同步的相位设置 0~360
  10807. BYTE byExternalSync; // 外部同步信号输入,0-内部同步 1-外部同步
  10808. BYTE bySwitchMode; //0-不切换,总是使用白天配置;1-根据亮度切换;2-根据时间切换;3-不切换,总是使用夜晚配置;4-使用普通配置
  10809. BYTE byDoubleExposure; // 双快门, 0-不启用,1-双快门全帧率,即图像和视频只有快门参数不同,2-双快门半帧率,即图像和视频快门及白平衡参数均不同
  10810. BYTE byWideDynamicRange; // 宽动态值
  10811. CFG_VIDEO_IN_NIGHT_OPTIONS stuNightOptions; // 夜晚参数
  10812. CFG_FLASH_CONTROL stuFlash; // 闪光灯配置
  10813. CFG_VIDEO_IN_SNAPSHOT_OPTIONS stuSnapshot; // 抓拍参数, 双快门时有效
  10814. CFG_FISH_EYE stuFishEye; // 鱼眼镜头
  10815. BYTE byFocusMode; // 0-关闭,1-辅助聚焦,2-自动聚焦
  10816. BYTE reserved[28]; // 保留
  10817. BYTE byGainMin; // 增益下限
  10818. BYTE byGainMax; // 增益上限
  10819. BYTE byAntiFlicker; // 防闪烁模式 0-Outdoor 1-50Hz防闪烁 2-60Hz防闪烁
  10820. BYTE byExposureMode; // 曝光模式调节 曝光等级为自动曝光时有效,取值:0-默认自动,1-增益优先,2-快门优先,4-手动
  10821. BYTE byGlareInhibition; // 强光抑制 0-关闭, 1~100为范围值
  10822. CFG_RECT stuBacklightRegion; // 背光补偿区域
  10823. CFG_VIDEO_IN_NORMAL_OPTIONS stuNormalOptions;//普通参数
  10824. } CFG_VIDEO_IN_OPTIONS;
  10825. ///@brief RTSP输入参数和输出参数配置结构体
  10826. typedef struct tagCFG_MULTICAST_INFO
  10827. {
  10828. int nStructSize;
  10829. bool abStreamType;
  10830. BYTE byReserved[3];
  10831. BOOL bEnable; // 是否使能
  10832. char szMulticastAddr[MAX_ADDRESS_LEN]; //组播地址
  10833. int nPort; //组播端口
  10834. char szLocalAddr[MAX_ADDRESS_LEN]; //单播地址,用于组播指定详细网卡
  10835. int nChannelID; // 通道号
  10836. int nStreamType; // 码流类型 0-主码流, 1-辅码流1,2-辅码流2,3-辅码流3
  10837. }CFG_MULTICAST_INFO;
  10838. ///@brief 组播配置
  10839. typedef struct tagCFG_MULTICASTS_INFO
  10840. {
  10841. int nStructSize;
  10842. CFG_MULTICAST_INFO stuMultiInfo[MAX_CHAN_NUM]; //最大组播配置
  10843. int nCount; //有效数组个数
  10844. }CFG_MULTICASTS_INFO;
  10845. ///@brief RTSP的配置
  10846. typedef struct tagCFG_RTSP_INFO_IN
  10847. {
  10848. int nStructSize;
  10849. BOOL bEnable; // 整个功能是否使能
  10850. int nPort; // RTSP服务端口
  10851. int nRtpStartPort; // RTP起始端口
  10852. int nRtpEndPort; // RTP结束端口
  10853. BOOL bHttpEnable; // RtspOverHttp使能
  10854. int nHttpPort; // RtspOverHttp端口
  10855. }CFG_RTSP_INFO_IN;
  10856. ///@brief RTSP的配置
  10857. typedef struct tagCFG_RTSP_INFO_OUT
  10858. {
  10859. int nStructSize;
  10860. BOOL bEnable; // 整个功能是否使能
  10861. int nPort; // RTSP服务端口
  10862. int nRtpStartPort; // RTP起始端口
  10863. int nRtpEndPort; // RTP结束端口
  10864. BOOL bHttpEnable; // RtspOverHttp使能
  10865. int nHttpPort; // RtspOverHttp端口
  10866. }CFG_RTSP_INFO_OUT;
  10867. ///@brief 组播的相关配置
  10868. typedef struct tagCFG_MULTICASTS_INFO_IN
  10869. {
  10870. int nStructSize;
  10871. CFG_MULTICAST_INFO *pTSMulticast; //TS的组播配置
  10872. int nTSCount; //有效TS数组个数
  10873. CFG_MULTICAST_INFO *pRTPMulticast; //RTP的组播配置
  10874. int nRTPCount; //有效RTP数组个数
  10875. CFG_MULTICAST_INFO *pDHIIMulticast; //DHII的组播配置
  10876. int nDHIICount; //有效DHII数组个数
  10877. CFG_MULTICAST_INFO *pRTPAudio; //RTP音频组播配置
  10878. int nRTPAudioCount; //有效RTP音频数组个数
  10879. }CFG_MULTICASTS_INFO_IN;
  10880. ///@brief 组播的相关配置
  10881. typedef struct tagCFG_MULTICASTS_INFO_OUT
  10882. {
  10883. int nStructSize;
  10884. CFG_MULTICASTS_INFO stuTSMulticast; //TS的组播配置
  10885. CFG_MULTICASTS_INFO stuRTPMulticast; //RTP的组播配置
  10886. CFG_MULTICASTS_INFO stuDHIIMulticast; //DHII的组播配置
  10887. CFG_MULTICASTS_INFO stuRTPAudioMulticast; //RTP音频组播配置
  10888. }CFG_MULTICASTS_INFO_OUT;
  10889. ///@brief 用户列表
  10890. typedef struct tagCFG_ACTIVEUSER_INFO
  10891. {
  10892. int nStructSize;
  10893. int nUserID; //活动用户ID,一般是会话ID
  10894. char szUser[MAX_USERNAME_LEN]; // 用户名
  10895. char szGroupName[MAX_USERNAME_LEN]; // 用户所在组名
  10896. int nGroupLevel; // 用户所在组等级
  10897. char szClientType[MAX_USERNAME_LEN]; // 客户端类型
  10898. char szClientAddr[MAX_ADDRESS_LEN]; // 客户端IP地址
  10899. CFG_NET_TIME stuLoginTime; // 用户登入时间
  10900. }CFG_ACTIVEUSER_INFO;
  10901. ///@brief 得到所有活动的用户信息
  10902. typedef struct tagCFG_ACTIVEALLUSER_INFO
  10903. {
  10904. int nStructSize;
  10905. int nCount; //有效数组个数
  10906. CFG_ACTIVEUSER_INFO stuActiveUserInfo[MAX_ACTIVEUSER_NUM]; // 最大活动用户列表
  10907. }CFG_ACTIVEALLUSER_INFO;
  10908. ///@brief 时间
  10909. typedef struct tagCFG_NET_TIME_EX
  10910. {
  10911. DWORD dwYear; // 年
  10912. DWORD dwMonth; // 月
  10913. DWORD dwDay; // 日
  10914. DWORD dwHour; // 时
  10915. DWORD dwMinute; // 分
  10916. DWORD dwSecond; // 秒
  10917. DWORD dwMillisecond; // 毫秒
  10918. DWORD dwReserved[2]; // 保留字段
  10919. } CFG_NET_TIME_EX;
  10920. #define MAX_EXITMAN_NUM 32 // 支持的最大的离开人数
  10921. ///@brief 规则类型
  10922. typedef enum tagEM_CFG_RULE_TYPE
  10923. {
  10924. EM_CFG_RULE_UNKNOWN, // 未知
  10925. EM_CFG_RULE_NUMBER_STAT, // 人数统计
  10926. EM_CFG_RULE_MAN_NUM_DETECTION, // 区域内人数统计
  10927. } EM_CFG_RULE_TYPE;
  10928. ///@brief 离开人员的滞留时间信息
  10929. typedef struct tagCFG_EXITMAN_STAY_STAT
  10930. {
  10931. CFG_NET_TIME_EX stuEnterTime; // 人员进入区域时间
  10932. CFG_NET_TIME_EX stuExitTime; // 人员离开区域时间
  10933. BYTE reserved[104]; // 保留字节
  10934. } CFG_EXITMAN_STAY_STAT;
  10935. ///@brief 猪只离开滞留时间信息
  10936. typedef struct tagCFG_PIG_STAY_STAT
  10937. {
  10938. CFG_NET_TIME stuEnterTime; // 猪只进入区域的时间
  10939. CFG_NET_TIME stuExitTime; // 猪只离开区域的时间
  10940. char szReserved[200]; // 保留字节
  10941. }CFG_PIG_STAY_STAT;
  10942. ///@brief 获取视频统计摘要信息结构体
  10943. typedef struct tagCFG_CFG_VIDEOSATA_SUMMARY_INFO
  10944. {
  10945. int nStructSize;
  10946. int nChannelID; //统计通道号
  10947. char szRuleName[MAX_NAME_LEN]; //规则名称
  10948. CFG_NET_TIME_EX stuStatTime; //统计时间,转换到UTC
  10949. int nEnteredTotal; //进入总计
  10950. int nEnteredToday; //今天进入总计
  10951. int nEnteredMonth; //本月进入总计
  10952. int nEnteredYear; //今年进入总计
  10953. int nEnteredDaily; //每日最大进入总计
  10954. int nExitedTotal; //出去总计
  10955. int nExitedToday; //今天出去总计
  10956. int nExitedMonth; //本月出去总计
  10957. int nExitedYear; //今年出去总计
  10958. int nExitedDaily; //每日最大出去总计
  10959. int nAvgTotal; //平均所有保有统计(除去零值)
  10960. int nAvgToday; //平均今天保有统计
  10961. int nAvgMonth; //平均本月保有统计
  10962. int nAvgYear; //平均今年保有统计
  10963. int nMaxTotal; //最大所有保有统计(除去零值)
  10964. int nMaxToday; //最大今天保有统计
  10965. int nMaxMonth; //最大本月保有统计
  10966. int nMaxYear; //最大今年保有统计
  10967. int nInsideSubTotal; //区域内人数
  10968. EM_CFG_RULE_TYPE emRuleType; //规则类型
  10969. int nRetExitManNum; //离开人员的数量
  10970. CFG_EXITMAN_STAY_STAT stuExitManStayInfo[MAX_EXITMAN_NUM]; //离开人员的滞留时间信息
  10971. UINT nEnteredTotalPig; // 设备运行后猪只统计总数,重启后从上次总数开始继续累加
  10972. UINT nEnteredHourPig; // 小时内的总猪只数量
  10973. UINT nEnteredTodayPig; // 当天的总猪只数(自然天)
  10974. UINT nEnteredTotalPigInTimeSection; // IPC专用,如果不执行clearSectionStat操作,等同于TodayPig猪只数
  10975. UINT nExitedTotalPig; // 设备运行后猪只统计总数,重启后从上次总数开始继续累加
  10976. UINT nExitedHourPig; // 小时内的总猪只数量
  10977. UINT nExitedTodayPig; // 当天的总猪只数(自然天)
  10978. UINT nExitedTotalPigInTimeSection; // IPC专用,如果不执行clearSectionStat操作,等同于TodayPig猪只数
  10979. UINT nInsideTotalPig; // 区域内猪只数
  10980. int nInsidePigStayStatCount; // 猪只离开滞留时间信息个数
  10981. CFG_PIG_STAY_STAT stuInsidePigStayStatInfo[32]; // 猪只离开滞留时间信息
  10982. UINT nInsideTodayPig; // 当天的猪只数
  10983. UINT nEnteredTotalInTimeSection; // 自动清零时间段内的人数(IPC专用,如果不执行clearSectionStat操作,等同于Today人数)
  10984. UINT nExitedTotalInTimeSection; // 自动清零时间段内的人数(IPC专用,如果不执行clearSectionStat操作,等同于Today人数)
  10985. }CFG_VIDEOSATA_SUMMARY_INFO;
  10986. ///@brief 单场景跟踪结构体
  10987. typedef struct tagCFG_SINGLESCENE
  10988. {
  10989. int nStructSize;
  10990. int nSingleAlarmDelay; //报警延时:1~600秒
  10991. int nSinglePresetID; //预置点编号:1~255(-1代表无定义)
  10992. }CFG_SINGLESCENE;
  10993. ///@brief 巡航路径结构体
  10994. typedef struct tagCFG_TOURPATH
  10995. {
  10996. int nStructSize;
  10997. int nMultiPresetID; //场景预置点编号
  10998. int nMultiDuration; //停留时间30~900秒
  10999. }CFG_TOURPATH;
  11000. ///@brief 多场景跟踪优先模式
  11001. typedef enum tagCFG_MULTSCENE_PRIOR_MODE
  11002. {
  11003. EM_MULTSCENE_PRIOR_MODE_UNKNOW = 0 ,
  11004. EM_MULTSCENE_PRIOR_MODE_DETECT , //检测优先,等待系统检测完毕后再切换场景
  11005. EM_MULTSCENE_PRIOR_MODE_SWITCH , //切换优先,直接停掉系统检测,切换到下一个场景
  11006. }CFG_MULTSCENE_PRIOR_MODE;
  11007. ///@brief 多场景跟踪结构体
  11008. typedef struct tagCFG_MULTISCENE
  11009. {
  11010. int nStructSize;
  11011. int nMultiAlarmDelay; //报警延时:1~600秒
  11012. int nTourPathCount; //巡航路径个数
  11013. CFG_TOURPATH stuMultiTourPath[MAX_TRACKSCENE_NUM]; //巡航路径
  11014. CFG_MULTSCENE_PRIOR_MODE emPriorMode; //优先模式
  11015. }CFG_MULTISCENE;
  11016. ///@brief 全场景跟踪结构体
  11017. typedef struct tagCFG_FULLSCENE
  11018. {
  11019. int nStructSize;
  11020. int nFullAlarmDelay; //报警延时:1~600秒
  11021. int nFullPresetID; //预置点编号,全景跟踪预置点固定为0,用户不可设置
  11022. int nFullDuration; //全景跟踪持续时间,0秒: 一直跟踪;1~300:跟踪持续时间
  11023. }CFG_FULLSCENE;
  11024. ///@brief 限位参数结构体
  11025. typedef struct tag_CFG_POSITION_LIMIT
  11026. {
  11027. int nStructSize;
  11028. BOOL bEnable; //启用限位参数
  11029. int nType; //限位值表述方式:0: 由云台在限位设置操作时保存数据,限位值数据无意义
  11030. //1:限位值用角度(单位0.1度)表示,用该值设置该场景的限位
  11031. int nTop; //上限位值, 0~900:(单位0.1度)
  11032. int nBottom; //下限位值:0~900:(单位0.1度)
  11033. int nLeft; //左限位值:0~3600:(单位0.1度)
  11034. int nRight; //右限位值:0~3600:(单位0.1度)
  11035. }CFG_POSITION_LIMIT;
  11036. ///@brief 自行设置的标记方向
  11037. typedef enum tagCFG_SCENE_DIRECTION_INFO
  11038. {
  11039. EM_SCENE_DIRECTION_UNKNOW =0 ,
  11040. EM_SCENE_DIRECTION_APPROACH , //上行
  11041. EM_SCENE_DIRECTION_LEAVE , //下行
  11042. EM_SCENE_DIRECTION_BOTH , //双向
  11043. EM_SCENE_DIRECTION_EAST2WEST , //由东向西
  11044. EM_SCENE_DIRECTION_WEST2EAST , //由西向东
  11045. EM_SCENE_DIRECTION_SOUTH2NORTH , //由南向北
  11046. EM_SCENE_DIRECTION_NORTH2SOUTH , //由北向南
  11047. EM_SCENE_DIRECTION_OTHER , //其他
  11048. }CFG_SCENE_DIRECTION_INFO;
  11049. ///@brief 场景信息结构体
  11050. typedef struct tagCFG_SCENE
  11051. {
  11052. int nStructSize;
  11053. int nScenePresetID; //场景预置点,1~255,通过预置点编号关联到对应规则上
  11054. char szSceneName[MAX_NAME_LEN]; //场景名
  11055. int nSceneDuration; //跟踪持续时间:0秒: 一直跟踪;1~300:跟踪持续时间
  11056. double dSceneMaxZoom; //归一化到0~1;为null表示使用全局MaxZoom值
  11057. CFG_POSITION_LIMIT stuPositionLimit; //限位参数
  11058. int nSceneRegression; //归位时间,1~10秒:跟踪丢失后回到原场景的时间
  11059. CFG_SCENE_DIRECTION_INFO emDirectionInfo; ///自行设置的标记方向
  11060. }CFG_SCENE;
  11061. ///@brief 智能跟踪模式
  11062. typedef enum tagCFG_INTELLI_TRACE_MODE
  11063. {
  11064. EM_INTELLI_TRACE_MODE_UNKNOW = 0 ,
  11065. EM_INTELLI_TRACE_MODE_INDOOR , //室内跟踪(短时间)
  11066. EM_INTELLI_TRACE_MODE_OUTDOOR , //室外跟踪
  11067. EM_INTELLI_TRACE_MODE_CLASSROOM , //教室跟踪(长时间且需要人物标定)
  11068. }CFG_INTELLI_TRACE_MODE;
  11069. ///@brief 智能跟踪场景配置结构体
  11070. typedef struct tagCFG_INTELLITRACKSCENE_INFO
  11071. {
  11072. int nStructSize;
  11073. BOOL bEnableTrack; //启用智能跟踪
  11074. int nTrackType; //0,报警跟踪;1,手动跟踪
  11075. double dMaxZoom; //最大跟踪倍率,归一化到0~1,为null表示无限制
  11076. char szCategory[MAX_NAME_LEN]; //当前跟踪类型,"SingleScene":单场景跟踪;"MultiScene":多场景跟踪;"FullScene":全景跟踪
  11077. CFG_SINGLESCENE stuSingleTrack; //单场景跟踪
  11078. CFG_MULTISCENE stuMultiTrack; //多场景跟踪
  11079. CFG_FULLSCENE stuFullTrack; //全景跟踪
  11080. int nSceneCount; //支持的场景个数
  11081. CFG_SCENE stuScene[MAX_TRACKSCENE_NUM]; //场景列表
  11082. double dCameraHeight; //摄像头离地面垂直距离,单位:米
  11083. int nIdleDelay; //空闲等待时间,单位:秒(即用户停止操作设备后,到智能继续生效的空闲延时时间)
  11084. CFG_INTELLI_TRACE_MODE emTraceMode; //跟踪模式
  11085. }CFG_INTELLITRACKSCENE_INFO;
  11086. #define CFG_MAX_FISHEYE_WINDOW_NUM 8 // 最大鱼眼窗口数
  11087. #define CFG_MAX_FISHEYE_MODE_NUM 8 // 最大鱼眼模式数
  11088. ///@brief 鱼眼窗口位置信息
  11089. typedef struct tagCFG_FISHEYE_WINDOW_INFO
  11090. {
  11091. DWORD dwWindowID; // 窗口ID
  11092. int nFocusX; // EPtz(电子云台)的焦点横坐标
  11093. int nFocusY; // EPtz (电子云台)的焦点纵坐标
  11094. int nHorizontalAngle; // EPtz的水平角度
  11095. int nVerticalAngle; // EPtz的垂直角度
  11096. }CFG_FISHEYE_WINDOW_INFO;
  11097. ///@brief 鱼眼各模式的窗口位置信息
  11098. typedef struct tagCFG_FISHEYE_MODE_INFO
  11099. {
  11100. int nModeType; // 模式类型,详见 CFG_CALIBRATE_MODE
  11101. int nWindowNum; // 当前模式下的窗口数
  11102. CFG_FISHEYE_WINDOW_INFO stuWindwos[CFG_MAX_FISHEYE_WINDOW_NUM]; // 具体窗口信息
  11103. }CFG_FISHEYE_MODE_INFO;
  11104. ///@brief 鱼眼详细信息配置
  11105. typedef struct tagCFG_FISHEYE_DETAIL_INFO
  11106. {
  11107. int nModeNum; // 模块数
  11108. CFG_FISHEYE_MODE_INFO stuModes[CFG_MAX_FISHEYE_MODE_NUM]; // 具体模块信息
  11109. CFG_CALIBRATE_MODE emCalibrateMode; // 鱼眼矫正模式
  11110. }CFG_FISHEYE_DETAIL_INFO;
  11111. // 平台下发呼叫无应答转移配置列表
  11112. #define CFG_MAX_NOANSWER_FORWARD_GROUP_NUM 32 // 最大无应答前转列表个数
  11113. #define CFG_MAX_FORWARD_NUMBERS_NUM 32 // 最大无应答转移号码个数
  11114. ///@brief 无应答转移配置
  11115. typedef struct tagCFG_VT_NOANSWER_FORWARD_GROUP
  11116. {
  11117. char szRoomNumber[CFG_COMMON_STRING_32]; // 被呼叫号码
  11118. int nForwardNumbersNum; // 无应答转移号码个数
  11119. char szForwardNumbers[CFG_MAX_FORWARD_NUMBERS_NUM][CFG_COMMON_STRING_64]; // 无应答转移号码列表
  11120. }CFG_VT_NOANSWER_FORWARD_GROUP;
  11121. ///@brief 平台下发呼叫无应答转移配置列表信息
  11122. typedef struct tagCFG_VT_NOANSWER_FORWARD_INFO
  11123. {
  11124. BOOL bEnable; // 无应答转移使能
  11125. int nGroupNum; // 无应答转移配置列表有效个数,范围:0 ~ CFG_MAX_NOANSWER_FORWARD_GROUP_NUM
  11126. CFG_VT_NOANSWER_FORWARD_GROUP stuGroups[CFG_MAX_NOANSWER_FORWARD_GROUP_NUM]; // 无应答转移配置列表
  11127. }CFG_VT_NOANSWER_FORWARD_INFO;
  11128. ///@brief VTO呼叫配置
  11129. typedef struct tagCFG_VTO_CALL_INFO
  11130. {
  11131. BOOL bAreaEnable; // 跨区域联网使能
  11132. char szAreaNumber[CFG_COMMON_STRING_32]; // 区域编码
  11133. BOOL bMiddleNumberCallEnable; // 中号呼叫开关
  11134. char szVTHMiddleNumberPrefix[CFG_COMMON_STRING_16]; // VTH中号前缀,固定长度4位
  11135. char szVTHLongNumberPrefix[CFG_COMMON_STRING_32]; // VTH长号前缀,固定长度8位
  11136. char szVTOShortNumber[CFG_COMMON_STRING_16]; // VTO短号,固定长度4位
  11137. char szVTOMiddleNumberPrefix[CFG_COMMON_STRING_16]; // VTO中号前缀,固定长度4位
  11138. char szVTOLongNumbrPrefix[CFG_COMMON_STRING_32]; // VTO长号前缀,固定长度12位
  11139. char szVTSLongNumber[CFG_COMMON_STRING_32]; // VTS长号,固定长度18位
  11140. char szVillaCallVTHNum[CFG_COMMON_STRING_32]; // 别墅机呼叫号码
  11141. }CFG_VTO_CALL_INFO;
  11142. /************************工作状态配置**********************************/
  11143. ///@brief 抓拍模式
  11144. typedef enum tagCFG_TRAFFIC_SNAP_MODE
  11145. {
  11146. TRAFFIC_SNAP_MODE_AUTO = 0, // 自动抓拍
  11147. TRAFFIC_SNAP_MODE_COIL, // 线圈抓拍
  11148. TRAFFIC_SNAP_MODE_COIL_PICANALYSIS, // 线圈抓拍, 图片分析
  11149. TRAFFIC_SNAP_MODE_STREAM, // 视频抓拍
  11150. TRAFFIC_SNAP_MODE_STREAM_IDENTIFY, // 视频抓拍, 并且识别
  11151. TRAFFIC_SNAP_MODE_MIX_IDENTIFY, // 混合抓拍, 并且识别
  11152. } CFG_TRAFFIC_SNAP_MODE;
  11153. ///@brief 设备工作状态信息
  11154. typedef struct tagCFG_TRAFFIC_WORKSTATE_INFO
  11155. {
  11156. int nChannelID; // 通道号
  11157. CFG_TRAFFIC_SNAP_MODE emSnapMode; // 抓拍模式
  11158. int nMatchMode; // 抓拍匹配模式: 0-非实时匹配方式,先报警后抓拍,抓拍帧不是报警帧; 1-实时匹配模式,报警帧和抓拍帧是同一帧
  11159. }CFG_TRAFFIC_WORKSTATE_INFO;
  11160. ///@brief 获取设备工作状态是否正常(CFG_CAP_CMD_DEVICE_STATE 对应的结构体)
  11161. typedef struct tagCFG_TRAFFIC_DEVICE_STATUS
  11162. {
  11163. char szType[MAX_PATH]; // 设备类型 支持:"Radar","Detector","SigDetector","StroboscopicLamp"," FlashLamp"
  11164. char szSerialNo[MAX_PATH]; // 设备编号
  11165. char szVendor[MAX_PATH]; // 生产商
  11166. int nWokingState; // 工作状态 0-故障,1-正常工作
  11167. BYTE byLightState; // RS485灯的亮灭状态,Type 为"DhrsStroboscopicLamp"或者"DhrsSteadyLamp"时有效
  11168. // 0-未知, 1-灯亮, 2-灯灭
  11169. BYTE byReserved[3]; // 预留字节
  11170. }CFG_TRAFFIC_DEVICE_STATUS;
  11171. ///@brief 获取设备状态信息
  11172. typedef struct tagCFG_CAP_TRAFFIC_DEVICE_STATUS
  11173. {
  11174. int nStatus; // stuStatus 实际个数
  11175. CFG_TRAFFIC_DEVICE_STATUS stuStatus[MAX_STATUS_NUM];
  11176. }CFG_CAP_TRAFFIC_DEVICE_STATUS;
  11177. /************************录像盘组配置**********************************/
  11178. ///@brief 存储组信息
  11179. typedef struct tagCFG_STORAGEGROUP_INFO
  11180. {
  11181. char szGroupName[MAX_STORAGEGROUPNAME_LEN]; // 存储组名称
  11182. BYTE* byDisks; // 物理磁盘序号缓冲区
  11183. int nBufSize; // 缓冲区byDisks的长度
  11184. int nDiskNum; // 存储组中的磁盘数
  11185. int nGroupIndex; // 存储组序号(1~最大硬盘数)
  11186. }CFG_STORAGEGROUP_INFO;
  11187. ///@brief 录像-存储组 对应信息
  11188. typedef struct tagCFG_RECORDTOGROUP_INFO
  11189. {
  11190. int nChannelID; // 通道号
  11191. BOOL bEnable; // 使能
  11192. char szGroupName[MAX_STORAGEGROUPNAME_LEN]; // 存储组名称, 只读
  11193. int nGroupIndex; // 存储组序号(1~最大盘组, 0则表示无对应盘组),通过此参数与CFG_STORAGE_GROUP_INFO关联
  11194. }CFG_RECORDTOGROUP_INFO;
  11195. ///@brief 存储点类型
  11196. typedef enum EM_STORAGEPOINT_TYPE
  11197. {
  11198. EM_STORAGE_TIMINGRECORD, //定时录像存储点类型
  11199. EM_STORAGE_MANUALRECORD, //手动录像存储点类型
  11200. EM_STORAGE_VIDEODETECTRECORD, //视频检测录像存储点类型
  11201. EM_STORAGE_ALARMRECORD, //报警录像存储点类型
  11202. EM_STORAGE_CARDRECORD, //卡号录像存储点类型
  11203. EM_STORAGE_EVENTRECORD, // 其他事件录像存储点类型
  11204. EM_STORAGE_TIMINGSNAPSHOT, // 定时抓图存储点类型
  11205. EM_STORAGE_MANUALSNAPSHOT, // 手动抓图存储点类型
  11206. EM_STORAGE_VIDEODETECTSNAPSHOT, // 视频检测抓图存储点类型
  11207. EM_STORAGE_ALARMSNAPSHOT, // 报警抓图存储点类型
  11208. EM_STORAGE_CARDSNAPSHOT, // 卡号抓图存储点类型
  11209. EM_STORAGE_EVENTSNAPSHOT, // 其他事件抓图存储点类型
  11210. EM_STORAGE_TIMINGEXTRA1RECORD, // 辅码流1录像存储点类型
  11211. }EM_STORAGEPOINT_TYPE;
  11212. ///@brief 存储点配置信息
  11213. typedef struct tagCFG_STORAGEPOINT_INFO
  11214. {
  11215. DWORD dwSize;
  11216. EM_STORAGEPOINT_TYPE emStoragePointType;// 存储点类型
  11217. char nLocalDir; //本地工作目录组名称, 空表示不录到本地
  11218. char szCompressDir[MAX_DIRECTORY_LEN]; //实时压缩存储目录组,空表示不使用实时压缩存储。
  11219. char szRedundantDir[MAX_DIRECTORY_LEN]; //冗余工作目录组名称,空表示没有冗余录像。
  11220. char szRemoteDir[MAX_DIRECTORY_LEN]; //远程工作目录组名称,空表示不录到远程。
  11221. BOOL bAutoSync; //远程存储网络故障恢复后,是否自动将本地存储的数据同步到远程存储。
  11222. UINT nAutoSyncRange; //从网络恢复的时刻开始,需要往前同步的数据时间范围,小时为单位,0表示同步所有数据。
  11223. BOOL bLocalEmergency; //远程目录无法访问时,是否保存到本地目录。
  11224. UINT nCompressBefore; //设置将多少天之前的录像文件进行压缩。
  11225. }CFG_STORAGEPOINT_INFO;
  11226. ///@brief 录像存储点映射配置信息
  11227. typedef struct tagCFG_RECORDTOSTORAGEPOINT_INFO
  11228. {
  11229. int nStoragePointNum; //存储点数目
  11230. CFG_STORAGEPOINT_INFO stStoragePoints[MAX_STORAGEPOINT_NUM]; // 存储点配置信息
  11231. }CFG_RECORDTOSTORAGEPOINT_INFO;
  11232. ///@brief 录像存储点映射配置扩展信息
  11233. typedef struct tagCFG_RECORDTOSTORAGEPOINT_EX_INFO
  11234. {
  11235. DWORD dwSize;
  11236. int nMaxChannelRecord; // 最大录像通道配置个数
  11237. int nRetChannelRecord; // 实际返回通道配置个数
  11238. CFG_RECORDTOSTORAGEPOINT_INFO *pstRecordStorage; // 通道存储点配置信息, 由用户申请内存, 大小为sizeof(CFG_RECORDTOSTORAGEPOINT_INFO)*nMaxChannelRecord
  11239. }CFG_RECORDTOSTORAGEPOINT_EX_INFO;
  11240. ///@brief iscsi直存,元数据服务器配置接口
  11241. typedef struct __tagCFG_METADATA_SERVER
  11242. {
  11243. DWORD nStructSize;
  11244. BOOL bEnable; //使能开关
  11245. char szAddress[MAX_ADDRESS_LEN]; //IP地址或网络名
  11246. DWORD dwPort; //端口号
  11247. char szUserName[MAX_USERNAME_LEN]; //帐户名
  11248. char szPassword[MAX_PASSWORD_LEN]; //密码
  11249. char szDeviceID[MAX_REMOTEDEVICENAME_LEN]; //为使用元数据服务器的设备统一分配的ID,设备以此ID标识自己
  11250. }CFG_METADATA_SERVER;
  11251. ///@brief 车载货重配置
  11252. typedef struct __tagCFG_GOOD_WEIGHT_INFO
  11253. {
  11254. DWORD dwMaxGoodsWeight; // 最大货重(kg)
  11255. DWORD dwMinGoodsWeight; // 最小货重(kg)
  11256. DWORD dwSelfWeight; // 自重(kg)
  11257. DWORD dwStandardWeight; // 核重(kg)
  11258. DWORD dwAlarmWeight; // 报警阈值(kg)
  11259. int nCheckTime; // 静止采集时间(s)
  11260. } CFG_GOOD_WEIGHT_INFO;
  11261. ///@brief 重置镜头电机的结果
  11262. typedef enum EM_RESET_RESULT
  11263. {
  11264. EM_RESET_RESULT_UNKNOW, // 未知
  11265. EM_RESET_RESULT_SUCCESS, // 重置成功
  11266. EM_RESET_RESULT_FAILED, // 重置失败
  11267. }EM_RESET_RESULT;
  11268. ///@brief 镜头聚焦状态信息
  11269. typedef struct tagCFG_CAP_FOCUS_STATUS
  11270. {
  11271. int nAutofocusPeak; // 当前AF峰值 辅助聚焦模式下有效
  11272. double dFocus; // 聚焦位置 归一化到0~1
  11273. double dZoom; // 放大倍数 归一化到0~1
  11274. int nStatus; // 聚焦状态, 0 正常状态 1 正在自动聚焦
  11275. UINT nZoomMotorSteps; // 变倍电机总步长,对采用步进电机的设备有效
  11276. UINT nFocusMotorSteps; // 聚焦电机总步长,对采用步进电机的设备有效
  11277. EM_RESET_RESULT emResetResult; // 重置镜头电机的结果,只在重置操作时有效
  11278. UINT nFocusMode; // 聚焦模式: 1 混合,即普通聚焦, 2 人脸,即景深聚焦:针对人脸, 无此字段为普通聚焦
  11279. char szReserved[256]; // 预留字节
  11280. }CFG_CAP_FOCUS_STATUS;
  11281. ///@brief 云台支持能力信息
  11282. typedef struct tagCFG_CAP_PTZ_ENABLEINFO
  11283. {
  11284. BOOL bEnable; //该通道是否支持云台
  11285. }CFG_CAP_PTZ_ENABLEINFO;
  11286. ///@brief 网络应用能力集
  11287. typedef struct tagCFG_CAP_NETAPP
  11288. {
  11289. int nNetCardCount; // 网卡数量
  11290. int nNetTypeNumber; // 网络类型个数
  11291. char szNetType[MAX_NET_TYPE_NUM][MAX_NET_TYPE_LEN]; // 具体网络类型, "PPPoE","WIFI","3G","LAN"
  11292. }CFG_CAP_NETAPP;
  11293. ///@brief /////////////////////////////////三代协议新增///////////////////////////////////////
  11294. ///@brief 录像模式
  11295. typedef struct AV_CFG_RecordMode
  11296. {
  11297. AV_int32 nStructSize;
  11298. AV_int32 nMode; // 录像模式, 0-自动录像,1-手动录像,2-关闭录像
  11299. AV_int32 nModeExtra1; // 辅码流1录像模式, 0-自动录像,1-手动录像,2-关闭录像
  11300. AV_int32 nModeExtra2; // 辅码流2录像模式, 0-自动录像,1-手动录像,2-关闭录像
  11301. }AV_CFG_RecordMode;
  11302. ///@brief 通道名称
  11303. typedef struct AV_CFG_ChannelName
  11304. {
  11305. AV_int32 nStructSize;
  11306. AV_int32 nSerial; // 摄像头唯一编号
  11307. char szName[CFG_MAX_CHANNEL_NAME_LEN];// 通道名
  11308. }AV_CFG_ChannelName;
  11309. ///@brief 视频输出属性
  11310. typedef struct AV_CFG_VideoOutAttr
  11311. {
  11312. AV_int32 nStructSize;
  11313. AV_int32 nMarginLeft; // 左边距, 比率, 0~100
  11314. AV_int32 nMarginTop; // 上边距, 比率, 0~100
  11315. AV_int32 nMarginRight; // 右边距, 比率, 0~100
  11316. AV_int32 nMarginBottom; // 下边距, 比率, 0~100
  11317. AV_int32 nBrightness; // 亮度, 0~100
  11318. AV_int32 nContrast; // 对比度, 0~100
  11319. AV_int32 nSaturation; // 饱和度, 0~100
  11320. AV_int32 nHue; // 色调, 0~100
  11321. AV_int32 nWidth; // 水平分辨率
  11322. AV_int32 nHeight; // 垂直分辨率
  11323. AV_int32 nBPP; // 颜色深度
  11324. AV_int32 nFormat; // -1-未知, 0-Auto, 1-TV, 2-VGA, 3-DVI, 4-HDMI, 5-SPOT
  11325. AV_int32 nRefreshRate; // 刷新频率
  11326. AV_BOOL bIQIMode; // 输出图像增强
  11327. AV_int32 nScanFormat; // 扫描模式, 0-逐行, 1-隔行
  11328. }AV_CFG_VideoOutAttr;
  11329. ///@brief 时间段
  11330. typedef struct AV_CFG_TimeSection
  11331. {
  11332. AV_int32 nStructSize;
  11333. AV_int32 nMask; // 掩码
  11334. AV_int32 nBeginHour; // 开始时间
  11335. AV_int32 nBeginMinute;
  11336. AV_int32 nBeginSecond;
  11337. AV_int32 nEndHour; // 结束时间
  11338. AV_int32 nEndMinute;
  11339. AV_int32 nEndSecond;
  11340. }AV_CFG_TimeSection;
  11341. ///@brief 远程通道
  11342. typedef struct AV_CFG_RemoteChannel
  11343. {
  11344. AV_int32 nStructSize;
  11345. AV_BOOL bEnable; // 使能
  11346. char szDeviceID[AV_CFG_Device_ID_Len]; // 设备ID
  11347. AV_int32 nChannel; // 通道号
  11348. }AV_CFG_RemoteChannel;
  11349. ///@brief 显示源
  11350. typedef struct AV_CFG_DisplaySource
  11351. {
  11352. AV_int32 nStructSize;
  11353. AV_int32 nWindowID; // 窗口ID
  11354. AV_BOOL bEnable; // 使能
  11355. char szDeviceID[AV_CFG_Device_ID_Len];// 设备ID
  11356. AV_int32 nVideoChannel; // 视频通道号
  11357. AV_int32 nVideoStream; // 视频码流
  11358. AV_int32 nAudioChannle; // 音频通道号
  11359. AV_int32 nAudioStream; // 音频码流
  11360. AV_BOOL bVideoEnable; // 表示该窗口是否有视频源
  11361. }AV_CFG_DisplaySource;
  11362. ///@brief 通道分割显示源
  11363. typedef struct AV_CFG_ChannelDisplaySource
  11364. {
  11365. AV_int32 nStructSize;
  11366. AV_int32 nWindowNum; // 分割窗口数量
  11367. AV_CFG_DisplaySource stuSource[AV_CFG_Max_Split_Window];// 分割窗口显示源
  11368. }AV_CFG_ChannelDisplaySource;
  11369. ///@brief 画面轮训下分割模式的分组使能状态
  11370. typedef struct AV_CFG_MonitorTourMask
  11371. {
  11372. AV_int32 nStructSize;
  11373. CFG_SPLITMODE emSplitMode; // 分割模式
  11374. AV_int32 nGroupNum; // 分组数量
  11375. AV_int32 nGroup[AV_CFG_Max_Split_Group]; // 该分割模式下加入轮训的分组
  11376. }AV_CFG_MonitorTourMask;
  11377. ///@brief 画面轮训
  11378. typedef struct AV_CFG_MonitorTour
  11379. {
  11380. AV_int32 nStructSize;
  11381. AV_BOOL bEnable; // 使能
  11382. AV_int32 nInterval; // 时间间隔, 5~120s
  11383. AV_int32 nSplitMaskNum; // 分割分组使能数量
  11384. AV_CFG_MonitorTourMask stuSplitMask[AV_CFG_Max_Split_Mode];// 各分割模式对应的分组使能状态
  11385. AV_int32 nCollectionNum; // 收藏数量
  11386. char szCollection[AV_CFG_Monitor_Favorite_In_Channel][AV_CFG_Monitor_Favorite_Name_Len];// 画面收藏名称
  11387. }AV_CFG_MonitorTour;
  11388. ///@brief 预览画面收藏
  11389. typedef struct AV_CFG_MonitorFavorite
  11390. {
  11391. AV_int32 nStructSize;
  11392. AV_BOOL bDir; // 是否为目录
  11393. char szName[AV_CFG_Monitor_Favorite_Name_Len]; // 名称
  11394. char szPath[AV_CFG_Max_Path]; // 目录路径, 格式如下: .name1.name2.name3
  11395. CFG_SPLITMODE emMode; // 分割模式
  11396. AV_int32 nWindowNum; // 窗口数量
  11397. AV_CFG_DisplaySource stuWindow[AV_CFG_Max_Monitor_Favorite_Window]; // 窗口显示源配置
  11398. }AV_CFG_MonitorFavorite;
  11399. ///@brief 预览画面收藏集合
  11400. typedef struct AV_CFG_MonitorCollection
  11401. {
  11402. AV_int32 nStructSize;
  11403. AV_CFG_MonitorFavorite* pstuFavorite; // 画面收藏数组
  11404. AV_int32 nMaxCount; // 画面收藏数组大小
  11405. AV_int32 nRetCount; // 返回的画面收藏数量
  11406. }AV_CFG_MonitorCollection;
  11407. ///@brief Raid信息
  11408. typedef struct AV_CFG_Raid
  11409. {
  11410. AV_int32 nStructSize;
  11411. char szName[AV_CFG_Raid_Name_Len]; // 名称
  11412. AV_int32 nLevel; // 等级
  11413. AV_int32 nMemberNum; // 磁盘成员数量
  11414. char szMembers[AV_CFG_Max_Rail_Member][AV_CFG_Max_Path]; // 磁盘成员
  11415. }AV_CFG_Raid;
  11416. ///@brief 录像源
  11417. typedef struct AV_CFG_RecordSource
  11418. {
  11419. AV_int32 nStructSize;
  11420. AV_BOOL bEnable; // 使能
  11421. char szDeviceID[AV_CFG_Device_ID_Len];// 设备ID
  11422. AV_int32 nVideoChannel; // 视频通道号
  11423. AV_int32 nVideoStream; // 视频码流
  11424. AV_int32 nAudioChannle; // 音频通道号
  11425. AV_int32 nAudioStream; // 音频码流
  11426. }AV_CFG_RecordSource;
  11427. ///@brief 编码格式, 包括音频和视频
  11428. typedef struct AV_CFG_EncodeFormat
  11429. {
  11430. AV_int32 nStructSize;
  11431. AV_BOOL bAudioEnable; // 音频使能
  11432. AV_int32 nAudioBitRate; // 音频比特率
  11433. CFG_AUDIO_FORMAT emAudioCompression; // 音频压缩模式
  11434. AV_int32 nAudioDepth; // 音频采样深度
  11435. AV_int32 nAudioFrequency; // 音频采样频率
  11436. AV_int32 nAudioMode; // 音频编码模式
  11437. AV_int32 nAudioPack; // 音频打包模式, 0-DHAV, 1-PS
  11438. AV_BOOL bVideoEnable; // 视频使能
  11439. AV_int32 nVideoBitRate; // 视频比特率
  11440. CFG_BITRATE_CONTROL emVideoBitRateControl; // 码流控制模式
  11441. CFG_VIDEO_COMPRESSION emVideoCompression; // 视频压缩模式
  11442. AV_int32 nVideoFPS; // 视频帧率
  11443. AV_int32 nVideoGOP; // 视频I帧间隔
  11444. AV_int32 nVideoWidth; // 视频宽度
  11445. AV_int32 nVideoHeight; // 视频高度
  11446. CFG_IMAGE_QUALITY emVideoQuality; // 视频图像质量
  11447. AV_int32 nVideoPack; // 视频打包模式, 0-DHAV, 1-PS
  11448. }AV_CFG_EncodeFormat;
  11449. ///@brief 编码配置
  11450. typedef struct AV_CFG_Encode
  11451. {
  11452. AV_int32 nStructSize;
  11453. AV_CFG_EncodeFormat stuMainFormat[AV_CFG_Max_Encode_Main_Format]; // 主码流, 包括普通编码, 动检编码, 报警编码
  11454. AV_CFG_EncodeFormat stuExtraFormat[AV_CFG_Max_Encode_Extra_Format]; // 辅码流, 包括辅码流1, 辅码流2, 辅码流3
  11455. AV_CFG_EncodeFormat stuSnapFormat[AV_CFG_Max_Encode_Snap_Format]; // 抓图, 包括普通抓图, 动检抓图, 报警抓图
  11456. }AV_CFG_Encode;
  11457. ///@brief videocolor style
  11458. typedef enum tagCFG_ENUM_VIDEOCOLOR_STYLE
  11459. {
  11460. CFG_ENUM_VIDEOCOLOR_STYLE_UNKNOWN, // 未知
  11461. CFG_ENUM_VIDEOCOLOR_STYLE_GENTLE, // 柔和
  11462. CFG_ENUM_VIDEOCOLOR_STYLE_STANDARD, // 标准
  11463. CFG_ENUM_VIDEOCOLOR_STYLE_FLAMBOYANT, // 艳丽
  11464. }CFG_ENUM_VIDEOCOLOR_STYLE;
  11465. ///@brief 光照场景类型
  11466. typedef enum tagEM_LIGHT_SCENE
  11467. {
  11468. EM_LIGHT_SCENE_UNKNOWN, // 未知
  11469. EM_LIGHT_SCENE_DAY, // 白天
  11470. EM_LIGHT_SCENE_NIGHT, // 夜晚
  11471. EM_LIGHT_SCENE_NORMAL, // 普通
  11472. EM_LIGHT_SCENE_FRONT_LIGHT, // 顺光
  11473. EM_LIGHT_SCENE_BACK_LIGHT, // 一般逆光
  11474. EM_LIGHT_SCENE_STRONG_LIGHT, // 强逆光
  11475. EM_LIGHT_SCENE_LOW_LIGHT, // 低照度
  11476. EM_LIGHT_SCENE_CUSTOM, // 自定义
  11477. }EM_LIGHT_SCENE;
  11478. ///@brief 视频输入颜色配置, 每个视频输入通道对应多个颜色配置
  11479. typedef struct AV_CFG_VideoColor
  11480. {
  11481. AV_int32 nStructSize;
  11482. AV_CFG_TimeSection stuTimeSection; // 时间段
  11483. AV_int32 nBrightness; // 亮度, 0~100
  11484. AV_int32 nContrast; // 对比度, 0~100
  11485. AV_int32 nSaturation; // 饱和度, 0~100
  11486. AV_int32 nHue; // 色调, 0~100
  11487. AV_int32 nGamma; // 增益, 0~100
  11488. AV_int32 nChromaSuppress; // 色彩抑制等级 0~100
  11489. CFG_ENUM_VIDEOCOLOR_STYLE emColorStyle; // 色彩风格
  11490. }AV_CFG_VideoColor;
  11491. ///@brief 通道视频输入颜色配置
  11492. typedef struct AV_CFG_ChannelVideoColor
  11493. {
  11494. AV_int32 nStructSize;
  11495. AV_int32 nColorNum; // 通道颜色配置数
  11496. AV_CFG_VideoColor stuColor[AV_CFG_Max_VideoColor];// 通道颜色配置, 每个通道对应多个颜色配置
  11497. }AV_CFG_ChannelVideoColor;
  11498. ///@brief 颜色
  11499. typedef struct AV_CFG_Color
  11500. {
  11501. AV_int32 nStructSize;
  11502. AV_int32 nRed; // 红
  11503. AV_int32 nGreen; // 绿
  11504. AV_int32 nBlue; // 蓝
  11505. AV_int32 nAlpha; // 透明
  11506. }AV_CFG_Color;
  11507. ///@brief 区域
  11508. typedef struct AV_CFG_Rect
  11509. {
  11510. AV_int32 nStructSize;
  11511. AV_int32 nLeft;
  11512. AV_int32 nTop;
  11513. AV_int32 nRight;
  11514. AV_int32 nBottom;
  11515. }AV_CFG_Rect;
  11516. ///@brief 编码物件-区域覆盖配置
  11517. typedef struct AV_CFG_VideoWidgetCover
  11518. {
  11519. AV_int32 nStructSize;
  11520. AV_BOOL bEncodeBlend; // 叠加到主码流
  11521. AV_BOOL bEncodeBlendExtra1; // 叠加到辅码流1
  11522. AV_BOOL bEncodeBlendExtra2; // 叠加到辅码流2
  11523. AV_BOOL bEncodeBlendExtra3; // 叠加到辅码流3
  11524. AV_BOOL bEncodeBlendSnapshot; // 叠加到抓图
  11525. AV_CFG_Color stuFrontColor; // 前景色
  11526. AV_CFG_Color stuBackColor; // 背景色
  11527. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191
  11528. AV_BOOL bPreviewBlend; // 叠加到预览视频
  11529. }AV_CFG_VideoWidgetCover;
  11530. ///@brief 通道标题对齐信息
  11531. typedef enum tagEM_TITLE_TEXT_ALIGN
  11532. {
  11533. EM_TEXT_ALIGN_INVALID, // 无效的对齐方式
  11534. EM_TEXT_ALIGN_LEFT, // 左对齐
  11535. EM_TEXT_ALIGN_XCENTER, // X坐标中对齐
  11536. EM_TEXT_ALIGN_YCENTER, // Y坐标中对齐
  11537. EM_TEXT_ALIGN_CENTER, // 居中
  11538. EM_TEXT_ALIGN_RIGHT, // 右对齐
  11539. EM_TEXT_ALIGN_TOP, // 按照顶部对齐
  11540. EM_TEXT_ALIGN_BOTTOM, // 按照底部对齐
  11541. EM_TEXT_ALIGN_LEFTTOP, // 按照左上角对齐
  11542. EM_TEXT_ALIGN_CHANGELINE, // 换行对齐
  11543. }EM_TITLE_TEXT_ALIGN;
  11544. ///@brief 编码物件-通道标题
  11545. typedef struct AV_CFG_VideoWidgetChannelTitle
  11546. {
  11547. AV_int32 nStructSize;
  11548. AV_BOOL bEncodeBlend; // 叠加到主码流
  11549. AV_BOOL bEncodeBlendExtra1; // 叠加到辅码流1
  11550. AV_BOOL bEncodeBlendExtra2; // 叠加到辅码流2
  11551. AV_BOOL bEncodeBlendExtra3; // 叠加到辅码流3
  11552. AV_BOOL bEncodeBlendSnapshot; // 叠加到抓图
  11553. AV_CFG_Color stuFrontColor; // 前景色
  11554. AV_CFG_Color stuBackColor; // 背景色
  11555. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191, 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  11556. AV_BOOL bPreviewBlend; // 叠加到预览视频
  11557. }AV_CFG_VideoWidgetChannelTitle;
  11558. ///@brief 编码物件-时间标题
  11559. typedef struct AV_CFG_VideoWidgetTimeTitle
  11560. {
  11561. AV_int32 nStructSize;
  11562. AV_BOOL bEncodeBlend; // 叠加到主码流
  11563. AV_BOOL bEncodeBlendExtra1; // 叠加到辅码流1
  11564. AV_BOOL bEncodeBlendExtra2; // 叠加到辅码流2
  11565. AV_BOOL bEncodeBlendExtra3; // 叠加到辅码流3
  11566. AV_BOOL bEncodeBlendSnapshot; // 叠加到抓图
  11567. AV_CFG_Color stuFrontColor; // 前景色
  11568. AV_CFG_Color stuBackColor; // 背景色
  11569. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191, 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  11570. AV_BOOL bShowWeek; // 是否显示星期
  11571. AV_BOOL bPreviewBlend; // 叠加到预览视频
  11572. }AV_CFG_VideoWidgetTimeTitle;
  11573. ///@brief 编码物件-自定义标题
  11574. typedef struct AV_CFG_VideoWidgetCustomTitle
  11575. {
  11576. AV_int32 nStructSize;
  11577. AV_BOOL bEncodeBlend; // 叠加到主码流
  11578. AV_BOOL bEncodeBlendExtra1; // 叠加到辅码流1
  11579. AV_BOOL bEncodeBlendExtra2; // 叠加到辅码流2
  11580. AV_BOOL bEncodeBlendExtra3; // 叠加到辅码流3
  11581. AV_BOOL bEncodeBlendSnapshot; // 叠加到抓图
  11582. AV_CFG_Color stuFrontColor; // 前景色
  11583. AV_CFG_Color stuBackColor; // 背景色
  11584. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191, 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  11585. char szText[AV_CFG_Custom_Title_Len];// 标题内容
  11586. AV_BOOL bPreviewBlend; // 叠加到预览视频
  11587. char szType[AV_CFG_Custom_TitleType_Len];// 标题类型 "Rtinfo" 实时刻录信息 "Custom" 自定义叠加、温湿度叠加 "Title" :片头信息 "Check" 校验码
  11588. // 地理信息 "Geography" ATM卡号信息 "ATMCardInfo" 摄像机编号 "CameraID"
  11589. EM_TITLE_TEXT_ALIGN emTextAlign; // 标题对齐方式
  11590. AV_BOOL bUpdate; // 是否需要设备端更新叠加内容 true:更新 false:不更新
  11591. }AV_CFG_VideoWidgetCustomTitle;
  11592. ///@brief 编码物件-叠加传感器信息-叠加内容描述
  11593. typedef struct AV_CFG_VideoWidgetSensorInfo_Description
  11594. {
  11595. AV_int32 nStructSize;
  11596. AV_int32 nSensorID; // 需要描述的传感器的ID(即模拟量报警通道号)
  11597. char szDevID[CFG_COMMON_STRING_32]; // 设备ID
  11598. char szPointID[CFG_COMMON_STRING_32];// 测点ID
  11599. char szText[CFG_COMMON_STRING_256]; // 需要叠加的内容
  11600. }AV_CFG_VideoWidgetSensorInfo_Description;
  11601. ///@brief 编码物件-叠加传感器信息
  11602. typedef struct AV_CFG_VideoWidgetSensorInfo
  11603. {
  11604. AV_int32 nStructSize;
  11605. AV_BOOL bPreviewBlend; // 叠加到预览视频
  11606. AV_BOOL bEncodeBlend; // 叠加到主码流视频编码
  11607. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191
  11608. AV_int32 nDescriptionNum; // 叠加区域描述数目
  11609. AV_CFG_VideoWidgetSensorInfo_Description stuDescription[AV_CFG_Max_Description_Num];// 叠加区域描述信息
  11610. }AV_CFG_VideoWidgetSensorInfo;
  11611. ///@brief OSD中的字体方案FontSolution
  11612. typedef enum tagEM_FONT_SOLUTION
  11613. {
  11614. EM_FONT_UNKNOWN, // 未知
  11615. EM_FONT_DFAULT, // 默认字体 "default-font"
  11616. EM_FONT_SIMKAI, // 楷体 "simkai"
  11617. EM_FONT_SIMSUN, // 宋体"simsun"
  11618. }EM_FONT_SOLUTION;
  11619. ///@brief 视频编码物件配置
  11620. typedef struct AV_CFG_VideoWidget
  11621. {
  11622. AV_int32 nStructSize;
  11623. AV_CFG_VideoWidgetChannelTitle stuChannelTitle; // 通道标题
  11624. AV_CFG_VideoWidgetTimeTitle stuTimeTitle; // 时间标题
  11625. AV_int32 nConverNum; // 区域覆盖数量
  11626. AV_CFG_VideoWidgetCover stuCovers[AV_CFG_Max_Video_Widget_Cover]; // 覆盖区域
  11627. AV_int32 nCustomTitleNum; // 自定义标题数量
  11628. AV_CFG_VideoWidgetCustomTitle stuCustomTitle[AV_CFG_Max_Video_Widget_Custom_Title]; // 自定义标题
  11629. AV_int32 nSensorInfo; // 传感器信息叠加区域数目
  11630. AV_CFG_VideoWidgetSensorInfo stuSensorInfo[AV_CFG_Max_Video_Widget_Sensor_Info]; // 传感器信息叠加区域信息
  11631. double fFontSizeScale; //叠加字体大小放大比例
  11632. //当fFontSizeScale≠0时,nFontSize不起作用
  11633. //当fFontSizeScale=0时,nFontSize起作用
  11634. //设备默认fFontSizeScale=1.0
  11635. //如果需要修改倍数,修改该值
  11636. //如果需要按照像素设置,则置该值为0,nFontSize的值生效
  11637. AV_int32 nFontSize; //叠加到主码流上的全局字体大小,单位 px.
  11638. //和fFontSizeScale共同作用
  11639. AV_int32 nFontSizeExtra1; //叠加到辅码流1上的全局字体大小,单位 px
  11640. AV_int32 nFontSizeExtra2; //叠加到辅码流2上的全局字体大小,单位 px
  11641. AV_int32 nFontSizeExtra3; //叠加到辅码流3上的全局字体大小,单位 px
  11642. AV_int32 nFontSizeSnapshot; //叠加到抓图流上的全局字体大小, 单位 px
  11643. AV_int32 nFontSizeMergeSnapshot; //叠加到抓图流上合成图片的字体大小,单位 px
  11644. EM_FONT_SOLUTION emFontSolutionSnapshot; //叠加到抓图流上的字体方案
  11645. AV_CFG_VideoWidgetCover stuGPSTitle; //GPS标题显示, 车载设备用
  11646. AV_CFG_VideoWidgetCover stuCarNoTitle; //车牌标题显示, 车载设备用
  11647. char szChannelName[256]; // 通道名称(只为Onvif使用)
  11648. }AV_CFG_VideoWidget;
  11649. ///@brief 存储组通道相关配置
  11650. typedef struct AV_CFG_StorageGroupChannel
  11651. {
  11652. AV_int32 nStructSize;
  11653. AV_int32 nMaxPictures; // 每个通道文件夹图片存储上限, 超过就覆盖
  11654. char szPath[AV_CFG_Max_ChannelRule]; // 通道在命名规则里的字符串表示, %c对应的内容
  11655. }AV_CFG_StorageGroupChannel;
  11656. ///@brief 存储组配置
  11657. typedef struct AV_CFG_StorageGroup
  11658. {
  11659. AV_int32 nStructSize;
  11660. char szName[AV_CFG_Group_Name_Len]; // 分组名称
  11661. char szMemo[AV_CFG_Group_Memo_Len]; // 分组说明
  11662. AV_int32 nFileHoldTime; // 文件保留时间
  11663. AV_BOOL bOverWrite; // 存储空间满是否覆盖
  11664. char szRecordPathRule[AV_CFG_Max_Path]; // 录像文件路径命名规则
  11665. char szPicturePathRule[AV_CFG_Max_Path]; // 图片文件路径命名规则
  11666. // %y年, %M月, %d日, %h时, %m分, %s秒, %c通道路径
  11667. // 如果年月日时分秒出现两次, 第一次表示开始时间, 第二次表示结束时间
  11668. AV_CFG_StorageGroupChannel stuChannels[AV_CFG_Max_Channel_Num];// 通道相关配置
  11669. AV_int32 nChannelCount; // 通道配置数
  11670. char szCustomName[AV_CFG_Group_Name_Len]; // 自定义名称,若为空使用szName
  11671. char szSubDevices[MAX_DEV_NUM][MAX_DEVICE_NAME_LEN]; // 子设备列表
  11672. AV_int32 nSubDevices; // 子设备数量
  11673. }AV_CFG_StorageGroup;
  11674. ///@brief DST时间
  11675. typedef struct AV_CFG_DSTTime
  11676. {
  11677. AV_int32 nStructSize;
  11678. AV_int32 nYear; // 年, 2000~2038
  11679. AV_int32 nMonth; // 月, 1~12
  11680. AV_int32 nWeek; // 第几周, 1-第一周,2-第二周,...,-1-最后一周,0-按日期计算
  11681. AV_int32 nDay; // 星期几或日期
  11682. // 按周计算时, 0-周日, 1-周一,..., 6-周六
  11683. // 按日期算时, 表示几号, 1~31
  11684. AV_int32 nHour; // 小时
  11685. AV_int32 nMinute; // 分钟
  11686. }AV_CFG_DSTTime;
  11687. ///@brief 区域配置
  11688. typedef struct AV_CFG_Locales
  11689. {
  11690. AV_int32 nStructSize;
  11691. char szTimeFormat[AV_CFG_Time_Format_Len]; // 时间格式
  11692. AV_BOOL bDSTEnable; // 夏令时时能
  11693. AV_CFG_DSTTime stuDstStart; // 夏令时起始时间
  11694. AV_CFG_DSTTime stuDstEnd; // 夏令时结束时间
  11695. AV_BOOL bWeekEnable; // 星期是否使能
  11696. unsigned char ucWorkDay; // 按位表示一周的工作日掩码,bit0表示周日,bit1表示周一
  11697. }AV_CFG_Locales;
  11698. ///@brief 语言类型
  11699. typedef enum AV_CFG_LanguageType
  11700. {
  11701. AV_CFG_Language_English, // 英文
  11702. AV_CFG_Language_SimpChinese, // 简体中文
  11703. AV_CFg_Language_TradChinese, // 繁体中文
  11704. AV_CFG_Language_Italian, // 意大利文
  11705. AV_CFG_Language_Spanish, // 西班牙文
  11706. AV_CFG_Language_Janpanese, // 日文
  11707. AV_CFG_Language_Russian, // 俄文
  11708. AV_CFG_Language_French, // 法文
  11709. AV_CFG_Language_German, // 德文
  11710. AV_CFG_Language_Portugal, // 葡萄牙文
  11711. AV_CFG_Language_Turkey = 10, // 土耳其文
  11712. AV_CFG_Language_Poland, // 波兰文
  11713. AV_CFG_Language_Romanian, // 罗马尼亚
  11714. AV_CFG_Language_Hungarian, // 匈牙利语
  11715. AV_CFG_Language_Finnish, // 芬兰语
  11716. AV_CFG_Language_Estonian, // 爱沙尼亚语
  11717. AV_CFG_Language_Korean, // 韩语
  11718. AV_CFG_Language_Farsi, // 波斯语
  11719. AV_CFG_Language_Dansk, // 丹麦语
  11720. AV_CFG_Language_Czechish, // 捷克文
  11721. AV_CFG_Language_Bulgaria = 20, // 保加利亚文
  11722. AV_CFG_Language_Slovakian, // 斯洛伐克语
  11723. AV_CFG_Language_Slovenia, // 斯洛文尼亚文
  11724. AV_CFG_Language_Croatian, // 克罗地亚语
  11725. AV_CFG_Language_Dutch, // 荷兰语
  11726. AV_CFG_Language_Greek, // 希腊语
  11727. AV_CFG_Language_Ukrainian, // 乌克兰语
  11728. AV_CFG_Language_Swedish, // 瑞典语
  11729. AV_CFG_Language_Serbian, // 塞尔维亚语
  11730. AV_CFG_Language_Vietnamese, // 越南语
  11731. AV_CFG_Language_Lithuanian = 30, // 立陶宛语
  11732. AV_CFG_Language_Filipino, // 菲律宾语
  11733. AV_CFG_Language_Arabic, // 阿拉伯语
  11734. AV_CFG_Language_Catalan, // 加泰罗尼亚语
  11735. AV_CFG_Language_Latvian, // 拉脱维亚语
  11736. AV_CFG_Language_Thai, // 泰语
  11737. AV_CFG_Language_Hebrew, // 希伯来语
  11738. AV_CFG_Language_Bosnian, // 波斯尼亚文
  11739. AV_CFG_Language_Portuguese, // 葡萄牙文
  11740. AV_CFG_Language_Polish, // 波兰文
  11741. AV_CFG_Language_Czech = 40, // 捷克文
  11742. AV_CFG_Language_SpanishEU, // 西班牙拉丁西语
  11743. AV_CFG_Language_Norwegian, // 挪威语
  11744. AV_CFG_Language_Indonesia, // 印尼语
  11745. AV_CFG_Language_PortugalBR, // 巴西葡语
  11746. AV_CFG_Language_BritishEnglish, // 英式英语语音
  11747. AV_CFG_Language_TradChinese2, // 繁中字符串,普通话语音
  11748. AV_CFG_Language_Kazakh, // 哈萨克语, "Kazakh"
  11749. AV_CFG_Language_Bengali, // 孟加拉语, "Bengali"
  11750. AV_CFG_Language_Gujarati, // 古吉拉特语, "Gujarati"
  11751. AV_CFG_Language_Hindi = 50, // 印地语, "Hindi"
  11752. AV_CFG_Language_Tamil, // 泰米尔语, "Tamil"
  11753. AV_CFG_Language_Malayalam, // 马拉雅拉姆语, "Malayalam"
  11754. AV_CFG_Language_Telugu, // 泰卢固语, "Telugu"
  11755. AV_CFG_Language_Kannada, // 卡纳达语, "Kannada"
  11756. AV_CFG_Language_Marathi, // 马拉地语, "Marathi"
  11757. AV_CFG_Language_Malay, // 马来语, "Malay"
  11758. }AV_CFG_LanguageType;
  11759. ///@brief 语言配置
  11760. typedef struct AV_CFG_Language
  11761. {
  11762. AV_int32 nStructSize;
  11763. AV_CFG_LanguageType emLanguage; // 当前语言
  11764. }AV_CFG_Language;
  11765. ///@brief 访问地址过滤
  11766. typedef struct AV_CFG_AccessFilter
  11767. {
  11768. AV_int32 nStructSize;
  11769. AV_BOOL bEnable; // 使能
  11770. AV_int32 nType; // 类型, 0-禁止名单, 1-允许名单
  11771. AV_int32 nWhiteListNum; // 允许名单IP数量
  11772. char szWhiteList[AV_CFG_Max_White_List][AV_CFG_Filter_IP_Len]; // 允许名单
  11773. AV_int32 nBlackListNum; // 禁止名单IP或IP段数量
  11774. char szBlackList[AV_CFG_Max_Black_List][AV_CFG_Filter_IP_Len]; // 禁止名单
  11775. AV_BOOL bIndividual[AV_CFG_Max_White_List]; //允许名单:针对单个IP控制是否使能。
  11776. //通过CLIENT_GetDevCaps/NET_USER_MNG_CAPS查看是否支持.
  11777. // 如果支持:可获取或设置该字段;若不支持,则该字段无效
  11778. AV_BOOL bIndividualInBlackList[AV_CFG_Max_Black_List]; //禁止名单:针对单个IP控制是否使能
  11779. // 通过CLIENT_GetDevCaps/NET_USER_MNG_CAPS查看是否支持.
  11780. // 如果支持:可获取或设置该字段;若不支持,则该字段无效
  11781. }AV_CFG_AccessFilter;
  11782. ///@brief 自动维护
  11783. typedef struct AV_CFG_AutoMaintain
  11784. {
  11785. AV_int32 nStructSize;
  11786. AV_int32 nAutoRebootDay; // 自动重启日期, -1永不, 0~6周日~周六, 7每天
  11787. AV_int32 nAutoRebootHour; // 自动重启小时, 0~23
  11788. AV_int32 nAutoRebootMinute; // 自动重启分钟, 0~59
  11789. AV_int32 nAutoShutdownDay; // 自动关机日期
  11790. AV_int32 nAutoShutdownHour; // 自动关机小时
  11791. AV_int32 nAutoShutdownMinute; // 自动关机分钟
  11792. AV_int32 nAutoStartupDay; // 自动启动日期
  11793. AV_int32 nAutoStartupHour; // 自动启动小时
  11794. AV_int32 nAutoStartupMinute; // 自动启动分钟
  11795. AV_BOOL bAutoRebootEnable; // true表示开启自动重启,false表示关闭自动重启
  11796. AV_int32 nAutoShutDelay; // 车载延时关机时间[0,65536]分钟,(ACC断电后开始计数)
  11797. }AV_CFG_AutoMaintain;
  11798. #define AV_CFG_Monitor_Name_Len 64 // 电视墙名称长度
  11799. #define AV_CFG_Max_TV_In_Block 128 // 区块中TV的最大数量
  11800. #define AV_CFG_Max_Block_In_Wall 128 // 电视墙中区块的最大数量
  11801. ///@brief 电视墙输出模式信息
  11802. typedef struct tagAV_CFG_MONITOR_WALL_OUT_MODE_INFO
  11803. {
  11804. int nWidth; // 水平分辨率
  11805. int nHeight; // 垂直分辨率
  11806. BYTE byReserved[256]; // 保留字节
  11807. }AV_CFG_MONITOR_WALL_OUT_MODE_INFO;
  11808. ///@brief 电视墙输出通道信息
  11809. typedef struct AV_CFG_MonitorWallTVOut
  11810. {
  11811. AV_int32 nStructSize;
  11812. char szDeviceID[AV_CFG_Device_ID_Len]; // 设备ID, 为空或"Local"表示本地设备
  11813. AV_int32 nChannelID; // 通道ID
  11814. char szName[AV_CFG_Channel_Name_Len]; // 屏幕名称
  11815. BOOL bIsVirtual; // 是否是虚拟屏(虚拟屏表示在本设备上不存在的屏)TRUE:虚拟屏 FALSE:非虚拟屏
  11816. char szAddress[40]; // 归属设备地址IP
  11817. AV_CFG_MONITOR_WALL_OUT_MODE_INFO stuOutMode; // 输出模式信息
  11818. int nPosX; /// 相对物理坐标系下水平方向起始位置
  11819. int nPosY; /// 相对物理坐标系下垂直方向起始位置
  11820. }AV_CFG_MonitorWallTVOut;
  11821. ///@brief 电视墙区块
  11822. typedef struct AV_CFG_MonitorWallBlock
  11823. {
  11824. AV_int32 nStructSize;
  11825. AV_int32 nLine; // 单个TV占的网格行数
  11826. AV_int32 nColumn; // 单个TV占的网格列数
  11827. AV_CFG_Rect stuRect; // 区块的区域坐标
  11828. AV_int32 nTVCount; // TV数量
  11829. AV_CFG_MonitorWallTVOut stuTVs[AV_CFG_Max_TV_In_Block]; // TV数组
  11830. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 开关机时间
  11831. char szName[AV_CFG_Channel_Name_Len]; // 区块名称
  11832. char szCompositeID[AV_CFG_Device_ID_Len]; // 融合屏ID
  11833. char szBlockType[CFG_COMMON_STRING_32]; // 显示单元组类型,为支持由接收卡组成单元的小间距LED区块而增加该字段,其他类型的区块填写为"LCD",如不存在该字段,默认采用LCD
  11834. int nOutputDelay; // 输出延迟,单位:毫秒
  11835. }AV_CFG_MonitorWallBlock;
  11836. ///@brief 电视墙
  11837. typedef struct AV_CFG_MonitorWall
  11838. {
  11839. AV_int32 nStructSize;
  11840. char szName[AV_CFG_Monitor_Name_Len]; // 名称
  11841. AV_int32 nLine; // 网络行数
  11842. AV_int32 nColumn; // 网格列数
  11843. AV_int32 nBlockCount; // 区块数量
  11844. AV_CFG_MonitorWallBlock stuBlocks[AV_CFG_Max_Block_In_Wall];// 区块数组
  11845. BOOL bDisable; // 是否禁用, 0-该电视墙有效, 1-该电视墙无效
  11846. char szDesc[CFG_COMMON_STRING_256]; // 电视墙描述信息
  11847. int nCoordinateType; /// 电视墙坐标系类型, 0:未知, 1:8192相对坐标系, 2:物理坐标系
  11848. }AV_CFG_MonitorWall;
  11849. ///@brief 拼接屏
  11850. typedef struct AV_CFG_SpliceScreen
  11851. {
  11852. AV_int32 nStructSize;
  11853. char szName[AV_CFG_Channel_Name_Len]; // 拼接屏名称
  11854. char szWallName[AV_CFG_Monitor_Name_Len];// 所属电视墙名称
  11855. AV_int32 nBlockID; // 所属区块序号
  11856. AV_CFG_Rect stuRect; // 区域坐标(0~8191)
  11857. }AV_CFG_SpliceScreen;
  11858. ///@brief 云台联动类型
  11859. typedef enum tagAV_CFG_PtzLinkType
  11860. {
  11861. AV_CFG_PtzLink_None, // 无联动
  11862. AV_CFG_PtzLink_Preset, // 联动预置点
  11863. AV_CFG_PtzLink_Tour, // 联动巡航
  11864. AV_CFG_PtzLink_Pattern, // 联动轨迹
  11865. } AV_CFG_PtzLinkType;
  11866. ///@brief 联动云台信息
  11867. typedef struct tagAV_CFG_PtzLink
  11868. {
  11869. AV_int32 nStructSize;
  11870. AV_CFG_PtzLinkType emType; // 联动类型
  11871. AV_int32 nParam1; // 联动参数1
  11872. AV_int32 nParam2; // 联动参数2
  11873. AV_int32 nParam3; // 联动参数3
  11874. AV_int32 nChannelID; // 所联动云台通道
  11875. } AV_CFG_PtzLink;
  11876. ///@brief 坐标点
  11877. typedef struct tagAV_CFG_Point
  11878. {
  11879. AV_int32 nStructSize;
  11880. AV_int32 nX;
  11881. AV_int32 nY;
  11882. } AV_CFG_Point;
  11883. ///@brief 宽高
  11884. typedef struct tagAV_CFG_Size
  11885. {
  11886. AV_int32 nStructSize;
  11887. AV_uint32 nWidth;
  11888. AV_uint32 nHeight;
  11889. } AV_CFG_Size;
  11890. ///@brief 事件标题内容
  11891. typedef struct tagAV_CFG_EventTitle
  11892. {
  11893. AV_int32 nStructSize;
  11894. char szText[AV_CFG_Channel_Name_Len]; // 标题文本
  11895. AV_CFG_Point stuPoint; // 标题左上角坐标, 采用0-8191相对坐标系
  11896. AV_CFG_Size stuSize; // 标题的宽度和高度,采用0-8191相对坐标系,某项或者两项为0表示按照字体自适应宽高
  11897. AV_CFG_Color stuFrontColor; // 前景颜色
  11898. AV_CFG_Color stuBackColor; // 背景颜色
  11899. } AV_CFG_EventTitle;
  11900. ///@brief 轮巡联动配置
  11901. typedef struct tagAV_CFG_TourLink
  11902. {
  11903. AV_int32 nStructSize;
  11904. AV_BOOL bEnable; // 轮巡使能
  11905. CFG_SPLITMODE emSplitMode; // 轮巡时的分割模式
  11906. AV_int32 nChannels[AV_CFG_Max_Channel_Num]; // 轮巡通道号列表
  11907. AV_int32 nChannelCount; // 轮巡通道数量
  11908. } AV_CFG_TourLink;
  11909. ///@brief 报警联动
  11910. typedef struct tagAV_CFG_EventHandler
  11911. {
  11912. AV_int32 nStructSize;
  11913. AV_CFG_TimeSection stuTimeSect[AV_CFG_Weekday_Num][AV_CFG_Max_TimeSection]; // 事件响应时间表
  11914. AV_BOOL bRecordEnable; // 录像使能
  11915. AV_uint32 nRecordMask[AV_CFG_Max_Channel_Num]; // 录像通道号列表
  11916. AV_BOOL abRecordLatch; // 能力集, 标识nRecordLatch是否有效
  11917. AV_int32 nRecordLatch; // 录像延时时间(10~300秒)
  11918. AV_BOOL bAlarmOutEn; // 报警输出使能
  11919. AV_uint32 nAlarmOutMask[AV_CFG_Max_Channel_Num]; // 报警输出通道号列表
  11920. AV_BOOL abAlarmOutLatch; // 能力集, 标识nAlarmOutLatch是否有效
  11921. AV_int32 nAlarmOutLatch; // 报警输出延时时间(10~300秒)
  11922. AV_BOOL bExAlarmOutEn; // 扩展报警输出使能
  11923. AV_uint32 nExAlarmOutMask[AV_CFG_Max_Channel_Num]; // 扩展报警输出通道列表
  11924. AV_BOOL bPtzLinkEn; // 云台联动使能
  11925. AV_int32 nPtzLinkNum; // 有效联动项数目
  11926. AV_CFG_PtzLink stuPtzLink[AV_CFG_Max_Channel_Num]; // 云台联动项
  11927. AV_BOOL bSnapshotEn; // 快照使能
  11928. AV_uint32 nSnapshotMask[AV_CFG_Max_Channel_Num]; // 快照通道号列表
  11929. AV_BOOL abSnapshotPeriod; // 能力集, 标识nSnapshotPeriod是否有效
  11930. AV_int32 nSnapshotPeriod; // 帧间隔,每隔多少帧抓一张图片,一定时间内抓拍的张数还与抓图帧率有关。0表示不隔帧,连续抓拍。
  11931. AV_BOOL abSnapshotTimes; // 能力集, nSnapshotTimes有效性
  11932. AV_int32 nSnapshotTimes; // 连拍次数, 在SnapshotEnable为true的情况下,SnapshotTimes为0则表示持续抓拍,直到事件结束。
  11933. AV_BOOL bSnapshotTitleEn; // 是否叠加图片标题
  11934. AV_int32 nSnapTitleNum; // 有效图片标题数目
  11935. AV_CFG_EventTitle stuSnapTitles[AV_CFG_Max_Event_Title_Num]; // 图片标题内容
  11936. AV_BOOL bTipEnable; // 本地消息框提示
  11937. AV_BOOL bMailEnable; // 发送邮件,如果有图片,作为附件
  11938. AV_BOOL bMessageEnable; // 上传到报警服务器
  11939. AV_BOOL bBeepEnable; // 蜂鸣
  11940. AV_BOOL bVoiceEnable; // 语音提示
  11941. AV_BOOL abDejitter; // 能力集, nDejitter有效性
  11942. AV_int32 nDejitter; // 信号去抖动时间,单位为秒,0~100
  11943. AV_BOOL bLogEnable; // 是否记录日志
  11944. AV_BOOL abDelay; // nDelay有效性
  11945. AV_int32 nDelay; // 设置时先延时再生效, 单位为秒
  11946. AV_BOOL bVideoTitleEn; // 是否叠加视频标题,主要指主码流
  11947. AV_int32 nVideoTitleNum; // 有效视频标题数目
  11948. AV_CFG_EventTitle stuVideoTitles[AV_CFG_Max_Event_Title_Num]; // 视频标题内容
  11949. AV_BOOL bMMSEnable; // 发送彩信使能
  11950. AV_int32 nTourNum; // 轮巡联动数目,和视频输出一致
  11951. AV_CFG_TourLink stuTour[AV_CFG_Max_Tour_Link_Num]; // 轮巡联动配置, 每个视频输出对应一个配置
  11952. AV_int32 nDBKeysNum; // 关键字数量
  11953. char szDBKeys[AV_CFG_Max_DBKey_Num][AV_CFG_DBKey_Len]; // 关键字
  11954. AV_BOOL abJpegSummary; // 能力集, 标识byJpegSummary是否有效
  11955. AV_BYTE byJpegSummary[AV_CFG_Max_Summary_Len]; // 叠加到JPEG图片的摘要信息
  11956. } AV_CFG_EventHandler;
  11957. #define AV_CFG_Event_Code_Len 64 // 事件码长度
  11958. ///@brief 远程设备事件处理
  11959. typedef struct AV_CFG_RemoteEvent
  11960. {
  11961. AV_int32 nStructSize;
  11962. AV_BOOL bEnable; // 使能
  11963. char szDeviceID[AV_CFG_Device_ID_Len];// 设备ID
  11964. char szCode[AV_CFG_Event_Code_Len]; // 事件码
  11965. AV_int32 nIndex; // 序号
  11966. AV_BOOL abSensorType; // nSensorType是否有效
  11967. AV_uint32 nSensorType; // 传感器类型 常开:1 or 常闭:0
  11968. AV_CFG_EventHandler stuEventHandler; // 报警联动
  11969. }AV_CFG_RemoteEvent;
  11970. ///@brief 温度报警配置
  11971. typedef struct tagAV_CFG_TemperatureAlarm
  11972. {
  11973. AV_int32 nStructSize;
  11974. AV_BOOL bEnable; // 报警使能
  11975. char szName[AV_CFG_Device_Name_Len]; // 传感器名称
  11976. AV_float fNormalTempMin; // 正常温度最小值
  11977. AV_float fNormalTempMax; // 正常温度最大值
  11978. AV_CFG_EventHandler stuEventHandler; // 报警联动
  11979. UINT nReportInterval; //报警时间间隔。(单位:秒)
  11980. } AV_CFG_TemperatureAlarm;
  11981. ///@brief 风扇转速报警配置
  11982. typedef struct tagAV_CFG_FanSpeedAlarm
  11983. {
  11984. AV_int32 nStructSize;
  11985. AV_BOOL bEnable; // 报警使能
  11986. char szName[AV_CFG_Device_Name_Len]; // 传感器名称
  11987. AV_uint32 nNormalSpeedMin; // 正常转速最小值
  11988. AV_uint32 nNormalSpeedMax; // 正常转速最大值
  11989. AV_CFG_EventHandler stuEventHandler; // 报警联动
  11990. } AV_CFG_FanSpeedAlarm;
  11991. ///@brief 硬盘流量报警配置
  11992. typedef struct tagCFG_DISK_FLUX_INFO
  11993. {
  11994. BOOL bEnable; // 报警使能
  11995. unsigned int nNormalFluxMin; // 正常流量最小值, 单位KB
  11996. unsigned int nNormalFluxMax; // 正常流量最大值, 单位KB
  11997. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  11998. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  11999. } CFG_DISK_FLUX_INFO;
  12000. ///@brief 网络流量报警配置
  12001. typedef struct tagCFG_NET_FLUX_INFO
  12002. {
  12003. BOOL bEnable; // 报警使能
  12004. unsigned int nNormalFluxMin; // 正常流量最小值, 单位KB
  12005. unsigned int nNormalFluxMax; // 正常流量最大值, 单位KB
  12006. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12007. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  12008. } CFG_NET_FLUX_INFO;
  12009. ///@brief 服务器
  12010. typedef struct tagCFG_SERVER_INFO
  12011. {
  12012. int nPort; // 服务器端口号
  12013. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  12014. BOOL abEnable; // bEnable 是否有效
  12015. BOOL bEnable; // 主动注册使能
  12016. char szReserved[64]; // 预留字节
  12017. }CFG_SERVER_INFO;
  12018. ///@brief 主动注册配置
  12019. typedef struct tagCFG_REGISTER_SERVER_INFO
  12020. {
  12021. BOOL bEnable; // 主动注册使能
  12022. char szDeviceID[MAX_ADDRESS_LEN]; // 设备ID
  12023. int nServersNum; // 服务器个数
  12024. CFG_SERVER_INFO stuServers[MAX_SERVER_NUM]; // 服务器数组
  12025. }CFG_REGISTER_SERVER_INFO;
  12026. ///@brief 带宽不足时码流策略
  12027. typedef enum tagSTREAM_POLICY
  12028. {
  12029. STREAM_POLICY_UNKNOWN,
  12030. STREAM_POLICY_NONE = 1, // 无策略,不开启使能"None"
  12031. STREAM_POLICY_QUALITY, // 画质优先"Quality"
  12032. STREAM_POLICY_FLUENCY, // 流畅度优先"Fluency"
  12033. STREAM_POLICY_AUTOADAPT, // 自动"AutoAdapt"
  12034. }EM_STREAM_POLICY;
  12035. ///@brief 上传策略
  12036. typedef enum tagEM_CFG_SENDPOLICY
  12037. {
  12038. EM_SNEDPOLICY_UNKNOWN = -1,
  12039. EM_SENDPOLICY_TIMING, // 定时上报
  12040. EM_SENDPOLICY_EVENT, // 事件触发上报
  12041. }EM_CFG_SENDPOLICY;
  12042. ///@brief 车载专用主动注册配置
  12043. typedef struct tagCFG_REGISTERSERVER_VEHICLE
  12044. {
  12045. BOOL bEnable; // 主动注册使能
  12046. BOOL bRepeatEnable; // 是否发送相同坐标数据
  12047. char szDeviceID[MAX_ADDRESS_LEN]; // 子设备ID
  12048. int nSendInterval; // 发送间隔, 单位:秒
  12049. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  12050. int nPort; // 端口号
  12051. EM_CFG_SENDPOLICY emSendPolicy; // 上传策略
  12052. char szTestAddress[MAX_ADDRESS_LEN]; // 测试IP地址或网络名
  12053. int nTestPort; // 测试端口号
  12054. BYTE byReserved[1024]; // 保留字节
  12055. }CFG_REGISTERSERVER_VEHICLE;
  12056. ///@brief 网络协议配置
  12057. typedef struct tagCFG_DVRIP_INFO
  12058. {
  12059. int nTcpPort; // TCP服务端口,1025~65535
  12060. int nSSLPort; // SSL服务端口,1025~65535
  12061. int nUDPPort; // UDP服务端口,1025~65535
  12062. int nMaxConnections; // 最大连接数
  12063. BOOL bMCASTEnable; // 组播使能
  12064. int nMCASTPort; // 组播端口号
  12065. char szMCASTAddress[MAX_ADDRESS_LEN]; // 组播地址
  12066. int nRegistersNum; // 主动注册配置个数
  12067. CFG_REGISTER_SERVER_INFO stuRegisters[MAX_REGISTER_NUM];// 主动注册配置
  12068. EM_STREAM_POLICY emStreamPolicy; // 带宽不足时码流策略
  12069. CFG_REGISTERSERVER_VEHICLE stuRegisterServerVehicle; // 车载专用主动注册配置
  12070. }CFG_DVRIP_INFO;
  12071. ///@brief AIO IP 配置
  12072. typedef struct tagCFG_AIO_APP_CONFIG_INFO
  12073. {
  12074. char szAddress[MAX_IP_ADDR_LEN]; // 发布平台的的ip地址
  12075. }CFG_AIO_APP_CONFIG_INFO;
  12076. ///@brief 假期录像计划
  12077. typedef struct tagCFG_HOLIDAY_SCHEDULE
  12078. {
  12079. BOOL bEnable;
  12080. int nChannel;
  12081. DWORD dwMonthSchedule[MONTH_OF_YEAR]; // 每个月的假期安排, 每个元素表示一个月,
  12082. // 掩码从低到高依次表示每月1-28/29/30/31号是否为假期
  12083. // 0:不是假期, 1:是假期
  12084. CFG_TIME_SECTION stuTimeSection[MAX_REC_TSECT]; // 录像时间表
  12085. } CFG_HOLIDAY_SCHEDULE;
  12086. ///@brief 录像下载速度配置
  12087. typedef struct tagCFG_RecordDownloadSpeed
  12088. {
  12089. DWORD nStructSize; // 结构体大小
  12090. UINT nMaxDownloadSpeedNum; // 录像下载速度值大小,用户填写
  12091. UINT *pDownloadSpeedValue; // 录像下载速度值有效范围(内存由用户分配)建议指向内存值1024*sizeof(UINT) 单位KB/S
  12092. UINT nDownloadSpeedNum; // 返回的录像下载速度值个数(应该 <= nMaxDownloadSpeedNum)
  12093. } CFG_RecordDownloadSpeed;
  12094. ///@brief 录像回传配置
  12095. typedef struct tagAV_CFG_RecordBackup
  12096. {
  12097. AV_int32 nStructSize;
  12098. AV_uint32 nBitrateLimit; // 最大流量配置, 单位Kbps
  12099. AV_CFG_RemoteDevice *pstuDevices; // 备份设备数组, 用户分配内存,大小为sizeof(AV_CFG_RemoteDevice)*nMaxDeviceCount
  12100. int nMaxDeviceCount; // 备份设置数组大小, 用户填写
  12101. int nRetDeviceCount; // 返回的设备数量
  12102. } AV_CFG_RecordBackup;
  12103. ///@brief 事件信息
  12104. typedef struct tagALARM_EVENT_INFO
  12105. {
  12106. DWORD dwEventType; // 事件类型,详见dhnetsdk.h中"智能分析事件类型"
  12107. int nEventSize; // 该事件类型规则配置结构体大小
  12108. } ALARM_EVENT__INFO;
  12109. ///@brief 每个视频输入通道对应的所有事件:缓冲区pEventBuf填充多个事件信息,每个事件规则信息内容为ALARM_EVENT_INFO+"事件类型对应的规则配置结构体"。
  12110. typedef struct tagALARM_ANALYSEEVENTS_INFO
  12111. {
  12112. int nEventCount; // 事件个数
  12113. char* pEventBuf; // 每个视频输入通道对应的视频分析事件缓冲
  12114. int nEventBufLen; // 缓冲大小
  12115. } ALARM_ANALYSEEVENTS_INFO;
  12116. ///@brief 串口信息
  12117. typedef struct tagCFG_COMM_INFO
  12118. {
  12119. char szProtocolName[MAX_PROTOCOL_NAME_LEN]; // 串口协议
  12120. CFG_COMM_PROP stuAttribute; // 串口属性
  12121. int nAddress; // 设备地址
  12122. } CFG_COMM_INFO;
  12123. ///@brief 串口配置
  12124. typedef struct tagCFG_COMMGROUP_INFO
  12125. {
  12126. int nCommNum; // 串口数量
  12127. CFG_COMM_INFO stuComms[MAX_COMM_NUM]; // 串口数组
  12128. } CFG_COMMGROUP_INFO;
  12129. ///@brief 网络传输模式
  12130. typedef enum tagCFG_ENUM_NET_TRANSMISSION_MODE
  12131. {
  12132. CFG_ENUM_NET_MODE_ADAPT, // 自适应
  12133. CFG_ENUM_NET_MODE_HALF10M, // 10M半双工
  12134. CFG_ENUM_NET_MODE_FULL10M, // 10M全双工
  12135. CFG_ENUM_NET_MODE_HALF100M, // 100M半双工
  12136. CFG_ENUM_NET_MODE_FULL100M, // 100M全双工
  12137. }CFG_ENUM_NET_TRANSMISSION_MODE;
  12138. ///@brief 网口类型
  12139. typedef enum tagCFG_ENUM_NET_INTERFACE_TYPE
  12140. {
  12141. CFG_ENUM_NET_INTERFACE_TYPE_UNKNOWN, // 未知
  12142. CFG_ENUM_NET_INTERFACE_TYPE_STANDARD, // 标准网口
  12143. CFG_ENUM_NET_INTERFACE_TYPE_MANAGER, // 管理网口
  12144. CFG_ENUM_NET_INTERFACE_TYPE_EXTEND, // 扩展网口
  12145. }CFG_ENUM_NET_INTERFACE_TYPE;
  12146. ///@brief 三态布尔类型
  12147. typedef enum tagCFG_THREE_STATUS_BOOL
  12148. {
  12149. CFG_BOOL_STATUS_UNKNOWN = -1, //未知
  12150. CFG_BOOL_STATUS_FALSE = 0 ,
  12151. CFG_BOOL_STATUS_TRUE = 1 ,
  12152. }CFG_THREE_STATUS_BOOL;
  12153. ///@brief 网络传输模式
  12154. typedef enum tagCFG_ENUM_NET_BOND_MODE
  12155. {
  12156. CFG_ENUM_NET_BOND_MODE_UNKNOWN, // 未知
  12157. CFG_ENUM_NET_BOND_MODE_BALANCERR, // RoundRobin负载均衡(为二代负载均衡对应值)
  12158. CFG_ENUM_NET_BOND_MODE_BALANCEXOR, // XOR负载均衡
  12159. CFG_ENUM_NET_BOND_MODE_BALANCETLB, // 自适应传输负载均衡
  12160. CFG_ENUM_NET_BOND_MODE_BALANCEALB, // 网卡虚拟化负载均衡
  12161. CFG_ENUM_NET_BOND_MODE_ACTIVEBACKUP, // 主备模式(由于历史版本原因,设备以此值为容错模式,兼容性考虑,实现中作容错模式用)
  12162. CFG_ENUM_NET_BOND_MODE_BROADCAST, // 容错模式(为保持兼容性,此值无法使用)
  12163. CFG_ENUM_NET_BOND_MODE_802_3AD, // 动态链路聚合
  12164. CFG_ENUM_NET_BOND_MODE_BRIDGE, // 网桥((二层交换机,借用bond的格式)
  12165. }CFG_ENUM_NET_BOND_MODE;
  12166. ///@brief 802.3ad链路聚合控制方式
  12167. typedef enum tagCFG_ENUM_NET_BOND_LACP
  12168. {
  12169. CFG_ENUM_NET_BOND_LACP_UNKNOWN, // 未知
  12170. CFG_ENUM_NET_BOND_LACP_MAC, // 基于MAC地址
  12171. CFG_ENUM_NET_BOND_LACP_IPPORT, // 基于IP地址和端口
  12172. CFG_ENUM_NET_BOND_LACP_IPMAC, // 基于IP地址和MAC地址
  12173. CFG_ENUM_NET_BOND_LACP_IP, // 基于IP地址
  12174. CFG_ENUM_NET_BOND_LACP_PORT, // 基于端口
  12175. }CFG_ENUM_NET_BOND_LACP;
  12176. ///@brief 绑定虚拟网口
  12177. typedef struct tagCFG_NETWORK_BOND_INTERFACE
  12178. {
  12179. BOOL bBonding; // 是否绑定虚拟网口,只有网卡名是bondxx时,才允许有Bonding字段,其它网卡不能用
  12180. // true-绑定网卡生效,物理网口对外不可用
  12181. // false-解绑网卡(多址模式),使Members中的网卡可用
  12182. CFG_ENUM_NET_BOND_MODE emMode; // 网卡绑定模式
  12183. CFG_ENUM_NET_BOND_LACP emLacp; // 802.3ad链路聚合控制方式
  12184. int nMTU; // 网络最大传输单元
  12185. char szMembers[16][16]; // 物理网口成员
  12186. char szIP[MAX_ADDRESS_LEN]; // ip地址
  12187. char szName[MAX_NAME_LEN]; // 网络接口名称
  12188. char szAlias[MAX_NAME_LEN]; // 网络接口名称
  12189. char szDnsServers[MAX_DNS_SERVER_NUM][MAX_ADDRESS_LEN]; // DNS服务器地址
  12190. char szMacAddress[MAX_ADDRESS_LEN]; // mac地址
  12191. char szSubnetMask[MAX_ADDRESS_LEN]; // 子网掩码
  12192. char szDefGateway[MAX_ADDRESS_LEN]; // 默认网关
  12193. BOOL bDhcpEnable; // 是否开启DHCP
  12194. } CFG_NETWORK_BOND_INTERFACE;
  12195. ///@brief 网口配置
  12196. typedef struct tagCFG_NETWORK_INTERFACE
  12197. {
  12198. char szName[MAX_NAME_LEN]; // 网络接口名称
  12199. char szIP[MAX_ADDRESS_LEN]; // ip地址
  12200. char szSubnetMask[MAX_ADDRESS_LEN]; // 子网掩码
  12201. char szDefGateway[MAX_ADDRESS_LEN]; // 默认网关
  12202. BOOL bDhcpEnable; // 是否开启DHCP
  12203. BOOL bDnsAutoGet; // DNS获取方式,dhcp使能时可以设置为true,支持通过dhcp获取
  12204. char szDnsServers[MAX_DNS_SERVER_NUM][MAX_ADDRESS_LEN]; // DNS服务器地址
  12205. int nMTU; // 网络最大传输单元
  12206. char szMacAddress[MAX_ADDRESS_LEN]; // mac地址
  12207. BOOL bInterfaceEnable; // 网络接口使能开关,表示该网口配置是否生效。不生效时,IP地址不设置到网卡上。
  12208. BOOL bReservedIPEnable; // DHCP失败时是否使用保留IP,使用保留IP时还继续发DHCP请求
  12209. CFG_ENUM_NET_TRANSMISSION_MODE emNetTranmissionMode;// 网络传输模式,默认adapt自适应模式
  12210. CFG_ENUM_NET_INTERFACE_TYPE emInterfaceType; // 网口类型
  12211. CFG_THREE_STATUS_BOOL bBond; // 是否绑定虚拟网口
  12212. } CFG_NETWORK_INTERFACE ;
  12213. ///@brief 网桥
  12214. typedef struct tagCFG_NETWORK_BR_INTERFACE
  12215. {
  12216. char szName[MAX_NAME_LEN]; // 网络接口名称
  12217. BOOL bEnable; // 使能
  12218. int nMTU; // 网络最大传输单元
  12219. char szMembers[16][16]; // 物理网口成员
  12220. char szIP[MAX_ADDRESS_LEN]; // ip地址
  12221. char szSubnetMask[MAX_ADDRESS_LEN]; // 子网掩码
  12222. char szDefGateway[MAX_ADDRESS_LEN]; // 默认网关
  12223. char szDnsServers[MAX_DNS_SERVER_NUM][MAX_ADDRESS_LEN]; // DNS服务器地址
  12224. BOOL bDhcpEnable; // 是否开启DHCP
  12225. BOOL bReservedIPEnable; // DHCP失败时是否使用保留IP,使用保留IP时还继续发DHCP请求
  12226. BOOL bDnsAutoGet; // DNS获取方式,dhcp使能时可以设置为true,支持通过dhcp获取
  12227. } CFG_NETWORK_BR_INTERFACE;
  12228. ///@brief 网络接口配置
  12229. typedef struct tagCFG_NETWORK_INFO
  12230. {
  12231. char szHostName[MAX_NAME_LEN]; // 主机名称
  12232. char szDomain[MAX_NAME_LEN]; // 所属域
  12233. char szDefInterface[MAX_NAME_LEN]; // 默认使用的网卡
  12234. int nInterfaceNum; // 网卡数量
  12235. CFG_NETWORK_INTERFACE stuInterfaces[MAX_NETWORK_INTERFACE_NUM]; // 网卡列表
  12236. int nBondInterfaceNum; // 虚拟绑定网口数量
  12237. CFG_NETWORK_BOND_INTERFACE stuBondInterfaces[MAX_NETWORK_INTERFACE_NUM]; // 虚拟绑定网口列表
  12238. int nBrInterfaceNum; // 网桥数量
  12239. CFG_NETWORK_BR_INTERFACE stuBrInterfaces[MAX_NETWORK_INTERFACE_NUM]; // 网桥列表
  12240. } CFG_NETWORK_INFO;
  12241. ///@brief 云存储协议类型
  12242. typedef enum tagEM_CFG_NAS_CLOUDPROTOCOL_TYPE
  12243. {
  12244. EM_CFG_NAS_CLOUDPROTOCOL_TYPE_UNKNOWN, // 未知
  12245. EM_CFG_NAS_CLOUDPROTOCOL_TYPE_BAIDU_CLOUD, // "BaiduCloud"
  12246. EM_CFG_NAS_CLOUDPROTOCOL_TYPE_GOOGLE_DRIVE, // "GoogleDrive"
  12247. EM_CFG_NAS_CLOUDPROTOCOL_TYPE_DROPBOX, // "Dropbox"
  12248. }EM_CFG_NAS_CLOUDPROTOCOL_TYPE;
  12249. ///@brief 网络存储配置
  12250. typedef struct tagCFG_NAS_INFO_NEW
  12251. {
  12252. BOOL bEnable; // 使能
  12253. char szName[MAX_NAME_LEN]; // 名称
  12254. int nPortocol; // 协议类型, 0-FTP, 1-SMB, 2-ISCSI, 3-NFS, 4-Cloud ,协议类型是 4-Cloud时,具体云协议定义见 emCloudProtocol
  12255. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网址
  12256. int nPort; // 端口
  12257. char szUser[MAX_USERNAME_LEN]; // 用户名
  12258. char szPassword[MAX_PASSWORD_LEN]; // 密码
  12259. char szDirectory[MAX_NAME_LEN]; // 共享的目录名
  12260. int nCharEncoding; // 字符编码格式, 0-UTF8, 1-GB2312
  12261. int nTimeOut; // 超时时间, 单位毫秒
  12262. unsigned int nStreamID; // 数据流ID
  12263. CFG_NET_TIME_EX stuUpdateTime; // 更新时间, 该字段值变化后,需要重新初始化iSCSI功能
  12264. EM_CFG_NAS_CLOUDPROTOCOL_TYPE emCloudProtocol; // 云存储协议类型
  12265. char szSubDirectory[CFG_COMMON_STRING_256]; // 客户端设备在服务器上的存储子目录,可以是IP地址,设备序列号,设备机器号,为空使用设备机器号
  12266. } CFG_NAS_INFO_NEW;
  12267. ///@brief 网络存储服务器配置, 包含多个服务器
  12268. typedef struct tagCFG_NAS_GROUP_INFO
  12269. {
  12270. int nNasNum; // 存储服务器数量
  12271. CFG_NAS_INFO_NEW stuNasInfo[MAX_NAS_NUM]; // 存储服务器数组
  12272. } CFG_NAS_GROUP_INFO;
  12273. ///@brief 网络存储服务器配置
  12274. typedef struct tagCFG_NAS_INFO_EX
  12275. {
  12276. int nVersion; // 0, 1, 由能力集确定, 只读
  12277. CFG_NAS_INFO stuNasOld; // nVersion == 0时有效, 仅支持单服务器
  12278. CFG_NAS_GROUP_INFO stuNasGroup; // nVersion == 1时有效, 支持多个服务器
  12279. } CFG_NAS_INFO_EX;
  12280. ///@brief 输入信号类型
  12281. typedef enum _EM_CFG_VIDEO_SIGNAL_TYPE
  12282. {
  12283. EM_CFG_VIDEO_SIGNAL_UNKNOWN,
  12284. EM_CFG_VIDEO_SIGNAL_CVBS,
  12285. EM_CFG_VIDEO_SIGNAL_SDI,
  12286. EM_CFG_VIDEO_SIGNAL_VGA,
  12287. EM_CFG_VIDEO_SIGNAL_DVI,
  12288. EM_CFG_VIDEO_SIGNAL_HDMI,
  12289. EM_CFG_VIDEO_SIGNAL_YPBPR,
  12290. EM_CFG_VIDEO_SIGNAL_SFP,
  12291. EM_CFG_VIDEO_SIGNAL_HDCVI,
  12292. EM_CFG_VIDEO_SIGNAL_DUALLINK,
  12293. EM_CFG_VIDEO_SIGNAL_AHD,
  12294. EM_CFG_VIDEO_SIGNAL_AUTO,
  12295. EM_CFG_VIDEO_SIGNAL_TVI,
  12296. } EM_CFG_VIDEO_SIGNAL_TYPE;
  12297. ///@brief 通道接入线缆的类型
  12298. typedef enum EM_CFG_VIDEO_LINE_TYPE
  12299. {
  12300. EM_CFG_VIDEO_LINE_TYPE_UNKNOWN,
  12301. EM_CFG_VIDEO_LINE_TYPE_COAXIAL, //同轴线
  12302. EM_CFG_VIDEO_LINE_TYPE_TP10, //10欧姆阻抗双绞线
  12303. EM_CFG_VIDEO_LINE_TYPE_TP17, //17欧姆阻抗双绞线
  12304. EM_CFG_VIDEO_LINE_TYPE_TP25, //25欧姆阻抗双绞线
  12305. EM_CFG_VIDEO_LINE_TYPE_TP35, //35欧姆阻抗双绞线
  12306. }EM_CFG_VIDEO_LINE_TYPE;
  12307. ///@brief 输入通道基本配置
  12308. typedef struct tagCFG_VIDEO_IN_INFO
  12309. {
  12310. char szDevType[MAX_NAME_LEN]; // 通道类型(指通道连接的设备类型)
  12311. char szDevID[MAX_NAME_LEN]; // 摄像头唯一编号
  12312. char szChnName[MAX_NAME_LEN]; // 通道名称
  12313. char szManufacturer[MAX_NAME_LEN];
  12314. char szModel[MAX_NAME_LEN]; // 设备型号
  12315. char szAddress[MAX_ADDRESS_LEN]; // 安装地址
  12316. char szCivilCode[MAX_NAME_LEN]; // 行政区域
  12317. char szOwner[MAX_NAME_LEN]; // 设备归属
  12318. BOOL bParental; // 是否有子设备
  12319. BOOL bEnable; // 通道使能
  12320. int nRegisterWay; // 注册方式
  12321. // 0-符合sip3261标准的认证注册模式
  12322. // 1-基于口令的双向认证注册模式
  12323. // 2-基于数字证书的双向认证注册模式
  12324. BOOL bSecrecy;
  12325. char szUpperDevID[MAX_NAME_LEN]; // 上级连接设备设备ID
  12326. int nUpperDevOutChn; // 上级连接设备输出通道号
  12327. char szRemoteName[MAX_NAME_LEN]; // 远程通道名称
  12328. EM_CFG_VIDEO_SIGNAL_TYPE emSignalType; // 输入信号类型
  12329. EM_CFG_VIDEO_LINE_TYPE emLineType; // 通道接入线缆的类型
  12330. } CFG_VIDEO_IN_INFO;
  12331. ///@brief 刻录光盘编码计划(对应命令 CFG_CMD_ENCODEPLAN),每个通道(包括画中画通道)一个配置结构体
  12332. typedef struct tagCFG_ENCODE_PLAN_INFO
  12333. {
  12334. BOOL bEnable; // 通道是否需要配置,FALSE:没有此通道,TRUE:此通道可用
  12335. unsigned int nExpectTime; // 业务预期时长 整型,单位:分钟
  12336. CFG_CAPTURE_SIZE emResolution; // 视频分辨率
  12337. unsigned int nBitRate; // 视频固定码流值(kbps)
  12338. }CFG_ENCODE_PLAN_INFO;
  12339. ///@brief ////////////////////////////////////////////////////////////////////////
  12340. ///@brief 审讯画中画需求
  12341. ///@brief 小画面窗口信息
  12342. typedef struct tagCFG_SMALLPIC_INFO
  12343. {
  12344. char szDeviceID[AV_CFG_Device_ID_Len];// 设备ID
  12345. int nChannelID; // 通道号(0开始)
  12346. BOOL bAudio; // 大画面是否混合小画面音频
  12347. CFG_RECT stuPosition; // 使用相对坐标体系,取值均为0-8192,在整个屏幕上的位置
  12348. }CFG_SMALLPIC_INFO;
  12349. ///@brief 分割通道
  12350. typedef struct tagCFG_SPLIT_CHANNEL_INFO
  12351. {
  12352. BOOL bEnable; // 使能
  12353. char szDeviceID[AV_CFG_Device_ID_Len];// 设备ID
  12354. int nChannelID; // 通道号(0开始)
  12355. unsigned int nMaxSmallChannels; // 小画面通道个数,每个通道一个CFG_SMALLPIC_INFO,这里最大应该是设备通道数减一
  12356. unsigned int nReturnSmallChannels; // 解析返回的或封装发送的小画面通道个数
  12357. CFG_SMALLPIC_INFO *pPicInfo; // 小画面信息
  12358. }CFG_SPLIT_CHANNEL_INFO;
  12359. ///@brief 分割方案
  12360. typedef struct tagCFG_SPLIT_INFO
  12361. {
  12362. CFG_SPLITMODE emSplitMode; // 分割模式,通过CLIENT_GetSplitCaps接口获取,见emSplitMode
  12363. unsigned int nMaxChannels; // 申请内存CFG_SPLIT_CHANNEL_INFO个数,比如有16个通道,nMaxChannels就是16,SPLITMODE_4模式,则按顺序依次分为4组
  12364. unsigned int nReturnChannels; // 解析返回通道个数,要封装发送的通道个数
  12365. CFG_SPLIT_CHANNEL_INFO* pSplitChannels; // 分割通道信息
  12366. }CFG_SPLIT_INFO;
  12367. ///@brief 画中画方案
  12368. typedef struct tagCFG_PICINPIC_INFO
  12369. {
  12370. unsigned int nMaxSplit; // 内存申请的CFG_SPLIT_INFO个数,最大值通过CLIENT_GetSplitCaps接口获取,见nModeCount
  12371. unsigned int nReturnSplit; // 解析得到实际使用的或封装发送的CFG_SPLIT_INFO个数
  12372. CFG_SPLIT_INFO *pSplits; // 分割方案
  12373. }CFG_PICINPIC_INFO;
  12374. ///@brief 模拟矩阵外部输入源
  12375. typedef struct tagCFG_ANALOG_MATRIX_INPUT_CHN_SRC
  12376. {
  12377. char szName[MAX_NAME_LEN]; // 输入通道名称
  12378. char szControlID[MAX_NAME_LEN]; // 控制编号
  12379. BOOL bActive; // 是否激活启动
  12380. int nFormat; // 类型, 0-VGA
  12381. } CFG_ANALOG_MATRIX_INPUT_CHN_SRC;
  12382. ///@brief 串口
  12383. typedef struct tagCFG_COM_PORT
  12384. {
  12385. int nPortIndex; // 串口索引号
  12386. int nAddress; // 设备地址
  12387. CFG_COMM_PROP stComProp; // 串口属性
  12388. } CFG_COM_PORT;
  12389. ///@brief 模拟矩阵
  12390. typedef struct tagCFG_ANALOG_MATRIX_INFO
  12391. {
  12392. char szDevID[MAX_NAME_LEN]; // 设备ID
  12393. char szName[MAX_NAME_LEN]; // 设备名称
  12394. char szModel[MAX_MODEL_LEN]; // 型号
  12395. char szUserName[MAX_USERNAME_LEN]; // 用户名
  12396. char szPassword[MAX_PASSWORD_LEN]; // 密码
  12397. int nChnInCount; // 输入通道数量
  12398. int nChnOutCount; // 输出通道数量
  12399. CFG_ANALOG_MATRIX_INPUT_CHN_SRC* pstuChnInSrc; // 外部输入源数组, 用户分配内存
  12400. int nChnInSrcCount; // 外部输入源数组大小
  12401. int nRetChnInSrcCount; // 实际返回的外部输入源数量, 一般同nChnInCount
  12402. CFG_COM_PORT stComPort; // 关联串口
  12403. char szProtocol[MAX_NAME_LEN]; // 协议名称
  12404. } CFG_ANALOG_MATRIX_INFO;
  12405. ///@brief 模拟矩阵协议配置
  12406. typedef struct tagCFG_ANALOG_MATRIX_PROTOCOL
  12407. {
  12408. char szName[MAX_NAME_LEN]; // 协议名称
  12409. char szProtocolRule[MAX_NAME_LEN]; // 协议内容, 规则:%A-地址码,%I-输入端口号,%O-输出端口号
  12410. } CFG_ANALOG_MATRIX_PROTOCOL;
  12411. ///@brief 视频输出标题
  12412. typedef struct tagCFG_VIDEO_OUT_TITLE
  12413. {
  12414. char szName[MAX_NAME_LEN]; // 通道名称
  12415. } CFG_VIDEO_OUT_TITLE;
  12416. ///@brief 显示源
  12417. typedef struct tagCFG_DISPLAY_SOURCE
  12418. {
  12419. BOOL bEnable; // 是否使能
  12420. char szDeviceID[MAX_NAME_LEN]; // 设备ID
  12421. char szControlID[MAX_NAME_LEN]; // 控制ID
  12422. int nVideoChannel; // 视频通道号
  12423. int nVideoStream; // 视频码流, -1-自动, 0-主码流, 1-辅码流1, 2-辅码流2, 3-辅码流3, 5-预览码流
  12424. int nAudioChannel; // 音频通道号
  12425. int nAudioStream; // 音频码流, -1-自动, 0-主码流, 1-辅码流1, 2-辅码流2, 3-辅码流3, 5-预览码流
  12426. BOOL abDeviceInfo; // 设备信息是否有效
  12427. AV_CFG_RemoteDevice stuDeviceInfo; // 设备信息
  12428. } CFG_DISPLAY_SOURCE;
  12429. ///@brief 窗口位置
  12430. typedef struct tagCFG_SPLIT_WINDOW_POSITION
  12431. {
  12432. CFG_RECT stuRect; // 窗口区域
  12433. BOOL bDirectable; // 是否满足直通条件, 直通是指拼接屏方式下,此窗口区域正好为物理屏区域
  12434. int nZorder; // Z次序
  12435. } CFG_SPLIT_WINDOW_POSITION;
  12436. ///@brief 拼接屏窗口信息
  12437. typedef struct tagCFG_SPLIT_WINDOW
  12438. {
  12439. BOOL bEnable; // 窗口是否有视频源, 为FALSE时表示没有视频,也不用处理Source内容
  12440. int nWindowID; // 窗口ID
  12441. char szControlID[MAX_NAME_LEN]; // 控制ID
  12442. CFG_SPLIT_WINDOW_POSITION stuPosition; // 窗口位置
  12443. CFG_DISPLAY_SOURCE stuSource; // 视频源
  12444. } CFG_SPLIT_WINDOW;
  12445. ///@brief 拼接屏场景
  12446. typedef struct tagCFG_BLOCK_COLLECTION
  12447. {
  12448. char szBlockID[MAX_NAME_LEN]; // 拼接屏ID
  12449. char szControlID[MAX_NAME_LEN]; // 控制ID
  12450. CFG_SPLITMODE emSplitMode; // 分割模式
  12451. CFG_SPLIT_WINDOW* pstuWnds; // 窗口信息数组, 用户分配内存,大小为sizeof(CFG_SPLIT_WINDOW)*nMaxWndCount
  12452. int nMaxWndCount; // 窗口信息数组大小, 用户填写
  12453. int nRetWndCount; // 返回的窗口数量
  12454. } CFG_BLOCK_COLLECTION;
  12455. ///@brief 预案类型
  12456. typedef enum tagEM_COLLECTION_TYPE
  12457. {
  12458. EM_COLLECTION_UNKNOWN, // 未知
  12459. EM_COLLECTION_VIDEO, // 视频预案
  12460. EM_COLLECTION_ADDITION, // 附加预案
  12461. }EM_COLLECTION_TYPE;
  12462. ///@brief 电视墙中的某个预案配置
  12463. typedef struct tagCFG_MONITORWALL_COLLECTION_SINGLE
  12464. {
  12465. char szName[MAX_NAME_LEN]; // 名称
  12466. char szControlID[MAX_NAME_LEN]; // 控制ID
  12467. AV_CFG_MonitorWall stuMonitorWall; // 电视墙配置
  12468. CFG_BLOCK_COLLECTION* pstuBlockCollections; // 拼接屏场景信息数组, 用户分配内存,大小为sizeof(CFG_BLOCK_COLLECTION)*nMaxBlockCollectionCount
  12469. int nMaxBlockCollectionCount; // 拼接屏场景数组大小, 用户填写
  12470. int nRetBlockCollectionCount; // 返回的拼接屏场景数量
  12471. EM_COLLECTION_TYPE emType; // 预案类型
  12472. } CFG_MONITORWALL_COLLECTION_SINGLE;
  12473. ///@brief 电视墙预案列表, 表示某个电视墙对应的多个预案
  12474. typedef struct tagCFG_MONITORWALL_COLLECTION_LIST
  12475. {
  12476. CFG_MONITORWALL_COLLECTION_SINGLE* pstuCollections; // 预案数组, 用户分配内存,大小为sizeof(CFG_MONITORWALL_COLLECTION_SINGLE)*nMaxCollectionCount
  12477. int nMaxCollectionCount; // 预案数组大小, 用户填写
  12478. int nRetCollectionCount; // 返回的预案数量
  12479. } CFG_MONITORWALL_COLLECTION;
  12480. ///@brief 视频输入边界配置
  12481. typedef struct tagCFG_VIDEO_IN_BOUNDARY
  12482. {
  12483. CFG_RECT stuBoundary; // 边界
  12484. } CFG_VIDEO_IN_BOUNDARY;
  12485. ///@brief 和相机对接的区域屏配置,是数组,元素最大值是DH_PRODUCTION_DEFNITION.nMaxParkingSpaceScreen)
  12486. typedef struct tagCFG_PARKINGSPACE_SCREEN_INFO
  12487. {
  12488. char szAddress[MAX_PATH]; // 区域屏地址或域名
  12489. int nPort; // 区域屏端口
  12490. char szAuthorization[MAX_PATH]; // 权限字
  12491. char szDeviceNo[MAX_PATH]; // 设备序号
  12492. BOOL bEnable; // 屏配置是否启用
  12493. } CFG_PARKINGSPACE_SCREEN_INFO;
  12494. ///@brief 车位设置(专有车位和普通车位设置),是数组,元素最大值是DH_PRODUCTION_DEFNITION.nMaxRoadWays)
  12495. typedef struct tagCFG_PARKINGSPACE_STATUS_INFO
  12496. {
  12497. int nLaneID; // 车位号
  12498. int nLaneType; // 0:普通车位 1:专有车位
  12499. } CFG_PARKINGSPACE_STATUS_INFO;
  12500. #define CFG_MAX_BINARY_NUM 128 // 自定义数据最大个数
  12501. ///@brief 平台自定义信息
  12502. typedef struct tagCFG_CLIENT_CUSTOM_INFO
  12503. {
  12504. char szDescription[MAX_PATH]; // 描述信息,不同平台自定义描述信息,目前支持"LiFang"
  12505. char* pData; // 自定义数据缓冲, 数据中间不能存在二进制的0, 也就是字符'\0'
  12506. int nDataLen; // 用户申请的长度, 不同平台自己确定
  12507. bool abBinary; // false表示pData和nDataLen有效, 而nBinaryNum和dwBinary无效
  12508. // true表示pData和nDataLen无效, 而nBinaryNum和dwBinary有效
  12509. BYTE byReserved[3];
  12510. int nBinaryNum; // dwBinary数组有效成员个数
  12511. DWORD dwBinary[CFG_MAX_BINARY_NUM]; // 自定义数据
  12512. } CFG_CLIENT_CUSTOM_INFO;
  12513. ///@brief 刻录格式配置,兼容性考虑:无此配置时默认DHAV格式
  12514. typedef struct tagCFG_BURN_RECORD_FORMAT
  12515. {
  12516. char szRecordPack[MAX_PATH]; // 码流打包模式:目前支持"DHAV","PS"
  12517. }CFG_BURN_RECORD_FORMAT;
  12518. ///@brief 多光盘同步刻录(对应 CFG_MULTIBURN_INFO) 是一个数组,每一个元素表示一组多光盘同步刻录及校验
  12519. typedef struct tagCFG_MULTIBURN_INFO
  12520. {
  12521. BOOL bEnable; // 此配置使能开关
  12522. BOOL bDataCheck; // 多光盘一致性校验使能
  12523. char szDataCheckSpeed[MAX_PATH]; // 校验速度 "High":高速(头尾数据校验),"Normal":正常(随机数据校验),"Low":低速 (全盘数据校验)
  12524. }CFG_MULTIBURN_INFO;
  12525. ///@brief 单个网络存储服务器限制配置
  12526. typedef struct tagCFG_REMOTE_STORAGE_LIMIT
  12527. {
  12528. char szName[MAX_NAME_LEN]; // 名称
  12529. int nFileLen; // 文件长度 单位,MB
  12530. int nInterval; // 相邻文件时间间隔 单位,秒
  12531. CFG_CHANNEL_TIME_SECTION *pstuChnTime; // 存储时间段数组,用户分配内存,大小为sizeof(CFG_CHANNEL_TIME_SECTION)*nMaxChnCount
  12532. int nMaxChnCount; // 最大通道数,用户填写
  12533. int nRetChnCount; // 返回的通道数,保存设置时的有效通道数
  12534. }CFG_REMOTE_STORAGE_LIMIT;
  12535. ///@brief 网络存储服务器限制配置
  12536. typedef struct tagCFG_REMOTE_STORAGELIMIT_GROUP
  12537. {
  12538. CFG_REMOTE_STORAGE_LIMIT stuRemoteStorageLimit[MAX_NAS_NUM]; // 网络存储服务器配置数组
  12539. int nLimitCount; // 有效的网络服务器数
  12540. }CFG_REMOTE_STORAGELIMIT_GROUP;
  12541. ///@brief 获取刻录管理能力集
  12542. typedef struct tagCFG_CAP_BURN_MANAGER
  12543. {
  12544. BOOL bSupportMultiBurn; // 是否支持多光盘同步刻录
  12545. int nMultiBurnGroups; // 支持几组同步刻录
  12546. }CFG_CAP_BURN_MANAGER;
  12547. ///@brief 录像能力信息
  12548. typedef struct tagCFG_CAP_RECORD_INFO
  12549. {
  12550. BOOL bSupportHoliday; //录像计划是否支持假日功能
  12551. BOOL bSupportExtraRecordMode; //是否支持设置辅码流录像模式
  12552. DWORD dwMaxPreRecordTime; //最大预录时间
  12553. DWORD dwMaxRemoteBitrate; //最大接入总码流,单位kbps
  12554. DWORD dwMaxRemoteRawBitrate; //最大接入祼码流(包括路数、分辨率、帧率,色深按16bpp计算)
  12555. DWORD dwMaxStreams; //最大录像码流个数
  12556. BOOL bSupportRecordConfig; //是否支持通过Record配置修改录像计划
  12557. } CFG_CAP_RECORD_INFO;
  12558. ///@brief 编码加密
  12559. typedef enum tagCFG_ENCRYPT_ALGO_TYPE
  12560. {
  12561. ALGO_TYPE_AES ,
  12562. ALGO_TYPE_UNKNOW ,
  12563. }CFG_ENCRYPT_ALGO_TYPE;
  12564. ///@brief 码流加密算法工作模式
  12565. typedef enum tagCFG_ENCRYPT_ALGO_WORKMODE
  12566. {
  12567. ENCRYPT_ALGO_WORKMODE_ECB, // ECB模式
  12568. ENCRYPT_ALGO_WORKMODE_CBC, // CBC模式
  12569. ENCRYPT_ALGO_WORKMODE_CFB, // CFB模式
  12570. ENCRYPT_ALGO_WORKMODE_OFB, // OFB模式
  12571. ENCRYPT_ALGO_WORKMODE_UNKNOW ,
  12572. }CFG_ENCRYPT_ALGO_WORKMODE;
  12573. ///@brief 通道的密钥信息
  12574. typedef union tagCFG_ENCRYPT_KEY_INFO
  12575. {
  12576. BYTE byAesKey[AES_KEY_LEN]; // aes密钥
  12577. }CFG_ENCRYPT_KEY_INFO;
  12578. ///@brief 码流加密配置信息
  12579. typedef struct tagCFG_STREAM_ENCRYPT_INFO
  12580. {
  12581. BOOL bEncryptEnable; // 是否加密
  12582. CFG_ENCRYPT_ALGO_TYPE emEncrptAlgoType; // 加密算法类型: 参见枚举类型CFG_ENCRYPT_ALGO_TYPE
  12583. CFG_ENCRYPT_ALGO_WORKMODE emAlgoWorkMode; // 工作模式,参考枚举类型 CFG_ENCRYPT_ALGO_WORKMODE
  12584. WORD wEncryptLenth; // 密钥长度,当前为AES算法类型时,表示密钥位数(目前支持128,192,256位三种, 如: wEncryptLenth为128,则密钥信息ENCRYPT_KEY_INFO里的byAesKey[0]~[15])
  12585. CFG_ENCRYPT_KEY_INFO stuEncryptKeys; // 通道的密钥信息
  12586. CFG_NET_TIME stuPreTime; // 加密计划的开始时间
  12587. }CFG_STREAM_ENCRYPT_INFO;
  12588. ///@brief 码流加密配置通道信息
  12589. typedef struct tagCFG_ENCODE_ENCRYPT_CHN_INFO
  12590. {
  12591. int nChannelID; // 通道号(0开始)
  12592. CFG_STREAM_ENCRYPT_INFO *pstEncodeEncryptInfo; // 每个通道的配置列表,用户需配置
  12593. // 申请内存大小为sizeof(CFG_STREAM_ENCRYPT_INFO)*nMaxEncryptInputs
  12594. BYTE nMaxEncryptInputs;
  12595. BYTE nRetEncryptOutputs; // 解析出CFG_STREAM_ENCRYPT的个数
  12596. }CFG_ENCODE_ENCRYPT_CHN_INFO;
  12597. ///@brief 编码自适应策略类型
  12598. typedef enum tagCFG_ENCRYPT_POLICY_TYPE
  12599. {
  12600. ENCRYPT_POLICY_UNKNOWN , //未知
  12601. ENCRYPT_POLICY_NONE , //无策略,不开启自适应功能
  12602. ENCRYPT_POLICY_QUALITY , //画质优先,优先保证分辨率,降低帧率
  12603. ENCRYPT_POLICY_FLUENCY , //流畅优先,优先保证流畅性,降低分辨率
  12604. }CFG_ENCRYPT_POLICY_TYPE;
  12605. ///@brief 编码流畅优先策略
  12606. typedef enum tagCFG_ENCRYPT_FLUENCY_MODE
  12607. {
  12608. ENCRYPT_FLUENCY_UNKNOWN , //未知
  12609. ENCRYPT_FLUENCY_FAST , //快恢复(网速变好时,立即恢复)
  12610. ENCRYPT_FLUENCY_SLOW , //慢恢复(同一时间只能有一个通道恢复)
  12611. ENCRYPT_FLUENCY_SYNC , //同步恢复(如果有通道下降,则其它通道不恢复)
  12612. ENCRYPT_FLUENCY_SLOWSYNC , //慢同步恢复(结合慢恢复和同步恢复)
  12613. }CFG_ENCRYPT_FLUENCY_MODE;
  12614. ///@brief 编码自适应配置
  12615. typedef struct tagCFG_ENCODE_ADAPT_INFO
  12616. {
  12617. CFG_ENCRYPT_POLICY_TYPE emPolicyType; //自适应策略类型
  12618. CFG_ENCRYPT_FLUENCY_MODE emFluencyMode; //流畅优先策略
  12619. }CFG_ENCODE_ADAPT_INFO;
  12620. ///@brief 变倍设置基本信息单元
  12621. typedef struct tagCFG_VIDEO_IN_ZOOM_UNIT
  12622. {
  12623. int nSpeed; //变倍速率(0~7)
  12624. BOOL bDigitalZoom; //是否数字变倍
  12625. int nZoomLimit; //当前速率下最大变倍上限(0~13)。
  12626. EM_LIGHT_SCENE emLightScene; //光照场景名称
  12627. } CFG_VIDEO_IN_ZOOM_UNIT;
  12628. ///@brief 单通道变倍设置基本信息
  12629. typedef struct tagCFG_VIDEO_IN_ZOOM
  12630. {
  12631. int nChannelIndex; //通道号
  12632. int nVideoInZoomRealNum; //配置使用个数
  12633. CFG_VIDEO_IN_ZOOM_UNIT stVideoInZoomUnit[MAX_VIDEO_IN_ZOOM]; //通道变速配置单元信息
  12634. } CFG_VIDEO_IN_ZOOM;
  12635. ///@brief 抓图配置
  12636. typedef struct tagCFG_SNAP_INFO
  12637. {
  12638. CFG_TIME_SCHEDULE stuTimeSchedule; // 时间表, 每个时间段掩码按位定义如下:
  12639. // Bit0-定时抓图
  12640. // Bit1-动态检测抓图
  12641. // Bit2-报警抓图
  12642. // Bit3-卡号抓图
  12643. // Bit4~Bit31-保留
  12644. } CFG_SNAP_INFO;
  12645. ///@brief 云台转动角度范围,单位:度
  12646. typedef struct tagCFG_PTZ_MOTION_RANGE
  12647. {
  12648. int nHorizontalAngleMin; // 水平角度范围最小值,单位:度
  12649. int nHorizontalAngleMax; // 水平角度范围最大值,单位:度
  12650. int nVerticalAngleMin; // 垂直角度范围最小值,单位:度
  12651. int nVerticalAngleMax; // 垂直角度范围最大值,单位:度
  12652. }CFG_PTZ_MOTION_RANGE;
  12653. ///@brief 支持的焦距模式对应枚举
  12654. typedef enum tagSUPPORT_FOCUS_MODE
  12655. {
  12656. ENUM_SUPPORT_FOCUS_CAR = 1, // 看清车模式
  12657. ENUM_SUPPORT_FOCUS_PLATE = 2, // 看清车牌模式
  12658. ENUM_SUPPORT_FOCUS_PEOPLE = 3, // 看清人模式
  12659. ENUM_SUPPORT_FOCUS_FACE = 4, // 看清目标模式
  12660. }EM_SUPPORT_FOCUS_MODE;
  12661. ///@brief 云台转动角度范围,单位:度
  12662. typedef struct tagCFG_PTZ_LIGHTING_CONTROL
  12663. {
  12664. char szMode[CFG_COMMON_STRING_32]; // 手动灯光控制模式
  12665. // on-off":直接开关模式,
  12666. // "adjustLight":手动调节亮度模式
  12667. DWORD dwNearLightNumber; // 近光灯组数量
  12668. DWORD dwFarLightNumber; // 远光灯组数量
  12669. }CFG_PTZ_LIGHTING_CONTROL;
  12670. ///@brief 云台-区域扫描能力集
  12671. typedef struct tagCFG_PTZ_AREA_SCAN
  12672. {
  12673. BOOL bIsSupportAutoAreaScan; // 是否支持区域扫描
  12674. WORD wScanNum; // 区域扫描的个数
  12675. }CFG_PTZ_AREA_SCAN;
  12676. ///@brief 遮挡块形状类型
  12677. typedef enum tagNET_EM_MASK_TYPE
  12678. {
  12679. NET_EM_MASK_UNKNOWN, // 未知
  12680. NET_EM_MASK_RECT, // 矩形
  12681. NET_EM_MASK_POLYGON, // 多边形
  12682. } NET_EM_MASK_TYPE;
  12683. ///@brief 马赛克类型
  12684. typedef enum tagNET_EM_MOSAIC_TYPE
  12685. {
  12686. NET_EM_MOSAIC_UNKNOWN = 0, // 未知
  12687. NET_EM_MOSAIC_8 = 8, // [8x8大小] 马赛克
  12688. NET_EM_MOSAIC_16 = 16, // [16x16大小] 马赛克
  12689. NET_EM_MOSAIC_24 = 24, // [24x24大小] 马赛克
  12690. NET_EM_MOSAIC_32 = 32, // [32x32大小] 马赛克
  12691. } NET_EM_MOSAIC_TYPE;
  12692. #define MAX_MASKTYPE_COUNT 8
  12693. #define MAX_MOSAICTYPE_COUNT 8
  12694. ///@brief 隐私遮挡能力集
  12695. typedef struct tagCFG_PTZ_PRIVACY_MASKING
  12696. {
  12697. BOOL bPrivacyMasking; // 是否支持隐私遮挡设置
  12698. BOOL bSetColorSupport; // 是否支持遮挡块颜色设置
  12699. BOOL abMaskType; // emMaskType是否有效
  12700. int nMaskTypeCount; // 实际支持的遮挡块形状个数
  12701. NET_EM_MASK_TYPE emMaskType[MAX_MASKTYPE_COUNT]; // 支持的遮挡块形状,没有该项配置时默认支持矩形
  12702. BOOL bSetMosaicSupport; // 是否支持马赛克遮挡块设置
  12703. BOOL bSetColorIndependent; // 是否支持遮挡块颜色相互独立(bSetColorSupport为true时该能力有效)
  12704. BOOL abMosaicType; // emMosaicType是否有效
  12705. int nMosaicTypeCount; // 实际支持的马赛克类型个数
  12706. NET_EM_MOSAIC_TYPE emMosaicType[MAX_MOSAICTYPE_COUNT]; // 支持的马赛克类型(SetMosaicSupport为true时该能力有效,没有该项配置时默认支持24x24大小马赛克)
  12707. } CFG_PTZ_PRIVACY_MASKING;
  12708. ///@brief 图像测距能力
  12709. typedef struct tagCFG_PTZ_MEASURE_DISTANCE
  12710. {
  12711. BOOL bSupport; // 是否支持图像测距
  12712. BOOL bOsdEnable; // 是否将图像测距结果数据叠加至码流
  12713. int nDisplayMin; // 图像测距信息的最小显示时长, 单位秒
  12714. int nDisplayMax; // 图像测距信息的最大显示时长, 单位秒
  12715. } CFG_PTZ_MEASURE_DISTANCE;
  12716. ///@brief 支持的云台动作类型
  12717. typedef struct tagCFG_PTZ_ACTION_CAPS
  12718. {
  12719. BOOL bSupportPan; // 是否支持水平移动
  12720. BOOL bSupportTile; // 是否支持垂直移动
  12721. BOOL bSupportZoom; // 是否支持变倍
  12722. BYTE byReserved[116]; // 预留
  12723. }CFG_PTZ_ACTION_CAPS;
  12724. ///@brief 支持的云台精确定位方式类型
  12725. typedef struct tagCFG_PTZ_ABSOLUTELY_CAPS
  12726. {
  12727. BOOL bSupportNormal; // 是否支持归一化定位
  12728. BOOL bSupportReal; // 是否支持实际参数值定位
  12729. BYTE byReserved[120]; // 预留
  12730. }CFG_PTZ_ABSOLUTELY_CAPS;
  12731. ///@brief 绝对控制云台能力
  12732. typedef struct tagCFG_PTZ_MOVE_ABSOLUTELY_CAP
  12733. {
  12734. CFG_PTZ_ACTION_CAPS stuPTZ; // 支持的云台动作类型
  12735. CFG_PTZ_ABSOLUTELY_CAPS stuType; // 支持的云台精确定位方式类型
  12736. BYTE byReserved[768]; // 预留
  12737. }CFG_PTZ_MOVE_ABSOLUTELY_CAP;
  12738. ///@brief 连续移动方式类型
  12739. typedef struct tagCFG_PTZ_CONTINUOUSLY_TYPE
  12740. {
  12741. BOOL bSupportNormal; // 是否支持归一化值定位
  12742. BOOL bSupportExtra; // 是否支持非归一化值定位
  12743. BYTE byReserved[120]; // 预留
  12744. }CFG_PTZ_CONTINUOUSLY_TYPE;
  12745. ///@brief 云台连续运动能力
  12746. typedef struct tagCFG_PTZ_MOVE_CONTINUOUSLY_CAPS
  12747. {
  12748. CFG_PTZ_ACTION_CAPS stuPTZ; // 支持的PTZ动作
  12749. CFG_PTZ_CONTINUOUSLY_TYPE stuType; // 连续移动方式类型
  12750. BYTE byReserved[1024]; // 预留
  12751. }CFG_PTZ_MOVE_CONTINUOUSLY_CAPS;
  12752. ///@brief 云台不支持的转动方向
  12753. typedef enum tagEM_PTZ_UNSUPPORT_DIRECTION
  12754. {
  12755. EM_PTZ_UNSUPPORT_DIRECTION_UNKNOWN, // 未知
  12756. EM_PTZ_UNSUPPORT_DIRECTION_UP, // 上
  12757. EM_PTZ_UNSUPPORT_DIRECTION_DOWN, // 下
  12758. EM_PTZ_UNSUPPORT_DIRECTION_LEFT, // 左
  12759. EM_PTZ_UNSUPPORT_DIRECTION_RIGHT, // 右
  12760. EM_PTZ_UNSUPPORT_DIRECTION_LEFTUP, // 左上
  12761. EM_PTZ_UNSUPPORT_DIRECTION_RIGHTUP, // 右上
  12762. EM_PTZ_UNSUPPORT_DIRECTION_LEFTDOWN, // 左下
  12763. EM_PTZ_UNSUPPORT_DIRECTION_RIGHTDOWN, // 右下
  12764. } EM_PTZ_UNSUPPORT_DIRECTION;
  12765. ///@brief 风扇能力
  12766. typedef struct tagCFG_PTZ_FAN_CAPS
  12767. {
  12768. BOOL bSupport; /// 是否支持风扇控制
  12769. BOOL bClearFogSupport; /// 是否支持除雾
  12770. BOOL bFanPowerSupport; /// 是否支持风扇电源管理
  12771. char szReserved[1020]; /// 预留字节
  12772. }CFG_PTZ_FAN_CAPS;
  12773. ///@brief 视窗加热器能力
  12774. typedef struct tagCFG_WINDOW_HEATER_CAPS
  12775. {
  12776. BOOL bSupport; /// 是否支持视窗加热
  12777. int nManualControlPeriod[2]; /// 手动开启时间范围,[最小时间,最大时间],单位分钟
  12778. int nManualDefaultPeriod; /// 手动默认开启时间,不同的设备默认值不同,需要同热设计确认,单位分钟
  12779. BOOL bIsOpposeLight; /// 是否与补光灯功能互斥
  12780. char szReserved[1020]; /// 预留字节
  12781. }CFG_WINDOW_HEATER_CAPS;
  12782. ///@brief 加热器
  12783. typedef struct tagCFG_PTZ_HEATER
  12784. {
  12785. BOOL bSupport; /// 是否支持加热器控制
  12786. BOOL bSupportAutoClose; /// 是否支持自动关闭控制
  12787. int nSupportTypesNum; /// 支持的加热器类型个数
  12788. char szSupportTypes[8][32]; /// 支持的加热器类型:"Total":整机加热, "Thermal":热成像镜头加热器, "Visual":可见光镜头加热器, "Demisting":除雾除冰加热器, "Ptz":云台加热器, "Shield":护罩加热器
  12789. int nModeNum; /// 加热器模式个数
  12790. char szMode[8][32]; /// 加热器模式: "Close":关闭, "Auto":自动, "Manual":手动, "Time":"定时"
  12791. BOOL bSupportManualControl; /// 是否支持手动控制
  12792. int nManualControlPeriod[2]; /// 手动控制运行时间范围[最小时间,最大时间]单位/分钟
  12793. int nHeaterTempLowRange[2]; /// 开启加热器温度范围[最小温度,最大温度], 单位:0.1摄氏度
  12794. int nHeaterTempHighRange[2]; /// 关闭加热器温度范围[最小温度,最大温度], 单位:0.1摄氏度
  12795. char szReserved[1020]; /// 预留字节
  12796. }CFG_PTZ_HEATER;
  12797. ///@brief 云台一键锁定
  12798. typedef struct tagCFG_PTZ_ONE_CLICK_LOCK
  12799. {
  12800. BOOL bSupport; /// 是否支持云台一键锁定
  12801. BOOL bIsOpposeIntelliPtzPreset; /// 云台锁定时和预置点智能是否互斥
  12802. }CFG_PTZ_ONE_CLICK_LOCK;
  12803. ///@brief 获取云台能力集信息
  12804. typedef struct tagCFG_PTZ_PROTOCOL_CAPS_INFO
  12805. {
  12806. int nStructSize;
  12807. BOOL bPan; // 是否支持云台水平摆动
  12808. BOOL bTile; // 是否支持云台垂直摆动
  12809. BOOL bZoom; // 是否支持云台变倍
  12810. BOOL bIris; // 是否支持云台光圈调节
  12811. BOOL bPreset; // 是否支持预置点
  12812. BOOL bRemovePreset; // 是否支持清除预置点
  12813. BOOL bTour; // 是否支持自动巡航线路
  12814. BOOL bRemoveTour; // 是否支持清除巡航
  12815. BOOL bPattern; // 是否支持轨迹线路
  12816. BOOL bAutoPan; // 是否支持自动水平摆动
  12817. BOOL bAutoScan; // 是否支持自动扫描
  12818. BOOL bAux; // 是否支持辅助功能
  12819. BOOL bAlarm; // 是否支持报警功能
  12820. BOOL bLight; // 是否支持灯光, 内容见下面"stuPtzLightingControl",该字段已废除使用
  12821. BOOL bWiper; // 是否支持雨刷
  12822. BOOL bFlip; // 是否支持镜头翻转
  12823. BOOL bMenu; // 是否支持云台内置菜单
  12824. BOOL bMoveRelatively; // 是否支持云台按相对坐标定位
  12825. BOOL bMoveAbsolutely; // 是否支持云台按绝对坐标定位
  12826. BOOL bMoveDirectly; // 是否支持云台按三维坐标定位
  12827. BOOL bReset; // 是否支持云台复位
  12828. BOOL bGetStatus; // 是否支持获取云台运动状态及方位坐标
  12829. BOOL bSupportLimit; // 是否支持限位
  12830. BOOL bPtzDevice; // 是否支持云台设备
  12831. BOOL bIsSupportViewRange; // 是否支持云台可视域
  12832. WORD wCamAddrMin; // 通道地址的最小值
  12833. WORD wCamAddrMax; // 通道地址的最大值
  12834. WORD wMonAddrMin; // 预览地址的最小值
  12835. WORD wMonAddrMax; // 预览地址的最大值
  12836. WORD wPresetMin; // 预置点的最小值
  12837. WORD wPresetMax; // 预置点的最大值
  12838. WORD wTourMin; // 自动巡航线路的最小值
  12839. WORD wTourMax; // 自动巡航线路的最大值
  12840. WORD wPatternMin; // 轨迹线路的最小值
  12841. WORD wPatternMax; // 轨迹线路的最大值
  12842. WORD wTileSpeedMin; // 垂直速度的最小值
  12843. WORD wTileSpeedMax; // 垂直速度的最大值
  12844. WORD wPanSpeedMin; // 水平速度的最小值
  12845. WORD wPanSpeedMax; // 水平速度的最大值
  12846. WORD wAutoScanMin; // 自动扫描的最小值
  12847. WORD wAutoScanMax; // 自动扫描的最大值
  12848. WORD wAuxMin; // 辅助功能的最小值
  12849. WORD wAuxMax; // 辅助功能的最大值
  12850. DWORD dwInterval; // 发送命令的时间间隔
  12851. DWORD dwType; // 协议的类型,0-本地云台,1-远程云台
  12852. DWORD dwAlarmLen; // 协议的报警长度
  12853. DWORD dwNearLightNumber; // 近光灯组数量,0~4,为0时表示不支持
  12854. DWORD dwFarLightNumber; // 远光灯组数量,0~4,为0时表示不支持
  12855. DWORD dwSupportViewRangeType; // 支持的可视域数据获取方式掩码,从低位到高位依次数,目前支持
  12856. // 第1位:为1表示支持"ElectronicCompass" 电子罗盘方式
  12857. DWORD dwSupportFocusMode; // 支持的支持的焦距模式掩码,从低位到高位依次数,见#EM_SUPPORT_FOCUS_MODE
  12858. char szName[MAX_PROTOCOL_NAME_LEN]; // 操作的协议名
  12859. char szAuxs[CFG_COMMON_STRING_32][CFG_COMMON_STRING_32]; //云台辅助功能名称列表
  12860. CFG_PTZ_MOTION_RANGE stuPtzMotionRange; // 云台转动角度范围,单位:度
  12861. CFG_PTZ_LIGHTING_CONTROL stuPtzLightingControl; // 灯光控制内容,该字段已废除使用
  12862. BOOL bSupportPresetTimeSection; // 是否支持预置点时间段配置的功能
  12863. BOOL bFocus; // 是否支持云台变焦
  12864. CFG_PTZ_AREA_SCAN stuPtzAreaScan; // 区域扫描能力集
  12865. CFG_PTZ_PRIVACY_MASKING stuPtzPrivacyMasking; // 隐私遮挡能力集
  12866. CFG_PTZ_MEASURE_DISTANCE stuPtzMeasureDistance; // 图像测距能力集
  12867. BOOL bSupportPtzPatternOSD; // 是否支持云台巡迹OSD叠加
  12868. BOOL bSupportPtzRS485DetectOSD; // 是否支持云台RS485检测OSD叠加
  12869. BOOL bSupportPTZCoordinates; // 是否支持云台坐标叠加
  12870. BOOL bSupportPTZZoom; // 是否支持云台变倍叠加
  12871. BOOL bDirectionDisplay; // 是否支持云台方向状态显示
  12872. DWORD dwZoomMax; // 变倍最大值
  12873. DWORD dwZoomMin; // 变倍最小值
  12874. CFG_PTZ_MOVE_ABSOLUTELY_CAP stuMoveAbsolutely; // 绝对控制云台能力,bMoveAbsolutely==TRUE 时有效
  12875. BOOL bMoveContinuously; // stuMoveContinuously 字段是否有效
  12876. CFG_PTZ_MOVE_CONTINUOUSLY_CAPS stuMoveContinuously; // 云台连续运动能力
  12877. int nUnSupportDirections; // 云台不支持的转动方向个数
  12878. EM_PTZ_UNSUPPORT_DIRECTION emUnSupportDirections[10]; // 云台不支持的转动方向
  12879. BOOL bSupportEptzLink; // 是否支持电子云台联动
  12880. CFG_PTZ_FAN_CAPS stuPtzFan; /// 风扇能力
  12881. CFG_WINDOW_HEATER_CAPS stuWindowHeater; /// 视窗加热器能力
  12882. CFG_PTZ_HEATER stuPtzHeater; /// 加热器能力
  12883. CFG_PTZ_ONE_CLICK_LOCK stuPtzOneClickLock; /// 云台一键锁定
  12884. BOOL bSupportPTZShake; /// 是否支持晃动检测
  12885. }CFG_PTZ_PROTOCOL_CAPS_INFO;
  12886. ///@brief 串口支持的云台协议
  12887. typedef struct tagRS_PROTOCOL_InFO
  12888. {
  12889. int nRSProtocolNum; //串口支持的云台协议个数
  12890. char szRSProtocol[CFG_COMMON_STRING_32][CFG_COMMON_STRING_32]; //串口支持的云台协议名称
  12891. }RS_PROTOCOL_InFO;
  12892. ///@brief 同轴支持的云台协议
  12893. typedef struct tagCOAXOAL_PROTOTOL_INFO
  12894. {
  12895. int nCoaxialProtocolNum; //同轴支持的云台协议个数
  12896. char szCoaxialProtocol[CFG_COMMON_STRING_32][CFG_COMMON_STRING_32]; //同轴支持的云台协议名称
  12897. }COAXOAL_PROTOTOL_INFO;
  12898. ///@brief 获取该云台实际能够使用的协议,按介质区分
  12899. typedef struct tagCFG_CAP_PTZ_PROTOCOL
  12900. {
  12901. unsigned int nStructSize;
  12902. RS_PROTOCOL_InFO stuRSProtocolInfo; //串口支持的云台协议信息
  12903. COAXOAL_PROTOTOL_INFO stuCoaxialProtocolInfo; //同轴支持的云台协议信息
  12904. }CFG_CAP_PTZ_PROTOCOL;
  12905. ///@brief 特殊用途目录定义
  12906. typedef struct tagCFG_SPECIAL_DIR_INFO
  12907. {
  12908. char szBackgroudImageDir[MAX_PATH]; // 屏幕底图目录
  12909. char szWindowIconDir[MAX_PATH]; // 窗口图标目录
  12910. char szEventVoiceDir[MAX_PATH]; // 报警语音提示音频文件存放目录
  12911. } CFG_SPECIAL_DIR_INFO;
  12912. ///@brief 关机后延时自动开机配置
  12913. typedef struct tagCFG_AUTO_STARTUP_DELAY_INFO
  12914. {
  12915. BOOL bEnable; //功能是否打开
  12916. int nDelay; //关机后延时开机时间,单位:分钟(取值范围[30, 255])
  12917. }CFG_AUTO_STARTUP_DELAY_INFO;
  12918. ///@brief 透雾模式枚举
  12919. typedef enum tagCFG_DEFOG_MODE
  12920. {
  12921. EM_DEFOG_MODE_UNKNOW, //未知方式
  12922. EM_DEFOG_MODE_OFF, //关闭
  12923. EM_DEFOG_MODE_AUTO, //自动
  12924. EM_DEFOG_MODE_MANAL //手动
  12925. }CFG_DEFOG_MODE;
  12926. ///@brief 大气光模式枚举
  12927. typedef enum tagCFG_LIGHT_INTENSITY_MODE
  12928. {
  12929. EM_LIGHT_INTENSITY_MODE_UNKNOW,//未知方式
  12930. EM_LIGHT_INTENSITY_MODE_AUTO, //自动
  12931. EM_LIGHT_INTENSITY_MODE_MANUL, //手动
  12932. }CFG_LIGHT_INTENSITY_MODE;
  12933. ///@brief 透雾设置配置信息,对应结构体 CFG_VIDEOINDEFOG
  12934. typedef struct tagCFG_VIDEOINDEFOG
  12935. {
  12936. CFG_DEFOG_MODE emDefogMode;//透雾模式
  12937. int nIntensity; //强度(0-100)
  12938. CFG_LIGHT_INTENSITY_MODE emLightIntensityMode;//大气光模式
  12939. int nLightIntensityLevel;//大气光强度(0-15)
  12940. BOOL bCamDefogEnable;//光学去雾使能 (TRUE使能,FALSE去使能)
  12941. }CFG_VIDEOINDEFOG;
  12942. ///@brief 单个通道对应的透雾配置信息
  12943. typedef struct tagCFG_VIDEOINDEFOG_LIST
  12944. {
  12945. int nVideoInDefogNum; // 每个通道实际透雾配置个数
  12946. CFG_VIDEOINDEFOG stVideoInDefog[CFG_MAX_VIDEO_IN_DEFOG]; //每个通道对应的透雾配置数组
  12947. }CFG_VIDEOINDEFOG_LIST;
  12948. ///@brief RTMP配置
  12949. ///@brief 配置主要用于推送码流至Flash Media Server服务器。
  12950. ///@brief 结构体参数按一定规则生成url
  12951. typedef struct tagCFG_RTMP_INFO
  12952. {
  12953. BOOL bEnable; // RTMP配置是否开启
  12954. char szAddr[MAX_ADDRESS_LEN]; // RTMP服务器地址
  12955. int nPort; // RTMP服务器端口
  12956. int nMainChnNum; // 主码流通道个数
  12957. int szMainChannel[AV_CFG_Max_Channel_Num]; // 启用主码流通道号列表:每个成员表示对应的通道需要上传到RTMP服务器,通道号从0开始
  12958. int nExtraChnNum; // 辅码流通道个数
  12959. int szExtraChannel[AV_CFG_Max_Channel_Num]; // 启用辅码流通道号列表:每个成员表示对应的通道需要上传到RTMP服务器,通道号从0开始
  12960. char szCustomPath[MAX_ADDRESS_LEN]; // 路径名
  12961. char szStreamPath[MAX_ADDRESS_LEN]; // 码流路径前缀:不同通道以后缀数字区分
  12962. }CFG_RTMP_INFO;
  12963. ///@brief 每个频率段上的均衡器配置信息
  12964. typedef struct tagCFG_EQUALIZER_EACH_FREQUENCY
  12965. {
  12966. int nMinFrequency; // 均衡器本段的最小频率,单位HZ,最小可取到0
  12967. int nMaxFrequency; // 均衡器本段的最大频率,单位HZ,最大可取到20K
  12968. int nGain; // 均衡器本段的增益
  12969. } CFG_EQUALIZER_EACH_FREQUENCY;
  12970. ///@brief 对应音频输出通道上所有频率段上的配置
  12971. typedef struct tagCFG_EQUALIZER_INFO
  12972. {
  12973. int nAudioOutChn; // 音频输出通道号,最大通道号为16
  12974. int nFrequencyCount; // 实际频率段个数
  12975. CFG_EQUALIZER_EACH_FREQUENCY stuFrequency[MAX_FREQUENCY_COUNT]; // 对应音频输出通道上所有频率段上的配置
  12976. } CFG_EQUALIZER_INFO;
  12977. ///@brief 音频输出均衡器配置(对应CFG_CMD_AUDIO_OUTEQUALIZER)
  12978. typedef struct tagCFG_AUDIO_OUTEQUALIZER_INFO
  12979. {
  12980. int nChannelNum; // 需要配置的音频通道数
  12981. CFG_EQUALIZER_INFO stuEqualizerInfo[MAX_OUTAUDIO_CHANNEL_COUNT]; // 每个音频输出通道上的均衡器的配置信息
  12982. } CFG_AUDIO_OUT_EQUALIZER_INFO;
  12983. ///@brief 每个音频输出通道上的音频抑制配置
  12984. typedef struct tagCFG_SUPPRESSION_INFO
  12985. {
  12986. int nAudioOutChn; // 音频输出通道,最大通道号为16
  12987. BOOL bAutoFrequencyControl; // 啸叫抑制使能
  12988. BOOL bAutoEchoCancellation; // 回声消除使能
  12989. } CFG_SUPPRESSION_INFO;
  12990. ///@brief 音频抑制配置信息(对应CFG_CMD_AUDIO_OUT_SUPPRESSION)
  12991. typedef struct tagCFG_AUDIO_OUT_SUPPRESSION_INFO
  12992. {
  12993. int nChannelNum; // 需要配置的音频通道数
  12994. CFG_SUPPRESSION_INFO stuSuppressionInfo[MAX_OUTAUDIO_CHANNEL_COUNT]; // 每个音频输出通道上的音频抑制配置
  12995. } CFG_AUDIO_OUT_SUPPRESSION_INFO;
  12996. ///@brief 每个音频输入通道上的音频控制配置
  12997. typedef struct tagCFG_IN_CONTROL_EACH_AUDIO
  12998. {
  12999. int nAudioInChn; // 音频输入通道号,最大通道号 为32
  13000. BOOL bPower; // 供电使能
  13001. BOOL bSquishSuppression; // 静噪功能使能
  13002. } CFG_IN_CONTROL_EACH_AUDIO;
  13003. ///@brief 音频输入控制配置(对应CFG_CMD_AUDIO_INCONTROL)
  13004. typedef struct tagCFG_AUDIO_IN_CONTROL_INFO
  13005. {
  13006. int nChannelNum; // 需要配置的音频通道数
  13007. CFG_IN_CONTROL_EACH_AUDIO stuInControl[MAX_INAUDIO_CHANNEL_COUNT]; // 每个音频输入通道上的音频控制配置
  13008. } CFG_AUDIO_IN_CONTROL_INFO;
  13009. ///@brief 视频输入能力集(CFG_CAP_CMD_VIDEOINPUT_EX)扩展配置
  13010. typedef struct tagCFG_CAP_VIDEOINPUT_INFO_EX
  13011. {
  13012. BOOL bSupportDefog; // 是否支持透雾功能
  13013. BOOL bSupportABFFunction; // 是否支持自动调后焦功能
  13014. BOOL bSupportImageStabilization; // 是否支持电子防抖功能
  13015. BOOL bSupportKillShutLine; // 是否支持消除快门线功能
  13016. int nMinKillShutLine; // 可配的最小值
  13017. int nMaxKillShutLine; // 可配的最大值
  13018. BOOL bSupportVideoInColor; //是否支持图像设置能力
  13019. BOOL bSupportBrightness; //是否支持亮度
  13020. BOOL bSupportContrast; //是否支持对比度
  13021. BOOL bSupportSaturation; //是否支持饱和度
  13022. BOOL bSupportHue; //是否支持色度
  13023. BOOL bSupportVideoInFocus; //是否支持聚焦设置
  13024. BOOL bLightingControl; //是否支持红外灯控制
  13025. BYTE bReserved[3]; //字节对齐
  13026. }CFG_CAP_VIDEOINPUT_INFO_EX;
  13027. #define MAX_CAN_COUNT 16 // 最大CAN个数
  13028. ///@brief CAN 过滤策略
  13029. typedef enum tagCFG_CAN_POLICY_METHOD
  13030. {
  13031. CFG_CAN_POLICY_METHOD_UNKONW, // 未知策略
  13032. CFG_CAN_POLICY_METHOD_NONE, // 无过滤
  13033. CFG_CAN_POLICY_METHOD_WHITE, // 允许名单
  13034. CFG_CAN_POLICY_METHOD_BLACK, // 禁止名单
  13035. }CFG_CAN_POLICY_METHOD;
  13036. ///@brief can过滤信息
  13037. typedef struct tagCFG_CANFILTER_INFO
  13038. {
  13039. int nResponseTimeout; // 等待应答超时(单位:毫秒), 发送数据后,等待3000毫秒后,结束该路透传
  13040. int nRequestTimeout; // 接收请求应答超时(单位:毫秒), 超过指定时间未收到数据,认为请求结束
  13041. int nFilterPIDCount; // 数据号个数
  13042. int nRetFiterPIDCount; // 返回数据号个数
  13043. int* pnFilterPID; // 过滤数据号
  13044. CFG_CAN_POLICY_METHOD emPolicy; // 过滤策略
  13045. // 如果是允许名单,上报包含PID的数据
  13046. // 如果是禁止名单,上报不含PID的数据
  13047. // 无过滤则所有数据都上报
  13048. }CFG_CANFILTER_INFO;
  13049. ///@brief CAN透传配置
  13050. typedef struct tagCFG_CANFILTER_LIST
  13051. {
  13052. int nCANCount; // CAN个数
  13053. int nRetCANCount; // 设备返回CAN个数
  13054. CFG_CANFILTER_INFO stuCANFilter[MAX_CAN_COUNT];
  13055. }CFG_CANFILTER_LIST;
  13056. ///@brief 聚焦极限对应枚举
  13057. typedef enum tagEM_FOCUS_LIMIT_SELECT_MODE
  13058. {
  13059. EM_FOCUS_LIMIT_MODE_MANUAL, // "Manual" 自动
  13060. EM_FOCUS_LIMIT_MODE_AUTO, // "Auto"手动
  13061. EM_FOCUS_LIMIT_MODE_INVALID
  13062. }EM_FOCUS_LIMIT_SELECT_MODE;
  13063. ///@brief 聚焦设置基本信息单元
  13064. typedef struct tagCFG_VIDEO_IN_FOCUS_UNIT
  13065. {
  13066. int nMode; // 聚焦模式, 0-关闭, 1-辅助聚焦, 2-自动聚焦, 3-半自动聚焦, 4-手动聚焦
  13067. int nSensitivity; // 聚焦灵敏度, 0-高, 1-默认, 2-低
  13068. int nIRCorrection; // 红外光聚焦修正, 0-不修正, 1-修正, 2-自动修正
  13069. EM_FOCUS_LIMIT_SELECT_MODE emFocusMode; // 聚焦极限
  13070. int nFocusLimit; // 聚焦极限值, 单位毫米
  13071. } CFG_VIDEO_IN_FOCUS_UNIT;
  13072. ///@brief 单通道聚焦设置基本信息
  13073. typedef struct tagCFG_VIDEO_IN_FOCUS
  13074. {
  13075. int nChannelIndex; // 通道号
  13076. int nVideoInFocusRealNum; // 配置使用个数
  13077. CFG_VIDEO_IN_FOCUS_UNIT stVideoInFocusUnit[MAX_VIDEO_IN_FOCUS]; //通道聚焦配置单元信息
  13078. } CFG_VIDEO_IN_FOCUS;
  13079. ///@brief 分析模式
  13080. typedef enum tagEM_ANALYSE_MODE
  13081. {
  13082. EM_ANALYSE_MODE_REAL_STREAM, // 实时流模式
  13083. EM_ANALYSE_MODE_RECORDFILE_STREAM, // 录像文件流模式
  13084. EM_ANALYSE_MODE_PICFILE_STREAM, // 图片文件流模式
  13085. }EM_ANALYSE_MODE;
  13086. ///@brief 智能分析模式
  13087. typedef struct tagCFG_ANALYSE_MODE
  13088. {
  13089. EM_ANALYSE_MODE emMode; // 分析模式,详见EM_ANALYSE_MODE
  13090. }CFG_ANALYSE_MODE;
  13091. ///@brief 云台控制预置点结构
  13092. typedef struct tagPTZ_PRESET
  13093. {
  13094. BOOL bEnable; // 该预置点是否生效
  13095. char szName[MAX_PTZ_PRESET_NAME_LEN]; // 预置点名称
  13096. CFG_PTZ_SPACE_UNIT stPosition; // 预置点的坐标和放大倍数
  13097. }PTZ_PRESET;
  13098. ///@brief 云台预置点配置对应结构
  13099. typedef struct tagPTZ_PRESET_INFO
  13100. {
  13101. DWORD dwMaxPtzPresetNum; // 最大预置点个数
  13102. DWORD dwRetPtzPresetNum; // 实际使用预置点个数
  13103. PTZ_PRESET *pstPtzPreset; // 预置点信息(根据最大个数申请内存)
  13104. }PTZ_PRESET_INFO;
  13105. ///@brief 语音激励音频通道配置
  13106. typedef struct tagCFG_AUDIO_SPIRIT_CHANNE
  13107. {
  13108. int nChannel; // 语音激励联动视频通道号
  13109. int nPriority; // 语音激励优先级, 1~10
  13110. int nPreset; // 对应的视频摄像机的预置点, 与云台一致0~255
  13111. } CFG_AUDIO_SPIRIT_CHANNEL;
  13112. ///@brief 语音激励联动项
  13113. typedef struct tagCFG_AUDIO_SPIRIT_LINKAGE
  13114. {
  13115. int nOutputNum; // 矩阵输出口数量
  13116. int nOutputChanel[CFG_MAX_LOWER_MATRIX_OUTPUT]; // 同步大画面输出到(多个)矩阵输出口
  13117. } CFG_AUDIO_SPIRIT_LINKAGE;
  13118. ///@brief 语音激励
  13119. typedef struct tagCFG_AUDIO_SPIRIT
  13120. {
  13121. BOOL bEnable; // 使能
  13122. int nAudioLimit; // 激励音量阈值, 0~100
  13123. int nDelayTime; // 激励延时时间, 单位: 秒
  13124. CFG_AUDIO_SPIRIT_CHANNEL* pstuChannels; // 语音激励音频通道属性,由用户申请内存,大小为sizeof(CFG_AUDIO_SPIRIT_CHANNEL)*nChannelCount
  13125. int nChannelCount; // 音频通道数
  13126. CFG_AUDIO_SPIRIT_LINKAGE stuLinkage; // 激励联动项
  13127. } CFG_AUDIO_SPIRIT;
  13128. ///@brief 音频输出通道对应的输入通道信息
  13129. typedef struct tagCFG_AUDIO_OUT_CHN
  13130. {
  13131. BOOL bEnable; // 表示当前输出通道是否有效
  13132. int nInputChn; // 当前输出通道上的输入通道个数(bEnable为TRUE时有效)
  13133. short snInputChannels[CFG_MAX_AUDIO_MATRIX_INPUT];// 当前输出通道上的输入通道数组(bEnable为TRUE时有效)
  13134. } CFG_AUDIO_OUT_CHN;
  13135. ///@brief 音频矩阵下的输出通道信息
  13136. typedef struct tagCFG_AUDIO_MATRIX_INFO
  13137. {
  13138. BOOL bEnable; // 表示当前矩阵是否有效
  13139. int nAudioOutChn; // 当前矩阵下的音频输出通道个数(bEnable为TRUE时有效)
  13140. CFG_AUDIO_OUT_CHN stuAudioOutChn[CFG_MAX_AUDIO_MATRIX_OUTPUT]; // 当前矩阵下的音频输出通道数组(bEnable为TRUE时有效)
  13141. } CFG_AUDIO_MATRIX_INFO;
  13142. ///@brief 音频矩阵配置信息
  13143. typedef struct tagCFG_AUDIO_MATRIX
  13144. {
  13145. int nAudioMatrix; // 获取/设置的有效音频矩阵数量,最多4个
  13146. CFG_AUDIO_MATRIX_INFO stuAudioMatrix[CFG_MAX_AUDIO_MATRIX_NUM]; // 音频矩阵配置数组
  13147. } CFG_AUDIO_MATRIX;
  13148. ///@brief 一个音频输出通道对应的静音输入通道
  13149. typedef struct tagCFG_AUDIO_SILENCE_INPUTCHN
  13150. {
  13151. int nMatrix; //此音频输出通道所处的矩阵号,从0开始
  13152. int nOutChannel; //此音频输出通道号,从0开始
  13153. int nInputChnConut; //被静音的输入通道的个数
  13154. short snInputChannel[CFG_MAX_AUDIO_MATRIX_INPUT]; // 被静音的输入通道
  13155. }CFG_AUDIO_SILENCE_INPUT_CHN;
  13156. ///@brief 静音矩阵配置信息
  13157. typedef struct tagCFG_AUDIO_MATRIX_SILENCE
  13158. {
  13159. int nMaxInputListCount; // 需要获取/设置的静音的输出通道数量,既用户分配并赋给pstSilenceInputChn的CFG_AUDIO_SILENCE_INPUTCHN 结构个数
  13160. int nRetInputListCountOut; // 实际获取到的输出通道数量,设置配置时此成员无意义
  13161. CFG_AUDIO_SILENCE_INPUT_CHN *pstSilenceInputChn; // 各个音频输出通道对应的静音输入通道,用户分配,大小为sizeof(CFG_AUDIO_SILENCE_INPUT_CHN)*nMaxInputListCount
  13162. } CFG_AUDIO_MATRIX_SILENCE;
  13163. ///@brief 合成通道各个窗口的信息
  13164. typedef struct tagCFG_COMPOSE_CHANNEL_WINDOW
  13165. {
  13166. int nChannel; /// 视频通道号
  13167. CFG_RECT stuPosition; /// 窗口在屏幕中的位置,使用8192坐标系,当 Split等于PIPn模式时,该字段为必填字段
  13168. char szType[16]; /// 窗口类型。当合成通道为画中画模式时,该字段用来表明画面的z轴顺序。主画面取值为Main%d,辅画面取值为Extra%d,%d为数字,从1开始
  13169. UINT nStreamType; /// 码流类型, -1:未知, 0:主码流, 1:辅码流
  13170. char szReserved[1024]; /// 预留字节
  13171. }CFG_COMPOSE_CHANNEL_WINDOW;
  13172. ///@brief 合成通道配置(对应CFG_CMD_COMPOSE_CHANNEL)
  13173. typedef struct tagCFG_COMPOSE_CHANNEL
  13174. {
  13175. CFG_SPLITMODE emSplitMode; // 分割模式
  13176. int nChannelCombination[MAX_VIDEO_CHANNEL_NUM]; // 割模式下的各子窗口显示内容
  13177. int nChannelCount; // 分割窗口数量
  13178. char szPlanName[16]; /// 合成通道使用的预案
  13179. int nAudioSrcNum; /// 合成通道的音频源个数
  13180. int nAudioSrc[32]; /// 合成通道的音频源
  13181. char szAudioType[16]; /// 音频源的编码类型
  13182. int nWindowNum; /// 合成通道窗口个数
  13183. CFG_COMPOSE_CHANNEL_WINDOW stuWindow[16]; /// 合成通道各个窗口的信息
  13184. char szReserved[1024]; /// 预留字节
  13185. } CFG_COMPOSE_CHANNEL;
  13186. ///@brief 下位矩阵输出配置
  13187. typedef struct tagCFG_LOWER_MATRIX_OUTPUT
  13188. {
  13189. char szName[CFG_COMMON_STRING_128]; // 输出通道名称
  13190. CFG_SPLITMODE emSplitMode; // 分割模式
  13191. int nInputs[CFG_MAX_LOWER_MATRIX_INPUT]; // 输入通道组
  13192. int nInputCount; // 输入通道数
  13193. } CFG_LOWER_MATRIX_OUTPUT;
  13194. ///@brief 下位矩阵信息
  13195. typedef struct tagCFG_LOWER_MATRIX_INFO
  13196. {
  13197. int nOutputCount; // 输出通道数
  13198. CFG_LOWER_MATRIX_OUTPUT stuOutputs[CFG_MAX_LOWER_MATRIX_OUTPUT]; // 输出通道配置
  13199. } CFG_LOWER_MATRIX_INFO;
  13200. ///@brief 下位矩阵配置
  13201. typedef struct tagCFG_LOWER_MATRIX_LIST
  13202. {
  13203. int nMatrixCount; // 下位矩阵数量
  13204. CFG_LOWER_MATRIX_INFO stuMatrix[CFG_MAX_LOWER_MATRIX_NUM]; // 下位矩阵数组
  13205. } CFG_LOWER_MATRIX_LIST;
  13206. ///@brief 开始与结束日期
  13207. typedef struct tagCFG_DAYTIME_INFO
  13208. {
  13209. int nBeginMonth; // 开始时间 月份
  13210. int nBeginDay; // 开始时间 日期
  13211. int nEndMonth; // 结束时间 月份
  13212. int nEndDay; // 结束时间 日期
  13213. }CFG_DAYTIME_INFO;
  13214. ///@brief 时间段限速值配置
  13215. typedef struct tagCFG_TIMESPEEDLIMIT_INFO
  13216. {
  13217. BOOL bEnable; // 速度限制开启
  13218. CFG_DAYTIME_INFO stuDayTime; // 时间段开始与结束日期
  13219. int nDaySpeedLimit; // 白天限速值,单位km/h
  13220. int nNightSpeedLimit; // 晚上限速值,单位km/h
  13221. CFG_TIME_SECTION stuTimeSection; // 白天时间段范围,掩码无效
  13222. }CFG_TIMESPEEDLIMIT_INFO;
  13223. ///@brief 时间段限速值配置
  13224. typedef struct tagCFG_TIMESPEEDLIMIT_LIST
  13225. {
  13226. int nTimeSpeedLimitCount; // 限速时间段个数
  13227. CFG_TIMESPEEDLIMIT_INFO stuTimeSpeedLimit[MAX_TIMESPEEDLIMIT_NUM];
  13228. }CFG_TIMESPEEDLIMIT_LIST;
  13229. ///@brief 语音提示时间
  13230. typedef struct tagCFG_ALERTTIME_INFO
  13231. {
  13232. int nHour; // 小时
  13233. int nMinute; // 分钟
  13234. }CFG_ALERTTIME_INFO;
  13235. ///@brief 语音提示配置
  13236. typedef struct tagCFG_VOICEALERT_INFO
  13237. {
  13238. CFG_ALERTTIME_INFO stuAlertTime; // 语音提醒时间点,定时提醒
  13239. int nIntervalTime; // 提醒间隔时,单位秒
  13240. char szWarnText[CFG_COMMON_STRING_256]; // 语音提醒内容,用户自定义
  13241. }CFG_VOICEALERT_INFO;
  13242. ///@brief 语音提示配置
  13243. typedef struct tagCFG_VOICEALERT_LIST
  13244. {
  13245. int nVoiceAlertCount; // 语音提示个数
  13246. CFG_VOICEALERT_INFO stuVoiceAlert[MAX_VOICEALERT_NUM];
  13247. }CFG_VOICEALERT_LIST;
  13248. ///@brief 红外面板按键
  13249. typedef struct tagCFG_INFRARED_KEY
  13250. {
  13251. char szName[CFG_COMMON_STRING_32]; // 面板按键名称
  13252. char szText[CFG_COMMON_STRING_64]; // 面板按键显示文字,按钮label
  13253. } CFG_INFRARED_KEY;
  13254. ///@brief 红外面板模板
  13255. typedef struct tagCFG_INFRARED_BOARD_TEMPLATE
  13256. {
  13257. unsigned int nID; // 面板模板编号
  13258. char szName[CFG_COMMON_STRING_64]; // 面板品牌型号定义
  13259. unsigned int nCategory; // 面板类型, 大类, 0-DVD, 1-TV
  13260. int nKeyNum; // 面板按键数量
  13261. CFG_INFRARED_KEY stuKeys[CFG_MAX_INFRARED_KEY_NUM]; // 面板按键
  13262. } CFG_INFRARED_BOARD_TEMPLATE;
  13263. ///@brief 红外面板模板组
  13264. typedef struct tagCFG_INFRARED_BOARD_TEMPLATE_GROUP
  13265. {
  13266. int nTemplateNum; // 模板数量
  13267. CFG_INFRARED_BOARD_TEMPLATE stuTemplates[CFG_MAX_INFRARED_BOARD_TEMPLATE_NUM]; // 红外面板模板
  13268. } CFG_INFRARED_BOARD_TEMPLATE_GROUP;
  13269. ///@brief 红外面板
  13270. typedef struct tagCFG_INFRARED_BOARD
  13271. {
  13272. unsigned int nID; // 面板编号, 唯一标示
  13273. char szName[CFG_COMMON_STRING_64]; // 面板控制外设名称, 用户自定义
  13274. unsigned int nCategory; // 面板类型, 0-DVD, 1-TV
  13275. int nCommPort; // 红外通讯端口
  13276. unsigned int nTemplateID; // 关联的模板ID
  13277. } CFG_INFRARED_BOARD;
  13278. ///@brief 红外面板组
  13279. typedef struct tagCFG_INFRARED_BOARD_GROUP
  13280. {
  13281. int nBoardNum; // 红外面板数量
  13282. CFG_INFRARED_BOARD stuBoards[CFG_MAX_INFRARED_BOARD_NUM]; // 红外面板信息
  13283. } CFG_INFRARED_BOARD_GROUP;
  13284. ///@brief 设备保活配置
  13285. typedef struct tagCFG_DEVICEKEEPALIVE_INFO
  13286. {
  13287. BOOL bEnable; // 开启保活使能
  13288. int nInterval; // 保活时间间隔,必须是>=10的值,单位:秒
  13289. int nFailTimes; // 保活失败次数,保活失败次数到达该值认为设备断线
  13290. int nWaitBootTime; // 等待外设加电后启动后检测保活心跳,单位:秒
  13291. }CFG_DEVICEKEEPALIVE_INFO;
  13292. ///@brief 设备曝光配置基本信息
  13293. typedef struct tagCFG_VIDEOIN_EXPOSURE_BASE
  13294. {
  13295. BOOL bSlowShutter; // 慢快门使能
  13296. BYTE byExposureMode; // 曝光模式调节, 0- 默认自动,1- 低噪声,2- 防拖影,3- 50Hz防闪烁
  13297. // 4- 60Hz防闪烁, 5- 光圈优先, 6- 手动, 7- 增益优先, 8- 快门优先
  13298. BYTE byAntiFlicker; // 防闪烁模式 0-Outdoor 1-50Hz防闪烁 2-60Hz防闪烁
  13299. BYTE byCompensation; // 曝光补偿, [0~14]
  13300. BYTE byAutoGainMax; // 自动增益上限, [0, 2]
  13301. BYTE byGain; // 增益档位, [0, 15]
  13302. BYTE bySlowAutoExposure; // 慢曝光, [0, 15]
  13303. BYTE bybyReserv[2]; // 字节对齐
  13304. int byExposureSpeed; // 曝光速度等级:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n为支持的曝光等级)
  13305. BYTE bySlowSpeed; // 慢曝光等级
  13306. BYTE byIris; // 光圈设置, [0~100]
  13307. BYTE byBacklight; // 背光补偿: 取值范围取决于设备能力集: 0-关闭 1-启用 2-指定区域背光补偿
  13308. BYTE byWideDynamicRange; // 宽动态值 0-关闭,1~100-为真实范围值
  13309. BYTE byWideDynamicRangeMode; // 宽动态模式, 0:关闭; 1:手动调节; 2:自动调节
  13310. BYTE byGlareInhibition; // 强光抑制, 0:关闭; 1:弱; 2:中; 3:强
  13311. BYTE byDoubleExposure; // 双快门支持, 0:不支持; 1:支持双快门全帧率; 2:支持双快门半帧率; 3:支持双快门全帧率和半帧率
  13312. BYTE byReserved; // 字节对齐
  13313. int nRecoveryTime; // 自动曝光恢复, 0-表示不恢复, 其他表示恢复的时间, 单位为秒
  13314. float fValue1; // 自动曝光时间下限或者手动曝光自定义时间, [0.1~80ms]
  13315. float fValue2; // 自动曝光时间上限, 需不小于下限, [0.1~80ms]
  13316. CFG_RECT stuBacklightRegion; // 背光补偿区域
  13317. BYTE byIrisMin; // 光圈区间下限[0~100]
  13318. BYTE byIrisMax; // 光圈区间上限,取值不小于byIrisMin[0~100]
  13319. BYTE byGainMin; // 手动(区间)登陆下限
  13320. BYTE byGainMax; // 手动(区间)登陆下限
  13321. }CFG_VIDEOIN_EXPOSURE_BASE;
  13322. ///@brief 设备曝光配置
  13323. typedef struct tagCFG_VIDEOIN_EXPOSURE_INFO
  13324. {
  13325. DWORD dwMaxExposureNum; // 配置的最大个数
  13326. DWORD dwRetExposureNum; // 实际使用的最大个数(查询时返回实际解析个数, 封装时按照此值个数封装)
  13327. CFG_VIDEOIN_EXPOSURE_BASE *pstuVideoInExposure; // 曝光配置信息,由用户申请内存,大小为sizeof(CFG_VIDEOIN_EXPOSURE_BASE)*dwMaxExposureNum
  13328. }CFG_VIDEOIN_EXPOSURE_INFO;
  13329. #define BACKLIGHT_CONFIG_COUNT 3 // 光线环境配置个数
  13330. ///@brief 背光模式
  13331. typedef enum tagEM_VIDEOIN_BACKLIGHT_MODE
  13332. {
  13333. EM_BACKLIGHT_UNKNOW, // 未知模式
  13334. EM_BACKLIGHT_OFF, // 关闭
  13335. EM_BACKLIGHT_BACKLIGHT, // 背光补偿
  13336. EM_BACKLIGHT_GLAREINHIBITION, // 强光抑制
  13337. EM_BACKLIGHT_WIDEDYNAMIC, // 宽动态
  13338. EM_BACKLIGHT_SSA, // 场景自适应
  13339. } EM_VIDEOIN_BACKLIGHT_MODE;
  13340. ///@brief 背光补偿模式,当背光模式为Backlight时有效
  13341. typedef enum tagEM_BACKLIGHT_MODE
  13342. {
  13343. EM_BACKLIGHT_UNKONW, // 未知模式
  13344. EM_BACKLIGHT_DEFAULT, // 默认模式
  13345. EM_BACKLIGHT_REGION, // 自定义区域模式
  13346. } EM_BACKLIGHT_MODE;
  13347. ///@brief 强光抑制模式,当背光模式为GlareInhibition时有效
  13348. typedef enum tagEM_GLARE_INHIBITION_MODE
  13349. {
  13350. EM_GLARE_INHIBITION_UNKONW, // 未知模式
  13351. EM_GLARE_INHIBITION_DEFAULT, // 默认模式
  13352. EM_GLARE_INHIBITION_FPGA, // Fpga强光抑制模式
  13353. } EM_GLARE_INHIBITION_MODE;
  13354. ///@brief SSA对比度调节模式,当背光模式为SSA时有效
  13355. typedef enum tagEM_INTENSITY_MODE
  13356. {
  13357. EM_INTENSITY_UNKNOW, // 未知模式
  13358. EM_INTENSITY_DISABLE, // 关闭
  13359. EM_INTENSITY_AUTO, // 自动
  13360. EM_INTENSITY_MANUAL, // 手动
  13361. } EM_INTENSITY_MODE;
  13362. ///@brief 环境光线配置信息
  13363. typedef struct tagCFG_VIDEOIN_BACKLIGHT_BASE
  13364. {
  13365. EM_VIDEOIN_BACKLIGHT_MODE emMode; // 背光模式
  13366. EM_BACKLIGHT_MODE emBacklightMode; // 背光补偿模式,当emMode == EM_BACKLIGHT_BACKLIGHT时有效
  13367. CFG_RECT stuBacklightRegion; // 背光补偿区域,当emBacklightMode == EM_BACKLIGHT_REGION时有效
  13368. int nWideDynamicRange; // 宽动态值,emMode == EM_BACKLIGHT_WIDEDYNAMIC时有效
  13369. int nGlareInhibition; // 强光抑制,emMode == EM_BACKLIGHT_GLAREINHIBITION时有效
  13370. EM_INTENSITY_MODE emInitensityMode; // SSA对比度调节模式,emMode==EM_BACKLIGHT_SSA时有效
  13371. int nIntensity; // SSA手动调整强度值,emInitensityMode==EM_INTENSITY_MANUAL时有效
  13372. char szName[16]; // 场景名称
  13373. EM_GLARE_INHIBITION_MODE emGlareInhibitionMode; // 强光抑制模式, emMode == EM_BACKLIGHT_GLAREINHIBITION时有效
  13374. int nGlareInSensitivity; // FPGA模式下强光抑制灵敏度, 范围[0-100]
  13375. int nGainMinBLC; // FPGA模式下强光抑制增益下限, 范围[0-100], 且GainMinBLC <= GainMaxBLC
  13376. int nGainMaxBLC; // FPGA模式下强光抑制增益上限, 范围[0-100], 且GainMinBLC <= GainMaxBLC
  13377. double dExposureMinBLC; // FPGA模式下强光抑制曝光时间下限, 单位ms, 范围[0.1-40.0], ExposureMinBLC <= ExposureMaxBLC
  13378. double dExposureMaxBLC; // FPGA模式下强光抑制曝光时间上限, 单位ms, 范围[0.1-40.0], ExposureMinBLC <= ExposureMaxBLC
  13379. UINT nWideDynamicRangeMode; // 宽动态模式, 0:关闭 1:手动调节 2:自动调节
  13380. char szReserved[252]; // 预留字节
  13381. } CFG_VIDEOIN_BACKLIGHT_BASE;
  13382. ///@brief 环境光线配置
  13383. typedef struct tagCFG_VIDEOIN_BACKLIGHT_INFO
  13384. {
  13385. // 环境光线配置信息,0-白天1-夜晚 2-普通
  13386. CFG_VIDEOIN_BACKLIGHT_BASE stuVideoInBackLight[BACKLIGHT_CONFIG_COUNT];
  13387. } CFG_VIDEOIN_BACKLIGHT_INFO;
  13388. ///@brief ////////////////////////////////////////////////////////////////////////
  13389. ///@brief 门禁基本配置
  13390. ///@brief 自定义开门方式
  13391. typedef enum tagCFG_DOOR_OPEN_METHOD
  13392. {
  13393. CFG_DOOR_OPEN_METHOD_UNKNOWN = 0,
  13394. CFG_DOOR_OPEN_METHOD_PWD_ONLY = 1, // 只允许密码开锁
  13395. CFG_DOOR_OPEN_METHOD_CARD = 2, // 只允许刷卡开锁
  13396. CFG_DOOR_OPEN_METHOD_PWD_OR_CARD = 3, // 密码或刷卡开锁
  13397. CFG_DOOR_OPEN_METHOD_CARD_FIRST = 4, // 先刷卡后密码开锁
  13398. CFG_DOOR_OPEN_METHOD_PWD_FIRST = 5, // 先密码后刷卡开锁
  13399. CFG_DOOR_OPEN_METHOD_SECTION = 6, // 分时段开门
  13400. CFG_DOOR_OPEN_METHOD_FINGERPRINTONLY = 7, // 仅信息开锁
  13401. CFG_DOOR_OPEN_METHOD_PWD_OR_CARD_OR_FINGERPRINT = 8, // 密码或刷卡或信息开锁
  13402. CFG_DOOR_OPEN_METHOD_PWD_AND_CARD_AND_FINGERPINT = 9, // 密码+刷卡+信息组合开锁
  13403. CFG_DOOR_OPEN_METHOD_PWD_AND_FINGERPRINT = 10, // 密码+信息组合开锁
  13404. CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT = 11, // 刷卡+信息开锁
  13405. CFG_DOOR_OPEN_METHOD_MULTI_PERSON = 12, // 多人开锁
  13406. CFG_DOOR_OPEN_METHOD_FACEIDCARD = 13, // 人证对比
  13407. CFG_DOOR_OPEN_METHOD_FACEIDCARD_AND_IDCARD = 14, // 证件+ 人证比对
  13408. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_FINGER = 15, // 人证比对或刷卡或信息
  13409. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FINGER = 16, // (证件+认证比对)或刷卡或信息
  13410. CFG_DOOR_OPEN_METHOD_USERID_AND_PWD = 17, // UserID+密码
  13411. CFG_DOOR_OPEN_METHOD_FACE_ONLY = 18, // 只允许目标开锁
  13412. CFG_DOOR_OPEN_METHOD_FACE_AND_PWD = 19, // 目标+密码开锁
  13413. CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_PWD = 20, // 信息+密码开锁
  13414. CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_FACE = 21, // 信息+目标开锁
  13415. CFG_DOOR_OPEN_METHOD_CARD_AND_FACE = 22, // 刷卡+目标开锁
  13416. CFG_DOOR_OPEN_METHOD_FACE_OR_PWD = 23, // 目标或密码开锁
  13417. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_PWD = 24, // 信息或密码开锁
  13418. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_FACE = 25, // 信息或目标开锁
  13419. CFG_DOOR_OPEN_METHOD_CARD_OR_FACE = 26, // 刷卡或目标开锁
  13420. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT = 27, // 刷卡或信息开锁
  13421. CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_FACE_AND_PWD = 28, // 信息+目标+密码开锁
  13422. CFG_DOOR_OPEN_METHOD_CARD_AND_FACE_AND_PWD = 29, // 刷卡+目标+密码开锁
  13423. CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT_AND_PWD = 30, // 刷卡+信息+密码开锁
  13424. CFG_DOOR_OPEN_METHOD_CARD_AND_PWD_AND_FACE = 31, // 卡+信息+目标组合开锁
  13425. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_FACE_OR_PWD = 32, // 信息或目标或密码
  13426. CFG_DOOR_OPEN_METHOD_CARD_OR_FACE_OR_PWD = 33, // 卡或目标或密码开锁
  13427. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE = 34, // 卡或信息或目标开锁
  13428. CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT_AND_FACE_AND_PWD = 35, // 卡+信息+目标+密码组合开锁
  13429. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE_OR_PWD = 36, // 卡或信息或目标或密码开锁
  13430. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FACE = 37, //(证件+人证比对)或 刷卡 或 目标
  13431. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_FACE = 38, // 人证比对 或 刷卡(二维码) 或 目标
  13432. CFG_DOOR_OPEN_METHOD_CARDANDPWD_OR_FINGERPRINTANDPWD = 39, // (卡+密码)或(信息+密码)默认为2
  13433. CFG_DOOR_OPEN_METHOD_PHOTO_OR_FACE = 40, // 人证(照片)或目标
  13434. CFG_DOOR_OPEN_METHOD_FINGERPRINT = 41, // 人证(信息)
  13435. CFG_DOOR_OPEN_METHOD_PHOTO_AND_FINGERPRINT = 42, // 人证(照片+信息)
  13436. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_FINGERPRINT_OR_FACE_OR_PASSWORD = 43, // 人证或刷卡或信息或目标或密码
  13437. CFG_DOOR_OPEN_METHOD_MULTI_USER_TYPE = 44, // 多用户类型
  13438. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_HEALTHCODE = 45, // 人证或健康码
  13439. CFG_DOOR_OPEN_METHOD_IRIS_ONLY = 46, // 只允许眼睛开锁
  13440. CFG_DOOR_OPEN_METHOD_IRIS_AND_PWD = 47, // 眼睛+密码组合开锁
  13441. CFG_DOOR_OPEN_METHOD_FACE_AND_IRIS = 48, // 目标+眼睛组合开锁
  13442. CFG_DOOR_OPEN_METHOD_CARD_AND_IRIS = 49, // 卡+眼睛组合开锁
  13443. CFG_DOOR_OPEN_METHOD_IRIS_OR_PWD = 50, // 眼睛或密码开锁
  13444. CFG_DOOR_OPEN_METHOD_FACE_OR_IRIS = 51, // 目标或眼睛开锁
  13445. CFG_DOOR_OPEN_METHOD_CARD_OR_IRIS = 52, // 卡或眼睛开锁
  13446. CFG_DOOR_OPEN_METHOD_FACE_AND_IRIS_AND_PWD = 53, // 目标+眼睛+密码组合开锁
  13447. CFG_DOOR_OPEN_METHOD_CARD_AND_FACE_AND_IRIS = 54, // 卡+目标+眼睛组合开锁
  13448. CFG_DOOR_OPEN_METHOD_CARD_AND_IRIS_AND_PWD = 55, // 卡+眼睛+密码组合开锁
  13449. CFG_DOOR_OPEN_METHOD_FACE_OR_IRIS_PWD = 56, // 目标或眼睛或密码开锁
  13450. CFG_DOOR_OPEN_METHOD_CARD_OR_FACE_IRIS = 57, // 卡或目标或眼睛开锁
  13451. CFG_DOOR_OPEN_METHOD_CARD_OR_IRIS_PWD = 58, // 卡或眼睛或密码开锁
  13452. CFG_DOOR_OPEN_METHOD_CARD_AND_FACE_IRIS_PWD = 59, // 卡+目标+眼睛+密码组合开锁
  13453. CFG_DOOR_OPEN_METHOD_CARD_OR_FACE_OR_IRIS_PWD = 60, // 卡或目标或眼睛或密码开锁
  13454. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD = 61, // 人证或刷卡
  13455. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_OWD = 62, // 人证或密码
  13456. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_FINGERPRINT = 63, // 人证或信息
  13457. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_PWD = 64, // 人证或刷卡或密码
  13458. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_FINGERPRINT_OR_PWD = 65, //人证或信息或密码
  13459. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_FINGERPRINT_OR_FACE = 66, //人证或信息或目标
  13460. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_FINGERPRINT_OR_PWD = 67, // 人证或刷卡或信息或密码
  13461. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_FINGERPRINT_OR_FACE = 68, // 人证或刷卡或信息或目标
  13462. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_PWD_OR_FINGERPRINT_OR_FACE = 69, // 人证或密码或信息或目标
  13463. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_CARD = 70, // (证件+人证比对)或刷卡
  13464. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_PWD = 71, // (证件+人证比对)或密码
  13465. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_FINGERPRINT = 72, // (证件+人证比对)或信息
  13466. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_FACE = 73, // (证件+人证比对)或目标
  13467. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_CARD_OR_PWD = 74, // (证件+人证比对)或刷卡或密码
  13468. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_FINGERPRINT_OR_PWD = 75, // (证件+人证比对)或信息或密码
  13469. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_FINGERPRINT_OR_FACE = 76, // (证件+人证比对)或信息或目标
  13470. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_CARD_OR_FINGERPRINT_OR_PWD = 77, // (证件+人证比对)或信息或目标或密码
  13471. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_CARD_OR_FINGERPRINT_OR_FACE = 78, // (证件+人证比对)或刷卡或信息或目标
  13472. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_PWD_OR_FINGERPRINT_OR_FACE = 79, // (证件+人证比对)或密码或信息或目标
  13473. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_PWD_OR_FINGERPRINT_OR_CARD_OR_FACE = 80, // (证件+人证比对)或信息或目标
  13474. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_PWD_OR_CARD_OR_FACE = 81, // 人证或密码或刷卡或目标
  13475. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_PWD_AND_CARD_AND_FACE = 82, // (证件+人证)或密码、刷卡、目标
  13476. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_PWD_OR_FACE = 83, // 人证或密码或目标
  13477. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_AND_FACEIDCARD_OR_PWD_OR_FACE = 84, // (证件+人证比对)或目标
  13478. CFG_DOOR_OPEN_METHOD_MULTI_COMBINATIONS = 85, // 多组合开门
  13479. CFG_DOOR_OPEN_METHOD_BLUETOOTHCARD = 86, // 蓝牙卡开门
  13480. CFG_DOOR_OPEN_METHOD_CARD_OR_BLUETOOTHCARD = 87, // 卡或蓝牙卡开门
  13481. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_BLUETOOTHCARD = 88, // 信息或蓝牙卡开门
  13482. CFG_DOOR_OPEN_METHOD_PWD_OR_BLUETOOTHCARD = 89, // 密码或蓝牙卡开门
  13483. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_BLUETOOTHCARD = 90, // 卡或信息或蓝牙卡开门
  13484. CFG_DOOR_OPEN_METHOD_CARD_OR_PWD_OR_BLUETOOTHCARD = 91, // 卡或密码或蓝牙卡开门
  13485. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_PWD_OR_BLUETOOTHCARD = 92, // 信息或密码或蓝牙卡开门
  13486. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_PWD_OR_BLUETOOTHCARD = 93, // 卡或信息或密码或蓝牙卡开门
  13487. CFG_DOOR_OPEN_METHOD_PALMPRINT_ONLY = 94, // 只允许掌纹开锁
  13488. CFG_DOOR_OPEN_METHOD_PALMPRINT_AND_PWD = 95, // 掌纹+密码组合开锁
  13489. CFG_DOOR_OPEN_METHOD_FACE_AND_PALMPRINT = 96, // 人脸+掌纹组合开锁
  13490. CFG_DOOR_OPEN_METHOD_CARD_AND_PALMPRINT = 97, // 卡+掌纹组合开锁
  13491. CFG_DOOR_OPEN_METHOD_PALMPRINT_OR_PWD = 98, // 掌纹或密码开锁
  13492. CFG_DOOR_OPEN_METHOD_FACE_OR_PALMPRINT = 99, // 人脸或掌纹开锁
  13493. CFG_DOOR_OPEN_METHOD_CARD_OR_PALMPRINT = 100, // 卡或掌纹开锁
  13494. CFG_DOOR_OPEN_METHOD_FACE_AND_PALMPRINT_AND_PWD = 101, // 人脸+掌纹+密码组合开锁
  13495. CFG_DOOR_OPEN_METHOD_CARD_AND_FACE_AND_PALMPRINT = 102, // 卡+人脸+掌纹组合开锁
  13496. CFG_DOOR_OPEN_METHOD_CARD_AND_PALMPRINT_AND_PWD = 103, // 卡+掌纹+密码组合开锁
  13497. CFG_DOOR_OPEN_METHOD_FACE_OR_PALMPRINT_OR_PWD = 104, // 人脸或掌纹或密码开锁
  13498. CFG_DOOR_OPEN_METHOD_CARD_OR_FACE_OR_PALMPRINT = 105, // 卡或人脸或掌纹开锁
  13499. CFG_DOOR_OPEN_METHOD_CARD_OR_PALMPRINT_OR_PWD = 106, // 卡或掌纹或密码开锁
  13500. CFG_DOOR_OPEN_METHOD_CARD_AND_FACE_AND_PALMPRINT_AND_PWD = 107, // 卡+人脸+掌纹+密码组合开锁
  13501. CFG_DOOR_OPEN_METHOD_CARD_OR_FACE_OR_PALMPRINT_OR_PWD = 108, // 卡或人脸或掌纹或密码开锁
  13502. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD = 109, // 证件开锁
  13503. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FACE_OR_PALMPRINT_OR_PWD = 110, // 证件或卡或人脸或指纹或密码开锁
  13504. CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_IRIS = 111, // 指纹+虹膜
  13505. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_IRIS = 112, // 指纹或虹膜
  13506. CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT_AND_IRIS = 113, // 卡+指纹+虹膜
  13507. CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_FACE_AND_IRIS = 114, // 指纹+人脸+虹膜
  13508. CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_IRIS_AND_PWD = 115, // 指纹+虹膜+密码
  13509. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_IRIS = 116, // 卡或指纹或虹膜
  13510. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_FACE_OR_IRIS = 117, // 指纹或人脸或虹膜
  13511. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_IRIS_OR_PWD = 118, // 指纹或虹膜或密码
  13512. CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT_AND_IRIS_AND_PWD = 119, // 卡+指纹+虹膜+密码
  13513. CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT_AND_FACE_AND_IRIS = 120, // 卡+指纹+人脸+虹膜
  13514. CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_FACE_AND_IRIS_AND_PWD = 121, // 指纹+人脸+虹膜+密码
  13515. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_IRIS_OR_PWD = 122, // 卡或指纹或虹膜或密码
  13516. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE_OR_IRIS = 123, // 卡或指纹或人脸或虹膜
  13517. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_FACE_OR_IRIS_OR_PWD = 124, // 指纹或人脸或虹膜或密码
  13518. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE_OR_IRIS_OR_PWD = 125, // 卡或指纹或人脸或虹膜或密码
  13519. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_FINGERPRINT_OR_FACE_OR_IRIS_OR_PWD = 126, // 人证或卡或指纹或人脸或虹膜或密码
  13520. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FINGERPRINT_OR_FACE_OR_IRIS_OR_PWD = 127, // (身份证+人证比对)或卡或指纹或人脸或虹膜或密码
  13521. }CFG_DOOR_OPEN_METHOD;
  13522. ///@brief 门禁单双向配置类型
  13523. typedef enum tagCFG_ACCESS_PROPERTY_TYPE
  13524. {
  13525. CFG_ACCESS_PROPERTY_UNKNOWN = 0,
  13526. CFG_ACCESS_PROPERTY_BIDIRECT, // 双向门禁
  13527. CFG_ACCESS_PROPERTY_UNIDIRECT, // 单向门禁
  13528. }CFG_ACCESS_PROPERTY_TYPE;
  13529. #define CFG_MAX_ABLOCK_DOORS_NUM 8 // 最大的门禁的互锁门通道数
  13530. ///@brief 门禁的AB互锁的组
  13531. typedef struct tagCFG_ABLOCK_DOOR_INFO
  13532. {
  13533. int nDoor; // 有效互锁门的个数
  13534. int anDoor[CFG_MAX_ABLOCK_DOORS_NUM]; // 互锁的门的通道号
  13535. }CFG_ABLOCK_DOOR_INFO;
  13536. #define CFG_MAX_ABLOCK_GROUP_NUM 8 // 最大的互锁组数
  13537. ///@brief 门禁的AB互锁功能, 多个门通道,只有其他B通道都关闭,唯一的A通道才打开
  13538. typedef struct tagCFG_ABLOCK_INFO
  13539. {
  13540. BOOL bEnable; // 使能
  13541. int nDoors; // 有效互锁组数
  13542. CFG_ABLOCK_DOOR_INFO stuDoors[CFG_MAX_ABLOCK_GROUP_NUM]; // 互锁组信息
  13543. }CFG_ABLOCK_INFO;
  13544. ///@brief 门禁的AB互锁的组
  13545. typedef struct tagCFG_ABLOCK_DOOR_INFO_EX
  13546. {
  13547. int nDoorCount; /// 有效互锁门的个数
  13548. UINT nDoor[32]; /// 互锁的门的通道号
  13549. char szReserved[68]; /// 预留字节
  13550. }CFG_ABLOCK_DOOR_INFO_EX;
  13551. ///@brief 门禁的AB互锁功能, 多个门通道,只有其他B通道都关闭,唯一的A通道才打开
  13552. typedef struct tagCFG_ABLOCK_INFO_EX
  13553. {
  13554. BOOL bEnable; /// 使能
  13555. int nDoorsCount; /// 有效互锁组数
  13556. CFG_ABLOCK_DOOR_INFO_EX stuDoors[8]; /// 互锁组信息
  13557. char szReserved[64]; /// 预留字节
  13558. }CFG_ABLOCK_INFO_EX;
  13559. ///@brief 通行模式
  13560. typedef enum tagEM_PASS_MODE
  13561. {
  13562. EM_PASS_MODE_UNKNOWN = -1, // 未知
  13563. EM_PASS_MODE_IN_AUTHORIZATION_OUT_AUTHORIZATION, // 进授权出授权
  13564. EM_PASS_MODE_IN_AUTHORIZATION_OUT_FREE, // 进授权出自由
  13565. EM_PASS_MODE_IN_AUTHORIZATION_OUT_FORBID, // 进授权出禁止
  13566. EM_PASS_MODE_IN_FREE_OUT_AUTHORIZATION, // 进自由出授权
  13567. EM_PASS_MODE_IN_FREE_OUT_FREE, // 进自由出自由
  13568. EM_PASS_MODE_IN_FREE_OUT_FORBID, // 进自由出禁止
  13569. EM_PASS_MODE_IN_FORBID_OUT_AUTHORIZATION, // 进禁止出授权
  13570. EM_PASS_MODE_IN_FORBID_OUT_FREE, // 进禁止出自由
  13571. EM_PASS_MODE_IN_FORBID_OUT_FORBID, // 进禁止出禁止
  13572. } EM_PASS_MODE;
  13573. ///@brief 闸机防冲撞模式
  13574. typedef enum tagEM_COLLISION_MODE
  13575. {
  13576. EM_COLLISION_MODE_UNKNOWN = -1,
  13577. EM_COLLISION_MODE_2S, // 2s松开离合
  13578. EM_COLLISION_MODE_5S, // 5s松开离合
  13579. EM_COLLISION_MODE_LEAVING, // 人员离开松开离合
  13580. } EM_COLLISION_MODE;
  13581. ///@brief 闸机断电以后门摆动放向
  13582. typedef enum tagEM_DIRECTION_AFTER_POWER_OFF
  13583. {
  13584. EM_DIRECTION_AFTER_POWER_OFF_UNKNOWN = -1, // 未知
  13585. EM_DIRECTION_AFTER_POWER_OFF_IN, // 进门方向
  13586. EM_DIRECTION_AFTER_POWER_OFF_OUT, // 出门方向
  13587. } EM_DIRECTION_AFTER_POWER_OFF;
  13588. ///@brief 工作模式
  13589. typedef enum tagEM_ASG_WORK_MODE
  13590. {
  13591. EM_ASG_WORK_MODE_UNKNOWN = -1, // 未知
  13592. EM_ASG_WORK_MODE_CLOSE, // 常闭模式
  13593. EM_ASG_WORK_MODE_OPEN, // 常开模式
  13594. } EM_ASG_WORK_MODE;
  13595. ///@brief 启动模式
  13596. typedef enum tagEM_STARTUP_MODE
  13597. {
  13598. EM_STARTUP_MODE_UNKNOWN = -1, // 未知
  13599. EM_STARTUP_MODE_NORMAL, // 正常启动模式
  13600. EM_STARTUP_MODE_ZERO_SETTING, // 零位设置启动模式
  13601. EM_STARTUP_MODE_AGING_TEST, // 老化测试启动模式
  13602. } EM_STARTUP_MODE;
  13603. ///@brief 闸机类型
  13604. typedef enum tagEM_GATE_TYPE
  13605. {
  13606. EM_ASG_GATE_TYPE_UNKNOWN = -1, // 未知
  13607. EM_ASG_GATE_TYPE_SWING_GATE_ONE, // 摆闸1
  13608. EM_ASG_GATE_TYPE_SWING_GATE_TWO, // 摆闸2
  13609. EM_ASG_GATE_TYPE_WING_GATE_ONE, // 翼闸1
  13610. EM_ASG_GATE_TYPE_WING_GATE_TWO, // 翼闸2
  13611. EM_ASG_GATE_TYPE_WING_GATE_THREE, // 翼闸3
  13612. EM_ASG_GATE_TYPE_THREE_STICK_GATE_ONE = 10, // 三棍闸1
  13613. EM_ASG_GATE_TYPE_THREE_STICK_GATE_TWO, // 三棍闸2
  13614. EM_ASG_GATE_TYPE_SWING_GATE_THREE = 20, // 摆闸3
  13615. EM_ASG_GATE_TYPE_SWING_GATE_FOUR, // 摆闸4
  13616. EM_ASG_GATE_TYPE_SWING_GATE_FIVE, // 摆闸5
  13617. } EM_GATE_TYPE;
  13618. ///@brief 通道宽度
  13619. typedef enum tagEM_CHANNEL_WIDTH
  13620. {
  13621. EM_CHANNEL_WIDTH_UNKNOWN = -1, // 未知
  13622. EM_CHANNEL_WIDTH_600, // 600mm
  13623. EM_CHANNEL_WIDTH_700, // 700mm
  13624. EM_CHANNEL_WIDTH_800, // 800mm
  13625. EM_CHANNEL_WIDTH_900, // 900mm
  13626. EM_CHANNEL_WIDTH_1000, // 1000mm
  13627. EM_CHANNEL_WIDTH_1100, // 1100mm
  13628. EM_CHANNEL_WIDTH_1200, // 1200mm
  13629. EM_CHANNEL_WIDTH_1300, // 1300mm
  13630. EM_CHANNEL_WIDTH_1400, // 1400mm
  13631. EM_CHANNEL_WIDTH_1500, // 1500mm
  13632. } EM_CHANNEL_WIDTH;
  13633. ///@brief 门通道控制闸机参数
  13634. typedef struct tagCFG_ACCESS_CONTROL_ASG
  13635. {
  13636. EM_PASS_MODE emPassMode; // 通行模式
  13637. UINT nOpenDoorSpeed; // 开门速度档位, 范围:0-7, 对应1-8档
  13638. UINT nPassTimeOut; // 通行超时时间, 范围:2-60, 单位:秒
  13639. UINT nCloseDelayTime; // 延时关门时间, 范围:0-60, 单位:秒
  13640. UINT nSecurityLevel; // 闸机安全等级, 范围:0-4, 对应1-5级
  13641. BOOL bSecondOpenEnable; // 二次开启功能开关;False:关闭, True:开启
  13642. BOOL bMemoryModeEnable; // 记忆功能开关;False:关闭, True:开启
  13643. EM_COLLISION_MODE emCollisionMode; // 闸机防冲撞模式
  13644. UINT nVolumeLevel; // 设备音量等级共8档, 范围:0-7, 0级表示静音
  13645. EM_DIRECTION_AFTER_POWER_OFF emDirectionAfterPowerOff; // 闸机断电以后门摆动放向
  13646. EM_ASG_WORK_MODE emWorkMode; // 工作模式
  13647. EM_STARTUP_MODE emStartUpMode; // 启动模式
  13648. int nMasterWingAngleAdjust; // 主机侧门翼零位微调角度,进门方向右手边为主机侧门翼
  13649. int nSlaveWingAngleAdjust; // 从机侧门翼零位微调角度,进门方向左手边为从机侧门翼
  13650. EM_GATE_TYPE emGateType; // 闸机类型
  13651. EM_CHANNEL_WIDTH emChannelWidth; // 通道宽度
  13652. UINT nSecondOpenTimeSection; // bSecondOpenEnable作用时间段,AccessTimeSchedule 配置索引
  13653. UINT nMemoryModeTimeSection; // bMemoryModeEnable作用时间段,AccessTimeSchedule 配置索引
  13654. UINT nWorkModeTimeSection; // emWorkMode作用时间段,AccessTimeSchedule 配置索引
  13655. BOOL bClearPassNum; // 是否清理通行人数
  13656. BYTE byReserved[112]; // 保留字节
  13657. } CFG_ACCESS_CONTROL_ASG;
  13658. ///@brief 语音ID
  13659. typedef enum tagCFG_EM_VOICE_ID
  13660. {
  13661. CFG_EM_VOICE_ID_UNKNOWN = -1, // 未知
  13662. CFG_EM_VOICE_ID_VERIFY_SUCCESS, // 验证成功(默认)
  13663. CFG_EM_VOICE_ID_OPENDOOR_SUCCESS, // 开门成功
  13664. CFG_EM_VOICE_ID_UNLOCK_SUCCESS, // 开锁成功
  13665. CFG_EM_VOICE_ID_SWIPECARD_SUCCESS, // 刷卡成功
  13666. CFG_EM_VOICE_ID_WELCOME, // 欢迎光临
  13667. CFG_EM_VOICE_ID_WELCOME_BACK, // 欢迎再次光临
  13668. CFG_EM_VOICE_ID_THANKS, // 谢谢
  13669. CFG_EM_VOICE_ID_CUSTOMIZED_VOICE, // 自定义
  13670. CFG_EM_VOICE_ID_NO_VOICE, // 无声音
  13671. CFG_EM_VOICE_ID_WELCOME_HOME, // 欢迎回家
  13672. CFG_EM_VOICE_ID_GOOD_JOURNEY, // 一路顺风
  13673. CFG_EM_VOICE_ID_WELCOME_BACK_NEXT, // 欢迎下次光临
  13674. CFG_EM_VOICE_ID_THANKS_FOR_PATRONAGE, // 谢谢惠顾
  13675. CFG_EM_VOICE_ID_AUTHORIZ_SUCCESS, // 授权成功
  13676. CFG_EM_VOICE_ID_SAFE_JOURNEY, // 一路平安
  13677. CFG_EM_VOICE_ID_CUSTOMIZED_VOICE2, // 自定义2
  13678. CFG_EM_VOICE_ID_CUSTOMIZED_VOICE3, // 自定义3
  13679. }CFG_EM_VOICE_ID;
  13680. ///@brief 闸机进出语音方向
  13681. typedef enum tagCFG_EM_ASG_VOICE_DIRECTION
  13682. {
  13683. CFG_EM_ASG_VOICE_DIRECTION_UNKNOWN, // 未知
  13684. CFG_EM_ASG_VOICE_DIRECTION_ENTER, // 进入
  13685. CFG_EM_ASG_VOICE_DIRECTION_LEAVE, // 离开
  13686. }CFG_EM_ASG_VOICE_DIRECTION;
  13687. ///@brief 门禁开门语音信息
  13688. typedef struct tagCFG_ACCESS_VOICE_INFO
  13689. {
  13690. CFG_EM_VOICE_ID emVoiceID; // 语音ID
  13691. char szVoiceContent[128]; // 语音内容
  13692. char szFileName[128]; // 语音文件路径及名称
  13693. CFG_EM_ASG_VOICE_DIRECTION emAsgVoiceDirection; // 闸机进出语音方向
  13694. BYTE byReserved[1020]; // 预留字段
  13695. }CFG_ACCESS_VOICE_INFO;
  13696. ///@brief 门禁开门提示音
  13697. typedef struct tagCFG_ACCESS_VOICE
  13698. {
  13699. CFG_EM_VOICE_ID emCurrentVoiceID; // 当前播放语音ID
  13700. CFG_ACCESS_VOICE_INFO arrayVoiceInfo[16]; // 语音列表
  13701. UINT nVoiceCount; // arrayVoiceInfo 个数
  13702. BYTE byReserved[1024]; // 预留字段
  13703. }CFG_ACCESS_VOICE;
  13704. ///@brief 门磁类型
  13705. typedef enum tagEM_ACCESS_SENSOR_TYPE
  13706. {
  13707. EM_ACCESS_SENSOR_TYPE_UNKNOWN = -1, // 未知
  13708. EM_ACCESS_SENSOR_TYPE_NO, // 常开
  13709. EM_ACCESS_SENSOR_TYPE_NC, // 常闭
  13710. } EM_ACCESS_SENSOR_TYPE;
  13711. ///@brief 门禁基本配置
  13712. typedef struct tagCFG_ACCESS_GENERAL_INFO
  13713. {
  13714. char szOpenDoorAudioPath[MAX_ADDRESS_LEN]; // 开门音频文件路径
  13715. char szCloseDoorAudioPath[MAX_ADDRESS_LEN]; // 关门音频文件路径
  13716. char szInUsedAuidoPath[MAX_ADDRESS_LEN]; // 有人音频文件路径
  13717. char szPauseUsedAudioPath[MAX_ADDRESS_LEN]; // 暂停使用音频文件路径
  13718. char szNotClosedAudioPath[MAX_ADDRESS_LEN]; // 门未关音频文件路径
  13719. char szWaitingAudioPath[MAX_ADDRESS_LEN]; // 等待提示音频文件路径
  13720. int nUnlockReloadTime; // 开锁命令响应间隔时间,单位秒,取值10、15(默认值)、20
  13721. int nUnlockHoldTime; // 开锁输出保持时间,单位秒,取值1、2(默认)、3、4、5、6、9、15。
  13722. // 能力
  13723. bool abProjectPassword;
  13724. bool abAccessProperty;
  13725. bool abABLockInfo;
  13726. BYTE byReserved;
  13727. char szProjectPassword[MAX_PASSWORD_LEN]; // 工程密码
  13728. CFG_ACCESS_PROPERTY_TYPE emAccessProperty; // 门禁通道单双向配置
  13729. CFG_ABLOCK_INFO stuABLockInfo; // AB互锁信息
  13730. char szDuressPassword[MAX_PASSWORD_LEN]; // 胁迫密码
  13731. BOOL bDuressEnable; // 胁迫使能
  13732. BOOL bCustomPasswordEnable; // 是否启用个性化密码
  13733. char szCommonPassword[MAX_PASSWORD_LEN]; // 公共密码
  13734. UINT nPeakTimeSection; // 梯控高峰时间段, 值为CFG_ACCESS_TIMESCHEDULE_INFO配置的数组下标
  13735. BOOL bPeakState; // 是否为梯控高峰期, TRUE:高峰期, FALSE:平峰期
  13736. UINT nRemoteAuthTimeOut; // 远程校验超时时间,单位:秒, 默认值:5秒,范围[1-15]
  13737. BYTE arrFloorPermission[64]; // 楼层权限信息,每一个bit对应一个楼层,bit值1表示公共层,0表示权限楼层
  13738. int nFloorPermission; // arrFloorPermission 数组个数
  13739. CFG_ACCESS_CONTROL_ASG stuAccessControlASG; // 门通道控制闸机参数
  13740. CFG_ACCESS_VOICE stuAccessVoice; // 门禁开门提示音
  13741. EM_ACCESS_SENSOR_TYPE emSensorType; // 门磁类型
  13742. UINT nFloorOffset; // 负楼层偏移:0~15
  13743. BOOL bButtonExitEnable; // 开门按钮使能
  13744. BOOL bCustomMethodEnable; // 是否启用个性化开门方式
  13745. int nMethod; //-1:未知
  13746. //0: 只允许密码开锁
  13747. //1: 只允许刷卡开锁
  13748. //2: 密码或刷卡开锁
  13749. //3: 先刷卡后密码开锁
  13750. //4: 先密码后刷卡开锁。
  13751. //5: 只允许信息开锁
  13752. //6: 密码或刷卡或信息开锁
  13753. //7: 密码+刷卡+信息组合开锁
  13754. //8: 密码+信息组合开锁
  13755. //9: 刷卡+信息组合开锁
  13756. BOOL bCheckSensorBeforeLock; // 闭锁前是否检测门磁信号
  13757. BOOL bUnlockRecordUpload; // 开锁记录是否上传
  13758. UINT nCheckSensorTime; // 门磁检测时间
  13759. char szSendCardPassword[64]; // 发卡密码
  13760. BOOL bRecordEnable; // 录像使能
  13761. BOOL bCallLiftEnable; // 呼梯使能
  13762. char szCallLiftType[32]; //呼梯的协议类型
  13763. BOOL bSnapshotUpload; //抓图上传使能
  13764. BOOL bAutoSnapshot; //呼叫自动抓拍使能
  13765. char szOpenDoorCommand[32]; //Dtmf 开门命令
  13766. char szOpenDoorSecondCommand[32]; //Dtmf 第二个开门命令
  13767. int nAccessProtocol; //门禁协议 0:未知 1 :本机开关量控制 2:门禁协议(串口协议) 3:门禁udp开锁 4:私有串口
  13768. int nAccessProtocolSecond; // 0:未知 1 :开本地锁 2:485外接的锁
  13769. UINT nEntranceLockChannel; // 门禁控制器下的子通道nAccessProtocol为2有效
  13770. int nUnlockRecordTypeNum; // 开锁方式数量
  13771. int nUnlockRecordType[32]; // 开锁方式 0:未知 1:Password 2:Button 3:FgerPrint 4:QRCode 5:Card 6:Remote 7:BlueTooth 8:Fce 9:DTMF 10:QRCodeEx 11:CustomPassword
  13772. char szICKeyValue[2][32]; // 密钥数组
  13773. int nICKeyValueNum; // 密钥数量
  13774. BOOL bICKeyEnable; // 检验IC卡密码功能使能
  13775. BOOL bABLockInfo; /// 控制是否使用AB互锁信息扩展
  13776. CFG_ABLOCK_INFO_EX* pstuABLockInfoEx; /// AB互锁信息扩展,由用户申请内存,大小为sizeof(CFG_ABLOCK_INFO_EX)
  13777. char szReserved[696 - CFG_POINTERSIZE]; // 保留字节
  13778. }CFG_ACCESS_GENERAL_INFO;
  13779. ///@brief 门禁状态
  13780. typedef enum CFG_ACCESS_STATE
  13781. {
  13782. ACCESS_STATE_NORMAL, // 普通
  13783. ACCESS_STATE_CLOSEALWAYS, // 常关
  13784. ACCESS_STATE_OPENALWAYS, // 常开
  13785. // 常开常闭状态下,Opendoor开门无效.
  13786. ACCESS_STATE_NOPERSONNC, // 无人状态常闭
  13787. ACCESS_STATE_NOPERSONNO // 无人状态常开
  13788. }CFG_ACCESS_STATE;
  13789. ///@brief 门禁模式
  13790. typedef enum CFG_ACCESS_MODE
  13791. {
  13792. ACCESS_MODE_HANDPROTECTED, // 防夹模式
  13793. ACCESS_MODE_SAFEROOM, // 防护房间模式
  13794. ACCESS_MODE_OTHER, // 其它
  13795. }CFG_ACCESS_MODE;
  13796. ///@brief 分时段开门
  13797. typedef struct tagCFG_DOOROPEN_TIMESECTION_INFO
  13798. {
  13799. CFG_TIME_PERIOD stuTime; // 时间段
  13800. CFG_DOOR_OPEN_METHOD emDoorOpenMethod; // 开门模式
  13801. BOOL abOutDoorMethodEnable; // 是否支持使能出门开门方式
  13802. BOOL bOutDoorMethodEnable; // 是否使能出门开门方式(若使能,出门和进门模式可以分别配置)
  13803. UINT nOutDoorMethod; // 时间段内出门开门方式(bOutDoorMethodEnable为TRUE时有效)
  13804. char szReserved[36]; // 保留字段
  13805. }CFG_DOOROPEN_TIMESECTION_INFO;
  13806. #define MAX_DOOR_TIME_SECTION 4 // 门禁每天分时时间段最大个数
  13807. ///@brief 首卡权限验证通过后的门禁状态
  13808. typedef enum CFG_ACCESS_FIRSTENTER_STATUS
  13809. {
  13810. ACCESS_FIRSTENTER_STATUS_UNKNOWN, // 未知状态
  13811. ACCESS_FIRSTENTER_STATUS_KEEPOPEN, // KeepOpen-首卡权限验证通过后,门保持常开
  13812. ACCESS_FIRSTENTER_STATUS_NORMAL // Normal-首卡权限验证通过后,其他用户才能刷卡(信息等)验证通过
  13813. }CFG_ACCESS_FIRSTENTER_STATUS;
  13814. ///@brief 首卡开门信息
  13815. typedef struct tagCFG_ACCESS_FIRSTENTER_INFO
  13816. {
  13817. BOOL bEnable; // 在指定的时间,只有拥有首卡权限的用户验证通过后,其他的用户才能刷卡(信息等)进入,TRUE 使能 FALSE 关闭
  13818. CFG_ACCESS_FIRSTENTER_STATUS emStatus; // 首卡权限验证通过后的门禁状态
  13819. int nTimeIndex; // 需要首卡验证的时间段, 值为通道号
  13820. }CFG_ACCESS_FIRSTENTER_INFO;
  13821. ///@brief 首卡开门信息(拓展)与 CFG_ACCESS_FIRSTENTER_INFO 配合使用,是其拓展
  13822. typedef struct tagCFG_ACCESS_FIRSTENTER_INFO_EX
  13823. {
  13824. UINT nHolidayScheduleID; // 验证假日计划,需要首卡验证的假日计划
  13825. char szReserved[124]; // 预留字节
  13826. }CFG_ACCESS_FIRSTENTER_INFO_EX;
  13827. ///@brief 远程开门验证
  13828. typedef struct tagCFG_REMOTE_DETAIL_INFO
  13829. {
  13830. int nTimeOut; // 超时时间, 0表示永久等待, 其他值表示超时时间(单位为秒)
  13831. BOOL bTimeOutDoorStatus; // 超时后的门状态, TRUE:打开, FALSE:关闭
  13832. }CFG_REMOTE_DETAIL_INFO;
  13833. ///@brief TimeOut info for handicap
  13834. typedef struct tagCFG_HANDICAP_TIMEOUT_INFO
  13835. {
  13836. int nUnlockHoldInterval; // 门锁保持时间(自动关门时间),单位毫秒,[250, 60000]
  13837. int nCloseTimeout; // 关门超时时间, 超过阈值未关会触发报警,单位秒,[0,9999];0表示不检测超时
  13838. }CFG_HANDICAP_TIMEOUT_INFO;
  13839. ///@brief 开门远程验证
  13840. typedef struct tagCFG_AUTO_REMOTE_CHECK_INFO
  13841. {
  13842. BOOL bEnable; // 使能项, TRUE: 开启, FALSE: 关闭
  13843. int nTimeSechdule; // 对应CFG_CMD_ACCESSTIMESCHEDULE配置的通道号
  13844. }CFG_AUTO_REMOTE_CHECK_INFO;
  13845. ///@brief 开门远程验证扩展
  13846. typedef struct tagCFG_AUTO_REMOTE_CHECK_INFO_EX
  13847. {
  13848. UINT nHolidayScheduleID; // 远程验证假日计划, 需要远程验证的假日计划, 值为AccessHolidaySchedule索引
  13849. char szResvered[60]; // 保留字节
  13850. }CFG_AUTO_REMOTE_CHECK_INFO_EX;
  13851. ///@brief 门禁协议
  13852. typedef enum tagCFG_EM_ACCESS_PROTOCOL
  13853. {
  13854. CFG_EM_ACCESS_PROTOCOL_UNKNOWN, // 未知
  13855. CFG_EM_ACCESS_PROTOCOL_LOCAL, // 本机开关量控制
  13856. CFG_EM_ACCESS_PROTOCOL_SERIAL, // 串口协议
  13857. CFG_EM_ACCESS_PROTOCOL_REMOTE, // 门禁udp开锁
  13858. }CFG_EM_ACCESS_PROTOCOL;
  13859. ///@brief 串口协议下的具体协议功能
  13860. typedef enum tagCFG_EM_SERIAL_PROTOCOL_TYPE
  13861. {
  13862. CFG_EM_SERIAL_PROTOCOL_TYPE_UNKNOWN = -1, // 未知
  13863. CFG_EM_SERIAL_PROTOCOL_TYPE_UNUSED, // 未使用
  13864. CFG_EM_SERIAL_PROTOCOL_TYPE_DAHUA_ACCESS_485, // 门禁485
  13865. CFG_EM_SERIAL_PROTOCOL_TYPE_LADDER_CONTROL, // 梯控
  13866. CFG_EM_SERIAL_PROTOCOL_TYPE_REMOTE_READ_HEAD, // 远距离读头
  13867. }CFG_EM_SERIAL_PROTOCOL_TYPE;
  13868. ///@brief 门禁udp开锁信息
  13869. typedef struct tagCFG_ACCESS_CONTROL_UDP_INFO
  13870. {
  13871. char szAddress[CFG_MAX_ACCESS_CONTROL_ADDRESS_LEN]; // 地址
  13872. int nPort; // 端口
  13873. }CFG_ACCESS_CONTROL_UDP_INFO;
  13874. ///@brief 当前门采集状态
  13875. typedef enum tagEM_CFG_CARD_STATE
  13876. {
  13877. EM_CFG_CARD_STATE_UNKNOWN = -1, // 未知
  13878. EM_CFG_CARD_STATE_SWIPE, // 门禁刷卡
  13879. EM_CFG_CARD_STATE_COLLECTION, // 门禁采集卡
  13880. }EM_CFG_CARD_STATE;
  13881. ///@brief 自动远程出门
  13882. typedef struct tagNET_AUTO_REMOTE_OUT_DOOR_CHECK
  13883. {
  13884. BOOL bEnable; /// 使能项
  13885. UINT nTime; /// 自动远程出门时间段
  13886. UINT nHolidayScheduleID; /// 远程验证假日计划
  13887. char szReserved[60]; /// 预留字段
  13888. }NET_AUTO_REMOTE_OUT_DOOR_CHECK;
  13889. ///@brief 门禁事件配置
  13890. typedef struct tagCFG_ACCESS_EVENT_INFO
  13891. {
  13892. char szChannelName[MAX_NAME_LEN]; // 门禁通道名称
  13893. CFG_ACCESS_STATE emState; // 门禁状态
  13894. CFG_ACCESS_MODE emMode; // 门禁模式
  13895. int nEnableMode; // 门禁使能电平值, 0:低电平有效(断电启动); 1:高电平有效(通电启动);
  13896. BOOL bSnapshotEnable; // 事件联动抓图使能
  13897. // 能力
  13898. bool abDoorOpenMethod;
  13899. bool abUnlockHoldInterval;
  13900. bool abCloseTimeout;
  13901. bool abOpenAlwaysTimeIndex;
  13902. bool abCloseAlwaysTimeIndex;
  13903. bool abHolidayTimeIndex;
  13904. bool abBreakInAlarmEnable;
  13905. bool abRepeatEnterAlarmEnable;
  13906. bool abDoorNotClosedAlarmEnable;
  13907. bool abDuressAlarmEnable;
  13908. bool abDoorTimeSection;
  13909. bool abSensorEnable;
  13910. bool abFirstEnterEnable;
  13911. bool abRemoteCheck;
  13912. bool abRemoteDetail;
  13913. bool abHandicapTimeOut;
  13914. bool abCheckCloseSensor;
  13915. bool abAutoRemoteCheck;
  13916. bool abSpecialDaysOpenAlwaysTime; // 是否支持SpecialDaysOpenAlwaysTime字段
  13917. bool abSpecialDaysCloseAlwaysTime; // 是否支持SpecialDaysCloseAlwaysTime字段
  13918. CFG_DOOR_OPEN_METHOD emDoorOpenMethod; // 开门方式
  13919. int nUnlockHoldInterval; // 开锁NC/NO输出保持时间 单位毫秒 对讲[200, 20000]门禁[200, 600000]
  13920. int nCloseTimeout; // 关门超时时间, 超过阈值未关会触发报警,单位秒,[0,9999];0表示不检测超时
  13921. int nOpenAlwaysTimeIndex; // 常开时间段, 值为CFG_ACCESS_TIMESCHEDULE_INFO配置的数组下标
  13922. int nCloseAlwaysTimeIndex; // 常关时间段, 值为CFG_ACCESS_TIMESCHEDULE_INFO配置的数组下标
  13923. int nHolidayTimeRecoNo; // 假期内时间段, 值为假日记录集的记录编号,对应NET_RECORDSET_HOLIDAY的nRecNo
  13924. BOOL bBreakInAlarmEnable; // 闯入报警使能
  13925. BOOL bRepeatEnterAlarm; // 反潜报警使能
  13926. BOOL bDoorNotClosedAlarmEnable; // 门未关报警使能
  13927. BOOL bDuressAlarmEnable; // 胁迫报警使能
  13928. CFG_DOOROPEN_TIMESECTION_INFO stuDoorTimeSection[WEEK_DAY_NUM][MAX_DOOR_TIME_SECTION];// 分时段开门信息
  13929. BOOL bSensorEnable; // 门磁使能
  13930. CFG_ACCESS_FIRSTENTER_INFO stuFirstEnterInfo; // 首卡开门信息
  13931. BOOL bRemoteCheck; // 是否需要平台验证, TRUE表示权限通过后必须要平台验证后才能开门, FALSE表示权限验证通过后可立即开门
  13932. CFG_REMOTE_DETAIL_INFO stuRemoteDetail; // 与bRemoteCheck配合使用, 如果远端验证未应答, 设定的设备超时时间到后, 是正常开门还是不开门
  13933. CFG_HANDICAP_TIMEOUT_INFO stuHandicapTimeOut;
  13934. BOOL bCloseCheckSensor; // 闭锁前是否检测门磁
  13935. // true:则当开锁保持时间计时结束后,只有监测到有效门磁信号时,才可以恢复关闭锁的动作。
  13936. // 反之,如果开锁保持时间已到,但未检测到有效门磁信号,则一直保持开锁状态;
  13937. // false(默认):则直接按照设定的开锁保持时间进行开锁保持和恢复关闭的动作。
  13938. CFG_AUTO_REMOTE_CHECK_INFO stuAutoRemoteCheck; // 开门远程验证, 如果开启, 在该时间段内, 设备通过多人组合开门事件通知到平台确认是否可以开门
  13939. BOOL bLocalControlEnable; // 本地控制启用, TRUE 启用 FALSE 停用
  13940. BOOL bRemoteControlEnable; // 远程控制启用, TRUE 启用 FALSE 停用
  13941. int nSensorDelay; // 传感器输出延时,超过此时间判断有人, 单位:秒。 0~10
  13942. int nHumanStatusSensitivity; // 人状态变化检测灵敏度,在此时间内,判断有人 单位: 秒。 0~300
  13943. int nDetectSensitivity; // 传感器本身的检测灵敏度 单位:%, 0~100
  13944. BOOL bLockTongueEnable; // 锁舌使能
  13945. int nABLockRoute; // AB互锁路线与AB互锁的index对应;-1代表无效
  13946. int nDoorNotClosedReaderAlarmTime; // 门未关超时读卡器报警, 单位:秒
  13947. BOOL bEnable; // 使能项,此通道配置是否启用,TRUE为使能,FALSE为关闭
  13948. char szSN[CFG_MAX_SN_LEN]; // 无线设备序列号,只获取,不能设置
  13949. int nCloseDuration; // 门闭合时间,单位:秒
  13950. int nUnlockReloadInterval; // 开锁命令响应间隔时间,单位:毫秒
  13951. CFG_EM_ACCESS_PROTOCOL emAccessProtocol; // 门禁协议
  13952. CFG_EM_SERIAL_PROTOCOL_TYPE emProtocolType; // 串口协议下的具体协议功能,当emAccessProtocol为CFG_EM_ACCESS_PROTOCOL_SERIAL时有效
  13953. CFG_ACCESS_CONTROL_UDP_INFO stuAccessControlUdpInfo; // 门禁udp开锁信息,当emAccessProtocol为CFG_EM_ACCESS_PROTOCOL_REMOTE时有效
  13954. unsigned int nEntranceLockChannel; // 门禁控制器下的子通道,当emAccessProtocol为CFG_EM_ACCESS_PROTOCOL_REMOTE时有效
  13955. BOOL bSnapshotUpload; // 使能项,抓图是否上传,TRUE为抓图上传,FALSE为抓图不上传
  13956. unsigned int nSnapUploadPos; // 抓图上传地址,对应的是NAS配置项的下标,NAS配置为CFG_CMD_NASEX
  13957. BOOL bCustomPasswordEnable; // 是否启用个性化密码
  13958. int nRepeatEnterTime; // 重复进入时间,0~180秒,0表示不启用
  13959. int nCardNoConvert; // 卡号转换,0:不需要转换,1:字节取反,2:按HIDpro转换
  13960. BOOL bUnAuthorizedMaliciousSwipEnable; // 未授权恶意刷卡事件使能
  13961. BOOL bFakeLockedAlarmEnable; // 假锁报警使能
  13962. EM_CFG_CARD_STATE emReadCardState; // 当前门采集状态
  13963. BOOL bHelmetEnable; // 是否检测安全帽
  13964. UINT nSpecialDaysOpenAlwaysTime; // 门禁假日常开时间段,值为SpecialDaysSchedule索引
  13965. UINT nSpecialDaysCloseAlwaysTime; // 门禁假日常闭时间段,值为SpecialDaysSchedule索引
  13966. UINT nSensorType; // 门磁类型, 0: 未知, 1: 常开型门磁, 2: 常闭型门磁
  13967. CFG_AUTO_REMOTE_CHECK_INFO_EX stuAutoRemoteCheckEx; // 自动远程开门扩展信息
  13968. BOOL bIsSpecialDaysAuthenticationTimeValid; // 门禁假日正常鉴权时间段是否有效
  13969. UINT nSpecialDaysAuthenticationTime; // 门禁假日正常鉴权时间段,值为SpecialDaysSchedule索引.假日常开大于假日常闭大于假日鉴权大于普通常开大于普通常闭
  13970. BOOL bIsOpenDoorGroupTimeOutValid; // 多人组合验证超时时间是否有效
  13971. UINT nOpenDoorGroupTimeOut; // 多人组合验证超时时间,配套多人组合开门使用,单位:秒[10-60],默认20
  13972. CFG_ACCESS_FIRSTENTER_INFO_EX stuFirstEnterInfoEx; // 首卡开门信息(拓展),与stuFirstEnterInfo搭配使用
  13973. BOOL bIsDoorNotClosedReaderAlarmTypeValid; // 门未关超时报警联动读卡器蜂鸣类型是否有效
  13974. UINT nDoorNotClosedReaderAlarmType; // 门未关超时报警联动读卡器蜂鸣类型 ,0 : 报警后读卡器按照设定时长蜂鸣,时间到停止蜂鸣,1 : 报警后读卡器一直蜂鸣,直到门关上为止
  13975. BOOL bAutoRemoteHolidayScheduleIDUnenable; // 不下发远程验证假日计划字段,(仅下发有效)
  13976. BOOL bFirstEnterHolidayScheduleIDUnenable; // 不下发首卡验证假日计划字段,(仅下发有效)
  13977. BOOL abOutDoorMethodEnable; // 是否支持使能出门开门方式
  13978. BOOL bOutDoorMethodEnable; // 是否使能出门开门方式(若使能,出门和进门模式可以分别配置)
  13979. UINT nOutDoorMethod; // 时间段内出门开门方式(bOutDoorMethodEnable为TRUE时有效)
  13980. UINT nCardStoreFormat; // 设备卡片数据存储进制,1:十六进制,2:十位十进制,0时不下发该字段
  13981. UINT nRepeatCardEnterTime; /// 刷卡重复验证时间,卡片在该时间内无法重复刷第二次。0表示该字段功能不生效。
  13982. BOOL bAutoRemoteOutDoorCheck; /// 自动远程出门使能
  13983. NET_AUTO_REMOTE_OUT_DOOR_CHECK stuAutoRemoteOutDoorCheck; /// 自动远程出门
  13984. char szResvered[768]; // 保留字节
  13985. }CFG_ACCESS_EVENT_INFO;
  13986. ///@brief 门禁刷卡时间段,对此配置,通道号实际表示配置索引
  13987. typedef struct tagCFG_ACCESS_TIMESCHEDULE_INFO
  13988. {
  13989. CFG_TIME_SECTION stuTime[WEEK_DAY_NUM][MAX_DOOR_TIME_SECTION]; // 刷卡时间段
  13990. BOOL bEnable; // 时间段使能开关
  13991. char szName[CFG_COMMON_STRING_128]; // 自定义名称
  13992. int nTimeScheduleConsumptionTimes[7][4]; // 每个时间段可消费的次数
  13993. // 第一维:前7个元素代表每周7天,第8个元素对应节假日
  13994. // 7个元素中第一个是星期日,第二个是星期一,以此类推
  13995. // 第二维:每天最多6个时间段
  13996. // (设备只支持7*4,数组大小和stuTime保持一致)
  13997. int nConsumptionStrategyNums; // 消费策略的个数
  13998. char szConsumptionStrategy[42][34]; // 消费策略,每天最多6个时间段,每6个元素对应一天, 一共7天。
  13999. // 每个时段格式为"星期 时:分:秒-时:分:秒 消费类型 可消费次数 可消费金额"
  14000. // 星期从0开始,表示周日,前6个时段前面都是0,表示周日的6个时段,剩下依次周一,周二... 一共42个时段。
  14001. // 消费类型包括:0为定额消费,1为非定额消费;可消费次数最大上限200次;可消费金额最高999900,也就是9999元
  14002. BOOL bIsTimeExValid; // 是否使用stuTimeEx,为TRUE时stuTime字段无效,仅下发时使用,获取时stuTime与stuTimeEx均有效
  14003. CFG_TIME_SECTION stuTimeEx[7][6]; // 刷卡时间段(拓展)
  14004. BOOL bTimeScheduleConsumptionTimesEx; // nTimeScheduleConsumptionTimesEx字段是否有效
  14005. int nTimeScheduleConsumptionTimesEx[8][6]; // 每个时间段可消费的次数
  14006. // 第一维:前7个元素代表每周7天,第8个元素对应节假日
  14007. // 7个元素中第一个是星期日,第二个是星期一,以此类推
  14008. // 第二维:每天最多6个时间段
  14009. // (设备只支持7*4,数组大小和stuTime保持一致)
  14010. BOOL bIsTimeEx2Valid; // 是否使用stuTimeEx2,仅下发时使用,优先bIsTimeExValid,需要bIsTimeExValid置为FALSE
  14011. int nMaxTimeEx2Count; // 需要获取/设置的时间段数量,既用户分配并赋给pstuTimeEx2的CFG_TIME_SECTION 结构个数,下发时必须是10的倍数
  14012. int nRetTimeEx2Count; // 实际获取到的时间段数量,设置配置时此成员无意义
  14013. CFG_TIME_SECTION* pstuTimeEx2; // 刷卡时间段扩展2,由用户申请内存,大小为sizeof(CFG_TIME_SECTION)*nMaxTimeEx2Count
  14014. BOOL bIsUseCustomCount; /// 是否使用自定义下发设置的时间段数量,可以不是10的倍数,下发时设置
  14015. UINT nTimeScheduleCount[8]; /// 每天的时间段个数,最多10个,为0则不下发
  14016. char szReserved[780 - CFG_POINTERSIZE]; // 预留字节
  14017. }CFG_ACCESS_TIMESCHEDULE_INFO;
  14018. ///@brief 门禁开门事件段门状态配置 对此配置 通道号表示配置索引
  14019. typedef struct tagCFG_ACCESS_DOORSTATUS_INFO
  14020. {
  14021. int nDoorStatus[WEEK_DAY_NUM][MAX_DOOR_TIME_SECTION]; // 开门状态 0代表正常工作状态 1代表常闭 2代表常开
  14022. }CFG_ACCESS_DOORSTATUS_INFO;
  14023. ///@brief ////////////////////////////////////////////////////////////////////////
  14024. ///@brief 无线网络连接配置
  14025. ///@brief 每日流量控制策略
  14026. typedef enum EM_CFG_DAY3GFLUXTACTIC
  14027. {
  14028. EM_CFG_DAY3GFLUXTACTIC_BYFLUX = 0, // 按流量
  14029. EM_CFG_DAY3GFLUXTACTIC_BYTIME, // 按时间
  14030. }EM_CFG_DAY3GFLUXTACTIC;
  14031. ///@brief 接入的网络名称
  14032. typedef enum EM_CFG_APN
  14033. {
  14034. EM_CFG_APN_CTNET = 0, // 中国电信
  14035. EM_CFG_APN_CMNET, // 中国移动
  14036. EM_CFG_APN_UNINET, // 中国联通
  14037. }EM_CFG_APN;
  14038. ///@brief 流量报警策略
  14039. typedef enum EM_CFG_DAY3GFLUXACTION
  14040. {
  14041. EM_CFG_DAY3GFLUXACTION_NOTHING = 0, // 无动作
  14042. EM_CFG_DAY3GFLUXACTION_3GNETDOWN, // 3G下线
  14043. }EM_CFG_DAY3GFLUXACTION;
  14044. ///@brief 流量使用策略
  14045. typedef enum tagEM_CFG_3GFLUXTACTIC
  14046. {
  14047. EM_3GFLUXTACTIC_UNKNOWN = -1, // 未知类型
  14048. EM_3GFLUXTACTIC_BYFLUX, // 按月包流量
  14049. EM_3GFLUXTACTIC_BYTIME, // 按月包时长
  14050. }EM_CFG_3GFLUXTACTIC;
  14051. ///@brief 鉴权模式
  14052. typedef enum tagEM_CFG_AUTHMODE
  14053. {
  14054. EM_AUTHMODE_NO, // 不需要鉴权
  14055. EM_AUTHMODE_PAP, // PAP鉴权
  14056. EM_AUTHMODE_CHAP, // CHAP鉴权
  14057. }EM_CFG_AUTHMODE;
  14058. ///@brief 工作模式选择
  14059. typedef enum tagEM_CFG_WORKMODE
  14060. {
  14061. EM_WORKMODE_UNKNOWN = -1,
  14062. EM_WORKMODE_CDMA1X, // "CDMA1x"
  14063. EM_WORKMODE_EVDO, // "EVDO"
  14064. EM_WORKMODE_TDSCDMA, // "TD-SCDMA"
  14065. EM_WORKMODE_WCDMA, // "WCDMA"
  14066. EM_WORKMODE_EDGE, // "EDGE"
  14067. EM_WORKMODE_TDDLTE, // "TDD-LTE"
  14068. EM_WORKMODE_FDDLTE, // "FDD-LTE"
  14069. EM_WORKMODE_TDLTE, // "TD-LTE"
  14070. EM_WORKMODE_AUTO, // "Auto"
  14071. }EM_CFG_WORKMODE;
  14072. ///@brief 无线网络连接设置
  14073. typedef struct tagCFG_WIRELESS_INFO
  14074. {
  14075. BOOL bEnable; // 2G网络使能
  14076. int nKeepAlive; // 保活时间, 单位为秒,0表示一直连接,不自动断开
  14077. EM_CFG_APN emAPN; // 接入的2G网络名称
  14078. char szUseName[MAX_USERNAME_LEN]; // 用户名
  14079. char szPassword[MAX_PASSWORD_LEN]; // 密码
  14080. EM_CFG_DAY3GFLUXTACTIC emDay3GFluxTactic; // 每日流量控制策略
  14081. DWORD dwDay3GFluxUp; // 每日流量使用上限, MB或者分钟
  14082. DWORD dwDay3GFluxUse; // 当日的已用流量, MB或者分钟
  14083. EM_CFG_DAY3GFLUXACTION emDay3GFluxAction; // 流量报警策略
  14084. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 拨号时间段
  14085. EM_CFG_AUTHMODE emAuthMode; // 鉴权模式
  14086. char szAPNName[MAX_CFG_APN_NAME]; // 接入网络名
  14087. unsigned int n3GFlux; // 实际使用流量, [0,65535]MB或者分钟
  14088. EM_CFG_3GFLUXTACTIC em3GFluxTactic; // 流量使用策略
  14089. unsigned int n3GFluxUp; // 流量使用上限
  14090. EM_CFG_WORKMODE emWorkMode; // 工作模式选择
  14091. char szDailNumber[MAX_CFG_DAIL_NUMBER]; // 拨号号码
  14092. BOOL bActivate; // 是否已经被语音或短信激活
  14093. }CFG_WIRELESS_INFO;
  14094. #define MAX_CONNECTION_TYPE_LEN 32 // 连接方式的名字长度
  14095. ///@brief 登报时间类型
  14096. typedef enum emCFG_REPORTWEEKDAY
  14097. {
  14098. emReportWeekDay_DoNotReport = -1, // 不登报
  14099. emReportWeekDay_Sunday, // 每周日定时登报
  14100. emReportWeekDay_Monday, // 每周一定时登报
  14101. emReportWeekDay_Tuesday, // 每周二定时登报
  14102. emReportWeekDay_Wednesday, // 每周三定时登报
  14103. emReportWeekDay_Thursday, // 每周四定时登报
  14104. emReportWeekDay_Friday, // 每周五定时登报
  14105. emReportWeekDay_Saturday, // 每周六定时登报
  14106. emReportWeekDay_Everyday, // 每天定时登报
  14107. }emCFG_REPORTWEEKDAY;
  14108. ///@brief 报警服务器的配置
  14109. typedef struct tagCFG_ALARMSERVER_INFO
  14110. {
  14111. BOOL bEnable; // 使能
  14112. char szProtocol[MAX_PROTOCOL_NAME_LEN]; // 协议类型
  14113. char szConnection[MAX_CONNECTION_TYPE_LEN]; // 连接方式
  14114. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  14115. int nPort; // 端口号
  14116. char szUserName[MAX_USERNAME_LEN]; // 用户名
  14117. char szPsw[MAX_PASSWORD_LEN]; // 密码
  14118. emCFG_REPORTWEEKDAY emReportWeekDay; // 登报日
  14119. int nHour; // 登报时间点的时
  14120. int nMinute; // 登报时间点的分
  14121. int nSecond; // 登报时间点的秒
  14122. BOOL bMaxBufferSize; // nMaxBufferSize是否有效
  14123. UINT nMaxBufferSize; // 服务器断线时最大报警消息缓存数。 范围:[0, 2048], 0或者无此字段, 表示关闭断网续传功能。
  14124. }CFG_ALARMSERVER_INFO;
  14125. ///@brief 额外报警服务器配置信息
  14126. typedef struct tagCFG_MULTISERVER_INFO
  14127. {
  14128. char szAddress[128]; // IP地址
  14129. UINT nPort; // 端口号
  14130. bool abMaxBufferSize; // nMaxBufferSize是否有效
  14131. UINT nMaxBufferSize; // 服务器断线时最大报警消息缓存数。 范围:[0, 2048], 0或者无此字段, 表示关闭断网续传功能。
  14132. } CFG_MULTISERVER_INFO;
  14133. #define MAX_ALARMSERVER_NUM 8
  14134. ///@brief 报警主机使用的报警中心及备用中心的配置
  14135. typedef struct tagCFG_ALARMCENTER_INFO
  14136. {
  14137. CFG_ALARMSERVER_INFO stuMainServer; // 报警主机使用的报警中心服务器
  14138. int nBackupAlarmServerNum; // 备用报警中心服务器的数目
  14139. CFG_ALARMSERVER_INFO stuBackupAlarmServer[MAX_ALARMSERVER_NUM]; // 备用报警中心服务器的配置
  14140. int nMultiServerNum; // 额外报警服务器个数
  14141. CFG_MULTISERVER_INFO stuMultiServer[3]; // 额外报警服务器配置信息
  14142. }CFG_ALARMCENTER_INFO;
  14143. #define MAX_SCENE_COUNT 8 // 最大情景模式个数
  14144. ///@brief 情景模式
  14145. typedef enum tagemCFG_SCENE_MODE
  14146. {
  14147. emCFG_SCENE_MODE_UNKNOWN, // 未知模式
  14148. emCFG_SCENE_MODE_OUTDOOR, // 外出模式
  14149. emCFG_SCENE_MODE_INDOOR, // 在家模式
  14150. emCFG_SCENE_MODE_WHOLE , // 全局模式
  14151. emCFG_SCENE_MODE_RIGHTNOW, // 立即模式
  14152. emCFG_SCENE_MODE_AUTO, // 自动模式
  14153. emCFG_SCENE_MODE_FORCE, // 强制模式
  14154. emCFG_SCENE_MODE_SLEEPING, // 就寝模式
  14155. emCFG_SCENE_MODE_CUSTOM, // 自定义模式
  14156. }emCFG_SCENE_MODE;
  14157. ///@brief 情景模式定义
  14158. typedef struct tagCFG_SCENE_INFO
  14159. {
  14160. emCFG_SCENE_MODE emName; // 模式名
  14161. int nAlarmInChannelsCount; // 报警通道个数
  14162. int nRetAlarmInChannelsCount; // 实际返回的报警通道个数
  14163. int* pnAlarmInChannels; // 启用的报警输入通道号列表,需用户分配内存,大小为sizeof(int)*nAlarmInChannelsCount
  14164. }CFG_SCENE_INFO;
  14165. ///@brief 布防撤防配置, 对应命令(CFG_CMD_COMMGLOBAL)
  14166. ///@brief 产品型号不为AS5008时, 启用bSceneEnable和emCurrentScene, 不启用nSceneCount和stuScense[MAX_SCENE_COUNT]
  14167. ///@brief 产品型号为AS5008时, 不启用bSceneEnable和emCurrentScene, 启用nSceneCount和stuScense[MAX_SCENE_COUNT]
  14168. typedef struct tagCFG_COMMGLOBAL_INFO
  14169. {
  14170. BOOL bEnable; // TRUE: 布防; FALSE: 撤防; 作用于整台设备,不区分通道
  14171. BOOL bSceneEnable; // 是否启用情景模式
  14172. emCFG_SCENE_MODE emCurrentScene; // 当前选择的情景模式
  14173. int nSceneCount; // 情景模式有效个数
  14174. CFG_SCENE_INFO stuScense[MAX_SCENE_COUNT]; // 情景模式定义,每个模式对应一个配置
  14175. }CFG_COMMGLOBAL_INFO;
  14176. #define MAX_ALARM_LIMITS_NUM 8 // 报警限值最大个数
  14177. ///@brief 模拟量报警输入通道配置
  14178. typedef struct tagCFG_ANALOGALARM_INFO // =>CFG_CMD_ANALOGALARM
  14179. {
  14180. BOOL bEnable; // 使能开关(整台设备处于布防且该通道非使能时为旁路)
  14181. char szChnName[MAX_CHANNELNAME_LEN]; // 报警通道名称
  14182. float fUpperLimit; // 量程上限
  14183. float fLowerLimit; // 量程下限
  14184. int nSensitivity; // 灵敏度, 单位:百分比
  14185. float fCompensation; // 补偿值, 根据传感器类型而定
  14186. float fLimit1; // 报警限1, 不建议使用, 建议使用fAlarmLimits字段
  14187. float fLimit2; // 报警限2, 不建议使用, 建议使用fAlarmLimits字段
  14188. float fLimit3; // 报警限3, 不建议使用, 建议使用fAlarmLimits字段
  14189. float fLimit4; // 报警限4, 不建议使用, 建议使用fAlarmLimits字段
  14190. BYTE byMode; // 报警模式, 掩码表示, 可能如下值1111、1110、1100、1000、0000
  14191. // 1表示超过报警阈值,0表示低于报警阈值
  14192. // 模式从左到右分别对应4个报警阈值, 依次递增
  14193. // 例:1110表示超过第1、2、3个报警阈值, 并低于第4个报警阈值
  14194. BYTE byReserve[3]; // 保留字节
  14195. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  14196. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  14197. EM_SENSE_METHOD emSense; // 传感器方式
  14198. char szSensorType[CFG_COMMON_STRING_64]; // 传感器类型
  14199. int nSlot; // 根地址, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推, -1表示无效
  14200. int nLevel1; // 第一级级联地址, 表示连接在第nSlot串口上的第nLevel1个探测器或仪表, 从0开始, -1表示无效
  14201. bool abLevel2; // 表示nLevel2字段是否存在
  14202. int nLevel2; // 第二级级联地址, 表示连接在第nLevel1个的仪表上的探测器序号, 从0开始
  14203. int nAlamrLimits; // 有效的报警限值个数
  14204. float fAlarmLimits[MAX_ALARM_LIMITS_NUM]; // 报警限值
  14205. int nNotifyInterval; // 模拟量上传周期, 单位: 秒
  14206. int nAlarmInterval; // 触发上下限后的上传周期, 单位: 秒
  14207. }CFG_ANALOGALARM_INFO;
  14208. ///@brief 输出有效模式
  14209. typedef enum tagEM_ALARMOUT_POLE
  14210. {
  14211. EM_ALARMOUT_POLE_UNKNOWN, // 未知
  14212. EM_ALARMOUT_POLE_LOW, // 低电平有效
  14213. EM_ALARMOUT_POLE_HIGH, // 高电平有效
  14214. } EM_ALARMOUT_POLE;
  14215. ///@brief 报警输出时间段控制
  14216. typedef struct tagNET_ALARMOUT_TIME_SCHEDULE_INFO
  14217. {
  14218. BOOL bEnable; /// 分时段报警输出使能
  14219. char szReserved[1020]; /// 预留字节
  14220. }NET_ALARMOUT_TIME_SCHEDULE_INFO;
  14221. ///@brief 报警输出通道的状态的配置
  14222. typedef struct tagCFG_ALARMOUT_INFO // =>CFG_CMD_ALARMOUT
  14223. {
  14224. int nChannelID; // 报警通道号(0开始)
  14225. char szChnName[MAX_CHANNELNAME_LEN]; // 报警通道名称
  14226. char szOutputType[MAX_NAME_LEN]; // 输出类型, 用户自定义
  14227. int nOutputMode; // 输出模式, 0-自动报警, 1-强制报警, 2-关闭报警, 3- 开关模式
  14228. int nPulseDelay; // 脉冲模式输出时间, 单位为秒(0-255秒)
  14229. int nSlot; // 根地址, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推, -1表示无效
  14230. int nLevel1; // 第一级级联地址, 表示连接在第nSlot串口上的第nLevel1个探测器或仪表, 从0开始, -1表示无效
  14231. bool abLevel2; // 表示nLevel2字段是否存在
  14232. int nLevel2; // 第二级级联地址, 表示连接在第nLevel1个的仪表上的探测器序号, 从0开始
  14233. EM_ALARMOUT_POLE emPole; // 输出有效模式
  14234. NET_ALARMOUT_TIME_SCHEDULE_INFO stuTimeSchedule; // 报警输出时间段控制信息
  14235. char szReserved[1024]; // 预留字节
  14236. }CFG_ALARMOUT_INFO;
  14237. ///@brief 时区定义(NTP)
  14238. typedef enum __EM_CFG_TIME_ZONE_TYPE
  14239. {
  14240. EM_CFG_TIME_ZONE_0, // (0, 0*3600,"GMT+00:00")
  14241. EM_CFG_TIME_ZONE_1, // (1, 1*3600,"GMT+01:00")
  14242. EM_CFG_TIME_ZONE_2, // (2, 2*3600,"GMT+02:00")
  14243. EM_CFG_TIME_ZONE_3, // (3, 3*3600,"GMT+03:00")
  14244. EM_CFG_TIME_ZONE_4, // (4, 3*3600+1800,"GMT+03:30")
  14245. EM_CFG_TIME_ZONE_5, // (5, 4*3600,"GMT+04:00")
  14246. EM_CFG_TIME_ZONE_6, // (6, 4*3600+1800,"GMT+04:30")
  14247. EM_CFG_TIME_ZONE_7, // (7, 5*3600,"GMT+05:00")
  14248. EM_CFG_TIME_ZONE_8, // (8, 5*3600+1800,"GMT+05:30")
  14249. EM_CFG_TIME_ZONE_9, // (9, 5*3600+1800+900,"GMT+05:45")
  14250. EM_CFG_TIME_ZONE_10, // (10, 6*3600,"GMT+06:00")
  14251. EM_CFG_TIME_ZONE_11, // (11, 6*3600+1800,"GMT+06:30")
  14252. EM_CFG_TIME_ZONE_12, // (12, 7*3600,"GMT+07:00")
  14253. EM_CFG_TIME_ZONE_13, // (13, 8*3600,"GMT+08:00")
  14254. EM_CFG_TIME_ZONE_14, // (14, 9*3600,"GMT+09:00")
  14255. EM_CFG_TIME_ZONE_15, // (15, 9*3600+1800,"GMT+09:30")
  14256. EM_CFG_TIME_ZONE_16, // (16, 10*3600,"GMT+10:00")
  14257. EM_CFG_TIME_ZONE_17, // (17, 11*3600,"GMT+11:00")
  14258. EM_CFG_TIME_ZONE_18, // (18, 12*3600,"GMT+12:00")
  14259. EM_CFG_TIME_ZONE_19, // (19, 13*3600,"GMT+13:00")
  14260. EM_CFG_TIME_ZONE_20, // (20, -1*3600,"GMT-01:00")
  14261. EM_CFG_TIME_ZONE_21, // (21, -2*3600,"GMT-02:00")
  14262. EM_CFG_TIME_ZONE_22, // (22, -3*3600,"GMT-03:00")
  14263. EM_CFG_TIME_ZONE_23, // (23, -3*3600-1800,"GMT-03:30")
  14264. EM_CFG_TIME_ZONE_24, // (24, -4*3600,"GMT-04:00")
  14265. EM_CFG_TIME_ZONE_25, // (25, -5*3600,"GMT-05:00")
  14266. EM_CFG_TIME_ZONE_26, // (26, -6*3600,"GMT-06:00")
  14267. EM_CFG_TIME_ZONE_27, // (27, -7*3600,"GMT-07:00")
  14268. EM_CFG_TIME_ZONE_28, // (28, -8*3600,"GMT-08:00")
  14269. EM_CFG_TIME_ZONE_29, // (29, -9*3600,"GMT-09:00")
  14270. EM_CFG_TIME_ZONE_30, // (30, -10*3600,"GMT-10:00")
  14271. EM_CFG_TIME_ZONE_31, // (31, -11*3600,"GMT-11:00")
  14272. EM_CFG_TIME_ZONE_32, // (32, -12*3600,"GMT-12:00")
  14273. EM_CFG_TIME_ZONE_33, // (33, -4*3600-1800,"GMT-4:30")
  14274. EM_CFG_TIME_ZONE_34, // (34, 10.5*3600,"GMT+10:30")
  14275. EM_CFG_TIME_ZONE_35, // (35, 14*3600, "GMT+14:00")
  14276. EM_CFG_TIME_ZONE_36, // (36, -9*3600-1800,"GMT-09:30")
  14277. EM_CFG_TIME_ZONE_37, // (37, 8*3600+1800,"GMT+08:30")
  14278. EM_CFG_TIME_ZONE_38, // (38, 8*3600+2700,"GMT+08:45")
  14279. EM_CFG_TIME_ZONE_39, // (39, 12*3600+2700,"GMT+12:45")
  14280. }EM_CFG_TIME_ZONE_TYPE;
  14281. ///@brief NTP服务器
  14282. typedef struct tagCFG_NTP_SERVER
  14283. {
  14284. BOOL bEnable;
  14285. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  14286. int nPort; // 端口号
  14287. }CFG_NTP_SERVER;
  14288. ///@brief 时间同步服务器配置
  14289. typedef struct tagCFG_NTP_INFO
  14290. {
  14291. BOOL bEnable; // 使能开关
  14292. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  14293. int nPort; // 端口号
  14294. int nUpdatePeriod; // 更新周期,单位为分钟
  14295. EM_CFG_TIME_ZONE_TYPE emTimeZoneType; // 时区
  14296. char szTimeZoneDesc[MAX_NAME_LEN]; // 时区描述
  14297. int nSandbyServerNum; // 实际备用NTP服务器个数
  14298. CFG_NTP_SERVER stuStandbyServer[MAX_NTP_SERVER]; // 备选NTP服务器地址
  14299. int nTolerance; // (机器人使用)表示设置的时间和当前时间的容差,单位为秒,如果设置的时间和当前的时间在容差范围内,则不更新当前时间。0 表示每次都修改。
  14300. }CFG_NTP_INFO;
  14301. ///@brief 警号配置
  14302. typedef struct tagCFG_ALARMBELL_INFO
  14303. {
  14304. int nPersistentTime; // 警号输出持续时间, 单位: 分钟(0-99), 0 表示响一下就停止
  14305. BOOL bEnable; // 是否启用警号输出
  14306. }CFG_ALARMBELL_INFO;
  14307. #define MAX_MSG_NUMBER_LEN 32 // 短信号码的最大长度
  14308. #define MAX_RECEIVER_NUM 100 // 接收短信用户的最大数目
  14309. #define MAX_CALLER_NUM 100 // 拨号允许名单最大数目
  14310. ///@brief 短信类型
  14311. typedef enum tagEM_MSG_TYPE
  14312. {
  14313. EM_MSG_UNKNOWN = 0, // 未知类型
  14314. EM_MSG_SMS, // SMS短信
  14315. EM_MSG_MMS, // MMS彩信
  14316. }EM_MSG_TYPE;
  14317. ///@brief 系统事件触发彩信/短信发送的配置
  14318. typedef struct tagCFG_EVENT_MSG_SENDING_INFO
  14319. {
  14320. BOOL bEnable; // 使能开关
  14321. EM_MSG_TYPE emMsgType; // 发送的信息的类型
  14322. char szTitle[MAX_NAME_LEN]; // 标题, 也就是短信/彩信的第一行文字
  14323. DWORD dwReceiverCount; // 收信人号码的个数
  14324. char szReceiverNumbersList[MAX_RECEIVER_NUM][MAX_MSG_NUMBER_LEN];// 收信人号码
  14325. }CFG_EVENT_MSG_SENDING_INFO;
  14326. ///@brief 激活模式
  14327. typedef enum tagEM_ACTIVATION_MODE
  14328. {
  14329. EM_ACTIVATION_UNKNOWN = 0, // 未知模式
  14330. EM_ACTIVATION_NORMAL, // 与wireless配置中TimeSection时间互斥,默认值
  14331. EM_ACTIVATION_AllTIME, // 全时间段
  14332. }EM_ACTIVATION_MODE;
  14333. ///@brief 拨号规则
  14334. typedef enum tagEM_RULE_MODE
  14335. {
  14336. EM_RULE_UNKNOW = 0, // 未知规则 EM_RULE_UNKNOWN已被使用
  14337. EM_RULE_ONCE, // 只要有拨打并接通的电话就停止继续拨打后面的号码
  14338. EM_RULE_ALL, // 把所有号码按顺序全部拨打一遍,不管接通与否
  14339. }EM_RULE_MODE;
  14340. ///@brief 拨号激活无线连接配置
  14341. typedef struct tagCFG_DIAL_INACTIVATION_INFO
  14342. {
  14343. BOOL bEnable; // 使能开关
  14344. char szCallerNumbersList[MAX_CALLER_NUM][16]; // 拨号允许名单是一个数组,每个是有效的通讯号码
  14345. DWORD dwCallerCount; // 拨号允许名单的个数
  14346. EM_ACTIVATION_MODE emActivationMode; // 设置激活模式
  14347. EM_RULE_MODE emRuleMode; // 设置拨号规则
  14348. BYTE byReserved[256]; // 预留字段
  14349. }CFG_DIAL_INACTIVATION_INFO;
  14350. ///@brief 移动相关业务配置
  14351. typedef struct tagCFG_MOBILE_INFO
  14352. {
  14353. CFG_EVENT_MSG_SENDING_INFO stuEventMsgSending; // 系统时间触发的发送短信/彩信的配置
  14354. CFG_DIAL_INACTIVATION_INFO stuDialInActivation; // 拨号激活无线连接配置
  14355. }CFG_MOBILE_INFO;
  14356. #define MAX_CONTACT_NUM 100 // 联系人最大数目
  14357. ///@brief 电话语音提醒配置
  14358. typedef struct tagCFG_PHONEEVENTNOTIFY_INFO
  14359. {
  14360. BOOL bEnable; // 使能开关
  14361. DWORD dwContactCount; // 呼叫号码的个数
  14362. char szContactNumbersList[MAX_CONTACT_NUM][MAX_MSG_NUMBER_LEN];// 呼叫号码列表
  14363. }CFG_PHONEEVENTNOTIFY_INFO;
  14364. ///@brief 电话报警中心配置
  14365. typedef enum CFG_EM_SIGNALTRANSMIT_MODE
  14366. {
  14367. CFG_EM_SIGNALTRANSMIT_ERROR = 0, // 未知模式
  14368. CFG_EM_SIGNALTRANSMIT_DTMF_5S, // "DTMF 5/S" - DTMF模式慢拨
  14369. CFG_EM_SIGNALTRANSMIT_DTMF_10S, // "DTMF 10/S" - DTMF模式快拨
  14370. }CFG_EM_SIGNALTRANSMIT_MODE;
  14371. ///@brief 协议类型
  14372. typedef enum CFG_EM_PSTN_PROTOCOL_TYPE
  14373. {
  14374. CFG_EM_PSTN_PROTOCOL_ERROR = 0, // 未知类型
  14375. CFG_EM_PSTN_PROTOCOL_CID, // "CID" - Contact ID Protocol
  14376. }CFG_EM_PSTN_PROTOCOL_TYPE;
  14377. ///@brief 电话报警服务器
  14378. typedef struct tagCFG_PSTN_ALARM_SERVER_INFO
  14379. {
  14380. char szName[MAX_NAME_LEN]; // 电话报警中心名称
  14381. char szNumber[MAX_PHONE_NUMBER_LEN]; // 电话报警中心接收机号码
  14382. // "057188888888PPP888",格式为[号码][停顿时间][分机号码],其中P表示停顿2秒。
  14383. CFG_EM_PSTN_PROTOCOL_TYPE emProtocol; // 协议类型,
  14384. CFG_EM_SIGNALTRANSMIT_MODE emMode; // 信号传输模式
  14385. int nTryCount; // 拨号尝试次数
  14386. int nDelay; // 拨号延时,单位:秒
  14387. char szAccount[MAX_PHONE_NUMBER_LEN]; // 用户号码
  14388. }CFG_PSTN_ALARM_SERVER_INFO;
  14389. ///@brief 事件上报优先级
  14390. typedef enum tagCFG_EM_PSTN_ALARM_CENTER_RULE
  14391. {
  14392. CFG_EM_PSTN_ALARM_CENTER_UNKNOWN, // 未知
  14393. CFG_EM_PSTN_ALARM_CENTER_NONE, // 不上报
  14394. CFG_EM_PSTN_ALARM_CENTER_REGULARTEL, // 电话中心1
  14395. CFG_EM_PSTN_ALARM_CENTER_SPLITTEL, // 先电话中心1,失败电话中心2
  14396. CFG_EM_PSTN_ALARM_CENTER_DOUBLETEL, // 电话中心1、2同时拨打
  14397. CFG_EM_PSTN_ALARM_CENTER_REGULARIP, // 网路中心1
  14398. CFG_EM_PSTN_ALARM_CENTER_SPLITIP, // 先网络中心1,失败网络中心2
  14399. CFG_EM_PSTN_ALARM_CENTER_DOUBLEIP, // 网络中心1、2同时上报
  14400. CFG_EM_PSTN_ALARM_CENTER_DOUBLEMIX, // 网络中心1和电话中心1
  14401. CFG_EM_PSTN_ALARM_CENTER_IPTOTEL, // 先网络中心1,失败电话中心1
  14402. CFG_EM_PSTN_ALARM_CENTER_TELTOIP // 先电话中心,失败网络中心
  14403. }CFG_EM_PSTN_ALARM_CENTER_RULE;
  14404. ///@brief 电话报警中心配置
  14405. typedef struct tagCFG_PSTN_ALARM_CENTER_INFO
  14406. {
  14407. BOOL bEnable; // 使能开关
  14408. int nServerCount; // 电话报警服务器个数
  14409. CFG_PSTN_ALARM_SERVER_INFO stuPSTNAlarmServer[MAX_PSTN_SERVER_NUM]; // 电话报警服务器
  14410. CFG_EM_PSTN_ALARM_CENTER_RULE emRule; // 事件上报优先级
  14411. }CFG_PSTN_ALARM_CENTER_INFO;
  14412. ///@brief 音量输入配置
  14413. typedef struct tagCFG_AUDIO_INPUT_VOLUME
  14414. {
  14415. int nAudioInputCount; // 实际音频输入通道个数
  14416. char szAudioInputVolume[MAX_AUDIO_INPUT_NUM]; // 每个元素对应一个音频输入通道的音量值,范围[0, 100]
  14417. }CFG_AUDIO_INPUT_VOLUME;
  14418. ///@brief 音量输出配置
  14419. typedef struct tagCFG_AUDIO_OUTPUT_VOLUME
  14420. {
  14421. int nAudioOutputCount; // 实际音频输出通道个数
  14422. char szAudioOutputVolume[MAX_AUDIO_OUTPUT_NUM]; // 每个元素对应一个音频输出通道的音量值,范围[0, 100]
  14423. }CFG_AUDIO_OUTPUT_VOLUME;
  14424. ///@brief 指示灯控制配置
  14425. typedef struct tagCFG_LIGHT_GLOBAL
  14426. {
  14427. int nLightGlobalCount; // 指示灯数量
  14428. BOOL bLightEnable[MAX_LIGHT_GLOBAL_NUM]; // 指示灯开关状态数组
  14429. }CFG_LIGHT_GLOBAL;
  14430. ///@brief 混合音频音量配置
  14431. typedef struct tagCFG_AUDIO_MIX_VOLUME
  14432. {
  14433. int nAudioMixCount; // 实际混合音频通道个数
  14434. char szAudioMixVolume[MAX_AUDIO_MIX_NUM]; // 每个元素对应一个专用的音频混音通道的音量值,范围[0, 100]
  14435. }CFG_AUDIO_MIX_VOLUME;
  14436. ///@brief 报警键盘配置
  14437. typedef struct tagCFG_ALARMKEYBOARD_INFO
  14438. {
  14439. BOOL bEnable; // 使能开关
  14440. char szProtocolName[MAX_PROTOCOL_NAME_LEN]; // 协议名称
  14441. int nPort; // 使用的串口端口号
  14442. int nAddress; // 设备地址,如果串口上挂了多个串口设备,通过这个地址区分
  14443. CFG_COMM_PROP stuCommAttr; // 串口属性
  14444. }CFG_ALARMKEYBOARD_INFO;
  14445. ///@brief 获取文件管理能力
  14446. typedef struct tagCFG_CAP_FILEMANAGER
  14447. {
  14448. int nMaxUploadFileSize; // 最大的上传文件的大小, 单位: 字节
  14449. }CFG_CAP_FILEMANAGER;
  14450. ///@brief 录像延时配置信息
  14451. typedef struct tagCFG_RECORD_LATCH
  14452. {
  14453. BOOL bEnable; // 表示有无此项,true表示有此项,false表示无此项
  14454. int nRecordLatchMin; // 录像延时最小值
  14455. int nRecordLatchMax; // 录像延时最大值
  14456. } CFG_RECORD_LATCH;
  14457. ///@brief 报警输出延时配置信息
  14458. typedef struct tagCFG_ALARMOUT_LATCH
  14459. {
  14460. BOOL bEnable; // 表示有无此项,true表示有此项,false表示无此项
  14461. int nAlarmOutLatchMin; // 报警输出延时最小值
  14462. int nAlarmOutLatchMax; // 报警输出延时最大值
  14463. } CFG_ALARMOUT_LATCH;
  14464. ///@brief 去抖动配置信息
  14465. typedef struct tagCFG_DEJITTER_RANGE
  14466. {
  14467. BOOL bEnable; // 表示有无此项,true表示有此项,false表示无此项
  14468. int nDejitterMin; // 去抖动最小允许值
  14469. int nDejitterMax; // 去抖动最大允许值
  14470. } CFG_DEJITTER_RANGE;
  14471. ///@brief 获取设备报警联动能力
  14472. typedef struct tagCFG_CAP_EVENTMANAGER_INFO
  14473. {
  14474. BOOL bTimeSectionEnable; // 是否支持时间事件响应
  14475. BOOL bRecordEnable; // 是否支持录像
  14476. BOOL bAlarmOutEnable; // 是否支持报警输出
  14477. BOOL bPtzLinkEnable; // 是否支持云台联动
  14478. BOOL bSnapshotEnable; // 是否支持快照
  14479. BOOL bMailEnable; // 是否支持发送邮件
  14480. BOOL bBeepEnable; // 是否支持蜂鸣
  14481. BOOL bDejitterEnable; // 是否支持去抖动
  14482. BOOL bTipEnable; // 是否支持本地消息框提示
  14483. BOOL bMonitorTourEnable; // 是否支持轮询联动配置
  14484. BOOL bMMSEnable; // 是否支持短消息
  14485. BOOL bSupportAlarmBell; // 是否支持警号输出
  14486. BOOL bSupportAccessControl; // 是否支持门禁控制
  14487. BOOL bSupportAlarmServer; // 是否支持上传至报警服务器
  14488. BOOL bSupportPtzLinkDelay; // 是否支持云台联动延迟
  14489. BOOL bSupportPSTNAlarmServer; // 是否支持上传至电话报警中心
  14490. BOOL bVoiceEnable; // 是否支持语音播报提示
  14491. BOOL bLogEnable; // 是否支持联动日志
  14492. CFG_RECORD_LATCH stuRecordLatch; // 录像延时信息
  14493. CFG_ALARMOUT_LATCH stuAlarmOutLatch; // 报警输出延时信息
  14494. CFG_DEJITTER_RANGE stuDejitterRange; // 去抖动信息
  14495. DWORD nSupportDisableLinkage; // 支持哪些联动项一键撤防
  14496. // bit0表示支持撤防蜂鸣
  14497. // bit1表示支持撤防本地提示
  14498. // bit2表示支持撤防报警输出
  14499. // bit3表示支持撤防邮件
  14500. // bit4表示支持撤防报警上传
  14501. // bit5表示支持撤防声音输出
  14502. // bit6表示支持撤防白光灯输出
  14503. DWORD nSupportDisableLinkageTimeSection; // 支持周期撤防
  14504. // bit0表示支持周期撤防
  14505. int nSupportDelayUploadSeqFileEventsNum; // 支持先报警后延时上传文件的事件个数
  14506. char szSupportDelayUploadSeqFileEvents[32][32]; // 支持先报警后延时上传文件的事件集合
  14507. BOOL bSupportTransferOfflineACK; // 是否支持事件ack续传
  14508. BOOL bSupportReEnableLinkage; // 是否支持一键撤防后自动布防EventHandlerParam
  14509. char szResvered[1016]; // 保留字节
  14510. }CFG_CAP_EVENTMANAGER_INFO;
  14511. ///@brief 电源故障配置
  14512. typedef struct tagCFG_POWERFAULT_ONE
  14513. {
  14514. BOOL bEnable; // 使能开关
  14515. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  14516. int nDetectionPeriod; // 电源故障检测周期 单位秒
  14517. BOOL bEncodeBlend; // 是否叠加OSD报警图标
  14518. CFG_RECT stuPosition; // 位置
  14519. }CFG_POWERFAULT_ONE;
  14520. ///@brief 电源故障配置
  14521. typedef struct tagCFG_POWERFAULT_INFO
  14522. {
  14523. int nPowerCount; // 电源个数
  14524. CFG_POWERFAULT_ONE stuPowerFault[MAX_POWER_NUM]; // 报警联动
  14525. }CFG_POWERFAULT_INFO;
  14526. ///@brief 机箱入侵报警(防拆报警)配置
  14527. typedef struct tagCFG_CHASSISINTRUSION_INFO
  14528. {
  14529. BOOL bEnable; // 使能开关
  14530. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  14531. }CFG_CHASSISINTRUSION_INFO;
  14532. ///@brief 紧急事件配置
  14533. typedef struct tagCFG_URGENCY_INFO
  14534. {
  14535. BOOL bEnable; // 使能开关
  14536. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  14537. }CFG_URGENCY_INFO;
  14538. /************************************************************************
  14539. ** 扩展报警模块
  14540. ***********************************************************************/
  14541. ///@brief 扩展模块报警输入配置
  14542. typedef struct tagCFG_EXALARMINPUT_INFO
  14543. {
  14544. CFG_ALARMIN_INFO stuAlarmIn; // 报警输入参数,详见 CFG_ALARMIN_INFO
  14545. }CFG_EXALARMINPUT_INFO;
  14546. ///@brief 扩展模块报警输出配置
  14547. typedef struct tagCFG_EXALARMOUTPUT_INFO
  14548. {
  14549. char szChnName[MAX_CHANNELNAME_LEN]; // 报警通道名称
  14550. int nOutputMode; // 输出模式, 0-自动报警, 1-强制报警, 2-关闭报警
  14551. }CFG_EXALARMOUTPUT_INFO;
  14552. ///@brief 扩展模块报警盒配置
  14553. typedef struct tagCFG_EXALARMBOX_INFO
  14554. {
  14555. BOOL bEnable; // 使能开关
  14556. char szProtocolName[MAX_PROTOCOL_NAME_LEN]; // 协议名称
  14557. int nPort; // 使用的串口端口号
  14558. int nAddress; // 设备地址
  14559. CFG_COMM_PROP stuCommAttr; // 串口属性
  14560. }CFG_EXALARMBOX_INFO;
  14561. ///@brief 扩展报警盒协议类型
  14562. typedef enum CFG_EM_EXALARM_PROTOCOL_TYPE
  14563. {
  14564. CFG_EM_EXALARM_PROTOCOL_ERROR, // 未知类型
  14565. CFG_EM_EXALARM_PROTOCOL_DH_ALARMBOX, // DH_AlarmBox 报警盒协议
  14566. }CFG_EM_EXALARM_PROTOCOL_TYPE;
  14567. ///@brief 扩展模块报警能力集
  14568. typedef struct tagCFG_CAP_EXALARM_INFO
  14569. {
  14570. int nAlarmInCount; // 扩展报警模块输入个数
  14571. int nAlarmOutCount; // 扩展报警模块速出个数
  14572. int nMaxDelay; // 延时防区的最大延时时间,单位为秒,只有支持延时防区时此字段才有效。
  14573. int nDefenceAreaTypeNum; // 防区类型种类数,为0表示无此字段时报警输入不作为防区使用。
  14574. EM_CFG_DEFENCEAREATYPE emDefenceAreaType[MAX_ALARM_DEFENCE_TYPE_NUM]; // 支持防区类型
  14575. int nExAlarmChannelNum; // 扩展模块报警通道数,为了保持兼容性,此为0时表示每个通道支持所有类型的传感器
  14576. CFG_EXALARM_SENSE_METHOD stuExAlarmChannel[MAX_EXALARM_CHANNEL_NUM]; // 报警通道集合
  14577. int nProtocolNum; // 支持的协议种类
  14578. CFG_EM_EXALARM_PROTOCOL_TYPE emProtocolType[MAX_EXALARMBOX_PROTOCOL_NUM]; // 扩展报警模块报警盒支持的协议类型
  14579. }CAP_EXALARM_INFO;
  14580. ///@brief 扩展模块报警盒能力集
  14581. typedef struct tagCFG_CAP_EXALARMBOX_INFO
  14582. {
  14583. int nAlarmInCount; // 扩展报警模块输入个数
  14584. int nAlarmOutCount; // 扩展报警模块输出个数
  14585. }CFG_CAP_EXALARMBOX_INFO;
  14586. ///@brief 查询记录能力集能力集
  14587. typedef struct tagCFG_CAP_RECORDFINDER_INFO
  14588. {
  14589. int nMaxPageSize; // 最大分页条数
  14590. BOOL bSupportRealUTC; // 查询表是否支持按真实UTC时间作为条件查询
  14591. }CFG_CAP_RECORDFINDER_INFO;
  14592. ///@brief 传感器采样 ==>CFG_CMD_SENSORSAMPLING
  14593. typedef struct tagCFG_SENSORSAMPLING_INFO
  14594. {
  14595. int nDetectionPeriod; // 检查周期, 单位:秒,按检测周期实时上传温度状态
  14596. int nStorageItem; // 存储信息量, 单位:条数,设备本地以写文件方式,可导出(0~5000)
  14597. }CFG_SENSORSAMPLING_INFO;
  14598. ///@brief 环网 ==>CFG_CMD_STP
  14599. typedef struct tagCFG_STP_INFO
  14600. {
  14601. BOOL bEnable; // 使能
  14602. }CFG_STP_INFO;
  14603. #define DH_MAX_ZONE_NUM (256) // 最大防区数目
  14604. #define DH_MAX_PUBLIC_SUBSYSTEM_NUM (256) // 最大公共子系统数目
  14605. ///@brief 报警联动
  14606. typedef struct tagCFG_ALARM_SUBSYSTEM_MSG_HANDLE
  14607. {
  14608. BOOL bAlarmOutEnable; // 报警输出使能
  14609. BOOL bAlarmBellEnable; // 警号输出使能
  14610. int nAlarmOutChannelNum; // 报警输出通道号个数
  14611. int nAlarmOutChannels[256]; // 报警输出通道号列表
  14612. }CFG_ALARM_SUBSYSTEM_MSG_HANDLE;
  14613. ///@brief 报警子系统配置 ==>CFG_CMD_ALARM_SUBSYSTEM
  14614. typedef struct tagCFG_ALARM_SUBSYSTEM_INFO
  14615. {
  14616. char szName[CFG_COMMON_STRING_128]; // 名称
  14617. int nZoneNum; // 本地防区数目
  14618. int anZone[DH_MAX_ZONE_NUM]; // 本地防区号
  14619. int nExZoneNum; // 扩展防区数目
  14620. int anExZone[DH_MAX_ZONE_NUM]; // 扩展防区号
  14621. int nDisableDelay; // 延时撤防时间(进入延时), 单位为秒
  14622. int nEnableDelay; // 延时布防时间(退出延时), 单位为秒
  14623. BOOL bIsPublic; // 是否为公共子系统
  14624. int nPublicSubSystem; // 公共所属的子系统数目
  14625. int anPublicSubSystem[DH_MAX_PUBLIC_SUBSYSTEM_NUM];// 公共所属的关联子系统
  14626. CFG_ALARM_SUBSYSTEM_MSG_HANDLE stuEventHandler; // 报警联动
  14627. BOOL bEnable; // 是否启用子系统
  14628. }CFG_ALARM_SUBSYSTEM_INFO;
  14629. ///@brief 电量报警模式
  14630. typedef enum tagEM_BATTERY_POWER_ALARM_MODE
  14631. {
  14632. EM_BATTERY_POWER_ALARM_MODE_UNKNOWN = -1, // 未知
  14633. EM_BATTERY_POWER_ALARM_MODE_MANUAL, // 手动
  14634. EM_BATTERY_POWER_ALARM_MODE_AUTO, // 自动
  14635. }EM_BATTERY_POWER_ALARM_MODE;
  14636. ///@brief 电池电压低配置 ==>CFG_CMD_BATTERY_LOW_POWER
  14637. typedef struct tagCFG_BATTERY_LOW_POWER_INFO
  14638. {
  14639. BOOL bEnable; // 使能
  14640. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  14641. EM_BATTERY_POWER_ALARM_MODE emMode; // 电量报警模式
  14642. int nPressure; // 正常电压值 手动模式有效 单位:伏
  14643. int nPercent; // 百分比,当前电量百分比低于此值报警。手动模式有效
  14644. int nLowSetNum; // 细化档有效个数
  14645. int nLowSet[8]; // 低于Percent以下的细化档,左例表示50以下报警, 低于30再报警,低于10再报警。手动模式有效
  14646. int nNotifyTimes; // 报警上报次数, 默认1
  14647. }CFG_BATTERY_LOW_POWER_INFO;
  14648. ///@brief 抓图通道联动外设配置 ==>CFG_CMD_SNAPLINKAGE
  14649. typedef struct tagCFG_SNAPLINKAGE_INFO
  14650. {
  14651. int nChannelNum; // 视频通道关联的模拟量通道数目
  14652. int anAnalogAlarm[DH_MAX_ZONE_NUM]; // 视频通道关联的模量通道号
  14653. }CFG_SNAPLINKAGE_INFO;
  14654. ///@brief 视频输入配置
  14655. typedef struct tagCFG_AUDIO_INPUT
  14656. {
  14657. char szAudioSource[CFG_COMMON_STRING_256]; // 输入音频源. 如果音频通道的输入是由多路合成,用|分割.
  14658. // 例:"Mic|LineIn|Remote" 表示此音频通道由Mic、LineIn和远程通道的音频输入构成.
  14659. // "Coaxial" 同轴口音频
  14660. // "BNC" 本地BNC口音频
  14661. // "HDCVI_BNC" 远程HDCVI设备音频
  14662. // "LineIn" 线性输入
  14663. // "Mic" 麦克风输入
  14664. // "MicOut" 麦克输出
  14665. // "Remote" 远程通道(仅对画中画通道有意义,表示画中画主画面为远程通道时,将当前远程通道的音频作为音频输入)
  14666. }CFG_AUDIO_INPUT;
  14667. ///@brief 邮件上报设备状况
  14668. typedef struct tagCFG_HEALTHREPORT_INFO
  14669. {
  14670. BOOL bEnable; // 使能
  14671. int nInterval; // 邮件发送间隔,单位为秒,范围:0~3600
  14672. }CFG_HEALTHREPORT_INFO;
  14673. ///@brief 邮件发送配置 ==>CFG_CMD_EMAIL
  14674. typedef struct tagCFG_EMAIL_INFO
  14675. {
  14676. BOOL bEnable; // 使能
  14677. BOOL bSslEnable; // 是否需要SSL加密
  14678. BOOL bTlsEnable; // 是否需要TLS加密
  14679. char szAddress[MAX_ADDRESS_LEN]; // SMTP服务器IP地址或网络名
  14680. int nPort; // 端口号
  14681. char szUserName[MAX_USERNAME_LEN]; // 帐户名
  14682. char szPassword[MAX_PASSWORD_LEN]; // 密码
  14683. BOOL bAnonymous; // 匿名邮件,true匿名,false非匿名
  14684. char szSendAddress[MAX_ADDRESS_LEN]; // 发件人地址
  14685. int nRetReciversNum; // 有效收件人数
  14686. char szReceivers[MAX_RECEIVER_NUM][MAX_ADDRESS_LEN]; // 收件人列表
  14687. char szTitle[MAX_MAILTITLE_LEN]; // 邮件标题关键字
  14688. BOOL bOnlyAttachment; // 事件联动邮件,只发送带附件的邮件
  14689. BOOL bAttachEnable; // 邮件附件使能
  14690. int nSendInterv; // 同一事件的最小邮件发送间隔,单位为秒
  14691. bool abHealthReport; // 能力,为true时,stuHealthReport有效
  14692. BYTE byReserved[3];
  14693. CFG_HEALTHREPORT_INFO stuHealthReport; // 邮件上报设备状况
  14694. BOOL bAuthentication; // 是否开启邮件鉴权,TRUE表示需要有用户名和密码先登入到SMTP服务器;FALSE表示不需要用户名和密码,直接通过SMTP服务器转发发送邮件
  14695. }CFG_EMAIL_INFO;
  14696. #define MAX_TRANSFER_SERVER_NUM 10 // 最大传输服务器个数
  14697. ///@brief 传输离线文件配置
  14698. typedef struct tagTRAFFIC_TRANSFER_OFFLINE_INFO
  14699. {
  14700. BOOL bEnable; // 使能
  14701. int nType; // 0: 使用IP地址; 1:使用MAC地址
  14702. int nIpAddrNum; // 返回的IP地址个数
  14703. char szIpAddr[MAX_TRANSFER_SERVER_NUM][MAX_ADDRESS_LEN]; // IP地址或网络名
  14704. int nMacAddrNum; // 返回的mac地址个数
  14705. char szClientID[MAX_TRANSFER_SERVER_NUM][MAX_ADDRESS_LEN]; // mac地址
  14706. UINT nTransferTimes[2]; // 重传次数(限制平台客户端最大2个),表示同一张图片最大重传次数,默认值为0表示不限制重传次数
  14707. UINT nTransferTimesNum; // 重传次数有效个数
  14708. char szReserved[1020]; // 保留字节
  14709. }TRAFFIC_TRANSFER_OFFLINE_INFO;
  14710. #define MAX_DEVCOMM_NUM 16 // 最大串口个数
  14711. ///@brief 订阅串口数据配置-单个串口配置
  14712. typedef struct tagCFG_DEVCOMM_SUBSCRIBE_INFO
  14713. {
  14714. int nReadCycle; // 串口读取间隔,单位: 秒
  14715. }CFG_DEVCOMM_SUBSCRIBE_INFO;
  14716. ///@brief 订阅串口数据配置
  14717. typedef struct tagCFG_DEVCOMM_SUBSCRIBE
  14718. {
  14719. int nSubscribeInfoNum; // 串口数据配置个数
  14720. CFG_DEVCOMM_SUBSCRIBE_INFO stuSubscribeInfo[MAX_DEVCOMM_NUM]; // 订阅串口数据配置,是一个数组,每个元素对应一个串口
  14721. }CFG_DEVCOMM_SUBSCRIBE;
  14722. ///@brief 车位状态对应的车位指示灯
  14723. typedef enum tagEM_CFG_PARKINGSPACE_LIGHT_COLOR
  14724. {
  14725. EM_CFG_PARKINGSPACE_LIGHT_RED, // 红色
  14726. EM_CFG_PARKINGSPACE_LIGHT_YELLOW, // 黄色
  14727. EM_CFG_PARKINGSPACE_LIGHT_BLUE, // 蓝色
  14728. EM_CFG_PARKINGSPACE_LIGHT_GREEN, // 绿色
  14729. EM_CFG_PARKINGSPACE_LIGHT_PURPLE, // 紫色
  14730. EM_CFG_PARKINGSPACE_LIGHT_WHITE, // 白色
  14731. EM_CFG_PARKINGSPACE_LIGHT_PINK, // 粉色
  14732. }EM_CFG_PARKINGSPACE_LIGHT_COLOR;
  14733. ///@brief 指示灯状态
  14734. typedef enum tagEM_CFG_PARKINGSPACE_LIGHT_STATE
  14735. {
  14736. EM_CFG_PARKINGSPACE_LIGHT_OFF, // 灭
  14737. EM_CFG_PARKINGSPACE_LIGHT_ON, // 亮
  14738. EM_CFG_PARKINGSPACE_LIGHT_GLINT, // 闪烁
  14739. }EM_CFG_PARKINGSPACE_LIGHT_STATE;
  14740. #define CFG_MAX_PARKINGSPACE_LIGHT_NUM 8
  14741. #define CFG_MAX_NET_PORT_NUM 4
  14742. ///@brief 车位状态对应的车位指示灯
  14743. typedef struct tagCFG_PARKINGSPACE_LIGHT_STATE
  14744. {
  14745. BYTE bySpaceFreeLinght[CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 车位空闲状态灯色,颜色枚举值作为数组下标,数组元素值表示指示灯状态,如bySpaceFreeLinght[0]=1,表示红色指示灯亮
  14746. BYTE bySpaceFullLinght[CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 车位满状态灯色,颜色枚举值作为数组下标,数组元素值表示指示灯状态,如bySpaceFullLinght[1]=1,表示黄色指示灯亮
  14747. BYTE bySpaceOverLineLight[CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 车位压线状态灯色,颜色枚举值作为数组下标,数组元素值表示指示灯状态
  14748. BYTE bySpaceOrderLight[CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 车位预定状态灯色,颜色枚举值作为数组下标,数组元素值表示指示灯状态
  14749. int nNetPortNum; // 网口数
  14750. BYTE byNetPortAbortLight[CFG_MAX_NET_PORT_NUM][CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 网口断开状态灯色
  14751. BYTE bySpaceSpecialLight[CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 车位专用状态灯色,颜色枚举值作为数组下表,数组元素值表示指示灯状态
  14752. }CFG_PARKINGSPACE_LIGHT_STATE;
  14753. ///@brief 空调工作模式
  14754. typedef enum tagEM_CFG_AIRCONDITION_MODE
  14755. {
  14756. EM_CFG_AIRCONDITION_MODE_UNKNOWN = 0,
  14757. EM_CFG_AIRCONDITION_MODE_AUTO, // 自动
  14758. EM_CFG_AIRCONDITION_MODE_HOT, // 制热
  14759. EM_CFG_AIRCONDITION_MODE_COLD, // 制冷
  14760. EM_CFG_AIRCONDITION_MODE_WET, // 除湿
  14761. EM_CFG_AIRCONDITION_MODE_WIND, // 通风
  14762. } EM_CFG_AIRCONDITION_MODE;
  14763. ///@brief 空调送风模式
  14764. typedef enum tagEM_CFG_AIRCONDITION_WINDMODE
  14765. {
  14766. EM_CFG_AIRCONDITION_WINDMODE_UNKNOWN = 0,
  14767. EM_CFG_AIRCONDITION_WINDMODE_STOP, // 停止
  14768. EM_CFG_AIRCONDITION_WINDMODE_AUTO, // 自动
  14769. EM_CFG_AIRCONDITION_WINDMODE_HIGH, // 高速
  14770. EM_CFG_AIRCONDITION_WINDMODE_MIDDLE, // 中速
  14771. EM_CFG_AIRCONDITION_WINDMODE_LOW, // 低速
  14772. } EM_CFG_AIRCONDITION_WINDMODE;
  14773. ///@brief 串口地址
  14774. typedef struct tagCFG_COMMADDR_INFO
  14775. {
  14776. int nAddressNum; // 串口地址个数
  14777. int nAddress[MAX_ADDRESS_NUM]; // 地址描述,不同厂商地址位不同,用数组表示
  14778. }CFG_COMMADDR_INFO;
  14779. ///@brief 空调设备配置详情
  14780. typedef struct tagCFG_AIRCONDITION_DETAIL
  14781. {
  14782. char szDeviceID[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
  14783. char szName[MAX_DEVICE_MARK_LEN]; // 设备描述
  14784. char szBrand[MAX_BRAND_NAME_LEN]; // 设备品牌
  14785. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  14786. int nState; // 设备状态: 1-打开,0-关闭
  14787. int nRange; // 幅度值(温度)单位:摄氏度
  14788. EM_CFG_AIRCONDITION_MODE emAirconditionMode; // 空调工作模式
  14789. EM_CFG_AIRCONDITION_WINDMODE emAirconditionWindMode; // 空调送风模式
  14790. }CFG_AIRCONDITION_DETAIL;
  14791. ///@brief 空调设备配置(对应CFG_CMD_AIRCONDITION命令)
  14792. typedef struct tagCFG_AIRCONDITION_INFO
  14793. {
  14794. int nAirConditionNum; // 空调设备个数
  14795. CFG_AIRCONDITION_DETAIL stuAirConditions[MAX_AIRCONDITION_NUM]; // 空调设备配置详情, 数组表示
  14796. }CFG_AIRCONDITION_INFO;
  14797. ///@brief 灯光设备类型
  14798. typedef enum tagEM_LIGHT_TYPE
  14799. {
  14800. EM_LIGHT_TYPE_UNKNOWN, // 未知类型
  14801. EM_LIGHT_TYPE_COMMLIGHT, // 普通灯光
  14802. EM_LIGHT_TYPE_LEVELLIGHT, // 可调光
  14803. }EM_LIGHT_TYPE;
  14804. ///@brief 灯光设备配置信息 (对应 CFG_CMD_LIGHT )
  14805. typedef struct tagCFG_LIGHT_INFO
  14806. {
  14807. char szDeviceID[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
  14808. char szName[MAX_DEVICE_MARK_LEN]; // 设备描述
  14809. char szBrand[MAX_BRAND_NAME_LEN]; // 设备品牌
  14810. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  14811. int nPositionID; // 设备在区域中编号
  14812. CFG_POLYGON stuPosition; // 坐标
  14813. int nState; // 设备状态: 1-打开,0-关闭
  14814. int nRange; // 灯亮度幅度值 0-7 , emType 为 EM_LIGHT_TYPE_ADJUSTABLE 有意义
  14815. EM_LIGHT_TYPE emType; // 灯光设备类型
  14816. }CFG_LIGHT_INFO;
  14817. ///@brief 窗帘设备配置信息 (对应 CFG_CMD_CURTAIN )
  14818. typedef struct tagCFG_CURTAIN_INFO
  14819. {
  14820. char szDeviceID[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
  14821. char szName[MAX_DEVICE_MARK_LEN]; // 设备描述
  14822. char szBrand[MAX_BRAND_NAME_LEN]; // 设备品牌
  14823. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  14824. int nPositionID; // 设备在区域中编号
  14825. CFG_POLYGON stuPosition; // 坐标
  14826. int nState; // 设备状态: 1-打开,0-关闭
  14827. }CFG_CURTAIN_INFO;
  14828. ///@brief 新风机运行模式
  14829. typedef enum tagCFG_EM_FRESH_AIR_FAN_RUN_MODE
  14830. {
  14831. CFG_EM_FRESH_AIR_FAN_RUN_MODE_UNKNOWN = -1, // 未知
  14832. CFG_EM_FRESH_AIR_FAN_RUN_MODE_SHUT_DOWN, // 关机
  14833. CFG_EM_FRESH_AIR_FAN_RUN_MODE_VENTILATION, // 换气
  14834. CFG_EM_FRESH_AIR_FAN_RUN_MODE_AIR_EXHAUST, // 排风
  14835. CFG_EM_FRESH_AIR_FAN_RUN_MODE_INTELLIGENCE, // 智能
  14836. CFG_EM_FRESH_AIR_FAN_RUN_MODE_STRONG, // 强劲
  14837. CFG_EM_FRESH_AIR_FAN_RUN_MODE_SAVING_POWER, // 省电
  14838. }CFG_EM_FRESH_AIR_FAN_RUN_MODE;
  14839. ///@brief 新风机马达档位
  14840. typedef enum tagCFG_EM_FRESH_AIR_MOTOR_SPEED
  14841. {
  14842. CFG_EM_FRESH_AIR_MOTOR_SPEED_UNKNOWN = -1, // 未知
  14843. CFG_EM_FRESH_AIR_MOTOR_SPEED_SHUT_DOWN, // 关闭
  14844. CFG_EM_FRESH_AIR_MOTOR_SPEED_LOW, // 低档
  14845. CFG_EM_FRESH_AIR_MOTOR_SPEED_MIDDLE, // 中档
  14846. CFG_EM_FRESH_AIR_MOTOR_SPEED_HIGH, // 高档
  14847. }CFG_EM_FRESH_AIR_MOTOR_SPEED;
  14848. ///@brief 新风配置信息 (对应 CFG_CMD_FRESH_AIR )
  14849. typedef struct tagCFG_FRESH_AIR_INFO
  14850. {
  14851. char szDeviceID[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
  14852. char szName[MAX_DEVICE_MARK_LEN]; // 设备描述
  14853. char szBrand[MAX_BRAND_NAME_LEN]; // 设备品牌
  14854. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  14855. CFG_EM_FRESH_AIR_FAN_RUN_MODE emRunMode; // 新风机运行模式,默认为关机
  14856. CFG_EM_FRESH_AIR_MOTOR_SPEED emMotorSpeed[2]; // 新风机马达档位,默认为关闭,第一个元素控制进风,第二个元素控制排风
  14857. }CFG_FRESH_AIR_INFO;
  14858. ///@brief 地暖配置信息 (对应 CFG_CMD_GROUND_HEAT)
  14859. typedef struct tagCFG_GROUND_HEAT_INFO
  14860. {
  14861. char szDeviceID[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
  14862. char szName[MAX_DEVICE_MARK_LEN]; // 设备描述
  14863. char szBrand[MAX_BRAND_NAME_LEN]; // 设备品牌
  14864. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  14865. int nState; // 设备状态: 1-打开,0-关闭
  14866. int nRange; // 幅度值(温度)单位:摄氏度
  14867. }CFG_GROUND_HEAT_INFO;
  14868. ///@brief 智能家居情景模式
  14869. typedef enum tagEM_SMARTHOME_SCENE_MODE
  14870. {
  14871. EM_SMARTHOME_SCENE_MODE_UNKNOWN, // 未知
  14872. EM_SMARTHOME_SCENE_MODE_AT_HOME, // 在家
  14873. EM_SMARTHOME_SCENE_MODE_LEAVE_HOME, // 离开
  14874. EM_SMARTHOME_SCENE_MODE_IN_SLEEPING, // 睡眠
  14875. }EM_SMARTHOME_SCENE_MODE;
  14876. ///@brief 情景详细信息
  14877. typedef struct tagCFG_PROFILE_INFO
  14878. {
  14879. int nSceneID; // 情景ID
  14880. char szBrand[MAX_BRAND_NAME_LEN]; // 名称
  14881. EM_SMARTHOME_SCENE_MODE emScene; // 情景模式
  14882. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  14883. }CFG_PROFILE_INFO;
  14884. #define MAX_SMARTHOME_PROFILE_COUNT 54 // 智能家居最大情景模式个数
  14885. ///@brief 情景模式配置 (对应 CFG_CMD_SCENE_MODE)
  14886. typedef struct tagCFG_SCENE_MODE_INFO
  14887. {
  14888. int nCurrentID; // 当前情景模式ID号
  14889. int nProfileCount; // 情景模式个数
  14890. CFG_PROFILE_INFO stuProfiles[MAX_SMARTHOME_PROFILE_COUNT];// 情景模式信息
  14891. }CFG_SCENE_MODE_INFO;
  14892. ///@brief 压缩回放配置信息
  14893. typedef struct tagCFG_COMPRESS_PLAY_INFO
  14894. {
  14895. BOOL bEnable; // 使能
  14896. CFG_CAPTURE_SIZE emResolution; // 视频分辨率
  14897. unsigned int nBitRate; // 视频固定码流值(kbps), 范围:192~1024
  14898. }CFG_COMPRESS_PLAY_INFO;
  14899. ///@brief 系统类型
  14900. typedef enum tagEM_CFG_BUILDING_SYSTEM_TYPE
  14901. {
  14902. EM_CFG_BUILDING_SYSTEM_TYPE_UNKNOWN = 0, // 未知
  14903. EM_CFG_BUILDING_SYSTEM_TYPE_DIGITAL, // 数字系统
  14904. EM_CFG_BUILDING_SYSTEM_TYPE_ANALOG, // 模拟系统
  14905. }EM_CFG_BUILDING_SYSTEM_TYPE;
  14906. ///@brief VTO 楼层配置(对应 CFG_CMD_BUILDING 命令)
  14907. typedef struct tagCFG_BUILDING_INFO
  14908. {
  14909. char szIssueNumber[CFG_COMMON_STRING_16]; // 期号,范围:0 ~ 99
  14910. char szSectionNumber[CFG_COMMON_STRING_16]; // 区号,范围:0 ~ 99
  14911. char szBuildingNumber[CFG_COMMON_STRING_16]; // 楼号,范围:0 ~ 999
  14912. char szBuildingUnitNumber[CFG_COMMON_STRING_16]; // 楼内单元号,范围:0 ~ 9
  14913. char szSectionUnitNumber[CFG_COMMON_STRING_16]; // 小区单元编号,范围:0 ~ 999
  14914. int nUnitFloorNumber; // 单元楼层数,范围:0 ~ 99
  14915. int nFloorPerRoomNumber; // 一层房间数,范围:0 ~ 99
  14916. BOOL bCreateRoomEnable; // 创建房间号使能
  14917. EM_CFG_BUILDING_SYSTEM_TYPE emSystemType; // 系统类型
  14918. BOOL bEnableSection; // 区号使能
  14919. int nBuildingNumBit; // 楼号长度
  14920. int nTotalRoomNumber; // 房间总数,最大值为9999
  14921. char szBuildingName[CFG_COMMON_STRING_64]; // 门口机别名
  14922. }CFG_BUILDING_INFO;
  14923. ///@brief VTO 楼层扩展配置(对应 CFG_CMD_BUILDING_EXTERNAL 命令)
  14924. typedef struct tagCFG_BUILDING_EXTERNAL_INFO
  14925. {
  14926. int nFloorCount; // 单元总层数
  14927. int nRoomCount; // 每层房间数
  14928. int nBeginNumberCount; // 获取/设置时,对应的开始房间号的有效个数
  14929. // 获取时,当获取的开始房间号个数超过MAX_FLOOR_NUM,前MAX_FLOOR_NUM个有效
  14930. // 设置时,当设置的开始房间号个数超过MAX_FLOOR_NUM,前MAX_FLOOR_NUM个有效
  14931. char szBeginNumber[MAX_FLOOR_NUM][CFG_COMMON_STRING_16]; // 开始的房间号,nBeginNumber[0] 为第一层开始房间号,nBeginNumber[1] 为第二层开始房间号,
  14932. int nTotalBuildingNumber; // 小区总幢数,范围:0 ~ 99
  14933. int nBuildingPerUintNumber; // 每幢单元数,范围:0 ~ 9
  14934. }CFG_BUILDING_EXTERNAL_INFO;
  14935. ///@brief 拨号规则(对应 CFG_CMD_DIALRULE 命令)
  14936. typedef struct tagCFG_DIALRULE_INFO
  14937. {
  14938. BOOL bBuildingModeEnable; //幢模式使能
  14939. BOOL bUnitModeEnable; //单元模式使能
  14940. BOOL bExtentionModeEnable; //分机模式使能
  14941. char cSeperator; //拨号分隔符, 如 "#", "-"
  14942. BYTE byReserved[3]; //字节对齐
  14943. }CFG_DIALRULE_INFO;
  14944. ///@brief 车辆油箱配置
  14945. typedef struct tagCFG_OIL_MASS_INFO
  14946. {
  14947. int nTankVolume; // 油箱容积,单位:升
  14948. int nNotifyIntervalTime; // 上报油箱信息间隔时间,单位:秒
  14949. int nLowOil; // 油量液位低报警百分比(例:低于20%则报警),单位:百分比,0-100
  14950. int nAlarmIntervalTime; // 上报油量液位低的报警时间间隔(即报警后,每隔一段时间就重复报警),单位:秒
  14951. int nTankHeight; // 油箱高度,单位:毫米
  14952. BOOL bEnable; // 异常油量事件上报使能
  14953. int nAbnormalOilLiter; // 异常油量报警减少量,单位:0.1升。值扩大10倍,例如100表示10升,101表示10.1升
  14954. int nAbnormalOilTime; // 常油量报警减少时间,单位:秒
  14955. double dbSpareHeight; // 剩余油量高度,单位:毫米
  14956. char szReserved[1024]; // 预留字节
  14957. }CFG_OIL_MASS_INFO;
  14958. ///@brief MAC冲突事件报警配置
  14959. typedef struct tagCFG_MACCONFLICT_INFO
  14960. {
  14961. BOOL bEnable; // 使能开关
  14962. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  14963. }CFG_MACCONFLICT_INFO;
  14964. ///@brief 登陆锁定配置(对应 CFG_CMD_USERLOCKALARM)
  14965. typedef struct tagCFG_USERLOCKALARM_INFO
  14966. {
  14967. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  14968. }CFG_USERLOCKALARM_INFO;
  14969. ///@brief 登陆失败报警配置(对应 CFG_CMD_LOGIN_FAILURE_ALARM)
  14970. typedef struct tagCFG_LOGIN_FAILURE_ALARM
  14971. {
  14972. BOOL bEnable; // 登陆失败报警使能开关,TRUE为打开,FALSE为关闭
  14973. int nTryLoginTimes; // 尝试登陆次数,若登陆密码错误次数达到尝试次数后,启动报警联动
  14974. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  14975. }CFG_LOGIN_FAILURE_ALARM;
  14976. ///@brief 空闲动作功能枚举
  14977. typedef enum tagEM_CFG_IDLEMOTION_FUNCTION
  14978. {
  14979. EM_CFG_IDLEMOTION_FUNCTION_NONE = 0, // 无
  14980. EM_CFG_IDLEMOTION_FUNCTION_PRESET, // 预置点
  14981. EM_CFG_IDLEMOTION_FUNCTION_SCAN, // 自动线扫
  14982. EM_CFG_IDLEMOTION_FUNCTION_TOUR, // 巡航
  14983. EM_CFG_IDLEMOTION_FUNCTION_PATTERN, // 自动巡迹
  14984. EM_CFG_IDLEMOTION_FUNCTION_AUTOPANGROUP, // 水平旋转
  14985. } EM_CFG_IDLEMOTION_FUNCTION;
  14986. ///@brief 空闲动作配置信息
  14987. typedef struct tagCFG_IDLE_MOTION_INFO
  14988. {
  14989. BOOL bEnable; // 使能
  14990. int nTime; // 启动空闲动作的时间1~60分钟
  14991. EM_CFG_IDLEMOTION_FUNCTION emFunction; // 空闲动作功能,见枚举 EM_CFG_IDLEMOTION_FUNCTION
  14992. int nPresetId; // 预置点编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wPresetMin和wPresetMax
  14993. int nScanId; // 自动线扫编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wAutoScanMin和wAutoScanMax
  14994. int nTourId; // 巡航编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wTourMin和wTourMax
  14995. int nPatternId; // 自动巡迹编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wPatternMin和wPatternMax
  14996. int nSecond; // 启动空闲动作的时长(秒数)范围0-59秒,总时长为nTime * 60 + nSecond
  14997. }CFG_IDLE_MOTION_INFO;
  14998. ///@brief 电视墙预案轮巡配置
  14999. typedef struct tagCFG_MONITORWALL_COLLECTION_TOUR_INFO
  15000. {
  15001. int nInterval; // 轮巡间隔时间, 单位秒
  15002. int nCollectionNum; // 预案轮巡组中包含的预案数量
  15003. char szCollectionGroup[CFG_MAX_COLLECTION_NUM][CFG_COMMON_STRING_128]; // 预案轮巡组内容, 每一项是预案的名称
  15004. }CFG_MONITORWALL_COLLECTION_TOUR_INFO;
  15005. ///@brief PSTN掉线事件配置
  15006. typedef struct tagCFG_PSTN_BREAK_LINE_INFO
  15007. {
  15008. BOOL bEnable; // 使能开关
  15009. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  15010. }CFG_PSTN_BREAK_LINE_INFO;
  15011. ///@brief 网络采集设备配置, 对应CFG_CMD_NET_COLLECTION命令
  15012. typedef struct tagCFG_NET_COLLECTION_INFO
  15013. {
  15014. char szIp[MAX_ADDRESS_LEN]; // IP
  15015. int nPort; // 端口
  15016. }CFG_NET_COLLECTION_INFO;
  15017. ///@brief 物理接口类型
  15018. typedef enum tagEM_CFG_INTERFACE_TYPE
  15019. {
  15020. EM_CFG_INTERFACE_TYPE_UNKNOWN = 0,
  15021. EM_CFG_INTERFACE_TYPE_COMM, // Comm类型, 即串口, 对应CFG_COMMGROUP_INFO配置
  15022. EM_CFG_INTERFACE_TYPE_NETCOLLECTION, // NetCollection类型, 即网络采集点, 对应CFG_NET_COLLECTION_INFO配置
  15023. }EM_CFG_INTERFACE_TYPE;
  15024. ///@brief 虚拟Slot节点与具体物理设备的对应关系, 对应CFG_CMD_ALARM_SLOT_BOND命令
  15025. ///@brief 由于第一个通道(即通道0)已经于本地通道绑定,故无法设置;
  15026. ///@brief 其他通道对应Slot节点序号, 元素内容为相应物理接口
  15027. typedef struct tagCFG_ALARM_SLOT_BOND_INFO
  15028. {
  15029. EM_CFG_INTERFACE_TYPE emType; // 物理接口类型
  15030. int nIndex; // 通道号, 从0开始
  15031. // 类型为EM_CFG_INTERFACE_TYPE_COMM时, 表示CFG_COMMGROUP_INFO配置的数组下标;
  15032. // 类型为EM_CFG_INTERFACE_TYPE_NETCOLLECTION时, 表示CFG_NET_COLLECTION_INFO配置的数组下标;
  15033. }CFG_ALARM_SLOT_BOND_INFO;
  15034. #define CFG_MAX_CTRLTYPE_NUM 16 // 最大道闸控制方式
  15035. ///@brief 道闸控制方式枚举
  15036. typedef enum tagEM_CFG_TRAFFICSTROBE_CTRTYPE
  15037. {
  15038. EM_CFG_CTRTYPE_UNKNOWN = 0, // 未定义
  15039. EM_CFG_CTRTYPE_TRAFFICTRUSTLIST, // 通过允许名单控制是否开闸;只有允许名单内车辆才开闸
  15040. EM_CFG_CTRTYPE_ALLSNAPCAR, // 针对所有抓拍车辆都开闸
  15041. EM_CFG_CTRTYPE_ORDER, // 通过上层下发的命令开闸
  15042. } EM_CFG_TRAFFICSTROBE_CTRTYPE;
  15043. ///@brief 所有车开闸种类
  15044. typedef enum tagEM_CFG_ALL_SNAP_CAR
  15045. {
  15046. EM_CFG_ALL_SNAP_CAR_UNKNOWN, // 未知开闸种类
  15047. EM_CFG_ALL_SNAP_CAR_PLATE, // 所有有牌车车辆
  15048. EM_CFG_ALL_SNAP_CAR_NOPLATE, // 所有无牌车车辆
  15049. }EM_CFG_ALL_SNAP_CAR;
  15050. ///@brief 道闸配置信息(对应 CFG_CMD_TRAFFICSTROBE 命令)
  15051. typedef struct tagCFG_TRAFFICSTROBE_INFO
  15052. {
  15053. BOOL bEnable; // 使能
  15054. int nCtrlTypeCount; // 道闸控制方式个数
  15055. EM_CFG_TRAFFICSTROBE_CTRTYPE emCtrType[CFG_MAX_CTRLTYPE_NUM]; // 道闸控制方式,见枚举 EM_CFG_TRAFFICSTROBE_CTRTYPE
  15056. CFG_ALARM_MSG_HANDLE stuEventHandler; // 开启道闸联动参数
  15057. CFG_ALARM_MSG_HANDLE stuEventHandlerClose; // 关闭道闸联动参数
  15058. int nAllSnapCarCount; // 所有车开闸种类个数
  15059. EM_CFG_ALL_SNAP_CAR emAllSnapCar[MAX_ALL_SNAP_CAR_COUNT]; // 所有车开闸种类
  15060. BOOL bFlowCarEnable; // 是否使能跟车模式
  15061. }CFG_TRAFFICSTROBE_INFO;
  15062. #define CFG_MAX_PLATEENABLE_NUM 16 // 最大使能过车车牌播报个数
  15063. #define CFG_MAX_TRAFFICVOICE_NUM 8 // 最大语音播报配置个数
  15064. ///@brief 使能过车车牌播报功能枚举
  15065. typedef enum tagEM_CFG_PLATEENABLE_TYPE
  15066. {
  15067. EM_CFG_PLATEENABLE_UNKNOWN = 0, // 未定义
  15068. EM_CFG_PLATEENABLE_TIPS, // 播放欢迎词
  15069. EM_CFG_PLATEENABLE_PLATE, // 播放车牌
  15070. } EM_CFG_PLATEENABLE_TYPE;
  15071. ///@brief 智能交通语音播报信息
  15072. typedef struct tagCFG_TRAFFICVOICE_BROADCAST_INFO
  15073. {
  15074. int nEnableCount; // 使能播报个数
  15075. EM_CFG_PLATEENABLE_TYPE emEnable[CFG_MAX_PLATEENABLE_NUM]; // 使能过车车牌播报,见枚举 EM_CFG_PLATEENABLE_TYPE
  15076. char szNormalCar[MAX_PATH]; // 普通车辆过车播报内容,例如:播报语音文件"欢迎光临.wav"
  15077. char szTrustCar[MAX_PATH]; // 信任车辆过车播报内容,例如:播报语音文件"欢迎光临.wav"
  15078. char szSuspiciousCar[MAX_PATH]; // 嫌疑车辆过车播报内容,例如:播报语音文件"非注册车辆.wav"
  15079. }CFG_TRAFFICVOICE_BROADCAST_INFO;
  15080. ///@brief 智能交通语音播报配置(对应 CFG_CMD_TRAFFICVOICE 命令)
  15081. typedef struct tagCFG_TRAFFICVOICE_BROADCAST
  15082. {
  15083. int nTrafficVoiceNum; // 语音播报配置个数
  15084. CFG_TRAFFICVOICE_BROADCAST_INFO stuTrafficVoices[CFG_MAX_TRAFFICVOICE_NUM]; // 语音播报配置详情, 数组表示
  15085. }CFG_TRAFFICVOICE_BROADCAST;
  15086. ///@brief 停车时间配置
  15087. typedef struct tagCFG_STANDING_TIME_INFO
  15088. {
  15089. BOOL bEnable; // 是否启用停车超时报警功能
  15090. int nUpperlimit; // 停留时间上限, 单位:分钟
  15091. int nInterval; // DH_ALARM_VEHICLE_STANDING_OVER_TIME事件上报间隔, 单位:秒, -1表示不需要重复上报
  15092. } CFG_STANDING_TIME_INFO;
  15093. ///@brief 电子围栏报警时间段信息
  15094. typedef struct tagENCLOSURE_TIME_SCHEDULE_INFO
  15095. {
  15096. int nEnclosureID; // 围栏的ID号
  15097. CFG_TIME_SECTION stuTimeSection[MAX_TIME_SCHEDULE_NUM][MAX_REC_TSECT]; // 事件响应时间段
  15098. } ENCLOSURE_TIME_SCHEDULE_INFO;
  15099. // 电子围栏最大数量
  15100. #define MAX_ENCLOSURE_NUM 128
  15101. ///@brief 电子围栏报警时间段配置
  15102. typedef struct tagCFG_ENCLOSURE_TIME_SCHEDULE_INFO
  15103. {
  15104. int nEnclosureInfoCount; // 围栏数量
  15105. ENCLOSURE_TIME_SCHEDULE_INFO stuEnclosureInfo[MAX_ENCLOSURE_NUM]; // 围栏信息
  15106. char szVersion[CFG_COMMON_STRING_64]; // 围栏时间段配置版本号
  15107. } CFG_ENCLOSURE_TIME_SCHEDULE_INFO;
  15108. ///@brief 停车场出入口控制器工作模式
  15109. typedef enum tagEM_ECK_WORK_MODE_TYPE
  15110. {
  15111. EM_ECK_WORK_MODE_UNKNOWN = 0,
  15112. EM_ECK_WORK_MODE_IMPORT, // 入口控制机
  15113. EM_ECK_WORK_MODE_EXPORT, // 出口控制机
  15114. }EM_ECK_WORK_MODE_TYPE;
  15115. ///@brief 停车场出入口控制器开闸模式
  15116. typedef enum tagEM_ECK_STROBE_MODE_TYPE
  15117. {
  15118. EM_ECK_STROBE_MODE_UNKNOWN = 0,
  15119. EM_ECK_STROBE_MODE_ON, // 始终开闸
  15120. EM_ECK_STROBE_MODE_OFF, // 始终关闸
  15121. EM_ECK_STROBE_MODE_AUTO, // 自动开关闸
  15122. }EM_ECK_STROBE_MODE_TYPE;
  15123. ///@brief 停车场出入口控制器滚动屏初始滚动速度
  15124. typedef enum tagEM_ECK_LED_SPEED_TYPE
  15125. {
  15126. EM_ECK_LED_SPEED_UNKNOWN = 0,
  15127. EM_ECK_LED_SPEED_LOW, // 慢
  15128. EM_ECK_LED_SPEED_NORMAL, // 正常
  15129. EM_ECK_LED_SPEED_HIGH, // 快
  15130. }EM_ECK_LED_SPEED_TYPE;
  15131. ///@brief 停车场出入口控制器LED滚动屏配置
  15132. typedef struct tagCFG_ECK_LED_INFO
  15133. {
  15134. EM_ECK_LED_SPEED_TYPE emLEDSpeed; // LED滚动屏初始滚动速度
  15135. char szCustomData[CFG_COMMON_STRING_512];// LED滚动屏初始自定义字符, 有效长度0-256字节
  15136. }CFG_ECK_LED_INFO;
  15137. ///@brief 停车场出入口控制器配置
  15138. typedef struct tagCFG_ECKCONFIG_INFO
  15139. {
  15140. EM_ECK_WORK_MODE_TYPE emWorkMode; // 工作模式
  15141. EM_ECK_STROBE_MODE_TYPE emStrobeMode; // 开闸模式
  15142. BOOL bForceOffline; // 强制脱机开关, TRUE:强制脱机工作, FALSE:接受平台控制工作
  15143. BOOL bLoopSence; // 地感功能开关, TRUE:开启地感功能, FALSE:关闭地感功能
  15144. CFG_ECK_LED_INFO stuLED; // 滚动屏幕配置
  15145. }CFG_ECKCONFIG_INFO;
  15146. ///@brief 箭头指向
  15147. typedef enum tagEM_DIRECTION
  15148. {
  15149. EM_DIRECTION_UNKNOWN,
  15150. EM_DIRECTION_LEFT, // 左
  15151. EM_DIRECTION_UPLEFT, // 左上
  15152. EM_DIRECTION_UP, // 上
  15153. EM_DIRECTION_UPRIGHT, // 右上
  15154. EM_DIRECTION_RIGHT, // 右
  15155. EM_DIRECTION_DOWNRIGHT, // 右下
  15156. EM_DIRECTION_DOWN, // 下
  15157. EM_DIRECTION_DOWNLEFT, // 左下
  15158. }EM_DIRECTION;
  15159. ///@brief 箭头相对于数字的位置
  15160. typedef enum tagEM_GUIDESCREEN_POS
  15161. {
  15162. EM_GUIDESCREEN_POS_UNKNOWN,
  15163. EM_GUIDESCREEN_POS_LEFT, // 左侧
  15164. EM_GUIDESCREEN_POS_RIGHT, // 右侧
  15165. }EM_GUIDESCREEN_POS;
  15166. ///@brief 诱导屏内容是否滚动
  15167. typedef enum tagEM_GUIDESCREEN_ROLL
  15168. {
  15169. EM_GUIDESCREEN_ROLL_UNKNOWN,
  15170. EM_GUIDESCREEN_ROLL_DISABLE, // 不滚动
  15171. EM_GUIDESCREEN_ROLL_ENABLE, // 滚动
  15172. }EM_GUIDESCREEN_ROLL;
  15173. ///@brief 诱导屏箭头设置
  15174. typedef struct tagCFG_GUISCREEN_ARROW
  15175. {
  15176. EM_DIRECTION emDirect; // 箭头指向
  15177. EM_GUIDESCREEN_POS emPos; // 箭头相对于数字的位置
  15178. EM_GUIDESCREEN_ROLL emRoll; // 是否滚动
  15179. }CFG_GUISCREEN_ARROW;
  15180. #define CFG_GUIDE_SCREEN_NUM_MAX (8) // 诱导屏最大数量
  15181. ///@brief 诱导屏系统配置(对应 CFG_CMD_GUIDESCREEN 命令)
  15182. typedef struct tagCFG_GUIDESCREEN_INFO
  15183. {
  15184. char szText[CFG_COMMON_STRING_128]; // 上下屏时,上屏显示内容
  15185. // 英文或常用中文汉字,中文需要GB2312编码,长度不超过64字节
  15186. int nArrowNum; // 箭头标志数量
  15187. CFG_GUISCREEN_ARROW stuArrow[CFG_GUIDE_SCREEN_NUM_MAX]; // 箭头标志设置, 对应的屏从左至右依次排列
  15188. }CFG_GUIDESCREEN_INFO;
  15189. ///@brief 停车场出入口刷卡报警事件配置(对应CFG_CMD_PARKING_CARD命令)
  15190. typedef struct tagCFG_PARKING_CARD_INFO
  15191. {
  15192. BOOL bEnable; // 是否启用
  15193. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  15194. } CFG_PARKING_CARD_INFO;
  15195. ///@brief 报警方式, 即通过什么方式发出的报警
  15196. typedef enum tagEM_CFG_RCEMERGENCY_MODE_TYPE
  15197. {
  15198. EM_CFG_RCEMERGENCY_MODE_UNKNOWN = 0,
  15199. EM_CFG_RCEMERGENCY_MODE_KEYBOARD, // 键盘
  15200. EM_CFG_RCEMERGENCY_MODE_WIRELESS_CONTROL, // 遥控器
  15201. }EM_CFG_RCEMERGENCY_MODE_TYPE;
  15202. ///@brief 紧急救助报警类型
  15203. typedef enum tagEM_CFG_RCEMERGENCY_CALL_TYPE
  15204. {
  15205. EM_CFG_RCEMERGENCY_CALL_UNKNOWN = 0,
  15206. EM_CFG_RCEMERGENCY_CALL_FIRE, // 火警
  15207. EM_CFG_RCEMERGENCY_CALL_DURESS, // 胁迫
  15208. EM_CFG_RCEMERGENCY_CALL_ROBBER, // 匪警
  15209. EM_CFG_RCEMERGENCY_CALL_MEDICAL, // 医疗
  15210. }EM_CFG_RCEMERGENCY_CALL_TYPE;
  15211. ///@brief 紧急呼叫报警事件配置(对应 CFG_CMD_RCEMERGENCYCALL 命令)
  15212. typedef struct tagCFG_RCEMERGENCY_CALL_INFO
  15213. {
  15214. BOOL bEnable; // 是否启用
  15215. EM_CFG_RCEMERGENCY_MODE_TYPE emMode; // 报警方式
  15216. EM_CFG_RCEMERGENCY_CALL_TYPE emAlarmType; // 报警类型
  15217. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  15218. }CFG_RCEMERGENCY_CALL_INFO;
  15219. ///@brief 车道信息上报配置(对应 CFG_CMD_LANES_STATE_REPORT 命令)
  15220. typedef struct tagCFG_LANES_STATE_REPORT
  15221. {
  15222. BOOL bEnable; //上报使能 true:上报使能 ,false:上报不使能
  15223. int nPeriod; //上报周期 单位:秒
  15224. }CFG_LANES_STATE_REPORT;
  15225. #define CFG_MAX_USER_ID_LEN 32 // 门禁卡用户ID最大长度
  15226. #define CFG_MAX_METHODEX_NUM 4 // 开门方式扩展最大个数
  15227. ///@brief 多人组合开门的开门方式
  15228. typedef enum tagEM_CFG_OPEN_DOOR_GROUP_METHOD
  15229. {
  15230. EM_CFG_OPEN_DOOR_GROUP_METHOD_UNKNOWN = 0,
  15231. EM_CFG_OPEN_DOOR_GROUP_METHOD_CARD, // 刷卡
  15232. EM_CFG_OPEN_DOOR_GROUP_METHOD_PWD, // 密码
  15233. EM_CFG_OPEN_DOOR_GROUP_METHOD_FINGERPRINT, // 信息
  15234. EM_CFG_OPEN_DOOR_GROUP_METHOD_ANY, // 任意组合方式开门
  15235. EM_CFG_OPEN_DOOR_GROUP_METHOD_FACE, // 目标
  15236. }EM_CFG_OPEN_DOOR_GROUP_METHOD;
  15237. ///@brief 多人组合开门组详细信息
  15238. typedef struct tagCFG_OPEN_DOOR_GROUP_DETAIL
  15239. {
  15240. char szUserID[CFG_MAX_USER_ID_LEN]; // 用户ID
  15241. EM_CFG_OPEN_DOOR_GROUP_METHOD emMethod; // 开门方式
  15242. int nMethodExNum; // 开门方式扩展个数
  15243. EM_CFG_OPEN_DOOR_GROUP_METHOD emMethodEx[CFG_MAX_METHODEX_NUM]; // 开门方式扩展
  15244. CFG_DOOR_OPEN_METHOD emCombineMethod; /// 多人开门支持任意组合开门方式
  15245. char szReserved[1020]; /// 预留字段
  15246. }CFG_OPEN_DOOR_GROUP_DETAIL;
  15247. #define CFG_MAX_OPEN_DOOR_GROUP_DETAIL_NUM 64 // 每一组多人开门组合的最大人数
  15248. ///@brief 多人组合开门组信息
  15249. typedef struct tagCFG_OPEN_DOOR_GROUP
  15250. {
  15251. int nUserCount; // 用户数目,表示需要组合才能开门的人数
  15252. int nGroupNum; // 有效组数目
  15253. CFG_OPEN_DOOR_GROUP_DETAIL stuGroupDetail[CFG_MAX_OPEN_DOOR_GROUP_DETAIL_NUM];// 多人组合开门组的详细信息
  15254. BOOL bGroupDetailEx; // TRUE: stuGroupDetail 字段无效、pstuGroupDetailEx字段有效, FALSE: stuGroupDetail 字段有效、pstuGroupDetailEx字段无效
  15255. int nMaxGroupDetailNum; // 多人组合开门组的详细信息最大个数
  15256. CFG_OPEN_DOOR_GROUP_DETAIL *pstuGroupDetailEx; // 多人组合开门组的详细信息扩展, 由用户申请内存, 大小为sizeof(CFG_OPEN_DOOR_GROUP_DETAIL)*nMaxUserCount,
  15257. // 当多人组合开门组的详细信息个数大于 CFG_MAX_OPEN_DOOR_GROUP_DETAIL_NUM 时使用此字段
  15258. }CFG_OPEN_DOOR_GROUP;
  15259. #define CFG_MAX_OPEN_DOOR_GROUP_NUM 4 // 多人开门组合的最大组合数
  15260. ///@brief 多人多开门方式组合(对应 CFG_CMD_OPEN_DOOR_GROUP 命令),表示每个通道的组合信息,
  15261. ///@brief 第一个通道的组合的开门优先级最高,后面依次递减
  15262. typedef struct tagCFG_OPEN_DOOR_GROUP_INFO
  15263. {
  15264. int nGroup; // 有效组合数
  15265. CFG_OPEN_DOOR_GROUP stuGroupInfo[CFG_MAX_OPEN_DOOR_GROUP_NUM];// 多人开门组合信息
  15266. int nGroupMaxNum; // 组合总数,指明pGroupInfoEx实际内存空间大小,获取和下发均需要用户赋值,非0时nGroup、stuGroupInfo字段不生效
  15267. int nGroupRetNum; // 实际有效的组合数,获取时由动态库赋值,下发时由用户赋值
  15268. CFG_OPEN_DOOR_GROUP* pGroupInfoEx; //多人开门组合信息扩展,内存有用户申请
  15269. char szReserved[2048]; // 保留字节
  15270. }CFG_OPEN_DOOR_GROUP_INFO;
  15271. #define MAX_READER_ID_LEN 32 // 读卡器ID最大长度
  15272. ///@brief 开门路线的每个节点的信息
  15273. typedef struct tagCFG_DOOR_ROUTE_NODE_INFO
  15274. {
  15275. char szReaderID[MAX_READER_ID_LEN]; // 读卡器ID,即门禁控制器相连的读卡器的ID
  15276. }CFG_DOOR_ROUTE_NODE_INFO;
  15277. // 每条开门路线最大节点(读卡器数目)
  15278. #define MAX_DOOR_ROUTE_NODE_NUM 8
  15279. ///@brief 门数组集合信息,按照数组下标从小到大顺序,表示开门路线
  15280. typedef struct tagCFG_DOOR_ROUTE_INFO
  15281. {
  15282. int nDoors; // 开门路线有效节点数
  15283. CFG_DOOR_ROUTE_NODE_INFO stuDoors[MAX_DOOR_ROUTE_NODE_NUM]; // 开门路线节点信息
  15284. UINT nResetTime; // 反潜重置时间,单位:分钟,0表示不重置
  15285. }CFG_DOOR_ROUTE_INFO;
  15286. #define MAX_OPEN_DOOR_ROUTE_NUM 16 // 最大开门路线数目
  15287. ///@brief 开门路线集合,或称防反潜路线配置(对应 CFG_CMD_OPEN_DOOR_ROUTE 命令)
  15288. typedef struct tagCFG_OPEN_DOOR_ROUTE_INFO
  15289. {
  15290. int nDoorList;
  15291. CFG_DOOR_ROUTE_INFO stuDoorList[MAX_OPEN_DOOR_ROUTE_NUM];
  15292. int nTimeSection; // 反潜路径对应时间段, 即CFG_ACCESS_TIMESCHEDULE_INFO的数组下标
  15293. UINT nResetTime; // 反潜重置时间,单位:分钟,0表示不重置。无效字段,废除
  15294. UINT nHolidayScheduleID; // 假日计划, 需要反潜的假日计划
  15295. BOOL nClearCFG; // 下发空配置,当该字段为TRUE,则配置中其余字段无效(仅下发有效)
  15296. BOOL bHolidayScheduleIDUnenable; // 不下发假日计划,当该字段为TRUE,不下发假日计划(仅下发有效)
  15297. char szReserved[1012]; // 字节对齐
  15298. }CFG_OPEN_DOOR_ROUTE_INFO;
  15299. #define MAX_BURNPLAN_DEVICES_NUM 32
  15300. #define MAX_BURNPLAN_CHANNELS_NUM 32
  15301. ///@brief 刻录流格式
  15302. typedef enum tagEM_CFG_BURNPLAN_RECORDPACK_TYPE
  15303. {
  15304. EM_CFG_BURNPLAN_RECORDPACK_TYPE_UNKNOWN, // 未知
  15305. EM_CFG_BURNPLAN_RECORDPACK_TYPE_DHAV, // "DHAV"
  15306. EM_CFG_BURNPLAN_RECORDPACK_TYPE_PS, // "PS"
  15307. EM_CFG_BURNPLAN_RECORDPACK_TYPE_ASF, // "ASF"
  15308. EM_CFG_BURNPLAN_RECORDPACK_TYPE_MP4, // "MP4"
  15309. EM_CFG_BURNPLAN_RECORDPACK_TYPE_TS, // "TS"
  15310. }EM_CFG_BURNPLAN_RECORDPACK_TYPE;
  15311. ///@brief 刻录模式
  15312. typedef enum tagEM_CFG_BURNPLAN_MODE
  15313. {
  15314. EM_CFG_BURNPLAN_MODE_UNKNOWN, // 未知
  15315. EM_CFG_BURNPLAN_MODE_SYNC, // 同步: "Sync"
  15316. EM_CFG_BURNPLAN_MODE_TURN, // 轮流: "Turn"
  15317. EM_CFG_BURNPLAN_MODE_CYCLE, // 循环: "Cycle"
  15318. }EM_CFG_BURNPLAN_MODE;
  15319. ///@brief 刻录计划信息
  15320. typedef struct tagCFG_BURNPLAN_DETAIL
  15321. {
  15322. int nSessionId; // 审讯室
  15323. int nDevicesNum; // 参与该会话的设备列表有效个数
  15324. int nDevices[MAX_BURNPLAN_DEVICES_NUM]; // 参与该会话的设备列表
  15325. int nChannelsNum; // 刻录的视频通道有效个数
  15326. int nChannels[MAX_BURNPLAN_CHANNELS_NUM]; // 刻录的视频通道
  15327. EM_CFG_BURNPLAN_RECORDPACK_TYPE emRecordpack; // 刻录流格式
  15328. EM_CFG_BURNPLAN_MODE emMode; // 刻录模式
  15329. CFG_NET_TIME stuStarttime; // 刻录开始时间
  15330. }CFG_BURNPLAN_DETAIL;
  15331. #define MAX_BURNPLAN_DETAIL_NUM 32
  15332. ///@brief 刻录计划配置(对应CFG_BURNPLAN_INFO)
  15333. typedef struct tagCFG_BURNPLAN_INFO
  15334. {
  15335. int nBurnPlanDetailNum; // 刻录计划信息列表有效个数
  15336. CFG_BURNPLAN_DETAIL stuBurnPlanDetail[MAX_BURNPLAN_DETAIL_NUM]; // 刻录计划信息列表
  15337. }CFG_BURNPLAN_INFO;
  15338. ///@brief 检测采集设备配置
  15339. typedef struct tagCFG_SCADA_DEV_INFO
  15340. {
  15341. BOOL bEnable; // 是否启用
  15342. char szDevType[CFG_COMMON_STRING_64];// 设备类型
  15343. char szDevName[CFG_COMMON_STRING_64];// 设备名称, 唯一标示设备用
  15344. int nSlot; // 虚拟槽位号, 详见AlarmSlotBond配置
  15345. int nLevel; // 如果Slot绑定的是NetCollection类型的话,该字段为-1
  15346. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  15347. }CFG_SCADA_DEV_INFO;
  15348. ///@brief 通道相关信息
  15349. typedef struct tagCFG_VSP_GAYS_CHANNEL_INFO
  15350. {
  15351. char szId[CFG_COMMON_STRING_64]; // 通道编号 字符串(24位)
  15352. int nAlarmLevel; // 报警级别[1,6] 整型
  15353. }CFG_VSP_GAYS_CHANNEL_INFO;
  15354. ///@brief 报警相关信息
  15355. typedef struct tagCFG_VSP_GAYS_ALARM_INFO
  15356. {
  15357. char szId[CFG_COMMON_STRING_64]; // 通道编号 字符串(24位)
  15358. int nAlarmLevel; // 报警级别[1,6] 整型
  15359. }CFG_VSP_GAYS_ALARM_INFO;
  15360. ///@brief 公安一所平台接入配置(CFG_CMD_VSP_GAYS)
  15361. typedef struct tagCFG_VSP_GAYS_INFO
  15362. {
  15363. BOOL bEnable; // 是否使能,TRUE使能,FALSE不使能
  15364. char szSipSvrId[CFG_COMMON_STRING_64]; // SIP服务器编号 字符串(24位)
  15365. char szDomain[CFG_COMMON_STRING_256]; // SIP域 字符串(128位)
  15366. char szSipSvrIp[CFG_COMMON_STRING_32]; // SIP服务器IP 字符串(16位)
  15367. char szDeviceId[CFG_COMMON_STRING_64]; // 设备编号,也是注册用户名 字符串(24位)
  15368. char szPassword[CFG_COMMON_STRING_64]; // 注册密码,密文 字符串(24位)
  15369. unsigned short nLocalSipPort; // 本地SIP服务端口 无符号短整型
  15370. unsigned short nSipSvrPort; // SIP服务器端口 无符号短整型
  15371. int nSipRegExpires; // 注册有效期 整型
  15372. int nKeepAliveCircle; // 心跳周期 整型
  15373. int nMaxTimeoutTimes; // 最大心跳超时次数 整型
  15374. char szCivilCode[CFG_COMMON_STRING_64]; // 行政区划代码 字符串(24位)
  15375. char szIntervideoID[CFG_COMMON_STRING_64]; // 接入模块识别码 字符串(24位)
  15376. unsigned short nChannelSum; // 通道数 无符号短整型
  15377. unsigned short nAlarmInSum; // 外部报警输入数 无符号短整型
  15378. CFG_VSP_GAYS_CHANNEL_INFO stuChannelInfo[MAX_VIDEO_CHANNEL_NUM]; // 通道相关信息 数组,有效个数同channelSum
  15379. CFG_VSP_GAYS_ALARM_INFO stuAlarmInfo[MAX_ALARM_CHANNEL_NUM]; // 报警相关信息 数组,有效个数同alarmInSum
  15380. }CFG_VSP_GAYS_INFO;
  15381. ///@brief 音频检测报警配置(CFG_CMD_AUDIODETECT)
  15382. typedef struct tagCFG_AUDIO_DETECT_INFO
  15383. {
  15384. BOOL bEnable; // 是否使能,TRUE使能,FALSE不使能
  15385. int nMinVolume; // 音量下限
  15386. int nMaxVolume; // 音量上限
  15387. BOOL bAnomalyDetect; // 声音异常检测使能
  15388. int nAnomalySensitive; // 声音异常检测灵敏度值 取值范围1~100
  15389. BOOL bMutationDetect; // 声强突变检测使能
  15390. int nMutationThreold; // 声强突变检测阈值 取值范围1~100
  15391. CFG_ALARM_MSG_HANDLE stuEventHandler; // 联动配置
  15392. BOOL bIntensityDetect; // 音频强度检测使能
  15393. unsigned int nIntensityDecibelGate; // 音频强度检测分贝阈值, 单位分贝, 取值范围0~117
  15394. }CFG_AUDIO_DETECT_INFO;
  15395. ///@brief VTS呼叫配置(对应命令 CFG_CMD_VTS_CALL_INFO)
  15396. typedef struct tagCFG_VTS_CALL_INFO
  15397. {
  15398. CFG_TIME_SECTION stuCallEnableTime; // 允许呼叫VTS的时间段
  15399. }CFG_VTS_CALL_INFO;
  15400. ///@brief 设备列表配置中每个设备的信息
  15401. typedef struct tagCFG_DEV_LIST
  15402. {
  15403. char szDevType[CFG_COMMON_STRING_128]; // 设备类型, 支持: "VTT", "VTS"
  15404. char szDevName[CFG_COMMON_STRING_128]; // 设备名称
  15405. char szIP[MAX_ADDRESS_LEN]; // ip地址
  15406. int nPort; // 端口号
  15407. char szUser[CFG_COMMON_STRING_64]; // 用户名
  15408. char szPassword[CFG_COMMON_STRING_64]; // 密码
  15409. char szDevID[CFG_COMMON_STRING_128]; // 设备ID号, 必须唯一
  15410. char szParentID[CFG_COMMON_STRING_128]; // 父节点ID, 必须唯一
  15411. }CFG_DEV_LIST;
  15412. ///@brief 设备列表配置(对应命令 CFG_CMD_DEV_LIST_INFO)
  15413. typedef struct tagCFG_DEV_LIST_INFO
  15414. {
  15415. CFG_DEV_LIST* pstuDevList; // 配置信息, 用户分配内存,大小为sizeof(CFG_DEV_LIST)*dwDevListMaxCount
  15416. DWORD dwDevListMaxCount; // pstuDevList分配内存的有效结构体个数
  15417. DWORD dwDevListRetCount; // 实际返回的结构体个数, 解析成结构体时有效
  15418. }CFG_DEV_LIST_INFO;
  15419. #define MAX_CALIBRATE_MATRIX_LEN 8 // 标定矩阵最大长度
  15420. #define MAX_CALIBRATE_MATRIX_EX_LEN 32 // 标定矩阵最大长度(扩展)
  15421. #define MAX_POINT_PAIR_LEN 10 // 主从跟踪标定点对数组最大长度
  15422. ///@brief 主从式跟踪器标定矩阵配置(对应 CFG_CMD_CALIBRATE_MATRIX 命令)
  15423. typedef struct tagCFG_CALIBRATE_MATRIX_INFO
  15424. {
  15425. char szSlaveSN[CFG_COMMON_STRING_128]; // 从设备序列号
  15426. DWORD dwMatrixLen; // 标定矩阵中有效dword个数
  15427. DWORD dwMatrix[MAX_CALIBRATE_MATRIX_LEN]; // 标定矩阵, 是一个128字节的二进制串, 为提高解析效率, 保存为32个uint32_t值
  15428. }CFG_CALIBRATE_MATRIX_INFO;
  15429. ///@brief 主相机标定点坐标(8192坐标系)
  15430. typedef struct tagCFG_MASTER_POINT
  15431. {
  15432. int nX;
  15433. int nY;
  15434. } CFG_MASTER_POINT;
  15435. ///@brief 从相机(球机)标定点坐标(ptz归一化坐标)
  15436. typedef struct tagCFG_SLAVE_POINT
  15437. {
  15438. float fPositionX; //云台水平运动位置
  15439. float fPositionY; //云台垂直运动位置
  15440. float fZoom;
  15441. } CFG_SLAVE_POINT;
  15442. ///@brief 主从跟踪标定点对配置
  15443. typedef struct tagCFG_POINT_PAIR
  15444. {
  15445. CFG_MASTER_POINT stuMasterPoint; // 主相机标定点,8192坐标系
  15446. CFG_SLAVE_POINT stuSlavePoint; // 从相机(球机)标定点,PTZ归一化坐标
  15447. } CFG_POINT_PAIR;
  15448. ///@brief 主从跟踪器标定配置具体值
  15449. typedef struct tagCFG_CALIBRATE_MATRIX_ELEMENT
  15450. {
  15451. char szMasterSN[CFG_COMMON_STRING_128]; // 主设备序列号(可选)
  15452. char szSlaveSN[CFG_COMMON_STRING_128]; // 从设备序列号
  15453. DWORD dwMatrixLen; // 标定矩阵中有效dword个数
  15454. DWORD dwMatrix[MAX_CALIBRATE_MATRIX_EX_LEN]; // 标定矩阵, 是一个128字节的二进制串, 为提高解析效率, 保存为32个uint32_t值
  15455. DWORD dwPointPairNum; // 主从跟踪标定点对的数量
  15456. CFG_POINT_PAIR stuPointPair[MAX_POINT_PAIR_LEN]; // 主从跟踪标定点对(可选),是一个数组,最多保存10组标定点对
  15457. BOOL bExpectRatio; // 表示是否需要期望倍率配置
  15458. float szExpectRatio[2]; // 期望倍率(可选,当bExpectRatio为TRUE时有效), 第一个值为云台T坐标,归一化[-1.0, 1.0],第二个值为比例
  15459. } CFG_CALIBRATE_MATRIX_ELEMENT;
  15460. ///@brief 主从式跟踪器标定矩阵扩展配置(对应 CFG_CMD_CALIBRATE_MATRIX命令)
  15461. typedef struct tagCFG_CALIBRATE_MATRIX_EX_INFO
  15462. {
  15463. DWORD nMaxCalibElement; // 主从跟踪器标定矩阵配置元素最大个数
  15464. DWORD nRetCalibElement; // 主从跟踪器标定矩阵配置元素实际个数
  15465. CFG_CALIBRATE_MATRIX_ELEMENT *pstCaliMatrixElement; // 主从跟踪器标定矩阵配置每个元素值,由用户申请内存,大小为sizeof(CFG_CALIBRATE_MATRIX_ELEMENT)*nMaxCalibElement
  15466. } CFG_CALIBRATE_MATRIX_EX_INFO;
  15467. ///@brief 防区延时配置(对应 CFG_CMD_DEFENCE_AREA_DELAY 命令)
  15468. typedef struct tagCFG_DEFENCE_AREA_DELAY_INFO
  15469. {
  15470. int nEnterDelay1; // 有进入延时的防区类型,除防区类型EM_CFG_DefenceAreaType_Entrance2外, 都使用此进入延时
  15471. int nEnterDelay2; // 只有防区类型为EM_CFG_DefenceAreaType_Entrance2, 才会使用此进入延时
  15472. int nExitDelay; // 所有有退出延时的防区, 都使用此退出延时
  15473. }CFG_DEFENCE_AREA_DELAY_INFO;
  15474. ///@brief 热成像增益模式
  15475. typedef enum tagCFG_THERMO_GAIN_MODE
  15476. {
  15477. CFG_THERMO_GAIN_MODE_UNKNOWN,
  15478. CFG_THERMO_GAIN_MODE_HIGHTEMP, // 温度异常
  15479. CFG_THERMO_GAIN_MODE_LOWTEMP, // 温度异常
  15480. CFG_THERMO_GAIN_MODE_AUTO, // 自动
  15481. } CFG_THERMO_GAIN_MODE;
  15482. ///@brief 热成像自动增益设置
  15483. typedef struct tagCFG_THERMO_AUTO_GAIN
  15484. {
  15485. int nLowToHigh; // 温度超过此设定值时,自动切换到温度异常模式
  15486. int nLHROI; // 由温度异常切换到温度异常时的ROI 百分比0~100
  15487. int nHighToLow; // 温度下降到此设定值时,自动切换到温度异常模式
  15488. int nHLROI; // 由温度异常切换到温度异常时的ROI 百分比0~100
  15489. } CFG_THERMO_AUTO_GAIN;
  15490. ///@brief 增益设置
  15491. typedef struct tagCFG_THERMO_GAIN
  15492. {
  15493. int nAgc; // 自动增益控制 [0-255]具体取值范围由能力决定
  15494. int nAgcMaxGain; // 最大自动增益 [0-255]具体取值范围由能力决定
  15495. int nAgcPlateau; // 增益均衡 具体取值范围由能力决定
  15496. }CFG_THERMO_GAIN;
  15497. ///@brief 热成像配置,单个模式的配置
  15498. typedef struct tagCFG_THERMOGRAPHY_OPTION
  15499. {
  15500. int nEZoom; // 倍数
  15501. int nThermographyGamma; // 伽马值
  15502. int nColorization; // 伪彩色,见 NET_THERMO_COLORIZATION
  15503. int nSmartOptimizer; // 智能场景优化指数 0 ~100, 具体取值范围由能力决定
  15504. BOOL bOptimizedRegion; // 是否开启感兴趣区域,只有感兴趣区域内的信息会被纳入统计用来做自动亮度调整(AGC)
  15505. int nOptimizedROIType; // 感兴趣区域类型,见 NET_THERMO_ROI
  15506. int nCustomRegion; // 自定义区域个数
  15507. CFG_RECT stCustomRegions[64]; // 自定义区域,仅在 nOptimizedROIType 为 NET_THERMO_ROI_CUSTOM 时有效
  15508. char Reserved[256]; // 此保留字段确保此结构布局与 NET_THERMO_GRAPHY_INFO 相同
  15509. CFG_THERMO_GAIN stuLowTempGain; // 温度异常下的增益设置
  15510. int nGainMode; // 增益模式,参见 CFG_THERMO_GAIN_MODE
  15511. CFG_THERMO_AUTO_GAIN stAutoGain; // 自动增益设置,只在增益模式为 CFG_THERMO_GAIN_MODE_AUTO 有效
  15512. CFG_THERMO_GAIN stuHighTempGain; // 温度异常下的增益设置
  15513. int nBaseBrightness; // 基准亮度
  15514. int nStretchIntensity; // 拉伸强度
  15515. CFG_RECT stuContrastRect; // 区域增强位置,增加本区域与周边的对比度,8192坐标系
  15516. } CFG_THERMOGRAPHY_OPTION;
  15517. ///@brief 热成像配置
  15518. typedef struct tagCFG_THERMOGRAPHY_INFO
  15519. {
  15520. int nModeCount; // 模式个数,目前只有一个
  15521. CFG_THERMOGRAPHY_OPTION stOptions[16]; // 对应不同模式的配置
  15522. } CFG_THERMOGRAPHY_INFO;
  15523. ///@brief 平场聚焦校准模式
  15524. typedef enum tagEM_FLAT_FIELD_CORRECTION_MODE
  15525. {
  15526. EM_FLAT_FIELD_CORRECTION_UNKNOWN, // 未知模式,用于表示GetNewDevConfig获取到的未知模式,SetNewDevConfig不可使用该模式
  15527. EM_FLAT_FIELD_CORRECTION_AUTO, // "Auto":自动平场聚焦校准
  15528. EM_FLAT_FIELD_CORRECTION_MANUAL, // "Manual":手动平场聚焦校准
  15529. }EM_FLAT_FIELD_CORRECTION_MODE;
  15530. ///@brief 平场聚焦校准
  15531. typedef struct tagCFG_FLAT_FIELD_CORRECTION_INFO
  15532. {
  15533. EM_FLAT_FIELD_CORRECTION_MODE emMode; // 平场聚焦校准模式,详见EM_FLAT_FIELD_CORRECTION_MODE
  15534. int nPeriod; // 自动切换周期,单位为秒,数值范围参考NET_OUT_THERMO_GETCAPS中的stFFCPeriod
  15535. } CFG_FLAT_FIELD_CORRECTION_INFO;
  15536. ///@brief 热成像视频融合配置
  15537. typedef struct tagCFG_THERMO_FUSION_INFO
  15538. {
  15539. unsigned int unMode; // 热成像图像融合模式,0原始热成像图像,1 与可见光融合模式
  15540. unsigned int unRate; // 热成像图像融合率,当Mode=1时有效,0~100数值越大可见光的占比越大
  15541. } CFG_THERMO_FUSION_INFO;
  15542. ///@brief 热成像摄像头属性的局部对比度增强配置
  15543. typedef struct tagCFG_LCE_STATE_INFO
  15544. {
  15545. unsigned int unLCEValue; // 局部对比度增强状态值 范围[0,128]
  15546. unsigned int unHistGramValue; // 直方图Y轴数据线性度,值越大图像灰度分布越宽,值越小灰度分布越集中,范围[0,32]
  15547. } CFG_LCE_STATE_INFO;
  15548. ///@brief 统计量类型
  15549. typedef enum tagCFG_STATISTIC_TYPE
  15550. {
  15551. CFG_STATISTIC_TYPE_UNKNOWN,
  15552. CFG_STATISTIC_TYPE_VAL, // 具体值
  15553. CFG_STATISTIC_TYPE_MAX, // 最大
  15554. CFG_STATISTIC_TYPE_MIN, // 最小
  15555. CFG_STATISTIC_TYPE_AVR, // 平均
  15556. CFG_STATISTIC_TYPE_STD, // 标准
  15557. CFG_STATISTIC_TYPE_MID, // 中间
  15558. CFG_STATISTIC_TYPE_ISO, // ISO
  15559. } CFG_STATISTIC_TYPE;
  15560. ///@brief 比较运算结果
  15561. typedef enum tagCFG_COMPARE_RESULT
  15562. {
  15563. CFG_COMPARE_RESULT_UNKNOWN,
  15564. CFG_COMPARE_RESULT_BELOW, // 低于
  15565. CFG_COMPARE_RESULT_MATCH, // 匹配
  15566. CFG_COMPARE_RESULT_ABOVE, // 高于
  15567. } CFG_COMPARE_RESULT;
  15568. ///@brief 测温点报警设置
  15569. typedef struct tagRADIOMETRY_ALARMSETTING
  15570. {
  15571. int nId; // 报警唯一编号 报警编号统一编码
  15572. BOOL bEnable; // 是否开启该点报警
  15573. int nResultType; // 测温报警结果类型,见 CFG_STATISTIC_TYPE,可取值:
  15574. // 点测温:具体值,
  15575. // 线测温:最大, 最小, 平均
  15576. // 区域测温:最大, 最小, 平均, 标准, 中间, ISO
  15577. int nAlarmCondition; // 报警条件,见 CFG_COMPARE_RESULT
  15578. float fThreshold; // 报警阈值温度 浮点数
  15579. float fHysteresis; // 温度误差,浮点数,比如0.1 表示正负误差在0.1范围内
  15580. int nDuration; // 阈值温度持续时间 单位:秒
  15581. } CFG_RADIOMETRY_ALARMSETTING;
  15582. ///@brief 测温点报警设置Ex
  15583. typedef struct tagRADIOMETRY_ALARMSETTING_EX
  15584. {
  15585. float fPreThreshold; // 预报警阈值,使用该字段需将bUsefPreThreshold置为TRUE
  15586. UINT nPreDuration; // 预报警温度持续时间;单位:秒
  15587. BOOL bUsefPreThreshold; // 预报警阈值使能
  15588. char byReserved[252]; // 保留字节
  15589. } CFG_RADIOMETRY_ALARMSETTING_EX;
  15590. ///@brief 测温规则本地参数配置
  15591. typedef struct tagRADIOMETRY_LOCALPARAM
  15592. {
  15593. BOOL bEnable; // 是否启用本地配置
  15594. float fObjectEmissivity; // 目标辐射系数 浮点数 0~1
  15595. int nObjectDistance; // 目标距离
  15596. int nRefalectedTemp; // 目标反射温度(仅做兼容性保留。新对接使用fReflectedTemp字段)
  15597. } CFG_RADIOMETRY_LOCALPARAM;
  15598. ///@brief 区域测温的子类型
  15599. typedef enum tagEM_CFG_AREA_SUBTYPE
  15600. {
  15601. EM_CFG_AREA_SUBTYPE_UNKNOWN,
  15602. EM_CFG_AREA_SUBTYPE_RECT, // 矩形
  15603. EM_CFG_AREA_SUBTYPE_ELLIPSE, // 椭圆
  15604. EM_CFG_AREA_SUBTYPE_POLYGON, // 多边形
  15605. } EM_CFG_AREA_SUBTYPE;
  15606. ///@brief 测温规则
  15607. typedef struct tagCFG_RADIOMETRY_RULE
  15608. {
  15609. BOOL bEnable; // 测温使能
  15610. int nPresetId; // 预置点编号
  15611. int nRuleId; // 规则编号
  15612. char szName[128]; // 自定义名称
  15613. int nMeterType; // 测温模式的类型,见 NET_RADIOMETRY_METERTYPE
  15614. CFG_POLYGON stCoordinates[64]; // 测温点坐标 使用相对坐标体系,取值均为0~8191
  15615. int nCoordinateCnt; // 测温点坐标实际个数
  15616. int nSamplePeriod; // 温度采样周期 单位 : 秒
  15617. CFG_RADIOMETRY_ALARMSETTING stAlarmSetting[64]; // 测温点报警设置
  15618. int nAlarmSettingCnt; // 测温点报警设置实际个数
  15619. CFG_RADIOMETRY_LOCALPARAM stLocalParameters; // 本地参数配置
  15620. EM_CFG_AREA_SUBTYPE emAreaSubType; // 区域测温的子类型
  15621. } CFG_RADIOMETRY_RULE;
  15622. ///@brief 测温规则扩展
  15623. typedef struct tagCFG_RADIOMETRY_RULE_EX
  15624. {
  15625. int nBlackBodyTemp; // 标定黑体温度,精度0.1,实际值扩大了10倍;比如显示是38度,实际该值获取的是380;如果需要设置39度,如该值需要传入390。
  15626. BOOL bUsefReflectedTemp; // 高精度目标反射温度使能
  15627. float fReflectedTemp; // 目标反射温度,使用此字段需赋值bUsefReflectedTemp为true
  15628. CFG_RADIOMETRY_ALARMSETTING_EX stuAlarmSettingEx[64]; // 测温点报警设置Ex,数组有效个数为CFG_RADIOMETRY_RULE.nAlarmSettingCnt
  15629. float fDistanceDecimalPart; // 物体距离(小数部分)
  15630. char byReserved[240]; // 保留字节
  15631. } CFG_RADIOMETRY_RULE_EX;
  15632. ///@brief 测温规则配置结构
  15633. typedef struct tagCFG_RADIOMETRY_RULE_INFO
  15634. {
  15635. int nCount; // 规则个数
  15636. CFG_RADIOMETRY_RULE stRule[512]; // 测温规则
  15637. CFG_RADIOMETRY_RULE_EX stRuleEx[512]; // 测温规则-扩展新增的字段
  15638. } CFG_RADIOMETRY_RULE_INFO;
  15639. ///@brief 温度统计
  15640. typedef struct tagCFG_TEMP_STATISTICS
  15641. {
  15642. BOOL bEnable; // 是否开启温度统计
  15643. char szName[128]; // 测温项的名字
  15644. int nMeterType; // 测温模式的类型,见 NET_RADIOMETRY_METERTYPE
  15645. int nPeriod; // 保存温度数据周期
  15646. } CFG_TEMP_STATISTICS;
  15647. ///@brief 温度统计配置结构
  15648. typedef struct tagCFG_TEMP_STATISTICS_INFO
  15649. {
  15650. int nCount; // 个数
  15651. CFG_TEMP_STATISTICS stStatistics[64]; // 温度统计
  15652. } CFG_TEMP_STATISTICS_INFO;
  15653. ///@brief 温度单位
  15654. typedef enum tagCFG_TEMPERATURE_UNIT
  15655. {
  15656. TEMPERATURE_UNIT_UNKNOWN,
  15657. TEMPERATURE_UNIT_CENTIGRADE, // 摄氏度
  15658. TEMPERATURE_UNIT_FAHRENHEIT, // 华氏度
  15659. } CFG_TEMPERATURE_UNIT;
  15660. ///@brief 热成像测温全局配置
  15661. typedef struct tagCFG_THERMOMETRY_INFO
  15662. {
  15663. int nRelativeHumidity; // 相对湿度
  15664. float fAtmosphericTemperature; // 大气温度
  15665. float fObjectEmissivity; // 物体辐射系数
  15666. int nObjectDistance; // 物体距离
  15667. float fReflectedTemperature; // 物体反射温度
  15668. int nTemperatureUnit; // 温度单位,见 TEMPERATURE_UNIT
  15669. BOOL bIsothermEnable; // 色标功能使能
  15670. int nMinLimitTemp; // 等温线下限温度值
  15671. int nMediumTemp; // 等温线中位温度值
  15672. int nMaxLimitTemp; // 等温线上限温度值
  15673. int nSaturationTemp; // 等温线饱和温度值
  15674. CFG_RECT stIsothermRect; // 色温条矩形区域(OSD 位置),使用相对坐标体系,取值均为0-8191
  15675. BOOL bColorBarDisplay; // 是否显示色标条(OSD 叠加)
  15676. BOOL bHotSpotFollow; // 是否开启热点探测追踪使能
  15677. BOOL bTemperEnable; // 测温开关
  15678. CFG_RGBA stHighCTMakerColor; // 高色温标注颜色
  15679. CFG_RGBA stLowCTMakerColor; // 低色温标注颜色
  15680. BOOL bColdSpotFollow; // 是否开启冷点探测追踪使能
  15681. float fDistanceDecimalPart; // 物体距离(小数部分)
  15682. char szResvered[1016]; // 保留字节
  15683. } CFG_THERMOMETRY_INFO;
  15684. ///@brief 近光灯信息
  15685. typedef struct tagCFG_NEARLIGHT_INFO
  15686. {
  15687. BOOL bEnable; // 是否使能,TRUE使能,FALSE不使能
  15688. DWORD dwLightPercent; // 灯光亮度百分比值(0~100)
  15689. DWORD dwAnglePercent; // 灯光角度百分比值(0~100)
  15690. }CFG_NEARLIGHT_INFO;
  15691. ///@brief 远光灯信息
  15692. typedef struct tagCFG_FARLIGHT_INFO
  15693. {
  15694. BOOL bEnable; // 是否使能,TRUE使能,FALSE不使能
  15695. DWORD dwLightPercent; // 灯光亮度百分比值(0~100)
  15696. DWORD dwAnglePercent; // 灯光角度百分比值(0~100)
  15697. }CFG_FARLIGHT_INFO;
  15698. ///@brief 灯光模式
  15699. typedef enum tagEM_CFG_LIGHTING_MODE
  15700. {
  15701. EM_CFG_LIGHTING_MODE_UNKNOWN, // 未知
  15702. EM_CFG_LIGHTING_MODE_MANUAL, // 手动
  15703. EM_CFG_LIGHTING_MODE_ZOOMPRIO, // 倍率优先
  15704. EM_CFG_LIGHTING_MODE_TIMING, // 定时模式
  15705. EM_CFG_LIGHTING_MODE_AUTO, // 自动
  15706. EM_CFG_LIGHTING_MODE_OFF, // 关闭模式
  15707. EM_CFG_LIGHTING_MODE_SMARTLIGHT, // 智能灯光模式(球机使用)
  15708. EM_CFG_LIGHTING_MODE_EXCLUSIVEMANUAL, // 支持多种灯光
  15709. EM_CFG_LIGHTING_MODE_FORCEON, // 强制打开灯光
  15710. }EM_CFG_LIGHTING_MODE;
  15711. #define MAX_LIGHTING_NUM 16
  15712. ///@brief 灯光设置详情
  15713. typedef struct tagCFG_LIGHTING_DETAIL
  15714. {
  15715. int nCorrection; // 灯光补偿 (0~4) 倍率优先时有效
  15716. int nSensitive; // 灯光灵敏度(0~5)倍率优先时有效,默认为3
  15717. EM_CFG_LIGHTING_MODE emMode; // 灯光模式
  15718. int nNearLight; // 近光灯有效个数
  15719. CFG_NEARLIGHT_INFO stuNearLights[MAX_LIGHTING_NUM]; // 近光灯列表
  15720. int nFarLight; // 远光灯有效个数
  15721. CFG_FARLIGHT_INFO stuFarLights[MAX_LIGHTING_NUM]; // 远光灯列表
  15722. }CFG_LIGHTING_DETAIL;
  15723. #define MAX_LIGHTING_DETAIL_NUM 16
  15724. ///@brief 灯光设置(对应 CFG_CMD_LIGHTING 命令)
  15725. typedef struct tagCFG_LIGHTING_INFO
  15726. {
  15727. int nLightingDetailNum; // 灯光设置有效个数
  15728. CFG_LIGHTING_DETAIL stuLightingDetail[MAX_LIGHTING_DETAIL_NUM]; // 灯光设置信息列表
  15729. }CFG_LIGHTING_INFO;
  15730. ///@brief 灯光计划设置(对应 CFG_CMD_LIGHTINGSCHEDULE 命令),当 CFG_CMD_LIGHTING 配置中Mode为Timing时有效
  15731. typedef struct tagCFG_LIGHTINGSCHEDULE_INFO
  15732. {
  15733. CFG_TIME_SCHEDULE stuTimeSchedule; // 报警计划
  15734. }CFG_LIGHTINGSCHEDULE_INFO;
  15735. ///@brief 雨刷工作模式
  15736. typedef enum tagEM_CFG_RAINBRUSHMODE_MODE
  15737. {
  15738. EM_CFG_RAINBRUSHMODE_MODE_UNKNOWN, // 未知
  15739. EM_CFG_RAINBRUSHMODE_MODE_MANUAL, // 手动模式
  15740. EM_CFG_RAINBRUSHMODE_MODE_TIMING, // 定时模式
  15741. EM_CFG_RAINBRUSHMODE_MODE_AUTO, // 自动感应模式
  15742. EM_CFG_RAINBRUSHMODE_MODE_TOUR, // 雨刷巡航模式
  15743. EM_CFG_RAINBRUSHMODE_MODE_CYCLE, // 周期模式
  15744. }EM_CFG_RAINBRUSHMODE_MODE;
  15745. ///@brief 雨刷使能电平模式
  15746. typedef enum tagEM_CFG_RAINBRUSHMODE_ENABLEMODE
  15747. {
  15748. EM_CFG_RAINBRUSHMODE_ENABLEMODE_UNKNOWN, // 未知
  15749. EM_CFG_RAINBRUSHMODE_ENABLEMODE_LOW, // 低电平有效(常闭)
  15750. EM_CFG_RAINBRUSHMODE_ENABLEMODE_HIGH, // 高电平有效(常开)
  15751. }EM_CFG_RAINBRUSHMODE_ENABLEMODE;
  15752. ///@brief 雨刷模式相关配置(对应 CFG_RAINBRUSHMODE_INFO 命令)
  15753. typedef struct tagCFG_RAINBRUSHMODE_INFO
  15754. {
  15755. EM_CFG_RAINBRUSHMODE_MODE emMode; // 雨刷工作模式
  15756. EM_CFG_RAINBRUSHMODE_ENABLEMODE emEnableMode; // 雨刷使能电平模式
  15757. int nPort; // 雨刷使用的IO端口,-1表示未接入设备,-2表示该字段无效(设备未传送该字段)
  15758. int nSensitivity; // 雨刷灵敏度, 只有当mode为Auto时有效, 范围[0, 10]
  15759. }CFG_RAINBRUSHMODE_INFO;
  15760. #define MAX_EMERGENCY_REOCRD_CLIENT_NUM 8 // 可以紧急录像存储的最大客户端数
  15761. ///@brief 客户端的紧急录像配置信息
  15762. typedef struct tagCFG_EMERGENCY_RECORD_CLIENT
  15763. {
  15764. char szDevID[CFG_COMMON_STRING_128]; // 客户端字符串标识作为对象名称,可以是客户端mac地址,若客户端是设备,则使用设备序列号
  15765. BOOL bEnable; // 使能
  15766. int nMaxTime; // 拉流异常断开之后进行紧急存储的最大时间,
  15767. }CFG_EMERGENCY_RECORD_CLIENT;
  15768. ///@brief 紧急录像存储配置(对应 CFG_CMD_EMERGENCY_RECORD_FOR_PULL)
  15769. typedef struct tagCFG_EMERGENCY_RECORD_FOR_PULL_INFO
  15770. {
  15771. int nClientNum; // 有效客户端紧急录像配置个数
  15772. CFG_EMERGENCY_RECORD_CLIENT stuEmRecordInfo[MAX_EMERGENCY_REOCRD_CLIENT_NUM];// 客户端紧急录像配置信息
  15773. }CFG_EMERGENCY_RECORD_FOR_PULL_INFO;
  15774. ///@brief 高频次报警
  15775. typedef struct tagCFG_HIGH_FREQUENCY
  15776. {
  15777. int nPeriod; // 统计周期, 以秒为单位, 默认30分钟(1800s)
  15778. int nMaxCount; // 在对应统计周期内最大允许上报报警数
  15779. }CFG_HIGH_FREQUENCY;
  15780. ///@brief 告警屏蔽规则配置(对应 CFG_CMD_ALARM_SHIELD_RULE)
  15781. typedef struct tagCFG_ALARM_SHIELD_RULE_INFO
  15782. {
  15783. CFG_HIGH_FREQUENCY stuHighFreq; // 高频次报警, 在一定周期内允许上报的报警次数,以此过滤对于报警的频繁上报导致信息干扰
  15784. }CFG_ALARM_SHIELD_RULE_INFO;
  15785. #define CFG_MAX_VIDEOIN_ANALYSER_NUM 3 // 每个视频通道内的最大视频分析器数量
  15786. #define CFG_MAX_ANALYSE_RULE_GROUP_NUM 8 // 视频分析规则组最大数量
  15787. ///@brief 智能分析规则组, 一个组中包含同类型的多条规则
  15788. typedef struct tagCFG_ANALYSERULE_GROUP
  15789. {
  15790. DWORD dwRuleType; // 规则类型,详见dhnetsdk.h中"智能分析事件类型"
  15791. int nRuleStructSize; // 规则类型对应的规则结构的大小, parse时的输出参数, packet时是输入参数
  15792. BOOL bEnable; // 使能
  15793. BOOL bEventHandlerEnable; // 报警联动使能, TRUE规则组报警联动使能, 组内所有规则使用共同的联动项; FALSE使用规则中各自的联动项
  15794. CFG_ALARM_MSG_HANDLE stuEventHandler; // 规则组报警联动
  15795. CFG_TIME_SCHEDULE stuEventTimeSection; // 规则组报警联动时间表
  15796. int nRuleNum; // 规则数量, parse时的输出参数, packet时是输入参数
  15797. char* pRuleBuf; // 规则缓冲, 需要用户分配内存, 用于存放规则信息
  15798. // 如规则类型为警戒线, pRuleBuf的内容就是多个CFG_CROSSLINE_INFO
  15799. int nRuleBufSize; // 规则缓冲大小, 用户填写
  15800. }CFG_ANALYSERULE_GROUP;
  15801. ///@brief 视频分析器信息
  15802. typedef struct tagCFG_VIDEO_IN_ANALYSER_INFO
  15803. {
  15804. CFG_ANALYSEGLOBAL_INFO stuGlobal; // 全局配置
  15805. CFG_ANALYSEMODULES_INFO stuModules; // 模块配置
  15806. CFG_ANALYSERULE_GROUP stuRuleGroup[CFG_MAX_ANALYSE_RULE_GROUP_NUM]; // 规则配置, 数组内元素的规则缓冲需要用户分配内存
  15807. int nRuleGroupNum; // 规则组数量
  15808. }CFG_VIDEOIN_ANALYSER_INFO;
  15809. ///@brief 视频通道内的智能规则, 该结构体很大, 使用时在堆中分配内存
  15810. typedef struct tagCFG_VIDEO_IN_ANALYSE_RULE_INFO
  15811. {
  15812. int nAnalyserNum; // 分析器数量
  15813. CFG_VIDEOIN_ANALYSER_INFO stuAnalysers[CFG_MAX_VIDEOIN_ANALYSER_NUM]; // 分析器信息
  15814. }CFG_VIDEOIN_ANALYSE_RULE_INFO;
  15815. ///@brief 工作模式
  15816. typedef enum tagEM_CFG_ACCESS_WORD_MODE
  15817. {
  15818. EM_CFG_ACCESS_WORD_MODE_UNKNOWN, // 未知
  15819. EM_CFG_ACCESS_WORD_MODE_NORMAL, // "Normal" 正常模式
  15820. EM_CFG_ACCESS_WORD_MODE_CLEAN, // "Clean" 打扫模式
  15821. EM_CFG_ACCESS_WORD_MODE_DECORATION, // "Decoration" 装修模式
  15822. EM_CFG_ACCESS_WORD_MODE_UNUSED, // "Unused" 停用模式
  15823. EM_CFG_ACCESS_WORD_MODE_OUTSTANDING, // "Outstanding" 欠费模式
  15824. }EM_CFG_ACCESS_WORD_MODE;
  15825. ///@brief 门锁工作模式(对应 CFG_CMD_ACCESS_WORK_MODE)
  15826. typedef struct tagCFG_ACCESS_WORK_MODE_INFO
  15827. {
  15828. EM_CFG_ACCESS_WORD_MODE emMode; // 工作模式
  15829. }CFG_ACCESS_WORK_MODE_INFO;
  15830. ///@brief 对讲远程方时间限制
  15831. typedef struct tagCFG_VIDEO_TALK_TIME_LIMIT
  15832. {
  15833. int nMaxRingingTime; // 来电振铃最大时长,超时自动挂断, 1-600秒
  15834. int nMaxConnectingTime; // 最大通话时长,超时自动挂断, 1-600分钟
  15835. UINT nMaxLeaveWordTime; // 最大自动留言时长,超时自动结束,1-600秒
  15836. } CFG_VIDEO_TALK_TIME_LIMIT;
  15837. ///@brief 远程设备类型
  15838. typedef enum tagEM_CFG_VT_TYPE
  15839. {
  15840. EM_CFG_VT_TYPE_VTH = 0, // VTH
  15841. EM_CFG_VT_TYPE_VTO, // VTO
  15842. EM_CFG_VT_TYPE_VTS, // VTS
  15843. EM_CFG_VT_TYPE_MAX = 3,
  15844. } EM_CFG_VT_TYPE;
  15845. ///@brief 视频对讲电话通用配置(CFG_CMD_VIDEO_TALK_PHONE_GENERAL)
  15846. typedef struct tagCFG_VIDEO_TALK_PHONE_GENERAL
  15847. {
  15848. char szRingFile[MAX_PATH]; // 铃声文件路径
  15849. int nRingVolume; // 铃音音量, 0-100
  15850. int nTalkVolume; // 通话音量, 0-100
  15851. CFG_NET_TIME stuDisableRingStartTime; // 免扰开始时间
  15852. CFG_NET_TIME stuDisableRingEndTime; // 免扰结束时间
  15853. CFG_VIDEO_TALK_TIME_LIMIT stuTimeLimit[EM_CFG_VT_TYPE_MAX]; // 每个元素对应一种远程设备类型,当前只有VTS有效
  15854. // 0-VTH,1-VTO,2-VTS
  15855. int nMaxMonitorTime; // 预览最大时长,超时自动结束, 1-600分钟
  15856. int nMaxRecordTime; // 录像最大时长,超时自动结束, 15-300秒
  15857. BOOL bSnapEnable; // 呼叫联动抓图使能
  15858. // 抓图后上传路径见配置项RecordStoragePoint的EventSnapShot
  15859. BOOL bRingSoundEnable; // 呼叫铃声使能
  15860. char szVthRingFile[CFG_COMMON_STRING_128]; // 室内机被室内机呼叫的铃声文件
  15861. UINT nVthRingVolume; // 室内机被室内机呼叫铃声音量
  15862. BOOL bLeaveMsgSoundEnable; // 留影留言提示声使能
  15863. BOOL bSilenceEnable; // 是否静音
  15864. UINT nMaxMonitorIPCTime; // IPC预览最大时长,超时自动结束,0-10小时,单位为秒
  15865. UINT nReviseTime; // 免扰时间使用,当系统时间改变的时候,增加这个时间来产生新的免扰结束时间,单位秒
  15866. BOOL bTalkRecordUpload; // 呼叫记录是否上传
  15867. UINT nSnapShotCount; // 呼叫抓拍图片张数,1-5张
  15868. BOOL bRemoteControl; // 是否接受远程控制操作
  15869. // true时,在客户端可远程操作设备上智能家居设备、设备的布撤防动作。
  15870. BOOL bLeaveMessageEnable; // 留言记录是否开启
  15871. BOOL bLeaveMessageUpload; // 留言记录是否上传
  15872. BOOL bLocalVideoEnable; // 本地视频是否开启
  15873. BOOL bPublishInfoOverlayingEnable; // 公告信息叠加使能控制
  15874. } CFG_VIDEO_TALK_PHONE_GENERAL;
  15875. ///@brief 抓图合成配置
  15876. typedef struct tagCFG_TRAFFIC_SNAP_MOSAIC_INFO
  15877. {
  15878. BOOL bEnable; // 是否做图片合成
  15879. int nPicCompressRate; // 图片压缩比,10-100
  15880. BOOL bUploadNormalSnap; // 是否上传原始图片
  15881. } CFG_TRAFFIC_SNAP_MOSAIC_INFO;
  15882. // 交通抓拍次数
  15883. #define TRAFFIC_SNAP_COUNT 4
  15884. ///@brief 抓拍设置,对应一个规则
  15885. typedef struct tagCFG_SNAPSHOT_RULE
  15886. {
  15887. int nType; // 见 dhnetsdk.h 中“智能分析事件类型”宏定义
  15888. int nRepeatInterval; // 1~1440,单位:分钟,默认1440
  15889. int nSnapShotType[TRAFFIC_SNAP_COUNT]; // 抓拍类型数组,0:未定义,1:近景,2:远景
  15890. int nSingleInterval[TRAFFIC_SNAP_COUNT];// 抓图时间间隔数组,
  15891. // 第一个时间:5~180 默认10 (违章停车规则有效)单位秒
  15892. // 第二、三、四个时间:1秒~60分默认20秒
  15893. } CFG_SNAPSHOT_RULE;
  15894. ///@brief 抓拍设置,对应一个场景
  15895. typedef struct tagCFG_SCENE_SNAPSHOT_RULE
  15896. {
  15897. int nPresetID; // 场景预置点号
  15898. int nCount; // 规则个数
  15899. CFG_SNAPSHOT_RULE stRule[32]; // 单规则设置
  15900. } CFG_SCENE_SNAPSHOT_RULE;
  15901. ///@brief 场景抓拍设置
  15902. typedef struct tagCFG_SCENE_SNAPSHOT_RULE_INFO
  15903. {
  15904. int nCount; // 场景个数
  15905. CFG_SCENE_SNAPSHOT_RULE stScene[32]; // 单场景配置
  15906. } CFG_SCENE_SNAPSHOT_RULE_INFO;
  15907. #define CFG_MAX_PTZTOUR_NUM 64 // 巡航路径数量
  15908. #define CFG_MAX_PTZTOUR_PRESET_NUM 64 // 巡航路径包含的预置点数量
  15909. ///@brief 巡航路径中的预置点
  15910. typedef struct tagCFG_PTZTOUR_PRESET
  15911. {
  15912. int nPresetID; // 预置点编号
  15913. int nDuration; // 在改预置点的停留时间, 单位秒
  15914. int nSpeed; // 到达该预置点的转动速度, 1~10
  15915. BOOL bEnable; // 预置点聚焦使能,0为不使能,1为使能
  15916. } CFG_PTZTOUR_PRESET;
  15917. ///@brief 巡航路径
  15918. typedef struct tagCFG_PTZTOUR_SINGLE
  15919. {
  15920. BOOL bEnable; // 使能
  15921. char szName[CFG_COMMON_STRING_64]; // 名称
  15922. int nPresetsNum; // 预置点数量
  15923. CFG_PTZTOUR_PRESET stPresets[CFG_MAX_PTZTOUR_PRESET_NUM]; // 该路径包含的预置点参数
  15924. } CFG_PTZTOUR_SINGLE;
  15925. ///@brief 云台巡航路径配置
  15926. typedef struct tagCFG_PTZTOUR_INFO
  15927. {
  15928. int nCount; // 巡航路径数量
  15929. CFG_PTZTOUR_SINGLE stTours[CFG_MAX_PTZTOUR_NUM]; // 巡航路径, 每个通道包含多条巡航路径
  15930. } CFG_PTZTOUR_INFO;
  15931. ///@brief 门口机类型
  15932. typedef enum tagEM_CFG_VTO_TYPE
  15933. {
  15934. EM_CFG_VTO_TYPE_UNKNOW =0 , //未知
  15935. EM_CFG_VTO_TYPE_VTO , //单元门口机
  15936. EM_CFG_VTO_TYPE_WALL , //围墙机
  15937. EM_CFG_VTO_TYPE_MAX ,
  15938. }EM_CFG_VTO_TYPE;
  15939. ///@brief 门口机信息
  15940. typedef struct tagCFG_VTO_INFO
  15941. {
  15942. BOOL bEnable; // 使能
  15943. char szID[CFG_COMMON_STRING_64]; // 门口机标识
  15944. char szIP[CFG_COMMON_STRING_64]; // IP地址
  15945. unsigned int nPort; // 端口
  15946. EM_CFG_VTO_TYPE emType; // 门口机类型
  15947. char szMidNum[CFG_COMMON_STRING_32]; // 门口机中号
  15948. char szMachineAddress[CFG_COMMON_STRING_128]; // 门口机所处位置
  15949. char szLoginUsername[CFG_COMMON_STRING_32]; // 三代登录用户名
  15950. char szLoginPassWord[CFG_COMMON_STRING_32]; // 三代登录密码
  15951. char szRingFile[CFG_COMMON_STRING_256]; //门口机呼叫室内机,室内机的铃声文件
  15952. int nRingVolume; // 室内机的铃声大小
  15953. UINT nLockNumber; // 门口机可支持锁数量
  15954. BOOL bUseEx; // 扩展的用户名和密码是否有效
  15955. char szLoginUsernameEx[CFG_COMMON_STRING_128]; // 三代登录用户名扩展,设备当前最大支持32位长度且不包含'\0',改动是为了兼容设备
  15956. char szLoginPassWordEx[CFG_COMMON_STRING_128]; // 三代登录密码扩展,设备当前最大支持32位长度且不包含'\0',改动是为了兼容设备
  15957. }CFG_VTO_INFO;
  15958. ///@brief 门口机信息列表
  15959. typedef struct tagCFG_VTO_LIST
  15960. {
  15961. int nVTONum; // 门口机数量
  15962. CFG_VTO_INFO stuVTOInfos[CFG_MAX_VTO_NUM]; // 门口机信息
  15963. }CFG_VTO_LIST;
  15964. ///@brief 触摸屏坐标点
  15965. typedef struct tagCFG_TS_POINT
  15966. {
  15967. unsigned int nX; //坐标范围[0 - 65535]
  15968. unsigned int nY; //坐标范围[0 - 65535]
  15969. }CFG_TS_POINT;
  15970. ///@brief 触摸屏校准配置
  15971. typedef struct tagCFG_TSPOINT_INFO
  15972. {
  15973. CFG_TS_POINT stDisplay[TS_POINT_NUM]; //显示坐标,现在只支持3个点
  15974. CFG_TS_POINT stScreen[TS_POINT_NUM]; //屏幕坐标,现在只支持3个点
  15975. }CFG_TSPOINT_INFO;
  15976. ///@brief 室内机类型
  15977. typedef enum tagEM_CFG_VTH_TYPE
  15978. {
  15979. EM_CFG_VTH_TYPE_UNKNOW=0 , // 未知
  15980. EM_CFG_VTH_TYPE_MAIN , // 主室内机
  15981. EM_CFG_VTH_TYPE_SUB , // 子室内机
  15982. }EM_CFG_VTH_TYPE;
  15983. ///@brief 设备使用场景
  15984. typedef enum tagEM_CFG_VTH_APPTYPE
  15985. {
  15986. EM_CFG_VTH_APPTYPE_UNKNOW=0 , //未知
  15987. EM_CFG_VTH_APPTYPE_COMMON , //正常室内机
  15988. EM_CFG_VTH_APPTYPE_MANAGER , //管理中心
  15989. }EM_CFG_VTH_APPTYPE;
  15990. ///@brief 室内机号码信息
  15991. typedef struct tagCFG_VTH_NUMBER_INFO
  15992. {
  15993. char szShortNumber[CFG_COMMON_STRING_32]; // 短号 范围[1,9999],标示不同室内机;如果是室内分机,短号则为"9901-N" N为1,2,3.
  15994. char szMiddleNumber[CFG_COMMON_STRING_32]; // 中号 格式:小区号(1位)+幢号(2位)+单元号(1位)+短号(4位)
  15995. char szVirtualNumber[CFG_COMMON_STRING_32]; // 室内机虚号 网络呼叫时,此设备对外的号码,如同手机号码
  15996. EM_CFG_VTH_TYPE emVthType; // 室内机类型
  15997. char szMainNumber[CFG_COMMON_STRING_32]; // 主房间号 范围[1,9999] emVthType为EM_CFG_VTH_TYPE_SUB时有效
  15998. char szSubNumber[CFG_COMMON_STRING_32]; // 分机号 范围[1,5] emVthType为是EM_CFG_VTH_TYPE_SUB时有效
  15999. char szMainDeviceIP[CFG_COMMON_STRING_64]; // 主室内机IP 用于子室内的配置同步给主室内机 emVthType 是EM_CFG_VTH_TYPE_SUB时有效,
  16000. EM_CFG_VTH_APPTYPE emVthAppType; // 设备使用场景
  16001. int nLockState; // 锁定状态,0表示不锁定,默认值; 1表示锁定
  16002. char szUsername[MAX_USERNAME_LEN]; // 三代用户名
  16003. char szPassword[MAX_PASSWORD_LEN]; // 三代密码
  16004. }CFG_VTH_NUMBER_INFO;
  16005. ///@brief GPS工作模式
  16006. typedef enum tagEM_CFG_GPS_MODE
  16007. {
  16008. EM_CFG_GPS_MODE_UNKNOWN,
  16009. EM_CFG_GPS_MODE_GPS, // GPS
  16010. EM_CFG_GPS_MODE_BEIDOU, // BEIDOU
  16011. EM_CFG_GPS_MODE_GLONASS, // GLONASS
  16012. EM_CFG_GPS_MODE_MIX, // MIX
  16013. EM_CFG_GPS_MODE_END = 5, // 仅用于标识总数
  16014. } EM_CFG_GPS_MODE;
  16015. ///@brief 平台类型
  16016. typedef enum tagEM_CFG_TRANSFER_PLATFORM
  16017. {
  16018. EM_CFG_TRANSFER_PLATFORM_UNKNOWN,
  16019. EM_CFG_TRANSFER_PLATFORM_DSS, // DSS
  16020. EM_CFG_TRANSFER_PLATFORM_JTBB, // JTBB
  16021. EM_CFG_TRANSFER_PLATFORM_END = 3, // 仅用于标识总数
  16022. } EM_CFG_TRANSFER_PLATFORM;
  16023. ///@brief 单个GPS配置
  16024. typedef struct tagCFG_GPS_INFO
  16025. {
  16026. BOOL bEnable; // 是否使能
  16027. int nSampleInterval; // 硬件采集周期, 单位毫秒
  16028. int nNotifyInterval; // 应用程序通知周期, 单位毫秒
  16029. BOOL bSyncTime; // 是否将GPS时间同步到设备
  16030. EM_CFG_GPS_MODE emCurMode; // 模块当前工作模式
  16031. int nSupportModes; // 支持的定位模式数量
  16032. EM_CFG_GPS_MODE emSupportModes[EM_CFG_GPS_MODE_END]; // 模块支持的定位模式
  16033. char szCurModule[CFG_COMMON_STRING_64]; // 当前模块类型标志
  16034. BOOL bShowLocation; // 是否支持地理位置显示
  16035. int nSaveDays; // GPS保存天数,用于补传, 单位:天,范围:0-365
  16036. int nTransferPlatform; // 支持补传的平台数量
  16037. EM_CFG_TRANSFER_PLATFORM emTransferPlatform[EM_CFG_TRANSFER_PLATFORM_END]; // 支持补传的平台,数据接收方
  16038. } CFG_GPS_INFO;
  16039. #define CFG_GPS_INFO_MAX 16
  16040. ///@brief GPS配置
  16041. typedef struct tagCFG_GPS_INFO_ALL
  16042. {
  16043. int nGps; // GPS个数
  16044. CFG_GPS_INFO stGps[CFG_GPS_INFO_MAX]; // GPS配置, 每个GPS设备对应一个配置
  16045. } CFG_GPS_INFO_ALL;
  16046. ///@brief VTO设备类型
  16047. typedef enum tagNET_CFG_VTO_TYPE
  16048. {
  16049. NET_CFG_VTO_TYPE_UNKNOWN = 0, // 未知
  16050. NET_CFG_VTO_TYPE_VILLA, // 1 别墅机
  16051. NET_CFG_VTO_TYPE_DOOR, // 2 门口机
  16052. NET_CFG_VTO_TYPE_LADDER, // 3 梯控机
  16053. NET_CFG_VTO_TYPE_APART, // 4 模块化门口机
  16054. NET_CFG_VTO_TYPE_SECOND, // 5 二次确认机
  16055. NET_CFG_VTO_TYPE_FACE, // 6 目标录入机
  16056. NET_CFG_VTO_TYPE_CONTROLLER, // 7 控制器
  16057. NET_CFG_VTO_TYPE_MAX,
  16058. } NET_CFG_VTO_TYPE;
  16059. ///@brief 门口机类型
  16060. ///@brief VTO基本信息
  16061. typedef struct tagCFG_VTO_BASIC_INFO
  16062. {
  16063. char szNumber[AV_CFG_DeviceNo_Len]; // 门口机编号
  16064. NET_CFG_VTO_TYPE emCfgVtoType; // 设备类型
  16065. EM_CFG_VTO_TYPE emType; // 门口机类型 1单元门口机 2围墙机
  16066. char szAnalogVersion[CFG_COMMON_STRING_64]; // 模拟系统版本
  16067. BOOL bFaceDetect; // 目标识别使 1开启 0关闭
  16068. int nPositon; // VTO所在楼层位置 Int32, 0 表示无效
  16069. // 1,2,…表示地上一层,二层 -1,-2,…表示地下一层,二层
  16070. }CFG_VTO_BASIC_INFO;
  16071. ///@brief 地点类型
  16072. typedef enum tagEM_CFG_SHORTCUT_CALL_POSITION_TYPE
  16073. {
  16074. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_UNKNOWN, // 未知
  16075. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_SUPERMARKET, // 超市
  16076. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_RESTAURANT, // 餐厅
  16077. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_HOSPITAL, // 医院
  16078. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_MANAGER, // 管理中心
  16079. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_CUSTOM, // 自定义
  16080. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_FRUITSTORE, // 水果店
  16081. }EM_CFG_SHORTCUT_CALL_POSITION_TYPE;
  16082. ///@brief 快捷号信息
  16083. typedef struct tagCFG_SHORTCUT_CALL
  16084. {
  16085. char szCallNumber[CFG_COMMON_STRING_64]; // 快捷号
  16086. EM_CFG_SHORTCUT_CALL_POSITION_TYPE emPositionType; // 地点类型
  16087. }CFG_SHORTCUT_CALL;
  16088. ///@brief 快捷号配置
  16089. typedef struct tagCFG_SHORTCUT_CALL_INFO
  16090. {
  16091. int nMaxNum; // 最大结构体个数,与 pShortcutCallInfo 指向结构体个数保持一致
  16092. CFG_SHORTCUT_CALL* pShortcutCallInfo; // 用于存储快捷号信息的结构体指针,由用户申请
  16093. int nValidNum; // 有效结构体个数,获取时由sdk填写,设置时由用户填写
  16094. }CFG_SHORTCUT_CALL_INFO;
  16095. ///@brief 记录集GPSLocation的版本号
  16096. typedef struct tagCFG_LOCATION_VER_INFO
  16097. {
  16098. unsigned int nVer; // 版本号
  16099. } CFG_LOCATION_VER_INFO;
  16100. ///@brief 设备可访问地址过滤配置 CFG_CMD_PARKING_SPACE_ACCESS_FILTER
  16101. typedef struct tagCFG_PARKING_SPACE_ACCESS_FILTER_INFO
  16102. {
  16103. BOOL bEnable; // 过滤使能
  16104. int nTrustListNum; // 允许名单IP数量
  16105. char szTrustList[CFG_MAX_TRUST_LIST][CFG_FILTER_IP_LEN]; // 允许名单 是一个数组,每一个是IP
  16106. } CFG_PARKING_SPACE_ACCESS_FILTER_INFO;
  16107. ///@brief 工作时间配置 CFG_CMD_WORK_TIME
  16108. typedef struct tagCFG_WORK_TIME_INFO
  16109. {
  16110. BOOL bEnable; // 为TRUE时该配置生效,非工作时间上报DH_ALARM_BUS_DRIVE_AFTER_WORK事件,为FALSE时该配置无效
  16111. CFG_TIME stWorkTimeBegin; // 开始工作时间
  16112. CFG_TIME stWorkTimeEnd; // 结束工作时间
  16113. DWORD dwOutTimeBegin; // 开始外出及维修时间, utc秒
  16114. DWORD dwOutTimeEnd; // 结束外出及维修时间, utc秒
  16115. } CFG_WORK_TIME_INFO;
  16116. ///@brief 车位监管状态
  16117. typedef enum tagEM_CFG_LANE_STATUS
  16118. {
  16119. EM_CFG_LANE_STATUS_UNKOWN = -1, // 状态未知
  16120. EM_CFG_LANE_STATUS_UNSUPERVISE = 0, // 不监管
  16121. EM_CFG_LANE_STATUS_SUPERVISE = 1, // 监管
  16122. }EM_CFG_LANE_STATUS;
  16123. #define MAX_LANES_NUM 64 // 灯组监管车位的最多个数
  16124. ///@brief 单个车位指示灯本机配置
  16125. typedef struct tagCFG_PARKING_SPACE_LIGHT_GROUP_INFO
  16126. {
  16127. BOOL bEnable; // 为TRUE时该配置生效,为FALSE时该配置无效
  16128. EM_CFG_LANE_STATUS emLaneStatus[MAX_LANES_NUM]; // 灯组监管的车位,下标表示车位号
  16129. int nLanesNum; // 有效的车位数量(可以设为监管或不监管的车位数量)
  16130. BOOL bAcceptNetCtrl; // 是否接受远程控制
  16131. }CFG_PARKING_SPACE_LIGHT_GROUP_INFO;
  16132. #define MAX_LIGHT_GROUP_INFO_NUM 8 // 车位指示灯本机配置的最多个数
  16133. ///@brief 车位指示灯本机配置 CFG_CMD_PARKING_SPACE_LIGHT_GROUP
  16134. typedef struct tagCFG_PARKING_SPACE_LIGHT_GROUP_INFO_ALL
  16135. {
  16136. int nCfgNum; // 获取到的配置个数
  16137. CFG_PARKING_SPACE_LIGHT_GROUP_INFO stuLightGroupInfo[MAX_LIGHT_GROUP_INFO_NUM]; // 车位指示灯本机配置
  16138. CFG_PARKING_SPACE_LIGHT_GROUP_INFO stuLightGroupInfoEx[16]; // 车位指示灯本机配置扩展
  16139. int nCfgNumEx; // 获取到的配置个数扩展
  16140. BOOL bIsUseLightGroupInfoEx; // 使用扩展配置下发配置
  16141. char szResvered[508]; // 保留字节
  16142. }CFG_PARKING_SPACE_LIGHT_GROUP_INFO_ALL;
  16143. ///@brief 自定义音频配置(CFG_CMD_CUSTOM_AUDIO)
  16144. typedef struct tagCFG_CUSTOM_AUDIO
  16145. {
  16146. char szPlateNotInDB[MAX_PATH]; // 车牌未在数据库的告警音频路径
  16147. }CFG_CUSTOM_AUDIO;
  16148. ///@brief 雷达配置——车速
  16149. typedef struct tagCFG_RADAR_CARSPEED
  16150. {
  16151. int nTriggerLower; // 触发值下限
  16152. int nTriggerUpper; // 触发值上限
  16153. int nLimitLower; // 限速值下限
  16154. int nLimitUpper; // 限速值上限
  16155. } CFG_RADAR_CARSPEED;
  16156. ///@brief 雷达配置 CFG_CMD_DHRADER_PP
  16157. typedef struct tagCFG_DAHUA_RADAR
  16158. {
  16159. int nAngle; // 角度,用于修正雷达探头安装的角度造成的速度误差 单位度,范围0~45
  16160. BOOL bLowSpeed; // 是否启用低限速,为 TRUE 时,CFG_RADAR_CARSPEED 结构中各下限值有效
  16161. BOOL bSpeedForSize; // 是否启用大小车限速,为 FALSE 时仅小车速度配置(stuSmallCarSpeed)有效
  16162. CFG_RADAR_CARSPEED stuSmallCarSpeed; // 小车速度配置,bSpeedForSize 为 TRUE 时 nTriggerLower 成员同时也代表中车和大车的触发值下限
  16163. CFG_RADAR_CARSPEED stuMediumCarSpeed; // 中车速度配置,bSpeedForSize 为 TRUE 时有效,但 nTriggerLower 成员始终无效
  16164. CFG_RADAR_CARSPEED stuBigCarSpeed; // 大车速度配置,bSpeedForSize 为 TRUE 时有效,但 nTriggerLower 成员始终无效
  16165. char szName[256]; // 设备安装地址
  16166. int nSensitivity; // 灵敏度 范围0~5,0最高
  16167. int nDetectMode; // 检测模式,取值:-1 无意义 0 前向来车 1 前向去车 2 后向来车 3 后向去车 4 前向双向 5 后向双向
  16168. } CFG_DAHUA_RADAR;
  16169. ///@brief 设备通过wifi模块扫描周围无线设备配置 CFG_CMD_WIFI_SEARCH
  16170. typedef struct tagCFG_WIFI_SEARCH_INFO
  16171. {
  16172. BOOL bEnable; // 是否生效
  16173. int nPeriod; // 事件上报周期, 单位秒
  16174. BOOL bOptimizNotification; // 默认值是false,置false时,搜索到的设备状态每次均全部上报,置true时,搜索到的设备状态在未超过PD中OptimizationPeriod取值周期时,只上报新增/离开的设备状态;超过PD中OptimizationPeriod取值周期时,当次需上报搜索到的全部设备状态
  16175. } CFG_WIFI_SEARCH_INFO;
  16176. ///@brief 车载设备通信模块34G切换使能配置(CFG_CMD_G3G4AUTOCHANGE)
  16177. typedef struct tagCFG_G3G4AUTOCHANGE
  16178. {
  16179. BOOL bEnable; // 是否开启3G到4G自动切换功能 为TRUE时该配置生效,为FALSE时该配置无效
  16180. }CFG_G3G4AUTOCHANGE;
  16181. #define MAX_POS_CODE_LENGTH 32 // 刷卡器校验码最大长度
  16182. #define MAX_ARRAY_POS_CODE 10 // 刷卡器校验码数组最大个数
  16183. ///@brief 刷卡器校验码校验配置(对应 CFG_CMD_CHECKCODE)
  16184. typedef struct tagCFG_CHECKCODE_INFO
  16185. {
  16186. BOOL bEnable; // 使能
  16187. int nCodeCount; // 数组中有 有效值 的个数
  16188. char szCode[MAX_ARRAY_POS_CODE][MAX_POS_CODE_LENGTH]; // 刷卡器校验码数组
  16189. }CFG_CHECKCODE_INFO;
  16190. ///@brief 四川移动看店启迪平台配置(对应 CFG_CMD_VSP_SCYDKD)
  16191. typedef struct tagCFG_VSP_SCYDKD_INFO
  16192. {
  16193. BOOL bEnable; // 使能
  16194. char szServerIP[128]; // 注册请求的服务器IP地址
  16195. int nServerPort; // 注册请求的服务器端口号
  16196. char szDeviceID[32]; // 视频输入设备ID
  16197. char szUserName[32]; // 启迪平台用户名
  16198. }CFG_VSP_SCYDKD_INFO;
  16199. ///@brief 云台开机动作配置
  16200. typedef struct tagCFG_PTZ_POWERUP_INFO
  16201. {
  16202. BOOL bEnable; // 开机动作开关标志
  16203. int nFunction; // 开机功能,-1 表示继续断电前的动作,其他可取值见 EM_PTZ_ACTION
  16204. int nScanId; // 自动线扫编号
  16205. int nPresetId; // 预置点编号
  16206. int nPatternId; // 自动巡迹编号
  16207. int nTourId; // 巡航编号
  16208. } CFG_PTZ_POWERUP_INFO;
  16209. // VTH中远程IPC配置
  16210. #define MAX_REMOTE_IPC_NUM 64 // 最大可配置的远程IPC个数
  16211. ///@brief 远端IPC协议类型
  16212. typedef enum tagEM_CFG_REMOTE_IPC_DEVICE_PROTOCOL
  16213. {
  16214. EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL_UNKNOWN = 0, // 未知
  16215. EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL_HIKVISION,
  16216. EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL_PRIVATE3, // 私有三代协议
  16217. EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL_ONVIF, //Onvif协议
  16218. }EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL;
  16219. ///@brief 远端IPC码流类型
  16220. typedef enum tagEM_CFG_REMOTE_IPC_DEVICE_STREAMTYPE
  16221. {
  16222. EM_CFG_REMOTE_IPC_DEVICE_STREAM_TYPE_UNKNOWN = 0, // 未知
  16223. EM_CFG_REMOTE_IPC_DEVICE_STREAM_TYPE_MAIN, // 主码流
  16224. EM_CFG_REMOTE_IPC_DEVICE_STREAM_TYPE_EXTRA1, // 辅码流
  16225. }EM_CFG_REMOTE_IPC_DEVICE_STREAMTYPE;
  16226. #define MAX_REMOTEIPCINFO_IPADDR_LEN 128 // 远程IPC IP地址最大长度
  16227. #define MAX_REMOTEIPCINFO_MACADDR_LEN 64 // 远程IPC MAC地址最大长度
  16228. #define MAX_REMOTEIPCINFO_USERNAME_LEN 128 // 远程IPC用户名最大长度
  16229. #define MAX_REMOTEIPCINFO_USERPSW_LENGTH 128 // 远程IPC密码最大长度
  16230. ///@brief 远端IPC依赖设备类型
  16231. typedef enum tagEM_CFG_REMOTE_IPC_RELY_TYPE
  16232. {
  16233. EM_CFG_REMOTE_IPC_RELY_TYPE_UNKNOWN = 0, // 未知
  16234. EM_CFG_REMOTE_IPC_RELY_TYPE_IPC, // IPC
  16235. EM_CFG_REMOTE_IPC_RELY_TYPE_NVR, // NVR
  16236. }EM_CFG_REMOTE_IPC_RELY_TYPE;
  16237. ///@brief 远端IPC信息
  16238. typedef struct tagCFG_REMOTE_IPC_INFO
  16239. {
  16240. char szIP[MAX_REMOTEIPCINFO_IPADDR_LEN]; // 设备IP
  16241. char szMac[MAX_REMOTEIPCINFO_MACADDR_LEN]; // MAC地址
  16242. char szUser[MAX_REMOTEIPCINFO_USERNAME_LEN]; // 用户名
  16243. char szPassword[MAX_REMOTEIPCINFO_USERPSW_LENGTH]; // 密码
  16244. int nPort; // 端口
  16245. EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL emProtocol; // 协议类型
  16246. EM_CFG_REMOTE_IPC_DEVICE_STREAMTYPE emStreamType; // 媒体流类型
  16247. int nChannel; // 通道号
  16248. EM_CFG_REMOTE_IPC_RELY_TYPE emIPCRely; // 依赖设备类型
  16249. BOOL bSSLEncrypt; // 码流是否SSL加密在室内机本地通过界面配置来决定是否对拉到的码流进行解密处理。
  16250. char szReserve[1024]; // 保留字段
  16251. }CFG_REMOTE_IPC_INFO;
  16252. ///@brief VTH中远程IPC配置结构体, 对应 CFG_CMD_VTH_REMOTE_IPC_INFO
  16253. ///@brief 该配置是全局的,不区分通道
  16254. typedef struct tagCFG_VTH_REMOTE_IPC_INFO
  16255. {
  16256. int nRemoteIPCNum; // 远端IPC个数
  16257. CFG_REMOTE_IPC_INFO stuCfgRemoteIpcInfo[MAX_REMOTE_IPC_NUM]; // 远端IPC信息
  16258. }CFG_VTH_REMOTE_IPC_INFO;
  16259. ///@brief 球机机芯日夜单时间段配置
  16260. typedef struct tagDAYNIGHT_INFO
  16261. {
  16262. int nType; // 切换类型,1 - 电子,2 - 机械,通常采用滤光片(ICR)
  16263. int nMode; // 彩转黑模式,1-总是彩色,2-自动,根据亮度切换,3-总是黑白,4-光敏电阻,5-根据增益切换,6-外部报警输入,7–外部IO输入
  16264. int nSensitivity; // 彩转黑灵敏度,可取值 0~7
  16265. int nDelay; // 日夜模式切换延时时间,可取值3~30,单位秒
  16266. } DAYNIGHT_INFO;
  16267. ///@brief 球机机芯日夜配置
  16268. typedef struct tagCFG_VIDEOIN_DAYNIGHT_INFO
  16269. {
  16270. DAYNIGHT_INFO stuSection[VIDEOIN_TSEC_NUM]; // 不同时间段配置,按顺序分别对应:普通、白天、黑夜
  16271. } CFG_VIDEOIN_DAYNIGHT_INFO;
  16272. ///@brief 单个纯音频通道的组成
  16273. typedef struct tagCFG_AUDIO_MIX_CHANNEL_INFO
  16274. {
  16275. int nChannelNum; // 音频输入通道个数
  16276. int nCombination[32]; // 音频输入通道列表
  16277. }CFG_AUDIO_MIX_CHANNEL_INFO;
  16278. ///@brief 配置定义每个纯音频通道的组成(对应 CFG_CMD_AUDIO_MIX_CHANNEL)
  16279. typedef struct tagCFG_AUDIO_MIX_CHANNEL_INFO_ALL
  16280. {
  16281. int nMixChnInfoNum; // 纯音频通道配置个数
  16282. CFG_AUDIO_MIX_CHANNEL_INFO stuMixChnInfo[16]; // 纯音频通道配置
  16283. }CFG_AUDIO_MIX_CHANNEL_INFO_ALL;
  16284. #define CFG_AUDIOTOUCH_PITCH_INVALID_VALUE -999 //变音配置中的nPitch的无效值
  16285. #define CFG_AUDIOTOUCH_PITCH_MIN_VALUE -50 //变音配置中的nPitch的最小值
  16286. #define CFG_AUDIOTOUCH_PITCH_MAX_VALUE 50 //变音配置中的nPitch的最大值
  16287. ///@brief 单个音频通道变音配置
  16288. typedef struct tagCFG_AUDIO_TOUCH_INFO
  16289. {
  16290. int nPitch; // 变音的值 -50~50,0表示不变音 当该通道中没有变音配置时,则nPitch为无效值 CFG_AUDIOTOUCH_INVALID_VALUE
  16291. }CFG_AUDIO_TOUCH_INFO;
  16292. ///@brief 音频通道变音配置 (对应 CFG_CMD_AUDIO_TOUCH)
  16293. typedef struct tagCFG_AUDIO_TOUCH_INFO_ALL
  16294. {
  16295. BOOL bEnable; // 使能
  16296. int nAudioTouchNum; // 音频通道变音配置个数
  16297. CFG_AUDIO_TOUCH_INFO stuTouchInfo[64]; // 音频通道变音配置
  16298. }CFG_AUDIO_TOUCH_INFO_ALL;
  16299. ///@brief 虚焦检测配置
  16300. typedef struct tagCFG_UNFOCUSDETECT_INFO
  16301. {
  16302. BOOL bEnable; //虚焦检测使能:TRUE 开启,FALSE 关闭
  16303. int nSensitivity; //灵敏度 1~100
  16304. CFG_ALARM_MSG_HANDLE stuEventHandler; //报警联动
  16305. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  16306. }CFG_UNFOCUSDETECT_INFO;
  16307. /*视频叠加马赛克,和PrivacyMasking(云台隐私遮挡)的差别在于,
  16308. VideoMosaic叠加的马赛克位置是固定的,而云台叠加的马赛克
  16309. 在云台旋转后,马赛克区域会反向偏移,即始终遮挡住同一物体。*/
  16310. ///@brief 马赛克叠加配置(对应CFG_CMD_VIDEO_MOSAIC)
  16311. typedef struct tagCFG_VIDEO_MOSAIC_INFO
  16312. {
  16313. BOOL bEnable; // 马赛克叠加使能
  16314. int nMosaic; // 马赛克颗粒大小,从能力项取值,颗粒越大与原始图像差异越大,反之越接近
  16315. int nRectCount; // 实际配置的马赛克区域个数
  16316. CFG_RECT stuRect[MAX_RECT_COUNT]; // 马赛克区域,使用相对坐标体系,取值均为0~8192
  16317. } CFG_VIDEO_MOSAIC_INFO;
  16318. ///@brief 场景变更检测配置
  16319. typedef struct tagCFG_MOVE_DETECT_INFO
  16320. {
  16321. BOOL bEnable; // 场景变更检测使能
  16322. int nSensitivity; // 检测灵敏度, 0~100
  16323. CFG_ALARM_MSG_HANDLE stuEventHandler; // 侦测联动信息
  16324. } CFG_MOVE_DETECT_INFO;
  16325. ///@brief 控制模式
  16326. typedef enum tagEM_CFG_ATMCONTROLLER_MODE
  16327. {
  16328. EM_CFG_ATMCONTROLLER_MODE_UNKNOWN = 0, //未知
  16329. EM_CFG_ATMCONTROLLER_MODE_CLOSE, //关闭
  16330. EM_CFG_ATMCONTROLLER_MODE_OPEN, //开启
  16331. EM_CFG_ATMCONTROLLER_MODE_LINKAGE, //人体探测联动模式
  16332. }EM_CFG_ATMCONTROLLER_MODE;
  16333. ///@brief 防护舱照明灯控制配置
  16334. typedef struct tagCFG_FLOODLIGHT_CONTROLMODE_INFO
  16335. {
  16336. EM_CFG_ATMCONTROLLER_MODE emControlMode; //控制模式
  16337. }CFG_FLOODLIGHT_CONTROLMODE_INFO;
  16338. ///@brief 防护舱风扇控制配置
  16339. typedef struct tagCFG_AIRFAN_CONTROLMODE_INFO
  16340. {
  16341. EM_CFG_ATMCONTROLLER_MODE emControlMode; //控制模式
  16342. }CFG_AIRFAN_CONTROLMODE_INFO;
  16343. ///@brief EAP方法
  16344. typedef enum tagEM_CFG_EAP_METHOD
  16345. {
  16346. EM_CFG_EAP_METHOD_UNKNOWN, // UnKnown
  16347. EM_CFG_EAP_METHOD_PEAP, // PEAP
  16348. EM_CFG_EAP_METHOD_TLS, // TLS
  16349. EM_CFG_EAP_METHOD_TTLS, // TTLS
  16350. } EM_CFG_EAP_METHOD;
  16351. ///@brief EAP身份验证方法
  16352. typedef enum tagEM_CFG_EAP_AUTH_TYPE
  16353. {
  16354. EM_CFG_EAP_AUTH_TYPE_UNKNOWN, // UnKnown
  16355. EM_CFG_EAP_AUTH_TYPE_NONE, // NONE
  16356. EM_CFG_EAP_AUTH_TYPE_PAP, // PAP
  16357. EM_CFG_EAP_AUTH_TYPE_MSCHAP, // MSCHAP
  16358. EM_CFG_EAP_AUTH_TYPE_MSCHAPV2, // MSCHAPV2
  16359. EM_CFG_EAP_AUTH_TYPE_GTC, // GTC
  16360. } EM_CFG_EAP_AUTH_TYPE;
  16361. ///@brief 无线设备认证方式
  16362. typedef enum tagEM_CFG_WIRELESS_AUTHENTICATION
  16363. {
  16364. EM_CFG_WIRELESS_AUTHENTICATION_UNKNOWN, // UnKnown
  16365. EM_CFG_WIRELESS_AUTHENTICATION_OPEN, // OPEN
  16366. EM_CFG_WIRELESS_AUTHENTICATION_SHARED, // SHARED
  16367. EM_CFG_WIRELESS_AUTHENTICATION_WPA, // WPA
  16368. EM_CFG_WIRELESS_AUTHENTICATION_WPAPSK, // WPA-PSK
  16369. EM_CFG_WIRELESS_AUTHENTICATION_WPA2, // WPA2
  16370. EM_CFG_WIRELESS_AUTHENTICATION_WPA2PSK, // WPA2-PSK
  16371. EM_CFG_WIRELESS_AUTHENTICATION_WPANONE, // WPA-NONE
  16372. EM_CFG_WIRELESS_AUTHENTICATION_WPAPSK_WPA2PSK, // WPA-PSK|WPA2-PSK
  16373. EM_CFG_WIRELESS_AUTHENTICATION_WPA_WPA2, // WPA|WPA2
  16374. EM_CFG_WIRELESS_AUTHENTICATION_WPA_WPAPSK, // WPA | WPA-PSK
  16375. EM_CFG_WIRELESS_AUTHENTICATION_WPA2_WPA2PSK, // WPA2|WPA2-PSK
  16376. EM_CFG_WIRELESS_AUTHENTICATION_WPA_WPAPSK_WPA2_WPA2PSK, // WPA|WPA-PSK|WPA2|WPA2-PSK
  16377. } EM_CFG_WIRELESS_AUTHENTICATION;
  16378. ///@brief 无线数据加密方式
  16379. typedef enum tagEM_CFG_WIRELESS_DATA_ENCRYPT
  16380. {
  16381. EM_CFG_WIRELESS_DATA_ENCRYPT_UNKNOWN, // UnKnown
  16382. EM_CFG_WIRELESS_DATA_ENCRYPT_NONE, // NONE
  16383. EM_CFG_WIRELESS_DATA_ENCRYPT_WEP, // WEP
  16384. EM_CFG_WIRELESS_DATA_ENCRYPT_TKIP, // TKIP
  16385. EM_CFG_WIRELESS_DATA_ENCRYPT_AES, // AES(CCMP)
  16386. EM_CFG_WIRELESS_DATA_ENCRYPT_TKIP_AES, // TKIP+AES
  16387. } EM_CFG_WIRELESS_DATA_ENCRYPT;
  16388. ///@brief 单个WLAN配置EAP
  16389. typedef struct tagCFG_WLAN_EAP
  16390. {
  16391. EM_CFG_EAP_METHOD emMethod; // EAP方法
  16392. EM_CFG_EAP_AUTH_TYPE emAuthType; // EAP身份验证方法
  16393. char szIdentity[MAX_USERNAME_LEN]; // 身份
  16394. char szAnonymousID[MAX_USERNAME_LEN]; // 匿名身份
  16395. char szPassword[MAX_PASSWORD_LEN]; // 密码
  16396. char szCaCert[512]; // CA证书
  16397. char szUserCert[512]; // 用户证书
  16398. } CFG_WLAN_EAP;
  16399. ///@brief 单个WLAN配置Network
  16400. typedef struct tagCFG_WLAN_NETWORK
  16401. {
  16402. char szIPAddress[AV_CFG_IP_Address_Len_EX]; // IP
  16403. char szSubnetMask[AV_CFG_IP_Address_Len_EX]; // 子网掩码
  16404. char szDefaultGateway[AV_CFG_IP_Address_Len_EX]; // 网关
  16405. BOOL bDhcpEnable; // 是否开启DHCP
  16406. char szDnsServers[2][AV_CFG_IP_Address_Len_EX]; // DNS服务器
  16407. } CFG_WLAN_NETWORK;
  16408. ///@brief 单个WLAN配置
  16409. typedef struct tagCFG_WLAN_INFO
  16410. {
  16411. char szWlanName[CFG_COMMON_STRING_32]; // Wlan名称, 只能获取不能修改
  16412. BOOL bEnable; // WIFI网卡使能开关, TRUE打开, FALSE关闭
  16413. char szSSID[CFG_MAX_SSID_LEN]; // 网络名称(SSID)
  16414. BOOL bConnectEnable; // 手动连接开关, TRUE手动连接, FALSE手动断开
  16415. BOOL bLinkEnable; // 自动连接开关, TRUE不自动连接, FALSE自动连接, IPC无意义
  16416. int nLinkMode; // 连接模式, 0: auto, 1: adhoc, 2: Infrastructure
  16417. int nEncryption; // 加密模式, 0: off, 1: on, 2: WEP64, 3: WEP128, 4: WPA-PSK-TKIP, 5: WPA-PSK-AES, 6: WPA2-PSK-TKIP, 7: WPA2-PSK-AES, 8: WPA-TKIP, 9: WPA-AES,
  16418. // 10: WPA2-TKIP, 11: WPA2-AES, 12: AUTO
  16419. /* 二代byAuthMode , byEncrAlgr 与三代映射关系
  16420. * Authentication认证方式 DataEncryption数据加密方式 Encryption加密模式
  16421. * OPEN NONE "On"
  16422. * OPEN WEP "WEP-OPEN"
  16423. * SHARD WEP "WEP-SHARED"
  16424. * WPA TKIP "WPA-TKIP"
  16425. * WPA-PSK TKIP "WPA-PSK-TKIP"
  16426. * WPA2 TKIP "WPA2-TKIP"
  16427. * WPA2-PSK TKIP "WPA2-PSK-TKIP"
  16428. * WPA AES(CCMP) "WPA-AES"
  16429. * WPA-PSK AES(CCMP) "WPA-PSK-AES"
  16430. * WPA2 AES(CCMP) "WPA2-AES"
  16431. * WPA2-PSK AES(CCMP) "WPA2-PSK-AES"
  16432. * WPA TKIP+AES( mix Mode) "WPA-TKIP"或者"WPA-AES"
  16433. * WPA-PSK TKIP+AES( mix Mode) "WPA-PSK-TKIP"或者"WPA-PSK-AES"
  16434. * WPA2 TKIP+AES( mix Mode) "WPA2-TKIP"或者"WPA2-AES"
  16435. * WPA2-PSK TKIP+AES( mix Mode) "WPA2-PSK-TKIP"或者"WPA2-PSK-AES"
  16436. * WPA3-SAE AES(CCMP) "WPA3-SAE-CCMP"
  16437. * WPA3-SAE/PSK AES(CCMP) "WPA3-SAE/PSK-CCMP"兼容模式
  16438. */
  16439. EM_CFG_WIRELESS_AUTHENTICATION emAuthentication; // 认证方式, 暂时没用
  16440. EM_CFG_WIRELESS_DATA_ENCRYPT emDataEncryption; // 数据加密方式, 暂时没用
  16441. int nKeyType; // 密码类型, 0: Hex, 1: ASCII
  16442. int nKeyID; // 秘钥索引, 取值0~3
  16443. char szKeys[4][128]; // 四组密码
  16444. BOOL bKeyFlag; // 密码是否已经设置
  16445. CFG_WLAN_EAP stuEap; // EAP
  16446. CFG_WLAN_NETWORK stuNetwork; // Network
  16447. } CFG_WLAN_INFO;
  16448. ///@brief WLAN配置(对应 CFG_CMD_WLAN)
  16449. typedef struct tagCFG_NETAPP_WLAN
  16450. {
  16451. int nNum; // stuWlanInfo有效的WLAN配置个数
  16452. CFG_WLAN_INFO stuWlanInfo[8]; // WLAN配置信息
  16453. } CFG_NETAPP_WLAN;
  16454. ///@brief 新增Smart264 编码方式
  16455. typedef struct tagCFG_SMART_ENCODE_INFO
  16456. {
  16457. BOOL bSmartH264; //标识是否开启SmartH264
  16458. BYTE byReserved[256]; //预留字段
  16459. } CFG_SMART_ENCODE_INFO;
  16460. ///@brief 车载高速报警配置
  16461. typedef struct tagCFG_VEHICLE_HIGHSPEED_INFO
  16462. {
  16463. BOOL bEnable; // 高速报警使能
  16464. int nSpeedHighLine; // 高速上限报警值 单位:Km/h
  16465. int nTime; // 超速后持续多长时间报警 单位:秒
  16466. int nAlertSpeed; // 预警速度 单位:Km/h
  16467. int nInstantSpeed; // 瞬时超速速度 单位:Km/h
  16468. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  16469. } CFG_VEHICLE_HIGHSPEED_INFO;
  16470. ///@brief 车载低速报警配置
  16471. typedef struct tagCFG_VEHICLE_LOWSPEED_INFO
  16472. {
  16473. BOOL bEnable; // 低速报警使能
  16474. int nSpeedLowLine; // 低速上限报警值 单位:Km/h
  16475. int nTime; // 低速后持续多长时间报警 单位:秒
  16476. int nSpeedMotion; // 低速动检速度值,低于此值开启动检 单位:Km/h
  16477. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  16478. } CFG_VEHICLE_LOWSPEED_INFO;
  16479. ///@brief 单个个人电话接机配置信息
  16480. typedef struct tagCFG_PSTN_PERSON_SERVER_INFO
  16481. {
  16482. char szName[MAX_NAME_LEN]; // 个人电话名称
  16483. char szNumber[MAX_PHONE_NUMBER_LEN]; // 个人电话接收机号码
  16484. }CFG_PSTN_PERSON_SERVER_INFO;
  16485. ///@brief 个人电话接机配置信息
  16486. typedef struct tagCFG_PSTN_PERSON_SERVER_INFO_ALL
  16487. {
  16488. BOOL bEnable; // 个人电话接机配置使能
  16489. int nServerCount; // 有效的个人电话接机配置信息个数,目前最多支持3个
  16490. CFG_PSTN_PERSON_SERVER_INFO stuPSTNPersonServer[MAX_PSTN_SERVER_NUM]; // 个人电话接机配置信息数组,每个元素对应一个个人电话配置
  16491. // 最多支持多少个人电话,通过获取报警能力集(CLIENT_QueryNewSystemInfo对应宏CFG_CAP_ALARM) 获取有效电话个数
  16492. }CFG_PSTN_PERSON_SERVER_INFO_ALL;
  16493. ///@brief 布撤防联动配置信息
  16494. typedef struct tagCFG_ARMLINK_INFO
  16495. {
  16496. BOOL bMMSEnable; // 是否发送短消息(默认发送)
  16497. CFG_PSTN_ALARM_SERVER stuPSTNAlarmServer; // 电话报警中心联动信息
  16498. BOOL bPersonAlarmEnable; // 是否向私人联系人打电话(向PSTNPersonServer配置中的联系人发报警语音)
  16499. int nAlarmOutChannels[256]; // 报警输出通道号列表
  16500. int nAlarmOutChannelNum; // 报警输出通道号个数
  16501. BOOL bVoiceEnable; // 是否开启语音提示
  16502. }CFG_ARMLINK_INFO;
  16503. ///@brief PSTN 测试计划配置
  16504. typedef struct tagCFG_PSTN_TESTPLAN_INFO
  16505. {
  16506. BOOL bAlarmEnable; // 报警使能
  16507. int nPeriod; // 报警周期 单位:小时
  16508. int nAlarmServerCount; // 需要测试的报警电话中心个数
  16509. int nAlarmServer[MAX_PSTN_SERVER_NUM]; // 需要测试的报警电话中心序号,从0开始
  16510. }CFG_PSTN_TESTPLAN_INFO;
  16511. ///@brief 单防区布撤防使能配置
  16512. typedef struct tagCFG_DEFENCE_ARMMODE_INFO
  16513. {
  16514. BOOL bEnableDefenceArm; // 单防区布撤防使能
  16515. }CFG_DEFENCE_ARMMODE_INFO;
  16516. ///@brief 探测器安装工作模式
  16517. typedef enum tagEM_CFG_SENSORMODE_TYPE
  16518. {
  16519. EM_CFG_SENSORMODE_TYPE_UNKNOWN,
  16520. EM_CFG_SENSORMODE_TYPE_TWOSTATE, // 二态
  16521. EM_CFG_SENSORMODE_TYPE_FOURSTATE, // 四态
  16522. }EM_CFG_SENSORMODE_TYPE;
  16523. ///@brief 探测器安装工作模式配置
  16524. typedef struct tagCFG_SENSORMODE_INFO
  16525. {
  16526. EM_CFG_SENSORMODE_TYPE emState; //探测器安装工作模式
  16527. }CFG_SENSORMODE_INFO;
  16528. ///@brief 防护舱Led显示计划配置
  16529. typedef struct tagCFG_CABINLED_TIME_SCHEDULE
  16530. {
  16531. BOOL bEnable; // 防护舱Led显示计划配置使能项
  16532. }CFG_CABINLED_TIME_SCHEDULE;
  16533. ///@brief 警灯状态
  16534. typedef enum tagEM_ALARMLAMP_MODE
  16535. {
  16536. EM_ALARMLAMP_MODE_UNKNOWN = -1, // 未知
  16537. EM_ALARMLAMP_MODE_OFF, // 灭
  16538. EM_ALARMLAMP_MODE_ON, // 亮
  16539. EM_ALARMLAMP_MODE_BLINK, // 闪烁
  16540. }EM_ALARMLAMP_MODE;
  16541. ///@brief 警灯配置(对应 CFG_CMD_ALARMLAMP)
  16542. typedef struct tagCFG_ALARMLAMP_INFO
  16543. {
  16544. EM_ALARMLAMP_MODE emAlarmLamp; // 警灯状态
  16545. }CFG_ALARMLAMP_INFO;
  16546. ///@brief 雷达测速配置 智能楼宇专用(对应 CFG_CMD_RADAR_SPEED_MEASURE)
  16547. typedef struct tagCFG_RADAR_SPEED_MEASURE_INFO
  16548. {
  16549. float fSpeedMeasureLimit; // 测速下限值,只有达到此速度值,雷达才能检测(单位:km/h)
  16550. float fSpeedUpperLimit; // 超速报警值,超过此值上报报警(单位:km/h)
  16551. }CFG_RADAR_SPEED_MEASURE_INFO;
  16552. ///@brief 激光测距配置
  16553. typedef struct tagCFG_LASER_DIST_MEASURE_INFO
  16554. {
  16555. BOOL bEncodeBlend; // 叠加到主码流视频编码
  16556. BOOL bEnable; // 使能,是否打开激光测距功能
  16557. }CFG_LASER_DIST_MEASURE_INFO;
  16558. ///@brief 气象信息叠加配置
  16559. typedef struct tagCFG_CFG_CMD_ATMOSPHERE_OSD_INFO
  16560. {
  16561. BOOL bEncodeBlendEnable; // 是否叠加到视频码流,true开启,false关闭
  16562. UINT nMask; // 1显示 0不显示
  16563. // bit0: 风速
  16564. // bit1: 风向
  16565. // bit2: 湿度
  16566. // bit3:温度
  16567. // bit4:大气压强
  16568. // bit5:日照强度
  16569. }CFG_CMD_ATMOSPHERE_OSD_INFO;
  16570. ///@brief 福山油田4G流量阈值及模式配置(对应 CFG_CMD_OIL_4G_OVERFLOW)
  16571. typedef struct tagCFG_OIL_4G_OVERFLOW_INFO
  16572. {
  16573. int nFlowRateMode; // 4G流量的模式,1手动,0-自动,默认自动
  16574. int nFlowRateMax; // 4G流量的阈值,单位为(MB), 默认值为60*1024(MB)
  16575. }CFG_OIL_4G_OVERFLOW_INFO;
  16576. ///@brief 福山油田4G流量OSD叠加配置(对应 CFG_CMD_OIL_VIDEOWIDGET_4G_FLOW)
  16577. typedef struct tagCFG_OIL_VIDEOWIDGET_4G_FLOW_INFO
  16578. {
  16579. BOOL bEncodeBlend; // 叠加到主码流视频编码使能
  16580. CFG_RECT stuRect; // 叠加的区域坐标
  16581. }CFG_OIL_VIDEOWIDGET_4G_FLOW_INFO;
  16582. #define CFG_PARK_SPACE_STATE_TYPE_NUM 3 // 车位状态类型个数 具体类型为 车位无车 车位有车 车位预定
  16583. ///@brief 车位检测器外接指示灯配置信息
  16584. typedef struct tagCFG_PARK_SPACE_OUT_LIGHT_INFO
  16585. {
  16586. EM_CFG_PARKINGSPACE_LIGHT_STATE stNormalSpace[CFG_PARK_SPACE_STATE_TYPE_NUM][CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 普通车位灯状态信息
  16587. // 数组第一维度表示车位状态 0-车位无车 1-车位有车 2-车位预定
  16588. // 数组第二维度表示指示灯颜色 从0到5分别表示 红 黄 蓝 绿 紫 白
  16589. EM_CFG_PARKINGSPACE_LIGHT_STATE stSpecialSpace[CFG_PARK_SPACE_STATE_TYPE_NUM][CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 特殊车位灯状态信息 规则同上
  16590. }CFG_PARK_SPACE_OUT_LIGHT_INFO;
  16591. ///@brief 门禁文字提示显示配置(对应CFG_CMD_ACCESS_TEXTDISPLAY)
  16592. typedef struct tagCFG_ACCESS_TEXTDISPLAY_INFO
  16593. {
  16594. char szOpenSucceedText[MAX_ACCESS_TEXTDISPLAY_LEN]; //开门成功显示的文字信息
  16595. char szOpenFailedText[MAX_ACCESS_TEXTDISPLAY_LEN]; //开门失败显示的文字信息
  16596. UINT nOpenDoorTipType; // 开门提示类型, 0:未知, 1:仅提示成功失败, 2:用户信息(成功:工号,姓名,时间等,失败:失败原因,时间等), 3:用户信息,底库照片, 4:用户信息,抓拍照片,底库照片, 5:用户信息,抓拍照片
  16597. char szResvered[1020]; // 保留字节
  16598. }CFG_ACCESS_TEXTDISPLAY_INFO;
  16599. ///@brief 门口机呼叫规则
  16600. typedef enum tagEM_CFG_ROOM_RULE
  16601. {
  16602. EM_CFG_ROOM_RULE_UNKNOW, // 未知
  16603. EM_CFG_ROOM_RULE_SERIAL, // Serial 连续房间号,有些国外使用1~100的房号
  16604. EM_CFG_ROOM_RULE_NOSERIAL, // NoSerial 非连续房间号,比如国内的301,502
  16605. }EM_CFG_ROOM_RULE;
  16606. ///@brief VTO呼叫配置扩展信息
  16607. typedef struct tagCFG_VTO_CALL_INFO_EXTEND
  16608. {
  16609. char szMainVTOIP[MAX_ADDRESS_LEN]; //主门口机IP
  16610. BOOL bGroupCallEnable; //群呼开关
  16611. char szManagerNumber[MAX_PHONE_NUMBER_LEN]; //管理机号码
  16612. char szUrgentNumber[MAX_PHONE_NUMBER_LEN]; //紧急呼叫号码
  16613. CFG_TIME_SECTION stuTimeSection; //呼叫VTS时间段
  16614. unsigned int nMaxExtensionIndex; //门口机上可以设置的最大室内机分机序号 序号从1开始
  16615. EM_CFG_ROOM_RULE emRoomRule; //门口机支持连续房间号呼叫和非连续房间号呼叫2套规则
  16616. BOOL bMulticasEnable; //TRUE:门口机往组播地址发流,室内机加入组播地址 FALSE:由室内机主动向门口机拉流
  16617. }CFG_VTO_CALL_INFO_EXTEND;
  16618. ///@brief 加密配置信息,
  16619. typedef struct tagCFG_NETNVR_ENCRYPT_CHANNEL_INFO
  16620. {
  16621. BOOL bEncryptEnable; // 音视频是否加密
  16622. BOOL bMatchNvrEnable; // NVR配对使能
  16623. char szNvrAddress[16]; // NVR 的IP地址
  16624. DWORD nMatchPort; // 配对端口
  16625. DWORD nTalkPort; // 协商端口
  16626. char szDevID[32]; // IPC设备序列号
  16627. }CFG_NETNVR_ENCRYPT_CHANNEL_INFO;
  16628. ///@brief 加密配置信息,对应 CFG_CMD_NETNVR_ENCRYPT
  16629. typedef struct tagCFG_NETNVR_ENCRYPT_INFO
  16630. {
  16631. int nChannelID; // 通道号(0开始)
  16632. int nNvrEncryptNum; // 每个通道实际加密信息配置个数
  16633. CFG_NETNVR_ENCRYPT_CHANNEL_INFO stuNvrEncryptInfo[CFG_MAX_NVR_ENCRYPT_COUNT];// 每个通道对应的加密信息配置数组,主、辅1、2、3码流
  16634. }CFG_NETNVR_ENCRYPT_INFO;
  16635. ///@brief 频闪灯端口信息
  16636. typedef struct tagCFG_LAMP_PORT_INFO
  16637. {
  16638. int nValidPortNum; // 频闪灯配置个数
  16639. char szPort[8]; // 频闪灯的端口号,灯组内可能包含多个灯
  16640. }CFG_LAMP_PORT_INFO;
  16641. ///@brief 单个频闪灯配置信息
  16642. typedef struct tagCFG_SINGLE_STROBOSCOPIC_LAMP_INFO
  16643. {
  16644. CFG_FLASH_CONTROL stuLampInfo; // 频闪灯的配置信息
  16645. int nStroboscopicMode; // 频闪模式,低于最大闪光频率,0表示根据需要闪光
  16646. int nPreTime; // 频闪灯提前时间,单位us
  16647. int nPulseWidth; // 频闪灯脉宽,单位us
  16648. int nDelayTime; // 延时闪时间,单位us,负数表示提前闪光
  16649. int nFrequency; // 频闪灯的工作频率,单位HZ,譬如50HZ, 100HZ
  16650. CFG_LAMP_PORT_INFO stuPortInfo; // 频闪灯端口配置信息
  16651. }CFG_SINGLE_STROBOSCOPIC_LAMP_INFO;
  16652. ///@brief 频闪灯配置(对应 CFG_CMD_STROBOSCOPIC_LAMP)
  16653. typedef struct tagCFG_STROBOSCOPIC_LAMP_INFO
  16654. {
  16655. int nValidConfigNum; // 频闪灯配置个数
  16656. CFG_SINGLE_STROBOSCOPIC_LAMP_INFO stuStroboInfo[8]; // 频闪灯配置信息
  16657. }CFG_STROBOSCOPIC_LAMP_INFO;
  16658. ///@brief Https服务配置
  16659. typedef struct tagCFG_HTTPS_INFO
  16660. {
  16661. BOOL bEnable; // 服务使能
  16662. int nPort; // 端口号
  16663. char szRootCertificatePath[CFG_COMMON_STRING_128]; // 根证书绝对路径
  16664. char szCountry[CFG_COMMON_STRING_8]; // 国家
  16665. char szState[CFG_COMMON_STRING_64]; // 洲名或省名
  16666. char szLocatity[CFG_COMMON_STRING_64]; // 位置
  16667. char szOrganization[CFG_COMMON_STRING_64]; // 组织名称
  16668. char szOrganizationUnit[CFG_COMMON_STRING_64]; // 组织单元名称
  16669. char szCommonName[CFG_COMMON_STRING_128]; // CN字段,是域名或者IP
  16670. char szEmail[CFG_COMMON_STRING_128]; // 邮箱
  16671. char szName[CFG_COMMON_STRING_128]; // 公司名称
  16672. char szPath[CFG_COMMON_STRING_128]; // 服务器证书地址
  16673. int nUsefulLife; // 证书有效期
  16674. }CFG_HTTPS_INFO;
  16675. ///@brief UPnP配置模式
  16676. typedef enum tagEM_CONFIGURATION_MODE
  16677. {
  16678. EM_CONFIGURATION_UNKNOWN = -1, // 未知模式
  16679. EM_CONFIGURATION_MANUAL, // 手动配置
  16680. EM_CONFIGURATION_AUTO, // 自动配置
  16681. }EM_CONFIGURATION_MODE;
  16682. ///@brief UPnP服务类型
  16683. typedef enum tagEM_SERVICE_TYPE
  16684. {
  16685. EM_SERVICE_UNKNOWN = -1, // 未知服务
  16686. EM_SERVICE_WEB, // WEB服务
  16687. EM_SERVICE_PRIV, // 私有协议服务
  16688. EM_SERVICE_RTSP, // RTSP服务
  16689. EM_SERVICE_HTTPS, // HTTPS服务
  16690. EM_SERVICE_SNMP, // SNMP服务
  16691. }EM_SERVICE_TYPE;
  16692. ///@brief 协议类型
  16693. typedef enum tagEM_PROTOCOL_TYPE
  16694. {
  16695. EM_PROTOCOL_UNKNOWN = -1, // 未知协议
  16696. EM_PROTOCOL_TCP, // TCP协议
  16697. EM_PROTOCOL_UDP, // UDP协议
  16698. }EM_PROTOCOL_TYPE;
  16699. ///@brief 映射表信息
  16700. typedef struct tagCFG_MAP_TABLE_INFO
  16701. {
  16702. BOOL bEnable; // 使能开关
  16703. char szServiceName[CFG_COMMON_STRING_64]; // 服务名称,OldUPnP实现依赖该字段
  16704. EM_SERVICE_TYPE emServiceType; // 服务类型
  16705. EM_PROTOCOL_TYPE emProtocol; // 协议类型
  16706. UINT nInnerPort; // 内部端口
  16707. UINT nOuterPort; // 外部端口
  16708. }CFG_MAP_TABLE_INFO;
  16709. ///@brief UPNP配置,对应配置项目CFG_CMD_UPNP
  16710. typedef struct tagCFG_UPNP_INFO
  16711. {
  16712. BOOL bEnable; // 端口映射使能
  16713. BOOL bStartDeviceDiscover; // 是否开启UPnP被查找功能
  16714. EM_CONFIGURATION_MODE emMode; // 模式
  16715. int nMaxTable; // 最大映射表个数
  16716. int nReturnTable; // 实际映射表个数
  16717. CFG_MAP_TABLE_INFO *pstuMapTable; // 映射表信息
  16718. }CFG_UPNP_INFO;
  16719. ///@brief 阻值范围
  16720. typedef struct tagCFG_RESISTANCE_INFO
  16721. {
  16722. UINT nHighValue; // k欧姆(高)
  16723. UINT nLowValue; // k欧姆(低)
  16724. char szReserved[64]; // 预留字节
  16725. }CFG_RESISTANCE_INFO;
  16726. ///@brief ESD通用配置, 对应配置项目CFG_CMD_ESDCOMMSETTING
  16727. typedef struct tagCFG_ESDCOMMSETTING_INFO
  16728. {
  16729. int nStartCheckMode; // 启动方式:1-人脸启动 2-刷卡启动
  16730. CFG_RESISTANCE_INFO stuHand; // 手阻值范围
  16731. CFG_RESISTANCE_INFO stuLeftFoot; // 左脚阻值范围
  16732. CFG_RESISTANCE_INFO stuRightFoot; // 右脚阻值范围
  16733. char szReserved[1020]; // 预留字节
  16734. }CFG_ESDCOMMSETTING_INFO;
  16735. ///@brief 门口机梯控信息配置
  16736. typedef struct tagCFG_CALL_LIFT_METHOD
  16737. {
  16738. char szCallLiftProtocol[32]; /// 呼梯协议, "Private": 私有, "RiBin": 日立, "TiBoShi": 梯博士
  16739. int nCallliftCmd; /// 呼梯方式,
  16740. /// 0: 未知
  16741. /// 1: 呼叫电梯到某个楼层,并开放其它任何楼层数
  16742. /// 2: 呼叫电梯到某个楼层,用户进去后只能按目标楼层
  16743. /// 3: 呼叫电梯到某个楼层后,还需要刷卡,电梯才能运行
  16744. /// 4: 呼叫电梯到某个楼层,用户进去不用按钮,电梯会自动运行到目标楼层
  16745. char szReserved[60]; /// 保留字节
  16746. }CFG_CALL_LIFT_METHOD;
  16747. ///@brief 门口机梯控信息配置
  16748. typedef struct tagCFG_NETWORK_LIFT_INFO
  16749. {
  16750. char szIP[40]; /// 网络梯控主机IP
  16751. UINT nPort; /// 梯控主机端口号
  16752. char szName[32]; /// 梯控协议名称
  16753. char szReserved[60]; /// 保留字节
  16754. }CFG_NETWORK_LIFT_INFO;
  16755. ///@brief 门口机梯控信息配置, 对应配置项目CFG_CMD_VTO_CALL_LIFT_INFO
  16756. typedef struct tagCFG_VTO_CALL_LIFT_INFO
  16757. {
  16758. DWORD dwSize; /// 结构体大小
  16759. BOOL bIsCallLiftbyMainVTO; /// 是否通过主门口机呼梯
  16760. char szMainVTOUsername[16]; /// 主门口机用户名
  16761. char szMainVTOPassword[32]; /// 主门口机密码
  16762. char szMainVTOIP[40]; /// 主门口机IP
  16763. int nCallLiftMethodCount; /// 呼梯方式个数
  16764. CFG_CALL_LIFT_METHOD stuCallLiftMethod[16]; /// 呼梯方式
  16765. int nCustomCallliftCmd; /// 呼梯方式
  16766. /// 0: 呼叫电梯到某个楼层,并开放其它任何楼层数
  16767. /// 1: 呼叫电梯到某个楼层,用户进去后只能按目标楼层
  16768. /// 2: 呼叫电梯到某个楼层后,还需要刷卡,电梯才能运行
  16769. /// 3: 呼叫电梯到某个楼层,用户进去不用按钮,电梯会自动运行到目标楼层
  16770. int nScene; /// 梯控设备使用场景, 0:梯箱外场景, 1:梯箱内场景
  16771. int nCallLiftPattern; /// 呼梯方式, 0:主门口机呼梯, 1: 网络呼梯, 2: 本地呼梯
  16772. int nNetworkLiftInfoCount; /// 网络梯控主机信息个数
  16773. CFG_NETWORK_LIFT_INFO stuNetworkLiftInfo[64]; /// 网络梯控主机信息
  16774. int nCombinationMode; /// 呼梯组合方式
  16775. /// 0: 未知
  16776. /// 1: 仅呼叫第一部电梯
  16777. /// 2: 同时呼叫所有电梯
  16778. /// 3: 按奇偶房间号分别呼叫第一部或第2部电梯
  16779. BOOL bIsOpenDoorDelayCallLift; /// 是否开启开门联动延时呼梯
  16780. int nDelayTime; /// 延时呼梯时长,单位S,范围1-120
  16781. int nPublicFloorsCount; /// 公共楼层列表个数
  16782. char szPublicFloors[256][8]; /// 公共楼层列表,表示支持的公共楼层
  16783. }CFG_VTO_CALL_LIFT_INFO;
  16784. ///@brief 编码配置
  16785. typedef struct tagCFG_ADAPT_ENCODE_INFO
  16786. {
  16787. int nIPSmoothness; // 编码I/P帧的平滑度,范围1~100,1表示平滑,100表示画质优先
  16788. int nAdjustEnable; // 自适应调整使能,1开启 0关闭。主码流暂不支持此字段
  16789. }CFG_ADAPT_ENCODE_INFO;
  16790. ///@brief 网络自适应编码配置
  16791. typedef struct tagCFG_NET_AUTO_ADAPT_ENCODE
  16792. {
  16793. CFG_ADAPT_ENCODE_INFO stuMainStream[MAX_VIDEOSTREAM_NUM]; // 主码流,0-普通录像,1-动检录像,2-报警录像,暂只支持普通录像
  16794. CFG_ADAPT_ENCODE_INFO stuExtraStream[MAX_VIDEOSTREAM_NUM]; // 辅码流,0-辅码流1,1-辅码流2,2-辅码流3
  16795. }CFG_NET_AUTO_ADAPT_ENCODE;
  16796. ///@brief 网络自适应编码配置 不能为CFG_NET_AUTO_ADAPT_ENCODE的倍数
  16797. typedef struct tagCFG_NET_AUTO_ADAPT_ENCODE_EX
  16798. {
  16799. DWORD dwSize; // 结构体大小
  16800. CFG_ADAPT_ENCODE_INFO stuMainStream[MAX_VIDEOSTREAM_NUM]; // 主码流,0-普通录像,1-动检录像,2-报警录像,暂只支持普通录像
  16801. CFG_ADAPT_ENCODE_INFO stuExtraStream[MAX_VIDEOSTREAM_NUM]; // 辅码流,0-辅码流1,1-辅码流2,2-辅码流3
  16802. int nExtraStreamNum; // 辅码流数量
  16803. }CFG_NET_AUTO_ADAPT_ENCODE_EX;
  16804. ///@brief 组合通道
  16805. typedef struct tagCFG_COMBINATION_CHANNEL
  16806. {
  16807. int nMaxChannel; // 最大通道数
  16808. int nReturnChannel; // 实际返回通道数
  16809. int *pnChannel; // 通道信息
  16810. }CFG_COMBINATION_CHANNEL;
  16811. ///@brief 分割模式
  16812. typedef struct tagCFG_FREESPLIT_INFO
  16813. {
  16814. CFG_SPLITMODE emSplitMode; // 分割模式
  16815. int nMaxCombination; // 最大组合个数
  16816. int nReturnCombination; // 实际组合个数
  16817. CFG_COMBINATION_CHANNEL *pstuCombination; // 组合信息
  16818. }CFG_FREESPLIT_INFO;
  16819. ///@brief 自由分割模式的窗口配置
  16820. typedef struct tagCFG_FREECOMBINATION_INFO
  16821. {
  16822. int nMaxSplit; // 最大分割模式数
  16823. int nReturnSplit; // 实际分割模式数
  16824. CFG_FREESPLIT_INFO *pstuSplit; // 自由分割模式信息
  16825. }CFG_FREECOMBINATION_INFO;
  16826. ///@brief 设备协议类型
  16827. typedef enum tagCFG_EM_DEVICE_PROTOCOL
  16828. {
  16829. CFG_EM_PROTOCOL_PRIVATE3, // 私有3代协议
  16830. CFG_EM_PROTOCOL_ONVIF, // Onvif
  16831. }CFG_EM_DEVICE_PROTOCOL;
  16832. ///@brief 平台侧预览IPC配置 CFG_CMD_PLATFORM_MONITOR_IPC
  16833. typedef struct tagCFG_PLATFORMMONITORIPC_INFO
  16834. {
  16835. BOOL bEnable; // 使能
  16836. char szDevIpAddress[MAX_NAME_LEN]; // 设备ip地址
  16837. int nPort; // 端口
  16838. char szUserName[MAX_USERNAME_LEN]; // 用户名
  16839. char szPassword[MAX_PASSWORD_LEN]; // 密码
  16840. CFG_EM_STREAM_TYPE emStreamType; // 码流类型
  16841. CFG_EM_DEVICE_PROTOCOL emProtocol; // 协议类型
  16842. int nChannelID; // 通道号
  16843. }CFG_PLATFORMMONITORIPC_INFO;
  16844. #define MAX_AREA_COUNT 8 // 最大区域个数
  16845. ///@brief 物联网红外检测配置(对应CFG_CMD_IOT_INFRARED_DETECT)
  16846. typedef struct tagCFG_IOT_INFRARED_DETECT_INFO
  16847. {
  16848. BOOL bEnable[MAX_AREA_COUNT]; // 区域使能,表示是否开启检测,共8个区域
  16849. int nDetectRadius; // 检测半径,单位厘米
  16850. } CFG_IOT_INFRARED_DETECT_INFO;
  16851. ///@brief 物联网录像联动配置(对应CFG_CMD_IOT_RECORD_HANDLE)
  16852. typedef struct tagCFG_IOT_RECORD_HANDLE_INFO
  16853. {
  16854. BOOL bEnable; // 使能,表示是否开启录像联动
  16855. int nRecordTime; // 联动录像时间,单位秒
  16856. } CFG_IOT_RECORD_HANDLE_INFO;
  16857. ///@brief 物联网抓图联动配置(对应CFG_CMD_IOT_SNAP_HANDLE)
  16858. typedef struct tagCFG_IOT_SNAP_HANDLE_INFO
  16859. {
  16860. BOOL bEnable; // 使能,表示是否开启抓图联动
  16861. int nSnapNum; // 联动抓图张数
  16862. } CFG_IOT_SNAP_HANDLE_INFO;
  16863. ///@brief 呼叫转移配置
  16864. typedef struct tagCFG_CALLFORWARD_INFO
  16865. {
  16866. BOOL bAlwaysForwardEnable; // 强制转移使能
  16867. char szAlwaysForwardNumber[MAX_PHONE_NUMBER_LEN]; // 强制转移号码
  16868. BOOL bBusyForwardEnable; // 呼叫遇忙转移使能
  16869. char szBusyForwardNumber[MAX_PHONE_NUMBER_LEN]; // 呼叫遇忙转移号码
  16870. BOOL bNoAnswerForwardEnable; // 呼叫无应答转移使能
  16871. char szNoAnswerForwardNumber[MAX_PHONE_NUMBER_LEN]; // 呼叫无应答转移号码
  16872. }CFG_CALLFORWARD_INFO;
  16873. ///@brief 门铃配置对应CFD_CMD_DOORBELLSOUND
  16874. typedef struct tagCFG_DOOR_BELLSOUND_INFO
  16875. {
  16876. BOOL bSilenceEnable; // 是否静音true 静音false 不静音
  16877. UINT nRingVolume; // 铃声音量取值范围0~100
  16878. char szRingFile[CFG_COMMON_STRING_64]; // 铃声文件现在只支持"A","B","C"三个文件只能选择一个文件
  16879. }CFG_DOOR_BELLSOUND_INFO;
  16880. ///@brief telnet 配置对应CFG_CMD_TELNET
  16881. typedef struct tagCFG_TELNET_INFO
  16882. {
  16883. BOOL bEnable; // telnet使能开关true使能false去使能
  16884. }CFG_TELNET_INFO;
  16885. ///@brief 显示异常信息的叠加配置 对应结构体 CFG_OSD_SYSABNORMAL_INFO
  16886. typedef struct tagCFG_OSD_SYSABNORMAL_INFO
  16887. {
  16888. AV_CFG_Color stuBackColor; // 背景色
  16889. AV_BOOL bEncodeBlend; // 叠加到主码流
  16890. AV_CFG_Color stuFrontColor; // 前景色
  16891. AV_BOOL bPreviewBlend; // 叠加到预览视频
  16892. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191
  16893. int nDisplayTime; // 显示时间,单位为s,如果为0表示一直显示
  16894. AV_BOOL bNetAbort; // 是否显示网络断开,true为显示,false为不显示
  16895. AV_BOOL bIPConflict; // 是否显示IP冲突,true为显示,false为不显示
  16896. AV_BOOL bVoltageStatus; // 是否显示电压异常,true为显示,false为不显示
  16897. AV_BOOL bOutputCurrentStatus; // 是否显示对外供电电流异常,true为显示,false为不显示
  16898. AV_BOOL bSDHotPlug; // 是否显示SD卡插入、拔出、异常,true为显示,false为不显示
  16899. AV_BOOL bSDLowSpace; // 是否显示SD卡空间不足,true为显示,false为不显示
  16900. AV_BOOL bSDFailure; // 是否显示SD卡出错,true为显示,false为不显示
  16901. AV_BOOL bDestroy; // 是否显示破坏检测,true为显示,false为不显示
  16902. }CFG_OSD_SYSABNORMAL_INFO;
  16903. ///@brief 视频编码物件配置(对应结构体 CFG_VIDEO_WIDGET2_INFO)
  16904. typedef struct tagCFG_VIDEO_WIDGET2_INFO
  16905. {
  16906. int nOSDLineSpacing; //行间距倍数,倍数的基准默认是当前字体高度的十分之一,取值范围为0~5,默认值为0
  16907. }CFG_VIDEO_WIDGET2_INFO;
  16908. ///@brief 人数统计叠加OSD配置(对应结构体 CFG_VIDEOWIDGET_NUMBERSTAT_INFO)
  16909. typedef struct tagCFG_VIDEOWIDGET_NUMBERSTAT_INFO
  16910. {
  16911. AV_BOOL bEncodeBlend; // 叠加到主码流,值为false的标题不能设置到底层API
  16912. AV_CFG_Color stuFrontColor; // 前景色
  16913. AV_CFG_Color stuBackColor; // 背景色
  16914. EM_TITLE_TEXT_ALIGN emTextAlign; // 标题对齐方式
  16915. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8192
  16916. AV_BOOL bShowEnterNum; // 是否显示进入人数
  16917. AV_BOOL bShowExitNum; // 是否显示离开人数
  16918. }CFG_VIDEOWIDGET_NUMBERSTAT_INFO;
  16919. ///@brief 马赛克类型
  16920. typedef enum tagEM_MOSAIC_TYPE
  16921. {
  16922. EM_MOSAIC_TYPE_INVALID, // 无效的马赛克类型
  16923. EM_MOSAIC_TYPE_NO, // 不打马赛克
  16924. EM_MOSAIC_TYPE_8, // [8x8大小] 马赛克
  16925. EM_MOSAIC_TYPE_16, // [16x16大小] 马赛克
  16926. EM_MOSAIC_TYPE_24, // [24x24大小] 马赛克
  16927. EM_MOSAIC_TYPE_32, // [32x32大小] 马赛克
  16928. }EM_MOSAIC_TYPE;
  16929. ///@brief 形状类型
  16930. typedef enum tagEM_SHAPE_TYPE
  16931. {
  16932. EM_SHAPE_TYPE_INVALID, // 无效的类型
  16933. EM_SHAPE_TYPE_RECT, // 矩形
  16934. EM_SHAPE_TYPE_POLYGON, // 多边形
  16935. }EM_SHAPE_TYPE;
  16936. ///@brief 云台控制坐标单元
  16937. typedef struct tagPTZ_SPEED
  16938. {
  16939. float fPositionX; //云台水平方向速率,归一化到-1~1
  16940. float fPositionY; //云台垂直方向速率,归一化到-1~1
  16941. float fZoom; //云台光圈放大倍率,归一化到 0~1
  16942. char szReserve[32]; //预留32字节
  16943. }PTZ_SPEED;
  16944. ///@brief 区域;各边距按整长8192的比例
  16945. typedef struct
  16946. {
  16947. long left;
  16948. long top;
  16949. long right;
  16950. long bottom;
  16951. } DH_RECT_REGION, *LPDH_RECT_REGION;
  16952. ///@brief 隐私遮挡配置信息
  16953. typedef struct tagCGF_MASKING_INFO
  16954. {
  16955. BOOL bEnable; // 隐私遮挡开关标志 true开,false关
  16956. PTZ_SPEED stuPosition; // 云台方向与放大倍数
  16957. EM_SHAPE_TYPE stuShapeType; // 形状类型
  16958. DH_RECT_REGION stuRect; // 矩形区域, 坐标取值0~8192
  16959. int nPolygonPoint; // 多边形顶点数
  16960. CFG_POLYGON stuPolygon[MAX_POLYGON_NUM]; // 多边形顶点坐标,坐标取值0~8192
  16961. AV_CFG_Color stuColor; // 遮挡块色
  16962. EM_MOSAIC_TYPE stuMosaicType; // 遮挡块马赛克类型,马赛克时遮挡块色字段无效
  16963. double dViewAngle; // 球机水平视场角, 范围[0.0, 360.0],单位:度
  16964. }CGF_MASKING_INFO;
  16965. ///@brief 单通道隐私遮挡设置(对应结构体 CFG_PRIVACY_MASKING_INFO)
  16966. typedef struct tagCFG_PRIVACY_MASKING_INFO
  16967. {
  16968. int nMaskingInfoCount; // 隐私遮挡配置个数
  16969. CGF_MASKING_INFO stuMaskingInfo[MAX_PRIVACY_MASKING_COUNT]; // 隐私遮挡配置信息
  16970. }CFG_PRIVACY_MASKING_INFO;
  16971. ///@brief 设备信息配置(对应结构体 CFG_DEVICE_INFO)
  16972. typedef struct tagCFG_DEVICE_INFO
  16973. {
  16974. char szSerial[CFG_COMMON_STRING_64]; // 产品系列名称,IPC型号IPC开头,球机型号SD开头,其它类同
  16975. char szMode[CFG_COMMON_STRING_64]; // 设备型号
  16976. char szResolution[CFG_COMMON_STRING_16]; // 机芯分辨率
  16977. char szCameraID[CFG_COMMON_STRING_16]; // 机芯ID
  16978. }CFG_DEVICE_INFO;
  16979. #define CFG_MAX_POLICE_ID_MAP_NUM 64 // 最大警员ID和设备通道映射关系数量
  16980. ///@brief 警员ID和设备通道映射关系信息(对应 CFG_CMD_POLICEID_MAP_INFO)
  16981. typedef struct tagCFG_POLICEID_MAP_INFO
  16982. {
  16983. char szPoliceID[CFG_MAX_POLICE_ID_MAP_NUM][CFG_COMMON_STRING_32]; // 警员ID
  16984. int nIDCount; // ID数目
  16985. }CFG_POLICEID_MAP_INFO;
  16986. ///@brief GPS未定位配置(对应 CFG_CMD_GPS_NOT_ALIGNED)
  16987. typedef struct tagCFG_GPS_NOT_ALIGNED_INFO
  16988. {
  16989. BOOL bEnable; // 使能
  16990. DWORD dwNotifyTimes; // GPS未定位持续时间,超过该时间则触发报警,单位秒
  16991. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  16992. }CFG_GPS_NOT_ALIGNED_INFO;
  16993. ///@brief 网络未连接(包括wifi,3G/4G)配置(对应 CFG_CMD_WIRELESS_NOT_CONNECTED)
  16994. typedef struct tagCFG_WIRELESS_NOT_CONNECTED_INFO
  16995. {
  16996. BOOL bEnable; // 使能
  16997. DWORD dwNotifyTimes; // 网络未连接(包括wifi,3G/4G)持续时间,超过该时间则触发报警,单位秒
  16998. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  16999. }CFG_WIRELESS_NOT_CONNECTED_INFO;
  17000. ///@brief 微云常规容量告警配置(对应 CFG_CMD_MCS_GENERAL_CAPACITY_LOW)
  17001. typedef struct tagCFG_MCS_GENERAL_CAPACITY_LOW
  17002. {
  17003. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17004. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17005. }CFG_MCS_GENERAL_CAPACITY_LOW;
  17006. ///@brief 微云存储节点下线配置(对应 CFG_CMD_MCS_DATA_NODE_OFFLINE)
  17007. typedef struct tagCFG_MCS_DATA_NODE_OFFLINE
  17008. {
  17009. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17010. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17011. }CFG_MCS_DATA_NODE_OFFLINE;
  17012. ///@brief 微云磁盘下线告警配置(对应 CFG_CMD_MCS_DISK_OFFLINE)
  17013. typedef struct tagCFG_MCS_DISK_OFFLINE
  17014. {
  17015. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17016. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17017. }CFG_MCS_DISK_OFFLINE;
  17018. ///@brief 微云磁盘变慢告警配置(对应 CFG_CMD_MCS_DISK_SLOW)
  17019. typedef struct tagCFG_MCS_DISK_SLOW
  17020. {
  17021. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17022. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17023. }CFG_MCS_DISK_SLOW;
  17024. ///@brief 微云磁盘损坏告警配置(对应 CFG_CMD_MCS_DISK_BROKEN)
  17025. typedef struct tagCFG_MCS_DISK_BROKEN
  17026. {
  17027. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17028. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17029. }CFG_MCS_DISK_BROKEN;
  17030. ///@brief 微云磁盘未知错误告警配置(对应 CFG_CMD_MCS_DISK_UNKNOW_ERROR)
  17031. typedef struct tagCFG_MCS_DISK_UNKNOW_ERROR
  17032. {
  17033. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17034. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17035. }CFG_MCS_DISK_UNKNOW_ERROR;
  17036. ///@brief 微云元数据服务器异常告警配置(对应 CFG_CMD_MCS_METADATA_SERVER_ABNORMAL)
  17037. typedef struct tagCFG_MCS_METADATA_SERVER_ABNORMAL
  17038. {
  17039. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17040. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17041. }CFG_MCS_METADATA_SERVER_ABNORMAL;
  17042. ///@brief 微云目录服务器异常告警配置(对应 CFG_CMD_MCS_CATALOG_SERVER_ABNORMAL)
  17043. typedef struct tagCFG_MCS_CATALOG_SERVER_ABNORMAL
  17044. {
  17045. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17046. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17047. }CFG_MCS_CATALOG_SERVER_ABNORMAL;
  17048. ///@brief 微云常规容量告警恢复告警配置(对应 CFG_CMD_MCS_GENERAL_CAPACITY_RESUME)
  17049. typedef struct tagCFG_MCS_GENERAL_CAPACITY_RESUME
  17050. {
  17051. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17052. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17053. }CFG_MCS_GENERAL_CAPACITY_RESUME;
  17054. ///@brief 微云存储节点上线告警配置(对应 CFG_CMD_MCS_DATA_NODE_ONLINE)
  17055. typedef struct tagCFG_MCS_DATA_NODE_ONLINE
  17056. {
  17057. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17058. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17059. }CFG_MCS_DATA_NODE_ONLINE;
  17060. ///@brief 微云磁盘上线告警配置(对应 CFG_CMD_MCS_DISK_ONLINE)
  17061. typedef struct tagCFG_MCS_DISK_ONLINE
  17062. {
  17063. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17064. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17065. }CFG_MCS_DISK_ONLINE;
  17066. ///@brief 微云目录服务器上线告警配置(对应 CFG_CMD_MCS_CATALOG_SERVER_ONLINE)
  17067. typedef struct tagCFG_MCS_CATALOG_SERVER_ONLINE
  17068. {
  17069. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  17070. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17071. }CFG_MCS_CATALOG_SERVER_ONLINE;
  17072. ///@brief 隐私保护
  17073. typedef struct tagCFG_SECURITY_ALARMS_PRIVACY
  17074. {
  17075. char szCode[CFG_COMMON_STRING_64]; // 隐私保护密码
  17076. BOOL bEnable; // 是否开启隐私保护
  17077. }CFG_SECURITY_ALARMS_PRIVACY;
  17078. ///@brief 门禁卡预欠费配置
  17079. typedef struct tagCFG_ACCESSCONTROL_DELAYSTRATEGY
  17080. {
  17081. BOOL bEnable; // 是否启用
  17082. int nPreArrearsTerm; // 预欠费期限,单位:天
  17083. int nArrearsTerm; // 欠费期限,单位:天
  17084. }CFG_ACCESSCONTROL_DELAYSTRATEGY;
  17085. ///@brief 无人机禁飞时段 配置 ( 对应 CFG_CMD_NO_FLY_TIME )
  17086. typedef struct tagCFG_NO_FLY_TIME_INFO
  17087. {
  17088. BOOL bEnable; // 禁飞时段使能
  17089. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17090. }CFG_NO_FLY_TIME_INFO;
  17091. ///@brief 密码重置功能 配置 ( 对应 CFG_CMD_PWD_RESET )
  17092. typedef struct tagCFG_PWD_RESET_INFO
  17093. {
  17094. BOOL bEnable; // 密码重置功能使能
  17095. }CFG_PWD_RESET_INFO;
  17096. ///@brief 网络预览中断事件配置( 对应结构体 CFG_NET_MONITOR_ABORT_INFO )
  17097. typedef struct tagCFG_NET_MONITOR_ABORT_INFO
  17098. {
  17099. BOOL bEnable; // 使能开关
  17100. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17101. } CFG_NET_MONITOR_ABORT_INFO;
  17102. ///@brief 本地扩展报警 配置 ( 对应 CFG_CMD_LOCAL_EXT_ALARM )
  17103. typedef struct tagCFG_LOCAL_EXT_ALARME_INFO
  17104. {
  17105. BOOL bEnable; // 使能
  17106. int nSensorType; // 传感器类型 0,常闭 1,常开
  17107. char szAlarmChannelName[CFG_COMMON_STRING_64]; // 报警通道名称
  17108. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17109. }CFG_LOCAL_EXT_ALARME_INFO;
  17110. #define MAX_INVITE_NUMBER_LIST 16
  17111. ///@brief 视频对讲电话基础配置( 对应 CFG_CMD_VIDEO_TALK_PHONE_BASIC )
  17112. typedef struct tagCFG_VIDEO_TALK_PHONE_BASIC_INFO
  17113. {
  17114. BOOL bAlarmOutputEnable; // 呼叫联动报警输出使能
  17115. BOOL bNoAnswerTransferPlatformEnable; // 呼叫无应答转移平台使能
  17116. BOOL bEachCallEnable; // 户户通话使能
  17117. BOOL bAutoAnswerEnable; // 自动接听使能
  17118. int nInviteNumberList; // 主叫房间列表个数
  17119. char szInviteNumberList[MAX_INVITE_NUMBER_LIST][CFG_COMMON_STRING_16]; // 主叫房间列表
  17120. BOOL bVTOCallSoundEnable; // 是否开启门口机回铃使能
  17121. char szVTOCallSound[CFG_COMMON_STRING_128]; // 门口机回铃铃声路径
  17122. BOOL bEnableCall; // 呼叫使能
  17123. } CFG_VIDEO_TALK_PHONE_BASIC_INFO;
  17124. ///@brief 语言种类
  17125. typedef enum tagEM_LANGUAGE_TYPE
  17126. {
  17127. EM_LANGUAGE_ENGLISH, // 英文
  17128. EM_LANGUAGE_CHINESE_SIMPLIFIED, // 简体中文
  17129. EM_LANGUAGE_CHINESE_TRADITIONAL, // 繁体中文
  17130. EM_LANGUAGE_ITALIAN, // 意大利文
  17131. EM_LANGUAGE_SPANISH, // 西班牙文
  17132. EM_LANGUAGE_JAPANESE, // 日文版
  17133. EM_LANGUAGE_RUSSIAN, // 俄文版
  17134. EM_LANGUAGE_FRENCH, // 法文版
  17135. EM_LANGUAGE_GERMAN, // 德文版
  17136. EM_LANGUAGE_PORTUGUESE, // 葡萄牙语
  17137. EM_LANGUAGE_TURKEY, // 土尔其语
  17138. EM_LANGUAGE_POLISH, // 波兰语
  17139. EM_LANGUAGE_ROMANIAN, // 罗马尼亚
  17140. EM_LANGUAGE_HUNGARIAN, // 匈牙利语
  17141. EM_LANGUAGE_FINNISH, // 芬兰语
  17142. EM_LANGUAGE_ESTONIAN, // 爱沙尼亚语
  17143. EM_LANGUAGE_KOREAN, // 韩语
  17144. EM_LANGUAGE_FARSI, // 波斯语
  17145. EM_LANGUAGE_DANSK, // 丹麦语
  17146. EM_LANGUAGE_CZECHISH, // 捷克文
  17147. EM_LANGUAGE_BULGARIA, // 保加利亚文
  17148. EM_LANGUAGE_SLOVAKIAN, // 斯洛伐克语
  17149. EM_LANGUAGE_SLOVENIA, // 斯洛文尼亚文
  17150. EM_LANGUAGE_CROATIAN, // 克罗地亚语
  17151. EM_LANGUAGE_DUTCH, // 荷兰语
  17152. EM_LANGUAGE_GREEK, // 希腊语
  17153. EM_LANGUAGE_UKRAINIAN, // 乌克兰语
  17154. EM_LANGUAGE_SWEDISH, // 瑞典语
  17155. EM_LANGUAGE_SERBIAN, // 塞尔维亚语
  17156. EM_LANGUAGE_VIETNAMESE, // 越南语
  17157. EM_LANGUAGE_LITHUANIAN, // 立陶宛语
  17158. EM_LANGUAGE_FILIPINO, // 菲律宾语
  17159. EM_LANGUAGE_ARABIC, // 阿拉伯语
  17160. EM_LANGUAGE_CATALAN, // 加泰罗尼亚语
  17161. EM_LANGUAGE_LATVIAN, // 拉脱维亚语
  17162. EM_LANGUAGE_THAI, // 泰语
  17163. EM_LANGUAGE_HEBREW, // 希伯来语
  17164. EM_LANGUAGE_Bosnian, // 波斯尼亚文
  17165. } EM_LANGUAGE_TYPE;
  17166. // 支持的最大语言个数
  17167. #define MAX_SUPPORTED_LANGUAGE 32
  17168. ///@brief 手机推送消息的翻译目标语言配置 (对应 CFG_APP_EVENT_LANGUAGE_INFO )
  17169. typedef struct tagCFG_APP_EVENT_LANGUAGE_INFO
  17170. {
  17171. EM_LANGUAGE_TYPE emCurrLanguage; // 推送消息需要翻译成的目标语言
  17172. int nSupportLanguageCount; // 设备支持的语言个数
  17173. EM_LANGUAGE_TYPE emLanguage[MAX_SUPPORTED_LANGUAGE]; // 设备支持翻译的语言列表
  17174. } CFG_APP_EVENT_LANGUAGE_INFO;
  17175. ///@brief dropbox token配置( 对应CFG_CMD_DROPBOXTOKEN)
  17176. typedef struct tagCFG_DROPBOXTOKEN_INFO
  17177. {
  17178. char szDropBoxToken[CFG_COMMON_STRING_128]; // dropbox token
  17179. BOOL bKeyValid; // token valid
  17180. }CFG_DROPBOXTOKEN_INFO;
  17181. ///@brief PtzDevice 配置( 对应 CFG_CMD_PTZDEVICE)
  17182. typedef struct tagCFG_PTZDEVICE_INFO
  17183. {
  17184. CFG_COMM_PROP stuAttribute; // 串口属性
  17185. int nAddress; // 设备地址
  17186. int nPort; // 串口端口号
  17187. int nCurrentMode; // 控制模式,0:软件模式 1:硬件模式
  17188. char szProtocolName[MAX_NAME_LEN]; // 协议名
  17189. }CFG_PTZDEVICE_INFO;
  17190. ///@brief DevLocation 配置( 对应CFG_CMD_DEVLOCATION)
  17191. typedef struct tagCFG_DEVLOCATION_INFO
  17192. {
  17193. UINT unLongitude; // 经度 单位百万分之一度,范围0-360度
  17194. UINT unLatitude; // 纬度 单位百万分之一度,范围0-360度
  17195. double dbAltitude; // 海拔 单位米
  17196. BOOL bConfigEnable; // true:GPS信息按照配置上报
  17197. float fHeight; // 设备高度 单位米
  17198. }CFG_DEVLOCATION_INFO;
  17199. ///@brief FireWarningExt 配置( 对应CFG_CMD_FIRE_WARNING_EXT)
  17200. typedef struct tagCFG_FIREWARNING_EXT_INFO
  17201. {
  17202. BOOL bVisualOverviewEnable; // 可见光通道是否需要全景图
  17203. BOOL bVisualDetailEnable; // 可见光通道是否需要细节图
  17204. UINT nThermoSnapTimes; // 热成像通道抓图张数
  17205. }CFG_FIREWARNING_EXT_INFO;
  17206. ///@brief 标定信息单元
  17207. typedef struct tagCFG_CALIBRATE_UNIT_INFO
  17208. {
  17209. UINT nHeight; // 分辨率高
  17210. UINT nWidth; // 分辨率宽
  17211. float nPosition[3]; // 云台位置(P/T/Z 归一化)
  17212. UINT nLocation[2]; // 标定点坐标
  17213. UINT nHFOV; // 横向视场角(单位:0.01度)
  17214. UINT nVFOV; // 纵向视场角(单位:0.01度)
  17215. }CFG_CALIBRATE_UNIT_INFO;
  17216. ///@brief 标定基本信息
  17217. typedef struct tagCFG_CALIBRATE_INFO
  17218. {
  17219. CFG_CALIBRATE_UNIT_INFO stuCalibrateUnitInfo[5][2]; //标定信息单元
  17220. int nInfoNum; //标定数量
  17221. }CFG_CALIBRATE_INFO;
  17222. ///@brief 标定点信息
  17223. typedef struct tagCFG_LOCATION_CALIBRATE_POINT_INFO
  17224. {
  17225. UINT nID; // 标定点ID
  17226. char szName[CFG_COMMON_STRING_128]; // 标定点名称
  17227. BOOL bEnable; // 使能
  17228. UINT nLongitude; // 经度
  17229. UINT nLatitude; // 纬度
  17230. double fAltitude; // 海拔
  17231. CFG_CALIBRATE_INFO stuCalibrateInfo; // 标定点基本信息
  17232. BYTE byReserved1[4]; // 字节对齐
  17233. }CFG_LOCATION_CALIBRATE_POINT_INFO;
  17234. #define MAX_CALIBRATE_POINT_NUM 64 ///标定点最大个数
  17235. ///@brief LocationCalibrate 配置( 对应CFG_CMD_LOCATION_CALIBRATE)
  17236. typedef struct tagCFG_LOCATION_CALIBRATE_INFO
  17237. {
  17238. UINT nVisualMaxHFOV; // 可见光横向视角
  17239. UINT nVisualMaxVFOV; // 可见光纵向视角
  17240. UINT nThermoMaxHFOV; // 热成像横向视角
  17241. UINT nThermoMaxVFOV; // 热成像纵向视角
  17242. CFG_LOCATION_CALIBRATE_POINT_INFO stuPointInfo[MAX_CALIBRATE_POINT_NUM]; // 标定点信息
  17243. int nPointNum; // 标定点个数
  17244. BYTE byReserved1[4]; // 字节对齐
  17245. }CFG_LOCATION_CALIBRATE_INFO;
  17246. ///@brief 怠速配置(对应 CFG_CMD_IDLINGTIME)
  17247. typedef struct tagCFG_IDLINGTIME_INFO
  17248. {
  17249. int nIdlingTimeThreshold; // 怠速停留阈值,单位:秒
  17250. int nSpeedThreshold; // 怠速判断最大速度,单位:km/h
  17251. }CFG_IDLINGTIME_INFO;
  17252. ///@brief 汽车行驶状态配置(对应 CFG_CMD_CARDIVERSTATE)
  17253. typedef struct tagCFG_CARDIVERSTATE_INFO
  17254. {
  17255. int nAccelerationThreshold; // 急加速阀值,单位:0.1m/s^2
  17256. int nDecelerationThreshold; // 急减速阀值,单位:0.1m/s^2
  17257. }CFG_CARDIVERSTATE_INFO;
  17258. ///@brief 车载配置(对应 CFG_CMD_VEHICLE)
  17259. typedef struct tagCFG_VEHICLE_INFO
  17260. {
  17261. char szPlateNumber[CFG_MAX_PLATE_NUMBER_LEN]; // 车牌内容
  17262. }CFG_VEHICLE_INFO;
  17263. ///@brief 智能家居场景列表配置(对应CFG_CMD_SMARTHOME_SCENELIST)
  17264. typedef struct tagCFG_SMARTHOME_SCENELIST_INFO
  17265. {
  17266. DWORD dwSize; //结构体大小
  17267. char szSceneID[32]; //场景ID
  17268. char szName[128]; //场景名称
  17269. }CFG_SMARTHOME_SCENELIST_INFO;
  17270. ///@brief 灯光类型
  17271. typedef enum tagEM_CFG_LC_LIGHT_TYPE
  17272. {
  17273. EM_CFG_LC_LIGHT_TYPEUNKNOWN, //未知
  17274. EM_CFG_LC_LIGHT_TYPE_INFRAREDLIGHT, //红外灯
  17275. EM_CFG_LC_LIGHT_TYPE_WIHTELIGHT, //白光灯
  17276. EM_CFG_LC_LIGHT_TYPE_LASERLIGHT, //激光灯
  17277. EM_CFG_LC_LIGHT_TYPE_AIMIXLIGHT, //智能混光灯(根据智能ID切换红外和白光灯)
  17278. EM_CFG_LC_LIGHT_TYPE_PILOTLIGHT, //指示灯
  17279. }EM_CFG_LC_LIGHT_TYPE;
  17280. ///@brief 灯光模式
  17281. typedef enum tagEM_CFG_LC_MODE
  17282. {
  17283. EM_CFG_LC_MODE_UNKNOWN, //未知
  17284. EM_CFG_LC_MODE_MANUAL, //手动
  17285. EM_CFG_LC_MODE_ZOOMPRIO, //倍率优先
  17286. EM_CFG_LC_MODE_TIMING, //定时(废弃)
  17287. EM_CFG_LC_MODE_AUTO, //自动
  17288. EM_CFG_LC_MODE_OFF, //关闭灯光
  17289. EM_CFG_LC_MODE_EXCLUSIVEMANUAL, //支持多种灯光(废弃)
  17290. EM_CFG_LC_MODE_SMARTLIGHT, //智能灯光(废弃)
  17291. EM_CFG_LC_MODE_LINKING, //事件联动(废弃)
  17292. EM_CFG_LC_MODE_DUSKTODAWN, //光敏
  17293. EM_CFG_LC_MODE_FORCEON, //强制打开灯光
  17294. }EM_CFG_LC_MODE;
  17295. #define CFG_LC_LIGHT_COUNT 4 //灯光组灯光数量
  17296. ///@brief 灯光信息
  17297. typedef struct tagNET_LIGHT_INFO
  17298. {
  17299. int nLight; //亮度百分比
  17300. int nAngle; //激光灯角度归一化值
  17301. }NET_LIGHT_INFO;
  17302. ///@brief 补光灯灵敏度配置信息单元
  17303. typedef struct tagCFG_LIGHTING_V2_UNIT
  17304. {
  17305. EM_CFG_LC_LIGHT_TYPE emLightType; //灯光类型
  17306. EM_CFG_LC_MODE emMode; //灯光模式
  17307. int nCorrection; //灯光补偿
  17308. int nSensitive; //灯光灵敏度
  17309. int nLightSwitchDelay; //补光灯开关延时
  17310. NET_LIGHT_INFO anNearLight[CFG_LC_LIGHT_COUNT]; //近光灯组信息
  17311. int nNearLightLen; //近光灯组数量
  17312. NET_LIGHT_INFO anMiddleLight[CFG_LC_LIGHT_COUNT]; //中光灯组信息
  17313. int nMiddleLightLen; //中光灯组数量
  17314. NET_LIGHT_INFO anFarLight[CFG_LC_LIGHT_COUNT]; //远光灯组信息
  17315. int nFarLightLen; //远光灯组数量
  17316. UINT nPercentOfMaxBrightness; //当前白光灯上限亮度相对于白光灯最大亮度的百分比0~100
  17317. int nAIMixLightSwitchDelay; //智能补光方案下生效,表示红外白光切换延时,防止来回切换影响寿命和体验单位秒 范围0-300 默认30s
  17318. BYTE byReserved[120]; //预留字节
  17319. }CFG_LIGHTING_V2_UNIT;
  17320. #define LC_LIGHT_TYPE_NUM 3 ///灯光类型数量
  17321. ///@brief 白天黑夜补光灯灵敏度配置
  17322. typedef struct tagCFG_LIGHTING_V2_DAYNIGHT
  17323. {
  17324. CFG_LIGHTING_V2_UNIT anLightInfo[LC_LIGHT_TYPE_NUM]; //各类型灯光信息
  17325. int nLightInfoLen; //灯光类型数量
  17326. }CFG_LIGHTING_V2_DAYNIGHT;
  17327. #define CFG_LC_LIGHT_CONFIG 8 // 白天黑夜对应灯光配置最大个数
  17328. ///@brief 补光灯灵敏度配置
  17329. typedef struct tagCFG_LIGHTING_V2_INFO
  17330. {
  17331. int nChannel; // 通道
  17332. int nDNLightInfoNum; // 白天黑夜对应灯光配置数量
  17333. CFG_LIGHTING_V2_DAYNIGHT anDNLightInfo[CFG_LC_LIGHT_CONFIG]; // 白天黑夜对应灯光配置
  17334. // 从元素0开始分别表示 白天、夜晚、普通、顺光、一般逆光、强逆光、低照度、自定义
  17335. }CFG_LIGHTING_V2_INFO;
  17336. #define MAX_KBUSER_NUM 100 // 操作员用户最大个数
  17337. ///@brief 操作员用户信息
  17338. typedef struct tagCFG_KBUSER_PASSWORD_INFO
  17339. {
  17340. UINT nUserCode; // 键盘用户编号
  17341. char szPassword[7]; // 键盘用户密码
  17342. BYTE bReserved[257]; // 保留字节
  17343. }CFG_KBUSER_PASSWORD_INFO;
  17344. ///@brief 键盘操作员用户配置(对应CFG_CMD_KBUSER_PASSWORD)
  17345. typedef struct tagCFG_KBUSER_USERS_INFO
  17346. {
  17347. DWORD dwSize; // 结构体大小
  17348. int nKbuserNum; // 操作员用户个数,一般默认支持的最大个数为32
  17349. CFG_KBUSER_PASSWORD_INFO stuKbuserPassword[MAX_KBUSER_NUM]; // 操作员用户信息
  17350. }CFG_KBUSER_USERS_INFO;
  17351. ///@brief 金库服务状态
  17352. typedef enum tagEM_GOLD_SERVICE
  17353. {
  17354. EM_GOLD_SERVICE_UNKNOWN = -1, //未知
  17355. EM_GOLD_SERVICE_CLOSE, //关闭
  17356. EM_GOLD_SERVICE_OPEN, //开启
  17357. EM_GOLD_SERVICE_OTHER, //其他
  17358. }EM_GOLD_SERVICE;
  17359. ///@brief 门禁区域
  17360. typedef enum tagEM_GUARD_AREA
  17361. {
  17362. EM_GUARD_AREA_UNKNOWN, //未知
  17363. EM_GUARD_AREA_HANDOVER, //交接区
  17364. EM_GUARD_AREA_CASH, //现金区
  17365. EM_GUARD_AREA_NOBLEMETAL, //贵金属区
  17366. EM_GUARD_AREA_DEPOSIT, //寄存库
  17367. EM_GUARD_AREA_CUSTODY, //代保管库
  17368. EM_GUARD_AREA_CHECK, //清分整点区
  17369. EM_GUARD_AREA_GOLDSPLIT, //黄金分割区
  17370. EM_GUARD_AREA_GODLSALE, //黄金寄售区
  17371. EM_GUARD_AREA_LOAD, //装卸区
  17372. EM_GUARD_AREA_BUSINESS, //营业区
  17373. EM_GUARD_AREA_OFFICE, //办公区
  17374. EM_GUARD_AREA_DUTYROOM, //监控值班室
  17375. EM_GUARD_AREA_OTHER, //其他
  17376. EM_GUARD_AREA_VOUCHER, //凭证库
  17377. EM_GUARD_AREA_ISSUE, //发行库
  17378. EM_GUARD_AREA_ACCOUNT, //账务处理区
  17379. }EM_GUARD_AREA;
  17380. ///@brief 门禁类型
  17381. typedef enum tagEM_GUARD_TYPE
  17382. {
  17383. EM_GUARD_TYPE_UNKNOWN, //未知
  17384. EM_GUARD_TYPE_VAULT, //金库区
  17385. EM_GUARD_TYPE_WORK, //工作区
  17386. }EM_GUARD_TYPE;
  17387. ///@brief OEM数据
  17388. typedef struct tagCFG_ACCESS_OEM_DATA
  17389. {
  17390. char szZoneNo[6]; //地区号
  17391. BYTE byReserved1[2]; //对齐字节
  17392. char szBrNo[6]; //网点号
  17393. BYTE byReserved2[2]; //对齐字节
  17394. EM_GUARD_AREA emGuardArea; //门禁区域
  17395. BYTE byReserved3[1]; //对齐字节
  17396. EM_GUARD_TYPE emGuardType; //门禁类型
  17397. BYTE byReserved4[1]; //对齐字节
  17398. char szCorpId[11]; //标识
  17399. BYTE byReserved5[1]; //对齐字节
  17400. char szDeviceType[6]; //设备类型
  17401. BYTE byReserved6[2]; //对齐字节
  17402. char szLastModTime[20]; //最后修改时间
  17403. char szLastModUser[11]; //最后修改人
  17404. BYTE byReserved7[1]; //对齐字节
  17405. EM_GOLD_SERVICE emService; //金库服务状态
  17406. BYTE byReserved[128]; //保留字节
  17407. }CFG_ACCESS_OEM_DATA;
  17408. ///@brief 工行金库门禁配置
  17409. typedef struct tagCFG_ACCESS_OEM_INFO
  17410. {
  17411. char szCorporation[CFG_COMMON_STRING_32]; //OEM对象
  17412. unsigned int nSuiteNumber; //OEM套件号
  17413. CFG_ACCESS_OEM_DATA stuData; //OEM信息
  17414. BYTE byReserved[1024]; //保留字节
  17415. }CFG_ACCESS_OEM_INFO;
  17416. ///@brief 热成像特有的机芯降噪配置
  17417. typedef struct tagCFG_THERM_DENOISE_INFO
  17418. {
  17419. BOOL bEnable; // 机芯降噪使能
  17420. UINT nDenoiseValue; // 降噪等级0-100, bEnable为TRUE时有效
  17421. BYTE byReserved[128]; // 保留字节
  17422. }CFG_THERM_DENOISE_INFO;
  17423. ///@brief 热成像特有的机芯降噪
  17424. typedef struct tagCFG_THERM_DENOISE
  17425. {
  17426. CFG_THERM_DENOISE_INFO stuThermDenoiseInfo[3]; // [0]:白天,[1]:黑夜,[2]:普通
  17427. BYTE byReserved[1024]; // 保留字节
  17428. }CFG_THERM_DENOISE;
  17429. ///@brief 灯光工作模式
  17430. typedef enum tagEM_LAMP_WORK_MODE
  17431. {
  17432. EM_LAMP_UNKNOWN = -1, // 未知
  17433. EM_LAMP_NO_FLASH, // 禁止闪光
  17434. EM_LAMP_ALWAYS_FLASH, // 始终闪光
  17435. EM_LAMP_AUTO_FLASH, // 自动闪光
  17436. }EM_LAMP_WORK_MODE;
  17437. ///@brief 灯光自动模式
  17438. typedef enum tagEM_LAMP_AUTO_TYPE
  17439. {
  17440. EM_LAMP_AUTO_UNKNOWN, // 未知
  17441. EM_LAMP_AUTO_TIMEING, // 按时间控制开关
  17442. EM_LAMP_ALWAYS_BRIGHTNESS, // 按亮度
  17443. EM_LAMP_AUTO_SPACE_STATE, // 车辆刚驶入时设备亮灯,一定时间后关闭。时间值由程序调试取最优值,暂不开放。
  17444. EM_LAMP_AUTO_ICRCUT, // 亮灯绑定在ICR切换上,根据ICR状态开关
  17445. }EM_LAMP_AUTO_TYPE;
  17446. ///@brief 交通灯光配置
  17447. typedef struct tagTRAFFIC_CONSTATE_LAMP_CONFIG
  17448. {
  17449. UINT nLightMask; // 灯控掩码,某些灯上有6个灯泡,可设置部分灯亮,按位表示。1表示亮,0表示灭
  17450. UINT nBrightness; // 常亮灯亮度[0,100]
  17451. UINT nPreValue; // 亮度预设值, 环境亮度低于此值,常亮灯开始工作
  17452. EM_LAMP_WORK_MODE emLampMode; // 灯光工作模式
  17453. EM_LAMP_AUTO_TYPE emAutoMode; // 自动模式下的工作类型
  17454. CFG_TIME_SCHEDULE stuTimeSchedule; // 时间段配置
  17455. UINT nCarPassBrightness; // 过车时常亮灯的亮度(就减少光污染有车经过时,亮度提高,增加车身特征值的识别率),范围[0,100]且值应大于nBrightness.
  17456. BYTE byReserved[1020]; // 保留字节
  17457. }TRAFFIC_CONSTATE_LAMP_CONFIG;
  17458. ///@brief 智能交通灯光配置
  17459. typedef struct tagCFG_CONSTANT_LAMP_INFO
  17460. {
  17461. UINT nTrafficLampNum; // 智能交通灯光配置个数
  17462. TRAFFIC_CONSTATE_LAMP_CONFIG stuTrafficLamp[16]; // 灯光的配置数组
  17463. }CFG_CONSTANT_LAMP_INFO;
  17464. ///@brief 线圈工作模式
  17465. typedef enum tagEM_TRAFFOCIO_WORKMODE
  17466. {
  17467. EM_TRAFFOCIO_UNKNOWN = -1, // 未知
  17468. EM_TRAFFOCIO_SINGLE_COIL, // 单线圈工作模式
  17469. EM_TRAFFOCIO_DOUBLE_COIL_SPEED, // 双线圈测试模式
  17470. EM_TRAFFOCIO_DOUBLE_COIL_TRAFFIC, // 双线圈交通模式
  17471. }EM_TRAFFOCIO_WORKMODE;
  17472. ///@brief 线圈触发方式
  17473. typedef enum tagEM_COIL_TRIGGER_MODE
  17474. {
  17475. EM_TRIGGER_UNKNOWN = -1, // 未知
  17476. EM_TRIGGER_NO_TRIGGER, // 不触发
  17477. EM_TRIGGER_RISING_EDGE, // 上升沿
  17478. EM_TRIGGER_FALLING_EDGE, // 下降沿
  17479. EM_TRIGGER_RISING_FALLING, // 上升下降沿
  17480. }EM_COIL_TRIGGER_MODE;
  17481. ///@brief 线圈配置类型
  17482. typedef enum tagEM_COIL_CONFIG_TYEP
  17483. {
  17484. EM_COIL_CONFIG_UNKNOWN = -1, // 未知
  17485. EM_COIL_CONFIG_GATE, // 卡口配置类型
  17486. EM_COIL_CONFIG_ELE_POLICE, // 电警配置类型
  17487. }EM_COIL_CONFIG_TYEP;
  17488. ///@brief 抓拍时机
  17489. typedef enum tagEM_SNAP_TRIGGER_MODE
  17490. {
  17491. EM_SNAP_TRIGGER_UNKNOWN = -1, // 未知
  17492. EM_SNAP_TRIGGER_NO_TRIGGER, // 不触发
  17493. EM_SNAP_TRIGGER_IN_TRIGGER, // 入线圈触发
  17494. EM_SNAP_TRIGGER_OUT_TRIGGER, // 出线圈触发
  17495. EM_SNAP_TRIGGER_INOUT_TRIGGER, // 出入线圈都触发
  17496. }EM_SNAP_TRIGGER_MODE;
  17497. ///@brief 红灯方向
  17498. typedef enum tagEM_RED_DIRECTION
  17499. {
  17500. EM_RED_DIRECTION_UNKNOWN = -1, // 未知
  17501. EM_RED_DIRECTION_NO_RELATED, // 不关联
  17502. EM_RED_DIRECTION_LEFT, // 左转红灯
  17503. EM_RED_DIRECTION_STRAIGT, // 直行红灯
  17504. EM_RED_DIRECTION_RIGHT, // 右转红灯
  17505. EM_RED_DIRECTION_WAIT_LEFT, // 待左
  17506. EM_RED_DIRECTION_WAIT_RIGHT, // 待右
  17507. EM_RED_DIRECTION_STRAIGT_LEFT, // 直行左转
  17508. EM_RED_DIRECTION_STRAIGT_RIGHT, // 直行右转,电警有效
  17509. }EM_RED_DIRECTION;
  17510. ///@brief 车道的线圈属性
  17511. typedef struct tagCFG_TRAFFICIO_LANES_COILS
  17512. {
  17513. UINT nCoilID; // 线圈ID
  17514. EM_COIL_TRIGGER_MODE emTriggerMode; // 触发方式
  17515. EM_COIL_CONFIG_TYEP emType; // 配置类型
  17516. UINT nDelayFlashID; // 延时闪光灯序号,范围0~5,0表示不延时任何闪光灯
  17517. UINT nFlashSerialID; // 闪光灯序号,范围0~5,0表示不打开闪光灯
  17518. EM_RED_DIRECTION emRedDirection; // 红灯方向
  17519. UINT nNextTriggerTime; // 下次触发时间
  17520. UINT nDelayTriggerTime; // 延时触发时间,ms为单位,0表示立即触发
  17521. EM_SNAP_TRIGGER_MODE emSnapTriggerMode; // 抓拍时机
  17522. }CFG_TRAFFICIO_LANES_COILS;
  17523. ///@brief 交通线圈的车道属性
  17524. typedef struct tagCFG_TRAFFICIO_LANES
  17525. {
  17526. UINT nLaneNumber; // 车道号,车道号范围是0-7
  17527. UINT nCarScheme; // 卡口配置方案,具体的方案索引,具体方案含义参考打包环境local.png
  17528. EM_TRAFFOCIO_WORKMODE emWorkMode; // 工作方式
  17529. int nLanesCoils; // 线圈配置的个数
  17530. CFG_TRAFFICIO_LANES_COILS stuLanesCoils[32]; // 线圈配置
  17531. BYTE byReserved[2048]; // 保留字节
  17532. }CFG_TRAFFICIO_LANES;
  17533. ///@brief 线圈IO配置
  17534. typedef struct tagCFG_TRAFFIC_IO
  17535. {
  17536. BOOL bEnable; // 使能
  17537. UINT nLanes; // 车道数量
  17538. CFG_TRAFFICIO_LANES stuTrafficIoLanes[16]; // 车道配置
  17539. }CFG_TRAFFIC_IO;
  17540. ///@brief 预案关联的一项配置
  17541. typedef struct tagNET_COLLECTION_NAME_INFOS
  17542. {
  17543. char szName[32]; // 配置名称
  17544. char szVideoName[32]; // 视频预案的名称
  17545. char szAdditionalName[32]; // 附加预案的名称
  17546. char szControlID[32]; // 控制编号
  17547. BYTE byReserved[64]; // 保留字节
  17548. }NET_COLLECTION_NAME_INFOS;
  17549. ///@brief 预案关联的一项配置
  17550. typedef struct tagNET_MONITOR_WALL_COLLECTION_MAP_INFO
  17551. {
  17552. NET_COLLECTION_NAME_INFOS stuCollection[32]; // 预案配置,一个电视墙可以配置32个预案
  17553. int nCollectionCount; // 预案配置的个数
  17554. BYTE byReserved[132]; // 保留字节
  17555. }NET_MONITOR_WALL_COLLECTION_MAP_INFO;
  17556. ///@brief 电视墙预关联配置,一维数组,每一个元素对应一个电视墙对应结构体
  17557. typedef struct tagCFG_MONITOR_WALL_COLLECTION_MAP_INFO
  17558. {
  17559. DWORD dwSize; // 结构体大小
  17560. BOOL bAllMonitorWall; // 是否为全电视墙的设置(只在设置时有效),TRUE表示对所有电视墙进行设置(chennal 为-1);FALSE表示对指定电视墙进行处理(chennal 为非-1)。
  17561. BYTE byReserved[4]; // 保留字节,用于字节对齐
  17562. int nWallCount; // 电视墙的个数
  17563. NET_MONITOR_WALL_COLLECTION_MAP_INFO stuMonitorWallCollectioInfo[16]; // 电视墙预案信息,16表示最多支持16个电视墙墙的预案配置
  17564. }CFG_MONITOR_WALL_COLLECTION_MAP_INFO;
  17565. ///@brief 视频码流类型
  17566. typedef enum tagEM_INPUT_STREAM_TYPE
  17567. {
  17568. EM_INPUT_STREAM_UNKNOWN, // 未知
  17569. EM_INPUT_STREAM_MAIN, // “Main”-主码流
  17570. EM_INPUT_STREAM_EXTRA1, // “Extra1”-辅码流1
  17571. EM_INPUT_STREAM_EXTRA2, // “Extra2”-辅码流2
  17572. EM_INPUT_STREAM_EXTRA3, // “Extra3”-辅码流3
  17573. }EM_INPUT_STREAM_TYPE;
  17574. ///@brief 设备连接方式
  17575. typedef enum tagEM_CONNECTING_METHOD
  17576. {
  17577. EM_CONNECTING_UNKNOWN, // 未知
  17578. EM_CONNECTING_DIRECT, // “Direct”, 直连设备
  17579. EM_CONNECTING_VIADSS, // “ViaDSS”, 经过平台连接设
  17580. }EM_CONNECTING_METHOD;
  17581. ///@brief 级联权限验证信息,级联预览用
  17582. typedef struct tagNET_CASCADE_AUTHENTICATOR
  17583. {
  17584. char szUserName[128]; // 用户名
  17585. char szPassWord[128]; // 密码
  17586. char szSerialNo[64]; // 验证设备序列号
  17587. BYTE bReserver[128]; // 保留字节
  17588. }NET_CASCADE_AUTHENTICATOR;
  17589. ///@brief 输入视频信息
  17590. typedef struct tagNET_VIDEO_INPUT_INFO
  17591. {
  17592. char szDevice[32]; // 设备唯一标志
  17593. UINT nChannel; // 视频输入通道号
  17594. UINT nInterval; // 轮巡时间间隔,单位秒,范围[5,120]
  17595. EM_INPUT_STREAM_TYPE emStream; // 视频码流类型
  17596. EM_CONNECTING_METHOD emConnectingMethod; // 设备连接方式
  17597. NET_CASCADE_AUTHENTICATOR stuCascadeAuthenticator; //级联权限验证信息,级联预览用
  17598. AV_CFG_RemoteDevice stuDevice; // 设备详细信息,只可获取不可更改
  17599. BYTE byReserved[256]; // 保留字节
  17600. }NET_VIDEO_INPUT_INFO;
  17601. ///@brief 预案关联的一项配置
  17602. typedef struct tagNET_VIDEO_INPUT_GROUP_INFO
  17603. {
  17604. char szName[32]; // 输入组名称
  17605. char szControlID[32]; // 控制编号
  17606. BYTE byReserved1[4]; // 保留字节,用于字节对齐
  17607. int nListCount; // 视频输入列表的数量
  17608. NET_VIDEO_INPUT_INFO stuVideoInput[64]; // 视频输入信息数组,最多支持64个
  17609. BYTE byReserved[256]; // 保留字节
  17610. }NET_VIDEO_INPUT_GROUP_INFO;
  17611. ///@brief 视频输入组配置
  17612. typedef struct tagCFG_VIDEO_INPUT_GROUP_INFO
  17613. {
  17614. DWORD dwSize; // 结构体大小
  17615. BYTE byReserved1[4]; // 保留字节,用于字节对齐
  17616. int nMaxGroupCount; // 组信息设置数组大小, 用户填写
  17617. int nRetGroupCount; // 返回的组信息数量
  17618. NET_VIDEO_INPUT_GROUP_INFO* pGroupInfo; // 输入组对象,用户自己申请内存
  17619. }CFG_VIDEO_INPUT_GROUP_INFO;
  17620. ///@brief 门超时未关配置
  17621. typedef struct tagCFG_DOOR_NOT_CLOSE_INFO
  17622. {
  17623. BOOL bEnable; // 使能开关
  17624. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17625. }CFG_DOOR_NOT_CLOSE_INFO;
  17626. ///@brief 闯入报警配置
  17627. typedef struct tagCFG_BREAK_IN_INFO
  17628. {
  17629. BOOL bEnable; // 使能开关
  17630. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17631. }CFG_BREAK_IN_INFO;
  17632. ///@brief 反潜回报警配置
  17633. typedef struct tagCFG_ANTI_PASSBACK_INFO
  17634. {
  17635. BOOL bEnable; // 使能开关
  17636. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17637. }CFG_ANTI_PASSBACK_INFO;
  17638. ///@brief 胁迫报警配置
  17639. typedef struct tagCFG_DURESS_INFO
  17640. {
  17641. BOOL bEnable; // 使能开关
  17642. int nDelayLinkTime; // 延时联动时间,单位秒,范围1-300秒
  17643. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17644. }CFG_DURESS_INFO;
  17645. ///@brief 非法超次报警报警配置
  17646. typedef struct tagCFG_DOOR_MALICIOUS_ACCESSCONTROL_INFO
  17647. {
  17648. BOOL bEnable; // 使能开关
  17649. int nLimitedTimes; // 限制次数,范围2-30
  17650. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17651. }CFG_DOOR_MALICIOUS_ACCESSCONTROL_INFO;
  17652. ///@brief 标准黑体源异常报警配置
  17653. typedef struct tagCFG_REGULATOR_DETECT_INFO
  17654. {
  17655. BOOL bEnable; // 使能开关
  17656. int nSensitivity; // 灵敏度, 1-100
  17657. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  17658. }CFG_REGULATOR_DETECT_INFO;
  17659. ///@brief 红外功能模式
  17660. typedef enum tagEM_INFRARED_FUNC_MODE
  17661. {
  17662. EM_INFRARED_FUNC_MODE_UNKNWON, // 未知
  17663. EM_INFRARED_FUNC_MODE_ON, // 开启
  17664. EM_INFRARED_FUNC_MODE_OFF, // 关闭
  17665. EM_INFRARED_FUNC_MODE_AUTO, // 自动
  17666. } EM_INFRARED_FUNC_MODE;
  17667. ///@brief 红外亮度
  17668. typedef enum tagEM_INFRARED_LIGHT_LEVEL
  17669. {
  17670. EM_INFRARED_LIGHT_LEVEL_UNKNOWN, // 未知
  17671. EM_INFRARED_LIGHT_LEVEL_HIGH, // 高
  17672. EM_INFRARED_LIGHT_LEVEL_MEDIUM, // 中
  17673. EM_INFRARED_LIGHT_LEVEL_LOW, // 低
  17674. } EM_INFRARED_LIGHT_LEVEL;
  17675. ///@brief 红外功能配置, 对应配置项 CFG_CMD_INFRARED_CONFIG
  17676. typedef struct tagCFG_INFRARED_INFO
  17677. {
  17678. EM_INFRARED_FUNC_MODE emInfraredMode; // 红外功能模式
  17679. EM_INFRARED_LIGHT_LEVEL emLightLevel; // 红外亮度, emInfraredMode 为 EM_INFRARED_FUNC_MODE_ON 时有效
  17680. char szReserved[1024]; // 保留字节
  17681. } CFG_INFRARED_INFO;
  17682. /************************************************************************
  17683. ** 接口定义
  17684. ***********************************************************************/
  17685. ///@brief 报警事件类型根据dhnetsdk.h解析出来的报警类型(pAlarmInfo, pBuffer内存由SDK内部申请释放)
  17686. typedef int (CALLBACK *fALARMEvent)(DWORD dwAlarmType, void* pAlarmInfo, DWORD dwStructSize, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  17687. ///@brief 回调方式进行数据解析,dwDataType表示数据解析得到类型(pDataInfo, pBuffer内存由SDK内部申请释放)
  17688. typedef int (CALLBACK *fAnalyzerData)(DWORD dwDataType, void* pDataInfo, DWORD dwStructSize, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  17689. ///@brief 解析查询到的配置信息(szInBuffer,lpOutBuffer内存由用户申请释放)
  17690. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_ParseData(char* szCommand, char* szInBuffer, LPVOID lpOutBuffer, DWORD dwOutBufferSize, void* pReserved);
  17691. ///@brief 组成要设置的配置信息(lpInBuffer,szOutBuffer内存由用户申请释放)
  17692. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_PacketData(char* szCommand, LPVOID lpInBuffer, DWORD dwInBufferSize, char* szOutBuffer, DWORD dwOutBufferSize);
  17693. ///@brief 录像报警事件解析(lpInBuffer内存由用户申请释放)
  17694. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_ParseAnalyzerEventData(LPVOID lpInBuffer, DWORD dwInBufferSize, fALARMEvent cbEvent, LDWORD dwUser);
  17695. ///@brief 回调方式数据解析(lpInBuffer内存由用户申请释放)
  17696. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_ParseDataByCallback(LPVOID lpInBuffer, DWORD dwInBufferSize, fAnalyzerData cbAnalyzer, LDWORD dwUser);
  17697. ///@brief 解析获取到的智能全局配置/智能模板配置/指定大类下的智能规则配置(szInBuffer内存由用户申请释放)
  17698. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_ParseVideoInAnalyse(char* szCommand, EM_SCENE_TYPE emSceneType, char *szInBuffer, DWORD dwInBufferSize, LPVOID lpOutParam, DWORD dwOutParamSize);
  17699. ///@brief 组成要设置的智能配置信息(lpInBuffer,szOutBuffer内存由用户申请释放)
  17700. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_PacketIntelliSchemeData(char* szCommand, LPVOID lpInBuffer, DWORD dwInBufferSize, char* szOutBuffer, DWORD dwOutBufferSize);
  17701. ///@brief 解析查询到的智能配置信息(szInBuffer,lpOutBuffer内存由用户申请释放)
  17702. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_ParseIntelliSchemeData(char* szCommand, char* szInBuffer, LPVOID lpOutBuffer, DWORD dwOutBufferSize, void* pReserved);
  17703. #ifdef __cplusplus
  17704. }
  17705. #endif
  17706. #endif // DHCONFIGSDK_H