working commands. singleton deleted
ReadCommand.cpp@3:32afe87d4b62, 2015-06-07 (annotated)
- Committer:
- dkester
- Date:
- Sun Jun 07 21:57:46 2015 +0000
- Revision:
- 3:32afe87d4b62
- Parent:
- 2:c9e47ac47edb
- Child:
- 4:f81029197ab2
working zondag 7 juni
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dkester | 0:e188325211af | 1 | #include "ReadCommand.h" |
dkester | 1:fd4c0e2decb8 | 2 | #include "OfflineCommand.h" |
dkester | 0:e188325211af | 3 | |
dkester | 2:c9e47ac47edb | 4 | ReadCommand::ReadCommand(Storage* storage) |
dkester | 0:e188325211af | 5 | { |
dkester | 2:c9e47ac47edb | 6 | this->storage = storage; |
dkester | 0:e188325211af | 7 | this->running = 0; |
dkester | 0:e188325211af | 8 | this->addr = 0x00; |
dkester | 0:e188325211af | 9 | } |
dkester | 0:e188325211af | 10 | |
dkester | 0:e188325211af | 11 | void ReadCommand::initialize() |
dkester | 0:e188325211af | 12 | { |
dkester | 0:e188325211af | 13 | printf("ReadCommand\n"); |
dkester | 0:e188325211af | 14 | setLed(1); |
dkester | 0:e188325211af | 15 | } |
dkester | 0:e188325211af | 16 | |
dkester | 0:e188325211af | 17 | void ReadCommand::finish() |
dkester | 0:e188325211af | 18 | { |
dkester | 0:e188325211af | 19 | setLed(0); |
dkester | 0:e188325211af | 20 | } |
dkester | 0:e188325211af | 21 | |
dkester | 0:e188325211af | 22 | |
dkester | 0:e188325211af | 23 | void ReadCommand::execute() |
dkester | 0:e188325211af | 24 | { |
dkester | 1:fd4c0e2decb8 | 25 | //Read has nothing to do with the IMU interrupt |
dkester | 0:e188325211af | 26 | } |
dkester | 0:e188325211af | 27 | |
dkester | 0:e188325211af | 28 | void ReadCommand::button() |
dkester | 0:e188325211af | 29 | { |
dkester | 0:e188325211af | 30 | printf("**** BUTTON: ReadCommand *****\n"); |
dkester | 0:e188325211af | 31 | |
dkester | 0:e188325211af | 32 | __disable_irq(); |
dkester | 0:e188325211af | 33 | readFromMemory(); |
dkester | 0:e188325211af | 34 | __enable_irq(); |
dkester | 0:e188325211af | 35 | } |
dkester | 0:e188325211af | 36 | |
dkester | 0:e188325211af | 37 | |
dkester | 0:e188325211af | 38 | void ReadCommand::readFromMemory() |
dkester | 0:e188325211af | 39 | { |
dkester | 3:32afe87d4b62 | 40 | uint8_t angle[2]= {0,0}; |
dkester | 3:32afe87d4b62 | 41 | int8_t imu[2]= {0,0}; |
dkester | 0:e188325211af | 42 | |
dkester | 3:32afe87d4b62 | 43 | uint32_t addr = 0; |
dkester | 3:32afe87d4b62 | 44 | |
dkester | 3:32afe87d4b62 | 45 | do{ |
dkester | 3:32afe87d4b62 | 46 | storage->read(addr); |
dkester | 1:fd4c0e2decb8 | 47 | |
dkester | 3:32afe87d4b62 | 48 | angle[0] = storage->readData(); |
dkester | 3:32afe87d4b62 | 49 | angle[1] = storage->readData(); |
dkester | 3:32afe87d4b62 | 50 | imu[0] = storage->readData(); |
dkester | 3:32afe87d4b62 | 51 | imu[1] = storage->readData(); |
dkester | 1:fd4c0e2decb8 | 52 | |
dkester | 3:32afe87d4b62 | 53 | storage->endAction(); |
dkester | 0:e188325211af | 54 | |
dkester | 3:32afe87d4b62 | 55 | printf("Memory: angle = %.2f, ", ((float)(angle[0] << 8) + angle[1]) * 0.087912087); |
dkester | 3:32afe87d4b62 | 56 | printf("accelX = %.2f\n", ((float)(imu[0] << 8) + imu[1]) / 16.4); |
dkester | 3:32afe87d4b62 | 57 | addr = addr + 4; |
dkester | 3:32afe87d4b62 | 58 | |
dkester | 3:32afe87d4b62 | 59 | } while(angle[0] != 255); |
dkester | 3:32afe87d4b62 | 60 | |
dkester | 0:e188325211af | 61 | printf("DONE!\n"); |
dkester | 0:e188325211af | 62 | } |
dkester | 0:e188325211af | 63 |