#include "scope.h"
#include "usbtmc.h"
+#define DATASIZE 10240
+
+#define COPY_SCOPE_STRING(sc, cmd, dst) { \
+ char *buf; \
+ buf = scope_get_string(sc, cmd, sizeof(dst)); \
+ if (buf) { \
+ strcpy(dst, buf); \
+ free(buf); \
+ }\
+ }
+
/* Just USB for now... */
int sendscpi(struct scope* sc, char* cmd, unsigned char *resp, int resplen)
{
}
claimscope(sc);
- sendscpi(sc, "*IDN?", (unsigned char*)sc->idn, sizeof(sc->idn));
+ COPY_SCOPE_STRING(sc, "*IDN?", sc->idn);
releasescope(sc);
printf("Scope found (%s)\n", sc->idn);
return sc->idn;
}
-#define COPY_SCOPE_STRING(sc, cmd, dst) { \
- char *buf; \
- buf = scope_get_string(sc, cmd, sizeof(dst)); \
- if (buf) { \
- strcpy(dst, buf); \
- free(buf); \
- }\
- }
-
char *scope_get_string(struct scope *sc, char *cmd, int maxlen)
{
unsigned char *buf;
return 0;
}
- printf("%s %s\n", cmd, buf);
-
if (strcasecmp(buf, "on") == 0) {
return 1;
} else if (strcasecmp(buf, "enable") == 0) {
return ret;
}
+char *scope_get_data(struct scope *sc, char *source, int *len)
+{
+ char *data = NULL;
+ char cmd[128];
+
+ if ((data = malloc(DATASIZE)) == NULL) {
+ perror("malloc");
+ return NULL;
+ }
+
+ snprintf(cmd, sizeof(cmd), ":WAV:DATA? %s", source);
+ *len = sendscpi(sc, cmd, (unsigned char*)data, DATASIZE);
+
+ return data;
+}
+
void update_scope_measurements(struct scope *sc)
{
sc->status.measure.ch1.vpp = scope_get_double(sc, ":MEAS:VPP? CHAN1");