我正在用C語言編寫一個程序,通過wifi連接到攝像機,並且可以控制縮放,當用戶想要執行這些功能時開始和停止錄製。在線程中定期調用函數C
初次連接攝像機後,我將不得不每隔5秒發送一次會話刷新命令。所以我的想法是,之後發送刷新命令每5 seconds.Something像最初的連接開始一個新的線程,
while(1) {
sendRefreshCommand();
usleep(5000000);
}
這種想法OK,或有任何其他的方式來實現這一目標?
編輯:這是到目前爲止我的代碼來說明一點什麼我想做的事情。用戶被永久詢問他想做什麼。這僅用於測試目的。稍後,縮放和錄製命令將由程序自動執行。同時要求用戶每5秒鐘刷新一次會話。
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include "camctrl.h"
extern struct conf g_Config;
void* sessionContinueThread(void *session_args){
while(1){
sessionContinue(g_Config.cam_ip);
usleep(3000000);
}
}
int main(){
int sel;
pthread_t session_thread;
void *arg2;
readConfig("config2.json");
ConnectToCam(g_Config.cam_ip);
arg2 = (void *) g_Config.cam_ip;
pthread_create(&session_thread , NULL , sessionContinueThread , arg2);
pthread_join(session_thread,NULL);
while(1){
printf("\n[0] Zoom Tele\n");
printf("[1] Zoom Wide\n");
printf("[2] Start Recording\n");
printf("[3] Stop Recording\n");
printf("[4] Session Continue\n");
printf("[5]Stop\n");
printf("Selection: ");
scanf("%d",&sel);
switch(sel){
case 0: zoomTele(); break;
case 1: zoomWide(); break;
case 2: RecStart(); break;
case 3: RecStop(); break;
case 4: sessionContinue(g_Config.cam_ip); break;
case 5: exit(0); break;
default: break;
}
}
return 0;
}
我不明白爲什麼不。 – tangrs
@wedaPashi只是好奇:P?你爲什麼說**科爾**而不是**杆**? –
@SuvP:因爲它確實是South Cole和North Cole。 :D如果你有足夠的好奇心,試試並花點時間閱讀珠穆朗瑪峯。 :D或Google:Mt. Everest North Cole – 2013-07-16 12:24:26