diff --git a/device/include/devicetype.h b/device/include/devicetype.h index c84462b..a286e2a 100644 --- a/device/include/devicetype.h +++ b/device/include/devicetype.h @@ -1,5 +1,5 @@ -#ifndef __NETWORKID_H_ -#define __NETWORKID_H_ +#ifndef __DEVICETYPE_H_ +#define __DEVICETYPE_H_ #include #include @@ -9,71 +9,139 @@ namespace icsneo { class DeviceType { public: // This enum used to be a bitfield, but has since become an enum as we have more than 32 devices - enum : uint32_t { - UNKNOWN = (0x00000000), + enum Enum : uint32_t { + Unknown = (0x00000000), BLUE = (0x00000001), ECU_AVB = (0x00000002), - RADSUPERMOON = (0x00000003), + RADSupermoon = (0x00000003), DW_VCAN = (0x00000004), - RADMOON2 = (0x00000005), - RADGIGALOG = (0x00000006), - VCAN41 = (0x00000007), + RADMoon2 = (0x00000005), + RADGigalog = (0x00000006), + VCAN4_1 = (0x00000007), FIRE = (0x00000008), - RADPLUTO = (0x00000009), - VCAN42_EL = (0x0000000a), + RADPluto = (0x00000009), + VCAN4_2EL = (0x0000000a), RADIO_CANHUB = (0x0000000b), VCAN3 = (0x00000010), RED = (0x00000040), ECU = (0x00000080), IEVB = (0x00000100), - PENDANT = (0x00000200), + Pendant = (0x00000200), OBD2_PRO = (0x00000400), - ECUCHIP_UART = (0x00000800), + ECUChip_UART = (0x00000800), PLASMA = (0x00001000), DONT_REUSE0 = (0x00002000), // Previously FIRE_VNET - NEOANALOG = (0x00004000), + NEOAnalog = (0x00004000), CT_OBD = (0x00008000), DONT_REUSE1 = (0x00010000), // Previously PLASMA_1_12 DONT_REUSE2 = (0x00020000), // Previously PLASMA_1_13 ION = (0x00040000), - RADSTAR = (0x00080000), + RADStar = (0x00080000), DONT_REUSE3 = (0x00100000), // Previously ION3 - VCAN44 = (0x00200000), - VCAN42 = (0x00400000), - CMPROBE = (0x00800000), + VCAN4_4 = (0x00200000), + VCAN4_2 = (0x00400000), + CMProbe = (0x00800000), EEVB = (0x01000000), - VCANRF = (0x02000000), + VCANrf = (0x02000000), FIRE2 = (0x04000000), - FLEX = (0x08000000), - RADGALAXY = (0x10000000), - RADSTAR2 = (0x20000000), - VIVIDCAN = (0x40000000), + Flex = (0x08000000), + RADGalaxy = (0x10000000), + RADStar2 = (0x20000000), + VividCAN = (0x40000000), OBD2_SIM = (0x80000000) }; - // static const char* GetNetIDString(NetID netid) { - // switch(netid) { - // default: - // return "Invalid Network"; - // } - // } + static const char* GetDeviceTypeString(DeviceType::Enum type) { + switch(type) { + case Unknown: + return "Unknown"; + case BLUE: + return "neoVI BLUE"; + case ECU_AVB: + return "neoECU AVB"; + case RADSupermoon: + return "RADSupermoon"; + case DW_VCAN: + return "DW_VCAN"; + case RADMoon2: + return "RADMoon2"; + case RADGigalog: + return "RADGigalog"; + case VCAN4_1: + return "ValueCAN 4-1"; + case FIRE: + return "neoVI FIRE"; + case RADPluto: + return "RADPluto"; + case VCAN4_2EL: + return "ValueCAN 4-2EL"; + case RADIO_CANHUB: + return "RADIO_CANHUB"; + case VCAN3: + return "ValueCAN 3"; + case RED: + return "neoVI RED"; + case ECU: + return "neoECU"; + case IEVB: + return "IEVB"; + case Pendant: + return "Pendant"; + case OBD2_PRO: + return "neoOBD2-PRO"; + case ECUChip_UART: + return "neoECU Chip UART"; + case PLASMA: + return "neoVI PLASMA"; + case NEOAnalog: + return "NEOAnalog"; + case CT_OBD: + return "CT_OBD"; + case ION: + return "ION"; + case RADStar: + return "RADStar"; + case VCAN4_4: + return "ValueCAN 4-4"; + case VCAN4_2: + return "ValueCAN 4-2"; + case CMProbe: + return "CMProbe"; + case EEVB: + return "Intrepid Ethernet Evaluation Board"; + case VCANrf: + return "ValueCAN.rf"; + case FIRE2: + return "neoVI FIRE 2"; + case Flex: + return "neoVI Flex"; + case RADGalaxy: + return "RADGalaxy"; + case RADStar2: + return "RADStar2"; + case VividCAN: + return "VividCAN"; + case OBD2_SIM: + return "neoOBD2-SIM"; + case DONT_REUSE0: + case DONT_REUSE1: + case DONT_REUSE2: + case DONT_REUSE3: + // Intentionally don't use default so that the compiler throws a warning when something is added + return "Unknown neoVI"; + } + } - // Network() { setValue(NetID::Invalid); } - // Network(uint16_t netid) { setValue((NetID)netid); } - // Network(NetID netid) { setValue(netid); } - // NetID getNetID() const { return value; } - // Type getType() const { return type; } - // friend std::ostream& operator<<(std::ostream& os, const Network& network) { - // os << GetNetIDString(network.getNetID()); - // return os; - // } + DeviceType() { value = DeviceType::Enum::Unknown; } + DeviceType(uint32_t netid) { value = (DeviceType::Enum)netid; } + DeviceType(DeviceType::Enum netid) { value = netid; } + DeviceType::Enum getDeviceType() const { return value; } + friend std::ostream& operator<<(std::ostream& os, const DeviceType& DeviceType) { + os << GetDeviceTypeString(DeviceType.getDeviceType()); + return os; + } private: - // NetID value; // Always use setValue so that value and type stay in sync - // Type type; - // void setValue(NetID id) { - // value = id; - // type = GetTypeOfNetID(value); - // } + DeviceType::Enum value; }; };