package com.ezio.multiwii.gps; import java.util.Random; import android.app.Service; import android.content.Intent; import android.os.Handler; import android.os.IBinder; import android.util.Log; import com.ezio.multiwii.app.App; public class MOCK_GPS_Service extends Service { private boolean killme = false; Random random = new Random(); // for test App app; Handler mHandler = new Handler(); private Runnable update = new Runnable() { @Override public void run() { Log.d("aaaService", "Service running..."); if (app.D) { app.mw.GPS_latitude += random.nextInt(200) - 50;// for // simulation app.mw.GPS_longitude += random.nextInt(100) - 50;// for // simulation app.mw.GPS_fix = 1; // app.mw.alt++; app.mw.head++; } app.mw.ProcessSerialData(app.loggingON); app.frskyProtocol.ProcessSerialData(false); app.sensors.setMOCKLocation(app.mw.GPS_latitude / Math.pow(10, 7), app.mw.GPS_longitude / Math.pow(10, 7), app.mw.alt, app.mw.head, app.mw.GPS_speed); app.Frequentjobs(); // app.mw.SendRequest(); // app.mw.SendRequestMSP_RAW_GPS(); app.mw.SendRequest(app.MainRequestMethod); if (!killme) { mHandler.postDelayed(update, 1000); } else { app.sensors.ClearMOCKLocation(); } } }; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { super.onCreate(); app = (App) getApplication(); if (app.sensors.isMockEnabled()) { app.sensors.initMOCKLocation(); mHandler.postDelayed(update, app.RefreshRate); } else { stopSelf(); } } @Override public void onDestroy() { // TODO Auto-generated method stub mHandler.removeCallbacks(null); killme = true; super.onDestroy(); } }