yay!

Dependencies:   TextLCD mbed-rtos mbed

Fork of 541_Pacermaker by CIS541

Committer:
sanjeet25
Date:
Wed Dec 02 09:42:45 2015 +0000
Revision:
6:a1a3e73d90f3
Parent:
5:f21d7c8ef5bc
pacemaker_dynamicAVI

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);
sanjeet25 6:a1a3e73d90f3 26 DigitalOut Dynamic_AVI(p27);
adamvan101 2:3d47bb081502 27 Serial pc(USBTX, USBRX);
adamvan101 2:3d47bb081502 28
adamvan101 2:3d47bb081502 29 int32_t signal1 = 0x01;
adamvan101 2:3d47bb081502 30 int32_t signal2 = 0x02;
adamvan101 2:3d47bb081502 31 int32_t signal3 = 0x03;
adamvan101 2:3d47bb081502 32 int32_t signal4 = 0x04;
adamvan101 3:2ed03f9e0042 33 int32_t signal5 = 0x05;
adamvan101 2:3d47bb081502 34
adamvan101 2:3d47bb081502 35 bool waitASignal;
adamvan101 2:3d47bb081502 36 bool waitVSignal;
adamvan101 4:8e3dc7e73627 37 bool APace = false;
adamvan101 4:8e3dc7e73627 38 bool waitVPace = true;
adamvan101 4:8e3dc7e73627 39 bool ASenseReceived = true;
adamvan101 4:8e3dc7e73627 40 bool VPaceNotReceived = false;
adamvan101 4:8e3dc7e73627 41 bool alarmPrinted = false;
adamvan101 4:8e3dc7e73627 42 bool TimeConstTimerOn = false;
adamvan101 4:8e3dc7e73627 43 bool changePacemakerMode = false;
adamvan101 2:3d47bb081502 44
adamvan101 2:3d47bb081502 45 int heartRate = 0;
adamvan101 4:8e3dc7e73627 46 float avgHeartRate = 0;
adamvan101 4:8e3dc7e73627 47 int pacemakerIntervalInMs = 10000;
adamvan101 2:3d47bb081502 48 int pacemakerInterval = 10;
adamvan101 4:8e3dc7e73627 49 int pacemakerMode = NORMAL;
adamvan101 3:2ed03f9e0042 50 int timeConstraint;
adamvan101 2:3d47bb081502 51
adamvan101 4:8e3dc7e73627 52 char char_read;
adamvan101 2:3d47bb081502 53
adamvan101 2:3d47bb081502 54 const int normalModeLRI= 1500;
adamvan101 5:f21d7c8ef5bc 55 const int normalModeAVI = 60; //65
adamvan101 2:3d47bb081502 56 const int normalModePVARP = 150;
adamvan101 2:3d47bb081502 57 const int normalModeURI = 600;
adamvan101 2:3d47bb081502 58 const int normalModeVRP = 100;
adamvan101 5:f21d7c8ef5bc 59 const int normalModePVAB = 20;
adamvan101 2:3d47bb081502 60
adamvan101 2:3d47bb081502 61 const int sleepModeLRI= 2000;
adamvan101 5:f21d7c8ef5bc 62 const int sleepModeAVI = 60; //65
adamvan101 2:3d47bb081502 63 const int sleepModePVARP = 150;
adamvan101 2:3d47bb081502 64 const int sleepModeURI = 1000;
adamvan101 2:3d47bb081502 65 const int sleepModeVRP = 100;
adamvan101 5:f21d7c8ef5bc 66 const int sleepModePVAB = 20;
adamvan101 2:3d47bb081502 67
adamvan101 2:3d47bb081502 68 const int exerciseModeLRI=1000;
adamvan101 5:f21d7c8ef5bc 69 const int exerciseModeAVI = 60; //65
adamvan101 2:3d47bb081502 70 const int exerciseModePVARP = 150;
adamvan101 2:3d47bb081502 71 const int exerciseModeURI = 400;
adamvan101 2:3d47bb081502 72 const int exerciseModeVRP = 100;
adamvan101 5:f21d7c8ef5bc 73 const int exerciseModePVAB = 20;
adamvan101 2:3d47bb081502 74
adamvan101 2:3d47bb081502 75 int LRI;
adamvan101 2:3d47bb081502 76 int VRP;
adamvan101 2:3d47bb081502 77 int PVARP;
adamvan101 2:3d47bb081502 78 int AVI;
adamvan101 2:3d47bb081502 79 int URI;
adamvan101 2:3d47bb081502 80 int PVAB;
adamvan101 2:3d47bb081502 81
sanjeet25 6:a1a3e73d90f3 82 int AVI_MAX=70;
sanjeet25 6:a1a3e73d90f3 83 int AVISTEP=1;
sanjeet25 6:a1a3e73d90f3 84
adamvan101 2:3d47bb081502 85 Mutex displayMutex;
adamvan101 4:8e3dc7e73627 86 Mutex AMutex;
adamvan101 4:8e3dc7e73627 87 Mutex VMutex;
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 4:8e3dc7e73627 98 Timer globalTimer;
adamvan101 2:3d47bb081502 99 Timer displayTimer;
adamvan101 4:8e3dc7e73627 100
adamvan101 4:8e3dc7e73627 101 RtosTimer *TimeConstTimer;
adamvan101 4:8e3dc7e73627 102 RtosTimer *AtrialEventTimer;