From 6ca2812d2eeb241f9bf36da6b25f76f490916e19 Mon Sep 17 00:00:00 2001 From: soylentOrange Date: Fri, 11 Oct 2024 10:50:04 +0200 Subject: [PATCH] Legacy Pins mappings for D1 mini --- include/localmodbus.h | 14 ++++++------ include/pins_d1_mini.h | 48 ++++++++++++++++++++++++++++++++++++++++++ platformio.ini | 4 ++-- src/localmodbus.cpp | 6 +++--- src/pages.cpp | 18 ++-------------- 5 files changed, 62 insertions(+), 28 deletions(-) create mode 100644 include/pins_d1_mini.h diff --git a/include/localmodbus.h b/include/localmodbus.h index 24ac499..d5a55a3 100644 --- a/include/localmodbus.h +++ b/include/localmodbus.h @@ -1,12 +1,13 @@ #ifndef LOCALMODBUS_H - #define LOCALMODBUS_H +#define LOCALMODBUS_H - #include - #include - #include - #include - #include "config.h" +#include +#include +#include +#include +#include "config.h" +// sub-function codes for FC08 (DIAGNOSTICS_SERIAL) enum SubFunctionCode : uint16_t { RETURN_QUERY_DATA = 0x00, RESTART_COMMUNICATION_OPTION = 0x01, @@ -15,7 +16,6 @@ enum SubFunctionCode : uint16_t { RETURN_BUS_MESSAGE_COUNT = 0x0b, RETURN_BUS_COMMUNICATION_ERROR_COUNT = 0x0c, RETURN_SLAVE_MESSAGE_COUNT = 0x0e, - }; void setupLocalModbus(uint8_t serverID, ModbusClientRTU *rtu, ModbusBridgeWiFi *bridge, Config *config, WiFiManager *wm); diff --git a/include/pins_d1_mini.h b/include/pins_d1_mini.h new file mode 100644 index 0000000..4e06605 --- /dev/null +++ b/include/pins_d1_mini.h @@ -0,0 +1,48 @@ +#ifndef PINS_D1MINI_H +#define PINS_D1MINI_H + +#include + +// Legacy Pins mappings for compatibility with D1 mini +// D0..D8 +#ifndef D0 +#define D0 26 +#endif + +#ifndef D1 +#define D1 22 +#endif + +#ifndef D2 +#define D2 21 +#endif + +#ifndef D3 +#define D3 17 +#endif + +#ifndef D4 +#define D4 16 +#endif + +#ifndef D5 +#define D5 18 +#endif + +#ifndef D6 +#define D6 19 +#endif + +#ifndef D7 +#define D7 23 +#endif + +#ifndef D8 +#define D8 15 +#endif + +#ifndef LED_BUILTIN +#define LED_BUILTIN 2 +#endif + +#endif /* PINS_D1MINI_H */ \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 06a458b..fe0b86e 100644 --- a/platformio.ini +++ b/platformio.ini @@ -37,6 +37,6 @@ upload_port = COM9 monitor_port = COM9 -[env:d1mini] - board = wemos_d1_mini32 +[env:mhetesp32minikit] + board = mhetesp32minikit build_flags = ${env.build_flags} diff --git a/src/localmodbus.cpp b/src/localmodbus.cpp index d498c54..979c786 100644 --- a/src/localmodbus.cpp +++ b/src/localmodbus.cpp @@ -1,5 +1,6 @@ #include "localmodbus.h" -#include +#include +#include "pins_d1_mini.h" #define ETAG "\"" __DATE__ "" __TIME__ "\"" static ModbusClientRTU* _rtu = NULL; @@ -43,7 +44,7 @@ ModbusMessage FC03(ModbusMessage request) { ModbusMessage FC08(ModbusMessage request) { uint16_t subFunctionCode; // Sub-function code ModbusMessage response; // response message to be sent back - uint16_t resultWord = 0; + uint16_t resultWord = 0; // response data to be sent back LOG_D("Worker for FC08\n"); @@ -109,5 +110,4 @@ void setupLocalModbus(uint8_t serverID, ModbusClientRTU *rtu, ModbusBridgeWiFi * _bridge = bridge; bridge->registerWorker(serverID, READ_HOLD_REGISTER, &FC03); bridge->registerWorker(serverID, DIAGNOSTICS_SERIAL, &FC08); - //bridge->registerWorker(serverID, REPORT_SERVER_ID_SERIAL, &FC08); } \ No newline at end of file diff --git a/src/pages.cpp b/src/pages.cpp index 2494fcf..8c956d2 100644 --- a/src/pages.cpp +++ b/src/pages.cpp @@ -516,13 +516,13 @@ void setupPages(AsyncWebServer *server, ModbusClientRTU *rtu, ModbusBridgeWiFi * response->print(""); auto error = answer.getError(); if (error == SUCCESS){ - auto count = answer.size() - 2; + auto count = answer.size() - 4; if(count < 0) { count = 0; } response->print("Answer: 0x"); for (size_t i = 0; i < count; i++) { - response->printf("%02x", answer[i + 2]); + response->printf("%02x", answer[i + 4]); } response->print(""); } @@ -533,20 +533,6 @@ void setupPages(AsyncWebServer *server, ModbusClientRTU *rtu, ModbusBridgeWiFi * sendButton(response, "Back", "debug"); sendResponseTrailer(response); request->send(response); - - // // reset when requested - // if(config->getLocalModbusEnable()) { - // if(slaveId.toInt() == config->getLocalModbusAddress()) { - // if(answer.getFunctionCode() == DIAGNOSTICS_SERIAL) { - // uint16_t subFunctionCode; // Sub-function code - // answer.get(2, subFunctionCode); - // if(subFunctionCode == RESTART_COMMUNICATION_OPTION) { - // dbgln("[webserver] rebooting..."); - // ESP.restart(); - // } - // } - // } - // } }); server->on("/update", HTTP_GET, [](AsyncWebServerRequest *request){