Index: sources/view/VTreatmentBegin.cpp =================================================================== diff -u -r53134008481fd775533e8988b7436f2f75e47336 -r666594860f4ea32da9a2bd362d40325b881b11f9 --- sources/view/VTreatmentBegin.cpp (.../VTreatmentBegin.cpp) (revision 53134008481fd775533e8988b7436f2f75e47336) +++ sources/view/VTreatmentBegin.cpp (.../VTreatmentBegin.cpp) (revision 666594860f4ea32da9a2bd362d40325b881b11f9) @@ -1,9 +1,35 @@ #include "VTreatmentBegin.h" +// Project +#include "BLEScanner.h" +#include "VTreatmentCreate.h" + +using namespace Gui; using namespace View; -VTreatmentBegin::VTreatmentBegin(QObject *parent) : QObject(parent) { } +VTreatmentBegin::VTreatmentBegin(QObject *parent) : QObject(parent) +{ + // incoming + connect(&_BLEScanner, SIGNAL(didDisconnectFromDevice(QBluetoothDeviceInfo)), + this , SLOT(onDeviceDisconnected())); + connect(&_BLEScanner, SIGNAL(didConnectToDevice(QBluetoothDeviceInfo)), + this , SLOT(onDeviceConnected())); + + connect(&_GuiController, SIGNAL(didActionReceive(HDOperationModeData)), + this, SLOT(onAdjustment(HDOperationModeData))); + + connect(&_GuiController, SIGNAL(didAlertResponse(GuiAlertResponseData)), + this, SLOT(onAdjustment(GuiAlertResponseData))); + + // outgoing + connect(this, SIGNAL(didRequestShowAlert(GuiAlertRequestData)), + &_GuiController, SLOT(doAlertRequest(GuiAlertRequestData))); + + connect(this, SIGNAL(didStartNewTreatment(TreatmentStartRequestData)), + &_GuiController, SLOT(doAdjustment(TreatmentStartRequestData))); +} + /** * \brief VTreatmentBegin::doUserModifiedParameters * Manages enabling / disabling the start treatment button @@ -13,3 +39,71 @@ continueEnabled(true); emit continueEnabledChanged(continueEnabled()); } + +/** + * \brief VCreateTreatment::start + * Called when user is ready to begin a new treatment. + * Implements SRSUI 253, 695 + */ +void VTreatmentBegin::doStartTreatment() { + qDebug() << "Requesting to start a treatment..."; + + GuiAlertRequestData request; + if (!_bleConnected) + { + request.title = tr("The Blood Pressure Cuff is Not Connected"); + request.description = tr("Press 'Confirm' to continue treatment without taking vitals."); + emit didRequestShowAlert(request); + return; + } + + request.title = tr("Ready for Blood Pressure Measurement"); + request.description = tr("Press 'Confirm' once the blood pressure measurement has been taken."); + emit didRequestShowAlert(request); + +} + +/*! + * \brief VTreatmentBegin::doActionReceive + * Slot called when we receive an HD operation mode update + * \param messageData - (HDOperationModeData) contains the HD operation mode + */ +void VTreatmentBegin::onAdjustment(const HDOperationModeData &messageData) +{ + _hdOperationMode = messageData.mOpMode; +} + +/*! + * \brief VTreatmentBegin::onDeviceConnected + * Called when a BLE BP Cuff is connected + */ +void VTreatmentBegin::onDeviceConnected() +{ + _bleConnected = true; +} + +/*! + * \brief VTreatmentBegin::onDeviceDisconnected + * Called when a BLE BP Cuff is disconnected + */ +void VTreatmentBegin::onDeviceDisconnected() +{ + _bleConnected = false; +} + +/*! + * \brief VTreatmentBegin::onAdjustment + * Called when the user has responded to the blood pressure prompt + * \param messageData - (AlertUserRequestData) the message data + */ +void VTreatmentBegin::onAdjustment(const GuiAlertResponseData &messageData) +{ + qDebug() << "Blood Pressure Prompt response: " << messageData.confirmed; + + if (messageData.confirmed) + { + startTreatmentRequest.request = TreatmentStartRequestData::eStartTreatment; + emit didStartNewTreatment(startTreatmentRequest); + } +} +