From 75e83be13a8c4ccf081c4dc07a262e4096783c7e Mon Sep 17 00:00:00 2001
From: 陈奇 <1650699704@qq.com>
Date: Fri, 02 Nov 2018 17:34:21 +0800
Subject: [PATCH] [*]修改电磁版本 配合电子修改bug

---
 .gradle/4.1/taskHistory/taskHistory.bin                               |    0 
 app/src/main/java/com/moral/yunfushao/ui/PanelView.java               |  211 ++++++++++++--------
 .gradle/4.1/javaCompile/classAnalysis.bin                             |    0 
 andbrickslib/andbrickslib.iml                                         |   41 ++--
 app/src/main/java/com/moral/yunfushao/common/AppConfig.java           |    1 
 .gradle/4.1/taskHistory/fileSnapshots.bin                             |    0 
 FastBleLib/FastBleLib.iml                                             |    1 
 .gradle/4.1/fileHashes/resourceHashesCache.bin                        |    0 
 app/build.gradle                                                      |   41 ++-
 app/app.iml                                                           |   27 +-
 gradlew                                                               |    0 
 FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java  |    6 
 .gradle/4.1/javaCompile/jarAnalysis.bin                               |    0 
 .gradle/4.1/fileHashes/fileHashes.lock                                |    0 
 app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java       |   10 
 app/src/main/res/values/strings.xml                                   |    1 
 app/src/main/AndroidManifest.xml                                      |   58 +++--
 .gradle/4.1/javaCompile/taskJars.bin                                  |    0 
 app/src/main/java/com/moral/yunfushao/adapter/SongAdapter.java        |    1 
 app/src/main/java/com/moral/yunfushao/common/VersionConstants.java    |   12 +
 app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java   |  138 ++++++++----
 .gradle/4.1/fileHashes/fileHashes.bin                                 |    0 
 .gradle/4.1/javaCompile/javaCompile.lock                              |    0 
 .gradle/4.1/taskHistory/taskHistory.lock                              |    0 
 FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java       |    9 
 .gradle/4.1/javaCompile/taskHistory.bin                               |    0 
 app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java |    5 
 27 files changed, 347 insertions(+), 215 deletions(-)

diff --git a/.gradle/4.1/fileHashes/fileHashes.bin b/.gradle/4.1/fileHashes/fileHashes.bin
index 1a8e623..99885b1 100644
--- a/.gradle/4.1/fileHashes/fileHashes.bin
+++ b/.gradle/4.1/fileHashes/fileHashes.bin
Binary files differ
diff --git a/.gradle/4.1/fileHashes/fileHashes.lock b/.gradle/4.1/fileHashes/fileHashes.lock
index ee84369..d2965bf 100644
--- a/.gradle/4.1/fileHashes/fileHashes.lock
+++ b/.gradle/4.1/fileHashes/fileHashes.lock
Binary files differ
diff --git a/.gradle/4.1/fileHashes/resourceHashesCache.bin b/.gradle/4.1/fileHashes/resourceHashesCache.bin
index 5ab16b0..30b12df 100644
--- a/.gradle/4.1/fileHashes/resourceHashesCache.bin
+++ b/.gradle/4.1/fileHashes/resourceHashesCache.bin
Binary files differ
diff --git a/.gradle/4.1/javaCompile/classAnalysis.bin b/.gradle/4.1/javaCompile/classAnalysis.bin
index 47cc8d8..04d2f06 100644
--- a/.gradle/4.1/javaCompile/classAnalysis.bin
+++ b/.gradle/4.1/javaCompile/classAnalysis.bin
Binary files differ
diff --git a/.gradle/4.1/javaCompile/jarAnalysis.bin b/.gradle/4.1/javaCompile/jarAnalysis.bin
index 3bc8bf7..2e8a73e 100644
--- a/.gradle/4.1/javaCompile/jarAnalysis.bin
+++ b/.gradle/4.1/javaCompile/jarAnalysis.bin
Binary files differ
diff --git a/.gradle/4.1/javaCompile/javaCompile.lock b/.gradle/4.1/javaCompile/javaCompile.lock
index b71bfc9..f540802 100644
--- a/.gradle/4.1/javaCompile/javaCompile.lock
+++ b/.gradle/4.1/javaCompile/javaCompile.lock
Binary files differ
diff --git a/.gradle/4.1/javaCompile/taskHistory.bin b/.gradle/4.1/javaCompile/taskHistory.bin
index dc6f92e..786a006 100644
--- a/.gradle/4.1/javaCompile/taskHistory.bin
+++ b/.gradle/4.1/javaCompile/taskHistory.bin
Binary files differ
diff --git a/.gradle/4.1/javaCompile/taskJars.bin b/.gradle/4.1/javaCompile/taskJars.bin
index a594919..dee8b54 100644
--- a/.gradle/4.1/javaCompile/taskJars.bin
+++ b/.gradle/4.1/javaCompile/taskJars.bin
Binary files differ
diff --git a/.gradle/4.1/taskHistory/fileSnapshots.bin b/.gradle/4.1/taskHistory/fileSnapshots.bin
index 3329772..164c708 100644
--- a/.gradle/4.1/taskHistory/fileSnapshots.bin
+++ b/.gradle/4.1/taskHistory/fileSnapshots.bin
Binary files differ
diff --git a/.gradle/4.1/taskHistory/taskHistory.bin b/.gradle/4.1/taskHistory/taskHistory.bin
index 3b958f7..7443fe3 100644
--- a/.gradle/4.1/taskHistory/taskHistory.bin
+++ b/.gradle/4.1/taskHistory/taskHistory.bin
Binary files differ
diff --git a/.gradle/4.1/taskHistory/taskHistory.lock b/.gradle/4.1/taskHistory/taskHistory.lock
index 3e5ed24..655a050 100644
--- a/.gradle/4.1/taskHistory/taskHistory.lock
+++ b/.gradle/4.1/taskHistory/taskHistory.lock
Binary files differ
diff --git a/FastBleLib/FastBleLib.iml b/FastBleLib/FastBleLib.iml
index 9a2ba05..52f5e6f 100644
--- a/FastBleLib/FastBleLib.iml
+++ b/FastBleLib/FastBleLib.iml
@@ -87,6 +87,7 @@
       <sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/attr" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
