Wi-Fi経由でビデオカメラに接続し、ユーザーがこれらの機能を実行したいときにズーム、録画の開始と停止を制御できるC言語でプログラムを書いています。
ビデオカメラに最初に接続した後、5 秒ごとにセッション更新コマンドを送信する必要があります。したがって、私の考えは、5秒ごとに更新コマンドを送信する最初の接続後に新しいスレッドを開始することでした。
while(1) {
sendRefreshCommand();
usleep(5000000);
}
このアイデアは大丈夫ですか、それを達成する他の方法はありますか?
編集:これまでのところ、私がやりたいことを少し説明するための私のコードです。ユーザーは、何をしたいかを永続的に尋ねられます。これはテストのみを目的としています。後でズームと録画コマンドがプログラムによって自動的に実行されます。ユーザーにセッションを 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;
}