Author Topic: Program that can log from many multimeters.  (Read 649403 times)

UniSoft and 14 Guests are viewing this topic.

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1200 on: October 02, 2020, 03:19:18 pm »
Do I have the possibility, to match the values of both y-axis, when using at least two DMM?

Yes, you can use auto scaling parameters that will do it or simply switch to manual scaling with same minimum and maximum for the two meters. All is done on the "Scales for chart" page.
 
The following users thanked this post: PushUp

Offline PushUp

  • Regular Contributor
  • *
  • Posts: 189
  • Country: de
Re: Program that can log from many multimeters.
« Reply #1201 on: October 02, 2020, 04:50:30 pm »
Ah, yes of course!  :-+




ThanX!  :)
 

Offline PushUp

  • Regular Contributor
  • *
  • Posts: 189
  • Country: de
Re: Program that can log from many multimeters.
« Reply #1202 on: October 02, 2020, 05:48:52 pm »
...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?!  ???
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1203 on: October 02, 2020, 06:37:49 pm »
...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?!  ???

You have the min/max values on the "Current values" page. I do not have anything for the Readout, but you could do a min/max Math function.

I try to make TestController as flexible as possible, i.e. it is possible to do a lot of stuff I have not though about when designing it. Your question was in that category. I could make a Math function that keeps the most stable value in a number of samples (Actual parameters not defined yet), but do anybody need it?
 

Offline gby

  • Regular Contributor
  • *
  • Posts: 248
  • Country: us
Re: Program that can log from many multimeters.
« Reply #1204 on: October 04, 2020, 12:41:53 am »
HKJ,

Sorry to bother you but I am stuck.

I am trying to select some text in a comma separated list in a string.  For example, I have the string:
   PL.FB [Counts],VL.FB [rpm],il.fb [Arms],VBUS.VALUE [Vdc],fb1.mechpos [Counts],AIN.VALUE [V]
and I want to select one of them.  Looking at the available commands I thought I could do:
    getMatchGroup(value, "[^,]+", 2)
as an attempt to get the second matching group which is "VL.FB [rpm]".  RegEx "[^,]+" seems to work giving 6 matches as expected.  Unfortunately doing this getMatchGoup() yields Java errors like the partial list of errors below.
Code: [Select]
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]".

Even more curious, on one of the variations to the :readmath: that I tried
   getMatch(value, "([^,]+)(\[\w*\]+)")
I got no Java errors but a communications time out?  Not sure how a change to a :readmath: after data is received can cause a Rx Timeout.

Code: [Select]
;; 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

Can you give some examples of how getMatchGroup should be working and/or suggest how to get the individual comma separated items in the string list?
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1205 on: October 04, 2020, 05:50:29 am »

getMatchGroup uses search patterns in parentheses, index 1 is first set of parentheses, 2 is second set of parentheses, etc. This is very practical if you need to match on something around the value, but only want the value returned (See last example).

3 ways to pick the VL.FB name and value (I assume the [rpm] is a numeric parameter and uses [0-9.]+ to match it):
getMatchGroup(value,",(VL.FB[ ]+[0-9.]+),",1)
getMatch(value,"VL.FB[ ]+[0-9.]+")
getElement(value,1)

Only pick the numeric part of the VL.FB parameter:
getMatchGroup(value,",VL.FB[ ]+([0-9.]+),",1)
 

Offline gby

  • Regular Contributor
  • *
  • Posts: 248
  • Country: us
Re: Program that can log from many multimeters.
« Reply #1206 on: October 04, 2020, 02:11:54 pm »
HKJ,

Thanks for the help.  Actually I am trying to get the units in the []'s.  The device has 6 channels fed by multiplexers and the units depend on what value is set in the multiplexer.  The number values come back in a different command as just number,number,number...

Not sure why I didn't think of this earlier but the getElement function easily gets a particular comma separated sub-element nicely.  So, doing getElement first and then a getMatch is simple.  To get the second units in the following string:
   "PL.FB [Counts],VL.FB [rpm],il.fb [Arms],VBUS.VALUE [Vdc],fb1.mechpos [Counts],AIN.VALUE [V]"
use
   :readmath: getElement(value,1)
   :readmath: getMatch(Temp,"(?<=\\[).*\\b")
which nicely gets the desired "rpm" units.

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
   #value CH1 - D3
and so on for the 6 channels of the multiplexer that TC is logging.  Since the mapping of the multiplexer is not fixed I just put "-" in for the a priori unknown units in the device file. 

