Cubic Hand project for EECS 249A course.
Dependencies: MMA8451Q TSI cc3000_hostdriver_mbedsocket NVIC_set_all_priorities mbed Multi_WS2811
DataGlove.h
- Committer:
- robertbui
- Date:
- 2014-12-11
- Revision:
- 32:bf5f545621aa
- Parent:
- 26:42ae7eed0b68
- Child:
- 35:b6fb5dd65a98
File content as of revision 32: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(); };