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

0 Members and 5 Guests are viewing this topic.

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2550 on: June 13, 2022, 07:35:15 pm »
I found the debug mode and here's what my current issue seems to be:

Quote
;; MS6514B: Tx <values?>
;; MS6514B: Rx Timeout
Thread for MS6514B
dk.hkj.script.ProgramExceptions$UnknownException: Function not found makeDouble
makeDouble(0,1,3,2,value)+____<----____" "+makeDouble(4,5,7,6,value)
        at dk.hkj.script.Script.getFunc(Script.java:93)
        at dk.hkj.script.Script.parseValue(Script.java:268)
        at dk.hkj.script.Script.parseBitOp(Script.java:316)
        at dk.hkj.script.Script.parseProduct(Script.java:388)
        at dk.hkj.script.Script.parseSum(Script.java:470)
        at dk.hkj.script.Script.parseCompare(Script.java:525)
        at dk.hkj.script.Script.parseLogical(Script.java:561)
        at dk.hkj.script.Script.parseQuestionMark(Script.java:587)
        at dk.hkj.script.Script.parseExpression(Script.java:612)
        at dk.hkj.script.Script.expression(Script.java:1220)
        at dk.hkj.main.SCPICommand.writeReadInternal(SCPICommand.java:283)
        at dk.hkj.main.SCPICommand.writeRead(SCPICommand.java:299)
        at dk.hkj.main.SCPICommand.readNumbers(SCPICommand.java:404)
        at dk.hkj.main.DeviceInterface.getValuesFromDevices(DeviceInterface.java:399)
        at dk.hkj.devices.DeviceSCPI.getValuesFromDevices(DeviceSCPI.java:44)
        at dk.hkj.main.InterfaceThreads$DeviceThread.run(InterfaceThreads.java:1523)

I clicked on the link for makeDouble on your site and it 404s, so I'm lost now....
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2551 on: June 13, 2022, 07:55:13 pm »
I found the debug mode and here's what my current issue seems to be:

I clicked on the link for makeDouble on your site and it 404s, so I'm lost now....

You need TestController V2.07 or never, it is a new function mostly for use with the Block driver.

You might have a old version of the webpage in a cache, try pressing refresh.
http://lygte-info.dk/project/TestControllerFunctions%20UK.html#makeDouble
 

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2552 on: June 13, 2022, 08:01:55 pm »
Excellent! I wouldn't have thought to update it since I only downloaded it less than a week ago!


New error though unfortunately:

 "sd" is null
        at dk.hkj.devices.DeviceDMM2.getCommInterface(DeviceDMM2.java:272)
        at dk.hkj.main.InterfaceThreads$DeviceThread.<init>(InterfaceThreads.java:1362)
        at dk.hkj.main.InterfaceThreads$ScanPorts.addDevicesSerial(InterfaceThreads.java:611)
        at dk.hkj.main.InterfaceThreads$ScanPorts.run(InterfaceThreads.java:740)
;; jSerialComm version: 2.9.1
Exception in thread "Scan ports" java.lang.NullPointerException: Cannot invoke "String.equalsIgnoreCase(String)" because "sd" is null
        at dk.hkj.devices.DeviceDMM2.getCommInterface(DeviceDMM2.java:272)
        at dk.hkj.main.InterfaceThreads$DeviceThread.<init>(InterfaceThreads.java:1362)
        at dk.hkj.main.InterfaceThreads$ScanPorts.addDevicesSerial(InterfaceThreads.java:611)
        at dk.hkj.main.InterfaceThreads$ScanPorts.run(InterfaceThreads.java:740)
 

Offline rachdatu

  • Regular Contributor
  • *
  • Posts: 54
  • Country: ch
Re: Program that can log from many multimeters.
« Reply #2553 on: June 13, 2022, 08:11:36 pm »
Hello

Is it possible to send these 3 parameters with one "Set" button?

Thanks
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2554 on: June 13, 2022, 08:12:55 pm »
Excellent! I wouldn't have thought to update it since I only downloaded it less than a week ago!

I have to publish a new version some data and obvious it was just after your downloaded it.

New error though unfortunately:

It is a DMM2 driver without a #subdriver specification
A null pointer exception is often ignored, if it happens during initialization of a driver TestController will simple not load the driver.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2555 on: June 13, 2022, 08:14:32 pm »
Is it possible to send these 3 parameters with one "Set" button?