When connected to the device using the above I can query the device for units for each logging channel.  But, how to set TC to use that unit in the logging?  Is there something like #ExportColumn but just changes the units value and sets it for use by the Table, Chart tabs and for Export?  Perhaps an extension to the #chart commands like a #chartCurveUnits?


 
 

Offline gby

  • Regular Contributor
  • *
  • Posts: 248
  • Country: us
Re: Program that can log from many multimeters.
« Reply #1207 on: October 04, 2020, 02:53:18 pm »
Good, remember if you have ideas for other table... functions, please say.

I have tried some of the #table commands using the column name rather than the index number.  For example, in my test the names of the columns of data after the time columns is AKD2GS.CH1, AKD2GS.CH2, etc.  I started logging and then stopped it for a small data set.  Then, when I do:
   =tableCalcMax(4)
I get the maximum value in the fourth column which is named AKD2GS.CH1.  But, when I do
   =tableCalcMax(AKD2GS.CH1)
I get the maximum value of the time column.  When I do the same command again I get a different number that I don't see in the Range tab.  When I query other channels by name next I consistently get the max value in the Index column.

Similarly with other functions like Avg, StdDev.  I think there may be a bug in the conversion of the column name to column index.  Or, I am trying something that wasn't designed to work but doesn't give an error message.  I do get an error message when I try something like tableCalcMax(foo) where "foo" is not defined.

When I try tableCalcMax(AKD2GS.CH1) in debug mode I see no error message, but TC queries the device for new log data points.  Why would it do that?

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?
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1208 on: October 04, 2020, 03:34:35 pm »
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

I could fairly easy add a function to do it, the problem is that it is associated with the device, not with the data.
This means a changed unit will be valid until TestController is restarted or a new unit is defined for that measurement. It do not matter if the measurement is taken from the device or it is a loaded csv file.

   =tableCalcMax(AKD2GS.CH1)

Try: =tableCalcMax("AKD2GS.CH1")
AKD2GS.CH1 without quotes is a variable with the actual value from you device.

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?

Maybe.

 

Offline gby

  • Regular Contributor
  • *
  • Posts: 248
  • Country: us
Re: Program that can log from many multimeters.
« Reply #1209 on: October 04, 2020, 04:21:04 pm »
Thanks for the clarification.  I assumed that without quotes was OK since no error message.  As you point out putting the column name in quotes works.

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.

Again, thanks for a great tool that keeps getting better.
Code: [Select]
=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
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1210 on: October 04, 2020, 05:17:10 pm »
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.

When using the "=" TestController tries to keep the variable up to date, to keep the communication low it only updates if the line contains anything that matches a handle name and it has not updated recently (i.e. no extra update will be performed if you are showing some type of readout or doing fast logging).

 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1211 on: October 06, 2020, 09:22:47 am »
V1.33 is up
A couple of bug fixed and some support functions for device definitions.
   Added: Installation documentation: http://lygte-info.dk/project/TestControllerInstalling%20UK.html#Starting_TestController
   Fixed: #calc, it did only handle statements on the same line when running as a program.
   Added: displayVar function, this can be used anywhere and will use the variable popup to show a variable
   Added: Variable display popup, makes it easier to read struct and array variables.
   Added: Added functions to handle bitmapped values in definitions
   Fixed: The error message "Error" will now include more explanation.
   Added: Added tool tips to the tab headers.
   Fixed: SI format did not work on Curves/Histogram in V1.29

The VarDisplay is for showing structures and arrays:





With larger structures and arrays it is basically necessary to see everything.
This popup can also be used for notification or debug with the displayVar() function that will show one variable or constant:
=displayVar("Test reached stage 2");
=displayVar(array("Test reached stage",stage));  // Uses array constructor to show multiple lines in popup
The function will return its parameter, i.e. "a=5*displayVar(b)" will give same result as "a=5*b", but show the value of b in a popup window.
This popup only exist in one incarnation and any request for it will use the same instance, this means it will show the latest request.


The installation help page will automatic popup up when no devices is present on the "Load devices" page, I hope it is not too aggressive.


 
The following users thanked this post: PushUp, tubularnut, MrPete

Offline PushUp

  • Regular Contributor
  • *
  • Posts: 189
  • Country: de
Re: Program that can log from many multimeters.
« Reply #1212 on: October 06, 2020, 12:57:33 pm »
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...  :-/O
 

