Adding
#askValuesReadFormat s
din't help.
Ok, I will dig out the meter tomorrow (Usually it is not on my bench) and look at it.
I didn't know what response is expected on read? command, but maybe problem is in ET3240.
I noticed that at least my ET3240 on read? command returns exactly same string that is displayed on screen (not a measured value).
For 18.50mV it returns <18.50>.
I didn't know what response is expected on read? command, but maybe problem is in ET3240.
I noticed that at least my ET3240 on read? command returns exactly same string that is displayed on screen (not a measured value).
For 18.50mV it returns <18.50>.
It is some work to get the correct exponent, I need to check both range and mode.
I will work one it, but I do not know when it is fixed.
Hi,
not sure if you prefer debug questions here or via email, but : is there a way to get slightly more detailed debug info ? I'm on linux and trying to connect with a prologix-USB clone (i.e. serial port), gives the following
Exception in thread "Scan ports" java.lang.NoClassDefFoundError: Could not initialize class com.fazecast.jSerialComm.SerialPort
at dk.hkj.comm.SerialInterface.getSerialPorts(SerialInterface.java:271)
at dk.hkj.main.InterfaceThreads$ScanPorts.run(InterfaceThreads.java:736)
(my config has one GPIB interface, id 'A', at address '/dev/ttyACM0' , and an hp3478a on A:23)
Hi,
not sure if you prefer debug questions here or via email, but : is there a way to get slightly more detailed debug info ? I'm on linux and trying to connect with a prologix-USB clone (i.e. serial port), gives the following
Exception in thread "Scan ports" java.lang.NoClassDefFoundError: Could not initialize class com.fazecast.jSerialComm.SerialPort
at dk.hkj.comm.SerialInterface.getSerialPorts(SerialInterface.java:271)
at dk.hkj.main.InterfaceThreads$ScanPorts.run(InterfaceThreads.java:736)
(my config has one GPIB interface, id 'A', at address '/dev/ttyACM0' , and an hp3478a on A:23)
You get the most detailed debug when starting with a debug on the command line (This is explained in the .bat file and works similar on all supported os). The console output contains more information than the log window.
There are generally two reasons why serial can fail:
1) You do not have access to serial ports (This problem is not present on windows)
2) The build-in driver do not support os-processor combination. The library I uses supports a lot of os-processor combinations, but not all.
Asking on the forum has the advantage that other people may be able to use the answer.
You get the most detailed debug when starting with a debug on the command line
Thanks; that's already what I was doing and the only output I got was what I pasted, from the .log file; no output in the commandline where I ran "tcrundebug".
But I tried again afresh and had a better look at the logfile ; last paste I made had trimmed a lot of what I thought were duplicate entries. I forgot about these :
Exception in thread "Scan ports" java.lang.UnsatisfiedLinkError: /tmp/jSerialComm/1640091629552-libjSerialComm.so: /tmp/jSerialComm/1640091629552-libjSerialComm.so: failed to map segment from shared object
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1817)
at java.lang.Runtime.load0(Runtime.java:810)
at java.lang.System.load(System.java:1088)
at com.fazecast.jSerialComm.SerialPort.<clinit>(SerialPort.java:252)
at dk.hkj.comm.SerialInterface.getSerialPorts(SerialInterface.java:271)
at dk.hkj.main.InterfaceThreads$ScanPorts.run(InterfaceThreads.java:736)
Aah. I think I see what's going on : for more and more linux systems, by default /tmp/ and anything in it cannot be executed (for security reasons etc etc). I wonder why jSerialComm copies itself into there...
But my theory may be wrong : I just found this issue with similar symptoms,
https://github.com/Fazecast/jSerialComm/issues/277[EDIT] My method of re-packaging the .jar with a different version of jSerialPort worked fine, but was not necessary. The problem was indeed execute permissions on /tmp, and can be worked around by modifying the tcrun / tcrundebug scripts to specify a different temp dir to the java -jar command:
-Djava.io.tmpdir=/home/...tmpdir/
See
https://github.com/Fazecast/jSerialComm/issues/387 for details.
But my theory may be wrong : I just found this issue with similar symptoms,
https://github.com/Fazecast/jSerialComm/issues/277
I will not update the current TestController with a old version of the library, the current version uses jSerialComm V2.70 and I will update when a new is published.
If you need a older version of TestController until then, i.e. from before I updated the serial library, I can put it up (That will be jSerialComm V2.6.2).
34401A in ohms range internal current source and sample time it take to charge to value and calculate capacitor capacitance in software
I will not update the current TestController with a old version of the library, the current version uses jSerialComm V2.70 and I will update when a new is published.
Of course, I understand.
I tried to re-pack your .jar and replace jserialComm with a few different versions (2.5.3, 2.6.1, 2.6.2), but I wasn't able to eliminate the issue. Perhaps my method is flawed, I don't really java :
1- fastjar -xvf TestController.jar
2- jar -xvf jSerialComm-2.5.3
3- restore the original META-INF/MANIFEST file that jSerialComm just overwrote
4- jar cmvf META-INF/MANIFEST.MF ../testcontroller_repack.jar *
Of course, I understand.
I tried to re-pack your .jar and replace jserialComm with a few different versions (2.5.3, 2.6.1, 2.6.2), but I wasn't able to eliminate the issue. Perhaps my method is flawed, I don't really java :
I have never tried to replace a library in a .jar file, when you have the source code there is no reason to do it.
From next version TestController will list the version of jSerialComm used when starting in debug mode and using serial ports.
I do not believe there is a way to check if a specific os-processor combination is supported, except the exception.
Note: To check if it is access control problems, you can try running TC from sudo.
Thanks for sharing your soft which works perfectly with my Siglent DC load.
Regarding the tti QL355P, I have two questions :
There is two entries for it in the add menu; is there a difference between them ?
It seems that Ihere is no possibility to choose a serial USB connexion for it (only socket or GPIB), is it a mistake from me ?
Regarding the tti QL355P, I have two questions :
There is two entries for it in the add menu; is there a difference between them ?
They are the same, but the ID string from the QL355P has changed, i.e. only one of them will work with your supply.
It seems that Ihere is no possibility to choose a serial USB connexion for it (only socket or GPIB), is it a mistake from me ?
To add serial:
Open the file TTiQL355P.txt
Change the line "#port 9221 GPIB" to "#port 9221 GPIB com"
After restart of TC and adding the PS you can click on the "Type" and change it from socket to serial.
If it works, please post a confirmation and I will add it to the original file.
After reading your documentation this configuratio is working :
#idString THURLBY-THANDAR,QL355P,D,1.6
#name dumy_QL335
#handle QL335
#port comFixedBaud
#baudrate 19200
result in your Commands windows :
;; Found TTI QL355P on QL355P Power Supply (COM54)
*IDN?
;; THURLBY-THANDAR,QL355P,D,1.6
There is an error in the RidenRD60xx file.
It is not possible to set the current to more than 1A. If you choose 1A, then in fact the current is set to 10A.
Yes, that is true.
Look in devicefile RidenRD60xx.txt and replace
This will be fixed in the next release.
I only have definitions for RD6006 & RD6012, if anybody makes definitions for other models I am very interested in getting them.
Note: A definition is probably not more than the 10 lines Pukker has posted, just with other values.
There are also more values where 1000 must be replaced with 100.
Done in the attached RD60xx.txt file.
Only tested with RD6012, the only one I have. Firmware is the latest version from Unisoft, which is great.
Two problems I've seen and I don't know how to solve.
1. in RD6012 popup, tab settings, the Buzzer function was inverted, corrected that, but to select On I have to click Off and vv.
2. in the tab Memory M4 is selected by default and selecting another, (M0 to M9), always returns to M4
Making settings to M4 works OK, but only M4 is selectable. Don't know how to solve.
BTW. Making settings from Testcontroller is not the main function, logging (core business) works fine.
There are also more values where 1000 must be replaced with 100.
Done in the attached RD60xx.txt file.
Only tested with RD6012, the only one I have. Firmware is the latest version from Unisoft, which is great.
Two problems I've seen and I don't know how to solve.
1. in RD6012 popup, tab settings, the Buzzer function was inverted, corrected that, but to select On I have to click Off and vv.
2. in the tab Memory M4 is selected by default and selecting another, (M0 to M9), always returns to M4
Making settings to M4 works OK, but only M4 is selectable. Don't know how to solve.
BTW. Making settings from Testcontroller is not the main function, logging (core business) works fine.
I am a bit worried about if 6006 and 6012 uses the same factors, can anybody with a 6006 confirm that this file works correctly (The original Riden file must be replaced to test it).
After reading your documentation this configuratio is working :
#idString THURLBY-THANDAR,QL355P,D,1.6
#name dumy_QL335
#handle QL335
#port comFixedBaud
#baudrate 19200
result in your Commands windows :
;; Found TTI QL355P on QL355P Power Supply (COM54)
*IDN?
;; THURLBY-THANDAR,QL355P,D,1.6
I will add the serial definitions.
And it looks like I must have QL355P_A/QL355P_B/QL355P_C to handle the different identifications strings it uses.
@TheDefpom : tested ok with a SDL1020X-E :
;; Found Siglent SDL1020X-E on 192.168.0.20 sn: SDL13GCX5R0__
*IDN?
;; Siglent Technologies,SDL1020X-E,SDL13GCX5R0__,1.1.1.21R2
@HKJ :
regarding the defintion file of the SDL "siglent SDL10xxXxx.txt" i had to change some "#interface" in order to be able to pass the parameter :
#interface setOn :SOUR:INP:STAT (value) instead of #interface setOn :SOUR:INP:STAT value (I don't kow why)
I added #interface readPower 2 just after #interface readCurrent 1 in order to get the power
@HKJ :
regarding the defintion file of the SDL "siglent SDL10xxXxx.txt" i had to change some "#interface" in order to be able to pass the parameter :
#interface setOn :SOUR:INP:STAT (value) instead of #interface setOn :SOUR:INP:STAT value (I don't kow why)
I added #interface readPower 2 just after #interface readCurrent 1 in order to get the power
Thanks, this will be included in the next release.
In definitions () will activate the "calculator", that is needed to handle variables (and expression).
Hi,
When I use the following script
=globalvar sVal=0.01
=sVal=0.05
PlatyLoad::SOUR:CURR (sVal)
=sVal=(sVal*1.1)
PlatyLoad::SOUR:CURR (sVal)
It sends the following commands to the device:
:SOUR:CURR 0.05
:SOUR:CURR 0.05500000000000001
All values are defined as D3 in the definitions file (attached).
The length of the second (double precision) value sent is tripping up my SCPI parser (which I will fix), but it would be much better if I could get TestController to send the values as D3.
Have I missed something in the little script or my definitions file that would trim the values to 3 decimal places?
Thanks
I'm trying to get the control value in this script to log.
#logcmds 0
#log 2
=globalvar sVal=0.01
=sVal=0.005
#while (sVal<3.5)
#echo (sVal)
#hasLogged
=sVal=(sVal*1.1)
#endwhile
I've created a Math variable (see attached) which doesn't update with sVal. I've tried both Formula and FormulaNU settings. I've read the documentation and some other posts here on the same topic and am still none the wiser!
Can you explain again how to log a control variable.
Thanks.
I have been working on another definition file, this time for the Siglent SPD1168X and SPD1305X power supplies.
I have it basically working apart from some weird issue where despite giving the correct commands the power supply does not action turning the output On/Off or switching between internal and external sensing, it just beeps for a command error, I have spent a few hours trying to figure out why that is happening but can't figure it out, it seems like a bug with the power supply.
The Siglent EasyPower software CAN turn the output On/Off and switch the sense, so it must be an error with the commands or quirky behaviour of the unit that the official software allows for.
Maybe someone else has come across this and knows of a fix, or has one of these supplies and a bit of time to figure it out, I may even dig into it further if I can get a network sniffer for the PC so I can see what the official software is sending the power supply (I haven't even looked yet), I use a Mac and my software couldn't sniff the entire network, again I haven't looked for something better.
On a side note, the TC software doesn't open a window or anything on Mac when clicking the About button... and doesn't fetch updates, I have to download manually off the website.
Maybe someone else has come across this and knows of a fix, or has one of these supplies and a bit of time to figure it out, I may even dig into it further if I can get a network sniffer for the PC so I can see what the official software is sending the power supply (I haven't even looked yet), I use a Mac and my software couldn't sniff the entire network, again I haven't looked for something better.
You can get Wireshark for Windows. Or, if you have a network switch or router that can do port mirroring, you could use the Mac to sniff the entire network traffic?
Can you explain again how to log a control variable.
You are doing it nearly correctly, nut I would suggest you declare sVal before using it, i.e. move the globalvar up before #log.
I have been working on another definition file, this time for the Siglent SPD1168X and SPD1305X power supplies.
I am not too happy about the problem you list, it sort of spoils a lot of the usefulness (I will include it anyway).
On a side note, the TC software doesn't open a window or anything on Mac when clicking the About button... and doesn't fetch updates, I have to download manually off the website.
Can you run it in debug mode and see if it list some error messages to the console output? I hope you can do a console output on the Mac.
Software do not download updates automatic, it will only advise your about updates.