Android Open Source - airprobe Extended Lat Lng






From Project

Back to project page airprobe.

License

The source code is released under:

GNU General Public License

If you think the Android project airprobe listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * AirProbe/*from ww  w .  j a va2s . com*/
 * Air quality application for Android, developed as part of 
 * EveryAware project (<http://www.everyaware.eu>).
 *
 * Copyright (C) 2014 CSP Innovazione nelle ICT. All rights reserved.
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 * For any inquiry please write to <devel@csp.it>
 * 
 * CONTRIBUTORS
 * 
 * This program was made with the contribution of:
 *   Fabio Saracino <fabio.saracino@csp.it>
 *   Patrick Facco <patrick.facco@csp.it>
 * 
 * 
 * SOURCE CODE
 * 
 *  The source code of this program is available at
 *  <https://github.com/CSPICT/airprobe>
 */

package org.csp.everyaware;

import com.google.android.gms.maps.model.LatLng;

import android.util.Log;

public class ExtendedLatLng
{
  public double mRecordId;
  public long mSysTimestamp;
  public double[] mValues = new double[12];
  public double mAvgValue = 0;
  public LatLng mLatLng;
  public double mBc;
  public String mUserAnn;
  
  public ExtendedLatLng(double recordId, double lat, double lon, long sysTimestamp, double[] values, double bc, String userAnn) 
  {
    mRecordId = recordId;
    mSysTimestamp = sysTimestamp;      
    mValues = values;
    mAvgValue = calcAvgPoll();
    mLatLng = new LatLng(lat, lon);
    mBc = bc;
    mUserAnn = userAnn;
    
    if(!userAnn.equals(""))
      Log.d("ExtendedLatLng", "annotation: "+userAnn);
  }
  
  //calcola la media complessiva come media delle 4 medie sugli inquinanti e la normalizza
  public double calcAvgPoll()
  {/*
    double co_avg = 0;
    double no2_avg = 0;
    double voc_avg = 0;
    double o3_avg = 0;
    */
    double avg = 0;
    
    //calcolo la media sui 4 sensori di co e la sommo all'accumulatore
    //co_avg = (mValues[2] + mValues[3] + mValues[4] + mValues[5]) / 4;
    
    //calcolo la media sui 2 sensori di no2 e la sommo all'accumulatore
    //no2_avg = (mValues[6] + mValues[7]) / 2;
    
    //voc_avg = mValues[8];
    //o3_avg = mValues[9];  
    
    //Log.d("Record", mValues[2]+","+mValues[3]+","+mValues[4]+","+mValues[5]+","+mValues[6]+","+mValues[7]+","+mValues[8]+","+mValues[9]);
    avg = (mValues[2] + mValues[3] + mValues[4] + mValues[5] + mValues[6] + mValues[7] + mValues[8] + mValues[9]) /8; 
    
    //Log.d("EGP", "avg: " +avg);
    return avg;
    //return normalizeValue(avg);
  }
  
  //normalizza un valore. Usa la formula : differenza fra il valore e il minimo della serie,
  //fratto differenza fra il massimo e il minimo della serie
  
  //se il valore in input supera il massimo deciso per la serie, la frazione assume un valore
  //maggiore di 1. Se il valore in input ? inferiore al minimo deciso per la serie, la frazione
  //diventa negativa
  public static double normalizeValue(double avg)
  {
    double min = 2;
    double max = 5;
    double norm_avg = 0;
  
    norm_avg = (avg - min)/(max - min);
    
    if(norm_avg > 1)
      norm_avg = 1;
    else if(norm_avg < 0)
      norm_avg = 0;
    
    return norm_avg;
  }
}




Java Source Code List

android.UnusedStub.java
org.csp.everyaware.ColorHelper.java
org.csp.everyaware.Constants.java
org.csp.everyaware.Credits.java
org.csp.everyaware.ExtendedLatLng.java
org.csp.everyaware.Installation.java
org.csp.everyaware.KmlParser.java
org.csp.everyaware.ManageAccount.java
org.csp.everyaware.Options.java
org.csp.everyaware.Start.java
org.csp.everyaware.Utils.java
org.csp.everyaware.bluetooth.BluetoothBroadcastReceiver.java
org.csp.everyaware.bluetooth.BluetoothHistoryManager.java
org.csp.everyaware.bluetooth.BluetoothManager.java
org.csp.everyaware.bluetooth.BluetoothObject.java
org.csp.everyaware.db.AnnotatedRecord.java
org.csp.everyaware.db.DbManager.java
org.csp.everyaware.db.MapCluster.java
org.csp.everyaware.db.MarkerRecord.java
org.csp.everyaware.db.Record.java
org.csp.everyaware.db.SemanticSessionDetails.java
org.csp.everyaware.db.Track.java
org.csp.everyaware.facebooksdk.AsyncFacebookRunner.java
org.csp.everyaware.facebooksdk.DialogError.java
org.csp.everyaware.facebooksdk.FacebookError.java
org.csp.everyaware.facebooksdk.Facebook.java
org.csp.everyaware.facebooksdk.FbDialog.java
org.csp.everyaware.facebooksdk.Util.java
org.csp.everyaware.fragments.FragmentWizardStep0.java
org.csp.everyaware.fragments.FragmentWizardStep1.java
org.csp.everyaware.fragments.FragmentWizardStep2.java
org.csp.everyaware.gps.GpsTrackingService.java
org.csp.everyaware.internet.FacebookManager.java
org.csp.everyaware.internet.StoreAndForwardService.java
org.csp.everyaware.internet.TwitterLogin.java
org.csp.everyaware.internet.TwitterManager.java
org.csp.everyaware.offline.Graph.java
org.csp.everyaware.offline.Map.java
org.csp.everyaware.offline.MyTracks.java
org.csp.everyaware.offline.Tabs.java
org.csp.everyaware.tabactivities.Graph.java
org.csp.everyaware.tabactivities.Map.java
org.csp.everyaware.tabactivities.Monitor.java
org.csp.everyaware.tabactivities.Tabs.java