diff --git a/FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java b/FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java
index 155d9b7..e02a858 100644
--- a/FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java
+++ b/FastBleLib/src/main/java/com/clj/fastble/bluetooth/BleBluetooth.java
@@ -399,7 +399,6 @@
         @Override
         public void onDisConnected(BluetoothGatt gatt, int status, BleException exception) {
             BleLog.i("BleGattCallback���onConnectFailure ");
-
             closeBluetoothGatt();
             bluetoothGatt = null;
             Iterator iterator = callbackHashMap.entrySet().iterator();
@@ -449,7 +448,7 @@
 
         @Override
         public void onServicesDiscovered(BluetoothGatt gatt, int status) {
-            BleLog.i("BleGattCallback���onServicesDiscovered ");
+            BleLog.i("BleGattCallback���onServicesDiscovered " + mtu);
             bluetoothGatt.requestMtu(mtu);
             connectionState = STATE_SERVICES_DISCOVERED;
             Iterator iterator = callbackHashMap.entrySet().iterator();
@@ -479,7 +478,6 @@
         @Override
         public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
             BleLog.i("BleGattCallback���onCharacteristicWrite ");
-
             Iterator iterator = callbackHashMap.entrySet().iterator();
             while (iterator.hasNext()) {
                 Map.Entry entry = (Map.Entry) iterator.next();
@@ -492,7 +490,7 @@
 
         @Override
         public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic) {
-            BleLog.i("BleGattCallback���onCharacteristicChanged ");
+            BleLog.i("BleGattCallback���onCharacteristicChanged " + characteristic.getValue().length);
             Iterator iterator = callbackHashMap.entrySet().iterator();
             while (iterator.hasNext()) {
                 Map.Entry entry = (Map.Entry) iterator.next();
diff --git a/FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java b/FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java
index 33a3d7a..39a8596 100644
--- a/FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java
+++ b/FastBleLib/src/main/java/com/clj/fastble/conn/BleConnector.java
@@ -361,15 +361,12 @@
                         handler.removeMessages(MSG_NOTIFY_CHA, this);
                     }
 
+
                     if (characteristic.getUuid().equals(UUID.fromString(uuid_notify))) {
+                        System.out.println("chenqi Notify ->" + characteristic.getValue().length);
+                        System.out.println("chenqi Notify Hex ->" + BleBluetooth.dumpHex(characteristic.getValue()));
                         bleCallback.onSuccess(characteristic);
                     }
-                }
-
-                @Override
-                public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) {
-                    super.onMtuChanged(gatt, mtu, status);
-                    System.out.println(String.format("onMtuChanged���mtu = %s", mtu));
                 }
             });
 
diff --git a/andbrickslib/andbrickslib.iml b/andbrickslib/andbrickslib.iml
index 1cfb37d..cf8b7b2 100644
--- a/andbrickslib/andbrickslib.iml
+++ b/andbrickslib/andbrickslib.iml
@@ -87,6 +87,7 @@
       <sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/attr" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/check-manifest" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
@@ -107,38 +108,38 @@
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-fragment-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-annotations:25.3.1@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource-2.2.2" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-media-compat-25.3.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: javax.annotation:javax.annotation-api:1.2@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.pnikosis:materialish-progress-1.0" level="project" />
-    <orderEntry type="library" name="Gradle: com.lzy.net:okserver-1.1.3" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core-2.2.2" level="project" />
-    <orderEntry type="library" name="Gradle: me.zhanghai.android.materialprogressbar:library-1.4.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable-25.3.1" level="project" />
-    <orderEntry type="library" name="Gradle: com.android.support:support-compat-25.3.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:rules-0.5" level="project" />
-    <orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.0@jar" level="project" />
-    <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:commons-0.9.4.4" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-v13-25.3.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-annotations:25.3.1@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:core-0.9.4.4" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-v4-25.3.1" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-core-ui-25.3.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner-0.5" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-media-compat-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.pnikosis:materialish-progress-1.0" level="project" />
     <orderEntry type="library" name="Gradle: com.alibaba:fastjson:1.1.56.android@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:exposed-instrumentation-api-publish-0.5" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.lzy.net:okserver-1.1.3" level="project" />
+    <orderEntry type="library" name="Gradle: me.zhanghai.android.materialprogressbar:library-1.4.0" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.android.support:support-compat-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:recyclerview-v7-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.lzy.net:okgo-2.1.4" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.4.1@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable-25.3.1" level="project" />
+    <orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-core-utils-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.squareup.okio:okio:1.9.0@jar" level="project" />
+    <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:commons-0.9.4.4" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource-2.2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.annotation:javax.annotation-api:1.2@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core-2.2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:rules-0.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner-0.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:exposed-instrumentation-api-publish-0.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
   </component>
 </module>
\ No newline at end of file
diff --git a/app/app.iml b/app/app.iml
index ac419e1..1006a91 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -92,7 +92,9 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaPrecompile" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged-not-compiled-resources" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-rules" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
@@ -100,6 +102,7 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
       <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
+      <excludeFolder url="file://$MODULE_DIR$/build/reports" />
       <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
     </content>
     <orderEntry type="jdk" jdkName="Android API 25 Platform" jdkType="Android SDK" />
@@ -108,21 +111,14 @@
     <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-fragment-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-annotations:25.3.1@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource-2.2.2" level="project" />
     <orderEntry type="library" name="Gradle: pub.devrel:easypermissions-0.4.0" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-media-compat-25.3.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: javax.annotation:javax.annotation-api:1.2@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.pnikosis:materialish-progress-1.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core-2.2.2" level="project" />
     <orderEntry type="library" name="Gradle: me.zhanghai.android.materialprogressbar:library-1.4.0" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:animated-vector-drawable-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-compat-25.3.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:rules-0.5" level="project" />
     <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:commons-0.9.4.4" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-v13-25.3.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.contrarywind:Android-PickerView-3.1.2" level="project" />
     <orderEntry type="library" name="Gradle: com.afollestad.material-dialogs:core-0.9.4.4" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-v4-25.3.1" level="project" />
@@ -130,14 +126,10 @@
     <orderEntry type="library" scope="TEST" name="Gradle: junit:junit:4.12@jar" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-core:1.3@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:support-core-ui-25.3.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner-0.5" level="project" />
     <orderEntry type="library" name="Gradle: com.android.support:cardview-v7-25.3.1" level="project" />
     <orderEntry type="library" name="Gradle: in.srain.cube:ultra-ptr-1.0.11" level="project" />
     <orderEntry type="library" name="Gradle: org.greenrobot:eventbus:3.0.0@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.alibaba:fastjson:1.1.56.android@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:exposed-instrumentation-api-publish-0.5" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.github.lecho:hellocharts-library-1.5.8" level="project" />
     <orderEntry type="library" name="Gradle: __local_aars__:/Users/chenqi/AndroidStudioProjects/pregnancy_guard_android/app/libs/BaiduLBS_Android.jar:unspecified@jar" level="project" />
     <orderEntry type="library" name="Gradle: com.daimajia.numberprogressbar:library-1.4" level="project" />
@@ -150,5 +142,18 @@
     <orderEntry type="library" name="Gradle: com.android.support:support-core-utils-25.3.1" level="project" />
     <orderEntry type="module" module-name="andbrickslib" />
     <orderEntry type="module" module-name="FastBleLib" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-idling-resource-2.2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.annotation:javax.annotation-api:1.2@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core-2.2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.squareup:javawriter:2.1.1@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:rules-0.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: javax.inject:javax.inject:1@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:runner-0.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:exposed-instrumentation-api-publish-0.5" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-integration:1.3@jar" level="project" />
+    <orderEntry type="module" module-name="andbrickslib" />
+    <orderEntry type="module" module-name="FastBleLib" />
   </component>
 </module>
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index b647132..1460c65 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -7,31 +7,44 @@
         applicationId "com.moral.yunfushao"
         minSdkVersion 21
         targetSdkVersion 25
-        versionCode 1
-        versionName "1.0"
+        versionCode 2
+        versionName "1.0.2_sp3"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+        signingConfig signingConfigs.debug
     }
