import java.lang.reflect.*;
import java.net.URL;
import gw.*;

public class GetLastTemperature
{
    public static double TIMEOUT = 2.0;
    private GWPort proxy;

    GetLastTemperature(String gateway)
    {
        try {
            URL portURL = new URL("http://restsoap:AIIT@" + gateway + "/gw/soap");
            GWServiceLocator locator = new GWServiceLocator();
            proxy = locator.getGWPort(portURL);
        }
        catch (Exception e) {
            e.printStackTrace();
            System.exit(2);
        }
    }

    public void get(String name, String addr)
    {
        GW__eventsReadLast_Result result;
        GW__Event_Result[] results;
        GW__Event value;

        try {
            result = proxy.eventsReadLast(name, addr);
            results = result.getResults();
            for (int i = 0; i < results.length; i++) {
                value = results[i].getValue();
                System.out.println( "Mote " + results[i].getAddr() +
                                    " Time " + results[i].getTimestamp() + 
                                    " " + name + 
                                    " " + value.getTemperatureReadEvent() ); 
            }
        }
        catch (Exception e) {
            e.printStackTrace();
            System.exit(2);
        }
    }

    public static void main(String [] args)
    {
        if (args.length != 1 && args.length != 2) {
            System.out.println("Usage: java GetLastTemperature gateway [mote]");
            System.exit(3);
        }
        String gateway = args[0];
        String attrName;
        String mote;
        if (args.length == 1)
            mote = "ffffffffffffffff";
        else
            mote = args[1];
        GetLastTemperature get = new GetLastTemperature(gateway);

        attrName = "TemperatureReadEvent";
        get.get(attrName, mote);
    }
}