Code for autonomous ground vehicle, Data Bus, 3rd place winner in 2012 Sparkfun AVC.
Dependencies: Watchdog mbed Schedule SimpleFilter LSM303DLM PinDetect DebounceIn Servo
Menu.cpp
00001 #include "mbed.h" 00002 #include "Menu.h" 00003 #include <string.h> 00004 00005 Menu::Menu(): 00006 _item(0), _itemCount(0) 00007 { 00008 } 00009 00010 void Menu::add(char *name, FunctionPtr f) 00011 { 00012 if (_itemCount < _ITEM_MAX) { 00013 _exec[_itemCount] = f; 00014 strncpy(_name[_itemCount], name, NAMESIZ-1); 00015 _itemCount++; 00016 } 00017 00018 return; 00019 } 00020 00021 void Menu::next() 00022 { 00023 _item++; 00024 if (_item >= _itemCount) _item = 0; 00025 00026 return; 00027 } 00028 00029 void Menu::prev() 00030 { 00031 if (_item == 0) _item = _itemCount; 00032 _item--; 00033 00034 return; 00035 } 00036 00037 void Menu::select() 00038 { 00039 (_exec[_item])(); 00040 } 00041 00042 char *Menu::getItemName(int i) 00043 { 00044 return _name[i]; 00045 } 00046 00047 00048 char *Menu::getItemName() 00049 { 00050 return _name[_item]; 00051 } 00052 00053 void Menu::printAll() 00054 { 00055 fprintf(stdout, "Menus:\n"); 00056 for (int i=0; i < _itemCount; i++) { 00057 fprintf(stdout, "%s\n", _name[i]); 00058 } 00059 fprintf(stdout, "\n"); 00060 00061 return; 00062 }
Generated on Tue Jul 12 2022 14:09:27 by 1.7.2