/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vypocetObalky;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 *
 * @author Filip Dvorak
 */
class Ping {

    //vykona ping a ulozi do do posledniho radku ziskane zpozdeni
public static Double ping(String ipAdresa) throws IOException {
    
    //sputi prikaz ping
    ProcessBuilder prikaz = new ProcessBuilder("ping", "-q", "-c", "10", ipAdresa);
    Process vykonejPrikaz = prikaz.start();
    
    BufferedReader zachytavac = new BufferedReader(new InputStreamReader(vykonejPrikaz.getInputStream()));
    String posledniradek = null;
    String radek = null;
    
    while((radek = zachytavac.readLine()) != null)
    {
    posledniradek = radek;
    }
    
    Double minimalniZpozdeni = najdiminimalniZpozdeni(posledniradek);
   //System.out.print("Min zpozdeni je :" + minimalniZpozdeni);
    System.out.println(minimalniZpozdeni);
    Log.zapisDoLogu(minimalniZpozdeni.toString());
    return minimalniZpozdeni;
    }


    //najde minimalni hodnotu z ping (ze vsech trech zmerenych hodnot - max,min apod)
    private static Double najdiminimalniZpozdeni(String posledniradek) {
     
    //pomoci reg. vyarazu se vytahne z posledniho radku minimalni hodnota zpozdeni
        Pattern vzorek = Pattern.compile(".*\\=(.*)/(.*)/(.*)/(.*)\\ ms");
        Matcher srovnavac = vzorek.matcher(posledniradek);
        
        Double minimalniZpozdeni = 0.0;
        
        if (srovnavac.find()){
            String pomocna = srovnavac.group(1);
            minimalniZpozdeni = Double.parseDouble(pomocna);
        }
        return minimalniZpozdeni;
        
        
    }




}
