Commit 11feada5 authored by Stefano Fabri's avatar Stefano Fabri

Some warning fix. Initial multicast get property support

parent 575ec4aa
...@@ -191,7 +191,7 @@ bool CvCaptureCAM_PvAPI::open( int index ) ...@@ -191,7 +191,7 @@ bool CvCaptureCAM_PvAPI::open( int index )
//PvAttrUint32Get(Camera.Handle,"PacketSize",&maxSize); //PvAttrUint32Get(Camera.Handle,"PacketSize",&maxSize);
if (PvCaptureAdjustPacketSize(Camera.Handle,maxSize)!=ePvErrSuccess) if (PvCaptureAdjustPacketSize(Camera.Handle,maxSize)!=ePvErrSuccess)
return false; return false;
if (strncmp(pixelFormat, "Mono8",NULL)==0) { if (strcmp(pixelFormat, "Mono8")==0) {
grayframe = cvCreateImage(cvSize((int)frameWidth, (int)frameHeight), IPL_DEPTH_8U, 1); grayframe = cvCreateImage(cvSize((int)frameWidth, (int)frameHeight), IPL_DEPTH_8U, 1);
grayframe->widthStep = (int)frameWidth; grayframe->widthStep = (int)frameWidth;
frame = cvCreateImage(cvSize((int)frameWidth, (int)frameHeight), IPL_DEPTH_8U, 3); frame = cvCreateImage(cvSize((int)frameWidth, (int)frameHeight), IPL_DEPTH_8U, 3);
...@@ -199,7 +199,7 @@ bool CvCaptureCAM_PvAPI::open( int index ) ...@@ -199,7 +199,7 @@ bool CvCaptureCAM_PvAPI::open( int index )
Camera.Frame.ImageBufferSize = frameSize; Camera.Frame.ImageBufferSize = frameSize;
Camera.Frame.ImageBuffer = grayframe->imageData; Camera.Frame.ImageBuffer = grayframe->imageData;
} }
else if (strncmp(pixelFormat, "Mono16",NULL)==0) { else if (strcmp(pixelFormat, "Mono16")==0) {
grayframe = cvCreateImage(cvSize((int)frameWidth, (int)frameHeight), IPL_DEPTH_16U, 1); grayframe = cvCreateImage(cvSize((int)frameWidth, (int)frameHeight), IPL_DEPTH_16U, 1);
grayframe->widthStep = (int)frameWidth; grayframe->widthStep = (int)frameWidth;
frame = cvCreateImage(cvSize((int)frameWidth, (int)frameHeight), IPL_DEPTH_16U, 3); frame = cvCreateImage(cvSize((int)frameWidth, (int)frameHeight), IPL_DEPTH_16U, 3);
...@@ -207,7 +207,7 @@ bool CvCaptureCAM_PvAPI::open( int index ) ...@@ -207,7 +207,7 @@ bool CvCaptureCAM_PvAPI::open( int index )
Camera.Frame.ImageBufferSize = frameSize; Camera.Frame.ImageBufferSize = frameSize;
Camera.Frame.ImageBuffer = grayframe->imageData; Camera.Frame.ImageBuffer = grayframe->imageData;
} }
else if (strncmp(pixelFormat, "Bgr24",NULL)==0) { else if (strcmp(pixelFormat, "Bgr24")==0) {
frame = cvCreateImage(cvSize((int)frameWidth, (int)frameHeight), IPL_DEPTH_8U, 3); frame = cvCreateImage(cvSize((int)frameWidth, (int)frameHeight), IPL_DEPTH_8U, 3);
frame->widthStep = (int)frameWidth*3; frame->widthStep = (int)frameWidth*3;
Camera.Frame.ImageBufferSize = frameSize; Camera.Frame.ImageBufferSize = frameSize;
...@@ -283,6 +283,20 @@ double CvCaptureCAM_PvAPI::getProperty( int property_id ) ...@@ -283,6 +283,20 @@ double CvCaptureCAM_PvAPI::getProperty( int property_id )
tPvFloat32 nfTemp; tPvFloat32 nfTemp;
PvAttrFloat32Get(Camera.Handle, "StatFrameRate", &nfTemp); PvAttrFloat32Get(Camera.Handle, "StatFrameRate", &nfTemp);
return (double)nfTemp; return (double)nfTemp;
case CV_CAP_PROP_PVAPI_MULTICASTIP:
char mEnable[2];
char mIp[11];
PvAttrEnumGet(Camera.Handle,"MulticastEnable",mEnable,sizeof(mEnable),NULL);
if (strcmp(mEnable, "Off") == 0) {
return -1;
}
else {
long int ip;
int a,b,c,d;
PvAttrStringGet(Camera.Handle, "MulticastIPAddress",mIp,sizeof(mIp),NULL);
sscanf(mIp, "%d.%d.%d.%d", &a, &b, &c, &d); ip = ((a*256 + b)*256 + c)*256 + d;
return (double)ip;
}
} }
return -1.0; return -1.0;
} }
...@@ -303,7 +317,7 @@ bool CvCaptureCAM_PvAPI::setProperty( int property_id, double value ) ...@@ -303,7 +317,7 @@ bool CvCaptureCAM_PvAPI::setProperty( int property_id, double value )
if (value==1) { if (value==1) {
char pixelFormat[256]; char pixelFormat[256];
PvAttrEnumGet(Camera.Handle, "PixelFormat", pixelFormat,256,NULL); PvAttrEnumGet(Camera.Handle, "PixelFormat", pixelFormat,256,NULL);
if ((strncmp(pixelFormat, "Mono8",NULL)==0) || strncmp(pixelFormat, "Mono16",NULL)==0) { if ((strcmp(pixelFormat, "Mono8")==0) || strcmp(pixelFormat, "Mono16")==0) {
monocrome=true; monocrome=true;
} }
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment