31 void GenericHubComponentImpl ::send_data(
const HubType type,
39 dataOutAllocate_out(0, static_cast<U32>(size +
sizeof(U32) +
sizeof(U32) +
sizeof(
FwBuffSizeType)));
44 status = serialize.serializeFrom(static_cast<U32>(port));
46 status = serialize.serializeFrom(data, size);
48 outgoing.
setSize(static_cast<U32>(serialize.getSize()));
49 dataOut_out(0, outgoing);
58 bufferDeallocate_out(0, fwBuffer);
72 type =
static_cast<HubType>(type_in);
74 status = incoming.deserializeTo(port);
76 status = incoming.deserializeTo(size);
81 U32 rawSize =
static_cast<U32
>(fwBuffer.
getSize() -
sizeof(U32) -
sizeof(U32) -
sizeof(
FwBuffSizeType));
82 FW_ASSERT(rawSize == static_cast<U32>(size));
86 status = wrapper.setBuffLen(rawSize);
88 portOut_out(static_cast<FwIndexType>(port), wrapper);
90 dataInDeallocate_out(0, fwBuffer);
94 buffersOut_out(static_cast<FwIndexType>(port), fwBuffer);
104 status = incoming.deserializeTo(timeTag);
106 status = incoming.deserializeTo(severity);
108 status = incoming.deserializeTo(args);
112 this->LogSend_out(static_cast<FwIndexType>(port),
id, timeTag, severity, args);
115 dataInDeallocate_out(0, fwBuffer);
124 status = incoming.deserializeTo(timeTag);
126 status = incoming.deserializeTo(val);
130 this->TlmSend_out(static_cast<FwIndexType>(port),
id, timeTag, val);
133 dataInDeallocate_out(0, fwBuffer);
137 void GenericHubComponentImpl ::LogRecv_handler(
const FwIndexType portNum,
146 serializer.resetSer();
147 status = serializer.serializeFrom(
id);
149 status = serializer.serializeFrom(timeTag);
151 status = serializer.serializeFrom(severity);
153 status = serializer.serializeFrom(args);
156 this->send_data(HubType::HUB_TYPE_EVENT, portNum, buffer, size);
159 void GenericHubComponentImpl ::TlmRecv_handler(
const FwIndexType portNum,
166 serializer.resetSer();
167 status = serializer.serializeFrom(
id);
169 status = serializer.serializeFrom(timeTag);
171 status = serializer.serializeFrom(val);
174 this->send_data(HubType::HUB_TYPE_CHANNEL, portNum, buffer, size);
181 void GenericHubComponentImpl ::portIn_handler(
FwIndexType portNum,
Serialization/Deserialization operation was successful.
The size of the serial representation.
Buffer type transmission.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
void set(U8 *data, FwSizeType size, U32 context=NO_CONTEXT)
PlatformSizeType FwSizeType
void setSize(FwSizeType size)
Serializable::SizeType getSize() const override
Get current buffer size.
virtual U8 * getBuffAddr()=0
Get buffer address for data filling (non-const version)
FwSizeStoreType FwBuffSizeType
SerializeStatus
forward declaration for string
ExternalSerializeBufferWithMemberCopy getDeserializer()
FwIdType FwEventIdType
The type of an event identifier.
External serialize buffer with no copy semantics.
FwIdType FwChanIdType
The type of a telemetry channel identifier.
Enum representing event severity.
GenericHubComponentImpl(const char *const compName)
uint8_t U8
8-bit unsigned integer
FwSizeType getSize() const
~GenericHubComponentImpl()
PlatformIndexType FwIndexType
RateGroupDivider component implementation.
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
ExternalSerializeBufferWithMemberCopy getSerializer()
#define FW_PORT_SERIALIZATION
calls for multi-note systems)