/** * Checks for incoming serial data which will be send by radio. This function * also checks the buffers length to avoid a stackoverflow at the radio FIFO. */ inline void checkTxBuffer(void) { uint8_t i; if(UART0_available() > 0) { for(i=0; i<serialBuffer_write; i++) { if(serialBuffer[i] == '\r' || serialBuffer[i] == '\n' || strlen(data_out_temp) >= 32) { // Transmit data from buffer #ifdef DEBUG if(strlen(data_out_temp) >= MAX_TX_CHARS) printf("max. buffer exceeded\r\n"); #endif // Transmit data incrementPacketCount(); uint8_t n; data_temp[0] = '\0'; n = sprintf(data_temp, "%d%c%s[%s]", NUM_REPEATS, data_count, data_out_temp, NODE_ID); transmitData(n); data_out_temp[0] = '\0'; // Flush buffer } else { sprintf(data_out_temp, "%s%c", data_out_temp, serialBuffer[i]); // Read from serial buffer } } serialBuffer_write = 0; } }
void gps_get_data(){ uint8_t i; mrtDelay(1000); if(UART0_available() > 0){ for(i=0; i<serialBuffer_write; i++){ gps_buf[i] = serialBuffer[i]; } } serialBuffer_write = 0; }