Merge pull request 'STR Auto Threshold Config' (#742) from str-auto-threshold-cfg into main
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/head This commit looks good
Reviewed-on: #742 Reviewed-by: Marius Eggert <eggertm@irs.uni-stuttgart.de>
This commit is contained in:
commit
19a86ac29e
@ -25,6 +25,9 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
## Added
|
## Added
|
||||||
|
|
||||||
- Set STR time in configuration sequence to firmware mode.
|
- Set STR time in configuration sequence to firmware mode.
|
||||||
|
- The STR `AutoThreshold` parameters are now set from the configuration JSON file at STR
|
||||||
|
startup.
|
||||||
|
- The STR handler can now handle the COM error reply and triggers an low severity event accordingly.
|
||||||
|
|
||||||
# [v6.1.0] 2023-07-13
|
# [v6.1.0] 2023-07-13
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 299 translations.
|
* @brief Auto-generated event translation file. Contains 300 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-07-07 12:06:06
|
* Generated on: 2023-07-13 21:09:02
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -139,6 +139,7 @@ const char *ERROR_STATE_STRING = "ERROR_STATE";
|
|||||||
const char *RESET_OCCURED_STRING = "RESET_OCCURED";
|
const char *RESET_OCCURED_STRING = "RESET_OCCURED";
|
||||||
const char *BOOTING_FIRMWARE_FAILED_EVENT_STRING = "BOOTING_FIRMWARE_FAILED_EVENT";
|
const char *BOOTING_FIRMWARE_FAILED_EVENT_STRING = "BOOTING_FIRMWARE_FAILED_EVENT";
|
||||||
const char *BOOTING_BOOTLOADER_FAILED_EVENT_STRING = "BOOTING_BOOTLOADER_FAILED_EVENT";
|
const char *BOOTING_BOOTLOADER_FAILED_EVENT_STRING = "BOOTING_BOOTLOADER_FAILED_EVENT";
|
||||||
|
const char *COM_ERROR_REPLY_RECEIVED_STRING = "COM_ERROR_REPLY_RECEIVED";
|
||||||
const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_FAILURE";
|
const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_FAILURE";
|
||||||
const char *SUPV_UNKNOWN_TM_STRING = "SUPV_UNKNOWN_TM";
|
const char *SUPV_UNKNOWN_TM_STRING = "SUPV_UNKNOWN_TM";
|
||||||
const char *SUPV_UNINIMPLEMENTED_TM_STRING = "SUPV_UNINIMPLEMENTED_TM";
|
const char *SUPV_UNINIMPLEMENTED_TM_STRING = "SUPV_UNINIMPLEMENTED_TM";
|
||||||
@ -575,6 +576,8 @@ const char *translateEvents(Event event) {
|
|||||||
return BOOTING_FIRMWARE_FAILED_EVENT_STRING;
|
return BOOTING_FIRMWARE_FAILED_EVENT_STRING;
|
||||||
case (11902):
|
case (11902):
|
||||||
return BOOTING_BOOTLOADER_FAILED_EVENT_STRING;
|
return BOOTING_BOOTLOADER_FAILED_EVENT_STRING;
|
||||||
|
case (11903):
|
||||||
|
return COM_ERROR_REPLY_RECEIVED_STRING;
|
||||||
case (12001):
|
case (12001):
|
||||||
return SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING;
|
return SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING;
|
||||||
case (12002):
|
case (12002):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 171 translations.
|
* Contains 171 translations.
|
||||||
* Generated on: 2023-07-07 12:06:06
|
* Generated on: 2023-07-13 21:09:02
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -133,6 +133,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
11802;0x2e1a;RESET_OCCURED;LOW;No description;mission/acs/rwHelpers.h
|
11802;0x2e1a;RESET_OCCURED;LOW;No description;mission/acs/rwHelpers.h
|
||||||
11901;0x2e7d;BOOTING_FIRMWARE_FAILED_EVENT;LOW;Failed to boot firmware;mission/acs/str/StarTrackerHandler.h
|
11901;0x2e7d;BOOTING_FIRMWARE_FAILED_EVENT;LOW;Failed to boot firmware;mission/acs/str/StarTrackerHandler.h
|
||||||
11902;0x2e7e;BOOTING_BOOTLOADER_FAILED_EVENT;LOW;Failed to boot star tracker into bootloader mode;mission/acs/str/StarTrackerHandler.h
|
11902;0x2e7e;BOOTING_BOOTLOADER_FAILED_EVENT;LOW;Failed to boot star tracker into bootloader mode;mission/acs/str/StarTrackerHandler.h
|
||||||
|
11903;0x2e7f;COM_ERROR_REPLY_RECEIVED;LOW;Received COM error. P1: Communication Error ID (datasheet p32);mission/acs/str/StarTrackerHandler.h
|
||||||
12001;0x2ee1;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC supervisor crc failure in telemetry packet;linux/payload/PlocSupervisorHandler.h
|
12001;0x2ee1;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC supervisor crc failure in telemetry packet;linux/payload/PlocSupervisorHandler.h
|
||||||
12002;0x2ee2;SUPV_UNKNOWN_TM;LOW;Unhandled event. P1: APID, P2: Service ID;linux/payload/PlocSupervisorHandler.h
|
12002;0x2ee2;SUPV_UNKNOWN_TM;LOW;Unhandled event. P1: APID, P2: Service ID;linux/payload/PlocSupervisorHandler.h
|
||||||
12003;0x2ee3;SUPV_UNINIMPLEMENTED_TM;LOW;No description;linux/payload/PlocSupervisorHandler.h
|
12003;0x2ee3;SUPV_UNINIMPLEMENTED_TM;LOW;No description;linux/payload/PlocSupervisorHandler.h
|
||||||
|
|
@ -133,6 +133,7 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
11802;0x2e1a;RESET_OCCURED;LOW;No description;mission/acs/rwHelpers.h
|
11802;0x2e1a;RESET_OCCURED;LOW;No description;mission/acs/rwHelpers.h
|
||||||
11901;0x2e7d;BOOTING_FIRMWARE_FAILED_EVENT;LOW;Failed to boot firmware;mission/acs/str/StarTrackerHandler.h
|
11901;0x2e7d;BOOTING_FIRMWARE_FAILED_EVENT;LOW;Failed to boot firmware;mission/acs/str/StarTrackerHandler.h
|
||||||
11902;0x2e7e;BOOTING_BOOTLOADER_FAILED_EVENT;LOW;Failed to boot star tracker into bootloader mode;mission/acs/str/StarTrackerHandler.h
|
11902;0x2e7e;BOOTING_BOOTLOADER_FAILED_EVENT;LOW;Failed to boot star tracker into bootloader mode;mission/acs/str/StarTrackerHandler.h
|
||||||
|
11903;0x2e7f;COM_ERROR_REPLY_RECEIVED;LOW;Received COM error. P1: Communication Error ID (datasheet p32);mission/acs/str/StarTrackerHandler.h
|
||||||
12001;0x2ee1;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC supervisor crc failure in telemetry packet;linux/payload/PlocSupervisorHandler.h
|
12001;0x2ee1;SUPV_MEMORY_READ_RPT_CRC_FAILURE;LOW;PLOC supervisor crc failure in telemetry packet;linux/payload/PlocSupervisorHandler.h
|
||||||
12002;0x2ee2;SUPV_UNKNOWN_TM;LOW;Unhandled event. P1: APID, P2: Service ID;linux/payload/PlocSupervisorHandler.h
|
12002;0x2ee2;SUPV_UNKNOWN_TM;LOW;Unhandled event. P1: APID, P2: Service ID;linux/payload/PlocSupervisorHandler.h
|
||||||
12003;0x2ee3;SUPV_UNINIMPLEMENTED_TM;LOW;No description;linux/payload/PlocSupervisorHandler.h
|
12003;0x2ee3;SUPV_UNINIMPLEMENTED_TM;LOW;No description;linux/payload/PlocSupervisorHandler.h
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 299 translations.
|
* @brief Auto-generated event translation file. Contains 300 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-07-07 12:06:06
|
* Generated on: 2023-07-13 21:09:02
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -139,6 +139,7 @@ const char *ERROR_STATE_STRING = "ERROR_STATE";
|
|||||||
const char *RESET_OCCURED_STRING = "RESET_OCCURED";
|
const char *RESET_OCCURED_STRING = "RESET_OCCURED";
|
||||||
const char *BOOTING_FIRMWARE_FAILED_EVENT_STRING = "BOOTING_FIRMWARE_FAILED_EVENT";
|
const char *BOOTING_FIRMWARE_FAILED_EVENT_STRING = "BOOTING_FIRMWARE_FAILED_EVENT";
|
||||||
const char *BOOTING_BOOTLOADER_FAILED_EVENT_STRING = "BOOTING_BOOTLOADER_FAILED_EVENT";
|
const char *BOOTING_BOOTLOADER_FAILED_EVENT_STRING = "BOOTING_BOOTLOADER_FAILED_EVENT";
|
||||||
|
const char *COM_ERROR_REPLY_RECEIVED_STRING = "COM_ERROR_REPLY_RECEIVED";
|
||||||
const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_FAILURE";
|
const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_FAILURE";
|
||||||
const char *SUPV_UNKNOWN_TM_STRING = "SUPV_UNKNOWN_TM";
|
const char *SUPV_UNKNOWN_TM_STRING = "SUPV_UNKNOWN_TM";
|
||||||
const char *SUPV_UNINIMPLEMENTED_TM_STRING = "SUPV_UNINIMPLEMENTED_TM";
|
const char *SUPV_UNINIMPLEMENTED_TM_STRING = "SUPV_UNINIMPLEMENTED_TM";
|
||||||
@ -575,6 +576,8 @@ const char *translateEvents(Event event) {
|
|||||||
return BOOTING_FIRMWARE_FAILED_EVENT_STRING;
|
return BOOTING_FIRMWARE_FAILED_EVENT_STRING;
|
||||||
case (11902):
|
case (11902):
|
||||||
return BOOTING_BOOTLOADER_FAILED_EVENT_STRING;
|
return BOOTING_BOOTLOADER_FAILED_EVENT_STRING;
|
||||||
|
case (11903):
|
||||||
|
return COM_ERROR_REPLY_RECEIVED_STRING;
|
||||||
case (12001):
|
case (12001):
|
||||||
return SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING;
|
return SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING;
|
||||||
case (12002):
|
case (12002):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 175 translations.
|
* Contains 175 translations.
|
||||||
* Generated on: 2023-07-07 12:06:06
|
* Generated on: 2023-07-13 21:09:02
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 299 translations.
|
* @brief Auto-generated event translation file. Contains 300 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-07-07 12:06:06
|
* Generated on: 2023-07-13 21:09:02
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -139,6 +139,7 @@ const char *ERROR_STATE_STRING = "ERROR_STATE";
|
|||||||
const char *RESET_OCCURED_STRING = "RESET_OCCURED";
|
const char *RESET_OCCURED_STRING = "RESET_OCCURED";
|
||||||
const char *BOOTING_FIRMWARE_FAILED_EVENT_STRING = "BOOTING_FIRMWARE_FAILED_EVENT";
|
const char *BOOTING_FIRMWARE_FAILED_EVENT_STRING = "BOOTING_FIRMWARE_FAILED_EVENT";
|
||||||
const char *BOOTING_BOOTLOADER_FAILED_EVENT_STRING = "BOOTING_BOOTLOADER_FAILED_EVENT";
|
const char *BOOTING_BOOTLOADER_FAILED_EVENT_STRING = "BOOTING_BOOTLOADER_FAILED_EVENT";
|
||||||
|
const char *COM_ERROR_REPLY_RECEIVED_STRING = "COM_ERROR_REPLY_RECEIVED";
|
||||||
const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_FAILURE";
|
const char *SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING = "SUPV_MEMORY_READ_RPT_CRC_FAILURE";
|
||||||
const char *SUPV_UNKNOWN_TM_STRING = "SUPV_UNKNOWN_TM";
|
const char *SUPV_UNKNOWN_TM_STRING = "SUPV_UNKNOWN_TM";
|
||||||
const char *SUPV_UNINIMPLEMENTED_TM_STRING = "SUPV_UNINIMPLEMENTED_TM";
|
const char *SUPV_UNINIMPLEMENTED_TM_STRING = "SUPV_UNINIMPLEMENTED_TM";
|
||||||
@ -575,6 +576,8 @@ const char *translateEvents(Event event) {
|
|||||||
return BOOTING_FIRMWARE_FAILED_EVENT_STRING;
|
return BOOTING_FIRMWARE_FAILED_EVENT_STRING;
|
||||||
case (11902):
|
case (11902):
|
||||||
return BOOTING_BOOTLOADER_FAILED_EVENT_STRING;
|
return BOOTING_BOOTLOADER_FAILED_EVENT_STRING;
|
||||||
|
case (11903):
|
||||||
|
return COM_ERROR_REPLY_RECEIVED_STRING;
|
||||||
case (12001):
|
case (12001):
|
||||||
return SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING;
|
return SUPV_MEMORY_READ_RPT_CRC_FAILURE_STRING;
|
||||||
case (12002):
|
case (12002):
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
* @brief Auto-generated object translation file.
|
* @brief Auto-generated object translation file.
|
||||||
* @details
|
* @details
|
||||||
* Contains 175 translations.
|
* Contains 175 translations.
|
||||||
* Generated on: 2023-07-07 12:06:06
|
* Generated on: 2023-07-13 21:09:02
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -408,6 +408,10 @@ ReturnValue_t StarTrackerHandler::buildTransitionDeviceCommand(DeviceCommandId_t
|
|||||||
*id = startracker::DEBUG_CAMERA;
|
*id = startracker::DEBUG_CAMERA;
|
||||||
return buildCommandFromCommand(
|
return buildCommandFromCommand(
|
||||||
*id, reinterpret_cast<const uint8_t*>(paramJsonFile.c_str()), paramJsonFile.size());
|
*id, reinterpret_cast<const uint8_t*>(paramJsonFile.c_str()), paramJsonFile.size());
|
||||||
|
case FwBootState::AUTO_THRESHOLD:
|
||||||
|
*id = startracker::AUTO_THRESHOLD;
|
||||||
|
return buildCommandFromCommand(
|
||||||
|
*id, reinterpret_cast<const uint8_t*>(paramJsonFile.c_str()), paramJsonFile.size());
|
||||||
default: {
|
default: {
|
||||||
sif::error << "STR: Unexpected boot state" << (int)bootState << std::endl;
|
sif::error << "STR: Unexpected boot state" << (int)bootState << std::endl;
|
||||||
return NOTHING_TO_SEND;
|
return NOTHING_TO_SEND;
|
||||||
@ -556,6 +560,11 @@ ReturnValue_t StarTrackerHandler::buildCommandFromCommand(DeviceCommandId_t devi
|
|||||||
result = prepareParamCommand(commandData, commandDataLen, jcfgs.logLevel, reinitNextSetParam);
|
result = prepareParamCommand(commandData, commandDataLen, jcfgs.logLevel, reinitNextSetParam);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
case (startracker::AUTO_THRESHOLD): {
|
||||||
|
result =
|
||||||
|
prepareParamCommand(commandData, commandDataLen, jcfgs.autoThreshold, reinitNextSetParam);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
case (startracker::LOGSUBSCRIPTION): {
|
case (startracker::LOGSUBSCRIPTION): {
|
||||||
result = prepareParamCommand(commandData, commandDataLen, jcfgs.logSubscription,
|
result = prepareParamCommand(commandData, commandDataLen, jcfgs.logSubscription,
|
||||||
reinitNextSetParam);
|
reinitNextSetParam);
|
||||||
@ -668,6 +677,8 @@ void StarTrackerHandler::fillCommandAndReplyMap() {
|
|||||||
startracker::MAX_FRAME_SIZE * 2 + 2);
|
startracker::MAX_FRAME_SIZE * 2 + 2);
|
||||||
this->insertInCommandAndReplyMap(startracker::LIMITS, 3, nullptr,
|
this->insertInCommandAndReplyMap(startracker::LIMITS, 3, nullptr,
|
||||||
startracker::MAX_FRAME_SIZE * 2 + 2);
|
startracker::MAX_FRAME_SIZE * 2 + 2);
|
||||||
|
this->insertInCommandAndReplyMap(startracker::AUTO_THRESHOLD, 2, nullptr,
|
||||||
|
startracker::MAX_FRAME_SIZE * 2 + 2);
|
||||||
this->insertInCommandAndReplyMap(startracker::MOUNTING, 3, nullptr,
|
this->insertInCommandAndReplyMap(startracker::MOUNTING, 3, nullptr,
|
||||||
startracker::MAX_FRAME_SIZE * 2 + 2);
|
startracker::MAX_FRAME_SIZE * 2 + 2);
|
||||||
this->insertInCommandAndReplyMap(startracker::IMAGE_PROCESSOR, 3, nullptr,
|
this->insertInCommandAndReplyMap(startracker::IMAGE_PROCESSOR, 3, nullptr,
|
||||||
@ -845,6 +856,7 @@ void StarTrackerHandler::setUpJsonCfgs(JsonConfigs& cfgs, const char* paramJsonF
|
|||||||
cfgs.mounting.init(paramJsonFile);
|
cfgs.mounting.init(paramJsonFile);
|
||||||
cfgs.limits.init(paramJsonFile);
|
cfgs.limits.init(paramJsonFile);
|
||||||
cfgs.subscription.init(paramJsonFile);
|
cfgs.subscription.init(paramJsonFile);
|
||||||
|
cfgs.autoThreshold.init(paramJsonFile);
|
||||||
JCFG_DONE = true;
|
JCFG_DONE = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -868,13 +880,20 @@ ReturnValue_t StarTrackerHandler::scanForReply(const uint8_t* start, size_t rema
|
|||||||
*foundLen = remainingSize;
|
*foundLen = remainingSize;
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
if (remainingSize < 3) {
|
if (remainingSize < 2) {
|
||||||
sif::error << "StarTrackerHandler: Reply packet with length less than 3 is invalid"
|
sif::error << "StarTrackerHandler: Reply packet with length " << remainingSize
|
||||||
|
<< " less than "
|
||||||
|
"2 is invalid"
|
||||||
<< std::endl;
|
<< std::endl;
|
||||||
return returnvalue::FAILED;
|
return returnvalue::FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (startracker::getReplyFrameType(start)) {
|
switch (startracker::getReplyFrameType(start)) {
|
||||||
|
case TMTC_COMM_ERROR: {
|
||||||
|
*foundLen = remainingSize;
|
||||||
|
triggerEvent(COM_ERROR_REPLY_RECEIVED, start[1]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case TMTC_ACTIONREPLY: {
|
case TMTC_ACTIONREPLY: {
|
||||||
*foundLen = remainingSize;
|
*foundLen = remainingSize;
|
||||||
return scanForActionReply(startracker::getId(start), foundId);
|
return scanForActionReply(startracker::getId(start), foundId);
|
||||||
@ -972,7 +991,8 @@ ReturnValue_t StarTrackerHandler::interpretDeviceReply(DeviceCommandId_t id,
|
|||||||
case (startracker::TRACKING):
|
case (startracker::TRACKING):
|
||||||
case (startracker::VALIDATION):
|
case (startracker::VALIDATION):
|
||||||
case (startracker::IMAGE_PROCESSOR):
|
case (startracker::IMAGE_PROCESSOR):
|
||||||
case (startracker::ALGO): {
|
case (startracker::ALGO):
|
||||||
|
case (startracker::AUTO_THRESHOLD): {
|
||||||
result = handleSetParamReply(packet);
|
result = handleSetParamReply(packet);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1450,6 +1470,10 @@ ReturnValue_t StarTrackerHandler::scanForSetParameterReply(uint8_t replyId,
|
|||||||
*foundId = startracker::DEBUG_CAMERA;
|
*foundId = startracker::DEBUG_CAMERA;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case (startracker::ID::AUTO_THRESHOLD): {
|
||||||
|
*foundId = startracker::AUTO_THRESHOLD;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case (startracker::ID::LOG_SUBSCRIPTION): {
|
case (startracker::ID::LOG_SUBSCRIPTION): {
|
||||||
*foundId = startracker::LOGSUBSCRIPTION;
|
*foundId = startracker::LOGSUBSCRIPTION;
|
||||||
break;
|
break;
|
||||||
@ -2138,6 +2162,10 @@ void StarTrackerHandler::handleStartup(uint8_t tmType, uint8_t parameterId) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case (startracker::ID::DEBUG_CAMERA): {
|
case (startracker::ID::DEBUG_CAMERA): {
|
||||||
|
bootState = FwBootState::AUTO_THRESHOLD;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case (startracker::ID::AUTO_THRESHOLD): {
|
||||||
bootState = FwBootState::NONE;
|
bootState = FwBootState::NONE;
|
||||||
internalState = InternalState::DONE;
|
internalState = InternalState::DONE;
|
||||||
break;
|
break;
|
||||||
|
@ -144,6 +144,8 @@ class StarTrackerHandler : public DeviceHandlerBase {
|
|||||||
static const Event BOOTING_FIRMWARE_FAILED_EVENT = MAKE_EVENT(1, severity::LOW);
|
static const Event BOOTING_FIRMWARE_FAILED_EVENT = MAKE_EVENT(1, severity::LOW);
|
||||||
//! [EXPORT] : [COMMENT] Failed to boot star tracker into bootloader mode
|
//! [EXPORT] : [COMMENT] Failed to boot star tracker into bootloader mode
|
||||||
static const Event BOOTING_BOOTLOADER_FAILED_EVENT = MAKE_EVENT(2, severity::LOW);
|
static const Event BOOTING_BOOTLOADER_FAILED_EVENT = MAKE_EVENT(2, severity::LOW);
|
||||||
|
//! [EXPORT] : [COMMENT] Received COM error. P1: Communication Error ID (datasheet p32)
|
||||||
|
static constexpr Event COM_ERROR_REPLY_RECEIVED = MAKE_EVENT(3, severity::LOW);
|
||||||
|
|
||||||
static const uint8_t STATUS_OFFSET = 2;
|
static const uint8_t STATUS_OFFSET = 2;
|
||||||
static const uint8_t PARAMS_OFFSET = 2;
|
static const uint8_t PARAMS_OFFSET = 2;
|
||||||
@ -227,6 +229,7 @@ class StarTrackerHandler : public DeviceHandlerBase {
|
|||||||
Mounting mounting;
|
Mounting mounting;
|
||||||
Limits limits;
|
Limits limits;
|
||||||
Subscription subscription;
|
Subscription subscription;
|
||||||
|
AutoThreshold autoThreshold;
|
||||||
};
|
};
|
||||||
JsonConfigs jcfgs;
|
JsonConfigs jcfgs;
|
||||||
Countdown jcfgCountdown = Countdown(250);
|
Countdown jcfgCountdown = Countdown(250);
|
||||||
@ -280,6 +283,7 @@ class StarTrackerHandler : public DeviceHandlerBase {
|
|||||||
ALGO,
|
ALGO,
|
||||||
LOG_SUBSCRIPTION,
|
LOG_SUBSCRIPTION,
|
||||||
DEBUG_CAMERA,
|
DEBUG_CAMERA,
|
||||||
|
AUTO_THRESHOLD,
|
||||||
WAIT_FOR_EXECUTION,
|
WAIT_FOR_EXECUTION,
|
||||||
RETRY_CFG_CMD
|
RETRY_CFG_CMD
|
||||||
};
|
};
|
||||||
|
@ -176,6 +176,13 @@ static const char DEBUG_CAMERA[] = "DebugCamera";
|
|||||||
static const char TIMING[] = "timing";
|
static const char TIMING[] = "timing";
|
||||||
static const char TEST[] = "test";
|
static const char TEST[] = "test";
|
||||||
|
|
||||||
|
static constexpr char AUTO_THRESHOLD[] = "AutoThreshold";
|
||||||
|
static constexpr char AT_MODE[] = "mode";
|
||||||
|
static constexpr char AT_DESIRED_BLOB_COUNTS[] = "desiredBlobsCount";
|
||||||
|
static constexpr char AT_MIN_THRESHOLD[] = "minThreshold";
|
||||||
|
static constexpr char AT_MAX_THRESHOLD[] = "maxThreshold";
|
||||||
|
static constexpr char AT_THRESHOLD_KP[] = "thresholdKp";
|
||||||
|
|
||||||
} // namespace arcseckeys
|
} // namespace arcseckeys
|
||||||
|
|
||||||
#endif /* BSP_Q7S_DEVICES_DEVICEDEFINITIONS_ARCSECJSONKEYS_H_ */
|
#endif /* BSP_Q7S_DEVICES_DEVICEDEFINITIONS_ARCSECJSONKEYS_H_ */
|
||||||
|
@ -327,6 +327,7 @@ static const DeviceCommandId_t FIRMWARE_UPDATE = 84;
|
|||||||
static const DeviceCommandId_t DISABLE_TIMESTAMP_GENERATION = 85;
|
static const DeviceCommandId_t DISABLE_TIMESTAMP_GENERATION = 85;
|
||||||
static const DeviceCommandId_t ENABLE_TIMESTAMP_GENERATION = 86;
|
static const DeviceCommandId_t ENABLE_TIMESTAMP_GENERATION = 86;
|
||||||
static constexpr DeviceCommandId_t SET_TIME_FROM_SYS_TIME = 87;
|
static constexpr DeviceCommandId_t SET_TIME_FROM_SYS_TIME = 87;
|
||||||
|
static constexpr DeviceCommandId_t AUTO_THRESHOLD = 88;
|
||||||
static const DeviceCommandId_t NONE = 0xFFFFFFFF;
|
static const DeviceCommandId_t NONE = 0xFFFFFFFF;
|
||||||
|
|
||||||
static const uint32_t VERSION_SET_ID = REQ_VERSION;
|
static const uint32_t VERSION_SET_ID = REQ_VERSION;
|
||||||
@ -410,6 +411,7 @@ static const uint8_t TAKE_IMAGE = 15;
|
|||||||
static const uint8_t LOG_LEVEL = 3;
|
static const uint8_t LOG_LEVEL = 3;
|
||||||
static const uint8_t LOG_SUBSCRIPTION = 19;
|
static const uint8_t LOG_SUBSCRIPTION = 19;
|
||||||
static const uint8_t DEBUG_CAMERA = 20;
|
static const uint8_t DEBUG_CAMERA = 20;
|
||||||
|
static const uint8_t AUTO_THRESHOLD = 23;
|
||||||
} // namespace ID
|
} // namespace ID
|
||||||
|
|
||||||
namespace Program {
|
namespace Program {
|
||||||
@ -441,6 +443,21 @@ static const uint32_t secret[16]{
|
|||||||
REGION_12_SECRET, REGION_13_SECRET, REGION_14_SECRET, REGION_15_SECRET};
|
REGION_12_SECRET, REGION_13_SECRET, REGION_14_SECRET, REGION_15_SECRET};
|
||||||
} // namespace region_secrets
|
} // namespace region_secrets
|
||||||
|
|
||||||
|
namespace comError {
|
||||||
|
enum Id {
|
||||||
|
BAD_CRC = 1,
|
||||||
|
UNKNOWN_TM_ID = 2,
|
||||||
|
UNKNOWN_PARAM_ID = 3,
|
||||||
|
UNKNOWN_ACTION_REQ = 4,
|
||||||
|
INVALID_TM_SIZE = 5,
|
||||||
|
INVALID_PARAM_SIZE = 6,
|
||||||
|
INVALID_ACTION_REQ_SIZE = 7,
|
||||||
|
FRAME_TOO_SHORT = 8,
|
||||||
|
INVALID_FRAME_TYPE = 9,
|
||||||
|
UNKNOWN_ERROR = 10
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
enum class FlashSections : uint8_t {
|
enum class FlashSections : uint8_t {
|
||||||
BOOTLOADER_SECTION = 0,
|
BOOTLOADER_SECTION = 0,
|
||||||
MAIN_FIRMWARE_SECTION = 1,
|
MAIN_FIRMWARE_SECTION = 1,
|
||||||
|
@ -916,3 +916,45 @@ ReturnValue_t DebugCamera::createCommand(uint8_t* buffer) {
|
|||||||
adduint32(param, buffer + offset);
|
adduint32(param, buffer + offset);
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AutoThreshold::AutoThreshold() : ArcsecJsonParamBase(arcseckeys::AUTO_THRESHOLD) {}
|
||||||
|
|
||||||
|
size_t AutoThreshold::getSize() { return COMMAND_SIZE; }
|
||||||
|
|
||||||
|
ReturnValue_t AutoThreshold::createCommand(uint8_t* buffer) {
|
||||||
|
ReturnValue_t result = returnvalue::OK;
|
||||||
|
uint8_t offset = 0;
|
||||||
|
std::string param;
|
||||||
|
addSetParamHeader(buffer, startracker::ID::AUTO_THRESHOLD);
|
||||||
|
offset = 2;
|
||||||
|
result = getParam(arcseckeys::AT_MODE, param);
|
||||||
|
if (result != returnvalue::OK) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
adduint8(param, buffer + offset);
|
||||||
|
offset += 1;
|
||||||
|
result = getParam(arcseckeys::AT_DESIRED_BLOB_COUNTS, param);
|
||||||
|
if (result != returnvalue::OK) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
adduint8(param, buffer + offset);
|
||||||
|
offset += 1;
|
||||||
|
result = getParam(arcseckeys::AT_MIN_THRESHOLD, param);
|
||||||
|
if (result != returnvalue::OK) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
adduint16(param, buffer + offset);
|
||||||
|
offset += 2;
|
||||||
|
result = getParam(arcseckeys::AT_MAX_THRESHOLD, param);
|
||||||
|
if (result != returnvalue::OK) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
adduint16(param, buffer + offset);
|
||||||
|
offset += 2;
|
||||||
|
result = getParam(arcseckeys::AT_THRESHOLD_KP, param);
|
||||||
|
if (result != returnvalue::OK) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
addfloat(param, buffer + offset);
|
||||||
|
return returnvalue::OK;
|
||||||
|
}
|
||||||
|
@ -222,6 +222,22 @@ class LogSubscription : public ArcsecJsonParamBase {
|
|||||||
ReturnValue_t createCommand(uint8_t* buffer) override;
|
ReturnValue_t createCommand(uint8_t* buffer) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Generates command to set log subscription parameters.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
class AutoThreshold : public ArcsecJsonParamBase {
|
||||||
|
public:
|
||||||
|
AutoThreshold();
|
||||||
|
|
||||||
|
size_t getSize();
|
||||||
|
|
||||||
|
private:
|
||||||
|
static const size_t COMMAND_SIZE = 12;
|
||||||
|
|
||||||
|
ReturnValue_t createCommand(uint8_t* buffer) override;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Generates command to set debug camera parameters
|
* @brief Generates command to set debug camera parameters
|
||||||
*
|
*
|
||||||
|
2
tmtc
2
tmtc
@ -1 +1 @@
|
|||||||
Subproject commit 26cf112121782e730057cda0766d435ee2077b6d
|
Subproject commit 0b8bd61e8015d7145462ecbf9db5f302bc234b41
|
Loading…
Reference in New Issue
Block a user