From c53ce6d5cd9ea49128c4f6343371feebfef38a62 Mon Sep 17 00:00:00 2001 From: haijiang <181069201@qq.com> Date: Wed, 06 Jun 2018 09:03:45 +0800 Subject: [PATCH] 提交 --- app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java | 237 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 178 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..818c010 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,8 @@ import com.moral.yunfushao.model.UpLoadParam; import com.moral.yunfushao.model.VoiceBean; import com.moral.yunfushao.ui.PanelView; +import com.moral.yunfushao.utils.AudioUtils; +import com.moral.yunfushao.utils.DebugUtils; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -77,22 +78,92 @@ private ArrayList<VoiceBean> voiceList = new ArrayList<>(); AssetManager am; MediaPlayer mp; + private boolean isVirating = false; private LinearLayout ll_status; private TextView tv_ljjl, tv_tishi, tv_desc, tv_shishi, tv_status; 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 +221,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 +256,8 @@ /** * ������������������ */ - handler.postDelayed(new Runnable() { - @Override - public void run() { - checkTime(); - } - }, 500); + handler.postDelayed(runnable, 5000); + /** * ������������������������ */ @@ -436,7 +516,7 @@ message.what = 1; heartHandler.sendMessage(message); } - }, 0, 1000 * 60); + }, 0, 1000 * 30); } } @@ -549,17 +629,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������ */ @@ -609,17 +689,29 @@ pv.setPercent((float) (shishiValue * (0.25 / 0.16))); showStatus(0); stop(); + if(isVirating){ + isVirating = false; + AudioUtils.virateCancle(getActivity()); + } preLevel = -1; } else if (shishiValue >= 0.16 && shishiValue < 0.8) { data.setIs_warn(1); pv.setPercent((float) (0.25 + shishiValue * (0.25 / 0.8))); showStatus(1); play(0); + if(!isVirating){ + isVirating = true; + AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0); + } } else if (shishiValue >= 0.8 && shishiValue < 2) { data.setIs_warn(1); showStatus(2); pv.setPercent((float) (0.5 + shishiValue * (0.25 / 2))); play(1); + if(!isVirating){ + isVirating = true; + AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0); + } } else if (shishiValue >= 2) { data.setIs_warn(1); showStatus(3); @@ -629,9 +721,13 @@ pv.setPercent(1.0f); } play(2); + if(!isVirating){ + isVirating = true; + AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0); + } } submitResult.add(data); - realResult.clear(); +// realResult.clear(); } } @@ -642,28 +738,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 +778,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 +840,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