#ifndef __NEOVIION_H_ #define __NEOVIION_H_ #ifdef __cplusplus #include "icsneo/device/tree/plasion/plasion.h" #include "icsneo/device/devicetype.h" #include "icsneo/platform/ftdi.h" #include "icsneo/disk/plasiondiskreaddriver.h" namespace icsneo { class NeoVIION : public Plasion { public: static constexpr DeviceType::Enum DEVICE_TYPE = DeviceType::ION; static constexpr const uint16_t PRODUCT_ID = 0x0901; static std::vector> Find() { std::vector> found; for(auto neodevice : FTDI::FindByProduct(PRODUCT_ID)) found.emplace_back(new NeoVIION(neodevice)); return found; } private: NeoVIION(neodevice_t neodevice) : Plasion(neodevice) { initialize(); getWritableNeoDevice().type = DEVICE_TYPE; productId = PRODUCT_ID; } virtual std::shared_ptr makeCommunication( std::unique_ptr transport, std::function()> makeConfiguredPacketizer, std::unique_ptr encoder, std::unique_ptr decoder ) override { return std::make_shared( report, std::move(transport), makeConfiguredPacketizer, std::move(encoder), std::move(decoder), 1 // 2 ); } }; } #endif // __cplusplus #endif