X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/rigol/blobdiff_plain/9f8a3f5c570aed9489b7536a389badecaac921cd..1574729632acebdcdf8caa025dcb67c6ac3804fc:/scope.c diff --git a/scope.c b/scope.c index 6013893..9b75ba4 100644 --- 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);