v10.7 #601
@ -17,7 +17,7 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
- q7s-package: v2.5.0
|
- q7s-package: v2.5.0
|
||||||
- STR firmware was updated to v10.3
|
- STR firmware was updated to v10.7. `wire` library still needs to be updated.
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
|
||||||
@ -27,6 +27,9 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
- Bugfix for STR where an invalid reply was received for special requests
|
- Bugfix for STR where an invalid reply was received for special requests
|
||||||
like firmware updates.
|
like firmware updates.
|
||||||
- Bugfix for shell command executors in command controller which lead to a crash.
|
- Bugfix for shell command executors in command controller which lead to a crash.
|
||||||
|
- Important bugfix for STR solution set. Missing STR mode u8 parameter.
|
||||||
|
- Fix for STR image download.
|
||||||
|
- Possible fix for STR image upload.
|
||||||
- Fixed regression where the reply result for ACS board and SUS board devices was set to FAILED
|
- Fixed regression where the reply result for ACS board and SUS board devices was set to FAILED
|
||||||
even when going to OFF mode. In that case, it has to be set to OK so the device handler can
|
even when going to OFF mode. In that case, it has to be set to OK so the device handler can
|
||||||
complete the OFF transition.
|
complete the OFF transition.
|
||||||
|
@ -369,7 +369,7 @@ ReturnValue_t CoreController::executeAction(ActionId_t actionId, MessageQueueId_
|
|||||||
return actionReboot(data, size);
|
return actionReboot(data, size);
|
||||||
}
|
}
|
||||||
case (EXECUTE_SHELL_CMD_BLOCKING): {
|
case (EXECUTE_SHELL_CMD_BLOCKING): {
|
||||||
std::string cmdToExecute = std::string(reinterpret_cast<const char*>(data), size);
|
std::string cmdToExecute = std::string(reinterpret_cast<const char *>(data), size);
|
||||||
int result = std::system(cmdToExecute.c_str());
|
int result = std::system(cmdToExecute.c_str());
|
||||||
if (result != 0) {
|
if (result != 0) {
|
||||||
// TODO: Data reply with returnalue maybe?
|
// TODO: Data reply with returnalue maybe?
|
||||||
@ -378,7 +378,7 @@ ReturnValue_t CoreController::executeAction(ActionId_t actionId, MessageQueueId_
|
|||||||
return EXECUTION_FINISHED;
|
return EXECUTION_FINISHED;
|
||||||
}
|
}
|
||||||
case (EXECUTE_SHELL_CMD_NON_BLOCKING): {
|
case (EXECUTE_SHELL_CMD_NON_BLOCKING): {
|
||||||
std::string cmdToExecute = std::string(reinterpret_cast<const char*>(data), size);
|
std::string cmdToExecute = std::string(reinterpret_cast<const char *>(data), size);
|
||||||
if (cmdExecutor.getCurrentState() == CommandExecutor::States::PENDING or
|
if (cmdExecutor.getCurrentState() == CommandExecutor::States::PENDING or
|
||||||
shellCmdIsExecuting) {
|
shellCmdIsExecuting) {
|
||||||
return HasActionsIF::IS_BUSY;
|
return HasActionsIF::IS_BUSY;
|
||||||
|
@ -17,6 +17,10 @@
|
|||||||
#include "mission/utility/ProgressPrinter.h"
|
#include "mission/utility/ProgressPrinter.h"
|
||||||
#include "mission/utility/Timestamp.h"
|
#include "mission/utility/Timestamp.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#include <sagitta/client/actionreq.h>
|
||||||
|
}
|
||||||
|
|
||||||
using namespace returnvalue;
|
using namespace returnvalue;
|
||||||
|
|
||||||
StrComHandler::StrComHandler(object_id_t objectId) : SystemObject(objectId) {
|
StrComHandler::StrComHandler(object_id_t objectId) : SystemObject(objectId) {
|
||||||
@ -305,6 +309,7 @@ ReturnValue_t StrComHandler::performImageUpload() {
|
|||||||
uint32_t imageSize = 0;
|
uint32_t imageSize = 0;
|
||||||
struct UploadActionRequest uploadReq;
|
struct UploadActionRequest uploadReq;
|
||||||
uploadReq.position = 0;
|
uploadReq.position = 0;
|
||||||
|
size_t writtenBytes = 0;
|
||||||
#ifdef XIPHOS_Q7S
|
#ifdef XIPHOS_Q7S
|
||||||
if (not sdcMan->getActiveSdCard()) {
|
if (not sdcMan->getActiveSdCard()) {
|
||||||
return HasFileSystemIF::FILESYSTEM_INACTIVE;
|
return HasFileSystemIF::FILESYSTEM_INACTIVE;
|
||||||
@ -327,7 +332,9 @@ ReturnValue_t StrComHandler::performImageUpload() {
|
|||||||
#if OBSW_DEBUG_STARTRACKER == 1
|
#if OBSW_DEBUG_STARTRACKER == 1
|
||||||
ProgressPrinter progressPrinter("Image upload", imageSize);
|
ProgressPrinter progressPrinter("Image upload", imageSize);
|
||||||
#endif /* OBSW_DEBUG_STARTRACKER == 1 */
|
#endif /* OBSW_DEBUG_STARTRACKER == 1 */
|
||||||
while ((uploadReq.position + 1) * SIZE_IMAGE_PART < imageSize) {
|
size_t fullChunks = imageSize / SIZE_IMAGE_PART;
|
||||||
|
size_t remainder = imageSize % SIZE_IMAGE_PART;
|
||||||
|
for (size_t idx = 0; idx < fullChunks; idx++) {
|
||||||
if (terminate) {
|
if (terminate) {
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
@ -346,6 +353,7 @@ ReturnValue_t StrComHandler::performImageUpload() {
|
|||||||
progressPrinter.print((uploadReq.position + 1) * SIZE_IMAGE_PART);
|
progressPrinter.print((uploadReq.position + 1) * SIZE_IMAGE_PART);
|
||||||
#endif /* OBSW_DEBUG_STARTRACKER == 1 */
|
#endif /* OBSW_DEBUG_STARTRACKER == 1 */
|
||||||
uploadReq.position++;
|
uploadReq.position++;
|
||||||
|
writtenBytes += SIZE_IMAGE_PART;
|
||||||
|
|
||||||
// This does a bit of delaying roughly every second
|
// This does a bit of delaying roughly every second
|
||||||
if (uploadReq.position % 50 == 0) {
|
if (uploadReq.position % 50 == 0) {
|
||||||
@ -353,20 +361,20 @@ ReturnValue_t StrComHandler::performImageUpload() {
|
|||||||
TaskFactory::delayTask(2);
|
TaskFactory::delayTask(2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::memset(uploadReq.data, 0, sizeof(uploadReq.data));
|
if (remainder > 0) {
|
||||||
uint32_t remainder = imageSize - uploadReq.position * SIZE_IMAGE_PART;
|
std::memset(uploadReq.data, 0, sizeof(uploadReq.data));
|
||||||
file.seekg(uploadReq.position * SIZE_IMAGE_PART, file.beg);
|
file.seekg(fullChunks * SIZE_IMAGE_PART, file.beg);
|
||||||
file.read(reinterpret_cast<char*>(uploadReq.data), remainder);
|
file.read(reinterpret_cast<char*>(uploadReq.data), remainder);
|
||||||
file.close();
|
file.close();
|
||||||
uploadReq.position++;
|
arc_pack_upload_action_req(&uploadReq, cmdBuf.data(), &size);
|
||||||
arc_pack_upload_action_req(&uploadReq, cmdBuf.data(), &size);
|
result = sendAndRead(size, uploadReq.position);
|
||||||
result = sendAndRead(size, uploadReq.position);
|
if (result != returnvalue::OK) {
|
||||||
if (result != returnvalue::OK) {
|
return returnvalue::FAILED;
|
||||||
return returnvalue::FAILED;
|
}
|
||||||
}
|
result = checkActionReply(replyLen);
|
||||||
result = checkActionReply(replyLen);
|
if (result != returnvalue::OK) {
|
||||||
if (result != returnvalue::OK) {
|
return result;
|
||||||
return result;
|
}
|
||||||
}
|
}
|
||||||
#if OBSW_DEBUG_STARTRACKER == 1
|
#if OBSW_DEBUG_STARTRACKER == 1
|
||||||
progressPrinter.print((uploadReq.position + 1) * SIZE_IMAGE_PART);
|
progressPrinter.print((uploadReq.position + 1) * SIZE_IMAGE_PART);
|
||||||
|
@ -18,10 +18,6 @@
|
|||||||
#include "fsfw/tasks/ExecutableObjectIF.h"
|
#include "fsfw/tasks/ExecutableObjectIF.h"
|
||||||
#include "fsfw_hal/linux/serial/SerialComIF.h"
|
#include "fsfw_hal/linux/serial/SerialComIF.h"
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
#include <sagitta/client/arc_client.h>
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Helper class for the star tracker handler to accelerate large data transfers.
|
* @brief Helper class for the star tracker handler to accelerate large data transfers.
|
||||||
*
|
*
|
||||||
@ -176,7 +172,7 @@ class StrComHandler : public SystemObject, public DeviceCommunicationIF, public
|
|||||||
static const uint32_t FLASH_REGION_SIZE = 0x20000;
|
static const uint32_t FLASH_REGION_SIZE = 0x20000;
|
||||||
|
|
||||||
struct ImageDownload {
|
struct ImageDownload {
|
||||||
static const uint32_t LAST_POSITION = 4095;
|
static const uint32_t LAST_POSITION = 4096;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint32_t MAX_POLLS = 10000;
|
static const uint32_t MAX_POLLS = 10000;
|
||||||
|
@ -1084,6 +1084,7 @@ ReturnValue_t StarTrackerHandler::initializeLocalDataPool(localpool::DataPool& l
|
|||||||
localDataPoolMap.emplace(startracker::LISA_QZ, new PoolEntry<float>({0}));
|
localDataPoolMap.emplace(startracker::LISA_QZ, new PoolEntry<float>({0}));
|
||||||
localDataPoolMap.emplace(startracker::LISA_PERC_CLOSE, new PoolEntry<float>({0}));
|
localDataPoolMap.emplace(startracker::LISA_PERC_CLOSE, new PoolEntry<float>({0}));
|
||||||
localDataPoolMap.emplace(startracker::LISA_NR_CLOSE, new PoolEntry<uint8_t>({0}));
|
localDataPoolMap.emplace(startracker::LISA_NR_CLOSE, new PoolEntry<uint8_t>({0}));
|
||||||
|
localDataPoolMap.emplace(startracker::STR_MODE, new PoolEntry<uint8_t>({0}));
|
||||||
localDataPoolMap.emplace(startracker::TRUST_WORTHY, new PoolEntry<uint8_t>({0}));
|
localDataPoolMap.emplace(startracker::TRUST_WORTHY, new PoolEntry<uint8_t>({0}));
|
||||||
localDataPoolMap.emplace(startracker::STABLE_COUNT, new PoolEntry<uint32_t>({0}));
|
localDataPoolMap.emplace(startracker::STABLE_COUNT, new PoolEntry<uint32_t>({0}));
|
||||||
localDataPoolMap.emplace(startracker::SOLUTION_STRATEGY, new PoolEntry<uint8_t>({0}));
|
localDataPoolMap.emplace(startracker::SOLUTION_STRATEGY, new PoolEntry<uint8_t>({0}));
|
||||||
|
@ -9,7 +9,7 @@ static const char PROPERTIES[] = "properties";
|
|||||||
static const char NAME[] = "name";
|
static const char NAME[] = "name";
|
||||||
static const char VALUE[] = "value";
|
static const char VALUE[] = "value";
|
||||||
|
|
||||||
static const char LIMITS[] = "limits";
|
static const char LIMITS[] = "Limits";
|
||||||
static const char ACTION[] = "action";
|
static const char ACTION[] = "action";
|
||||||
static const char FPGA18CURRENT[] = "FPGA18Current";
|
static const char FPGA18CURRENT[] = "FPGA18Current";
|
||||||
static const char FPGA25CURRENT[] = "FPGA25Current";
|
static const char FPGA25CURRENT[] = "FPGA25Current";
|
||||||
@ -22,20 +22,20 @@ static const char CMOSVRESCURRENT[] = "CMOSVResCurrent";
|
|||||||
static const char CMOS_TEMPERATURE[] = "CMOSTemperature";
|
static const char CMOS_TEMPERATURE[] = "CMOSTemperature";
|
||||||
static const char MCU_TEMPERATURE[] = "MCUTemperature";
|
static const char MCU_TEMPERATURE[] = "MCUTemperature";
|
||||||
|
|
||||||
static const char MOUNTING[] = "mounting";
|
static const char MOUNTING[] = "Mounting";
|
||||||
static const char qw[] = "qw";
|
static const char qw[] = "qw";
|
||||||
static const char qx[] = "qx";
|
static const char qx[] = "qx";
|
||||||
static const char qy[] = "qy";
|
static const char qy[] = "qy";
|
||||||
static const char qz[] = "qz";
|
static const char qz[] = "qz";
|
||||||
|
|
||||||
static const char IMAGE_PROCESSOR[] = "imageprocessor";
|
static const char IMAGE_PROCESSOR[] = "ImageProcessor";
|
||||||
static const char IMAGE_PROCESSOR_MODE[] = "mode";
|
static const char IMAGE_PROCESSOR_MODE[] = "mode";
|
||||||
static const char STORE[] = "store";
|
static const char STORE[] = "store";
|
||||||
static const char SIGNAL_THRESHOLD[] = "signalThreshold";
|
static const char SIGNAL_THRESHOLD[] = "signalThreshold";
|
||||||
static const char IMAGE_PROCESSOR_DARK_THRESHOLD[] = "darkThreshold";
|
static const char IMAGE_PROCESSOR_DARK_THRESHOLD[] = "darkThreshold";
|
||||||
static const char BACKGROUND_COMPENSATION[] = "backgroundcompensation";
|
static const char BACKGROUND_COMPENSATION[] = "backgroundcompensation";
|
||||||
|
|
||||||
static const char CAMERA[] = "camera";
|
static const char CAMERA[] = "Camera";
|
||||||
static const char MODE[] = "mode";
|
static const char MODE[] = "mode";
|
||||||
static const char FOCALLENGTH[] = "focallength";
|
static const char FOCALLENGTH[] = "focallength";
|
||||||
static const char EXPOSURE[] = "exposure";
|
static const char EXPOSURE[] = "exposure";
|
||||||
@ -77,7 +77,7 @@ static const char ENABLE_HISTOGRAM[] = "enableHistogram";
|
|||||||
static const char ENABLE_CONTRAST[] = "enableContrast";
|
static const char ENABLE_CONTRAST[] = "enableContrast";
|
||||||
static const char BIN_MODE[] = "binMode";
|
static const char BIN_MODE[] = "binMode";
|
||||||
|
|
||||||
static const char CENTROIDING[] = "centroiding";
|
static const char CENTROIDING[] = "Centroiding";
|
||||||
static const char ENABLE_FILTER[] = "enableFilter";
|
static const char ENABLE_FILTER[] = "enableFilter";
|
||||||
static const char MAX_QUALITY[] = "maxquality";
|
static const char MAX_QUALITY[] = "maxquality";
|
||||||
static const char DARK_THRESHOLD[] = "darkthreshold";
|
static const char DARK_THRESHOLD[] = "darkthreshold";
|
||||||
@ -92,7 +92,7 @@ static const char TRANSMATRIX_01[] = "transmatrix01";
|
|||||||
static const char TRANSMATRIX_10[] = "transmatrix10";
|
static const char TRANSMATRIX_10[] = "transmatrix10";
|
||||||
static const char TRANSMATRIX_11[] = "transmatrix11";
|
static const char TRANSMATRIX_11[] = "transmatrix11";
|
||||||
|
|
||||||
static const char LISA[] = "lisa";
|
static const char LISA[] = "LISA";
|
||||||
static const char LISA_MODE[] = "mode";
|
static const char LISA_MODE[] = "mode";
|
||||||
static const char PREFILTER_DIST_THRESHOLD[] = "prefilterDistThreshold";
|
static const char PREFILTER_DIST_THRESHOLD[] = "prefilterDistThreshold";
|
||||||
static const char PREFILTER_ANGLE_THRESHOLD[] = "prefilterAngleThreshold";
|
static const char PREFILTER_ANGLE_THRESHOLD[] = "prefilterAngleThreshold";
|
||||||
@ -108,29 +108,29 @@ static const char MAX_COMBINATIONS[] = "max_combinations";
|
|||||||
static const char NR_STARS_STOP[] = "nr_stars_stop";
|
static const char NR_STARS_STOP[] = "nr_stars_stop";
|
||||||
static const char FRACTION_CLOSE_STOP[] = "fraction_close_stop";
|
static const char FRACTION_CLOSE_STOP[] = "fraction_close_stop";
|
||||||
|
|
||||||
static const char MATCHING[] = "matching";
|
static const char MATCHING[] = "Matching";
|
||||||
static const char SQUARED_DISTANCE_LIMIT[] = "squaredDistanceLimit";
|
static const char SQUARED_DISTANCE_LIMIT[] = "squaredDistanceLimit";
|
||||||
static const char SQUARED_SHIFT_LIMIT[] = "squaredShiftLimit";
|
static const char SQUARED_SHIFT_LIMIT[] = "squaredShiftLimit";
|
||||||
|
|
||||||
static const char VALIDATION[] = "validation";
|
static const char VALIDATION[] = "Validation";
|
||||||
static const char STABLE_COUNT[] = "stable_count";
|
static const char STABLE_COUNT[] = "stable_count";
|
||||||
static const char MAX_DIFFERENCE[] = "max_difference";
|
static const char MAX_DIFFERENCE[] = "max_difference";
|
||||||
static const char MIN_TRACKER_CONFIDENCE[] = "min_trackerConfidence";
|
static const char MIN_TRACKER_CONFIDENCE[] = "min_trackerConfidence";
|
||||||
static const char MIN_MATCHED_STARS[] = "min_matchedStars";
|
static const char MIN_MATCHED_STARS[] = "min_matchedStars";
|
||||||
|
|
||||||
static const char TRACKING[] = "tracking";
|
static const char TRACKING[] = "Tracking";
|
||||||
static const char THIN_LIMIT[] = "thinLimit";
|
static const char THIN_LIMIT[] = "thinLimit";
|
||||||
static const char OUTLIER_THRESHOLD[] = "outlierThreshold";
|
static const char OUTLIER_THRESHOLD[] = "outlierThreshold";
|
||||||
static const char OUTLIER_THRESHOLD_QUEST[] = "outlierThresholdQUEST";
|
static const char OUTLIER_THRESHOLD_QUEST[] = "outlierThresholdQUEST";
|
||||||
static const char TRACKER_CHOICE[] = "trackerChoice";
|
static const char TRACKER_CHOICE[] = "trackerChoice";
|
||||||
|
|
||||||
static const char ALGO[] = "algo";
|
static const char ALGO[] = "Algo";
|
||||||
static const char L2T_MIN_CONFIDENCE[] = "l2t_minConfidence";
|
static const char L2T_MIN_CONFIDENCE[] = "l2t_minConfidence";
|
||||||
static const char L2T_MIN_MATCHED[] = "l2t_minMatched";
|
static const char L2T_MIN_MATCHED[] = "l2t_minMatched";
|
||||||
static const char T2L_MIN_CONFIDENCE[] = "t2l_minConfidence";
|
static const char T2L_MIN_CONFIDENCE[] = "t2l_minConfidence";
|
||||||
static const char T2L_MIN_MATCHED[] = "t2l_minMatched";
|
static const char T2L_MIN_MATCHED[] = "t2l_minMatched";
|
||||||
|
|
||||||
static const char LOGLEVEL[] = "loglevel";
|
static const char LOGLEVEL[] = "LogLevel";
|
||||||
static const char LOGLEVEL1[] = "loglevel1";
|
static const char LOGLEVEL1[] = "loglevel1";
|
||||||
static const char LOGLEVEL2[] = "loglevel2";
|
static const char LOGLEVEL2[] = "loglevel2";
|
||||||
static const char LOGLEVEL3[] = "loglevel3";
|
static const char LOGLEVEL3[] = "loglevel3";
|
||||||
@ -148,7 +148,7 @@ static const char LOGLEVEL14[] = "loglevel14";
|
|||||||
static const char LOGLEVEL15[] = "loglevel15";
|
static const char LOGLEVEL15[] = "loglevel15";
|
||||||
static const char LOGLEVEL16[] = "loglevel16";
|
static const char LOGLEVEL16[] = "loglevel16";
|
||||||
|
|
||||||
static const char SUBSCRIPTION[] = "subscription";
|
static const char SUBSCRIPTION[] = "Subscription";
|
||||||
static const char TELEMETRY_1[] = "telemetry1";
|
static const char TELEMETRY_1[] = "telemetry1";
|
||||||
static const char TELEMETRY_2[] = "telemetry2";
|
static const char TELEMETRY_2[] = "telemetry2";
|
||||||
static const char TELEMETRY_3[] = "telemetry3";
|
static const char TELEMETRY_3[] = "telemetry3";
|
||||||
@ -166,13 +166,13 @@ static const char TELEMETRY_14[] = "telemetry14";
|
|||||||
static const char TELEMETRY_15[] = "telemetry15";
|
static const char TELEMETRY_15[] = "telemetry15";
|
||||||
static const char TELEMETRY_16[] = "telemetry16";
|
static const char TELEMETRY_16[] = "telemetry16";
|
||||||
|
|
||||||
static const char LOG_SUBSCRIPTION[] = "logsubscription";
|
static const char LOG_SUBSCRIPTION[] = "LogSubscription";
|
||||||
static const char LEVEL1[] = "level1";
|
static const char LEVEL1[] = "level1";
|
||||||
static const char MODULE1[] = "module1";
|
static const char MODULE1[] = "module1";
|
||||||
static const char LEVEL2[] = "level2";
|
static const char LEVEL2[] = "level2";
|
||||||
static const char MODULE2[] = "module2";
|
static const char MODULE2[] = "module2";
|
||||||
|
|
||||||
static const char DEBUG_CAMERA[] = "debugcamera";
|
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";
|
||||||
|
|
||||||
|
@ -91,6 +91,7 @@ enum PoolIds : lp_id_t {
|
|||||||
LISA_QZ,
|
LISA_QZ,
|
||||||
LISA_PERC_CLOSE,
|
LISA_PERC_CLOSE,
|
||||||
LISA_NR_CLOSE,
|
LISA_NR_CLOSE,
|
||||||
|
STR_MODE,
|
||||||
TRUST_WORTHY,
|
TRUST_WORTHY,
|
||||||
STABLE_COUNT,
|
STABLE_COUNT,
|
||||||
SOLUTION_STRATEGY,
|
SOLUTION_STRATEGY,
|
||||||
@ -358,7 +359,7 @@ static const uint8_t VERSION_SET_ENTRIES = 5;
|
|||||||
static const uint8_t INTERFACE_SET_ENTRIES = 4;
|
static const uint8_t INTERFACE_SET_ENTRIES = 4;
|
||||||
static const uint8_t POWER_SET_ENTRIES = 18;
|
static const uint8_t POWER_SET_ENTRIES = 18;
|
||||||
static const uint8_t TIME_SET_ENTRIES = 4;
|
static const uint8_t TIME_SET_ENTRIES = 4;
|
||||||
static const uint8_t SOLUTION_SET_ENTRIES = 23;
|
static const uint8_t SOLUTION_SET_ENTRIES = 25;
|
||||||
static const uint8_t HISTOGRAM_SET_ENTRIES = 38;
|
static const uint8_t HISTOGRAM_SET_ENTRIES = 38;
|
||||||
static const uint8_t CHECKSUM_SET_ENTRIES = 1;
|
static const uint8_t CHECKSUM_SET_ENTRIES = 1;
|
||||||
static const uint8_t CAMERA_SET_ENTRIES = 24;
|
static const uint8_t CAMERA_SET_ENTRIES = 24;
|
||||||
@ -682,6 +683,7 @@ class SolutionSet : public StaticLocalDataSet<SOLUTION_SET_ENTRIES> {
|
|||||||
lp_var_t<float>(sid.objectId, PoolIds::LISA_PERC_CLOSE, this);
|
lp_var_t<float>(sid.objectId, PoolIds::LISA_PERC_CLOSE, this);
|
||||||
// Number of close stars in LISA solution
|
// Number of close stars in LISA solution
|
||||||
lp_var_t<uint8_t> lisaNrClose = lp_var_t<uint8_t>(sid.objectId, PoolIds::LISA_NR_CLOSE, this);
|
lp_var_t<uint8_t> lisaNrClose = lp_var_t<uint8_t>(sid.objectId, PoolIds::LISA_NR_CLOSE, this);
|
||||||
|
lp_var_t<uint8_t> strMode = lp_var_t<uint8_t>(sid.objectId, PoolIds::STR_MODE, this);
|
||||||
// Gives a combined overview of the validation parameters (1 for valid solution, otherwise 0)
|
// Gives a combined overview of the validation parameters (1 for valid solution, otherwise 0)
|
||||||
lp_var_t<uint8_t> isTrustWorthy = lp_var_t<uint8_t>(sid.objectId, PoolIds::TRUST_WORTHY, this);
|
lp_var_t<uint8_t> isTrustWorthy = lp_var_t<uint8_t>(sid.objectId, PoolIds::TRUST_WORTHY, this);
|
||||||
// Number of times the validation criteria was met
|
// Number of times the validation criteria was met
|
||||||
|
Loading…
Reference in New Issue
Block a user