diff --git a/compiler/lib/src/main/scala/codegen/CppWriter/ComponentCppWriter/ComponentParameters.scala b/compiler/lib/src/main/scala/codegen/CppWriter/ComponentCppWriter/ComponentParameters.scala index 3f10a5a61..530b1d85c 100644 --- a/compiler/lib/src/main/scala/codegen/CppWriter/ComponentCppWriter/ComponentParameters.scala +++ b/compiler/lib/src/main/scala/codegen/CppWriter/ComponentCppWriter/ComponentParameters.scala @@ -42,10 +42,11 @@ case class ComponentParameters ( guardedList (hasExternalParameters) (getParamDelegate) ) - private def checkValidityFlag(param: Param, flagValue: String) = - val paramName = param.getName - val validityFlagName = paramValidityFlagName(paramName) - s"this->$validityFlagName == Fw::ParamValid::$flagValue" + private def checkValidityFlag(flag: String, flagValue: String): String = + s"$flag == Fw::ParamValid::$flagValue" + + private def checkValidityFlag(param: Param, flagValue: String): String = + checkValidityFlag(s"this->${paramValidityFlagName(param.getName)}", flagValue) private def checkValidityFlagValidOrDefault(param: Param) = s"(${checkValidityFlag(param, "VALID")}) || (${checkValidityFlag(param, "DEFAULT")})" @@ -427,21 +428,61 @@ case class ComponentParameters ( ) } - private def writeLoadForParam(param: Param) = { - // Generate a block, or an if statement, or an if-else statement + private def writeLoadForParam(param: Param) = + if param.isExternal + then writeLoadForExternalParam(param) + else writeLoadForInternalParam(param) + + private def writeLoadForInternalParam(param: Param) = + List.concat( + lines( + s"""| + |_id = _baseId + ${paramIdConstantName(param.getName)}; + |_dbValid = this->${outputPortInvokerName(prmGetPort.get)}(0, _id, $paramBufferName); + |this->m_paramLock.lock();""" + ), + // seed the default if never loaded + param.default match { + case Some(value) => + wrapInIf( + checkValidityFlag(param, "UNINIT"), + List.concat( + setDefaultValue(param, value), + setValidityFlagLines(param, "DEFAULT") + ) + ) + case None => Nil + }, + // override from the prm DB iff present + wrapInIf( + checkValidityFlag("_dbValid", "VALID"), + List.concat( + deserializeParam(param), + wrapInIfElse( + "_stat == Fw::FW_SERIALIZE_OK", + setValidityFlagLines(param, "VALID"), + setValidityFlagLines(param, "INVALID") + ) + ) + ), + lines( + """| + |this->m_paramLock.unlock();""" + ), + lines( + s"this->parameterLoaded(${paramIdConstantName(param.getName)}, this->${paramValidityFlagName(param.getName)});" + ) + ) + + private def writeLoadForExternalParam(param: Param) = { def writeCondition( condition: => String, ifBlock: List[Line], elseBlock: => List[Line] ) = - if param.isExternal && !param.default.isDefined - // External parameter, no default: no condition needed + if !param.default.isDefined then ifBlock - else if param.default.isDefined - // Default: if and else needed - then wrapInIfElse(condition, ifBlock, elseBlock) - // Internal parameter, no default: if needed - else wrapInIf(condition, ifBlock) + else wrapInIfElse(condition, ifBlock, elseBlock) List.concat( getParamFromPort(param), { @@ -491,6 +532,11 @@ case class ComponentParameters ( private def writeLoadFunctionBody = { val prmGetPortName = prmGetPort.get.getUnqualifiedName val prmGetIsConnected = outputPortIsConnectedName(prmGetPortName) + // Holds the pre-lock prm DB read result for internal params + val dbValidDecl = + if sortedParams.exists((_, param) => !param.isExternal) + then lines("Fw::ParamValid _dbValid{};") + else Nil List.concat( lines( s"""|Fw::SerializeStatus _stat = Fw::FW_SERIALIZE_OK; @@ -501,6 +547,7 @@ case class ComponentParameters ( |Fw::ParamBuffer $paramBufferName; |""" ), + dbValidDecl, sortedParams.flatMap((_, param) => writeLoadForParam(param)), lines( """| diff --git a/compiler/tools/fpp-check/test/update-ref-script b/compiler/tools/fpp-check/test/update-ref-script index da2eac75f..5054774e4 100755 --- a/compiler/tools/fpp-check/test/update-ref-script +++ b/compiler/tools/fpp-check/test/update-ref-script @@ -39,7 +39,7 @@ done > default-update-ref.sh if test -f update-ref.sh then - . update-ref.sh + . ./update-ref.sh fi for t in $tests diff --git a/compiler/tools/fpp-to-cpp/test/component/base/ActiveParamsComponentAc.ref.cpp b/compiler/tools/fpp-to-cpp/test/component/base/ActiveParamsComponentAc.ref.cpp index 61e6fad61..0bad39040 100644 --- a/compiler/tools/fpp-to-cpp/test/component/base/ActiveParamsComponentAc.ref.cpp +++ b/compiler/tools/fpp-to-cpp/test/component/base/ActiveParamsComponentAc.ref.cpp @@ -1665,22 +1665,17 @@ void ActiveParamsComponentBase :: FwPrmIdType _id{}; Fw::ParamBuffer _paramBuffer; + Fw::ParamValid _dbValid{}; _id = _baseId + PARAMID_PARAMU32; - - // Get serialized parameter ParamU32 - this->m_param_ParamU32_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamU32_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamU32); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamU32_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamU32_valid = Fw::ParamValid::INVALID; } } @@ -1689,20 +1684,14 @@ void ActiveParamsComponentBase :: this->parameterLoaded(PARAMID_PARAMU32, this->m_param_ParamU32_valid); _id = _baseId + PARAMID_PARAMF64; - - // Get serialized parameter ParamF64 - this->m_param_ParamF64_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamF64_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamF64); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamF64_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamF64_valid = Fw::ParamValid::INVALID; } } @@ -1711,48 +1700,34 @@ void ActiveParamsComponentBase :: this->parameterLoaded(PARAMID_PARAMF64, this->m_param_ParamF64_valid); _id = _baseId + PARAMID_PARAMSTRING; - - // Get serialized parameter ParamString - this->m_param_ParamString_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamString_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamString); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamString_valid == Fw::ParamValid::UNINIT) { + this->m_ParamString = Fw::String("default"); this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamString_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamString = Fw::String("default"); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamString); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamString_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamString_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMSTRING, this->m_param_ParamString_valid); _id = _baseId + PARAMID_PARAMENUM; - - // Get serialized parameter ParamEnum - this->m_param_ParamEnum_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamEnum_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamEnum); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamEnum_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamEnum_valid = Fw::ParamValid::INVALID; } } @@ -1761,48 +1736,34 @@ void ActiveParamsComponentBase :: this->parameterLoaded(PARAMID_PARAMENUM, this->m_param_ParamEnum_valid); _id = _baseId + PARAMID_PARAMARRAY; - - // Get serialized parameter ParamArray - this->m_param_ParamArray_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamArray_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamArray); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamArray_valid == Fw::ParamValid::UNINIT) { + this->m_ParamArray = A({1, 2, 3}); this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamArray_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamArray = A({1, 2, 3}); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamArray); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamArray_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamArray_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMARRAY, this->m_param_ParamArray_valid); _id = _baseId + PARAMID_PARAMSTRUCT; - - // Get serialized parameter ParamStruct - this->m_param_ParamStruct_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamStruct_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamStruct); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamStruct_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamStruct_valid = Fw::ParamValid::INVALID; } } diff --git a/compiler/tools/fpp-to-cpp/test/component/base/ActiveSerialComponentAc.ref.cpp b/compiler/tools/fpp-to-cpp/test/component/base/ActiveSerialComponentAc.ref.cpp index 0bd9a380d..f6c6df72b 100644 --- a/compiler/tools/fpp-to-cpp/test/component/base/ActiveSerialComponentAc.ref.cpp +++ b/compiler/tools/fpp-to-cpp/test/component/base/ActiveSerialComponentAc.ref.cpp @@ -2127,22 +2127,17 @@ void ActiveSerialComponentBase :: FwPrmIdType _id{}; Fw::ParamBuffer _paramBuffer; + Fw::ParamValid _dbValid{}; _id = _baseId + PARAMID_PARAMU32; - - // Get serialized parameter ParamU32 - this->m_param_ParamU32_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamU32_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamU32); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamU32_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamU32_valid = Fw::ParamValid::INVALID; } } @@ -2151,20 +2146,14 @@ void ActiveSerialComponentBase :: this->parameterLoaded(PARAMID_PARAMU32, this->m_param_ParamU32_valid); _id = _baseId + PARAMID_PARAMF64; - - // Get serialized parameter ParamF64 - this->m_param_ParamF64_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamF64_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamF64); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamF64_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamF64_valid = Fw::ParamValid::INVALID; } } @@ -2173,48 +2162,34 @@ void ActiveSerialComponentBase :: this->parameterLoaded(PARAMID_PARAMF64, this->m_param_ParamF64_valid); _id = _baseId + PARAMID_PARAMSTRING; - - // Get serialized parameter ParamString - this->m_param_ParamString_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamString_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamString); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamString_valid == Fw::ParamValid::UNINIT) { + this->m_ParamString = Fw::String("default"); this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamString_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamString = Fw::String("default"); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamString); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamString_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamString_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMSTRING, this->m_param_ParamString_valid); _id = _baseId + PARAMID_PARAMENUM; - - // Get serialized parameter ParamEnum - this->m_param_ParamEnum_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamEnum_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamEnum); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamEnum_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamEnum_valid = Fw::ParamValid::INVALID; } } @@ -2223,48 +2198,34 @@ void ActiveSerialComponentBase :: this->parameterLoaded(PARAMID_PARAMENUM, this->m_param_ParamEnum_valid); _id = _baseId + PARAMID_PARAMARRAY; - - // Get serialized parameter ParamArray - this->m_param_ParamArray_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamArray_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamArray); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamArray_valid == Fw::ParamValid::UNINIT) { + this->m_ParamArray = A({1, 2, 3}); this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamArray_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamArray = A({1, 2, 3}); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamArray); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamArray_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamArray_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMARRAY, this->m_param_ParamArray_valid); _id = _baseId + PARAMID_PARAMSTRUCT; - - // Get serialized parameter ParamStruct - this->m_param_ParamStruct_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamStruct_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamStruct); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamStruct_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamStruct_valid = Fw::ParamValid::INVALID; } } diff --git a/compiler/tools/fpp-to-cpp/test/component/base/ActiveTestComponentAc.ref.cpp b/compiler/tools/fpp-to-cpp/test/component/base/ActiveTestComponentAc.ref.cpp index c70ae1d36..1f6e969b4 100644 --- a/compiler/tools/fpp-to-cpp/test/component/base/ActiveTestComponentAc.ref.cpp +++ b/compiler/tools/fpp-to-cpp/test/component/base/ActiveTestComponentAc.ref.cpp @@ -2205,22 +2205,17 @@ namespace M { FwPrmIdType _id{}; Fw::ParamBuffer _paramBuffer; + Fw::ParamValid _dbValid{}; _id = _baseId + PARAMID_PARAMU32; - - // Get serialized parameter ParamU32 - this->m_param_ParamU32_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamU32_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamU32); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamU32_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamU32_valid = Fw::ParamValid::INVALID; } } @@ -2229,20 +2224,14 @@ namespace M { this->parameterLoaded(PARAMID_PARAMU32, this->m_param_ParamU32_valid); _id = _baseId + PARAMID_PARAMF64; - - // Get serialized parameter ParamF64 - this->m_param_ParamF64_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamF64_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamF64); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamF64_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamF64_valid = Fw::ParamValid::INVALID; } } @@ -2251,48 +2240,34 @@ namespace M { this->parameterLoaded(PARAMID_PARAMF64, this->m_param_ParamF64_valid); _id = _baseId + PARAMID_PARAMSTRING; - - // Get serialized parameter ParamString - this->m_param_ParamString_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamString_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamString); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamString_valid == Fw::ParamValid::UNINIT) { + this->m_ParamString = Fw::String("default"); this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamString_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamString = Fw::String("default"); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamString); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamString_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamString_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMSTRING, this->m_param_ParamString_valid); _id = _baseId + PARAMID_PARAMENUM; - - // Get serialized parameter ParamEnum - this->m_param_ParamEnum_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamEnum_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamEnum); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamEnum_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamEnum_valid = Fw::ParamValid::INVALID; } } @@ -2301,48 +2276,34 @@ namespace M { this->parameterLoaded(PARAMID_PARAMENUM, this->m_param_ParamEnum_valid); _id = _baseId + PARAMID_PARAMARRAY; - - // Get serialized parameter ParamArray - this->m_param_ParamArray_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamArray_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamArray); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamArray_valid == Fw::ParamValid::UNINIT) { + this->m_ParamArray = A({1, 2, 3}); this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamArray_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamArray = A({1, 2, 3}); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamArray); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamArray_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamArray_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMARRAY, this->m_param_ParamArray_valid); _id = _baseId + PARAMID_PARAMSTRUCT; - - // Get serialized parameter ParamStruct - this->m_param_ParamStruct_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamStruct_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamStruct); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamStruct_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamStruct_valid = Fw::ParamValid::INVALID; } } diff --git a/compiler/tools/fpp-to-cpp/test/component/base/PassiveParamsComponentAc.ref.cpp b/compiler/tools/fpp-to-cpp/test/component/base/PassiveParamsComponentAc.ref.cpp index 567ba2931..168eacc35 100644 --- a/compiler/tools/fpp-to-cpp/test/component/base/PassiveParamsComponentAc.ref.cpp +++ b/compiler/tools/fpp-to-cpp/test/component/base/PassiveParamsComponentAc.ref.cpp @@ -1380,22 +1380,17 @@ void PassiveParamsComponentBase :: FwPrmIdType _id{}; Fw::ParamBuffer _paramBuffer; + Fw::ParamValid _dbValid{}; _id = _baseId + PARAMID_PARAMU32; - - // Get serialized parameter ParamU32 - this->m_param_ParamU32_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamU32_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamU32); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamU32_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamU32_valid = Fw::ParamValid::INVALID; } } @@ -1404,20 +1399,14 @@ void PassiveParamsComponentBase :: this->parameterLoaded(PARAMID_PARAMU32, this->m_param_ParamU32_valid); _id = _baseId + PARAMID_PARAMF64; - - // Get serialized parameter ParamF64 - this->m_param_ParamF64_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamF64_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamF64); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamF64_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamF64_valid = Fw::ParamValid::INVALID; } } @@ -1426,48 +1415,34 @@ void PassiveParamsComponentBase :: this->parameterLoaded(PARAMID_PARAMF64, this->m_param_ParamF64_valid); _id = _baseId + PARAMID_PARAMSTRING; - - // Get serialized parameter ParamString - this->m_param_ParamString_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamString_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamString); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamString_valid == Fw::ParamValid::UNINIT) { + this->m_ParamString = Fw::String("default"); this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamString_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamString = Fw::String("default"); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamString); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamString_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamString_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMSTRING, this->m_param_ParamString_valid); _id = _baseId + PARAMID_PARAMENUM; - - // Get serialized parameter ParamEnum - this->m_param_ParamEnum_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamEnum_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamEnum); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamEnum_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamEnum_valid = Fw::ParamValid::INVALID; } } @@ -1476,48 +1451,34 @@ void PassiveParamsComponentBase :: this->parameterLoaded(PARAMID_PARAMENUM, this->m_param_ParamEnum_valid); _id = _baseId + PARAMID_PARAMARRAY; - - // Get serialized parameter ParamArray - this->m_param_ParamArray_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamArray_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamArray); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamArray_valid == Fw::ParamValid::UNINIT) { + this->m_ParamArray = A({1, 2, 3}); this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamArray_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamArray = A({1, 2, 3}); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamArray); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamArray_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamArray_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMARRAY, this->m_param_ParamArray_valid); _id = _baseId + PARAMID_PARAMSTRUCT; - - // Get serialized parameter ParamStruct - this->m_param_ParamStruct_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamStruct_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamStruct); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamStruct_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamStruct_valid = Fw::ParamValid::INVALID; } } diff --git a/compiler/tools/fpp-to-cpp/test/component/base/PassiveSerialComponentAc.ref.cpp b/compiler/tools/fpp-to-cpp/test/component/base/PassiveSerialComponentAc.ref.cpp index 80f62f799..54d774d58 100644 --- a/compiler/tools/fpp-to-cpp/test/component/base/PassiveSerialComponentAc.ref.cpp +++ b/compiler/tools/fpp-to-cpp/test/component/base/PassiveSerialComponentAc.ref.cpp @@ -1625,22 +1625,17 @@ void PassiveSerialComponentBase :: FwPrmIdType _id{}; Fw::ParamBuffer _paramBuffer; + Fw::ParamValid _dbValid{}; _id = _baseId + PARAMID_PARAMU32; - - // Get serialized parameter ParamU32 - this->m_param_ParamU32_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamU32_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamU32); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamU32_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamU32_valid = Fw::ParamValid::INVALID; } } @@ -1649,20 +1644,14 @@ void PassiveSerialComponentBase :: this->parameterLoaded(PARAMID_PARAMU32, this->m_param_ParamU32_valid); _id = _baseId + PARAMID_PARAMF64; - - // Get serialized parameter ParamF64 - this->m_param_ParamF64_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamF64_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamF64); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamF64_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamF64_valid = Fw::ParamValid::INVALID; } } @@ -1671,48 +1660,34 @@ void PassiveSerialComponentBase :: this->parameterLoaded(PARAMID_PARAMF64, this->m_param_ParamF64_valid); _id = _baseId + PARAMID_PARAMSTRING; - - // Get serialized parameter ParamString - this->m_param_ParamString_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamString_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamString); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamString_valid == Fw::ParamValid::UNINIT) { + this->m_ParamString = Fw::String("default"); this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamString_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamString = Fw::String("default"); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamString); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamString_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamString_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMSTRING, this->m_param_ParamString_valid); _id = _baseId + PARAMID_PARAMENUM; - - // Get serialized parameter ParamEnum - this->m_param_ParamEnum_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamEnum_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamEnum); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamEnum_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamEnum_valid = Fw::ParamValid::INVALID; } } @@ -1721,48 +1696,34 @@ void PassiveSerialComponentBase :: this->parameterLoaded(PARAMID_PARAMENUM, this->m_param_ParamEnum_valid); _id = _baseId + PARAMID_PARAMARRAY; - - // Get serialized parameter ParamArray - this->m_param_ParamArray_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamArray_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamArray); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamArray_valid == Fw::ParamValid::UNINIT) { + this->m_ParamArray = A({1, 2, 3}); this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamArray_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamArray = A({1, 2, 3}); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamArray); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamArray_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamArray_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMARRAY, this->m_param_ParamArray_valid); _id = _baseId + PARAMID_PARAMSTRUCT; - - // Get serialized parameter ParamStruct - this->m_param_ParamStruct_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamStruct_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamStruct); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamStruct_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamStruct_valid = Fw::ParamValid::INVALID; } } diff --git a/compiler/tools/fpp-to-cpp/test/component/base/PassiveTestComponentAc.ref.cpp b/compiler/tools/fpp-to-cpp/test/component/base/PassiveTestComponentAc.ref.cpp index 7b3b88821..c8054fb8a 100644 --- a/compiler/tools/fpp-to-cpp/test/component/base/PassiveTestComponentAc.ref.cpp +++ b/compiler/tools/fpp-to-cpp/test/component/base/PassiveTestComponentAc.ref.cpp @@ -1857,22 +1857,17 @@ void PassiveTestComponentBase :: FwPrmIdType _id{}; Fw::ParamBuffer _paramBuffer; + Fw::ParamValid _dbValid{}; _id = _baseId + PARAMID_PARAMU32; - - // Get serialized parameter ParamU32 - this->m_param_ParamU32_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamU32_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamU32); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamU32_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamU32_valid = Fw::ParamValid::INVALID; } } @@ -1881,20 +1876,14 @@ void PassiveTestComponentBase :: this->parameterLoaded(PARAMID_PARAMU32, this->m_param_ParamU32_valid); _id = _baseId + PARAMID_PARAMF64; - - // Get serialized parameter ParamF64 - this->m_param_ParamF64_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamF64_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamF64); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamF64_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamF64_valid = Fw::ParamValid::INVALID; } } @@ -1903,48 +1892,34 @@ void PassiveTestComponentBase :: this->parameterLoaded(PARAMID_PARAMF64, this->m_param_ParamF64_valid); _id = _baseId + PARAMID_PARAMSTRING; - - // Get serialized parameter ParamString - this->m_param_ParamString_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamString_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamString); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamString_valid == Fw::ParamValid::UNINIT) { + this->m_ParamString = Fw::String("default"); this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamString_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamString = Fw::String("default"); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamString); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamString_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamString_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMSTRING, this->m_param_ParamString_valid); _id = _baseId + PARAMID_PARAMENUM; - - // Get serialized parameter ParamEnum - this->m_param_ParamEnum_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamEnum_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamEnum); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamEnum_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamEnum_valid = Fw::ParamValid::INVALID; } } @@ -1953,48 +1928,34 @@ void PassiveTestComponentBase :: this->parameterLoaded(PARAMID_PARAMENUM, this->m_param_ParamEnum_valid); _id = _baseId + PARAMID_PARAMARRAY; - - // Get serialized parameter ParamArray - this->m_param_ParamArray_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamArray_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamArray); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamArray_valid == Fw::ParamValid::UNINIT) { + this->m_ParamArray = A({1, 2, 3}); this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamArray_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamArray = A({1, 2, 3}); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamArray); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamArray_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamArray_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMARRAY, this->m_param_ParamArray_valid); _id = _baseId + PARAMID_PARAMSTRUCT; - - // Get serialized parameter ParamStruct - this->m_param_ParamStruct_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamStruct_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamStruct); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamStruct_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamStruct_valid = Fw::ParamValid::INVALID; } } diff --git a/compiler/tools/fpp-to-cpp/test/component/base/QueuedParamsComponentAc.ref.cpp b/compiler/tools/fpp-to-cpp/test/component/base/QueuedParamsComponentAc.ref.cpp index 5943dd727..30432184b 100644 --- a/compiler/tools/fpp-to-cpp/test/component/base/QueuedParamsComponentAc.ref.cpp +++ b/compiler/tools/fpp-to-cpp/test/component/base/QueuedParamsComponentAc.ref.cpp @@ -1665,22 +1665,17 @@ void QueuedParamsComponentBase :: FwPrmIdType _id{}; Fw::ParamBuffer _paramBuffer; + Fw::ParamValid _dbValid{}; _id = _baseId + PARAMID_PARAMU32; - - // Get serialized parameter ParamU32 - this->m_param_ParamU32_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamU32_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamU32); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamU32_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamU32_valid = Fw::ParamValid::INVALID; } } @@ -1689,20 +1684,14 @@ void QueuedParamsComponentBase :: this->parameterLoaded(PARAMID_PARAMU32, this->m_param_ParamU32_valid); _id = _baseId + PARAMID_PARAMF64; - - // Get serialized parameter ParamF64 - this->m_param_ParamF64_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamF64_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamF64); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamF64_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamF64_valid = Fw::ParamValid::INVALID; } } @@ -1711,48 +1700,34 @@ void QueuedParamsComponentBase :: this->parameterLoaded(PARAMID_PARAMF64, this->m_param_ParamF64_valid); _id = _baseId + PARAMID_PARAMSTRING; - - // Get serialized parameter ParamString - this->m_param_ParamString_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamString_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamString); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamString_valid == Fw::ParamValid::UNINIT) { + this->m_ParamString = Fw::String("default"); this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamString_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamString = Fw::String("default"); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamString); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamString_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamString_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMSTRING, this->m_param_ParamString_valid); _id = _baseId + PARAMID_PARAMENUM; - - // Get serialized parameter ParamEnum - this->m_param_ParamEnum_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamEnum_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamEnum); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamEnum_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamEnum_valid = Fw::ParamValid::INVALID; } } @@ -1761,48 +1736,34 @@ void QueuedParamsComponentBase :: this->parameterLoaded(PARAMID_PARAMENUM, this->m_param_ParamEnum_valid); _id = _baseId + PARAMID_PARAMARRAY; - - // Get serialized parameter ParamArray - this->m_param_ParamArray_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamArray_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamArray); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamArray_valid == Fw::ParamValid::UNINIT) { + this->m_ParamArray = A({1, 2, 3}); this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamArray_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamArray = A({1, 2, 3}); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamArray); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamArray_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamArray_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMARRAY, this->m_param_ParamArray_valid); _id = _baseId + PARAMID_PARAMSTRUCT; - - // Get serialized parameter ParamStruct - this->m_param_ParamStruct_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamStruct_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamStruct); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamStruct_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamStruct_valid = Fw::ParamValid::INVALID; } } diff --git a/compiler/tools/fpp-to-cpp/test/component/base/QueuedSerialComponentAc.ref.cpp b/compiler/tools/fpp-to-cpp/test/component/base/QueuedSerialComponentAc.ref.cpp index 18967420d..e5d151421 100644 --- a/compiler/tools/fpp-to-cpp/test/component/base/QueuedSerialComponentAc.ref.cpp +++ b/compiler/tools/fpp-to-cpp/test/component/base/QueuedSerialComponentAc.ref.cpp @@ -2127,22 +2127,17 @@ void QueuedSerialComponentBase :: FwPrmIdType _id{}; Fw::ParamBuffer _paramBuffer; + Fw::ParamValid _dbValid{}; _id = _baseId + PARAMID_PARAMU32; - - // Get serialized parameter ParamU32 - this->m_param_ParamU32_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamU32_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamU32); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamU32_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamU32_valid = Fw::ParamValid::INVALID; } } @@ -2151,20 +2146,14 @@ void QueuedSerialComponentBase :: this->parameterLoaded(PARAMID_PARAMU32, this->m_param_ParamU32_valid); _id = _baseId + PARAMID_PARAMF64; - - // Get serialized parameter ParamF64 - this->m_param_ParamF64_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamF64_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamF64); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamF64_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamF64_valid = Fw::ParamValid::INVALID; } } @@ -2173,48 +2162,34 @@ void QueuedSerialComponentBase :: this->parameterLoaded(PARAMID_PARAMF64, this->m_param_ParamF64_valid); _id = _baseId + PARAMID_PARAMSTRING; - - // Get serialized parameter ParamString - this->m_param_ParamString_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamString_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamString); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamString_valid == Fw::ParamValid::UNINIT) { + this->m_ParamString = Fw::String("default"); this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamString_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamString = Fw::String("default"); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamString); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamString_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamString_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMSTRING, this->m_param_ParamString_valid); _id = _baseId + PARAMID_PARAMENUM; - - // Get serialized parameter ParamEnum - this->m_param_ParamEnum_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamEnum_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamEnum); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamEnum_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamEnum_valid = Fw::ParamValid::INVALID; } } @@ -2223,48 +2198,34 @@ void QueuedSerialComponentBase :: this->parameterLoaded(PARAMID_PARAMENUM, this->m_param_ParamEnum_valid); _id = _baseId + PARAMID_PARAMARRAY; - - // Get serialized parameter ParamArray - this->m_param_ParamArray_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamArray_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamArray); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamArray_valid == Fw::ParamValid::UNINIT) { + this->m_ParamArray = A({1, 2, 3}); this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamArray_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamArray = A({1, 2, 3}); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamArray); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamArray_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamArray_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMARRAY, this->m_param_ParamArray_valid); _id = _baseId + PARAMID_PARAMSTRUCT; - - // Get serialized parameter ParamStruct - this->m_param_ParamStruct_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamStruct_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamStruct); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamStruct_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamStruct_valid = Fw::ParamValid::INVALID; } } diff --git a/compiler/tools/fpp-to-cpp/test/component/base/QueuedTestComponentAc.ref.cpp b/compiler/tools/fpp-to-cpp/test/component/base/QueuedTestComponentAc.ref.cpp index d08eb6598..066a4b567 100644 --- a/compiler/tools/fpp-to-cpp/test/component/base/QueuedTestComponentAc.ref.cpp +++ b/compiler/tools/fpp-to-cpp/test/component/base/QueuedTestComponentAc.ref.cpp @@ -2203,22 +2203,17 @@ void QueuedTestComponentBase :: FwPrmIdType _id{}; Fw::ParamBuffer _paramBuffer; + Fw::ParamValid _dbValid{}; _id = _baseId + PARAMID_PARAMU32; - - // Get serialized parameter ParamU32 - this->m_param_ParamU32_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamU32_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamU32); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamU32_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamU32_valid = Fw::ParamValid::INVALID; } } @@ -2227,20 +2222,14 @@ void QueuedTestComponentBase :: this->parameterLoaded(PARAMID_PARAMU32, this->m_param_ParamU32_valid); _id = _baseId + PARAMID_PARAMF64; - - // Get serialized parameter ParamF64 - this->m_param_ParamF64_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamF64_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamF64); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamF64_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamF64_valid = Fw::ParamValid::INVALID; } } @@ -2249,48 +2238,34 @@ void QueuedTestComponentBase :: this->parameterLoaded(PARAMID_PARAMF64, this->m_param_ParamF64_valid); _id = _baseId + PARAMID_PARAMSTRING; - - // Get serialized parameter ParamString - this->m_param_ParamString_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamString_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamString); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamString_valid == Fw::ParamValid::UNINIT) { + this->m_ParamString = Fw::String("default"); this->m_param_ParamString_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamString_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamString = Fw::String("default"); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamString); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamString_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamString_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMSTRING, this->m_param_ParamString_valid); _id = _baseId + PARAMID_PARAMENUM; - - // Get serialized parameter ParamEnum - this->m_param_ParamEnum_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamEnum_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamEnum); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamEnum_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamEnum_valid = Fw::ParamValid::INVALID; } } @@ -2299,48 +2274,34 @@ void QueuedTestComponentBase :: this->parameterLoaded(PARAMID_PARAMENUM, this->m_param_ParamEnum_valid); _id = _baseId + PARAMID_PARAMARRAY; - - // Get serialized parameter ParamArray - this->m_param_ParamArray_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter or use default value - if (this->m_param_ParamArray_valid == Fw::ParamValid::VALID) { - _stat = _paramBuffer.deserializeTo(this->m_ParamArray); - if (_stat != Fw::FW_SERIALIZE_OK) { - this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; - } - } - else { + if (this->m_param_ParamArray_valid == Fw::ParamValid::UNINIT) { + this->m_ParamArray = A({1, 2, 3}); this->m_param_ParamArray_valid = Fw::ParamValid::DEFAULT; } - if (this->m_param_ParamArray_valid == Fw::ParamValid::DEFAULT) { - this->m_ParamArray = A({1, 2, 3}); + if (_dbValid == Fw::ParamValid::VALID) { + _stat = _paramBuffer.deserializeTo(this->m_ParamArray); + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamArray_valid = Fw::ParamValid::VALID; + } + else { + this->m_param_ParamArray_valid = Fw::ParamValid::INVALID; + } } this->m_paramLock.unlock(); this->parameterLoaded(PARAMID_PARAMARRAY, this->m_param_ParamArray_valid); _id = _baseId + PARAMID_PARAMSTRUCT; - - // Get serialized parameter ParamStruct - this->m_param_ParamStruct_valid = this->prmGetOut_out( - 0, - _id, - _paramBuffer - ); - + _dbValid = this->prmGetOut_out(0, _id, _paramBuffer); this->m_paramLock.lock(); - - // Deserialize parameter - if (this->m_param_ParamStruct_valid == Fw::ParamValid::VALID) { + if (_dbValid == Fw::ParamValid::VALID) { _stat = _paramBuffer.deserializeTo(this->m_ParamStruct); - if (_stat != Fw::FW_SERIALIZE_OK) { + if (_stat == Fw::FW_SERIALIZE_OK) { + this->m_param_ParamStruct_valid = Fw::ParamValid::VALID; + } + else { this->m_param_ParamStruct_valid = Fw::ParamValid::INVALID; } }