SGI Firmware Distribution disk README
================================================================
This file contains last minute release information.
===========================================================
Version 4.02		      Date: August 23, 2018
===========================================================
1. Fixed timing issue when executing a Ramp To Current sequence when SGI units are configured in parallel.
2. Fixed current scaling issue while running a sequence when SGI units are configured in parallel.
===========================================================
Version 3.90		      Date: June 3, 2016
===========================================================
1. The buffer allocated to display the error when invalid date format is entered was smaller in size than required, which may cause system reset. Increased the buffer size.
2. There is a value of 0 being read from blank flash (fresh board) for baud rate. In the NetBurner library, OpenSerial() function that opens the serial port, there is no check for baud rate being 0. This can cause divide by 0 exception which may reset the system. If Baud rate read from flash is not a valid value, its initialized to 19200 baud.
3. Used SGI settings web page for SGA.
4. Resolved RS232 connection not accepting newline "\n" termination character

===========================================================
Version 3.80		      Date: December 7, 2015
===========================================================
1. For OUTP:PROT:DEL command, converted the user supplied parameter from seconds to counts. Used integer counts to decrement the delay to avoid using floating point subtraction.
2. Latest status is read from Analog controller and returned every time Master receives STAT:PROT:COND? query instead of returning the previously polled status.
3. delay_timer_running is made FALSE (stopped/reset) during momentarily CV->CC->CV transition when voltage is reaching the set point.
===========================================================
Version 3.70		      Date: June 5, 2015
===========================================================
1. Changed html to no longer set an on_click method when a submit button is clicked.  This redundant call is causing Internet Explorer to leave off a parameter on its CGI call
2. Removed all of the Java functions off of the webpage.  Replaced them with CGI calls instead.
3. Marketing redesigned the webpages to show the company as AMETEK Programmable Power.
===========================================================
Version 3.60		      Date: December 5, 2014
===========================================================
1. Added a new button "Save" on "Remote Setup Screen" to save the baud rate. After changing the baud rate, the "Save" button needs to be pressed to retain the changes over power cycle.
2. Fixed SYST:LOCAL:LOCKOUT command.

===========================================================
Version 3.50	       	      Date: October 27, 2014
===========================================================
1. Added new feature SAVELAST.  These feature allows SG to save and recover (Voltage, Current, OVP, Output State, and Foldback) when power is turned off.(NOTE: Requires Slave Firmware V1.96)
2. Fixed device responding with 0.0.0.0 IP address.
3. Fixed front panel display from freezing when network connection is disconnected and re-established in regular intervals.

===========================================================
Version 3.30	       	      Date: July 1, 2014
===========================================================
1. Time range for SCPI commands are modified to match with the front panel range
2. Time range for Ramp Voltage and Ramp Current were modified to match front panel Sequencing range.
3. During range validation, extra flag is maintained to update the error number and during save operation, this flag is checked and will return error instead of saving the prior sequence parameters. Default parameters will be saved in that step when there is an error.

===========================================================
Version 3.20	       	      Date: February 21, 2014
===========================================================
1. Limited the maximum value of current averaging to 9 instead of 255
2. Added a check at power up to initialize the value of current averaging to 3, if the values is less than 3 or greater than 9
3. Removed some unwanted debug statements
4. Removed the code that energized the output when going from Remote to Local Mode.


===========================================================
Version 3.00	       	      Date: September 4, 2013
===========================================================
1. Includes display changes for SGI GPIB 1000V model
2. Introduced Separate flags to distinguish voltage and current values from OVP values in display section (similar to SG Ethernet)
3. For voltage readback (non-edit) values, when a voltage greater than 999.9V is displayed, the decimal place is dropped.
4. For voltage edit values, one digit after decimal point is displayed for all values of voltage.
5. Display width(printf) for voltage edit values changed from 5 to 6 to take care of values greater than 999.9V


===========================================================
Version 2.15	       	      Date: February 23, 2012
===========================================================
1. Implemented new algorithm for current measurement reporting.
2. Fixed bug on *RST command.

