
yay!
Dependencies: TextLCD mbed-rtos mbed
Fork of 541_Pacermaker by
PacemakerLibrary.h@5:f21d7c8ef5bc, 2015-12-02 (annotated)
- Committer:
- adamvan101
- Date:
- Wed Dec 02 06:26:32 2015 +0000
- Revision:
- 5:f21d7c8ef5bc
- Parent:
- 4:8e3dc7e73627
- Child:
- 6:a1a3e73d90f3
Done (almost)
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 | 4:8e3dc7e73627 | 3 | #include "TextLCD.h" |
adamvan101 | 2:3d47bb081502 | 4 | |
adamvan101 | 2:3d47bb081502 | 5 | #define NORMAL 1 |
adamvan101 | 2:3d47bb081502 | 6 | #define EXERCISE 2 |
adamvan101 | 2:3d47bb081502 | 7 | #define SLEEP 3 |
adamvan101 | 2:3d47bb081502 | 8 | #define MANUAL 4 |
adamvan101 | 2:3d47bb081502 | 9 | |
adamvan101 | 2:3d47bb081502 | 10 | #define LRI_const 1 |
adamvan101 | 2:3d47bb081502 | 11 | #define URI_const 2 |
adamvan101 | 2:3d47bb081502 | 12 | #define AVI_const 3 |
adamvan101 | 2:3d47bb081502 | 13 | #define VRP_const 4 |
adamvan101 | 2:3d47bb081502 | 14 | #define PVAB_const 5 |
adamvan101 | 5:f21d7c8ef5bc | 15 | #define PVARP_const 6 |
adamvan101 | 2:3d47bb081502 | 16 | |
adamvan101 | 2:3d47bb081502 | 17 | DigitalOut vpaceLED(LED1); |
adamvan101 | 2:3d47bb081502 | 18 | DigitalOut apaceLED(LED2); |
adamvan101 | 2:3d47bb081502 | 19 | DigitalOut vsenseLED(LED3); |
adamvan101 | 2:3d47bb081502 | 20 | DigitalOut asenseLED(LED4); |
adamvan101 | 2:3d47bb081502 | 21 | DigitalOut buzzer(p21); |
adamvan101 | 2:3d47bb081502 | 22 | DigitalOut aPace(p23); |
adamvan101 | 2:3d47bb081502 | 23 | DigitalOut vPace(p24); |
adamvan101 | 2:3d47bb081502 | 24 | InterruptIn ASignal(p25); |
adamvan101 | 2:3d47bb081502 | 25 | InterruptIn VSignal(p26); |
adamvan101 | 2:3d47bb081502 | 26 | Serial pc(USBTX, USBRX); |
adamvan101 | 2:3d47bb081502 | 27 | |
adamvan101 | 2:3d47bb081502 | 28 | int32_t signal1 = 0x01; |
adamvan101 | 2:3d47bb081502 | 29 | int32_t signal2 = 0x02; |
adamvan101 | 2:3d47bb081502 | 30 | int32_t signal3 = 0x03; |
adamvan101 | 2:3d47bb081502 | 31 | int32_t signal4 = 0x04; |
adamvan101 | 3:2ed03f9e0042 | 32 | int32_t signal5 = 0x05; |
adamvan101 | 2:3d47bb081502 | 33 | |
adamvan101 | 2:3d47bb081502 | 34 | bool waitASignal; |
adamvan101 | 2:3d47bb081502 | 35 | bool waitVSignal; |
adamvan101 | 4:8e3dc7e73627 | 36 | bool APace = false; |
adamvan101 | 4:8e3dc7e73627 | 37 | bool waitVPace = true; |
adamvan101 | 4:8e3dc7e73627 | 38 | bool ASenseReceived = true; |
adamvan101 | 4:8e3dc7e73627 | 39 | bool VPaceNotReceived = false; |
adamvan101 | 4:8e3dc7e73627 | 40 | bool alarmPrinted = false; |
adamvan101 | 4:8e3dc7e73627 | 41 | bool TimeConstTimerOn = false; |
adamvan101 | 4:8e3dc7e73627 | 42 | bool changePacemakerMode = false; |
adamvan101 | 2:3d47bb081502 | 43 | |
adamvan101 | 2:3d47bb081502 | 44 | int heartRate = 0; |
adamvan101 | 4:8e3dc7e73627 | 45 | float avgHeartRate = 0; |
adamvan101 | 4:8e3dc7e73627 | 46 | int pacemakerIntervalInMs = 10000; |
adamvan101 | 2:3d47bb081502 | 47 | int pacemakerInterval = 10; |
adamvan101 | 4:8e3dc7e73627 | 48 | int pacemakerMode = NORMAL; |
adamvan101 | 3:2ed03f9e0042 | 49 | int timeConstraint; |
adamvan101 | 2:3d47bb081502 | 50 | |
adamvan101 | 4:8e3dc7e73627 | 51 | char char_read; |
adamvan101 | 2:3d47bb081502 | 52 | |
adamvan101 | 2:3d47bb081502 | 53 | const int normalModeLRI= 1500; |
adamvan101 | 5:f21d7c8ef5bc | 54 | const int normalModeAVI = 60; //65 |
adamvan101 | 2:3d47bb081502 | 55 | const int normalModePVARP = 150; |
adamvan101 | 2:3d47bb081502 | 56 | const int normalModeURI = 600; |
adamvan101 | 2:3d47bb081502 | 57 | const int normalModeVRP = 100; |
adamvan101 | 5:f21d7c8ef5bc | 58 | const int normalModePVAB = 20; |
adamvan101 | 2:3d47bb081502 | 59 | |
adamvan101 | 2:3d47bb081502 | 60 | const int sleepModeLRI= 2000; |
adamvan101 | 5:f21d7c8ef5bc | 61 | const int sleepModeAVI = 60; //65 |
adamvan101 | 2:3d47bb081502 | 62 | const int sleepModePVARP = 150; |
adamvan101 | 2:3d47bb081502 | 63 | const int sleepModeURI = 1000; |
adamvan101 | 2:3d47bb081502 | 64 | const int sleepModeVRP = 100; |
adamvan101 | 5:f21d7c8ef5bc | 65 | const int sleepModePVAB = 20; |
adamvan101 | 2:3d47bb081502 | 66 | |
adamvan101 | 2:3d47bb081502 | 67 | const int exerciseModeLRI=1000; |
adamvan101 | 5:f21d7c8ef5bc | 68 | const int exerciseModeAVI = 60; //65 |
adamvan101 | 2:3d47bb081502 | 69 | const int exerciseModePVARP = 150; |
adamvan101 | 2:3d47bb081502 | 70 | const int exerciseModeURI = 400; |
adamvan101 | 2:3d47bb081502 | 71 | const int exerciseModeVRP = 100; |
adamvan101 | 5:f21d7c8ef5bc | 72 | const int exerciseModePVAB = 20; |
adamvan101 | 2:3d47bb081502 | 73 | |
adamvan101 | 2:3d47bb081502 | 74 | int LRI; |
adamvan101 | 2:3d47bb081502 | 75 | int VRP; |
adamvan101 | 2:3d47bb081502 | 76 | int PVARP; |
adamvan101 | 2:3d47bb081502 | 77 | int AVI; |
adamvan101 | 2:3d47bb081502 | 78 | int URI; |
adamvan101 | 2:3d47bb081502 | 79 | int PVAB; |
adamvan101 | 2:3d47bb081502 | 80 | |
adamvan101 | 2:3d47bb081502 | 81 | Mutex displayMutex; |
adamvan101 | 4:8e3dc7e73627 | 82 | Mutex AMutex; |
adamvan101 | 4:8e3dc7e73627 | 83 | Mutex VMutex; |
adamvan101 | 2:3d47bb081502 | 84 | Mutex timeConstraintMutex; |
adamvan101 | 2:3d47bb081502 | 85 | Mutex heartRateMutex; |
adamvan101 | 3:2ed03f9e0042 | 86 | Mutex observationMutex; |
adamvan101 | 2:3d47bb081502 | 87 | |
adamvan101 | 2:3d47bb081502 | 88 | Thread *P_PacemakerKeyboard; |
adamvan101 | 2:3d47bb081502 | 89 | Thread *P_PacemakerSend; |
adamvan101 | 2:3d47bb081502 | 90 | Thread *P_PacemakerModeSwitch; |
adamvan101 | 2:3d47bb081502 | 91 | Thread *P_PacemakerReceive; |
adamvan101 | 3:2ed03f9e0042 | 92 | Thread *P_PacemakerAlarm; |
adamvan101 | 2:3d47bb081502 | 93 | |
adamvan101 | 4:8e3dc7e73627 | 94 | Timer globalTimer; |
adamvan101 | 2:3d47bb081502 | 95 | Timer displayTimer; |
adamvan101 | 4:8e3dc7e73627 | 96 | |
adamvan101 | 4:8e3dc7e73627 | 97 | RtosTimer *TimeConstTimer; |
adamvan101 | 4:8e3dc7e73627 | 98 | RtosTimer *AtrialEventTimer; |