diff --git a/device/devicefinder.cpp b/device/devicefinder.cpp index 213c76e..7f15f8d 100644 --- a/device/devicefinder.cpp +++ b/device/devicefinder.cpp @@ -121,6 +121,10 @@ std::vector> DeviceFinder::FindAll() { makeIfSerialMatches(dev, newFoundDevices); #endif + #ifdef __NEOVIFIRE3FLEXRAY_H_ + makeIfSerialMatches(dev, newFoundDevices); + #endif + #ifdef __NEOVIRED2_H_ makeIfSerialMatches(dev, newFoundDevices); #endif @@ -244,6 +248,14 @@ const std::vector& DeviceFinder::GetSupportedDevices() { NeoVIFIRE2::DEVICE_TYPE, #endif + #ifdef __NEOVIFIRE3_H_ + NeoVIFIRE3::DEVICE_TYPE, + #endif + + #ifdef __NEOVIFIRE3FLEXRAY_H_ + NeoVIFIRE3FlexRay::DEVICE_TYPE, + #endif + #ifdef __NEOVIION_H_ NeoVIION::DEVICE_TYPE, #endif diff --git a/include/icsneo/communication/network.h b/include/icsneo/communication/network.h index 655b00c..25844bd 100644 --- a/include/icsneo/communication/network.h +++ b/include/icsneo/communication/network.h @@ -134,6 +134,18 @@ public: Ethernet2 = 520, A2B1 = 522, A2B2 = 523, + Ethernet3 = 524, + WBMS = 532, + DWCAN9 = 534, + DWCAN10 = 535, + DWCAN11 = 536, + DWCAN12 = 537, + DWCAN13 = 538, + DWCAN14 = 539, + DWCAN15 = 540, + DWCAN16 = 541, + LIN7 = 542, + LIN8 = 543, Any = 0xfffe, // Never actually set as type, but used as flag for filtering Invalid = 0xffff }; @@ -212,6 +224,20 @@ public: I2C3 = 55, I2C4 = 56, Ethernet2 = 57, + A2B1 = 58, + A2B2 = 59, + Ethernet3 = 60, + WBMS = 61, + DWCAN9 = 62, + DWCAN10 = 63, + DWCAN11 = 64, + DWCAN12 = 65, + DWCAN13 = 66, + DWCAN14 = 67, + DWCAN15 = 68, + DWCAN16 = 69, + LIN7 = 70, + LIN8 = 71, }; static const char* GetTypeString(Type type) { switch(type) { @@ -254,6 +280,14 @@ public: case NetID::HSCAN5: case NetID::HSCAN6: case NetID::HSCAN7: + case NetID::DWCAN9: + case NetID::DWCAN10: + case NetID::DWCAN11: + case NetID::DWCAN12: + case NetID::DWCAN13: + case NetID::DWCAN14: + case NetID::DWCAN15: + case NetID::DWCAN16: return Type::CAN; case NetID::LIN: case NetID::LIN2: @@ -261,6 +295,8 @@ public: case NetID::LIN4: case NetID::LIN5: case NetID::LIN6: + case NetID::LIN7: + case NetID::LIN8: return Type::LIN; case NetID::FlexRay: case NetID::FlexRay1a: @@ -296,6 +332,7 @@ public: case NetID::Ethernet: case NetID::Ethernet_DAQ: case NetID::Ethernet2: + case NetID::Ethernet3: case NetID::OP_Ethernet1: case NetID::OP_Ethernet2: case NetID::OP_Ethernet3: @@ -560,6 +597,30 @@ public: return "A2B 1"; case NetID::A2B2: return "A2B 2"; + case NetID::DWCAN9: + return "DWCAN 09"; + case NetID::DWCAN10: + return "DWCAN 10"; + case NetID::DWCAN11: + return "DWCAN 11"; + case NetID::DWCAN12: + return "DWCAN 12"; + case NetID::DWCAN13: + return "DWCAN 13"; + case NetID::DWCAN14: + return "DWCAN 14"; + case NetID::DWCAN15: + return "DWCAN 15"; + case NetID::DWCAN16: + return "DWCAN 16"; + case NetID::Ethernet3: + return "Ethernet 03"; + case NetID::LIN7: + return "LIN 07"; + case NetID::LIN8: + return "LIN 08"; + case NetID::WBMS: + return "WBMS"; case NetID::Any: case NetID::Invalid: break; @@ -684,6 +745,34 @@ public: return CoreMini::I2C4; case NetID::Ethernet2: return CoreMini::Ethernet2; + case NetID::A2B1: + return CoreMini::A2B1; + case NetID::A2B2: + return CoreMini::A2B2; + case NetID::Ethernet3: + return CoreMini::Ethernet3; + case NetID::WBMS: + return CoreMini::WBMS; + case NetID::DWCAN9: + return CoreMini::DWCAN9; + case NetID::DWCAN10: + return CoreMini::DWCAN10; + case NetID::DWCAN11: + return CoreMini::DWCAN11; + case NetID::DWCAN12: + return CoreMini::DWCAN12; + case NetID::DWCAN13: + return CoreMini::DWCAN13; + case NetID::DWCAN14: + return CoreMini::DWCAN14; + case NetID::DWCAN15: + return CoreMini::DWCAN15; + case NetID::DWCAN16: + return CoreMini::DWCAN16; + case NetID::LIN7: + return CoreMini::LIN7; + case NetID::LIN8: + return CoreMini::LIN8; default: return std::nullopt; } @@ -806,6 +895,34 @@ public: return NetID::I2C4; case CoreMini::Ethernet2: return NetID::Ethernet2; + case CoreMini::A2B1: + return NetID::A2B1; + case CoreMini::A2B2: + return NetID::A2B2; + case CoreMini::Ethernet3: + return NetID::Ethernet3; + case CoreMini::WBMS: + return NetID::WBMS; + case CoreMini::DWCAN9: + return NetID::DWCAN9; + case CoreMini::DWCAN10: + return NetID::DWCAN10; + case CoreMini::DWCAN11: + return NetID::DWCAN11; + case CoreMini::DWCAN12: + return NetID::DWCAN12; + case CoreMini::DWCAN13: + return NetID::DWCAN13; + case CoreMini::DWCAN14: + return NetID::DWCAN14; + case CoreMini::DWCAN15: + return NetID::DWCAN15; + case CoreMini::DWCAN16: + return NetID::DWCAN16; + case CoreMini::LIN7: + return NetID::LIN7; + case CoreMini::LIN8: + return NetID::LIN8; } return NetID::Invalid; // Should be unreachable, the compiler should warn about new CoreMini IDs } diff --git a/include/icsneo/device/devicetype.h b/include/icsneo/device/devicetype.h index 0ac6ade..4835a41 100644 --- a/include/icsneo/device/devicetype.h +++ b/include/icsneo/device/devicetype.h @@ -47,6 +47,7 @@ public: EtherBADGE = (0x00000016), RAD_A2B = (0x00000017), RADEpsilon = (0x00000018), + FIRE3_FlexRay = (0x00000025), RED = (0x00000040), ECU = (0x00000080), IEVB = (0x00000100), @@ -177,6 +178,8 @@ public: return "VividCAN"; case OBD2_SIM: return "neoOBD2 SIM"; + case FIRE3_FlexRay: + return "neoVI FIRE3 FlexRay"; case DONT_REUSE0: case DONT_REUSE1: case DONT_REUSE2: @@ -227,6 +230,7 @@ private: #define ICSNEO_DEVICETYPE_ETHERBADGE ((devicetype_t)0x00000016) #define ICSNEO_DEVICETYPE_RAD_A2B ((devicetype_t)0x00000017) #define ICSNEO_DEVICETYPE_RADEPSILON ((devicetype_t)0x00000018) +#define ICSNEO_DEVICETYPE_FIRE3FLEXRAY ((devicetype_t)0x00000025) #define ICSNEO_DEVICETYPE_RED ((devicetype_t)0x00000040) #define ICSNEO_DEVICETYPE_ECU ((devicetype_t)0x00000080) #define ICSNEO_DEVICETYPE_IEVB ((devicetype_t)0x00000100) diff --git a/include/icsneo/device/idevicesettings.h b/include/icsneo/device/idevicesettings.h index 624deed..b9aabd5 100644 --- a/include/icsneo/device/idevicesettings.h +++ b/include/icsneo/device/idevicesettings.h @@ -597,6 +597,16 @@ typedef struct { uint8_t unused; } fire2vnet_status_t, flexray_vnetz_status_t; +typedef struct +{ + uint8_t allowBoot; // 0 - disable booting Linux, 1 - enable booting Linux, Others - Disable booting linux + uint8_t useExternalWifiAntenna; // 0 for internal, 1 for external, Others - Internal + uint8_t + ethConfigurationPort; // 0 - both ports used by logger, 1 - ETH 01 for Linux Configuration, 2 - ETH 02 for Linux Configuration, Others - both ports used by logger. See defines above + uint8_t reserved[5]; +} Fire3LinuxSettings; +#define FIRE3LINUXSETTINGS_SIZE 8 +static_assert(sizeof(Fire3LinuxSettings) == FIRE3LINUXSETTINGS_SIZE, "Fire3LinuxSettings is the wrong size!"); #pragma pack(pop) #ifdef __cplusplus diff --git a/include/icsneo/device/tree/neovifire3/neovifire3.h b/include/icsneo/device/tree/neovifire3/neovifire3.h index dc327c8..58704cc 100644 --- a/include/icsneo/device/tree/neovifire3/neovifire3.h +++ b/include/icsneo/device/tree/neovifire3/neovifire3.h @@ -25,11 +25,27 @@ public: Network::NetID::HSCAN5, Network::NetID::HSCAN6, Network::NetID::HSCAN7, + Network::NetID::DWCAN9, + Network::NetID::DWCAN10, + Network::NetID::DWCAN11, + Network::NetID::DWCAN12, + Network::NetID::DWCAN13, + Network::NetID::DWCAN14, + Network::NetID::DWCAN15, + Network::NetID::DWCAN16, Network::NetID::Ethernet, + Network::NetID::Ethernet2, + Network::NetID::Ethernet3, Network::NetID::LIN, - Network::NetID::LIN2 + Network::NetID::LIN2, + Network::NetID::LIN3, + Network::NetID::LIN4, + Network::NetID::LIN5, + Network::NetID::LIN6, + Network::NetID::LIN7, + Network::NetID::LIN8, }; return supportedNetworks; } diff --git a/include/icsneo/device/tree/neovifire3/neovifire3settings.h b/include/icsneo/device/tree/neovifire3/neovifire3settings.h index e4b109a..576419f 100644 --- a/include/icsneo/device/tree/neovifire3/neovifire3settings.h +++ b/include/icsneo/device/tree/neovifire3/neovifire3settings.h @@ -25,13 +25,15 @@ typedef struct { uint16_t slaveVnetA; uint32_t reserved; uint64_t termination_enables; - union { + union + { uint64_t word; struct { uint16_t network_enables; uint16_t network_enables_2; uint16_t network_enables_3; + uint16_t network_enables_4; }; } network_enables; uint32_t pwr_man_timeout; @@ -59,14 +61,15 @@ typedef struct { ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; uint16_t iso_parity_2; uint16_t iso_msg_termination_2; - ETHERNET_SETTINGS ethernet; + ETHERNET_SETTINGS ethernet_1; TIMESYNC_ICSHARDWARE_SETTINGS timeSync; STextAPISettings text_api; - struct { + struct + { uint32_t disableUsbCheckOnBoot : 1; uint32_t enableLatencyTest : 1; uint32_t busMessagesToAndroid : 1; - uint32_t enablePcEthernetComm : 1; + uint32_t reserved1 : 1; uint32_t enableDefaultLogger : 1; uint32_t enableDefaultUpload : 1; uint32_t reserved : 26; @@ -79,7 +82,63 @@ typedef struct { uint16_t digitalIoThresholdEnable; uint16_t misc_io_initial_ddr; uint16_t misc_io_initial_latch; - ETHERNET_SETTINGS2 ethernet2; + ETHERNET_SETTINGS2 ethernet2_1; + ETHERNET_SETTINGS ethernet_2; + ETHERNET_SETTINGS2 ethernet2_2; + Fire3LinuxSettings os_settings; + + RAD_GPTP_SETTINGS gPTP; + // VEM Networks + CAN_SETTINGS can9; + CANFD_SETTINGS canfd9; + CAN_SETTINGS can10; + CANFD_SETTINGS canfd10; + CAN_SETTINGS can11; + CANFD_SETTINGS canfd11; + CAN_SETTINGS can12; + CANFD_SETTINGS canfd12; + CAN_SETTINGS can13; + CANFD_SETTINGS canfd13; + CAN_SETTINGS can14; + CANFD_SETTINGS canfd14; + CAN_SETTINGS can15; + CANFD_SETTINGS canfd15; + CAN_SETTINGS can16; + CANFD_SETTINGS canfd16; + + SWCAN_SETTINGS swcan1; + SWCAN_SETTINGS swcan2; + CAN_SETTINGS lsftcan1; + CAN_SETTINGS lsftcan2; + + ETHERNET_SETTINGS ethernet_3; + ETHERNET_SETTINGS2 ethernet2_3; + + LIN_SETTINGS lin3; + LIN_SETTINGS lin4; + LIN_SETTINGS lin5; + LIN_SETTINGS lin6; + LIN_SETTINGS lin7; + LIN_SETTINGS lin8; + + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; + uint16_t iso_parity_3; + uint16_t iso_msg_termination_3; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; + uint16_t iso_parity_4; + uint16_t iso_msg_termination_4; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_5; + uint16_t iso_parity_5; + uint16_t iso_msg_termination_5; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_6; + uint16_t iso_parity_6; + uint16_t iso_msg_termination_6; + + uint16_t selectable_network_1; + uint16_t selectable_network_2; + + uint64_t network_enables_2; + uint64_t termination_enables_2; } neovifire3_settings_t; typedef struct { diff --git a/include/icsneo/device/tree/neovifire3flexray/neovifire3flexray.h b/include/icsneo/device/tree/neovifire3flexray/neovifire3flexray.h new file mode 100644 index 0000000..b18851a --- /dev/null +++ b/include/icsneo/device/tree/neovifire3flexray/neovifire3flexray.h @@ -0,0 +1,83 @@ +#ifndef __NEOVIFIRE3FLEXRAY_H_ +#define __NEOVIFIRE3FLEXRAY_H_ + +#include "icsneo/device/device.h" +#include "icsneo/device/devicetype.h" +#include "icsneo/disk/extextractordiskreaddriver.h" +#include "icsneo/disk/neomemorydiskdriver.h" +#include "icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h" + +namespace icsneo { + +class NeoVIFIRE3FlexRay : public Device { +public: + // Serial numbers start with FF + // Ethernet MAC allocation is 1F, standard driver is Raw + ICSNEO_FINDABLE_DEVICE(NeoVIFIRE3FlexRay, DeviceType::FIRE3_FlexRay, "FF"); + + static const std::vector& GetSupportedNetworks() { + static std::vector supportedNetworks = { + Network::NetID::HSCAN, + Network::NetID::MSCAN, + Network::NetID::HSCAN2, + Network::NetID::HSCAN3, + Network::NetID::HSCAN4, + Network::NetID::HSCAN5, + Network::NetID::HSCAN6, + Network::NetID::HSCAN7, + Network::NetID::DWCAN9, + Network::NetID::DWCAN10, + Network::NetID::DWCAN11, + Network::NetID::DWCAN12, + Network::NetID::DWCAN13, + Network::NetID::DWCAN14, + Network::NetID::DWCAN15, + + Network::NetID::Ethernet, + Network::NetID::Ethernet2, + Network::NetID::Ethernet3, + + Network::NetID::LIN, + Network::NetID::LIN2, + Network::NetID::LIN3, + Network::NetID::LIN4, + + Network::NetID::FlexRay, + Network::NetID::FlexRay1a, + Network::NetID::FlexRay1b, + Network::NetID::FlexRay2, + Network::NetID::FlexRay2a, + Network::NetID::FlexRay2b, + }; + return supportedNetworks; + } + +protected: + NeoVIFIRE3FlexRay(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) { + initialize(makeDriver); + } + + virtual void setupEncoder(Encoder& encoder) override { + Device::setupEncoder(encoder); + encoder.supportCANFD = true; + } + + void setupPacketizer(Packetizer& packetizer) override { + Device::setupPacketizer(packetizer); + packetizer.align16bit = false; + } + + void setupSupportedRXNetworks(std::vector& rxNetworks) override { + for(auto& netid : GetSupportedNetworks()) + rxNetworks.emplace_back(netid); + } + + // The supported TX networks are the same as the supported RX networks for this device + void setupSupportedTXNetworks(std::vector& txNetworks) override { setupSupportedRXNetworks(txNetworks); } + + bool supportsWiVI() const override { return true; } +}; + +} + +#endif \ No newline at end of file diff --git a/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h b/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h new file mode 100644 index 0000000..8be3878 --- /dev/null +++ b/include/icsneo/device/tree/neovifire3flexray/neovifire3flexraysettings.h @@ -0,0 +1,228 @@ +#ifndef __NEOVIFIRE3FLEXRAYSETTINGS_H_ +#define __NEOVIFIRE3FLEXRAYSETTINGS_H_ + +#include +#include "icsneo/device/idevicesettings.h" + +#ifdef __cplusplus + +namespace icsneo { + +#endif + +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4201) // nameless struct/union +#endif + +#pragma pack(push, 2) +typedef struct { + uint16_t perf_en; + uint16_t network_enabled_on_boot; + uint16_t misc_io_on_report_events; + uint16_t pwr_man_enable; + int16_t iso15765_separation_time_offset; + uint16_t slaveVnetA; + uint32_t reserved; + uint64_t termination_enables; + union + { + uint64_t word; + struct + { + uint16_t network_enables; + uint16_t network_enables_2; + uint16_t network_enables_3; + uint16_t network_enables_4; + }; + } network_enables; + uint32_t pwr_man_timeout; + CAN_SETTINGS can1; + CANFD_SETTINGS canfd1; + CAN_SETTINGS can2; + CANFD_SETTINGS canfd2; + CAN_SETTINGS can3; + CANFD_SETTINGS canfd3; + CAN_SETTINGS can4; + CANFD_SETTINGS canfd4; + CAN_SETTINGS can5; + CANFD_SETTINGS canfd5; + CAN_SETTINGS can6; + CANFD_SETTINGS canfd6; + CAN_SETTINGS can7; + CANFD_SETTINGS canfd7; + CAN_SETTINGS can8; + CANFD_SETTINGS canfd8; + LIN_SETTINGS lin1; + LIN_SETTINGS lin2; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_1; + uint16_t iso_parity_1; + uint16_t iso_msg_termination_1; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_2; + uint16_t iso_parity_2; + uint16_t iso_msg_termination_2; + ETHERNET_SETTINGS ethernet_1; + TIMESYNC_ICSHARDWARE_SETTINGS timeSync; + STextAPISettings text_api; + struct + { + uint32_t disableUsbCheckOnBoot : 1; + uint32_t enableLatencyTest : 1; + uint32_t busMessagesToAndroid : 1; + uint32_t reserved1 : 1; + uint32_t enableDefaultLogger : 1; + uint32_t enableDefaultUpload : 1; + uint32_t reserved : 26; + } flags; + DISK_SETTINGS disk; + uint16_t misc_io_report_period; + uint16_t ain_threshold; + uint16_t misc_io_analog_enable; + uint16_t digitalIoThresholdTicks; + uint16_t digitalIoThresholdEnable; + uint16_t misc_io_initial_ddr; + uint16_t misc_io_initial_latch; + ETHERNET_SETTINGS2 ethernet2_1; + ETHERNET_SETTINGS ethernet_2; + ETHERNET_SETTINGS2 ethernet2_2; + Fire3LinuxSettings os_settings; + + RAD_GPTP_SETTINGS gPTP; + + CAN_SETTINGS can9; + CANFD_SETTINGS canfd9; + CAN_SETTINGS can10; + CANFD_SETTINGS canfd10; + CAN_SETTINGS can11; + CANFD_SETTINGS canfd11; + CAN_SETTINGS can12; + CANFD_SETTINGS canfd12; + CAN_SETTINGS can13; + CANFD_SETTINGS canfd13; + CAN_SETTINGS can14; + CANFD_SETTINGS canfd14; + CAN_SETTINGS can15; + CANFD_SETTINGS canfd15; + + ETHERNET_SETTINGS ethernet_3; + ETHERNET_SETTINGS2 ethernet2_3; + + LIN_SETTINGS lin3; + LIN_SETTINGS lin4; + + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_3; + uint16_t iso_parity_3; + uint16_t iso_msg_termination_3; + ISO9141_KEYWORD2000_SETTINGS iso9141_kwp_settings_4; + uint16_t iso_parity_4; + uint16_t iso_msg_termination_4; + + uint64_t network_enables_2; + uint64_t termination_enables_2; + + uint16_t flex_mode; + uint16_t flex_termination; +} neovifire3flexray_settings_t; + +typedef struct { + uint8_t backupPowerGood; + uint8_t backupPowerEnabled; + uint8_t usbHostPowerEnabled; + uint8_t ethernetActivationLineEnabled; + EthernetNetworkStatus ethernetStatus; +} neovifire3flexray_status_t; +#pragma pack(pop) + +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +#ifdef __cplusplus + +#include + +class NeoVIFIRE3FlexRaySettings : public IDeviceSettings { +public: + NeoVIFIRE3FlexRaySettings(std::shared_ptr com) : IDeviceSettings(com, sizeof(neovifire3flexray_settings_t)) {} + const CAN_SETTINGS* getCANSettingsFor(Network net) const override { + auto cfg = getStructurePointer(); + if(cfg == nullptr) + return nullptr; + switch(net.getNetID()) { + case Network::NetID::HSCAN: + return &(cfg->can1); + case Network::NetID::MSCAN: + return &(cfg->can2); + case Network::NetID::HSCAN2: + return &(cfg->can3); + case Network::NetID::HSCAN3: + return &(cfg->can4); + case Network::NetID::HSCAN4: + return &(cfg->can5); + case Network::NetID::HSCAN5: + return &(cfg->can6); + case Network::NetID::HSCAN6: + return &(cfg->can7); + case Network::NetID::HSCAN7: + return &(cfg->can8); + default: + return nullptr; + } + } + const CANFD_SETTINGS* getCANFDSettingsFor(Network net) const override { + auto cfg = getStructurePointer(); + if(cfg == nullptr) + return nullptr; + switch(net.getNetID()) { + case Network::NetID::HSCAN: + return &(cfg->canfd1); + case Network::NetID::MSCAN: + return &(cfg->canfd2); + case Network::NetID::HSCAN2: + return &(cfg->canfd3); + case Network::NetID::HSCAN3: + return &(cfg->canfd4); + case Network::NetID::HSCAN4: + return &(cfg->canfd5); + case Network::NetID::HSCAN5: + return &(cfg->canfd6); + case Network::NetID::HSCAN6: + return &(cfg->canfd7); + case Network::NetID::HSCAN7: + return &(cfg->canfd8); + default: + return nullptr; + } + } + + virtual std::vector getTerminationGroups() const override { + return { + { + Network(Network::NetID::HSCAN), + Network(Network::NetID::HSCAN3), + Network(Network::NetID::HSCAN5), + Network(Network::NetID::HSCAN7) + }, + { + Network(Network::NetID::MSCAN), + Network(Network::NetID::HSCAN2), + Network(Network::NetID::HSCAN4), + Network(Network::NetID::HSCAN6) + } + }; + } + +protected: + ICSNEO_UNALIGNED(const uint64_t*) getTerminationEnables() const override { + auto cfg = getStructurePointer(); + if(cfg == nullptr) + return nullptr; + return &cfg->termination_enables; + } +}; + +} + +#endif // __cplusplus + +#endif \ No newline at end of file diff --git a/include/icsneo/platform/posix/devices.h b/include/icsneo/platform/posix/devices.h index 28ff3d7..954a3a4 100644 --- a/include/icsneo/platform/posix/devices.h +++ b/include/icsneo/platform/posix/devices.h @@ -7,6 +7,7 @@ #include "icsneo/device/tree/neovifire/neovifire.h" #include "icsneo/device/tree/neovifire2/neovifire2.h" #include "icsneo/device/tree/neovifire3/neovifire3.h" +#include "icsneo/device/tree/neovifire3flexray/neovifire3flexray.h" #include "icsneo/device/tree/neovired2/neovired2.h" #include "icsneo/device/tree/plasion/neoviion.h" #include "icsneo/device/tree/plasion/neoviplasma.h" diff --git a/include/icsneo/platform/windows/devices.h b/include/icsneo/platform/windows/devices.h index b3143a2..3a9c758 100644 --- a/include/icsneo/platform/windows/devices.h +++ b/include/icsneo/platform/windows/devices.h @@ -7,6 +7,7 @@ #include "icsneo/device/tree/neovifire/neovifire.h" #include "icsneo/device/tree/neovifire2/neovifire2.h" #include "icsneo/device/tree/neovifire3/neovifire3.h" +#include "icsneo/device/tree/neovifire3flexray/neovifire3flexray.h" #include "icsneo/device/tree/neovired2/neovired2.h" #include "icsneo/device/tree/plasion/neoviion.h" #include "icsneo/device/tree/plasion/neoviplasma.h"