diff --git a/UDPclient.depend b/UDPclient.depend index 5eca541..02a5400 100644 --- a/UDPclient.depend +++ b/UDPclient.depend @@ -29,7 +29,7 @@ -1394056611 source:/home/chch/HengLongUDPclient/main.c +1395763961 source:/home/chch/HengLongUDPclient/main.c @@ -52,13 +52,14 @@ "henglong.h" "wansview.h" + "extern.h" -1393293088 /home/chch/HengLongUDPclient/henglong.h +1395699958 /home/chch/HengLongUDPclient/henglong.h -1393293088 source:/home/chch/HengLongUDPclient/henglong.c +1395699958 source:/home/chch/HengLongUDPclient/henglong.c "henglong.h" 1393274981 source:/home/stefan/Proj/HengLongUDPclient/henglong.c @@ -102,14 +103,14 @@ 1393290504 source:/home/stefan/Proj/HengLongUDPclient/wansview.c "wansview.h" -1394056760 /home/chch/HengLongUDPclient/wansview.h +1395762040 /home/chch/HengLongUDPclient/wansview.h -1394060723 source:/home/chch/HengLongUDPclient/wansview.c +1395763555 source:/home/chch/HengLongUDPclient/wansview.c "wansview.h" 1395529103 source:/root/HengLongUDPclient/henglong.c @@ -158,3 +159,9 @@ 1395529103 source:/root/HengLongUDPclient/wansview.c "wansview.h" +1395761599 source:/home/chch/HengLongUDPclient/extern.c + "extern.h" + +1395699958 /home/chch/HengLongUDPclient/extern.h + + diff --git a/UDPclient.layout b/UDPclient.layout index c02f2e3..3b75491 100644 --- a/UDPclient.layout +++ b/UDPclient.layout @@ -4,11 +4,11 @@ - - + + - - + + @@ -17,10 +17,10 @@ - + - + diff --git a/bin/Debug/UDPclient b/bin/Debug/UDPclient index 2b106d7..6c7748b 100755 Binary files a/bin/Debug/UDPclient and b/bin/Debug/UDPclient differ diff --git a/client.config b/client.config index 6c13ef1..d5d920c 100644 --- a/client.config +++ b/client.config @@ -2,6 +2,8 @@ KEYBOARD /dev/input/event2 JOYSTICK /dev/input/js0 CAM 192.168.1.23 CAMINTERVAL 100000 +USER admin +PWD 123456 FRAME_US 100000 SERVER 192.168.1.18:32000 TIMEOUT 250 diff --git a/extern.c b/extern.c index a8e165d..4df6579 100644 --- a/extern.c +++ b/extern.c @@ -4,7 +4,6 @@ void fire(void) { - system("echo bla"); system("xte \'key Return\'\n"); } diff --git a/main.c b/main.c index 1be3ec5..4ada16f 100644 --- a/main.c +++ b/main.c @@ -264,6 +264,8 @@ typedef struct henglongconf_t char joystickdevname[256]; in_addr_t ip; // v4 only char cam[64]; + char user[64]; + char pwd[64]; uint32_t caminterval; uint16_t port; uint8_t timeout; @@ -288,6 +290,8 @@ henglongconf_t getconfig(char* conffilename) conf.joystickdevname[0] = 0; conf.cam[0] = 0; conf.caminterval = 100000; + conf.user[0] = 0; + conf.pwd[0] = 0; while(fgets(line, 256, configFile)){ sscanf(line, "%16s %256s", parameter, value); if(0==strcmp(parameter,"KEYBOARD")){ @@ -299,6 +303,12 @@ henglongconf_t getconfig(char* conffilename) if(0==strcmp(parameter,"CAM")){ sscanf(value, "%64s", conf.cam); } + if(0==strcmp(parameter,"USER")){ + sscanf(value, "%64s", conf.user); + } + if(0==strcmp(parameter,"PWD")){ + sscanf(value, "%64s", conf.pwd); + } if(0==strcmp(parameter,"CAMINTERVAL")){ sscanf(value, "%" SCNu32, &conf.caminterval); } @@ -323,6 +333,8 @@ henglongconf_t getconfig(char* conffilename) typedef struct cam_ctrl_thread_t { char* ip; + char* username; + char* password; int up, down, cw, ccw, nul, end; uint32_t caminterval; } cam_ctrl_thread_t; @@ -338,12 +350,12 @@ void *cam_ctrl_thread_fcn(void* arg) while(!args->end){ usleep(args->caminterval); - if(args->up) cam_up(args->ip); - if(args->down) cam_down(args->ip); - if(args->cw) cam_cw(args->ip); - if(args->ccw) cam_ccw(args->ip); + if(args->up) cam_up(args->ip, args->username, args->password); + if(args->down) cam_down(args->ip, args->username, args->password); + if(args->cw) cam_cw(args->ip, args->username, args->password); + if(args->ccw) cam_ccw(args->ip, args->username, args->password); if(args->nul) { - cam_nul(args->ip); + cam_nul(args->ip, args->username, args->password); args->nul = 0; } } @@ -354,7 +366,6 @@ void *cam_ctrl_thread_fcn(void* arg) int main(int argc, char* argv[]) { - pthread_t keybthread, joythread, refl_thread, cam_ctrl_thread; input_thread_t keyboard_thread_args; input_thread_t joystick_thread_args; @@ -403,6 +414,8 @@ int main(int argc, char* argv[]) cam_ctrl_thread_args.end = 0; cam_ctrl_thread_args.ip = conf.cam; cam_ctrl_thread_args.caminterval = conf.caminterval; + cam_ctrl_thread_args.username = conf.user; + cam_ctrl_thread_args.password = conf.pwd; if (pthread_create(&cam_ctrl_thread, NULL, cam_ctrl_thread_fcn , (void *) &cam_ctrl_thread_args)) printf("failed to create cam_ctrl thread\n"); }else{ printf("no cam config!\n"); diff --git a/obj/Debug/extern.o b/obj/Debug/extern.o index eed5d9e..db1b990 100644 Binary files a/obj/Debug/extern.o and b/obj/Debug/extern.o differ diff --git a/obj/Debug/henglong.o b/obj/Debug/henglong.o index b931260..5c890b8 100644 Binary files a/obj/Debug/henglong.o and b/obj/Debug/henglong.o differ diff --git a/obj/Debug/main.o b/obj/Debug/main.o index de61af5..c052141 100644 Binary files a/obj/Debug/main.o and b/obj/Debug/main.o differ diff --git a/obj/Debug/wansview.o b/obj/Debug/wansview.o index 4ee90a5..34e1e9d 100644 Binary files a/obj/Debug/wansview.o and b/obj/Debug/wansview.o differ diff --git a/wansview.c b/wansview.c index cfc05c0..71ac09e 100644 --- a/wansview.c +++ b/wansview.c @@ -2,7 +2,7 @@ #include "wansview.h" -int wvcamctrl(char* ip, int cmd) +int wvcamctrl(char* ip, char* username, char* password, int cmd) { int sockfd = 0, n = 0; char recvBuff[1024]; @@ -33,7 +33,7 @@ int wvcamctrl(char* ip, int cmd) return 1; } - sprintf(sendBuff, "GET /decoder_control.cgi?onestep=1&command=%d&user=chch&pwd=chch HTTP/1.1\r\nHost: %s\r\n\r\n", cmd, ip); + sprintf(sendBuff, "GET /decoder_control.cgi?onestep=1&command=%d&user=%s&pwd=%s HTTP/1.1\r\nHost: %s\r\n\r\n", cmd, username, password, ip); n = write(sockfd, sendBuff, strlen(sendBuff)); @@ -50,42 +50,43 @@ int wvcamctrl(char* ip, int cmd) return 0; } -int cam_down(char* ip) +int cam_down(char* ip, char* username, char* password) { - return wvcamctrl(ip, 0); + return wvcamctrl(ip, username, password, 0); + } -int cam_up(char* ip) +int cam_up(char* ip, char* username, char* password) { - return wvcamctrl(ip, 2); + return wvcamctrl(ip, username, password, 2); } -int cam_cw(char* ip) +int cam_cw(char* ip, char* username, char* password) { - return wvcamctrl(ip, 4); + return wvcamctrl(ip, username, password, 4); } -int cam_ccw(char* ip) +int cam_ccw(char* ip, char* username, char* password) { - return wvcamctrl(ip, 6); + return wvcamctrl(ip, username, password, 6); } -int cam_nul(char* ip) +int cam_nul(char* ip, char* username, char* password) { int i; for(i=0;i<20;i++){ usleep(300000); - cam_down(ip); + cam_down(ip, username, password); } for(i=0;i<80;i++){ usleep(300000); - cam_ccw(ip); + cam_ccw(ip, username, password); } for(i=0;i<40;i++){ usleep(300000); - cam_cw(ip); + cam_cw(ip, username, password); } return 0; } diff --git a/wansview.h b/wansview.h index 897676a..f4bc951 100644 --- a/wansview.h +++ b/wansview.h @@ -8,11 +8,11 @@ #include -int wvcamctrl(char* ip, int cmd); -int cam_down(char* ip); -int cam_up(char* ip); -int cam_cw(char* ip); -int cam_ccw(char* ip); -int cam_nul(char* ip); +int wvcamctrl(char* ip, char* username, char* password, int cmd); +int cam_down(char* ip, char* username, char* password); +int cam_up(char* ip, char* username, char* password); +int cam_cw(char* ip, char* username, char* password); +int cam_ccw(char* ip, char* username, char* password); +int cam_nul(char* ip, char* username, char* password); #endif // WANSVIEW_H_INCLUDED