
the complete model of the heart model
Dependencies: TextLCD mbed-rtos mbed
Fork of heart by
main.cpp@0:08412491e70f, 2016-11-28 (annotated)
- Committer:
- williamrchr
- Date:
- Mon Nov 28 20:40:31 2016 +0000
- Revision:
- 0:08412491e70f
- Child:
- 1:6ad7b5bf9c27
first push;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
williamrchr | 0:08412491e70f | 1 | #include "mbed.h" |
williamrchr | 0:08412491e70f | 2 | #include "rtos.h" |
williamrchr | 0:08412491e70f | 3 | #include "TextLCD.h" |
williamrchr | 0:08412491e70f | 4 | |
williamrchr | 0:08412491e70f | 5 | TextLCD lcd(p15,p16,p17,p18,p19,p20,TextLCD::LCD16x2); |
williamrchr | 0:08412491e70f | 6 | Serial pc(USBTX, USBRX); //set up serial |
williamrchr | 0:08412491e70f | 7 | DigitalOut natAPace(LED1); //leds for pacing |
williamrchr | 0:08412491e70f | 8 | DigitalOut natVPace(LED2); |
williamrchr | 0:08412491e70f | 9 | DigitalOut aPace(LED3); |
williamrchr | 0:08412491e70f | 10 | DigitalOut vPace(LED4); |
williamrchr | 0:08412491e70f | 11 | DigitalOut alarm(p5); //pin for alarm |
williamrchr | 0:08412491e70f | 12 | |
williamrchr | 0:08412491e70f | 13 | DigitalOut a_signal(p6); //connected to pm |
williamrchr | 0:08412491e70f | 14 | DigitalOut v_signal(p7); //connected to pm |
williamrchr | 0:08412491e70f | 15 | |
williamrchr | 0:08412491e70f | 16 | unsigned int a_time = 0; |
williamrchr | 0:08412491e70f | 17 | unsigned int v_time = 0; |
williamrchr | 0:08412491e70f | 18 | |
williamrchr | 0:08412491e70f | 19 | int mode = 0; //0 = random, 1 = manual, 2 = test |
williamrchr | 0:08412491e70f | 20 | |
williamrchr | 0:08412491e70f | 21 | //constants |
williamrchr | 0:08412491e70f | 22 | |
williamrchr | 0:08412491e70f | 23 | const int minwait_A = 10; |
williamrchr | 0:08412491e70f | 24 | const int minwait_V = 20; |
williamrchr | 0:08412491e70f | 25 | const int LRI = 1000; |
williamrchr | 0:08412491e70f | 26 | const int VRP = 400; |
williamrchr | 0:08412491e70f | 27 | const int PVARP = 500; |
williamrchr | 0:08412491e70f | 28 | const int URI = 1000; |
williamrchr | 0:08412491e70f | 29 | const int AVI = 100; |
williamrchr | 0:08412491e70f | 30 | |
williamrchr | 0:08412491e70f | 31 | void switch_modes() { |
williamrchr | 0:08412491e70f | 32 | switch(mode) { |
williamrchr | 0:08412491e70f | 33 | case 0: |
williamrchr | 0:08412491e70f | 34 | break; |
williamrchr | 0:08412491e70f | 35 | case 1: |
williamrchr | 0:08412491e70f | 36 | break; |
williamrchr | 0:08412491e70f | 37 | case 2: |
williamrchr | 0:08412491e70f | 38 | break; |
williamrchr | 0:08412491e70f | 39 | |
williamrchr | 0:08412491e70f | 40 | } |
williamrchr | 0:08412491e70f | 41 | |
williamrchr | 0:08412491e70f | 42 | } |
williamrchr | 0:08412491e70f | 43 | |
williamrchr | 0:08412491e70f | 44 | |
williamrchr | 0:08412491e70f | 45 | void received_apace() { |
williamrchr | 0:08412491e70f | 46 | //TODO: DO |
williamrchr | 0:08412491e70f | 47 | aPace = 1; |
williamrchr | 0:08412491e70f | 48 | |
williamrchr | 0:08412491e70f | 49 | } |
williamrchr | 0:08412491e70f | 50 | |
williamrchr | 0:08412491e70f | 51 | void received_vpace() { |
williamrchr | 0:08412491e70f | 52 | //TODO: DO |
williamrchr | 0:08412491e70f | 53 | vPace = 1; |
williamrchr | 0:08412491e70f | 54 | |
williamrchr | 0:08412491e70f | 55 | } |
williamrchr | 0:08412491e70f | 56 | |
williamrchr | 0:08412491e70f | 57 | void send_signal(int type) { //type=0 a_signal, type=1 v_signal |
williamrchr | 0:08412491e70f | 58 | |
williamrchr | 0:08412491e70f | 59 | switch(type) { |
williamrchr | 0:08412491e70f | 60 | case 0: |
williamrchr | 0:08412491e70f | 61 | a_signal = 1; |
williamrchr | 0:08412491e70f | 62 | case 1: |
williamrchr | 0:08412491e70f | 63 | v_signal = 1; |
williamrchr | 0:08412491e70f | 64 | } |
williamrchr | 0:08412491e70f | 65 | //TODO: Determine if time is right (is this supposed to be minWait?) |
williamrchr | 0:08412491e70f | 66 | wait(1); |
williamrchr | 0:08412491e70f | 67 | a_sense = 0; |
williamrchr | 0:08412491e70f | 68 | v_sense = 0; |
williamrchr | 0:08412491e70f | 69 | } |
williamrchr | 0:08412491e70f | 70 | |
williamrchr | 0:08412491e70f | 71 | void heart_keyboard() { |
williamrchr | 0:08412491e70f | 72 | while(true) { //thread is continuously running |
williamrchr | 0:08412491e70f | 73 | if(pc.readable()) { |
williamrchr | 0:08412491e70f | 74 | char c = pc.getc(); |
williamrchr | 0:08412491e70f | 75 | |
williamrchr | 0:08412491e70f | 76 | switch(c) { |
williamrchr | 0:08412491e70f | 77 | case 'r': //set to random mode |
williamrchr | 0:08412491e70f | 78 | mode = 0; |
williamrchr | 0:08412491e70f | 79 | break; |
williamrchr | 0:08412491e70f | 80 | case 'm': //set to manual mode |
williamrchr | 0:08412491e70f | 81 | mode = 1; |
williamrchr | 0:08412491e70f | 82 | break; |
williamrchr | 0:08412491e70f | 83 | case 't': //set to test mode |
williamrchr | 0:08412491e70f | 84 | mode = 2; |
williamrchr | 0:08412491e70f | 85 | break; |
williamrchr | 0:08412491e70f | 86 | case 'a': //asignal |
williamrchr | 0:08412491e70f | 87 | if(mode) { //only if in manual (heart_mode == 1) |
williamrchr | 0:08412491e70f | 88 | send_signal(0); |
williamrchr | 0:08412491e70f | 89 | } |
williamrchr | 0:08412491e70f | 90 | break; |
williamrchr | 0:08412491e70f | 91 | case 'v': //vsignal |
williamrchr | 0:08412491e70f | 92 | if(mode) { //only if in manual (heart_mode == 1) |
williamrchr | 0:08412491e70f | 93 | send_signal(1); |
williamrchr | 0:08412491e70f | 94 | } |
williamrchr | 0:08412491e70f | 95 | break; |
williamrchr | 0:08412491e70f | 96 | default: //erroneous key get rid of it |
williamrchr | 0:08412491e70f | 97 | break; |
williamrchr | 0:08412491e70f | 98 | } |
williamrchr | 0:08412491e70f | 99 | } |
williamrchr | 0:08412491e70f | 100 | } |
williamrchr | 0:08412491e70f | 101 | } |
williamrchr | 0:08412491e70f | 102 | |
williamrchr | 0:08412491e70f | 103 | void tick() { |
williamrchr | 0:08412491e70f | 104 | a_time++; |
williamrchr | 0:08412491e70f | 105 | v_time++; |
williamrchr | 0:08412491e70f | 106 | } |
williamrchr | 0:08412491e70f | 107 | |
williamrchr | 0:08412491e70f | 108 | int main() { |
williamrchr | 0:08412491e70f | 109 | //TODO: Set up threads |
williamrchr | 0:08412491e70f | 110 | |
williamrchr | 0:08412491e70f | 111 | } |