1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/coloz-blinker-library

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
BlinkerNumber.h 4.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
i3water Отправлено 4 лет назад ae19730
#ifndef BlinkerNUM_H
#define BlinkerNUM_H
#include "../Blinker/BlinkerConfig.h"
#include "../Blinker/BlinkerUtility.h"
class BlinkerNumber
{
public :
BlinkerNumber(char _name[])
{
numName = (char*)malloc((strlen(_name)+1)*sizeof(char));
strcpy(numName, _name);
}
void icon(const String & _icon)
{
if (_fresh >> 0 & 0x01) free(nicon);
nicon = (char*)malloc((_icon.length()+1)*sizeof(char));
strcpy(nicon, _icon.c_str());
_fresh |= 0x01 << 0;
}
void color(const String & _clr)
{
if (_fresh >> 1 & 0x01) free(ncolor);
ncolor = (char*)malloc((_clr.length()+1)*sizeof(char));
strcpy(ncolor, _clr.c_str());
_fresh |= 0x01 << 1;
}
void unit(const String & _unit)
{
if (_fresh >> 2 & 0x01) free(nunit);
nunit = (char*)malloc((_unit.length()+1)*sizeof(char));
strcpy(nunit, _unit.c_str());
_fresh |= 0x01 << 2;
}
template <typename T>
void text(T _text)
{
// if (isnan(_text)) return;
if (_fresh >> 3 & 0x01) free(ntext);
String _ntext = STRING_format(_text);
ntext = (char*)malloc((_ntext.length()+1)*sizeof(char));
strcpy(ntext, _ntext.c_str());
_fresh |= 0x01 << 3;
}
void print(char value) { _print(STRING_format(value)); }
void print(unsigned char value) { _print(STRING_format(value)); }
void print(int value) { _print(STRING_format(value)); }
void print(unsigned int value) { _print(STRING_format(value)); }
void print(long value) { _print(STRING_format(value)); }
void print(unsigned long value) { _print(STRING_format(value)); }
void print(double value) { _print(STRING_format(value)); }
void print() { _print(""); }
private :
char * numName;
char * nicon;// = "";
char * ncolor;// = "";
char * nunit;// = "";
char * ntext;
uint8_t _fresh = 0;
void _print(const String & value)
{
if (_fresh == 0 && value.length() == 0) return;
String numberData = "";
if (value.length())
{
numberData += BLINKER_F("{\"");
numberData += BLINKER_F(BLINKER_CMD_VALUE);
numberData += BLINKER_F("\":");
numberData += value;
Blinker.printNumArray(numName, value);
}
if (_fresh >> 0 & 0x01)
{
if (numberData.length()) numberData += BLINKER_F(",");
else numberData += BLINKER_F("{");
numberData += BLINKER_F("\"");
numberData += BLINKER_F(BLINKER_CMD_ICON);
numberData += BLINKER_F("\":\"");
numberData += nicon;
numberData += BLINKER_F("\"");
free(nicon);
}
if (_fresh >> 1 & 0x01)
{
if (numberData.length()) numberData += BLINKER_F(",");
else numberData += BLINKER_F("{");
numberData += BLINKER_F("\"");
numberData += BLINKER_F(BLINKER_CMD_COLOR);
numberData += BLINKER_F("\":\"");
numberData += ncolor;
numberData += BLINKER_F("\"");
free(ncolor);
}
if (_fresh >> 2 & 0x01)
{
if (numberData.length()) numberData += BLINKER_F(",");
else numberData += BLINKER_F("{");
numberData += BLINKER_F("\"");
numberData += BLINKER_F(BLINKER_CMD_UNIT);
numberData += BLINKER_F("\":\"");
numberData += nunit;
numberData += BLINKER_F("\"");
free(nunit);
}
if (_fresh >> 3 & 0x01)
{
if (numberData.length()) numberData += BLINKER_F(",");
else numberData += BLINKER_F("{");
numberData += BLINKER_F("\"");
numberData += BLINKER_F(BLINKER_CMD_TEXT);
numberData += BLINKER_F("\":\"");
numberData += (ntext);
numberData += BLINKER_F("\"");
free(ntext);
}
numberData += BLINKER_F("}");
_fresh = 0;
Blinker.printArray(numName, numberData);
}
};
#endif

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/coloz-blinker-library.git
git@gitlife.ru:oschina-mirror/coloz-blinker-library.git
oschina-mirror
coloz-blinker-library
coloz-blinker-library
master