⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simpapi13.txt

📁 AVE1000S系列卡SDK&Driver
💻 TXT
📖 第 1 页 / 共 5 页
字号:
		S系列卡 Simple API V1.3 up10  (S系列卡简化API接口函数)
S系列卡 Simple API 简称SSAPI,它封装了S系列卡 SDK的常用功能,及函数。大大简化,并加快了
用户对S系列卡卡的开发.对S系列卡新用户建议使用SSAPI及VC或Dephi开发。
S卡还有一个API称为SForX api,该API与AVE2000卡API兼容,适用于熟习2000API的用户。
见SFORXAPI.txt说明。SForXAPI底层使用SSAPI,而显示库使用AVE2000的显示库。
SForXAPI不提供源代码!

由于软件维护及效率的原因,建议S卡用户使用SSAPI直接开发.或混用两种API(与显示有关的除外)。
混用时所有SForX API不支持的功能直接调用SSAPI。由于SForX API也封装了压缩函数,故压缩函数
也不要混用,可直接使用SSAPI的压缩函数。
SSAPI支持更好,提供源代码,更新也快的多!SSAPI支持所有S系列卡全部功能,SForX API仅提供
部分功能,及支持部分S卡的功能。


S系列卡目前有AVE1000系列(包括SS1/SS1A,SS2/SS2A,SD/SDA,SD PRO,SQ卡)MPEG-1视频压缩卡(可
选PCM音频捕获,监听)。
及AVE3000(SSAV1)MPEG-1同步音视频压缩卡(一卡四路)。

它由SSAPI.H,SSAIP.LIB,SSAPI.DLL,TVCard.ini及一些支持DLL组成.其中SSAPI.DLL需要SurvIO.dll(SurvIONT.dll Win2000
及NT4),SurvApi.dll,Display.dll核心DLL及其他一些DLL如sdrps1.dll,sdrps2.dll,ssrps.dll等支持.
对S系列卡老客户可以用SSAPI,也可以用原有的基本S卡SDK方式开发。

对Dephi用户为SSAPI.PAS头文件。

SSAPI提供原代码.

基本开发包组成:
SIMPAPI13.TXT 本文档;
UpdateX.txt 更新说明。
TT3V6测试,演示程序,源代码,ssapi.h。
TT3V6/release 全部WIN2000/NT4运行库及tt3v6.exe,ssapi.dll为调试版,其输出信息较多。
如在win9x下运行需要用SSAPI_LIB/win98下的DLL替换。
SSAPI_LIB ave1000/3000运行需要的公共库dll 
SSAPI_LIB/win2000_nt win2000/nt4下需要的库,发布版。
SSAPI_LIB/w98 win9x下须需要的库,发布版。
SSAPI_LIB/Dephi/SSAPI.pas Debphi Header file.
如用户需要Dephi简单Demo请告之。 

对V13Update2以上版本:
要产生交多的跟踪记录(记录在ave3.rec中),请将SSAPI工程重新编译,在“工程/设置/C,C++对话框,予处理器定义框中
加入_USRDBG,后重新编译。反之,可取消_USRDBG重新编译。

SSAPI下是SSAPI原代码及S卡SDK 全部库。(用户也可在测试程序TT3V6.EXE目录下找到所有运行时需要的库)
SSAPI\HWLib是S系列卡硬件库。
SSAPI\Display是S系列卡显示库。
SSAPI\DETECT是S系列卡预览流报警检测库(老报警检测库)(V10升级,接口有少量变化)。
SSAPI\DETECT2是老的压缩流报警检测库。
原有的S系列卡SDK开发方式,将新库替换老库,包括.H文件,重编译即可。
SSAPI分为WIN98和WIN2000(NT4)两种版本,编译方法不同。区别是
SSAPI.DLL,SurvAPI.DLL,SurvIO.DLL(SurvIONT.dll)三个DLL不同。
SSAPI.dll,SurvAPI.DLL,SurvIO.DLL(SurvIONT.dll)WIN98,WIN2000分别在SSAPI\HWLib\NT和SSAPI\HWLib\W98下

