Index: denali.pro =================================================================== diff -u -r06d10ee1174f0947a01087554f3da3109b47aef6 -r9187b3bc0167642cfb350a372654e4cfc0be046b --- denali.pro (.../denali.pro) (revision 06d10ee1174f0947a01087554f3da3109b47aef6) +++ denali.pro (.../denali.pro) (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -53,6 +53,7 @@ sources/main.h \ sources/model/MDGDebugText.h \ sources/model/MHDDebugText.h \ + sources/model/hd/data/MHDAccelerometerData.h \ sources/storage/DriveWatcher.h \ sources/threads.h \ sources/maintimer.h \ @@ -109,6 +110,7 @@ sources/gui/guicontroller.h \ \ # ---------- Views ---------- sources/view/VEventSpy.h \ + sources/view/hd/data/VHDAccelerometerData.h \ sources/view/hd/data/VHDTreatmentStatesData.h \ sources/view/vview.h \ sources/view/vpoweroff.h \ @@ -159,6 +161,7 @@ main.cpp \ sources/model/MDGDebugText.cpp \ sources/model/MHDDebugText.cpp \ + sources/model/hd/data/MHDAccelerometerData.cpp \ sources/storage/DriveWatcher.cpp \ sources/threads.cpp \ sources/maintimer.cpp \ @@ -212,6 +215,7 @@ sources/gui/guicontroller.cpp \ \ # ---------- Views ---------- sources/view/VEventSpy.cpp \ + sources/view/hd/data/VHDAccelerometerData.cpp \ sources/view/hd/data/VHDTreatmentStatesData.cpp \ sources/view/vpoweroff.cpp \ \ # ---------- Views - Alarm Index: denali.pro.user =================================================================== diff -u -r4df19fe88c454bd54abcdaf983be59464c5ef5bc -r9187b3bc0167642cfb350a372654e4cfc0be046b --- denali.pro.user (.../denali.pro.user) (revision 4df19fe88c454bd54abcdaf983be59464c5ef5bc) +++ denali.pro.user (.../denali.pro.user) (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -1,6 +1,6 @@ - + EnvironmentId @@ -1122,6 +1122,15 @@ 1 + dwarf + + cpu-cycles + + + 250 + -F + true + 4096 false false 1000 @@ -1414,6 +1423,15 @@ 1 + dwarf + + cpu-cycles + + + 250 + -F + true + 4096 false false 1000 Index: sources/canbus/messageglobals.h =================================================================== diff -u -r56e378f7504701b9e9a9dccaf205aef2fd52c58e -r9187b3bc0167642cfb350a372654e4cfc0be046b --- sources/canbus/messageglobals.h (.../messageglobals.h) (revision 56e378f7504701b9e9a9dccaf205aef2fd52c58e) +++ sources/canbus/messageglobals.h (.../messageglobals.h) (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -55,6 +55,7 @@ {Gui::GuiActionType::ID_DialysateOutletFlow , 7 * 4 }, // 7 parameters each 4bytes {Gui::GuiActionType::ID_PressureOcclusion , 5 * 4 }, // 5 parameters each 4bytes {Gui::GuiActionType::ID_Saline , 3 * 4 }, // 3 parameters each 4bytes + {Gui::GuiActionType::ID_HDAccelerometerData , 9 * 4 }, // 9 parameters each 4bytes // ---- {Gui::GuiActionType::ID_HDOperationModeData , 1 * 4 }, // 1 parameter each 4bytes Index: sources/canbus/messageinterpreter.cpp =================================================================== diff -u -r56e378f7504701b9e9a9dccaf205aef2fd52c58e -r9187b3bc0167642cfb350a372654e4cfc0be046b --- sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 56e378f7504701b9e9a9dccaf205aef2fd52c58e) +++ sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -326,6 +326,7 @@ case Gui::GuiActionType::ID_PressureOcclusion : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PressureOcclusion ); break; case Gui::GuiActionType::ID_TreatmentStates : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentStates ); break; case Gui::GuiActionType::ID_Saline : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Saline ); break; + case Gui::GuiActionType::ID_HDAccelerometerData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDAccelerometerData ); break; // ----- Events case Gui::GuiActionType::ID_HDOperationModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDOperationModeData ); break; Index: sources/gui/guiglobals.h =================================================================== diff -u -r56e378f7504701b9e9a9dccaf205aef2fd52c58e -r9187b3bc0167642cfb350a372654e4cfc0be046b --- sources/gui/guiglobals.h (.../guiglobals.h) (revision 56e378f7504701b9e9a9dccaf205aef2fd52c58e) +++ sources/gui/guiglobals.h (.../guiglobals.h) (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -77,6 +77,7 @@ ID_PressureOcclusion = 0x0900, ID_TreatmentStates = 0x0F00, // 15 ID_Saline = 0x2F00, // 47 + ID_HDAccelerometerData = 0x3300, // 51 ID_AlarmStatus = 0x0200, ID_AlarmTriggered = 0x0300, Index: sources/model/MModel.h =================================================================== diff -u -r56e378f7504701b9e9a9dccaf205aef2fd52c58e -r9187b3bc0167642cfb350a372654e4cfc0be046b --- sources/model/MModel.h (.../MModel.h) (revision 56e378f7504701b9e9a9dccaf205aef2fd52c58e) +++ sources/model/MModel.h (.../MModel.h) (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -29,6 +29,7 @@ #include "MTreatmentRangesData.h" #include "MTreatmentStatesData.h" #include "MTreatmentSalineData.h" +#include "MHDAccelerometerData.h" #include "MDGDrainPumpData.h" #include "MDGHeatersData.h" @@ -132,6 +133,7 @@ REGISTER_METATYPE( TreatmentStatesData ) \ REGISTER_METATYPE( TreatmentSalineData ) \ REGISTER_METATYPE( HDOperationModeData ) \ + REGISTER_METATYPE( HDAccelerometerData ) \ \ REGISTER_METATYPE( DGROPumpData ) \ REGISTER_METATYPE( DGPressuresData ) \ @@ -175,6 +177,7 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentStatesData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentSalineData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, HDOperationModeData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, HDAccelerometerData ) \ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGROPumpData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGPressuresData ) \ @@ -218,6 +221,7 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentStatesData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentSalineData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( HDOperationModeData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( HDAccelerometerData ) \ \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGROPumpData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGPressuresData ) \ @@ -277,6 +281,7 @@ ACTION_RECEIVE_SIGNAL( TreatmentStatesData ) \ ACTION_RECEIVE_SIGNAL( TreatmentSalineData ) \ ACTION_RECEIVE_SIGNAL( HDOperationModeData ) \ + ACTION_RECEIVE_SIGNAL( HDAccelerometerData ) \ \ ACTION_RECEIVE_SIGNAL( DGROPumpData ) \ ACTION_RECEIVE_SIGNAL( DGPressuresData ) \ Index: sources/model/hd/data/MHDAccelerometerData.cpp =================================================================== diff -u --- sources/model/hd/data/MHDAccelerometerData.cpp (revision 0) +++ sources/model/hd/data/MHDAccelerometerData.cpp (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -0,0 +1,68 @@ +/*! + * + * Copyright (c) 2020-2020 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file MHDAccelerometerData.cpp + * \author (last) Peman Montazemi + * \date (last) 3-Sep-2020 + * \author (original) Peman Montazemi + * \date (original) 3-Sep-2020 + * + */ +#include "MHDAccelerometerData.h" + +using namespace Model; + +QVariantList MHDAccelerometer::parameters() const { + return { + _data.mX .value, + _data.mY .value, + _data.mZ .value, + _data.mXMax .value, + _data.mYMax .value, + _data.mZMax .value, + _data.mXTilt .value, + _data.mYTilt .value, + _data.mZTilt .value, + }; +} + +bool MHDAccelerometer::fromByteArray(const QByteArray &vByteArray, int *vIndex) { + int index = 0; // message data start position + if (GetValue(vByteArray, index, _data.mX )) + if (GetValue(vByteArray, index, _data.mY )) + if (GetValue(vByteArray, index, _data.mZ )) + if (GetValue(vByteArray, index, _data.mXMax )) + if (GetValue(vByteArray, index, _data.mYMax )) + if (GetValue(vByteArray, index, _data.mZMax )) + if (GetValue(vByteArray, index, _data.mXTilt )) + if (GetValue(vByteArray, index, _data.mYTilt )) + if (GetValue(vByteArray, index, _data.mZTilt )) + return true ; + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } + else { if(vIndex) *vIndex = index; return false; } +} + +MHDAccelerometer::Data MHDAccelerometer::data() const { + Data data; + data.mX = _data.mX .value; + data.mY = _data.mY .value; + data.mZ = _data.mZ .value; + data.mXMax = _data.mXMax .value; + data.mYMax = _data.mYMax .value; + data.mZMax = _data.mZMax .value; + data.mXTilt = _data.mXTilt .value; + data.mYTilt = _data.mYTilt .value; + data.mZTilt = _data.mZTilt .value; + return data; +} Index: sources/model/hd/data/MHDAccelerometerData.h =================================================================== diff -u --- sources/model/hd/data/MHDAccelerometerData.h (revision 0) +++ sources/model/hd/data/MHDAccelerometerData.h (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -0,0 +1,76 @@ +/*! + * + * Copyright (c) 2020-2020 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file MHDAccelerometerData.h + * \author (last) Peman Montazemi + * \date (last) 3-Sep-2020 + * \author (original) Peman Montazemi + * \date (original) 3-Sep-2020 + * + */ +#pragma once + + +// Qt +#include + +// Project +#include "MAbstract.h" +#include "types.h" + +// forward declarations +class tst_models; + +namespace Model { + +class MHDAccelerometer : public MAbstract { + + // friends + friend class ::tst_models; + + QVariantList parameters() const override; + + struct { + Types::F32 mX ; + Types::F32 mY ; + Types::F32 mZ ; + Types::F32 mXMax ; + Types::F32 mYMax ; + Types::F32 mZMax ; + Types::F32 mXTilt ; + Types::F32 mYTilt ; + Types::F32 mZTilt ; + } _data; + +public: + + Type_Enum typeText() const override { return Type_Enum::eDatum ; } + Unit_Enum unitText() const override { return Unit_Enum::eHD ; } + QString infoText() const override { return QString("HDAccelData") ; } + + struct Data { + float mX = 0; /*!< X Magnitude of acceleration vector in X axis in g units */ + float mY = 0; /*!< Y Magnitude of acceleration vector in Y axis in g units */ + float mZ = 0; /*!< Z Magnitude of acceleration vector in Z axis in g units */ + float mXMax = 0; /*!< X Max Maximum magnitude of acceleration vector in X axis in g units */ + float mYMax = 0; /*!< Y Max Maximum magnitude of acceleration vector in Y axis in g units */ + float mZMax = 0; /*!< Z Max Maximum magnitude of acceleration vector in Z axis in g units */ + float mXTilt = 0; /*!< X Tilt Tilt angle in the X axis in degrees */ + float mYTilt = 0; /*!< Y Tilt Tilt angle in the Y axis in degrees */ + float mZTilt = 0; /*!< Z Tilt Tilt angle in the Z axis in degrees */ + }; + +public: + MHDAccelerometer () { } + + bool fromByteArray (const QByteArray &vByteArray , int *vIndex = nullptr) override; + Data data ( ) const ; +}; + +} + +typedef Model::MHDAccelerometer::Data HDAccelerometerData; Index: sources/view/hd/data/VHDAccelerometerData.cpp =================================================================== diff -u --- sources/view/hd/data/VHDAccelerometerData.cpp (revision 0) +++ sources/view/hd/data/VHDAccelerometerData.cpp (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -0,0 +1,33 @@ +/*! + * + * Copyright (c) 2020-2020 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file VHDAccelerometerData.cpp + * \author (last) Peman Montazemi + * \date (last) 3-Sep-2020 + * \author (original) Peman Montazemi + * \date (original) 3-Sep-2020 + * + */ +#include "VHDAccelerometerData.h" + +// Project +#include "guicontroller.h" + +VIEW_DEF(VHDAccelerometer, HDAccelerometerData) + +void VHDAccelerometer::onActionReceive(const HDAccelerometerData &vData) +{ + X (vData.mX ); + Y (vData.mY ); + Z (vData.mZ ); + XMax (vData.mXMax ); + YMax (vData.mYMax ); + ZMax (vData.mZMax ); + XTilt (vData.mXTilt ); + YTilt (vData.mYTilt ); + ZTilt (vData.mZTilt ); +} Index: sources/view/hd/data/VHDAccelerometerData.h =================================================================== diff -u --- sources/view/hd/data/VHDAccelerometerData.h (revision 0) +++ sources/view/hd/data/VHDAccelerometerData.h (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -0,0 +1,43 @@ +/*! + * + * Copyright (c) 2020-2020 Diality Inc. - All Rights Reserved. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * + * \file VHDAccelerometerData.h + * \author (last) Peman Montazemi + * \date (last) 3-Sep-2020 + * \author (original) Peman Montazemi + * \date (original) 3-Sep-2020 + * + */ +#pragma once + +// Qt +#include + +// Project +#include "MModel.h" +#include "vview.h" + +// namespace +namespace View { + +class VHDAccelerometer : public QObject +{ + Q_OBJECT + + PROPERTY( float , X , 0) + PROPERTY( float , Y , 0) + PROPERTY( float , Z , 0) + PROPERTY( float , XMax , 0) + PROPERTY( float , YMax , 0) + PROPERTY( float , ZMax , 0) + PROPERTY( float , XTilt , 0) + PROPERTY( float , YTilt , 0) + PROPERTY( float , ZTilt , 0) + + VIEW_DEC(VHDAccelerometer, HDAccelerometerData) +}; +} Index: sources/view/hd/data/VHDOperationModeData.h =================================================================== diff -u -r56e378f7504701b9e9a9dccaf205aef2fd52c58e -r9187b3bc0167642cfb350a372654e4cfc0be046b --- sources/view/hd/data/VHDOperationModeData.h (.../VHDOperationModeData.h) (revision 56e378f7504701b9e9a9dccaf205aef2fd52c58e) +++ sources/view/hd/data/VHDOperationModeData.h (.../VHDOperationModeData.h) (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -26,8 +26,7 @@ using namespace Gui; namespace View { -class VHDOperationMode : public QObject -{ +class VHDOperationMode : public QObject { Q_OBJECT PROPERTY( quint32 , opMode , 0) @@ -41,6 +40,5 @@ public slots: QString text(); - }; } Index: sources/view/vview.h =================================================================== diff -u -r56e378f7504701b9e9a9dccaf205aef2fd52c58e -r9187b3bc0167642cfb350a372654e4cfc0be046b --- sources/view/vview.h (.../vview.h) (revision 56e378f7504701b9e9a9dccaf205aef2fd52c58e) +++ sources/view/vview.h (.../vview.h) (revision 9187b3bc0167642cfb350a372654e4cfc0be046b) @@ -105,6 +105,7 @@ REGISTER_TYPE( VTreatmentSaline ) \ REGISTER_TYPE( VHDOperationMode ) \ REGISTER_TYPE( VHDTreatmentStates ) \ + REGISTER_TYPE( VHDAccelerometer ) \ \ REGISTER_TYPE( VDGDrainPump ) \ REGISTER_TYPE( VDGHeaters ) \ @@ -124,4 +125,3 @@ REGISTER_TYPE( VTreatmentAdjustmentSaline ) \ //--------------------------------------------------------------------------------// -