CameraApiLoad.h 272 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952
  1. #ifndef _MV_CAM_API
  2. #define _MV_CAM_API
  3. #include "CameraDefine.h"
  4. #include "CameraStatus.h"
  5. #ifndef MAX_PATH
  6. #define MAX_PATH 256
  7. #endif
  8. //BIG5 TRANS ALLOWED
  9. /******************************************************/
  10. // 函数名 : CameraSdkInit
  11. // 功能描述 : 相机SDK初始化,在调用任何SDK其他接口前,必须
  12. // 先调用该接口进行初始化。该函数在整个进程运行
  13. // 期间只需要调用一次。
  14. // 参数 : iLanguageSel 用于选择SDK内部提示信息和界面的语种,
  15. // 0:表示英文,1:表示中文。
  16. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  17. // 否则返回非0值的错误码,请参考CameraStatus.h
  18. // 中错误码的定义。
  19. /******************************************************/
  20. typedef CameraSdkStatus (__stdcall *_CameraSdkInit)(
  21. int iLanguageSel
  22. );
  23. /// @ingroup API_BASIC
  24. /// \~chinese
  25. /// \brief 配置系统选项(通常需要在CameraInit打开相机之前配置好)
  26. /// \param [in] optionName 选项("NumBuffers", "3")
  27. /// \param [in] value 值
  28. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  29. /// \~english
  30. /// \brief Configure system options (usually required before CameraInit turns on the camera)
  31. /// \param [in] optionName option name("NumBuffers", "3")
  32. /// \param [in] value setting value
  33. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  34. typedef CameraSdkStatus (__stdcall *_CameraSetSysOption)(
  35. char const* optionName,
  36. char const* value
  37. );
  38. /******************************************************/
  39. // 函数名 : CameraEnumerateDevice
  40. // 功能描述 : 枚举设备,并建立设备列表。在调用CameraInit
  41. // 之前,必须调用该函数来获得设备的信息。
  42. // 参数 : pCameraList 设备列表数组指针。
  43. // piNums 设备的个数指针,调用时传入pCameraList
  44. // 数组的元素个数,函数返回时,保存实际找到的设备个数。
  45. // 注意,piNums指向的值必须初始化,且不超过pCameraList数组元素个数,
  46. // 否则有可能造成内存溢出。
  47. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  48. // 否则返回非0值的错误码,请参考CameraStatus.h
  49. // 中错误码的定义。
  50. /******************************************************/
  51. typedef CameraSdkStatus (__stdcall *_CameraEnumerateDevice)(
  52. tSdkCameraDevInfo* pCameraList,
  53. INT* piNums
  54. );
  55. /******************************************************/
  56. // 函数名 : CameraEnumerateDeviceEx
  57. // 功能描述 : 枚举设备,并建立设备列表。在调用CameraInitEx
  58. // 之前,必须调用该函数枚举设备。
  59. // 参数 :
  60. // 返回值 : 返回设备个数,0表示无。
  61. /******************************************************/
  62. typedef INT (__stdcall *_CameraEnumerateDeviceEx)(
  63. );
  64. /******************************************************/
  65. // 函数名 : CameraIsOpened
  66. // 功能描述 : 检测设备是否已经被其他应用程序打开。在调用CameraInit
  67. // 之前,可以使用该函数进行检测,如果已经被打开,调用
  68. // CameraInit会返回设备已经被打开的错误码。
  69. // 参数 : pCameraList 设备的枚举信息结构体指针,由CameraEnumerateDevice获得。
  70. // pOpened 设备的状态指针,返回设备是否被打开的状态,TRUE为打开,FALSE为空闲。
  71. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  72. // 否则返回非0值的错误码,请参考CameraStatus.h
  73. // 中错误码的定义。
  74. /******************************************************/
  75. typedef CameraSdkStatus (__stdcall *_CameraIsOpened)(
  76. tSdkCameraDevInfo* pCameraList,
  77. BOOL* pOpened
  78. );
  79. /******************************************************/
  80. // 函数名 : CameraInit
  81. // 功能描述 : 相机初始化。初始化成功后,才能调用任何其他
  82. // 相机相关的操作接口。
  83. // 参数 : pCameraInfo 该相机的设备描述信息,由CameraEnumerateDevice
  84. // 函数获得。
  85. // iParamLoadMode 相机初始化时使用的参数加载方式。-1表示使用上次退出时的参数加载方式。
  86. // emTeam 初始化时使用的参数组。-1表示加载上次退出时的参数组。
  87. // pCameraHandle 相机的句柄指针,初始化成功后,该指针
  88. // 返回该相机的有效句柄,在调用其他相机
  89. // 相关的操作接口时,都需要传入该句柄,主要
  90. // 用于多相机之间的区分。
  91. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  92. // 否则返回非0值的错误码,请参考CameraStatus.h
  93. // 中错误码的定义。
  94. /******************************************************/
  95. typedef CameraSdkStatus (__stdcall *_CameraInit)(
  96. tSdkCameraDevInfo* pCameraInfo,
  97. int emParamLoadMode,
  98. int emTeam,
  99. CameraHandle* pCameraHandle
  100. );
  101. /******************************************************/
  102. // 函数名 : CameraInitEx
  103. // 功能描述 : 相机初始化。初始化成功后,才能调用任何其他
  104. // 相机相关的操作接口。
  105. // 参数 : iDeviceIndex 相机的索引号,CameraEnumerateDeviceEx返回相机个数。
  106. // iParamLoadMode 相机初始化时使用的参数加载方式。-1表示使用上次退出时的参数加载方式。
  107. // 为 PARAM_MODE_BY_MODEL 表示按型号加载
  108. // 为 PARAM_MODE_BY_SN 表示按序列号加载
  109. // 为 PARAM_MODE_BY_NAME 表示按昵称加载
  110. // 详细请参开CameraDefine.h中 emSdkParameterMode 定义。
  111. // emTeam 初始化时使用的参数组。-1表示加载上次退出时的参数组。
  112. // pCameraHandle 相机的句柄指针,初始化成功后,该指针
  113. // 返回该相机的有效句柄,在调用其他相机
  114. // 相关的操作接口时,都需要传入该句柄,主要
  115. // 用于多相机之间的区分。
  116. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  117. // 否则返回非0值的错误码,请参考CameraStatus.h
  118. // 中错误码的定义。
  119. /******************************************************/
  120. typedef CameraSdkStatus (__stdcall *_CameraInitEx)(
  121. int iDeviceIndex,
  122. int iParamLoadMode,
  123. int emTeam,
  124. CameraHandle* pCameraHandle
  125. );
  126. /******************************************************/
  127. // 函数名 : CameraInitEx2
  128. // 功能描述 : 相机初始化。初始化成功后,才能调用任何其他
  129. // 相机相关的操作接口。 注意需要先调用CameraEnumerateDeviceEx枚举相机
  130. // 参数 : CameraName 相机名称
  131. // pCameraHandle 相机的句柄指针,初始化成功后,该指针
  132. // 返回该相机的有效句柄,在调用其他相机
  133. // 相关的操作接口时,都需要传入该句柄,主要
  134. // 用于多相机之间的区分。
  135. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  136. // 否则返回非0值的错误码,请参考CameraStatus.h
  137. // 中错误码的定义。
  138. /******************************************************/
  139. typedef CameraSdkStatus (__stdcall *_CameraInitEx2)(
  140. char* CameraName,
  141. CameraHandle *pCameraHandle
  142. );
  143. /******************************************************/
  144. // 函数名 : CameraSetCallbackFunction
  145. // 功能描述 : 设置图像捕获的回调函数。当捕获到新的图像数据帧时,
  146. // pCallBack所指向的回调函数就会被调用。
  147. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  148. // pCallBack 回调函数指针。
  149. // pContext 回调函数的附加参数,在回调函数被调用时
  150. // 该附加参数会被传入,可以为NULL。多用于
  151. // 多个相机时携带附加信息。
  152. // pCallbackOld 用于保存当前的回调函数。可以为NULL。
  153. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  154. // 否则返回非0值的错误码,请参考CameraStatus.h
  155. // 中错误码的定义。
  156. /******************************************************/
  157. typedef CameraSdkStatus (__stdcall *_CameraSetCallbackFunction)(
  158. CameraHandle hCamera,
  159. CAMERA_SNAP_PROC pCallBack,
  160. PVOID pContext,
  161. CAMERA_SNAP_PROC* pCallbackOld
  162. );
  163. /******************************************************/
  164. // 函数名 : CameraUnInit
  165. // 功能描述 : 相机反初始化。释放资源。
  166. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  167. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  168. // 否则返回非0值的错误码,请参考CameraStatus.h
  169. // 中错误码的定义。
  170. /******************************************************/
  171. typedef CameraSdkStatus (__stdcall *_CameraUnInit)(
  172. CameraHandle hCamera
  173. );
  174. /******************************************************/
  175. // 函数名 : CameraGetInformation
  176. // 功能描述 : 获得相机的描述信息
  177. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  178. // pbuffer 指向相机描述信息指针的指针。
  179. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  180. // 否则返回非0值的错误码,请参考CameraStatus.h
  181. // 中错误码的定义。
  182. /******************************************************/
  183. typedef CameraSdkStatus (__stdcall *_CameraGetInformation)(
  184. CameraHandle hCamera,
  185. char** pbuffer
  186. );
  187. /******************************************************/
  188. // 函数名 : CameraImageProcess
  189. // 功能描述 : 将获得的相机原始输出图像数据进行处理,叠加饱和度、
  190. // 颜色增益和校正、降噪等处理效果,最后得到RGB888
  191. // 格式的图像数据。
  192. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  193. // pbyIn 输入图像数据的缓冲区地址,不能为NULL。
  194. // pbyOut 处理后图像输出的缓冲区地址,不能为NULL。
  195. // pFrInfo 输入图像的帧头信息,处理完成后,帧头信息
  196. // 中的图像格式uiMediaType会随之改变。
  197. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  198. // 否则返回非0值的错误码,请参考CameraStatus.h
  199. // 中错误码的定义。
  200. /******************************************************/
  201. typedef CameraSdkStatus (__stdcall *_CameraImageProcess)(
  202. CameraHandle hCamera,
  203. BYTE* pbyIn,
  204. BYTE* pbyOut,
  205. tSdkFrameHead* pFrInfo
  206. );
  207. /******************************************************/
  208. // 函数名 : CameraImageProcessEx
  209. // 功能描述 : 将获得的相机原始输出图像数据进行处理,叠加饱和度、
  210. // 颜色增益和校正、降噪等处理效果,最后得到RGB888
  211. // 格式的图像数据。
  212. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  213. // pbyIn 输入图像数据的缓冲区地址,不能为NULL。
  214. // pbyOut 处理后图像输出的缓冲区地址,不能为NULL。
  215. // pFrInfo 输入图像的帧头信息,处理完成后,帧头信息
  216. // uOutFormat 处理完后图像的输出格式
  217. // uReserved 预留参数,必须设置为0
  218. // 中的图像格式uiMediaType会随之改变。
  219. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  220. // 否则返回非0值的错误码,请参考CameraStatus.h
  221. // 中错误码的定义。
  222. /******************************************************/
  223. typedef CameraSdkStatus (__stdcall *_CameraImageProcessEx)(
  224. CameraHandle hCamera,
  225. BYTE* pbyIn,
  226. BYTE* pbyOut,
  227. tSdkFrameHead* pFrInfo,
  228. UINT uOutFormat,
  229. UINT uReserved
  230. );
  231. /******************************************************/
  232. // 函数名 : CameraDisplayInit
  233. // 功能描述 : 初始化SDK内部的显示模块。在调用CameraDisplayRGB24
  234. // 前必须先调用该函数初始化。如果您在二次开发中,
  235. // 使用自己的方式进行图像显示(不调用CameraDisplayRGB24),
  236. // 则不需要调用本函数。
  237. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  238. // hWndDisplay 显示窗口的句柄,一般为窗口的m_hWnd成员。
  239. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  240. // 否则返回非0值的错误码,请参考CameraStatus.h
  241. // 中错误码的定义。
  242. /******************************************************/
  243. typedef CameraSdkStatus (__stdcall *_CameraDisplayInit)(
  244. CameraHandle hCamera,
  245. HWND hWndDisplay
  246. );
  247. /******************************************************/
  248. // 函数名 : CameraDisplayInitEx
  249. // 功能描述 : 初始化SDK内部的显示模块。在调用CameraDisplayRGB24
  250. // 前必须先调用该函数初始化。如果您在二次开发中,
  251. // 使用自己的方式进行图像显示(不调用CameraDisplayRGB24),
  252. // 则不需要调用本函数。 该函数和 CameraDisplayInit的区别是
  253. // 该函数时为图像文件创建一个SDK句柄,以使用其内部ISP、显示接口
  254. // 参数 : pCameraHandle 返回相机的句柄。
  255. // hWndDisplay 显示窗口的句柄,一般为窗口的m_hWnd成员。
  256. // szFileName 图像文件名。
  257. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  258. // 否则返回非0值的错误码,请参考CameraStatus.h
  259. // 中错误码的定义。
  260. /******************************************************/
  261. typedef CameraSdkStatus (__stdcall *_CameraDisplayInitEx)(
  262. CameraHandle* pCameraHandle,
  263. HWND hWndDisplay,
  264. char* szFileName
  265. );
  266. /******************************************************/
  267. // 函数名 : CameraDisplayRGB24
  268. // 功能描述 : 显示图像。必须调用过CameraDisplayInit进行
  269. // 初始化才能调用本函数。
  270. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  271. // pbyRGB24 图像的数据缓冲区,RGB888格式。
  272. // pFrInfo 图像的帧头信息。
  273. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  274. // 否则返回非0值的错误码,请参考CameraStatus.h
  275. // 中错误码的定义。
  276. /******************************************************/
  277. typedef CameraSdkStatus (__stdcall *_CameraDisplayRGB24)(
  278. CameraHandle hCamera,
  279. BYTE* pbyRGB24,
  280. tSdkFrameHead* pFrInfo
  281. );
  282. /******************************************************/
  283. // 函数名 : CameraSetDisplayMode
  284. // 功能描述 : 设置显示的模式。必须调用过CameraDisplayInit
  285. // 进行初始化才能调用本函数。
  286. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  287. // iMode 显示模式,DISPLAYMODE_SCALE或者
  288. // DISPLAYMODE_REAL,具体参见CameraDefine.h
  289. // 中emSdkDisplayMode的定义。
  290. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  291. // 否则返回非0值的错误码,请参考CameraStatus.h
  292. // 中错误码的定义。
  293. /******************************************************/
  294. typedef CameraSdkStatus (__stdcall *_CameraSetDisplayMode)(
  295. CameraHandle hCamera,
  296. INT iMode
  297. );
  298. /******************************************************/
  299. // 函数名 : CameraSetDisplayOffset
  300. // 功能描述 : 设置显示的起始偏移值。仅当显示模式为DISPLAYMODE_REAL
  301. // 时有效。例如显示控件的大小为320X240,而图像的
  302. // 的尺寸为640X480,那么当iOffsetX = 160,iOffsetY = 120时
  303. // 显示的区域就是图像的居中320X240的位置。必须调用过
  304. // CameraDisplayInit进行初始化才能调用本函数。
  305. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  306. // iOffsetX 偏移的X坐标。
  307. // iOffsetY 偏移的Y坐标。
  308. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  309. // 否则返回非0值的错误码,请参考CameraStatus.h
  310. // 中错误码的定义。
  311. /******************************************************/
  312. typedef CameraSdkStatus (__stdcall *_CameraSetDisplayOffset)(
  313. CameraHandle hCamera,
  314. int iOffsetX,
  315. int iOffsetY
  316. );
  317. /******************************************************/
  318. // 函数名 : CameraSetDisplaySize
  319. // 功能描述 : 设置显示控件的尺寸。必须调用过
  320. // CameraDisplayInit进行初始化才能调用本函数。
  321. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  322. // iWidth 宽度
  323. // iHeight 高度
  324. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  325. // 否则返回非0值的错误码,请参考CameraStatus.h
  326. // 中错误码的定义。
  327. /******************************************************/
  328. typedef CameraSdkStatus (__stdcall *_CameraSetDisplaySize)(
  329. CameraHandle hCamera,
  330. INT iWidth,
  331. INT iHeight
  332. );
  333. /******************************************************/
  334. // 函数名 : CameraGetImageBuffer
  335. // 功能描述 : 获得一帧图像数据。为了提高效率,SDK在图像抓取时采用了零拷贝机制,
  336. // CameraGetImageBuffer实际获得是内核中的一个缓冲区地址,
  337. // 该函数成功调用后,必须调用CameraReleaseImageBuffer释放由
  338. // CameraGetImageBuffer得到的缓冲区,以便让内核继续使用
  339. // 该缓冲区。
  340. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  341. // pFrameInfo 图像的帧头信息指针。
  342. // pbyBuffer 指向图像的数据的缓冲区指针。由于
  343. // 采用了零拷贝机制来提高效率,因此
  344. // 这里使用了一个指向指针的指针。
  345. // UINT wTimes 抓取图像的超时时间。单位毫秒。在
  346. // wTimes时间内还未获得图像,则该函数
  347. // 会返回超时信息。
  348. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  349. // 否则返回非0值的错误码,请参考CameraStatus.h
  350. // 中错误码的定义。
  351. /******************************************************/
  352. typedef CameraSdkStatus (__stdcall *_CameraGetImageBuffer)(
  353. CameraHandle hCamera,
  354. tSdkFrameHead* pFrameInfo,
  355. BYTE** pbyBuffer,
  356. UINT wTimes
  357. );
  358. /******************************************************/
  359. // 函数名 : CameraGetImageBufferEx
  360. // 功能描述 : 获得一帧图像数据。该接口获得的图像是经过处理后的RGB格式。该函数调用后,
  361. // 不需要调用 CameraReleaseImageBuffer 释放,也不要调用free之类的函数释放
  362. // 来释放该函数返回的图像数据缓冲区。
  363. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  364. // piWidth 整形指针,返回图像的宽度
  365. // piHeight 整形指针,返回图像的高度
  366. // UINT wTimes 抓取图像的超时时间。单位毫秒。在
  367. // wTimes时间内还未获得图像,则该函数
  368. // 会返回超时信息。
  369. // 返回值 : 成功时,返回RGB数据缓冲区的首地址;
  370. // 否则返回0。
  371. /******************************************************/
  372. typedef unsigned char* (__stdcall *_CameraGetImageBufferEx)(
  373. CameraHandle hCamera,
  374. INT* piWidth,
  375. INT* piHeight,
  376. UINT wTimes
  377. );
  378. /******************************************************/
  379. // 函数名 : CameraSnapToBuffer
  380. // 功能描述 : 抓拍一张图像到缓冲区中。相机会进入抓拍模式,并且
  381. // 自动切换到抓拍模式的分辨率进行图像捕获。然后将
  382. // 捕获到的数据保存到缓冲区中。
  383. // 该函数成功调用后,必须调用CameraReleaseImageBuffer
  384. // 释放由CameraSnapToBuffer得到的缓冲区。具体请参考
  385. // CameraGetImageBuffer函数的功能描述部分。
  386. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  387. // pFrameInfo 指针,返回图像的帧头信息。
  388. // pbyBuffer 指向指针的指针,用来返回图像缓冲区的地址。
  389. // uWaitTimeMs 超时时间,单位毫秒。在该时间内,如果仍然没有
  390. // 成功捕获的数据,则返回超时信息。
  391. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  392. // 否则返回非0值的错误码,请参考CameraStatus.h
  393. // 中错误码的定义。
  394. /******************************************************/
  395. typedef CameraSdkStatus (__stdcall *_CameraSnapToBuffer)(
  396. CameraHandle hCamera,
  397. tSdkFrameHead* pFrameInfo,
  398. BYTE** pbyBuffer,
  399. UINT uWaitTimeMs
  400. );
  401. typedef CameraSdkStatus (__stdcall *_CameraSnapJpegToFile)(
  402. CameraHandle hCamera,
  403. char const* lpszFileName,
  404. BYTE byQuality,
  405. UINT wTimes
  406. );
  407. /******************************************************/
  408. // 函数名 : CameraReleaseImageBuffer
  409. // 功能描述 : 释放由CameraGetImageBuffer获得的缓冲区。
  410. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  411. // pbyBuffer 由CameraGetImageBuffer获得的缓冲区地址。
  412. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  413. // 否则返回非0值的错误码,请参考CameraStatus.h
  414. // 中错误码的定义。
  415. /******************************************************/
  416. typedef CameraSdkStatus (__stdcall *_CameraReleaseImageBuffer)(
  417. CameraHandle hCamera,
  418. BYTE* pbyBuffer
  419. );
  420. /******************************************************/
  421. // 函数名 : CameraPlay
  422. // 功能描述 : 让SDK进入工作模式,开始接收来自相机发送的图像
  423. // 数据。如果当前相机是触发模式,则需要接收到
  424. // 触发帧以后才会更新图像。
  425. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  426. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  427. // 否则返回非0值的错误码,请参考CameraStatus.h
  428. // 中错误码的定义。
  429. /******************************************************/
  430. typedef CameraSdkStatus (__stdcall *_CameraPlay)(
  431. CameraHandle hCamera
  432. );
  433. /******************************************************/
  434. // 函数名 : CameraPause
  435. // 功能描述 : 让SDK进入暂停模式,不接收来自相机的图像数据,
  436. // 同时也会发送命令让相机暂停输出,释放传输带宽。
  437. // 暂停模式下,可以对相机的参数进行配置,并立即生效。
  438. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  439. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  440. // 否则返回非0值的错误码,请参考CameraStatus.h
  441. // 中错误码的定义。
  442. /******************************************************/
  443. typedef CameraSdkStatus (__stdcall *_CameraPause)(
  444. CameraHandle hCamera
  445. );
  446. /******************************************************/
  447. // 函数名 : CameraStop
  448. // 功能描述 : 让SDK进入停止状态,一般是反初始化时调用该函数,
  449. // 该函数被调用,不能再对相机的参数进行配置。
  450. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  451. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  452. // 否则返回非0值的错误码,请参考CameraStatus.h
  453. // 中错误码的定义。
  454. /******************************************************/
  455. typedef CameraSdkStatus (__stdcall *_CameraStop)(
  456. CameraHandle hCamera
  457. );
  458. /******************************************************/
  459. // 函数名 : CameraInitRecord
  460. // 功能描述 : 初始化一次录像。
  461. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  462. // iFormat 录像的格式,当前只支持不压缩和MSCV两种方式。
  463. // 0:不压缩;1:MSCV方式压缩。
  464. // pcSavePath 录像文件保存的路径。
  465. // b2GLimit 如果为TRUE,则文件大于2G时自动分割。
  466. // dwQuality 录像的质量因子,越大,则质量越好。范围1到100.
  467. // iFrameRate 录像的帧率。建议设定的比实际采集帧率大,
  468. // 这样就不会漏帧。
  469. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  470. // 否则返回非0值的错误码,请参考CameraStatus.h
  471. // 中错误码的定义。
  472. /******************************************************/
  473. typedef CameraSdkStatus (__stdcall *_CameraInitRecord)(
  474. CameraHandle hCamera,
  475. int iFormat,
  476. char* pcSavePath,
  477. BOOL b2GLimit,
  478. DWORD dwQuality,
  479. int iFrameRate
  480. );
  481. /******************************************************/
  482. // 函数名 : CameraStopRecord
  483. // 功能描述 : 结束本次录像。当CameraInitRecord后,可以通过该函数
  484. // 来结束一次录像,并完成文件保存操作。
  485. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  486. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  487. // 否则返回非0值的错误码,请参考CameraStatus.h
  488. // 中错误码的定义。
  489. /******************************************************/
  490. typedef CameraSdkStatus (__stdcall *_CameraStopRecord)(
  491. CameraHandle hCamera
  492. );
  493. /******************************************************/
  494. // 函数名 : CameraPushFrame
  495. // 功能描述 : 将一帧数据存入录像流中。必须调用CameraInitRecord
  496. // 才能调用该函数。CameraStopRecord调用后,不能再调用
  497. // 该函数。由于我们的帧头信息中携带了图像采集的时间戳
  498. // 信息,因此录像可以精准的时间同步,而不受帧率不稳定
  499. // 的影响。
  500. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  501. // pbyImageBuffer 图像的数据缓冲区,必须是RGB格式。
  502. // pFrInfo 图像的帧头信息。
  503. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  504. // 否则返回非0值的错误码,请参考CameraStatus.h
  505. // 中错误码的定义。
  506. /******************************************************/
  507. typedef CameraSdkStatus (__stdcall *_CameraPushFrame)(
  508. CameraHandle hCamera,
  509. BYTE* pbyImageBuffer,
  510. tSdkFrameHead* pFrInfo
  511. );
  512. /******************************************************/
  513. // 函数名 : CameraSaveImage
  514. // 功能描述 : 将图像缓冲区的数据保存成图片文件。
  515. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  516. // lpszFileName 图片保存文件完整路径。
  517. // pbyImageBuffer 图像的数据缓冲区。
  518. // pFrInfo 图像的帧头信息。
  519. // byFileType 图像保存的格式。取值范围参见CameraDefine.h
  520. // 中emSdkFileType的类型定义。目前支持
  521. // BMP、JPG、PNG、RAW四种格式。其中RAW表示
  522. // 相机输出的原始数据,保存RAW格式文件要求
  523. // pbyImageBuffer和pFrInfo是由CameraGetImageBuffer
  524. // 获得的数据,而且未经CameraImageProcess转换
  525. // 成BMP格式;反之,如果要保存成BMP、JPG或者
  526. // PNG格式,则pbyImageBuffer和pFrInfo是由
  527. // CameraImageProcess处理后的RGB格式数据。
  528. // 具体用法可以参考Advanced的例程。
  529. // byQuality 图像保存的质量因子,仅当保存为JPG格式
  530. // 时该参数有效,范围1到100。其余格式
  531. // 可以写成0。
  532. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  533. // 否则返回非0值的错误码,请参考CameraStatus.h
  534. // 中错误码的定义。
  535. /******************************************************/
  536. typedef CameraSdkStatus (__stdcall *_CameraSaveImage)(
  537. CameraHandle hCamera,
  538. char* lpszFileName,
  539. BYTE* pbyImageBuffer,
  540. tSdkFrameHead* pFrInfo,
  541. UINT byFileType,
  542. BYTE byQuality
  543. );
  544. /******************************************************/
  545. // 函数名 : CameraGetImageResolution
  546. // 功能描述 : 获得当前预览的分辨率。
  547. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  548. // psCurVideoSize 结构体指针,用于返回当前的分辨率。
  549. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  550. // 否则返回非0值的错误码,请参考CameraStatus.h
  551. // 中错误码的定义。
  552. /******************************************************/
  553. typedef CameraSdkStatus (__stdcall *_CameraGetImageResolution)(
  554. CameraHandle hCamera,
  555. tSdkImageResolution* psCurVideoSize
  556. );
  557. /******************************************************/
  558. // 函数名 : CameraGetImageResolutionEx
  559. // 功能描述 : 获取相机的分辨率。
  560. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  561. // iIndex 索引号,[0,N]表示预设的分辨率(N 为预设分辨率的最大个数,一般不超过20),OXFF 表示自定义分辨率(ROI)
  562. // acDescription 该分辨率的描述信息。仅预设分辨率时该信息有效。自定义分辨率可忽略该信息
  563. // Mode 0: 普通模式 1:Sum 2:Average 3:Skip 4:Resample
  564. // ModeSize 普通模式下忽略,第1位表示2X2 第二位表示3X3 ...
  565. // x, y 水平、垂直偏移
  566. // width, height 宽高
  567. // ZoomWidth,ZoomHeight 最终输出时缩放为多大,0表示不缩放
  568. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  569. // 否则返回非0值的错误码,请参考CameraStatus.h
  570. // 中错误码的定义。
  571. /******************************************************/
  572. typedef CameraSdkStatus (__stdcall *_CameraGetImageResolutionEx)(
  573. CameraHandle hCamera,
  574. int* iIndex,
  575. char acDescription[32],
  576. int* Mode,
  577. UINT* ModeSize,
  578. int* x,
  579. int* y,
  580. int* width,
  581. int* height,
  582. int* ZoomWidth,
  583. int* ZoomHeight
  584. );
  585. /******************************************************/
  586. // 函数名 : CameraSetImageResolution
  587. // 功能描述 : 设置预览的分辨率。
  588. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  589. // pImageResolution 结构体指针,用于返回当前的分辨率。
  590. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  591. // 否则返回非0值的错误码,请参考CameraStatus.h
  592. // 中错误码的定义。
  593. /******************************************************/
  594. typedef CameraSdkStatus (__stdcall *_CameraSetImageResolution)(
  595. CameraHandle hCamera,
  596. tSdkImageResolution* pImageResolution
  597. );
  598. /******************************************************/
  599. // 函数名 : CameraSetImageResolutionEx
  600. // 功能描述 : 设置相机的分辨率。
  601. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  602. // iIndex 索引号,[0,N]表示预设的分辨率(N 为预设分辨率的最大个数,一般不超过20),OXFF 表示自定义分辨率(ROI)
  603. // Mode 0: 普通模式 1:Sum 2:Average 3:Skip 4:Resample
  604. // ModeSize 普通模式下忽略,第1位表示2X2 第二位表示3X3 ...
  605. // x, y 水平、垂直偏移
  606. // width, height 宽高
  607. // ZoomWidth,ZoomHeight 最终输出时缩放为多大,0表示不缩放
  608. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  609. // 否则返回非0值的错误码,请参考CameraStatus.h
  610. // 中错误码的定义。
  611. /******************************************************/
  612. typedef CameraSdkStatus (__stdcall *_CameraSetImageResolutionEx)(
  613. CameraHandle hCamera,
  614. int iIndex,
  615. int Mode,
  616. UINT ModeSize,
  617. int x,
  618. int y,
  619. int width,
  620. int height,
  621. int ZoomWidth,
  622. int ZoomHeight
  623. );
  624. /******************************************************/
  625. // 函数名 : CameraGetMediaType
  626. // 功能描述 : 获得相机当前输出原始数据的格式索引号。
  627. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  628. // piMediaType 指针,用于返回当前格式类型的索引号。
  629. // 由CameraGetCapability获得相机的属性,
  630. // 在tSdkCameraCapbility结构体中的pMediaTypeDesc
  631. // 成员中,以数组的形式保存了相机支持的格式,
  632. // piMediaType所指向的索引号,就是该数组的索引号。
  633. // pMediaTypeDesc[*piMediaType].iMediaType则表示当前格式的
  634. // 编码。该编码请参见CameraDefine.h中[图像格式定义]部分。
  635. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  636. // 否则返回非0值的错误码,请参考CameraStatus.h
  637. // 中错误码的定义。
  638. /******************************************************/
  639. typedef CameraSdkStatus (__stdcall *_CameraGetMediaType)(
  640. CameraHandle hCamera,
  641. INT* piMediaType
  642. );
  643. /******************************************************/
  644. // 函数名 : CameraSetMediaType
  645. // 功能描述 : 设置相机的输出原始数据格式。
  646. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  647. // iMediaType 由CameraGetCapability获得相机的属性,
  648. // 在tSdkCameraCapbility结构体中的pMediaTypeDesc
  649. // 成员中,以数组的形式保存了相机支持的格式,
  650. // iMediaType就是该数组的索引号。
  651. // pMediaTypeDesc[iMediaType].iMediaType则表示当前格式的
  652. // 编码。该编码请参见CameraDefine.h中[图像格式定义]部分。
  653. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  654. // 否则返回非0值的错误码,请参考CameraStatus.h
  655. // 中错误码的定义。
  656. /******************************************************/
  657. typedef CameraSdkStatus (__stdcall *_CameraSetMediaType)(
  658. CameraHandle hCamera,
  659. INT iMediaType
  660. );
  661. /// @ingroup API_ADVANCE
  662. /// \~chinese
  663. /// \brief 获取RAW数据的最大有效位数
  664. /// \param [in] hCamera 相机的句柄。
  665. /// \param [out] pMaxAvailBits 返回RAW的最大有效位数
  666. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  667. /// \~english
  668. /// \brief Get the maximum number of significant bits of RAW data
  669. /// \param [in] hCamera Camera handle.
  670. /// \param [out] pMaxAvailBits returns the maximum number of significant bits of RAW data
  671. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  672. typedef CameraSdkStatus (__stdcall *_CameraGetRawMaxAvailBits)(
  673. CameraHandle hCamera,
  674. int* pMaxAvailBits
  675. );
  676. /// @ingroup API_ADVANCE
  677. /// \~chinese
  678. /// \brief 设置RAW数据的输出起始位
  679. /// \param [in] hCamera 相机的句柄。
  680. /// \param [in] startBit 起始BIT(默认输出高8位)
  681. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  682. /// \~english
  683. /// \brief Set the output start bit of RAW data
  684. /// \param [in] hCamera Camera handle.
  685. /// \param [in] startBit Start BIT (The high 8 bits are output by default)
  686. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  687. typedef CameraSdkStatus (__stdcall *_CameraSetRawStartBit)(
  688. CameraHandle hCamera,
  689. int startBit
  690. );
  691. /// @ingroup API_ADVANCE
  692. /// \~chinese
  693. /// \brief 获取RAW数据的输出起始位
  694. /// \param [in] hCamera 相机的句柄。
  695. /// \param [out] startBit 起始BIT
  696. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  697. /// \~english
  698. /// \brief Get the output start bit of RAW data
  699. /// \param [in] hCamera Camera handle.
  700. /// \param [out] startBit Start BIT
  701. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  702. typedef CameraSdkStatus (__stdcall *_CameraGetRawStartBit)(
  703. CameraHandle hCamera,
  704. int* startBit
  705. );
  706. /******************************************************/
  707. // 函数名 : CameraSetAeState
  708. // 功能描述 : 设置相机曝光的模式。自动或者手动。
  709. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  710. // bAeState TRUE,使能自动曝光;FALSE,停止自动曝光。
  711. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  712. // 否则返回非0值的错误码,请参考CameraStatus.h
  713. // 中错误码的定义。
  714. /******************************************************/
  715. typedef CameraSdkStatus (__stdcall *_CameraSetAeState)(
  716. CameraHandle hCamera,
  717. BOOL bAeState
  718. );
  719. /******************************************************/
  720. // 函数名 : CameraGetAeState
  721. // 功能描述 : 获得相机当前的曝光模式。
  722. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  723. // pAeState 指针,用于返回自动曝光的使能状态。
  724. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  725. // 否则返回非0值的错误码,请参考CameraStatus.h
  726. // 中错误码的定义。
  727. /******************************************************/
  728. typedef CameraSdkStatus (__stdcall *_CameraGetAeState)(
  729. CameraHandle hCamera,
  730. BOOL* pAeState
  731. );
  732. /******************************************************/
  733. // 函数名 : CameraSetSharpness
  734. // 功能描述 : 设置图像的处理的锐化参数。
  735. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  736. // iSharpness 锐化参数。范围由CameraGetCapability
  737. // 获得,一般是[0,100],0表示关闭锐化处理。
  738. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  739. // 否则返回非0值的错误码,请参考CameraStatus.h
  740. // 中错误码的定义。
  741. /******************************************************/
  742. typedef CameraSdkStatus (__stdcall *_CameraSetSharpness)(
  743. CameraHandle hCamera,
  744. int iSharpness
  745. );
  746. /******************************************************/
  747. // 函数名 : CameraGetSharpness
  748. // 功能描述 : 获取当前锐化设定值。
  749. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  750. // piSharpness 指针,返回当前设定的锐化的设定值。
  751. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  752. // 否则返回非0值的错误码,请参考CameraStatus.h
  753. // 中错误码的定义。
  754. /******************************************************/
  755. typedef CameraSdkStatus (__stdcall *_CameraGetSharpness)(
  756. CameraHandle hCamera,
  757. int* piSharpness
  758. );
  759. /******************************************************/
  760. // 函数名 : CameraSetLutMode
  761. // 功能描述 : 设置相机的查表变换模式LUT模式。
  762. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  763. // emLutMode LUTMODE_PARAM_GEN 表示由伽马和对比度参数动态生成LUT表。
  764. // LUTMODE_PRESET 表示使用预设的LUT表。
  765. // LUTMODE_USER_DEF 表示使用用户自定的LUT表。
  766. // LUTMODE_PARAM_GEN的定义参考CameraDefine.h中emSdkLutMode类型。
  767. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  768. // 否则返回非0值的错误码,请参考CameraStatus.h
  769. // 中错误码的定义。
  770. /******************************************************/
  771. typedef CameraSdkStatus (__stdcall *_CameraSetLutMode)(
  772. CameraHandle hCamera,
  773. int emLutMode
  774. );
  775. /******************************************************/
  776. // 函数名 : CameraGetLutMode
  777. // 功能描述 : 获得相机的查表变换模式LUT模式。
  778. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  779. // pemLutMode 指针,返回当前LUT模式。意义与CameraSetLutMode
  780. // 中emLutMode参数相同。
  781. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  782. // 否则返回非0值的错误码,请参考CameraStatus.h
  783. // 中错误码的定义。
  784. /******************************************************/
  785. typedef CameraSdkStatus (__stdcall *_CameraGetLutMode)(
  786. CameraHandle hCamera,
  787. int* pemLutMode
  788. );
  789. /******************************************************/
  790. // 函数名 : CameraSelectLutPreset
  791. // 功能描述 : 选择预设LUT模式下的LUT表。必须先使用CameraSetLutMode
  792. // 将LUT模式设置为预设模式。
  793. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  794. // iSel 表的索引号。表的个数由CameraGetCapability
  795. // 获得。
  796. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  797. // 否则返回非0值的错误码,请参考CameraStatus.h
  798. // 中错误码的定义。
  799. /******************************************************/
  800. typedef CameraSdkStatus (__stdcall *_CameraSelectLutPreset)(
  801. CameraHandle hCamera,
  802. int iSel
  803. );
  804. /******************************************************/
  805. // 函数名 : CameraGetLutPresetSel
  806. // 功能描述 : 获得预设LUT模式下的LUT表索引号。
  807. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  808. // piSel 指针,返回表的索引号。
  809. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  810. // 否则返回非0值的错误码,请参考CameraStatus.h
  811. // 中错误码的定义。
  812. /******************************************************/
  813. typedef CameraSdkStatus (__stdcall *_CameraGetLutPresetSel)(
  814. CameraHandle hCamera,
  815. int* piSel
  816. );
  817. /******************************************************/
  818. // 函数名 : CameraSetCustomLut
  819. // 功能描述 : 设置自定义的LUT表。必须先使用CameraSetLutMode
  820. // 将LUT模式设置为自定义模式。
  821. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  822. // iChannel 指定要设定的LUT颜色通道,当为LUT_CHANNEL_ALL时,
  823. // 三个通道的LUT将被同时替换。
  824. // 参考CameraDefine.h中emSdkLutChannel定义。
  825. // pLut 指针,指向LUT表的地址。LUT表为无符号短整形数组,数组大小为
  826. // 4096,分别代码颜色通道从0到4096(12bit颜色精度)对应的映射值。
  827. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  828. // 否则返回非0值的错误码,请参考CameraStatus.h
  829. // 中错误码的定义。
  830. /******************************************************/
  831. typedef CameraSdkStatus (__stdcall *_CameraSetCustomLut)(
  832. CameraHandle hCamera,
  833. int iChannel,
  834. USHORT* pLut
  835. );
  836. /******************************************************/
  837. // 函数名 : CameraGetCustomLut
  838. // 功能描述 : 获得当前使用的自定义LUT表。
  839. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  840. // iChannel 指定要获得的LUT颜色通道。当为LUT_CHANNEL_ALL时,
  841. // 返回红色通道的LUT表。
  842. // 参考CameraDefine.h中emSdkLutChannel定义。
  843. // pLut 指针,指向LUT表的地址。LUT表为无符号短整形数组,数组大小为
  844. // 4096,分别代码颜色通道从0到4096(12bit颜色精度)对应的映射值。
  845. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  846. // 否则返回非0值的错误码,请参考CameraStatus.h
  847. // 中错误码的定义。
  848. /******************************************************/
  849. typedef CameraSdkStatus (__stdcall *_CameraGetCustomLut)(
  850. CameraHandle hCamera,
  851. int iChannel,
  852. USHORT* pLut
  853. );
  854. /******************************************************/
  855. // 函数名 : CameraGetCurrentLut
  856. // 功能描述 : 获得相机当前的LUT表,在任何LUT模式下都可以调用,
  857. // 用来直观的观察LUT曲线的变化。
  858. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  859. // iChannel 指定要获得的LUT颜色通道。当为LUT_CHANNEL_ALL时,
  860. // 返回红色通道的LUT表。
  861. // 参考CameraDefine.h中emSdkLutChannel定义。
  862. // pLut 指针,指向LUT表的地址。LUT表为无符号短整形数组,数组大小为
  863. // 4096,分别代码颜色通道从0到4096(12bit颜色精度)对应的映射值。
  864. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  865. // 否则返回非0值的错误码,请参考CameraStatus.h
  866. // 中错误码的定义。
  867. /******************************************************/
  868. typedef CameraSdkStatus (__stdcall *_CameraGetCurrentLut)(
  869. CameraHandle hCamera,
  870. int iChannel,
  871. USHORT* pLut
  872. );
  873. /******************************************************/
  874. // 函数名 : CameraSetWbMode
  875. // 功能描述 : 设置相机白平衡模式。分为手动和自动两种方式。
  876. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  877. // bAuto TRUE,则表示使能自动模式。
  878. // FALSE,则表示使用手动模式,通过调用
  879. // CameraSetOnceWB来进行一次白平衡。
  880. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  881. // 否则返回非0值的错误码,请参考CameraStatus.h
  882. // 中错误码的定义。
  883. /******************************************************/
  884. typedef CameraSdkStatus (__stdcall *_CameraSetWbMode)(
  885. CameraHandle hCamera,
  886. BOOL bAuto
  887. );
  888. /******************************************************/
  889. // 函数名 : CameraGetWbMode
  890. // 功能描述 : 获得当前的白平衡模式。
  891. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  892. // pbAuto 指针,返回TRUE表示自动模式,FALSE
  893. // 为手动模式。
  894. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  895. // 否则返回非0值的错误码,请参考CameraStatus.h
  896. // 中错误码的定义。
  897. /******************************************************/
  898. typedef CameraSdkStatus (__stdcall *_CameraGetWbMode)(
  899. CameraHandle hCamera,
  900. BOOL* pbAuto
  901. );
  902. /******************************************************/
  903. // 函数名 : CameraSetPresetClrTemp
  904. // 功能描述 : 选择指定预设色温模式
  905. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  906. // iSel 预设色温的模式索引号,从0开始
  907. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  908. // 否则返回非0值的错误码,请参考CameraStatus.h
  909. // 中错误码的定义。
  910. /******************************************************/
  911. typedef CameraSdkStatus (__stdcall *_CameraSetPresetClrTemp)(
  912. CameraHandle hCamera,
  913. int iSel
  914. );
  915. /******************************************************/
  916. // 函数名 : CameraGetPresetClrTemp
  917. // 功能描述 : 获得当前选择的预设色温模式。
  918. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  919. // piSel 指针,返回选择的预设色温索引号
  920. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  921. // 否则返回非0值的错误码,请参考CameraStatus.h
  922. // 中错误码的定义。
  923. /******************************************************/
  924. typedef CameraSdkStatus (__stdcall *_CameraGetPresetClrTemp)(
  925. CameraHandle hCamera,
  926. int* piSel
  927. );
  928. /******************************************************/
  929. // 函数名 : CameraSetUserClrTempGain
  930. // 功能描述 : 设置自定义色温模式下的数字增益
  931. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  932. // iRgain 红色增益,范围0到400,表示0到4倍
  933. // iGgain 绿色增益,范围0到400,表示0到4倍
  934. // iBgain 蓝色增益,范围0到400,表示0到4倍
  935. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  936. // 否则返回非0值的错误码,请参考CameraStatus.h
  937. // 中错误码的定义。
  938. /******************************************************/
  939. typedef CameraSdkStatus (__stdcall *_CameraSetUserClrTempGain)(
  940. CameraHandle hCamera,
  941. int iRgain,
  942. int iGgain,
  943. int iBgain
  944. );
  945. /******************************************************/
  946. // 函数名 : CameraGetUserClrTempGain
  947. // 功能描述 : 获得自定义色温模式下的数字增益
  948. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  949. // piRgain 指针,返回红色增益,范围0到400,表示0到4倍
  950. // piGgain 指针,返回绿色增益,范围0到400,表示0到4倍
  951. // piBgain 指针,返回蓝色增益,范围0到400,表示0到4倍
  952. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  953. // 否则返回非0值的错误码,请参考CameraStatus.h
  954. // 中错误码的定义。
  955. /******************************************************/
  956. typedef CameraSdkStatus (__stdcall *_CameraGetUserClrTempGain)(
  957. CameraHandle hCamera,
  958. int* piRgain,
  959. int* piGgain,
  960. int* piBgain
  961. );
  962. /******************************************************/
  963. // 函数名 : CameraSetUserClrTempMatrix
  964. // 功能描述 : 设置自定义色温模式下的颜色矩阵
  965. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  966. // pMatrix 指向一个float[3][3]数组的首地址
  967. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  968. // 否则返回非0值的错误码,请参考CameraStatus.h
  969. // 中错误码的定义。
  970. /******************************************************/
  971. typedef CameraSdkStatus (__stdcall *_CameraSetUserClrTempMatrix)(
  972. CameraHandle hCamera,
  973. float* pMatrix
  974. );
  975. /******************************************************/
  976. // 函数名 : CameraGetUserClrTempMatrix
  977. // 功能描述 : 获得自定义色温模式下的颜色矩阵
  978. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  979. // pMatrix 指向一个float[3][3]数组的首地址
  980. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  981. // 否则返回非0值的错误码,请参考CameraStatus.h
  982. // 中错误码的定义。
  983. /******************************************************/
  984. typedef CameraSdkStatus (__stdcall *_CameraGetUserClrTempMatrix)(
  985. CameraHandle hCamera,
  986. float* pMatrix
  987. );
  988. /******************************************************/
  989. // 函数名 : CameraSetClrTempMode
  990. // 功能描述 : 设置白平衡时使用的色温模式,
  991. // 支持的模式有三种,分别是自动,预设和自定义。
  992. // 自动模式下,会自动选择合适的色温模式
  993. // 预设模式下,会使用用户指定的色温模式
  994. // 自定义模式下,使用用户自定义的色温数字增益和矩阵
  995. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  996. // iMode 模式,只能是emSdkClrTmpMode中定义的一种
  997. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  998. // 否则返回非0值的错误码,请参考CameraStatus.h
  999. // 中错误码的定义。
  1000. /******************************************************/
  1001. typedef CameraSdkStatus (__stdcall *_CameraSetClrTempMode)(
  1002. CameraHandle hCamera,
  1003. int iMode
  1004. );
  1005. /******************************************************/
  1006. // 函数名 : CameraGetClrTempMode
  1007. // 功能描述 : 获得白平衡时使用的色温模式。参考CameraSetClrTempMode
  1008. // 中功能描述部分。
  1009. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1010. // pimode 指针,返回模式选择,参考emSdkClrTmpMode类型定义
  1011. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1012. // 否则返回非0值的错误码,请参考CameraStatus.h
  1013. // 中错误码的定义。
  1014. /******************************************************/
  1015. typedef CameraSdkStatus (__stdcall *_CameraGetClrTempMode)(
  1016. CameraHandle hCamera,
  1017. int* pimode
  1018. );
  1019. /******************************************************/
  1020. // 函数名 : CameraSetOnceWB
  1021. // 功能描述 : 在手动白平衡模式下,调用该函数会进行一次白平衡。
  1022. // 生效的时间为接收到下一帧图像数据时。
  1023. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1024. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1025. // 否则返回非0值的错误码,请参考CameraStatus.h
  1026. // 中错误码的定义。
  1027. /******************************************************/
  1028. typedef CameraSdkStatus (__stdcall *_CameraSetOnceWB)(
  1029. CameraHandle hCamera
  1030. );
  1031. /******************************************************/
  1032. // 函数名 : CameraSetOnceBB
  1033. // 功能描述 : 执行一次黑平衡操作。
  1034. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1035. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1036. // 否则返回非0值的错误码,请参考CameraStatus.h
  1037. // 中错误码的定义。
  1038. /******************************************************/
  1039. typedef CameraSdkStatus (__stdcall *_CameraSetOnceBB)(
  1040. CameraHandle hCamera
  1041. );
  1042. /******************************************************/
  1043. // 函数名 : CameraSetAeTarget
  1044. // 功能描述 : 设定自动曝光的亮度目标值。设定范围由CameraGetCapability
  1045. // 函数获得。
  1046. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1047. // iAeTarget 亮度目标值。
  1048. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1049. // 否则返回非0值的错误码,请参考CameraStatus.h
  1050. // 中错误码的定义。
  1051. /******************************************************/
  1052. typedef CameraSdkStatus (__stdcall *_CameraSetAeTarget)(
  1053. CameraHandle hCamera,
  1054. int iAeTarget
  1055. );
  1056. /******************************************************/
  1057. // 函数名 : CameraGetAeTarget
  1058. // 功能描述 : 获得自动曝光的亮度目标值。
  1059. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1060. // *piAeTarget 指针,返回目标值。
  1061. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1062. // 否则返回非0值的错误码,请参考CameraStatus.h
  1063. // 中错误码的定义。
  1064. /******************************************************/
  1065. typedef CameraSdkStatus (__stdcall *_CameraGetAeTarget)(
  1066. CameraHandle hCamera,
  1067. int* piAeTarget
  1068. );
  1069. /******************************************************/
  1070. // 函数名 : CameraSetAeExposureRange
  1071. // 功能描述 : 设定自动曝光模式的曝光时间调节范围
  1072. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1073. // fMinExposureTime 最小曝光时间(微秒)
  1074. // fMaxExposureTime 最大曝光时间(微秒)
  1075. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1076. // 否则返回非0值的错误码,请参考CameraStatus.h
  1077. // 中错误码的定义。
  1078. /******************************************************/
  1079. typedef CameraSdkStatus (__stdcall *_CameraSetAeExposureRange)(
  1080. CameraHandle hCamera,
  1081. double fMinExposureTime,
  1082. double fMaxExposureTime
  1083. );
  1084. /******************************************************/
  1085. // 函数名 : CameraGetAeExposureRange
  1086. // 功能描述 : 获得自动曝光模式的曝光时间调节范围
  1087. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1088. // fMinExposureTime 最小曝光时间(微秒)
  1089. // fMaxExposureTime 最大曝光时间(微秒)
  1090. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1091. // 否则返回非0值的错误码,请参考CameraStatus.h
  1092. // 中错误码的定义。
  1093. /******************************************************/
  1094. typedef CameraSdkStatus (__stdcall *_CameraGetAeExposureRange)(
  1095. CameraHandle hCamera,
  1096. double* fMinExposureTime,
  1097. double* fMaxExposureTime
  1098. );
  1099. /******************************************************/
  1100. // 函数名 : CameraSetAeAnalogGainRange
  1101. // 功能描述 : 设定自动曝光模式的增益调节范围
  1102. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1103. // iMinAnalogGain 最小增益
  1104. // iMaxAnalogGain 最大增益
  1105. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1106. // 否则返回非0值的错误码,请参考CameraStatus.h
  1107. // 中错误码的定义。
  1108. /******************************************************/
  1109. typedef CameraSdkStatus (__stdcall *_CameraSetAeAnalogGainRange)(
  1110. CameraHandle hCamera,
  1111. int iMinAnalogGain,
  1112. int iMaxAnalogGain
  1113. );
  1114. /******************************************************/
  1115. // 函数名 : CameraGetAeAnalogGainRange
  1116. // 功能描述 : 获得自动曝光模式的增益调节范围
  1117. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1118. // iMinAnalogGain 最小增益
  1119. // iMaxAnalogGain 最大增益
  1120. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1121. // 否则返回非0值的错误码,请参考CameraStatus.h
  1122. // 中错误码的定义。
  1123. /******************************************************/
  1124. typedef CameraSdkStatus (__stdcall *_CameraGetAeAnalogGainRange)(
  1125. CameraHandle hCamera,
  1126. int* iMinAnalogGain,
  1127. int* iMaxAnalogGain
  1128. );
  1129. /******************************************************/
  1130. // 函数名 : CameraSetAeThreshold
  1131. // 功能描述 : 设置自动曝光模式的调节阈值
  1132. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1133. // iThreshold 如果 abs(目标亮度-图像亮度) < iThreshold 则停止自动调节
  1134. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1135. // 否则返回非0值的错误码,请参考CameraStatus.h
  1136. // 中错误码的定义。
  1137. /******************************************************/
  1138. typedef CameraSdkStatus (__stdcall *_CameraSetAeThreshold)(
  1139. CameraHandle hCamera,
  1140. int iThreshold
  1141. );
  1142. /******************************************************/
  1143. // 函数名 : CameraGetAeThreshold
  1144. // 功能描述 : 获取自动曝光模式的调节阈值
  1145. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1146. // iThreshold 读取到的调节阈值
  1147. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1148. // 否则返回非0值的错误码,请参考CameraStatus.h
  1149. // 中错误码的定义。
  1150. /******************************************************/
  1151. typedef CameraSdkStatus (__stdcall *_CameraGetAeThreshold)(
  1152. CameraHandle hCamera,
  1153. int* iThreshold
  1154. );
  1155. /******************************************************/
  1156. // 函数名 : CameraSetExposureTime
  1157. // 功能描述 : 设置曝光时间。单位为微秒。对于CMOS传感器,其曝光
  1158. // 的单位是按照行来计算的,因此,曝光时间并不能在微秒
  1159. // 级别连续可调。而是会按照整行来取舍。在调用
  1160. // 本函数设定曝光时间后,建议再调用CameraGetExposureTime
  1161. // 来获得实际设定的值。
  1162. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1163. // fExposureTime 曝光时间,单位微秒。
  1164. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1165. // 否则返回非0值的错误码,请参考CameraStatus.h
  1166. // 中错误码的定义。
  1167. /******************************************************/
  1168. typedef CameraSdkStatus (__stdcall *_CameraSetExposureTime)(
  1169. CameraHandle hCamera,
  1170. double fExposureTime
  1171. );
  1172. //******************************************************/
  1173. // 函数名 : CameraGetExposureLineTime
  1174. // 功能描述 : 获得一行的曝光时间。对于CMOS传感器,其曝光
  1175. // 的单位是按照行来计算的,因此,曝光时间并不能在微秒
  1176. // 级别连续可调。而是会按照整行来取舍。这个函数的
  1177. // 作用就是返回CMOS相机曝光一行对应的时间。
  1178. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1179. // double *pfLineTime 指针,返回一行的曝光时间,单位为微秒。
  1180. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1181. // 否则返回非0值的错误码,请参考CameraStatus.h
  1182. // 中错误码的定义。
  1183. /******************************************************/
  1184. typedef CameraSdkStatus (__stdcall *_CameraGetExposureLineTime)(
  1185. CameraHandle hCamera,
  1186. double* pfLineTime
  1187. );
  1188. /******************************************************/
  1189. // 函数名 : CameraGetExposureTime
  1190. // 功能描述 : 获得相机的曝光时间。请参见CameraSetExposureTime
  1191. // 的功能描述。
  1192. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1193. // pfExposureTime 指针,返回当前的曝光时间,单位微秒。
  1194. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1195. // 否则返回非0值的错误码,请参考CameraStatus.h
  1196. // 中错误码的定义。
  1197. /******************************************************/
  1198. typedef CameraSdkStatus (__stdcall *_CameraGetExposureTime)(
  1199. CameraHandle hCamera,
  1200. double* pfExposureTime
  1201. );
  1202. /******************************************************/
  1203. // 函数名 : CameraGetExposureTimeRange
  1204. // 功能描述 : 获得相机的曝光时间范围
  1205. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1206. // pfMin 指针,返回曝光时间的最小值,单位微秒。
  1207. // pfMax 指针,返回曝光时间的最大值,单位微秒。
  1208. // pfStep 指针,返回曝光时间的步进值,单位微秒。
  1209. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1210. // 否则返回非0值的错误码,请参考CameraStatus.h
  1211. // 中错误码的定义。
  1212. /******************************************************/
  1213. typedef CameraSdkStatus (__stdcall *_CameraGetExposureTimeRange)(
  1214. CameraHandle hCamera,
  1215. double* pfMin,
  1216. double* pfMax,
  1217. double* pfStep
  1218. );
  1219. /// @ingroup API_EXPOSURE
  1220. /// \~chinese
  1221. /// \brief 设置多重曝光时间。单位为微秒。(此功能仅线阵相机支持)
  1222. /// \param [in] hCamera 相机的句柄。
  1223. /// \param [in] index 曝光索引。
  1224. /// \param [in] fExposureTime 曝光时间,单位微秒。
  1225. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1226. /// \note 对于CMOS传感器,其曝光的单位是按照行来计算的,因此,曝光时间并不能在微秒级别连续可调。而是会按照整行来取舍。在调用本函数设定曝光时间后,建议再调用@link #CameraGetMultiExposureTime @endlink来获得实际设定的值。
  1227. /// \~english
  1228. /// \brief Set the multiple exposure time. The unit is microseconds. (This feature is only supported by line camera)
  1229. /// \param [in] hCamera Camera handle.
  1230. /// \param [in] index Exposure index.
  1231. /// \param [in] fExposureTime Exposure time in microseconds.
  1232. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1233. /// \note For CMOS sensors, the unit of exposure is calculated in rows, so the exposure time cannot be continuously adjusted in microseconds. Instead, the entire line will be chosen. After calling this function to set the exposure time, it is recommended to call @link #CameraGetMultiExposureTime @endlink to get the actual set value.
  1234. typedef CameraSdkStatus (__stdcall *_CameraSetMultiExposureTime)(
  1235. CameraHandle hCamera,
  1236. int index,
  1237. double fExposureTime
  1238. );
  1239. /// @ingroup API_EXPOSURE
  1240. /// \~chinese
  1241. /// \brief 获取多重曝光时间。单位为微秒。(此功能仅线阵相机支持)
  1242. /// \param [in] hCamera 相机的句柄。
  1243. /// \param [in] index 曝光索引。
  1244. /// \param [out] fExposureTime 返回曝光时间,单位微秒。
  1245. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1246. /// \~english
  1247. /// \brief Get the multiple exposure time. The unit is microseconds. (This feature is only supported by line camera)
  1248. /// \param [in] hCamera Camera handle.
  1249. /// \param [in] index Exposure index.
  1250. /// \param [out] fExposureTime Returns exposure time in microseconds.
  1251. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1252. typedef CameraSdkStatus (__stdcall *_CameraGetMultiExposureTime)(
  1253. CameraHandle hCamera,
  1254. int index,
  1255. double* fExposureTime
  1256. );
  1257. /// @ingroup API_EXPOSURE
  1258. /// \~chinese
  1259. /// \brief 设置多重曝光使能个数。(此功能仅线阵相机支持)
  1260. /// \param [in] hCamera 相机的句柄。
  1261. /// \param [in] count 使能个数。
  1262. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1263. /// \~english
  1264. /// \brief Set the number of multiple exposure enable. (This feature is only supported by line camera)
  1265. /// \param [in] hCamera Camera handle.
  1266. /// \param [in] count The number of exposures enabled.
  1267. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1268. typedef CameraSdkStatus (__stdcall *_CameraSetMultiExposureCount)(
  1269. CameraHandle hCamera,
  1270. int count
  1271. );
  1272. /// @ingroup API_EXPOSURE
  1273. /// \~chinese
  1274. /// \brief 获取多重曝光使能个数。(此功能仅线阵相机支持)
  1275. /// \param [in] hCamera 相机的句柄。
  1276. /// \param [out] count 使能个数。
  1277. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1278. /// \~english
  1279. /// \brief Get the number of multiple exposure enable. (This feature is only supported by line camera)
  1280. /// \param [in] hCamera Camera handle.
  1281. /// \param [out] count The number of exposures enabled.
  1282. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1283. typedef CameraSdkStatus (__stdcall *_CameraGetMultiExposureCount)(
  1284. CameraHandle hCamera,
  1285. int* count
  1286. );
  1287. /// @ingroup API_EXPOSURE
  1288. /// \~chinese
  1289. /// \brief 获取多重曝光的最大曝光个数。(此功能仅线阵相机支持)
  1290. /// \param [in] hCamera 相机的句柄。
  1291. /// \param [out] max_count 支持的最大曝光个数。
  1292. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1293. /// \~english
  1294. /// \brief Get the maximum number of exposures for multiple exposures. (This feature is only supported by line camera)
  1295. /// \param [in] hCamera Camera handle.
  1296. /// \param [out] max_count The maximum number of exposures supported.
  1297. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1298. typedef CameraSdkStatus (__stdcall *_CameraGetMultiExposureMaxCount)(
  1299. CameraHandle hCamera,
  1300. int* max_count
  1301. );
  1302. /******************************************************/
  1303. // 函数名 : CameraSetAnalogGain
  1304. // 功能描述 : 设置相机的图像模拟增益值。该值乘以CameraGetCapability获得
  1305. // 的相机属性结构体中sExposeDesc.fAnalogGainStep,就
  1306. // 得到实际的图像信号放大倍数。
  1307. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1308. // iAnalogGain 设定的模拟增益值。
  1309. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1310. // 否则返回非0值的错误码,请参考CameraStatus.h
  1311. // 中错误码的定义。
  1312. /******************************************************/
  1313. typedef CameraSdkStatus (__stdcall *_CameraSetAnalogGain)(
  1314. CameraHandle hCamera,
  1315. INT iAnalogGain
  1316. );
  1317. /******************************************************/
  1318. // 函数名 : CameraGetAnalogGain
  1319. // 功能描述 : 获得图像信号的模拟增益值。参见CameraSetAnalogGain
  1320. // 详细说明。
  1321. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1322. // piAnalogGain 指针,返回当前的模拟增益值。
  1323. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1324. // 否则返回非0值的错误码,请参考CameraStatus.h
  1325. // 中错误码的定义。
  1326. /******************************************************/
  1327. typedef CameraSdkStatus (__stdcall *_CameraGetAnalogGain)(
  1328. CameraHandle hCamera,
  1329. INT* piAnalogGain
  1330. );
  1331. /// @ingroup API_EXPOSURE
  1332. /// \~chinese
  1333. /// \brief 设置相机的模拟增益放大倍数。
  1334. /// \param [in] hCamera 相机的句柄。
  1335. /// \param [in] fGain 设定的模拟增益放大倍数。
  1336. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1337. /// \~english
  1338. /// \brief Set the image gain magnification of the camera.
  1339. /// \param [in] hCamera Camera handle.
  1340. /// \param [in] fGain Gain magnification.
  1341. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1342. typedef CameraSdkStatus (__stdcall *_CameraSetAnalogGainX)(
  1343. CameraHandle hCamera,
  1344. float fGain
  1345. );
  1346. /// @ingroup API_EXPOSURE
  1347. /// \~chinese
  1348. /// \brief 获得图像信号的模拟增益放大倍数。
  1349. /// \param [in] hCamera 相机的句柄。
  1350. /// \param [out] pfGain 指针,返回当前的模拟增益放大倍数。
  1351. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1352. /// \see CameraSetAnalogGainX
  1353. /// \~english
  1354. /// \brief Obtain the gain magnification of the image signal.
  1355. /// \param [in] hCamera Camera handle.
  1356. /// \param [out] pfGain pointer, returns the current gain magnification.
  1357. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1358. /// \see CameraSetAnalogGainX
  1359. typedef CameraSdkStatus (__stdcall *_CameraGetAnalogGainX)(
  1360. CameraHandle hCamera,
  1361. float* pfGain
  1362. );
  1363. /// @ingroup API_EXPOSURE
  1364. /// \~chinese
  1365. /// \brief 获得相机的模拟增益放大倍数取值范围
  1366. /// \param [in] hCamera 相机的句柄。
  1367. /// \param [out] pfMin 指针,返回最小倍数。
  1368. /// \param [out] pfMax 指针,返回最大倍数。
  1369. /// \param [out] pfStep 指针,返回步进值。
  1370. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1371. /// \~english
  1372. /// \brief Get the value range of the camera's gain magnification
  1373. /// \param [in] hCamera Camera handle.
  1374. /// \param [out] pfMin pointer, returns the minimum multiple.
  1375. /// \param [out] pfMax pointer, returns the maximum multiple.
  1376. /// \param [out] pfStep pointer, returns the step value.
  1377. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1378. typedef CameraSdkStatus (__stdcall *_CameraGetAnalogGainXRange)(
  1379. CameraHandle hCamera,
  1380. float* pfMin,
  1381. float* pfMax,
  1382. float* pfStep
  1383. );
  1384. /******************************************************/
  1385. // 函数名 : CameraSetGain
  1386. // 功能描述 : 设置图像的数字增益。设定范围由CameraGetCapability
  1387. // 获得的相机属性结构体中sRgbGainRange成员表述。
  1388. // 实际的放大倍数是设定值/100。
  1389. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1390. // iRGain 红色通道的增益值。
  1391. // iGGain 绿色通道的增益值。
  1392. // iBGain 蓝色通道的增益值。
  1393. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1394. // 否则返回非0值的错误码,请参考CameraStatus.h
  1395. // 中错误码的定义。
  1396. /******************************************************/
  1397. typedef CameraSdkStatus (__stdcall *_CameraSetGain)(
  1398. CameraHandle hCamera,
  1399. int iRGain,
  1400. int iGGain,
  1401. int iBGain
  1402. );
  1403. /******************************************************/
  1404. // 函数名 : CameraGetGain
  1405. // 功能描述 : 获得图像处理的数字增益。具体请参见CameraSetGain
  1406. // 的功能描述部分。
  1407. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1408. // piRGain 指针,返回红色通道的数字增益值。
  1409. // piGGain 指针,返回绿色通道的数字增益值。
  1410. // piBGain 指针,返回蓝色通道的数字增益值。
  1411. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1412. // 否则返回非0值的错误码,请参考CameraStatus.h
  1413. // 中错误码的定义。
  1414. /******************************************************/
  1415. typedef CameraSdkStatus (__stdcall *_CameraGetGain)(
  1416. CameraHandle hCamera,
  1417. int* piRGain,
  1418. int* piGGain,
  1419. int* piBGain
  1420. );
  1421. /******************************************************/
  1422. // 函数名 : CameraSetGamma
  1423. // 功能描述 : 设定LUT动态生成模式下的Gamma值。设定的值会
  1424. // 马上保存在SDK内部,但是只有当相机处于动态
  1425. // 参数生成的LUT模式时,才会生效。请参考CameraSetLutMode
  1426. // 的函数说明部分。
  1427. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1428. // iGamma 要设定的Gamma值。
  1429. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1430. // 否则返回非0值的错误码,请参考CameraStatus.h
  1431. // 中错误码的定义。
  1432. /******************************************************/
  1433. typedef CameraSdkStatus (__stdcall *_CameraSetGamma)(
  1434. CameraHandle hCamera,
  1435. int iGamma
  1436. );
  1437. /******************************************************/
  1438. // 函数名 : CameraGetGamma
  1439. // 功能描述 : 获得LUT动态生成模式下的Gamma值。请参考CameraSetGamma
  1440. // 函数的功能描述。
  1441. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1442. // piGamma 指针,返回当前的Gamma值。
  1443. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1444. // 否则返回非0值的错误码,请参考CameraStatus.h
  1445. // 中错误码的定义。
  1446. /******************************************************/
  1447. typedef CameraSdkStatus (__stdcall *_CameraGetGamma)(
  1448. CameraHandle hCamera,
  1449. int* piGamma
  1450. );
  1451. /******************************************************/
  1452. // 函数名 : CameraSetContrast
  1453. // 功能描述 : 设定LUT动态生成模式下的对比度值。设定的值会
  1454. // 马上保存在SDK内部,但是只有当相机处于动态
  1455. // 参数生成的LUT模式时,才会生效。请参考CameraSetLutMode
  1456. // 的函数说明部分。
  1457. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1458. // iContrast 设定的对比度值。
  1459. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1460. // 否则返回非0值的错误码,请参考CameraStatus.h
  1461. // 中错误码的定义。
  1462. /******************************************************/
  1463. typedef CameraSdkStatus (__stdcall *_CameraSetContrast)(
  1464. CameraHandle hCamera,
  1465. int iContrast
  1466. );
  1467. /******************************************************/
  1468. // 函数名 : CameraGetContrast
  1469. // 功能描述 : 获得LUT动态生成模式下的对比度值。请参考
  1470. // CameraSetContrast函数的功能描述。
  1471. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1472. // piContrast 指针,返回当前的对比度值。
  1473. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1474. // 否则返回非0值的错误码,请参考CameraStatus.h
  1475. // 中错误码的定义。
  1476. /******************************************************/
  1477. typedef CameraSdkStatus (__stdcall *_CameraGetContrast)(
  1478. CameraHandle hCamera,
  1479. int* piContrast
  1480. );
  1481. /******************************************************/
  1482. // 函数名 : CameraSetSaturation
  1483. // 功能描述 : 设定图像处理的饱和度。对黑白相机无效。
  1484. // 设定范围由CameraGetCapability获得。100表示
  1485. // 表示原始色度,不增强。
  1486. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1487. // iSaturation 设定的饱和度值。
  1488. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1489. // 否则返回非0值的错误码,请参考CameraStatus.h
  1490. // 中错误码的定义。
  1491. /******************************************************/
  1492. typedef CameraSdkStatus (__stdcall *_CameraSetSaturation)(
  1493. CameraHandle hCamera,
  1494. int iSaturation
  1495. );
  1496. /******************************************************/
  1497. // 函数名 : CameraGetSaturation
  1498. // 功能描述 : 获得图像处理的饱和度。
  1499. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1500. // piSaturation 指针,返回当前图像处理的饱和度值。
  1501. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1502. // 否则返回非0值的错误码,请参考CameraStatus.h
  1503. // 中错误码的定义。
  1504. /******************************************************/
  1505. typedef CameraSdkStatus (__stdcall *_CameraGetSaturation)(
  1506. CameraHandle hCamera,
  1507. int* piSaturation
  1508. );
  1509. /******************************************************/
  1510. // 函数名 : CameraSetMonochrome
  1511. // 功能描述 : 设置彩色转为黑白功能的使能。
  1512. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1513. // bEnable TRUE,表示将彩色图像转为黑白。
  1514. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1515. // 否则返回非0值的错误码,请参考CameraStatus.h
  1516. // 中错误码的定义。
  1517. /******************************************************/
  1518. typedef CameraSdkStatus (__stdcall *_CameraSetMonochrome)(
  1519. CameraHandle hCamera,
  1520. BOOL bEnable
  1521. );
  1522. /******************************************************/
  1523. // 函数名 : CameraGetMonochrome
  1524. // 功能描述 : 获得彩色转换黑白功能的使能状况。
  1525. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1526. // pbEnable 指针。返回TRUE表示开启了彩色图像
  1527. // 转换为黑白图像的功能。
  1528. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1529. // 否则返回非0值的错误码,请参考CameraStatus.h
  1530. // 中错误码的定义。
  1531. /******************************************************/
  1532. typedef CameraSdkStatus (__stdcall *_CameraGetMonochrome)(
  1533. CameraHandle hCamera,
  1534. BOOL* pbEnable
  1535. );
  1536. /******************************************************/
  1537. // 函数名 : CameraSetInverse
  1538. // 功能描述 : 设置彩图像颜色翻转功能的使能。
  1539. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1540. // bEnable TRUE,表示开启图像颜色翻转功能,
  1541. // 可以获得类似胶卷底片的效果。
  1542. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1543. // 否则返回非0值的错误码,请参考CameraStatus.h
  1544. // 中错误码的定义。
  1545. /******************************************************/
  1546. typedef CameraSdkStatus (__stdcall *_CameraSetInverse)(
  1547. CameraHandle hCamera,
  1548. BOOL bEnable
  1549. );
  1550. /******************************************************/
  1551. // 函数名 : CameraGetInverse
  1552. // 功能描述 : 获得图像颜色反转功能的使能状态。
  1553. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1554. // pbEnable 指针,返回该功能使能状态。
  1555. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1556. // 否则返回非0值的错误码,请参考CameraStatus.h
  1557. // 中错误码的定义。
  1558. /******************************************************/
  1559. typedef CameraSdkStatus (__stdcall *_CameraGetInverse)(
  1560. CameraHandle hCamera,
  1561. BOOL* pbEnable
  1562. );
  1563. /******************************************************/
  1564. // 函数名 : CameraSetAntiFlick
  1565. // 功能描述 : 设置自动曝光时抗频闪功能的使能状态。对于手动
  1566. // 曝光模式下无效。
  1567. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1568. // bEnable TRUE,开启抗频闪功能;FALSE,关闭该功能。
  1569. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1570. // 否则返回非0值的错误码,请参考CameraStatus.h
  1571. // 中错误码的定义。
  1572. /******************************************************/
  1573. typedef CameraSdkStatus (__stdcall *_CameraSetAntiFlick)(
  1574. CameraHandle hCamera,
  1575. BOOL bEnable
  1576. );
  1577. /******************************************************/
  1578. // 函数名 : CameraGetAntiFlick
  1579. // 功能描述 : 获得自动曝光时抗频闪功能的使能状态。
  1580. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1581. // pbEnable 指针,返回该功能的使能状态。
  1582. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1583. // 否则返回非0值的错误码,请参考CameraStatus.h
  1584. // 中错误码的定义。
  1585. /******************************************************/
  1586. typedef CameraSdkStatus (__stdcall *_CameraGetAntiFlick)(
  1587. CameraHandle hCamera,
  1588. BOOL* pbEnable
  1589. );
  1590. /******************************************************/
  1591. // 函数名 : CameraGetLightFrequency
  1592. // 功能描述 : 获得自动曝光时,消频闪的频率选择。
  1593. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1594. // piFrequencySel 指针,返回选择的索引号。0:50HZ 1:60HZ
  1595. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1596. // 否则返回非0值的错误码,请参考CameraStatus.h
  1597. // 中错误码的定义。
  1598. /******************************************************/
  1599. typedef CameraSdkStatus (__stdcall *_CameraGetLightFrequency)(
  1600. CameraHandle hCamera,
  1601. int* piFrequencySel
  1602. );
  1603. /******************************************************/
  1604. // 函数名 : CameraSetLightFrequency
  1605. // 功能描述 : 设置自动曝光时消频闪的频率。
  1606. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1607. // iFrequencySel 0:50HZ , 1:60HZ
  1608. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1609. // 否则返回非0值的错误码,请参考CameraStatus.h
  1610. // 中错误码的定义。
  1611. /******************************************************/
  1612. typedef CameraSdkStatus (__stdcall *_CameraSetLightFrequency)(
  1613. CameraHandle hCamera,
  1614. int iFrequencySel
  1615. );
  1616. /******************************************************/
  1617. // 函数名 : CameraSetFrameSpeed
  1618. // 功能描述 : 设定相机输出图像的帧率。相机可供选择的帧率模式由
  1619. // CameraGetCapability获得的信息结构体中iFrameSpeedDesc
  1620. // 表示最大帧率选择模式个数。
  1621. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1622. // iFrameSpeed 选择的帧率模式索引号,范围从0到
  1623. // CameraGetCapability获得的信息结构体中iFrameSpeedDesc - 1
  1624. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1625. // 否则返回非0值的错误码,请参考CameraStatus.h
  1626. // 中错误码的定义。
  1627. /******************************************************/
  1628. typedef CameraSdkStatus (__stdcall *_CameraSetFrameSpeed)(
  1629. CameraHandle hCamera,
  1630. int iFrameSpeed
  1631. );
  1632. /******************************************************/
  1633. // 函数名 : CameraGetFrameSpeed
  1634. // 功能描述 : 获得相机输出图像的帧率选择索引号。具体用法参考
  1635. // CameraSetFrameSpeed函数的功能描述部分。
  1636. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1637. // piFrameSpeed 指针,返回选择的帧率模式索引号。
  1638. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1639. // 否则返回非0值的错误码,请参考CameraStatus.h
  1640. // 中错误码的定义。
  1641. /******************************************************/
  1642. typedef CameraSdkStatus (__stdcall *_CameraGetFrameSpeed)(
  1643. CameraHandle hCamera,
  1644. int* piFrameSpeed
  1645. );
  1646. /// @ingroup API_ADVANCE
  1647. /// \~chinese
  1648. /// \brief 设定相机的帧频(面阵)或行频(线阵)。(仅部分网口相机支持)
  1649. /// \param [in] hCamera 相机的句柄。
  1650. /// \param [in] uRateHZ 帧频或行频(<=0表示最大频率)。
  1651. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1652. /// \~english
  1653. /// \brief Set the frame frequency (area) or line frequency (line scan). (only supported by some gige camera)
  1654. /// \param [in] hCamera Camera handle.
  1655. /// \param [in] uRateHZ frame rate or line rate (<=0 means maximum frequency).
  1656. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1657. typedef CameraSdkStatus (__stdcall *_CameraSetFrameRate)(
  1658. CameraHandle hCamera,
  1659. int RateHZ
  1660. );
  1661. /// @ingroup API_ADVANCE
  1662. /// \~chinese
  1663. /// \brief 获取设定的相机帧频(面阵)或行频(线阵)
  1664. /// \param [in] hCamera 相机的句柄。
  1665. /// \param [out] uRateHZ 帧频或行频(<=0表示最大频率)。
  1666. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1667. /// \~english
  1668. /// \brief Get the frame frequency (area) or line frequency (line scan).
  1669. /// \param [in] hCamera Camera handle.
  1670. /// \param [out] uRateHZ frame rate or line rate (<=0 means maximum frequency).
  1671. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1672. typedef CameraSdkStatus (__stdcall *_CameraGetFrameRate)(
  1673. CameraHandle hCamera,
  1674. int* RateHZ
  1675. );
  1676. /******************************************************/
  1677. // 函数名 : CameraSetParameterMode
  1678. // 功能描述 : 设定参数存取的目标对象。
  1679. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1680. // iMode 参数存取的对象。参考CameraDefine.h
  1681. // 中emSdkParameterMode的类型定义。
  1682. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1683. // 否则返回非0值的错误码,请参考CameraStatus.h
  1684. // 中错误码的定义。
  1685. /******************************************************/
  1686. typedef CameraSdkStatus (__stdcall *_CameraSetParameterMode)(
  1687. CameraHandle hCamera,
  1688. int iTarget
  1689. );
  1690. /******************************************************/
  1691. // 函数名 : CameraGetParameterMode
  1692. // 功能描述 :
  1693. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1694. // int* piTarget
  1695. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1696. // 否则返回非0值的错误码,请参考CameraStatus.h
  1697. // 中错误码的定义。
  1698. /******************************************************/
  1699. typedef CameraSdkStatus (__stdcall *_CameraGetParameterMode)(
  1700. CameraHandle hCamera,
  1701. int* piTarget
  1702. );
  1703. /******************************************************/
  1704. // 函数名 : CameraSetParameterMask
  1705. // 功能描述 : 设置参数存取的掩码。参数加载和保存时会根据该
  1706. // 掩码来决定各个模块参数的是否加载或者保存。
  1707. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1708. // uMask 掩码。参考CameraDefine.h中PROP_SHEET_INDEX
  1709. // 类型定义。
  1710. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1711. // 否则返回非0值的错误码,请参考CameraStatus.h
  1712. // 中错误码的定义。
  1713. /******************************************************/
  1714. typedef CameraSdkStatus (__stdcall *_CameraSetParameterMask)(
  1715. CameraHandle hCamera,
  1716. UINT uMask
  1717. );
  1718. /******************************************************/
  1719. // 函数名 : CameraSaveParameter
  1720. // 功能描述 : 保存当前相机参数到指定的参数组中。相机提供了A,B,C,D
  1721. // A,B,C,D四组空间来进行参数的保存。
  1722. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1723. // iTeam PARAMETER_TEAM_A 保存到A组中,
  1724. // PARAMETER_TEAM_B 保存到B组中,
  1725. // PARAMETER_TEAM_C 保存到C组中,
  1726. // PARAMETER_TEAM_D 保存到D组中
  1727. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1728. // 否则返回非0值的错误码,请参考CameraStatus.h
  1729. // 中错误码的定义。
  1730. /******************************************************/
  1731. typedef CameraSdkStatus (__stdcall *_CameraSaveParameter)(
  1732. CameraHandle hCamera,
  1733. int iTeam
  1734. );
  1735. /******************************************************/
  1736. // 函数名 : CameraReadParameterFromFile
  1737. // 功能描述 : 从PC上指定的参数文件中加载参数。我公司相机参数
  1738. // 保存在PC上为.config后缀的文件,位于安装下的
  1739. // Camera\Configs文件夹中。
  1740. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1741. // *sFileName 参数文件的完整路径。
  1742. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1743. // 否则返回非0值的错误码,请参考CameraStatus.h
  1744. // 中错误码的定义。
  1745. /******************************************************/
  1746. typedef CameraSdkStatus (__stdcall *_CameraReadParameterFromFile)(
  1747. CameraHandle hCamera,
  1748. char* sFileName
  1749. );
  1750. /******************************************************/
  1751. // 函数名 : CameraLoadParameter
  1752. // 功能描述 : 加载指定组的参数到相机中。
  1753. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1754. // iTeam PARAMETER_TEAM_A 加载A组参数,
  1755. // PARAMETER_TEAM_B 加载B组参数,
  1756. // PARAMETER_TEAM_C 加载C组参数,
  1757. // PARAMETER_TEAM_D 加载D组参数,
  1758. // PARAMETER_TEAM_DEFAULT 加载默认参数。
  1759. // 类型定义参考CameraDefine.h中emSdkParameterTeam类型
  1760. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1761. // 否则返回非0值的错误码,请参考CameraStatus.h
  1762. // 中错误码的定义。
  1763. /******************************************************/
  1764. typedef CameraSdkStatus (__stdcall *_CameraLoadParameter)(
  1765. CameraHandle hCamera,
  1766. int iTeam
  1767. );
  1768. /******************************************************/
  1769. // 函数名 : CameraGetCurrentParameterGroup
  1770. // 功能描述 : 获得当前选择的参数组。
  1771. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1772. // piTeam 指针,返回当前选择的参数组。返回值
  1773. // 参考CameraLoadParameter中iTeam参数。
  1774. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1775. // 否则返回非0值的错误码,请参考CameraStatus.h
  1776. // 中错误码的定义。
  1777. /******************************************************/
  1778. typedef CameraSdkStatus (__stdcall *_CameraGetCurrentParameterGroup)(
  1779. CameraHandle hCamera,
  1780. int* piTeam
  1781. );
  1782. /******************************************************/
  1783. // 函数名 : CameraSetTransPackLen
  1784. // 功能描述 : 设置相机传输图像数据的分包大小。
  1785. // 目前的SDK版本中,该接口仅对GIGE接口相机有效,
  1786. // 用来控制网络传输的分包大小。对于支持巨帧的网卡,
  1787. // 我们建议选择8K的分包大小,可以有效的降低传输
  1788. // 所占用的CPU处理时间。
  1789. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1790. // iPackSel 分包长度选择的索引号。分包长度可由
  1791. // 获得相机属性结构体中pPackLenDesc成员表述,
  1792. // iPackLenDesc成员则表示最大可选的分包模式个数。
  1793. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1794. // 否则返回非0值的错误码,请参考CameraStatus.h
  1795. // 中错误码的定义。
  1796. /******************************************************/
  1797. typedef CameraSdkStatus (__stdcall *_CameraSetTransPackLen)(
  1798. CameraHandle hCamera,
  1799. INT iPackSel
  1800. );
  1801. /******************************************************/
  1802. // 函数名 : CameraGetTransPackLen
  1803. // 功能描述 : 获得相机当前传输分包大小的选择索引号。
  1804. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1805. // piPackSel 指针,返回当前选择的分包大小索引号。
  1806. // 参见CameraSetTransPackLen中iPackSel的
  1807. // 说明。
  1808. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1809. // 否则返回非0值的错误码,请参考CameraStatus.h
  1810. // 中错误码的定义。
  1811. /******************************************************/
  1812. typedef CameraSdkStatus (__stdcall *_CameraGetTransPackLen)(
  1813. CameraHandle hCamera,
  1814. INT* piPackSel
  1815. );
  1816. /******************************************************/
  1817. // 函数名 : CameraIsAeWinVisible
  1818. // 功能描述 : 获得自动曝光参考窗口的显示状态。
  1819. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1820. // pbIsVisible 指针,返回TRUE,则表示当前窗口会
  1821. // 被叠加在图像内容上。
  1822. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1823. // 否则返回非0值的错误码,请参考CameraStatus.h
  1824. // 中错误码的定义。
  1825. /******************************************************/
  1826. typedef CameraSdkStatus (__stdcall *_CameraIsAeWinVisible)(
  1827. CameraHandle hCamera,
  1828. BOOL* pbIsVisible
  1829. );
  1830. /******************************************************/
  1831. // 函数名 : CameraSetAeWinVisible
  1832. // 功能描述 : 设置自动曝光参考窗口的显示状态。当设置窗口状态
  1833. // 为显示,调用CameraImageOverlay后,能够将窗口位置
  1834. // 以矩形的方式叠加在图像上。
  1835. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1836. // bIsVisible TRUE,设置为显示;FALSE,不显示。
  1837. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1838. // 否则返回非0值的错误码,请参考CameraStatus.h
  1839. // 中错误码的定义。
  1840. /******************************************************/
  1841. typedef CameraSdkStatus (__stdcall *_CameraSetAeWinVisible)(
  1842. CameraHandle hCamera,
  1843. BOOL bIsVisible
  1844. );
  1845. /******************************************************/
  1846. // 函数名 : CameraGetAeWindow
  1847. // 功能描述 : 获得自动曝光参考窗口的位置。
  1848. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1849. // piHOff 指针,返回窗口位置左上角横坐标值。
  1850. // piVOff 指针,返回窗口位置左上角纵坐标值。
  1851. // piWidth 指针,返回窗口的宽度。
  1852. // piHeight 指针,返回窗口的高度。
  1853. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1854. // 否则返回非0值的错误码,请参考CameraStatus.h
  1855. // 中错误码的定义。
  1856. /******************************************************/
  1857. typedef CameraSdkStatus (__stdcall *_CameraGetAeWindow)(
  1858. CameraHandle hCamera,
  1859. INT* piHOff,
  1860. INT* piVOff,
  1861. INT* piWidth,
  1862. INT* piHeight
  1863. );
  1864. /******************************************************/
  1865. // 函数名 : CameraSetAeWindow
  1866. // 功能描述 : 设置自动曝光的参考窗口。
  1867. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1868. // iHOff 窗口左上角的横坐标
  1869. // iVOff 窗口左上角的纵坐标
  1870. // iWidth 窗口的宽度
  1871. // iHeight 窗口的高度
  1872. // 如果iHOff、iVOff、iWidth、iHeight全部为0,则
  1873. // 窗口设置为每个分辨率下的居中1/2大小。可以随着
  1874. // 分辨率的变化而跟随变化;如果iHOff、iVOff、iWidth、iHeight
  1875. // 所决定的窗口位置范围超出了当前分辨率范围内,
  1876. // 则自动使用居中1/2大小窗口。
  1877. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1878. // 否则返回非0值的错误码,请参考CameraStatus.h
  1879. // 中错误码的定义。
  1880. /******************************************************/
  1881. typedef CameraSdkStatus (__stdcall *_CameraSetAeWindow)(
  1882. CameraHandle hCamera,
  1883. int iHOff,
  1884. int iVOff,
  1885. int iWidth,
  1886. int iHeight
  1887. );
  1888. /******************************************************/
  1889. // 函数名 : CameraSetMirror
  1890. // 功能描述 : 设置图像镜像操作。镜像操作分为水平和垂直两个方向。
  1891. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1892. // iDir 表示镜像的方向。0,表示水平方向;1,表示垂直方向。
  1893. // bEnable TRUE,使能镜像;FALSE,禁止镜像
  1894. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1895. // 否则返回非0值的错误码,请参考CameraStatus.h
  1896. // 中错误码的定义。
  1897. /******************************************************/
  1898. typedef CameraSdkStatus (__stdcall *_CameraSetMirror)(
  1899. CameraHandle hCamera,
  1900. int iDir,
  1901. BOOL bEnable
  1902. );
  1903. /******************************************************/
  1904. // 函数名 : CameraGetMirror
  1905. // 功能描述 : 获得图像的镜像状态。
  1906. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1907. // iDir 表示要获得的镜像方向。
  1908. // 0,表示水平方向;1,表示垂直方向。
  1909. // pbEnable 指针,返回TRUE,则表示iDir所指的方向
  1910. // 镜像被使能。
  1911. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1912. // 否则返回非0值的错误码,请参考CameraStatus.h
  1913. // 中错误码的定义。
  1914. /******************************************************/
  1915. typedef CameraSdkStatus (__stdcall *_CameraGetMirror)(
  1916. CameraHandle hCamera,
  1917. int iDir,
  1918. BOOL* pbEnable
  1919. );
  1920. /// @ingroup API_MIRROR
  1921. /// \~chinese
  1922. /// \brief 设置硬件镜像。分为水平和垂直两个方向。(仅部分网口、U3相机支持此功能)
  1923. /// \param [in] hCamera 相机的句柄。
  1924. /// \param [in] iDir 表示镜像的方向。0,表示水平方向;1,表示垂直方向。
  1925. /// \param [in] bEnable TRUE,使能镜像;FALSE,禁止镜像
  1926. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1927. /// \~english
  1928. /// \brief Set up the hardware mirror. Divided into two directions, horizontal and vertical. (Only some GigE and U3 cameras support this feature)
  1929. /// \param [in] hCamera Camera handle.
  1930. /// \param [in] iDir Indicates the direction of the mirror. 0 means horizontal direction; 1 means vertical direction.
  1931. /// \param [in] bEnable TRUE to enable mirroring; FALSE to disable mirroring
  1932. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1933. typedef CameraSdkStatus (__stdcall *_CameraSetHardwareMirror)(
  1934. CameraHandle hCamera,
  1935. int iDir,
  1936. BOOL bEnable
  1937. );
  1938. /// @ingroup API_MIRROR
  1939. /// \~chinese
  1940. /// \brief 获取设置的硬件镜像状态。
  1941. /// \param [in] hCamera 相机的句柄。
  1942. /// \param [in] iDir 表示要获得的镜像方向。0,表示水平方向;1,表示垂直方向。
  1943. /// \param [out] pbEnable 指针,返回TRUE,则表示iDir所指的方向镜像被使能。
  1944. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  1945. /// \~english
  1946. /// \brief Get the hardware mirrored state of the image.
  1947. /// \param [in] hCamera Camera handle.
  1948. /// \param [in] iDir Indicates the mirroring direction to be obtained. 0 means horizontal direction; 1 means vertical direction.
  1949. /// \param [out] pbEnable Returns TRUE, indicating that the direction mirror image of iDir is enabled.
  1950. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  1951. typedef CameraSdkStatus (__stdcall *_CameraGetHardwareMirror)(
  1952. CameraHandle hCamera,
  1953. int iDir,
  1954. BOOL* pbEnable
  1955. );
  1956. /******************************************************/
  1957. // 函数名 : CameraSetRotate
  1958. // 功能描述 : 设置图像旋转操作
  1959. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1960. // iRot 表示旋转的角度(逆时针方向)(0:不旋转 1:90度 2:180度 3:270度)
  1961. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1962. // 否则返回非0值的错误码,请参考CameraStatus.h
  1963. // 中错误码的定义。
  1964. /******************************************************/
  1965. typedef CameraSdkStatus (__stdcall *_CameraSetRotate)(
  1966. CameraHandle hCamera,
  1967. int iRot
  1968. );
  1969. /******************************************************/
  1970. // 函数名 : CameraGetRotate
  1971. // 功能描述 : 获得图像的旋转状态。
  1972. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1973. // iRot 表示要获得的旋转方向。
  1974. // (逆时针方向)(0:不旋转 1:90度 2:180度 3:270度)
  1975. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1976. // 否则返回非0值的错误码,请参考CameraStatus.h
  1977. // 中错误码的定义。
  1978. /******************************************************/
  1979. typedef CameraSdkStatus (__stdcall *_CameraGetRotate)(
  1980. CameraHandle hCamera,
  1981. int* iRot
  1982. );
  1983. /******************************************************/
  1984. // 函数名 : CameraGetWbWindow
  1985. // 功能描述 : 获得白平衡参考窗口的位置。
  1986. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  1987. // PiHOff 指针,返回参考窗口的左上角横坐标 。
  1988. // PiVOff 指针,返回参考窗口的左上角纵坐标 。
  1989. // PiWidth 指针,返回参考窗口的宽度。
  1990. // PiHeight 指针,返回参考窗口的高度。
  1991. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  1992. // 否则返回非0值的错误码,请参考CameraStatus.h
  1993. // 中错误码的定义。
  1994. /******************************************************/
  1995. typedef CameraSdkStatus (__stdcall *_CameraGetWbWindow)(
  1996. CameraHandle hCamera,
  1997. INT* PiHOff,
  1998. INT* PiVOff,
  1999. INT* PiWidth,
  2000. INT* PiHeight
  2001. );
  2002. /******************************************************/
  2003. // 函数名 : CameraSetWbWindow
  2004. // 功能描述 : 设置白平衡参考窗口的位置。
  2005. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2006. // iHOff 参考窗口的左上角横坐标。
  2007. // iVOff 参考窗口的左上角纵坐标。
  2008. // iWidth 参考窗口的宽度。
  2009. // iHeight 参考窗口的高度。
  2010. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2011. // 否则返回非0值的错误码,请参考CameraStatus.h
  2012. // 中错误码的定义。
  2013. /******************************************************/
  2014. typedef CameraSdkStatus (__stdcall *_CameraSetWbWindow)(
  2015. CameraHandle hCamera,
  2016. INT iHOff,
  2017. INT iVOff,
  2018. INT iWidth,
  2019. INT iHeight
  2020. );
  2021. /******************************************************/
  2022. // 函数名 : CameraIsWbWinVisible
  2023. // 功能描述 : 获得白平衡窗口的显示状态。
  2024. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2025. // pbShow 指针,返回TRUE,则表示窗口是可见的。
  2026. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2027. // 否则返回非0值的错误码,请参考CameraStatus.h
  2028. // 中错误码的定义。
  2029. /******************************************************/
  2030. typedef CameraSdkStatus (__stdcall *_CameraIsWbWinVisible)(
  2031. CameraHandle hCamera,
  2032. BOOL* pbShow
  2033. );
  2034. /******************************************************/
  2035. // 函数名 : CameraSetWbWinVisible
  2036. // 功能描述 : 设置白平衡窗口的显示状态。
  2037. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2038. // bShow TRUE,则表示设置为可见。在调用
  2039. // CameraImageOverlay后,图像内容上将以矩形
  2040. // 的方式叠加白平衡参考窗口的位置。
  2041. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2042. // 否则返回非0值的错误码,请参考CameraStatus.h
  2043. // 中错误码的定义。
  2044. /******************************************************/
  2045. typedef CameraSdkStatus (__stdcall *_CameraSetWbWinVisible)(
  2046. CameraHandle hCamera,
  2047. BOOL bShow
  2048. );
  2049. /******************************************************/
  2050. // 函数名 : CameraImageOverlay
  2051. // 功能描述 : 将输入的图像数据上叠加十字线、白平衡参考窗口、
  2052. // 自动曝光参考窗口等图形。只有设置为可见状态的
  2053. // 十字线和参考窗口才能被叠加上。
  2054. // 注意,该函数的输入图像必须是RGB格式。
  2055. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2056. // pRgbBuffer 图像数据缓冲区。
  2057. // pFrInfo 图像的帧头信息。
  2058. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2059. // 否则返回非0值的错误码,请参考CameraStatus.h
  2060. // 中错误码的定义。
  2061. /******************************************************/
  2062. typedef CameraSdkStatus (__stdcall *_CameraImageOverlay)(
  2063. CameraHandle hCamera,
  2064. BYTE* pRgbBuffer,
  2065. tSdkFrameHead* pFrInfo
  2066. );
  2067. /******************************************************/
  2068. // 函数名 : CameraSetCrossLine
  2069. // 功能描述 : 设置指定十字线的参数。
  2070. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2071. // iLine 表示要设置第几条十字线的状态。范围为[0,8],共9条。
  2072. // x 十字线中心位置的横坐标值。
  2073. // y 十字线中心位置的纵坐标值。
  2074. // uColor 十字线的颜色,格式为(R|(G<<8)|(B<<16))
  2075. // bVisible 十字线的显示状态。TRUE,表示显示。
  2076. // 只有设置为显示状态的十字线,在调用
  2077. // CameraImageOverlay后才会被叠加到图像上。
  2078. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2079. // 否则返回非0值的错误码,请参考CameraStatus.h
  2080. // 中错误码的定义。
  2081. /******************************************************/
  2082. typedef CameraSdkStatus (__stdcall *_CameraSetCrossLine)(
  2083. CameraHandle hCamera,
  2084. int iLine,
  2085. INT x,
  2086. INT y,
  2087. UINT uColor,
  2088. BOOL bVisible
  2089. );
  2090. /******************************************************/
  2091. // 函数名 : CameraGetCrossLine
  2092. // 功能描述 : 获得指定十字线的状态。
  2093. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2094. // iLine 表示要获取的第几条十字线的状态。范围为[0,8],共9条。
  2095. // px 指针,返回该十字线中心位置的横坐标。
  2096. // py 指针,返回该十字线中心位置的横坐标。
  2097. // pcolor 指针,返回该十字线的颜色,格式为(R|(G<<8)|(B<<16))。
  2098. // pbVisible 指针,返回TRUE,则表示该十字线可见。
  2099. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2100. // 否则返回非0值的错误码,请参考CameraStatus.h
  2101. // 中错误码的定义。
  2102. /******************************************************/
  2103. typedef CameraSdkStatus (__stdcall *_CameraGetCrossLine)(
  2104. CameraHandle hCamera,
  2105. INT iLine,
  2106. INT* px,
  2107. INT* py,
  2108. UINT* pcolor,
  2109. BOOL* pbVisible
  2110. );
  2111. /******************************************************/
  2112. // 函数名 : CameraGetCapability
  2113. // 功能描述 : 获得相机的特性描述结构体。该结构体中包含了相机
  2114. // 可设置的各种参数的范围信息。决定了相关函数的参数
  2115. // 返回,也可用于动态创建相机的配置界面。
  2116. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2117. // pCameraInfo 指针,返回该相机特性描述的结构体。
  2118. // tSdkCameraCapbility在CameraDefine.h中定义。
  2119. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2120. // 否则返回非0值的错误码,请参考CameraStatus.h
  2121. // 中错误码的定义。
  2122. /******************************************************/
  2123. typedef CameraSdkStatus (__stdcall *_CameraGetCapability)(
  2124. CameraHandle hCamera,
  2125. tSdkCameraCapbility* pCameraInfo
  2126. );
  2127. /******************************************************/
  2128. // 函数名 : CameraWriteSN
  2129. // 功能描述 : 设置相机的序列号。我公司相机序列号分为3级。
  2130. // 0级的是我公司自定义的相机序列号,出厂时已经
  2131. // 设定好,1级和2级留给二次开发使用。每级序列
  2132. // 号长度都是32个字节。
  2133. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2134. // pbySN 序列号的缓冲区。
  2135. // iLevel 要设定的序列号级别,只能是1或者2。
  2136. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2137. // 否则返回非0值的错误码,请参考CameraStatus.h
  2138. // 中错误码的定义。
  2139. /******************************************************/
  2140. typedef CameraSdkStatus (__stdcall *_CameraWriteSN)(
  2141. CameraHandle hCamera,
  2142. BYTE* pbySN,
  2143. INT iLevel
  2144. );
  2145. /******************************************************/
  2146. // 函数名 : CameraReadSN
  2147. // 功能描述 : 读取相机指定级别的序列号。序列号的定义请参考
  2148. // CameraWriteSN函数的功能描述部分。
  2149. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2150. // pbySN 序列号的缓冲区。
  2151. // iLevel 要读取的序列号级别。只能是1和2。
  2152. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2153. // 否则返回非0值的错误码,请参考CameraStatus.h
  2154. // 中错误码的定义。
  2155. /******************************************************/
  2156. typedef CameraSdkStatus (__stdcall *_CameraReadSN)(
  2157. CameraHandle hCamera,
  2158. BYTE* pbySN,
  2159. INT iLevel
  2160. );
  2161. /******************************************************/
  2162. // 函数名 : CameraSetTriggerDelayTime
  2163. // 功能描述 : 设置硬件触发模式下的触发延时时间,单位微秒。
  2164. // 当硬触发信号来临后,经过指定的延时,再开始采集
  2165. // 图像。仅部分型号的相机支持该功能。具体请查看
  2166. // 产品说明书。
  2167. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2168. // uDelayTimeUs 硬触发延时。单位微秒。
  2169. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2170. // 否则返回非0值的错误码,请参考CameraStatus.h
  2171. // 中错误码的定义。
  2172. /******************************************************/
  2173. typedef CameraSdkStatus (__stdcall *_CameraSetTriggerDelayTime)(
  2174. CameraHandle hCamera,
  2175. UINT uDelayTimeUs
  2176. );
  2177. /******************************************************/
  2178. // 函数名 : CameraGetTriggerDelayTime
  2179. // 功能描述 : 获得当前设定的硬触发延时时间。
  2180. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2181. // puDelayTimeUs 指针,返回延时时间,单位微秒。
  2182. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2183. // 否则返回非0值的错误码,请参考CameraStatus.h
  2184. // 中错误码的定义。
  2185. /******************************************************/
  2186. typedef CameraSdkStatus (__stdcall *_CameraGetTriggerDelayTime)(
  2187. CameraHandle hCamera,
  2188. UINT* puDelayTimeUs
  2189. );
  2190. /******************************************************/
  2191. // 函数名 : CameraSetTriggerCount
  2192. // 功能描述 : 设置触发模式下的触发帧数。对软件触发和硬件触发
  2193. // 模式都有效。默认为1帧,即一次触发信号采集一帧图像。
  2194. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2195. // iCount 一次触发采集的帧数。
  2196. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2197. // 否则返回非0值的错误码,请参考CameraStatus.h
  2198. // 中错误码的定义。
  2199. /******************************************************/
  2200. typedef CameraSdkStatus (__stdcall *_CameraSetTriggerCount)(
  2201. CameraHandle hCamera,
  2202. INT iCount
  2203. );
  2204. /******************************************************/
  2205. // 函数名 : CameraGetTriggerCount
  2206. // 功能描述 : 获得一次触发的帧数。
  2207. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2208. // INT* piCount
  2209. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2210. // 否则返回非0值的错误码,请参考CameraStatus.h
  2211. // 中错误码的定义。
  2212. /******************************************************/
  2213. typedef CameraSdkStatus (__stdcall *_CameraGetTriggerCount)(
  2214. CameraHandle hCamera,
  2215. INT* piCount
  2216. );
  2217. /******************************************************/
  2218. // 函数名 : CameraSoftTrigger
  2219. // 功能描述 : 执行一次软触发。执行后,会触发由CameraSetTriggerCount
  2220. // 指定的帧数。
  2221. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2222. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2223. // 否则返回非0值的错误码,请参考CameraStatus.h
  2224. // 中错误码的定义。
  2225. /******************************************************/
  2226. typedef CameraSdkStatus (__stdcall *_CameraSoftTrigger)(
  2227. CameraHandle hCamera
  2228. );
  2229. /******************************************************/
  2230. // 函数名 : CameraSetTriggerMode
  2231. // 功能描述 : 设置相机的触发模式。
  2232. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2233. // iModeSel 模式选择索引号。可设定的模式由
  2234. // CameraGetCapability函数获取。请参考
  2235. // CameraDefine.h中tSdkCameraCapbility的定义。
  2236. // 一般情况,0表示连续采集模式;1表示
  2237. // 软件触发模式;2表示硬件触发模式。
  2238. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2239. // 否则返回非0值的错误码,请参考CameraStatus.h
  2240. // 中错误码的定义。
  2241. /******************************************************/
  2242. typedef CameraSdkStatus (__stdcall *_CameraSetTriggerMode)(
  2243. CameraHandle hCamera,
  2244. int iModeSel
  2245. );
  2246. /******************************************************/
  2247. // 函数名 : CameraGetTriggerMode
  2248. // 功能描述 : 获得相机的触发模式。
  2249. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2250. // piModeSel 指针,返回当前选择的相机触发模式的索引号。
  2251. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2252. // 否则返回非0值的错误码,请参考CameraStatus.h
  2253. // 中错误码的定义。
  2254. /******************************************************/
  2255. typedef CameraSdkStatus (__stdcall *_CameraGetTriggerMode)(
  2256. CameraHandle hCamera,
  2257. INT* piModeSel
  2258. );
  2259. /******************************************************/
  2260. // 函数名 : CameraSetStrobeMode
  2261. // 功能描述 : 设置IO引脚端子上的STROBE信号。该信号可以做闪光灯控制,也可以做外部机械快门控制。
  2262. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2263. // iMode 当为STROBE_SYNC_WITH_TRIG_AUTO 和触发信号同步,触发后,相机进行曝光时,自动生成STROBE信号。
  2264. // 此时,有效极性可设置(CameraSetStrobePolarity)。
  2265. // 当为STROBE_SYNC_WITH_TRIG_MANUAL时,和触发信号同步,触发后,STROBE延时指定的时间后(CameraSetStrobeDelayTime),
  2266. // 再持续指定时间的脉冲(CameraSetStrobePulseWidth),
  2267. // 有效极性可设置(CameraSetStrobePolarity)。
  2268. // 当为STROBE_ALWAYS_HIGH时,STROBE信号恒为高,忽略其他设置
  2269. // 当为STROBE_ALWAYS_LOW时,STROBE信号恒为低,忽略其他设置
  2270. //
  2271. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2272. // 否则返回非0值的错误码,请参考CameraStatus.h
  2273. // 中错误码的定义。
  2274. /******************************************************/
  2275. typedef CameraSdkStatus (__stdcall *_CameraSetStrobeMode)(
  2276. CameraHandle hCamera,
  2277. INT iMode
  2278. );
  2279. /******************************************************/
  2280. // 函数名 : CameraGetStrobeMode
  2281. // 功能描述 : 或者当前STROBE信号设置的模式。
  2282. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2283. // piMode 指针,返回STROBE_SYNC_WITH_TRIG_AUTO,STROBE_SYNC_WITH_TRIG_MANUAL、STROBE_ALWAYS_HIGH或者STROBE_ALWAYS_LOW。
  2284. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2285. // 否则返回非0值的错误码,请参考CameraStatus.h
  2286. // 中错误码的定义。
  2287. /******************************************************/
  2288. typedef CameraSdkStatus (__stdcall *_CameraGetStrobeMode)(
  2289. CameraHandle hCamera,
  2290. INT* piMode
  2291. );
  2292. /******************************************************/
  2293. // 函数名 : CameraSetStrobeDelayTime
  2294. // 功能描述 : 当STROBE信号处于STROBE_SYNC_WITH_TRIG时,通过该函数设置其相对触发信号延时时间。
  2295. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2296. // uDelayTimeUs 相对触发信号的延时时间,单位为us。可以为0,但不能为负数。
  2297. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2298. // 否则返回非0值的错误码,请参考CameraStatus.h
  2299. // 中错误码的定义。
  2300. /******************************************************/
  2301. typedef CameraSdkStatus (__stdcall *_CameraSetStrobeDelayTime)(
  2302. CameraHandle hCamera,
  2303. UINT uDelayTimeUs
  2304. );
  2305. /******************************************************/
  2306. // 函数名 : CameraGetStrobeDelayTime
  2307. // 功能描述 : 当STROBE信号处于STROBE_SYNC_WITH_TRIG时,通过该函数获得其相对触发信号延时时间。
  2308. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2309. // upDelayTimeUs 指针,返回延时时间,单位us。
  2310. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2311. // 否则返回非0值的错误码,请参考CameraStatus.h
  2312. // 中错误码的定义。
  2313. /******************************************************/
  2314. typedef CameraSdkStatus (__stdcall *_CameraGetStrobeDelayTime)(
  2315. CameraHandle hCamera,
  2316. UINT* upDelayTimeUs
  2317. );
  2318. /******************************************************/
  2319. // 函数名 : CameraSetStrobePulseWidth
  2320. // 功能描述 : 当STROBE信号处于STROBE_SYNC_WITH_TRIG时,通过该函数设置其脉冲宽度。
  2321. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2322. // uTimeUs 脉冲的宽度,单位为时间us。
  2323. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2324. // 否则返回非0值的错误码,请参考CameraStatus.h
  2325. // 中错误码的定义。
  2326. /******************************************************/
  2327. typedef CameraSdkStatus (__stdcall *_CameraSetStrobePulseWidth)(
  2328. CameraHandle hCamera,
  2329. UINT uTimeUs
  2330. );
  2331. /******************************************************/
  2332. // 函数名 : CameraGetStrobePulseWidth
  2333. // 功能描述 : 当STROBE信号处于STROBE_SYNC_WITH_TRIG时,通过该函数获得其脉冲宽度。
  2334. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2335. // upTimeUs 指针,返回脉冲宽度。单位为时间us。
  2336. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2337. // 否则返回非0值的错误码,请参考CameraStatus.h
  2338. // 中错误码的定义。
  2339. /******************************************************/
  2340. typedef CameraSdkStatus (__stdcall *_CameraGetStrobePulseWidth)(
  2341. CameraHandle hCamera,
  2342. UINT* upTimeUs
  2343. );
  2344. /******************************************************/
  2345. // 函数名 : CameraSetStrobePolarity
  2346. // 功能描述 : 当STROBE信号处于STROBE_SYNC_WITH_TRIG时,通过该函数设置其有效电平的极性。默认为高有效,当触发信号到来时,STROBE信号被拉高。
  2347. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2348. // iPolarity STROBE信号的极性,0为低电平有效,1为高电平有效。默认为高电平有效。
  2349. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2350. // 否则返回非0值的错误码,请参考CameraStatus.h
  2351. // 中错误码的定义。
  2352. /******************************************************/
  2353. typedef CameraSdkStatus (__stdcall *_CameraSetStrobePolarity)(
  2354. CameraHandle hCamera,
  2355. INT iPolarity
  2356. );
  2357. /******************************************************/
  2358. // 函数名 : CameraGetStrobePolarity
  2359. // 功能描述 : 获得相机当前STROBE信号的有效极性。默认为高电平有效。
  2360. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2361. // ipPolarity 指针,返回STROBE信号当前的有效极性。
  2362. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2363. // 否则返回非0值的错误码,请参考CameraStatus.h
  2364. // 中错误码的定义。
  2365. /******************************************************/
  2366. typedef CameraSdkStatus (__stdcall *_CameraGetStrobePolarity)(
  2367. CameraHandle hCamera,
  2368. INT* ipPolarity
  2369. );
  2370. /******************************************************/
  2371. // 函数名 : CameraSetExtTrigSignalType
  2372. // 功能描述 : 设置相机外触发信号的种类。上边沿、下边沿、或者高、低电平方式。
  2373. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2374. // iType 外触发信号种类,返回值参考CameraDefine.h中
  2375. // emExtTrigSignal类型定义。
  2376. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2377. // 否则返回非0值的错误码,请参考CameraStatus.h
  2378. // 中错误码的定义。
  2379. /******************************************************/
  2380. typedef CameraSdkStatus (__stdcall *_CameraSetExtTrigSignalType)(
  2381. CameraHandle hCamera,
  2382. INT iType
  2383. );
  2384. /******************************************************/
  2385. // 函数名 : CameraGetExtTrigSignalType
  2386. // 功能描述 : 获得相机当前外触发信号的种类。
  2387. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2388. // ipType 指针,返回外触发信号种类,返回值参考CameraDefine.h中
  2389. // emExtTrigSignal类型定义。
  2390. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2391. // 否则返回非0值的错误码,请参考CameraStatus.h
  2392. // 中错误码的定义。
  2393. /******************************************************/
  2394. typedef CameraSdkStatus (__stdcall *_CameraGetExtTrigSignalType)(
  2395. CameraHandle hCamera,
  2396. INT* ipType
  2397. );
  2398. /******************************************************/
  2399. // 函数名 : CameraSetExtTrigShutterType
  2400. // 功能描述 : 设置外触发模式下,相机快门的方式,默认为标准快门方式。
  2401. // 部分滚动快门的CMOS相机支持GRR方式。
  2402. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2403. // iType 外触发快门方式。参考CameraDefine.h中emExtTrigShutterMode类型。
  2404. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2405. // 否则返回非0值的错误码,请参考CameraStatus.h
  2406. // 中错误码的定义。
  2407. /******************************************************/
  2408. typedef CameraSdkStatus (__stdcall *_CameraSetExtTrigShutterType)(
  2409. CameraHandle hCamera,
  2410. INT iType
  2411. );
  2412. /******************************************************/
  2413. // 函数名 : CameraSetExtTrigShutterType
  2414. // 功能描述 : 获得外触发模式下,相机快门的方式,默认为标准快门方式。
  2415. // 部分滚动快门的CMOS相机支持GRR方式。
  2416. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2417. // ipType 指针,返回当前设定的外触发快门方式。返回值参考
  2418. // CameraDefine.h中emExtTrigShutterMode类型。
  2419. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2420. // 否则返回非0值的错误码,请参考CameraStatus.h
  2421. // 中错误码的定义。
  2422. /******************************************************/
  2423. typedef CameraSdkStatus (__stdcall *_CameraGetExtTrigShutterType)(
  2424. CameraHandle hCamera,
  2425. INT* ipType
  2426. );
  2427. /******************************************************/
  2428. // 函数名 : CameraSetExtTrigDelayTime
  2429. // 功能描述 : 设置外触发信号延时时间,默认为0,单位为微秒。
  2430. // 当设置的值uDelayTimeUs不为0时,相机接收到外触发信号后,将延时uDelayTimeUs个微秒后再进行图像捕获。
  2431. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2432. // uDelayTimeUs 延时时间,单位为微秒,默认为0.
  2433. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2434. // 否则返回非0值的错误码,请参考CameraStatus.h
  2435. // 中错误码的定义。
  2436. /******************************************************/
  2437. typedef CameraSdkStatus (__stdcall *_CameraSetExtTrigDelayTime)(
  2438. CameraHandle hCamera,
  2439. UINT uDelayTimeUs
  2440. );
  2441. /******************************************************/
  2442. // 函数名 : CameraGetExtTrigDelayTime
  2443. // 功能描述 : 获得设置的外触发信号延时时间,默认为0,单位为微秒。
  2444. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2445. // UINT* upDelayTimeUs
  2446. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2447. // 否则返回非0值的错误码,请参考CameraStatus.h
  2448. // 中错误码的定义。
  2449. /******************************************************/
  2450. typedef CameraSdkStatus (__stdcall *_CameraGetExtTrigDelayTime)(
  2451. CameraHandle hCamera,
  2452. UINT* upDelayTimeUs
  2453. );
  2454. /// @ingroup API_TRIGGER
  2455. /// \~chinese
  2456. /// \brief 设置外触发信号间隔时间,默认为0,单位为微秒。
  2457. /// \param [in] hCamera 相机的句柄。
  2458. /// \param [in] uTimeUs 间隔时间,单位为微秒,默认为0.
  2459. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  2460. /// \~english
  2461. /// \brief Set the interval time of external trigger signal. The default is 0 and the unit is microsecond.
  2462. /// \param [in] hCamera Camera handle.
  2463. /// \param [in] uTimeUs Interval time in microseconds. Default is 0.
  2464. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  2465. typedef CameraSdkStatus (__stdcall *_CameraSetExtTrigIntervalTime)(
  2466. CameraHandle hCamera,
  2467. UINT uTimeUs
  2468. );
  2469. /// @ingroup API_TRIGGER
  2470. /// \~chinese
  2471. /// \brief 获得设置的外触发信号间隔时间,默认为0,单位为微秒。
  2472. /// \param [in] hCamera 相机的句柄。
  2473. /// \param [out] upTimeUs 触发间隔
  2474. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  2475. /// \~english
  2476. /// \brief Get the set external trigger signal interval time, the default is 0, the unit is microseconds.
  2477. /// \param [in] hCamera Camera handle.
  2478. /// \param [out] upTimeUs trigger interval
  2479. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  2480. typedef CameraSdkStatus (__stdcall *_CameraGetExtTrigIntervalTime)(
  2481. CameraHandle hCamera,
  2482. UINT* upTimeUs
  2483. );
  2484. /******************************************************/
  2485. // 函数名 : CameraSetExtTrigJitterTime
  2486. // 功能描述 : 设置相机外触发信号的消抖时间。默认为0,单位为微秒。
  2487. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2488. // UINT uTimeUs
  2489. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2490. // 否则返回非0值的错误码,请参考CameraStatus.h
  2491. // 中错误码的定义。
  2492. /******************************************************/
  2493. typedef CameraSdkStatus (__stdcall *_CameraSetExtTrigJitterTime)(
  2494. CameraHandle hCamera,
  2495. UINT uTimeUs
  2496. );
  2497. /******************************************************/
  2498. // 函数名 : CameraGetExtTrigJitterTime
  2499. // 功能描述 : 获得设置的相机外触发消抖时间,默认为0.单位为微妙
  2500. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2501. // UINT* upTimeUs
  2502. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2503. // 否则返回非0值的错误码,请参考CameraStatus.h
  2504. // 中错误码的定义。
  2505. /******************************************************/
  2506. typedef CameraSdkStatus (__stdcall *_CameraGetExtTrigJitterTime)(
  2507. CameraHandle hCamera,
  2508. UINT* upTimeUs
  2509. );
  2510. /******************************************************/
  2511. // 函数名 : CameraGetExtTrigCapability
  2512. // 功能描述 : 获得相机外触发的属性掩码
  2513. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2514. // puCapabilityMask 指针,返回该相机外触发特性掩码,掩码参考CameraDefine.h中
  2515. // EXT_TRIG_MASK_ 开头的宏定义。
  2516. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2517. // 否则返回非0值的错误码,请参考CameraStatus.h
  2518. // 中错误码的定义。
  2519. /******************************************************/
  2520. typedef CameraSdkStatus (__stdcall *_CameraGetExtTrigCapability)(
  2521. CameraHandle hCamera,
  2522. UINT* puCapabilityMask
  2523. );
  2524. typedef CameraSdkStatus (__stdcall *_CameraPauseLevelTrigger)(
  2525. CameraHandle hCamera
  2526. );
  2527. /******************************************************/
  2528. // 函数名 : CameraGetResolutionForSnap
  2529. // 功能描述 : 获得抓拍模式下的分辨率选择索引号。
  2530. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2531. // pImageResolution 指针,返回抓拍模式的分辨率。
  2532. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2533. // 否则返回非0值的错误码,请参考CameraStatus.h
  2534. // 中错误码的定义。
  2535. /******************************************************/
  2536. typedef CameraSdkStatus (__stdcall *_CameraGetResolutionForSnap)(
  2537. CameraHandle hCamera,
  2538. tSdkImageResolution* pImageResolution
  2539. );
  2540. /******************************************************/
  2541. // 函数名 : CameraSetResolutionForSnap
  2542. // 功能描述 : 设置抓拍模式下相机输出图像的分辨率。
  2543. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2544. // pImageResolution 如果pImageResolution->iWidth
  2545. // 和 pImageResolution->iHeight都为0,
  2546. // 则表示设定为跟随当前预览分辨率。抓
  2547. // 怕到的图像的分辨率会和当前设定的
  2548. // 预览分辨率一样。
  2549. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2550. // 否则返回非0值的错误码,请参考CameraStatus.h
  2551. // 中错误码的定义。
  2552. /******************************************************/
  2553. typedef CameraSdkStatus (__stdcall *_CameraSetResolutionForSnap)(
  2554. CameraHandle hCamera,
  2555. tSdkImageResolution* pImageResolution
  2556. );
  2557. /******************************************************/
  2558. // 函数名 : CameraCustomizeResolution
  2559. // 功能描述 : 打开分辨率自定义面板,并通过可视化的方式
  2560. // 来配置一个自定义分辨率。
  2561. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2562. // pImageCustom 指针,返回自定义的分辨率。
  2563. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2564. // 否则返回非0值的错误码,请参考CameraStatus.h
  2565. // 中错误码的定义。
  2566. /******************************************************/
  2567. typedef CameraSdkStatus (__stdcall *_CameraCustomizeResolution)(
  2568. CameraHandle hCamera,
  2569. tSdkImageResolution* pImageCustom
  2570. );
  2571. /******************************************************/
  2572. // 函数名 : CameraCustomizeReferWin
  2573. // 功能描述 : 打开参考窗口自定义面板。并通过可视化的方式来
  2574. // 获得一个自定义窗口的位置。一般是用自定义白平衡
  2575. // 和自动曝光的参考窗口。
  2576. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2577. // iWinType 要生成的参考窗口的用途。0,自动曝光参考窗口;
  2578. // 1,白平衡参考窗口。
  2579. // hParent 调用该函数的窗口的句柄。可以为NULL。
  2580. // piHOff 指针,返回自定义窗口的左上角横坐标。
  2581. // piVOff 指针,返回自定义窗口的左上角纵坐标。
  2582. // piWidth 指针,返回自定义窗口的宽度。
  2583. // piHeight 指针,返回自定义窗口的高度。
  2584. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2585. // 否则返回非0值的错误码,请参考CameraStatus.h
  2586. // 中错误码的定义。
  2587. /******************************************************/
  2588. typedef CameraSdkStatus (__stdcall *_CameraCustomizeReferWin)(
  2589. CameraHandle hCamera,
  2590. INT iWinType,
  2591. HWND hParent,
  2592. INT* piHOff,
  2593. INT* piVOff,
  2594. INT* piWidth,
  2595. INT* piHeight
  2596. );
  2597. /******************************************************/
  2598. // 函数名 : CameraShowSettingPage
  2599. // 功能描述 : 设置相机属性配置窗口显示状态。必须先调用CameraCreateSettingPage
  2600. // 成功创建相机属性配置窗口后,才能调用本函数进行
  2601. // 显示。
  2602. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2603. // bShow TRUE,显示;FALSE,隐藏。
  2604. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2605. // 否则返回非0值的错误码,请参考CameraStatus.h
  2606. // 中错误码的定义。
  2607. /******************************************************/
  2608. typedef CameraSdkStatus (__stdcall *_CameraShowSettingPage)(
  2609. CameraHandle hCamera,
  2610. BOOL bShow
  2611. );
  2612. /******************************************************/
  2613. // 函数名 : CameraCreateSettingPage
  2614. // 功能描述 : 创建该相机的属性配置窗口。调用该函数,SDK内部会
  2615. // 帮您创建好相机的配置窗口,省去了您重新开发相机
  2616. // 配置界面的时间。强烈建议使用您使用该函数让
  2617. // SDK为您创建好配置窗口。
  2618. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2619. // hParent 应用程序主窗口的句柄。可以为NULL。
  2620. // pWinText 字符串指针,窗口显示的标题栏。
  2621. // pCallbackFunc 窗口消息的回调函数,当相应的事件发生时,
  2622. // pCallbackFunc所指向的函数会被调用,
  2623. // 例如切换了参数之类的操作时,pCallbackFunc
  2624. // 被回调时,在入口参数处指明了消息类型。
  2625. // 这样可以方便您自己开发的界面和我们生成的UI
  2626. // 之间进行同步。该参数可以为NULL。
  2627. // pCallbackCtx 回调函数的附加参数。可以为NULL。pCallbackCtx
  2628. // 会在pCallbackFunc被回调时,做为参数之一传入。
  2629. // 您可以使用该参数来做一些灵活的判断。
  2630. // uReserved 预留。必须设置为0。
  2631. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2632. // 否则返回非0值的错误码,请参考CameraStatus.h
  2633. // 中错误码的定义。
  2634. /******************************************************/
  2635. typedef CameraSdkStatus (__stdcall *_CameraCreateSettingPage)(
  2636. CameraHandle hCamera,
  2637. HWND hParent,
  2638. char* pWinText,
  2639. CAMERA_PAGE_MSG_PROC pCallbackFunc,
  2640. PVOID pCallbackCtx,
  2641. UINT uReserved
  2642. );
  2643. /******************************************************/
  2644. // 函数名 : CameraSetActiveSettingSubPage
  2645. // 功能描述 : 设置相机配置窗口的激活页面。相机配置窗口有多个
  2646. // 子页面构成,该函数可以设定当前哪一个子页面
  2647. // 为激活状态,显示在最前端。
  2648. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2649. // index 子页面的索引号。参考CameraDefine.h中
  2650. // PROP_SHEET_INDEX的定义。
  2651. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2652. // 否则返回非0值的错误码,请参考CameraStatus.h
  2653. // 中错误码的定义。
  2654. /******************************************************/
  2655. typedef CameraSdkStatus (__stdcall *_CameraSetActiveSettingSubPage)(
  2656. CameraHandle hCamera,
  2657. INT index
  2658. );
  2659. typedef CameraSdkStatus (__stdcall *_CameraSetSettingPageParent)(
  2660. CameraHandle hCamera,
  2661. HWND hParentWnd,
  2662. DWORD Flags
  2663. );
  2664. typedef CameraSdkStatus (__stdcall *_CameraGetSettingPageHWnd)(
  2665. CameraHandle hCamera,
  2666. HWND* hWnd
  2667. );
  2668. typedef CameraSdkStatus (__stdcall *_CameraUpdateSettingPage)(
  2669. CameraHandle hCamera
  2670. );
  2671. /******************************************************/
  2672. // 函数名 : CameraSpecialControl
  2673. // 功能描述 : 相机一些特殊配置所调用的接口,二次开发时一般不需要
  2674. // 调用。
  2675. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2676. // dwCtrlCode 控制码。
  2677. // dwParam 控制子码,不同的dwCtrlCode时,意义不同。
  2678. // lpData 附加参数。不同的dwCtrlCode时,意义不同。
  2679. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2680. // 否则返回非0值的错误码,请参考CameraStatus.h
  2681. // 中错误码的定义。
  2682. /******************************************************/
  2683. typedef CameraSdkStatus (__stdcall *_CameraSpecialControl)(
  2684. CameraHandle hCamera,
  2685. DWORD dwCtrlCode,
  2686. DWORD dwParam,
  2687. LPVOID lpData
  2688. );
  2689. /******************************************************/
  2690. // 函数名 : CameraGetFrameStatistic
  2691. // 功能描述 : 获得相机接收帧率的统计信息,包括错误帧和丢帧的情况。
  2692. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2693. // psFrameStatistic 指针,返回统计信息。
  2694. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2695. // 否则返回非0值的错误码,请参考CameraStatus.h
  2696. // 中错误码的定义。
  2697. /******************************************************/
  2698. typedef CameraSdkStatus (__stdcall *_CameraGetFrameStatistic)(
  2699. CameraHandle hCamera,
  2700. tSdkFrameStatistic* psFrameStatistic
  2701. );
  2702. /******************************************************/
  2703. // 函数名 : CameraSetNoiseFilter
  2704. // 功能描述 : 设置图像降噪模块的使能状态。
  2705. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2706. // bEnable TRUE,使能;FALSE,禁止。
  2707. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2708. // 否则返回非0值的错误码,请参考CameraStatus.h
  2709. // 中错误码的定义。
  2710. /******************************************************/
  2711. typedef CameraSdkStatus (__stdcall *_CameraSetNoiseFilter)(
  2712. CameraHandle hCamera,
  2713. BOOL bEnable
  2714. );
  2715. /******************************************************/
  2716. // 函数名 : CameraGetNoiseFilterState
  2717. // 功能描述 : 获得图像降噪模块的使能状态。
  2718. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2719. // *pEnable 指针,返回状态。TRUE,为使能。
  2720. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2721. // 否则返回非0值的错误码,请参考CameraStatus.h
  2722. // 中错误码的定义。
  2723. /******************************************************/
  2724. typedef CameraSdkStatus (__stdcall *_CameraGetNoiseFilterState)(
  2725. CameraHandle hCamera,
  2726. BOOL* pEnable
  2727. );
  2728. /******************************************************/
  2729. // 函数名 : CameraRstTimeStamp
  2730. // 功能描述 : 复位图像采集的时间戳,从0开始。
  2731. // 参数 : CameraHandle hCamera
  2732. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2733. // 否则返回非0值的错误码,请参考CameraStatus.h
  2734. // 中错误码的定义。
  2735. /******************************************************/
  2736. typedef CameraSdkStatus (__stdcall *_CameraRstTimeStamp)(
  2737. CameraHandle hCamera
  2738. );
  2739. /******************************************************/
  2740. // 函数名 : CameraGetCapabilityEx
  2741. // 功能描述 : 获得相机的特性描述结构体。该结构体中包含了相机
  2742. // 可设置的各种参数的范围信息。决定了相关函数的参数
  2743. // 返回,也可用于动态创建相机的配置界面。
  2744. // 参数 : sDeviceModel 相机的型号,由扫描列表中获取
  2745. // pCameraInfo 指针,返回该相机特性描述的结构体。
  2746. // PVOID hCameraHandle
  2747. // tSdkCameraCapbility在CameraDefine.h中定义。
  2748. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2749. // 否则返回非0值的错误码,请参考CameraStatus.h
  2750. // 中错误码的定义。
  2751. /******************************************************/
  2752. typedef CameraSdkStatus (__stdcall *_CameraGetCapabilityEx)(
  2753. char* sDeviceModel,
  2754. tSdkCameraCapbility* pCameraInfo,
  2755. PVOID hCameraHandle
  2756. );
  2757. /******************************************************/
  2758. // 函数名 : CameraFreeCapabilityEx
  2759. // 功能描述 :
  2760. // 返回,也可用于动态创建相机的配置界面。
  2761. // 参数 : sDeviceModel 相机的型号,由扫描列表中获取
  2762. // hCameraHandle 指针
  2763. // tSdkCameraCapbility在CameraDefine.h中定义。
  2764. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2765. // 否则返回非0值的错误码,请参考CameraStatus.h
  2766. // 中错误码的定义。
  2767. /******************************************************/
  2768. typedef CameraSdkStatus (__stdcall *_CameraFreeCapabilityEx)(
  2769. char* sDeviceModel,
  2770. PVOID hCameraHandle
  2771. );
  2772. /******************************************************/
  2773. // 函数名 : CameraSaveUserData
  2774. // 功能描述 : 将用户自定义的数据保存到相机的非易性存储器中。
  2775. // 每个型号的相机可能支持的用户数据区最大长度不一样。
  2776. // 可以从设备的特性描述中获取该长度信息。
  2777. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2778. // uStartAddr 起始地址,从0开始。
  2779. // pbData 数据缓冲区指针
  2780. // ilen 写入数据的长度,ilen + uStartAddr必须
  2781. // 小于用户区最大长度
  2782. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2783. // 否则返回非0值的错误码,请参考CameraStatus.h
  2784. // 中错误码的定义。
  2785. /******************************************************/
  2786. typedef CameraSdkStatus (__stdcall *_CameraSaveUserData)(
  2787. CameraHandle hCamera,
  2788. UINT uStartAddr,
  2789. BYTE *pbData,
  2790. int ilen
  2791. );
  2792. /******************************************************/
  2793. // 函数名 : CameraLoadUserData
  2794. // 功能描述 : 从相机的非易性存储器中读取用户自定义的数据。
  2795. // 每个型号的相机可能支持的用户数据区最大长度不一样。
  2796. // 可以从设备的特性描述中获取该长度信息。
  2797. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2798. // uStartAddr 起始地址,从0开始。
  2799. // pbData 数据缓冲区指针,返回读到的数据。
  2800. // ilen 读取数据的长度,ilen + uStartAddr必须
  2801. // 小于用户区最大长度
  2802. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2803. // 否则返回非0值的错误码,请参考CameraStatus.h
  2804. // 中错误码的定义。
  2805. /******************************************************/
  2806. typedef CameraSdkStatus (__stdcall *_CameraLoadUserData)(
  2807. CameraHandle hCamera,
  2808. UINT uStartAddr,
  2809. BYTE *pbData,
  2810. int ilen
  2811. );
  2812. /******************************************************/
  2813. // 函数名 : CameraGetFriendlyName
  2814. // 功能描述 : 读取用户自定义的设备昵称。
  2815. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2816. // pName 指针,返回指向0结尾的字符串,
  2817. // 设备昵称不超过32个字节,因此该指针
  2818. // 指向的缓冲区必须大于等于32个字节空间。
  2819. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2820. // 否则返回非0值的错误码,请参考CameraStatus.h
  2821. // 中错误码的定义。
  2822. /******************************************************/
  2823. typedef CameraSdkStatus (__stdcall *_CameraGetFriendlyName)(
  2824. CameraHandle hCamera,
  2825. char* pName
  2826. );
  2827. /******************************************************/
  2828. // 函数名 : CameraSetFriendlyName
  2829. // 功能描述 : 设置用户自定义的设备昵称。
  2830. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2831. // pName 指针,指向0结尾的字符串,
  2832. // 设备昵称不超过32个字节,因此该指针
  2833. // 指向字符串必须小于等于32个字节空间。
  2834. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2835. // 否则返回非0值的错误码,请参考CameraStatus.h
  2836. // 中错误码的定义。
  2837. /******************************************************/
  2838. typedef CameraSdkStatus (__stdcall *_CameraSetFriendlyName)(
  2839. CameraHandle hCamera,
  2840. char* pName
  2841. );
  2842. /******************************************************/
  2843. // 函数名 : CameraSdkGetVersionString
  2844. // 功能描述 :
  2845. // 参数 : pVersionString 指针,返回SDK版本字符串。
  2846. // 该指针指向的缓冲区大小必须大于
  2847. // 32个字节
  2848. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2849. // 否则返回非0值的错误码,请参考CameraStatus.h
  2850. // 中错误码的定义。
  2851. /******************************************************/
  2852. typedef CameraSdkStatus (__stdcall *_CameraSdkGetVersionString)(
  2853. char* pVersionString
  2854. );
  2855. /******************************************************/
  2856. // 函数名 : CameraCheckFwUpdate
  2857. // 功能描述 : 检测固件版本,是否需要升级。
  2858. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2859. // pNeedUpdate 指针,返回固件检测状态,TRUE表示需要更新
  2860. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2861. // 否则返回非0值的错误码,请参考CameraStatus.h
  2862. // 中错误码的定义。
  2863. /******************************************************/
  2864. typedef CameraSdkStatus (__stdcall *_CameraCheckFwUpdate)(
  2865. CameraHandle hCamera,
  2866. BOOL* pNeedUpdate
  2867. );
  2868. /******************************************************/
  2869. // 函数名 : CameraGetFirmwareVersion
  2870. // 功能描述 : 获得固件版本的字符串
  2871. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2872. // pVersion 必须指向一个大于32字节的缓冲区,
  2873. // 返回固件的版本字符串。
  2874. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2875. // 否则返回非0值的错误码,请参考CameraStatus.h
  2876. // 中错误码的定义。
  2877. /******************************************************/
  2878. typedef CameraSdkStatus (__stdcall *_CameraGetFirmwareVersion)(
  2879. CameraHandle hCamera,
  2880. char* pVersion
  2881. );
  2882. /******************************************************/
  2883. // 函数名 : CameraGetFirmwareVision
  2884. // 功能描述 : 获得固件版本的字符串
  2885. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2886. // pVersion 必须指向一个大于32字节的缓冲区,
  2887. // 返回固件的版本字符串。
  2888. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2889. // 否则返回非0值的错误码,请参考CameraStatus.h
  2890. // 中错误码的定义。
  2891. /******************************************************/
  2892. typedef CameraSdkStatus (__stdcall *_CameraGetFirmwareVision)(
  2893. CameraHandle hCamera,
  2894. char* pVersion
  2895. );
  2896. /******************************************************/
  2897. // 函数名 : CameraGetEnumInfo
  2898. // 功能描述 : 获得指定设备的枚举信息
  2899. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2900. // pCameraInfo 指针,返回设备的枚举信息。
  2901. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2902. // 否则返回非0值的错误码,请参考CameraStatus.h
  2903. // 中错误码的定义。
  2904. /******************************************************/
  2905. typedef CameraSdkStatus (__stdcall *_CameraGetEnumInfo)(
  2906. CameraHandle hCamera,
  2907. tSdkCameraDevInfo* pCameraInfo
  2908. );
  2909. /******************************************************/
  2910. // 函数名 : CameraGetInerfaceVersion
  2911. // 功能描述 : 获得指定设备接口的版本
  2912. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2913. // pVersion 指向一个大于32字节的缓冲区,返回接口版本字符串。
  2914. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2915. // 否则返回非0值的错误码,请参考CameraStatus.h
  2916. // 中错误码的定义。
  2917. /******************************************************/
  2918. typedef CameraSdkStatus (__stdcall *_CameraGetInerfaceVersion)(
  2919. CameraHandle hCamera,
  2920. char* pVersion
  2921. );
  2922. /******************************************************/
  2923. // 函数名 : CameraSetIOState
  2924. // 功能描述 : 设置指定IO的电平状态,IO为输出型IO,相机
  2925. // 预留可编程输出IO的个数由tSdkCameraCapbility中
  2926. // iOutputIoCounts决定。
  2927. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2928. // iOutputIOIndex IO的索引号,从0开始。
  2929. // uState 要设定的状态,1为高,0为低
  2930. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2931. // 否则返回非0值的错误码,请参考CameraStatus.h
  2932. // 中错误码的定义。
  2933. /******************************************************/
  2934. typedef CameraSdkStatus (__stdcall *_CameraSetIOState)(
  2935. CameraHandle hCamera,
  2936. INT iOutputIOIndex,
  2937. UINT uState
  2938. );
  2939. typedef CameraSdkStatus (__stdcall *_CameraSetIOStateEx)(
  2940. CameraHandle hCamera,
  2941. INT iOutputIOIndex,
  2942. UINT uState
  2943. );
  2944. /// @ingroup API_GPIO
  2945. /// \~chinese
  2946. /// \brief 读取指定IO的电平状态,IO为输出型IO,相机预留可编程输出IO的个数由@link #tSdkCameraCapbility.iOutputIoCounts @endlink决定。
  2947. /// \param [in] hCamera 相机的句柄。
  2948. /// \param [in] iOutputIOIndex IO的索引号,从0开始。
  2949. /// \param [out] puState 返回IO状态,1为高,0为低
  2950. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  2951. /// \~english
  2952. /// \brief Read the level state of the specified IO. IO is the output IO. The number of programmable output IOs for the camera is determined by @link #tSdkCameraCapbility.iOutputIoCounts @endlink.
  2953. /// \param [in] hCamera Camera handle.
  2954. /// \param [in] iOutputIOIndex IO index, starting from 0.
  2955. /// \param [out] puState return IO state, 1 is high, 0 is low
  2956. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  2957. typedef CameraSdkStatus (__stdcall *_CameraGetOutPutIOState)(
  2958. CameraHandle hCamera,
  2959. INT iOutputIOIndex,
  2960. UINT* puState
  2961. );
  2962. typedef CameraSdkStatus (__stdcall *_CameraGetOutPutIOStateEx)(
  2963. CameraHandle hCamera,
  2964. INT iOutputIOIndex,
  2965. UINT* puState
  2966. );
  2967. /******************************************************/
  2968. // 函数名 : CameraGetIOState
  2969. // 功能描述 : 设置指定IO的电平状态,IO为输入型IO,相机
  2970. // 预留可编程输出IO的个数由tSdkCameraCapbility中
  2971. // iInputIoCounts决定。
  2972. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2973. // iInputIOIndex IO的索引号,从0开始。
  2974. // puState 指针,返回IO状态,1为高,0为低
  2975. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2976. // 否则返回非0值的错误码,请参考CameraStatus.h
  2977. // 中错误码的定义。
  2978. /******************************************************/
  2979. typedef CameraSdkStatus (__stdcall *_CameraGetIOState)(
  2980. CameraHandle hCamera,
  2981. INT iInputIOIndex,
  2982. UINT* puState
  2983. );
  2984. typedef CameraSdkStatus (__stdcall *_CameraGetIOStateEx)(
  2985. CameraHandle hCamera,
  2986. INT iInputIOIndex,
  2987. UINT* puState
  2988. );
  2989. /******************************************************/
  2990. // 函数名 : CameraSetInPutIOMode
  2991. // 功能描述 : 设置输入IO的模式,相机
  2992. // 预留可编程输出IO的个数由tSdkCameraCapbility中
  2993. // iInputIoCounts决定。
  2994. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  2995. // iInputIOIndex IO的索引号,从0开始。
  2996. // iMode IO模式,参考CameraDefine.h中emCameraGPIOMode
  2997. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  2998. // 否则返回非0值的错误码,请参考CameraStatus.h
  2999. // 中错误码的定义。
  3000. /******************************************************/
  3001. typedef CameraSdkStatus (__stdcall *_CameraSetInPutIOMode)(
  3002. CameraHandle hCamera,
  3003. INT iInputIOIndex,
  3004. INT iMode
  3005. );
  3006. /// @ingroup API_GPIO
  3007. /// \~chinese
  3008. /// \brief 获取输入IO的模式
  3009. /// \param [in] hCamera 相机的句柄。
  3010. /// \param [in] iInputIOIndex IO的索引号,从0开始。
  3011. /// \param [out] piMode IO模式,参考@link #emCameraGPIOMode @endlink
  3012. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3013. /// \~english
  3014. /// \brief Get the input IO mode
  3015. /// \param [in] hCamera Camera handle.
  3016. /// \param [in] iInputIOIndex IO index, starting from 0.
  3017. /// \param [out] piMode IO mode, reference @link #emCameraGPIOMode @endlink
  3018. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3019. typedef CameraSdkStatus (__stdcall *_CameraGetInPutIOMode)(
  3020. CameraHandle hCamera,
  3021. INT iInputIOIndex,
  3022. INT* piMode
  3023. );
  3024. /******************************************************/
  3025. // 函数名 : CameraSetOutPutIOMode
  3026. // 功能描述 : 设置输出IO的模式,相机
  3027. // 预留可编程输出IO的个数由tSdkCameraCapbility中
  3028. // iOutputIoCounts决定。
  3029. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3030. // iOutputIOIndex IO的索引号,从0开始。
  3031. // iMode IO模式,参考CameraDefine.h中emCameraGPIOMode
  3032. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3033. // 否则返回非0值的错误码,请参考CameraStatus.h
  3034. // 中错误码的定义。
  3035. /******************************************************/
  3036. typedef CameraSdkStatus (__stdcall *_CameraSetOutPutIOMode)(
  3037. CameraHandle hCamera,
  3038. INT iOutputIOIndex,
  3039. INT iMode
  3040. );
  3041. /// @ingroup API_GPIO
  3042. /// \~chinese
  3043. /// \brief 获取输出IO的模式
  3044. /// \param [in] hCamera 相机的句柄。
  3045. /// \param [in] iOutputIOIndex IO的索引号,从0开始。
  3046. /// \param [out] piMode IO模式,参考@link #emCameraGPIOMode @endlink
  3047. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3048. /// \~english
  3049. /// \brief Get the output IO mode
  3050. /// \param [in] hCamera Camera handle.
  3051. /// \param [in] iOutputIOIndex IO index, starting from 0.
  3052. /// \param [out] piMode IO mode, reference @link #emCameraGPIOMode @endlink
  3053. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3054. typedef CameraSdkStatus (__stdcall *_CameraGetOutPutIOMode)(
  3055. CameraHandle hCamera,
  3056. INT iOutputIOIndex,
  3057. INT* piMode
  3058. );
  3059. /// @ingroup API_GPIO
  3060. /// \~chinese
  3061. /// \brief 获取输入IO的模式支持能力
  3062. /// \param [in] hCamera 相机的句柄。
  3063. /// \param [in] iInputIOIndex IO的索引号,从0开始。
  3064. /// \param [out] piCapbility IO模式支持位掩码
  3065. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3066. /// \~english
  3067. /// \brief Get the mode support capability of the input IO
  3068. /// \param [in] hCamera Camera handle.
  3069. /// \param [in] iInputIOIndex IO index, starting from 0.
  3070. /// \param [out] piCapbility IO mode support bit mask
  3071. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3072. typedef CameraSdkStatus (__stdcall *_CameraGetInPutIOModeCapbility)(
  3073. CameraHandle hCamera,
  3074. INT iInputIOIndex,
  3075. UINT* piCapbility
  3076. );
  3077. /// @ingroup API_GPIO
  3078. /// \~chinese
  3079. /// \brief 获取输出IO的模式支持能力
  3080. /// \param [in] hCamera 相机的句柄。
  3081. /// \param [in] iOutputIOIndex IO的索引号,从0开始。
  3082. /// \param [out] piCapbility IO模式支持位掩码
  3083. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3084. /// \~english
  3085. /// \brief Get the mode support capability of the output IO
  3086. /// \param [in] hCamera Camera handle.
  3087. /// \param [in] iOutputIOIndex IO index, starting from 0.
  3088. /// \param [out] piCapbility IO mode support bit mask
  3089. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3090. typedef CameraSdkStatus (__stdcall *_CameraGetOutPutIOModeCapbility)(
  3091. CameraHandle hCamera,
  3092. INT iOutputIOIndex,
  3093. UINT* piCapbility
  3094. );
  3095. /******************************************************/
  3096. // 函数名 : CameraSetOutPutPWM
  3097. // 功能描述 : 设置PWM型输出的参数,相机
  3098. // 预留可编程输出IO的个数由tSdkCameraCapbility中
  3099. // iOutputIoCounts决定。
  3100. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3101. // iOutputIOIndex IO的索引号,从0开始。
  3102. // iCycle PWM的周期,单位(us)
  3103. // uDuty 占用比,取值1%~99%
  3104. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3105. // 否则返回非0值的错误码,请参考CameraStatus.h
  3106. // 中错误码的定义。
  3107. /******************************************************/
  3108. typedef CameraSdkStatus (__stdcall *_CameraSetOutPutPWM)(
  3109. CameraHandle hCamera,
  3110. INT iOutputIOIndex,
  3111. UINT iCycle,
  3112. UINT uDuty
  3113. );
  3114. /// @ingroup API_GPIO
  3115. /// \~chinese
  3116. /// \brief 设置编码器有效方向
  3117. /// \param [in] hCamera 相机的句柄。
  3118. /// \param [in] dir 有效方向(0:正反转都有效 1:顺时针(A相超前于B) 2:逆时针)
  3119. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3120. /// \~english
  3121. /// \brief Set the effective direction of the rotary encoder
  3122. /// \param [in] hCamera Camera handle.
  3123. /// \param [in] dir Valid direction (0: Both positive and negative are valid 1: Clockwise (A phase leads B) 2: Counterclockwise)
  3124. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3125. typedef CameraSdkStatus (__stdcall *_CameraSetRotaryEncDir)(
  3126. CameraHandle hCamera,
  3127. INT dir
  3128. );
  3129. /// @ingroup API_GPIO
  3130. /// \~chinese
  3131. /// \brief 获取编码器有效方向
  3132. /// \param [in] hCamera 相机的句柄。
  3133. /// \param [out] dir 有效方向(0:正反转都有效 1:顺时针(A相超前于B) 2:逆时针)
  3134. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3135. /// \~english
  3136. /// \brief Get the effective direction of the rotary encoder
  3137. /// \param [in] hCamera Camera handle.
  3138. /// \param [out] dir Valid direction (0: Both positive and negative are valid 1: Clockwise (A phase leads B) 2: Counterclockwise)
  3139. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3140. typedef CameraSdkStatus (__stdcall *_CameraGetRotaryEncDir)(
  3141. CameraHandle hCamera,
  3142. INT* dir
  3143. );
  3144. /// @ingroup API_GPIO
  3145. /// \~chinese
  3146. /// \brief 设置编码器频率
  3147. /// \param [in] hCamera 相机的句柄。
  3148. /// \param [in] mul 倍频
  3149. /// \param [in] div 分频
  3150. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3151. /// \~english
  3152. /// \brief Set the frequency of the rotary encoder
  3153. /// \param [in] hCamera Camera handle.
  3154. /// \param [in] mul frequency multiplier
  3155. /// \param [in] div frequency division
  3156. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3157. typedef CameraSdkStatus (__stdcall *_CameraSetRotaryEncFreq)(
  3158. CameraHandle hCamera,
  3159. INT mul,
  3160. INT div
  3161. );
  3162. /// @ingroup API_GPIO
  3163. /// \~chinese
  3164. /// \brief 获取编码器频率
  3165. /// \param [in] hCamera 相机的句柄。
  3166. /// \param [out] mul 倍频
  3167. /// \param [out] div 分频
  3168. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3169. /// \~english
  3170. /// \brief Get the frequency of the rotary encoder
  3171. /// \param [in] hCamera Camera handle.
  3172. /// \param [out] mul frequency multiplier
  3173. /// \param [out] div frequency division
  3174. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3175. typedef CameraSdkStatus (__stdcall *_CameraGetRotaryEncFreq)(
  3176. CameraHandle hCamera,
  3177. INT* mul,
  3178. INT* div
  3179. );
  3180. /// @ingroup API_GPIO
  3181. /// \~chinese
  3182. /// \brief 设置输入IO的格式
  3183. /// \param [in] hCamera 相机的句柄。
  3184. /// \param [in] iInputIOIndex IO的索引号,从0开始。
  3185. /// \param [in] iFormat IO格式,参考@link #emCameraGPIOFormat @endlink
  3186. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3187. /// \~english
  3188. /// \brief Set the input IO format
  3189. /// \param [in] hCamera Camera handle.
  3190. /// \param [in] iInputIOIndex IO index, starting from 0.
  3191. /// \param [in] iFormat IO format, reference @link #emCameraGPIOFormat @endlink
  3192. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3193. typedef CameraSdkStatus (__stdcall *_CameraSetInPutIOFormat)(
  3194. CameraHandle hCamera,
  3195. INT iInputIOIndex,
  3196. INT iFormat
  3197. );
  3198. /// @ingroup API_GPIO
  3199. /// \~chinese
  3200. /// \brief 获取输入IO的格式
  3201. /// \param [in] hCamera 相机的句柄。
  3202. /// \param [in] iInputIOIndex IO的索引号,从0开始。
  3203. /// \param [out] piFormat IO格式,参考@link #emCameraGPIOFormat @endlink
  3204. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3205. /// \~english
  3206. /// \brief Get the input IO format
  3207. /// \param [in] hCamera Camera handle.
  3208. /// \param [in] iInputIOIndex IO index, starting from 0.
  3209. /// \param [out] piFormat IO format, reference @link #emCameraGPIOFormat @endlink
  3210. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3211. typedef CameraSdkStatus (__stdcall *_CameraGetInPutIOFormat)(
  3212. CameraHandle hCamera,
  3213. INT iInputIOIndex,
  3214. INT* piFormat
  3215. );
  3216. /// @ingroup API_GPIO
  3217. /// \~chinese
  3218. /// \brief 设置输出IO的格式
  3219. /// \param [in] hCamera 相机的句柄。
  3220. /// \param [in] iOutputIOIndex IO的索引号,从0开始。
  3221. /// \param [in] iFormat IO格式,参考@link #emCameraGPIOFormat @endlink
  3222. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3223. /// \~english
  3224. /// \brief Set the output IO format
  3225. /// \param [in] hCamera Camera handle.
  3226. /// \param [in] iOutputIOIndex IO index, starting from 0.
  3227. /// \param [in] iFormat IO format, reference @link #emCameraGPIOFormat @endlink
  3228. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3229. typedef CameraSdkStatus (__stdcall *_CameraSetOutPutIOFormat)(
  3230. CameraHandle hCamera,
  3231. INT iOutputIOIndex,
  3232. INT iFormat
  3233. );
  3234. /// @ingroup API_GPIO
  3235. /// \~chinese
  3236. /// \brief 获取输出IO的格式
  3237. /// \param [in] hCamera 相机的句柄。
  3238. /// \param [in] iOutputIOIndex IO的索引号,从0开始。
  3239. /// \param [out] piFormat IO格式,参考@link #emCameraGPIOFormat @endlink
  3240. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3241. /// \~english
  3242. /// \brief Get the output IO format
  3243. /// \param [in] hCamera Camera handle.
  3244. /// \param [in] iOutputIOIndex IO index, starting from 0.
  3245. /// \param [out] piFormat IO format, reference @link #emCameraGPIOFormat @endlink
  3246. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3247. typedef CameraSdkStatus (__stdcall *_CameraGetOutPutIOFormat)(
  3248. CameraHandle hCamera,
  3249. INT iOutputIOIndex,
  3250. INT* piFormat
  3251. );
  3252. /// @ingroup API_GPIO
  3253. /// \~chinese
  3254. /// \brief 获取输入IO的格式支持能力
  3255. /// \param [in] hCamera 相机的句柄。
  3256. /// \param [in] iInputIOIndex IO的索引号,从0开始。
  3257. /// \param [out] piCapbility IO格式支持位掩码
  3258. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3259. /// \~english
  3260. /// \brief Get the format support capability of the input IO
  3261. /// \param [in] hCamera Camera handle.
  3262. /// \param [in] iInputIOIndex IO index, starting from 0.
  3263. /// \param [out] piCapbility IO format support bit mask
  3264. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3265. typedef CameraSdkStatus (__stdcall *_CameraGetInPutIOFormatCapbility)(
  3266. CameraHandle hCamera,
  3267. INT iInputIOIndex,
  3268. UINT* piCapbility
  3269. );
  3270. /// @ingroup API_GPIO
  3271. /// \~chinese
  3272. /// \brief 获取输出IO的格式支持能力
  3273. /// \param [in] hCamera 相机的句柄。
  3274. /// \param [in] iOutputIOIndex IO的索引号,从0开始。
  3275. /// \param [out] piCapbility IO格式支持位掩码
  3276. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  3277. /// \~english
  3278. /// \brief Get the format support capability of the output IO
  3279. /// \param [in] hCamera Camera handle.
  3280. /// \param [in] iOutputIOIndex IO index, starting from 0.
  3281. /// \param [out] piCapbility IO format support bit mask
  3282. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3283. typedef CameraSdkStatus (__stdcall *_CameraGetOutPutIOFormatCapbility)(
  3284. CameraHandle hCamera,
  3285. INT iOutputIOIndex,
  3286. UINT* piCapbility
  3287. );
  3288. /******************************************************/
  3289. // 函数名 : CameraSetBayerDecAlgorithm
  3290. // 功能描述 : 设置Bayer数据转彩色的算法。
  3291. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3292. // iIspProcessor 选择执行该算法的对象,参考CameraDefine.h
  3293. // emSdkIspProcessor的定义
  3294. // iAlgorithmSel 要选择的算法编号。从0开始,最大值由tSdkCameraCapbility
  3295. // 中iBayerDecAlmSwDesc和iBayerDecAlmHdDesc决定。
  3296. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3297. // 否则返回非0值的错误码,请参考CameraStatus.h
  3298. // 中错误码的定义。
  3299. /******************************************************/
  3300. typedef CameraSdkStatus (__stdcall *_CameraSetBayerDecAlgorithm)(
  3301. CameraHandle hCamera,
  3302. INT iIspProcessor,
  3303. INT iAlgorithmSel
  3304. );
  3305. /******************************************************/
  3306. // 函数名 : CameraGetBayerDecAlgorithm
  3307. // 功能描述 : 获得Bayer数据转彩色所选择的算法。
  3308. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3309. // iIspProcessor 选择执行该算法的对象,参考CameraDefine.h
  3310. // emSdkIspProcessor的定义
  3311. // piAlgorithmSel 返回当前选择的算法编号。从0开始,最大值由tSdkCameraCapbility
  3312. // 中iBayerDecAlmSwDesc和iBayerDecAlmHdDesc决定。
  3313. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3314. // 否则返回非0值的错误码,请参考CameraStatus.h
  3315. // 中错误码的定义。
  3316. /******************************************************/
  3317. typedef CameraSdkStatus (__stdcall *_CameraGetBayerDecAlgorithm)(
  3318. CameraHandle hCamera,
  3319. INT iIspProcessor,
  3320. INT* piAlgorithmSel
  3321. );
  3322. /******************************************************/
  3323. // 函数名 : CameraSetBlackLevel
  3324. // 功能描述 : 设置图像的黑电平基准,默认值为0
  3325. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3326. // iBlackLevel 要设定的电平值。范围为0到128。
  3327. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3328. // 否则返回非0值的错误码,请参考CameraStatus.h
  3329. // 中错误码的定义。
  3330. /******************************************************/
  3331. typedef CameraSdkStatus (__stdcall *_CameraSetBlackLevel)
  3332. (
  3333. CameraHandle hCamera,
  3334. INT iBlackLevel
  3335. );
  3336. /******************************************************/
  3337. // 函数名 : CameraGetBlackLevel
  3338. // 功能描述 : 获得图像的黑电平基准,默认值为0
  3339. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3340. // piBlackLevel 返回当前的黑电平值。范围为0到128。
  3341. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3342. // 否则返回非0值的错误码,请参考CameraStatus.h
  3343. // 中错误码的定义。
  3344. /******************************************************/
  3345. typedef CameraSdkStatus (__stdcall *_CameraGetBlackLevel)
  3346. (
  3347. CameraHandle hCamera,
  3348. INT* piBlackLevel
  3349. );
  3350. /******************************************************/
  3351. // 函数名 : CameraSetWhiteLevel
  3352. // 功能描述 : 设置图像的白电平基准,默认值为255
  3353. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3354. // iWhiteLevel 要设定的电平值。范围为128到255。
  3355. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3356. // 否则返回非0值的错误码,请参考CameraStatus.h
  3357. // 中错误码的定义。
  3358. /******************************************************/
  3359. typedef CameraSdkStatus (__stdcall *_CameraSetWhiteLevel)
  3360. (
  3361. CameraHandle hCamera,
  3362. INT iWhiteLevel
  3363. );
  3364. /******************************************************/
  3365. // 函数名 : CameraGetWhiteLevel
  3366. // 功能描述 : 获得图像的白电平基准,默认值为255
  3367. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3368. // piWhiteLevel 返回当前的白电平值。范围为128到255。
  3369. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3370. // 否则返回非0值的错误码,请参考CameraStatus.h
  3371. // 中错误码的定义。
  3372. /******************************************************/
  3373. typedef CameraSdkStatus (__stdcall *_CameraGetWhiteLevel)
  3374. (
  3375. CameraHandle hCamera,
  3376. INT* piWhiteLevel
  3377. );
  3378. /******************************************************/
  3379. // 函数名 : CameraSetIspOutFormat
  3380. // 功能描述 : 设置CameraGetImageBuffer函数的图像处理的输出格式,支持
  3381. // CAMERA_MEDIA_TYPE_MONO8和CAMERA_MEDIA_TYPE_RGB8和CAMERA_MEDIA_TYPE_RGBA8
  3382. // (在CameraDefine.h中定义)三种,分别对应8位灰度图像和24、32位彩色图像。
  3383. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3384. // uFormat 要设定格式。CAMERA_MEDIA_TYPE_MONO8或者CAMERA_MEDIA_TYPE_RGB8、CAMERA_MEDIA_TYPE_RGBA8
  3385. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3386. // 否则返回非0值的错误码,请参考CameraStatus.h
  3387. // 中错误码的定义。
  3388. /******************************************************/
  3389. typedef CameraSdkStatus (__stdcall *_CameraSetIspOutFormat)
  3390. (
  3391. CameraHandle hCamera,
  3392. UINT uFormat
  3393. );
  3394. /******************************************************/
  3395. // 函数名 : CameraGetIspOutFormat
  3396. // 功能描述 : 获得CameraGetImageBuffer函数图像处理的输出格式,支持
  3397. // CAMERA_MEDIA_TYPE_MONO8和CAMERA_MEDIA_TYPE_RGB8和CAMERA_MEDIA_TYPE_RGBA8
  3398. // (在CameraDefine.h中定义)三种,分别对应8位灰度图像和24、32位彩色图像。
  3399. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3400. // puFormat 返回当前设定的格式。CAMERA_MEDIA_TYPE_MONO8或者CAMERA_MEDIA_TYPE_RGB8、CAMERA_MEDIA_TYPE_RGBA8
  3401. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3402. // 否则返回非0值的错误码,请参考CameraStatus.h
  3403. // 中错误码的定义。
  3404. /******************************************************/
  3405. typedef CameraSdkStatus (__stdcall *_CameraGetIspOutFormat)
  3406. (
  3407. CameraHandle hCamera,
  3408. UINT* puFormat
  3409. );
  3410. /******************************************************/
  3411. // 函数名 : CameraGetErrorString
  3412. // 功能描述 : 获得错误码对应的描述字符串
  3413. // 参数 : iStatusCode 错误码。(定义于CameraStatus.h中)
  3414. // 返回值 : 成功时,返回错误码对应的字符串首地址;
  3415. // 否则返回NULL。
  3416. /******************************************************/
  3417. typedef char* (__stdcall *_CameraGetErrorString)(
  3418. CameraSdkStatus iStatusCode
  3419. );
  3420. /******************************************************/
  3421. // 函数名 : CameraGetImageBufferEx2
  3422. // 功能描述 : 获得一帧图像数据。该接口获得的图像是经过处理后的RGB格式。该函数调用后,
  3423. // 不需要调用 CameraReleaseImageBuffer 释放,也不要调用free之类的函数释放
  3424. // 来释放该函数返回的图像数据缓冲区。
  3425. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3426. // pImageData 接收图像数据的缓冲区,大小必须和uOutFormat指定的格式相匹配,否则数据会溢出
  3427. // piWidth 整形指针,返回图像的宽度
  3428. // piHeight 整形指针,返回图像的高度
  3429. // wTimes 抓取图像的超时时间。单位毫秒。在
  3430. // wTimes时间内还未获得图像,则该函数
  3431. // 会返回超时信息。
  3432. // 返回值 : 成功时,返回RGB数据缓冲区的首地址;
  3433. // 否则返回0。
  3434. /******************************************************/
  3435. typedef CameraSdkStatus (__stdcall *_CameraGetImageBufferEx2)(
  3436. CameraHandle hCamera,
  3437. BYTE* pImageData,
  3438. UINT uOutFormat,
  3439. int* piWidth,
  3440. int* piHeight,
  3441. UINT wTimes
  3442. );
  3443. /******************************************************/
  3444. // 函数名 : CameraGetImageBufferEx3
  3445. // 功能描述 : 获得一帧图像数据。该接口获得的图像是经过处理后的RGB格式。该函数调用后,
  3446. // 不需要调用 CameraReleaseImageBuffer 释放.
  3447. // uOutFormat 0 : 8 BIT gray 1:rgb24 2:rgba32 3:bgr24 4:bgra32
  3448. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3449. // pImageData 接收图像数据的缓冲区,大小必须和uOutFormat指定的格式相匹配,否则数据会溢出
  3450. // piWidth 整形指针,返回图像的宽度
  3451. // piHeight 整形指针,返回图像的高度
  3452. // puTimeStamp 无符号整形,返回图像时间戳
  3453. // UINT wTimes 抓取图像的超时时间。单位毫秒。在
  3454. // wTimes 时间内还未获得图像,则该函数会返回超时信息。
  3455. // 返回值 : 成功时,返回RGB数据缓冲区的首地址;
  3456. // 否则返回0。
  3457. /******************************************************/
  3458. typedef CameraSdkStatus (__stdcall *_CameraGetImageBufferEx3)(
  3459. CameraHandle hCamera,
  3460. BYTE*pImageData,
  3461. UINT uOutFormat,
  3462. int *piWidth,
  3463. int *piHeight,
  3464. UINT* puTimeStamp,
  3465. UINT wTimes
  3466. );
  3467. /******************************************************/
  3468. // 函数名 : CameraGetCapabilityEx2
  3469. // 功能描述 : 获得该相机的一些特性。
  3470. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3471. // pMaxWidth 返回该相机最大分辨率的宽度
  3472. // pMaxHeight 返回该相机最大分辨率的高度
  3473. // pbColorCamera 返回该相机是否是彩色相机。1表示彩色相机,0表示黑白相机
  3474. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3475. // 否则返回非0值的错误码,请参考CameraStatus.h
  3476. // 中错误码的定义。
  3477. /******************************************************/
  3478. typedef CameraSdkStatus (__stdcall *_CameraGetCapabilityEx2)(
  3479. CameraHandle hCamera,
  3480. int* pMaxWidth,
  3481. int* pMaxHeight,
  3482. int* pbColorCamera
  3483. );
  3484. /******************************************************/
  3485. // 函数名 : CameraReConnect
  3486. // 功能描述 : 重新连接设备,用于USB设备意外掉线后重连
  3487. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3488. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3489. // 否则返回非0值的错误码,请参考CameraStatus.h
  3490. // 中错误码的定义。
  3491. /******************************************************/
  3492. typedef CameraSdkStatus (__stdcall *_CameraReConnect)(
  3493. CameraHandle hCamera
  3494. );
  3495. /******************************************************/
  3496. // 函数名 : CameraConnectTest
  3497. // 功能描述 : 测试相机的连接状态,用于检测相机是否掉线
  3498. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3499. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3500. // 否则返回非0值的错误码,请参考CameraStatus.h
  3501. // 中错误码的定义。
  3502. /******************************************************/
  3503. typedef CameraSdkStatus (__stdcall *_CameraConnectTest)(
  3504. CameraHandle hCamera
  3505. );
  3506. /******************************************************/
  3507. // 函数名 : CameraSetLedEnable
  3508. // 功能描述 : 设置相机的LED使能状态,不带LED的型号,此函数返回错误代码,表示不支持。
  3509. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3510. // index LED灯的索引号,从0开始。如果只有一个可控制亮度的LED,则该参数为0 。
  3511. // enable 使能状态
  3512. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3513. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  3514. /******************************************************/
  3515. typedef CameraSdkStatus (__stdcall *_CameraSetLedEnable)(
  3516. CameraHandle hCamera,
  3517. int index,
  3518. BOOL enable
  3519. );
  3520. /******************************************************/
  3521. // 函数名 : CameraGetLedEnable
  3522. // 功能描述 : 获得相机的LED使能状态,不带LED的型号,此函数返回错误代码,表示不支持。
  3523. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3524. // index LED灯的索引号,从0开始。如果只有一个可控制亮度的LED,则该参数为0 。
  3525. // enable 指针,返回LED使能状态
  3526. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3527. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  3528. /******************************************************/
  3529. typedef CameraSdkStatus (__stdcall *_CameraGetLedEnable)(
  3530. CameraHandle hCamera,
  3531. int index,
  3532. BOOL* enable
  3533. );
  3534. /******************************************************/
  3535. // 函数名 : CameraSetLedOnOff
  3536. // 功能描述 : 设置相机的LED开关状态,不带LED的型号,此函数返回错误代码,表示不支持。
  3537. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3538. // index LED灯的索引号,从0开始。如果只有一个可控制亮度的LED,则该参数为0 。
  3539. // onoff LED开关状态
  3540. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3541. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  3542. /******************************************************/
  3543. typedef CameraSdkStatus (__stdcall *_CameraSetLedOnOff)(
  3544. CameraHandle hCamera,
  3545. int index,
  3546. BOOL onoff
  3547. );
  3548. /******************************************************/
  3549. // 函数名 : CameraGetLedOnOff
  3550. // 功能描述 : 获得相机的LED开关状态,不带LED的型号,此函数返回错误代码,表示不支持。
  3551. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3552. // index LED灯的索引号,从0开始。如果只有一个可控制亮度的LED,则该参数为0 。
  3553. // onoff 指针,返回LED开关状态
  3554. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3555. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  3556. /******************************************************/
  3557. typedef CameraSdkStatus (__stdcall *_CameraGetLedOnOff)(
  3558. CameraHandle hCamera,
  3559. int index,
  3560. BOOL* onoff
  3561. );
  3562. /******************************************************/
  3563. // 函数名 : CameraSetLedDuration
  3564. // 功能描述 : 设置相机的LED持续时间,不带LED的型号,此函数返回错误代码,表示不支持。
  3565. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3566. // index LED灯的索引号,从0开始。如果只有一个可控制亮度的LED,则该参数为0 。
  3567. // duration LED持续时间,单位毫秒
  3568. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3569. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  3570. /******************************************************/
  3571. typedef CameraSdkStatus (__stdcall *_CameraSetLedDuration)(
  3572. CameraHandle hCamera,
  3573. int index,
  3574. UINT duration
  3575. );
  3576. /******************************************************/
  3577. // 函数名 : CameraGetLedDuration
  3578. // 功能描述 : 获得相机的LED持续时间,不带LED的型号,此函数返回错误代码,表示不支持。
  3579. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3580. // index LED灯的索引号,从0开始。如果只有一个可控制亮度的LED,则该参数为0 。
  3581. // duration 指针,返回LED持续时间,单位毫秒
  3582. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3583. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  3584. /******************************************************/
  3585. typedef CameraSdkStatus (__stdcall *_CameraGetLedDuration)(
  3586. CameraHandle hCamera,
  3587. int index,
  3588. UINT* duration
  3589. );
  3590. /******************************************************/
  3591. // 函数名 : CameraSetLedLightless
  3592. // 功能描述 : 设置相机的LED亮度,不带LED的型号,此函数返回错误代码,表示不支持。
  3593. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3594. // index LED灯的索引号,从0开始。如果只有一个可控制亮度的LED,则该参数为0 。
  3595. // uLightless LED亮度值,范围0到255. 0表示关闭,255最亮。
  3596. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3597. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  3598. /******************************************************/
  3599. typedef CameraSdkStatus (__stdcall *_CameraSetLedBrightness)(
  3600. CameraHandle hCamera,
  3601. int index,
  3602. UINT uLightless
  3603. );
  3604. /******************************************************/
  3605. // 函数名 : CameraGetLedLightless
  3606. // 功能描述 : 获得相机的LED亮度,不带LED的型号,此函数返回错误代码,表示不支持。
  3607. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3608. // index LED灯的索引号,从0开始。如果只有一个可控制亮度的LED,则该参数为0 。
  3609. // uLightless 指针,返回LED亮度值,范围0到255. 0表示关闭,255最亮。
  3610. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3611. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  3612. /******************************************************/
  3613. typedef CameraSdkStatus (__stdcall *_CameraGetLedBrightness)(
  3614. CameraHandle hCamera,
  3615. int index,
  3616. UINT* uLightless
  3617. );
  3618. /******************************************************/
  3619. // 函数名 : CameraEnableTransferRoi
  3620. // 功能描述 : 使能或者禁止相机的多区域传输功能,不带该功能的型号,此函数返回错误代码,表示不支持。
  3621. // 该功能主要用于在相机端将采集的整幅画面切分,只传输指定的多个区域,以提高传输帧率。
  3622. // 多个区域传输到PC上后,会自动拼接成整幅画面,没有被传输的部分,会用黑色填充。
  3623. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3624. // index ROI区域的索引号,从0开始。
  3625. // uEnableMask 区域使能状态掩码,对应的比特位为1表示使能。0为禁止。目前SDK支持4个可编辑区域,index范围为0到3,即bit0 ,bit1,bit2,bit3控制4个区域的使能状态。
  3626. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3627. // 对于不支持多区域ROI传输的型号,该函数会返回 CAMERA_STATUS_NOT_SUPPORTED(-4) 表示不支持
  3628. // 其它非0值,参考CameraStatus.h中错误码的定义。
  3629. /******************************************************/
  3630. typedef CameraSdkStatus (__stdcall *_CameraEnableTransferRoi)(
  3631. CameraHandle hCamera,
  3632. UINT uEnableMask
  3633. );
  3634. /******************************************************/
  3635. // 函数名 : CameraSetTransferRoi
  3636. // 功能描述 : 设置相机传输的裁剪区域。在相机端,图像从传感器上被采集后,将会被裁剪成指定的区域来传送,此函数返回错误代码,表示不支持。
  3637. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3638. // index ROI区域的索引号,从0开始。
  3639. // X1,Y1 ROI区域的左上角坐标
  3640. // X2,Y2 ROI区域的右上角坐标
  3641. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3642. // 对于不支持多区域ROI传输的型号,该函数会返回 CAMERA_STATUS_NOT_SUPPORTED(-4) 表示不支持
  3643. // 其它非0值,参考CameraStatus.h中错误码的定义。
  3644. /******************************************************/
  3645. typedef CameraSdkStatus (__stdcall *_CameraSetTransferRoi)(
  3646. CameraHandle hCamera,
  3647. int index,
  3648. UINT X1,
  3649. UINT Y1,
  3650. UINT X2,
  3651. UINT Y2
  3652. );
  3653. /******************************************************/
  3654. // 函数名 : CameraGetTransferRoi
  3655. // 功能描述 : 设置相机传输的裁剪区域。在相机端,图像从传感器上被采集后,将会被裁剪成指定的区域来传送,此函数返回错误代码,表示不支持。
  3656. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3657. // index ROI区域的索引号,从0开始。
  3658. // pX1,pY1 ROI区域的左上角坐标
  3659. // pX2,pY2 ROI区域的右上角坐标
  3660. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3661. // 对于不支持多区域ROI传输的型号,该函数会返回 CAMERA_STATUS_NOT_SUPPORTED(-4) 表示不支持
  3662. // 其它非0值,参考CameraStatus.h中错误码的定义。
  3663. /******************************************************/
  3664. typedef CameraSdkStatus (__stdcall *_CameraGetTransferRoi)(
  3665. CameraHandle hCamera,
  3666. int index,
  3667. UINT* pX1,
  3668. UINT* pY1,
  3669. UINT* pX2,
  3670. UINT* pY2
  3671. );
  3672. /******************************************************/
  3673. // 函数名 : CameraAlignMalloc
  3674. // 功能描述 : 申请一段对齐的内存空间。功能和malloc类似,但
  3675. // 是返回的内存是以align指定的字节数对齐的。
  3676. // 参数 : size 空间的大小。
  3677. // align 地址对齐的字节数。
  3678. // 返回值 : 成功时,返回非0值,表示内存首地址。失败返回NULL。
  3679. /******************************************************/
  3680. typedef BYTE* (__stdcall *_CameraAlignMalloc)(
  3681. int size,
  3682. int align
  3683. );
  3684. /******************************************************/
  3685. // 函数名 : CameraAlignFree
  3686. // 功能描述 : 释放由CameraAlignMalloc函数申请的内存空间。
  3687. // 参数 : membuffer 由CameraAlignMalloc返回的内存首地址。
  3688. // 返回值 : 无。
  3689. /******************************************************/
  3690. typedef void (__stdcall *_CameraAlignFree)(
  3691. BYTE* membuffer
  3692. );
  3693. /******************************************************/
  3694. // 函数名 : CameraSetAutoConnect
  3695. // 功能描述 : 设置自动使能重连
  3696. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3697. // bEnable 使能相机重连,当位TRUE时,SDK内部自动检测相机是否掉线,掉线后自己重连。
  3698. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3699. // 对于不支持的型号,该函数会返回 CAMERA_STATUS_NOT_SUPPORTED(-4) 表示不支持
  3700. // 其它非0值,参考CameraStatus.h中错误码的定义。
  3701. /******************************************************/
  3702. typedef CameraSdkStatus (__stdcall *_CameraSetAutoConnect)(
  3703. CameraHandle hCamera,
  3704. BOOL bEnable
  3705. );
  3706. /******************************************************/
  3707. // 函数名 : CameraGetAutoConnect
  3708. // 功能描述 : 获取自动重连使能
  3709. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3710. // pbEnable 返回相机重连使能
  3711. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3712. // 对于不支持的型号,该函数会返回 CAMERA_STATUS_NOT_SUPPORTED(-4) 表示不支持
  3713. // 其它非0值,参考CameraStatus.h中错误码的定义。
  3714. /******************************************************/
  3715. typedef CameraSdkStatus (__stdcall *_CameraGetAutoConnect)(CameraHandle hCamera,BOOL *pbEnable);
  3716. /******************************************************/
  3717. // 函数名 : CameraGetReConnectCounts
  3718. // 功能描述 : 获得相机自动重连的次数,前提是CameraSetAutoConnect 使能相机自动重连功能。默认是使能的。
  3719. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3720. // puCounts 返回掉线自动重连的次数
  3721. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3722. // 对于不支持的型号,该函数会返回 CAMERA_STATUS_NOT_SUPPORTED(-4) 表示不支持
  3723. // 其它非0值,参考CameraStatus.h中错误码的定义。
  3724. /******************************************************/
  3725. typedef CameraSdkStatus (__stdcall *_CameraGetReConnectCounts)(
  3726. CameraHandle hCamera,
  3727. UINT* puCounts
  3728. );
  3729. /******************************************************/
  3730. // 函数名 : CameraSetSingleGrabMode
  3731. // 功能描述 : 使能单帧抓取模式
  3732. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3733. // bEnable 使能单帧抓取模式
  3734. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3735. // 对于不支持的型号,该函数会返回 CAMERA_STATUS_NOT_SUPPORTED(-4) 表示不支持
  3736. // 其它非0值,参考CameraStatus.h中错误码的定义。
  3737. /******************************************************/
  3738. typedef CameraSdkStatus (__stdcall *_CameraSetSingleGrabMode)(CameraHandle hCamera, BOOL bEnable);
  3739. /******************************************************/
  3740. // 函数名 : CameraGetSingleGrabMode
  3741. // 功能描述 : 获得相机的单帧抓取模式
  3742. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3743. // pbEnable 返回相机的单帧抓取模式
  3744. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3745. // 对于不支持的型号,该函数会返回 CAMERA_STATUS_NOT_SUPPORTED(-4) 表示不支持
  3746. // 其它非0值,参考CameraStatus.h中错误码的定义。
  3747. /******************************************************/
  3748. typedef CameraSdkStatus (__stdcall *_CameraGetSingleGrabMode)(CameraHandle hCamera, BOOL* pbEnable);
  3749. /******************************************************/
  3750. // 函数名 : CameraRestartGrab
  3751. // 功能描述 : 当相机处于单帧抓取模式时,每当成功抓取到一帧后SDK会进入暂停状态,调用此函数可使SDK退出暂停状态并开始抓取下一帧
  3752. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3753. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  3754. // 对于不支持的型号,该函数会返回 CAMERA_STATUS_NOT_SUPPORTED(-4) 表示不支持
  3755. // 其它非0值,参考CameraStatus.h中错误码的定义。
  3756. /******************************************************/
  3757. typedef CameraSdkStatus (__stdcall *_CameraRestartGrab)(CameraHandle hCamera);
  3758. /******************************************************/
  3759. // 函数名 : CameraDrawText
  3760. // 功能描述 : 在输入的图像数据中绘制文字
  3761. // 参数 : pRgbBuffer 图像数据缓冲区
  3762. // pFrInfo 图像的帧头信息
  3763. // pFontFileName 字体文件名
  3764. // FontWidth 字体宽度
  3765. // FontHeight 字体高度
  3766. // pText 要输出的文字
  3767. // (Left, Top, Width, Height) 文字的输出矩形
  3768. // TextColor 文字颜色RGB
  3769. // uFlags 输出标志,详见emCameraDrawTextFlags中的定义
  3770. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3771. // 否则返回非0值的错误码,请参考CameraStatus.h
  3772. // 中错误码的定义。
  3773. /******************************************************/
  3774. typedef CameraSdkStatus (__stdcall *_CameraDrawText)(
  3775. BYTE* pRgbBuffer,
  3776. tSdkFrameHead* pFrInfo,
  3777. char const* pFontFileName,
  3778. UINT FontWidth,
  3779. UINT FontHeight,
  3780. char const* pText,
  3781. INT Left,
  3782. INT Top,
  3783. UINT Width,
  3784. UINT Height,
  3785. UINT TextColor,
  3786. UINT uFlags
  3787. );
  3788. /// @ingroup API_ENUM
  3789. /// \~chinese
  3790. /// \brief 从指定IP枚举GIGE设备,并建立设备列表(适用于相机和电脑不在同一网段的情况)
  3791. /// \param [in] ppIpList 目标IP
  3792. /// \param [in] numIp 目标IP个数
  3793. /// \param [out] pCameraList 设备列表数组指针
  3794. /// \param [inout] piNums 设备的个数指针,调用时传入pCameraList数组的元素个数,函数返回时,保存实际找到的设备个数
  3795. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义
  3796. /// \warning piNums指向的值必须初始化,且不超过pCameraList数组元素个数,否则有可能造成内存溢出
  3797. /// \note 返回的相机信息列表,会根据acFriendlyName排序的。例如可以将两个相机分别改为“Camera1”和“Camera2”的名字后,名字为“Camera1”的相机会排前面,名为“Camera2”的相机排后面。
  3798. /// \~english
  3799. /// \brief Enumerates GIGE devices from the specified IP and builds a device list (applicable when the camera and computer are not on the same network segment)
  3800. /// \param [in] ppIpList target IP
  3801. /// \param [in] numIp number of target IPs
  3802. /// \param [out] pCameraList Device list array pointer
  3803. /// \param [inout] piNums The number of pointers to the device, the number of elements passed to the pCameraList array at the time of the call. When the function returns, the number of devices actually found is saved.
  3804. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  3805. /// \warning piNums The value pointed to must be initialized and does not exceed the number of pCameraList array elements, otherwise it may cause memory overflow
  3806. /// \note The list of returned camera information will be sorted according to acFriendlyName. For example, after changing the two cameras to the names of "Camera1" and "Camera2," the camera named "Camera1" will be in front, and the camera named "Camera2" will be behind the row.
  3807. typedef CameraSdkStatus (__stdcall *_CameraGigeEnumerateDevice)(
  3808. char const** ppIpList,
  3809. int numIp,
  3810. tSdkCameraDevInfo* pCameraList,
  3811. int* piNums
  3812. );
  3813. /******************************************************/
  3814. // 函数名 : CameraGigeGetIp
  3815. // 功能描述 : 获取GIGE相机的IP地址
  3816. // 参数 : pCameraInfo 相机的设备描述信息,可由CameraEnumerateDevice函数获得。
  3817. // CamIp 相机IP(注意:必须保证传入的缓冲区大于等于16字节)
  3818. // CamMask 相机子网掩码(注意:必须保证传入的缓冲区大于等于16字节)
  3819. // CamGateWay 相机网关(注意:必须保证传入的缓冲区大于等于16字节)
  3820. // EtIp 网卡IP(注意:必须保证传入的缓冲区大于等于16字节)
  3821. // EtMask 网卡子网掩码(注意:必须保证传入的缓冲区大于等于16字节)
  3822. // EtGateWay 网卡网关(注意:必须保证传入的缓冲区大于等于16字节)
  3823. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3824. // 否则返回非0值的错误码,请参考CameraStatus.h
  3825. // 中错误码的定义。
  3826. /******************************************************/
  3827. typedef CameraSdkStatus (__stdcall *_CameraGigeGetIp)(
  3828. tSdkCameraDevInfo* pCameraInfo,
  3829. char* CamIp,
  3830. char* CamMask,
  3831. char* CamGateWay,
  3832. char* EtIp,
  3833. char* EtMask,
  3834. char* EtGateWay
  3835. );
  3836. /******************************************************/
  3837. // 函数名 : CameraGigeSetIp
  3838. // 功能描述 : 设置GIGE相机的IP地址
  3839. // 参数 : pCameraInfo 相机的设备描述信息,可由CameraEnumerateDevice函数获得。
  3840. // Ip 相机IP(如:192.168.1.100)
  3841. // SubMask 相机子网掩码(如:255.255.255.0)
  3842. // GateWay 相机网关(如:192.168.1.1)
  3843. // bPersistent TRUE: 设置相机为固定IP,FALSE:设置相机自动分配IP(忽略参数Ip, SubMask, GateWay)
  3844. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3845. // 否则返回非0值的错误码,请参考CameraStatus.h
  3846. // 中错误码的定义。
  3847. /******************************************************/
  3848. typedef CameraSdkStatus (__stdcall *_CameraGigeSetIp)(
  3849. tSdkCameraDevInfo* pCameraInfo,
  3850. char const* Ip,
  3851. char const* SubMask,
  3852. char const* GateWay,
  3853. BOOL bPersistent
  3854. );
  3855. /******************************************************/
  3856. // 函数名 : CameraGigeGetMac
  3857. // 功能描述 : 获取GIGE相机的MAC地址
  3858. // 参数 : pCameraInfo 相机的设备描述信息,可由CameraEnumerateDevice函数获得。
  3859. // CamMac 相机MAC(注意:必须保证传入的缓冲区大于等于18字节)
  3860. // EtMac 网卡MAC(注意:必须保证传入的缓冲区大于等于18字节)
  3861. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3862. // 否则返回非0值的错误码,请参考CameraStatus.h
  3863. // 中错误码的定义。
  3864. /******************************************************/
  3865. typedef CameraSdkStatus (__stdcall *_CameraGigeGetMac)(
  3866. tSdkCameraDevInfo* pCameraInfo,
  3867. char* CamMac,
  3868. char* EtMac
  3869. );
  3870. /******************************************************/
  3871. // 函数名 : CameraEnableFastResponse
  3872. // 功能描述 : 使能快速响应
  3873. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3874. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3875. // 否则返回非0值的错误码,请参考CameraStatus.h
  3876. // 中错误码的定义。
  3877. /******************************************************/
  3878. typedef CameraSdkStatus (__stdcall *_CameraEnableFastResponse)(
  3879. CameraHandle hCamera
  3880. );
  3881. /******************************************************/
  3882. // 函数名 : CameraSetCorrectDeadPixel
  3883. // 功能描述 : 使能坏点修正
  3884. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3885. // bEnable TRUE: 使能坏点修正 FALSE: 关闭坏点修正
  3886. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3887. // 否则返回非0值的错误码,请参考CameraStatus.h
  3888. // 中错误码的定义。
  3889. /******************************************************/
  3890. typedef CameraSdkStatus (__stdcall *_CameraSetCorrectDeadPixel)(
  3891. CameraHandle hCamera,
  3892. BOOL bEnable
  3893. );
  3894. /******************************************************/
  3895. // 函数名 : CameraGetCorrectDeadPixel
  3896. // 功能描述 : 获取坏点修正使能状态
  3897. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3898. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3899. // 否则返回非0值的错误码,请参考CameraStatus.h
  3900. // 中错误码的定义。
  3901. /******************************************************/
  3902. typedef CameraSdkStatus (__stdcall *_CameraGetCorrectDeadPixel)(
  3903. CameraHandle hCamera,
  3904. BOOL* pbEnable
  3905. );
  3906. /******************************************************/
  3907. // 函数名 : CameraFlatFieldingCorrectSetEnable
  3908. // 功能描述 : 使能平场校正
  3909. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3910. // bEnable TRUE: 使能平场校正 FALSE: 关闭平场校正
  3911. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3912. // 否则返回非0值的错误码,请参考CameraStatus.h
  3913. // 中错误码的定义。
  3914. /******************************************************/
  3915. typedef CameraSdkStatus (__stdcall *_CameraFlatFieldingCorrectSetEnable)(
  3916. CameraHandle hCamera,
  3917. BOOL bEnable
  3918. );
  3919. /******************************************************/
  3920. // 函数名 : CameraFlatFieldingCorrectGetEnable
  3921. // 功能描述 : 获取平场校正使能状态
  3922. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3923. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3924. // 否则返回非0值的错误码,请参考CameraStatus.h
  3925. // 中错误码的定义。
  3926. /******************************************************/
  3927. typedef CameraSdkStatus (__stdcall *_CameraFlatFieldingCorrectGetEnable)(
  3928. CameraHandle hCamera,
  3929. BOOL* pbEnable
  3930. );
  3931. /******************************************************/
  3932. // 函数名 : CameraFlatFieldingCorrectSetParameter
  3933. // 功能描述 : 设置平场校正参数
  3934. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3935. // pDarkFieldingImage 暗场图片
  3936. // pDarkFieldingFrInfo 暗场图片信息
  3937. // pLightFieldingImage 明场图片
  3938. // pLightFieldingFrInfo 明场图片信息
  3939. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3940. // 否则返回非0值的错误码,请参考CameraStatus.h
  3941. // 中错误码的定义。
  3942. /******************************************************/
  3943. typedef CameraSdkStatus (__stdcall *_CameraFlatFieldingCorrectSetParameter)(
  3944. CameraHandle hCamera,
  3945. BYTE const* pDarkFieldingImage,
  3946. tSdkFrameHead const* pDarkFieldingFrInfo,
  3947. BYTE const* pLightFieldingImage,
  3948. tSdkFrameHead const* pLightFieldingFrInfo
  3949. );
  3950. /******************************************************/
  3951. // 函数名 : CameraFlatFieldingCorrectSaveParameterToFile
  3952. // 功能描述 : 保存平场校正参数到文件
  3953. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3954. // pszFileName 文件路径
  3955. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3956. // 否则返回非0值的错误码,请参考CameraStatus.h
  3957. // 中错误码的定义。
  3958. /******************************************************/
  3959. typedef CameraSdkStatus (__stdcall *_CameraFlatFieldingCorrectSaveParameterToFile)(
  3960. CameraHandle hCamera,
  3961. char const* pszFileName
  3962. );
  3963. /******************************************************/
  3964. // 函数名 : CameraFlatFieldingCorrectLoadParameterFromFile
  3965. // 功能描述 : 从文件中加载平场校正参数
  3966. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3967. // pszFileName 文件路径
  3968. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3969. // 否则返回非0值的错误码,请参考CameraStatus.h
  3970. // 中错误码的定义。
  3971. /******************************************************/
  3972. typedef CameraSdkStatus (__stdcall *_CameraFlatFieldingCorrectLoadParameterFromFile)(
  3973. CameraHandle hCamera,
  3974. char const* pszFileName
  3975. );
  3976. /******************************************************/
  3977. // 函数名 : CameraCommonCall
  3978. // 功能描述 : 相机的一些特殊功能调用,二次开发时一般不需要调用。
  3979. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3980. // pszCall 功能及参数
  3981. // pszResult 调用结果,不同的pszCall时,意义不同。
  3982. // uResultBufSize pszResult指向的缓冲区的字节大小
  3983. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  3984. // 否则返回非0值的错误码,请参考CameraStatus.h
  3985. // 中错误码的定义。
  3986. /******************************************************/
  3987. typedef CameraSdkStatus (__stdcall *_CameraCommonCall)(
  3988. CameraHandle hCamera,
  3989. char const* pszCall,
  3990. char* pszResult,
  3991. UINT uResultBufSize
  3992. );
  3993. /******************************************************/
  3994. // 函数名 : CameraSetDenoise3DParams
  3995. // 功能描述 : 设置3D降噪参数
  3996. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  3997. // bEnable 启用或禁用
  3998. // nCount 使用几张图片进行降噪(2-8张)
  3999. // Weights 降噪权重
  4000. // 如当使用3张图片进行降噪则这个参数可以传入3个浮点(0.3,0.3,0.4),最后一张图片的权重大于前2张
  4001. // 如果不需要使用权重,则把这个参数传入0,表示所有图片的权重相同(0.33,0.33,0.33)
  4002. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4003. // 否则返回非0值的错误码,请参考CameraStatus.h
  4004. // 中错误码的定义。
  4005. /******************************************************/
  4006. typedef CameraSdkStatus (__stdcall *_CameraSetDenoise3DParams)(
  4007. CameraHandle hCamera,
  4008. BOOL bEnable,
  4009. int nCount,
  4010. float *Weights
  4011. );
  4012. /******************************************************/
  4013. // 函数名 : CameraGetDenoise3DParams
  4014. // 功能描述 : 获取当前的3D降噪参数
  4015. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4016. // bEnable 启用或禁用
  4017. // nCount 使用了几张图片进行降噪
  4018. // bUseWeight 是否使用了降噪权重
  4019. // Weights 降噪权重
  4020. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4021. // 否则返回非0值的错误码,请参考CameraStatus.h
  4022. // 中错误码的定义。
  4023. /******************************************************/
  4024. typedef CameraSdkStatus (__stdcall *_CameraGetDenoise3DParams)(
  4025. CameraHandle hCamera,
  4026. BOOL *bEnable,
  4027. int *nCount,
  4028. BOOL *bUseWeight,
  4029. float *Weights
  4030. );
  4031. /******************************************************/
  4032. // 函数名 : CameraManualDenoise3D
  4033. // 功能描述 : 对一组帧进行一次降噪处理
  4034. // 参数 : InFramesHead 输入帧头
  4035. // InFramesData 输入帧数据
  4036. // nCount 输入帧的数量
  4037. // Weights 降噪权重
  4038. // 如当使用3张图片进行降噪则这个参数可以传入3个浮点(0.3,0.3,0.4),最后一张图片的权重大于前2张
  4039. // 如果不需要使用权重,则把这个参数传入0,表示所有图片的权重相同(0.33,0.33,0.33)
  4040. // OutFrameHead 输出帧头
  4041. // OutFrameData 输出帧数据
  4042. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4043. // 否则返回非0值的错误码,请参考CameraStatus.h
  4044. // 中错误码的定义。
  4045. /******************************************************/
  4046. typedef CameraSdkStatus (__stdcall *_CameraManualDenoise3D)(
  4047. tSdkFrameHead *InFramesHead,
  4048. BYTE **InFramesData,
  4049. int nCount,
  4050. float *Weights,
  4051. tSdkFrameHead *OutFrameHead,
  4052. BYTE *OutFrameData
  4053. );
  4054. /******************************************************/
  4055. // 函数名 : CameraCustomizeDeadPixels
  4056. // 功能描述 : 打开坏点编辑面板
  4057. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4058. // hParent 调用该函数的窗口的句柄。可以为NULL。
  4059. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4060. // 否则返回非0值的错误码,请参考CameraStatus.h
  4061. // 中错误码的定义。
  4062. /******************************************************/
  4063. typedef CameraSdkStatus (__stdcall *_CameraCustomizeDeadPixels)(
  4064. CameraHandle hCamera,
  4065. HWND hParent
  4066. );
  4067. /******************************************************/
  4068. // 函数名 : CameraReadDeadPixels
  4069. // 功能描述 : 读取相机坏点
  4070. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4071. // pRows 坏点y坐标
  4072. // pCols 坏点x坐标
  4073. // pNumPixel 输入时表示行列缓冲区的大小,返回时表示行列缓冲区中返回的坏点数量。
  4074. // 当pRows或者pCols为NULL时函数会把相机当前的坏点个数通过pNumPixel返回
  4075. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4076. // 否则返回非0值的错误码,请参考CameraStatus.h
  4077. // 中错误码的定义。
  4078. /******************************************************/
  4079. typedef CameraSdkStatus (__stdcall *_CameraReadDeadPixels)(
  4080. CameraHandle hCamera,
  4081. USHORT* pRows,
  4082. USHORT* pCols,
  4083. UINT* pNumPixel
  4084. );
  4085. /******************************************************/
  4086. // 函数名 : CameraAddDeadPixels
  4087. // 功能描述 : 添加相机坏点
  4088. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4089. // pRows 坏点y坐标
  4090. // pCols 坏点x坐标
  4091. // NumPixel 行列缓冲区中的坏点个数
  4092. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4093. // 否则返回非0值的错误码,请参考CameraStatus.h
  4094. // 中错误码的定义。
  4095. /******************************************************/
  4096. typedef CameraSdkStatus (__stdcall *_CameraAddDeadPixels)(
  4097. CameraHandle hCamera,
  4098. USHORT* pRows,
  4099. USHORT* pCols,
  4100. UINT NumPixel
  4101. );
  4102. /******************************************************/
  4103. // 函数名 : CameraRemoveDeadPixels
  4104. // 功能描述 : 删除相机指定坏点
  4105. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4106. // pRows 坏点y坐标
  4107. // pCols 坏点x坐标
  4108. // NumPixel 行列缓冲区中的坏点个数
  4109. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4110. // 否则返回非0值的错误码,请参考CameraStatus.h
  4111. // 中错误码的定义。
  4112. /******************************************************/
  4113. typedef CameraSdkStatus (__stdcall *_CameraRemoveDeadPixels)(
  4114. CameraHandle hCamera,
  4115. USHORT* pRows,
  4116. USHORT* pCols,
  4117. UINT NumPixel
  4118. );
  4119. /******************************************************/
  4120. // 函数名 : CameraRemoveAllDeadPixels
  4121. // 功能描述 : 删除相机的所有坏点
  4122. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4123. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4124. // 否则返回非0值的错误码,请参考CameraStatus.h
  4125. // 中错误码的定义。
  4126. /******************************************************/
  4127. typedef CameraSdkStatus (__stdcall *_CameraRemoveAllDeadPixels)(
  4128. CameraHandle hCamera
  4129. );
  4130. /******************************************************/
  4131. // 函数名 : CameraSaveDeadPixels
  4132. // 功能描述 : 保存相机坏点到相机存储中
  4133. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4134. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4135. // 否则返回非0值的错误码,请参考CameraStatus.h
  4136. // 中错误码的定义。
  4137. /******************************************************/
  4138. typedef CameraSdkStatus (__stdcall *_CameraSaveDeadPixels)(
  4139. CameraHandle hCamera
  4140. );
  4141. /******************************************************/
  4142. // 函数名 : CameraSaveDeadPixelsToFile
  4143. // 功能描述 : 保存相机坏点到文件中
  4144. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4145. // sFileName 坏点文件的完整路径。
  4146. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4147. // 否则返回非0值的错误码,请参考CameraStatus.h
  4148. // 中错误码的定义。
  4149. /******************************************************/
  4150. typedef CameraSdkStatus (__stdcall *_CameraSaveDeadPixelsToFile)(
  4151. CameraHandle hCamera,
  4152. char const* sFileName
  4153. );
  4154. /******************************************************/
  4155. // 函数名 : CameraLoadDeadPixelsFromFile
  4156. // 功能描述 : 从文件加载相机坏点
  4157. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4158. // sFileName 坏点文件的完整路径。
  4159. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4160. // 否则返回非0值的错误码,请参考CameraStatus.h
  4161. // 中错误码的定义。
  4162. /******************************************************/
  4163. typedef CameraSdkStatus (__stdcall *_CameraLoadDeadPixelsFromFile)(
  4164. CameraHandle hCamera,
  4165. char const* sFileName
  4166. );
  4167. /******************************************************/
  4168. // 函数名 : CameraGetImageBufferPriority
  4169. // 功能描述 : 获得一帧图像数据。为了提高效率,SDK在图像抓取时采用了零拷贝机制,
  4170. // CameraGetImageBuffer实际获得是内核中的一个缓冲区地址,
  4171. // 该函数成功调用后,必须调用CameraReleaseImageBuffer释放由
  4172. // CameraGetImageBuffer得到的缓冲区,以便让内核继续使用
  4173. // 该缓冲区。
  4174. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4175. // pFrameInfo 图像的帧头信息指针。
  4176. // pbyBuffer 指向图像的数据的缓冲区指针。由于
  4177. // 采用了零拷贝机制来提高效率,因此
  4178. // 这里使用了一个指向指针的指针。
  4179. // wTimes 抓取图像的超时时间。单位毫秒。在
  4180. // wTimes时间内还未获得图像,则该函数
  4181. // 会返回超时信息。
  4182. // Priority 取图优先级 详见:emCameraGetImagePriority
  4183. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4184. // 否则返回非0值的错误码,请参考CameraStatus.h
  4185. // 中错误码的定义。
  4186. /******************************************************/
  4187. typedef CameraSdkStatus (__stdcall *_CameraGetImageBufferPriority)(
  4188. CameraHandle hCamera,
  4189. tSdkFrameHead* pFrameInfo,
  4190. BYTE** pbyBuffer,
  4191. UINT wTimes,
  4192. UINT Priority
  4193. );
  4194. /******************************************************/
  4195. // 函数名 : CameraGetImageBufferPriorityEx
  4196. // 功能描述 : 获得一帧图像数据。该接口获得的图像是经过处理后的RGB格式。该函数调用后,
  4197. // 不需要调用 CameraReleaseImageBuffer 释放,也不要调用free之类的函数释放
  4198. // 来释放该函数返回的图像数据缓冲区。
  4199. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4200. // piWidth 整形指针,返回图像的宽度
  4201. // piHeight 整形指针,返回图像的高度
  4202. // UINT wTimes 抓取图像的超时时间。单位毫秒。在
  4203. // wTimes时间内还未获得图像,则该函数
  4204. // 会返回超时信息。
  4205. // Priority 取图优先级 详见:emCameraGetImagePriority
  4206. // 返回值 : 成功时,返回RGB数据缓冲区的首地址;
  4207. // 否则返回0。
  4208. /******************************************************/
  4209. typedef unsigned char* (__stdcall *_CameraGetImageBufferPriorityEx)(
  4210. CameraHandle hCamera,
  4211. INT* piWidth,
  4212. INT* piHeight,
  4213. UINT wTimes,
  4214. UINT Priority
  4215. );
  4216. /******************************************************/
  4217. // 函数名 : CameraGetImageBufferPriorityEx2
  4218. // 功能描述 : 获得一帧图像数据。该接口获得的图像是经过处理后的RGB格式。该函数调用后,
  4219. // 不需要调用 CameraReleaseImageBuffer 释放,也不要调用free之类的函数释放
  4220. // 来释放该函数返回的图像数据缓冲区。
  4221. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4222. // pImageData 接收图像数据的缓冲区,大小必须和uOutFormat指定的格式相匹配,否则数据会溢出
  4223. // piWidth 整形指针,返回图像的宽度
  4224. // piHeight 整形指针,返回图像的高度
  4225. // wTimes 抓取图像的超时时间。单位毫秒。在
  4226. // wTimes时间内还未获得图像,则该函数
  4227. // 会返回超时信息。
  4228. // Priority 取图优先级 详见:emCameraGetImagePriority
  4229. // 返回值 : 成功时,返回RGB数据缓冲区的首地址;
  4230. // 否则返回0。
  4231. /******************************************************/
  4232. typedef CameraSdkStatus (__stdcall *_CameraGetImageBufferPriorityEx2)(
  4233. CameraHandle hCamera,
  4234. BYTE* pImageData,
  4235. UINT uOutFormat,
  4236. int* piWidth,
  4237. int* piHeight,
  4238. UINT wTimes,
  4239. UINT Priority
  4240. );
  4241. /******************************************************/
  4242. // 函数名 : CameraGetImageBufferPriorityEx3
  4243. // 功能描述 : 获得一帧图像数据。该接口获得的图像是经过处理后的RGB格式。该函数调用后,
  4244. // 不需要调用 CameraReleaseImageBuffer 释放.
  4245. // uOutFormat 0 : 8 BIT gray 1:rgb24 2:rgba32 3:bgr24 4:bgra32
  4246. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4247. // pImageData 接收图像数据的缓冲区,大小必须和uOutFormat指定的格式相匹配,否则数据会溢出
  4248. // piWidth 整形指针,返回图像的宽度
  4249. // piHeight 整形指针,返回图像的高度
  4250. // puTimeStamp 无符号整形,返回图像时间戳
  4251. // UINT wTimes 抓取图像的超时时间。单位毫秒。在
  4252. // wTimes 时间内还未获得图像,则该函数会返回超时信息。
  4253. // Priority 取图优先级 详见:emCameraGetImagePriority
  4254. // 返回值 : 成功时,返回RGB数据缓冲区的首地址;
  4255. // 否则返回0。
  4256. /******************************************************/
  4257. typedef CameraSdkStatus (__stdcall *_CameraGetImageBufferPriorityEx3)(
  4258. CameraHandle hCamera,
  4259. BYTE*pImageData,
  4260. UINT uOutFormat,
  4261. int *piWidth,
  4262. int *piHeight,
  4263. UINT* puTimeStamp,
  4264. UINT wTimes,
  4265. UINT Priority
  4266. );
  4267. /******************************************************/
  4268. // 函数名 : CameraClearBuffer
  4269. // 功能描述 : 清空相机内已缓存的所有帧
  4270. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4271. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4272. // 否则返回非0值的错误码,请参考CameraStatus.h
  4273. // 中错误码的定义。
  4274. /******************************************************/
  4275. typedef CameraSdkStatus (__stdcall *_CameraClearBuffer)(
  4276. CameraHandle hCamera
  4277. );
  4278. /******************************************************/
  4279. // 函数名 : CameraSoftTriggerEx
  4280. // 功能描述 : 执行一次软触发。执行后,会触发由CameraSetTriggerCount
  4281. // 指定的帧数。
  4282. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4283. // uFlags 功能标志,详见emCameraSoftTriggerExFlags中的定义
  4284. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4285. // 否则返回非0值的错误码,请参考CameraStatus.h
  4286. // 中错误码的定义。
  4287. /******************************************************/
  4288. typedef CameraSdkStatus (__stdcall *_CameraSoftTriggerEx)(
  4289. CameraHandle hCamera,
  4290. UINT uFlags
  4291. );
  4292. /******************************************************/
  4293. // 函数名 : CameraSetHDR
  4294. // 功能描述 : 设置相机的HDR,需要相机支持,不带HDR功能的型号,此函数返回错误代码,表示不支持。
  4295. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4296. // value HDR系数,范围0.0到1.0
  4297. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  4298. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  4299. /******************************************************/
  4300. typedef CameraSdkStatus (__stdcall *_CameraSetHDR)(
  4301. CameraHandle hCamera,
  4302. float value
  4303. );
  4304. /******************************************************/
  4305. // 函数名 : CameraGetHDR
  4306. // 功能描述 : 获取相机的HDR,需要相机支持,不带HDR功能的型号,此函数返回错误代码,表示不支持。
  4307. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4308. // value HDR系数,范围0.0到1.0
  4309. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  4310. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  4311. /******************************************************/
  4312. typedef CameraSdkStatus (__stdcall *_CameraGetHDR)(
  4313. CameraHandle hCamera,
  4314. float* value
  4315. );
  4316. /******************************************************/
  4317. // 函数名 : CameraGetFrameID
  4318. // 功能描述 : 获取当前帧的ID,需相机支持(网口全系列支持),此函数返回错误代码,表示不支持。
  4319. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4320. // id 帧ID
  4321. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  4322. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  4323. /******************************************************/
  4324. typedef CameraSdkStatus (__stdcall *_CameraGetFrameID)(
  4325. CameraHandle hCamera,
  4326. UINT* id
  4327. );
  4328. /******************************************************/
  4329. // 函数名 : CameraGetFrameTimeStamp
  4330. // 功能描述 : 获取当前帧的时间戳(单位微秒)
  4331. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4332. // TimeStampL 时间戳低32位
  4333. // TimeStampH 时间戳高32位
  4334. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  4335. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  4336. /******************************************************/
  4337. typedef CameraSdkStatus (__stdcall *_CameraGetFrameTimeStamp)(
  4338. CameraHandle hCamera,
  4339. UINT* TimeStampL,
  4340. UINT* TimeStampH
  4341. );
  4342. /******************************************************/
  4343. // 函数名 : CameraSetHDRGainMode
  4344. // 功能描述 : 设置相机的增益模式,需要相机支持,不带增益模式切换功能的型号,此函数返回错误代码,表示不支持。
  4345. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4346. // value 0:低增益 1:高增益
  4347. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  4348. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  4349. /******************************************************/
  4350. typedef CameraSdkStatus (__stdcall *_CameraSetHDRGainMode)(
  4351. CameraHandle hCamera,
  4352. int value
  4353. );
  4354. /******************************************************/
  4355. // 函数名 : CameraGetHDRGainMode
  4356. // 功能描述 : 获取相机的增益模式,需要相机支持,不带增益模式切换功能的型号,此函数返回错误代码,表示不支持。
  4357. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4358. // value 0:低增益 1:高增益
  4359. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0),表示相机连接状态正常;
  4360. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  4361. /******************************************************/
  4362. typedef CameraSdkStatus (__stdcall *_CameraGetHDRGainMode)(
  4363. CameraHandle hCamera,
  4364. int* value
  4365. );
  4366. /******************************************************/
  4367. // 函数名 : CameraCreateDIBitmap
  4368. // 功能描述 : 从帧数据创建HBITMAP
  4369. // 参数 : hDC: Handle to a device context(WIN32 API CreateDIBitmap的参数hdc)
  4370. // pFrameBuffer: 帧数据
  4371. // pFrameHead: 帧头
  4372. // outBitmap: 新创建的HBITMAP(使用完后需要调用WIN32 API DeleteObject释放)
  4373. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0)
  4374. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  4375. /******************************************************/
  4376. typedef CameraSdkStatus (__stdcall *_CameraCreateDIBitmap)(
  4377. HDC hDC,
  4378. BYTE *pFrameBuffer,
  4379. tSdkFrameHead* pFrameHead,
  4380. HBITMAP* outBitmap
  4381. );
  4382. /******************************************************/
  4383. // 函数名 : CameraDrawFrameBuffer
  4384. // 功能描述 : 绘制帧到指定窗口
  4385. // 参数 : pFrameBuffer: 帧数据
  4386. // pFrameHead: 帧头
  4387. // hWnd: 目的窗口
  4388. // Algorithm 缩放算法 0:快速但质量稍差 1:速度慢但质量好
  4389. // Mode 缩放模式 0: 等比缩放 1:拉伸缩放
  4390. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0)
  4391. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  4392. /******************************************************/
  4393. typedef CameraSdkStatus (__stdcall *_CameraDrawFrameBuffer)(
  4394. BYTE *pFrameBuffer,
  4395. tSdkFrameHead* pFrameHead,
  4396. HWND hWnd,
  4397. int Algorithm,
  4398. int Mode
  4399. );
  4400. /******************************************************/
  4401. // 函数名 : CameraFlipFrameBuffer
  4402. // 功能描述 : 翻转帧数据
  4403. // 参数 : pFrameBuffer: 帧数据
  4404. // pFrameHead: 帧头
  4405. // Flags: 1:上下 2:左右 3:上下、左右皆做一次翻转(相当于旋转180度)
  4406. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0)
  4407. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  4408. /******************************************************/
  4409. typedef CameraSdkStatus (__stdcall *_CameraFlipFrameBuffer)(
  4410. BYTE *pFrameBuffer,
  4411. tSdkFrameHead* pFrameHead,
  4412. int Flags
  4413. );
  4414. /******************************************************/
  4415. // 函数名 : CameraConvertFrameBufferFormat
  4416. // 功能描述 : 转换帧数据格式
  4417. // 参数 : hCamera: 相机句柄
  4418. // pInFrameBuffer: 输入帧数据
  4419. // pOutFrameBuffer: 输出帧数据
  4420. // outWidth: 输出宽度
  4421. // outHeight: 输出高度
  4422. // outMediaType: 输出格式
  4423. // pFrameHead: 帧头信息(转换成功后,里面的信息会被修改为输出帧的信息)
  4424. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0)
  4425. // 否则返回 非0值,参考CameraStatus.h中错误码的定义。
  4426. /******************************************************/
  4427. typedef CameraSdkStatus (__stdcall *_CameraConvertFrameBufferFormat)(
  4428. CameraHandle hCamera,
  4429. BYTE *pInFrameBuffer,
  4430. BYTE *pOutFrameBuffer,
  4431. int outWidth,
  4432. int outHeight,
  4433. UINT outMediaType,
  4434. tSdkFrameHead* pFrameHead
  4435. );
  4436. /******************************************************/
  4437. // 函数名 : CameraSetConnectionStatusCallback
  4438. // 功能描述 : 设置相机连接状态改变的回调通知函数。当相机掉线、重连时,
  4439. // pCallBack所指向的回调函数就会被调用。
  4440. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4441. // pCallBack 回调函数指针。
  4442. // pContext 回调函数的附加参数,在回调函数被调用时
  4443. // 该附加参数会被传入,可以为NULL。多用于
  4444. // 多个相机时携带附加信息。
  4445. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4446. // 否则返回非0值的错误码,请参考CameraStatus.h
  4447. // 中错误码的定义。
  4448. /******************************************************/
  4449. typedef CameraSdkStatus (__stdcall *_CameraSetConnectionStatusCallback)(
  4450. CameraHandle hCamera,
  4451. CAMERA_CONNECTION_STATUS_CALLBACK pCallBack,
  4452. PVOID pContext
  4453. );
  4454. /******************************************************/
  4455. // 函数名 : CameraSetLightingControllerMode
  4456. // 功能描述 : 设置光源控制器的输出模式(智能相机系列且需要硬件支持)
  4457. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4458. // index 控制器索引
  4459. // mode 输出模式(0:跟随闪光灯 1:手动)
  4460. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4461. // 否则返回非0值的错误码,请参考CameraStatus.h
  4462. // 中错误码的定义。
  4463. /******************************************************/
  4464. typedef CameraSdkStatus (__stdcall *_CameraSetLightingControllerMode)(
  4465. CameraHandle hCamera,
  4466. int index,
  4467. int mode
  4468. );
  4469. /******************************************************/
  4470. // 函数名 : CameraSetLightingControllerState
  4471. // 功能描述 : 设置光源控制器的输出状态(智能相机系列且需要硬件支持)
  4472. // 参数 : hCamera 相机的句柄,由CameraInit函数获得。
  4473. // index 控制器索引
  4474. // state 输出状态(0:关闭 1:打开)
  4475. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4476. // 否则返回非0值的错误码,请参考CameraStatus.h
  4477. // 中错误码的定义。
  4478. /******************************************************/
  4479. typedef CameraSdkStatus (__stdcall *_CameraSetLightingControllerState)(
  4480. CameraHandle hCamera,
  4481. int index,
  4482. int state
  4483. );
  4484. typedef CameraSdkStatus (__stdcall *_CameraSetFrameResendCount)(
  4485. CameraHandle hCamera,
  4486. int count
  4487. );
  4488. typedef CameraSdkStatus (__stdcall *_CameraGetEyeCount)(
  4489. CameraHandle hCamera,
  4490. int* EyeCount
  4491. );
  4492. typedef CameraSdkStatus (__stdcall *_CameraMultiEyeImageProcess)(
  4493. CameraHandle hCamera,
  4494. int iEyeIndex,
  4495. BYTE* pbyIn,
  4496. tSdkFrameHead* pInFrInfo,
  4497. BYTE* pbyOut,
  4498. tSdkFrameHead* pOutFrInfo,
  4499. UINT uOutFormat,
  4500. UINT uReserved
  4501. );
  4502. typedef CameraSdkStatus (__stdcall *_CameraGetRegionAverageGray)(
  4503. BYTE *pFrameBuffer,
  4504. tSdkFrameHead* pFrameHead,
  4505. int Left,
  4506. int Top,
  4507. int Width,
  4508. int Height,
  4509. int *AvgGray
  4510. );
  4511. typedef CameraSdkStatus (__stdcall *_CameraGetMediaCapability)(
  4512. CameraHandle hCamera,
  4513. int iMediaType,
  4514. UINT *uCap
  4515. );
  4516. typedef CameraSdkStatus (__stdcall *_CameraSetMediaBitRate)(
  4517. CameraHandle hCamera,
  4518. int iMediaType,
  4519. UINT uRate
  4520. );
  4521. typedef CameraSdkStatus (__stdcall *_CameraGetMediaBitRate)(
  4522. CameraHandle hCamera,
  4523. int iMediaType,
  4524. UINT *uRate
  4525. );
  4526. typedef CameraSdkStatus (__stdcall *_CameraSetFrameEventCallback)(
  4527. CameraHandle hCamera,
  4528. CAMERA_FRAME_EVENT_CALLBACK pCallBack,
  4529. PVOID pContext
  4530. );
  4531. typedef CameraSdkStatus (__stdcall *_CameraSetNoiseReductionValue)(
  4532. CameraHandle hCamera,
  4533. int value
  4534. );
  4535. typedef CameraSdkStatus (__stdcall *_CameraGetNoiseReductionValue)(
  4536. CameraHandle hCamera,
  4537. int* value
  4538. );
  4539. typedef CameraSdkStatus (__stdcall *_CameraSetLogarithmicCurveValue)(
  4540. CameraHandle hCamera,
  4541. int value
  4542. );
  4543. typedef CameraSdkStatus (__stdcall *_CameraGetLogarithmicCurveValue)(
  4544. CameraHandle hCamera,
  4545. int* value
  4546. );
  4547. typedef CameraSdkStatus (__stdcall *_CameraSetSpliceLines)(
  4548. CameraHandle hCamera,
  4549. int numLines
  4550. );
  4551. typedef CameraSdkStatus (__stdcall *_CameraGetSpliceLines)(
  4552. CameraHandle hCamera,
  4553. int* numLines
  4554. );
  4555. typedef CameraSdkStatus (__stdcall *_CameraSnapChannelBuffer)(
  4556. CameraHandle hCamera,
  4557. char const* pszChannelName,
  4558. tSdkFrameHead* pFrameInfo,
  4559. BYTE** pbyBuffer,
  4560. UINT wTimes
  4561. );
  4562. typedef CameraSdkStatus (__stdcall *_CameraReleaseChannelBuffer)(
  4563. CameraHandle hCamera,
  4564. char const* pszChannelName,
  4565. BYTE* pbyBuffer
  4566. );
  4567. typedef CameraSdkStatus (__stdcall *_CameraSetRotaryEncTrigger)(
  4568. CameraHandle hCamera,
  4569. int action
  4570. );
  4571. typedef CameraSdkStatus (__stdcall *_CameraGetRotaryEncTrigger)(
  4572. CameraHandle hCamera,
  4573. int* action
  4574. );
  4575. /******************************************************/
  4576. // 函数名 : CameraGrabber_CreateFromDevicePage
  4577. // 功能描述 : 弹出相机列表让用户选择要打开的相机
  4578. // 参数 : 如果函数执行成功返回函数创建的Grabber
  4579. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4580. // 否则返回非0值的错误码,请参考CameraStatus.h
  4581. // 中错误码的定义。
  4582. /******************************************************/
  4583. typedef CameraSdkStatus (__stdcall *_CameraGrabber_CreateFromDevicePage)(
  4584. void** Grabber
  4585. );
  4586. /******************************************************/
  4587. // 函数名 : CameraGrabber_CreateByIndex
  4588. // 功能描述 : 使用相机列表索引创建Grabber
  4589. // 参数 : Grabber 如果函数执行成功返回函数创建的Grabber
  4590. // Index 相机索引
  4591. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4592. // 否则返回非0值的错误码,请参考CameraStatus.h
  4593. // 中错误码的定义。
  4594. /******************************************************/
  4595. typedef CameraSdkStatus (__stdcall *_CameraGrabber_CreateByIndex)(
  4596. void** Grabber,
  4597. int Index
  4598. );
  4599. /******************************************************/
  4600. // 函数名 : CameraGrabber_CreateByName
  4601. // 功能描述 : 使用相机名称创建Grabber
  4602. // 参数 : Grabber 如果函数执行成功返回函数创建的Grabber
  4603. // Name 相机名称
  4604. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4605. // 否则返回非0值的错误码,请参考CameraStatus.h
  4606. // 中错误码的定义。
  4607. /******************************************************/
  4608. typedef CameraSdkStatus (__stdcall *_CameraGrabber_CreateByName)(
  4609. void** Grabber,
  4610. char* Name
  4611. );
  4612. /******************************************************/
  4613. // 函数名 : CameraGrabber_Create
  4614. // 功能描述 : 从设备描述信息创建Grabber
  4615. // 参数 : Grabber 如果函数执行成功返回函数创建的Grabber对象
  4616. // pDevInfo 该相机的设备描述信息,由CameraEnumerateDevice函数获得。
  4617. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4618. // 否则返回非0值的错误码,请参考CameraStatus.h
  4619. // 中错误码的定义。
  4620. /******************************************************/
  4621. typedef CameraSdkStatus (__stdcall *_CameraGrabber_Create)(
  4622. void** Grabber,
  4623. tSdkCameraDevInfo* pDevInfo
  4624. );
  4625. /******************************************************/
  4626. // 函数名 : CameraGrabber_Destroy
  4627. // 功能描述 : 销毁Grabber
  4628. // 参数 : Grabber
  4629. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4630. // 否则返回非0值的错误码,请参考CameraStatus.h
  4631. // 中错误码的定义。
  4632. /******************************************************/
  4633. typedef CameraSdkStatus (__stdcall *_CameraGrabber_Destroy)(
  4634. void* Grabber
  4635. );
  4636. /******************************************************/
  4637. // 函数名 : CameraGrabber_SetHWnd
  4638. // 功能描述 : 设置预览视频的显示窗口
  4639. // 参数 : Grabber
  4640. // hWnd 窗口句柄
  4641. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4642. // 否则返回非0值的错误码,请参考CameraStatus.h
  4643. // 中错误码的定义。
  4644. /******************************************************/
  4645. typedef CameraSdkStatus (__stdcall *_CameraGrabber_SetHWnd)(
  4646. void* Grabber,
  4647. HWND hWnd
  4648. );
  4649. /******************************************************/
  4650. // 函数名 : CameraGrabber_SetPriority
  4651. // 功能描述 : 设置取图使用的优先级
  4652. // 参数 : Grabber
  4653. // Priority 取图优先级 详见:emCameraGetImagePriority
  4654. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4655. // 否则返回非0值的错误码,请参考CameraStatus.h
  4656. // 中错误码的定义。
  4657. /******************************************************/
  4658. typedef CameraSdkStatus (__stdcall *_CameraGrabber_SetPriority)(
  4659. void* Grabber,
  4660. UINT Priority
  4661. );
  4662. /******************************************************/
  4663. // 函数名 : CameraGrabber_StartLive
  4664. // 功能描述 : 启动预览
  4665. // 参数 : Grabber
  4666. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4667. // 否则返回非0值的错误码,请参考CameraStatus.h
  4668. // 中错误码的定义。
  4669. /******************************************************/
  4670. typedef CameraSdkStatus (__stdcall *_CameraGrabber_StartLive)(
  4671. void* Grabber
  4672. );
  4673. /******************************************************/
  4674. // 函数名 : CameraGrabber_StopLive
  4675. // 功能描述 : 停止预览
  4676. // 参数 : Grabber
  4677. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4678. // 否则返回非0值的错误码,请参考CameraStatus.h
  4679. // 中错误码的定义。
  4680. /******************************************************/
  4681. typedef CameraSdkStatus (__stdcall *_CameraGrabber_StopLive)(
  4682. void* Grabber
  4683. );
  4684. /******************************************************/
  4685. // 函数名 : CameraGrabber_SaveImage
  4686. // 功能描述 : 抓图
  4687. // 参数 : Grabber
  4688. // Image 返回抓取到的图像(需要调用CameraImage_Destroy释放)
  4689. // TimeOut 超时时间(毫秒)
  4690. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4691. // 否则返回非0值的错误码,请参考CameraStatus.h
  4692. // 中错误码的定义。
  4693. /******************************************************/
  4694. typedef CameraSdkStatus (__stdcall *_CameraGrabber_SaveImage)(
  4695. void* Grabber,
  4696. void** Image,
  4697. DWORD TimeOut
  4698. );
  4699. /******************************************************/
  4700. // 函数名 : CameraGrabber_SaveImageAsync
  4701. // 功能描述 : 提交一个异步的抓图请求,提交成功后待抓图完成会回调用户设置的完成函数
  4702. // 参数 : Grabber
  4703. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4704. // 否则返回非0值的错误码,请参考CameraStatus.h
  4705. // 中错误码的定义。
  4706. /******************************************************/
  4707. typedef CameraSdkStatus (__stdcall *_CameraGrabber_SaveImageAsync)(
  4708. void* Grabber
  4709. );
  4710. /******************************************************/
  4711. // 函数名 : CameraGrabber_SaveImageAsyncEx
  4712. // 功能描述 : 提交一个异步的抓图请求,提交成功后待抓图完成会回调用户设置的完成函数
  4713. // 参数 : Grabber
  4714. // UserData 可使用CameraImage_GetUserData从Image获取此值
  4715. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4716. // 否则返回非0值的错误码,请参考CameraStatus.h
  4717. // 中错误码的定义。
  4718. /******************************************************/
  4719. typedef CameraSdkStatus (__stdcall *_CameraGrabber_SaveImageAsyncEx)(
  4720. void* Grabber,
  4721. void* UserData
  4722. );
  4723. /******************************************************/
  4724. // 函数名 : CameraGrabber_SetSaveImageCompleteCallback
  4725. // 功能描述 : 设置异步方式抓图的完成函数
  4726. // 参数 : Grabber
  4727. // Callback 当有抓图任务完成时被调用
  4728. // Context 当Callback被调用时,作为参数传入Callback
  4729. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4730. // 否则返回非0值的错误码,请参考CameraStatus.h
  4731. // 中错误码的定义。
  4732. /******************************************************/
  4733. typedef CameraSdkStatus (__stdcall *_CameraGrabber_SetSaveImageCompleteCallback)(
  4734. void* Grabber,
  4735. pfnCameraGrabberSaveImageComplete Callback,
  4736. void* Context
  4737. );
  4738. /******************************************************/
  4739. // 函数名 : CameraGrabber_SetFrameListener
  4740. // 功能描述 : 设置帧监听函数
  4741. // 参数 : Grabber
  4742. // Listener 监听函数,此函数返回0表示丢弃当前帧
  4743. // Context 当Listener被调用时,作为参数传入Listener
  4744. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4745. // 否则返回非0值的错误码,请参考CameraStatus.h
  4746. // 中错误码的定义。
  4747. /******************************************************/
  4748. typedef CameraSdkStatus (__stdcall *_CameraGrabber_SetFrameListener)(
  4749. void* Grabber,
  4750. pfnCameraGrabberFrameListener Listener,
  4751. void* Context
  4752. );
  4753. /******************************************************/
  4754. // 函数名 : CameraGrabber_SetRawCallback
  4755. // 功能描述 : 设置RAW回调函数
  4756. // 参数 : Grabber
  4757. // Callback Raw回调函数
  4758. // Context 当Callback被调用时,作为参数传入Callback
  4759. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4760. // 否则返回非0值的错误码,请参考CameraStatus.h
  4761. // 中错误码的定义。
  4762. /******************************************************/
  4763. typedef CameraSdkStatus (__stdcall *_CameraGrabber_SetRawCallback)(
  4764. void* Grabber,
  4765. pfnCameraGrabberFrameCallback Callback,
  4766. void* Context
  4767. );
  4768. /******************************************************/
  4769. // 函数名 : CameraGrabber_SetRGBCallback
  4770. // 功能描述 : 设置RGB回调函数
  4771. // 参数 : Grabber
  4772. // Callback RGB回调函数
  4773. // Context 当Callback被调用时,作为参数传入Callback
  4774. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4775. // 否则返回非0值的错误码,请参考CameraStatus.h
  4776. // 中错误码的定义。
  4777. /******************************************************/
  4778. typedef CameraSdkStatus (__stdcall *_CameraGrabber_SetRGBCallback)(
  4779. void* Grabber,
  4780. pfnCameraGrabberFrameCallback Callback,
  4781. void* Context
  4782. );
  4783. /******************************************************/
  4784. // 函数名 : CameraGrabber_GetCameraHandle
  4785. // 功能描述 : 获取相机句柄
  4786. // 参数 : Grabber
  4787. // hCamera 返回的相机句柄
  4788. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4789. // 否则返回非0值的错误码,请参考CameraStatus.h
  4790. // 中错误码的定义。
  4791. /******************************************************/
  4792. typedef CameraSdkStatus (__stdcall *_CameraGrabber_GetCameraHandle)(
  4793. void* Grabber,
  4794. CameraHandle *hCamera
  4795. );
  4796. /******************************************************/
  4797. // 函数名 : CameraGrabber_GetStat
  4798. // 功能描述 : 获取帧统计信息
  4799. // 参数 : Grabber
  4800. // stat 返回的统计信息
  4801. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4802. // 否则返回非0值的错误码,请参考CameraStatus.h
  4803. // 中错误码的定义。
  4804. /******************************************************/
  4805. typedef CameraSdkStatus (__stdcall *_CameraGrabber_GetStat)(
  4806. void* Grabber,
  4807. tSdkGrabberStat *stat
  4808. );
  4809. /******************************************************/
  4810. // 函数名 : CameraGrabber_GetCameraDevInfo
  4811. // 功能描述 : 获取相机DevInfo
  4812. // 参数 : Grabber
  4813. // DevInfo 返回的相机DevInfo
  4814. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4815. // 否则返回非0值的错误码,请参考CameraStatus.h
  4816. // 中错误码的定义。
  4817. /******************************************************/
  4818. typedef CameraSdkStatus (__stdcall *_CameraGrabber_GetCameraDevInfo)(
  4819. void* Grabber,
  4820. tSdkCameraDevInfo *DevInfo
  4821. );
  4822. /******************************************************/
  4823. // 函数名 : CameraImage_Create
  4824. // 功能描述 : 创建一个新的Image
  4825. // 参数 : Image
  4826. // pFrameBuffer 帧数据缓冲区
  4827. // pFrameHead 帧头
  4828. // bCopy TRUE: 复制出一份新的帧数据 FALSE: 不复制,直接使用pFrameBuffer指向的缓冲区
  4829. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4830. // 否则返回非0值的错误码,请参考CameraStatus.h
  4831. // 中错误码的定义。
  4832. /******************************************************/
  4833. typedef CameraSdkStatus (__stdcall *_CameraImage_Create)(
  4834. void** Image,
  4835. BYTE *pFrameBuffer,
  4836. tSdkFrameHead* pFrameHead,
  4837. BOOL bCopy
  4838. );
  4839. /******************************************************/
  4840. // 函数名 : CameraImage_Destroy
  4841. // 功能描述 : 销毁Image
  4842. // 参数 : Image
  4843. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4844. // 否则返回非0值的错误码,请参考CameraStatus.h
  4845. // 中错误码的定义。
  4846. /******************************************************/
  4847. typedef CameraSdkStatus (__stdcall *_CameraImage_Destroy)(
  4848. void* Image
  4849. );
  4850. /******************************************************/
  4851. // 函数名 : CameraImage_GetData
  4852. // 功能描述 : 获取Image数据
  4853. // 参数 : Image
  4854. // DataBuffer 图像数据
  4855. // Head 图像信息
  4856. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4857. // 否则返回非0值的错误码,请参考CameraStatus.h
  4858. // 中错误码的定义。
  4859. /******************************************************/
  4860. typedef CameraSdkStatus (__stdcall *_CameraImage_GetData)(
  4861. void* Image,
  4862. BYTE** DataBuffer,
  4863. tSdkFrameHead** Head
  4864. );
  4865. /******************************************************/
  4866. // 函数名 : CameraImage_GetUserData
  4867. // 功能描述 : 获取Image的用户自定义数据
  4868. // 参数 : Image
  4869. // UserData 返回用户自定义数据
  4870. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4871. // 否则返回非0值的错误码,请参考CameraStatus.h
  4872. // 中错误码的定义。
  4873. /******************************************************/
  4874. typedef CameraSdkStatus (__stdcall *_CameraImage_GetUserData)(
  4875. void* Image,
  4876. void** UserData
  4877. );
  4878. /******************************************************/
  4879. // 函数名 : CameraImage_SetUserData
  4880. // 功能描述 : 设置Image的用户自定义数据
  4881. // 参数 : Image
  4882. // UserData 用户自定义数据
  4883. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4884. // 否则返回非0值的错误码,请参考CameraStatus.h
  4885. // 中错误码的定义。
  4886. /******************************************************/
  4887. typedef CameraSdkStatus (__stdcall *_CameraImage_SetUserData)(
  4888. void* Image,
  4889. void* UserData
  4890. );
  4891. /******************************************************/
  4892. // 函数名 : CameraImage_IsEmpty
  4893. // 功能描述 : 判断一个Image是否为空
  4894. // 参数 : Image
  4895. // IsEmpty 为空返回:TRUE(1) 否则返回:FALSE(0)
  4896. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4897. // 否则返回非0值的错误码,请参考CameraStatus.h
  4898. // 中错误码的定义。
  4899. /******************************************************/
  4900. typedef CameraSdkStatus (__stdcall *_CameraImage_IsEmpty)(
  4901. void* Image,
  4902. BOOL* IsEmpty
  4903. );
  4904. /******************************************************/
  4905. // 函数名 : CameraImage_Draw
  4906. // 功能描述 : 绘制Image到指定窗口
  4907. // 参数 : Image
  4908. // hWnd 目的窗口
  4909. // Algorithm 缩放算法 0:快速但质量稍差 1:速度慢但质量好
  4910. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4911. // 否则返回非0值的错误码,请参考CameraStatus.h
  4912. // 中错误码的定义。
  4913. /******************************************************/
  4914. typedef CameraSdkStatus (__stdcall *_CameraImage_Draw)(
  4915. void* Image,
  4916. HWND hWnd,
  4917. int Algorithm
  4918. );
  4919. /******************************************************/
  4920. // 函数名 : CameraImage_BitBlt
  4921. // 功能描述 : 绘制Image到指定窗口(不缩放)
  4922. // 参数 : Image
  4923. // hWnd 目的窗口
  4924. // xDst,yDst: 目标矩形的左上角坐标
  4925. // cxDst,cyDst: 目标矩形的宽高
  4926. // xSrc,ySrc: 图像矩形的左上角坐标
  4927. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4928. // 否则返回非0值的错误码,请参考CameraStatus.h
  4929. // 中错误码的定义。
  4930. /******************************************************/
  4931. typedef CameraSdkStatus (__stdcall *_CameraImage_BitBlt)(
  4932. void* Image,
  4933. HWND hWnd,
  4934. int xDst,
  4935. int yDst,
  4936. int cxDst,
  4937. int cyDst,
  4938. int xSrc,
  4939. int ySrc
  4940. );
  4941. /******************************************************/
  4942. // 函数名 : CameraImage_SaveAsBmp
  4943. // 功能描述 : 以bmp格式保存Image
  4944. // 参数 : Image
  4945. // FileName 文件名
  4946. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4947. // 否则返回非0值的错误码,请参考CameraStatus.h
  4948. // 中错误码的定义。
  4949. /******************************************************/
  4950. typedef CameraSdkStatus (__stdcall *_CameraImage_SaveAsBmp)(
  4951. void* Image,
  4952. char const* FileName
  4953. );
  4954. /******************************************************/
  4955. // 函数名 : CameraImage_SaveAsJpeg
  4956. // 功能描述 : 以jpg格式保存Image
  4957. // 参数 : Image
  4958. // FileName 文件名
  4959. // Quality 保存质量(1-100),100为质量最佳但文件也最大
  4960. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4961. // 否则返回非0值的错误码,请参考CameraStatus.h
  4962. // 中错误码的定义。
  4963. /******************************************************/
  4964. typedef CameraSdkStatus (__stdcall *_CameraImage_SaveAsJpeg)(
  4965. void* Image,
  4966. char const* FileName,
  4967. BYTE Quality
  4968. );
  4969. /******************************************************/
  4970. // 函数名 : CameraImage_SaveAsPng
  4971. // 功能描述 : 以png格式保存Image
  4972. // 参数 : Image
  4973. // FileName 文件名
  4974. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4975. // 否则返回非0值的错误码,请参考CameraStatus.h
  4976. // 中错误码的定义。
  4977. /******************************************************/
  4978. typedef CameraSdkStatus (__stdcall *_CameraImage_SaveAsPng)(
  4979. void* Image,
  4980. char const* FileName
  4981. );
  4982. /******************************************************/
  4983. // 函数名 : CameraImage_SaveAsRaw
  4984. // 功能描述 : 保存raw Image
  4985. // 参数 : Image
  4986. // FileName 文件名
  4987. // Format 0: 8Bit Raw 1: 16Bit Raw
  4988. // 返回值 : 成功时,返回CAMERA_STATUS_SUCCESS (0);
  4989. // 否则返回非0值的错误码,请参考CameraStatus.h
  4990. // 中错误码的定义。
  4991. /******************************************************/
  4992. typedef CameraSdkStatus (__stdcall *_CameraImage_SaveAsRaw)(
  4993. void* Image,
  4994. char const* FileName,
  4995. int Format
  4996. );
  4997. /// @ingroup API_UTIL
  4998. /// \~chinese
  4999. /// \brief 创建缩放工具
  5000. /// \param [out] ZoomTool 返回新创建的缩放工具
  5001. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5002. /// \~english
  5003. /// \brief Create a zoom tool
  5004. /// \param [out] ZoomTool returns the newly created zoom tool
  5005. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5006. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_Create)(
  5007. void** ZoomTool
  5008. );
  5009. /// @ingroup API_UTIL
  5010. /// \~chinese
  5011. /// \brief 销毁缩放工具
  5012. /// \param [in] ZoomTool 缩放工具
  5013. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5014. /// \~english
  5015. /// \brief Destory a zoom tool
  5016. /// \param [in] ZoomTool zoom tool
  5017. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5018. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_Destory)(
  5019. void* ZoomTool
  5020. );
  5021. /// @ingroup API_UTIL
  5022. /// \~chinese
  5023. /// \brief 设置视口原点
  5024. /// \param [in] ZoomTool 缩放工具
  5025. /// \param [in] x 横坐标值
  5026. /// \param [in] y 纵坐标值
  5027. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5028. /// \~english
  5029. /// \brief Set the viewport origin
  5030. /// \param [in] ZoomTool zoom tool
  5031. /// \param [in] x coordinate value
  5032. /// \param [in] y coordinate value
  5033. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5034. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_SetViewOrg)(
  5035. void* ZoomTool,
  5036. float x,
  5037. float y
  5038. );
  5039. /// @ingroup API_UTIL
  5040. /// \~chinese
  5041. /// \brief 获取视口原点
  5042. /// \param [in] ZoomTool 缩放工具
  5043. /// \param [in] x 横坐标值
  5044. /// \param [in] y 纵坐标值
  5045. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5046. /// \~english
  5047. /// \brief Get the viewport origin
  5048. /// \param [in] ZoomTool zoom tool
  5049. /// \param [in] x coordinate value
  5050. /// \param [in] y coordinate value
  5051. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5052. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_GetViewOrg)(
  5053. void* ZoomTool,
  5054. float* x,
  5055. float* y
  5056. );
  5057. /// @ingroup API_UTIL
  5058. /// \~chinese
  5059. /// \brief 设置视口中心点坐标
  5060. /// \param [in] ZoomTool 缩放工具
  5061. /// \param [in] x 横坐标值
  5062. /// \param [in] y 纵坐标值
  5063. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5064. /// \~english
  5065. /// \brief Set the viewport center point coordinates
  5066. /// \param [in] ZoomTool zoom tool
  5067. /// \param [in] x coordinate value
  5068. /// \param [in] y coordinate value
  5069. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5070. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_SetViewCenter)(
  5071. void* ZoomTool,
  5072. float x,
  5073. float y
  5074. );
  5075. /// @ingroup API_UTIL
  5076. /// \~chinese
  5077. /// \brief 获取视口中心点坐标
  5078. /// \param [in] ZoomTool 缩放工具
  5079. /// \param [out] x 横坐标值
  5080. /// \param [out] y 纵坐标值
  5081. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5082. /// \~english
  5083. /// \brief Get the coordinates of the center point of the viewport
  5084. /// \param [in] ZoomTool zoom tool
  5085. /// \param [out] x coordinate value
  5086. /// \param [out] y coordinate value
  5087. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5088. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_GetViewCenter)(
  5089. void* ZoomTool,
  5090. float* x,
  5091. float* y
  5092. );
  5093. /// @ingroup API_UTIL
  5094. /// \~chinese
  5095. /// \brief 设置视口大小
  5096. /// \param [in] ZoomTool 缩放工具
  5097. /// \param [in] w 视口宽度
  5098. /// \param [in] h 视口高度
  5099. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5100. /// \~english
  5101. /// \brief Set the viewport size
  5102. /// \param [in] ZoomTool zoom tool
  5103. /// \param [in] w Viewport width
  5104. /// \param [in] h Viewport height
  5105. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5106. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_SetViewSize)(
  5107. void* ZoomTool,
  5108. int w,
  5109. int h
  5110. );
  5111. /// @ingroup API_UTIL
  5112. /// \~chinese
  5113. /// \brief 获取视口大小
  5114. /// \param [in] ZoomTool 缩放工具
  5115. /// \param [in] w 视口宽度
  5116. /// \param [in] h 视口高度
  5117. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5118. /// \~english
  5119. /// \brief Get the viewport size
  5120. /// \param [in] ZoomTool zoom tool
  5121. /// \param [in] w Viewport width
  5122. /// \param [in] h Viewport height
  5123. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5124. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_GetViewSize)(
  5125. void* ZoomTool,
  5126. int* w,
  5127. int* h
  5128. );
  5129. /// @ingroup API_UTIL
  5130. /// \~chinese
  5131. /// \brief 设置视口的滚动位置
  5132. /// \param [in] ZoomTool 缩放工具
  5133. /// \param [in] xPos 横向值(0-1)
  5134. /// \param [in] yPos 纵向值(0-1)
  5135. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5136. /// \~english
  5137. /// \brief Set the scroll position of the viewport
  5138. /// \param [in] ZoomTool zoom tool
  5139. /// \param [in] xPos horizontal value (0-1)
  5140. /// \param [in] yPos vertical value (0-1)
  5141. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5142. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_SetViewScrollPos)(
  5143. void* ZoomTool,
  5144. float xPos,
  5145. float yPos
  5146. );
  5147. /// @ingroup API_UTIL
  5148. /// \~chinese
  5149. /// \brief 获取视口的滚动位置
  5150. /// \param [in] ZoomTool 缩放工具
  5151. /// \param [out] xPos 横向值(0-1)(<0表示横向可完全显示无需滚动)
  5152. /// \param [out] yPos 纵向值(0-1)(<0表示纵向可完全显示无需滚动)
  5153. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5154. /// \~english
  5155. /// \brief Get the scroll position of the viewport
  5156. /// \param [in] ZoomTool zoom tool
  5157. /// \param [out] xPos horizontal value (0-1)(<0 means the landscape can be completely displayed without scrolling)
  5158. /// \param [out] yPos vertical value (0-1)(<0 means the portrait can be fully displayed without scrolling)
  5159. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5160. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_GetViewScrollPos)(
  5161. void* ZoomTool,
  5162. float* xPos,
  5163. float* yPos
  5164. );
  5165. /// @ingroup API_UTIL
  5166. /// \~chinese
  5167. /// \brief 获取视口的滚动范围
  5168. /// \param [in] ZoomTool 缩放工具
  5169. /// \param [out] xRange 横向滚动范围
  5170. /// \param [out] yRange 纵向滚动范围
  5171. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5172. /// \~english
  5173. /// \brief Get the scrolling range of the viewport
  5174. /// \param [in] ZoomTool zoom tool
  5175. /// \param [out] xRange horizontal scrolling range
  5176. /// \param [out] yRange vertical scrolling range
  5177. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5178. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_GetViewScrollRange)(
  5179. void* ZoomTool,
  5180. float* xRange,
  5181. float* yRange
  5182. );
  5183. /// @ingroup API_UTIL
  5184. /// \~chinese
  5185. /// \brief 设置图片帧的大小
  5186. /// \param [in] ZoomTool 缩放工具
  5187. /// \param [in] w 帧宽度
  5188. /// \param [in] h 帧高度
  5189. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5190. /// \~english
  5191. /// \brief Set the frame size
  5192. /// \param [in] ZoomTool zoom tool
  5193. /// \param [in] w Frame width
  5194. /// \param [in] h Frame height
  5195. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5196. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_SetFrameSize)(
  5197. void* ZoomTool,
  5198. int w,
  5199. int h
  5200. );
  5201. /// @ingroup API_UTIL
  5202. /// \~chinese
  5203. /// \brief 获取图片帧的大小
  5204. /// \param [in] ZoomTool 缩放工具
  5205. /// \param [in] w 帧宽度
  5206. /// \param [in] h 帧高度
  5207. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5208. /// \~english
  5209. /// \brief Get the frame size
  5210. /// \param [in] ZoomTool zoom tool
  5211. /// \param [in] w Frame width
  5212. /// \param [in] h Frame height
  5213. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5214. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_GetFrameSize)(
  5215. void* ZoomTool,
  5216. int* w,
  5217. int* h
  5218. );
  5219. /// @ingroup API_UTIL
  5220. /// \~chinese
  5221. /// \brief 设置缩放比例
  5222. /// \param [in] ZoomTool 缩放工具
  5223. /// \param [in] ratio 缩放比例
  5224. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5225. /// \~english
  5226. /// \brief Set the zoom ratio
  5227. /// \param [in] ZoomTool zoom tool
  5228. /// \param [in] ratio scaling ratio
  5229. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5230. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_SetScale)(
  5231. void* ZoomTool,
  5232. float ratio
  5233. );
  5234. /// @ingroup API_UTIL
  5235. /// \~chinese
  5236. /// \brief 获取缩放比例
  5237. /// \param [in] ZoomTool 缩放工具
  5238. /// \param [in] ratio 缩放比例
  5239. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5240. /// \~english
  5241. /// \brief Get the zoom ratio
  5242. /// \param [in] ZoomTool zoom tool
  5243. /// \param [in] ratio scaling ratio
  5244. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5245. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_GetScale)(
  5246. void* ZoomTool,
  5247. float* ratio
  5248. );
  5249. /// @ingroup API_UTIL
  5250. /// \~chinese
  5251. /// \brief 设置缩放参考点
  5252. /// \param [in] ZoomTool 缩放工具
  5253. /// \param [in] xAnchor 水平参考点(0-1)
  5254. /// \param [in] yAnchor 垂直参考点(0-1)
  5255. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5256. /// \~english
  5257. /// \brief Set zoom reference point
  5258. /// \param [in] ZoomTool zoom tool
  5259. /// \param [in] xAnchor horizontal reference point (0-1)
  5260. /// \param [in] yAnchor vertical reference point (0-1)
  5261. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5262. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_SetScaleAnchor)(
  5263. void* ZoomTool,
  5264. float xAnchor,
  5265. float yAnchor
  5266. );
  5267. /// @ingroup API_UTIL
  5268. /// \~chinese
  5269. /// \brief 获取缩放参考点
  5270. /// \param [in] ZoomTool 缩放工具
  5271. /// \param [out] xAnchor 水平参考点(0-1)
  5272. /// \param [out] yAnchor 垂直参考点(0-1)
  5273. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5274. /// \~english
  5275. /// \brief Get zoom reference point
  5276. /// \param [in] ZoomTool zoom tool
  5277. /// \param [out] xAnchor horizontal reference point (0-1)
  5278. /// \param [out] yAnchor vertical reference point (0-1)
  5279. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5280. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_GetScaleAnchor)(
  5281. void* ZoomTool,
  5282. float* xAnchor,
  5283. float* yAnchor
  5284. );
  5285. /// @ingroup API_UTIL
  5286. /// \~chinese
  5287. /// \brief 获取绘制矩形
  5288. /// \param [in] ZoomTool 缩放工具
  5289. /// \param [in] FrameX 帧内矩形X坐标
  5290. /// \param [in] FrameY 帧内矩形Y坐标
  5291. /// \param [in] FrameW 帧内矩形宽度
  5292. /// \param [in] FrameH 帧内矩形高度
  5293. /// \param [in] ViewX 视口内矩形X坐标
  5294. /// \param [in] ViewY 视口内矩形Y坐标
  5295. /// \param [in] ViewW 视口内矩形宽度
  5296. /// \param [in] ViewH 视口内矩形高度
  5297. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5298. /// \~english
  5299. /// \brief Get the drawing rectangle
  5300. /// \param [in] ZoomTool zoom tool
  5301. /// \param [in] FrameX Intra-frame rectangle X coordinate
  5302. /// \param [in] FrameY Intra-frame rectangle Y coordinate
  5303. /// \param [in] FrameW Intra-frame rectangle width
  5304. /// \param [in] FrameH Intra-frame height
  5305. /// \param [in] ViewX The X coordinate of the rectangle inside the viewport
  5306. /// \param [in] ViewY The Y coordinate of the rectangle inside the viewport
  5307. /// \param [in] ViewW The width of the rectangle inside the viewport
  5308. /// \param [in] ViewH The height of the rectangle inside the viewport
  5309. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5310. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_GetDrawRect)(
  5311. void* ZoomTool,
  5312. int* FrameX,
  5313. int* FrameY,
  5314. int* FrameW,
  5315. int* FrameH,
  5316. int* ViewX,
  5317. int* ViewY,
  5318. int* ViewW,
  5319. int* ViewH
  5320. );
  5321. /// @ingroup API_UTIL
  5322. /// \~chinese
  5323. /// \brief 坐标变换
  5324. /// \param [in] ZoomTool 缩放工具
  5325. /// \param [in] Type 变换类型 0: 视口转帧坐标 1:视口转世界坐标(帧坐标*缩放因子)
  5326. /// \param [inout] PointX X坐标(返回变换后的X坐标)
  5327. /// \param [inout] PointY Y坐标(返回变换后的Y坐标)
  5328. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5329. /// \~english
  5330. /// \brief Coordinate transformation
  5331. /// \param [in] ZoomTool zoom tool
  5332. /// \param [in] Type Transform type 0: Viewport to frame coordinates 1: Viewport to world coordinates (frame coordinates * zoom factor)
  5333. /// \param [inout] PointX X coordinate (returns the transformed X coordinate)
  5334. /// \param [inout] PointY Y coordinate (returns the transformed Y coordinate)
  5335. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5336. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_Transform)(
  5337. void* ZoomTool,
  5338. int Type,
  5339. float* PointX,
  5340. float* PointY
  5341. );
  5342. /// @ingroup API_UTIL
  5343. /// \~chinese
  5344. /// \brief 把帧数据按设定的视口和比例绘制到窗口
  5345. /// \param [in] ZoomTool 缩放工具
  5346. /// \param [in] Algorithm 缩放算法 0:快速但质量稍差 1:速度慢但质量好
  5347. /// \param [in] pFrameBuffer 帧数据
  5348. /// \param [in] pFrameHead 帧头
  5349. /// \param [in] hWnd 目的窗口句柄
  5350. /// \param [in] xDst 目标矩形左上角X坐标
  5351. /// \param [in] yDst 目标矩形左上角Y坐标
  5352. /// \param [in] hBackBrush 背景画刷(NULL:不填充背景)
  5353. /// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
  5354. /// \~english
  5355. /// \brief Draw frame data to a window according to the set viewport and scale
  5356. /// \param [in] ZoomTool zoom tool
  5357. /// \param [in] Algorithm scaling algorithm 0:fast but slightly worse quality 1:slower but better quality
  5358. /// \param [in] pFrameBuffer frame data
  5359. /// \param [in] pFrameHead frame header
  5360. /// \param [in] hWnd destination window handle
  5361. /// \param [in] xDst X coordinate of the upper left corner of the target rectangle
  5362. /// \param [in] yDst Y coordinate of the upper left corner of the target rectangle
  5363. /// \param [in] hBackBrush background brush (NULL: no background fill)
  5364. /// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
  5365. typedef CameraSdkStatus (__stdcall *_CameraZoomTool_Draw)(
  5366. void* ZoomTool,
  5367. int Algorithm,
  5368. void* pFrameBuffer,
  5369. tSdkFrameHead* pFrameHead,
  5370. HWND hWnd,
  5371. int xDst,
  5372. int yDst,
  5373. HBRUSH hBackBrush
  5374. );
  5375. #ifdef API_LOAD_MAIN
  5376. #define EXTERN
  5377. #else
  5378. #define EXTERN extern
  5379. #endif
  5380. EXTERN INT gSdkLanguageSel;//0:English 1:Chinese
  5381. EXTERN _CameraSdkInit CameraSdkInit;
  5382. EXTERN _CameraSetSysOption CameraSetSysOption;
  5383. EXTERN _CameraSetCallbackFunction CameraSetCallbackFunction;
  5384. EXTERN _CameraGetInformation CameraGetInformation;
  5385. EXTERN _CameraSaveImage CameraSaveImage;
  5386. EXTERN _CameraInitRecord CameraInitRecord;
  5387. EXTERN _CameraStopRecord CameraStopRecord;
  5388. EXTERN _CameraPushFrame CameraPushFrame;
  5389. EXTERN _CameraSpecialControl CameraSpecialControl;
  5390. EXTERN _CameraSnapToBuffer CameraSnapToBuffer;
  5391. EXTERN _CameraSnapJpegToFile CameraSnapJpegToFile;
  5392. EXTERN _CameraIsOpened CameraIsOpened;
  5393. EXTERN _CameraInit CameraInit;
  5394. EXTERN _CameraInitEx CameraInitEx;
  5395. EXTERN _CameraInitEx2 CameraInitEx2;
  5396. EXTERN _CameraUnInit CameraUnInit;
  5397. EXTERN _CameraPlay CameraPlay;
  5398. EXTERN _CameraPause CameraPause;
  5399. EXTERN _CameraStop CameraStop;
  5400. EXTERN _CameraSetDisplayMode CameraSetDisplayMode;
  5401. EXTERN _CameraDisplayRGB24 CameraDisplayRGB24;
  5402. EXTERN _CameraSetDisplayOffset CameraSetDisplayOffset;
  5403. EXTERN _CameraImageOverlay CameraImageOverlay;
  5404. EXTERN _CameraDisplayInit CameraDisplayInit;
  5405. EXTERN _CameraDisplayInitEx CameraDisplayInitEx;
  5406. EXTERN _CameraSetDisplaySize CameraSetDisplaySize;
  5407. EXTERN _CameraGetImageBuffer CameraGetImageBuffer;
  5408. EXTERN _CameraGetImageBufferEx CameraGetImageBufferEx;
  5409. EXTERN _CameraReleaseImageBuffer CameraReleaseImageBuffer;
  5410. EXTERN _CameraCreateSettingPage CameraCreateSettingPage;
  5411. EXTERN _CameraSetActiveSettingSubPage CameraSetActiveSettingSubPage;
  5412. EXTERN _CameraSetSettingPageParent CameraSetSettingPageParent;
  5413. EXTERN _CameraGetSettingPageHWnd CameraGetSettingPageHWnd;
  5414. EXTERN _CameraUpdateSettingPage CameraUpdateSettingPage;
  5415. EXTERN _CameraCustomizeResolution CameraCustomizeResolution;
  5416. EXTERN _CameraSetMirror CameraSetMirror;
  5417. EXTERN _CameraGetMirror CameraGetMirror;
  5418. EXTERN _CameraSetHardwareMirror CameraSetHardwareMirror;
  5419. EXTERN _CameraGetHardwareMirror CameraGetHardwareMirror;
  5420. EXTERN _CameraSetRotate CameraSetRotate;
  5421. EXTERN _CameraGetRotate CameraGetRotate;
  5422. EXTERN _CameraSetMonochrome CameraSetMonochrome;
  5423. EXTERN _CameraGetMonochrome CameraGetMonochrome;
  5424. EXTERN _CameraSetInverse CameraSetInverse;
  5425. EXTERN _CameraGetInverse CameraGetInverse;
  5426. EXTERN _CameraGetImageResolution CameraGetImageResolution;
  5427. EXTERN _CameraGetImageResolutionEx CameraGetImageResolutionEx;
  5428. EXTERN _CameraSetImageResolution CameraSetImageResolution;
  5429. EXTERN _CameraSetImageResolutionEx CameraSetImageResolutionEx;
  5430. EXTERN _CameraGetMediaType CameraGetMediaType;
  5431. EXTERN _CameraSetMediaType CameraSetMediaType;
  5432. EXTERN _CameraGetRawMaxAvailBits CameraGetRawMaxAvailBits;
  5433. EXTERN _CameraSetRawStartBit CameraSetRawStartBit;
  5434. EXTERN _CameraGetRawStartBit CameraGetRawStartBit;
  5435. EXTERN _CameraSetAeState CameraSetAeState;
  5436. EXTERN _CameraGetAeState CameraGetAeState;
  5437. EXTERN _CameraSetAeTarget CameraSetAeTarget;
  5438. EXTERN _CameraGetAeTarget CameraGetAeTarget;
  5439. EXTERN _CameraSetAeExposureRange CameraSetAeExposureRange;
  5440. EXTERN _CameraGetAeExposureRange CameraGetAeExposureRange;
  5441. EXTERN _CameraSetAeAnalogGainRange CameraSetAeAnalogGainRange;
  5442. EXTERN _CameraGetAeAnalogGainRange CameraGetAeAnalogGainRange;
  5443. EXTERN _CameraSetAeThreshold CameraSetAeThreshold;
  5444. EXTERN _CameraGetAeThreshold CameraGetAeThreshold;
  5445. EXTERN _CameraSetExposureTime CameraSetExposureTime;
  5446. EXTERN _CameraGetExposureTime CameraGetExposureTime;
  5447. EXTERN _CameraGetExposureTimeRange CameraGetExposureTimeRange;
  5448. EXTERN _CameraSetMultiExposureTime CameraSetMultiExposureTime;
  5449. EXTERN _CameraGetMultiExposureTime CameraGetMultiExposureTime;
  5450. EXTERN _CameraSetMultiExposureCount CameraSetMultiExposureCount;
  5451. EXTERN _CameraGetMultiExposureCount CameraGetMultiExposureCount;
  5452. EXTERN _CameraGetMultiExposureMaxCount CameraGetMultiExposureMaxCount;
  5453. EXTERN _CameraGetExposureLineTime CameraGetExposureLineTime;
  5454. EXTERN _CameraSetAnalogGain CameraSetAnalogGain;
  5455. EXTERN _CameraGetAnalogGain CameraGetAnalogGain;
  5456. EXTERN _CameraSetAnalogGainX CameraSetAnalogGainX;
  5457. EXTERN _CameraGetAnalogGainX CameraGetAnalogGainX;
  5458. EXTERN _CameraGetAnalogGainXRange CameraGetAnalogGainXRange;
  5459. EXTERN _CameraSetSharpness CameraSetSharpness;
  5460. EXTERN _CameraGetSharpness CameraGetSharpness;
  5461. EXTERN _CameraGetPresetClrTemp CameraGetPresetClrTemp;
  5462. EXTERN _CameraSetPresetClrTemp CameraSetPresetClrTemp;
  5463. EXTERN _CameraSetUserClrTempGain CameraSetUserClrTempGain;
  5464. EXTERN _CameraGetUserClrTempGain CameraGetUserClrTempGain;
  5465. EXTERN _CameraSetUserClrTempMatrix CameraSetUserClrTempMatrix;
  5466. EXTERN _CameraGetUserClrTempMatrix CameraGetUserClrTempMatrix;
  5467. EXTERN _CameraSetClrTempMode CameraSetClrTempMode;
  5468. EXTERN _CameraGetClrTempMode CameraGetClrTempMode;
  5469. EXTERN _CameraSetLutMode CameraSetLutMode;
  5470. EXTERN _CameraGetLutMode CameraGetLutMode;
  5471. EXTERN _CameraSelectLutPreset CameraSelectLutPreset;
  5472. EXTERN _CameraGetLutPresetSel CameraGetLutPresetSel;
  5473. EXTERN _CameraSetCustomLut CameraSetCustomLut;
  5474. EXTERN _CameraGetCustomLut CameraGetCustomLut;
  5475. EXTERN _CameraGetCurrentLut CameraGetCurrentLut;
  5476. EXTERN _CameraSetOnceWB CameraSetOnceWB;
  5477. EXTERN _CameraSetOnceBB CameraSetOnceBB;
  5478. EXTERN _CameraSetWbMode CameraSetWbMode;
  5479. EXTERN _CameraGetWbMode CameraGetWbMode;
  5480. EXTERN _CameraSetWbWindow CameraSetWbWindow;
  5481. EXTERN _CameraSetGain CameraSetGain;
  5482. EXTERN _CameraGetGain CameraGetGain;
  5483. EXTERN _CameraSetGamma CameraSetGamma;
  5484. EXTERN _CameraGetGamma CameraGetGamma;
  5485. EXTERN _CameraSetSaturation CameraSetSaturation;
  5486. EXTERN _CameraGetSaturation CameraGetSaturation;
  5487. EXTERN _CameraSetContrast CameraSetContrast;
  5488. EXTERN _CameraGetContrast CameraGetContrast;
  5489. EXTERN _CameraSetFrameSpeed CameraSetFrameSpeed;
  5490. EXTERN _CameraGetFrameSpeed CameraGetFrameSpeed;
  5491. EXTERN _CameraSetFrameRate CameraSetFrameRate;
  5492. EXTERN _CameraGetFrameRate CameraGetFrameRate;
  5493. EXTERN _CameraSetAntiFlick CameraSetAntiFlick;
  5494. EXTERN _CameraGetAntiFlick CameraGetAntiFlick;
  5495. EXTERN _CameraGetLightFrequency CameraGetLightFrequency;
  5496. EXTERN _CameraSetLightFrequency CameraSetLightFrequency;
  5497. EXTERN _CameraSetTransPackLen CameraSetTransPackLen;
  5498. EXTERN _CameraGetTransPackLen CameraGetTransPackLen;
  5499. EXTERN _CameraWriteSN CameraWriteSN;
  5500. EXTERN _CameraReadSN CameraReadSN;
  5501. EXTERN _CameraSaveParameter CameraSaveParameter;
  5502. EXTERN _CameraLoadParameter CameraLoadParameter;
  5503. EXTERN _CameraGetCurrentParameterGroup CameraGetCurrentParameterGroup;
  5504. EXTERN _CameraEnumerateDevice CameraEnumerateDevice;
  5505. EXTERN _CameraEnumerateDeviceEx CameraEnumerateDeviceEx;
  5506. EXTERN _CameraGetCapability CameraGetCapability;
  5507. EXTERN _CameraImageProcess CameraImageProcess;
  5508. EXTERN _CameraImageProcessEx CameraImageProcessEx;
  5509. EXTERN _CameraSoftTrigger CameraSoftTrigger;
  5510. EXTERN _CameraSetTriggerMode CameraSetTriggerMode;
  5511. EXTERN _CameraGetTriggerMode CameraGetTriggerMode;
  5512. EXTERN _CameraSetStrobeMode CameraSetStrobeMode;
  5513. EXTERN _CameraGetStrobeMode CameraGetStrobeMode;
  5514. EXTERN _CameraSetStrobeDelayTime CameraSetStrobeDelayTime;
  5515. EXTERN _CameraGetStrobeDelayTime CameraGetStrobeDelayTime;
  5516. EXTERN _CameraSetStrobePulseWidth CameraSetStrobePulseWidth;
  5517. EXTERN _CameraGetStrobePulseWidth CameraGetStrobePulseWidth;
  5518. EXTERN _CameraSetStrobePolarity CameraSetStrobePolarity;
  5519. EXTERN _CameraGetStrobePolarity CameraGetStrobePolarity;
  5520. EXTERN _CameraSetExtTrigSignalType CameraSetExtTrigSignalType;
  5521. EXTERN _CameraGetExtTrigSignalType CameraGetExtTrigSignalType;
  5522. EXTERN _CameraSetExtTrigShutterType CameraSetExtTrigShutterType;
  5523. EXTERN _CameraGetExtTrigShutterType CameraGetExtTrigShutterType;
  5524. EXTERN _CameraSetExtTrigDelayTime CameraSetExtTrigDelayTime;
  5525. EXTERN _CameraGetExtTrigDelayTime CameraGetExtTrigDelayTime;
  5526. EXTERN _CameraSetExtTrigIntervalTime CameraSetExtTrigIntervalTime;
  5527. EXTERN _CameraGetExtTrigIntervalTime CameraGetExtTrigIntervalTime;
  5528. EXTERN _CameraSetExtTrigJitterTime CameraSetExtTrigJitterTime;
  5529. EXTERN _CameraGetExtTrigJitterTime CameraGetExtTrigJitterTime;
  5530. EXTERN _CameraGetExtTrigCapability CameraGetExtTrigCapability;
  5531. EXTERN _CameraPauseLevelTrigger CameraPauseLevelTrigger;
  5532. EXTERN _CameraShowSettingPage CameraShowSettingPage;
  5533. EXTERN _CameraGetFrameStatistic CameraGetFrameStatistic;
  5534. EXTERN _CameraGetResolutionForSnap CameraGetResolutionForSnap;
  5535. EXTERN _CameraSetResolutionForSnap CameraSetResolutionForSnap;
  5536. EXTERN _CameraIsAeWinVisible CameraIsAeWinVisible;
  5537. EXTERN _CameraIsWbWinVisible CameraIsWbWinVisible;
  5538. EXTERN _CameraGetNoiseFilterState CameraGetNoiseFilterState;
  5539. EXTERN _CameraSetParameterMode CameraSetParameterMode;
  5540. EXTERN _CameraGetParameterMode CameraGetParameterMode;
  5541. EXTERN _CameraSetParameterMask CameraSetParameterMask;
  5542. EXTERN _CameraGetTriggerCount CameraGetTriggerCount;
  5543. EXTERN _CameraGetCrossLine CameraGetCrossLine;
  5544. EXTERN _CameraSetCrossLine CameraSetCrossLine;
  5545. EXTERN _CameraGetTriggerDelayTime CameraGetTriggerDelayTime;
  5546. EXTERN _CameraSetTriggerDelayTime CameraSetTriggerDelayTime;
  5547. EXTERN _CameraSetAeWinVisible CameraSetAeWinVisible;
  5548. EXTERN _CameraSetNoiseFilter CameraSetNoiseFilter;
  5549. EXTERN _CameraSetTriggerCount CameraSetTriggerCount;
  5550. EXTERN _CameraCustomizeReferWin CameraCustomizeReferWin;
  5551. EXTERN _CameraSetAeWindow CameraSetAeWindow;
  5552. EXTERN _CameraReadParameterFromFile CameraReadParameterFromFile;
  5553. EXTERN _CameraSetWbWinVisible CameraSetWbWinVisible;
  5554. EXTERN _CameraRstTimeStamp CameraRstTimeStamp;
  5555. EXTERN _CameraGetCapabilityEx CameraGetCapabilityEx;
  5556. EXTERN _CameraSaveUserData CameraSaveUserData;
  5557. EXTERN _CameraLoadUserData CameraLoadUserData;
  5558. EXTERN _CameraGetFriendlyName CameraGetFriendlyName;
  5559. EXTERN _CameraSetFriendlyName CameraSetFriendlyName;
  5560. EXTERN _CameraSdkGetVersionString CameraSdkGetVersionString;
  5561. EXTERN _CameraCheckFwUpdate CameraCheckFwUpdate;
  5562. EXTERN _CameraGetFirmwareVersion CameraGetFirmwareVersion;
  5563. EXTERN _CameraGetFirmwareVision CameraGetFirmwareVision;
  5564. EXTERN _CameraGetEnumInfo CameraGetEnumInfo;
  5565. EXTERN _CameraGetInerfaceVersion CameraGetInerfaceVersion;
  5566. EXTERN _CameraSetIOState CameraSetIOState;
  5567. EXTERN _CameraSetIOStateEx CameraSetIOStateEx;
  5568. EXTERN _CameraGetOutPutIOState CameraGetOutPutIOState;
  5569. EXTERN _CameraGetOutPutIOStateEx CameraGetOutPutIOStateEx;
  5570. EXTERN _CameraGetIOState CameraGetIOState;
  5571. EXTERN _CameraGetIOStateEx CameraGetIOStateEx;
  5572. EXTERN _CameraSetInPutIOMode CameraSetInPutIOMode;
  5573. EXTERN _CameraGetInPutIOMode CameraGetInPutIOMode;
  5574. EXTERN _CameraSetOutPutIOMode CameraSetOutPutIOMode;
  5575. EXTERN _CameraGetOutPutIOMode CameraGetOutPutIOMode;
  5576. EXTERN _CameraGetInPutIOModeCapbility CameraGetInPutIOModeCapbility;
  5577. EXTERN _CameraGetOutPutIOModeCapbility CameraGetOutPutIOModeCapbility;
  5578. EXTERN _CameraSetOutPutPWM CameraSetOutPutPWM;
  5579. EXTERN _CameraSetRotaryEncDir CameraSetRotaryEncDir;
  5580. EXTERN _CameraGetRotaryEncDir CameraGetRotaryEncDir;
  5581. EXTERN _CameraSetRotaryEncFreq CameraSetRotaryEncFreq;
  5582. EXTERN _CameraGetRotaryEncFreq CameraGetRotaryEncFreq;
  5583. EXTERN _CameraSetInPutIOFormat CameraSetInPutIOFormat;
  5584. EXTERN _CameraGetInPutIOFormat CameraGetInPutIOFormat;
  5585. EXTERN _CameraSetOutPutIOFormat CameraSetOutPutIOFormat;
  5586. EXTERN _CameraGetOutPutIOFormat CameraGetOutPutIOFormat;
  5587. EXTERN _CameraGetInPutIOFormatCapbility CameraGetInPutIOFormatCapbility;
  5588. EXTERN _CameraGetOutPutIOFormatCapbility CameraGetOutPutIOFormatCapbility;
  5589. EXTERN _CameraSetBayerDecAlgorithm CameraSetBayerDecAlgorithm;
  5590. EXTERN _CameraGetBayerDecAlgorithm CameraGetBayerDecAlgorithm;
  5591. EXTERN _CameraSetBlackLevel CameraSetBlackLevel;
  5592. EXTERN _CameraGetBlackLevel CameraGetBlackLevel;
  5593. EXTERN _CameraSetWhiteLevel CameraSetWhiteLevel;
  5594. EXTERN _CameraGetWhiteLevel CameraGetWhiteLevel;
  5595. EXTERN _CameraSetIspOutFormat CameraSetIspOutFormat;
  5596. EXTERN _CameraGetIspOutFormat CameraGetIspOutFormat;
  5597. EXTERN _CameraGetErrorString CameraGetErrorString;
  5598. EXTERN _CameraGetCapabilityEx2 CameraGetCapabilityEx2;
  5599. EXTERN _CameraGetImageBufferEx2 CameraGetImageBufferEx2;
  5600. EXTERN _CameraGetImageBufferEx3 CameraGetImageBufferEx3;
  5601. EXTERN _CameraReConnect CameraReConnect;
  5602. EXTERN _CameraConnectTest CameraConnectTest;
  5603. EXTERN _CameraSetLedEnable CameraSetLedEnable;
  5604. EXTERN _CameraGetLedEnable CameraGetLedEnable;
  5605. EXTERN _CameraSetLedOnOff CameraSetLedOnOff;
  5606. EXTERN _CameraGetLedOnOff CameraGetLedOnOff;
  5607. EXTERN _CameraSetLedDuration CameraSetLedDuration;
  5608. EXTERN _CameraGetLedDuration CameraGetLedDuration;
  5609. EXTERN _CameraSetLedBrightness CameraSetLedBrightness;
  5610. EXTERN _CameraGetLedBrightness CameraGetLedBrightness;
  5611. EXTERN _CameraEnableTransferRoi CameraEnableTransferRoi;
  5612. EXTERN _CameraSetTransferRoi CameraSetTransferRoi;
  5613. EXTERN _CameraGetTransferRoi CameraGetTransferRoi;
  5614. EXTERN _CameraAlignMalloc CameraAlignMalloc;
  5615. EXTERN _CameraAlignFree CameraAlignFree;
  5616. EXTERN _CameraSetAutoConnect CameraSetAutoConnect;
  5617. EXTERN _CameraGetAutoConnect CameraGetAutoConnect;
  5618. EXTERN _CameraGetReConnectCounts CameraGetReConnectCounts;
  5619. EXTERN _CameraSetSingleGrabMode CameraSetSingleGrabMode;
  5620. EXTERN _CameraGetSingleGrabMode CameraGetSingleGrabMode;
  5621. EXTERN _CameraRestartGrab CameraRestartGrab;
  5622. EXTERN _CameraDrawText CameraDrawText;
  5623. EXTERN _CameraGigeEnumerateDevice CameraGigeEnumerateDevice;
  5624. EXTERN _CameraGigeGetIp CameraGigeGetIp;
  5625. EXTERN _CameraGigeSetIp CameraGigeSetIp;
  5626. EXTERN _CameraGigeGetMac CameraGigeGetMac;
  5627. EXTERN _CameraEnableFastResponse CameraEnableFastResponse;
  5628. EXTERN _CameraSetCorrectDeadPixel CameraSetCorrectDeadPixel;
  5629. EXTERN _CameraGetCorrectDeadPixel CameraGetCorrectDeadPixel;
  5630. EXTERN _CameraFlatFieldingCorrectSetEnable CameraFlatFieldingCorrectSetEnable;
  5631. EXTERN _CameraFlatFieldingCorrectGetEnable CameraFlatFieldingCorrectGetEnable;
  5632. EXTERN _CameraFlatFieldingCorrectSetParameter CameraFlatFieldingCorrectSetParameter;
  5633. EXTERN _CameraFlatFieldingCorrectSaveParameterToFile CameraFlatFieldingCorrectSaveParameterToFile;
  5634. EXTERN _CameraFlatFieldingCorrectLoadParameterFromFile CameraFlatFieldingCorrectLoadParameterFromFile;
  5635. EXTERN _CameraCommonCall CameraCommonCall;
  5636. EXTERN _CameraSetDenoise3DParams CameraSetDenoise3DParams;
  5637. EXTERN _CameraGetDenoise3DParams CameraGetDenoise3DParams;
  5638. EXTERN _CameraManualDenoise3D CameraManualDenoise3D;
  5639. EXTERN _CameraCustomizeDeadPixels CameraCustomizeDeadPixels;
  5640. EXTERN _CameraReadDeadPixels CameraReadDeadPixels;
  5641. EXTERN _CameraAddDeadPixels CameraAddDeadPixels;
  5642. EXTERN _CameraRemoveDeadPixels CameraRemoveDeadPixels;
  5643. EXTERN _CameraRemoveAllDeadPixels CameraRemoveAllDeadPixels;
  5644. EXTERN _CameraSaveDeadPixels CameraSaveDeadPixels;
  5645. EXTERN _CameraSaveDeadPixelsToFile CameraSaveDeadPixelsToFile;
  5646. EXTERN _CameraLoadDeadPixelsFromFile CameraLoadDeadPixelsFromFile;
  5647. EXTERN _CameraGetImageBufferPriority CameraGetImageBufferPriority;
  5648. EXTERN _CameraGetImageBufferPriorityEx CameraGetImageBufferPriorityEx;
  5649. EXTERN _CameraGetImageBufferPriorityEx2 CameraGetImageBufferPriorityEx2;
  5650. EXTERN _CameraGetImageBufferPriorityEx3 CameraGetImageBufferPriorityEx3;
  5651. EXTERN _CameraClearBuffer CameraClearBuffer;
  5652. EXTERN _CameraSoftTriggerEx CameraSoftTriggerEx;
  5653. EXTERN _CameraSetHDR CameraSetHDR;
  5654. EXTERN _CameraGetHDR CameraGetHDR;
  5655. EXTERN _CameraGetFrameID CameraGetFrameID;
  5656. EXTERN _CameraGetFrameTimeStamp CameraGetFrameTimeStamp;
  5657. EXTERN _CameraSetHDRGainMode CameraSetHDRGainMode;
  5658. EXTERN _CameraGetHDRGainMode CameraGetHDRGainMode;
  5659. EXTERN _CameraCreateDIBitmap CameraCreateDIBitmap;
  5660. EXTERN _CameraDrawFrameBuffer CameraDrawFrameBuffer;
  5661. EXTERN _CameraFlipFrameBuffer CameraFlipFrameBuffer;
  5662. EXTERN _CameraConvertFrameBufferFormat CameraConvertFrameBufferFormat;
  5663. EXTERN _CameraSetConnectionStatusCallback CameraSetConnectionStatusCallback;
  5664. EXTERN _CameraSetLightingControllerMode CameraSetLightingControllerMode;
  5665. EXTERN _CameraSetLightingControllerState CameraSetLightingControllerState;
  5666. EXTERN _CameraSetFrameResendCount CameraSetFrameResendCount;
  5667. EXTERN _CameraGetEyeCount CameraGetEyeCount;
  5668. EXTERN _CameraMultiEyeImageProcess CameraMultiEyeImageProcess;
  5669. EXTERN _CameraGetRegionAverageGray CameraGetRegionAverageGray;
  5670. EXTERN _CameraGetMediaCapability CameraGetMediaCapability;
  5671. EXTERN _CameraSetMediaBitRate CameraSetMediaBitRate;
  5672. EXTERN _CameraGetMediaBitRate CameraGetMediaBitRate;
  5673. EXTERN _CameraSetFrameEventCallback CameraSetFrameEventCallback;
  5674. EXTERN _CameraSetNoiseReductionValue CameraSetNoiseReductionValue;
  5675. EXTERN _CameraGetNoiseReductionValue CameraGetNoiseReductionValue;
  5676. EXTERN _CameraSetLogarithmicCurveValue CameraSetLogarithmicCurveValue;
  5677. EXTERN _CameraGetLogarithmicCurveValue CameraGetLogarithmicCurveValue;
  5678. EXTERN _CameraSetSpliceLines CameraSetSpliceLines;
  5679. EXTERN _CameraGetSpliceLines CameraGetSpliceLines;
  5680. EXTERN _CameraSnapChannelBuffer CameraSnapChannelBuffer;
  5681. EXTERN _CameraReleaseChannelBuffer CameraReleaseChannelBuffer;
  5682. EXTERN _CameraSetRotaryEncTrigger CameraSetRotaryEncTrigger;
  5683. EXTERN _CameraGetRotaryEncTrigger CameraGetRotaryEncTrigger;
  5684. EXTERN _CameraGrabber_CreateFromDevicePage CameraGrabber_CreateFromDevicePage;
  5685. EXTERN _CameraGrabber_CreateByIndex CameraGrabber_CreateByIndex;
  5686. EXTERN _CameraGrabber_CreateByName CameraGrabber_CreateByName;
  5687. EXTERN _CameraGrabber_Create CameraGrabber_Create;
  5688. EXTERN _CameraGrabber_Destroy CameraGrabber_Destroy;
  5689. EXTERN _CameraGrabber_SetHWnd CameraGrabber_SetHWnd;
  5690. EXTERN _CameraGrabber_SetPriority CameraGrabber_SetPriority;
  5691. EXTERN _CameraGrabber_StartLive CameraGrabber_StartLive;
  5692. EXTERN _CameraGrabber_StopLive CameraGrabber_StopLive;
  5693. EXTERN _CameraGrabber_SaveImage CameraGrabber_SaveImage;
  5694. EXTERN _CameraGrabber_SaveImageAsync CameraGrabber_SaveImageAsync;
  5695. EXTERN _CameraGrabber_SaveImageAsyncEx CameraGrabber_SaveImageAsyncEx;
  5696. EXTERN _CameraGrabber_SetSaveImageCompleteCallback CameraGrabber_SetSaveImageCompleteCallback;
  5697. EXTERN _CameraGrabber_SetFrameListener CameraGrabber_SetFrameListener;
  5698. EXTERN _CameraGrabber_SetRawCallback CameraGrabber_SetRawCallback;
  5699. EXTERN _CameraGrabber_SetRGBCallback CameraGrabber_SetRGBCallback;
  5700. EXTERN _CameraGrabber_GetCameraHandle CameraGrabber_GetCameraHandle;
  5701. EXTERN _CameraGrabber_GetStat CameraGrabber_GetStat;
  5702. EXTERN _CameraGrabber_GetCameraDevInfo CameraGrabber_GetCameraDevInfo;
  5703. EXTERN _CameraImage_Create CameraImage_Create;
  5704. EXTERN _CameraImage_Destroy CameraImage_Destroy;
  5705. EXTERN _CameraImage_GetData CameraImage_GetData;
  5706. EXTERN _CameraImage_GetUserData CameraImage_GetUserData;
  5707. EXTERN _CameraImage_SetUserData CameraImage_SetUserData;
  5708. EXTERN _CameraImage_IsEmpty CameraImage_IsEmpty;
  5709. EXTERN _CameraImage_Draw CameraImage_Draw;
  5710. EXTERN _CameraImage_BitBlt CameraImage_BitBlt;
  5711. EXTERN _CameraImage_SaveAsBmp CameraImage_SaveAsBmp;
  5712. EXTERN _CameraImage_SaveAsJpeg CameraImage_SaveAsJpeg;
  5713. EXTERN _CameraImage_SaveAsPng CameraImage_SaveAsPng;
  5714. EXTERN _CameraImage_SaveAsRaw CameraImage_SaveAsRaw;
  5715. EXTERN _CameraZoomTool_Create CameraZoomTool_Create;
  5716. EXTERN _CameraZoomTool_Destory CameraZoomTool_Destory;
  5717. EXTERN _CameraZoomTool_SetViewOrg CameraZoomTool_SetViewOrg;
  5718. EXTERN _CameraZoomTool_GetViewOrg CameraZoomTool_GetViewOrg;
  5719. EXTERN _CameraZoomTool_SetViewCenter CameraZoomTool_SetViewCenter;
  5720. EXTERN _CameraZoomTool_GetViewCenter CameraZoomTool_GetViewCenter;
  5721. EXTERN _CameraZoomTool_SetViewSize CameraZoomTool_SetViewSize;
  5722. EXTERN _CameraZoomTool_GetViewSize CameraZoomTool_GetViewSize;
  5723. EXTERN _CameraZoomTool_SetViewScrollPos CameraZoomTool_SetViewScrollPos;
  5724. EXTERN _CameraZoomTool_GetViewScrollPos CameraZoomTool_GetViewScrollPos;
  5725. EXTERN _CameraZoomTool_GetViewScrollRange CameraZoomTool_GetViewScrollRange;
  5726. EXTERN _CameraZoomTool_SetFrameSize CameraZoomTool_SetFrameSize;
  5727. EXTERN _CameraZoomTool_GetFrameSize CameraZoomTool_GetFrameSize;
  5728. EXTERN _CameraZoomTool_SetScale CameraZoomTool_SetScale;
  5729. EXTERN _CameraZoomTool_GetScale CameraZoomTool_GetScale;
  5730. EXTERN _CameraZoomTool_SetScaleAnchor CameraZoomTool_SetScaleAnchor;
  5731. EXTERN _CameraZoomTool_GetScaleAnchor CameraZoomTool_GetScaleAnchor;
  5732. EXTERN _CameraZoomTool_GetDrawRect CameraZoomTool_GetDrawRect;
  5733. EXTERN _CameraZoomTool_Transform CameraZoomTool_Transform;
  5734. EXTERN _CameraZoomTool_Draw CameraZoomTool_Draw;
  5735. CameraSdkStatus LoadSdkApi();
  5736. CameraSdkStatus UnloadCameraSdk();
  5737. #ifdef API_LOAD_MAIN
  5738. #undef API_LOAD_MAIN
  5739. //如果SDK版本不匹配,可能出现某些函数加载失败。
  5740. #define CHCEK_API_LOAD 0 // 1:加载API函数后检测,如果加载失败,弹出提示框。 0:不检测(可以通过SDK版本号进行对比)。
  5741. #if CHCEK_API_LOAD
  5742. #define CHECK_API(API) if(API == NULL)\
  5743. {\
  5744. MessageBoxA(NULL,#API,gSdkLanguageSel?"函数加载失败":"Function load failed!",0);\
  5745. return CAMERA_STATUS_FAILED;\
  5746. }
  5747. #else
  5748. #define CHECK_API(API)
  5749. #endif
  5750. HMODULE ghSDK = NULL;
  5751. CameraSdkStatus LoadSdkApi()
  5752. {
  5753. char szCompany[64];
  5754. char strPath[MAX_PATH];
  5755. char strDir[MAX_PATH];
  5756. HKEY hkey = NULL;
  5757. DWORD dwType = REG_SZ;
  5758. DWORD dwSize = MAX_PATH;
  5759. BYTE abyValue[MAX_PATH];
  5760. LONG status;
  5761. gSdkLanguageSel = 0;
  5762. if (ERROR_SUCCESS != RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Industry Camera", 0, KEY_READ, &hkey))
  5763. return CAMERA_STATUS_NOT_INITIALIZED;
  5764. dwSize = sizeof(szCompany);
  5765. status = RegQueryValueExA(hkey, "Company", NULL, &dwType, (LPBYTE)szCompany, &dwSize);
  5766. RegCloseKey(hkey);
  5767. hkey = NULL;
  5768. if (status != ERROR_SUCCESS)
  5769. return CAMERA_STATUS_NOT_INITIALIZED;
  5770. #ifdef _WIN64
  5771. sprintf_s(strPath, sizeof(strPath), "Software\\%s\\Settings_X64", szCompany);
  5772. #else
  5773. sprintf_s(strPath, sizeof(strPath), "Software\\%s\\Settings", szCompany);
  5774. #endif
  5775. hkey = NULL;
  5776. RegCreateKeyExA(HKEY_LOCAL_MACHINE, strPath, 0, NULL, 0, KEY_READ, NULL, &hkey, NULL);
  5777. do
  5778. {
  5779. if (NULL != hkey)
  5780. {
  5781. memset(abyValue, 0x00, MAX_PATH);
  5782. dwType = REG_SZ;
  5783. dwSize = MAX_PATH;
  5784. status = RegQueryValueExA(hkey, "Language", NULL, &dwType, abyValue, &dwSize);
  5785. if (ERROR_SUCCESS == status)
  5786. {
  5787. abyValue[MAX_PATH-1] = '\0';
  5788. if (strcmp((const char *)abyValue,"Chinese") == 0)
  5789. {
  5790. gSdkLanguageSel = 1;
  5791. }
  5792. else if (strcmp((const char *)abyValue,"TradChinese") == 0)
  5793. {
  5794. gSdkLanguageSel = 2;
  5795. }
  5796. }
  5797. dwType = REG_SZ;
  5798. dwSize = MAX_PATH;
  5799. status = RegQueryValueExA(hkey, "SdkPath", NULL, &dwType, abyValue, &dwSize);
  5800. if (ERROR_SUCCESS == status)
  5801. {
  5802. abyValue[MAX_PATH-1] = '\0';
  5803. strcpy(strPath,(const char *)abyValue);
  5804. break;
  5805. }
  5806. }
  5807. MessageBoxA(NULL, "Failed to access registry", "Error", 0);
  5808. return CAMERA_STATUS_FAILED;
  5809. } while(0);
  5810. if (hkey != NULL)
  5811. {
  5812. RegCloseKey(hkey);
  5813. hkey = NULL;
  5814. }
  5815. #ifndef _WIN64
  5816. sprintf_s(strDir,sizeof(strDir),"%s%s",strPath,"\\MVCAMSDK.dll");
  5817. #else
  5818. sprintf_s(strDir,sizeof(strDir),"%s%s",strPath,"\\MVCAMSDK_X64.dll");
  5819. #endif
  5820. ghSDK = ::LoadLibraryA(strDir);
  5821. if (NULL == ghSDK)
  5822. {
  5823. if (gSdkLanguageSel == 1)
  5824. {
  5825. sprintf_s(strPath,sizeof(strPath),"文件[%s]加载失败 ,请确认该路径存在该文件或者重新进行安装!",strDir);
  5826. MessageBoxA(NULL, strPath, "错误", 0);
  5827. }
  5828. else
  5829. {
  5830. sprintf_s(strPath,sizeof(strPath),"Failed to load file[%s] ,put the file on the directory or re-install the platform and try again!",strDir);
  5831. MessageBoxA(NULL, strPath, "Error", 0);
  5832. }
  5833. return CAMERA_STATUS_FAILED;
  5834. }
  5835. #define GET_MVSDK_API(name) \
  5836. name = (_##name)GetProcAddress(ghSDK, #name);\
  5837. CHECK_API(name)
  5838. GET_MVSDK_API(CameraSdkInit);
  5839. GET_MVSDK_API(CameraSetSysOption);
  5840. GET_MVSDK_API(CameraSetCallbackFunction);
  5841. GET_MVSDK_API(CameraGetInformation);
  5842. GET_MVSDK_API(CameraInit);
  5843. GET_MVSDK_API(CameraInitEx);
  5844. GET_MVSDK_API(CameraInitEx2);
  5845. GET_MVSDK_API(CameraUnInit);
  5846. GET_MVSDK_API(CameraImageProcess);
  5847. GET_MVSDK_API(CameraImageProcessEx);
  5848. GET_MVSDK_API(CameraPlay);
  5849. GET_MVSDK_API(CameraPause);
  5850. GET_MVSDK_API(CameraStop);
  5851. GET_MVSDK_API(CameraDisplayRGB24);
  5852. GET_MVSDK_API(CameraSetDisplayMode);
  5853. GET_MVSDK_API(CameraImageOverlay);
  5854. GET_MVSDK_API(CameraDisplayInit);
  5855. GET_MVSDK_API(CameraDisplayInitEx);
  5856. GET_MVSDK_API(CameraSetDisplaySize);
  5857. GET_MVSDK_API(CameraSetDisplayOffset);
  5858. GET_MVSDK_API(CameraInitRecord);
  5859. GET_MVSDK_API(CameraStopRecord);
  5860. GET_MVSDK_API(CameraPushFrame);
  5861. GET_MVSDK_API(CameraSpecialControl);
  5862. GET_MVSDK_API(CameraSnapToBuffer);
  5863. GET_MVSDK_API(CameraSnapJpegToFile);
  5864. GET_MVSDK_API(CameraGetImageBuffer);
  5865. GET_MVSDK_API(CameraGetImageBufferEx);
  5866. GET_MVSDK_API(CameraReleaseImageBuffer);
  5867. GET_MVSDK_API(CameraCreateSettingPage);
  5868. GET_MVSDK_API(CameraSetActiveSettingSubPage);
  5869. GET_MVSDK_API(CameraSetSettingPageParent);
  5870. GET_MVSDK_API(CameraGetSettingPageHWnd);
  5871. GET_MVSDK_API(CameraUpdateSettingPage);
  5872. GET_MVSDK_API(CameraSetMirror);
  5873. GET_MVSDK_API(CameraGetMirror);
  5874. GET_MVSDK_API(CameraSetHardwareMirror);
  5875. GET_MVSDK_API(CameraGetHardwareMirror);
  5876. GET_MVSDK_API(CameraSetRotate);
  5877. GET_MVSDK_API(CameraGetRotate);
  5878. GET_MVSDK_API(CameraSetMonochrome);
  5879. GET_MVSDK_API(CameraGetMonochrome);
  5880. GET_MVSDK_API(CameraSetInverse);
  5881. GET_MVSDK_API(CameraGetInverse);
  5882. GET_MVSDK_API(CameraCustomizeResolution);
  5883. GET_MVSDK_API(CameraGetImageResolution);
  5884. GET_MVSDK_API(CameraGetImageResolutionEx);
  5885. GET_MVSDK_API(CameraSetImageResolution);
  5886. GET_MVSDK_API(CameraSetImageResolutionEx);
  5887. GET_MVSDK_API(CameraGetMediaType);
  5888. GET_MVSDK_API(CameraSetMediaType);
  5889. GET_MVSDK_API(CameraGetRawMaxAvailBits);
  5890. GET_MVSDK_API(CameraSetRawStartBit);
  5891. GET_MVSDK_API(CameraGetRawStartBit);
  5892. GET_MVSDK_API(CameraSetAeState);
  5893. GET_MVSDK_API(CameraGetAeState);
  5894. GET_MVSDK_API(CameraSetAeTarget);
  5895. GET_MVSDK_API(CameraGetAeTarget);
  5896. GET_MVSDK_API(CameraSetAeExposureRange);
  5897. GET_MVSDK_API(CameraGetAeExposureRange);
  5898. GET_MVSDK_API(CameraSetAeAnalogGainRange);
  5899. GET_MVSDK_API(CameraGetAeAnalogGainRange);
  5900. GET_MVSDK_API(CameraSetAeThreshold);
  5901. GET_MVSDK_API(CameraGetAeThreshold);
  5902. GET_MVSDK_API(CameraIsAeWinVisible);
  5903. GET_MVSDK_API(CameraSetExposureTime);
  5904. GET_MVSDK_API(CameraGetExposureTime);
  5905. GET_MVSDK_API(CameraGetExposureTimeRange);
  5906. GET_MVSDK_API(CameraSetMultiExposureTime);
  5907. GET_MVSDK_API(CameraGetMultiExposureTime);
  5908. GET_MVSDK_API(CameraSetMultiExposureCount);
  5909. GET_MVSDK_API(CameraGetMultiExposureCount);
  5910. GET_MVSDK_API(CameraGetMultiExposureMaxCount);
  5911. GET_MVSDK_API(CameraGetExposureLineTime);
  5912. GET_MVSDK_API(CameraSetAnalogGain);
  5913. GET_MVSDK_API(CameraGetAnalogGain);
  5914. GET_MVSDK_API(CameraSetAnalogGainX);
  5915. GET_MVSDK_API(CameraGetAnalogGainX);
  5916. GET_MVSDK_API(CameraGetAnalogGainXRange);
  5917. GET_MVSDK_API(CameraSetSharpness);
  5918. GET_MVSDK_API(CameraGetSharpness);
  5919. GET_MVSDK_API(CameraSetOnceWB);
  5920. GET_MVSDK_API(CameraSetLutMode);
  5921. GET_MVSDK_API(CameraGetLutMode);
  5922. GET_MVSDK_API(CameraSelectLutPreset);
  5923. GET_MVSDK_API(CameraGetLutPresetSel);
  5924. GET_MVSDK_API(CameraSetCustomLut);
  5925. GET_MVSDK_API(CameraGetCustomLut);
  5926. GET_MVSDK_API(CameraGetCurrentLut);
  5927. GET_MVSDK_API(CameraSetWbMode);
  5928. GET_MVSDK_API(CameraGetWbMode);
  5929. GET_MVSDK_API(CameraSetWbWindow);
  5930. GET_MVSDK_API(CameraIsWbWinVisible);
  5931. GET_MVSDK_API(CameraSaveImage);
  5932. GET_MVSDK_API(CameraSetGain);
  5933. GET_MVSDK_API(CameraGetGain);
  5934. GET_MVSDK_API(CameraSetGamma);
  5935. GET_MVSDK_API(CameraGetGamma);
  5936. GET_MVSDK_API(CameraSetSaturation);
  5937. GET_MVSDK_API(CameraGetSaturation);
  5938. GET_MVSDK_API(CameraSetContrast);
  5939. GET_MVSDK_API(CameraGetContrast);
  5940. GET_MVSDK_API(CameraSetFrameSpeed);
  5941. GET_MVSDK_API(CameraGetFrameSpeed);
  5942. GET_MVSDK_API(CameraSetFrameRate);
  5943. GET_MVSDK_API(CameraGetFrameRate);
  5944. GET_MVSDK_API(CameraSetAntiFlick);
  5945. GET_MVSDK_API(CameraGetAntiFlick);
  5946. GET_MVSDK_API(CameraGetLightFrequency);
  5947. GET_MVSDK_API(CameraSetLightFrequency);
  5948. GET_MVSDK_API(CameraSetTransPackLen);
  5949. GET_MVSDK_API(CameraGetTransPackLen);
  5950. GET_MVSDK_API(CameraWriteSN);
  5951. GET_MVSDK_API(CameraReadSN);
  5952. GET_MVSDK_API(CameraGetPresetClrTemp);
  5953. GET_MVSDK_API(CameraSetPresetClrTemp);
  5954. GET_MVSDK_API(CameraSaveParameter);
  5955. GET_MVSDK_API(CameraLoadParameter);
  5956. GET_MVSDK_API(CameraGetCurrentParameterGroup);
  5957. GET_MVSDK_API(CameraEnumerateDevice);
  5958. GET_MVSDK_API(CameraEnumerateDeviceEx);
  5959. GET_MVSDK_API(CameraGetCapability);
  5960. GET_MVSDK_API(CameraSoftTrigger);
  5961. GET_MVSDK_API(CameraSetTriggerMode);
  5962. GET_MVSDK_API(CameraGetTriggerMode);
  5963. GET_MVSDK_API(CameraShowSettingPage);
  5964. GET_MVSDK_API(CameraGetFrameStatistic);
  5965. GET_MVSDK_API(CameraGetResolutionForSnap);
  5966. GET_MVSDK_API(CameraSetResolutionForSnap);
  5967. GET_MVSDK_API(CameraGetNoiseFilterState);
  5968. GET_MVSDK_API(CameraSetParameterMode);
  5969. GET_MVSDK_API(CameraGetParameterMode);
  5970. GET_MVSDK_API(CameraSetParameterMask);
  5971. GET_MVSDK_API(CameraGetTriggerCount);
  5972. GET_MVSDK_API(CameraGetCrossLine);
  5973. GET_MVSDK_API(CameraSetCrossLine);
  5974. GET_MVSDK_API(CameraGetTriggerDelayTime);
  5975. GET_MVSDK_API(CameraSetTriggerDelayTime);
  5976. GET_MVSDK_API(CameraSetAeWinVisible);
  5977. GET_MVSDK_API(CameraSetNoiseFilter);
  5978. GET_MVSDK_API(CameraSetTriggerCount);
  5979. GET_MVSDK_API(CameraCustomizeReferWin);
  5980. GET_MVSDK_API(CameraSetAeWindow);
  5981. GET_MVSDK_API(CameraReadParameterFromFile);
  5982. GET_MVSDK_API(CameraSetWbWinVisible);
  5983. GET_MVSDK_API(CameraRstTimeStamp);
  5984. GET_MVSDK_API(CameraGetCapabilityEx);
  5985. GET_MVSDK_API(CameraLoadUserData);
  5986. GET_MVSDK_API(CameraSaveUserData);
  5987. GET_MVSDK_API(CameraIsOpened);
  5988. GET_MVSDK_API(CameraSetFriendlyName);
  5989. GET_MVSDK_API(CameraGetFriendlyName);
  5990. GET_MVSDK_API(CameraSetUserClrTempGain);
  5991. GET_MVSDK_API(CameraGetUserClrTempGain);
  5992. GET_MVSDK_API(CameraSetUserClrTempMatrix);
  5993. GET_MVSDK_API(CameraGetUserClrTempMatrix);
  5994. GET_MVSDK_API(CameraSetClrTempMode);
  5995. GET_MVSDK_API(CameraGetClrTempMode);
  5996. GET_MVSDK_API(CameraSdkGetVersionString);
  5997. GET_MVSDK_API(CameraCheckFwUpdate);
  5998. GET_MVSDK_API(CameraGetFirmwareVersion);
  5999. GET_MVSDK_API(CameraGetFirmwareVision);
  6000. GET_MVSDK_API(CameraGetEnumInfo);
  6001. GET_MVSDK_API(CameraGetInerfaceVersion);
  6002. GET_MVSDK_API(CameraSetIOState);
  6003. GET_MVSDK_API(CameraSetIOStateEx);
  6004. GET_MVSDK_API(CameraGetOutPutIOState);
  6005. GET_MVSDK_API(CameraGetOutPutIOStateEx);
  6006. GET_MVSDK_API(CameraGetIOState);
  6007. GET_MVSDK_API(CameraGetIOStateEx);
  6008. GET_MVSDK_API(CameraSetInPutIOMode);
  6009. GET_MVSDK_API(CameraGetInPutIOMode);
  6010. GET_MVSDK_API(CameraSetOutPutIOMode);
  6011. GET_MVSDK_API(CameraGetOutPutIOMode);
  6012. GET_MVSDK_API(CameraGetInPutIOModeCapbility);
  6013. GET_MVSDK_API(CameraGetOutPutIOModeCapbility);
  6014. GET_MVSDK_API(CameraSetOutPutPWM);
  6015. GET_MVSDK_API(CameraSetRotaryEncDir);
  6016. GET_MVSDK_API(CameraGetRotaryEncDir);
  6017. GET_MVSDK_API(CameraSetRotaryEncFreq);
  6018. GET_MVSDK_API(CameraGetRotaryEncFreq);
  6019. GET_MVSDK_API(CameraSetInPutIOFormat);
  6020. GET_MVSDK_API(CameraGetInPutIOFormat);
  6021. GET_MVSDK_API(CameraSetOutPutIOFormat);
  6022. GET_MVSDK_API(CameraGetOutPutIOFormat);
  6023. GET_MVSDK_API(CameraGetInPutIOFormatCapbility);
  6024. GET_MVSDK_API(CameraGetOutPutIOFormatCapbility);
  6025. CameraSetBayerDecAlgorithm = (_CameraSetBayerDecAlgorithm)GetProcAddress(ghSDK,
  6026. #ifdef _WIN64
  6027. "CameraSetBayerDecAlgorithm");
  6028. #else
  6029. "_CameraSetBayerDecAlgorithm@12");
  6030. #endif
  6031. CHECK_API(CameraSetBayerDecAlgorithm);
  6032. GET_MVSDK_API(CameraGetBayerDecAlgorithm);
  6033. GET_MVSDK_API(CameraSetBlackLevel);
  6034. GET_MVSDK_API(CameraGetBlackLevel);
  6035. GET_MVSDK_API(CameraSetWhiteLevel);
  6036. GET_MVSDK_API(CameraGetWhiteLevel);
  6037. GET_MVSDK_API(CameraSetIspOutFormat);
  6038. GET_MVSDK_API(CameraGetIspOutFormat);
  6039. GET_MVSDK_API(CameraSetStrobeMode);
  6040. GET_MVSDK_API(CameraGetStrobeMode);
  6041. GET_MVSDK_API(CameraSetStrobeDelayTime);
  6042. GET_MVSDK_API(CameraGetStrobeDelayTime);
  6043. GET_MVSDK_API(CameraSetStrobePulseWidth);
  6044. GET_MVSDK_API(CameraGetStrobePulseWidth);
  6045. GET_MVSDK_API(CameraSetStrobePolarity);
  6046. GET_MVSDK_API(CameraGetStrobePolarity);
  6047. GET_MVSDK_API(CameraSetExtTrigSignalType);
  6048. GET_MVSDK_API(CameraGetExtTrigSignalType);
  6049. GET_MVSDK_API(CameraSetExtTrigShutterType);
  6050. GET_MVSDK_API(CameraGetExtTrigShutterType);
  6051. GET_MVSDK_API(CameraSetExtTrigDelayTime);
  6052. GET_MVSDK_API(CameraGetExtTrigDelayTime);
  6053. GET_MVSDK_API(CameraSetExtTrigIntervalTime);
  6054. GET_MVSDK_API(CameraGetExtTrigIntervalTime);
  6055. GET_MVSDK_API(CameraSetExtTrigJitterTime);
  6056. GET_MVSDK_API(CameraGetExtTrigJitterTime);
  6057. GET_MVSDK_API(CameraGetExtTrigCapability);
  6058. GET_MVSDK_API(CameraPauseLevelTrigger);
  6059. GET_MVSDK_API(CameraGetErrorString);
  6060. GET_MVSDK_API(CameraGetCapabilityEx2);
  6061. GET_MVSDK_API(CameraGetImageBufferEx2);
  6062. GET_MVSDK_API(CameraGetImageBufferEx3);
  6063. GET_MVSDK_API(CameraReConnect);
  6064. GET_MVSDK_API(CameraConnectTest);
  6065. GET_MVSDK_API(CameraSetLedEnable);
  6066. GET_MVSDK_API(CameraGetLedEnable);
  6067. GET_MVSDK_API(CameraSetLedOnOff);
  6068. GET_MVSDK_API(CameraGetLedOnOff);
  6069. GET_MVSDK_API(CameraSetLedDuration);
  6070. GET_MVSDK_API(CameraGetLedDuration);
  6071. GET_MVSDK_API(CameraSetLedBrightness);
  6072. GET_MVSDK_API(CameraGetLedBrightness);
  6073. GET_MVSDK_API(CameraEnableTransferRoi);
  6074. GET_MVSDK_API(CameraSetTransferRoi);
  6075. GET_MVSDK_API(CameraGetTransferRoi);
  6076. GET_MVSDK_API(CameraAlignMalloc);
  6077. GET_MVSDK_API(CameraAlignFree);
  6078. GET_MVSDK_API(CameraSetAutoConnect);
  6079. GET_MVSDK_API(CameraGetAutoConnect);
  6080. GET_MVSDK_API(CameraGetReConnectCounts);
  6081. GET_MVSDK_API(CameraSetSingleGrabMode);
  6082. GET_MVSDK_API(CameraGetSingleGrabMode);
  6083. GET_MVSDK_API(CameraRestartGrab);
  6084. GET_MVSDK_API(CameraDrawText);
  6085. GET_MVSDK_API(CameraGigeEnumerateDevice);
  6086. GET_MVSDK_API(CameraGigeGetIp);
  6087. GET_MVSDK_API(CameraGigeSetIp);
  6088. GET_MVSDK_API(CameraGigeGetMac);
  6089. GET_MVSDK_API(CameraEnableFastResponse);
  6090. GET_MVSDK_API(CameraSetCorrectDeadPixel);
  6091. GET_MVSDK_API(CameraGetCorrectDeadPixel);
  6092. GET_MVSDK_API(CameraFlatFieldingCorrectSetEnable);
  6093. GET_MVSDK_API(CameraFlatFieldingCorrectGetEnable);
  6094. GET_MVSDK_API(CameraFlatFieldingCorrectSetParameter);
  6095. GET_MVSDK_API(CameraFlatFieldingCorrectSaveParameterToFile);
  6096. GET_MVSDK_API(CameraFlatFieldingCorrectLoadParameterFromFile);
  6097. GET_MVSDK_API(CameraCommonCall);
  6098. GET_MVSDK_API(CameraSetDenoise3DParams);
  6099. GET_MVSDK_API(CameraGetDenoise3DParams);
  6100. GET_MVSDK_API(CameraManualDenoise3D);
  6101. GET_MVSDK_API(CameraCustomizeDeadPixels);
  6102. GET_MVSDK_API(CameraReadDeadPixels);
  6103. GET_MVSDK_API(CameraAddDeadPixels);
  6104. GET_MVSDK_API(CameraRemoveDeadPixels);
  6105. GET_MVSDK_API(CameraRemoveAllDeadPixels);
  6106. GET_MVSDK_API(CameraSaveDeadPixels);
  6107. GET_MVSDK_API(CameraSaveDeadPixelsToFile);
  6108. GET_MVSDK_API(CameraLoadDeadPixelsFromFile);
  6109. GET_MVSDK_API(CameraGetImageBufferPriority);
  6110. GET_MVSDK_API(CameraGetImageBufferPriorityEx);
  6111. GET_MVSDK_API(CameraGetImageBufferPriorityEx2);
  6112. GET_MVSDK_API(CameraGetImageBufferPriorityEx3);
  6113. GET_MVSDK_API(CameraClearBuffer);
  6114. GET_MVSDK_API(CameraSoftTriggerEx);
  6115. GET_MVSDK_API(CameraSetHDR);
  6116. GET_MVSDK_API(CameraGetHDR);
  6117. GET_MVSDK_API(CameraGetFrameID);
  6118. GET_MVSDK_API(CameraGetFrameTimeStamp);
  6119. GET_MVSDK_API(CameraSetHDRGainMode);
  6120. GET_MVSDK_API(CameraGetHDRGainMode);
  6121. GET_MVSDK_API(CameraCreateDIBitmap);
  6122. GET_MVSDK_API(CameraDrawFrameBuffer);
  6123. GET_MVSDK_API(CameraFlipFrameBuffer);
  6124. GET_MVSDK_API(CameraConvertFrameBufferFormat);
  6125. GET_MVSDK_API(CameraSetConnectionStatusCallback);
  6126. GET_MVSDK_API(CameraSetLightingControllerMode);
  6127. GET_MVSDK_API(CameraSetLightingControllerState);
  6128. GET_MVSDK_API(CameraSetFrameResendCount);
  6129. GET_MVSDK_API(CameraGetEyeCount);
  6130. GET_MVSDK_API(CameraMultiEyeImageProcess);
  6131. GET_MVSDK_API(CameraGetRegionAverageGray);
  6132. GET_MVSDK_API(CameraGetMediaCapability);
  6133. GET_MVSDK_API(CameraSetMediaBitRate);
  6134. GET_MVSDK_API(CameraGetMediaBitRate);
  6135. GET_MVSDK_API(CameraSetFrameEventCallback);
  6136. GET_MVSDK_API(CameraSetNoiseReductionValue);
  6137. GET_MVSDK_API(CameraGetNoiseReductionValue);
  6138. GET_MVSDK_API(CameraSetLogarithmicCurveValue);
  6139. GET_MVSDK_API(CameraGetLogarithmicCurveValue);
  6140. GET_MVSDK_API(CameraSetSpliceLines);
  6141. GET_MVSDK_API(CameraGetSpliceLines);
  6142. GET_MVSDK_API(CameraSnapChannelBuffer);
  6143. GET_MVSDK_API(CameraReleaseChannelBuffer);
  6144. GET_MVSDK_API(CameraSetRotaryEncTrigger);
  6145. GET_MVSDK_API(CameraGetRotaryEncTrigger);
  6146. GET_MVSDK_API(CameraGrabber_CreateFromDevicePage);
  6147. GET_MVSDK_API(CameraGrabber_CreateByIndex);
  6148. GET_MVSDK_API(CameraGrabber_CreateByName);
  6149. GET_MVSDK_API(CameraGrabber_Create);
  6150. GET_MVSDK_API(CameraGrabber_Destroy);
  6151. GET_MVSDK_API(CameraGrabber_SetHWnd);
  6152. GET_MVSDK_API(CameraGrabber_SetPriority);
  6153. GET_MVSDK_API(CameraGrabber_StartLive);
  6154. GET_MVSDK_API(CameraGrabber_StopLive);
  6155. GET_MVSDK_API(CameraGrabber_SaveImage);
  6156. GET_MVSDK_API(CameraGrabber_SaveImageAsync);
  6157. GET_MVSDK_API(CameraGrabber_SaveImageAsyncEx);
  6158. GET_MVSDK_API(CameraGrabber_SetSaveImageCompleteCallback);
  6159. GET_MVSDK_API(CameraGrabber_SetFrameListener);
  6160. GET_MVSDK_API(CameraGrabber_SetRawCallback);
  6161. GET_MVSDK_API(CameraGrabber_SetRGBCallback);
  6162. GET_MVSDK_API(CameraGrabber_GetCameraHandle);
  6163. GET_MVSDK_API(CameraGrabber_GetStat);
  6164. GET_MVSDK_API(CameraGrabber_GetCameraDevInfo);
  6165. GET_MVSDK_API(CameraImage_Create);
  6166. GET_MVSDK_API(CameraImage_Destroy);
  6167. GET_MVSDK_API(CameraImage_GetData);
  6168. GET_MVSDK_API(CameraImage_GetUserData);
  6169. GET_MVSDK_API(CameraImage_SetUserData);
  6170. GET_MVSDK_API(CameraImage_IsEmpty);
  6171. GET_MVSDK_API(CameraImage_Draw);
  6172. GET_MVSDK_API(CameraImage_BitBlt);
  6173. GET_MVSDK_API(CameraImage_SaveAsBmp);
  6174. GET_MVSDK_API(CameraImage_SaveAsJpeg);
  6175. GET_MVSDK_API(CameraImage_SaveAsPng);
  6176. GET_MVSDK_API(CameraImage_SaveAsRaw);
  6177. GET_MVSDK_API(CameraZoomTool_Create);
  6178. GET_MVSDK_API(CameraZoomTool_Destory);
  6179. GET_MVSDK_API(CameraZoomTool_SetViewOrg);
  6180. GET_MVSDK_API(CameraZoomTool_GetViewOrg);
  6181. GET_MVSDK_API(CameraZoomTool_SetViewCenter);
  6182. GET_MVSDK_API(CameraZoomTool_GetViewCenter);
  6183. GET_MVSDK_API(CameraZoomTool_SetViewSize);
  6184. GET_MVSDK_API(CameraZoomTool_GetViewSize);
  6185. GET_MVSDK_API(CameraZoomTool_SetViewScrollPos);
  6186. GET_MVSDK_API(CameraZoomTool_GetViewScrollPos);
  6187. GET_MVSDK_API(CameraZoomTool_GetViewScrollRange);
  6188. GET_MVSDK_API(CameraZoomTool_SetFrameSize);
  6189. GET_MVSDK_API(CameraZoomTool_GetFrameSize);
  6190. GET_MVSDK_API(CameraZoomTool_SetScale);
  6191. GET_MVSDK_API(CameraZoomTool_GetScale);
  6192. GET_MVSDK_API(CameraZoomTool_SetScaleAnchor);
  6193. GET_MVSDK_API(CameraZoomTool_GetScaleAnchor);
  6194. GET_MVSDK_API(CameraZoomTool_GetDrawRect);
  6195. GET_MVSDK_API(CameraZoomTool_Transform);
  6196. GET_MVSDK_API(CameraZoomTool_Draw);
  6197. #undef GET_MVSDK_API
  6198. return CAMERA_STATUS_SUCCESS;
  6199. }
  6200. CameraSdkStatus UnloadCameraSdk()
  6201. {
  6202. if (ghSDK)
  6203. {
  6204. FreeLibrary(ghSDK);
  6205. }
  6206. return CAMERA_STATUS_SUCCESS;
  6207. }
  6208. #endif
  6209. #endif