Windows: Fix build issues with EthPhyRegPacket
parent
6d92b7a03a
commit
0ded5508c1
|
|
@ -5,6 +5,7 @@
|
||||||
#include "icsneo/communication/packet/iso9141packet.h"
|
#include "icsneo/communication/packet/iso9141packet.h"
|
||||||
#include "icsneo/communication/packet/canpacket.h"
|
#include "icsneo/communication/packet/canpacket.h"
|
||||||
#include "icsneo/communication/packet/ethphyregpacket.h"
|
#include "icsneo/communication/packet/ethphyregpacket.h"
|
||||||
|
#include "icsneo/communication/message/ethphymessage.h"
|
||||||
|
|
||||||
using namespace icsneo;
|
using namespace icsneo;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,25 +36,9 @@ std::shared_ptr<EthPhyMessage> HardwareEthernetPhyRegisterPacket::DecodeToMessag
|
||||||
phyMessage->Clause45Enable = (pEntry->Clause45Enable != 0u);
|
phyMessage->Clause45Enable = (pEntry->Clause45Enable != 0u);
|
||||||
phyMessage->version = static_cast<uint8_t>(pEntry->version);
|
phyMessage->version = static_cast<uint8_t>(pEntry->version);
|
||||||
if(phyMessage->Clause45Enable)
|
if(phyMessage->Clause45Enable)
|
||||||
{
|
phyMessage->clause45 = pEntry->clause45;
|
||||||
phyMessage->clause45 =
|
|
||||||
{
|
|
||||||
.port = pEntry->clause45.port,
|
|
||||||
.device = pEntry->clause45.device,
|
|
||||||
.regAddr = pEntry->clause45.regAddr,
|
|
||||||
.regVal = pEntry->clause45.regVal
|
|
||||||
};
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
phyMessage->clause22 = pEntry->clause22;
|
||||||
phyMessage->clause22 =
|
|
||||||
{
|
|
||||||
.phyAddr = pEntry->clause22.phyAddr,
|
|
||||||
.page = pEntry->clause22.page,
|
|
||||||
.regAddr = pEntry->clause22.regAddr,
|
|
||||||
.regVal = pEntry->clause22.regVal
|
|
||||||
};
|
|
||||||
}
|
|
||||||
msg->messages.push_back(phyMessage);
|
msg->messages.push_back(phyMessage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,35 +12,26 @@
|
||||||
|
|
||||||
namespace icsneo {
|
namespace icsneo {
|
||||||
|
|
||||||
struct Clause22Message
|
#ifdef _MSC_VER
|
||||||
{
|
#pragma warning(push)
|
||||||
uint8_t phyAddr;
|
#pragma warning(disable : 4201) // nameless struct/union
|
||||||
uint8_t page;
|
#endif
|
||||||
uint16_t regAddr;
|
|
||||||
uint16_t regVal;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Clause45Message
|
struct PhyMessage {
|
||||||
{
|
|
||||||
uint8_t port;
|
|
||||||
uint8_t device;
|
|
||||||
uint16_t regAddr;
|
|
||||||
uint16_t regVal;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct PhyMessage
|
|
||||||
{
|
|
||||||
bool Enabled;
|
bool Enabled;
|
||||||
bool WriteEnable;
|
bool WriteEnable;
|
||||||
bool Clause45Enable;
|
bool Clause45Enable;
|
||||||
uint8_t version;
|
uint8_t version;
|
||||||
union
|
union {
|
||||||
{
|
|
||||||
Clause22Message clause22;
|
Clause22Message clause22;
|
||||||
Clause45Message clause45;
|
Clause45Message clause45;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(pop)
|
||||||
|
#endif
|
||||||
|
|
||||||
//Internal message which provides an interface with device ethernet PHY registers,
|
//Internal message which provides an interface with device ethernet PHY registers,
|
||||||
//with Clause22 and Clause45 message support
|
//with Clause22 and Clause45 message support
|
||||||
class EthPhyMessage : public Message {
|
class EthPhyMessage : public Message {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
||||||
#include "icsneo/communication/message/ethphymessage.h"
|
|
||||||
#include "icsneo/api/eventmanager.h"
|
#include "icsneo/api/eventmanager.h"
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
@ -14,35 +13,35 @@ namespace icsneo
|
||||||
class Packetizer;
|
class Packetizer;
|
||||||
class EthPhyMessage;
|
class EthPhyMessage;
|
||||||
|
|
||||||
typedef struct
|
#pragma pack(push, 1)
|
||||||
{
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(push)
|
||||||
|
#pragma warning(disable : 4201) // nameless struct/union
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct PhyRegisterHeader_t {
|
||||||
uint16_t numEntries;
|
uint16_t numEntries;
|
||||||
uint8_t version;
|
uint8_t version;
|
||||||
uint8_t entryBytes;
|
uint8_t entryBytes;
|
||||||
} PhyRegisterHeader_t;
|
};
|
||||||
|
|
||||||
typedef struct
|
struct Clause22Message {
|
||||||
{
|
|
||||||
uint8_t phyAddr; //5 bits
|
uint8_t phyAddr; //5 bits
|
||||||
uint8_t page; //8 bits
|
uint8_t page; //8 bits
|
||||||
uint16_t regAddr; //5 bits
|
uint16_t regAddr; //5 bits
|
||||||
uint16_t regVal;
|
uint16_t regVal;
|
||||||
} Clause22Message_t; //6 bytes
|
}; //6 bytes
|
||||||
|
|
||||||
typedef struct
|
struct Clause45Message {
|
||||||
{
|
|
||||||
uint8_t port; //5 bits
|
uint8_t port; //5 bits
|
||||||
uint8_t device; //5 bits
|
uint8_t device; //5 bits
|
||||||
uint16_t regAddr;
|
uint16_t regAddr;
|
||||||
uint16_t regVal;
|
uint16_t regVal;
|
||||||
} Clause45Message_t; //6 bytes
|
}; //6 bytes
|
||||||
|
|
||||||
typedef struct
|
struct PhyRegisterPacket_t {
|
||||||
{
|
union {
|
||||||
union
|
struct {
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint16_t Enabled : 1;
|
uint16_t Enabled : 1;
|
||||||
uint16_t WriteEnable : 1;
|
uint16_t WriteEnable : 1;
|
||||||
uint16_t Clause45Enable : 1;
|
uint16_t Clause45Enable : 1;
|
||||||
|
|
@ -52,20 +51,25 @@ typedef struct
|
||||||
uint16_t flags;
|
uint16_t flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
union
|
union {
|
||||||
{
|
Clause22Message clause22;
|
||||||
Clause22Message_t clause22;
|
Clause45Message clause45;
|
||||||
Clause45Message_t clause45;
|
|
||||||
};
|
};
|
||||||
} PhyRegisterPacket_t;
|
};
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(pop)
|
||||||
|
#endif
|
||||||
|
#pragma pack(pop)
|
||||||
|
|
||||||
static constexpr size_t MaxPhyEntries = 128u;
|
static constexpr size_t MaxPhyEntries = 128u;
|
||||||
static constexpr size_t MaxBytesPhyEntries = MaxPhyEntries * sizeof(PhyRegisterHeader_t);
|
static constexpr size_t MaxBytesPhyEntries = MaxPhyEntries * sizeof(PhyRegisterHeader_t);
|
||||||
static constexpr uint8_t PhyPacketVersion = 1u;
|
static constexpr uint8_t PhyPacketVersion = 1u;
|
||||||
static constexpr uint8_t FiveBits = 0x1Fu;
|
static constexpr uint8_t FiveBits = 0x1Fu;
|
||||||
|
|
||||||
struct HardwareEthernetPhyRegisterPacket
|
class EthPhyMessage;
|
||||||
{
|
|
||||||
|
struct HardwareEthernetPhyRegisterPacket {
|
||||||
static std::shared_ptr<EthPhyMessage> DecodeToMessage(const std::vector<uint8_t>& bytestream, const device_eventhandler_t& report);
|
static std::shared_ptr<EthPhyMessage> DecodeToMessage(const std::vector<uint8_t>& bytestream, const device_eventhandler_t& report);
|
||||||
static bool EncodeFromMessage(const EthPhyMessage& message, std::vector<uint8_t>& bytestream, const device_eventhandler_t& report);
|
static bool EncodeFromMessage(const EthPhyMessage& message, std::vector<uint8_t>& bytestream, const device_eventhandler_t& report);
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue