第一次写通过RAPI同PC通讯的接口,遇到下列一个问题,各位给指点一下.
下位机连续用IRAPIStream.write写一段buffer,PC端IRAPIStream.read这段了buffer,把Buffer整合成图片存在PC.(用的是非阻塞模式)
部分代码如下:
while(bSensorStatus[0] == 0x1)
{
memset(pImageBuf,0x00,imageBufLen);
iRet = IO_GetImageBlock(dwLineNum,pImageBuf,(BYTE *)bSensorStatus);
/* iRet = 0;
for(unsigned int m =0;m
{
pImageBuf[m] = 30 *i;
}
if(i==7)
bSensorStatus[0] = 0x0;
i++;
*/
if(iRet == 0)
//Write length of string
hr = pIRAPIStream->Write(&imageBufLen,sizeof(imageBufLen),&cbBytes);
//Write string
hr = pIRAPIStream->Write((unsigned char *)pImageBuf,(unsigned long)imageBufLen,&cbBytes);
}else
{
goto ERR_EXIT;
}
}
现在的情况是,如是以上述代码跑程序,则在PC端read速度很慢,类似阻塞IO_GetImageBlock了,整的下位机读一会停一会,如果把IO_GetImageBlock注释,把上述代码注释的取消跑程序,则一切正常.或者我把一张图按段读取并上传PC,同样也没问题.
如果单独跑IO_GetImageBlock,并write,但我在PC端不read,同样速度也很正常.
哪位了解相关情况,急盼指点一下.
谢谢