using uint32_t as store_address requires explicit cast
This commit is contained in:
@ -10,7 +10,7 @@ void CFDPMessage::setCommand(CommandMessage *message, store_address_t cfdpPacket
|
||||
|
||||
store_address_t CFDPMessage::getStoreId(const CommandMessage *message) {
|
||||
store_address_t storeAddressCFDPPacket;
|
||||
storeAddressCFDPPacket = message->getParameter();
|
||||
storeAddressCFDPPacket = static_cast<store_address_t>(message->getParameter());
|
||||
return storeAddressCFDPPacket;
|
||||
}
|
||||
|
||||
|
@ -80,7 +80,7 @@ class HasLocalDataPoolIF {
|
||||
* clearing the store automatically
|
||||
*/
|
||||
virtual void handleChangedDataset(sid_t sid,
|
||||
store_address_t storeId = storeId::INVALID_STORE_ADDRESS,
|
||||
store_address_t storeId = store_address_t::invalid(),
|
||||
bool* clearMessage = nullptr) {
|
||||
if (clearMessage != nullptr) {
|
||||
*clearMessage = true;
|
||||
@ -100,7 +100,7 @@ class HasLocalDataPoolIF {
|
||||
* after the callback.
|
||||
*/
|
||||
virtual void handleChangedPoolVariable(gp_id_t gpid,
|
||||
store_address_t storeId = storeId::INVALID_STORE_ADDRESS,
|
||||
store_address_t storeId = store_address_t::invalid(),
|
||||
bool* clearMessage = nullptr) {
|
||||
if (clearMessage != nullptr) {
|
||||
*clearMessage = true;
|
||||
|
@ -44,7 +44,7 @@ store_address_t ParameterMessage::getParameterLoadCommand(const CommandMessage*
|
||||
*pfc = packedParamSettings >> 16 & 0xff;
|
||||
*rows = packedParamSettings >> 8 & 0xff;
|
||||
*columns = packedParamSettings & 0xff;
|
||||
return message->getParameter2();
|
||||
return static_cast<store_address_t>(message->getParameter2());
|
||||
}
|
||||
|
||||
void ParameterMessage::clear(CommandMessage* message) {
|
||||
|
@ -3,26 +3,26 @@
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
namespace storeId {
|
||||
static constexpr uint32_t INVALID_STORE_ADDRESS = 0xffffffff;
|
||||
}
|
||||
|
||||
/**
|
||||
* This union defines the type that identifies where a data packet is
|
||||
* stored in the store. It comprises of a raw part to read it as raw value and
|
||||
* a structured part to use it in pool-like stores.
|
||||
*/
|
||||
union store_address_t {
|
||||
public:
|
||||
static constexpr uint32_t INVALID_RAW = 0xffffffff;
|
||||
/**
|
||||
* Default Constructor, initializing to INVALID_ADDRESS
|
||||
*/
|
||||
store_address_t() : raw(storeId::INVALID_STORE_ADDRESS) {}
|
||||
store_address_t() : raw(INVALID_RAW) {}
|
||||
/**
|
||||
* Constructor to create an address object using the raw address
|
||||
*
|
||||
* @param rawAddress
|
||||
*/
|
||||
store_address_t(uint32_t rawAddress) : raw(rawAddress) {}
|
||||
explicit store_address_t(uint32_t rawAddress) : raw(rawAddress) {}
|
||||
|
||||
static store_address_t invalid() { return {}; };
|
||||
|
||||
/**
|
||||
* Constructor to create an address object using pool
|
||||
@ -52,6 +52,12 @@ union store_address_t {
|
||||
uint32_t raw;
|
||||
|
||||
bool operator==(const store_address_t& other) const { return raw == other.raw; }
|
||||
bool operator!=(const store_address_t& other) const { return raw != other.raw; }
|
||||
|
||||
store_address_t& operator=(const uint32_t rawAddr) {
|
||||
raw = rawAddr;
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
#endif /* FSFW_STORAGEMANAGER_STOREADDRESS_H_ */
|
||||
|
@ -58,3 +58,5 @@ void TmStoreHelper::setTimeStamper(TimeStamperIF& timeStamper_) {
|
||||
}
|
||||
|
||||
void TmStoreHelper::setApid(uint16_t apid) { creator.setApid(apid); }
|
||||
|
||||
PusTmCreator& TmStoreHelper::getCreatorRef() { return creator; }
|
||||
|
@ -15,6 +15,7 @@ class TmStoreHelper {
|
||||
|
||||
ReturnValue_t preparePacket(uint8_t service, uint8_t subservice, uint16_t counter);
|
||||
|
||||
PusTmCreator& getCreatorRef();
|
||||
void setTimeStamper(TimeStamperIF& timeStamper);
|
||||
[[nodiscard]] const store_address_t& getCurrentAddr() const;
|
||||
void setSourceDataRaw(const uint8_t* data, size_t len);
|
||||
|
@ -166,7 +166,7 @@ ReturnValue_t TmTcBridge::handleTmQueue() {
|
||||
}
|
||||
|
||||
ReturnValue_t TmTcBridge::storeDownlinkData(TmTcMessage* message) {
|
||||
store_address_t storeId = 0;
|
||||
store_address_t storeId;
|
||||
if (tmFifo == nullptr) {
|
||||
return HasReturnvaluesIF::RETURN_FAILED;
|
||||
}
|
||||
|
Reference in New Issue
Block a user