3K04 Project / Mbed 2 deprecated PacemakerSerialStuff

Dependencies:   mbed-rtos mbed

Fork of Pacemaker by 3K04 Project

Files at this revision

API Documentation at this revision

Comitter:
kieftea
Date:
Mon Dec 19 19:56:08 2016 +0000
Parent:
6:d71e30291a62
Commit message:
PARAM WORKING

Changed in this revision

Param.cpp Show annotated file Show diff for this revision Revisions of this file
Param.h Show annotated file Show diff for this revision Revisions of this file
pulsegenerator.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/Param.cpp	Mon Dec 19 18:50:33 2016 +0000
+++ b/Param.cpp	Mon Dec 19 19:56:08 2016 +0000
@@ -2,12 +2,78 @@
 
 using namespace std;
 
+
+
 Param::Param(){
+    parameters = "";
+    paceMode = "";
+    LowerRateLimit = 0; //
+    UpperRateLimit = 0; //
+    MaximumSensorRate = 0; //
+    FixedAVDelay = 0; //
+    DynamicAVDelay = ""; //
+    MinimumDynamicAVDelay = 0; //
+    SensedAVDelayOffset = 0; //
+    APulsedAmplitudeRegulated = 0.0; //
+    VPulseAmplitudeRegulated = 0.0; //
+    APulseAmplitudeUnregulated = 0.0; //
+    VPulseAmplitudeUnregulated = 0.0; //
+    APulseWidth = 0.0; //
+    VPulseWidth = 0.0; //
+    ASensitivity = 0.0; //
+    VSensitivity = 0.0; //
+    AtrRP = 0; //
+    VentRP = 0; //
+    PVARP = 0; //
+    PVARPExt = 0; //
+    HysteresisRateLimit = 0; //
+    RateSmoothing = 0; //
+    ATRMode = ""; //
+    ATRDuration = 0; //
+    ATRFallbackTime = 0; //
+    VentricularBlanking = 0; //
+    ActivityThreshold = ""; //
+    ReactionTime = 0; //
+    ResponseFactor = 0; //
+    RecoveryTime = 0; //
+    
     string nominal = "$OFF,60,120,120,150,OFF,50,OFF,3.50,3.50,3.75,3.75,0.40,0.40,0.75,2.50,320,250,250,OFF,OFF,OFF,OFF,20,1,40,Med,30,8,5,*";
     strDissect(nominal);
 }
 
 Param::Param(string params){
+    parameters = "";
+    paceMode = "";
+    LowerRateLimit = 0; //
+    UpperRateLimit = 0; //
+    MaximumSensorRate = 0; //
+    FixedAVDelay = 0; //
+    DynamicAVDelay = ""; //
+    MinimumDynamicAVDelay = 0; //
+    SensedAVDelayOffset = 0; //
+    APulsedAmplitudeRegulated = 0.0; //
+    VPulseAmplitudeRegulated = 0.0; //
+    APulseAmplitudeUnregulated = 0.0; //
+    VPulseAmplitudeUnregulated = 0.0; //
+    APulseWidth = 0.0; //
+    VPulseWidth = 0.0; //
+    ASensitivity = 0.0; //
+    VSensitivity = 0.0; //
+    AtrRP = 0; //
+    VentRP = 0; //
+    PVARP = 0; //
+    PVARPExt = 0; //
+    HysteresisRateLimit = 0; //
+    RateSmoothing = 0; //
+    ATRMode = ""; //
+    ATRDuration = 0; //
+    ATRFallbackTime = 0; //
+    VentricularBlanking = 0; //
+    ActivityThreshold = ""; //
+    ReactionTime = 0; //
+    ResponseFactor = 0; //
+    RecoveryTime = 0; //
+    
     strDissect(params);
 }
 
