Richard Ellingworth / BarIndicator
Committer:
RichardE
Date:
Sun Nov 11 13:10:59 2012 +0000
Revision:
2:0ca3285971c6
Parent:
1:2d2a358a8f7d
Fixed more errors in comments.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RichardE 0:d4ba843a0e6a 1 /*
RichardE 0:d4ba843a0e6a 2 * SOURCE FILE : BarIndicator.h
RichardE 0:d4ba843a0e6a 3 *
RichardE 0:d4ba843a0e6a 4 * Definition of class BarIndicator.
RichardE 0:d4ba843a0e6a 5 *
RichardE 0:d4ba843a0e6a 6 */
RichardE 0:d4ba843a0e6a 7
RichardE 0:d4ba843a0e6a 8 #ifndef BarIndicatorDefined
RichardE 0:d4ba843a0e6a 9
RichardE 0:d4ba843a0e6a 10 #define BarIndicatorDefined
RichardE 0:d4ba843a0e6a 11
RichardE 0:d4ba843a0e6a 12 #include "Gameduino.h"
RichardE 0:d4ba843a0e6a 13
RichardE 0:d4ba843a0e6a 14 /** Used to draw moving bar indicators on a Gameduino display.
RichardE 0:d4ba843a0e6a 15 * The indicators are constructed using suitably defined characters.
RichardE 0:d4ba843a0e6a 16 */
RichardE 0:d4ba843a0e6a 17 class BarIndicator {
RichardE 0:d4ba843a0e6a 18
RichardE 0:d4ba843a0e6a 19 public :
RichardE 0:d4ba843a0e6a 20
RichardE 0:d4ba843a0e6a 21 /** Constructor.
RichardE 0:d4ba843a0e6a 22 */
RichardE 0:d4ba843a0e6a 23 BarIndicator();
RichardE 0:d4ba843a0e6a 24
RichardE 0:d4ba843a0e6a 25 /** Destructor.
RichardE 0:d4ba843a0e6a 26 */
RichardE 0:d4ba843a0e6a 27 virtual ~BarIndicator();
RichardE 0:d4ba843a0e6a 28
RichardE 0:d4ba843a0e6a 29 /** Set character code at which thermometer characters start.
RichardE 0:d4ba843a0e6a 30 * There should be 10 characters defined starting at this code, in this order:
RichardE 0:d4ba843a0e6a 31 * 0 : Empty
RichardE 0:d4ba843a0e6a 32 * 1 : 1/8 full
RichardE 1:2d2a358a8f7d 33 * 2 : 1/4 full
RichardE 0:d4ba843a0e6a 34 * 3 : 3/8 full
RichardE 0:d4ba843a0e6a 35 * 4 : 1/2 full
RichardE 0:d4ba843a0e6a 36 * 5 : 5/8 full
RichardE 0:d4ba843a0e6a 37 * 6 : 3/4 full
RichardE 0:d4ba843a0e6a 38 * 7 : 7/8 full
RichardE 0:d4ba843a0e6a 39 * 8 : Full
RichardE 0:d4ba843a0e6a 40 * 9 : Greyed out (used when reading is invalid).
RichardE 2:0ca3285971c6 41 * @param sc Character code at which thermometer characters start.
RichardE 0:d4ba843a0e6a 42 */
RichardE 0:d4ba843a0e6a 43 void SetStartCode( UInt8 sc ) {
RichardE 0:d4ba843a0e6a 44 startCode = sc;
RichardE 0:d4ba843a0e6a 45 }
RichardE 0:d4ba843a0e6a 46
RichardE 0:d4ba843a0e6a 47 /** Set minimum and maximum readings.
RichardE 0:d4ba843a0e6a 48 * @param min Smallest reading that can be shown on bar indicator.
RichardE 0:d4ba843a0e6a 49 * @param max Largest reading that can be shown on bar indicator.
RichardE 0:d4ba843a0e6a 50 */
RichardE 0:d4ba843a0e6a 51 void SetLimits( float min, float max ) {
RichardE 0:d4ba843a0e6a 52 this->min = min;
RichardE 0:d4ba843a0e6a 53 this->max = max;
RichardE 0:d4ba843a0e6a 54 }
RichardE 0:d4ba843a0e6a 55
RichardE 0:d4ba843a0e6a 56 /** Set location of indicator on screen using character coordinates.
RichardE 0:d4ba843a0e6a 57 * @param x X coordinate for indicator.
RichardE 0:d4ba843a0e6a 58 * @param y Y coordinate for indicator.
RichardE 0:d4ba843a0e6a 59 */
RichardE 0:d4ba843a0e6a 60 void SetLocation( UInt8 x, UInt8 y ) {
RichardE 0:d4ba843a0e6a 61 xco = x;
RichardE 0:d4ba843a0e6a 62 yco = y;
RichardE 0:d4ba843a0e6a 63 }
RichardE 0:d4ba843a0e6a 64
RichardE 0:d4ba843a0e6a 65 /** Set length of indicator (in characters).
RichardE 0:d4ba843a0e6a 66 * @param len Length of indicator.
RichardE 0:d4ba843a0e6a 67 */
RichardE 0:d4ba843a0e6a 68 void SetLength( UInt8 len ) {
RichardE 0:d4ba843a0e6a 69 length = len;
RichardE 0:d4ba843a0e6a 70 }
RichardE 0:d4ba843a0e6a 71
RichardE 0:d4ba843a0e6a 72 /** Draw bar indicator.
RichardE 0:d4ba843a0e6a 73 * Invalid readings are drawn using a greyed out indicator.
RichardE 0:d4ba843a0e6a 74 * @param gd Pointer to Gameduino to use for drawing.
RichardE 0:d4ba843a0e6a 75 * @param reading Reading to display on indicator.
RichardE 0:d4ba843a0e6a 76 * @param valid True if reading is valid, False if not.
RichardE 0:d4ba843a0e6a 77 */
RichardE 0:d4ba843a0e6a 78 void Draw( Gameduino *gd, float reading, bool valid );
RichardE 0:d4ba843a0e6a 79
RichardE 0:d4ba843a0e6a 80 private :
RichardE 0:d4ba843a0e6a 81
RichardE 0:d4ba843a0e6a 82 // Character code at which thermometer characters start.
RichardE 0:d4ba843a0e6a 83 UInt8 startCode;
RichardE 0:d4ba843a0e6a 84
RichardE 0:d4ba843a0e6a 85 // Minimum and maximum readings on thermometer.
RichardE 0:d4ba843a0e6a 86 float min, max;
RichardE 0:d4ba843a0e6a 87
RichardE 0:d4ba843a0e6a 88 // Coordinates of indicator.
RichardE 0:d4ba843a0e6a 89 UInt8 xco, yco;
RichardE 0:d4ba843a0e6a 90
RichardE 0:d4ba843a0e6a 91 // Length of indicator.
RichardE 0:d4ba843a0e6a 92 UInt8 length;
RichardE 0:d4ba843a0e6a 93
RichardE 0:d4ba843a0e6a 94 };
RichardE 0:d4ba843a0e6a 95
RichardE 0:d4ba843a0e6a 96 #endif
RichardE 0:d4ba843a0e6a 97
RichardE 0:d4ba843a0e6a 98 /* END of BarIndicator.h */