yay!

Dependencies:   TextLCD mbed-rtos mbed

Fork of 541_Pacermaker by CIS541

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?

UserRevisionLine numberNew 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;