dhconfigsdk.h 774 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888
  1. #ifndef DHCONFIGSDK_H
  2. #define DHCONFIGSDK_H
  3. #include "avglobal.h"
  4. #if (defined(WIN32) || defined(_WIN32) || defined(_WIN64))
  5. #include <windows.h>
  6. #ifdef CONFIGSDK_EXPORTS
  7. #define CLIENT_CFG_API __declspec(dllexport)
  8. #else
  9. #define CLIENT_CFG_API __declspec(dllimport)
  10. #endif
  11. #define CALLBACK __stdcall
  12. #define CALL_METHOD __stdcall //__cdecl
  13. #ifndef LLONG
  14. #if (defined(WIN32) || defined(_WIN32) || defined(_WIN64))
  15. #ifdef _WIN64
  16. #define LLONG __int64
  17. #else //WIN32
  18. #define LLONG LONG
  19. #endif
  20. #else //Linux
  21. #define LLONG long
  22. #endif
  23. #endif
  24. #ifndef LDWORD
  25. #if (defined(WIN32) || defined(_WIN32) || defined(_WIN64))
  26. #ifdef _WIN64
  27. #define LDWORD __int64
  28. #else //WIN32
  29. #define LDWORD DWORD
  30. #endif
  31. #else //Linux
  32. #define LDWORD long
  33. #endif
  34. #endif
  35. #else //Linux
  36. #ifndef INTERNAL_COMPILE
  37. #define CFG_RELEASE_HEADER
  38. #endif
  39. #ifndef CFG_RELEASE_HEADER
  40. #include "../Platform/platform.h"
  41. #endif
  42. #define CLIENT_CFG_API extern "C"
  43. #define CALL_METHOD
  44. #define CALLBACK
  45. #endif
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49. /************************************************************************
  50. ** 常量定义
  51. ***********************************************************************/
  52. #define MAX_CHANNEL_COUNT 16
  53. #define MAX_VIDEO_CHANNEL_NUM 256 // 最大通道数256
  54. #define MAX_CHANNELNAME_LEN 64 // 最大通道名称长度
  55. #define MAX_VIDEOSTREAM_NUM 4 // 最大码流个数
  56. #define MAX_VIDEO_COVER_NUM 16 // 最大遮挡区域个数
  57. #define WEEK_DAY_NUM 7 // 一周的天数
  58. #define MAX_REC_TSECT 6 // 录像时间段个数
  59. #define MAX_REC_TSECT_EX 10 // 录像时间段扩展个数
  60. #define MAX_WATERMARK_LEN 4096 // 数字水印数据最大长度
  61. #define MAX_MOTION_ROW 32 // 动态检测区域的行数
  62. #define MAX_MOTION_COL 32 // 动态检测区域的列数
  63. #define MAX_IMAGESIZE_NUM 256 // 最大支持的分辨率个数
  64. #define MAX_FPS_NUM 1024 // 最大支持的帧率个数
  65. #define MAX_QUALITY_NUM 32 // 最大支持的画质个数
  66. #define MAX_ADDRESS_LEN 256 // 最大的地址长度
  67. #define MAX_USERNAME_LEN 64 // 最大用户名长度
  68. #define MAX_PASSWORD_LEN 64 // 最大密码长度
  69. #define MAX_DIRECTORY_LEN 256 // 文件夹名字字符串长度
  70. #define MAX_NAS_TIME_SECTION 2 // 网络存储时间段个数
  71. #define MAX_NAME_LEN 128 // 通用名字字符串长度
  72. #define MAX_SCENE_TYPE_LIST_SIZE 8 // 场景列表中最多支持的场景个数
  73. #define MAX_DECPRO_LIST_SIZE 100 // 解码器协议列表个数上限
  74. #define MAX_SCENE_LIST_SIZE 32 // 视频分析设备支持的场景类型列表个数上限
  75. #define MAX_OBJECT_LIST_SIZE 16 // 视频分析设备支持的检测物体类型列表个数上限
  76. #define MAX_RULE_LIST_SIZE 128 // 视频分析设备支持的规则列表个数上限
  77. #define MAX_SUPPORTED_COMP_SIZE 4 // 最大支持的场景组合项
  78. #define MAX_SUPPORTED_COMP_DATA 8 // 每个组合项里最多支持的场景个数
  79. #define MAX_ANALYSE_MODULE_NUM 16 // 视频分析设备最大检测模块个数
  80. #define MAX_ANALYSE_RULE_NUM 32 // 视频分析设备最大规则个数
  81. #define MAX_POLYGON_NUM 20 // 视频分析设备区域顶点个数上限
  82. #define MAX_POLYLINE_NUM 20 // 视频分析设备折线顶点个数上限
  83. #define MAX_TEMPLATEREGION_NUM 32 // 视频分析设备模拟区域信息点对个数上限
  84. #define POINT_PAIR_NUM 2 // 视频分析设备模拟区域点对包含的点个数
  85. #define MAX_VEHICLE_SIZE_LIST 4 // 视频分析设备车辆大小个数上限
  86. #define MAX_VEHICLE_TYPE_LIST 4 // 视频分析设备车辆类型个数上限
  87. #define MAX_PLATE_TYPE_LIST 32 // 视频分析设备车牌类型个数上限
  88. #define MAX_LANE_NUM 8 // 视频分析设备每个通道对应车道数上限
  89. #define MAX_STAFF_NUM 20 // 视频分析设备每个通道对应的标尺数上限
  90. #define MAX_CALIBRATEAREA_NUM 20 // 视频分析设备标定区域的上限
  91. #define MAX_EXCLUDEREGION_NUM 10 // 智能分析检测区域中需要排除的区域个数上限
  92. #define MAX_CALIBRATEBOX_NUM 10 // 智能分析校准框个数上限
  93. #define MAX_SPECIALDETECT_NUM 10 // 智能分析特殊检测区域上限
  94. #define MAX_HUMANFACE_LIST_SIZE 8 // 视频分析设备支持的人脸检测类型列表个数上限
  95. #define MAX_FEATURE_LIST_SIZE 32 // 视频分析设备支持的人脸属性列表个数上限
  96. #define MAX_SEVER_NUM 16 // 服务类型上限
  97. #define MAX_SERVER_NAME_LEN 16 // 服务名称字符串大小
  98. #define MAX_POWER_NUM 8 // 电源个数上限
  99. #define MAX_FUN_NUM 8 // 风扇个数上限
  100. #define MAX_CPU_NUM 8 // cpu个数上限
  101. #define MAX_HARDDISK_NUM 32 // 硬盘上限
  102. #define MAX_TANK_NUM 16 // 最大存储柜上限
  103. #define MAX_CHAN_NUM 256 // 最大通道数上限
  104. #define MAX_RAID_NUM 16 // 最大磁盘阵列上限
  105. #define MAX_DEV_NUM 16 // 最大设备上限
  106. #define MAX_STORAGEPOOL_NUM 16 // 最大存储池上限
  107. #define MAX_STRORAGEPOS_NUM 16 // 最大存储位置上限
  108. #define MAX_VIDEODEV_NUM 256 // 前端设备上限
  109. #define MAX_REMOTEDEVICENAME_LEN 32 // 最大远程设备名字长度
  110. #define MAX_REMOTE_DEV_NUM 256 // 最大远程设备数量
  111. #define MAX_PLATEHINT_NUM 8 // 车牌字符暗示个数上限
  112. #define MAX_LIGHT_NUM 8 // 交通灯个数上限
  113. #define MAX_LIGHTGROUP_NUM 8 // 交通灯组个数上限
  114. #define MAX_LIGHT_TYPE 8 // 交通灯类型上限
  115. #define MAX_LIGHT_DIRECTION 8 // 交通灯指示方向数上限
  116. #define MAX_TRIGGERMODE_NUM 32 // 交通路口规则触发模式上限
  117. #define MAX_VIOLATIONCODE 16 // 智能交通违章代码长度上限
  118. #define MAX_DETECTOR 6 // 智能交通车检器配置上限
  119. #define MAX_COILCONFIG 3 // 智能交通车检器线圈配置上限
  120. #define MAX_DEVICE_ADDRESS 256 // TrafficSnapshot智能交通设备地址
  121. #define MAX_DEPARTMENT 256 // Department智能交通设备所属单位
  122. #define MAX_ROADWAYNO 128 // 道路编号 由32个数字和字母构成
  123. #define MAX_VIOLATIONCODE_DESCRIPT 64 // 智能交通违章代码长度上限
  124. #define MAX_DRIVINGDIRECTION 256 // 行驶方向字符串长度
  125. #define MAX_ACTIVEUSER_NUM 64 // 最大活动用户信息数
  126. #define MAX_POLYGON_NUM10 10 // 视频分析设备区域顶点个数上限
  127. #define MAX_VIDEODIAGNOSIS_DETECT_TYPE 11 // 视频诊断类型个数上限
  128. #define MAX_ACTION_LIST_SIZE 16 // 视频分析设备支持的规则的动作类型列表个数上限
  129. #define MAX_STORAGEGROUPNAME_LEN 32 // 存储组名称缓冲区上限
  130. #define MAX_CALIBRATEAREA_TYPE_NUM 4 // 标定区域类型上限
  131. #define MAX_PROTOCOL_NAME_LEN 32 // 协议名称长度
  132. #define MAX_COMM_NUM 16 // 最大串口数量
  133. #define MAX_DNS_SERVER_NUM 2 // DNS最大数量
  134. #define MAX_NETWORK_INTERFACE_NUM 32 // 最大网卡数量
  135. #define MAX_NAS_NUM 16 // 网络存储服务器最大数量
  136. #define MAX_STORAGEPOINT_NUM 32 // 录像存储点映射最大数量
  137. #define MAX_TRACKSCENE_NUM 10 // 智能跟踪场景最大数量
  138. #define MAX_STATUS_NUM 16 // 交通设备状态最大个数
  139. #define MAX_SERVICE_NUM 128 // 服务器支持的最大服务数
  140. #define MAX_DBKEY_NUM 64 // 数据库关键字最大值
  141. #define MAX_SUMMARY_LEN 1024 // 叠加到JPEG图片的摘要信息最大长度
  142. #define MAX_MOTION_WINDOW 10 // 动检支持的视频窗口值
  143. #define MAX_OSD_SUMMARY_LEN 256 // osd叠加内容最大长度
  144. #define MAX_OSD_TITLE_LEN 128 // osd叠加标题最大长度
  145. #define MAX_CUSTOMCASE_NUM 16 // 自定义司法案件最大个数
  146. #define MAX_GLOBAL_MSTERSLAVE_NUM 64 //主从式跟踪器最大全局配置数
  147. #define MAX_OBJECT_ATTRIBUTES_SIZE 16 // 视频分析设备支持的检测物体属性类型列表个数上限
  148. #define MAX_MODEL_LEN 32 // 设备型号长度
  149. #define MAX_BURNING_DEV_NUM 32 // 最大刻录设备个数
  150. #define MAX_NET_TYPE_NUM 8 // 最大网络类型个数
  151. #define MAX_NET_TYPE_LEN 64 // 网络类型字符串长度
  152. #define MAX_DEVICE_NAME_LEN 64 // 机器名称
  153. #define MAX_DEV_ID_LEN_EX 128 // 设备ID最大长度
  154. #define MONTH_OF_YEAR 12 // 一年中月份数
  155. #define MAX_SERVER_NUM 10 // 服务器最大个数
  156. #define MAX_REGISTER_NUM 10 // 主动注册配置最大个数
  157. #define MAX_VIDEO_IN_ZOOM 32 // 单通道最大变速配置个数
  158. #define MAX_ANALYSE_SCENE_NUM 32 // 视频分析全局配置场景最大数量
  159. #define MAX_CONFIG_NUM 32 // 每个云台的最大配置数
  160. #define MAX_PTZ_PRESET_NAME_LEN 64 // 云台预置点名称长度
  161. #define CFG_COMMON_STRING_8 8 // 通用字符串长度8
  162. #define CFG_COMMON_STRING_16 16 // 通用字符串长度16
  163. #define CFG_COMMON_STRING_32 32 // 通用字符串长度32
  164. #define CFG_COMMON_STRING_64 64 // 通用字符串长度64
  165. #define CFG_COMMON_STRING_128 128 // 通用字符串长度128
  166. #define CFG_COMMON_STRING_256 256 // 通用字符串长度256
  167. #define CFG_COMMON_STRING_512 512 // 通用字符串长度512
  168. #define AV_CFG_Channel_Name_Len 64 // 通道名称长度
  169. #define CFG_MAX_CHANNEL_NAME_LEN 256 // 通道名称最大长度
  170. #define AV_CFG_Weekday_Num 7 // 一周天数
  171. #define AV_CFG_Max_TimeSection 6 // 时间段数量
  172. #define AV_CFG_Device_ID_Len 64 // 设备ID长度
  173. #define AV_CFG_IP_Address_Len 32 // ip长度
  174. #define AV_CFG_IP_Address_Len_EX 40 // 扩展IP地址字符串长度, 支持IPV6
  175. #define AV_CFG_User_Name_Len 64 // 用户名长度
  176. #define AV_CFG_Password_Len 64 // 密码长度
  177. #define AV_CFG_Protocol_Len 32 // 协议名长度
  178. #define AV_CFG_Serial_Len 32 // 序列号长度
  179. #define AV_CFG_Device_Class_Len 16 // 设备类型长度
  180. #define AV_CFG_Device_Type_Len 32 // 设备具体型号长度
  181. #define AV_CFG_Device_Name_Len 128 // 机器名称
  182. #define AV_CFG_Address_Len 128 // 机器部署地点
  183. #define AV_CFG_Max_Path 260 // 路径长度
  184. #define AV_CFG_Max_Split_Window 128 // 最大分割窗口数量
  185. #define AV_CFG_Monitor_Favorite_In_Channel 64 // 每个输出通道的最大轮训画面收藏数量
  186. #define AV_CFG_Monitor_Favorite_Name_Len 64 // 画面收藏名称长度
  187. #define AV_CFG_Max_Monitor_Favorite_Window 64 // 画面收藏的最大窗口数量
  188. #define AV_CFG_Max_Split_Group 64 // 分割最大分组数量
  189. #define AV_CFG_Max_Split_Mode 32 // 分割模式最大数量
  190. #define AV_CFG_Raid_Name_Len 64 // RAID名称长度
  191. #define AV_CFG_Max_Rail_Member 32 // 单个RAID包含磁盘数
  192. #define AV_CFG_Max_Encode_Main_Format 3 // 主码流编码类型数
  193. #define AV_CFG_Max_Encode_Extra_Format 3 // 辅码流编码类型数
  194. #define AV_CFG_Max_Encode_Snap_Format 3 // 抓图编码类型数
  195. #define AV_CFG_Max_VideoColor 24 // 每个通道最大视频输入颜色配置数量
  196. #define AV_CFG_Custom_Title_Len 1024 // 自定义标题名称长度(扩充到1024)
  197. #define AV_CFG_Custom_TitleType_Len 32 // 自定义标题类型长度
  198. #define AV_CFG_Max_Video_Widget_Cover 16 // 编码区域覆盖最大数量
  199. #define AV_CFG_Max_Video_Widget_Custom_Title 8 // 编码物件自定义标题最大数量
  200. #define AV_CFG_Max_Video_Widget_Sensor_Info 2 // 编码物件叠加传感器信息的最大数目
  201. #define AV_CFG_Max_Description_Num 4 // 叠加区域描述信息的最大个数
  202. #define AV_CFG_Group_Name_Len 64 // 分组名称长度
  203. #define AV_CFG_DeviceNo_Len 32 // 设备编号长度
  204. #define AV_CFG_Group_Memo_Len 128 // 分组说明长度
  205. #define AV_CFG_Max_Channel_Num 1024 // 最大通道数量
  206. #define AV_CFG_Time_Format_Len 32 // 时间格式长度
  207. #define AV_CFG_Max_White_List 1024 // 白名单数量
  208. #define AV_CFG_Max_Black_List 1024 // 黑名单数量
  209. #define AV_CFG_Filter_IP_Len 96 // 过滤IP最大长度
  210. #define AV_CFG_Max_ChannelRule 32 // 通道存储规则最大长度, 仅通道部分
  211. #define AV_CFG_Max_DBKey_Num 64 // 事件关键字数量
  212. #define AV_CFG_DBKey_Len 32 // 事件关键字长度
  213. #define AV_CFG_Max_Summary_Len 1024 // 摘要长度
  214. #define AV_CFG_Max_Event_Title_Num 32 // 事件标题最大数量
  215. #define AV_CFG_Max_Tour_Link_Num 128 // 联动轮巡最大数量
  216. #define AV_CFG_PIP_BASE 1000 // 画中画分割模式基础值
  217. #define DES_KEY_LEN 8 // DES密钥的字节长度
  218. #define DES_KEY_NUM 3 // 3DES密钥的个数
  219. #define AES_KEY_LEN 32 // AES密钥的字节长度
  220. #define MAX_TIME_SCHEDULE_NUM 8 // 时间表元素个数
  221. #define MAX_SCENE_SUBTYPE_LEN 64 // 场景子类型字符串长度
  222. #define MAX_SCENE_SUBTYPE_NUM 32 // 场景子类型最大个数
  223. #define MAX_VIDEO_IN_FOCUS 32 // 单通道最大聚焦配置个数
  224. #define MAX_TIMESPEEDLIMIT_NUM 16 // 最大时间段限速配置个数
  225. #define MAX_VOICEALERT_NUM 64 // 最大语音提示配置个数
  226. #define CFG_MAX_LOWER_MATRIX_NUM 16 // 最大下位矩阵数量
  227. #define CFG_MAX_LOWER_MATRIX_INPUT 64 // 最大下位矩阵输入通道数
  228. #define CFG_MAX_LOWER_MATRIX_OUTPUT 32 // 最大下位矩阵输出通道数
  229. #define CFG_MAX_AUDIO_MATRIX_INPUT 32 // 音频矩阵最大输入通道数
  230. #define CFG_MAX_AUDIO_OUTPUT_CHN 32 // 音频矩阵最大输出通道数
  231. #define CFG_MAX_AUDIO_MATRIX_NUM 4 // 最大音频矩阵数量
  232. #define CFG_MAX_AUDIO_MATRIX_OUTPUT 8 // 每个音频矩阵支持的最大输出通道数
  233. #define CFG_MAX_VIDEO_IN_DEFOG 3 // 每个通道最多透雾配置个数
  234. #define CFG_MAX_INFRARED_BOARD_TEMPLATE_NUM 16 // 最大红外面板模板数量
  235. #define CFG_MAX_INFRARED_KEY_NUM 128 // 最大红外面板按键数量
  236. #define CFG_MAX_INFRARED_BOARD_NUM 16 // 最大红外面板数量
  237. #define CFG_MAX_VTO_NUM 128 // 最大门口机数量
  238. #define MAX_PHONE_NUMBER_LEN 32 // 电话号码最大长度
  239. #define MAX_AUDIO_OUTPUT_NUM 16 // 音频输出最大通道数
  240. #define MAX_AUDIO_INPUT_NUM 32 // 音频输入最大通道数
  241. #define MAX_LIGHT_GLOBAL_NUM 16 // 乐橙状态灯最大数目
  242. #define MAX_AUDIO_MIX_NUM 16 // 混合音频最大通道数
  243. #define MAX_PSTN_SERVER_NUM 8 // 最大报警电话服务器数
  244. #define MAX_ALARM_CHANNEL_NUM 32 // 最大报警通道数
  245. #define MAX_ALARM_DEFENCE_TYPE_NUM 8 // 最大报警防区类型数
  246. #define MAX_ALARM_SENSE_METHOD_NUM 16 // 最大报警感应器方式数
  247. #define MAX_EXALARMBOX_PROTOCOL_NUM 8 // 最大支持扩展报警盒协议数
  248. #define MAX_EXALARM_CHANNEL_NUM 256 // 最大报警通道数
  249. #define MAX_EXALARMBOX_NUM 8 // 最大报警盒子数
  250. #define MAX_MAILTITLE_LEN 256 // 最大邮件标题长度
  251. #define MAX_DEVICE_ID_LEN 48 // 最大设备编码长度
  252. #define MAX_DEVICE_MARK_LEN 64 // 最大设备描述长度
  253. #define MAX_BRAND_NAME_LEN 64 // 最大设备品牌长度
  254. #define MAX_ADDRESS_NUM 16 // 最大串口地址个数
  255. #define MAX_AIRCONDITION_NUM 16 // 最大空调设备个数
  256. #define CFG_MAX_COLLECTION_NUM 64 // 最大预案数
  257. #define MAX_FLOOR_NUM 128 // 最大楼层数
  258. #define MAX_SEAT_NUM 8 // 最大座位数
  259. #define AV_CFG_Local_Device_ID "Local" // 本地设备ID
  260. #define AV_CFG_Remote_Devce_ID "Remote" // 远程设备ID
  261. #define MAX_LANE_CONFIG_NUMBER 32 // 车道最大个数
  262. #define MAX_PRIORITY_NUMBER 256 // 违章优先级包含违章最大个数
  263. #define MAX_CATEGORY_TYPE_NUMBER 128 // 子类别类型数
  264. #define MAX_TRIGGER_MODE_NUMBER 64 // 触发模式个数
  265. #define MAX_ABNORMAL_DETECT_TYPE 32 // 异常检测类型数
  266. #define MAX_ABNORMAL_THRESHOLD_LEN 32 // 异常检测阙值最大个数
  267. #define TS_POINT_NUM 3 // 触摸屏校准点数
  268. #define CFG_FILTER_IP_LEN 96 // 过滤IP最大长度
  269. #define CFG_MAX_TRUST_LIST 1024 // 白名单数量
  270. #define CFG_MAX_BANNED_LIST 1024 // 黑名单数量
  271. #define VIDEOIN_TSEC_NUM 3 // VideoIn 系列协议时间段个数,目前有普通、白天、黑夜三种
  272. #define MAX_RECT_COUNT 4 // 单个通道支持的马赛克区域最大个数
  273. #define CFG_MAX_SSID_LEN 36 // SSID最大长度
  274. #define MAX_OUTAUDIO_CHANNEL_COUNT 16 // 最大音频输出通道数
  275. #define MAX_INAUDIO_CHANNEL_COUNT 32 // 最大音频输入通道数
  276. #define MAX_FREQUENCY_COUNT 16 // 最大频率段个数
  277. #define MAX_NTP_SERVER 4 // 最大备用NTP服务器地址
  278. #define MAX_ACCESS_TEXTDISPLAY_LEN 32 // 最大门禁控制显示文字长度
  279. #define CFG_MAX_NVR_ENCRYPT_COUNT 4 // 每个通道最多加密配置个数
  280. #define MAX_IP_ADDR_LEN 16 // IP地址字符串长度
  281. #define MAX_PRIVACY_MASKING_COUNT 64 // 单个通道隐私遮挡配置个数
  282. #define MAX_ALL_SNAP_CAR_COUNT 32 // 所有车开闸种类个数
  283. #define CFG_MAX_PLATE_NUMBER_LEN 32 // 最大车牌号码长度
  284. #define CFG_MAX_SN_LEN 32 // 最大设备序列号长度
  285. #define CFG_MAX_ACCESS_CONTROL_ADDRESS_LEN 64 // 最大的地址长度
  286. #define MAX_CFG_APN_NAME 32 // Wireless中接入网络名长度
  287. #define MAX_CFG_DAIL_NUMBER 32 // Wireless中拨号号码长度
  288. #define MAX_GROUP_ID_LEN 64 // 最大布控组ID长度
  289. #define MAX_COLOR_NAME_LEN 32 // 最大颜色名长度
  290. #define MAX_COLOR_HEX_LEN 8 // 最大HEX颜色长度
  291. #define MAX_LINK_GROUP_NUM 20 // 联动的布控组最大数量
  292. #define MAX_CROWD_DISTRI_MAP_REGION_POINT_NUM 20 // 区域检测坐标个数
  293. #define MAX_PEOPLESTATREGIONS_NUM 8 // 人数统计区域个数
  294. #define MAX_AUDIOCHANNELS_ARRAY_NUM 8 // 视频通道的伴音通道号列表数组的最大个数
  295. #define MAX_NUMBER_STAT_MAULT_NUM 32 // 最大客流量统计场景PD个数
  296. #define CFG_MAX_DAY_NIGHT_MODE 3 // 每个视频输入通道对应多个配置(分别表示白天、黑夜、普通)
  297. /************************************************************************
  298. ** 配置命令 对应CLIENT_GetNewDevConfig和CLIENT_SetNewDevConfig接口
  299. ***********************************************************************/
  300. #define CFG_CMD_ENCODE "Encode" // 图像通道属性配置(对应 CFG_ENCODE_INFO)
  301. #define CFG_CMD_RECORD "Record" // 定时录像配置(对应 CFG_RECORD_INFO)
  302. #define CFG_CMD_ALARMINPUT "Alarm" // 外部输入报警配置(对应 CFG_ALARMIN_INFO)
  303. #define CFG_CMD_NETALARMINPUT "NetAlarm" // 网络报警配置(对应 CFG_NETALARMIN_INFO)
  304. #define CFG_CMD_MOTIONDETECT "MotionDetect" // 动态检测报警配置(对应 CFG_MOTION_INFO)
  305. #define CFG_CMD_VIDEOLOST "LossDetect" // 视频丢失报警配置(对应 CFG_VIDEOLOST_INFO)
  306. #define CFG_CMD_VIDEOBLIND "BlindDetect" // 视频遮挡报警配置(对应 CFG_SHELTER_INFO)
  307. #define CFG_CMD_STORAGENOEXIST "StorageNotExist" // 无存储设备报警配置(对应 CFG_STORAGENOEXIST_INFO)
  308. #define CFG_CMD_STORAGEFAILURE "StorageFailure" // 存储设备访问出错报警配置(对应 CFG_STORAGEFAILURE_INFO)
  309. #define CFG_CMD_STORAGELOWSAPCE "StorageLowSpace" // 存储设备空间不足报警配置(对应 CFG_STORAGELOWSAPCE_INFO)
  310. #define CFG_CMD_NETABORT "NetAbort" // 网络断开报警配置(对应 CFG_NETABORT_INFO)
  311. #define CFG_CMD_IPCONFLICT "IPConflict" // IP冲突报警配置(对应 CFG_IPCONFLICT_INFO)
  312. #define CFG_CMD_SNAPCAPINFO "SnapInfo" // 抓图能力查询(对应 CFG_SNAPCAPINFO_INFO)
  313. #define CFG_CMD_NAS "NAS" // 网络存储服务器配置(对应 CFG_NAS_INFO)
  314. #define CFG_CMD_PTZ "Ptz" // 云台配置(对应 CFG_PTZ_INFO)
  315. #define CFG_CMD_PTZ_AUTO_MOVEMENT "PtzAutoMovement" // 云台定时动作配置(对应 CFG_PTZ_AUTOMOVE_INFO)
  316. #define CFG_CMD_WATERMARK "WaterMark" // 视频水印配置(对应 CFG_WATERMARK_INFO)
  317. #define CFG_CMD_ANALYSEGLOBAL "VideoAnalyseGlobal" // 视频分析全局配置(对应 CFG_ANALYSEGLOBAL_INFO)
  318. #define CFG_CMD_ANALYSEMODULE "VideoAnalyseModule" // 物体的检测模块配置(对应 CFG_ANALYSEMODULES_INFO)
  319. #define CFG_CMD_ANALYSERULE "VideoAnalyseRule" // 视频分析规则配置(对应 CFG_ANALYSERULES_INFO)
  320. #define CFG_CMD_ANALYSESOURCE "VideoAnalyseSource" // 视频分析资源配置(对应 CFG_ANALYSESOURCE_INFO)
  321. #define CFG_CMD_RAINBRUSH "RainBrush" // 雨刷配置(对应 CFG_RAINBRUSH_INFO)
  322. #define CFG_CMD_INTELLECTIVETRAFFIC "TrafficSnapshot" // 智能交通抓拍(CFG_TRAFFICSNAPSHOT_INFO 只为兼容老协议;请使用CFG_CMD_TRAFFICSNAPSHOT_MULTI)
  323. #define CFG_CMD_TRAFFICGLOBAL "TrafficGlobal" // 智能交通全局配置(CFG_TRAFFICGLOBAL_INFO)
  324. #define CFG_CMD_DEV_GENERRAL "General" // 普通配置 (对应 CFG_DEV_DISPOSITION_INFO)
  325. #define CFG_CMD_ATMMOTION "FetchMoneyOverTime" // ATM取款超时配置(对应 CFG_ATMMOTION_INFO)
  326. #define CFG_CMD_DEVICESTATUS "DeviceStatus" // 设备状态信息(对应 CFG_DEVICESTATUS_INFO)
  327. #define CFG_CMD_HARDDISKTANK "HardDiskTank" // 扩展柜信息(对应 CFG_HARDISKTANKGROUP_INFO)
  328. #define CFG_CMD_RAIDGROUP "RaidGroup" // Raid组信息(对应 CFG_RAIDGROUP_INFO)
  329. #define CFG_CMD_STORAGEPOOLGROUP "StoragePoolGroup" // 存储池组信息(对应 CFG_STORAGEPOOLGROUP_INFO)
  330. #define CFG_CMD_STORAGEPOSITIONGROUP "StoragePositionGroup" // 文件系统组信息(对应 CFG_STORAGEPOSITIONGROUP_INFO)
  331. #define CFG_CMD_VIDEOINDEVGROUP "VideoInDevGroup" // 前端设备组信息(对应 CFG_VIDEOINDEVGROUP_INFO)
  332. #define CFG_CMD_DEVRECORDGROUP "DevRecordGroup" // 通道录像组状态(对应 CFG_DEVRECORDGROUP_INFO)
  333. #define CFG_CMD_IPSSERVER "IpsServer" // 服务状态(对应 CFG_IPSERVER_STATUS)
  334. #define CFG_CMD_SNAPSOURCE "SnapSource" // 抓图源配置(对应 CFG_SNAPSOURCE_INFO)
  335. #define CFG_CMD_DHRADER "DahuaRadar" // 大华雷达配置(透传 json 串)
  336. #define CFG_CMD_DHRADER_PP "DahuaRadar" // 大华雷达配置(解析为结构体,对应 CFG_DAHUA_RADAR)
  337. #define CFG_CMD_TRANSRADER "TransRadar" // 川苏雷达配置
  338. #define CFG_CMD_LANDUNRADER "LanDunRadar" // 蓝盾雷达配置
  339. #define CFG_CMD_LANDUNCOILS "LanDunCoils" // 蓝盾线圈配置
  340. #define CFG_CMD_MATRIX_SPOT "SpotMatrix" // Spot视屏矩阵(对应 CFG_VIDEO_MATRIX)
  341. #define CFG_CMD_HDVR_DSP "DspEncodeCap" // HDVR传每个数字通道的dsp信息 数字通道可以连IPC或DVR 也就是IPC或DVR的能力(对应CFG_DSPENCODECAP_INFO)
  342. #define CFG_CMD_HDVR_ATTR_CFG "SystemAttr" // HDVR传每个数字通道的所连设备的信息
  343. #define CFG_CMD_CHANNEL_HOLIDAY "HolidaySchedule" // 假期录像计划(对应结构体 CFG_HOLIDAY_SCHEDULE数组)
  344. #define CFG_CMD_HEALTH_MAIL "HealthMail" // 健康邮件
  345. #define CFG_CMD_CAMERAMOVE "IntelliMoveDetect" // 摄像机移位侦测联动
  346. #define CFG_CMD_SPLITTOUR "SplitTour" // 视频分割轮巡配置(对应 CFG_VIDEO_MATRIX)
  347. #define CFG_CMD_VIDEOENCODEROI "VideoEncodeROI" // 视频编码ROI(Region of Intrest)配置
  348. #define CFG_CMD_VIDEO_INMETERING "VideoInMetering" // 测光配置(对应 CFG_VIDEO_INMETERING_INFO)
  349. #define CFG_CMD_TRAFFIC_FLOWSTAT "TrafficFlowStat" // 交通流量统计配置(对应 CFG_TRAFFIC_FLOWSTAT_INFO)
  350. #define CFG_CMD_HDMIMATRIX "HDMIMatrix" // HDMI视频矩阵配置
  351. #define CFG_CMD_VIDEOINOPTIONS "VideoInOptions" // 视频输入前端选项(对应 CFG_VIDEO_IN_OPTIONS)
  352. #define CFG_CMD_RTSP "RTSP" // RTSP的配置( 对应 CFG_RTSP_INFO_IN和CFG_RTSP_INFO_OUT )
  353. #define CFG_CMD_TRAFFICSNAPSHOT "TrafficSnapshotNew" // 智能交通抓拍(CFG_TRAFFICSNAPSHOT_INFO 废除,请使用 CFG_CMD_TRAFFICSNAPSHOT_MULTI_EX)
  354. #define CFG_CMD_TRAFFICSNAPSHOT_MULTI "TrafficSnapshotNew" // 智能交通抓拍(CFG_TRAFFICSNAPSHOT_NEW_INFO 废除,请使用 CFG_CMD_TRAFFICSNAPSHOT_MULTI_EX)
  355. #define CFG_CMD_TRAFFICSNAPSHOT_MULTI_EX "TrafficSnapshotNew" // 智能交通抓拍(CFG_TRAFFICSNAPSHOT_NEW_EX_INFO)
  356. #define CFG_CMD_MULTICAST "Multicast" // 组播的相关配置(对应 CFG_MULTICASTS_INFO_IN和CFG_MULTICASTS_INFO_OUT)
  357. #define CFG_CMD_VIDEODIAGNOSIS_PROFILE "VideoDiagnosisProfile" // 视频诊断参数表(CFG_VIDEODIAGNOSIS_PROFILE)
  358. #define CFG_CMD_VIDEODIAGNOSIS_TASK "VideoDiagnosisTask" // 视频诊断任务表(CFG_VIDEODIAGNOSIS_TASK)
  359. #define CFG_CMD_VIDEODIAGNOSIS_PROJECT "VideoDiagnosisProject" // 视频诊断计划表(CFG_VIDEODIAGNOSIS_PROJECT)
  360. #define CFG_CMD_VIDEODIAGNOSIS_REALPROJECT "VideoDiagnosisRealProject" // 视频诊断实时计划表(CFG_VIDEODIAGNOSIS_REALPROJECT)
  361. #define CFG_CMD_VIDEODIAGNOSIS_GLOBAL "VideoDiagnosisGlobal" // 视频诊断全局表(CFG_VIDEODIAGNOSIS_GLOBAL)
  362. #define CFG_CMD_VIDEODIAGNOSIS_TASK_ONE "VideoDiagnosisTask.x" // 视频诊断任务表(CFG_VIDEODIAGNOSIS_TASK)
  363. #define CFG_CMD_TRAFFIC_WORKSTATE "WorkState" // 设备工作状态相关配置(对应 CFG_TRAFFIC_WORKSTATE_INFO)
  364. #define CFG_CMD_STORAGEDEVGROUP "StorageDevGroup" // 磁盘存储组配置(对应 CFG_STORAGEGROUP_INFO)
  365. #define CFG_CMD_RECORDTOGROUP "RecordToGroup" // 录像存放的存储组配置(对应 CFG_RECORDTOGROUP_INFO)
  366. #define CFG_CMD_INTELLITRACKSCENE "IntelliTrackScene" // 智能跟踪场景配置(CFG_INTELLITRACKSCENE_INFO)
  367. #define CFG_CMD_IVSFRAM_RULE "IVSFramRule" // 智能帧规则配置(对应 CFG_ANALYSERULES_INFO)
  368. #define CFG_CMD_RECORD_STORAGEPOINT "RecordStoragePoint" // 录像存储点映射配置(对应 CFG_RECORDTOSTORAGEPOINT_INFO)
  369. #define CFG_CMD_RECORD_STORAGEPOINT_EX "RecordStoragePoint" // 录像存储点映射配置扩展 (对应 CFG_RECORDTOSTORAGEPOINT_EX_INFO)
  370. #define CFG_CMD_MD_SERVER "MetaDataServer" // 元数据服务器配置(对应 CFG_METADATA_SERVER结构体)
  371. #define CFG_CMD_CHANNELTITLE "ChannelTitle" // 通道名称(对应 AV_CFG_ChannelName)
  372. #define CFG_CMD_RECORDMODE "RecordMode" // 录像模式(对应 AV_CFG_RecordMode)
  373. #define CFG_CMD_VIDEOOUT "VideoOut" // 视频输出属性(对应 AV_CFG_VideoOutAttr)
  374. #define CFG_CMD_REMOTEDEVICE "RemoteDevice" // 远程设备信息(对应 AV_CFG_RemoteDevice数组, 通道无关)
  375. #define CFG_CMD_REMOTECHANNEL "RemoteChannel" // 远程通道(对应 AV_CFG_RemoteChannel)
  376. #define CFG_CMD_MONITORTOUR "MonitorTour" // 画面轮训配置(对应 AV_CFG_MonitorTour)
  377. #define CFG_CMD_MONITORCOLLECTION "MonitorCollection" // 画面收藏配置(对应 AV_CFG_MonitorCollection)
  378. #define CFG_CMD_DISPLAYSOURCE "DisplaySource" // 画面分割显示源配置(对应 AV_CFG_ChannelDisplaySource)(废除,不建议使用)
  379. #define CFG_CMD_RAID "Raid" // 存储卷组配置(对应 AV_CFG_Raid数组, 通道无关)
  380. #define CFG_CMD_RECORDSOURCE "RecordSource" // 录像源配置(对应 AV_CFG_RecordSource)
  381. #define CFG_CMD_VIDEOCOLOR "VideoColor" // 视频输入颜色配置(对应 AV_CFG_ChannelVideoColor)
  382. #define CFG_CMD_VIDEOWIDGET "VideoWidget" // 视频编码物件配置(对应 AV_CFG_VideoWidget)
  383. #define CFG_CMD_STORAGEGROUP "StorageGroup" // 存储组信息(对应 AV_CFG_StorageGroup数组, 通道无关)
  384. #define CFG_CMD_LOCALS "Locales" // 区域配置(对应 AV_CFG_Locales)
  385. #define CFG_CMD_LANGUAGE "Language" // 语言选择(对应 AV_CFG_Language)
  386. #define CFG_CMD_ACCESSFILTER "AccessFilter" // 访问地址过滤(对应 AV_CFG_AccessFilter)
  387. #define CFG_CMD_AUTOMAINTAIN "AutoMaintain" // 自动维护(对应 AV_CFG_AutoMaintain)
  388. #define CFG_CMD_REMOTEEVENT "RemoteEvent" // 远程设备事件处理(对应 AV_CFG_RemoteEvent数组)
  389. #define CFG_CMD_MONITORWALL "MonitorWall" // 电视墙配置(对应 AV_CFG_MonitorWall数组, 通道无关)
  390. #define CFG_CMD_SPLICESCREEN "VideoOutputComposite" // 融合屏配置(对应 AV_CFG_SpliceScreen数组, 通道无关)
  391. #define CFG_CMD_TEMPERATUREALARM "TemperatureAlarm" // 温度报警配置(对应 AV_CFG_TemperatureAlarm, 通道无关)
  392. #define CFG_CMD_FANSPEEDALARM "FanSpeedAlarm" // 风扇转速报警配置(对应 AV_CFG_FanSpeedAlarm, 通道无关)
  393. #define CFG_CMD_RECORDBACKUP "RecordBackupRestore" // 录像回传配置(对应 AV_CFG_RecordBackup, 通道无关)
  394. #define CFG_CMD_RECORDDOWNLOADSPEED "RecordDownloadSpeed" // 录像下载速度配置(对应CFG_RecordDownloadSpeed)
  395. #define CFG_CMD_COMM "Comm" // 串口配置(对应 CFG_COMMGROUP_INFO)
  396. #define CFG_CMD_NETWORK "Network" // 网络配置(对应 CFG_NETWORK_INFO)
  397. #define CFG_CMD_NASEX "NAS" // 网络存储服务器配置, 多服务器(对应 CFG_NAS_INFO_EX)
  398. #define CFG_CMD_LDAP "LDAP" // LDAP配置
  399. #define CFG_CMD_ACTIVE_DIR "ActiveDirectory" // 活动目录配置
  400. #define CFG_CMD_FLASH "FlashLight" // 补光灯配置(对应 CFG_FLASH_LIGHT)
  401. #define CFG_CMD_AUDIO_ANALYSERULE "AudioAnalyseRule" // 音频分析规则配置(对应 CFG_ANALYSERULES_INFO)
  402. #define CFG_CMD_JUDICATURE "Judicature" // 司法刻录配置(对应 CFG_JUDICATURE_INFO)
  403. #define CFG_CMD_GOODS_WEIGHT "CQDTSet" // 车载货重配置(对应 CFG_GOOD_WEIGHT_INFO)
  404. #define CFG_CMD_VIDEOIN "VideoIn" // 输入通道配置(对应 CFG_VIDEO_IN_INFO)
  405. #define CFG_CMD_ENCODEPLAN "EncodePlan" // 刻录光盘编码计划(对应 CFG_ENCODE_PLAN_INFO)
  406. #define CFG_CMD_PICINPIC "PicInPic" // 司法审讯画中画(对应 CFG_PICINPIC_INFO)改为数组方式,兼容以前单个配置,根据长度区分
  407. #define CFG_CMD_BURNFULL "BurnFull" // 刻录满事件配置(对应 CFG_BURNFULL_INFO)
  408. #define CFG_CMD_MASTERSLAVE_GLOBAL "MasterSlaveTrackerGlobal" // 主从式全局配置(对应 CFG_MASTERSLAVE_GLOBAL_INFO)
  409. #define CFG_CMD_MASTERSLAVE_LINKAGE "MasterSlaveGlobal" // 枪球联动全局配置(对应 CFG_MASTERSLAVE_LINKAGE_INFO)
  410. #define CFG_CMD_MASTERSLAVE_GROUP "MasterSlaveGroup" // 枪球联动绑定关系配置(对应 CFG_MASTERSLAVE_GROUP_INFO)
  411. #define CFG_CMD_ANALYSEWHOLE "VideoAnalyseWhole" // 视频分析整体配置(对应 CFG_ANALYSEWHOLE_INFO)
  412. #define CFG_CMD_VIDEO_IN_BOUNDARY "VideoInBoundary" // 视频输入边界配置(对应 CFG_VIDEO_IN_BOUNDARY)
  413. #define CFG_CMD_MONITORWALL_COLLECTION "MonitorWallCollection" // 电视墙预案(对应 CFG_MONITORWALL_COLLECTION数组)
  414. #define CFG_CMD_ANALOGMATRIX "AnalogMatrix" // 模拟矩阵(对应 CFG_ANALOG_MATRIX_INFO)
  415. #define CFG_CMD_ANALOG_MATRIX_PROTOCOL "AnalogMatrixProtocol" // 模拟矩阵协议配置(对应 CFG_ANALOG_MATRIX_PROTOCOL数组)
  416. #define CFG_CMD_VIDEO_OUT_TITLE "VideoOutputTitle" // 视频输出标题(对应 CFG_VIDEO_OUT_TITLE)
  417. #define CFG_CMD_DISK_FLUX_ALARM "DiskFluxAlarm" // 硬盘数据流量报警配置(对应 CFG_DISK_FLUX_INFO)
  418. #define CFG_CMD_NET_FLUX_ALARM "NetFluxAlarm" // 网络数据流量报警配置(对应 CFG_NET_FLUX_INFO)
  419. #define CFG_CMD_DVRIP "DVRIP" // 网络协议配置(对应 CFG_DVRIP_INFO)
  420. #define CFG_CMD_PARKINGSPACE_SCREEN "ParkingSpaceScreen" // 和相机对接的区域屏配置(对应 CFG_PARKINGSPACE_SCREEN_INFO ,是数组,元素最大值是DH_PRODUCTION_DEFNITION.nMaxParkingSpaceScreen)
  421. #define CFG_CMD_PARKINGSPACE_STATUS "ParkingSpaceCellStatus" // 车位设置(专有车位和普通车位设置)(对应 CFG_PARKINGSPACE_STATUS_INFO ,是数组,元素最大值是DH_PRODUCTION_DEFNITION.nMaxRoadWays)
  422. #define CFG_CMD_CLIENT_CUSTOM_DATA "ClientCustomData" // 平台自定义信息(对应 CFG_CLIENT_CUSTOM_INFO)
  423. #define CFG_CMD_BURN_RECORD_FORMAT "BurnRecordFormat" // 刻录格式配置(对应 CFG_BURN_RECORD_FORMAT)
  424. #define CFG_CMD_MULTIBURN "MultiBurn" // 多光盘同步刻录(对应 CFG_MULTIBURN_INFO)是一个数组,每一个元素表示一组多光盘同步刻录及校验
  425. #define CFG_CMD_ENCODE_ENCRYPT "EncodeEncrypt" // 编码加密配置信息( CFG_ENCODE_ENCRYPT_CHN_INFO )
  426. #define CFG_CMD_VIDEO_IN_ZOOM "VideoInZoom" // 云台通道变倍配置(对应 CFG_VIDEO_IN_ZOOM)
  427. #define CFG_CMD_SNAP "Snap" // 抓图配置(对应 CFG_SNAP_INFO)
  428. #define CFG_CMD_REMOTE_STORAGE_LIMIT "RemoteStorageLimit" // 网络存储服务器限制配置(对应 CFG_REMOTE_STORAGELIMIT_GROUP)
  429. #define CFG_CMD_SPECIAL_DIR "SpecialDirectoryDefine" // 特殊用途目录定义(对应 CFG_SPECIAL_DIR_INFO)
  430. #define CFG_CMD_AUTO_STARTUP_DELAY "AutoStartupDelay" // 关机后延时自动开机配置(对应 CFG_AUTO_STARTUP_DELAY_INFO)
  431. #define CFG_CMD_CANFILTER "CANFilter" // CAN透传配置(对应 CFG_CANFILTER_LIST)
  432. #define CFG_CMD_VIDEOIN_FOCUS "VideoInFocus" // 聚焦设置(对应 CFG_VIDEO_IN_FOCUS)
  433. #define CFG_CMD_ENCODE_ADAPT "EncodeAdapt" // 编码自适应配置(对应 CFG_ENCODE_ADAPT_INFO)
  434. #define CFG_CMD_VIDEOANALYSE_CALIBRATE "VideoAnalyseCalibrate" // 视频分析标定配置(对应 CFG_VIDEO_ANALYSE_CALIBRATEAREA)
  435. #define CFG_CMD_PTZ_PRESET "PtzPreset" // 云台预置点配置(对应结构 PTZ_PRESET_INFO)
  436. #define CFG_CMD_TIMESPEEDLIMIT "TimeSpeedLimit" // 时间段限速值配置(对应结构体 CFG_TIMESPEEDLIMIT_LIST)
  437. #define CFG_CMD_VOICEALERT "VoiceAlert" // 语音提示配置(对应结构体 CFG_VOICEALERT_LIST)
  438. #define CFG_CMD_DEVICEKEEPALIVE "DeviceKeepAlive" // 设备保活配置(对应结构体 CFG_DEVICEKEEPALIVELIST)
  439. #define CFG_CMD_AUDIO_SPIRIT "AudioSpirit" // 语音激励(对应 CFG_AUDIO_SPIRIT)
  440. #define CFG_CMD_AUDIO_MATRIX_SILENCE "AudioMatrixSilence" // 静音矩阵配置(对应 CFG_AUDIO_MATRIX_SILENCE)
  441. #define CFG_CMD_AUDIO_MATRIX "AudioMatrixConfig" // 音频矩阵配置(对应 CFG_AUDIO_MATRIX)
  442. #define CFG_CMD_COMPOSE_CHANNEL "ComposeChannel" // 合成通道配置(对应 CFG_COMPOSE_CHANNEL)
  443. #define CFG_CMD_COMPOSE_LINKAGE "ComposeLinkage" // 合成通道配置 庭审主机使用,证物切换功能(对应 CFG_COMPOSE_CHANNEL)
  444. #define CFG_CMD_LOWER_MATRIX "LowerMatrix" // 下位矩阵配置(对应 CFG_LOWER_MATRIX_LIST)
  445. #define CFG_CMD_INFRARED_BOARD_TEMPLATE "InfraredBoardTemplate" // 红外面板模板(对应 CFG_INFRARED_BOARD_TEMPLATE_GROUP)
  446. #define CFG_CMD_INFRARED_BOARD "InfraredBoard" // 红外面板模板(对应 CFG_INFRARED_BOARD_GROUP)
  447. #define CFG_CMD_VIDEOIN_EXPOSURE "VideoInExposure" // 曝光设置(对应 CFG_VIDEOIN_EXPOSURE_INFO)
  448. #define CFG_CMD_VIDEOIN_BACKLIGHT "VideoInBacklight" // 光线环境配置(对应CFG_VIDEOIN_BACKLIGHT_INFO)
  449. #define CFG_CMD_ACCESS_GENERAL "AccessControlGeneral" // 门禁基本配置(对应 CFG_ACCESS_GENERAL_INFO)
  450. #define CFG_CMD_ACCESS_EVENT "AccessControl" // 门禁事件配置(对应 CFG_ACCESS_EVENT_INFO 数组)
  451. #define CFG_CMD_WIRELESS "Wireless" // 无线网络连接设置(对应 CFG_WIRELESS_INFO)
  452. #define CFG_CMD_ALARMSERVER "AlarmServer" // 报警服务器配置(对应 CFG_ALARMCENTER_INFO)
  453. #define CFG_CMD_COMMGLOBAL "CommGlobal" // 报警全局配置(对应 CFG_COMMGLOBAL_INFO)
  454. #define CFG_CMD_ANALOGALARM "AnalogAlarm" // 模拟量报警通道配置(对应 CFG_ANALOGALARM_INFO)
  455. #define CFG_CMD_ALARMOUT "AlarmOut" // 报警输出通道配置(对应 CFG_ALARMOUT_INFO)
  456. #define CFG_CMD_NTP "NTP" // 时间同步服务器(对应 CFG_NTP_INFO)
  457. #define CFG_CMD_ALARMBELL "AlarmBell" // 警号配置(对应 CFG_ALARMBELL_INFO)
  458. #define CFG_CMD_MOBILE "Mobile" // 移动相关业务配置(对应 CFG_MOBILE_INFO)
  459. #define CFG_CMD_PHONEEVENTNOTIFY "PhoneEventNotify" // (对应 CFG_PHONEEVENTNOTIFY_INFO)
  460. #define CFG_CMD_PSTN_ALARM_SERVER "PSTNAlarmServer" // 电话报警中心配置(CFG_PSTN_ALARM_CENTER_INFO)
  461. #define CFG_CMD_AUDIO_OUTPUT_VOLUME "AudioOutputVolume" // 音频输出音量(CFG_AUDIO_OUTPUT_VOLUME)
  462. #define CFG_CMD_AUDIO_INPUT_VOLUME "AudioInputVolume" // 音频输入音量(CFG_AUDIO_INPUT_VOLUME)
  463. #define CFG_CMD_LIGHT_GLOBAL "LightGlobal" // 指示灯控制配置 (CFG_LIGHT_GLOBAL)
  464. #define CFG_CMD_AUDIO_MIX_VOLUME "AudioMixVolume" // 混合音频音量,用于庭审主机(CFG_AUDIO_MIX_VOLUME)
  465. #define CFG_CMD_ALARMKEYBOARD "AlarmKeyboard" // 报警键盘配置(CFG_ALARMKEYBOARD_INFO)
  466. #define CFG_CMD_POWERFAULT "PowerFault" // 电源故障配置(CFG_POWERFAULT_INFO)
  467. #define CFG_CMD_CHASSISINTRUSION "ChassisIntrusion" // 机箱入侵报警(防拆报警)配置(CFG_CHASSISINTRUSION_INFO)
  468. #define CFG_CMD_EXALARMBOX "ExAlarmBox" // 扩展报警盒配置 (CFG_EXALARMBOX_INFO)
  469. #define CFG_CMD_EXALARMOUTPUT "ExAlarmOut" // 扩展报警输出配置(CFG_EXALARMOUTPUT_INFO)
  470. #define CFG_CMD_EXALARMINPUT "ExAlarm" // 扩展报警输入配置(CFG_EXALARMINPUT_INFO)
  471. #define CFG_CMD_ACCESSTIMESCHEDULE "AccessTimeSchedule" // 门禁刷卡时间段(CFG_ACCESS_TIMESCHEDULE_INFO)
  472. #define CFG_CMD_URGENCY "Emergency" // 紧急事件配置(CFG_URGENCY_INFO)
  473. #define CFG_CMD_SENSORSAMPLING "SensorSampling" // 传感器采样(CFG_SENSORSAMPLING_INFO)
  474. #define CFG_CMD_STP "STP" // 环网配置(CFG_STP_INFO)
  475. #define CFG_CMD_ALARM_SUBSYSTEM "AlarmSubSystem" // 报警子系统配置(CFG_ALARM_SUBSYSTEM_INFO)
  476. #define CFG_CMD_BATTERY_LOW_POWER "BatteryLowPowerAlarm" // 电池电量低配置(CFG_BATTERY_LOW_POWER_INFO)
  477. #define CFG_CMD_SNAPLIKAGE "SnapLinkage" // 抓图通道联动外设配置(CFG_SNAPLINKAGE_INFO)
  478. #define CFG_CMD_AUDIOINPUT "AudioInput" // 音频输入配置(CFG_AUDIO_INPUT)
  479. #define CFG_CMD_EMAIL "Email" // 邮件发送配置(CFG_EMAIL_INFO)
  480. #define CFG_CMD_TRAFFIC_TRANSFER_OFFLINE "TrafficTransferOffline" // 传输离线文件配置(TRAFFIC_TRANSFER_OFFLINE_INFO)
  481. #define CFG_CMD_COMMSUBSCRIBE "CommSubscribe" // 订阅串口数据配置(CFG_DEVCOMM_SUBSCRIBE)
  482. #define CFG_CMD_PARKINGSPACE_LIGHT_STATE "ParkingSpaceLightState" // 车位状态对应的车位指示灯(CFG_PARKINGSPACE_LIGHT_STATE)
  483. #define CFG_CMD_AIRCONDITION "AirCondition" // 空调设备配置(CFG_AIRCONDITION_INFO)
  484. #define CFG_CMD_COMPRESS_PLAY "CompressPlay" // 压缩回放配置(CFG_COMPRESS_PLAY_INFO)
  485. #define CFG_CMD_BUILDING "Building" // VTO楼层配置(CFG_BUILDING_INFO)
  486. #define CFG_CMD_BUILDING_EXTERNAL "BuildingExternal" // VTO楼层扩展配置(CFG_BUILDING_EXTERNAL_INFO)
  487. #define CFG_CMD_DIALRULE "DialRule" // 拨号规则(CFG_DIALRULE_INFO)
  488. #define CFG_CMD_OIL_MASS_INFO "OilMassInfo" // 车辆油箱配置(CFG_OIL_MASS_INFO)
  489. #define CFG_CMD_FISHEYE_INFO "FishEye" // 鱼眼详细信息配置(CFG_FISHEYE_DETAIL_INFO)
  490. #define CFG_CMD_VTNOANSWER_FORWARD "VTNoAnswerForward" // 平台下发呼叫无应答转移配置列表(CFG_VT_NOANSWER_FORWARD_INFO)
  491. #define CFG_CMD_VTO_CALL "VTOCall" // VTO呼叫配置(CFG_VTO_CALL_INFO)
  492. #define CFG_CMD_MACCONFLICT "MacConflict" // MAC冲突报警配置(CFG_MACCONFLICT_INFO)
  493. #define CFG_CMD_IDLEMOTION_INFO "IdleMotion" // 空闲动作配置(CFG_IDLE_MOTION_INFO)
  494. #define CFG_CMD_MONITORWALL_COLL_TOUR "MonitorWallCollectionTour" // 电视墙预案轮巡配置(CFG_MONITORWALL_COLLECTION_TOUR_INFO)
  495. #define CFG_CMD_PSTN_BREAK_LINE "PSTNBreakLine" // PSTN断线事件配置(CFG_PSTN_BREAK_LINE_INFO)
  496. #define CFG_CMD_NET_COLLECTION "NetCollection" // 网络采集设备配置(CFG_NET_COLLECTION_INFO)
  497. #define CFG_CMD_ALARM_SLOT_BOND "AlarmSlotBond" // 虚拟Slot节点与具体物理设备的对应关系(CFG_ALARM_SLOT_BOND_INFO)
  498. #define CFG_CMD_TRAFFICSTROBE "TrafficStrobe" // 道闸配置(CFG_TRAFFICSTROBE_INFO)
  499. #define CFG_CMD_TRAFFICVOICE "TrafficVoiceBroadcast" // 智能交通语音播报配置( CFG_TRAFFICVOICE_BROADCAST)
  500. #define CFG_CMD_STANDING_TIME "StandingTime" // 停车时间配置(CFG_STANDING_TIME_INFO)
  501. #define CFG_CMD_ENCLOSURE_TIME_SCHEDULE "EnclosureTimeSchedule" // 电子围栏报警时间段配置(CFG_ENCLOSURE_TIME_SCHEDULE_INFO)
  502. #define CFG_CMD_ECKCONFIG "ECKConfig" // 停车场出入口控制器配置(CFG_ECKCONFIG_INFO)
  503. #define CFG_CMD_PARKING_CARD "ParkingCard" // 停车场出入口刷卡报警事件配置(CFG_PARKING_CARD_INFO)
  504. #define CFG_CMD_RCEMERGENCY_CALL "RCEmergencyCall" // 紧急呼叫报警事件配置(CFG_RCEMERGENCY_CALL_INFO)
  505. #define CFG_CMD_LANES_STATE_REPORT "LanesStateReport" // 车道信息上报配置(CFG_LANES_STATE_REPORT)
  506. #define CFG_CMD_OPEN_DOOR_GROUP "OpenDoorGroup" // 多人多开门方式组合配置(CFG_OPEN_DOOR_GROUP_INFO)
  507. #define CFG_CMD_OPEN_DOOR_ROUTE "OpenDoorRoute" // 开门路线集合,或称防反潜路线配置(CFG_OPEN_DOOR_ROUTE_INFO)
  508. #define CFG_CMD_BURNPLAN "BurnPlan" // 刻录计划配置(对应 CFG_BURNPLAN_INFO)
  509. #define CFG_CMD_SCADA_DEV "SCADADev" // 检测采集设备配置(CFG_SCADA_DEV_INFO)
  510. #define CFG_CMD_VSP_GAYS "VSP_GAYS" // 公安一所平台接入配置(CFG_VSP_GAYS_INFO)
  511. #define CFG_CMD_AUDIODETECT "AudioDetect" // 音频检测报警配置(CFG_AUDIO_DETECT_INFO数组)
  512. #define CFG_CMD_GUIDESCREEN "GuideScreen" // 诱导屏系统配置(CFG_GUIDESCREEN_INFO)
  513. #define CFG_CMD_VTS_CALL_INFO "VTSCallInfo" // VTS呼叫配置(CFG_VTS_CALL_INFO)
  514. #define CFG_CMD_DEV_LIST "DevList" // 设备列表配置(CFG_DEV_LIST_INFO)
  515. #define CFG_CMD_CALIBRATE_MATRIX "CalibrateMatrix" // 主从式跟踪器标定矩阵配置(CFG_CALIBRATE_MATRIX_INFO, 新配置对应CFG_CALIBRATE_MATRIX_EX_INFO)
  516. #define CFG_CMD_DEFENCE_AREA_DELAY "DefenceAreaDelay" // 防区延时配置(CFG_DEFENCE_AREA_DELAY_INFO)
  517. #define CFG_CMD_THERMO_GRAPHY "ThermographyOptions" // 热成像摄像头属性配置(CFG_THERMOGRAPHY_INFO)
  518. #define CFG_CMD_THERMOMETRY_RULE "ThermometryRule" // 热成像测温规则配置(CFG_RADIOMETRY_RULE_INFO)
  519. #define CFG_CMD_TEMP_STATISTICS "TemperatureStatistics" // 温度统计配置(CFG_TEMP_STATISTICS_INFO)
  520. #define CFG_CMD_THERMOMETRY "HeatImagingThermometry" // 热成像测温全局配置(CFG_THERMOMETRY_INFO)
  521. #define CFG_CMD_FLAT_FIELD_CORRECTION "FlatFieldCorrection" // 热成像平场聚焦校准配置(CFG_FLAT_FIELD_CORRECTION_INFO)
  522. #define CFG_CMD_THERMO_FUSION "ThermographyFusion" // 热成像视频融合配置(CFG_THERMO_FUSION_INFO)
  523. #define CFG_CMD_LCE_STATE "LCEState" // 热成像自研机芯中摄像头属性的局部对比度增强配置(CFG_LCE_STATE_INFO)
  524. #define CFG_CMD_LIGHTING "Lighting" // 灯光设置(CFG_LIGHTING_INFO)
  525. #define CFG_CMD_RAINBRUSHMODE "RainBrushMode" // 雨刷模式相关配置(对应 CFG_RAINBRUSHMODE_INFO数组)
  526. #define CFG_CMD_LIGHTINGSCHEDULE "LightingSchedule" // 灯光计划配置(对应 CFG_LIGHTINGSCHEDULE_INFO)
  527. #define CFG_CMD_EMERGENCY_RECORD_FOR_PULL "EmergencyRecordForPull" // 紧急录像存储配置,用于客户端主动拉的方式。在客户端拉流存储异常之后,进行紧急录像存储(CFG_EMERGENCY_RECORD_FOR_PULL_INFO)
  528. #define CFG_CMD_ALARM_SHIELD_RULE "AlarmShieldRule" // 告警屏蔽规则( CFG_ALARM_SHIELD_RULE_INFO)
  529. #define CFG_CMD_VIDEOIN_ANALYSERULE "VideoInAnalyseRule" // 视频通道智能规则配置(CFG_VIDEOIN_ANALYSE_RULE_INFO)
  530. #define CFG_CMD_ACCESS_WORK_MODE "AccessWorkMode" // 门锁工作模式(对应 CFG_ACCESS_WORK_MODE_INFO 数组)
  531. #define CFG_CMD_VIDEO_TALK_PHONE_GENERAL "VideoTalkPhoneGeneral" // 视频对讲电话通用配置(CFG_VIDEO_TALK_PHONE_GENERAL)
  532. #define CFG_CMD_TRAFFIC_SNAP_MOSAIC "TrafficSnapMosaic" // 抓图合成配置(对应 CFG_TRAFFIC_SNAP_MOSAIC_INFO)
  533. #define CFG_CMD_SCENE_SNAP_RULE "SceneSnapShotWithRule" // 场景抓拍设置(对应 CFG_SCENE_SNAPSHOT_RULE_INFO)
  534. #define CFG_CMD_PTZTOUR "PtzTour" // 云台巡航路径配置(对应 CFG_PTZTOUR_INFO)
  535. #define CFG_CMD_VTO_INFO "VTOInfo" // 门口机配置(对应 CFG_VTO_LIST)
  536. #define CFG_CMD_TS_POINT "TSPoint" // 触摸屏校准配置(对应 CFG_TSPOINT_INFO)
  537. #define CFG_CMD_VTH_NUMBER_INFO "VTHNumberInfo" // 室内机号码信息(对应 CFG_VTH_NUMBER_INFO)
  538. #define CFG_CMD_GPS "GPS" // GPS配置(对应 CFG_GPS_INFO_ALL)
  539. #define CFG_CMD_VTO_BASIC_INFO "VTOBasicInfo" // VTO基本信息 (对应 CFG_VTO_BASIC_INFO)
  540. #define CFG_CMD_SHORTCUT_CALL "ShortcutCall" // 快捷号配置 (对应 CFG_SHORTCUT_CALL_INFO)
  541. #define CFG_CMD_GPS_LOCATION_VER "GPSLocationVersion" // 记录集GPSLocation的版本号(对应 CFG_LOCATION_VER_INFO)
  542. #define CFG_CMD_PARKING_SPACE_ACCESS_FILTER "ParkingSpaceAccessFilter" // 设备可访问地址过滤配置(对应 CFG_PARKING_SPACE_ACCESS_FILTER_INFO)
  543. #define CFG_CMD_WORK_TIME "WorkTime" // 工作时间配置(对应 CFG_WORK_TIME_INFO)
  544. #define CFG_CMD_PARKING_SPACE_LIGHT_GROUP "ParkingSpaceLightGroup" // 车位指示灯本机配置(对应 CFG_PARKING_SPACE_LIGHT_GROUP_INFO_ALL)
  545. #define CFG_CMD_CUSTOM_AUDIO "CustomAudio" // 自定义音频配置(CFG_CUSTOM_AUDIO)
  546. #define CFG_CMD_WIFI_SEARCH "AroudWifiSearch" // 设备通过wifi模块扫描周围无线设备配置(对应 CFG_WIFI_SEARCH_INFO)
  547. #define CFG_CMD_G3G4AUTOCHANGE "G3G4AutoChange" // 车载设备通信模块3G 4G自动切换(CFG_G3G4AUTOCHANGE)
  548. #define CFG_CMD_CHECKCODE "CheckCode" // 刷卡机校验码校验配置(对应 CFG_CHECKCODE_INFO)
  549. #define CFG_CMD_VSP_SCYDKD "VSP_SCYDKD" // 四川移动看店启迪平台接入配置(对应 CFG_VSP_SCYDKD_INFO)
  550. #define CFG_CMD_VIDEOIN_DAYNIGHT "VideoInDayNight" // 球机机芯日夜配置(对应 CFG_VIDEOIN_DAYNIGHT_INFO)
  551. #define CFG_CMD_PTZ_POWERUP "PowerUp" // 云台开机动作设置(对应 CFG_PTZ_POWERUP_INFO)
  552. #define CFG_CMD_AUDIO_MIX_CHANNEL "AudioMixChannel" // 配置定义每个纯音频通道的组成(对应 CFG_AUDIO_MIX_CHANNEL_INFO_ALL)
  553. #define CFG_CMD_AUDIO_TOUCH "AudioTouch" // 变音,对音调进行变化(对应 CFG_AUDIO_TOUCH_INFO_ALL)
  554. #define CFG_CMD_VIDEO_MOSAIC "VideoMosaic" // 马赛克叠加配置(对应CFG_VIDEO_MOSAIC_INFO)
  555. #define CFG_CMD_VTH_REMOTE_IPC_INFO "VTHRemoteIPCInfo" // VTH中远程IPC配置(对应 CFG_VTH_REMOTE_IPC_INFO),该配置是全局的,不区分通道
  556. #define CFG_CMD_UNFOCUSDETECT "UnFocusDetect" // 虚焦检测配置(对应CFG_UNFOCUSDETECT_INFO)
  557. #define CFG_CMD_MOVE_DETECT "MovedDetect" // 场景变更检测配置(对应CFG_MOVE_DETECT_INFO)
  558. #define CFG_CMD_FLOODLIGHT "Floodlight" // 防护舱照明灯控制配置(对应 CFG_FLOODLIGHT_CONTROLMODE_INFO)
  559. #define CFG_CMD_AIRFAN "AirFan" // 防护舱风扇控制配置(对应 CFG_AIRFAN_CONTROLMODE_INFO)
  560. #define CFG_CMD_WLAN "WLan" // WLAN配置(对应 CFG_NETAPP_WLAN)
  561. #define CFG_CMD_SMART_ENCODE "SmartEncode" // Smart H264编码方式(对应 CFG_SMART_ENCODE_INFO)
  562. #define CFG_CMD_VEHICLE_HIGH_SPEED "HighSpeed" // 车载高速报警配置(对应 CFG_VEHICLE_HIGHSPEED_INFO )
  563. #define CFG_CMD_VEHICLE_LOW_SPEED "LowSpeed" // 车载低速报警配置(对应 CFG_VEHICLE_LOWSPEED_INFO )
  564. #define CFG_CMD_PSTN_PERSON_SERVER "PSTNPersonServer" // 个人电话接机配置(对应 CFG_PSTN_PERSON_SERVER_INFO_ALL )
  565. #define CFG_CMD_ARM_LINK "ArmLink" // 布撤防联动配置(对应 CFG_ARMLINK_INFO )
  566. #define CFG_CMD_CABINLED_TIME_SCHEDULE "CabinLedTimeSchedule" // 防护舱Led显示计划配置(对应 CFG_CABINLED_TIME_SCHEDULE)
  567. #define CFG_CMD_PSTN_TESTPLAN "PSTNTestPlan" // PSTN 测试计划配置(对应 CFG_PSTN_TESTPLAN_INFO)
  568. #define CFG_CMD_DEFENCE_ARMMODE "DefenceArmMode" // 单防区布撤防使能配置(对应 CFG_DEFENCE_ARMMODE_INFO)
  569. #define CFG_CMD_SENSORMODE "SensorMode" // 探测器安装工作模式配置(对应 CFG_SENSORMODE_INFO)
  570. #define CFG_CMD_ALARMLAMP "AlarmLamp" // 警灯配置(对应 CFG_ALARMLAMP_INFO)
  571. #define CFG_CMD_RADAR_SPEED_MEASURE "RadarSpeedMeasure" // 雷达测速配置 智能楼宇专用(对应 CFG_RADAR_SPEED_MEASURE_INFO)
  572. #define CFG_CMD_VIDEOINDEFOG "VideoInDefog" // 透雾设置配置(对应结构体 CFG_VIDEOINDEFOG_LIST)
  573. #define CFG_CMD_RTMP "RTMP" // RTMP配置(对应结构体 CFG_RTMP_INFO)
  574. #define CFG_CMD_AUDIO_OUT_EQUALIZER "AudioOutEqualizer" // 音频输出均衡器配置(对应结构体CFG_AUDIO_OUTEQUALIZER_INFO)
  575. #define CFG_CMD_AUDIO_OUT_SUPPRESSION "AudioOutSuppression" // 音频抑制设置(对应结构体CFG_AUDIO_SUPPRESSION_INFO)
  576. #define CFG_CMD_AUDIO_IN_CONTROL "AudioInControl" // 音频输入控制(对应结构体CFG_AUDIO_INCONTROL_INFO)
  577. #define CFG_CMD_LASER_DIST_MEASURE "LaserDistMeasure" // 激光测距器配置(对应结构体 CFG_LASER_DIST_MEASURE_INFO)
  578. #define CFG_CMD_OIL_4G_OVERFLOW "Oil4GFlow" // 福山油田4G流量阈值及模式配置(对应结构体 CFG_OIL_4G_OVERFLOW_INFO)
  579. #define CFG_CMD_OIL_VIDEOWIDGET_4G_FLOW "VideoWidget4GFlow" // 福山油田4G流量OSD叠加配置(对应结构体 CFG_OIL_VIDEOWIDGET_4G_FLOW_INFO)
  580. #define CFG_CMD_ATMOSPHERE_OSD "AtmosphereOSD" // 气象信息叠加配置(对应结构体 CFG_CMD_ATMOSPHERE_OSD_INFO)
  581. #define CFG_CMD_PARK_SPACE_OUT_LIGHT "ParkSpaceOutLight" // 外接指示灯配置(对应结构体 CFG_PARK_SPACE_OUT_LIGHT_INFO)
  582. #define CFD_CMD_VTO_CALL_INFO_EXTEND "VTOCallInfo" // VTO呼叫配置扩展(对应结构体CFG_VTO_CALL_INFO_EXTEND)
  583. #define CFG_CMD_ACCESS_TEXTDISPLAY "AccessControlTextDisplay" // 门禁文字提示显示配置(对应结构体 CFG_ACCESS_TEXTDISPLAY_INFO)
  584. #define CFG_CMD_NETNVR_ENCRYPT "NvrEncrypt" // 杭师大视频加密项目配置信息,涉及IPC和NVR( CFG_NETNVR_ENCRYPT_INFO )
  585. #define CFG_CMD_LIGHT "Light" // 灯光设备配置 (对应结构体 CFG_LIGHT_INFO)
  586. #define CFG_CMD_CURTAIN "Curtain" // 窗帘配置(对应结构体 CFG_CURTAIN_INFO)
  587. #define CFG_CMD_FRESH_AIR "FreshAir" // 新风配置(对应结构体 CFG_FRESH_AIR_INFO)
  588. #define CFG_CMD_GROUND_HEAT "GroundHeat" // 地暖配置(对应结构体 CFG_GROUND_HEAT_INFO)
  589. #define CFG_CMD_SCENE_MODE "SceneMode" // 情景模式(对应结构体 CFG_SCENE_MODE_INFO)
  590. #define CFG_CMD_AIO_APP_CONFIG "AIOAppConfig" // 渝北智慧天网参数设置(对应结构体 CFG_AIO_APP_CONFIG_INFO)
  591. #define CFG_CMD_HTTPS "Https" // Https服务配置(对应结构体 CFG_HTTPS_INFO)
  592. #define CFG_CMD_NETAUTOADAPTORENCODE "NetAutoAdaptEncode" // 网络自适应编码配置(对应结构体 CFG_NET_AUTO_ADAPT_ENCODE)
  593. #define CFG_CMD_USERLOCKALARM "UserLockAlarm" // 登陆锁定配置(对应结构体 CFG_USERLOCKALARM_INFO)
  594. #define CFG_CMD_STROBOSCOPIC_LAMP "StroboscopicLamp" // 频闪灯配置(对应结构体 CFG_STROBOSCOPIC_LAMP_INFO)
  595. #define CFG_CMD_FREECOMBINATION "FreeCombination" // 自由分割模式的窗口配置 CFG_FREECOMBINATION_INFO )
  596. #define CFG_CMD_IOT_INFRARED_DETECT "IOT_InfraredDetect" // 物联网红外检测配置(对应结构体CFG_IOT_INFRARED_DETECT_INFO)
  597. #define CFG_CMD_IOT_RECORD_HANDLE "IOT_RecordHandle" // 物联网录像联动配置(对应结构体CFG_IOT_RECORD_HANDLE_INFO)
  598. #define CFG_CMD_IOT_SNAP_HANDLE "IOT_SnapHandle" // 物联网抓图联动配置(对应结构体CFG_IOT_SNAP_HANDLE_INFO)
  599. #define CFG_CMD_PLATFORM_MONITOR_IPC "PlatformMonitorIPC" // 平台侧监视IPC配置 CFG_PLATFORMMONITORIPC_INFO )
  600. #define CFG_CMD_CALLFORWARD "CallForward" // 呼叫转移配置(对应结构体 CFG_CALLFORWARD_INFO)
  601. #define CFD_CMD_DOORBELLSOUND "DoorBellSound" // 门铃配置(对应结构体CFG_DOOR_BELLSOUND_INFO)
  602. #define CFG_CMD_TELNET "Telnet" // telnet配置(对应结构体CFG_TELNET_INFO)
  603. #define CFG_CMD_OSDSYSABNORMAL "OSDSysAbnormal" // 显示异常信息的叠加配置(对应结构体 CFG_OSD_SYSABNORMAL_INFO)
  604. #define CFG_CMD_VIDEO_WIDGET2 "VideoWidget2" // 视频编码物件配置(对应结构体 CFG_VIDEO_WIDGET2_INFO)
  605. #define CFG_CMD_VIDEOWIDGET_NUMBERSTAT "VideoWidgetNumberStat" // 人数统计叠加OSD配置(对应结构体 CFG_VIDEOWIDGET_NUMBERSTAT_INFO)
  606. #define CFG_CMD_PRIVACY_MASKING "PrivacyMasking" // 隐私遮挡设置(对应结构体 CFG_PRIVACY_MASKING_INFO)
  607. #define CFG_CMD_DEVICE_INFO "DeviceInfo" // 设备信息(对应结构体 CFG_DEVICE_INFO)
  608. #define CFG_CMD_POLICEID_MAP_INFO "PoliceMap" // 警员ID和设备通道映射关系信息(对应结构体 CFG_POLICEID_MAP_INFO)
  609. #define CFG_CMD_GPS_NOT_ALIGNED "GpsNotAligned" // GPS未定位配置(对应结构体 CFG_GPS_NOT_ALIGNED_INFO)
  610. #define CFG_CMD_WIRELESS_NOT_CONNECTED "WireLessNotConnected" // 网络未连接(包括wifi,3G/4G)配置(对应结构体 CFG_WIRELESS_NOT_CONNECTED_INFO)
  611. #define CFG_CMD_MCS_GENERAL_CAPACITY_LOW "MCSGeneralCapacityLow" // 微云常规容量告警配置(对应结构体CFG_MCS_GENERAL_CAPACITY_LOW)
  612. #define CFG_CMD_MCS_DATA_NODE_OFFLINE "MCSDataNodeOffline" // 微云存储节点下线(对应结构体CFG_MCS_DATA_NODE_OFFLINE)
  613. #define CFG_CMD_MCS_DISK_OFFLINE "MCSDiskOffline" // 微云磁盘下线告警配置(对应结构体CFG_MCS_DISK_OFFLINE)
  614. #define CFG_CMD_MCS_DISK_SLOW "MCSDiskSlow" // 微云磁盘变慢告警配置(对应结构体CFG_MCS_DISK_SLOW)
  615. #define CFG_CMD_MCS_DISK_BROKEN "MCSDiskBroken" // 微云磁盘损坏告警配置(对应结构体CFG_MCS_DISK_BROKEN)
  616. #define CFG_CMD_MCS_DISK_UNKNOW_ERROR "MCSDiskUnknowError" // 微云磁盘未知错误告警配置(对应结构体CFG_MCS_DISK_UNKNOW_ERROR)
  617. #define CFG_CMD_MCS_METADATA_SERVER_ABNORMAL "MCSMetadataServerAbnormal" // 微云元数据服务器异常告警配置(对应结构体CFG_MCS_METADATA_SERVER_ABNORMAL)
  618. #define CFG_CMD_MCS_CATALOG_SERVER_ABNORMAL "MCSCatalogServerAbnormal" // 微云目录服务器异常告警配置(对应结构体CFG_MCS_CATALOG_SERVER_ABNORMAL)
  619. #define CFG_CMD_MCS_GENERAL_CAPACITY_RESUME "MCSGeneralCapacityResume" // 微云常规容量告警恢复告警配置(对应结构体CFG_MCS_GENERAL_CAPACITY_RESUME)
  620. #define CFG_CMD_MCS_DATA_NODE_ONLINE "MCSDataNodeOnline" // 微云存储节点上线告警配置(对应结构体CFG_MCS_DATA_NODE_ONLINE)
  621. #define CFG_CMD_MCS_DISK_ONLINE "MCSDiskOnline" // 微云磁盘上线告警配置(对应结构体CFG_MCS_DISK_ONLINE)
  622. #define CFG_CMD_MCS_METADATA_SLAVE_ONLINE "MCSMetadataSlaveOnline" // 微云元数据备机上线告警配置(对应结构体CFG_MCS_METADATA_SLAVE_ONLINE)
  623. #define CFG_CMD_MCS_CATALOG_SERVER_ONLINE "MCSCatalogServerOnline" // 微云目录服务器上线告警配置(对应结构体CFG_MCS_CATALOG_SERVER_ONLINE)
  624. #define CFG_CMD_SECURITY_ALARMS_PRIVACY "SecurityAlarmsPrivacy" // SecurityAlarms客户定制功能,隐私保护(对应结构体CFG_SECURITY_ALARMS_PRIVACY)
  625. #define CFG_CMD_NO_FLY_TIME "NoFlyTime" // 无人机禁飞时段配置 ( 对应结构体 CFG_NO_FLY_TIME_INFO )
  626. #define CFG_CMD_PWD_RESET "PwdReset" // 密码重置功能使能配置 ( 对应结构体 CFG_PWD_RESET_INFO )
  627. #define CFG_CMD_NET_MONITOR_ABORT "NetMonitorAbort" // 网络监视中断事件配置( 对应结构体 CFG_NET_MONITOR_ABORT_INFO )
  628. #define CFG_CMD_LOCAL_EXT_ALARM "LocalExtAlarm" // 本地扩展报警配置 ( 对应结构体 CFG_LOCAL_EXT_ALARME_INFO )
  629. #define CFG_CMD_ACCESSCONTROL_DELAYSTRATEGY "DelayStrategy" // 门禁卡欠费与预欠费状态配置(对应结构体 CFG_ACCESSCONTROL_DELAYSTRATEGY)
  630. #define CFG_CMD_VIDEO_TALK_PHONE_BASIC "VideoTalkPhoneBasic" // 视频对讲电话基础配置( 对应结构体 CFG_VIDEO_TALK_PHONE_BASIC_INFO )
  631. #define CFG_CMD_APP_EVENT_LANGUAGE "AppEventLanguage" // 手机推送消息的翻译目标语言配置(对应结构体 CFG_APP_EVENT_LANGUAGE_INFO )
  632. #define CFG_CMD_LOGIN_FAILURE_ALARM "LoginFailureAlarm" // 登陆失败报警配置(对应结构体 CFG_LOGIN_FAILURE_ALARM)
  633. #define CFG_CMD_DROPBOXTOKEN "DropBoxToken" // Dropbox Token 配置( 对应结构体 CFG_DROPBOXTOKEN_INFO)
  634. #define CFG_CMD_IDLINGTIME "IdlingTime" // 怠速配置(对应结构体 CFG_IDLINGTIME_INFO)
  635. #define CFG_CMD_CARDIVERSTATE "CarDiverState" // 汽车行驶状态配置(对应结构体 CFG_CARDIVERSTATE_INFO)
  636. #define CFG_CMD_VEHICLE "Vehicle" // 车载配置(对应结构体 CFG_VEHICLE_INFO)
  637. #define CFG_CMD_PTZDEVICE "PtzDevice" // 模拟云台配置( 对应结构体 CFG_PTZDEVICE_INFO)
  638. #define CFG_CMD_DEVLOCATION "DevLocation" // 设备安装位置的GPS坐标信息( 对应结构体 CFG_DEVLOCATION_INFO)
  639. #define CFG_CMD_SMARTHOME_SCENELIST "SmartHomeSceneList" //美的地产智能家居场景列表(对应结构体CFG_SMARTHOME_SCENELIST_INFO)
  640. #define CFG_CMD_LIGHTING_V2 "Lighting_V2" //全彩相机补光灯灵敏度配置(对应结构体CFG_LIGHTING_V2_INFO)
  641. #define CFG_CMD_KBUSER_PASSWORD "KbuserPassword" // 键盘操作员用户配置(对应结构体CFG_KBUSER_USERS_INFO)
  642. #define CFG_CMD_ACCESS_OEM "AccessOEMSettings" //工行金库门禁信息配置,对应结构体CFG_ACCESS_OEM_INFO
  643. #define CFG_CMD_FIRE_WARNING_EXT "FireWarningExt" // 火警配置扩展(对应结构体CFG_FIREWARNING_EXT_INFO)
  644. #define CFG_CMD_LOCATION_CALIBRATE "LocationCalibrate" // 设备参数标定配置(对应结构体CFG_LOCATION_CALIBRATE_INFO)
  645. #define CFG_CMD_THERM_DENOISE "ThermDenoise" //热成像特有的机芯降噪,对应结构体CFG_THERM_DENOISE
  646. #define CFG_CMD_CONSTANT_LAMP "ConstantLamp" //智能交通灯光配置,对应结构体CFG_CONSTANT_LAMP_INFO
  647. #define CFG_CMD_TRAFFIC_IO "TrafficIO" //线圈IO配置,对应结构体CFG_TRAFFIC_IO
  648. /************************************************************************
  649. ** 能力集命令 对应CLIENT_QueryNewSystemInfo
  650. ***********************************************************************/
  651. #define CFG_CAP_CMD_VIDEOANALYSE "devVideoAnalyse.getCaps" // 视频分析能力集(对应CFG_CAP_ANALYSE_INFO)
  652. #define CFG_CAP_CMD_VIDEOANALYSE_EX "devVideoAnalyse.getCapsEx" // 视频分析能力集(对应CFG_CAP_ANALYSE_INFO_EX)
  653. #define CFG_NETAPP_REMOTEDEVICE "netApp.getRemoteDeviceStatus" // 获取后端设备的的在线状态(对应CFG_REMOTE_DEVICE_STATUS)
  654. #define CFG_CAP_CMD_PRODUCTDEFINITION "magicBox.getProductDefinition" // 接入设备信息(对应 CFG_PRODUCT_DEFINITION_INFO)
  655. #define CFG_DEVICE_CAP_CMD_VIDEOANALYSE "intelli.getVideoAnalyseDeviceChannels" // 设备智能分析能力(对应CFG_CAP_DEVICE_ANALYSE_INFO)兼容老设备
  656. #define CFG_DEVICE_CAP_NEW_CMD_VIDEOANALYSE "devVideoAnalyse.factory.getCollect" // 设备智能分析能力(对应CFG_CAP_DEVICE_ANALYSE_INFO)
  657. #define CFG_CAP_CMD_CPU_COUNT "magicBox.getCPUCount" // 获得CPU个数
  658. #define CFG_CAP_CMD_CPU_USAGE "magicBox.getCPUUsage" // 获取CPU占用率
  659. #define CFG_CAP_CMD_MEMORY_INFO "magicBox.getMemoryInfo" // 获得内存容量
  660. #define CFG_CAP_CMD_DEVICE_CLASS "magicBox.getDeviceClass" // 获取设备类型(对应CFG_DEVICE_CLASS_INFO)
  661. #define CFG_CAP_CMD_DEVICE_STATE "trafficSnap.getDeviceStatus" // 获取设备状态信息 (对应CFG_CAP_TRAFFIC_DEVICE_STATUS)
  662. #define CFG_CAP_CMD_VIDEOINPUT "devVideoInput.getCaps" // 视频输入能力集(对应CFG_CAP_VIDEOINPUT_INFO)
  663. #define CFG_USERMANAGER_ACTIVEUSER "userManager.getActiveUserInfoAll" // 得到所有活动的用户信息(对应CFG_ACTIVEUSER_INFO)
  664. #define CFG_CAP_VIDEOSTAT_SUMMARY "videoStatServer.getSummary" // 获取视频统计摘要信息(对应CFG_VIDEOSATA_SUMMARY_INFO)
  665. #define CFG_CAP_CMD_VIDEODIAGNOSIS_SERVER "videoDiagnosisServer.getCaps" // 获取视频诊断服务能力(CFG_VIDEODIAGNOSIS_CAPS_INFO)
  666. #define CFG_CMD_VIDEODIAGNOSIS_GETCOLLECT "videoDiagnosisServer.factory.getCollect" // 获取视频诊断通道数目(CFG_VIDEODIAGNOSIS_GETCOLLECT_INFO)
  667. #define CFG_CMD_VIDEODIAGNOSIS_GETSTATE "videoDiagnosisServer.getState" // 获取视频诊断进行状态(CFG_VIDEODIAGNOSIS_STATE_INFO)
  668. #define CFG_CAP_CMD_SERVICE_LIST "system.listService" //获取服务器上支持的服务列表(CFG_DEV_SERVICE_LIST)
  669. #define CFG_CAP_CMD_EVENTHANDLER "capsManager.get&EventManagerEventHandler" // 获取服务器报警联动能力集(CFG_CAP_EVENTHANDLER_INFO)
  670. #define CFG_CAP_ALARM "alarm.getAlarmCaps" // 获取报警能力集(CFG_CAP_ALARM_INFO)
  671. #define CFG_CAP_CMD_AUDIO_ANALYSE "devAudioAnalyse.getCaps" // 获取音频分析能力集(CFG_CAP_AUDIO_ANALYSE_INFO)
  672. #define CFG_CMD_MASTERSLAVE_GETCOLLECT "masterSlaveTracker.factory.getCollect" // 获取主从式跟踪器通道数目(对应结构体CFG_MASTERSLAVETRACKER_INFO)
  673. #define CFG_CAP_CMD_MASTERSLAVE "capsManager.get&MasterSlaveTracker" // 获取主从式设备能力集(CFG_CAP_MASTERSLAVE_INFO)
  674. #define CFG_CAP_CMD_FOCUS_STATE "devVideoInput.getFocusStatus" // 获取镜头聚焦状态信息 (对应CFG_CAP_FOCUS_STATUS)
  675. #define CFG_CAP_CMD_NETAPP "netApp.getCaps" // 获取网络应用能力集(对应CFG_CAP_NETAPP)
  676. #define CFG_CAP_CMD_PTZ_ENABLE "ptz.factory.instance" // 获取云台支持信息(CFG_CAP_PTZ_ENABLEINFO )
  677. #define CFG_CAP_CMD_RECORD "recordManager.getCaps" // 获取录像能力集(CFG_CAP_RECORD_INFO)
  678. #define CFG_CAP_CMD_BURN_MANAGER "BurnManager.getCaps" // 获取刻录管理能力集( CFG_CAP_BURN_MANAGER)
  679. #define CFG_CAP_CMD_PTZ "ptz.getCurrentProtocolCaps" // 获取云台能力集(CFG_PTZ_PROTOCOL_CAPS_INFO)
  680. #define CFG_CMD_ENCODE_GETCAPS "encode.getCaps" // 获取编码能力集(CFG_ENCODECAP)
  681. #define CFG_CAP_CMD_VIDEOINPUT_EX "devVideoInput.getCapsEx" // 视频输入能力集扩展(对应CFG_CAP_VIDEOINPUT_INFO_EX)
  682. #define CFG_CAP_CMD_ANALYSE_MODE "intelli.getCaps.AnalyseMode" // 获取设备智能分析模式(对应 CFG_ANALYSE_MODE)
  683. #define CFG_CAP_CMD_EVENTMANAGER "eventManager.getCaps" // 获取设备报警联动能力,老协议已废除,新开发请使用该字段(CFG_CAP_EVENTMANAGER_INFO)
  684. #define CFG_CAP_CMD_FILEMANAGER "FileManager.getCaps" // 获取文件能力(CFG_CAP_FILEMANAGER)
  685. #define CFG_CAP_CMD_LOG "log.getCaps" // 获取日志服务能力(CFG_CAP_LOG)
  686. #define CFG_CAP_CMD_SPEAK "speak.getCaps" // 扬声器播放能力(CFG_CAP_SPEAK)
  687. #define CFG_CAP_CMD_ACCESSCONTROLMANAGER "accessControlManager.getCaps" // 门禁能力(CFG_CAP_ACCESSCONTROL)
  688. #define CFG_CAP_CMD_EXALARM "alarm.getExAlarmCaps" // 获取扩展报警能力集, (对应结构体 CFG_CAP_EXALARM_INFO)
  689. #define CFG_CAP_CMD_EXALARMBOX "alarm.getExAlarmBoxCaps" // 获取扩展报警盒能力集, (对应结构体 CFG_CAP_EXALARMBOX_INFO)
  690. #define CFG_CAP_CMD_RECORDFINDER "RecordFinder.getCaps" // 获取查询记录能力集, (对应结构体 CFG_CAP_RECORDFINDER_INFO)
  691. #define CFG_CAP_CMD_ANALOGALARM "AnalogAlarm.getCaps" // 模拟量报警输入通道能力(对应结构体 CFG_CAP_ANALOGALARM)
  692. #define CFG_CAP_CMD_LOWRATEWPAN "LowRateWPAN.getCaps" // 获取LowRateWPAN能力(对应的结构体 CFG_CAP_LOWRATEWPAN)
  693. #define CFG_CAP_CMD_ADAPTENCODE "encode.getNAACaps" // 获取编码自适应编码能力(对应的结构体 CFG_CAP_ADAPT_ENCODE_INFO)
  694. #define CFG_CAP_CMD_PTZPROTOCAL "ptz.getProtocol" // 获取该云台实际能够使用的协议,按介质区分 (对应结构体 CFG_CAP_PTZ_PROTOCOL)
  695. #define CFG_CAP_CMD_MEDIACROP "encode.getCropCaps" // 查询是否支持视频裁剪能力 (对应结构体 CFG_CAP_MEDIA_CROP)
  696. #define CFG_CAP_CMD_OSDMANAGER "OSDManager.getCaps" // 获取OSD叠加能力(对应结构体CFG_CAP_OSDMANAGER_INFO)
  697. #define CFG_CAP_CMD_CUSTOM "OSDManager.getCustomCaps" // 获取自定义标题能力集(对应结构体CFG_CAP_CUSTOM_OSD_INFO)
  698. /************************************************************************
  699. ** 智能模板配置命令 对应CLIENT_GetVideoInAnalyse
  700. ***********************************************************************/
  701. #define CFG_VIDEOINANALYSE_RULE "VideoInAnalyse.getTemplateRule" // 获取智能规则配置模板和默认值(对应结构体CFG_ANALYSERULES_INFO)
  702. #define CFG_VIDEOINANALYSE_GLOBAL "VideoInAnalyse.getTemplateGlobal" // 获取智能全局配置模板和默认值(对应结构体CFG_VIDEOINANALYSE_GLOBAL_INFO)
  703. #define CFG_VIDEOINANALYSE_MODULE "VideoInAnalyse.getTemplateModule" // 获取智能检测区配置模板和默认值(对应结构体CFG_VIDEOINANALYSE_MODULE_INFO)
  704. // 日志能力
  705. typedef struct tagCFG_CAP_LOG
  706. {
  707. DWORD dwMaxLogItems; // 最大日志条数
  708. DWORD dwMaxPageItems; // 每个分页的最大日志条数
  709. BOOL bSupportStartNo; // 查询条件是否支持起始序号
  710. BOOL bSupportTypeFilter; // 查询条件是否支持类型过滤
  711. BOOL bSupportTimeFilter; // 查询条件是否支持时间过滤
  712. }CFG_CAP_LOG;
  713. #define MAX_AUDIO_PROPERTY_NUM 32 // 音频属性最大个数
  714. #define MAX_AUDIO_FORMAT_NUM 16 // 音频格式最大个数
  715. // 音频编码压缩格式
  716. enum EM_TALK_AUDIO_TYPE
  717. {
  718. EM_TALK_AUDIO_PCM,
  719. EM_TALK_AUDIO_ADPCM,
  720. EM_TALK_AUDIO_G711A,
  721. EM_TALK_AUDIO_G711Mu,
  722. EM_TALK_AUDIO_G726,
  723. EM_TALK_AUDIO_G729,
  724. EM_TALK_AUDIO_MPEG2,
  725. EM_TALK_AUDIO_AMR,
  726. EM_TALK_AUDIO_AAC,
  727. };
  728. // 音频属性
  729. typedef struct CFG_AUDIO_PROPERTY
  730. {
  731. int nBitRate; // 码流大小,单位:kbps,比如192kbps
  732. int nSampleBit; // 采样的位深,如8或16
  733. int nSampleRate; // 采样率,单位:Hz,比如44100Hz
  734. }CFG_AUDIO_PROPERTY;
  735. // 支持的音频格式
  736. typedef struct CFG_CAP_AUDIO_FORMAT
  737. {
  738. EM_TALK_AUDIO_TYPE emCompression; // 音频压缩格式,具体见枚举AV_Talk_Audio_Type
  739. int nPropertyNum; // 音频属性个数
  740. CFG_AUDIO_PROPERTY stuProperty[MAX_AUDIO_PROPERTY_NUM]; // 音频属性
  741. }CFG_CAP_AUDIO_FORMAT;
  742. // 扬声器能力
  743. typedef struct CFG_CAP_SPEAK
  744. {
  745. int nAudioCapNum; // 支持的音频格式个数
  746. CFG_CAP_AUDIO_FORMAT stuAudioCap[MAX_AUDIO_FORMAT_NUM]; // 支持的音频格式
  747. }CFG_CAP_SPEAK;
  748. // AccessControlCustomPassword记录集中密码的保存方式
  749. typedef enum tagEM_CUSTOM_PASSWORD_ENCRYPTION_MODE
  750. {
  751. EM_CUSTOM_PASSWORD_ENCRYPTION_MODE_UNKNOWN, // 未知方式
  752. EM_CUSTOM_PASSWORD_ENCRYPTION_MODE_PLAINTEXT, // 明文
  753. EM_CUSTOM_PASSWORD_ENCRYPTION_MODE_MD5, // MD5加密方式
  754. }EM_CUSTOM_PASSWORD_ENCRYPTION_MODE;
  755. // 是否支持指纹功能
  756. typedef enum tagEM_SUPPORTFINGERPRINT
  757. {
  758. EM_SUPPORTFINGERPRINT_UNKNOWN, // 未知
  759. EM_SUPPORTFINGERPRINT_NONSUPPORT, // 不支持指纹功能
  760. EM_SUPPORTFINGERPRINT_SUPPORT, // 支持指纹功能
  761. }EM_SUPPORTFINGERPRINT;
  762. // 假日计划
  763. typedef struct tagNET_SPECIAL_DAYS_SCHEDULE
  764. {
  765. BOOL bSupport; // 是否支持假日计划
  766. int nMaxSpecialDaysSchedules; // 设备支持的最大计划数量
  767. int nMaxTimePeriodsPerDay; // 每天最多的时间段
  768. int nMaxSpecialDayGroups; // 设备支持的最大假日组数
  769. int nMaxDaysInSpecialDayGroup; // 每个假日组里最大的假日数
  770. BYTE byReserved[128]; // 保留字节
  771. } NET_SPECIAL_DAYS_SCHEDULE;
  772. // 是否支持门禁快速导入功能
  773. typedef enum tagEM_SUPPORT_FAST_IMPORT_TYPE
  774. {
  775. EM_SUPPORT_FAST_IMPORT_UNKNOWN = -1, // 未知
  776. EM_SUPPORT_FAST_IMPORT_NONSUPPORT, // 不支持
  777. EM_SUPPORT_FAST_IMPORT_SUPPORT, // 支持
  778. } EM_SUPPORT_FAST_IMPORT_TYPE;
  779. // 是否支持门禁快速复核功能
  780. typedef enum tagEM_SUPPORT_FAST_CHECK_TYPE
  781. {
  782. EM_SUPPORT_FAST_CHECK_UNKNOWN = -1, // 未知
  783. EM_SUPPORT_FAST_CHECK_NONSUPPORT, // 不支持
  784. EM_SUPPORT_FAST_CHECK_SUPPORT, // 支持
  785. } EM_SUPPORT_FAST_CHECK_TYPE;
  786. // 门禁控制能力
  787. typedef struct tagCFG_CAP_ACCESSCONTROL
  788. {
  789. int nAccessControlGroups; // 门禁组数、
  790. BOOL bSupAccessControlAlarmRecord; // 是否支持门禁报警日志记录在记录集中
  791. EM_CUSTOM_PASSWORD_ENCRYPTION_MODE emCustomPasswordEncryption; // AccessControlCustomPassword记录集中密码的保存方式
  792. EM_SUPPORTFINGERPRINT emSupportFingerPrint; // 是否支持指纹功能
  793. BOOL bOnlySingleDoorAuth; // 是否只支持单门授权(发卡)
  794. BOOL bAsynAuth; // 是否支持授权异步返回
  795. NET_SPECIAL_DAYS_SCHEDULE stSpecialDaysSchedule; // 假日计划
  796. BOOL bSupportMultiUserMultiTypeAuth; // 是否支持多人多类型组合开门
  797. EM_SUPPORT_FAST_IMPORT_TYPE bSupportFastImport; // 是否支持门禁快速导入功能
  798. EM_SUPPORT_FAST_CHECK_TYPE bSupportFastCheck; // 是否支持门禁快速复核功能
  799. }CFG_CAP_ACCESSCONTROL;
  800. // 传感器感应方式枚举类型
  801. typedef enum tagEM_SENSE_METHOD
  802. {
  803. EM_SENSE_UNKNOWN = -1, // 未知类型
  804. EM_SENSE_DOOR=0, // 门磁
  805. EM_SENSE_PASSIVEINFRA, // 被动红外
  806. EM_SENSE_GAS, // 气感
  807. EM_SENSE_SMOKING, // 烟感
  808. EM_SENSE_WATER, // 水感
  809. EM_SENSE_ACTIVEFRA, // 主动红外
  810. EM_SENSE_GLASS, // 玻璃破碎
  811. EM_SENSE_EMERGENCYSWITCH, // 紧急开关
  812. EM_SENSE_SHOCK, // 震动
  813. EM_SENSE_DOUBLEMETHOD, // 双鉴(红外+微波)
  814. EM_SENSE_THREEMETHOD, // 三技术
  815. EM_SENSE_TEMP, // 温度
  816. EM_SENSE_HUMIDITY, // 湿度
  817. EM_SENSE_WIND, // 风速
  818. EM_SENSE_CALLBUTTON, // 呼叫按钮
  819. EM_SENSE_GASPRESSURE, // 气体压力
  820. EM_SENSE_GASCONCENTRATION, // 燃气浓度
  821. EM_SENSE_GASFLOW, // 气体流量
  822. EM_SENSE_OIL, // 油量检测
  823. EM_SENSE_MILEAGE, // 里程数检测
  824. EM_SENSE_OTHER, // 其他
  825. EM_SEHSE_CO2, // 二氧化碳浓度检测
  826. EM_SEHSE_SOUND, // 噪音检测
  827. EM_SEHSE_PM25, // PM2.5检测
  828. EM_SEHSE_SF6, // 六氟化硫浓度检测
  829. EM_SEHSE_O3, // 臭氧
  830. EM_SEHSE_AMBIENTLIGHT, // 环境光照检测
  831. EM_SEHSE_INFRARED, // 红外报警
  832. EM_SEHSE_TEMP1500, // 1500温度传感器
  833. EM_SEHSE_TEMPDS18B20, // DS18B20温度传感器
  834. EM_SEHSE_HUMIDITY1500, // 1500湿度传感器
  835. EM_SEHSE_URGENCYBUTTON, // 紧急按钮
  836. EM_SEHSE_STEAL, // 盗窃
  837. EM_SEHSE_PERIMETER, // 周界
  838. EM_SEHSE_PREVENTREMOVE, // 防拆
  839. EM_SEHSE_DOORBELL, // 门铃
  840. EM_SEHSE_ALTERVOLT, // 交流电压传感器
  841. EM_SEHSE_DIRECTVOLT, // 直流电压传感器
  842. EM_SEHSE_ALTERCUR, // 交流电流传感器
  843. EM_SEHSE_DIRECTCUR, // 直流电流传感器
  844. EM_SEHSE_RSUGENERAL, // 高新兴通用模拟量
  845. EM_SEHSE_RSUDOOR, // 高新兴门禁感应
  846. EM_SEHSE_RSUPOWEROFF, // 高新兴断电感应
  847. EM_SEHSE_CURTAINSENSOR, // 幕帘传感器
  848. EM_SEHSE_MOBILESENSOR, // 移动传感器
  849. EM_SEHSE_FIREALARM, // 火警
  850. EM_SEHSE_LOCKTONGUE, // 锁舌
  851. EM_SENSE_NUM // 枚举类型总数,注意:这个值不能作为常量使用
  852. }EM_SENSE_METHOD;
  853. // 传感器报警方式
  854. typedef struct tagCFG_EXALARM_SENSE_METHOD
  855. {
  856. int nSupportSenseMethodNum; // 支持的传感器方式数
  857. EM_SENSE_METHOD emSupportSenseMethod[MAX_ALARM_SENSE_METHOD_NUM]; // 支持的传感器方式
  858. }CFG_EXALARM_SENSE_METHOD;
  859. // 模拟量报警输入通道能力
  860. typedef struct tagCFG_CAP_ANALOGALARM
  861. {
  862. DWORD dwLocalNum; // 本地模拟量报警输入通道数
  863. DWORD dwExLocalNum; // 扩展模拟量报警输入通道数
  864. int nAnalogAlarmChannelNum; // 模拟量报警通道数, 此为0时表示每个通道支持所有类型的传感器
  865. CFG_EXALARM_SENSE_METHOD stuAnalogAlarmChannel[MAX_EXALARM_CHANNEL_NUM]; // 报警通道集合
  866. }CFG_CAP_ANALOGALARM;
  867. // 获取LowRateWPAN能力结构体
  868. typedef struct tagCFG_CAP_LOWRATEWPAN
  869. {
  870. UINT nMaxPageSize; // 最大分页查询的对码条数
  871. UINT n433GatewayCount; // 获取支持的433网关数目, 0表示不支持无线设备
  872. }CFG_CAP_LOWRATEWPAN;
  873. // 自适应能力
  874. typedef struct tagCFG_CAP_ADAPT_ENCODE
  875. {
  876. BOOL bSupportedNAAEncode; // 自适应编码调整能力 ,主码流暂不支持
  877. BOOL bSupportedIPSmoothness; // 设备编码平滑配置能力
  878. }CFG_CAP_ADAPT_ENCODE;
  879. // 获取编码自适应能力
  880. typedef struct tagCFG_CAP_ADAPT_ENCODE_INFO
  881. {
  882. CFG_CAP_ADAPT_ENCODE stuMainStream[MAX_VIDEOSTREAM_NUM]; // 主码流,0-普通录像,1-动检录像,2-报警录像
  883. CFG_CAP_ADAPT_ENCODE stuExtraStream[MAX_VIDEOSTREAM_NUM]; // 辅码流,0-辅码流1,1-辅码流2,2-辅码流3
  884. }CFG_CAP_ADAPT_ENCODE_INFO;
  885. // 查询是否支持视频裁剪能力
  886. typedef struct tagCFG_CAP_MEDIA_CROP
  887. {
  888. BOOL bExtra1SupportCrop; // 辅码流1裁剪能力
  889. BOOL bExtra2SupportCrop; // 辅码流2裁剪能力
  890. }CFG_CAP_MEDIA_CROP;
  891. // osd叠加能力
  892. typedef struct CFG_CAP_OSDMANAGER_INFO
  893. {
  894. BOOL bLineSpacing; // 是否支持OSD字体行间距,选填
  895. BOOL bSysAbnormal; // 是否支持异常信息显示
  896. BOOL bNetAbort; // 是否显示网络断开
  897. BOOL bIPConflict; // 是否显示IP冲突
  898. BOOL bVoltageStatus; // 是否显示电压异常
  899. BOOL bSDHotPlug; // 是否显示SD卡插入、拔出 异常
  900. BOOL bSDLowSpace; // 是否显示SD卡空间不足
  901. BOOL bSDFailure; // 是否显示SD卡出错
  902. BOOL bDestroy; // 是否显示破坏检测
  903. BOOL bOvercurrent; // 是否显示对外供电电流过流
  904. BOOL bTaskName; // 是否支持动作任务名称
  905. unsigned int nMaxSize; // 图片最大字节数,单位字节
  906. unsigned int nMaxWidth; // 图片最大宽度, 单位像素
  907. unsigned int nMaxHeight; // 图片最大高度, 单位像素
  908. } CFG_CAP_OSDMANAGER_INFO;
  909. // 自定义标题能力集
  910. typedef struct tagCFG_CAP_CUSTOM_OSD_INFO
  911. {
  912. BOOL abGeography; // bGeography是否有效
  913. BOOL bGeography; //是否支持地理信息叠加
  914. BOOL abTitleLine; // nTitleLine是否有效
  915. unsigned int nTitleLine; // 地理信息行数, 默认为5
  916. } CFG_CAP_CUSTOM_OSD_INFO;
  917. //应用场景, 内容与EM_SCENE_CLASS_TYPE一致
  918. typedef enum tagEM_SCENE_TYPE
  919. {
  920. EM_SCENE_UNKNOW, // 未知
  921. EM_SCENE_NORMAL, // "Normal" 普通场景
  922. EM_SCENE_TRAFFIC, // "Traffic" 交通场景
  923. EM_SCENE_TRAFFIC_PATROL, // "TrafficPatrol" 交通巡视
  924. EM_SCENE_FACEDETECTION, // "FaceDetection" 人脸检测/人脸识别
  925. EM_SCENE_ATM, // "ATM"
  926. EM_SCENE_INDOOR, // "Indoor" 室内行为分析,和普通规则相同,对室内场景的算法优化版
  927. EM_SCENE_FACERECOGNITION, // "FaceRecognition" 人脸识别
  928. EM_SCENE_PRISON, // "Prison" 监狱
  929. EM_SCENE_NUMBERSTAT, // "NumberStat" 客流量统计
  930. EM_SCENE_HEAT_MAP, // "HeatMap" 热度图
  931. EM_SCENE_VIDEODIAGNOSIS, // "VideoDiagnosis" 视频诊断
  932. EM_SCENE_VEHICLEANALYSE, // "VehicleAnalyse" 车辆特征检测分析
  933. EM_SCENE_COURSERECORD, // "CourseRecord" 自动录播
  934. EM_SCENE_VEHICLE, // "Vehicle" 车载场景(车载行业用,不同于智能交通的Traffic)
  935. EM_SCENE_STANDUPDETECTION, // "StandUpDetection" 起立检测
  936. EM_SCENE_GATE, // "Gate" 卡口
  937. EM_SCENE_SDFACEDETECTION, // "SDFaceDetect" 多预置点人脸检测,配置一条规则但可以在不同预置点下生效
  938. EM_SCENE_HEAT_MAP_PLAN, // "HeatMapPlan" 球机热度图计划
  939. EM_SCENE_NUMBERSTAT_PLAN, // "NumberStatPlan" 球机客流量统计计划
  940. EM_SCENE_ATMFD, // "ATMFD"金融人脸检测,包括正常人脸、异常人脸、相邻人脸、头盔人脸等针对ATM场景特殊优化
  941. EM_SCENE_HIGHWAY, // "Highway" 高速交通事件检测
  942. EM_SCENE_CITY, // "City" 城市交通事件检测
  943. EM_SCENE_LETRACK, // "LeTrack" 民用简易跟踪
  944. EM_SCENE_SCR, // "SCR"打靶相机
  945. EM_SCENE_STEREO_VISION, // "StereoVision"立体视觉(双目)
  946. EM_SCENE_HUMANDETECT, // "HumanDetect"人体检测
  947. EM_SCENE_FACEANALYSIS, // "FaceAnalysis" 人脸分析(同时支持人脸检测、人脸识别、人脸属性等综合型业务)
  948. EM_SCENE_XRAY_DETECTION, // "XRayDetection" X光检测
  949. EM_SCENE_STEREO_NUMBER, // "StereoNumber" 双目相机客流量统计
  950. EM_SCENE_CROWD_DISTRI_MAP, // "CrowdDistriMap" 人群分布图
  951. EM_SCENE_OBJECTDETECT, // "ObjectDetect" 目标检测(含人机非等物体)
  952. EM_SCENE_FACEATTRIBUTE, // "FaceAttribute" IVSS人脸检测
  953. EM_SCENE_FACECOMPARE, // "FaceCompare" IVSS人脸识别
  954. EM_SCENE_STEREO_BEHAVIOR, // "StereoBehavior" 立体行为分析(典型场景ATM舱)
  955. EM_SCENE_INTELLICITYMANAGER,// "IntelliCityMgr" 智慧城管
  956. EM_SCENE_PROTECTIVECABIN, // "ProtectiveCabin" 防护舱(ATM舱内)
  957. EM_SCENE_AIRPLANEDETECT, // "AirplaneDetect" 飞机行为检测
  958. EM_SCENE_CROWDPOSTURE, // "CrowdPosture" 人群态势(人群分布图服务)
  959. EM_SCENE_PHONECALLDETECT, // "PhoneCallDetect" 打电话检测
  960. EM_SCENE_SMOKEDETECTION, // "SmokeDetection" 烟雾检测
  961. EM_SCENE_BOATDETECTION, // "BoatDetection" 船只检测
  962. EM_SCENE_SMOKINGDETECT, // "SmokingDetect" 吸烟检测
  963. EM_SCENE_WATERMONITOR, // "WaterMonitor" 水利监测
  964. EM_SCENE_GENERATEGRAPHDETECTION, // GenerateGraphDetection 生成图规则
  965. EM_SCENE_TRAFFIC_PARK, // "TrafficPark" 交通停车
  966. EM_SCENE_OPERATEMONITOR, // "OperateMonitor" 作业检测
  967. EM_SCENE_INTELLI_RETAIL, // "IntelliRetail" 智慧零售大类
  968. EM_SCENE_CLASSROOM_ANALYSE, // "ClassroomAnalyse" 教育智慧课堂
  969. }EM_SCENE_TYPE;
  970. /************************************************************************
  971. ** fAnalyzerData回调函数dwDataType类型定义
  972. ***********************************************************************/
  973. #define TYPE_CB_VIDEOSTAT 0x1000000 // 回调解析视频信息摘要类型,对应结构体为CFG_VIDEOSATA_SUMMARY_INFO
  974. #define TYPE_CB_ANARULES 0x1000001 // 回调解析视频输入通道对应的所有事件规则类型,对应结构体为CFG_ANALYSERULES_INFO
  975. #define TYPE_CB_VIDEOSYNOPSIS 0x1000002 // 回调解析浓缩视频的智能帧,对应结构体DH_MSG_OBJECT
  976. #define TYPE_CB_TRAFFICFLOWINFO 0x1000003 // 回调解析交通流量信息,对应结构体DEV_EVENT_TRAFFIC_FLOWSTAT_INFO
  977. #define TYPE_CB_TRAFFICFLOWRULE 0x1000004 // 回调解析交通流量规则信息,对应结构体 CFG_TRAFFIC_FLOWSTAT_INFO
  978. #define TYPE_CB_VIDEOSYNOPSIS_RULE 0x1000005 // 回调解析浓缩视频的规则信息,对应结构体 NET_VIDEOSYNOPSISRULE_INFO
  979. /************************************************************************
  980. ** 配置信息(每个结构体都有能力信息,以区分不同设备程序版本和不同型号设备)
  981. ***********************************************************************/
  982. // 协议版本信息
  983. enum
  984. {
  985. CFG_PROTOCOL_VERSION_2 = 2, // 二代协议
  986. CFG_PROTOCOL_VERSION_3 = 3 // 三代协议
  987. };
  988. // 视频输入通道
  989. struct CFG_RemoteDeviceVideoInput
  990. {
  991. BOOL bEnable;
  992. char szName[MAX_DEVICE_NAME_LEN];
  993. char szControlID[MAX_DEV_ID_LEN_EX];
  994. char szMainUrl[MAX_PATH]; // 主码流url地址
  995. char szExtraUrl[MAX_PATH]; // 辅码流url地址
  996. int nServiceType; // 服务类型, 0-TCP, 1-UDP, 2-MCAST, -1-AUTO
  997. };
  998. // 远程设备
  999. struct AV_CFG_RemoteDevice
  1000. {
  1001. AV_int32 nStructSize;
  1002. AV_BOOL bEnable; // 使能
  1003. char szID[AV_CFG_Device_ID_Len]; // 设备ID
  1004. char szIP[AV_CFG_IP_Address_Len]; // 设备IP
  1005. AV_int32 nPort; // 端口
  1006. char szProtocol[AV_CFG_Protocol_Len];// 协议类型
  1007. char szUser[AV_CFG_User_Name_Len]; // 用户名
  1008. char szPassword[AV_CFG_Password_Len];// 密码
  1009. char szSerial[AV_CFG_Serial_Len]; // 设备序列号
  1010. char szDevClass[AV_CFG_Device_Class_Len];// 设备类型
  1011. char szDevType[AV_CFG_Device_Type_Len]; // 设备型号
  1012. char szName[AV_CFG_Device_Name_Len]; // 机器名称
  1013. char szAddress[AV_CFG_Address_Len]; // 机器部署地点
  1014. char szGroup[AV_CFG_Group_Name_Len]; // 机器分组
  1015. AV_int32 nDefinition; // 清晰度, 0-标清, 1-高清
  1016. AV_int32 nVideoChannel; // 视频输入通道数
  1017. AV_int32 nAudioChannel; // 音频输入通道数
  1018. AV_int32 nRtspPort; // Rtsp端口号
  1019. char szVendor[MAX_PATH]; // 设备接入类型
  1020. CFG_RemoteDeviceVideoInput *pVideoInput; // 视频输入通道,用户申请nMaxVideoInputs个CFG_RemoteDeviceVideoInput空间
  1021. int nMaxVideoInputs;
  1022. int nRetVideoInputs;
  1023. int nHttpPort; // http端口号
  1024. // 以下3项为国际接入方式相关
  1025. AV_BOOL bGB28181; // 是否有国际接入方式
  1026. int nDevLocalPort; // 设备本地端口
  1027. char szDeviceNo[AV_CFG_DeviceNo_Len];// 设备编号
  1028. int nLoginType; // 登录方式 0 : TCP直连(默认方式) 6 : 主动注册 7 : P2P方式,此方式时通过SerialNo与设备通过P2P连接
  1029. };
  1030. //-----------------------------图像通道属性-------------------------------
  1031. // 画质
  1032. typedef enum tagCFG_IMAGE_QUALITY
  1033. {
  1034. IMAGE_QUALITY_Q10 = 1, // 图像质量10%
  1035. IMAGE_QUALITY_Q30, // 图像质量30%
  1036. IMAGE_QUALITY_Q50, // 图像质量50%
  1037. IMAGE_QUALITY_Q60, // 图像质量60%
  1038. IMAGE_QUALITY_Q80, // 图像质量80%
  1039. IMAGE_QUALITY_Q100, // 图像质量100%
  1040. } CFG_IMAGE_QUALITY;
  1041. // 视频压缩格式
  1042. typedef enum tagCFG_VIDEO_COMPRESSION
  1043. {
  1044. VIDEO_FORMAT_MPEG4, // MPEG4
  1045. VIDEO_FORMAT_MS_MPEG4, // MS-MPEG4
  1046. VIDEO_FORMAT_MPEG2, // MPEG2
  1047. VIDEO_FORMAT_MPEG1, // MPEG1
  1048. VIDEO_FORMAT_H263, // H.263
  1049. VIDEO_FORMAT_MJPG, // MJPG
  1050. VIDEO_FORMAT_FCC_MPEG4, // FCC-MPEG4
  1051. VIDEO_FORMAT_H264, // H.264
  1052. VIDEO_FORMAT_H265, // H.265
  1053. VIDEO_FORMAT_SVAC, // SVAC
  1054. } CFG_VIDEO_COMPRESSION;
  1055. // 音频编码模式
  1056. typedef enum tatCFG_AUDIO_FORAMT
  1057. {
  1058. AUDIO_FORMAT_G711A, // G711a
  1059. AUDIO_FORMAT_PCM, // PCM
  1060. AUDIO_FORMAT_G711U, // G711u
  1061. AUDIO_FORMAT_AMR, // AMR
  1062. AUDIO_FORMAT_AAC, // AAC
  1063. } CFG_AUDIO_FORMAT;
  1064. // 码流控制模式
  1065. typedef enum tagCFG_BITRATE_CONTROL
  1066. {
  1067. BITRATE_CBR, // 固定码流
  1068. BITRATE_VBR, // 可变码流
  1069. } CFG_BITRATE_CONTROL;
  1070. // H264 编码级别
  1071. typedef enum tagCFG_H264_PROFILE_RANK
  1072. {
  1073. PROFILE_BASELINE = 1, // 提供I/P帧,仅支持progressive(逐行扫描)和CAVLC
  1074. PROFILE_MAIN, // 提供I/P/B帧,支持progressiv和interlaced,提供CAVLC或CABAC
  1075. PROFILE_EXTENDED, // 提供I/P/B/SP/SI帧,仅支持progressive(逐行扫描)和CAVLC
  1076. PROFILE_HIGH, // 即FRExt,Main_Profile基础上新增:8x8 intra prediction(8x8 帧内预测), custom
  1077. // quant(自定义量化), lossless video coding(无损视频编码), 更多的yuv格式
  1078. }CFG_H264_PROFILE_RANK;
  1079. // 分辨率枚举
  1080. typedef enum tagCFG_CAPTURE_SIZE
  1081. {
  1082. IMAGE_SIZE_D1, // 704*576(PAL) 704*480(NTSC)
  1083. IMAGE_SIZE_HD1, // 352*576(PAL) 352*480(NTSC)
  1084. IMAGE_SIZE_BCIF, // 704*288(PAL) 704*240(NTSC)
  1085. IMAGE_SIZE_CIF, // 352*288(PAL) 352*240(NTSC)
  1086. IMAGE_SIZE_QCIF, // 176*144(PAL) 176*120(NTSC)
  1087. IMAGE_SIZE_VGA, // 640*480
  1088. IMAGE_SIZE_QVGA, // 320*240
  1089. IMAGE_SIZE_SVCD, // 480*480
  1090. IMAGE_SIZE_QQVGA, // 160*128
  1091. IMAGE_SIZE_SVGA, // 800*592
  1092. IMAGE_SIZE_XVGA, // 1024*768
  1093. IMAGE_SIZE_WXGA, // 1280*800
  1094. IMAGE_SIZE_SXGA, // 1280*1024
  1095. IMAGE_SIZE_WSXGA, // 1600*1024
  1096. IMAGE_SIZE_UXGA, // 1600*1200
  1097. IMAGE_SIZE_WUXGA, // 1920*1200
  1098. IMAGE_SIZE_LTF, // 240*192
  1099. IMAGE_SIZE_720, // 1280*720
  1100. IMAGE_SIZE_1080, // 1920*1080
  1101. IMAGE_SIZE_1_3M, // 1280*960
  1102. IMAGE_SIZE_2M, // 1872*1408
  1103. IMAGE_SIZE_5M, // 3744*1408
  1104. IMAGE_SIZE_3M, // 2048*1536
  1105. IMAGE_SIZE_5_0M, // 2432*2050
  1106. IMAGE_SIZE_1_2M, // 1216*1024
  1107. IMAGE_SIZE_1408_1024, // 1408*1024
  1108. IMAGE_SIZE_8M, // 3296*2472
  1109. IMAGE_SIZE_2560_1920, // 2560*1920(5M)
  1110. IMAGE_SIZE_960H, // 960*576(PAL) 960*480(NTSC)
  1111. IMAGE_SIZE_960_720, // 960*720
  1112. IMAGE_SIZE_NHD, // 640*360
  1113. IMAGE_SIZE_QNHD, // 320*180
  1114. IMAGE_SIZE_QQNHD, // 160*90
  1115. IMAGE_SIZE_NR
  1116. } CFG_CAPTURE_SIZE;
  1117. // 视频格式
  1118. typedef struct tagCFG_VIDEO_FORMAT
  1119. {
  1120. // 能力
  1121. bool abCompression;
  1122. bool abWidth;
  1123. bool abHeight;
  1124. bool abBitRateControl;
  1125. bool abBitRate;
  1126. bool abFrameRate;
  1127. bool abIFrameInterval;
  1128. bool abImageQuality;
  1129. bool abFrameType;
  1130. bool abProfile;
  1131. // 信息
  1132. CFG_VIDEO_COMPRESSION emCompression; // 视频压缩格式
  1133. int nWidth; // 视频宽度
  1134. int nHeight; // 视频高度
  1135. CFG_BITRATE_CONTROL emBitRateControl; // 码流控制模式
  1136. int nBitRate; // 视频码流(kbps)
  1137. float nFrameRate; // 视频帧率
  1138. int nIFrameInterval; // I帧间隔(1-100),比如50表示每49个B帧或P帧,设置一个I帧。
  1139. CFG_IMAGE_QUALITY emImageQuality; // 图像质量
  1140. int nFrameType; // 打包模式,0-DHAV,1-"PS"
  1141. CFG_H264_PROFILE_RANK emProfile; // H.264编码级别
  1142. } CFG_VIDEO_FORMAT;
  1143. // 音频格式
  1144. typedef struct tagCFG_AUDIO_FORMAT
  1145. {
  1146. // 能力
  1147. bool abCompression;
  1148. bool abDepth;
  1149. bool abFrequency;
  1150. bool abMode;
  1151. bool abFrameType;
  1152. bool abPacketPeriod;
  1153. bool abChannels;
  1154. bool abMix;
  1155. // 信息
  1156. CFG_AUDIO_FORMAT emCompression; // 音频压缩模式
  1157. AV_int32 nDepth; // 音频采样深度
  1158. AV_int32 nFrequency; // 音频采样频率
  1159. AV_int32 nMode; // 音频编码模式
  1160. AV_int32 nFrameType; // 音频打包模式, 0-DHAV, 1-PS
  1161. AV_int32 nPacketPeriod; // 音频打包周期, ms
  1162. AV_int32 nChannelsNum; // 视频通道的伴音通道号列表个数
  1163. AV_uint32 arrChannels[MAX_AUDIOCHANNELS_ARRAY_NUM]; // 视频通道的伴音通道号列表
  1164. BOOL bMix; // 是否同源
  1165. } CFG_AUDIO_ENCODE_FORMAT;
  1166. // 视频编码参数
  1167. typedef struct tagCFG_VIDEOENC_OPT
  1168. {
  1169. // 能力
  1170. bool abVideoEnable;
  1171. bool abAudioEnable;
  1172. bool abSnapEnable;
  1173. bool abAudioAdd; // 音频叠加能力
  1174. bool abAudioFormat;
  1175. // 信息
  1176. BOOL bVideoEnable; // 视频使能
  1177. CFG_VIDEO_FORMAT stuVideoFormat; // 视频格式
  1178. BOOL bAudioEnable; // 音频使能
  1179. BOOL bSnapEnable; // 定时抓图使能
  1180. BOOL bAudioAddEnable; // 音频叠加使能
  1181. CFG_AUDIO_ENCODE_FORMAT stuAudioFormat; // 音频格式
  1182. } CFG_VIDEOENC_OPT;
  1183. // RGBA信息
  1184. typedef struct tagCFG_RGBA
  1185. {
  1186. int nRed;
  1187. int nGreen;
  1188. int nBlue;
  1189. int nAlpha;
  1190. } CFG_RGBA;
  1191. // 区域信息
  1192. typedef struct tagCFG_RECT
  1193. {
  1194. int nLeft;
  1195. int nTop;
  1196. int nRight;
  1197. int nBottom;
  1198. } CFG_RECT;
  1199. // 区域顶点信息
  1200. typedef struct tagCFG_POLYGON
  1201. {
  1202. int nX; //0~8191
  1203. int nY;
  1204. } CFG_POLYGON;
  1205. // 区域信息
  1206. typedef struct tagCFG_REGION
  1207. {
  1208. int nPointNum;
  1209. CFG_POLYGON stuPolygon[MAX_POLYGON_NUM];
  1210. }CFG_REGION;
  1211. // 折线的端点信息
  1212. typedef struct tagCFG_POLYLINE
  1213. {
  1214. int nX; //0~8191
  1215. int nY;
  1216. } CFG_POLYLINE;
  1217. typedef enum tagCFG_FLOWSTAT_DIRECTION
  1218. {
  1219. CFG_DRIVING_DIR_APPROACH , //上行,即车辆离设备部署点越来越近
  1220. CFG_DRIVING_DIR_LEAVE , //下行,即车辆离设备部署点越来越远
  1221. }CFG_FLOWSTAT_DIRECTION;
  1222. #define CFG_FLOWSTAT_ADDR_NAME 16 //上下行地点名长
  1223. //车辆流量统计车道方向信息
  1224. typedef struct tagCFG_TRAFFIC_FLOWSTAT_DIR_INFO
  1225. {
  1226. CFG_FLOWSTAT_DIRECTION emDrivingDir; //行驶方向
  1227. char szUpGoing[CFG_FLOWSTAT_ADDR_NAME]; //上行地点
  1228. char szDownGoing[CFG_FLOWSTAT_ADDR_NAME]; //下行地点
  1229. }CFG_TRAFFIC_FLOWSTAT_DIR_INFO;
  1230. // 道路等级
  1231. typedef enum tagEM_LANE_RANK_TYPE
  1232. {
  1233. EM_LANE_RANK_UNKNOWN, // 未知类型
  1234. EM_LANE_RANK_RAPID, // 快速路
  1235. EM_LANE_RANK_TRUNK, // 主干路
  1236. EM_LANE_RANK_SUBTRUNK, // 次干路
  1237. EM_LANE_RANK_BRANCH, // 支路
  1238. } EM_LANE_RANK_TYPE;
  1239. // 车道信息
  1240. typedef struct tagCFG_LANE
  1241. {
  1242. int nLaneId; // 车道编号
  1243. int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
  1244. CFG_POLYLINE stuLeftLine[MAX_POLYLINE_NUM]; // 左车道线,车道线的方向表示车道方向,沿车道方向左边的称为左车道线
  1245. int nLeftLineNum; // 左车道线顶点数
  1246. CFG_POLYLINE stuRightLine[MAX_POLYLINE_NUM]; // 右车道线,车道线的方向表示车道方向,沿车道方向右边的称为右车道线
  1247. int nRightLineNum; // 右车道线顶点数
  1248. int nLeftLineType; // 左车道线属性,1-表示白实线,2- 白虚线,3- 黄线
  1249. int nRightLineType; // 右车道线属性,1-表示白实线,2- 白虚线,3- 黄线
  1250. BOOL bDriveDirectionEnable; // 车道行驶方向使能
  1251. int nDriveDirectionNum; // 车道行驶方向数
  1252. char szDriveDirection[MAX_LIGHT_DIRECTION][MAX_NAME_LEN]; // 车道行驶方向,"Straight" 直行,"TurnLeft" 左转,"TurnRight" 右转,"U-Turn":掉头
  1253. int nStopLineNum; // 车道对应停止线顶点数
  1254. CFG_POLYLINE stuStopLine[MAX_POLYLINE_NUM]; // 车道对应停止线
  1255. int nTrafficLightNumber; // 车道对应的红绿灯组编号
  1256. bool abDetectLine; // 对应能力集
  1257. bool abPreLine;
  1258. bool abPostLine;
  1259. BYTE byReserved[1];
  1260. int nDetectLine;
  1261. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 车道对应的检测线
  1262. int nPreLine;
  1263. CFG_POLYLINE stuPreLine[MAX_POLYLINE_NUM]; // 车道对应的前置线
  1264. int nPostLine;
  1265. CFG_POLYLINE stuPostLine[MAX_POLYLINE_NUM]; // 车道对应的后置线
  1266. CFG_TRAFFIC_FLOWSTAT_DIR_INFO stuTrafficFlowDir; // 车道流量信息
  1267. EM_LANE_RANK_TYPE emRankType; // 道路等级,用于车流量统计上报交通状态
  1268. }CFG_LANE;
  1269. // 交通灯属性
  1270. typedef struct tagCFG_LIGHTATTRIBUTE
  1271. {
  1272. BOOL bEnable; // 当前交通灯是否有效,与车辆通行无关的交通需要设置无效
  1273. int nTypeNum;
  1274. char szLightType[MAX_LIGHT_TYPE][MAX_NAME_LEN]; // 当前交通灯显现内容(包括:红-Red,黄-Yellow,绿-Green,倒计时-Countdown),如某交通灯可以显示红黄绿三种颜色,某交通灯只显示倒计时
  1275. int nDirectionNum;
  1276. char szDirection[MAX_LIGHT_DIRECTION][MAX_NAME_LEN]; // 交通灯指示的行车方向,"Straight": 直行,"TurnLeft":左转,"TurnRight":右转,"U-Turn": 掉头
  1277. int nYellowTime; // 黄灯亮时间
  1278. }CFG_LIGHTATTRIBUTE;
  1279. // 交通灯组配置信息
  1280. typedef struct tagCFG_LIGHTGROUPS
  1281. {
  1282. int nLightGroupId; // 灯组编号
  1283. CFG_RECT stuLightLocation; // 灯组坐标
  1284. int nDirection; // 灯组的方向,1- 灯组水平向,2- 灯组垂直向
  1285. BOOL bExternalDetection; // 是否为外接红绿灯信号,当外接红绿灯时,以外界信号为判断依据。外界信号每次跳变时通知
  1286. BOOL bSwingDetection; // 是否支持自适应灯组摇摆检测,在风吹或者容易震动的场景下,位置会进行一定的浮动偏差。如果由算法自行检测,会增加检测时间
  1287. int nLightNum; // 灯组中交通灯的数量
  1288. CFG_LIGHTATTRIBUTE stuLightAtrributes[MAX_LIGHT_NUM]; // 灯组中各交通灯的属性
  1289. }CFG_LIGHTGROUPS;
  1290. enum EM_STAFF_TYPE
  1291. {
  1292. EM_STAFF_TYPE_ERR,
  1293. EM_STAFF_TYPE_HORIZONTAL, // "Horizontal" 水平线段
  1294. EM_STAFF_TYPE_VERTICAL, // "Vertical" 垂直线段
  1295. EM_STAFF_TYPE_ANY, // "Any" 任意线段
  1296. EM_STAFF_TYPE_CROSS, // "Cross" 垂直面交线段
  1297. };
  1298. enum EM_CALIBRATEAREA_TYPE
  1299. {
  1300. EM_CALIBRATEAREA_TYPE_ERR,
  1301. EM_CALIBRATEAREA_TYPE_GROUD, // "Groud" : 地面,需要N条竖直线段+M条水平线段((N=3,M=1);(N=2,M=2);今后扩展)。
  1302. EM_CALIBRATEAREA_TYPE_HORIZONTAL, // "Horizontal" : 水平面,需要水平面上一点到地面点的投影垂直线段。
  1303. EM_CALIBRATEAREA_TYPE_VERTICAL, // "Vertical" : 垂直面,需要垂直面与地面的交线。
  1304. EM_CALIBRATEAREA_TYPE_ANY, // "Any" 任意平面,N条竖直线段,及每条长度(N=3,及今后扩展)。
  1305. };
  1306. // 特殊区域的属性类型
  1307. enum EM_SEPCIALREGION_PROPERTY_TYPE
  1308. {
  1309. EM_SEPCIALREGION_PROPERTY_TYPE_HIGHLIGHT = 1, // 高亮,键盘检测区域具有此特性
  1310. EM_SEPCIALREGION_PROPERTY_TYPE_REGULARBLINK, // 规律的闪烁,插卡区域具有此特性
  1311. EM_SEPCIALREGION_PROPERTY_TYPE_IREGULARBLINK, // 不规律的闪烁,屏幕区域具有此特性
  1312. EM_SEPCIALREGION_PROPERTY_TYPE_NUM,
  1313. };
  1314. // 人脸检测类型
  1315. enum EM_FACEDETECTION_TYPE
  1316. {
  1317. EM_FACEDETECTION_TYPE_ERR,
  1318. EM_FACEDETECTION_TYPE_SMALLFACE, //小脸类型,人脸在视频中的比重大概17%
  1319. EM_FACEDETECTION_TYPE_LARGEFACE, //大脸类型,人脸在视频中的比重大概33%
  1320. EM_FACEDETECTION_TYPE_BOTH, //检测类型
  1321. };
  1322. typedef struct tagCFG_STAFF
  1323. {
  1324. CFG_POLYLINE stuStartLocation; // 起始坐标点
  1325. CFG_POLYLINE stuEndLocation; // 终止坐标点
  1326. float nLenth; // 实际长度,单位米
  1327. EM_STAFF_TYPE emType; // 标尺类型
  1328. }CFG_STAFF;
  1329. // Size
  1330. typedef struct tagCFG_SIZE
  1331. {
  1332. union
  1333. {
  1334. float nWidth; // 宽
  1335. float nArea; // 面积
  1336. };
  1337. float nHeight; // 高
  1338. } CFG_SIZE;
  1339. // 遮挡信息
  1340. typedef struct tagCFG_COVER_INFO
  1341. {
  1342. // 能力
  1343. bool abBlockType;
  1344. bool abEncodeBlend;
  1345. bool abPreviewBlend;
  1346. // 信息
  1347. CFG_RECT stuRect; // 覆盖的区域坐标
  1348. CFG_RGBA stuColor; // 覆盖的颜色
  1349. int nBlockType; // 覆盖方式;0-黑块,1-马赛克
  1350. int nEncodeBlend; // 编码级遮挡;1-生效,0-不生效
  1351. int nPreviewBlend; // 预览遮挡;1-生效,0-不生效
  1352. } CFG_COVER_INFO;
  1353. // 多区域遮挡配置
  1354. typedef struct tagCFG_VIDEO_COVER
  1355. {
  1356. int nTotalBlocks; // 支持的遮挡块数
  1357. int nCurBlocks; // 已设置的块数
  1358. CFG_COVER_INFO stuCoverBlock[MAX_VIDEO_COVER_NUM]; // 覆盖的区域
  1359. } CFG_VIDEO_COVER;
  1360. // OSD信息
  1361. typedef struct tagCFG_OSD_INFO
  1362. {
  1363. // 能力
  1364. bool abShowEnable;
  1365. // 信息
  1366. CFG_RGBA stuFrontColor; // 前景颜色
  1367. CFG_RGBA stuBackColor; // 背景颜色
  1368. CFG_RECT stuRect; // 矩形区域
  1369. BOOL bShowEnable; // 显示使能
  1370. } CFG_OSD_INFO;
  1371. // 画面颜色属性
  1372. typedef struct tagCFG_COLOR_INFO
  1373. {
  1374. int nBrightness; // 亮度(0-100)
  1375. int nContrast; // 对比度(0-100)
  1376. int nSaturation; // 饱和度(0-100)
  1377. int nHue; // 色度(0-100)
  1378. int nGain; // 增益(0-100)
  1379. BOOL bGainEn; // 增益使能
  1380. } CFG_COLOR_INFO;
  1381. // 图像通道属性信息
  1382. typedef struct tagCFG_ENCODE_INFO
  1383. {
  1384. int nChannelID; // 通道号(0开始),获取时,该字段有效;设置时,该字段无效
  1385. char szChnName[MAX_CHANNELNAME_LEN]; // 无效字段
  1386. CFG_VIDEOENC_OPT stuMainStream[MAX_VIDEOSTREAM_NUM]; // 主码流,0-普通录像,1-动检录像,2-报警录像
  1387. int nValidCountMainStream; // 主码流数组中有效的个数
  1388. CFG_VIDEOENC_OPT stuExtraStream[MAX_VIDEOSTREAM_NUM];// 辅码流,0-辅码流1,1-辅码流2,2-辅码流3
  1389. int nValidCountExtraStream; // 辅码流数组中有效的个数
  1390. CFG_VIDEOENC_OPT stuSnapFormat[MAX_VIDEOSTREAM_NUM]; // 抓图,0-普通抓图,1-动检抓图,2-报警抓图
  1391. int nValidCountSnapFormat; // 抓图数组中有效的个数
  1392. DWORD dwCoverAbilityMask; // 无效字段
  1393. DWORD dwCoverEnableMask; // 无效字段
  1394. CFG_VIDEO_COVER stuVideoCover; // 无效字段
  1395. CFG_OSD_INFO stuChnTitle; // 无效字段
  1396. CFG_OSD_INFO stuTimeTitle; // 无效字段
  1397. CFG_COLOR_INFO stuVideoColor; // 无效字段
  1398. CFG_AUDIO_FORMAT emAudioFormat; // 无效字段
  1399. int nProtocolVer; // 协议版本号, 只读,获取时,该字段有效;设置时,该字段无效
  1400. } CFG_ENCODE_INFO;
  1401. // 视频输入前端能力集
  1402. typedef struct tagCFG_VIDEO_ENCODECAP
  1403. {
  1404. int nMaxCIFFrame; // CIF P帧最大值 单位Kbits, 默认值40
  1405. int nMinCIFFrame; // CIF P帧最小值 单位Kbits, 默认值7
  1406. }CFG_VIDEO_ENCODECAP;
  1407. // 多画面预览工作模式
  1408. typedef enum tagCFG_EM_PREVIEW_MODE
  1409. {
  1410. CFG_EM_PREVIEW_MODE_UNKNOWN = 0, //
  1411. CFG_EM_PREVIEW_MODE_SNAPSHOT, // 快照方式
  1412. CFG_EM_PREVIEW_MODE_SPLITENCODE, // 分割编码方式
  1413. CFG_EM_PREVIEW_MODE_SPLITSNAP, // 分割快照方式
  1414. }CFG_EM_PREVIEW_MODE;
  1415. #define MAX_PREVIEW_MODE_SPLIT_TYPE_NUM 8 // 最大多画面预览窗口分割种类数
  1416. // 编码能力集
  1417. typedef struct tagCFG_ENCODECAP
  1418. {
  1419. int nChannelNum; // 实际通道数
  1420. CFG_VIDEO_ENCODECAP stuVideoEncodeCap[MAX_VIDEO_CHANNEL_NUM]; // 各通道编码能力信息数组
  1421. CFG_EM_PREVIEW_MODE emPreviewMode; // 多画面预览工作模式
  1422. int nSplitModeNum; // 有效的多画面预览窗口分割种类数
  1423. int anSplitMode[MAX_PREVIEW_MODE_SPLIT_TYPE_NUM];// 多画面预览窗口分割数信息, 可以为1, 4, 6, 8, 9, 16, 25, 36...
  1424. // -1表示默认[1, 4, 8, 9, 16, …模拟通道数量], 为小于模拟通道数的N的平方数, 如果模拟通道大于8, 也包含8
  1425. }CFG_ENCODECAP;
  1426. // 水印配置
  1427. typedef struct tagCFG_WATERMARK_INFO
  1428. {
  1429. int nChannelID; // 通道号(0开始)
  1430. BOOL bEnable; // 使能开关
  1431. int nStreamType; // 码流类型(1~n),0-所有码流
  1432. int nDataType; // 数据类型,1-文字,2-图片
  1433. char pData[MAX_WATERMARK_LEN]; // 字符串水印数据
  1434. } CFG_WATERMARK_INFO;
  1435. // dsp配置
  1436. typedef struct tagCFG_DSPENCODECAP_INFO{
  1437. DWORD dwVideoStandardMask; // 视频制式掩码,按位表示设备能够支持的视频制式
  1438. DWORD dwImageSizeMask; // 分辨率掩码,按位表示设备能够支持的分辨率
  1439. DWORD dwEncodeModeMask; // 编码模式掩码,按位表示设备能够支持的编码模式
  1440. DWORD dwStreamCap; // 按位表示设备支持的多媒体功能,
  1441. // 第一位表示支持主码流
  1442. // 第二位表示支持辅码流1
  1443. // 第三位表示支持辅码流2
  1444. // 第五位表示支持jpg抓图
  1445. DWORD dwImageSizeMask_Assi[32];// 表示主码流为各分辨率时,支持的辅码流分辨率掩码。
  1446. DWORD dwMaxEncodePower; // DSP支持的最高编码能力
  1447. WORD wMaxSupportChannel; // 每块DSP支持最多输入视频通道数
  1448. WORD wChannelMaxSetSync; // DSP每通道的最大编码设置是否同步;0:不同步,1:同步
  1449. BYTE bMaxFrameOfImageSize[256];// 不同分辨率下的最大采集帧率,与dwVideoStandardMask按位对应
  1450. BYTE bEncodeCap; // 标志,配置时要求符合下面条件,否则配置不能生效;
  1451. // 0:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
  1452. // 1:主码流的编码能力+辅码流的编码能力 <= 设备的编码能力,
  1453. // 辅码流的编码能力 <= 主码流的编码能力,
  1454. // 辅码流的分辨率 <= 主码流的分辨率,
  1455. // 主码流和辅码流的帧率 <= 前端视频采集帧率
  1456. // 2:N5的计算方法
  1457. // 辅码流的分辨率 <= 主码流的分辨率
  1458. // 查询支持的分辨率和相应最大帧率
  1459. BYTE byResolutionNum; // bResolution的长度
  1460. BYTE byResolutionNum_1; // bResolution_1的长度
  1461. BYTE byReserved;
  1462. BYTE byResolution[256]; //主码流,按照分辨率进行索引,如果支持该分辨率,则bResolution[n]等于支持的最大帧率.否则为0.
  1463. BYTE byResolution_1[256]; //辅助码流1,同主码流说明.
  1464. char reserved[28];
  1465. BYTE byImageSize[256]; // 支持的分辨率数组,参见enum CAPTURE_SIZE
  1466. BYTE byImageSize_Assi[256][256]; //表示主码流为各分辨率时,支持的辅码流分辨率,数组下标表示主码流所支持的分辨率值。
  1467. }CFG_DSPENCODECAP_INFO;
  1468. // 云台动作
  1469. typedef enum tagEM_PTZ_ACTION {
  1470. EM_PTZ_ACTION_UNKNOWN, // 未知
  1471. EM_PTZ_ACTION_SCAN, // 扫描
  1472. EM_PTZ_ACTION_PRESET, // 预置点
  1473. EM_PTZ_ACTION_PATTERN, // 巡迹
  1474. EM_PTZ_ACTION_TOUR, // 巡航
  1475. } EM_PTZ_ACTION;
  1476. //-------------------------------录象配置---------------------------------
  1477. // 时间段信息
  1478. typedef struct tagCFG_TIME_SECTION
  1479. {
  1480. DWORD dwRecordMask; // 录像掩码,按位分别为动态检测录像、报警录像、定时录像、Bit3~Bit15保留、Bit16动态检测抓图、Bit17报警抓图、Bit18定时抓图
  1481. int nBeginHour;
  1482. int nBeginMin;
  1483. int nBeginSec;
  1484. int nEndHour;
  1485. int nEndMin;
  1486. int nEndSec;
  1487. } CFG_TIME_SECTION;
  1488. // 时间表信息
  1489. typedef struct tagCFG_TIME_SCHEDULE
  1490. {
  1491. BOOL bEnableHoliday; // 是否支持节假日配置,默认为不支持,除非获取配置后返回为TRUE,不要使能假日配置
  1492. CFG_TIME_SECTION stuTimeSection[MAX_TIME_SCHEDULE_NUM][MAX_REC_TSECT]; // 第一维前7个元素对应每周7天,第8个元素对应节假日,每天最多6个时间段
  1493. } CFG_TIME_SCHEDULE;
  1494. // 定时录像配置信息
  1495. typedef struct tagCFG_RECORD_INFO
  1496. {
  1497. int nChannelID; // 通道号(0开始)
  1498. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 时间表
  1499. int nPreRecTime; // 预录时间,为零时表示关闭(0~300)
  1500. BOOL bRedundancyEn; // 录像冗余开关
  1501. int nStreamType; // 0-主码流,1-辅码流1,2-辅码流2,3-辅码流3
  1502. int nProtocolVer; // 协议版本号, 只读
  1503. // 能力
  1504. BOOL abHolidaySchedule; // 为true时有假日配置信息,bHolidayEn、stuHolTimeSection才有效;
  1505. BOOL bHolidayEn; // 假日录像使能TRUE:使能,FALSE:未使能
  1506. CFG_TIME_SECTION stuHolTimeSection[MAX_REC_TSECT]; // 假日录像时间表
  1507. } CFG_RECORD_INFO;
  1508. //-------------------------------报警配置---------------------------------
  1509. // 云台联动类型
  1510. typedef enum tagCFG_LINK_TYPE
  1511. {
  1512. LINK_TYPE_NONE, // 无联动
  1513. LINK_TYPE_PRESET, // 联动预置点
  1514. LINK_TYPE_TOUR, // 联动巡航
  1515. LINK_TYPE_PATTERN, // 联动轨迹
  1516. } CFG_LINK_TYPE;
  1517. // 联动云台信息
  1518. typedef struct tagCFG_PTZ_LINK
  1519. {
  1520. CFG_LINK_TYPE emType; // 联动类型
  1521. int nValue; // 联动取值分别对应预置点号,巡航号等等
  1522. } CFG_PTZ_LINK;
  1523. // 联动云台信息扩展
  1524. typedef struct tagCFG_PTZ_LINK_EX
  1525. {
  1526. CFG_LINK_TYPE emType; // 联动类型
  1527. int nParam1; // 联动参数1
  1528. int nParam2; // 联动参数2
  1529. int nParam3; // 联动参数3
  1530. int nChannelID; // 所联动云台通道
  1531. } CFG_PTZ_LINK_EX;
  1532. // 事件标题内容结构体
  1533. typedef struct tagCFG_EVENT_TITLE
  1534. {
  1535. char szText[MAX_CHANNELNAME_LEN];
  1536. CFG_POLYGON stuPoint; // 标题左上角坐标, 采用0-8191相对坐标系
  1537. CFG_SIZE stuSize; // 标题的宽度和高度,采用0-8191相对坐标系,某项或者两项为0表示按照字体自适应宽高
  1538. CFG_RGBA stuFrontColor; // 前景颜色
  1539. CFG_RGBA stuBackColor; // 背景颜色
  1540. } CFG_EVENT_TITLE;
  1541. // 邮件附件类型
  1542. typedef enum tagCFG_ATTACHMENT_TYPE
  1543. {
  1544. ATTACHMENT_TYPE_PIC, // 图片附件
  1545. ATTACHMENT_TYPE_VIDEO, // 视频附件
  1546. ATTACHMENT_TYPE_NUM, // 附件类型总数
  1547. } CFG_ATTACHMENT_TYPE;
  1548. // 邮件详细内容
  1549. typedef struct tagCFG_MAIL_DETAIL
  1550. {
  1551. CFG_ATTACHMENT_TYPE emAttachType; // 附件类型
  1552. int nMaxSize; // 文件大小上限,单位kB
  1553. int nMaxTimeLength; // 最大录像时间长度,单位秒,对video有效
  1554. }CFG_MAIL_DETAIL;
  1555. // 分割模式
  1556. typedef enum tagCFG_SPLITMODE
  1557. {
  1558. SPLITMODE_1 = 1, // 1画面
  1559. SPLITMODE_2 = 2, // 2画面
  1560. SPLITMODE_4 = 4, // 4画面
  1561. SPLITMODE_6 = 6, // 6画面
  1562. SPLITMODE_8 = 8, // 8画面
  1563. SPLITMODE_9 = 9, // 9画面
  1564. SPLITMODE_12 = 12, // 12画面
  1565. SPLITMODE_16 = 16, // 16画面
  1566. SPLITMODE_20 = 20, // 20画面
  1567. SPLITMODE_25 = 25, // 25画面
  1568. SPLITMODE_36 = 36, // 36画面
  1569. SPLITMODE_64 = 64, // 64画面
  1570. SPLITMODE_144 = 144, // 144画面
  1571. SPLITMODE_PIP = 1000, // 画中画分割模式基础值
  1572. SPLITMODE_PIP1 = SPLITMODE_PIP + 1, // 画中画模式, 1个全屏大画面+1个小画面窗口
  1573. SPLITMODE_PIP3 = SPLITMODE_PIP + 3, // 画中画模式, 1个全屏大画面+3个小画面窗口
  1574. SPLITMODE_FREE = SPLITMODE_PIP * 2, // 自由开窗模式,可以自由创建、关闭窗口,自由设置窗口位置和Z轴次序
  1575. SPLITMODE_COMPOSITE_1 = SPLITMODE_PIP * 3 + 1, // 融合屏成员1分割
  1576. SPLITMODE_COMPOSITE_4 = SPLITMODE_PIP * 3 + 4, // 融合屏成员4分割
  1577. SPLITMODE_3 = 10, // 3画面
  1578. SPLITMODE_3B = 11, // 3画面倒品
  1579. SPLITMODE_EOF, // 结束标识
  1580. } CFG_SPLITMODE;
  1581. // 轮巡联动配置
  1582. typedef struct tagCFG_TOURLINK
  1583. {
  1584. BOOL bEnable; // 轮巡使能
  1585. CFG_SPLITMODE emSplitMode; // 轮巡时的分割模式
  1586. int nChannels[MAX_VIDEO_CHANNEL_NUM]; // 轮巡通道号列表
  1587. int nChannelCount; // 轮巡通道数量
  1588. } CFG_TOURLINK;
  1589. // 门禁操作类型
  1590. enum EM_CFG_ACCESSCONTROLTYPE
  1591. {
  1592. EM_CFG_ACCESSCONTROLTYPE_NULL = 0, // 不做操作
  1593. EM_CFG_ACCESSCONTROLTYPE_AUTO, // 自动
  1594. EM_CFG_ACCESSCONTROLTYPE_OPEN, // 开门
  1595. EM_CFG_ACCESSCONTROLTYPE_CLOSE, // 关门
  1596. EM_CFG_ACCESSCONTROLTYPE_OPENALWAYS, // 永远开启
  1597. EM_CFG_ACCESSCONTROLTYPE_CLOSEALWAYS, // 永远关闭
  1598. };
  1599. // 门禁联动操作的组合
  1600. #define MAX_ACCESSCONTROL_NUM 8 // 最大门禁操作的组合数
  1601. // 语音呼叫发起方
  1602. typedef enum
  1603. {
  1604. EM_CALLER_DEVICE = 0, // 设备发起
  1605. }EM_CALLER_TYPE;
  1606. // 呼叫协议
  1607. typedef enum
  1608. {
  1609. EM_CALLER_PROTOCOL_CELLULAR = 0, // 手机方式
  1610. }EM_CALLER_PROTOCOL_TYPE;
  1611. // 语音呼叫联动信息
  1612. typedef struct tagCFG_TALKBACK_INFO
  1613. {
  1614. BOOL bCallEnable; // 语音呼叫使能
  1615. EM_CALLER_TYPE emCallerType; // 语音呼叫发起方
  1616. EM_CALLER_PROTOCOL_TYPE emCallerProtocol; // 语音呼叫协议
  1617. }CFG_TALKBACK_INFO;
  1618. // 电话报警中心联动信息
  1619. typedef struct tagCFG_PSTN_ALARM_SERVER
  1620. {
  1621. BOOL bNeedReport; // 是否上报至电话报警中心
  1622. int nServerCount; // 电话报警服务器个数
  1623. BYTE byDestination[MAX_PSTN_SERVER_NUM]; // 上报的报警中心下标,详见配置CFG_PSTN_ALARM_CENTER_INFO
  1624. }CFG_PSTN_ALARM_SERVER;
  1625. // 报警联动信息
  1626. typedef struct tagCFG_ALARM_MSG_HANDLE
  1627. {
  1628. //能力
  1629. bool abRecordMask;
  1630. bool abRecordEnable;
  1631. bool abRecordLatch;
  1632. bool abAlarmOutMask;
  1633. bool abAlarmOutEn;
  1634. bool abAlarmOutLatch;
  1635. bool abExAlarmOutMask;
  1636. bool abExAlarmOutEn;
  1637. bool abPtzLinkEn;
  1638. bool abTourMask;
  1639. bool abTourEnable;
  1640. bool abSnapshot;
  1641. bool abSnapshotEn;
  1642. bool abSnapshotPeriod;
  1643. bool abSnapshotTimes;
  1644. bool abTipEnable;
  1645. bool abMailEnable;
  1646. bool abMessageEnable;
  1647. bool abBeepEnable;
  1648. bool abVoiceEnable;
  1649. bool abMatrixMask;
  1650. bool abMatrixEnable;
  1651. bool abEventLatch;
  1652. bool abLogEnable;
  1653. bool abDelay;
  1654. bool abVideoMessageEn;
  1655. bool abMMSEnable;
  1656. bool abMessageToNetEn;
  1657. bool abTourSplit;
  1658. bool abSnapshotTitleEn;
  1659. bool abChannelCount;
  1660. bool abAlarmOutCount;
  1661. bool abPtzLinkEx;
  1662. bool abSnapshotTitle;
  1663. bool abMailDetail;
  1664. bool abVideoTitleEn;
  1665. bool abVideoTitle;
  1666. bool abTour;
  1667. bool abDBKeys;
  1668. bool abJpegSummary;
  1669. bool abFlashEn;
  1670. bool abFlashLatch;
  1671. //信息
  1672. int nChannelCount; // 设备的视频通道数
  1673. int nAlarmOutCount; // 设备的报警输出个数
  1674. DWORD dwRecordMask[MAX_CHANNEL_COUNT]; // 录像通道掩码(按位)
  1675. BOOL bRecordEnable; // 录像使能
  1676. int nRecordLatch; // 录像延时时间(秒)
  1677. DWORD dwAlarmOutMask[MAX_CHANNEL_COUNT]; // 报警输出通道掩码
  1678. BOOL bAlarmOutEn; // 报警输出使能
  1679. int nAlarmOutLatch; // 报警输出延时时间(秒)
  1680. DWORD dwExAlarmOutMask[MAX_CHANNEL_COUNT]; // 扩展报警输出通道掩码
  1681. BOOL bExAlarmOutEn; // 扩展报警输出使能
  1682. CFG_PTZ_LINK stuPtzLink[MAX_VIDEO_CHANNEL_NUM]; // 云台联动项
  1683. BOOL bPtzLinkEn; // 云台联动使能
  1684. DWORD dwTourMask[MAX_CHANNEL_COUNT]; // 轮询通道掩码
  1685. BOOL bTourEnable; // 轮询使能
  1686. DWORD dwSnapshot[MAX_CHANNEL_COUNT]; // 快照通道号掩码
  1687. BOOL bSnapshotEn; // 快照使能
  1688. int nSnapshotPeriod; // 连拍周期(秒)
  1689. int nSnapshotTimes; // 连拍次数
  1690. BOOL bTipEnable; // 本地消息框提示
  1691. BOOL bMailEnable; // 发送邮件,如果有图片,作为附件
  1692. BOOL bMessageEnable; // 上传到报警服务器
  1693. BOOL bBeepEnable; // 蜂鸣
  1694. BOOL bVoiceEnable; // 语音提示
  1695. DWORD dwMatrixMask[MAX_CHANNEL_COUNT]; // 联动视频矩阵通道掩码
  1696. BOOL bMatrixEnable; // 联动视频矩阵
  1697. int nEventLatch; // 联动开始延时时间(秒),0-15
  1698. BOOL bLogEnable; // 是否记录日志
  1699. int nDelay; // 设置时先延时再生效,单位为秒
  1700. BOOL bVideoMessageEn; // 叠加提示字幕到视频。叠加的字幕包括事件类型,通道号,秒计时。
  1701. BOOL bMMSEnable; // 发送彩信使能
  1702. BOOL bMessageToNetEn; // 消息上传给网络使能
  1703. int nTourSplit; // 轮巡时的分割模式 0: 1画面; 1: 8画面
  1704. BOOL bSnapshotTitleEn; // 是否叠加图片标题
  1705. int nPtzLinkExNum; // 云台配置数
  1706. CFG_PTZ_LINK_EX stuPtzLinkEx[MAX_VIDEO_CHANNEL_NUM]; // 扩展云台信息
  1707. int nSnapTitleNum; // 图片标题内容数
  1708. CFG_EVENT_TITLE stuSnapshotTitle[MAX_VIDEO_CHANNEL_NUM]; // 图片标题内容
  1709. CFG_MAIL_DETAIL stuMailDetail; // 邮件详细内容
  1710. BOOL bVideoTitleEn; // 是否叠加视频标题,主要指主码流
  1711. int nVideoTitleNum; // 视频标题内容数目
  1712. CFG_EVENT_TITLE stuVideoTitle[MAX_VIDEO_CHANNEL_NUM]; // 视频标题内容
  1713. int nTourNum; // 轮询联动数目
  1714. CFG_TOURLINK stuTour[MAX_VIDEO_CHANNEL_NUM]; // 轮询联动配置
  1715. int nDBKeysNum; // 指定数据库关键字的有效数
  1716. char szDBKeys[MAX_DBKEY_NUM][MAX_CHANNELNAME_LEN]; // 指定事件详细信息里需要写到数据库的关键字
  1717. BYTE byJpegSummary[MAX_SUMMARY_LEN]; // 叠加到JPEG图片的摘要信息
  1718. BOOL bFlashEnable; // 是否使能补光灯
  1719. int nFlashLatch; // 补光灯延时时间(秒),延时时间范围:[10,300]
  1720. bool abAudioFileName;
  1721. bool abAlarmBellEn;
  1722. bool abAccessControlEn;
  1723. bool abAccessControl;
  1724. char szAudioFileName[MAX_PATH]; // 联动语音文件绝对路径
  1725. BOOL bAlarmBellEn; // 警号使能
  1726. BOOL bAccessControlEn; // 门禁使能
  1727. DWORD dwAccessControl; // 门禁组数
  1728. EM_CFG_ACCESSCONTROLTYPE emAccessControlType[MAX_ACCESSCONTROL_NUM]; // 门禁联动操作信息
  1729. bool abTalkBack;
  1730. CFG_TALKBACK_INFO stuTalkback; // 语音呼叫联动信息
  1731. bool abPSTNAlarmServer;
  1732. CFG_PSTN_ALARM_SERVER stuPSTNAlarmServer; // 电话报警中心联动信息
  1733. CFG_TIME_SCHEDULE stuTimeSection; // 事件响应时间表
  1734. bool abAlarmBellLatch;
  1735. int nAlarmBellLatch; // 警号输出延时时间(10-300秒)
  1736. bool abAudioPlayTimes;
  1737. bool abAudioLinkTime;
  1738. UINT nAudioPlayTimes; // 联动语音播放次数
  1739. UINT nAudioLinkTime; // 联动语音播放的时间, 单位:秒
  1740. } CFG_ALARM_MSG_HANDLE;
  1741. // 报警使能控制方式枚举类型
  1742. typedef enum tagEM_CTRL_ENABLE
  1743. {
  1744. EM_CTRL_NORMAL=0, //不控制使能
  1745. EM_CTRL_ALWAYS_EN, //总是使能
  1746. EM_CTRL_ONCE_DIS, //旁路
  1747. EM_CTRL_ALWAYS_DIS, //移除
  1748. EM_CTRL_NUM //枚举类型总数
  1749. }EM_CTRL_ENABLE;
  1750. // 防区类型
  1751. typedef enum tagEM_CFG_DEFENCEAREATYPE
  1752. {
  1753. EM_CFG_DefenceAreaType_Unknown = 0, // 未知类型
  1754. EM_CFG_DefenceAreaType_InTime, // 即时防区
  1755. EM_CFG_DefenceAreaType_Delay, // 延时防区
  1756. EM_CFG_DefenceAreaType_FullDay, // 24小时防区
  1757. EM_CFG_DefenceAreaType_Follow, // 跟随防区
  1758. EM_CFG_DefenceAreaType_Medical, // 医疗紧急防区
  1759. EM_CFG_DefenceAreaType_Panic, // 恐慌防区
  1760. EM_CFG_DefenceAreaType_Fire, // 火警防区
  1761. EM_CFG_DefenceAreaType_FullDaySound, // 24小时有声防区
  1762. EM_CFG_DefenceAreaType_FullDaySlient, // 24小时无声防区
  1763. EM_CFG_DefenceAreaType_Entrance1, // 出入防区1
  1764. EM_CFG_DefenceAreaType_Entrance2, // 出入防区2
  1765. EM_CFG_DefenceAreaType_InSide, // 内部防区
  1766. EM_CFG_DefenceAreaType_OutSide, // 外部防区
  1767. EM_CFG_DefenceAreaType_PeopleDetect, // 人员检测防区
  1768. EM_CFG_DefenceAreaType_Robbery, // 匪警防区
  1769. }EM_CFG_DEFENCEAREATYPE;
  1770. // 外部报警配置
  1771. typedef struct tagCFG_ALARMIN_INFO
  1772. {
  1773. int nChannelID; // 报警通道号(0开始)
  1774. BOOL bEnable; // 使能开关
  1775. char szChnName[MAX_CHANNELNAME_LEN]; // 报警通道名称
  1776. int nAlarmType; // 报警器类型,0:常闭,1:常开
  1777. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1778. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  1779. BOOL abDevID; //
  1780. char szDevID[MAX_NAME_LEN]; // 设备ID
  1781. int nPole; // 传感器触发模式, 0:高有效,1低有效;
  1782. // 具体表现为传感器接地or电源,与nAlarmType组合使用
  1783. EM_SENSE_METHOD emSense; // 传感器感应方式
  1784. EM_CTRL_ENABLE emCtrl; // 报警使能控制方式
  1785. int nDisDelay; // 延时撤防时间,防区类型为"Delay"(延时防区)时才有效, 单位: 秒, 最大时间通过查询能力获得
  1786. // emCtrl值为EM_CTRL_NORMAL或EM_CTRL_ALWAYS_EN 时有效。
  1787. EM_CFG_DEFENCEAREATYPE emDefenceAreaType; // 防区类型, 具体支持的类型通过查询能力获得
  1788. int nEnableDelay; // 延时布防时间, 防区类型为"Delay"(延时防区)时才有效, 单位: 秒, 最大时间通过查询能力获得
  1789. int nSlot; // 根地址, -1表示无效, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推
  1790. int nLevel1; // 第一级级联地址, 表示连接在第nSlot串口上的第nLevel1个探测器或仪表, -1表示无效, 从0开始
  1791. bool abLevel2; // 表示nLevel2字段是否存在
  1792. int nLevel2; // 第二级级联地址, 表示连接在第nLevel1个的仪表上的探测器序号, -1表示无效, 从0开始
  1793. int nDoorNotClosedTimeout; // 门未关超时时间,单位为s,范围 15s-300s
  1794. } CFG_ALARMIN_INFO;
  1795. // 网络输入报警配置
  1796. typedef struct tagCFG_NETALARMIN_INFO
  1797. {
  1798. int nChannelID; // 报警通道号(0开始)
  1799. BOOL bEnable; // 使能开关
  1800. char szChnName[MAX_CHANNELNAME_LEN]; // 报警通道名称
  1801. int nAlarmType; // 报警器类型,0:常闭,1:常开
  1802. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1803. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  1804. } CFG_NETALARMIN_INFO;
  1805. // 动检支持的视频窗口配置
  1806. typedef struct tagCFG_MOTION_WINDOW
  1807. {
  1808. int nThreshold; // 面积阀值,取值[0, 100]
  1809. int nSensitive; // 灵敏度,取值[0, 100]
  1810. CFG_RECT stuWindow; // 动检窗口区域, 坐标位置取值[0, 8192)
  1811. }CFG_MOTION_WINDOW;
  1812. typedef struct tagCFG_DETECT_REGION
  1813. {
  1814. int nRegionID; // 区域ID
  1815. char szRegionName[CFG_COMMON_STRING_64]; // 动态窗口名称
  1816. int nThreshold; // 面积阀值,取值[0, 100]
  1817. int nSenseLevel; // 灵敏度1~6
  1818. int nMotionRow; // 动态检测区域的行数
  1819. int nMotionCol; // 动态检测区域的列数
  1820. BYTE byRegion[MAX_MOTION_ROW][MAX_MOTION_COL]; // 检测区域,最多32*32块区域
  1821. }CFG_DETECT_REGION;
  1822. // 动态检测报警配置
  1823. typedef struct tagCFG_MOTION_INFO
  1824. {
  1825. int nChannelID; // 报警通道号(0开始), nVersion=1时,此字段无效
  1826. BOOL bEnable; // 使能开关
  1827. int nSenseLevel; // 一代动检灵敏度1~6
  1828. int nMotionRow; // 一代动态检测区域的行数
  1829. int nMotionCol; // 一代动态检测区域的列数
  1830. BYTE byRegion[MAX_MOTION_ROW][MAX_MOTION_COL]; // 一代检测区域,最多32*32块区域
  1831. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1832. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  1833. int nVersion; // 0, 1, 由能力集确定, 只读, 等于1时以下字段有效
  1834. BOOL bSenseLevelEn; // 只读,决定nSenseLevel是否有效
  1835. BOOL bVRatioEn; // 只读,面积占用比使能, 决定nVolumeRatio是否有效
  1836. int nVolumeRatio; // 一代动检的面积占用比,1-100
  1837. BOOL bSRatioEn; // 只读,灵敏度使能,决定nSubRatio值是否有效
  1838. int nSubRatio; // 一代动检的残差阈值, 1-100
  1839. BOOL abWindow; // 此字段及以下两个字段已废弃
  1840. int nWindowCount; // 视频窗口个数
  1841. CFG_MOTION_WINDOW stuWindows[MAX_MOTION_WINDOW]; // 视频窗口数组
  1842. BOOL abDetectRegion; // 只读,1:nRegionCount,stuRegion有效
  1843. // 0:nMotionRow,nMotionCol,byRegion有效
  1844. int nRegionCount; // 三代动态检测区域个数
  1845. CFG_DETECT_REGION stuRegion[MAX_MOTION_WINDOW]; // 三代动态检测区域
  1846. } CFG_MOTION_INFO;
  1847. // 视频丢失报警配置
  1848. typedef struct tagCFG_VIDEOLOST_INFO
  1849. {
  1850. int nChannelID; // 报警通道号(0开始)
  1851. BOOL bEnable; // 使能开关
  1852. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1853. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  1854. } CFG_VIDEOLOST_INFO;
  1855. // 视频遮挡报警配置
  1856. typedef struct tagCFG_SHELTER_INFO
  1857. {
  1858. int nChannelID; // 报警通道号(0开始)
  1859. BOOL bEnable; // 使能开关
  1860. int nSenseLevel; // 灵敏度
  1861. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1862. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  1863. } CFG_SHELTER_INFO;
  1864. // 无存储设备报警配置
  1865. typedef struct tagCFG_STORAGENOEXIST_INFO
  1866. {
  1867. BOOL bEnable; // 使能开关
  1868. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1869. } CFG_STORAGENOEXIST_INFO;
  1870. // 存储设备访问出错报警配置
  1871. typedef struct tagCFG_STORAGEFAILURE_INFO
  1872. {
  1873. BOOL bEnable; // 使能开关
  1874. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1875. } CFG_STORAGEFAILURE_INFO;
  1876. // 存储设备空间不足报警配置
  1877. typedef struct tagCFG_STORAGELOWSAPCE_INFO
  1878. {
  1879. BOOL bEnable; // 使能开关
  1880. int nLowerLimit; // 硬盘剩余容量下限,百分数(0~99)
  1881. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1882. } CFG_STORAGELOWSAPCE_INFO;
  1883. // 网络断开报警配置
  1884. typedef struct tagCFG_NETABORT_INFO
  1885. {
  1886. BOOL bEnable; // 使能开关
  1887. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1888. } CFG_NETABORT_INFO;
  1889. // IP冲突报警配置
  1890. typedef struct tagCFG_IPCONFLICT_INFO
  1891. {
  1892. BOOL bEnable; // 使能开关
  1893. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1894. } CFG_IPCONFLICT_INFO;
  1895. // CLIENT_QueryNewSystemInfo 接口的命令 CFG_CAP_ALARM (获取报警能力集)对应结构体
  1896. // 传感器报警方式
  1897. typedef struct tagCFG_ALARM_SENSE_METHOD
  1898. {
  1899. int nSupportSenseMethodNum; // 支持的传感器方式数
  1900. EM_SENSE_METHOD emSupportSenseMethod[MAX_ALARM_SENSE_METHOD_NUM]; // 支持的传感器方式
  1901. }CFG_ALARM_SENSE_METHOD;
  1902. typedef struct tagCFG_CAP_ALARM_INFO
  1903. {
  1904. BOOL bAlarmPir; // 设备是否支持PIR(人体热式感应器)报警,外部报警的一种
  1905. BOOL bFlashLight; // 设备是否支持补光灯
  1906. int nDefenceAreaTypeNum; // 防区类型种类数,为0表示无此字段时报警输入不作为防区使用。
  1907. EM_CFG_DEFENCEAREATYPE emDefenceAreaType[MAX_ALARM_DEFENCE_TYPE_NUM]; // 支持防区类型
  1908. int nMaxDelay; // 延时防区的最大延时时间,单位为秒,只有支持延时防区时此字段才有效。
  1909. int nAlarmChannelNum; // 报警通道数,为了保持兼容性,此为0时表示每个通道支持所有类型的传感器
  1910. CFG_ALARM_SENSE_METHOD stuAlarmChannel[MAX_ALARM_CHANNEL_NUM]; // 报警通道集合
  1911. int nAlarmBellCount; // 警号个数
  1912. int nMaxBackupAlarmServer; // 最大备用报警中心数,无此字段时默认为0,0表示不支持备用报警中心
  1913. int nMaxPSTNAlarmServer; // 最大电话报警中心数, 无此字段时默认为0,0表示不支持电话报警中心。
  1914. }CFG_CAP_ALARM_INFO;
  1915. // 补光灯配置
  1916. typedef struct tagCFG_FLASH_LIGHT
  1917. {
  1918. BOOL bEnable; // 使能开关
  1919. int nBrightness; // 亮度 0~100
  1920. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 补光灯工作时间段
  1921. }CFG_FLASH_LIGHT;
  1922. typedef struct tagCFG_CUSTOMCASE
  1923. {
  1924. char szCaseTitle[MAX_OSD_TITLE_LEN]; // 案件名称
  1925. char szCaseContent[MAX_OSD_SUMMARY_LEN]; // 案件名称
  1926. BOOL bCaseNoOsdEn; // 案件编号叠加使能
  1927. }CFG_CUSTOMCASE;
  1928. // 时间
  1929. typedef struct tagCFG_NET_TIME
  1930. {
  1931. int nStructSize;
  1932. DWORD dwYear; // 年
  1933. DWORD dwMonth; // 月
  1934. DWORD dwDay; // 日
  1935. DWORD dwHour; // 时
  1936. DWORD dwMinute; // 分
  1937. DWORD dwSecond; // 秒
  1938. } CFG_NET_TIME;
  1939. // 司法刻录配置
  1940. typedef struct tagCFG_JUDICATURE_INFO
  1941. {
  1942. char szDiskPassword[MAX_PASSWORD_LEN]; // 光盘密码(废弃, 使用szPassword和nPasswordLen)
  1943. char szCaseNo[MAX_OSD_SUMMARY_LEN]; // 案件编号
  1944. BOOL bCaseNoOsdEn; // 案件编号叠加使能
  1945. char szCaseTitle[MAX_OSD_SUMMARY_LEN]; // 案件名称
  1946. BOOL bCaseTitleOsdEn; // 案件名称叠加使能
  1947. char szOfficer[MAX_OSD_SUMMARY_LEN]; // 办案人员
  1948. BOOL bOfficerOsdEn; // 办案人员叠加使能
  1949. char szLocation[MAX_OSD_SUMMARY_LEN]; // 办案地点
  1950. BOOL bLocationOsdEn; // 办案地点叠加使能
  1951. char szRelatedMan[MAX_OSD_SUMMARY_LEN]; // 涉案人员
  1952. BOOL bRelatedManOsdEn; // 涉案人员叠加使能
  1953. char szDiskNo[MAX_OSD_SUMMARY_LEN]; // 光盘编号
  1954. BOOL bDiskNoOsdEn; // 光盘编号叠加使能
  1955. BOOL bCustomCase; // TRUE:自定义司法案件信息,FALSE: 上边szCaseNo等字段有效
  1956. int nCustomCase; // 实际CFG_CUSTOMCASE个数
  1957. CFG_CUSTOMCASE stuCustomCases[MAX_CUSTOMCASE_NUM];// 自定义司法案件信息
  1958. BOOL bDataCheckOsdEn; // 光盘刻录数据校验配置 叠加使能
  1959. BOOL bAttachFileEn; // 附件上传使能
  1960. char szPassword[MAX_PASSWORD_LEN]; // 密码, 刻录光盘时、配置读保护密码
  1961. int nPasswordLen; // 密码长度
  1962. CFG_NET_TIME stuStartTime; // 片头信息叠加开始时间
  1963. int nPeriod; // 片头信息叠加时间长度,单位:分钟
  1964. }CFG_JUDICATURE_INFO;
  1965. // 刻录满事件配置
  1966. typedef struct tagCFG_BURNFULL_ONE
  1967. {
  1968. char szBurnDisk[MAX_NAME_LEN]; // 刻录设备
  1969. BOOL bEnable; // 使能开关
  1970. unsigned int nLowerLimit; // 光盘剩余容量下限 单位:M
  1971. BOOL bBurnStop; // 刻录停止使能
  1972. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  1973. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段
  1974. BOOL bChangeDisk; // 换盘使能
  1975. }CFG_BURNFULL_ONE;
  1976. typedef struct tagCFG_BURNFULL_INFO
  1977. {
  1978. unsigned int nBurnDev; // 实际刻录设备个数
  1979. CFG_BURNFULL_ONE stuBurns[MAX_BURNING_DEV_NUM]; // 每个元素对应一个刻录设备
  1980. }CFG_BURNFULL_INFO;
  1981. //-------------------------------抓图配置能力---------------------------------
  1982. // 抓图配置能力
  1983. typedef struct tagCFG_SNAPCAPINFO_INFO
  1984. {
  1985. int nChannelID; // 抓图通道号(0开始)
  1986. DWORD dwIMageSizeNum; // 支持的分别率信息
  1987. CFG_CAPTURE_SIZE emIMageSizeList[MAX_IMAGESIZE_NUM];
  1988. DWORD dwFramesPerSecNum; // 支持的帧率信息
  1989. int nFramesPerSecList[MAX_FPS_NUM];
  1990. DWORD dwQualityMun; // 支持的画质信息
  1991. CFG_IMAGE_QUALITY emQualityList[MAX_QUALITY_NUM];
  1992. DWORD dwMode; // 模式,按位:第一位:定时;第二位:手动。
  1993. DWORD dwFormat; // 图片格式模式,按位:第一位:bmp;第二位:jpg。
  1994. } CFG_SNAPCAPINFO_INFO;
  1995. //-------------------------------网络存储服务器配置---------------------------------
  1996. // 网络存储服务器配置
  1997. typedef struct tagCFG_CHANNEL_TIME_SECTION
  1998. {
  1999. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_NAS_TIME_SECTION];//存储时间段
  2000. } CFG_CHANNEL_TIME_SECTION;
  2001. typedef struct tagCFG_NAS_INFO
  2002. {
  2003. BOOL bEnable; // 使能开关
  2004. int nVersion; // 网络存储服务器版本0=老的FTP,1=NAS存储
  2005. int nProtocol; // 协议类型0=FTP 1=SMB
  2006. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  2007. int nPort; // 端口号
  2008. char szUserName[MAX_USERNAME_LEN]; // 帐户名
  2009. char szPassword[MAX_PASSWORD_LEN]; // 密码
  2010. char szDirectory[MAX_DIRECTORY_LEN]; // 共享的目录名
  2011. int nFileLen; // 文件长度
  2012. int nInterval; // 相邻文件时间间隔
  2013. CFG_CHANNEL_TIME_SECTION stuChnTime[MAX_VIDEO_CHANNEL_NUM]; // 存储时间段
  2014. int nChnTimeCount; // 有效的存储时间段数
  2015. } CFG_NAS_INFO;
  2016. //------------------------------云台配置--------------------------------------------
  2017. // 协议名
  2018. typedef struct tagCFG_PRONAME
  2019. {
  2020. char name[MAX_NAME_LEN]; // 协议名
  2021. } CFG_PRONAME;
  2022. // 串口基本属性
  2023. typedef struct tagCFG_COMM_PROP
  2024. {
  2025. BYTE byDataBit; // 数据位;0:5,1:6,2:7,3:8
  2026. BYTE byStopBit; // 停止位;0:1位,1:1.5位,2:2位
  2027. BYTE byParity; // 校验位;0:无校验,1:奇校验;2:偶校验
  2028. BYTE byBaudRate; // 波特率;0:300,1:600,2:1200,3:2400,4:4800,
  2029. // 5:9600,6:19200,7:38400,8:57600,9:115200
  2030. } CFG_COMM_PROP;
  2031. // 归位预置点配置
  2032. typedef struct tagCFG_PRESET_HOMING
  2033. {
  2034. int nPtzPresetId; //云台预置点编号 0~65535
  2035. //-1表示无效
  2036. int nFreeSec; //空闲的时间,单位为秒
  2037. }CFG_PRESET_HOMING;
  2038. // 云台配置
  2039. typedef struct tagCFG_PTZ_INFO
  2040. {
  2041. // 能力
  2042. bool abMartixID;
  2043. bool abCamID;
  2044. bool abPTZType;
  2045. // 信息
  2046. int nChannelID; // 通道号(0开始)
  2047. BOOL bEnable; // 使能开关
  2048. char szProName[MAX_NAME_LEN]; // 协议名称
  2049. int nDecoderAddress; // 解码器地址;0 - 255
  2050. CFG_COMM_PROP struComm;
  2051. int nMartixID; // 矩阵号
  2052. int nPTZType; // 云台类型0-兼容,本地云台 1-远程网络云台
  2053. int nCamID; // 摄像头ID
  2054. int nPort; // 使用的串口端口号
  2055. CFG_PRESET_HOMING stuPresetHoming; // 一段时间不操作云台,自动归位到某个预置点
  2056. int nControlMode; // 控制模式, 0:"RS485"串口控制(默认);1:"Coaxial" 同轴口控制
  2057. } CFG_PTZ_INFO;
  2058. //定时功能类型
  2059. typedef enum tagCFG_PTZ_FUNC_TYPE
  2060. {
  2061. FUNC_TYPE_TOUR = 0 , //巡航
  2062. FUNC_TYPE_PATTERN , //自动巡迹
  2063. FUNC_TYPE_PRE , //预置点
  2064. FUNC_TYPE_SCAN , //自动线扫
  2065. FUNC_TYPE_MAX ,
  2066. }CFG_PTZ_FUNC_TYPE;
  2067. //自动归位
  2068. typedef struct tagCFG_AUTO_HOMING
  2069. {
  2070. BOOL bEnable; // 自动归位开关
  2071. int nTime; // 空闲时间,表示空闲的时间,单位为秒
  2072. }CFG_AUTO_HOMING;
  2073. //定时动作配置
  2074. typedef struct tagCFG_PTZ_PER_AUTOMOVE_INFO
  2075. {
  2076. BOOL bEnable; // 定时动作开关标志 TRUE 开,FALSE 关
  2077. CFG_TIME_SCHEDULE stTimeSchedule; // 时间表类型
  2078. CFG_PTZ_FUNC_TYPE emFuncType; // 定时功能
  2079. int nTourId; // 巡航编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wTourMin和wTourMax
  2080. int nPatternId; // 自动巡迹编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wPatternMin和wPatternMax
  2081. int nPresetId; // 预置点编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wPresetMin和wPresetMax
  2082. int nScanId; // 自动线扫编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wAutoScanMin和wAutoScanMax
  2083. CFG_AUTO_HOMING stAutoHoming; // 自动归位,一段时间不操作云台,自动归位到该时间段内的动作
  2084. BOOL bSnapshotEnable; // 预置点快照使能,只有当emFuncType为FUNC_TYPE_PRE时才有效
  2085. int nSnapshortDelayTime; // 预置点抓拍延时时间,单位秒,只有当emFuncType为FUNC_TYPE_PRE时才有效
  2086. }CFG_PTZ_PER_AUTOMOVE_INFO;
  2087. typedef struct tagCFG_PTZ_ALL_AUTOMOVE_INFO
  2088. {
  2089. CFG_PTZ_PER_AUTOMOVE_INFO stPTZPerInfo[MAX_CONFIG_NUM]; //配置信息
  2090. int nCfgNum; //获取到的配置个数
  2091. }CFG_PTZ_ALL_AUTOMOVE_INFO;
  2092. //云台定时动作配置,注意,此结构针对设备
  2093. typedef struct tagCFG_PTZ_AUTOMOVE_INFO
  2094. {
  2095. CFG_PTZ_ALL_AUTOMOVE_INFO *pstPTZAutoConfig; //云台的配置信息
  2096. int nMaxPTZNum; //结构体申请的云台个数(对于多通道查询,申请不小于设备通数,对于单通道查询,一个就够了)
  2097. int nReturnPTZNum; //设备返回的云台个数(一般为设备通道数)
  2098. }CFG_PTZ_AUTOMOVE_INFO;
  2099. //----------------------------------视频分析设备配置------------------------------------------
  2100. // 人脸属性类型
  2101. typedef enum tagEM_FACEFEATURE_TYPE
  2102. {
  2103. EM_FACEFEATURE_UNKNOWN, // 未知
  2104. EM_FACEFEATURE_SEX, // 性别
  2105. EM_FACEFEATURE_AGE, // 年龄
  2106. EM_FACEFEATURE_EMOTION, // 表情
  2107. EM_FACEFEATURE_GLASSES, // 眼镜状态
  2108. EM_FACEFEATURE_RACE, // 人种
  2109. EM_FACEFEATURE_EYE, // 眼睛状态
  2110. EM_FACEFEATURE_MOUTH, // 嘴巴状态
  2111. EM_FACEFEATURE_MASK, // 口罩状态
  2112. EM_FACEFEATURE_BEARD, // 胡子状态
  2113. EM_FACEFEATURE_ATTRACTIVE, // 魅力值
  2114. } EM_FACEFEATURE_TYPE;
  2115. // 人数统计大类场景
  2116. typedef struct tagCFG_NUMBER_STAT_INFO
  2117. {
  2118. UINT nCameraType; // 相机类型,0:表示老单目客流 1:表示新统一单目客流 2:表示新统一双目客流
  2119. }CFG_NUMBER_STAT_INFO;
  2120. // 客流量统计
  2121. typedef struct tagCFG_NUMBERSTAT_RULE_INFO
  2122. {
  2123. UINT nMaxRules; // 支持规则的最大个数
  2124. }CFG_NUMBERSTAT_RULE_INFO;
  2125. // 排队检测
  2126. typedef struct tagCFG_QUEUEDETECTION_RULE_INFO
  2127. {
  2128. UINT nMaxRules; // 支持规则的最大个数
  2129. }CFG_QUEUEDETECTION_RULE_INFO;
  2130. // 区域内人数统计
  2131. typedef struct tagCFG_MANNUMDETECTION_RULE_INFO
  2132. {
  2133. UINT nMaxRules; // 支持规则的最大个数
  2134. }CFG_MANNUMDETECTION_RULE_INFO;
  2135. // 场景支持的规则
  2136. typedef struct
  2137. {
  2138. DWORD dwSupportedRule; // 规则类型
  2139. int nSupportedObjectTypeNum; // 支持的检测物体类型个数
  2140. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 支持的检测物体类型列表
  2141. int nSupportedActionsNum; // 支持的检测物体动作个数
  2142. char szSupportedActions[MAX_ACTION_LIST_SIZE][MAX_NAME_LEN]; // 支持的检测物体动作列表
  2143. int nSupportedDetectTypeNum; // 支持的检测类型个数
  2144. char szSupportedDetectTypes[MAX_ACTION_LIST_SIZE][MAX_NAME_LEN]; // 支持的检测类型列表
  2145. int nSupportFaceTypeNum; // 支持的人脸检测类型个数
  2146. char szSupportFaceTypes[MAX_HUMANFACE_LIST_SIZE][MAX_NAME_LEN]; // 支持的人脸检测类型列表
  2147. BOOL bTriggerPosition; // 是否支持触发报警位置
  2148. BOOL bTriggerTrack; // 是否支持触发跟踪
  2149. BOOL bFaceDetection; // 是否允许配置开启人脸属性识别
  2150. int nSupportFeactureNum; // 支持的人脸属性类型个数
  2151. EM_FACEFEATURE_TYPE emFeatureList[MAX_FEATURE_LIST_SIZE]; // 支持的人脸属性类型列表
  2152. CFG_NUMBERSTAT_RULE_INFO stuNumberStat; // 客流量统计规则
  2153. CFG_QUEUEDETECTION_RULE_INFO stuQueueDetection; // 排队检测规则
  2154. CFG_MANNUMDETECTION_RULE_INFO stuManNumDetection; // 区域内人数统计规则
  2155. }SCENE_SUPPORT_RULE;
  2156. // 标定区域能力信息
  2157. typedef struct tagCFG_CAP_CELIBRATE_AREA
  2158. {
  2159. EM_CALIBRATEAREA_TYPE emType; // 标定区域类型
  2160. BYTE byMaxHorizontalStaffNum; // 支持的水平标尺最大个数
  2161. BYTE byMinHorizontalStaffNum; // 支持的水平标尺最小个数
  2162. BYTE byMaxVerticalStaffNum; // 支持的垂直标尺最大个数
  2163. BYTE byMinVerticalStaffNum; // 支持的垂直标尺最小个数
  2164. }CFG_CAP_CELIBRATE_AREA;
  2165. // 场景能力
  2166. typedef struct tagCFG_CAP_SCENE
  2167. {
  2168. char szSceneName[MAX_PATH]; // 场景名称
  2169. int nSupportedObjectTypeNum; // 当前规则类型支持的检测物体类型个数
  2170. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 当前规则类型支持的检测物体类型列表
  2171. int nSupportRules; // 支持的规则个数
  2172. SCENE_SUPPORT_RULE stSpportRules[MAX_RULE_LIST_SIZE]; // 支持的规则列表
  2173. //支持的模块参数
  2174. bool bDisturbance; // 是否支持扰动强度设置
  2175. bool bAntiDisturbance; // 是否支持去扰动处理
  2176. bool bBacklight; // 是否支持逆光处理
  2177. bool bShadow; // 是否支持阴影处理
  2178. bool bAccuracy; // 是否支持检测精度
  2179. bool bMovingStep; // 是否支持检测步长
  2180. bool bScalingFactor; // 是否支持检测缩放
  2181. bool bThresholdY; // 是否支持Y分量判定阈值
  2182. bool bThresholdUV; // 是否支持UV分量判定阈值
  2183. bool bThresholdEdge; // 是否支持边缘检测判定阈值
  2184. bool bDetectBalance; // 是否支持检测平衡
  2185. bool bAlgorithmIndex; // 是否支持算法序号
  2186. bool bHighlight; // 是否支持高光处理,即Backgroud参数
  2187. bool bSnapshot; // 是否支持物体抓图
  2188. bool bDetectRegion; // 是否支持检测区域配置
  2189. bool bExcludeRegion; // 是否支持排除区域配置
  2190. bool bContourAssistantTrack; // 是否支持轮廓辅助跟踪
  2191. //支持的场景参数
  2192. bool bCameraAspect; // 是否摄像头位置参数
  2193. bool bJitter; // 是否支持抖动参数
  2194. bool bDejitter; // 是否支持去抖动处理参数
  2195. // 支持的标定能力集
  2196. int nMaxCalibrateAreaNum; // 最大标定区域个数
  2197. int nCalibrateAreaNum; // 标定区域能力信息个数
  2198. CFG_CAP_CELIBRATE_AREA stCalibrateAreaCap[MAX_CALIBRATEAREA_TYPE_NUM]; // 标定区域能力信息
  2199. // 尺寸过滤器计量方式
  2200. bool bPixel; // 是否支持像素计量方式
  2201. bool bMetric; // 是否支持实际长度计量方式
  2202. bool bCalibratedPixel; // 是否支持远端近端标定后的像素计量方式
  2203. char szSubType[MAX_SCENE_SUBTYPE_NUM][MAX_SCENE_SUBTYPE_LEN]; // 当前场景下支持的子场景类型
  2204. int nSubTypeNum; // 子场景类型个数
  2205. int nMaxRules; // 每个大类支持的最大规则条数
  2206. BOOL bSupportedSetModule; // 是否支持重建背景,默认不支持(false)
  2207. BOOL bSupportFightCalibrate; // 是否支持打架标定配置,默认FALSE
  2208. BYTE byReserved[1024]; // 保留字节
  2209. }CFG_CAP_SCENE;
  2210. // 场景列表
  2211. typedef struct tagCFG_VACAP_SUPPORTEDSCENES
  2212. {
  2213. int nScenes; // 支持的场景个数
  2214. CFG_CAP_SCENE stScenes[MAX_SCENE_LIST_SIZE]; // 支持的场景列表
  2215. CFG_NUMBER_STAT_INFO stuNumberStat; // 人数统计大类场景
  2216. }CFG_VACAP_SUPPORTEDSCENES;
  2217. #define CFG_DEVICE_ANALYSE_INFO CFG_CAP_DEVICE_ANALYSE_INFO
  2218. //视频分析设备能力信息
  2219. typedef struct tagCFG_CAP_DEVICE_ANALYSE_INFO
  2220. {
  2221. int nMaxChannels; // 支持智能分析的最大通道数
  2222. }CFG_CAP_DEVICE_ANALYSE_INFO;
  2223. //设备类型
  2224. typedef enum tagNET_EM_DEVICE_TYPE
  2225. {
  2226. NET_EM_DEVICE_UNKNOWN, // 未知类型
  2227. NET_EM_DEVICE_CAMERA, // 模拟摄像机
  2228. NET_EM_DEVICE_DOME, // 模拟球机
  2229. NET_EM_DEVICE_MATRIX, // 模拟矩阵
  2230. NET_EM_DEVICE_IPC, // 网络摄像机
  2231. NET_EM_DEVICE_NVS, // 视频服务器
  2232. NET_EM_DEVICE_SD, // 网络球机
  2233. NET_EM_DEVICE_ITSE, // 智能存储盒
  2234. NET_EM_DEVICE_ITC, // 智能摄像机
  2235. NET_EM_DEVICE_TPC, // 热成像摄像机
  2236. NET_EM_DEVICE_DVR, // 数字硬盘录像机
  2237. NET_EM_DEVICE_HDVR, // 混合型数字硬盘录像机
  2238. NET_EM_DEVICE_HCVR, // 高清CVI接口录像机
  2239. NET_EM_DEVICE_NVR, // 网络录像机
  2240. NET_EM_DEVICE_PCNVR, // 工作在PC上的软件网络录像机
  2241. NET_EM_DEVICE_NVD, // 网络解码器
  2242. NET_EM_DEVICE_SNVD, // 软件网络解码器
  2243. NET_EM_DEVICE_UDS, // 万能解码器
  2244. NET_EM_DEVICE_SVR, // 存储服务器式录像机
  2245. NET_EM_DEVICE_M, // 视频综合平台
  2246. NET_EM_DEVICE_IVS, // IVS服务器
  2247. NET_EM_DEVICE_VNCSERVER, // 虚拟网络服务器
  2248. NET_EM_DEVICE_VNCCLIENT, // 虚拟网络客户端
  2249. NET_EM_DEVICE_DSCON, // 嵌入式多屏控制器
  2250. NET_EM_DEVICE_PC, // 通用个人计算机
  2251. NET_EM_DEVICE_EVS, // 网络视频存储服务器
  2252. NET_EM_DEVICE_VCS, // 视频转码服务器
  2253. NET_EM_DEVICE_A, // 报警主机, 15 年前
  2254. NET_EM_DEVICE_ARC, // 报警主机, 15年后
  2255. NET_EM_DEVICE_SDHNI, // 智能球机
  2256. NET_EM_DEVICE_BSC, // 门禁主机
  2257. NET_EM_DEVICE_BSR, // 门禁读卡器
  2258. NET_EM_DEVICE_MGATEWAY, // 媒体网关(接入安卓设备)
  2259. NET_EM_DEVICE_VTO, // 智网门口机设备
  2260. NET_EM_DEVICE_VTH, // 智网室内机设备
  2261. NET_EM_DEVICE_VTT, // 可视对讲终端
  2262. NET_EM_DEVICE_VTS, // 管理机
  2263. NET_EM_DEVICE_VTNC, // 控制器
  2264. NET_EM_DEVICE_CE, // 消费类卡片机产品
  2265. NET_EM_DEVICE_MPT, // 手持终端
  2266. NET_EM_DEVICE_ATM, // 金融ATM
  2267. NET_EM_DEVICE_SHG, // 智网家庭网关
  2268. NET_EM_DEVICE_ARM, // 防护舱控制器
  2269. NET_EM_DEVICE_ASM, // 无线中继设备
  2270. NET_EM_DEVICE_VTA, // 报警柱
  2271. NET_EM_DEVICE_UAVGA, // 机载云台
  2272. NET_EM_DEVICE_UAVR, // 一体化遥控器
  2273. NET_EM_DEVICE_AIRCRAFT, // 无人机
  2274. NET_EM_DEVICE_UAVS, // 地面站
  2275. NET_EM_DEVICE_TPCSD, // 热成像云台摄像机
  2276. NET_EM_DEVICE_TPCBF, // 热成像枪机
  2277. NET_EM_DEVICE_RADAR, // 雷达
  2278. NET_EM_DEVICE_RADAR_PTZ, // 雷达系统
  2279. NET_EM_DEVICE_RADAR_CAM, // 摄像雷达
  2280. } NET_EM_DEVICE_TYPE;
  2281. // 设备类型信息
  2282. typedef struct tagCFG_DEVICE_CLASS_INFO
  2283. {
  2284. DWORD dwSize;
  2285. NET_EM_DEVICE_TYPE emDeviceType; // 设备类型
  2286. } CFG_DEVICE_CLASS_INFO;
  2287. // 某个规则支持的物体类型
  2288. typedef struct
  2289. {
  2290. DWORD dwRuleType; // 当前规则类型
  2291. int nSupportedObjectTypeNum; // 当前规则类型支持的检测物体类型个数
  2292. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 当前规则类型支持的检测物体类型列表
  2293. }RULE_SUPPORTED_OBJECT_TYPE;
  2294. // 场景组合
  2295. typedef struct tagCFG_SUPPORTED_COMP
  2296. {
  2297. int nSupportedData; // 场景组合项下支持的场景个数
  2298. char szSupportedData[MAX_SUPPORTED_COMP_DATA][CFG_COMMON_STRING_16]; // 场景组合项下支持的场景列表
  2299. }CFG_SUPPORTED_COMP;
  2300. // 摄像头安装角度显示方式
  2301. typedef enum tagEM_DISPLAY_CAMERA_ANGLE_TYPE
  2302. {
  2303. EM_DISPLAY_CAMERA_ANGLE_UNKNOWN, // 未知的显示方式
  2304. EM_DISPLAY_CAMERA_ANGLE_NUM, // 按角度值配置(默认)
  2305. EM_DISPLAY_CAMERA_ANGLE_MODE, // 按模式配置,0~20展示为顶装,21~90展示为斜装,配置时按60下发
  2306. } EM_DISPLAY_CAMERA_ANGLE_TYPE;
  2307. // 支持的规则
  2308. typedef struct tagCFG_SUPPORTED_RULES_INFO
  2309. {
  2310. CFG_NUMBERSTAT_RULE_INFO stuNumberStat; // 客流量统计规则
  2311. CFG_QUEUEDETECTION_RULE_INFO stuQueueDetection; // 排队检测规则
  2312. CFG_MANNUMDETECTION_RULE_INFO stuManNumDetection; // 区域内人数统计规则
  2313. }CFG_SUPPORTED_RULES_INFO;
  2314. // 客流量统计PD
  2315. typedef struct tagCFG_NUMBERSTART_MULT_INFO
  2316. {
  2317. UINT nMaxRules; // 最大返回规则个数
  2318. BOOL bHiddenDetailEnable;// 隐藏部分参数配置使能 true-对于StereoNumber/NumberStat算法大类,隐藏StereoCalibrate标定配置和规则的MaxHeight/MinHeight
  2319. UINT nCameraType; // 相机类型,0:表示老单目客流 1:表示新统一单目客流 2:表示新统一双目客流
  2320. int nMaxSupportedRulesNum; // 支持的事件类型规则个数
  2321. CFG_SUPPORTED_RULES_INFO stuSupportedRules[MAX_RULE_LIST_SIZE]; // 支持的事件类型规则列表,事件类型,详见dhnetsdk.h中"智能分析事件类型"
  2322. }CFG_NUMBERSTAT_MULT_INFO;
  2323. // 视频分析能力集
  2324. typedef struct _tagVA_CAPS_INFO
  2325. {
  2326. char szSceneName[MAX_SCENE_LIST_SIZE][MAX_NAME_LEN]; // 支持的场景列表
  2327. int nSupportedSceneNum; // 支持的场景个数
  2328. BYTE byReserved[4]; // 预留字段
  2329. }VA_CAPS_INFO;
  2330. // 视频分析能力集
  2331. typedef struct tagCFG_CAP_ANALYSE_INFO
  2332. {
  2333. int nSupportedSceneNum; // 支持的场景个数
  2334. char szSceneName[MAX_SCENE_LIST_SIZE][MAX_NAME_LEN]; // 支持的场景列表
  2335. int nMaxMoudles; // 每通道支持最大分析模块数
  2336. int nSupportedObjectTypeNum; // 支持的检测物体类型个数
  2337. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 支持的检测物体类型列表
  2338. int nMaxRules; // 每通道支持最大规则条数
  2339. int nSupportedRulesNum; // 支持的事件类型规则个数
  2340. DWORD dwRulesType[MAX_RULE_LIST_SIZE]; // 支持的事件类型规则列表,事件类型,详见dhnetsdk.h中"智能分析事件类型"
  2341. int nMaxStaffs; // 支持的最大标尺个数
  2342. int nMaxPointOfLine; // 折线最大顶点数
  2343. int nMaxPointOfRegion; // 区域最大顶点数
  2344. int nMaxInternalOptions; // 最大内部选项个数
  2345. bool bComplexSizeFilter; // 是否支持复杂尺寸过滤器 复杂尺寸过滤器使用独立的面积过滤和宽高比过滤参数。
  2346. bool bSpecifiedObjectFilter; // 是否支持特定的物体过滤器
  2347. int nMaxExcludeRegionNum; // 支持模块中的最大排除区域个数
  2348. int nMaxCalibrateBoxNum; // 支持的模块中的最大校准框个数
  2349. int nMinCalibrateBoxNum; // 模块中至少需要设置的校准框个数
  2350. int nMaxSepcialDetectRegions; // 模块中支持的最大特殊区域检测个数
  2351. int nSupportedTimeSectionNum; // 支持的每天的时间段个数
  2352. int nSpecialDetectPropertyNum; // 支持的特殊检测区属性个数
  2353. int nSupportedSpecialDetectPropertys[EM_SEPCIALREGION_PROPERTY_TYPE_NUM]; // 支持的特殊检测区属性
  2354. DWORD nSupportedVideoChannelType; // 支持的视频通道类型选择 第0位为1表示支持数字类型,第1位为1表示支持模拟类型,第2为1表示支持混合(数字和模拟)
  2355. bool bSupportMultiSceneSwitch; // 是否支持多场景切换
  2356. CFG_VACAP_SUPPORTEDSCENES stSupportScenes; // 支持的场景能力集
  2357. int nSupportedComp; // 支持的场景组合项个数
  2358. CFG_SUPPORTED_COMP stuSupportedComp[MAX_SUPPORTED_COMP_SIZE]; // 支持的场景组合项列表
  2359. BYTE byFilterMask; // 0 Module/Rule配置均要设置(默认,智能服务器), 1 仅Rule配置要设置(IPC/xVR)
  2360. EM_DISPLAY_CAMERA_ANGLE_TYPE emDisCameraAngleType; // 摄像头安装角度显示方式
  2361. int nMaxNumberStatMultNum; // 实际返回客流量统计场景PD个数
  2362. CFG_NUMBERSTAT_MULT_INFO stuNumberStatMult[MAX_NUMBER_STAT_MAULT_NUM]; // 客流量统计场景PD
  2363. VA_CAPS_INFO stuFullCaps; // 全能力集,表示视频通道能力 full可以认为是不变的
  2364. } CFG_CAP_ANALYSE_INFO;
  2365. // 视频分析支持的对象类型
  2366. typedef enum tagEM_VIDEO_ANALYSE_OBJECT_TYPE
  2367. {
  2368. EM_VIDEO_ANALYSE_OBJECT_TYPE_UNKNOWN, // 未知的
  2369. EM_VIDEO_ANALYSE_OBJECT_TYPE_ALL_OBJECT, // 所有物体
  2370. EM_VIDEO_ANALYSE_OBJECT_TYPE_HUMAN, // 人
  2371. EM_VIDEO_ANALYSE_OBJECT_TYPE_VEHICLE, // 车辆
  2372. EM_VIDEO_ANALYSE_OBJECT_TYPE_FIRE, // 火
  2373. EM_VIDEO_ANALYSE_OBJECT_TYPE_SMOKE, // 烟雾
  2374. EM_VIDEO_ANALYSE_OBJECT_TYPE_PLATE, // 片状物体
  2375. EM_VIDEO_ANALYSE_OBJECT_TYPE_HUMANFACE, // 人脸
  2376. EM_VIDEO_ANALYSE_OBJECT_TYPE_CONTAINER, // 货柜
  2377. EM_VIDEO_ANALYSE_OBJECT_TYPE_ANIMAL, // 动物
  2378. EM_VIDEO_ANALYSE_OBJECT_TYPE_TRAFFICLIGHT, // 红绿灯
  2379. EM_VIDEO_ANALYSE_OBJECT_TYPE_PASTEPAPER, // 贴纸 贴片
  2380. EM_VIDEO_ANALYSE_OBJECT_TYPE_HUMANHEAD, // 人的头部
  2381. EM_VIDEO_ANALYSE_OBJECT_TYPE_ENTITY, // 普通物体
  2382. }EM_VIDEO_ANALYSE_OBJECT_TYPE;
  2383. // 视频分析支持的动作类型
  2384. typedef enum tagEM_VIDEO_ANALYSE_ACTION_TYPE
  2385. {
  2386. EM_VIDEO_ANALYSE_ACTION_TYPE_UNKNOWN, // 未知行为
  2387. EM_VIDEO_ANALYSE_ACTION_TYPE_APPEAR, // 出现,针对的是目标,出现就报警
  2388. EM_VIDEO_ANALYSE_ACTION_TYPE_DISAPPEAR, // 消失
  2389. EM_VIDEO_ANALYSE_ACTION_TYPE_INSIDE, // 在区域内,需要区域内目标个数达到指定数量和指定时间才报警
  2390. EM_VIDEO_ANALYSE_ACTION_TYPE_CROSS, // 穿越区域
  2391. }EM_VIDEO_ANALYSE_ACTION_TYPE;
  2392. // 视频分析支持的检测类型
  2393. typedef enum tagEM_VIDEO_ANALYSE_DETECT_TYPE
  2394. {
  2395. EM_VIDEO_ANALYSE_DETECT_TYPE_UNKNOWN, // 未知类型
  2396. EM_VIDEO_ANALYSE_DETECT_TYPE_LOSS, // 视频丢失
  2397. EM_VIDEO_ANALYSE_DETECT_TYPE_COVER, // 视频遮挡
  2398. EM_VIDEO_ANALYSE_DETECT_TYPE_FROZEN, // 画面冻结
  2399. EM_VIDEO_ANALYSE_DETECT_TYPE_LIGHT, // 过亮
  2400. EM_VIDEO_ANALYSE_DETECT_TYPE_DARK, // 过暗
  2401. EM_VIDEO_ANALYSE_DETECT_TYPE_SCENECHANGE, // 场景变化
  2402. EM_VIDEO_ANALYSE_DETECT_TYPE_STRIATION, // 条纹检测
  2403. EM_VIDEO_ANALYSE_DETECT_TYPE_NOISE, // 噪声检测
  2404. EM_VIDEO_ANALYSE_DETECT_TYPE_UNBALANCE, // 偏色检测
  2405. EM_VIDEO_ANALYSE_DETECT_TYPE_BLUR, // 视频模糊检测
  2406. EM_VIDEO_ANALYSE_DETECT_TYPE_CONTRAST, // 对比度异常检测
  2407. EM_VIDEO_ANALYSE_DETECT_TYPE_MOTION, // 视频运动
  2408. EM_VIDEO_ANALYSE_DETECT_TYPE_FILCKERING, // 视频闪烁
  2409. EM_VIDEO_ANALYSE_DETECT_TYPE_COLOR, // 视频颜色变化
  2410. EM_VIDEO_ANALYSE_DETECT_TYPE_UNFOCUS, // 虚焦检测
  2411. EM_VIDEO_ANALYSE_DETECT_TYPE_OVEREXPOSURE, // 过曝检测
  2412. }EM_VIDEO_ANALYSE_DETECT_TYPE;
  2413. // 视频支持的人脸类型
  2414. typedef enum tagEM_VIDEO_ANALYSE_HUMANFACE_TYPE
  2415. {
  2416. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_UNKNOWN, // 未知类型
  2417. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_NORMAL, // 普通人脸
  2418. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_HIDEEYE, // 眼部遮挡
  2419. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_HIDENOSE, // 鼻子遮挡
  2420. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_HIDEMOUTH, // 嘴部遮挡
  2421. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_ADJACENTFACE, // 相邻人脸 (注,ATM,尾随)
  2422. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_ABNORMALFACE, // 异常人脸
  2423. EM_VIDEO_ANALYSE_HUMANFACE_TYPE_HELMETFACE, // 头盔人脸(如摩托车盔)
  2424. }EM_VIDEO_ANALYSE_HUMANFACE_TYPE;
  2425. // 场景支持的规则
  2426. typedef struct
  2427. {
  2428. DWORD dwSupportedRule; // 规则类型
  2429. int nSupportedObjectTypeNum; // 支持的检测物体类型个数
  2430. EM_VIDEO_ANALYSE_OBJECT_TYPE emObjectType[MAX_OBJECT_LIST_SIZE]; // 支持的检测物体类型列表
  2431. int nSupportedActionsNum; // 支持的检测物体动作个数
  2432. EM_VIDEO_ANALYSE_ACTION_TYPE emSupportedAction[MAX_ACTION_LIST_SIZE]; // 支持的检测物体动作列表
  2433. int nSupportedDetectTypeNum; // 支持的检测类型个数
  2434. EM_VIDEO_ANALYSE_DETECT_TYPE emSupportedDetectType[MAX_ACTION_LIST_SIZE]; // 支持的检测类型列表
  2435. int nSupportFaceTypeNum; // 支持的人脸检测类型个数
  2436. EM_VIDEO_ANALYSE_HUMANFACE_TYPE emSupportFaceType[MAX_HUMANFACE_LIST_SIZE]; // 支持的人脸检测类型列表
  2437. BOOL bTriggerPosition; // 是否支持触发报警位置
  2438. BOOL bTriggerTrack; // 是否支持触发跟踪
  2439. }SCENE_SUPPORT_RULE_EX;
  2440. // 场景能力
  2441. typedef struct tagCFG_CAP_SCENE_EX
  2442. {
  2443. char szSceneName[MAX_PATH]; // 场景名称
  2444. int nSupportedObjectTypeNum; // 当前规则类型支持的检测物体类型个数
  2445. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 当前规则类型支持的检测物体类型列表
  2446. int nSupportRules; // 支持的规则个数
  2447. SCENE_SUPPORT_RULE_EX stSpportRules[MAX_RULE_LIST_SIZE]; // 支持的规则列表
  2448. //支持的模块参数
  2449. bool bDisturbance; // 是否支持扰动强度设置
  2450. bool bAntiDisturbance; // 是否支持去扰动处理
  2451. bool bBacklight; // 是否支持逆光处理
  2452. bool bShadow; // 是否支持阴影处理
  2453. bool bAccuracy; // 是否支持检测精度
  2454. bool bMovingStep; // 是否支持检测步长
  2455. bool bScalingFactor; // 是否支持检测缩放
  2456. bool bThresholdY; // 是否支持Y分量判定阈值
  2457. bool bThresholdUV; // 是否支持UV分量判定阈值
  2458. bool bThresholdEdge; // 是否支持边缘检测判定阈值
  2459. bool bDetectBalance; // 是否支持检测平衡
  2460. bool bAlgorithmIndex; // 是否支持算法序号
  2461. bool bHighlight; // 是否支持高光处理,即Backgroud参数
  2462. bool bSnapshot; // 是否支持物体抓图
  2463. bool bDetectRegion; // 是否支持检测区域配置
  2464. bool bExcludeRegion; // 是否支持排除区域配置
  2465. bool bContourAssistantTrack; // 是否支持轮廓辅助跟踪
  2466. //支持的场景参数
  2467. bool bCameraAspect; // 是否摄像头位置参数
  2468. bool bJitter; // 是否支持抖动参数
  2469. bool bDejitter; // 是否支持去抖动处理参数
  2470. // 支持的标定能力集
  2471. int nMaxCalibrateAreaNum; // 最大标定区域个数
  2472. int nCalibrateAreaNum; // 标定区域能力信息个数
  2473. CFG_CAP_CELIBRATE_AREA stCalibrateAreaCap[MAX_CALIBRATEAREA_TYPE_NUM]; // 标定区域能力信息
  2474. // 尺寸过滤器计量方式
  2475. bool bPixel; // 是否支持像素计量方式
  2476. bool bMetric; // 是否支持实际长度计量方式
  2477. bool bCalibratedPixel; // 是否支持远端近端标定后的像素计量方式
  2478. char szSubType[MAX_SCENE_SUBTYPE_NUM][MAX_SCENE_SUBTYPE_LEN]; // 当前场景下支持的子场景类型
  2479. int nSubTypeNum; // 子场景类型个数
  2480. int nMaxRules; // 每个大类支持的最大规则条数
  2481. BOOL bSupportedSetModule; // 是否支持重建背景,默认不支持(false)
  2482. BOOL bSupportFightCalibrate; // 是否支持打架标定配置,默认FALSE
  2483. BYTE byReserved[1024]; // 保留字节
  2484. }CFG_CAP_SCENE_EX;
  2485. // 场景列表
  2486. typedef struct tagCFG_VACAP_SUPPORTEDSCENES_EX
  2487. {
  2488. int nScenes; // 支持的场景个数
  2489. CFG_CAP_SCENE_EX stScenes[MAX_SCENE_LIST_SIZE]; // 支持的场景列表
  2490. }CFG_VACAP_SUPPORTEDSCENES_EX;
  2491. // 视频分析能力集(除了字段stSupportScenes外,其他字段和CFG_CAP_ANALYSE_INFO一样)
  2492. typedef struct tagCFG_CAP_ANALYSE_INFO_EX
  2493. {
  2494. int nSupportedSceneNum; // 支持的场景个数
  2495. char szSceneName[MAX_SCENE_LIST_SIZE][MAX_NAME_LEN]; // 支持的场景列表
  2496. int nMaxMoudles; // 每通道支持最大分析模块数
  2497. int nSupportedObjectTypeNum; // 支持的检测物体类型个数
  2498. char szObjectTypeName[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 支持的检测物体类型列表
  2499. int nMaxRules; // 每通道支持最大规则条数
  2500. int nSupportedRulesNum; // 支持的事件类型规则个数
  2501. DWORD dwRulesType[MAX_RULE_LIST_SIZE]; // 支持的事件类型规则列表,事件类型,详见dhnetsdk.h中"智能分析事件类型"
  2502. int nMaxStaffs; // 支持的最大标尺个数
  2503. int nMaxPointOfLine; // 折线最大顶点数
  2504. int nMaxPointOfRegion; // 区域最大顶点数
  2505. int nMaxInternalOptions; // 最大内部选项个数
  2506. bool bComplexSizeFilter; // 是否支持复杂尺寸过滤器 复杂尺寸过滤器使用独立的面积过滤和宽高比过滤参数。
  2507. bool bSpecifiedObjectFilter; // 是否支持特定的物体过滤器
  2508. int nMaxExcludeRegionNum; // 支持模块中的最大排除区域个数
  2509. int nMaxCalibrateBoxNum; // 支持的模块中的最大校准框个数
  2510. int nMinCalibrateBoxNum; // 模块中至少需要设置的校准框个数
  2511. int nMaxSepcialDetectRegions; // 模块中支持的最大特殊区域检测个数
  2512. int nSupportedTimeSectionNum; // 支持的每天的时间段个数
  2513. int nSpecialDetectPropertyNum; // 支持的特殊检测区属性个数
  2514. int nSupportedSpecialDetectPropertys[EM_SEPCIALREGION_PROPERTY_TYPE_NUM]; // 支持的特殊检测区属性
  2515. DWORD nSupportedVideoChannelType; // 支持的视频通道类型选择 第0位为1表示支持数字类型,第1位为1表示支持模拟类型,第2为1表示支持混合(数字和模拟)
  2516. bool bSupportMultiSceneSwitch; // 是否支持多场景切换
  2517. CFG_VACAP_SUPPORTEDSCENES_EX stSupportScenes; // 支持的场景能力集
  2518. int nSupportedComp; // 支持的场景组合项个数
  2519. CFG_SUPPORTED_COMP stuSupportedComp[MAX_SUPPORTED_COMP_SIZE]; // 支持的场景组合项列表
  2520. BYTE byFilterMask; // 0 Module/Rule配置均要设置(默认,智能服务器), 1 仅Rule配置要设置(IPC/xVR)
  2521. EM_DISPLAY_CAMERA_ANGLE_TYPE emDisCameraAngleType; // 摄像头安装角度显示方式
  2522. }CFG_CAP_ANALYSE_INFO_EX;
  2523. // 校准框信息
  2524. typedef struct tagCFG_CALIBRATEBOX_INFO
  2525. {
  2526. CFG_POLYGON stuCenterPoint; // 校准框中心点坐标(点的坐标归一化到[0,8191]区间)
  2527. float fRatio; // 相对基准校准框的比率(比如1表示基准框大小,0.5表示基准框大小的一半)
  2528. }CFG_CALIBRATEBOX_INFO;
  2529. // 标定方式
  2530. typedef enum tagEM_METHOD_TYPE
  2531. {
  2532. EM_METHOD_UNKNOWN, // 未知方式
  2533. EM_METHOD_SCENE, // 景深标定
  2534. EM_METHOD_LANE, // 车道标定
  2535. EM_METHOD_PLATE, // 车牌标定
  2536. EM_METHOD_STEREO, // 双目标定
  2537. } EM_METHOD_TYPE;
  2538. // 标定区域,普通场景使用
  2539. typedef struct tagCFG_CALIBRATEAREA_INFO
  2540. {
  2541. int nLinePoint; // 水平方向标尺线顶点数
  2542. CFG_POLYGON stuLine[MAX_POLYLINE_NUM]; // 水平方向标尺线
  2543. float fLenth; // 实际长度
  2544. CFG_REGION stuArea; // 区域
  2545. int nStaffNum; // 垂直标尺数
  2546. CFG_STAFF stuStaffs[MAX_STAFF_NUM]; // 垂直标尺
  2547. EM_CALIBRATEAREA_TYPE emType; // 区域类型
  2548. EM_METHOD_TYPE emMethodType; // 标定方式
  2549. }CFG_CALIBRATEAREA_INFO;
  2550. // 人脸识别场景
  2551. typedef struct tagCFG_FACERECOGNITION_SCENCE_INFO
  2552. {
  2553. double dbCameraHeight; // 摄像头离地高度 单位:米
  2554. double dbCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  2555. int nMainDirection; // 人流主要方向顶点数
  2556. CFG_POLYGON stuMainDirection[MAX_POLYLINE_NUM]; // 人流主要方向,第一个点是起始点,第二个点是终止点
  2557. char byFaceAngleDown; // 需要检测的人脸向下最大偏角, 单位度,-45~45,负数表示人脸向画面上边,正数表示人脸向画面下边,0表示人脸垂直方向上正对着摄像头。
  2558. char byFaceAngleUp; // 需要检测的人脸向上最大偏角,单位度,-45~45,负数表示人脸向画面上边,正数表示人脸向画面下边,0表示人脸垂直方向上正对着摄像头。
  2559. char byFaceAngleLeft; // 需要检测的人脸向左最大偏角,单位度,-45~45,负数表示人脸向画面左边,正数表示人脸向画面右边,0表示人脸水平方向上正对着摄像头
  2560. char byFaceAngleRight; // 需要检测的人脸向右最大偏角,单位度,-45~45,负数表示人脸向画面左边,正数表示人脸向画面右边,0表示人脸水平方向上正对着摄像头
  2561. EM_FACEDETECTION_TYPE emDetectType; // 人脸检测类型
  2562. }CFG_FACERECOGNITION_SCENCE_INFO;
  2563. // 人脸检测场景
  2564. typedef struct tagCFG_FACEDETECTION_SCENCE_INFO
  2565. {
  2566. double dbCameraHeight; // 摄像头离地高度 单位:米
  2567. double dbCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  2568. int nMainDirection; // 人流主要方向顶点数
  2569. CFG_POLYGON stuMainDirection[MAX_POLYLINE_NUM]; // 人流主要方向,第一个点是起始点,第二个点是终止点
  2570. char byFaceAngleDown; // 需要检测的人脸向下最大偏角, 单位度,-45~45,负数表示人脸向画面上边,正数表示人脸向画面下边,0表示人脸垂直方向上正对着摄像头。
  2571. char byFaceAngleUp; // 需要检测的人脸向上最大偏角,单位度,-45~45,负数表示人脸向画面上边,正数表示人脸向画面下边,0表示人脸垂直方向上正对着摄像头。
  2572. char byFaceAngleLeft; // 需要检测的人脸向左最大偏角,单位度,-45~45,负数表示人脸向画面左边,正数表示人脸向画面右边,0表示人脸水平方向上正对着摄像头
  2573. char byFaceAngleRight; // 需要检测的人脸向右最大偏角,单位度,-45~45,负数表示人脸向画面左边,正数表示人脸向画面右边,0表示人脸水平方向上正对着摄像头
  2574. EM_FACEDETECTION_TYPE emDetectType; // 人脸检测类型
  2575. }CFG_FACEDETECTION_SCENCE_INFO;
  2576. // 交通灯颜色校正配置,分立项
  2577. typedef struct tagADJUST_LEVEL_SEP
  2578. {
  2579. int nType; // 0:未定义,1:视频,2:图片
  2580. int nTime; // 0:未定义,1:白天,2:夜晚
  2581. int nLevel; // 范围0~100,数值越大矫正越明显
  2582. } ADJUST_LEVEL_SEP;
  2583. // 交通灯颜色校正配置
  2584. typedef struct tagCFG_ADJUST_LIGHT_COLOR
  2585. {
  2586. int nMode; // 红灯颜色校正模式 0:未定义 1:红绿灯才校正 2:一直校正
  2587. BOOL bEnable; // 是否允许图片红绿灯颜色校正
  2588. int nLevel; // 校正等级 范围0~100,数值越大矫正越明显
  2589. BOOL bVideoEnable; // 是否启用视频涂红功能,存在此项时,Level值使用LevelSeparate下的Level值
  2590. ADJUST_LEVEL_SEP stLevelSep[4]; // 分立等级,目前为4个
  2591. } CFG_ADJUST_LIGHT_COLOR;
  2592. #define MAX_PARKING_SPACE_NUM 6 //最多配置6个车位信息
  2593. #define MAX_SHIELD_AREA_NUM 16 //1个车位最多对应16个屏蔽区域
  2594. typedef struct tagCFG_PARKING_SPACE
  2595. {
  2596. int nNumber; //车位编号
  2597. CFG_REGION stArea; //检测区域
  2598. int nShieldAreaNum; //有效屏蔽区个数
  2599. CFG_REGION stShieldArea[MAX_SHIELD_AREA_NUM]; //屏蔽区域
  2600. }CFG_PARKING_SPACE;
  2601. // 交通场景
  2602. typedef struct tagCFG_TRAFFIC_SCENE_INFO
  2603. {
  2604. BOOL abCompatibleMode;
  2605. int nCompatibleMode; // 0:"OldTrafficRule" : 交通老规则兼容模式;1:"NewTrafficRule" : 交通新规则兼容模式;-1:字符串错误
  2606. float fCameraHeight; // 摄像头离地高度 单位:米
  2607. float fCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  2608. char szSubType[MAX_NAME_LEN]; // 交通场景的子类型,"Gate" 卡口类型,"Junction" 路口类型
  2609. // "Tunnel"隧道类型 , "ParkingSpace"车位检测类型
  2610. // "Bridge"桥梁类型
  2611. // "Freeway"高速公路类型
  2612. CFG_POLYGON stuNearDetectPoint; // 近景检测点
  2613. CFG_POLYGON stuFarDectectPoint; // 远景检测点
  2614. int nNearDistance; // NearDetectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
  2615. int nFarDistance; // FarDectectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
  2616. int nPlateHintNum; // 车牌字符暗示个数
  2617. char szPlateHints[MAX_PLATEHINT_NUM][MAX_NAME_LEN]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
  2618. int nLaneNum; // 车道数
  2619. CFG_LANE stuLanes[MAX_LANE_NUM]; // 车道信息
  2620. int nLightGroupNum; // 灯组数
  2621. CFG_LIGHTGROUPS stLightGroups[MAX_LIGHTGROUP_NUM]; // 灯组配置信息
  2622. BOOL bHangingWordPlate; // 是否识别挂字车牌
  2623. BOOL bNonStdPolicePlate; // 是否识别非标准警牌
  2624. BOOL bYellowPlateLetter; // 是否识别黄牌字母
  2625. int nReportMode; // 上报模式,0:未定义,1:上报所有违章车辆,2:上报车牌识别成功的违章车辆
  2626. int nPlateMatch; // 车牌匹配率,0~100,多次识别车牌使用,表示重复识别车牌和前一次识别车牌的一致性要求
  2627. int nJudgment; // 违章判定依据,0:未定义,1:按车道,2:按行驶方向,3:按车道和行驶方向
  2628. int nLeftDivisionPtCount; // 左转弯分界线点数
  2629. CFG_POLYLINE stLeftDivisionLine[MAX_POLYLINE_NUM]; // 左转弯分界线
  2630. int nRightDivisionPtCount; // 右转弯分界线点数
  2631. CFG_POLYLINE stRightDivisionLine[MAX_POLYLINE_NUM]; // 右转弯分界线
  2632. CFG_ADJUST_LIGHT_COLOR stAdjustLightColor; // 交通灯颜色校正配置
  2633. int nParkingSpaceNum; // 车位数
  2634. CFG_PARKING_SPACE stParkingSpaces[MAX_PARKING_SPACE_NUM];// 车位配置信息,每个元素代表一个车位
  2635. } CFG_TRAFFIC_SCENE_INFO;
  2636. // 普遍场景
  2637. typedef struct tagCFG_NORMAL_SCENE_INFO
  2638. {
  2639. float fCameraHeight; // 摄像头离地高度 单位:米
  2640. float fCameraAngle; // 摄像头与垂方向的夹角 单位度,0~90,
  2641. float fCameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  2642. CFG_POLYGON stuLandLineStart; // 地平线线段起始点(点的坐标坐标归一化到[0,8192)区间。)
  2643. CFG_POLYGON stuLandLineEnd; // 地平线线段终止点(点的坐标坐标归一化到[0,8192)区间。)
  2644. } CFG_NORMAL_SCENE_INFO;
  2645. // 交通巡视场景
  2646. typedef struct tagCFG_TRAFFIC_TOUR_SCENE_INFO
  2647. {
  2648. int nPlateHintNum; // 车牌字符暗示个数
  2649. char szPlateHints[MAX_PLATEHINT_NUM][MAX_NAME_LEN]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
  2650. } CFG_TRAFFIC_TOUR_SCENE_INFO;
  2651. // 人群态势和人群密度场景
  2652. typedef struct tagCFG_CROWD_SCENE_INFO
  2653. {
  2654. float fCameraHeight; // 摄像头离地高度 单位:米
  2655. } CFG_CROWD_SCENE_INFO;
  2656. // 画面景深类型
  2657. typedef enum tagEM_DEPTH_TYPE
  2658. {
  2659. EM_DEPTH_UNKNOWN, //unknown
  2660. EM_DEPTH_NORMAL, // "Normal" 未知
  2661. EM_DEPTH_FAR, // "Far" 远景
  2662. EM_DEPTH_MIDDLE, // "Middle" 中景
  2663. EM_DEPTH_NEAR // "Near" 近景
  2664. }EM_DEPTH_TYPE;
  2665. // 统一场景配置,TypeList存在时配置此场景
  2666. typedef struct tagCFG_INTELLI_UNIFORM_SCENE{
  2667. char szSubType[MAX_NAME_LEN]; // 交通场景的子类型,"Gate" 卡口类型,"Junction" 路口类型
  2668. // "Tunnel"隧道类型 , "ParkingSpace"车位检测类型
  2669. // "Bridge"桥梁类型
  2670. // "Freeway"高速公路类型
  2671. int nPlateHintNum; // 车牌字符暗示个数
  2672. char szPlateHints[MAX_PLATEHINT_NUM][MAX_NAME_LEN]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
  2673. int nLaneNum; // 车道数
  2674. CFG_LANE stuLanes[MAX_LANE_NUM]; // 车道信息
  2675. }CFG_INTELLI_UNIFORM_SCENE;
  2676. // 视频分析全局配置场景
  2677. typedef struct tagCFG_ANALYSEGLOBAL_SCENE
  2678. {
  2679. char szSceneType[MAX_NAME_LEN]; // 应用场景,详见"支持的场景列表"
  2680. // 以下为场景具体信息, 根据szSceneType决定哪个场景有效
  2681. union
  2682. {
  2683. CFG_FACEDETECTION_SCENCE_INFO stuFaceDetectionScene; // 人脸检测场景/人脸识别检查
  2684. CFG_TRAFFIC_SCENE_INFO stuTrafficScene; // 交通场景
  2685. CFG_NORMAL_SCENE_INFO stuNormalScene; // 普通场景/远景场景/中景场景/近景场景/室内场景/人数统计场景
  2686. CFG_TRAFFIC_TOUR_SCENE_INFO stuTrafficTourScene; // 交通巡视场景
  2687. CFG_CROWD_SCENE_INFO stuCrowdScene; // 人群态势和人群密度场景
  2688. };
  2689. EM_DEPTH_TYPE emDepthType; // 画面景深
  2690. int nPtzPresetId; // 云台预置点编号,0~255
  2691. // 以下是有多个大类业务的情况
  2692. int nSceneListCount; // 实际场景个数
  2693. char szSceneTypeList[MAX_SCENE_TYPE_LIST_SIZE][CFG_COMMON_STRING_16];// 场景列别,同一视频通道下启用多个场景时,表示第2个之后的方案
  2694. // 多个大类业务时有效
  2695. CFG_INTELLI_UNIFORM_SCENE stuUniformScene; // 统一场景配置
  2696. } CFG_ANALYSEGLOBAL_SCENE;
  2697. typedef struct tagCFG_TIME
  2698. {
  2699. DWORD dwHour; // 时
  2700. DWORD dwMinute; // 分
  2701. DWORD dwSecond; // 秒
  2702. }CFG_TIME;
  2703. typedef struct tagCFG_TIME_PERIOD
  2704. {
  2705. CFG_TIME stuStartTime;
  2706. CFG_TIME stuEndTime;
  2707. }CFG_TIME_PERIOD;
  2708. // 多场景标定区域配置基本单元
  2709. typedef struct tagCFG_CALIBRATEAREA_SCENE_UNIT
  2710. {
  2711. unsigned int nCalibrateAreaNum; // 此场景内标定区域数
  2712. CFG_CALIBRATEAREA_INFO stuCalibrateArea[MAX_CALIBRATEBOX_NUM]; // 标定区域(若该字段不存在,则以整幅场景为标定区域)
  2713. }
  2714. CFG_CALIBRATEAREA_SCENE_UNIT;
  2715. // 多场景标定区域配置
  2716. typedef struct tagCFG_CALIBRATEAREA_SCENE_INFO
  2717. {
  2718. DWORD dwMaxSceneCalibrateAreaNum; // 多场景标定区域最大个数(需要申请此大小内存)
  2719. DWORD dwRetSceneCalibrateAreaNum; // 实际包含多场景标定区域个数
  2720. CFG_CALIBRATEAREA_SCENE_UNIT *pstuCalibrateArea; // 多场景标定区域单元
  2721. }
  2722. CFG_CALIBRATEAREA_SCENE_INFO;
  2723. // 云台控制坐标单元
  2724. typedef struct tagCFG_PTZ_SPACE_UNIT
  2725. {
  2726. int nPositionX; //云台水平运动位置,有效范围:[0,3600]
  2727. int nPositionY; //云台垂直运动位置,有效范围:[-1800,1800]
  2728. int nZoom; //云台光圈变动位置,有效范围:[0,128]
  2729. }CFG_PTZ_SPACE_UNIT;
  2730. // 标定区域配置
  2731. typedef struct tagCFG_CALIBRATEAREA_UNIT
  2732. {
  2733. int nSceneID; // 场景编号
  2734. int nPtzPresetID; // 预置点编号
  2735. BOOL abCalibrateArea; // 标定区域是否存在
  2736. CFG_CALIBRATEAREA_SCENE_UNIT stuCalibrateArea; // 标定区域
  2737. CFG_PTZ_SPACE_UNIT stuPtzPosition; // 标定的云台位置
  2738. }
  2739. CFG_VIDEO_ANALYSE_CALIBRATEAREA_UNIT;
  2740. // 标定区域配置
  2741. typedef struct tagCFG_VIDEO_ANALYSE_CALIBRATEAREA
  2742. {
  2743. DWORD dwMaxSceneCalibrateNum; // 多场景标定区域最大个数(需要申请此大小内存)
  2744. DWORD dwRetSceneCalibrateNum; // 实际包含多场景标定区域个数
  2745. CFG_VIDEO_ANALYSE_CALIBRATEAREA_UNIT *pstuCalibrateAreaUnit; // 标定区域
  2746. }
  2747. CFG_VIDEO_ANALYSE_CALIBRATEAREA;
  2748. // 昼夜算法切换模式
  2749. typedef enum tagCFG_TIMEPERIOD_SWITCH_MODE
  2750. {
  2751. CFG_TIMEPERIOD_SWITCH_MODE_UNKNOWN, // 未知
  2752. CFG_TIMEPERIOD_SWITCH_MODE_BYCOLOR, // 通过色彩切换
  2753. CFG_TIMEPERIOD_SWITCH_MODE_BYBRIGHTNESS, // 通过亮度切换
  2754. CFG_TIMEPERIOD_SWITCH_MODE_BYPOS, // 通过经纬度计算日出日落时间切换
  2755. }CFG_TIMEPERIOD_SWITCH_MODE;
  2756. // 多场景标定白天和黑夜配置基本单元
  2757. typedef struct tagCFG_TIME_PERIOD_SCENE_UNIT
  2758. {
  2759. CFG_TIME_PERIOD stuDayTimePeriod; // 标定白天的时间段.(8,20),表示从8点到晚上20点为白天
  2760. CFG_TIME_PERIOD stuNightTimePeriod; // 标定黑夜的时间段.(20,7),表示从晚8点到凌晨7点为黑夜
  2761. CFG_TIMEPERIOD_SWITCH_MODE emSwitchMode; // 昼夜算法切换模式,详见CFG_TIMEPERIOD_SWITCH_MODE
  2762. UINT unLongitude; // 经度 单位百万分之一度
  2763. UINT unLatitude; // 纬度 单位百万分之一度
  2764. }
  2765. CFG_TIME_PERIOD_SCENE_UNIT;
  2766. // 多场景标定白天和黑夜配置
  2767. typedef struct tagCFG_TIME_PERIOD_SCENE_INFO
  2768. {
  2769. DWORD dwMaxTimePeriodSceneNum; // 多场景标定白天和黑夜配置最大个数(需要申请此大小内存)
  2770. DWORD dwRetTimePeriodSceneNum; // 实际包含多场景标定白天和黑夜配置个数
  2771. CFG_TIME_PERIOD_SCENE_UNIT *pstuTimePeriodScene; // 多场景标白天和黑夜配置域单元,由用户申请内存,大小为sizeof(CFG_TIME_PERIOD_SCENE_UNIT)*dwMaxTimePeriodSceneNum
  2772. }CFG_TIME_PERIOD_SCENE_INFO;
  2773. // 视频分析全局配置
  2774. typedef struct tagCFG_ANALYSEGLOBAL_INFO
  2775. {
  2776. // 信息
  2777. char szSceneType[MAX_NAME_LEN]; // 应用场景,详见"支持的场景列表"
  2778. //交通场景信息
  2779. double CameraHeight; // 摄像头离地高度 单位:米
  2780. double CameraDistance; // 摄像头离地面检测区域中心的水平距离 单位:米
  2781. CFG_POLYGON stuNearDetectPoint; // 近景检测点
  2782. CFG_POLYGON stuFarDectectPoint; // 远景检测点
  2783. int nNearDistance; // NearDetectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
  2784. int nFarDistance; // FarDectectPoint,转换到实际场景中时,离摄像头垂直线的水平距离
  2785. char szSubType[MAX_NAME_LEN]; // 交通场景的子类型,"Gate",卡口类型,"Junction" 路口类型,"ParkingSpace" 车位检测类型
  2786. int nLaneNum; // 车道数
  2787. CFG_LANE stuLanes[MAX_LANE_NUM]; // 车道信息
  2788. int nPlateHintNum; // 车牌字符暗示个数
  2789. char szPlateHints[MAX_PLATEHINT_NUM][MAX_NAME_LEN]; // 车牌字符暗示数组,在拍摄图片质量较差车牌识别不确定时,根据此数组中的字符进行匹配,数组下标越小,匹配优先级越高
  2790. int nLightGroupNum; // 灯组数
  2791. CFG_LIGHTGROUPS stLightGroups[MAX_LIGHTGROUP_NUM]; // 灯组配置信息
  2792. BOOL bHangingWordPlate; // 是否识别挂字车牌
  2793. BOOL bNonStdPolicePlate; // 是否识别非标准警牌
  2794. BOOL bYellowPlateLetter; // 是否识别黄牌字母
  2795. int nReportMode; // 上报模式,0:未定义,1:上报所有违章车辆,2:上报车牌识别成功的违章车辆
  2796. int nPlateMatch; // 车牌匹配率,0~100,多次识别车牌使用,表示重复识别车牌和前一次识别车牌的一致性要求
  2797. int nJudgment; // 违章判定依据,0:未定义,1:按车道,2:按行驶方向,3:按车道和行驶方向
  2798. int nLeftDivisionPtCount; // 左转弯分界线点数
  2799. CFG_POLYLINE stLeftDivisionLine[MAX_POLYLINE_NUM]; // 左转弯分界线
  2800. int nRightDivisionPtCount; // 右转弯分界线点数
  2801. CFG_POLYLINE stRightDivisionLine[MAX_POLYLINE_NUM]; // 右转弯分界线
  2802. CFG_ADJUST_LIGHT_COLOR stAdjustLightColor; // 交通灯颜色校正配置
  2803. int nParkingSpaceNum; // 车位数
  2804. CFG_PARKING_SPACE stParkingSpaces[MAX_PARKING_SPACE_NUM]; // 车位配置信息,每个元素代表一个车位
  2805. // 一般场景信息
  2806. int nStaffNum; // 标尺数
  2807. CFG_STAFF stuStaffs[MAX_STAFF_NUM]; // 标尺
  2808. unsigned int nCalibrateAreaNum; // 标定区域数
  2809. CFG_CALIBRATEAREA_INFO stuCalibrateArea[MAX_CALIBRATEBOX_NUM]; // 标定区域(若该字段不存在,则以整幅场景为标定区域)
  2810. BOOL bFaceRecognition; // 人脸识别场景是否有效
  2811. CFG_FACERECOGNITION_SCENCE_INFO stuFaceRecognitionScene; // 人脸识别场景
  2812. bool abJitter;
  2813. bool abDejitter;
  2814. BYTE bReserved[2]; // 保留字段
  2815. int nJitter; // 摄像机抖动率 : 摄像机抖动率,取值0-100,反应静止摄像机抖动程度,抖动越厉害,值越大。
  2816. BOOL bDejitter; // 是否开启去抖动模块 目前不实现
  2817. BOOL abCompatibleMode;
  2818. int nCompatibleMode; // 0:"OldTrafficRule" : 交通老规则兼容模式;1:"NewTrafficRule" : 交通新规则兼容模式;-1:字符串错误
  2819. int nCustomDataLen; // 实际数据长度,不能大于1024
  2820. BYTE byCustomData[1024]; // 第三方自定义配置数据
  2821. double CameraAngle; // 摄像头与垂方向的夹角
  2822. CFG_POLYGON stuLandLineStart; // 地平线线段起始点(点的坐标坐标归一化到[0,8192)区间。)
  2823. CFG_POLYGON stuLandLineEnd; // 地平线线段终止点(点的坐标坐标归一化到[0,8192)区间。)
  2824. BOOL bFaceDetection; // 人脸检测场景是否有效
  2825. CFG_FACEDETECTION_SCENCE_INFO stuFaceDetectionScene; // 人脸检测场景
  2826. CFG_TIME_PERIOD stuDayTimePeriod; // 标定白天的时间段.(8,20),表示从8点到晚上20点为白天
  2827. CFG_TIME_PERIOD stuNightTimePeriod; // 标定黑夜的时间段.(20,7),表示从晚8点到凌晨7点为黑夜
  2828. CFG_TIME_PERIOD_SCENE_INFO stuTimePeriodSceneInfo; // 多场景标定白天和黑夜时间段
  2829. CFG_CALIBRATEAREA_SCENE_INFO stuCalibrateAreaSceneInfo; // 多场景标定区域配置信息
  2830. CFG_TIMEPERIOD_SWITCH_MODE emSwitchMode; // 昼夜算法切换模式,详见CFG_TIMEPERIOD_SWITCH_MODE
  2831. int nSceneNum; // 场景数, >0时表示支持多场景, stuMultiScene有效
  2832. CFG_ANALYSEGLOBAL_SCENE stuMultiScene[MAX_ANALYSE_SCENE_NUM]; // 多场景配置
  2833. int nSceneCount; // 实际场景个数
  2834. char szSceneTypeList[MAX_SCENE_TYPE_LIST_SIZE][CFG_COMMON_STRING_16];// 场景列别,同一视频通道下启用多个场景时,表示第2个之后的方案(可选)
  2835. EM_DEPTH_TYPE emDepthType; // 画面景深
  2836. int nPtzPresetId; // 云台预置点编号,0~255
  2837. UINT unLongitude; // 经度 单位百万分之一度
  2838. UINT unLatitude; // 纬度 单位百万分之一度
  2839. } CFG_ANALYSEGLOBAL_INFO;
  2840. // 尺寸过滤器
  2841. typedef struct tagCFG_SIZEFILTER_INFO
  2842. {
  2843. int nCalibrateBoxNum; // 校准框个数
  2844. CFG_CALIBRATEBOX_INFO stuCalibrateBoxs[MAX_CALIBRATEBOX_NUM]; // 校准框(远端近端标定模式下有效)
  2845. bool bMeasureModeEnable; // 计量方式参数是否有效
  2846. BYTE bMeasureMode; // 计量方式,0-像素,不需要远端、近端标定, 1-实际长度,单位:米, 2-远端近端标定后的像素
  2847. bool bFilterTypeEnable; // 过滤类型参数是否有效
  2848. // ByArea,ByRatio仅作兼容,使用独立的ByArea和ByRatio选项代替 2012/03/06
  2849. BYTE bFilterType; // 过滤类型:0:"ByLength",1:"ByArea", 2"ByWidthHeight"
  2850. BYTE bReserved[2]; // 保留字段
  2851. bool bFilterMinSizeEnable; // 物体最小尺寸参数是否有效
  2852. bool bFilterMaxSizeEnable; // 物体最大尺寸参数是否有效
  2853. CFG_SIZE stuFilterMinSize; // 物体最小尺寸 "ByLength"模式下表示宽高的尺寸,"ByArea"模式下宽表示面积,高无效(远端近端标定模式下表示基准框的宽高尺寸)。
  2854. CFG_SIZE stuFilterMaxSize; // 物体最大尺寸 "ByLength"模式下表示宽高的尺寸,"ByArea"模式下宽表示面积,高无效(远端近端标定模式下表示基准框的宽高尺寸)。
  2855. bool abByArea;
  2856. bool abMinArea;
  2857. bool abMaxArea;
  2858. bool abMinAreaSize;
  2859. bool abMaxAreaSize;
  2860. bool bByArea; // 是否按面积过滤 通过能力ComplexSizeFilter判断是否可用
  2861. bool bReserved1[2];
  2862. float nMinArea; // 最小面积
  2863. float nMaxArea; // 最大面积
  2864. CFG_SIZE stuMinAreaSize; // 最小面积矩形框尺寸 "计量方式"为"像素"时,表示最小面积矩形框的宽高尺寸;"计量方式"为"远端近端标定模式"时,表示基准框的最小宽高尺寸;
  2865. CFG_SIZE stuMaxAreaSize; // 最大面积矩形框尺寸, 同上
  2866. bool abByRatio;
  2867. bool abMinRatio;
  2868. bool abMaxRatio;
  2869. bool abMinRatioSize;
  2870. bool abMaxRatioSize;
  2871. bool bByRatio; // 是否按宽高比过滤 通过能力ComplexSizeFilter判断是否可用
  2872. bool bReserved2[2];
  2873. double dMinRatio; // 最小宽高比
  2874. double dMaxRatio; // 最大宽高比
  2875. CFG_SIZE stuMinRatioSize; // 最小宽高比矩形框尺寸,最小宽高比对应矩形框的宽高尺寸。
  2876. CFG_SIZE stuMaxRatioSize; // 最大宽高比矩形框尺寸,同上
  2877. int nAreaCalibrateBoxNum; // 面积校准框个数
  2878. CFG_CALIBRATEBOX_INFO stuAreaCalibrateBoxs[MAX_CALIBRATEBOX_NUM];// 面积校准框
  2879. int nRatioCalibrateBoxs; // 宽高校准框个数
  2880. CFG_CALIBRATEBOX_INFO stuRatioCalibrateBoxs[MAX_CALIBRATEBOX_NUM];// 宽高校准框
  2881. bool abBySize; // 长宽过滤使能参数是否有效
  2882. bool bBySize; // 长宽过滤使能
  2883. }CFG_SIZEFILTER_INFO;
  2884. // 各种物体特定的过滤器
  2885. typedef struct tagCFG_OBJECT_SIZEFILTER_INFO
  2886. {
  2887. char szObjectType[MAX_NAME_LEN]; // 物体类型
  2888. CFG_SIZEFILTER_INFO stSizeFilter; // 对应的尺寸过滤器
  2889. }CFG_OBJECT_SIZEFILTER_INFO;
  2890. // 特殊检测区,是指从检测区中区分出来,有特殊检测属性的区域
  2891. typedef struct tagCFG_SPECIALDETECTREGION_INFO
  2892. {
  2893. int nDetectNum; // 检测区域顶点数
  2894. CFG_POLYGON stDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  2895. int nPropertyNum; // 特殊检测区属性个数
  2896. int nPropertys[EM_SEPCIALREGION_PROPERTY_TYPE_NUM]; // 特殊检测区属性
  2897. }CFG_SPECIALDETECT_INFO;
  2898. //各类物体的子类型
  2899. typedef enum tagCFG_CATEGORY_TYPE
  2900. {
  2901. CFG_CATEGORY_TYPE_UNKNOW, // 未知类型
  2902. //车型相关子类别
  2903. CFG_CATEGORY_VEHICLE_TYPE_MOTOR, // "Motor" 机动车
  2904. CFG_CATEGORY_VEHICLE_TYPE_NON_MOTOR, // "Non-Motor"非机动车
  2905. CFG_CATEGORY_VEHICLE_TYPE_BUS, // "Bus"公交车
  2906. CFG_CATEGORY_VEHICLE_TYPE_BICYCLE, // "Bicycle" 自行车
  2907. CFG_CATEGORY_VEHICLE_TYPE_MOTORCYCLE, // "Motorcycle"摩托车
  2908. CFG_CATEGORY_VEHICLE_TYPE_UNLICENSEDMOTOR, // "UnlicensedMotor": 无牌机动车
  2909. CFG_CATEGORY_VEHICLE_TYPE_LARGECAR, // "LargeCar" 大型汽车
  2910. CFG_CATEGORY_VEHICLE_TYPE_MICROCAR, // "MicroCar" 小型汽车
  2911. CFG_CATEGORY_VEHICLE_TYPE_EMBASSYCAR, // "EmbassyCar" 使馆汽车
  2912. CFG_CATEGORY_VEHICLE_TYPE_MARGINALCAR, // "MarginalCar" 领馆汽车
  2913. CFG_CATEGORY_VEHICLE_TYPE_AREAOUTCAR, // "AreaoutCar" 境外汽车
  2914. CFG_CATEGORY_VEHICLE_TYPE_FOREIGNCAR, // "ForeignCar" 外籍汽车
  2915. CFG_CATEGORY_VEHICLE_TYPE_DUALTRIWHEELMOTORCYCLE, // "DualTriWheelMotorcycle"两、三轮摩托车
  2916. CFG_CATEGORY_VEHICLE_TYPE_LIGHTMOTORCYCLE, // "LightMotorcycle" 轻便摩托车
  2917. CFG_CATEGORY_VEHICLE_TYPE_EMBASSYMOTORCYCLE, // "EmbassyMotorcycle "使馆摩托车
  2918. CFG_CATEGORY_VEHICLE_TYPE_MARGINALMOTORCYCLE, // "MarginalMotorcycle "领馆摩托车
  2919. CFG_CATEGORY_VEHICLE_TYPE_AREAOUTMOTORCYCLE, // "AreaoutMotorcycle "境外摩托车
  2920. CFG_CATEGORY_VEHICLE_TYPE_FOREIGNMOTORCYCLE, // "ForeignMotorcycle "外籍摩托车
  2921. CFG_CATEGORY_VEHICLE_TYPE_FARMTRANSMITCAR, // "FarmTransmitCar" 农用运输车
  2922. CFG_CATEGORY_VEHICLE_TYPE_TRACTOR, // "Tractor" 拖拉机
  2923. CFG_CATEGORY_VEHICLE_TYPE_TRAILER, // "Trailer" 挂车
  2924. CFG_CATEGORY_VEHICLE_TYPE_COACHCAR, // "CoachCar"教练汽车
  2925. CFG_CATEGORY_VEHICLE_TYPE_COACHMOTORCYCLE, // "CoachMotorcycle "教练摩托车
  2926. CFG_CATEGORY_VEHICLE_TYPE_TRIALCAR, // "TrialCar" 试验汽车
  2927. CFG_CATEGORY_VEHICLE_TYPE_TRIALMOTORCYCLE, // "TrialMotorcycle "试验摩托车
  2928. CFG_CATEGORY_VEHICLE_TYPE_TEMPORARYENTRYCAR, // "TemporaryEntryCar"临时入境汽车
  2929. CFG_CATEGORY_VEHICLE_TYPE_TEMPORARYENTRYMOTORCYCLE, // "TemporaryEntryMotorcycle"临时入境摩托车
  2930. CFG_CATEGORY_VEHICLE_TYPE_TEMPORARYSTEERCAR, // "TemporarySteerCar"临时行驶车
  2931. CFG_CATEGORY_VEHICLE_TYPE_PASSENGERCAR, // "PassengerCar" 客车
  2932. CFG_CATEGORY_VEHICLE_TYPE_LARGETRUCK, // "LargeTruck" 大货车
  2933. CFG_CATEGORY_VEHICLE_TYPE_MIDTRUCK, // "MidTruck" 中货车
  2934. CFG_CATEGORY_VEHICLE_TYPE_SALOONCAR, // "SaloonCar" 轿车
  2935. CFG_CATEGORY_VEHICLE_TYPE_MICROBUS, // "Microbus"面包车
  2936. CFG_CATEGORY_VEHICLE_TYPE_MICROTRUCK, // "MicroTruck"小货车
  2937. CFG_CATEGORY_VEHICLE_TYPE_TRICYCLE, // "Tricycle"三轮车
  2938. CFG_CATEGORY_VEHICLE_TYPE_PASSERBY, // "Passerby" 行人
  2939. CFG_CATEGORY_VEHICLE_TYPE_OILTANKTRUCK, // "OilTankTruck" 油罐车
  2940. CFG_CATEGORY_VEHICLE_TYPE_TANKCAR, // "TankCar" 槽罐车
  2941. CFG_CATEGORY_VEHICLE_TYPE_SUV, // "SUV" SUV
  2942. CFG_CATEGORY_VEHICLE_TYPE_MPV, // "MPV" MPV
  2943. //车牌相关子类别
  2944. CFG_CATEGORY_PLATE_TYPE_NORMAL, // "Normal" 蓝牌黑字
  2945. CFG_CATEGORY_PLATE_TYPE_YELLOW, // "Yellow" 黄牌
  2946. CFG_CATEGORY_PLATE_TYPE_DOUBLEYELLOW, // "DoubleYellow" 双层黄尾牌
  2947. CFG_CATEGORY_PLATE_TYPE_POLICE, // "Police" 警牌
  2948. CFG_CATEGORY_PLATE_TYPE_ARMED, // "Armed" 武警牌
  2949. CFG_CATEGORY_PLATE_TYPE_MILITARY, // "Military" 部队号牌
  2950. CFG_CATEGORY_PLATE_TYPE_DOUBLEMILITARY, // "DoubleMilitary" 部队双层
  2951. CFG_CATEGORY_PLATE_TYPE_SAR, // "SAR" 港澳特区号牌
  2952. CFG_CATEGORY_PLATE_TYPE_TRAINNING, // "Trainning" 教练车号牌
  2953. CFG_CATEGORY_PLATE_TYPE_PERSONAL, // "Personal" 个性号牌
  2954. CFG_CATEGORY_PLATE_TYPE_AGRI, // "Agri" 农用牌
  2955. CFG_CATEGORY_PLATE_TYPE_EMBASSY, // "Embassy" 使馆号牌
  2956. CFG_CATEGORY_PLATE_TYPE_MOTO, // "Moto" 摩托车号牌
  2957. CFG_CATEGORY_PLATE_TYPE_TRACTOR, // "Tractor" 拖拉机号牌
  2958. CFG_CATEGORY_PLATE_TYPE_OFFICIALCAR, // "OfficialCar " 公务车
  2959. CFG_CATEGORY_PLATE_TYPE_PERSONALCAR, // "PersonalCar" 私家车
  2960. CFG_CATEGORY_PLATE_TYPE_WARCAR, // "WarCar" 军用
  2961. CFG_CATEGORY_PLATE_TYPE_OTHER, // "Other" 其他号牌
  2962. CFG_CATEGORY_PLATE_TYPE_CIVILAVIATION, // "Civilaviation" 民航号牌
  2963. CFG_CATEGORY_PLATE_TYPE_BLACK, // "Black" 黑牌
  2964. CFG_CATEGORY_PLATE_TYPE_PURENEWENERGYMICROCAR, // "PureNewEnergyMicroCar" 纯电动新能源小车
  2965. CFG_CATEGORY_PLATE_TYPE_MIXEDNEWENERGYMICROCAR, // "MixedNewEnergyMicroCar" 混合新能源小车
  2966. CFG_CATEGORY_PLATE_TYPE_PURENEWENERGYLARGECAR, // "PureNewEnergyLargeCar" 纯电动新能源大车
  2967. CFG_CATEGORY_PLATE_TYPE_MIXEDNEWENERGYLARGECAR, // "MixedNewEnergyLargeCar" 混合新能源大车
  2968. }CFG_CATEGORY_TYPE;
  2969. // 计量方式
  2970. typedef enum tagEM_CFG_MEASURE_MODE_TYPE
  2971. {
  2972. EM_CFG_NEASURE_MODE_TYPE_UNKNOW, // 未知
  2973. EM_CFG_NEASURE_MODE_TYPE_PIXEL, // 像素
  2974. EM_CFG_NEASURE_MODE_TYPE_METRIC, // 实际长度
  2975. }EM_CFG_MEASURE_MODE_TYPE;
  2976. // 过滤类型
  2977. typedef enum tagCFG_FILTER_HEIGHT_TYPE
  2978. {
  2979. CFG_FILTER_HEIGHT_TYPE_UNKNOW, // 未知
  2980. CFG_FILTER_HEIGHT_TYPE_BYHEIGHT, // 高度
  2981. }CFG_FILTER_HEIGHT_TYPE;
  2982. // 物体类型长度过滤器
  2983. typedef struct tagCFG_LENGTH_FILTER_INFO
  2984. {
  2985. EM_CFG_MEASURE_MODE_TYPE emMeasureMode; // 计量方式
  2986. CFG_FILTER_HEIGHT_TYPE emFilterType; // 过滤类型
  2987. int nDetectType; // 0:大于且小于 1:大于或等于且小于或等于 2:大于且小于或等于 3:大于或等于且小于
  2988. int nMinLen; // 最小检测长度,单位:cm
  2989. int nMaxLen; // 最大检测长度,单位:cm
  2990. }CFG_LENGTH_FILETER_INFO;
  2991. // 不同区域各种类型物体的检测模块配置
  2992. typedef struct tagCFG_MODULE_INFO
  2993. {
  2994. // 信息
  2995. char szObjectType[MAX_NAME_LEN]; // 默认物体类型,详见"支持的检测物体类型列表"
  2996. bool bSnapShot; // 是否对识别物体抓图
  2997. BYTE bSensitivity; // 灵敏度,取值1-10,值越小灵敏度越低
  2998. bool bMeasureModeEnable; // 计量方式参数是否有效
  2999. BYTE bMeasureMode; // 计量方式,0-像素,不需要远端、近端标定, 1-实际长度,单位:米, 2-远端近端标定后的像素
  3000. int nDetectRegionPoint; // 检测区域顶点数
  3001. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3002. int nTrackRegionPoint; // 跟踪区域顶点数
  3003. CFG_POLYGON stuTrackRegion[MAX_POLYGON_NUM]; // 跟踪区域
  3004. bool bFilterTypeEnable; // 过滤类型参数是否有效
  3005. // ByArea,ByRatio仅作兼容,使用独立的ByArea和ByRatio选项代替 2012/03/06
  3006. BYTE nFilterType; // 过滤类型:0:"ByLength",1:"ByArea", 2:"ByWidthHeight", 3:"ByRatio": 按照宽高比,宽度除以高度的结果小于某个值或者大于某个值的问题将被过滤掉。
  3007. bool bBackgroudEnable; // 区域的背景类型参数是否有效
  3008. BYTE bBackgroud; // 区域的背景类型, 0-普通类型, 1-高光类型
  3009. bool abBySize; // 长宽过滤使能参数是否有效
  3010. bool bBySize; // 长宽过滤使能
  3011. bool bFilterMinSizeEnable; // 物体最小尺寸参数是否有效
  3012. bool bFilterMaxSizeEnable; // 物体最大尺寸参数是否有效
  3013. CFG_SIZE stuFilterMinSize; // 物体最小尺寸 "ByLength"模式下表示宽高的尺寸,"ByArea"模式下宽表示面积,高无效。
  3014. CFG_SIZE stuFilterMaxSize; // 物体最大尺寸 "ByLength"模式下表示宽高的尺寸,"ByArea"模式下宽表示面积,高无效。
  3015. int nExcludeRegionNum; // 排除区域数
  3016. CFG_REGION stuExcludeRegion[MAX_EXCLUDEREGION_NUM];// 排除区域
  3017. int nCalibrateBoxNum; // 校准框个数
  3018. CFG_CALIBRATEBOX_INFO stuCalibrateBoxs[MAX_CALIBRATEBOX_NUM];// 校准框(远端近端标定模式下有效)
  3019. bool bAccuracy; // 检测精度是否有效
  3020. BYTE byAccuracy; // 检测精度
  3021. bool bMovingStep; // 算法移动步长是否有效
  3022. BYTE byMovingStep; // 算法移动步长
  3023. bool bScalingFactor; // 算法缩放因子是否有效
  3024. BYTE byScalingFactor; // 算法缩放因子
  3025. BYTE bReserved2[1]; // 保留字段
  3026. bool abDetectBalance; // 漏检和误检平衡参数是否有效
  3027. int nDetectBalance; // 漏检和误检平衡 0-折中模式(默认)1-漏检更少2-误检更少
  3028. bool abByRatio;
  3029. bool abMinRatio;
  3030. bool abMaxRatio;
  3031. bool abMinAreaSize;
  3032. bool abMaxAreaSize;
  3033. bool bByRatio; // 是否按宽高比过滤 通过能力ComplexSizeFilter判断是否可用 可以和nFilterType复用
  3034. bool bReserved1[2];
  3035. double dMinRatio; // 最小宽高比
  3036. double dMaxRatio; // 最大宽高比
  3037. CFG_SIZE stuMinAreaSize; // 最小面积矩形框尺寸 "计量方式"为"像素"时,表示最小面积矩形框的宽高尺寸;"计量方式"为"远端近端标定模式"时,表示基准框的最小宽高尺寸;
  3038. CFG_SIZE stuMaxAreaSize; // 最大面积矩形框尺寸, 同上
  3039. bool abByArea;
  3040. bool abMinArea;
  3041. bool abMaxArea;
  3042. bool abMinRatioSize;
  3043. bool abMaxRatioSize;
  3044. bool bByArea; // 是否按面积过滤 通过能力ComplexSizeFilter判断是否可用 可以和nFilterType复用
  3045. bool bReserved3[2];
  3046. float nMinArea; // 最小面积
  3047. float nMaxArea; // 最大面积
  3048. CFG_SIZE stuMinRatioSize; // 最小宽高比矩形框尺寸,最小宽高比对应矩形框的宽高尺寸。
  3049. CFG_SIZE stuMaxRatioSize; // 最大宽高比矩形框尺寸,同上
  3050. int nAreaCalibrateBoxNum; // 面积校准框个数
  3051. CFG_CALIBRATEBOX_INFO stuAreaCalibrateBoxs[MAX_CALIBRATEBOX_NUM];// 面积校准框
  3052. int nRatioCalibrateBoxs; // 比例校准框个数
  3053. CFG_CALIBRATEBOX_INFO stuRatioCalibrateBoxs[MAX_CALIBRATEBOX_NUM];// 比例校准框个数
  3054. bool bAntiDisturbance; // 是否开启去扰动模块
  3055. bool bBacklight; // 是否有逆光
  3056. bool bShadow; // 是否有阴影
  3057. bool bContourAssistantTrack; // 是否开启轮廓辅助跟踪,例:在人脸识别时可以通过跟踪人体来辅助识别人脸
  3058. int nPtzPresetId; // 云台预置点,0~255,0表示固定场景,忽略预置点。大于0表示在此预置点时模块有效
  3059. int nObjectFilterNum; // 物体特定的过滤器个数
  3060. CFG_OBJECT_SIZEFILTER_INFO stObjectFilter[MAX_OBJECT_LIST_SIZE]; // 物体特定的过滤器信息
  3061. BOOL abObjectImageSize;
  3062. CFG_SIZE stObjectImageSize; // 保证物体图像尺寸相同,单位是像素,不支持小数,取值:>=0, 0 表示自动调整大小
  3063. int nSpecailDetectNum; // 特殊检测区域个数
  3064. CFG_SPECIALDETECT_INFO stSpecialDetectRegions[MAX_SPECIALDETECT_NUM]; // 特殊检测区信息
  3065. unsigned int nAttribute; // 需要识别物体的属性个数
  3066. char szAttributes[MAX_OBJECT_ATTRIBUTES_SIZE][MAX_NAME_LEN]; // 需要识别物体的属性列表,“Category” 物体子类;“Size” 物体大小;“Color” 物体颜色;“Speed” 物体速度;“Sign” 物体标志,对车辆而言,指车标;“Action” 物体动作
  3067. BOOL abPlateAnalyseMode; // nPlateAnalyseMode是否有效
  3068. int nPlateAnalyseMode; // 车牌识别模式,0-只识别车头牌照 1-只识别车尾牌照 2-车头牌照优先(场景中大部分车均是车头牌照)3-车尾牌照优先(场景中大部分车均是车尾牌照)
  3069. //szAttributes属性存在"Category"时生效
  3070. unsigned int nCategoryNum; // 需要识别物体的子类型总数
  3071. CFG_CATEGORY_TYPE emCategoryType[MAX_CATEGORY_TYPE_NUMBER]; // 子类型信息
  3072. char szSceneType[CFG_COMMON_STRING_16]; // 检测区参数用于的场景类型
  3073. CFG_LENGTH_FILETER_INFO stuLengthFilter; // 物体类型过滤器,如果指定新的过滤器以新的为准
  3074. } CFG_MODULE_INFO;
  3075. typedef struct tagCFG_ANALYSEMODULES_INFO
  3076. {
  3077. int nMoudlesNum; // 检测模块数
  3078. CFG_MODULE_INFO stuModuleInfo[MAX_ANALYSE_MODULE_NUM]; // 每个视频输入通道对应的各种类型物体的检测模块配置
  3079. } CFG_ANALYSEMODULES_INFO;
  3080. // 视频分析事件规则配置相关结构体定义
  3081. enum CFG_EM_DETECTMODE_T{
  3082. CFG_EM_DETECTMODE_NONE, // 无此字段
  3083. CFG_EM_DETECTMODE_BY_VIDEO, // 视频检测模式
  3084. CFG_EM_DETECTMODE_BY_BYAUDIO, // 音频检测模式
  3085. CFG_EM_DETECTMODE_BY_BOTH, // 音视频联合检测模式
  3086. CFG_EM_DETECTMODE_ERR=255 // 字段数据错误
  3087. };
  3088. typedef struct tag_VIDEOINANALYSE_GLOBAL_COMM_INFO
  3089. {
  3090. EM_SCENE_TYPE emClassType; // 应用场景
  3091. int nPtzPresetId; // 预置点
  3092. } VIDEOINANALYSE_GLOBAL_COMM_INFO;
  3093. typedef struct tagCFG_VIDEOINANALYSE_GLOBAL_SCENE
  3094. {
  3095. VIDEOINANALYSE_GLOBAL_COMM_INFO stuCommInfo; // 公共信息
  3096. // 以下为场景具体信息, 根据stuCommInfo中的emSceneType决定哪个场景有效
  3097. union
  3098. {
  3099. CFG_FACEDETECTION_SCENCE_INFO stuFaceDetectionScene; // 人脸检测场景/人脸识别检查
  3100. CFG_TRAFFIC_SCENE_INFO stuTrafficScene; // 交通场景
  3101. CFG_NORMAL_SCENE_INFO stuNormalScene; // 普通场景/远景场景/中景场景/近景场景/室内场景/人数统计场景
  3102. CFG_TRAFFIC_TOUR_SCENE_INFO stuTrafficTourScene; // 交通巡视场景
  3103. };
  3104. } CFG_VIDEOINANALYSE_GLOBAL_SCENE;
  3105. // 全局配置模板和默认值
  3106. typedef struct tagCFG_VIDEOINANALYSE_GLOBAL_INFO
  3107. {
  3108. unsigned int nCalibrateAreaNum; // 标定区域数
  3109. CFG_CALIBRATEAREA_INFO stuCalibrateArea[MAX_CALIBRATEBOX_NUM]; // 标定区域(若该字段不存在,则以整幅场景为标定区域)
  3110. CFG_VIDEOINANALYSE_GLOBAL_SCENE stuVideoInAnalyseScene; // 多场景配置
  3111. }CFG_VIDEOINANALYSE_GLOBAL_INFO;
  3112. // 智能检测区配置模板和默认值
  3113. typedef struct tagCFG_VIDEOINANALYSE_MODULE_INFO
  3114. {
  3115. CFG_MODULE_INFO stuModuleInfo; // 获取到的智能检测区配置模板和默认值
  3116. }CFG_VIDEOINANALYSE_MODULE_INFO;
  3117. // 车辆类型
  3118. typedef enum tagEM_CFG_CATEGORY_TYPE
  3119. {
  3120. EM_CFG_CATEGORY_UNKNOWN, // 未知
  3121. EM_CFG_CATEGORY_OTHER, // 其他
  3122. EM_CFG_CATEGORY_MOTOR, // 机动车
  3123. EM_CFG_CATEGORY_BUS, // 公交车
  3124. EM_CFG_CATEGORY_UNLICENSED_MOTOR, // 无牌机动车
  3125. EM_CFG_CATEGORY_LARGE_CAR, // 大型汽车
  3126. EM_CFG_CATEGORY_MICRO_CAR, // 小型汽车
  3127. EM_CFG_CATEGORY_EMBASSY_CAR, // 使馆汽车
  3128. EM_CFG_CATEGORY_MARGINAL_CAR, // 领馆汽车
  3129. EM_CFG_CATEGORY_AREAOUT_CAR, // 境外汽车
  3130. EM_CFG_CATEGORY_FOREIGN_CAR, // 外籍汽车
  3131. EM_CFG_CATEGORY_FARMTRANSMIT_CAR, // 农用运输车
  3132. EM_CFG_CATEGORY_TRACTOR, // 拖拉机
  3133. EM_CFG_CATEGORY_TRAILER, // 挂车
  3134. EM_CFG_CATEGORY_COACH_CAR, // 教练汽车
  3135. EM_CFG_CATEGORY_TRIAL_CAR, // 试验汽车
  3136. EM_CFG_CATEGORY_TEMPORARY_ENTRY_CAR, // 临时入境汽车
  3137. EM_CFG_CATEGORY_TEMPORARY_ENTRY_MOTORCYCLE, // 临时入境摩托
  3138. EM_CFG_CATEGORY_TEMPORARY_STEER_CAR, // 临时行驶车
  3139. EM_CFG_CATEGORY_LARGE_TRUCK, // 大货车
  3140. EM_CFG_CATEGORY_MID_TRUCK, // 中货车
  3141. EM_CFG_CATEGORY_MICRO_TRUCK, // 小货车
  3142. EM_CFG_CATEGORY_MICROBUS, // 面包车
  3143. EM_CFG_CATEGORY_SALOON_CAR, // 轿车
  3144. EM_CFG_CATEGORY_CARRIAGE, // 小轿车
  3145. EM_CFG_CATEGORY_MINI_CARRIAGE, // 微型轿车
  3146. EM_CFG_CATEGORY_SUV_MPV, // SUV或者MPV
  3147. EM_CFG_CATEGORY_SUV, // SUV
  3148. EM_CFG_CATEGORY_MPV, // MPV
  3149. EM_CFG_CATEGORY_PASSENGER_CAR, // 客车
  3150. EM_CFG_CATEGORY_MOTOR_BUS, // 大客
  3151. EM_CFG_CATEGORY_MID_PASSENGER_CAR, // 中客车
  3152. EM_CFG_CATEGORY_MINI_BUS, // 小客车
  3153. EM_CFG_CATEGORY_PICKUP, // 皮卡车
  3154. EM_CFG_CATEGORY_OILTANK_TRUCK, // 油罐车
  3155. EM_CFG_CATEGORY_TANK_CAR, // 危化品车辆
  3156. EM_CFG_CATEGORY_SLOT_TANK_CAR, // 槽罐车
  3157. EM_CFG_CATEGORY_DREGS_CAR, // 渣土车
  3158. EM_CFG_CATEGORY_CONCRETE_MIXER_TRUCK, // 混凝土搅拌车
  3159. EM_CFG_CATEGORY_TAXI, // 出租车
  3160. EM_CFG_CATEGORY_POLICE, // 警车
  3161. EM_CFG_CATEGORY_AMBULANCE, // 救护车
  3162. EM_CFG_CATEGORY_GENERAL, // 普通车
  3163. EM_CFG_CATEGORY_WATERING_CAR, // 洒水车
  3164. EM_CFG_CATEGORY_FIRE_ENGINE, // 消防车
  3165. EM_CFG_CATEGORY_MACHINE_TRUCK, // 工程车
  3166. EM_CFG_CATEGORY_POWER_LOT_VEHICLE, // 粉粒物料车
  3167. EM_CFG_CATEGORY_SUCTION_SEWAGE_TRUCK, // 吸污车
  3168. EM_CFG_CATEGORY_NORMAL_TANK_TRUCK, // 普通罐车
  3169. EM_CFG_CATEGORY_SCHOOL_BUS, // 校车
  3170. EM_CFG_CATEGORY_EXCAVATOR, // 挖掘车
  3171. EM_CFG_CATEGORY_BULLDOZER, // 推土车
  3172. EM_CFG_CATEGORY_CRANE, // 吊车
  3173. EM_CFG_CATEGORY_PIMP_TRUCK, // 泵车
  3174. } EM_CFG_CATEGORY_TYPE;
  3175. // 视频分析事件规则配置
  3176. // 事件类型 EVENT_IVS_CROSSLINEDETECTION (警戒线事件)对应的规则配置
  3177. typedef struct tagCFG_CROSSLINE_INFO
  3178. {
  3179. // 信息
  3180. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3181. bool bRuleEnable; // 规则使能
  3182. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  3183. BYTE bReserved[2]; // 保留字段
  3184. int nObjectTypeNum; // 相应物体类型个数
  3185. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3186. int nDirection; // 检测方向:0:由左至右;1:由右至左;2:两者都可以
  3187. int nDetectLinePoint; // 警戒线顶点数
  3188. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 警戒线
  3189. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3190. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3191. BOOL bDisableTimeSection; // stuTimeSection字段是否禁用,默认FALSE:不禁用,TRUE:禁用,用户控制
  3192. int nPtzPresetId; // 云台预置点编号 0~65535
  3193. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3194. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3195. int nTriggerPosition; // 触发报警位置数
  3196. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  3197. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  3198. UINT nVehicleSubTypeNum; // 检测的车辆子类型个数
  3199. EM_CFG_CATEGORY_TYPE emVehicleSubType[128]; // 检测的车辆子类型列表
  3200. } CFG_CROSSLINE_INFO;
  3201. //事件类型EVENT_IVS_CROSSFENCEDETECTION(翻越围栏规则)对应的规则配置
  3202. typedef struct tagCFG_CROSSFENCEDETECTION_INFO
  3203. {
  3204. // 信息
  3205. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3206. bool bRuleEnable; // 规则使能
  3207. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  3208. BYTE bReserved[2]; // 保留字段
  3209. int nObjectTypeNum; // 相应物体类型个数
  3210. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3211. int nPtzPresetId; // 云台预置点编号 0~65535
  3212. int nDirection; // 翻越围栏方向:0:由左至右;1:由右至左;2:两者都可以
  3213. int nUpstairsLinePointNumber; // 围栏上线顶点数
  3214. CFG_POLYLINE stuUpstairsLine[MAX_POLYLINE_NUM]; // 围栏上线
  3215. int nDownstairsLinePointNumber; // 围栏下线顶点数
  3216. CFG_POLYLINE stuDownstairsLine[MAX_POLYLINE_NUM]; // 围栏下线
  3217. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3218. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3219. int nTriggerPosition; // 触发报警位置数
  3220. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  3221. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3222. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3223. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  3224. } CFG_CROSSFENCEDETECTION_INFO;
  3225. // 事件类型EVENT_IVS_CROSSREGIONDETECTION(警戒区事件)对应的规则配置
  3226. typedef struct tagCFG_CROSSREGION_INFO
  3227. {
  3228. // 信息
  3229. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3230. bool bRuleEnable; // 规则使能
  3231. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  3232. BYTE bReserved[2]; // 保留字段
  3233. int nObjectTypeNum; // 相应物体类型个数
  3234. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3235. int nDirection; // 检测方向:0:Enter;1:Leave;2:Both
  3236. int nDetectRegionPoint; // 警戒区顶点数
  3237. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区
  3238. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3239. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3240. BOOL bDisableTimeSection; // stuTimeSection字段是否禁用,默认FALSE:不禁用,TRUE:禁用,用户控制
  3241. int nPtzPresetId; // 云台预置点编号 0~65535
  3242. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3243. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3244. int nActionType; // 检测动作数
  3245. BYTE bActionType[4]; // 检测动作列表,0-出现 1-消失 2-在区域内 3-穿越区域
  3246. int nMinTargets; // 最小目标个数(当bActionType中包含"2-在区域内"时有效)
  3247. int nMaxTargets; // 最大目标个数(当bActionType中包含"2-在区域内"时有效)
  3248. int nMinDuration; // 最短持续时间, 单位秒(当bActionType中包含"2-在区域内"时有效)
  3249. int nReportInterval; // 报告时间间隔, 单位秒(当bActionType中包含"2-在区域内"时有效)
  3250. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  3251. UINT nVehicleSubTypeNum; // 检测的车辆子类型个数
  3252. EM_CFG_CATEGORY_TYPE emVehicleSubType[128]; // 检测的车辆子类型列表
  3253. } CFG_CROSSREGION_INFO;
  3254. // 事件类型EVENT_IVS_PASTEDETECTION(ATM贴条事件)对应的规则配置
  3255. typedef struct tagCFG_PASTE_INFO
  3256. {
  3257. // 信息
  3258. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3259. bool bRuleEnable; // 规则使能
  3260. BYTE bReserved[3]; // 保留字段
  3261. int nObjectTypeNum; // 相应物体类型个数
  3262. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3263. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3264. int nDetectRegionPoint; // 检测区域顶点数
  3265. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3266. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3267. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3268. int nPtzPresetId; // 云台预置点编号 0~65535
  3269. int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  3270. } CFG_PASTE_INFO;
  3271. // 事件类型EVENT_IVS_LEFTDETECTION(物品遗留事件)对应的规则配置
  3272. typedef struct tagCFG_LEFT_INFO
  3273. {
  3274. // 信息
  3275. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3276. bool bRuleEnable; // 规则使能
  3277. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  3278. BYTE bReserved[2]; // 保留字段
  3279. int nObjectTypeNum; // 相应物体类型个数
  3280. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3281. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3282. int nDetectRegionPoint; // 检测区域顶点数
  3283. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3284. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3285. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3286. int nPtzPresetId; // 云台预置点编号 0~65535
  3287. int nTriggerPosition; // 触发报警位置数
  3288. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  3289. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3290. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3291. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  3292. } CFG_LEFT_INFO;
  3293. // 事件类型EVENT_IVS_TAKENAWAYDETECTION(物品搬移规则配置)对应的规则配置
  3294. typedef struct tagCFG_TAKENAWAYDETECTION_INFO
  3295. {
  3296. // 信息
  3297. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3298. bool bRuleEnable; // 规则使能
  3299. BYTE bTrackEnable; // 触发跟踪使能
  3300. BYTE bReserved[2]; // 保留字段
  3301. int nObjectTypeNum; // 相应物体类型个数
  3302. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3303. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3304. int nDetectRegionPoint; // 检测区域顶点数
  3305. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3306. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3307. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3308. int nPtzPresetId; // 云台预置点编号 0~65535
  3309. int nTriggerPosition; // 触发报警位置数
  3310. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  3311. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3312. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3313. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  3314. } CFG_TAKENAWAYDETECTION_INFO;
  3315. // 事件类型EVENT_IVS_PARKINGDETECTION (非法停车)对应的规则配置
  3316. typedef struct tagCFG_PARKINGDETECTION_INFO
  3317. {
  3318. // 信息
  3319. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3320. bool bRuleEnable; // 规则使能
  3321. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  3322. BYTE bReserved[2]; // 保留字段
  3323. int nObjectTypeNum; // 相应物体类型个数
  3324. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3325. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3326. int nDetectRegionPoint; // 检测区域顶点数
  3327. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3328. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3329. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3330. int nPtzPresetId; // 云台预置点编号 0~65535
  3331. int nTriggerPosition; // 触发报警位置数
  3332. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  3333. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3334. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3335. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  3336. } CFG_PARKINGDETECTION_INFO;
  3337. // 事件类型EVENT_IVS_PRESERVATION(物品保全事件)对应的规则配置
  3338. typedef struct tagCFG_PRESERVATION_INFO
  3339. {
  3340. // 信息
  3341. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3342. bool bRuleEnable; // 规则使能
  3343. BYTE bReserved[3]; // 保留字段
  3344. int nObjectTypeNum; // 相应物体类型个数
  3345. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3346. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3347. int nDetectRegionPoint; // 检测区域顶点数
  3348. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3349. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3350. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3351. int nPtzPresetId; // 云台预置点编号 0~65535
  3352. } CFG_PRESERVATION_INFO;
  3353. // 事件类型EVENT_IVS_STAYDETECTION(停留事件/滞留)对应的规则配置
  3354. typedef struct tagCFG_STAY_INFO
  3355. {
  3356. // 信息
  3357. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3358. bool bRuleEnable; // 规则使能
  3359. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  3360. BYTE bReserved[2]; // 保留字段
  3361. int nObjectTypeNum; // 相应物体类型个数
  3362. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3363. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3364. int nDetectRegionPoint; // 检测区域顶点数
  3365. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3366. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3367. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3368. int nPtzPresetId; // 云台预置点编号 0~65535
  3369. int nTriggerPosition; // 触发报警位置数
  3370. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  3371. int nTriggerTargetsNumber; // 触发报警的徘徊或滞留人数
  3372. int nReportInterval; // 报告时间间隔,单位秒
  3373. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3374. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3375. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  3376. } CFG_STAY_INFO;
  3377. // 事件类型EVENT_IVS_WANDERDETECTION(徘徊事件)对应的规则配置
  3378. typedef struct tagCFG_WANDER_INFO
  3379. {
  3380. // 信息
  3381. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3382. bool bRuleEnable; // 规则使能
  3383. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  3384. BYTE bReserved[2]; // 保留字段
  3385. int nObjectTypeNum; // 相应物体类型个数
  3386. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3387. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3388. int nDetectRegionPoint; // 检测区域顶点数
  3389. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3390. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3391. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3392. int nPtzPresetId; // 云台预置点编号 0~65535
  3393. int nTriggerPosition; // 触发报警位置数
  3394. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  3395. int nTriggerTargetsNumber; // 触发报警的徘徊或滞留人数
  3396. int nReportInterval; // 报告时间间隔,单位秒
  3397. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3398. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3399. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  3400. } CFG_WANDER_INFO;
  3401. // 事件类型EVENT_IVS_MOVEDETECTION(移动事件/运动检测)对应的规则配置
  3402. typedef struct tagCFG_MOVE_INFO
  3403. {
  3404. // 信息
  3405. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3406. bool bRuleEnable; // 规则使能
  3407. BYTE bSensitivity; // 灵敏度,取值1-10,值越小灵敏度越低
  3408. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  3409. BYTE bReserved[1]; // 保留字段
  3410. int nObjectTypeNum; // 相应物体类型个数
  3411. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3412. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3413. int nDetectRegionPoint; // 检测区域顶点数
  3414. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3415. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3416. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3417. int nPtzPresetId; // 云台预置点编号 0~65535
  3418. int nTriggerSpeed; // 触发速度,km/h
  3419. int nTriggerPosition; // 触发报警位置数
  3420. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  3421. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3422. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3423. int nTypeNumber; // 检测类型数
  3424. BYTE bDetectType[4]; // 检测动作列表,0-快速运动 1-突然加速 2-突然减速
  3425. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  3426. } CFG_MOVE_INFO;
  3427. // 事件类型EVENT_IVS_TAILDETECTION(尾随事件)对应的规则配置
  3428. typedef struct tagCFG_TAIL_INFO
  3429. {
  3430. // 信息
  3431. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3432. bool bRuleEnable; // 规则使能
  3433. BYTE bReserved[3]; // 保留字段
  3434. int nObjectTypeNum; // 相应物体类型个数
  3435. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3436. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3437. int nDetectRegionPoint; // 检测区域顶点数
  3438. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3439. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3440. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3441. int nPtzPresetId; // 云台预置点编号 0~65535
  3442. int nDistance; // 间距,尾随配置中使用,范围[0, 500]
  3443. int nSensitivity; // 灵敏度,,范围[1, 10]
  3444. BYTE byReserved[512]; // 保留字节
  3445. } CFG_TAIL_INFO;
  3446. // 事件类型EVENT_IVS_RIOTERDETECTION(聚众事件)对应的规则配置
  3447. typedef struct tagCFG_RIOTER_INFO
  3448. {
  3449. // 信息
  3450. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3451. bool bRuleEnable; // 规则使能
  3452. BYTE bAreaPercent; // 聚集所占区域面积百分比
  3453. BYTE bSensitivity; // 灵敏度,取值1-10,值越小灵敏度越低,对应人群的密集程度越高(取代bAreaPercent)
  3454. BYTE bReserved; // 保留字段
  3455. int nObjectTypeNum; // 相应物体类型个数
  3456. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3457. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3458. int nDetectRegionPoint; // 检测区域顶点数
  3459. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3460. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3461. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3462. int nPtzPresetId; // 云台预置点编号 0~65535
  3463. int nReportInterval; // 报告时间间隔,单位秒 [1,600] 默认0表示不重复报警
  3464. CFG_POLYGON stuMinDetectRect[2]; // 最小聚集区域矩形框,分别对应矩形框的左上和右下点,矩形框的实际面积表示触发报警的最小人群聚集面积
  3465. int nTrackDuration; // 跟踪持续时间,0秒:一直跟踪,1~300秒:跟踪持续时间
  3466. BYTE bTrackEnable; // 触发跟踪使能
  3467. int nRioterThreshold; // 聚集人数阀值, 聚集人数超过此值,开始报警
  3468. } CFG_RIOTER_INFO;
  3469. // 事件类型EVENT_IVS_DENSITYDETECTION(人群密度检测事件)对应的规则配置
  3470. typedef struct tagCFG_DENSITYDETECTION_INFO
  3471. {
  3472. // 信息
  3473. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3474. bool bRuleEnable; // 规则使能
  3475. BYTE byUnit; // 密度检测数值单位GB30147需要 0 密度等级,划分为四个,很稀疏,稀疏,密集,很密集。1 密度百分比
  3476. BYTE bSensitivity; // 灵敏度(取值1-10,值越小灵敏度越低,对应人群的密集程度越高)
  3477. BYTE byMinAlarmDensity; // 最小报警密度 取值1-100,报警门限值百分比
  3478. int nObjectTypeNum; // 相应物体类型个数
  3479. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3480. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3481. int nDetectRegionPoint; // 检测区域顶点数
  3482. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3483. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3484. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3485. int nPtzPresetId; // 云台预置点编号 0~65535
  3486. } CFG_DENSITYDETECTION_INFO;
  3487. // 事件类型EVENT_IVS_FIGHTDETECTION(斗殴事件)对应的规则配置
  3488. typedef struct tagCFG_FIGHT_INFO
  3489. {
  3490. // 信息
  3491. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3492. bool bRuleEnable; // 规则使能
  3493. BYTE bReserved[3]; // 保留字段
  3494. int nObjectTypeNum; // 相应物体类型个数
  3495. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3496. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3497. int nDetectRegionPoint; // 检测区域顶点数
  3498. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3499. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3500. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3501. int nPtzPresetId; // 云台预置点编号 0~65535
  3502. int nSensitivity; // 灵敏度, 1-10
  3503. CFG_EM_DETECTMODE_T emDetectMode; // 检测模式
  3504. } CFG_FIGHT_INFO;
  3505. // 事件类型EVENT_IVS_FIREDETECTION(火警事件/火焰检测)对应的规则配置
  3506. typedef struct tagCFG_FIRE_INFO
  3507. {
  3508. // 信息
  3509. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3510. bool bRuleEnable; // 规则使能
  3511. BYTE bReserved[3]; // 保留字段
  3512. int nObjectTypeNum; // 相应物体类型个数
  3513. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3514. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3515. int nDetectRegionPoint; // 检测区域顶点数
  3516. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3517. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3518. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3519. int nPtzPresetId; // 云台预置点编号 0~65535
  3520. int nSensitivity; // 灵敏度 1~10
  3521. } CFG_FIRE_INFO;
  3522. // 事件类型EVENT_IVS_ELECTROSPARKDETECTION(电火花事件)对应的规则配置
  3523. typedef struct tagCFG_ELECTROSPARK_INFO
  3524. {
  3525. // 信息
  3526. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3527. bool bRuleEnable; // 规则使能
  3528. BYTE bReserved[3]; // 保留字段
  3529. int nObjectTypeNum; // 相应物体类型个数
  3530. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3531. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3532. int nDetectRegionPoint; // 检测区域顶点数
  3533. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3534. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3535. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3536. int nPtzPresetId; // 云台预置点编号 0~65535
  3537. } CFG_ELECTROSPARK_INFO;
  3538. // 事件类型 EVENT_IVS_SMOKEDETECTION (烟雾报警事件)对应的规则配置
  3539. typedef struct tagCFG_SMOKE_INFO
  3540. {
  3541. // 信息
  3542. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3543. bool bRuleEnable; // 规则使能
  3544. BYTE bReserved[3]; // 保留字段
  3545. int nObjectTypeNum; // 相应物体类型个数
  3546. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3547. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3548. int nDetectRegionPoint; // 检测区域顶点数
  3549. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3550. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3551. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3552. int nPtzPresetId; // 云台预置点编号 0~65535
  3553. int nSensitivity; // 灵敏度 1~10
  3554. } CFG_SMOKE_INFO;
  3555. // 事件类型EVENT_IVS_FLOWSTAT(流量统计事件)对应的规则配置
  3556. typedef struct tagCFG_FLOWSTAT_INFO
  3557. {
  3558. // 信息
  3559. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3560. bool bRuleEnable; // 规则使能
  3561. BYTE bReserved[3]; // 保留字段
  3562. int nObjectTypeNum; // 相应物体类型个数
  3563. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3564. int nUpperLimit; // 流量上限 单位:个/秒,1~65535
  3565. int nPeriod; // 上报周期 单位:秒,1~65535
  3566. int nDetectLinePoint; // 检测线顶点数
  3567. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 检测线
  3568. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3569. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3570. int nPtzPresetId; // 云台预置点编号 0~65535
  3571. } CFG_FLOWSTAT_INFO;
  3572. enum NET_NUMBERSTAT_TYPE
  3573. {
  3574. NET_EM_NUMSTAT_TYPE_REGION, // "Region" 区域类型
  3575. NET_EM_NUMSTAT_TYPE_ENTRANCE, // "Entrance" 出入口类型
  3576. NET_EM_NUMSTAT_TYPE_OTHER, // other
  3577. };
  3578. // 事件类型EVENT_IVS_NUMBERSTAT(数量统计事件)对应的规则配置
  3579. typedef struct tagCFG_NUMBERSTAT_INFO
  3580. {
  3581. // 信息
  3582. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3583. bool bRuleEnable; // 规则使能
  3584. BYTE bReserved[3]; // 保留字段
  3585. int nObjectTypeNum; // 相应物体类型个数
  3586. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3587. int nUpperLimit; // 数量上限 单位:个,1~65535
  3588. int nPeriod; // 上报周期 单位:秒,1~65535
  3589. int nDetectRegionPoint; // 检测区顶点数
  3590. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  3591. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3592. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3593. int nPtzPresetId; // 云台预置点编号 0~65535
  3594. NET_NUMBERSTAT_TYPE emType; // 数量统计类型 支持:"Region" 区域类型 "Entrance" 出入口类型
  3595. CFG_POLYGON stDirection[2]; // 正常运动方向, 按照此方向行驶是正向,反过来是逆行 只对出入口类型有效。第一个点是起点,第二个点是终点,点的坐标归一化到[0,8191]区间。
  3596. int nRecordInterval; // 记录周期,单位:分钟,1~10
  3597. int nEnterThreshold; // 进入数报警阈值,0表示不报警
  3598. int nExitThreshold; // 离开数报警阈值,0表示不报警
  3599. int nInsideThreshold; // 滞留数报警阈值,0表示不报警
  3600. UINT nPlanID; // 计划ID,仅球机有效,从1开始
  3601. UINT nAreaID; // 区域ID,一个预置点可以对应多个区域
  3602. int nMaxDetectLineNum; // 检测线实际最大个数
  3603. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 离开检测线坐标
  3604. } CFG_NUMBERSTAT_INFO;
  3605. //事件类型EVENT_IVS_RETROGRADEDETECTION(人员逆行事件)对应的规则配置
  3606. typedef struct tagCFG_RETROGRADEDETECTION_INFO
  3607. {
  3608. // 信息
  3609. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3610. bool bRuleEnable; // 规则使能
  3611. BYTE bSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低
  3612. BYTE bReserved[2]; // 保留字段
  3613. int nObjectTypeNum; // 相应物体类型个数
  3614. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3615. int nPtzPresetId; // 云台预置点编号 0~65535
  3616. int nDetectRegionPoint; // 检测区域顶点数
  3617. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3618. int nDirectionPoint; // 正常行驶方向顶点数
  3619. CFG_POLYGON stuDirection[MAX_POLYLINE_NUM]; // 正常行驶方向, 按照此方向行驶是正向,反过来是逆行(第一个点是起点,第二个点是终点,点的坐标归一化到[0,8191]区间)
  3620. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3621. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3622. int nTriggerPosition; // 触发报警位置数
  3623. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  3624. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3625. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3626. } CFG_RETROGRADEDETECTION_INFO;
  3627. //事件类型EVENT_IVS_ABNORMALRUNDETECTION(异常奔跑事件)对应的规则配置
  3628. typedef struct tagCFG_ABNORMALRUNDETECTION_INFO
  3629. {
  3630. // 信息
  3631. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3632. bool bRuleEnable; // 规则使能
  3633. BYTE bSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低
  3634. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  3635. BYTE bReserved[1]; // 保留字段
  3636. int nObjectTypeNum; // 相应物体类型个数
  3637. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3638. int nPtzPresetId; // 云台预置点编号 0~65535
  3639. int nDetectRegionPoint; // 检测区域顶点数
  3640. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3641. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3642. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3643. int nTriggerPosition; // 触发报警位置数
  3644. BYTE bTriggerPosition[8]; // 触发报警位置,0-目标外接框中心, 1-目标外接框左端中心, 2-目标外接框顶端中心, 3-目标外接框右端中心, 4-目标外接框底端中心
  3645. int nDetectType; // 检测类型数
  3646. BYTE bDetectType[4]; // 检测类型,0-快速奔跑, 1-突然加速, 2-突然减速
  3647. int nTriggerSpeed; // 触发速度,大于该速度报警 单位:km/h
  3648. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3649. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3650. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3651. } CFG_ABNORMALRUNDETECTION_INFO;
  3652. //事件类型EVENT_IVS_VIDEOABNORMALDETECTION(视频异常)对应的规则配置
  3653. typedef struct tagCFG_VIDEOABNORMALDETECTION_INFO
  3654. {
  3655. // 信息
  3656. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3657. bool bRuleEnable; // 规则使能
  3658. BYTE bSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低(只对检测类型视频遮挡,过亮,过暗,场景变化有效)
  3659. BYTE bReserved[2]; // 保留字段
  3660. int nObjectTypeNum; // 相应物体类型个数
  3661. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3662. int nPtzPresetId; // 云台预置点编号 0~65535
  3663. int nDetectType; // 检测类型数
  3664. BYTE bDetectType[MAX_ABNORMAL_DETECT_TYPE]; // 检测类型,0-视频丢失, 1-视频遮挡, 2-画面冻结, 3-过亮, 4-过暗, 5-场景变化
  3665. // 6-条纹检测 , 7-噪声检测 , 8-偏色检测 , 9-视频模糊检测 , 10-对比度异常检测
  3666. // 11-视频运动 , 12-视频闪烁 , 13-视频颜色 , 14-虚焦检测 , 15-过曝检测
  3667. int nMinDuration; // 最短持续时间 单位:秒,0~65535
  3668. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3669. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3670. int nDetectRegionPoint; // 检测区顶点数
  3671. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  3672. int nThresholdNum; // 异常检测阈值数量
  3673. int nThreshold[MAX_ABNORMAL_THRESHOLD_LEN]; // 异常检测阈值,范围1~100
  3674. } CFG_VIDEOABNORMALDETECTION_INFO;
  3675. // 事件类型EVENT_IVS_FACERECOGNITION(人脸识别)对应的规则配置
  3676. typedef struct tagCFG_FACERECOGNITION_INFO
  3677. {
  3678. // 信息
  3679. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3680. bool bRuleEnable; // 规则使能
  3681. BYTE bReserved[2]; // 保留字段
  3682. int nObjectTypeNum; // 相应物体类型个数
  3683. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3684. int nPtzPresetId; // 云台预置点编号 0~65535
  3685. BYTE bySimilarity; // 相似度,必须大于该相识度才报告(1~100)
  3686. BYTE byAccuracy; // 识别精度(取值1~10,随着值增大,检测精度提高,检测速度下降。最小值为1 表示检测速度优先,最大值为10表示检测精度优先)
  3687. BYTE byMode; // 对比模式, 0-正常, 1-指定人脸区域组合, 2-智能模式(算法根据人脸各个区域情况自动选取组合)
  3688. BYTE byImportantRank; // 查询重要等级大于等于此等级的人员(1~10,数值越高越重要)
  3689. int nAreaNum; // 区域数
  3690. BYTE byAreas[8]; // 人脸区域组合, 0-眉毛,1-眼睛,2-鼻子,3-嘴巴,4-脸颊(此参数在对比模式为1时有效)
  3691. int nMaxCandidate; // 报告的最大匹配图片个数
  3692. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3693. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3694. } CFG_FACERECOGNITION_INFO;
  3695. // 事件类型EVENT_IVS_TRAFFICCONTROL(交通管制事件)对应的规则配置
  3696. typedef struct tagCFG_TRAFFICCONTROL_INFO
  3697. {
  3698. // 信息
  3699. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3700. bool bRuleEnable; // 规则使能
  3701. BYTE bReserved[3]; // 保留字段
  3702. int nObjectTypeNum; // 相应物体类型个数
  3703. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3704. int nDetectLinePoint; // 检测线顶点数
  3705. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 检测线
  3706. CFG_TIME_SECTION stuTimeSchedule[WEEK_DAY_NUM][MAX_REC_TSECT]; // 限行时间表
  3707. int nVehicleSizeNum; // 车辆大小类型个数
  3708. char szVehicleSizeList[MAX_VEHICLE_SIZE_LIST][MAX_NAME_LEN]; // 车辆大小类型列表"Light-duty":小型车; "Medium":中型车; "Oversize":大型车
  3709. int nPlateTypeNum; // 车牌类型个数
  3710. char szPlateTypesList[MAX_PLATE_TYPE_LIST][MAX_NAME_LEN]; // 车牌类型列表"Unknown" 未知; "Normal" 蓝牌黑牌; "Yellow" 黄牌; "DoubleYellow" 双层黄尾牌
  3711. // "Police" 警牌; "Armed" 武警牌; "Military" 部队号牌; "DoubleMilitary" 部队双层
  3712. // "SAR" 港澳特区号牌; "Trainning" 教练车号牌; "Personal" 个性号牌; "Agri" 农用牌
  3713. // "Embassy" 使馆号牌; "Moto" 摩托车号牌; "Tractor" 拖拉机号牌; "Other" 其他号牌
  3714. // "Civilaviation"民航号牌,"Black"黑牌,"PureNewEnergyMicroCar"纯电动新能源小车
  3715. // "MixedNewEnergyMicroCar,"混合新能源小车,"PureNewEnergyLargeCar",纯电动新能源大车
  3716. // "MixedNewEnergyLargeCar"混合新能源大车
  3717. int nPlateNumber; // 车牌单双号 0:单号; 1:双号; 2:单双号;
  3718. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3719. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3720. int nPtzPresetId; // 云台预置点编号 0~65535
  3721. } CFG_TRAFFICCONTROL_INFO;
  3722. // 事件类型EVENT_IVS_TRAFFICACCIDENT(交通事故事件)对应的规则配置
  3723. typedef struct tagCFG_TRAACCIDENT_INFO
  3724. {
  3725. // 信息
  3726. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3727. bool bRuleEnable; // 规则使能
  3728. BYTE bReserved[3]; // 保留字段
  3729. int nObjectTypeNum; // 相应物体类型个数
  3730. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3731. int nDetectRegionPoint; // 检测区顶点数
  3732. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  3733. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3734. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3735. int nPtzPresetId; // 云台预置点编号 0~65535
  3736. } CFG_TRAACCIDENT_INFO;
  3737. // 事件类型EVENT_IVS_TRAFFICJUNCTION(交通路口老规则事件)对应的规则配置
  3738. typedef struct tagCFG_TRAJUNCTION_INFO
  3739. {
  3740. // 信息
  3741. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3742. bool bRuleEnable; // 规则使能
  3743. int nObjectTypeNum; // 相应物体类型个数
  3744. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3745. int nLane; // 车道编号
  3746. int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
  3747. int nPreLinePoint; // 前置检测线顶点数
  3748. CFG_POLYLINE stuPreLine[MAX_POLYLINE_NUM]; // 前置检测线
  3749. int nMiddleLinePoint; // 中间检测线顶点数
  3750. CFG_POLYLINE stuMiddleLine[MAX_POLYLINE_NUM]; // 中间检测线
  3751. int nPostLinePoint; // 后置检测线顶点数
  3752. CFG_POLYLINE stuPostLine[MAX_POLYLINE_NUM]; // 后置检测线
  3753. int nFlowLimit; // 流量上限,单位辆/秒
  3754. int nSpeedDownLimit; // 速度下限,若为0,则表示不设下限,km/h
  3755. int nSpeedUpLimit; // 速度上限,若为0,则表示不设上限,km/h
  3756. int nTriggerModeNum; // 触发模式个数
  3757. char szTriggerMode[MAX_TRIGGERMODE_NUM][MAX_NAME_LEN]; // 触发模式,"Passing" : 穿过路口(以中间检测线为准,只能单独使用),"RunRedLight" : 闯红灯
  3758. // "Overline":压白车道线,"OverYellowLine": 压黄线, "Retrograde":逆行
  3759. // "TurnLeft":违章左转, "TurnRight":违章右转, "CrossLane":违章变道
  3760. // "U-Turn" 违章掉头, "Parking":违章停车, "WaitingArea" 违章进入待行区
  3761. // "OverSpeed": 超速,"UnderSpeed":欠速,"Overflow" : 流量过大
  3762. // "Human":行人,"NoMotor":非机动车
  3763. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3764. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX];// 事件响应时间段
  3765. int nPtzPresetId; // 云台预置点编号 0~65535
  3766. BOOL bMaskRetrograde; // 是否屏蔽逆行,即将逆行当作正常处理
  3767. } CFG_TRAJUNCTION_INFO;
  3768. // 事件类型EVENT_IVS_TRAFFICGATE(交通卡口老规则事件)对应的规则配置
  3769. typedef struct tagCFG_TRAFFICGATE_INFO
  3770. {
  3771. // 信息
  3772. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3773. bool bRuleEnable; // 规则使能
  3774. BYTE bReserved[3]; // 保留字段
  3775. int nObjectTypeNum; // 相应物体类型个数
  3776. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3777. int nLane; // 车道编号
  3778. int nDetectLinePoint1; // 检测线(虚拟线圈)1顶点数
  3779. CFG_POLYLINE stuDetectLine1[MAX_POLYLINE_NUM]; // 检测线1
  3780. int nDetectLinePoint2; // 检测线(虚拟线圈)2顶点数
  3781. CFG_POLYLINE stuDetectLine2[MAX_POLYLINE_NUM]; // 检测线2
  3782. int nLeftLinePoint; // 左车道线顶点数
  3783. CFG_POLYLINE stuLeftLine[MAX_POLYLINE_NUM]; // 左车道线
  3784. int nRightLinePoint; // 右车道线顶点数
  3785. CFG_POLYLINE stuRightLine[MAX_POLYLINE_NUM]; // 右车道线
  3786. int nSpeedWeight; // 速度权重系数(最终车速=测量车速*权重系数)
  3787. double MetricDistance; // 两条检测线实际距离,单位:米
  3788. int nSpeedUpperLimit; // 速度上限 0表示不限上限 单位:km/h
  3789. int nSpeedLowerLimit; // 速度下限 0表示不限下限 单位:km/h
  3790. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3791. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3792. int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
  3793. int nTriggerModeNum; // 触发模式个数
  3794. char szTriggerMode[MAX_TRIGGERMODE_NUM][MAX_NAME_LEN]; // 触发模式,"OverLine":压线,"Retrograde":逆行,"OverSpeed":超速,"UnderSpeed":欠速
  3795. // "Passing":穿过路口,属正常抓拍, "WrongRunningRoute":有车占道(单独使用),"YellowVehicleInRoute": 黄牌占道
  3796. // "OverYellowLine":压黄线
  3797. int nPtzPresetId; // 云台预置点编号 0~65535
  3798. BOOL bMaskRetrograde; // 是否屏蔽逆行,即将逆行当作正常处理
  3799. } CFG_TRAFFICGATE_INFO;
  3800. // 事件类型EVENT_IVS_TRAFFIC_TOLLGATE(交通卡口新规则事件)对应的规则配置
  3801. typedef struct tagCFG_TRAFFICTOLLGATE_INFO
  3802. {
  3803. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3804. bool bRuleEnable; // 规则使能
  3805. BYTE bReserved[3]; // 保留字段
  3806. int nObjectTypeNum; // 相应物体类型个数
  3807. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3808. int nPtzPresetId; // 云台预置点编号 0~65535
  3809. int nLane; // 车道编号
  3810. int nDetectLinePoint; // 卡口报警线顶点数
  3811. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 卡口报警线
  3812. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3813. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3814. } CFG_TRAFFICTOLLGATE_INFO;
  3815. // 事件类型EVENT_IVS_FACEDETECT(人脸检测事件)对应的规则配置
  3816. typedef struct tagCFG_FACEDETECT_INFO
  3817. {
  3818. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3819. bool bRuleEnable; // 规则使能
  3820. BYTE bReserved[3]; // 保留字段
  3821. int nObjectTypeNum; // 相应物体类型个数
  3822. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3823. int nDetectRegionPoint; // 检测区顶点数
  3824. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  3825. int nHumanFaceTypeCount; // 触发事件的人脸类型个数
  3826. char szHumanFaceType[MAX_HUMANFACE_LIST_SIZE][MAX_NAME_LEN]; // 触发事件的人脸类型
  3827. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3828. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3829. int nPtzPresetId; // 云台预置点编号 0~65535
  3830. int nMinDuration; // 最短触发时间,单位:秒
  3831. int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  3832. int nReportInterval; // 重复报警间隔,单位:秒,[0,600](等于0表示不重复报警)
  3833. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3834. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3835. BOOL bFeatureEnable; // 是否开启人脸属性识别, IPC增加
  3836. //(通过FaceDetection能力中的FeatureSupport来确定该配置是否可以设置)
  3837. int nFaceFeatureNum; // 需要检测的人脸属性个数
  3838. EM_FACEFEATURE_TYPE emFaceFeatureType[MAX_FEATURE_LIST_SIZE]; // 需检测的人脸属性, 通过FaceDetection能力来获取支持哪些人脸属性
  3839. }CFG_FACEDETECT_INFO;
  3840. // 联动的布控组
  3841. typedef struct tagCFG_LINKGROUP_INFO
  3842. {
  3843. BOOL bEnable; // 布控组是否启用
  3844. char szGroupID[MAX_GROUP_ID_LEN]; // 布控组ID
  3845. BYTE bySimilarity; // 相似度阈值
  3846. char szColorName[MAX_COLOR_NAME_LEN]; // 事件触发时绘制人脸框的颜色
  3847. BOOL bShowTitle; // 事件触发时规则框上是否显示报警标题
  3848. BOOL bShowPlate; // 事件触发时是否显示比对面板
  3849. BYTE bReserved[511]; // 保留字段
  3850. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3851. }CFG_LINKGROUP_INFO;
  3852. // 陌生人布防模式
  3853. typedef struct tagCFG_STRANGERMODE_INFO
  3854. {
  3855. BOOL bEnable; // 模式是否启用
  3856. char szColorHex[MAX_COLOR_HEX_LEN]; // 事件触发时绘制人脸框的颜色
  3857. BOOL bShowTitle; // 事件触发时规则框上是否显示报警标题
  3858. BOOL bShowPlate; // 事件触发时是否显示比对面板
  3859. BYTE bReserved[512]; // 保留字段
  3860. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3861. }CFG_STRANGERMODE_INFO;
  3862. // 事件类型EVENT_IVS_FACEANALYSIS(人脸分析事件) 对应的规则配置
  3863. typedef struct tagCFG_FACEANALYSIS_INFO
  3864. {
  3865. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3866. bool bRuleEnable; // 规则使能
  3867. BYTE bReserved[3]; // 保留字段
  3868. int nObjectTypeNum; // 相应物体类型个数
  3869. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3870. int nDetectRegionPoint; // 检测区顶点数
  3871. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  3872. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3873. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3874. int nPtzPresetId; // 云台预置点编号 0~65535
  3875. int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测
  3876. int nLinkGroupNum; // 联动布控个数
  3877. CFG_LINKGROUP_INFO stuLinkGroup[MAX_LINK_GROUP_NUM]; // 联动的布控组
  3878. CFG_STRANGERMODE_INFO stuStrangerMode; // 陌生人布防模式
  3879. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3880. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3881. BOOL bFeatureEnable; // 是否开启人脸属性识别, IPC增加
  3882. int nFaceFeatureNum; // 需要检测的人脸属性个数
  3883. EM_FACEFEATURE_TYPE emFaceFeatureType[MAX_FEATURE_LIST_SIZE]; // 需检测的人脸属性
  3884. BOOL bFeatureFilter; // 在人脸属性开启前提下,如果人脸图像质量太差,是否不上报属性
  3885. // true-图像太差不上报属性 false-图像很差也上报属性(可能会非常不准,影响用户体验)
  3886. int nMinQuality; // 人脸图片质量阈值,和bFeatureFilter一起使用 范围[1,100]
  3887. } CFG_FACEANALYSIS_INFO;
  3888. // 事件类型EVENT_IVSS_FACEATTRIBUTE(IVSS人脸检测事件) 对应的规则配置
  3889. typedef struct tagCFG_FACEATTRIBUTE_INFO
  3890. {
  3891. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3892. bool bRuleEnable; // 规则使能
  3893. BYTE bReserved[3]; // 保留字段
  3894. int nObjectTypeNum; // 相应物体类型个数
  3895. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3896. int nDetectRegionPoint; // 检测区顶点数
  3897. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  3898. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3899. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3900. int nPtzPresetId; // 云台预置点编号 0~65535
  3901. int nMinDuration; // 最短触发时间,单位:秒
  3902. int nTriggerTargetsNumber; // 触发报警的人脸个数
  3903. int nSensitivity; // 灵敏度,范围[1,10],灵敏度越高越容易检测(默认值5)
  3904. int nReportInterval; // 重复报警间隔,单位:秒,[0,600] 等于0表示不重复报警(默认值30)
  3905. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  3906. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  3907. int nFaceFeatureNum; // 需要检测的人脸属性个数
  3908. EM_FACEFEATURE_TYPE emFaceFeatureType[MAX_FEATURE_LIST_SIZE]; // 需检测的人脸属性
  3909. BOOL bFeatureFilter; // 在人脸属性开启前提下,如果人脸图像质量太差,是否不上报属性
  3910. int nMinQuality; // 人脸图片质量阈值,和bFeatureFilter一起使用 范围[0,100]
  3911. } CFG_FACEATTRIBUTE_INFO;
  3912. // 事件类型EVENT_IVSS_FACECOMPARE(IVSS人脸识别事件) 对应的规则配置
  3913. typedef struct tagCFG_FACECOMPARE_INFO
  3914. {
  3915. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3916. bool bRuleEnable; // 规则使能
  3917. BYTE bReserved[3]; // 保留字段
  3918. int nObjectTypeNum; // 相应物体类型个数
  3919. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3920. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3921. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3922. int nPtzPresetId; // 云台预置点编号 0~65535
  3923. int nLinkGroupNum; // 联动布控个数
  3924. CFG_LINKGROUP_INFO stuLinkGroup[MAX_LINK_GROUP_NUM]; // 联动的布控组
  3925. CFG_STRANGERMODE_INFO stuStrangerMode; // 陌生人布防模式
  3926. } CFG_FACECOMPARE_INFO;
  3927. //事件类型EVENT_IVS_TRAFFIC_NOPASSING(交通违章-禁止通行事件)对应的数据块描述信息
  3928. typedef struct tagCFG_NOPASSING_INFO
  3929. {
  3930. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3931. bool bRuleEnable; // 规则使能
  3932. BYTE bReserved[3]; // 保留字段
  3933. }CFG_NOPASSING_INFO;
  3934. // 事件类型EVENT_IVS_TRAFFICJAM (交通拥堵事件)对应的规则配置
  3935. typedef struct tagCFG_TRAFFICJAM_INFO
  3936. {
  3937. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3938. bool bRuleEnable; // 规则使能
  3939. BYTE bJamLineMargin; // 占线限值,拥堵长度占车道比例限值,0-100
  3940. BYTE bReserved[2]; // 保留字段
  3941. int nObjectTypeNum; // 相应物体类型个数
  3942. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3943. int nPtzPresetId; // 云台预置点编号 0~65535
  3944. int nLane; // 车道编号
  3945. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  3946. int nIntervalTime; // 报警间隔时间, 单位:秒,范围1~65535
  3947. int nReportTimes; // 上报次数, 1~255
  3948. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3949. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3950. int nDetectRegionPoint; // 检测区顶点数
  3951. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  3952. }CFG_TRAFFICJAM_INFO;
  3953. // 事件类型EVENT_IVS_TRAFFIC_NONMOTORINMOTORROUTE(非机动车占机动车车道配置)对应的规则配置
  3954. typedef struct tagCFG_TRAFFIC_NONMOTORINMOTORROUTE_INFO
  3955. {
  3956. // 信息
  3957. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3958. bool bRuleEnable; // 规则使能
  3959. bool bSnapMotorcycle; // 是否抓拍摩托车,同一个视频通道部分规则需要抓拍摩托车,其它不需要,所以使用规则
  3960. BYTE bReserved[2]; // 保留字段
  3961. int nObjectTypeNum; // 相应物体类型个数
  3962. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3963. int nPtzPresetId; // 云台预置点编号 0~65535
  3964. int nLaneNumber; // 车道编号
  3965. CFG_POLYGON stDirection[2]; // 正常行驶方向, 按照此方向行驶是正向,反过来是逆行 第一个点是起点,第二个点是终点,点的坐标归一化到[0,8192)区间。
  3966. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3967. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3968. } CFG_TRAFFIC_NONMOTORINMOTORROUTE_INFO;
  3969. // 事件类型EVENT_IVS_TRAFFIC_NONMOTOR_OVERLOAD(非机动车超载配置)对应的规则配置
  3970. typedef struct tagCFG_TRAFFIC_NONMOTOR_OVERLOAD_INFO
  3971. {
  3972. // 信息
  3973. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3974. bool bRuleEnable; // 规则使能
  3975. BYTE bReserved[3]; // 保留字段
  3976. int nObjectTypeNum; // 相应物体类型个数
  3977. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3978. int nPtzPresetId; // 云台预置点编号 0~65535
  3979. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3980. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3981. int nLaneNumber; // 车道编号
  3982. }CFG_TRAFFIC_NONMOTOR_OVERLOAD_INFO;
  3983. // 事件类型EVENT_IVS_TRAFFIC_NONMOTOR_HOLDUMBRELLA(非机动车装载伞具事件)对应的规则配置
  3984. typedef struct tagCFG_TRAFFIC_NONMOTOR_HOLDUMBRELLA_INFO
  3985. {
  3986. // 信息
  3987. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  3988. bool bRuleEnable; // 规则使能
  3989. BYTE bReserved[3]; // 保留字段
  3990. int nObjectTypeNum; // 相应物体类型个数
  3991. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  3992. int nPtzPresetId; // 云台预置点编号 0~65535
  3993. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  3994. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  3995. int nLaneNumber; // 车道编号
  3996. int nSnapInterval; // 抓拍间隔时间
  3997. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  3998. }CFG_TRAFFIC_NONMOTOR_HOLDUMBRELLA_INFO;
  3999. // 事件类型EVENT_IVS_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT (非机动车未戴安全帽配置)对应的规则配置
  4000. typedef struct tagCFG_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT_INFO
  4001. {
  4002. // 信息
  4003. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4004. bool bRuleEnable; // 规则使能
  4005. BYTE bReserved[3]; // 保留字段
  4006. int nObjectTypeNum; // 相应物体类型个数
  4007. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4008. int nPtzPresetId; // 云台预置点编号 0~65535
  4009. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4010. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4011. int nLaneNumber; // 车道编号
  4012. }CFG_TRAFFIC_NONMOTOR_WITHOUTSAFEHAT_INFO;
  4013. // 事件类型EVENT_IVS_CITY_MOTORPARKING (城市机动车违停事件)对应的规则配置
  4014. typedef struct tagCFG_CITY_MOTORPARKING_INFO
  4015. {
  4016. // 信息
  4017. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4018. BOOL bRuleEnable; // 规则使能
  4019. int nObjectTypeNum; // 相应物体类型个数
  4020. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4021. int nPtzPresetId; // 云台预置点编号 0~65535
  4022. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4023. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4024. int nDetectRegionPoint; // 检测区顶点数
  4025. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4026. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  4027. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  4028. }CFG_CITY_MOTORPARKING_INFO;
  4029. // 事件类型EVENT_IVS_CITY_NONMOTORPARKING (城市非机动车违停事件)对应的规则配置
  4030. typedef struct tagCFG_CITY_NONMOTORPARKING_INFO
  4031. {
  4032. // 信息
  4033. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4034. BOOL bRuleEnable; // 规则使能
  4035. int nObjectTypeNum; // 相应物体类型个数
  4036. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4037. int nPtzPresetId; // 云台预置点编号 0~65535
  4038. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4039. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4040. int nDetectRegionPoint; // 检测区顶点数
  4041. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4042. int nAlarmNum; // 报警数量阈值,单位:辆 范围[1, 100]
  4043. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  4044. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  4045. }CFG_CITY_NONMOTORPARKING_INFO;
  4046. // 事件类型EVENT_IVS_FLOWBUSINESS (流动摊贩事件)对应的规则配置
  4047. typedef struct tagCFG_FLOWBUSINESS_INFO
  4048. {
  4049. // 信息
  4050. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4051. BOOL bRuleEnable; // 规则使能
  4052. int nObjectTypeNum; // 相应物体类型个数
  4053. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4054. int nPtzPresetId; // 云台预置点编号 0~65535
  4055. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4056. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4057. int nDetectRegionPoint; // 检测区顶点数
  4058. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4059. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  4060. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  4061. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  4062. }CFG_FLOWBUSINESS_INFO;
  4063. // 事件类型EVENT_IVS_SHOPPRESENCE (商铺占道事件)对应的规则配置
  4064. typedef struct tagCFG_SHOPPRESENCE_INFO
  4065. {
  4066. // 信息
  4067. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4068. BOOL bRuleEnable; // 规则使能
  4069. int nObjectTypeNum; // 相应物体类型个数
  4070. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4071. int nPtzPresetId; // 云台预置点编号 0~65535
  4072. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4073. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4074. int nDetectRegionPoint; // 检测区顶点数
  4075. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4076. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  4077. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  4078. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  4079. char szShopAddress[256]; // 商铺地址
  4080. }CFG_SHOPPRESENCE_INFO;
  4081. // 事件类型EVENT_IVS_TRAFFIC_IDLE (交通空闲事件)对应的规则配置
  4082. typedef struct tagCFG_TRAFFIC_IDLE_INFO
  4083. {
  4084. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4085. bool bRuleEnable; // 规则使能
  4086. BYTE bJamLineMargin; // 占线限值,拥堵长度占车道比例限值,0-100
  4087. BYTE bReserved[2]; // 保留字段
  4088. int nObjectTypeNum; // 相应物体类型个数
  4089. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4090. int nPtzPresetId; // 云台预置点编号 0~65535
  4091. int nLane; // 车道编号
  4092. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  4093. int nIntervalTime; // 报警间隔时间, 单位:秒,范围1~65535
  4094. int nReportTimes; // 上报次数, 1~255
  4095. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4096. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4097. int nDetectRegionPoint; // 检测区顶点数
  4098. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4099. }CFG_TRAFFIC_IDLE_INFO;
  4100. // 事件类型EVENT_IVS_TRAFFIC_PARKING (交通违章停车事件) / EVENT_IVS_TRAFFIC_PARKING_B (B类交通违章停车事件) /
  4101. // EVENT_IVS_TRAFFIC_PARKING_C (C类交通违章停车事件) / EVENT_IVS_TRAFFIC_PARKING_D (D类交通违章停车事件)/
  4102. // EVENT_IVS_TRAFFIC_PARKING_MANUAL(手动取证交通违法)对应的规则配置
  4103. typedef struct tagCFG_TRAFFIC_PARKING_INFO
  4104. {
  4105. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4106. bool bRuleEnable; // 规则使能
  4107. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  4108. BYTE bSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低(只对检测类型视频遮挡,过亮,过暗,场景变化有效)
  4109. BYTE bReserved; // 保留字段
  4110. int nObjectTypeNum; // 相应物体类型个数
  4111. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4112. int nPtzPresetId; // 云台预置点编号 0~65535
  4113. int nLane; // 车道编号
  4114. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  4115. int nParkingAllowedTime; // 允许停车时间, 单位:秒,范围1~65535
  4116. int nReportTimes; // 上报次数, 1~255
  4117. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4118. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4119. int nDetectRegionPoint; // 检测区域顶点数
  4120. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4121. }CFG_TRAFFIC_PARKING_INFO;
  4122. // 事件类型EVENT_IVS_TRAFFIC_PARKING_SPACEDETECTION(违停相机定制单球车位检测)规则配置
  4123. typedef struct tagCFG_TRAFFIC_PARKING_SPACEDETECTION_INFO
  4124. {
  4125. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4126. bool bRuleEnable; // 规则使能
  4127. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  4128. BYTE bSensitivity; // 灵敏度, 取值1-10,值越小灵敏度越低(只对检测类型视频遮挡,过亮,过暗,场景变化有效)
  4129. BYTE bReserved; // 保留字段
  4130. int nObjectTypeNum; // 相应物体类型个数
  4131. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4132. int nPtzPresetId; // 云台预置点编号 0~65535
  4133. int nLane; // 车道编号
  4134. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  4135. int nParkingAllowedTime; // 允许停车时间, 单位:秒,范围1~65535
  4136. int nReportTimes; // 上报次数, 1~255
  4137. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4138. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4139. int nDetectRegionPoint; // 检测区域顶点数
  4140. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4141. }CFG_TRAFFIC_PARKING_SPACEDETECTION_INFO;
  4142. // 事件类型 EVENT_IVS_TRAFFIC_RUNREDLIGHT (交通违章-闯红灯事件)对应的规则配置
  4143. typedef struct tagCFG_TRAFFIC_RUNREDLIGHT_INFO
  4144. {
  4145. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4146. bool bRuleEnable; // 规则使能
  4147. BYTE bReserved[3]; // 保留字段
  4148. int nObjectTypeNum; // 相应物体类型个数
  4149. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4150. int nPtzPresetId; // 云台预置点编号 0~65535
  4151. int nLane; // 车道编号
  4152. int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
  4153. int nPreLinePoint; // 前置检测线顶点数
  4154. CFG_POLYLINE stuPreLine[MAX_POLYLINE_NUM]; // 前置检测线
  4155. int nMiddleLinePoint; // 中间检测线顶点数
  4156. CFG_POLYLINE stuMiddleLine[MAX_POLYLINE_NUM]; // 中间检测线
  4157. int nPostLinePoint; // 后置检测线顶点数
  4158. CFG_POLYLINE stuPostLine[MAX_POLYLINE_NUM]; // 后置检测线
  4159. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4160. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4161. }CFG_TRAFFIC_RUNREDLIGHT_INFO;
  4162. // 事件类型 EVENT_IVS_TRAFFIC_PEDESTRAINRUNREDLIGHT (交通违章-行人闯红灯事件)对应的规则配置
  4163. typedef struct tagCFG_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO
  4164. {
  4165. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4166. bool bRuleEnable; // 规则使能
  4167. BYTE bReserved[3]; // 保留字段
  4168. int nObjectTypeNum; // 相应物体类型个数
  4169. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4170. int nPtzPresetId; // 云台预置点编号 0~65535
  4171. int nLane; // 车道编号
  4172. int nDirection; // 车道方向(车开往的方向),0-北 1-东北 2-东 3-东南 4-南 5-西南 6-西 7-西北
  4173. int nPreLinePoint; // 前置检测线顶点数
  4174. CFG_POLYLINE stuPreLine[MAX_POLYLINE_NUM]; // 前置检测线
  4175. int nMiddleLinePoint; // 中间检测线顶点数
  4176. CFG_POLYLINE stuMiddleLine[MAX_POLYLINE_NUM]; // 中间检测线
  4177. int nPostLinePoint; // 后置检测线顶点数
  4178. CFG_POLYLINE stuPostLine[MAX_POLYLINE_NUM]; // 后置检测线
  4179. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4180. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4181. }CFG_TRAFFIC_PEDESTRAINRUNREDLIGHT_INFO;
  4182. // 事件类型 EVENT_IVS_TRAFFIC_WRONGROUTE (交通违章-不按车道行驶事件)对应的规则配置
  4183. typedef struct tagCFG_TRAFFIC_WRONGROUTE_INFO
  4184. {
  4185. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4186. bool bRuleEnable; // 规则使能
  4187. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4188. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  4189. BYTE bReserved; // 保留字段
  4190. int nObjectTypeNum; // 相应物体类型个数
  4191. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4192. int nPtzPresetId; // 云台预置点编号 0~65535
  4193. int nLane; // 车道编号
  4194. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4195. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4196. int nDetectRegionPoint; // 检测区顶点数
  4197. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4198. int nDirectionLinPoint; // 正常行驶方向顶点数
  4199. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  4200. }CFG_TRAFFIC_WRONGROUTE_INFO;
  4201. // 事件类型 EVENT_IVS_TRAFFIC_CROSSLANE (交通违章-违章变道)对应的规则配置
  4202. typedef struct tagCFG_TRAFFIC_CROSSLANE_INFO
  4203. {
  4204. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4205. bool bRuleEnable; // 规则使能
  4206. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4207. BYTE bReserved[2]; // 保留字段
  4208. int nObjectTypeNum; // 相应物体类型个数
  4209. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4210. int nPtzPresetId; // 云台预置点编号 0~65535
  4211. int nLane; // 车道编号
  4212. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4213. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4214. int nDetectRegionPoint; // 检测区顶点数
  4215. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4216. int nDirectionLinPoint; // 正常行驶方向顶点数
  4217. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  4218. }CFG_TRAFFIC_CROSSLANE_INFO;
  4219. // 事件类型 EVENT_IVS_TRAFFIC_OVERLINE (交通违章-压车道线)对应的规则配置
  4220. typedef struct tagCFG_TRAFFIC_OVERLINE_INFO
  4221. {
  4222. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4223. bool bRuleEnable; // 规则使能
  4224. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4225. BYTE bReserved[2]; // 保留字段
  4226. int nObjectTypeNum; // 相应物体类型个数
  4227. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4228. int nPtzPresetId; // 云台预置点编号 0~65535
  4229. int nLane; // 车道编号
  4230. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4231. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4232. int nDetectRegionPoint; // 检测区顶点数
  4233. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4234. int nDirectionLinPoint; // 正常行驶方向顶点数
  4235. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  4236. }CFG_TRAFFIC_OVERLINE_INFO;
  4237. // 事件类型 EVENT_IVS_TRAFFIC_OVERYELLOWLINE (交通违章-压黄线)对应的规则配置
  4238. typedef struct tagCFG_TRAFFIC_OVERYELLOWLINE_INFO
  4239. {
  4240. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4241. bool bRuleEnable; // 规则使能
  4242. BYTE bReserved[3]; // 保留字段
  4243. int nObjectTypeNum; // 相应物体类型个数
  4244. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4245. int nPtzPresetId; // 云台预置点编号 0~65535
  4246. int nLane; // 车道编号
  4247. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4248. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4249. int nDetectRegionPoint; // 检测区域顶点数
  4250. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4251. }CFG_TRAFFIC_OVERYELLOWLINE_INFO;
  4252. // 事件类型 EVENT_IVS_TRAFFIC_RETROGRADE (交通违章-逆行事件)对应的规则配置
  4253. typedef struct tagCFG_TRAFFIC_RETROGRADE_INFO
  4254. {
  4255. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4256. bool bRuleEnable; // 规则使能
  4257. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  4258. BYTE bReserved[2]; // 保留字段
  4259. int nObjectTypeNum; // 相应物体类型个数
  4260. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4261. int nPtzPresetId; // 云台预置点编号 0~65535
  4262. int nLane; // 车道编号
  4263. BOOL bLegal; // TRUE: 逆行合法;FALSE:逆行不合法
  4264. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4265. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4266. int nDetectRegionPoint; // 检测区域顶点数
  4267. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4268. int nDirectionLinPoint; // 正常行驶方向顶点数
  4269. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  4270. int nMinDuration; // 最短触发时间 单位:秒
  4271. }CFG_TRAFFIC_RETROGRADE_INFO;
  4272. // 事件类型 EVENT_IVS_TRAFFIC_TURNLEFT (交通违章-违章左转事件)对应的规则配置
  4273. typedef struct tagCFG_TRAFFIC_TURNLEFT_INFO
  4274. {
  4275. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4276. bool bRuleEnable; // 规则使能
  4277. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4278. BYTE bReserved[2]; // 保留字段
  4279. int nObjectTypeNum; // 相应物体类型个数
  4280. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4281. int nPtzPresetId; // 云台预置点编号 0~65535
  4282. int nLane; // 车道编号
  4283. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4284. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4285. int nDetectRegionPoint; // 检测区顶点数
  4286. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4287. int nDirectionLinPoint; // 正常行驶方向顶点数
  4288. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  4289. }CFG_TRAFFIC_TURNLEFT_INFO;
  4290. // 事件类型 EVENT_IVS_TRAFFIC_TURNRIGHT (交通违章-违章右转)对应的规则配置
  4291. typedef struct tagCFG_TRAFFIC_TURNRIGHT_INFO
  4292. {
  4293. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4294. bool bRuleEnable; // 规则使能
  4295. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4296. BYTE bReserved[2]; // 保留字段
  4297. int nObjectTypeNum; // 相应物体类型个数
  4298. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4299. int nPtzPresetId; // 云台预置点编号 0~65535
  4300. int nLane; // 车道编号
  4301. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4302. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4303. int nDetectRegionPoint; // 检测区顶点数
  4304. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4305. int nDirectionLinPoint; // 正常行驶方向顶点数
  4306. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  4307. }CFG_TRAFFIC_TURNRIGHT_INFO;
  4308. // 事件类型 EVENT_IVS_TRAFFIC_UTURN (交通违章-违章掉头)对应的规则配置
  4309. typedef struct tagCFG_TRAFFIC_UTURN_INFO
  4310. {
  4311. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4312. bool bRuleEnable; // 规则使能
  4313. bool bTrackEnable; // 触发跟踪使能,对绊线、入侵的物体跟踪
  4314. BYTE bReserved[2]; // 保留字段
  4315. int nObjectTypeNum; // 相应物体类型个数
  4316. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4317. int nPtzPresetId; // 云台预置点编号 0~65535
  4318. int nLane; // 车道编号
  4319. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4320. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4321. int nDetectRegionPoint; // 检测区域顶点数
  4322. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4323. int nTriggerAngle; // 掉头触发角度,取值范围(90,180),目标调头前后的运动夹角
  4324. BOOL abSizeFileter; // 规则特定的尺寸过滤器是否有效
  4325. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4326. }CFG_TRAFFIC_UTURN_INFO;
  4327. // 事件类型 EVENT_IVS_TRAFFIC_OVERSPEED (交通违章-超速)对应的规则配置
  4328. typedef struct tagCFG_TRAFFIC_OVERSPEED_INFO
  4329. {
  4330. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4331. bool bRuleEnable; // 规则使能
  4332. BYTE bReserved[3]; // 保留字段
  4333. int nObjectTypeNum; // 相应物体类型个数
  4334. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4335. int nPtzPresetId; // 云台预置点编号 0~65535
  4336. int nLane; // 车道编号
  4337. int nSpeedUpperLimit; // 速度上限
  4338. int nSpeedLowerLimit; // 速度下限
  4339. int nMinDuration; // 最短触发时间 单位:秒
  4340. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4341. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4342. }CFG_TRAFFIC_OVERSPEED_INFO;
  4343. // 事件类型 EVENT_IVS_TRAFFIC_UNDERSPEED (交通违章-欠速)对应的规则配置
  4344. typedef struct tagCFG_TRAFFIC_UNDERSPEED_INFO
  4345. {
  4346. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4347. bool bRuleEnable; // 规则使能
  4348. BYTE bReserved[3]; // 保留字段
  4349. int nObjectTypeNum; // 相应物体类型个数
  4350. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4351. int nPtzPresetId; // 云台预置点编号 0~65535
  4352. int nLane; // 车道编号
  4353. int nSpeedUpperLimit; // 速度上限
  4354. int nSpeedLowerLimit; // 速度下限
  4355. int nMinDuration; // 最短触发时间 单位:秒
  4356. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4357. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4358. }CFG_TRAFFIC_UNDERSPEED_INFO;
  4359. // 事件类型 EVENT_IVS_TRAFFIC_YELLOWPLATEINLANE (交通违章-黄牌车占道事件)对应的规则配置
  4360. typedef struct tagCFG_TRAFFIC_YELLOWPLATEINLANE_INFO
  4361. {
  4362. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4363. bool bRuleEnable; // 规则使能
  4364. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4365. BYTE bReserved[2]; // 保留字段
  4366. int nObjectTypeNum; // 相应物体类型个数
  4367. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4368. int nPtzPresetId; // 云台预置点编号 0~65535
  4369. int nLane; // 车道编号
  4370. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4371. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4372. int nDetectRegionPoint; // 检测区顶点数
  4373. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4374. int nDirectionLinPoint; // 正常行驶方向顶点数
  4375. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  4376. }CFG_TRAFFIC_YELLOWPLATEINLANE_INFO;
  4377. // 事件类型 EVENT_IVS_TRAFFIC_VEHICLEINROUTE (交通违章-有车占道事件)对应的规则配置
  4378. typedef struct tagCFG_TRAFFIC_VEHICLEINROUTE_INFO
  4379. {
  4380. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4381. bool bRuleEnable; // 规则使能
  4382. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4383. BYTE bReserved[2]; // 保留字段
  4384. int nObjectTypeNum; // 相应物体类型个数
  4385. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4386. int nPtzPresetId; // 云台预置点编号 0~65535
  4387. int nLane; // 车道编号
  4388. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4389. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4390. int nDetectRegionPoint; // 检测区顶点数
  4391. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4392. int nDirectionLinPoint; // 正常行驶方向顶点数
  4393. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  4394. }CFG_TRAFFIC_VEHICLEINROUTE_INFO;
  4395. // 事件来源
  4396. typedef enum tagEM_CFG_EVENT_ORIGIN
  4397. {
  4398. EM_CFG_EVENT_ORIGIN_UNKNOWN = -1, // 未知
  4399. EM_CFG_EVENT_ORIGIN_VIDEO, // 视频检测
  4400. EM_CFG_EVENT_ORIGIN_NET, // 网络
  4401. }EM_CFG_EVENT_ORIGIN;
  4402. // 事件类型 EVENT_IVS_TRAFFIC_JAM_FORBID_INTO (车辆拥堵禁入事件)对应的规则配置
  4403. typedef struct tagCFG_TRAFFIC_JAM_FORBID_INTO_INFO
  4404. {
  4405. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4406. BOOL bRuleEnable; // 规则使能
  4407. int nObjectTypeNum; // 相应物体类型个数
  4408. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4409. int nPtzPresetId; // 云台预置点编号 0~65535
  4410. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4411. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4412. int nLaneNumber; // 车道编号
  4413. int nTriggerTime; // 前面的车停了多少时间才算拥堵,后面的车上来就算拥堵禁入,单位秒
  4414. int nFollowTime; // 跟随时间阈值,跟随前车进入路口的不算拥堵禁入违章,单位秒
  4415. int nDelayTime; // 绿灯灭后延时抓拍第三张时间,单位秒
  4416. EM_CFG_EVENT_ORIGIN emEventOrigin; // 拥堵事件来源
  4417. int nJamForbidIntoLineCount; // 拥堵事件边界线点数
  4418. CFG_POLYLINE stuJamForbidIntoLine[MAX_POLYLINE_NUM]; // 拥堵事件边界线, 坐标归一化到[0,8192)区间
  4419. }CFG_TRAFFIC_JAM_FORBID_INTO_INFO;
  4420. // 事件类型 EVENT_IVS_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING (拥堵滞留斑马线事件)对应的规则配置
  4421. typedef struct tagCFG_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING_INFO
  4422. {
  4423. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4424. BOOL bRuleEnable; // 规则使能
  4425. int nObjectTypeNum; // 相应物体类型个数
  4426. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4427. int nPtzPresetId; // 云台预置点编号 0~65535
  4428. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4429. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4430. int nLaneNumber; // 车道编号
  4431. int nJamStopDelay; // 拥堵滞留延时时间
  4432. int nSnapInterval; // 抓拍间隔时间
  4433. BOOL bSnapMotorcycle; // 是否抓拍摩托车
  4434. int nDetectRegionPoint; // 检测区顶点数
  4435. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4436. }CFG_TRAFFIC_JAM_STOP_ON_ZEBRACROSSING_INFO;
  4437. //
  4438. // 事件类型 EVENT_IVS_PRISONERRISEDETECTION (看守所起身检测事件)对应的规则配置
  4439. typedef struct tagCFG_PRISONRISEDETECTION_INFO
  4440. {
  4441. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4442. bool bRuleEnable; // 规则使能
  4443. BYTE bReserved[3]; // 保留字段
  4444. int nObjectTypeNum; // 相应物体类型个数
  4445. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4446. int nPtzPresetId; // 云台预置点编号 0~65535
  4447. int nDetectRegionPoint; // 警戒区顶点数
  4448. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM10]; // 警戒区
  4449. CFG_POLYGON stDirection[2]; // 人睡觉方向 第一个点是起点,第二个点是终点,点的坐标归一化到[0,8191]区间
  4450. CFG_POLYGON stBedMiddleLine[2]; // 床铺中线 点的坐标归一化到[0,8191]区间
  4451. int nBedSide; // 床铺的方位 1左边铺位,2右边铺位
  4452. int nMinDuration; // 最短触发时间 单位:秒
  4453. int nReportInterval; // 重复报警间隔 单位:秒
  4454. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4455. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4456. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4457. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4458. }CFG_PRISONRISEDETECTION_INFO;
  4459. // 最大的配置的个数
  4460. #define MAX_AREACONFIG_NUMBER 8
  4461. // 触发报警的行人方向
  4462. typedef enum tagEM_CFG_PEOPLE_DIRECTION
  4463. {
  4464. EM_CFG_PEOPLE_DIRECTION_LEFT = 1, // 左
  4465. EM_CFG_PEOPLE_DIRECTION_RIGHT = 2, // 右
  4466. }EM_CFG_PEOPLE_DIRECTION;
  4467. // 检测区域配置
  4468. typedef struct tagCFG_AREACONFIG
  4469. {
  4470. int nPeopleTargets; // 触发报警的行人个数
  4471. UINT nPeopleDirectionMask; // 触发报警的行人方向, EM_CFG_PEOPLE_DIRECTION 的 位集合,例:nPeopleDirectionMask |= EM_CFG_PEOPLE_DIRECTION_LEFT;
  4472. BYTE byReserved[1024]; // 保留字段
  4473. }CFG_AREACONFIG;
  4474. // 事件类型 EVENT_IVS_TRAFFIC_PEDESTRAINPRIORITY (行人礼让检测/斑马线行人优先事件)对应的规则配置
  4475. typedef struct tagCFG_TRAFFIC_PEDESTRAINPRIORITY_INFO
  4476. {
  4477. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4478. bool bRuleEnable; // 规则使能
  4479. BYTE bReserved[3]; // 保留字段
  4480. int nObjectTypeNum; // 相应物体类型个数
  4481. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4482. int nPtzPresetId; // 云台预置点编号 0~65535
  4483. int nLane; // 车道编号
  4484. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4485. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4486. //
  4487. int nAreaConfigNum; // 规则对应的检测区域配置的个数
  4488. CFG_AREACONFIG stuAreaConfigList[MAX_AREACONFIG_NUMBER]; // 规则对应的检测区域配置
  4489. int nSpeedLimit; // 车速阀值
  4490. int nFollowTime; // 跟随时间,单位秒
  4491. BOOL bSnapMotorcycle; // 是否抓拍摩托车,同一个视频通道部分规则需要抓拍摩托车,其它不需要,所以使用规则
  4492. int nAlarmDistanceRate; // 触发机动车不礼让行人的检测距离
  4493. int nSnapPicHavePriCategory; // 违章抓拍的图片是否要有行人或非机动车的掩码值每个bit位含义,1:抓拍图片要有行人;0:抓拍图片可以无行人
  4494. // bit0:第一张图片是否需要有行人
  4495. // bit1:第二张图片是否需要有行人
  4496. // bit2:第三张图片是否需要有行人
  4497. }CFG_TRAFFIC_PEDESTRAINPRIORITY_INFO;
  4498. // 事件类型 EVENT_IVS_QUEUEDETECTION (排队检测事件)对应的规则配置
  4499. typedef struct tagCFG_IVS_QUEUEDETECTION_INFO
  4500. {
  4501. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4502. bool bRuleEnable; // 规则使能
  4503. BYTE bReserved[3]; // 保留字段
  4504. int nObjectTypeNum; // 相应物体类型个数
  4505. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4506. int nPtzPresetId; // 云台预置点编号 0~65535
  4507. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4508. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4509. CFG_POLYLINE stuDetectLine[2]; // 警戒线
  4510. int nOccupyLineMargin; // 占线限值,队伍长度占线比例限值
  4511. int nTriggerTime; // 单位秒,排队检测报警时间,排队超过阈值的状态维持了"排队检测报警时间"以后报警
  4512. int nMaxDetectRegionNum; // 最大检测区域的个数
  4513. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4514. int nThreshold; // 异常人数阈值
  4515. int nDetectType; // 人数异常检测方式
  4516. int nPlanID; // 计划ID
  4517. int nAreaID; // 区域ID(一个预置点可以对应多个区域ID)
  4518. BOOL bStayDetectEnable; // 滞留检测报警使能,对应报警为 EVENT_IVS_STAYDETECTION
  4519. int nStayMinDuration; // 最短滞留持续时间,单位秒[1, 1800], 开启滞留检测报警时需设置
  4520. BOOL bManNumAlarmEnable; // 人数异常报警使能, 默认为TRUE。对应报警为 EVENT_IVS_MAN_NUM_DETECTION
  4521. }CFG_IVS_QUEUEDETECTION_INFO;
  4522. // 事件类型 EVENT_IVS_CLIMBDETECTION (攀高检测事件)对应的规则配置
  4523. typedef struct tagCFG_IVS_CLIMBDETECTION_INFO
  4524. {
  4525. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4526. bool bRuleEnable; // 规则使能
  4527. BYTE bReserved[3]; // 保留字段
  4528. int nObjectTypeNum; // 相应物体类型个数
  4529. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4530. int nPtzPresetId; // 云台预置点编号 0~65535
  4531. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4532. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4533. int nDetectLine; // 检测线顶点个数
  4534. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 对应的检测折线,[0,8192)
  4535. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4536. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4537. }CFG_IVS_CLIMBDETECTION_INFO;
  4538. // 事件类型 EVENT_IVS_LEAVEDETECTION (离岗检测事件)对应的规则配置
  4539. enum CFG_EM_LEAVEDETECTION_MODE{
  4540. CFG_EM_LEAVEDETECTION_MODE_NONE,
  4541. CFG_EM_LEAVEDETECTION_MODE_PATROL, // 巡逻模式
  4542. CFG_EM_LEAVEDETECTION_MODE_SENTRY, // 岗哨模式
  4543. CFG_EM_LEAVEDETECTION_MODE_ERR=255
  4544. };
  4545. typedef enum EM_CFG_LEAVEDETECTION_TRIGGERMODE{
  4546. CFG_LEAVEDETECTION_TRIGGERMODE_UNKNOWN,
  4547. CFG_LEAVEDETECTION_TRIGGERMODE_NOPERSON,
  4548. CFG_LEAVEDETECTION_TRIGGERMODE_LEAVE,
  4549. CFG_LEAVEDETECTION_TRIGGERMODE_STATIC,
  4550. }CFG_LEAVEDETECTION_TRIGGERMODE;
  4551. typedef struct tagCFG_IVS_LEAVEDETECTION_INFO
  4552. {
  4553. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4554. bool bRuleEnable; // 规则使能
  4555. BYTE bReserved[3]; // 保留字段
  4556. int nObjectTypeNum; // 相应物体类型个数
  4557. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4558. int nPtzPresetId; // 云台预置点编号 0~65535
  4559. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4560. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4561. CFG_EM_LEAVEDETECTION_MODE emMode; // 检测模式
  4562. unsigned int nMinDuration; // 最短持续时间,单位:秒
  4563. unsigned int nReportInterval; // 报告时间间隔,单位:秒
  4564. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4565. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4566. int nDetectRegionPoint; // 检测区顶点数
  4567. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4568. int nTriggerModeCount; // 触发模式数组有效个数
  4569. CFG_LEAVEDETECTION_TRIGGERMODE emTriggerMode[MAX_TRIGGER_MODE_NUMBER]; // 触发模式数组
  4570. int anPersonLimit[2]; // 允许值岗人数范围, 不在此范围内时报警,数组第一个元素为最小值,第二个元素为最大值,最大值为0时表示不限制上限
  4571. }CFG_IVS_LEAVEDETECTION_INFO;
  4572. //事件类型 EVENT_IVS_TRAFFIC_PARKINGONYELLOWBOX(黄网格线抓拍事件)对应的规则配置
  4573. typedef struct tagCFG_TRAFFIC_PARKINGONYELLOWBOX_INFO
  4574. {
  4575. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4576. bool bRuleEnable; // 规则使能
  4577. BYTE bReserved[3]; // 保留字段
  4578. int nObjectTypeNum; // 相应物体类型个数
  4579. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4580. int nPtzPresetId; // 云台预置点编号 0~65535
  4581. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4582. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4583. int nLane; // 车道号
  4584. int nInterval1; // 第二张和第一张的延时时间,单位秒
  4585. int nInterval2; // 第三张和第二张的延时时间,单位秒
  4586. int nFollowTime; // 跟随时间,如果一辆车与前一辆车进入黄网格的时间差小于此值,就认为是跟车进入,跟车进入情况下如果停车则不算违章
  4587. }CFG_TRAFFIC_PARKINGONYELLOWBOX_INFO;
  4588. //事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACEPARKING(车位有车事件)对应的规则配置
  4589. typedef struct tagCFG_TRAFFIC_PARKINGSPACEPARKING_INFO
  4590. {
  4591. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4592. bool bRuleEnable; // 规则使能
  4593. BYTE bReserved[3]; // 保留字段
  4594. int nObjectTypeNum; // 相应物体类型个数
  4595. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4596. int nPtzPresetId; // 云台预置点编号 0~65535
  4597. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4598. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4599. int nLane; // 车位号
  4600. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  4601. int nDetectRegionPoint; // 检测区域顶点数
  4602. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4603. }CFG_TRAFFIC_PARKINGSPACEPARKING_INFO;
  4604. //事件类型 EVENT_IVS_TRAFFIC_PARKINGSPACENOPARKING(车位无车事件)对应的规则配置
  4605. typedef struct tagCFG_TRAFFIC_PARKINGSPACENOPARKING_INFO
  4606. {
  4607. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4608. bool bRuleEnable; // 规则使能
  4609. BYTE bReserved[3]; // 保留字段
  4610. int nObjectTypeNum; // 相应物体类型个数
  4611. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4612. int nPtzPresetId; // 云台预置点编号 0~65535
  4613. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4614. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4615. int nLane; // 车位号
  4616. int nDelayTime; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  4617. int nDetectRegionPoint; // 检测区域顶点数
  4618. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  4619. }CFG_TRAFFIC_PARKINGSPACENOPARKING_INFO;
  4620. //事件类型EVENT_IVS_TRAFFIC_PARKINGSPACEOVERLINE(车位压线事件)对应的规则配置
  4621. typedef struct tagCFG_TRAFFIC_PARKINGSPACEOVERLINE_INFO
  4622. {
  4623. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4624. bool bRuleEnable; // 规则使能
  4625. bool bAllowParkingSpaceParkingSnap; // 是否允许车位有车上传抓拍,true-表示允许(默认不允许)
  4626. BYTE byReserved[2]; // 保留字段
  4627. int nObjectTypeNum; // 相应物体类型个数
  4628. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4629. int nPtzPresetId; // 云台预置点编号 0~65535
  4630. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4631. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4632. int nLane; // 车位号
  4633. }CFG_TRAFFIC_PARKINGSPACEOVERLINE_INFO;
  4634. //事件类型 EVENT_IVS_TRAFFIC_PEDESTRAIN (交通行人事件)对应的规则配置
  4635. typedef struct tagCFG_TRAFFIC_PEDESTRAIN_INFO
  4636. {
  4637. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4638. bool bRuleEnable; // 规则使能
  4639. BYTE bReserved[3]; // 保留字段
  4640. int nObjectTypeNum; // 相应物体类型个数
  4641. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4642. int nPtzPresetId; // 云台预置点编号 0~65535
  4643. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4644. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4645. int nLane; // 车道编号
  4646. int nDetectRegionPoint; // 检测区顶点数
  4647. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4648. int nMinDuration; // 最短触发时间,单位:秒
  4649. }CFG_TRAFFIC_PEDESTRAIN_INFO;
  4650. //事件类型 EVENT_IVS_TRAFFIC_THROW (交通抛洒事件)对应的规则配置
  4651. typedef struct tagCFG_TRAFFIC_THROW_INFO
  4652. {
  4653. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4654. bool bRuleEnable; // 规则使能
  4655. BYTE bReserved[3]; // 保留字段
  4656. int nObjectTypeNum; // 相应物体类型个数
  4657. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4658. int nPtzPresetId; // 云台预置点编号 0~65535
  4659. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4660. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4661. int nLane; // 车道编号
  4662. int nDetectRegionPoint; // 检测区顶点数
  4663. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4664. int nMinDuration; // 最短触发时间,单位:秒
  4665. }CFG_TRAFFIC_THROW_INFO;
  4666. // 事件类型 EVENT_IVS_TRAFFIC_BACKING (违章倒车事件)对应的规则配置
  4667. typedef struct tagCFG_TRAFFIC_BACKING_INFO
  4668. {
  4669. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4670. bool bRuleEnable; // 规则使能
  4671. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4672. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  4673. BYTE bReserved; // 保留字段
  4674. int nObjectTypeNum; // 相应物体类型个数
  4675. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4676. int nPtzPresetId; // 云台预置点编号 0~65535
  4677. int nLane; // 车道编号
  4678. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4679. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4680. int nDetectRegionPoint; // 检测区顶点数
  4681. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4682. int nDirectionLinPoint; // 正常行驶方向顶点数
  4683. CFG_POLYLINE stuDirectionLine[MAX_POLYLINE_NUM]; // 正常行驶方向,第一个点是起点,最后一个点是终点
  4684. }CFG_TRAFFIC_BACKING_INFO;
  4685. // 事件类型 EVENT_IVS_TRAFFIC_VEHICLEINBUSROUTE(占用公交车道事件)对应规则配置
  4686. typedef struct tagCFG_TRAFFIC_VEHICLEINBUSROUTE_INFO
  4687. {
  4688. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4689. bool bRuleEnable; // 规则使能
  4690. BYTE byCarType; // 抓拍车辆类型,0:非黄牌车 1:蓝牌车 2:非大客车
  4691. BYTE bSensitivity; // 灵敏度,取值1-10,数值越大代表灵敏度越高
  4692. BYTE bEnclosure; // 电子围栏功能, 1-打开 0-关闭
  4693. bool bTrackEnable; // 触发跟踪使能,对绊线,入侵的物体跟踪
  4694. int nObjectTypeNum; // 相应物体类型个数
  4695. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4696. int nPtzPresetId; // 云台预置点编号 0~65535
  4697. int nLane; // 车道编号
  4698. int nDetectRegionPoint; // 检测区顶点数
  4699. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  4700. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4701. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4702. }CFG_TRAFFIC_VEHICLEINBUSROUTE_INFO;
  4703. typedef enum tagCFG_SAFEBELT_SEAT
  4704. {
  4705. CSS_UNKNOW ,
  4706. CSS_MAIN_SEAT , //主驾驶座位
  4707. CSS_SLAVE_SEAT , //副驾驶座位
  4708. }CFG_SAFEBELT_SEAT;
  4709. // 事件类型 EVENT_IVS_TRAFFIC_WITHOUT_SAFEBELT(交通未系安全带事件)对应规则配置
  4710. typedef struct tagCFG_TRAFFIC_WITHOUT_SAFEBELT
  4711. {
  4712. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4713. bool bRuleEnable; // 规则使能
  4714. BYTE bReserved[3]; // 保留字段
  4715. int nObjectTypeNum; // 相应物体类型个数
  4716. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4717. int nPtzPresetId; // 云台预置点编号 0~65535
  4718. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4719. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4720. int nLane; // 车道编号
  4721. int nSeatNum; // 获取的座位数
  4722. CFG_SAFEBELT_SEAT emSnapSeat[MAX_SEAT_NUM]; // 需要抓拍的驾驶座座位
  4723. }CFG_TRAFFIC_WITHOUT_SAFEBELT;
  4724. // 事件类型 EVENT_IVS_GETOUTBEDDETECTION(看守所下床事件)对应规则配置
  4725. typedef struct tagCFG_IVS_GETOUTBEDDETECTION_INFO
  4726. {
  4727. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4728. bool bRuleEnable; // 规则使能
  4729. BYTE bReserved[3]; // 保留字段
  4730. int nObjectTypeNum; // 相应物体类型个数
  4731. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4732. int nPtzPresetId; // 云台预置点编号 0~65535
  4733. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4734. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4735. int nDetectRegionPoint; // 检测区顶点数
  4736. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区,多边形类型,多边形中每个顶点的坐标归一化到[0,8192)区间
  4737. unsigned int nMinDuration; // 最短持续时间,单位:秒
  4738. unsigned int nReportInterval; // 报告时间间隔,单位:秒
  4739. int nAssisDectLinePointNum; // 辅助检测线点数
  4740. CFG_POLYLINE stuAssisDectLine[MAX_POLYLINE_NUM]; // 辅助检测线
  4741. }CFG_IVS_GETOUTBEDDETECTION_INFO;
  4742. // 事件类型 EVENT_IVS_PATROLDETECTION(巡逻检测事件)对应规则配置
  4743. typedef struct tagCFG_IVS_PATROLDETECTION_INFO
  4744. {
  4745. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4746. bool bRuleEnable; // 规则使能
  4747. BYTE bReserved[3]; // 保留字段
  4748. int nObjectTypeNum; // 相应物体类型个数
  4749. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4750. int nPtzPresetId; // 云台预置点编号 0~65535
  4751. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4752. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4753. int nDetectRegionPoint; // 警戒区顶点数
  4754. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区,多边形类型,多边形中每个顶点的坐标归一化到[0,8192)区间
  4755. unsigned int nMinDuration; // 最短持续时间,单位:秒
  4756. unsigned int nReportInterval; // 报告时间间隔,单位:秒
  4757. unsigned int nPatrolTime; // 巡逻时间,单位:秒
  4758. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4759. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4760. }CFG_IVS_PATROLDETECTION_INFO;
  4761. // 事件类型 EVENT_IVS_ONDUTYDETECTION(站岗检测事件)对应规则配置
  4762. typedef struct tagCFG_IVS_ONDUTYDETECTION_INFO
  4763. {
  4764. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4765. bool bRuleEnable; // 规则使能
  4766. BYTE bReserved[3]; // 保留字段
  4767. int nObjectTypeNum; // 相应物体类型个数
  4768. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4769. int nPtzPresetId; // 云台预置点编号 0~65535
  4770. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4771. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4772. int nDetectRegionPoint; // 警戒区顶点数
  4773. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区,多边形类型,多边形中每个顶点的坐标归一化到[0,8192)区间
  4774. unsigned int nMinDuration; // 最短持续时间,单位:秒
  4775. unsigned int nReportInterval; // 报告时间间隔,单位:秒
  4776. int nTemplateRegionPointPairNum; // 模板区域信息点对个数
  4777. CFG_POLYGON stuTemplateRegion[MAX_TEMPLATEREGION_NUM][POINT_PAIR_NUM]; // 模板区域信息,个数对应于模板图片个数
  4778. }CFG_IVS_ONDUTYDETECTION_INFO;
  4779. // 事件类型 EVENT_IVS_TRAFFIC_DRIVER_SMOKING(驾驶员抽烟事件)对应规则配置
  4780. typedef struct tagCFG_TRAFFIC_DRIVER_SMOKING
  4781. {
  4782. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4783. bool bRuleEnable; // 规则使能
  4784. BYTE bReserved[3]; // 保留字段
  4785. int nObjectTypeNum; // 相应物体类型个数
  4786. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4787. int nPtzPresetId; // 云台预置点编号 0~65535
  4788. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4789. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4790. int nLane; // 车道编号
  4791. }CFG_TRAFFIC_DRIVER_SMOKING;
  4792. // 事件类型 EVNET_IVS_TRAFFIC_DRIVER_CALLING(驾驶员打电话事件)对应规则配置
  4793. typedef struct tagCFG_TRAFFIC_DRIVER_CALLING
  4794. {
  4795. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4796. bool bRuleEnable; // 规则使能
  4797. BYTE bReserved[3]; // 保留字段
  4798. int nObjectTypeNum; // 相应物体类型个数
  4799. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4800. int nPtzPresetId; // 云台预置点编号 0~65535
  4801. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4802. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4803. int nLane; // 车道编号
  4804. }CFG_TRAFFIC_DRIVER_CALLING;
  4805. // 事件类型 EVENT_IVS_TRAFFIC_PASSNOTINORDER(未按规定依次通行)对应规则配置
  4806. typedef struct tagCFG_TRAFFIC_PASSNOTINORDER_INFO
  4807. {
  4808. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4809. bool bRuleEnable; // 规则使能
  4810. BYTE bReserved[3]; // 保留字段
  4811. int nObjectTypeNum; // 相应物体类型个数
  4812. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4813. int nPtzPresetId; // 云台预置点编号 0~65535
  4814. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4815. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4816. int nLane; // 车道编号
  4817. int nFollowTime; // 跟随时间阈值,高于此值不算违章 单位:毫秒(ms)
  4818. }CFG_TRAFFIC_PASSNOTINORDER_INFO;
  4819. // 事件类型 EVENT_IVS_HEATMAP/EVENT_IVS_HEATMAP_PLAN(热度图/热度图计划)对应规则配置
  4820. typedef struct tagCFG_IVS_HEATMAP_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 nPtzPresetId; // 云台预置点编号 0~65535
  4828. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4829. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4830. int nDetectRegionPoint; // 警戒区顶点数
  4831. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区,多边形类型,多边形中每个顶点的坐标归一化到[0,8192)区间
  4832. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4833. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4834. UINT nPlanID; // 计划ID,仅球机有效,从1开始 (热度图统一之前使用,统一之后使用nPtzPresetId)
  4835. }CFG_IVS_HEATMAP_INFO;
  4836. typedef struct tagCFG_REGION_FILTER
  4837. {
  4838. CFG_RECT stuMaxRect; // 最大人头区域
  4839. CFG_RECT stuMinRect; // 最小人头区域
  4840. }CFG_REGION_FILTER;
  4841. // 事件类型 EVENT_IVS_STANDUPDETECTION 人起立检测 对应规则配置
  4842. typedef struct tagCFG_IVS_STANDUPDETECTION_INFO
  4843. {
  4844. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4845. bool bRuleEnable; // 规则使能
  4846. BYTE bReserved[3]; // 保留字段
  4847. int nObjectTypeNum; // 相应物体类型个数
  4848. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4849. int nPtzPresetId; // 云台预置点编号 0~65535
  4850. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4851. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4852. CFG_REGION stuHumanRegion; // 检测人区域
  4853. int nStandUpDirectionNum; // 起立方向顶点数
  4854. CFG_POLYLINE stuStandUpDirection[MAX_POLYLINE_NUM]; // 起立方向, 第一个为起点, 第二个为终点, 前两点有效
  4855. CFG_REGION_FILTER stuRegionFilter; // 过滤器
  4856. }CFG_IVS_STANDUPDETECTION_INFO;
  4857. // 事件类型 EVENT_IVS_SHOOTINGSCORERECOGNITION 打靶像机事件 对应规则配置
  4858. typedef struct tagCFG_IVS_SHOOTINGSCORERECOGNITION_INFO
  4859. {
  4860. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4861. bool bRuleEnable; // 规则使能
  4862. BYTE bReserved[3]; // 保留字段
  4863. int nObjectTypeNum; // 相应物体类型个数
  4864. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4865. int nPtzPresetId; // 云台预置点编号 0~65535
  4866. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4867. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4868. CFG_REGION stuDetectRegion; // 检测区域 参见警戒区配置DetectRegion
  4869. int nRound; // 计数周期加1后弹孔序号重新从1开始计数
  4870. int nSensitivity; // 灵敏度
  4871. int nCaliber; // 弹孔口径,0:5mm口径, 1:7~8mm口径, 2:9mm口径
  4872. }CFG_IVS_SHOOTINGSCORERECOGNITION_INFO;
  4873. // 事件类型EVENT_IVS_VEHICLEANALYSE(车辆特征检测分析)对应规则配置
  4874. typedef struct tagCFG_IVS_VEHICLEANALYSE_INFO
  4875. {
  4876. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4877. bool bRuleEnable; // 规则使能
  4878. BYTE bReserved[3]; // 保留字段
  4879. int nObjectTypeNum; // 相应物体类型个数
  4880. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4881. int nPtzPresetId; // 云台预置点编号 0~65535
  4882. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4883. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4884. int nDetectRegionPoint; // 警戒区顶点数
  4885. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 警戒区
  4886. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  4887. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  4888. } CFG_IVS_VEHICLEANALYSE_INFO;
  4889. // 事件类型EVENT_IVS_LETRACK(简单跟踪事件)对应规则配置
  4890. typedef struct tagCFG_IVS_LETRACK_INFO
  4891. {
  4892. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4893. BOOL bRuleEnable; // 规则使能
  4894. int nObjectTypeNum; // 相应物体类型个数
  4895. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4896. int nPtzPresetId; // 云台预置点编号 0~65535
  4897. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4898. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4899. BYTE bReserved[512]; // 保留字节
  4900. } CFG_IVS_LETRACK_INFO;
  4901. // 事件类型EVENT_IVS_MAN_STAND_DETECTION(立体视觉站立事件)
  4902. // EVENT_IVS_NEAR_DISTANCE_DETECTION(近距离接触事件)对应的规则配置
  4903. typedef struct tagCFG_STEREO_VISION_INFO
  4904. {
  4905. // 信息
  4906. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4907. BOOL bRuleEnable; // 规则使能
  4908. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4909. BYTE bReserved1[3]; // 保留字段
  4910. int nObjectTypeNum; // 相应物体类型个数
  4911. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4912. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4913. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4914. int nPtzPresetId; // 云台预置点编号 0~65535
  4915. int nDetectLinePoint; // 检测区域顶点数
  4916. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 检测区域
  4917. int nDetectRegionPoint; // 检测区域顶点数
  4918. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域坐标
  4919. int nThreshold; // 异常阈值
  4920. int nDetectType; // 人数异常检测方式(仅用于区域内人数统计)
  4921. // 0-小于等于阈值报警 1-大于等于阈值报警
  4922. int nSensitivity; // 灵敏度,[0-100]
  4923. int nMaxHeight; // 最大检测高度,单位cm
  4924. int nMinHeight; // 最小检测高度,单位cm
  4925. BYTE bReserved[512]; // 保留字节
  4926. } CFG_STEREO_VISION_INFO;
  4927. // 事件类型EVENT_IVS_MAN_NUM_DETECTION(立体视觉区域内人数统计事件)对应的规则配置
  4928. typedef struct tagCFG_IVS_MAN_NUM_DETECTION_INFO
  4929. {
  4930. // 信息
  4931. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4932. BOOL bRuleEnable; // 规则使能
  4933. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4934. BYTE bReserved1[3]; // 保留字段
  4935. int nObjectTypeNum; // 相应物体类型个数
  4936. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4937. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4938. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4939. int nPtzPresetId; // 云台预置点编号 0~65535
  4940. int nDetectRegionPoint; // 检测区域顶点数
  4941. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域坐标
  4942. int nThreshold; // 异常人数阈值
  4943. int nDetectType; // 人数异常检测方式
  4944. // 0-小于等于阈值报警 1-大于等于阈值报警
  4945. int nSensitivity; // 灵敏度,[1-10]
  4946. int nMaxHeight; // 最大检测高度,单位cm
  4947. int nMinHeight; // 最小检测高度,单位cm
  4948. BOOL bStayDetectEnable; // 是否开启滞留检测报警功能, 对应报警为StayDetection。
  4949. int nStayMinDuration; // 最短滞留持续时间,单位秒[2, 65535], 开启滞留检测报警时需设置
  4950. BOOL bManNumAlarmEnable; // 是否开启人数异常报警功能, 默认为TRUE。对应报警为ManNumDetection
  4951. UINT nAreaID; // 区域ID(一个预置点对应多个区域ID)
  4952. UINT nPlanId; // 计划ID,范围 1~MaxNumberStatPlan
  4953. BYTE bReserved[504]; // 保留字节
  4954. } CFG_IVS_MAN_NUM_DETECTION_INFO;
  4955. // 事件类型EVENT_IVS_STEREO_NUMBERSTAT(立体视觉人数统计事件)对应的规则配置
  4956. typedef struct tagCFG_IVS_STEREO_NUMBERSTAT_INFO
  4957. {
  4958. // 信息
  4959. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4960. BOOL bRuleEnable; // 规则使能
  4961. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4962. BYTE bReserved1[3]; // 保留字段
  4963. int nObjectTypeNum; // 相应物体类型个数
  4964. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4965. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  4966. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  4967. int nPtzPresetId; // 云台预置点编号 0~65535
  4968. int nDetectLinePoint; // 检测线顶点数
  4969. CFG_POLYLINE stuDetectLine[MAX_POLYLINE_NUM]; // 检测线
  4970. int nDetectRegionPoint; // 检测区域顶点数
  4971. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域坐标
  4972. int nSensitivity; // 灵敏度, 1-10
  4973. int nMaxHeight; // 最大检测高度,单位cm
  4974. int nMinHeight; // 最小检测高度,单位cm
  4975. int nEnterThreshold; // 进入人数报警阈值, 0表示不报警
  4976. int nExitThreshold; // 离开人数报警阈值, 0表示不报警
  4977. int nInsideThreshold; // 滞留人数报警阈值, 0表示不报警
  4978. char szDirection[CFG_COMMON_STRING_8]; // 检测方向
  4979. BYTE bReserved[512]; // 保留字节
  4980. } CFG_IVS_STEREO_NUMBERSTAT_INFO;
  4981. // 动作类型
  4982. typedef enum tagEM_CFG_ACTION_TYPE
  4983. {
  4984. EM_CFG_ACTION_TYPE_UNKNOWN, // 未知
  4985. EM_CFG_ACTION_TYPE_DRASTIC_MOTION, // 剧烈运动
  4986. EM_CFG_ACTION_TYPE_SINGLE_FIGHT, // 单人打砸
  4987. EM_CFG_ACTION_TYPE_MULTI_FIGHT, // 多人打架
  4988. }EM_CFG_ACTION_TYPE;
  4989. // 事件类型EVENT_IVS_STEREO_FIGHTDETECTION(立体行为分析打架/剧烈运动检测)对应的规则配置
  4990. typedef struct tagCFG_IVS_STEREO_FIGHTDETECTION_INFO
  4991. {
  4992. // 信息
  4993. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  4994. BOOL bRuleEnable; // 规则使能
  4995. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  4996. BYTE bReserved1[3]; // 保留字段
  4997. int nObjectTypeNum; // 相应物体类型个数
  4998. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  4999. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5000. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5001. int nPtzPresetId; // 云台预置点编号 0~65535
  5002. int nDetectRegionPoint; // 检测区域顶点数
  5003. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5004. int nSensitivity; // 灵敏度, 1-10, 默认值5
  5005. int nMaxHeight; // 最大检测高度,单位cm
  5006. int nMinHeight; // 最小检测高度,单位cm
  5007. EM_CFG_ACTION_TYPE emActionType; // 动作类型
  5008. BYTE bReserved[508]; // 保留字节
  5009. } CFG_IVS_STEREO_FIGHTDETECTION_INFO;
  5010. // 事件类型EVENT_IVS_STEREO_STEREOFALLDETECTION(立体行为分析跌倒检测)对应的规则配置
  5011. typedef struct tagCFG_IVS_STEREO_STEREOFALLDETECTION_INFO
  5012. {
  5013. // 信息
  5014. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5015. BOOL bRuleEnable; // 规则使能
  5016. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  5017. BYTE bReserved1[3]; // 保留字段
  5018. int nObjectTypeNum; // 相应物体类型个数
  5019. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5020. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5021. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5022. int nPtzPresetId; // 云台预置点编号 0~65535
  5023. int nDetectRegionPoint; // 检测区域顶点数
  5024. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5025. int nMinDuration; // 最短持续时间,单位是秒,低于该时间不报警, 默认1 范围[1,60]
  5026. int nReportInterval; // 跌倒重复报警时间,为0不重复报警, 默认0 范围[0,300],单位:秒
  5027. int nSensitivity; // 灵敏度, 1-10, 默认值5
  5028. int nMaxHeight; // 最大检测高度,单位cm
  5029. int nMinHeight; // 最小检测高度,单位cm
  5030. BYTE bReserved[512]; // 保留字节
  5031. } CFG_IVS_STEREO_STEREOFALLDETECTION_INFO;
  5032. // 事件类型EVENT_IVS_STEREO_STAYDETECTION(立体行为分析人员滞留检测)对应的规则配置
  5033. typedef struct tagCFG_IVS_STEREO_STAYDETECTION_INFO
  5034. {
  5035. // 信息
  5036. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5037. BOOL bRuleEnable; // 规则使能
  5038. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  5039. BYTE bReserved1[3]; // 保留字段
  5040. int nObjectTypeNum; // 相应物体类型个数
  5041. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5042. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5043. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5044. int nPtzPresetId; // 云台预置点编号 0~65535
  5045. int nDetectRegionPoint; // 检测区域顶点数
  5046. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5047. int nMinDuration; // 滞留时间阈值,单位是秒,低于该时间不报警, 默认300, 范围[1,3600]
  5048. int nReportInterval; // 跌倒重复报警时间,为0不重复报警, 默认0 范围[0,300],单位:秒
  5049. int nSensitivity; // 灵敏度, 1-10, 默认5
  5050. int nMaxHeight; // 最大检测高度,单位cm
  5051. int nMinHeight; // 最小检测高度,单位cm
  5052. BYTE bReserved[512]; // 保留字节
  5053. } CFG_IVS_STEREO_STAYDETECTION_INFO;
  5054. // 事件类型EVENT_IVS_STEREO_DISTANCE_DETECTION(立体行为分析间距异常/人员靠近检测)对应的规则配置
  5055. typedef struct tagCFG_IVS_STEREO_DISTANCE_DETECTION_INFO
  5056. {
  5057. // 信息
  5058. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5059. BOOL bRuleEnable; // 规则使能
  5060. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  5061. BYTE bReserved1[3]; // 保留字段
  5062. int nObjectTypeNum; // 相应物体类型个数
  5063. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5064. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5065. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5066. int nPtzPresetId; // 云台预置点编号 0~65535
  5067. int nDetectRegionPoint; // 检测区域顶点数
  5068. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5069. int nMinDuration; // 最短持续时间, 单位是秒,低于该时间不报警, 默认2, 范围[1,60]
  5070. int nReportInterval; // 重复报警时间, 单位:秒, 为0不重复报警, 默认0, 范围[0,300]
  5071. int nSensitivity; // 灵敏度, 1-10, 默认5
  5072. int nMinHeight; // 最小检测高度,单位cm
  5073. int nMaxHeight; // 最大检测高度,单位cm
  5074. int nDetectType; // 检测模式, 取值:0-大于阈值报警 1-小于阈值报警, 默认为 1
  5075. int nDistance; // 间距阈值, 单位:cm, 取值10-600,默认值100
  5076. BYTE bReserved[512]; // 保留字节
  5077. } CFG_IVS_STEREO_DISTANCE_DETECTION_INFO;
  5078. // 事件类型EVENT_IVS_STEREO_MANNUM_DETECTION(立体行为分析人数异常检测)对应的规则配置
  5079. typedef struct tagCFG_IVS_STEREO_MANNUM_DETECTION_INFO
  5080. {
  5081. // 信息
  5082. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5083. BOOL bRuleEnable; // 规则使能
  5084. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  5085. BYTE bReserved1[3]; // 保留字段
  5086. int nObjectTypeNum; // 相应物体类型个数
  5087. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5088. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5089. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5090. int nPtzPresetId; // 云台预置点编号 0~65535
  5091. int nDetectRegionPoint; // 检测区域顶点数
  5092. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5093. int nMinDuration; // 最短持续时间, 单位是秒,低于该时间不报警, 默认2, 范围[1,60]
  5094. int nReportInterval; // 重复报警时间, 单位:秒, 为0不重复报警, 默认0, 范围[0,300]
  5095. int nSensitivity; // 灵敏度, 1-10, 默认5
  5096. int nMinHeight; // 最小检测高度,单位cm
  5097. int nMaxHeight; // 最大检测高度,单位cm
  5098. int nDetectType; // 检测模式, 取值:0-大于阈值报警 1-小于阈值报警 2-不等于阈值报警 3-等于阈值报警
  5099. int nThresholdPerson; // 报警人数阈值, 取值0-10,默认值2
  5100. BYTE bReserved[512]; // 保留字节
  5101. } CFG_IVS_STEREO_MANNUM_DETECTION_INFO;
  5102. // 事件类型EVENT_IVS_ROAD_CONSTRUCTION (道路施工检测事件) 和EVENT_IVS_ROAD_BLOCK(路障检测事件)对应的规则配置
  5103. typedef struct tagCFG_ROAD_DETECTION_INFO
  5104. {
  5105. // 信息
  5106. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5107. BOOL bRuleEnable; // 规则使能
  5108. int nObjectTypeNum; // 相应物体类型个数
  5109. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5110. int nPtzPresetId; // 云台预置点编号 0~65535
  5111. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5112. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5113. int nDetectRegionPoint; // 检测区域顶点数
  5114. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5115. int nMinDuration; // 最短持续时间, 单位秒, 0-65535
  5116. int nSensitivity; // 灵敏度, 1-10
  5117. } CFG_ROAD_DETECTION_INFO;
  5118. // 人数统计区域
  5119. typedef struct tagPEOPLE_STAT_REGIONS_INFO
  5120. {
  5121. CFG_POLYGON stuRegion[MAX_CROWD_DISTRI_MAP_REGION_POINT_NUM]; // 区域检测坐标
  5122. UINT nPointNum; // 区域有效点数
  5123. unsigned int nPeopleNumLimit; // 区域内人数上限,单位:人
  5124. char szName[32]; // 区域名称
  5125. UINT nMinDuration; // 最短持续时间,单位秒, 范围[1, 600](CrowdPosture大类才支持)
  5126. UINT nReportInterval; // 重复报警间隔,单位秒, 范围[0, 3600](CrowdPosture大类才支持)
  5127. UINT nSensitivity; // 灵敏度, 范围[1, 10](CrowdPosture大类才支持)
  5128. BYTE byReserved[336]; // 保留字节
  5129. }PEOPLE_STAT_REGIONS_INFO;
  5130. // 事件类型EVENT_IVS_CROWDDETECTION(人群密度检测事件)对应的规则配置
  5131. typedef struct tagCFG_CROWDDISTRIMAP_INFO
  5132. {
  5133. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5134. BOOL bRuleEnable; // 规则使能
  5135. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  5136. BYTE bReserved1[3]; // 保留字段
  5137. int nObjectTypeNum; // 相应物体类型个数
  5138. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5139. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5140. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5141. int nPtzPresetId; // 云台预置点编号 0~65535
  5142. BOOL bGeneralAlarmEnable; // 全局人群密度超限报警使能
  5143. unsigned int nCrowdDensity; // 全局人群密度报警阈值,单位:人/平方米
  5144. BOOL bRegionAlarmEnable; // 区域人员数量超限报警使能
  5145. int nPeopleStatRegionsNum; // 人数统计区域个数
  5146. PEOPLE_STAT_REGIONS_INFO stuPeopleStatRegions[MAX_PEOPLESTATREGIONS_NUM]; // 人数统计区域
  5147. BOOL bSlaveTrackEnable; // 枪球联动跟踪使能
  5148. UINT nMinDuration; // 最短持续时间, 单位秒, 范围[1, 600](CrowdPosture大类才支持)
  5149. UINT nReportInterval; // 重复报警间隔, 单位秒, 范围[0, 3600](CrowdPosture大类才支持)
  5150. UINT nSensitivity; // 灵敏度, 范围[1, 10](CrowdPosture大类才支持)
  5151. BYTE bReserved[500]; // 保留字节
  5152. }CFG_CROWDDISTRIMAP_INFO;
  5153. // 事件类型EVENT_IVS_BANNER_DETECTION(拉横幅事件)对应的规则配置
  5154. typedef struct tagCFG_BANNER_DETECTION_INFO
  5155. {
  5156. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5157. BOOL bRuleEnable; // 规则使能
  5158. int nObjectTypeNum; // 相应物体类型个数
  5159. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5160. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5161. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5162. int nPtzPresetId; // 云台预置点编号 0~65535
  5163. int nDetectRegionPoint; // 检测区域顶点数
  5164. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5165. int nMinDuration; // 最短持续时间, 单位:秒,范围1-600, 默认30
  5166. int nReportInterval; // 重复报警间隔,单位:秒,范围0-600,默认30,为0表示不重复
  5167. int nSensitivity; // 检测灵敏度,范围1-10
  5168. BYTE bReserved[512]; // 保留字节
  5169. } CFG_BANNER_DETECTION_INFO;
  5170. // 事件类型EVENT_IVS_NORMAL_FIGHTDETECTION(普通斗殴事件)对应的规则配置
  5171. typedef struct tagCFG_NORMAL_FIGHT_INFO
  5172. {
  5173. // 信息
  5174. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5175. bool bRuleEnable; // 规则使能
  5176. int nObjectTypeNum; // 相应物体类型个数
  5177. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5178. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5179. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5180. int nPtzPresetId; // 云台预置点编号 0~65535
  5181. int nMinDuration; // 最短持续时间 单位:秒,范围1-600, 默认值30
  5182. int nDetectRegionPoint; // 检测区域顶点数
  5183. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5184. int nTrackDuration; // 持续跟踪时间, 单位:秒, 范围5-300
  5185. int nSensitivity; // 灵敏度, 1-10
  5186. CFG_EM_DETECTMODE_T emDetectMode; // 检测模式
  5187. BYTE bReserved[512]; // 保留字节
  5188. } CFG_NORMAL_FIGHT_INFO;
  5189. // 事件类型EVENT_IVS_ELEVATOR_ABNORMAL(电动扶梯运行异常事件)对应的规则配置
  5190. typedef struct tagCFG_ELEVATOR_ABNORMAL_INFO
  5191. {
  5192. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5193. BOOL bRuleEnable; // 规则使能
  5194. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  5195. BYTE bReserved1[3]; // 保留字段
  5196. int nDetectRegionPoint; // 检测区顶点数
  5197. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5198. int nObjectTypeNum; // 相应物体类型个数
  5199. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5200. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5201. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5202. int nPtzPresetId; // 云台预置点编号 0~65535
  5203. int nMinDuration; // 扶梯逆行时间阈值
  5204. int nReportInterval; // 扶梯逆行重复报警间隔秒数,为0则不重复报警
  5205. int nSensitivity; // 灵敏度, 取值1-10, 默认值6
  5206. CFG_POLYLINE stuDetectLineBegin; // 扶梯运行方向的起点
  5207. CFG_POLYLINE stuDetectLineEnd; // 扶梯运行方向的终点
  5208. BYTE bReserved[512]; // 保留字节
  5209. } CFG_ELEVATOR_ABNORMAL_INFO;
  5210. // 非机动车属性类型
  5211. typedef enum tagEM_CFG_NONMOTOR_FEATURE
  5212. {
  5213. EM_CFG_NONMOTOR_FEATURE_HELMET, //头盔
  5214. EM_CFG_NONMOTOR_FEATURE_NUMOFCYCLING, //车上人数
  5215. EM_CFG_NONMOTOR_FEATURE_NONMOTORCOLOR, //车身颜色
  5216. EM_CFG_NONMOTOR_FEATURE_SEX, //性别
  5217. EM_CFG_NONMOTOR_FEATURE_AGE, //年龄
  5218. EM_CFG_NONMOTOR_FEATURE_HAT, //帽子
  5219. EM_CFG_NONMOTOR_FEATURE_BAG, //背包
  5220. EM_CFG_NONMOTOR_FEATURE_CARRIERBAG, //手提包
  5221. EM_CFG_NONMOTOR_FEATURE_UMBRELLA, //雨伞
  5222. EM_CFG_NONMOTOR_FEATURE_UPPERBODYCOLOR, //上衣颜色
  5223. EM_CFG_NONMOTOR_FEATURE_LOWERBODYCOLOR, //下衣颜色
  5224. EM_CFG_NONMOTOR_FEATURE_UPCLOTHES, //上衣类型
  5225. EM_CFG_NONMOTOR_FEATURE_DOWNCLOTHES, //下衣类型
  5226. EM_CFG_NONMOTOR_FEATURE_CATEGORY, //车类型
  5227. }EM_CFG_NONMOTOR_FEATURE;
  5228. #define MAX_NONMOTOR_ATTRIBUTE_NUM 32 // 支持的非机动车属性个数
  5229. // 事件类型EVENT_IVS_NONMOTORDETECT(非机动车事件)对应的规则配置
  5230. typedef struct tagCFG_NONMOTORDETECT_INFO
  5231. {
  5232. // 通用配置
  5233. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5234. BOOL bRuleEnable; // 规则使能
  5235. int nObjectTypeNum; // 相应物体类型个数
  5236. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5237. int nPtzPresetId; // 云台预置点编号 0~65535
  5238. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5239. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5240. // 基础配置
  5241. int nFeatureNum; // 支持的非机动车属性个数
  5242. EM_CFG_NONMOTOR_FEATURE emFeatureList[MAX_NONMOTOR_ATTRIBUTE_NUM]; // 支持的非机动车属性列表
  5243. BYTE bReserved[512]; // 保留字节
  5244. }CFG_NONMOTORDETECT_INFO;
  5245. // 事件类型EVENT_IVS_HUMANTRAIT(人员检测规则)对应的规则配置
  5246. typedef struct tagCFG_HUMANTRAIT_INFO
  5247. {
  5248. // 通用配置
  5249. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5250. BOOL bRuleEnable; // 规则使能
  5251. int nObjectTypeNum; // 相应物体类型个数
  5252. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5253. int nPtzPresetId; // 云台预置点编号 0~65535
  5254. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5255. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5256. // 特有配置
  5257. int nHumanFaceTypeNum; // 支持的人脸检测类型个数
  5258. EM_VIDEO_ANALYSE_HUMANFACE_TYPE emHumanFaceType[MAX_HUMANFACE_LIST_SIZE]; // 支持的人脸检测类型列表
  5259. int nMinDuration; // 最短触发时间,单位:秒
  5260. int nTriggerTargets; // 触发报警的人脸个数
  5261. int nSensitivity; // 灵敏度,越高越容易检测, 0-10
  5262. BOOL bSizeFileter; // 是否使用尺寸过滤器
  5263. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器,提高判断精度
  5264. BOOL bFeatureEnable; // 是否开启人脸属性识别
  5265. BOOL bFeatureFilter; // 在人脸属性开启前提下,如果人脸图像质量太差,是否不上报属性 true-图像太差不上报属性;false-图像很差也上报属性(可能会非常不准,影响用户体验)
  5266. int nMinQuality; // 人脸图片质量阈值,和bFeatureFilter一起使用
  5267. int nFaceFeatureNum; // 需要检测的人脸属性个数
  5268. EM_FACEFEATURE_TYPE emFaceFeatureType[MAX_FEATURE_LIST_SIZE]; // 需检测的人脸属性
  5269. BYTE bReserved[512]; // 保留字节
  5270. }CFG_HUMANTRAIT_INFO;
  5271. // 事件类型EVENT_IVS_VEHICLEDETECT(机动车事件)对应的规则配置
  5272. typedef struct tagCFG_VEHICLEDETECT_INFO
  5273. {
  5274. // 通用配置
  5275. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5276. BOOL bRuleEnable; // 规则使能
  5277. int nObjectTypeNum; // 相应物体类型个数
  5278. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5279. int nPtzPresetId; // 云台预置点编号 0~65535
  5280. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5281. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5282. // 特有配置
  5283. int nSnapThreshold; // 车辆抓拍阈值,是一个百分数,表示当车辆检测框高度占画面百分比大于这个阈值时,触发规则进行抓拍。
  5284. BYTE bReserved[512]; // 保留字节
  5285. }CFG_VEHICLEDETECT_INFO;
  5286. // 事件类型EVENT_IVS_TUMBLE_DETECTION(倒地事件)对应的规则配置
  5287. typedef struct tagCFG_TUMBLE_DETECTION_INFO
  5288. {
  5289. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5290. BOOL bRuleEnable; // 规则使能
  5291. BYTE bTrackEnable; // 触发跟踪使能,仅对绊线,入侵规则有效
  5292. BYTE bReserved1[3]; // 保留字段
  5293. int nDetectRegionPoint; // 检测区顶点数
  5294. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5295. int nObjectTypeNum; // 相应物体类型个数
  5296. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5297. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5298. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5299. int nPtzPresetId; // 云台预置点编号 0~65535
  5300. int nMinDuration; // 倒地首次报警时间阈值,低于该时间不报警。范围[0,30],单位:秒
  5301. int nReportInterval; // 倒地重复报警时间,为0不重复报警。范围[1,300],单位:秒
  5302. int nMinHeight; // 最小检测高度。单位:厘米
  5303. int nMaxHeight; // 最大检测高度。单位:厘米
  5304. int nSensitivity; // 灵敏度,范围[1,10]
  5305. BYTE byReserved[512]; // 保留字节
  5306. }CFG_TUMBLE_DETECTION_INFO;
  5307. //检测方向
  5308. typedef enum tagEM_CFG_DIRECTION_TYPE
  5309. {
  5310. EM_CFG_DIRECTION_UNKNOWN = 0, // 未知
  5311. EM_CFG_DIRECTION_LEFT_TO_RIGHT, // 从左向右
  5312. EM_CFG_DIRECTION_RIGHT_TO_LEFT, // 从右向左
  5313. EM_CFG_DIRECTION_BOTH // 全部
  5314. }EM_CFG_DIRECTION_TYPE;
  5315. // 事件类型EVENT_IVS_SPILLEDMATERIAL_DETECTION(抛洒物检测事件)对应的规则配置
  5316. typedef struct tagCFG_SPILLEDMATERIAL_DETECTION_INFO
  5317. {
  5318. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5319. BOOL bRuleEnable; // 规则使能
  5320. int nObjectTypeNum; // 相应物体类型个数
  5321. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5322. int nPtzPresetId; // 云台预置点编号 0~65535
  5323. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5324. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5325. int nDetectLinePointNum; // 警戒线端点个数
  5326. CFG_POLYLINE stuDetectLine[MAX_POLYGON_NUM]; // 警戒线。 折线类型,折线中每个端点的坐标归一化到[0,8192)区间。
  5327. EM_CFG_DIRECTION_TYPE emDirection; // 检测方向
  5328. CFG_SIZEFILTER_INFO stuSizeFilter; // 规则特定的尺寸过滤器,为提高规则判断精度
  5329. BYTE byReserved[4096]; // 保留字节
  5330. }CFG_SPILLEDMATERIAL_DETECTION_INFO;
  5331. // 事件类型 EVENT_IVS_AIRPLANE_DETECTION (飞机行为检测)对应的规则配置
  5332. typedef struct tagCFG_AIRPLANE_DETECTION_INFO
  5333. {
  5334. // 信息
  5335. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5336. BOOL bRuleEnable; // 规则使能
  5337. int nObjectTypeNum; // 相应物体类型个数
  5338. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5339. int nPtzPresetId; // 云台预置点编号 0~65535
  5340. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5341. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5342. CFG_POLYLINE stuGuideLine[2]; // 导向线
  5343. CFG_POLYLINE stuStopLine[10][2]; // 停止线
  5344. int nStopLineNum; // 停止线数量
  5345. BYTE byReserved[4096]; // 保留字节
  5346. } CFG_AIRPLANE_DETECTION_INFO;
  5347. // 事件类型 DEV_EVENT_GENERATEGRAPH_DETECTION_INFO(生成规则图事件)对应的规则配置
  5348. typedef struct tagCFG_GENERATEGRAPH_DETECTION_INFO
  5349. {
  5350. // 通用配置
  5351. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5352. BOOL bRuleEnable; // 规则使能
  5353. int nObjectTypeNum; // 相应物体类型个数
  5354. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5355. int nPtzPresetId; // 云台预置点编号 0~65535
  5356. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5357. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5358. // 特有配置
  5359. UINT nPlanID; // 计划ID,仅球机有效,从1开始
  5360. }CFG_GENERATEGRAPH_DETECTION_INFO;
  5361. // 事件类型 EVENT_IVS_FLOATINGOBJECT_DETECTION (漂浮物检测)对应的规则配置
  5362. typedef struct tagCFG_FLOATINGOBJECT_DETECTION_INFO
  5363. {
  5364. // 信息
  5365. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5366. BOOL bRuleEnable; // 规则使能
  5367. int nObjectTypeNum; // 相应物体类型个数
  5368. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5369. int nPtzPresetId; // 云台预置点编号 0~65535
  5370. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5371. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5372. int nDetectRegionPoint; // 检测区顶点数
  5373. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5374. float fAlarmThreshold; // 报警阈值。当检测区域内的漂浮物占比超过阈值时则产生报警;单位:%,取值范围(0, 100]
  5375. UINT nAlarmInterval; // 报警时间间隔。(单位:秒)。取值范围[60, 86400]
  5376. BOOL bDataUpload; // 是否上报实时数据。
  5377. UINT nUpdateInterval; // 实时数据上报间隔。(单位:秒)。取值范围[60, 86400]
  5378. BYTE byReserved[4096]; // 保留字节
  5379. } CFG_FLOATINGOBJECT_DETECTION_INFO;
  5380. // 事件类型 EVENT_IVS_WATER_LEVEL_DETECTION (水位检测事件)对应的规则配置
  5381. typedef struct tagCFG_WATER_LEVEL_DETECTION_INFO
  5382. {
  5383. // 信息
  5384. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5385. BOOL bRuleEnable; // 规则使能
  5386. int nObjectTypeNum; // 相应物体类型个数
  5387. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5388. int nPtzPresetId; // 云台预置点编号 0~65535
  5389. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5390. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5391. int nBaseLinePointNum; // 拼接的水位尺坐标点数
  5392. CFG_POLYGON stuBaseLine[16]; // 对于拼接的水位尺,需页面上标定出拼接处,若无拼接无需填充
  5393. // 一般4个点,最大不超过16个点,每个点坐标归一化到[0,8192]区间
  5394. float fBaseLevel; // 对应BaseLine标定的实际水位值。(单位:米)
  5395. float fHighLevel; // 水位上限报警阈值(单位:米)
  5396. float fLowLevel; // 水位下限报警阈值(单位:米)
  5397. UINT nAlarmInterval; // 报警时间间隔。(单位:秒)。取值范围[60, 86400]
  5398. BOOL bDataUpload; // 是否上报实时数据。
  5399. UINT nUpdateInterval; // 实时数据上报间隔。(单位:秒)。取值范围[60, 86400]
  5400. BYTE byReserved[4096]; // 保留字节
  5401. } CFG_WATER_LEVEL_DETECTION_INFO;
  5402. // 事件类型 EVENT_IVS_PHONECALL_DETECT (打电话报警事件)对应的规则配置
  5403. typedef struct tagCFG_PHONECALL_DETECT_INFO
  5404. {
  5405. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5406. BOOL bRuleEnable; // 规则使能
  5407. int nObjectTypeNum; // 相应物体类型个数
  5408. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5409. int nPtzPresetId; // 云台预置点编号 0~65535
  5410. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5411. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5412. int nDetectRegionPoint; // 检测区顶点数
  5413. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5414. int nMinDuration; // 最短持续时间,单位秒
  5415. int nSensitivity; // 灵敏度
  5416. int nReportInterval; // 报告时间间隔
  5417. BYTE byReserved[4096]; // 保留字节
  5418. } CFG_PHONECALL_DETECT_INFO;
  5419. // 事件类型 EVENT_IVS_SMOKING_DETECT (吸烟检测报警事件)对应的规则配置
  5420. typedef struct tagCFG_SMOKING_DETECT_INFO
  5421. {
  5422. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5423. BOOL bRuleEnable; // 规则使能
  5424. int nObjectTypeNum; // 相应物体类型个数
  5425. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5426. int nPtzPresetId; // 云台预置点编号 0~65535
  5427. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5428. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5429. int nDetectRegionPoint; // 检测区顶点数
  5430. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5431. int nMinDuration; // 最短持续时间,单位秒
  5432. int nSensitivity; // 灵敏度
  5433. int nReportInterval; // 报告时间间隔
  5434. BYTE byReserved[4096]; // 保留字节
  5435. } CFG_SMOKING_DETECT_INFO;
  5436. // 事件类型 EVENT_IVS_HELMET_DETECTION (安全帽检测)对应的规则配置
  5437. typedef struct tagCFG_HELMET_DETECTION_INFO
  5438. {
  5439. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5440. BOOL bRuleEnable; // 规则使能
  5441. int nObjectTypeNum; // 相应物体类型个数
  5442. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5443. int nPtzPresetId; // 云台预置点编号 0~65535
  5444. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5445. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5446. int nDetectRegionPoint; // 检测区顶点数
  5447. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  5448. int nDectRegionID; // 检测区域编号
  5449. BYTE byReserved[4096]; // 保留字节
  5450. }CFG_HELMET_DETECTION_INFO;
  5451. //事件类型EVENT_IVS_HOLD_UMBRELLA(违规打伞事件)对应规则配置
  5452. typedef struct tagCFG_HOLDUMBRELLA_INFO
  5453. {
  5454. // 信息
  5455. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5456. BOOL bRuleEnable; // 规则使能
  5457. int nObjectTypeNum; // 相应物体类型个数
  5458. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5459. int nPtzPresetId; // 云台预置点编号 0~65535
  5460. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5461. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5462. int nDetectRegionPoint; // 检测区顶点数
  5463. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5464. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  5465. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  5466. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  5467. UINT nDetectRegionNumber; // 检测区域号
  5468. BYTE byReserved[4096]; // 保留字节
  5469. }CFG_HOLDUMBRELLA_INFO;
  5470. //事件类型EVENT_IVS_GARBAGE_EXPOSURE(垃圾暴露事件)对应规则配置
  5471. typedef struct tagCFG_GARBAGEEXPOSURE_INFO
  5472. {
  5473. // 信息
  5474. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5475. BOOL bRuleEnable; // 规则使能
  5476. int nObjectTypeNum; // 相应物体类型个数
  5477. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5478. int nPtzPresetId; // 云台预置点编号 0~65535
  5479. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5480. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5481. int nDetectRegionPoint; // 检测区顶点数
  5482. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5483. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  5484. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  5485. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  5486. UINT nDetectRegionNumber; // 检测区域号
  5487. BYTE byReserved[4096]; // 保留字节
  5488. }CFG_GARBAGEEXPOSURE_INFO;
  5489. //事件类型EVENT_IVS_DUSTBIN_OVER_FLOW(垃圾桶满溢事件)对应规则配置
  5490. typedef struct tagCFG_DUSTBIN_OVERFLOW_INFO
  5491. {
  5492. // 信息
  5493. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5494. BOOL bRuleEnable; // 规则使能
  5495. int nObjectTypeNum; // 相应物体类型个数
  5496. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5497. int nPtzPresetId; // 云台预置点编号 0~65535
  5498. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5499. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5500. int nDetectRegionPoint; // 检测区顶点数
  5501. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5502. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  5503. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  5504. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  5505. UINT nDetectRegionNumber; // 检测区域号
  5506. BYTE byReserved[4096]; // 保留字节
  5507. }CFG_DUSTBIN_OVERFLOW_INFO;
  5508. //事件类型EVENT_IVS_DOOR_FRONT_DIRTY(门前脏乱事件)对应规则配置
  5509. typedef struct tagCFG_DOORFRONT_DIRTY_INFO
  5510. {
  5511. // 信息
  5512. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5513. BOOL bRuleEnable; // 规则使能
  5514. int nObjectTypeNum; // 相应物体类型个数
  5515. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5516. int nPtzPresetId; // 云台预置点编号 0~65535
  5517. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5518. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5519. int nDetectRegionPoint; // 检测区顶点数
  5520. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5521. int nSensitivity; // 灵敏度,值越小灵敏度越低 范围[1, 10]
  5522. int nMinDuration; // 最短持续时间,单位:秒 范围[0, 3600]
  5523. int nTrackDuration; // 跟踪持续时间 范围[0, 3600]
  5524. char szShopAddress[256]; // 商铺地址
  5525. UINT nDetectRegionNumber; // 检测区域号
  5526. BYTE byReserved[4096]; // 保留字节
  5527. }CFG_DOORFRONT_DIRTY_INFO;
  5528. //事件类型 EVENT_IVS_STAY_ALONE_DETECTION (单人独处事件)对应的规则配置
  5529. typedef struct tagCFG_STAY_ALONE_DETECTION_INFO
  5530. {
  5531. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5532. BOOL bRuleEnable; // 规则使能
  5533. int nObjectTypeNum; // 相应物体类型个数
  5534. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5535. int nPtzPresetId; // 云台预置点编号 0~65535
  5536. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5537. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5538. int nDetectRegionNum; // 多边形检测区域顶点个数
  5539. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 多边形检测区域
  5540. UINT nMinDuration; // 最短持续时间, 单位:秒
  5541. UINT nReportInterval; // 报告时间间隔, 单位:秒, 为0时表示只报一次
  5542. BOOL bSizeFileter; // 规则特定的尺寸过滤器是否有效
  5543. CFG_SIZEFILTER_INFO stuSizeFileter; // 规则特定的尺寸过滤器
  5544. BYTE byReserved[4096]; // 保留字节
  5545. }CFG_STAY_ALONE_DETECTION_INFO;
  5546. // 事件类型EVENT_IVS_INTELLI_SHELF(智能补货事件)对应的规则配置
  5547. typedef struct tagCFG_INTELLI_SHELF_INFO
  5548. {
  5549. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  5550. BOOL bRuleEnable; // 规则使能
  5551. int nObjectTypeNum; // 相应物体类型个数
  5552. char szObjectTypes[MAX_OBJECT_LIST_SIZE][MAX_NAME_LEN]; // 相应物体类型列表
  5553. int nPtzPresetId; // 云台预置点编号 0~65535
  5554. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  5555. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  5556. int nDetectRegionPoint; // 检测区顶点数
  5557. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区
  5558. unsigned short nThreshold; // 货架上货物百分比低于阈值则报警, 0表示不报警
  5559. unsigned short nAreaID; // 区域ID,该通道和PresetID下的某个区域,取值范围1-5
  5560. BYTE byReserved[4096]; // 保留字节
  5561. }CFG_INTELLI_SHELF_INFO;
  5562. // 规则通用信息
  5563. typedef struct tagCFG_RULE_COMM_INFO
  5564. {
  5565. BYTE bRuleId; // 规则编号
  5566. EM_SCENE_TYPE emClassType; // 规则所属的场景
  5567. BYTE bReserved[512]; // 保留字节
  5568. }CFG_RULE_COMM_INFO;
  5569. typedef struct tagCFG_RULE_INFO
  5570. {
  5571. DWORD dwRuleType; // 事件类型,详见dhnetsdk.h中"智能分析事件类型"
  5572. int nRuleSize; // 该事件类型规则配置结构体大小
  5573. CFG_RULE_COMM_INFO stuRuleCommInfo; // 规则通用信息
  5574. } CFG_RULE_INFO;
  5575. // 每个视频输入通道对应的所有事件规则:缓冲区pRuleBuf填充多个事件规则信息,每个事件规则信息内容为CFG_RULE_INFO+"事件类型对应的规则配置结构体"。
  5576. typedef struct tagCFG_ANALYSERULES_INFO
  5577. {
  5578. int nRuleCount; // 事件规则个数
  5579. char* pRuleBuf; // 每个视频输入通道对应的视频分析事件规则配置缓冲
  5580. int nRuleLen; // 缓冲大小
  5581. } CFG_ANALYSERULES_INFO;
  5582. // 视频分析资源类型
  5583. typedef enum tagCFG_VIDEO_SOURCE_TYPE
  5584. {
  5585. CFG_VIDEO_SOURCE_REALSTREAM, // 实时流
  5586. CFG_VIDEO_SOURCE_FILESTREAM, // 文件流
  5587. }CFG_VIDEO_SOURCE_TYPE;
  5588. // 分析源文件类型
  5589. typedef enum tagCFG_SOURCE_FILE_TYPE
  5590. {
  5591. CFG_SOURCE_FILE_UNKNOWN, // 未知类型
  5592. CFG_SOURCE_FILE_RECORD, // 录像文件
  5593. CFG_SOURCE_FILE_PICTURE, // 图片文件
  5594. }CFG_SOURCE_FILE_TYPE;
  5595. // 视频分析源文件信息
  5596. typedef struct tagCFG_SOURCE_FILE_INFO
  5597. {
  5598. char szFilePath[MAX_PATH]; // 文件路径
  5599. CFG_SOURCE_FILE_TYPE emFileType; // 文件类型,详见CFG_SOURCE_FILE_TYPE
  5600. }CFG_SOURCE_FILE_INFO;
  5601. // 每个视频输入通道对应的视频分析资源配置信息
  5602. typedef struct tagCFG_ANALYSESOURCE_INFO
  5603. {
  5604. bool bEnable; // 视频分析使能
  5605. BYTE bReserved[3]; // 保留对齐
  5606. int nChannelID; // 智能分析的前端视频通道号
  5607. int nStreamType; // 智能分析的前端视频码流类型,0:抓图码流; 1:主码流; 2:子码流1; 3:子码流2; 4:子码流3; 5:物体流
  5608. char szRemoteDevice[MAX_NAME_LEN]; // 设备名
  5609. BOOL abDeviceInfo; // 设备信息是否有效
  5610. AV_CFG_RemoteDevice stuDeviceInfo; // 设备信息
  5611. CFG_VIDEO_SOURCE_TYPE emSourceType; // 视频分析源类型,详见CFG_VIDEO_SOURCE_TYPE
  5612. CFG_SOURCE_FILE_INFO stuSourceFile; // 当视频分析源类型为CFG_VIDEO_SOURCE_FILESTREAM时,有效
  5613. } CFG_ANALYSESOURCE_INFO;
  5614. //视频分析整体配置,影响设备或服务器整体行为
  5615. typedef struct tagCFG_ANALYSEWHOLE_INFO
  5616. {
  5617. unsigned int nVideoChannelType; // 视频通道类型选择 0:数字,1;模拟,2:数字和模拟
  5618. }CFG_ANALYSEWHOLE_INFO;
  5619. typedef struct tagCFG_RAINBRUSH_INFO
  5620. {
  5621. bool bEnable; // 雨刷使能
  5622. BYTE bSpeedRate; // 雨刷速度,1:快速;2:中速;3:慢速
  5623. BYTE bReserved[2]; // 保留对齐
  5624. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段
  5625. int nInterval; // 雨刷运动间隔事件, 单位: 秒
  5626. BOOL bProtectEnable; // 雨刷保护使能: true 保护开启, false 保护关闭
  5627. int nProtectTime; // 保护时间, 单位: 秒
  5628. }CFG_RAINBRUSH_INFO;
  5629. // BreakingSnapTimes
  5630. typedef struct tagBREAKINGSNAPTIMES_INFO
  5631. {
  5632. int nNormal; // 正常
  5633. int nRunRedLight; // 闯红灯
  5634. int nOverLine; // 压线
  5635. int nOverYellowLine; // 压黄线
  5636. int nRetrograde; // 逆向
  5637. int nUnderSpeed; // 欠速
  5638. int nOverSpeed; // 超速
  5639. int nWrongRunningRoute; // 有车占道
  5640. int nYellowInRoute; // 黄牌占道
  5641. int nSpecialRetrograde; // 特殊逆行
  5642. int nTurnLeft; // 违章左转
  5643. int nTurnRight; // 违章右转
  5644. int nCrossLane; // 违章变道
  5645. int nU_Turn; // 违章调头
  5646. int nParking; // 违章停车
  5647. int nWaitingArea; // 违章进入待行区
  5648. int nWrongRoute; // 不按车道行驶
  5649. int nParkingSpaceParking; // 车位有车
  5650. int nParkingSpaceNoParking; // 车位无车
  5651. int nRunYellowLight; // 闯黄灯
  5652. int nStay; // 违章停留
  5653. int nPedestrainPriority; // 斑马线行人优先违章
  5654. int nVehicleInBusRoute; // 违章占道
  5655. int nBacking; // 违章倒车
  5656. int nOverStopLine; // 压停止线
  5657. int nParkingOnYellowBox; // 黄网格线停车
  5658. int nRestrictedPlate; // 受限车牌
  5659. int nNoPassing; // 禁行
  5660. int nWithoutSafeBelt; // 不系安全带
  5661. int nDriverSmoking; // 驾驶员抽烟
  5662. int nDriverCalling; // 驾驶员打电话
  5663. int nPedestrianRunRedLight; // 行人闯红灯
  5664. int nPassNotInOrder; // 未按规定依次通行
  5665. }BREAKINGSNAPTIMES_INFO;
  5666. //OSD黑边
  5667. typedef struct tagBLACK_REGION_INFO
  5668. {
  5669. int nHeight; //黑边高度 取值范围:0 ~ ( 8192-原图片高度)
  5670. int nOSDPosition; //黑边位置 0=未知 , 1=顶部 , 2=底部
  5671. }BLACK_REGION_INFO;
  5672. #define MAX_OSD_CUSTOM_SORT_NUM 8
  5673. #define MAX_OSD_CUSTOM_SORT_ELEM_NUM 8
  5674. #define MAX_OSD_CUSTOM_GENERAL_NUM 8
  5675. #define MAX_OSD_ITEM_ATTR_NUM 8
  5676. #define MAX_PRE_POX_STR_LEN 32
  5677. #define MAX_OSD_CUSTOM_NAME_LEN 32
  5678. #define MAX_OSD_CUSTOM_VALUE_LEN 256
  5679. //全体OSD项共用属性
  5680. typedef struct tagOSD_WHOLE_ATTR
  5681. {
  5682. BOOL bPositionAsBlackRegion; //位置是否同黑边相同,true时,下面的Position无效
  5683. CFG_RECT stPostion; //位置,不能超过图片范围
  5684. BOOL bNewLine; //超出矩形范围是否换行,bPositionAsBlackRegion为true时有效
  5685. BOOL bLoneVehicle; //车辆信息独立显示,true 一行显示一辆车信息,false 允许多辆车信息显示在一行
  5686. }OSD_WHOLE_ATTR;
  5687. typedef union tagOSD_ATTR_SCHEME
  5688. {
  5689. OSD_WHOLE_ATTR stWholeAttr;
  5690. }OSD_ATTR_SCHEME;
  5691. //OSD具体叠加元素
  5692. typedef struct tagOSD_CUSTOM_ELEMENT
  5693. {
  5694. int nNameType; //名称类型, 0:szName字段含义参照szOSDOrder字段定义的项
  5695. // 1:"Name"字段表示自定义项,无需解析
  5696. char szName[MAX_OSD_CUSTOM_VALUE_LEN]; // 该项名称
  5697. char szPrefix[MAX_PRE_POX_STR_LEN]; // 叠加前缀字符串
  5698. char szPostfix[MAX_PRE_POX_STR_LEN]; //叠加后缀字符串
  5699. int nSeperaterCount; //后面添加分隔符个数
  5700. }OSD_CUSTOM_ELEMENT;
  5701. //OSD叠加内容自定义排序
  5702. typedef struct tagOSD_CUSTOM_SORT
  5703. {
  5704. OSD_CUSTOM_ELEMENT stElements[MAX_OSD_CUSTOM_SORT_ELEM_NUM]; //具体叠加元素
  5705. int nElementNum;
  5706. }OSD_CUSTOM_SORT;
  5707. typedef struct tagOSD_CUSTOM_GENERAL_INFO
  5708. {
  5709. BOOL bEnable; //是否叠加
  5710. }OSD_CUSTOM_GENERAL_INFO;
  5711. //OSD自定义项
  5712. typedef struct tagOSD_CUSTOM_INFO
  5713. {
  5714. OSD_CUSTOM_GENERAL_INFO stGeneralInfos[MAX_OSD_CUSTOM_GENERAL_NUM]; //具体叠加元素
  5715. int nGeneralInfoNum;
  5716. }OSD_CUSTOM_INFO;
  5717. #define MAX_CONF_CHAR 256
  5718. //OSD属性
  5719. typedef struct tagOSD_INFO
  5720. {
  5721. BLACK_REGION_INFO stBackRegionInfo; //OSD黑边属性
  5722. int nOSDAttrScheme; //OSD属性配置方案 0=未知 , 1=全体OSD项共用属性 , 2=每个OSD项一个属性
  5723. OSD_ATTR_SCHEME stOSDAttrScheme; //OSD属性配置方案内容
  5724. OSD_CUSTOM_SORT stOSDCustomSorts[MAX_OSD_CUSTOM_SORT_NUM]; //OSD叠加内容自定义排序
  5725. int nOSDCustomSortNum;
  5726. int nRedLightTimeDisplay; //OSD红灯时间配置 0=未知,1=违法最后一张,2=所有张
  5727. char cSeperater; //OSD不同项之间的分隔符
  5728. BYTE bReserved[3]; //字节对齐
  5729. char szOSDOrder[MAX_CONF_CHAR];
  5730. int nOSDContentScheme; //0=未知, 1=Mask , 2=CustomizeSort
  5731. OSD_CUSTOM_INFO stOSDCustomInfo; //OSD自定义项
  5732. }OSD_INFO;
  5733. // Detector -- BEGIN
  5734. // CoilConfig
  5735. typedef struct tagCOILCONFIG_INFO
  5736. {
  5737. int nDelayFlashID; // 延时闪光灯序号 每个线圈对应的延时闪关灯序号,范围0~5,0表示不延时任何闪光灯
  5738. int nFlashSerialNum; // 闪光灯序号 范围0~5,0表示不打开闪光灯(鄞州项目用)
  5739. int nRedDirection; // 红灯方向 每个线圈对应的红灯方向:0-不关联,1-左转红灯,2-直行红灯,3-右转红灯,4-待左,5-待直,6-待右, 只在电警中有效
  5740. int nTriggerMode ; // 线圈触发模式 触发模式:0-入线圈触发1-出线圈触发(鄞州项目用)
  5741. int nFlashSerialNum2; //多抓第二张对应闪光灯序号 范围0~5,0表示不打开闪光灯
  5742. int nFlashSerialNum3; //多抓第三张对应闪光灯序号 范围0~5,0表示不打开闪光灯
  5743. }COILCONFIG_INFO;
  5744. // 线圈映射
  5745. typedef struct tagCOIL_MAP_INFO
  5746. {
  5747. UINT nPhyCoilID; // 物理线圈号
  5748. UINT nLogicCoilID; // 逻辑线圈号
  5749. }COIL_MAP_INFO;
  5750. typedef struct tagDETECTOR_INFO
  5751. {
  5752. int nDetectBreaking; // 违章类型掩码 从低位到高位依次是:0-正常1-闯红灯2-压线3-逆行4-欠速5-超速6-有车占道
  5753. // 7-黄牌占道 8-闯黄灯 9-违章占公交车道 10-不系安全带 11-驾驶员抽烟 12-驾驶员打电话
  5754. COILCONFIG_INFO arstCoilCfg[MAX_COILCONFIG]; // 线圈配置数组
  5755. int nRoadwayNumber; // 车道号 1-16 ; 0表示不启用
  5756. int nRoadwayDirection; // 车道方向(车开往的方向) 0-南向北 1-西南向东北 2-东 3-西北向东南 4-北向南 5-东北向西南 6-东向西 7-东南向西北 8-忽略
  5757. int nRedLightCardNum; // 卡口图片序号 表示将电警中的某一张图片作为卡口图片(共三张),0表示不采用,1~3,表示采用对应序号的图片
  5758. int nCoilsNumber; // 线圈个数 1-3
  5759. int nOperationType; // 业务模式 0-卡口电警1-电警2-卡口
  5760. int arnCoilsDistance[3]; // 两两线圈的间隔 范围0-1000,单位为厘米
  5761. int nCoilsWidth; // 每个线圈的宽度 0~200cm
  5762. int arnSmallCarSpeedLimit[2]; // 小型车辆速度下限和上限 0~255km/h,不启用大小车限速时作为普通车辆限速
  5763. int arnBigCarSpeedLimit[2]; // 大型车辆速度下限和上限 0~255km/h,启用大小车限速时有效
  5764. int nOverSpeedMargin; // 限高速宽限值 单位:km/h
  5765. int nBigCarOverSpeedMargin; // 大车限高速宽限值 单位:km/h,启用大小车限速时有效
  5766. int nUnderSpeedMargin; // 限低速宽限值 单位:km/h
  5767. int nBigCarUnderSpeedMargin; // 大车限低速宽限值 单位:km/h,启用大小车限速时有效
  5768. bool bSpeedLimitForSize; // 是否启用大小车限速
  5769. bool bMaskRetrograde; // 逆行是否视为违章行为
  5770. BYTE byReserved[2]; // 保留对齐
  5771. char szDrivingDirection[3][MAX_DRIVINGDIRECTION]; //
  5772. // "DrivingDirection" : ["Approach", "上海", "杭州"],行驶方向
  5773. // "Approach"-上行,即车辆离设备部署点越来越近;"Leave"-下行,
  5774. // 即车辆离设备部署点越来越远,第二和第三个参数分别代表上行和
  5775. // 下行的两个地点,UTF-8编码
  5776. int nOverPercentage; // 超速百分比,超过限速百分比后抓拍
  5777. int nCarScheme; // 具体的方案Index,具体方案含义参参考打包环境local.png;根据CFG_TRAFFICSNAPSHOT_INFO.abSchemeRange字段区分作用范围
  5778. int nSigScheme; // 同上,非卡口使用
  5779. BOOL bEnable; // 车道是否有效,只有有效时才抓拍
  5780. int nYellowSpeedLimit[2]; //黄牌车限速上限和下限 范围0~255km/h
  5781. int nRoadType; //工作路段 0 普通公路 1 高速公路
  5782. int nSnapMode; //抓拍模式 0-全部抓拍 1-超速抓拍 2-逆向抓拍(鄞州项目用)
  5783. int nDelayMode; //延时抓拍方案 0-使DelaySnapshotDistance,1-使用DelayTime
  5784. int nDelayTime; //延时抓拍时间 闯红灯第三张抓拍位置距离最后一个线圈的时间,单位毫秒
  5785. int nTriggerMode; //触发模式 0-入线圈触发 1-出线圈触发 2-出入都抓拍 3-关闭
  5786. int nErrorRange; //速度误差值,进线圈2与进线圈3之间的速度误差值,若实际误差大于或等于该值,视速度无效,否则取平均速度 0-20
  5787. double dSpeedCorrection; //速度校正系数,即速度值为测出的值乘以该系数
  5788. int nDirection[2]; //相对车道方向需要上报车辆行驶方向,nDirection[0] 0--空 1--正向 ; nDirection[1] 0--空 1--反向
  5789. char szCustomParkNo[CFG_COMMON_STRING_32 + 1]; // 自定义车位号(停车场用)
  5790. BYTE btReserved[3];
  5791. int nCoilMap; // 有多少对线圈映射关系
  5792. COIL_MAP_INFO stuCoilMap[16]; // 线圈号映射关系
  5793. }DETECTOR_INFO;
  5794. // Detector -- END
  5795. typedef struct tagRADAR_INFO
  5796. {
  5797. int nAngle; //角度,用于修正雷达探头安装的角度造成的速度误差,范围[0,90]
  5798. int nAntiJammingValue; //抗干扰门槛值
  5799. int nComeInValue; //来向进入门槛值,取值范围[0,65535]
  5800. int nComeOutValue; //来向离开门槛值
  5801. int nDelayTime; //雷达延时,单位ms,范围[0,255]
  5802. DWORD nDetectBreaking; //违章类型掩码,从低位到高位依次是:
  5803. //0-正常,1-闯红灯, 2-压线, 3-逆行,4-欠速
  5804. //5-超速,6-有车占道,7-黄牌占道,8-闯黄灯,9-违章占公交车道
  5805. int nDetectMode; //检测模式 0-车头检测 1-车尾检测 2-双向检测
  5806. int nInstallMode; //雷达安装方式 0-侧面安装 1-上方安装
  5807. int nLevel; //灵敏度,0级灵敏度最高,范围[0,5]
  5808. int nMultiTargetFilter; //多目标过滤模式,0-正常 1-过滤
  5809. int nWentEndValue; //去向信号结束门槛值
  5810. int nWentInValue; //去向进入门槛值
  5811. int nWentOutValue; //去向离开门槛值
  5812. }RADAR_INFO;
  5813. // CFG_CMD_INTELLECTIVETRAFFIC
  5814. typedef struct tagCFG_TRAFFICSNAPSHOT_INFO
  5815. {
  5816. char szDeviceAddress[MAX_DEVICE_ADDRESS]; // 设备地址 UTF-8编码,256字节
  5817. DWORD nVideoTitleMask; // OSD叠加类型掩码 从低位到高位分别表示:0-时间 1-地点 2-车牌3-车长 4-车速 5-限速6-大车限速 7-小车限速8-超速 9-违法代码10-车道号 11-车身颜色 12-车牌类型 13-车牌颜色14-红灯点亮时间 15-违章类型 16-雷达方向 17-设备编号 18-标定到期时间 19-车型 20-行驶方向
  5818. int nRedLightMargin; // 红灯冗余间隔时间 红灯开始的一段时间内,车辆通行不算闯红灯,单位:秒
  5819. float fLongVehicleLengthLevel; // 超长车长度最小阈值 单位:米,包含
  5820. float arfLargeVehicleLengthLevel[2]; // 大车长度阈值 单位:米,包含小值
  5821. float arfMediumVehicleLengthLevel[2]; // 中型车长度阈值 单位:米,包含小值
  5822. float arfSmallVehicleLengthLevel[2]; // 小车长度阈值 单位:米,包含小值
  5823. float fMotoVehicleLengthLevel; // 摩托车长度最大阈值 单位:米,不包含
  5824. BREAKINGSNAPTIMES_INFO stBreakingSnapTimes; // 违章抓拍张数
  5825. DETECTOR_INFO arstDetector[MAX_DETECTOR]; // 车检器配置,下标是车道号
  5826. int nCarType; // 抓拍车辆类型 0-大小车都抓拍1-抓拍小车2-抓拍大车3-大小车都不抓拍
  5827. int nMaxSpeed; // 当测得的速度超过最大速度时,则以最大速度计 0~255km/h
  5828. int nFrameMode; // 帧间隔模式 1-速度自适应(超过速度上限取0间隔,低于速度下限取2间隔,中间取1间隔)2-由联动参数决定
  5829. int arnAdaptiveSpeed[2]; // 速度自适应下限和上限
  5830. CFG_ALARM_MSG_HANDLE stuEventHandler; // 交通抓拍联动参数
  5831. BOOL abSchemeRange; // TRUE:方案针对相机,以车到0的值为准;FALSE:方案针对车道。不可以修改此字段数据, 只内部使用
  5832. DWORD nVideoTitleMask1; // 从低位到高位分别表示:0-车标 1-红灯结束时间 2-设备制造厂商 3-小车低限速 4-大车低限速 5-小车高限速 6-大车高限速 7-设备工作模式 8-通用自定义 9-车道自定义 10-抓拍触发源 11-停车场区域12-车辆类型(面包车、轿车等等) 13-中车低限速 14-中车高限速 15-道路方向 16-GPS信息
  5833. DWORD nMergeVideoTitleMask; // 合成图片OSD叠加类型掩码 参照nVideoTitleMask字段
  5834. DWORD nMergeVideoTitleMask1; // 合成图片OSD叠加类型掩码 参照nVideoTitleMask1字段
  5835. int nTriggerSource; // 触发源掩码 0-RS232 1-RS485 2-IO 3-Video 4-Net
  5836. int nSnapMode; // 抓拍模式 0-全部抓拍 1-超速抓拍 2-逆向抓拍 3-PK模式
  5837. int nWorkMode; // 工作模式 0-自动模式,1-线圈抓拍模式,2-线圈抓拍识别,3-视频抓拍,4-视频识别, 5-混合抓拍(带识别)
  5838. int nCarThreShold; // 车长阈值 区分大小车长的阈值,单位: cm
  5839. int nSnapType; // 抓拍或抓录选择 0-正常抓拍模式 1-视频抓拍模式 2-黑屏快抓模式
  5840. int nCustomFrameInterval[3]; // 自定义抓拍帧间隔 第一个元素指车速小于速度自适应下限时的抓拍帧间隔,依次类推
  5841. int nKeepAlive; // 与雷达、车检器的默认保活周期 单位秒
  5842. OSD_INFO stOSD; // 原始图片OSD参数配置
  5843. OSD_INFO stMergeOSD; // 合成图片OSD参数配置
  5844. CFG_NET_TIME stValidUntilTime; // 标定到期时间,指该时间点之前抓拍照片有效
  5845. RADAR_INFO stRadar;
  5846. char szRoadwayCode[MAX_ROADWAYNO]; // 道路代码
  5847. DWORD nVideoTitleMask2; // 原始图片OSD叠加类型掩码2 从低位到高位分别表示:0-国别 1-尾气数据
  5848. DWORD nMergeVideoTitleMask2; // 合成图片OSD叠加类型掩码2 参照nVideoTitleMask2字段
  5849. int nParkType; // 出入口类型,0-默认( 兼容以前,不区分出口/入口 ),1-入口相机, 2-出口相机
  5850. }CFG_TRAFFICSNAPSHOT_INFO;
  5851. typedef struct tagCFG_TRAFFICSNAPSHOT_NEW_INFO
  5852. {
  5853. int nCount; // 有效成员个数
  5854. CFG_TRAFFICSNAPSHOT_INFO stInfo[8]; // 交通抓拍表数组
  5855. }CFG_TRAFFICSNAPSHOT_NEW_INFO;
  5856. // 交通抓拍(CFG_CMD_TRAFFICSNAPSHOT_MULTI_EX)
  5857. typedef struct tagCFG_TRAFFICSNAPSHOT_NEW_EX_INFO
  5858. {
  5859. CFG_TRAFFICSNAPSHOT_INFO* pstInfo; // 交通抓拍表指针,用户分配,大小为sizeof(CFG_TRAFFICSNAPSHOT_INFO) * nMaxInfoNum
  5860. int nMaxInfoNum; // 用户分配CFG_TRAFFICSNAPSHOT_INFO成员个数
  5861. int nRetInfoNum; // 获取参数时表示获取到CFG_TRAFFICSNAPSHOT_INFO成员个数
  5862. }CFG_TRAFFICSNAPSHOT_NEW_EX_INFO;
  5863. typedef struct tagCFG_DATA_TIME
  5864. {
  5865. DWORD dwYear; // 年
  5866. DWORD dwMonth; // 月
  5867. DWORD dwDay; // 日
  5868. DWORD dwHour; // 时
  5869. DWORD dwMinute; // 分
  5870. DWORD dwSecond; // 秒
  5871. DWORD dwReserved[2]; // 保留字段
  5872. } CFG_DATA_TIME;
  5873. // 普通配置 (CFG_CMD_DEV_GENERRAL) General
  5874. typedef struct tagCFG_DEV_DISPOSITION_INFO
  5875. {
  5876. int nLocalNo; // 本机编号,主要用于遥控器区分不同设备 0~998
  5877. char szMachineName[256]; // 机器名称或编号
  5878. char szMachineAddress[256]; // 机器部署地点即道路编码
  5879. char szMachineGroup[256]; // 机器分组或叫设备所属单位 默认为空,用户可以将不同的设备编为一组,便于管理,可重复。
  5880. char szMachineID[64]; // 机器编号, 联网平台内唯一
  5881. int nLockLoginTimes; // 登陆失败可尝试次数
  5882. int nLoginFailLockTime; // 登陆失败锁定时间
  5883. BOOL bLockLoginEnable; // 登陆失败可尝试次数使能
  5884. CFG_DATA_TIME stuActivationTime; // 启动时间
  5885. BYTE bReserved[916]; // 保留字节
  5886. }CFG_DEV_DISPOSITION_INFO;
  5887. typedef struct tagOVERSPEED_INFO
  5888. {
  5889. int nSpeedingPercentage[2]; // 超速百分比区间要求区间不能重叠。有效值为0,正数,-1,-1表示无穷大值
  5890. // 如果是欠速:要求区间不能重叠。有效值为0,正数,-1,-1表示无穷大值,欠速百分比的计算方式:限低速-实际车速/限低速
  5891. char szCode[MAX_VIOLATIONCODE]; // 违章代码
  5892. char szDescription[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述
  5893. }CFG_OVERSPEED_INFO;
  5894. typedef CFG_OVERSPEED_INFO CFG_OVERSPEED_HIGHWAY_INFO;
  5895. typedef CFG_OVERSPEED_INFO CFG_UNDERSPEED_INFO;
  5896. //ViolationCode 违章代码配置表
  5897. typedef struct tagVIOLATIONCODE_INFO
  5898. {
  5899. char szRetrograde[MAX_VIOLATIONCODE]; // 逆行
  5900. char szRetrogradeDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5901. char szRetrogradeShowName[MAX_VIOLATIONCODE_DESCRIPT]; //显示名称
  5902. char szRetrogradeHighway[MAX_VIOLATIONCODE]; // 逆行-高速公路
  5903. char szRetrogradeHighwayDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5904. char szRunRedLight[MAX_VIOLATIONCODE]; // 闯红灯
  5905. char szRunRedLightDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5906. char szCrossLane[MAX_VIOLATIONCODE]; // 违章变道
  5907. char szCrossLaneDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5908. char szCrossLaneShowName[MAX_VIOLATIONCODE_DESCRIPT]; //违章变道显示名称
  5909. char szTurnLeft[MAX_VIOLATIONCODE]; // 违章左转
  5910. char szTurnLeftDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5911. char szTurnRight[MAX_VIOLATIONCODE]; // 违章右转
  5912. char szTurnRightDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5913. char szU_Turn[MAX_VIOLATIONCODE]; // 违章掉头
  5914. char szU_TurnDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5915. char szU_TurnShowName[MAX_VIOLATIONCODE_DESCRIPT]; //显示信息
  5916. char szJam[MAX_VIOLATIONCODE]; // 交通拥堵
  5917. char szJamDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5918. char szParking[MAX_VIOLATIONCODE]; // 违章停车
  5919. char szParkingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5920. char szParkingShowName[MAX_VIOLATIONCODE_DESCRIPT]; //违章停车显示名称
  5921. // 超速 和 超速比例 只需且必须有一个配置
  5922. char szOverSpeed[MAX_VIOLATIONCODE]; // 超速
  5923. char szOverSpeedDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5924. CFG_OVERSPEED_INFO stOverSpeedConfig[5]; // 超速比例代码
  5925. // 超速(高速公路) 和 超速比例(高速公路) 只需且必须有一个配置
  5926. char szOverSpeedHighway[MAX_VIOLATIONCODE]; // 超速-高速公路
  5927. char szOverSpeedHighwayDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 超速-违章描述信息
  5928. CFG_OVERSPEED_HIGHWAY_INFO stOverSpeedHighwayConfig[5]; // 超速比例代码
  5929. // 欠速 和 欠速比例 只需且必须有一个配置
  5930. char szUnderSpeed[MAX_VIOLATIONCODE]; // 欠速
  5931. char szUnderSpeedDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5932. CFG_UNDERSPEED_INFO stUnderSpeedConfig[5]; // 欠速配置信息 是一个数组,不同的欠速比违章代码不同,为空表示违章代码不区分超速比
  5933. char szOverLine[MAX_VIOLATIONCODE]; // 压线
  5934. char szOverLineDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5935. char szOverLineShowName[MAX_VIOLATIONCODE_DESCRIPT]; //压线显示名称
  5936. char szOverYellowLine[MAX_VIOLATIONCODE]; // 压黄线
  5937. char szOverYellowLineDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章描述信息
  5938. char szYellowInRoute[MAX_VIOLATIONCODE]; // 黄牌占道
  5939. char szYellowInRouteDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 黄牌占道违章描述信息
  5940. char szWrongRoute[MAX_VIOLATIONCODE]; // 不按车道行驶
  5941. char szWrongRouteDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 不按车道行驶违章描述信息
  5942. char szDrivingOnShoulder[MAX_VIOLATIONCODE]; // 路肩行驶
  5943. char szDrivingOnShoulderDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 路肩行驶违章描述信息
  5944. char szPassing[MAX_VIOLATIONCODE]; // 正常行驶
  5945. char szPassingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 正常行驶违章描述信息
  5946. char szNoPassing[MAX_VIOLATIONCODE]; // 禁止行驶
  5947. char szNoPassingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 禁止行驶违章描述信息
  5948. char szFakePlate[MAX_VIOLATIONCODE]; // 套牌
  5949. char szFakePlateDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 套牌违章描述信息
  5950. char szParkingSpaceParking[MAX_VIOLATIONCODE]; // 车位有车
  5951. char szParkingSpaceParkingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 车位有车违章描述信息、
  5952. char szParkingSpaceNoParking[MAX_VIOLATIONCODE]; // 车位无车
  5953. char szParkingSpaceNoParkingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 车位无车违章描述信息
  5954. char szWithoutSafeBelt[MAX_VIOLATIONCODE]; // 不系安全带
  5955. char szWithoutSafeBeltShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 不系安全带显示名称
  5956. char szWithoutSafeBeltDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 不系安全带违章描述信息
  5957. char szDriverSmoking[MAX_VIOLATIONCODE]; // 驾驶员抽烟
  5958. char szDriverSmokingShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员抽烟显示名称
  5959. char szDriverSmokingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员抽烟带违章描述信息
  5960. char szDriverCalling[MAX_VIOLATIONCODE]; // 驾驶员打电话
  5961. char szDriverCallingShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员打电话显示名称
  5962. char szDriverCallingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 驾驶员打电话违章描述信息
  5963. char szBacking[MAX_VIOLATIONCODE]; // 违章倒车
  5964. char szBackingShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 违章倒车显示名称
  5965. char szBackingDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章倒车描述信息
  5966. char szVehicleInBusRoute[MAX_VIOLATIONCODE]; // 违章占道
  5967. char szVehicleInBusRouteShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 违章占道显示名称
  5968. char szVehicleInBusRouteDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 违章占道描述信息
  5969. char szPedestrianRunRedLight[MAX_VIOLATIONCODE]; // 行人闯红灯
  5970. char szPedestrianRunRedLightShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 行人闯红灯显示名称
  5971. char szPedestrianRunRedLightDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 行人闯红灯描述信息
  5972. char szPassNotInOrder[MAX_VIOLATIONCODE]; // 未按规定依次通行
  5973. char szPassNotInOrderShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 未按规定依次通行显示名称
  5974. char szPassNotInOrderDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 未按规定依次通行描述信息
  5975. char szTrafficBan[MAX_VIOLATIONCODE]; // 机动车违法禁令标识
  5976. char szTrafficBanShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 机动车违法禁令标识显示名称
  5977. char szTrafficBanDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 描述信息
  5978. char szParkingB[MAX_VIOLATIONCODE]; // B类违章停车
  5979. char szParkingBDesc[MAX_VIOLATIONCODE_DESCRIPT]; // B类违章描述信息
  5980. char szParkingBShowName[MAX_VIOLATIONCODE_DESCRIPT]; // B类违章停车显示名称
  5981. char szParkingC[MAX_VIOLATIONCODE]; // C类违章停车
  5982. char szParkingCDesc[MAX_VIOLATIONCODE_DESCRIPT]; // C类违章描述信息
  5983. char szParkingCShowName[MAX_VIOLATIONCODE_DESCRIPT]; // C类违章停车显示名称
  5984. char szParkingD[MAX_VIOLATIONCODE]; // D类违章停车
  5985. char szParkingDDesc[MAX_VIOLATIONCODE_DESCRIPT]; // D类违章描述信息
  5986. char szParkingDShowName[MAX_VIOLATIONCODE_DESCRIPT]; // D类违章停车显示名称
  5987. char szNonMotorHoldUmbrella[MAX_VIOLATIONCODE]; // 非机动车装载伞具代码
  5988. char szNonMotorHoldUmbrellaDesc[MAX_VIOLATIONCODE_DESCRIPT]; // 非机动车装载伞具描述信息
  5989. char szNonMotorHoldUmbrellaShowName[MAX_VIOLATIONCODE_DESCRIPT]; // 非机动车装载伞具显示名称
  5990. }VIOLATIONCODE_INFO;
  5991. // 车道检测类型
  5992. typedef enum tagEmCheckType
  5993. {
  5994. EM_CHECK_TYPE_UNKNOWN, // 不识别的检测类型
  5995. EM_CHECK_TYPE_PHYSICAL, // 物理检测
  5996. EM_CHECK_TYPE_VIDEO, // 视频检测
  5997. }EM_CHECK_TYPE;
  5998. typedef struct tagTrafficEventCheckInfo
  5999. {
  6000. BOOL abTrafficGate; // 是否携带交通卡口信息
  6001. EM_CHECK_TYPE emTrafficGate; // 交通卡口检测类型
  6002. BOOL abTrafficJunction; // 是否携带交通路口信息
  6003. EM_CHECK_TYPE emTrafficJunction; // 交通路口检测类型
  6004. BOOL abTrafficTollGate; // 是否携带新交通卡口信息
  6005. EM_CHECK_TYPE emTrafficTollGate; // 新交通卡口检测类型
  6006. BOOL abTrafficRunRedLight; // 是否携带交通闯红灯信息
  6007. EM_CHECK_TYPE emTrafficRunRedLight; // 交通闯红灯检测类型
  6008. BOOL abTrafficRunYellowLight; // 是否携带交通闯黄灯信息
  6009. EM_CHECK_TYPE emTrafficRunYellowLight; // 交通闯黄灯检测类型
  6010. BOOL abTrafficOverLine; // 是否携带交通压线信息
  6011. EM_CHECK_TYPE emTrafficOverLine; // 交通压线检测类型
  6012. BOOL abTrafficOverYellowLine; // 是否携带交通压黄线信息
  6013. EM_CHECK_TYPE emTrafficOverYellowLine; // 交通压黄线检测类型
  6014. BOOL abTrafficRetrograde; // 是否携带交通逆行信息
  6015. EM_CHECK_TYPE emTrafficRetrograde; // 交通逆行检测类型
  6016. BOOL abTrafficTurnLeft; // 是否携带交通违章左转信息
  6017. EM_CHECK_TYPE emTrafficTurnLeft; // 交通违章左转检测类型
  6018. BOOL abTrafficTurnRight; // 是否携带交通违章右转信息
  6019. EM_CHECK_TYPE emTrafficTurnRight; // 交通路口违章右转类型
  6020. BOOL abTrafficU_Turn; // 是否携带交通违章掉头信息
  6021. EM_CHECK_TYPE emTrafficU_Turn; // 交通违章掉头检测类型
  6022. BOOL abTrafficCrossLane; // 是否携带交通违章变道信息
  6023. EM_CHECK_TYPE emTrafficCrossLane; // 交通违章变道检测类型
  6024. BOOL abTrafficParking; // 是否携带交通违章停车信息
  6025. EM_CHECK_TYPE emTrafficParking; // 交通违章停车检测类型
  6026. BOOL abTrafficJam; // 是否携带交通拥堵信息
  6027. EM_CHECK_TYPE emTrafficJam; // 交通拥堵检测类型
  6028. BOOL abTrafficIdle; // 是否携带交通交通空闲信息
  6029. EM_CHECK_TYPE emTrafficIdle; // 交通交通空闲检测类型
  6030. BOOL abTrafficWaitingArea; // 是否携带交通违章驶入待行区信息
  6031. EM_CHECK_TYPE emTrafficWaitingArea; // 交通违章驶入待行区检测类型
  6032. BOOL abTrafficUnderSpeed; // 是否携带交通欠速信息
  6033. EM_CHECK_TYPE emTrafficUnderSpeed; // 交通欠速检测类型
  6034. BOOL abTrafficOverSpeed; // 是否携带交通超速信息
  6035. EM_CHECK_TYPE emTrafficOverSpeed; // 交通超速检测类型
  6036. BOOL abTrafficWrongRoute; // 是否携带交通不按车道行驶信息
  6037. EM_CHECK_TYPE emTrafficWrongRoute; // 交通不按车道行驶检测类型
  6038. BOOL abTrafficYellowInRoute; // 是否携带交通黄牌占道信息
  6039. EM_CHECK_TYPE emTrafficYellowInRoute; // 交通黄牌占道检测类型
  6040. BOOL abTrafficVehicleInRoute; // 是否携带交通有车占道信息
  6041. EM_CHECK_TYPE emTrafficVehicleInRoute; // 交通有车占道检测类型
  6042. BOOL abTrafficControl; // 是否携带交通交通管制信息
  6043. EM_CHECK_TYPE emTrafficControl; // 交通交通管制检测类型
  6044. BOOL abTrafficObjectAlarm; // 是否携带交通指定类型抓拍信息
  6045. EM_CHECK_TYPE emTrafficObjectAlarm; // 交通指定类型抓拍检测类型
  6046. BOOL abTrafficAccident; // 是否携带交通交通事故信息
  6047. EM_CHECK_TYPE emTrafficAccident; // 交通交通事故检测类型
  6048. BOOL abTrafficStay; // 是否携带交通交通停留/滞留信息
  6049. EM_CHECK_TYPE emTrafficStay; // 交通交通停留/滞留检测类型
  6050. BOOL abTrafficPedestrainPriority; // 是否携带交通斑马线行人优先信息
  6051. EM_CHECK_TYPE emTrafficPedestrainPriority; // 交通斑马线行人优先检测类型
  6052. BOOL abTrafficPedestrain; // 是否携带交通交通行人事件信息
  6053. EM_CHECK_TYPE emTrafficPedestrain; // 交通交通行人事件检测类型
  6054. BOOL abTrafficThrow; // 是否携带交通交通抛洒物品事件信息
  6055. EM_CHECK_TYPE emTrafficThrow; // 交通交通抛洒物品事件检测类型
  6056. BOOL abTrafficVehicleInBusRoute; // 是否携带交通违章占道信息
  6057. EM_CHECK_TYPE emTrafficVehicleInBusRoute; // 交通违章占道检测类型
  6058. BOOL abTrafficBacking; // 是否携带交通违章倒车信息
  6059. EM_CHECK_TYPE emTrafficBacking; // 交通违章倒车检测类型
  6060. BOOL abTrafficOverStopLine; // 是否携带交通压停止线信息
  6061. EM_CHECK_TYPE emTrafficOverStopLine; // 交通压停止线检测类型
  6062. BOOL abTrafficParkingOnYellowBox; // 是否携带交通黄网格线抓拍信息
  6063. EM_CHECK_TYPE emTrafficParkingOnYellowBox; // 交通黄网格线抓拍检测类型
  6064. BOOL abTrafficParkingSpaceParking; // 是否携带交通车位有车信息
  6065. EM_CHECK_TYPE emTrafficParkingSpaceParking; // 交通车位有车检测类型
  6066. BOOL abTrafficParkingSpaceNoParking; // 是否携带交通车位无车信息
  6067. EM_CHECK_TYPE emTrafficParkingSpaceNoParking; // 交通车位无车检测类型
  6068. BOOL abTrafficParkingSpaceOverLine; // 是否携带交通车位有车压线信息
  6069. EM_CHECK_TYPE emTrafficParkingSpaceOverLine; // 交通车位有车压线检测类型
  6070. BOOL abParkingSpaceDetection; // 是否携带交通多停车位状态检测信息
  6071. EM_CHECK_TYPE emParkingSpaceDetection; // 交通多停车位状态检测检测类型
  6072. BOOL abTrafficRestrictedPlate; // 是否携带交通受限车牌信息
  6073. EM_CHECK_TYPE emTrafficRestrictedPlate; // 交通受限车牌检测类型
  6074. BOOL abTrafficWithoutSafeBelt; // 是否携带交通不系安全带信息
  6075. EM_CHECK_TYPE emTrafficWithoutSafeBelt; // 交通不系安全带检测类型
  6076. BOOL abTrafficNoPassing; // 是否携带交通禁行信息
  6077. EM_CHECK_TYPE emTrafficNoPassing; // 交通禁行检测类型
  6078. BOOL abVehicleAnalyse; // 是否携带交通车辆特征检测分析信息
  6079. EM_CHECK_TYPE emVehicleAnalyse; // 交通车辆特征检测类型
  6080. BOOL abCrossLineDetection; // 是否携带交通警戒线信息
  6081. EM_CHECK_TYPE emCrossLineDetection; // 交通警戒线检测类型
  6082. BOOL abCrossFenceDetection; // 是否携带交通穿越围栏信息
  6083. EM_CHECK_TYPE emCrossFenceDetection; // 交通穿越围栏检测类型
  6084. BOOL abCrossRegionDetection; // 是否携带交通警戒区信息
  6085. EM_CHECK_TYPE emCrossRegionDetection; // 交通警戒区检测类型
  6086. BOOL abPasteDetection; // 是否携带交通ATM贴条信息
  6087. EM_CHECK_TYPE emPasteDetection; // 交通ATM贴条检测类型
  6088. BOOL abLeftDetection; // 是否携带交通物品遗留信息
  6089. EM_CHECK_TYPE emLeftDetection; // 交通物品遗留检测类型
  6090. BOOL abPreservation; // 是否携带交通物品保全信息
  6091. EM_CHECK_TYPE emPreservation; // 交通物品保全检测类型
  6092. BOOL abTakenAwayDetection; // 是否携带交通物品搬移信息
  6093. EM_CHECK_TYPE emTakenAwayDetection; // 交通物品搬移检测类型
  6094. BOOL abStayDetection; // 是否携带交通停留/滞留信息
  6095. EM_CHECK_TYPE emStayDetection; // 交通停留/滞留检测类型
  6096. BOOL abParkingDetection; // 是否携带交通非法停车信息
  6097. EM_CHECK_TYPE emParkingDetection; // 交通非法停车检测类型
  6098. BOOL abWanderDetection; // 是否携带交通徘徊信息
  6099. EM_CHECK_TYPE emWanderDetection; // 交通徘徊检测类型
  6100. BOOL abMoveDetection; // 是否携带交通运动信息
  6101. EM_CHECK_TYPE emMoveDetection; // 交通运动检测类型
  6102. BOOL abTailDetection; // 是否携带交通尾随信息
  6103. EM_CHECK_TYPE emTailDetection; // 交通尾随检测类型
  6104. BOOL abRioterDetection; // 是否携带交通聚集信息
  6105. EM_CHECK_TYPE emRioterDetection; // 交通聚集检测类型
  6106. BOOL abFightDetection; // 是否携带交通打架信息
  6107. EM_CHECK_TYPE emFightDetection; // 交通打架检测类型
  6108. BOOL abRetrogradeDetection; // 是否携带交通逆行信息
  6109. EM_CHECK_TYPE emRetrogradeDetection; // 交通逆行检测类型
  6110. BOOL abFireDetection; // 是否携带交通火焰信息
  6111. EM_CHECK_TYPE emFireDetection; // 交通火焰检测类型
  6112. BOOL abSmokeDetection; // 是否携带交通烟雾信息
  6113. EM_CHECK_TYPE emSmokeDetection; // 交通烟雾检测类型
  6114. BOOL abNumberStat; // 是否携带交通数量统计信息
  6115. EM_CHECK_TYPE emNumberStat; // 交通数量统计检测类型
  6116. BOOL abVideoAbnormalDetection; // 是否携带交通视频异常信息
  6117. EM_CHECK_TYPE emVideoAbnormalDetection; // 交通视频异常检测类型
  6118. BOOL abPrisonerRiseDetection; // 是否携带看守所囚犯起身检测信息
  6119. EM_CHECK_TYPE emPrisonerRiseDetection; // 看守所囚犯起身检测检测类型
  6120. BOOL abFaceDetection; // 是否携带人脸检测信息
  6121. EM_CHECK_TYPE emFaceDetection; // 人脸检测检测类型
  6122. BOOL abFaceRecognition; // 是否携带人脸识别信息
  6123. EM_CHECK_TYPE emFaceRecognition; // 人脸识别检测类型
  6124. BOOL abDensityDetection; // 是否携带密集度检测信息
  6125. EM_CHECK_TYPE emDensityDetection; // 密集度检测检测类型
  6126. BOOL abQueueDetection; // 是否携带排队检测信息
  6127. EM_CHECK_TYPE emQueueDetection; // 排队检测检测类型
  6128. BOOL abClimbDetection; // 是否携带攀高检测信息
  6129. EM_CHECK_TYPE emClimbDetection; // 攀高检测类型
  6130. BOOL abLeaveDetection; // 是否携带离岗检测信息
  6131. EM_CHECK_TYPE emLeaveDetection; // 离岗检测类型
  6132. BOOL abVehicleOnPoliceCar; // 是否携带车载警车信息
  6133. EM_CHECK_TYPE emVehicleOnPoliceCar; // 车载警车检测类型
  6134. BOOL abVehicleOnBus; // 是否携带车载公交信息
  6135. EM_CHECK_TYPE emVehicleOnBus; // 车载公交检测类型
  6136. BOOL abVehicleOnSchoolBus; // 是否携带车载校车信息
  6137. EM_CHECK_TYPE emVehicleOnSchoolBus; // 车载校车检测类型
  6138. BOOL abStandUpDetection; // 是否携带学生起立信息
  6139. EM_CHECK_TYPE emStandUpDetection; // 学生起立检测类型
  6140. }TRAFFIC_EVENT_CHECK_INFO;
  6141. typedef struct tagTrafficEventCheckMask
  6142. {
  6143. BOOL abTrafficGate; // 是否携带交通卡口信息
  6144. int nTrafficGate; // 交通卡口检测模式掩码
  6145. BOOL abTrafficJunction; // 是否携带交通路口信息
  6146. int nTrafficJunction; // 交通路口检测模式掩码
  6147. BOOL abTrafficTollGate; // 是否携带新交通卡口信息
  6148. int nTrafficTollGate; // 新交通卡口检测模式掩码
  6149. BOOL abTrafficRunRedLight; // 是否携带交通闯红灯信息
  6150. int nTrafficRunRedLight; // 交通闯红灯检测模式掩码
  6151. BOOL abTrafficRunYellowLight; // 是否携带交通闯黄灯信息
  6152. int nTrafficRunYellowLight; // 交通闯黄灯检测模式掩码
  6153. BOOL abTrafficOverLine; // 是否携带交通压线信息
  6154. int nTrafficOverLine; // 交通压线检测模式掩码
  6155. BOOL abTrafficOverYellowLine; // 是否携带交通压黄线信息
  6156. int nTrafficOverYellowLine; // 交通压黄线检测模式掩码
  6157. BOOL abTrafficRetrograde; // 是否携带交通逆行信息
  6158. int nTrafficRetrograde; // 交通逆行检测模式掩码
  6159. BOOL abTrafficTurnLeft; // 是否携带交通违章左转信息
  6160. int nTrafficTurnLeft; // 交通违章左转检测模式掩码
  6161. BOOL abTrafficTurnRight; // 是否携带交通违章右转信息
  6162. int nTrafficTurnRight; // 交通路口违章右转类型
  6163. BOOL abTrafficU_Turn; // 是否携带交通违章掉头信息
  6164. int nTrafficU_Turn; // 交通违章掉头检测模式掩码
  6165. BOOL abTrafficCrossLane; // 是否携带交通违章变道信息
  6166. int nTrafficCrossLane; // 交通违章变道检测模式掩码
  6167. BOOL abTrafficParking; // 是否携带交通违章停车信息
  6168. int nTrafficParking; // 交通违章停车检测模式掩码
  6169. BOOL abTrafficJam; // 是否携带交通拥堵信息
  6170. int nTrafficJam; // 交通拥堵检测模式掩码
  6171. BOOL abTrafficIdle; // 是否携带交通交通空闲信息
  6172. int nTrafficIdle; // 交通交通空闲检测模式掩码
  6173. BOOL abTrafficWaitingArea; // 是否携带交通违章驶入待行区信息
  6174. int nTrafficWaitingArea; // 交通违章驶入待行区检测模式掩码
  6175. BOOL abTrafficUnderSpeed; // 是否携带交通欠速信息
  6176. int nTrafficUnderSpeed; // 交通欠速检测模式掩码
  6177. BOOL abTrafficOverSpeed; // 是否携带交通超速信息
  6178. int nTrafficOverSpeed; // 交通超速检测模式掩码
  6179. BOOL abTrafficWrongRoute; // 是否携带交通不按车道行驶信息
  6180. int nTrafficWrongRoute; // 交通不按车道行驶检测模式掩码
  6181. BOOL abTrafficYellowInRoute; // 是否携带交通黄牌占道信息
  6182. int nTrafficYellowInRoute; // 交通黄牌占道检测模式掩码
  6183. BOOL abTrafficVehicleInRoute; // 是否携带交通有车占道信息
  6184. int nTrafficVehicleInRoute; // 交通有车占道检测模式掩码
  6185. BOOL abTrafficControl; // 是否携带交通交通管制信息
  6186. int nTrafficControl; // 交通交通管制检测模式掩码
  6187. BOOL abTrafficObjectAlarm; // 是否携带交通指定类型抓拍信息
  6188. int nTrafficObjectAlarm; // 交通指定类型抓拍检测模式掩码
  6189. BOOL abTrafficAccident; // 是否携带交通交通事故信息
  6190. int nTrafficAccident; // 交通交通事故检测模式掩码
  6191. BOOL abTrafficStay; // 是否携带交通交通停留/滞留信息
  6192. int nTrafficStay; // 交通交通停留/滞留检测模式掩码
  6193. BOOL abTrafficPedestrainPriority; // 是否携带交通斑马线行人优先信息
  6194. int nTrafficPedestrainPriority; // 交通斑马线行人优先检测模式掩码
  6195. BOOL abTrafficPedestrain; // 是否携带交通交通行人事件信息
  6196. int nTrafficPedestrain; // 交通交通行人事件检测模式掩码
  6197. BOOL abTrafficThrow; // 是否携带交通交通抛洒物品事件信息
  6198. int nTrafficThrow; // 交通交通抛洒物品事件检测模式掩码
  6199. BOOL abTrafficVehicleInBusRoute; // 是否携带交通违章占道信息
  6200. int nTrafficVehicleInBusRoute; // 交通违章占道检测模式掩码
  6201. BOOL abTrafficBacking; // 是否携带交通违章倒车信息
  6202. int nTrafficBacking; // 交通违章倒车检测模式掩码
  6203. BOOL abTrafficOverStopLine; // 是否携带交通压停止线信息
  6204. int nTrafficOverStopLine; // 交通压停止线检测模式掩码
  6205. BOOL abTrafficParkingOnYellowBox; // 是否携带交通黄网格线抓拍信息
  6206. int nTrafficParkingOnYellowBox; // 交通黄网格线抓拍检测模式掩码
  6207. BOOL abTrafficParkingSpaceParking; // 是否携带交通车位有车信息
  6208. int nTrafficParkingSpaceParking; // 交通车位有车检测模式掩码
  6209. BOOL abTrafficParkingSpaceNoParking; // 是否携带交通车位无车信息
  6210. int nTrafficParkingSpaceNoParking; // 交通车位无车检测模式掩码
  6211. BOOL abTrafficParkingSpaceOverLine; // 是否携带交通车位有车压线信息
  6212. int nTrafficParkingSpaceOverLine; // 交通车位有车压线检测模式掩码
  6213. BOOL abParkingSpaceDetection; // 是否携带交通多停车位状态检测信息
  6214. int nParkingSpaceDetection; // 交通多停车位状态检测检测模式掩码
  6215. BOOL abTrafficRestrictedPlate; // 是否携带交通受限车牌信息
  6216. int nTrafficRestrictedPlate; // 交通受限车牌检测模式掩码
  6217. BOOL abTrafficWithoutSafeBelt; // 是否携带交通不系安全带信息
  6218. int nTrafficWithoutSafeBelt; // 交通不系安全带检测模式掩码
  6219. BOOL abTrafficNoPassing; // 是否携带交通禁行信息
  6220. int nTrafficNoPassing; // 交通禁行检测模式掩码
  6221. BOOL abVehicleAnalyse; // 是否携带交通车辆特征检测分析信息
  6222. int nVehicleAnalyse; // 交通车辆特征检测模式掩码
  6223. BOOL abCrossLineDetection; // 是否携带交通警戒线信息
  6224. int nCrossLineDetection; // 交通警戒线检测模式掩码
  6225. BOOL abCrossFenceDetection; // 是否携带交通穿越围栏信息
  6226. int nCrossFenceDetection; // 交通穿越围栏检测模式掩码
  6227. BOOL abCrossRegionDetection; // 是否携带交通警戒区信息
  6228. int nCrossRegionDetection; // 交通警戒区检测模式掩码
  6229. BOOL abPasteDetection; // 是否携带交通ATM贴条信息
  6230. int nPasteDetection; // 交通ATM贴条检测模式掩码
  6231. BOOL abLeftDetection; // 是否携带交通物品遗留信息
  6232. int nLeftDetection; // 交通物品遗留检测模式掩码
  6233. BOOL abPreservation; // 是否携带交通物品保全信息
  6234. int nPreservation; // 交通物品保全检测模式掩码
  6235. BOOL abTakenAwayDetection; // 是否携带交通物品搬移信息
  6236. int nTakenAwayDetection; // 交通物品搬移检测模式掩码
  6237. BOOL abStayDetection; // 是否携带交通停留/滞留信息
  6238. int nStayDetection; // 交通停留/滞留检测模式掩码
  6239. BOOL abParkingDetection; // 是否携带交通非法停车信息
  6240. int nParkingDetection; // 交通非法停车检测模式掩码
  6241. BOOL abWanderDetection; // 是否携带交通徘徊信息
  6242. int nWanderDetection; // 交通徘徊检测模式掩码
  6243. BOOL abMoveDetection; // 是否携带交通运动信息
  6244. int nMoveDetection; // 交通运动检测模式掩码
  6245. BOOL abTailDetection; // 是否携带交通尾随信息
  6246. int nTailDetection; // 交通尾随检测模式掩码
  6247. BOOL abRioterDetection; // 是否携带交通聚集信息
  6248. int nRioterDetection; // 交通聚集检测模式掩码
  6249. BOOL abFightDetection; // 是否携带交通打架信息
  6250. int nFightDetection; // 交通打架检测模式掩码
  6251. BOOL abRetrogradeDetection; // 是否携带交通逆行信息
  6252. int nRetrogradeDetection; // 交通逆行检测模式掩码
  6253. BOOL abFireDetection; // 是否携带交通火焰信息
  6254. int nFireDetection; // 交通火焰检测模式掩码
  6255. BOOL abSmokeDetection; // 是否携带交通烟雾信息
  6256. int nSmokeDetection; // 交通烟雾检测模式掩码
  6257. BOOL abNumberStat; // 是否携带交通数量统计信息
  6258. int nNumberStat; // 交通数量统计检测模式掩码
  6259. BOOL abVideoAbnormalDetection; // 是否携带交通视频异常信息
  6260. int nVideoAbnormalDetection; // 交通视频异常检测模式掩码
  6261. BOOL abPrisonerRiseDetection; // 是否携带看守所囚犯起身检测信息
  6262. int nPrisonerRiseDetection; // 看守所囚犯起身检测检测模式掩码
  6263. BOOL abFaceDetection; // 是否携带人脸检测信息
  6264. int nFaceDetection; // 人脸检测检测模式掩码
  6265. BOOL abFaceRecognition; // 是否携带人脸识别信息
  6266. int nFaceRecognition; // 人脸识别检测模式掩码
  6267. BOOL abDensityDetection; // 是否携带密集度检测信息
  6268. int nDensityDetection; // 密集度检测检测模式掩码
  6269. BOOL abQueueDetection; // 是否携带排队检测信息
  6270. int nQueueDetection; // 排队检测检测模式掩码
  6271. BOOL abClimbDetection; // 是否携带攀高检测信息
  6272. int nClimbDetection; // 攀高检测模式掩码
  6273. BOOL abLeaveDetection; // 是否携带离岗检测信息
  6274. int nLeaveDetection; // 离岗检测模式掩码
  6275. BOOL abVehicleOnPoliceCar; // 是否携带车载警车信息
  6276. int nVehicleOnPoliceCar; // 车载警车检测模式掩码
  6277. BOOL abVehicleOnBus; // 是否携带车载公交信息
  6278. int nVehicleOnBus; // 车载公交检测模式掩码
  6279. BOOL abVehicleOnSchoolBus; // 是否携带车载校车信息
  6280. int nVehicleOnSchoolBus; // 车载校车检测模式掩码
  6281. }TRAFFIC_EVENT_CHECK_MASK;
  6282. // 违章抓拍时间配置表
  6283. typedef struct tagTimeScheduleInfo
  6284. {
  6285. BOOL bEnable; // 是否启用时间表
  6286. CFG_TIME_SECTION stuTimeSchedule[WEEK_DAY_NUM][MAX_REC_TSECT]; // 时间表
  6287. }TIME_SCHEDULE_INFO;
  6288. // 违章抓拍自定义时间配置
  6289. typedef struct tagViolationTimeSchedule
  6290. {
  6291. BOOL abTrafficGate; // 是否携带交通卡口信息
  6292. TIME_SCHEDULE_INFO stTrafficGate; // 交通卡口时间配置
  6293. BOOL abTrafficJunction; // 是否携带交通路口信息
  6294. TIME_SCHEDULE_INFO stTrafficJunction; // 交通路口时间配置
  6295. BOOL abTrafficTollGate; // 是否携带新交通卡口信息
  6296. TIME_SCHEDULE_INFO stTrafficTollGate; // 新交通卡口时间配置
  6297. BOOL abTrafficRunRedLight; // 是否携带交通闯红灯信息
  6298. TIME_SCHEDULE_INFO stTrafficRunRedLight; // 交通闯红灯时间配置
  6299. BOOL abTrafficRunYellowLight; // 是否携带交通闯黄灯信息
  6300. TIME_SCHEDULE_INFO stTrafficRunYellowLight; // 交通闯黄灯时间配置
  6301. BOOL abTrafficOverLine; // 是否携带交通压线信息
  6302. TIME_SCHEDULE_INFO stTrafficOverLine; // 交通压线时间配置
  6303. BOOL abTrafficOverYellowLine; // 是否携带交通压黄线信息
  6304. TIME_SCHEDULE_INFO stTrafficOverYellowLine; // 交通压黄线时间配置
  6305. BOOL abTrafficRetrograde; // 是否携带交通逆行信息
  6306. TIME_SCHEDULE_INFO stTrafficRetrograde; // 交通逆行时间配置
  6307. BOOL abTrafficTurnLeft; // 是否携带交通违章左转信息
  6308. TIME_SCHEDULE_INFO stTrafficTurnLeft; // 交通违章左转时间配置
  6309. BOOL abTrafficTurnRight; // 是否携带交通违章右转信息
  6310. TIME_SCHEDULE_INFO stTrafficTurnRight; // 交通路口违章右转类型
  6311. BOOL abTrafficU_Turn; // 是否携带交通违章掉头信息
  6312. TIME_SCHEDULE_INFO stTrafficU_Turn; // 交通违章掉头时间配置
  6313. BOOL abTrafficCrossLane; // 是否携带交通违章变道信息
  6314. TIME_SCHEDULE_INFO stTrafficCrossLane; // 交通违章变道时间配置
  6315. BOOL abTrafficParking; // 是否携带交通违章停车信息
  6316. TIME_SCHEDULE_INFO stTrafficParking; // 交通违章停车时间配置
  6317. BOOL abTrafficJam; // 是否携带交通拥堵信息
  6318. TIME_SCHEDULE_INFO stTrafficJam; // 交通拥堵时间配置
  6319. BOOL abTrafficIdle; // 是否携带交通交通空闲信息
  6320. TIME_SCHEDULE_INFO stTrafficIdle; // 交通交通空闲时间配置
  6321. BOOL abTrafficWaitingArea; // 是否携带交通违章驶入待行区信息
  6322. TIME_SCHEDULE_INFO stTrafficWaitingArea; // 交通违章驶入待行区时间配置
  6323. BOOL abTrafficUnderSpeed; // 是否携带交通欠速信息
  6324. TIME_SCHEDULE_INFO stTrafficUnderSpeed; // 交通欠速时间配置
  6325. BOOL abTrafficOverSpeed; // 是否携带交通超速信息
  6326. TIME_SCHEDULE_INFO stTrafficOverSpeed; // 交通超速时间配置
  6327. BOOL abTrafficWrongRoute; // 是否携带交通不按车道行驶信息
  6328. TIME_SCHEDULE_INFO stTrafficWrongRoute; // 交通不按车道行驶时间配置
  6329. BOOL abTrafficYellowInRoute; // 是否携带交通黄牌占道信息
  6330. TIME_SCHEDULE_INFO stTrafficYellowInRoute; // 交通黄牌占道时间配置
  6331. BOOL abTrafficVehicleInRoute; // 是否携带交通有车占道信息
  6332. TIME_SCHEDULE_INFO stTrafficVehicleInRoute; // 交通有车占道时间配置
  6333. BOOL abTrafficControl; // 是否携带交通交通管制信息
  6334. TIME_SCHEDULE_INFO stTrafficControl; // 交通交通管制时间配置
  6335. BOOL abTrafficObjectAlarm; // 是否携带交通指定类型抓拍信息
  6336. TIME_SCHEDULE_INFO stTrafficObjectAlarm; // 交通指定类型抓拍时间配置
  6337. BOOL abTrafficAccident; // 是否携带交通交通事故信息
  6338. TIME_SCHEDULE_INFO stTrafficAccident; // 交通交通事故时间配置
  6339. BOOL abTrafficStay; // 是否携带交通交通停留/滞留信息
  6340. TIME_SCHEDULE_INFO stTrafficStay; // 交通交通停留/滞留时间配置
  6341. BOOL abTrafficPedestrainPriority; // 是否携带交通斑马线行人优先信息
  6342. TIME_SCHEDULE_INFO stTrafficPedestrainPriority; // 交通斑马线行人优先时间配置
  6343. BOOL abTrafficPedestrain; // 是否携带交通交通行人事件信息
  6344. TIME_SCHEDULE_INFO stTrafficPedestrain; // 交通交通行人事件时间配置
  6345. BOOL abTrafficThrow; // 是否携带交通交通抛洒物品事件信息
  6346. TIME_SCHEDULE_INFO stTrafficThrow; // 交通交通抛洒物品事件时间配置
  6347. BOOL abTrafficVehicleInBusRoute; // 是否携带交通违章占道信息
  6348. TIME_SCHEDULE_INFO stTrafficVehicleInBusRoute; // 交通违章占道时间配置
  6349. BOOL abTrafficBacking; // 是否携带交通违章倒车信息
  6350. TIME_SCHEDULE_INFO stTrafficBacking; // 交通违章倒车时间配置
  6351. BOOL abTrafficOverStopLine; // 是否携带交通压停止线信息
  6352. TIME_SCHEDULE_INFO stTrafficOverStopLine; // 交通压停止线时间配置
  6353. BOOL abTrafficParkingOnYellowBox; // 是否携带交通黄网格线抓拍信息
  6354. TIME_SCHEDULE_INFO stTrafficParkingOnYellowBox; // 交通黄网格线抓拍时间配置
  6355. BOOL abTrafficParkingSpaceParking; // 是否携带交通车位有车信息
  6356. TIME_SCHEDULE_INFO stTrafficParkingSpaceParking; // 交通车位有车时间配置
  6357. BOOL abTrafficParkingSpaceNoParking; // 是否携带交通车位无车信息
  6358. TIME_SCHEDULE_INFO stTrafficParkingSpaceNoParking; // 交通车位无车时间配置
  6359. BOOL abTrafficParkingSpaceOverLine; // 是否携带交通车位有车压线信息
  6360. TIME_SCHEDULE_INFO stTrafficParkingSpaceOverLine; // 交通车位有车压线时间配置
  6361. BOOL abParkingSpaceDetection; // 是否携带交通多停车位状态检测信息
  6362. TIME_SCHEDULE_INFO stParkingSpaceDetection; // 交通多停车位状态检测时间配置
  6363. BOOL abTrafficRestrictedPlate; // 是否携带交通受限车牌信息
  6364. TIME_SCHEDULE_INFO stTrafficRestrictedPlate; // 交通受限车牌时间配置
  6365. BOOL abTrafficWithoutSafeBelt; // 是否携带交通不系安全带信息
  6366. TIME_SCHEDULE_INFO stTrafficWithoutSafeBelt; // 交通不系安全带时间配置
  6367. BOOL abTrafficNoPassing; // 是否携带交通禁行信息
  6368. TIME_SCHEDULE_INFO stTrafficNoPassing; // 交通禁行时间配置
  6369. BOOL abVehicleAnalyse; // 是否携带交通车辆特征检测分析信息
  6370. TIME_SCHEDULE_INFO stVehicleAnalyse; // 交通车辆特征时间配置
  6371. BOOL abCrossLineDetection; // 是否携带交通警戒线信息
  6372. TIME_SCHEDULE_INFO stCrossLineDetection; // 交通警戒线时间配置
  6373. BOOL abCrossFenceDetection; // 是否携带交通穿越围栏信息
  6374. TIME_SCHEDULE_INFO stCrossFenceDetection; // 交通穿越围栏时间配置
  6375. BOOL abCrossRegionDetection; // 是否携带交通警戒区信息
  6376. TIME_SCHEDULE_INFO stCrossRegionDetection; // 交通警戒区时间配置
  6377. BOOL abPasteDetection; // 是否携带交通ATM贴条信息
  6378. TIME_SCHEDULE_INFO stPasteDetection; // 交通ATM贴条时间配置
  6379. BOOL abLeftDetection; // 是否携带交通物品遗留信息
  6380. TIME_SCHEDULE_INFO stLeftDetection; // 交通物品遗留时间配置
  6381. BOOL abPreservation; // 是否携带交通物品保全信息
  6382. TIME_SCHEDULE_INFO stPreservation; // 交通物品保全时间配置
  6383. BOOL abTakenAwayDetection; // 是否携带交通物品搬移信息
  6384. TIME_SCHEDULE_INFO stTakenAwayDetection; // 交通物品搬移时间配置
  6385. BOOL abStayDetection; // 是否携带交通停留/滞留信息
  6386. TIME_SCHEDULE_INFO stStayDetection; // 交通停留/滞留时间配置
  6387. BOOL abParkingDetection; // 是否携带交通非法停车信息
  6388. TIME_SCHEDULE_INFO stParkingDetection; // 交通非法停车时间配置
  6389. BOOL abWanderDetection; // 是否携带交通徘徊信息
  6390. TIME_SCHEDULE_INFO stWanderDetection; // 交通徘徊时间配置
  6391. BOOL abMoveDetection; // 是否携带交通运动信息
  6392. TIME_SCHEDULE_INFO stMoveDetection; // 交通运动时间配置
  6393. BOOL abTailDetection; // 是否携带交通尾随信息
  6394. TIME_SCHEDULE_INFO stTailDetection; // 交通尾随时间配置
  6395. BOOL abRioterDetection; // 是否携带交通聚集信息
  6396. TIME_SCHEDULE_INFO stRioterDetection; // 交通聚集时间配置
  6397. BOOL abFightDetection; // 是否携带交通打架信息
  6398. TIME_SCHEDULE_INFO stFightDetection; // 交通打架时间配置
  6399. BOOL abRetrogradeDetection; // 是否携带交通逆行信息
  6400. TIME_SCHEDULE_INFO stRetrogradeDetection; // 交通逆行时间配置
  6401. BOOL abFireDetection; // 是否携带交通火焰信息
  6402. TIME_SCHEDULE_INFO stFireDetection; // 交通火焰时间配置
  6403. BOOL abSmokeDetection; // 是否携带交通烟雾信息
  6404. TIME_SCHEDULE_INFO stSmokeDetection; // 交通烟雾时间配置
  6405. BOOL abNumberStat; // 是否携带交通数量统计信息
  6406. TIME_SCHEDULE_INFO stNumberStat; // 交通数量统计时间配置
  6407. BOOL abVideoAbnormalDetection; // 是否携带交通视频异常信息
  6408. TIME_SCHEDULE_INFO stVideoAbnormalDetection; // 交通视频异常时间配置
  6409. BOOL abPrisonerRiseDetection; // 是否携带看守所囚犯起身检测信息
  6410. TIME_SCHEDULE_INFO stPrisonerRiseDetection; // 看守所囚犯起身检测时间配置
  6411. BOOL abFaceDetection; // 是否携带人脸检测信息
  6412. TIME_SCHEDULE_INFO stFaceDetection; // 人脸检测时间配置
  6413. BOOL abFaceRecognition; // 是否携带人脸识别信息
  6414. TIME_SCHEDULE_INFO stFaceRecognition; // 人脸识别时间配置
  6415. BOOL abDensityDetection; // 是否携带密集度检测信息
  6416. TIME_SCHEDULE_INFO stDensityDetection; // 密集度检测时间配置
  6417. BOOL abQueueDetection; // 是否携带排队检测信息
  6418. TIME_SCHEDULE_INFO stQueueDetection; // 排队检测时间配置
  6419. BOOL abClimbDetection; // 是否携带攀高检测信息
  6420. TIME_SCHEDULE_INFO stClimbDetection; // 攀高时间配置
  6421. BOOL abLeaveDetection; // 是否携带离岗检测信息
  6422. TIME_SCHEDULE_INFO stLeaveDetection; // 离岗时间配置
  6423. BOOL abVehicleOnPoliceCar; // 是否携带车载警车信息
  6424. TIME_SCHEDULE_INFO stVehicleOnPoliceCar; // 车载警车时间配置
  6425. BOOL abVehicleOnBus; // 是否携带车载公交信息
  6426. TIME_SCHEDULE_INFO stVehicleOnBus; // 车载公交时间配置
  6427. BOOL abVehicleOnSchoolBus; // 是否携带车载校车信息
  6428. TIME_SCHEDULE_INFO stVehicleOnSchoolBus; // 车载校车时间配置
  6429. BOOL abTrafficNonMotorHoldUmbrella; // 是否携带非机动车装载伞具时间配置
  6430. TIME_SCHEDULE_INFO stTrafficNonMotorHoldUmbrella; // 非机动车装载伞具时间配置
  6431. }VIOLATION_TIME_SCHEDULE;
  6432. // MixModeConfig中关于车道配置信息
  6433. typedef struct tagMixModeLaneInfo
  6434. {
  6435. unsigned int nLaneNum; // 车道配置个数
  6436. TRAFFIC_EVENT_CHECK_INFO stCheckInfo[MAX_LANE_CONFIG_NUMBER]; // 车道配置对应事件检测信息
  6437. }MIX_MODE_LANE_INFO;
  6438. // MixModeConfig 混合模式违章配置
  6439. typedef struct tagMIX_MODE_CONFIG
  6440. {
  6441. BOOL bLaneDiffEnable; // 是否按车道区分
  6442. MIX_MODE_LANE_INFO stLaneInfo;
  6443. TRAFFIC_EVENT_CHECK_INFO stCheckInfo;
  6444. }MIX_MODE_CONFIG;
  6445. typedef struct tagPeriodOfValidity
  6446. {
  6447. CFG_NET_TIME stBeginTime; // 标定开始时间
  6448. CFG_NET_TIME stEndTime; // 标定到期时间
  6449. }PERIOD_OF_VALIDITY;
  6450. // 交通全局配置对应标定相关配置
  6451. typedef struct tagTrafficCalibrationInfo
  6452. {
  6453. char szUnit[CFG_COMMON_STRING_256]; // 标定单位
  6454. char szCertificate[CFG_COMMON_STRING_256]; // 标定证书
  6455. PERIOD_OF_VALIDITY stPeriodOfValidity; // 标定有效期
  6456. }TRAFFIC_CALIBRATION_INFO;
  6457. // 交通配置对应传输策略
  6458. typedef enum tagEmTransferPolicy
  6459. {
  6460. EM_TRAFFIC_TRANSFER_UNKNOWN, // 未知策略
  6461. EM_TRAFFIC_TRANSFER_REALTIME, // "RealtimePriority" 实时优先
  6462. EM_TRAFFIC_TRANSFER_SEQUENCE, // "SequencePriority" 顺序优先
  6463. }EM_TRANSFER_POLICY;
  6464. // 交通全局配置对应图片命名格式参数配置
  6465. typedef struct tagTrafficNamingFormat
  6466. {
  6467. char szFormat[CFG_COMMON_STRING_256]; // 图片格式
  6468. }TRAFFIC_NAMING_FORMAT;
  6469. // 交通全局配置对应灯组状态配置
  6470. typedef struct tagEnableLightStateInfo
  6471. {
  6472. BOOL bEnable; // 是否启动应用层收到的灯组状态给底层
  6473. }ENABLE_LIGHT_STATE_INFO;
  6474. // CFG_CMD_TRAFFICGLOBAL 交通全局配置配置表
  6475. typedef struct tagCFG_TRAFFICGLOBAL_INFO
  6476. {
  6477. VIOLATIONCODE_INFO stViolationCode; // 违章代码配置表
  6478. BOOL bEnableRedList; // 使能红名单检测,使能后,名单内车辆违章不上报
  6479. BOOL abViolationTimeSchedule; // 是否携带违章抓拍自定义时间配置
  6480. VIOLATION_TIME_SCHEDULE stViolationTimeSchedule; // 违章抓拍自定义时间配置
  6481. BOOL abEnableBlackList; // 是否携带使能黑名单检测信息
  6482. BOOL bEnableBlackList; // 使能黑名单检测
  6483. BOOL abPriority; // 是否携带违章优先级参数
  6484. unsigned int nPriority; // 违章优先级个数
  6485. char szPriority[MAX_PRIORITY_NUMBER][CFG_COMMON_STRING_256]; // 违章优先级, 0为最高优先级
  6486. BOOL abNamingFormat; // 是否携带图片命名格式参数
  6487. TRAFFIC_NAMING_FORMAT stNamingFormat; // 图片命名格式参数配置
  6488. BOOL abVideoNamingFormat; // 是否携带录像命名格式参数
  6489. TRAFFIC_NAMING_FORMAT stVideoNamingFormat; // 录像命名格式参数配置
  6490. BOOL abCalibration; // 是否携带标定信息
  6491. TRAFFIC_CALIBRATION_INFO stCalibration; // 标定信息
  6492. BOOL abAddress; // 是否携带查询地址参数
  6493. char szAddress[CFG_COMMON_STRING_256]; // 查询地址,UTF-8编码
  6494. BOOL abTransferPolicy; // 是否携带传输策略参数
  6495. EM_TRANSFER_POLICY emTransferPolicy; // 传输策略
  6496. BOOL abSupportModeMaskConfig; // 是否携带违章掩码
  6497. TRAFFIC_EVENT_CHECK_MASK stSupportModeMaskConfig; // 违章类型支持的检测模式掩码配置
  6498. BOOL abIsEnableLightState; // 是否携带灯组状态
  6499. ENABLE_LIGHT_STATE_INFO stIsEnableLightState; // 交通全局配置对应图片命名格式参数配置
  6500. BOOL abMixModeInfo; // 是否含有混合模式配置
  6501. MIX_MODE_CONFIG stMixModeInfo; // 混合模式配置
  6502. }CFG_TRAFFICGLOBAL_INFO;
  6503. // CFG_CMD_VIDEOENCODEROI 视频编码ROI(Region of Intrest)配置
  6504. #define DH_MAX_QUALITY_REGION_NUM 8
  6505. typedef struct tagCFG_VIDEOENCODEROI_INFO
  6506. {
  6507. int nRegionNum; // 优化区域个数
  6508. CFG_RECT stRegions[DH_MAX_QUALITY_REGION_NUM]; // 优化区域 支持多个优化区域,使用相对坐标体系,取值均为0~8191
  6509. BYTE byQuality; // 图像质量 取值1~6,值越大,图像质量越好
  6510. bool bMain; // 优化主码流视频编码
  6511. bool bExtra1; // 优化辅码流1视频编码
  6512. bool bExtra2; // 优化辅码流2视频编码
  6513. bool bExtra3; // 优化辅码流3视频编码
  6514. bool bSnapshot; // 优化抓图编码
  6515. BYTE byReserved2[2]; // 对齐
  6516. }CFG_VIDEOENCODEROI_INFO;
  6517. // ATM取款超时配置
  6518. typedef struct tagCFG_ATMMOTION_INFO
  6519. {
  6520. int nTimeLimit; // 取款超时时间,单位:秒
  6521. }CFG_ATMMOTION_INFO;
  6522. typedef struct tagCFG_SNAPSOURCE_INFO_SINGLE_CHANNEL
  6523. {
  6524. bool bEnable; // 使能
  6525. BYTE bReserved1[3]; // 保留字段,对齐
  6526. BYTE bDevice[64]; // 设备名
  6527. DWORD dwChannel; // 视频通道号
  6528. DWORD dwLinkVideoChannel; // 抓图通道对应的视频通道号
  6529. BYTE bReserved[512]; // 保留字段
  6530. }SNAPSOURCE_INFO_SINGLE_CHANNEL;
  6531. typedef struct tagCFG_SNAPSOURCE_INFO
  6532. {
  6533. DWORD dwCount; //要配置的通道的个数
  6534. SNAPSOURCE_INFO_SINGLE_CHANNEL singleChnSanpInfo[MAX_VIDEO_CHANNEL_NUM]; //SNAPSOURCE_INFO_SINGLE_CHANNEL数组的地址
  6535. }CFG_SNAPSOURCE_INFO;
  6536. typedef struct tagDEVICE_STATUS
  6537. {
  6538. char szDeviceName[MAX_REMOTEDEVICENAME_LEN]; //远程设备的名字
  6539. BYTE bDeviceStatus; //远程设备的状态 0:断线 1:在线
  6540. BYTE bReserved[63]; //保留字节
  6541. }DEVICE_STATUS;
  6542. typedef struct tagCFG_REMOTE_DEVICE_STATUS
  6543. {
  6544. DEVICE_STATUS devStatus[MAX_REMOTE_DEV_NUM]; //设备状态
  6545. DWORD dwDevCount; //设备数量
  6546. BYTE bReserved[1024]; //保留字节
  6547. }CFG_REMOTE_DEVICE_STATUS;
  6548. // 同轴报警最大个数
  6549. #define MAX_COAXIAL_ALARM_COUNT 64
  6550. // 同轴报警类型
  6551. typedef enum tagEM_COAXIAL_ALARM_TYPE
  6552. {
  6553. EM_COAXIAL_ALARM_TYPE_UNKNOWN, // 未知
  6554. EM_COAXIAL_ALARM_TYPE_EXT_ALARM, // 同轴自带外部报警
  6555. EM_COAXIAL_ALARM_TYPE_MOTION_ALARM, // 同轴自带动检报警
  6556. EM_COAXIAL_ALARM_TYPE_VOLTAGE_ALARM, // 同轴自带电压报警
  6557. EM_COAXIAL_ALARM_TYPE_ALARM_LOCAL, // 同轴网关防区传感器报警
  6558. EM_COAXIAL_ALARM_TYPE_ALARM_BEL, // 同轴网关报警喇叭
  6559. EM_COAXIAL_ALARM_TYPE_TEMPERATURE_ALARM, // 同轴温度报警
  6560. EM_COAXIAL_ALARM_TYPE_HUMIDITY_ALARM, // 同轴湿度报警
  6561. } EM_COAXIAL_ALARM_TYPE;
  6562. // 产品定义信息
  6563. typedef struct tagCFG_PRODUCT_DEFINITION_INFO
  6564. {
  6565. int nCoaxialAlarmCount; // 设备支持的报警数量
  6566. EM_COAXIAL_ALARM_TYPE emCoaxialAlarm[MAX_COAXIAL_ALARM_COUNT]; // 设备支持的报警
  6567. } CFG_PRODUCT_DEFINITION_INFO;
  6568. //-----------------------------音频分析相关配置------------------------------
  6569. // 事件类型 EVENT_IVS_AUDIO_ABNORMALDETECTION (声音异常检测事件)对应规则配置
  6570. typedef struct tagCFG_IVS_AUDIO_ABNORMALDETECTION_INFO
  6571. {
  6572. char szRuleName[MAX_NAME_LEN]; // 规则名称,不同规则不能重名
  6573. bool bRuleEnable; // 规则使能
  6574. BYTE bReserved[3]; // 保留字段
  6575. int nDecibel; // 声音强度,单位 db
  6576. int nFrequency; // 声音频率, 单位 Hz
  6577. int nMinDuration; // 最短持续时间, 单位 s
  6578. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  6579. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  6580. }CFG_IVS_AUDIO_ABNORMALDETECTION_INFO;
  6581. typedef struct tagCFG_CAP_AUDIO_ANALYSE_INFO
  6582. {
  6583. int nSupportedRuleNum; // 支持的规则类型数
  6584. DWORD dwSupportedRules[MAX_RULE_LIST_SIZE]; // 具体支持的规则类型
  6585. }CFG_CAP_AUDIO_ANALYSE_INFO;
  6586. //-------------------------IPS && SVR------------------------------
  6587. // 设备状态信息
  6588. typedef struct tagCFG_DEVICESTATUS_INFO
  6589. {
  6590. int nPowerNum; // 电源个数
  6591. BYTE byPowerStatus[MAX_POWER_NUM]; // 电源状态,1:正常 2:异常 3:未知
  6592. int nCPUNum; // CPU个数
  6593. int nCPUTemperature[MAX_CPU_NUM]; // CPU温度
  6594. int nFanNum; // 风扇个数
  6595. int nRotatoSpeed[MAX_FUN_NUM]; // 风扇转速
  6596. }CFG_DEVICESTATUS_INFO;
  6597. // 扩展柜信息
  6598. typedef struct tagCFG_HARDDISK_INFO
  6599. {
  6600. int nChannel; // 通道号
  6601. int nCapacity; // 硬盘容量
  6602. BYTE byStatus; // 硬盘状态,0:unknown 1:running 2:fail 3.spare热备
  6603. // 4.sync同步 5.faulty失效 6.rebuilding重建 7.remove移除 8.sleep休眠
  6604. BYTE byUsedStatus; // 使用状态,1.空闲 2.在用 3.未知
  6605. BYTE byHotBack; // 是否是热备盘,0:热备盘 1:非热备盘
  6606. BYTE byReserved; // 字节对齐
  6607. char szRaidName[MAX_NAME_LEN]; // 所在Raid(磁盘组)的名称 "RaidName" : "Raid0",
  6608. // 所在Raid(磁盘组)的名称。如不属于任何Raid,则字段为null。
  6609. // 比如热备盘,属于全局热备盘的,则传null。
  6610. char szType[32]; // 硬盘型号
  6611. int nTank; // 扩展柜, 0:主机;1:扩展柜1; 2:扩展柜2 ……
  6612. int nRemainSpace; // 剩余容量,单位M
  6613. }CFG_HARDDISK_INFO;
  6614. typedef struct tagCFG_HARDDISKTANK_INFO
  6615. {
  6616. char szTankName[MAX_NAME_LEN]; // 存储柜名称
  6617. int nHardDiskNum; // 硬盘个数
  6618. CFG_HARDDISK_INFO stuHarddiskInfo[MAX_HARDDISK_NUM]; // 硬盘信息
  6619. }CFG_HARDDISKTANK_INFO;
  6620. typedef struct tagCFG_HARDISKTANKGROUP_INFO
  6621. {
  6622. int nTankNum; // 硬盘存储柜个数
  6623. CFG_HARDDISKTANK_INFO stuHarddisktank[MAX_TANK_NUM]; // 硬盘存储柜数组
  6624. }CFG_HARDISKTANKGROUP_INFO;
  6625. // Raid组信息
  6626. typedef struct tagCFG_RAID_INFO
  6627. {
  6628. char szRaidName[MAX_NAME_LEN]; // Raid名称
  6629. BYTE byType; // 类型 1:Jbob, 2:Raid0, 3:Raid1, 4:Raid5
  6630. BYTE byStatus; // 状态 0:unknown, 1:active, 2:degraded, 3:inactive, 4: Resyncing
  6631. // 5.Clean 6.Unknow 7.Recovering 8.Reshaping 9.Checking 10.NotStarted
  6632. BYTE byStatusCount; // 状态数量, 状态数>=1时, 用byStatusGroup表示状态
  6633. BYTE byReserved; // 字节对齐
  6634. int nMember[MAX_CHAN_NUM]; // 组成磁盘通道
  6635. int nDiskNUM; // 磁盘个数
  6636. int nCapacity; // 容量
  6637. int nTank; // 扩展柜
  6638. int nRemainSpace; // 剩余容量,单位M
  6639. BYTE byStatusGroup[MAX_STATUS_NUM]; // 状态数组, 参数值同byStatus
  6640. }CFG_RAID_INFO;
  6641. typedef struct tagCFG_RAIDGROUP_INFO
  6642. {
  6643. int nRaidNum; // Raid个数
  6644. CFG_RAID_INFO stuRaidInfo[MAX_RAID_NUM]; // Raid组信息
  6645. }CFG_RAIDGROUP_INFO;
  6646. // 存储池组信息
  6647. typedef struct tagCFG_STORAGEPOOL_INFO
  6648. {
  6649. char szName[MAX_NAME_LEN]; // 存储池名称
  6650. int nMemberNum; // 设备数量
  6651. char szMember[MAX_DEV_NUM][MAX_NAME_LEN];// 组成设备
  6652. int nUsed; // 已用容量
  6653. int nCapacity; // 总容量
  6654. int nStatus; // 状态 0:unknown 1:active 2:degraded 3:inactive
  6655. int nTank; // 扩展柜 0:主机, 1:扩展柜1, 2:扩展柜2 ……
  6656. }CFG_STORAGEPOOL_INFO;
  6657. typedef struct tagCFG_STORAGEPOOLGROUP_INFO
  6658. {
  6659. int nStroagePoolNum; // 存储池个数
  6660. CFG_STORAGEPOOL_INFO stuStoragePoolInfo[MAX_STORAGEPOOL_NUM]; // 存储池信息
  6661. }CFG_STORAGEPOOLGROUP_INFO;
  6662. // 文件系统组信息
  6663. typedef struct tagCFG_STORAGEPOSITION_INFO
  6664. {
  6665. char szName[MAX_NAME_LEN]; // 存储位置名称
  6666. char szStoragePoolName[MAX_NAME_LEN]; // 存储池名称
  6667. int nUsedCapacity; // 已用容量,单位G
  6668. int nTotalCapacity; // 容量,单位G
  6669. BYTE byStatus; // 状态 0.未知 1.正常 2.配置异常 3.挂载异常
  6670. BYTE byReserved[3]; // 字节对齐
  6671. }CFG_STORAGEPOSITION_INFO;
  6672. typedef struct tafCFG_STORAGEPOSITIONGROUP_INFO
  6673. {
  6674. int nStoragePositionNum; // 存储信息个数
  6675. CFG_STORAGEPOSITION_INFO stuStoragePositionInfo[MAX_STRORAGEPOS_NUM]; // 文件系统组信息
  6676. }CFG_STORAGEPOSITIONGROUP_INFO;
  6677. // 前端设备组信息
  6678. typedef struct tagCFG_VIDEOINDEV_INFO
  6679. {
  6680. char szDevName[MAX_NAME_LEN]; // 前端设备名称
  6681. char szDevID[MAX_NAME_LEN]; // 设备ID
  6682. char szDevType[MAX_NAME_LEN]; // 设备类型
  6683. int nTotalChan; // 总通道数
  6684. int nTotalAlarmChan; // 报警通道总数
  6685. char szIP[MAX_ADDRESS_LEN]; // 设备IP
  6686. BYTE byStatus; // 状态 0:未知 1:在线 2:离线
  6687. BYTE byReserved[3]; // 字节对齐
  6688. }CFG_VIDEOINDEV_INFO;
  6689. typedef struct tafCFG_VIDEOINDEVGROUP_INFO
  6690. {
  6691. int nVideoDevNum; // 前端设备个数
  6692. CFG_VIDEOINDEV_INFO stuVideoInDevInfo[MAX_VIDEODEV_NUM]; // 前端设备组信息
  6693. }CFG_VIDEOINDEVGROUP_INFO;
  6694. // 通道录像组状态
  6695. typedef struct tagCFG_DEVRECORD_INFO
  6696. {
  6697. char szDevName[MAX_NAME_LEN]; // 设备名称
  6698. char szIP[MAX_ADDRESS_LEN]; // 设备IP
  6699. char szChannel[MAX_NAME_LEN]; // 通道号
  6700. char szChannelName[MAX_NAME_LEN]; // 通道名称
  6701. char szStoragePosition[MAX_NAME_LEN]; // 存储位置信息
  6702. BYTE byStatus; // 状态 0:未知 1:录像 2:停止
  6703. BYTE byReserved[3]; // 字节对齐
  6704. }CFG_DEVRECORD_INFO;
  6705. typedef struct tagCFG_DEVRECORDGROUP_INFO
  6706. {
  6707. int nChannelNum; // 通道个数
  6708. CFG_DEVRECORD_INFO stuDevRecordInfo[MAX_CHAN_NUM]; // 通道录像状态信息
  6709. }CFG_DEVRECORDGROUP_INFO;
  6710. #define byDahuaII byPrivateII
  6711. #define byDahuaIId byPrivateIId
  6712. // 服务状态
  6713. typedef struct tagCFG_IPSERVER_STATUS
  6714. {
  6715. int nSupportedServerNum; // 提供的服务个数
  6716. char szSupportServer[MAX_SEVER_NUM][MAX_NAME_LEN]; // 提供的服务名称 Svr Svrd(SVR守护服务) DataBase DataBased(DataBase守护服务) NtpServer NtpServerd(NtpServer守护服务) DahuaII DahuaIId(DahuaII守护服务) Samba Nfs Ftp iScsi
  6717. int nSvrSuppSubServerNum; // Svr提供的子服务信息个数
  6718. char szSvrSuppSubServer[MAX_SEVER_NUM][MAX_NAME_LEN]; // Svr提供的子服务信息 CMS DMS MTS SS RMS DBR
  6719. BYTE byCMS; // 0:未知 1:运行 2:未运行
  6720. BYTE byDMS; // 0:未知 1:运行 2:未运行
  6721. BYTE byMTS; // 0:未知 1:运行 2:未运行
  6722. BYTE bySS; // 0:未知 1:运行 2:未运行
  6723. BYTE byRMS; // 0:未知 1:运行 2:未运行
  6724. BYTE byDBR; // 0:未知 1:运行 2:未运行
  6725. BYTE bySvrd; // 0:未知 1:运行 2:未运行
  6726. BYTE byDataBase; // 0:未知 1:运行 2:未运行
  6727. BYTE byDataBased; // 0:未知 1:运行 2:未运行
  6728. BYTE byNtpServer; // 0:未知 1:运行 2:未运行
  6729. BYTE byNtpServerd; // 0:未知 1:运行 2:未运行
  6730. BYTE byPrivateII; // 0:未知 1:运行 2:未运行
  6731. BYTE byPrivateIId; // 0:未知 1:运行 2:未运行
  6732. BYTE bySAMBA; // 0:未知 1:运行 2:未运行
  6733. BYTE byNFS; // 0:未知 1:运行 2:未运行
  6734. BYTE byFTP; // 0:未知 1:运行 2:未运行
  6735. BYTE byISCSI; // 0:未知 1:运行 2:未运行
  6736. BYTE byReserved[3]; // 字节对齐
  6737. }CFG_IPSERVER_STATUS;
  6738. //---------------------------视频矩阵-----------------------------------
  6739. #define MAX_SUPPORT_SPLIT_MODE_NUM 16 // 支持的画面分割的能力最大数
  6740. #define MAX_MATRIX_PLAN 4 // 最大矩阵方案数
  6741. #define MAX_TOUR_MODE 16 // 最大轮巡队列数
  6742. typedef enum tagMATRIX_VIEW_SPLITMODE
  6743. {
  6744. MATRIX_VIEW_SPLIT1 = 0,
  6745. MATRIX_VIEW_SPLIT2,
  6746. MATRIX_VIEW_SPLIT4,
  6747. MATRIX_VIEW_SPLIT8,
  6748. MATRIX_VIEW_SPLIT9,
  6749. MATRIX_VIEW_SPLIT16,
  6750. MATRIX_VIEW_SPLITPIP,
  6751. MATRIX_VIEW_SPLIT6,
  6752. MATRIX_VIEW_SPLIT12,
  6753. MATRIX_VIEW_SPLIT25,
  6754. MATRIX_VIEW_SPLIT36,
  6755. MATRIX_VIEW_SPLIT_NR,
  6756. }MATRIX_VIEW_SPLITMODE;
  6757. // 轮巡模式
  6758. typedef struct tagCFG_TOUR_MODE
  6759. {
  6760. int nViewMode; // 画面分割模式,参考枚举类型MATRIX_VIEW_SPLITMODE
  6761. unsigned int dwViewSplitMask; // 表示ViewMode指定模式下,使能的几个分隔方法,使用掩码表达方式
  6762. // 例如:0x00000007:表示模式3(SPLIT8)的分隔1,2,3使能开启,其他未使能,0x0000000F表示分隔1,2,3,4使能
  6763. }CFG_TOUR_MODE;
  6764. // SPOT视频矩阵方案
  6765. typedef struct tagCFG_VIDEO_MATRIX_PLAN
  6766. {
  6767. BOOL bEnable; // 矩阵配置方案使能
  6768. int nTourPeriod; // 矩阵轮巡间隔,单位秒,>=1
  6769. int nTourModeNum; // 轮巡队列个数
  6770. CFG_TOUR_MODE stuTourMode[MAX_TOUR_MODE]; // 轮巡队列
  6771. }CFG_VIDEO_MATRIX_PLAN;
  6772. // SPOT矩阵配置
  6773. typedef struct tagCFG_VIDEO_MATRIX
  6774. {
  6775. int nSupportSplitModeNumber; // 支持的画面分割的能力数
  6776. BYTE bySupportSplitMode[MAX_SUPPORT_SPLIT_MODE_NUM]; // 支持的画面分割的能力
  6777. int nMatrixPlanNumber; // 矩阵方案数
  6778. CFG_VIDEO_MATRIX_PLAN stuMatrixPlan[MAX_MATRIX_PLAN]; // 矩阵方案
  6779. }CFG_VIDEO_MATRIX;
  6780. ///////////////////////////////////视频诊断配置///////////////////////////////////////
  6781. // 视频抖动检测
  6782. typedef struct tagCFG_VIDEO_DITHER_DETECTION
  6783. {
  6784. BOOL bEnable; // 使能配置
  6785. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6786. BYTE byThrehold1; // 预警阀值 取值1-100
  6787. BYTE byThrehold2; // 报警阀值 取值1-100
  6788. }CFG_VIDEO_DITHER_DETECTION;
  6789. // 条纹检测
  6790. typedef struct tagCFG_VIDEO_STRIATION_DETECTION
  6791. {
  6792. BOOL bEnable; // 使能配置
  6793. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6794. BYTE byThrehold1; // 预警阀值 取值1-100
  6795. BYTE byThrehold2; // 报警阀值 取值1-100
  6796. BYTE byReserved1[2]; // 字节对齐
  6797. BOOL bUVDetection; // UV分量是否检测
  6798. }CFG_VIDEO_STRIATION_DETECTION;
  6799. // 视频丢失检测
  6800. typedef struct tagCFG_VIDEO_LOSS_DETECTION
  6801. {
  6802. BOOL bEnable; // 使能配置
  6803. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6804. }CFG_VIDEO_LOSS_DETECTION;
  6805. // 视频遮挡检测
  6806. typedef struct tagCFG_VIDEO_COVER_DETECTION
  6807. {
  6808. BOOL bEnable; // 使能配置
  6809. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6810. BYTE byThrehold1; // 预警阀值 取值1-100
  6811. BYTE byThrehold2; // 报警阀值 取值1-100
  6812. }CFG_VIDEO_COVER_DETECTION;
  6813. // 画面冻结检测
  6814. typedef struct tagCFG_VIDEO_FROZEN_DETECTION
  6815. {
  6816. BOOL bEnable; // 使能配置
  6817. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6818. }CFG_VIDEO_FROZEN_DETECTION;
  6819. // 亮度异常检测
  6820. typedef struct tagCFG_VIDEO_BRIGHTNESS_DETECTION
  6821. {
  6822. BOOL bEnable; // 使能配置
  6823. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6824. BYTE bylowerThrehold1; // 预警阀值 取值1-100
  6825. BYTE bylowerThrehold2; // 报警阀值 取值1-100
  6826. BYTE byUpperThrehold1; // 预警阀值 取值1-100
  6827. BYTE byUpperThrehold2; // 报警阀值 取值1-100
  6828. }CFG_VIDEO_BRIGHTNESS_DETECTION;
  6829. // 对比度异常检测
  6830. typedef struct tagCFG_VIDEO_CONTRAST_DETECTION
  6831. {
  6832. BOOL bEnable; // 使能配置
  6833. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6834. BYTE bylowerThrehold1; // 预警阀值 取值1-100
  6835. BYTE bylowerThrehold2; // 报警阀值 取值1-100
  6836. BYTE byUpperThrehold1; // 预警阀值 取值1-100
  6837. BYTE byUpperThrehold2; // 报警阀值 取值1-100
  6838. }CFG_VIDEO_CONTRAST_DETECTION;
  6839. // 偏色检测
  6840. typedef struct tagCFG_VIDEO_UNBALANCE_DETECTION
  6841. {
  6842. BOOL bEnable; // 使能配置
  6843. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6844. BYTE byThrehold1; // 预警阀值 取值1-100
  6845. BYTE byThrehold2; // 报警阀值 取值1-100
  6846. }CFG_VIDEO_UNBALANCE_DETECTION;
  6847. // 噪声检测
  6848. typedef struct tagCFG_VIDEO_NOISE_DETECTION
  6849. {
  6850. BOOL bEnable; // 使能配置
  6851. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6852. BYTE byThrehold1; // 预警阀值 取值1-100
  6853. BYTE byThrehold2; // 报警阀值 取值1-100
  6854. }CFG_VIDEO_NOISE_DETECTION;
  6855. // 模糊检测
  6856. typedef struct tagCFG_VIDEO_BLUR_DETECTION
  6857. {
  6858. BOOL bEnable; // 使能配置
  6859. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6860. BYTE byThrehold1; // 预警阀值 取值1-100
  6861. BYTE byThrehold2; // 报警阀值 取值1-100
  6862. }CFG_VIDEO_BLUR_DETECTION;
  6863. // 场景变化检测
  6864. typedef struct tagCFG_VIDEO_SCENECHANGE_DETECTION
  6865. {
  6866. BOOL bEnable; // 使能配置
  6867. int nMinDuration; // 最短持续时间 单位:秒 0~65535
  6868. BYTE byThrehold1; // 预警阀值 取值1-100
  6869. BYTE byThrehold2; // 报警阀值 取值1-100
  6870. }CFG_VIDEO_SCENECHANGE_DETECTION;
  6871. // 视频延时检测
  6872. typedef struct tagCFG_VIDEO_DELAY_DETECTION
  6873. {
  6874. BOOL bEnable; // 使能配置
  6875. }CFG_VIDEO_DELAY_DETECTION;
  6876. // 云台移动检测
  6877. typedef struct tagCFG_PTZ_MOVING_DETECTION
  6878. {
  6879. BOOL bEnable; // 使能配置
  6880. }CFG_PTZ_MOVING_DETECTION;
  6881. // 黑白图像检测
  6882. typedef struct tagCFG_VIDEO_BLACKWHITE_DETECTION
  6883. {
  6884. BOOL bEnable; // 使能配置
  6885. int nEarlyWarning; // 预警阈值
  6886. int nAlarm; // 报警阈值
  6887. int nMinDuration; // 最短持续时间
  6888. } CFG_VIDEO_BLACKWHITE_DETECTION;
  6889. // 场景剧变检测
  6890. typedef struct tagCFG_VIDEO_DRAMATICCHANGE_DETECTION
  6891. {
  6892. BOOL bEnable; // 使能配置
  6893. int nEarlyWarning; // 预警阈值
  6894. int nAlarm; // 报警阈值
  6895. int nMinDuration; // 最短持续时间
  6896. } CFG_VIDEO_DRAMATICCHANGE_DETECTION;
  6897. // 视频完好率监测
  6898. typedef struct tagCFG_VIDEO_AVAILABILITY_DETECTION
  6899. {
  6900. BOOL bEnable; // 使能配置
  6901. }CFG_VIDEO_AVAILABILITY_DETECTION;
  6902. typedef struct tagCFG_VIDEO_DIAGNOSIS_PROFILE
  6903. {
  6904. char szName[MAX_PATH]; // 名称Ansi编码
  6905. CFG_VIDEO_DITHER_DETECTION* pstDither; // 视频抖动检测
  6906. CFG_VIDEO_STRIATION_DETECTION* pstStriation; // 视频条纹检测
  6907. CFG_VIDEO_LOSS_DETECTION* pstLoss; // 视频丢失检测
  6908. CFG_VIDEO_COVER_DETECTION* pstCover; // 视频遮挡检测
  6909. CFG_VIDEO_FROZEN_DETECTION* pstFrozen; // 视频冻结检测
  6910. CFG_VIDEO_BRIGHTNESS_DETECTION* pstBrightness; // 视频亮度异常检测
  6911. CFG_VIDEO_CONTRAST_DETECTION* pstContrast; // 对比度异常检测
  6912. CFG_VIDEO_UNBALANCE_DETECTION* pstUnbalance; // 偏色异常检测
  6913. CFG_VIDEO_NOISE_DETECTION* pstNoise; // 噪声检测
  6914. CFG_VIDEO_BLUR_DETECTION* pstBlur; // 模糊检测
  6915. CFG_VIDEO_SCENECHANGE_DETECTION* pstSceneChange; // 场景变化检测
  6916. CFG_VIDEO_DELAY_DETECTION* pstVideoDelay; // 视频延时检测
  6917. CFG_PTZ_MOVING_DETECTION* pstPTZMoving; // 云台移动检测
  6918. CFG_VIDEO_BLACKWHITE_DETECTION* pstBlackAndWhite; // 黑白图像检测
  6919. CFG_VIDEO_DRAMATICCHANGE_DETECTION* pstDramaticChange; // 场景剧变检测
  6920. CFG_VIDEO_AVAILABILITY_DETECTION* pstVideoAvailability; // 视频完好率监测
  6921. }CFG_VIDEO_DIAGNOSIS_PROFILE;
  6922. // 视频诊断参数表(CFG_CMD_VIDEODIAGNOSIS_PROFILE),支持多种参数表,用表名称来索引 调用者申请内存并初始化
  6923. typedef struct tagCFG_VIDEODIAGNOSIS_PROFILE
  6924. {
  6925. int nTotalProfileNum; // 调用者分配参数表数 根据能力集获取
  6926. int nReturnProfileNum; // 返回的实际参数表数
  6927. CFG_VIDEO_DIAGNOSIS_PROFILE* pstProfiles; // 调用者分配nTotalProfileNum个CFG_VIDEO_DIAGNOSIS_PROFILE
  6928. }CFG_VIDEODIAGNOSIS_PROFILE;
  6929. ///// 视频诊断任务
  6930. enum CFG_EM_STREAM_TYPE
  6931. {
  6932. CFG_EM_STREAM_ERR, // 其它
  6933. CFG_EM_STREAM_MAIN, // "Main"-主码流
  6934. CFG_EM_STREAM_EXTRA_1, // "Extra1"-辅码流1
  6935. CFG_EM_STREAM_EXTRA_2, // "Extra2"-辅码流2
  6936. CFG_EM_STREAM_EXTRA_3, // "Extra3"-辅码流3
  6937. CFG_EM_STREAM_SNAPSHOT, // "Snapshot"-抓图码流
  6938. CFG_EM_STREAM_OBJECT, // "Object"-物体流
  6939. };
  6940. // 设备详细信息
  6941. typedef struct tagCFG_TASK_REMOTEDEVICE
  6942. {
  6943. char szAddress[MAX_PATH]; // 设备地址或域名
  6944. unsigned int dwPort; // 端口号
  6945. char szUserName[MAX_PATH]; // 用户名
  6946. char szPassword[MAX_PATH]; // 密码明文
  6947. char szProtocolType[MAX_PATH]; // 连接设备的协议类型
  6948. CFG_RemoteDeviceVideoInput *pVideoInput; // 视频输入通道,用户申请nMaxVideoInputs个CFG_RemoteDeviceVideoInput空间
  6949. int nMaxVideoInputs; // 视频输入通道最大数
  6950. int nRetVideoInputs; // 返回的视频输入通道数
  6951. }CFG_TASK_REMOTEDEVICE;
  6952. // 视频诊断录像保存位置
  6953. typedef enum tagEM_SOURCE_VIDEO_LOCATION
  6954. {
  6955. EM_SOURCE_VIDEO_LOCATION_UNKNOWN, // 未知
  6956. EM_SOURCE_VIDEO_LOCATION_DEVICE, // 存于设备
  6957. EM_SOURCE_VIDEO_LOCATION_CENTER, // 存于平台
  6958. EM_SOURCE_VIDEO_LOCATION_THIRD, // 存于第三方云
  6959. } EM_SOURCE_VIDEO_LOCATION;
  6960. // 录像的类型
  6961. typedef enum tagEM_VIDEO_TYPE
  6962. {
  6963. EM_VIDEO_TYPE_UNKNOWN, // 未知
  6964. EM_VIDEO_TYPE_ALL, // 全部
  6965. EM_VIDEO_TYPE_MANUAL, // 手动保存的录像
  6966. EM_VIDEO_TYPE_ALARM, // 报警录像
  6967. } EM_VIDEO_TYPE;
  6968. // 视频诊断录像详细信息
  6969. typedef struct tagNET_VIDEO_DIAGNOSIS_RECORD_INFO
  6970. {
  6971. EM_SOURCE_VIDEO_LOCATION emSourceLocation; // 录像保存的位置
  6972. EM_VIDEO_TYPE emRecordType; // 视频诊断录像类型
  6973. CFG_NET_TIME stuStartTime; // 视频诊断录像开始时间
  6974. } NET_VIDEO_DIAGNOSIS_RECORD_INFO;
  6975. typedef struct tagCFG_TAST_SOURCES
  6976. {
  6977. // 能力
  6978. bool abDeviceID; // abDeviceID(使用szDeviceID) 和 abRemoteDevice(使用stRemoteDevice) 必须有一个为true,否则Sources是null
  6979. bool abRemoteDevice;
  6980. char szDeviceID[MAX_PATH]; // 设备ID
  6981. CFG_TASK_REMOTEDEVICE stRemoteDevice; // 设备详细信息
  6982. int nVideoChannel; // 视频通道号
  6983. CFG_EM_STREAM_TYPE emVideoStream; // 视频码流类型
  6984. int nDuration; // 持续诊断时间
  6985. BOOL abStartTime; // 表示stuStartTime字段是否有效; 若源为录像文件则设置为TRUE, 否则设置成FALSE.
  6986. CFG_NET_TIME stuStartTime; // 当abStartTime为TRUE时有效,表示要分析的录像的开始时间
  6987. // stuStartTime字段作废,后续都使用stuDiagnosisRecordInfo,保留此字段只为兼容老设备
  6988. BOOL abDiagnosisRecordInfo; // 表示stuDiagnosisRecordInfo字段是否有效; 若源为录像文件则设置为TRUE, 否则设置成FALSE.
  6989. NET_VIDEO_DIAGNOSIS_RECORD_INFO stuDiagnosisRecordInfo; // 视频诊断录像信息, 当 abDiagnosisRecordInfo 为TRUE有效
  6990. }CFG_TAST_SOURCES;
  6991. typedef struct tagCFG_DIAGNOSIS_TASK
  6992. {
  6993. char szTaskName[MAX_PATH]; // 任务名称Ansi编码
  6994. char szProfileName[MAX_PATH]; // 本任务使用的诊断参数表名Ansi编码
  6995. int nTotalSourceNum; // 调用者分配任务数据源的个数 根据能力集获取
  6996. int nReturnSourceNum; // 返回实际任务数据源的个数
  6997. CFG_TAST_SOURCES* pstSources; // 任务数据源 调用者分配内存nTotalSourceNum个
  6998. }CFG_DIAGNOSIS_TASK;
  6999. // 视频诊断任务表(CFG_CMD_VIDEODIAGNOSIS_TASK),不同的任务通过名子索引 调用者申请内存并初始化
  7000. typedef struct tagCFG_VIDEODIAGNOSIS_TASK
  7001. {
  7002. int nTotalTaskNum; // 调用者分配任务个数 根据能力集获取
  7003. int nReturnTaskNum; // 返回实际任务个数
  7004. CFG_DIAGNOSIS_TASK* pstTasks; // 任务配置 调用者分配内存nTotalTaskNum个
  7005. }CFG_VIDEODIAGNOSIS_TASK;
  7006. // 视频诊断计划
  7007. typedef struct tagPROJECT_TASK
  7008. {
  7009. BOOL bEnable; // 任务是否使能
  7010. char szTaskName[MAX_PATH]; // 任务名称Ansi编码
  7011. CFG_TIME_SECTION stTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 任务时间段
  7012. BOOL bIsCycle; // 任务是否循环,TRUE表示循环,FALSE表示不循环
  7013. }CFG_PROJECT_TASK;
  7014. typedef struct tagDIAGNOSIS_PROJECT
  7015. {
  7016. char szProjectName[MAX_PATH]; // 计划名称Ansi编码
  7017. int nTotalTaskNum; // 调用者分配任务列表个数 根据能力集获取
  7018. int nReturnTaskNum; // 返回实际任务列表个数
  7019. CFG_PROJECT_TASK* pstProjectTasks; // 任务列表 调用者分配内存nTotalTaskNum个
  7020. }CFG_DIAGNOSIS_PROJECT;
  7021. // 频诊断计划表(CFG_CMD_VIDEODIAGNOSIS_PROJECT),不同的计划通过名字索引 调用者申请内存并初始化
  7022. typedef struct tagCFG_VIDEODIAGNOSIS_PROJECT
  7023. {
  7024. int nTotalProjectNum; // 调用者分配计划个数 根据能力集获取
  7025. int nReturnProjectNum; // 返回实际计划个数
  7026. CFG_DIAGNOSIS_PROJECT* pstProjects; // 计划配置 调用者分配内存nTotalProjectNum个
  7027. }CFG_VIDEODIAGNOSIS_PROJECT;
  7028. // 实时计划相关信息
  7029. typedef struct tagCFG_DIAGNOSIS_REALPROJECT
  7030. {
  7031. char szProjectName[MAX_PATH]; // 计划名称Ansi编码
  7032. CFG_DIAGNOSIS_TASK stProjectTask; // 任务信息
  7033. }CFG_DIAGNOSIS_REALPROJECT;
  7034. // 视频诊断实时计划表
  7035. typedef struct tagCFG_VIDEODIAGNOSIS_REALPROJECT
  7036. {
  7037. int nProjectNum; // 实时计划个数
  7038. CFG_DIAGNOSIS_REALPROJECT* pstProjects; // 计划配置 调用者分配内存nProjectNum个
  7039. }CFG_VIDEODIAGNOSIS_REALPROJECT;
  7040. // 视频诊断全局表(CFG_CMD_VIDEODIAGNOSIS_GLOBAL),每个通道支持一个诊断配置
  7041. typedef struct tagCFG_VIDEODIAGNOSIS_GLOBAL_CHNNL
  7042. {
  7043. BOOL abProjectName; // 计划名称是否有效
  7044. char szProjectName[MAX_PATH]; // 计划名称,Ansi编码
  7045. BOOL abRealProjectName; // 实时计划名称是否有效
  7046. char szRealProjectName[MAX_PATH]; // 实时计划名称,Ansi编码
  7047. }CFG_VIDEODIAGNOSIS_GLOBAL_CHNNL;
  7048. typedef struct tagCFG_VIDEODIAGNOSIS_GLOBAL
  7049. {
  7050. int nTotalGlobalNum; // 调用者分配全局配置个数 根据能力集获取
  7051. int nReturnGlobalNum; // 返回实际全局配置个数
  7052. CFG_VIDEODIAGNOSIS_GLOBAL_CHNNL *pstGlobals; // 视频诊断全局配置 调用者分配内存nTotalGlobalNum个CFG_VIDEODIAGNOSIS_GLOBAL_CHNNL
  7053. }CFG_VIDEODIAGNOSIS_GLOBAL;
  7054. // 视频诊断服务能力集(CFG_CAP_CMD_VIDEODIAGNOSIS_SERVER)
  7055. typedef struct tagCFG_VIDEODIAGNOSIS_CAPS_INFO
  7056. {
  7057. int nTypeCount; // 支持的视频诊断类型 个数
  7058. char szSupportedType[MAX_VIDEODIAGNOSIS_DETECT_TYPE][MAX_PATH];// 支持的视频诊断类型
  7059. int nMaxProfiles; // 最大参数表个数
  7060. int nMaxTasks; // 最大任务个数
  7061. int nMaxSourcesOfTask; // 最大单个任务的视频源个数
  7062. int nMaxProjects; // 最大方案个数
  7063. }CFG_VIDEODIAGNOSIS_CAPS_INFO;
  7064. // 获取视频诊断通道数目( CFG_CMD_VIDEODIAGNOSIS_GETCOLLECT )对应结构体
  7065. typedef struct tagCFG_VIDEODIAGNOSIS_COLLECT_INFO
  7066. {
  7067. int nDiagnosisChannels; // 视频诊断通道数目
  7068. }CFG_VIDEODIAGNOSIS_COLLECT_INFO;
  7069. // 获取视频诊断进行状态( CFG_CMD_VIDEODIAGNOSIS_GETSTATE )对应结构体
  7070. typedef struct tagCFG_VIDEODIAGNOSIS_STATE_INFO
  7071. {
  7072. BOOL bEnable; // 是否使能
  7073. BOOL bRunning; // 是否正在运行 使能开启,并且当前有工作任务正在进行,没有错误发生。
  7074. char szCurrentProject[MAX_PATH]; // 当前计划名称
  7075. char szCurrentTask[MAX_PATH]; // 当前任务名称
  7076. char szCurrentProfile[MAX_PATH]; // 当前任务配置参数表名称
  7077. int nCurrentSourceCount; // 当前任务轮训视频源个数
  7078. int nCurrentSourceIndex; // 当前任务当前视频源序号 从0开始
  7079. CFG_TIME_SECTION stCurrentTimeSection; // 当前计划时间段
  7080. int nTaskCountOfProject; // 当前计划总任务数
  7081. int nIndexOfCurrentTask; // 当前任务序号 从0开始
  7082. }CFG_VIDEODIAGNOSIS_STATE_INFO;
  7083. // 服务器支持的服务列表
  7084. typedef struct tagCFG_DEV_SERVICE_LIST
  7085. {
  7086. int nServiceNum; // 支持的服务数
  7087. char szService[MAX_SERVICE_NUM][MAX_NAME_LEN]; // 服务器支持具体的服务项
  7088. }CFG_DEV_SERVICE_LIST;
  7089. //获取主从式跟踪器数目
  7090. typedef struct tagCFG_MASTERSLAVETRACKER_INFO
  7091. {
  7092. int nStructSize;
  7093. int nChannels; //主从式跟踪器通道数目
  7094. }CFG_MASTERSLAVETRACKER_INFO;
  7095. #define MAX_CAMERA_TYPE 64
  7096. #define MAX_TYPE_STRING 64
  7097. typedef struct tagCFG_CAMERA_PER_TYPE_INFO
  7098. {
  7099. char szCameraType[MAX_TYPE_STRING]; //相机型号
  7100. char szLensType[MAX_TYPE_STRING]; //相机镜头型号 镜头型号和相机型号相关,可以为空值
  7101. }CFG_CAMERA_PER_TYPE_INFO;
  7102. typedef struct tagCFG_CAMERA_TYPE_INFO
  7103. {
  7104. int nCameraTypeNum; //该类型的相机所具有的不同型号数
  7105. CFG_CAMERA_PER_TYPE_INFO stCameraTypeInfos[MAX_CAMERA_TYPE]; //具体的型号信息
  7106. }CFG_CAMERA_TYPE_INFO;
  7107. // 变倍类型
  7108. typedef enum tagCFG_ZOOM_TYPE
  7109. {
  7110. ZOOM_TYPE_EXPECTMULTIPLE =0, // 固定期望倍数变倍
  7111. ZOOM_TYPE_IVSADAPTIVE, // 根据智能设备输出自适应变倍
  7112. ZOOM_TYPE_MULTIPLEADAPTIVE, // 自适应变倍
  7113. ZOOM_TYPE_NUM
  7114. }CFG_ZOOM_TYPE;
  7115. // 跟踪模式
  7116. typedef enum tagCFG_TRACKING_MODE
  7117. {
  7118. TRACKING_MODE_ALARM=0, // 报警跟踪
  7119. TRACKING_MODE_MANUALOBJECT, // 手动选定物体跟踪
  7120. TRACKING_MODE_AUTOOBJECT, // 自动选定物体跟踪
  7121. TRACKING_MODE_SELECTPOINT, // 定点跟踪
  7122. TRACKING_MODE_MIX, // 混合跟踪(以上四种跟踪模式同时支持)
  7123. TRACKING_MODE_SLAVESELF, // 球机自主控制(主要用于用户对球机控制)
  7124. TRACKING_MODE_NUM
  7125. }CFG_TRACKING_MODE;
  7126. // 主从式跟踪器全局配置基本结构体
  7127. typedef struct tagCFG_MASTERSLAVE_GLOBAL_INFO
  7128. {
  7129. int nStructSize;
  7130. float fMaxZoom; // 最大变倍倍数, 只能是整数,小数被忽略
  7131. float fMinZoom; // 最小变倍倍数, 只能是整数,小数被忽略
  7132. float fExpectMultiple; // 期望倍数(基准倍数),最小变倍倍数<期望倍数<最大变倍倍数, 只能是整数,小数被忽略
  7133. float fPollTrackTime; // 轮询跟踪时长,单位:秒;>0.0
  7134. float fPointTrackTime; // 定点跟踪时长,单位:秒;>0.0在报警跟踪、自动选定物体跟踪、混合跟踪模式下有效
  7135. float fObjectTrackTime; // 手动选定物体跟踪时长, 单位:秒;>0.0在报警跟踪、自动选定物体跟踪、混合跟踪模式下有效
  7136. float fExpectAngleX; // 期望倍数对应球机角度x(水平), 只能是整数,小数被忽略
  7137. float fExpectAngleY; // 期望倍数对应球机角度y(垂直), 只能是整数,小数被忽略
  7138. CFG_SIZE stTargetFaceSize; // 靶面尺寸(单位:毫米), 球机设备参数,与球机有关, 只能是整数,小数被忽略
  7139. float fMinFocus; // 最小焦距(单位:毫米), 只能是整数,小数被忽略
  7140. float fMaxFocus; // 最大焦距(单位:毫米), 只能是整数,小数被忽略
  7141. CFG_ZOOM_TYPE emZoomType; // 变倍类型
  7142. CFG_TRACKING_MODE emTrackingMode; // 跟踪模式
  7143. CFG_CAMERA_TYPE_INFO stCameraInfo; // 枪式摄像机
  7144. CFG_CAMERA_TYPE_INFO stDomeInfo; // 球式摄像机
  7145. int nTrackZoomLevel; // 跟踪倍数等级 -5<= TrackZoomLevel <=5 0表示用默认算法方式
  7146. BOOL bReturnPtzPreset; // TRUE,跟踪后返回预置点 , FALSE,跟踪后不返回预置点
  7147. }CFG_MASTERSLAVE_GLOBAL_INFO;
  7148. // 获取主从式设备能力集
  7149. typedef struct tagCFG_CAP_MASTERSLAVE_INFO
  7150. {
  7151. int nStructSize;
  7152. BYTE byTrackingMode[TRACKING_MODE_NUM]; // 数组下标表示CFG_TRACKING_MODE枚举相对应模式,1表示支持
  7153. CFG_CAMERA_TYPE_INFO stCameraInfo; // 枪式摄像机
  7154. CFG_CAMERA_TYPE_INFO stDomeInfo; // 球式摄像机
  7155. }CFG_CAP_MASTERSLAVE_INFO;
  7156. // 获取服务器报警联动能力集
  7157. typedef struct tagCFG_CAP_EVENTHANDLER_INFO
  7158. {
  7159. BOOL bTimeSectionEnable; //
  7160. BOOL bRecordEnable; // 是否支持录像
  7161. BOOL bAlarmOutEnable; // 是否支持报警输出
  7162. BOOL bPtzLinkEnable; // 是否支持报警输出
  7163. BOOL bSnapshotEnable; // 是否支持快照
  7164. BOOL bMailEnable; // 是否支持发送邮件
  7165. BOOL bBeepEnable; // 是否支持蜂鸣
  7166. BOOL bDejitterEnable; // 是否支持去抖动
  7167. BOOL bTipEnable; // 是否支持本地消息框提示
  7168. BOOL bMonitorTourEnable; // 是否支持轮询联动配置
  7169. }CFG_CAP_EVENTHANDLER_INFO;
  7170. #define MASTERSLAVE_LIST_MAX_NUM 5 // 枪球联动最大主从机个数
  7171. #define MASTERSLAVE_AREA_MAX_NUM 8 // 枪球联动最大优先级区域个数
  7172. #define MASTERSLAVE_NAME_LEN 64 // 监控点最大名称长度
  7173. #define MASTERSLAVE_DEV_SERIALNO_LEN 48 // 设备序列号最大长度
  7174. // 枪球联动全局配置 (CFG_CMD_MASTERSLAVE_LINKAGE)
  7175. typedef struct tagCFG_MASTERSLAVE_LINKAGE_INFO
  7176. {
  7177. BOOL bEnable; // 枪球联动使能总开关
  7178. BOOL bAutoTrack; // 自动跟踪使能
  7179. int nAutoTrackTime[2]; // 自动跟踪时长范围, [最小时长, 最大时长], 默认[1, 300], 单位秒
  7180. int nLocateUnlockTime; // 手动定位解锁时间(秒), 0 表示永不解锁, 默认30秒. 解锁后可用于跟踪
  7181. int nPriorityAreaNum; // 优先级区域个数
  7182. CFG_RECT stuPriorityArea[MASTERSLAVE_AREA_MAX_NUM]; // 优先级区域, 数据越靠前的区域优先级越高,可为空
  7183. }CFG_MASTERSLAVE_LINKAGE_INFO;
  7184. typedef enum tagEM_MASTER_TYPE
  7185. {
  7186. EM_MASTER_UNKNOWN, // 未知类型
  7187. EM_MASTER_FISHEYE, // 鱼眼联动
  7188. EM_MASTER_CAMERA, // 枪球联动
  7189. }EM_MASTER_TYPE;
  7190. typedef struct tagCFG_MASTER_DEV_INFO
  7191. {
  7192. int nChannel; // 本地通道号, 从0开始
  7193. char szDevSerial[MASTERSLAVE_DEV_SERIALNO_LEN]; // 设备序列号
  7194. }CFG_MASTER_DEV_INFO;
  7195. typedef struct tagCFG_SLAVER_DEV_INFO
  7196. {
  7197. int nChannel; // 本地通道号, 从0开始
  7198. char szDevSerial[MASTERSLAVE_DEV_SERIALNO_LEN]; // 设备序列号
  7199. CFG_REGION stuControlRegion; // 从机管控区域
  7200. }CFG_SLAVER_DEV_INFO;
  7201. // 枪球联动绑定关系配置 (CFG_CMD_MASTERSLAVE_GROUP)
  7202. typedef struct tagCFG_MASTERSLAVE_GROUP_INFO
  7203. {
  7204. char szName[MASTERSLAVE_NAME_LEN]; // 监控点名称
  7205. int nGroupID; // 组号
  7206. EM_MASTER_TYPE emMasterType; // 主设备类型
  7207. int nMasterNum; // 主机个数
  7208. CFG_MASTER_DEV_INFO stuMasterList[MASTERSLAVE_LIST_MAX_NUM]; // 主机列表
  7209. int nSlaverNum; // 从机个数
  7210. CFG_SLAVER_DEV_INFO stuSlaverList[MASTERSLAVE_LIST_MAX_NUM]; // 从机列表
  7211. }CFG_MASTERSLAVE_GROUP_INFO;
  7212. //----------------------------------视频输入配置------------------------------------------
  7213. #define DH_MAX_INMETERING_REGION_NUM 8
  7214. typedef struct tagVIDEO_INMETERING_INFO_CHANNEL
  7215. {
  7216. // 能力
  7217. bool bRegion;
  7218. bool bMode;
  7219. BYTE bReserved1[2]; // 保留字段1
  7220. int nRegionNum; // 测光区域个数
  7221. CFG_RECT stuRegions[DH_MAX_INMETERING_REGION_NUM]; // 测光区域, 局部测光使用,支持多个测光区域,使用相对坐标体系,取值均为0~8191
  7222. BYTE byMode; // 测光模式,0:平均测光,1:局部测光
  7223. BYTE bReserved2[3]; // 保留字段2
  7224. BYTE bReserved3[32]; // 保留字段3
  7225. }VIDEO_INMETERING_INFO_CHANNEL;
  7226. // 测光配置(CFG_CMD_VIDEO_INMETERING)是一个数组,每个视频输入通道一个配置
  7227. typedef struct tagCFG_VIDEO_INMETERING_INFO
  7228. {
  7229. int nChannelNum; // 通道数
  7230. VIDEO_INMETERING_INFO_CHANNEL stuMeteringMode[MAX_VIDEO_CHANNEL_NUM]; // 每个通道的测光信息,下标对应通道号
  7231. }CFG_VIDEO_INMETERING_INFO;
  7232. // 视频输入能力集(CFG_CAP_CMD_VIDEOINPUT)配置
  7233. typedef struct tagCFG_CAP_VIDEOINPUT_INFO
  7234. {
  7235. int nMeteringRegionCount; // 最大测光区域个数
  7236. BOOL bFishEye; // 是否支持鱼眼
  7237. BOOL bElectricFocus; // 是否支持电动调焦
  7238. DWORD dwExposureMode; // 支持的自动曝光模式掩码 从低位到高位依次表示,0-自动曝光,1-低噪声(增益)优先,2-弱拖影(快门)优先, 3-50HZ防闪烁,4-60HZ防闪烁
  7239. int nWideDynamicRange; // 是否支持宽动态 0-不支持,1-支持数字宽动态
  7240. int nGlareInhibition; // 是否支持强光抑制 0-不支持,1-支持
  7241. }CFG_CAP_VIDEOINPUT_INFO;
  7242. // 流量统计报警信息配置
  7243. typedef struct tagCFG_TRAFFIC_FLOWSTAT_ALARM_INFO
  7244. {
  7245. bool bEnable; // 是否使能
  7246. int nPeriod; // 统计周期,单位:分钟
  7247. int nLimit; // 统计周期内车辆数上下限,单位:辆
  7248. int nRestore; // 统计周期内报警恢复车辆数,单位:辆
  7249. int nDelay; // 检测到报警发生到开始上报的时间, 单位:秒,范围1~65535
  7250. int nInterval; // 报警间隔时间, 单位:秒, 范围1~65535
  7251. int nReportTimes; // 上报次数,1~255
  7252. CFG_TIME_SECTION stCurrentTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 当前计划时间段
  7253. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  7254. }CFG_TRAFFIC_FLOWSTAT_ALARM_INFO;
  7255. typedef struct tagCFG_TRAFFIC_FLOWSTAT_INFO_CHNL
  7256. {
  7257. // 能力
  7258. bool abEnable;
  7259. bool bEnable; // 是否使能
  7260. CFG_TRAFFIC_FLOWSTAT_ALARM_INFO stuAlarmUpperInfo; // 报警上线参数
  7261. CFG_TRAFFIC_FLOWSTAT_ALARM_INFO stuAlarmLowInfo; // 报警下线参数
  7262. int nDetectRegionPoint; // 检测区顶点数
  7263. CFG_POLYGON stuDetectRegion[MAX_POLYGON_NUM]; // 检测区域
  7264. char szName[MAX_NAME_LEN]; // 当前车道规则名称,不同规则不能重名
  7265. int nPresetID; // 云台所在预置点编号(仅球机有效)
  7266. BOOL bIsDetectLine; // 表示车流量检测线是否有效
  7267. CFG_POLYGON stuDetectLine[POINT_PAIR_NUM]; // 车流量检测线,若不配置,算法自动生成检测线
  7268. }CFG_TRAFFIC_FLOWSTAT_INFO_LANE;
  7269. // 交通流量统计配置(CFG_CMD_TRAFFIC_FLOWSTAT)
  7270. typedef struct tagCFG_TRAFFIC_FLOWSTAT_INFO
  7271. {
  7272. // 能力
  7273. bool abPeriod;
  7274. BYTE bReserved1[3]; // 保留字段1
  7275. int nPeriod; // 统计周期,单位分钟
  7276. int nLaneNum; // 车道数
  7277. CFG_TRAFFIC_FLOWSTAT_INFO_LANE stuTrafficFlowstat[MAX_LANE_NUM]; // 每个车道的流量配置,下标对应车道号
  7278. DWORD dwLaneExtraMaxNum; // 车道数扩充最大值(用于申请内存),多场景应用多余的车道信息需要
  7279. DWORD dwLaneExtraRetNum; // 多场景应用多余的车道数实际个数
  7280. CFG_TRAFFIC_FLOWSTAT_INFO_LANE *pstuTrafficFlowstat; // 多场景的车道数, stuTrafficFlowstat数组放不开的车道在这里继续保存,序号从车道MAX_LANE_NUM+1开始
  7281. }CFG_TRAFFIC_FLOWSTAT_INFO;
  7282. //视频浓缩规则配置(CFG_CMD_SYNOPSISANALYSE_RULE_INFO)
  7283. typedef struct tagCFG_VIDOE_SYNOPSIS_ANALYSE_RULE_INFO
  7284. {
  7285. CFG_ANALYSERULES_INFO stDetailRuleInfo; //详细规则
  7286. }CFG_VIDOE_SYNOPSIS_ANALYSE_RULE_INFO;
  7287. //-----------------------------------视频输入前端选项-------------------------------------------
  7288. // 视频输入夜晚特殊配置选项,在晚上光线较暗时自动切换到夜晚的配置参数
  7289. typedef struct tagCFG_VIDEO_IN_NIGHT_OPTIONS
  7290. {
  7291. BYTE bySwitchMode; //已废弃,使用CFG_VIDEO_IN_OPTIONS里面的bySwitchMode
  7292. //0-不切换,总是使用白天配置;1-根据亮度切换;2-根据时间切换;3-不切换,总是使用夜晚配置;4-使用普通配置
  7293. BYTE byProfile; // 当前使用的配置文件.
  7294. // 0-白天
  7295. // 1-晚上
  7296. // 2-Normal
  7297. // 0,1,2都为临时配置,使图像生效,便于查看图像调试效果,不点击确定,离开页面不保存至设备。
  7298. ///3-非临时配置,点击确定后保存至设备,与SwitchMode结合使用,根据SwitchMode决定最终生效的配置。
  7299. // SwitchMode=0,Profile=3,设置白天配置到设备;
  7300. // SwitchMode=1,Profile=3,则设置夜晚配置到设备
  7301. // SwitchMode=2,Profile=3,根据日出日落时间段切换,白天时间段使用白天配置,夜晚时间段使用夜晚配置,保存至设备;
  7302. // SwitchMode=4,Profile=3;使用普通配置,保存至设备
  7303. BYTE byBrightnessThreshold ; // 亮度阈值 0~100
  7304. BYTE bySunriseHour; // 大致日出和日落时间,日落之后日出之前,将采用夜晚特殊的配置。
  7305. BYTE bySunriseMinute; // 00:00:00 ~ 23:59:59
  7306. BYTE bySunriseSecond;
  7307. BYTE bySunsetHour;
  7308. BYTE bySunsetMinute;
  7309. BYTE bySunsetSecond;
  7310. BYTE byGainRed; // 红色增益调节,白平衡为"Custom"模式下有效 0~100
  7311. BYTE byGainBlue; // 绿色增益调节,白平衡为"Custom"模式下有效 0~100
  7312. BYTE byGainGreen; // 蓝色增益调节,白平衡为"Custom"模式下有效 0~100
  7313. BYTE byExposure; // 曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n==byExposureEn)
  7314. float fExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  7315. float fExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
  7316. 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"
  7317. BYTE byGain; // 0~100, GainAuto为true时表示自动增益的上限,否则表示固定的增益值
  7318. bool bGainAuto; // 自动增益
  7319. bool bIrisAuto; // 自动光圈
  7320. float fExternalSyncPhase; // 外同步的相位设置 0~360
  7321. BYTE byGainMin; // 增益下限
  7322. BYTE byGainMax; // 增益上限
  7323. BYTE byBacklight; // 背光补偿:取值范围取决于设备能力集:0-关闭1-启用2-指定区域背光补偿
  7324. BYTE byAntiFlicker; // 防闪烁模式 0-Outdoor 1-50Hz防闪烁 2-60Hz防闪烁
  7325. BYTE byDayNightColor; // 日/夜模式;0-总是彩色,1-根据亮度自动切换,2-总是黑白
  7326. BYTE byExposureMode; // 曝光模式调节 曝光等级为自动曝光时有效,取值:0-默认自动,1-增益优先,2-快门优先
  7327. BYTE byRotate90; // 0-不旋转,1-顺时针90°,2-逆时针90°
  7328. bool bMirror; // 镜像
  7329. BYTE byWideDynamicRange; // 宽动态值 0-关闭,1~100-为真实范围值
  7330. BYTE byGlareInhibition; // 强光抑制 0-关闭, 1~100为范围值
  7331. CFG_RECT stuBacklightRegion; // 背光补偿区域
  7332. BYTE byFocusMode; // 0-关闭,1-辅助聚焦,2-自动聚焦
  7333. bool bFlip; // 翻转
  7334. BYTE reserved[74]; // 保留
  7335. } CFG_VIDEO_IN_NIGHT_OPTIONS;
  7336. typedef struct tagCFG_VIDEO_IN_NORMAL_OPTIONS
  7337. {
  7338. BYTE byGainRed; // 红色增益调节,白平衡为"Custom"模式下有效 0~100
  7339. BYTE byGainBlue; // 绿色增益调节,白平衡为"Custom"模式下有效 0~100
  7340. BYTE byGainGreen; // 蓝色增益调节,白平衡为"Custom"模式下有效 0~100
  7341. BYTE byExposure; // 曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n==byExposureEn)
  7342. float fExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  7343. float fExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
  7344. 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"
  7345. BYTE byGain; // 0~100, GainAuto为true时表示自动增益的上限,否则表示固定的增益值
  7346. bool bGainAuto; // 自动增益
  7347. bool bIrisAuto; // 自动光圈
  7348. float fExternalSyncPhase; // 外同步的相位设置 0~360
  7349. BYTE byGainMin; // 增益下限
  7350. BYTE byGainMax; // 增益上限
  7351. BYTE byBacklight; // 背光补偿:取值范围取决于设备能力集:0-关闭1-启用2-指定区域背光补偿
  7352. BYTE byAntiFlicker; // 防闪烁模式 0-Outdoor 1-50Hz防闪烁 2-60Hz防闪烁
  7353. BYTE byDayNightColor; // 日/夜模式;0-总是彩色,1-根据亮度自动切换,2-总是黑白
  7354. BYTE byExposureMode; // 曝光模式调节 曝光等级为自动曝光时有效,取值:0-默认自动,1-增益优先,2-快门优先
  7355. BYTE byRotate90; // 0-不旋转,1-顺时针90°,2-逆时针90°
  7356. bool bMirror; // 镜像
  7357. BYTE byWideDynamicRange; // 宽动态值 0-关闭,1~100-为真实范围值
  7358. BYTE byGlareInhibition; // 强光抑制 0-关闭, 1~100为范围值
  7359. CFG_RECT stuBacklightRegion; // 背光补偿区域
  7360. BYTE byFocusMode; // 0-关闭,1-辅助聚焦,2-自动聚焦
  7361. bool bFlip; // 翻转
  7362. BYTE reserved[74]; // 保留
  7363. }CFG_VIDEO_IN_NORMAL_OPTIONS;
  7364. // 闪光灯配置
  7365. typedef struct tagCFG_FLASH_CONTROL
  7366. {
  7367. BYTE byMode; // 工作模式,0-禁止闪光,1-始终闪光,2-自动闪光
  7368. BYTE byValue; // 工作值, 0-0us, 1-64us, 2-128us, 3-192...15-960us
  7369. BYTE byPole; // 触发模式, 0-低电平 1-高电平 2-上升沿 3-下降沿
  7370. BYTE byPreValue; // 亮度预设值 区间0~100
  7371. BYTE byDutyCycle; // 占空比, 0~100
  7372. BYTE byFreqMultiple; // 倍频, 0~10
  7373. BYTE reserved[122]; // 保留
  7374. }CFG_FLASH_CONTROL;
  7375. // 抓拍参数特殊配置
  7376. typedef struct tagCFG_VIDEO_IN_SNAPSHOT_OPTIONS
  7377. {
  7378. BYTE byGainRed; // 红色增益调节,白平衡为"Custom"模式下有效 0~100
  7379. BYTE byGainBlue; // 绿色增益调节,白平衡为"Custom"模式下有效 0~100
  7380. BYTE byGainGreen; // 蓝色增益调节,白平衡为"Custom"模式下有效 0~100
  7381. BYTE byExposure; // 曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n==byExposureEn)
  7382. float fExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  7383. float fExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
  7384. 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"
  7385. BYTE byColorTemperature; // 色温等级, 白平衡为"CustomColorTemperature"模式下有效
  7386. bool bGainAuto; // 自动增益
  7387. BYTE byGain; // 增益调节, GainAuto为true时表示自动增益的上限,否则表示固定的增益值
  7388. BYTE reversed[112]; // 保留
  7389. } CFG_VIDEO_IN_SNAPSHOT_OPTIONS;
  7390. // 鱼眼矫正模式
  7391. typedef enum
  7392. {
  7393. CFG_CALIBRATE_MODE_UNKOWN, // 未知模式
  7394. CFG_CALIBRATE_MODE_ORIGIAL, // 原始图像模式
  7395. CFG_CALIBRATE_MODE_CONFIG, // 配置模式
  7396. CFG_CALIBRATE_MODE_PANORAMA, // 全景模式
  7397. CFG_CALIBRATE_MODE_DOUBLEPANORAMA, // 双全景模式
  7398. CFG_CALIBRATE_MODE_ORIGIALPLUSTHREEEPTZREGION, // 1+3模式(一个原始鱼眼图像加3个EPtz图像)
  7399. CFG_CALIBRATE_MODE_SINGLE, // 单画面EPtz模式(只有一个EPtz画面)
  7400. CFG_CALIBRATE_MODE_FOUREPTZREGION, // 4画面模式(4个EPtz控制画面)
  7401. CFG_CALIBRATE_MODE_NORMAL, // 普通模式
  7402. }CFG_CALIBRATE_MODE;
  7403. // 鱼眼镜头配置
  7404. typedef struct tagCFG_FISH_EYE
  7405. {
  7406. CFG_POLYGON stuCenterPoint; // 鱼眼圆心坐标,范围[0,8192]
  7407. unsigned int nRadius; // 鱼眼半径大小,范围[0,8192]
  7408. float fDirection; // 镜头旋转方向,旋转角度[0,360.0]
  7409. BYTE byPlaceHolder; // 镜头安装方式 1顶装,2壁装;3地装,默认1
  7410. BYTE byCalibrateMode; // 鱼眼矫正模式,详见CFG_CALIBRATE_MODE枚举值
  7411. BYTE reversed[31]; // 保留
  7412. }CFG_FISH_EYE;
  7413. // 视频输入前端选项
  7414. typedef struct tagCFG_VIDEO_IN_OPTIONS
  7415. {
  7416. BYTE byBacklight; // 背光补偿:取值范围取决于设备能力集:0-关闭1-启用2-指定区域背光补偿
  7417. BYTE byDayNightColor; // 日/夜模式;0-总是彩色,1-根据亮度自动切换,2-总是黑白
  7418. 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"
  7419. BYTE byColorTemperature; // 色温等级, 白平衡为"CustomColorTemperature"模式下有效
  7420. bool bMirror; // 镜像
  7421. bool bFlip; // 翻转
  7422. bool bIrisAuto; // 自动光圈
  7423. bool bInfraRed; // 根据环境光自动开启红外补偿灯
  7424. BYTE byGainRed; // 红色增益调节,白平衡为"Custom"模式下有效 0~100
  7425. BYTE byGainBlue; // 绿色增益调节,白平衡为"Custom"模式下有效 0~100
  7426. BYTE byGainGreen; // 蓝色增益调节,白平衡为"Custom"模式下有效 0~100
  7427. BYTE byExposure; // 曝光模式;取值范围取决于设备能力集:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n==byExposureEn)
  7428. float fExposureValue1; // 自动曝光时间下限或者手动曝光自定义时间,毫秒为单位,取值0.1ms~80ms
  7429. float fExposureValue2; // 自动曝光时间上限,毫秒为单位,取值0.1ms~80ms
  7430. bool bGainAuto; // 自动增益
  7431. BYTE byGain; // 增益调节, GainAuto为true时表示自动增益的上限,否则表示固定的增益值
  7432. BYTE bySignalFormat; // 信号格式, 0-Inside(内部输入) 1-BT656 2-720p 3-1080p 4-1080i 5-1080sF
  7433. BYTE byRotate90; // 0-不旋转,1-顺时针90°,2-逆时针90°
  7434. float fExternalSyncPhase; // 外同步的相位设置 0~360
  7435. BYTE byExternalSync; // 外部同步信号输入,0-内部同步 1-外部同步
  7436. BYTE bySwitchMode; //0-不切换,总是使用白天配置;1-根据亮度切换;2-根据时间切换;3-不切换,总是使用夜晚配置;4-使用普通配置
  7437. BYTE byDoubleExposure; // 双快门, 0-不启用,1-双快门全帧率,即图像和视频只有快门参数不同,2-双快门半帧率,即图像和视频快门及白平衡参数均不同
  7438. BYTE byWideDynamicRange; // 宽动态值
  7439. CFG_VIDEO_IN_NIGHT_OPTIONS stuNightOptions; // 夜晚参数
  7440. CFG_FLASH_CONTROL stuFlash; // 闪光灯配置
  7441. CFG_VIDEO_IN_SNAPSHOT_OPTIONS stuSnapshot; // 抓拍参数, 双快门时有效
  7442. CFG_FISH_EYE stuFishEye; // 鱼眼镜头
  7443. BYTE byFocusMode; // 0-关闭,1-辅助聚焦,2-自动聚焦
  7444. BYTE reserved[28]; // 保留
  7445. BYTE byGainMin; // 增益下限
  7446. BYTE byGainMax; // 增益上限
  7447. BYTE byAntiFlicker; // 防闪烁模式 0-Outdoor 1-50Hz防闪烁 2-60Hz防闪烁
  7448. BYTE byExposureMode; // 曝光模式调节 曝光等级为自动曝光时有效,取值:0-默认自动,1-增益优先,2-快门优先,4-手动
  7449. BYTE byGlareInhibition; // 强光抑制 0-关闭, 1~100为范围值
  7450. CFG_RECT stuBacklightRegion; // 背光补偿区域
  7451. CFG_VIDEO_IN_NORMAL_OPTIONS stuNormalOptions;//普通参数
  7452. } CFG_VIDEO_IN_OPTIONS;
  7453. // RTSP输入参数和输出参数配置结构体
  7454. typedef struct tagCFG_MULTICAST_INFO
  7455. {
  7456. int nStructSize;
  7457. bool abStreamType;
  7458. BYTE byReserved[3];
  7459. BOOL bEnable; // 是否使能
  7460. char szMulticastAddr[MAX_ADDRESS_LEN]; //组播地址
  7461. int nPort; //组播端口
  7462. char szLocalAddr[MAX_ADDRESS_LEN]; //单播地址,用于组播指定详细网卡
  7463. int nChannelID; // 通道号
  7464. int nStreamType; // 码流类型 0-主码流, 1-辅码流1,2-辅码流2,3-辅码流3
  7465. }CFG_MULTICAST_INFO;
  7466. typedef struct tagCFG_MULTICASTS_INFO
  7467. {
  7468. int nStructSize;
  7469. CFG_MULTICAST_INFO stuMultiInfo[MAX_CHAN_NUM]; //最大组播配置
  7470. int nCount; //有效数组个数
  7471. }CFG_MULTICASTS_INFO;
  7472. typedef struct tagCFG_RTSP_INFO_IN
  7473. {
  7474. int nStructSize;
  7475. BOOL bEnable; // 整个功能是否使能
  7476. int nPort; // RTSP服务端口
  7477. int nRtpStartPort; // RTP起始端口
  7478. int nRtpEndPort; // RTP结束端口
  7479. BOOL bHttpEnable; // RtspOverHttp使能
  7480. int nHttpPort; // RtspOverHttp端口
  7481. }CFG_RTSP_INFO_IN;
  7482. typedef struct tagCFG_RTSP_INFO_OUT
  7483. {
  7484. int nStructSize;
  7485. BOOL bEnable; // 整个功能是否使能
  7486. int nPort; // RTSP服务端口
  7487. int nRtpStartPort; // RTP起始端口
  7488. int nRtpEndPort; // RTP结束端口
  7489. BOOL bHttpEnable; // RtspOverHttp使能
  7490. int nHttpPort; // RtspOverHttp端口
  7491. }CFG_RTSP_INFO_OUT;
  7492. typedef struct tagCFG_MULTICASTS_INFO_IN
  7493. {
  7494. int nStructSize;
  7495. CFG_MULTICAST_INFO *pTSMulticast; //TS的组播配置
  7496. int nTSCount; //有效TS数组个数
  7497. CFG_MULTICAST_INFO *pRTPMulticast; //RTP的组播配置
  7498. int nRTPCount; //有效RTP数组个数
  7499. CFG_MULTICAST_INFO *pDHIIMulticast; //DHII的组播配置
  7500. int nDHIICount; //有效DHII数组个数
  7501. CFG_MULTICAST_INFO *pRTPAudio; //RTP音频组播配置
  7502. int nRTPAudioCount; //有效RTP音频数组个数
  7503. }CFG_MULTICASTS_INFO_IN;
  7504. typedef struct tagCFG_MULTICASTS_INFO_OUT
  7505. {
  7506. int nStructSize;
  7507. CFG_MULTICASTS_INFO stuTSMulticast; //TS的组播配置
  7508. CFG_MULTICASTS_INFO stuRTPMulticast; //RTP的组播配置
  7509. CFG_MULTICASTS_INFO stuDHIIMulticast; //DHII的组播配置
  7510. CFG_MULTICASTS_INFO stuRTPAudioMulticast; //RTP音频组播配置
  7511. }CFG_MULTICASTS_INFO_OUT;
  7512. typedef struct tagCFG_ACTIVEUSER_INFO
  7513. {
  7514. int nStructSize;
  7515. int nUserID; //活动用户ID,一般是会话ID
  7516. char szUser[MAX_USERNAME_LEN]; // 用户名
  7517. char szGroupName[MAX_USERNAME_LEN]; // 用户所在组名
  7518. int nGroupLevel; // 用户所在组等级
  7519. char szClientType[MAX_USERNAME_LEN]; // 客户端类型
  7520. char szClientAddr[MAX_ADDRESS_LEN]; // 客户端IP地址
  7521. CFG_NET_TIME stuLoginTime; // 用户登入时间
  7522. }CFG_ACTIVEUSER_INFO;
  7523. typedef struct tagCFG_ACTIVEALLUSER_INFO
  7524. {
  7525. int nStructSize;
  7526. int nCount; //有效数组个数
  7527. CFG_ACTIVEUSER_INFO stuActiveUserInfo[MAX_ACTIVEUSER_NUM]; // 最大活动用户列表
  7528. }CFG_ACTIVEALLUSER_INFO;
  7529. typedef struct tagCFG_NET_TIME_EX
  7530. {
  7531. DWORD dwYear; // 年
  7532. DWORD dwMonth; // 月
  7533. DWORD dwDay; // 日
  7534. DWORD dwHour; // 时
  7535. DWORD dwMinute; // 分
  7536. DWORD dwSecond; // 秒
  7537. DWORD dwMillisecond; // 毫秒
  7538. DWORD dwReserved[2]; // 保留字段
  7539. } CFG_NET_TIME_EX;
  7540. #define MAX_EXITMAN_NUM 32 // 支持的最大的离开人数
  7541. // 规则类型
  7542. typedef enum tagEM_CFG_RULE_TYPE
  7543. {
  7544. EM_CFG_RULE_UNKNOWN, // 未知
  7545. EM_CFG_RULE_NUMBER_STAT, // 人数统计
  7546. EM_CFG_RULE_MAN_NUM_DETECTION, // 区域内人数统计
  7547. } EM_CFG_RULE_TYPE;
  7548. // 离开人员的滞留时间信息
  7549. typedef struct tagCFG_EXITMAN_STAY_STAT
  7550. {
  7551. CFG_NET_TIME_EX stuEnterTime; // 人员进入区域时间
  7552. CFG_NET_TIME_EX stuExitTime; // 人员离开区域时间
  7553. BYTE reserved[104]; // 保留字节
  7554. } CFG_EXITMAN_STAY_STAT;
  7555. //获取视频统计摘要信息结构体
  7556. typedef struct tagCFG_CFG_VIDEOSATA_SUMMARY_INFO
  7557. {
  7558. int nStructSize;
  7559. int nChannelID; //统计通道号
  7560. char szRuleName[MAX_NAME_LEN]; //规则名称
  7561. CFG_NET_TIME_EX stuStatTime; //统计时间,转换到UTC
  7562. int nEnteredTotal; //进入总计
  7563. int nEnteredToday; //今天进入总计
  7564. int nEnteredMonth; //本月进入总计
  7565. int nEnteredYear; //今年进入总计
  7566. int nEnteredDaily; //每日最大进入总计
  7567. int nExitedTotal; //出去总计
  7568. int nExitedToday; //今天出去总计
  7569. int nExitedMonth; //本月出去总计
  7570. int nExitedYear; //今年出去总计
  7571. int nExitedDaily; //每日最大出去总计
  7572. int nAvgTotal; //平均所有保有统计(除去零值)
  7573. int nAvgToday; //平均今天保有统计
  7574. int nAvgMonth; //平均本月保有统计
  7575. int nAvgYear; //平均今年保有统计
  7576. int nMaxTotal; //最大所有保有统计(除去零值)
  7577. int nMaxToday; //最大今天保有统计
  7578. int nMaxMonth; //最大本月保有统计
  7579. int nMaxYear; //最大今年保有统计
  7580. int nInsideSubTotal; //区域内人数
  7581. EM_CFG_RULE_TYPE emRuleType; //规则类型
  7582. int nRetExitManNum; //离开人员的数量
  7583. CFG_EXITMAN_STAY_STAT stuExitManStayInfo[MAX_EXITMAN_NUM]; //离开人员的滞留时间信息
  7584. }CFG_VIDEOSATA_SUMMARY_INFO;
  7585. // 单场景跟踪结构体
  7586. typedef struct tagCFG_SINGLESCENE
  7587. {
  7588. int nStructSize;
  7589. int nSingleAlarmDelay; //报警延时:1~600秒
  7590. int nSinglePresetID; //预置点编号:1~255(-1代表无定义)
  7591. }CFG_SINGLESCENE;
  7592. // 巡航路径结构体
  7593. typedef struct tagCFG_TOURPATH
  7594. {
  7595. int nStructSize;
  7596. int nMultiPresetID; //场景预置点编号
  7597. int nMultiDuration; //停留时间30~900秒
  7598. }CFG_TOURPATH;
  7599. //多场景跟踪优先模式
  7600. typedef enum tagCFG_MULTSCENE_PRIOR_MODE
  7601. {
  7602. EM_MULTSCENE_PRIOR_MODE_UNKNOW = 0 ,
  7603. EM_MULTSCENE_PRIOR_MODE_DETECT , //检测优先,等待系统检测完毕后再切换场景
  7604. EM_MULTSCENE_PRIOR_MODE_SWITCH , //切换优先,直接停掉系统检测,切换到下一个场景
  7605. }CFG_MULTSCENE_PRIOR_MODE;
  7606. // 多场景跟踪结构体
  7607. typedef struct tagCFG_MULTISCENE
  7608. {
  7609. int nStructSize;
  7610. int nMultiAlarmDelay; //报警延时:1~600秒
  7611. int nTourPathCount; //巡航路径个数
  7612. CFG_TOURPATH stuMultiTourPath[MAX_TRACKSCENE_NUM]; //巡航路径
  7613. CFG_MULTSCENE_PRIOR_MODE emPriorMode; //优先模式
  7614. }CFG_MULTISCENE;
  7615. // 全场景跟踪结构体
  7616. typedef struct tagCFG_FULLSCENE
  7617. {
  7618. int nStructSize;
  7619. int nFullAlarmDelay; //报警延时:1~600秒
  7620. int nFullPresetID; //预置点编号,全景跟踪预置点固定为0,用户不可设置
  7621. int nFullDuration; //全景跟踪持续时间,0秒: 一直跟踪;1~300:跟踪持续时间
  7622. }CFG_FULLSCENE;
  7623. // 限位参数结构体
  7624. typedef struct tag_CFG_POSITION_LIMIT
  7625. {
  7626. int nStructSize;
  7627. BOOL bEnable; //启用限位参数
  7628. int nType; //限位值表述方式:0: 由云台在限位设置操作时保存数据,限位值数据无意义
  7629. //1:限位值用角度(单位0.1度)表示,用该值设置该场景的限位
  7630. int nTop; //上限位值, 0~900:(单位0.1度)
  7631. int nBottom; //下限位值:0~900:(单位0.1度)
  7632. int nLeft; //左限位值:0~3600:(单位0.1度)
  7633. int nRight; //右限位值:0~3600:(单位0.1度)
  7634. }CFG_POSITION_LIMIT;
  7635. //自行设置的标记方向
  7636. typedef enum tagCFG_SCENE_DIRECTION_INFO
  7637. {
  7638. EM_SCENE_DIRECTION_UNKNOW =0 ,
  7639. EM_SCENE_DIRECTION_APPROACH , //上行
  7640. EM_SCENE_DIRECTION_LEAVE , //下行
  7641. EM_SCENE_DIRECTION_BOTH , //双向
  7642. EM_SCENE_DIRECTION_EAST2WEST , //由东向西
  7643. EM_SCENE_DIRECTION_WEST2EAST , //由西向东
  7644. EM_SCENE_DIRECTION_SOUTH2NORTH , //由南向北
  7645. EM_SCENE_DIRECTION_NORTH2SOUTH , //由北向南
  7646. EM_SCENE_DIRECTION_OTHER , //其他
  7647. }CFG_SCENE_DIRECTION_INFO;
  7648. // 场景信息结构体
  7649. typedef struct tagCFG_SCENE
  7650. {
  7651. int nStructSize;
  7652. int nScenePresetID; //场景预置点,1~255,通过预置点编号关联到对应规则上
  7653. char szSceneName[MAX_NAME_LEN]; //场景名
  7654. int nSceneDuration; //跟踪持续时间:0秒: 一直跟踪;1~300:跟踪持续时间
  7655. double dSceneMaxZoom; //归一化到0~1;为null表示使用全局MaxZoom值
  7656. CFG_POSITION_LIMIT stuPositionLimit; //限位参数
  7657. int nSceneRegression; //归位时间,1~10秒:跟踪丢失后回到原场景的时间
  7658. CFG_SCENE_DIRECTION_INFO emDirectionInfo; ///自行设置的标记方向
  7659. }CFG_SCENE;
  7660. // 智能跟踪模式
  7661. typedef enum tagCFG_INTELLI_TRACE_MODE
  7662. {
  7663. EM_INTELLI_TRACE_MODE_UNKNOW = 0 ,
  7664. EM_INTELLI_TRACE_MODE_INDOOR , //室内跟踪(短时间)
  7665. EM_INTELLI_TRACE_MODE_OUTDOOR , //室外跟踪
  7666. EM_INTELLI_TRACE_MODE_CLASSROOM , //教室跟踪(长时间且需要人物标定)
  7667. }CFG_INTELLI_TRACE_MODE;
  7668. // 智能跟踪场景配置结构体
  7669. typedef struct tagCFG_INTELLITRACKSCENE_INFO
  7670. {
  7671. int nStructSize;
  7672. BOOL bEnableTrack; //启用智能跟踪
  7673. int nTrackType; //0,报警跟踪;1,手动跟踪
  7674. double dMaxZoom; //最大跟踪倍率,归一化到0~1,为null表示无限制
  7675. char szCategory[MAX_NAME_LEN]; //当前跟踪类型,"SingleScene":单场景跟踪;"MultiScene":多场景跟踪;"FullScene":全景跟踪
  7676. CFG_SINGLESCENE stuSingleTrack; //单场景跟踪
  7677. CFG_MULTISCENE stuMultiTrack; //多场景跟踪
  7678. CFG_FULLSCENE stuFullTrack; //全景跟踪
  7679. int nSceneCount; //支持的场景个数
  7680. CFG_SCENE stuScene[MAX_TRACKSCENE_NUM]; //场景列表
  7681. double dCameraHeight; //摄像头离地面垂直距离,单位:米
  7682. int nIdleDelay; //空闲等待时间,单位:秒(即用户停止操作设备后,到智能继续生效的空闲延时时间)
  7683. CFG_INTELLI_TRACE_MODE emTraceMode; //跟踪模式
  7684. }CFG_INTELLITRACKSCENE_INFO;
  7685. // 鱼眼详细配置
  7686. #define CFG_MAX_FISHEYE_WINDOW_NUM 8 // 最大鱼眼窗口数
  7687. #define CFG_MAX_FISHEYE_MODE_NUM 8 // 最大鱼眼模式数
  7688. // 鱼眼窗口位置信息
  7689. typedef struct tagCFG_FISHEYE_WINDOW_INFO
  7690. {
  7691. DWORD dwWindowID; // 窗口ID
  7692. int nFocusX; // EPtz(电子云台)的焦点横坐标
  7693. int nFocusY; // EPtz (电子云台)的焦点纵坐标
  7694. int nHorizontalAngle; // EPtz的水平角度
  7695. int nVerticalAngle; // EPtz的垂直角度
  7696. }CFG_FISHEYE_WINDOW_INFO;
  7697. // 鱼眼各模式的窗口位置信息
  7698. typedef struct tagCFG_FISHEYE_MODE_INFO
  7699. {
  7700. int nModeType; // 模式类型,详见 CFG_CALIBRATE_MODE
  7701. int nWindowNum; // 当前模式下的窗口数
  7702. CFG_FISHEYE_WINDOW_INFO stuWindwos[CFG_MAX_FISHEYE_WINDOW_NUM]; // 具体窗口信息
  7703. }CFG_FISHEYE_MODE_INFO;
  7704. typedef struct tagCFG_FISHEYE_DETAIL_INFO
  7705. {
  7706. int nModeNum; // 模块数
  7707. CFG_FISHEYE_MODE_INFO stuModes[CFG_MAX_FISHEYE_MODE_NUM]; // 具体模块信息
  7708. }CFG_FISHEYE_DETAIL_INFO;
  7709. // 平台下发呼叫无应答转移配置列表
  7710. #define CFG_MAX_NOANSWER_FORWARD_GROUP_NUM 32 // 最大无应答前转列表个数
  7711. #define CFG_MAX_FORWARD_NUMBERS_NUM 32 // 最大无应答转移号码个数
  7712. // 无应答转移配置
  7713. typedef struct tagCFG_VT_NOANSWER_FORWARD_GROUP
  7714. {
  7715. char szRoomNumber[CFG_COMMON_STRING_32]; // 被呼叫号码
  7716. int nForwardNumbersNum; // 无应答转移号码个数
  7717. char szForwardNumbers[CFG_MAX_FORWARD_NUMBERS_NUM][CFG_COMMON_STRING_64]; // 无应答转移号码列表
  7718. }CFG_VT_NOANSWER_FORWARD_GROUP;
  7719. // 平台下发呼叫无应答转移配置列表信息
  7720. typedef struct tagCFG_VT_NOANSWER_FORWARD_INFO
  7721. {
  7722. BOOL bEnable; // 无应答转移使能
  7723. int nGroupNum; // 无应答转移配置列表有效个数,范围:0 ~ CFG_MAX_NOANSWER_FORWARD_GROUP_NUM
  7724. CFG_VT_NOANSWER_FORWARD_GROUP stuGroups[CFG_MAX_NOANSWER_FORWARD_GROUP_NUM]; // 无应答转移配置列表
  7725. }CFG_VT_NOANSWER_FORWARD_INFO;
  7726. // VTO呼叫配置
  7727. typedef struct tagCFG_VTO_CALL_INFO
  7728. {
  7729. BOOL bAreaEnable; // 跨区域联网使能
  7730. char szAreaNumber[CFG_COMMON_STRING_32]; // 区域编码
  7731. BOOL bMiddleNumberCallEnable; // 中号呼叫开关
  7732. char szVTHMiddleNumberPrefix[CFG_COMMON_STRING_16]; // VTH中号前缀,固定长度4位
  7733. char szVTHLongNumberPrefix[CFG_COMMON_STRING_32]; // VTH长号前缀,固定长度8位
  7734. char szVTOShortNumber[CFG_COMMON_STRING_16]; // VTO短号,固定长度4位
  7735. char szVTOMiddleNumberPrefix[CFG_COMMON_STRING_16]; // VTO中号前缀,固定长度4位
  7736. char szVTOLongNumbrPrefix[CFG_COMMON_STRING_32]; // VTO长号前缀,固定长度12位
  7737. char szVTSLongNumber[CFG_COMMON_STRING_32]; // VTS长号,固定长度18位
  7738. char szVillaCallVTHNum[CFG_COMMON_STRING_32]; // 别墅机呼叫号码
  7739. }CFG_VTO_CALL_INFO;
  7740. /************************工作状态配置**********************************/
  7741. // 抓拍模式
  7742. typedef enum tagCFG_TRAFFIC_SNAP_MODE
  7743. {
  7744. TRAFFIC_SNAP_MODE_AUTO = 0, // 自动抓拍
  7745. TRAFFIC_SNAP_MODE_COIL, // 线圈抓拍
  7746. TRAFFIC_SNAP_MODE_COIL_PICANALYSIS, // 线圈抓拍, 图片分析
  7747. TRAFFIC_SNAP_MODE_STREAM, // 视频抓拍
  7748. TRAFFIC_SNAP_MODE_STREAM_IDENTIFY, // 视频抓拍, 并且识别
  7749. TRAFFIC_SNAP_MODE_MIX_IDENTIFY, // 混合抓拍, 并且识别
  7750. } CFG_TRAFFIC_SNAP_MODE;
  7751. // 设备工作状态信息
  7752. typedef struct tagCFG_TRAFFIC_WORKSTATE_INFO
  7753. {
  7754. int nChannelID; // 通道号
  7755. CFG_TRAFFIC_SNAP_MODE emSnapMode; // 抓拍模式
  7756. int nMatchMode; // 抓拍匹配模式: 0-非实时匹配方式,先报警后抓拍,抓拍帧不是报警帧; 1-实时匹配模式,报警帧和抓拍帧是同一帧
  7757. }CFG_TRAFFIC_WORKSTATE_INFO;
  7758. // 获取设备工作状态是否正常(CFG_CAP_CMD_DEVICE_STATE 对应的结构体)
  7759. typedef struct tagCFG_TRAFFIC_DEVICE_STATUS
  7760. {
  7761. char szType[MAX_PATH]; // 设备类型 支持:"Radar","Detector","SigDetector","StroboscopicLamp"," FlashLamp"
  7762. char szSerialNo[MAX_PATH]; // 设备编号
  7763. char szVendor[MAX_PATH]; // 生产厂商
  7764. int nWokingState; // 工作状态 0-故障,1-正常工作
  7765. BYTE byLightState; // RS485灯的亮灭状态,Type 为"DhrsStroboscopicLamp"或者"DhrsSteadyLamp"时有效
  7766. // 0-未知, 1-灯亮, 2-灯灭
  7767. BYTE byReserved[3]; // 预留字节
  7768. }CFG_TRAFFIC_DEVICE_STATUS;
  7769. typedef struct tagCFG_CAP_TRAFFIC_DEVICE_STATUS
  7770. {
  7771. int nStatus; // stuStatus 实际个数
  7772. CFG_TRAFFIC_DEVICE_STATUS stuStatus[MAX_STATUS_NUM];
  7773. }CFG_CAP_TRAFFIC_DEVICE_STATUS;
  7774. /************************录像盘组配置**********************************/
  7775. // 存储组信息
  7776. typedef struct tagCFG_STORAGEGROUP_INFO
  7777. {
  7778. char szGroupName[MAX_STORAGEGROUPNAME_LEN]; // 存储组名称
  7779. BYTE* byDisks; // 物理磁盘序号缓冲区
  7780. int nBufSize; // 缓冲区byDisks的长度
  7781. int nDiskNum; // 存储组中的磁盘数
  7782. int nGroupIndex; // 存储组序号(1~最大硬盘数)
  7783. }CFG_STORAGEGROUP_INFO;
  7784. // 录像-存储组 对应信息
  7785. typedef struct tagCFG_RECORDTOGROUP_INFO
  7786. {
  7787. int nChannelID; // 通道号
  7788. BOOL bEnable; // 使能
  7789. char szGroupName[MAX_STORAGEGROUPNAME_LEN]; // 存储组名称, 只读
  7790. int nGroupIndex; // 存储组序号(1~最大盘组, 0则表示无对应盘组),通过此参数与CFG_STORAGE_GROUP_INFO关联
  7791. }CFG_RECORDTOGROUP_INFO;
  7792. enum EM_STORAGEPOINT_TYPE
  7793. {
  7794. EM_STORAGE_TIMINGRECORD, //定时录像存储点类型
  7795. EM_STORAGE_MANUALRECORD, //手动录像存储点类型
  7796. EM_STORAGE_VIDEODETECTRECORD, //视频检测录像存储点类型
  7797. EM_STORAGE_ALARMRECORD, //报警录像存储点类型
  7798. EM_STORAGE_CARDRECORD, //卡号录像存储点类型
  7799. EM_STORAGE_EVENTRECORD, // 其他事件录像存储点类型
  7800. EM_STORAGE_TIMINGSNAPSHOT, // 定时抓图存储点类型
  7801. EM_STORAGE_MANUALSNAPSHOT, // 手动抓图存储点类型
  7802. EM_STORAGE_VIDEODETECTSNAPSHOT, // 视频检测抓图存储点类型
  7803. EM_STORAGE_ALARMSNAPSHOT, // 报警抓图存储点类型
  7804. EM_STORAGE_CARDSNAPSHOT, // 卡号抓图存储点类型
  7805. EM_STORAGE_EVENTSNAPSHOT, // 其他事件抓图存储点类型
  7806. EM_STORAGE_TIMINGEXTRA1RECORD, // 辅码流1录像存储点类型
  7807. };
  7808. // 存储点配置信息
  7809. typedef struct tagCFG_STORAGEPOINT_INFO
  7810. {
  7811. DWORD dwSize;
  7812. EM_STORAGEPOINT_TYPE emStoragePointType;// 存储点类型
  7813. char nLocalDir; //本地工作目录组名称, 空表示不录到本地
  7814. char szCompressDir[MAX_DIRECTORY_LEN]; //实时压缩存储目录组,空表示不使用实时压缩存储。
  7815. char szRedundantDir[MAX_DIRECTORY_LEN]; //冗余工作目录组名称,空表示没有冗余录像。
  7816. char szRemoteDir[MAX_DIRECTORY_LEN]; //远程工作目录组名称,空表示不录到远程。
  7817. BOOL bAutoSync; //远程存储网络故障恢复后,是否自动将本地存储的数据同步到远程存储。
  7818. UINT nAutoSyncRange; //从网络恢复的时刻开始,需要往前同步的数据时间范围,小时为单位,0表示同步所有数据。
  7819. BOOL bLocalEmergency; //远程目录无法访问时,是否保存到本地目录。
  7820. UINT nCompressBefore; //设置将多少天之前的录像文件进行压缩。
  7821. }CFG_STORAGEPOINT_INFO;
  7822. // 录像存储点映射配置信息
  7823. typedef struct tagCFG_RECORDTOSTORAGEPOINT_INFO
  7824. {
  7825. int nStoragePointNum; //存储点数目
  7826. CFG_STORAGEPOINT_INFO stStoragePoints[MAX_STORAGEPOINT_NUM]; // 存储点配置信息
  7827. }CFG_RECORDTOSTORAGEPOINT_INFO;
  7828. // 录像存储点映射配置扩展信息
  7829. typedef struct tagCFG_RECORDTOSTORAGEPOINT_EX_INFO
  7830. {
  7831. DWORD dwSize;
  7832. int nMaxChannelRecord; // 最大录像通道配置个数
  7833. int nRetChannelRecord; // 实际返回通道配置个数
  7834. CFG_RECORDTOSTORAGEPOINT_INFO *pstRecordStorage; // 通道存储点配置信息, 由用户申请内存, 大小为sizeof(CFG_RECORDTOSTORAGEPOINT_INFO)*nMaxChannelRecord
  7835. }CFG_RECORDTOSTORAGEPOINT_EX_INFO;
  7836. //iscsi直存,元数据服务器配置接口
  7837. typedef struct __tagCFG_METADATA_SERVER
  7838. {
  7839. DWORD nStructSize;
  7840. BOOL bEnable; //使能开关
  7841. char szAddress[MAX_ADDRESS_LEN]; //IP地址或网络名
  7842. DWORD dwPort; //端口号
  7843. char szUserName[MAX_USERNAME_LEN]; //帐户名
  7844. char szPassword[MAX_PASSWORD_LEN]; //密码
  7845. char szDeviceID[MAX_REMOTEDEVICENAME_LEN]; //为使用元数据服务器的设备统一分配的ID,设备以此ID标识自己
  7846. }CFG_METADATA_SERVER;
  7847. // 车载货重配置
  7848. typedef struct __tagCFG_GOOD_WEIGHT_INFO
  7849. {
  7850. DWORD dwMaxGoodsWeight; // 最大货重(kg)
  7851. DWORD dwMinGoodsWeight; // 最小货重(kg)
  7852. DWORD dwSelfWeight; // 自重(kg)
  7853. DWORD dwStandardWeight; // 核重(kg)
  7854. DWORD dwAlarmWeight; // 报警阈值(kg)
  7855. int nCheckTime; // 静止采集时间(s)
  7856. } CFG_GOOD_WEIGHT_INFO;
  7857. //镜头聚焦状态信息
  7858. typedef struct tagCFG_CAP_FOCUS_STATUS
  7859. {
  7860. int nAutofocusPeak; // 当前AF峰值 辅助聚焦模式下有效
  7861. double dFocus; // 聚焦位置 归一化到0~1
  7862. double dZoom; // 放大倍数 归一化到0~1
  7863. int nStatus; // 聚焦状态, 0 正常状态 1 正在自动聚焦
  7864. }CFG_CAP_FOCUS_STATUS;
  7865. //云台支持能力信息
  7866. typedef struct tagCFG_CAP_PTZ_ENABLEINFO
  7867. {
  7868. BOOL bEnable; //该通道是否支持云台
  7869. }CFG_CAP_PTZ_ENABLEINFO;
  7870. // 网络应用能力集
  7871. typedef struct tagCFG_CAP_NETAPP
  7872. {
  7873. int nNetCardCount; // 网卡数量
  7874. int nNetTypeNumber; // 网络类型个数
  7875. char szNetType[MAX_NET_TYPE_NUM][MAX_NET_TYPE_LEN]; // 具体网络类型, "PPPoE","WIFI","3G","LAN"
  7876. }CFG_CAP_NETAPP;
  7877. ///////////////////////////////////三代协议新增///////////////////////////////////////
  7878. // 录像模式
  7879. struct AV_CFG_RecordMode
  7880. {
  7881. AV_int32 nStructSize;
  7882. AV_int32 nMode; // 录像模式, 0-自动录像,1-手动录像,2-关闭录像
  7883. AV_int32 nModeExtra1; // 辅码流1录像模式, 0-自动录像,1-手动录像,2-关闭录像
  7884. AV_int32 nModeExtra2; // 辅码流2录像模式, 0-自动录像,1-手动录像,2-关闭录像
  7885. };
  7886. // 通道名称
  7887. struct AV_CFG_ChannelName
  7888. {
  7889. AV_int32 nStructSize;
  7890. AV_int32 nSerial; // 摄像头唯一编号
  7891. char szName[CFG_MAX_CHANNEL_NAME_LEN];// 通道名
  7892. };
  7893. // 视频输出属性
  7894. struct AV_CFG_VideoOutAttr
  7895. {
  7896. AV_int32 nStructSize;
  7897. AV_int32 nMarginLeft; // 左边距, 比率, 0~100
  7898. AV_int32 nMarginTop; // 上边距, 比率, 0~100
  7899. AV_int32 nMarginRight; // 右边距, 比率, 0~100
  7900. AV_int32 nMarginBottom; // 下边距, 比率, 0~100
  7901. AV_int32 nBrightness; // 亮度, 0~100
  7902. AV_int32 nContrast; // 对比度, 0~100
  7903. AV_int32 nSaturation; // 饱和度, 0~100
  7904. AV_int32 nHue; // 色调, 0~100
  7905. AV_int32 nWidth; // 水平分辨率
  7906. AV_int32 nHeight; // 垂直分辨率
  7907. AV_int32 nBPP; // 颜色深度
  7908. AV_int32 nFormat; // -1-未知, 0-Auto, 1-TV, 2-VGA, 3-DVI, 4-HDMI, 5-SPOT
  7909. AV_int32 nRefreshRate; // 刷新频率
  7910. AV_BOOL bIQIMode; // 输出图像增强
  7911. AV_int32 nScanFormat; // 扫描模式, 0-逐行, 1-隔行
  7912. };
  7913. // 时间段
  7914. struct AV_CFG_TimeSection
  7915. {
  7916. AV_int32 nStructSize;
  7917. AV_int32 nMask; // 掩码
  7918. AV_int32 nBeginHour; // 开始时间
  7919. AV_int32 nBeginMinute;
  7920. AV_int32 nBeginSecond;
  7921. AV_int32 nEndHour; // 结束时间
  7922. AV_int32 nEndMinute;
  7923. AV_int32 nEndSecond;
  7924. };
  7925. // 远程通道
  7926. struct AV_CFG_RemoteChannel
  7927. {
  7928. AV_int32 nStructSize;
  7929. AV_BOOL bEnable; // 使能
  7930. char szDeviceID[AV_CFG_Device_ID_Len]; // 设备ID
  7931. AV_int32 nChannel; // 通道号
  7932. };
  7933. // 显示源
  7934. struct AV_CFG_DisplaySource
  7935. {
  7936. AV_int32 nStructSize;
  7937. AV_int32 nWindowID; // 窗口ID
  7938. AV_BOOL bEnable; // 使能
  7939. char szDeviceID[AV_CFG_Device_ID_Len];// 设备ID
  7940. AV_int32 nVideoChannel; // 视频通道号
  7941. AV_int32 nVideoStream; // 视频码流
  7942. AV_int32 nAudioChannle; // 音频通道号
  7943. AV_int32 nAudioStream; // 音频码流
  7944. AV_BOOL bVideoEnable; // 表示该窗口是否有视频源
  7945. };
  7946. // 通道分割显示源
  7947. struct AV_CFG_ChannelDisplaySource
  7948. {
  7949. AV_int32 nStructSize;
  7950. AV_int32 nWindowNum; // 分割窗口数量
  7951. AV_CFG_DisplaySource stuSource[AV_CFG_Max_Split_Window];// 分割窗口显示源
  7952. };
  7953. // 画面轮训下分割模式的分组使能状态
  7954. struct AV_CFG_MonitorTourMask
  7955. {
  7956. AV_int32 nStructSize;
  7957. CFG_SPLITMODE emSplitMode; // 分割模式
  7958. AV_int32 nGroupNum; // 分组数量
  7959. AV_int32 nGroup[AV_CFG_Max_Split_Group]; // 该分割模式下加入轮训的分组
  7960. };
  7961. // 画面轮训
  7962. struct AV_CFG_MonitorTour
  7963. {
  7964. AV_int32 nStructSize;
  7965. AV_BOOL bEnable; // 使能
  7966. AV_int32 nInterval; // 时间间隔, 5~120s
  7967. AV_int32 nSplitMaskNum; // 分割分组使能数量
  7968. AV_CFG_MonitorTourMask stuSplitMask[AV_CFG_Max_Split_Mode];// 各分割模式对应的分组使能状态
  7969. AV_int32 nCollectionNum; // 收藏数量
  7970. char szCollection[AV_CFG_Monitor_Favorite_In_Channel][AV_CFG_Monitor_Favorite_Name_Len];// 画面收藏名称
  7971. };
  7972. // 监视画面收藏
  7973. struct AV_CFG_MonitorFavorite
  7974. {
  7975. AV_int32 nStructSize;
  7976. AV_BOOL bDir; // 是否为目录
  7977. char szName[AV_CFG_Monitor_Favorite_Name_Len]; // 名称
  7978. char szPath[AV_CFG_Max_Path]; // 目录路径, 格式如下: .name1.name2.name3
  7979. CFG_SPLITMODE emMode; // 分割模式
  7980. AV_int32 nWindowNum; // 窗口数量
  7981. AV_CFG_DisplaySource stuWindow[AV_CFG_Max_Monitor_Favorite_Window]; // 窗口显示源配置
  7982. };
  7983. // 监视画面收藏集合
  7984. struct AV_CFG_MonitorCollection
  7985. {
  7986. AV_int32 nStructSize;
  7987. AV_CFG_MonitorFavorite* pstuFavorite; // 画面收藏数组
  7988. AV_int32 nMaxCount; // 画面收藏数组大小
  7989. AV_int32 nRetCount; // 返回的画面收藏数量
  7990. };
  7991. // Raid信息
  7992. struct AV_CFG_Raid
  7993. {
  7994. AV_int32 nStructSize;
  7995. char szName[AV_CFG_Raid_Name_Len]; // 名称
  7996. AV_int32 nLevel; // 等级
  7997. AV_int32 nMemberNum; // 磁盘成员数量
  7998. char szMembers[AV_CFG_Max_Rail_Member][AV_CFG_Max_Path]; // 磁盘成员
  7999. };
  8000. // 录像源
  8001. struct AV_CFG_RecordSource
  8002. {
  8003. AV_int32 nStructSize;
  8004. AV_BOOL bEnable; // 使能
  8005. char szDeviceID[AV_CFG_Device_ID_Len];// 设备ID
  8006. AV_int32 nVideoChannel; // 视频通道号
  8007. AV_int32 nVideoStream; // 视频码流
  8008. AV_int32 nAudioChannle; // 音频通道号
  8009. AV_int32 nAudioStream; // 音频码流
  8010. };
  8011. // 编码格式, 包括音频和视频
  8012. struct AV_CFG_EncodeFormat
  8013. {
  8014. AV_int32 nStructSize;
  8015. AV_BOOL bAudioEnable; // 音频使能
  8016. AV_int32 nAudioBitRate; // 音频比特率
  8017. CFG_AUDIO_FORMAT emAudioCompression; // 音频压缩模式
  8018. AV_int32 nAudioDepth; // 音频采样深度
  8019. AV_int32 nAudioFrequency; // 音频采样频率
  8020. AV_int32 nAudioMode; // 音频编码模式
  8021. AV_int32 nAudioPack; // 音频打包模式, 0-DHAV, 1-PS
  8022. AV_BOOL bVideoEnable; // 视频使能
  8023. AV_int32 nVideoBitRate; // 视频比特率
  8024. CFG_BITRATE_CONTROL emVideoBitRateControl; // 码流控制模式
  8025. CFG_VIDEO_COMPRESSION emVideoCompression; // 视频压缩模式
  8026. AV_int32 nVideoFPS; // 视频帧率
  8027. AV_int32 nVideoGOP; // 视频I帧间隔
  8028. AV_int32 nVideoWidth; // 视频宽度
  8029. AV_int32 nVideoHeight; // 视频高度
  8030. CFG_IMAGE_QUALITY emVideoQuality; // 视频图像质量
  8031. AV_int32 nVideoPack; // 视频打包模式, 0-DHAV, 1-PS
  8032. };
  8033. // 编码配置
  8034. struct AV_CFG_Encode
  8035. {
  8036. AV_int32 nStructSize;
  8037. AV_CFG_EncodeFormat stuMainFormat[AV_CFG_Max_Encode_Main_Format]; // 主码流, 包括普通编码, 动检编码, 报警编码
  8038. AV_CFG_EncodeFormat stuExtraFormat[AV_CFG_Max_Encode_Extra_Format]; // 辅码流, 包括辅码流1, 辅码流2, 辅码流3
  8039. AV_CFG_EncodeFormat stuSnapFormat[AV_CFG_Max_Encode_Snap_Format]; // 抓图, 包括普通抓图, 动检抓图, 报警抓图
  8040. };
  8041. // videocolor style
  8042. typedef enum tagCFG_ENUM_VIDEOCOLOR_STYLE
  8043. {
  8044. CFG_ENUM_VIDEOCOLOR_STYLE_UNKNOWN, // 未知
  8045. CFG_ENUM_VIDEOCOLOR_STYLE_GENTLE, // 柔和
  8046. CFG_ENUM_VIDEOCOLOR_STYLE_STANDARD, // 标准
  8047. CFG_ENUM_VIDEOCOLOR_STYLE_FLAMBOYANT, // 艳丽
  8048. }CFG_ENUM_VIDEOCOLOR_STYLE;
  8049. // 视频输入颜色配置, 每个视频输入通道对应多个颜色配置
  8050. struct AV_CFG_VideoColor
  8051. {
  8052. AV_int32 nStructSize;
  8053. AV_CFG_TimeSection stuTimeSection; // 时间段
  8054. AV_int32 nBrightness; // 亮度, 0~100
  8055. AV_int32 nContrast; // 对比度, 0~100
  8056. AV_int32 nSaturation; // 饱和度, 0~100
  8057. AV_int32 nHue; // 色调, 0~100
  8058. AV_int32 nGamma; // 增益, 0~100
  8059. AV_int32 nChromaSuppress; // 色彩抑制等级 0~100
  8060. CFG_ENUM_VIDEOCOLOR_STYLE emColorStyle; // 色彩风格
  8061. };
  8062. // 通道视频输入颜色配置
  8063. struct AV_CFG_ChannelVideoColor
  8064. {
  8065. AV_int32 nStructSize;
  8066. AV_int32 nColorNum; // 通道颜色配置数
  8067. AV_CFG_VideoColor stuColor[AV_CFG_Max_VideoColor];// 通道颜色配置, 每个通道对应多个颜色配置
  8068. };
  8069. // 颜色
  8070. struct AV_CFG_Color
  8071. {
  8072. AV_int32 nStructSize;
  8073. AV_int32 nRed; // 红
  8074. AV_int32 nGreen; // 绿
  8075. AV_int32 nBlue; // 蓝
  8076. AV_int32 nAlpha; // 透明
  8077. };
  8078. // 区域
  8079. struct AV_CFG_Rect
  8080. {
  8081. AV_int32 nStructSize;
  8082. AV_int32 nLeft;
  8083. AV_int32 nTop;
  8084. AV_int32 nRight;
  8085. AV_int32 nBottom;
  8086. };
  8087. // 编码物件-区域覆盖配置
  8088. struct AV_CFG_VideoWidgetCover
  8089. {
  8090. AV_int32 nStructSize;
  8091. AV_BOOL bEncodeBlend; // 叠加到主码流
  8092. AV_BOOL bEncodeBlendExtra1; // 叠加到辅码流1
  8093. AV_BOOL bEncodeBlendExtra2; // 叠加到辅码流2
  8094. AV_BOOL bEncodeBlendExtra3; // 叠加到辅码流3
  8095. AV_BOOL bEncodeBlendSnapshot; // 叠加到抓图
  8096. AV_CFG_Color stuFrontColor; // 前景色
  8097. AV_CFG_Color stuBackColor; // 背景色
  8098. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191
  8099. AV_BOOL bPreviewBlend; // 叠加到预览视频
  8100. };
  8101. // 通道标题对齐信息
  8102. typedef enum tagEM_TITLE_TEXT_ALIGN
  8103. {
  8104. EM_TEXT_ALIGN_INVALID, // 无效的对齐方式
  8105. EM_TEXT_ALIGN_LEFT, // 左对齐
  8106. EM_TEXT_ALIGN_XCENTER, // X坐标中对齐
  8107. EM_TEXT_ALIGN_YCENTER, // Y坐标中对齐
  8108. EM_TEXT_ALIGN_CENTER, // 居中
  8109. EM_TEXT_ALIGN_RIGHT, // 右对齐
  8110. EM_TEXT_ALIGN_TOP, // 按照顶部对齐
  8111. EM_TEXT_ALIGN_BOTTOM, // 按照底部对齐
  8112. EM_TEXT_ALIGN_LEFTTOP, // 按照左上角对齐
  8113. EM_TEXT_ALIGN_CHANGELINE, // 换行对齐
  8114. }EM_TITLE_TEXT_ALIGN;
  8115. // 编码物件-通道标题
  8116. struct AV_CFG_VideoWidgetChannelTitle
  8117. {
  8118. AV_int32 nStructSize;
  8119. AV_BOOL bEncodeBlend; // 叠加到主码流
  8120. AV_BOOL bEncodeBlendExtra1; // 叠加到辅码流1
  8121. AV_BOOL bEncodeBlendExtra2; // 叠加到辅码流2
  8122. AV_BOOL bEncodeBlendExtra3; // 叠加到辅码流3
  8123. AV_BOOL bEncodeBlendSnapshot; // 叠加到抓图
  8124. AV_CFG_Color stuFrontColor; // 前景色
  8125. AV_CFG_Color stuBackColor; // 背景色
  8126. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191, 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  8127. AV_BOOL bPreviewBlend; // 叠加到预览视频
  8128. };
  8129. // 编码物件-时间标题
  8130. struct AV_CFG_VideoWidgetTimeTitle
  8131. {
  8132. AV_int32 nStructSize;
  8133. AV_BOOL bEncodeBlend; // 叠加到主码流
  8134. AV_BOOL bEncodeBlendExtra1; // 叠加到辅码流1
  8135. AV_BOOL bEncodeBlendExtra2; // 叠加到辅码流2
  8136. AV_BOOL bEncodeBlendExtra3; // 叠加到辅码流3
  8137. AV_BOOL bEncodeBlendSnapshot; // 叠加到抓图
  8138. AV_CFG_Color stuFrontColor; // 前景色
  8139. AV_CFG_Color stuBackColor; // 背景色
  8140. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191, 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  8141. AV_BOOL bShowWeek; // 是否显示星期
  8142. AV_BOOL bPreviewBlend; // 叠加到预览视频
  8143. };
  8144. // 编码物件-自定义标题
  8145. struct AV_CFG_VideoWidgetCustomTitle
  8146. {
  8147. AV_int32 nStructSize;
  8148. AV_BOOL bEncodeBlend; // 叠加到主码流
  8149. AV_BOOL bEncodeBlendExtra1; // 叠加到辅码流1
  8150. AV_BOOL bEncodeBlendExtra2; // 叠加到辅码流2
  8151. AV_BOOL bEncodeBlendExtra3; // 叠加到辅码流3
  8152. AV_BOOL bEncodeBlendSnapshot; // 叠加到抓图
  8153. AV_CFG_Color stuFrontColor; // 前景色
  8154. AV_CFG_Color stuBackColor; // 背景色
  8155. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191, 仅使用left和top值, 点(left,top)应和(right,bottom)设置成同样的点
  8156. char szText[AV_CFG_Custom_Title_Len];// 标题内容
  8157. AV_BOOL bPreviewBlend; // 叠加到预览视频
  8158. char szType[AV_CFG_Custom_TitleType_Len];// 标题类型 "Rtinfo" 实时刻录信息 "Custom" 自定义叠加、温湿度叠加 "Title" :片头信息 "Check" 校验码
  8159. // 地理信息 "Geography" ATM卡号信息 "ATMCardInfo" 摄像机编号 "CameraID"
  8160. EM_TITLE_TEXT_ALIGN emTextAlign; // 标题对齐方式
  8161. };
  8162. // 编码物件-叠加传感器信息-叠加内容描述
  8163. struct AV_CFG_VideoWidgetSensorInfo_Description
  8164. {
  8165. AV_int32 nStructSize;
  8166. AV_int32 nSensorID; // 需要描述的传感器的ID(即模拟量报警通道号)
  8167. char szDevID[CFG_COMMON_STRING_32]; // 设备ID
  8168. char szPointID[CFG_COMMON_STRING_32];// 测点ID
  8169. char szText[CFG_COMMON_STRING_256]; // 需要叠加的内容
  8170. };
  8171. // 编码物件-叠加传感器信息
  8172. struct AV_CFG_VideoWidgetSensorInfo
  8173. {
  8174. AV_int32 nStructSize;
  8175. AV_BOOL bPreviewBlend; // 叠加到预览视频
  8176. AV_BOOL bEncodeBlend; // 叠加到主码流视频编码
  8177. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191
  8178. AV_int32 nDescriptionNum; // 叠加区域描述数目
  8179. AV_CFG_VideoWidgetSensorInfo_Description stuDescription[AV_CFG_Max_Description_Num];// 叠加区域描述信息
  8180. };
  8181. // OSD中的字体方案FontSolution
  8182. typedef enum tagEM_FONT_SOLUTION
  8183. {
  8184. EM_FONT_UNKNOWN, // 未知
  8185. EM_FONT_DFAULT, // 默认字体 "default-font"
  8186. EM_FONT_SIMKAI, // 楷体 "simkai"
  8187. EM_FONT_SIMSUN, // 宋体"simsun"
  8188. }EM_FONT_SOLUTION;
  8189. // 视频编码物件配置
  8190. struct AV_CFG_VideoWidget
  8191. {
  8192. AV_int32 nStructSize;
  8193. AV_CFG_VideoWidgetChannelTitle stuChannelTitle; // 通道标题
  8194. AV_CFG_VideoWidgetTimeTitle stuTimeTitle; // 时间标题
  8195. AV_int32 nConverNum; // 区域覆盖数量
  8196. AV_CFG_VideoWidgetCover stuCovers[AV_CFG_Max_Video_Widget_Cover]; // 覆盖区域
  8197. AV_int32 nCustomTitleNum; // 自定义标题数量
  8198. AV_CFG_VideoWidgetCustomTitle stuCustomTitle[AV_CFG_Max_Video_Widget_Custom_Title]; // 自定义标题
  8199. AV_int32 nSensorInfo; // 传感器信息叠加区域数目
  8200. AV_CFG_VideoWidgetSensorInfo stuSensorInfo[AV_CFG_Max_Video_Widget_Sensor_Info]; // 传感器信息叠加区域信息
  8201. double fFontSizeScale; //叠加字体大小放大比例
  8202. //当fFontSizeScale≠0时,nFontSize不起作用
  8203. //当fFontSizeScale=0时,nFontSize起作用
  8204. //设备默认fFontSizeScale=1.0
  8205. //如果需要修改倍数,修改该值
  8206. //如果需要按照像素设置,则置该值为0,nFontSize的值生效
  8207. AV_int32 nFontSize; //叠加到主码流上的全局字体大小,单位 px.
  8208. //和fFontSizeScale共同作用
  8209. AV_int32 nFontSizeExtra1; //叠加到辅码流1上的全局字体大小,单位 px
  8210. AV_int32 nFontSizeExtra2; //叠加到辅码流2上的全局字体大小,单位 px
  8211. AV_int32 nFontSizeExtra3; //叠加到辅码流3上的全局字体大小,单位 px
  8212. AV_int32 nFontSizeSnapshot; //叠加到抓图流上的全局字体大小, 单位 px
  8213. AV_int32 nFontSizeMergeSnapshot; //叠加到抓图流上合成图片的字体大小,单位 px
  8214. EM_FONT_SOLUTION emFontSolutionSnapshot; //叠加到抓图流上的字体方案
  8215. };
  8216. // 存储组通道相关配置
  8217. struct AV_CFG_StorageGroupChannel
  8218. {
  8219. AV_int32 nStructSize;
  8220. AV_int32 nMaxPictures; // 每个通道文件夹图片存储上限, 超过就覆盖
  8221. char szPath[AV_CFG_Max_ChannelRule]; // 通道在命名规则里的字符串表示, %c对应的内容
  8222. };
  8223. // 存储组配置
  8224. struct AV_CFG_StorageGroup
  8225. {
  8226. AV_int32 nStructSize;
  8227. char szName[AV_CFG_Group_Name_Len]; // 分组名称
  8228. char szMemo[AV_CFG_Group_Memo_Len]; // 分组说明
  8229. AV_int32 nFileHoldTime; // 文件保留时间
  8230. AV_BOOL bOverWrite; // 存储空间满是否覆盖
  8231. char szRecordPathRule[AV_CFG_Max_Path]; // 录像文件路径命名规则
  8232. char szPicturePathRule[AV_CFG_Max_Path]; // 图片文件路径命名规则
  8233. // %y年, %M月, %d日, %h时, %m分, %s秒, %c通道路径
  8234. // 如果年月日时分秒出现两次, 第一次表示开始时间, 第二次表示结束时间
  8235. AV_CFG_StorageGroupChannel stuChannels[AV_CFG_Max_Channel_Num];// 通道相关配置
  8236. AV_int32 nChannelCount; // 通道配置数
  8237. char szCustomName[AV_CFG_Group_Name_Len]; // 自定义名称,若为空使用szName
  8238. char szSubDevices[MAX_DEV_NUM][MAX_DEVICE_NAME_LEN]; // 子设备列表
  8239. AV_int32 nSubDevices; // 子设备数量
  8240. };
  8241. // DST时间
  8242. struct AV_CFG_DSTTime
  8243. {
  8244. AV_int32 nStructSize;
  8245. AV_int32 nYear; // 年, 2000~2038
  8246. AV_int32 nMonth; // 月, 1~12
  8247. AV_int32 nWeek; // 第几周, 1-第一周,2-第二周,...,-1-最后一周,0-按日期计算
  8248. AV_int32 nDay; // 星期几或日期
  8249. // 按周计算时, 0-周日, 1-周一,..., 6-周六
  8250. // 按日期算时, 表示几号, 1~31
  8251. AV_int32 nHour; // 小时
  8252. AV_int32 nMinute; // 分钟
  8253. };
  8254. // 区域配置
  8255. struct AV_CFG_Locales
  8256. {
  8257. AV_int32 nStructSize;
  8258. char szTimeFormat[AV_CFG_Time_Format_Len]; // 时间格式
  8259. AV_BOOL bDSTEnable; // 夏令时时能
  8260. AV_CFG_DSTTime stuDstStart; // 夏令时起始时间
  8261. AV_CFG_DSTTime stuDstEnd; // 夏令时结束时间
  8262. };
  8263. // 语言类型
  8264. enum AV_CFG_LanguageType
  8265. {
  8266. AV_CFG_Language_English, // 英文
  8267. AV_CFG_Language_SimpChinese, // 简体中文
  8268. AV_CFg_Language_TradChinese, // 繁体中文
  8269. AV_CFG_Language_Italian, // 意大利文
  8270. AV_CFG_Language_Spanish, // 西班牙文
  8271. AV_CFG_Language_Janpanese, // 日文
  8272. AV_CFG_Language_Russian, // 俄文
  8273. AV_CFG_Language_French, // 法文
  8274. AV_CFG_Language_German, // 德文
  8275. AV_CFG_Language_Portugal, // 葡萄牙文
  8276. AV_CFG_Language_Turkey, // 土耳其文
  8277. AV_CFG_Language_Poland, // 波兰文
  8278. AV_CFG_Language_Romanian, // 罗马尼亚
  8279. AV_CFG_Language_Hungarian, // 匈牙利语
  8280. AV_CFG_Language_Finnish, // 芬兰语
  8281. AV_CFG_Language_Estonian, // 爱沙尼亚语
  8282. AV_CFG_Language_Korean, // 韩语
  8283. AV_CFG_Language_Farsi, // 波斯语
  8284. AV_CFG_Language_Dansk, // 丹麦语
  8285. AV_CFG_Language_Czechish, // 捷克文
  8286. AV_CFG_Language_Bulgaria, // 保加利亚文
  8287. AV_CFG_Language_Slovakian, // 斯洛伐克语
  8288. AV_CFG_Language_Slovenia, // 斯洛文尼亚文
  8289. AV_CFG_Language_Croatian, // 克罗地亚语
  8290. AV_CFG_Language_Dutch, // 荷兰语
  8291. AV_CFG_Language_Greek, // 希腊语
  8292. AV_CFG_Language_Ukrainian, // 乌克兰语
  8293. AV_CFG_Language_Swedish, // 瑞典语
  8294. AV_CFG_Language_Serbian, // 塞尔维亚语
  8295. AV_CFG_Language_Vietnamese, // 越南语
  8296. AV_CFG_Language_Lithuanian, // 立陶宛语
  8297. AV_CFG_Language_Filipino, // 菲律宾语
  8298. AV_CFG_Language_Arabic, // 阿拉伯语
  8299. AV_CFG_Language_Catalan, // 加泰罗尼亚语
  8300. AV_CFG_Language_Latvian, // 拉脱维亚语
  8301. AV_CFG_Language_Thai, // 泰语
  8302. AV_CFG_Language_Hebrew, // 希伯来语
  8303. AV_CFG_Language_Bosnian, // 波斯尼亚文
  8304. };
  8305. // 语言配置
  8306. struct AV_CFG_Language
  8307. {
  8308. AV_int32 nStructSize;
  8309. AV_CFG_LanguageType emLanguage; // 当前语言
  8310. };
  8311. // 访问地址过滤
  8312. struct AV_CFG_AccessFilter
  8313. {
  8314. AV_int32 nStructSize;
  8315. AV_BOOL bEnable; // 使能
  8316. AV_int32 nType; // 类型, 0-黑名单, 1-白名单
  8317. AV_int32 nWhiteListNum; // 白名单IP数量
  8318. char szWhiteList[AV_CFG_Max_White_List][AV_CFG_Filter_IP_Len]; // 白名单
  8319. AV_int32 nBlackListNum; // 黑名单IP或IP段数量
  8320. char szBlackList[AV_CFG_Max_Black_List][AV_CFG_Filter_IP_Len]; // 黑名单
  8321. AV_BOOL bIndividual[AV_CFG_Max_White_List]; //白名单:针对单个IP控制是否使能。
  8322. //通过CLIENT_GetDevCaps/NET_USER_MNG_CAPS查看是否支持.
  8323. // 如果支持:可获取或设置该字段;若不支持,则该字段无效
  8324. AV_BOOL bIndividualInBlackList[AV_CFG_Max_Black_List]; //黑名单:针对单个IP控制是否使能
  8325. // 通过CLIENT_GetDevCaps/NET_USER_MNG_CAPS查看是否支持.
  8326. // 如果支持:可获取或设置该字段;若不支持,则该字段无效
  8327. };
  8328. // 自动维护
  8329. struct AV_CFG_AutoMaintain
  8330. {
  8331. AV_int32 nStructSize;
  8332. AV_int32 nAutoRebootDay; // 自动重启日期, -1永不, 0~6周日~周六, 7每天
  8333. AV_int32 nAutoRebootHour; // 自动重启小时, 0~23
  8334. AV_int32 nAutoRebootMinute; // 自动重启分钟, 0~59
  8335. AV_int32 nAutoShutdownDay; // 自动关机日期
  8336. AV_int32 nAutoShutdownHour; // 自动关机小时
  8337. AV_int32 nAutoShutdownMinute; // 自动关机分钟
  8338. AV_int32 nAutoStartupDay; // 自动启动日期
  8339. AV_int32 nAutoStartupHour; // 自动启动小时
  8340. AV_int32 nAutoStartupMinute; // 自动启动分钟
  8341. AV_BOOL bAutoRebootEnable; // true表示开启自动重启,false表示关闭自动重启
  8342. };
  8343. #define AV_CFG_Monitor_Name_Len 64 // 电视墙名称长度
  8344. #define AV_CFG_Max_TV_In_Block 128 // 区块中TV的最大数量
  8345. #define AV_CFG_Max_Block_In_Wall 128 // 电视墙中区块的最大数量
  8346. // 电视墙输出通道信息
  8347. struct AV_CFG_MonitorWallTVOut
  8348. {
  8349. AV_int32 nStructSize;
  8350. char szDeviceID[AV_CFG_Device_ID_Len]; // 设备ID, 为空或"Local"表示本地设备
  8351. AV_int32 nChannelID; // 通道ID
  8352. char szName[AV_CFG_Channel_Name_Len]; // 屏幕名称
  8353. };
  8354. // 电视墙区块
  8355. struct AV_CFG_MonitorWallBlock
  8356. {
  8357. AV_int32 nStructSize;
  8358. AV_int32 nLine; // 单个TV占的网格行数
  8359. AV_int32 nColumn; // 单个TV占的网格列数
  8360. AV_CFG_Rect stuRect; // 区块的区域坐标
  8361. AV_int32 nTVCount; // TV数量
  8362. AV_CFG_MonitorWallTVOut stuTVs[AV_CFG_Max_TV_In_Block]; // TV数组
  8363. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 开关机时间
  8364. char szName[AV_CFG_Channel_Name_Len]; // 区块名称
  8365. char szCompositeID[AV_CFG_Device_ID_Len]; // 融合屏ID
  8366. char szBlockType[CFG_COMMON_STRING_32]; // 显示单元组类型,为支持由接收卡组成单元的小间距LED区块而增加该字段,其他类型的区块填写为"LCD",如不存在该字段,默认采用LCD
  8367. };
  8368. // 电视墙
  8369. struct AV_CFG_MonitorWall
  8370. {
  8371. AV_int32 nStructSize;
  8372. char szName[AV_CFG_Monitor_Name_Len]; // 名称
  8373. AV_int32 nLine; // 网络行数
  8374. AV_int32 nColumn; // 网格列数
  8375. AV_int32 nBlockCount; // 区块数量
  8376. AV_CFG_MonitorWallBlock stuBlocks[AV_CFG_Max_Block_In_Wall];// 区块数组
  8377. BOOL bDisable; // 是否禁用, 0-该电视墙有效, 1-该电视墙无效
  8378. char szDesc[CFG_COMMON_STRING_256]; // 电视墙描述信息
  8379. };
  8380. // 拼接屏
  8381. struct AV_CFG_SpliceScreen
  8382. {
  8383. AV_int32 nStructSize;
  8384. char szName[AV_CFG_Channel_Name_Len]; // 拼接屏名称
  8385. char szWallName[AV_CFG_Monitor_Name_Len];// 所属电视墙名称
  8386. AV_int32 nBlockID; // 所属区块序号
  8387. AV_CFG_Rect stuRect; // 区域坐标(0~8191)
  8388. };
  8389. // 云台联动类型
  8390. typedef enum tagAV_CFG_PtzLinkType
  8391. {
  8392. AV_CFG_PtzLink_None, // 无联动
  8393. AV_CFG_PtzLink_Preset, // 联动预置点
  8394. AV_CFG_PtzLink_Tour, // 联动巡航
  8395. AV_CFG_PtzLink_Pattern, // 联动轨迹
  8396. } AV_CFG_PtzLinkType;
  8397. // 联动云台信息
  8398. typedef struct tagAV_CFG_PtzLink
  8399. {
  8400. AV_int32 nStructSize;
  8401. AV_CFG_PtzLinkType emType; // 联动类型
  8402. AV_int32 nParam1; // 联动参数1
  8403. AV_int32 nParam2; // 联动参数2
  8404. AV_int32 nParam3; // 联动参数3
  8405. AV_int32 nChannelID; // 所联动云台通道
  8406. } AV_CFG_PtzLink;
  8407. // 坐标点
  8408. typedef struct tagAV_CFG_Point
  8409. {
  8410. AV_int32 nStructSize;
  8411. AV_int32 nX;
  8412. AV_int32 nY;
  8413. } AV_CFG_Point;
  8414. // 宽高
  8415. typedef struct tagAV_CFG_Size
  8416. {
  8417. AV_int32 nStructSize;
  8418. AV_uint32 nWidth;
  8419. AV_uint32 nHeight;
  8420. } AV_CFG_Size;
  8421. // 事件标题内容
  8422. typedef struct tagAV_CFG_EventTitle
  8423. {
  8424. AV_int32 nStructSize;
  8425. char szText[AV_CFG_Channel_Name_Len]; // 标题文本
  8426. AV_CFG_Point stuPoint; // 标题左上角坐标, 采用0-8191相对坐标系
  8427. AV_CFG_Size stuSize; // 标题的宽度和高度,采用0-8191相对坐标系,某项或者两项为0表示按照字体自适应宽高
  8428. AV_CFG_Color stuFrontColor; // 前景颜色
  8429. AV_CFG_Color stuBackColor; // 背景颜色
  8430. } AV_CFG_EventTitle;
  8431. // 轮巡联动配置
  8432. typedef struct tagAV_CFG_TourLink
  8433. {
  8434. AV_int32 nStructSize;
  8435. AV_BOOL bEnable; // 轮巡使能
  8436. CFG_SPLITMODE emSplitMode; // 轮巡时的分割模式
  8437. AV_int32 nChannels[AV_CFG_Max_Channel_Num]; // 轮巡通道号列表
  8438. AV_int32 nChannelCount; // 轮巡通道数量
  8439. } AV_CFG_TourLink;
  8440. // 报警联动
  8441. typedef struct tagAV_CFG_EventHandler
  8442. {
  8443. AV_int32 nStructSize;
  8444. AV_CFG_TimeSection stuTimeSect[AV_CFG_Weekday_Num][AV_CFG_Max_TimeSection]; // 事件响应时间表
  8445. AV_BOOL bRecordEnable; // 录像使能
  8446. AV_uint32 nRecordMask[AV_CFG_Max_Channel_Num]; // 录像通道号列表
  8447. AV_BOOL abRecordLatch; // 能力集, 标识nRecordLatch是否有效
  8448. AV_int32 nRecordLatch; // 录像延时时间(10~300秒)
  8449. AV_BOOL bAlarmOutEn; // 报警输出使能
  8450. AV_uint32 nAlarmOutMask[AV_CFG_Max_Channel_Num]; // 报警输出通道号列表
  8451. AV_BOOL abAlarmOutLatch; // 能力集, 标识nAlarmOutLatch是否有效
  8452. AV_int32 nAlarmOutLatch; // 报警输出延时时间(10~300秒)
  8453. AV_BOOL bExAlarmOutEn; // 扩展报警输出使能
  8454. AV_uint32 nExAlarmOutMask[AV_CFG_Max_Channel_Num]; // 扩展报警输出通道列表
  8455. AV_BOOL bPtzLinkEn; // 云台联动使能
  8456. AV_int32 nPtzLinkNum; // 有效联动项数目
  8457. AV_CFG_PtzLink stuPtzLink[AV_CFG_Max_Channel_Num]; // 云台联动项
  8458. AV_BOOL bSnapshotEn; // 快照使能
  8459. AV_uint32 nSnapshotMask[AV_CFG_Max_Channel_Num]; // 快照通道号列表
  8460. AV_BOOL abSnapshotPeriod; // 能力集, 标识nSnapshotPeriod是否有效
  8461. AV_int32 nSnapshotPeriod; // 帧间隔,每隔多少帧抓一张图片,一定时间内抓拍的张数还与抓图帧率有关。0表示不隔帧,连续抓拍。
  8462. AV_BOOL abSnapshotTimes; // 能力集, nSnapshotTimes有效性
  8463. AV_int32 nSnapshotTimes; // 连拍次数, 在SnapshotEnable为true的情况下,SnapshotTimes为0则表示持续抓拍,直到事件结束。
  8464. AV_BOOL bSnapshotTitleEn; // 是否叠加图片标题
  8465. AV_int32 nSnapTitleNum; // 有效图片标题数目
  8466. AV_CFG_EventTitle stuSnapTitles[AV_CFG_Max_Event_Title_Num]; // 图片标题内容
  8467. AV_BOOL bTipEnable; // 本地消息框提示
  8468. AV_BOOL bMailEnable; // 发送邮件,如果有图片,作为附件
  8469. AV_BOOL bMessageEnable; // 上传到报警服务器
  8470. AV_BOOL bBeepEnable; // 蜂鸣
  8471. AV_BOOL bVoiceEnable; // 语音提示
  8472. AV_BOOL abDejitter; // 能力集, nDejitter有效性
  8473. AV_int32 nDejitter; // 信号去抖动时间,单位为秒,0~100
  8474. AV_BOOL bLogEnable; // 是否记录日志
  8475. AV_BOOL abDelay; // nDelay有效性
  8476. AV_int32 nDelay; // 设置时先延时再生效, 单位为秒
  8477. AV_BOOL bVideoTitleEn; // 是否叠加视频标题,主要指主码流
  8478. AV_int32 nVideoTitleNum; // 有效视频标题数目
  8479. AV_CFG_EventTitle stuVideoTitles[AV_CFG_Max_Event_Title_Num]; // 视频标题内容
  8480. AV_BOOL bMMSEnable; // 发送彩信使能
  8481. AV_int32 nTourNum; // 轮巡联动数目,和视频输出一致
  8482. AV_CFG_TourLink stuTour[AV_CFG_Max_Tour_Link_Num]; // 轮巡联动配置, 每个视频输出对应一个配置
  8483. AV_int32 nDBKeysNum; // 关键字数量
  8484. char szDBKeys[AV_CFG_Max_DBKey_Num][AV_CFG_DBKey_Len]; // 关键字
  8485. AV_BOOL abJpegSummary; // 能力集, 标识byJpegSummary是否有效
  8486. AV_BYTE byJpegSummary[AV_CFG_Max_Summary_Len]; // 叠加到JPEG图片的摘要信息
  8487. } AV_CFG_EventHandler;
  8488. #define AV_CFG_Event_Code_Len 64 // 事件码长度
  8489. // 远程设备事件处理
  8490. struct AV_CFG_RemoteEvent
  8491. {
  8492. AV_int32 nStructSize;
  8493. AV_BOOL bEnable; // 使能
  8494. char szDeviceID[AV_CFG_Device_ID_Len];// 设备ID
  8495. char szCode[AV_CFG_Event_Code_Len]; // 事件码
  8496. AV_int32 nIndex; // 序号
  8497. AV_BOOL abSensorType; // nSensorType是否有效
  8498. AV_uint32 nSensorType; // 传感器类型 常开:1 or 常闭:0
  8499. AV_CFG_EventHandler stuEventHandler; // 报警联动
  8500. };
  8501. // 温度报警配置
  8502. typedef struct tagAV_CFG_TemperatureAlarm
  8503. {
  8504. AV_int32 nStructSize;
  8505. AV_BOOL bEnable; // 报警使能
  8506. char szName[AV_CFG_Device_Name_Len]; // 传感器名称
  8507. AV_float fNormalTempMin; // 正常温度最小值
  8508. AV_float fNormalTempMax; // 正常温度最大值
  8509. AV_CFG_EventHandler stuEventHandler; // 报警联动
  8510. } AV_CFG_TemperatureAlarm;
  8511. // 风扇转速报警配置
  8512. typedef struct tagAV_CFG_FanSpeedAlarm
  8513. {
  8514. AV_int32 nStructSize;
  8515. AV_BOOL bEnable; // 报警使能
  8516. char szName[AV_CFG_Device_Name_Len]; // 传感器名称
  8517. AV_uint32 nNormalSpeedMin; // 正常转速最小值
  8518. AV_uint32 nNormalSpeedMax; // 正常转速最大值
  8519. AV_CFG_EventHandler stuEventHandler; // 报警联动
  8520. } AV_CFG_FanSpeedAlarm;
  8521. // 硬盘流量报警配置
  8522. typedef struct tagCFG_DISK_FLUX_INFO
  8523. {
  8524. BOOL bEnable; // 报警使能
  8525. unsigned int nNormalFluxMin; // 正常流量最小值, 单位KB
  8526. unsigned int nNormalFluxMax; // 正常流量最大值, 单位KB
  8527. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8528. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8529. } CFG_DISK_FLUX_INFO;
  8530. // 网络流量报警配置
  8531. typedef struct tagCFG_NET_FLUX_INFO
  8532. {
  8533. BOOL bEnable; // 报警使能
  8534. unsigned int nNormalFluxMin; // 正常流量最小值, 单位KB
  8535. unsigned int nNormalFluxMax; // 正常流量最大值, 单位KB
  8536. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  8537. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT_EX]; // 事件响应时间段
  8538. } CFG_NET_FLUX_INFO;
  8539. // 服务器
  8540. typedef struct tagCFG_SERVER_INFO
  8541. {
  8542. int nPort; // 服务器端口号
  8543. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  8544. }CFG_SERVER_INFO;
  8545. // 主动注册配置
  8546. typedef struct tagCFG_REGISTER_SERVER_INFO
  8547. {
  8548. BOOL bEnable; // 主动注册使能
  8549. char szDeviceID[MAX_ADDRESS_LEN]; // 设备ID
  8550. int nServersNum; // 服务器个数
  8551. CFG_SERVER_INFO stuServers[MAX_SERVER_NUM]; // 服务器数组
  8552. }CFG_REGISTER_SERVER_INFO;
  8553. // 带宽不足时码流策略
  8554. typedef enum tagSTREAM_POLICY
  8555. {
  8556. STREAM_POLICY_UNKNOWN,
  8557. STREAM_POLICY_NONE = 1, // 无策略,不开启使能"None"
  8558. STREAM_POLICY_QUALITY, // 画质优先"Quality"
  8559. STREAM_POLICY_FLUENCY, // 流畅度优先"Fluency"
  8560. STREAM_POLICY_AUTOADAPT, // 自动"AutoAdapt"
  8561. }EM_STREAM_POLICY;
  8562. // 上传策略
  8563. typedef enum tagEM_CFG_SENDPOLICY
  8564. {
  8565. EM_SNEDPOLICY_UNKNOWN = -1,
  8566. EM_SENDPOLICY_TIMING, // 定时上报
  8567. EM_SENDPOLICY_EVENT, // 事件触发上报
  8568. }EM_CFG_SENDPOLICY;
  8569. // 车载专用主动注册配置
  8570. typedef struct tagCFG_REGISTERSERVER_VEHICLE
  8571. {
  8572. BOOL bEnable; // 主动注册使能
  8573. BOOL bRepeatEnable; // 是否发送相同坐标数据
  8574. char szDeviceID[MAX_ADDRESS_LEN]; // 子设备ID
  8575. int nSendInterval; // 发送间隔, 单位:秒
  8576. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  8577. int nPort; // 端口号
  8578. EM_CFG_SENDPOLICY emSendPolicy; // 上传策略
  8579. char szTestAddress[MAX_ADDRESS_LEN]; // 测试IP地址或网络名
  8580. int nTestPort; // 测试端口号
  8581. BYTE byReserved[1024]; // 保留字节
  8582. }CFG_REGISTERSERVER_VEHICLE;
  8583. // 网络协议配置
  8584. typedef struct tagCFG_DVRIP_INFO
  8585. {
  8586. int nTcpPort; // TCP服务端口,1025~65535
  8587. int nSSLPort; // SSL服务端口,1025~65535
  8588. int nUDPPort; // UDP服务端口,1025~65535
  8589. int nMaxConnections; // 最大连接数
  8590. BOOL bMCASTEnable; // 组播使能
  8591. int nMCASTPort; // 组播端口号
  8592. char szMCASTAddress[MAX_ADDRESS_LEN]; // 组播地址
  8593. int nRegistersNum; // 主动注册配置个数
  8594. CFG_REGISTER_SERVER_INFO stuRegisters[MAX_REGISTER_NUM];// 主动注册配置
  8595. EM_STREAM_POLICY emStreamPolicy; // 带宽不足时码流策略
  8596. CFG_REGISTERSERVER_VEHICLE stuRegisterServerVehicle; // 车载专用主动注册配置
  8597. }CFG_DVRIP_INFO;
  8598. // AIO IP 配置
  8599. typedef struct tagCFG_AIO_APP_CONFIG_INFO
  8600. {
  8601. char szAddress[MAX_IP_ADDR_LEN]; // 发布平台的的ip地址
  8602. }CFG_AIO_APP_CONFIG_INFO;
  8603. // 假期录像计划
  8604. typedef struct tagCFG_HOLIDAY_SCHEDULE
  8605. {
  8606. BOOL bEnable;
  8607. int nChannel;
  8608. DWORD dwMonthSchedule[MONTH_OF_YEAR]; // 每个月的假期安排, 每个元素表示一个月,
  8609. // 掩码从低到高依次表示每月1-28/29/30/31号是否为假期
  8610. // 0:不是假期, 1:是假期
  8611. CFG_TIME_SECTION stuTimeSection[MAX_REC_TSECT]; // 录像时间表
  8612. } CFG_HOLIDAY_SCHEDULE;
  8613. // 录像下载速度配置
  8614. typedef struct tagCFG_RecordDownloadSpeed
  8615. {
  8616. DWORD nStructSize; // 结构体大小
  8617. UINT nMaxDownloadSpeedNum; // 录像下载速度值大小,用户填写
  8618. UINT *pDownloadSpeedValue; // 录像下载速度值有效范围(内存由用户分配)建议指向内存值1024*sizeof(UINT) 单位KB/S
  8619. UINT nDownloadSpeedNum; // 返回的录像下载速度值个数(应该 <= nMaxDownloadSpeedNum)
  8620. } CFG_RecordDownloadSpeed;
  8621. // 录像回传配置
  8622. typedef struct tagAV_CFG_RecordBackup
  8623. {
  8624. AV_int32 nStructSize;
  8625. AV_uint32 nBitrateLimit; // 最大流量配置, 单位Kbps
  8626. AV_CFG_RemoteDevice *pstuDevices; // 备份设备数组, 用户分配内存,大小为sizeof(AV_CFG_RemoteDevice)*nMaxDeviceCount
  8627. int nMaxDeviceCount; // 备份设置数组大小, 用户填写
  8628. int nRetDeviceCount; // 返回的设备数量
  8629. } AV_CFG_RecordBackup;
  8630. typedef struct tagALARM_EVENT_INFO
  8631. {
  8632. DWORD dwEventType; // 事件类型,详见dhnetsdk.h中"智能分析事件类型"
  8633. int nEventSize; // 该事件类型规则配置结构体大小
  8634. } ALARM_EVENT__INFO;
  8635. // 每个视频输入通道对应的所有事件:缓冲区pEventBuf填充多个事件信息,每个事件规则信息内容为ALARM_EVENT_INFO+"事件类型对应的规则配置结构体"。
  8636. typedef struct tagALARM_ANALYSEEVENTS_INFO
  8637. {
  8638. int nEventCount; // 事件个数
  8639. char* pEventBuf; // 每个视频输入通道对应的视频分析事件缓冲
  8640. int nEventBufLen; // 缓冲大小
  8641. } ALARM_ANALYSEEVENTS_INFO;
  8642. // 串口信息
  8643. typedef struct tagCFG_COMM_INFO
  8644. {
  8645. char szProtocolName[MAX_PROTOCOL_NAME_LEN]; // 串口协议
  8646. CFG_COMM_PROP stuAttribute; // 串口属性
  8647. int nAddress; // 设备地址
  8648. } CFG_COMM_INFO;
  8649. // 串口配置
  8650. typedef struct tagCFG_COMMGROUP_INFO
  8651. {
  8652. int nCommNum; // 串口数量
  8653. CFG_COMM_INFO stuComms[MAX_COMM_NUM]; // 串口数组
  8654. } CFG_COMMGROUP_INFO;
  8655. // 网络传输模式
  8656. typedef enum tagCFG_ENUM_NET_TRANSMISSION_MODE
  8657. {
  8658. CFG_ENUM_NET_MODE_ADAPT, // 自适应
  8659. CFG_ENUM_NET_MODE_HALF10M, // 10M半双工
  8660. CFG_ENUM_NET_MODE_FULL10M, // 10M全双工
  8661. CFG_ENUM_NET_MODE_HALF100M, // 100M半双工
  8662. CFG_ENUM_NET_MODE_FULL100M, // 100M全双工
  8663. }CFG_ENUM_NET_TRANSMISSION_MODE;
  8664. // 网口类型
  8665. typedef enum tagCFG_ENUM_NET_INTERFACE_TYPE
  8666. {
  8667. CFG_ENUM_NET_INTERFACE_TYPE_UNKNOWN, // 未知
  8668. CFG_ENUM_NET_INTERFACE_TYPE_STANDARD, // 标准网口
  8669. CFG_ENUM_NET_INTERFACE_TYPE_MANAGER, // 管理网口
  8670. CFG_ENUM_NET_INTERFACE_TYPE_EXTEND, // 扩展网口
  8671. }CFG_ENUM_NET_INTERFACE_TYPE;
  8672. //三态布尔类型
  8673. typedef enum tagCFG_THREE_STATUS_BOOL
  8674. {
  8675. CFG_BOOL_STATUS_UNKNOWN = -1, //未知
  8676. CFG_BOOL_STATUS_FALSE = 0 ,
  8677. CFG_BOOL_STATUS_TRUE = 1 ,
  8678. }CFG_THREE_STATUS_BOOL;
  8679. // 网络接口
  8680. typedef struct tagCFG_NETWORK_INTERFACE
  8681. {
  8682. char szName[MAX_NAME_LEN]; // 网络接口名称
  8683. char szIP[MAX_ADDRESS_LEN]; // ip地址
  8684. char szSubnetMask[MAX_ADDRESS_LEN]; // 子网掩码
  8685. char szDefGateway[MAX_ADDRESS_LEN]; // 默认网关
  8686. BOOL bDhcpEnable; // 是否开启DHCP
  8687. BOOL bDnsAutoGet; // DNS获取方式,dhcp使能时可以设置为true,支持通过dhcp获取
  8688. char szDnsServers[MAX_DNS_SERVER_NUM][MAX_ADDRESS_LEN]; // DNS服务器地址
  8689. int nMTU; // 网络最大传输单元
  8690. char szMacAddress[MAX_ADDRESS_LEN]; // mac地址
  8691. BOOL bInterfaceEnable; // 网络接口使能开关,表示该网口配置是否生效。不生效时,IP地址不设置到网卡上。
  8692. BOOL bReservedIPEnable; // DHCP失败时是否使用保留IP,使用保留IP时还继续发DHCP请求
  8693. CFG_ENUM_NET_TRANSMISSION_MODE emNetTranmissionMode;// 网络传输模式,默认adapt自适应模式
  8694. CFG_ENUM_NET_INTERFACE_TYPE emInterfaceType; // 网口类型
  8695. CFG_THREE_STATUS_BOOL bBond; // 是否绑定虚拟网口
  8696. } CFG_NETWORK_INTERFACE;
  8697. // 网络接口配置
  8698. typedef struct tagCFG_NETWORK_INFO
  8699. {
  8700. char szHostName[MAX_NAME_LEN]; // 主机名称
  8701. char szDomain[MAX_NAME_LEN]; // 所属域
  8702. char szDefInterface[MAX_NAME_LEN]; // 默认使用的网卡
  8703. int nInterfaceNum; // 网卡数量
  8704. CFG_NETWORK_INTERFACE stuInterfaces[MAX_NETWORK_INTERFACE_NUM]; // 网卡列表
  8705. } CFG_NETWORK_INFO;
  8706. // 云存储协议类型
  8707. typedef enum tagEM_CFG_NAS_CLOUDPROTOCOL_TYPE
  8708. {
  8709. EM_CFG_NAS_CLOUDPROTOCOL_TYPE_UNKNOWN, // 未知
  8710. EM_CFG_NAS_CLOUDPROTOCOL_TYPE_BAIDU_CLOUD, // "BaiduCloud"
  8711. EM_CFG_NAS_CLOUDPROTOCOL_TYPE_GOOGLE_DRIVE, // "GoogleDrive"
  8712. EM_CFG_NAS_CLOUDPROTOCOL_TYPE_DROPBOX, // "Dropbox"
  8713. }EM_CFG_NAS_CLOUDPROTOCOL_TYPE;
  8714. // 网络存储配置
  8715. typedef struct tagCFG_NAS_INFO_NEW
  8716. {
  8717. BOOL bEnable; // 使能
  8718. char szName[MAX_NAME_LEN]; // 名称
  8719. int nPortocol; // 协议类型, 0-FTP, 1-SMB, 2-ISCSI, 3-NFS, 4-Cloud ,协议类型是 4-Cloud时,具体云协议定义见 emCloudProtocol
  8720. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网址
  8721. int nPort; // 端口
  8722. char szUser[MAX_USERNAME_LEN]; // 用户名
  8723. char szPassword[MAX_PASSWORD_LEN]; // 密码
  8724. char szDirectory[MAX_NAME_LEN]; // 共享的目录名
  8725. int nCharEncoding; // 字符编码格式, 0-UTF8, 1-GB2312
  8726. int nTimeOut; // 超时时间, 单位毫秒
  8727. unsigned int nStreamID; // 数据流ID
  8728. CFG_NET_TIME_EX stuUpdateTime; // 更新时间, 该字段值变化后,需要重新初始化iSCSI功能
  8729. EM_CFG_NAS_CLOUDPROTOCOL_TYPE emCloudProtocol; // 云存储协议类型
  8730. char szSubDirectory[CFG_COMMON_STRING_256]; // 客户端设备在服务器上的存储子目录,可以是IP地址,设备序列号,设备机器号,为空使用设备机器号
  8731. } CFG_NAS_INFO_NEW;
  8732. // 网络存储服务器配置, 包含多个服务器
  8733. typedef struct tagCFG_NAS_GROUP_INFO
  8734. {
  8735. int nNasNum; // 存储服务器数量
  8736. CFG_NAS_INFO_NEW stuNasInfo[MAX_NAS_NUM]; // 存储服务器数组
  8737. } CFG_NAS_GROUP_INFO;
  8738. // 网络存储服务器配置
  8739. typedef struct tagCFG_NAS_INFO_EX
  8740. {
  8741. int nVersion; // 0, 1, 由能力集确定, 只读
  8742. CFG_NAS_INFO stuNasOld; // nVersion == 0时有效, 仅支持单服务器
  8743. CFG_NAS_GROUP_INFO stuNasGroup; // nVersion == 1时有效, 支持多个服务器
  8744. } CFG_NAS_INFO_EX;
  8745. // 输入信号类型
  8746. typedef enum _EM_CFG_VIDEO_SIGNAL_TYPE
  8747. {
  8748. EM_CFG_VIDEO_SIGNAL_UNKNOWN,
  8749. EM_CFG_VIDEO_SIGNAL_CVBS,
  8750. EM_CFG_VIDEO_SIGNAL_SDI,
  8751. EM_CFG_VIDEO_SIGNAL_VGA,
  8752. EM_CFG_VIDEO_SIGNAL_DVI,
  8753. EM_CFG_VIDEO_SIGNAL_HDMI,
  8754. EM_CFG_VIDEO_SIGNAL_YPBPR,
  8755. EM_CFG_VIDEO_SIGNAL_SFP,
  8756. EM_CFG_VIDEO_SIGNAL_HDCVI,
  8757. EM_CFG_VIDEO_SIGNAL_DUALLINK,
  8758. EM_CFG_VIDEO_SIGNAL_AHD,
  8759. EM_CFG_VIDEO_SIGNAL_AUTO,
  8760. EM_CFG_VIDEO_SIGNAL_TVI,
  8761. } EM_CFG_VIDEO_SIGNAL_TYPE;
  8762. enum EM_CFG_VIDEO_LINE_TYPE
  8763. {
  8764. EM_CFG_VIDEO_LINE_TYPE_UNKNOWN,
  8765. EM_CFG_VIDEO_LINE_TYPE_COAXIAL, //同轴线
  8766. EM_CFG_VIDEO_LINE_TYPE_TP10, //10欧姆阻抗双绞线
  8767. EM_CFG_VIDEO_LINE_TYPE_TP17, //17欧姆阻抗双绞线
  8768. EM_CFG_VIDEO_LINE_TYPE_TP25, //25欧姆阻抗双绞线
  8769. EM_CFG_VIDEO_LINE_TYPE_TP35, //35欧姆阻抗双绞线
  8770. };
  8771. // 输入通道基本配置
  8772. typedef struct tagCFG_VIDEO_IN_INFO
  8773. {
  8774. char szDevType[MAX_NAME_LEN]; // 通道类型(指通道连接的设备类型)
  8775. char szDevID[MAX_NAME_LEN]; // 摄像头唯一编号
  8776. char szChnName[MAX_NAME_LEN]; // 通道名称
  8777. char szManufacturer[MAX_NAME_LEN]; // 厂商
  8778. char szModel[MAX_NAME_LEN]; // 设备型号
  8779. char szAddress[MAX_ADDRESS_LEN]; // 安装地址
  8780. char szCivilCode[MAX_NAME_LEN]; // 行政区域
  8781. char szOwner[MAX_NAME_LEN]; // 设备归属
  8782. BOOL bParental; // 是否有子设备
  8783. BOOL bEnable; // 通道使能
  8784. int nRegisterWay; // 注册方式
  8785. // 0-符合sip3261标准的认证注册模式
  8786. // 1-基于口令的双向认证注册模式
  8787. // 2-基于数字证书的双向认证注册模式
  8788. BOOL bSecrecy; // 保密属性, FALSE不涉密, TRUE涉密
  8789. char szUpperDevID[MAX_NAME_LEN]; // 上级连接设备设备ID
  8790. int nUpperDevOutChn; // 上级连接设备输出通道号
  8791. char szRemoteName[MAX_NAME_LEN]; // 远程通道名称
  8792. EM_CFG_VIDEO_SIGNAL_TYPE emSignalType; // 输入信号类型
  8793. EM_CFG_VIDEO_LINE_TYPE emLineType; // 通道接入线缆的类型
  8794. } CFG_VIDEO_IN_INFO;
  8795. // 刻录光盘编码计划(对应命令 CFG_CMD_ENCODEPLAN),每个通道(包括画中画通道)一个配置结构体
  8796. typedef struct tagCFG_ENCODE_PLAN_INFO
  8797. {
  8798. BOOL bEnable; // 通道是否需要配置,FALSE:没有此通道,TRUE:此通道可用
  8799. unsigned int nExpectTime; // 业务预期时长 整型,单位:分钟
  8800. CFG_CAPTURE_SIZE emResolution; // 视频分辨率
  8801. unsigned int nBitRate; // 视频固定码流值(kbps)
  8802. }CFG_ENCODE_PLAN_INFO;
  8803. //////////////////////////////////////////////////////////////////////////
  8804. // 司法审讯画中画需求
  8805. // 小画面窗口信息
  8806. typedef struct tagCFG_SMALLPIC_INFO
  8807. {
  8808. char szDeviceID[AV_CFG_Device_ID_Len];// 设备ID
  8809. int nChannelID; // 通道号(0开始)
  8810. BOOL bAudio; // 大画面是否混合小画面音频
  8811. CFG_RECT stuPosition; // 使用相对坐标体系,取值均为0-8192,在整个屏幕上的位置
  8812. }CFG_SMALLPIC_INFO;
  8813. // 分割通道
  8814. typedef struct tagCFG_SPLIT_CHANNEL_INFO
  8815. {
  8816. BOOL bEnable; // 使能
  8817. char szDeviceID[AV_CFG_Device_ID_Len];// 设备ID
  8818. int nChannelID; // 通道号(0开始)
  8819. unsigned int nMaxSmallChannels; // 小画面通道个数,每个通道一个CFG_SMALLPIC_INFO,这里最大应该是设备通道数减一
  8820. unsigned int nReturnSmallChannels; // 解析返回的或封装发送的小画面通道个数
  8821. CFG_SMALLPIC_INFO *pPicInfo; // 小画面信息
  8822. }CFG_SPLIT_CHANNEL_INFO;
  8823. // 分割方案
  8824. typedef struct tagCFG_SPLIT_INFO
  8825. {
  8826. CFG_SPLITMODE emSplitMode; // 分割模式,通过CLIENT_GetSplitCaps接口获取,见emSplitMode
  8827. unsigned int nMaxChannels; // 申请内存CFG_SPLIT_CHANNEL_INFO个数,比如有16个通道,nMaxChannels就是16,SPLITMODE_4模式,则按顺序依次分为4组
  8828. unsigned int nReturnChannels; // 解析返回通道个数,要封装发送的通道个数
  8829. CFG_SPLIT_CHANNEL_INFO* pSplitChannels; // 分割通道信息
  8830. }CFG_SPLIT_INFO;
  8831. // 画中画方案
  8832. typedef struct tagCFG_PICINPIC_INFO
  8833. {
  8834. unsigned int nMaxSplit; // 内存申请的CFG_SPLIT_INFO个数,最大值通过CLIENT_GetSplitCaps接口获取,见nModeCount
  8835. unsigned int nReturnSplit; // 解析得到实际使用的或封装发送的CFG_SPLIT_INFO个数
  8836. CFG_SPLIT_INFO *pSplits; // 分割方案
  8837. }CFG_PICINPIC_INFO;
  8838. // 模拟矩阵外部输入源
  8839. typedef struct tagCFG_ANALOG_MATRIX_INPUT_CHN_SRC
  8840. {
  8841. char szName[MAX_NAME_LEN]; // 输入通道名称
  8842. char szControlID[MAX_NAME_LEN]; // 控制编号
  8843. BOOL bActive; // 是否激活启动
  8844. int nFormat; // 类型, 0-VGA
  8845. } CFG_ANALOG_MATRIX_INPUT_CHN_SRC;
  8846. // 串口
  8847. typedef struct tagCFG_COM_PORT
  8848. {
  8849. int nPortIndex; // 串口索引号
  8850. int nAddress; // 设备地址
  8851. CFG_COMM_PROP stComProp; // 串口属性
  8852. } CFG_COM_PORT;
  8853. // 模拟矩阵
  8854. typedef struct tagCFG_ANALOG_MATRIX_INFO
  8855. {
  8856. char szDevID[MAX_NAME_LEN]; // 设备ID
  8857. char szName[MAX_NAME_LEN]; // 设备名称
  8858. char szModel[MAX_MODEL_LEN]; // 型号
  8859. char szUserName[MAX_USERNAME_LEN]; // 用户名
  8860. char szPassword[MAX_PASSWORD_LEN]; // 密码
  8861. int nChnInCount; // 输入通道数量
  8862. int nChnOutCount; // 输出通道数量
  8863. CFG_ANALOG_MATRIX_INPUT_CHN_SRC* pstuChnInSrc; // 外部输入源数组, 用户分配内存
  8864. int nChnInSrcCount; // 外部输入源数组大小
  8865. int nRetChnInSrcCount; // 实际返回的外部输入源数量, 一般同nChnInCount
  8866. CFG_COM_PORT stComPort; // 关联串口
  8867. char szProtocol[MAX_NAME_LEN]; // 协议名称
  8868. } CFG_ANALOG_MATRIX_INFO;
  8869. // 模拟矩阵协议配置
  8870. typedef struct tagCFG_ANALOG_MATRIX_PROTOCOL
  8871. {
  8872. char szName[MAX_NAME_LEN]; // 协议名称
  8873. char szProtocolRule[MAX_NAME_LEN]; // 协议内容, 规则:%A-地址码,%I-输入端口号,%O-输出端口号
  8874. } CFG_ANALOG_MATRIX_PROTOCOL;
  8875. // 视频输出标题
  8876. typedef struct tagCFG_VIDEO_OUT_TITLE
  8877. {
  8878. char szName[MAX_NAME_LEN]; // 通道名称
  8879. } CFG_VIDEO_OUT_TITLE;
  8880. // 显示源
  8881. typedef struct tagCFG_DISPLAY_SOURCE
  8882. {
  8883. BOOL bEnable; // 是否使能
  8884. char szDeviceID[MAX_NAME_LEN]; // 设备ID
  8885. char szControlID[MAX_NAME_LEN]; // 控制ID
  8886. int nVideoChannel; // 视频通道号
  8887. int nVideoStream; // 视频码流, -1-自动, 0-主码流, 1-辅码流1, 2-辅码流2, 3-辅码流3, 5-预览码流
  8888. int nAudioChannel; // 音频通道号
  8889. int nAudioStream; // 音频码流, -1-自动, 0-主码流, 1-辅码流1, 2-辅码流2, 3-辅码流3, 5-预览码流
  8890. BOOL abDeviceInfo; // 设备信息是否有效
  8891. AV_CFG_RemoteDevice stuDeviceInfo; // 设备信息
  8892. } CFG_DISPLAY_SOURCE;
  8893. // 窗口位置
  8894. typedef struct tagCFG_SPLIT_WINDOW_POSITION
  8895. {
  8896. CFG_RECT stuRect; // 窗口区域
  8897. BOOL bDirectable; // 是否满足直通条件, 直通是指拼接屏方式下,此窗口区域正好为物理屏区域
  8898. int nZorder; // Z次序
  8899. } CFG_SPLIT_WINDOW_POSITION;
  8900. // 拼接屏窗口信息
  8901. typedef struct tagCFG_SPLIT_WINDOW
  8902. {
  8903. BOOL bEnable; // 窗口是否有视频源, 为FALSE时表示没有视频,也不用处理Source内容
  8904. int nWindowID; // 窗口ID
  8905. char szControlID[MAX_NAME_LEN]; // 控制ID
  8906. CFG_SPLIT_WINDOW_POSITION stuPosition; // 窗口位置
  8907. CFG_DISPLAY_SOURCE stuSource; // 视频源
  8908. } CFG_SPLIT_WINDOW;
  8909. // 拼接屏场景
  8910. typedef struct tagCFG_BLOCK_COLLECTION
  8911. {
  8912. char szBlockID[MAX_NAME_LEN]; // 拼接屏ID
  8913. char szControlID[MAX_NAME_LEN]; // 控制ID
  8914. CFG_SPLITMODE emSplitMode; // 分割模式
  8915. CFG_SPLIT_WINDOW* pstuWnds; // 窗口信息数组, 用户分配内存,大小为sizeof(CFG_SPLIT_WINDOW)*nMaxWndCount
  8916. int nMaxWndCount; // 窗口信息数组大小, 用户填写
  8917. int nRetWndCount; // 返回的窗口数量
  8918. } CFG_BLOCK_COLLECTION;
  8919. // 电视墙中的某个预案配置
  8920. typedef struct tagCFG_MONITORWALL_COLLECTION_SINGLE
  8921. {
  8922. char szName[MAX_NAME_LEN]; // 名称
  8923. char szControlID[MAX_NAME_LEN]; // 控制ID
  8924. AV_CFG_MonitorWall stuMonitorWall; // 电视墙配置
  8925. CFG_BLOCK_COLLECTION* pstuBlockCollections; // 拼接屏场景信息数组, 用户分配内存,大小为sizeof(CFG_BLOCK_COLLECTION)*nMaxBlockCollectionCount
  8926. int nMaxBlockCollectionCount; // 拼接屏场景数组大小, 用户填写
  8927. int nRetBlockCollectionCount; // 返回的拼接屏场景数量
  8928. } CFG_MONITORWALL_COLLECTION_SINGLE;
  8929. // 电视墙预案列表, 表示某个电视墙对应的多个预案
  8930. typedef struct tagCFG_MONITORWALL_COLLECTION_LIST
  8931. {
  8932. CFG_MONITORWALL_COLLECTION_SINGLE* pstuCollections; // 预案数组, 用户分配内存,大小为sizeof(CFG_MONITORWALL_COLLECTION_SINGLE)*nMaxCollectionCount
  8933. int nMaxCollectionCount; // 预案数组大小, 用户填写
  8934. int nRetCollectionCount; // 返回的预案数量
  8935. } CFG_MONITORWALL_COLLECTION;
  8936. // 视频输入边界配置
  8937. typedef struct tagCFG_VIDEO_IN_BOUNDARY
  8938. {
  8939. CFG_RECT stuBoundary; // 边界
  8940. } CFG_VIDEO_IN_BOUNDARY;
  8941. // 和相机对接的区域屏配置,是数组,元素最大值是DH_PRODUCTION_DEFNITION.nMaxParkingSpaceScreen)
  8942. typedef struct tagCFG_PARKINGSPACE_SCREEN_INFO
  8943. {
  8944. char szAddress[MAX_PATH]; // 区域屏地址或域名
  8945. int nPort; // 区域屏端口
  8946. char szAuthorization[MAX_PATH]; // 权限字
  8947. char szDeviceNo[MAX_PATH]; // 设备序号
  8948. BOOL bEnable; // 屏配置是否启用
  8949. } CFG_PARKINGSPACE_SCREEN_INFO;
  8950. // 车位设置(专有车位和普通车位设置),是数组,元素最大值是DH_PRODUCTION_DEFNITION.nMaxRoadWays)
  8951. typedef struct tagCFG_PARKINGSPACE_STATUS_INFO
  8952. {
  8953. int nLaneID; // 车位号
  8954. int nLaneType; // 0:普通车位 1:专有车位
  8955. } CFG_PARKINGSPACE_STATUS_INFO;
  8956. #define CFG_MAX_BINARY_NUM 128 // 自定义数据最大个数
  8957. // 平台自定义信息
  8958. typedef struct tagCFG_CLIENT_CUSTOM_INFO
  8959. {
  8960. char szDescription[MAX_PATH]; // 描述信息,不同平台自定义描述信息,目前支持"LiFang"
  8961. char* pData; // 自定义数据缓冲, 数据中间不能存在二进制的0, 也就是字符'\0'
  8962. int nDataLen; // 用户申请的长度, 不同平台自己确定
  8963. bool abBinary; // false表示pData和nDataLen有效, 而nBinaryNum和dwBinary无效
  8964. // true表示pData和nDataLen无效, 而nBinaryNum和dwBinary有效
  8965. BYTE byReserved[3];
  8966. int nBinaryNum; // dwBinary数组有效成员个数
  8967. DWORD dwBinary[CFG_MAX_BINARY_NUM]; // 自定义数据
  8968. } CFG_CLIENT_CUSTOM_INFO;
  8969. // 刻录格式配置,兼容性考虑:无此配置时默认DHAV格式
  8970. typedef struct tagCFG_BURN_RECORD_FORMAT
  8971. {
  8972. char szRecordPack[MAX_PATH]; // 码流打包模式:目前支持"DHAV","PS"
  8973. }CFG_BURN_RECORD_FORMAT;
  8974. // 多光盘同步刻录(对应 CFG_MULTIBURN_INFO) 是一个数组,每一个元素表示一组多光盘同步刻录及校验
  8975. typedef struct tagCFG_MULTIBURN_INFO
  8976. {
  8977. BOOL bEnable; // 此配置使能开关
  8978. BOOL bDataCheck; // 多光盘一致性校验使能
  8979. char szDataCheckSpeed[MAX_PATH]; // 校验速度 "High":高速(头尾数据校验),"Normal":正常(随机数据校验),"Low":低速 (全盘数据校验)
  8980. }CFG_MULTIBURN_INFO;
  8981. // 单个网络存储服务器限制配置
  8982. typedef struct tagCFG_REMOTE_STORAGE_LIMIT
  8983. {
  8984. char szName[MAX_NAME_LEN]; // 名称
  8985. int nFileLen; // 文件长度 单位,MB
  8986. int nInterval; // 相邻文件时间间隔 单位,秒
  8987. CFG_CHANNEL_TIME_SECTION *pstuChnTime; // 存储时间段数组,用户分配内存,大小为sizeof(CFG_CHANNEL_TIME_SECTION)*nMaxChnCount
  8988. int nMaxChnCount; // 最大通道数,用户填写
  8989. int nRetChnCount; // 返回的通道数,保存设置时的有效通道数
  8990. }CFG_REMOTE_STORAGE_LIMIT;
  8991. // 网络存储服务器限制配置
  8992. typedef struct tagCFG_REMOTE_STORAGELIMIT_GROUP
  8993. {
  8994. CFG_REMOTE_STORAGE_LIMIT stuRemoteStorageLimit[MAX_NAS_NUM]; // 网络存储服务器配置数组
  8995. int nLimitCount; // 有效的网络服务器数
  8996. }CFG_REMOTE_STORAGELIMIT_GROUP;
  8997. // 获取刻录管理能力集
  8998. typedef struct tagCFG_CAP_BURN_MANAGER
  8999. {
  9000. BOOL bSupportMultiBurn; // 是否支持多光盘同步刻录
  9001. int nMultiBurnGroups; // 支持几组同步刻录
  9002. }CFG_CAP_BURN_MANAGER;
  9003. // 录像能力信息
  9004. typedef struct tagCFG_CAP_RECORD_INFO
  9005. {
  9006. BOOL bSupportHoliday; //录像计划是否支持假日功能
  9007. BOOL bSupportExtraRecordMode; //是否支持设置辅码流录像模式
  9008. DWORD dwMaxPreRecordTime; //最大预录时间
  9009. DWORD dwMaxRemoteBitrate; //最大接入总码流,单位kbps
  9010. DWORD dwMaxRemoteRawBitrate; //最大接入祼码流(包括路数、分辨率、帧率,色深按16bpp计算)
  9011. DWORD dwMaxStreams; //最大录像码流个数
  9012. } CFG_CAP_RECORD_INFO;
  9013. //-------------------------------编码加密---------------------------------
  9014. typedef enum tagCFG_ENCRYPT_ALGO_TYPE
  9015. {
  9016. ALGO_TYPE_AES ,
  9017. ALGO_TYPE_UNKNOW ,
  9018. }CFG_ENCRYPT_ALGO_TYPE;
  9019. // 码流加密算法工作模式
  9020. typedef enum tagCFG_ENCRYPT_ALGO_WORKMODE
  9021. {
  9022. ENCRYPT_ALGO_WORKMODE_ECB, // ECB模式
  9023. ENCRYPT_ALGO_WORKMODE_CBC, // CBC模式
  9024. ENCRYPT_ALGO_WORKMODE_CFB, // CFB模式
  9025. ENCRYPT_ALGO_WORKMODE_OFB, // OFB模式
  9026. ENCRYPT_ALGO_WORKMODE_UNKNOW ,
  9027. }CFG_ENCRYPT_ALGO_WORKMODE;
  9028. typedef union tagCFG_ENCRYPT_KEY_INFO
  9029. {
  9030. BYTE byAesKey[AES_KEY_LEN]; // aes密钥
  9031. }CFG_ENCRYPT_KEY_INFO;
  9032. //码流加密配置信息
  9033. typedef struct tagCFG_STREAM_ENCRYPT_INFO
  9034. {
  9035. BOOL bEncryptEnable; // 是否加密
  9036. CFG_ENCRYPT_ALGO_TYPE emEncrptAlgoType; // 加密算法类型: 参见枚举类型CFG_ENCRYPT_ALGO_TYPE
  9037. CFG_ENCRYPT_ALGO_WORKMODE emAlgoWorkMode; // 工作模式,参考枚举类型 CFG_ENCRYPT_ALGO_WORKMODE
  9038. WORD wEncryptLenth; // 密钥长度,当前为AES算法类型时,表示密钥位数(目前支持128,192,256位三种, 如: wEncryptLenth为128,则密钥信息ENCRYPT_KEY_INFO里的byAesKey[0]~[15])
  9039. CFG_ENCRYPT_KEY_INFO stuEncryptKeys; // 通道的密钥信息
  9040. CFG_NET_TIME stuPreTime; // 加密计划的开始时间
  9041. }CFG_STREAM_ENCRYPT_INFO;
  9042. //码流加密配置通道信息
  9043. typedef struct tagCFG_ENCODE_ENCRYPT_CHN_INFO
  9044. {
  9045. int nChannelID; // 通道号(0开始)
  9046. CFG_STREAM_ENCRYPT_INFO *pstEncodeEncryptInfo; // 每个通道的配置列表,用户需配置
  9047. // 申请内存大小为sizeof(CFG_STREAM_ENCRYPT_INFO)*nMaxEncryptInputs
  9048. BYTE nMaxEncryptInputs;
  9049. BYTE nRetEncryptOutputs; // 解析出CFG_STREAM_ENCRYPT的个数
  9050. }CFG_ENCODE_ENCRYPT_CHN_INFO;
  9051. //编码自适应策略类型
  9052. typedef enum tagCFG_ENCRYPT_POLICY_TYPE
  9053. {
  9054. ENCRYPT_POLICY_UNKNOWN , //未知
  9055. ENCRYPT_POLICY_NONE , //无策略,不开启自适应功能
  9056. ENCRYPT_POLICY_QUALITY , //画质优先,优先保证分辨率,降低帧率
  9057. ENCRYPT_POLICY_FLUENCY , //流畅优先,优先保证流畅性,降低分辨率
  9058. }CFG_ENCRYPT_POLICY_TYPE;
  9059. //编码流畅优先策略
  9060. typedef enum tagCFG_ENCRYPT_FLUENCY_MODE
  9061. {
  9062. ENCRYPT_FLUENCY_UNKNOWN , //未知
  9063. ENCRYPT_FLUENCY_FAST , //快恢复(网速变好时,立即恢复)
  9064. ENCRYPT_FLUENCY_SLOW , //慢恢复(同一时间只能有一个通道恢复)
  9065. ENCRYPT_FLUENCY_SYNC , //同步恢复(如果有通道下降,则其它通道不恢复)
  9066. ENCRYPT_FLUENCY_SLOWSYNC , //慢同步恢复(结合慢恢复和同步恢复)
  9067. }CFG_ENCRYPT_FLUENCY_MODE;
  9068. //编码自适应配置
  9069. typedef struct tagCFG_ENCODE_ADAPT_INFO
  9070. {
  9071. CFG_ENCRYPT_POLICY_TYPE emPolicyType; //自适应策略类型
  9072. CFG_ENCRYPT_FLUENCY_MODE emFluencyMode; //流畅优先策略
  9073. }CFG_ENCODE_ADAPT_INFO;
  9074. // 变倍设置基本信息单元
  9075. typedef struct tagCFG_VIDEO_IN_ZOOM_UNIT
  9076. {
  9077. int nSpeed; //变倍速率(0~7)
  9078. BOOL bDigitalZoom; //是否数字变倍
  9079. int nZoomLimit; //当前速率下最大变倍上限(0~13)。
  9080. } CFG_VIDEO_IN_ZOOM_UNIT;
  9081. // 单通道变倍设置基本信息
  9082. typedef struct tagCFG_VIDEO_IN_ZOOM
  9083. {
  9084. int nChannelIndex; //通道号
  9085. int nVideoInZoomRealNum; //配置使用个数
  9086. CFG_VIDEO_IN_ZOOM_UNIT stVideoInZoomUnit[MAX_VIDEO_IN_ZOOM]; //通道变速配置单元信息
  9087. } CFG_VIDEO_IN_ZOOM;
  9088. // 抓图配置
  9089. typedef struct tagCFG_SNAP_INFO
  9090. {
  9091. CFG_TIME_SCHEDULE stuTimeSchedule; // 时间表, 每个时间段掩码按位定义如下:
  9092. // Bit0-定时抓图
  9093. // Bit1-动态检测抓图
  9094. // Bit2-报警抓图
  9095. // Bit3-卡号抓图
  9096. // Bit4~Bit31-保留
  9097. } CFG_SNAP_INFO;
  9098. //云台转动角度范围,单位:度
  9099. typedef struct tagCFG_PTZ_MOTION_RANGE
  9100. {
  9101. int nHorizontalAngleMin; // 水平角度范围最小值,单位:度
  9102. int nHorizontalAngleMax; // 水平角度范围最大值,单位:度
  9103. int nVerticalAngleMin; // 垂直角度范围最小值,单位:度
  9104. int nVerticalAngleMax; // 垂直角度范围最大值,单位:度
  9105. }CFG_PTZ_MOTION_RANGE;
  9106. //支持的焦距模式对应枚举
  9107. typedef enum tagSUPPORT_FOCUS_MODE
  9108. {
  9109. ENUM_SUPPORT_FOCUS_CAR = 1, // 看清车模式
  9110. ENUM_SUPPORT_FOCUS_PLATE = 2, // 看清车牌模式
  9111. ENUM_SUPPORT_FOCUS_PEOPLE = 3, // 看清人模式
  9112. ENUM_SUPPORT_FOCUS_FACE = 4, // 看清人脸模式
  9113. }EM_SUPPORT_FOCUS_MODE;
  9114. //云台转动角度范围,单位:度
  9115. typedef struct tagCFG_PTZ_LIGHTING_CONTROL
  9116. {
  9117. char szMode[CFG_COMMON_STRING_32]; // 手动灯光控制模式
  9118. // on-off":直接开关模式,
  9119. // "adjustLight":手动调节亮度模式
  9120. DWORD dwNearLightNumber; // 近光灯组数量
  9121. DWORD dwFarLightNumber; // 远光灯组数量
  9122. }CFG_PTZ_LIGHTING_CONTROL;
  9123. //云台-区域扫描能力集
  9124. typedef struct tagCFG_PTZ_AREA_SCAN
  9125. {
  9126. BOOL bIsSupportAutoAreaScan; // 是否支持区域扫描
  9127. WORD wScanNum; // 区域扫描的个数
  9128. }CFG_PTZ_AREA_SCAN;
  9129. // 遮挡块形状类型
  9130. typedef enum tagNET_EM_MASK_TYPE
  9131. {
  9132. NET_EM_MASK_UNKNOWN, // 未知
  9133. NET_EM_MASK_RECT, // 矩形
  9134. NET_EM_MASK_POLYGON, // 多边形
  9135. } NET_EM_MASK_TYPE;
  9136. // 马赛克类型
  9137. typedef enum tagNET_EM_MOSAIC_TYPE
  9138. {
  9139. NET_EM_MOSAIC_UNKNOWN = 0, // 未知
  9140. NET_EM_MOSAIC_8 = 8, // [8x8大小] 马赛克
  9141. NET_EM_MOSAIC_16 = 16, // [16x16大小] 马赛克
  9142. NET_EM_MOSAIC_24 = 24, // [24x24大小] 马赛克
  9143. NET_EM_MOSAIC_32 = 32, // [32x32大小] 马赛克
  9144. } NET_EM_MOSAIC_TYPE;
  9145. #define MAX_MASKTYPE_COUNT 8
  9146. #define MAX_MOSAICTYPE_COUNT 8
  9147. // 隐私遮挡能力集
  9148. typedef struct tagCFG_PTZ_PRIVACY_MASKING
  9149. {
  9150. BOOL bPrivacyMasking; // 是否支持隐私遮挡设置
  9151. BOOL bSetColorSupport; // 是否支持遮挡块颜色设置
  9152. BOOL abMaskType; // emMaskType是否有效
  9153. int nMaskTypeCount; // 实际支持的遮挡块形状个数
  9154. NET_EM_MASK_TYPE emMaskType[MAX_MASKTYPE_COUNT]; // 支持的遮挡块形状,没有该项配置时默认支持矩形
  9155. BOOL bSetMosaicSupport; // 是否支持马赛克遮挡块设置
  9156. BOOL bSetColorIndependent; // 是否支持遮挡块颜色相互独立(bSetColorSupport为true时该能力有效)
  9157. BOOL abMosaicType; // emMosaicType是否有效
  9158. int nMosaicTypeCount; // 实际支持的马赛克类型个数
  9159. NET_EM_MOSAIC_TYPE emMosaicType[MAX_MOSAICTYPE_COUNT]; // 支持的马赛克类型(SetMosaicSupport为true时该能力有效,没有该项配置时默认支持24x24大小马赛克)
  9160. } CFG_PTZ_PRIVACY_MASKING;
  9161. // 图像测距能力
  9162. typedef struct tagCFG_PTZ_MEASURE_DISTANCE
  9163. {
  9164. BOOL bSupport; // 是否支持图像测距
  9165. BOOL bOsdEnable; // 是否将图像测距结果数据叠加至码流
  9166. int nDisplayMin; // 图像测距信息的最小显示时长, 单位秒
  9167. int nDisplayMax; // 图像测距信息的最大显示时长, 单位秒
  9168. } CFG_PTZ_MEASURE_DISTANCE;
  9169. //获取云台能力集信息
  9170. typedef struct tagCFG_PTZ_PROTOCOL_CAPS_INFO
  9171. {
  9172. int nStructSize;
  9173. BOOL bPan; // 是否支持云台水平摆动
  9174. BOOL bTile; // 是否支持云台垂直摆动
  9175. BOOL bZoom; // 是否支持云台变倍
  9176. BOOL bIris; // 是否支持云台光圈调节
  9177. BOOL bPreset; // 是否支持预置点
  9178. BOOL bRemovePreset; // 是否支持清除预置点
  9179. BOOL bTour; // 是否支持自动巡航线路
  9180. BOOL bRemoveTour; // 是否支持清除巡航
  9181. BOOL bPattern; // 是否支持轨迹线路
  9182. BOOL bAutoPan; // 是否支持自动水平摆动
  9183. BOOL bAutoScan; // 是否支持自动扫描
  9184. BOOL bAux; // 是否支持辅助功能
  9185. BOOL bAlarm; // 是否支持报警功能
  9186. BOOL bLight; // 是否支持灯光, 内容见下面"stuPtzLightingControl",该字段已废除使用
  9187. BOOL bWiper; // 是否支持雨刷
  9188. BOOL bFlip; // 是否支持镜头翻转
  9189. BOOL bMenu; // 是否支持云台内置菜单
  9190. BOOL bMoveRelatively; // 是否支持云台按相对坐标定位
  9191. BOOL bMoveAbsolutely; // 是否支持云台按绝对坐标定位
  9192. BOOL bMoveDirectly; // 是否支持云台按三维坐标定位
  9193. BOOL bReset; // 是否支持云台复位
  9194. BOOL bGetStatus; // 是否支持获取云台运动状态及方位坐标
  9195. BOOL bSupportLimit; // 是否支持限位
  9196. BOOL bPtzDevice; // 是否支持云台设备
  9197. BOOL bIsSupportViewRange; // 是否支持云台可视域
  9198. WORD wCamAddrMin; // 通道地址的最小值
  9199. WORD wCamAddrMax; // 通道地址的最大值
  9200. WORD wMonAddrMin; // 监视地址的最小值
  9201. WORD wMonAddrMax; // 监视地址的最大值
  9202. WORD wPresetMin; // 预置点的最小值
  9203. WORD wPresetMax; // 预置点的最大值
  9204. WORD wTourMin; // 自动巡航线路的最小值
  9205. WORD wTourMax; // 自动巡航线路的最大值
  9206. WORD wPatternMin; // 轨迹线路的最小值
  9207. WORD wPatternMax; // 轨迹线路的最大值
  9208. WORD wTileSpeedMin; // 垂直速度的最小值
  9209. WORD wTileSpeedMax; // 垂直速度的最大值
  9210. WORD wPanSpeedMin; // 水平速度的最小值
  9211. WORD wPanSpeedMax; // 水平速度的最大值
  9212. WORD wAutoScanMin; // 自动扫描的最小值
  9213. WORD wAutoScanMax; // 自动扫描的最大值
  9214. WORD wAuxMin; // 辅助功能的最小值
  9215. WORD wAuxMax; // 辅助功能的最大值
  9216. DWORD dwInterval; // 发送命令的时间间隔
  9217. DWORD dwType; // 协议的类型,0-本地云台,1-远程云台
  9218. DWORD dwAlarmLen; // 协议的报警长度
  9219. DWORD dwNearLightNumber; // 近光灯组数量,0~4,为0时表示不支持
  9220. DWORD dwFarLightNumber; // 远光灯组数量,0~4,为0时表示不支持
  9221. DWORD dwSupportViewRangeType; // 支持的可视域数据获取方式掩码,从低位到高位依次数,目前支持
  9222. // 第1位:为1表示支持"ElectronicCompass" 电子罗盘方式
  9223. DWORD dwSupportFocusMode; // 支持的支持的焦距模式掩码,从低位到高位依次数,见#EM_SUPPORT_FOCUS_MODE
  9224. char szName[MAX_PROTOCOL_NAME_LEN]; // 操作的协议名
  9225. char szAuxs[CFG_COMMON_STRING_32][CFG_COMMON_STRING_32]; //云台辅助功能名称列表
  9226. CFG_PTZ_MOTION_RANGE stuPtzMotionRange; // 云台转动角度范围,单位:度
  9227. CFG_PTZ_LIGHTING_CONTROL stuPtzLightingControl; // 灯光控制内容,该字段已废除使用
  9228. BOOL bSupportPresetTimeSection; // 是否支持预置点时间段配置的功能
  9229. BOOL bFocus; // 是否支持云台变焦
  9230. CFG_PTZ_AREA_SCAN stuPtzAreaScan; // 区域扫描能力集
  9231. CFG_PTZ_PRIVACY_MASKING stuPtzPrivacyMasking; // 隐私遮挡能力集
  9232. CFG_PTZ_MEASURE_DISTANCE stuPtzMeasureDistance; // 图像测距能力集
  9233. BOOL bSupportPtzPatternOSD; // 是否支持云台巡迹OSD叠加
  9234. BOOL bSupportPtzRS485DetectOSD; // 是否支持云台RS485检测OSD叠加
  9235. BOOL bSupportPTZCoordinates; // 是否支持云台坐标叠加
  9236. BOOL bSupportPTZZoom; // 是否支持云台变倍叠加
  9237. BOOL bDirectionDisplay; // 是否支持云台方向状态显示
  9238. }CFG_PTZ_PROTOCOL_CAPS_INFO;
  9239. //串口支持的云台协议
  9240. typedef struct tagRS_PROTOCOL_InFO
  9241. {
  9242. int nRSProtocolNum; //串口支持的云台协议个数
  9243. char szRSProtocol[CFG_COMMON_STRING_32][CFG_COMMON_STRING_32]; //串口支持的云台协议名称
  9244. }RS_PROTOCOL_InFO;
  9245. //同轴支持的云台协议
  9246. typedef struct tagCOAXOAL_PROTOTOL_INFO
  9247. {
  9248. int nCoaxialProtocolNum; //同轴支持的云台协议个数
  9249. char szCoaxialProtocol[CFG_COMMON_STRING_32][CFG_COMMON_STRING_32]; //同轴支持的云台协议名称
  9250. }COAXOAL_PROTOTOL_INFO;
  9251. //获取该云台实际能够使用的协议,按介质区分
  9252. typedef struct tagCFG_CAP_PTZ_PROTOCOL
  9253. {
  9254. unsigned int nStructSize;
  9255. RS_PROTOCOL_InFO stuRSProtocolInfo; //串口支持的云台协议信息
  9256. COAXOAL_PROTOTOL_INFO stuCoaxialProtocolInfo; //同轴支持的云台协议信息
  9257. }CFG_CAP_PTZ_PROTOCOL;
  9258. // 特殊用途目录定义
  9259. typedef struct tagCFG_SPECIAL_DIR_INFO
  9260. {
  9261. char szBackgroudImageDir[MAX_PATH]; // 屏幕底图目录
  9262. char szWindowIconDir[MAX_PATH]; // 窗口图标目录
  9263. char szEventVoiceDir[MAX_PATH]; // 报警语音提示音频文件存放目录
  9264. } CFG_SPECIAL_DIR_INFO;
  9265. // 关机后延时自动开机配置
  9266. typedef struct tagCFG_AUTO_STARTUP_DELAY_INFO
  9267. {
  9268. BOOL bEnable; //功能是否打开
  9269. int nDelay; //关机后延时开机时间,单位:分钟(取值范围[30, 255])
  9270. }CFG_AUTO_STARTUP_DELAY_INFO;
  9271. // 透雾模式枚举
  9272. typedef enum tagCFG_DEFOG_MODE
  9273. {
  9274. EM_DEFOG_MODE_UNKNOW, //未知方式
  9275. EM_DEFOG_MODE_OFF, //关闭
  9276. EM_DEFOG_MODE_AUTO, //自动
  9277. EM_DEFOG_MODE_MANAL //手动
  9278. }CFG_DEFOG_MODE;
  9279. //大气光模式枚举
  9280. typedef enum tagCFG_LIGHT_INTENSITY_MODE
  9281. {
  9282. EM_LIGHT_INTENSITY_MODE_UNKNOW,//未知方式
  9283. EM_LIGHT_INTENSITY_MODE_AUTO, //自动
  9284. EM_LIGHT_INTENSITY_MODE_MANUL, //手动
  9285. }CFG_LIGHT_INTENSITY_MODE;
  9286. //透雾设置配置信息,对应结构体 CFG_VIDEOINDEFOG
  9287. typedef struct tagCFG_VIDEOINDEFOG
  9288. {
  9289. CFG_DEFOG_MODE emDefogMode;//透雾模式
  9290. int nIntensity; //强度(0-100)
  9291. CFG_LIGHT_INTENSITY_MODE emLightIntensityMode;//大气光模式
  9292. int nLightIntensityLevel;//大气光强度(0-15)
  9293. BOOL bCamDefogEnable;//光学去雾使能 (TRUE使能,FALSE去使能)
  9294. }CFG_VIDEOINDEFOG;
  9295. //单个通道对应的透雾配置信息
  9296. typedef struct tagCFG_VIDEOINDEFOG_LIST
  9297. {
  9298. int nVideoInDefogNum; // 每个通道实际透雾配置个数
  9299. CFG_VIDEOINDEFOG stVideoInDefog[CFG_MAX_VIDEO_IN_DEFOG]; //每个通道对应的透雾配置数组
  9300. }CFG_VIDEOINDEFOG_LIST;
  9301. // RTMP配置
  9302. // 配置主要用于推送码流至Flash Media Server服务器。
  9303. // 结构体参数按一定规则生成url
  9304. typedef struct tagCFG_RTMP_INFO
  9305. {
  9306. BOOL bEnable; // RTMP配置是否开启
  9307. char szAddr[MAX_ADDRESS_LEN]; // RTMP服务器地址
  9308. int nPort; // RTMP服务器端口
  9309. int nMainChnNum; // 主码流通道个数
  9310. int szMainChannel[AV_CFG_Max_Channel_Num]; // 启用主码流通道号列表:每个成员表示对应的通道需要上传到RTMP服务器,通道号从0开始
  9311. int nExtraChnNum; // 辅码流通道个数
  9312. int szExtraChannel[AV_CFG_Max_Channel_Num]; // 启用辅码流通道号列表:每个成员表示对应的通道需要上传到RTMP服务器,通道号从0开始
  9313. char szCustomPath[MAX_ADDRESS_LEN]; // 定制路径名
  9314. char szStreamPath[MAX_ADDRESS_LEN]; // 码流路径前缀:不同通道以后缀数字区分
  9315. }CFG_RTMP_INFO;
  9316. // 每个频率段上的均衡器配置信息
  9317. typedef struct tagCFG_EQUALIZER_EACH_FREQUENCY
  9318. {
  9319. int nMinFrequency; // 均衡器本段的最小频率,单位HZ,最小可取到0
  9320. int nMaxFrequency; // 均衡器本段的最大频率,单位HZ,最大可取到20K
  9321. int nGain; // 均衡器本段的增益
  9322. } CFG_EQUALIZER_EACH_FREQUENCY;
  9323. // 对应音频输出通道上所有频率段上的配置
  9324. typedef struct tagCFG_EQUALIZER_INFO
  9325. {
  9326. int nAudioOutChn; // 音频输出通道号,最大通道号为16
  9327. int nFrequencyCount; // 实际频率段个数
  9328. CFG_EQUALIZER_EACH_FREQUENCY stuFrequency[MAX_FREQUENCY_COUNT]; // 对应音频输出通道上所有频率段上的配置
  9329. } CFG_EQUALIZER_INFO;
  9330. // 音频输出均衡器配置(对应CFG_CMD_AUDIO_OUTEQUALIZER)
  9331. typedef struct tagCFG_AUDIO_OUTEQUALIZER_INFO
  9332. {
  9333. int nChannelNum; // 需要配置的音频通道数
  9334. CFG_EQUALIZER_INFO stuEqualizerInfo[MAX_OUTAUDIO_CHANNEL_COUNT]; // 每个音频输出通道上的均衡器的配置信息
  9335. } CFG_AUDIO_OUT_EQUALIZER_INFO;
  9336. // 每个音频输出通道上的音频抑制配置
  9337. typedef struct tagCFG_SUPPRESSION_INFO
  9338. {
  9339. int nAudioOutChn; // 音频输出通道,最大通道号为16
  9340. BOOL bAutoFrequencyControl; // 啸叫抑制使能
  9341. BOOL bAutoEchoCancellation; // 回声消除使能
  9342. } CFG_SUPPRESSION_INFO;
  9343. // 音频抑制配置信息(对应CFG_CMD_AUDIO_OUT_SUPPRESSION)
  9344. typedef struct tagCFG_AUDIO_OUT_SUPPRESSION_INFO
  9345. {
  9346. int nChannelNum; // 需要配置的音频通道数
  9347. CFG_SUPPRESSION_INFO stuSuppressionInfo[MAX_OUTAUDIO_CHANNEL_COUNT]; // 每个音频输出通道上的音频抑制配置
  9348. } CFG_AUDIO_OUT_SUPPRESSION_INFO;
  9349. // 每个音频输入通道上的音频控制配置
  9350. typedef struct tagCFG_IN_CONTROL_EACH_AUDIO
  9351. {
  9352. int nAudioInChn; // 音频输入通道号,最大通道号 为32
  9353. BOOL bPower; // 供电使能
  9354. BOOL bSquishSuppression; // 静噪功能使能
  9355. } CFG_IN_CONTROL_EACH_AUDIO;
  9356. // 音频输入控制配置(对应CFG_CMD_AUDIO_INCONTROL)
  9357. typedef struct tagCFG_AUDIO_IN_CONTROL_INFO
  9358. {
  9359. int nChannelNum; // 需要配置的音频通道数
  9360. CFG_IN_CONTROL_EACH_AUDIO stuInControl[MAX_INAUDIO_CHANNEL_COUNT]; // 每个音频输入通道上的音频控制配置
  9361. } CFG_AUDIO_IN_CONTROL_INFO;
  9362. // 视频输入能力集(CFG_CAP_CMD_VIDEOINPUT_EX)扩展配置
  9363. typedef struct tagCFG_CAP_VIDEOINPUT_INFO_EX
  9364. {
  9365. BOOL bSupportDefog; // 是否支持透雾功能
  9366. BOOL bSupportABFFunction; // 是否支持自动调后焦功能
  9367. BOOL bSupportImageStabilization; // 是否支持电子防抖功能
  9368. BOOL bSupportKillShutLine; // 是否支持消除快门线功能
  9369. int nMinKillShutLine; // 可配的最小值
  9370. int nMaxKillShutLine; // 可配的最大值
  9371. BOOL bSupportVideoInColor; //是否支持图像设置能力
  9372. BOOL bSupportBrightness; //是否支持亮度
  9373. BOOL bSupportContrast; //是否支持对比度
  9374. BOOL bSupportSaturation; //是否支持饱和度
  9375. BOOL bSupportHue; //是否支持色度
  9376. BOOL bSupportVideoInFocus; //是否支持聚焦设置
  9377. BOOL bLightingControl; //是否支持红外灯控制
  9378. BYTE bReserved[3]; //字节对齐
  9379. }CFG_CAP_VIDEOINPUT_INFO_EX;
  9380. // CAN过滤配置
  9381. #define MAX_CAN_COUNT 16 // 最大CAN个数
  9382. // CAN 过滤策略
  9383. typedef enum tagCFG_CAN_POLICY_METHOD
  9384. {
  9385. CFG_CAN_POLICY_METHOD_UNKONW, // 未知策略
  9386. CFG_CAN_POLICY_METHOD_NONE, // 无过滤
  9387. CFG_CAN_POLICY_METHOD_WHITE, // 白名单
  9388. CFG_CAN_POLICY_METHOD_BLACK, // 黑名单
  9389. }CFG_CAN_POLICY_METHOD;
  9390. typedef struct tagCFG_CANFILTER_INFO
  9391. {
  9392. int nResponseTimeout; // 等待应答超时(单位:毫秒), 发送数据后,等待3000毫秒后,结束该路透传
  9393. int nRequestTimeout; // 接收请求应答超时(单位:毫秒), 超过指定时间未收到数据,认为请求结束
  9394. int nFilterPIDCount; // 数据号个数
  9395. int nRetFiterPIDCount; // 返回数据号个数
  9396. int* pnFilterPID; // 过滤数据号
  9397. CFG_CAN_POLICY_METHOD emPolicy; // 过滤策略
  9398. // 如果是白名单,上报包含PID的数据
  9399. // 如果是黑名单,上报不含PID的数据
  9400. // 无过滤则所有数据都上报
  9401. }CFG_CANFILTER_INFO;
  9402. typedef struct tagCFG_CANFILTER_LIST
  9403. {
  9404. int nCANCount; // CAN个数
  9405. int nRetCANCount; // 设备返回CAN个数
  9406. CFG_CANFILTER_INFO stuCANFilter[MAX_CAN_COUNT];
  9407. }CFG_CANFILTER_LIST;
  9408. // 聚焦极限对应枚举
  9409. typedef enum tagEM_FOCUS_LIMIT_SELECT_MODE
  9410. {
  9411. EM_FOCUS_LIMIT_MODE_MANUAL, // "Manual" 自动
  9412. EM_FOCUS_LIMIT_MODE_AUTO, // "Auto"手动
  9413. EM_FOCUS_LIMIT_MODE_INVALID
  9414. }EM_FOCUS_LIMIT_SELECT_MODE;
  9415. // 聚焦设置基本信息单元
  9416. typedef struct tagCFG_VIDEO_IN_FOCUS_UNIT
  9417. {
  9418. int nMode; // 聚焦模式, 0-关闭, 1-辅助聚焦, 2-自动聚焦, 3-半自动聚焦, 4-手动聚焦
  9419. int nSensitivity; // 聚焦灵敏度, 0-高, 1-默认, 2-低
  9420. int nIRCorrection; // 红外光聚焦修正, 0-不修正, 1-修正, 2-自动修正
  9421. EM_FOCUS_LIMIT_SELECT_MODE emFocusMode; // 聚焦极限
  9422. int nFocusLimit; // 聚焦极限值, 单位毫米
  9423. } CFG_VIDEO_IN_FOCUS_UNIT;
  9424. // 单通道聚焦设置基本信息
  9425. typedef struct tagCFG_VIDEO_IN_FOCUS
  9426. {
  9427. int nChannelIndex; // 通道号
  9428. int nVideoInFocusRealNum; // 配置使用个数
  9429. CFG_VIDEO_IN_FOCUS_UNIT stVideoInFocusUnit[MAX_VIDEO_IN_FOCUS]; //通道聚焦配置单元信息
  9430. } CFG_VIDEO_IN_FOCUS;
  9431. typedef enum tagEM_ANALYSE_MODE
  9432. {
  9433. EM_ANALYSE_MODE_REAL_STREAM, // 实时流模式
  9434. EM_ANALYSE_MODE_RECORDFILE_STREAM, // 录像文件流模式
  9435. EM_ANALYSE_MODE_PICFILE_STREAM, // 图片文件流模式
  9436. }EM_ANALYSE_MODE;
  9437. // 智能分析模式
  9438. typedef struct tagCFG_ANALYSE_MODE
  9439. {
  9440. EM_ANALYSE_MODE emMode; // 分析模式,详见EM_ANALYSE_MODE
  9441. }CFG_ANALYSE_MODE;
  9442. // 云台控制预置点结构
  9443. typedef struct tagPTZ_PRESET
  9444. {
  9445. BOOL bEnable; // 该预置点是否生效
  9446. char szName[MAX_PTZ_PRESET_NAME_LEN]; // 预置点名称
  9447. CFG_PTZ_SPACE_UNIT stPosition; // 预置点的坐标和放大倍数
  9448. }PTZ_PRESET;
  9449. // 云台预置点配置对应结构
  9450. typedef struct tagPTZ_PRESET_INFO
  9451. {
  9452. DWORD dwMaxPtzPresetNum; // 最大预置点个数
  9453. DWORD dwRetPtzPresetNum; // 实际使用预置点个数
  9454. PTZ_PRESET *pstPtzPreset; // 预置点信息(根据最大个数申请内存)
  9455. }PTZ_PRESET_INFO;
  9456. // 语音激励音频通道配置
  9457. typedef struct tagCFG_AUDIO_SPIRIT_CHANNE
  9458. {
  9459. int nChannel; // 语音激励联动视频通道号
  9460. int nPriority; // 语音激励优先级, 1~10
  9461. int nPreset; // 对应的视频摄像机的预置点, 与云台一致0~255
  9462. } CFG_AUDIO_SPIRIT_CHANNEL;
  9463. // 语音激励联动项
  9464. typedef struct tagCFG_AUDIO_SPIRIT_LINKAGE
  9465. {
  9466. int nOutputNum; // 矩阵输出口数量
  9467. int nOutputChanel[CFG_MAX_LOWER_MATRIX_OUTPUT]; // 同步大画面输出到(多个)矩阵输出口
  9468. } CFG_AUDIO_SPIRIT_LINKAGE;
  9469. // 语音激励
  9470. typedef struct tagCFG_AUDIO_SPIRIT
  9471. {
  9472. BOOL bEnable; // 使能
  9473. int nAudioLimit; // 激励音量阈值, 0~100
  9474. int nDelayTime; // 激励延时时间, 单位: 秒
  9475. CFG_AUDIO_SPIRIT_CHANNEL* pstuChannels; // 语音激励音频通道属性,由用户申请内存,大小为sizeof(CFG_AUDIO_SPIRIT_CHANNEL)*nChannelCount
  9476. int nChannelCount; // 音频通道数
  9477. CFG_AUDIO_SPIRIT_LINKAGE stuLinkage; // 激励联动项
  9478. } CFG_AUDIO_SPIRIT;
  9479. // 音频输出通道对应的输入通道信息
  9480. typedef struct tagCFG_AUDIO_OUT_CHN
  9481. {
  9482. BOOL bEnable; // 表示当前输出通道是否有效
  9483. int nInputChn; // 当前输出通道上的输入通道个数(bEnable为TRUE时有效)
  9484. short snInputChannels[CFG_MAX_AUDIO_MATRIX_INPUT];// 当前输出通道上的输入通道数组(bEnable为TRUE时有效)
  9485. } CFG_AUDIO_OUT_CHN;
  9486. // 音频矩阵下的输出通道信息
  9487. typedef struct tagCFG_AUDIO_MATRIX_INFO
  9488. {
  9489. BOOL bEnable; // 表示当前矩阵是否有效
  9490. int nAudioOutChn; // 当前矩阵下的音频输出通道个数(bEnable为TRUE时有效)
  9491. CFG_AUDIO_OUT_CHN stuAudioOutChn[CFG_MAX_AUDIO_MATRIX_OUTPUT]; // 当前矩阵下的音频输出通道数组(bEnable为TRUE时有效)
  9492. } CFG_AUDIO_MATRIX_INFO;
  9493. // 音频矩阵配置信息
  9494. typedef struct tagCFG_AUDIO_MATRIX
  9495. {
  9496. int nAudioMatrix; // 获取/设置的有效音频矩阵数量,最多4个
  9497. CFG_AUDIO_MATRIX_INFO stuAudioMatrix[CFG_MAX_AUDIO_MATRIX_NUM]; // 音频矩阵配置数组
  9498. } CFG_AUDIO_MATRIX;
  9499. //一个音频输出通道对应的静音输入通道
  9500. typedef struct tagCFG_AUDIO_SILENCE_INPUTCHN
  9501. {
  9502. int nMatrix; //此音频输出通道所处的矩阵号,从0开始
  9503. int nOutChannel; //此音频输出通道号,从0开始
  9504. int nInputChnConut; //被静音的输入通道的个数
  9505. short snInputChannel[CFG_MAX_AUDIO_MATRIX_INPUT]; // 被静音的输入通道
  9506. }CFG_AUDIO_SILENCE_INPUT_CHN;
  9507. //静音矩阵配置信息
  9508. typedef struct tagCFG_AUDIO_MATRIX_SILENCE
  9509. {
  9510. int nMaxInputListCount; // 需要获取/设置的静音的输出通道数量,既用户分配并赋给pstSilenceInputChn的CFG_AUDIO_SILENCE_INPUTCHN 结构个数
  9511. int nRetInputListCountOut; // 实际获取到的输出通道数量,设置配置时此成员无意义
  9512. CFG_AUDIO_SILENCE_INPUT_CHN *pstSilenceInputChn; // 各个音频输出通道对应的静音输入通道,用户分配,大小为sizeof(CFG_AUDIO_SILENCE_INPUT_CHN)*nMaxInputListCount
  9513. } CFG_AUDIO_MATRIX_SILENCE;
  9514. // 合成通道配置(对应CFG_CMD_COMPOSE_CHANNEL)
  9515. typedef struct tagCFG_COMPOSE_CHANNEL
  9516. {
  9517. CFG_SPLITMODE emSplitMode; // 分割模式
  9518. int nChannelCombination[MAX_VIDEO_CHANNEL_NUM]; // 割模式下的各子窗口显示内容
  9519. int nChannelCount; // 分割窗口数量
  9520. } CFG_COMPOSE_CHANNEL;
  9521. // 下位矩阵输出配置
  9522. typedef struct tagCFG_LOWER_MATRIX_OUTPUT
  9523. {
  9524. char szName[CFG_COMMON_STRING_128]; // 输出通道名称
  9525. CFG_SPLITMODE emSplitMode; // 分割模式
  9526. int nInputs[CFG_MAX_LOWER_MATRIX_INPUT]; // 输入通道组
  9527. int nInputCount; // 输入通道数
  9528. } CFG_LOWER_MATRIX_OUTPUT;
  9529. // 下位矩阵信息
  9530. typedef struct tagCFG_LOWER_MATRIX_INFO
  9531. {
  9532. int nOutputCount; // 输出通道数
  9533. CFG_LOWER_MATRIX_OUTPUT stuOutputs[CFG_MAX_LOWER_MATRIX_OUTPUT]; // 输出通道配置
  9534. } CFG_LOWER_MATRIX_INFO;
  9535. // 下位矩阵配置
  9536. typedef struct tagCFG_LOWER_MATRIX_LIST
  9537. {
  9538. int nMatrixCount; // 下位矩阵数量
  9539. CFG_LOWER_MATRIX_INFO stuMatrix[CFG_MAX_LOWER_MATRIX_NUM]; // 下位矩阵数组
  9540. } CFG_LOWER_MATRIX_LIST;
  9541. // 开始与结束日期
  9542. typedef struct tagCFG_DAYTIME_INFO
  9543. {
  9544. int nBeginMonth; // 开始时间 月份
  9545. int nBeginDay; // 开始时间 日期
  9546. int nEndMonth; // 结束时间 月份
  9547. int nEndDay; // 结束时间 日期
  9548. }CFG_DAYTIME_INFO;
  9549. // 时间段限速值配置
  9550. typedef struct tagCFG_TIMESPEEDLIMIT_INFO
  9551. {
  9552. BOOL bEnable; // 速度限制开启
  9553. CFG_DAYTIME_INFO stuDayTime; // 时间段开始与结束日期
  9554. int nDaySpeedLimit; // 白天限速值,单位km/h
  9555. int nNightSpeedLimit; // 晚上限速值,单位km/h
  9556. CFG_TIME_SECTION stuTimeSection; // 白天时间段范围,掩码无效
  9557. }CFG_TIMESPEEDLIMIT_INFO;
  9558. typedef struct tagCFG_TIMESPEEDLIMIT_LIST
  9559. {
  9560. int nTimeSpeedLimitCount; // 限速时间段个数
  9561. CFG_TIMESPEEDLIMIT_INFO stuTimeSpeedLimit[MAX_TIMESPEEDLIMIT_NUM];
  9562. }CFG_TIMESPEEDLIMIT_LIST;
  9563. // 语音提示时间
  9564. typedef struct tagCFG_ALERTTIME_INFO
  9565. {
  9566. int nHour; // 小时
  9567. int nMinute; // 分钟
  9568. }CFG_ALERTTIME_INFO;
  9569. // 语音提示配置
  9570. typedef struct tagCFG_VOICEALERT_INFO
  9571. {
  9572. CFG_ALERTTIME_INFO stuAlertTime; // 语音提醒时间点,定时提醒
  9573. int nIntervalTime; // 提醒间隔时,单位秒
  9574. char szWarnText[CFG_COMMON_STRING_256]; // 语音提醒内容,用户自定义
  9575. }CFG_VOICEALERT_INFO;
  9576. typedef struct tagCFG_VOICEALERT_LIST
  9577. {
  9578. int nVoiceAlertCount; // 语音提示个数
  9579. CFG_VOICEALERT_INFO stuVoiceAlert[MAX_VOICEALERT_NUM];
  9580. }CFG_VOICEALERT_LIST;
  9581. // 红外面板按键
  9582. typedef struct tagCFG_INFRARED_KEY
  9583. {
  9584. char szName[CFG_COMMON_STRING_32]; // 面板按键名称
  9585. char szText[CFG_COMMON_STRING_64]; // 面板按键显示文字,按钮label
  9586. } CFG_INFRARED_KEY;
  9587. // 红外面板模板
  9588. typedef struct tagCFG_INFRARED_BOARD_TEMPLATE
  9589. {
  9590. unsigned int nID; // 面板模板编号
  9591. char szName[CFG_COMMON_STRING_64]; // 面板品牌型号定义
  9592. unsigned int nCategory; // 面板类型, 大类, 0-DVD, 1-TV
  9593. int nKeyNum; // 面板按键数量
  9594. CFG_INFRARED_KEY stuKeys[CFG_MAX_INFRARED_KEY_NUM]; // 面板按键
  9595. } CFG_INFRARED_BOARD_TEMPLATE;
  9596. // 红外面板模板组
  9597. typedef struct tagCFG_INFRARED_BOARD_TEMPLATE_GROUP
  9598. {
  9599. int nTemplateNum; // 模板数量
  9600. CFG_INFRARED_BOARD_TEMPLATE stuTemplates[CFG_MAX_INFRARED_BOARD_TEMPLATE_NUM]; // 红外面板模板
  9601. } CFG_INFRARED_BOARD_TEMPLATE_GROUP;
  9602. // 红外面板
  9603. typedef struct tagCFG_INFRARED_BOARD
  9604. {
  9605. unsigned int nID; // 面板编号, 唯一标示
  9606. char szName[CFG_COMMON_STRING_64]; // 面板控制外设名称, 用户自定义
  9607. unsigned int nCategory; // 面板类型, 0-DVD, 1-TV
  9608. int nCommPort; // 红外通讯端口
  9609. unsigned int nTemplateID; // 关联的模板ID
  9610. } CFG_INFRARED_BOARD;
  9611. // 红外面板组
  9612. typedef struct tagCFG_INFRARED_BOARD_GROUP
  9613. {
  9614. int nBoardNum; // 红外面板数量
  9615. CFG_INFRARED_BOARD stuBoards[CFG_MAX_INFRARED_BOARD_NUM]; // 红外面板信息
  9616. } CFG_INFRARED_BOARD_GROUP;
  9617. // 设备保活配置
  9618. typedef struct tagCFG_DEVICEKEEPALIVE_INFO
  9619. {
  9620. BOOL bEnable; // 开启保活使能
  9621. int nInterval; // 保活时间间隔,必须是>=10的值,单位:秒
  9622. int nFailTimes; // 保活失败次数,保活失败次数到达该值认为设备断线
  9623. int nWaitBootTime; // 等待外设加电后启动后检测保活心跳,单位:秒
  9624. }CFG_DEVICEKEEPALIVE_INFO;
  9625. // 设备曝光配置基本信息
  9626. typedef struct tagCFG_VIDEOIN_EXPOSURE_BASE
  9627. {
  9628. BOOL bSlowShutter; // 慢快门使能
  9629. BYTE byExposureMode; // 曝光模式调节, 0- 默认自动,1- 低噪声,2- 防拖影,3- 50Hz防闪烁
  9630. // 4- 60Hz防闪烁, 5- 光圈优先, 6- 手动, 7- 增益优先, 8- 快门优先
  9631. BYTE byAntiFlicker; // 防闪烁模式 0-Outdoor 1-50Hz防闪烁 2-60Hz防闪烁
  9632. BYTE byCompensation; // 曝光补偿, [0~14]
  9633. BYTE byAutoGainMax; // 自动增益上限, [0, 2]
  9634. BYTE byGain; // 增益档位, [0, 15]
  9635. BYTE bySlowAutoExposure; // 慢曝光, [0, 15]
  9636. BYTE bybyReserv[2]; // 字节对齐
  9637. int byExposureSpeed; // 曝光速度等级:0-自动曝光,1-曝光等级1,2-曝光等级2…n-1最大曝光等级数 n带时间上下限的自动曝光 n+1自定义时间手动曝光 (n为支持的曝光等级)
  9638. BYTE bySlowSpeed; // 慢曝光等级
  9639. BYTE byIris; // 光圈设置, [0~100]
  9640. BYTE byBacklight; // 背光补偿: 取值范围取决于设备能力集: 0-关闭 1-启用 2-指定区域背光补偿
  9641. BYTE byWideDynamicRange; // 宽动态值 0-关闭,1~100-为真实范围值
  9642. BYTE byWideDynamicRangeMode; // 宽动态模式, 0:关闭; 1:手动调节; 2:自动调节
  9643. BYTE byGlareInhibition; // 强光抑制, 0:关闭; 1:弱; 2:中; 3:强
  9644. BYTE byDoubleExposure; // 双快门支持, 0:不支持; 1:支持双快门全帧率; 2:支持双快门半帧率; 3:支持双快门全帧率和半帧率
  9645. BYTE byReserved; // 字节对齐
  9646. int nRecoveryTime; // 自动曝光恢复, 0-表示不恢复, 其他表示恢复的时间, 单位为秒
  9647. float fValue1; // 自动曝光时间下限或者手动曝光自定义时间, [0.1~80ms]
  9648. float fValue2; // 自动曝光时间上限, 需不小于下限, [0.1~80ms]
  9649. CFG_RECT stuBacklightRegion; // 背光补偿区域
  9650. BYTE byIrisMin; // 光圈区间下限[0~100]
  9651. BYTE byIrisMax; // 光圈区间上限,取值不小于byIrisMin[0~100]
  9652. BYTE byGainMin; // 手动(区间)登陆下限
  9653. BYTE byGainMax; // 手动(区间)登陆下限
  9654. }CFG_VIDEOIN_EXPOSURE_BASE;
  9655. // 设备曝光配置
  9656. typedef struct tagCFG_VIDEOIN_EXPOSURE_INFO
  9657. {
  9658. DWORD dwMaxExposureNum; // 配置的最大个数
  9659. DWORD dwRetExposureNum; // 实际使用的最大个数(查询时返回实际解析个数, 封装时按照此值个数封装)
  9660. CFG_VIDEOIN_EXPOSURE_BASE *pstuVideoInExposure; // 曝光配置信息,由用户申请内存,大小为sizeof(CFG_VIDEOIN_EXPOSURE_BASE)*dwMaxExposureNum
  9661. }CFG_VIDEOIN_EXPOSURE_INFO;
  9662. #define BACKLIGHT_CONFIG_COUNT 3 // 光线环境配置个数
  9663. // 背光模式
  9664. typedef enum tagEM_VIDEOIN_BACKLIGHT_MODE
  9665. {
  9666. EM_BACKLIGHT_UNKNOW, // 未知模式
  9667. EM_BACKLIGHT_OFF, // 关闭
  9668. EM_BACKLIGHT_BACKLIGHT, // 背光补偿
  9669. EM_BACKLIGHT_GLAREINHIBITION, // 强光抑制
  9670. EM_BACKLIGHT_WIDEDYNAMIC, // 宽动态
  9671. EM_BACKLIGHT_SSA, // 场景自适应
  9672. } EM_VIDEOIN_BACKLIGHT_MODE;
  9673. // 背光补偿模式,当背光模式为Backlight时有效
  9674. typedef enum tagEM_BACKLIGHT_MODE
  9675. {
  9676. EM_BACKLIGHT_UNKONW, // 未知模式
  9677. EM_BACKLIGHT_DEFAULT, // 默认模式
  9678. EM_BACKLIGHT_REGION, // 自定义区域模式
  9679. } EM_BACKLIGHT_MODE;
  9680. // SSA对比度调节模式,当背光模式为SSA时有效
  9681. typedef enum tagEM_INTENSITY_MODE
  9682. {
  9683. EM_INTENSITY_UNKNOW, // 未知模式
  9684. EM_INTENSITY_DISABLE, // 关闭
  9685. EM_INTENSITY_AUTO, // 自动
  9686. EM_INTENSITY_MANUAL, // 手动
  9687. } EM_INTENSITY_MODE;
  9688. // 环境光线配置信息
  9689. typedef struct tagCFG_VIDEOIN_BACKLIGHT_BASE
  9690. {
  9691. EM_VIDEOIN_BACKLIGHT_MODE emMode; // 背光模式
  9692. EM_BACKLIGHT_MODE emBacklightMode; // 背光补偿模式,当emMode == EM_BACKLIGHT_BACKLIGHT时有效
  9693. CFG_RECT stuBacklightRegion; // 背光补偿区域,当emBacklightMode == EM_BACKLIGHT_REGION时有效
  9694. int nWideDynamicRange; // 宽动态值,emMode == EM_BACKLIGHT_WIDEDYNAMIC时有效
  9695. int nGlareInhibition; // 强光抑制,emMode == EM_BACKLIGHT_GLAREINHIBITION时有效
  9696. EM_INTENSITY_MODE emInitensityMode; // SSA对比度调节模式,emMode==EM_BACKLIGHT_SSA时有效
  9697. int nIntensity; // SSA手动调整强度值,emInitensityMode==EM_INTENSITY_MANUAL时有效
  9698. } CFG_VIDEOIN_BACKLIGHT_BASE;
  9699. // 环境光线配置
  9700. typedef struct tagCFG_VIDEOIN_BACKLIGHT_INFO
  9701. {
  9702. // 环境光线配置信息,0-白天1-夜晚 2-普通
  9703. CFG_VIDEOIN_BACKLIGHT_BASE stuVideoInBackLight[BACKLIGHT_CONFIG_COUNT];
  9704. } CFG_VIDEOIN_BACKLIGHT_INFO;
  9705. //////////////////////////////////////////////////////////////////////////
  9706. // 门禁基本配置
  9707. // 自定义开门方式
  9708. typedef enum tagCFG_DOOR_OPEN_METHOD
  9709. {
  9710. CFG_DOOR_OPEN_METHOD_UNKNOWN = 0,
  9711. CFG_DOOR_OPEN_METHOD_PWD_ONLY = 1, // 只允许密码开锁
  9712. CFG_DOOR_OPEN_METHOD_CARD = 2, // 只允许刷卡开锁
  9713. CFG_DOOR_OPEN_METHOD_PWD_OR_CARD = 3, // 密码或刷卡开锁
  9714. CFG_DOOR_OPEN_METHOD_CARD_FIRST = 4, // 先刷卡后密码开锁
  9715. CFG_DOOR_OPEN_METHOD_PWD_FIRST = 5, // 先密码后刷卡开锁
  9716. CFG_DOOR_OPEN_METHOD_SECTION = 6, // 分时段开门
  9717. CFG_DOOR_OPEN_METHOD_FINGERPRINTONLY = 7, // 仅指纹开锁
  9718. CFG_DOOR_OPEN_METHOD_PWD_OR_CARD_OR_FINGERPRINT = 8, // 密码或刷卡或指纹开锁
  9719. CFG_DOOR_OPEN_METHOD_PWD_AND_CARD_AND_FINGERPINT = 9, // 密码+刷卡+指纹组合开锁
  9720. CFG_DOOR_OPEN_METHOD_PWD_AND_FINGERPRINT = 10, // 密码+指纹组合开锁
  9721. CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT = 11, // 刷卡+指纹开锁
  9722. CFG_DOOR_OPEN_METHOD_MULTI_PERSON = 12, // 多人开锁
  9723. CFG_DOOR_OPEN_METHOD_FACEIDCARD = 13, // 人证对比
  9724. CFG_DOOR_OPEN_METHOD_FACEIDCARD_AND_IDCARD = 14, // 身份证+ 人证比对
  9725. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_FINGER = 15, // 人证比对或刷卡或指纹
  9726. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FINGER = 16, // (身份证+认证比对)或刷卡或指纹
  9727. CFG_DOOR_OPEN_METHOD_USERID_AND_PWD = 17, // UserID+密码
  9728. CFG_DOOR_OPEN_METHOD_FACE_ONLY = 18, // 只允许人脸开锁
  9729. CFG_DOOR_OPEN_METHOD_FACE_AND_PWD = 19, // 人脸+密码开锁
  9730. CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_PWD = 20, // 指纹+密码开锁
  9731. CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_FACE = 21, // 指纹+人脸开锁
  9732. CFG_DOOR_OPEN_METHOD_CARD_AND_FACE = 22, // 刷卡+人脸开锁
  9733. CFG_DOOR_OPEN_METHOD_FACE_OR_PWD = 23, // 人脸或密码开锁
  9734. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_PWD = 24, // 指纹或密码开锁
  9735. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_FACE = 25, // 指纹或人脸开锁
  9736. CFG_DOOR_OPEN_METHOD_CARD_OR_FACE = 26, // 刷卡或人脸开锁
  9737. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT = 27, // 刷卡或指纹开锁
  9738. CFG_DOOR_OPEN_METHOD_FINGERPRINT_AND_FACE_AND_PWD = 28, // 指纹+人脸+密码开锁
  9739. CFG_DOOR_OPEN_METHOD_CARD_AND_FACE_AND_PWD = 29, // 刷卡+人脸+密码开锁
  9740. CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT_AND_PWD = 30, // 刷卡+指纹+密码开锁
  9741. CFG_DOOR_OPEN_METHOD_CARD_AND_PWD_AND_FACE = 31, // 卡+指纹+人脸组合开锁
  9742. CFG_DOOR_OPEN_METHOD_FINGERPRINT_OR_FACE_OR_PWD = 32, // 指纹或人脸或密码
  9743. CFG_DOOR_OPEN_METHOD_CARD_OR_FACE_OR_PWD = 33, // 卡或人脸或密码开锁
  9744. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE = 34, // 卡或指纹或人脸开锁
  9745. CFG_DOOR_OPEN_METHOD_CARD_AND_FINGERPRINT_AND_FACE_AND_PWD = 35, // 卡+指纹+人脸+密码组合开锁
  9746. CFG_DOOR_OPEN_METHOD_CARD_OR_FINGERPRINT_OR_FACE_OR_PWD = 36, // 卡或指纹或人脸或密码开锁
  9747. CFG_DOOR_OPEN_METHOD_FACEIPCARDANDIDCARD_OR_CARD_OR_FACE = 37, //(身份证+人证比对)或 刷卡 或 人脸
  9748. CFG_DOOR_OPEN_METHOD_FACEIDCARD_OR_CARD_OR_FACE = 38, // 人证比对 或 刷卡(二维码) 或 人脸
  9749. CFG_DOOR_OPEN_METHOD_CARDANDPWD_OR_FINGERPRINTANDPWD = 39, // (卡+密码)或(指纹+密码)默认为2
  9750. CFG_DOOR_OPEN_METHOD_PHOTO_OR_FACE = 40, //人证(照片)或人脸
  9751. CFG_DOOR_OPEN_METHOD_FINGERPRINT = 41, //人证(指纹)
  9752. CFG_DOOR_OPEN_METHOD_PHOTO_AND_FINGERPRINT = 42, //人证(照片+指纹)
  9753. }CFG_DOOR_OPEN_METHOD;
  9754. // 门禁单双向配置类型
  9755. typedef enum tagCFG_ACCESS_PROPERTY_TYPE
  9756. {
  9757. CFG_ACCESS_PROPERTY_UNKNOWN = 0,
  9758. CFG_ACCESS_PROPERTY_BIDIRECT, // 双向门禁
  9759. CFG_ACCESS_PROPERTY_UNIDIRECT, // 单向门禁
  9760. }CFG_ACCESS_PROPERTY_TYPE;
  9761. #define CFG_MAX_ABLOCK_DOORS_NUM 4 // 最大的门禁的互锁门通道数
  9762. // 门禁的AB互锁的组
  9763. typedef struct tagCFG_ABLOCK_DOOR_INFO
  9764. {
  9765. int nDoor; // 有效互锁门的个数
  9766. int anDoor[CFG_MAX_ABLOCK_DOORS_NUM]; // 互锁的门的通道号
  9767. }CFG_ABLOCK_DOOR_INFO;
  9768. #define CFG_MAX_ABLOCK_GROUP_NUM 8 // 最大的互锁组数
  9769. // 门禁的AB互锁功能, 多个门通道,只有其他B通道都关闭,唯一的A通道才打开
  9770. typedef struct tagCFG_ABLOCK_INFO
  9771. {
  9772. BOOL bEnable; // 使能
  9773. int nDoors; // 有效互锁组数
  9774. CFG_ABLOCK_DOOR_INFO stuDoors[CFG_MAX_ABLOCK_GROUP_NUM]; // 互锁组信息
  9775. }CFG_ABLOCK_INFO;
  9776. // 门禁基本配置
  9777. typedef struct tagCFG_ACCESS_GENERAL_INFO
  9778. {
  9779. char szOpenDoorAudioPath[MAX_ADDRESS_LEN]; // 开门音频文件路径
  9780. char szCloseDoorAudioPath[MAX_ADDRESS_LEN]; // 关门音频文件路径
  9781. char szInUsedAuidoPath[MAX_ADDRESS_LEN]; // 有人音频文件路径
  9782. char szPauseUsedAudioPath[MAX_ADDRESS_LEN]; // 暂停使用音频文件路径
  9783. char szNotClosedAudioPath[MAX_ADDRESS_LEN]; // 门未关音频文件路径
  9784. char szWaitingAudioPath[MAX_ADDRESS_LEN]; // 等待提示音频文件路径
  9785. int nUnlockReloadTime; // 开锁命令响应间隔时间,单位秒,取值10、15(默认值)、20
  9786. int nUnlockHoldTime; // 开锁输出保持时间,单位秒,取值1、2(默认)、3、4、5、6、9、15。
  9787. // 能力
  9788. bool abProjectPassword;
  9789. bool abAccessProperty;
  9790. bool abABLockInfo;
  9791. BYTE byReserved;
  9792. char szProjectPassword[MAX_PASSWORD_LEN]; // 工程密码
  9793. CFG_ACCESS_PROPERTY_TYPE emAccessProperty; // 门禁通道单双向配置
  9794. CFG_ABLOCK_INFO stuABLockInfo; // AB互锁信息
  9795. char szDuressPassword[MAX_PASSWORD_LEN]; // 胁迫密码
  9796. BOOL bDuressEnable; // 胁迫使能
  9797. BOOL bCustomPasswordEnable; // 是否启用个性化密码
  9798. char szCommonPassword[MAX_PASSWORD_LEN]; // 公共密码
  9799. UINT nPeakTimeSection; // 梯控高峰时间段, 值为CFG_ACCESS_TIMESCHEDULE_INFO配置的数组下标
  9800. BOOL bPeakState; // 是否为梯控高峰期, TRUE:高峰期, FALSE:平峰期
  9801. UINT nRemoteAuthTimeOut; // 远程校验超时时间,单位:秒, 默认值:5秒,范围[1-15]
  9802. }CFG_ACCESS_GENERAL_INFO;
  9803. // 门禁状态
  9804. typedef enum CFG_ACCESS_STATE
  9805. {
  9806. ACCESS_STATE_NORMAL, // 普通
  9807. ACCESS_STATE_CLOSEALWAYS, // 常关
  9808. ACCESS_STATE_OPENALWAYS, // 常开
  9809. // 常开常闭状态下,Opendoor开门无效.
  9810. ACCESS_STATE_NOPERSONNC, // 无人状态常闭
  9811. ACCESS_STATE_NOPERSONNO // 无人状态常开
  9812. }CFG_ACCESS_STATE;
  9813. // 门禁模式
  9814. typedef enum CFG_ACCESS_MODE
  9815. {
  9816. ACCESS_MODE_HANDPROTECTED, // 防夹模式
  9817. ACCESS_MODE_SAFEROOM, // 防护房间模式
  9818. ACCESS_MODE_OTHER, // 其它
  9819. }CFG_ACCESS_MODE;
  9820. // 分时段开门
  9821. typedef struct tagCFG_DOOROPEN_TIMESECTION_INFO
  9822. {
  9823. CFG_TIME_PERIOD stuTime; // 时间段
  9824. CFG_DOOR_OPEN_METHOD emDoorOpenMethod; // 开门模式
  9825. }CFG_DOOROPEN_TIMESECTION_INFO;
  9826. #define MAX_DOOR_TIME_SECTION 4 // 门禁每天分时时间段最大个数
  9827. // 首卡权限验证通过后的门禁状态
  9828. typedef enum CFG_ACCESS_FIRSTENTER_STATUS
  9829. {
  9830. ACCESS_FIRSTENTER_STATUS_UNKNOWN, // 未知状态
  9831. ACCESS_FIRSTENTER_STATUS_KEEPOPEN, // KeepOpen-首卡权限验证通过后,门保持常开
  9832. ACCESS_FIRSTENTER_STATUS_NORMAL // Normal-首卡权限验证通过后,其他用户才能刷卡(指纹等)验证通过
  9833. }CFG_ACCESS_FIRSTENTER_STATUS;
  9834. // 首卡开门信息
  9835. typedef struct tagCFG_ACCESS_FIRSTENTER_INFO
  9836. {
  9837. BOOL bEnable; // 在指定的时间,只有拥有首卡权限的用户验证通过后,其他的用户才能刷卡(指纹等)进入,TRUE 使能 FALSE 关闭
  9838. CFG_ACCESS_FIRSTENTER_STATUS emStatus; // 首卡权限验证通过后的门禁状态
  9839. int nTimeIndex; // 需要首卡验证的时间段, 值为通道号
  9840. }CFG_ACCESS_FIRSTENTER_INFO;
  9841. // 远程开门验证
  9842. typedef struct tagCFG_REMOTE_DETAIL_INFO
  9843. {
  9844. int nTimeOut; // 超时时间, 0表示永久等待, 其他值表示超时时间(单位为秒)
  9845. BOOL bTimeOutDoorStatus; // 超时后的门状态, TRUE:打开, FALSE:关闭
  9846. }CFG_REMOTE_DETAIL_INFO;
  9847. // TimeOut info for handicap
  9848. typedef struct tagCFG_HANDICAP_TIMEOUT_INFO
  9849. {
  9850. int nUnlockHoldInterval; // 门锁保持时间(自动关门时间),单位毫秒,[250, 60000]
  9851. int nCloseTimeout; // 关门超时时间, 超过阈值未关会触发报警,单位秒,[0,9999];0表示不检测超时
  9852. }CFG_HANDICAP_TIMEOUT_INFO;
  9853. // 开门远程验证
  9854. typedef struct tagCFG_AUTO_REMOTE_CHECK_INFO
  9855. {
  9856. BOOL bEnable; // 使能项, TRUE: 开启, FALSE: 关闭
  9857. int nTimeSechdule; // 对应CFG_CMD_ACCESSTIMESCHEDULE配置的通道号
  9858. }CFG_AUTO_REMOTE_CHECK_INFO;
  9859. // 门禁协议
  9860. typedef enum tagCFG_EM_ACCESS_PROTOCOL
  9861. {
  9862. CFG_EM_ACCESS_PROTOCOL_UNKNOWN, // 未知
  9863. CFG_EM_ACCESS_PROTOCOL_LOCAL, // 本机开关量控制
  9864. CFG_EM_ACCESS_PROTOCOL_SERIAL, // 串口协议
  9865. CFG_EM_ACCESS_PROTOCOL_REMOTE, // 门禁udp开锁
  9866. }CFG_EM_ACCESS_PROTOCOL;
  9867. // 串口协议下的具体协议功能
  9868. typedef enum tagCFG_EM_SERIAL_PROTOCOL_TYPE
  9869. {
  9870. CFG_EM_SERIAL_PROTOCOL_TYPE_UNKNOWN = -1, // 未知
  9871. CFG_EM_SERIAL_PROTOCOL_TYPE_UNUSED, // 未使用
  9872. CFG_EM_SERIAL_PROTOCOL_TYPE_DAHUA_ACCESS_485, // 门禁485
  9873. CFG_EM_SERIAL_PROTOCOL_TYPE_LADDER_CONTROL, // 梯控
  9874. CFG_EM_SERIAL_PROTOCOL_TYPE_REMOTE_READ_HEAD, // 远距离读头
  9875. }CFG_EM_SERIAL_PROTOCOL_TYPE;
  9876. // 大华门禁udp开锁信息
  9877. typedef struct tagCFG_ACCESS_CONTROL_UDP_INFO
  9878. {
  9879. char szAddress[CFG_MAX_ACCESS_CONTROL_ADDRESS_LEN]; // 地址
  9880. int nPort; // 端口
  9881. }CFG_ACCESS_CONTROL_UDP_INFO;
  9882. // 当前门采集状态
  9883. typedef enum tagEM_CFG_CARD_STATE
  9884. {
  9885. EM_CFG_CARD_STATE_UNKNOWN = -1, // 未知
  9886. EM_CFG_CARD_STATE_SWIPE, // 门禁刷卡
  9887. EM_CFG_CARD_STATE_COLLECTION, // 门禁采集卡
  9888. }EM_CFG_CARD_STATE;
  9889. // 门禁事件配置
  9890. typedef struct tagCFG_ACCESS_EVENT_INFO
  9891. {
  9892. char szChannelName[MAX_NAME_LEN]; // 门禁通道名称
  9893. CFG_ACCESS_STATE emState; // 门禁状态
  9894. CFG_ACCESS_MODE emMode; // 门禁模式
  9895. int nEnableMode; // 门禁使能电平值, 0:低电平有效(断电启动); 1:高电平有效(通电启动);
  9896. BOOL bSnapshotEnable; // 事件联动抓图使能
  9897. // 能力
  9898. bool abDoorOpenMethod;
  9899. bool abUnlockHoldInterval;
  9900. bool abCloseTimeout;
  9901. bool abOpenAlwaysTimeIndex;
  9902. bool abCloseAlwaysTimeIndex;
  9903. bool abHolidayTimeIndex;
  9904. bool abBreakInAlarmEnable;
  9905. bool abRepeatEnterAlarmEnable;
  9906. bool abDoorNotClosedAlarmEnable;
  9907. bool abDuressAlarmEnable;
  9908. bool abDoorTimeSection;
  9909. bool abSensorEnable;
  9910. bool abFirstEnterEnable;
  9911. bool abRemoteCheck;
  9912. bool abRemoteDetail;
  9913. bool abHandicapTimeOut;
  9914. bool abCheckCloseSensor;
  9915. bool abAutoRemoteCheck;
  9916. BYTE reverse[2];
  9917. CFG_DOOR_OPEN_METHOD emDoorOpenMethod; // 开门方式
  9918. int nUnlockHoldInterval; // 门锁保持时间(自动关门时间),单位毫秒,[250, 20000]
  9919. int nCloseTimeout; // 关门超时时间, 超过阈值未关会触发报警,单位秒,[0,9999];0表示不检测超时
  9920. int nOpenAlwaysTimeIndex; // 常开时间段, 值为CFG_ACCESS_TIMESCHEDULE_INFO配置的数组下标
  9921. int nCloseAlwaysTimeIndex; // 常关时间段, 值为CFG_ACCESS_TIMESCHEDULE_INFO配置的数组下标
  9922. int nHolidayTimeRecoNo; // 假期内时间段, 值为假日记录集的记录编号,对应NET_RECORDSET_HOLIDAY的nRecNo
  9923. BOOL bBreakInAlarmEnable; // 闯入报警使能
  9924. BOOL bRepeatEnterAlarm; // 反潜报警使能
  9925. BOOL bDoorNotClosedAlarmEnable; // 门未关报警使能
  9926. BOOL bDuressAlarmEnable; // 胁迫报警使能
  9927. CFG_DOOROPEN_TIMESECTION_INFO stuDoorTimeSection[WEEK_DAY_NUM][MAX_DOOR_TIME_SECTION];// 分时段开门信息
  9928. BOOL bSensorEnable; // 门磁使能
  9929. CFG_ACCESS_FIRSTENTER_INFO stuFirstEnterInfo; // 首卡开门信息
  9930. BOOL bRemoteCheck; // 是否需要平台验证, TRUE表示权限通过后必须要平台验证后才能开门, FALSE表示权限验证通过后可立即开门
  9931. CFG_REMOTE_DETAIL_INFO stuRemoteDetail; // 与bRemoteCheck配合使用, 如果远端验证未应答, 设定的设备超时时间到后, 是正常开门还是不开门
  9932. CFG_HANDICAP_TIMEOUT_INFO stuHandicapTimeOut; // 针对残疾人的开门参数
  9933. BOOL bCloseCheckSensor; // 闭锁前是否检测门磁
  9934. // true:则当开锁保持时间计时结束后,只有监测到有效门磁信号时,才可以恢复关闭锁的动作。
  9935. // 反之,如果开锁保持时间已到,但未检测到有效门磁信号,则一直保持开锁状态;
  9936. // false(默认):则直接按照设定的开锁保持时间进行开锁保持和恢复关闭的动作。
  9937. CFG_AUTO_REMOTE_CHECK_INFO stuAutoRemoteCheck; // 开门远程验证, 如果开启, 在该时间段内, 设备通过多人组合开门事件通知到平台确认是否可以开门
  9938. BOOL bLocalControlEnable; // 本地控制启用, TRUE 启用 FALSE 停用
  9939. BOOL bRemoteControlEnable; // 远程控制启用, TRUE 启用 FALSE 停用
  9940. int nSensorDelay; // 传感器输出延时,超过此时间判断有人, 单位:秒。 0~10
  9941. int nHumanStatusSensitivity; // 人状态变化检测灵敏度,在此时间内,判断有人 单位: 秒。 0~300
  9942. int nDetectSensitivity; // 传感器本身的检测灵敏度 单位:%, 0~100
  9943. BOOL bLockTongueEnable; // 锁舌使能
  9944. int nABLockRoute; // AB互锁路线与AB互锁的index对应;-1代表无效
  9945. int nDoorNotClosedReaderAlarmTime; // 门未关超时读卡器报警, 单位:秒
  9946. BOOL bEnable; // 使能项,此通道配置是否启用,TRUE为使能,FALSE为关闭
  9947. char szSN[CFG_MAX_SN_LEN]; // 无线设备序列号,只获取,不能设置
  9948. int nCloseDuration; // 门闭合时间,单位:秒
  9949. int nUnlockReloadInterval; // 开锁命令响应间隔时间,单位:毫秒
  9950. CFG_EM_ACCESS_PROTOCOL emAccessProtocol; // 门禁协议
  9951. CFG_EM_SERIAL_PROTOCOL_TYPE emProtocolType; // 串口协议下的具体协议功能,当emAccessProtocol为CFG_EM_ACCESS_PROTOCOL_SERIAL时有效
  9952. CFG_ACCESS_CONTROL_UDP_INFO stuAccessControlUdpInfo; // 门禁udp开锁信息,当emAccessProtocol为CFG_EM_ACCESS_PROTOCOL_REMOTE时有效
  9953. unsigned int nEntranceLockChannel; // 门禁控制器下的子通道,当emAccessProtocol为CFG_EM_ACCESS_PROTOCOL_REMOTE时有效
  9954. BOOL bSnapshotUpload; // 使能项,抓图是否上传,TRUE为抓图上传,FALSE为抓图不上传
  9955. unsigned int nSnapUploadPos; // 抓图上传地址,对应的是NAS配置项的下标,NAS配置为CFG_CMD_NASEX
  9956. BOOL bCustomPasswordEnable; // 是否启用个性化密码
  9957. int nRepeatEnterTime; // 重复进入时间,0~180秒,0表示不启用
  9958. int nCardNoConvert; // 卡号转换,0:不需要转换,1:字节取反,2:按HIDpro转换
  9959. BOOL bUnAuthorizedMaliciousSwipEnable; // 未授权恶意刷卡事件使能
  9960. BOOL bFakeLockedAlarmEnable; // 假锁报警使能
  9961. EM_CFG_CARD_STATE emReadCardState; // 当前门采集状态
  9962. }CFG_ACCESS_EVENT_INFO;
  9963. // 门禁刷卡时间段,对此配置,通道号实际表示配置索引
  9964. typedef struct tagCFG_ACCESS_TIMESCHEDULE_INFO
  9965. {
  9966. CFG_TIME_SECTION stuTime[WEEK_DAY_NUM][MAX_DOOR_TIME_SECTION]; // 刷卡时间段
  9967. BOOL bEnable; // 时间段使能开关
  9968. char szName[CFG_COMMON_STRING_128]; // 自定义名称
  9969. }CFG_ACCESS_TIMESCHEDULE_INFO;
  9970. //////////////////////////////////////////////////////////////////////////
  9971. // 无线网络连接配置
  9972. // 每日流量控制策略
  9973. enum EM_CFG_DAY3GFLUXTACTIC
  9974. {
  9975. EM_CFG_DAY3GFLUXTACTIC_BYFLUX = 0, // 按流量
  9976. EM_CFG_DAY3GFLUXTACTIC_BYTIME, // 按时间
  9977. };
  9978. // 接入的网络名称
  9979. enum EM_CFG_APN
  9980. {
  9981. EM_CFG_APN_CTNET = 0, // 中国电信
  9982. EM_CFG_APN_CMNET, // 中国移动
  9983. EM_CFG_APN_UNINET, // 中国联通
  9984. };
  9985. // 流量报警策略
  9986. enum EM_CFG_DAY3GFLUXACTION
  9987. {
  9988. EM_CFG_DAY3GFLUXACTION_NOTHING = 0, // 无动作
  9989. EM_CFG_DAY3GFLUXACTION_3GNETDOWN, // 3G下线
  9990. };
  9991. // 流量使用策略
  9992. typedef enum tagEM_CFG_3GFLUXTACTIC
  9993. {
  9994. EM_3GFLUXTACTIC_UNKNOWN = -1, // 未知类型
  9995. EM_3GFLUXTACTIC_BYFLUX, // 按月包流量
  9996. EM_3GFLUXTACTIC_BYTIME, // 按月包时长
  9997. }EM_CFG_3GFLUXTACTIC;
  9998. // 鉴权模式
  9999. typedef enum tagEM_CFG_AUTHMODE
  10000. {
  10001. EM_AUTHMODE_NO, // 不需要鉴权
  10002. EM_AUTHMODE_PAP, // PAP鉴权
  10003. EM_AUTHMODE_CHAP, // CHAP鉴权
  10004. }EM_CFG_AUTHMODE;
  10005. // 工作模式选择
  10006. typedef enum tagEM_CFG_WORKMODE
  10007. {
  10008. EM_WORKMODE_UNKNOWN = -1,
  10009. EM_WORKMODE_CDMA1X, // "CDMA1x"
  10010. EM_WORKMODE_EVDO, // "EVDO"
  10011. EM_WORKMODE_TDSCDMA, // "TD-SCDMA"
  10012. EM_WORKMODE_WCDMA, // "WCDMA"
  10013. EM_WORKMODE_EDGE, // "EDGE"
  10014. EM_WORKMODE_TDDLTE, // "TDD-LTE"
  10015. EM_WORKMODE_FDDLTE, // "FDD-LTE"
  10016. }EM_CFG_WORKMODE;
  10017. typedef struct tagCFG_WIRELESS_INFO
  10018. {
  10019. BOOL bEnable; // 2G网络使能
  10020. int nKeepAlive; // 保活时间, 单位为秒,0表示一直连接,不自动断开
  10021. EM_CFG_APN emAPN; // 接入的2G网络名称
  10022. char szUseName[MAX_USERNAME_LEN]; // 用户名
  10023. char szPassword[MAX_PASSWORD_LEN]; // 密码
  10024. EM_CFG_DAY3GFLUXTACTIC emDay3GFluxTactic; // 每日流量控制策略
  10025. DWORD dwDay3GFluxUp; // 每日流量使用上限, MB或者分钟
  10026. DWORD dwDay3GFluxUse; // 当日的已用流量, MB或者分钟
  10027. EM_CFG_DAY3GFLUXACTION emDay3GFluxAction; // 流量报警策略
  10028. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 拨号时间段
  10029. EM_CFG_AUTHMODE emAuthMode; // 鉴权模式
  10030. char szAPNName[MAX_CFG_APN_NAME]; // 接入网络名
  10031. unsigned int n3GFlux; // 实际使用流量, [0,65535]MB或者分钟
  10032. EM_CFG_3GFLUXTACTIC em3GFluxTactic; // 流量使用策略
  10033. unsigned int n3GFluxUp; // 流量使用上限
  10034. EM_CFG_WORKMODE emWorkMode; // 工作模式选择
  10035. char szDailNumber[MAX_CFG_DAIL_NUMBER]; // 拨号号码
  10036. BOOL bActivate; // 是否已经被语音或短信激活
  10037. }CFG_WIRELESS_INFO;
  10038. #define MAX_CONNECTION_TYPE_LEN 32 // 连接方式的名字长度
  10039. // 登报时间类型
  10040. enum emCFG_REPORTWEEKDAY
  10041. {
  10042. emReportWeekDay_DoNotReport = -1, // 不登报
  10043. emReportWeekDay_Sunday, // 每周日定时登报
  10044. emReportWeekDay_Monday, // 每周一定时登报
  10045. emReportWeekDay_Tuesday, // 每周二定时登报
  10046. emReportWeekDay_Wednesday, // 每周三定时登报
  10047. emReportWeekDay_Thursday, // 每周四定时登报
  10048. emReportWeekDay_Friday, // 每周五定时登报
  10049. emReportWeekDay_Saturday, // 每周六定时登报
  10050. emReportWeekDay_Everyday, // 每天定时登报
  10051. };
  10052. // 报警服务器的配置
  10053. typedef struct tagCFG_ALARMSERVER_INFO
  10054. {
  10055. BOOL bEnable; // 使能
  10056. char szProtocol[MAX_PROTOCOL_NAME_LEN]; // 协议类型, 目前支持"DAHUA"
  10057. char szConnection[MAX_CONNECTION_TYPE_LEN]; // 连接方式
  10058. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  10059. int nPort; // 端口号
  10060. char szUserName[MAX_USERNAME_LEN]; // 用户名
  10061. char szPsw[MAX_PASSWORD_LEN]; // 密码
  10062. emCFG_REPORTWEEKDAY emReportWeekDay; // 登报日
  10063. int nHour; // 登报时间点的时
  10064. int nMinute; // 登报时间点的分
  10065. int nSecond; // 登报时间点的秒
  10066. }CFG_ALARMSERVER_INFO;
  10067. #define MAX_ALARMSERVER_NUM 8
  10068. // 报警主机使用的报警中心及备用中心的配置
  10069. typedef struct tagCFG_ALARMCENTER_INFO
  10070. {
  10071. CFG_ALARMSERVER_INFO stuMainServer; // 报警主机使用的报警中心服务器
  10072. int nBackupAlarmServerNum; // 备用报警中心服务器的数目
  10073. CFG_ALARMSERVER_INFO stuBackupAlarmServer[MAX_ALARMSERVER_NUM]; // 备用报警中心服务器的配置
  10074. }CFG_ALARMCENTER_INFO;
  10075. //////////////////////////////////////////////////////////////////////////
  10076. // 布防、撤防配置
  10077. #define MAX_SCENE_COUNT 8 // 最大情景模式个数
  10078. // 情景模式
  10079. typedef enum tagemCFG_SCENE_MODE
  10080. {
  10081. emCFG_SCENE_MODE_UNKNOWN, // 未知模式
  10082. emCFG_SCENE_MODE_OUTDOOR, // 外出模式
  10083. emCFG_SCENE_MODE_INDOOR, // 在家模式
  10084. emCFG_SCENE_MODE_WHOLE , // 全局模式
  10085. emCFG_SCENE_MODE_RIGHTNOW, // 立即模式
  10086. emCFG_SCENE_MODE_AUTO, // 自动模式
  10087. emCFG_SCENE_MODE_FORCE, // 强制模式
  10088. emCFG_SCENE_MODE_SLEEPING, // 就寝模式
  10089. emCFG_SCENE_MODE_CUSTOM, // 自定义模式
  10090. }emCFG_SCENE_MODE;
  10091. typedef struct tagCFG_SCENE_INFO
  10092. {
  10093. emCFG_SCENE_MODE emName; // 模式名
  10094. int nAlarmInChannelsCount; // 报警通道个数
  10095. int nRetAlarmInChannelsCount; // 实际返回的报警通道个数
  10096. int* pnAlarmInChannels; // 启用的报警输入通道号列表,需用户分配内存,大小为sizeof(int)*nAlarmInChannelsCount
  10097. }CFG_SCENE_INFO;
  10098. // 布防撤防配置, 对应命令(CFG_CMD_COMMGLOBAL)
  10099. // 产品型号不为AS5008时, 启用bSceneEnable和emCurrentScene, 不启用nSceneCount和stuScense[MAX_SCENE_COUNT]
  10100. // 产品型号为AS5008时, 不启用bSceneEnable和emCurrentScene, 启用nSceneCount和stuScense[MAX_SCENE_COUNT]
  10101. typedef struct tagCFG_COMMGLOBAL_INFO
  10102. {
  10103. BOOL bEnable; // TRUE: 布防; FALSE: 撤防; 作用于整台设备,不区分通道
  10104. BOOL bSceneEnable; // 是否启用情景模式
  10105. emCFG_SCENE_MODE emCurrentScene; // 当前选择的情景模式
  10106. int nSceneCount; // 情景模式有效个数
  10107. CFG_SCENE_INFO stuScense[MAX_SCENE_COUNT]; // 情景模式定义,每个模式对应一个配置
  10108. }CFG_COMMGLOBAL_INFO;
  10109. #define MAX_ALARM_LIMITS_NUM 8 // 报警限值最大个数
  10110. // 模拟量报警输入通道配置
  10111. typedef struct tagCFG_ANALOGALARM_INFO // =>CFG_CMD_ANALOGALARM
  10112. {
  10113. BOOL bEnable; // 使能开关(整台设备处于布防且该通道非使能时为旁路)
  10114. char szChnName[MAX_CHANNELNAME_LEN]; // 报警通道名称
  10115. float fUpperLimit; // 量程上限
  10116. float fLowerLimit; // 量程下限
  10117. int nSensitivity; // 灵敏度, 单位:百分比
  10118. float fCompensation; // 补偿值, 根据传感器类型而定
  10119. float fLimit1; // 报警限1, 不建议使用, 建议使用fAlarmLimits字段
  10120. float fLimit2; // 报警限2, 不建议使用, 建议使用fAlarmLimits字段
  10121. float fLimit3; // 报警限3, 不建议使用, 建议使用fAlarmLimits字段
  10122. float fLimit4; // 报警限4, 不建议使用, 建议使用fAlarmLimits字段
  10123. BYTE byMode; // 报警模式, 掩码表示, 可能如下值1111、1110、1100、1000、0000
  10124. // 1表示超过报警阈值,0表示低于报警阈值
  10125. // 模式从左到右分别对应4个报警阈值, 依次递增
  10126. // 例:1110表示超过第1、2、3个报警阈值, 并低于第4个报警阈值
  10127. BYTE byReserve[3]; // 保留字节
  10128. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  10129. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT];// 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  10130. EM_SENSE_METHOD emSense; // 传感器方式
  10131. char szSensorType[CFG_COMMON_STRING_64]; // 传感器类型
  10132. int nSlot; // 根地址, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推, -1表示无效
  10133. int nLevel1; // 第一级级联地址, 表示连接在第nSlot串口上的第nLevel1个探测器或仪表, 从0开始, -1表示无效
  10134. bool abLevel2; // 表示nLevel2字段是否存在
  10135. int nLevel2; // 第二级级联地址, 表示连接在第nLevel1个的仪表上的探测器序号, 从0开始
  10136. int nAlamrLimits; // 有效的报警限值个数
  10137. float fAlarmLimits[MAX_ALARM_LIMITS_NUM]; // 报警限值
  10138. int nNotifyInterval; // 模拟量上传周期, 单位: 秒
  10139. int nAlarmInterval; // 触发上下限后的上传周期, 单位: 秒
  10140. }CFG_ANALOGALARM_INFO;
  10141. // 报警输出通道的状态的配置
  10142. typedef struct tagCFG_ALARMOUT_INFO // =>CFG_CMD_ALARMOUT
  10143. {
  10144. int nChannelID; // 报警通道号(0开始)
  10145. char szChnName[MAX_CHANNELNAME_LEN]; // 报警通道名称
  10146. char szOutputType[MAX_NAME_LEN]; // 输出类型, 用户自定义
  10147. int nOutputMode; // 输出模式, 0-自动报警, 1-强制报警, 2-关闭报警, 3- 开关模式
  10148. int nPulseDelay; // 脉冲模式输出时间, 单位为秒(0-255秒)
  10149. int nSlot; // 根地址, 0表示本地通道, 1表示连接在第一个串口上的扩展通道, 2、3...以此类推, -1表示无效
  10150. int nLevel1; // 第一级级联地址, 表示连接在第nSlot串口上的第nLevel1个探测器或仪表, 从0开始, -1表示无效
  10151. bool abLevel2; // 表示nLevel2字段是否存在
  10152. int nLevel2; // 第二级级联地址, 表示连接在第nLevel1个的仪表上的探测器序号, 从0开始
  10153. }CFG_ALARMOUT_INFO;
  10154. // 时区定义(NTP)
  10155. typedef enum __EM_CFG_TIME_ZONE_TYPE
  10156. {
  10157. EM_CFG_TIME_ZONE_0, // {0, 0*3600,"GMT+00:00"}
  10158. EM_CFG_TIME_ZONE_1, // {1, 1*3600,"GMT+01:00"}
  10159. EM_CFG_TIME_ZONE_2, // {2, 2*3600,"GMT+02:00"}
  10160. EM_CFG_TIME_ZONE_3, // {3, 3*3600,"GMT+03:00"}
  10161. EM_CFG_TIME_ZONE_4, // {4, 3*3600+1800,"GMT+03:30"}
  10162. EM_CFG_TIME_ZONE_5, // {5, 4*3600,"GMT+04:00"}
  10163. EM_CFG_TIME_ZONE_6, // {6, 4*3600+1800,"GMT+04:30"}
  10164. EM_CFG_TIME_ZONE_7, // {7, 5*3600,"GMT+05:00"}
  10165. EM_CFG_TIME_ZONE_8, // {8, 5*3600+1800,"GMT+05:30"}
  10166. EM_CFG_TIME_ZONE_9, // {9, 5*3600+1800+900,"GMT+05:45"}
  10167. EM_CFG_TIME_ZONE_10, // {10, 6*3600,"GMT+06:00"}
  10168. EM_CFG_TIME_ZONE_11, // {11, 6*3600+1800,"GMT+06:30"}
  10169. EM_CFG_TIME_ZONE_12, // {12, 7*3600,"GMT+07:00"}
  10170. EM_CFG_TIME_ZONE_13, // {13, 8*3600,"GMT+08:00"}
  10171. EM_CFG_TIME_ZONE_14, // {14, 9*3600,"GMT+09:00"}
  10172. EM_CFG_TIME_ZONE_15, // {15, 9*3600+1800,"GMT+09:30"}
  10173. EM_CFG_TIME_ZONE_16, // {16, 10*3600,"GMT+10:00"}
  10174. EM_CFG_TIME_ZONE_17, // {17, 11*3600,"GMT+11:00"}
  10175. EM_CFG_TIME_ZONE_18, // {18, 12*3600,"GMT+12:00"}
  10176. EM_CFG_TIME_ZONE_19, // {19, 13*3600,"GMT+13:00"}
  10177. EM_CFG_TIME_ZONE_20, // {20, -1*3600,"GMT-01:00"}
  10178. EM_CFG_TIME_ZONE_21, // {21, -2*3600,"GMT-02:00"}
  10179. EM_CFG_TIME_ZONE_22, // {22, -3*3600,"GMT-03:00"}
  10180. EM_CFG_TIME_ZONE_23, // {23, -3*3600-1800,"GMT-03:30"}
  10181. EM_CFG_TIME_ZONE_24, // {24, -4*3600,"GMT-04:00"}
  10182. EM_CFG_TIME_ZONE_25, // {25, -5*3600,"GMT-05:00"}
  10183. EM_CFG_TIME_ZONE_26, // {26, -6*3600,"GMT-06:00"}
  10184. EM_CFG_TIME_ZONE_27, // {27, -7*3600,"GMT-07:00"}
  10185. EM_CFG_TIME_ZONE_28, // {28, -8*3600,"GMT-08:00"}
  10186. EM_CFG_TIME_ZONE_29, // {29, -9*3600,"GMT-09:00"}
  10187. EM_CFG_TIME_ZONE_30, // {30, -10*3600,"GMT-10:00"}
  10188. EM_CFG_TIME_ZONE_31, // {31, -11*3600,"GMT-11:00"}
  10189. EM_CFG_TIME_ZONE_32, // {32, -12*3600,"GMT-12:00"}
  10190. EM_CFG_TIME_ZONE_33, // {33, -4*3600-1800,"GMT-4:30"}
  10191. EM_CFG_TIME_ZONE_34, // {34, 10.5*3600,"GMT+10:30"}
  10192. EM_CFG_TIME_ZONE_35, // {35, 14*3600, "GMT+14:00"}
  10193. EM_CFG_TIME_ZONE_36, // {36, -9*3600-1800,"GMT-09:30"}
  10194. EM_CFG_TIME_ZONE_37, // {37, 8*3600+1800,"GMT+08:30"}
  10195. EM_CFG_TIME_ZONE_38, // {38, 8*3600+2700,"GMT+08:45"}
  10196. EM_CFG_TIME_ZONE_39, // {39, 12*3600+2700,"GMT+12:45"}
  10197. }EM_CFG_TIME_ZONE_TYPE;
  10198. // NTP服务器
  10199. typedef struct tagCFG_NTP_SERVER
  10200. {
  10201. BOOL bEnable;
  10202. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  10203. int nPort; // 端口号
  10204. }CFG_NTP_SERVER;
  10205. // 时间同步服务器配置
  10206. typedef struct tagCFG_NTP_INFO
  10207. {
  10208. BOOL bEnable; // 使能开关
  10209. char szAddress[MAX_ADDRESS_LEN]; // IP地址或网络名
  10210. int nPort; // 端口号
  10211. int nUpdatePeriod; // 更新周期,单位为分钟
  10212. EM_CFG_TIME_ZONE_TYPE emTimeZoneType; // 时区
  10213. char szTimeZoneDesc[MAX_NAME_LEN]; // 时区描述
  10214. int nSandbyServerNum; // 实际备用NTP服务器个数
  10215. CFG_NTP_SERVER stuStandbyServer[MAX_NTP_SERVER]; // 备选NTP服务器地址
  10216. }CFG_NTP_INFO;
  10217. // 警号配置
  10218. typedef struct tagCFG_ALARMBELL_INFO
  10219. {
  10220. int nPersistentTime; // 警号输出持续时间, 单位: 分钟(0-99), 0 表示响一下就停止
  10221. }CFG_ALARMBELL_INFO;
  10222. #define MAX_MSG_NUMBER_LEN 32 // 短信号码的最大长度
  10223. #define MAX_RECEIVER_NUM 100 // 接收短信用户的最大数目
  10224. // 短信类型
  10225. typedef enum tagEM_MSG_TYPE
  10226. {
  10227. EM_MSG_UNKNOWN = 0, // 未知类型
  10228. EM_MSG_SMS, // SMS短信
  10229. EM_MSG_MMS, // MMS彩信
  10230. }EM_MSG_TYPE;
  10231. // 系统事件触发彩信/短信发送的配置
  10232. typedef struct tagCFG_EVENT_MSG_SENDING_INFO
  10233. {
  10234. BOOL bEnable; // 使能开关
  10235. EM_MSG_TYPE emMsgType; // 发送的信息的类型
  10236. char szTitle[MAX_NAME_LEN]; // 标题, 也就是短信/彩信的第一行文字
  10237. DWORD dwReceiverCount; // 收信人号码的个数
  10238. char szReceiverNumbersList[MAX_RECEIVER_NUM][MAX_MSG_NUMBER_LEN];// 收信人号码
  10239. }CFG_EVENT_MSG_SENDING_INFO;
  10240. // 移动相关业务配置
  10241. typedef struct tagCFG_MOBILE_INFO
  10242. {
  10243. CFG_EVENT_MSG_SENDING_INFO stuEventMsgSending; // 系统时间触发的发送短信/彩信的配置
  10244. }CFG_MOBILE_INFO;
  10245. #define MAX_CONTACT_NUM 100 // 联系人最大数目
  10246. // 电话语音提醒配置
  10247. typedef struct tagCFG_PHONEEVENTNOTIFY_INFO
  10248. {
  10249. BOOL bEnable; // 使能开关
  10250. DWORD dwContactCount; // 呼叫号码的个数
  10251. char szContactNumbersList[MAX_CONTACT_NUM][MAX_MSG_NUMBER_LEN];// 呼叫号码列表
  10252. }CFG_PHONEEVENTNOTIFY_INFO;
  10253. // 电话报警中心配置
  10254. enum CFG_EM_SIGNALTRANSMIT_MODE
  10255. {
  10256. CFG_EM_SIGNALTRANSMIT_ERROR = 0, // 未知模式
  10257. CFG_EM_SIGNALTRANSMIT_DTMF_5S, // "DTMF 5/S" - DTMF模式慢拨
  10258. CFG_EM_SIGNALTRANSMIT_DTMF_10S, // "DTMF 10/S" - DTMF模式快拨
  10259. };
  10260. enum CFG_EM_PSTN_PROTOCOL_TYPE
  10261. {
  10262. CFG_EM_PSTN_PROTOCOL_ERROR = 0, // 未知类型
  10263. CFG_EM_PSTN_PROTOCOL_CID, // "CID" - Contact ID Protocol
  10264. };
  10265. typedef struct tagCFG_PSTN_ALARM_SERVER_INFO
  10266. {
  10267. char szName[MAX_NAME_LEN]; // 电话报警中心名称
  10268. char szNumber[MAX_PHONE_NUMBER_LEN]; // 电话报警中心接收机号码
  10269. // "057188888888PPP888",格式为[号码][停顿时间][分机号码],其中P表示停顿2秒。
  10270. CFG_EM_PSTN_PROTOCOL_TYPE emProtocol; // 协议类型,
  10271. CFG_EM_SIGNALTRANSMIT_MODE emMode; // 信号传输模式
  10272. int nTryCount; // 拨号尝试次数
  10273. int nDelay; // 拨号延时,单位:秒
  10274. char szAccount[MAX_PHONE_NUMBER_LEN]; // 用户号码
  10275. }CFG_PSTN_ALARM_SERVER_INFO;
  10276. // 事件上报优先级
  10277. typedef enum tagCFG_EM_PSTN_ALARM_CENTER_RULE
  10278. {
  10279. CFG_EM_PSTN_ALARM_CENTER_UNKNOWN, // 未知
  10280. CFG_EM_PSTN_ALARM_CENTER_NONE, // 不上报
  10281. CFG_EM_PSTN_ALARM_CENTER_REGULARTEL, // 电话中心1
  10282. CFG_EM_PSTN_ALARM_CENTER_SPLITTEL, // 先电话中心1,失败电话中心2
  10283. CFG_EM_PSTN_ALARM_CENTER_DOUBLETEL, // 电话中心1、2同时拨打
  10284. CFG_EM_PSTN_ALARM_CENTER_REGULARIP, // 网路中心1
  10285. CFG_EM_PSTN_ALARM_CENTER_SPLITIP, // 先网络中心1,失败网络中心2
  10286. CFG_EM_PSTN_ALARM_CENTER_DOUBLEIP, // 网络中心1、2同时上报
  10287. CFG_EM_PSTN_ALARM_CENTER_DOUBLEMIX, // 网络中心1和电话中心1
  10288. CFG_EM_PSTN_ALARM_CENTER_IPTOTEL, // 先网络中心1,失败电话中心1
  10289. CFG_EM_PSTN_ALARM_CENTER_TELTOIP // 先电话中心,失败网络中心
  10290. }CFG_EM_PSTN_ALARM_CENTER_RULE;
  10291. typedef struct tagCFG_PSTN_ALARM_CENTER_INFO
  10292. {
  10293. BOOL bEnable; // 使能开关
  10294. int nServerCount; // 电话报警服务器个数
  10295. CFG_PSTN_ALARM_SERVER_INFO stuPSTNAlarmServer[MAX_PSTN_SERVER_NUM]; // 电话报警服务器
  10296. CFG_EM_PSTN_ALARM_CENTER_RULE emRule; // 事件上报优先级
  10297. }CFG_PSTN_ALARM_CENTER_INFO;
  10298. // 音量输入配置
  10299. typedef struct tagCFG_AUDIO_INPUT_VOLUME
  10300. {
  10301. int nAudioInputCount; // 实际音频输入通道个数
  10302. char szAudioInputVolume[MAX_AUDIO_INPUT_NUM]; // 每个元素对应一个音频输入通道的音量值,范围[0, 100]
  10303. }CFG_AUDIO_INPUT_VOLUME;
  10304. // 音量输出配置
  10305. typedef struct tagCFG_AUDIO_OUTPUT_VOLUME
  10306. {
  10307. int nAudioOutputCount; // 实际音频输出通道个数
  10308. char szAudioOutputVolume[MAX_AUDIO_OUTPUT_NUM]; // 每个元素对应一个音频输出通道的音量值,范围[0, 100]
  10309. }CFG_AUDIO_OUTPUT_VOLUME;
  10310. //指示灯控制配置
  10311. typedef struct tagCFG_LIGHT_GLOBAL
  10312. {
  10313. int nLightGlobalCount; // 指示灯数量
  10314. BOOL bLightEnable[MAX_LIGHT_GLOBAL_NUM]; // 指示灯开关状态数组
  10315. }CFG_LIGHT_GLOBAL;
  10316. // 混合音频音量配置
  10317. typedef struct tagCFG_AUDIO_MIX_VOLUME
  10318. {
  10319. int nAudioMixCount; // 实际混合音频通道个数
  10320. char szAudioMixVolume[MAX_AUDIO_MIX_NUM]; // 每个元素对应一个专用的音频混音通道的音量值,范围[0, 100]
  10321. }CFG_AUDIO_MIX_VOLUME;
  10322. // 报警键盘配置
  10323. typedef struct tagCFG_ALARMKEYBOARD_INFO
  10324. {
  10325. BOOL bEnable; // 使能开关
  10326. char szProtocolName[MAX_PROTOCOL_NAME_LEN]; // 协议名称
  10327. int nPort; // 使用的串口端口号
  10328. int nAddress; // 设备地址,如果串口上挂了多个串口设备,通过这个地址区分
  10329. CFG_COMM_PROP stuCommAttr; // 串口属性
  10330. }CFG_ALARMKEYBOARD_INFO;
  10331. // 获取文件管理能力
  10332. typedef struct tagCFG_CAP_FILEMANAGER
  10333. {
  10334. int nMaxUploadFileSize; // 最大的上传文件的大小, 单位: 字节
  10335. }CFG_CAP_FILEMANAGER;
  10336. // 录像延时配置信息
  10337. typedef struct tagCFG_RECORD_LATCH
  10338. {
  10339. BOOL bEnable; // 表示有无此项,true表示有此项,false表示无此项
  10340. int nRecordLatchMin; // 录像延时最小值
  10341. int nRecordLatchMax; // 录像延时最大值
  10342. } CFG_RECORD_LATCH;
  10343. // 报警输出延时配置信息
  10344. typedef struct tagCFG_ALARMOUT_LATCH
  10345. {
  10346. BOOL bEnable; // 表示有无此项,true表示有此项,false表示无此项
  10347. int nAlarmOutLatchMin; // 报警输出延时最小值
  10348. int nAlarmOutLatchMax; // 报警输出延时最大值
  10349. } CFG_ALARMOUT_LATCH;
  10350. // 去抖动配置信息
  10351. typedef struct tagCFG_DEJITTER_RANGE
  10352. {
  10353. BOOL bEnable; // 表示有无此项,true表示有此项,false表示无此项
  10354. int nDejitterMin; // 去抖动最小允许值
  10355. int nDejitterMax; // 去抖动最大允许值
  10356. } CFG_DEJITTER_RANGE;
  10357. // 获取设备报警联动能力
  10358. typedef struct tagCFG_CAP_EVENTMANAGER_INFO
  10359. {
  10360. BOOL bTimeSectionEnable; // 是否支持时间事件响应
  10361. BOOL bRecordEnable; // 是否支持录像
  10362. BOOL bAlarmOutEnable; // 是否支持报警输出
  10363. BOOL bPtzLinkEnable; // 是否支持云台联动
  10364. BOOL bSnapshotEnable; // 是否支持快照
  10365. BOOL bMailEnable; // 是否支持发送邮件
  10366. BOOL bBeepEnable; // 是否支持蜂鸣
  10367. BOOL bDejitterEnable; // 是否支持去抖动
  10368. BOOL bTipEnable; // 是否支持本地消息框提示
  10369. BOOL bMonitorTourEnable; // 是否支持轮询联动配置
  10370. BOOL bMMSEnable; // 是否支持短消息
  10371. BOOL bSupportAlarmBell; // 是否支持警号输出
  10372. BOOL bSupportAccessControl; // 是否支持门禁控制
  10373. BOOL bSupportAlarmServer; // 是否支持上传至报警服务器
  10374. BOOL bSupportPtzLinkDelay; // 是否支持云台联动延迟
  10375. BOOL bSupportPSTNAlarmServer; // 是否支持上传至电话报警中心
  10376. BOOL bVoiceEnable; // 是否支持语音播报提示
  10377. BOOL bLogEnable; // 是否支持联动日志
  10378. CFG_RECORD_LATCH stuRecordLatch; // 录像延时信息
  10379. CFG_ALARMOUT_LATCH stuAlarmOutLatch; // 报警输出延时信息
  10380. CFG_DEJITTER_RANGE stuDejitterRange; // 去抖动信息
  10381. DWORD nSupportDisableLinkage; // 支持哪些联动项一键撤防
  10382. // bit0表示支持撤防蜂鸣
  10383. // bit1表示支持撤防本地提示
  10384. // bit2表示支持撤防报警输出
  10385. // bit3表示支持撤防邮件
  10386. // bit4表示支持撤防报警上传
  10387. }CFG_CAP_EVENTMANAGER_INFO;
  10388. // 电源故障配置
  10389. typedef struct tagCFG_POWERFAULT_ONE
  10390. {
  10391. BOOL bEnable; // 使能开关
  10392. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  10393. int nDetectionPeriod; // 电源故障检测周期 单位秒
  10394. BOOL bEncodeBlend; // 是否叠加OSD报警图标
  10395. CFG_RECT stuPosition; // 位置
  10396. }CFG_POWERFAULT_ONE;
  10397. typedef struct tagCFG_POWERFAULT_INFO
  10398. {
  10399. int nPowerCount; // 电源个数
  10400. CFG_POWERFAULT_ONE stuPowerFault[MAX_POWER_NUM]; // 报警联动
  10401. }CFG_POWERFAULT_INFO;
  10402. // 机箱入侵报警(防拆报警)配置
  10403. typedef struct tagCFG_CHASSISINTRUSION_INFO
  10404. {
  10405. BOOL bEnable; // 使能开关
  10406. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  10407. }CFG_CHASSISINTRUSION_INFO;
  10408. // 紧急事件配置
  10409. typedef struct tagCFG_URGENCY_INFO
  10410. {
  10411. BOOL bEnable; // 使能开关
  10412. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  10413. }CFG_URGENCY_INFO;
  10414. /************************************************************************
  10415. ** 扩展报警模块
  10416. ***********************************************************************/
  10417. // 扩展模块报警输入配置
  10418. typedef struct tagCFG_EXALARMINPUT_INFO
  10419. {
  10420. CFG_ALARMIN_INFO stuAlarmIn; // 报警输入参数,详见 CFG_ALARMIN_INFO
  10421. }CFG_EXALARMINPUT_INFO;
  10422. // 扩展模块报警输出配置
  10423. typedef struct tagCFG_EXALARMOUTPUT_INFO
  10424. {
  10425. char szChnName[MAX_CHANNELNAME_LEN]; // 报警通道名称
  10426. int nOutputMode; // 输出模式, 0-自动报警, 1-强制报警, 2-关闭报警
  10427. }CFG_EXALARMOUTPUT_INFO;
  10428. // 扩展模块报警盒配置
  10429. typedef struct tagCFG_EXALARMBOX_INFO
  10430. {
  10431. BOOL bEnable; // 使能开关
  10432. char szProtocolName[MAX_PROTOCOL_NAME_LEN]; // 协议名称
  10433. int nPort; // 使用的串口端口号
  10434. int nAddress; // 设备地址
  10435. CFG_COMM_PROP stuCommAttr; // 串口属性
  10436. }CFG_EXALARMBOX_INFO;
  10437. // 扩展报警盒协议类型
  10438. enum CFG_EM_EXALARM_PROTOCOL_TYPE
  10439. {
  10440. CFG_EM_EXALARM_PROTOCOL_ERROR, // 未知类型
  10441. CFG_EM_EXALARM_PROTOCOL_DH_ALARMBOX, // DH_AlarmBox 大华报警盒协议
  10442. };
  10443. // 扩展模块报警能力集
  10444. typedef struct tagCFG_CAP_EXALARM_INFO
  10445. {
  10446. int nAlarmInCount; // 扩展报警模块输入个数
  10447. int nAlarmOutCount; // 扩展报警模块速出个数
  10448. int nMaxDelay; // 延时防区的最大延时时间,单位为秒,只有支持延时防区时此字段才有效。
  10449. int nDefenceAreaTypeNum; // 防区类型种类数,为0表示无此字段时报警输入不作为防区使用。
  10450. EM_CFG_DEFENCEAREATYPE emDefenceAreaType[MAX_ALARM_DEFENCE_TYPE_NUM]; // 支持防区类型
  10451. int nExAlarmChannelNum; // 扩展模块报警通道数,为了保持兼容性,此为0时表示每个通道支持所有类型的传感器
  10452. CFG_EXALARM_SENSE_METHOD stuExAlarmChannel[MAX_EXALARM_CHANNEL_NUM]; // 报警通道集合
  10453. int nProtocolNum; // 支持的协议种类
  10454. CFG_EM_EXALARM_PROTOCOL_TYPE emProtocolType[MAX_EXALARMBOX_PROTOCOL_NUM]; // 扩展报警模块报警盒支持的协议类型
  10455. }CAP_EXALARM_INFO;
  10456. // 扩展模块报警盒能力集
  10457. typedef struct tagCFG_CAP_EXALARMBOX_INFO
  10458. {
  10459. int nAlarmInCount; // 扩展报警模块输入个数
  10460. int nAlarmOutCount; // 扩展报警模块输出个数
  10461. }CFG_CAP_EXALARMBOX_INFO;
  10462. // 查询记录能力集能力集
  10463. typedef struct tagCFG_CAP_RECORDFINDER_INFO
  10464. {
  10465. int nMaxPageSize; // 最大分页条数
  10466. }CFG_CAP_RECORDFINDER_INFO;
  10467. // 传感器采样 ==>CFG_CMD_SENSORSAMPLING
  10468. typedef struct tagCFG_SENSORSAMPLING_INFO
  10469. {
  10470. int nDetectionPeriod; // 检查周期, 单位:秒,按检测周期实时上传温度状态
  10471. int nStorageItem; // 存储信息量, 单位:条数,设备本地以写文件方式,可导出(0~5000)
  10472. }CFG_SENSORSAMPLING_INFO;
  10473. // 环网 ==>CFG_CMD_STP
  10474. typedef struct tagCFG_STP_INFO
  10475. {
  10476. BOOL bEnable; // 使能
  10477. }CFG_STP_INFO;
  10478. #define DH_MAX_ZONE_NUM (256) // 最大防区数目
  10479. #define DH_MAX_PUBLIC_SUBSYSTEM_NUM (256) // 最大公共子系统数目
  10480. // 报警子系统配置 ==>CFG_CMD_ALARM_SUBSYSTEM
  10481. typedef struct tagCFG_ALARM_SUBSYSTEM_INFO
  10482. {
  10483. char szName[CFG_COMMON_STRING_128]; // 名称
  10484. int nZoneNum; // 本地防区数目
  10485. int anZone[DH_MAX_ZONE_NUM]; // 本地防区号
  10486. int nExZoneNum; // 扩展防区数目
  10487. int anExZone[DH_MAX_ZONE_NUM]; // 扩展防区号
  10488. int nDisableDelay; // 延时撤防时间(进入延时), 单位为秒
  10489. int nEnableDelay; // 延时布防时间(退出延时), 单位为秒
  10490. BOOL bIsPublic; // 是否为公共子系统
  10491. int nPublicSubSystem; // 公共所属的子系统数目
  10492. int anPublicSubSystem[DH_MAX_PUBLIC_SUBSYSTEM_NUM];// 公共所属的关联子系统
  10493. }CFG_ALARM_SUBSYSTEM_INFO;
  10494. // 电池电压低配置 ==>CFG_CMD_BATTERY_LOW_POWER
  10495. typedef struct tagCFG_BATTERY_LOW_POWER_INFO
  10496. {
  10497. BOOL bEnable; // 使能
  10498. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  10499. }CFG_BATTERY_LOW_POWER_INFO;
  10500. // 抓图通道联动外设配置 ==>CFG_CMD_SNAPLINKAGE
  10501. typedef struct tagCFG_SNAPLINKAGE_INFO
  10502. {
  10503. int nChannelNum; // 视频通道关联的模拟量通道数目
  10504. int anAnalogAlarm[DH_MAX_ZONE_NUM]; // 视频通道关联的模量通道号
  10505. }CFG_SNAPLINKAGE_INFO;
  10506. // 视频输入配置
  10507. typedef struct tagCFG_AUDIO_INPUT
  10508. {
  10509. char szAudioSource[CFG_COMMON_STRING_256]; // 输入音频源. 如果音频通道的输入是由多路合成,用|分割.
  10510. // 例:"Mic|LineIn|Remote" 表示此音频通道由Mic、LineIn和远程通道的音频输入构成.
  10511. // "Coaxial" 同轴口音频
  10512. // "BNC" 本地BNC口音频
  10513. // "HDCVI_BNC" 远程HDCVI设备音频
  10514. // "LineIn" 线性输入
  10515. // "Mic" 麦克风输入
  10516. // "MicOut" 麦克输出
  10517. // "Remote" 远程通道(仅对画中画通道有意义,表示画中画主画面为远程通道时,将当前远程通道的音频作为音频输入)
  10518. }CFG_AUDIO_INPUT;
  10519. // 邮件上报设备状况
  10520. typedef struct tagCFG_HEALTHREPORT_INFO
  10521. {
  10522. BOOL bEnable; // 使能
  10523. int nInterval; // 邮件发送间隔,单位为秒,范围:0~3600
  10524. }CFG_HEALTHREPORT_INFO;
  10525. // 邮件发送配置 ==>CFG_CMD_EMAIL
  10526. typedef struct tagCFG_EMAIL_INFO
  10527. {
  10528. BOOL bEnable; // 使能
  10529. BOOL bSslEnable; // 是否需要SSL加密
  10530. BOOL bTlsEnable; // 是否需要TLS加密
  10531. char szAddress[MAX_ADDRESS_LEN]; // SMTP服务器IP地址或网络名
  10532. int nPort; // 端口号
  10533. char szUserName[MAX_USERNAME_LEN]; // 帐户名
  10534. char szPassword[MAX_PASSWORD_LEN]; // 密码
  10535. BOOL bAnonymous; // 匿名邮件,true匿名,false非匿名
  10536. char szSendAddress[MAX_ADDRESS_LEN]; // 发件人地址
  10537. int nRetReciversNum; // 有效收件人数
  10538. char szReceivers[MAX_RECEIVER_NUM][MAX_ADDRESS_LEN]; // 收件人列表
  10539. char szTitle[MAX_MAILTITLE_LEN]; // 邮件标题关键字
  10540. BOOL bOnlyAttachment; // 事件联动邮件,只发送带附件的邮件
  10541. BOOL bAttachEnable; // 邮件附件使能
  10542. int nSendInterv; // 同一事件的最小邮件发送间隔,单位为秒
  10543. bool abHealthReport; // 能力,为true时,stuHealthReport有效
  10544. BYTE byReserved[3];
  10545. CFG_HEALTHREPORT_INFO stuHealthReport; // 邮件上报设备状况
  10546. BOOL bAuthentication; // 是否开启邮件鉴权,TRUE表示需要有用户名和密码先登入到SMTP服务器;FALSE表示不需要用户名和密码,直接通过SMTP服务器转发发送邮件
  10547. }CFG_EMAIL_INFO;
  10548. #define MAX_TRANSFER_SERVER_NUM 10 // 最大传输服务器个数
  10549. // 传输离线文件配置
  10550. typedef struct tagTRAFFIC_TRANSFER_OFFLINE_INFO
  10551. {
  10552. BOOL bEnable; // 使能
  10553. int nType; // 0: 使用IP地址; 1:使用MAC地址
  10554. int nIpAddrNum; // 返回的IP地址个数
  10555. char szIpAddr[MAX_TRANSFER_SERVER_NUM][MAX_ADDRESS_LEN]; // IP地址或网络名
  10556. int nMacAddrNum; // 返回的mac地址个数
  10557. char szClientID[MAX_TRANSFER_SERVER_NUM][MAX_ADDRESS_LEN]; // mac地址
  10558. }TRAFFIC_TRANSFER_OFFLINE_INFO;
  10559. #define MAX_DEVCOMM_NUM 16 // 最大串口个数
  10560. // 订阅串口数据配置-单个串口配置
  10561. typedef struct tagCFG_DEVCOMM_SUBSCRIBE_INFO
  10562. {
  10563. int nReadCycle; // 串口读取间隔,单位: 秒
  10564. }CFG_DEVCOMM_SUBSCRIBE_INFO;
  10565. // 订阅串口数据配置
  10566. typedef struct tagCFG_DEVCOMM_SUBSCRIBE
  10567. {
  10568. int nSubscribeInfoNum; // 串口数据配置个数
  10569. CFG_DEVCOMM_SUBSCRIBE_INFO stuSubscribeInfo[MAX_DEVCOMM_NUM]; // 订阅串口数据配置,是一个数组,每个元素对应一个串口
  10570. }CFG_DEVCOMM_SUBSCRIBE;
  10571. // 车位状态对应的车位指示灯
  10572. typedef enum tagEM_CFG_PARKINGSPACE_LIGHT_COLOR
  10573. {
  10574. EM_CFG_PARKINGSPACE_LIGHT_RED, // 红色
  10575. EM_CFG_PARKINGSPACE_LIGHT_YELLOW, // 黄色
  10576. EM_CFG_PARKINGSPACE_LIGHT_BLUE, // 蓝色
  10577. EM_CFG_PARKINGSPACE_LIGHT_GREEN, // 绿色
  10578. EM_CFG_PARKINGSPACE_LIGHT_PURPLE, // 紫色
  10579. EM_CFG_PARKINGSPACE_LIGHT_WHITE, // 白色
  10580. EM_CFG_PARKINGSPACE_LIGHT_PINK, // 粉色
  10581. }EM_CFG_PARKINGSPACE_LIGHT_COLOR;
  10582. // 指示灯状态
  10583. typedef enum tagEM_CFG_PARKINGSPACE_LIGHT_STATE
  10584. {
  10585. EM_CFG_PARKINGSPACE_LIGHT_OFF, // 灭
  10586. EM_CFG_PARKINGSPACE_LIGHT_ON, // 亮
  10587. EM_CFG_PARKINGSPACE_LIGHT_GLINT, // 闪烁
  10588. }EM_CFG_PARKINGSPACE_LIGHT_STATE;
  10589. #define CFG_MAX_PARKINGSPACE_LIGHT_NUM 8
  10590. #define CFG_MAX_NET_PORT_NUM 4
  10591. typedef struct tagCFG_PARKINGSPACE_LIGHT_STATE
  10592. {
  10593. BYTE bySpaceFreeLinght[CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 车位空闲状态灯色,颜色枚举值作为数组下标,数组元素值表示指示灯状态,如bySpaceFreeLinght[0]=1,表示红色指示灯亮
  10594. BYTE bySpaceFullLinght[CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 车位满状态灯色,颜色枚举值作为数组下标,数组元素值表示指示灯状态,如bySpaceFullLinght[1]=1,表示黄色指示灯亮
  10595. BYTE bySpaceOverLineLight[CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 车位压线状态灯色,颜色枚举值作为数组下标,数组元素值表示指示灯状态
  10596. BYTE bySpaceOrderLight[CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 车位预定状态灯色,颜色枚举值作为数组下标,数组元素值表示指示灯状态
  10597. int nNetPortNum; // 网口数
  10598. BYTE byNetPortAbortLight[CFG_MAX_NET_PORT_NUM][CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 网口断开状态灯色
  10599. BYTE bySpaceSpecialLight[CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 车位专用状态灯色,颜色枚举值作为数组下表,数组元素值表示指示灯状态
  10600. }CFG_PARKINGSPACE_LIGHT_STATE;
  10601. // 空调工作模式
  10602. typedef enum tagEM_CFG_AIRCONDITION_MODE
  10603. {
  10604. EM_CFG_AIRCONDITION_MODE_UNKNOWN = 0,
  10605. EM_CFG_AIRCONDITION_MODE_AUTO, // 自动
  10606. EM_CFG_AIRCONDITION_MODE_HOT, // 制热
  10607. EM_CFG_AIRCONDITION_MODE_COLD, // 制冷
  10608. EM_CFG_AIRCONDITION_MODE_WET, // 除湿
  10609. EM_CFG_AIRCONDITION_MODE_WIND, // 通风
  10610. } EM_CFG_AIRCONDITION_MODE;
  10611. // 空调送风模式
  10612. typedef enum tagEM_CFG_AIRCONDITION_WINDMODE
  10613. {
  10614. EM_CFG_AIRCONDITION_WINDMODE_UNKNOWN = 0,
  10615. EM_CFG_AIRCONDITION_WINDMODE_STOP, // 停止
  10616. EM_CFG_AIRCONDITION_WINDMODE_AUTO, // 自动
  10617. EM_CFG_AIRCONDITION_WINDMODE_HIGH, // 高速
  10618. EM_CFG_AIRCONDITION_WINDMODE_MIDDLE, // 中速
  10619. EM_CFG_AIRCONDITION_WINDMODE_LOW, // 低速
  10620. } EM_CFG_AIRCONDITION_WINDMODE;
  10621. // 串口地址
  10622. typedef struct tagCFG_COMMADDR_INFO
  10623. {
  10624. int nAddressNum; // 串口地址个数
  10625. int nAddress[MAX_ADDRESS_NUM]; // 地址描述,不同厂商地址位不同,用数组表示
  10626. }CFG_COMMADDR_INFO;
  10627. // 空调设备配置详情
  10628. typedef struct tagCFG_AIRCONDITION_DETAIL
  10629. {
  10630. char szDeviceID[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
  10631. char szName[MAX_DEVICE_MARK_LEN]; // 设备描述
  10632. char szBrand[MAX_BRAND_NAME_LEN]; // 设备品牌
  10633. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  10634. int nState; // 设备状态: 1-打开,0-关闭
  10635. int nRange; // 幅度值(温度)单位:摄氏度
  10636. EM_CFG_AIRCONDITION_MODE emAirconditionMode; // 空调工作模式
  10637. EM_CFG_AIRCONDITION_WINDMODE emAirconditionWindMode; // 空调送风模式
  10638. }CFG_AIRCONDITION_DETAIL;
  10639. // 空调设备配置(对应CFG_CMD_AIRCONDITION命令)
  10640. typedef struct tagCFG_AIRCONDITION_INFO
  10641. {
  10642. int nAirConditionNum; // 空调设备个数
  10643. CFG_AIRCONDITION_DETAIL stuAirConditions[MAX_AIRCONDITION_NUM]; // 空调设备配置详情, 数组表示
  10644. }CFG_AIRCONDITION_INFO;
  10645. // 灯光设备类型
  10646. typedef enum tagEM_LIGHT_TYPE
  10647. {
  10648. EM_LIGHT_TYPE_UNKNOWN, // 未知类型
  10649. EM_LIGHT_TYPE_COMMLIGHT, // 普通灯光
  10650. EM_LIGHT_TYPE_LEVELLIGHT, // 可调光
  10651. }EM_LIGHT_TYPE;
  10652. // 灯光设备配置信息 (对应 CFG_CMD_LIGHT )
  10653. typedef struct tagCFG_LIGHT_INFO
  10654. {
  10655. char szDeviceID[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
  10656. char szName[MAX_DEVICE_MARK_LEN]; // 设备描述
  10657. char szBrand[MAX_BRAND_NAME_LEN]; // 设备品牌
  10658. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  10659. int nPositionID; // 设备在区域中编号
  10660. CFG_POLYGON stuPosition; // 坐标
  10661. int nState; // 设备状态: 1-打开,0-关闭
  10662. int nRange; // 灯亮度幅度值 0-7 , emType 为 EM_LIGHT_TYPE_ADJUSTABLE 有意义
  10663. EM_LIGHT_TYPE emType; // 灯光设备类型
  10664. }CFG_LIGHT_INFO;
  10665. // 窗帘设备配置信息 (对应 CFG_CMD_CURTAIN )
  10666. typedef struct tagCFG_CURTAIN_INFO
  10667. {
  10668. char szDeviceID[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
  10669. char szName[MAX_DEVICE_MARK_LEN]; // 设备描述
  10670. char szBrand[MAX_BRAND_NAME_LEN]; // 设备品牌
  10671. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  10672. int nPositionID; // 设备在区域中编号
  10673. CFG_POLYGON stuPosition; // 坐标
  10674. int nState; // 设备状态: 1-打开,0-关闭
  10675. }CFG_CURTAIN_INFO;
  10676. // 新风配置信息 (对应 CFG_CMD_FRESH_AIR )
  10677. typedef struct tagCFG_FRESH_AIR_INFO
  10678. {
  10679. char szDeviceID[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
  10680. char szName[MAX_DEVICE_MARK_LEN]; // 设备描述
  10681. char szBrand[MAX_BRAND_NAME_LEN]; // 设备品牌
  10682. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  10683. }CFG_FRESH_AIR_INFO;
  10684. // 地暖配置信息 (对应 CFG_CMD_GROUND_HEAT)
  10685. typedef struct tagCFG_GROUND_HEAT_INFO
  10686. {
  10687. char szDeviceID[MAX_DEVICE_ID_LEN]; // 设备编码,惟一标识符
  10688. char szName[MAX_DEVICE_MARK_LEN]; // 设备描述
  10689. char szBrand[MAX_BRAND_NAME_LEN]; // 设备品牌
  10690. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  10691. int nState; // 设备状态: 1-打开,0-关闭
  10692. int nRange; // 幅度值(温度)单位:摄氏度
  10693. }CFG_GROUND_HEAT_INFO;
  10694. // 智能家居情景模式
  10695. typedef enum tagEM_SMARTHOME_SCENE_MODE
  10696. {
  10697. EM_SMARTHOME_SCENE_MODE_UNKNOWN, // 未知
  10698. EM_SMARTHOME_SCENE_MODE_AT_HOME, // 在家
  10699. EM_SMARTHOME_SCENE_MODE_LEAVE_HOME, // 离开
  10700. EM_SMARTHOME_SCENE_MODE_IN_SLEEPING, // 睡眠
  10701. }EM_SMARTHOME_SCENE_MODE;
  10702. // 情景详细信息
  10703. typedef struct tagCFG_PROFILE_INFO
  10704. {
  10705. int nSceneID; // 情景ID
  10706. char szBrand[MAX_BRAND_NAME_LEN]; // 厂家名称
  10707. EM_SMARTHOME_SCENE_MODE emScene; // 情景模式
  10708. CFG_COMMADDR_INFO stuCommAddr; // 串口地址
  10709. }CFG_PROFILE_INFO;
  10710. #define MAX_SMARTHOME_PROFILE_COUNT 54 // 智能家居最大情景模式个数
  10711. // 情景模式配置 (对应 CFG_CMD_SCENE_MODE)
  10712. typedef struct tagCFG_SCENE_MODE_INFO
  10713. {
  10714. int nCurrentID; // 当前情景模式ID号
  10715. int nProfileCount; // 情景模式个数
  10716. CFG_PROFILE_INFO stuProfiles[MAX_SMARTHOME_PROFILE_COUNT];// 情景模式信息
  10717. }CFG_SCENE_MODE_INFO;
  10718. //压缩回放配置信息
  10719. typedef struct tagCFG_COMPRESS_PLAY_INFO
  10720. {
  10721. BOOL bEnable; // 使能
  10722. CFG_CAPTURE_SIZE emResolution; // 视频分辨率
  10723. unsigned int nBitRate; // 视频固定码流值(kbps), 范围:192~1024
  10724. }CFG_COMPRESS_PLAY_INFO;
  10725. // 系统类型
  10726. typedef enum tagEM_CFG_BUILDING_SYSTEM_TYPE
  10727. {
  10728. EM_CFG_BUILDING_SYSTEM_TYPE_UNKNOWN = 0, // 未知
  10729. EM_CFG_BUILDING_SYSTEM_TYPE_DIGITAL, // 数字系统
  10730. EM_CFG_BUILDING_SYSTEM_TYPE_ANALOG, // 模拟系统
  10731. }EM_CFG_BUILDING_SYSTEM_TYPE;
  10732. // VTO 楼层配置(对应 CFG_CMD_BUILDING 命令)
  10733. typedef struct tagCFG_BUILDING_INFO
  10734. {
  10735. char szIssueNumber[CFG_COMMON_STRING_16]; // 期号,范围:0 ~ 99
  10736. char szSectionNumber[CFG_COMMON_STRING_16]; // 区号,范围:0 ~ 99
  10737. char szBuildingNumber[CFG_COMMON_STRING_16]; // 楼号,范围:0 ~ 999
  10738. char szBuildingUnitNumber[CFG_COMMON_STRING_16]; // 楼内单元号,范围:0 ~ 9
  10739. char szSectionUnitNumber[CFG_COMMON_STRING_16]; // 小区单元编号,范围:0 ~ 999
  10740. int nUnitFloorNumber; // 单元楼层数,范围:0 ~ 99
  10741. int nFloorPerRoomNumber; // 一层房间数,范围:0 ~ 99
  10742. BOOL bCreateRoomEnable; // 创建房间号使能
  10743. EM_CFG_BUILDING_SYSTEM_TYPE emSystemType; // 系统类型
  10744. BOOL bEnableSection; // 区号使能
  10745. int nBuildingNumBit; // 楼号长度
  10746. int nTotalRoomNumber; // 房间总数,最大值为9999
  10747. char szBuildingName[CFG_COMMON_STRING_64]; // 门口机别名
  10748. }CFG_BUILDING_INFO;
  10749. //VTO 楼层扩展配置(对应 CFG_CMD_BUILDING_EXTERNAL 命令)
  10750. typedef struct tagCFG_BUILDING_EXTERNAL_INFO
  10751. {
  10752. int nFloorCount; // 单元总层数
  10753. int nRoomCount; // 每层房间数
  10754. int nBeginNumberCount; // 获取/设置时,对应的开始房间号的有效个数
  10755. // 获取时,当获取的开始房间号个数超过MAX_FLOOR_NUM,前MAX_FLOOR_NUM个有效
  10756. // 设置时,当设置的开始房间号个数超过MAX_FLOOR_NUM,前MAX_FLOOR_NUM个有效
  10757. char szBeginNumber[MAX_FLOOR_NUM][CFG_COMMON_STRING_16]; // 开始的房间号,nBeginNumber[0] 为第一层开始房间号,nBeginNumber[1] 为第二层开始房间号,
  10758. int nTotalBuildingNumber; // 小区总幢数,范围:0 ~ 99
  10759. int nBuildingPerUintNumber; // 每幢单元数,范围:0 ~ 9
  10760. }CFG_BUILDING_EXTERNAL_INFO;
  10761. //拨号规则(对应 CFG_CMD_DIALRULE 命令)
  10762. typedef struct tagCFG_DIALRULE_INFO
  10763. {
  10764. BOOL bBuildingModeEnable; //幢模式使能
  10765. BOOL bUnitModeEnable; //单元模式使能
  10766. BOOL bExtentionModeEnable; //分机模式使能
  10767. char cSeperator; //拨号分隔符, 如 "#", "-"
  10768. BYTE byReserved[3]; //字节对齐
  10769. }CFG_DIALRULE_INFO;
  10770. // 车辆油箱配置
  10771. typedef struct tagCFG_OIL_MASS_INFO
  10772. {
  10773. int nTankVolume; // 油箱容积,单位:升
  10774. int nNotifyIntervalTime; // 上报油箱信息间隔时间,单位:秒
  10775. int nLowOil; // 油量液位低报警百分比(例:低于20%则报警),单位:百分比,0-100
  10776. int nAlarmIntervalTime; // 上报油量液位低的报警时间间隔(即报警后,每隔一段时间就重复报警),单位:秒
  10777. }CFG_OIL_MASS_INFO;
  10778. // MAC冲突事件报警配置
  10779. typedef struct tagCFG_MACCONFLICT_INFO
  10780. {
  10781. BOOL bEnable; // 使能开关
  10782. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  10783. }CFG_MACCONFLICT_INFO;
  10784. // 登陆锁定配置(对应 CFG_CMD_USERLOCKALARM)
  10785. typedef struct tagCFG_USERLOCKALARM_INFO
  10786. {
  10787. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  10788. }CFG_USERLOCKALARM_INFO;
  10789. // 登陆失败报警配置(对应 CFG_CMD_LOGIN_FAILURE_ALARM)
  10790. typedef struct tagCFG_LOGIN_FAILURE_ALARM
  10791. {
  10792. BOOL bEnable; // 登陆失败报警使能开关,TRUE为打开,FALSE为关闭
  10793. int nTryLoginTimes; // 尝试登陆次数,若登陆密码错误次数达到尝试次数后,启动报警联动
  10794. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  10795. }CFG_LOGIN_FAILURE_ALARM;
  10796. // 空闲动作功能枚举
  10797. typedef enum tagEM_CFG_IDLEMOTION_FUNCTION
  10798. {
  10799. EM_CFG_IDLEMOTION_FUNCTION_NONE = 0, // 无
  10800. EM_CFG_IDLEMOTION_FUNCTION_PRESET, // 预置点
  10801. EM_CFG_IDLEMOTION_FUNCTION_SCAN, // 自动线扫
  10802. EM_CFG_IDLEMOTION_FUNCTION_TOUR, // 巡航
  10803. EM_CFG_IDLEMOTION_FUNCTION_PATTERN, // 自动巡迹
  10804. } EM_CFG_IDLEMOTION_FUNCTION;
  10805. // 空闲动作配置信息
  10806. typedef struct tagCFG_IDLE_MOTION_INFO
  10807. {
  10808. BOOL bEnable; // 使能
  10809. int nTime; // 启动空闲动作的时间1~60分钟
  10810. EM_CFG_IDLEMOTION_FUNCTION emFunction; // 空闲动作功能,见枚举 EM_CFG_IDLEMOTION_FUNCTION
  10811. int nPresetId; // 预置点编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wPresetMin和wPresetMax
  10812. int nScanId; // 自动线扫编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wAutoScanMin和wAutoScanMax
  10813. int nTourId; // 巡航编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wTourMin和wTourMax
  10814. int nPatternId; // 自动巡迹编号, 范围参照CFG_PTZ_PROTOCOL_CAPS_INFO的wPatternMin和wPatternMax
  10815. }CFG_IDLE_MOTION_INFO;
  10816. // 电视墙预案轮巡配置
  10817. typedef struct tagCFG_MONITORWALL_COLLECTION_TOUR_INFO
  10818. {
  10819. int nInterval; // 轮巡间隔时间, 单位秒
  10820. int nCollectionNum; // 预案轮巡组中包含的预案数量
  10821. char szCollectionGroup[CFG_MAX_COLLECTION_NUM][CFG_COMMON_STRING_128]; // 预案轮巡组内容, 每一项是预案的名称
  10822. }CFG_MONITORWALL_COLLECTION_TOUR_INFO;
  10823. // PSTN掉线事件配置
  10824. typedef struct tagCFG_PSTN_BREAK_LINE_INFO
  10825. {
  10826. BOOL bEnable; // 使能开关
  10827. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  10828. }CFG_PSTN_BREAK_LINE_INFO;
  10829. // 网络采集设备配置, 对应CFG_CMD_NET_COLLECTION命令
  10830. typedef struct tagCFG_NET_COLLECTION_INFO
  10831. {
  10832. char szIp[MAX_ADDRESS_LEN]; // IP
  10833. int nPort; // 端口
  10834. }CFG_NET_COLLECTION_INFO;
  10835. // 物理接口类型
  10836. typedef enum tagEM_CFG_INTERFACE_TYPE
  10837. {
  10838. EM_CFG_INTERFACE_TYPE_UNKNOWN = 0,
  10839. EM_CFG_INTERFACE_TYPE_COMM, // Comm类型, 即串口, 对应CFG_COMMGROUP_INFO配置
  10840. EM_CFG_INTERFACE_TYPE_NETCOLLECTION, // NetCollection类型, 即网络采集点, 对应CFG_NET_COLLECTION_INFO配置
  10841. }EM_CFG_INTERFACE_TYPE;
  10842. // 虚拟Slot节点与具体物理设备的对应关系, 对应CFG_CMD_ALARM_SLOT_BOND命令
  10843. // 由于第一个通道(即通道0)已经于本地通道绑定,故无法设置;
  10844. // 其他通道对应Slot节点序号, 元素内容为相应物理接口
  10845. typedef struct tagCFG_ALARM_SLOT_BOND_INFO
  10846. {
  10847. EM_CFG_INTERFACE_TYPE emType; // 物理接口类型
  10848. int nIndex; // 通道号, 从0开始
  10849. // 类型为EM_CFG_INTERFACE_TYPE_COMM时, 表示CFG_COMMGROUP_INFO配置的数组下标;
  10850. // 类型为EM_CFG_INTERFACE_TYPE_NETCOLLECTION时, 表示CFG_NET_COLLECTION_INFO配置的数组下标;
  10851. }CFG_ALARM_SLOT_BOND_INFO;
  10852. #define CFG_MAX_CTRLTYPE_NUM 16 // 最大道闸控制方式
  10853. // 道闸控制方式枚举
  10854. typedef enum tagEM_CFG_TRAFFICSTROBE_CTRTYPE
  10855. {
  10856. EM_CFG_CTRTYPE_UNKNOWN = 0, // 未定义
  10857. EM_CFG_CTRTYPE_TRAFFICTRUSTLIST, // 通过白名单控制是否开闸;只有白名单内车辆才开闸
  10858. EM_CFG_CTRTYPE_ALLSNAPCAR, // 针对所有抓拍车辆都开闸
  10859. EM_CFG_CTRTYPE_ORDER, // 通过上层下发的命令开闸
  10860. } EM_CFG_TRAFFICSTROBE_CTRTYPE;
  10861. // 所有车开闸种类
  10862. typedef enum tagEM_CFG_ALL_SNAP_CAR
  10863. {
  10864. EM_CFG_ALL_SNAP_CAR_UNKNOWN, // 未知开闸种类
  10865. EM_CFG_ALL_SNAP_CAR_PLATE, // 所有有牌车车辆
  10866. EM_CFG_ALL_SNAP_CAR_NOPLATE, // 所有无牌车车辆
  10867. }EM_CFG_ALL_SNAP_CAR;
  10868. // 道闸配置信息(对应 CFG_CMD_TRAFFICSTROBE 命令)
  10869. typedef struct tagCFG_TRAFFICSTROBE_INFO
  10870. {
  10871. BOOL bEnable; // 使能
  10872. int nCtrlTypeCount; // 道闸控制方式个数
  10873. EM_CFG_TRAFFICSTROBE_CTRTYPE emCtrType[CFG_MAX_CTRLTYPE_NUM]; // 道闸控制方式,见枚举 EM_CFG_TRAFFICSTROBE_CTRTYPE
  10874. CFG_ALARM_MSG_HANDLE stuEventHandler; // 开启道闸联动参数
  10875. CFG_ALARM_MSG_HANDLE stuEventHandlerClose; // 关闭道闸联动参数
  10876. int nAllSnapCarCount; // 所有车开闸种类个数
  10877. EM_CFG_ALL_SNAP_CAR emAllSnapCar[MAX_ALL_SNAP_CAR_COUNT]; // 所有车开闸种类
  10878. }CFG_TRAFFICSTROBE_INFO;
  10879. #define CFG_MAX_PLATEENABLE_NUM 16 // 最大使能过车车牌播报个数
  10880. #define CFG_MAX_TRAFFICVOICE_NUM 8 // 最大语音播报配置个数
  10881. // 使能过车车牌播报功能枚举
  10882. typedef enum tagEM_CFG_PLATEENABLE_TYPE
  10883. {
  10884. EM_CFG_PLATEENABLE_UNKNOWN = 0, // 未定义
  10885. EM_CFG_PLATEENABLE_TIPS, // 播放欢迎词
  10886. EM_CFG_PLATEENABLE_PLATE, // 播放车牌
  10887. } EM_CFG_PLATEENABLE_TYPE;
  10888. // 智能交通语音播报信息
  10889. typedef struct tagCFG_TRAFFICVOICE_BROADCAST_INFO
  10890. {
  10891. int nEnableCount; // 使能播报个数
  10892. EM_CFG_PLATEENABLE_TYPE emEnable[CFG_MAX_PLATEENABLE_NUM]; // 使能过车车牌播报,见枚举 EM_CFG_PLATEENABLE_TYPE
  10893. char szNormalCar[MAX_PATH]; // 普通车辆过车播报内容,例如:播报语音文件"欢迎光临.wav"
  10894. char szTrustCar[MAX_PATH]; // 信任车辆过车播报内容,例如:播报语音文件"欢迎光临.wav"
  10895. char szSuspiciousCar[MAX_PATH]; // 嫌疑车辆过车播报内容,例如:播报语音文件"非注册车辆.wav"
  10896. }CFG_TRAFFICVOICE_BROADCAST_INFO;
  10897. // 智能交通语音播报配置(对应 CFG_CMD_TRAFFICVOICE 命令)
  10898. typedef struct tagCFG_TRAFFICVOICE_BROADCAST
  10899. {
  10900. int nTrafficVoiceNum; // 语音播报配置个数
  10901. CFG_TRAFFICVOICE_BROADCAST_INFO stuTrafficVoices[CFG_MAX_TRAFFICVOICE_NUM]; // 语音播报配置详情, 数组表示
  10902. }CFG_TRAFFICVOICE_BROADCAST;
  10903. // 停车时间配置
  10904. typedef struct tagCFG_STANDING_TIME_INFO
  10905. {
  10906. BOOL bEnable; // 是否启用停车超时报警功能
  10907. int nUpperlimit; // 停留时间上限, 单位:分钟
  10908. int nInterval; // DH_ALARM_VEHICLE_STANDING_OVER_TIME事件上报间隔, 单位:秒, -1表示不需要重复上报
  10909. } CFG_STANDING_TIME_INFO;
  10910. // 电子围栏报警时间段信息
  10911. typedef struct tagENCLOSURE_TIME_SCHEDULE_INFO
  10912. {
  10913. int nEnclosureID; // 围栏的ID号
  10914. CFG_TIME_SECTION stuTimeSection[MAX_TIME_SCHEDULE_NUM][MAX_REC_TSECT]; // 事件响应时间段
  10915. } ENCLOSURE_TIME_SCHEDULE_INFO;
  10916. // 电子围栏最大数量
  10917. #define MAX_ENCLOSURE_NUM 128
  10918. // 电子围栏报警时间段配置
  10919. typedef struct tagCFG_ENCLOSURE_TIME_SCHEDULE_INFO
  10920. {
  10921. int nEnclosureInfoCount; // 围栏数量
  10922. ENCLOSURE_TIME_SCHEDULE_INFO stuEnclosureInfo[MAX_ENCLOSURE_NUM]; // 围栏信息
  10923. char szVersion[CFG_COMMON_STRING_64]; // 围栏时间段配置版本号
  10924. } CFG_ENCLOSURE_TIME_SCHEDULE_INFO;
  10925. // 停车场出入口控制器工作模式
  10926. typedef enum tagEM_ECK_WORK_MODE_TYPE
  10927. {
  10928. EM_ECK_WORK_MODE_UNKNOWN = 0,
  10929. EM_ECK_WORK_MODE_IMPORT, // 入口控制机
  10930. EM_ECK_WORK_MODE_EXPORT, // 出口控制机
  10931. }EM_ECK_WORK_MODE_TYPE;
  10932. // 停车场出入口控制器开闸模式
  10933. typedef enum tagEM_ECK_STROBE_MODE_TYPE
  10934. {
  10935. EM_ECK_STROBE_MODE_UNKNOWN = 0,
  10936. EM_ECK_STROBE_MODE_ON, // 始终开闸
  10937. EM_ECK_STROBE_MODE_OFF, // 始终关闸
  10938. EM_ECK_STROBE_MODE_AUTO, // 自动开关闸
  10939. }EM_ECK_STROBE_MODE_TYPE;
  10940. // 停车场出入口控制器滚动屏初始滚动速度
  10941. typedef enum tagEM_ECK_LED_SPEED_TYPE
  10942. {
  10943. EM_ECK_LED_SPEED_UNKNOWN = 0,
  10944. EM_ECK_LED_SPEED_LOW, // 慢
  10945. EM_ECK_LED_SPEED_NORMAL, // 正常
  10946. EM_ECK_LED_SPEED_HIGH, // 快
  10947. }EM_ECK_LED_SPEED_TYPE;
  10948. // 停车场出入口控制器LED滚动屏配置
  10949. typedef struct tagCFG_ECK_LED_INFO
  10950. {
  10951. EM_ECK_LED_SPEED_TYPE emLEDSpeed; // LED滚动屏初始滚动速度
  10952. char szCustomData[CFG_COMMON_STRING_512];// LED滚动屏初始自定义字符, 有效长度0-256字节
  10953. }CFG_ECK_LED_INFO;
  10954. // 停车场出入口控制器配置
  10955. typedef struct tagCFG_ECKCONFIG_INFO
  10956. {
  10957. EM_ECK_WORK_MODE_TYPE emWorkMode; // 工作模式
  10958. EM_ECK_STROBE_MODE_TYPE emStrobeMode; // 开闸模式
  10959. BOOL bForceOffline; // 强制脱机开关, TRUE:强制脱机工作, FALSE:接受平台控制工作
  10960. BOOL bLoopSence; // 地感功能开关, TRUE:开启地感功能, FALSE:关闭地感功能
  10961. CFG_ECK_LED_INFO stuLED; // 滚动屏幕配置
  10962. }CFG_ECKCONFIG_INFO;
  10963. // 箭头指向
  10964. typedef enum tagEM_DIRECTION
  10965. {
  10966. EM_DIRECTION_UNKNOWN,
  10967. EM_DIRECTION_LEFT, // 左
  10968. EM_DIRECTION_UPLEFT, // 左上
  10969. EM_DIRECTION_UP, // 上
  10970. EM_DIRECTION_UPRIGHT, // 右上
  10971. EM_DIRECTION_RIGHT, // 右
  10972. EM_DIRECTION_DOWNRIGHT, // 右下
  10973. EM_DIRECTION_DOWN, // 下
  10974. EM_DIRECTION_DOWNLEFT, // 左下
  10975. }EM_DIRECTION;
  10976. // 箭头相对于数字的位置
  10977. typedef enum tagEM_GUIDESCREEN_POS
  10978. {
  10979. EM_GUIDESCREEN_POS_UNKNOWN,
  10980. EM_GUIDESCREEN_POS_LEFT, // 左侧
  10981. EM_GUIDESCREEN_POS_RIGHT, // 右侧
  10982. }EM_GUIDESCREEN_POS;
  10983. // 诱导屏内容是否滚动
  10984. typedef enum tagEM_GUIDESCREEN_ROLL
  10985. {
  10986. EM_GUIDESCREEN_ROLL_UNKNOWN,
  10987. EM_GUIDESCREEN_ROLL_DISABLE, // 不滚动
  10988. EM_GUIDESCREEN_ROLL_ENABLE, // 滚动
  10989. }EM_GUIDESCREEN_ROLL;
  10990. // 诱导屏箭头设置
  10991. typedef struct tagCFG_GUISCREEN_ARROW
  10992. {
  10993. EM_DIRECTION emDirect; // 箭头指向
  10994. EM_GUIDESCREEN_POS emPos; // 箭头相对于数字的位置
  10995. EM_GUIDESCREEN_ROLL emRoll; // 是否滚动
  10996. }CFG_GUISCREEN_ARROW;
  10997. #define CFG_GUIDE_SCREEN_NUM_MAX (8) // 诱导屏最大数量
  10998. // 诱导屏系统配置(对应 CFG_CMD_GUIDESCREEN 命令)
  10999. typedef struct tagCFG_GUIDESCREEN_INFO
  11000. {
  11001. char szText[CFG_COMMON_STRING_128]; // 上下屏时,上屏显示内容
  11002. // 英文或常用中文汉字,中文需要GB2312编码,长度不超过64字节
  11003. int nArrowNum; // 箭头标志数量
  11004. CFG_GUISCREEN_ARROW stuArrow[CFG_GUIDE_SCREEN_NUM_MAX]; // 箭头标志设置, 对应的屏从左至右依次排列
  11005. }CFG_GUIDESCREEN_INFO;
  11006. // 停车场出入口刷卡报警事件配置(对应CFG_CMD_PARKING_CARD命令)
  11007. typedef struct tagCFG_PARKING_CARD_INFO
  11008. {
  11009. BOOL bEnable; // 是否启用
  11010. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  11011. } CFG_PARKING_CARD_INFO;
  11012. // 报警方式, 即通过什么方式发出的报警
  11013. typedef enum tagEM_CFG_RCEMERGENCY_MODE_TYPE
  11014. {
  11015. EM_CFG_RCEMERGENCY_MODE_UNKNOWN = 0,
  11016. EM_CFG_RCEMERGENCY_MODE_KEYBOARD, // 键盘
  11017. EM_CFG_RCEMERGENCY_MODE_WIRELESS_CONTROL, // 遥控器
  11018. }EM_CFG_RCEMERGENCY_MODE_TYPE;
  11019. // 紧急救助报警类型
  11020. typedef enum tagEM_CFG_RCEMERGENCY_CALL_TYPE
  11021. {
  11022. EM_CFG_RCEMERGENCY_CALL_UNKNOWN = 0,
  11023. EM_CFG_RCEMERGENCY_CALL_FIRE, // 火警
  11024. EM_CFG_RCEMERGENCY_CALL_DURESS, // 胁迫
  11025. EM_CFG_RCEMERGENCY_CALL_ROBBER, // 匪警
  11026. EM_CFG_RCEMERGENCY_CALL_MEDICAL, // 医疗
  11027. }EM_CFG_RCEMERGENCY_CALL_TYPE;
  11028. // 紧急呼叫报警事件配置(对应 CFG_CMD_RCEMERGENCYCALL 命令)
  11029. typedef struct tagCFG_RCEMERGENCY_CALL_INFO
  11030. {
  11031. BOOL bEnable; // 是否启用
  11032. EM_CFG_RCEMERGENCY_MODE_TYPE emMode; // 报警方式
  11033. EM_CFG_RCEMERGENCY_CALL_TYPE emAlarmType; // 报警类型
  11034. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  11035. }CFG_RCEMERGENCY_CALL_INFO;
  11036. // 车道信息上报配置(对应 CFG_CMD_LANES_STATE_REPORT 命令)
  11037. typedef struct tagCFG_LANES_STATE_REPORT
  11038. {
  11039. BOOL bEnable; //上报使能 true:上报使能 ,false:上报不使能
  11040. int nPeriod; //上报周期 单位:秒
  11041. }CFG_LANES_STATE_REPORT;
  11042. #define CFG_MAX_USER_ID_LEN 32 // 门禁卡用户ID最大长度
  11043. #define CFG_MAX_METHODEX_NUM 4 // 开门方式扩展最大个数
  11044. // 多人组合开门的开门方式
  11045. typedef enum tagEM_CFG_OPEN_DOOR_GROUP_METHOD
  11046. {
  11047. EM_CFG_OPEN_DOOR_GROUP_METHOD_UNKNOWN = 0,
  11048. EM_CFG_OPEN_DOOR_GROUP_METHOD_CARD, // 刷卡
  11049. EM_CFG_OPEN_DOOR_GROUP_METHOD_PWD, // 密码
  11050. EM_CFG_OPEN_DOOR_GROUP_METHOD_FINGERPRINT, // 指纹
  11051. EM_CFG_OPEN_DOOR_GROUP_METHOD_ANY, // 任意组合方式开门
  11052. EM_CFG_OPEN_DOOR_GROUP_METHOD_FACE, // 人脸
  11053. }EM_CFG_OPEN_DOOR_GROUP_METHOD;
  11054. // 多人组合开门组详细信息
  11055. typedef struct tagCFG_OPEN_DOOR_GROUP_DETAIL
  11056. {
  11057. char szUserID[CFG_MAX_USER_ID_LEN]; // 用户ID
  11058. EM_CFG_OPEN_DOOR_GROUP_METHOD emMethod; // 开门方式
  11059. int nMethodExNum; // 开门方式扩展个数
  11060. EM_CFG_OPEN_DOOR_GROUP_METHOD emMethodEx[CFG_MAX_METHODEX_NUM]; // 开门方式扩展
  11061. }CFG_OPEN_DOOR_GROUP_DETAIL;
  11062. #define CFG_MAX_OPEN_DOOR_GROUP_DETAIL_NUM 64 // 每一组多人开门组合的最大人数
  11063. // 多人组合开门组信息
  11064. typedef struct tagCFG_OPEN_DOOR_GROUP
  11065. {
  11066. int nUserCount; // 用户数目,表示需要组合才能开门的人数
  11067. int nGroupNum; // 有效组数目
  11068. CFG_OPEN_DOOR_GROUP_DETAIL stuGroupDetail[CFG_MAX_OPEN_DOOR_GROUP_DETAIL_NUM];// 多人组合开门组的详细信息
  11069. BOOL bGroupDetailEx; // TRUE: stuGroupDetail 字段无效、pstuGroupDetailEx字段有效, FALSE: stuGroupDetail 字段有效、pstuGroupDetailEx字段无效
  11070. int nMaxGroupDetailNum; // 多人组合开门组的详细信息最大个数
  11071. CFG_OPEN_DOOR_GROUP_DETAIL *pstuGroupDetailEx; /* 多人组合开门组的详细信息扩展, 由用户申请内存, 大小为sizeof(CFG_OPEN_DOOR_GROUP_DETAIL)*nMaxUserCount,
  11072. 当多人组合开门组的详细信息个数大于 CFG_MAX_OPEN_DOOR_GROUP_DETAIL_NUM 时使用此字段 */
  11073. }CFG_OPEN_DOOR_GROUP;
  11074. #define CFG_MAX_OPEN_DOOR_GROUP_NUM 4 // 多人开门组合的最大组合数
  11075. // 多人多开门方式组合(对应 CFG_CMD_OPEN_DOOR_GROUP 命令),表示每个通道的组合信息,
  11076. // 第一个通道的组合的开门优先级最高,后面依次递减
  11077. typedef struct tagCFG_OPEN_DOOR_GROUP_INFO
  11078. {
  11079. int nGroup; // 有效组合数
  11080. CFG_OPEN_DOOR_GROUP stuGroupInfo[CFG_MAX_OPEN_DOOR_GROUP_NUM];// 多人开门组合信息
  11081. }CFG_OPEN_DOOR_GROUP_INFO;
  11082. #define MAX_READER_ID_LEN 32 // 读卡器ID最大长度
  11083. // 开门路线的每个节点的信息
  11084. typedef struct tagCFG_DOOR_ROUTE_NODE_INFO
  11085. {
  11086. char szReaderID[MAX_READER_ID_LEN]; // 读卡器ID,即门禁控制器相连的读卡器的ID
  11087. }CFG_DOOR_ROUTE_NODE_INFO;
  11088. // 每条开门路线最大节点(读卡器数目)
  11089. #define MAX_DOOR_ROUTE_NODE_NUM 8
  11090. // 门数组集合信息,按照数组下标从小到大顺序,表示开门路线
  11091. typedef struct tagCFG_DOOR_ROUTE_INFO
  11092. {
  11093. int nDoors; // 开门路线有效节点数
  11094. CFG_DOOR_ROUTE_NODE_INFO stuDoors[MAX_DOOR_ROUTE_NODE_NUM]; // 开门路线节点信息
  11095. UINT nResetTime; // 反潜重置时间,单位:分钟,0表示不重置
  11096. }CFG_DOOR_ROUTE_INFO;
  11097. #define MAX_OPEN_DOOR_ROUTE_NUM 16 // 最大开门路线数目
  11098. // 开门路线集合,或称防反潜路线配置(对应 CFG_CMD_OPEN_DOOR_ROUTE 命令)
  11099. typedef struct tagCFG_OPEN_DOOR_ROUTE_INFO
  11100. {
  11101. int nDoorList;
  11102. CFG_DOOR_ROUTE_INFO stuDoorList[MAX_OPEN_DOOR_ROUTE_NUM];
  11103. int nTimeSection; // 反潜路径对应时间段, 即CFG_ACCESS_TIMESCHEDULE_INFO的数组下标
  11104. UINT nResetTime; // 反潜重置时间,单位:分钟,0表示不重置。无效字段,废除
  11105. }CFG_OPEN_DOOR_ROUTE_INFO;
  11106. #define MAX_BURNPLAN_DEVICES_NUM 32
  11107. #define MAX_BURNPLAN_CHANNELS_NUM 32
  11108. // 刻录流格式
  11109. typedef enum tagEM_CFG_BURNPLAN_RECORDPACK_TYPE
  11110. {
  11111. EM_CFG_BURNPLAN_RECORDPACK_TYPE_UNKNOWN, // 未知
  11112. EM_CFG_BURNPLAN_RECORDPACK_TYPE_DHAV, // "DHAV"
  11113. EM_CFG_BURNPLAN_RECORDPACK_TYPE_PS, // "PS"
  11114. EM_CFG_BURNPLAN_RECORDPACK_TYPE_ASF, // "ASF"
  11115. EM_CFG_BURNPLAN_RECORDPACK_TYPE_MP4, // "MP4"
  11116. EM_CFG_BURNPLAN_RECORDPACK_TYPE_TS, // "TS"
  11117. }EM_CFG_BURNPLAN_RECORDPACK_TYPE;
  11118. // 刻录模式
  11119. typedef enum tagEM_CFG_BURNPLAN_MODE
  11120. {
  11121. EM_CFG_BURNPLAN_MODE_UNKNOWN, // 未知
  11122. EM_CFG_BURNPLAN_MODE_SYNC, // 同步: "Sync"
  11123. EM_CFG_BURNPLAN_MODE_TURN, // 轮流: "Turn"
  11124. EM_CFG_BURNPLAN_MODE_CYCLE, // 循环: "Cycle"
  11125. }EM_CFG_BURNPLAN_MODE;
  11126. // 刻录计划信息
  11127. typedef struct tagCFG_BURNPLAN_DETAIL
  11128. {
  11129. int nSessionId; // 审讯室
  11130. int nDevicesNum; // 参与该会话的设备列表有效个数
  11131. int nDevices[MAX_BURNPLAN_DEVICES_NUM]; // 参与该会话的设备列表
  11132. int nChannelsNum; // 刻录的视频通道有效个数
  11133. int nChannels[MAX_BURNPLAN_CHANNELS_NUM]; // 刻录的视频通道
  11134. EM_CFG_BURNPLAN_RECORDPACK_TYPE emRecordpack; // 刻录流格式
  11135. EM_CFG_BURNPLAN_MODE emMode; // 刻录模式
  11136. CFG_NET_TIME stuStarttime; // 刻录开始时间
  11137. }CFG_BURNPLAN_DETAIL;
  11138. #define MAX_BURNPLAN_DETAIL_NUM 32
  11139. // 刻录计划配置(对应CFG_BURNPLAN_INFO)
  11140. typedef struct tagCFG_BURNPLAN_INFO
  11141. {
  11142. int nBurnPlanDetailNum; // 刻录计划信息列表有效个数
  11143. CFG_BURNPLAN_DETAIL stuBurnPlanDetail[MAX_BURNPLAN_DETAIL_NUM]; // 刻录计划信息列表
  11144. }CFG_BURNPLAN_INFO;
  11145. typedef struct tagCFG_SCADA_DEV_INFO
  11146. {
  11147. BOOL bEnable; // 是否启用
  11148. char szDevType[CFG_COMMON_STRING_64];// 设备类型
  11149. char szDevName[CFG_COMMON_STRING_64];// 设备名称, 唯一标示设备用
  11150. int nSlot; // 虚拟槽位号, 详见AlarmSlotBond配置
  11151. int nLevel; // 如果Slot绑定的是NetCollection类型的话,该字段为-1
  11152. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  11153. }CFG_SCADA_DEV_INFO;
  11154. // 通道相关信息
  11155. typedef struct tagCFG_VSP_GAYS_CHANNEL_INFO
  11156. {
  11157. char szId[CFG_COMMON_STRING_64]; // 通道编号 字符串(24位)
  11158. int nAlarmLevel; // 报警级别[1,6] 整型
  11159. }CFG_VSP_GAYS_CHANNEL_INFO;
  11160. // 报警相关信息
  11161. typedef struct tagCFG_VSP_GAYS_ALARM_INFO
  11162. {
  11163. char szId[CFG_COMMON_STRING_64]; // 通道编号 字符串(24位)
  11164. int nAlarmLevel; // 报警级别[1,6] 整型
  11165. }CFG_VSP_GAYS_ALARM_INFO;
  11166. // 公安一所平台接入配置(CFG_CMD_VSP_GAYS)
  11167. typedef struct tagCFG_VSP_GAYS_INFO
  11168. {
  11169. BOOL bEnable; // 是否使能,TRUE使能,FALSE不使能
  11170. char szSipSvrId[CFG_COMMON_STRING_64]; // SIP服务器编号 字符串(24位)
  11171. char szDomain[CFG_COMMON_STRING_256]; // SIP域 字符串(128位)
  11172. char szSipSvrIp[CFG_COMMON_STRING_32]; // SIP服务器IP 字符串(16位)
  11173. char szDeviceId[CFG_COMMON_STRING_64]; // 设备编号,也是注册用户名 字符串(24位)
  11174. char szPassword[CFG_COMMON_STRING_64]; // 注册密码,密文 字符串(24位)
  11175. unsigned short nLocalSipPort; // 本地SIP服务端口 无符号短整型
  11176. unsigned short nSipSvrPort; // SIP服务器端口 无符号短整型
  11177. int nSipRegExpires; // 注册有效期 整型
  11178. int nKeepAliveCircle; // 心跳周期 整型
  11179. int nMaxTimeoutTimes; // 最大心跳超时次数 整型
  11180. char szCivilCode[CFG_COMMON_STRING_64]; // 行政区划代码 字符串(24位)
  11181. char szIntervideoID[CFG_COMMON_STRING_64]; // 接入模块识别码 字符串(24位)
  11182. unsigned short nChannelSum; // 通道数 无符号短整型
  11183. unsigned short nAlarmInSum; // 外部报警输入数 无符号短整型
  11184. CFG_VSP_GAYS_CHANNEL_INFO stuChannelInfo[MAX_VIDEO_CHANNEL_NUM]; // 通道相关信息 数组,有效个数同channelSum
  11185. CFG_VSP_GAYS_ALARM_INFO stuAlarmInfo[MAX_ALARM_CHANNEL_NUM]; // 报警相关信息 数组,有效个数同alarmInSum
  11186. }CFG_VSP_GAYS_INFO;
  11187. // 音频检测报警配置(CFG_CMD_AUDIODETECT)
  11188. typedef struct tagCFG_AUDIO_DETECT_INFO
  11189. {
  11190. BOOL bEnable; // 是否使能,TRUE使能,FALSE不使能
  11191. int nMinVolume; // 音量下限
  11192. int nMaxVolume; // 音量上限
  11193. BOOL bAnomalyDetect; // 声音异常检测使能
  11194. int nAnomalySensitive; // 声音异常检测灵敏度值 取值范围1~100
  11195. BOOL bMutationDetect; // 声强突变检测使能
  11196. int nMutationThreold; // 声强突变检测阈值 取值范围1~100
  11197. CFG_ALARM_MSG_HANDLE stuEventHandler; // 联动配置
  11198. }CFG_AUDIO_DETECT_INFO;
  11199. // VTS呼叫配置(对应命令 CFG_CMD_VTS_CALL_INFO)
  11200. typedef struct tagCFG_VTS_CALL_INFO
  11201. {
  11202. CFG_TIME_SECTION stuCallEnableTime; // 允许呼叫VTS的时间段
  11203. }CFG_VTS_CALL_INFO;
  11204. // 设备列表配置中每个设备的信息
  11205. typedef struct tagCFG_DEV_LIST
  11206. {
  11207. char szDevType[CFG_COMMON_STRING_128]; // 设备类型, 支持: "VTT", "VTS"
  11208. char szDevName[CFG_COMMON_STRING_128]; // 设备名称
  11209. char szIP[MAX_ADDRESS_LEN]; // ip地址
  11210. int nPort; // 端口号
  11211. char szUser[CFG_COMMON_STRING_64]; // 用户名
  11212. char szPassword[CFG_COMMON_STRING_64]; // 密码
  11213. char szDevID[CFG_COMMON_STRING_128]; // 设备ID号, 必须唯一
  11214. char szParentID[CFG_COMMON_STRING_128]; // 父节点ID, 必须唯一
  11215. }CFG_DEV_LIST;
  11216. // 设备列表配置(对应命令 CFG_CMD_DEV_LIST_INFO)
  11217. typedef struct tagCFG_DEV_LIST_INFO
  11218. {
  11219. CFG_DEV_LIST* pstuDevList; // 配置信息, 用户分配内存,大小为sizeof(CFG_DEV_LIST)*dwDevListMaxCount
  11220. DWORD dwDevListMaxCount; // pstuDevList分配内存的有效结构体个数
  11221. DWORD dwDevListRetCount; // 实际返回的结构体个数, 解析成结构体时有效
  11222. }CFG_DEV_LIST_INFO;
  11223. #define MAX_CALIBRATE_MATRIX_LEN 8 // 标定矩阵最大长度
  11224. #define MAX_CALIBRATE_MATRIX_EX_LEN 32 // 标定矩阵最大长度(扩展)
  11225. #define MAX_POINT_PAIR_LEN 10 // 主从跟踪标定点对数组最大长度
  11226. // 主从式跟踪器标定矩阵配置(对应 CFG_CMD_CALIBRATE_MATRIX 命令)
  11227. typedef struct tagCFG_CALIBRATE_MATRIX_INFO
  11228. {
  11229. char szSlaveSN[CFG_COMMON_STRING_128]; // 从设备序列号
  11230. DWORD dwMatrixLen; // 标定矩阵中有效dword个数
  11231. DWORD dwMatrix[MAX_CALIBRATE_MATRIX_LEN]; // 标定矩阵, 是一个128字节的二进制串, 为提高解析效率, 保存为32个uint32_t值
  11232. }CFG_CALIBRATE_MATRIX_INFO;
  11233. // 主相机标定点坐标(8192坐标系)
  11234. typedef struct tagCFG_MASTER_POINT
  11235. {
  11236. int nX;
  11237. int nY;
  11238. } CFG_MASTER_POINT;
  11239. // 从相机(球机)标定点坐标(ptz归一化坐标)
  11240. typedef struct tagCFG_SLAVE_POINT
  11241. {
  11242. float fPositionX; //云台水平运动位置
  11243. float fPositionY; //云台垂直运动位置
  11244. float fZoom;
  11245. } CFG_SLAVE_POINT;
  11246. //主从跟踪标定点对配置
  11247. typedef struct tagCFG_POINT_PAIR
  11248. {
  11249. CFG_MASTER_POINT stuMasterPoint; // 主相机标定点,8192坐标系
  11250. CFG_SLAVE_POINT stuSlavePoint; // 从相机(球机)标定点,PTZ归一化坐标
  11251. } CFG_POINT_PAIR;
  11252. // 主从跟踪器标定配置具体值
  11253. typedef struct tagCFG_CALIBRATE_MATRIX_ELEMENT
  11254. {
  11255. char szMasterSN[CFG_COMMON_STRING_128]; // 主设备序列号(可选)
  11256. char szSlaveSN[CFG_COMMON_STRING_128]; // 从设备序列号
  11257. DWORD dwMatrixLen; // 标定矩阵中有效dword个数
  11258. DWORD dwMatrix[MAX_CALIBRATE_MATRIX_EX_LEN]; // 标定矩阵, 是一个128字节的二进制串, 为提高解析效率, 保存为32个uint32_t值
  11259. DWORD dwPointPairNum; // 主从跟踪标定点对的数量
  11260. CFG_POINT_PAIR stuPointPair[MAX_POINT_PAIR_LEN]; // 主从跟踪标定点对(可选),是一个数组,最多保存10组标定点对
  11261. BOOL bExpectRatio; // 表示是否需要期望倍率配置
  11262. float szExpectRatio[2]; // 期望倍率(可选,当bExpectRatio为TRUE时有效), 第一个值为云台T坐标,归一化[-1.0, 1.0],第二个值为比例
  11263. } CFG_CALIBRATE_MATRIX_ELEMENT;
  11264. // 主从式跟踪器标定矩阵扩展配置(对应 CFG_CMD_CALIBRATE_MATRIX命令)
  11265. typedef struct tagCFG_CALIBRATE_MATRIX_EX_INFO
  11266. {
  11267. DWORD nMaxCalibElement; // 主从跟踪器标定矩阵配置元素最大个数
  11268. DWORD nRetCalibElement; // 主从跟踪器标定矩阵配置元素实际个数
  11269. CFG_CALIBRATE_MATRIX_ELEMENT *pstCaliMatrixElement; // 主从跟踪器标定矩阵配置每个元素值,由用户申请内存,大小为sizeof(CFG_CALIBRATE_MATRIX_ELEMENT)*nMaxCalibElement
  11270. } CFG_CALIBRATE_MATRIX_EX_INFO;
  11271. // 防区延时配置(对应 CFG_CMD_DEFENCE_AREA_DELAY 命令)
  11272. typedef struct tagCFG_DEFENCE_AREA_DELAY_INFO
  11273. {
  11274. int nEnterDelay1; // 有进入延时的防区类型,除防区类型EM_CFG_DefenceAreaType_Entrance2外, 都使用此进入延时
  11275. int nEnterDelay2; // 只有防区类型为EM_CFG_DefenceAreaType_Entrance2, 才会使用此进入延时
  11276. int nExitDelay; // 所有有退出延时的防区, 都使用此退出延时
  11277. }CFG_DEFENCE_AREA_DELAY_INFO;
  11278. // 热成像增益模式
  11279. typedef enum tagCFG_THERMO_GAIN_MODE
  11280. {
  11281. CFG_THERMO_GAIN_MODE_UNKNOWN,
  11282. CFG_THERMO_GAIN_MODE_HIGHTEMP, // 高温
  11283. CFG_THERMO_GAIN_MODE_LOWTEMP, // 低温
  11284. CFG_THERMO_GAIN_MODE_AUTO, // 自动
  11285. } CFG_THERMO_GAIN_MODE;
  11286. // 热成像自动增益设置
  11287. typedef struct tagCFG_THERMO_AUTO_GAIN
  11288. {
  11289. int nLowToHigh; // 温度超过此设定值时,自动切换到高温模式
  11290. int nLHROI; // 由低温切换到高温时的ROI 百分比0~100
  11291. int nHighToLow; // 温度下降到此设定值时,自动切换到低温模式
  11292. int nHLROI; // 由高温切换到低温时的ROI 百分比0~100
  11293. } CFG_THERMO_AUTO_GAIN;
  11294. // 热成像配置,单个模式的配置
  11295. typedef struct tagCFG_THERMOGRAPHY_OPTION
  11296. {
  11297. int nEZoom; // 倍数
  11298. int nThermographyGamma; // 伽马值
  11299. int nColorization; // 伪彩色,见 NET_THERMO_COLORIZATION
  11300. int nSmartOptimizer; // 智能场景优化指数 0 ~100, 具体取值范围由能力决定
  11301. BOOL bOptimizedRegion; // 是否开启感兴趣区域,只有感兴趣区域内的信息会被纳入统计用来做自动亮度调整(AGC)
  11302. int nOptimizedROIType; // 感兴趣区域类型,见 NET_THERMO_ROI
  11303. int nCustomRegion; // 自定义区域个数
  11304. CFG_RECT stCustomRegions[64]; // 自定义区域,仅在 nOptimizedROIType 为 NET_THERMO_ROI_CUSTOM 时有效
  11305. char Reserved[256]; // 此保留字段确保此结构布局与 NET_THERMO_GRAPHY_INFO 相同
  11306. int nAgc; // 自动增益控制 [0-255]具体取值范围由能力决定
  11307. int nAgcMaxGain; // 最大自动增益 [0-255]具体取值范围由能力决定
  11308. int nAgcPlateau; // 增益均衡 具体取值范围由能力决定
  11309. int nGainMode; // 增益模式,参见 CFG_THERMO_GAIN_MODE
  11310. CFG_THERMO_AUTO_GAIN stAutoGain; // 自动增益设置,只在增益模式为 CFG_THERMO_GAIN_MODE_AUTO 有效
  11311. } CFG_THERMOGRAPHY_OPTION;
  11312. // 热成像配置
  11313. typedef struct tagCFG_THERMOGRAPHY_INFO
  11314. {
  11315. int nModeCount; // 模式个数,目前只有一个
  11316. CFG_THERMOGRAPHY_OPTION stOptions[16]; // 对应不同模式的配置
  11317. } CFG_THERMOGRAPHY_INFO;
  11318. // 平场聚焦校准模式
  11319. typedef enum tagEM_FLAT_FIELD_CORRECTION_MODE
  11320. {
  11321. EM_FLAT_FIELD_CORRECTION_UNKNOWN, // 未知模式,用于表示GetNewDevConfig获取到的未知模式,SetNewDevConfig不可使用该模式
  11322. EM_FLAT_FIELD_CORRECTION_AUTO, // "Auto":自动平场聚焦校准
  11323. EM_FLAT_FIELD_CORRECTION_MANUAL, // "Manual":手动平场聚焦校准
  11324. }EM_FLAT_FIELD_CORRECTION_MODE;
  11325. // 平场聚焦校准
  11326. typedef struct tagCFG_FLAT_FIELD_CORRECTION_INFO
  11327. {
  11328. EM_FLAT_FIELD_CORRECTION_MODE emMode; // 平场聚焦校准模式,详见EM_FLAT_FIELD_CORRECTION_MODE
  11329. int nPeriod; // 自动切换周期,单位为秒,数值范围参考NET_OUT_THERMO_GETCAPS中的stFFCPeriod
  11330. } CFG_FLAT_FIELD_CORRECTION_INFO;
  11331. // 热成像视频融合配置
  11332. typedef struct tagCFG_THERMO_FUSION_INFO
  11333. {
  11334. unsigned int unMode; // 热成像图像融合模式,0原始热成像图像,1 与可见光融合模式
  11335. unsigned int unRate; // 热成像图像融合率,当Mode=1时有效,0~100数值越大可见光的占比越大
  11336. } CFG_THERMO_FUSION_INFO;
  11337. // 热成像摄像头属性的局部对比度增强配置
  11338. typedef struct tagCFG_LCE_STATE_INFO
  11339. {
  11340. unsigned int unLCEValue; // 局部对比度增强状态值 范围[0,128]
  11341. unsigned int unHistGramValue; // 直方图Y轴数据线性度,值越大图像灰度分布越宽,值越小灰度分布越集中,范围[0,32]
  11342. } CFG_LCE_STATE_INFO;
  11343. // 统计量类型
  11344. typedef enum tagCFG_STATISTIC_TYPE
  11345. {
  11346. CFG_STATISTIC_TYPE_UNKNOWN,
  11347. CFG_STATISTIC_TYPE_VAL, // 具体值
  11348. CFG_STATISTIC_TYPE_MAX, // 最大
  11349. CFG_STATISTIC_TYPE_MIN, // 最小
  11350. CFG_STATISTIC_TYPE_AVR, // 平均
  11351. CFG_STATISTIC_TYPE_STD, // 标准
  11352. CFG_STATISTIC_TYPE_MID, // 中间
  11353. CFG_STATISTIC_TYPE_ISO, // ISO
  11354. } CFG_STATISTIC_TYPE;
  11355. // 比较运算结果
  11356. typedef enum tagCFG_COMPARE_RESULT
  11357. {
  11358. CFG_COMPARE_RESULT_UNKNOWN,
  11359. CFG_COMPARE_RESULT_BELOW, // 低于
  11360. CFG_COMPARE_RESULT_MATCH, // 匹配
  11361. CFG_COMPARE_RESULT_ABOVE, // 高于
  11362. } CFG_COMPARE_RESULT;
  11363. // 测温点报警设置
  11364. typedef struct tagRADIOMETRY_ALARMSETTING
  11365. {
  11366. int nId; // 报警唯一编号 报警编号统一编码
  11367. BOOL bEnable; // 是否开启该点报警
  11368. int nResultType; // 测温报警结果类型,见 CFG_STATISTIC_TYPE,可取值:
  11369. // 点测温:具体值,
  11370. // 线测温:最大, 最小, 平均
  11371. // 区域测温:最大, 最小, 平均, 标准, 中间, ISO
  11372. int nAlarmCondition; // 报警条件,见 CFG_COMPARE_RESULT
  11373. float fThreshold; // 报警阈值温度 浮点数
  11374. float fHysteresis; // 温度误差,浮点数,比如0.1 表示正负误差在0.1范围内
  11375. int nDuration; // 阈值温度持续时间 单位:秒
  11376. } CFG_RADIOMETRY_ALARMSETTING;
  11377. // 测温规则本地参数配置
  11378. typedef struct tagRADIOMETRY_LOCALPARAM
  11379. {
  11380. BOOL bEnable; // 是否启用本地配置
  11381. float fObjectEmissivity; // 目标辐射系数 浮点数 0~1
  11382. int nObjectDistance; // 目标距离
  11383. int nRefalectedTemp; // 目标反射温度
  11384. } CFG_RADIOMETRY_LOCALPARAM;
  11385. // 区域测温的子类型
  11386. typedef enum tagEM_CFG_AREA_SUBTYPE
  11387. {
  11388. EM_CFG_AREA_SUBTYPE_UNKNOWN,
  11389. EM_CFG_AREA_SUBTYPE_RECT, // 矩形
  11390. EM_CFG_AREA_SUBTYPE_ELLIPSE, // 椭圆
  11391. EM_CFG_AREA_SUBTYPE_POLYGON, // 多边形
  11392. } EM_CFG_AREA_SUBTYPE;
  11393. // 测温规则
  11394. typedef struct tagCFG_RADIOMETRY_RULE
  11395. {
  11396. BOOL bEnable; // 测温使能
  11397. int nPresetId; // 预置点编号
  11398. int nRuleId; // 规则编号
  11399. char szName[128]; // 自定义名称
  11400. int nMeterType; // 测温模式的类型,见 NET_RADIOMETRY_METERTYPE
  11401. CFG_POLYGON stCoordinates[64]; // 测温点坐标 使用相对坐标体系,取值均为0~8191
  11402. int nCoordinateCnt; // 测温点坐标实际个数
  11403. int nSamplePeriod; // 温度采样周期 单位 : 秒
  11404. CFG_RADIOMETRY_ALARMSETTING stAlarmSetting[64]; // 测温点报警设置
  11405. int nAlarmSettingCnt; // 测温点报警设置实际个数
  11406. CFG_RADIOMETRY_LOCALPARAM stLocalParameters; // 本地参数配置
  11407. EM_CFG_AREA_SUBTYPE emAreaSubType; // 区域测温的子类型
  11408. } CFG_RADIOMETRY_RULE;
  11409. // 测温规则配置结构
  11410. typedef struct tagCFG_RADIOMETRY_RULE_INFO
  11411. {
  11412. int nCount; // 规则个数
  11413. CFG_RADIOMETRY_RULE stRule[512]; // 测温规则
  11414. } CFG_RADIOMETRY_RULE_INFO;
  11415. // 温度统计
  11416. typedef struct tagCFG_TEMP_STATISTICS
  11417. {
  11418. BOOL bEnable; // 是否开启温度统计
  11419. char szName[128]; // 测温项的名字
  11420. int nMeterType; // 测温模式的类型,见 NET_RADIOMETRY_METERTYPE
  11421. int nPeriod; // 保存温度数据周期
  11422. } CFG_TEMP_STATISTICS;
  11423. // 温度统计配置结构
  11424. typedef struct tagCFG_TEMP_STATISTICS_INFO
  11425. {
  11426. int nCount; // 个数
  11427. CFG_TEMP_STATISTICS stStatistics[64]; // 温度统计
  11428. } CFG_TEMP_STATISTICS_INFO;
  11429. // 温度单位
  11430. typedef enum tagCFG_TEMPERATURE_UNIT
  11431. {
  11432. TEMPERATURE_UNIT_UNKNOWN,
  11433. TEMPERATURE_UNIT_CENTIGRADE, // 摄氏度
  11434. TEMPERATURE_UNIT_FAHRENHEIT, // 华氏度
  11435. } CFG_TEMPERATURE_UNIT;
  11436. // 热成像测温全局配置
  11437. typedef struct tagCFG_THERMOMETRY_INFO
  11438. {
  11439. int nRelativeHumidity; // 相对湿度
  11440. float fAtmosphericTemperature; // 大气温度
  11441. float fObjectEmissivity; // 物体辐射系数
  11442. int nObjectDistance; // 物体距离
  11443. float fReflectedTemperature; // 物体反射温度
  11444. int nTemperatureUnit; // 温度单位,见 TEMPERATURE_UNIT
  11445. BOOL bIsothermEnable; // 色标功能使能
  11446. int nMinLimitTemp; // 等温线下限温度值
  11447. int nMediumTemp; // 等温线中位温度值
  11448. int nMaxLimitTemp; // 等温线上限温度值
  11449. int nSaturationTemp; // 等温线饱和温度值
  11450. CFG_RECT stIsothermRect; // 色温条矩形区域(OSD 位置),使用相对坐标体系,取值均为0-8191
  11451. BOOL bColorBarDisplay; // 是否显示色标条(OSD 叠加)
  11452. BOOL bHotSpotFollow; // 是否开启热点探测追踪使能
  11453. BOOL bTemperEnable; // 测温开关
  11454. CFG_RGBA stHighCTMakerColor; // 高色温标注颜色
  11455. CFG_RGBA stLowCTMakerColor; // 低色温标注颜色
  11456. } CFG_THERMOMETRY_INFO;
  11457. // 近光灯信息
  11458. typedef struct tagCFG_NEARLIGHT_INFO
  11459. {
  11460. BOOL bEnable; // 是否使能,TRUE使能,FALSE不使能
  11461. DWORD dwLightPercent; // 灯光亮度百分比值(0~100)
  11462. DWORD dwAnglePercent; // 灯光角度百分比值(0~100)
  11463. }CFG_NEARLIGHT_INFO;
  11464. // 远光灯信息
  11465. typedef struct tagCFG_FARLIGHT_INFO
  11466. {
  11467. BOOL bEnable; // 是否使能,TRUE使能,FALSE不使能
  11468. DWORD dwLightPercent; // 灯光亮度百分比值(0~100)
  11469. DWORD dwAnglePercent; // 灯光角度百分比值(0~100)
  11470. }CFG_FARLIGHT_INFO;
  11471. // 灯光模式
  11472. typedef enum tagEM_CFG_LIGHTING_MODE
  11473. {
  11474. EM_CFG_LIGHTING_MODE_UNKNOWN, // 未知
  11475. EM_CFG_LIGHTING_MODE_MANUAL, // 手动
  11476. EM_CFG_LIGHTING_MODE_ZOOMPRIO, // 倍率优先
  11477. EM_CFG_LIGHTING_MODE_TIMING, // 定时模式
  11478. EM_CFG_LIGHTING_MODE_AUTO, // 自动
  11479. EM_CFG_LIGHTING_MODE_OFF, // 关闭模式
  11480. }EM_CFG_LIGHTING_MODE;
  11481. #define MAX_LIGHTING_NUM 16
  11482. // 灯光设置详情
  11483. typedef struct tagCFG_LIGHTING_DETAIL
  11484. {
  11485. int nCorrection; // 灯光补偿 (0~4) 倍率优先时有效
  11486. int nSensitive; // 灯光灵敏度(0~5)倍率优先时有效,默认为3
  11487. EM_CFG_LIGHTING_MODE emMode; // 灯光模式
  11488. int nNearLight; // 近光灯有效个数
  11489. CFG_NEARLIGHT_INFO stuNearLights[MAX_LIGHTING_NUM]; // 近光灯列表
  11490. int nFarLight; // 远光灯有效个数
  11491. CFG_FARLIGHT_INFO stuFarLights[MAX_LIGHTING_NUM]; // 远光灯列表
  11492. }CFG_LIGHTING_DETAIL;
  11493. #define MAX_LIGHTING_DETAIL_NUM 16
  11494. // 灯光设置(对应 CFG_CMD_LIGHTING 命令)
  11495. typedef struct tagCFG_LIGHTING_INFO
  11496. {
  11497. int nLightingDetailNum; // 灯光设置有效个数
  11498. CFG_LIGHTING_DETAIL stuLightingDetail[MAX_LIGHTING_DETAIL_NUM]; // 灯光设置信息列表
  11499. }CFG_LIGHTING_INFO;
  11500. // 灯光计划设置(对应 CFG_CMD_LIGHTINGSCHEDULE 命令),当 CFG_CMD_LIGHTING 配置中Mode为Timing时有效
  11501. typedef struct tagCFG_LIGHTINGSCHEDULE_INFO
  11502. {
  11503. CFG_TIME_SCHEDULE stuTimeSchedule; // 报警计划
  11504. }CFG_LIGHTINGSCHEDULE_INFO;
  11505. // 雨刷工作模式
  11506. typedef enum tagEM_CFG_RAINBRUSHMODE_MODE
  11507. {
  11508. EM_CFG_RAINBRUSHMODE_MODE_UNKNOWN, // 未知
  11509. EM_CFG_RAINBRUSHMODE_MODE_MANUAL, // 手动模式
  11510. EM_CFG_RAINBRUSHMODE_MODE_TIMING, // 定时模式
  11511. EM_CFG_RAINBRUSHMODE_MODE_AUTO, // 自动感应模式
  11512. }EM_CFG_RAINBRUSHMODE_MODE;
  11513. // 雨刷使能电平模式
  11514. typedef enum tagEM_CFG_RAINBRUSHMODE_ENABLEMODE
  11515. {
  11516. EM_CFG_RAINBRUSHMODE_ENABLEMODE_UNKNOWN, // 未知
  11517. EM_CFG_RAINBRUSHMODE_ENABLEMODE_LOW, // 低电平有效(常闭)
  11518. EM_CFG_RAINBRUSHMODE_ENABLEMODE_HIGH, // 高电平有效(常开)
  11519. }EM_CFG_RAINBRUSHMODE_ENABLEMODE;
  11520. // 雨刷模式相关配置(对应 CFG_RAINBRUSHMODE_INFO 命令)
  11521. typedef struct tagCFG_RAINBRUSHMODE_INFO
  11522. {
  11523. EM_CFG_RAINBRUSHMODE_MODE emMode; // 雨刷工作模式
  11524. EM_CFG_RAINBRUSHMODE_ENABLEMODE emEnableMode; // 雨刷使能电平模式
  11525. int nPort; // 雨刷使用的IO端口,-1表示未接入设备,-2表示该字段无效(设备未传送该字段)
  11526. int nSensitivity; // 雨刷灵敏度, 只有当mode为Auto时有效, 范围[0, 10]
  11527. }CFG_RAINBRUSHMODE_INFO;
  11528. #define MAX_EMERGENCY_REOCRD_CLIENT_NUM 8 // 可以紧急录像存储的最大客户端数
  11529. // 客户端的紧急录像配置信息
  11530. typedef struct tagCFG_EMERGENCY_RECORD_CLIENT
  11531. {
  11532. char szDevID[CFG_COMMON_STRING_128]; // 客户端字符串标识作为对象名称,可以是客户端mac地址,若客户端是设备,则使用设备序列号
  11533. BOOL bEnable; // 使能
  11534. int nMaxTime; // 拉流异常断开之后进行紧急存储的最大时间,
  11535. }CFG_EMERGENCY_RECORD_CLIENT;
  11536. // 紧急录像存储配置(对应 CFG_CMD_EMERGENCY_RECORD_FOR_PULL)
  11537. typedef struct tagCFG_EMERGENCY_RECORD_FOR_PULL_INFO
  11538. {
  11539. int nClientNum; // 有效客户端紧急录像配置个数
  11540. CFG_EMERGENCY_RECORD_CLIENT stuEmRecordInfo[MAX_EMERGENCY_REOCRD_CLIENT_NUM];// 客户端紧急录像配置信息
  11541. }CFG_EMERGENCY_RECORD_FOR_PULL_INFO;
  11542. // 高频次报警
  11543. typedef struct tagCFG_HIGH_FREQUENCY
  11544. {
  11545. int nPeriod; // 统计周期, 以秒为单位, 默认30分钟(1800s)
  11546. int nMaxCount; // 在对应统计周期内最大允许上报报警数
  11547. }CFG_HIGH_FREQUENCY;
  11548. // 告警屏蔽规则配置(对应 CFG_CMD_ALARM_SHIELD_RULE)
  11549. typedef struct tagCFG_ALARM_SHIELD_RULE_INFO
  11550. {
  11551. CFG_HIGH_FREQUENCY stuHighFreq; // 高频次报警, 在一定周期内允许上报的报警次数,以此过滤对于报警的频繁上报导致信息干扰
  11552. }CFG_ALARM_SHIELD_RULE_INFO;
  11553. #define CFG_MAX_VIDEOIN_ANALYSER_NUM 3 // 每个视频通道内的最大视频分析器数量
  11554. #define CFG_MAX_ANALYSE_RULE_GROUP_NUM 8 // 视频分析规则组最大数量
  11555. // 智能分析规则组, 一个组中包含同类型的多条规则
  11556. typedef struct tagCFG_ANALYSERULE_GROUP
  11557. {
  11558. DWORD dwRuleType; // 规则类型,详见dhnetsdk.h中"智能分析事件类型"
  11559. int nRuleStructSize; // 规则类型对应的规则结构的大小, parse时的输出参数, packet时是输入参数
  11560. BOOL bEnable; // 使能
  11561. BOOL bEventHandlerEnable; // 报警联动使能, TRUE规则组报警联动使能, 组内所有规则使用共同的联动项; FALSE使用规则中各自的联动项
  11562. CFG_ALARM_MSG_HANDLE stuEventHandler; // 规则组报警联动
  11563. CFG_TIME_SCHEDULE stuEventTimeSection; // 规则组报警联动时间表
  11564. int nRuleNum; // 规则数量, parse时的输出参数, packet时是输入参数
  11565. char* pRuleBuf; // 规则缓冲, 需要用户分配内存, 用于存放规则信息
  11566. // 如规则类型为警戒线, pRuleBuf的内容就是多个CFG_CROSSLINE_INFO
  11567. int nRuleBufSize; // 规则缓冲大小, 用户填写
  11568. }CFG_ANALYSERULE_GROUP;
  11569. // 视频分析器信息
  11570. typedef struct tagCFG_VIDEO_IN_ANALYSER_INFO
  11571. {
  11572. CFG_ANALYSEGLOBAL_INFO stuGlobal; // 全局配置
  11573. CFG_ANALYSEMODULES_INFO stuModules; // 模块配置
  11574. CFG_ANALYSERULE_GROUP stuRuleGroup[CFG_MAX_ANALYSE_RULE_GROUP_NUM]; // 规则配置, 数组内元素的规则缓冲需要用户分配内存
  11575. int nRuleGroupNum; // 规则组数量
  11576. }CFG_VIDEOIN_ANALYSER_INFO;
  11577. // 视频通道内的智能规则, 该结构体很大, 使用时在堆中分配内存
  11578. typedef struct tagCFG_VIDEO_IN_ANALYSE_RULE_INFO
  11579. {
  11580. int nAnalyserNum; // 分析器数量
  11581. CFG_VIDEOIN_ANALYSER_INFO stuAnalysers[CFG_MAX_VIDEOIN_ANALYSER_NUM]; // 分析器信息
  11582. }CFG_VIDEOIN_ANALYSE_RULE_INFO;
  11583. typedef enum tagEM_CFG_ACCESS_WORD_MODE
  11584. {
  11585. EM_CFG_ACCESS_WORD_MODE_UNKNOWN, // 未知
  11586. EM_CFG_ACCESS_WORD_MODE_NORMAL, // "Normal" 正常模式
  11587. EM_CFG_ACCESS_WORD_MODE_CLEAN, // "Clean" 打扫模式
  11588. EM_CFG_ACCESS_WORD_MODE_DECORATION, // "Decoration" 装修模式
  11589. EM_CFG_ACCESS_WORD_MODE_UNUSED, // "Unused" 停用模式
  11590. EM_CFG_ACCESS_WORD_MODE_OUTSTANDING, // "Outstanding" 欠费模式
  11591. }EM_CFG_ACCESS_WORD_MODE;
  11592. // 门锁工作模式(对应 CFG_CMD_ACCESS_WORK_MODE)
  11593. typedef struct tagCFG_ACCESS_WORK_MODE_INFO
  11594. {
  11595. EM_CFG_ACCESS_WORD_MODE emMode; // 工作模式
  11596. }CFG_ACCESS_WORK_MODE_INFO;
  11597. // 对讲远程方时间限制
  11598. typedef struct tagCFG_VIDEO_TALK_TIME_LIMIT
  11599. {
  11600. int nMaxRingingTime; // 来电振铃最大时长,超时自动挂断, 1-600秒
  11601. int nMaxConnectingTime; // 最大通话时长,超时自动挂断, 1-600分钟
  11602. UINT nMaxLeaveWordTime; // 最大自动留言时长,超时自动结束,1-600秒
  11603. } CFG_VIDEO_TALK_TIME_LIMIT;
  11604. // 远程设备类型
  11605. typedef enum tagEM_CFG_VT_TYPE
  11606. {
  11607. EM_CFG_VT_TYPE_VTH = 0, // VTH
  11608. EM_CFG_VT_TYPE_VTO, // VTO
  11609. EM_CFG_VT_TYPE_VTS, // VTS
  11610. EM_CFG_VT_TYPE_MAX,
  11611. } EM_CFG_VT_TYPE;
  11612. // 视频对讲电话通用配置(CFG_CMD_VIDEO_TALK_PHONE_GENERAL)
  11613. typedef struct tagCFG_VIDEO_TALK_PHONE_GENERAL
  11614. {
  11615. char szRingFile[MAX_PATH]; // 铃声文件路径
  11616. int nRingVolume; // 铃音音量, 0-100
  11617. int nTalkVolume; // 通话音量, 0-100
  11618. CFG_NET_TIME stuDisableRingStartTime; // 免扰开始时间
  11619. CFG_NET_TIME stuDisableRingEndTime; // 免扰结束时间
  11620. CFG_VIDEO_TALK_TIME_LIMIT stuTimeLimit[EM_CFG_VT_TYPE_MAX]; // 每个元素对应一种远程设备类型,当前只有VTS有效
  11621. // 0-VTH,1-VTO,2-VTS
  11622. int nMaxMonitorTime; // 监视最大时长,超时自动结束, 1-600分钟
  11623. int nMaxRecordTime; // 录像最大时长,超时自动结束, 15-300秒
  11624. BOOL bSnapEnable; // 呼叫联动抓图使能
  11625. // 抓图后上传路径见配置项RecordStoragePoint的EventSnapShot
  11626. BOOL bRingSoundEnable; // 呼叫铃声使能
  11627. char szVthRingFile[CFG_COMMON_STRING_128]; // 室内机被室内机呼叫的铃声文件
  11628. UINT nVthRingVolume; // 室内机被室内机呼叫铃声音量
  11629. BOOL bLeaveMsgSoundEnable; // 留影留言提示声使能
  11630. BOOL bSilenceEnable; // 是否静音
  11631. UINT nMaxMonitorIPCTime; // IPC监视最大时长,超时自动结束,0-10小时,单位为秒
  11632. UINT nReviseTime; // 免扰时间使用,当系统时间改变的时候,增加这个时间来产生新的免扰结束时间,单位秒
  11633. BOOL bTalkRecordUpload; // 呼叫记录是否上传
  11634. UINT nSnapShotCount; // 呼叫抓拍图片张数,1-5张
  11635. BOOL bRemoteControl; // 是否接受远程控制操作
  11636. // true时,在客户端可远程操作设备上智能家居设备、设备的布撤防动作。
  11637. BOOL bLeaveMessageEnable; // 留言记录是否开启
  11638. BOOL bLeaveMessageUpload; // 留言记录是否上传
  11639. BOOL bLocalVideoEnable; // 本地视频是否开启
  11640. BOOL bPublishInfoOverlayingEnable; // 公告信息叠加使能控制
  11641. } CFG_VIDEO_TALK_PHONE_GENERAL;
  11642. // 抓图合成配置
  11643. typedef struct tagCFG_TRAFFIC_SNAP_MOSAIC_INFO
  11644. {
  11645. BOOL bEnable; // 是否做图片合成
  11646. int nPicCompressRate; // 图片压缩比,10-100
  11647. BOOL bUploadNormalSnap; // 是否上传原始图片
  11648. } CFG_TRAFFIC_SNAP_MOSAIC_INFO;
  11649. // 交通抓拍次数
  11650. #define TRAFFIC_SNAP_COUNT 4
  11651. // 抓拍设置,对应一个规则
  11652. typedef struct tagCFG_SNAPSHOT_RULE
  11653. {
  11654. int nType; // 见 dhnetsdk.h 中“智能分析事件类型”宏定义
  11655. int nRepeatInterval; // 1~1440,单位:分钟,默认1440
  11656. int nSnapShotType[TRAFFIC_SNAP_COUNT]; // 抓拍类型数组,0:未定义,1:近景,2:远景
  11657. int nSingleInterval[TRAFFIC_SNAP_COUNT];// 抓图时间间隔数组,
  11658. // 第一个时间:5~180 默认10 (违章停车规则有效)单位秒
  11659. // 第二、三、四个时间:1秒~60分默认20秒
  11660. } CFG_SNAPSHOT_RULE;
  11661. // 抓拍设置,对应一个场景
  11662. typedef struct tagCFG_SCENE_SNAPSHOT_RULE
  11663. {
  11664. int nPresetID; // 场景预置点号
  11665. int nCount; // 规则个数
  11666. CFG_SNAPSHOT_RULE stRule[32]; // 单规则设置
  11667. } CFG_SCENE_SNAPSHOT_RULE;
  11668. // 场景抓拍设置
  11669. typedef struct tagCFG_SCENE_SNAPSHOT_RULE_INFO
  11670. {
  11671. int nCount; // 场景个数
  11672. CFG_SCENE_SNAPSHOT_RULE stScene[32]; // 单场景配置
  11673. } CFG_SCENE_SNAPSHOT_RULE_INFO;
  11674. #define CFG_MAX_PTZTOUR_NUM 64 // 巡航路径数量
  11675. #define CFG_MAX_PTZTOUR_PRESET_NUM 64 // 巡航路径包含的预置点数量
  11676. // 巡航路径中的预置点
  11677. typedef struct tagCFG_PTZTOUR_PRESET
  11678. {
  11679. int nPresetID; // 预置点编号
  11680. int nDuration; // 在改预置点的停留时间, 单位秒
  11681. int nSpeed; // 到达该预置点的转动速度, 1~10
  11682. } CFG_PTZTOUR_PRESET;
  11683. // 巡航路径
  11684. typedef struct tagCFG_PTZTOUR_SINGLE
  11685. {
  11686. BOOL bEnable; // 使能
  11687. char szName[CFG_COMMON_STRING_64]; // 名称
  11688. int nPresetsNum; // 预置点数量
  11689. CFG_PTZTOUR_PRESET stPresets[CFG_MAX_PTZTOUR_PRESET_NUM]; // 该路径包含的预置点参数
  11690. } CFG_PTZTOUR_SINGLE;
  11691. // 云台巡航路径配置
  11692. typedef struct tagCFG_PTZTOUR_INFO
  11693. {
  11694. int nCount; // 巡航路径数量
  11695. CFG_PTZTOUR_SINGLE stTours[CFG_MAX_PTZTOUR_NUM]; // 巡航路径, 每个通道包含多条巡航路径
  11696. } CFG_PTZTOUR_INFO;
  11697. // 门口机类型
  11698. typedef enum tagEM_CFG_VTO_TYPE
  11699. {
  11700. EM_CFG_VTO_TYPE_UNKNOW =0 , //未知
  11701. EM_CFG_VTO_TYPE_VTO , //单元门口机
  11702. EM_CFG_VTO_TYPE_WALL , //围墙机
  11703. EM_CFG_VTO_TYPE_MAX ,
  11704. }EM_CFG_VTO_TYPE;
  11705. // 门口机信息
  11706. typedef struct tagCFG_VTO_INFO
  11707. {
  11708. BOOL bEnable; // 使能
  11709. char szID[CFG_COMMON_STRING_64]; // 门口机标识
  11710. char szIP[CFG_COMMON_STRING_64]; // IP地址
  11711. unsigned int nPort; // 端口
  11712. EM_CFG_VTO_TYPE emType; // 门口机类型
  11713. char szMidNum[CFG_COMMON_STRING_32]; // 门口机中号
  11714. char szMachineAddress[CFG_COMMON_STRING_128]; // 门口机所处位置
  11715. char szLoginUsername[CFG_COMMON_STRING_32]; // 三代登录用户名
  11716. char szLoginPassWord[CFG_COMMON_STRING_32]; // 三代登录密码
  11717. char szRingFile[CFG_COMMON_STRING_256]; //门口机呼叫室内机,室内机的铃声文件
  11718. int nRingVolume; // 室内机的铃声大小
  11719. }CFG_VTO_INFO;
  11720. // 门口机信息列表
  11721. typedef struct tagCFG_VTO_LIST
  11722. {
  11723. int nVTONum; // 门口机数量
  11724. CFG_VTO_INFO stuVTOInfos[CFG_MAX_VTO_NUM]; // 门口机信息
  11725. }CFG_VTO_LIST;
  11726. //触摸屏坐标点
  11727. typedef struct tagCFG_TS_POINT
  11728. {
  11729. unsigned int nX; //坐标范围[0 - 65535]
  11730. unsigned int nY; //坐标范围[0 - 65535]
  11731. }CFG_TS_POINT;
  11732. //触摸屏校准配置
  11733. typedef struct tagCFG_TSPOINT_INFO
  11734. {
  11735. CFG_TS_POINT stDisplay[TS_POINT_NUM]; //显示坐标,现在只支持3个点
  11736. CFG_TS_POINT stScreen[TS_POINT_NUM]; //屏幕坐标,现在只支持3个点
  11737. }CFG_TSPOINT_INFO;
  11738. //室内机类型
  11739. typedef enum tagEM_CFG_VTH_TYPE
  11740. {
  11741. EM_CFG_VTH_TYPE_UNKNOW=0 , // 未知
  11742. EM_CFG_VTH_TYPE_MAIN , // 主室内机
  11743. EM_CFG_VTH_TYPE_SUB , // 子室内机
  11744. }EM_CFG_VTH_TYPE;
  11745. //设备使用场景
  11746. typedef enum tagEM_CFG_VTH_APPTYPE
  11747. {
  11748. EM_CFG_VTH_APPTYPE_UNKNOW=0 , //未知
  11749. EM_CFG_VTH_APPTYPE_COMMON , //正常室内机
  11750. EM_CFG_VTH_APPTYPE_MANAGER , //管理中心
  11751. }EM_CFG_VTH_APPTYPE;
  11752. //室内机号码信息
  11753. typedef struct tagCFG_VTH_NUMBER_INFO
  11754. {
  11755. char szShortNumber[CFG_COMMON_STRING_32]; // 短号 范围[1,9999],标示不同室内机;如果是室内分机,短号则为"9901-N" N为1,2,3.
  11756. char szMiddleNumber[CFG_COMMON_STRING_32]; // 中号 格式:小区号(1位)+幢号(2位)+单元号(1位)+短号(4位)
  11757. char szVirtualNumber[CFG_COMMON_STRING_32]; // 室内机虚号 网络呼叫时,此设备对外的号码,如同手机号码
  11758. EM_CFG_VTH_TYPE emVthType; // 室内机类型
  11759. char szMainNumber[CFG_COMMON_STRING_32]; // 主房间号 范围[1,9999] emVthType为EM_CFG_VTH_TYPE_SUB时有效
  11760. char szSubNumber[CFG_COMMON_STRING_32]; // 分机号 范围[1,5] emVthType为是EM_CFG_VTH_TYPE_SUB时有效
  11761. char szMainDeviceIP[CFG_COMMON_STRING_64]; // 主室内机IP 用于子室内的配置同步给主室内机 emVthType 是EM_CFG_VTH_TYPE_SUB时有效,
  11762. EM_CFG_VTH_APPTYPE emVthAppType; // 设备使用场景
  11763. int nLockState; // 锁定状态,0表示不锁定,默认值; 1表示锁定
  11764. char szUsername[MAX_USERNAME_LEN]; // 三代用户名
  11765. char szPassword[MAX_PASSWORD_LEN]; // 三代密码
  11766. }CFG_VTH_NUMBER_INFO;
  11767. // GPS工作模式
  11768. typedef enum tagEM_CFG_GPS_MODE
  11769. {
  11770. EM_CFG_GPS_MODE_UNKNOWN,
  11771. EM_CFG_GPS_MODE_GPS, // GPS
  11772. EM_CFG_GPS_MODE_BEIDOU, // BEIDOU
  11773. EM_CFG_GPS_MODE_GLONASS, // GLONASS
  11774. EM_CFG_GPS_MODE_MIX, // MIX
  11775. EM_CFG_GPS_MODE_END, // 仅用于标识总数
  11776. } EM_CFG_GPS_MODE;
  11777. // 平台类型
  11778. typedef enum tagEM_CFG_TRANSFER_PLATFORM
  11779. {
  11780. EM_CFG_TRANSFER_PLATFORM_UNKNOWN,
  11781. EM_CFG_TRANSFER_PLATFORM_DSS, // DSS
  11782. EM_CFG_TRANSFER_PLATFORM_JTBB, // JTBB
  11783. EM_CFG_TRANSFER_PLATFORM_END, // 仅用于标识总数
  11784. } EM_CFG_TRANSFER_PLATFORM;
  11785. // 单个GPS配置
  11786. typedef struct tagCFG_GPS_INFO
  11787. {
  11788. BOOL bEnable; // 是否使能
  11789. int nSampleInterval; // 硬件采集周期, 单位毫秒
  11790. int nNotifyInterval; // 应用程序通知周期, 单位毫秒
  11791. BOOL bSyncTime; // 是否将GPS时间同步到设备
  11792. EM_CFG_GPS_MODE emCurMode; // 模块当前工作模式
  11793. int nSupportModes; // 支持的定位模式数量
  11794. EM_CFG_GPS_MODE emSupportModes[EM_CFG_GPS_MODE_END]; // 模块支持的定位模式
  11795. char szCurModule[CFG_COMMON_STRING_64]; // 当前模块厂家类型标志
  11796. BOOL bShowLocation; // 是否支持地理位置显示
  11797. int nSaveDays; // GPS保存天数,用于补传, 单位:天,范围:0-365
  11798. int nTransferPlatform; // 支持补传的平台数量
  11799. EM_CFG_TRANSFER_PLATFORM emTransferPlatform[EM_CFG_TRANSFER_PLATFORM_END]; // 支持补传的平台,数据接收方
  11800. } CFG_GPS_INFO;
  11801. #define CFG_GPS_INFO_MAX 16
  11802. // GPS配置
  11803. typedef struct tagCFG_GPS_INFO_ALL
  11804. {
  11805. int nGps; // GPS个数
  11806. CFG_GPS_INFO stGps[CFG_GPS_INFO_MAX]; // GPS配置, 每个GPS设备对应一个配置
  11807. } CFG_GPS_INFO_ALL;
  11808. // VTO设备类型
  11809. typedef enum tagNET_CFG_VTO_TYPE
  11810. {
  11811. NET_CFG_VTO_TYPE_UNKNOWN = 0, // 未知
  11812. NET_CFG_VTO_TYPE_VILLA, // 1 别墅机
  11813. NET_CFG_VTO_TYPE_DOOR, // 2 门口机
  11814. NET_CFG_VTO_TYPE_LADDER, // 3 梯控机
  11815. NET_CFG_VTO_TYPE_APART, // 4 模块化门口机
  11816. NET_CFG_VTO_TYPE_SECOND, // 5 二次确认机
  11817. NET_CFG_VTO_TYPE_FACE, // 6 人脸录入机
  11818. NET_CFG_VTO_TYPE_CONTROLLER, // 7 控制器
  11819. NET_CFG_VTO_TYPE_MAX,
  11820. } NET_CFG_VTO_TYPE;
  11821. // 门口机类型
  11822. //VTO基本信息
  11823. typedef struct tagCFG_VTO_BASIC_INFO
  11824. {
  11825. char szNumber[AV_CFG_DeviceNo_Len]; // 门口机编号
  11826. NET_CFG_VTO_TYPE emCfgVtoType; // 设备类型
  11827. EM_CFG_VTO_TYPE emType; // 门口机类型 1单元门口机 2围墙机
  11828. char szAnalogVersion[CFG_COMMON_STRING_64]; // 模拟系统版本
  11829. BOOL bFaceDetect; // 人脸识别使 1开启 0关闭
  11830. int nPositon; // VTO所在楼层位置 Int32, 0 表示无效
  11831. // 1,2,…表示地上一层,二层 -1,-2,…表示地下一层,二层
  11832. }CFG_VTO_BASIC_INFO;
  11833. typedef enum tagEM_CFG_SHORTCUT_CALL_POSITION_TYPE
  11834. {
  11835. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_UNKNOWN, // 未知
  11836. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_SUPERMARKET, // 超市
  11837. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_RESTAURANT, // 餐厅
  11838. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_HOSPITAL, // 医院
  11839. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_MANAGER, // 管理中心
  11840. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_CUSTOM, // 自定义
  11841. EM_CFG_SHORTCUT_CALL_POSITION_TYPE_FRUITSTORE, // 水果店
  11842. }EM_CFG_SHORTCUT_CALL_POSITION_TYPE;
  11843. //快捷号信息
  11844. typedef struct tagCFG_SHORTCUT_CALL
  11845. {
  11846. char szCallNumber[CFG_COMMON_STRING_64]; // 快捷号
  11847. EM_CFG_SHORTCUT_CALL_POSITION_TYPE emPositionType; // 地点类型
  11848. }CFG_SHORTCUT_CALL;
  11849. //快捷号配置
  11850. typedef struct tagCFG_SHORTCUT_CALL_INFO
  11851. {
  11852. int nMaxNum; // 最大结构体个数,与 pShortcutCallInfo 指向结构体个数保持一致
  11853. CFG_SHORTCUT_CALL* pShortcutCallInfo; // 用于存储快捷号信息的结构体指针,由用户申请
  11854. int nValidNum; // 有效结构体个数,获取时由sdk填写,设置时由用户填写
  11855. }CFG_SHORTCUT_CALL_INFO;
  11856. // 记录集GPSLocation的版本号
  11857. typedef struct tagCFG_LOCATION_VER_INFO
  11858. {
  11859. unsigned int nVer; // 版本号
  11860. } CFG_LOCATION_VER_INFO;
  11861. // 设备可访问地址过滤配置 CFG_CMD_PARKING_SPACE_ACCESS_FILTER
  11862. typedef struct tagCFG_PARKING_SPACE_ACCESS_FILTER_INFO
  11863. {
  11864. BOOL bEnable; // 过滤使能
  11865. int nTrustListNum; // 白名单IP数量
  11866. char szTrustList[CFG_MAX_TRUST_LIST][CFG_FILTER_IP_LEN]; // 白名单 是一个数组,每一个是IP
  11867. } CFG_PARKING_SPACE_ACCESS_FILTER_INFO;
  11868. // 工作时间配置 CFG_CMD_WORK_TIME
  11869. typedef struct tagCFG_WORK_TIME_INFO
  11870. {
  11871. BOOL bEnable; // 为TRUE时该配置生效,非工作时间上报DH_ALARM_BUS_DRIVE_AFTER_WORK事件,为FALSE时该配置无效
  11872. CFG_TIME stWorkTimeBegin; // 开始工作时间
  11873. CFG_TIME stWorkTimeEnd; // 结束工作时间
  11874. DWORD dwOutTimeBegin; // 开始外出及维修时间, utc秒
  11875. DWORD dwOutTimeEnd; // 结束外出及维修时间, utc秒
  11876. } CFG_WORK_TIME_INFO;
  11877. // 车位监管状态
  11878. typedef enum tagEM_CFG_LANE_STATUS
  11879. {
  11880. EM_CFG_LANE_STATUS_UNKOWN = -1, // 状态未知
  11881. EM_CFG_LANE_STATUS_UNSUPERVISE = 0, // 不监管
  11882. EM_CFG_LANE_STATUS_SUPERVISE = 1, // 监管
  11883. }EM_CFG_LANE_STATUS;
  11884. #define MAX_LANES_NUM 64 // 灯组监管车位的最多个数
  11885. // 单个车位指示灯本机配置
  11886. typedef struct tagCFG_PARKING_SPACE_LIGHT_GROUP_INFO
  11887. {
  11888. BOOL bEnable; // 为TRUE时该配置生效,为FALSE时该配置无效
  11889. EM_CFG_LANE_STATUS emLaneStatus[MAX_LANES_NUM]; // 灯组监管的车位,下标表示车位号
  11890. int nLanesNum; // 有效的车位数量(可以设为监管或不监管的车位数量)
  11891. BOOL bAcceptNetCtrl; // 是否接受远程控制
  11892. }CFG_PARKING_SPACE_LIGHT_GROUP_INFO;
  11893. #define MAX_LIGHT_GROUP_INFO_NUM 8 // 车位指示灯本机配置的最多个数
  11894. // 车位指示灯本机配置 CFG_CMD_PARKING_SPACE_LIGHT_GROUP
  11895. typedef struct tagCFG_PARKING_SPACE_LIGHT_GROUP_INFO_ALL
  11896. {
  11897. int nCfgNum; // 获取到的配置个数
  11898. CFG_PARKING_SPACE_LIGHT_GROUP_INFO stuLightGroupInfo[MAX_LIGHT_GROUP_INFO_NUM]; // 车位指示灯本机配置
  11899. }CFG_PARKING_SPACE_LIGHT_GROUP_INFO_ALL;
  11900. // 自定义音频配置(CFG_CMD_CUSTOM_AUDIO)
  11901. typedef struct tagCFG_CUSTOM_AUDIO
  11902. {
  11903. char szPlateNotInDB[MAX_PATH]; // 车牌未在数据库的告警音频路径
  11904. }CFG_CUSTOM_AUDIO;
  11905. // 雷达配置——车速
  11906. typedef struct tagCFG_RADAR_CARSPEED
  11907. {
  11908. int nTriggerLower; // 触发值下限
  11909. int nTriggerUpper; // 触发值上限
  11910. int nLimitLower; // 限速值下限
  11911. int nLimitUpper; // 限速值上限
  11912. } CFG_RADAR_CARSPEED;
  11913. // 大华雷达配置 CFG_CMD_DHRADER_PP
  11914. typedef struct tagCFG_DAHUA_RADAR
  11915. {
  11916. int nAngle; // 角度,用于修正雷达探头安装的角度造成的速度误差 单位度,范围0~45
  11917. BOOL bLowSpeed; // 是否启用低限速,为 TRUE 时,CFG_RADAR_CARSPEED 结构中各下限值有效
  11918. BOOL bSpeedForSize; // 是否启用大小车限速,为 FALSE 时仅小车速度配置(stuSmallCarSpeed)有效
  11919. CFG_RADAR_CARSPEED stuSmallCarSpeed; // 小车速度配置,bSpeedForSize 为 TRUE 时 nTriggerLower 成员同时也代表中车和大车的触发值下限
  11920. CFG_RADAR_CARSPEED stuMediumCarSpeed; // 中车速度配置,bSpeedForSize 为 TRUE 时有效,但 nTriggerLower 成员始终无效
  11921. CFG_RADAR_CARSPEED stuBigCarSpeed; // 大车速度配置,bSpeedForSize 为 TRUE 时有效,但 nTriggerLower 成员始终无效
  11922. char szName[256]; // 设备安装地址
  11923. int nSensitivity; // 灵敏度 范围0~5,0最高
  11924. int nDetectMode; // 检测模式,取值:-1 无意义 0 前向来车 1 前向去车 2 后向来车 3 后向去车 4 前向双向 5 后向双向
  11925. } CFG_DAHUA_RADAR;
  11926. // 设备通过wifi模块扫描周围无线设备配置 CFG_CMD_WIFI_SEARCH
  11927. typedef struct tagCFG_WIFI_SEARCH_INFO
  11928. {
  11929. BOOL bEnable; // 是否生效
  11930. int nPeriod; // 事件上报周期, 单位秒
  11931. BOOL bOptimizNotification; // 默认值是false,置false时,搜索到的设备状态每次均全部上报,置true时,搜索到的设备状态在未超过PD中OptimizationPeriod取值周期时,只上报新增/离开的设备状态;超过PD中OptimizationPeriod取值周期时,当次需上报搜索到的全部设备状态
  11932. } CFG_WIFI_SEARCH_INFO;
  11933. // 车载设备通信模块34G切换使能配置(CFG_CMD_G3G4AUTOCHANGE)
  11934. typedef struct tagCFG_G3G4AUTOCHANGE
  11935. {
  11936. BOOL bEnable; // 是否开启3G到4G自动切换功能 为TRUE时该配置生效,为FALSE时该配置无效
  11937. }CFG_G3G4AUTOCHANGE;
  11938. #define MAX_POS_CODE_LENGTH 32 // 刷卡器校验码最大长度
  11939. #define MAX_ARRAY_POS_CODE 10 // 刷卡器校验码数组最大个数
  11940. // 刷卡器校验码校验配置(对应 CFG_CMD_CHECKCODE)
  11941. typedef struct tagCFG_CHECKCODE_INFO
  11942. {
  11943. BOOL bEnable; // 使能
  11944. int nCodeCount; // 数组中有 有效值 的个数
  11945. char szCode[MAX_ARRAY_POS_CODE][MAX_POS_CODE_LENGTH]; // 刷卡器校验码数组
  11946. }CFG_CHECKCODE_INFO;
  11947. // 四川移动看店启迪平台配置(对应 CFG_CMD_VSP_SCYDKD)
  11948. typedef struct tagCFG_VSP_SCYDKD_INFO
  11949. {
  11950. BOOL bEnable; // 使能
  11951. char szServerIP[128]; // 注册请求的服务器IP地址
  11952. int nServerPort; // 注册请求的服务器端口号
  11953. char szDeviceID[32]; // 视频输入设备ID
  11954. char szUserName[32]; // 启迪平台用户名
  11955. }CFG_VSP_SCYDKD_INFO;
  11956. // 云台开机动作配置
  11957. typedef struct tagCFG_PTZ_POWERUP_INFO
  11958. {
  11959. BOOL bEnable; // 开机动作开关标志
  11960. int nFunction; // 开机功能,-1 表示继续断电前的动作,其他可取值见 EM_PTZ_ACTION
  11961. int nScanId; // 自动线扫编号
  11962. int nPresetId; // 预置点编号
  11963. int nPatternId; // 自动巡迹编号
  11964. int nTourId; // 巡航编号
  11965. } CFG_PTZ_POWERUP_INFO;
  11966. // VTH中远程IPC配置
  11967. #define MAX_REMOTE_IPC_NUM 64 // 最大可配置的远程IPC个数
  11968. // 远端IPC协议类型
  11969. typedef enum tagEM_CFG_REMOTE_IPC_DEVICE_PROTOCOL
  11970. {
  11971. EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL_UNKNOWN = 0, // 未知
  11972. EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL_HIKVISION, // 海康
  11973. EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL_PRIVATE3, // 私有三代协议
  11974. }EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL;
  11975. // 远端IPC码流类型
  11976. typedef enum tagEM_CFG_REMOTE_IPC_DEVICE_STREAMTYPE
  11977. {
  11978. EM_CFG_REMOTE_IPC_DEVICE_STREAM_TYPE_UNKNOWN = 0, // 未知
  11979. EM_CFG_REMOTE_IPC_DEVICE_STREAM_TYPE_MAIN, // 主码流
  11980. EM_CFG_REMOTE_IPC_DEVICE_STREAM_TYPE_EXTRA1, // 辅码流
  11981. }EM_CFG_REMOTE_IPC_DEVICE_STREAMTYPE;
  11982. #define MAX_REMOTEIPCINFO_IPADDR_LEN 128 // 远程IPC IP地址最大长度
  11983. #define MAX_REMOTEIPCINFO_MACADDR_LEN 64 // 远程IPC MAC地址最大长度
  11984. #define MAX_REMOTEIPCINFO_USERNAME_LEN 128 // 远程IPC用户名最大长度
  11985. #define MAX_REMOTEIPCINFO_USERPSW_LENGTH 128 // 远程IPC密码最大长度
  11986. // 远端IPC依赖设备类型
  11987. typedef enum tagEM_CFG_REMOTE_IPC_RELY_TYPE
  11988. {
  11989. EM_CFG_REMOTE_IPC_RELY_TYPE_UNKNOWN = 0, // 未知
  11990. EM_CFG_REMOTE_IPC_RELY_TYPE_IPC, // IPC
  11991. EM_CFG_REMOTE_IPC_RELY_TYPE_NVR, // NVR
  11992. }EM_CFG_REMOTE_IPC_RELY_TYPE;
  11993. // 远端IPC信息
  11994. typedef struct tagCFG_REMOTE_IPC_INFO
  11995. {
  11996. char szIP[MAX_REMOTEIPCINFO_IPADDR_LEN]; // 设备IP
  11997. char szMac[MAX_REMOTEIPCINFO_MACADDR_LEN]; // MAC地址
  11998. char szUser[MAX_REMOTEIPCINFO_USERNAME_LEN]; // 用户名
  11999. char szPassword[MAX_REMOTEIPCINFO_USERPSW_LENGTH]; // 密码
  12000. int nPort; // 端口
  12001. EM_CFG_REMOTE_IPC_DEVICE_PROTOCOL emProtocol; // 协议类型
  12002. EM_CFG_REMOTE_IPC_DEVICE_STREAMTYPE emStreamType; // 媒体流类型
  12003. int nChannel; // 通道号
  12004. EM_CFG_REMOTE_IPC_RELY_TYPE emIPCRely; // 依赖设备类型
  12005. }CFG_REMOTE_IPC_INFO;
  12006. // VTH中远程IPC配置结构体, 对应 CFG_CMD_VTH_REMOTE_IPC_INFO
  12007. // 该配置是全局的,不区分通道
  12008. typedef struct tagCFG_VTH_REMOTE_IPC_INFO
  12009. {
  12010. int nRemoteIPCNum; // 远端IPC个数
  12011. CFG_REMOTE_IPC_INFO stuCfgRemoteIpcInfo[MAX_REMOTE_IPC_NUM]; // 远端IPC信息
  12012. }CFG_VTH_REMOTE_IPC_INFO;
  12013. // 球机机芯日夜单时间段配置
  12014. typedef struct tagDAYNIGHT_INFO
  12015. {
  12016. int nType; // 切换类型,1 - 电子,2 - 机械,通常采用滤光片(ICR)
  12017. int nMode; // 彩转黑模式,1-总是彩色,2-自动,根据亮度切换,3-总是黑白,4-光敏电阻,5-根据增益切换,6-外部报警输入,7–外部IO输入
  12018. int nSensitivity; // 彩转黑灵敏度,可取值 0~7
  12019. int nDelay; // 日夜模式切换延时时间,可取值3~30,单位秒
  12020. } DAYNIGHT_INFO;
  12021. // 球机机芯日夜配置
  12022. typedef struct tagCFG_VIDEOIN_DAYNIGHT_INFO
  12023. {
  12024. DAYNIGHT_INFO stuSection[VIDEOIN_TSEC_NUM]; // 不同时间段配置,按顺序分别对应:普通、白天、黑夜
  12025. } CFG_VIDEOIN_DAYNIGHT_INFO;
  12026. // 单个纯音频通道的组成
  12027. typedef struct tagCFG_AUDIO_MIX_CHANNEL_INFO
  12028. {
  12029. int nChannelNum; // 音频输入通道个数
  12030. int nCombination[32]; // 音频输入通道列表
  12031. }CFG_AUDIO_MIX_CHANNEL_INFO;
  12032. // 配置定义每个纯音频通道的组成(对应 CFG_CMD_AUDIO_MIX_CHANNEL)
  12033. typedef struct tagCFG_AUDIO_MIX_CHANNEL_INFO_ALL
  12034. {
  12035. int nMixChnInfoNum; // 纯音频通道配置个数
  12036. CFG_AUDIO_MIX_CHANNEL_INFO stuMixChnInfo[16]; // 纯音频通道配置
  12037. }CFG_AUDIO_MIX_CHANNEL_INFO_ALL;
  12038. #define CFG_AUDIOTOUCH_PITCH_INVALID_VALUE -999 //变音配置中的nPitch的无效值
  12039. #define CFG_AUDIOTOUCH_PITCH_MIN_VALUE -50 //变音配置中的nPitch的最小值
  12040. #define CFG_AUDIOTOUCH_PITCH_MAX_VALUE 50 //变音配置中的nPitch的最大值
  12041. // 单个音频通道变音配置
  12042. typedef struct tagCFG_AUDIO_TOUCH_INFO
  12043. {
  12044. int nPitch; // 变音的值 -50~50,0表示不变音 当该通道中没有变音配置时,则nPitch为无效值 CFG_AUDIOTOUCH_INVALID_VALUE
  12045. }CFG_AUDIO_TOUCH_INFO;
  12046. // 音频通道变音配置 (对应 CFG_CMD_AUDIO_TOUCH)
  12047. typedef struct tagCFG_AUDIO_TOUCH_INFO_ALL
  12048. {
  12049. BOOL bEnable; // 使能
  12050. int nAudioTouchNum; // 音频通道变音配置个数
  12051. CFG_AUDIO_TOUCH_INFO stuTouchInfo[64]; // 音频通道变音配置
  12052. }CFG_AUDIO_TOUCH_INFO_ALL;
  12053. //虚焦检测配置
  12054. typedef struct tagCFG_UNFOCUSDETECT_INFO
  12055. {
  12056. BOOL bEnable; //虚焦检测使能:TRUE 开启,FALSE 关闭
  12057. int nSensitivity; //灵敏度 1~100
  12058. CFG_ALARM_MSG_HANDLE stuEventHandler; //报警联动
  12059. CFG_TIME_SECTION stuTimeSection[WEEK_DAY_NUM][MAX_REC_TSECT]; // 事件响应时间段,时间段获取和设置以此成员为准,忽略 stuEventHandler 中的 stuTimeSection
  12060. }CFG_UNFOCUSDETECT_INFO;
  12061. // 马赛克叠加配置(对应CFG_CMD_VIDEO_MOSAIC)
  12062. /*视频叠加马赛克,和PrivacyMasking(云台隐私遮挡)的差别在于,
  12063. VideoMosaic叠加的马赛克位置是固定的,而云台叠加的马赛克
  12064. 在云台旋转后,马赛克区域会反向偏移,即始终遮挡住同一物体。*/
  12065. typedef struct tagCFG_VIDEO_MOSAIC_INFO
  12066. {
  12067. BOOL bEnable; // 马赛克叠加使能
  12068. int nMosaic; // 马赛克颗粒大小,从能力项取值,颗粒越大与原始图像差异越大,反之越接近
  12069. int nRectCount; // 实际配置的马赛克区域个数
  12070. CFG_RECT stuRect[MAX_RECT_COUNT]; // 马赛克区域,使用相对坐标体系,取值均为0~8192
  12071. } CFG_VIDEO_MOSAIC_INFO;
  12072. // 场景变更检测配置
  12073. typedef struct tagCFG_MOVE_DETECT_INFO
  12074. {
  12075. BOOL bEnable; // 场景变更检测使能
  12076. int nSensitivity; // 检测灵敏度, 0~100
  12077. CFG_ALARM_MSG_HANDLE stuEventHandler; // 侦测联动信息
  12078. } CFG_MOVE_DETECT_INFO;
  12079. typedef enum tagEM_CFG_ATMCONTROLLER_MODE
  12080. {
  12081. EM_CFG_ATMCONTROLLER_MODE_UNKNOWN = 0, //未知
  12082. EM_CFG_ATMCONTROLLER_MODE_CLOSE, //关闭
  12083. EM_CFG_ATMCONTROLLER_MODE_OPEN, //开启
  12084. EM_CFG_ATMCONTROLLER_MODE_LINKAGE, //人体探测联动模式
  12085. }EM_CFG_ATMCONTROLLER_MODE;
  12086. // 防护舱照明灯控制配置
  12087. typedef struct tagCFG_FLOODLIGHT_CONTROLMODE_INFO
  12088. {
  12089. EM_CFG_ATMCONTROLLER_MODE emControlMode; //控制模式
  12090. }CFG_FLOODLIGHT_CONTROLMODE_INFO;
  12091. //防护舱风扇控制配置
  12092. typedef struct tagCFG_AIRFAN_CONTROLMODE_INFO
  12093. {
  12094. EM_CFG_ATMCONTROLLER_MODE emControlMode; //控制模式
  12095. }CFG_AIRFAN_CONTROLMODE_INFO;
  12096. // EAP方法
  12097. typedef enum tagEM_CFG_EAP_METHOD
  12098. {
  12099. EM_CFG_EAP_METHOD_UNKNOWN, // UnKnown
  12100. EM_CFG_EAP_METHOD_PEAP, // PEAP
  12101. EM_CFG_EAP_METHOD_TLS, // TLS
  12102. EM_CFG_EAP_METHOD_TTLS, // TTLS
  12103. } EM_CFG_EAP_METHOD;
  12104. // EAP身份验证方法
  12105. typedef enum tagEM_CFG_EAP_AUTH_TYPE
  12106. {
  12107. EM_CFG_EAP_AUTH_TYPE_UNKNOWN, // UnKnown
  12108. EM_CFG_EAP_AUTH_TYPE_NONE, // NONE
  12109. EM_CFG_EAP_AUTH_TYPE_PAP, // PAP
  12110. EM_CFG_EAP_AUTH_TYPE_MSCHAP, // MSCHAP
  12111. EM_CFG_EAP_AUTH_TYPE_MSCHAPV2, // MSCHAPV2
  12112. EM_CFG_EAP_AUTH_TYPE_GTC, // GTC
  12113. } EM_CFG_EAP_AUTH_TYPE;
  12114. // 无线设备认证方式
  12115. typedef enum tagEM_CFG_WIRELESS_AUTHENTICATION
  12116. {
  12117. EM_CFG_WIRELESS_AUTHENTICATION_UNKNOWN, // UnKnown
  12118. EM_CFG_WIRELESS_AUTHENTICATION_OPEN, // OPEN
  12119. EM_CFG_WIRELESS_AUTHENTICATION_SHARED, // SHARED
  12120. EM_CFG_WIRELESS_AUTHENTICATION_WPA, // WPA
  12121. EM_CFG_WIRELESS_AUTHENTICATION_WPAPSK, // WPA-PSK
  12122. EM_CFG_WIRELESS_AUTHENTICATION_WPA2, // WPA2
  12123. EM_CFG_WIRELESS_AUTHENTICATION_WPA2PSK, // WPA2-PSK
  12124. EM_CFG_WIRELESS_AUTHENTICATION_WPANONE, // WPA-NONE
  12125. EM_CFG_WIRELESS_AUTHENTICATION_WPAPSK_WPA2PSK, // WPA-PSK|WPA2-PSK
  12126. EM_CFG_WIRELESS_AUTHENTICATION_WPA_WPA2, // WPA|WPA2
  12127. EM_CFG_WIRELESS_AUTHENTICATION_WPA_WPAPSK, // WPA | WPA-PSK
  12128. EM_CFG_WIRELESS_AUTHENTICATION_WPA2_WPA2PSK, // WPA2|WPA2-PSK
  12129. EM_CFG_WIRELESS_AUTHENTICATION_WPA_WPAPSK_WPA2_WPA2PSK, // WPA|WPA-PSK|WPA2|WPA2-PSK
  12130. } EM_CFG_WIRELESS_AUTHENTICATION;
  12131. // 无线数据加密方式
  12132. typedef enum tagEM_CFG_WIRELESS_DATA_ENCRYPT
  12133. {
  12134. EM_CFG_WIRELESS_DATA_ENCRYPT_UNKNOWN, // UnKnown
  12135. EM_CFG_WIRELESS_DATA_ENCRYPT_NONE, // NONE
  12136. EM_CFG_WIRELESS_DATA_ENCRYPT_WEP, // WEP
  12137. EM_CFG_WIRELESS_DATA_ENCRYPT_TKIP, // TKIP
  12138. EM_CFG_WIRELESS_DATA_ENCRYPT_AES, // AES(CCMP)
  12139. EM_CFG_WIRELESS_DATA_ENCRYPT_TKIP_AES, // TKIP+AES
  12140. } EM_CFG_WIRELESS_DATA_ENCRYPT;
  12141. // 单个WLAN配置EAP
  12142. typedef struct tagCFG_WLAN_EAP
  12143. {
  12144. EM_CFG_EAP_METHOD emMethod; // EAP方法
  12145. EM_CFG_EAP_AUTH_TYPE emAuthType; // EAP身份验证方法
  12146. char szIdentity[MAX_USERNAME_LEN]; // 身份
  12147. char szAnonymousID[MAX_USERNAME_LEN]; // 匿名身份
  12148. char szPassword[MAX_PASSWORD_LEN]; // 密码
  12149. char szCaCert[512]; // CA证书
  12150. char szUserCert[512]; // 用户证书
  12151. } CFG_WLAN_EAP;
  12152. // 单个WLAN配置Network
  12153. typedef struct tagCFG_WLAN_NETWORK
  12154. {
  12155. char szIPAddress[AV_CFG_IP_Address_Len_EX]; // IP
  12156. char szSubnetMask[AV_CFG_IP_Address_Len_EX]; // 子网掩码
  12157. char szDefaultGateway[AV_CFG_IP_Address_Len_EX]; // 网关
  12158. BOOL bDhcpEnable; // 是否开启DHCP
  12159. char szDnsServers[2][AV_CFG_IP_Address_Len_EX]; // DNS服务器
  12160. } CFG_WLAN_NETWORK;
  12161. // 单个WLAN配置
  12162. typedef struct tagCFG_WLAN_INFO
  12163. {
  12164. char szWlanName[CFG_COMMON_STRING_32]; // Wlan名称, 只能获取不能修改
  12165. BOOL bEnable; // WIFI网卡使能开关, TRUE打开, FALSE关闭
  12166. char szSSID[CFG_MAX_SSID_LEN]; // 网络名称(SSID)
  12167. BOOL bConnectEnable; // 手动连接开关, TRUE手动连接, FALSE手动断开
  12168. BOOL bLinkEnable; // 自动连接开关, TRUE不自动连接, FALSE自动连接, IPC无意义
  12169. int nLinkMode; // 连接模式, 0: auto, 1: adhoc, 2: Infrastructure
  12170. int nEncryption; // 加密模式, 0: off, 1: on, 2: WEP-OPEN, 3: WEP-SHARED, 4: WPA-TKIP, 5: WPA-PSK-TKIP, 6: WPA2-TKIP, 7: WPA2-PSK-TKIP, 8: WPA-AES, 9: WPA-PSK-AES, 10: WPA2-AES, 11: WPA2-PSK-AES, 12: Auto
  12171. /* 二代byAuthMode , byEncrAlgr 与三代映射关系
  12172. Authentication认证方式 DataEncryption数据加密方式 Encryption加密模式
  12173. OPEN NONE "On"
  12174. OPEN WEP "WEP-OPEN"
  12175. SHARD WEP "WEP-SHARED"
  12176. WPA TKIP "WPA-TKIP"
  12177. WPA-PSK TKIP "WPA-PSK-TKIP"
  12178. WPA2 TKIP "WPA2-TKIP"
  12179. WPA2-PSK TKIP "WPA2-PSK-TKIP"
  12180. WPA AES(CCMP) "WPA-AES"
  12181. WPA-PSK AES(CCMP) "WPA-PSK-AES"
  12182. WPA2 AES(CCMP) "WPA2-AES"
  12183. WPA2-PSK AES(CCMP) "WPA2-PSK-AES"
  12184. WPA TKIP+AES( mix Mode) "WPA-TKIP"或者"WPA-AES"
  12185. WPA-PSK TKIP+AES( mix Mode) "WPA-PSK-TKIP"或者"WPA-PSK-AES"
  12186. WPA2 TKIP+AES( mix Mode) "WPA2-TKIP"或者"WPA2-AES"
  12187. WPA2-PSK TKIP+AES( mix Mode) "WPA2-PSK-TKIP"或者"WPA2-PSK-AES"
  12188. */
  12189. EM_CFG_WIRELESS_AUTHENTICATION emAuthentication; // 认证方式, 暂时没用
  12190. EM_CFG_WIRELESS_DATA_ENCRYPT emDataEncryption; // 数据加密方式, 暂时没用
  12191. int nKeyType; // 密码类型, 0: Hex, 1: ASCII
  12192. int nKeyID; // 秘钥索引, 取值0~3
  12193. char szKeys[4][32]; // 四组密码
  12194. BOOL bKeyFlag; // 密码是否已经设置
  12195. CFG_WLAN_EAP stuEap; // EAP
  12196. CFG_WLAN_NETWORK stuNetwork; // Network
  12197. } CFG_WLAN_INFO;
  12198. // WLAN配置(对应 CFG_CMD_WLAN)
  12199. typedef struct tagCFG_NETAPP_WLAN
  12200. {
  12201. int nNum; // stuWlanInfo有效的WLAN配置个数
  12202. CFG_WLAN_INFO stuWlanInfo[8]; // WLAN配置信息
  12203. } CFG_NETAPP_WLAN;
  12204. // 新增Smart264 编码方式
  12205. typedef struct tagCFG_SMART_ENCODE_INFO
  12206. {
  12207. BOOL bSmartH264; //标识是否开启SmartH264
  12208. BYTE byReserved[256]; //预留字段
  12209. } CFG_SMART_ENCODE_INFO;
  12210. // 车载高速报警配置
  12211. typedef struct tagCFG_VEHICLE_HIGHSPEED_INFO
  12212. {
  12213. BOOL bEnable; // 高速报警使能
  12214. int nSpeedHighLine; // 高速上限报警值 单位:Km/h
  12215. int nTime; // 超速后持续多长时间报警 单位:秒
  12216. int nAlertSpeed; // 预警速度 单位:Km/h
  12217. int nInstantSpeed; // 瞬时超速速度 单位:Km/h
  12218. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12219. } CFG_VEHICLE_HIGHSPEED_INFO;
  12220. // 车载低速报警配置
  12221. typedef struct tagCFG_VEHICLE_LOWSPEED_INFO
  12222. {
  12223. BOOL bEnable; // 低速报警使能
  12224. int nSpeedLowLine; // 低速上限报警值 单位:Km/h
  12225. int nTime; // 低速后持续多长时间报警 单位:秒
  12226. int nSpeedMotion; // 低速动检速度值,低于此值开启动检 单位:Km/h
  12227. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12228. } CFG_VEHICLE_LOWSPEED_INFO;
  12229. // 单个个人电话接机配置信息
  12230. typedef struct tagCFG_PSTN_PERSON_SERVER_INFO
  12231. {
  12232. char szName[MAX_NAME_LEN]; // 个人电话名称
  12233. char szNumber[MAX_PHONE_NUMBER_LEN]; // 个人电话接收机号码
  12234. }CFG_PSTN_PERSON_SERVER_INFO;
  12235. // 个人电话接机配置信息
  12236. typedef struct tagCFG_PSTN_PERSON_SERVER_INFO_ALL
  12237. {
  12238. BOOL bEnable; // 个人电话接机配置使能
  12239. int nServerCount; // 有效的个人电话接机配置信息个数,目前最多支持3个
  12240. CFG_PSTN_PERSON_SERVER_INFO stuPSTNPersonServer[MAX_PSTN_SERVER_NUM]; // 个人电话接机配置信息数组,每个元素对应一个个人电话配置
  12241. // 最多支持多少个人电话,通过获取报警能力集(CLIENT_QueryNewSystemInfo对应宏CFG_CAP_ALARM) 获取有效电话个数
  12242. }CFG_PSTN_PERSON_SERVER_INFO_ALL;
  12243. // 布撤防联动配置信息
  12244. typedef struct tagCFG_ARMLINK_INFO
  12245. {
  12246. BOOL bMMSEnable; // 是否发送短消息(默认发送)
  12247. CFG_PSTN_ALARM_SERVER stuPSTNAlarmServer; // 电话报警中心联动信息
  12248. BOOL bPersonAlarmEnable; // 是否向私人联系人打电话(向PSTNPersonServer配置中的联系人发报警语音)
  12249. int nAlarmOutChannels[256]; // 报警输出通道号列表
  12250. int nAlarmOutChannelNum; // 报警输出通道号个数
  12251. }CFG_ARMLINK_INFO;
  12252. // PSTN 测试计划配置
  12253. typedef struct tagCFG_PSTN_TESTPLAN_INFO
  12254. {
  12255. BOOL bAlarmEnable; // 报警使能
  12256. int nPeriod; // 报警周期 单位:小时
  12257. int nAlarmServerCount; // 需要测试的报警电话中心个数
  12258. int nAlarmServer[MAX_PSTN_SERVER_NUM]; // 需要测试的报警电话中心序号,从0开始
  12259. }CFG_PSTN_TESTPLAN_INFO;
  12260. //单防区布撤防使能配置
  12261. typedef struct tagCFG_DEFENCE_ARMMODE_INFO
  12262. {
  12263. BOOL bEnableDefenceArm; // 单防区布撤防使能
  12264. }CFG_DEFENCE_ARMMODE_INFO;
  12265. //探测器安装工作模式
  12266. typedef enum tagEM_CFG_SENSORMODE_TYPE
  12267. {
  12268. EM_CFG_SENSORMODE_TYPE_UNKNOWN,
  12269. EM_CFG_SENSORMODE_TYPE_TWOSTATE, // 二态
  12270. EM_CFG_SENSORMODE_TYPE_FOURSTATE, // 四态
  12271. }EM_CFG_SENSORMODE_TYPE;
  12272. //探测器安装工作模式配置
  12273. typedef struct tagCFG_SENSORMODE_INFO
  12274. {
  12275. EM_CFG_SENSORMODE_TYPE emState; //探测器安装工作模式
  12276. }CFG_SENSORMODE_INFO;
  12277. // 防护舱Led显示计划配置
  12278. typedef struct tagCFG_CABINLED_TIME_SCHEDULE
  12279. {
  12280. BOOL bEnable; // 防护舱Led显示计划配置使能项
  12281. }CFG_CABINLED_TIME_SCHEDULE;
  12282. // 警灯状态
  12283. typedef enum tagEM_ALARMLAMP_MODE
  12284. {
  12285. EM_ALARMLAMP_MODE_UNKNOWN = -1, // 未知
  12286. EM_ALARMLAMP_MODE_OFF, // 灭
  12287. EM_ALARMLAMP_MODE_ON, // 亮
  12288. EM_ALARMLAMP_MODE_BLINK, // 闪烁
  12289. }EM_ALARMLAMP_MODE;
  12290. // 警灯配置(对应 CFG_CMD_ALARMLAMP)
  12291. typedef struct tagCFG_ALARMLAMP_INFO
  12292. {
  12293. EM_ALARMLAMP_MODE emAlarmLamp; // 警灯状态
  12294. }CFG_ALARMLAMP_INFO;
  12295. // 雷达测速配置 智能楼宇专用(对应 CFG_CMD_RADAR_SPEED_MEASURE)
  12296. typedef struct tagCFG_RADAR_SPEED_MEASURE_INFO
  12297. {
  12298. float fSpeedMeasureLimit; // 测速下限值,只有达到此速度值,雷达才能检测(单位:km/h)
  12299. float fSpeedUpperLimit; // 超速报警值,超过此值上报报警(单位:km/h)
  12300. }CFG_RADAR_SPEED_MEASURE_INFO;
  12301. // 激光测距配置
  12302. typedef struct tagCFG_LASER_DIST_MEASURE_INFO
  12303. {
  12304. BOOL bEncodeBlend; // 叠加到主码流视频编码
  12305. BOOL bEnable; // 使能,是否打开激光测距功能
  12306. }CFG_LASER_DIST_MEASURE_INFO;
  12307. // 气象信息叠加配置
  12308. typedef struct tagCFG_CFG_CMD_ATMOSPHERE_OSD_INFO
  12309. {
  12310. BOOL bEncodeBlendEnable; // 是否叠加到视频码流,true开启,false关闭
  12311. UINT nMask; // 1显示 0不显示
  12312. // bit0: 风速
  12313. // bit1: 风向
  12314. // bit2: 湿度
  12315. // bit3:温度
  12316. // bit4:大气压强
  12317. // bit5:日照强度
  12318. }CFG_CMD_ATMOSPHERE_OSD_INFO;
  12319. // 福山油田4G流量阈值及模式配置(对应 CFG_CMD_OIL_4G_OVERFLOW)
  12320. typedef struct tagCFG_OIL_4G_OVERFLOW_INFO
  12321. {
  12322. int nFlowRateMode; // 4G流量的模式,1手动,0-自动,默认自动
  12323. int nFlowRateMax; // 4G流量的阈值,单位为(MB), 默认值为60*1024(MB)
  12324. }CFG_OIL_4G_OVERFLOW_INFO;
  12325. // 福山油田4G流量OSD叠加配置(对应 CFG_CMD_OIL_VIDEOWIDGET_4G_FLOW)
  12326. typedef struct tagCFG_OIL_VIDEOWIDGET_4G_FLOW_INFO
  12327. {
  12328. BOOL bEncodeBlend; // 叠加到主码流视频编码使能
  12329. CFG_RECT stuRect; // 叠加的区域坐标
  12330. }CFG_OIL_VIDEOWIDGET_4G_FLOW_INFO;
  12331. #define CFG_PARK_SPACE_STATE_TYPE_NUM 3 // 车位状态类型个数 具体类型为 车位无车 车位有车 车位预定
  12332. // 车位检测器外接指示灯配置信息
  12333. typedef struct tagCFG_PARK_SPACE_OUT_LIGHT_INFO
  12334. {
  12335. EM_CFG_PARKINGSPACE_LIGHT_STATE stNormalSpace[CFG_PARK_SPACE_STATE_TYPE_NUM][CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 普通车位灯状态信息
  12336. // 数组第一维度表示车位状态 0-车位无车 1-车位有车 2-车位预定
  12337. // 数组第二维度表示指示灯颜色 从0到5分别表示 红 黄 蓝 绿 紫 白
  12338. EM_CFG_PARKINGSPACE_LIGHT_STATE stSpecialSpace[CFG_PARK_SPACE_STATE_TYPE_NUM][CFG_MAX_PARKINGSPACE_LIGHT_NUM]; // 特殊车位灯状态信息 规则同上
  12339. }CFG_PARK_SPACE_OUT_LIGHT_INFO;
  12340. //门禁文字提示显示配置(对应CFG_CMD_ACCESS_TEXTDISPLAY)
  12341. typedef struct tagCFG_ACCESS_TEXTDISPLAY_INFO
  12342. {
  12343. char szOpenSucceedText[MAX_ACCESS_TEXTDISPLAY_LEN]; //开门成功显示的文字信息
  12344. char szOpenFailedText[MAX_ACCESS_TEXTDISPLAY_LEN]; //开门失败显示的文字信息
  12345. }CFG_ACCESS_TEXTDISPLAY_INFO;
  12346. // 门口机呼叫规则
  12347. typedef enum tagEM_CFG_ROOM_RULE
  12348. {
  12349. EM_CFG_ROOM_RULE_UNKNOW, // 未知
  12350. EM_CFG_ROOM_RULE_SERIAL, // Serial 连续房间号,有些国外使用1~100的房号
  12351. EM_CFG_ROOM_RULE_NOSERIAL, // NoSerial 非连续房间号,比如国内的301,502
  12352. }EM_CFG_ROOM_RULE;
  12353. // VTO呼叫配置扩展信息
  12354. typedef struct tagCFG_VTO_CALL_INFO_EXTEND
  12355. {
  12356. char szMainVTOIP[MAX_ADDRESS_LEN]; //主门口机IP
  12357. BOOL bGroupCallEnable; //群呼开关
  12358. char szManagerNumber[MAX_PHONE_NUMBER_LEN]; //管理机号码
  12359. char szUrgentNumber[MAX_PHONE_NUMBER_LEN]; //紧急呼叫号码
  12360. CFG_TIME_SECTION stuTimeSection; //呼叫VTS时间段
  12361. unsigned int nMaxExtensionIndex; //门口机上可以设置的最大室内机分机序号 序号从1开始
  12362. EM_CFG_ROOM_RULE emRoomRule; //门口机支持连续房间号呼叫和非连续房间号呼叫2套规则
  12363. }CFG_VTO_CALL_INFO_EXTEND;
  12364. //杭师大视频加密项目,涉及IPC和NVR 加密配置信息,
  12365. typedef struct tagCFG_NETNVR_ENCRYPT_CHANNEL_INFO
  12366. {
  12367. BOOL bEncryptEnable; // 音视频是否加密
  12368. BOOL bMatchNvrEnable; // NVR配对使能
  12369. char szNvrAddress[16]; // NVR 的IP地址
  12370. DWORD nMatchPort; // 配对端口
  12371. DWORD nTalkPort; // 协商端口
  12372. char szDevID[32]; // IPC设备序列号
  12373. }CFG_NETNVR_ENCRYPT_CHANNEL_INFO;
  12374. //杭师大视频加密项目,涉及IPC和NVR 加密配置信息,,对应 CFG_CMD_NETNVR_ENCRYPT
  12375. typedef struct tagCFG_NETNVR_ENCRYPT_INFO
  12376. {
  12377. int nChannelID; // 通道号(0开始)
  12378. int nNvrEncryptNum; // 每个通道实际加密信息配置个数
  12379. CFG_NETNVR_ENCRYPT_CHANNEL_INFO stuNvrEncryptInfo[CFG_MAX_NVR_ENCRYPT_COUNT];// 每个通道对应的加密信息配置数组,主、辅1、2、3码流
  12380. }CFG_NETNVR_ENCRYPT_INFO;
  12381. // 频闪灯端口信息
  12382. typedef struct tagCFG_LAMP_PORT_INFO
  12383. {
  12384. int nValidPortNum; // 频闪灯配置个数
  12385. char szPort[8]; // 频闪灯的端口号,灯组内可能包含多个灯
  12386. }CFG_LAMP_PORT_INFO;
  12387. // 单个频闪灯配置信息
  12388. typedef struct tagCFG_SINGLE_STROBOSCOPIC_LAMP_INFO
  12389. {
  12390. CFG_FLASH_CONTROL stuLampInfo; // 频闪灯的配置信息
  12391. int nStroboscopicMode; // 频闪模式,低于最大闪光频率,0表示根据需要闪光
  12392. int nPreTime; // 频闪灯提前时间,单位us
  12393. int nPulseWidth; // 频闪灯脉宽,单位us
  12394. int nDelayTime; // 延时闪时间,单位us,负数表示提前闪光
  12395. int nFrequency; // 频闪灯的工作频率,单位HZ,譬如50HZ, 100HZ
  12396. CFG_LAMP_PORT_INFO stuPortInfo; // 频闪灯端口配置信息
  12397. }CFG_SINGLE_STROBOSCOPIC_LAMP_INFO;
  12398. // 频闪灯配置(对应 CFG_CMD_STROBOSCOPIC_LAMP)
  12399. typedef struct tagCFG_STROBOSCOPIC_LAMP_INFO
  12400. {
  12401. int nValidConfigNum; // 频闪灯配置个数
  12402. CFG_SINGLE_STROBOSCOPIC_LAMP_INFO stuStroboInfo[8]; // 频闪灯配置信息
  12403. }CFG_STROBOSCOPIC_LAMP_INFO;
  12404. // Https服务配置
  12405. typedef struct tagCFG_HTTPS_INFO
  12406. {
  12407. BOOL bEnable; // 服务使能
  12408. int nPort; // 端口号
  12409. char szRootCertificatePath[CFG_COMMON_STRING_128]; // 根证书绝对路径
  12410. char szCountry[CFG_COMMON_STRING_8]; // 国家
  12411. char szState[CFG_COMMON_STRING_64]; // 洲名或省名
  12412. char szLocatity[CFG_COMMON_STRING_64]; // 位置
  12413. char szOrganization[CFG_COMMON_STRING_64]; // 组织名称
  12414. char szOrganizationUnit[CFG_COMMON_STRING_64]; // 组织单元名称
  12415. char szCommonName[CFG_COMMON_STRING_128]; // CN字段,是域名或者IP
  12416. char szEmail[CFG_COMMON_STRING_128]; // 邮箱
  12417. char szName[CFG_COMMON_STRING_128]; // 公司名称
  12418. char szPath[CFG_COMMON_STRING_128]; // 服务器证书地址
  12419. int nUsefulLife; // 证书有效期
  12420. }CFG_HTTPS_INFO;
  12421. // 编码配置
  12422. typedef struct tagCFG_ADAPT_ENCODE_INFO
  12423. {
  12424. int nIPSmoothness; // 编码I/P帧的平滑度,范围1~100,1表示平滑,100表示画质优先
  12425. int nAdjustEnable; // 自适应调整使能,1开启 0关闭。主码流暂不支持此字段
  12426. }CFG_ADAPT_ENCODE_INFO;
  12427. // 网络自适应编码配置
  12428. typedef struct tagCFG_NET_AUTO_ADAPT_ENCODE
  12429. {
  12430. CFG_ADAPT_ENCODE_INFO stuMainStream[MAX_VIDEOSTREAM_NUM]; // 主码流,0-普通录像,1-动检录像,2-报警录像,暂只支持普通录像
  12431. CFG_ADAPT_ENCODE_INFO stuExtraStream[MAX_VIDEOSTREAM_NUM]; // 辅码流,0-辅码流1,1-辅码流2,2-辅码流3
  12432. }CFG_NET_AUTO_ADAPT_ENCODE;
  12433. // 组合通道
  12434. typedef struct tagCFG_COMBINATION_CHANNEL
  12435. {
  12436. int nMaxChannel; // 最大通道数
  12437. int nReturnChannel; // 实际返回通道数
  12438. int *pnChannel; // 通道信息
  12439. }CFG_COMBINATION_CHANNEL;
  12440. // 分割模式
  12441. typedef struct tagCFG_FREESPLIT_INFO
  12442. {
  12443. CFG_SPLITMODE emSplitMode; // 分割模式
  12444. int nMaxCombination; // 最大组合个数
  12445. int nReturnCombination; // 实际组合个数
  12446. CFG_COMBINATION_CHANNEL *pstuCombination; // 组合信息
  12447. }CFG_FREESPLIT_INFO;
  12448. // 自由分割模式的窗口配置
  12449. typedef struct tagCFG_FREECOMBINATION_INFO
  12450. {
  12451. int nMaxSplit; // 最大分割模式数
  12452. int nReturnSplit; // 实际分割模式数
  12453. CFG_FREESPLIT_INFO *pstuSplit; // 自由分割模式信息
  12454. }CFG_FREECOMBINATION_INFO;
  12455. // 设备协议类型
  12456. typedef enum tagCFG_EM_DEVICE_PROTOCOL
  12457. {
  12458. CFG_EM_PROTOCOL_PRIVATE3, // 私有3代协议,Dahua3
  12459. CFG_EM_PROTOCOL_ONVIF, // Onvif
  12460. }CFG_EM_DEVICE_PROTOCOL;
  12461. // 平台侧监视IPC配置 CFG_CMD_PLATFORM_MONITOR_IPC
  12462. typedef struct tagCFG_PLATFORMMONITORIPC_INFO
  12463. {
  12464. BOOL bEnable; // 使能
  12465. char szDevIpAddress[MAX_NAME_LEN]; // 设备ip地址
  12466. int nPort; // 端口
  12467. char szUserName[MAX_USERNAME_LEN]; // 用户名
  12468. char szPassword[MAX_PASSWORD_LEN]; // 密码
  12469. CFG_EM_STREAM_TYPE emStreamType; // 码流类型
  12470. CFG_EM_DEVICE_PROTOCOL emProtocol; // 协议类型
  12471. int nChannelID; // 通道号
  12472. }CFG_PLATFORMMONITORIPC_INFO;
  12473. #define MAX_AREA_COUNT 8 // 最大区域个数
  12474. // 物联网红外检测配置(对应CFG_CMD_IOT_INFRARED_DETECT)
  12475. typedef struct tagCFG_IOT_INFRARED_DETECT_INFO
  12476. {
  12477. BOOL bEnable[MAX_AREA_COUNT]; // 区域使能,表示是否开启检测,共8个区域
  12478. int nDetectRadius; // 检测半径,单位厘米
  12479. } CFG_IOT_INFRARED_DETECT_INFO;
  12480. // 物联网录像联动配置(对应CFG_CMD_IOT_RECORD_HANDLE)
  12481. typedef struct tagCFG_IOT_RECORD_HANDLE_INFO
  12482. {
  12483. BOOL bEnable; // 使能,表示是否开启录像联动
  12484. int nRecordTime; // 联动录像时间,单位秒
  12485. } CFG_IOT_RECORD_HANDLE_INFO;
  12486. // 物联网抓图联动配置(对应CFG_CMD_IOT_SNAP_HANDLE)
  12487. typedef struct tagCFG_IOT_SNAP_HANDLE_INFO
  12488. {
  12489. BOOL bEnable; // 使能,表示是否开启抓图联动
  12490. int nSnapNum; // 联动抓图张数
  12491. } CFG_IOT_SNAP_HANDLE_INFO;
  12492. // 呼叫转移配置
  12493. typedef struct tagCFG_CALLFORWARD_INFO
  12494. {
  12495. BOOL bAlwaysForwardEnable; // 强制转移使能
  12496. char szAlwaysForwardNumber[MAX_PHONE_NUMBER_LEN]; // 强制转移号码
  12497. BOOL bBusyForwardEnable; // 呼叫遇忙转移使能
  12498. char szBusyForwardNumber[MAX_PHONE_NUMBER_LEN]; // 呼叫遇忙转移号码
  12499. BOOL bNoAnswerForwardEnable; // 呼叫无应答转移使能
  12500. char szNoAnswerForwardNumber[MAX_PHONE_NUMBER_LEN]; // 呼叫无应答转移号码
  12501. }CFG_CALLFORWARD_INFO;
  12502. // 门铃配置对应CFD_CMD_DOORBELLSOUND
  12503. typedef struct tagCFG_DOOR_BELLSOUND_INFO
  12504. {
  12505. BOOL bSilenceEnable; // 是否静音true 静音false 不静音
  12506. UINT nRingVolume; // 铃声音量取值范围0~100
  12507. char szRingFile[CFG_COMMON_STRING_64]; // 铃声文件现在只支持"A","B","C"三个文件只能选择一个文件
  12508. }CFG_DOOR_BELLSOUND_INFO;
  12509. //telnet 配置对应CFG_CMD_TELNET
  12510. typedef struct tagCFG_TELNET_INFO
  12511. {
  12512. BOOL bEnable; // telnet使能开关true使能false去使能
  12513. }CFG_TELNET_INFO;
  12514. //显示异常信息的叠加配置 对应结构体 CFG_OSD_SYSABNORMAL_INFO
  12515. typedef struct tagCFG_OSD_SYSABNORMAL_INFO
  12516. {
  12517. AV_CFG_Color stuBackColor; // 背景色
  12518. AV_BOOL bEncodeBlend; // 叠加到主码流
  12519. AV_CFG_Color stuFrontColor; // 前景色
  12520. AV_BOOL bPreviewBlend; // 叠加到预览视频
  12521. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8191
  12522. int nDisplayTime; // 显示时间,单位为s,如果为0表示一直显示
  12523. AV_BOOL bNetAbort; // 是否显示网络断开,true为显示,false为不显示
  12524. AV_BOOL bIPConflict; // 是否显示IP冲突,true为显示,false为不显示
  12525. AV_BOOL bVoltageStatus; // 是否显示电压异常,true为显示,false为不显示
  12526. AV_BOOL bOutputCurrentStatus; // 是否显示对外供电电流异常,true为显示,false为不显示
  12527. AV_BOOL bSDHotPlug; // 是否显示SD卡插入、拔出、异常,true为显示,false为不显示
  12528. AV_BOOL bSDLowSpace; // 是否显示SD卡空间不足,true为显示,false为不显示
  12529. AV_BOOL bSDFailure; // 是否显示SD卡出错,true为显示,false为不显示
  12530. AV_BOOL bDestroy; // 是否显示破坏检测,true为显示,false为不显示
  12531. }CFG_OSD_SYSABNORMAL_INFO;
  12532. // 视频编码物件配置(对应结构体 CFG_VIDEO_WIDGET2_INFO)
  12533. typedef struct tagCFG_VIDEO_WIDGET2_INFO
  12534. {
  12535. int nOSDLineSpacing; //行间距倍数,倍数的基准默认是当前字体高度的十分之一,取值范围为0~5,默认值为0
  12536. }CFG_VIDEO_WIDGET2_INFO;
  12537. // 人数统计叠加OSD配置(对应结构体 CFG_VIDEOWIDGET_NUMBERSTAT_INFO)
  12538. typedef struct tagCFG_VIDEOWIDGET_NUMBERSTAT_INFO
  12539. {
  12540. AV_BOOL bEncodeBlend; // 叠加到主码流,值为false的标题不能设置到底层API
  12541. AV_CFG_Color stuFrontColor; // 前景色
  12542. AV_CFG_Color stuBackColor; // 背景色
  12543. EM_TITLE_TEXT_ALIGN emTextAlign; // 标题对齐方式
  12544. AV_CFG_Rect stuRect; // 区域, 坐标取值0~8192
  12545. AV_BOOL bShowEnterNum; // 是否显示进入人数
  12546. AV_BOOL bShowExitNum; // 是否显示离开人数
  12547. }CFG_VIDEOWIDGET_NUMBERSTAT_INFO;
  12548. // 马赛克类型
  12549. typedef enum tagEM_MOSAIC_TYPE
  12550. {
  12551. EM_MOSAIC_TYPE_INVALID, // 无效的马赛克类型
  12552. EM_MOSAIC_TYPE_NO, // 不打马赛克
  12553. EM_MOSAIC_TYPE_8, // [8x8大小] 马赛克
  12554. EM_MOSAIC_TYPE_16, // [16x16大小] 马赛克
  12555. EM_MOSAIC_TYPE_24, // [24x24大小] 马赛克
  12556. EM_MOSAIC_TYPE_32, // [32x32大小] 马赛克
  12557. }EM_MOSAIC_TYPE;
  12558. // 形状类型
  12559. typedef enum tagEM_SHAPE_TYPE
  12560. {
  12561. EM_SHAPE_TYPE_INVALID, // 无效的类型
  12562. EM_SHAPE_TYPE_RECT, // 矩形
  12563. EM_SHAPE_TYPE_POLYGON, // 多边形
  12564. }EM_SHAPE_TYPE;
  12565. //云台控制坐标单元
  12566. typedef struct tagPTZ_SPEED
  12567. {
  12568. float fPositionX; //云台水平方向速率,归一化到-1~1
  12569. float fPositionY; //云台垂直方向速率,归一化到-1~1
  12570. float fZoom; //云台光圈放大倍率,归一化到 0~1
  12571. char szReserve[32]; //预留32字节
  12572. }PTZ_SPEED;
  12573. // 区域;各边距按整长8192的比例
  12574. typedef struct
  12575. {
  12576. long left;
  12577. long top;
  12578. long right;
  12579. long bottom;
  12580. } DH_RECT_REGION, *LPDH_RECT_REGION;
  12581. // 隐私遮挡配置信息
  12582. typedef struct tagCGF_MASKING_INFO
  12583. {
  12584. BOOL bEnable; // 隐私遮挡开关标志 true开,false关
  12585. PTZ_SPEED stuPosition; // 云台方向与放大倍数
  12586. EM_SHAPE_TYPE stuShapeType; // 形状类型
  12587. DH_RECT_REGION stuRect; // 矩形区域, 坐标取值0~8192
  12588. int nPolygonPoint; // 多边形顶点数
  12589. CFG_POLYGON stuPolygon[MAX_POLYGON_NUM]; // 多边形顶点坐标,坐标取值0~8192
  12590. AV_CFG_Color stuColor; // 遮挡块色
  12591. EM_MOSAIC_TYPE stuMosaicType; // 遮挡块马赛克类型,马赛克时遮挡块色字段无效
  12592. }CGF_MASKING_INFO;
  12593. // 单通道隐私遮挡设置(对应结构体 CFG_PRIVACY_MASKING_INFO)
  12594. typedef struct tagCFG_PRIVACY_MASKING_INFO
  12595. {
  12596. int nMaskingInfoCount; // 隐私遮挡配置个数
  12597. CGF_MASKING_INFO stuMaskingInfo[MAX_PRIVACY_MASKING_COUNT]; // 隐私遮挡配置信息
  12598. }CFG_PRIVACY_MASKING_INFO;
  12599. // 设备信息配置(对应结构体 CFG_DEVICE_INFO)
  12600. typedef struct tagCFG_DEVICE_INFO
  12601. {
  12602. char szSerial[CFG_COMMON_STRING_64]; // 产品系列名称,IPC型号IPC开头,球机型号SD开头,其它类同
  12603. char szMode[CFG_COMMON_STRING_64]; // 设备型号
  12604. char szResolution[CFG_COMMON_STRING_16]; // 机芯分辨率
  12605. char szCameraID[CFG_COMMON_STRING_16]; // 机芯ID
  12606. }CFG_DEVICE_INFO;
  12607. #define CFG_MAX_POLICE_ID_MAP_NUM 64 // 最大警员ID和设备通道映射关系数量
  12608. // 警员ID和设备通道映射关系信息(对应 CFG_CMD_POLICEID_MAP_INFO)
  12609. typedef struct tagCFG_POLICEID_MAP_INFO
  12610. {
  12611. char szPoliceID[CFG_MAX_POLICE_ID_MAP_NUM][CFG_COMMON_STRING_32]; // 警员ID
  12612. int nIDCount; // ID数目
  12613. }CFG_POLICEID_MAP_INFO;
  12614. //GPS未定位配置(对应 CFG_CMD_GPS_NOT_ALIGNED)
  12615. typedef struct tagCFG_GPS_NOT_ALIGNED_INFO
  12616. {
  12617. BOOL bEnable; // 使能
  12618. DWORD dwNotifyTimes; // GPS未定位持续时间,超过该时间则触发报警,单位秒
  12619. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12620. }CFG_GPS_NOT_ALIGNED_INFO;
  12621. //网络未连接(包括wifi,3G/4G)配置(对应 CFG_CMD_WIRELESS_NOT_CONNECTED)
  12622. typedef struct tagCFG_WIRELESS_NOT_CONNECTED_INFO
  12623. {
  12624. BOOL bEnable; // 使能
  12625. DWORD dwNotifyTimes; // 网络未连接(包括wifi,3G/4G)持续时间,超过该时间则触发报警,单位秒
  12626. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12627. }CFG_WIRELESS_NOT_CONNECTED_INFO;
  12628. // 微云常规容量告警配置(对应 CFG_CMD_MCS_GENERAL_CAPACITY_LOW)
  12629. typedef struct tagCFG_MCS_GENERAL_CAPACITY_LOW
  12630. {
  12631. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12632. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12633. }CFG_MCS_GENERAL_CAPACITY_LOW;
  12634. // 微云存储节点下线配置(对应 CFG_CMD_MCS_DATA_NODE_OFFLINE)
  12635. typedef struct tagCFG_MCS_DATA_NODE_OFFLINE
  12636. {
  12637. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12638. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12639. }CFG_MCS_DATA_NODE_OFFLINE;
  12640. // 微云磁盘下线告警配置(对应 CFG_CMD_MCS_DISK_OFFLINE)
  12641. typedef struct tagCFG_MCS_DISK_OFFLINE
  12642. {
  12643. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12644. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12645. }CFG_MCS_DISK_OFFLINE;
  12646. // 微云磁盘变慢告警配置(对应 CFG_CMD_MCS_DISK_SLOW)
  12647. typedef struct tagCFG_MCS_DISK_SLOW
  12648. {
  12649. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12650. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12651. }CFG_MCS_DISK_SLOW;
  12652. //微云磁盘损坏告警配置(对应 CFG_CMD_MCS_DISK_BROKEN)
  12653. typedef struct tagCFG_MCS_DISK_BROKEN
  12654. {
  12655. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12656. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12657. }CFG_MCS_DISK_BROKEN;
  12658. // 微云磁盘未知错误告警配置(对应 CFG_CMD_MCS_DISK_UNKNOW_ERROR)
  12659. typedef struct tagCFG_MCS_DISK_UNKNOW_ERROR
  12660. {
  12661. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12662. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12663. }CFG_MCS_DISK_UNKNOW_ERROR;
  12664. // 微云元数据服务器异常告警配置(对应 CFG_CMD_MCS_METADATA_SERVER_ABNORMAL)
  12665. typedef struct tagCFG_MCS_METADATA_SERVER_ABNORMAL
  12666. {
  12667. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12668. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12669. }CFG_MCS_METADATA_SERVER_ABNORMAL;
  12670. // 微云目录服务器异常告警配置(对应 CFG_CMD_MCS_CATALOG_SERVER_ABNORMAL)
  12671. typedef struct tagCFG_MCS_CATALOG_SERVER_ABNORMAL
  12672. {
  12673. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12674. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12675. }CFG_MCS_CATALOG_SERVER_ABNORMAL;
  12676. // 微云常规容量告警恢复告警配置(对应 CFG_CMD_MCS_GENERAL_CAPACITY_RESUME)
  12677. typedef struct tagCFG_MCS_GENERAL_CAPACITY_RESUME
  12678. {
  12679. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12680. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12681. }CFG_MCS_GENERAL_CAPACITY_RESUME;
  12682. // 微云存储节点上线告警配置(对应 CFG_CMD_MCS_DATA_NODE_ONLINE)
  12683. typedef struct tagCFG_MCS_DATA_NODE_ONLINE
  12684. {
  12685. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12686. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12687. }CFG_MCS_DATA_NODE_ONLINE;
  12688. // 微云磁盘上线告警配置(对应 CFG_CMD_MCS_DISK_ONLINE)
  12689. typedef struct tagCFG_MCS_DISK_ONLINE
  12690. {
  12691. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12692. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12693. }CFG_MCS_DISK_ONLINE;
  12694. // 微云元数据备机上线告警配置(对应 CFG_CMD_MCS_METADATA_SLAVE_ONLINE)
  12695. typedef struct tagCFG_MCS_METADATA_SLAVE_ONLINE
  12696. {
  12697. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12698. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12699. }CFG_MCS_METADATA_SLAVE_ONLINE;
  12700. // 微云目录服务器上线告警配置(对应 CFG_CMD_MCS_CATALOG_SERVER_ONLINE)
  12701. typedef struct tagCFG_MCS_CATALOG_SERVER_ONLINE
  12702. {
  12703. BOOL bEnable; // 使能开关,true为打开;false为关闭,默认值
  12704. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12705. }CFG_MCS_CATALOG_SERVER_ONLINE;
  12706. // SecurityAlarms客户定制功能,隐私保护
  12707. typedef struct tagCFG_SECURITY_ALARMS_PRIVACY
  12708. {
  12709. char szCode[CFG_COMMON_STRING_64]; // 隐私保护密码
  12710. BOOL bEnable; // 是否开启隐私保护
  12711. }CFG_SECURITY_ALARMS_PRIVACY;
  12712. // 门禁卡预欠费配置
  12713. typedef struct tagCFG_ACCESSCONTROL_DELAYSTRATEGY
  12714. {
  12715. BOOL bEnable; // 是否启用
  12716. int nPreArrearsTerm; // 预欠费期限,单位:天
  12717. int nArrearsTerm; // 欠费期限,单位:天
  12718. }CFG_ACCESSCONTROL_DELAYSTRATEGY;
  12719. // 无人机禁飞时段 配置 ( 对应 CFG_CMD_NO_FLY_TIME )
  12720. typedef struct tagCFG_NO_FLY_TIME_INFO
  12721. {
  12722. BOOL bEnable; // 禁飞时段使能
  12723. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12724. }CFG_NO_FLY_TIME_INFO;
  12725. // 密码重置功能 配置 ( 对应 CFG_CMD_PWD_RESET )
  12726. typedef struct tagCFG_PWD_RESET_INFO
  12727. {
  12728. BOOL bEnable; // 密码重置功能使能
  12729. }CFG_PWD_RESET_INFO;
  12730. // 网络监视中断事件配置( 对应结构体 CFG_NET_MONITOR_ABORT_INFO )
  12731. typedef struct tagCFG_NET_MONITOR_ABORT_INFO
  12732. {
  12733. BOOL bEnable; // 使能开关
  12734. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12735. } CFG_NET_MONITOR_ABORT_INFO;
  12736. // 本地扩展报警 配置 ( 对应 CFG_CMD_LOCAL_EXT_ALARM )
  12737. typedef struct tagCFG_LOCAL_EXT_ALARME_INFO
  12738. {
  12739. BOOL bEnable; // 使能
  12740. int nSensorType; // 传感器类型 0,常闭 1,常开
  12741. char szAlarmChannelName[CFG_COMMON_STRING_64]; // 报警通道名称
  12742. CFG_ALARM_MSG_HANDLE stuEventHandler; // 报警联动
  12743. }CFG_LOCAL_EXT_ALARME_INFO;
  12744. #define MAX_INVITE_NUMBER_LIST 16
  12745. // 视频对讲电话基础配置( 对应 CFG_CMD_VIDEO_TALK_PHONE_BASIC )
  12746. typedef struct tagCFG_VIDEO_TALK_PHONE_BASIC_INFO
  12747. {
  12748. BOOL bAlarmOutputEnable; // 呼叫联动报警输出使能
  12749. BOOL bNoAnswerTransferPlatformEnable; // 呼叫无应答转移平台使能
  12750. BOOL bEachCallEnable; // 户户通话使能
  12751. BOOL bAutoAnswerEnable; // 自动接听使能
  12752. int nInviteNumberList; // 主叫房间列表个数
  12753. char szInviteNumberList[MAX_INVITE_NUMBER_LIST][CFG_COMMON_STRING_16]; // 主叫房间列表
  12754. BOOL bVTOCallSoundEnable; // 是否开启门口机回铃使能
  12755. char szVTOCallSound[CFG_COMMON_STRING_128]; // 门口机回铃铃声路径
  12756. BOOL bEnableCall; // 呼叫使能
  12757. } CFG_VIDEO_TALK_PHONE_BASIC_INFO;
  12758. // 语言种类
  12759. typedef enum tagEM_LANGUAGE_TYPE
  12760. {
  12761. EM_LANGUAGE_ENGLISH, // 英文
  12762. EM_LANGUAGE_CHINESE_SIMPLIFIED, // 简体中文
  12763. EM_LANGUAGE_CHINESE_TRADITIONAL, // 繁体中文
  12764. EM_LANGUAGE_ITALIAN, // 意大利文
  12765. EM_LANGUAGE_SPANISH, // 西班牙文
  12766. EM_LANGUAGE_JAPANESE, // 日文版
  12767. EM_LANGUAGE_RUSSIAN, // 俄文版
  12768. EM_LANGUAGE_FRENCH, // 法文版
  12769. EM_LANGUAGE_GERMAN, // 德文版
  12770. EM_LANGUAGE_PORTUGUESE, // 葡萄牙语
  12771. EM_LANGUAGE_TURKEY, // 土尔其语
  12772. EM_LANGUAGE_POLISH, // 波兰语
  12773. EM_LANGUAGE_ROMANIAN, // 罗马尼亚
  12774. EM_LANGUAGE_HUNGARIAN, // 匈牙利语
  12775. EM_LANGUAGE_FINNISH, // 芬兰语
  12776. EM_LANGUAGE_ESTONIAN, // 爱沙尼亚语
  12777. EM_LANGUAGE_KOREAN, // 韩语
  12778. EM_LANGUAGE_FARSI, // 波斯语
  12779. EM_LANGUAGE_DANSK, // 丹麦语
  12780. EM_LANGUAGE_CZECHISH, // 捷克文
  12781. EM_LANGUAGE_BULGARIA, // 保加利亚文
  12782. EM_LANGUAGE_SLOVAKIAN, // 斯洛伐克语
  12783. EM_LANGUAGE_SLOVENIA, // 斯洛文尼亚文
  12784. EM_LANGUAGE_CROATIAN, // 克罗地亚语
  12785. EM_LANGUAGE_DUTCH, // 荷兰语
  12786. EM_LANGUAGE_GREEK, // 希腊语
  12787. EM_LANGUAGE_UKRAINIAN, // 乌克兰语
  12788. EM_LANGUAGE_SWEDISH, // 瑞典语
  12789. EM_LANGUAGE_SERBIAN, // 塞尔维亚语
  12790. EM_LANGUAGE_VIETNAMESE, // 越南语
  12791. EM_LANGUAGE_LITHUANIAN, // 立陶宛语
  12792. EM_LANGUAGE_FILIPINO, // 菲律宾语
  12793. EM_LANGUAGE_ARABIC, // 阿拉伯语
  12794. EM_LANGUAGE_CATALAN, // 加泰罗尼亚语
  12795. EM_LANGUAGE_LATVIAN, // 拉脱维亚语
  12796. EM_LANGUAGE_THAI, // 泰语
  12797. EM_LANGUAGE_HEBREW, // 希伯来语
  12798. EM_LANGUAGE_Bosnian, // 波斯尼亚文
  12799. } EM_LANGUAGE_TYPE;
  12800. // 支持的最大语言个数
  12801. #define MAX_SUPPORTED_LANGUAGE 32
  12802. // 手机推送消息的翻译目标语言配置 (对应 CFG_APP_EVENT_LANGUAGE_INFO )
  12803. typedef struct tagCFG_APP_EVENT_LANGUAGE_INFO
  12804. {
  12805. EM_LANGUAGE_TYPE emCurrLanguage; // 推送消息需要翻译成的目标语言
  12806. int nSupportLanguageCount; // 设备支持的语言个数
  12807. EM_LANGUAGE_TYPE emLanguage[MAX_SUPPORTED_LANGUAGE]; // 设备支持翻译的语言列表
  12808. } CFG_APP_EVENT_LANGUAGE_INFO;
  12809. // dropbox token配置( 对应CFG_CMD_DROPBOXTOKEN)
  12810. typedef struct tagCFG_DROPBOXTOKEN_INFO
  12811. {
  12812. char szDropBoxToken[CFG_COMMON_STRING_128]; // dropbox token
  12813. BOOL bKeyValid; // token valid
  12814. }CFG_DROPBOXTOKEN_INFO;
  12815. // PtzDevice 配置( 对应 CFG_CMD_PTZDEVICE)
  12816. typedef struct tagCFG_PTZDEVICE_INFO
  12817. {
  12818. CFG_COMM_PROP stuAttribute; // 串口属性
  12819. int nAddress; // 设备地址
  12820. int nPort; // 串口端口号
  12821. int nCurrentMode; // 控制模式,0:软件模式 1:硬件模式
  12822. char szProtocolName[MAX_NAME_LEN]; // 协议名
  12823. }CFG_PTZDEVICE_INFO;
  12824. // DevLocation 配置( 对应CFG_CMD_DEVLOCATION)
  12825. typedef struct tagCFG_DEVLOCATION_INFO
  12826. {
  12827. UINT unLongitude; // 经度 单位百万分之一度,范围0-360度
  12828. UINT unLatitude; // 纬度 单位百万分之一度,范围0-360度
  12829. double dbAltitude; // 海拔 单位米
  12830. BOOL bConfigEnable; // true:GPS信息按照配置上报
  12831. float fHeight; // 设备高度 单位米
  12832. }CFG_DEVLOCATION_INFO;
  12833. // FireWarningExt 配置( 对应CFG_CMD_FIRE_WARNING_EXT)
  12834. typedef struct tagCFG_FIREWARNING_EXT_INFO
  12835. {
  12836. BOOL bVisualOverviewEnable; // 可见光通道是否需要全景图
  12837. BOOL bVisualDetailEnable; // 可见光通道是否需要细节图
  12838. UINT nThermoSnapTimes; // 热成像通道抓图张数
  12839. }CFG_FIREWARNING_EXT_INFO;
  12840. // 标定信息单元
  12841. typedef struct tagCFG_CALIBRATE_UNIT_INFO
  12842. {
  12843. UINT nHeight; // 分辨率高
  12844. UINT nWidth; // 分辨率宽
  12845. float nPosition[3]; // 云台位置(P/T/Z 归一化)
  12846. UINT nLocation[2]; // 标定点坐标
  12847. UINT nHFOV; // 横向视场角(单位:0.01度)
  12848. UINT nVFOV; // 纵向视场角(单位:0.01度)
  12849. }CFG_CALIBRATE_UNIT_INFO;
  12850. // 标定基本信息
  12851. typedef struct tagCFG_CALIBRATE_INFO
  12852. {
  12853. CFG_CALIBRATE_UNIT_INFO stuCalibrateUnitInfo[5][2]; //标定信息单元
  12854. int nInfoNum; //标定数量
  12855. }CFG_CALIBRATE_INFO;
  12856. // 标定点信息
  12857. typedef struct tagCFG_LOCATION_CALIBRATE_POINT_INFO
  12858. {
  12859. UINT nID; // 标定点ID
  12860. char szName[CFG_COMMON_STRING_128]; // 标定点名称
  12861. BOOL bEnable; // 使能
  12862. UINT nLongitude; // 经度
  12863. UINT nLatitude; // 纬度
  12864. double fAltitude; // 海拔
  12865. CFG_CALIBRATE_INFO stuCalibrateInfo; // 标定点基本信息
  12866. BYTE byReserved1[4]; // 字节对齐
  12867. }CFG_LOCATION_CALIBRATE_POINT_INFO;
  12868. //LocationCalibrate 配置( 对应CFG_CMD_LOCATION_CALIBRATE)
  12869. #define MAX_CALIBRATE_POINT_NUM 64 // 最大标定点个数
  12870. typedef struct tagCFG_LOCATION_CALIBRATE_INFO
  12871. {
  12872. UINT nVisualMaxHFOV; // 可见光横向视角
  12873. UINT nVisualMaxVFOV; // 可见光纵向视角
  12874. UINT nThermoMaxHFOV; // 热成像横向视角
  12875. UINT nThermoMaxVFOV; // 热成像纵向视角
  12876. CFG_LOCATION_CALIBRATE_POINT_INFO stuPointInfo[MAX_CALIBRATE_POINT_NUM]; // 标定点信息
  12877. int nPointNum; // 标定点个数
  12878. BYTE byReserved1[4]; // 字节对齐
  12879. }CFG_LOCATION_CALIBRATE_INFO;
  12880. // 怠速配置(对应 CFG_CMD_IDLINGTIME)
  12881. typedef struct tagCFG_IDLINGTIME_INFO
  12882. {
  12883. int nIdlingTimeThreshold; // 怠速停留阈值,单位:秒
  12884. int nSpeedThreshold; // 怠速判断最大速度,单位:km/h
  12885. }CFG_IDLINGTIME_INFO;
  12886. // 汽车行驶状态配置(对应 CFG_CMD_CARDIVERSTATE)
  12887. typedef struct tagCFG_CARDIVERSTATE_INFO
  12888. {
  12889. int nAccelerationThreshold; // 急加速阀值,单位:0.1m/s^2
  12890. int nDecelerationThreshold; // 急减速阀值,单位:0.1m/s^2
  12891. }CFG_CARDIVERSTATE_INFO;
  12892. // 车载配置(对应 CFG_CMD_VEHICLE)
  12893. typedef struct tagCFG_VEHICLE_INFO
  12894. {
  12895. char szPlateNumber[CFG_MAX_PLATE_NUMBER_LEN]; // 车牌内容
  12896. }CFG_VEHICLE_INFO;
  12897. //智能家居场景列表配置(对应CFG_CMD_SMARTHOME_SCENELIST)
  12898. typedef struct tagCFG_SMARTHOME_SCENELIST_INFO
  12899. {
  12900. DWORD dwSize; //结构体大小
  12901. char szSceneID[32]; //场景ID
  12902. char szName[128]; //场景名称
  12903. }CFG_SMARTHOME_SCENELIST_INFO;
  12904. typedef enum tagEM_CFG_LC_LIGHT_TYPE
  12905. {
  12906. EM_CFG_LC_LIGHT_TYPEUNKNOWN, //未知
  12907. EM_CFG_LC_LIGHT_TYPE_INFRAREDLIGHT, //红外灯
  12908. EM_CFG_LC_LIGHT_TYPE_WIHTELIGHT, //白光灯
  12909. EM_CFG_LC_LIGHT_TYPE_LASERLIGHT, //激光灯
  12910. }EM_CFG_LC_LIGHT_TYPE;
  12911. typedef enum tagEM_CFG_LC_MODE
  12912. {
  12913. EM_CFG_LC_MODE_UNKNOWN, //未知
  12914. EM_CFG_LC_MODE_MANUAL, //手动
  12915. EM_CFG_LC_MODE_ZOOMPRIO, //倍率优先
  12916. EM_CFG_LC_MODE_TIMING, //定时
  12917. EM_CFG_LC_MODE_AUTO, //自动
  12918. EM_CFG_LC_MODE_OFF, //关闭灯光
  12919. EM_CFG_LC_MODE_EXCLUSIVEMANUAL, //支持多种灯光
  12920. EM_CFG_LC_MODE_SMARTLIGHT, //智能灯光
  12921. EM_CFG_LC_MODE_LINKING, //事件联动
  12922. EM_CFG_LC_MODE_DUSKTODAWN //光敏
  12923. }EM_CFG_LC_MODE;
  12924. #define CFG_LC_LIGHT_COUNT 4 //灯光组灯光数量
  12925. //灯光信息
  12926. typedef struct tagNET_LIGHT_INFO
  12927. {
  12928. int nLight; //亮度百分比
  12929. int nAngle; //激光灯角度归一化值
  12930. }NET_LIGHT_INFO;
  12931. //补光灯灵敏度配置信息单元
  12932. typedef struct tagCFG_LIGHTING_V2_UNIT
  12933. {
  12934. EM_CFG_LC_LIGHT_TYPE emLightType; //灯光类型
  12935. EM_CFG_LC_MODE emMode; //灯光模式
  12936. int nCorrection; //灯光补偿
  12937. int nSensitive; //灯光灵敏度
  12938. int nLightSwitchDelay; //补光灯开关延时
  12939. NET_LIGHT_INFO anNearLight[CFG_LC_LIGHT_COUNT]; //近光灯组信息
  12940. int nNearLightLen; //近光灯组数量
  12941. NET_LIGHT_INFO anMiddleLight[CFG_LC_LIGHT_COUNT]; //中光灯组信息
  12942. int nMiddleLightLen; //中光灯组数量
  12943. NET_LIGHT_INFO anFarLight[CFG_LC_LIGHT_COUNT]; //远光灯组信息
  12944. int nFarLightLen; //远光灯组数量
  12945. BYTE byReserved[128]; //预留字节
  12946. }CFG_LIGHTING_V2_UNIT;
  12947. #define LC_LIGHT_TYPE_NUM 3
  12948. //白天黑夜补光灯灵敏度配置
  12949. typedef struct tagCFG_LIGHTING_V2_DAYNIGHT
  12950. {
  12951. CFG_LIGHTING_V2_UNIT anLightInfo[LC_LIGHT_TYPE_NUM]; //各类型灯光信息
  12952. int nLightInfoLen; //灯光类型数量
  12953. }CFG_LIGHTING_V2_DAYNIGHT;
  12954. //补光灯灵敏度配置
  12955. typedef struct tagCFG_LIGHTING_V2_INFO
  12956. {
  12957. int nChannel; //通道
  12958. CFG_LIGHTING_V2_DAYNIGHT anDNLightInfo[2]; //白天黑夜对应灯光配置
  12959. }CFG_LIGHTING_V2_INFO;
  12960. #define MAX_KBUSER_NUM 100 // 操作员用户最大个数
  12961. //操作员用户信息
  12962. typedef struct tagCFG_KBUSER_PASSWORD_INFO
  12963. {
  12964. UINT nUserCode; // 键盘用户编号
  12965. char szPassword[7]; // 键盘用户密码
  12966. BYTE bReserved[257]; // 保留字节
  12967. }CFG_KBUSER_PASSWORD_INFO;
  12968. //键盘操作员用户配置(对应CFG_CMD_KBUSER_PASSWORD)
  12969. typedef struct tagCFG_KBUSER_USERS_INFO
  12970. {
  12971. DWORD dwSize; // 结构体大小
  12972. int nKbuserNum; // 操作员用户个数,一般默认支持的最大个数为32
  12973. CFG_KBUSER_PASSWORD_INFO stuKbuserPassword[MAX_KBUSER_NUM]; // 操作员用户信息
  12974. }CFG_KBUSER_USERS_INFO;
  12975. //金库服务状态
  12976. typedef enum tagEM_GOLD_SERVICE
  12977. {
  12978. EM_GOLD_SERVICE_UNKNOWN = -1, //未知
  12979. EM_GOLD_SERVICE_CLOSE, //关闭
  12980. EM_GOLD_SERVICE_OPEN, //开启
  12981. EM_GOLD_SERVICE_OTHER, //其他
  12982. }EM_GOLD_SERVICE;
  12983. //门禁区域
  12984. typedef enum tagEM_GUARD_AREA
  12985. {
  12986. EM_GUARD_AREA_UNKNOWN, //未知
  12987. EM_GUARD_AREA_HANDOVER, //交接区
  12988. EM_GUARD_AREA_CASH, //现金区
  12989. EM_GUARD_AREA_NOBLEMETAL, //贵金属区
  12990. EM_GUARD_AREA_DEPOSIT, //寄存库
  12991. EM_GUARD_AREA_CUSTODY, //代保管库
  12992. EM_GUARD_AREA_CHECK, //清分整点区
  12993. EM_GUARD_AREA_GOLDSPLIT, //黄金分割区
  12994. EM_GUARD_AREA_GODLSALE, //黄金寄售区
  12995. EM_GUARD_AREA_LOAD, //装卸区
  12996. EM_GUARD_AREA_BUSINESS, //营业区
  12997. EM_GUARD_AREA_OFFICE, //办公区
  12998. EM_GUARD_AREA_DUTYROOM, //监控值班室
  12999. EM_GUARD_AREA_OTHER, //其他
  13000. EM_GUARD_AREA_VOUCHER, //凭证库
  13001. EM_GUARD_AREA_ISSUE, //发行库
  13002. EM_GUARD_AREA_ACCOUNT, //账务处理区
  13003. }EM_GUARD_AREA;
  13004. //门禁类型
  13005. typedef enum tagEM_GUARD_TYPE
  13006. {
  13007. EM_GUARD_TYPE_UNKNOWN, //未知
  13008. EM_GUARD_TYPE_VAULT, //金库区
  13009. EM_GUARD_TYPE_WORK, //工作区
  13010. }EM_GUARD_TYPE;
  13011. //OEM数据
  13012. typedef struct tagCFG_ACCESS_OEM_DATA
  13013. {
  13014. char szZoneNo[6]; //地区号
  13015. BYTE byReserved1[2]; //对齐字节
  13016. char szBrNo[6]; //网点号
  13017. BYTE byReserved2[2]; //对齐字节
  13018. EM_GUARD_AREA emGuardArea; //门禁区域
  13019. BYTE byReserved3[1]; //对齐字节
  13020. EM_GUARD_TYPE emGuardType; //门禁类型
  13021. BYTE byReserved4[1]; //对齐字节
  13022. char szCorpId[11]; //厂商标识
  13023. BYTE byReserved5[1]; //对齐字节
  13024. char szDeviceType[6]; //设备类型
  13025. BYTE byReserved6[2]; //对齐字节
  13026. char szLastModTime[20]; //最后修改时间
  13027. char szLastModUser[11]; //最后修改人
  13028. BYTE byReserved7[1]; //对齐字节
  13029. EM_GOLD_SERVICE emService; //金库服务状态
  13030. BYTE byReserved[128]; //保留字节
  13031. }CFG_ACCESS_OEM_DATA;
  13032. //工行金库门禁配置
  13033. typedef struct tagCFG_ACCESS_OEM_INFO
  13034. {
  13035. char szCorporation[CFG_COMMON_STRING_32]; //OEM对象
  13036. unsigned int nSuiteNumber; //OEM套件号
  13037. CFG_ACCESS_OEM_DATA stuData; //OEM信息
  13038. BYTE byReserved[1024]; //保留字节
  13039. }CFG_ACCESS_OEM_INFO;
  13040. //热成像特有的机芯降噪配置
  13041. typedef struct tagCFG_THERM_DENOISE_INFO
  13042. {
  13043. BOOL bEnable; // 机芯降噪使能
  13044. UINT nDenoiseValue; // 降噪等级0-100, bEnable为TRUE时有效
  13045. BYTE byReserved[128]; // 保留字节
  13046. }CFG_THERM_DENOISE_INFO;
  13047. typedef struct tagCFG_THERM_DENOISE
  13048. {
  13049. CFG_THERM_DENOISE_INFO stuThermDenoiseInfo[3]; // [0]:白天,[1]:黑夜,[2]:普通
  13050. BYTE byReserved[1024]; // 保留字节
  13051. }CFG_THERM_DENOISE;
  13052. // 灯光工作模式
  13053. typedef enum tagEM_LAMP_WORK_MODE
  13054. {
  13055. EM_LAMP_UNKNOWN = -1, // 未知
  13056. EM_LAMP_NO_FLASH, // 静止闪光
  13057. EM_LAMP_ALWAYS_FLASH, // 始终闪光
  13058. EM_LAMP_AUTO_FLASH, // 自动闪光
  13059. }EM_LAMP_WORK_MODE;
  13060. // 灯光自动模式
  13061. typedef enum tagEM_LAMP_AUTO_TYPE
  13062. {
  13063. EM_LAMP_AUTO_UNKNOWN, // 未知
  13064. EM_LAMP_AUTO_TIMEING, // 按时间控制开关
  13065. EM_LAMP_ALWAYS_BRIGHTNESS, // 按亮度
  13066. EM_LAMP_AUTO_SPACE_STATE, // 车辆刚驶入时设备亮灯,一定时间后关闭。时间值由程序调试取最优值,暂不开放。
  13067. EM_LAMP_AUTO_ICRCUT, // 亮灯绑定在ICR切换上,根据ICR状态开关
  13068. }EM_LAMP_AUTO_TYPE;
  13069. // 交通灯光配置中的时间段
  13070. typedef struct tagTRAFFIC_LAMP_TIME
  13071. {
  13072. CFG_TIME stuTimeBegin; // 开始时间
  13073. CFG_TIME stuTimeEnd; // 结束时间
  13074. }TRAFFIC_LAMP_TIME;
  13075. // 交通灯光配置
  13076. typedef struct tagTRAFFIC_CONSTATE_LAMP_CONFIG
  13077. {
  13078. UINT nLightMask; // 灯控掩码,某些灯上有6个灯泡,可设置部分灯亮,按位表示。1表示亮,0表示灭
  13079. UINT nBrightness; // 常亮灯亮度[0,100]
  13080. UINT nPreValue; // 亮度预设值, 环境亮度低于此值,常亮灯开始工作
  13081. EM_LAMP_WORK_MODE emLampMode; // 灯光工作模式
  13082. EM_LAMP_AUTO_TYPE emAutoMode; // 自动模式下的工作类型
  13083. int nNumOfTime; // 时间段的个数
  13084. TRAFFIC_LAMP_TIME stuTimeSection[7]; // 时间段配置
  13085. BYTE byReserved[1024]; // 保留字节
  13086. }TRAFFIC_CONSTATE_LAMP_CONFIG;
  13087. // 智能交通灯光配置
  13088. typedef struct tagCFG_CONSTANT_LAMP_INFO
  13089. {
  13090. UINT nTrafficLampNum; // 智能交通灯光配置个数
  13091. TRAFFIC_CONSTATE_LAMP_CONFIG stuTrafficLamp[16]; // 灯光的配置数组
  13092. }CFG_CONSTANT_LAMP_INFO;
  13093. // 线圈工作模式
  13094. typedef enum tagEM_TRAFFOCIO_WORKMODE
  13095. {
  13096. EM_TRAFFOCIO_UNKNOWN = -1, // 未知
  13097. EM_TRAFFOCIO_SINGLE_COIL, // 单线圈工作模式
  13098. EM_TRAFFOCIO_DOUBLE_COIL_SPEED, // 双线圈测试模式
  13099. EM_TRAFFOCIO_DOUBLE_COIL_TRAFFIC, // 双线圈交通模式
  13100. }EM_TRAFFOCIO_WORKMODE;
  13101. // 线圈触发方式
  13102. typedef enum tagEM_COIL_TRIGGER_MODE
  13103. {
  13104. EM_TRIGGER_UNKNOWN = -1, // 未知
  13105. EM_TRIGGER_NO_TRIGGER, // 不触发
  13106. EM_TRIGGER_RISING_EDGE, // 上升沿
  13107. EM_TRIGGER_FALLING_EDGE, // 下降沿
  13108. EM_TRIGGER_RISING_FALLING, // 上升下降沿
  13109. }EM_COIL_TRIGGER_MODE;
  13110. // 线圈配置类型
  13111. typedef enum tagEM_COIL_CONFIG_TYEP
  13112. {
  13113. EM_COIL_CONFIG_UNKNOWN = -1, // 未知
  13114. EM_COIL_CONFIG_GATE, // 卡口配置类型
  13115. EM_COIL_CONFIG_ELE_POLICE, // 电警配置类型
  13116. }EM_COIL_CONFIG_TYEP;
  13117. // 抓拍时机
  13118. typedef enum tagEM_SNAP_TRIGGER_MODE
  13119. {
  13120. EM_SNAP_TRIGGER_UNKNOWN = -1, // 未知
  13121. EM_SNAP_TRIGGER_NO_TRIGGER, // 不触发
  13122. EM_SNAP_TRIGGER_IN_TRIGGER, // 入线圈触发
  13123. EM_SNAP_TRIGGER_OUT_TRIGGER, // 出线圈触发
  13124. EM_SNAP_TRIGGER_INOUT_TRIGGER, // 出入线圈都触发
  13125. }EM_SNAP_TRIGGER_MODE;
  13126. // 红灯方向
  13127. typedef enum tagEM_RED_DIRECTION
  13128. {
  13129. EM_RED_DIRECTION_UNKNOWN = -1, // 未知
  13130. EM_RED_DIRECTION_NO_RELATED, // 不关联
  13131. EM_RED_DIRECTION_LEFT, // 左转红灯
  13132. EM_RED_DIRECTION_STRAIGT, // 直行红灯
  13133. EM_RED_DIRECTION_RIGHT, // 右转红灯
  13134. EM_RED_DIRECTION_WAIT_LEFT, // 待左
  13135. EM_RED_DIRECTION_WAIT_RIGHT, // 待右
  13136. EM_RED_DIRECTION_STRAIGT_LEFT, // 直行左转
  13137. EM_RED_DIRECTION_STRAIGT_RIGHT, // 直行右转,电警有效
  13138. }EM_RED_DIRECTION;
  13139. // 车道的线圈属性
  13140. typedef struct tagCFG_TRAFFICIO_LANES_COILS
  13141. {
  13142. UINT nCoilID; // 线圈ID
  13143. EM_COIL_TRIGGER_MODE emTriggerMode; // 触发方式
  13144. EM_COIL_CONFIG_TYEP emType; // 配置类型
  13145. UINT nDelayFlashID; // 延时闪光灯序号,范围0~5,0表示不延时任何闪光灯
  13146. UINT nFlashSerialID; // 闪光灯序号,范围0~5,0表示不打开闪光灯
  13147. EM_RED_DIRECTION emRedDirection; // 红灯方向
  13148. UINT nNextTriggerTime; // 下次触发时间
  13149. UINT nDelayTriggerTime; // 延时触发时间,ms为单位,0表示立即触发
  13150. EM_SNAP_TRIGGER_MODE emSnapTriggerMode; // 抓拍时机
  13151. }CFG_TRAFFICIO_LANES_COILS;
  13152. // 交通线圈的车道属性
  13153. typedef struct tagCFG_TRAFFICIO_LANES
  13154. {
  13155. UINT nLaneNumber; // 车道号,车道号范围是0-7
  13156. UINT nCarScheme; // 卡口配置方案,具体的方案索引,具体方案含义参考打包环境local.png
  13157. EM_TRAFFOCIO_WORKMODE emWorkMode; // 工作方式
  13158. int nLanesCoils; // 线圈配置的个数
  13159. CFG_TRAFFICIO_LANES_COILS stuLanesCoils[32]; // 线圈配置
  13160. BYTE byReserved[2048]; // 保留字节
  13161. }CFG_TRAFFICIO_LANES;
  13162. // 线圈IO配置
  13163. typedef struct tagCFG_TRAFFIC_IO
  13164. {
  13165. BOOL bEnable; // 使能
  13166. UINT nLanes; // 车道数量
  13167. CFG_TRAFFICIO_LANES stuTrafficIoLanes[16]; // 车道配置
  13168. }CFG_TRAFFIC_IO;
  13169. /************************************************************************
  13170. ** 接口定义
  13171. ***********************************************************************/
  13172. // 报警事件类型根据dhnetsdk.h解析出来的报警类型(pAlarmInfo, pBuffer内存由SDK内部申请释放)
  13173. typedef int (CALLBACK *fALARMEvent)(DWORD dwAlarmType, void* pAlarmInfo, DWORD dwStructSize, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  13174. // 回调方式进行数据解析,dwDataType表示数据解析得到类型(pDataInfo, pBuffer内存由SDK内部申请释放)
  13175. typedef int (CALLBACK *fAnalyzerData)(DWORD dwDataType, void* pDataInfo, DWORD dwStructSize, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser);
  13176. // 解析查询到的配置信息(szInBuffer,lpOutBuffer内存由用户申请释放)
  13177. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_ParseData(char* szCommand, char* szInBuffer, LPVOID lpOutBuffer, DWORD dwOutBufferSize, void* pReserved);
  13178. // 组成要设置的配置信息(lpInBuffer,szOutBuffer内存由用户申请释放)
  13179. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_PacketData(char* szCommand, LPVOID lpInBuffer, DWORD dwInBufferSize, char* szOutBuffer, DWORD dwOutBufferSize);
  13180. // 录像报警事件解析(lpInBuffer内存由用户申请释放)
  13181. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_ParseAnalyzerEventData(LPVOID lpInBuffer, DWORD dwInBufferSize, fALARMEvent cbEvent, LDWORD dwUser);
  13182. // 回调方式数据解析(lpInBuffer内存由用户申请释放)
  13183. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_ParseDataByCallback(LPVOID lpInBuffer, DWORD dwInBufferSize, fAnalyzerData cbAnalyzer, LDWORD dwUser);
  13184. // 解析获取到的智能全局配置/智能模板配置/指定大类下的智能规则配置(szInBuffer内存由用户申请释放)
  13185. CLIENT_CFG_API BOOL CALL_METHOD CLIENT_ParseVideoInAnalyse(char* szCommand, EM_SCENE_TYPE emSceneType, char *szInBuffer, DWORD dwInBufferSize, LPVOID lpOutParam, DWORD dwOutParamSize);
  13186. #ifdef __cplusplus
  13187. }
  13188. #endif
  13189. #endif // DHCONFIGSDK_H