Cubic Hand project for EECS 249A course.
Dependencies: MMA8451Q TSI cc3000_hostdriver_mbedsocket NVIC_set_all_priorities mbed Multi_WS2811
DataGlove.h@23:a8de4f87cada, 2014-12-11 (annotated)
- Committer:
- kalbers
- Date:
- Thu Dec 11 04:17:46 2014 +0000
- Revision:
- 23:a8de4f87cada
- Parent:
- 22:0cc5b7e55419
- Child:
- 26:42ae7eed0b68
Added interface to get Glove Values and check for new values.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kalbers | 3:5f5d75cba8e1 | 1 | #include "GloveWifi.h" |
kalbers | 3:5f5d75cba8e1 | 2 | |
kalbers | 13:c701f1122797 | 3 | #pragma once |
kalbers | 13:c701f1122797 | 4 | |
naren | 14:0c4a26dc6873 | 5 | struct Glove { |
naren | 14:0c4a26dc6873 | 6 | double roll; |
naren | 14:0c4a26dc6873 | 7 | double pitch; |
naren | 14:0c4a26dc6873 | 8 | double yaw; |
naren | 14:0c4a26dc6873 | 9 | double fingers[5]; |
naren | 14:0c4a26dc6873 | 10 | double gyro[3]; |
naren | 14:0c4a26dc6873 | 11 | double magn[3]; |
naren | 14:0c4a26dc6873 | 12 | double accel[3]; |
naren | 14:0c4a26dc6873 | 13 | int lastPkgTime; |
naren | 14:0c4a26dc6873 | 14 | }; |
naren | 14:0c4a26dc6873 | 15 | |
kalbers | 3:5f5d75cba8e1 | 16 | class DataGlove |
kalbers | 3:5f5d75cba8e1 | 17 | { |
kalbers | 3:5f5d75cba8e1 | 18 | public: |
kalbers | 3:5f5d75cba8e1 | 19 | DataGlove(); |
kalbers | 3:5f5d75cba8e1 | 20 | ~DataGlove(); |
kalbers | 3:5f5d75cba8e1 | 21 | void Init(); |
kalbers | 3:5f5d75cba8e1 | 22 | void Receive(); |
kalbers | 23:a8de4f87cada | 23 | |
kalbers | 23:a8de4f87cada | 24 | //Returns the latest glove values in a structure. |
kalbers | 23:a8de4f87cada | 25 | Glove GetCurrentValues(); |
kalbers | 23:a8de4f87cada | 26 | //Returns true if new data since last function call, false otherwise. |
kalbers | 23:a8de4f87cada | 27 | bool CheckForNewValues(); |
kalbers | 23:a8de4f87cada | 28 | |
kalbers | 3:5f5d75cba8e1 | 29 | int16_t finger1, finger2, finger3, finger4, finger5; |
kalbers | 3:5f5d75cba8e1 | 30 | int16_t accelx, accely, accelz; |
kalbers | 3:5f5d75cba8e1 | 31 | int16_t gyrox, gyroy, gyroz; |
kalbers | 3:5f5d75cba8e1 | 32 | |
kalbers | 3:5f5d75cba8e1 | 33 | private: |
kalbers | 3:5f5d75cba8e1 | 34 | uint8_t SendBuf[20]; |
kalbers | 3:5f5d75cba8e1 | 35 | int16_t notConnectedCount; |
kalbers | 19:e751d075e2e6 | 36 | long numReceived; |
kalbers | 19:e751d075e2e6 | 37 | char Buf[256], buffer[256]; |
kalbers | 15:b48ac00af0b8 | 38 | bool raw; |
kalbers | 15:b48ac00af0b8 | 39 | unsigned char bcc; |
kalbers | 15:b48ac00af0b8 | 40 | int pkglen, u; |
kalbers | 15:b48ac00af0b8 | 41 | int timeOfArrival, id, pkgtype; |
kalbers | 15:b48ac00af0b8 | 42 | int j, k, y; |
kalbers | 15:b48ac00af0b8 | 43 | double roll, yaw, pitch; |
kalbers | 15:b48ac00af0b8 | 44 | double norm, test; |
kalbers | 15:b48ac00af0b8 | 45 | int q0, q1, q2, q3; |
kalbers | 15:b48ac00af0b8 | 46 | double q00, q11, q22, q33; |
kalbers | 18:6737bf53ccd1 | 47 | long ReceiveCount; |
kalbers | 23:a8de4f87cada | 48 | bool NewData; |
naren | 22:0cc5b7e55419 | 49 | // Stores glove data |
naren | 14:0c4a26dc6873 | 50 | Glove *gl; |
naren | 22:0cc5b7e55419 | 51 | // Stores the correction matrix |
naren | 22:0cc5b7e55419 | 52 | Glove *correction; |
naren | 22:0cc5b7e55419 | 53 | // Stores the corrected glove values |
naren | 22:0cc5b7e55419 | 54 | Glove *corrected; |
kalbers | 3:5f5d75cba8e1 | 55 | GloveWifi GloveSocket; |
kalbers | 18:6737bf53ccd1 | 56 | |
kalbers | 18:6737bf53ccd1 | 57 | private: |
kalbers | 18:6737bf53ccd1 | 58 | void Parse(); |
kalbers | 18:6737bf53ccd1 | 59 | void StreamData(uint8_t DataType); |
kalbers | 19:e751d075e2e6 | 60 | void StopSampling(); |
kalbers | 18:6737bf53ccd1 | 61 | void ExtractFingersQuat(); |
kalbers | 18:6737bf53ccd1 | 62 | void ExtractQuat(); |
kalbers | 18:6737bf53ccd1 | 63 | void ExtractFingersRaw(); |
kalbers | 18:6737bf53ccd1 | 64 | void ExtractRaw(); |
kalbers | 18:6737bf53ccd1 | 65 | void ExtractFingers(); |
kalbers | 3:5f5d75cba8e1 | 66 | }; |