summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <tpearson@raptorengineering.com>2019-08-05 04:58:40 -0500
committerTimothy Pearson <tpearson@raptorengineering.com>2019-08-05 04:58:40 -0500
commitc40a208abbc778da4271485eba06a89d05c69b5e (patch)
tree3e492d54efae965ca882f8bde4e4e724f30e24b8
parentb9302c6da3ffa7afd922aec91b7bf578359936a4 (diff)
downloadulab-master.tar.gz
ulab-master.zip
Explicitly call out the "C" and higher variants of the TDS7x4 scopes, as an updated programming manual was issued for them (distinct from the "A" variants)HEADmaster
Fix reassembly of waveform data on "C" scope variants -- presumed to also fix (or at least not break) "A" variant reassembly, but this remains untested
-rw-r--r--servers/gpib_server_lin/src/gpib_functions.cpp5
-rw-r--r--servers/gpib_server_lin/src/scope_functions.cpp150
2 files changed, 107 insertions, 48 deletions
diff --git a/servers/gpib_server_lin/src/gpib_functions.cpp b/servers/gpib_server_lin/src/gpib_functions.cpp
index e3e3a38..d3e170e 100644
--- a/servers/gpib_server_lin/src/gpib_functions.cpp
+++ b/servers/gpib_server_lin/src/gpib_functions.cpp
@@ -39,6 +39,9 @@ const char * scopeLongDescription (const char * scopeType) {
else if (strcmp("TDS744AOS", scopeType) == 0) {
return "Tektronix 744A series";
}
+ else if (strcmp("TDS744COS", scopeType) == 0) {
+ return "Tektronix 744C series";
+ }
else {
return "UNKNOWN";
}
@@ -128,4 +131,4 @@ int gpib_read_binary(int ud, int max_num_bytes) {
return -1;
}
return 0;
-} \ No newline at end of file
+}
diff --git a/servers/gpib_server_lin/src/scope_functions.cpp b/servers/gpib_server_lin/src/scope_functions.cpp
index 96030c4..33d6ebf 100644
--- a/servers/gpib_server_lin/src/scope_functions.cpp
+++ b/servers/gpib_server_lin/src/scope_functions.cpp
@@ -49,7 +49,8 @@ unsigned long scopeScreenWidth (const char * scopeType) {
if (strcmp("HP54600OS", scopeType) == 0) {
return 512;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
return 640;
}
else {
@@ -61,7 +62,8 @@ unsigned long scopeScreenHeight (const char * scopeType) {
if (strcmp("HP54600OS", scopeType) == 0) {
return 280;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
return 480;
}
else {
@@ -73,7 +75,8 @@ unsigned long scopeScreenSize (const char * scopeType) {
if (strcmp("HP54600OS", scopeType) == 0) {
return scopeScreenWidth(scopeType)*scopeScreenHeight(scopeType)*3;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
return scopeScreenWidth(scopeType)*scopeScreenHeight(scopeType)*3;
}
else {
@@ -139,7 +142,7 @@ int scope_get_screenshot_stage2(const char * scopeType, int gpibDevice) {
int k;
int m;
- if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0)) {
+ if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0) || (strcmp("TDS744COS", scopeType) == 0)) {
printf("[INFO] Getting scope screenshot [Stage 2]\n\r");
if (strcmp("HP54600OS", scopeType) == 0) {
if (gpib_read_binblock(gpibDevice, 19768, scopeType) == 0) {
@@ -149,7 +152,8 @@ int scope_get_screenshot_stage2(const char * scopeType, int gpibDevice) {
return 1;
}
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
gpib_read_binary(gpibDevice, scopeScreenSize(scopeType));
int bpp;
@@ -188,7 +192,7 @@ int scope_reset(const char * funcgenType, int gpibDevice) {
}
int scope_get_screenshot(const char * scopeType, int gpibDevice) {
- if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0)) {
+ if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0) || (strcmp("TDS744COS", scopeType) == 0)) {
printf("[INFO] Getting scope screenshot [Stage 1]\n\r");
if (strcmp("HP54600OS", scopeType) == 0) {
sprintf(falpha, "PRINT?");
@@ -202,7 +206,8 @@ int scope_get_screenshot(const char * scopeType, int gpibDevice) {
return 2;
}
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
sprintf(falpha, "HARDCOPY:FORMAT BMPCOLOR");
if (gpib_write(gpibDevice, falpha) == 0) {
#ifdef ENABLE_EXTRA_DEBUGGING
@@ -240,7 +245,7 @@ int scope_get_screenshot(const char * scopeType, int gpibDevice) {
}
int scope_set_timebase(float desired_timebase,const char * scopeType, int gpibDevice) {
- if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0)) {
+ if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0) || (strcmp("TDS744COS", scopeType) == 0)) {
printf("[INFO] Setting scope timebase to %E\n\r", desired_timebase);
if (strcmp("HP54600OS", scopeType) == 0) {
sprintf(falpha, "TIM:RANG %E", desired_timebase);
@@ -254,7 +259,8 @@ int scope_set_timebase(float desired_timebase,const char * scopeType, int gpibDe
return 2;
}
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
sprintf(falpha, "HORIZONTAL:MAIN:SCALE %E", desired_timebase);
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Writing: %s\n\r", falpha);
@@ -285,7 +291,8 @@ int scope_get_timebase(double * retval, const char * scopeType, int gpibDevice)
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
// Send request
printf("[INFO] Getting scope timebase\n\r");
sprintf(falpha,"HORIZONTAL:MAIN:SCALE?");
@@ -325,7 +332,7 @@ int scope_get_timebase(double * retval, const char * scopeType, int gpibDevice)
}
int scope_set_volts_div(int desired_channel, double desired_volts, const char * scopeType, int gpibDevice) {
- if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0)) {
+ if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0) || (strcmp("TDS744COS", scopeType) == 0)) {
printf("[INFO] Setting scope volts/div on channel %d to %E\n\r", desired_channel, desired_volts);
if (strcmp("HP54600OS", scopeType) == 0) {
sprintf(falpha, "CHAN%d:RANG %E", desired_channel, desired_volts);
@@ -339,7 +346,8 @@ int scope_set_volts_div(int desired_channel, double desired_volts, const char *
return 2;
}
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
sprintf(falpha, "CH%d:SCALE %E", desired_channel, desired_volts);
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Writing: %s\n\r", falpha);
@@ -361,7 +369,7 @@ int scope_set_volts_div(int desired_channel, double desired_volts, const char *
}
int scope_set_acquisition(int status,const char * scopeType, int gpibDevice) {
- if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0)) {
+ if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0) || (strcmp("TDS744COS", scopeType) == 0)) {
printf("[INFO] Setting scope run status to %d\n\r", status);
if (strcmp("HP54600OS", scopeType) == 0) {
if (status == 0) {
@@ -380,7 +388,8 @@ int scope_set_acquisition(int status,const char * scopeType, int gpibDevice) {
return 2;
}
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
sprintf(falpha, "ACQUIRE:STATE %d", status);
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Writing: %s\n\r", falpha);
@@ -411,7 +420,8 @@ int scope_get_acquisition(int * retval, const char * scopeType, int gpibDevice)
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
// Send request
printf("[INFO] Getting run state\n\r");
sprintf(falpha,"ACQUIRE:STATE?");
@@ -451,7 +461,7 @@ int scope_get_acquisition(int * retval, const char * scopeType, int gpibDevice)
}
int scope_set_channel_state(int desired_channel, int status,const char * scopeType, int gpibDevice) {
- if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0)) {
+ if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0) || (strcmp("TDS744COS", scopeType) == 0)) {
printf("[INFO] Setting channel %d state to %i\n\r", desired_channel, status);
if (strcmp("HP54600OS", scopeType) == 0) {
if (status == 0) {
@@ -473,7 +483,8 @@ int scope_set_channel_state(int desired_channel, int status,const char * scopeTy
return 2;
}
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
if (status == 0) {
sprintf(falpha, "SELECT:CH%d OFF", desired_channel);
}
@@ -514,7 +525,8 @@ int scope_get_channel_state(int * retval, int desired_channel, const char * scop
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
sprintf(falpha, "SELECT:CH%d?", desired_channel);
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Writing: %s\n\r", falpha);
@@ -552,7 +564,7 @@ int scope_get_channel_state(int * retval, int desired_channel, const char * scop
}
int scope_set_trigger_channel(int desired_channel,const char * scopeType, int gpibDevice) {
- if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0)) {
+ if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0) || (strcmp("TDS744COS", scopeType) == 0)) {
printf("[INFO] Setting scope trigger channel to %d\n\r", desired_channel);
if (strcmp("HP54600OS", scopeType) == 0) {
sprintf(falpha, "TRIG:SOUR CHAN%d", desired_channel);
@@ -566,7 +578,8 @@ int scope_set_trigger_channel(int desired_channel,const char * scopeType, int gp
return 2;
}
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
sprintf(falpha, "TRIGGER:MAIN:EDGE:SOURCE CH%d", desired_channel);
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Writing: %s\n\r", falpha);
@@ -598,7 +611,8 @@ int scope_get_trigger_channel(int * retval, const char * scopeType, int gpibDevi
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
sprintf(falpha, "TRIGGER:MAIN:EDGE:SOURCE?");
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Writing: %s\n\r", falpha);
@@ -646,7 +660,7 @@ int scope_get_trigger_channel(int * retval, const char * scopeType, int gpibDevi
}
int scope_set_trigger_level(float desired_level,const char * scopeType, int gpibDevice) {
- if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0)) {
+ if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0) || (strcmp("TDS744COS", scopeType) == 0)) {
printf("[INFO] Setting scope trigger level to %f\n\r", desired_level);
if (strcmp("HP54600OS", scopeType) == 0) {
sprintf(falpha, "TRIG:LEV %E", desired_level);
@@ -660,7 +674,8 @@ int scope_set_trigger_level(float desired_level,const char * scopeType, int gpib
return 2;
}
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
sprintf(falpha, "TRIGGER:MAIN:LEVEL %f", desired_level);
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Writing: %s\n\r", falpha);
@@ -691,7 +706,8 @@ int scope_get_trigger_level(double * retval, const char * scopeType, int gpibDev
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
// Send request
printf("[INFO] Getting trigger level\n\r");
sprintf(falpha,"TRIGGER:MAIN:LEVEL?");
@@ -731,7 +747,7 @@ int scope_get_trigger_level(double * retval, const char * scopeType, int gpibDev
}
int scope_set_channel_position(int desired_channel, float desired_level,const char * scopeType, int gpibDevice) {
- if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0)) {
+ if ((strcmp("HP54600OS", scopeType) == 0) || (strcmp("TDS744AOS", scopeType) == 0) || (strcmp("TDS744COS", scopeType) == 0)) {
printf("[INFO] Setting scope channel %d level to %f\n\r", desired_channel, desired_level);
if (strcmp("HP54600OS", scopeType) == 0) {
sprintf(falpha, "CHAN%d:OFFS %E", desired_channel, desired_level);
@@ -745,7 +761,8 @@ int scope_set_channel_position(int desired_channel, float desired_level,const ch
return 2;
}
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
sprintf(falpha, "CH%d:POSITION %f", desired_channel, desired_level);
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Writing: %s\n\r", falpha);
@@ -774,7 +791,8 @@ int scope_perform_initial_setup(const char * scopeType, int gpibDevice) {
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
sprintf(falpha,"HEAD OFF");
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Writing: %s\n\r", falpha);
@@ -843,7 +861,8 @@ clock_gettime(CLOCK_REALTIME, &tp1);
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
// We need to get/parse the preamble, then obtain and adjust the trace data
sprintf(falpha,"DATA:SOURCE CH%d", desired_channel);
#ifdef ENABLE_EXTRA_DEBUGGING
@@ -887,6 +906,9 @@ clock_gettime(CLOCK_REALTIME, &tp4);
printf("[PROFILE] %f s\n\r", ((tp4.tv_nsec+(tp4.tv_sec*1e9))-(tp3.tv_nsec+(tp3.tv_sec*1e9)))/1e9);
#endif
TQString preamble(scope_segarray);
+ #ifdef ENABLE_EXTRA_TRACE_DEBUGGING
+ printf("[DEBG] Preamble: %s\n", preamble.ascii());
+ #endif
TQStringList resultPairs = TQStringList::split(";", preamble, FALSE);
// Find/initialize critical data values
double ymult = 0;
@@ -897,16 +919,33 @@ printf("[PROFILE] %f s\n\r", ((tp4.tv_nsec+(tp4.tv_sec*1e9))-(tp3.tv_nsec+(tp3.t
double xposition = 0;
char* xunits = NULL;
- if (resultPairs.count() > 15) {
- ymult = resultPairs[13].toDouble();
- yoffset = resultPairs[14].toDouble()*ymult;
- yposition = resultPairs[15].toDouble()*ymult;
- yunits = strdup(resultPairs[12]);
- xincr = resultPairs[9].toDouble();
- xposition = resultPairs[10].toDouble();
- xunits = strdup(resultPairs[8]);
+ if (strcmp("TDS744AOS", scopeType) == 0) {
+ if (resultPairs.count() > 15) {
+ ymult = resultPairs[13].toDouble();
+ yoffset = resultPairs[14].toDouble()*ymult;
+ yposition = resultPairs[15].toDouble()*ymult;
+ yunits = strdup(resultPairs[12]);
+ xincr = resultPairs[9].toDouble();
+ xposition = resultPairs[10].toDouble();
+ xunits = strdup(resultPairs[8]);
+ }
+ }
+ else if (strcmp("TDS744COS", scopeType) == 0) {
+ if (resultPairs.count() > 15) {
+ ymult = resultPairs[13].toDouble();
+ yoffset = resultPairs[14].toDouble()*ymult;
+ yposition = resultPairs[15].toDouble()*ymult;
+ yunits = strdup(resultPairs[12]);
+ xincr = resultPairs[9].toDouble();
+ xposition = resultPairs[10].toDouble();
+ xunits = strdup(resultPairs[8]);
+ }
}
+ #ifdef ENABLE_EXTRA_TRACE_DEBUGGING
+ printf("[DEBG] Decoded preamble: xincr: %f ymult: %f\n", xincr, ymult);
+ #endif
+
// If the units are desired, comment out these lines...
if (yunits) {
free(yunits);
@@ -944,15 +983,23 @@ printf("[PROFILE] %f s\n\r", ((tp6.tv_nsec+(tp6.tv_sec*1e9))-(tp5.tv_nsec+(tp5.t
long pointCount = ai/2;
double horizPos = 0.0;
char yheaderlen[2];
+ #ifdef ENABLE_EXTRA_TRACE_DEBUGGING
+ printf("[DEBG] Point count: %d\n", pointCount);
+ #endif
yheaderlen[0] = scope_segarray[1];
yheaderlen[1] = 0;
int data_offset = atoi(yheaderlen) + 2;
for (array_pointer=0; array_pointer<pointCount; array_pointer++) {
TQ_INT16 tempvalue;
- tempvalue = scope_segarray[(array_pointer*2)+1+data_offset]; // LSB
- tempvalue = tempvalue | (scope_segarray[(array_pointer*2)+0+data_offset] << 8); // MSB
+ tempvalue = (unsigned char)scope_segarray[(array_pointer*2)+1+data_offset]; // LSB
+ tempvalue = tempvalue | ((unsigned char)scope_segarray[(array_pointer*2)+0+data_offset] << 8); // MSB
scope_raw_trace_data[array_pointer] = tempvalue;
scope_raw_trace_data[array_pointer] = (scope_raw_trace_data[array_pointer] * ymult)-yoffset;
+ #ifdef ENABLE_EXTRA_TRACE_DEBUGGING
+ if (array_pointer < 512) {
+ printf("[DEBG] Array [%d]: %04x (%f) [%02x/%02x]\n", array_pointer, tempvalue, scope_raw_trace_data[array_pointer], (unsigned char)scope_segarray[(array_pointer*2)+0+data_offset], (unsigned char)scope_segarray[(array_pointer*2)+1+data_offset]);
+ }
+ #endif
scope_raw_position_data[array_pointer] = horizPos;
horizPos = horizPos + xincr;
}
@@ -988,7 +1035,8 @@ int scope_get_number_of_horizontal_divisions(const char * scopeType, int gpibDev
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
return 8;
}
else {
@@ -1002,7 +1050,8 @@ int scope_get_number_of_vertical_divisions(const char * scopeType, int gpibDevic
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
return 10;
}
else {
@@ -1014,7 +1063,8 @@ int scope_get_number_of_channels(const char * scopeType, int gpibDevice) {
if (strcmp("HP54600OS", scopeType) == 0) {
return 2;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
return 4;
}
else {
@@ -1032,7 +1082,8 @@ int scope_get_channel_volts_div(double * retval, int desired_channel, const char
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
// Send request
printf("[INFO] Getting scope volts per division for channel %d\n\r", desired_channel);
sprintf(falpha,"CH%d:SCALE?", desired_channel);
@@ -1081,7 +1132,8 @@ int scope_get_channel_seconds_div(double * retval, int desired_channel, const ch
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
double xincr;
// Send request
@@ -1177,7 +1229,8 @@ int scope_get_channel_sample_count(unsigned long * retval, int desired_channel,
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
// Send request
printf("[INFO] Getting number of samples in trace for channel %d\n\r", desired_channel);
sprintf(falpha,"DATA:SOURCE CH%d", desired_channel);
@@ -1242,7 +1295,8 @@ int scope_get_probe_attenuation_multiplier(double * retval, int desired_channel,
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
// Send request
printf("[INFO] Getting trigger level for channel %d\n\r", desired_channel);
sprintf(falpha,"CH%d:PROBE?", desired_channel);
@@ -1287,7 +1341,8 @@ int scope_get_permitted_volts_div_settings_at_1x(int * number_of_values, double
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
*number_of_values = 13;
double* values = (double*)malloc(sizeof(double)*(*number_of_values));
values[0] = 1e-3;
@@ -1317,7 +1372,8 @@ int scope_get_permitted_seconds_div_settings(int * number_of_values, double ** r
// Not supported (yet)
return -1;
}
- else if (strcmp("TDS744AOS", scopeType) == 0) {
+ else if ((strcmp("TDS744AOS", scopeType) == 0)
+ || (strcmp("TDS744COS", scopeType) == 0)) {
*number_of_values = 28;
double* values = (double*)malloc(sizeof(double)*(*number_of_values));
values[0] = 1.25e-8;