Program Listing for File can_serdes.h#
↰ Return to documentation for file (interfaces\serdes\can_serdes.h
)
#ifndef __IDL_GENERATED__CAN_SERDES_H__20251008_120458_988__
#define __IDL_GENERATED__CAN_SERDES_H__20251008_120458_988__
// Includes...
#include <cstdint>
#include <support/serdes.h>
#include <support/local_service_access.h>
#include <interfaces/com.h>
#include <interfaces/serdes/core_ps_serdes.h>
#include "../can.h"
#include "core_serdes.h"
// Serializer / deserializer namespace
namespace serdes
{
template <>
class CSerdes<sdv::can::SMessage>
{
public:
static void CalcSize(const sdv::can::SMessage& rVar, size_t& rnSize)
{
// Calculating the size of SMessage
sdv::ser_size(rVar.uiID, rnSize);
sdv::ser_size(rVar.bExtended, rnSize);
sdv::ser_size(rVar.bCanFd, rnSize);
sdv::ser_size(rVar.seqData, rnSize);
}
template <sdv::EEndian eTargetEndianess, typename TCRC>
static sdv::serializer<eTargetEndianess, TCRC>& Serialize(sdv::serializer<eTargetEndianess, TCRC>& rSerializer, const sdv::can::SMessage& rVar)
{
// Serializing members of SMessage
rSerializer << rVar.uiID;
rSerializer << rVar.bExtended;
rSerializer << rVar.bCanFd;
rSerializer << rVar.seqData;
return rSerializer;
}
template <sdv::EEndian eSourceEndianess, typename TCRC>
static sdv::deserializer<eSourceEndianess, TCRC>& Deserialize(sdv::deserializer<eSourceEndianess, TCRC>& rDeserializer, sdv::can::SMessage& rVar)
{
// Deserializing members of SMessage
rDeserializer >> rVar.uiID;
rDeserializer >> rVar.bExtended;
rDeserializer >> rVar.bCanFd;
rDeserializer >> rVar.seqData;
return rDeserializer;
}
};
template <>
class CSerdes<sdv::can::EError>
{
public:
static void CalcSize(const sdv::can::EError& rVar, size_t& rnSize)
{
// Calculating the size of EError
sdv::ser_size(static_cast<uint32_t>(rVar), rnSize);
}
template <sdv::EEndian eTargetEndianess, typename TCRC>
static sdv::serializer<eTargetEndianess, TCRC>& Serialize(sdv::serializer<eTargetEndianess, TCRC>& rSerializer, const sdv::can::EError& rVar)
{
// Serializing members of EError
rSerializer << static_cast<uint32_t>(rVar);
return rSerializer;
}
template <sdv::EEndian eSourceEndianess, typename TCRC>
static sdv::deserializer<eSourceEndianess, TCRC>& Deserialize(sdv::deserializer<eSourceEndianess, TCRC>& rDeserializer, sdv::can::EError& rVar)
{
// Deserializing members of EError
uint32_t base = 0;
rDeserializer >> base;
rVar = static_cast<sdv::can::EError>(base);
return rDeserializer;
}
};
template <>
class CSerdes<sdv::can::SErrorFrame>
{
public:
static void CalcSize(const sdv::can::SErrorFrame& rVar, size_t& rnSize)
{
// Calculating the size of SErrorFrame
sdv::ser_size(rVar.uiID, rnSize);
sdv::ser_size(rVar.eError, rnSize);
}
template <sdv::EEndian eTargetEndianess, typename TCRC>
static sdv::serializer<eTargetEndianess, TCRC>& Serialize(sdv::serializer<eTargetEndianess, TCRC>& rSerializer, const sdv::can::SErrorFrame& rVar)
{
// Serializing members of SErrorFrame
rSerializer << rVar.uiID;
rSerializer << rVar.eError;
return rSerializer;
}
template <sdv::EEndian eSourceEndianess, typename TCRC>
static sdv::deserializer<eSourceEndianess, TCRC>& Deserialize(sdv::deserializer<eSourceEndianess, TCRC>& rDeserializer, sdv::can::SErrorFrame& rVar)
{
// Deserializing members of SErrorFrame
rDeserializer >> rVar.uiID;
rDeserializer >> rVar.eError;
return rDeserializer;
}
};
} // serdes namespace
#endif // !defined(__IDL_GENERATED__CAN_SERDES_H__20251008_120459_23__)