summaryrefslogtreecommitdiff
path: root/i/serialplot/serialplot.c
diff options
context:
space:
mode:
Diffstat (limited to 'i/serialplot/serialplot.c')
-rw-r--r--i/serialplot/serialplot.c61
1 files changed, 46 insertions, 15 deletions
diff --git a/i/serialplot/serialplot.c b/i/serialplot/serialplot.c
index 532f128..ec412e2 100644
--- a/i/serialplot/serialplot.c
+++ b/i/serialplot/serialplot.c
@@ -1,5 +1,5 @@
/*TODO : refaire un calcul de moyenne : OK
- * faire un système d'échelle plus lisible
+ * faire un système d'échelle plus lisible : partiellement fait
* intégrer la lecture serie dans le programme : OK
* plus de protection sur l'option t :
*/
@@ -133,7 +133,17 @@ main (int argc, char **argv)
else
fd_input = 0 ;
int melt = 0;
- int vals[8];
+
+ int vals[8]; // valeur à afficher par voies
+ double scale[8]; // facteur d'echelle par voies
+ int position[8]; // position sur la voie
+ int i;
+ for (i=0; i<8;i++)
+ {
+ scale[i] = 1;
+ position[i] = 0;
+ }
+
enum R_stat etat_c = E1;
/* initialisation du select */
@@ -161,6 +171,7 @@ main (int argc, char **argv)
{
if(event.type == SDL_KEYDOWN)
{
+ Uint8 *keystate;
switch (event.key.keysym.sym)
{
case SDLK_ESCAPE:
@@ -170,20 +181,40 @@ main (int argc, char **argv)
case SDLK_m:
melt = !melt;
break;
- case SDLK_a:
- case SDLK_b:
- case SDLK_c:
- case SDLK_d:
- case SDLK_e:
- case SDLK_f:
- case SDLK_g:
- case SDLK_h: printf("abcdefgh\n");
+ case SDLK_KP_MINUS:
+ keystate = SDL_GetKeyState(NULL);
+ if ( keystate[SDLK_F1])
+ scale[0] /=2 ;
+ if ( keystate[SDLK_F2])
+ scale[1] /=2 ;
break;
- default : printf("touche sans fonction\n");
+ case SDLK_KP_PLUS:
+ keystate = SDL_GetKeyState(NULL);
+ if ( keystate[SDLK_F1])
+ scale[0] *=2;
+ if ( keystate[SDLK_F2])
+ scale[1] *=2;
+ break;
+ case SDLK_PAGEUP:
+ keystate = SDL_GetKeyState(NULL);
+ if ( keystate[SDLK_F1])
+ position[0] -=5;
+ if ( keystate[SDLK_F2])
+ position[1] -=5;
+ break;
+ case SDLK_PAGEDOWN:
+ keystate = SDL_GetKeyState(NULL);
+ if ( keystate[SDLK_F1])
+ position[0] +=5;
+ if ( keystate[SDLK_F2])
+ position[1] +=5;
+ break;
+
+ default : //printf("touche sans fonction\n");
break;
}
}
- else if (event.type == SDL_QUIT)
+ if (event.type == SDL_QUIT)
{
quit++;
}
@@ -192,8 +223,8 @@ main (int argc, char **argv)
if (FD_ISSET(fd_input,&fsdcR))
{
if (fgets (input,
- sizeof (input) / sizeof (input[0]),
- FILE_input ))
+ sizeof (input) / sizeof (input[0]),
+ FILE_input ))
{
if (input[0] == '!')
{
@@ -208,7 +239,7 @@ main (int argc, char **argv)
{
int i;
i =conv_Rd_type(etat_lect);
- draw(melt,i,vals);
+ draw(melt,i,vals,scale,position);
draw_inf(i,vals);
nextFrame();
etat_c = E1;