Exemple #1
0
/**
 * 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;
	}
}
Exemple #2
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;
}