-
-//    signingConfigs {
-//        // your debug keystore
-////        debug {
-////            keyAlias 'chenqi'
-////            keyPassword '123456'
-////            storeFile file('/Users/chenqi/chenqi.jks')
-////            storePassword '123456'
-////        }
-//    }
-
+    signingConfigs {
+        key {
+            keyAlias 'qxpc'
+            keyPassword '123456'
+            storeFile file('../pregnancy_guard_android/qixingpiaochong')
+            storePassword '123456'
+        }
+    }
     sourceSets {
         main {
             jniLibs.srcDirs = ['libs']
+        }
+    }
+    //���������������
+    //3.0������
+    android.applicationVariants.all { variant ->
+        variant.outputs.all {
+            if (buildType.name == "debug")
+                outputFileName = "Dev_yfs_v.${variant.versionName}.apk"
+            else outputFileName = "yfs_v.${variant.versionName}.apk"
         }
     }
 
     buildTypes {
         release {
             minifyEnabled false
+            zipAlignEnabled true
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+            manifestPlaceholders = [app_name: "@string/app_name"]//������������
+        }
+        debug {
+            minifyEnabled false
+            manifestPlaceholders = [app_name: "@string/app_name_text"]
         }
     }
 }
@@ -53,7 +66,7 @@
     compile 'com.github.bumptech.glide:glide:3.7.0'
     //������������
     compile 'com.lzy.net:okgo:2.1.4'
-     compile files('libs/BaiduLBS_Android.jar')
+    compile files('libs/BaiduLBS_Android.jar')
     compile 'pub.devrel:easypermissions:0.4.0'
     compile 'com.daimajia.numberprogressbar:library:1.4@aar'
     compile 'org.greenrobot:eventbus:3.0.0'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 27998dc..cac457a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -34,39 +34,58 @@
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
     <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
-    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
-    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
+    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
+    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
     <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- ������������ debug ������������������6.0 ��������� ������������������ -->
     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
-    <uses-permission android:name="android.permission.BLUETOOTH"/>
-    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
+    <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
 
     <application
-        android:allowBackup="true"
         android:name="com.moral.yunfushao.MainApp"
+        android:allowBackup="true"
         android:icon="@mipmap/icon"
-        tools:replace="android:icon"
-        android:label="@string/app_name"
+        android:label="${app_name}"
         android:supportsRtl="true"
-        android:theme="@style/AppTheme">
-        <activity android:name=".activity.SplashActivity"
+        android:theme="@style/AppTheme"
+        tools:replace="android:icon,android:label">
+        <activity
+            android:name=".activity.SplashActivity"
             android:theme="@style/AppWelcomeTheme">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
-        <activity android:name="com.moral.yunfushao.MainActivity" android:screenOrientation="portrait"/>
-        <activity android:name="com.moral.yunfushao.activity.ForgetPasswordActivity" android:screenOrientation="portrait"/>
-        <activity android:name="com.moral.yunfushao.activity.LoginActivity" android:screenOrientation="portrait"/>
-        <activity android:name="com.moral.yunfushao.activity.RegisterActivity" android:screenOrientation="portrait"/>
-        <activity android:name="com.moral.yunfushao.activity.BLESearchActivity" android:screenOrientation="portrait"/>
-        <activity android:name="com.moral.yunfushao.activity.VoiceSetActivity" android:screenOrientation="portrait"/>
-        <activity android:name="com.moral.yunfushao.activity.ChartActivity" android:screenOrientation="portrait"/>
-        <activity android:name="com.moral.yunfushao.activity.ChooseSongActivity" android:screenOrientation="portrait"/>
-        <activity android:name="com.moral.yunfushao.activity.TestActivity" android:screenOrientation="portrait"/>
+        <activity
+            android:name="com.moral.yunfushao.MainActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.moral.yunfushao.activity.ForgetPasswordActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.moral.yunfushao.activity.LoginActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.moral.yunfushao.activity.RegisterActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.moral.yunfushao.activity.BLESearchActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.moral.yunfushao.activity.VoiceSetActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.moral.yunfushao.activity.ChartActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.moral.yunfushao.activity.ChooseSongActivity"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name="com.moral.yunfushao.activity.TestActivity"
+            android:screenOrientation="portrait" />
 
         <service android:name=".ble.BluetoothService" />
         <meta-data
@@ -75,8 +94,7 @@
         <service
             android:name="com.baidu.location.f"
             android:enabled="true"
-            android:process=":remote" >
-        </service>
+            android:process=":remote"></service>
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java b/app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java
index bceeb16..a97f02c 100644
--- a/app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java
+++ b/app/src/main/java/com/moral/yunfushao/activity/BLESearchActivity.java
@@ -105,7 +105,10 @@
                     if (MainApp.theApp.bleManager != null) {
                         MainApp.theApp.bleManager.closeBluetoothGatt();
                     }
-                    mBluetoothService.scanAndConnect5(scanResultList.get(position).getDevice().getAddress());
+                    EventMessage eventMessage = new EventMessage();
+                    eventMessage.setType(AppConfig.BLUETOOCH_CHANGE_CONNECT);
+                    EventBus.getDefault().post(eventMessage);
+                    mBluetoothService.connectDevice(scanResultList.get(position));
                 }
             }
 
diff --git a/app/src/main/java/com/moral/yunfushao/adapter/SongAdapter.java b/app/src/main/java/com/moral/yunfushao/adapter/SongAdapter.java
index f3f1fa0..25ed224 100644
--- a/app/src/main/java/com/moral/yunfushao/adapter/SongAdapter.java
+++ b/app/src/main/java/com/moral/yunfushao/adapter/SongAdapter.java
@@ -9,7 +9,6 @@
 import com.moral.andbrickslib.baseadapter.recyclerview.base.ViewHolder;
 import com.moral.yunfushao.R;
 import com.moral.yunfushao.model.Song;
-import com.moral.yunfushao.model.VoiceBean;
 
 import java.util.List;
 
diff --git a/app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java b/app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java
index 1c2a716..81f7872 100644
--- a/app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java
+++ b/app/src/main/java/com/moral/yunfushao/ble/BluetoothService.java
@@ -154,24 +154,23 @@
             mCallback.onConnecting();
         }
 
