Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Pacemaker by
Revision 7:4a1ec89e37cc, committed 2016-12-19
- Comitter:
- kieftea
- Date:
- Mon Dec 19 19:56:08 2016 +0000
- Parent:
- 6:d71e30291a62
- Commit message:
- PARAM WORKING
Changed in this revision
--- 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();
