start version

This commit is contained in:
Dmitry Borisenko
2020-07-26 23:48:19 +02:00
parent 4aa0dc39b9
commit b653ce1e87
238 changed files with 27327 additions and 0 deletions

26
src/Bus/I2CScanner.cpp Normal file
View File

@@ -0,0 +1,26 @@
#include "Bus/I2CScanner.h"
#include "Utils/PrintMessage.h"
#include <Wire.h>
static const char* MODULE = "I2C";
I2CScanner::I2CScanner(String& out) : BusScanner(TAG_I2C, out, 2){};
void I2CScanner::init() {
Wire.begin();
}
boolean I2CScanner::syncScan() {
pm.info("scanning...");
size_t cnt = 0;
for (uint8_t i = 8; i < 120; i++) {
Wire.beginTransmission(i);
if (Wire.endTransmission() == 0) {
pm.info("found: " + i);
addResult(i, i < 119);
cnt++;
}
}
return cnt;
}

25
src/Bus/OneWireBus.cpp Normal file
View File

@@ -0,0 +1,25 @@
#include "Bus/OneWireBus.h"
OneWireBus oneWireBus;
OneWireBus::OneWireBus(){};
OneWire *OneWireBus::get(uint8_t pin) {
// Ищем среди ранее созданных
for (size_t i = 0; i < _items.size(); i++) {
auto item = _items.at(i);
if (item.pin == pin) {
return item.bus;
}
}
// Добавляем новый
OneWireBus_t newItem;
newItem.bus = new OneWire(pin);
newItem.pin = pin;
_items.push_back(newItem);
return newItem.bus;
}
size_t OneWireBus::count() {
return _items.size();
}

View File

@@ -0,0 +1,26 @@
#include "Bus/OneWireScanner.h"
#include "Utils/PrintMessage.h"
const char* MODULE = "OneWire";
OneWireScanner::OneWireScanner(String& out, uint8_t pin) : BusScanner(TAG_ONE_WIRE, out, 1) {
_bus = oneWireBus.get(pin);
}
bool OneWireScanner::syncScan() {
uint8_t addr[8];
pm.info("scanning...");
while (_bus->search(addr)) {
for (uint8_t i = 0; i < 8; i++) {
pm.info("found: " + String(i, DEC));
addResult(addr[i], i < 7);
}
}
if (OneWire::crc8(addr, 7) != addr[7]) {
pm.error(String("CRC!"));
return false;
}
_bus->reset_search();
return true;
}