Steve,
I decided to try your software. You may be interested to know that it works good with a real Prologix adapter!
No luck with the Arduino. I had to add a delay in my code to get it to connect to the Arduino. The Arduino starts it's boot loader whenever the COM port is opened. It takes about two seconds from opening the port until the Arduino bails out of the boot loader and starts running application code. Do you have any delay after opening the COM port?
Also, I like the way you show the cal gain and offset. If you don't mind, i'd like to use some of your code to add that feature to mine.
--- save cal using Prologix ---
D:\Junk\cal>hp3478acalibration.exe -f file.cal -r 6
Reading calibration data from instrument...
Instrument contains valid calibration data.
Writing calibration data to file...
Operation complete.
Calibration Raw Raw
# Entry Offset Offset Gain Gain Checksum
-- -------------- ------ ------- ----- -------- --------
01 30 mV DC 000310 310 2CCCE 1.015558 C7
02 300 mV DC 000031 31 2CC3F 1.015629 CF
03 3 V DC 000004 4 2CCF5 1.015595 CD
04 30 V DC 999994 -6 1521F 1.015209 B6
05 300 V DC 000000 0 152DE 1.015168 DC
06 <not used> 000000 0 00000 1.000000 FF
07 AC V 999502 -498 14F45 1.013945 C0
08 30 Ohm 2W/4W 999904 -96 050DE 1.004968 B7
09 300 Ohm 2W/4W 999991 -9 054EE 1.005378 AC
10 3 kOhm 2W/4W 999999 -1 05344 1.005344 B9
11 30 kOhm 2W/4W 999999 -1 0512C 1.005116 B5
12 300 kOhm 2W/4W 999999 -1 0522F 1.005219 B1
13 3 MOhm 2W/4W 999999 -1 052D1 1.005171 B4
14 30 MOhm 2W/4W 999999 -1 0524F 1.005239 AF
15 300 mA DC 000260 260 3EF50 1.027950 D2
16 3A DC 000025 25 3E00D 1.027997 DA
17 <not used> 000000 0 00000 1.000000 FF
18 300 mA/3A AC 999502 -498 3C3F2 1.026292 BA
19 <not used> 000000 0 00000 1.000000 FF
--- save cal using ar488 ---
--- Note that AR488 does return the substring "GPIB" for ++ver ---
D:\Junk\cal>hp3478acalibration.exe -f file.cal -r 6
Reading calibration data from instrument...
ERROR: Failed while reading calibration data from instrument.
Extended Error Information:
Invalid GPIB adapter version string.
D:\Junk\cal>
--- program settings ---
<?xml version="1.0" encoding="utf-8" ?>
<Settings>
<!--Serial Port Settings-->
<SerialPort>
<PortName>COM11</PortName>
<BaudRate>460800</BaudRate>
<DataBits>8</DataBits>
<Parity>None</Parity> <!--Parity = None, Odd, Even, Mark, Space-->
<StopBits>One</StopBits> <!--StopBits = One, OnePointFive, Two-->
<FlowControl>None</FlowControl> <!--FlowControl = None, RequestToSend, RequestToSendXOnXOff, XOnXOff-->
</SerialPort>
<!--GPIB Adapter Settings-->
<GPIBAdapter>
<Timeout>1000</Timeout> <!--Serial/GPIB Timeout (mSec)-->
<VersionString>GPIB</VersionString> <!--Command '++ver' return value must contain this string.-->
</GPIBAdapter>
</Settings>