void APP_Tasks ( void )
{

    /* Check the application's current state. */
    switch ( appData.state )
    {
        /* Application's initial state. */
        case APP_STATE_INIT:
        {
            bool appInitialized = true;
//      

            if (appInitialized)
            {

//                appData.state = APP_STATE_SERVICE_TASKS;
                appData.state = APP_STATE_RX;   // change state to USART receive
            }
            break;
        }

//        case APP_STATE_SERVICE_TASKS:
//        {
//        
//            break;
//        }

        /* TODO: implement your application state machine.*/
        case APP_STATE_RX:                              // USART receive state
        {   
            // if byte received in USART instance 0 (USART1 in this case)
            if (!DRV_USART0_ReceiverBufferIsEmpty())
            {
               appData.rx_byte = DRV_USART0_ReadByte(); // read received byte
               appData.tx_byte = appData.rx_byte + 1;   // modifying received byte confirms it was received
               appData.state = APP_STATE_TX;            // change state to TX
            }
            break;
        }

        case APP_STATE_TX:                              // USART transmit state
        {
            // make sure the transmit buffer is not full before trying to write byte 
            if(!(DRV_USART_TRANSFER_STATUS_TRANSMIT_FULL & DRV_USART0_TransferStatus()) )
            {
                DRV_USART0_WriteByte(appData.tx_byte);  // send modified byte
                appData.state = APP_STATE_RX;           // change state to RX and wait for next received byte
            }
        }                

        /* The default state should never be executed. */
        default:
        {
            /* TODO: Handle error in application's state machine. */
            break;
        }
    }
}