Hexiwear library for communicating with the on-board KW40Z BLE device. KW40Z handles also the touch buttons.
Dependents: Hexi_BLE_Example_Modified Hexi_BLE_Example_ModifiedPOTATO
Fork of Hexi_KW40Z by
Diff: Hexi_KW40Z.cpp
- Revision:
- 14:241c491f985f
- Parent:
- 13:84ead63f7353
diff -r 84ead63f7353 -r 241c491f985f Hexi_KW40Z.cpp --- a/Hexi_KW40Z.cpp Thu Aug 09 22:45:01 2018 +0000 +++ b/Hexi_KW40Z.cpp Mon Aug 27 16:15:26 2018 -0700 @@ -35,7 +35,7 @@ #include "Hexi_KW40Z.h" -KW40Z::KW40Z(PinName txPin,PinName rxPin) : +KW40Z::KW40Z(PinName txPin,PinName rxPin) : #if defined (LIB_DEBUG) || defined (RAW_DEBUG) || defined (RX_DEBUG) pc(USBTX, USBRX), #endif @@ -70,6 +70,9 @@ advertisementMode = 0; linkState = 0; bondPassKey = 0; + + allocated = 0; + freed = 0; /* intialization finalized, signal to start the threads */ rxThread.start(this, &KW40Z::rxTask); @@ -109,7 +112,10 @@ hostInterface_packet_t *packet = (hostInterface_packet_t*)evt.value.p; ProcessPacket(packet); mpool.free(packet); + // freed += 1; + // printf("%s%lu\r\n", "non-freed buffer slots: ", allocated - freed); } + } } @@ -139,6 +145,13 @@ { /* copy txPacket to the mem pool */ hostInterface_packet_t *packet = mpool.alloc(); + + + if (packet == NULL) { + return; + } + allocated += 1; + memcpy(packet, txPacket, sizeof(hostInterface_packet_t)); /* Set the TX bit in the Start 2 byte */ @@ -154,6 +167,8 @@ printf("SendPacket: "); DebugPrintPacket(packet); #endif + // printf("SendPacket: "); + // DebugPrintPacket(packet); /* send message to main task */ queue.put(packet); @@ -255,6 +270,7 @@ /* send message to main task */ hostInterface_packet_t *rxPacket = mpool.alloc(); + allocated += 1; memcpy(rxPacket, &hostInterface_rxPacket, sizeof(hostInterface_packet_t)); queue.put(rxPacket); @@ -265,6 +281,9 @@ #if defined (RAW_DEBUG) printf("\r\n"); #endif + // printf("RX: "); + // DebugPrintPacket(&hostInterface_rxPacket); + // printf("\r\n"); /* reset buffer position */ rxBuff = (uint8_t*)&hostInterface_rxPacket; } @@ -775,3 +794,20 @@ printf("\r\n"); } #endif +// void KW40Z::DebugPrintPacket(hostInterface_packet_t * packet) +// { +// char * idx = (char *)packet; +// uint8_t length = packet->length + gHostInterface_headerSize + 1; + +// if(length > sizeof(hostInterface_packet_t)) +// { +// length = sizeof(hostInterface_packet_t); +// } + +// for(uint8_t i = 0; i < length; i++) +// { +// printf("%02X ",*idx); +// idx++; +// } +// printf("\r\n"); +// }