mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
BusScanner
This commit is contained in:
73
include/Bus/BusScanner.h
Normal file
73
include/Bus/BusScanner.h
Normal file
@@ -0,0 +1,73 @@
|
||||
#pragma once
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
enum BusScanner_t {
|
||||
BS_I2C,
|
||||
BS_ONE_WIRE
|
||||
};
|
||||
|
||||
class BusScanner {
|
||||
public:
|
||||
BusScanner(String& result, size_t tries) : _tries{tries}, _result{&result} {}
|
||||
|
||||
void addResult(uint8_t addr, boolean last = true) {
|
||||
_result->concat("0x");
|
||||
if (addr < 16) {
|
||||
_result->concat("0");
|
||||
}
|
||||
_result->concat(String(addr, HEX));
|
||||
_result->concat(!last ? ", " : "");
|
||||
};
|
||||
|
||||
void scan() {
|
||||
if (!syncScan() && _tries--) {
|
||||
syncScan();
|
||||
}
|
||||
}
|
||||
virtual boolean syncScan();
|
||||
|
||||
private:
|
||||
size_t _tries;
|
||||
BusScanner_t _type;
|
||||
String* _result;
|
||||
};
|
||||
|
||||
class I2CScanner : public BusScanner {
|
||||
public:
|
||||
I2CScanner(String& result) : BusScanner(result, 2){};
|
||||
|
||||
virtual boolean syncScan() override;
|
||||
};
|
||||
|
||||
class OneWireScanner : public BusScanner {
|
||||
public:
|
||||
OneWireScanner(String& result) : BusScanner(result, 1){};
|
||||
|
||||
virtual boolean syncScan() override;
|
||||
};
|
||||
|
||||
class BusScannerFactory {
|
||||
public:
|
||||
static const char* label(BusScanner_t type) {
|
||||
switch (type) {
|
||||
case BS_I2C:
|
||||
return "i2c";
|
||||
case BS_ONE_WIRE:
|
||||
return "onewire";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
static BusScanner* get(String& str, BusScanner_t type, size_t tries = 1) {
|
||||
switch (type) {
|
||||
case BS_I2C:
|
||||
return new I2CScanner(str);
|
||||
case BS_ONE_WIRE:
|
||||
return new OneWireScanner(str);
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -11,9 +11,11 @@
|
||||
//
|
||||
#include "Consts.h"
|
||||
#include "CommonTypes.h"
|
||||
#include "Bus/BusScanner.h"
|
||||
#include "Errors.h"
|
||||
#include "GyverFilters.h"
|
||||
#include "UptimeInterval.h"
|
||||
#include "Upgrade.h"
|
||||
#include "Clock.h"
|
||||
|
||||
#include "MqttClient.h"
|
||||
@@ -100,15 +102,24 @@ extern int enter_to_logging_counter;
|
||||
|
||||
extern int scenario_line_status[40];
|
||||
|
||||
extern String last_version;
|
||||
extern String lastVersion;
|
||||
|
||||
extern boolean upgrade_url;
|
||||
extern boolean upgrade;
|
||||
extern boolean mqttParamsChanged;
|
||||
extern boolean udp_data_parse;
|
||||
extern boolean mqtt_send_settings_to_udp;
|
||||
extern boolean i2c_scanning;
|
||||
extern boolean fscheck_flag;
|
||||
|
||||
/*
|
||||
* Запрос на скарнирование шины
|
||||
*/
|
||||
extern boolean busScanFlag;
|
||||
/*
|
||||
* Запрос на сканирование шины, указание какую
|
||||
*/
|
||||
extern BusScanner_t busToScan;
|
||||
|
||||
extern boolean fsCheckFlag;
|
||||
|
||||
extern int sensors_reading_map[15];
|
||||
|
||||
@@ -225,11 +236,9 @@ extern void timerStop_();
|
||||
extern void delTimer(String number);
|
||||
extern int readTimer(int number);
|
||||
|
||||
//Upgrade
|
||||
extern void init_updater();
|
||||
extern void initUpdater();
|
||||
|
||||
// widget
|
||||
|
||||
extern void createWidgetByType(String widget_name, String page_name, String page_number, String file, String topic);
|
||||
extern void createWidgetParam(String widget_name, String page_name, String page_number, String file, String topic, String name1, String param1, String name2, String param2, String name3, String param3);
|
||||
extern void createWidget(String widget_name, String page_name, String page_number, String type, String topik);
|
||||
@@ -250,8 +259,8 @@ extern void loopCmd();
|
||||
extern void loopButton();
|
||||
extern void loopScenario();
|
||||
extern void loopUdp();
|
||||
extern void do_upgrade_url();
|
||||
extern void do_upgrade();
|
||||
|
||||
extern void flashUpgrade();
|
||||
|
||||
// Init
|
||||
extern void uptime_init();
|
||||
|
||||
8
include/MqttDiscovery.h
Normal file
8
include/MqttDiscovery.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "Utils/SysUtils.h"
|
||||
|
||||
namespace Discovery {
|
||||
|
||||
|
||||
}
|
||||
5
include/Upgrade.h
Normal file
5
include/Upgrade.h
Normal file
@@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
void getLastVersion();
|
||||
|
||||
void flashUpgrade();
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
const String getChipId();
|
||||
|
||||
const String getUniqueId(const String& name);
|
||||
|
||||
const String printMemoryStatus();
|
||||
|
||||
const String getHeapStats();
|
||||
|
||||
const String getMacAddress();
|
||||
@@ -1,7 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
void do_i2c_scanning();
|
||||
|
||||
const String i2c_scan();
|
||||
Reference in New Issue
Block a user