summaryrefslogtreecommitdiffstats
path: root/servers/gpib_server_lin/src/scope_functions.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-07-14 17:13:49 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-07-14 17:13:49 -0500
commitc50fa83bfd137b6b5aa7f9c1e4c310ddde75e585 (patch)
tree9a930f79f16690d94244815d4b2e36d68b94dd6a /servers/gpib_server_lin/src/scope_functions.cpp
parentfe06492794c15013e4511d1fcd623b0234c21afe (diff)
downloadulab-c50fa83bfd137b6b5aa7f9c1e4c310ddde75e585.tar.gz
ulab-c50fa83bfd137b6b5aa7f9c1e4c310ddde75e585.zip
Add profiling to scope trace grabber
Diffstat (limited to 'servers/gpib_server_lin/src/scope_functions.cpp')
-rw-r--r--servers/gpib_server_lin/src/scope_functions.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/servers/gpib_server_lin/src/scope_functions.cpp b/servers/gpib_server_lin/src/scope_functions.cpp
index abfc9e4..b0571d6 100644
--- a/servers/gpib_server_lin/src/scope_functions.cpp
+++ b/servers/gpib_server_lin/src/scope_functions.cpp
@@ -32,6 +32,8 @@
#include "gpib_functions.h"
#include "gpib/ib.h"
+#include <time.h>
+
#include <tqimage.h>
extern char falpha[1024];
@@ -602,11 +604,21 @@ int scope_perform_initial_setup(const char * scopeType, int gpibDevice) {
}
}
+#define ENABLE_PROFILING
+
int scope_get_channel_trace(int desired_channel, const char * scopeType, int gpibDevice) {
char segarray[4194304];
long array_pointer;
long ai;
+#ifdef ENABLE_PROFILING
+struct timespec tp1, tp2, tp3, tp4, tp5, tp6, tp7;
+#endif
+
+#ifdef ENABLE_PROFILING
+clock_gettime(CLOCK_REALTIME, &tp1);
+#endif
+
// Send request
printf("[INFO] Getting oscilloscope trace for channel %d [Stage 1]\n\r", desired_channel);
if (strcmp("HP54600OS", scopeType) == 0) {
@@ -621,11 +633,19 @@ int scope_get_channel_trace(int desired_channel, const char * scopeType, int gpi
printf("[DEBG] Writing: %s\n\r", falpha);
#endif
if (gpib_write(gpibDevice, falpha) == 0) {
+#ifdef ENABLE_PROFILING
+clock_gettime(CLOCK_REALTIME, &tp2);
+printf("[PROFILE] %f s\n\r", ((tp2.tv_nsec+(tp2.tv_sec*1e9))-(tp1.tv_nsec+(tp1.tv_sec*1e9)))/1e9);
+#endif
sprintf(falpha,"WFMPRE?");
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Writing: %s\n\r", falpha);
#endif
if (gpib_write(gpibDevice, falpha) == 0) {
+#ifdef ENABLE_PROFILING
+clock_gettime(CLOCK_REALTIME, &tp3);
+printf("[PROFILE] %f s\n\r", ((tp3.tv_nsec+(tp3.tv_sec*1e9))-(tp2.tv_nsec+(tp2.tv_sec*1e9)))/1e9);
+#endif
// Read response
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Trying to read %i bytes from GPIB device...\n", 65535);
@@ -638,6 +658,10 @@ int scope_get_channel_trace(int desired_channel, const char * scopeType, int gpi
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Read %li bytes from GPIB device\n", ai);
#endif
+#ifdef ENABLE_PROFILING
+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(segarray);
TQStringList resultPairs = TQStringList::split(";", preamble, FALSE);
// Find/initialize critical data values
@@ -663,6 +687,10 @@ int scope_get_channel_trace(int desired_channel, const char * scopeType, int gpi
printf("[DEBG] Writing: %s\n\r", falpha);
#endif
if (gpib_write(gpibDevice, falpha) == 0) {
+#ifdef ENABLE_PROFILING
+clock_gettime(CLOCK_REALTIME, &tp5);
+printf("[PROFILE] %f s\n\r", ((tp5.tv_nsec+(tp5.tv_sec*1e9))-(tp4.tv_nsec+(tp4.tv_sec*1e9)))/1e9);
+#endif
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Trying to read %i bytes from GPIB device...\n", 65535*2);
#endif
@@ -671,6 +699,10 @@ int scope_get_channel_trace(int desired_channel, const char * scopeType, int gpi
return -1;
}
else {
+#ifdef ENABLE_PROFILING
+clock_gettime(CLOCK_REALTIME, &tp6);
+printf("[PROFILE] %f s\n\r", ((tp6.tv_nsec+(tp6.tv_sec*1e9))-(tp5.tv_nsec+(tp5.tv_sec*1e9)))/1e9);
+#endif
#ifdef ENABLE_EXTRA_DEBUGGING
printf("[DEBG] Read %li bytes from GPIB device\n", ai);
#endif
@@ -701,6 +733,10 @@ int scope_get_channel_trace(int desired_channel, const char * scopeType, int gpi
return -2;
}
+#ifdef ENABLE_PROFILING
+clock_gettime(CLOCK_REALTIME, &tp7);
+printf("[PROFILE] %f s\n\r", ((tp7.tv_nsec+(tp7.tv_sec*1e9))-(tp6.tv_nsec+(tp6.tv_sec*1e9)))/1e9);
+#endif
return array_pointer;
}
else {