mvsdk.py 87 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394
  1. #coding=utf-8
  2. import platform
  3. from ctypes import *
  4. from threading import local
  5. # 回调函数类型
  6. CALLBACK_FUNC_TYPE = None
  7. # SDK动态库
  8. _sdk = None
  9. def _Init():
  10. global _sdk
  11. global CALLBACK_FUNC_TYPE
  12. is_win = (platform.system() == "Windows")
  13. is_x86 = (platform.architecture()[0] == '32bit')
  14. if is_win:
  15. _sdk = windll.MVCAMSDK if is_x86 else windll.MVCAMSDK_X64
  16. CALLBACK_FUNC_TYPE = WINFUNCTYPE
  17. else:
  18. _sdk = cdll.LoadLibrary("libMVSDK.so")
  19. CALLBACK_FUNC_TYPE = CFUNCTYPE
  20. _Init()
  21. #-------------------------------------------类型定义--------------------------------------------------
  22. # 状态码定义
  23. CAMERA_STATUS_SUCCESS = 0 # 操作成功
  24. CAMERA_STATUS_FAILED = -1 # 操作失败
  25. CAMERA_STATUS_INTERNAL_ERROR = -2 # 内部错误
  26. CAMERA_STATUS_UNKNOW = -3 # 未知错误
  27. CAMERA_STATUS_NOT_SUPPORTED = -4 # 不支持该功能
  28. CAMERA_STATUS_NOT_INITIALIZED = -5 # 初始化未完成
  29. CAMERA_STATUS_PARAMETER_INVALID = -6 # 参数无效
  30. CAMERA_STATUS_PARAMETER_OUT_OF_BOUND = -7 # 参数越界
  31. CAMERA_STATUS_UNENABLED = -8 # 未使能
  32. CAMERA_STATUS_USER_CANCEL = -9 # 用户手动取消了,比如roi面板点击取消,返回
  33. CAMERA_STATUS_PATH_NOT_FOUND = -10 # 注册表中没有找到对应的路径
  34. CAMERA_STATUS_SIZE_DISMATCH = -11 # 获得图像数据长度和定义的尺寸不匹配
  35. CAMERA_STATUS_TIME_OUT = -12 # 超时错误
  36. CAMERA_STATUS_IO_ERROR = -13 # 硬件IO错误
  37. CAMERA_STATUS_COMM_ERROR = -14 # 通讯错误
  38. CAMERA_STATUS_BUS_ERROR = -15 # 总线错误
  39. CAMERA_STATUS_NO_DEVICE_FOUND = -16 # 没有发现设备
  40. CAMERA_STATUS_NO_LOGIC_DEVICE_FOUND = -17 # 未找到逻辑设备
  41. CAMERA_STATUS_DEVICE_IS_OPENED = -18 # 设备已经打开
  42. CAMERA_STATUS_DEVICE_IS_CLOSED = -19 # 设备已经关闭
  43. CAMERA_STATUS_DEVICE_VEDIO_CLOSED = -20 # 没有打开设备视频,调用录像相关的函数时,如果相机视频没有打开,则回返回该错误。
  44. CAMERA_STATUS_NO_MEMORY = -21 # 没有足够系统内存
  45. CAMERA_STATUS_FILE_CREATE_FAILED = -22 # 创建文件失败
  46. CAMERA_STATUS_FILE_INVALID = -23 # 文件格式无效
  47. CAMERA_STATUS_WRITE_PROTECTED = -24 # 写保护,不可写
  48. CAMERA_STATUS_GRAB_FAILED = -25 # 数据采集失败
  49. CAMERA_STATUS_LOST_DATA = -26 # 数据丢失,不完整
  50. CAMERA_STATUS_EOF_ERROR = -27 # 未接收到帧结束符
  51. CAMERA_STATUS_BUSY = -28 # 正忙(上一次操作还在进行中),此次操作不能进行
  52. CAMERA_STATUS_WAIT = -29 # 需要等待(进行操作的条件不成立),可以再次尝试
  53. CAMERA_STATUS_IN_PROCESS = -30 # 正在进行,已经被操作过
  54. CAMERA_STATUS_IIC_ERROR = -31 # IIC传输错误
  55. CAMERA_STATUS_SPI_ERROR = -32 # SPI传输错误
  56. CAMERA_STATUS_USB_CONTROL_ERROR = -33 # USB控制传输错误
  57. CAMERA_STATUS_USB_BULK_ERROR = -34 # USB BULK传输错误
  58. CAMERA_STATUS_SOCKET_INIT_ERROR = -35 # 网络传输套件初始化失败
  59. CAMERA_STATUS_GIGE_FILTER_INIT_ERROR = -36 # 网络相机内核过滤驱动初始化失败,请检查是否正确安装了驱动,或者重新安装。
  60. CAMERA_STATUS_NET_SEND_ERROR = -37 # 网络数据发送错误
  61. CAMERA_STATUS_DEVICE_LOST = -38 # 与网络相机失去连接,心跳检测超时
  62. CAMERA_STATUS_DATA_RECV_LESS = -39 # 接收到的字节数比请求的少
  63. CAMERA_STATUS_FUNCTION_LOAD_FAILED = -40 # 从文件中加载程序失败
  64. CAMERA_STATUS_CRITICAL_FILE_LOST = -41 # 程序运行所必须的文件丢失。
  65. CAMERA_STATUS_SENSOR_ID_DISMATCH = -42 # 固件和程序不匹配,原因是下载了错误的固件。
  66. CAMERA_STATUS_OUT_OF_RANGE = -43 # 参数超出有效范围。
  67. CAMERA_STATUS_REGISTRY_ERROR = -44 # 安装程序注册错误。请重新安装程序,或者运行安装目录Setup/Installer.exe
  68. CAMERA_STATUS_ACCESS_DENY = -45 # 禁止访问。指定相机已经被其他程序占用时,再申请访问该相机,会返回该状态。(一个相机不能被多个程序同时访问)
  69. #AIA的标准兼容的错误码
  70. CAMERA_AIA_PACKET_RESEND = 0x0100 #该帧需要重传
  71. CAMERA_AIA_NOT_IMPLEMENTED = 0x8001 #设备不支持的命令
  72. CAMERA_AIA_INVALID_PARAMETER = 0x8002 #命令参数非法
  73. CAMERA_AIA_INVALID_ADDRESS = 0x8003 #不可访问的地址
  74. CAMERA_AIA_WRITE_PROTECT = 0x8004 #访问的对象不可写
  75. CAMERA_AIA_BAD_ALIGNMENT = 0x8005 #访问的地址没有按照要求对齐
  76. CAMERA_AIA_ACCESS_DENIED = 0x8006 #没有访问权限
  77. CAMERA_AIA_BUSY = 0x8007 #命令正在处理中
  78. CAMERA_AIA_DEPRECATED = 0x8008 #0x8008-0x0800B 0x800F 该指令已经废弃
  79. CAMERA_AIA_PACKET_UNAVAILABLE = 0x800C #包无效
  80. CAMERA_AIA_DATA_OVERRUN = 0x800D #数据溢出,通常是收到的数据比需要的多
  81. CAMERA_AIA_INVALID_HEADER = 0x800E #数据包头部中某些区域与协议不匹配
  82. CAMERA_AIA_PACKET_NOT_YET_AVAILABLE = 0x8010 #图像分包数据还未准备好,多用于触发模式,应用程序访问超时
  83. CAMERA_AIA_PACKET_AND_PREV_REMOVED_FROM_MEMORY = 0x8011 #需要访问的分包已经不存在。多用于重传时数据已经不在缓冲区中
  84. CAMERA_AIA_PACKET_REMOVED_FROM_MEMORY = 0x8012 #CAMERA_AIA_PACKET_AND_PREV_REMOVED_FROM_MEMORY
  85. CAMERA_AIA_NO_REF_TIME = 0x0813 #没有参考时钟源。多用于时间同步的命令执行时
  86. CAMERA_AIA_PACKET_TEMPORARILY_UNAVAILABLE = 0x0814 #由于信道带宽问题,当前分包暂时不可用,需稍后进行访问
  87. CAMERA_AIA_OVERFLOW = 0x0815 #设备端数据溢出,通常是队列已满
  88. CAMERA_AIA_ACTION_LATE = 0x0816 #命令执行已经超过有效的指定时间
  89. CAMERA_AIA_ERROR = 0x8FFF #错误
  90. # 图像格式定义
  91. CAMERA_MEDIA_TYPE_MONO = 0x01000000
  92. CAMERA_MEDIA_TYPE_RGB = 0x02000000
  93. CAMERA_MEDIA_TYPE_COLOR = 0x02000000
  94. CAMERA_MEDIA_TYPE_OCCUPY1BIT = 0x00010000
  95. CAMERA_MEDIA_TYPE_OCCUPY2BIT = 0x00020000
  96. CAMERA_MEDIA_TYPE_OCCUPY4BIT = 0x00040000
  97. CAMERA_MEDIA_TYPE_OCCUPY8BIT = 0x00080000
  98. CAMERA_MEDIA_TYPE_OCCUPY10BIT = 0x000A0000
  99. CAMERA_MEDIA_TYPE_OCCUPY12BIT = 0x000C0000
  100. CAMERA_MEDIA_TYPE_OCCUPY16BIT = 0x00100000
  101. CAMERA_MEDIA_TYPE_OCCUPY24BIT = 0x00180000
  102. CAMERA_MEDIA_TYPE_OCCUPY32BIT = 0x00200000
  103. CAMERA_MEDIA_TYPE_OCCUPY36BIT = 0x00240000
  104. CAMERA_MEDIA_TYPE_OCCUPY48BIT = 0x00300000
  105. CAMERA_MEDIA_TYPE_EFFECTIVE_PIXEL_SIZE_MASK = 0x00FF0000
  106. CAMERA_MEDIA_TYPE_EFFECTIVE_PIXEL_SIZE_SHIFT = 16
  107. CAMERA_MEDIA_TYPE_ID_MASK = 0x0000FFFF
  108. CAMERA_MEDIA_TYPE_COUNT = 0x46
  109. #mono
  110. CAMERA_MEDIA_TYPE_MONO1P = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY1BIT | 0x0037)
  111. CAMERA_MEDIA_TYPE_MONO2P = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY2BIT | 0x0038)
  112. CAMERA_MEDIA_TYPE_MONO4P = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY4BIT | 0x0039)
  113. CAMERA_MEDIA_TYPE_MONO8 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x0001)
  114. CAMERA_MEDIA_TYPE_MONO8S = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x0002)
  115. CAMERA_MEDIA_TYPE_MONO10 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0003)
  116. CAMERA_MEDIA_TYPE_MONO10_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0004)
  117. CAMERA_MEDIA_TYPE_MONO12 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0005)
  118. CAMERA_MEDIA_TYPE_MONO12_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0006)
  119. CAMERA_MEDIA_TYPE_MONO14 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0025)
  120. CAMERA_MEDIA_TYPE_MONO16 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0007)
  121. # Bayer
  122. CAMERA_MEDIA_TYPE_BAYGR8 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x0008)
  123. CAMERA_MEDIA_TYPE_BAYRG8 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x0009)
  124. CAMERA_MEDIA_TYPE_BAYGB8 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x000A)
  125. CAMERA_MEDIA_TYPE_BAYBG8 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY8BIT | 0x000B)
  126. CAMERA_MEDIA_TYPE_BAYGR10_MIPI = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY10BIT | 0x0026)
  127. CAMERA_MEDIA_TYPE_BAYRG10_MIPI = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY10BIT | 0x0027)
  128. CAMERA_MEDIA_TYPE_BAYGB10_MIPI = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY10BIT | 0x0028)
  129. CAMERA_MEDIA_TYPE_BAYBG10_MIPI = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY10BIT | 0x0029)
  130. CAMERA_MEDIA_TYPE_BAYGR10 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x000C)
  131. CAMERA_MEDIA_TYPE_BAYRG10 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x000D)
  132. CAMERA_MEDIA_TYPE_BAYGB10 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x000E)
  133. CAMERA_MEDIA_TYPE_BAYBG10 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x000F)
  134. CAMERA_MEDIA_TYPE_BAYGR12 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0010)
  135. CAMERA_MEDIA_TYPE_BAYRG12 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0011)
  136. CAMERA_MEDIA_TYPE_BAYGB12 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0012)
  137. CAMERA_MEDIA_TYPE_BAYBG12 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0013)
  138. CAMERA_MEDIA_TYPE_BAYGR10_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0026)
  139. CAMERA_MEDIA_TYPE_BAYRG10_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0027)
  140. CAMERA_MEDIA_TYPE_BAYGB10_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0028)
  141. CAMERA_MEDIA_TYPE_BAYBG10_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0029)
  142. CAMERA_MEDIA_TYPE_BAYGR12_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x002A)
  143. CAMERA_MEDIA_TYPE_BAYRG12_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x002B)
  144. CAMERA_MEDIA_TYPE_BAYGB12_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x002C)
  145. CAMERA_MEDIA_TYPE_BAYBG12_PACKED = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x002D)
  146. CAMERA_MEDIA_TYPE_BAYGR16 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x002E)
  147. CAMERA_MEDIA_TYPE_BAYRG16 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x002F)
  148. CAMERA_MEDIA_TYPE_BAYGB16 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0030)
  149. CAMERA_MEDIA_TYPE_BAYBG16 = (CAMERA_MEDIA_TYPE_MONO | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0031)
  150. # RGB
  151. CAMERA_MEDIA_TYPE_RGB8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x0014)
  152. CAMERA_MEDIA_TYPE_BGR8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x0015)
  153. CAMERA_MEDIA_TYPE_RGBA8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY32BIT | 0x0016)
  154. CAMERA_MEDIA_TYPE_BGRA8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY32BIT | 0x0017)
  155. CAMERA_MEDIA_TYPE_RGB10 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0018)
  156. CAMERA_MEDIA_TYPE_BGR10 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0019)
  157. CAMERA_MEDIA_TYPE_RGB12 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x001A)
  158. CAMERA_MEDIA_TYPE_BGR12 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x001B)
  159. CAMERA_MEDIA_TYPE_RGB16 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0033)
  160. CAMERA_MEDIA_TYPE_RGB10V1_PACKED = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY32BIT | 0x001C)
  161. CAMERA_MEDIA_TYPE_RGB10P32 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY32BIT | 0x001D)
  162. CAMERA_MEDIA_TYPE_RGB12V1_PACKED = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY36BIT | 0X0034)
  163. CAMERA_MEDIA_TYPE_RGB565P = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0035)
  164. CAMERA_MEDIA_TYPE_BGR565P = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0X0036)
  165. # YUV and YCbCr
  166. CAMERA_MEDIA_TYPE_YUV411_8_UYYVYY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x001E)
  167. CAMERA_MEDIA_TYPE_YUV422_8_UYVY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x001F)
  168. CAMERA_MEDIA_TYPE_YUV422_8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0032)
  169. CAMERA_MEDIA_TYPE_YUV8_UYV = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x0020)
  170. CAMERA_MEDIA_TYPE_YCBCR8_CBYCR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x003A)
  171. #CAMERA_MEDIA_TYPE_YCBCR422_8 : YYYYCbCrCbCr
  172. CAMERA_MEDIA_TYPE_YCBCR422_8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x003B)
  173. CAMERA_MEDIA_TYPE_YCBCR422_8_CBYCRY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0043)
  174. CAMERA_MEDIA_TYPE_YCBCR411_8_CBYYCRYY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x003C)
  175. CAMERA_MEDIA_TYPE_YCBCR601_8_CBYCR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x003D)
  176. CAMERA_MEDIA_TYPE_YCBCR601_422_8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x003E)
  177. CAMERA_MEDIA_TYPE_YCBCR601_422_8_CBYCRY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0044)
  178. CAMERA_MEDIA_TYPE_YCBCR601_411_8_CBYYCRYY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x003F)
  179. CAMERA_MEDIA_TYPE_YCBCR709_8_CBYCR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x0040)
  180. CAMERA_MEDIA_TYPE_YCBCR709_422_8 = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0041)
  181. CAMERA_MEDIA_TYPE_YCBCR709_422_8_CBYCRY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY16BIT | 0x0045)
  182. CAMERA_MEDIA_TYPE_YCBCR709_411_8_CBYYCRYY = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY12BIT | 0x0042)
  183. # RGB Planar
  184. CAMERA_MEDIA_TYPE_RGB8_PLANAR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY24BIT | 0x0021)
  185. CAMERA_MEDIA_TYPE_RGB10_PLANAR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0022)
  186. CAMERA_MEDIA_TYPE_RGB12_PLANAR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0023)
  187. CAMERA_MEDIA_TYPE_RGB16_PLANAR = (CAMERA_MEDIA_TYPE_COLOR | CAMERA_MEDIA_TYPE_OCCUPY48BIT | 0x0024)
  188. # 保存格式
  189. FILE_JPG = 1
  190. FILE_BMP = 2
  191. FILE_RAW = 4
  192. FILE_PNG = 8
  193. FILE_BMP_8BIT = 16
  194. FILE_PNG_8BIT = 32
  195. FILE_RAW_16BIT = 64
  196. # 触发信号
  197. EXT_TRIG_LEADING_EDGE = 0
  198. EXT_TRIG_TRAILING_EDGE = 1
  199. EXT_TRIG_HIGH_LEVEL = 2
  200. EXT_TRIG_LOW_LEVEL = 3
  201. EXT_TRIG_DOUBLE_EDGE = 4
  202. # IO模式
  203. IOMODE_TRIG_INPUT = 0
  204. IOMODE_STROBE_OUTPUT = 1
  205. IOMODE_GP_INPUT = 2
  206. IOMODE_GP_OUTPUT = 3
  207. IOMODE_PWM_OUTPUT = 4
  208. # 相机操作异常信息
  209. class CameraException(Exception):
  210. """docstring for CameraException"""
  211. def __init__(self, error_code):
  212. super(CameraException, self).__init__()
  213. self.error_code = error_code
  214. self.message = CameraGetErrorString(error_code)
  215. def __str__(self):
  216. return 'error_code:{} message:{}'.format(self.error_code, self.message)
  217. class MvStructure(Structure):
  218. def __str__(self):
  219. strs = []
  220. for field in self._fields_:
  221. name = field[0]
  222. value = getattr(self, name)
  223. if isinstance(value, type(b'')):
  224. value = _string_buffer_to_str(value)
  225. strs.append("{}:{}".format(name, value))
  226. return '\n'.join(strs)
  227. def __repr__(self):
  228. return self.__str__()
  229. def clone(self):
  230. obj = type(self)()
  231. memmove(byref(obj), byref(self), sizeof(self))
  232. return obj
  233. # 相机的设备信息,只读信息,请勿修改
  234. class tSdkCameraDevInfo(MvStructure):
  235. _fields_ = [("acProductSeries", c_char * 32), #产品系列
  236. ("acProductName", c_char * 32), #产品名称
  237. ("acFriendlyName", c_char * 32), #产品昵称
  238. ("acLinkName", c_char * 32), #内核符号连接名,内部使用
  239. ("acDriverVersion", c_char * 32), #驱动版本
  240. ("acSensorType", c_char * 32), #sensor类型
  241. ("acPortType", c_char * 32), #接口类型
  242. ("acSn", c_char * 32), #产品唯一序列号
  243. ("uInstance", c_uint)] #该型号相机在该电脑上的实例索引号,用于区分同型号多相机
  244. def GetProductSeries(self):
  245. return _string_buffer_to_str(self.acProductSeries)
  246. def GetProductName(self):
  247. return _string_buffer_to_str(self.acProductName)
  248. def GetFriendlyName(self):
  249. return _string_buffer_to_str(self.acFriendlyName)
  250. def GetLinkName(self):
  251. return _string_buffer_to_str(self.acLinkName)
  252. def GetDriverVersion(self):
  253. return _string_buffer_to_str(self.acDriverVersion)
  254. def GetSensorType(self):
  255. return _string_buffer_to_str(self.acSensorType)
  256. def GetPortType(self):
  257. return _string_buffer_to_str(self.acPortType)
  258. def GetSn(self):
  259. return _string_buffer_to_str(self.acSn)
  260. # 相机的分辨率设定范围
  261. class tSdkResolutionRange(MvStructure):
  262. _fields_ = [("iHeightMax", c_int), #图像最大高度
  263. ("iHeightMin", c_int), #图像最小高度
  264. ("iWidthMax", c_int), #图像最大宽度
  265. ("iWidthMin", c_int), #图像最小宽度
  266. ("uSkipModeMask", c_uint), #SKIP模式掩码,为0,表示不支持SKIP 。bit0为1,表示支持SKIP 2x2 bit1为1,表示支持SKIP 3x3....
  267. ("uBinSumModeMask", c_uint), #BIN(求和)模式掩码,为0,表示不支持BIN 。bit0为1,表示支持BIN 2x2 bit1为1,表示支持BIN 3x3....
  268. ("uBinAverageModeMask", c_uint),#BIN(求均值)模式掩码,为0,表示不支持BIN 。bit0为1,表示支持BIN 2x2 bit1为1,表示支持BIN 3x3....
  269. ("uResampleMask", c_uint)] #硬件重采样的掩码
  270. #相机的分辨率描述
  271. class tSdkImageResolution(MvStructure):
  272. _fields_ = [
  273. ("iIndex", c_int), # 索引号,[0,N]表示预设的分辨率(N 为预设分辨率的最大个数,一般不超过20),OXFF 表示自定义分辨率(ROI)
  274. ("acDescription", c_char * 32), # 该分辨率的描述信息。仅预设分辨率时该信息有效。自定义分辨率可忽略该信息
  275. ("uBinSumMode", c_uint), # BIN(求和)的模式,范围不能超过tSdkResolutionRange中uBinSumModeMask
  276. ("uBinAverageMode", c_uint), # BIN(求均值)的模式,范围不能超过tSdkResolutionRange中uBinAverageModeMask
  277. ("uSkipMode", c_uint), # 是否SKIP的尺寸,为0表示禁止SKIP模式,范围不能超过tSdkResolutionRange中uSkipModeMask
  278. ("uResampleMask", c_uint), # 硬件重采样的掩码
  279. ("iHOffsetFOV", c_int), # 采集视场相对于Sensor最大视场左上角的垂直偏移
  280. ("iVOffsetFOV", c_int), # 采集视场相对于Sensor最大视场左上角的水平偏移
  281. ("iWidthFOV", c_int), # 采集视场的宽度
  282. ("iHeightFOV", c_int), # 采集视场的高度
  283. ("iWidth", c_int), # 相机最终输出的图像的宽度
  284. ("iHeight", c_int), # 相机最终输出的图像的高度
  285. ("iWidthZoomHd", c_int), # 硬件缩放的宽度,不需要进行此操作的分辨率,此变量设置为0.
  286. ("iHeightZoomHd", c_int), # 硬件缩放的高度,不需要进行此操作的分辨率,此变量设置为0.
  287. ("iWidthZoomSw", c_int), # 软件缩放的宽度,不需要进行此操作的分辨率,此变量设置为0.
  288. ("iHeightZoomSw", c_int), # 软件缩放的高度,不需要进行此操作的分辨率,此变量设置为0.
  289. ]
  290. def GetDescription(self):
  291. return _string_buffer_to_str(self.acDescription)
  292. #相机白平衡模式描述信息
  293. class tSdkColorTemperatureDes(MvStructure):
  294. _fields_ = [
  295. ("iIndex", c_int), # 模式索引号
  296. ("acDescription", c_char * 32), # 描述信息
  297. ]
  298. def GetDescription(self):
  299. return _string_buffer_to_str(self.acDescription)
  300. #相机帧率描述信息
  301. class tSdkFrameSpeed(MvStructure):
  302. _fields_ = [
  303. ("iIndex", c_int), # 帧率索引号,一般0对应于低速模式,1对应于普通模式,2对应于高速模式
  304. ("acDescription", c_char * 32), # 描述信息
  305. ]
  306. def GetDescription(self):
  307. return _string_buffer_to_str(self.acDescription)
  308. #相机曝光功能范围定义
  309. class tSdkExpose(MvStructure):
  310. _fields_ = [
  311. ("uiTargetMin", c_uint), #自动曝光亮度目标最小值
  312. ("uiTargetMax", c_uint), #自动曝光亮度目标最大值
  313. ("uiAnalogGainMin", c_uint), #模拟增益的最小值,单位为fAnalogGainStep中定义
  314. ("uiAnalogGainMax", c_uint), #模拟增益的最大值,单位为fAnalogGainStep中定义
  315. ("fAnalogGainStep", c_float), #模拟增益每增加1,对应的增加的放大倍数。例如,uiAnalogGainMin一般为16,fAnalogGainStep一般为0.125,那么最小放大倍数就是16*0.125 = 2倍
  316. ("uiExposeTimeMin", c_uint), #手动模式下,曝光时间的最小值,单位:行。根据CameraGetExposureLineTime可以获得一行对应的时间(微秒),从而得到整帧的曝光时间
  317. ("uiExposeTimeMax", c_uint), #手动模式下,曝光时间的最大值,单位:行
  318. ]
  319. #触发模式描述
  320. class tSdkTrigger(MvStructure):
  321. _fields_ = [
  322. ("iIndex", c_int), # 模式索引号
  323. ("acDescription", c_char * 32), # 描述信息
  324. ]
  325. def GetDescription(self):
  326. return _string_buffer_to_str(self.acDescription)
  327. #传输分包大小描述(主要是针对网络相机有效)
  328. class tSdkPackLength(MvStructure):
  329. _fields_ = [
  330. ("iIndex", c_int), # 模式索引号
  331. ("acDescription", c_char * 32), # 描述信息
  332. ("iPackSize", c_uint),
  333. ]
  334. def GetDescription(self):
  335. return _string_buffer_to_str(self.acDescription)
  336. #预设的LUT表描述
  337. class tSdkPresetLut(MvStructure):
  338. _fields_ = [
  339. ("iIndex", c_int), # 编号
  340. ("acDescription", c_char * 32), # 描述信息
  341. ]
  342. def GetDescription(self):
  343. return _string_buffer_to_str(self.acDescription)
  344. #AE算法描述
  345. class tSdkAeAlgorithm(MvStructure):
  346. _fields_ = [
  347. ("iIndex", c_int), # 编号
  348. ("acDescription", c_char * 32), # 描述信息
  349. ]
  350. def GetDescription(self):
  351. return _string_buffer_to_str(self.acDescription)
  352. #RAW转RGB算法描述
  353. class tSdkBayerDecodeAlgorithm(MvStructure):
  354. _fields_ = [
  355. ("iIndex", c_int), # 编号
  356. ("acDescription", c_char * 32), # 描述信息
  357. ]
  358. def GetDescription(self):
  359. return _string_buffer_to_str(self.acDescription)
  360. #帧率统计信息
  361. class tSdkFrameStatistic(MvStructure):
  362. _fields_ = [
  363. ("iTotal", c_int), #当前采集的总帧数(包括错误帧)
  364. ("iCapture", c_int), #当前采集的有效帧的数量
  365. ("iLost", c_int), #当前丢帧的数量
  366. ]
  367. #相机输出的图像数据格式
  368. class tSdkMediaType(MvStructure):
  369. _fields_ = [
  370. ("iIndex", c_int), # 格式种类编号
  371. ("acDescription", c_char * 32), # 描述信息
  372. ("iMediaType", c_uint), # 对应的图像格式编码,如CAMERA_MEDIA_TYPE_BAYGR8。
  373. ]
  374. def GetDescription(self):
  375. return _string_buffer_to_str(self.acDescription)
  376. #伽马的设定范围
  377. class tGammaRange(MvStructure):
  378. _fields_ = [
  379. ("iMin", c_int), #最小值
  380. ("iMax", c_int), #最大值
  381. ]
  382. #对比度的设定范围
  383. class tContrastRange(MvStructure):
  384. _fields_ = [
  385. ("iMin", c_int), #最小值
  386. ("iMax", c_int), #最大值
  387. ]
  388. #RGB三通道数字增益的设定范围
  389. class tRgbGainRange(MvStructure):
  390. _fields_ = [
  391. ("iRGainMin", c_int), #红色增益的最小值
  392. ("iRGainMax", c_int), #红色增益的最大值
  393. ("iGGainMin", c_int), #绿色增益的最小值
  394. ("iGGainMax", c_int), #绿色增益的最大值
  395. ("iBGainMin", c_int), #蓝色增益的最小值
  396. ("iBGainMax", c_int), #蓝色增益的最大值
  397. ]
  398. #饱和度设定的范围
  399. class tSaturationRange(MvStructure):
  400. _fields_ = [
  401. ("iMin", c_int), #最小值
  402. ("iMax", c_int), #最大值
  403. ]
  404. #锐化的设定范围
  405. class tSharpnessRange(MvStructure):
  406. _fields_ = [
  407. ("iMin", c_int), #最小值
  408. ("iMax", c_int), #最大值
  409. ]
  410. #ISP模块的使能信息
  411. class tSdkIspCapacity(MvStructure):
  412. _fields_ = [
  413. ("bMonoSensor", c_int), #表示该型号相机是否为黑白相机,如果是黑白相机,则颜色相关的功能都无法调节
  414. ("bWbOnce", c_int), #表示该型号相机是否支持手动白平衡功能
  415. ("bAutoWb", c_int), #表示该型号相机是否支持自动白平衡功能
  416. ("bAutoExposure", c_int), #表示该型号相机是否支持自动曝光功能
  417. ("bManualExposure", c_int), #表示该型号相机是否支持手动曝光功能
  418. ("bAntiFlick", c_int), #表示该型号相机是否支持抗频闪功能
  419. ("bDeviceIsp", c_int), #表示该型号相机是否支持硬件ISP功能
  420. ("bForceUseDeviceIsp", c_int), #bDeviceIsp和bForceUseDeviceIsp同时为TRUE时,表示强制只用硬件ISP,不可取消。
  421. ("bZoomHD", c_int), #相机硬件是否支持图像缩放输出(只能是缩小)。
  422. ]
  423. # 定义整合的设备描述信息,这些信息可以用于动态构建UI
  424. class tSdkCameraCapbility(MvStructure):
  425. _fields_ = [
  426. ("pTriggerDesc", POINTER(tSdkTrigger)),
  427. ("iTriggerDesc", c_int), #触发模式的个数,即pTriggerDesc数组的大小
  428. ("pImageSizeDesc", POINTER(tSdkImageResolution)),
  429. ("iImageSizeDesc", c_int), #预设分辨率的个数,即pImageSizeDesc数组的大小
  430. ("pClrTempDesc", POINTER(tSdkColorTemperatureDes)),
  431. ("iClrTempDesc", c_int), #预设色温个数
  432. ("pMediaTypeDesc", POINTER(tSdkMediaType)),
  433. ("iMediaTypeDesc", c_int), #相机输出图像格式的种类个数,即pMediaTypeDesc数组的大小。
  434. ("pFrameSpeedDesc", POINTER(tSdkFrameSpeed)), #可调节帧速类型,对应界面上普通 高速 和超级三种速度设置
  435. ("iFrameSpeedDesc", c_int), #可调节帧速类型的个数,即pFrameSpeedDesc数组的大小。
  436. ("pPackLenDesc", POINTER(tSdkPackLength)), #传输包长度,一般用于网络设备
  437. ("iPackLenDesc", c_int), #可供选择的传输分包长度的个数,即pPackLenDesc数组的大小。
  438. ("iOutputIoCounts", c_int), #可编程输出IO的个数
  439. ("iInputIoCounts", c_int), #可编程输入IO的个数
  440. ("pPresetLutDesc", POINTER(tSdkPresetLut)), #相机预设的LUT表
  441. ("iPresetLut", c_int), #相机预设的LUT表的个数,即pPresetLutDesc数组的大小
  442. ("iUserDataMaxLen", c_int), #指示该相机中用于保存用户数据区的最大长度。为0表示无。
  443. ("bParamInDevice", c_int), #指示该设备是否支持从设备中读写参数组。1为支持,0不支持。
  444. ("pAeAlmSwDesc", POINTER(tSdkAeAlgorithm)),#软件自动曝光算法描述
  445. ("iAeAlmSwDesc", c_int), #软件自动曝光算法个数
  446. ("pAeAlmHdDesc", POINTER(tSdkAeAlgorithm)),#硬件自动曝光算法描述,为NULL表示不支持硬件自动曝光
  447. ("iAeAlmHdDesc", c_int), #硬件自动曝光算法个数,为0表示不支持硬件自动曝光
  448. ("pBayerDecAlmSwDesc", POINTER(tSdkBayerDecodeAlgorithm)),#软件Bayer转换为RGB数据的算法描述
  449. ("iBayerDecAlmSwDesc", c_int), #软件Bayer转换为RGB数据的算法个数
  450. ("pBayerDecAlmHdDesc", POINTER(tSdkBayerDecodeAlgorithm)),#硬件Bayer转换为RGB数据的算法描述,为NULL表示不支持
  451. ("iBayerDecAlmHdDesc", c_int), #硬件Bayer转换为RGB数据的算法个数,为0表示不支持
  452. # 图像参数的调节范围定义,用于动态构建UI
  453. ("sExposeDesc", tSdkExpose), #曝光的范围值
  454. ("sResolutionRange", tSdkResolutionRange), #分辨率范围描述
  455. ("sRgbGainRange", tRgbGainRange), #图像数字增益范围描述
  456. ("sSaturationRange", tSaturationRange), #饱和度范围描述
  457. ("sGammaRange", tGammaRange), #伽马范围描述
  458. ("sContrastRange", tContrastRange), #对比度范围描述
  459. ("sSharpnessRange", tSharpnessRange), #锐化范围描述
  460. ("sIspCapacity", tSdkIspCapacity), #ISP能力描述
  461. ]
  462. #图像帧头信息
  463. class tSdkFrameHead(MvStructure):
  464. _fields_ = [
  465. ("uiMediaType", c_uint), # 图像格式,Image Format
  466. ("uBytes", c_uint), # 图像数据字节数,Total bytes
  467. ("iWidth", c_int), # 宽度 Image height
  468. ("iHeight", c_int), # 高度 Image width
  469. ("iWidthZoomSw", c_int), # 软件缩放的宽度,不需要进行软件裁剪的图像,此变量设置为0.
  470. ("iHeightZoomSw", c_int), # 软件缩放的高度,不需要进行软件裁剪的图像,此变量设置为0.
  471. ("bIsTrigger", c_int), # 指示是否为触发帧 is trigger
  472. ("uiTimeStamp", c_uint), # 该帧的采集时间,单位0.1毫秒
  473. ("uiExpTime", c_uint), # 当前图像的曝光值,单位为微秒us
  474. ("fAnalogGain", c_float), # 当前图像的模拟增益倍数
  475. ("iGamma", c_int), # 该帧图像的伽马设定值,仅当LUT模式为动态参数生成时有效,其余模式下为-1
  476. ("iContrast", c_int), # 该帧图像的对比度设定值,仅当LUT模式为动态参数生成时有效,其余模式下为-1
  477. ("iSaturation", c_int), # 该帧图像的饱和度设定值,对于黑白相机无意义,为0
  478. ("fRgain", c_float), # 该帧图像处理的红色数字增益倍数,对于黑白相机无意义,为1
  479. ("fGgain", c_float), # 该帧图像处理的绿色数字增益倍数,对于黑白相机无意义,为1
  480. ("fBgain", c_float), # 该帧图像处理的蓝色数字增益倍数,对于黑白相机无意义,为1
  481. ]
  482. # Grabber统计信息
  483. class tSdkGrabberStat(MvStructure):
  484. _fields_ = [
  485. ("Width", c_int), # 帧图像大小
  486. ("Height", c_int), # 帧图像大小
  487. ("Disp", c_int), # 显示帧数量
  488. ("Capture", c_int), # 采集的有效帧的数量
  489. ("Lost", c_int), # 丢帧的数量
  490. ("Error", c_int), # 错帧的数量
  491. ("DispFps", c_float), # 显示帧率
  492. ("CapFps", c_float), # 捕获帧率
  493. ]
  494. # 方法回调辅助类
  495. class method(object):
  496. def __init__(self, FuncType):
  497. super(method, self).__init__()
  498. self.FuncType = FuncType
  499. self.cache = {}
  500. def __call__(self, cb):
  501. self.cb = cb
  502. return self
  503. def __get__(self, obj, objtype):
  504. try:
  505. return self.cache[obj]
  506. except KeyError as e:
  507. def cl(*args):
  508. return self.cb(obj, *args)
  509. r = self.cache[obj] = self.FuncType(cl)
  510. return r
  511. # 图像捕获的回调函数定义
  512. CAMERA_SNAP_PROC = CALLBACK_FUNC_TYPE(None, c_int, c_void_p, POINTER(tSdkFrameHead), c_void_p)
  513. # 相机连接状态回调
  514. CAMERA_CONNECTION_STATUS_CALLBACK = CALLBACK_FUNC_TYPE(None, c_int, c_uint, c_uint, c_void_p)
  515. # 异步抓图完成回调
  516. pfnCameraGrabberSaveImageComplete = CALLBACK_FUNC_TYPE(None, c_void_p, c_void_p, c_int, c_void_p)
  517. # 帧监听回调
  518. pfnCameraGrabberFrameListener = CALLBACK_FUNC_TYPE(c_int, c_void_p, c_int, c_void_p, POINTER(tSdkFrameHead), c_void_p)
  519. # 采集器图像捕获的回调
  520. pfnCameraGrabberFrameCallback = CALLBACK_FUNC_TYPE(None, c_void_p, c_void_p, POINTER(tSdkFrameHead), c_void_p)
  521. #-----------------------------------函数接口------------------------------------------
  522. # 线程局部存储
  523. _tls = local()
  524. # 存储最后一次SDK调用返回的错误码
  525. def GetLastError():
  526. try:
  527. return _tls.last_error
  528. except AttributeError as e:
  529. _tls.last_error = 0
  530. return 0
  531. def SetLastError(err_code):
  532. _tls.last_error = err_code
  533. def _string_buffer_to_str(buf):
  534. s = buf if isinstance(buf, type(b'')) else buf.value
  535. for codec in ('gbk', 'utf-8'):
  536. try:
  537. s = s.decode(codec)
  538. break
  539. except UnicodeDecodeError as e:
  540. continue
  541. if isinstance(s, str):
  542. return s
  543. else:
  544. return s.encode('utf-8')
  545. def _str_to_string_buffer(str):
  546. if type(str) is type(u''):
  547. s = str.encode('gbk')
  548. else:
  549. s = str.decode('utf-8').encode('gbk')
  550. return create_string_buffer(s)
  551. def CameraSdkInit(iLanguageSel):
  552. err_code = _sdk.CameraSdkInit(iLanguageSel)
  553. SetLastError(err_code)
  554. return err_code
  555. def CameraEnumerateDevice(MaxCount = 32):
  556. Nums = c_int(MaxCount)
  557. pCameraList = (tSdkCameraDevInfo * Nums.value)()
  558. err_code = _sdk.CameraEnumerateDevice(pCameraList, byref(Nums))
  559. SetLastError(err_code)
  560. return pCameraList[0:Nums.value]
  561. def CameraEnumerateDeviceEx():
  562. return _sdk.CameraEnumerateDeviceEx()
  563. def CameraIsOpened(pCameraInfo):
  564. pOpened = c_int()
  565. err_code = _sdk.CameraIsOpened(byref(pCameraInfo), byref(pOpened) )
  566. SetLastError(err_code)
  567. return pOpened.value != 0
  568. def CameraInit(pCameraInfo, emParamLoadMode = -1, emTeam = -1):
  569. pCameraHandle = c_int()
  570. err_code = _sdk.CameraInit(byref(pCameraInfo), emParamLoadMode, emTeam, byref(pCameraHandle))
  571. SetLastError(err_code)
  572. if err_code != 0:
  573. raise CameraException(err_code)
  574. return pCameraHandle.value
  575. def CameraInitEx(iDeviceIndex, emParamLoadMode = -1, emTeam = -1):
  576. pCameraHandle = c_int()
  577. err_code = _sdk.CameraInitEx(iDeviceIndex, emParamLoadMode, emTeam, byref(pCameraHandle))
  578. SetLastError(err_code)
  579. if err_code != 0:
  580. raise CameraException(err_code)
  581. return pCameraHandle.value
  582. def CameraInitEx2(CameraName):
  583. pCameraHandle = c_int()
  584. err_code = _sdk.CameraInitEx2(_str_to_string_buffer(CameraName), byref(pCameraHandle))
  585. SetLastError(err_code)
  586. if err_code != 0:
  587. raise CameraException(err_code)
  588. return pCameraHandle.value
  589. def CameraSetCallbackFunction(hCamera, pCallBack, pContext = 0):
  590. err_code = _sdk.CameraSetCallbackFunction(hCamera, pCallBack, c_void_p(pContext), None)
  591. SetLastError(err_code)
  592. return err_code
  593. def CameraUnInit(hCamera):
  594. err_code = _sdk.CameraUnInit(hCamera)
  595. SetLastError(err_code)
  596. return err_code
  597. def CameraGetInformation(hCamera):
  598. pbuffer = c_char_p()
  599. err_code = _sdk.CameraGetInformation(hCamera, byref(pbuffer) )
  600. SetLastError(err_code)
  601. if err_code == 0 and pbuffer.value is not None:
  602. return _string_buffer_to_str(pbuffer)
  603. return ''
  604. def CameraImageProcess(hCamera, pbyIn, pbyOut, pFrInfo):
  605. err_code = _sdk.CameraImageProcess(hCamera, c_void_p(pbyIn), c_void_p(pbyOut), byref(pFrInfo))
  606. SetLastError(err_code)
  607. return err_code
  608. def CameraImageProcessEx(hCamera, pbyIn, pbyOut, pFrInfo, uOutFormat, uReserved):
  609. err_code = _sdk.CameraImageProcessEx(hCamera, c_void_p(pbyIn), c_void_p(pbyOut), byref(pFrInfo), uOutFormat, uReserved)
  610. SetLastError(err_code)
  611. return err_code
  612. def CameraDisplayInit(hCamera, hWndDisplay):
  613. err_code = _sdk.CameraDisplayInit(hCamera, hWndDisplay)
  614. SetLastError(err_code)
  615. return err_code
  616. def CameraDisplayRGB24(hCamera, pFrameBuffer, pFrInfo):
  617. err_code = _sdk.CameraDisplayRGB24(hCamera, c_void_p(pFrameBuffer), byref(pFrInfo) )
  618. SetLastError(err_code)
  619. return err_code
  620. def CameraSetDisplayMode(hCamera, iMode):
  621. err_code = _sdk.CameraSetDisplayMode(hCamera, iMode)
  622. SetLastError(err_code)
  623. return err_code
  624. def CameraSetDisplayOffset(hCamera, iOffsetX, iOffsetY):
  625. err_code = _sdk.CameraSetDisplayOffset(hCamera, iOffsetX, iOffsetY)
  626. SetLastError(err_code)
  627. return err_code
  628. def CameraSetDisplaySize(hCamera, iWidth, iHeight):
  629. err_code = _sdk.CameraSetDisplaySize(hCamera, iWidth, iHeight)
  630. SetLastError(err_code)
  631. return err_code
  632. def CameraGetImageBuffer(hCamera, wTimes):
  633. pbyBuffer = c_void_p()
  634. pFrameInfo = tSdkFrameHead()
  635. err_code = _sdk.CameraGetImageBuffer(hCamera, byref(pFrameInfo), byref(pbyBuffer), wTimes)
  636. SetLastError(err_code)
  637. if err_code != 0:
  638. raise CameraException(err_code)
  639. return (pbyBuffer.value, pFrameInfo)
  640. def CameraGetImageBufferEx(hCamera, wTimes):
  641. _sdk.CameraGetImageBufferEx.restype = c_void_p
  642. piWidth = c_int()
  643. piHeight = c_int()
  644. pFrameBuffer = _sdk.CameraGetImageBufferEx(hCamera, byref(piWidth), byref(piHeight), wTimes)
  645. err_code = CAMERA_STATUS_SUCCESS if pFrameBuffer else CAMERA_STATUS_TIME_OUT
  646. SetLastError(err_code)
  647. if pFrameBuffer:
  648. return (pFrameBuffer, piWidth.value, piHeight.value)
  649. else:
  650. raise CameraException(err_code)
  651. def CameraSnapToBuffer(hCamera, wTimes):
  652. pbyBuffer = c_void_p()
  653. pFrameInfo = tSdkFrameHead()
  654. err_code = _sdk.CameraSnapToBuffer(hCamera, byref(pFrameInfo), byref(pbyBuffer), wTimes)
  655. SetLastError(err_code)
  656. if err_code != 0:
  657. raise CameraException(err_code)
  658. return (pbyBuffer.value, pFrameInfo)
  659. def CameraReleaseImageBuffer(hCamera, pbyBuffer):
  660. err_code = _sdk.CameraReleaseImageBuffer(hCamera, c_void_p(pbyBuffer) )
  661. SetLastError(err_code)
  662. return err_code
  663. def CameraPlay(hCamera):
  664. err_code = _sdk.CameraPlay(hCamera)
  665. SetLastError(err_code)
  666. return err_code
  667. def CameraPause(hCamera):
  668. err_code = _sdk.CameraPause(hCamera)
  669. SetLastError(err_code)
  670. return err_code
  671. def CameraStop(hCamera):
  672. err_code = _sdk.CameraStop(hCamera)
  673. SetLastError(err_code)
  674. return err_code
  675. def CameraInitRecord(hCamera, iFormat, pcSavePath, b2GLimit, dwQuality, iFrameRate):
  676. err_code = _sdk.CameraInitRecord(hCamera, iFormat, _str_to_string_buffer(pcSavePath), b2GLimit, dwQuality, iFrameRate)
  677. SetLastError(err_code)
  678. return err_code
  679. def CameraStopRecord(hCamera):
  680. err_code = _sdk.CameraStopRecord(hCamera)
  681. SetLastError(err_code)
  682. return err_code
  683. def CameraPushFrame(hCamera, pbyImageBuffer, pFrInfo):
  684. err_code = _sdk.CameraPushFrame(hCamera, c_void_p(pbyImageBuffer), byref(pFrInfo) )
  685. SetLastError(err_code)
  686. return err_code
  687. def CameraSaveImage(hCamera, lpszFileName, pbyImageBuffer, pFrInfo, byFileType, byQuality):
  688. err_code = _sdk.CameraSaveImage(hCamera, _str_to_string_buffer(lpszFileName), c_void_p(pbyImageBuffer), byref(pFrInfo), byFileType, byQuality)
  689. SetLastError(err_code)
  690. return err_code
  691. def CameraSaveImageEx(hCamera, lpszFileName, pbyImageBuffer, uImageFormat, iWidth, iHeight, byFileType, byQuality):
  692. err_code = _sdk.CameraSaveImageEx(hCamera, _str_to_string_buffer(lpszFileName), c_void_p(pbyImageBuffer), uImageFormat, iWidth, iHeight, byFileType, byQuality)
  693. SetLastError(err_code)
  694. return err_code
  695. def CameraGetImageResolution(hCamera):
  696. psCurVideoSize = tSdkImageResolution()
  697. err_code = _sdk.CameraGetImageResolution(hCamera, byref(psCurVideoSize) )
  698. SetLastError(err_code)
  699. return psCurVideoSize
  700. def CameraSetImageResolution(hCamera, pImageResolution):
  701. err_code = _sdk.CameraSetImageResolution(hCamera, byref(pImageResolution) )
  702. SetLastError(err_code)
  703. return err_code
  704. def CameraSetImageResolutionEx(hCamera, iIndex, Mode, ModeSize, x, y, width, height, ZoomWidth, ZoomHeight):
  705. err_code = _sdk.CameraSetImageResolutionEx(hCamera, iIndex, Mode, ModeSize, x, y, width, height, ZoomWidth, ZoomHeight)
  706. SetLastError(err_code)
  707. return err_code
  708. def CameraGetMediaType(hCamera):
  709. piMediaType = c_int()
  710. err_code = _sdk.CameraGetMediaType(hCamera, byref(piMediaType) )
  711. SetLastError(err_code)
  712. return piMediaType.value
  713. def CameraSetMediaType(hCamera, iMediaType):
  714. err_code = _sdk.CameraSetMediaType(hCamera, iMediaType)
  715. SetLastError(err_code)
  716. return err_code
  717. def CameraSetAeState(hCamera, bAeState):
  718. err_code = _sdk.CameraSetAeState(hCamera, bAeState)
  719. SetLastError(err_code)
  720. return err_code
  721. def CameraGetAeState(hCamera):
  722. pAeState = c_int()
  723. err_code = _sdk.CameraGetAeState(hCamera, byref(pAeState) )
  724. SetLastError(err_code)
  725. return pAeState.value
  726. def CameraSetSharpness(hCamera, iSharpness):
  727. err_code = _sdk.CameraSetSharpness(hCamera, iSharpness)
  728. SetLastError(err_code)
  729. return err_code
  730. def CameraGetSharpness(hCamera):
  731. piSharpness = c_int()
  732. err_code = _sdk.CameraGetSharpness(hCamera, byref(piSharpness) )
  733. SetLastError(err_code)
  734. return piSharpness.value
  735. def CameraSetLutMode(hCamera, emLutMode):
  736. err_code = _sdk.CameraSetLutMode(hCamera, emLutMode)
  737. SetLastError(err_code)
  738. return err_code
  739. def CameraGetLutMode(hCamera):
  740. pemLutMode = c_int()
  741. err_code = _sdk.CameraGetLutMode(hCamera, byref(pemLutMode) )
  742. SetLastError(err_code)
  743. return pemLutMode.value
  744. def CameraSelectLutPreset(hCamera, iSel):
  745. err_code = _sdk.CameraSelectLutPreset(hCamera, iSel)
  746. SetLastError(err_code)
  747. return err_code
  748. def CameraGetLutPresetSel(hCamera):
  749. piSel = c_int()
  750. err_code = _sdk.CameraGetLutPresetSel(hCamera, byref(piSel) )
  751. SetLastError(err_code)
  752. return piSel.value
  753. def CameraSetCustomLut(hCamera, iChannel, pLut):
  754. pLutNative = (c_ushort * 4096)(*pLut)
  755. err_code = _sdk.CameraSetCustomLut(hCamera, iChannel, pLutNative)
  756. SetLastError(err_code)
  757. return err_code
  758. def CameraGetCustomLut(hCamera, iChannel):
  759. pLutNative = (c_ushort * 4096)()
  760. err_code = _sdk.CameraGetCustomLut(hCamera, iChannel, pLutNative)
  761. SetLastError(err_code)
  762. return pLutNative[:]
  763. def CameraGetCurrentLut(hCamera, iChannel):
  764. pLutNative = (c_ushort * 4096)()
  765. err_code = _sdk.CameraGetCurrentLut(hCamera, iChannel, pLutNative)
  766. SetLastError(err_code)
  767. return pLutNative[:]
  768. def CameraSetWbMode(hCamera, bAuto):
  769. err_code = _sdk.CameraSetWbMode(hCamera, bAuto)
  770. SetLastError(err_code)
  771. return err_code
  772. def CameraGetWbMode(hCamera):
  773. pbAuto = c_int()
  774. err_code = _sdk.CameraGetWbMode(hCamera, byref(pbAuto) )
  775. SetLastError(err_code)
  776. return pbAuto.value
  777. def CameraSetPresetClrTemp(hCamera, iSel):
  778. err_code = _sdk.CameraSetPresetClrTemp(hCamera, iSel)
  779. SetLastError(err_code)
  780. return err_code
  781. def CameraGetPresetClrTemp(hCamera):
  782. piSel = c_int()
  783. err_code = _sdk.CameraGetPresetClrTemp(hCamera, byref(piSel) )
  784. SetLastError(err_code)
  785. return piSel.value
  786. def CameraSetUserClrTempGain(hCamera, iRgain, iGgain, iBgain):
  787. err_code = _sdk.CameraSetUserClrTempGain(hCamera, iRgain, iGgain, iBgain)
  788. SetLastError(err_code)
  789. return err_code
  790. def CameraGetUserClrTempGain(hCamera):
  791. piRgain = c_int()
  792. piGgain = c_int()
  793. piBgain = c_int()
  794. err_code = _sdk.CameraGetUserClrTempGain(hCamera, byref(piRgain), byref(piGgain), byref(piBgain) )
  795. SetLastError(err_code)
  796. return (piRgain.value, piGgain.value, piBgain.value)
  797. def CameraSetUserClrTempMatrix(hCamera, pMatrix):
  798. pMatrixNative = (c_float * 9)(*pMatrix)
  799. err_code = _sdk.CameraSetUserClrTempMatrix(hCamera, pMatrixNative)
  800. SetLastError(err_code)
  801. return err_code
  802. def CameraGetUserClrTempMatrix(hCamera):
  803. pMatrixNative = (c_float * 9)()
  804. err_code = _sdk.CameraGetUserClrTempMatrix(hCamera, pMatrixNative)
  805. SetLastError(err_code)
  806. return pMatrixNative[:]
  807. def CameraSetClrTempMode(hCamera, iMode):
  808. err_code = _sdk.CameraSetClrTempMode(hCamera, iMode)
  809. SetLastError(err_code)
  810. return err_code
  811. def CameraGetClrTempMode(hCamera):
  812. piMode = c_int()
  813. err_code = _sdk.CameraGetClrTempMode(hCamera, byref(piMode) )
  814. SetLastError(err_code)
  815. return piMode.value
  816. def CameraSetOnceWB(hCamera):
  817. err_code = _sdk.CameraSetOnceWB(hCamera)
  818. SetLastError(err_code)
  819. return err_code
  820. def CameraSetOnceBB(hCamera):
  821. err_code = _sdk.CameraSetOnceBB(hCamera)
  822. SetLastError(err_code)
  823. return err_code
  824. def CameraSetAeTarget(hCamera, iAeTarget):
  825. err_code = _sdk.CameraSetAeTarget(hCamera, iAeTarget)
  826. SetLastError(err_code)
  827. return err_code
  828. def CameraGetAeTarget(hCamera):
  829. piAeTarget = c_int()
  830. err_code = _sdk.CameraGetAeTarget(hCamera, byref(piAeTarget) )
  831. SetLastError(err_code)
  832. return piAeTarget.value
  833. def CameraSetAeExposureRange(hCamera, fMinExposureTime, fMaxExposureTime):
  834. err_code = _sdk.CameraSetAeExposureRange(hCamera, c_double(fMinExposureTime), c_double(fMaxExposureTime) )
  835. SetLastError(err_code)
  836. return err_code
  837. def CameraGetAeExposureRange(hCamera):
  838. fMinExposureTime = c_double()
  839. fMaxExposureTime = c_double()
  840. err_code = _sdk.CameraGetAeExposureRange(hCamera, byref(fMinExposureTime), byref(fMaxExposureTime) )
  841. SetLastError(err_code)
  842. return (fMinExposureTime.value, fMaxExposureTime.value)
  843. def CameraSetAeAnalogGainRange(hCamera, iMinAnalogGain, iMaxAnalogGain):
  844. err_code = _sdk.CameraSetAeAnalogGainRange(hCamera, iMinAnalogGain, iMaxAnalogGain)
  845. SetLastError(err_code)
  846. return err_code
  847. def CameraGetAeAnalogGainRange(hCamera):
  848. iMinAnalogGain = c_int()
  849. iMaxAnalogGain = c_int()
  850. err_code = _sdk.CameraGetAeAnalogGainRange(hCamera, byref(iMinAnalogGain), byref(iMaxAnalogGain) )
  851. SetLastError(err_code)
  852. return (iMinAnalogGain.value, iMaxAnalogGain.value)
  853. def CameraSetAeThreshold(hCamera, iThreshold):
  854. err_code = _sdk.CameraSetAeThreshold(hCamera, iThreshold)
  855. SetLastError(err_code)
  856. return err_code
  857. def CameraGetAeThreshold(hCamera):
  858. iThreshold = c_int()
  859. err_code = _sdk.CameraGetAeThreshold(hCamera, byref(iThreshold))
  860. SetLastError(err_code)
  861. return iThreshold.value
  862. def CameraSetExposureTime(hCamera, fExposureTime):
  863. err_code = _sdk.CameraSetExposureTime(hCamera, c_double(fExposureTime) )
  864. SetLastError(err_code)
  865. return err_code
  866. def CameraGetExposureLineTime(hCamera):
  867. pfLineTime = c_double()
  868. err_code = _sdk.CameraGetExposureLineTime(hCamera, byref(pfLineTime))
  869. SetLastError(err_code)
  870. return pfLineTime.value
  871. def CameraGetExposureTime(hCamera):
  872. pfExposureTime = c_double()
  873. err_code = _sdk.CameraGetExposureTime(hCamera, byref(pfExposureTime))
  874. SetLastError(err_code)
  875. return pfExposureTime.value
  876. def CameraGetExposureTimeRange(hCamera):
  877. pfMin = c_double()
  878. pfMax = c_double()
  879. pfStep = c_double()
  880. err_code = _sdk.CameraGetExposureTimeRange(hCamera, byref(pfMin), byref(pfMax), byref(pfStep))
  881. SetLastError(err_code)
  882. return (pfMin.value, pfMax.value, pfStep.value)
  883. def CameraSetAnalogGain(hCamera, iAnalogGain):
  884. err_code = _sdk.CameraSetAnalogGain(hCamera, iAnalogGain)
  885. SetLastError(err_code)
  886. return err_code
  887. def CameraGetAnalogGain(hCamera):
  888. piAnalogGain = c_int()
  889. err_code = _sdk.CameraGetAnalogGain(hCamera, byref(piAnalogGain))
  890. SetLastError(err_code)
  891. return piAnalogGain.value
  892. def CameraSetGain(hCamera, iRGain, iGGain, iBGain):
  893. err_code = _sdk.CameraSetGain(hCamera, iRGain, iGGain, iBGain)
  894. SetLastError(err_code)
  895. return err_code
  896. def CameraGetGain(hCamera):
  897. piRGain = c_int()
  898. piGGain = c_int()
  899. piBGain = c_int()
  900. err_code = _sdk.CameraGetGain(hCamera, byref(piRGain), byref(piGGain), byref(piBGain))
  901. SetLastError(err_code)
  902. return (piRGain.value, piGGain.value, piBGain.value)
  903. def CameraSetGamma(hCamera, iGamma):
  904. err_code = _sdk.CameraSetGamma(hCamera, iGamma)
  905. SetLastError(err_code)
  906. return err_code
  907. def CameraGetGamma(hCamera):
  908. piGamma = c_int()
  909. err_code = _sdk.CameraGetGamma(hCamera, byref(piGamma))
  910. SetLastError(err_code)
  911. return piGamma.value
  912. def CameraSetContrast(hCamera, iContrast):
  913. err_code = _sdk.CameraSetContrast(hCamera, iContrast)
  914. SetLastError(err_code)
  915. return err_code
  916. def CameraGetContrast(hCamera):
  917. piContrast = c_int()
  918. err_code = _sdk.CameraGetContrast(hCamera, byref(piContrast))
  919. SetLastError(err_code)
  920. return piContrast.value
  921. def CameraSetSaturation(hCamera, iSaturation):
  922. err_code = _sdk.CameraSetSaturation(hCamera, iSaturation)
  923. SetLastError(err_code)
  924. return err_code
  925. def CameraGetSaturation(hCamera):
  926. piSaturation = c_int()
  927. err_code = _sdk.CameraGetSaturation(hCamera, byref(piSaturation))
  928. SetLastError(err_code)
  929. return piSaturation.value
  930. def CameraSetMonochrome(hCamera, bEnable):
  931. err_code = _sdk.CameraSetMonochrome(hCamera, bEnable)
  932. SetLastError(err_code)
  933. return err_code
  934. def CameraGetMonochrome(hCamera):
  935. pbEnable = c_int()
  936. err_code = _sdk.CameraGetMonochrome(hCamera, byref(pbEnable))
  937. SetLastError(err_code)
  938. return pbEnable.value
  939. def CameraSetInverse(hCamera, bEnable):
  940. err_code = _sdk.CameraSetInverse(hCamera, bEnable)
  941. SetLastError(err_code)
  942. return err_code
  943. def CameraGetInverse(hCamera):
  944. pbEnable = c_int()
  945. err_code = _sdk.CameraGetInverse(hCamera, byref(pbEnable))
  946. SetLastError(err_code)
  947. return pbEnable.value
  948. def CameraSetAntiFlick(hCamera, bEnable):
  949. err_code = _sdk.CameraSetAntiFlick(hCamera, bEnable)
  950. SetLastError(err_code)
  951. return err_code
  952. def CameraGetAntiFlick(hCamera):
  953. pbEnable = c_int()
  954. err_code = _sdk.CameraGetAntiFlick(hCamera, byref(pbEnable))
  955. SetLastError(err_code)
  956. return pbEnable.value
  957. def CameraGetLightFrequency(hCamera):
  958. piFrequencySel = c_int()
  959. err_code = _sdk.CameraGetLightFrequency(hCamera, byref(piFrequencySel))
  960. SetLastError(err_code)
  961. return piFrequencySel.value
  962. def CameraSetLightFrequency(hCamera, iFrequencySel):
  963. err_code = _sdk.CameraSetLightFrequency(hCamera, iFrequencySel)
  964. SetLastError(err_code)
  965. return err_code
  966. def CameraSetFrameSpeed(hCamera, iFrameSpeed):
  967. err_code = _sdk.CameraSetFrameSpeed(hCamera, iFrameSpeed)
  968. SetLastError(err_code)
  969. return err_code
  970. def CameraGetFrameSpeed(hCamera):
  971. piFrameSpeed = c_int()
  972. err_code = _sdk.CameraGetFrameSpeed(hCamera, byref(piFrameSpeed))
  973. SetLastError(err_code)
  974. return piFrameSpeed.value
  975. def CameraSetParameterMode(hCamera, iMode):
  976. err_code = _sdk.CameraSetParameterMode(hCamera, iMode)
  977. SetLastError(err_code)
  978. return err_code
  979. def CameraGetParameterMode(hCamera):
  980. piTarget = c_int()
  981. err_code = _sdk.CameraGetParameterMode(hCamera, byref(piTarget))
  982. SetLastError(err_code)
  983. return piTarget.value
  984. def CameraSetParameterMask(hCamera, uMask):
  985. err_code = _sdk.CameraSetParameterMask(hCamera, uMask)
  986. SetLastError(err_code)
  987. return err_code
  988. def CameraSaveParameter(hCamera, iTeam):
  989. err_code = _sdk.CameraSaveParameter(hCamera, iTeam)
  990. SetLastError(err_code)
  991. return err_code
  992. def CameraSaveParameterToFile(hCamera, sFileName):
  993. err_code = _sdk.CameraSaveParameterToFile(hCamera, _str_to_string_buffer(sFileName))
  994. SetLastError(err_code)
  995. return err_code
  996. def CameraReadParameterFromFile(hCamera, sFileName):
  997. err_code = _sdk.CameraReadParameterFromFile(hCamera, _str_to_string_buffer(sFileName))
  998. SetLastError(err_code)
  999. return err_code
  1000. def CameraLoadParameter(hCamera, iTeam):
  1001. err_code = _sdk.CameraLoadParameter(hCamera, iTeam)
  1002. SetLastError(err_code)
  1003. return err_code
  1004. def CameraGetCurrentParameterGroup(hCamera):
  1005. piTeam = c_int()
  1006. err_code = _sdk.CameraGetCurrentParameterGroup(hCamera, byref(piTeam))
  1007. SetLastError(err_code)
  1008. return piTeam.value
  1009. def CameraSetTransPackLen(hCamera, iPackSel):
  1010. err_code = _sdk.CameraSetTransPackLen(hCamera, iPackSel)
  1011. SetLastError(err_code)
  1012. return err_code
  1013. def CameraGetTransPackLen(hCamera):
  1014. piPackSel = c_int()
  1015. err_code = _sdk.CameraGetTransPackLen(hCamera, byref(piPackSel))
  1016. SetLastError(err_code)
  1017. return piPackSel.value
  1018. def CameraIsAeWinVisible(hCamera):
  1019. pbIsVisible = c_int()
  1020. err_code = _sdk.CameraIsAeWinVisible(hCamera, byref(pbIsVisible))
  1021. SetLastError(err_code)
  1022. return pbIsVisible.value
  1023. def CameraSetAeWinVisible(hCamera, bIsVisible):
  1024. err_code = _sdk.CameraSetAeWinVisible(hCamera, bIsVisible)
  1025. SetLastError(err_code)
  1026. return err_code
  1027. def CameraGetAeWindow(hCamera):
  1028. piHOff = c_int()
  1029. piVOff = c_int()
  1030. piWidth = c_int()
  1031. piHeight = c_int()
  1032. err_code = _sdk.CameraGetAeWindow(hCamera, byref(piHOff), byref(piVOff), byref(piWidth), byref(piHeight))
  1033. SetLastError(err_code)
  1034. return (piHOff.value, piVOff.value, piWidth.value, piHeight.value)
  1035. def CameraSetAeWindow(hCamera, iHOff, iVOff, iWidth, iHeight):
  1036. err_code = _sdk.CameraSetAeWindow(hCamera, iHOff, iVOff, iWidth, iHeight)
  1037. SetLastError(err_code)
  1038. return err_code
  1039. def CameraSetMirror(hCamera, iDir, bEnable):
  1040. err_code = _sdk.CameraSetMirror(hCamera, iDir, bEnable)
  1041. SetLastError(err_code)
  1042. return err_code
  1043. def CameraGetMirror(hCamera, iDir):
  1044. pbEnable = c_int()
  1045. err_code = _sdk.CameraGetMirror(hCamera, iDir, byref(pbEnable))
  1046. SetLastError(err_code)
  1047. return pbEnable.value
  1048. def CameraSetRotate(hCamera, iRot):
  1049. err_code = _sdk.CameraSetRotate(hCamera, iRot)
  1050. SetLastError(err_code)
  1051. return err_code
  1052. def CameraGetRotate(hCamera):
  1053. iRot = c_int()
  1054. err_code = _sdk.CameraGetRotate(hCamera, byref(iRot))
  1055. SetLastError(err_code)
  1056. return iRot.value
  1057. def CameraGetWbWindow(hCamera):
  1058. PiHOff = c_int()
  1059. PiVOff = c_int()
  1060. PiWidth = c_int()
  1061. PiHeight = c_int()
  1062. err_code = _sdk.CameraGetWbWindow(hCamera, byref(PiHOff), byref(PiVOff), byref(PiWidth), byref(PiHeight))
  1063. SetLastError(err_code)
  1064. return (PiHOff.value, PiVOff.value, PiWidth.value, PiHeight.value)
  1065. def CameraSetWbWindow(hCamera, iHOff, iVOff, iWidth, iHeight):
  1066. err_code = _sdk.CameraSetWbWindow(hCamera, iHOff, iVOff, iWidth, iHeight)
  1067. SetLastError(err_code)
  1068. return err_code
  1069. def CameraIsWbWinVisible(hCamera):
  1070. pbShow = c_int()
  1071. err_code = _sdk.CameraIsWbWinVisible(hCamera, byref(pbShow))
  1072. SetLastError(err_code)
  1073. return pbShow.value
  1074. def CameraSetWbWinVisible(hCamera, bShow):
  1075. err_code = _sdk.CameraSetWbWinVisible(hCamera, bShow)
  1076. SetLastError(err_code)
  1077. return err_code
  1078. def CameraImageOverlay(hCamera, pRgbBuffer, pFrInfo):
  1079. err_code = _sdk.CameraImageOverlay(hCamera, c_void_p(pRgbBuffer), byref(pFrInfo))
  1080. SetLastError(err_code)
  1081. return err_code
  1082. def CameraSetCrossLine(hCamera, iLine, x, y, uColor, bVisible):
  1083. err_code = _sdk.CameraSetCrossLine(hCamera, iLine, x, y, uColor, bVisible)
  1084. SetLastError(err_code)
  1085. return err_code
  1086. def CameraGetCrossLine(hCamera, iLine):
  1087. px = c_int()
  1088. py = c_int()
  1089. pcolor = c_uint()
  1090. pbVisible = c_int()
  1091. err_code = _sdk.CameraGetCrossLine(hCamera, iLine, byref(px), byref(py), byref(pcolor), byref(pbVisible))
  1092. SetLastError(err_code)
  1093. return (px.value, py.value, pcolor.value, pbVisible.value)
  1094. def CameraGetCapability(hCamera):
  1095. pCameraInfo = tSdkCameraCapbility()
  1096. err_code = _sdk.CameraGetCapability(hCamera, byref(pCameraInfo))
  1097. SetLastError(err_code)
  1098. return pCameraInfo
  1099. def CameraWriteSN(hCamera, pbySN, iLevel):
  1100. err_code = _sdk.CameraWriteSN(hCamera, _str_to_string_buffer(pbySN), iLevel)
  1101. SetLastError(err_code)
  1102. return err_code
  1103. def CameraReadSN(hCamera, iLevel):
  1104. pbySN = create_string_buffer(64)
  1105. err_code = _sdk.CameraReadSN(hCamera, pbySN, iLevel)
  1106. SetLastError(err_code)
  1107. return _string_buffer_to_str(pbySN)
  1108. def CameraSetTriggerDelayTime(hCamera, uDelayTimeUs):
  1109. err_code = _sdk.CameraSetTriggerDelayTime(hCamera, uDelayTimeUs)
  1110. SetLastError(err_code)
  1111. return err_code
  1112. def CameraGetTriggerDelayTime(hCamera):
  1113. puDelayTimeUs = c_uint()
  1114. err_code = _sdk.CameraGetTriggerDelayTime(hCamera, byref(puDelayTimeUs))
  1115. SetLastError(err_code)
  1116. return puDelayTimeUs.value
  1117. def CameraSetTriggerCount(hCamera, iCount):
  1118. err_code = _sdk.CameraSetTriggerCount(hCamera, iCount)
  1119. SetLastError(err_code)
  1120. return err_code
  1121. def CameraGetTriggerCount(hCamera):
  1122. piCount = c_int()
  1123. err_code = _sdk.CameraGetTriggerCount(hCamera, byref(piCount))
  1124. SetLastError(err_code)
  1125. return piCount.value
  1126. def CameraSoftTrigger(hCamera):
  1127. err_code = _sdk.CameraSoftTrigger(hCamera)
  1128. SetLastError(err_code)
  1129. return err_code
  1130. def CameraSetTriggerMode(hCamera, iModeSel):
  1131. err_code = _sdk.CameraSetTriggerMode(hCamera, iModeSel)
  1132. SetLastError(err_code)
  1133. return err_code
  1134. def CameraGetTriggerMode(hCamera):
  1135. piModeSel = c_int()
  1136. err_code = _sdk.CameraGetTriggerMode(hCamera, byref(piModeSel))
  1137. SetLastError(err_code)
  1138. return piModeSel.value
  1139. def CameraSetStrobeMode(hCamera, iMode):
  1140. err_code = _sdk.CameraSetStrobeMode(hCamera, iMode)
  1141. SetLastError(err_code)
  1142. return err_code
  1143. def CameraGetStrobeMode(hCamera):
  1144. piMode = c_int()
  1145. err_code = _sdk.CameraGetStrobeMode(hCamera, byref(piMode))
  1146. SetLastError(err_code)
  1147. return piMode.value
  1148. def CameraSetStrobeDelayTime(hCamera, uDelayTimeUs):
  1149. err_code = _sdk.CameraSetStrobeDelayTime(hCamera, uDelayTimeUs)
  1150. SetLastError(err_code)
  1151. return err_code
  1152. def CameraGetStrobeDelayTime(hCamera):
  1153. upDelayTimeUs = c_uint()
  1154. err_code = _sdk.CameraGetStrobeDelayTime(hCamera, byref(upDelayTimeUs))
  1155. SetLastError(err_code)
  1156. return upDelayTimeUs.value
  1157. def CameraSetStrobePulseWidth(hCamera, uTimeUs):
  1158. err_code = _sdk.CameraSetStrobePulseWidth(hCamera, uTimeUs)
  1159. SetLastError(err_code)
  1160. return err_code
  1161. def CameraGetStrobePulseWidth(hCamera):
  1162. upTimeUs = c_uint()
  1163. err_code = _sdk.CameraGetStrobePulseWidth(hCamera, byref(upTimeUs))
  1164. SetLastError(err_code)
  1165. return upTimeUs.value
  1166. def CameraSetStrobePolarity(hCamera, uPolarity):
  1167. err_code = _sdk.CameraSetStrobePolarity(hCamera, uPolarity)
  1168. SetLastError(err_code)
  1169. return err_code
  1170. def CameraGetStrobePolarity(hCamera):
  1171. upPolarity = c_uint()
  1172. err_code = _sdk.CameraGetStrobePolarity(hCamera, byref(upPolarity))
  1173. SetLastError(err_code)
  1174. return upPolarity.value
  1175. def CameraSetExtTrigSignalType(hCamera, iType):
  1176. err_code = _sdk.CameraSetExtTrigSignalType(hCamera, iType)
  1177. SetLastError(err_code)
  1178. return err_code
  1179. def CameraGetExtTrigSignalType(hCamera):
  1180. ipType = c_int()
  1181. err_code = _sdk.CameraGetExtTrigSignalType(hCamera, byref(ipType))
  1182. SetLastError(err_code)
  1183. return ipType.value
  1184. def CameraSetExtTrigShutterType(hCamera, iType):
  1185. err_code = _sdk.CameraSetExtTrigShutterType(hCamera, iType)
  1186. SetLastError(err_code)
  1187. return err_code
  1188. def CameraGetExtTrigShutterType(hCamera):
  1189. ipType = c_int()
  1190. err_code = _sdk.CameraGetExtTrigShutterType(hCamera, byref(ipType))
  1191. SetLastError(err_code)
  1192. return ipType.value
  1193. def CameraSetExtTrigDelayTime(hCamera, uDelayTimeUs):
  1194. err_code = _sdk.CameraSetExtTrigDelayTime(hCamera, uDelayTimeUs)
  1195. SetLastError(err_code)
  1196. return err_code
  1197. def CameraGetExtTrigDelayTime(hCamera):
  1198. upDelayTimeUs = c_uint()
  1199. err_code = _sdk.CameraGetExtTrigDelayTime(hCamera, byref(upDelayTimeUs))
  1200. SetLastError(err_code)
  1201. return upDelayTimeUs.value
  1202. def CameraSetExtTrigJitterTime(hCamera, uTimeUs):
  1203. err_code = _sdk.CameraSetExtTrigJitterTime(hCamera, uTimeUs)
  1204. SetLastError(err_code)
  1205. return err_code
  1206. def CameraGetExtTrigJitterTime(hCamera):
  1207. upTimeUs = c_uint()
  1208. err_code = _sdk.CameraGetExtTrigJitterTime(hCamera, byref(upTimeUs))
  1209. SetLastError(err_code)
  1210. return upTimeUs.value
  1211. def CameraGetExtTrigCapability(hCamera):
  1212. puCapabilityMask = c_uint()
  1213. err_code = _sdk.CameraGetExtTrigCapability(hCamera, byref(puCapabilityMask))
  1214. SetLastError(err_code)
  1215. return puCapabilityMask.value
  1216. def CameraPauseLevelTrigger(hCamera):
  1217. err_code = _sdk.CameraPauseLevelTrigger(hCamera)
  1218. SetLastError(err_code)
  1219. return err_code
  1220. def CameraGetResolutionForSnap(hCamera):
  1221. pImageResolution = tSdkImageResolution()
  1222. err_code = _sdk.CameraGetResolutionForSnap(hCamera, byref(pImageResolution))
  1223. SetLastError(err_code)
  1224. return pImageResolution
  1225. def CameraSetResolutionForSnap(hCamera, pImageResolution):
  1226. err_code = _sdk.CameraSetResolutionForSnap(hCamera, byref(pImageResolution))
  1227. SetLastError(err_code)
  1228. return err_code
  1229. def CameraCustomizeResolution(hCamera):
  1230. pImageCustom = tSdkImageResolution()
  1231. err_code = _sdk.CameraCustomizeResolution(hCamera, byref(pImageCustom))
  1232. SetLastError(err_code)
  1233. return pImageCustom
  1234. def CameraCustomizeReferWin(hCamera, iWinType, hParent):
  1235. piHOff = c_int()
  1236. piVOff = c_int()
  1237. piWidth = c_int()
  1238. piHeight = c_int()
  1239. err_code = _sdk.CameraCustomizeReferWin(hCamera, iWinType, hParent, byref(piHOff), byref(piVOff), byref(piWidth), byref(piHeight))
  1240. SetLastError(err_code)
  1241. return (piHOff.value, piVOff.value, piWidth.value, piHeight.value)
  1242. def CameraShowSettingPage(hCamera, bShow):
  1243. err_code = _sdk.CameraShowSettingPage(hCamera, bShow)
  1244. SetLastError(err_code)
  1245. return err_code
  1246. def CameraCreateSettingPage(hCamera, hParent, pWinText, pCallbackFunc = None, pCallbackCtx = 0, uReserved = 0):
  1247. err_code = _sdk.CameraCreateSettingPage(hCamera, hParent, _str_to_string_buffer(pWinText), pCallbackFunc, c_void_p(pCallbackCtx), uReserved)
  1248. SetLastError(err_code)
  1249. return err_code
  1250. def CameraCreateSettingPageEx(hCamera):
  1251. err_code = _sdk.CameraCreateSettingPageEx(hCamera)
  1252. SetLastError(err_code)
  1253. return err_code
  1254. def CameraSetActiveSettingSubPage(hCamera, index):
  1255. err_code = _sdk.CameraSetActiveSettingSubPage(hCamera, index)
  1256. SetLastError(err_code)
  1257. return err_code
  1258. def CameraSetSettingPageParent(hCamera, hParentWnd, Flags):
  1259. err_code = _sdk.CameraSetSettingPageParent(hCamera, hParentWnd, Flags)
  1260. SetLastError(err_code)
  1261. return err_code
  1262. def CameraGetSettingPageHWnd(hCamera):
  1263. hWnd = c_void_p()
  1264. err_code = _sdk.CameraGetSettingPageHWnd(hCamera, byref(hWnd))
  1265. SetLastError(err_code)
  1266. return hWnd.value
  1267. def CameraSpecialControl(hCamera, dwCtrlCode, dwParam, lpData):
  1268. err_code = _sdk.CameraSpecialControl(hCamera, dwCtrlCode, dwParam, c_void_p(lpData) )
  1269. SetLastError(err_code)
  1270. return err_code
  1271. def CameraGetFrameStatistic(hCamera):
  1272. psFrameStatistic = tSdkFrameStatistic()
  1273. err_code = _sdk.CameraGetFrameStatistic(hCamera, byref(psFrameStatistic))
  1274. SetLastError(err_code)
  1275. return psFrameStatistic
  1276. def CameraSetNoiseFilter(hCamera, bEnable):
  1277. err_code = _sdk.CameraSetNoiseFilter(hCamera, bEnable)
  1278. SetLastError(err_code)
  1279. return err_code
  1280. def CameraGetNoiseFilterState(hCamera):
  1281. pEnable = c_int()
  1282. err_code = _sdk.CameraGetNoiseFilterState(hCamera, byref(pEnable))
  1283. SetLastError(err_code)
  1284. return pEnable.value
  1285. def CameraRstTimeStamp(hCamera):
  1286. err_code = _sdk.CameraRstTimeStamp(hCamera)
  1287. SetLastError(err_code)
  1288. return err_code
  1289. def CameraSaveUserData(hCamera, uStartAddr, pbData):
  1290. err_code = _sdk.CameraSaveUserData(hCamera, uStartAddr, pbData, len(pbData))
  1291. SetLastError(err_code)
  1292. return err_code
  1293. def CameraLoadUserData(hCamera, uStartAddr, ilen):
  1294. pbData = create_string_buffer(ilen)
  1295. err_code = _sdk.CameraLoadUserData(hCamera, uStartAddr, pbData, ilen)
  1296. SetLastError(err_code)
  1297. return pbData[:]
  1298. def CameraGetFriendlyName(hCamera):
  1299. pName = create_string_buffer(64)
  1300. err_code = _sdk.CameraGetFriendlyName(hCamera, pName)
  1301. SetLastError(err_code)
  1302. return _string_buffer_to_str(pName)
  1303. def CameraSetFriendlyName(hCamera, pName):
  1304. pNameBuf = _str_to_string_buffer(pName)
  1305. resize(pNameBuf, 64)
  1306. err_code = _sdk.CameraSetFriendlyName(hCamera, pNameBuf)
  1307. SetLastError(err_code)
  1308. return err_code
  1309. def CameraSdkGetVersionString():
  1310. pVersionString = create_string_buffer(64)
  1311. err_code = _sdk.CameraSdkGetVersionString(pVersionString)
  1312. SetLastError(err_code)
  1313. return _string_buffer_to_str(pVersionString)
  1314. def CameraCheckFwUpdate(hCamera):
  1315. pNeedUpdate = c_int()
  1316. err_code = _sdk.CameraCheckFwUpdate(hCamera, byref(pNeedUpdate))
  1317. SetLastError(err_code)
  1318. return pNeedUpdate.value
  1319. def CameraGetFirmwareVersion(hCamera):
  1320. pVersion = create_string_buffer(64)
  1321. err_code = _sdk.CameraGetFirmwareVersion(hCamera, pVersion)
  1322. SetLastError(err_code)
  1323. return _string_buffer_to_str(pVersion)
  1324. def CameraGetEnumInfo(hCamera):
  1325. pCameraInfo = tSdkCameraDevInfo()
  1326. err_code = _sdk.CameraGetEnumInfo(hCamera, byref(pCameraInfo))
  1327. SetLastError(err_code)
  1328. return pCameraInfo
  1329. def CameraGetInerfaceVersion(hCamera):
  1330. pVersion = create_string_buffer(64)
  1331. err_code = _sdk.CameraGetInerfaceVersion(hCamera, pVersion)
  1332. SetLastError(err_code)
  1333. return _string_buffer_to_str(pVersion)
  1334. def CameraSetIOState(hCamera, iOutputIOIndex, uState):
  1335. err_code = _sdk.CameraSetIOState(hCamera, iOutputIOIndex, uState)
  1336. SetLastError(err_code)
  1337. return err_code
  1338. def CameraGetIOState(hCamera, iInputIOIndex):
  1339. puState = c_int()
  1340. err_code = _sdk.CameraGetIOState(hCamera, iInputIOIndex, byref(puState))
  1341. SetLastError(err_code)
  1342. return puState.value
  1343. def CameraSetInPutIOMode(hCamera, iInputIOIndex, iMode):
  1344. err_code = _sdk.CameraSetInPutIOMode(hCamera, iInputIOIndex, iMode)
  1345. SetLastError(err_code)
  1346. return err_code
  1347. def CameraSetOutPutIOMode(hCamera, iOutputIOIndex, iMode):
  1348. err_code = _sdk.CameraSetOutPutIOMode(hCamera, iOutputIOIndex, iMode)
  1349. SetLastError(err_code)
  1350. return err_code
  1351. def CameraSetOutPutPWM(hCamera, iOutputIOIndex, iCycle, uDuty):
  1352. err_code = _sdk.CameraSetOutPutPWM(hCamera, iOutputIOIndex, iCycle, uDuty)
  1353. SetLastError(err_code)
  1354. return err_code
  1355. def CameraSetAeAlgorithm(hCamera, iIspProcessor, iAeAlgorithmSel):
  1356. err_code = _sdk.CameraSetAeAlgorithm(hCamera, iIspProcessor, iAeAlgorithmSel)
  1357. SetLastError(err_code)
  1358. return err_code
  1359. def CameraGetAeAlgorithm(hCamera, iIspProcessor):
  1360. piAlgorithmSel = c_int()
  1361. err_code = _sdk.CameraGetAeAlgorithm(hCamera, iIspProcessor, byref(piAlgorithmSel))
  1362. SetLastError(err_code)
  1363. return piAlgorithmSel.value
  1364. def CameraSetBayerDecAlgorithm(hCamera, iIspProcessor, iAlgorithmSel):
  1365. err_code = _sdk.CameraSetBayerDecAlgorithm(hCamera, iIspProcessor, iAlgorithmSel)
  1366. SetLastError(err_code)
  1367. return err_code
  1368. def CameraGetBayerDecAlgorithm(hCamera, iIspProcessor):
  1369. piAlgorithmSel = c_int()
  1370. err_code = _sdk.CameraGetBayerDecAlgorithm(hCamera, iIspProcessor, byref(piAlgorithmSel))
  1371. SetLastError(err_code)
  1372. return piAlgorithmSel.value
  1373. def CameraSetIspProcessor(hCamera, iIspProcessor):
  1374. err_code = _sdk.CameraSetIspProcessor(hCamera, iIspProcessor)
  1375. SetLastError(err_code)
  1376. return err_code
  1377. def CameraGetIspProcessor(hCamera):
  1378. piIspProcessor = c_int()
  1379. err_code = _sdk.CameraGetIspProcessor(hCamera, byref(piIspProcessor))
  1380. SetLastError(err_code)
  1381. return piIspProcessor.value
  1382. def CameraSetBlackLevel(hCamera, iBlackLevel):
  1383. err_code = _sdk.CameraSetBlackLevel(hCamera, iBlackLevel)
  1384. SetLastError(err_code)
  1385. return err_code
  1386. def CameraGetBlackLevel(hCamera):
  1387. piBlackLevel = c_int()
  1388. err_code = _sdk.CameraGetBlackLevel(hCamera, byref(piBlackLevel))
  1389. SetLastError(err_code)
  1390. return piBlackLevel.value
  1391. def CameraSetWhiteLevel(hCamera, iWhiteLevel):
  1392. err_code = _sdk.CameraSetWhiteLevel(hCamera, iWhiteLevel)
  1393. SetLastError(err_code)
  1394. return err_code
  1395. def CameraGetWhiteLevel(hCamera):
  1396. piWhiteLevel = c_int()
  1397. err_code = _sdk.CameraGetWhiteLevel(hCamera, byref(piWhiteLevel))
  1398. SetLastError(err_code)
  1399. return piWhiteLevel.value
  1400. def CameraSetIspOutFormat(hCamera, uFormat):
  1401. err_code = _sdk.CameraSetIspOutFormat(hCamera, uFormat)
  1402. SetLastError(err_code)
  1403. return err_code
  1404. def CameraGetIspOutFormat(hCamera):
  1405. puFormat = c_int()
  1406. err_code = _sdk.CameraGetIspOutFormat(hCamera, byref(puFormat))
  1407. SetLastError(err_code)
  1408. return puFormat.value
  1409. def CameraGetErrorString(iStatusCode):
  1410. _sdk.CameraGetErrorString.restype = c_char_p
  1411. msg = _sdk.CameraGetErrorString(iStatusCode)
  1412. if msg:
  1413. return _string_buffer_to_str(msg)
  1414. else:
  1415. return ''
  1416. def CameraGetImageBufferEx2(hCamera, pImageData, uOutFormat, wTimes):
  1417. piWidth = c_int()
  1418. piHeight = c_int()
  1419. err_code = _sdk.CameraGetImageBufferEx2(hCamera, c_void_p(pImageData), uOutFormat, byref(piWidth), byref(piHeight), wTimes)
  1420. SetLastError(err_code)
  1421. if err_code != 0:
  1422. raise CameraException(err_code)
  1423. return (piWidth.value, piHeight.value)
  1424. def CameraGetImageBufferEx3(hCamera, pImageData, uOutFormat, wTimes):
  1425. piWidth = c_int()
  1426. piHeight = c_int()
  1427. puTimeStamp = c_int()
  1428. err_code = _sdk.CameraGetImageBufferEx3(hCamera, c_void_p(pImageData), uOutFormat, byref(piWidth), byref(piHeight), byref(puTimeStamp), wTimes)
  1429. SetLastError(err_code)
  1430. if err_code != 0:
  1431. raise CameraException(err_code)
  1432. return (piWidth.value, piHeight.value, puTimeStamp.value)
  1433. def CameraGetCapabilityEx2(hCamera):
  1434. pMaxWidth = c_int()
  1435. pMaxHeight = c_int()
  1436. pbColorCamera = c_int()
  1437. err_code = _sdk.CameraGetCapabilityEx2(hCamera, byref(pMaxWidth), byref(pMaxHeight), byref(pbColorCamera))
  1438. SetLastError(err_code)
  1439. return (pMaxWidth.value, pMaxHeight.value, pbColorCamera.value)
  1440. def CameraReConnect(hCamera):
  1441. err_code = _sdk.CameraReConnect(hCamera)
  1442. SetLastError(err_code)
  1443. return err_code
  1444. def CameraConnectTest(hCamera):
  1445. err_code = _sdk.CameraConnectTest(hCamera)
  1446. SetLastError(err_code)
  1447. return err_code
  1448. def CameraSetLedEnable(hCamera, index, enable):
  1449. err_code = _sdk.CameraSetLedEnable(hCamera, index, enable)
  1450. SetLastError(err_code)
  1451. return err_code
  1452. def CameraGetLedEnable(hCamera, index):
  1453. enable = c_int()
  1454. err_code = _sdk.CameraGetLedEnable(hCamera, index, byref(enable))
  1455. SetLastError(err_code)
  1456. return enable.value
  1457. def CameraSetLedOnOff(hCamera, index, onoff):
  1458. err_code = _sdk.CameraSetLedOnOff(hCamera, index, onoff)
  1459. SetLastError(err_code)
  1460. return err_code
  1461. def CameraGetLedOnOff(hCamera, index):
  1462. onoff = c_int()
  1463. err_code = _sdk.CameraGetLedOnOff(hCamera, index, byref(onoff))
  1464. SetLastError(err_code)
  1465. return onoff.value
  1466. def CameraSetLedDuration(hCamera, index, duration):
  1467. err_code = _sdk.CameraSetLedDuration(hCamera, index, duration)
  1468. SetLastError(err_code)
  1469. return err_code
  1470. def CameraGetLedDuration(hCamera, index):
  1471. duration = c_uint()
  1472. err_code = _sdk.CameraGetLedDuration(hCamera, index, byref(duration))
  1473. SetLastError(err_code)
  1474. return duration.value
  1475. def CameraSetLedBrightness(hCamera, index, uBrightness):
  1476. err_code = _sdk.CameraSetLedBrightness(hCamera, index, uBrightness)
  1477. SetLastError(err_code)
  1478. return err_code
  1479. def CameraGetLedBrightness(hCamera, index):
  1480. uBrightness = c_uint()
  1481. err_code = _sdk.CameraGetLedBrightness(hCamera, index, byref(uBrightness))
  1482. SetLastError(err_code)
  1483. return uBrightness.value
  1484. def CameraEnableTransferRoi(hCamera, uEnableMask):
  1485. err_code = _sdk.CameraEnableTransferRoi(hCamera, uEnableMask)
  1486. SetLastError(err_code)
  1487. return err_code
  1488. def CameraSetTransferRoi(hCamera, index, X1, Y1, X2, Y2):
  1489. err_code = _sdk.CameraSetTransferRoi(hCamera, index, X1, Y1, X2, Y2)
  1490. SetLastError(err_code)
  1491. return err_code
  1492. def CameraGetTransferRoi(hCamera, index):
  1493. pX1 = c_uint()
  1494. pY1 = c_uint()
  1495. pX2 = c_uint()
  1496. pY2 = c_uint()
  1497. err_code = _sdk.CameraGetTransferRoi(hCamera, index, byref(pX1), byref(pY1), byref(pX2), byref(pY2))
  1498. SetLastError(err_code)
  1499. return (pX1.value, pY1.value, pX2.value, pY2.value)
  1500. def CameraAlignMalloc(size, align = 16):
  1501. _sdk.CameraAlignMalloc.restype = c_void_p
  1502. r = _sdk.CameraAlignMalloc(size, align)
  1503. return r
  1504. def CameraAlignFree(membuffer):
  1505. _sdk.CameraAlignFree(c_void_p(membuffer))
  1506. def CameraSetAutoConnect(hCamera, bEnable):
  1507. err_code = _sdk.CameraSetAutoConnect(hCamera, bEnable)
  1508. SetLastError(err_code)
  1509. return err_code
  1510. def CameraGetAutoConnect(hCamera):
  1511. pbEnable = c_int()
  1512. err_code = _sdk.CameraGetAutoConnect(hCamera, byref(pbEnable))
  1513. SetLastError(err_code)
  1514. return pbEnable.value
  1515. def CameraGetReConnectCounts(hCamera):
  1516. puCounts = c_int()
  1517. err_code = _sdk.CameraGetReConnectCounts(hCamera, byref(puCounts))
  1518. SetLastError(err_code)
  1519. return puCounts.value
  1520. def CameraSetSingleGrabMode(hCamera, bEnable):
  1521. err_code = _sdk.CameraSetSingleGrabMode(hCamera, bEnable)
  1522. SetLastError(err_code)
  1523. return err_code
  1524. def CameraGetSingleGrabMode(hCamera):
  1525. pbEnable = c_int()
  1526. err_code = _sdk.CameraGetSingleGrabMode(hCamera, byref(pbEnable))
  1527. SetLastError(err_code)
  1528. return pbEnable.value
  1529. def CameraRestartGrab(hCamera):
  1530. err_code = _sdk.CameraRestartGrab(hCamera)
  1531. SetLastError(err_code)
  1532. return err_code
  1533. def CameraEvaluateImageDefinition(hCamera, iAlgorithSel, pbyIn, pFrInfo):
  1534. DefinitionValue = c_double()
  1535. err_code = _sdk.CameraEvaluateImageDefinition(hCamera, iAlgorithSel, c_void_p(pbyIn), byref(pFrInfo), byref(DefinitionValue))
  1536. SetLastError(err_code)
  1537. return DefinitionValue.value
  1538. def CameraDrawText(pRgbBuffer, pFrInfo, pFontFileName, FontWidth, FontHeight, pText, Left, Top, Width, Height, TextColor, uFlags):
  1539. err_code = _sdk.CameraDrawText(c_void_p(pRgbBuffer), byref(pFrInfo), _str_to_string_buffer(pFontFileName), FontWidth, FontHeight, _str_to_string_buffer(pText), Left, Top, Width, Height, TextColor, uFlags)
  1540. SetLastError(err_code)
  1541. return err_code
  1542. def CameraGigeGetIp(pCameraInfo):
  1543. CamIp = create_string_buffer(32)
  1544. CamMask = create_string_buffer(32)
  1545. CamGateWay = create_string_buffer(32)
  1546. EtIp = create_string_buffer(32)
  1547. EtMask = create_string_buffer(32)
  1548. EtGateWay = create_string_buffer(32)
  1549. err_code = _sdk.CameraGigeGetIp(byref(pCameraInfo), CamIp, CamMask, CamGateWay, EtIp, EtMask, EtGateWay)
  1550. SetLastError(err_code)
  1551. return (_string_buffer_to_str(CamIp), _string_buffer_to_str(CamMask), _string_buffer_to_str(CamGateWay),
  1552. _string_buffer_to_str(EtIp), _string_buffer_to_str(EtMask), _string_buffer_to_str(EtGateWay) )
  1553. def CameraGigeSetIp(pCameraInfo, Ip, SubMask, GateWay, bPersistent):
  1554. err_code = _sdk.CameraGigeSetIp(byref(pCameraInfo),
  1555. _str_to_string_buffer(Ip), _str_to_string_buffer(SubMask), _str_to_string_buffer(GateWay), bPersistent)
  1556. SetLastError(err_code)
  1557. return err_code
  1558. def CameraGigeGetMac(pCameraInfo):
  1559. CamMac = create_string_buffer(32)
  1560. EtMac = create_string_buffer(32)
  1561. err_code = _sdk.CameraGigeGetMac(byref(pCameraInfo), CamMac, EtMac)
  1562. SetLastError(err_code)
  1563. return (_string_buffer_to_str(CamMac), _string_buffer_to_str(EtMac) )
  1564. def CameraEnableFastResponse(hCamera):
  1565. err_code = _sdk.CameraEnableFastResponse(hCamera)
  1566. SetLastError(err_code)
  1567. return err_code
  1568. def CameraSetCorrectDeadPixel(hCamera, bEnable):
  1569. err_code = _sdk.CameraSetCorrectDeadPixel(hCamera, bEnable)
  1570. SetLastError(err_code)
  1571. return err_code
  1572. def CameraGetCorrectDeadPixel(hCamera):
  1573. pbEnable = c_int()
  1574. err_code = _sdk.CameraGetCorrectDeadPixel(hCamera, byref(pbEnable))
  1575. SetLastError(err_code)
  1576. return pbEnable.value
  1577. def CameraFlatFieldingCorrectSetEnable(hCamera, bEnable):
  1578. err_code = _sdk.CameraFlatFieldingCorrectSetEnable(hCamera, bEnable)
  1579. SetLastError(err_code)
  1580. return err_code
  1581. def CameraFlatFieldingCorrectGetEnable(hCamera):
  1582. pbEnable = c_int()
  1583. err_code = _sdk.CameraFlatFieldingCorrectGetEnable(hCamera, byref(pbEnable))
  1584. SetLastError(err_code)
  1585. return pbEnable.value
  1586. def CameraFlatFieldingCorrectSetParameter(hCamera, pDarkFieldingImage, pDarkFieldingFrInfo, pLightFieldingImage, pLightFieldingFrInfo):
  1587. err_code = _sdk.CameraFlatFieldingCorrectSetParameter(hCamera, c_void_p(pDarkFieldingImage), byref(pDarkFieldingFrInfo), c_void_p(pLightFieldingImage), byref(pLightFieldingFrInfo))
  1588. SetLastError(err_code)
  1589. return err_code
  1590. def CameraFlatFieldingCorrectGetParameterState(hCamera):
  1591. pbValid = c_int()
  1592. pFilePath = create_string_buffer(1024)
  1593. err_code = _sdk.CameraFlatFieldingCorrectGetParameterState(hCamera, byref(pbValid), pFilePath)
  1594. SetLastError(err_code)
  1595. return (pbValid.value, _string_buffer_to_str(pFilePath) )
  1596. def CameraFlatFieldingCorrectSaveParameterToFile(hCamera, pszFileName):
  1597. err_code = _sdk.CameraFlatFieldingCorrectSaveParameterToFile(hCamera, _str_to_string_buffer(pszFileName))
  1598. SetLastError(err_code)
  1599. return err_code
  1600. def CameraFlatFieldingCorrectLoadParameterFromFile(hCamera, pszFileName):
  1601. err_code = _sdk.CameraFlatFieldingCorrectLoadParameterFromFile(hCamera, _str_to_string_buffer(pszFileName))
  1602. SetLastError(err_code)
  1603. return err_code
  1604. def CameraCommonCall(hCamera, pszCall, uResultBufSize):
  1605. pszResult = create_string_buffer(uResultBufSize) if uResultBufSize > 0 else None
  1606. err_code = _sdk.CameraCommonCall(hCamera, _str_to_string_buffer(pszCall), pszResult, uResultBufSize)
  1607. SetLastError(err_code)
  1608. return _string_buffer_to_str(pszResult) if pszResult else ''
  1609. def CameraSetDenoise3DParams(hCamera, bEnable, nCount, Weights):
  1610. assert(nCount >= 2 and nCount <= 8)
  1611. if Weights:
  1612. assert(len(Weights) == nCount)
  1613. WeightsNative = (c_float * nCount)(*Weights)
  1614. else:
  1615. WeightsNative = None
  1616. err_code = _sdk.CameraSetDenoise3DParams(hCamera, bEnable, nCount, WeightsNative)
  1617. SetLastError(err_code)
  1618. return err_code
  1619. def CameraGetDenoise3DParams(hCamera):
  1620. bEnable = c_int()
  1621. nCount = c_int()
  1622. bUseWeight = c_int()
  1623. Weights = (c_float * 8)()
  1624. err_code = _sdk.CameraGetDenoise3DParams(hCamera, byref(bEnable), byref(nCount), byref(bUseWeight), Weights)
  1625. SetLastError(err_code)
  1626. bEnable, nCount, bUseWeight = bEnable.value, nCount.value, bUseWeight.value
  1627. if bUseWeight:
  1628. Weights = Weights[:nCount]
  1629. else:
  1630. Weights = None
  1631. return (bEnable, nCount, bUseWeight, Weights)
  1632. def CameraManualDenoise3D(InFramesHead, InFramesData, nCount, Weights, OutFrameHead, OutFrameData):
  1633. assert(nCount > 0)
  1634. assert(len(InFramesData) == nCount)
  1635. assert(Weights is None or len(Weights) == nCount)
  1636. InFramesDataNative = (c_void_p * nCount)(*InFramesData)
  1637. WeightsNative = (c_float * nCount)(*Weights) if Weights else None
  1638. err_code = _sdk.CameraManualDenoise3D(byref(InFramesHead), InFramesDataNative, nCount, WeightsNative, byref(OutFrameHead), c_void_p(OutFrameData))
  1639. SetLastError(err_code)
  1640. return err_code
  1641. def CameraCustomizeDeadPixels(hCamera, hParent):
  1642. err_code = _sdk.CameraCustomizeDeadPixels(hCamera, hParent)
  1643. SetLastError(err_code)
  1644. return err_code
  1645. def CameraReadDeadPixels(hCamera):
  1646. pNumPixel = c_int()
  1647. err_code = _sdk.CameraReadDeadPixels(hCamera, None, None, byref(pNumPixel))
  1648. SetLastError(err_code)
  1649. if pNumPixel.value < 1:
  1650. return None
  1651. UShortArray = c_ushort * pNumPixel.value
  1652. pRows = UShortArray()
  1653. pCols = UShortArray()
  1654. err_code = _sdk.CameraReadDeadPixels(hCamera, pRows, pCols, byref(pNumPixel))
  1655. SetLastError(err_code)
  1656. if err_code == 0:
  1657. pNumPixel = pNumPixel.value
  1658. else:
  1659. pNumPixel = 0
  1660. return (pRows[:pNumPixel], pCols[:pNumPixel])
  1661. def CameraAddDeadPixels(hCamera, pRows, pCols, NumPixel):
  1662. UShortArray = c_ushort * NumPixel
  1663. pRowsNative = UShortArray(*pRows)
  1664. pColsNative = UShortArray(*pCols)
  1665. err_code = _sdk.CameraAddDeadPixels(hCamera, pRowsNative, pColsNative, NumPixel)
  1666. SetLastError(err_code)
  1667. return err_code
  1668. def CameraRemoveDeadPixels(hCamera, pRows, pCols, NumPixel):
  1669. UShortArray = c_ushort * NumPixel
  1670. pRowsNative = UShortArray(*pRows)
  1671. pColsNative = UShortArray(*pCols)
  1672. err_code = _sdk.CameraRemoveDeadPixels(hCamera, pRowsNative, pColsNative, NumPixel)
  1673. SetLastError(err_code)
  1674. return err_code
  1675. def CameraRemoveAllDeadPixels(hCamera):
  1676. err_code = _sdk.CameraRemoveAllDeadPixels(hCamera)
  1677. SetLastError(err_code)
  1678. return err_code
  1679. def CameraSaveDeadPixels(hCamera):
  1680. err_code = _sdk.CameraSaveDeadPixels(hCamera)
  1681. SetLastError(err_code)
  1682. return err_code
  1683. def CameraSaveDeadPixelsToFile(hCamera, sFileName):
  1684. err_code = _sdk.CameraSaveDeadPixelsToFile(hCamera, _str_to_string_buffer(sFileName))
  1685. SetLastError(err_code)
  1686. return err_code
  1687. def CameraLoadDeadPixelsFromFile(hCamera, sFileName):
  1688. err_code = _sdk.CameraLoadDeadPixelsFromFile(hCamera, _str_to_string_buffer(sFileName))
  1689. SetLastError(err_code)
  1690. return err_code
  1691. def CameraGetImageBufferPriority(hCamera, wTimes, Priority):
  1692. pFrameInfo = tSdkFrameHead()
  1693. pbyBuffer = c_void_p()
  1694. err_code = _sdk.CameraGetImageBufferPriority(hCamera, byref(pFrameInfo), byref(pbyBuffer), wTimes, Priority)
  1695. SetLastError(err_code)
  1696. if err_code != 0:
  1697. raise CameraException(err_code)
  1698. return (pbyBuffer.value, pFrameInfo)
  1699. def CameraGetImageBufferPriorityEx(hCamera, wTimes, Priority):
  1700. _sdk.CameraGetImageBufferPriorityEx.restype = c_void_p
  1701. piWidth = c_int()
  1702. piHeight = c_int()
  1703. pFrameBuffer = _sdk.CameraGetImageBufferPriorityEx(hCamera, byref(piWidth), byref(piHeight), wTimes, Priority)
  1704. err_code = CAMERA_STATUS_SUCCESS if pFrameBuffer else CAMERA_STATUS_TIME_OUT
  1705. SetLastError(err_code)
  1706. if pFrameBuffer:
  1707. return (pFrameBuffer, piWidth.value, piHeight.value)
  1708. else:
  1709. raise CameraException(err_code)
  1710. def CameraGetImageBufferPriorityEx2(hCamera, pImageData, uOutFormat, wTimes, Priority):
  1711. piWidth = c_int()
  1712. piHeight = c_int()
  1713. err_code = _sdk.CameraGetImageBufferPriorityEx2(hCamera, c_void_p(pImageData), uOutFormat, byref(piWidth), byref(piHeight), wTimes, Priority)
  1714. SetLastError(err_code)
  1715. if err_code != 0:
  1716. raise CameraException(err_code)
  1717. return (piWidth.value, piHeight.value)
  1718. def CameraGetImageBufferPriorityEx3(hCamera, pImageData, uOutFormat, wTimes, Priority):
  1719. piWidth = c_int()
  1720. piHeight = c_int()
  1721. puTimeStamp = c_uint()
  1722. err_code = _sdk.CameraGetImageBufferPriorityEx3(hCamera, c_void_p(pImageData), uOutFormat, byref(piWidth), byref(piHeight), byref(puTimeStamp), wTimes, Priority)
  1723. SetLastError(err_code)
  1724. if err_code != 0:
  1725. raise CameraException(err_code)
  1726. return (piWidth.value, piHeight.value, puTimeStamp.value)
  1727. def CameraClearBuffer(hCamera):
  1728. err_code = _sdk.CameraClearBuffer(hCamera)
  1729. SetLastError(err_code)
  1730. return err_code
  1731. def CameraSoftTriggerEx(hCamera, uFlags):
  1732. err_code = _sdk.CameraSoftTriggerEx(hCamera, uFlags)
  1733. SetLastError(err_code)
  1734. return err_code
  1735. def CameraSetHDR(hCamera, value):
  1736. err_code = _sdk.CameraSetHDR(hCamera, value)
  1737. SetLastError(err_code)
  1738. return err_code
  1739. def CameraGetHDR(hCamera):
  1740. value = c_int()
  1741. err_code = _sdk.CameraGetHDR(hCamera, byref(value))
  1742. SetLastError(err_code)
  1743. return value.value
  1744. def CameraGetFrameID(hCamera):
  1745. FrameID = c_uint()
  1746. err_code = _sdk.CameraGetFrameID(hCamera, byref(FrameID))
  1747. SetLastError(err_code)
  1748. return FrameID.value
  1749. def CameraGetFrameTimeStamp(hCamera):
  1750. TimeStamp = c_uint64()
  1751. TimeStampL = c_uint32.from_buffer(TimeStamp)
  1752. TimeStampH = c_uint32.from_buffer(TimeStamp, 4)
  1753. err_code = _sdk.CameraGetFrameTimeStamp(hCamera, byref(TimeStampL), byref(TimeStampH))
  1754. SetLastError(err_code)
  1755. return TimeStamp.value
  1756. def CameraSetHDRGainMode(hCamera, value):
  1757. err_code = _sdk.CameraSetHDRGainMode(hCamera, value)
  1758. SetLastError(err_code)
  1759. return err_code
  1760. def CameraGetHDRGainMode(hCamera):
  1761. value = c_int()
  1762. err_code = _sdk.CameraGetHDRGainMode(hCamera, byref(value))
  1763. SetLastError(err_code)
  1764. return value.value
  1765. def CameraCreateDIBitmap(hDC, pFrameBuffer, pFrameHead):
  1766. outBitmap = c_void_p()
  1767. err_code = _sdk.CameraCreateDIBitmap(hDC, c_void_p(pFrameBuffer), byref(pFrameHead), byref(outBitmap))
  1768. SetLastError(err_code)
  1769. return outBitmap.value
  1770. def CameraDrawFrameBuffer(pFrameBuffer, pFrameHead, hWnd, Algorithm, Mode):
  1771. err_code = _sdk.CameraDrawFrameBuffer(c_void_p(pFrameBuffer), byref(pFrameHead), c_void_p(hWnd), Algorithm, Mode)
  1772. SetLastError(err_code)
  1773. return err_code
  1774. def CameraFlipFrameBuffer(pFrameBuffer, pFrameHead, Flags):
  1775. err_code = _sdk.CameraFlipFrameBuffer(c_void_p(pFrameBuffer), byref(pFrameHead), Flags)
  1776. SetLastError(err_code)
  1777. return err_code
  1778. def CameraConvertFrameBufferFormat(hCamera, pInFrameBuffer, pOutFrameBuffer, outWidth, outHeight, outMediaType, pFrameHead):
  1779. err_code = _sdk.CameraConvertFrameBufferFormat(hCamera, c_void_p(pInFrameBuffer), c_void_p(pOutFrameBuffer), outWidth, outHeight, outMediaType, byref(pFrameHead))
  1780. SetLastError(err_code)
  1781. return err_code
  1782. def CameraSetConnectionStatusCallback(hCamera, pCallBack, pContext = 0):
  1783. err_code = _sdk.CameraSetConnectionStatusCallback(hCamera, pCallBack, c_void_p(pContext) )
  1784. SetLastError(err_code)
  1785. return err_code
  1786. def CameraSetLightingControllerMode(hCamera, index, mode):
  1787. err_code = _sdk.CameraSetLightingControllerMode(hCamera, index, mode)
  1788. SetLastError(err_code)
  1789. return err_code
  1790. def CameraSetLightingControllerState(hCamera, index, state):
  1791. err_code = _sdk.CameraSetLightingControllerState(hCamera, index, state)
  1792. SetLastError(err_code)
  1793. return err_code
  1794. def CameraSetFrameResendCount(hCamera, count):
  1795. err_code = _sdk.CameraSetFrameResendCount(hCamera, count)
  1796. SetLastError(err_code)
  1797. return err_code
  1798. def CameraSetUndistortParams(hCamera, width, height, cameraMatrix, distCoeffs):
  1799. assert(len(cameraMatrix) == 4)
  1800. assert(len(distCoeffs) == 5)
  1801. cameraMatrixNative = (c_double * len(cameraMatrix))(*cameraMatrix)
  1802. distCoeffsNative = (c_double * len(distCoeffs))(*distCoeffs)
  1803. err_code = _sdk.CameraSetUndistortParams(hCamera, width, height, cameraMatrixNative, distCoeffsNative)
  1804. SetLastError(err_code)
  1805. return err_code
  1806. def CameraGetUndistortParams(hCamera):
  1807. width = c_int()
  1808. height = c_int()
  1809. cameraMatrix = (c_double * 4)()
  1810. distCoeffs = (c_double * 5)()
  1811. err_code = _sdk.CameraGetUndistortParams(hCamera, byref(width), byref(height), cameraMatrix, distCoeffs)
  1812. SetLastError(err_code)
  1813. width, height = width.value, height.value
  1814. cameraMatrix = cameraMatrix[:]
  1815. distCoeffs = distCoeffs[:]
  1816. return (width, height, cameraMatrix, distCoeffs)
  1817. def CameraSetUndistortEnable(hCamera, bEnable):
  1818. err_code = _sdk.CameraSetUndistortEnable(hCamera, bEnable)
  1819. SetLastError(err_code)
  1820. return err_code
  1821. def CameraGetUndistortEnable(hCamera):
  1822. value = c_int()
  1823. err_code = _sdk.CameraGetUndistortEnable(hCamera, byref(value))
  1824. SetLastError(err_code)
  1825. return value.value
  1826. def CameraCustomizeUndistort(hCamera, hParent):
  1827. err_code = _sdk.CameraCustomizeUndistort(hCamera, hParent)
  1828. SetLastError(err_code)
  1829. return err_code
  1830. def CameraGetEyeCount(hCamera):
  1831. EyeCount = c_int()
  1832. err_code = _sdk.CameraGetEyeCount(hCamera, byref(EyeCount))
  1833. SetLastError(err_code)
  1834. return EyeCount.value
  1835. def CameraMultiEyeImageProcess(hCamera, iEyeIndex, pbyIn, pInFrInfo, pbyOut, pOutFrInfo, uOutFormat, uReserved):
  1836. err_code = _sdk.CameraMultiEyeImageProcess(hCamera, iEyeIndex, c_void_p(pbyIn), byref(pInFrInfo), c_void_p(pbyOut), byref(pOutFrInfo), uOutFormat, uReserved)
  1837. SetLastError(err_code)
  1838. return err_code
  1839. # CameraGrabber
  1840. def CameraGrabber_CreateFromDevicePage():
  1841. Grabber = c_void_p()
  1842. err_code = _sdk.CameraGrabber_CreateFromDevicePage(byref(Grabber))
  1843. SetLastError(err_code)
  1844. if err_code != 0:
  1845. raise CameraException(err_code)
  1846. return Grabber.value
  1847. def CameraGrabber_CreateByIndex(Index):
  1848. Grabber = c_void_p()
  1849. err_code = _sdk.CameraGrabber_CreateByIndex(byref(Grabber), Index)
  1850. SetLastError(err_code)
  1851. if err_code != 0:
  1852. raise CameraException(err_code)
  1853. return Grabber.value
  1854. def CameraGrabber_CreateByName(Name):
  1855. Grabber = c_void_p()
  1856. err_code = _sdk.CameraGrabber_CreateByName(byref(Grabber), _str_to_string_buffer(Name))
  1857. SetLastError(err_code)
  1858. if err_code != 0:
  1859. raise CameraException(err_code)
  1860. return Grabber.value
  1861. def CameraGrabber_Create(pDevInfo):
  1862. Grabber = c_void_p()
  1863. err_code = _sdk.CameraGrabber_Create(byref(Grabber), byref(pDevInfo))
  1864. SetLastError(err_code)
  1865. if err_code != 0:
  1866. raise CameraException(err_code)
  1867. return Grabber.value
  1868. def CameraGrabber_Destroy(Grabber):
  1869. err_code = _sdk.CameraGrabber_Destroy(c_void_p(Grabber))
  1870. SetLastError(err_code)
  1871. return err_code
  1872. def CameraGrabber_SetHWnd(Grabber, hWnd):
  1873. err_code = _sdk.CameraGrabber_SetHWnd(c_void_p(Grabber), c_void_p(hWnd) )
  1874. SetLastError(err_code)
  1875. return err_code
  1876. def CameraGrabber_SetPriority(Grabber, Priority):
  1877. err_code = _sdk.CameraGrabber_SetPriority(c_void_p(Grabber), Priority)
  1878. SetLastError(err_code)
  1879. return err_code
  1880. def CameraGrabber_StartLive(Grabber):
  1881. err_code = _sdk.CameraGrabber_StartLive(c_void_p(Grabber))
  1882. SetLastError(err_code)
  1883. return err_code
  1884. def CameraGrabber_StopLive(Grabber):
  1885. err_code = _sdk.CameraGrabber_StopLive(c_void_p(Grabber))
  1886. SetLastError(err_code)
  1887. return err_code
  1888. def CameraGrabber_SaveImage(Grabber, TimeOut):
  1889. Image = c_void_p()
  1890. err_code = _sdk.CameraGrabber_SaveImage(c_void_p(Grabber), byref(Image), TimeOut)
  1891. SetLastError(err_code)
  1892. if err_code != 0:
  1893. raise CameraException(err_code)
  1894. return Image.value
  1895. def CameraGrabber_SaveImageAsync(Grabber):
  1896. err_code = _sdk.CameraGrabber_SaveImageAsync(c_void_p(Grabber))
  1897. SetLastError(err_code)
  1898. return err_code
  1899. def CameraGrabber_SaveImageAsyncEx(Grabber, UserData):
  1900. err_code = _sdk.CameraGrabber_SaveImageAsyncEx(c_void_p(Grabber), c_void_p(UserData))
  1901. SetLastError(err_code)
  1902. return err_code
  1903. def CameraGrabber_SetSaveImageCompleteCallback(Grabber, Callback, Context = 0):
  1904. err_code = _sdk.CameraGrabber_SetSaveImageCompleteCallback(c_void_p(Grabber), Callback, c_void_p(Context))
  1905. SetLastError(err_code)
  1906. return err_code
  1907. def CameraGrabber_SetFrameListener(Grabber, Listener, Context = 0):
  1908. err_code = _sdk.CameraGrabber_SetFrameListener(c_void_p(Grabber), Listener, c_void_p(Context))
  1909. SetLastError(err_code)
  1910. return err_code
  1911. def CameraGrabber_SetRawCallback(Grabber, Callback, Context = 0):
  1912. err_code = _sdk.CameraGrabber_SetRawCallback(c_void_p(Grabber), Callback, c_void_p(Context))
  1913. SetLastError(err_code)
  1914. return err_code
  1915. def CameraGrabber_SetRGBCallback(Grabber, Callback, Context = 0):
  1916. err_code = _sdk.CameraGrabber_SetRGBCallback(c_void_p(Grabber), Callback, c_void_p(Context))
  1917. SetLastError(err_code)
  1918. return err_code
  1919. def CameraGrabber_GetCameraHandle(Grabber):
  1920. hCamera = c_int()
  1921. err_code = _sdk.CameraGrabber_GetCameraHandle(c_void_p(Grabber), byref(hCamera))
  1922. SetLastError(err_code)
  1923. return hCamera.value
  1924. def CameraGrabber_GetStat(Grabber):
  1925. stat = tSdkGrabberStat()
  1926. err_code = _sdk.CameraGrabber_GetStat(c_void_p(Grabber), byref(stat))
  1927. SetLastError(err_code)
  1928. return stat
  1929. def CameraGrabber_GetCameraDevInfo(Grabber):
  1930. DevInfo = tSdkCameraDevInfo()
  1931. err_code = _sdk.CameraGrabber_GetCameraDevInfo(c_void_p(Grabber), byref(DevInfo))
  1932. SetLastError(err_code)
  1933. return DevInfo
  1934. # CameraImage
  1935. def CameraImage_Create(pFrameBuffer, pFrameHead, bCopy):
  1936. Image = c_void_p()
  1937. err_code = _sdk.CameraImage_Create(byref(Image), c_void_p(pFrameBuffer), byref(pFrameHead), bCopy)
  1938. SetLastError(err_code)
  1939. return Image.value
  1940. def CameraImage_CreateEmpty():
  1941. Image = c_void_p()
  1942. err_code = _sdk.CameraImage_CreateEmpty(byref(Image))
  1943. SetLastError(err_code)
  1944. return Image.value
  1945. def CameraImage_Destroy(Image):
  1946. err_code = _sdk.CameraImage_Destroy(c_void_p(Image))
  1947. SetLastError(err_code)
  1948. return err_code
  1949. def CameraImage_GetData(Image):
  1950. DataBuffer = c_void_p()
  1951. HeadPtr = c_void_p()
  1952. err_code = _sdk.CameraImage_GetData(c_void_p(Image), byref(DataBuffer), byref(HeadPtr))
  1953. SetLastError(err_code)
  1954. if err_code == 0:
  1955. return (DataBuffer.value, tSdkFrameHead.from_address(HeadPtr.value) )
  1956. else:
  1957. return (0, None)
  1958. def CameraImage_GetUserData(Image):
  1959. UserData = c_void_p()
  1960. err_code = _sdk.CameraImage_GetUserData(c_void_p(Image), byref(UserData))
  1961. SetLastError(err_code)
  1962. return UserData.value
  1963. def CameraImage_SetUserData(Image, UserData):
  1964. err_code = _sdk.CameraImage_SetUserData(c_void_p(Image), c_void_p(UserData))
  1965. SetLastError(err_code)
  1966. return err_code
  1967. def CameraImage_IsEmpty(Image):
  1968. IsEmpty = c_int()
  1969. err_code = _sdk.CameraImage_IsEmpty(c_void_p(Image), byref(IsEmpty))
  1970. SetLastError(err_code)
  1971. return IsEmpty.value
  1972. def CameraImage_Draw(Image, hWnd, Algorithm):
  1973. err_code = _sdk.CameraImage_Draw(c_void_p(Image), c_void_p(hWnd), Algorithm)
  1974. SetLastError(err_code)
  1975. return err_code
  1976. def CameraImage_DrawFit(Image, hWnd, Algorithm):
  1977. err_code = _sdk.CameraImage_DrawFit(c_void_p(Image), c_void_p(hWnd), Algorithm)
  1978. SetLastError(err_code)
  1979. return err_code
  1980. def CameraImage_DrawToDC(Image, hDC, Algorithm, xDst, yDst, cxDst, cyDst):
  1981. err_code = _sdk.CameraImage_DrawToDC(c_void_p(Image), c_void_p(hDC), Algorithm, xDst, yDst, cxDst, cyDst)
  1982. SetLastError(err_code)
  1983. return err_code
  1984. def CameraImage_DrawToDCFit(Image, hDC, Algorithm, xDst, yDst, cxDst, cyDst):
  1985. err_code = _sdk.CameraImage_DrawToDCFit(c_void_p(Image), c_void_p(hDC), Algorithm, xDst, yDst, cxDst, cyDst)
  1986. SetLastError(err_code)
  1987. return err_code
  1988. def CameraImage_BitBlt(Image, hWnd, xDst, yDst, cxDst, cyDst, xSrc, ySrc):
  1989. err_code = _sdk.CameraImage_BitBlt(c_void_p(Image), c_void_p(hWnd), xDst, yDst, cxDst, cyDst, xSrc, ySrc)
  1990. SetLastError(err_code)
  1991. return err_code
  1992. def CameraImage_BitBltToDC(Image, hDC, xDst, yDst, cxDst, cyDst, xSrc, ySrc):
  1993. err_code = _sdk.CameraImage_BitBltToDC(c_void_p(Image), c_void_p(hDC), xDst, yDst, cxDst, cyDst, xSrc, ySrc)
  1994. SetLastError(err_code)
  1995. return err_code
  1996. def CameraImage_SaveAsBmp(Image, FileName):
  1997. err_code = _sdk.CameraImage_SaveAsBmp(c_void_p(Image), _str_to_string_buffer(FileName))
  1998. SetLastError(err_code)
  1999. return err_code
  2000. def CameraImage_SaveAsJpeg(Image, FileName, Quality):
  2001. err_code = _sdk.CameraImage_SaveAsJpeg(c_void_p(Image), _str_to_string_buffer(FileName), Quality)
  2002. SetLastError(err_code)
  2003. return err_code
  2004. def CameraImage_SaveAsPng(Image, FileName):
  2005. err_code = _sdk.CameraImage_SaveAsPng(c_void_p(Image), _str_to_string_buffer(FileName))
  2006. SetLastError(err_code)
  2007. return err_code
  2008. def CameraImage_SaveAsRaw(Image, FileName, Format):
  2009. err_code = _sdk.CameraImage_SaveAsRaw(c_void_p(Image), _str_to_string_buffer(FileName), Format)
  2010. SetLastError(err_code)
  2011. return err_code
  2012. def CameraImage_IPicture(Image):
  2013. NewPic = c_void_p()
  2014. err_code = _sdk.CameraImage_IPicture(c_void_p(Image), byref(NewPic))
  2015. SetLastError(err_code)
  2016. return NewPic.value