Какой это был скетч?
Поскольку ESP32 здесь так много (еще 3 на Рождество), я не могу определить, какой скетч я использовал для конкретного устройства. Кто-нибудь разработал схему ведения учета или даже обратную связь с последовательным монитором, где детали скетча доступны при повторном подключении к ПК?
@jansellsbond, 👍0
Обсуждение2 ответа
В начале функции setup() я вывожу на терминал одну строку с именем, версией и датой файла .ino. Я держу все проекты под контролем исходного кода, который поддерживает эту строку без каких-либо усилий с моей стороны, пока я включил небольшой фрагмент данных и вызов Serial.println() для его печати.
Обновление:
Можете ли вы показать код, как включить автоматическую идентификацию версии в цепочку сборки Arduino?
Вот пример. Обратите внимание, что цепочка сборки не изменяется; все происходит в исходном коде, в моем случае RCS. Вам, вероятно, придется настроить ключевое слово, которое получает данные ревизии ($Id$ в RCS) для любого используемого вами управления версиями. Если вы не используете систему контроля версий, вы можете распечатать макросы времени компиляции, предложенные @DataFiddler.
/*
* Макрос для сообщения ::println() & семейство для получения указателя на флэш-память
* #определите это в файле local.h вашей библиотеки или где бы вы ни находились
* размещайте свои личные, уникальные для сайта или закрытые макросы, например
* Пароль Wi-Fi:
*
* #define FLSTR_HLP(str) (const __FlashStringHelper *)str
* (Для получения дополнительной информации найдите __FlashStringHelper)
*
*/
// ----------------------------------
// Ваш файл .ino будет начинаться здесь:
#include <local.h> // получает указанный выше #define
// Определите один из них в каждом файле .ino:
// const char IdString[] PROGMEM = $Id$
// RCS расширяет или обновляет его примерно так:
// каждый раз, когда вы проверяете любую версию:
// (Другие системы контроля версий будут иметь аналогичные возможности)
const char IdString[] PROGMEM = "$Id: HowTo_IdString.ino,v 1.1 2023-12-26 18:16:06-05 jrobert Exp $"; // определение IdString во Flash
void setup() {
Serial.begin(115200);
Serial.print("");
Serial.println(FLSTR_HLP(IdString)); // печатает IdString из Flash
// .. дополнительные настройки ..
}
void loop() {
Serial.print(F("Run time: "));
Serial.println(millis());
delay(5000);
}
Интересный. Можете ли вы показать код, как включить автоматическую идентификацию версии в цепочку сборки Arduino?, @PMF
Serial.println(__DATE__);
Serial.println(__TIME__);
показывает дату и время компиляции. Должно быть близко к времени сохранения исходного файла., @DataFiddler
Если вам нужен простой способ идентификации, используйте некоторые из предопределенные макросы* как автоматический источник информации:
void setup() {
while (!Serial);
Serial.begin(115200);
Serial.print("(");
Serial.print(__VERSION__);
Serial.print(") ");
Serial.print(__FILE__);
Serial.print(": ");
Serial.print(__DATE__);
Serial.print(", ");
Serial.println(__TIME__);
}
void loop() {
}
Вывод скетча:
(7.3.0) /home/XXXXXXXX/name_of_sketch.ino: Dec 27 2023, 23:03:58
*) В моем случае (Arduino IDE версии 1.8.19) версия G++ — 7.3.0.
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Как прочитать входящие ШЕСТНАДЦАТИРИЧНОЕ значение из serial метод read ()?
- Ошибка чтения флэш-памяти, 1000
- Как Arduino может проверить, подключен ли он к ПК и включен ли компьютер?
- Нужен ESP32 для использования 3 последовательных портов
- Не могу подключиться к плате ESP32 через последовательный порт
- Почему Serial.write() работает, а Serial.print() нет?
- Нужен пример того, как отправлять КОМАНДЫ AT на модуль SIm7000E GPS+LTE из ESP32 и читать эти ответы в последовательном мониторе
Какую именно информацию вы хотите там видеть? Вы можете просто выполнить последовательную печать с каким-либо специальным сообщением (определенным вами) внутри
setup()
. Это то что ты хочешь?, @chrislЯ настроил триггер предварительной компиляции, который запускает сценарий оболочки, который получает текущий хэш git и помещает его в файл как #define. Я распечатываю это по своему эскизу. Тогда я знаю, какой файл и какая версия загружена., @Delta_G