Gauge (Speedometer-Style) Display Gadget:

  This gadget displays an analog gauge, similar to a speedometer or
  volt-meter.  It consists of two routines:

	speedometer_init - Call once, at startup.  Sets the basic gauge 
			background and numbers on the gauge.
	speedometer_update - Call to change and display the gauge-reading.
			For example, to move the needle.

Example of Gauge Gadget

  The formal definitions are:

    speedometer_init( char *obj_name, float min_value, float max_value, 
			char *tstrng )

	The obj_name is the name of the box where the gauge should be
	displayed.  This is normally, MY_NAME.  The min and max values
	are the range of numbers to be displayed on the gauge.
	The tstrng is the title the gauge should display.  For example,
	"Pressure", "Temperature", "MPH", etc..

	The gauge is automatically scaled to fit over the box that is
	pointed to by the obj_name/MY_NAME parameter.


    speedometer_update( char *obj_name, float value, float min_value, 
			float max_value, int color )

	The obj_name is the name of the box where the gauge should be
        displayed.  This is normally, MY_NAME.  The value parameter is 
	the value that the gauge's needle should point at.  The min and 
	max values are the range of numbers to be displayed on the gauge.
	In combination with the value parameter, they determine the
	angle of the guage's needle or reading.  The color determines
	the needle's color.

   These routines are built-into CSIM and will be recognized.
   Normally, the speedometer_init routine is placed in the "start_up"
   thread, and speedometer_update is called in a running thread or
   loop as values change.

   Moving the gauge-needle requires two calls to speedometer_update.
   First call it with the previous value, but with color=Black (0),
   to erase the old needle.  Then call with the new value and non-black
   color (ex. Red).  Save the new value for erasing on the next movement.

  Example:

	DEFINE_DEVICE_TYPE:  Pressure_meter
	 PORT_LIST( in_meas );

	 DEFINE_THREAD:  start_up
	  {
	   float new_pressure, old_pressure=0.0;
	   int length;

	   /* Set meter to display pressure in range from 0 to 100 psi. */
	   speedometer_init( MY_NAME, 0.0, 100.0, "Oil Pressure (psi)" );

	   while (1)
	    {
		/* Wait for new measurement. */
	     RECEIVE( "in_meas", &new_pressure, &length );
		/* Erase old needle. */
	     speedometer_update( MY_NAME, old_pressure, 0.0, 100.0, 0 );
		/* Display new needle position. */
	     speedometer_update( MY_NAME, new_pressure, 0.0, 100.0, Red );
		/* Save old value for next time. */
	     old_pressure = new_pressure;
	    }
	  }
	 END_DEFINE_THREAD.

	END_DEFINE_DEVICE_TYPE.