-        System.out.println("BleGattCallback setting " + scanResult.getDevice().getAddress());
-        System.out.println("Ble onconnectSuccess");
-
         bleManager.connectDevice(scanResult, false, new BleGattCallback() {
 
             @Override
             public void onFoundDevice(ScanResult scanResult) {
+                System.out.println("chenqi blueTooth connect state -> onFoundDevice");
                 BluetoothService.this.name = scanResult.getDevice().getName();
                 BluetoothService.this.mac = scanResult.getDevice().getAddress();
             }
 
             @Override
             public void onConnecting(BluetoothGatt gatt, int status) {
-
+                System.out.println("chenqi blueTooth connect state -> onConnecting");
             }
 
             @Override
             public void onConnectError(BleException exception) {
+                System.out.println("chenqi blueTooth connect state -> onConnectError");
                 runOnMainThread(new Runnable() {
                     @Override
                     public void run() {
@@ -184,12 +183,14 @@
 
             @Override
             public void onConnectSuccess(BluetoothGatt gatt, int status) {
+                System.out.println("chenqi blueTooth connect state -> onConnectSuccess");
                 //���������������������������������MAC
                 MainApp.theApp.sharedPreferencesUtil.saveBLE(gatt.getDevice().getAddress());
             }
 
             @Override
             public void onServicesDiscovered(final BluetoothGatt gatt, int status) {
+                System.out.println("chenqi blueTooth connect state -> onServicesDiscovered");
                 BluetoothService.this.gatt = gatt;
                 runOnMainThread(new Runnable() {
                     @Override
@@ -203,6 +204,7 @@
 
             @Override
             public void onDisConnected(BluetoothGatt gatt, int status, BleException exception) {
+                System.out.println("chenqi blueTooth connect state -> onDisConnected");
                 runOnMainThread(new Runnable() {
                     @Override
                     public void run() {
diff --git a/app/src/main/java/com/moral/yunfushao/common/AppConfig.java b/app/src/main/java/com/moral/yunfushao/common/AppConfig.java
index 1a89097..d10c9ae 100644
--- a/app/src/main/java/com/moral/yunfushao/common/AppConfig.java
+++ b/app/src/main/java/com/moral/yunfushao/common/AppConfig.java
@@ -11,6 +11,7 @@
     public static final int CHANGE_SETTING = 3;
     public static final int SET_MAIN_CALL = 4;
     public static final int SET_VOICE = 5;
+    public static final int BLUETOOCH_CHANGE_CONNECT = 6;
     public static String voideUrl1 = "http://yfsapi.7drlb.com/video/boy/music.mp3";
     public static String voideUrl2 = "http://yfsapi.7drlb.com/video/boy/music1.mp3";
     public static String voideUrl3 = "http://yfsapi.7drlb.com/video/boy/music2.mp3";
diff --git a/app/src/main/java/com/moral/yunfushao/common/VersionConstants.java b/app/src/main/java/com/moral/yunfushao/common/VersionConstants.java
new file mode 100644
index 0000000..09351c9
--- /dev/null
+++ b/app/src/main/java/com/moral/yunfushao/common/VersionConstants.java
@@ -0,0 +1,12 @@
+package com.moral.yunfushao.common;
+
+/**
+ * @author : chenqi.
+ * @e_mail : 1650699704@163.com.
+ * @create_time : 2018/11/2.
+ * @Package_name: pregnancy_guard_android
+ */
+public class VersionConstants {
+    public static final String DEBUG = "debug";
+    public static final String RELEASE = "release";
+}
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 fd7ea84..e6c34c2 100644
--- a/app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java
+++ b/app/src/main/java/com/moral/yunfushao/fragment/FragmentMonitor.java
@@ -35,6 +35,7 @@
 import com.moral.andbrickslib.utils.TimeUtil;
 import com.moral.andbrickslib.utils.dialog.MaterialDialogUtils;
 import com.moral.andbrickslib.utils.log.XLog;
+import com.moral.yunfushao.BuildConfig;
 import com.moral.yunfushao.MainActivity;
 import com.moral.yunfushao.MainApp;
 import com.moral.yunfushao.R;
@@ -45,6 +46,7 @@
 import com.moral.yunfushao.ble.BluetoothService;
 import com.moral.yunfushao.common.API;
 import com.moral.yunfushao.common.AppConfig;
+import com.moral.yunfushao.common.VersionConstants;
 import com.moral.yunfushao.httputils.HttpCallBack;
 import com.moral.yunfushao.httputils.HttpUtils;
 import com.moral.yunfushao.imageload.ImageLoader;
@@ -90,6 +92,7 @@
     private ArrayList<RecData> submitResult = new ArrayList<>();
 
     private StringBuilder stringResult = new StringBuilder();
+    private String deviceName = "";//���������������������������
 
     //������������������������
     private ArrayList<RecData> submitTempResult = new ArrayList<>();
@@ -120,8 +123,10 @@
             handler.removeCallbacks(runnable);
             checkTimeCount = 0;
 
-            result = result.substring(14);
-            doHandleData(result);
+            if (result.length() > 14) {
+                result = result.substring(14);
+                doHandleData(result);
+            }
         }
 
         if (result.startsWith("3A")) {
@@ -151,7 +156,6 @@
             if (result.length() >= 76) {
                 DebugUtils.sendData("data", result);
                 parseHoutData(result.substring(0, 76));
-                mBluetoothService.write(mBluetoothService.getWirteCharacteristic().getService().getUuid().toString(), mBluetoothService.getWirteCharacteristic().getUuid().toString(), BLECommon.BLE_SEND_7A, null);
                 result = result.substring(76);
                 doHandleData(result);
             } else {
@@ -167,6 +171,7 @@
      */
     @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
     public void eventComing(EventMessage msg) {
+        System.out.println("chenqi msge -> " + msg.getType());
         if (msg.getType() == AppConfig.GET_BLE_SERVICE) {
             if (chonglianTimer != null) {
                 chonglianTimer.cancel();
@@ -190,7 +195,6 @@
                     for (BluetoothGattCharacteristic characteristic : mBluetoothService.getService().getCharacteristics()) {
                         int charaProp = characteristic.getProperties();
                         if ((charaProp & BluetoothGattCharacteristic.PROPERTY_READ) > 0) {
-
                         }
                         if ((charaProp & BluetoothGattCharacteristic.PROPERTY_WRITE) > 0 || (charaProp & BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) > 0) {
                             mBluetoothService.setWirteCharacteristic(characteristic);
@@ -199,6 +203,7 @@
                             mBluetoothService.setCharacteristic(characteristic);
                         }
                     }
+
                 }
 
                 /**
@@ -252,10 +257,6 @@
         } else if (msg.getType() == AppConfig.GET_BLE_DISCONNECT) {
             preLevel = -1;
             showStatus(-1);
-            pv.setStatusStr("���������");
-            pv.setPercent(0);
-            tv_ljjl.setText("0");
-            tv_shishi.setText("0");
             chonglian();
             stop();
             isVirating = false;
@@ -294,7 +295,8 @@
                 voiceBean.setName("������������");
                 voiceList.add(voiceBean);
             }
-
+        } else if (msg.getType() == AppConfig.BLUETOOCH_CHANGE_CONNECT) {
+            showStatus(-1);
         }
     }
 
@@ -382,14 +384,17 @@
         iv_dianliang.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                FlipAnimatorXViewShow(iv_dianliang, tv_dianliang2, 200);
+                if (BuildConfig.BUILD_TYPE.equals(VersionConstants.DEBUG)) {
+                    FlipAnimatorXViewShow(iv_dianliang, tv_dianliang2, 200);
+                }
             }
         });
         tv_dianliang2.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                FlipAnimatorXViewShow(tv_dianliang2, iv_dianliang, 200);
-
+                if (BuildConfig.BUILD_TYPE.equals(VersionConstants.DEBUG)) {
+                    FlipAnimatorXViewShow(tv_dianliang2, iv_dianliang, 200);
+                }
             }
         });
         showStatus(-1);
@@ -605,16 +610,18 @@
         int danger = R.mipmap.icon_danger;
         if (type == 1) {
             //������
-            yanzhang = R.mipmap.dianliyanyang;
-            danger = R.mipmap.dianlidanger;
-            lv_ljjl.setVisibility(View.VISIBLE);
-            tvShishiTitle.setText("������������(uSv/h)");
-        } else if (type == 2) {
-            //������
             yanzhang = R.mipmap.icon_yanzhong;
             danger = R.mipmap.icon_danger;
-            tvShishiTitle.setText("������������(V/m)");
-            lv_ljjl.setVisibility(View.GONE);
+            tvLijiTitle.setText("������������(uSv)");
+            tvShishiTitle.setText("������������(uSv/h)");
+            iv_dianliang.setEnabled(false);
+        } else if (type == 2) {
+            //������
+            yanzhang = R.mipmap.dianliyanyang;
+            danger = R.mipmap.dianlidanger;
+            tvLijiTitle.setText("������������");
+            tvShishiTitle.setText("������������");
+            iv_dianliang.setEnabled(true);
         }
 
         if (level == 0) {
@@ -662,6 +669,22 @@
             tv_status.setText("������");
             tv_status.setTextColor(getResources().getColor(R.color.gray_txt));
             ll_status.setBackgroundResource(R.mipmap.bg_corner_gray);
+            pv.setStatusStr("���������");
+            pv.setPercent(0);
+            tv_ljjl.setText("0");
+            tv_shishi.setText("0");
+            showPower(2, 0);
+        } else if (level == -2) {
+            tv_tishi.setText("���������������������");
+            tv_tishi.setBackgroundResource(R.mipmap.bt_green);
+            tv_desc.setText("������������������������");
+            iv_status.setVisibility(View.GONE);
+            tv_status.setText("���������");
+            ll_status.setBackgroundResource(R.mipmap.bg_corner_gray);
+            pv.setPercent(0);
+            pv.setStatusStr("���������");
+            tv_ljjl.setText("0");
+            tv_shishi.setText("0");
         }
     }
 
@@ -672,7 +695,6 @@
      */
     private int preLevel = -1;
 
-
     /**
      * data : 5A160000FA1C0400004100E7000700000071005B
      * format : 20������������5A������  5B������
@@ -682,6 +704,7 @@
      */
     //todo ������������������
     private void parseCurrentData(String nowResult) {
+        System.out.println("chenqi nowResult parseCurrentData");
         type = 1;
         if (!TextUtils.isEmpty(nowResult) && nowResult.length() == 40 && nowResult.startsWith("5A") && nowResult.endsWith("5B")) {
             int real = Integer.parseInt(nowResult.substring(24, 26), 16) * 256 + Integer.parseInt(nowResult.substring(26, 28), 16);
@@ -701,10 +724,6 @@
             data.setTime(TimeUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss"));
             data.setType(0);
 
-            /**
-             * ������������
-             */
-            showPower(b1, b2);
 
             if (realValue < 0.16) {
                 data.setIs_warn(0);
@@ -748,7 +767,10 @@
                     AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0);
                 }
             }
-
+            /**
+             * ������������
+             */
+            showPower(b1, b2);
             submitResult.add(data);
 //            realResult.clear();
         }
@@ -760,6 +782,7 @@
      * ������������������
      */
     private void parseHoutData(String nowResult) {
+        System.out.println("chenqi elec parseHoutData" + nowResult);
         if (TextUtils.isEmpty(nowResult)) {
             return;
         }
@@ -767,33 +790,41 @@
         String[] strings = StringUtils.splitString(nowResult, 2);
         if (strings[0].startsWith("7A") && strings[35].endsWith("7B")) {
             String realString = StringUtils.subStrings(strings, 21, 23);
-            int real = Integer.parseInt(realString, 16);
+            int electric_field = Integer.parseInt(realString, 16);
             int b1 = Integer.parseInt(strings[24], 16);
             int b2 = Integer.parseInt(strings[25], 16);
-            double realValue = NumberUtils.getBigDecimalValue((real) / 100.0, 3);
+            int baojing = Integer.parseInt(strings[29], 16);
+            int elec = Integer.parseInt(StringUtils.subStrings(strings, 13, 15));
+//            T.show("bl = " + strings[24] + " -- b2 = " + strings[25]);
+//
+//            System.out.println("bl = " + b1 + " -- b2 = " + b2);
+
+            double electricFieldValue = (electric_field) / 100.0;
+            double elecValue = (elec) / 100.0;
+
             String power = StringUtils.subStrings(strings, 26, 27);
+
             double textPower = Integer.parseInt(power, 16) / 1000.0;
+
+            tv_shishi.setText(electricFieldValue + "(V/m)");
+
             tv_dianliang2.setText(textPower + "V");
-            tv_shishi.setText(realValue + "");
+
+            tv_ljjl.setText(elecValue + "(��T)");
 
             /**
              * ���������������������
              */
             RecData data = new RecData();
-            data.setValue(realValue);
+            data.setValue(electricFieldValue);
             data.setTime(TimeUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss"));
             data.setType(0);
 
 
-            /**
-             * ������������
-             */
-            showPower(b1, b2);
             showStatus(Integer.parseInt(strings[21], 16));
 
-            if (realValue < 0.16) {
-                data.setIs_warn(0);
-                pv.setPercent((float) (realValue * (0.25 / 0.16)));
+            if (baojing == 0) {
+                pv.setPercent((float) (0.125));
                 showStatus(0);
                 stop();
                 if (isVirating) {
@@ -801,40 +832,50 @@
                     AudioUtils.virateCancle(getActivity());
                 }
                 preLevel = -1;
-            } else if (realValue >= 0.16 && realValue < 0.8) {
+            } else if (baojing == 1) {
                 data.setIs_warn(1);
-                pv.setPercent((float) (0.25 + realValue * (0.25 / 0.8)));
+                pv.setPercent((float) (0.375));
                 showStatus(1);
                 play(0);
                 if (!isVirating) {
                     isVirating = true;
                     AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0);
                 }
-            } else if (realValue >= 0.8 && realValue < 2) {
+            } else if (baojing == 2) {
                 data.setIs_warn(1);
                 showStatus(2);
-                pv.setPercent((float) (0.5 + realValue * (0.25 / 2)));
+                pv.setPercent((float) (0.625));
                 play(1);
                 if (!isVirating) {
                     isVirating = true;
                     AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0);
                 }
-            } else if (realValue >= 2) {
+            } else if (baojing == 3) {
                 data.setIs_warn(1);
                 showStatus(3);
-                if ((0.75 + realValue / 30) < 1.0) {
-                    pv.setPercent((float) (0.75 + realValue / 30));
-                } else {
-                    pv.setPercent(1.0f);
+                pv.setPercent((float) (0.875));
+                play(2);
+                if (!isVirating) {
+                    isVirating = true;
+                    AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0);
                 }
+            } else if (baojing == 4) {
+                data.setIs_warn(1);
+                showStatus(3);
+                pv.setPercent((float) (1.00));
                 play(2);
                 if (!isVirating) {
                     isVirating = true;
                     AudioUtils.vibrate(getActivity(), new long[]{1000, 1000, 1000, 1000}, 0);
                 }
             }
+            System.out.println("chenqi elec B-- " + b2);
+            /**
+             * ������������
+             */
+            showPower(b1, b2);
             submitResult.add(data);
-//            realResult.clear();
+            //            realResult.clear();
         }
     }
 
@@ -868,7 +909,6 @@
 
             ArrayList<RecData> temp = new ArrayList<>();
             temp.add(data);
-            Log.d("hourdata", "=====hourdata=====" + FastJsonTools.toJson(temp));
             test(nowResult, time.toString());
             submitHourData(temp);
         }
@@ -880,6 +920,7 @@
     private void showPower(int b1, int b2) {
         if (b1 == 1) {
             ImageLoader.setGIFByUrl(getActivity(), R.mipmap.icon_chong, iv_dianliang);
+            showStatus(-2);
         } else if (b1 == 2) {
             ImageLoader.setImageViewById(getActivity(), R.mipmap.icon_full, iv_dianliang);
         } else {
@@ -1065,7 +1106,6 @@
     }
 
     public static void FlipAnimatorXViewShow(final View oldView, final View newView, final long time) {
-
         ObjectAnimator animator1 = ObjectAnimator.ofFloat(oldView, "rotationX", 0, 90);
         final ObjectAnimator animator2 = ObjectAnimator.ofFloat(newView, "rotationX", -90, 0);
         animator2.setInterpolator(new OvershootInterpolator(2.0f));
diff --git a/app/src/main/java/com/moral/yunfushao/ui/PanelView.java b/app/src/main/java/com/moral/yunfushao/ui/PanelView.java
index edd75ff..c712411 100644
--- a/app/src/main/java/com/moral/yunfushao/ui/PanelView.java
+++ b/app/src/main/java/com/moral/yunfushao/ui/PanelView.java
@@ -1,5 +1,6 @@
 package com.moral.yunfushao.ui;
 
+import android.animation.ValueAnimator;
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
@@ -28,11 +29,11 @@
     private int mmHeight;
     //���������������������������
     private Paint mShaderPaint;
-    private int[] mshaderColor = new int[]{0xfff70e17,0xfff70e17,0xfff70e17,0xffff5c92,0xff00c44a,0xff00d062,0xff00f5af,0xff00f6cb,0xff00ccff,0xff179fff,0xffa054ff,0xffa53aff,0xffd74bff,0xfff64da5,0xfff70e17};
-    private int[] mshaderRedColor = new int[]{0xfff70e17,0xffff5c92};
-    private int[] mshaderZiseColor = new int[]{0xffa53aff,0xffd74bff,0xfff64da5};
-    private int[] mshaderBlueColor = new int[]{0xff00f6cb,0xff00ccff,0xff179fff,0xffa054ff};
-    private int[] mshaderGreenColor = new int[]{0xff00c44a,0xff00d062,0xff00f5af};
+    private int[] mshaderColor = new int[]{0xfff70e17, 0xfff70e17, 0xfff70e17, 0xffff5c92, 0xff00c44a, 0xff00d062, 0xff00f5af, 0xff00f6cb, 0xff00ccff, 0xff179fff, 0xffa054ff, 0xffa53aff, 0xffd74bff, 0xfff64da5, 0xfff70e17};
+    private int[] mshaderRedColor = new int[]{0xfff70e17, 0xffff5c92};
+    private int[] mshaderZiseColor = new int[]{0xffa53aff, 0xffd74bff, 0xfff64da5};
+    private int[] mshaderBlueColor = new int[]{0xff00f6cb, 0xff00ccff, 0xff179fff, 0xffa054ff};
+    private int[] mshaderGreenColor = new int[]{0xff00c44a, 0xff00d062, 0xff00f5af};
     //������������������������
     private SweepGradient mSweepGradient;
     private int mShaderWidth = 70;
@@ -59,7 +60,7 @@
     private Paint drawTextPaint;
     private int textColor = Color.GRAY;
     private int textSize = 36;
-    private String[] level = {"������������","������������","������������","������������"};
+    private String[] level = {"������������", "������������", "������������", "������������"};
 
     //������������
     private Paint mCirclePaint;
@@ -75,17 +76,26 @@
     private Bitmap mBitmap;
 
     private float percent = 0;//���������������
+    private float percent2 = (float) 0.27;//���������������
+
 
     private String statusStr = "���������";
+    private ValueAnimator anim;
 
-    public void setStatusStr(String statusStr){
+    public void setStatusStr(String statusStr) {
         this.statusStr = statusStr;
         postInvalidate();
     }
 
-    public void setPercent(float percent){
+    public void setPercent(float percent) {
         this.percent = percent;
+//        this.percent2 = percent;
         postInvalidate();
+//        if (anim.isStarted() || anim.isRunning()) {
+//            anim.end();
+//            anim.cancel();
+//        }
+//        anim.start();
     }
 
     public PanelView(Context context) {
@@ -106,15 +116,15 @@
     private void init(Context mContext) {
         this.mContext = mContext;
         //���������
-        mShaderWidth = dip2px(mContext,24);
-        line1Length = dip2px(mContext,14);
-        line2Length = dip2px(mContext,22);
-        lineWidth = dip2px(mContext,2);
-        widthInner = dip2px(mContext,40);
-        paddingKedu = dip2px(mContext,10);
-        mCircleWidth = dip2px(mContext,24);
-        innerPadding = dip2px(mContext,8);
-        textSize = dip2px(mContext,12);
+        mShaderWidth = dip2px(mContext, 24);
+        line1Length = dip2px(mContext, 14);
+        line2Length = dip2px(mContext, 22);
+        lineWidth = dip2px(mContext, 2);
+        widthInner = dip2px(mContext, 40);
+        paddingKedu = dip2px(mContext, 10);
+        mCircleWidth = dip2px(mContext, 24);
+        innerPadding = dip2px(mContext, 8);
+        textSize = dip2px(mContext, 12);
 
         //������������
         mShaderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
@@ -123,7 +133,7 @@
         mShaderPaint.setStrokeCap(Paint.Cap.ROUND);
         paintGapLine = new Paint(Paint.ANTI_ALIAS_FLAG);
         paintGapLine.setColor(Color.WHITE);
-        paintGapLine.setStrokeWidth(dip2px(mContext,3));
+        paintGapLine.setStrokeWidth(dip2px(mContext, 3));
         //������
         mLinePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
         mLinePaint.setStyle(Paint.Style.STROKE);
@@ -149,7 +159,8 @@
         mBitPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
         mBitPaint.setFilterBitmap(true);
         mBitPaint.setDither(true);
-        mBitmap = ((BitmapDrawable)mContext.getResources().getDrawable(R.mipmap.zhizhen)).getBitmap();
+        mBitmap = ((BitmapDrawable) mContext.getResources().getDrawable(R.mipmap.zhizhen)).getBitmap();
+//        startAnimation();
     }
 
     @Override
@@ -169,50 +180,78 @@
         } else {
             mmHeight = dip2px(mContext, 300);
         }
-        mWidth = mmWidth<mmHeight?mmWidth:mmHeight;
+        mWidth = mmWidth < mmHeight ? mmWidth : mmHeight;
         setMeasuredDimension(mmWidth, mmHeight);
     }
+
+//    private void startAnimation() {
+//        anim = ValueAnimator.ofObject(new CustomPointEvaluator(),(float)0, percent2);
+//        anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+//            @Override
+//            public void onAnimationUpdate(ValueAnimator animation) {
+//                percent = (float) animation.getAnimatedValue();
+//                System.out.println("chenqi rotato " + percent + " all -> " + percent2 * 300);
+////                invalidate();
+//            }
+//        });
+//        anim.setDuration(3000L);
+//        anim.setRepeatCount(Animation.INFINITE);
+//    }
+//
+//    private class CustomPointEvaluator implements TypeEvaluator<Float> {
+//        @Override
+//        public Float evaluate(float fraction, Float startValue, Float endValue) {
+//            System.out.println("chenqi2 rotato " + fraction + " all -> " + endValue);
+//            float y = fraction * endValue;
+//            return y;
+//        }
+//    }
+
 
     @Override
     protected void onDraw(Canvas canvas) {
         super.onDraw(canvas);
-         //���������
+        //���������
         drawKedu(canvas);
         //���������������
         drawTextKedu(canvas);
         //���������������
         drawJianbianCircle(canvas);
         //���������
-        RectF cirlcleRect = new RectF(mShaderWidth + widthInner+mCircleWidth+innerPadding, mShaderWidth + widthInner+mCircleWidth+innerPadding, mWidth - mShaderWidth - widthInner-mCircleWidth-innerPadding, mWidth - mShaderWidth - widthInner-mCircleWidth-innerPadding);
+        RectF cirlcleRect = new RectF(mShaderWidth + widthInner + mCircleWidth + innerPadding, mShaderWidth + widthInner + mCircleWidth + innerPadding, mWidth - mShaderWidth - widthInner - mCircleWidth - innerPadding, mWidth - mShaderWidth - widthInner - mCircleWidth - innerPadding);
         canvas.drawArc(cirlcleRect, 0, 360, false, mCirclePaint);
         //���������
-        float circleR = (cirlcleRect.right - cirlcleRect.left)/2;
+        float circleR = (cirlcleRect.right - cirlcleRect.left) / 2;
         float bitH = circleR;
-        float bitW = bitH*0.448f;
+        float bitW = bitH * 0.448f;
         canvas.save();
-        canvas.rotate(percent*300-150,mWidth/2,mWidth/2);
-        RectF btmRect = new RectF((float) (cirlcleRect.left+bitH-bitW*0.535), (float) (cirlcleRect.top+mCircleWidth*0.68),(float) (cirlcleRect.left+bitH+bitW*0.465), (float) (cirlcleRect.top+bitH+mCircleWidth*0.68));
+
+        System.out.println("chenqi percent connect" + percent);
+        canvas.rotate(percent * 300 - 150, mWidth / 2, mWidth / 2);
+        RectF btmRect = new RectF((float) (cirlcleRect.left + bitH - bitW * 0.535), (float) (cirlcleRect.top + mCircleWidth * 0.68), (float) (cirlcleRect.left + bitH + bitW * 0.465), (float) (cirlcleRect.top + bitH + mCircleWidth * 0.68));
 //        Log.d("haijiang","left="+btmRect.left);
 //        Log.d("haijiang","right="+btmRect.right);
 //        Log.d("haijiang","top="+btmRect.top);
 //        Log.d("haijiang","bottom="+btmRect.bottom);
 //        Log.d("haijiang","������������="+(btmRect.right-btmRect.left)/(btmRect.bottom-btmRect.top));
-        canvas.drawBitmap(mBitmap,null,btmRect,mBitPaint);
+        canvas.drawBitmap(mBitmap, null, btmRect, mBitPaint);
         canvas.restore();
 
         drawTextPaint.setColor(line3Color);
         drawTextPaint.setTextSize(textSize);
         int statusStrWidth = (int) drawTextPaint.measureText(this.statusStr);
-        canvas.drawText(this.statusStr,mWidth / 2-statusStrWidth/2, mWidth/2+(btmRect.bottom-btmRect.top)/2,drawTextPaint);
-       if(percent>0)
-          canvas.drawArc(new RectF(mShaderWidth + widthInner+mCircleWidth+innerPadding, mShaderWidth + widthInner+mCircleWidth+innerPadding, mWidth - mShaderWidth - widthInner-mCircleWidth-innerPadding, mWidth - mShaderWidth - widthInner-mCircleWidth-innerPadding), 120, 300*percent, false, mProgressPaint);
+        canvas.drawText(this.statusStr, mWidth / 2 - statusStrWidth / 2, mWidth / 2 + (btmRect.bottom - btmRect.top) / 2, drawTextPaint);
+        if (percent > 0)
+            canvas.drawArc(new RectF(mShaderWidth + widthInner + mCircleWidth + innerPadding, mShaderWidth + widthInner + mCircleWidth + innerPadding, mWidth - mShaderWidth - widthInner - mCircleWidth - innerPadding, mWidth - mShaderWidth - widthInner - mCircleWidth - innerPadding),
+                    120, 300 * percent, false, mProgressPaint);
     }
 
     /**
      * ���������
+     *
      * @param canvas
      */
-    private void drawKedu(Canvas canvas){
+    private void drawKedu(Canvas canvas) {
         //���������������
         for (int i = 0; i <= 50; i++) {
             canvas.save();
@@ -245,85 +284,86 @@
 
     /**
      * ���������������
+     *
      * @param canvas
      */
-    private void drawTextKedu(Canvas canvas){
-        for(int i=0;i<level.length;i++){
+    private void drawTextKedu(Canvas canvas) {
+        for (int i = 0; i < level.length; i++) {
             float textWidth = drawTextPaint.measureText(level[i]);
-            if(percent<0.25){
-                if(i==0){
+            if (percent < 0.25) {
+                if (i == 0) {
                     drawTextPaint.setColor(line3Color);
-                }else{
+                } else {
                     drawTextPaint.setColor(Color.GRAY);
                 }
                 canvas.save();
-                if(i==0){
-                    canvas.rotate(-120,mWidth/2,mWidth/2);
-                }else if(i==1){
-                    canvas.rotate(-45,mWidth/2,mWidth/2);
-                }else if(i==2){
-                    canvas.rotate(45,mWidth/2,mWidth/2);
-                }else if(i==3){
-                    canvas.rotate(120,mWidth/2,mWidth/2);
+                if (i == 0) {
+                    canvas.rotate(-120, mWidth / 2, mWidth / 2);
+                } else if (i == 1) {
+                    canvas.rotate(-45, mWidth / 2, mWidth / 2);
+                } else if (i == 2) {
+                    canvas.rotate(45, mWidth / 2, mWidth / 2);
+                } else if (i == 3) {
+                    canvas.rotate(120, mWidth / 2, mWidth / 2);
                 }
-                canvas.drawText(level[i],mWidth / 2-textWidth/2, paddingKedu+line2Length+textSize,drawTextPaint);
+                canvas.drawText(level[i], mWidth / 2 - textWidth / 2, paddingKedu + line2Length + textSize, drawTextPaint);
                 canvas.restore();
-            }else if(percent>=0.25&&percent<0.5){
-                if(i==1){
+            } else if (percent >= 0.25 && percent < 0.5) {
+                if (i == 1) {
                     drawTextPaint.setColor(line3Color);
-                }else{
+                } else {
                     drawTextPaint.setColor(Color.GRAY);
                 }
                 canvas.save();
 //                canvas.rotate(-120+i*75,mWidth/2,mWidth/2);
-                if(i==0){
-                    canvas.rotate(-120,mWidth/2,mWidth/2);
-                }else if(i==1){
-                    canvas.rotate(-45,mWidth/2,mWidth/2);
-                }else if(i==2){
-                    canvas.rotate(45,mWidth/2,mWidth/2);
-                }else if(i==3){
-                    canvas.rotate(120,mWidth/2,mWidth/2);
+                if (i == 0) {
+                    canvas.rotate(-120, mWidth / 2, mWidth / 2);
+                } else if (i == 1) {
+                    canvas.rotate(-45, mWidth / 2, mWidth / 2);
+                } else if (i == 2) {
+                    canvas.rotate(45, mWidth / 2, mWidth / 2);
+                } else if (i == 3) {
+                    canvas.rotate(120, mWidth / 2, mWidth / 2);
                 }
-                canvas.drawText(level[i],mWidth / 2-textWidth/2, paddingKedu+line2Length+textSize,drawTextPaint);
+                canvas.drawText(level[i], mWidth / 2 - textWidth / 2, paddingKedu + line2Length + textSize, drawTextPaint);
                 canvas.restore();
-            }else if(percent>=0.5&&percent<0.75){
-                if(i==2){
+            } else if (percent >= 0.5 && percent < 0.75) {
+                if (i == 2) {
                     drawTextPaint.setColor(line3Color);
-                }else{
+                } else {
                     drawTextPaint.setColor(Color.GRAY);
                 }
                 canvas.save();
 //                canvas.rotate(-120+i*75,mWidth/2,mWidth/2);
-                if(i==0){
-                    canvas.rotate(-120,mWidth/2,mWidth/2);
-                }else if(i==1){
-                    canvas.rotate(-45,mWidth/2,mWidth/2);
-                }else if(i==2){
-                    canvas.rotate(45,mWidth/2,mWidth/2);
-                }else if(i==3){
-                    canvas.rotate(120,mWidth/2,mWidth/2);
+                if (i == 0) {
+                    canvas.rotate(-120, mWidth / 2, mWidth / 2);
+                } else if (i == 1) {
+                    canvas.rotate(-45, mWidth / 2, mWidth / 2);
+                } else if (i == 2) {
+                    canvas.rotate(45, mWidth / 2, mWidth / 2);
+                } else if (i == 3) {
+                    canvas.rotate(120, mWidth / 2, mWidth / 2);
                 }
-                canvas.drawText(level[i],mWidth / 2-textWidth/2, paddingKedu+line2Length+textSize,drawTextPaint);
+                canvas.drawText(level[i], mWidth / 2 - textWidth / 2, paddingKedu + line2Length + textSize, drawTextPaint);
                 canvas.restore();
-            }else if(percent>=0.75){
-                if(i==3){
+            } else if (percent >= 0.75) {
+                if (i == 3) {
                     drawTextPaint.setColor(line3Color);
-                }else{
+                } else {
                     drawTextPaint.setColor(Color.GRAY);
                 }
                 canvas.save();
 //                canvas.rotate(-105+i*75,mWidth/2,mWidth/2);
-                if(i==0){
-                    canvas.rotate(-120,mWidth/2,mWidth/2);
-                }else if(i==1){
-                    canvas.rotate(-45,mWidth/2,mWidth/2);
-                }else if(i==2){
-                    canvas.rotate(45,mWidth/2,mWidth/2);
-                }else if(i==3){
-                    canvas.rotate(120,mWidth/2,mWidth/2);
+                if (i == 0) {
+                    canvas.rotate(-120, mWidth / 2, mWidth / 2);
+                } else if (i == 1) {
+                    canvas.rotate(-45, mWidth / 2, mWidth / 2);
+                } else if (i == 2) {
+                    canvas.rotate(45, mWidth / 2, mWidth / 2);
+                } else if (i == 3) {
+                    canvas.rotate(120, mWidth / 2, mWidth / 2);
                 }
-                canvas.drawText(level[i],mWidth / 2-textWidth/2, paddingKedu+line2Length+textSize,drawTextPaint);
+                canvas.drawText(level[i], mWidth / 2 - textWidth / 2, paddingKedu + line2Length + textSize, drawTextPaint);
                 canvas.restore();
             }
         }
@@ -331,24 +371,25 @@
 
     /**
      * ���������������
+     *
      * @param canvas
      */
-    private void drawJianbianCircle(Canvas canvas){
+    private void drawJianbianCircle(Canvas canvas) {
         mSweepGradient = new SweepGradient(mWidth / 2, mWidth / 2, mshaderColor, null);
         mShaderPaint.setShader(mSweepGradient);
         canvas.drawArc(new RectF(mShaderWidth + widthInner, mShaderWidth + widthInner, mWidth - mShaderWidth - widthInner, mWidth - mShaderWidth - widthInner), 120, 300, false, mShaderPaint);
         //���������������
         canvas.save();
         canvas.rotate(75, mWidth / 2, mWidth / 2);
-        canvas.drawLine(mWidth / 2, line2Length + paddingKedu*3, mWidth / 2, (float) (line2Length + paddingKedu*0.65+mShaderWidth*2), paintGapLine);
+        canvas.drawLine(mWidth / 2, line2Length + paddingKedu * 3, mWidth / 2, (float) (line2Length + paddingKedu * 0.65 + mShaderWidth * 2), paintGapLine);
         canvas.restore();
         canvas.save();
         canvas.rotate(0, mWidth / 2, mWidth / 2);
-        canvas.drawLine(mWidth / 2, line2Length + paddingKedu*3, mWidth / 2, (float) (line2Length + paddingKedu*0.65+mShaderWidth*2), paintGapLine);
+        canvas.drawLine(mWidth / 2, line2Length + paddingKedu * 3, mWidth / 2, (float) (line2Length + paddingKedu * 0.65 + mShaderWidth * 2), paintGapLine);
         canvas.restore();
         canvas.save();
         canvas.rotate(-75, mWidth / 2, mWidth / 2);
-        canvas.drawLine(mWidth / 2, line2Length + paddingKedu*3, mWidth / 2, (float) (line2Length + paddingKedu*0.65+mShaderWidth*2), paintGapLine);
+        canvas.drawLine(mWidth / 2, line2Length + paddingKedu * 3, mWidth / 2, (float) (line2Length + paddingKedu * 0.65 + mShaderWidth * 2), paintGapLine);
         canvas.restore();
     }
 
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9cd1f3f..11e3d96 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,5 +1,6 @@
 <resources>
     <string name="app_name">���������</string>
+    <string name="app_name_text">���������Text</string>
     <string name="action_settings">Settings</string>
 
     <string name="soft_update_no">���������������������</string>
diff --git a/gradlew b/gradlew
old mode 100644
new mode 100755

--
Gitblit v1.8.0