Offline MiroS

  • Regular Contributor
  • *
  • Posts: 175
  • Country: pl
Re: Program that can log from many multimeters.
« Reply #1213 on: October 07, 2020, 05:34:46 pm »
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...  :-/O

I think it is already implemented  e.g. in sigrok, sorce code is avaiable as well. 
I used TestController for a while, the concept of sigrock is different, anyway I see  sigrok as much, much more powerfull.

« Last Edit: October 07, 2020, 05:37:30 pm by MiroS »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1214 on: October 07, 2020, 06:17:59 pm »
the concept of sigrock is different, anyway I see  sigrok as much, much more powerfull.

Sigrok is definietly a differenet concept, you have to write your own program in many cases.

TestController is designed to log/control a couple of devices and have some tools to directly view and analyze the result. 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.

 

Offline MiroS

  • Regular Contributor
  • *
  • Posts: 175
  • Country: pl
Re: Program that can log from many multimeters.
« Reply #1215 on: October 07, 2020, 08:03:14 pm »
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.

Yes, that may be right for simple  use case, for a bit more complex case effort writing own code is nowadays not so different from using closed code application and fighting with oarticular setup to make all running.
I have my own framework covering most of  programmable devices and multimeters I have, but it is right , I had to invest some time to clean framework and unfortunatelly add code for every new device. Here is he power of sigrok, pretty much all is already done.

Do not take me wrong , your application is very usefull and a lot of people are appreciating your effort, I was using it as well.
« Last Edit: October 07, 2020, 08:12:07 pm by MiroS »
 

Offline PushUp

  • Regular Contributor
  • *
  • Posts: 189
  • Country: de
Re: Program that can log from many multimeters.
« Reply #1216 on: October 09, 2020, 01:24:03 pm »
It was nice, that you added the last sentence, because I cannot stress it enough, that I admire not only HKJ's attitude to let us use his TestController for free, but also his will to help us out to solve problems or personal preferences being adopted into the next version within hours/days, as well as his own steady improvements to make this software even better, which is absolutely extraordinary and very kind of him - especially in these times of total egoism!

So, thank you for this nice touch and the hint with "Sigrok" - I have never heard of it before, although it seems to exist for some years as far as the yt-videos are concerned. Any open source project, which gains through swarm intelligence is nice to have.

However, for me it is too special with its logic analyzers application and not that intuitive handling as TestController with its clear interface. As far as my usage is concerned TestController covers anything I need - and of course I only know a fraction of it, but I like the simplicity and the way of storing data and being able to recall them at any time without doing something special, which neither Fluke nor Keysight offers in such an easy way.

As a hobbyist I want to do my little projects and have not that much time (and sometimes energy) to invest in many different and new software applications, but it is good that anyone can choose for his/her own needs and special likings!

Cheers!  :-+
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1217 on: October 13, 2020, 12:45:10 pm »
V1.38 is up
New devices, async communication and images.
   Added: New devices HP3478A, TTi CPX200D made by users.
   Added: #noteImages that can and images to device definition notes.
   Added: #scriptShowImage that can be used in script and will show image when script is loaded.
   Added: #showImage that can be used in script to show images.
   Fixed: All menu's will now respect the font size setting.
   Added: getDevice now support a * in the specifications and will then return an array of all loaded devices of that type.
   Added: Optimize checkbox when generating Mode & Setup script, when checked #async will be used.
   Added: #async/#asyncCmd can be used to send commands to multiple devices in parallel.
   Added: seconds() function, can be used to time stuff. The return value has better than millisecond resolution.

; Test with four IT8512+ loads setup up and starting one at a time:
=var current=80
=var time=seconds()
=var loads=getDevice("Load*")
#foreach load (loads)
(load):current (current/size(loads)) ; on 1
#endforeach
=seconds()-time
;; 0.9693176001310349

; Same as above, but using the async function, it is nearly four times as fast and the loads will be turned on at nearly the same time.
=var current=100
=var time=seconds()
=var loads=getDevice("Load*")
#async (loads) current (current/size(loads)) ; on 1
#async
=seconds()-time
;; 0.2646647000219673
Without the second #async the time is around 0.00017, because it do not wait for the commands to be send



The image functions can be used for showing how to connect stuff:


Schematic and PCB layouts:


The loaded images are saved together with all other layout settings.
The image function can both load from local disk and from a URL.

