Interactive Device Design
/
idd_hw5_group_alloy_kl25z
Code for the kl25z component of our project - for group Alloy.
Window.cpp@0:85181831ea03, 2014-11-10 (annotated)
- Committer:
- douglasc
- Date:
- Mon Nov 10 17:30:55 2014 +0000
- Revision:
- 0:85181831ea03
initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
douglasc | 0:85181831ea03 | 1 | /* Window.cpp */ |
douglasc | 0:85181831ea03 | 2 | #include "Window.h" |
douglasc | 0:85181831ea03 | 3 | #include "Servo.h" |
douglasc | 0:85181831ea03 | 4 | #include "mbed.h" |
douglasc | 0:85181831ea03 | 5 | |
douglasc | 0:85181831ea03 | 6 | Window::Window() {} |
douglasc | 0:85181831ea03 | 7 | |
douglasc | 0:85181831ea03 | 8 | Window::Window(Servo* s, float timer) { |
douglasc | 0:85181831ea03 | 9 | servo = s; |
douglasc | 0:85181831ea03 | 10 | |
douglasc | 0:85181831ea03 | 11 | windowOpen = true; |
douglasc | 0:85181831ea03 | 12 | |
douglasc | 0:85181831ea03 | 13 | // Had to guess and check this value after |
douglasc | 0:85181831ea03 | 14 | // the servo was modified to move 360 degrees. |
douglasc | 0:85181831ea03 | 15 | servoStop = 0.48; |
douglasc | 0:85181831ea03 | 16 | |
douglasc | 0:85181831ea03 | 17 | // How long it takes for the window to completely |
douglasc | 0:85181831ea03 | 18 | // raise or lower. |
douglasc | 0:85181831ea03 | 19 | windowMovementTimer = timer; |
douglasc | 0:85181831ea03 | 20 | |
douglasc | 0:85181831ea03 | 21 | // closeWindow(); |
douglasc | 0:85181831ea03 | 22 | } |
douglasc | 0:85181831ea03 | 23 | |
douglasc | 0:85181831ea03 | 24 | bool Window::isWindowOpen() { |
douglasc | 0:85181831ea03 | 25 | return windowOpen; |
douglasc | 0:85181831ea03 | 26 | } |
douglasc | 0:85181831ea03 | 27 | |
douglasc | 0:85181831ea03 | 28 | bool Window::openWindow() { |
douglasc | 0:85181831ea03 | 29 | if (!isWindowOpen()) { |
douglasc | 0:85181831ea03 | 30 | servo->write(0.6); |
douglasc | 0:85181831ea03 | 31 | windowOpen = true; |
douglasc | 0:85181831ea03 | 32 | wait(windowMovementTimer); |
douglasc | 0:85181831ea03 | 33 | servo->write(servoStop); |
douglasc | 0:85181831ea03 | 34 | windowOpen = true; |
douglasc | 0:85181831ea03 | 35 | return true; |
douglasc | 0:85181831ea03 | 36 | } |
douglasc | 0:85181831ea03 | 37 | // window already open |
douglasc | 0:85181831ea03 | 38 | return false; |
douglasc | 0:85181831ea03 | 39 | } |
douglasc | 0:85181831ea03 | 40 | |
douglasc | 0:85181831ea03 | 41 | bool Window::closeWindow() { |
douglasc | 0:85181831ea03 | 42 | if (isWindowOpen()) { |
douglasc | 0:85181831ea03 | 43 | servo->write(0.35); |
douglasc | 0:85181831ea03 | 44 | wait(windowMovementTimer); |
douglasc | 0:85181831ea03 | 45 | servo->write(servoStop); |
douglasc | 0:85181831ea03 | 46 | windowOpen = false; |
douglasc | 0:85181831ea03 | 47 | return true; |
douglasc | 0:85181831ea03 | 48 | } |
douglasc | 0:85181831ea03 | 49 | // window already closed |
douglasc | 0:85181831ea03 | 50 | return false; |
douglasc | 0:85181831ea03 | 51 | } |