===========================================================
Version 2.14	       	      Date: October 23, 2008
===========================================================
1. The primary fix for this was done in the slave code where  logic was installed to prevent power control loop integral term windup while the power switcher was off.  But in the master code--which code is what this firmware release document is concerned with--modified power web page html to send a single SCPI command to the unit, rather than multiple commands, though this was later understood to not be needed to fix bug 574.
2. Code was added to all the power loop control gains k1 and k2  to be stored to flash, with the value of those gains based on unit-voltage.  This process of selecting those gains is fairly automated to thereby aid Production in setting up the best values for the power loop control gains.
3. SRQ logic modified to avoid duplicate SRQs towards VXI 11 SRQ conformance and SCPI status structure conformance improvement.

===========================================================
Version 2.06	       	      Date: October 23, 2008
===========================================================
1. Had to add new calibration constants to represent calibration for current readback in the case of a parallel system.  This fix also depended upon changes to the slave code because the slave was reading the incorrect A2D for total system current, and the incorrect A2D for standalone current, since the slave code had the total system current A2D swapped with the standalone current A2D, and worse yet, the code did a very poor job of reading the A2D that was wrongly being used (because of the swapping) as the total system current.  In a functioning parallel SG system with no wiring errors and good current sharing, this swapping would be transparent such that no obvious problem would appear; but because of the very poor job the slave code did in reading what it assumed was the total system current A2D, the poor display activity or non-activity that was witnessed in the circumstance of a parallel system became apparent in the rare circumstance of a parallel SG system.  SG is such a high power supply, very few customers ever use SG in the parallel arraignment.
2. Adjust sequence current information just before sending that information over to the slave.
3. Adjust wattage and current for total system power and current in normal operation mode and for sequences, and to adjust total system power and total system current at the point of time when sending sequence information over to the slave processor.
4. Adjusted range checking code to allow 1% overrange for both voltage and current.
5. Fixed slave code and master code to properly save total system current measurement calibration coefficients into the slave flash memory.  The power control loop was adjusted to use the total system current measurement calibration coefficients.

===========================================================
Version 2.00	       	      Date: May 5, 2008
===========================================================
1. Added SCPI command SYST:NET:OEMMODEL ""
2. Added SCPI command SYST:NET:OEMBRAND ""
3. Added SCPI command CAL:MOD:LOADSPLASH <N> <N> ""
4. Modified command: 
CAL:MOD:PROGDISP "6867"
to work differently internally to allow for insertion of data
into flash memory of Noritake display from the
LOADSPLASH command.
5. Numerious changes to the web pages and cgi interface to thereby support the selection of the correct model and brand name information for the standard web pages or the OEM web pages.
6. A MS Word Document named
"Activating and Using the New OEM Private Label Features of the SGI.doc"
is included with the released firmware code source directory and is also included in the programming directory as well.  This document explains how to use the above SCPI commands to convert a unit over for OEM use.  All supporting files are found in a firmware source code subdirectory named MakeSplashScreens\sourcecode.
7. A file to direct Production on how to prepair an OEM unit is included named "HowToOEMize.txt" in subdirectory named MakeSplashScreens\essentialfiles.
For item 2) under PROBLEMS above: 
Add code in corechan.cpp to concatenate socket data until the proper amount has been read in.

===========================================================
Version 1.19	       	      Date: March 1, 2007
===========================================================
1. Change min ramp step time back to 1ms from 10ms. (basically copy MerleV changes from 1.09-1.10 in EIB version)
2. Add #define ONE_MILLISECOND	1 to ui_def.h
3. Replace all TEN_MILLISECOND parameters with ONE_MILLISECOND  parameter in mainloop.cpp and vfd255.cpp
4. Roll Rev to 1.19 in 3 places (LOL) parfunc.cpp program.cpp vfdconst.h

===========================================================
Version 1.18	       	      Date: January 3, 2007
===========================================================
1. Host name and Ethernet fixes for LXI compliance.

===========================================================
Version 1.07	       	      Date: August 8, 2006
===========================================================
1. Initial Release