B600 Status Log:

08-Apr-00 - 21-Apr-00:  Upgraded to standard software practice.

1) Act2Flap.alt (03-May-00):  "pMax" changed from 3000 psi to 5000 psi.

2) PressPanel.alt method checkPrivilege (03-May-00):  TEMPORARY HOTWIRE:
	Do not deactivate panel if hydraulics on.

3) PressPanel.alt method init (03-May-00):  Changed "Actuator pressure"
	display title to "Nitrogen pressure".

4) MainPanel.alt method update (03-May-00):  Allow one pump to turn itself
	off yet allow the other to function.  But if this happens, do
	AbortAction, issue a message, and update the pump selector control
	to show the one that is off.

5) PressPanel.alt (03-May-00):  Added buttons for shutoff valve.

6) PressChannel.alt (03-May-00):  Deleted methods startManual and endManual;
	these functions are now in PressPanel.alt.  Added method zero.

7) Force balance integrators were never being zeroed.  Changed (03-May-00):
	MainPanel.alt method hsmOn:  Changed FlapChannel.forAll[#zero] to
		vm.zero.
	VirtualMachine.alt:  Added method zero, which zeros FlapChannels and
		ForceChannels.

8) WaveChannel.alt method setControlMode (08-May-00):  Added lines to start
	and stop the waveheight controller (whc) based on open or closed loop,
	to fix bug where the controller wasn't on in closed loop control.

9) VirtualMachine.alt (08-May-00):  Added gchan to writeList to fix bug that
	gage min and max limits were not being saved.

10) Act2Flap.alt (11-May-00):  Changed "pMax" back to 3000 psi from 5000 psi;
	changed "aMax" from 8 g's to 2 g's.

11) Api.alt:  Made it more like the api's of the seismic projects.

12) VirtualMachine.alt (11-May-00):  Added method "automatic" to simplify Api.alt.

13) MainPanel.alt (11-May-00):  Added method "updatePlayer" to simplify Api.alt.

14) MainPanel.alt method advanceHpsState (11-May-00):  Incorporated Gary's
	changes to the hps digital output sequencing.

15) GageCal.c (11-May-00):  Several changes:
	a) Changed default settling time from 2 sec to 20 sec.
	b) Fixed wrong correlation formula.

16) WaveCalc.c method doit (11-May-00):  Removed runup correction scale factor of 0.5.

17) Superstition fix (12-May-00):  Wave gage motors have been suspected of being
	in a run state when software comes up.  Make sure this cannot happen.
	Changed:
		GageChannel.alt method off (new):
			Clear moveDO and dirDO.
		GageChannel.alt method download:
			Add:  self.off
		VirtualMachine.alt method download:
			Add:  GageChannel.forAll[#download]
		MainPanel.alt method detach:
			Add:  GageChannel.forAll[#off]

18) FlapFgPanel (12-May-00):  BUG:  Wave program can be selected in FlapFgPanel.
	Changed:  methods activateControls, attach, and checkPrivilege.

19) Rework of GageChannel (12-May-00):  Split "gchan" into two pieces,
	"fgage" and "dgage".  Changed:
	VirtualMachine.alt:			gchan refs -> fgage, dgage.
	StatusPanel.alt:			gchan refs -> fgage, dgage.
	VirtualMachine.alt:			gchan refs -> fgage, dgage.
	GageCtl.alt method connect:		Simplified connection protocol.
	VirtualMachine.alt method download:	Connection to gages as above. 
	Any settings file (IMPORTANT):		Edit out ref to "gchan".
	constants.alt:				Delete "nGage".

20) Gage stow/deploy not working (12-May-00):  Due to min & max limits that
	are entered into gage cal panel not making it into the gage controller,
	so it would do nothing because it already thought it was at max or min.
	Changes are many, mostly due to making GageChannels know about their
	gage controller and calibrator so it can inform them about changes to
	min and max:
		GagePanel.alt:		Connect min/max controls directly to the
					gage rather than self; in method attach,
					connect gagecal to gage channel.
		VirtualMachine.alt:	After creating GageChannels, connect
					their controller to them.
		GageChannel.alt:	Add controller & calibrator ivars;
					methods to connect to them, and
					setMax/setMin pass on changes to them.

