
yay!
Dependencies: TextLCD mbed-rtos mbed
Fork of 541_Pacermaker by
main.h@3:2ed03f9e0042, 2015-12-02 (annotated)
- Committer:
- adamvan101
- Date:
- Wed Dec 02 02:27:30 2015 +0000
- Revision:
- 3:2ed03f9e0042
- Parent:
- 2:3d47bb081502
Alarms!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
adamvan101 | 2:3d47bb081502 | 1 | #include "mbed.h" |
adamvan101 | 2:3d47bb081502 | 2 | #include "rtos.h" |
adamvan101 | 2:3d47bb081502 | 3 | |
adamvan101 | 2:3d47bb081502 | 4 | #define NORMAL 1 |
adamvan101 | 2:3d47bb081502 | 5 | #define EXERCISE 2 |
adamvan101 | 2:3d47bb081502 | 6 | #define SLEEP 3 |
adamvan101 | 2:3d47bb081502 | 7 | #define MANUAL 4 |
adamvan101 | 2:3d47bb081502 | 8 | |
adamvan101 | 2:3d47bb081502 | 9 | #define LRI_const 1 |
adamvan101 | 2:3d47bb081502 | 10 | #define URI_const 2 |
adamvan101 | 2:3d47bb081502 | 11 | #define AVI_const 3 |
adamvan101 | 2:3d47bb081502 | 12 | #define VRP_const 4 |
adamvan101 | 2:3d47bb081502 | 13 | #define PVAB_const 5 |
adamvan101 | 2:3d47bb081502 | 14 | #define PVARP_const 6 |
adamvan101 | 2:3d47bb081502 | 15 | |
adamvan101 | 2:3d47bb081502 | 16 | DigitalOut vpaceLED(LED1); |
adamvan101 | 2:3d47bb081502 | 17 | DigitalOut apaceLED(LED2); |
adamvan101 | 2:3d47bb081502 | 18 | DigitalOut vsenseLED(LED3); |
adamvan101 | 2:3d47bb081502 | 19 | DigitalOut asenseLED(LED4); |
adamvan101 | 2:3d47bb081502 | 20 | DigitalOut buzzer(p21); |
adamvan101 | 2:3d47bb081502 | 21 | DigitalOut aPace(p23); |
adamvan101 | 2:3d47bb081502 | 22 | DigitalOut vPace(p24); |
adamvan101 | 2:3d47bb081502 | 23 | InterruptIn ASignal(p25); |
adamvan101 | 2:3d47bb081502 | 24 | InterruptIn VSignal(p26); |
adamvan101 | 2:3d47bb081502 | 25 | Serial pc(USBTX, USBRX); |
adamvan101 | 2:3d47bb081502 | 26 | |
adamvan101 | 2:3d47bb081502 | 27 | int32_t signal1 = 0x01; |
adamvan101 | 2:3d47bb081502 | 28 | int32_t signal2 = 0x02; |
adamvan101 | 2:3d47bb081502 | 29 | int32_t signal3 = 0x03; |
adamvan101 | 2:3d47bb081502 | 30 | int32_t signal4 = 0x04; |
adamvan101 | 3:2ed03f9e0042 | 31 | int32_t signal5 = 0x05; |
adamvan101 | 2:3d47bb081502 | 32 | |
adamvan101 | 2:3d47bb081502 | 33 | bool waitASignal; |
adamvan101 | 2:3d47bb081502 | 34 | bool waitVSignal; |
adamvan101 | 2:3d47bb081502 | 35 | bool paceA = false; |
adamvan101 | 2:3d47bb081502 | 36 | bool observationChange = false; |
adamvan101 | 2:3d47bb081502 | 37 | bool digitOneReceived = false; |
adamvan101 | 2:3d47bb081502 | 38 | bool modeChanged = false; |
adamvan101 | 2:3d47bb081502 | 39 | bool canPaceV = true; |
adamvan101 | 2:3d47bb081502 | 40 | bool paceVPending = false; |
adamvan101 | 2:3d47bb081502 | 41 | bool ringingAlarm = false; |
adamvan101 | 2:3d47bb081502 | 42 | bool timerRunning = false; |
adamvan101 | 2:3d47bb081502 | 43 | bool aSenseOccurred = true; |
adamvan101 | 2:3d47bb081502 | 44 | bool digitTwoReceived = false; |
adamvan101 | 2:3d47bb081502 | 45 | |
adamvan101 | 2:3d47bb081502 | 46 | int heartRate = 0; |
adamvan101 | 3:2ed03f9e0042 | 47 | int avgHeartRate = 0; |
adamvan101 | 2:3d47bb081502 | 48 | int observationInterval = 10000; |
adamvan101 | 2:3d47bb081502 | 49 | int pacemakerInterval = 10; |
adamvan101 | 2:3d47bb081502 | 50 | int rateCoefficient = 6; |
adamvan101 | 2:3d47bb081502 | 51 | int paceMakerMode = NORMAL; |
adamvan101 | 2:3d47bb081502 | 52 | int uriTimeOutStatus = URI_const; |
adamvan101 | 3:2ed03f9e0042 | 53 | int timeConstraint; |
adamvan101 | 2:3d47bb081502 | 54 | |
adamvan101 | 3:2ed03f9e0042 | 55 | char ch; |
adamvan101 | 2:3d47bb081502 | 56 | |
adamvan101 | 2:3d47bb081502 | 57 | const int normalModeLRI= 1500; |
adamvan101 | 2:3d47bb081502 | 58 | const int normalModeAVI = 65; |
adamvan101 | 2:3d47bb081502 | 59 | const int normalModePVARP = 150; |
adamvan101 | 2:3d47bb081502 | 60 | const int normalModeURI = 600; |
adamvan101 | 2:3d47bb081502 | 61 | const int normalModeVRP = 100; |
adamvan101 | 2:3d47bb081502 | 62 | const int normalModePVAB = 10; |
adamvan101 | 2:3d47bb081502 | 63 | |
adamvan101 | 2:3d47bb081502 | 64 | const int sleepModeLRI= 2000; |
adamvan101 | 2:3d47bb081502 | 65 | const int sleepModeAVI = 65; |
adamvan101 | 2:3d47bb081502 | 66 | const int sleepModePVARP = 150; |
adamvan101 | 2:3d47bb081502 | 67 | const int sleepModeURI = 1000; |
adamvan101 | 2:3d47bb081502 | 68 | const int sleepModeVRP = 100; |
adamvan101 | 2:3d47bb081502 | 69 | const int sleepModePVAB = 10; |
adamvan101 | 2:3d47bb081502 | 70 | |
adamvan101 | 2:3d47bb081502 | 71 | const int exerciseModeLRI=1000; |
adamvan101 | 2:3d47bb081502 | 72 | const int exerciseModeAVI = 65; |
adamvan101 | 2:3d47bb081502 | 73 | const int exerciseModePVARP = 150; |
adamvan101 | 2:3d47bb081502 | 74 | const int exerciseModeURI = 400; |
adamvan101 | 2:3d47bb081502 | 75 | const int exerciseModeVRP = 100; |
adamvan101 | 2:3d47bb081502 | 76 | const int exerciseModePVAB = 10; |
adamvan101 | 2:3d47bb081502 | 77 | |
adamvan101 | 2:3d47bb081502 | 78 | int LRI; |
adamvan101 | 2:3d47bb081502 | 79 | int VRP; |
adamvan101 | 2:3d47bb081502 | 80 | int PVARP; |
adamvan101 | 2:3d47bb081502 | 81 | int AVI; |
adamvan101 | 2:3d47bb081502 | 82 | int URI; |
adamvan101 | 2:3d47bb081502 | 83 | int PVAB; |
adamvan101 | 2:3d47bb081502 | 84 | |
adamvan101 | 2:3d47bb081502 | 85 | Mutex displayMutex; |
adamvan101 | 2:3d47bb081502 | 86 | Mutex expectAMutex; |
adamvan101 | 2:3d47bb081502 | 87 | Mutex expectVMutex; |
adamvan101 | 2:3d47bb081502 | 88 | Mutex timeConstraintMutex; |
adamvan101 | 2:3d47bb081502 | 89 | Mutex heartRateMutex; |
adamvan101 | 3:2ed03f9e0042 | 90 | Mutex observationMutex; |
adamvan101 | 2:3d47bb081502 | 91 | |
adamvan101 | 2:3d47bb081502 | 92 | Thread *P_PacemakerKeyboard; |
adamvan101 | 2:3d47bb081502 | 93 | Thread *P_PacemakerSend; |
adamvan101 | 2:3d47bb081502 | 94 | Thread *P_PacemakerModeSwitch; |
adamvan101 | 2:3d47bb081502 | 95 | Thread *P_PacemakerReceive; |
adamvan101 | 3:2ed03f9e0042 | 96 | Thread *P_PacemakerAlarm; |
adamvan101 | 2:3d47bb081502 | 97 | |
adamvan101 | 2:3d47bb081502 | 98 | Timer displayTimer; |
adamvan101 | 2:3d47bb081502 | 99 | RtosTimer *TimeOutTimer; |
adamvan101 | 2:3d47bb081502 | 100 | RtosTimer *URITimeOutTimer; |
adamvan101 | 2:3d47bb081502 | 101 | RtosTimer *SecondsTimer; |