Меню Arduino 3.0

Беннебой
Чт, 02, 2017, 9:43 утра
ПРИВЕТ,

Я надеялся использовать систему меню «Выкл» для одного из моих проектов, этот, казалось, предлагал некоторые из лучших функций:

https: // github.com/neu-rah/arduinomenu

Он утверждал, что работает на Teensy, поэтому я надеялся, что он будет работать с STM32

В любом случае, пока собираю эту ошибку: я получаю эту ошибку:
menuBase.cpp:50:76: error: in C++98 'defaultOptions' must be initialized by constructor, not by '{...}' config defaultOptions={'>','-',false,false,Menu::defaultNavCodes,false,true};

Беннебой
Чт, 02, 2017 10:38 утра
Я изменил флаги сборки в досках.TXT к этому:
mapleMini.build.cpu_flags=-DMCU_STM32F103CB -DSERIAL_USB -std=gnu++11

Беннебой
Чт, 02, 2017 10:41
Работайте == Компилирование.

Mini вылетает, как только нажат любая из кнопок ввода.

Подозревают, что это потому, что код меню перегружает много функций.

Другой код отлично работает со стандартом C ++, так что это только эта система меню, ах хорошо. Радости быть на краю.

Беннебой
Чт, 02, 2017 12:53
Хорошо, я нашел причину аварии, но я оторван в том, почему.

Возможно, люди с большим опытом могут помочь?

