Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@2:9ab591cf81b8, 2016-12-13 (annotated)
- Committer:
- Stephen_NewVistas
- Date:
- Tue Dec 13 00:20:29 2016 +0000
- Revision:
- 2:9ab591cf81b8
- Parent:
- 1:d6b18299a715
everything commented . now going to strip out mbed stuff.
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| Stephen_NewVistas | 0:226550611f0d | 1 | //#define TEST | 
| Stephen_NewVistas | 0:226550611f0d | 2 | #define DEBUG | 
| Stephen_NewVistas | 0:226550611f0d | 3 | |
| Stephen_NewVistas | 0:226550611f0d | 4 | #include "mbed.h" | 
| Stephen_NewVistas | 0:226550611f0d | 5 | #include "rtos.h" | 
| Stephen_NewVistas | 0:226550611f0d | 6 | #include "comms.h" | 
| Stephen_NewVistas | 0:226550611f0d | 7 | #include "rs485.h" | 
| Stephen_NewVistas | 0:226550611f0d | 8 | #include "uart1.h" | 
| Stephen_NewVistas | 1:d6b18299a715 | 9 | #include "BTpacket.h" | 
| Stephen_NewVistas | 0:226550611f0d | 10 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 11 | extern const unsigned char DEVADDRESS = 0xF0; | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 12 | #define NORDIC_ADDRESS DEVADDRESS | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 13 | #define BTMODULE_A_ADDRESS 0x20 // #CC not sure if this has been defined by CEPD | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 14 | #define BTMODULE_B_ADDRESS 0x22 // #CC not sure if this has been defined by CEPD | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 15 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 16 | enum Commands { FX1 = 0x10 , FX1_ACK = 0x90 , // #CC list the commands needed for the NORDIC Module | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 17 | FX2 = 0x12 , FX2_ACK = 0x92 | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 18 | }; | 
| Stephen_NewVistas | 0:226550611f0d | 19 | |
| Stephen_NewVistas | 0:226550611f0d | 20 | /*=========================================== | 
| Stephen_NewVistas | 0:226550611f0d | 21 | * These functions need to be completed | 
| Stephen_NewVistas | 0:226550611f0d | 22 | * | 
| Stephen_NewVistas | 0:226550611f0d | 23 | */ | 
| Stephen_NewVistas | 0:226550611f0d | 24 | int Bluetooth_ReceivePacket( Packet * ); | 
| Stephen_NewVistas | 0:226550611f0d | 25 | int Bluetooth_SendChar( unsigned char ); | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 26 | int Bluetooth_SerialHandler( void ); | 
| Stephen_NewVistas | 0:226550611f0d | 27 | /*==========================================*/ | 
| Stephen_NewVistas | 0:226550611f0d | 28 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 29 | void Fx1( unsigned char * ); | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 30 | void Fx2( unsigned char * ); | 
| Stephen_NewVistas | 0:226550611f0d | 31 | |
| Stephen_NewVistas | 0:226550611f0d | 32 | |
| Stephen_NewVistas | 0:226550611f0d | 33 | /*=========================================== | 
| Stephen_NewVistas | 0:226550611f0d | 34 | * | 
| Stephen_NewVistas | 0:226550611f0d | 35 | * | 
| Stephen_NewVistas | 0:226550611f0d | 36 | */ | 
| Stephen_NewVistas | 0:226550611f0d | 37 | void receivedSerialData( void ){ | 
| Stephen_NewVistas | 0:226550611f0d | 38 | while( uart1_is_char() ){ | 
| Stephen_NewVistas | 0:226550611f0d | 39 | SerialHandler( uart1_get_char() ); | 
| Stephen_NewVistas | 0:226550611f0d | 40 | } | 
| Stephen_NewVistas | 0:226550611f0d | 41 | } | 
| Stephen_NewVistas | 0:226550611f0d | 42 | |
| Stephen_NewVistas | 0:226550611f0d | 43 | void bus_thread(void const *argument){ | 
| Stephen_NewVistas | 0:226550611f0d | 44 | while (true){ | 
| Stephen_NewVistas | 0:226550611f0d | 45 | receivedSerialData(); | 
| Stephen_NewVistas | 0:226550611f0d | 46 | wait_ms( 100 ); | 
| Stephen_NewVistas | 0:226550611f0d | 47 | } | 
| Stephen_NewVistas | 0:226550611f0d | 48 | } | 
| Stephen_NewVistas | 0:226550611f0d | 49 | |
| Stephen_NewVistas | 0:226550611f0d | 50 | void Test( void ); | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 51 | void PrintPacket( Packet *_packet ); | 
| Stephen_NewVistas | 0:226550611f0d | 52 | /*==========================================*/ | 
| Stephen_NewVistas | 0:226550611f0d | 53 | |
| Stephen_NewVistas | 0:226550611f0d | 54 | int main() { | 
| Stephen_NewVistas | 0:226550611f0d | 55 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 56 | RegisterCommand( FX1 , &Fx1 ); | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 57 | RegisterCommand( FX2 , &Fx2 ); | 
| Stephen_NewVistas | 0:226550611f0d | 58 | |
| Stephen_NewVistas | 0:226550611f0d | 59 | initComms(); | 
| Stephen_NewVistas | 0:226550611f0d | 60 | pc.printf( "\n\rStarted...\n\r" ); | 
| Stephen_NewVistas | 0:226550611f0d | 61 | init_uart1(); | 
| Stephen_NewVistas | 0:226550611f0d | 62 | |
| Stephen_NewVistas | 0:226550611f0d | 63 | Thread bus( bus_thread , NULL , osPriorityRealtime , DEFAULT_STACK_SIZE ); | 
| Stephen_NewVistas | 0:226550611f0d | 64 | |
| Stephen_NewVistas | 0:226550611f0d | 65 | while( true ){ }; | 
| Stephen_NewVistas | 0:226550611f0d | 66 | |
| Stephen_NewVistas | 0:226550611f0d | 67 | #ifdef TEST | 
| Stephen_NewVistas | 0:226550611f0d | 68 | Test(); | 
| Stephen_NewVistas | 0:226550611f0d | 69 | #endif // DEBUG | 
| Stephen_NewVistas | 0:226550611f0d | 70 | |
| Stephen_NewVistas | 0:226550611f0d | 71 | |
| Stephen_NewVistas | 0:226550611f0d | 72 | } | 
| Stephen_NewVistas | 0:226550611f0d | 73 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 74 | //================ Custom Functions ============================================= | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 75 | /* These functions local functions to the Nordic chip that are exposed to the | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 76 | * system. They must follow this prototype (same return values and parameter) | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 77 | * and must be registered with a command using RegisterCommand() from RS485 | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 78 | * library. | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 79 | */ | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 80 | void Fx1( unsigned char *_receivedData ){ | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 81 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 82 | pc.printf( "In FX1!\n\r" ); | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 83 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 84 | Packet packet; | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 85 | packet.sourceID = 0xF0; | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 86 | packet.deviceID = 0xFE; | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 87 | packet.command = 0x90; | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 88 | packet.packetData[0] = 0x22; | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 89 | packet.packetLength = 0x01; | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 90 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 91 | SetResponsePacket( &packet ); | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 92 | } | 
| Stephen_NewVistas | 0:226550611f0d | 93 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 94 | void Fx2( unsigned char *_receivedData ){ | 
| Stephen_NewVistas | 0:226550611f0d | 95 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 96 | pc.printf( "In FX2!\n\r" ); | 
| Stephen_NewVistas | 0:226550611f0d | 97 | |
| Stephen_NewVistas | 0:226550611f0d | 98 | Packet packet; | 
| Stephen_NewVistas | 0:226550611f0d | 99 | packet.sourceID = 0xF0; | 
| Stephen_NewVistas | 0:226550611f0d | 100 | packet.deviceID = 0xFE; | 
| Stephen_NewVistas | 0:226550611f0d | 101 | packet.command = 0x90; | 
| Stephen_NewVistas | 0:226550611f0d | 102 | packet.packetData[0] = 0x22; | 
| Stephen_NewVistas | 0:226550611f0d | 103 | packet.packetLength = 0x01; | 
| Stephen_NewVistas | 0:226550611f0d | 104 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 105 | SetResponsePacket( &packet ); | 
| Stephen_NewVistas | 0:226550611f0d | 106 | } | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 107 | //================ End Custom Functions ========================================= | 
| Stephen_NewVistas | 0:226550611f0d | 108 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 109 | //#CC This needs to handle the uart port and pass received bytes on | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 110 | /****************************************************************************** | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 111 | * Bluetooth_SerialHandler | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 112 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 113 | * The UART port needs to be handled and when a byte is received it is passed on | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 114 | * to SerialHandler() form the rs485 library. | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 115 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 116 | * PreCondition: None | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 117 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 118 | * Input: '_packet' - packet received from the bus. | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 119 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 120 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 121 | * Output: None | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 122 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 123 | * Side Effects: None | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 124 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 125 | *****************************************************************************/ | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 126 | int Bluetooth_SerialHandler( void ){ | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 127 | // if( ByteAvailableOnSerial ){ | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 128 | // SerialHandler( GetByte() ); | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 129 | // } | 
| Stephen_NewVistas | 0:226550611f0d | 130 | return 0; | 
| Stephen_NewVistas | 0:226550611f0d | 131 | } | 
| Stephen_NewVistas | 0:226550611f0d | 132 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 133 | //#CC This needs to be modified as commented below | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 134 | /****************************************************************************** | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 135 | * Bluetooth_ReceivePacket | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 136 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 137 | * This gets automatically called by the bus library when a complete packet is | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 138 | * received. It checks the address the packet is going to and redirects the | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 139 | * message appropriately (ie: if message is for the Nordic chip it calls a | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 140 | * function or it sends it off to a BT device). | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 141 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 142 | * PreCondition: None | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 143 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 144 | * Input: '_packet' - packet received from the bus. | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 145 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 146 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 147 | * Output: None | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 148 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 149 | * Side Effects: None | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 150 | * | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 151 | *****************************************************************************/ | 
| Stephen_NewVistas | 0:226550611f0d | 152 | int Bluetooth_ReceivePacket( Packet *_packet ){ | 
| Stephen_NewVistas | 0:226550611f0d | 153 | |
| Stephen_NewVistas | 1:d6b18299a715 | 154 | #ifdef DEBUG | 
| Stephen_NewVistas | 1:d6b18299a715 | 155 | PrintPacket( _packet ); | 
| Stephen_NewVistas | 1:d6b18299a715 | 156 | #endif // DEBUG | 
| Stephen_NewVistas | 1:d6b18299a715 | 157 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 158 | switch ( _packet->command ){ // makes decision based off where packet is addressed to go | 
| Stephen_NewVistas | 1:d6b18299a715 | 159 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 160 | case NORDIC_ADDRESS: // if the message is for the Nordic chip... | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 161 | if( !CheckFunction( _packet ) ){ // this will call the appropriate function if one is registered | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 162 | //#CC // code goes here if the function is not registered | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 163 | } | 
| Stephen_NewVistas | 1:d6b18299a715 | 164 | break; | 
| Stephen_NewVistas | 0:226550611f0d | 165 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 166 | case BTMODULE_A_ADDRESS: // if message is for Bluetooth Module A | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 167 | //#CC | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 168 | /* | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 169 | Need to bring in packet and modify to send out over BT | 
| Stephen_NewVistas | 2:9ab591cf81b8 | 170 | */ | 
| Stephen_NewVistas | 1:d6b18299a715 | 171 | break; | 
| Stephen_NewVistas | 1:d6b18299a715 | 172 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 173 | case BTMODULE_B_ADDRESS: | 
| Stephen_NewVistas | 1:d6b18299a715 | 174 | |
| Stephen_NewVistas | 1:d6b18299a715 | 175 | break; | 
| Stephen_NewVistas | 1:d6b18299a715 | 176 | |
| Stephen_NewVistas | 1:d6b18299a715 | 177 | default: | 
| Stephen_NewVistas | 1:d6b18299a715 | 178 | break; | 
| Stephen_NewVistas | 1:d6b18299a715 | 179 | |
| Stephen_NewVistas | 2:9ab591cf81b8 | 180 | } | 
| Stephen_NewVistas | 0:226550611f0d | 181 | |
| Stephen_NewVistas | 0:226550611f0d | 182 | return 0; | 
| Stephen_NewVistas | 0:226550611f0d | 183 | } | 
| Stephen_NewVistas | 0:226550611f0d | 184 | |
| Stephen_NewVistas | 0:226550611f0d | 185 | int Bluetooth_SendChar( unsigned char _c ){ | 
| Stephen_NewVistas | 0:226550611f0d | 186 | bus.putc( _c ); | 
| Stephen_NewVistas | 0:226550611f0d | 187 | return 0; | 
| Stephen_NewVistas | 0:226550611f0d | 188 | } | 
| Stephen_NewVistas | 0:226550611f0d | 189 | |
| Stephen_NewVistas | 1:d6b18299a715 | 190 | void PrintPacket( Packet *_packet ){ | 
| Stephen_NewVistas | 1:d6b18299a715 | 191 | pc.printf( "Process Packet\n\r" ); | 
| Stephen_NewVistas | 1:d6b18299a715 | 192 | |
| Stephen_NewVistas | 1:d6b18299a715 | 193 | pc.printf( "\t%x - Device ID\n\r" , _packet->deviceID ); | 
| Stephen_NewVistas | 1:d6b18299a715 | 194 | pc.printf( "\t%x - Source ID\n\r" , _packet->sourceID ); | 
| Stephen_NewVistas | 1:d6b18299a715 | 195 | pc.printf( "\t%x - Command\n\r" , _packet->command ); | 
| Stephen_NewVistas | 1:d6b18299a715 | 196 | pc.printf( "\t%x - Length\n\r" , _packet->packetLength ); | 
| Stephen_NewVistas | 1:d6b18299a715 | 197 | unsigned char *ptr = (unsigned char *)&_packet->packetData; | 
| Stephen_NewVistas | 1:d6b18299a715 | 198 | for( int i = 0 ; i < _packet->packetLength ; i++ ){ | 
| Stephen_NewVistas | 1:d6b18299a715 | 199 | pc.printf( "\t%x - Data[%d]\n\r" , *ptr++ , i ); | 
| Stephen_NewVistas | 1:d6b18299a715 | 200 | } | 
| Stephen_NewVistas | 1:d6b18299a715 | 201 | } | 
| Stephen_NewVistas | 1:d6b18299a715 | 202 | |
| Stephen_NewVistas | 0:226550611f0d | 203 | void Test( void ){ | 
| Stephen_NewVistas | 0:226550611f0d | 204 | |
| Stephen_NewVistas | 0:226550611f0d | 205 | Packet commandPacket; | 
| Stephen_NewVistas | 0:226550611f0d | 206 | commandPacket.sourceID = 0xFE; | 
| Stephen_NewVistas | 0:226550611f0d | 207 | commandPacket.deviceID = 0xF0; | 
| Stephen_NewVistas | 0:226550611f0d | 208 | commandPacket.command = 0x10; | 
| Stephen_NewVistas | 0:226550611f0d | 209 | commandPacket.packetLength = 0x04; | 
| Stephen_NewVistas | 0:226550611f0d | 210 | commandPacket.packetData[0] = 0x8E; | 
| Stephen_NewVistas | 0:226550611f0d | 211 | commandPacket.packetData[1] = 0x7F; | 
| Stephen_NewVistas | 0:226550611f0d | 212 | commandPacket.packetData[2] = 0x8F; | 
| Stephen_NewVistas | 0:226550611f0d | 213 | commandPacket.packetData[3] = 0xB0; | 
| Stephen_NewVistas | 0:226550611f0d | 214 | |
| Stephen_NewVistas | 0:226550611f0d | 215 | unsigned char buf1[1024]; | 
| Stephen_NewVistas | 0:226550611f0d | 216 | unsigned char buf2[1024]; | 
| Stephen_NewVistas | 0:226550611f0d | 217 | unsigned char *ptr = buf1; | 
| Stephen_NewVistas | 0:226550611f0d | 218 | |
| Stephen_NewVistas | 0:226550611f0d | 219 | // buf for commandPacket | 
| Stephen_NewVistas | 0:226550611f0d | 220 | int size1 = getFormattedPacket( &commandPacket , buf1 ); | 
| Stephen_NewVistas | 0:226550611f0d | 221 | int size2; | 
| Stephen_NewVistas | 0:226550611f0d | 222 | |
| Stephen_NewVistas | 0:226550611f0d | 223 | // buf for POLL | 
| Stephen_NewVistas | 0:226550611f0d | 224 | buf1[0] = 0x8F; | 
| Stephen_NewVistas | 0:226550611f0d | 225 | buf1[1] = 0xF0; | 
| Stephen_NewVistas | 0:226550611f0d | 226 | size1 = 2; | 
| Stephen_NewVistas | 0:226550611f0d | 227 | |
| Stephen_NewVistas | 0:226550611f0d | 228 | buf2[0] = 0x8D; | 
| Stephen_NewVistas | 0:226550611f0d | 229 | size2 = 1; | 
| Stephen_NewVistas | 0:226550611f0d | 230 | |
| Stephen_NewVistas | 0:226550611f0d | 231 | pc.printf( "size: %i\t" , size1 ); | 
| Stephen_NewVistas | 0:226550611f0d | 232 | |
| Stephen_NewVistas | 0:226550611f0d | 233 | pc.printf( "buf: " ); | 
| Stephen_NewVistas | 0:226550611f0d | 234 | for( int i = 0 ; i < size1 ; i++ ){ | 
| Stephen_NewVistas | 0:226550611f0d | 235 | pc.printf( "%x " , *(ptr++) ); | 
| Stephen_NewVistas | 0:226550611f0d | 236 | } | 
| Stephen_NewVistas | 0:226550611f0d | 237 | pc.printf( " \n\r" ); | 
| Stephen_NewVistas | 0:226550611f0d | 238 | |
| Stephen_NewVistas | 0:226550611f0d | 239 | while(1) { | 
| Stephen_NewVistas | 0:226550611f0d | 240 | // poll with no message | 
| Stephen_NewVistas | 0:226550611f0d | 241 | ptr = buf1; | 
| Stephen_NewVistas | 0:226550611f0d | 242 | for( int i = 0 ; i < size1 ; i++ ){ | 
| Stephen_NewVistas | 0:226550611f0d | 243 | SerialHandler( *(ptr++) ); | 
| Stephen_NewVistas | 0:226550611f0d | 244 | wait( 1 ); | 
| Stephen_NewVistas | 0:226550611f0d | 245 | } | 
| Stephen_NewVistas | 0:226550611f0d | 246 | |
| Stephen_NewVistas | 0:226550611f0d | 247 | // create message | 
| Stephen_NewVistas | 1:d6b18299a715 | 248 | Bluetooth_SendChar( 0xF0 ); | 
| Stephen_NewVistas | 1:d6b18299a715 | 249 | Bluetooth_SendChar( 0x01 ); | 
| Stephen_NewVistas | 1:d6b18299a715 | 250 | Bluetooth_SendChar( 0x10 ); | 
| Stephen_NewVistas | 0:226550611f0d | 251 | |
| Stephen_NewVistas | 0:226550611f0d | 252 | // poll with message | 
| Stephen_NewVistas | 0:226550611f0d | 253 | ptr = buf1; | 
| Stephen_NewVistas | 0:226550611f0d | 254 | for( int i = 0 ; i < size1 ; i++ ){ | 
| Stephen_NewVistas | 0:226550611f0d | 255 | SerialHandler( *(ptr++) ); | 
| Stephen_NewVistas | 0:226550611f0d | 256 | wait( 1 ); | 
| Stephen_NewVistas | 0:226550611f0d | 257 | } | 
| Stephen_NewVistas | 0:226550611f0d | 258 | |
| Stephen_NewVistas | 0:226550611f0d | 259 | // send ACK | 
| Stephen_NewVistas | 0:226550611f0d | 260 | ptr = buf2; | 
| Stephen_NewVistas | 0:226550611f0d | 261 | for( int i = 0 ; i < size2 ; i++ ){ | 
| Stephen_NewVistas | 0:226550611f0d | 262 | SerialHandler( *(ptr++) ); | 
| Stephen_NewVistas | 0:226550611f0d | 263 | wait( 1 ); | 
| Stephen_NewVistas | 0:226550611f0d | 264 | } | 
| Stephen_NewVistas | 0:226550611f0d | 265 | } | 
| Stephen_NewVistas | 0:226550611f0d | 266 | } |