Index: denali.pro.user =================================================================== diff -u -r47c8f13876317ba36500400f894d96c9bce9eb17 -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- denali.pro.user (.../denali.pro.user) (revision 47c8f13876317ba36500400f894d96c9bce9eb17) +++ denali.pro.user (.../denali.pro.user) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -1,14 +1,14 @@ - + EnvironmentId {67370740-e20f-4fc6-be45-6652e866a8bf} ProjectExplorer.Project.ActiveTarget - 0 + 1 ProjectExplorer.Project.EditorSettings Index: sources/bluetooth/BluetoothInterface.cpp =================================================================== diff -u -r47c8f13876317ba36500400f894d96c9bce9eb17 -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- sources/bluetooth/BluetoothInterface.cpp (.../BluetoothInterface.cpp) (revision 47c8f13876317ba36500400f894d96c9bce9eb17) +++ sources/bluetooth/BluetoothInterface.cpp (.../BluetoothInterface.cpp) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -516,12 +516,18 @@ * \param vDevice */ void BluetoothInterface::onDeviceSelect(const BluetoothDeviceData &vDevice) { + stopScan(); _temp = QBluetoothDeviceInfo(QBluetoothAddress(vDevice.addr), vDevice.name, QBluetoothDeviceInfo::HealthBloodPressureMonitor); connectToDevice(); } void BluetoothInterface::onAttributeResponse(const DeviceBluetoothPairedQueryResponseData &vData) { + if ( ! vData.mAccepted ) { + LOG_DEBUG(vData.mMessage); + return; + } + // Notify the View that it is a new scan so clean up the list, and update screen status. NOTIFY_SCAN_START Index: sources/device/DeviceError.cpp =================================================================== diff -u -r47c8f13876317ba36500400f894d96c9bce9eb17 -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- sources/device/DeviceError.cpp (.../DeviceError.cpp) (revision 47c8f13876317ba36500400f894d96c9bce9eb17) +++ sources/device/DeviceError.cpp (.../DeviceError.cpp) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -41,7 +41,7 @@ QT_TR_NOOP("The Bluetooth cuff pair clear error." ), // eDevice_BCuff_Error_Reset QT_TR_NOOP("The Bluetooth cuff pair query error." ), // eDevice_BCuff_Error_Query - QT_TR_NOOP("The Bluetooth cuff pair query empty." ), // eDevice_BCuff_Error_Query_Empty + QT_TR_NOOP("No paired Bluetooth cuff found." ), // eDevice_BCuff_Error_Query_Empty QT_TR_NOOP("The Bluetooth cuff pair invalid address." ), // eDevice_BCuff_Error_Query_Addr }; Index: sources/device/DeviceModels.cpp =================================================================== diff -u -r47c8f13876317ba36500400f894d96c9bce9eb17 -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- sources/device/DeviceModels.cpp (.../DeviceModels.cpp) (revision 47c8f13876317ba36500400f894d96c9bce9eb17) +++ sources/device/DeviceModels.cpp (.../DeviceModels.cpp) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -89,6 +89,11 @@ _data.mReason = Device::DeviceError::eDevice_BCuff_Error_Query_Empty; goto lError; // empty response } + if ( info == ZERO ) { + // it has been observed that the device returns address of all zero which is not what is accepted. + _data.mReason = Device::DeviceError::eDevice_BCuff_Error_Query_Empty; goto lError; // incorrect response, address is all zero + } + deviceInfo = info.split(SEPARATOR); count = deviceInfo.count(); if ( count ) { Index: sources/device/DeviceModels.h =================================================================== diff -u -r47c8f13876317ba36500400f894d96c9bce9eb17 -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- sources/device/DeviceModels.h (.../DeviceModels.h) (revision 47c8f13876317ba36500400f894d96c9bce9eb17) +++ sources/device/DeviceModels.h (.../DeviceModels.h) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -175,8 +175,9 @@ */ class MDeviceBluetoothPairedQueryResponse : public MDeviceResponseBase { public: - static const quint8 LEN_COUNT = 2; - static const char SEPARATOR = ' '; + const quint8 LEN_COUNT = 2; + const char SEPARATOR = ' '; + const char *ZERO = "00:00:00:00:00:00"; enum { eAddr, eName, Index: sources/gui/qml/main.qml =================================================================== diff -u -r47c8f13876317ba36500400f894d96c9bce9eb17 -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- sources/gui/qml/main.qml (.../main.qml) (revision 47c8f13876317ba36500400f894d96c9bce9eb17) +++ sources/gui/qml/main.qml (.../main.qml) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -262,7 +262,7 @@ anchors { top : parent.top left : parent.left - leftMargin : 500 + leftMargin : 475 } horizontalAlignment : Text.Alignleft verticalAlignment : Text.AlignBottom @@ -272,12 +272,35 @@ font.pixelSize: 15 } + Text { // TEST : BluetoothStatus + color : Colors.textMain + anchors { + top : parent.top + left : parent.left + leftMargin : 615 + } + horizontalAlignment : Text.Alignleft + verticalAlignment : Text.AlignBottom + + height : 15 + text : Variables.notSetVariable(vTreatmentVitals.systolic , 2) + + "/" + + Variables.notSetVariable(vTreatmentVitals.diastolic, 2) + + "/" + + Variables.notSetVariable(vTreatmentVitals.heartRate, 2) + + ":" + + vBluetooth.pairedAddr + + " " + + (vBluetooth.notification || vDevice.status) + font.pixelSize: 14 + } + Text { // TEST : Current Date/Time color : Colors.textMain anchors { top : parent.top left : parent.left - leftMargin : 1000 + leftMargin : 1100 } horizontalAlignment : Text.Alignleft verticalAlignment : Text.AlignBottom Index: sources/gui/qml/pages/pretreatment/connection/PreTreatmentConnectionStack.qml =================================================================== diff -u -raeb915075b9e13e5c1aaf2800ba6db03b6c24a0b -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- sources/gui/qml/pages/pretreatment/connection/PreTreatmentConnectionStack.qml (.../PreTreatmentConnectionStack.qml) (revision aeb915075b9e13e5c1aaf2800ba6db03b6c24a0b) +++ sources/gui/qml/pages/pretreatment/connection/PreTreatmentConnectionStack.qml (.../PreTreatmentConnectionStack.qml) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -43,6 +43,7 @@ PreTreatmentBase { id: _preTreatmentVitals // BP/HR Entry header.stepIndex : 6 header.confirmText.text : _bphrEntry.isValid ? qsTr("CONFIRM") : qsTr("SKIP") + header.backVisible : true header.confirmVisible : true title.text : qsTr("BP/HR") BPHREntry { id: _bphrEntry Index: sources/gui/qml/pages/settings/SettingsBluetoothCuff.qml =================================================================== diff -u -r47c8f13876317ba36500400f894d96c9bce9eb17 -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- sources/gui/qml/pages/settings/SettingsBluetoothCuff.qml (.../SettingsBluetoothCuff.qml) (revision 47c8f13876317ba36500400f894d96c9bce9eb17) +++ sources/gui/qml/pages/settings/SettingsBluetoothCuff.qml (.../SettingsBluetoothCuff.qml) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -79,7 +79,7 @@ anchors.leftMargin: 5 } onClicked: { - vBluetooth.didDeviceSelect(addr, name); + vBluetooth.didDeviceSelect(addr, name) } ProgressCircle { minimum : 0 Index: sources/gui/qml/pages/treatment/sections/TreatmentHeparin.qml =================================================================== diff -u -r583d1953c783940c93f22c37b23daadb1ff3a09c -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- sources/gui/qml/pages/treatment/sections/TreatmentHeparin.qml (.../TreatmentHeparin.qml) (revision 583d1953c783940c93f22c37b23daadb1ff3a09c) +++ sources/gui/qml/pages/treatment/sections/TreatmentHeparin.qml (.../TreatmentHeparin.qml) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -39,14 +39,17 @@ QtObject { id: _private readonly property string textHeparin : qsTr("HEPARIN DELIVERY") + readonly property string textOff : qsTr("OFF") readonly property string textPause : qsTr("PAUSE DELIVERY") readonly property string textResume : qsTr("RESUME DELIVERY") + readonly property string textComplete : qsTr("COMPLETE") readonly property string textVolumeTarget : "(" + valueTarget + unit + ")" - readonly property string mesgBolus : qsTr("Heparin Bolus Active") readonly property string mesgCompleted : qsTr("Maximum Cumulative Heparin Volume Delivered") - readonly property string mesgEmpty : qsTr("Heparin Syringe Empty") - readonly property string mesgOff : qsTr("Heparin Delivery Off") - readonly property string mesgStopped : qsTr("Heparin Delivery Stopped") + readonly property string mesgBolus : qsTr("Bolus Active") + readonly property string mesgEmpty : qsTr("Syringe Empty") + readonly property string mesgOff : qsTr("") // it is redundant since the button text is now display OFF + readonly property string mesgStopped : qsTr("Delivery Stopped") + readonly property string mesgDispensing : qsTr("Delivery Active") readonly property string mesgRejectReason : vTreatmentAdjustmentHeparin.adjustment_ReasonText } @@ -63,8 +66,8 @@ buttonText : ! isTxRunning ? _private.textHeparin : isDispensing ? _private.textPause : isPaused ? _private.textResume : - isCompleted ? _private.textHeparin : // decided to not to enable user to resume the heparin while completed (1/Apr/2021 - I,Sean,Nick) - // isCompleted ? _private.textResume : + isCompleted ? _private.textComplete : // decided to not to enable user to resume the heparin while completed (1/Apr/2021 - I,Sean,Nick) + isOff ? _private.textOff : _private.textHeparin unit : Variables.unitTextSaline @@ -85,6 +88,7 @@ isStopped ? _private.mesgStopped : isCompleted ? _private.mesgCompleted : isEmpty ? _private.mesgEmpty : + isDispensing ? _private.mesgDispencing : _private.mesgRejectReason } } Index: sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp =================================================================== diff -u -r59fc5195a10eeb83ac60cf32a9123fb9c9f8ec8e -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp (.../VCommonAdjustmentVitals.cpp) (revision 59fc5195a10eeb83ac60cf32a9123fb9c9f8ec8e) +++ sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp (.../VCommonAdjustmentVitals.cpp) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -46,19 +46,17 @@ */ void View::VTreatmentVitals::onActionReceive(const UIBloodPressureData &vData) { - if ( ! _enabled ) { - // if the vitals is disabled it means Gui is probably in an incorrect state and is unable to handle the vital information. - LOG_EVENT_UI(tr("Measured vital values ignored due to incorrect state")); - return; - } // Not used yet. // adjustment_Accepted ( vData.mAccepted ); // adjustment_Reason ( vData.mReason ); update(vData.mSystolic, vData.mDiastolic, vData.mPulseRate); - treatmentLog(); timerReset(); + + // if the vitals is disabled it means GUI is probably in an invalid state/screen and the treatment log should not be updated. + if ( _enabled ) treatmentLog(); + else LOG_EVENT_UI(tr("Measured vital values not logged due to incorrect state")); } /*! Index: sources/view/settings/VBluetooth.cpp =================================================================== diff -u -re8262d170bb94046ddb767074a31530bdf4a2319 -rbefa8e7e7667c4aa5193022bd80e9f52c2374ad0 --- sources/view/settings/VBluetooth.cpp (.../VBluetooth.cpp) (revision e8262d170bb94046ddb767074a31530bdf4a2319) +++ sources/view/settings/VBluetooth.cpp (.../VBluetooth.cpp) (revision befa8e7e7667c4aa5193022bd80e9f52c2374ad0) @@ -114,12 +114,12 @@ } // TODO: re-evaluate the states for the scan button enable/disable. - // scanEnabled(state == MBluetooth::eIS_Idle || - // state == MBluetooth::eIS_Scan_Done || - // state == MBluetooth::eIS_Scan_NotFound || - // state == MBluetooth::eIS_Device_Error || - // state == MBluetooth::eIS_Device_Waiting - // ); + // scanEnabled(state == MBluetooth::eIS_Idle + // || state == MBluetooth::eIS_Scan_Done + // || state == MBluetooth::eIS_Scan_NotFound + // || state == MBluetooth::eIS_Device_Error + // || state == MBluetooth::eIS_Device_Waiting + // ); switch (state) { // The device name is not always available and the interface may be in investigation.