Network: Add CoreMini Mappings

These are used for network and termination enables
pull/32/head
Paul Hollinsky 2021-04-07 00:30:54 -04:00
parent cf8c5a31c7
commit 441b16e9a1
2 changed files with 312 additions and 54 deletions

View File

@ -50,60 +50,6 @@ private:
Microblaze_to_HostPC = 0x81 // Microblaze processor data to host PC
};
enum class CoreMiniNetwork : uint8_t {
HSCAN1 = (0),
MSCAN1 = (1),
LIN1 = (2),
LIN2 = (3),
VIRTUAL = (4),
HSCAN2 = (5),
LSFTCAN1 = (6),
SWCAN1 = (7),
HSCAN3 = (8),
GMCGI = (9),
J1850_VPW = (10),
LIN3 = (11),
LIN4 = (12),
J1708 = (13),
HSCAN4 = (14),
HSCAN5 = (15),
KLINE1 = (16),
KLINE2 = (17),
KLINE3 = (18),
KLINE4 = (19),
FLEXRAY_1A = (20),
UART = (21),
UART2 = (22),
LIN5 = (23),
MOST25 = (24),
MOST50 = (25),
FLEXRAY_1B = (26),
SWCAN2 = (27),
ETHERNET_DAQ = (28),
ETHERNET = (29),
FLEXRAY_2A = (30),
FLEXRAY_2B = (31),
HSCAN6 = (32),
HSCAN7 = (33),
LIN6 = (34),
LSFTCAN2 = (35),
OP_ETHERNET1 = (36),
OP_ETHERNET2 = (37),
OP_ETHERNET3 = (38),
OP_ETHERNET4 = (39),
OP_ETHERNET5 = (40),
OP_ETHERNET6 = (41),
OP_ETHERNET7 = (42),
OP_ETHERNET8 = (43),
OP_ETHERNET9 = (44),
OP_ETHERNET10 = (45),
OP_ETHERNET11 = (46),
OP_ETHERNET12 = (47),
KLINE5 = (48),
KLINE6 = (49),
FLEXRAY1 = (50),
FLEXRAY2 = (51)
};
static bool CommandTypeIsValid(CommandType cmd) {
switch(cmd) {
case CommandType::PlasmaReadRequest:

View File

@ -5,6 +5,7 @@
#include <cstdint>
#include <ostream>
#include "icsneo/platform/optional.h"
namespace icsneo {
@ -116,6 +117,8 @@ public:
FlexRayControl = 243,
HW_COM_Latency_Test = 512,
Device_Status = 513,
UDP = 514,
ForwardedMessage = 516,
I2C2 = 517,
I2C3 = 518,
I2C4 = 519,
@ -138,6 +141,66 @@ public:
Any = 0xFE, // Never actually set as type, but used as flag for filtering
Other = 0xFF
};
enum class CoreMini : uint8_t {
HSCAN = 0,
MSCAN = 1,
LIN = 2,
LIN2 = 3,
Virtual = 4,
HSCAN2 = 5,
LSFTCAN = 6,
SWCAN = 7,
HSCAN3 = 8,
CGI = 9,
J1850VPW = 10,
LIN3 = 11,
LIN4 = 12,
J1708 = 13,
HSCAN4 = 14,
HSCAN5 = 15,
KLine1 = 16,
KLine2 = 17,
KLine3 = 18,
KLine4 = 19,
FlexRay1a = 20,
UART = 21,
UART2 = 22,
LIN5 = 23,
MOST25 = 24,
MOST50 = 25,
FlexRay1b = 26,
SWCAN2 = 27,
EthernetDAQ = 28,
Ethernet = 29,
FlexRay2a = 30,
FlexRay2b = 31,
HSCAN6 = 32,
HSCAN7 = 33,
LIN6 = 34,
LSFTCAN2 = 35,
OP_Ethernet1 = 36,
OP_Ethernet2 = 37,
OP_Ethernet3 = 38,
OP_Ethernet4 = 39,
OP_Ethernet5 = 40,
OP_Ethernet6 = 41,
OP_Ethernet7 = 42,
OP_Ethernet8 = 43,
OP_Ethernet9 = 44,
OP_Ethernet10 = 45,
OP_Ethernet11 = 46,
OP_Ethernet12 = 47,
TCPVirtual = 48,
UDPVirtual = 49,
FlexRay1 = 50,
FlexRay2 = 51,
ForwardedMessage = 52,
I2C1 = 53,
I2C2 = 54,
I2C3 = 55,
I2C4 = 56,
Ethernet2 = 57,
};
static const char* GetTypeString(Type type) {
switch(type) {
case Type::CAN:
@ -440,6 +503,10 @@ public:
return "HW COM Latency Test";
case NetID::Device_Status:
return "Device Status";
case NetID::UDP:
return "UDP";
case NetID::ForwardedMessage:
return "Forwarded Message";
case NetID::I2C2:
return "I2C 2";
case NetID::I2C3:
@ -454,12 +521,257 @@ public:
}
return "Invalid Network";
}
static optional<CoreMini> GetCoreMiniNetworkFromNetID(NetID netid) {
switch(netid) {
case NetID::HSCAN:
return CoreMini::HSCAN;
case NetID::MSCAN:
return CoreMini::MSCAN;
case NetID::LIN:
return CoreMini::LIN;
case NetID::LIN2:
return CoreMini::LIN2;
case NetID::Device:
return CoreMini::Virtual;
case NetID::HSCAN2:
return CoreMini::HSCAN2;
case NetID::LSFTCAN:
return CoreMini::LSFTCAN;
case NetID::SWCAN:
return CoreMini::SWCAN;
case NetID::HSCAN3:
return CoreMini::HSCAN3;
case NetID::CGI:
return CoreMini::CGI;
case NetID::J1850VPW:
return CoreMini::J1850VPW;
case NetID::LIN3:
return CoreMini::LIN3;
case NetID::LIN4:
return CoreMini::LIN4;
case NetID::J1708:
return CoreMini::J1708;
case NetID::HSCAN4:
return CoreMini::HSCAN4;
case NetID::HSCAN5:
return CoreMini::HSCAN5;
case NetID::ISO9141:
return CoreMini::KLine1;
case NetID::ISO9141_2:
return CoreMini::KLine2;
case NetID::ISO9141_3:
return CoreMini::KLine3;
case NetID::ISO9141_4:
return CoreMini::KLine4;
case NetID::FlexRay1a:
return CoreMini::FlexRay1a;
case NetID::UART:
return CoreMini::UART;
case NetID::UART2:
return CoreMini::UART2;
case NetID::LIN5:
return CoreMini::LIN5;
case NetID::MOST25:
return CoreMini::MOST25;
case NetID::MOST50:
return CoreMini::MOST50;
case NetID::FlexRay1b:
return CoreMini::FlexRay1b;
case NetID::SWCAN2:
return CoreMini::SWCAN2;
case NetID::Ethernet_DAQ:
return CoreMini::EthernetDAQ;
case NetID::Ethernet:
return CoreMini::Ethernet;
case NetID::FlexRay2a:
return CoreMini::FlexRay2a;
case NetID::FlexRay2b:
return CoreMini::FlexRay2b;
case NetID::HSCAN6:
return CoreMini::HSCAN6;
case NetID::HSCAN7:
return CoreMini::HSCAN7;
case NetID::LIN6:
return CoreMini::LIN6;
case NetID::LSFTCAN2:
return CoreMini::LSFTCAN2;
case NetID::OP_Ethernet1:
return CoreMini::OP_Ethernet1;
case NetID::OP_Ethernet2:
return CoreMini::OP_Ethernet2;
case NetID::OP_Ethernet3:
return CoreMini::OP_Ethernet3;
case NetID::OP_Ethernet4:
return CoreMini::OP_Ethernet4;
case NetID::OP_Ethernet5:
return CoreMini::OP_Ethernet5;
case NetID::OP_Ethernet6:
return CoreMini::OP_Ethernet6;
case NetID::OP_Ethernet7:
return CoreMini::OP_Ethernet7;
case NetID::OP_Ethernet8:
return CoreMini::OP_Ethernet8;
case NetID::OP_Ethernet9:
return CoreMini::OP_Ethernet9;
case NetID::OP_Ethernet10:
return CoreMini::OP_Ethernet10;
case NetID::OP_Ethernet11:
return CoreMini::OP_Ethernet11;
case NetID::OP_Ethernet12:
return CoreMini::OP_Ethernet12;
case NetID::TCP:
return CoreMini::TCPVirtual;
case NetID::UDP:
return CoreMini::UDPVirtual;
case NetID::FlexRay:
return CoreMini::FlexRay1;
case NetID::FlexRay2:
return CoreMini::FlexRay2;
case NetID::ForwardedMessage:
return CoreMini::ForwardedMessage;
case NetID::I2C:
return CoreMini::I2C1;
case NetID::I2C2:
return CoreMini::I2C2;
case NetID::I2C3:
return CoreMini::I2C3;
case NetID::I2C4:
return CoreMini::I2C4;
case NetID::Ethernet2:
return CoreMini::Ethernet2;
default:
return nullopt;
}
}
static NetID GetNetIDFromCoreMiniNetwork(CoreMini cm) {
switch(cm) {
case CoreMini::HSCAN:
return NetID::HSCAN;
case CoreMini::MSCAN:
return NetID::MSCAN;
case CoreMini::LIN:
return NetID::LIN;
case CoreMini::LIN2:
return NetID::LIN2;
case CoreMini::Virtual:
return NetID::Device;
case CoreMini::HSCAN2:
return NetID::HSCAN2;
case CoreMini::LSFTCAN:
return NetID::LSFTCAN;
case CoreMini::SWCAN:
return NetID::SWCAN;
case CoreMini::HSCAN3:
return NetID::HSCAN3;
case CoreMini::CGI:
return NetID::CGI;
case CoreMini::J1850VPW:
return NetID::J1850VPW;
case CoreMini::LIN3:
return NetID::LIN3;
case CoreMini::LIN4:
return NetID::LIN4;
case CoreMini::J1708:
return NetID::J1708;
case CoreMini::HSCAN4:
return NetID::HSCAN4;
case CoreMini::HSCAN5:
return NetID::HSCAN5;
case CoreMini::KLine1:
return NetID::ISO9141;
case CoreMini::KLine2:
return NetID::ISO9141_2;
case CoreMini::KLine3:
return NetID::ISO9141_3;
case CoreMini::KLine4:
return NetID::ISO9141_4;
case CoreMini::FlexRay1a:
return NetID::FlexRay1a;
case CoreMini::UART:
return NetID::UART;
case CoreMini::UART2:
return NetID::UART2;
case CoreMini::LIN5:
return NetID::LIN5;
case CoreMini::MOST25:
return NetID::MOST25;
case CoreMini::MOST50:
return NetID::MOST50;
case CoreMini::FlexRay1b:
return NetID::FlexRay1b;
case CoreMini::SWCAN2:
return NetID::SWCAN2;
case CoreMini::EthernetDAQ:
return NetID::Ethernet_DAQ;
case CoreMini::Ethernet:
return NetID::Ethernet;
case CoreMini::FlexRay2a:
return NetID::FlexRay2a;
case CoreMini::FlexRay2b:
return NetID::FlexRay2b;
case CoreMini::HSCAN6:
return NetID::HSCAN6;
case CoreMini::HSCAN7:
return NetID::HSCAN7;
case CoreMini::LIN6:
return NetID::LIN6;
case CoreMini::LSFTCAN2:
return NetID::LSFTCAN2;
case CoreMini::OP_Ethernet1:
return NetID::OP_Ethernet1;
case CoreMini::OP_Ethernet2:
return NetID::OP_Ethernet2;
case CoreMini::OP_Ethernet3:
return NetID::OP_Ethernet3;
case CoreMini::OP_Ethernet4:
return NetID::OP_Ethernet4;
case CoreMini::OP_Ethernet5:
return NetID::OP_Ethernet5;
case CoreMini::OP_Ethernet6:
return NetID::OP_Ethernet6;
case CoreMini::OP_Ethernet7:
return NetID::OP_Ethernet7;
case CoreMini::OP_Ethernet8:
return NetID::OP_Ethernet8;
case CoreMini::OP_Ethernet9:
return NetID::OP_Ethernet9;
case CoreMini::OP_Ethernet10:
return NetID::OP_Ethernet10;
case CoreMini::OP_Ethernet11:
return NetID::OP_Ethernet11;
case CoreMini::OP_Ethernet12:
return NetID::OP_Ethernet12;
case CoreMini::TCPVirtual:
return NetID::TCP;
case CoreMini::UDPVirtual:
return NetID::UDP;
case CoreMini::FlexRay1:
return NetID::FlexRay;
case CoreMini::FlexRay2:
return NetID::FlexRay2;
case CoreMini::ForwardedMessage:
return NetID::ForwardedMessage;
case CoreMini::I2C1:
return NetID::I2C;
case CoreMini::I2C2:
return NetID::I2C2;
case CoreMini::I2C3:
return NetID::I2C3;
case CoreMini::I2C4:
return NetID::I2C4;
case CoreMini::Ethernet2:
return NetID::Ethernet2;
}
return NetID::Invalid; // Should be unreachable, the compiler should warn about new CoreMini IDs
}
Network() { setValue(NetID::Invalid); }
Network(uint16_t netid) { setValue((NetID)netid); }
Network(NetID netid) { setValue(netid); }
Network(CoreMini cm) { setValue(GetNetIDFromCoreMiniNetwork(cm)); }
NetID getNetID() const { return value; }
Type getType() const { return type; }
optional<CoreMini> getCoreMini() const { return GetCoreMiniNetworkFromNetID(getNetID()); }
friend std::ostream& operator<<(std::ostream& os, const Network& network) {
os << GetNetIDString(network.getNetID());
return os;