AWOS-AGL Interface Simulator Software
26 Jun 97

This package contains a suite of test programs for testing the AWOS-AGL 
interface as documented in Interface Control Document AGLCMS-MET, 
KLIA-AGLCMS.ICD2.MET, Rev 1.0 11 Febr 1997.

The suite consists of 4 programs:

awosaglsvr		This simulates the MET AWOS DPU, and emits RVR data to
							connecting clients.

awosaglcln		This simulates the AGLCMS system that receives RVR data
							from the MET AWOS DPU.

aglawossvr		This simulates the AGLCMS servers, and emits runway landing
							direction and runway lighting intensity data to connecting
							clients.

aglawoscln		This simulates the MET AWOS DPU and the MET TDR RACC 
							workstation that receives runway landing direction and
							runway lighting intensity from the AGLCMS Servers.

These programs are meant to be used for testing the actual interface code. 
However, compatibility with the simulator programs should not be taken as
compatibility with the final running system -- formal testing will still
need to be done at site. These programs serve to identify discrepancies 
in interpretation of the ICD specification. It is envisioned that as 
differences are raised and resolved, the simulator software will be updated
to reflect current undestanding. It will therefore evolve until both
parties are able to test the interface within the proper KLIA environment.


INSTALLATION

The suite runs on most UNIX systems -- it has been tested on HP/UX 10.10 and
Linux 2.0.30, and should also compile on a Solaris 2.3 system. The following
will build the applications :

1) Edit the Makefile and uncomment the section relevant for the OS you are
	 using. 

2) Run the "make" command.

3) The following applications will then be built:

		-	aglawossvr
		-	aglawoscln
		- awosaglsvr
		- awosaglcln


USAGE

* AWOSAGLSVR

	syntax: awosaglsvr port 

	This starts the AWOSAGLSVR server running at the TCP/IP port specified
	on the command line. 

	The AWOSAGLSVR will first read in a set of data values to be transmitted
	from the file awosaglsvr.dat in the current directory. This file should
	be in ASCII text format with a number (the contents of the field) per
	line. The sequence matches that of the fields specified in the ICD.

	It will then accept connections from clients. More than one client may
	connect to the service at any one time. Every 5 seconds, a data record 
	will be transmitted to connected clients.

	During its execution, AWOSAGLSVR prints a running log to stdout of the
	events that occur. The server can be stopped by interrupting the process,
	usually by pressing control-C.

	If more than one instance of the application is to run on the same machine,
	for example, to simulate two servers when only one machine is available,
	and you wish to have different data from the two services, you should start
	AWOSAGLSVR from a different directory and create an awosaglsvr.dat file
	in each local directory.

	If you wish to change the values transmitted while the server is running,
	edit the contents of the awosaglsvr.dat file and send a HUP signal to the
	running process. It will then re-read the awosaglsvr.dat file and transmit
	the updated values.


* AWOSAGLCLN

	syntax: awosaglcln host port

	This starts the AWOSAGLCLN client, and connects it to the server specified
	on the command line. 

	During execution, AWOSAGLCLN will display any data that is transmitted from
	the server. If no data is received for 12 seconds, or the session is closed
	or invalid data is received, AWOSAGLCLN will close the current session and
	re-start the connection process.


* AGLAWOSSVR

	syntax: aglawossvr port 

	This starts the AGLAWOSSVR server running at the TCP/IP port specified
	on the command line. 

	The AGLAWOSSVR will first read in a set of data values to be transmitted
	from the file aglawossvr.dat in the current directory. This file should
	be in ASCII text format with a number (the contents of the field) per
	line. The sequence matches that of the fields specified in the ICD.

	It will then accept connections from clients. More than one client may
	connect to the service at any one time. Every 5 seconds, a data record 
	will be transmitted to connected clients.

	During its execution, AGLAWOSSVR prints a running log to stdout of the
	events that occur. The server can be stopped by interrupting the process,
	usually by pressing control-C.

	If more than one instance of the application is to run on the same machine,
	for example, to simulate two servers when only one machine is available,
	and you wish to have different data from the two services, you should start
	AGLAWOSSVR from a different directory and create an aglawossvr.dat file
	in each local directory.

	If you wish to change the values transmitted while the server is running,
	edit the contents of the aglawossvr.dat file and send a HUP signal to the
	running process. It will then re-read the aglawossvr.dat file and transmit
	the updated values.


* AGLAWOSCLN

	syntax: aglawoscln host port [host port ...]

	This starts the AGLAWOSCLN client, with a list of servers (identified by
	TCP/IP host and port numbers). 

	The AGLAWOSCLN program connects to the first server specified, and dumps
	any data received from that server. If no data is received for 12 seconds,
	or if the TCP/IP connection fails or a record with data-valid=false is 
	received, the AGLAWOSCLN program will close the connection. It will then 
	attempt to connect to the next server specified on its command line. It 
	will iterate through this list until aborted with a control-C from the user.

	Since the AGLCMS system has two servers with dual network interfaces each
	(the current assumption is that each network interface will have a unique
	IP address), it is envisioned that four host-port pairs will be specified.
	The client will use whichever interface and server that is available and
	provides valid data. MET will have a total of 3 clients running.


.sha