21) Disallow gage cal sequence start if running a program, and disallow
	running a program if gage cal sequence is in progress.
	GageCal.c:	Added method "active" to determine sequence in progress.
	GageCal.alt:	Added method "running" to determine sequence in progress.
	MainPanel.alt   Added test of gagecal.running to method runOkay.
	GagePanel.alt:  Added test of vm.running to method startSequence.

22) GageCtl.alt:	Added methods "deployed" and "stowed".

23) vm.c (12-May-00):  Attach master gain terminal to wave height controller.

24) MainPanel.alt method setArticulation (14-May-00):  Do not allow articulation
	mode change if closed loop wave height control is enabled (might cause
	a bump).

25) GagePanel.alt method attach (14-May-00):  When calibrating, if another gage
	is selected, the current cal sequence is aborted.

26) Mode switch between closed and open loop wave height control (14-May-00):
	Ramp.c:		Added Coops class.
	Ramp.alt:	Added Alltalk class.
	aadefine.alt:	Include Ramp.alt.
	configdsp.c:	Add "RampInit()".
	configsim.c:	Add "RampInit()".
	makefile:	Add Ramp.o.
	vm.c:		Turn on wave height controller permanently.
			Permanently connect whc out to sum xinp.
			Add Ramp object called "modeW" to ramp mode smoothly.
			Connect modeW out to sum gain[1], which multiplies xinp.
	WaveChannel.alt: Added "mode" ivar for mode switch ramp, plus all the
			required support code.
	VirtualMachine.alt: Added "modeIntvl" ivar, plus required support code.
	RatePanel.alt:	Added EditSignalDisplay for mode switch interval.
	MainPanel.alt:	Lots of additions to sequence the mode switch.
	WaveChannel.alt: Reworked method setControl to reset whc & jam mode.

27) Act2Flap.c (14-May-00):  Corrected velocity transformation.

28) WaveCalc.c (16-May-00):  Corrected flap gage compensation for flap angle.
	Math is in Kinematics.m.

29) Changes/Fixes requested by Tim/Dale/Gary (22-May-00):
    (Note: Changed modules are too numerous to list.)
	a) Added limit detectors to reference generator outputs.
	b) Changed hps estopDI to undertempDI; got rid of global undertempDI.
	c) "strutsStoreDI" expanded to "strutAStoreDI" & "strutBStoreDI". 
	d) Number of data recorder channels "nRec" increased from 8 to 16.
	   (Also, RECSIZE in vm.c increased from 0x4000 to 0x8000).
	e) Allow TVC gain restoral when running.
	f) Fixed StatusPanel log not updating with new lines.
	g) Fixed bug in MainPanel method hpsOkay that calls vm.sealDI. Should
	   be vm.sealFailDI.
	h) Allowed all flaps to be lowered/raised by setting gage index to
	   a large number.
	i) Before hsm on is allowed, a check is made to force the user to
	   enable either open loop or indep flaps control.  Hydraulics on
	   in closed loop control is disallowed.

    IMPORTANT:  Settings files must be changed as follows:
	a) "Down Gage 1A/1B/2A/2B/3A/3B" -> "Down Gage 1/2/3/4/5/6".
	b) recMap:  Change from "(8 SmallArray" to "(16 SmallArray"
	c) GageChannel:  Get rid of "min", "max" ivars.

    IMPORTANT:  Calibration file must be changed as follows:
	a) "Down Gage 1A/1B/2A/2B/3A/3B" -> "Down Gage 1/2/3/4/5/6".
	b) Change AdConverter order from 1,3,5,2,4,6 to 1,2,3,4,5,6.
	   (occurs in two places).  Just change the numbers.
	c) Change Dc2Cond order from 1,3,5,2,4,6 to 1,2,3,4,5,6.
	   Just change the numbers.
	d) Change " cal" to " pos".

    NOT changed:
	a) PressPanel:  Gary said that values are not persisted.  This was
	   found to be untrue.  No change required.
	b) Flap gages were believed to be deployed yet closed loop couldn't
	   be enabled.  Flaps deployed status will not be TRUE until all
	   flap gages are in a deployed state.  Flap stow/deploy indicator
	   shows the aggregrate status of all flap gages via "vm.fgagectl.state",
	   as does asking for "vm.fgagectl.deployed" when going to closed loop
	   control.
	c) It was thought that flap program settings were not being saved and
	   restored.  This is not the case.

