我是编程新手。我想制作一个图像处理程序。我的问题是,如果有什么东西经过我的相机,我希望我的程序给我发短信(AT COMMAND)。 这是代码:
for( ; contour != 0; contour = contour->h_next )
{
Sleep(10000);
char buf[20];
DWORD read = 0;
DWORD CommModemStatus;
DWORD write=1; // Number of bytes to write to serial port
buf[0] = 72; // Decimal value to write to serial port
char valor4[26] = ("at+cmgf=1\r");
BOOL bWriteRC4;
static DWORD iBytesWritten4;
bWriteRC4 = WriteFile(hPort, &valor4, 100, &iBytesWritten4,NULL);
char valor[26] = ("at+cmgs=\"+62xxxxxxxxxx\"\r");
BOOL bWriteRC;
static DWORD iBytesWritten;
bWriteRC = WriteFile(hPort, &valor, 100, &iBytesWritten,NULL);
char valor2[17] = ("SOMEONE HAS ENTERED YOU ROOM!!!");
BOOL bWriteRC2;
static DWORD iBytesWritten2;
bWriteRC2 = WriteFile(hPort, &valor2, 100, &iBytesWritten2,NULL);
char valor3 = (char)0x1A;
BOOL bWriteRC3;
static DWORD iBytesWritten3;
bWriteRC3 = WriteFile(hPort, &valor3, 100, &iBytesWritten3,NULL);
}
如果有什么东西从我的相机前面经过并且移动被捕获,那就是意思 轮廓!= 0,所以我认为它就像:
for (contour != 0)
//sending text message....
但显然当打开时,相机会适应光线的强度,所以我给Sleep(10000);
意味着在发送文字之前等待相机10秒钟。事实上,它只使我的相机(以及程序的其余部分)等待10秒钟才能打开。
有没有不同的方式等待而不暂停程序?
我已经谷歌了,试试像system("pause")
之类的东西,它不起作用。
我在Windows中使用Visual Studio 2010。
答案 0 :(得分:0)
您可以尝试类似
的内容#include <time.h>
...
for ( ; contour != 0; contour = contour->h_next) {
//skip to the next iteration if the program started less than 10 seconds ago
if (((float)clock())/CLOCKS_PER_SEC) < 10.0) continue;
...
}
time.h中的clock()函数返回自程序启动以来的时钟周期数。时钟节拍不一定是毫秒,因此除以宏常量表达式CLOCKS_PER_SEC(指定时钟节拍和秒钟之间的关系)将获得已经过的总秒数。
您可以在此处获取有关clock()的更多信息:http://www.cplusplus.com/reference/clibrary/ctime/clock/