#include "Global.h" #include "classes/IoTItem.h" #include bool cmpAddr(uint8_t *addr1, uint8_t *addr2, int size) { for (int i=0; isearch(_addr) && _ds) { if ( OneWire::crc8( _addr, 7) != _addr[7]) { SerialPrint("E", "DS2401", "CRC is not valid!", _id); return; } if (!cmpAddr(_addr, _oldAddr, 8) || _repeatCount > _intRepeat) { hex2string(_addr, 8, _addrStr); value.valS = _addrStr; value.isDecimal = false; regEvent(value.valS, "DS2401"); memcpy(_oldAddr, _addr, 8); _repeatCount = 0; } } if (_repeatCount <= _intRepeat) _repeatCount++; } ~DS2401() { if (_ds) delete _ds; }; }; void* getAPI_DS2401(String subtype, String param) { if (subtype == F("DS2401")) { return new DS2401(param); } else { return nullptr; } }