From 734f3e1b36caf8da0e44e79a716656b096721b6b Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <49808844+DmitryBorisenko33@users.noreply.github.com> Date: Fri, 18 Sep 2020 00:24:07 +0300 Subject: [PATCH] Bus scanner added --- include/Bus.h | 4 ++++ src/Bus.cpp | 38 ++++++++++++++++++++++++++++++++++++++ src/Web.cpp | 22 ++++++++++------------ src/main.cpp | 4 ++++ 4 files changed, 56 insertions(+), 12 deletions(-) create mode 100644 include/Bus.h create mode 100644 src/Bus.cpp diff --git a/include/Bus.h b/include/Bus.h new file mode 100644 index 00000000..11edd50b --- /dev/null +++ b/include/Bus.h @@ -0,0 +1,4 @@ +#pragma once +#include +void busInit(); +String i2c_scan(); \ No newline at end of file diff --git a/src/Bus.cpp b/src/Bus.cpp new file mode 100644 index 00000000..49cbaa54 --- /dev/null +++ b/src/Bus.cpp @@ -0,0 +1,38 @@ +#include "Bus.h" +#include "Class/NotAsinc.h" +#include "Global.h" + +void busInit() { + myNotAsincActions->add( + do_BUSSCAN, [&](void*) { + String tmp = i2c_scan(); + if (tmp == "error") { + tmp = i2c_scan(); + Serial.println(tmp); + jsonWriteStr(configLiveJson, "i2c", tmp); + } else { + Serial.println(tmp); + jsonWriteStr(configLiveJson, "i2c", tmp); + } + }, + nullptr); +} + +String i2c_scan() { + String out; + byte count = 0; + Wire.begin(); + for (byte i = 8; i < 120; i++) { + Wire.beginTransmission(i); + if (Wire.endTransmission() == 0) { + count++; + out += String(count) + ". 0x" + String(i, HEX) + "; "; + delay(1); + } + } + if (count == 0) { + return "error"; + } else { + return out; + } +} \ No newline at end of file diff --git a/src/Web.cpp b/src/Web.cpp index e5ad8c87..72d2b803 100644 --- a/src/Web.cpp +++ b/src/Web.cpp @@ -109,7 +109,6 @@ void web_init() { // request->send(200); //} - //==============================wifi settings============================================= if (request->hasArg("routerssid")) { jsonWriteStr(configSetupJson, "routerssid", request->getParam("routerssid")->value()); @@ -219,20 +218,20 @@ void web_init() { request->send(200, "text/html", payload); } -// //==============================push settings============================================= -//#ifdef PUSH_ENABLED -// if (request->hasArg("pushingboxid")) { -// jsonWriteStr(configSetupJson, "pushingboxid", request->getParam("pushingboxid")->value()); -// saveConfig(); -// request->send(200); -// } -//#endif + // //==============================push settings============================================= + //#ifdef PUSH_ENABLED + // if (request->hasArg("pushingboxid")) { + // jsonWriteStr(configSetupJson, "pushingboxid", request->getParam("pushingboxid")->value()); + // saveConfig(); + // request->send(200); + // } + //#endif //==============================utilities settings============================================= if (request->hasArg("i2c")) { - + myNotAsincActions->make(do_BUSSCAN); request->redirect("/?set.utilities"); - } + } }); //==============================list of items===================================================== @@ -285,7 +284,6 @@ void web_init() { */ server.on("/upgrade", HTTP_GET, [](AsyncWebServerRequest* request) { myNotAsincActions->make(do_UPGRADE); - ; request->send(200, "text/html"); }); } diff --git a/src/main.cpp b/src/main.cpp index a5e4e86c..945bc68a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -14,6 +14,7 @@ #include "Utils\WebUtils.h" #include "items/ButtonInClass.h" #include "RemoteOrdersUdp.h" +#include "Bus.h" void not_async_actions(); @@ -73,6 +74,9 @@ void setup() { SerialPrint("I","UDP","Udp Init"); asyncUdpInit(); + + SerialPrint("I","Bus","Bus Init"); + busInit(); #ifdef SSDP_EN SerialPrint("I","SSDP","Ssdp Init");