bool FlosIDSAdaptor::openDevice() { if(isOpen()) { return true; } INT nRet = is_InitCamera(&m_deviceID, NULL); if(nRet != IS_SUCCESS) { if(nRet == IS_STARTER_FW_UPLOAD_NEEDED) { return false; } } else { IS_SIZE_2D imageSize; INT lMemoryId; char *pcImageMemory; is_AOI(m_deviceID, IS_AOI_IMAGE_GET_SIZE, (void *)&imageSize, sizeof(imageSize)); for(unsigned int i = 0; i < 25; i++) { is_AllocImageMem(m_deviceID, imageSize.s32Width, imageSize.s32Height, 24, &pcImageMemory, &lMemoryId); is_AddToSequence(m_deviceID, pcImageMemory, lMemoryId); is_SetImageMem(m_deviceID, pcImageMemory, lMemoryId); } if(is_InitImageQueue(m_deviceID, 0) != IS_SUCCESS) { imaqkit::adaptorWarn("FlosIDSAdaptor:openDevice","Something went wrong while allocating memory."); return false; } } m_acquireThread = CreateThread(NULL, 0, acquireThread, this, 0, &m_acquireThreadID); if(m_acquireThread == NULL) { closeDevice(); return false; } while(PostThreadMessage(m_acquireThreadID, WM_USER + 1, 0, 0) == 0) { Sleep(10); } return true; }
int CameraApi::openCamera() { int is_init = IS_NO_SUCCESS; int is_mode = IS_NO_SUCCESS; int is_alcM = IS_NO_SUCCESS; int isLoad = IS_NO_SUCCESS; is_init = is_InitCamera(&mhCam, 0); if(is_init == IS_SUCCESS) { is_mode = is_SetDisplayMode(mhCam, IS_SET_DM_DIB); } if(is_mode == IS_SUCCESS) { ringbuffer = new char* [ringbufferSize]; ringbufferId = new int [ringbufferSize]; IS_SIZE_2D maxAoi; is_AOI(mhCam, IS_AOI_IMAGE_GET_SIZE_MAX, &maxAoi, sizeof(maxAoi)); for(int i=0; i<ringbufferSize; i++) { is_AllocImageMem(mhCam, maxAoi.s32Width, maxAoi.s32Height, bitspixel(), &ringbuffer[i], &ringbufferId[i]); is_AddToSequence(mhCam, ringbuffer[i], ringbufferId[i]); } isLoad = is_LoadParameters(mhCam, "cameraParameter.ini"); setAoi(0, 0, width(), height()); is_SetExternalTrigger(mhCam, IS_SET_TRIGGER_OFF); is_CaptureVideo(mhCam, IS_WAIT); } if(isLoad == IS_SUCCESS) return IS_SUCCESS; else return IS_NO_SUCCESS; }