Index: sources/model/model.h =================================================================== diff -u -r296e0e140bfeb193a9f571873afa6934143b1075 -r4a6abe765f03feae8100ec660aa04aa218d4dfa3 --- sources/model/model.h (.../model.h) (revision 296e0e140bfeb193a9f571873afa6934143b1075) +++ sources/model/model.h (.../model.h) (revision 4a6abe765f03feae8100ec660aa04aa218d4dfa3) @@ -31,20 +31,21 @@ private: struct Data { - Types::S32 mFlowSetPoint ; /*!< vFlowSetPoint - Flow Set Point value of type signed int extracted out */ - Types::F32 mMeasuredFlow ; /*!< vMeasuredFlow - Measured Flow value of type float extracted out */ - Types::F32 mRotorSpeed ; /*!< vRotorSpeed - Rotor Speed value of type float extracted out */ - Types::F32 mMotorSpeed ; /*!< vMotorSpeed - Motor Speed value of type float extracted out */ - Types::F32 mMotorCtlSpeed ; /*!< vMotorCtlSpeed - Motor Controller Speed value of type float extracted out */ - Types::F32 mMotorCtlCurrent ; /*!< vMotorCtlCurrent - Motor Controller Current value of type float extracted out */ - Types::F32 mPWMDutyCycle ; /*!< vPWMDtCycle - PWM Duty Cycle in % value of type float extracted out */ + Types::S32 mFlowSetPoint ; /*!< vFlowSetPoint - Flow Set Point value of type signed int extracted out */ + Types::F32 mMeasuredFlow ; /*!< vMeasuredFlow - Measured Flow value of type float extracted out */ + Types::F32 mRotorSpeed ; /*!< vRotorSpeed - Rotor Speed value of type float extracted out */ + Types::F32 mMotorSpeed ; /*!< vMotorSpeed - Motor Speed value of type float extracted out */ + Types::F32 mMotorCtlSpeed ; /*!< vMotorCtlSpeed - Motor Controller Speed value of type float extracted out */ + Types::F32 mMotorCtlCurrent ; /*!< vMotorCtlCurrent - Motor Controller Current value of type float extracted out */ + Types::F32 mPWMDutyCycle ; /*!< vPWMDtCycle - PWM Duty Cycle in % value of type float extracted out */ }; Data _data; + public: Flow () : _data {0, 0, 0, 0, 0, 0, 0} { } - QString toString ( ); - void toVariantList ( QVariantList &vData ); + QString toString ( ) const ; + void toVariantList ( QVariantList &vData ) const ; void fromByteArray (const QByteArray &vByteArray ); const Data &data() const ; @@ -53,13 +54,13 @@ class BloodFlow : public Flow { public: struct Data { - qint32 mFlowSetPoint ; /*!< vFlowSetPoint - Flow Set Point value of type signed int extracted out */ - float mMeasuredFlow ; /*!< vMeasuredFlow - Measured Flow value of type float extracted out */ - float mRotorSpeed ; /*!< vRotorSpeed - Rotor Speed value of type float extracted out */ - float mMotorSpeed ; /*!< vMotorSpeed - Motor Speed value of type float extracted out */ - float mMotorCtlSpeed ; /*!< vMotorCtlSpeed - Motor Controller Speed value of type float extracted out */ - float mMotorCtlCurrent ; /*!< vMotorCtlCurrent - Motor Controller Current value of type float extracted out */ - float mPWMDutyCycle ; /*!< vPWMDtCycle - PWM Duty Cycle in % value of type float extracted out */ + qint32 mFlowSetPoint = 0; /*!< vFlowSetPoint - Flow Set Point value of type signed int extracted out */ + float mMeasuredFlow = 0; /*!< vMeasuredFlow - Measured Flow value of type float extracted out */ + float mRotorSpeed = 0; /*!< vRotorSpeed - Rotor Speed value of type float extracted out */ + float mMotorSpeed = 0; /*!< vMotorSpeed - Motor Speed value of type float extracted out */ + float mMotorCtlSpeed = 0; /*!< vMotorCtlSpeed - Motor Controller Speed value of type float extracted out */ + float mMotorCtlCurrent = 0; /*!< vMotorCtlCurrent - Motor Controller Current value of type float extracted out */ + float mPWMDutyCycle = 0; /*!< vPWMDtCycle - PWM Duty Cycle in % value of type float extracted out */ }; BloodFlow() { stringPrefix = "Blood Flow"; } Data data() const; @@ -68,19 +69,190 @@ class DialysateFlow : public Flow { public: struct Data { - qint32 mFlowSetPoint ; /*!< vFlowSetPoint - Flow Set Point value of type signed int extracted out */ - float mMeasuredFlow ; /*!< vMeasuredFlow - Measured Flow value of type float extracted out */ - float mRotorSpeed ; /*!< vRotorSpeed - Rotor Speed value of type float extracted out */ - float mMotorSpeed ; /*!< vMotorSpeed - Motor Speed value of type float extracted out */ - float mMotorCtlSpeed ; /*!< vMotorCtlSpeed - Motor Controller Speed value of type float extracted out */ - float mMotorCtlCurrent ; /*!< vMotorCtlCurrent - Motor Controller Current value of type float extracted out */ - float mPWMDutyCycle ; /*!< vPWMDtCycle - PWM Duty Cycle in % value of type float extracted out */ + qint32 mFlowSetPoint = 0; /*!< vFlowSetPoint - Flow Set Point value of type signed int extracted out */ + float mMeasuredFlow = 0; /*!< vMeasuredFlow - Measured Flow value of type float extracted out */ + float mRotorSpeed = 0; /*!< vRotorSpeed - Rotor Speed value of type float extracted out */ + float mMotorSpeed = 0; /*!< vMotorSpeed - Motor Speed value of type float extracted out */ + float mMotorCtlSpeed = 0; /*!< vMotorCtlSpeed - Motor Controller Speed value of type float extracted out */ + float mMotorCtlCurrent = 0; /*!< vMotorCtlCurrent - Motor Controller Current value of type float extracted out */ + float mPWMDutyCycle = 0; /*!< vPWMDtCycle - PWM Duty Cycle in % value of type float extracted out */ }; DialysateFlow() { stringPrefix = "Dialysate Flow"; } Data data() const; }; + +class OutletFlow { +public: + QString stringPrefix = "Dialysate Outlet Flow"; + struct Data { + float mRefUFVol = 0; /*!< Reference UF Volume value of type float extracted out */ + float mMeasUFVol = 0; /*!< Measured UF Volume value of type float extracted out */ + float mRotorSpeed = 0; /*!< Rotor Speed value of type float extracted out */ + float mMotorSpeed = 0; /*!< Motor Speed value of type float extracted out */ + float mMotorCtlSpeed = 0; /*!< Motor Controller Speed value of type float extracted out */ + float mMotorCtlCurrent = 0; /*!< Motor Controller Current value of type float extracted out */ + float mPWMDtCycle = 0; /*!< PWM Duty Cycle in % value of type float extracted out */ + }; + +private: + struct { + Types::F32 mRefUFVol ; + Types::F32 mMeasUFVol ; + Types::F32 mRotorSpeed ; + Types::F32 mMotorSpeed ; + Types::F32 mMotorCtlSpeed ; + Types::F32 mMotorCtlCurrent ; + Types::F32 mPWMDtCycle ; + } _data; + +public: + OutletFlow () : _data {0, 0, 0, 0, 0, 0} { } + + QString toString ( ) const ; + void toVariantList ( QVariantList &vData ) const ; + void fromByteArray (const QByteArray &vByteArray ); + + Data data() const; +}; + +class TreatmentTime { +public: + QString stringPrefix = "Treatment Time"; + struct Data { + quint32 mTotal = 0; /*!< Total treatment time in sec */ + quint32 mElapsed = 0; /*!< Elapsed treatment time in sec */ + quint32 mRemaining = 0; /*!< Remaining treatment time in sec */ + }; + +private: + struct { + Types::U32 mTotal ; + Types::U32 mElapsed ; + Types::U32 mRemaining ; + } _data; + +public: + TreatmentTime() : _data {0, 0, 0} { } + + QString toString ( ) const ; + void toVariantList ( QVariantList &vData ) const ; + void fromByteArray (const QByteArray &vByteArray ); + + Data data() const; +}; + +class AlarmStatus { +public: + enum Flag { + eFlag_systemFault = 0 , + eFlag_stop , + eFlag_noClear , + eFlag_noResume , + eFlag_noRinseback , + eFlag_noEndTreatment , + eFlag_noNewTreatment , + eFlag_bypassDialyzer , + eFlag_alarmsToEscalate , + eFlag_alarmsSilenced , + eFlag_Bits_Length = 16, + }; + QString stringPrefix = "Alarm Status"; + struct Data { + quint32 mState = 0; /*!< State - Alarm Priority value of type unsigned int as 4 bytes extracted out */ + quint32 mTop = 0; /*!< Top - Top value of type unsigned int as 4 bytes extracted out */ + quint32 mMuteTimeout = 0; /*!< MuteTimeout - MuteTimeout value of type unsigned int as 4 bytes extracted out */ + quint32 mEscalatesIn = 0; /*!< EscalatesIn - EscalatesIn value of type unsigned int as 4 bytes extracted out */ + QBitArray mFlags ; /*!< Flags - Flags value of type unsigned int as 1 byte extracted out */ + }; + +private: + struct { + Types::U32 mState ; + Types::U32 mTop ; + Types::U32 mMuteTimeout ; + Types::U32 mEscalatesIn ; + Types::Flags mFlags ; + } _data; + +public: + AlarmStatus() : _data {0, 0, 0, 0} { } + + QString toString ( ) const ; + void toVariantList ( QVariantList &vData ) const ; + void fromByteArray (const QByteArray &vByteArray ); + + Data data() const; +}; + } typedef Model:: BloodFlow::Data BloodFlowData; typedef Model::DialysateFlow::Data DialysateFlowData; +typedef Model:: OutletFlow::Data OutletFlowData; +typedef Model::TreatmentTime::Data TreatmentTimeData; +typedef Model:: AlarmStatus::Data AlarmStatusData; +typedef Model:: AlarmStatus::Flag AlarmStatusFlag; + +//--------------------------------------------------------------------------------// +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, vTYPE) \ + connect(&vSOURCE, SIGNAL(didActionReceive(const vTYPE &)), \ + this , SLOT( onActionReceive(const vTYPE &))); +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_PRIVATE_SLOT(vTYPE) \ +private Q_SLOTS: \ + void onActionReceive (const vTYPE &vData) { \ + emit didActionReceive(vData); \ + } +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_SIGNAL(vTYPE) \ +Q_SIGNALS: \ + void didActionReceive (const vTYPE &vData); +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_BRIDGE_DEFINITION(vTYPE) \ + ACTION_RECEIVE_PRIVATE_SLOT (vTYPE) \ + ACTION_RECEIVE_SIGNAL (vTYPE) +//--------------------------------------------------------------------------------// +#define REGISTER_METATYPE(vTYPE) \ + qRegisterMetaType < vTYPE > (#vTYPE); +//--------------------------------------------------------------------------------// +//-------- Please add the model type to the lists below to register them ---------// +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_MODEL_BRIDGE_CONNECTIONS(vSOURCE) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, BloodFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DialysateFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, OutletFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentTimeData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmStatusData ) +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_MODEL_BRIDGE_DEFINITIONS \ + ACTION_RECEIVE_BRIDGE_DEFINITION( BloodFlowData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( DialysateFlowData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( OutletFlowData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentTimeData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmStatusData ) +//--------------------------------------------------------------------------------// +#define REGISTER_MODEL_METATYPES \ + REGISTER_METATYPE( BloodFlowData ) \ + REGISTER_METATYPE( DialysateFlowData ) \ + REGISTER_METATYPE( OutletFlowData ) \ + REGISTER_METATYPE( TreatmentTimeData ) \ + REGISTER_METATYPE( AlarmStatusData ) \ + REGISTER_METATYPE( AlarmStatusFlag ) +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_INTERPRETER_CONNECTIONS \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, BloodFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, DialysateFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, OutletFlowData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, TreatmentTimeData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(_interpreter, AlarmStatusData ) +//--------------------------------------------------------------------------------// +#define ACTION_RECEIVE_SIGNALS \ + ACTION_RECEIVE_SIGNAL( BloodFlowData ) \ + ACTION_RECEIVE_SIGNAL( DialysateFlowData ) \ + ACTION_RECEIVE_SIGNAL( OutletFlowData ) \ + ACTION_RECEIVE_SIGNAL( TreatmentTimeData ) \ + ACTION_RECEIVE_SIGNAL( AlarmStatusData ) +//--------------------------------------------------------------------------------// +//--------------------------------------------------------------------------------//