diff --git a/bindings/python/icsneopy/device/devicetype.cpp b/bindings/python/icsneopy/device/devicetype.cpp index 83cc2f67..3dfaeb2e 100644 --- a/bindings/python/icsneopy/device/devicetype.cpp +++ b/bindings/python/icsneopy/device/devicetype.cpp @@ -38,7 +38,7 @@ void init_devicetype(pybind11::module_& m) { .value("RADGalaxy2", DeviceType::Enum::RADGalaxy2) .value("RADMoon3", DeviceType::Enum::RADMoon3) .value("RADGemini", DeviceType::Enum::RADGemini) - .value("RADComet", DeviceType::Enum::RADComet) + .value("RADComet2", DeviceType::Enum::RADComet2) .value("FIRE3_FlexRay", DeviceType::Enum::FIRE3_FlexRay) .value("FIRE3_T1S_LIN", DeviceType::Enum::FIRE3_T1S_LIN) .value("FIRE3_T1S_SENT", DeviceType::Enum::FIRE3_T1S_SENT) diff --git a/device/devicefinder.cpp b/device/devicefinder.cpp index a3ee4bc0..e6925a85 100644 --- a/device/devicefinder.cpp +++ b/device/devicefinder.cpp @@ -165,10 +165,6 @@ std::vector> DeviceFinder::FindAll() { makeIfSerialMatches(dev, newFoundDevices); #endif - #ifdef __RADCOMET_H_ - makeIfSerialRangeMatches(dev, newFoundDevices); - #endif - #ifdef __RADCOMET2_H_ makeIfSerialRangeMatches(dev, newFoundDevices); #endif @@ -340,8 +336,8 @@ const std::vector& DeviceFinder::GetSupportedDevices() { RADA2B::DEVICE_TYPE, #endif - #ifdef __RADCOMET_H_ - RADComet::DEVICE_TYPE, + #ifdef __RADCOMET2_H_ + RADComet2::DEVICE_TYPE, #endif #ifdef __RADCOMET3_H_ diff --git a/include/icsneo/device/device.h b/include/icsneo/device/device.h index 02ebdc20..248544af 100644 --- a/include/icsneo/device/device.h +++ b/include/icsneo/device/device.h @@ -133,7 +133,7 @@ public: SFPModule_88q2112 = 41, RADGalaxy2 = 47, RADMoon3 = 49, - RADComet = 50, + RADComet2 = 50, Connect = 51, SFPModule_88q2221m = 52, SFPModule_88q4364 = 53, diff --git a/include/icsneo/device/devicetype.h b/include/icsneo/device/devicetype.h index 6ea412d7..cd674f53 100644 --- a/include/icsneo/device/devicetype.h +++ b/include/icsneo/device/devicetype.h @@ -53,7 +53,7 @@ public: RADEpsilonXL = icsneoc2_devicetype_rad_epsilon_xl, RADGalaxy2 = icsneoc2_devicetype_rad_galaxy2, RADMoon3 = icsneoc2_devicetype_rad_moon3, - RADComet = icsneoc2_devicetype_rad_comet, + RADComet2 = icsneoc2_devicetype_rad_comet2, FIRE3_FlexRay = icsneoc2_devicetype_fire3_flexray, Connect = icsneoc2_devicetype_connect, RADComet3 = icsneoc2_devicetype_rad_comet3, @@ -154,8 +154,8 @@ public: return "RAD-Moon 3"; case RADGemini: return "RAD-Gemini"; - case RADComet: - return "RAD-Comet"; + case RADComet2: + return "RAD-Comet 2"; case RED: return "neoVI RED"; case ECU: @@ -269,7 +269,7 @@ private: #define ICSNEO_DEVICETYPE_RADEPSILONXL ((devicetype_t)icsneoc2_devicetype_rad_epsilon_xl) #define ICSNEO_DEVICETYPE_RADGALAXY2 ((devicetype_t)icsneoc2_devicetype_rad_galaxy2) #define ICSNEO_DEVICETYPE_RADMoon3 ((devicetype_t)icsneoc2_devicetype_rad_moon3) -#define ICSNEO_DEVICETYPE_RADCOMET ((devicetype_t)icsneoc2_devicetype_rad_comet) +#define ICSNEO_DEVICETYPE_RADCOMET2 ((devicetype_t)icsneoc2_devicetype_rad_comet2) #define ICSNEO_DEVICETYPE_FIRE3FLEXRAY ((devicetype_t)icsneoc2_devicetype_fire3_flexray) #define ICSNEO_DEVICETYPE_CONNECT ((devicetype_t)icsneoc2_devicetype_connect) #define ICSNEO_DEVICETYPE_RADCOMET3 ((devicetype_t)icsneoc2_devicetype_rad_comet3) diff --git a/include/icsneo/device/tree/radcomet/radcomet.h b/include/icsneo/device/tree/radcomet/radcomet.h deleted file mode 100644 index 4a8080ca..00000000 --- a/include/icsneo/device/tree/radcomet/radcomet.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef __RADCOMET_H_ -#define __RADCOMET_H_ - -#ifdef __cplusplus - -#include "icsneo/device/tree/radcomet/radcometbase.h" -#include "icsneo/device/tree/radcomet/radcometsettings.h" - -namespace icsneo { - -class RADComet : public RADCometBase { -public: - - // Serial numbers start with RC - // USB PID is 0x1207, standard driver is DXX - // Ethernet MAC allocation is 0x1D, standard driver is Raw - ICSNEO_FINDABLE_DEVICE_BY_SERIAL_RANGE(RADComet, DeviceType::RADComet, "RC0000", "RC0299"); - - std::string getProductName() const override { - return "RAD-Comet"; - } - -protected: - RADComet(neodevice_t neodevice, const driver_factory_t& makeDriver) : RADCometBase(neodevice) { - initialize(makeDriver); - } - -}; - -} - -#endif // __cplusplus - -#endif diff --git a/include/icsneo/device/tree/radcomet/radcomet2.h b/include/icsneo/device/tree/radcomet/radcomet2.h index 6c59fd2b..1f07d4ee 100644 --- a/include/icsneo/device/tree/radcomet/radcomet2.h +++ b/include/icsneo/device/tree/radcomet/radcomet2.h @@ -3,39 +3,103 @@ #ifdef __cplusplus -#include "icsneo/device/tree/radcomet/radcometbase.h" +#include "icsneo/device/device.h" +#include "icsneo/device/devicetype.h" #include "icsneo/device/tree/radcomet/radcometsettings.h" namespace icsneo { -class RADComet2 : public RADCometBase { +class RADComet2 : public Device { public: - // Serial numbers start with RC, Comet2 starts at RC0300 + // Serial numbers start with RC // USB PID is 0x1207, standard driver is DXX // Ethernet MAC allocation is 0x1D, standard driver is Raw - ICSNEO_FINDABLE_DEVICE_BY_SERIAL_RANGE(RADComet2, DeviceType::RADComet, "RC0300", "RCZZZZ"); + ICSNEO_FINDABLE_DEVICE_BY_SERIAL_RANGE(RADComet2, DeviceType::RADComet2, "RC0300", "RCZZZZ"); + + static const std::vector& GetSupportedNetworks() { + static std::vector supportedNetworks = { + Network::NetID::DWCAN_01, + Network::NetID::DWCAN_02, + + Network::NetID::ETHERNET_01, + + Network::NetID::AE_01, + Network::NetID::AE_02, + Network::NetID::AE_03, + + Network::NetID::MDIO_01, + Network::NetID::MDIO_02, + Network::NetID::MDIO_03, + Network::NetID::MDIO_04, + + Network::NetID::LIN_01, + Network::NetID::ISO9141_01, + }; + return supportedNetworks; + } std::string getProductName() const override { return "RAD-Comet 2"; } - const std::vector& GetSupportedNetworks() override { - static std::vector supportedNetworks = RADCometBase::GetSupportedNetworks(); - supportedNetworks.push_back(Network::NetID::AE_03); - supportedNetworks.push_back(Network::NetID::MDIO_04); - supportedNetworks.push_back(Network::NetID::LIN_01); - supportedNetworks.push_back(Network::NetID::ISO9141_01); - return supportedNetworks; + bool getEthPhyRegControlSupported() const override { return true; } + bool supportsTC10() const override { return true; } + bool supportsGPTP() const override { return true; } + + ProductID getProductID() const override { + return ProductID::RADComet2; } - bool supportsTC10() const override { return true; } + const std::vector& getChipInfo() const override { + static std::vector chips = { + {ChipID::RADComet_ZYNQ, true, "ZCHIP", "RADComet_SW_bin", 0, FirmwareType::Zip}, + }; + return chips; + } + + BootloaderPipeline getBootloader() override { + return BootloaderPipeline() + .add() + .add(ChipID::RADComet_ZYNQ, BootloaderCommunication::RAD) + .add(ChipID::RADComet_ZYNQ) + .add(std::chrono::milliseconds(3000)) + .add(); + } protected: - RADComet2(neodevice_t neodevice, const driver_factory_t& makeDriver) : RADCometBase(neodevice) { + RADComet2(neodevice_t neodevice, const driver_factory_t& makeDriver) : Device(neodevice) { initialize(makeDriver); } + void setupPacketizer(Packetizer& packetizer) override { + Device::setupPacketizer(packetizer); + packetizer.disableChecksum = true; + packetizer.align16bit = false; + } + + void setupEncoder(Encoder& encoder) override { + Device::setupEncoder(encoder); + encoder.supportCANFD = true; + encoder.supportEthPhy = true; + } + + void setupDecoder(Decoder& decoder) override { + Device::setupDecoder(decoder); + decoder.timestampResolution = 10; + } + + void setupSupportedRXNetworks(std::vector& rxNetworks) override { + for(auto& netid : GetSupportedNetworks()) + rxNetworks.emplace_back(netid); + } + + void setupSupportedTXNetworks(std::vector& txNetworks) override { setupSupportedRXNetworks(txNetworks); } + + std::optional getCoreminiStartAddressFlash() const override { + return 32*1024*1024; + } + }; } diff --git a/include/icsneo/device/tree/radcomet/radcometbase.h b/include/icsneo/device/tree/radcomet/radcometbase.h deleted file mode 100644 index 4ce9ce7c..00000000 --- a/include/icsneo/device/tree/radcomet/radcometbase.h +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef __RADCOMETBASE_H_ -#define __RADCOMETBASE_H_ - -#ifdef __cplusplus - -#include "icsneo/device/device.h" -#include "icsneo/device/devicetype.h" - -namespace icsneo { - -class RADCometBase : public Device { -public: - virtual const std::vector& GetSupportedNetworks() { - static std::vector supportedNetworks = { - Network::NetID::DWCAN_01, - Network::NetID::DWCAN_02, - - Network::NetID::ETHERNET_01, - - Network::NetID::AE_01, - Network::NetID::AE_02, - - Network::NetID::MDIO_01, - Network::NetID::MDIO_02, - Network::NetID::MDIO_03, - }; - return supportedNetworks; - } - - bool getEthPhyRegControlSupported() const override { return true; } - bool supportsGPTP() const override { return true; } - - ProductID getProductID() const override { - return ProductID::RADComet; - } - - const std::vector& getChipInfo() const override { - static std::vector chips = { - {ChipID::RADComet_ZYNQ, true, "ZCHIP", "RADComet_SW_bin", 0, FirmwareType::Zip}, - }; - return chips; - } - - BootloaderPipeline getBootloader() override { - return BootloaderPipeline() - .add() - .add(ChipID::RADComet_ZYNQ, BootloaderCommunication::RAD) - .add(ChipID::RADComet_ZYNQ) - .add(std::chrono::milliseconds(3000)) - .add(); - } - -protected: - using Device::Device; - - void setupPacketizer(Packetizer& packetizer) override { - Device::setupPacketizer(packetizer); - packetizer.disableChecksum = true; - packetizer.align16bit = false; - } - - void setupEncoder(Encoder& encoder) override { - Device::setupEncoder(encoder); - encoder.supportCANFD = true; - encoder.supportEthPhy = true; - } - - void setupDecoder(Decoder& decoder) override { - Device::setupDecoder(decoder); - decoder.timestampResolution = 10; // Timestamps are in 10ns increments instead of the usual 25ns - } - - 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); } - - std::optional getCoreminiStartAddressFlash() const override { - return 32*1024*1024; - } - -}; - -} - -#endif // __cplusplus - -#endif \ No newline at end of file diff --git a/include/icsneo/icsnVC40.h b/include/icsneo/icsnVC40.h index 3a1c12e8..4dc8b1e6 100644 --- a/include/icsneo/icsnVC40.h +++ b/include/icsneo/icsnVC40.h @@ -223,7 +223,7 @@ typedef unsigned __int64 uint64_t; #define NEODEVICE_RAD_GALAXY_2 (0x00000021) #define NEODEVICE_RAD_BMS (0x00000022) #define NEODEVICE_RADMOON3 (0x00000023) -#define NEODEVICE_RADCOMET (0x00000024) +#define NEODEVICE_RADCOMET2 (0x00000024) #define NEODEVICE_FIRE3_FLEXRAY (0x00000025) #define NEODEVICE_RED2_OEM (0x00000026) #define NEODEVICE_RADCOMET3 (0x00000027) diff --git a/include/icsneo/icsneoc2types.h b/include/icsneo/icsneoc2types.h index 8df4218c..ada34bea 100644 --- a/include/icsneo/icsneoc2types.h +++ b/include/icsneo/icsneoc2types.h @@ -43,7 +43,7 @@ typedef enum _icsneoc2_devicetype_t { icsneoc2_devicetype_rad_epsilon_xl = 0x0000001e, icsneoc2_devicetype_rad_galaxy2 = 0x00000021, icsneoc2_devicetype_rad_moon3 = 0x00000023, - icsneoc2_devicetype_rad_comet = 0x00000024, + icsneoc2_devicetype_rad_comet2 = 0x00000024, icsneoc2_devicetype_fire3_flexray = 0x00000025, icsneoc2_devicetype_connect = 0x00000026, icsneoc2_devicetype_rad_comet3 = 0x00000027, diff --git a/include/icsneo/platform/posix/devices.h b/include/icsneo/platform/posix/devices.h index 38056f14..9419a957 100644 --- a/include/icsneo/platform/posix/devices.h +++ b/include/icsneo/platform/posix/devices.h @@ -14,7 +14,6 @@ #include "icsneo/device/tree/plasion/neoviion.h" #include "icsneo/device/tree/plasion/neoviplasma.h" #include "icsneo/device/tree/rada2b/rada2b.h" -#include "icsneo/device/tree/radcomet/radcomet.h" #include "icsneo/device/tree/radcomet/radcomet2.h" #include "icsneo/device/tree/radcomet3/radcomet3.h" #include "icsneo/device/tree/radmoont1s/radmoont1s.h" diff --git a/include/icsneo/platform/windows/devices.h b/include/icsneo/platform/windows/devices.h index 56519599..ba5ac275 100644 --- a/include/icsneo/platform/windows/devices.h +++ b/include/icsneo/platform/windows/devices.h @@ -14,7 +14,6 @@ #include "icsneo/device/tree/plasion/neoviion.h" #include "icsneo/device/tree/plasion/neoviplasma.h" #include "icsneo/device/tree/rada2b/rada2b.h" -#include "icsneo/device/tree/radcomet/radcomet.h" #include "icsneo/device/tree/radcomet/radcomet2.h" #include "icsneo/device/tree/radcomet3/radcomet3.h" #include "icsneo/device/tree/radmoont1s/radmoont1s.h" diff --git a/test/unit/icsneoc2.cpp b/test/unit/icsneoc2.cpp index 032b5fe2..ed3610eb 100644 --- a/test/unit/icsneoc2.cpp +++ b/test/unit/icsneoc2.cpp @@ -401,7 +401,7 @@ TEST(icsneoc2, test_icsneoc2_devicetype_t) ASSERT_EQ(icsneoc2_devicetype_rad_epsilon_xl, 0x0000001e); ASSERT_EQ(icsneoc2_devicetype_rad_galaxy2, 0x00000021); ASSERT_EQ(icsneoc2_devicetype_rad_moon3, 0x00000023); - ASSERT_EQ(icsneoc2_devicetype_rad_comet, 0x00000024); + ASSERT_EQ(icsneoc2_devicetype_rad_comet2, 0x00000024); ASSERT_EQ(icsneoc2_devicetype_fire3_flexray, 0x00000025); ASSERT_EQ(icsneoc2_devicetype_connect, 0x00000026); ASSERT_EQ(icsneoc2_devicetype_rad_comet3, 0x00000027); @@ -464,7 +464,7 @@ TEST(icsneoc2, test_devicetype_enum_alignment) ASSERT_EQ(icsneo::DeviceType::RADEpsilon, icsneoc2_devicetype_rad_epsilon); ASSERT_EQ(icsneo::DeviceType::RADEpsilonXL, icsneoc2_devicetype_rad_epsilon_xl); ASSERT_EQ(icsneo::DeviceType::RADMoon3, icsneoc2_devicetype_rad_moon3); - ASSERT_EQ(icsneo::DeviceType::RADComet, icsneoc2_devicetype_rad_comet); + ASSERT_EQ(icsneo::DeviceType::RADComet2, icsneoc2_devicetype_rad_comet2); ASSERT_EQ(icsneo::DeviceType::FIRE3_FlexRay, icsneoc2_devicetype_fire3_flexray); ASSERT_EQ(icsneo::DeviceType::Connect, icsneoc2_devicetype_connect); ASSERT_EQ(icsneo::DeviceType::RADComet3, icsneoc2_devicetype_rad_comet3);