@@ -100,34 +166,31 @@
 
     //check if initiator character is present
     if (str[i++] == '$') {
-        red = 1;
-        green = 1;
-        blue = 0;
-        wait (1);
+        //red = 1;
+        //green = 1;
+        //blue = 0;
+        //wait (1);
         //check if final terminator character has been reached
         while (str[i] != '*') {
-            red = 0;
-            green = 1;
-            blue = 1;
-            wait (1);
+            //ed = 0;
+            //green = 1;
+            //blue = 1;
+            //wait (1);
             //check if string terminator character has been reached
             for (temp = ""; str[i] != ',';i++) {
                 if(str[i] == '.'||(str[i]=='0'&&((str[i+1]=='.'||str[i-1]=='.')&&(str_to_int(temp) == 0)))){
                     continue;// cases with a leading 0 or no tenths digit
                 } else {
                     temp += str[i]; //add character to temp string
-                    red = !red;
-                    wait_ms(50);
+                    //red = !red;
+                    //wait_ms(50);
                 }
             }//end for
             
-            blue = 0;
-            red = 1;
-            wait(1);
+            //blue = 0;
+            //red = 1;
+            //wait(1);
             paramSet(j,temp);
-            red = 1;
-            green = 0;
-            wait(1);
             
             i++; //increase char index
             j++; //increase param index
@@ -140,118 +203,118 @@
 }//end strDissect
 
 
-void Param::paramSet(int index, string input){
+void Param::paramSet(int index, string inParam){
     string select = "- Select -";
-    if(strcmp(select.c_str(),input.c_str())==0){
-        input = "0";
+    if(strcmp(select.c_str(),inParam.c_str())==0){
+        inParam = "0";
         //cout << "Warning, some parameters are not set!" << endl;
     }
     switch (index+1){
         case 1:
-            setMode(input);
+            setMode(inParam);
             break;
         case 2:
-            setLowerRateLimit(str_to_int(input));
+            setLowerRateLimit(str_to_int(inParam));
             break;
         case 3:
-            setUpperRateLimit(str_to_int(input));
+            setUpperRateLimit(str_to_int(inParam));
             break;
         case 4:
-            setMaximumSensorRate(str_to_int(input));
+            setMaximumSensorRate(str_to_int(inParam));
             break;
         case 5:
-            setFixedAVDelay(str_to_int(input));
+            setFixedAVDelay(str_to_int(inParam));
             break;
         case 6:
-            setDynamicAVDelay(input);
+            setDynamicAVDelay(inParam);
             break;
         case 7:
-            setMinimumDynamicAVDelay(str_to_int(input));
+            setMinimumDynamicAVDelay(str_to_int(inParam));
             break;
         case 8:
-            if(str_to_int(input) == 0){
+            if(str_to_int(inParam) == 0){
                 setSensedAVDelayOffset(0);
             } else {
-                setSensedAVDelayOffset(str_to_int(input));
+                setSensedAVDelayOffset(str_to_int(inParam));
             }
             break;
         case 9:
-            setAPulsedAmplitudeRegulated(str_to_double(input));
+            setAPulsedAmplitudeRegulated(str_to_double(inParam));
             break;
         case 10:
-            setVPulseAmplitudeRegulated(str_to_double(input));
+            setVPulseAmplitudeRegulated(str_to_double(inParam));
             break;
         case 11:
-            setAPulseAmplitudeUnregulated(str_to_double(input));
+            setAPulseAmplitudeUnregulated(str_to_double(inParam));
             break;
         case 12:
-            setVPulseAmplitudeUnregulated(str_to_double(input));
+            setVPulseAmplitudeUnregulated(str_to_double(inParam));
             break;
         case 13:
-            setAPulseWidth(str_to_double(input));
+            setAPulseWidth(str_to_double(inParam));
             break;
         case 14:
-            setVPulseWidth(str_to_double(input));
+            setVPulseWidth(str_to_double(inParam));
             break;
         case 15:
-            setASensitivity(str_to_double(input));
+            setASensitivity(str_to_double(inParam));
             break;
         case 16:
-            setVSensitivity(str_to_double(input));
+            setVSensitivity(str_to_double(inParam));
             break;
         case 17:
-            setVentRP(str_to_int(input));
+            setVentRP(str_to_int(inParam));
             break;
         case 18:
-            setAtrRP(str_to_int(input));
+            setAtrRP(str_to_int(inParam));
             break;
         case 19:
-            setPVARP(str_to_int(input));
+            setPVARP(str_to_int(inParam));
             break;
         case 20:
-            if(str_to_int(input) == 0){
+            if(str_to_int(inParam) == 0){
                 setPVARPExt(0);
             } else {
-                setPVARPExt(str_to_int(input));
+                setPVARPExt(str_to_int(inParam));
             }
             break;
         case 21:
-            if(str_to_int(input) == 0){
+            if(str_to_int(inParam) == 0){
                 setHysteresisRateLimit(0);
             } else {
-                setHysteresisRateLimit(str_to_int(input));
+                setHysteresisRateLimit(str_to_int(inParam));
             }
             break;
         case 22:
-            if(str_to_int(input) == 0){
+            if(str_to_int(inParam) == 0){
                 setRateSmoothing(0);
             } else {
-                setRateSmoothing(str_to_int(input));
+                setRateSmoothing(str_to_int(inParam));
             }
             break;
         case 23:
-            setATRMode(input);
+            setATRMode(inParam);
             break;
         case 24:
-            setATRDuration(str_to_int(input));
+            setATRDuration(str_to_int(inParam));
             break;
         case 25:
-            setATRFallbackTime(str_to_int(input));
+            setATRFallbackTime(str_to_int(inParam));
             break;
         case 26:
-            setVentricularBlanking(str_to_int(input));
+            setVentricularBlanking(str_to_int(inParam));
             break;
         case 27:
-            setActivityThreshold(input);
+            setActivityThreshold(inParam);
             break;
         case 28:
-            setReactionTime(str_to_int(input));
+            setReactionTime(str_to_int(inParam));
             break;
         case 29:
-            setResponseFactor(str_to_int(input));
+            setResponseFactor(str_to_int(inParam));
             break;
         case 30:
-            setRecoveryTime(str_to_int(input));
+            setRecoveryTime(str_to_int(inParam));
             break;
         default:
             break;
--- a/Param.h	Mon Dec 19 18:50:33 2016 +0000
+++ b/Param.h	Mon Dec 19 19:56:08 2016 +0000
@@ -15,7 +15,7 @@
 
 private:
     string parameters;
-    string Mode; //
+     //
     int LowerRateLimit; //
     int UpperRateLimit; //
     int MaximumSensorRate; //
@@ -55,6 +55,7 @@
      **********************************************/
     
 public:
+    string paceMode;
     Param();
     Param(string params);
     void concatination();
@@ -67,7 +68,7 @@
     void strDissect(string masterString);
     
     string getParameters(){ return parameters; }
-    string getMode(){ return Mode; }
+    string getMode(){ return paceMode; }
     int getLowerRateLimit(){ return LowerRateLimit; }
     int getLowerRateLimit_ms(){ return (60000/LowerRateLimit); }
     int getUpperRateLimit(){ return UpperRateLimit; }
@@ -104,18 +105,10 @@
     int getResponseFactor(){ return ResponseFactor; }
     int getRecoveryTime(){ return RecoveryTime; }
     
-    void setParameters(string input){ 
-        blue = 1;
-        red = 0;
-        green = 1;
-        wait(1);
-        strDissect(input);
-        green = 0;
-        red = 1;
-        blue = 1; }
-    void setMode(string input){ Mode = input; }
-    void setLowerRateLimit(int input){ LowerRateLimit = input; }
-    void setUpperRateLimit(int input){ UpperRateLimit = input; }
+    void setParameters(string inParam){ strDissect(inParam); }
+    void setMode(string inParam){ paceMode = inParam; }
+    void setLowerRateLimit(int inParam){ LowerRateLimit = inParam; }
+    void setUpperRateLimit(int inParam){ UpperRateLimit = inParam; }
     void setMaximumSensorRate(int input){ MaximumSensorRate = input; }
     void setFixedAVDelay(int input){ FixedAVDelay = input; }
     void setDynamicAVDelay(string input){ DynamicAVDelay = input; }
--- a/pulsegenerator.cpp	Mon Dec 19 18:50:33 2016 +0000
+++ b/pulsegenerator.cpp	Mon Dec 19 19:56:08 2016 +0000
@@ -1,5 +1,6 @@
 #include "pulsegenerator.h"
 
+
 Param *INPUTS;
 
 string        none = "N";
@@ -158,14 +159,23 @@
 void begin_pace () {
     if (!initialized) pulsegenerator_initialize ();
     
-    green = 1;
-    red = 1;
-    blue = 0;
-    wait(1);
+    Param pacemaker("$VOO,60,120,120,150,OFF,50,OFF,3.50,3.50,3.75,3.75,0.40,0.40,0.75,2.50,320,250,250,OFF,OFF,OFF,OFF,20,1,40,Med,30,8,5,*");
+    string temp = pacemaker.getParameters();
+    (*INPUTS).setParameters(temp);
+    //(*INPUTS).setParameters(pacemaker.getParameters());
+    //(*INPUTS).setMode("VOO");
+    //green = 1;
+    //red = 1;
+    //blue = 0;
+    //wait(1);
     
     //serialCheck(recieve());
-    (*INPUTS).setParameters("$VOO,60,120,120,150,OFF,50,OFF,3.50,3.50,3.75,3.75,0.40,0.40,0.75,2.50,320,250,250,OFF,OFF,OFF,OFF,20,1,40,Med,30,8,5,*");
-    blue = 1;
+    //(*INPUTS).setParameters("$VOO,60,120,120,150,OFF,50,OFF,3.50,3.50,3.75,3.75,0.40,0.40,0.75,2.50,320,250,250,OFF,OFF,OFF,OFF,20,1,40,Med,30,8,5,*");
+    blue = 0;
+    red = 0;
+    green = 1;
+    wait(5);
+    
     
     while(1){
         pace_period_ms = (*INPUTS).getLowerRateLimit_ms();