SSAPI编译方法:
WIN2000(NT4):将SSAPI\HWLib\NT下的NTAPPEnv.h复制到SSAPI\HWLib,将SSAPI VC++工程中Link库改为指向
SSAPI\HWLib\NT\SurvIONT.lib;SSAPI\HWLib\NT\SurvAPI.lib  ReBuild工程.
WIN98:将SSAPI\HWLib\W98下的NTAPPEnv.h复制到SSAPI\HWLib,将SSAPI VC++工程中Link库改为指向
SSAPI\HWLib\W98\SurvIO.lib;SSAPI\HWLib\W98\SurvAPI.lib  ReBuild工程.

TT3V6.exe使用说明:
TT3V6是使用SSAPI的一个基本测试演示示例程序,供用户参考。它类似V10 SDK的tt3测试程序,但更简单,
功能更强(包括,声音,报警),且支持多卡,但只演示了单卡。
使用TT3V6可作为S卡测试程序,同时驱动多卡工作如有16路S卡,可直接运行TT3V6.EXE 16次(如分为
16个目录则应将将其中的Display.dll删除,并在Windows/system(win98),windows/system32(win2000)
下复制一个Display.dll。然后分别启动每个tt3v6.exe,通过修改每路的TVCARD.INI可改变各路的参数。)
即可测试这16路S卡。
TT3V6缺省库为WIN2000/NT4,如在win9x下运行应将DLL替换为SSAPI_LIB/w98下的dll。


TT3V6菜单功能如下:

1. One_Card_Display_Rec:演示基本予览,(回调)压缩,硬件OSD功能
 Audio:演示PCM音频功能。
 OpenDirectWDDWin:用主显示平面打开阻览监视。
 OpenIndirectWDDWin:用带系统缓存的主显示平面打开予览监视。(不推荐)
 RestoreCapture:回复暂停的显示。仅用于主显示平面予览方式。
 NTSC:置NTSC视频输入,应先管闭显示,再设置,再打开显示。
 PAL:置PAL视频输入,应先管闭显示,再设置,再打开显示。
 OpenOverlay:用覆盖平面打开予览监视。要求显卡支持Overlay(覆盖).(推荐显示方式)
 OpenBufOverlay:用带系统缓存的覆盖平面打开予览监视。要求显卡支持Overlay(覆盖).(不推荐)
 OpenBufOverlaySub:打开SD卡次通道予览监视(仅用于SD卡)。
 ExchangeA_B:交换主次予览通道(仅用于SD卡)。
 AdjustSubWin:调整次予览通道画面偏移(仅用于SD卡)。
 StartRec1:启动AVE1000卡压缩,记录,生成T1.MPE文件,压缩参数使用TVCARD.INI。
 StartOneRecAV:启动AVE3000卡压缩,记录,生成T1.MPG文件,压缩参数使用TVCARD.INI。
 StartRec2:启动SD卡第二路压缩,生成T2.mpe.(仅用于SD卡),压缩参数使用TVCARD.INI。
 StartAll:同时启动SD卡两路压缩。(仅用于SD卡),压缩参数使用TVCARD.INI。
 StopRec:停止压缩。(通用)
 Save BMP file:老位图捕获接口演示,捕获显示位图。从显存捕获,生成main.bmp
 OverlayZoom:Overlay部分放大演示,用于OpenOverlay成功后。
 OverlayZoomFull:Overlay满屏放大演示,用于OpenOverlay成功后。
 CaptureDispBMP:从显存捕获显示位图,生成Disp.bmp(显示窗口必须开启)。
 CaptureMemBMP:直接捕获显示位图,生成NoDisp.bmp( 可在无显示窗口时捕获)。
               若显示窗口是开启的,则捕获后,显示不再更新。
 CaptureSiggleBMP 演示直接捕获显示位图,生成3个BMP文件Mem1.bmp),若显示窗口是开启的,则捕获后,显示
                 恢复更新。
 EnableOSD:启动OSD演示(要求硬件支持OSD),演示期菜单不响应。
 DisableOSD:关闭OSD演示(要求硬件支持OSD)
 CallBackStartRecDemo:演示将MPEG流分段记录使用sapiFindCompressHead,生成1.mpg,2.mpg文件,文件长度由
                      TVCARD.INI中[HWObj]节的RepeatRecLength决定,如RepeatRecLength=10000000
                      则文件长度约10MB。 
                     它同时演示了压缩回调函数的使用,及压缩参数的设置。

