33#define VALUE_TO_STRING(x) #x
34#define VALUE(x) VALUE_TO_STRING(x)
35#define VAR_NAME_VALUE(var) #var "=" VALUE(var)
42#ifdef WITH_PRINTEX_LIB
63#define serialParamType uint32_t
65#define serialParamType uint16_t
69void PrintBytes(uint8_t* addr, uint8_t count,
bool newline);
71void SetBytes(uint8_t* addr, uint8_t count,
char * out);
73bool SetAddr(
char * in, uint8_t* addr);
75uint8_t
HEX2DEC(
char i,
bool* err);
83void parseBytes(
const char* str,
char separator,
byte* bytes,
int maxBytes,
int base);
85int log(
const char *str, ...);
91int _inet_aton(
const char* aIPAddrString, IPAddress& aResult);
93char *
_inet_ntoa_r(IPAddress addr,
char *buf,
int buflen);
105bool isTimeOver(uint32_t timestamp, uint32_t currTime, uint32_t time, uint32_t modulo = 0);
121bool executeCommand(aJsonObject* cmd, int8_t toggle,
itemCmd _itemCmd, aJsonObject* defaultItem=NULL, aJsonObject* defaultEmit=NULL, aJsonObject* defaultCan = NULL);
125uint32_t
millisNZ(uint8_t shift=0, uint32_t mask=0xFFFFFFFFUL);
129String
toString(
const IPAddress& address);
155 long getIntFromJson(aJsonObject *
a,
const char * name,
int i,
long def);
167 template<
typename Type>
172 template<
typename Type>
173 aJsonObject *
getCreateObject(aJsonObject *
a,
const char * name, Type def);
176 template<
typename Type>
177 aJsonObject *
setValToJson(aJsonObject *
a,
int n, Type val);
178 template<
typename Type>
179 aJsonObject *
setValToJson(aJsonObject *
a,
const char * name, Type val);
184template<
typename Type>
188if (
a->type == aJson_Array)
190 aJsonObject * element = aJson.getArrayItem(
a, n);
193 for (
int i = aJson.getArraySize(
a); i < n; i++)
195 aJson.addItemToArray(
a, element = aJson.createItem(val));
196 else aJson.addItemToArray(
a, element = aJson.createNull());
205 template<
typename Type>
209if (
a->type == aJson_Object)
211 aJsonObject * element = aJson.getObjectItem(
a, name);
214 aJson.addNumberToObject(
a, name, def);
215 element = aJson.getObjectItem(
a, name);
222 template<
typename Type>
231 template<
typename Type>
236 switch (element->type)
238 case aJson_Float: element->valuefloat = val;
240 case aJson_NULL: element->type = aJson_Int;
241 case aJson_Int: element->valueint = val;
246 template<
typename Type>
252 switch (element->type)
254 case aJson_Float: element->valuefloat = val;
256 case aJson_NULL: element->type = aJson_Int;
257 case aJson_Int: element->valueint =val;
263#include "util/crc16_.h"
270class CRCStream :
public Stream
273 CRCStream() : CRC16(0xFFFF){}
277 uint16_t getCRC16() {
return CRC16;}
280 virtual int available(){
return 0;};
281 virtual int read(){
return 0;};
282 virtual int peek(){
return 0;};
284 virtual void flush(){};
286 virtual size_t write(uint8_t c) {CRC16 = crc16_update(CRC16, c);
return 1;};
287 virtual int availableForWrite(){
return 1;};
Command + value container passed between items, drivers and MQTT.
Definition itemCmd.h:306
#define a
Definition item.cpp:2410
Item (virtual channel) system of LightHub.
byte getCRC(byte req[], size_t size)
Definition out_ac.cpp:276
int str2regSize(char *str)
Преобразует строку в тип регистра.
Definition out_modbus.cpp:75
bool executeCommand(aJsonObject *cmd, int8_t toggle)
Definition utils.cpp:657
void parseBytes(const char *str, char separator, byte *bytes, int maxBytes, int base)
Definition utils.cpp:254
String toString(const IPAddress &address)
Definition utils.cpp:484
bool isTimeOver(uint32_t timestamp, uint32_t currTime, uint32_t time, uint32_t modulo)
Definition utils.cpp:643
void printFloatValueToStr(char *valstr, float value)
Definition utils.cpp:266
bool SetAddr(char *in, uint8_t *addr)
Definition utils.cpp:101
long getIntFromJson(aJsonObject *a, int i, long def)
Definition utils.cpp:1037
bool isProtectedPin(short pin)
Definition utils.cpp:949
bool i2cReset()
Definition utils.cpp:959
serialParamType str2SerialParam(char *str)
Definition utils.cpp:880
void SetBytes(uint8_t *addr, uint8_t count, char *out)
Definition utils.cpp:80
char * _inet_ntoa_r(IPAddress addr, char *buf, int buflen)
Definition utils.cpp:468
long getIntFromStr(char **chan)
Definition utils.cpp:113
int log(const char *str,...)
Definition utils.cpp:285
float getFloatFromJson(aJsonObject *a, int i, float def)
Definition utils.cpp:1072
char * getStringFromJson(aJsonObject *a, int i)
Definition utils.cpp:1015
void PrintBytes(uint8_t *addr, uint8_t count, bool newline)
Definition utils.cpp:68
void setupInPin(short pin)
Definition utils.cpp:1140
bool getPinVal(uint8_t pin)
Definition utils.cpp:896
itemCmd mapInt(int32_t arg, aJsonObject *map)
Definition utils.cpp:835
uint32_t millisNZ(uint8_t shift, uint32_t mask)
Definition utils.cpp:842
int _inet_aton(const char *aIPAddrString, IPAddress &aResult)
Definition utils.cpp:398
char * setTopic(char *buf, int8_t buflen, topicType tt, const char *suffix)
Definition utils.cpp:498
bool readInPin(short pin)
Definition utils.cpp:1154
byte HEX2DEC(char i, bool *err)
Definition utils.cpp:92
void writeOutPin(short pin, bool val)
Definition utils.cpp:1168
aJsonObject * getCreateObject(aJsonObject *a, int n)
Definition utils.cpp:1106
void printIPAddress(IPAddress ipAddress)
Definition utils.cpp:488
void scan_i2c_bus()
Definition utils.cpp:564
bool checkToken(char *token, char *data)
Definition utils.cpp:945
itemCmd getNumber(char **chan)
Definition utils.cpp:132
void printUlongValueToStr(char *valstr, unsigned long value)
Definition utils.cpp:546
topicType
Definition utils.h:54
@ T_BCST
Definition utils.h:57
@ T_OUT
Definition utils.h:58
@ T_ROOT
Definition utils.h:55
@ T_DEV
Definition utils.h:56
uint32_t ReadUniqueID(uint32_t *pdwUniqueID)
aJsonObject * setValToJson(aJsonObject *a, int n, Type val)
Definition utils.h:247
#define serialParamType
Type for a serial parameter (uint32 on ESP32, uint16 elsewhere).
Definition utils.h:65