2012-11-21 66 views
1

我是编程新手。我想制作一个图像处理程序。我的问题是我希望我的程序向我发送短信(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

你可以尝试像

#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中的时钟周期数,因为该方案已经开始。时钟节拍不一定是毫秒,因此除以指定时钟节拍与秒之间关系的宏常量表达式CLOCKS_PER_SEC将得到已经过去的总秒数。

您可以在这里获取更多关于clock()的信息:http://www.cplusplus.com/reference/clibrary/ctime/clock/

+0

谢谢。现在工作。 – user1843019

相关问题