Skip to content

Commit

Permalink
v1.1.2
Browse files Browse the repository at this point in the history
- Оптимізація
- Виправлення помилок
- Добавлені нові функції
	- `setHost(const String& host);`
	- `setPort(uint16_t port);`
	- `setTimeout(uint16_t timeout);`
- Інші важливі виправлення
  • Loading branch information
DenysChuhlib committed Sep 28, 2022
1 parent a51ab7e commit 0bbca2f
Show file tree
Hide file tree
Showing 9 changed files with 113 additions and 414 deletions.
51 changes: 33 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
[![Foo](https://img.shields.io/badge/Library%20Manager-NTPtime%201.1.1-000282.svg?style=for-the-badge&logo=arduino)](https://www.ardu-badge.com/NTPtime)
[![Foo](https://img.shields.io/badge/Library%20Manager-NTPtime%201.1.2-000282.svg?style=for-the-badge&logo=arduino)](https://www.ardu-badge.com/NTPtime)

[![Foo](https://img.shields.io/badge/README-English-fff700.svg?style=for-the-badge)](https://github-com.translate.goog/DenysChuhlib/NTPtime?_x_tr_sl=uk&_x_tr_tl=en)
[![Foo](https://img.shields.io/badge/README-Руский-fff700.svg?style=for-the-badge)](/README_RU.md)
[![Foo](https://img.shields.io/badge/README-Руский-fff700.svg?style=for-the-badge)](https://github-com.translate.goog/DenysChuhlib/NTPtime?_x_tr_sl=uk&_x_tr_tl=ru)

# NTPtime
Бібліотека часу з багатьма функціями:
- Отримання точного часу за допомогою NTP
- Альтернатива стандартній бібліотеці `Time.h`
- Отримання точного часу за допомогою NTP сервера і використання
- Використання UNIX часу і його декодування
- Альтернатива стандартній бібліотеці `Time.h` в оптимізації і простоті використання
- Можливість робити таймер у рівний час, наприклад рівно о 12:00 і так щогодини, який займає лише один байт
- Безліч інших зручних функцій
- Можна робити цілий календар

### Сумісність усієї бібліотеки
Expand All @@ -30,7 +32,7 @@ esp8266, esp32, Ethernet
## Установка
- Бібліотеку можна знайти за назвою `NTPtime` та встановити через менеджер бібліотек у:
- Arduino IDE
- Arduino IDE v2
- Arduino IDE v2.0
- [Завантажити бібліотеку](https://github.com/DenysChuhlib/NTPtime/archive/refs/heads/main.zip) .zip архівом для ручної установки:
- Розпакувати та покласти в `Документи/Arduino/libraries/`
- (Arduino IDE) автоматичне встановлення з .zip: `Скетч/Підключити бібліотеку/Додати .ZIP бібліотеку…` та вказати завантажений архів
Expand All @@ -51,20 +53,22 @@ UNIXtime(uint16_t y, uint8_t m, uint8_t d, uint8_t h, uint8_t mn, uint8_t s, int
### NTPtime
```cpp
void setHost(const char* host); // установити хост (за умвч. pool.ntp.org)
void setHost(const String& host); // установити хост (за умовч. pool.ntp.org)
void setPort(uint16_t port); // установити порт NTP сервера (за умовч. 123)
void setTimeout(uint16_t timeout); // установити таймаут відповіді сервера (200 - 64000) (за умовч. 64000)
bool begin(uint16_t port = _NTPtime_NTP_PORT); // запустити
bool begin(uint16_t port); // запустити (вхідний порт за умовч. 123)
void end(); // зупинити
void asyncMode(bool _on_off); // асинхронний режим (за умовч. включений, true)
void asyncMode(bool _on_off); // асинхронний режим (за умовч. ввімкнений, true)
void updateNow(); // обновити зараз (ручний запуск оновлення)
bool updateOnTime(uint8_t h, uint8_t m, uint8_t s); // функція `loop()` цикла яка оновлює час в Г, Х, С (працює в парі з tick())
bool tick(uint16_t prd); // функція `loop()` цикла яка оновлює час по періоду (prd), після ручного запуска або в певний час, підчас оновлення повертає true
bool tick(uint16_t prd); // функція `loop()` цикла яка оновлює час по періоду (1 хв <= prd <= 1 доба), після ручного запуска або в певний час, підчас оновлення повертає true
int16_t ping(); // отримати пінг сервера
int16_t ping(); // отримати пінг сервера (при відсутньому з'єднанні повертає -1)
// отримати статус оновлення
/*
Expand All @@ -79,6 +83,10 @@ int16_t ping(); // отримати пінг сервера
*/
uint8_t NTPstatus();
```
### Особливості
- `tick()`, `DST()`, `updateOnTime()` працюють головному в циклі `loop()`
- Чим більше потрібна точність часу тим меньше потрібен період в `tick(prd)`. Якщо простий годинник достатньо одного updateOnTime(0,0,10) і обновляти в ніч, коли найкращий Інтернет
<a id="UNIXtime&NTPtime"></a>
### UNIXtime і NTPtime
Expand Down Expand Up @@ -178,7 +186,7 @@ bool timeOutS(uint32_t last_unix, uint16_t time_out);
bool isLeap(); // якщо високосний рік то повертає true
uint8_t lastDayOfMonth(); // останній день місяця
uint8_t lastDayOfMonth(); // останній день місяця
void delay(uint32_t t, void (*func)()); // з функцією яка виконуеться підчас затримки)
Expand All @@ -201,14 +209,17 @@ String dayWeekStringRU();
String monthShortStringRU();
String dayWeekShortStringRU();
```
### Особливості
- Мілісекунди зберігаються при зупинці відліку часу і відновлюються при запуску.
<a id="TimeFunc"></a>
### TimeFunc
Просто
```cpp
TimeFunc.isLeap(uint16_t y);
```
і все.
і все.
```cpp
Expand Down Expand Up @@ -259,12 +270,8 @@ void decodeUNIX(uint32_t unix, uint8_t& d, uint8_t& m, uint16_t& y); // швид
void decodeUNIX(uint32_t unix, uint8_t& d, uint8_t& m, uint16_t& y, uint16_t& h, uint16_t& min, uint16_t& s);
void delay(uint32_t t, void (*func)()); // з функцією яка виконуеться підчас затримки (наприклад, TimeFunc.delay(1000, Loop);)
```
### Особливості
- `tick()`, `DST()`, `updateOnTime()` працюють головному в циклі `loop()`
<a id="example"></a>
## Приклад testBlink.ino
```cpp
Expand All @@ -281,7 +288,7 @@ void delay(uint32_t t, void (*func)()); // з функцією яка вико
//#include <WiFi.h> // esp32
/*#include <Ethernet.h>
#define NTPtimeEthernetUdp //Ethernet
#define NTPtimeEthernet //Ethernet
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
Expand Down Expand Up @@ -362,3 +369,11 @@ void loop() {
- `hourFormat12();`
- `decodeUNIX();` - швидке декодування
- `delay()` з функцією яка виконуеться підчас затримки
- v1.1.2
- Оптимізація
- Виправлення помилок
- Добавлені нові функції
- `setHost(const String& host);`
- `setPort(uint16_t port);`
- `setTimeout(uint16_t timeout);`
- Інші важливі виправлення
Loading

0 comments on commit 0bbca2f

Please sign in to comment.