Właśnie doszedłem do momentu, że potrzebuję własnej funkcji nie zmieniając biblioteki. Wymyśliłem taką klasę:klew wrote: Tue Feb 04, 2020 9:36 am Takie klasy z własnymi sensorami można trzymać w pliku ino, albo dorzucić własne pliki .h w swoim projekcie. Odradzam wrzucanie własnych plików do lokalnej kopii biblioteki, bo przy aktualizacji może się to rozjechać (np. skasujemy sobie pliki).
Jeśli ktoś pisze obsługę sensora do jakiegoś konkretnego urządzenia, to może to wrzucić do pliku .h i dodać do biblioteki, a następnie zrobić pull request do https://github.com/SUPLA/arduino/tree/develop
Jeśli ktoś chce dodać obsługe jakiegoś sensora, to niech tylko dokładnie w komentarzach w pliku .h dopisze jaki HW jest tutaj obsługiwany i na jakim board to używał/testował. Proszę też dodawać informację jakie dodatkowe biblioteki są używane oraz skąd je pobrać.
Projekt używa też formatowania zdefiniowanego w clang-format (plik konfiguracyjny jest w repo) - także najlepiej przed stworzeniem pull request jest odpalić formatowanie na swoim kodzie.
Code: Select all
#ifndef SuplaSensor_h
#define SuplaSensor_h
#include <supla/sensor/DS18B20.h>
class DS18B20 : public Supla::Sensor::DS18B20 {
public:
DS18B20(uint8_t pin, uint8_t *deviceAddress = nullptr)
: Supla::Sensor::DS18B20(pin, deviceAddress) {};
uint8_t getPin() {
return myBus->pin;
}
};
#endif //SuplaSensor_h
Code: Select all
#include "SuplaSensor.h"
std::vector <DS18B20 *> sensor;
Code: Select all
#include "SuplaSensor.h"
extern std::vector <DS18B20 *> sensor;
Code: Select all
....
multiple definition of `Supla::Sensor::DS18B20::oneWireBus'; sketch\Primary_GUI_nexo.ino.cpp.o:(.bss._ZN5Supla6Sensor7DS18B2010oneWireBusE+0x0): first defined here
....