Когда нажата кнопка, меню запускает это событие
result action1(eventMask e,navNode& nav, prompt &item) { Serial<

Стивестронг
Чт, 02, 2017, 13:12
Попробуйте прокомментировать линию с серийным.flush (), так как он не будет работать, как и ожидалось.

Беннебой
Чт, 02, 2017 13:22
Стивестронг написал:Попробуйте прокомментировать линию с серийным.flush (), так как он не будет работать, как и ожидалось.

victor_pv
Чт, 02, 2017, 14:33
Bennehboy ​​написал:Стивестронг написал:Попробуйте прокомментировать линию с серийным.flush (), так как он не будет работать, как и ожидалось.

Беннебой
Чт, 02, 2017, 15:15
Вполне возможно.

Я сообщил об этом, сопровождающему библиотеки, это немного за мной.

ZMEMW16
Чт, 02, 2017, 16:39
Что происходит, когда просто печатать элемент? 'Сериал << элемент<<endl; '
и добавить простой сериал<<'*************<<endl; ' строка, чтобы увидеть, умирает ли он там
SRP

Беннебой
Чт, 02, 2017, 17:12
ZMEMW16 написал:Что происходит, когда просто печатать элемент? 'Сериал << элемент<<endl; '

victor_pv
Чт, 02 марта 2017 г. 18:35
Bennehboy ​​написал:ZMEMW16 написал:Что происходит, когда просто печатать элемент? 'Сериал << элемент<<endl; '

Беннебой
Чт, 02 марта 2017 г., 19:06
Нет, это указатель на экземпляр класса, я думаю, что в основном он является самооценкой, экземпляр выбранного класса меню передает указатель на себя функции, чтобы код мог сказать «пункт меню x» был выбран.

Это не важно, потому что я не думаю, что мне когда -либо нужно использовать это в моей системе меню.

И да, отладчик был бы хорош - уверен, что, черт возьми, бьет, перемещая сериал.println ("получил сюда"); о коде : D

Беннебой
Чт, 02 марта 2017 г., 21:11
Так что, похоже, идиот здесь, должно быть, сделал что -то глупое, код, когда он обновлен из GitHub, работает нормально на Nano, но все еще сбивает мини -.

:(

Rogerclark
Чт, 02, 2017 11:08
Вы имеете в виду, что на некоторых досках AVR вылетает ?

Беннебой
Пт, 03 марта 2017 г. 10:41
Rogerclark написал:Вы имеете в виду, что на некоторых досках AVR вылетает ?

Rogerclark
Пт, 3 марта 2017 г., 11:20 утра
Эти флаги обсуждались в другой ветке

http: // www.STM32duino.com/viewtopic.PHP?t = 1241

Похоже, теперь они являются стандартом для настройки сборки Arm Arduino, поэтому мы должны рассмотреть их использование.

Однако я могу сделать только ограниченное тестирование E.глин. С моими проектами, поэтому доказательством пудинга было бы просто обновить репо и ждать, пока люди будут жаловаться, если это вызвало побочные эффекты

Беннебой
Пт. 03 марта 2017 г. 13:02
Rogerclark написал:Эти флаги обсуждались в другой ветке

http: // www.STM32duino.com/viewtopic.PHP?t = 1241

Похоже, теперь они являются стандартом для настройки сборки Arm Arduino, поэтому мы должны рассмотреть их использование.

Однако я могу сделать только ограниченное тестирование E.глин. С моими проектами, поэтому доказательством пудинга было бы просто обновить репо и ждать, пока люди будут жаловаться, если это вызвало побочные эффекты

victor_pv
Пт. 03 марта 2017 г. 16:57
Rogerclark написал:Эти флаги обсуждались в другой ветке

http: // www.STM32duino.com/viewtopic.PHP?t = 1241

Похоже, теперь они являются стандартом для настройки сборки Arm Arduino, поэтому мы должны рассмотреть их использование.

Однако я могу сделать только ограниченное тестирование E.глин. С моими проектами, поэтому доказательством пудинга было бы просто обновить репо и ждать, пока люди будут жаловаться, если это вызвало побочные эффекты

Беннебой
Пт, 03 марта 2017 г., 19:44
Мой проект использует H/W SPI & i2c и много библиотек : D Так что есть еще одна база, покрытая с точки зрения I2C.

Rogerclark
Пт. 03 марта 2017 г. 20:23
Виктор

Хорошо.

Я сделаю это.

Я опубликую платформу для замены.текст

Беннебой
Пт. 03 марта 2017 г., 21:03
Просто имейте в виду, что на первом компиляции CC1.Exe будет много жаловаться.

Rogerclark
Пт. 03 марта 2017 г., 21:05
Bennehboy ​​написал:Просто имейте в виду, что на первом компиляции CC1.Exe будет много жаловаться.

Беннебой
Пт. 03 марта 2017 г., 21:12
TBH Я не совсем уверен, когда IDE отображает измененные параметры сборки, восстанавливая все »и выполняет полную компиляцию, он, по -видимому, передает параметры STD = GNU ++ 11 в компиляторы C ++ и C, C One (CC1.Exe я предполагаю), затем просто отображает предупреждение, в котором говорилось, что оно было передано вариант, который имеет отношение только к C++. К счастью, это хорошо справляется с этим, просто может показать много предупреждений о том, что люди не привыкли.
cc1.exe: warning: command line option '-std=gnu++11' is valid for C++/ObjC++ but not for C [enabled by default]

Беннебой
Пт, 03 марта 2017 г., 21:16
Между прочим, система меню функционирует хорошо, кроме проблемы с демонстрацией (функциональность, которую я не буду использовать).

Однако есть проблема, которую я обнаружил при использовании нескольких дисплеев SSD1306, потому что для всех дисплеев используется один кадр -буфер в ОЗУ, и он очищается для каждого экрана, который приводит к тому, что меню выпускает каждый раз «ClearDisplay» называется.

Причина, по которой это происходит, заключается в том, что автор использовал ленивые обновления, чтобы минимизировать циклы процессора - т.е. Если меню не изменилось, то не выводит в буфер. Я собираюсь спросить его, можно ли добавить «перерисовать все» или не ленивое обновление.

Обходной путь в настоящее время состоит в том, чтобы отключить рисунок на другие дисплеи, пока в меню - меню не блокирует, поэтому было приятно иметь датчики на других дисплеях видимыми и обновлениями...

Rogerclark
Сб 04 марта 2017 г. 5:57 утра
Bennehboy ​​написал:TBH Я не совсем уверен, когда IDE отображает измененные параметры сборки, восстанавливая все »и выполняет полную компиляцию, он, по -видимому, передает параметры STD = GNU ++ 11 в компиляторы C ++ и C, C One (CC1.Exe я предполагаю), затем просто отображает предупреждение, в котором говорилось, что оно было передано вариант, который имеет отношение только к C++. К счастью, это хорошо справляется с этим, просто может показать много предупреждений о том, что люди не привыкли.
cc1.exe: warning: command line option '-std=gnu++11' is valid for C++/ObjC++ but not for C [enabled by default]

Беннебой
Сб 04 марта 2017 г. 8:54 утра
Да, я, наверное, добавил это не в том месте.

Я добавил его в флаги сборки для Maple Mini в досках.текст:
mapleMini.build.cpu_flags=-DMCU_STM32F103CB -DSERIAL_USB -std=gnu++11

ZMEMW16
Сб 04 марта 2017 12:14
Нет жалоб, если вы положите это в компиляцию.CPP.Линия флагов, а не C.компиляция.Линия флагов на платформе.текст
Q также на платформе STM32F4.TXT или просто добавьте ко всей платформе.TXT файлы?
SRP

Rogerclark
Сб 04 марта 2017 г., 8:25 вечера
ZMEMW16 написал:Нет жалоб, если вы положите это в компиляцию.CPP.Линия флагов, а не C.компиляция.Линия флагов на платформе.текст
Q также на платформе STM32F4.TXT или просто добавьте ко всей платформе.TXT файлы?
SRP