30) BIG CHANGES to gage calibration/deploy/stow sequencing (25-May-00):
    (Note: Changed modules are too numerous to list.)
	a) Massive degaussing & respooling of Paul's original code.
	b) Cal can occur on multiple gages simulateously.
	c) Deploy & stow motion can be aborted.
	d) Gage feedbacks are simulated so the cal sequence can be debugged.

31) Matlab script changes (29-May-00):
	wavecal.m:	CREATOR was being put into header twice.
			Displaying Desired vs. Drive time histories caused
			error due to desired and drive files being different
			length.
	Tutorial.m:	Added.
	thd.m:		Improved algorithm.

32) VirtualMachine.alt method syncRecorder, Span.c (01-Jun-00):  Improved
	syncing of data recorder as per all other projects.

33) (01-Jun-00):  Removed Pac.c, Ahc2.c, DowntankCtlr.alt, & DtcPanel.alt
	for purposes of wave quality, due to Tim's insistance that Ahc must
	be put into the project to meet the flap THD spec, rather than
	negotiate it away in return for improved wave quality.  There is
	a cost for everything.

	IMPORTANT:  Settings files must be changed as follows:
	a) Search for and delete any references to "dtc".
	b) Eliminate panels position section at the end of the file.

34) Addition of Ahc2 for flap THD spec (02-Jun-00):
    (Note: Changed modules are too numerous to list.)

	IMPORTANT:  Settings files must be changed as follows:
	a) Eliminate panels position section at the end of the file.

35) irregular.m, regular.m (06-Jun-00):  Set max sample period to 0.5/maxFreq.

36) regular.m, wobbthist.m (new) (06-Jun-00):  Added wobbly waves.

37) POTENTIAL PROBLEM (07-Jun-00):  Data player in simulation gets errors
	on files with high sample rates.  This is due to a really small
	playBufferSize of 128, due to Unix Coops limitations.  Fixed by
	increasing the number of player buffers from 4 to 32 (set by
	"maxPlayBuffers" constant in constants.alt.

38) BUG (07-Jun-00):  Playing out wave fg, flap references are zero.  Found
	out that WaveChannel method setControlMode was not being set, which
	was supposed to be kicked off on startup by MainPanel.attach.  Due
	to addition of ramping mode switch, MainPanel method setControlMode
	ignores requests if it thinks the "to" mode is the same as the "from"
	mode, which it always is on startup.  Fixed by doing it in VirtualMachine
	method download.

39) BUG (08-Jun-00):  When playing out regular files, the Wave2Flap transformation
	was set up to use as single gain transformation based on lookup using the
	current frequency on its "freq" input terminal.  Unfortunately, when playing
	files, the Ufg "freqOut" (which drives Wave2Flap's "freq" input) outputs
	the file sample frequency, NOT the sine frequency, so the gain multiplier
	is way off.  Fix:  WaveChannel.alt method programType:  Consider all
	waveforms except Airy as irregular or unknown (same as irregular).


To do list (27-Jun-00):
b) Complete panel translation.
c) Alt->Alt.
d) Socket robustness.
e) Translation.alt:  memory leak, merge, better filtering.
f) Wave planner:  Gage selection.
g) Port MatAltFace to Unix system.
i) Read platform position.
j) If comm link error, currently Quit will not quit the appl.
k) Api.alt:  Do runOkay check before startPlayer.  APPLY TO OTHER PROJECTS.
l) From Thomas:  If get inhibit command from customer computer, must send
	back whether able to do it (if not running), then do it.


Tim's List:		26-Jun-00

Done:

1. Added: The system needs to have the ability to select any wave gage ...
a. Fixed: Basic users need to be able to control the pressure balancer.
b. Fixed: Limit detectors on pilot pressure panel are not saved
l. Down tank measuring system naming convention should
	be consistent on the status panel.
