I've made significant progress with my little scripting project involving Test Controller, but I've run into a problem. I intermittently receive the following error:
Do you #RECONNECT devices in your script? If you do remember to use a #WAITREADY
The error happens when TC tries to put data into the table
I finally got some free time to take another look at this. I don't use the #RECONNECT command; instead, I connect to only those devices that I plan to run the script against prior to launching the script. The script I'm currently developing runs generalized performance verification tests, using subroutines to define and administer tests for the various equipment I own. Right now I'm testing it against my two SDM3055s and my SDG2122X. At some point I'd like to get my SDS1202X-E and my GW Instek GPP-4323 involved.
The good news is that with TestController v.1.91 my script runs consistently and successfully--many thanks for the bugfix!
The bad news is that I can't run it against all three aforementioned instruments at the same time without Test Controller complaining about slow logging and ultimately throwing exceptions while becoming unresponsive. For example, I can successfully use my script to verify the frequency accuracy of one SDM3055 using one channel of the SDG2122X, and I can separately do the same for the other SDM3055 using, e.g., the other channel of the SDG2122X, but I can't run it against
both SDM3055s using
both channels of the SDG2122X
at the same time. I attempted that, and here is an excerpt of the resulting death throes before I had to force-quite Java/TestController using Windows Task Manager:
************************* Logging slow *****************************
;; SDM3055_1: Rx <+5.00001406E+05 HZ
>
;; SDM3055_1: *OPC waited: 720ms
************************* Logging slow *****************************
;; SDM3055_1: Rx as numbers <500001.406>
;; SDM3055_1: Tx <DATA:LAST?>
;; SDM3055_2: Tx <DATA:LAST?>
;; SDG2122X: Tx <C1:BSWV?>
************************* Logging slow *****************************
************************* Logging slow *****************************
************************* Logging slow *****************************
;; SDM3055_1: Rx <+5.00001328E+05 HZ
>
************************* Logging slow *****************************
;; SDG2122X: Rx <C1:BSWV WVTP,SINE,FRQ,500000HZ,PERI,2e-06S,AMP,0.169731V,AMPVRMS,0.06Vrms,MAX_OUTPUT_AMP,20V,OFST,0V,HLEV,0.0848656V,LLEV,-0.0848656V,PHSE,0
>
;; SDM3055_2: Rx <+0.00000000E+00 HZ
>
************************* Logging slow *****************************
************************* Logging slow *****************************
;; SDG2122X: Tx <C2:BSWV?>
************************* Logging slow *****************************
;; SDM3055_1: *OPC waited: 1304ms
;; SDM3055_2: *OPC waited: 1289ms
************************* Logging slow *****************************
;; SDG2122X: Rx <C2:BSWV WVTP,SINE,FRQ,20HZ,PERI,0.05S,AMP,0.8487V,AMPVRMS,0.300015Vrms,MAX_OUTPUT_AMP,20V,OFST,0V,HLEV,0.42435V,LLEV,-0.42435V,PHSE,0
>
;; SDM3055_1: Rx as numbers <500001.328>
************************* Logging slow *****************************
************************* Logging slow *****************************
************************* Logging slow *****************************
;; SDM3055_2: Rx as numbers <0.0>
;; SDG2122X: Rx after internal processor <500000 0.169731 0 0 20 0.8487 0 0 >
************************* Logging slow *****************************
************************* Logging slow *****************************
;; SDG2122X: Rx as numbers <500000.0 0.169731 0.0 0.0 20.0 0.8487 0.0 0.0>
************************* Logging slow *****************************
Exception in thread "AWT-EventQueue-0" Exception in thread "AWT-EventQueue-0"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "AWT-EventQueue-0"
Exception in thread "LoggerSample" ;; SDM3055_2: Tx <:SENSE:FUNCTION?>java.lang.OutOfMemoryError: Java heap space
;; SDM3055_2: Rx <"FREQ"
>
************************* Logging slow *****************************
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Input to log mover"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "TimerQueue"
Exception in thread "Device: SDM3055" java.lang.OutOfMemoryError: Java heap space
Exception in thread "Device: SDM3055" Exception in thread "Device: SDG2122X" java.lang.OutOfMemoryError: Java heap space
Exception in thread "BackgroundCommands" java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
I've got plenty of RAM; all other open applications are crisp and responsive while Test Controller ignores its UI as it rolls over and dies. I'm using many parameterized subscripts as a sort of "poor man's" subroutines and have defined variables in my top-level script as a return-value mechanism for those subroutine that need to modify variables that are used elsewhere. (I've architected the script in this manner based on my totally untested theory and bald assumption that script parameters are passed by value and not by reference.)
Given Test Controller's debug excerpt and my descriptions of the script--and assuming that I'm probably doing something wrong on my end--do you have have suggestions for how to proceed with troubleshooting?