Слияние кода завершено, страница обновится автоматически
#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 )