working commands. singleton deleted

Dependents:   GonioTrainer

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?

UserRevisionLine numberNew 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