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

OSCHINA-MIRROR/coloz-blinker-library

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
BlinkerTimingTimer.h 3.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
某10 Отправлено 6 лет назад 4bf677d
#ifndef BlinkerTimingTimer_H
#define BlinkerTimingTimer_H
#if defined(ESP8266) || defined(ESP32)
#include "../Blinker/BlinkerConfig.h"
#include "../Blinker/BlinkerUtility.h"
class BlinkerTimingTimer
{
public :
BlinkerTimingTimer()
: timerState(false)
, isLoopTask(false)
{}
// BlinkerTimingTimer(uint32_t _timerData, String _action, String _text)
BlinkerTimingTimer(uint32_t _timerData, String _action)
: timerState(false)
, isLoopTask(false)
{
timerData = _timerData;
// actionData = _action;
actionData = (char*)malloc((_action.length()+1)*sizeof(char));
strcpy(actionData, _action.c_str());
// timerText = _text;
isLoopTask = timerData >> 31;
timerState = timerData >> 23 & 0x0001;
timingDay = timerData >> 11 & 0x007F;
timingTime = timerData & 0x07FF;
}
// BlinkerTimingTimer(bool _state, uint8_t _timingDay, uint16_t _timingTime, String _action, String _text, bool _isLoop)
BlinkerTimingTimer(bool _state, uint8_t _timingDay, uint16_t _timingTime, String _action, bool _isLoop)
: timerState(false)
, isLoopTask(false)
{
timerState = _state;
timingDay = _timingDay;
timingTime = _timingTime;
actionData = (char*)malloc((_action.length()+1)*sizeof(char));
strcpy(actionData, _action.c_str());
// actionData = _action;
// timerText = _text;
isLoopTask = _isLoop;
timerData = isLoopTask << 31 | timerState << 23 | timingDay << 11 | timingTime;
}
// void freshTimer(uint32_t _timerData, String _action, String _text) {
void freshTimer(uint32_t _timerData, String _action) {
timerData = _timerData;
actionData = (char*)malloc((_action.length()+1)*sizeof(char));
strcpy(actionData, _action.c_str());
// actionData = _action;
// timerText = _text;
isLoopTask = timerData >> 31;
timerState = timerData >> 23 & 0x0001;
timingDay = timerData >> 11 & 0x007F;
timingTime = timerData & 0x07FF;
}
bool isTimingDay(uint8_t _day) {
if (timingDay & (0x01 << _day)) return true;
else return false;
}
uint8_t getTimingday() { return timingDay; }
char * getAction() { return actionData; }
// String getText() { return timerText; }
uint32_t getTimerData() { return timerData; }
uint16_t getTime() { return timingTime; }
bool state() { return timerState; }
bool isLoop() { return isLoopTask; }
void disableTask() {
timerState = false;
timerData = isLoopTask << 31 | timerState << 23 | timingDay << 11 | timingTime;
}
private :
// - - - - - - - - | - - - - - - - - | - - - - - - - - | - - - - - - - -
// | | | | 11 0-0x7FF timingTime
// | | | 18 timingDay
// | | 24 timerState
// | 32 isLoopTask
uint32_t timerData;
uint8_t timingDay;
char* actionData;
// String timerText;
uint16_t timingTime;
bool timerState;
bool isLoopTask;
};
#endif
#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