2. MVDetect_MsgRec: 演示报警及(消息)压缩功能
   EnableDetect:启动新报警接口,开始动目标检测。(必须在启动压缩后才有效)
   DisableDetect:停止动目标检测。
   以下5项演示使用新的消息接口的压缩功能
   RegisterWin :注册接受压缩数据的窗口,无动目标检测。
   RegisterWin2:注册接受压缩数据的窗口,带动目标检测。
   UnRegisterWin:取消注册窗口。
   SavCompressData:启动压缩存盘。文件为t1.mpe(AVE1000卡)或t1.mpg(AVE3000卡)。
   StopSavCompressData停止压缩存盘。
   EnableDecreaseFrames 使能抽帧功能。必须在启动压缩之前使用才有效。
                        抽帧参数设置在TVCARD.INI的[HWOBJ]节中ONFRAME,OFFFRAME,ONFRAME=1;OFFFRAME=1,2,3,4,5,6,7
                        抽帧后帧速率=25*(ONFRAME/(ONFRAME+OFFFRAME)) (pal)
   DisableFrames        禁止抽帧(恢复正常)功能,必须在启动压缩之前使用才有效。
   GetAlarmIn    检测IO报警输入(如为灰表示该卡目前不支持IO报警) 为0或1(AVE1000);0,1,2(AVE3000)
   SetAlarmOut   IO报警输出(如为灰表示该卡目前不支持IO报警),每点击一次改变一次输出电平(H或L电平)。
                 除AVE3000SQ Pro1外,IO报警需IO报警板。
   StartPreRec   启动预录功能,产生空文件PreRecDemo.mpg。预录长度可由MainFrm.h的BUF_QUE_LEN调整。
   ActualRecording 向PreRecDemo.mpg文件实际记录,包含3-5S预录内容。
   PreRecording    转为预录。可重复ActualRecording,PreRecording 切换。
   EndPreRec       停止预录,关闭文件PreRecDemo.mpg。
           

3.  Audio:演示PCM音频捕获(capture),监听(play),回放(playback)功能。




DetectTt3v6是使用SSAPI的一个老报警示例程序,供用户参考预览流报警及旧的压缩流报警部分演示(只演示了单卡)。
SSAPI V13版改动请参考V13Update.txt

调试技巧:
1.在NT4或WIN2000下调试S系列卡程序时,如直接终止程序运行,或程序异常退出,再次运行程序
时可能找不到卡。此时,不需重起计算机,只需到注册库找到Surv项,将其中Using清为0,
Surv0,Surv1,...也清为0,其它不要动,即可找到全部卡。可用sapiDbgInitRegistry完成该任务。

2.在启动压缩后尽量不要直接强行终止程序,应关闭压缩后再退出,或继续Run直到弹出显示
"Compress except exit,...".再终止程序.否则可能重起系统.

基本工作流程:
初始化:
  初始化设备->初始化显示
  sapiDeviceInit->sapiDisplayCreate
