Merge remote-tracking branch 'origin/develop' into mueller/acs-ss-init
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
All checks were successful
EIVE/eive-obsw/pipeline/pr-develop This commit looks good
This commit is contained in:
@ -52,8 +52,8 @@ ReturnValue_t PCDUHandler::initialize() {
|
||||
return returnvalue::FAILED;
|
||||
}
|
||||
result = pdu2Handler->getSubscriptionInterface()->subscribeForSetUpdateMessage(
|
||||
static_cast<uint32_t>(P60System::SetIds::PDU_2_CORE), this->getObjectId(),
|
||||
commandQueue->getId(), true);
|
||||
static_cast<uint32_t>(P60System::SetIds::CORE), this->getObjectId(), commandQueue->getId(),
|
||||
true);
|
||||
if (result != returnvalue::OK) {
|
||||
sif::error << "PCDUHandler::initialize: Failed to subscribe for set update messages from "
|
||||
<< "PDU2Handler" << std::endl;
|
||||
@ -68,8 +68,8 @@ ReturnValue_t PCDUHandler::initialize() {
|
||||
return returnvalue::FAILED;
|
||||
}
|
||||
result = pdu1Handler->getSubscriptionInterface()->subscribeForSetUpdateMessage(
|
||||
static_cast<uint32_t>(P60System::SetIds::PDU_1_CORE), this->getObjectId(),
|
||||
commandQueue->getId(), true);
|
||||
static_cast<uint32_t>(P60System::SetIds::CORE), this->getObjectId(), commandQueue->getId(),
|
||||
true);
|
||||
if (result != returnvalue::OK) {
|
||||
sif::error << "PCDUHandler::initialize: Failed to subscribe for set update messages from "
|
||||
<< "PDU1Handler" << std::endl;
|
||||
@ -110,11 +110,10 @@ void PCDUHandler::readCommandQueue() {
|
||||
MessageQueueId_t PCDUHandler::getCommandQueue() const { return commandQueue->getId(); }
|
||||
|
||||
void PCDUHandler::handleChangedDataset(sid_t sid, store_address_t storeId, bool* clearMessage) {
|
||||
if (sid == sid_t(objects::PDU2_HANDLER, static_cast<uint32_t>(P60System::SetIds::PDU_2_CORE))) {
|
||||
if (sid == sid_t(objects::PDU2_HANDLER, static_cast<uint32_t>(P60System::SetIds::CORE))) {
|
||||
updateHkTableDataset(storeId, &pdu2CoreHk, &timeStampPdu2HkDataset);
|
||||
updatePdu2SwitchStates();
|
||||
} else if (sid ==
|
||||
sid_t(objects::PDU1_HANDLER, static_cast<uint32_t>(P60System::SetIds::PDU_1_CORE))) {
|
||||
} else if (sid == sid_t(objects::PDU1_HANDLER, static_cast<uint32_t>(P60System::SetIds::CORE))) {
|
||||
updateHkTableDataset(storeId, &pdu1CoreHk, &timeStampPdu1HkDataset);
|
||||
updatePdu1SwitchStates();
|
||||
} else {
|
||||
|
@ -33,6 +33,7 @@ void PayloadPcduHandler::doStartUp() {
|
||||
if (pwrStateMachine.getState() == power::States::IDLE) {
|
||||
pwrStateMachine.start(MODE_ON, pwrSubmode);
|
||||
}
|
||||
clearSetOnOffFlag = true;
|
||||
auto opCode = pwrStateMachine.fsm();
|
||||
if (opCode == power::OpCodes::TO_NOT_OFF_DONE or opCode == power::OpCodes::TIMEOUT_OCCURED) {
|
||||
pwrStateMachine.reset();
|
||||
@ -50,6 +51,11 @@ void PayloadPcduHandler::doShutDown() {
|
||||
if (pwrStateMachine.getState() == power::States::IDLE) {
|
||||
pwrStateMachine.start(MODE_OFF, 0);
|
||||
}
|
||||
if (clearSetOnOffFlag) {
|
||||
std::memset(adcSet.processed.value, 0, adcSet.processed.getSerializedSize());
|
||||
clearSetOnOffFlag = false;
|
||||
}
|
||||
|
||||
auto opCode = pwrStateMachine.fsm();
|
||||
if (opCode == power::OpCodes::TO_OFF_DONE or opCode == power::OpCodes::TIMEOUT_OCCURED) {
|
||||
pwrStateMachine.reset();
|
||||
|
@ -124,6 +124,7 @@ class PayloadPcduHandler : public DeviceHandlerBase {
|
||||
bool txToMpaInjectionRequested = false;
|
||||
bool mpaToHpaInjectionRequested = false;
|
||||
bool allOnInjectRequested = false;
|
||||
bool clearSetOnOffFlag = true;
|
||||
|
||||
PeriodicOperationDivider opDivider = PeriodicOperationDivider(5);
|
||||
uint8_t tempReadDivisor = 1;
|
||||
|
@ -304,9 +304,9 @@ ReturnValue_t RwHandler::checkSpeedAndRampTime(const uint8_t* commandData, size_
|
||||
return INVALID_SPEED;
|
||||
}
|
||||
|
||||
uint16_t rampTime = *(commandData + 4) << 8 | *(commandData + 5);
|
||||
uint16_t rampTime = (*(commandData + 4) << 8) | *(commandData + 5);
|
||||
|
||||
if (rampTime < 10 || rampTime > 10000) {
|
||||
if (rampTime < 10 || rampTime > 20000) {
|
||||
sif::error << "RwHandler::checkSpeedAndRampTime: Command has invalid ramp time" << std::endl;
|
||||
return INVALID_RAMP_TIME;
|
||||
}
|
||||
|
@ -102,19 +102,7 @@ namespace P60System {
|
||||
|
||||
enum class BatteryModes : uint8_t { CRITICAL = 1, SAFE = 2, NORMAL = 3, FULL = 4 };
|
||||
|
||||
enum class SetIds : uint32_t {
|
||||
PDU_1_CORE = 1,
|
||||
PDU_1_AUX = 2,
|
||||
PDU_2_CORE = 3,
|
||||
PDU_2_AUX = 4,
|
||||
P60_CORE = 5,
|
||||
P60_AUX = 6,
|
||||
ACU_CORE = 7,
|
||||
ACU_AUX = 8,
|
||||
|
||||
PDU_1_CONFIG = 9,
|
||||
PDU_2_CONFIG = 10
|
||||
};
|
||||
enum class SetIds : uint32_t { CORE = 1, AUX = 2, CONFIG = 3 };
|
||||
|
||||
} // namespace P60System
|
||||
|
||||
@ -217,10 +205,10 @@ static const uint8_t HK_TABLE_ENTRIES = 100;
|
||||
class CoreHkSet : public StaticLocalDataSet<16> {
|
||||
public:
|
||||
CoreHkSet(HasLocalDataPoolIF* owner)
|
||||
: StaticLocalDataSet(owner, static_cast<uint32_t>(::P60System::SetIds::P60_CORE)) {}
|
||||
: StaticLocalDataSet(owner, static_cast<uint32_t>(::P60System::SetIds::CORE)) {}
|
||||
|
||||
CoreHkSet(object_id_t objectId)
|
||||
: StaticLocalDataSet(sid_t(objectId, static_cast<uint32_t>(::P60System::SetIds::P60_CORE))) {}
|
||||
: StaticLocalDataSet(sid_t(objectId, static_cast<uint32_t>(::P60System::SetIds::CORE))) {}
|
||||
|
||||
/** Measured output currents */
|
||||
lp_vec_t<int16_t, P60Dock::hk::Index::CHNLS_LEN> currents =
|
||||
@ -254,10 +242,10 @@ class CoreHkSet : public StaticLocalDataSet<16> {
|
||||
class HkTableDataset : public StaticLocalDataSet<32> {
|
||||
public:
|
||||
HkTableDataset(HasLocalDataPoolIF* owner)
|
||||
: StaticLocalDataSet(owner, static_cast<uint32_t>(::P60System::SetIds::P60_AUX)) {}
|
||||
: StaticLocalDataSet(owner, static_cast<uint32_t>(::P60System::SetIds::AUX)) {}
|
||||
|
||||
HkTableDataset(object_id_t objectId)
|
||||
: StaticLocalDataSet(sid_t(objectId, static_cast<uint32_t>(::P60System::SetIds::P60_AUX))) {}
|
||||
: StaticLocalDataSet(sid_t(objectId, static_cast<uint32_t>(::P60System::SetIds::AUX))) {}
|
||||
|
||||
/** Number of detected latchups on each output channel */
|
||||
lp_vec_t<uint16_t, P60Dock::hk::Index::CHNLS_LEN> latchups =
|
||||
@ -545,25 +533,25 @@ static const uint16_t CONFIG_ADDRESS_OUT_EN_CHANNEL8 = 0x50;
|
||||
class Pdu1CoreHk : public ::PDU::PduCoreHk {
|
||||
public:
|
||||
Pdu1CoreHk(HasLocalDataPoolIF* owner)
|
||||
: PduCoreHk(owner, static_cast<uint32_t>(::P60System::SetIds::PDU_1_CORE)) {}
|
||||
: PduCoreHk(owner, static_cast<uint32_t>(::P60System::SetIds::CORE)) {}
|
||||
|
||||
Pdu1CoreHk(object_id_t objectId)
|
||||
: PduCoreHk(objectId, static_cast<uint32_t>(::P60System::SetIds::PDU_1_CORE)) {}
|
||||
: PduCoreHk(objectId, static_cast<uint32_t>(::P60System::SetIds::CORE)) {}
|
||||
};
|
||||
|
||||
class Pdu1AuxHk : public ::PDU::PduAuxHk {
|
||||
public:
|
||||
Pdu1AuxHk(HasLocalDataPoolIF* owner)
|
||||
: PduAuxHk(owner, static_cast<uint32_t>(::P60System::SetIds::PDU_1_AUX)) {}
|
||||
: PduAuxHk(owner, static_cast<uint32_t>(::P60System::SetIds::AUX)) {}
|
||||
|
||||
Pdu1AuxHk(object_id_t objectId)
|
||||
: PduAuxHk(objectId, static_cast<uint32_t>(::P60System::SetIds::PDU_1_AUX)) {}
|
||||
: PduAuxHk(objectId, static_cast<uint32_t>(::P60System::SetIds::AUX)) {}
|
||||
};
|
||||
|
||||
class Pdu1Config : public ::PDU::PduConfig {
|
||||
public:
|
||||
Pdu1Config(HasLocalDataPoolIF* owner)
|
||||
: PduConfig(owner, static_cast<uint32_t>(::P60System::SetIds::PDU_1_CONFIG)) {}
|
||||
: PduConfig(owner, static_cast<uint32_t>(::P60System::SetIds::CONFIG)) {}
|
||||
};
|
||||
|
||||
} // namespace PDU1
|
||||
@ -600,25 +588,25 @@ static const uint16_t CONFIG_ADDRESS_OUT_EN_PAYLOAD_CAMERA = 0x50;
|
||||
class Pdu2CoreHk : public ::PDU::PduCoreHk {
|
||||
public:
|
||||
Pdu2CoreHk(HasLocalDataPoolIF* owner)
|
||||
: PduCoreHk(owner, static_cast<uint32_t>(::P60System::SetIds::PDU_2_CORE)) {}
|
||||
: PduCoreHk(owner, static_cast<uint32_t>(::P60System::SetIds::CORE)) {}
|
||||
|
||||
Pdu2CoreHk(object_id_t objectId)
|
||||
: PduCoreHk(objectId, static_cast<uint32_t>(::P60System::SetIds::PDU_2_CORE)) {}
|
||||
: PduCoreHk(objectId, static_cast<uint32_t>(::P60System::SetIds::CORE)) {}
|
||||
};
|
||||
|
||||
class Pdu2AuxHk : public ::PDU::PduAuxHk {
|
||||
public:
|
||||
Pdu2AuxHk(HasLocalDataPoolIF* owner)
|
||||
: PduAuxHk(owner, static_cast<uint32_t>(::P60System::SetIds::PDU_2_AUX)) {}
|
||||
: PduAuxHk(owner, static_cast<uint32_t>(::P60System::SetIds::AUX)) {}
|
||||
|
||||
Pdu2AuxHk(object_id_t objectId)
|
||||
: PduAuxHk(objectId, static_cast<uint32_t>(::P60System::SetIds::PDU_2_AUX)) {}
|
||||
: PduAuxHk(objectId, static_cast<uint32_t>(::P60System::SetIds::AUX)) {}
|
||||
};
|
||||
|
||||
class Pdu2Config : public ::PDU::PduConfig {
|
||||
public:
|
||||
Pdu2Config(HasLocalDataPoolIF* owner)
|
||||
: PduConfig(owner, static_cast<uint32_t>(::P60System::SetIds::PDU_2_CONFIG)) {}
|
||||
: PduConfig(owner, static_cast<uint32_t>(::P60System::SetIds::CONFIG)) {}
|
||||
};
|
||||
|
||||
} // namespace PDU2
|
||||
@ -661,10 +649,10 @@ static const size_t MAX_REPLY_SIZE = HK_TABLE_SIZE;
|
||||
class CoreHk : public StaticLocalDataSet<14> {
|
||||
public:
|
||||
CoreHk(HasLocalDataPoolIF* owner)
|
||||
: StaticLocalDataSet(owner, static_cast<uint32_t>(::P60System::SetIds::ACU_CORE)) {}
|
||||
: StaticLocalDataSet(owner, static_cast<uint32_t>(::P60System::SetIds::CORE)) {}
|
||||
|
||||
CoreHk(object_id_t objectId)
|
||||
: StaticLocalDataSet(sid_t(objectId, static_cast<uint32_t>(::P60System::SetIds::ACU_CORE))) {}
|
||||
: StaticLocalDataSet(sid_t(objectId, static_cast<uint32_t>(::P60System::SetIds::CORE))) {}
|
||||
|
||||
lp_var_t<uint8_t> mpptMode = lp_var_t<uint8_t>(sid.objectId, pool::ACU_MPPT_MODE, this);
|
||||
|
||||
@ -694,10 +682,10 @@ class CoreHk : public StaticLocalDataSet<14> {
|
||||
class AuxHk : public StaticLocalDataSet<12> {
|
||||
public:
|
||||
AuxHk(HasLocalDataPoolIF* owner)
|
||||
: StaticLocalDataSet(owner, static_cast<uint32_t>(::P60System::SetIds::ACU_AUX)) {}
|
||||
: StaticLocalDataSet(owner, static_cast<uint32_t>(::P60System::SetIds::AUX)) {}
|
||||
|
||||
AuxHk(object_id_t objectId)
|
||||
: StaticLocalDataSet(sid_t(objectId, static_cast<uint32_t>(::P60System::SetIds::ACU_AUX))) {}
|
||||
: StaticLocalDataSet(sid_t(objectId, static_cast<uint32_t>(::P60System::SetIds::AUX))) {}
|
||||
|
||||
lp_vec_t<uint8_t, 3> dacEnables = lp_vec_t<uint8_t, 3>(sid.objectId, pool::ACU_DAC_ENABLES, this);
|
||||
|
||||
|
Reference in New Issue
Block a user