From 7cc708c0fdc37a575698263a5aba6491358b8250 Mon Sep 17 00:00:00 2001 From: tth Date: Sat, 17 Oct 2020 00:53:45 +0200 Subject: [PATCH] update du couvre-feu --- specific/README.md | 10 ++++++++++ specific/joy2laser.c | 5 ++++- specific/laserblast.c | 26 ++++++++++++++++++++++---- specific/laserblast.h | 1 + 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/specific/README.md b/specific/README.md index a6083a1..dd56004 100644 --- a/specific/README.md +++ b/specific/README.md @@ -26,3 +26,13 @@ défini par la teamlaser. Hélas, le soft de Sam n'étant pas très stable, ce l n'a pas été vraiment testé sur le système réel. +``` + vos lasers, la déviation elle se fait à quelle fréquence maxi ? + plop + voila une reponse si j'ai bien compris la question. + Le plus rapide de nos lasers peut tracer 30 000 pts /sec avec un angle max de 8° + Apres si tu traces que 2 points plus proches que 8° le nombre d'oscillations va etre plus elevé evidement puisqu'il faudra moins de tps pour aller au pts suivant puisqu'il est plus pres. + en resumé la frequence maxi est inversement proportionnelle a la deviation. + plus tu devies plus ca va etre long a tracer donc plus la frequence baisse. +``` + diff --git a/specific/joy2laser.c b/specific/joy2laser.c index c5563cd..83b0124 100644 --- a/specific/joy2laser.c +++ b/specific/joy2laser.c @@ -121,7 +121,10 @@ if (verbosity) { } foo = blast_init(remote_host, remote_port, scenenumber, lasernumber); - +if (foo) { + fprintf(stderr, "blast init error : %d\n", foo); + exit(1); + } st = lo_server_thread_new(local_port, error); lo_server_thread_add_method(st, "/joystick/xy", "ii", xy_handler, NULL); diff --git a/specific/laserblast.c b/specific/laserblast.c index f547d6a..6775d33 100644 --- a/specific/laserblast.c +++ b/specific/laserblast.c @@ -19,12 +19,17 @@ static char big_buffer[BUFF_SIZE+2]; static int curpos; static int la_scene, le_laser; static lo_address lo_addr; +static int x_scale, y_scale; extern int verbosity; /* ------------------------------------------------------------------- */ int blast_init(char *host, char *port, int scene, int laser) { +#if DEBUG_LEVEL +fprintf(stderr, ">>> %s ( '%s:%p' %d %d )\n", __func__, host, port, + scene, laser); +#endif /* prepare OSC transmission */ lo_addr = lo_address_new(host, port); @@ -33,11 +38,26 @@ if (verbosity) { } la_scene = scene, le_laser = laser; +x_scale = y_scale = 700; /* manage our internals memories */ big_buffer[0] = '\0'; /* clear buffer */ curpos = 0; /* index in buffer */ +return 0; +} +/* ------------------------------------------------------------------- */ +int blast_setscale(int width, int height) +{ +#if DEBUG_LEVEL +fprintf(stderr, ">>> %s ( %d %d )\n", __func__, width, height); +#endif + +/* no validity check ? */ + +x_scale = width; +y_scale = height; + return -1; } /* ------------------------------------------------------------------- */ @@ -61,8 +81,7 @@ int foo, sz; sz = sprintf(buff, "(%.2f, %.2f, %ld),", x, y, col); -if (verbosity > 1) - fprintf(stderr, "%s --> %s\n", __func__, buff); +if (verbosity > 1) fprintf(stderr, "%s --> %s\n", __func__, buff); /* check free space in bigbuffer */ if ( (curpos+sz) > BUFF_SIZE ) { @@ -83,8 +102,7 @@ char buffer[100]; /* we have to kill the last ',' in the big buff before send */ big_buffer[curpos-1] = ']'; big_buffer[curpos] = '\0'; -if (verbosity) - fprintf(stderr, "BLAST %s\n", big_buffer); +if (verbosity) fprintf(stderr, "BLAST %s\n", big_buffer); sprintf(buffer, "/pl/%d/%d", la_scene, le_laser); diff --git a/specific/laserblast.h b/specific/laserblast.h index f80d1be..050dde0 100644 --- a/specific/laserblast.h +++ b/specific/laserblast.h @@ -6,6 +6,7 @@ int blast_init(char *host, char *port, int scene, int laser); int blast_rewind(void); +int blast_setscale(int width, int height); int blast_addpoint(float fx, float fy, long col); int blast_flush(int notused);