relax sus fdir
This commit is contained in:
parent
de35764ede
commit
196823b2e0
@ -18,6 +18,14 @@ will consitute of a breaking change warranting a new major release:
|
|||||||
|
|
||||||
# [v4.0.0] to be released
|
# [v4.0.0] to be released
|
||||||
|
|
||||||
|
# [v3.1.0] to be released
|
||||||
|
|
||||||
|
## Changed
|
||||||
|
|
||||||
|
- Relaxed SUS FDIR. The devices have shown to be glitchy in orbit, but still see to deliver
|
||||||
|
sensible raw values most of the time. Some further testing is necessary, but some changes in the
|
||||||
|
code should cause the SUS devices to remain healthy for now.
|
||||||
|
|
||||||
# [v3.0.0] to be released
|
# [v3.0.0] to be released
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 295 translations.
|
* @brief Auto-generated event translation file. Contains 296 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-05-17 17:15:34
|
* Generated on: 2023-06-13 07:42:34
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -300,6 +300,7 @@ const char *DUMP_NOK_CANCELLED_STRING = "DUMP_NOK_CANCELLED";
|
|||||||
const char *DUMP_MISC_CANCELLED_STRING = "DUMP_MISC_CANCELLED";
|
const char *DUMP_MISC_CANCELLED_STRING = "DUMP_MISC_CANCELLED";
|
||||||
const char *DUMP_HK_CANCELLED_STRING = "DUMP_HK_CANCELLED";
|
const char *DUMP_HK_CANCELLED_STRING = "DUMP_HK_CANCELLED";
|
||||||
const char *DUMP_CFDP_CANCELLED_STRING = "DUMP_CFDP_CANCELLED";
|
const char *DUMP_CFDP_CANCELLED_STRING = "DUMP_CFDP_CANCELLED";
|
||||||
|
const char *TEMPERATURE_IS_ALL_ONES_STRING = "TEMPERATURE_IS_ALL_ONES";
|
||||||
|
|
||||||
const char *translateEvents(Event event) {
|
const char *translateEvents(Event event) {
|
||||||
switch ((event & 0xFFFF)) {
|
switch ((event & 0xFFFF)) {
|
||||||
@ -893,6 +894,8 @@ const char *translateEvents(Event event) {
|
|||||||
return DUMP_HK_CANCELLED_STRING;
|
return DUMP_HK_CANCELLED_STRING;
|
||||||
case (14314):
|
case (14314):
|
||||||
return DUMP_CFDP_CANCELLED_STRING;
|
return DUMP_CFDP_CANCELLED_STRING;
|
||||||
|
case (14500):
|
||||||
|
return TEMPERATURE_IS_ALL_ONES_STRING;
|
||||||
default:
|
default:
|
||||||
return "UNKNOWN_EVENT";
|
return "UNKNOWN_EVENT";
|
||||||
}
|
}
|
||||||
|
@ -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-05-17 17:15:34
|
* Generated on: 2023-06-13 07:42:34
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ enum : uint8_t {
|
|||||||
COM_SUBSYSTEM = 142,
|
COM_SUBSYSTEM = 142,
|
||||||
PERSISTENT_TM_STORE = 143,
|
PERSISTENT_TM_STORE = 143,
|
||||||
SYRLINKS_COM = 144,
|
SYRLINKS_COM = 144,
|
||||||
|
SUS_HANDLER = 145,
|
||||||
COMMON_SUBSYSTEM_ID_END
|
COMMON_SUBSYSTEM_ID_END
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -294,3 +294,4 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
14312;0x37e8;DUMP_MISC_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
14312;0x37e8;DUMP_MISC_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
||||||
14313;0x37e9;DUMP_HK_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
14313;0x37e9;DUMP_HK_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
||||||
14314;0x37ea;DUMP_CFDP_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
14314;0x37ea;DUMP_CFDP_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
||||||
|
14500;0x38a4;TEMPERATURE_IS_ALL_ONES;LOW;No description;mission/acs/SusHandler.h
|
||||||
|
|
@ -60,3 +60,4 @@
|
|||||||
142;COM_SUBSYSTEM
|
142;COM_SUBSYSTEM
|
||||||
143;PERSISTENT_TM_STORE
|
143;PERSISTENT_TM_STORE
|
||||||
144;SYRLINKS_COM
|
144;SYRLINKS_COM
|
||||||
|
145;SUS_HANDLER
|
||||||
|
|
@ -294,3 +294,4 @@ Event ID (dec); Event ID (hex); Name; Severity; Description; File Path
|
|||||||
14312;0x37e8;DUMP_MISC_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
14312;0x37e8;DUMP_MISC_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
||||||
14313;0x37e9;DUMP_HK_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
14313;0x37e9;DUMP_HK_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
||||||
14314;0x37ea;DUMP_CFDP_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
14314;0x37ea;DUMP_CFDP_CANCELLED;LOW;P1: Number of dumped packets. P2: Total dumped bytes.;mission/persistentTmStoreDefs.h
|
||||||
|
14500;0x38a4;TEMPERATURE_IS_ALL_ONES;LOW;No description;mission/acs/SusHandler.h
|
||||||
|
|
@ -60,3 +60,4 @@
|
|||||||
142;COM_SUBSYSTEM
|
142;COM_SUBSYSTEM
|
||||||
143;PERSISTENT_TM_STORE
|
143;PERSISTENT_TM_STORE
|
||||||
144;SYRLINKS_COM
|
144;SYRLINKS_COM
|
||||||
|
145;SUS_HANDLER
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 295 translations.
|
* @brief Auto-generated event translation file. Contains 296 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-05-17 17:15:34
|
* Generated on: 2023-06-13 07:42:34
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -300,6 +300,7 @@ const char *DUMP_NOK_CANCELLED_STRING = "DUMP_NOK_CANCELLED";
|
|||||||
const char *DUMP_MISC_CANCELLED_STRING = "DUMP_MISC_CANCELLED";
|
const char *DUMP_MISC_CANCELLED_STRING = "DUMP_MISC_CANCELLED";
|
||||||
const char *DUMP_HK_CANCELLED_STRING = "DUMP_HK_CANCELLED";
|
const char *DUMP_HK_CANCELLED_STRING = "DUMP_HK_CANCELLED";
|
||||||
const char *DUMP_CFDP_CANCELLED_STRING = "DUMP_CFDP_CANCELLED";
|
const char *DUMP_CFDP_CANCELLED_STRING = "DUMP_CFDP_CANCELLED";
|
||||||
|
const char *TEMPERATURE_IS_ALL_ONES_STRING = "TEMPERATURE_IS_ALL_ONES";
|
||||||
|
|
||||||
const char *translateEvents(Event event) {
|
const char *translateEvents(Event event) {
|
||||||
switch ((event & 0xFFFF)) {
|
switch ((event & 0xFFFF)) {
|
||||||
@ -893,6 +894,8 @@ const char *translateEvents(Event event) {
|
|||||||
return DUMP_HK_CANCELLED_STRING;
|
return DUMP_HK_CANCELLED_STRING;
|
||||||
case (14314):
|
case (14314):
|
||||||
return DUMP_CFDP_CANCELLED_STRING;
|
return DUMP_CFDP_CANCELLED_STRING;
|
||||||
|
case (14500):
|
||||||
|
return TEMPERATURE_IS_ALL_ONES_STRING;
|
||||||
default:
|
default:
|
||||||
return "UNKNOWN_EVENT";
|
return "UNKNOWN_EVENT";
|
||||||
}
|
}
|
||||||
|
@ -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-05-17 17:15:34
|
* Generated on: 2023-06-13 07:42:34
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -172,9 +172,6 @@ ReturnValue_t SusPolling::handleSusPolling() {
|
|||||||
susDevs[idx].ownReply.tempRaw = ((rawReply[0] & 0x0f) << 8) | rawReply[1];
|
susDevs[idx].ownReply.tempRaw = ((rawReply[0] & 0x0f) << 8) | rawReply[1];
|
||||||
// Reply is all ones. Sensor is probably off or faulty when
|
// Reply is all ones. Sensor is probably off or faulty when
|
||||||
// it should not be.
|
// it should not be.
|
||||||
if (susDevs[idx].ownReply.tempRaw == 0x0fff) {
|
|
||||||
susDevs[idx].replyResult = returnvalue::FAILED;
|
|
||||||
} else {
|
|
||||||
susDevs[idx].replyResult = returnvalue::OK;
|
susDevs[idx].replyResult = returnvalue::OK;
|
||||||
for (unsigned chIdx = 0; chIdx < 6; chIdx++) {
|
for (unsigned chIdx = 0; chIdx < 6; chIdx++) {
|
||||||
susDevs[idx].ownReply.channelsRaw[chIdx] =
|
susDevs[idx].ownReply.channelsRaw[chIdx] =
|
||||||
@ -183,7 +180,6 @@ ReturnValue_t SusPolling::handleSusPolling() {
|
|||||||
susDevs[idx].ownReply.dataWasSet = true;
|
susDevs[idx].ownReply.dataWasSet = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @brief Auto-generated event translation file. Contains 295 translations.
|
* @brief Auto-generated event translation file. Contains 296 translations.
|
||||||
* @details
|
* @details
|
||||||
* Generated on: 2023-05-17 17:15:34
|
* Generated on: 2023-06-13 07:42:34
|
||||||
*/
|
*/
|
||||||
#include "translateEvents.h"
|
#include "translateEvents.h"
|
||||||
|
|
||||||
@ -300,6 +300,7 @@ const char *DUMP_NOK_CANCELLED_STRING = "DUMP_NOK_CANCELLED";
|
|||||||
const char *DUMP_MISC_CANCELLED_STRING = "DUMP_MISC_CANCELLED";
|
const char *DUMP_MISC_CANCELLED_STRING = "DUMP_MISC_CANCELLED";
|
||||||
const char *DUMP_HK_CANCELLED_STRING = "DUMP_HK_CANCELLED";
|
const char *DUMP_HK_CANCELLED_STRING = "DUMP_HK_CANCELLED";
|
||||||
const char *DUMP_CFDP_CANCELLED_STRING = "DUMP_CFDP_CANCELLED";
|
const char *DUMP_CFDP_CANCELLED_STRING = "DUMP_CFDP_CANCELLED";
|
||||||
|
const char *TEMPERATURE_IS_ALL_ONES_STRING = "TEMPERATURE_IS_ALL_ONES";
|
||||||
|
|
||||||
const char *translateEvents(Event event) {
|
const char *translateEvents(Event event) {
|
||||||
switch ((event & 0xFFFF)) {
|
switch ((event & 0xFFFF)) {
|
||||||
@ -893,6 +894,8 @@ const char *translateEvents(Event event) {
|
|||||||
return DUMP_HK_CANCELLED_STRING;
|
return DUMP_HK_CANCELLED_STRING;
|
||||||
case (14314):
|
case (14314):
|
||||||
return DUMP_CFDP_CANCELLED_STRING;
|
return DUMP_CFDP_CANCELLED_STRING;
|
||||||
|
case (14500):
|
||||||
|
return TEMPERATURE_IS_ALL_ONES_STRING;
|
||||||
default:
|
default:
|
||||||
return "UNKNOWN_EVENT";
|
return "UNKNOWN_EVENT";
|
||||||
}
|
}
|
||||||
|
@ -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-05-17 17:15:34
|
* Generated on: 2023-06-13 07:42:34
|
||||||
*/
|
*/
|
||||||
#include "translateObjects.h"
|
#include "translateObjects.h"
|
||||||
|
|
||||||
|
@ -87,6 +87,21 @@ ReturnValue_t SusHandler::interpretDeviceReply(DeviceCommandId_t id, const uint8
|
|||||||
commandExecuted = true;
|
commandExecuted = true;
|
||||||
}
|
}
|
||||||
PoolReadGuard pg(&dataset);
|
PoolReadGuard pg(&dataset);
|
||||||
|
// In a previous stricter FDIR variant, this was considered faulty communication and was already
|
||||||
|
// handled in the communication interface. However, the SUS devices probably glitch in orbit,
|
||||||
|
// so the FDIR was relaxed. The fault case check previously used now only leads to the dataset
|
||||||
|
// being marked invalid, shifting more responsibility of determining and setting SUS devices
|
||||||
|
// faulty to the operator.
|
||||||
|
|
||||||
|
// UPDATE: Step1: First determine how often and whether this happens at all
|
||||||
|
if (reply->tempRaw == 0xfff) {
|
||||||
|
if (faultyDataEventCd.hasTimedOut()) {
|
||||||
|
triggerEvent(TEMPERATURE_IS_ALL_ONES);
|
||||||
|
faultyDataEventCd.resetTimer();
|
||||||
|
}
|
||||||
|
// dataset.setValidity(false, true);
|
||||||
|
// return returnvalue::OK;
|
||||||
|
}
|
||||||
dataset.setValidity(true, true);
|
dataset.setValidity(true, true);
|
||||||
dataset.tempC = max1227::getTemperature(reply->tempRaw);
|
dataset.tempC = max1227::getTemperature(reply->tempRaw);
|
||||||
std::memcpy(dataset.channels.value, reply->channelsRaw, sizeof(reply->channelsRaw));
|
std::memcpy(dataset.channels.value, reply->channelsRaw, sizeof(reply->channelsRaw));
|
||||||
|
@ -15,7 +15,9 @@ class SusHandler : public DeviceHandlerBase {
|
|||||||
static constexpr DeviceCommandId_t REPLY = 0x77;
|
static constexpr DeviceCommandId_t REPLY = 0x77;
|
||||||
|
|
||||||
static const uint8_t INTERFACE_ID = CLASS_ID::SUS_HANDLER;
|
static const uint8_t INTERFACE_ID = CLASS_ID::SUS_HANDLER;
|
||||||
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::SUS_BOARD_ASS;
|
static const uint8_t SUBSYSTEM_ID = SUBSYSTEM_ID::SUS_HANDLER;
|
||||||
|
|
||||||
|
static constexpr Event TEMPERATURE_IS_ALL_ONES = event::makeEvent(SUBSYSTEM_ID, 0, severity::LOW);
|
||||||
|
|
||||||
SusHandler(uint32_t objectId, uint8_t susIdx, object_id_t deviceCommunication,
|
SusHandler(uint32_t objectId, uint8_t susIdx, object_id_t deviceCommunication,
|
||||||
CookieIF *comCookie);
|
CookieIF *comCookie);
|
||||||
@ -43,6 +45,7 @@ class SusHandler : public DeviceHandlerBase {
|
|||||||
LocalPoolDataSetBase *getDataSetHandle(sid_t sid) override;
|
LocalPoolDataSetBase *getDataSetHandle(sid_t sid) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Countdown faultyDataEventCd = Countdown(60000);
|
||||||
susMax1227::SusDataset dataset;
|
susMax1227::SusDataset dataset;
|
||||||
acs::SusRequest request{};
|
acs::SusRequest request{};
|
||||||
uint8_t susIdx;
|
uint8_t susIdx;
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
|
|
||||||
class ActuatorCmd {
|
class ActuatorCmd {
|
||||||
public:
|
public:
|
||||||
ActuatorCmd();
|
ActuatorCmd();
|
||||||
|
2
tmtc
2
tmtc
@ -1 +1 @@
|
|||||||
Subproject commit 6182369e4f40872c5c26e59be25d5fa79339176a
|
Subproject commit 00205f0e759970dda3bdd06150bbe85297f9d176
|
Loading…
Reference in New Issue
Block a user