/** * Constructor * * @param cli SensorClient instance which the collector shall use to acquire data. * @param sensorServerAvailable If true, data is collected from given SensorClient (where * possible). Otherwise, all data is taken from openweathermap.org. */ public DataCollector(SensorClientMkII cli, boolean sensorServerAvailable) { this.client = cli; this.sensorServerAvailable = sensorServerAvailable; if (cli == null) { sensorServerAddress = "deffi.thecuslink.com"; } else { sensorServerAddress = cli.getSensorServerAddress(); } receiver = new Receiver() { @Override public void receivedTemperature(double temperature) { curSensTemp = temperature; } @Override public void receivedPressure(double pressure) { curSensPres = pressure; } @Override public void receivedAltitude(double altitude) {} @Override public void receivedSealevelPressure(double sealevelpressure) {} @Override public void receivedHumidity(double humidity) { curSensHumi = humidity; } @Override public void receivedLight(double light) { curSensLumi = light; } @Override public void receivedWindSpeed(double windspeed) { curSensWind = windspeed; } @Override public void receivedAllData(JSONObject json) { curSensData = json; } @Override public void receivedpong() {} @Override public void connectionReset() { System.out.println("SensorClient unreachable."); if (!reconnectorRunning) { SCReconnector reconnector = new SCReconnector(this); reconnector.start(); } } }; if (client == null) { System.out.println("SensorClient unreachable."); if (!reconnectorRunning) { SCReconnector reconnector = new SCReconnector(receiver); reconnector.start(); } } else { client.init(receiver); } }