基于Qt的Sapera LT开发

基于Qt的Sapera LT开发

基于Qt来开发Sapera LT,需要经过以下几个步骤:

1. 在建立的Qt工程添加Sapera LT的相关路径

(1)右键工程—Properties

基于Qt的Sapera LT开发

 

2Configuration PropertiesC/C++GeneralAdditional Include Directories

基于Qt的Sapera LT开发

 

3)添加BasicInclude的路径

基于Qt的Sapera LT开发

 

4Configuration PropertiesLinkerGeneralAdditional Library Directories

基于Qt的Sapera LT开发

 

5)添加Lib路径

基于Qt的Sapera LT开发

 

6Configuration PropertiesLinkerInputAdditional Dependences

基于Qt的Sapera LT开发

 

7)添加corapi.libSapClassBasic.lib

基于Qt的Sapera LT开发


 

2. 在建立的工程中,添加头文件SapClassBasic

#include "SapClassBasic.h"

注意:这里只能用Basic类,不能用基于MFC开发的GUI类。


3. 在工程类中声明Sapera LT的各类

 

private:	//私有变量	

	SapLocation *pLocLft;

	SapAcquisition *pAcqLft;

	SapBuffer *pBufferLft;

	SapAcqToBuf *pTransferLft;

 


4. 在工程类中声明回调函数

public:

	static void XferCallbackLft(SapXferCallbackInfo *pInfoLft);	//回调函数

注意:回调函数的极其重要,在每次传完一帧图像后,会自动调用回调函数。如果要实时处理图像数据,应该将图像处理函数放在里面。


5. 定义采集、缓存、传输类,并使能

	pAcqLft=new SapAcquisition(SapLocation("Xcelera-CL_PX4_2",0),"PtGrey_2048_2048.ccf" );	//采集

	pBufferLft=new SapBuffer(1,pAcqLft);	//buffer

	pTransferLft=new SapAcqToBuf(pAcqLft, pBufferLft, XferCallbackLft, this);	//传输链路



	bool successLft=pAcqLft->Create();

	successLft=pBufferLft->Create();

	successLft=pTransferLft->Create();

 

6. 定义回调函数

void LftCapt::XferCallbackLft(SapXferCallbackInfo *pInfoLft)

{

	LftCapt *pGrabQtLft=(LftCapt *) pInfoLft->GetContext();



//-------------------------------------------------------------------------

	//采集内存图像数据

	pGrabQtLft->pBufferLft->GetAddress((void**)&pBufDatLft);



	//内存中图像尺寸特征

	int heightBufLft=0,widthBufLft=0,pitchBufLft=0;

	heightBufLft=pGrabQtLft->pBufferLft->GetHeight();

	widthBufLft=pGrabQtLft->pBufferLft->GetWidth();

	pitchBufLft=pGrabQtLft->pBufferLft->GetPitch();

其中,虚线以上部分是回调函数定义的固定格式。


7. 工程退出时,delete对象(注意顺序)

	delete pTransferLft;

	delete pBufferLft;

	delete pAcqLft;

 

 

神爱世人,甚至将他的独生子(耶稣)赐给他们,叫一切信他的,不至灭亡,反得永生。

 

 

——【圣经·约翰福音3:16


 

你可能感兴趣的:(SAP)