/* * CmdPacket.cpp * * Created on: May 24, 2014 * Author: Timothy Canham */ #include #include #include namespace Fw { CmdPacket::CmdPacket() : m_opcode(0) { this->m_type = ComPacketType::FW_PACKET_COMMAND; } CmdPacket::~CmdPacket() {} // New serialization interface methods SerializeStatus CmdPacket::serializeTo(SerialBufferBase& buffer, Fw::Endianness mode) const { // Shouldn't be called, no use case for serializing CmdPackets in FSW (currently) FW_ASSERT(0); return FW_SERIALIZE_OK; // for compiler } SerializeStatus CmdPacket::deserializeFrom(SerialBufferBase& buffer, Fw::Endianness mode) { SerializeStatus stat = ComPacket::deserializeBase(buffer); if (stat != FW_SERIALIZE_OK) { return stat; } // double check packet type if (this->m_type != ComPacketType::FW_PACKET_COMMAND) { return FW_DESERIALIZE_TYPE_MISMATCH; } stat = buffer.deserializeTo(this->m_opcode, mode); if (stat != FW_SERIALIZE_OK) { return stat; } // if non-empty, copy data if (buffer.getDeserializeSizeLeft()) { // copy the serialized arguments to the buffer stat = buffer.copyRaw(this->m_argBuffer, buffer.getDeserializeSizeLeft()); } return stat; } FwOpcodeType CmdPacket::getOpCode() const { return this->m_opcode; } CmdArgBuffer& CmdPacket::getArgBuffer() { return this->m_argBuffer; } } /* namespace Fw */