#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "xuartps.h"
#include "xparameters.h"


XUartPs uart;
XUartPs_Config *uart_config;

void uart_init(){
	int status = 0;
	uart_config = XUartPs_LookupConfig(XPAR_PS7_UART_1_DEVICE_ID);
	status = XUartPs_CfgInitialize(&uart, uart_config, uart_config->BaseAddress);
	if(status == XST_SUCCESS)
		xil_printf("UART init Successful\n");
	else
		xil_printf("UART init Failed\n");

}


int main()
{
	u8 data[] = "Hello World";
	u8 datar[11];
	int byteRcvd = 0;
    uart_init();
    XUartPs_SetBaudRate(&uart, 9600);
    XUartPs_SetOperMode(&uart, XUARTPS_OPER_MODE_LOCAL_LOOP);
    /*
    if(byteSend != 11){
    byteSend = XUartPs_Send(&uart, data, 11);
    }
    */

    XUartPs_Send(&uart, data, 11);
    while(XUartPs_IsSending(&uart));

    xil_printf("\nCompleted Sending Data\n");

    while(byteRcvd != 11) {
    byteRcvd = byteRcvd + XUartPs_Recv(&uart, &datar[byteRcvd],11-byteRcvd);
    }


    XUartPs_SetOperMode(&uart, XUARTPS_OPER_MODE_NORMAL);

    for(int i =0; i<11; i++)
    {
    	xil_printf("%c",datar[i]);

    }

    return 0;
}