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; return &poolManager;
} }
MessageQueueId_t DeviceHandlerBase::getCommanderId(DeviceCommandId_t replyId) const { MessageQueueId_t DeviceHandlerBase::getCommanderQueueId(DeviceCommandId_t replyId) const {
auto commandIter = deviceCommandMap.find(replyId); auto commandIter = deviceCommandMap.find(replyId);
if(commandIter == deviceCommandMap.end()) { if(commandIter == deviceCommandMap.end()) {
return MessageQueueIF::NO_QUEUE; return MessageQueueIF::NO_QUEUE;
} }
return commandIter->second.sendReplyTo; 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 * 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. * 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 deviceCommand The command to build, already checked against deviceCommandMap
* @param commandData Pointer to the data from the direct command * @param commandData Pointer to the data from the direct command
* @param commandDataLen Length of commandData * @param commandDataLen Length of commandData
@ -401,7 +404,9 @@ protected:
*/ */
virtual ReturnValue_t interpretDeviceReply(DeviceCommandId_t id, virtual ReturnValue_t interpretDeviceReply(DeviceCommandId_t id,
const uint8_t *packet) = 0; 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 * Helper function to get pending command. This is useful for devices
* like SPI sensors to identify the last sent command. * like SPI sensors to identify the last sent command.