No, but check the multi control: https://lygte-info.dk/project/TestControllerConfigDevice%20UK.html#Control_multi
 

Offline vladobac

  • Contributor
  • Posts: 43
  • Country: sk
Re: Program that can log from many multimeters.
« Reply #2556 on: June 13, 2022, 08:43:36 pm »
I only discharged a few 18650s through it at 15Amps, temperatures where really good, MOSFETs barely heating up. I was making some alterations to the serial comms on the board and blew the main processor, so didn't get a chance to do the high power test before I fried it :< .I have ordered another and it will be here next week. The swap over shouldn't be too hard, so I'll find out then!

I haven't got the calculations here with me, but I think I worked out electrically it could easily do 1.5KW under the right conditions.

Obviously my water cooler would never dump that heat, I am hoping it can sustain 500W though. I have a few 20A 24V PSUs I'd love to stress test with it :)

I want to test e-bike batteries. To do this, I need a load capable of cooling up to 450W. So I bought the DL24M-H 600W. The power is divided into 16 Mosfets with 4 fans, so I hope it lasts me a while. I plan to buy better Mosfets and protection diodes in reserve. I can make the exchange myself. For 70 € it is probably an unbeatable offer. And with the testController software from HKJ, it is a pleasure to work with it. :-+
 

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2557 on: June 14, 2022, 04:53:34 am »
I can't believe I'm still at this....

Code: [Select]
makeDouble(value,minus,pointAdjust)
makeDouble(value,minus,pointAdjust,overload)
makeDouble(valueIndex,minusIndex,pointAdjustIndex,overloadIndex,valueString)

makeDouble(123,0,1);
makeDouble(123,0,1,0);
makeDouble(0,1,2,3,"123 0 1 0");

Yes, so these examples all work. How the hell do I get the values sfter RX format into it....

for example #askValuesMathFormat makeDouble(123,0,0) will work fine as 123 as the value and displays something like 1.23°C as the value, however I need to get the output from RX into this, which I can see from the debug tab is working fine: Rx <214 0 0 1> (21.4 degrees)
« Last Edit: June 14, 2022, 05:02:42 am by SpottedDick »
 

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2558 on: June 14, 2022, 05:04:14 am »
Quote
So I bought the DL24M-H 600W.

Can you link to this? I can't find it.

EDIT: Found it. This to me seems like the modular system I've seen before. The great idea behind this would be that you can add modules as you realise you need more thermal headroom (which is the real issue with these boards). However I haven't seen the modules for sale without the controller, so it seems like a waste.


Quote
The power is divided into 16 Mosfets with 4 fans


Do you have a link to a teardown? It certainly just looks like the standard load,just with the addition of being able to modularly add more MOSFETS, which would be mean one MOSFET under each of those fans. You can check up YouTube and the like (probably here as well) for long term load tests on it. **My memory is very hazy on this as I bought this ages (like over a year) ago, but only started working on it last week**, but I think it realistically tops out around 50-80W, which would give you around 200W-320W of power with 4 modules.
« Last Edit: June 14, 2022, 06:11:24 am by SpottedDick »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2559 on: June 14, 2022, 05:33:03 am »
I can't believe I'm still at this....

Code: [Select]
makeDouble(value,minus,pointAdjust)
makeDouble(value,minus,pointAdjust,overload)
makeDouble(valueIndex,minusIndex,pointAdjustIndex,overloadIndex,valueString)

makeDouble(123,0,1);
makeDouble(123,0,1,0);
makeDouble(0,1,2,3,"123 0 1 0");

Yes, so these examples all work. How the hell do I get the values sfter RX format into it....

for example #askValuesMathFormat makeDouble(123,0,0) will work fine as 123 as the value and displays something like 1.23°C as the value, however I need to get the output from RX into this, which I can see from the debug tab is working fine: Rx <214 0 0 1> (21.4 degrees)


The result from #rxFormat is read by #askValues and your can use #askValuesMathFormat for expressions on #askValues
You could say that #rxFormat when used implements a "values?" command on the device.

#rxFormat #rxFormat 3u2 11b7 11b6 11b3
I.e. this format will generate something like: 123 0 1 0

