LCD implementation of our project.
Dependencies: mbed mbed-rtos MLX90614
Diff: Measure.cpp
- Revision:
- 3:688b62ff6474
- Child:
- 7:11675c1dce4f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Measure.cpp Sun Apr 26 16:29:53 2015 +0000 @@ -0,0 +1,63 @@ +#include "Measure.h" + +void Measure::display(void){ + this->display_items(); +} + +void Measure::update(char c){ + //select down + if(c == 's'){ + if(selected == 2) return; //do nothing + printf("measure - going down"); + selected = 2; + current_line = 7; + } + //select up + else if(c == 'w'){ + if(selected == 1) return; //do nothing + selected = 1; + current_line = 6; + } + //go to next screen + else if(c == 'y'){ + if(selected == 1) + this->setSelectedScreen(next); + else if(selected == 2) + this->setSelectedScreen(back); + else + return; + } + //display items + display_items(); +} + +void Measure::display_description(char * r){ + st7565->drawstring(0, 2, description); //description + //result + if(hasResult) + st7565->drawstring(30, 5, r); +} + +void Measure::display_items(void){ + //clear screen + st7565->clear(); + + //display result if it is a result screen + float r = 5; + char result[15]; + if(hasResult){ + //calculate result + sprintf(result, "%.2f Meters", r); + } + + //display description + display_description(result); + + //draw items + st7565->drawstring(LEFT_MARGIN * 2, SELECTION_LINE, nextName); + st7565->drawstring(LEFT_MARGIN * 2, SELECTION_LINE + 1, backName); + + //set first as selected + st7565->drawcircle(2, (current_line * 8) + 3, 2, 20); + st7565->display(); +}