diff --git a/HARDWARE.md b/HARDWARE.md index 56669fd..defabbe 100644 --- a/HARDWARE.md +++ b/HARDWARE.md @@ -4,6 +4,8 @@ Hardware STM32 devices ValueCAN 4 CAN 2.0 works + neoOBD2 PRO + CAN 2.0 works FTDI devices neoVI FIRE diff --git a/device/devicefinder.cpp b/device/devicefinder.cpp index 7438c60..71a5a8b 100644 --- a/device/devicefinder.cpp +++ b/device/devicefinder.cpp @@ -1,4 +1,5 @@ #include "device/include/devicefinder.h" +#include "device/neoobd2pro/include/neoobd2pro.h" #include "device/neovifire/include/neovifire.h" #include "device/neovifire2/include/neovifire2.h" #include "device/plasion/include/neoviion.h" @@ -15,6 +16,7 @@ std::vector> DeviceFinder::FindAll() { std::vector> foundDevices; std::vector>> findResults; + findResults.push_back(NeoOBD2PRO::Find()); findResults.push_back(NeoVIFIRE::Find()); findResults.push_back(NeoVIFIRE2::Find()); findResults.push_back(NeoVIION::Find()); diff --git a/device/neoobd2pro/include/neoobd2pro.h b/device/neoobd2pro/include/neoobd2pro.h new file mode 100644 index 0000000..d5afa45 --- /dev/null +++ b/device/neoobd2pro/include/neoobd2pro.h @@ -0,0 +1,32 @@ +#ifndef __NEOOBD2PRO_H_ +#define __NEOOBD2PRO_H_ + +#include "device/include/device.h" +#include "platform/include/stm32.h" + +namespace icsneo { + +class NeoOBD2PRO : public Device { +public: + // Serial numbers are NP**** + static constexpr const char* PRODUCT_NAME = "neoOBD2 PRO"; + static constexpr const uint16_t USB_PRODUCT_ID = 0x1103; + NeoOBD2PRO(neodevice_t neodevice) : Device(neodevice) { + com = std::make_shared(std::make_shared(getWritableNeoDevice())); + setProductName(PRODUCT_NAME); + usbProductId = USB_PRODUCT_ID; + } + + static std::vector> Find() { + std::vector> found; + + for(auto neodevice : STM32::FindByProduct(USB_PRODUCT_ID)) + found.push_back(std::make_shared(neodevice)); + + return found; + } +}; + +}; + +#endif \ No newline at end of file