diff --git a/CMakeLists.txt b/CMakeLists.txt index 81aa99a48..4d5cfedc4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,6 +123,9 @@ pkg_check_modules(CGRAPH IMPORTED_TARGET libcgraph>=2.30) pkg_check_modules(GVC IMPORTED_TARGET libgvc>=2.30) pkg_check_modules(LIBUSB IMPORTED_TARGET libusb-1.0>=1.0.23) pkg_check_modules(NANOMSG IMPORTED_TARGET nanomsg) +pkg_check_modules(LIBFT4222 IMPORTED_TARGET libft4222) #FT4222H Node +pkg_check_modules(LIBFTD2XX IMPORTED_TARGET libftd2xx) + if(NOT NANOMSG_FOUND) pkg_check_modules(NANOMSG IMPORTED_TARGET libnanomsg>=1.0.0) endif() @@ -169,6 +172,9 @@ cmake_dependent_option(WITH_NODE_ETHERCAT "Build with ethercat node-type" cmake_dependent_option(WITH_NODE_EXAMPLE "Build with example node-type" ON "" OFF) cmake_dependent_option(WITH_NODE_EXEC "Build with exec node-type" ON "" OFF) cmake_dependent_option(WITH_NODE_FILE "Build with file node-type" ON "" OFF) + +cmake_dependent_option(WITH_NODE_FT4222 "Build with ft4222 node-type" ON "LIBFT4222_FOUND;LIBFTD2XX_FOUND" OFF) #FT4222H Node + cmake_dependent_option(WITH_NODE_FPGA "Build with fpga node-type" ON "WITH_FPGA" OFF) cmake_dependent_option(WITH_NODE_IEC61850 "Build with iec61850 node-types" ON "LIBIEC61850_FOUND" OFF) cmake_dependent_option(WITH_NODE_INFINIBAND "Build with infiniband node-type" ON "FALSE; IBVerbs_FOUND; RDMACM_FOUND" OFF) # Infiniband node-type is currenly broken @@ -191,6 +197,10 @@ cmake_dependent_option(WITH_NODE_ULDAQ "Build with uldaq node-type" cmake_dependent_option(WITH_NODE_WEBSOCKET "Build with websocket node-type" ON "WITH_WEB; LIBWEBSOCKETS_FOUND" OFF) cmake_dependent_option(WITH_NODE_ZEROMQ "Build with zeromq node-type" ON "LIBZMQ_FOUND" OFF) + + + + # Add more build configurations include(cmake/config/Debug.cmake) include(cmake/config/Release.cmake) @@ -259,6 +269,9 @@ add_feature_info(DOC WITH_DOC "Build docum add_feature_info(NODE_AMQP WITH_NODE_AMQP "Build with amqp node-type") add_feature_info(NODE_COMEDI WITH_NODE_COMEDI "Build with comedi node-type") add_feature_info(NODE_FILE WITH_NODE_FILE "Build with file node-type") + +add_feature_info(WITH_NODE_FT4222 WITH_NODE_FT4222 "Build with ft4222 node-type") #FT4222 Node + add_feature_info(NODE_IEC61850 WITH_NODE_IEC61850 "Build with iec61850 node-types") add_feature_info(NODE_INFINIBAND WITH_NODE_INFINIBAND "Build with infiniband node-type") add_feature_info(NODE_INFLUXDB WITH_NODE_INFLUXDB "Build with influxdb node-type") diff --git a/include/villas/nodes/ft4222.hpp b/include/villas/nodes/ft4222.hpp new file mode 100644 index 000000000..e69de29bb diff --git a/lib/nodes/CMakeLists.txt b/lib/nodes/CMakeLists.txt index 77c603b67..fde91f9be 100644 --- a/lib/nodes/CMakeLists.txt +++ b/lib/nodes/CMakeLists.txt @@ -66,6 +66,12 @@ if(WITH_NODE_ULDAQ) list(APPEND LIBRARIES PkgConfig::LIBULDAQ) endif() +if(WITH_NODE_FT4222) + list(APPEND NODE_SRC ft4222h.cpp) + list(APPEND LIBRARIES PkgConfig::LIBFT4222) + list(APPEND LIBRARIES PkgConfig::LIBFTD2XX) +endif() + # Enable shared memory node-type if(WITH_NODE_SHMEM) list(APPEND NODE_SRC shmem.cpp) diff --git a/lib/nodes/ft4222h.cpp b/lib/nodes/ft4222h.cpp new file mode 100644 index 000000000..e69de29bb diff --git a/tmp/test_ft4222.conf b/tmp/test_ft4222.conf new file mode 100644 index 000000000..cc7204484 --- /dev/null +++ b/tmp/test_ft4222.conf @@ -0,0 +1,15 @@ +nodes = { + ft_node = { + type = "ft4222" + in = { + sample_rate = 5000, + vectorize = 100 + } + } +} + +paths = ( + { + in = "ft_node" + } +)