4#ifndef SRC_SUPLA_TOOLS_H_
5#define SRC_SUPLA_TOOLS_H_
9#include "definitions.h"
11void float2DoublePacked(
float number, uint8_t *bar,
int byteOrder = LSBFIRST);
12float doublePacked2float(uint8_t *bar);
14int64_t adjustRange(int64_t input,
20bool isArrayEmpty(
void* array,
size_t arraySize);
28int generateHexString(
const void *input,
35bool hexByteToInt(
const char *str, uint8_t *result);
39bool hexStringToArray(
const char *input,
char *output,
int outputLength);
42uint32_t stringToUInt(
const char *str,
int len = -1);
45int32_t stringToInt(
const char *str,
int len = -1);
48int32_t floatStringToInt(
const char *str,
int precision);
51bool stringToColor(
const char *payload,
61bool urlDecodeInplace(
char *buffer,
int size);
65int urlEncode(
const char *input,
char *output,
int outputMaxSize);
67int stringAppend(
char *output,
const char *input,
int maxSize);
69int strncmpInsensitive(
const char *s1,
const char *s2,
int size);
72void deviceSoftwareReset();
73bool isDeviceSoftwareResetSupported();
74bool isLastResetSoft();
76const char *getManufacturer(int16_t
id);
80int getBitNumber(uint64_t value);
81int rssiToSignalStrength(
int rssi,
int rssiZero = -100);
82bool isLastResetPower();
84const char *getRelayChannelName(
int channelFunction);
85const char *getBinarySensorChannelName(
int channelFunction);
102int compareSemVer(
const char *sw1,
const char *sw2);
110#ifndef ARDUINO_ARCH_AVR
111void fillRandom(uint8_t *buffer,
int size);