]> git.zerfleddert.de Git - rigol/blobdiff - rigold.c
export data through webinterface
[rigol] / rigold.c
index d8e4b19486526a4d7bdff680fdebef88ba020d9a..955975a0a1d1ab2539a5bc48202cc4bdb7c2f168 100644 (file)
--- a/rigold.c
+++ b/rigold.c
@@ -192,6 +192,16 @@ static void serve_index(int s, struct scope *sc, char *param)
                sc->status.timebase.scale,
                sc->status.timebase.format);
 
+       send_text(s, "<br>Math: Math Displayed: %d, FFT Displayed: %d<br>\n",
+               sc->status.math.displayed,
+               sc->status.fft.displayed);
+
+       send_text(s, "<br>Data: ");
+       send_text(s, "<a href=\"/cgi-bin/data?CHAN1\">Channel 1</a> ");
+       send_text(s, "<a href=\"/cgi-bin/data?CHAN2\">Channel 2</a> ");
+       send_text(s, "<a href=\"/cgi-bin/data?DIG\">Digital</a> ");
+       send_text(s, "<a href=\"/cgi-bin/data?MATH\">Math</a> ");
+       send_text(s, "<a href=\"/cgi-bin/data?FFT\">FFT</a><br>");
 
        send_text(s, "<br>\n");
        send_text(s, "<form method=\"get\" action=\"\">\n");
@@ -246,6 +256,28 @@ static void serve_lcd(int s, struct scope *sc)
        free(png);
 }
 
+static void serve_data(int s, struct scope *sc, char *source)
+{
+       char *data;
+       int len;
+       int i;
+
+       send_text(s, "HTTP/1.0 200 OK\n");
+       send_text(s, "Content-type: text/plain\n\n");
+
+       claimscope(sc);
+       data = scope_get_data(sc, source, &len);
+       releasescope(sc);
+
+       if (data != NULL) {
+               for (i = 0; i < (len-1); i++) {
+                       send_text(s, "%d,", data[i]);
+               }
+               send_text(s, "%d", data[len-1]);
+               free(data);
+       }
+}
+
 static void serve_404(int s)
 {
        send_text(s, "HTTP/1.0 404 Not found\n");
@@ -346,6 +378,8 @@ static void parse_request(int s, struct scope *sc)
                serve_index(s, sc, param);
        } else if (strcmp("/cgi-bin/lcd", file) == 0) {
                serve_lcd(s, sc);
+       } else if (strcmp("/cgi-bin/data", file) == 0) {
+               serve_data(s, sc, param);
        } else {
                serve_404(s);
        }
Impressum, Datenschutz