need to fix all of these TODOs
This commit is contained in:
parent
7c5308429c
commit
f824004897
@ -102,7 +102,6 @@ const HasHealthIF* ControllerBase::getOptHealthIF() const { return this; }
|
|||||||
|
|
||||||
const HasModesIF& ControllerBase::getModeIF() const { return *this; }
|
const HasModesIF& ControllerBase::getModeIF() const { return *this; }
|
||||||
|
|
||||||
ReturnValue_t ControllerBase::connectModeTreeParent(HasModeTreeChildrenIF& parent,
|
ReturnValue_t ControllerBase::connectModeTreeParent(HasModeTreeChildrenIF& parent) {
|
||||||
const ModeTreeChildIF& child) {
|
return modetree::connectModeTreeParent(parent, *this, healthHelper, modeHelper);
|
||||||
return modetree::connectModeTreeParent(parent, child, healthHelper, modeHelper);
|
|
||||||
}
|
}
|
||||||
|
@ -30,8 +30,7 @@ class ControllerBase : public HasModesIF,
|
|||||||
ControllerBase(object_id_t setObjectId, size_t commandQueueDepth = 3);
|
ControllerBase(object_id_t setObjectId, size_t commandQueueDepth = 3);
|
||||||
~ControllerBase() override;
|
~ControllerBase() override;
|
||||||
|
|
||||||
ReturnValue_t connectModeTreeParent(HasModeTreeChildrenIF &parent,
|
ReturnValue_t connectModeTreeParent(HasModeTreeChildrenIF &parent) override;
|
||||||
const ModeTreeChildIF &child) override;
|
|
||||||
|
|
||||||
/** SystemObject override */
|
/** SystemObject override */
|
||||||
ReturnValue_t initialize() override;
|
ReturnValue_t initialize() override;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "fsfw/devicehandlers/AssemblyBase.h"
|
#include "fsfw/devicehandlers/AssemblyBase.h"
|
||||||
|
|
||||||
AssemblyBase::AssemblyBase(object_id_t objectId, object_id_t parentId, uint16_t commandQueueDepth)
|
AssemblyBase::AssemblyBase(object_id_t objectId, uint16_t commandQueueDepth)
|
||||||
: SubsystemBase(objectId, parentId, MODE_OFF, commandQueueDepth),
|
: SubsystemBase(objectId, MODE_OFF, commandQueueDepth),
|
||||||
internalState(STATE_NONE),
|
internalState(STATE_NONE),
|
||||||
recoveryState(RECOVERY_IDLE),
|
recoveryState(RECOVERY_IDLE),
|
||||||
recoveringDevice(childrenMap.end()),
|
recoveringDevice(childrenMap.end()),
|
||||||
|
@ -41,7 +41,7 @@ class AssemblyBase : public SubsystemBase {
|
|||||||
static const ReturnValue_t NEED_TO_CHANGE_HEALTH = MAKE_RETURN_CODE(0x05);
|
static const ReturnValue_t NEED_TO_CHANGE_HEALTH = MAKE_RETURN_CODE(0x05);
|
||||||
static const ReturnValue_t NOT_ENOUGH_CHILDREN_IN_CORRECT_STATE = MAKE_RETURN_CODE(0xa1);
|
static const ReturnValue_t NOT_ENOUGH_CHILDREN_IN_CORRECT_STATE = MAKE_RETURN_CODE(0xa1);
|
||||||
|
|
||||||
AssemblyBase(object_id_t objectId, object_id_t parentId, uint16_t commandQueueDepth = 8);
|
AssemblyBase(object_id_t objectId, uint16_t commandQueueDepth = 8);
|
||||||
virtual ~AssemblyBase();
|
virtual ~AssemblyBase();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -18,21 +18,22 @@ ReturnValue_t ChildHandlerBase::initialize() {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageQueueId_t parentQueue = 0;
|
// TODO: Fix this
|
||||||
|
// MessageQueueId_t parentQueue = 0;
|
||||||
if (parentId != objects::NO_OBJECT) {
|
//
|
||||||
SubsystemBase* parent = ObjectManager::instance()->get<SubsystemBase>(parentId);
|
// if (parentId != objects::NO_OBJECT) {
|
||||||
if (parent == NULL) {
|
// SubsystemBase* parent = ObjectManager::instance()->get<SubsystemBase>(parentId);
|
||||||
return returnvalue::FAILED;
|
// if (parent == NULL) {
|
||||||
}
|
// return returnvalue::FAILED;
|
||||||
parentQueue = parent->getCommandQueue();
|
// }
|
||||||
|
// parentQueue = parent->getCommandQueue();
|
||||||
parent->registerChild(getObjectId());
|
//
|
||||||
}
|
// parent->registerChild(getObjectId());
|
||||||
|
// }
|
||||||
healthHelper.setParentQueue(parentQueue);
|
//
|
||||||
|
// healthHelper.setParentQueue(parentQueue);
|
||||||
modeHelper.setParentQueue(parentQueue);
|
//
|
||||||
|
// modeHelper.setParentQueue(parentQueue);
|
||||||
|
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
#include "fsfw/serialize/SerialLinkedListAdapter.h"
|
#include "fsfw/serialize/SerialLinkedListAdapter.h"
|
||||||
#include "fsfw/serialize/SerializeElement.h"
|
#include "fsfw/serialize/SerializeElement.h"
|
||||||
|
|
||||||
Subsystem::Subsystem(object_id_t setObjectId, object_id_t parent, uint32_t maxNumberOfSequences,
|
Subsystem::Subsystem(object_id_t setObjectId, uint32_t maxNumberOfSequences,
|
||||||
uint32_t maxNumberOfTables)
|
uint32_t maxNumberOfTables)
|
||||||
: SubsystemBase(setObjectId, parent, 0),
|
: SubsystemBase(setObjectId, 0),
|
||||||
isInTransition(false),
|
isInTransition(false),
|
||||||
childrenChangedHealth(false),
|
childrenChangedHealth(false),
|
||||||
currentTargetTable(),
|
currentTargetTable(),
|
||||||
|
@ -66,8 +66,7 @@ class Subsystem : public SubsystemBase, public HasModeSequenceIF {
|
|||||||
* @param maxNumberOfSequences
|
* @param maxNumberOfSequences
|
||||||
* @param maxNumberOfTables
|
* @param maxNumberOfTables
|
||||||
*/
|
*/
|
||||||
Subsystem(object_id_t setObjectId, object_id_t parent, uint32_t maxNumberOfSequences,
|
Subsystem(object_id_t setObjectId, uint32_t maxNumberOfSequences, uint32_t maxNumberOfTables);
|
||||||
uint32_t maxNumberOfTables);
|
|
||||||
virtual ~Subsystem();
|
virtual ~Subsystem();
|
||||||
|
|
||||||
ReturnValue_t addSequence(SequenceEntry sequence);
|
ReturnValue_t addSequence(SequenceEntry sequence);
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
#include "fsfw/ipc/QueueFactory.h"
|
#include "fsfw/ipc/QueueFactory.h"
|
||||||
#include "fsfw/objectmanager/ObjectManager.h"
|
#include "fsfw/objectmanager/ObjectManager.h"
|
||||||
#include "fsfw/serviceinterface.h"
|
#include "fsfw/serviceinterface.h"
|
||||||
|
#include "fsfw/subsystem/helper.h"
|
||||||
|
|
||||||
SubsystemBase::SubsystemBase(object_id_t setObjectId, object_id_t parent, Mode_t initialMode,
|
SubsystemBase::SubsystemBase(object_id_t setObjectId, Mode_t initialMode,
|
||||||
uint16_t commandQueueDepth)
|
uint16_t commandQueueDepth)
|
||||||
: SystemObject(setObjectId),
|
: SystemObject(setObjectId),
|
||||||
mode(initialMode),
|
mode(initialMode),
|
||||||
healthHelper(this, setObjectId),
|
healthHelper(this, setObjectId),
|
||||||
modeHelper(this),
|
modeHelper(this) {
|
||||||
parentId(parent) {
|
|
||||||
auto mqArgs = MqArgs(setObjectId, static_cast<void*>(this));
|
auto mqArgs = MqArgs(setObjectId, static_cast<void*>(this));
|
||||||
commandQueue = QueueFactory::instance()->createMessageQueue(
|
commandQueue = QueueFactory::instance()->createMessageQueue(
|
||||||
commandQueueDepth, CommandMessage::MAX_MESSAGE_SIZE, &mqArgs);
|
commandQueueDepth, CommandMessage::MAX_MESSAGE_SIZE, &mqArgs);
|
||||||
@ -19,36 +19,6 @@ SubsystemBase::SubsystemBase(object_id_t setObjectId, object_id_t parent, Mode_t
|
|||||||
|
|
||||||
SubsystemBase::~SubsystemBase() { QueueFactory::instance()->deleteMessageQueue(commandQueue); }
|
SubsystemBase::~SubsystemBase() { QueueFactory::instance()->deleteMessageQueue(commandQueue); }
|
||||||
|
|
||||||
ReturnValue_t SubsystemBase::registerChild(object_id_t objectId) {
|
|
||||||
ChildInfo info;
|
|
||||||
|
|
||||||
HasModesIF* child = ObjectManager::instance()->get<HasModesIF>(objectId);
|
|
||||||
// This is a rather ugly hack to have the changedHealth info for all
|
|
||||||
// children available.
|
|
||||||
HasHealthIF* healthChild = ObjectManager::instance()->get<HasHealthIF>(objectId);
|
|
||||||
if (child == nullptr) {
|
|
||||||
if (healthChild == nullptr) {
|
|
||||||
return CHILD_DOESNT_HAVE_MODES;
|
|
||||||
} else {
|
|
||||||
info.commandQueue = healthChild->getCommandQueue();
|
|
||||||
info.mode = MODE_OFF;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// intentional to force an initial command during system startup
|
|
||||||
info.commandQueue = child->getCommandQueue();
|
|
||||||
info.mode = HasModesIF::MODE_UNDEFINED;
|
|
||||||
}
|
|
||||||
|
|
||||||
info.submode = SUBMODE_NONE;
|
|
||||||
info.healthChanged = false;
|
|
||||||
|
|
||||||
auto resultPair = childrenMap.emplace(objectId, info);
|
|
||||||
if (not resultPair.second) {
|
|
||||||
return COULD_NOT_INSERT_CHILD;
|
|
||||||
}
|
|
||||||
return returnvalue::OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
ReturnValue_t SubsystemBase::checkStateAgainstTable(HybridIterator<ModeListEntry> tableIter,
|
ReturnValue_t SubsystemBase::checkStateAgainstTable(HybridIterator<ModeListEntry> tableIter,
|
||||||
Submode_t targetSubmode) {
|
Submode_t targetSubmode) {
|
||||||
std::map<object_id_t, ChildInfo>::iterator childIter;
|
std::map<object_id_t, ChildInfo>::iterator childIter;
|
||||||
@ -88,7 +58,8 @@ void SubsystemBase::executeTable(HybridIterator<ModeListEntry> tableIter, Submod
|
|||||||
if ((iter = childrenMap.find(object)) == childrenMap.end()) {
|
if ((iter = childrenMap.find(object)) == childrenMap.end()) {
|
||||||
// illegal table entry, should only happen due to misconfigured mode table
|
// illegal table entry, should only happen due to misconfigured mode table
|
||||||
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
#if FSFW_CPP_OSTREAM_ENABLED == 1
|
||||||
sif::debug << std::hex << getObjectId() << ": invalid mode table entry" << std::endl;
|
sif::debug << std::hex << SystemObject::getObjectId() << ": invalid mode table entry"
|
||||||
|
<< std::endl;
|
||||||
#endif
|
#endif
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -158,38 +129,7 @@ ReturnValue_t SubsystemBase::updateChildChangedHealth(MessageQueueId_t queue, bo
|
|||||||
|
|
||||||
MessageQueueId_t SubsystemBase::getCommandQueue() const { return commandQueue->getId(); }
|
MessageQueueId_t SubsystemBase::getCommandQueue() const { return commandQueue->getId(); }
|
||||||
|
|
||||||
ReturnValue_t SubsystemBase::initialize() {
|
ReturnValue_t SubsystemBase::initialize() { return SystemObject::initialize(); }
|
||||||
MessageQueueId_t parentQueue = MessageQueueIF::NO_QUEUE;
|
|
||||||
ReturnValue_t result = SystemObject::initialize();
|
|
||||||
|
|
||||||
if (result != returnvalue::OK) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (parentId != objects::NO_OBJECT) {
|
|
||||||
SubsystemBase* parent = ObjectManager::instance()->get<SubsystemBase>(parentId);
|
|
||||||
if (parent == nullptr) {
|
|
||||||
return returnvalue::FAILED;
|
|
||||||
}
|
|
||||||
parentQueue = parent->getCommandQueue();
|
|
||||||
|
|
||||||
parent->registerChild(getObjectId());
|
|
||||||
}
|
|
||||||
|
|
||||||
result = healthHelper.initialize(parentQueue);
|
|
||||||
|
|
||||||
if (result != returnvalue::OK) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = modeHelper.initialize(parentQueue);
|
|
||||||
|
|
||||||
if (result != returnvalue::OK) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
return returnvalue::OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
ReturnValue_t SubsystemBase::performOperation(uint8_t opCode) {
|
ReturnValue_t SubsystemBase::performOperation(uint8_t opCode) {
|
||||||
childrenChangedMode = false;
|
childrenChangedMode = false;
|
||||||
@ -247,7 +187,7 @@ ReturnValue_t SubsystemBase::checkTable(HybridIterator<ModeListEntry> tableIter)
|
|||||||
using namespace std;
|
using namespace std;
|
||||||
sif::warning << "SubsystemBase::checkTable: Could not find Object " << setfill('0') << hex
|
sif::warning << "SubsystemBase::checkTable: Could not find Object " << setfill('0') << hex
|
||||||
<< "0x" << setw(8) << tableIter.value->getObject() << " in object " << setw(8)
|
<< "0x" << setw(8) << tableIter.value->getObject() << " in object " << setw(8)
|
||||||
<< "0x" << getObjectId() << dec << std::endl;
|
<< "0x" << SystemObject::getObjectId() << dec << std::endl;
|
||||||
#endif
|
#endif
|
||||||
return TABLE_CONTAINS_INVALID_OBJECT_ID;
|
return TABLE_CONTAINS_INVALID_OBJECT_ID;
|
||||||
}
|
}
|
||||||
@ -333,6 +273,12 @@ ReturnValue_t SubsystemBase::setHealth(HealthState health) {
|
|||||||
|
|
||||||
HasHealthIF::HealthState SubsystemBase::getHealth() { return healthHelper.getHealth(); }
|
HasHealthIF::HealthState SubsystemBase::getHealth() { return healthHelper.getHealth(); }
|
||||||
|
|
||||||
|
ReturnValue_t SubsystemBase::connectModeTreeParent(HasModeTreeChildrenIF& parent) {
|
||||||
|
return modetree::connectModeTreeParent(parent, *this, healthHelper, modeHelper);
|
||||||
|
}
|
||||||
|
|
||||||
|
object_id_t SubsystemBase::getObjectId() const { return SystemObject::getObjectId(); }
|
||||||
|
|
||||||
void SubsystemBase::modeChanged() {}
|
void SubsystemBase::modeChanged() {}
|
||||||
|
|
||||||
ReturnValue_t SubsystemBase::registerChild(const ModeTreeChildIF& child) {
|
ReturnValue_t SubsystemBase::registerChild(const ModeTreeChildIF& child) {
|
||||||
@ -351,3 +297,7 @@ ReturnValue_t SubsystemBase::registerChild(const ModeTreeChildIF& child) {
|
|||||||
}
|
}
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const HasHealthIF* SubsystemBase::getOptHealthIF() const { return this; }
|
||||||
|
|
||||||
|
const HasModesIF& SubsystemBase::getModeIF() const { return *this; }
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
#ifndef FSFW_SUBSYSTEM_SUBSYSTEMBASE_H_
|
#ifndef FSFW_SUBSYSTEM_SUBSYSTEMBASE_H_
|
||||||
#define FSFW_SUBSYSTEM_SUBSYSTEMBASE_H_
|
#define FSFW_SUBSYSTEM_SUBSYSTEMBASE_H_
|
||||||
|
|
||||||
|
#include <fsfw/subsystem/modes/ModeTreeConnectionIF.h>
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include "fsfw/container/HybridIterator.h"
|
#include "fsfw/container/HybridIterator.h"
|
||||||
@ -29,6 +31,8 @@ class SubsystemBase : public SystemObject,
|
|||||||
public HasModesIF,
|
public HasModesIF,
|
||||||
public HasHealthIF,
|
public HasHealthIF,
|
||||||
public HasModeTreeChildrenIF,
|
public HasModeTreeChildrenIF,
|
||||||
|
public ModeTreeConnectionIF,
|
||||||
|
public ModeTreeChildIF,
|
||||||
public ExecutableObjectIF {
|
public ExecutableObjectIF {
|
||||||
public:
|
public:
|
||||||
static const uint8_t INTERFACE_ID = CLASS_ID::SUBSYSTEM_BASE;
|
static const uint8_t INTERFACE_ID = CLASS_ID::SUBSYSTEM_BASE;
|
||||||
@ -38,24 +42,25 @@ class SubsystemBase : public SystemObject,
|
|||||||
static const ReturnValue_t COULD_NOT_INSERT_CHILD = MAKE_RETURN_CODE(0x04);
|
static const ReturnValue_t COULD_NOT_INSERT_CHILD = MAKE_RETURN_CODE(0x04);
|
||||||
static const ReturnValue_t TABLE_CONTAINS_INVALID_OBJECT_ID = MAKE_RETURN_CODE(0x05);
|
static const ReturnValue_t TABLE_CONTAINS_INVALID_OBJECT_ID = MAKE_RETURN_CODE(0x05);
|
||||||
|
|
||||||
SubsystemBase(object_id_t setObjectId, object_id_t parent, Mode_t initialMode = 0,
|
SubsystemBase(object_id_t setObjectId, Mode_t initialMode = 0, uint16_t commandQueueDepth = 8);
|
||||||
uint16_t commandQueueDepth = 8);
|
|
||||||
virtual ~SubsystemBase();
|
virtual ~SubsystemBase();
|
||||||
|
|
||||||
virtual MessageQueueId_t getCommandQueue() const override;
|
virtual MessageQueueId_t getCommandQueue() const override;
|
||||||
|
|
||||||
|
ReturnValue_t connectModeTreeParent(HasModeTreeChildrenIF &parent) override;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to register the child objects.
|
* Function to register the child objects.
|
||||||
* Performs a checks if the child does implement HasHealthIF and/or HasModesIF
|
* Performs a checks if the child does implement HasHealthIF and/or HasModesIF
|
||||||
*
|
*
|
||||||
* Also adds them to the internal childrenMap.
|
* Also adds them to the internal childrenMap.
|
||||||
*
|
*
|
||||||
* @param objectId
|
* @param objectId
|
||||||
* @return returnvalue::OK if successful
|
* @return returnvalue::OK if successful
|
||||||
* CHILD_DOESNT_HAVE_MODES if Child is no HasHealthIF and no HasModesIF
|
* CHILD_DOESNT_HAVE_MODES if Child is no HasHealthIF and no HasModesIF
|
||||||
* COULD_NOT_INSERT_CHILD If the Child could not be added to the ChildrenMap
|
* COULD_NOT_INSERT_CHILD If the Child could not be added to the ChildrenMap
|
||||||
*/
|
*/
|
||||||
ReturnValue_t registerChild(object_id_t objectId);
|
ReturnValue_t registerChild(const ModeTreeChildIF &child) override;
|
||||||
|
|
||||||
virtual ReturnValue_t initialize() override;
|
virtual ReturnValue_t initialize() override;
|
||||||
|
|
||||||
@ -90,8 +95,6 @@ class SubsystemBase : public SystemObject,
|
|||||||
|
|
||||||
ModeHelper modeHelper;
|
ModeHelper modeHelper;
|
||||||
|
|
||||||
const object_id_t parentId;
|
|
||||||
|
|
||||||
typedef std::map<object_id_t, ChildInfo> ChildrenMap;
|
typedef std::map<object_id_t, ChildInfo> ChildrenMap;
|
||||||
ChildrenMap childrenMap;
|
ChildrenMap childrenMap;
|
||||||
|
|
||||||
@ -131,8 +134,6 @@ class SubsystemBase : public SystemObject,
|
|||||||
|
|
||||||
virtual void performChildOperation() = 0;
|
virtual void performChildOperation() = 0;
|
||||||
|
|
||||||
ReturnValue_t registerChild(const ModeTreeChildIF &child) override;
|
|
||||||
|
|
||||||
virtual ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
|
virtual ReturnValue_t checkModeCommand(Mode_t mode, Submode_t submode,
|
||||||
uint32_t *msToReachTheMode) override = 0;
|
uint32_t *msToReachTheMode) override = 0;
|
||||||
|
|
||||||
@ -140,6 +141,10 @@ class SubsystemBase : public SystemObject,
|
|||||||
|
|
||||||
virtual void getMode(Mode_t *mode, Submode_t *submode) override;
|
virtual void getMode(Mode_t *mode, Submode_t *submode) override;
|
||||||
|
|
||||||
|
object_id_t getObjectId() const override;
|
||||||
|
const HasHealthIF *getOptHealthIF() const override;
|
||||||
|
const HasModesIF &getModeIF() const override;
|
||||||
|
|
||||||
virtual void setToExternalControl() override;
|
virtual void setToExternalControl() override;
|
||||||
|
|
||||||
virtual void announceMode(bool recursive) override;
|
virtual void announceMode(bool recursive) override;
|
||||||
|
@ -6,8 +6,7 @@
|
|||||||
class ModeTreeConnectionIF {
|
class ModeTreeConnectionIF {
|
||||||
public:
|
public:
|
||||||
virtual ~ModeTreeConnectionIF() = default;
|
virtual ~ModeTreeConnectionIF() = default;
|
||||||
virtual ReturnValue_t connectModeTreeParent(HasModeTreeChildrenIF &parent,
|
virtual ReturnValue_t connectModeTreeParent(HasModeTreeChildrenIF &parent) = 0;
|
||||||
const ModeTreeChildIF &child) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* FSFW_SRC_FSFW_SUBSYSTEM_MODES_MODETREECONNECTIONIF_H_ */
|
#endif /* FSFW_SRC_FSFW_SUBSYSTEM_MODES_MODETREECONNECTIONIF_H_ */
|
||||||
|
@ -142,14 +142,15 @@ ReturnValue_t TestAssembly::initialize() {
|
|||||||
handler0->setParentQueue(this->getCommandQueue());
|
handler0->setParentQueue(this->getCommandQueue());
|
||||||
handler1->setParentQueue(this->getCommandQueue());
|
handler1->setParentQueue(this->getCommandQueue());
|
||||||
|
|
||||||
result = registerChild(deviceHandler0Id);
|
// TODO: Fix this
|
||||||
if (result != returnvalue::OK) {
|
// result = registerChild(deviceHandler0Id);
|
||||||
return result;
|
// if (result != returnvalue::OK) {
|
||||||
}
|
// return result;
|
||||||
result = registerChild(deviceHandler1Id);
|
// }
|
||||||
if (result != returnvalue::OK) {
|
// result = registerChild(deviceHandler1Id);
|
||||||
return result;
|
// if (result != returnvalue::OK) {
|
||||||
}
|
// return result;
|
||||||
|
// }
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user