#askValues values?
#askValuesMathFormat makeDouble(0,1,3,2,value)
To combine the 4 parameters you use makeDouble() on #askValues.
« Last Edit: June 14, 2022, 05:36:21 am by HKJ »
 

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2560 on: June 14, 2022, 05:44:16 am »
Quote from: HKJ
makeDouble(0,1,3,2,value)

This completely contradicts the documentation for makedouble....

Quote
makeDouble(value,minus,pointAdjust,overload)

value: Any numeric value, will usually be a unsigned integer.
minus: When non-zero the sign on the value will be changed.
pointAdjust: A integer specifying how many places to move the decimal point, positive value is to the right (i.e. 2==/100)
overload: Return a overload value, 1=Infinite, -1:NaN
« Last Edit: June 14, 2022, 05:47:00 am by SpottedDick »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2561 on: June 14, 2022, 05:53:00 am »
Quote from: HKJ
makeDouble(0,1,3,2,value)

This completely contradicts the documentation for makedouble....

Sorry, I do understand what you mean.

With the 5 parameter version of makeDouble() the first 4 parameters are index into the values of the 5 parameter string. I added this version to avoid having to use a couple of getElement() with each makeDouble(), this way makeDouble() will do its own optimized version of it.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2562 on: June 14, 2022, 05:58:20 am »
With async devices TestController has one problem: It is using its own timebase and need to synchronize any incoming values to that.
To do this async messages are stored, but not directly used. Instead the last incoming value is read with #askValues values? when needed.

This also means they will work with very fast log rates, but the value will only be updated when a new value is received.
 

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2563 on: June 14, 2022, 06:32:47 am »
OHHH

You need to put a note that they last part only refers to the five variable command. From the way it is in the documentation, you'd assume it's the same for them all.....


OK. We're on the home stretch :D

Three questions for you (sorry for taking up so much of your time).

1. Is there an initialisation command option, like one that only sends when it detects the device?
2. Is it possible to read the values without the askvalue command being transmittedt? This device sends them as a stream, so the ask values command does nothing except clog up the logs. (I see you answered this already and it appears the answer is no?)
3. For "65 14 00 00 00 00 D6 00 D1 07 81 08 08 09 21 0F 0D 0A" I am able to read 'D6' with '6u1'. This is now giving me the correct temperature with the changes we just made to math format. This is great, but limits us to 0-255 (so over 25 degrees, it basically rolls around). I cannot get the other bytes in to allow me to read the full range...


EDIT: Additional on question three, for the byte position is 65 14 ignored as we defined it earlier as rxStart, and so I'd actually reading D1 in the above example?

EDIT2: OK, So I need "ur" as apposed to just "u" due to the order of the bytes, and yes I am reading the aux temperature sensor, but now I know how to read the main one too :)

« Last Edit: June 14, 2022, 06:44:24 am by SpottedDick »
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2564 on: June 14, 2022, 06:46:52 am »
You need to put a note that they last part only refers to the five variable command. From the way it is in the documentation, you'd assume it's the same for them all.....

I have already updated the documentation.

1. Is there an initialisation command option, like one that only sends when it detects the device?

Yes: #initCmd
Remember you must use a "Tx" command, i.e. something like:
#initCmd tx 0x12 0x13
to send hex 12 13

2. Is it possible to read the values without the askvalue command being transmittedt? This device sends them as a stream, so the ask values command does nothing except clog up the logs. (I see you answered this already and it appears the answer is no?)

The #askValues is not being transmitted when using a async device, it is processed internally in the driver.

3. For "65 14 00 00 00 00 D6 00 D1 07 81 08 08 09 21 0F 0D 0A" I am able to read 'D6' with '6u1'. This is now giving me the correct temperature with the changes we just made to math format. This is great, but limits us to 0-255 (so over 25 degrees, it basically rolls around). I cannot get the other bytes in to allow me to read the full range...

Use 6u2 to read two bytes, 6u3 to read 3 bytes, etc. up to 6u8, you can use 6ur2 to swap endianness

EDIT: Additional on question three, for the byte position is 65 14 ignored as we defined it earlier as rxStart, and so I'd actually reading D1 in the above example?

No, it is present as byte 0 and 1.
« Last Edit: June 14, 2022, 06:50:44 am by HKJ »
 

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2565 on: June 14, 2022, 06:50:51 am »
OK, I think we're nearly done, I just hit a bug when I tried to log the data to test:

