diff --git a/CMakeLists.txt b/CMakeLists.txt index a81ac95..55a22f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,13 +4,13 @@ project(hoymilesClient VERSION 0.1.0 LANGUAGES C CXX) include(CTest) enable_testing() -include_directories(inc) +include_directories(inc inc/libmodbus) -file(GLOB SOURCES src/*.cpp src/*.c) +file(GLOB SOURCES src/*.cpp src/libmodbus/*.c) add_executable(hoymilesClient_exec ${SOURCES}) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/inc/config.h) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_SOURCE_DIR}/inc/libmodbus/config.h) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) diff --git a/inc/hoymiles.h b/inc/hoymiles.h new file mode 100644 index 0000000..72be251 --- /dev/null +++ b/inc/hoymiles.h @@ -0,0 +1,19 @@ +#ifndef HOYMILES_H +#define HOYMILES_H + +struct _modbus; +typedef _modbus modbus_t; + +class Dtu{ + private: + modbus_t *modbus_t; + + public: + Dtu(const char *ip_address, int port); + + void readTest(); + + ~Dtu(); +}; + +#endif \ No newline at end of file diff --git a/inc/config.h b/inc/libmodbus/config.h similarity index 100% rename from inc/config.h rename to inc/libmodbus/config.h diff --git a/inc/modbus-private.h b/inc/libmodbus/modbus-private.h similarity index 100% rename from inc/modbus-private.h rename to inc/libmodbus/modbus-private.h diff --git a/inc/modbus-rtu-private.h b/inc/libmodbus/modbus-rtu-private.h similarity index 100% rename from inc/modbus-rtu-private.h rename to inc/libmodbus/modbus-rtu-private.h diff --git a/inc/modbus-rtu.h b/inc/libmodbus/modbus-rtu.h similarity index 100% rename from inc/modbus-rtu.h rename to inc/libmodbus/modbus-rtu.h diff --git a/inc/modbus-tcp-private.h b/inc/libmodbus/modbus-tcp-private.h similarity index 100% rename from inc/modbus-tcp-private.h rename to inc/libmodbus/modbus-tcp-private.h diff --git a/inc/modbus-tcp.h b/inc/libmodbus/modbus-tcp.h similarity index 100% rename from inc/modbus-tcp.h rename to inc/libmodbus/modbus-tcp.h diff --git a/inc/modbus-version.h b/inc/libmodbus/modbus-version.h similarity index 100% rename from inc/modbus-version.h rename to inc/libmodbus/modbus-version.h diff --git a/inc/modbus.h b/inc/libmodbus/modbus.h similarity index 100% rename from inc/modbus.h rename to inc/libmodbus/modbus.h diff --git a/src/hoymiles.cpp b/src/hoymiles.cpp new file mode 100644 index 0000000..fbb5821 --- /dev/null +++ b/src/hoymiles.cpp @@ -0,0 +1,16 @@ +#include "hoymiles.h" +#include "modbus.h" + +Dtu::Dtu(const char *ip_address, int port){ + this->modbus_t = modbus_new_tcp(ip_address, port); + modbus_connect(this->modbus_t); +} + +void Dtu::readTest(){ + uint16_t tempArray[32]; + modbus_read_registers(this->modbus_t, 0x13ef, 1, tempArray); +} + +Dtu::~Dtu(){ + delete this->modbus_t; +} \ No newline at end of file diff --git a/src/modbus-data.c b/src/libmodbus/modbus-data.c similarity index 100% rename from src/modbus-data.c rename to src/libmodbus/modbus-data.c diff --git a/src/modbus-rtu.c b/src/libmodbus/modbus-rtu.c similarity index 100% rename from src/modbus-rtu.c rename to src/libmodbus/modbus-rtu.c diff --git a/src/modbus-tcp.c b/src/libmodbus/modbus-tcp.c similarity index 100% rename from src/modbus-tcp.c rename to src/libmodbus/modbus-tcp.c diff --git a/src/modbus.c b/src/libmodbus/modbus.c similarity index 100% rename from src/modbus.c rename to src/libmodbus/modbus.c diff --git a/src/main.cpp b/src/main.cpp index f2123d1..8b9f87c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,16 @@ #include +#include + +#include "hoymiles.h" +#include "modbus.h" int main(){ - std::cout << "Hello world"; + std::string ip_address {"192.168.31.136"}; + int port {502}; + + Dtu dtu {ip_address.c_str(), port}; + dtu.readTest(); return 0; } \ No newline at end of file diff --git a/src/modbus-version.h.in b/src/modbus-version.h.in deleted file mode 100644 index 6b79b51..0000000 --- a/src/modbus-version.h.in +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright © Stéphane Raimbault - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef MODBUS_VERSION_H -#define MODBUS_VERSION_H - -/* The major version, (1, if %LIBMODBUS_VERSION is 1.2.3) */ -#define LIBMODBUS_VERSION_MAJOR (@LIBMODBUS_VERSION_MAJOR@) - -/* The minor version (2, if %LIBMODBUS_VERSION is 1.2.3) */ -#define LIBMODBUS_VERSION_MINOR (@LIBMODBUS_VERSION_MINOR@) - -/* The micro version (3, if %LIBMODBUS_VERSION is 1.2.3) */ -#define LIBMODBUS_VERSION_MICRO (@LIBMODBUS_VERSION_MICRO@) - -/* The full version, like 1.2.3 */ -#define LIBMODBUS_VERSION @LIBMODBUS_VERSION@ - -/* The full version, in string form (suited for string concatenation) - */ -#define LIBMODBUS_VERSION_STRING "@LIBMODBUS_VERSION@" - -/* Numerically encoded version, eg. v1.2.3 is 0x010203 */ -#define LIBMODBUS_VERSION_HEX \ - ((LIBMODBUS_VERSION_MAJOR << 16) | (LIBMODBUS_VERSION_MINOR << 8) | \ - (LIBMODBUS_VERSION_MICRO << 0)) - -/* Evaluates to True if the version is greater than @major, @minor and @micro - */ -#define LIBMODBUS_VERSION_CHECK(major, minor, micro) \ - (LIBMODBUS_VERSION_MAJOR > (major) || \ - (LIBMODBUS_VERSION_MAJOR == (major) && LIBMODBUS_VERSION_MINOR > (minor)) || \ - (LIBMODBUS_VERSION_MAJOR == (major) && LIBMODBUS_VERSION_MINOR == (minor) && \ - LIBMODBUS_VERSION_MICRO >= (micro))) - -#endif /* MODBUS_VERSION_H */