#cmdSetup combobox Ch_1
:write: CONF:VOLT:DC #,DEF,(@101)
;:read: CONF? (@101)
DC_Voltage_auto AUTO
DC_Voltage_0.1V 0.1
DC_Voltage_1V 1
DC_Voltage_10V 10
DC_Voltage_100V 100
DC_Voltage_300V 300
:tip: Set channel function
CONF:VOLT:DC #,DEF,(@101) is the channel configuration.
The code below works but what i would like is a couple of combo-boxes. One for unit one for scale one for resolution and so on and use the value's from all those in sending this one command.
Here VOLT DC # DEF and (@101) are all variables.
How might i go about this?
CONF:VOLT:DC #,DEF,(@101) is the channel configuration.
The code below works but what i would like is a couple of combo-boxes. One for unit one for scale one for resolution and so on and use the value's from all those in sending this one command.
Here VOLT DC # DEF and (@101) are all variables.
How might i go about this?
You need to use the multi control, but it lacks a combobox at least for now.
So there is no way to put a combobox value in a variable or use the contents of several combo boxes when hitting the set button?
I apologize if these issues have been mentioned before, but I ran into two problems today in my first attempt to actually use this program. First, for the Fluke 8846A, the value column always shows "F8846.VoltageDC" regardless of what range is selected. The numbers are correct. Second, when I try to save a chart, it goes through all the motions--I press save, a dialog box comes up that lets me give it a name and specify where to save it, I press save and the dialog box disappears--but no file has been saved.
I don't see any way to determine the version number here, but I downloaded this on 5 SEP 2021.
Edit: Using the MODE button from within TestController to set the 8846A modes causes the value label to read correctly, but unlike the F289, changing it from the meter does not--so not a significant issue.
I tried the debug batch file, but when I look at the now-verbose command window in the program, I don't see anything at all in response to my pressing the save button (in the CHART window), entering a filename and location and then pressing ENTER or SAVE. I don't know if this is related, but the data files that the program put in the Documents folder are all completely empty except for a file called ScriptLibrary.dat. My loaded devices are not remembered from one session to the next either, I hadn't gotten that far. I do not see a log file saved anywhere.
Any ideas?
a) updated Java (I had disabled updates a while back so it was ~2 years old)
b) installed v1.82
c) restarted Windows 10 with an update
and I now have at least the nominal ability to save the chart as a .png. So that's all good.
I started looking at editing the device configuration .txt file and just as an exercise, I was able to change it so that when I select 4W Ohms it also selects 100NPLC instead of 10, which I want. However, I cannot get the program to display the proper resolution in the 'Current Values' or 'Table' windows. It simply displays "1K" when the meter is reading 1000.002 ohms. v1.80 was displaying more digits, but not enough--there should be 8 digits. When I open the Chart or Histogram windows, provided I have set values correctly in the 'Scales for Chart' window, I can see intermediate values that reflect the 8 digits. IOW, I have ticks at 1000, 1000.002, 1000.004, etc and there are multiple data points in between those. So all 8 available digits are being transmitted, but they don't show up.
Also, the program still does not remember the meter if I exit and start a new session--I have to go to Load, select the Fluke 8846A from the menu, select 'Scan Serial Ports', then 'Reconnect'. Is that normal or is something still amiss?
These settings are supposed to be saved in ...\Documents\TestController\Settings\ in a couple of files called Settings something.txt
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 5, Size: 5
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at dk.hkj.devices.LoadDeviceConfig.getIndex(LoadDeviceConfig.java:122)
at dk.hkj.main.PopupScriptList$3.prepareRenderer(PopupScriptList.java:118)
at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
at javax.swing.plaf.ComponentUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JViewport.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at java.awt.Window.paint(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1200(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
To check the type of a variable use type(v), the normal types will be long/double/string, but there are also complex/dateTime/array/struct/...
=var my_array = array("some value", "another value", "and so on")
#foreach item my_array
#echo (item)
#endforeach
;; my_array
;; some value
;; another value
;; and so on
First, a bug: The "Script List" popup fails to list any of the scripts I created (and, in fact, is completely blank except for when I sweep the mouse cursor over the dialog box buttons, which individually reappear when I do so). Here's what the dialog box looks like after I've painted the mouse cursor all over it:
Next, the documentation states:Code: [Select]To check the type of a variable use type(v), the normal types will be long/double/string, but there are also complex/dateTime/array/struct/...
This seems to suggest that it's possible to declare a variable as a struct; how do we go about doing so? Is such a thing possible right now? (Being able to do so would be amazing...and being able to declare arrays of structs would be even more so!)
var a;
a.x=4
will make a a struct with the element xFinally, I'm not clear on how the iterator variable works in the #FOREACH command. I tried doing something like this, using #FOREACH to iterate through an array of arbitrary size:Code: [Select]=var my_array = array("some value", "another value", "and so on")
#foreach item my_array
#echo (item)
#endforeach
This code results in this output:Code: [Select];; my_array
...but I was hoping for something like this output:Code: [Select];; some value
;; another value
;; and so on
Clearly I am misunderstanding the command's usage. Could you clarify it?
=var my_array = array("some value", "another value", "and so on")
=var item;
#foreach item (my_array)
#echo (item)
#endforeach
Does the "Readout" popup support multiple readouts from the same device? I have found I can do it with a grid panel, but I think I might want multiple popups, I'm just wondering if it can do it already ?
I am in the process of writing the definition for a Siglent SDL1030X, I have the app reading the loads values and I am able to control the modes etc. I still have a lot to do, such as the various mode settings etc. but I am making good progress I think.
FYI I also added this to the Siglent SDM30xxxx file so that it returns back to local mode when quitting the app: #finalCmd abort;*cls;*rst
Is there a button type that toggles states ?
What I am wanting is a button for On/Off without having to use two buttons, much like the ButtonsOn version that has the indicator but a single button that can toggle between two states, change its button text, and change its activated output to toggle commands, so you can send a 0 or 1 just like a checkbox etc.
I wanted to use a button like this for the SDL1030X definition I am making, to have features such as Load On/Off, Short On/Off, Remote Sensing On/Off etc.
and to explore Test Controller's scripting capabilities.
V1.84 is up
Fixed: (I hope) A problem showing script list popup
Not all scripting is documented, you can switch into programming mode with #calc .
<snip>
You can find some examples in KeysightU1461A.txt and Keysight344xxA.txt
I've noticed in that popup that the "Lines" column is highlighted in red for some of my scripts--what does that signify?
The examples prompt another question: I've noticed that end-of-statement semicolons are inconsistently applied in various examples, and my experimentation with it suggests that the script interpreter doesn't really much care about requiring a semicolon as a statement delimiter (but, obviously, it requires a semicolon to signify a comment). What is the scripting language's grammar for the end-of-statement semicolon? Is this something I should pay attention to?
I noticed that if my internet connection is being crap that the app doesn't launch, the TC window opens but stays blank, until the internet is available.
Internet where I am is pretty bad, sometimes it is fine, other times it is so slow it cant even load an email.
Why does the app not load until the internet is OK ? is this something that can be improved / removed?