From: snickersun Date: Thu, 6 Feb 2020 16:44:06 +0000 (+0800) Subject: 1、PPG定时测试功能完成 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=7b76039e22b5063305f43cdf41a08650bb1e7afe;p=protocol_srv.git 1、PPG定时测试功能完成 2、修复Fota本地升级包升级失败的问题 3、优化定位逻辑,使其可以适应单独设置随意间隔,不过没有服务器命令窗口,还未测试 --- diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ecd63bed..80fba61b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -117,10 +117,9 @@ - + diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index 83f2bd23..0c04a7d0 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -107,12 +107,24 @@ public class CoreService extends Service { public String getServerAlive(){ + int ppg=ICJniUtils.getPPG(); return new StringBuilder() - .append(TimeUtil.getLocalTime()) - .append(" Connecttion status is ").append(this.connection.isServerConnected()) - .append("\n KeepAlive ").append(KeepAlive.isConnected) - .append( "\n Working Mode ").append(runtime.getLocationInstance().getWorkingMod()).append(" StepCount ").append(runtime.getTotalStepCount()) - .append("\n AP01 = ").append(protocolAPIHelper.AP01(runtime)) + .append(TimeUtil.getSystemTime3()) + .append("\n ppgExist ").append(ICJniUtils.isPPGavailable()) + .append(", Started ").append(ICJniUtils.isPPGStarted()) + .append(",weared ").append(ICJniUtils.isWeared()) + .append(",ppg ").append(ppg) + .append(",bph ").append(ICJniUtils.getHighBloodPressure()) + .append(",bpl ").append(ICJniUtils.getLowBloodPressure()) + .append("\n Connecttion ").append(this.connection.isServerConnected()) + .append(" KeepAlive ").append(KeepAlive.isConnected) + .append("\n ServerConnected is ").append(runtime.isServerProtocolConnected()) + .append(" \n StepCount ").append(runtime.getTotalStepCount()) + .append( "\n Working Mode ").append(runtime.getLocationInstance().getWorkingMod()) + .append(" \n Location Cycle ").append(runtime.getLocationInstance().getLocation_cycle()) + .append(" \n LocationType ").append(runtime.getLocationInstance().getLocationType()) + .append(" at ").append(runtime.getLocationInstance().getLocationTime()) + .append(" \n PPGTestCycle ").append(runtime.getPpgTestCycle()) .toString(); } @@ -605,15 +617,8 @@ public class CoreService extends Service { } if(ACTION_HEATR_RATE_START.equals(paramIntent.getAction())){ - //此消息来源于BroadCaset以及Timer,收到开始测试的消息,马上发送消息给HeartRateManager开始测试。 - //此时需要重置HeartRateDetect Timer - //倘若有 参数 PPGTestCycle,则根据这个数值进行设置 - int ppgtestCycle=paramIntent.getIntExtra("PPGTestCycle",-1); - if (ppgtestCycle >0){ - Config.setPPGTestCycle(this,ppgtestCycle); - runtime.setPpgTestCycle(Config.getPPGTestCycle(this)); - Logger.i("get and set PPGTestCycle "+ppgtestCycle); - } + + //此处消息从timer来 setHeartRateDetectAlarm(runtime.getPpgTestCycle()); this.invokeHandlerServiceChain.processUserRequest(paramIntent, this.connection, this.runtime); diff --git a/app/src/main/java/com/enqualcomm/support/LocationClient.java b/app/src/main/java/com/enqualcomm/support/LocationClient.java index 6beaf95a..132d86ce 100644 --- a/app/src/main/java/com/enqualcomm/support/LocationClient.java +++ b/app/src/main/java/com/enqualcomm/support/LocationClient.java @@ -287,11 +287,21 @@ public class LocationClient { Deliver.sendLocationMSG(AP01_CMD); + + if (mTimer!=null){ mTimer.cancel(); mTimer=null; } isLocating = false; + String locationtype="LBS"; + if (gps_ok ){ + locationtype="GPS"; + }else if (wifi_ok){ + locationtype="WiFi"; + } + runtime.getLocationInstance().setLocationType(locationtype); + runtime.getLocationInstance().setLocationTime(TimeUtil.getSystemTime3()); }else if (timeout==true){ Logger.i("timeout no location "); isLocating = false; @@ -315,6 +325,14 @@ public class LocationClient { mTimer=null; } isLocating = false; + + String locationtype="LBS"; + if (wifi_ok){ + locationtype="WiFi"; + } + runtime.getLocationInstance().setLocationType(locationtype); + runtime.getLocationInstance().setLocationTime(TimeUtil.getSystemTime3()); + }else if (timeout==true){ Logger.i("timeout no location "); isLocating = false; diff --git a/app/src/main/java/com/enqualcomm/support/MainActivity.java b/app/src/main/java/com/enqualcomm/support/MainActivity.java index b33bc394..9fb2dfbc 100644 --- a/app/src/main/java/com/enqualcomm/support/MainActivity.java +++ b/app/src/main/java/com/enqualcomm/support/MainActivity.java @@ -36,15 +36,6 @@ public class MainActivity extends AppCompatActivity { try { if (showmessage) { - sb.append("ppg is available ").append(ICJniUtils.isPPGavailable()) - .append(", ppg isstarted ").append(ICJniUtils.isPPGStarted()) - .append(",ppg ").append(ICJniUtils.getPPG()) - .append("weared ").append(ICJniUtils.isWeared()) - .append(",spo2 ").append(ICJniUtils.getSPO2()) - .append(",bph ").append(ICJniUtils.getHighBloodPressure()) - .append(",bpl ").append(ICJniUtils.getLowBloodPressure()) - .append("\n"); - sb.append(CoreService.getInstance().getServerAlive()); tv.setText(sb.toString()); } diff --git a/app/src/main/java/com/enqualcomm/support/adapter/protocolAPIHelper.java b/app/src/main/java/com/enqualcomm/support/adapter/protocolAPIHelper.java index fa87037b..9452c312 100644 --- a/app/src/main/java/com/enqualcomm/support/adapter/protocolAPIHelper.java +++ b/app/src/main/java/com/enqualcomm/support/adapter/protocolAPIHelper.java @@ -8,6 +8,8 @@ import android.os.Messenger; import android.util.Log; import com.enqualcomm.support.Config; +import com.enqualcomm.support.Constants; +import com.enqualcomm.support.LocationClient; import com.enqualcomm.support.bean.Contact; import com.enqualcomm.support.bean.Content; import com.enqualcomm.support.bean.ICLocation; @@ -326,6 +328,7 @@ public class protocolAPIHelper { } //处理 心跳 BP03 public void handleBP03(String cmd){ + log("BP03心跳接收成功"); } @@ -915,6 +918,7 @@ public class protocolAPIHelper { Config.setLocationCycle(runtime.getContextProxy().context,Cycle); runtime.getLocationInstance().setLocation_cycle(Cycle); runtime.getLocationInstance().setWorkingMod(mod); +// CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod()); //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。 } @@ -1066,6 +1070,14 @@ public static String AP15(String index){ String time=list[3]; connection.send(protocolAPIHelper.genStringMessage("AP15",AP15(index))); Logger.i("BP15 , 定位周期="+time+"分钟"); + + Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD); + Config.setLocationCycle(runtime.getContextProxy().context,Integer.valueOf(time)); + runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context)); + runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context)); + CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod()); + + }else{ Logger.i("BP15 format error"); } diff --git a/app/src/main/java/com/enqualcomm/support/bean/ICLocation.java b/app/src/main/java/com/enqualcomm/support/bean/ICLocation.java index b8af069c..bb0addef 100644 --- a/app/src/main/java/com/enqualcomm/support/bean/ICLocation.java +++ b/app/src/main/java/com/enqualcomm/support/bean/ICLocation.java @@ -40,7 +40,7 @@ public class ICLocation { private int location_cycle; public void setWorkingMod(int wkmod){ mworkingMod=wkmod;} - public void setLocation_cycle(int locatCycle){ locatCycle=locatCycle;} + public void setLocation_cycle(int _locatCycle){ location_cycle=_locatCycle;} public int getWorkingMod(){return mworkingMod;} public int getLocation_cycle(){return location_cycle;} @@ -76,7 +76,22 @@ public class ICLocation { public LOCATION_STAT getLocationStat(){ return currentStat; } + private String LocationTime; + public void setLocationTime(String time){ + LocationTime=time; + } + public String getLocationTime(){ + return LocationTime; + } + private String LocationType; + public void setLocationType(String type){ + + LocationType=type; + } + public String getLocationType(){ + return LocationType; + } public GPS_LocationPoint getLocation(){ return currentLP; } diff --git a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java index a5867ab7..e6dfe08f 100644 --- a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java +++ b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java @@ -39,7 +39,7 @@ public class Runtime { private String currentCellInfo; // public String currentWifiInfo=""; - private int ppgTestCycle; + private static int ppgTestCycle; private DBHelper dbHelper; @@ -89,6 +89,15 @@ public class Runtime { private boolean UseQueue=false; private boolean lockSimInfo=false; + private boolean ServerHeartBeadReceived=false; + + public void setServerProtocolConnected(boolean received){ + ServerHeartBeadReceived=received; + } + + public boolean isServerProtocolConnected(){ + return ServerHeartBeadReceived; + } public void setPpgTestCycle(int cycle){ ppgTestCycle=cycle; @@ -203,7 +212,7 @@ public class Runtime { public boolean getHaveBatteryChange() { return this.haveBatteryChange; } - + public String getHost() { return this.testServerProp ? srvIP : this.host; } public void setSrvIP(String ip) { this.srvIP=ip;} diff --git a/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java b/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java index 4ec918d5..a4e4aaf0 100644 --- a/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java +++ b/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java @@ -11,7 +11,9 @@ import android.os.Message; import android.os.Messenger; import android.os.PowerManager; +import com.enqualcomm.support.Config; import com.enqualcomm.support.Constants; +import com.enqualcomm.support.CoreService; import com.ic.jni.ICJniUtils; import com.enqualcomm.support.LocationClient; import com.enqualcomm.support.adapter.protocolAPIHelper; @@ -92,8 +94,21 @@ public class HeartRateManager extends AbstractInvokeHandlerService { private BroadcastReceiver PPGStartReceiver = new BroadcastReceiver() { public void onReceive(Context param1Context, Intent param1Intent) { if (ACTION_HEATR_RATE_START.equals(param1Intent.getAction())) { - HeartRateManager.this.startPPG(); + + //此消息来源于BroadCaset,收到开始测试的消息。 + //此时需要重置HeartRateDetect Timer + //倘若有 参数 PPGTestCycle,则根据这个数值进行设置 + int ppgtestCycle=param1Intent.getIntExtra("PPGTestCycle",-1); + if (ppgtestCycle >0){ + Config.setPPGTestCycle(runtime.getContextProxy().context,ppgtestCycle); + runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context)); + Logger.i("get and set PPGTestCycle "+ppgtestCycle); + } + CoreService.getInstance().setHeartRateDetectAlarm(runtime.getPpgTestCycle()); + HeartRateManager.this.startPPG(); } + + } }; diff --git a/app/src/main/java/com/enqualcomm/support/service/Initialize.java b/app/src/main/java/com/enqualcomm/support/service/Initialize.java index 618189f2..ec9b80bd 100644 --- a/app/src/main/java/com/enqualcomm/support/service/Initialize.java +++ b/app/src/main/java/com/enqualcomm/support/service/Initialize.java @@ -89,8 +89,9 @@ public class Initialize extends AbstractConnectionService { Logger.i(stringBuilder.toString()); Config.sw_release_no = DeviceInfoUtil.getCustomId(); //发送登录包 - StringMessage stringMessage=new StringMessage(protocolAPIHelper.AP00(paramRuntime)); - paramConnection.send(stringMessage); + paramConnection.send(new StringMessage(protocolAPIHelper.AP00(paramRuntime))); +// paramConnection.send(new StringMessage(protocolAPIHelper.AP00(paramRuntime))); +// paramConnection.send(new StringMessage(protocolAPIHelper.AP00(paramRuntime))); return false; } diff --git a/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java b/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java index 1222c4bc..50c72782 100644 --- a/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java +++ b/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java @@ -142,6 +142,7 @@ public class KeepAlive extends AbstractConnectionService { CoreService.getInstance().startConnectionRetryTimer(); connectionError = true; isConnected = false; + paramRuntime.setServerProtocolConnected(false); paramRuntime.getContextProxy().sendBroadcast(isConnected); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("onConnectionClose="); @@ -164,6 +165,8 @@ public class KeepAlive extends AbstractConnectionService { connectionError = false; // connection.send(protocolAPIHelper.genStringMessage("AP00",protocolAPIHelper.AP00(paramRuntime))); connection.send(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime))); + connection.send(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime))); + connection.send(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime))); // if (Deliver.haveSendH42) { // ServiceUtil.offerQueue(new StringMessage(protocolAPIHelper.AP03(paramRuntime))); // Deliver.haveSendH42 = false; @@ -173,9 +176,7 @@ public class KeepAlive extends AbstractConnectionService { isConnected = true; this.firstReConnected = true; this.idleTimeMillis = SystemClock.elapsedRealtime(); - paramRuntime.getContextProxy().sendBroadcast(isConnected); - LauncherCtrl.getInstance(this.mContext).setStatusBarIcon("server_connected", STATUS_BAR_STATE_SERVER_CONNECTED_ON); return false; } @@ -192,7 +193,8 @@ public class KeepAlive extends AbstractConnectionService { // if (this.reCycleTimes == 0 && this.currentReConnectInterval != 11){ // paramNettyConnection.send(protocolAPIHelper.genStringMessage("AP00",protocolAPIHelper.AP00(paramRuntime))); paramNettyConnection.send(protocolAPIHelper.genStringMessage("heart",protocolAPIHelper.AP03(paramRuntime))); - // } + + // } } @@ -201,6 +203,11 @@ public class KeepAlive extends AbstractConnectionService { if ("heart".equals(paramStringMessage.cmd())) { AlarmWakeUp.isNeedWakeUpAlarm(paramRuntime); return true; + }else if ("BP03".equals(paramStringMessage.cmd())){ +// 收到心跳才认为是已经连接了服务器 + paramRuntime.setServerProtocolConnected(true); + paramRuntime.getContextProxy().sendBroadcast(isConnected); + LauncherCtrl.getInstance(this.mContext).setStatusBarIcon("server_connected", STATUS_BAR_STATE_SERVER_CONNECTED_ON); } return false; } diff --git a/app/src/main/java/com/enqualcomm/support/utils/NettyConnection.java b/app/src/main/java/com/enqualcomm/support/utils/NettyConnection.java index 932b6436..f731b966 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/NettyConnection.java +++ b/app/src/main/java/com/enqualcomm/support/utils/NettyConnection.java @@ -67,7 +67,6 @@ public class NettyConnection implements Connection { API.handleBP03(cmd); Logger.i("服务器收到心跳AP03"); DeliverCMDMessageToSystem("BP03",cmd);//通知下面线程状态变化 - break; case BP07: diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 87a9f753..59c8af67 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,10 +4,11 @@ android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" - android:paddingBottom="@dimen/activity_vertical_margin" + android:isScrollContainer="false" android:paddingLeft="@dimen/activity_horizontal_margin" - android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" + android:paddingRight="@dimen/activity_horizontal_margin" + android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.enqualcomm.support.MainActivity"> @@ -62,20 +64,34 @@ + android:orientation="vertical" + android:scrollbarStyle="insideOverlay" + android:scrollbars="horizontal|vertical"> - + android:layout_height="match_parent"> + + + + + + + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 5885930d..cfa7e8fe 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -6,6 +6,9 @@ @color/colorPrimary @color/colorPrimaryDark @color/colorAccent + true + true + diff --git a/app/version_code.properties b/app/version_code.properties index 13edcd71..d4c99a49 100644 --- a/app/version_code.properties +++ b/app/version_code.properties @@ -1,2 +1,2 @@ -#Wed Feb 05 20:55:30 CST 2020 -VERSION_CODE=343 +#Thu Feb 06 18:30:25 CST 2020 +VERSION_CODE=344