A game for Lab 4 of ECE 4180
Dependencies: 4DGL-uLCD-SE LSM9DS1_Library SDFileSystem mbed-rtos mbed wave_player
InputHandler.cpp@5:68f6014f10bd, 2016-03-14 (annotated)
- Committer:
- Dogstopper
- Date:
- Mon Mar 14 18:54:12 2016 +0000
- Revision:
- 5:68f6014f10bd
- Parent:
- 3:27889fffc2f7
Final;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Dogstopper | 0:6a49493943be | 1 | #include "InputHandler.h" |
Dogstopper | 0:6a49493943be | 2 | |
Dogstopper | 0:6a49493943be | 3 | #define START_THREAD 1 |
Dogstopper | 0:6a49493943be | 4 | |
Dogstopper | 0:6a49493943be | 5 | InputHandler::InputHandler(PinName sda, PinName scl, uint8_t xgAddr, uint8_t mAddr, PinName digitalIn) |
Dogstopper | 2:623f29bad35c | 6 | :imu(sda, scl, xgAddr, mAddr), |
Dogstopper | 0:6a49493943be | 7 | pushButton(digitalIn, PullUp) |
Dogstopper | 0:6a49493943be | 8 | { |
Dogstopper | 0:6a49493943be | 9 | imu.begin(); |
Dogstopper | 0:6a49493943be | 10 | // imu.calibrate(1); |
Dogstopper | 0:6a49493943be | 11 | } |
Dogstopper | 0:6a49493943be | 12 | |
Dogstopper | 2:623f29bad35c | 13 | Thread* InputHandler::start() { |
Dogstopper | 2:623f29bad35c | 14 | return new Thread(&InputHandler::threadStarter, this, osPriorityNormal,1024); |
Dogstopper | 0:6a49493943be | 15 | } |
Dogstopper | 0:6a49493943be | 16 | |
Dogstopper | 0:6a49493943be | 17 | float InputHandler::getXAccel() { |
Dogstopper | 0:6a49493943be | 18 | stdio_mutex.lock(); |
Dogstopper | 0:6a49493943be | 19 | float temp = xAccel; |
Dogstopper | 0:6a49493943be | 20 | stdio_mutex.unlock(); |
Dogstopper | 0:6a49493943be | 21 | return temp; |
Dogstopper | 0:6a49493943be | 22 | } |
Dogstopper | 0:6a49493943be | 23 | |
Dogstopper | 0:6a49493943be | 24 | float InputHandler::getYAccel() { |
Dogstopper | 0:6a49493943be | 25 | stdio_mutex.lock(); |
Dogstopper | 3:27889fffc2f7 | 26 | float temp = yAccel; |
Dogstopper | 0:6a49493943be | 27 | stdio_mutex.unlock(); |
Dogstopper | 0:6a49493943be | 28 | return temp; |
Dogstopper | 0:6a49493943be | 29 | } |
Dogstopper | 0:6a49493943be | 30 | |
Dogstopper | 0:6a49493943be | 31 | float InputHandler::getZAccel() { |
Dogstopper | 0:6a49493943be | 32 | stdio_mutex.lock(); |
Dogstopper | 3:27889fffc2f7 | 33 | float temp = zAccel; |
Dogstopper | 0:6a49493943be | 34 | stdio_mutex.unlock(); |
Dogstopper | 0:6a49493943be | 35 | return temp; |
Dogstopper | 0:6a49493943be | 36 | } |
Dogstopper | 0:6a49493943be | 37 | |
Dogstopper | 0:6a49493943be | 38 | bool InputHandler::getPushed() { |
Dogstopper | 0:6a49493943be | 39 | stdio_mutex.lock(); |
Dogstopper | 0:6a49493943be | 40 | float temp = isPushed; |
Dogstopper | 0:6a49493943be | 41 | stdio_mutex.unlock(); |
Dogstopper | 0:6a49493943be | 42 | return temp; |
Dogstopper | 0:6a49493943be | 43 | } |
Dogstopper | 0:6a49493943be | 44 | |
Dogstopper | 0:6a49493943be | 45 | void InputHandler::threadStarter(void const *p) { |
Dogstopper | 0:6a49493943be | 46 | InputHandler *instance = (InputHandler*)p; |
Dogstopper | 0:6a49493943be | 47 | instance->retrieveInputs(); |
Dogstopper | 0:6a49493943be | 48 | } |
Dogstopper | 0:6a49493943be | 49 | |
Dogstopper | 0:6a49493943be | 50 | void InputHandler::retrieveInputs() { |
Dogstopper | 0:6a49493943be | 51 | |
Dogstopper | 0:6a49493943be | 52 | while(true) { |
Dogstopper | 0:6a49493943be | 53 | imu.readAccel(); |
Dogstopper | 0:6a49493943be | 54 | |
Dogstopper | 0:6a49493943be | 55 | stdio_mutex.lock(); |
Dogstopper | 0:6a49493943be | 56 | xAccel = -imu.calcAccel(imu.ax); |
Dogstopper | 0:6a49493943be | 57 | yAccel = -imu.calcAccel(imu.ay); |
Dogstopper | 0:6a49493943be | 58 | zAccel = -imu.calcAccel(imu.az); |
Dogstopper | 0:6a49493943be | 59 | isPushed = pushButton.read() == 0; |
Dogstopper | 2:623f29bad35c | 60 | //printf("\t\txAccel: %.6f\n\ryAccel: %.6f\n\risPushed: %s", xAccel, yAccel, isPushed ? "true" : "false"); |
Dogstopper | 0:6a49493943be | 61 | stdio_mutex.unlock(); |
Dogstopper | 0:6a49493943be | 62 | |
Dogstopper | 3:27889fffc2f7 | 63 | Thread::wait(30); |
Dogstopper | 0:6a49493943be | 64 | } |
Dogstopper | 0:6a49493943be | 65 | } |