/*! * * Copyright (c) 2019-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 model.cpp * date 3/4/2020 * author Behrouz NematiPour * */ #include "model.h" using namespace Model; // ----- BloodFlow ----- QString Flow::toString() const { return QString(stringPrefix + "(%1, %2, %3, %4, %5, %6, %7)") .arg(_data.mFlowSetPoint .value) .arg(_data.mMeasuredFlow .value) .arg(_data.mRotorSpeed .value) .arg(_data.mMotorSpeed .value) .arg(_data.mMotorCtlSpeed .value) .arg(_data.mMotorCtlCurrent .value) .arg(_data.mPWMDutyCycle .value); } void Flow::toVariantList(QVariantList &vData) const { vData += _data.mFlowSetPoint .value; vData += _data.mMeasuredFlow .value; vData += _data.mRotorSpeed .value; vData += _data.mMotorSpeed .value; vData += _data.mMotorCtlSpeed .value; vData += _data.mMotorCtlCurrent .value; vData += _data.mPWMDutyCycle .value; } void Flow::fromByteArray(const QByteArray &vByteArray) { int index = 0; // message data start position Types::getValue<>(vByteArray, index, _data.mFlowSetPoint ); Types::getValue<>(vByteArray, index, _data.mMeasuredFlow ); Types::getValue<>(vByteArray, index, _data.mRotorSpeed ); Types::getValue<>(vByteArray, index, _data.mMotorSpeed ); Types::getValue<>(vByteArray, index, _data.mMotorCtlSpeed ); Types::getValue<>(vByteArray, index, _data.mMotorCtlCurrent ); Types::getValue<>(vByteArray, index, _data.mPWMDutyCycle ); } const Flow::Data &Flow::data() const { return _data; } // ----- BloodFlow ----- BloodFlow::Data BloodFlow::data() const { Data data; data.mFlowSetPoint = Flow::data().mFlowSetPoint .value; data.mMeasuredFlow = Flow::data().mMeasuredFlow .value; data.mRotorSpeed = Flow::data().mRotorSpeed .value; data.mMotorSpeed = Flow::data().mMotorSpeed .value; data.mMotorCtlSpeed = Flow::data().mMotorCtlSpeed .value; data.mMotorCtlCurrent = Flow::data().mMotorCtlCurrent.value; data.mPWMDutyCycle = Flow::data().mPWMDutyCycle .value; return data; } // ----- DialysateFlow ----- DialysateFlow::Data DialysateFlow::data() const { Data data; data.mFlowSetPoint = Flow::data().mFlowSetPoint .value; data.mMeasuredFlow = Flow::data().mMeasuredFlow .value; data.mRotorSpeed = Flow::data().mRotorSpeed .value; data.mMotorSpeed = Flow::data().mMotorSpeed .value; data.mMotorCtlSpeed = Flow::data().mMotorCtlSpeed .value; data.mMotorCtlCurrent = Flow::data().mMotorCtlCurrent.value; data.mPWMDutyCycle = Flow::data().mPWMDutyCycle .value; return data; } // ----- OutletFlow ----- QString OutletFlow::toString() const { return QString(stringPrefix + "(%1, %2, %3, %4, %5, %6, %7)") .arg(_data.mRefUFVol .value) .arg(_data.mMeasUFVol .value) .arg(_data.mRotorSpeed .value) .arg(_data.mMotorSpeed .value) .arg(_data.mMotorCtlSpeed .value) .arg(_data.mMotorCtlCurrent .value) .arg(_data.mPWMDtCycle .value); } void OutletFlow::toVariantList(QVariantList &vData) const { vData += _data.mRefUFVol .value; vData += _data.mMeasUFVol .value; vData += _data.mRotorSpeed .value; vData += _data.mMotorSpeed .value; vData += _data.mMotorCtlSpeed .value; vData += _data.mMotorCtlCurrent.value; vData += _data.mPWMDtCycle .value; } void OutletFlow::fromByteArray(const QByteArray &vByteArray) { int index = 0; // message data start position Types::getValue<>(vByteArray, index, _data.mRefUFVol ); Types::getValue<>(vByteArray, index, _data.mMeasUFVol ); Types::getValue<>(vByteArray, index, _data.mRotorSpeed ); Types::getValue<>(vByteArray, index, _data.mMotorSpeed ); Types::getValue<>(vByteArray, index, _data.mMotorCtlSpeed ); Types::getValue<>(vByteArray, index, _data.mMotorCtlCurrent); Types::getValue<>(vByteArray, index, _data.mPWMDtCycle ); } OutletFlow::Data OutletFlow::data() const { Data data; data.mRefUFVol = _data.mRefUFVol .value; data.mMeasUFVol = _data.mMeasUFVol .value; data.mRotorSpeed = _data.mRotorSpeed .value; data.mMotorSpeed = _data.mMotorSpeed .value; data.mMotorCtlSpeed = _data.mMotorCtlSpeed .value; data.mMotorCtlCurrent = _data.mMotorCtlCurrent.value; data.mPWMDtCycle = _data.mPWMDtCycle .value; return data; } // ----- TreatmentTime ----- QString TreatmentTime::toString() const { return QString(stringPrefix + "(%1, %2, %3)") .arg(_data.mTotal .value) .arg(_data.mElapsed .value) .arg(_data.mRemaining .value); } void TreatmentTime::toVariantList(QVariantList &vData) const { vData += _data.mTotal .value; vData += _data.mElapsed .value; vData += _data.mRemaining .value; } void TreatmentTime::fromByteArray(const QByteArray &vByteArray) { int index = 0; // message data start position Types::getValue<>(vByteArray, index, _data.mTotal ); Types::getValue<>(vByteArray, index, _data.mElapsed ); Types::getValue<>(vByteArray, index, _data.mRemaining ); } TreatmentTime::Data TreatmentTime::data() const { Data data; data.mTotal = _data.mTotal .value; data.mElapsed = _data.mElapsed .value; data.mRemaining = _data.mRemaining .value; return data; } QString AlarmStatus::toString() const { return QString("Alarm Status(%1, %2, %3, %4, %5)") .arg(_data.mState .value ) .arg(_data.mTop .value ) .arg(_data.mMuteTimeout .value ) .arg(_data.mEscalatesIn .value ) .arg(_data.mFlags .toString()); } void AlarmStatus::toVariantList(QVariantList &vData) const { vData += _data.mState .value ; vData += _data.mTop .value ; vData += _data.mMuteTimeout .value ; vData += _data.mEscalatesIn .value ; for (int i = 0; i < _data.mFlags.count(); i++) { vData += _data.mFlags.at(i); } } void AlarmStatus::fromByteArray(const QByteArray &vByteArray) { int index = 0; // message data start position Types::getValue<>(vByteArray, index, _data.mState ); Types::getValue<>(vByteArray, index, _data.mTop ); Types::getValue<>(vByteArray, index, _data.mMuteTimeout ); Types::getValue<>(vByteArray, index, _data.mEscalatesIn ); Types::getBits (vByteArray, index, _data.mFlags , eFlag_Bits_Length); } AlarmStatus::Data AlarmStatus::data() const { Data data; data.mState = _data.mState .value; data.mTop = _data.mTop .value; data.mMuteTimeout = _data.mMuteTimeout .value; data.mEscalatesIn = _data.mEscalatesIn .value; data.mFlags = _data.mFlags ; return data; }