Do I have the possibility, to match the values of both y-axis, when using at least two DMM?
...just brainstorming...
Does TestController already have something like an "AutoHoldFeature" like the Fluke 179, 87 or 289, which could be used via "Popups > Readout" when having both testleads in your hands, and not being able to reach the instrument, to press the "Hold"-button?
As probably hardly any benchtop DMM or a cheaper handheld DMM does have this feature, it could be an advantage/gain in usability?!
dk.hkj.script.ProgramExceptions$UnknownException:
getMatchGroup(value, "[^,]+",2)____<----____
at dk.hkj.script.Script.expression(Script.java:1193)
at dk.hkj.devices.DeviceAscii$TranslatingCommInterface.write(DeviceAscii.java:297)
at dk.hkj.comm.CommInterface.writeRead(CommInterface.java:106)
at dk.hkj.main.SCPICommand.writeReadDelay(SCPICommand.java:156)
at dk.hkj.main.SCPICommand.writeReadInternal(SCPICommand.java:199)
I then tried various combinations of RegEx espression and getMatchGroup command and could not get the second or third, etc. I could only ever get getMatchGroup(value, "RegEx", 1) to work giving the first match "PL.FB [Counts]".;; AKD2GS: Tx <getunitsch2?>
;; AKD2GS: Tx <txrxn? 3 REC.RETRIEVEHDR>
;; 192.168.1.193: Tx: <REC.RETRIEVEHDR..> 52 45 43 2E 52 45 54 52 49 45 56 45 48 44 52 0D 0A
;; 192.168.1.193: Rx: <Recording> 52 65 63 6F 72 64 69 6E 67 0D
;; 192.168.1.193: Rx: <1,1> 31 2C 31 0D
;; 192.168.1.193: Rx: <axis1.pl.fb [Counts16Bit],axis1.vl.fb [rpm],axis1.il.fb [Arms],vbus.value [Vdc],fb3.mechpos [Counts],ain1.value [V]> 61 78 69 73 31 2E 70 6C 2E 66 62 20 5B 43 6F 75 6E 74 73 31 36 42 69 74 5D 2C 61 78 69 73 31 2E 76 6C 2E 66 62 20 5B 72 70 6D 5D 2C 61 78 69 73 31 2E 69 6C 2E 66 62 20 5B 41 72 6D 73 5D 2C 76 62 75 73 2E 76 61 6C 75 65 20 5B 56 64 63 5D 2C 66 62 33 2E 6D 65 63 68 70 6F 73 20 5B 43 6F 75 6E 74 73 5D 2C 61 69 6E 31 2E 76 61 6C 75 65 20 5B 56 5D 0D
;; AKD2GS: Rx Timeout
Good, remember if you have ideas for other table... functions, please say.
Now that I have the units I wonder if there is a way to make the units of the logged items dynamic? In other words, the device file presently has
=tableCalcMax(AKD2GS.CH1)
On a related topic, I have been using the nice Histogram tab. Very useful. How about adding a cursor readout like on the Chart tab? Click the Histogram graph and read out the bin range and the height of the bin in a side window like for the Chart?
=tableCalcStdDev(5)
;; 1.8172911569598222
=tableCalcStdDev("AKD2GS.CH2")
;; AKD2GS: Tx <REC.TRIG>
;; AKD2GS: Tx <txrx REC.TRIG>
;; 192.168.1.193: Tx: <REC.TRIG..> 52 45 43 2E 54 52 49 47 0D 0A
;; 192.168.1.193: Rx: <> 0D
;; AKD2GS: Tx <REC.DATA?>
;; AKD2GS: Tx <txrxn? 2 REC.RETRIEVEDATA 0>
;; 192.168.1.193: Tx: <REC.RETRIEVEDATA 0..> 52 45 43 2E 52 45 54 52 49 45 56 45 44 41 54 41 20 30 0D 0A
;; 192.168.1.193: Rx: <1> 31 0D
;; 192.168.1.193: Rx: <2.442,1.506,-0.002,0.504,3747273272,0.000> 32 2E 34 34 32 2C 31 2E 35 30 36 2C 2D 30 2E 30 30 32 2C 30 2E 35 30 34 2C 33 37 34 37 32 37 33 32 37 32 2C 30 2E 30 30 30 0D
;; AKD2GS: Rx <2.442,1.506,-0.002,0.504,3747273272,0.000>
;; AKD2GS: Rx as numbers <2.442 1.506 -0.002 0.504 3.747273272E9 0.0>
;; 1.8172911569598222
But, the operations are still not identical. Using a column number just gives the calculation result. Using the column name queries the device for a set of values before giving the result of the calculation from the table. Still gives the right number, just has extra communications traffic. See below debug log.
Thank you very much for TestController 1.33, HKJ!
By the way...I asked Brymen, whether they have any idea or hint to help me out with USBHID vs. Raspberry OS - this is, what I got:
We have no experience in raspberry pi and thus have no idea how to
help you. Sorry. The communication protocol of BM867s+BC-86X interface
cable conforms to USB HID 1.1. You will need to study how to have it
work with your raspberry pi.
Best Regards,
Gary/Brymen
I will keep trying - not giving up...
the concept of sigrock is different, anyway I see sigrok as much, much more powerfull.
You do not have to do any scripting or programming to do this, just unpack the program and run it on Window, Linux or Mac, then you have a GUI. It is possible to automate a lot with scripting, but it is never required.
I thought that using the #sections, #metaSection commands would help with this task. But, I must admit I can't figure out how to use those commands properly.
Could you provide an example file of using these commands?
One question: while testing the oscilloscope interface definition I used the Popups | Test interface. When I check all of the gets all the numeric returned values are green. But anything returning a string is red. See attached screen shot of that window. In the device file I have listed :string: on the line after the get like:
#interface setCH1Coupling CH1:COUPLING (value)
#interface getCH1Coupling CH1:COUPLING?
:string:
but still get a red box. Is the Test interface screen hard coded to put red for anything not a number or am I doing something wrong in the device file?
Using
#interfaceType OSC OSC:2 OSC:3 OSC:4
is an interesting idea and maybe a better way than I did it. But, how to handle 2 versus 4 channel in the device file? The way I have it now the interface commands for CH3 and CH4 are removed from dual channel scopes. How to remove OSC:3 and OSC:4 from the interface for dual channel with the above idea?
Also, how to handle the 4 oscilloscope measurements which are logged separate from the CH1-4 commands that are for just setting up the oscilloscope inputs? Do the measurements also become OSC:1, OSC:2, etc? Lastly, how to handle the fith measurement which is labeled "I" and not by a number in the scope scpi language?