diff --git a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java index 4d2f29a2..68723511 100644 --- a/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java +++ b/app/src/main/java/com/xypower/mpapp/MicroPhotoService.java @@ -460,6 +460,9 @@ public class MicroPhotoService extends Service { private void ProcessReceivedAction(final Context context, final Intent intent) { String action = intent.getAction(); + infoLog("MpApp验证电压读取的问题开始"); + int gpioInt = getGpioInt(117); + infoLog("MpApp验证电压读取的问题结束:" + gpioInt); if (TextUtils.equals(ACTION_HEARTBEAT, action)) { long ts = System.currentTimeMillis(); long expectedHbTime = intent.getLongExtra("HeartbeatTime", ts); diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java index 047c64ce..9055b25d 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MpMasterService.java @@ -233,6 +233,8 @@ public class MpMasterService extends Service { mPreviousMpHbTime = System.currentTimeMillis(); mTimeToStartMpApp = mPreviousMpHbTime; + buildChargingBatteryVoltage(System.currentTimeMillis()); + logger.info("MpMaster started version=" + mMpMasterVersion); mHander = new Handler(); @@ -333,7 +335,9 @@ public class MpMasterService extends Service { } catch (Exception ex) { } } - + if (batterySingleThread != null) { + batterySingleThread.shutdown(); + } super.onDestroy(); } @@ -665,6 +669,8 @@ public class MpMasterService extends Service { mService.mPreviousHeartbeatTime = 0; mService.registerHeartbeatTimer(); + mService.buildChargingBatteryVoltage(System.currentTimeMillis()); + if (!keepAlive) { mService.startMaster(false); } @@ -1083,6 +1089,44 @@ public class MpMasterService extends Service { return signalLevel; } + public static String getBatteryVoltage() { + int val = 0; + for (int idx = 0; idx < 3; idx++) { + val = MpMasterService.getInt(117); + if (val > 0) { + return Integer.toString(val / 1000) + "." + Integer.toString((val % 1000) / 100); + } + } + + return ""; + } + + private void buildChargingBatteryVoltage(long ts) { + batterySingleThread = SingletonThread.getInstance(); + batterySingleThread.execute(new Runnable() { + @Override + public void run() { + logger.info("电压线程开始"); + int val = 0; + for (int idx = 0; idx < 3; idx++) { + logger.info("电压测试第" + idx + "次开始读取"); + val = MpMasterService.getInt(112); + logger.info("电压测试第" + idx + "次读取结束 " + val); + if (val > 0) { + break; + } + } + if (val > 0) { + if (val > mMaxBCV) { + mMaxBCV = val; + mMaxBCVTime = ts; + } + } + } + }); + + } + public String getAndResetMaxBCV() { String val = Integer.toString(mMaxBCV / 1000) + "." + Integer.toString((mMaxBCV % 1000) / 100) + "/" + Long.toString(mMaxBCVTime / 1000); @@ -1093,6 +1137,18 @@ public class MpMasterService extends Service { return val; } + public static String getChargingBatteryVoltage() { + int val = 0; + for (int idx = 0; idx < 3; idx++) { + val = MpMasterService.getInt(112); + if (val > 0) { + return Integer.toString(val / 1000) + "." + Integer.toString((val % 1000) / 100); + } + } + + return ""; + } + public void downloadAndInstall(final String url) { final Context context = getApplicationContext(); @@ -1488,8 +1544,6 @@ public class MpMasterService extends Service { public native static int[] getStats(long ts); - public native static long[] getBatteryInfo(); - public native static String getSystemProperty(String key); public native static void rebootDevice();