debug interface for dhb created.

This is useful to track states or values
in child handler. some documentation added.
New doxygen group for interfaced added.
This commit is contained in:
Robin Müller 2019-11-09 13:07:26 +01:00
parent bf7bc342ff
commit 801bd4d7eb
6 changed files with 35 additions and 9 deletions

View File

@ -7,8 +7,10 @@
#include <framework/returnvalues/HasReturnvaluesIF.h>
#include <framework/ipc/MessageQueueIF.h>
/**
* \brief Interface for component which uses actions
* @brief
* Interface for component which uses actions
*
* @details
* This interface is used to execute actions in the component. Actions, in the sense of this interface, are activities with a well-defined beginning and
* end in time. They may adjust sub-states of components, but are not supposed to change
* the main mode of operation, which is handled with the HasModesIF described below.
@ -23,6 +25,8 @@
* parameters and immediately start execution of the action. It is, however, not required to
* immediately finish execution. Instead, this may be deferred to a later point in time, at
* which the component needs to inform the caller about finished or failed execution.
*
* \ingroup interfaces
*/
class HasActionsIF {
public:

View File

@ -834,8 +834,9 @@ ReturnValue_t DeviceHandlerBase::getStateOfSwitches(void) {
ReturnValue_t result = getSwitches(&switches, &numberOfSwitches);
if ((result == RETURN_OK) && (numberOfSwitches != 0)) {
while (numberOfSwitches > 0) {
if (powerSwitcher->getSwitchState(switches[numberOfSwitches - 1])
== PowerSwitchIF::SWITCH_OFF) {
if (powerSwitcher-> getSwitchState(switches[numberOfSwitches - 1])
== PowerSwitchIF::SWITCH_OFF)
{
return PowerSwitchIF::SWITCH_OFF;
}
numberOfSwitches--;
@ -1267,4 +1268,7 @@ void DeviceHandlerBase::setTaskIF(PeriodicTaskIF* task_){
executingTask = task_;
}
void DeviceHandlerBase::debugInterface(uint8_t positionTracker) {
}

View File

@ -553,6 +553,18 @@ protected:
*/
virtual void fillCommandAndReplyMap() = 0;
/**
* @brief Can be implemented by child handler to
* perform debugging
* @details Example: Calling this in performOperation
* to track values like mode. An optional position tracker can be supplied
* to provide the child handler a way to know where the debugInterface was called
*
* Please delete all debugInterface calls in DHB after debugging is finished !
*/
virtual void debugInterface(uint8_t positionTracker = 0);
/**
* This is a helper method to facilitate inserting entries in the command map.
* @param deviceCommand Identifier of the command to add.

View File

@ -137,9 +137,10 @@ void EventManager::printEvent(EventMessage* message) {
error << "0x" << std::hex << message->getReporter() << std::dec;
}
error << " reported " << translateEvents(message->getEvent()) << " ("
<< std::dec << message->getEventId() << std::hex << ") P1: 0x"
<< message->getParameter1() << " P2: 0x"
<< message->getParameter2() << std::dec << std::endl;
<< std::dec << message->getEventId() << ") " << std::endl;
error << std::hex << "P1 Hex: 0x" << message->getParameter1() << ", P1 Dec: " << std::dec << message->getParameter1() << std::endl;
error << std::hex << "P2 Hex: 0x" << message->getParameter2() << ", P2 Dec: " << std::dec << message->getParameter2() << std::endl;
break;
}

View File

@ -1,6 +1,7 @@
#include <framework/modes/HasModesIF.h>
#include <framework/modes/ModeHelper.h>
#include <framework/ipc/MessageQueueSenderIF.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
ModeHelper::ModeHelper(HasModesIF *owner) :
theOneWhoCommandedAMode(0), commandedMode(HasModesIF::MODE_OFF), commandedSubmode(
@ -42,7 +43,6 @@ ReturnValue_t ModeHelper::handleModeCommand(CommandMessage* message) {
}
countdown.setTimeout(timeout);
owner->startTransition(mode, submode);
}
break;

View File

@ -11,8 +11,13 @@
#include <framework/events/Event.h>
#include <framework/returnvalues/HasReturnvaluesIF.h>
/**
* This interface defines a connection to a device that is capable of turning on and off
*
* @brief This interface defines a connection to a device that is capable of turning on and off
* switches of devices identified by a switch ID.
* @details The virtual functions of this interface do not allow to make any assignments
* because they can be called asynchronosuly (const ending).
*
* @ingroup interfaces
*/
class PowerSwitchIF : public HasReturnvaluesIF {
public: