/*
 * cliente.java
 *
 * 
 */

/**
 *
 * @author  Rodrigo Vizcarra
 * Este programa es el enncargado de recopilar los datos desde el microcontrolador para luego compararlos con
 * un archivo txt que contiene los datos de personas y finalmente generar un nuevo txt con los datos y fechas 
 * en que las personas marcan.
 *
 */
import java.io.*;
import java.net.*;
import java.util.*;

    public class cliente{
	     public static void main(String[] args)
        throws Exception
	
  {
  
  
  	 
	 final int RECIBIR_DATOS = 1;
    final int ACK = 2;
	 final int POSICION = 3;
	 int state;
	 int k = 0;
	 int posicion;
    int j = 0;
	 int p = 0;
	 int c = 0;
	 String personas[] = new String[150];
	 String pers_reco[] = new String[150];
	  
    //Conexión
       
    BufferedReader inFromUser =
    new BufferedReader(new InputStreamReader(System.in));

    Socket clientSocket = new Socket("200.1.17.94", 1234);
    System.out.println("coneccion lista" +"   "+ new Date());
	 

    DataOutputStream outToServer =
      new DataOutputStream(clientSocket.getOutputStream());
    BufferedReader inFromServer =
      new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
	       
	 state = ACK;	//estado inicial luego de conexión exitosa
		
		   int i = 0;
			while(i<=1)
		  			{
			switch(state){ 
				case ACK:
					   
						String ack = inFromServer.readLine();	
						state = RECIBIR_DATOS; 
						break;
       
		 		case RECIBIR_DATOS:
						//j = 0;
						String uIPmsg = inFromServer.readLine();
                  System.out.println("uC: " + uIPmsg + "\n");
						j = Integer.parseInt(uIPmsg);
						System.out.println("contador: " + j + "\n");
						state = POSICION;				
						break;
						
				case POSICION:
						
						BufferedReader in = new BufferedReader( 
                  new FileReader("LeerArchivo.txt"));
						
						String s, s2 = new String();
						while ((s = in.readLine()) != null){
						personas[k] = s;
						String salida = s; 
						k++;
						}//fin while
						System.out.print("personas :" + "   " + personas[j-1] + "\n");
						FileWriter salida = new FileWriter("reco.txt");
						pers_reco[p] = personas[j-1];
						System.out.print("pers_reco :" + "   " + pers_reco[p] + "\n");
						p++;
						int y = p;
						for(c = 0; c <= y; c++){
						System.out.println(pers_reco[c]);
						
						if(pers_reco[c] != null)
						salida.write(pers_reco[c] +"\t\t\t"+ new Date() + "\n");
						
						}
						in.close();
						salida.close();
						
						state = RECIBIR_DATOS;
						break;
   
				}
	    }
	 
	  
	  
	  }
 }
