working commands. singleton deleted
ReadCommand.cpp@5:47cb37923f58, 2015-06-11 (annotated)
- Committer:
- dkester
- Date:
- Thu Jun 11 20:57:59 2015 +0000
- Revision:
- 5:47cb37923f58
- Parent:
- 4:f81029197ab2
working 11 jun
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 | 4:f81029197ab2 | 4 | ReadCommand::ReadCommand(Storage* storage, GonioService* gonioService) |
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 | 4:f81029197ab2 | 9 | this->gonioService = gonioService; |
dkester | 0:e188325211af | 10 | } |
dkester | 0:e188325211af | 11 | |
dkester | 0:e188325211af | 12 | void ReadCommand::initialize() |
dkester | 0:e188325211af | 13 | { |
dkester | 4:f81029197ab2 | 14 | //setLed(1); |
dkester | 4:f81029197ab2 | 15 | //printf("ReadCommand\n"); |
dkester | 4:f81029197ab2 | 16 | //__disable_irq(); |
dkester | 4:f81029197ab2 | 17 | //readFromMemory(); |
dkester | 4:f81029197ab2 | 18 | //__enable_irq(); |
dkester | 0:e188325211af | 19 | } |
dkester | 0:e188325211af | 20 | |
dkester | 0:e188325211af | 21 | void ReadCommand::finish() |
dkester | 0:e188325211af | 22 | { |
dkester | 0:e188325211af | 23 | setLed(0); |
dkester | 0:e188325211af | 24 | } |
dkester | 0:e188325211af | 25 | |
dkester | 0:e188325211af | 26 | |
dkester | 0:e188325211af | 27 | void ReadCommand::execute() |
dkester | 0:e188325211af | 28 | { |
dkester | 1:fd4c0e2decb8 | 29 | //Read has nothing to do with the IMU interrupt |
dkester | 0:e188325211af | 30 | } |
dkester | 0:e188325211af | 31 | |
dkester | 0:e188325211af | 32 | void ReadCommand::button() |
dkester | 0:e188325211af | 33 | { |
dkester | 0:e188325211af | 34 | printf("**** BUTTON: ReadCommand *****\n"); |
dkester | 0:e188325211af | 35 | |
dkester | 4:f81029197ab2 | 36 | //__disable_irq(); |
dkester | 0:e188325211af | 37 | readFromMemory(); |
dkester | 4:f81029197ab2 | 38 | //__enable_irq(); |
dkester | 0:e188325211af | 39 | } |
dkester | 0:e188325211af | 40 | |
dkester | 0:e188325211af | 41 | |
dkester | 0:e188325211af | 42 | void ReadCommand::readFromMemory() |
dkester | 0:e188325211af | 43 | { |
dkester | 3:32afe87d4b62 | 44 | uint8_t angle[2]= {0,0}; |
dkester | 3:32afe87d4b62 | 45 | int8_t imu[2]= {0,0}; |
dkester | 0:e188325211af | 46 | |
dkester | 3:32afe87d4b62 | 47 | uint32_t addr = 0; |
dkester | 3:32afe87d4b62 | 48 | |
dkester | 3:32afe87d4b62 | 49 | do{ |
dkester | 3:32afe87d4b62 | 50 | storage->read(addr); |
dkester | 1:fd4c0e2decb8 | 51 | |
dkester | 3:32afe87d4b62 | 52 | angle[0] = storage->readData(); |
dkester | 3:32afe87d4b62 | 53 | angle[1] = storage->readData(); |
dkester | 3:32afe87d4b62 | 54 | imu[0] = storage->readData(); |
dkester | 3:32afe87d4b62 | 55 | imu[1] = storage->readData(); |
dkester | 1:fd4c0e2decb8 | 56 | |
dkester | 3:32afe87d4b62 | 57 | storage->endAction(); |
dkester | 0:e188325211af | 58 | |
dkester | 4:f81029197ab2 | 59 | /* |
dkester | 3:32afe87d4b62 | 60 | printf("Memory: angle = %.2f, ", ((float)(angle[0] << 8) + angle[1]) * 0.087912087); |
dkester | 3:32afe87d4b62 | 61 | printf("accelX = %.2f\n", ((float)(imu[0] << 8) + imu[1]) / 16.4); |
dkester | 4:f81029197ab2 | 62 | */ |
dkester | 4:f81029197ab2 | 63 | |
dkester | 4:f81029197ab2 | 64 | gonioService->updateGonio( ((angle[0] << 8) + angle[1]) , ((imu[0] << 8) + imu[1]) ,1); |
dkester | 4:f81029197ab2 | 65 | wait(0.01); |
dkester | 4:f81029197ab2 | 66 | //printf("%d,%d\n", ((angle[0] << 8) + angle[1]), ((imu[0] << 8) + imu[1])); |
dkester | 3:32afe87d4b62 | 67 | addr = addr + 4; |
dkester | 3:32afe87d4b62 | 68 | |
dkester | 3:32afe87d4b62 | 69 | } while(angle[0] != 255); |
dkester | 3:32afe87d4b62 | 70 | |
dkester | 4:f81029197ab2 | 71 | //printf("DONE!\n"); |
dkester | 0:e188325211af | 72 | } |
dkester | 0:e188325211af | 73 |