LCD implementation of our project.
Dependencies: mbed mbed-rtos MLX90614
main.cpp
- Committer:
- ovidiup13
- Date:
- 2015-05-25
- Revision:
- 4:024e6a9c2ebf
- Parent:
- 3:688b62ff6474
- Child:
- 5:5b1a8ad6c187
File content as of revision 4:024e6a9c2ebf:
#include "UserInterface.h" #include "st7565LCD.h" //define mbed pins #define _MOSI p5 #define _SCLK p7 #define _RST p24 #define _A0 p8 #define _CS p6 ST7565 st7565(_MOSI, _SCLK, _CS, _RST, _A0); // mosi, sclk, cs, rst, a0 Serial pc(USBTX, USBRX); //rx, tx //buttons DigitalIn down(p18); DigitalIn select(p19); void init_config(UI *ui){ //create main menu Menu * main_menu = new Menu(" Main Menu", &st7565); //create distance screens Measure *distance = new Measure(" Distance", &st7565, main_menu); distance->setDescription("Select Start from the menu below to start laser."); Measure *distance2 = new Measure(" Distance", &st7565, distance); distance2->setDescription("Press select button to fix target."); Measure *distance3 = new Measure(" Distance", &st7565, main_menu); distance3->setDescription("Distance to target is:"); distance3->setResult(true); distance->setNext(" Start", distance2); distance2->setNext(" Select", distance3); distance3->setNext(" Start again", distance); main_menu->addItem(distance); //create point-to-point screens Measure *p2p = new Measure(" Point-to-Point", &st7565, main_menu); p2p->setDescription("Select Start from the menu to start laser for #1 target."); Measure *p2p2 = new Measure(" Point-to-Point", &st7565, p2p); p2p2->setDescription("Press select button to fix target #1."); Measure *p2p3 = new Measure(" Point-to-Point", &st7565, p2p2); p2p3->setDescription("Press select button to fix target #2."); Measure *p2p4 = new Measure(" Point-to-Point", &st7565, p2p3); p2p4->setDescription("Distance between targets is:"); p2p4->setResult(true); //result screen p2p->setNext(" Start", p2p2); p2p2->setNext(" Select", p2p3); p2p3->setNext(" Select", p2p4); p2p4->setNext(" Start again", p2p); main_menu->addItem(p2p); //create level meter screen LevelMeter *lvl = new LevelMeter(&st7565, main_menu); main_menu->addItem(lvl); //create compass screen Compass *compass = new Compass(&st7565, main_menu); main_menu->addItem(compass); //create thermo screen Measure *thermo = new Measure(" Thermometer", &st7565, main_menu); thermo->setDescription("Press Start from the menu to start laser."); Measure *thermo2 = new Measure(" Thermometer", &st7565, thermo); thermo2->setDescription("Press select button to fix target."); Measure *thermo3 = new Measure(" Thermometer", &st7565, main_menu); thermo3->setDescription("Target temperature is:"); thermo3->setResult(true); thermo->setNext(" Start", thermo2); thermo2->setNext(" Start", thermo3); thermo3->setNext(" Start", thermo); main_menu->addItem(thermo); //create settings menu Menu *settings = new Menu(" Settings", &st7565); main_menu->addItem(settings); //create header object Header * header = new Header(70, "", &st7565); //set header and current menu ui->setCurrent(main_menu); ui->setHeader(header); ui->init(); } int main(){ //create god UI object UI * ui = new UI(&st7565); //initialize configuration init_config(ui); while(1) { if(down){ ui->update('s'); wait(0.2); } else if(select){ ui->update('y'); wait(0.2); } /* else{ char c = pc.getc(); ui->update(c); } */ } }