working commands. singleton deleted

Dependents:   GonioTrainer

IdleCommand.cpp

Committer:
dkester
Date:
2015-06-11
Revision:
5:47cb37923f58
Parent:
4:f81029197ab2

File content as of revision 5:47cb37923f58:

#include "IdleCommand.h"

IdleCommand::IdleCommand(Sensors* sensors, GonioService* gonioService)
{
    this->sensors = sensors;
    this->gonioService = gonioService;
}

void IdleCommand::initialize()
{

    printf("IdleCommand\n");
    sensors->disableIMU();
    setTicker(0.5);
}

void IdleCommand::execute() {}

void IdleCommand::button()
{
    int16_t angle = (sensors->getAngle(0) << 8) + sensors->getAngle(1);

    //printf("%.2f,%d\n", ((float)angle) * 0.087912087, angle);

    sensors->updateAngle();
    sensors->updateIMU();

    int16_t accel[3] = {0,0,0};
    int16_t gyro[3] = {0,0,0};

    accel[0] = (sensors->getIMU(0)<<8)+sensors->getIMU(1);
    accel[1] = (sensors->getIMU(2)<<8)+sensors->getIMU(3);
    accel[2] = (sensors->getIMU(4)<<8)+sensors->getIMU(5);
    gyro[0]  = (sensors->getIMU(6)<<8)+sensors->getIMU(7);
    gyro[1]  = (sensors->getIMU(8)<<8)+sensors->getIMU(9);
    gyro[2]  = (sensors->getIMU(10)<<8)+sensors->getIMU(11);


    if(gonioService->isConnected()) {
        gonioService->updateGonio(angle,gyro[0],accel[0]);
    }
}

void IdleCommand::finish()
{
    detachTicker();
    setLed(0);
}