Arduino IDE компилирует, UECIDE не

Я переписываю личный проект, и он не компилируется под UECIDE 0.9.1, но он работает с Arduino IDE 1.8.5.

Цель - NodeMCU 0.9 с настройками по умолчанию.

Arduino IDE 1.8.5

Archiving built core (caching) in: /tmp/arduino_cache_347503/core/core_esp8266_esp8266_nodemcu_CpuFrequency_80,UploadSpeed_115200,FlashSize_4M3M_4a642491bde0820b9be0f8ad42686d29.a
Sketch uses 299199 bytes (28%) of program storage space. Maximum is 1044464 bytes.
Global variables use 37372 bytes (45%) of dynamic memory, leaving 44548 bytes for local variables. Maximum is 81920 bytes.

UECIDE 0.9.1

• Error at line 231 in file Monitor.ino:
‣ expected '{' before ';' token

• Error at line 231 in file Monitor.ino:
‣ expected ')' before ';' token

• Error at line 190 in file Monitor.ino:
‣ redefinition of 'CronEntry cronBlink'

• Error at line 231 in file Monitor.ino:
‣ 'CronEntry cronBlink' previously declared here

Проект слишком велик для публикации здесь, поэтому я его закрепил и загрузил на Google Диск, где любой может скачать его с помощью этой ссылки

https://drive.google.com/file /д /1BGvqtPx0547fPfX1Nucwhd_a-MO__vWX /вид? УСП = совместное использование

ИЗМЕНИТЬ (После комментария лямбда Маженко)

Я использовал структуру для хранения записей cron, используя lambdas:

struct CRON_ENTRY {
  boolean active;       // Task is active.
  unsigned long start;  // Start time (ms uptime).
  unsigned long repeat; // Repeat every (ms). 
  fcncron fcn;          // task.
};

CRON_ENTRY cronBlink = {false, 0,   500, [](CRON_ENTRY * c)
{
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    display.countdownPanel();
}

, а затем замените структуру CRON_ENTRY классом CronEntry:

CronEntry cronBlink(false, 0,   500, []() {
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    display.countdownPanel();});

Мне очень нравятся lambas, потому что они сделали код короче.

2 голоса | спросил user31481 16 42017vEurope/Moscow11bEurope/MoscowThu, 16 Nov 2017 14:34:41 +0300 2017, 14:34:41

1 ответ


2

Это ошибка в UECIDE. Он не любит лямбда-функции в конструкторах.

Выполняется полная переработка парсера эскиза для использования Exuberant Ctags.

ответил Majenko 17 52017vEurope/Moscow11bEurope/MoscowFri, 17 Nov 2017 01:33:52 +0300 2017, 01:33:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132