给Mqtt协议添加蓝牙扫描功能。 扫描到蓝牙,切在区域内的话,就直接上报,否则进行正常定位扫描。
authorsnicker <snickersun@163.com>
Sat, 12 Sep 2020 04:53:08 +0000 (12:53 +0800)
committersnicker <snickersun@163.com>
Sat, 12 Sep 2020 04:53:08 +0000 (12:53 +0800)
app/src/main/AndroidManifest.xml
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/LocationClient.java
app/src/main/java/com/enqualcomm/support/MainActivity.java
app/src/main/java/com/enqualcomm/support/adapter/BTHelper.java [new file with mode: 0644]
app/src/main/java/com/enqualcomm/support/bean/Runtime.java
app/src/main/java/com/ic/protocols/protocol_mqtt.java

index b3da421..549c310 100644 (file)
@@ -41,6 +41,7 @@
     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <!-- 用于申请获取蓝牙信息进行室内定位 -->
     <uses-permission android:name="android.permission.BLUETOOTH" />
     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- 高德定位SDK需要的权限 END -->
+    <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
     <uses-permission android:name="android.permission.INTERNET" />
@@ -64,7 +65,6 @@
     <uses-permission android:name="android.permission.RECORD_AUDIO" />
     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
     <uses-permission android:name="android.permission.VIBRATE" />
-    <uses-permission android:name="android.permission.BLUETOOTH" />
     <uses-permission android:name="android.permission.SEND_SMS" />
     <uses-permission android:name="android.permission.RECEIVE_SMS" />
     <uses-permission android:name="android.permission.READ_SMS" />
