Temp Fork
Dependencies: MMA8451Q Multi_WS2811 NVIC_set_all_priorities TSI cc3000_hostdriver_mbedsocket mbed
Fork of CubicHand by
DataGlove.h
- Committer:
- robertbui
- Date:
- 2014-12-11
- Revision:
- 31:bf5f545621aa
- Parent:
- 28:42ae7eed0b68
File content as of revision 31:bf5f545621aa:
#include "GloveWifi.h"
#pragma once
struct Glove {
double roll;
double pitch;
double yaw;
double fingers[5];
double gyro[3];
double magn[3];
double accel[3];
int lastPkgTime;
};
class DataGlove
{
public:
DataGlove();
~DataGlove();
void Init();
void Receive();
//Returns the latest glove values in a structure.
Glove GetCurrentValues();
//Returns true if new data since last function call, false otherwise.
bool CheckForNewValues();
int16_t finger1, finger2, finger3, finger4, finger5;
int16_t accelx, accely, accelz;
int16_t gyrox, gyroy, gyroz;
private:
uint8_t SendBuf[20];
int16_t notConnectedCount;
long numReceived;
char Buf[256], buffer[256];
bool raw;
unsigned char bcc;
int pkglen, u;
int timeOfArrival, id, pkgtype;
int j, k, y;
double roll, yaw, pitch;
double norm, test;
int q0, q1, q2, q3;
double q00, q11, q22, q33;
long ReceiveCount;
bool NewData;
// Stores glove data
Glove *gl;
// Stores the correction matrix
Glove *correction;
// Stores the corrected glove values
Glove *corrected;
GloveWifi GloveSocket;
private:
void Parse();
void StreamData(uint8_t DataType);
void StopSampling();
void ExtractFingersQuat();
void ExtractQuat();
void ExtractFingersRaw();
void ExtractRaw();
void ExtractFingers();
};