n. Added: Wobbly waves should have a starting and stopping period.
t. All the near tank wave gages should be numbered as labeled,
	that is 1, 2, 3, 4, 5, 6 starting at the gages nearest to the control room.
p. Miche regular wave needs to be added to the Matlab planner.
	It exists on the real-time CGH application but not within the planner.
	--- yes, it does--- it's called 2nd-order Stokes
u. Fixed: Any references to A or B should be changed to east or west respectively. 
j. Added: Main Panel A/B upper strut stop move buttons should be combined to
	one install upper struts button with the label Install and Stow
	and the associated led referenced to the strut prox switches
	rather than the solenoid state.
r. When the struts are in the stored position or the struts are not yet
	stowed, the wave boatd should not be able to move to a  negative
	position.  This is to prevent the operator from inadvertently
	moving the wave board back into the struts when removing the
	maintenance struts.   
	---No action; Put in manual:  Set setpoint min limit to zero when
	doing this.
w. Added: When starting the application, the upper actuator maintenance struts
	should be down if the maintenance strut proximity switches are in
	the stow position and up if the prox switches are in the installed position.
x. Fixed: The HPS indicators in the Status panel don't refect the state of the HPU's.
z. Added: Lower strut status indicators.


From June-July visit to September visit:

* String capture for language translation is complete.  99% of all strings have
been captured into french.tran.  100% of all strings in Wave Planner have been
isolated pending translation.

* Added highpass filter on wave height controller feedback.

* Iteration drive files now remember and restore iteration gain.


September 11-25 Visit:

Resolved items from Tim's List of 06-Jul-00:

* At the start of a wave quality test I deployed wave gauge 1, located at 68
meters.  I do this by first hitting stow and then hitting deploy.  For some reason,
the gauge fish line broke and I had to replace the gauge (I assure you that this
is easier said than done).  During the replacement, I discovered that there was a
problem in getting the gauge position and verified that there was a problem with
either the tempo cable or daughter card.  After I had replaced the gauge (software
and hardware having been reset during the process), I calibrated the new one and
again went to deploy it. This time the gauge started to retract and wouldn't stop.
Per Dale insight, I hit stow twice (we need to document this feature) and the probe
stopped.  I went into the DIO panel and started to see if I could manually operate
the gauge.  When I first cleared the up button (commanding it to go down) the gauge
the gauge went up.  I then started toggling the buttons and somehow the gauge
started to work properly.  This indicates to me that the gauge state machine became
confused.  The state machine for the gauge needs to be reviewed and made more robust.

--- If dio is manipulated behind the gage calibrator's back, all bets are off on
robust operation.

* Preview in the application crashed when running AiryMono3H8.out3. I had to hit
an e-stop to stop the system.  I don't think I waited 60 seconds to see if the
system would stop automatically.  The oscilloscope displays showed extremely
large numbers.  Perhaps the file didn't load or down load the file properly.
After the crash I restarted rebooted the 498 and restarted the CCGH application.
During the startup the HSM warning light came on and the SS locking valve opened
automatically.  Here's what I think needs to be done:  A check should be made to
see that the numbers are valid on downloaded files before causing a crash of the
system.

--- Use Preview.  However, if the file contains NaNs is previewed, the machine
must be shut down and the software restarted in order to flush NaNs out of the
Reference Generator.  So, when using downloaded files, do the following:  First
look at the downloaded file with the Wave Viewer in the Wave Planner.  If it
looks okay, then rehearse using Preview.  Only then actually play it.

* I think 60 seconds is too long to wait for a shutdown - something like
10 seconds more reasonable. What's the longest delay that we should expect?.

--- Setting it to anything less than 60 seconds can cause annoying trips,
according to previous experience.

* Need to re-label gauges in data recorder etc. to match the downtank
1, 2, 3, 4, 5, 6.

--- This has been done for some time.


Hugh's List 11-Sep-00

* Fix upward message drops that cause the data recorder to hang. 
	---Fixed 23-Sep-00.
* Fix Screen color map weirdness.
	---Fixed 21-Sep-00.
* Complete Alltalk-Alltalk communication.
	---Fixed 23-Sep-00.
* Complete new AltFace (both .c & .alt) to allow Matlab mex files to
simultaneously talk to both CCGH and CAGH applications.
	---Fixed 22-Sep-00.


