working commands. singleton deleted

Dependents:   GonioTrainer

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?

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