index 9339130..b6e26e8 100644 (file)
@@ -573,6 +573,22 @@ public class CoreService extends Service {
 //                    ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
 //                    contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));\r
 //                    runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
+//                }\r
+            }\r
+        }else if (Config.custom_branch_name.equals("SGL")) {\r
+            if (Config.getConfigInitFlag(this)==0) {\r
+                Config.setLocationMode(this, CUSTOM_MOD8_GPS);\r
+                Config.setLocationCycle(this, 1800);\r
+                Config.setPPGTestCycle(this, 0);\r
+                Config.setTemperatureTestCycle(runtime, 0);\r
+                Config.setConfigInitFlag(this, 1);\r
+//                int contactcount=runtime.getDbHelper().getContactCount(getContentResolver());\r
+//                ICLogger.i("=====Contact count "+contactcount);\r
+//                if(contactcount==0){ //如果没有SOS\r
+//                    ICLogger.i("=====add SOS 07522312120 ");\r
+//                    ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
+//                    contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));\r
+//                    runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
 //                }\r
             }\r
         }else{\r
index 77cd7cc..ca6222f 100644 (file)
@@ -9,6 +9,7 @@ import android.os.Message;
 import android.os.PowerManager;\r
 import android.os.SystemClock;\r
 \r
+import com.enqualcomm.support.adapter.BTHelper;\r
 import com.enqualcomm.support.utils.AlarmHelper;\r
 import com.enqualcomm.support.adapter.LBSHelper;\r
 import com.enqualcomm.support.utils.Connection;\r
@@ -24,6 +25,7 @@ import com.enqualcomm.support.utils.SimSignalUtil;
 import com.enqualcomm.support.bean.Runtime;\r
 import com.enqualcomm.support.utils.TimeUtil;\r
 \r
+import java.util.ArrayList;\r
 import java.util.concurrent.ExecutorService;\r
 import java.util.concurrent.Executors;\r
 \r
@@ -90,7 +92,8 @@ public class LocationClient {
 \r
 \r
   private LBSHelper mLbsHelper;\r
-  \r
+  private static BTHelper btHelper=null;\r
+\r
   private int mPedometer2;\r
   \r
   private SimSignalUtil mSignalUtil;\r
@@ -117,7 +120,37 @@ public class LocationClient {
   public LocationClient(Connection paramNettyConnection, Runtime paramRuntime) {\r
     connection = paramNettyConnection;\r
     runtime = paramRuntime;\r
+    btHelper=BTHelper.getInstance(paramRuntime.getContextProxy().context, new BTHelper.BTScanCallback() {\r
+      @Override\r
+      public void OnScanFinished(ArrayList<String> btPairedScanResult, ArrayList<String> btNewScanResult) {\r
+\r
+        if (btNewScanResult.size() > 0) {\r
+          ICLogger.i("found bt mac " + btNewScanResult.size());\r
+          boolean in_area = false;\r
+          for (String mac : btNewScanResult) {\r
+            if (runtime.bleInfo.btMacList.contains(mac)) {\r
+              in_area = true;\r
+              break;\r
+            }\r
+            runtime.bleInfo.is_in_area = in_area;\r
+          }\r
+\r
 \r
+        } else {\r
+          runtime.bleInfo.is_in_area = false;\r
+        }\r
+        ICLogger.i("Dev Is in Area " + runtime.bleInfo.is_in_area);\r
+\r
+        if (runtime.bleInfo.is_in_area == false) {\r
+          ICLogger.i("不在区域内,开启定位流程");\r
+          startLocationProcess(runtime.getLocationInstance().getWorkingMod());\r
+        }else{\r
+          ICLogger.i("在区域内,直接发送区域坐标即可!");\r
+          StringMessage AP01_CMD = protocolAPIHelper.getGPSLocationMSG(runtime);\r
+          Deliver.sendLocationMSG(AP01_CMD);\r
+        }\r
+      }\r
+    });\r
     gLocationCline=this;\r
     //GPS 监听管理初始化\r
     this.nmeaListener = new NMEAListener(paramRuntime.getContextProxy().getLocationManager(), paramRuntime);\r
@@ -286,7 +319,14 @@ public class LocationClient {
               public void call(Object param1Object) { waitAndSendLocation(); }\r
             });\r
           }else if (msg.what == msgWhat_StartLocationProcess){\r
-            startLocationProcess(runtime.getLocationInstance().getWorkingMod());\r
+            if (runtime.bleInfo.btMacList.size()>0){\r
+              //有蓝牙搜索要求则 先进行蓝牙扫描\r
+              btHelper.scanBLE();\r
+            }else{\r
+              //没有蓝牙搜索要求,就正常定位\r
+              startLocationProcess(runtime.getLocationInstance().getWorkingMod());\r
+            }\r
+\r
           }else if (msg.what == msgWhat_StartSOSLocationProcess){\r
             startSOSLocation=true;//启动SOS定位,为了快速响应,只要wifi定位即可。\r
             forceLocation=1;\r
@@ -562,6 +602,8 @@ public void updateCellInfo() {
   private static int gpsTimeoutCountOnNoMove=0;// 记录gps 无信号或者timeout的次数,超过5 就会停止使用gps定位,只要有一次 移动,或者设置为wifi定位,则清零。\r
   private static final int MaxGpsTimeoutCountOnNoMove=5;//不动的情况最大的gps搜不到星的次数。\r
   private static boolean skipMoveCheck=false;\r
+\r
+\r
   public static void setSkipMoveCheck(boolean _skipMoveCheck){\r
     skipMoveCheck=_skipMoveCheck;\r
   }\r
@@ -571,10 +613,11 @@ public void updateCellInfo() {
 \r
   private static boolean NoMoveAndNoGPSsignalSkipGpsFlag=false;\r
   private static boolean noMove=false;\r
-  public void startLocationProcess(int mod){\r
 \r
 \r
 \r
+  public void startLocationProcess(int mod){\r
+\r
     updateStepCount();//update StepCount,保证每次定位前,计步数据是最新的。防止丢数据。\r
     ICLogger.i("forceLocation="+forceLocation+", WorkingMod="+mod+", isLocating="+isLocating+", lastStep="+runtime.getLastStepCount()+", currentStep="+ runtime.getTotalStepCount());\r
     if (isLocating && 1!=forceLocation) { //如果是强制定位,则即使是正在定位,也要执行,因为有时模式变换的时候,需要取消上一次定位信息,马上新的模式定位。\r
index fba1c92..69d1ce1 100644 (file)
@@ -17,6 +17,7 @@ import android.view.View;
 import android.widget.Button;
 import android.widget.TextView;
 
+import com.enqualcomm.support.adapter.BTHelper;
 import com.enqualcomm.support.utils.DeviceInfoUtil;
 import com.enqualcomm.support.utils.ICLogger;
 import com.enqualcomm.support.utils.ImageUtil;
@@ -27,6 +28,7 @@ import com.enqualcomm.support.utils.Util;
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
+import java.util.ArrayList;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
@@ -59,6 +61,8 @@ public class MainActivity extends Activity {
             return false;
         }
     });
+
+    BTHelper btHelper=null;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -73,11 +77,14 @@ public class MainActivity extends Activity {
         tbtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
+
                 Intent intent=new Intent();
                 ComponentName var3 = new ComponentName("com.enqualcomm.support", "com.enqualcomm.support.toolActivity");
                 intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
                 intent.setComponent(var3);
                 startActivity(intent);
+
+
             }
         });
 
@@ -115,6 +122,26 @@ public class MainActivity extends Activity {
 //        testpic();
     }
 
+
+    private void testBLE(){
+        btHelper= BTHelper.getInstance(MainActivity.this, new BTHelper.BTScanCallback() {
+                    @Override
+                    public void OnScanFinished(ArrayList<String> btPairedScanResult, ArrayList<String> btNewScanResult) {
+
+
+//                        ICLogger.i("BT Pared "+btPairedScanResult.size());
+//                        for ( String i :btPairedScanResult){
+//                            ICLogger.i(i);
+//                        }
+                        int count=btNewScanResult.size();
+                        ICLogger.i("BT New "+count);
+                        for(int i=0;i<count;i++)
+                            ICLogger.i("BT "+btNewScanResult.get(i));
+                        }
+
+                });
+                btHelper.scanBLE();
+    }
     @Override
     protected  void onResume() {
         super.onResume();
@@ -241,4 +268,7 @@ public class MainActivity extends Activity {
         ICLogger.d("SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES "+ SharPreferenceUtil.getPrefIntPublic(this,Constants.SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES,0));
 
     }
+
+
+
 }
diff --git a/app/src/main/java/com/enqualcomm/support/adapter/BTHelper.java b/app/src/main/java/com/enqualcomm/support/adapter/BTHelper.java
new file mode 100644 (file)
index 0000000..db7192e
--- /dev/null
@@ -0,0 +1,267 @@
+package com.enqualcomm.support.adapter;\r
+\r
+import android.bluetooth.BluetoothAdapter;\r
+import android.bluetooth.BluetoothAdapter.LeScanCallback;\r
+import android.bluetooth.BluetoothDevice;\r
+import android.content.BroadcastReceiver;\r
+import android.content.Context;\r
+import android.content.Intent;\r
+import android.content.IntentFilter;\r
+import android.os.Handler;\r
+\r
+import com.enqualcomm.support.utils.ICLogger;\r
+\r
+import java.util.ArrayList;\r
+import java.util.Set;\r
+\r
+public class BTHelper {\r
+\r
+    private BluetoothAdapter mBtAdapter;\r
+    private ArrayList<String> mPairedDevicesArray=new ArrayList<>();\r
+    private ArrayList<String> mNewDevicesArray=new ArrayList<>();\r
+    private Context mContext=null;\r
+    private BTScanCallback mCallback=null;\r
+    private static BTHelper mBThelper=null;\r
+\r
+    private boolean enabledBeforScan=false;\r
+    BTHelper(){\r
+\r
+    }\r
+\r
+    //enableBT\r
+    public void enableBT() {\r
+        ICLogger.i( "BT enableBT()");\r
+        if (!mBtAdapter.isEnabled()) {\r
+//            Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);\r
+//            mContext.startActivity(enableIntent);\r
+\r
+            mBtAdapter.enable();\r
+            try {\r
+                Thread.sleep(2000);\r
+            } catch (InterruptedException e) {\r
+                e.printStackTrace();\r
+            }\r
+            //此处无法执行说没权限\r
+//            mBtAdapter.enableNoAutoConnect();\r
+        }\r
+    }\r
+\r
+    //disableBT\r
+    public void disableBT(){\r
+        ICLogger.i( "BT disableBT()");\r
+        if (mBtAdapter.isEnabled()) {\r
+            mBtAdapter.disable();\r
+//            Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);\r
+//            mContext.startActivity(enableIntent);\r
+        }\r
+    }\r
+\r
+    //初始化 BTHlper\r
+    public void Init(Context context , BTScanCallback callback){\r
+        ICLogger.i( "BT Init()");\r
+        mCallback=callback;\r
+        mContext=context;\r
+//        // Register for broadcasts when a device is discovered\r
+//        IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);\r
+//        mContext.registerReceiver(mReceiver, filter);\r
+//\r
+//        // Register for broadcasts when discovery has finished\r
+//        filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);\r
+//        mContext.registerReceiver(mReceiver, filter);\r
+//\r
+\r
+        // Get the local Bluetooth adapter\r
+        mBtAdapter = BluetoothAdapter.getDefaultAdapter();\r
+\r
+    }\r
+\r
+    //获取实例\r
+    public static BTHelper getInstance(Context context , BTScanCallback callback){\r
+        if (mBThelper==null) {\r
+            ICLogger.i( "BT getInstance ");\r
+            mBThelper = new BTHelper();\r
+            mBThelper.Init(context,callback);\r
+        }\r
+        return mBThelper;\r
+    }\r
+\r
+//    // The BroadcastReceiver that listens for discovered devices and\r
+//    // changes the title when discovery is finished\r
+//    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {\r
+//        @Override\r
+//        public void onReceive(Context context, Intent intent) {\r
+//            String action = intent.getAction();\r
+//            ICLogger.i( "BT onReceive "+action);\r
+//            // When discovery finds a device\r
+//            if (BluetoothDevice.ACTION_FOUND.equals(action)) {\r
+//                // Get the BluetoothDevice object from the Intent\r
+//                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);\r
+//                // If it's already paired, skip it, because it's been listed already\r
+//\r
+//                ICLogger.i("BT "+device.getName() + "\t" + device.getAddress());\r
+//\r
+////                ICLogger.i( device.getName() + "\n" + device.getAddress());\r
+//                if (device.getBondState() != BluetoothDevice.BOND_BONDED) {\r
+//                    if(!mNewDevicesArray.contains(device.getAddress()))\r
+//                    mNewDevicesArray.add(device.getAddress());\r
+//                }\r
+//                // When discovery is finished, change the Activity title\r
+//            } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {\r
+//\r
+//                if (mNewDevicesArray.size() == 0) {\r
+//                    //没有设备\r
+//                }\r
+//                // Get a set of currently paired devices\r
+//                Set<BluetoothDevice> pairedDevices = mBtAdapter.getBondedDevices();\r
+//\r
+//                // If there are paired devices, add each one to the ArrayAdapter\r
+//                if (pairedDevices.size() > 0) {\r
+//                      for (BluetoothDevice device : pairedDevices) {\r
+//                          ICLogger.i("BT "+device.getName() + "\t" + device.getAddress());\r
+//                          if(!mPairedDevicesArray.contains(device.getAddress()))\r
+//                              mPairedDevicesArray.add(device.getAddress());\r
+//\r
+//                    }\r
+//                }\r
+//\r
+//                //开始扫描前是关闭的,就关闭它\r
+//                if(!enabledBeforScan)\r
+//                    disableBT();\r
+//\r
+//                if (mCallback!=null)\r
+//                    mCallback.OnScanFinished(mPairedDevicesArray,mNewDevicesArray);\r
+//            }\r
+//        }\r
+//    };\r
+\r
+    //清除BThelper\r
+//    public void Deinit() {\r
+//        ICLogger.i( "BT Deinit()");\r
+//        // Make sure we're not doing discovery anymore\r
+////        if (mBtAdapter != null) {\r
+////            mBtAdapter.cancelDiscovery();\r
+////        }\r
+////\r
+////        // Unregister broadcast listeners\r
+////        if(mContext!=null)\r
+////            mContext.unregisterReceiver(mReceiver);\r
+////\r
+//\r
+//\r
+////        mContext=null;\r
+//////        mCallback=null;\r
+//\r
+//    }\r
+\r
+    //开始扫描BLE\r
+    public void scanBLE() {\r
+        ICLogger.i( "BT doDiscovery()");\r
+\r
+\r
+        enabledBeforScan=mBtAdapter.isEnabled();\r
+\r
+        enableBT();\r
+\r
+\r
+        // If we're already discovering, stop it\r
+\r
+//        ICLogger.i(" mBtAdapter.isDiscovering() "+mBtAdapter.isDiscovering());\r
+//        if (mBtAdapter.isDiscovering()) {\r
+//            mBtAdapter.cancelDiscovery();\r
+//        }\r
+\r
+//        mBtAdapter.setDiscoverableTimeout(3);\r
+        mPairedDevicesArray.clear();\r
+        mNewDevicesArray.clear();\r
+        // Request discover from BluetoothAdapter\r
+\r
+\r
+\r
+//        mBtAdapter.startDiscovery();\r
+\r
+\r
+\r
+\r
+\r
+        mBtAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_NONE,5);\r
+        LeScanCallback lecallback=new LeScanCallback(){\r
+\r
+            @Override\r
+            public void onLeScan(BluetoothDevice bluetoothDevice, int rssi, byte[] scanRecode) {\r
+                ICLogger.i( "BT onLeScan "+bluetoothDevice.getName()+" "+bluetoothDevice.getAddress()+" rssi "+rssi);\r
+                ICLogger.logToFile("LBS","BT onLeScan "+bluetoothDevice.getName()+" "+bluetoothDevice.getAddress()+" rssi "+rssi );\r
+                if(!mNewDevicesArray.contains(bluetoothDevice.getAddress()))\r
+                    mNewDevicesArray.add(bluetoothDevice.getAddress());\r
+            }\r
+        };\r
+\r
+        ICLogger.i("BT startLeScan");\r
+        mBtAdapter.startLeScan(lecallback);\r
+\r
+\r
+        new Handler().postDelayed(new Runnable() {\r
+            @Override\r
+            public void run() {\r
+                mBtAdapter.stopLeScan(lecallback);\r
+                ICLogger.i("BT stopLeScan");\r
+\r
+                //开始扫描前是关闭的,就关闭它\r
+                if(!enabledBeforScan)\r
+                    disableBT();\r
+\r
+                if (mCallback!=null)\r
+                    mCallback.OnScanFinished(mPairedDevicesArray,mNewDevicesArray);\r
+            }\r
+        },5000);\r
+\r
+\r
+    }\r
+\r
+\r
+\r
+    //开启蓝牙可被搜索300秒\r
+    private void ensureDiscoverable() {\r
+       ICLogger.i("ensure discoverable");\r
+        if (mBtAdapter.getScanMode() !=\r
+                BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {\r
+\r
+//            Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);\r
+//            discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);\r
+//            mContext.startActivity(discoverableIntent);\r
+        }\r
+    }\r
+\r
+    private advcallback advcb=new advcallback();\r
+\r
+    //停止自定义广播\r
+    public void stopGattAdvertising(){\r
+        if (mBtAdapter.isEnabled())\r
+            mBtAdapter.stopAdvertising(advcb);\r
+\r
+    }\r
+\r
+    //开启自定义广播数据,前两字会被丢弃\r
+    public void enableGattAdvertising(String serverData){\r
+        byte[] serviceData = serverData.getBytes();\r
+        if (mBtAdapter.isEnabled())\r
+            mBtAdapter.startAdvertising(advcb, serviceData);\r
+    }\r
+    public class advcallback implements BluetoothAdapter.AdvertiseCallback {\r
+\r
+\r
+        public void onAdvertiseStart(int status){\r
+            ICLogger.i( "--onAdvertiseStart --");\r
+\r
+        }\r
+\r
+        public void onAdvertiseStop(int status){\r
+\r
+           ICLogger.i( "-- onAdvertiseStop --");\r
+\r
+        }\r
+    }\r
+    public interface BTScanCallback{\r
+        void OnScanFinished(ArrayList<String> btPairedScanResult,ArrayList<String> btNewScanResult);\r
+\r
+    }\r
+}\r
index 8addf48..073e5c1 100644 (file)
@@ -609,7 +609,44 @@ public class Runtime {
 \r
     return sb.toString();\r
   }\r
+    public String getMqttGPSData(){\r
 \r
+/***\r
+ * A,22.570733,N,113.8626083,E,0.00,249.5,0.0,6\r
+ * A,gps 定位有效\r
+ * 22.570733,纬度 N,\r
+ * 113.8626083,经度 E,\r
+ * 0.00,速度\r
+ * 249.5,方向\r
+ * 0.0,海拔\r
+ * 6,卫星个数\r
+ */\r
+        StringBuilder sb=new StringBuilder();\r
+        int speedi=(int)gpsp.getLocation().speed;\r
+        int speedl=(int) ((gpsp.getLocation().speed - speedi)*100);\r
+\r
+        String latStr=gpsp.getLocation().latGPSStr;\r
+        String lonStr=gpsp.getLocation().lonGPSStr;\r
+\r
+        if(bleInfo.is_in_area==true){\r
+             latStr=bleInfo.gps_n;\r
+             lonStr=bleInfo.gps_e;\r
+        }\r
+        String heading=String.valueOf(gpsp.getLocation().heading);\r
+        int starcount=gpsp.getLocation().used_gps_numbs;\r
+        if (isGPSFixed()|| bleInfo.is_in_area)\r
+        {\r
+            String gpsStr = String.format(",%s,N,%s,E,%d.%02d,%s,0.0,%d", latStr, lonStr, speedi, speedl,heading,starcount);\r
+            sb.append("A").append(gpsStr);\r
+\r
+        }else{\r
+            String gpsStr=String.format(",0.000,N,0.000,E,0.0,0.0,0.0,0");\r
+            sb.append("V").append(gpsStr);\r
+        }\r
+\r
+\r
+        return sb.toString();\r
+    }\r
     public String getFZDGPSData(){\r
 \r
 /***\r
index 10ac35e..db00ffc 100644 (file)
@@ -309,7 +309,7 @@ public class protocol_mqtt {
         String cmd = cmdMap.get(CMD_TYPE.UD);\r
         sb.append(TimeUtil.getUTCSystemDateYYMMDD()).append(CMDSPLIT)\r
                 .append(TimeUtil.getUTCSystemTimeHHmmss()).append(CMDSPLIT)\r
-                .append(runtime.getFZDGPSData()).append(CMDSPLIT)\r
+                .append(runtime.getMqttGPSData()).append(CMDSPLIT)\r
                 .append(String.format("%03d", abs(runtime.getSignalStrength()))).append(CMDSPLIT)\r
                 .append(runtime.getBattery()).append(CMDSPLIT)\r
                 .append(runtime.getTotalStepCount()).append(CMDSPLIT)\r