diff --git a/cd_utils/CMakeLists.txt b/cd_utils/CMakeLists.txt new file mode 100644 index 0000000..55be5cf --- /dev/null +++ b/cd_utils/CMakeLists.txt @@ -0,0 +1,67 @@ +project(cd_utils) +cmake_minimum_required(VERSION 2.6) +if (NOT LIBPROJECT) + find_package(PIP REQUIRED) +endif () +if (MINGW) + find_package(MinGW REQUIRED) +endif() +include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${PIP_INCLUDES}) +set(PULT_NAME "cd_pult") +option(PULT "Build ${PULT_NAME}" 1) +option(LIB "System install" 1) +option(DEBUG "Build with -g3" 0) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wall") +if (DEBUG) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3") +endif () +set(CPPS_UTILS "cdutils.cpp") +set(HDRS_UTILS "cdutils.h") +if (DEFINED ENV{QNX_HOST}) + add_library(${PROJECT_NAME} STATIC ${CPPS_UTILS} ${HDRS_UTILS}) +else () + add_library(${PROJECT_NAME} SHARED ${CPPS_UTILS} ${HDRS_UTILS}) +endif () +target_link_libraries(${PROJECT_NAME} ${PIP_LIBRARY}) + +add_executable(cdutilsngtest WIN32 "cdutilstest.cpp") +target_link_libraries(cdutilsngtest ${PIP_LIBRARY} ${PROJECT_NAME}) + +# if (NOT DEFINED ENV{QNX_HOST}) + # if (PULT) + # find_package(Qt4 REQUIRED) + # find_package(OpenGL REQUIRED) + # include_directories(${QT_INCLUDES}) + # set(CPPS "kx_pult.cpp" "kx_pult.h" "kx_pult.ui" "main_kx_pult.cpp") + # set(MOCS "kx_pult.h") + # file(GLOB UIS "*.ui") + # file(GLOB RES "*.qrc") + # qt4_wrap_cpp(CMOCS ${MOCS} OPTIONS -nw) + # qt4_wrap_ui(CUIS ${UIS}) + # qt4_add_resources(RESS ${RES}) + # add_executable(${KX_PULT_NAME} WIN32 ${CPPS} ${CMOCS} ${CUIS} ${RESS} ${MOCS}) + # set(LIBS ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTOPENGL_LIBRARY} ${OPENGL_LIBRARIES} ${PIP_LIBRARY} qad_graphic qad_utils qad_widgets) + # target_link_libraries(${KX_PULT_NAME} ${LIBS} ${PROJECT_NAME}) + # endif () +# endif () +# if (LIB) + # if (WIN32) + # set(CMAKE_INSTALL_PREFIX ${MINGW_DIR}) + # install(FILES ${HDRS_UTILS} DESTINATION ${MINGW_INCLUDE}) + # install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB}) + # install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_BIN}) + # else () + # set(CMAKE_INSTALL_PREFIX /usr) + # install(FILES ${HDRS_UTILS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include) + # install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) + # endif () + # message(STATUS "Install to system \"${CMAKE_INSTALL_PREFIX}\"") +# else () + # install(TARGETS ${PROJECT_NAME} DESTINATION bin) + # message(STATUS "Install to local \"bin\"") +# endif () +# if (NOT DEFINED ENV{QNX_HOST}) + # if (KX_PULT) + # install(TARGETS ${KX_PULT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) + # endif () +# endif () diff --git a/cd_utils/cdutils.cpp b/cd_utils/cdutils.cpp new file mode 100644 index 0000000..a976337 --- /dev/null +++ b/cd_utils/cdutils.cpp @@ -0,0 +1,40 @@ +#include "cdutils.h" + +volatile double X[KX_COUNT]; +volatile PIMap K; + +static const char connection_config[] = +"include = ip.conf\n\ +[connection]\n\ +device.c = eth://UDP:127.0.0.1:36102:127.0.0.1:36101 #s\n\ +device.c.disconnectTimeout = 3.00000000 #f\n\ +device.k = eth://UDP:127.0.0.1:26102:127.0.0.1:26101 #s\n\ +device.k.disconnectTimeout = 3.00000000 #f\n\ +device.x = eth://UDP:127.0.0.1:16102:127.0.0.1:16101 #s\n\ +device.x.disconnectTimeout = 3.00000000 #f\n\ +device.c_eth = eth://UDP:${ip_kx}:36102:${ip_kxpult}:36101 #s\n\ +device.c_eth.disconnectTimeout = 3.00000000 #f\n\ +device.k_eth = eth://UDP:${ip_kx}:26102:${ip_kxpult}:26101 #s\n\ +device.k_eth.disconnectTimeout = 3.00000000 #f\n\ +device.x_eth = eth://UDP:${ip_kx}:16102:${ip_kxpult}:16101 #s\n\ +device.x_eth.disconnectTimeout = 3.00000000 #f\n\ +channel.0.from = eth://UDP:127.0.0.1:16102:127.0.0.1:16101 #s\n\ +channel.0.to = eth://UDP:${ip_kx}:16102:${ip_kxpult}:16101 #s\n\ +channel.1.from = eth://UDP:127.0.0.1:26102:127.0.0.1:26101 #s\n\ +channel.1.to = eth://UDP:${ip_kx}:26102:${ip_kxpult}:26101 #s\n\ +channel.2.from = eth://UDP:127.0.0.1:36102:127.0.0.1:36101 #s\n\ +channel.2.to = eth://UDP:${ip_kx}:36102:${ip_kxpult}:36101 #s\n\ +[]\n\ +connectionmodel = AAAWNHja7ZbfShtBFMa/Xf9UrYLSXnqhErxrdSNYKBRXEMQbEVGhBBRJgob4J6SxSZBC38ELb32UBR/AV/ARfAP9MjmzyQ7TGGkaGzeznMycmTNnZn/zLRkAH5HGOc74ZNkqIac8YBhwLlk7tEHUi1trP7KwHqCN+AhLLeYHpqC7HEeFqbLygJal3XHfPjxE2/kX69UxYK32en62vnqwIXvJwOr7m1JLvPZZ3tGmBR0ErSNYXY20gbuPvxl/eSaKuxxY/RC/xPfxdwb/3u8o7u+w+iF+ie/j7wj+IBXFH+zD6mvcOr7L+PXW3xz+nIH7KLD6If4c+urvIP6qgb96Y/VD/NW/xa/W5rj7SeImg2Jg5nRlji7M4dwJk1U9jzaOAz4lVFHgHUuOsjEHo9IXnrceXJe+cbXQGQ5xak3wgTYG9ZPnSlmudWykuo7sJ8OYn7zppa3pDnS6PUn1FQt8dnkYW2wncMmpBYblUcEv9iSxDA+LrM3RAi5wwhzNUZ6xtW+Rtzzl9TPTGtOAkSAlCeZpc5yc48cQvdPusK+G7pzbKVlST6gT90ciX9Rgk8TnZdIYyigyWUntEGrHRbYPkWkIq0k0CfSCaCqvIRqvLdF48RONX7jvBdGkX0M0S22JZik2opk1RaP/Ev8gmttOimalTdG816fsElE0xdULxJLSabatYvEoii/4zGOvm2fIpdV4jISi7zH/uVDy3RVK8hmhJGMolAR6QSiV7grFe0YoMbivPAGq7YwD" + ; + +CDUtils::CDUtils() { + PIString s(connection_config); + connection.configureFromString(&s); +// connection.start(); +} + +void CDUtils::test() { + //piCoutObj << connection.makeConfig(); + piCoutObj << connection.boundedDevices().size(); +} diff --git a/cd_utils/cdutils.h b/cd_utils/cdutils.h new file mode 100644 index 0000000..2b356b6 --- /dev/null +++ b/cd_utils/cdutils.h @@ -0,0 +1,25 @@ +#ifndef CDUTILS_H +#define CDUTILS_H + +#include "piconnection.h" +#include "pidatatransfer.h" + + +#define KX_COUNT 16384 + +extern volatile double X[KX_COUNT]; +extern volatile PIMap K; + +class CDUtils : public PIObject +{ + PIOBJECT(CDUtils) +public: + CDUtils(); + void test(); + +private: + PIConnection connection; + +}; + +#endif // CDUTILS_H diff --git a/cd_utils/cdutilstest.cpp b/cd_utils/cdutilstest.cpp new file mode 100644 index 0000000..84a1654 --- /dev/null +++ b/cd_utils/cdutilstest.cpp @@ -0,0 +1,9 @@ +#include "cdutils.h" + +int main(int argc, char *argv[]) { + CDUtils cd; + piMSleep(1000); + cd.test(); + return 0; +} +