Simple Menu for user config at startup etc

Committer:
skyscraper
Date:
Sun Mar 29 16:00:36 2020 +0000
Revision:
0:694155408133
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
skyscraper 0:694155408133 1
skyscraper 0:694155408133 2
skyscraper 0:694155408133 3 #include "userMenu.h"
skyscraper 0:694155408133 4 #include <iostream>
skyscraper 0:694155408133 5
skyscraper 0:694155408133 6 template <int N>
skyscraper 0:694155408133 7 int8_t
skyscraper 0:694155408133 8 menu(uint8_t argc, const Menu::arg *argv)
skyscraper 0:694155408133 9 {
skyscraper 0:694155408133 10 std::cout << " This is menu " << N << "\n";
skyscraper 0:694155408133 11 if ( argc > 1) {
skyscraper 0:694155408133 12 std::cout << "args = " ;
skyscraper 0:694155408133 13 for ( uint8_t i = 1U; i < argc; ++i){
skyscraper 0:694155408133 14 if ( i > 1){
skyscraper 0:694155408133 15 std::cout << ", ";
skyscraper 0:694155408133 16 }
skyscraper 0:694155408133 17 std::cout << argv[i].str ;
skyscraper 0:694155408133 18 }
skyscraper 0:694155408133 19 std::cout << '\n';
skyscraper 0:694155408133 20 }
skyscraper 0:694155408133 21 return 1;
skyscraper 0:694155408133 22 }
skyscraper 0:694155408133 23
skyscraper 0:694155408133 24 constexpr struct Menu::command mainMenuCommands[] = {
skyscraper 0:694155408133 25 {"menu1", menu<1>},
skyscraper 0:694155408133 26 {"menu2", menu<2>},
skyscraper 0:694155408133 27 {"menu3", menu<3>}
skyscraper 0:694155408133 28 };
skyscraper 0:694155408133 29
skyscraper 0:694155408133 30 MENU(main_menu, "User_menu", mainMenuCommands);
skyscraper 0:694155408133 31
skyscraper 0:694155408133 32 void user_menu()
skyscraper 0:694155408133 33 {
skyscraper 0:694155408133 34 main_menu.run();
skyscraper 0:694155408133 35 }
skyscraper 0:694155408133 36
skyscraper 0:694155408133 37
skyscraper 0:694155408133 38 int main()
skyscraper 0:694155408133 39 {
skyscraper 0:694155408133 40
skyscraper 0:694155408133 41 user_menu();
skyscraper 0:694155408133 42 }