From 024cca3104304a6ed52123f3616a8d43ef837436 Mon Sep 17 00:00:00 2001 From: liuguijing <1440265357@qq.com> Date: Wed, 7 May 2025 20:08:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95getInt=E9=94=81=E4=BD=8F?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xypower/mpapp/MicroPhotoService.java | 3 + .../com/xypower/mpmaster/MpMasterService.java | 60 ++++++++++++++++++- 2 files changed, 60 insertions(+), 3 deletions(-) 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();