Quote
: Tx <Values?>
;; M6514F: Rx <204 0 0 1 207 0 0 1>
;; M6514F: Rx after :readmath: makeDouble(0,1,3,2,value) +" "+makeDouble(4,5,7,6,value) <20.4 20.7>
;; M6514F: Rx as numbers <20.4 20.7>
Exception in thread "LoggerSample" java.lang.NullPointerException: Cannot read field "format" because the return value of "dk.hkj.database.Format.get(int)" is null
        at dk.hkj.database.Format.formatFile(Format.java:46)
        at dk.hkj.database.DataRow.getDataRowLine(DataRow.java:53)
        at dk.hkj.main.InterfaceThreads$LoggingSample.run(InterfaceThreads.java:1251)

Quote
The #askValues is not being transmitted when using a async device, it is processed internally in the driver.

Great!
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2566 on: June 14, 2022, 07:06:47 am »
OK, I think we're nearly done, I just hit a bug when I tried to log the data to test:

Quote
: Tx <Values?>
;; M6514F: Rx <204 0 0 1 207 0 0 1>
;; M6514F: Rx after :readmath: makeDouble(0,1,3,2,value) +" "+makeDouble(4,5,7,6,value) <20.4 20.7>
;; M6514F: Rx as numbers <20.4 20.7>
Exception in thread "LoggerSample" java.lang.NullPointerException: Cannot read field "format" because the return value of "dk.hkj.database.Format.get(int)" is null
        at dk.hkj.database.Format.formatFile(Format.java:46)
        at dk.hkj.database.DataRow.getDataRowLine(DataRow.java:53)
        at dk.hkj.main.InterfaceThreads$LoggingSample.run(InterfaceThreads.java:1251)

You are logging to disk and for some reason TestController has not assigned a format to a column.
I will have to look at bit more on this and see if I can find the reason. I can easily prevent the error by returning the default format, but it is not supposed to happen.

Can you help me to recreate this error?
 

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2567 on: June 14, 2022, 07:12:46 am »
What would you like me to do?
You can see above what is happening.

You've been a fantastic help to me so far, so I have no issue returning the favour :)
 

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2568 on: June 14, 2022, 07:15:48 am »
Here's the current setup file if it is of any use.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2569 on: June 14, 2022, 07:41:21 am »
What would you like me to do?
You can see above what is happening.

You've been a fantastic help to me so far, so I have no issue returning the favour :)

You already done it.
Your definition and a data string from your device you posted above made it possible for me to recreate the bug and fix it.
Note: I can program hex strings into a Arduino to simulate a serial device.
 

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2570 on: June 14, 2022, 07:49:32 am »
Fantastic! When do we get to see the updated version?
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2571 on: June 14, 2022, 07:59:24 am »
V2.12 is up
Mainly a bug fix.
   Fixed: A bug that could prevent direct logging to disk.
   Changed: Ni & PTC sensors will return NaN (?) when value is outside range.
   Changed: New algorithm for Ni sensor
   Added: ATorch  DL24M-H, it is not completely tested
   Added: New ATorch PX100 protocol, used in DL24M-H with updated software

I had not planned on a new release this fast, but due to the bug reported by SpottedDick I decide to do a full release.

Note: I may take up to an hour from this post until it can be download. To be sure you got the correct version look at the About info on the configuration page.
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2572 on: June 14, 2022, 08:01:54 am »
Here's the current setup file if it is of any use.

Please post it again when you are finished with it.
 

Offline SpottedDick

  • Regular Contributor
  • *
  • Posts: 91
  • Country: ie
Re: Program that can log from many multimeters.
« Reply #2573 on: June 14, 2022, 08:03:20 am »
I'm going to test the temperatures with the hot air gun and also put it in the freezer to make sure the negative sign is working. Assuming that's all good, please include this with your devices in you next release so no one has to go through the torture I did :D

Thanks for your help!
 

Offline HKJTopic starter

  • Super Contributor
  • ***
  • Posts: 2904
  • Country: dk
    • Tests
Re: Program that can log from many multimeters.
« Reply #2574 on: June 14, 2022, 08:05:52 am »
I'm going to test the temperatures with the hot air gun and also put it in the freezer to make sure the negative sign is working. Assuming that's all good, please include this with your devices in you next release so no one has to go through the torture I did :D

Of course I will include it, I just need to be sure you are finished with it.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf