From 6c88cd89b3f3d6d140f6eb0cec20e2f57a7ff563 Mon Sep 17 00:00:00 2001
From: 沈斌 <bluelazysb@hotmail.com>
Date: Wed, 16 May 2018 11:00:33 +0800
Subject: [PATCH] updates - 心跳包降低至30s/次
---
app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java | 219 ++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 160 insertions(+), 59 deletions(-)
diff --git a/app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java b/app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java
index 2cc5443..e5fcd90 100644
--- a/app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java
+++ b/app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java
@@ -6,7 +6,6 @@
import android.bluetooth.BluetoothGattCharacteristic;
import android.bluetooth.BluetoothGattService;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.AssetManager;
import android.media.MediaPlayer;
@@ -53,6 +52,7 @@
import com.moral.yunfushao.model.UpLoadParam;
import com.moral.yunfushao.model.VoiceBean;
import com.moral.yunfushao.ui.PanelView;
+import com.moral.yunfushao.utils.DebugUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -83,16 +83,85 @@
private PanelView pv;
private ImageView iv_his, iv_status, iv_search, iv_bottom_status, iv_dianliang;
private BluetoothService mBluetoothService;
- private ArrayList<String> realResult = new ArrayList<>();
- private ArrayList<String> realHourResult = new ArrayList<>();
- private ArrayList<String> realHisResult = new ArrayList<>();
+// private ArrayList<String> realResult = new ArrayList<>();
+// private ArrayList<String> realHourResult = new ArrayList<>();
+// private ArrayList<String> realHisResult = new ArrayList<>();
//������������
private ArrayList<RecData> submitResult = new ArrayList<>();
+
+ private StringBuilder stringResult = new StringBuilder();
//������������������������
private ArrayList<RecData> submitTempResult = new ArrayList<>();
private Timer heartTimer, resTimer, chonglianTimer;
- Handler handler = new Handler();
+
+ private Handler handler = new Handler();
+
+ private Runnable runnable = new Runnable(){
+ @Override
+ public void run() {
+ checkTime();
+ checkTimeCount++;
+ handler.postDelayed(this, 5000);
+ }
+ };
+
+ private int checkTimeCount = 0;
+
+ private void doHandleData(String result) {
+ if(StringUtils.isEmpty(result)) {
+ return;
+ }
+
+ //������������"������������������������������"���������5������������������������������������������
+ if(result.startsWith(BLECommon.BLE_REC_TIME) || checkTimeCount > 5) {
+ DebugUtils.sendData("data", result);
+
+ handler.removeCallbacks(runnable);
+ checkTimeCount = 0;
+
+ result = result.substring(14);
+ doHandleData(result);
+ }
+
+ if(result.startsWith("3A")) {
+ if(result.length() >= 16) {
+ DebugUtils.sendData("data", result);
+
+ parseHisData(result.substring(0, 16));
+ result = result.substring(16);
+ doHandleData(result);
+ } else {
+ stringResult.append(result);
+ }
+ }
+
+ if(result.startsWith("5A")) {
+ if(result.length() >= 40) {
+ DebugUtils.sendData("data", result);
+
+ parseCurrentData(result.substring(0, 40));
+ result = result.substring(40);
+ doHandleData(result);
+ } else {
+ stringResult.append(result);
+ }
+ }
+
+ if(result.startsWith("7A")) {
+ if(result.length() >= 8) {
+ DebugUtils.sendData("data", result);
+
+ parseHoutData(result.substring(0, 8));
+ mBluetoothService.write(mBluetoothService.getWirteCharacteristic().getService().getUuid().toString(), mBluetoothService.getWirteCharacteristic().getUuid().toString(), BLECommon.BLE_SEND_7A, null);
+
+ result = result.substring(8);
+ doHandleData(result);
+ } else {
+ stringResult.append(result);
+ }
+ }
+ }
/**
* ������
@@ -150,10 +219,23 @@
public void run() {
Log.d("haijiang123", "������������====" + StringUtils.byteArrayToHexStr(characteristic.getValue()));
String result = StringUtils.byteArrayToHexStr(characteristic.getValue());
+
+ //���������������������
+ stringResult.append(result);
+ result = stringResult.toString();
+
+ doHandleData(result);
+
+ stringResult = new StringBuilder();
+
//������������
- parseCurrentData(result);
- parseHisData(result);
- parseHoutData(result);
+// parseCurrentData(result);
+// parseHisData(result);
+// parseHoutData(result);
+//
+// if (result.startsWith("7A")) {
+// mBluetoothService.write(mBluetoothService.getWirteCharacteristic().getService().getUuid().toString(), mBluetoothService.getWirteCharacteristic().getUuid().toString(), BLECommon.BLE_SEND_7A, null);
+// }
}
});
}
@@ -172,12 +254,8 @@
/**
* ������������������
*/
- handler.postDelayed(new Runnable() {
- @Override
- public void run() {
- checkTime();
- }
- }, 500);
+ handler.postDelayed(runnable, 5000);
+
/**
* ������������������������
*/
@@ -436,7 +514,7 @@
message.what = 1;
heartHandler.sendMessage(message);
}
- }, 0, 1000 * 60);
+ }, 0, 1000 * 30);
}
}
@@ -549,17 +627,17 @@
*/
private int preLevel = -1;
- private void parseCurrentData(String result) {
- if (result.startsWith("5A")) {
- realResult.clear();
- realResult.add(result);
- } else {
- realResult.add(result);
- }
- String nowResult = "";
- for (String s : realResult) {
- nowResult += s;
- }
+ private void parseCurrentData(String nowResult) {
+// if (result.startsWith("5A")) {
+// realResult.clear();
+// realResult.add(result);
+// } else {
+// realResult.add(result);
+// }
+// String nowResult = "";
+// for (String s : realResult) {
+// nowResult += s;
+// }
/**
* 20������������5A������ 5B������
*/
@@ -631,7 +709,7 @@
play(2);
}
submitResult.add(data);
- realResult.clear();
+// realResult.clear();
}
}
@@ -642,28 +720,32 @@
*/
private AlertDialog testDialog;
- private void parseHoutData(String result) {
- if (result.startsWith("7A")) {
- realHourResult.clear();
- realHourResult.add(result);
- } else {
- realHourResult.add(result);
- }
- String nowResult = "";
- for (String s : realHourResult) {
- nowResult += s;
- }
+ private void parseHoutData(String nowResult) {
+// if (result.startsWith("7A")) {
+// realHourResult.clear();
+// realHourResult.add(result);
+// } else {
+// realHourResult.add(result);
+// }
+// String nowResult = "";
+// for (String s : realHourResult) {
+// nowResult += s;
+// }
if (!TextUtils.isEmpty(nowResult) && nowResult.length() == 8 && nowResult.startsWith("7A") && nowResult.endsWith("7B")) {
- //-----------------------Test------------------------------------------//
-// String aaa = MainApp.theApp.sharedPreferencesUtil.getTest()+"\n"+nowResult+" ���������������"+TimeUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss");
-// MainApp.theApp.sharedPreferencesUtil.saveTest(aaa);
- //-----------------------Test------------------------------------------//
+ if(DebugUtils.debug_mode) {
+ //-----------------------Test------------------------------------------//
+ String aaa = MainApp.theApp.sharedPreferencesUtil.getTest()+"\n"+nowResult+" ���������������"+TimeUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss");
+ MainApp.theApp.sharedPreferencesUtil.saveTest(aaa);
+ //-----------------------Test------------------------------------------//
+ }
test(nowResult, TimeUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss"));
int hourValue = Integer.parseInt(nowResult.substring(2, 4), 16) * 256 + Integer.parseInt(nowResult.substring(4, 6), 16);
// Log.d("haijiang", "������������������������="+ nowResult+"���������"+nowResult.substring(2, 4)+"|"+Integer.parseInt(nowResult.substring(2, 4), 16) * 256+"���������"+nowResult.substring(4, 6)+"|"+Integer.parseInt(nowResult.substring(4, 6), 16) +"���������"+(hourValue/100.0));
- sendHourDataRec();
+
+ //sendHourDataRec();
+
RecData data = new RecData();
data.setType(1);
data.setIs_warn(0);
@@ -678,24 +760,26 @@
/**
* ���������������������������������
*/
- private void parseHisData(String result) {
- if (result.startsWith("3A")) {
- realHisResult.clear();
- realHisResult.add(result);
- } else {
- realHisResult.add(result);
- }
- String nowResult = "";
- for (String s : realHisResult) {
- nowResult += s;
- }
+ private void parseHisData(String nowResult) {
+// if (result.startsWith("3A")) {
+// realHisResult.clear();
+// realHisResult.add(result);
+// } else {
+// realHisResult.add(result);
+// }
+// String nowResult = "";
+// for (String s : realHisResult) {
+// nowResult += s;
+// }
if (!TextUtils.isEmpty(nowResult) && nowResult.length() == 16 && nowResult.startsWith("3A") && nowResult.endsWith("3B")) {
Log.d("hourdata", "=====nowResult=====" + nowResult);
- //-----------------------Test------------------------------------------//
-// String aaa = MainApp.theApp.sharedPreferencesUtil.getTest()+"\n"+nowResult;
-// MainApp.theApp.sharedPreferencesUtil.saveTest(aaa);
- //-----------------------Test------------------------------------------//
+ if(DebugUtils.debug_mode) {
+ //-----------------------Test------------------------------------------//
+ String aaa = MainApp.theApp.sharedPreferencesUtil.getTest() + "\n" + nowResult;
+ MainApp.theApp.sharedPreferencesUtil.saveTest(aaa);
+ //-----------------------Test------------------------------------------//
+ }
String year = "20" + Integer.parseInt(nowResult.substring(2, 4), 16);
String month = Integer.parseInt(nowResult.substring(4, 6), 16) + "";
@@ -738,7 +822,24 @@
blesb.append(toHex(Integer.toHexString((now.get(Calendar.HOUR_OF_DAY)))));
blesb.append(toHex(Integer.toHexString((now.get(Calendar.MINUTE)))));
blesb.append("4B");
- mBluetoothService.write(mBluetoothService.getWirteCharacteristic().getService().getUuid().toString(), mBluetoothService.getWirteCharacteristic().getUuid().toString(), blesb.toString(), null);
+
+ boolean result = mBluetoothService.write(mBluetoothService.getWirteCharacteristic().getService().getUuid().toString(), mBluetoothService.getWirteCharacteristic().getUuid().toString(), blesb.toString(), new BleCharacterCallback() {
+ @Override
+ public void onSuccess(BluetoothGattCharacteristic characteristic) {
+ String val = StringUtils.byteArrayToHexStr(characteristic.getValue());
+ DebugUtils.sendData("time", val);
+ }
+
+ @Override
+ public void onFailure(BleException exception) {
+ }
+
+ @Override
+ public void onInitiatedResult(boolean result) {
+ //DebugUtils.sendData("time", String.valueOf(result));
+ }
+ });
+ DebugUtils.sendData("time", String.valueOf(result));
}
private String toHex(String s) {
--
Gitblit v1.8.0