Compare commits

...

2 Commits

Author SHA1 Message Date
a8167f5431 added another helper function 2021-09-08 17:02:08 +02:00
41f3d7cf9a better name for function 2021-09-08 16:58:30 +02:00
2 changed files with 15 additions and 2 deletions

View File

@ -1566,10 +1566,18 @@ LocalDataPoolManager* DeviceHandlerBase::getHkManagerHandle() {
return &poolManager;
}
MessageQueueId_t DeviceHandlerBase::getCommanderId(DeviceCommandId_t replyId) const {
MessageQueueId_t DeviceHandlerBase::getCommanderQueueId(DeviceCommandId_t replyId) const {
auto commandIter = deviceCommandMap.find(replyId);
if(commandIter == deviceCommandMap.end()) {
return MessageQueueIF::NO_QUEUE;
}
return commandIter->second.sendReplyTo;
}
void DeviceHandlerBase::finishCommandExecution(DeviceCommandId_t replyId) {
auto commandIter = deviceCommandMap.find(replyId);
if(commandIter == deviceCommandMap.end()) {
return;
}
commandIter->second.isExecuting = false;
}

View File

@ -332,6 +332,9 @@ protected:
* interface. NO_REPLY_EXPECTED should be returned for a finish reply, RETURN_OK should be
* returned for a step reply and everything else will trigger a step failure.
*
* If the commander ID is required for generating a finish reply immediately, it can be
* retrieved using the #getCommanderQueueId function.
*
* @param deviceCommand The command to build, already checked against deviceCommandMap
* @param commandData Pointer to the data from the direct command
* @param commandDataLen Length of commandData
@ -401,7 +404,9 @@ protected:
*/
virtual ReturnValue_t interpretDeviceReply(DeviceCommandId_t id,
const uint8_t *packet) = 0;
MessageQueueId_t getCommanderId(DeviceCommandId_t replyId) const;
MessageQueueId_t getCommanderQueueId(DeviceCommandId_t replyId) const;
void finishCommandExecution(DeviceCommandId_t replyId);
/**
* Helper function to get pending command. This is useful for devices
* like SPI sensors to identify the last sent command.