read module cfg and read hk from p60 dock, intermediate state
This commit is contained in:
@ -6,6 +6,14 @@
|
||||
|
||||
P60DockHandler::P60DockHandler(object_id_t objectId, object_id_t comIF,
|
||||
CookieIF * comCookie):DeviceHandlerBase(objectId, comIF, comCookie) {
|
||||
mode = MODE_NORMAL;
|
||||
if(comCookie == NULL){
|
||||
sif::error << "P60DockHandler invalid com cookie" << std::endl;
|
||||
}
|
||||
p60DockCookie = dynamic_cast<P60DockCookie*> (comCookie);
|
||||
if(p60DockCookie == NULL){
|
||||
sif::error << "P60DockHandler failed to get P60DockCookie" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
P60DockHandler::~P60DockHandler() {
|
||||
@ -13,7 +21,6 @@ P60DockHandler::~P60DockHandler() {
|
||||
|
||||
|
||||
void P60DockHandler::doStartUp(){
|
||||
|
||||
}
|
||||
|
||||
void P60DockHandler::doShutDown(){
|
||||
@ -34,7 +41,15 @@ ReturnValue_t P60DockHandler::buildCommandFromCommand(
|
||||
size_t commandDataLen) {
|
||||
switch(deviceCommand) {
|
||||
case(READ_MODULE_CFG):{
|
||||
p60DockCookie->setReadModuleCfgMessage();
|
||||
internalState = InternalStates::READ_MODULE_CFG;
|
||||
this->pstStep = GET_READ;
|
||||
break;
|
||||
}
|
||||
case(READ_HK):{
|
||||
p60DockCookie->setReadHkMessage();
|
||||
internalState = InternalStates::READ_HK;
|
||||
this->pstStep = GET_READ;
|
||||
break;
|
||||
}
|
||||
case(PING): {
|
||||
@ -48,6 +63,7 @@ ReturnValue_t P60DockHandler::buildCommandFromCommand(
|
||||
|
||||
void P60DockHandler::fillCommandAndReplyMap(){
|
||||
this->insertInCommandAndReplyMap(READ_MODULE_CFG, 3);
|
||||
this->insertInCommandAndReplyMap(READ_HK, 3);
|
||||
}
|
||||
|
||||
ReturnValue_t P60DockHandler::scanForReply(const uint8_t *start,
|
||||
@ -58,6 +74,11 @@ ReturnValue_t P60DockHandler::scanForReply(const uint8_t *start,
|
||||
*foundLen = moduleCfgTableSize;
|
||||
break;
|
||||
}
|
||||
case(InternalStates::READ_HK): {
|
||||
*foundId = READ_HK;
|
||||
*foundLen = hkTableSize;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return IGNORE_REPLY_DATA;
|
||||
}
|
||||
@ -71,6 +92,10 @@ ReturnValue_t P60DockHandler::interpretDeviceReply(DeviceCommandId_t id,
|
||||
handleDeviceTM((SerializeIF*)packet, id, true, true);
|
||||
break;
|
||||
}
|
||||
case(READ_HK): {
|
||||
handleDeviceTM((SerializeIF*)packet, id, true, true);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define MISSION_DEVICES_P60DOCKHANDLER_H_
|
||||
|
||||
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
|
||||
#include <bsp_linux/comIF/cookies/P60DockCookie.h>
|
||||
|
||||
class P60DockHandler: public DeviceHandlerBase {
|
||||
public:
|
||||
@ -26,15 +27,19 @@ protected:
|
||||
private:
|
||||
|
||||
static const DeviceCommandId_t PING = 0x1; //!< [EXPORT] : [COMMAND]
|
||||
static const DeviceCommandId_t READ_MODULE_CFG = 0xE; //!< [EXPORT] : [COMMAND]
|
||||
static const DeviceCommandId_t READ_MODULE_CFG = 0x71; //!< [EXPORT] : [COMMAND]
|
||||
static const DeviceCommandId_t READ_HK = 0x72; //!< [EXPORT] : [COMMAND]
|
||||
|
||||
enum class InternalStates {
|
||||
STATE_NONE,
|
||||
READ_MODULE_CFG
|
||||
READ_MODULE_CFG,
|
||||
READ_HK
|
||||
};
|
||||
InternalStates internalState = InternalStates::STATE_NONE;
|
||||
uint8_t moduleCfgTableSize = 188;
|
||||
uint8_t hkTableSize = 188;
|
||||
|
||||
size_t moduleCfgTableSize = 188;
|
||||
P60DockCookie* p60DockCookie;
|
||||
};
|
||||
|
||||
#endif /* MISSION_DEVICES_P60DOCKHANDLER_H_ */
|
||||
|
Reference in New Issue
Block a user