2014 Freescale / Hack A Day Make It Challenge FRDM-K64 Internet of "Thing"

Dependencies:   mbed

Committer:
emh203
Date:
Thu Apr 10 21:14:23 2014 +0000
Revision:
0:423d5729e94e
1st add.  Used for final demo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emh203 0:423d5729e94e 1 /*
emh203 0:423d5729e94e 2
emh203 0:423d5729e94e 3 --------------------------------------------
emh203 0:423d5729e94e 4 | |
emh203 0:423d5729e94e 5 | .... |
emh203 0:423d5729e94e 6 | 7OO$?I78. |
emh203 0:423d5729e94e 7 | .?8++++7+II?D. |
emh203 0:423d5729e94e 8 | .?O++=I++II+?= |
emh203 0:423d5729e94e 9 | .IO++?7==I??$. |
emh203 0:423d5729e94e 10 | .8++=$===?+I$ |
emh203 0:423d5729e94e 11 | ?+++===+===+ |
emh203 0:423d5729e94e 12 | ???=+I++==+? |
emh203 0:423d5729e94e 13 | .??++====+==++ |
emh203 0:423d5729e94e 14 | ?+++==========~ |
emh203 0:423d5729e94e 15 | $+++==========+= |
emh203 0:423d5729e94e 16 | =?+===+==+I======== |
emh203 0:423d5729e94e 17 | ..++======~~~~========? |
emh203 0:423d5729e94e 18 | .$?I??+=~~===~~~===~===++. |
emh203 0:423d5729e94e 19 | .+==.+=~~~=~==~~~~==~~=~==+? |
emh203 0:423d5729e94e 20 | ?===I+====~~=~~~=~~=====~~~=?. |
emh203 0:423d5729e94e 21 | .=~~~+==~==..~~~~~~= ~~~~=7= |
emh203 0:423d5729e94e 22 | +=~~?+~~=. ==~~~~=. ~~~~=?. |
emh203 0:423d5729e94e 23 | =~~~=~~~ ?===~~+. ~~~~+ |
emh203 0:423d5729e94e 24 | +~~:+~~= =~~==. =~~+. |
emh203 0:423d5729e94e 25 | ~:~ =~~= =~~~= ~=== |
emh203 0:423d5729e94e 26 | I=~~ ,=~~= ,. |
emh203 0:423d5729e94e 27 | ~~. ,==== |
emh203 0:423d5729e94e 28 | ==== |
emh203 0:423d5729e94e 29 | =~~. |
emh203 0:423d5729e94e 30 | |
emh203 0:423d5729e94e 31 |------------------------------------------|
emh203 0:423d5729e94e 32 | Internet Of Thing |
emh203 0:423d5729e94e 33 | Eli Hughes |
emh203 0:423d5729e94e 34 | Freescale / Hack-a-day Make-It-Challenge |
emh203 0:423d5729e94e 35 | FTF 2014 - Dallas, Tx |
emh203 0:423d5729e94e 36 |------------------------------------------|
emh203 0:423d5729e94e 37
emh203 0:423d5729e94e 38 */
emh203 0:423d5729e94e 39 #include "stdint.h"
emh203 0:423d5729e94e 40 #include "Queue.h"
emh203 0:423d5729e94e 41 #include <string.h>
emh203 0:423d5729e94e 42
emh203 0:423d5729e94e 43 static char StringBuffer[256];
emh203 0:423d5729e94e 44
emh203 0:423d5729e94e 45 void InitByteQueue(ByteQueue *BQ,uint16_t Size,uint8_t * Storage) {
emh203 0:423d5729e94e 46 uint16_t i;
emh203 0:423d5729e94e 47
emh203 0:423d5729e94e 48 BQ->QueueSize = Size;
emh203 0:423d5729e94e 49 BQ->ReadPtr=0;
emh203 0:423d5729e94e 50 BQ->WritePtr=0;
emh203 0:423d5729e94e 51 BQ->QueueStorage = Storage;
emh203 0:423d5729e94e 52
emh203 0:423d5729e94e 53 for (i=0;i<BQ->QueueSize;i++) {
emh203 0:423d5729e94e 54 BQ->QueueStorage[i] = 0;
emh203 0:423d5729e94e 55 }
emh203 0:423d5729e94e 56 }
emh203 0:423d5729e94e 57
emh203 0:423d5729e94e 58 uint16_t BytesInQueue(ByteQueue *BQ) {
emh203 0:423d5729e94e 59 if (BQ->ReadPtr > BQ->WritePtr) {
emh203 0:423d5729e94e 60 return (BQ->QueueSize - BQ->ReadPtr + BQ->WritePtr);
emh203 0:423d5729e94e 61 } else if (BQ->WritePtr > BQ->ReadPtr) {
emh203 0:423d5729e94e 62 return (BQ->WritePtr - BQ->ReadPtr);
emh203 0:423d5729e94e 63 } else {
emh203 0:423d5729e94e 64 return 0;
emh203 0:423d5729e94e 65 }
emh203 0:423d5729e94e 66 }
emh203 0:423d5729e94e 67
emh203 0:423d5729e94e 68 int16_t ByteEnqueue(ByteQueue *BQ,uint8_t Val) {
emh203 0:423d5729e94e 69 if (BytesInQueue(BQ) == BQ->QueueSize - 1) {
emh203 0:423d5729e94e 70 return QUEUE_FULL;
emh203 0:423d5729e94e 71 } else {
emh203 0:423d5729e94e 72 BQ->QueueStorage[BQ->WritePtr] = Val;
emh203 0:423d5729e94e 73 BQ->WritePtr++;
emh203 0:423d5729e94e 74
emh203 0:423d5729e94e 75 if (BQ->WritePtr >= BQ->QueueSize) {
emh203 0:423d5729e94e 76 BQ->WritePtr = 0;
emh203 0:423d5729e94e 77 }
emh203 0:423d5729e94e 78 return QUEUE_OK;
emh203 0:423d5729e94e 79 }
emh203 0:423d5729e94e 80 }
emh203 0:423d5729e94e 81
emh203 0:423d5729e94e 82 int16_t ByteArrayEnqueue(ByteQueue *BQ,uint8_t *Buf,uint16_t Len) {
emh203 0:423d5729e94e 83 uint16_t i;
emh203 0:423d5729e94e 84 for (i=0;i<Len;i++) {
emh203 0:423d5729e94e 85 ByteEnqueue(BQ,Buf[i]);
emh203 0:423d5729e94e 86 }
emh203 0:423d5729e94e 87 return QUEUE_OK;
emh203 0:423d5729e94e 88 }
emh203 0:423d5729e94e 89
emh203 0:423d5729e94e 90
emh203 0:423d5729e94e 91 int16_t Qprintf(ByteQueue *BQ, const char *FormatString,...)
emh203 0:423d5729e94e 92 {
emh203 0:423d5729e94e 93
emh203 0:423d5729e94e 94 va_list argptr;
emh203 0:423d5729e94e 95 va_start(argptr,FormatString);
emh203 0:423d5729e94e 96 vsprintf((char *)StringBuffer,FormatString,argptr);
emh203 0:423d5729e94e 97 va_end(argptr);
emh203 0:423d5729e94e 98
emh203 0:423d5729e94e 99 return ByteArrayEnqueue(BQ,(uint8_t *)StringBuffer,strlen(StringBuffer));
emh203 0:423d5729e94e 100 }
emh203 0:423d5729e94e 101
emh203 0:423d5729e94e 102
emh203 0:423d5729e94e 103 int16_t ByteDequeue(ByteQueue *BQ,uint8_t *Val) {
emh203 0:423d5729e94e 104
emh203 0:423d5729e94e 105 if (BytesInQueue(BQ) == 0) {
emh203 0:423d5729e94e 106 return QUEUE_EMPTY;
emh203 0:423d5729e94e 107 } else {
emh203 0:423d5729e94e 108 *Val = BQ->QueueStorage[BQ->ReadPtr];
emh203 0:423d5729e94e 109
emh203 0:423d5729e94e 110 BQ->ReadPtr++;
emh203 0:423d5729e94e 111
emh203 0:423d5729e94e 112 if (BQ->ReadPtr >= BQ->QueueSize) {
emh203 0:423d5729e94e 113 BQ->ReadPtr = 0;
emh203 0:423d5729e94e 114 }
emh203 0:423d5729e94e 115 return QUEUE_OK;
emh203 0:423d5729e94e 116 }
emh203 0:423d5729e94e 117 }
emh203 0:423d5729e94e 118
emh203 0:423d5729e94e 119 uint8_t ForcedByteDequeue(ByteQueue *BQ)
emh203 0:423d5729e94e 120 {
emh203 0:423d5729e94e 121 uint8_t RetVal;
emh203 0:423d5729e94e 122
emh203 0:423d5729e94e 123 if (BytesInQueue(BQ) == 0) {
emh203 0:423d5729e94e 124 return 0;
emh203 0:423d5729e94e 125 } else {
emh203 0:423d5729e94e 126 RetVal = BQ->QueueStorage[BQ->ReadPtr];
emh203 0:423d5729e94e 127
emh203 0:423d5729e94e 128 BQ->ReadPtr++;
emh203 0:423d5729e94e 129
emh203 0:423d5729e94e 130 if (BQ->ReadPtr >= BQ->QueueSize) {
emh203 0:423d5729e94e 131 BQ->ReadPtr = 0;
emh203 0:423d5729e94e 132 }
emh203 0:423d5729e94e 133 return RetVal;
emh203 0:423d5729e94e 134 }
emh203 0:423d5729e94e 135 }