add auto threshold config
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
This commit is contained in:
parent
80155285c8
commit
7870a2015e
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -972,7 +984,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 +1463,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 +2155,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;
|
||||||
|
@ -227,6 +227,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 +281,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 {
|
||||||
|
@ -916,3 +916,47 @@ 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) {
|
||||||
|
sif::debug << "creating auto threshold command" << std::endl;
|
||||||
|
ReturnValue_t result = returnvalue::OK;
|
||||||
|
uint8_t offset = 0;
|
||||||
|
std::string param;
|
||||||
|
addSetParamHeader(buffer, startracker::ID::LOG_SUBSCRIPTION);
|
||||||
|
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);
|
||||||
|
offset += 4;
|
||||||
|
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 c6e2e2de49e3d49fed1b5a43a94528c0c4aceafe
|
Loading…
Reference in New Issue
Block a user