显示:
  设置浏览视频输入->创建主显示区域->创建子显示区域->启动浏览视频流->停止浏览视频流.
  ->删除子显示区->删除主显示区域.
  sapiSetVideoPreviewSource->sapiSetVideoPreviewParams->sapiCreateMainDispRgn->
  sapiCreateSubDispRgnInMainRgn->sapiStartPreview->sapiStopPreview->
  sapiDestorySubDispRgn->sapiDestorySubDispRgn  
视频压缩:
  设置压缩视频输入->设置压缩参数,启动记录压缩视频记录->停止压缩视频记录
  sapiSetVideoCompressSource->sapiSetVideoCompressSourceParams->
  sapiStartOneCompressRec(sapiStartTwoCompressRec)->sapiStopCompressRec
音频:

预览流报警:
    设置报警参数(填充USRDETECTINFO结构);
    如果需要对警情进行处理,请注册回调函数(sapiRegisterDetectFun);--可选
    启动开始报警函数,传递参数(sapiStartDetect);
    解除报警,调用sapiStopDetect函数;
压缩流报警(旧接口):
  初始化(每卡只需初始化一次)--sapiInitMotionDetect2
  启动:
    注册回调函数(必须注册)--sapiRegisterDetect2Fun;
    设置报警参数(填充USRDETECTINFO结构)--sapiSetParams;
    启动压缩流检测记录--sapiStartDetect2WithCompressRec;
  停止:
    停止压缩流报警检测记录--sapiStopDetect2WithCompressRec;
    反注册回调函数--sapiUnRegisterDetect2Fun。
  析构(程序退出时,如果曾经初始化且没有析构,则必须析构)--sapiDeleteMotionDetect2
    
退出:  
  设备退出->显示退出
  sapiDeviceExit->sapiDisplayDestory
  
  在显示退出之前请先关闭预览流报警线程,可调用sapiIfNoDetect函数判断是否还有预览流报警线程工作。
  保证压缩流报警记录关闭(可用sapiIfDetect2Going判断卡是否启动了压缩流报警记录没有关闭)。

常用参数:
CardID:工作卡号,为0,1,2,3...也可用CARD0,CARD1,CARD2,...标识某个卡,实质是工作卡数组下标.
EncoderID:卡上视频编码器号,为0(ENCODER1)或1(ENCODER2)(SD,SDA卡才有).
VInputChannel:视频输入通道号为1,2,3,4也可用COMPOSITE1,COMPOSITE2,COMPOSITE3
              COMPOSITE4
VChannelID:视频主通道号MAIN_VCH=0 ;视频次通道号SUB_VCH=1。见4-1,c
              
1.基本函数:
//1.
  SAPI int DLLCALL sapiDeviceInit(int CardNum);
  输入: 要初始化的S卡数,当CardNum<=0时,表示初始化所有的S卡
  返回:已经初始化好的S卡数,既开始工作的S卡数.
  功能: S系列卡及SSAPI,必须经过该函数初始化后,才可工作。
//2.
//CardID=0,1,...,MAX_CARDS,-1 mean all
  SAPI int DLLCALL sapiDeviceExit(int CardID);
  输入: CardNum >0为卡号,当CardNum<=0时,表示所有的卡。
  返回: 剩余工作卡数。
  功能: 停止某个或全部卡的工作,并释放它们。
//3.
  SAPI int DLLCALL sapiDisplayCreate();
  返回:0表示成功,负数为失败。
        -1:显示模块已经初始化.(显示模块只初始化一次)  
        -2,-3:显示模块内存分配错误.
        -4:覆盖方式及主平面方式创建均失败. 
         1:表示显卡仅支持主平面方式,不支持覆盖方式(OVERLAY).
  功能: 显示模块初始化.

//4. 
  SAPI int DLLCALL sapiDisplayDestory();
  返回:0
  功能:关闭,释放显示模块.
//5.  
  SAPI int DLLCALL sapiGetTotalCards();
  返回:卡数
  功能:返回系统中全部S卡的数量.
  注意:该函数必须在sapiDeviceInit之后调用才有效。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -