19#ifndef SRC_SUPLA_TOOLS_H_
20#define SRC_SUPLA_TOOLS_H_
24#include "definitions.h"
26void float2DoublePacked(
float number, uint8_t *bar,
int byteOrder = LSBFIRST);
27float doublePacked2float(uint8_t *bar);
29int64_t adjustRange(int64_t input,
35bool isArrayEmpty(
void* array,
size_t arraySize);
43int generateHexString(
const void *input,
48void hexStringToArray(
const char *input,
char *output,
int outputLength);
51uint32_t hexStringToInt(
const char *str,
int len = -1);
54uint32_t stringToUInt(
const char *str,
int len = -1);
57int32_t stringToInt(
const char *str,
int len = -1);
60int32_t floatStringToInt(
const char *str,
int precision);
63bool stringToColor(
const char *payload,
72void urlDecodeInplace(
char *buffer,
int size);
76int urlEncode(
const char *input,
char *output,
int outputMaxSize);
78int stringAppend(
char *output,
const char *input,
int maxSize);
80int strncmpInsensitive(
const char *s1,
const char *s2,
int size);
83void deviceSoftwareReset();
84bool isDeviceSoftwareResetSupported();
85bool isLastResetSoft();
87const char *getManufacturer(int16_t
id);
91int getBitNumber(uint64_t value);
92int rssiToSignalStrength(
int rssi,
int rssiZero = -100);
93bool isLastResetPower();
95const char *getRelayChannelName(
int channelFunction);
96const char *getBinarySensorChannelName(
int channelFunction);
103bool isLittleEndian();
113int compareSemVer(
const char *sw1,
const char *sw2);