WIZwiki-W7500 - 100 sampling alternating sector 50Hz and graphics Flot

Dependencies:   SDFileSystem STATIC_COLORS WIZnetInterface mbed

Fork of WIZwiki-W7500_ADC by FOURNET Olivier

Files at this revision

API Documentation at this revision

Comitter:
Fo170
Date:
Sat Jul 09 23:19:27 2016 +0000
Parent:
1:4853006cf179
Child:
3:cc86b144837b
Commit message:
WIZwiki-W7500 (100 sampling alternation of 50Hz sector and graphics Flot interactivity)

Changed in this revision

WIZwiki_W7500_Interactivity_css.h Show annotated file Show diff for this revision Revisions of this file
WIZwiki_W7500_Interactivity_js.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WIZwiki_W7500_Interactivity_css.h	Sat Jul 09 23:19:27 2016 +0000
@@ -0,0 +1,103 @@
+
+void CSS(void)
+{
+ printf_send_client("<style>\r\n");
+ printf_send_client("* { padding: 0; margin: 0; vertical-align: top; }\r\n");
+
+ printf_send_client("body {\r\n");
+    printf_send_client("background: url(background.png) repeat-x;\r\n");
+    printf_send_client("font: 18px/1.5em \"proxima-nova\", Helvetica, Arial, sans-serif;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("a { color: #069; }\r\n");
+ printf_send_client("a:hover { color: #28b; }\r\n");
+
+ printf_send_client("h2 {\r\n");
+    printf_send_client("margin-top: 15px;\r\n");
+    printf_send_client("font: normal 32px \"omnes-pro\", Helvetica, Arial, sans-serif;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("h3 {\r\n");
+    printf_send_client("margin-left: 30px;\r\n");
+    printf_send_client("font: normal 26px \"omnes-pro\", Helvetica, Arial, sans-serif;\r\n");
+    printf_send_client("color: #666;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("p {\r\n");
+    printf_send_client("margin-top: 10px;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("button {\r\n");
+    printf_send_client("font-size: 18px;\r\n");
+    printf_send_client("padding: 1px 7px;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("input {\r\n");
+    printf_send_client("font-size: 18px;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("input[type=checkbox] {\r\n");
+    printf_send_client("margin: 7px;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("#header {\r\n");
+    printf_send_client("position: relative;\r\n");
+    printf_send_client("width: 900px;\r\n");
+    printf_send_client("margin: auto;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("#header h2 {\r\n");
+    printf_send_client("margin-left: 10px;\r\n");
+    printf_send_client("vertical-align: middle;\r\n");
+    printf_send_client("font-size: 42px;\r\n");
+    printf_send_client("font-weight: bold;\r\n");
+    printf_send_client("text-decoration: none;\r\n");
+    printf_send_client("color: #000;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("#content {\r\n");
+    printf_send_client("width: 880px;\r\n");
+    printf_send_client("margin: 0 auto;\r\n");
+    printf_send_client("padding: 10px;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("#footer {\r\n");
+    printf_send_client("margin-top: 25px;\r\n");
+    printf_send_client("margin-bottom: 10px;\r\n");
+    printf_send_client("text-align: center;\r\n");
+    printf_send_client("font-size: 12px;\r\n");
+    printf_send_client("color: #999;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client(".demo-container {\r\n");
+    printf_send_client("box-sizing: border-box;\r\n");
+    printf_send_client("width: 850px;\r\n");
+    printf_send_client("height: 450px;\r\n");
+    printf_send_client("padding: 20px 15px 15px 15px;\r\n");
+    printf_send_client("margin: 15px auto 30px auto;\r\n");
+    printf_send_client("border: 1px solid #ddd;\r\n");
+    printf_send_client("background: #fff;\r\n");
+    printf_send_client("background: linear-gradient(#f6f6f6 0, #fff 50px);\r\n");
+    printf_send_client("background: -o-linear-gradient(#f6f6f6 0, #fff 50px);\r\n");
+    printf_send_client("background: -ms-linear-gradient(#f6f6f6 0, #fff 50px);\r\n");
+    printf_send_client("background: -moz-linear-gradient(#f6f6f6 0, #fff 50px);\r\n");
+    printf_send_client("background: -webkit-linear-gradient(#f6f6f6 0, #fff 50px);\r\n");
+    printf_send_client("box-shadow: 0 3px 10px rgba(0,0,0,0.15);\r\n");
+    printf_send_client("-o-box-shadow: 0 3px 10px rgba(0,0,0,0.1);\r\n");
+    printf_send_client("-ms-box-shadow: 0 3px 10px rgba(0,0,0,0.1);\r\n");
+    printf_send_client("-moz-box-shadow: 0 3px 10px rgba(0,0,0,0.1);\r\n");
+    printf_send_client("-webkit-box-shadow: 0 3px 10px rgba(0,0,0,0.1);\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client(".demo-placeholder {\r\n");
+    printf_send_client("width: 100%;\r\n");
+    printf_send_client("height: 100%;\r\n");
+    printf_send_client("font-size: 14px;\r\n");
+    printf_send_client("line-height: 1.2em;\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client(".legend table {\r\n");
+    printf_send_client("border-spacing: 5px;\r\n");
+ printf_send_client("}\r\n");
+ printf_send_client("</style>\r\n");
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WIZwiki_W7500_Interactivity_js.h	Sat Jul 09 23:19:27 2016 +0000
@@ -0,0 +1,110 @@
+void init_WIZwiki_W7500_Interactivity_JS(void)
+{
+sprintf(httpHeader,"<link href=\"" __hebergement__ "electronique/e/WIZwiki-W7500/css/WIZwiki-W7500_Interactivity.css\" rel=\"stylesheet\" type=\"text/css\">\r\n");
+client.send(httpHeader,strlen(httpHeader));
+
+sprintf(httpHeader,"<!--[if lte IE 8]><script language=\"javascript\" type=\"text/javascript\" src=\"" __hebergement__ "js/flot/excanvas.min.js\"></script><![endif]-->\r\n");
+client.send(httpHeader,strlen(httpHeader));
+
+sprintf(httpHeader,"<script language=\"javascript\" type=\"text/javascript\" src=\"" __hebergement__ "js/jquery.js\"></script>\r\n");
+client.send(httpHeader,strlen(httpHeader));
+
+sprintf(httpHeader,"<script language=\"javascript\" type=\"text/javascript\" src=\"" __hebergement__ "js/flot/jquery.flot.js\"></script>\r\n");
+client.send(httpHeader,strlen(httpHeader));
+/*
+sprintf(httpHeader,"<script language=\"javascript\" type=\"text/javascript\" src=\"" __hebergement__ "electronique/e/WIZwiki-W7500/js/WIZwiki-W7500_Interactivity_fct.js\"></script>");
+client.send(httpHeader,strlen(httpHeader));*/
+}
+
+void WIZwiki_W7500_Interactivity_div(void)
+{
+ printf_send_client("<p>\r\n");
+ printf_send_client("<div id=\"header\"><h2>Interactivity</h2></div>\r\n");
+ printf_send_client("<div id=\"content\">\r\n");
+ printf_send_client("<div class=\"demo-container\"><div id=\"placeholder\" class=\"demo-placeholder\"></div></div>\r\n");
+ printf_send_client("<p>X : Time (s) , Y : Vmoy (V)<p>One of the goals of Flot is to support user interactions. Try pointing and clicking on the points.</p><p>\r\n");
+ printf_send_client("<label><input id=\"enablePosition\" type=\"checkbox\" checked=\"checked\"></input>Show mouse position</label>\r\n");
+ printf_send_client("<span id=\"hoverdata\"></span>\r\n");
+ printf_send_client("<span id=\"clickdata\"></span>\r\n");
+ printf_send_client("</p>\r\n");
+ printf_send_client("<p>A tooltip is easy to build with a bit of jQuery code and the data returned from the plot.</p>\r\n");
+ printf_send_client("<p><label><input id=\"enableTooltip\" type=\"checkbox\" checked=\"checked\"></input>Enable tooltip</label></p>\r\n");
+ printf_send_client("</div>\r\n");
+ printf_send_client("<div id=\"footer\">&nbsp;Copyright &copy; 2007 - 2014 IOLA and Ole Laursen</div>\r\n");
+ printf_send_client("<p>\r\n");
+}
+
+void WIZwiki_W7500_Interactivity_JS(void)
+{
+/*
+sprintf(httpHeader,"<script language=\"javascript\" type=\"text/javascript\" src=\"" __hebergement__ "electronique/e/WIZwiki-W7500/js/WIZwiki-W7500_Interactivity_fct.js\"></script>");
+client.send(httpHeader,strlen(httpHeader));*/
+printf_send_client("<script language=\"javascript\" type=\"text/javascript\">\r\n");
+
+ printf_send_client("$(function() {\r\n");
+
+ printf_send_client("var plot = $.plot(\"#placeholder\",\r\n");
+ printf_send_client("[\r\n");
+ printf_send_client("{ data: array_value, label: label_Y, color: color_Y }\r\n");
+ printf_send_client("],\r\n");
+ printf_send_client("{\r\n");
+ printf_send_client("series: {\r\n");
+ printf_send_client("lines: { show: true },\r\n");
+ printf_send_client("points: { show: true }\r\n");
+ printf_send_client("},\r\n");
+ printf_send_client("grid: { hoverable: true, clickable: true },\r\n");
+ printf_send_client("xaxis: { min: x_min, max: x_max },\r\n");
+ printf_send_client("yaxis: { min: y_min, max: y_max }\r\n");
+ printf_send_client("});\r\n");
+
+ printf_send_client("$(\"<div id='tooltip'></div>\").css({\r\n");
+ printf_send_client("position: \"absolute\",\r\n");
+ printf_send_client("border: \"1px solid #fdd\",\r\n");
+ printf_send_client("padding: \"2px\",\r\n");
+ printf_send_client("\"background-color\": \"#fee\",\r\n");
+ printf_send_client("opacity: 0.80\r\n");
+ printf_send_client("}).appendTo(\"body\");\r\n");
+
+ printf_send_client("$(\"#placeholder\").bind(\"plothover\", function (event, pos, item)\r\n");
+ printf_send_client("{\r\n");
+
+ printf_send_client("if($(\"#enablePosition:checked\").length > 0)\r\n");
+ printf_send_client("{\r\n");
+ printf_send_client("var str = \"(\" + pos.x.toFixed(2) + \", \" + pos.y.toFixed(2) + \")\";\r\n");
+ printf_send_client("$(\"#hoverdata\").text(str);\r\n");
+ printf_send_client("}\r\n");
+
+ printf_send_client("if($(\"#enableTooltip:checked\").length > 0)\r\n");
+ printf_send_client("{\r\n");
+ printf_send_client("if(item)\r\n");
+ printf_send_client("{\r\n");
+ printf_send_client("var x = item.datapoint[0].toFixed(2),\r\n");
+ printf_send_client("y = item.datapoint[1].toFixed(2);\r\n");
+
+ printf_send_client("$(\"#tooltip\").html(item.series.label + \" of \" + x + \" = \" + y)\r\n");
+ printf_send_client(".css({top: item.pageY+5, left: item.pageX+5})\r\n");
+ printf_send_client(".fadeIn(200);\r\n");
+ printf_send_client("}\r\n");
+ printf_send_client("else\r\n");
+ printf_send_client("{\r\n");
+ printf_send_client("$(\"#tooltip\").hide();\r\n");
+ printf_send_client("}\r\n");
+ printf_send_client("}\r\n");
+ printf_send_client("});\r\n");
+
+ printf_send_client("$(\"#placeholder\").bind(\"plotclick\", function (event, pos, item)\r\n");
+ printf_send_client("{\r\n");
+ printf_send_client("if(item)\r\n");
+ printf_send_client("{\r\n");
+ printf_send_client("$(\"#clickdata\").text(\" - click point \" + item.dataIndex + \" in \" + item.series.label);\r\n");
+ printf_send_client("plot.highlight(item.series, item.datapoint);\r\n");
+ printf_send_client("}\r\n");
+ printf_send_client("});\r\n");
+
+ printf_send_client("// Add the Flot version string to the footer\r\n");
+
+ printf_send_client("$(\"#footer\").prepend(\"( http://www.flotcharts.org/flot/examples ) Flot \" + $.plot.version + \" &ndash;\");\r\n");
+ printf_send_client("});\r\n");
+ 
+ printf_send_client("</script>\r\n");
+}
\ No newline at end of file
--- a/main.cpp	Sat Jul 09 20:03:39 2016 +0000
+++ b/main.cpp	Sat Jul 09 23:19:27 2016 +0000
@@ -63,37 +63,105 @@
 #define __IP_LOCAL__           IP
 #define  __hebergement__                  "http://olivier.fournet.free.fr/"
 #define  __Time_between_page_refresh__    "1"
+//#include <hebergement.h>
 
 int refresh = 1; // 1 second refresh
 
-#define NB_SAMPLES    10
-unsigned long int Sample = 0;
-float adc_samples[NB_SAMPLES];// = { 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.01,1.02,1.03,1.04 };
-float time_samples[NB_SAMPLES];// = { -0.1,2,3,4,5,6,7,8,9,10,11,12,13,14 };
+#define NB_SAMPLES_GPH    10
+unsigned long int Sample_gph = 0;
+float adc_samples[NB_SAMPLES_GPH];// = { 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.01,1.02,1.03,1.04 };
+float time_samples[NB_SAMPLES_GPH];// = { -0.1,2,3,4,5,6,7,8,9,10,11,12,13,14 };
 float x_min = 0.0, x_max = 0.0;
 float y_min = 0.0, y_max = 0.0;
 float Seconds = 0.0;
-float meas = 0.0;
+//float meas = 0.0;
 
 //------------
 #define      __Time_tic_in_Second__      0.1
 
 Ticker time_tic;
 
+//------------
+
+#define FREQUENCE_SECTEUR             50
+#define NB_SAMPLES_PAR_OSCILLATION    100
+#define NB_SAMPLES                    5000   // FREQUENCE_SECTEUR * NB_SAMPLES_PAR_OSCILLATION
+#define TIME_SAMPLES_us               200    // 1000000 / NB_SAMPLES
+unsigned long int Samples = 0;
+
+float time_between_two_measurement_ADC = 0.0;
+float meas, meas_sum, meas_moy, meas_min, meas_max;
+float vdc, vdc_min, vdc_max;
+float vac, pow2_vac, sum_pow2_vac, veff;
+
+Ticker time_measurement_ADC;
+
+void measurement_ADC(void)
+{
+ float meas_moy_t, veff_t; // valeurs temporaires
+ 
+    meas = 3.3 * ain0.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
+    //wait_us(10);
+    meas_sum += meas;
+    if(meas_min > meas) meas_min = meas;
+    if(meas_max < meas) meas_max = meas;
+
+    vac = meas - 1.650; // 0V AC = 3,3V/2
+    pow2_vac = vac * vac; // valeur VAC au carré
+    sum_pow2_vac += pow2_vac; // somme des valeurs AC au carré
+
+    Samples++;
+
+    if( Samples == NB_SAMPLES ) 
+    {
+        // VDC
+        meas_moy_t = meas_sum;
+        meas_moy = meas_moy_t / (float)NB_SAMPLES;
+        // VAC
+        veff_t = sum_pow2_vac;
+        veff_t = veff_t / (float)NB_SAMPLES;
+        veff = sqrt(veff_t);
+
+        Samples = 0;
+        meas_sum = 0.0;
+        vdc_min = meas_min, vdc_max = meas_max;
+        meas_min = 3.3 , meas_max = 0.0;
+        sum_pow2_vac = 0.0;
+    }
+}
+
+void init_ADC_sampling(void)
+{
+ //-------------
+ meas_moy = 0.0;
+ Samples = 0;
+ meas_sum = 0.0;
+ meas_min = 3.3 , meas_max = 0.0;
+ sum_pow2_vac = 0.0;
+ //-----------------
+ // 50 Hz --> 20ms
+ // 100 samples par oscillations = 20 / 100 = 0.2ms = 200µs
+ // 100 samples * 50 oscillations = 5000 samples au total par secondes
+ // interval: 200 micro seconds chaques samples
+ time_measurement_ADC.attach_us(&measurement_ADC, TIME_SAMPLES_us);   
+}
+//------------
+
 void add_one_tic()
 {       
  int i;
  
  Seconds = Seconds + (float)__Time_tic_in_Second__;
  
- // mesures ADC
+ // mesures ADC  --> measurement_ADC();
+ /*
     meas = ain0.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
-    meas = meas * 3300.0; // Change the value to be in the 0 to 3300 range
-    
+    meas = meas * 3.3; // Change the value to be in the 0 to 3300 range
+  */  
     x_min = x_max = Seconds;
-    y_min = y_max = meas;
+    y_min = y_max = meas_moy; //meas;
                     
-    for(i = 1 ; i < NB_SAMPLES ; i++)
+    for(i = 1 ; i < NB_SAMPLES_GPH ; i++)
     {
      time_samples[i-1] = time_samples[i];
      adc_samples[i-1] = adc_samples[i];
@@ -103,14 +171,13 @@
      if( adc_samples[i] > y_max ) y_max = adc_samples[i];
     }
 
-    adc_samples[NB_SAMPLES-1] = meas;
-    time_samples[NB_SAMPLES-1] = Seconds;
+    adc_samples[NB_SAMPLES_GPH-1] = meas_moy; //meas;
+    time_samples[NB_SAMPLES_GPH-1] = Seconds;
 }
 //------------
 
 Ticker ledTick;
 
-//char str[] = "This is a sample string";
 char *pch;
 char ext[5];
 char ext_gif[] = "gif";
@@ -132,11 +199,12 @@
  client.send(http_send,strlen(http_send));
 }
 
+#include "WIZwiki_W7500_Interactivity_css.h"
+#include "WIZwiki_W7500_Interactivity_js.h"
+
 void variables(void)
 {
  printf_send_client("<SCRIPT script language=\"javascript\" type=\"text/javascript\">\r\n");
- /*sprintf(httpHeader,"<SCRIPT script language=\"javascript\" type=\"text/javascript\">\r\n");
- client.send(httpHeader,strlen(httpHeader));*/
  
  a0_f = ain0.read()*3.3;
  sprintf(httpHeader,"A0 = %3.3f;\r\n", a0_f);
@@ -155,8 +223,6 @@
  client.send(httpHeader,strlen(httpHeader));
  
  printf_send_client("</SCRIPT>\r\n");
- /*sprintf(httpHeader,"</SCRIPT>\r\n");
- client.send(httpHeader,strlen(httpHeader));  */  
 }
 
 void ETAT(void)
@@ -165,45 +231,32 @@
   
   // httpHeader
   printf_send_client("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: Close\r\n\r\n");
-  /*sprintf(httpHeader,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: Close\r\n\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
             
   // Début page Web
   printf_send_client("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n");
-  /*sprintf(httpHeader,"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
   // meta_refresh
-  //sprintf(httpHeader,"%s",str_meta_refresh);
   sprintf(httpHeader,"<meta http-equiv=\"refresh\" content=\"" __Time_between_page_refresh__ ";url=http://%s/\">\r\n", eth.getIPAddress() );
   //sprintf(httpHeader,"<meta http-equiv=\"refresh\" content=\"1;url=http://%s/\">\r\n", eth.getIPAddress() );
   //sprintf(httpHeader,"<meta http-equiv=\"refresh\" content=\"%u;url=http://%s/\">\r\n", refresh, eth.getIPAddress() );
   client.send(httpHeader,strlen(httpHeader));
   
   printf_send_client("<html><head>\r\n");
-  /*sprintf(httpHeader,"<html><head>\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
   // title
   printf_send_client("<title>WIZwiki-W7500 - Flot Examples: Interactivity</title>\r\n");
-  /*sprintf(httpHeader,"<title>WIZwiki-W7500 - Flot Examples: Interactivity</title>\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
-  // JavaScript Interactivity  
-  sprintf(httpHeader,"<script language=\"javascript\" type=\"text/javascript\" src=\"" __hebergement__ "electronique/e/WIZwiki-W7500/js/WIZwiki-W7500_Interactivity_init.js\"></script>\r\n");
+  // CSS
+  CSS();
+  // JavaScript Interactivity
+  init_WIZwiki_W7500_Interactivity_JS();
+  WIZwiki_W7500_Interactivity_JS(); 
+  /*sprintf(httpHeader,"<script language=\"javascript\" type=\"text/javascript\" src=\"" __hebergement__ "electronique/e/WIZwiki-W7500/js/WIZwiki-W7500_Interactivity_init.js\"></script>\r\n");
   client.send(httpHeader,strlen(httpHeader));
-  
-  printf_send_client("<script language=\"javascript\" type=\"text/javascript\">init_WIZwiki_W7500_Interactivity();</script>\r\n");
-  /*sprintf(httpHeader,"<script language=\"javascript\" type=\"text/javascript\">init_WIZwiki_W7500_Interactivity();</script>\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
+  */
+  //printf_send_client("<script language=\"javascript\" type=\"text/javascript\">init_WIZwiki_W7500_Interactivity();</script>\r\n");
   
   // Variables JavaScript
   printf_send_client("<script language=\"javascript\" type=\"text/javascript\">\r\n");
-  /*sprintf(httpHeader,"<script language=\"javascript\" type=\"text/javascript\">\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
   printf_send_client("var color_Y = \"#FF0000\";\r\n");
-  /*sprintf(httpHeader,"var color_Y = \"#FF0000\";\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
-  printf_send_client("var label_Y = \"Adc(mV)\";\r\n");
-  /*sprintf(httpHeader,"var label_Y = \"Adc(mV)\";\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
+  printf_send_client("var label_Y = \"Meas Moy (V)\";\r\n");
   // sprintf(httpHeader, "var x_min = -0.5, x_max =  14.5, y_min = -0.5, y_max =  1.5;\r\n"); // TEST
   sprintf(httpHeader, "var x_min = %.1f, x_max = %.1f, y_min = %.1f, y_max = %.1f;\r\n", x_min, x_max, y_min, y_max);
   client.send(httpHeader,strlen(httpHeader));
@@ -211,81 +264,69 @@
   // sprintf(httpHeader, "var array_value = [[-0.1,0.1],[2,0.2],[3,0.3],[4,0.4],[5,0.5],[6,0.6],[7,0.7],[8,0.8],[9,0.9],[10,1],[11,1.01],[12,1.02],[13,1.03],[14,1.04]];\r\n"); // TEST
   // client.send(httpHeader,strlen(httpHeader));  // TEST
   
-  if(Sample > NB_SAMPLES)
+  if(Sample_gph > NB_SAMPLES_GPH)
     {
      printf_send_client("var array_value = [");
-     /*sprintf(httpHeader,"var array_value = [");
-     client.send(httpHeader,strlen(httpHeader));*/
-     for(i = 0 ; i < NB_SAMPLES ; i++)
+
+     for(i = 0 ; i < NB_SAMPLES_GPH ; i++)
      {
-      if(i < NB_SAMPLES) sprintf(httpHeader, "[%.1f,%.1f],", time_samples[i], adc_samples[i]);
+      if(i < NB_SAMPLES_GPH-1) sprintf(httpHeader, "[%.1f,%.1f],", time_samples[i], adc_samples[i]);
       else sprintf(httpHeader, "[%.1f,%.1f]", time_samples[i], adc_samples[i]);
       client.send(httpHeader,strlen(httpHeader));
      }
      printf_send_client("];\r\n");
-     /*sprintf(httpHeader,"];\r\n");
-     client.send(httpHeader,strlen(httpHeader));*/
     }
     
-    Sample++;
+    Sample_gph++;
     printf_send_client("</script>\r\n");
-    /*sprintf(httpHeader,"</script>\r\n");
-    client.send(httpHeader,strlen(httpHeader));*/
     
     // <SCRIPT>
     variables();
     // <FIN SCRIPT>
     // Fin Variable JavaScript
     printf_send_client("</head><body><center>\r\n");
-  /*sprintf(httpHeader,"</head><body><center>\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
             
   sprintf(httpHeader,"<h2>WIZwiki-W7500 - mBED</h2> ( Compiled at : %s and %s )<p>\r\n",  __DATE__ , __TIME__);
-  //sprintf(httpHeader,"<h2>WIZwiki-W7500 - mBED</h2><p>\r\n");
   client.send(httpHeader,strlen(httpHeader));
-  
+   
   printf_send_client("<p>(<a href=\"http://www.flotcharts.org/flot/examples/interacting/index.html\">Flot Examples: Interactivity</a>)<p>\r\n");
-  /*sprintf(httpHeader,"<p>(<a href=\"http://www.flotcharts.org/flot/examples/interacting/index.html\">Flot Examples: Interactivity</a>)<p>\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
   
   printf_send_client("ETAT :<p>\r\n");
-  /*sprintf(httpHeader,"ETAT :<p>\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
   
   sprintf(httpHeader,"IP: %s, MASK: %s, GW: %s<p>\r\n",
                       eth.getIPAddress(), eth.getNetworkMask(), eth.getGateway());
   client.send(httpHeader,strlen(httpHeader));
   
-  //sprintf(httpHeader,"&tilde;A0 :<script>document.write(A0);</script>V<br>\r\n");
-  sprintf(httpHeader,"&tilde;A0 : %3.3fV<br>\r\n", a0_f);
+  sprintf(httpHeader,"&tilde;A0 : %3.3fV , \r\n", a0_f);
   client.send(httpHeader,strlen(httpHeader));
             
-  //sprintf(httpHeader,"&tilde;A1 :<script>document.write(A1);</script>V<br>\r\n");
-  sprintf(httpHeader,"&tilde;A1 : %3.3fV<br>\r\n", a1_f);
+  sprintf(httpHeader,"&tilde;A1 : %3.3fV , \r\n", a1_f);
   client.send(httpHeader,strlen(httpHeader));
             
-  //sprintf(httpHeader,"&tilde;A2 :<script>document.write(A2);</script>V<br>\r\n");
-  sprintf(httpHeader,"&tilde;A2 : %3.3fV<br>\r\n", a2_f);
+  sprintf(httpHeader,"&tilde;A2 : %3.3fV , \r\n", a2_f);
   client.send(httpHeader,strlen(httpHeader));
             
-  //sprintf(httpHeader,"&tilde;A3 :<script>document.write(A3);</script>V<p>\r\n");
-  sprintf(httpHeader,"&tilde;A3 : %3.3fV<br>\r\n", a3_f);
-  client.send(httpHeader,strlen(httpHeader));
-  
-  sprintf(httpHeader, "Time : %.1f Seconds - Sample : %u<p>\r\n", Seconds, Sample);// diplays the human readable Seconds
+  sprintf(httpHeader,"&tilde;A3 : %3.3fV<p>\r\n", a3_f);
   client.send(httpHeader,strlen(httpHeader));
   
-  printf_send_client("<p><script language=\"javascript\" type=\"text/javascript\">WIZwiki_W7500_Interactivity();</script><p>\r\n");
-  /*sprintf(httpHeader,"<p><script language=\"javascript\" type=\"text/javascript\">WIZwiki_W7500_Interactivity();</script><p>\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
+  sprintf(httpHeader, "ADC (A0) :<p>DC : %.3fVmoy ( sum : %.3f - Samples : %u )<br>\r\n", meas_moy, meas_sum, Samples);
+  client.send(httpHeader,strlen(httpHeader));
+    
+  sprintf(httpHeader, "DC (0 &agrave; 3,3V) : %.3fVmin,   %.3fVmax , Vdiff : %.0fmV<br>\r\n", vdc_min, vdc_max, 1000.0*(vdc_max - vdc_min));
+  client.send(httpHeader,strlen(httpHeader));
+    
+  sprintf(httpHeader, "AC (-1,65V &agrave; 1,65V) : %.3fVeff<p>\r\n", veff);
+  client.send(httpHeader,strlen(httpHeader));
   
-  printf_send_client("<p><a href=\"..\">Root</a>\r\n");
-  /*sprintf(httpHeader,"<p><a href=\"..\">Root</a>\r\n");
-  client.send(httpHeader,strlen(httpHeader));*/
+  sprintf(httpHeader, "Time : %.1f Seconds - Sample Graphique : %u<p>\r\n", Seconds, Sample_gph);// diplays the human readable Seconds
+  client.send(httpHeader,strlen(httpHeader));
   
-  printf_send_client("</center></body></html>\r\n");        
-  /*sprintf(httpHeader,"</center></body></html>\r\n");
-  client.send(httpHeader,strlen(httpHeader)); */        
+  WIZwiki_W7500_Interactivity_div();
+  //printf_send_client("<p><script language=\"javascript\" type=\"text/javascript\">WIZwiki_W7500_Interactivity();</script><p>\r\n");
+  
+  printf_send_client("<p><p><a href=\"..\">Root</a>\r\n");
+  
+  printf_send_client("</center></body></html>\r\n");               
 }
 
 //--------------------------------------------
@@ -295,7 +336,10 @@
     // initialisation des variables
  int i;
  
- for(i = 0 ; i < NB_SAMPLES ; i++)
+ init_ADC_sampling();
+ //-----------------
+ 
+ for(i = 0 ; i < NB_SAMPLES_GPH ; i++)
  {
       time_samples[i] = 0;
       adc_samples[i] = 0.0;