![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Pacemaker code Implementation for SFWRENG 3K04
Dependencies: FXOS8700Q Queue mbed-rtos mbed
Fork of Pacemaker by
Diff: interface.cpp
- Revision:
- 20:bfd23a6845bb
- Parent:
- 19:d58e1e1a9a24
- Child:
- 22:19b187e345c9
--- a/interface.cpp Thu Nov 24 01:10:08 2016 +0000 +++ b/interface.cpp Thu Nov 24 03:26:14 2016 +0000 @@ -1,4 +1,4 @@ -#pragma once + #pragma once #include "mbed.h" #include "interface.h" #include "hardware.h" @@ -91,24 +91,78 @@ } void interface::chamberDataScreen(chamberData* chamber){ - if (chamber == atrData) - pc->printf("\nAtrium Data"); - - if (chamber == ventData) - pc->printf("\nVentricle Data"); - - pc->printf("\n1. Pace Amplitude: %f", chamber->getPaceAmp()*7); - pc->printf("\n2. Pace Width: %f", chamber->getPaceWidth()); - pc->printf("\n3. Refractory Period: %f", chamber->getRP()); - pc->printf("\n4. Sensitivity: %f", chamber->getSensitivity()); - pc->printf("\nChoose variable to be changed or 5 To return to Data Sets"); - interface::getData(chamber); + if (chamber == atrData) + pc->printf("\nAtrium Data"); + + if (chamber == ventData) + pc->printf("\nVentricle Data"); + + pc->printf("\n1. Pace Amplitude: %f", chamber->getPaceAmp()*7); + pc->printf("\n2. Pace Width: %f", chamber->getPaceWidth()); + pc->printf("\n3. Refractory Period: %f", chamber->getRP()); + pc->printf("\n4. Sensitivity: %f", chamber->getSensitivity()); + pc->printf("\nChoose variable to be changed or 5 To return to Data Sets"); + + char command = getChar(); + switch (command){ + case '1': + pc->printf("\nChoose New Value for the Pace Amplitude:"); + char* value = getInput(); + int valInRange = chamber->chngPaceAmp(atof(value)); + if(valInRange == 1){ + pc->printf("\t%f",chamber->getPaceAmp()*7); + }else{ + pc->printf("\nThat value is not within range."); + } + interface::dataScreen(); + break; + case '2': + pc->printf("\nChoose New Value for the Pace Width:"); + value = getInput(); + valInRange = chamber->chngPaceWidth(atof(value)); + if(valInRange == 1){ + pc->printf("\t%f",chamber->getPaceWidth()); + }else{ + pc->printf("\nThat value is not within range."); + } + interface::dataScreen(); + break; + case '3': + pc->printf("\nChoose New Value for the Refractory Period:"); + value = getInput(); + valInRange = chamber->chngRP(atof(value)); + if(valInRange == 1){ + pc->printf("\t%f",chamber->getRP()); + }else{ + pc->printf("\nThat value is not within range."); + } + interface::dataScreen(); + break; + case '4': + pc->printf("\nChoose New Value for the Sensitivity:"); + value = getInput(); + valInRange = chamber->chngSensitivity(atof(value)); + if(valInRange == 1){ + pc->printf("\t%f",chamber->getSensitivity()); + }else{ + pc->printf("\nThat value is not within range."); + } + interface::dataScreen(); + break; + case '5': + interface::dataScreen(); + break; + default: + pc->printf("\nThat is not an option."); + interface::chamberDataScreen(chamber); + break; + } } void interface::genDataScreen(){ //moved option 3 from dataScreen() into its own method pc->printf("\nGeneral Data"); pc->printf("\n1. Hysteresis: %s", generalData->getHyst() ? "true" : "false"); - pc->printf("\n2. Hysteresis Interval: %f", generalData->getHystInterval()); + pc->printf("\n2. Hysteresis Rate Limit: %f", generalData->getHystRL()); pc->printf("\n3. Lower Rate Limit: %f", generalData->getLRL()); pc->printf("\n4. Upper Rate Limit: %f", generalData->getURL()); pc->printf("\n5. Atrial-Ventricular Delay: %f", generalData->getAVdelay()); @@ -118,70 +172,90 @@ char command = getChar(); switch (command) { case '1': - pc->printf("\nNot setup yet\n"); + pc->printf("\nSet Hysteresis (t for true, f for false):"); + char* value = getInput(); + if(*value == 't'){ + generalData->chngHyst(true); + }else if(*value == 'f'){ + generalData->chngHyst(false); + }else{ + pc->printf("You may only enter 't' or 'f'."); + } + pc->printf("%s", generalData->getHyst() ? "true" : "false"); interface::genDataScreen(); break; case '2': - pc->printf("\nNot setup yet\n"); + pc->printf("\nChoose New Value for Hysteresis Rate Limit:"); + value = getInput(); + int valInRange = generalData->chngHystRL(atof(value)); + if(valInRange == 1){ + pc->printf("\t%f",generalData->getHystRL()); + }else{ + pc->printf("\nThat value is not within range."); + } interface::genDataScreen(); break; case '3': - pc->printf("\nNot setup yet\n"); + pc->printf("\nChoose New Value for the Lower Rate Limit:"); + value = getInput(); + valInRange = generalData->chngLRL(atof(value)); + if(valInRange == 1){ + pc->printf("\t%f",generalData->getLRL()); + }else{ + pc->printf("\nThat value is not within range."); + } interface::genDataScreen(); + break; case '4': - pc->printf("\nNot setup yet\n"); + pc->printf("\nChoose New Value for the Upper Rate Limit:"); + value = getInput(); + valInRange = generalData->chngURL(atof(value)); + if(valInRange == 1){ + pc->printf("\t%f",generalData->getURL()); + }else{ + pc->printf("\nThat value is not within range."); + } interface::genDataScreen(); break; case '5': - interface::dataScreen(); + pc->printf("\nChoose New Value for the Atrial-Ventricular Delay:"); + value = getInput(); + valInRange = generalData->chngAVdelay(atof(value)); + if(valInRange == 1){ + pc->printf("\t%f",generalData->getAVdelay()); + }else{ + pc->printf("\nThat value is not within range."); + } + interface::genDataScreen(); + break; + case '6': + pc->printf("\nChoose New Value for the Atrial-Ventricular Delay Offset:"); + value = getInput(); + valInRange = generalData->chngAVdelayOffset(atof(value)); + if(valInRange == 1){ + pc->printf("\t%f",generalData->getAVdelayOffset()); + }else{ + pc->printf("\nThat value is not within range."); + } + interface::genDataScreen(); + break; + case '7': + pc->printf("\nChoose New Value for the Rate Smoothing:"); + value = getInput(); + valInRange = generalData->chngRSmooth(atof(value)); + if(valInRange == 1){ + pc->printf("\t%f",generalData->getRSmooth()); + }else{ + pc->printf("\nThat value is not within range."); + } + interface::genDataScreen(); + break; default: pc->printf("\nThat is not an option.\n"); interface::genDataScreen(); + break; } } - - -void interface::getData(chamberData* chamber){ - char command = getChar(); - switch (command){ - case '1': - pc->printf("\nChoose New Value:"); - char* value = getInput(); - chamber->chngPaceAmp(atof(value)); - pc->printf("\t%f",chamber->getPaceAmp()*7); - interface::dataScreen(); - break; - case '2': - pc->printf("\nChoose New Value:"); - value = getInput(); - chamber->chngPaceWidth(atof(value)); - pc->printf("\t%f",chamber->getPaceWidth()); - interface::dataScreen(); - break; - case '3': - pc->printf("\nChoose New Value:"); - value = getInput(); - chamber->chngRP(atof(value)); - pc->printf("\t%f",chamber->getRP()); - interface::dataScreen(); - break; - case '4': - pc->printf("\nChoose New Value:"); - value = getInput(); - chamber->chngSensitivity(atof(value)); - pc->printf("\t%f",chamber->getSensitivity()); - interface::dataScreen(); - break; - case '5': - interface::dataScreen(); - break; - default: - pc->printf("\nThat is not an option."); - interface::getData(chamber); - } - } - - char* interface::getInput(){ char buffer[5];