Получаем время компиляции. Библиотека buildTime

ТЕОРИЯ


Немногие знают, что в Arduino есть встроенный макрос, который возвращает дату и время компиляции кода (по системному времени компьютера). Данный макрос разбит на два: дата __DATE__ и время __TIME__ , оба имеют формат “массива символов”, формат вывода следующий:

  • __DATE__ – Jul 27 2012
  • __TIME__ – 21:06:19

В таком виде пользоваться макросами очень неудобно, потому что это набор символов, и его нужно распарсить. Я нашёл интересный вариант реализации вот здесь, чуть исправил его под Ардуино и сделал библиотечку.

БИБЛИОТЕКА


Лёгкая библиотека для получения даты и времени компиляции скетча

  • Написана на “дефайнах”, очень лёгкая и быстрая

Поддерживаемые платформы: все Arduino (используются стандартные Wiring-функции)

УСТАНОВКА


  • Библиотеку можно найти и установить через менеджер библиотек по названию BuildTime в:
    • Arduino IDE (Инструменты/Управлять библиотеками)
    • Arduino IDE v2 (вкладка “Library Manager”)
    • PlatformIO (PIO Home, вкладка “Libraries”)
  • Про ручную установку читай здесь

ДОКУМЕНТАЦИЯ


Константы времени компиляции:

  • BUILD_YEAR - год
  • BUILD_MONTH - месяц
  • BUILD_DAY - день
  • BUILD_HOUR - час
  • BUILD_MIN - минута
  • BUILD_SEC - секунда

ПРИМЕРЫ


// тест получения времени и даты компиляции

#include "buildTime.h"
void setup() {
  Serial.begin(9600);
  Serial.println(__DATE__);
  Serial.println(__TIME__);
  Serial.println();
  
  Serial.print(BUILD_YEAR);
  Serial.print(" ");
  Serial.print(BUILD_MONTH);
  Serial.print(" ");
  Serial.println(BUILD_DAY);

  Serial.print(BUILD_HOUR);
  Serial.print(":");
  Serial.print(BUILD_MIN);
  Serial.print(":");
  Serial.println(BUILD_SEC);
}

void loop() {
}

ПОДДЕРЖАТЬ


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

4.5/5 - (2 голоса)
Подписаться
Уведомить о
guest

9 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии