Hexiwear library for communicating with the on-board KW40Z BLE device. KW40Z handles also the touch buttons.
Dependents: Hexi_Buttons_Example Hexi_Click_Relay-v2_Example Hexi_Click_Relay-v3_Example Hexi_Catch-the-dot_Game ... more
Diff: Hexi_KW40Z.cpp
- Revision:
- 7:f363aea73f45
- Parent:
- 4:8586f50385d2
--- a/Hexi_KW40Z.cpp Tue Sep 20 22:52:28 2016 +0000 +++ b/Hexi_KW40Z.cpp Sun Sep 25 05:24:24 2016 +0000 @@ -33,6 +33,7 @@ * Project HEXIWEAR, 2015 */ + #include "Hexi_KW40Z.h" #if defined (LIB_DEBUG) @@ -150,6 +151,7 @@ } #if defined (LIB_DEBUG) + void KW40Z::DebugPrintTxPacket(hostInterface_packet_t * txPacket) { char * txBuff = (char *)txPacket; @@ -414,50 +416,60 @@ SendPacket(&txPacket, true); } -void KW40Z::SendAccel(uint8_t x, uint8_t y, uint8_t z) +void KW40Z::SendAccel(int16_t x, int16_t y, int16_t z) { hostInterface_packet_t txPacket = {0}; txPacket.start1 = gHostInterface_startByte1; txPacket.start2 = gHostInterface_startByte2; txPacket.type = packetType_accel; - txPacket.length = 3; - txPacket.data[0] = x; - txPacket.data[1] = y; - txPacket.data[2] = z; - txPacket.data[3] = gHostInterface_trailerByte; + txPacket.length = 6; + + txPacket.data[0] = (uint8_t) ((x >> 8)&0xFF); + txPacket.data[1] = (uint8_t) x; + txPacket.data[2] = (uint8_t) ((y >> 8)&0xFF); + txPacket.data[3] = (uint8_t) y; + txPacket.data[4] = (uint8_t) ((z >> 8)&0xFF); + txPacket.data[5] = (uint8_t) z; + txPacket.data[6] = gHostInterface_trailerByte; SendPacket(&txPacket, true); } -void KW40Z::SendGyro(uint8_t x, uint8_t y, uint8_t z) +void KW40Z::SendGyro(int16_t x, int16_t y, int16_t z) { hostInterface_packet_t txPacket = {0}; txPacket.start1 = gHostInterface_startByte1; txPacket.start2 = gHostInterface_startByte2; txPacket.type = packetType_gyro; - txPacket.length = 3; - txPacket.data[0] = x; - txPacket.data[1] = y; - txPacket.data[2] = z; - txPacket.data[3] = gHostInterface_trailerByte; + txPacket.length = 6; + txPacket.data[0] = (uint8_t) ((x >> 8)&0xFF); + txPacket.data[1] = (uint8_t) x; + txPacket.data[2] = (uint8_t) ((y >> 8)&0xFF); + txPacket.data[3] = (uint8_t) y; + txPacket.data[4] = (uint8_t) ((z >> 8)&0xFF); + txPacket.data[5] = (uint8_t) z; + txPacket.data[6] = gHostInterface_trailerByte; SendPacket(&txPacket, true); } -void KW40Z::SendMag(uint8_t x, uint8_t y, uint8_t z) +void KW40Z::SendMag(int16_t x, int16_t y, int16_t z) { hostInterface_packet_t txPacket = {0}; txPacket.start1 = gHostInterface_startByte1; txPacket.start2 = gHostInterface_startByte2; txPacket.type = packetType_magnet; - txPacket.length = 3; - txPacket.data[0] = x; - txPacket.data[1] = y; - txPacket.data[2] = z; - txPacket.data[3] = gHostInterface_trailerByte; + txPacket.length = 6; + txPacket.data[0] = (uint8_t) ((x >> 8)&0xFF); + txPacket.data[1] = (uint8_t) x; + txPacket.data[2] = (uint8_t) ((y >> 8)&0xFF); + txPacket.data[3] = (uint8_t) y; + txPacket.data[4] = (uint8_t) ((z >> 8)&0xFF); + txPacket.data[5] = (uint8_t) z; + txPacket.data[6] = gHostInterface_trailerByte; SendPacket(&txPacket, true); }