gom space commands
This commit is contained in:
parent
fd674b3d61
commit
7dde1150e8
2
fsfw
2
fsfw
@ -1 +1 @@
|
|||||||
Subproject commit 2fa76d366325372e92a2188f71f143a485e652fc
|
Subproject commit 496dac89e4c094e03578f40d8651485f7f378cb2
|
@ -166,6 +166,16 @@ ReturnValue_t CspComIF::sendMessage(CookieIF* cookie, const uint8_t* sendData, s
|
|||||||
if (result != 0) {
|
if (result != 0) {
|
||||||
return returnvalue::FAILED;
|
return returnvalue::FAILED;
|
||||||
}
|
}
|
||||||
|
} else if(req == GOMSPACE::SpecialRequestTypes::SAVE_TABLE) {
|
||||||
|
if(sendLen < 2) {
|
||||||
|
return returnvalue::FAILED;
|
||||||
|
}
|
||||||
|
const TableInfo* tableInfo = reinterpret_cast<const TableInfo*>(sendData);
|
||||||
|
int result = gs_rparam_save(cspAddress, cspCookie->getTimeout(), tableInfo->sourceTable,
|
||||||
|
tableInfo->targetTable);
|
||||||
|
if (result != 0) {
|
||||||
|
return returnvalue::FAILED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* No CSP fixed port was selected. Send data to the specified port and
|
/* No CSP fixed port was selected. Send data to the specified port and
|
||||||
|
@ -96,7 +96,7 @@ void ObjectFactory::produceGenericObjects(HealthTableIF** healthTable_) {
|
|||||||
PsbParams(objects::PUS_SERVICE_5_EVENT_REPORTING, apid::EIVE_OBSW, pus::PUS_SERVICE_5), 15,
|
PsbParams(objects::PUS_SERVICE_5_EVENT_REPORTING, apid::EIVE_OBSW, pus::PUS_SERVICE_5), 15,
|
||||||
45);
|
45);
|
||||||
new Service8FunctionManagement(objects::PUS_SERVICE_8_FUNCTION_MGMT, apid::EIVE_OBSW,
|
new Service8FunctionManagement(objects::PUS_SERVICE_8_FUNCTION_MGMT, apid::EIVE_OBSW,
|
||||||
pus::PUS_SERVICE_8, 3, 60);
|
pus::PUS_SERVICE_8, 16, 60);
|
||||||
new Service9TimeManagement(
|
new Service9TimeManagement(
|
||||||
PsbParams(objects::PUS_SERVICE_9_TIME_MGMT, apid::EIVE_OBSW, pus::PUS_SERVICE_9));
|
PsbParams(objects::PUS_SERVICE_9_TIME_MGMT, apid::EIVE_OBSW, pus::PUS_SERVICE_9));
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ class CspCookie : public CookieIF {
|
|||||||
uint32_t getTimeout() const;
|
uint32_t getTimeout() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint8_t cspPort;
|
uint8_t cspPort = 0;
|
||||||
uint16_t maxReplyLength;
|
uint16_t maxReplyLength;
|
||||||
uint8_t cspAddress;
|
uint8_t cspAddress;
|
||||||
size_t replyLen = 0;
|
size_t replyLen = 0;
|
||||||
|
@ -115,6 +115,45 @@ ReturnValue_t GomspaceDeviceHandler::buildCommandFromCommand(DeviceCommandId_t d
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case (GOMSPACE::SAVE_TABLE_FILE): {
|
||||||
|
if(commandDataLen > 2) {
|
||||||
|
return HasActionsIF::INVALID_PARAMETERS;
|
||||||
|
}
|
||||||
|
auto* info = reinterpret_cast<GOMSPACE::TableInfo*>(cspPacket);
|
||||||
|
if(commandData[0] != 0 and commandData[0] != 1 and commandData[0] != 2 and commandData[0] != 4) {
|
||||||
|
return HasActionsIF::INVALID_PARAMETERS;
|
||||||
|
}
|
||||||
|
info->sourceTable = commandData[0];
|
||||||
|
if (info->sourceTable != 4) {
|
||||||
|
if(commandDataLen == 2) {
|
||||||
|
info->targetTable = commandData[1];
|
||||||
|
} else {
|
||||||
|
info->targetTable = info->sourceTable;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Will be ignored, still set the value which is always used
|
||||||
|
info->targetTable = 4;
|
||||||
|
}
|
||||||
|
rawPacket = cspPacket;
|
||||||
|
rawPacketLen = sizeof(GOMSPACE::TableInfo);
|
||||||
|
rememberCommandId = deviceCommand;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case (GOMSPACE::SAVE_TABLE_DEFAULT): {
|
||||||
|
if(commandDataLen != 1) {
|
||||||
|
return HasActionsIF::INVALID_PARAMETERS;
|
||||||
|
}
|
||||||
|
auto* info = reinterpret_cast<GOMSPACE::TableInfo*>(cspPacket);
|
||||||
|
if(commandData[0] != 0 and commandData[0] != 1 and commandData[0] != 2) {
|
||||||
|
return HasActionsIF::INVALID_PARAMETERS;
|
||||||
|
}
|
||||||
|
info->sourceTable = commandData[0];
|
||||||
|
info->targetTable = info->sourceTable + 4;
|
||||||
|
rawPacket = cspPacket;
|
||||||
|
rawPacketLen = sizeof(GOMSPACE::TableInfo);
|
||||||
|
rememberCommandId = deviceCommand;
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return DeviceHandlerIF::COMMAND_NOT_IMPLEMENTED;
|
return DeviceHandlerIF::COMMAND_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
@ -131,6 +170,8 @@ void GomspaceDeviceHandler::fillCommandAndReplyMap() {
|
|||||||
this->insertInCommandMap(GOMSPACE::GNDWDT_RESET);
|
this->insertInCommandMap(GOMSPACE::GNDWDT_RESET);
|
||||||
this->insertInCommandMap(GOMSPACE::PRINT_SWITCH_V_I);
|
this->insertInCommandMap(GOMSPACE::PRINT_SWITCH_V_I);
|
||||||
this->insertInCommandMap(GOMSPACE::PRINT_LATCHUPS);
|
this->insertInCommandMap(GOMSPACE::PRINT_LATCHUPS);
|
||||||
|
insertInCommandMap(GOMSPACE::SAVE_TABLE_FILE);
|
||||||
|
insertInCommandMap(GOMSPACE::SAVE_TABLE_DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t GomspaceDeviceHandler::scanForReply(const uint8_t* start, size_t remainingSize,
|
ReturnValue_t GomspaceDeviceHandler::scanForReply(const uint8_t* start, size_t remainingSize,
|
||||||
|
@ -18,6 +18,11 @@
|
|||||||
|
|
||||||
namespace GOMSPACE {
|
namespace GOMSPACE {
|
||||||
|
|
||||||
|
struct TableInfo {
|
||||||
|
uint8_t sourceTable;
|
||||||
|
uint8_t targetTable;
|
||||||
|
};
|
||||||
|
|
||||||
enum SpecialRequestTypes {
|
enum SpecialRequestTypes {
|
||||||
DEFAULT_COM_IF,
|
DEFAULT_COM_IF,
|
||||||
GET_PDU_HK,
|
GET_PDU_HK,
|
||||||
@ -25,7 +30,8 @@ enum SpecialRequestTypes {
|
|||||||
GET_ACU_HK,
|
GET_ACU_HK,
|
||||||
GET_ACU_CONFIG,
|
GET_ACU_CONFIG,
|
||||||
GET_P60DOCK_HK,
|
GET_P60DOCK_HK,
|
||||||
GET_P60DOCK_CONFIG
|
GET_P60DOCK_CONFIG,
|
||||||
|
SAVE_TABLE
|
||||||
};
|
};
|
||||||
|
|
||||||
enum CspPorts : uint8_t {
|
enum CspPorts : uint8_t {
|
||||||
@ -53,14 +59,17 @@ static const uint8_t P60_PORT_GNDWDT_RESET = 9;
|
|||||||
* Device commands are derived from the rparam.h of the gomspace lib..
|
* Device commands are derived from the rparam.h of the gomspace lib..
|
||||||
* IDs above 50 are reserved for device specific commands.
|
* IDs above 50 are reserved for device specific commands.
|
||||||
*/
|
*/
|
||||||
|
static const DeviceCommandId_t PARAM_GET = 0; //!< [EXPORT] : [COMMAND]
|
||||||
static const DeviceCommandId_t PING = 1; //!< [EXPORT] : [COMMAND]
|
static const DeviceCommandId_t PING = 1; //!< [EXPORT] : [COMMAND]
|
||||||
static const DeviceCommandId_t NONE = 2; // Set when no command is pending
|
static const DeviceCommandId_t NONE = 2; // Set when no command is pending
|
||||||
static const DeviceCommandId_t REBOOT = 4; //!< [EXPORT] : [COMMAND]
|
static const DeviceCommandId_t REBOOT = 4; //!< [EXPORT] : [COMMAND]
|
||||||
static const DeviceCommandId_t GNDWDT_RESET = 9; //!< [EXPORT] : [COMMAND]
|
static const DeviceCommandId_t GNDWDT_RESET = 9; //!< [EXPORT] : [COMMAND]
|
||||||
static const DeviceCommandId_t PARAM_GET = 0; //!< [EXPORT] : [COMMAND]
|
|
||||||
static const DeviceCommandId_t PARAM_SET = 255; //!< [EXPORT] : [COMMAND]
|
|
||||||
static const DeviceCommandId_t REQUEST_HK_TABLE = 16; //!< [EXPORT] : [COMMAND]
|
static const DeviceCommandId_t REQUEST_HK_TABLE = 16; //!< [EXPORT] : [COMMAND]
|
||||||
static const DeviceCommandId_t REQUEST_CONFIG_TABLE = 17; //!< [EXPORT] : [COMMAND]
|
static const DeviceCommandId_t REQUEST_CONFIG_TABLE = 17; //!< [EXPORT] : [COMMAND]
|
||||||
|
static const DeviceCommandId_t SAVE_TABLE_FILE = 18;
|
||||||
|
static const DeviceCommandId_t SAVE_TABLE_DEFAULT = 19;
|
||||||
|
static const DeviceCommandId_t PARAM_SET = 255; //!< [EXPORT] : [COMMAND]
|
||||||
|
|
||||||
// Not implemented yet
|
// Not implemented yet
|
||||||
// static const DeviceCommandId_t REQUEST_CALIB_TABLE = 18; //!< [EXPORT] : [COMMAND]
|
// static const DeviceCommandId_t REQUEST_CALIB_TABLE = 18; //!< [EXPORT] : [COMMAND]
|
||||||
//! [EXPORT] : [COMMAND] Print switch states, voltages and currents to the console
|
//! [EXPORT] : [COMMAND] Print switch states, voltages and currents to the console
|
||||||
|
2
tmtc
2
tmtc
@ -1 +1 @@
|
|||||||
Subproject commit 05dd17386070b9f333977f1f2b9f5651f9053b65
|
Subproject commit cc31a756856623ecc2eec80e155557ac208f10a2
|
Loading…
Reference in New Issue
Block a user