[問題] 有關連結硬體的問題
我是用VC++來透過USB來連結硬體,
我有硬體廠商的SDK,本身也是透過USB來連結.
我想請問一下下面步驟我哪裡做錯了:
我先新增專案,然後選擇專案類型是一般,然後我廠商的SDK引入專案裡面.
////////////////////////////////////////////////////////////////////////////
// Free running color example
//
//
// Copyrights by Photonfocus AG and Silicon Software
////////////////////////////////////////////////////////////////////////////
//include USB-SDK
#include "..\include\FramegrabberArea.h"
//include camera-SDK
extern "C"
{
#include "..\..\..\PFRemote\SDK\common.h"
};
//microDisplayUSB needs modulo 8 values for WIDTH and HEIGHT.
//Otherwise the image can be wrong
//
//If it's not possible to set modulo 8 values to camera (BLIZZARD),
//set image size on camera bigger than image size on microDisplayUSB
#define WIDTH 640
#define HEIGHT 480
////////////////////////////////////////////////////////////////////////
// Main Funktion
//
int main(int argc, char* argv[], char* envp[])
{
FramegrabberArea FGS;
int nr_of_buffer, nCamPort, status, error, maxPics;
DEVICE d;
char *portname, data[64];
float f;
nCamPort = PORT_A;
//Init microEnable Framegrabber
//Specify here the dll-name of your camera model (HURRICANE-40-U2 = hurrican40u2.dll)
//Directory: microDisplayUSB\dll
if((status = FGS.InitGrabber("../../dll/mvd640cu2.dll", 0)) < 0){
return status;
}
else{
fprintf(stdout, "Init Grabber ok\n");
}
//Init PFLib-SDK (Photonfocus-SDK)
portname = (char*)pfPortList()[DEFAULT_PORT_INDEX]; //usb0
error = pfDeviceOpen(portname, &d);
printf("Opening camera on port %s...\n", portname);
if(error < 0){
handleError(error);
return -1;
}
//Reset Camera
SetPropertyString(d, "Reset", "1");
//Set ROI
SetPropertyInt(d, "Window.W", WIDTH);
SetPropertyInt(d, "Window.H", HEIGHT);
//Get ExposureTime
error = GetPropertyString(d, "ExposureTime", data);
if(!error){
printf("ExposureTime: %s\n", data);
}
//Set ExposureTime to 20ms
f = 20.0;
SetPropertyFloat(d, "ExposureTime", f);
//Get ExposureTime
error = GetPropertyFloat(d, "ExposureTime", &f);
if(!error){
printf("ExposureTime: %f\n", f);
}
//End of PFLib-SDK
//Set image size
if((status = FGS.SetImageSize(nCamPort, WIDTH, HEIGHT)) < 0){
return status;
} else {
fprintf(stdout, "Set Image Size on port %d (w: %d,h: %d) ok\n", nCamPort, FGS.GetWidth(nCamPort), FGS.GetHeight(nCamPort));
}
/*
Set CameraLink settings
Color cameras: FG_COl24
Grey cameras 8bit: FG_GRAY
Grey cameras 16bit: FG_GRAY16
Bit resolution: FG_CL_SINGLETAP_8_BIT, FG_CL_SINGLETAP_10_BIT, FG_CL_SINGLETAP_12_BIT
for more information see SDK documenataion
HURICANE-40-U2:
8bit: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY)
8bit, 2bit shifted: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_10_BIT, 2, FG_MSB, FG_NO, FG_NO, FG_GRAY)
8bit, 4bit shifted: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_12_BIT, 4, FG_MSB, FG_NO, FG_NO, FG_GRAY)
real 10bit FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_10_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY16)
real 12bit FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_12_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY16)
THUNDER-90-U2:
8bit: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY)
8bit, 2bit shifted: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_10_BIT, 2, FG_MSB, FG_NO, FG_NO, FG_GRAY)
8bit, 4bit shifted: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_12_BIT, 4, FG_MSB, FG_NO, FG_NO, FG_GRAY)
real 10bit FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_10_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY16)
real 12bit FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_12_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY16)
BLIZZARD-60-U2:
8bit: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY)
MV-D640-48-U2
8bit: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_GRAY)
MV-D640C-48-U2
8bit: FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_COL24)
*/
if((status = FGS.SetFormatCL(nCamPort, FG_CL_SINGLETAP_8_BIT, 0, FG_MSB, FG_NO, FG_NO, FG_COL24)) < 0){
return status;
}
else{
fprintf(stdout, "CamerLink format setting.\n");
}
//Set trigger mode
if((status = FGS.SetTriggerMode(nCamPort, FREE_RUN)) < 0){
return status;
}
else{
fprintf(stdout, "Set Trigger and Grabber mode to FreeRun\n");
}
//Create Window to show images
FGS.CreateDisplay(nCamPort);
//allocate memory
nr_of_buffer = 8; //work with 8 buffers
if((status = FGS.AllocateFramebufferEx(nCamPort, nr_of_buffer)) < 0){
return status;
}
else{
fprintf(stdout, "%d framebuffer allocated for port %d ok\n", nr_of_buffer, nCamPort);
}
//start grabbing
if((status = FGS.StartAcquireEx(nCamPort, GRAB_INFINITE, ACQ_STANDARD)) < 0){
fprintf(stdout, "Grabbig failed \n");
return status;
}
else{
fprintf(stdout, "start grabbing ... ok\n");
}
maxPics = 100; //grab 100 images
while((status = FGS.GetLastPicNumberBlockingEx(nCamPort)) < maxPics) {
if(status < 0){
break;
}
FGS.DrawLastBufferEx(nCamPort);
}
// ====================================================
FGS.CloseDisplay(nCamPort);
//close camera - SDK
error = pfDeviceClose(d);
if(error < 0) return error;
//free of frame grabber ressources
FGS.StopAcquireEx(nCamPort);
FGS.FreeMem(nCamPort);
FGS.FreeGrabber();
return 0;
}
當我引入完畢後.我建置專案,程式沒出現錯誤.
但當我執行時,卻出現"此專案組態已過期"
然後接下來說系統找不到指定檔案.
請問我是哪一步出錯呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.41.12
→
04/22 17:53, , 1F
04/22 17:53, 1F
→
04/22 17:53, , 2F
04/22 17:53, 2F
→
04/22 17:54, , 3F
04/22 17:54, 3F
→
04/22 17:54, , 4F
04/22 17:54, 4F
→
04/22 17:54, , 5F
04/22 17:54, 5F
→
04/23 11:00, , 6F
04/23 11:00, 6F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章