It is also possible to put images in device definitions, this is mostly for showing switch settings or special configuration screens that may be required.
« Last Edit: October 13, 2020, 12:57:01 pm by HKJ »
 
The following users thanked this post: Marco1971

Offline gby

  • Regular Contributor
  • *
  • Posts: 248
  • Country: us
Re: Program that can log from many multimeters.
« Reply #1218 on: October 16, 2020, 08:39:40 pm »
HKJ,

I am working to improve the Tektronix oscilloscope device file to properly handle 2 versus 4 channel models.  For the setup pop up I am having trouble coming up with a simple method.  There is the tedious/brute force way of just listing #remove #cmdSetup .... lines for each CH3 and CH4 item in each #metadef section for 2 ch models.  But, that makes the device file much longer and harder to read.

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?
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1219 on: October 17, 2020, 07:08:01 am »
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?

The sections are made for exactly this type of stuff, but I have not used them in any definitions yet.

The use is something like:

#metadef
#sections list of tags

Note: the lines in the #metadef is done in sequence
Note: You can place a "#metaDebug save" line in a #metadef section, this will generate a file of the processed definition you can view.

#meta

#metaSection required tags
....
#metaSection
Note: There is no #endsection, this is done by a #metaSection without parameters
 

Offline gby

  • Regular Contributor
  • *
  • Posts: 248
  • Country: us
Re: Program that can log from many multimeters.
« Reply #1220 on: October 17, 2020, 02:41:40 pm »
HJK,

Thanks for the extra hint.  After playing a bit I believe I have sections working. 

I put a line
   #sections QuadMode QuadSetup QuadInterface
inside each #metadef section at the beginning of the device file for 4 channel scopes and added nothing for the dual channel ones.  I then put
   #metaSection <name>
        code....
   #metaSection
around each of the CH3 and CH4 portions of the Mode, Setup, and Interface definitions for channels 3 and 4 inside the device file.

Everything seems to be working properly so thanks for creating #sections, #metaSection capability and helping m.

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?

I have attached the in process Tektronix oscilloscope device file attached for your reference.  I will post a final copy when I have finished testing it.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1221 on: October 17, 2020, 03:16:45 pm »
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?

By default all parameters are supposed to be numeric, I have a build in list of functions that accept string parameters.

And please get rid of the channel no in the name, instead use:

#interfaceType OSC OSC:2 OSC:3 OSC:4

#interface setCoupling CH(channel):COUPLING (value)

Then I will add Coupling & MathDefinition on the list for string parameters
 

Offline gby

  • Regular Contributor
  • *
  • Posts: 248
  • Country: us
Re: Program that can log from many multimeters.
« Reply #1222 on: October 17, 2020, 04:35:20 pm »
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?
« Last Edit: October 17, 2020, 04:37:47 pm by gby »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1223 on: October 17, 2020, 05:02:59 pm »
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?

With two channels you use: #interfaceType OSC OSC:2
You can do that with the replace command or with the sections. Note: OSC and OSC:1 has the same meaning.

This only relates to the interface, not to anything else.

For the fifth measurement you could define it as 5 channel and then use an expression (channel==5?"I":channel), I do not really know if it is a good idea or not to do it that way.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 3038
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #1224 on: October 20, 2020, 12:52:28 pm »
V1.39 is up
It has a new function to comtrol devices.
   Added: timestamp() & dateTimestamp(), these are a easy way to get a formatted date & time values for scripting.
   Added: #SETPARAMADJUSTER to configure ParamAdjuster from script
   Added: Param adjuster, a slider to adjust any parameter on a device.
   Added: XT-FX25 cheap electronic load module
   Added: #stopScript can be used both in scripts and from command line
   Added: #chartTitle will override title on charts saved from script
   Fixed: Naming issue with Itech loads, they will now restore correctly from scripts



It is for the situations where a more analog like control is needed, instead of typing in the values. It will pick all the "number" types from the setup for the currently loaded devices. It is also possible to enter any SCPI command that accept a numeric parameter as the adjust target.
Press F1 in the popup for help.



It is possible to limit the adjustment range.

The next # commands are for people doing scripts (Note: ParamAdjuster will be included in a generated layout script).


I also did a small very simple project on connecting the XT-FX25 load to a computer: https://lygte-info.dk/project/Electronic%20Load%20XY-FZ25%20UK.html
« Last Edit: October 20, 2020, 02:28:59 pm by HKJ »
 
The following users thanked this post: PushUp, tubularnut, Marco1971


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf