3K04 Project / Mbed 2 deprecated PacemakerSerialStuff

Dependencies:   mbed-rtos mbed

Fork of Pacemaker by 3K04 Project

Committer:
kieftea
Date:
Mon Dec 19 19:56:08 2016 +0000
Revision:
7:4a1ec89e37cc
Parent:
6:d71e30291a62
PARAM WORKING

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kieftea 6:d71e30291a62 1 #ifndef PARAM_H
kieftea 6:d71e30291a62 2 #define PARAM_H
kieftea 6:d71e30291a62 3
kieftea 6:d71e30291a62 4 #include "pinmap.h"
kieftea 6:d71e30291a62 5 #include <iostream>
kieftea 6:d71e30291a62 6 #include <sstream>
kieftea 6:d71e30291a62 7 #include <cstdlib>
kieftea 6:d71e30291a62 8 #include <cstring>
kieftea 6:d71e30291a62 9 #include <string>
kieftea 6:d71e30291a62 10
kieftea 6:d71e30291a62 11 using namespace std;
kieftea 6:d71e30291a62 12
kieftea 6:d71e30291a62 13 class Param
kieftea 6:d71e30291a62 14 {
kieftea 6:d71e30291a62 15
kieftea 6:d71e30291a62 16 private:
kieftea 6:d71e30291a62 17 string parameters;
kieftea 7:4a1ec89e37cc 18 //
kieftea 6:d71e30291a62 19 int LowerRateLimit; //
kieftea 6:d71e30291a62 20 int UpperRateLimit; //
kieftea 6:d71e30291a62 21 int MaximumSensorRate; //
kieftea 6:d71e30291a62 22 int FixedAVDelay; //
kieftea 6:d71e30291a62 23 string DynamicAVDelay; //
kieftea 6:d71e30291a62 24 int MinimumDynamicAVDelay; //
kieftea 6:d71e30291a62 25 int SensedAVDelayOffset; //
kieftea 6:d71e30291a62 26 double APulsedAmplitudeRegulated; //
kieftea 6:d71e30291a62 27 double VPulseAmplitudeRegulated; //
kieftea 6:d71e30291a62 28 double APulseAmplitudeUnregulated; //
kieftea 6:d71e30291a62 29 double VPulseAmplitudeUnregulated; //
kieftea 6:d71e30291a62 30 double APulseWidth; //
kieftea 6:d71e30291a62 31 double VPulseWidth; //
kieftea 6:d71e30291a62 32 double ASensitivity; //
kieftea 6:d71e30291a62 33 double VSensitivity; //
kieftea 6:d71e30291a62 34 int AtrRP; //
kieftea 6:d71e30291a62 35 int VentRP; //
kieftea 6:d71e30291a62 36 int PVARP; //
kieftea 6:d71e30291a62 37 int PVARPExt; //
kieftea 6:d71e30291a62 38 int HysteresisRateLimit; //
kieftea 6:d71e30291a62 39 int RateSmoothing; //
kieftea 6:d71e30291a62 40 string ATRMode; //
kieftea 6:d71e30291a62 41 int ATRDuration; //
kieftea 6:d71e30291a62 42 int ATRFallbackTime; //
kieftea 6:d71e30291a62 43 int VentricularBlanking; //
kieftea 6:d71e30291a62 44 string ActivityThreshold; //
kieftea 6:d71e30291a62 45 int ReactionTime; //
kieftea 6:d71e30291a62 46 int ResponseFactor; //
kieftea 6:d71e30291a62 47 int RecoveryTime; //
kieftea 6:d71e30291a62 48
kieftea 6:d71e30291a62 49
kieftea 6:d71e30291a62 50
kieftea 6:d71e30291a62 51 /**********************************************
kieftea 6:d71e30291a62 52 *
kieftea 6:d71e30291a62 53 * Programmable Parameters Access Functions
kieftea 6:d71e30291a62 54 *
kieftea 6:d71e30291a62 55 **********************************************/
kieftea 6:d71e30291a62 56
kieftea 6:d71e30291a62 57 public:
kieftea 7:4a1ec89e37cc 58 string paceMode;
kieftea 6:d71e30291a62 59 Param();
kieftea 6:d71e30291a62 60 Param(string params);
kieftea 6:d71e30291a62 61 void concatination();
kieftea 6:d71e30291a62 62 int str_to_int(string input);
kieftea 6:d71e30291a62 63 double str_to_double(string input);
kieftea 6:d71e30291a62 64 string to_string(int input);
kieftea 6:d71e30291a62 65 string to_string(double input);
kieftea 6:d71e30291a62 66 void paramSet(int index, string input);
kieftea 6:d71e30291a62 67 void outputParam();
kieftea 6:d71e30291a62 68 void strDissect(string masterString);
kieftea 6:d71e30291a62 69
kieftea 6:d71e30291a62 70 string getParameters(){ return parameters; }
kieftea 7:4a1ec89e37cc 71 string getMode(){ return paceMode; }
kieftea 6:d71e30291a62 72 int getLowerRateLimit(){ return LowerRateLimit; }
kieftea 6:d71e30291a62 73 int getLowerRateLimit_ms(){ return (60000/LowerRateLimit); }
kieftea 6:d71e30291a62 74 int getUpperRateLimit(){ return UpperRateLimit; }
kieftea 6:d71e30291a62 75 int getUpperRateLimit_ms(){ return (60000/UpperRateLimit); }
kieftea 6:d71e30291a62 76 int getMaximumSensorRate(){ return MaximumSensorRate; }
kieftea 6:d71e30291a62 77 int getMaximumSensorRate_ms(){ return (60000/MaximumSensorRate); }
kieftea 6:d71e30291a62 78 int getFixedAVDelay(){ return FixedAVDelay; }
kieftea 6:d71e30291a62 79 string getDynamicAVDelay(){ return DynamicAVDelay; }
kieftea 6:d71e30291a62 80 int getMinimumDynamicAVDelay(){ return MinimumDynamicAVDelay; }
kieftea 6:d71e30291a62 81 int getSensedAVDelayOffset(){ return SensedAVDelayOffset; }
kieftea 6:d71e30291a62 82 double getAPulsedAmplitudeRegulated(){ return APulsedAmplitudeRegulated; }
kieftea 6:d71e30291a62 83 double getVPulseAmplitudeRegulated(){ return VPulseAmplitudeRegulated; }
kieftea 6:d71e30291a62 84 double getAPulseAmplitudeUnregulated(){ return APulseAmplitudeUnregulated; }
kieftea 6:d71e30291a62 85 double getVPulseAmplitudeUnregulated(){ return VPulseAmplitudeUnregulated; }
kieftea 6:d71e30291a62 86 double getAPulseWidth(){ return APulseWidth; }
kieftea 6:d71e30291a62 87 double getAPulseWidth_us(){ return (1000*APulseWidth); }
kieftea 6:d71e30291a62 88 double getVPulseWidth(){ return VPulseWidth; }
kieftea 6:d71e30291a62 89 double getVPulseWidth_us(){ return (1000*VPulseWidth); }
kieftea 6:d71e30291a62 90 double getASensitivity(){ return ASensitivity; }
kieftea 6:d71e30291a62 91 double getVSensitivity(){ return VSensitivity; }
kieftea 6:d71e30291a62 92 int getAtrRP(){ return AtrRP; }
kieftea 6:d71e30291a62 93 int getVentRP(){ return VentRP; }
kieftea 6:d71e30291a62 94 int getPVARP(){ return PVARP; }
kieftea 6:d71e30291a62 95 int getPVARPExt(){ return PVARPExt; }
kieftea 6:d71e30291a62 96 int getHysteresisRateLimit(){ return HysteresisRateLimit; }
kieftea 6:d71e30291a62 97 int getHysteresisRateLimit_ms(){ return (60000/HysteresisRateLimit); }
kieftea 6:d71e30291a62 98 int getRateSmoothing(){ return RateSmoothing; }
kieftea 6:d71e30291a62 99 string getATRMode(){ return ATRMode; }
kieftea 6:d71e30291a62 100 int getATRDuration(){ return ATRDuration; }
kieftea 6:d71e30291a62 101 int getATRFallbackTime(){ return ATRFallbackTime; }
kieftea 6:d71e30291a62 102 int getVentricularBlanking(){ return VentricularBlanking; }
kieftea 6:d71e30291a62 103 string getActivityThreshold(){ return ActivityThreshold; }
kieftea 6:d71e30291a62 104 int getReactionTime(){ return ReactionTime; }
kieftea 6:d71e30291a62 105 int getResponseFactor(){ return ResponseFactor; }
kieftea 6:d71e30291a62 106 int getRecoveryTime(){ return RecoveryTime; }
kieftea 6:d71e30291a62 107
kieftea 7:4a1ec89e37cc 108 void setParameters(string inParam){ strDissect(inParam); }
kieftea 7:4a1ec89e37cc 109 void setMode(string inParam){ paceMode = inParam; }
kieftea 7:4a1ec89e37cc 110 void setLowerRateLimit(int inParam){ LowerRateLimit = inParam; }
kieftea 7:4a1ec89e37cc 111 void setUpperRateLimit(int inParam){ UpperRateLimit = inParam; }
kieftea 6:d71e30291a62 112 void setMaximumSensorRate(int input){ MaximumSensorRate = input; }
kieftea 6:d71e30291a62 113 void setFixedAVDelay(int input){ FixedAVDelay = input; }
kieftea 6:d71e30291a62 114 void setDynamicAVDelay(string input){ DynamicAVDelay = input; }
kieftea 6:d71e30291a62 115 void setMinimumDynamicAVDelay(int input){ MinimumDynamicAVDelay = input; }
kieftea 6:d71e30291a62 116 void setSensedAVDelayOffset(int input){ SensedAVDelayOffset = input; }
kieftea 6:d71e30291a62 117 void setAPulsedAmplitudeRegulated(double input){ APulsedAmplitudeRegulated = input; }
kieftea 6:d71e30291a62 118 void setVPulseAmplitudeRegulated(double input){ VPulseAmplitudeRegulated = input; }
kieftea 6:d71e30291a62 119 void setAPulseAmplitudeUnregulated(double input){ APulseAmplitudeUnregulated = input; }
kieftea 6:d71e30291a62 120 void setVPulseAmplitudeUnregulated(double input){ VPulseAmplitudeUnregulated = input; }
kieftea 6:d71e30291a62 121 void setAPulseWidth(double input){ APulseWidth = input; }
kieftea 6:d71e30291a62 122 void setVPulseWidth(double input){ VPulseWidth = input; }
kieftea 6:d71e30291a62 123 void setASensitivity(double input){ ASensitivity = input; }
kieftea 6:d71e30291a62 124 void setVSensitivity(double input){ VSensitivity = input; }
kieftea 6:d71e30291a62 125 void setAtrRP(int input){ AtrRP = input; }
kieftea 6:d71e30291a62 126 void setVentRP(int input){ VentRP = input; }
kieftea 6:d71e30291a62 127 void setPVARP(int input){ PVARP = input; }
kieftea 6:d71e30291a62 128 void setPVARPExt(int input){ PVARPExt = input; }
kieftea 6:d71e30291a62 129 void setHysteresisRateLimit(int input){ HysteresisRateLimit = input; }
kieftea 6:d71e30291a62 130 void setRateSmoothing(int input){ RateSmoothing = input; }
kieftea 6:d71e30291a62 131 void setATRMode(string input){ ATRMode = input; }
kieftea 6:d71e30291a62 132 void setATRDuration(int input){ ATRDuration = input; }
kieftea 6:d71e30291a62 133 void setATRFallbackTime(int input){ ATRFallbackTime = input; }
kieftea 6:d71e30291a62 134 void setVentricularBlanking(int input){ VentricularBlanking = input; }
kieftea 6:d71e30291a62 135 void setActivityThreshold(string input){ ActivityThreshold = input; }
kieftea 6:d71e30291a62 136 void setReactionTime(int input){ ReactionTime = input; }
kieftea 6:d71e30291a62 137 void setResponseFactor(int input){ ResponseFactor = input; }
kieftea 6:d71e30291a62 138 void setRecoveryTime(int input){ RecoveryTime = input; }
kieftea 6:d71e30291a62 139
kieftea 6:d71e30291a62 140 // uint16_t get_lower_rate_limit(); // # of pace pulses per minute
kieftea 6:d71e30291a62 141 // uint16_t get_lower_rate_limit_period_ms(); // LRL as a period in milliseconds
kieftea 6:d71e30291a62 142 // void set_lower_rate_limit(uint16_t lrl);
kieftea 6:d71e30291a62 143 //
kieftea 6:d71e30291a62 144 // uint16_t get_upper_rate_limit(); // min t b/w vent event and next vent pace
kieftea 6:d71e30291a62 145 // uint16_t get_upper_rate_limit_period_ms(); // URL as a period in milliseconds
kieftea 6:d71e30291a62 146 // void set_upper_rate_limit(uint16_t url);
kieftea 6:d71e30291a62 147 //
kieftea 6:d71e30291a62 148 // uint16_t get_max_sensor_rate(); // max rate allowed from adaptive pacing
kieftea 6:d71e30291a62 149 // uint16_t get_max_sensor_rate_period_ms(); // MSR as a period in milliseconds
kieftea 6:d71e30291a62 150 // void set_max_sensor_rate(uint16_t msr);
kieftea 6:d71e30291a62 151 //
kieftea 6:d71e30291a62 152 // uint16_t get_fixed_av_delay_ms(); // time between atrial and vent events in milliseconds
kieftea 6:d71e30291a62 153 // void set_fixed_av_delay_ms(uint16_t av_delay_ms);
kieftea 6:d71e30291a62 154 //
kieftea 6:d71e30291a62 155 // uint16_t get_atr_pulse_width_us(); // duration of atrial pulse in microseconds
kieftea 6:d71e30291a62 156 // void set_atr_pulse_width_us(uint16_t atr_pulse_width);
kieftea 6:d71e30291a62 157 //
kieftea 6:d71e30291a62 158 // uint16_t get_vent_pulse_width_us(); // duration of ventricular pulse in microseconds
kieftea 6:d71e30291a62 159 // void set_vent_pulse_width_us(uint16_t v_pulse_width_us);
kieftea 6:d71e30291a62 160 //
kieftea 6:d71e30291a62 161 // uint16_t get_atr_pulse_amp(); // amplitude of atrial pulses
kieftea 6:d71e30291a62 162 // void set_atr_pulse_amp(uint16_t atr_pulse_amp);
kieftea 6:d71e30291a62 163 //
kieftea 6:d71e30291a62 164 // uint16_t get_vent_pulse_amp(); // amplitude of ventricular pulses
kieftea 6:d71e30291a62 165 // void set_vent_pulse_amp(uint16_t vent_pulse_amp);
kieftea 6:d71e30291a62 166
kieftea 6:d71e30291a62 167 };
kieftea 6:d71e30291a62 168
kieftea 6:d71e30291a62 169 #endif