Eli Hughes
/
InternetOfThing
2014 Freescale / Hack A Day Make It Challenge FRDM-K64 Internet of "Thing"
Main.cpp@0:423d5729e94e, 2014-04-10 (annotated)
- 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?
User | Revision | Line number | New 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 "mbed.h" |
emh203 | 0:423d5729e94e | 40 | #include "Queue.h" |
emh203 | 0:423d5729e94e | 41 | #include "Terminal.h" |
emh203 | 0:423d5729e94e | 42 | #include "System.h" |
emh203 | 0:423d5729e94e | 43 | |
emh203 | 0:423d5729e94e | 44 | |
emh203 | 0:423d5729e94e | 45 | //Note -- Seems that there is a bug with the new K64 firmware. When I enable 2 serial port objects there seems to be some cross mojination going on. We use a |
emh203 | 0:423d5729e94e | 46 | //macro to select wifi or com port for debug |
emh203 | 0:423d5729e94e | 47 | |
emh203 | 0:423d5729e94e | 48 | #define USE_WIFI |
emh203 | 0:423d5729e94e | 49 | |
emh203 | 0:423d5729e94e | 50 | #define DATA_BUFFER_MAX_SIZE 128 |
emh203 | 0:423d5729e94e | 51 | |
emh203 | 0:423d5729e94e | 52 | DigitalOut SPIN_CCW (PTA2); |
emh203 | 0:423d5729e94e | 53 | DigitalOut SPIN_CW (PTC2); |
emh203 | 0:423d5729e94e | 54 | DigitalOut GO_FORWARD (PTC3); |
emh203 | 0:423d5729e94e | 55 | DigitalOut GO_REVERSE (PTB23); |
emh203 | 0:423d5729e94e | 56 | |
emh203 | 0:423d5729e94e | 57 | #ifdef USE_USB |
emh203 | 0:423d5729e94e | 58 | Serial PC(USBTX, USBRX); // tx, rx |
emh203 | 0:423d5729e94e | 59 | #endif |
emh203 | 0:423d5729e94e | 60 | |
emh203 | 0:423d5729e94e | 61 | #ifdef USE_WIFI |
emh203 | 0:423d5729e94e | 62 | Serial WIFI(PTC17,PTC16); |
emh203 | 0:423d5729e94e | 63 | #endif |
emh203 | 0:423d5729e94e | 64 | |
emh203 | 0:423d5729e94e | 65 | uint8_t DataBuffer[DATA_BUFFER_MAX_SIZE]; |
emh203 | 0:423d5729e94e | 66 | |
emh203 | 0:423d5729e94e | 67 | int main (void) |
emh203 | 0:423d5729e94e | 68 | { |
emh203 | 0:423d5729e94e | 69 | uint32_t i; |
emh203 | 0:423d5729e94e | 70 | uint8_t DataOut; |
emh203 | 0:423d5729e94e | 71 | uint32_t BytesToSend; |
emh203 | 0:423d5729e94e | 72 | |
emh203 | 0:423d5729e94e | 73 | #ifdef USE_WIFI |
emh203 | 0:423d5729e94e | 74 | |
emh203 | 0:423d5729e94e | 75 | WIFI.baud(115200); |
emh203 | 0:423d5729e94e | 76 | |
emh203 | 0:423d5729e94e | 77 | #endif |
emh203 | 0:423d5729e94e | 78 | |
emh203 | 0:423d5729e94e | 79 | #ifdef USE_USB |
emh203 | 0:423d5729e94e | 80 | |
emh203 | 0:423d5729e94e | 81 | PC.baud(115200); |
emh203 | 0:423d5729e94e | 82 | |
emh203 | 0:423d5729e94e | 83 | #endif |
emh203 | 0:423d5729e94e | 84 | |
emh203 | 0:423d5729e94e | 85 | |
emh203 | 0:423d5729e94e | 86 | TFC_InitTerminal(); |
emh203 | 0:423d5729e94e | 87 | |
emh203 | 0:423d5729e94e | 88 | while(1) |
emh203 | 0:423d5729e94e | 89 | { |
emh203 | 0:423d5729e94e | 90 | |
emh203 | 0:423d5729e94e | 91 | //Shuffle Datafrom the terminal Queue to the USB port or TCP Port |
emh203 | 0:423d5729e94e | 92 | //Inefficient but workable |
emh203 | 0:423d5729e94e | 93 | BytesToSend = BytesInQueue(&TERMINAL_OUTPUT_QUEUE); |
emh203 | 0:423d5729e94e | 94 | |
emh203 | 0:423d5729e94e | 95 | if(BytesToSend >0) |
emh203 | 0:423d5729e94e | 96 | { |
emh203 | 0:423d5729e94e | 97 | //Limit to maximum chunk size |
emh203 | 0:423d5729e94e | 98 | |
emh203 | 0:423d5729e94e | 99 | if(BytesToSend > DATA_BUFFER_MAX_SIZE) |
emh203 | 0:423d5729e94e | 100 | BytesToSend = DATA_BUFFER_MAX_SIZE; |
emh203 | 0:423d5729e94e | 101 | |
emh203 | 0:423d5729e94e | 102 | for(i=0 ; i< BytesToSend; i++) |
emh203 | 0:423d5729e94e | 103 | { |
emh203 | 0:423d5729e94e | 104 | ByteDequeue(&TERMINAL_OUTPUT_QUEUE,&DataOut); |
emh203 | 0:423d5729e94e | 105 | |
emh203 | 0:423d5729e94e | 106 | #ifdef USE_USB |
emh203 | 0:423d5729e94e | 107 | PC.putc(DataOut); |
emh203 | 0:423d5729e94e | 108 | #endif |
emh203 | 0:423d5729e94e | 109 | |
emh203 | 0:423d5729e94e | 110 | #ifdef USE_WIFI |
emh203 | 0:423d5729e94e | 111 | WIFI.putc(DataOut); |
emh203 | 0:423d5729e94e | 112 | #endif |
emh203 | 0:423d5729e94e | 113 | } |
emh203 | 0:423d5729e94e | 114 | } |
emh203 | 0:423d5729e94e | 115 | |
emh203 | 0:423d5729e94e | 116 | |
emh203 | 0:423d5729e94e | 117 | |
emh203 | 0:423d5729e94e | 118 | |
emh203 | 0:423d5729e94e | 119 | #ifdef USE_USB |
emh203 | 0:423d5729e94e | 120 | if(PC.readable()) |
emh203 | 0:423d5729e94e | 121 | { |
emh203 | 0:423d5729e94e | 122 | |
emh203 | 0:423d5729e94e | 123 | ByteEnqueue(&TERMINAL_INPUT_QUEUE,PC.getc()); |
emh203 | 0:423d5729e94e | 124 | } |
emh203 | 0:423d5729e94e | 125 | #endif |
emh203 | 0:423d5729e94e | 126 | |
emh203 | 0:423d5729e94e | 127 | #ifdef USE_WIFI |
emh203 | 0:423d5729e94e | 128 | |
emh203 | 0:423d5729e94e | 129 | if(WIFI.readable()) |
emh203 | 0:423d5729e94e | 130 | { |
emh203 | 0:423d5729e94e | 131 | DataOut = WIFI.getc(); |
emh203 | 0:423d5729e94e | 132 | ByteEnqueue(&TERMINAL_INPUT_QUEUE,DataOut); |
emh203 | 0:423d5729e94e | 133 | |
emh203 | 0:423d5729e94e | 134 | } |
emh203 | 0:423d5729e94e | 135 | #endif |
emh203 | 0:423d5729e94e | 136 | |
emh203 | 0:423d5729e94e | 137 | TFC_ProcessTerminal(); |
emh203 | 0:423d5729e94e | 138 | |
emh203 | 0:423d5729e94e | 139 | } |
emh203 | 0:423d5729e94e | 140 | |
emh203 | 0:423d5729e94e | 141 | } |
emh203 | 0:423d5729e94e | 142 | |
emh203 | 0:423d5729e94e | 143 |