]> git.zerfleddert.de Git - rigol/blobdiff - scope.c
add vertical status information
[rigol] / scope.c
diff --git a/scope.c b/scope.c
index 6013893107b34b609c2d3a87351a1fd3096bc197..9b75ba4ef654564d762f1221857dc1c7f9822cd7 100644 (file)
--- a/scope.c
+++ b/scope.c
@@ -198,6 +198,37 @@ void update_scope_measurements(struct scope *sc)
 
 }
 
+void update_scope_channel(struct scope *sc, int channel)
+{
+       struct channel_s *ch;
+       char cmd[128];
+       int offs;
+
+       if (channel == 1) {
+               ch = &(sc->status.channel.ch1);
+               strcpy(cmd, ":CHAN1:");
+       } else if (channel == 2) {
+               ch = &(sc->status.channel.ch2);
+               strcpy(cmd, ":CHAN2:");
+       } else {
+               fprintf(stderr, "Unknown channel %d!\n", channel);
+               return;
+       }
+
+       offs=strlen(cmd);
+
+       strcpy(cmd + offs, "BWL?"); ch->bwlimit_enabled = scope_get_truth_value(sc, cmd);
+       strcpy(cmd + offs, "COUP?"); COPY_SCOPE_STRING(sc, cmd, ch->coupling);
+       strcpy(cmd + offs, "DISP?"); ch->displayed = scope_get_truth_value(sc, cmd);
+       strcpy(cmd + offs, "INV?"); ch->inverted = scope_get_truth_value(sc, cmd);
+       strcpy(cmd + offs, "OFFS?"); ch->offset = scope_get_double(sc, cmd);
+       strcpy(cmd + offs, "PROB?"); ch->probe = scope_get_double(sc, cmd);
+       strcpy(cmd + offs, "SCAL?"); ch->scale = scope_get_double(sc, cmd);
+       strcpy(cmd + offs, "FILT?"); ch->filter_enabled = scope_get_truth_value(sc, cmd);
+       strcpy(cmd + offs, "MEMD?"); ch->memory_depth = scope_get_int(sc, cmd);
+       strcpy(cmd + offs, "VERN?"); COPY_SCOPE_STRING(sc, cmd, ch->vernier);
+}
+
 int update_scope_status(struct scope *sc)
 {
        bzero(&(sc->status), sizeof(sc->status));
@@ -220,6 +251,9 @@ int update_scope_status(struct scope *sc)
        sc->status.display.brightness = scope_get_int(sc, ":DISP:BRIG?");
        sc->status.display.intensity = scope_get_int(sc, ":DISP:INT?");
 
+       update_scope_channel(sc, 1);
+       update_scope_channel(sc, 2);
+
        COPY_SCOPE_STRING(sc, ":ACQ:TYPE?", sc->status.acquire.type);
        COPY_SCOPE_STRING(sc, ":ACQ:MODE?", sc->status.acquire.mode);
 
Impressum, Datenschutz