【发布时间】:2015-10-30 14:33:21
【问题描述】:
我的程序由图像处理 (OpenCV) 和接近传感器 (Arduino UNO) 组成。基本上它会在计算对象的大小和形状之前检测一个对象并测量其距离。
在从接近传感器读取读数时,我正在尝试通过使用 cout 而不是 printf 来提高我的程序性能。以下是程序:
主程序
int main(void){
int j;
/*used for port"COM2"*/
HANDLE hCom=INVALID_HANDLE_VALUE;
char input[30];
string ss,ss1,ss2,ss3;
/*Open "COM2"*/
hCom=CreateFile("COM2",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(hCom==INVALID_HANDLE_VALUE)
{
printf("can't open file");
}
DCB dcb;
memset(&dcb,0,sizeof (DCB));
dcb.DCBlength=sizeof (DCB);
dcb.BaudRate=CBR_9600;
dcb.ByteSize=8;
dcb.Parity=NOPARITY;
dcb.StopBits=ONESTOPBIT;
SetCommState(hCom,&dcb);
while(1){
// OpenCV stuffs
// Sensor readings AKA printout <-- THIS PART!
}
}
THIS PART! 中的测试命令:
之前
if(hCom!=INVALID_HANDLE_VALUE)
{
DWORD dwBytes=0;
j=ReadFile(hCom,&input,18,&dwBytes,NULL);
if(j==1)
{
ss=input;
ss1=ss.substr(0,6);
ss2=ss.substr(6,6);
ss3=ss.substr(12,6);
}
}
for(j=0;j<4;j++){
printf("%c", ss[j]);
}
结果:OpenCV 1-2 fps
之后
if(hCom!=INVALID_HANDLE_VALUE)
{
DWORD dwBytes=0;
j=ReadFile(hCom,&input,6,&dwBytes,NULL);
if(j==1)
{
cout << input;
}
}
结果:15-20ish fps 与 OpenCV
我的问题是如何消除读数之间的随机字符 [THIS? in AFTER pic]?
提前致谢!
【问题讨论】:
-
您是否尝试用零初始化“输入”?
-
你的最小例子在哪里?
-
@Eugene Welp 我不敢相信我错过了。问题解决了。感谢您的评论!