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

Dependencies:   Watchdog mbed Schedule SimpleFilter LSM303DLM PinDetect DebounceIn Servo

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Menu.cpp Source File

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 }