Repository for import to local machine

Dependencies:   DMBasicGUI DMSupport

Committer:
jmitc91516
Date:
Mon Jul 31 15:37:57 2017 +0000
Revision:
8:26e49e6955bd
Parent:
1:a5258871b33d
Method ramp scrolling improved, and more bitmaps moved to QSPI memory

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jmitc91516 1:a5258871b33d 1 #ifndef SERVICEINTERVAL_H
jmitc91516 1:a5258871b33d 2 #define SERVICEINTERVAL_H
jmitc91516 1:a5258871b33d 3
jmitc91516 1:a5258871b33d 4 #include "mbed.h"
jmitc91516 1:a5258871b33d 5 #include "DMBoard.h"
jmitc91516 1:a5258871b33d 6
jmitc91516 1:a5258871b33d 7 #include "USBHostGC.h"
jmitc91516 1:a5258871b33d 8
jmitc91516 1:a5258871b33d 9 /*
jmitc91516 1:a5258871b33d 10 These classes do what the name implies - handle service intervals. These are measured
jmitc91516 1:a5258871b33d 11 either in instrument cycles (i.e. runs), or time - in the latter case, the interval
jmitc91516 1:a5258871b33d 12 is always twelve months.
jmitc91516 1:a5258871b33d 13
jmitc91516 1:a5258871b33d 14 Each ServiceInterval object deals with one (and only one) service interval, allowing the caller
jmitc91516 1:a5258871b33d 15 to specify its description (a text string).
jmitc91516 1:a5258871b33d 16
jmitc91516 1:a5258871b33d 17 Note that the caller must 'poll' the ServiceInterval object to find out whether or not
jmitc91516 1:a5258871b33d 18 it has expired - it does not raise an interrupt, or call a callback function,
jmitc91516 1:a5258871b33d 19 or do anything unsolicited.
jmitc91516 1:a5258871b33d 20 */
jmitc91516 1:a5258871b33d 21
jmitc91516 1:a5258871b33d 22 //#define SERVICE_INTERVALS_ACTIVE // #define this to activate the ServiceInterval code in the whole application
jmitc91516 1:a5258871b33d 23
jmitc91516 1:a5258871b33d 24 class ServiceInterval {
jmitc91516 1:a5258871b33d 25 public:
jmitc91516 1:a5258871b33d 26 ServiceInterval(char *intervalDescription, int touchAreaIndex);
jmitc91516 1:a5258871b33d 27 ~ServiceInterval();
jmitc91516 1:a5258871b33d 28
jmitc91516 1:a5258871b33d 29 int GetDescriptionLength(void);
jmitc91516 1:a5258871b33d 30 void GetDescription(char *buffer);
jmitc91516 1:a5258871b33d 31
jmitc91516 1:a5258871b33d 32 virtual void Start(void) = 0;
jmitc91516 1:a5258871b33d 33
jmitc91516 1:a5258871b33d 34 virtual void InstrumentHasCycled(void) = 0;
jmitc91516 1:a5258871b33d 35
jmitc91516 1:a5258871b33d 36 virtual bool HasExpired(void) = 0;
jmitc91516 1:a5258871b33d 37
jmitc91516 1:a5258871b33d 38 bool IntervalHasStarted(void) { return intervalHasStarted; }
jmitc91516 1:a5258871b33d 39
jmitc91516 1:a5258871b33d 40 virtual void SaveToQSPISettings(void) = 0;
jmitc91516 1:a5258871b33d 41 virtual void ReadFromQSPISettings(void) = 0;
jmitc91516 1:a5258871b33d 42
jmitc91516 1:a5258871b33d 43 static void SetupAllServiceIntervals(void);
jmitc91516 1:a5258871b33d 44 static void StartAllServiceIntervals(void);
jmitc91516 1:a5258871b33d 45 static int GetServiceIntervalCount(void) { return SERVICE_INTERVAL_COUNT; }
jmitc91516 1:a5258871b33d 46 static ServiceInterval* GetServiceInterval(int serviceIntervalIndex);
jmitc91516 1:a5258871b33d 47 static void TellAllServiceIntervalsInstrumentHasCycled(void);
jmitc91516 1:a5258871b33d 48 static bool AtLeastOneServiceIntervalHasExpired(void);
jmitc91516 1:a5258871b33d 49 static ServiceInterval* GetNextExpiredServiceInterval(ServiceInterval* thisExpiredInterval);
jmitc91516 1:a5258871b33d 50 static void SaveAllServiceIntervalsToQSPISettings(void);
jmitc91516 1:a5258871b33d 51 static void ReadAllServiceIntervalsFromQSPISettings(void);
jmitc91516 1:a5258871b33d 52 static bool IsServicedTouchArea(int touchAreaIndex);
jmitc91516 1:a5258871b33d 53 static bool DealWithServicedTouchArea(int touchAreaIndex);
jmitc91516 1:a5258871b33d 54
jmitc91516 1:a5258871b33d 55
jmitc91516 1:a5258871b33d 56 private:
jmitc91516 1:a5258871b33d 57 char *description;
jmitc91516 1:a5258871b33d 58
jmitc91516 1:a5258871b33d 59 enum { SERVICE_INTERVAL_COUNT = 6 };
jmitc91516 1:a5258871b33d 60 static ServiceInterval* serviceIntervalArray[SERVICE_INTERVAL_COUNT];
jmitc91516 1:a5258871b33d 61
jmitc91516 1:a5258871b33d 62 int servicedTouchArea; // The easyGUI touch area that specifies "this component has now been serviced"
jmitc91516 1:a5258871b33d 63
jmitc91516 1:a5258871b33d 64
jmitc91516 1:a5258871b33d 65 protected:
jmitc91516 1:a5258871b33d 66 bool intervalHasStarted;
jmitc91516 1:a5258871b33d 67 };
jmitc91516 1:a5258871b33d 68
jmitc91516 1:a5258871b33d 69 class CyclesServiceInterval : public ServiceInterval {
jmitc91516 1:a5258871b33d 70 public:
jmitc91516 1:a5258871b33d 71 CyclesServiceInterval(char *intervalDescription, int touchAreaIndex);
jmitc91516 1:a5258871b33d 72
jmitc91516 1:a5258871b33d 73 void SetDurationInNumberOfInstrumentCycles(int newDurationInNumberOfInstrumentCycles);
jmitc91516 1:a5258871b33d 74
jmitc91516 1:a5258871b33d 75 virtual void InstrumentHasCycled(void);
jmitc91516 1:a5258871b33d 76
jmitc91516 1:a5258871b33d 77 virtual void Start(void);
jmitc91516 1:a5258871b33d 78
jmitc91516 1:a5258871b33d 79 virtual bool HasExpired(void) { return intervalHasExpired; }
jmitc91516 1:a5258871b33d 80
jmitc91516 1:a5258871b33d 81 virtual void SaveToQSPISettings(void);
jmitc91516 1:a5258871b33d 82 virtual void ReadFromQSPISettings(void);
jmitc91516 1:a5258871b33d 83
jmitc91516 1:a5258871b33d 84 private:
jmitc91516 1:a5258871b33d 85 int durationInNumberOfInstrumentCycles;
jmitc91516 1:a5258871b33d 86 int countOfRemainingCycles;
jmitc91516 1:a5258871b33d 87
jmitc91516 1:a5258871b33d 88 bool intervalHasExpired;
jmitc91516 1:a5258871b33d 89 };
jmitc91516 1:a5258871b33d 90
jmitc91516 1:a5258871b33d 91 class TwelveMonthServiceInterval : public ServiceInterval {
jmitc91516 1:a5258871b33d 92 public:
jmitc91516 1:a5258871b33d 93 TwelveMonthServiceInterval(char *intervalDescription, int touchAreaIndex);
jmitc91516 1:a5258871b33d 94
jmitc91516 1:a5258871b33d 95 virtual void Start(void);
jmitc91516 1:a5258871b33d 96
jmitc91516 1:a5258871b33d 97 virtual void InstrumentHasCycled(void);
jmitc91516 1:a5258871b33d 98
jmitc91516 1:a5258871b33d 99 virtual bool HasExpired(void);
jmitc91516 1:a5258871b33d 100
jmitc91516 1:a5258871b33d 101 virtual void SaveToQSPISettings(void);
jmitc91516 1:a5258871b33d 102 virtual void ReadFromQSPISettings(void);
jmitc91516 1:a5258871b33d 103
jmitc91516 1:a5258871b33d 104 private:
jmitc91516 1:a5258871b33d 105 struct tm startTime;
jmitc91516 1:a5258871b33d 106
jmitc91516 1:a5258871b33d 107 static void GetCurrentLocalTime(struct tm *currentLocalTime);
jmitc91516 1:a5258871b33d 108 };
jmitc91516 1:a5258871b33d 109
jmitc91516 1:a5258871b33d 110 #endif // SERVICEINTERVAL_H
jmitc91516 1:a5258871b33d 111