Completed 12-Sep-00:

* AHC has been verified okay using the delay measurements from the Spectrum Analyzer.
Remember to add the sine period to any negative delays to make the delay positive.  I
believe this is why it didn't seem to work before.

* THD and repeatability tests have been run.

* MainPanel method hpsOn:  do a vm.zero to minimize drain on pilot pressure;
supposedly improves operation of pressure balancer.

* constants.alt:  Changed ahcHarmonics to all odd. 

* WaveServo.alt:  Changed feedback highpass filter to order 1 to prevent numerical
problems that Marlin found doing the same thing on WES.

* VirtualMachine.alt method run, FlapChannel.alt  method run:  Ahc wasn't being
reset on run when in a wave height mode (indep. flaps worked okay).  Added logic
to make reset on run happen when in wave height mode.


Completed 16-Sep-00:

* irregular.m, regular.m, wavecal.m, waveplay.m, waveview.m:  Got rid of
"if isempty(header)" check on opening files--- it's unnecessary.

* waveplan.m:  Added user text file importation.  Changed WaveFileFg.alt and
waveplay.m to allow a wave type of "USERWAVE".  Verified imported file playout
from both Matlab Wave Player and controller file playout panel.


Completed 18-Sep-00:

* PressPanel.alt:  Got rid of reset knob--- reset action is unnecessary and 
actually detrimental in a pressure control loop.  Turn on bump occurred when
raising out of the dead region under precharge pressure.  Had to change
all settings files var "ki" to "0.0".

* TargetBarInd.alt:  Wasn't showing a decent target box when target region
is very narrow.

* Verified as working wave height control and all combinations of mode switches.

* Removed ITERATION_GAIN header from wavecal drive files, so iteration gain is
no longer restored when a drive file is opened.


Completed 20-Sep-00:

* Vastly improved pressure balancing and rebalancing sequences.

* MainPanel.alt:  Added master setpoint move cancel button; eliminated limit
switch check in method hsmOkay as being unnecessary.

* wavecal.m, waveplay.m:  In procedures that talk to Alltalk, add an
	"altclose(alink)" after errors before returning--- best not to leave link
	open.  Old AltFace had no problem with this, but new AltLink does.
	Also removed PC/UNIX switch to distinguish Paul's mex calls from mine.

* Put in compression iterations in irregular.m.


Completed 22-Sep-00

* WaveCalc.c:  Eliminated downtank inputs--- nothing was done with them anyway.
	Also changed testpoint creation in WaveChannel.alt to eliminate index.


Completed 23-Sep-00

* Put in code to pass platform position & gage fbk from CAGH to CCGH.

* Verified Wave Player talking simultaneously to both CCGH & CAGH.


Completed 24-Sep-00

* wavecal.m improvements:
	* Change cursor to hourglass on iteration start because communication
	  to Alltalk takes so long.
	* Never compute *.drv1 if it exists, but always compute *.out1.
	* Changing iteration gain recomputes both *.drv and *.out.
	* Changing downtank distance recomputes *.out file, not *.drv.
	* Changing iteration gain while running does nothing.


Completed 25-Sep-00

* Verified that CAGH-CCGH link can drop and be reestablished quietly.

* Api.alt:  Interface.c constantly polls api.ready (& maybe others too),
	which alters "errorString", so Matlab can't get the reason for any failed
	command (always comes back as empty string).  Made another instance of
	api, called "mapi".  wavecal.m & waveplay.m now look up object 'mapi'.


Brad's List 25-Sep-00 (NOT COMPLETED)

* Verify and implement that the state machine for remote applications is correct
per Thomas' network testing notes.

* Put units on Status panel cooling system variables.  (What are they?)


* RemotePort.alt, MySystem.alt:  Notify application when link goes down so
	that application can quit.  Currently application has to be terminated
	by stopping its process.  Hugh will have to modify RemotePort.alt to
	make this possible.

* wavecal.m:  Median filter the computed drive spectrum?


BKT 25-Sep-01, in Mpls:

* Got Gary's backup of 02-Aug-01 and updated master project.

* Added user-defined spectrum capability to irregular.m.
