📄 cgcardapi.bas
字号:
Attribute VB_Name = "CGCardApi"
'*
' *-----------------------------------------------------------------------------
' * Name CGCardApi.bas
' * Purpose Consant definition
' * Development Kit Microsoft Win32 SDK Visual basic 6.00
' * Author Zhou zhong ya
' * Date 2003/08/05
' *
' *
' * Description
' * This header file defines consant and external function
' *
' *-----------------------------------------------------------------------------
' *
Option Explicit
'*************************** consant *************************************
Public Enum CGTYPE
CG300TYPE = 0
CG400TYPE = 1
CG410TYPE = 2
VT121TYPE = 3
End Enum
Public Enum VIDEO_FORMAT '标识图像数据格式
YUV422 = 0 'YUV422方式,16位/像素
RGB888 = 1 'RGB888方式,24位/像素
RGB565 = 2 'RGB565方式,16位/像素
RGB555 = 3 'RGB555方式,15位/像素
RGB8888 = 4 'RGB8888方式,32位/像素
All8Bit = 5 '黑白方式,8位/像素,取值:CG300,CG400为0-255,CG410为1-254
Limited8Bit = 6 '黑白方式,8位/像素,取值:CG300为16-253,CG400,CG410为16-235
End Enum
Public Enum VIDEO_STANDARD '标识视频信号制式
PAL = 0 'PAL制
NTSC = 1 'NTSC制
End Enum
Public Enum VIDEO_SCAN '标识视频信号扫描方式
Frame = 0 '帧方式,隔行扫描
FIELD = 1 '场方式,逐行扫描
End Enum
Public Enum MIRROR_DIRECTION
HOR_DIR = 0
VERT_DIR = 1
End Enum
Public Enum VIDEO_ADJUST_PARAM
Brightness = 1
Contrast = 2
Hue = 3
Saturation = 4
End Enum
Public Enum CRY_OSC '标识图像卡配置的晶振类型
CRY_OSC_35M = 0 '35M晶振
CRY_OSC_28M = 1 '28M晶振
End Enum
Public Enum EXT_VIDEO_OUTPUT
EXT_VOUT_MODE = 0
EXT_VOUT_SOURCE = 1
EXT_VOUT_CYCLE_LENGTH = 2
EXT_VOUT_CYCLE_SOURCE = 3
End Enum
Public Enum VIDEO_SOURCE_TYPE '标识视频信号源路的类型
COMPOSITE_VIDEO = 0 '复合视频信号
S_VIDEO = 1 'S端子视频信号
COMPONENT_VIDEO = 2 'YPbPr分量视频信号
End Enum
Public Type VIDEO_SOURCE '结构包含视频信号的源路参数
source_type As VIDEO_SOURCE_TYPE '说明视频信号源路的类型,包括复合视频,S端子,分量视频
nIndex As Long '说明视频信号源路的序号,从0开始
End Type
Public Enum BOARD_INFO
BOARD_TYPE = 0
BOARD_SERIALNUM = 1
BOARD_SUB_DEVICE = 2
End Enum
Public Enum LUMA_PARAM
LUMA_CHROMA_TRAP = 0
End Enum
Public Enum GAMMA_CORR
NO_GAMMACORR = 0
Y_GAMMACORR = 1
UV_GAMMACORR = 2
YUV_GAMMACORR = 3
End Enum
Public Enum INTERCHANGE_TYPE
HOR_ODD_COLUMN = 0
HOR_EVEN_COLUMN = 1
VERT_ODD_ROW = 2
VERT_EVEN_ROW = 3
VERT_DOUBLE = 4
End Enum
Public Enum CGSTATUS '枚举类型
CG_OK = 0 '成功
CG_ALLOCATE_DEVICE_MEMORY_ERROR = -1 '静态内存分配不成功
CG_LOCK_DEVICE_MEMORY_ERROR = -2 '静态内存锁定失败
CG_ACCESS_DEVICE_MEMORY_DENIED = -3 '静态内存访问越界
CG_PARAMETER_INVALID = -4 '参数无效
CG_NOT_SUPPORT_INTERFACE = -5 '不支持该接口
CG_OPEN_DRIVER_FAILED = -6 '装载驱动失败
CG_CARD_HANDLE_INVALID = -7 '句柄无效
CG_NO_CARD_FOUND = -8 '没有发现图像卡
CG_HW_MAP_MEMORY_ERROR = -9 '映射内存失败
CG_NOT_ENOUGH_SYSTEM_MEMORY = -10 '没有足够系统内存
CG_HW_INIT_ERROR = -11 '硬件初始化错误
CG_PARAMETER_OUT_OF_BOUND = -12 '参数越界
CG_HW_INIT_I2C_ERROR = -13 '初始化I2C错误
CG_HW_INIT_AD_ERROR = -14 '初始化AD错误
CG_HW_BOARD_TYPE_ERROR = -15 '板型错误
CG_SNAP_SHOT_TIME_OUT = -16 'SnapShot(快照)超时
CG_INIT_DDRAW_ERROR = -17 '初始化DirectDraw失败
CG_IN_WORK = -18 '正在采集,不能执行该操作
CG_NOT_START_CAPTURE = -19 '没有启动采集到屏幕
CG_NOT_START_CAPTURE_EX = -20 '没有启动采集到屏幕控制
CG_NOT_START_SNAP = -21 '没有启动采集到内存
CG_NOT_START_SNAP_EX = -22 '没有启动采集到内存控制
CG_NOT_OPEN_SNAP_EX = -23 '没有初始化采集到内存控制
CG_VIDEO_FORMAT_INVALID = -24 '视频格式无效
CG_NOT_SUPPORT_CARD_TYPE = -25 '不支持该图像卡类型
CG_FILE_CREATE_ERROR = -26 '创建文件失败
CG_FILE_INVALID = -27 '文件格式无效
CG_VGA_BASE_INVALID = -28 '显示卡的基地址无效
CG_VIDEO_WINDOW_INVALID = -29 '视频(输入/输出)窗口无效
CG_INTERNAL_ERROR = -30 '内部错误
End Enum
Public Type CHECK_PARAM
byParam1 As Byte
byParam2 As Byte
byParam3 As Byte
byParam4 As Byte
End Type
Public Type SANP_INFO
hcg As Long
nDevice As Long
nNumber As Long
pParam As Long
End Type
'*************************** CGVideo.dll external function **********************************
Declare Function BeginCGCard Lib "CGVideo" (ByVal nDevice As Long, ByRef hcg As Long) As CGSTATUS '图像卡的开始(初始化)
Declare Function EndCGCard Lib "CGVideo" (ByVal hcg As Long) As CGSTATUS
Declare Function CGCapture Lib "CGVideo.dll" (ByVal hcg As Long, ByVal bEnable As Long) As CGSTATUS
Declare Function CGCaptureShot Lib "CGVideo.dll" (ByVal hcg As Long) As CGSTATUS
Declare Function CGSetInputWindow Lib "CGVideo.dll" (ByVal hcg As Long, ByVal nStartX As Long, ByVal nStartY As Long, ByVal nWidth As Long, ByVal nHeight As Long) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.设置视频采集输入(Input)窗口,输入窗口是指视频数据输入图像卡时的起始位置和大小
Declare Function CGSetOutputWindow Lib "CGVideo.dll" (ByVal hcg As Long, ByVal nStartX As Long, ByVal nStartY As Long, ByVal nWidth As Long, ByVal nHeight As Long) As CGSTATUS
Declare Function CGSetVideoFormat Lib "CGVideo.dll" (ByVal hcg As Long, ByVal format As VIDEO_FORMAT) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.设置图像卡输出的图像数据格式.在采集图像到屏幕或内存的过程中,不能设置图像数据格式,否则返回CG_IN_WORK
Declare Function CGSetVideoStandard Lib "CGVideo.dll" (ByVal hcg As Long, ByVal mode As VIDEO_STANDARD) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.设置图像卡视频信号制式,包括PAL制和NTSC制.
Declare Function CGSetDelay Lib "CGVideo.dll" (ByVal hcg As Long, ByVal nXDelay As Long, ByVal nYDelay As Long) As CGSTATUS
Declare Function CGSetScanMode Lib "CGVideo.dll" (ByVal hcg As Long, ByVal mode As VIDEO_SCAN) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.设置视频信号的扫描方式,帧方式或场方式.
Declare Function CGSetVideoSource Lib "CGVideo.dll" (ByVal hcg As Long, ByVal source_type As VIDEO_SOURCE_TYPE, ByVal nIndex As Long) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.设置图像卡的视频信号源路
Declare Function CGAdjustVideo Lib "CGVideo.dll" (ByVal hcg As Long, ByVal param As VIDEO_ADJUST_PARAM, ByVal byValue As Byte) As CGSTATUS
Declare Function CGWaitEvenVSync Lib "CGVideo" (ByVal hcg As Long) As CGSTATUS
Declare Function CGWaitOddVSync Lib "CGVideo" (ByVal hcg As Long) As CGSTATUS
Declare Function CGGetStaticMem Lib "CGVideo" (ByRef pPages As Long) As CGSTATUS
Declare Function CGSetStaticMem Lib "CGVideo" (ByVal dwPages As Long) As CGSTATUS
Declare Function CGStaticMemLock Lib "CGVideo" (ByVal dwStartOffset As Long, ByVal dwLength As Long, ByRef pHandle As Long, ByRef ppLineAddr As Long) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.锁定指定位置和大小的静态内存,锁定成功后,就可以使用指针ppLineAddr访问内存数据
Declare Function CGStaticMemUnlock Lib "CGVideo" (ByVal handle As Long) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.解锁函数CGStaticMemLock锁定的静态内存
Declare Function CGSnapShot Lib "CGVideo" (ByVal hcg As Long, ByVal dwMemOffset As Long, ByVal wIntervSyncs As Integer, ByVal bInterline As Long, ByVal wSum As Integer) As CGSTATUS
Declare Function CGStartSnap Lib "CGVideo" (ByVal hcg As Long, ByVal dwMemOffset As Long, ByVal bInterline As Long, ByVal wSum As Integer) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.启动图像卡采集若干帧/场图像数据到内存功能
Declare Function CGGetSnappingNumber Lib "CGVideo" (ByVal hcg As Long, ByRef pNumber As Long) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.获取当前采集图像的状态,这个采集状态是指执行函数CGStartSnap后,图像卡当前正在向内存采集那一场图像.
Declare Function CGStopSnap Lib "CGVideo" (ByVal hcg As Long) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.停止图像卡采集图像数据到内存.
Declare Function CGEnableMask Lib "CGVideo" (ByVal hcg As Long, ByVal bEnable As Long) As CGSTATUS
Declare Function CGSetPixelMask Lib "CGVideo" (ByVal hcg As Long, ByVal x As Long, ByVal y As Long, ByVal bEnable As Long) As CGSTATUS
Declare Function CGGetCardType Lib "CGVideo" (ByVal hcg As Long, ByRef pType As CGTYPE) As CGSTATUS
Declare Function CGGetCardTotal Lib "CGVideo" (ByRef pNumber As Long) As CGSTATUS
Declare Function CGLoadCFGFile Lib "CGVideo" (ByVal hcg As Long, ByRef filename As Long) As CGSTATUS
Declare Function CGGetErrorString Lib "CGVideo.dll" (ByVal status As CGSTATUS) As Long
'************************ CG300Util *************************************
Declare Function CGVideoPresent Lib "CGVideo.dll" (ByVal hcg As Long, ByRef pStatus As Long) As CGSTATUS
Declare Function CGSetPLLFrequency Lib "CGVideo.dll" (ByVal hcg As Long, ByVal byValue As Byte) As CGSTATUS
Declare Function CGSelectCryOSC Lib "CGVideo.dll" (ByVal hcg As Long, ByVal mode As CRY_OSC) As CGSTATUS '调用成功,返回CG_OK,否则返回错误代码.选择图像卡配置的晶振类型.
'************************ CG400Util *************************************
Declare Function CGEnableVideoMirror Lib "CGVideo.dll" (ByVal hcg As Long, ByVal dir As MIRROR_DIRECTION, ByVal bEnable As Long) As CGSTATUS
Declare Function CGSetVideoExtOutput Lib "CGVideo.dll" (ByVal hcg As Long, ByVal mode As EXT_VIDEO_OUTPUT, ByVal nValue As Long) As CGSTATUS
Declare Function CGWaitVSync Lib "CGVideo.dll" (ByVal hcg As Long) As CGSTATUS
Declare Function CGGetBoardInfo Lib "CGVideo.dll" (ByVal hcg As Long, ByVal mode As BOARD_INFO, ByRef pInfo As Long) As CGSTATUS
Declare Function CGCheckBoard Lib "CGVideo.dll" (ByVal hcg As Long, ByVal byParam1 As Byte, ByVal byParam2 As Byte, ByVal byParam3 As Byte, ByVal byParam4 As Byte, ByRef pStatus As Long) As CGSTATUS
Declare Function CGLumaControl Lib "CGVideo.dll" (ByVal hcg As Long, ByVal param As LUMA_PARAM, ByVal byValue As Byte) As CGSTATUS
Declare Function CGGammaCorrControl Lib "CGVideo.dll" (ByVal hcg As Long, ByVal param As GAMMA_CORR) As CGSTATUS
Declare Function CGSetGammaCorrCoef Lib "CGVideo.dll" (ByVal hcg As Long, ByVal pBuffer As Long) As CGSTATUS
'************************ CG400Util *************************************
Declare Function CGReadSCMParam Lib "CGVideo.dll" (ByVal hcg As Long, ByRef pBuffer As Long) As CGSTATUS
Declare Function CGWriteSCMParam Lib "CGVideo.dll" (ByVal hcg As Long, ByRef pBuffer As Long, ByVal byEntries As Byte) As CGSTATUS
'************************ CGVidEx *************************************
Declare Function CGCaptureEx Lib "CGVidEx.dll" (ByVal hcg As Long, ByVal hWnd As Long, ByVal bEnable As Long) As CGSTATUS
Declare Function CGDataTransform Lib "CGVidEx.dll" (ByRef pDestBuf As Any, ByVal pSrcBuf As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal nBitCount As Long, ByVal bVerFlip As Long) As CGSTATUS ''调用成功,返回CG_OK,否则返回错误代码.将源缓冲区的图像数据传递到目标缓冲区中,同时进行数据格式转换.
Declare Function CGDataInterchange Lib "CGVidEx.dll" (ByRef pDestBuf As Any, ByRef pSrcBuf As Any, ByVal nWidth As Long, ByVal nHeight As Long, ByVal nBitCount As Long, ByVal mode As INTERCHANGE_TYPE) As CGSTATUS
Declare Function CGGetDisplayBits Lib "CGVidEx.dll" (ByVal hDC As Long, ByVal nLeft As Long, ByVal nTop As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByRef nBitCount As Long, ByRef pImageBuffer As Any) As CGSTATUS
Public Function CG_SUCCESS(ByVal nStatus As CGSTATUS) As Boolean '标识函数执行结果,成功为True,失败为False
If nStatus = CG_OK Then
CG_SUCCESS = True
Else
CG_SUCCESS = False
End If
End Function
Public Sub CG_Verify(ByVal status As CGSTATUS) '调试时使用,函数执行成功,不显示信息,函数执行不成功,则弹出对话框,显示错误信息,发布时不运行
If status <> CG_OK Then
MessageBox 0, CGGetErrorString(status), 0, 0
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -