Code for autonomous ground vehicle, Data Bus, 3rd place winner in 2012 Sparkfun AVC.

Dependencies:   Watchdog mbed Schedule SimpleFilter LSM303DLM PinDetect DebounceIn Servo

Committer:
shimniok
Date:
Wed Jun 20 14:57:48 2012 +0000
Revision:
0:826c6171fc1b
Updated documentation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shimniok 0:826c6171fc1b 1 #include "mbed.h"
shimniok 0:826c6171fc1b 2 #include "Menu.h"
shimniok 0:826c6171fc1b 3 #include <string.h>
shimniok 0:826c6171fc1b 4
shimniok 0:826c6171fc1b 5 Menu::Menu():
shimniok 0:826c6171fc1b 6 _item(0), _itemCount(0)
shimniok 0:826c6171fc1b 7 {
shimniok 0:826c6171fc1b 8 }
shimniok 0:826c6171fc1b 9
shimniok 0:826c6171fc1b 10 void Menu::add(char *name, FunctionPtr f)
shimniok 0:826c6171fc1b 11 {
shimniok 0:826c6171fc1b 12 if (_itemCount < _ITEM_MAX) {
shimniok 0:826c6171fc1b 13 _exec[_itemCount] = f;
shimniok 0:826c6171fc1b 14 strncpy(_name[_itemCount], name, NAMESIZ-1);
shimniok 0:826c6171fc1b 15 _itemCount++;
shimniok 0:826c6171fc1b 16 }
shimniok 0:826c6171fc1b 17
shimniok 0:826c6171fc1b 18 return;
shimniok 0:826c6171fc1b 19 }
shimniok 0:826c6171fc1b 20
shimniok 0:826c6171fc1b 21 void Menu::next()
shimniok 0:826c6171fc1b 22 {
shimniok 0:826c6171fc1b 23 _item++;
shimniok 0:826c6171fc1b 24 if (_item >= _itemCount) _item = 0;
shimniok 0:826c6171fc1b 25
shimniok 0:826c6171fc1b 26 return;
shimniok 0:826c6171fc1b 27 }
shimniok 0:826c6171fc1b 28
shimniok 0:826c6171fc1b 29 void Menu::prev()
shimniok 0:826c6171fc1b 30 {
shimniok 0:826c6171fc1b 31 if (_item == 0) _item = _itemCount;
shimniok 0:826c6171fc1b 32 _item--;
shimniok 0:826c6171fc1b 33
shimniok 0:826c6171fc1b 34 return;
shimniok 0:826c6171fc1b 35 }
shimniok 0:826c6171fc1b 36
shimniok 0:826c6171fc1b 37 void Menu::select()
shimniok 0:826c6171fc1b 38 {
shimniok 0:826c6171fc1b 39 (_exec[_item])();
shimniok 0:826c6171fc1b 40 }
shimniok 0:826c6171fc1b 41
shimniok 0:826c6171fc1b 42 char *Menu::getItemName(int i)
shimniok 0:826c6171fc1b 43 {
shimniok 0:826c6171fc1b 44 return _name[i];
shimniok 0:826c6171fc1b 45 }
shimniok 0:826c6171fc1b 46
shimniok 0:826c6171fc1b 47
shimniok 0:826c6171fc1b 48 char *Menu::getItemName()
shimniok 0:826c6171fc1b 49 {
shimniok 0:826c6171fc1b 50 return _name[_item];
shimniok 0:826c6171fc1b 51 }
shimniok 0:826c6171fc1b 52
shimniok 0:826c6171fc1b 53 void Menu::printAll()
shimniok 0:826c6171fc1b 54 {
shimniok 0:826c6171fc1b 55 fprintf(stdout, "Menus:\n");
shimniok 0:826c6171fc1b 56 for (int i=0; i < _itemCount; i++) {
shimniok 0:826c6171fc1b 57 fprintf(stdout, "%s\n", _name[i]);
shimniok 0:826c6171fc1b 58 }
shimniok 0:826c6171fc1b 59 fprintf(stdout, "\n");
shimniok 0:826c6171fc1b 60
shimniok 0:826c6171fc1b 61 return;
shimniok 0:826c6171fc1b 62 }