diff options
author | Timothy Pearson <tpearson@raptorengineering.com> | 2019-08-05 04:58:40 -0500 |
---|---|---|
committer | Timothy Pearson <tpearson@raptorengineering.com> | 2019-08-05 04:58:40 -0500 |
commit | c40a208abbc778da4271485eba06a89d05c69b5e (patch) | |
tree | 3e492d54efae965ca882f8bde4e4e724f30e24b8 | |
parent | b9302c6da3ffa7afd922aec91b7bf578359936a4 (diff) | |
download | ulab-c40a208abbc778da4271485eba06a89d05c69b5e.tar.gz ulab-c40a208abbc778da4271485eba06a89d05c69b5e.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)
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.cpp | 5 | ||||
-rw-r--r-- | servers/gpib_server_lin/src/scope_functions.cpp | 150 |
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; |