Hallo,
ik ben redelijk nieuw op het gebied van arduino, maar heb via internet een 1 wire udp gateway gevonden voor intergratie met loxone, maar als ik dit stuk programma wil verifieren krijg ik de volgende foutmelding,
fatal error: LinkedList.h: No such file or directory
#include <LinkedList.h>.
Iemand een idee hoe ik dit kan oplossen?
#ifndef OneWireReading_h
#define OneWireReading_h
#include <Arduino.h>
#include "DS1820Lib.h"
#include "DS2438Lib.h"
#include <OneWire.h>
#include <LinkedList.h>
#include <TrueRandom.h>
#define ONE_WIRE_READING_VERSION "1.0.1"
#define DS2401MODEL 0x01
#define DS2438MODEL 0x26
typedef uint8_t ADDRESS[8];
enum DS2438State {DS2438_CLEAR, DS2438_CHA_SENT, DS2438_CHA_READ, DS2438_CHB_SENT, DS2438_CHB_READ};
struct ONE_WIRE_BUS {
uint8_t pin;
bool priority;
};
typedef void (*PrepareCallBack) ();
typedef void (*DataCallBack) (char *data);
typedef void (*FinishCallBack) ();
class DSGenericDevice {
public:
DSGenericDevice(ADDRESS addr);
ADDRESS address;
protected:
static void copyAddress(ADDRESS source, ADDRESS &destination);
};
class DS1820Device : public DSGenericDevice {
public:
DS1820Device(ADDRESS addr, DS1820 *ds);
bool read();
bool readTemp(double &temp);
unsigned long nextReading;
uint8_t state;
private:
DS1820 *_ds1820;
bool _parasite;
};
class DS2401Device : public DSGenericDevice {
public:
DS2401Device(ADDRESS addr): DSGenericDevice(addr) {};
};
class DS2438Device : public DSGenericDevice {
public:
DS2438Device(ADDRESS addr, DS2438 *ds);
void reset();
bool readCHA();
bool retrieveCHA();
bool readCHB();
bool retrieveCHB();
void updateToNextState();
void resetState(unsigned long _nextReading);
unsigned long nextReading;
DS2438State state;
byte errCounter;
double temperature;
double voltageVAD;
double voltageVDD;
double voltageVSens;
private:
DS2438 *_ds2438;
};
class OneWireBus {
public:
OneWireBus(uint8_t pin, bool priority, unsigned int tempReadDelay,
PrepareCallBack prepareCB, DataCallBack dataCB, FinishCallBack finishCallBack);
void read();
bool getPriority();
private:
static void sendDS2401(PrepareCallBack pCB, DataCallBack dCB, FinishCallBack fCB, ADDRESS addr);
static void sendDS1820(PrepareCallBack pCB, DataCallBack dCB, FinishCallBack fCB,
ADDRESS addr, float temp);
static void sendDS2438(PrepareCallBack pCB, DataCallBack dCB, FinishCallBack fCB,
ADDRESS addr, float temp, float vad, float vdd, float vsens);
static void sendNewDevice(PrepareCallBack pCB, DataCallBack dCB, FinishCallBack fCB, ADDRESS addr);
static void sendError(PrepareCallBack pCB, DataCallBack dCB, FinishCallBack fCB, ADDRESS addr);
static void sendAddressAndGenericText(PrepareCallBack pCB, DataCallBack dCB, FinishCallBack fCB,
ADDRESS addr, const char *text);
static void handlePrepareCallBack(PrepareCallBack pCB);
static void handleFinishCallBack(FinishCallBack fCB);
static void sendAddress(DataCallBack dCB, ADDRESS addr);
static void sendFloat(DataCallBack dCB, float value, int16_t precision = 1000);
static bool findDeviceInList(ADDRESS addr, LinkedList<DSGenericDevice*> *list, uint8_t &index);
static bool compareAddress(ADDRESS addr1, ADDRESS addr2);
bool _priority;
unsigned long _tempReadDelay;
PrepareCallBack _prepareCallBack;
DataCallBack _dataCallBack;
FinishCallBack _finishCallBack;
OneWire *_oneWire;
DS1820 *_ds1820;
DS2438 *_ds2438;
LinkedList<DSGenericDevice*> *_devicesList;
};
class OneWireReading {
public:
OneWireReading(ONE_WIRE_BUS buses[], uint8_t numBuses, unsigned int tempReadDelay,
PrepareCallBack prepareCB, DataCallBack dataCB, FinishCallBack finishCB);
void read();
private:
unsigned int _tempReadDelay;
LinkedList<OneWireBus*> _buses;
};
#endif