From fe0747336c685624a642b973247f882b033e552d Mon Sep 17 00:00:00 2001 From: Stefan Helmert Date: Mon, 6 Jan 2014 21:38:22 +0100 Subject: [PATCH] USAGE prompt; client number, client select, server exit --- UDPclient.depend | 14 +++-- bin/Debug/UDPclient | Bin 21518 -> 25830 bytes client.config | 1 + henglong.c | 135 ++++++++++++++++++++++++------------------- henglong.h | 4 ++ main.c | 25 ++++++-- obj/Debug/henglong.o | Bin 7584 -> 7944 bytes obj/Debug/main.o | Bin 17432 -> 18376 bytes 8 files changed, 109 insertions(+), 70 deletions(-) diff --git a/UDPclient.depend b/UDPclient.depend index 679bf23..ba39e76 100644 --- a/UDPclient.depend +++ b/UDPclient.depend @@ -1,5 +1,5 @@ # depslib dependency file v1.0 -1388947181 source:/home/stefan/Proj/UDPclient/main.c +1389037649 source:/home/stefan/Proj/UDPclient/main.c @@ -17,13 +17,15 @@ - - -1388951235 source:/home/stefan/Proj/UDPclient/henglong.c "henglong.h" -1388951303 /home/stefan/Proj/UDPclient/henglong.h - +1389038648 source:/home/stefan/Proj/UDPclient/henglong.c + "henglong.h" + +1389038543 /home/stefan/Proj/UDPclient/henglong.h + + + diff --git a/bin/Debug/UDPclient b/bin/Debug/UDPclient index 740a021831ad76733017672007f40aa6d2cc5c07..b1dbef69c18dce32c269f6879df24b5d6631531e 100755 GIT binary patch delta 8835 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 BJWl`s delta 7868 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 Ho)Z5Lv4pbN diff --git a/client.config b/client.config index be1d189..b11e9ae 100644 --- a/client.config +++ b/client.config @@ -2,3 +2,4 @@ INPUTDEV /dev/input/event2 FRAME_US 100000 SERVER 127.0.0.1:32000 TIMEOUT 250 +CLINBR 0 diff --git a/henglong.c b/henglong.c index c440128..6e5a721 100644 --- a/henglong.c +++ b/henglong.c @@ -43,81 +43,96 @@ void inithenglong(henglong_t* henglong) henglong->turret_left = 0; henglong->turret_right = 0; henglong->recoil = 0; + henglong->clisel = 0; + henglong->servoff = 0; } int event2data(henglong_t* henglong, struct input_event event) { - if(108==event.code){ - if(event.value){ - henglong->velocity = 0b11111; - }else{ - henglong->velocity = 0b10000; - } + //printf("%d\n", event.code); + if(107==event.code){ + if(event.value){ + henglong->servoff = 1; + }else{ + henglong->servoff = 0; } - if(103==event.code){ - if(event.value){ - henglong->velocity = 0b00000; - }else{ - henglong->velocity = 0b10000; - } + } + if(2<=event.code && 11>=event.code){ + if(event.value){ + henglong->clisel = (event.code - 1) % 10; } - if(105==event.code){ - if(event.value){ - henglong->direction = 0b00000; - }else{ - henglong->direction = 0b01111; - } + } + if(108==event.code){ + if(event.value){ + henglong->velocity = 0b11111; + }else{ + henglong->velocity = 0b10000; } - if(106==event.code){ - if(event.value){ - henglong->direction = 0b11111; - }else{ - henglong->direction = 0b01111; - } + } + if(103==event.code){ + if(event.value){ + henglong->velocity = 0b00000; + }else{ + henglong->velocity = 0b10000; } - if(23==event.code){ - if(event.value){ - henglong->ignation = 1; - }else{ - henglong->ignation = 0; - } + } + if(105==event.code){ + if(event.value){ + henglong->direction = 0b00000; + }else{ + henglong->direction = 0b01111; } - if(34==event.code){ - if(event.value){ - henglong->mg = 1; - }else{ - henglong->mg = 0; - } + } + if(106==event.code){ + if(event.value){ + henglong->direction = 0b11111; + }else{ + henglong->direction = 0b01111; } - if(33==event.code){ - if(event.value){ - henglong->fire = 1; - }else{ - henglong->fire = 0; - } + } + if(23==event.code){ + if(event.value){ + henglong->ignation = 1; + }else{ + henglong->ignation = 0; } - if(29==event.code){ - if(event.value){ - henglong->turret_left = 1; - }else{ - henglong->turret_left = 0; - } + } + if(34==event.code){ + if(event.value){ + henglong->mg = 1; + }else{ + henglong->mg = 0; } - if(20==event.code){ - if(event.value){ - henglong->turretelev = 1; - }else{ - henglong->turretelev = 0; - } + } + if(33==event.code){ + if(event.value){ + henglong->fire = 1; + }else{ + henglong->fire = 0; } - if(19==event.code){ - if(event.value){ - henglong->recoil = 1; - }else{ - henglong->recoil = 0; - } + } + if(29==event.code){ + if(event.value){ + henglong->turret_left = 1; + }else{ + henglong->turret_left = 0; } + } + if(20==event.code){ + if(event.value){ + henglong->turretelev = 1; + }else{ + henglong->turretelev = 0; + } + } + if(19==event.code){ + if(event.value){ + henglong->recoil = 1; + }else{ + henglong->recoil = 0; + } + } return values2data(henglong->velocity, henglong->direction, henglong->ignation, henglong->mg, henglong->fire, henglong->turretelev, henglong->turret_left, henglong->turret_right, henglong->recoil); } diff --git a/henglong.h b/henglong.h index 9dbdd03..9adf154 100644 --- a/henglong.h +++ b/henglong.h @@ -2,12 +2,16 @@ #define HENGLONG_H_INCLUDED #include +#include +#include typedef struct henglong_t { int velocity, direction; int ignation, mg, fire, turretelev, turret_left, turret_right, recoil; + uint8_t clisel; + unsigned char servoff; } henglong_t; int CRC(int data); diff --git a/main.c b/main.c index 01a07d4..35dba46 100644 --- a/main.c +++ b/main.c @@ -16,7 +16,6 @@ #include #include #include -#include #include #define __STDC_FORMAT_MACROS #include @@ -90,6 +89,8 @@ void *refl_thread_fcn(void* arg) unsigned char recvline[64]; uint16_t frame_nbr_refl; refl_thread_args_t* refl_thread_args_ptr; + uint8_t clinbr, clisel; + unsigned char servoff; printf("pthread refl started\n"); refl_thread_args_ptr = (refl_thread_args_t*) arg; @@ -108,7 +109,10 @@ void *refl_thread_fcn(void* arg) for(i=0;i<4;i++){ frame_refl |= recvline[i+10] << i*8; } - printf("REFL FRAME -- FRM_NBR: %5d, RTT: %7" PRIu64 ", BYTES recv: %3d, REFL_FRM: %#x\n", frame_nbr_refl, get_us() - time_us_refl, n, frame_refl); + clinbr = recvline[14]; + clisel = recvline[15]; + servoff = recvline[16]; + printf("REFL FRAME -- FRM_NBR: %5d, RTT: %7" PRIu64 ", BYTES recv: %3d, REFL_FRM: %#x, CLINBR: %d, CLISEL: %d, SERVOFF: %d\n", frame_nbr_refl, get_us() - time_us_refl, n, frame_refl, clinbr, clisel, servoff); refl_thread_args_ptr->timestamps[frame_nbr_refl % refl_thread_args_ptr->timeout] = 0; } pthread_exit(0); @@ -121,6 +125,7 @@ typedef struct henglongconf_t in_addr_t ip; // v4 only uint16_t port; uint8_t timeout; + uint8_t clinbr; } henglongconf_t; henglongconf_t getconfig(char* conffilename) @@ -154,6 +159,9 @@ henglongconf_t getconfig(char* conffilename) if(0==strcmp(parameter,"TIMEOUT")){ sscanf(value, "%" SCNu8 , &conf.timeout); } + if(0==strcmp(parameter,"CLINBR")){ + sscanf(value, "%" SCNu8 , &conf.clinbr); + } } return conf; } @@ -175,6 +183,12 @@ int main(int argc, char* argv[]) uint64_t time_us; henglongconf_t conf; + + if(2!=argc){ + printf("\nThis program is intented to be run on the PC as client to control the server on the heng long tank. \n\n USAGE: UDPclient client.config\n\n Copyright (C) 2014 Stefan Helmert \n\n"); + return 0; + } + inithenglong(&hl1); @@ -220,10 +234,13 @@ int main(int argc, char* argv[]) for(i=0;i<4;i++){ sendline[i+10] = (frame >> i*8) & 0xFF; } + sendline[14] = conf.clinbr; + sendline[15] = hl1.clisel; + sendline[16] = hl1.servoff; - n_send = sendto(sockfd, sendline, 16, 0, (struct sockaddr *)&servaddr, sizeof(servaddr)); + n_send = sendto(sockfd, sendline, 32, 0, (struct sockaddr *)&servaddr, sizeof(servaddr)); - printf("SEND FRAME -- FRM_NBR: %5d, BYTES send: %3d, SEND_FRM: %#x\n", frame_nbr, n_send, frame); + printf("SEND FRAME -- FRM_NBR: %5d, BYTES send: %3d, SEND_FRM: %#x, CLINBR: %d, CLISEL: %d, SERVOFF: %d\n", frame_nbr, n_send, frame, conf.clinbr, hl1.clisel, hl1.servoff); if(pthread_kill(inpthread, 0)) break; } diff --git a/obj/Debug/henglong.o b/obj/Debug/henglong.o index bf0af531d5194ea6db36a9887322a4d13ab157be..1b6ee4c5f38533033b33fa399a23878e139c8055 100644 GIT binary patch literal 7944 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 delta 6281 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 V(vH!qDZGd#4tb63RB*YF{|BgEj@SSI