CIS541 / Mbed 2 deprecated Pacemaker2asd

Dependencies:   TextLCD mbed-rtos mbed

Revision:
1:d965ae2443b9
Parent:
0:894a7ad8ea79
Child:
2:c38a47cdb0db
--- a/Pacemaker.cpp	Mon Nov 30 22:00:35 2015 +0000
+++ b/Pacemaker.cpp	Mon Nov 30 22:23:09 2015 +0000
@@ -86,7 +86,7 @@
 };
 
 pacemakerventrical pventrical;
-//pacemakersend psend;
+pacemakersend psend1;
 Modes mode;
 //mode=Normal;
 
@@ -95,12 +95,13 @@
 Thread *pa;
 Thread *pv;
 Thread *psend;
+Thread *aorv;
 Thread *pmode;
 
 void resetTimer0();
 void resetTimer1();
-void VPacesend();
-void APacesend();
+void AorVPacesend();
+//void APacesend();
 void ASignalreceive();
 void VSignalreceive();
 void PacemakerAtrial();
@@ -177,16 +178,17 @@
 //    APace1=0;
 //}
 
-void AorVPacesend()
+void AorVPacesend(void const* args)
 {
     Thread::signal_wait(0x01);
     if(aPace) {
+        pc.printf("Sending APace");
         APace=1;
         VPace1=0;
         APace1=1;
         VPace=0;
     } else {
-
+        pc.printf("Sending VPace");
         VPace=1;
         VPace1=1;
         APace=0;
@@ -276,30 +278,31 @@
 {
     pc.printf("enteredpsend");
     while(1) {
-        switch(psend) {
+        switch(psend1) {
             case AVIEvent:
                 while(time_count<AVI||VSense==0||mode!=Manual);
                 if(time_count>=AVI) {
-                    VPacesend();
-                    psend=VentricalEvent;
+                    (*aorv).signal_set(0x01);
+                    //AorVPacesend("s");
+                    psend1=VentricalEvent;
                 } else if(mode==Manual) {
                     while (mode==Manual);
-                    psend=AVIEvent;
+                    psend1=AVIEvent;
                 } else if(VSense==1)
-                    psend=VentricalEvent;
+                    psend1=VentricalEvent;
                 break;
             case VentricalEvent:
                 while(ASense==0||time_count<LRI||VSense==0||mode!=Manual);
                 if(ASense==1) {
                     if(mode==Manual) {
                         while(mode==Manual);
-                        psend=AVIEvent;
+                        psend1=AVIEvent;
                     } else if(VSense==1) {
                         resetTimer0();
-                        psend=PostVSense;
+                        psend1=PostVSense;
                     } else {
                         resetTimer0();
-                        psend=AVIEvent;
+                        psend1=AVIEvent;
                     }
                 }
                 break;
@@ -307,18 +310,18 @@
                 while(mode!=Manual||ASense==0||time_count<LRI-AVI);
                 if(mode==Manual) {
                     while(mode==Manual);
-                    psend=AVIEvent;
+                    psend1=AVIEvent;
                 } else if(ASense==1) {
                     if(mode==Manual) {
                         while(mode==Manual);
                     } else {
                         resetTimer0();
-                        psend=AVIEvent;
+                        psend1=AVIEvent;
                     }
                 } else if(time_count>=LRI-AVI) {
                     while(mode!=Manual);
                     while(mode==Manual);
-                    psend=AVIEvent;
+                    psend1=AVIEvent;
                 }
                 break;
         }
@@ -384,17 +387,19 @@
                 pc.printf("Manual");
             } else if((key_input=='v'||key_input=='V')&& !changePacemakerInterval) {
                 if(mode==Manual) {
+                    mode=Manual;
                     pc.printf("Ventricular");
-                    VPacesend();
+                   // AorVPacesend();
                     aPace=false;
-                    (*Pace).signal_set(0x02);
+                    (*aorv).signal_set(0x01);
                 }
             } else if((key_input=='a'||key_input=='A')&&!changePacemakerInterval) {
                 if(mode==Manual) {
-                    APacesend();
+                    mode=Manual;
+                    //AorVPacesend();
                     pc.printf("Atrial");
                     aPace=true;
-                    (*Pace).signal_set(0x02);
+                    (*aorv).signal_set(0x01);
                 }
             } else if((key_input=='o'||key_input=='O')&&!changePacemakerInterval) {
                 int a = 10 + rand() % 80;
@@ -447,6 +452,8 @@
     psend=&pacesend;
     Thread pmodes(PacemakerModes);
     pmode=&pmodes;
+    Thread aorvpacesend(AorVPacesend);
+    aorv=&aorvpacesend;
     //Thread pdisplay(PacemakerDisplay);