From: snickersun Date: Sun, 30 Aug 2020 15:51:31 +0000 (+0800) Subject: 1、protocol_jiai 添加AP94,BP93 两个命令 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=09e9677155442bb4f4c24587bad22a02d3afd1ed;p=protocol_srv.git 1、protocol_jiai 添加AP94,BP93 两个命令 2、重构所有protocol API把 所有协议生成的字符串,都改为StringMessage变量。以便兼容Mqtt。 --- diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index 7edaf306..60244b9c 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -204,7 +204,7 @@ public class CoreService extends Service { runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS); //trigger AP10 报警定位 // CoreService.this.locationClient.triggerSOSLocationProcess(); - connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(runtime))); + connection.send(protocolAPIHelper.getWarningMSG(runtime)); //开启紧急定位模式,GPS 优先1分钟一次定位,持续5分钟 runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD); diff --git a/app/src/main/java/com/enqualcomm/support/LocationClient.java b/app/src/main/java/com/enqualcomm/support/LocationClient.java index 9030867f..77cd7cc0 100644 --- a/app/src/main/java/com/enqualcomm/support/LocationClient.java +++ b/app/src/main/java/com/enqualcomm/support/LocationClient.java @@ -358,7 +358,7 @@ public class LocationClient { ||(lbs_ok&&gps_nosignal&&wifi_ok) ){ if (startSOSLocation==true){ - String AP10_CMD = protocolAPIHelper.getWarningMSG(runtime); + StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime); Deliver.sendLocationMSG(AP10_CMD); startSOSLocation=false; }else { @@ -432,7 +432,7 @@ public class LocationClient { if (startSOSLocation==true){ - String AP10_CMD = protocolAPIHelper.getWarningMSG(runtime); + StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime); Deliver.sendLocationMSG(AP10_CMD); startSOSLocation=false; @@ -777,7 +777,7 @@ public void updateCellInfo() { if (runtime.getBatteryLow()) { runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY); //trigger AP10 报警低电 - connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(runtime))); + connection.send(protocolAPIHelper.getWarningMSG(runtime)); } this.batteryLowNotification = true; diff --git a/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java b/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java index ccb91589..ac4e4937 100644 --- a/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java +++ b/app/src/main/java/com/enqualcomm/support/service/AntiMonitorService.java @@ -15,6 +15,7 @@ import com.enqualcomm.support.Config; import com.enqualcomm.support.CoreService; import com.enqualcomm.support.R; import com.enqualcomm.support.bean.Runtime; +import com.enqualcomm.support.bean.StringMessage; import com.enqualcomm.support.service.base.AbstractInvokeHandlerService; import com.enqualcomm.support.utils.Connection; import com.enqualcomm.support.utils.ICLogger; @@ -93,7 +94,7 @@ public class AntiMonitorService extends AbstractInvokeHandlerService { } mRuntime.Anti_off_flag=0; mRuntime.setAlarmType(Runtime.AlarmType.ALARM_WEARED); - String msg=protocolAPIHelper.getWarningMSG(mRuntime); + StringMessage msg=protocolAPIHelper.getWarningMSG(mRuntime); Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送! // try { @@ -117,7 +118,7 @@ public class AntiMonitorService extends AbstractInvokeHandlerService { } mRuntime.Anti_off_flag=1; mRuntime.setAlarmType(Runtime.AlarmType.ALARM_ANTIOFF); - String msg=protocolAPIHelper.getWarningMSG(mRuntime); + StringMessage msg=protocolAPIHelper.getWarningMSG(mRuntime); Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送! // try { // sleep(1000); 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 67639c63..e3e9d383 100644 --- a/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java +++ b/app/src/main/java/com/enqualcomm/support/service/HeartRateManager.java @@ -17,6 +17,7 @@ import android.os.PowerManager; import com.enqualcomm.support.Config; import com.enqualcomm.support.Constants; import com.enqualcomm.support.CoreService; +import com.enqualcomm.support.bean.StringMessage; import com.enqualcomm.support.utils.Util; import com.ic.jni.ICJniUtils; import com.ic.protocols.protocolAPIHelper; @@ -59,12 +60,12 @@ public class HeartRateManager extends AbstractInvokeHandlerService implements Se runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH); //trigger AP10 报警定位 - CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime))); + CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime)); }else if ( runtime.getHRS().ppg_threshold_min>0 && runtime.getHRS().getPPG()0 && runtime.getHRS().getBPH()0 && runtime.getHRS().getBPL()3?(cmdlist.length==4?"":cmdlist[4]):""; String phNum3=(cmdlist.length>4)?(cmdlist.length==5? "":cmdlist[5]):""; ICLogger.i(new StringBuffer().append("get Emegency Numbs "+phNum1+","+phNum2+","+phNum3).toString()); - connection.send(genStringMessage("AP12",AP12(index,phNum1,phNum2,phNum3))); + connection.send(AP12(index,phNum1,phNum2,phNum3)); ArrayList contactArray=new ArrayList(); if (!phNum1.isEmpty()) contactArray.add(new Contact(Contact.CATEGORY_SOS,"sos1",phNum1)); @@ -708,8 +709,8 @@ public class protocol_beehome { } - public static String AP14(String index,String[] phnumbs){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14)) + public static StringMessage AP14(String index,String[] phnumbs){ + return genStringMessage(cmdMap.get(CMD_TYPE.AP14),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(phnumbs[0]) .append(CMDSPLIT).append(phnumbs[1]) @@ -721,7 +722,7 @@ public class protocol_beehome { .append(CMDSPLIT).append(phnumbs[7]) .append(CMDSPLIT).append(phnumbs[8]) .append(CMDSPLIT).append(phnumbs[9]) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置通讯录,白名单(10个) public void handleBP14(Connection connection,String cmd , Runtime runtime){ @@ -779,7 +780,7 @@ public class protocol_beehome { String index=cmdlist[2]; ICLogger.i(sb.toString()); - connection.send(genStringMessage("AP14",AP14(index,phnums))); + connection.send(AP14(index,phnums)); ArrayList contactArray=new ArrayList(); for (int i=0; i< phnums.length;i++){ String[] tmp= phnums[i].split("\\|"); @@ -808,11 +809,11 @@ public class protocol_beehome { - public static String AP85(Runtime ds,String cmddata){ + public static StringMessage AP85(Runtime ds,String cmddata){ //示例数据:IWAP49,68## - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP85),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85)) .append(CMDSPLIT).append(cmddata) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置闹钟 @@ -910,7 +911,7 @@ public class protocol_beehome { String replacement=new StringBuilder("IWBP85,").append(imei).append(",").toString(); String replycmd = cmd.replace(replacement,""); ICLogger.i("gen reply "+replacement+" "+replycmd); - connection.send(genStringMessage("AP85",AP85(runtime,replycmd))); + connection.send(AP85(runtime,replycmd)); } @@ -996,14 +997,14 @@ public class protocol_beehome { - public static String AP33(String cmdindex,int workMode){ + public static StringMessage AP33(String cmdindex,int workMode){ //IWAP33,080835,1# //080835:指令流水号 //1:设置信息,供服务器同步 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP33), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33)) .append(CMDSPLIT).append(cmdindex) .append(CMDSPLIT).append(workMode) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置工作模式 @@ -1037,9 +1038,9 @@ public class protocol_beehome { } - String msg=AP33(cmdlist[2],mod); + StringMessage msg=AP33(cmdlist[2],mod); //设定当前工作模式及循环频率 - connection.send(genStringMessage("AP33",msg)); + connection.send(msg); log("reply msg "+msg); log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod); Config.setLocationMode(runtime.getContextProxy().context,mod); @@ -1053,14 +1054,14 @@ public class protocol_beehome { } - public static String AP34(String cmdindex,int workMode){ + public static StringMessage AP34(String cmdindex,int workMode){ //IWAP34,588854,1# //080835:指令流水号 //8:模式 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP34),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34)) .append(CMDSPLIT).append(cmdindex) .append(CMDSPLIT).append(workMode) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置自定义工作模式 @@ -1082,9 +1083,9 @@ public class protocol_beehome { int Cycle=Integer.parseInt(cmdlist[4]); int gpson=Integer.parseInt(cmdlist[5]); - String msg=AP34(cmdlist[2],mod); + StringMessage msg=AP34(cmdlist[2],mod); //设定当前工作模式及循环频率 - connection.send(genStringMessage("AP34",msg)); + connection.send(msg); if(gpson==1){ mod=ICLocation.CUSTOM_MOD8_GPS; @@ -1118,9 +1119,9 @@ public class protocol_beehome { String txtmsg=cmdlist[3]; txtmsg=Util.UrlGB2312ToUTF8(txtmsg); - String msg=AP40(cmdindex,1); + StringMessage msg=AP40(cmdindex,1); //设定当前工作模式及循环频率 - connection.send(genStringMessage("AP40",msg)); + connection.send(msg); ICLogger.i("received Txt Msg "+txtmsg); runtime.getContextProxy().sendMsgBroadcast(txtmsg,0); runtime.getContextProxy().saveMstToSMSDB(txtmsg); @@ -1128,15 +1129,15 @@ public class protocol_beehome { ICLogger.i("BP40 format error!"); } } - public static String AP40(String cmdindex,int success){ + public static StringMessage AP40(String cmdindex,int success){ // IWAP40,080835,1# // 080835:指令流水号 // 1:表示设备接受数据成功,0表示设备接受数据失败 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP40)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP40),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP40)) .append(CMDSPLIT).append(cmdindex) .append(CMDSPLIT).append(success) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } @@ -1145,11 +1146,11 @@ public class protocol_beehome { * @param ds * @return */ - public static String AP49(Runtime ds){ + public static StringMessage AP49(Runtime ds){ //示例数据:IWAP49,68## - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP49),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49)) .append(CMDSPLIT).append(ds.getHRS().getPPG()) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } @@ -1161,7 +1162,7 @@ public class protocol_beehome { * @param ds * @return */ - public static String APHT(Runtime ds){ + public static StringMessage APHT(Runtime ds){ //IWAPHT,60,130,85# //说明: //IW:标识符 @@ -1171,13 +1172,13 @@ public class protocol_beehome { //85 : 血压低压 [舒张压] //平台响应: IWBPHT# //表示平台已接收,可不作响应 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) + return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) .append(CMDSPLIT).append(ds.getHRS().getPPG()) .append(CMDSPLIT).append(ds.getHRS().getBPH()) .append(CMDSPLIT).append(ds.getHRS().getBPL()) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } - public static String APHT(int ppg,int bph,int bpl){ + public static StringMessage APHT(int ppg,int bph,int bpl){ //IWAPHT,60,130,85# //说明: //IW:标识符 @@ -1187,21 +1188,21 @@ public class protocol_beehome { //85 : 血压低压 [舒张压] //平台响应: IWBPHT# //表示平台已接收,可不作响应 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) + return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) .append(CMDSPLIT).append(ppg) .append(CMDSPLIT).append(bph) .append(CMDSPLIT).append(bpl) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //立即定位反馈 - public static String AP16(String cmdindex){ + public static StringMessage AP16(String cmdindex){ //IWAP16,080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP16),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16)) .append(CMDSPLIT).append(cmdindex) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } // 立即定位指令(长链接有效) public void handleBP16(Connection connection,Runtime runtime,String cmd){ @@ -1216,7 +1217,7 @@ public class protocol_beehome { if(cmdlist.length==3){ log("imei "+cmdlist[1]+", cmdindex "+cmdlist[2]); - connection.send(genStringMessage("AP16",AP16(cmdlist[2]))); + connection.send(AP16(cmdlist[2])); }else{ log("error BP16 format"); } @@ -1224,7 +1225,7 @@ public class protocol_beehome { /*通过基站获取时间和坐标*/ - public static String APTM(Runtime ds){ + public static StringMessage APTM(Runtime ds){ //示例数据:IWAPTM,460,0,9750,3613# //说明: //IW:标识符 @@ -1234,12 +1235,12 @@ public class protocol_beehome { //9750: LAC //3613: CID - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM)) + return genStringMessage(cmdMap.get(CMD_TYPE.APTM),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM)) .append(CMDSPLIT).append(ds.getLocationInstance().getMCC()) .append(CMDSPLIT).append(ds.getLocationInstance().getMNC()) .append(CMDSPLIT).append(ds.getLocationInstance().getLAC()) .append(CMDSPLIT).append(ds.getLocationInstance().getGSMStationCID()) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } @@ -1262,12 +1263,12 @@ public class protocol_beehome { } - public static String AP15(String index){ + public static StringMessage AP15(String index){ //IWAP15, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP15),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置定位周期 @@ -1282,7 +1283,7 @@ public class protocol_beehome { if(list.length==4){ String index=list[2]; String time=list[3]; - connection.send(genStringMessage("AP15",AP15(index))); + connection.send(AP15(index)); ICLogger.i("BP15 , 定位周期="+time+"秒"); Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS); @@ -1303,15 +1304,15 @@ public class protocol_beehome { /*语音下行反馈*/ - public static String AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) { + public static StringMessage AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) { //示例数据:IWAP28,D3590D54,xxxx,6,1,1# - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP28),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28)) .append(CMDSPLIT).append(name) .append(CMDSPLIT).append(msg) .append(CMDSPLIT).append(packagecount) .append(CMDSPLIT).append(currentpackageindex) .append(CMDSPLIT).append(received_success) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //处理 BP28 语音消息 @@ -1365,7 +1366,7 @@ public class protocol_beehome { .append(",packetDatalen = ").append(packetData.length); log( stringBuffer.toString()); - connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,1))); + connection.send(AP28(Name,appendIndex,packetCount,currentId,1)); voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData); log("================"+voicePacket.getInstance().toString()); if (voicePacket.getInstance().isFinished()) @@ -1411,15 +1412,15 @@ public class protocol_beehome { } //白名单开关(下行协议号:BP84,响应:AP84) - public static String AP84(String index,int success){ + public static StringMessage AP84(String index,int success){ //设备响应: IWAP80,080835,1# //080835:指令流水号 //1:表示设备执行成功,0 表示设备执行失败 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP84),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(success) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP84(String cmd,Connection connection){ @@ -1436,7 +1437,7 @@ public class protocol_beehome { if (list.length==4){ String index=list[2]; String whitelist_switch=list[3]; - connection.send(genStringMessage("AP84",AP84(index,1))); + connection.send(AP84(index,1)); if (whitelist_switch.equals("1")){ Util.setSystemProperties("persist.sys.whitelist.enable","true"); @@ -1453,13 +1454,13 @@ public class protocol_beehome { } //17.绑定解绑(下行协议号:BP68,响应:AP68) - public static String AP68(String index){ + public static StringMessage AP68(String index){ //设备响应: IWAP86, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP68)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP68),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP68)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP68(String cmd,Connection connection,Runtime runtime){ @@ -1478,7 +1479,7 @@ public class protocol_beehome { if (list.length==4){ String index=list[2]; String type=list[3]; - connection.send(genStringMessage("AP86",AP68(index))); + connection.send(AP68(index)); ICLogger.i("收到服务器消息:"+(type.equals("1")?"绑定成功 ":"未激活或者解绑")); }else{ @@ -1487,13 +1488,13 @@ public class protocol_beehome { } //17.设置心率/血压测量周期(下行协议号:BP86,响应:AP86) - public static String AP86(String index){ + public static StringMessage AP86(String index){ //设备响应: IWAP86, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP86),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP86(String cmd,Connection connection,Runtime runtime){ @@ -1514,7 +1515,7 @@ public class protocol_beehome { String index=list[2]; String type=list[3]; String cycle=list[4]; - connection.send(genStringMessage("AP86",AP86(index))); + connection.send(AP86(index)); ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟"); //发送重置PPGCycle的广播,会在CoreServer里面执行 @@ -1526,12 +1527,12 @@ public class protocol_beehome { } } - public static String AP88(String index){ + public static StringMessage AP88(String index){ //设备响应: IWAP88, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP88)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP88),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP88)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public static void handleBP88(String cmd,Connection connection){ @@ -1540,7 +1541,7 @@ public class protocol_beehome { if (list.length==2){ String index=list[1]; - connection.send(genStringMessage("AP88",AP88(index))); + connection.send(AP88(index)); ICLogger.i("收到服务器消息:查询设备"); }else{ @@ -1549,13 +1550,13 @@ public class protocol_beehome { } //18.18.设置心率/血压阀值(下行协议号:BP89,响应:AP89) - public static String AP89(String index){ + public static StringMessage AP89(String index){ //设备响应: IWAP89, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP89),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP89(String cmd,Connection connection){ @@ -1582,7 +1583,7 @@ public class protocol_beehome { String BPH_L=list[6]; String BPL_H=list[7]; String BPL_L=list[8]; - connection.send(genStringMessage("AP89",AP89(index))); + connection.send(AP89(index)); ICLogger.i("收到服务器指令:心率/血压阀值 "+PPGH+","+PPGL+","+BPH_H+","+BPH_L+","+BPL_H+","+BPL_L); }else{ ICLogger.i("BP89 format error!"); @@ -1591,15 +1592,15 @@ public class protocol_beehome { } //体温间隔测量 (后台测试体温)(下行协议号:BPTE,响应:APTE) - public static String APTE(String index,int freq){ + public static StringMessage APTE(String index,int freq){ //设备响应: IWAPTE,080835,60# //080835:指令流水号 //1:表示设备接受数据成功,0表示设备接受数据失败 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTE)) + return genStringMessage(cmdMap.get(CMD_TYPE.APTE),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTE)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(freq) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBPTE(String cmd,Connection connection,Runtime runtime){ @@ -1617,7 +1618,7 @@ public class protocol_beehome { String index=list[2]; String freqstr=list[3]; int freq=Integer.parseInt(freqstr); - connection.send(genStringMessage("APTE",APTE(index,freq))); + connection.send(APTE(index,freq)); ICLogger.i("收到服务器指令:测量体温 "+freq+"分钟一次。"); Config.setTemperatureTestCycle(runtime,freq*60); CoreService.getInstance().setTempAlarm(); @@ -1637,18 +1638,18 @@ public class protocol_beehome { } //体温上行(上行协议号:APTP,响应:BPTP) - public static String APTP(double wrist_temp,double body_temp){ + public static StringMessage APTP(double wrist_temp,double body_temp){ //设备: IWAPTP,36.3,33,132# //IW:标识符 //APTP : 命令字符 //35.3:测量体温 (摄氏度) //33,132:温补用的参数,此处不用,可以用0 来代替。 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP)) + return genStringMessage(cmdMap.get(CMD_TYPE.APTP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP)) .append(CMDSPLIT).append(String.format("%1$.2f",wrist_temp)) .append(CMDSPLIT).append(String.format("%1$.2f",body_temp)) .append(CMDSPLIT).append(0) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBPTP(){ @@ -1658,12 +1659,12 @@ public class protocol_beehome { } - public static String APX1(String id){ + public static StringMessage APX1(String id){ //设备响应: IWAPX1, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APX1)) + return genStringMessage(cmdMap.get(CMD_TYPE.APX1),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APX1)) .append(CMDSPLIT).append(id) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } /** @@ -1692,7 +1693,7 @@ public class protocol_beehome { String strBPL=list[5]; String strSpO2=list[6]; - connection.send(genStringMessage("APJZ",APX1(index))); + connection.send(APX1(index)); int ppg_adjust,bph_adjust,bpl_adjust,spo2_adjust; ppg_adjust=Integer.parseInt(strXL); @@ -1714,12 +1715,12 @@ public class protocol_beehome { - public static String APS4(String id){ + public static StringMessage APS4(String id){ //设备响应: IWAPS4,080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4)) + return genStringMessage(cmdMap.get(CMD_TYPE.APS4),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4)) .append(CMDSPLIT).append(id) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } /** @@ -1743,7 +1744,7 @@ public class protocol_beehome { String index=list[2]; String imei=list[1]; - connection.send(genStringMessage("APS4",APS4(index))); + connection.send(APS4(index)); String setting1; switch(list.length){ @@ -1777,7 +1778,7 @@ public class protocol_beehome { } } - public static String APHP(Runtime ds){ + public static StringMessage APHP(Runtime ds){ //IWAPHP,60,130,85,95,90, , , , , , , , # //IW:标识符 //APHT : 命令字符 @@ -1787,7 +1788,7 @@ public class protocol_beehome { //95:血氧 //90:血糖 // 本消息适用所有终端,其中需要每项指标不一定全部有值,如果无值,则留空 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP)) + return genStringMessage( cmdMap.get(CMD_TYPE.APHP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP)) .append(CMDSPLIT).append(ds.getHRS().getPPG()) .append(CMDSPLIT).append(ds.getHRS().getBPH()) .append(CMDSPLIT).append(ds.getHRS().getBPL()) @@ -1801,9 +1802,9 @@ public class protocol_beehome { .append(CMDSPLIT) .append(CMDSPLIT) .append(CMDSPLIT) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } - public static String APHP(int ppg,int bph, int bpl, int spo2){ + public static StringMessage APHP(int ppg,int bph, int bpl, int spo2){ //IWAPHP,60,130,85,95,90, , , , , , , , # //IW:标识符 //APHT : 命令字符 @@ -1813,7 +1814,7 @@ public class protocol_beehome { //95:血氧 //90:血糖 // 本消息适用所有终端,其中需要每项指标不一定全部有值,如果无值,则留空 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP)) + return genStringMessage(cmdMap.get(CMD_TYPE.APHP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP)) .append(CMDSPLIT).append(ppg) .append(CMDSPLIT).append(bph) .append(CMDSPLIT).append(bpl) @@ -1827,7 +1828,7 @@ public class protocol_beehome { .append(CMDSPLIT) .append(CMDSPLIT) .append(CMDSPLIT) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBPHP(){ diff --git a/app/src/main/java/com/ic/protocols/protocol_fzd.java b/app/src/main/java/com/ic/protocols/protocol_fzd.java index 05945054..8c66631a 100644 --- a/app/src/main/java/com/ic/protocols/protocol_fzd.java +++ b/app/src/main/java/com/ic/protocols/protocol_fzd.java @@ -308,25 +308,25 @@ public class protocol_fzd { return key; } - public static String genFZDCMD( String CMD){ + public static StringMessage genFZDCMD( String CMD){ StringBuilder sb=new StringBuilder(); int len=CMD.length(); String header=genHeader(len,CMD); String keyheader=keyheader(CMD,len); sb.append(CMDHEADER).append(keyheader).append(header).append(CMDEND); - return sb.toString(); + return genStringMessage(CMD,sb.toString()); } - public static String genFZDCMD( String CMD,String data){ + public static StringMessage genFZDCMD( String CMD,String data){ StringBuilder sb=new StringBuilder(); String data_buf=CMD+CMDSPLIT+data; int data_buf_len=data_buf.length(); String header=genHeader(data_buf_len,CMD); String keyheader=keyheader(CMD,data_buf_len);//计算header md5值 sb.append(CMDHEADER).append(keyheader).append(header).append(CMDSPLIT).append(data).append(CMDEND); - return sb.toString(); + return genStringMessage(CMD,sb.toString()); } /*登录*/ - public static String LK() { + public static StringMessage LK() { /*IC*YYYYYYYYYYYYYYY*LEN*LK*/ return genFZDCMD(cmdMap.get(CMD_TYPE.LK)); } @@ -334,7 +334,7 @@ public class protocol_fzd { /** * 绑定 * */ - public static String PING(){ + public static StringMessage PING(){ // IC*YYYYYYYYYYYYYYY*LEN*PING return genFZDCMD(cmdMap.get(CMD_TYPE.PING)); } @@ -354,7 +354,7 @@ public class protocol_fzd { } - public static String KA(Runtime runtime){ + public static StringMessage KA(Runtime runtime){ //[IC*YYYYYYYYYYYYYYY*LEN*KA,日期,步数,翻滚次数,电量百分数] 实例:[IC*334588000000156*0014*KA,120414,50,100,100] StringBuilder sb=new StringBuilder(); String cmd=cmdMap.get(CMD_TYPE.KA); @@ -371,7 +371,7 @@ public class protocol_fzd { } /*LBS+GPS混合定位*/ - public static String UD(Runtime runtime) { + public static StringMessage UD(Runtime runtime) { /*** * [IC*334588000000156*00CD*UD,180916,025723,A,22.570733,N,113.8626083,E,0.00,249.5,0.0,6,100, 60,0,0,00000010,7,255,460,1,9529,21809,158,9529,63555,133,9529,63554,129,9529,21405,126,95 * 29,21242,124,9529,21151,120,9529,63556,119,0] @@ -461,13 +461,13 @@ public class protocol_fzd { } - public static String UPLOAD(){ + public static StringMessage UPLOAD(){ return genFZDCMD(cmdMap.get(CMD_TYPE.UPLOAD)); } public void handleUPLOAD(Connection connection,Runtime runtime,String cmd,String data){ - connection.send(genStringMessage("UPLOAD",UPLOAD())); + connection.send(UPLOAD()); int timesecond=Integer.parseInt(data); int mod=runtime.getLocationInstance().getWorkingMod(); log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod); @@ -480,48 +480,48 @@ public class protocol_fzd { } - public static String heart(int hrt){ + public static StringMessage heart(int hrt){ return genFZDCMD(cmdMap.get(CMD_TYPE.heart),String.valueOf(hrt)); } - public static String oxygen(int ox){ + public static StringMessage oxygen(int ox){ return genFZDCMD(cmdMap.get(CMD_TYPE.oxygen),String.valueOf(ox)); } - public static String blood(int pbl,int pbh){ + public static StringMessage blood(int pbl,int pbh){ String data=pbh+CMDSPLIT+pbl; return genFZDCMD(cmdMap.get(CMD_TYPE.blood),data); } - public static String temp(double temp){ + public static StringMessage temp(double temp){ return genFZDCMD(cmdMap.get(CMD_TYPE.temp),String.format("%.1f",temp)); } - public static String POWEROFF(){ + public static StringMessage POWEROFF(){ return genFZDCMD(cmdMap.get(CMD_TYPE.POWEROFF)); } public void handlePOWEROFF(Connection connection) { - connection.send(genStringMessage("POWEROFF",POWEROFF())); + connection.send(POWEROFF()); } - public static String CR(){ + public static StringMessage CR(){ return genFZDCMD(cmdMap.get(CMD_TYPE.CR)); } public void handleCR(Connection connection) { - connection.send(genStringMessage("CR",CR())); + connection.send(CR()); } - public static String bldstart(){ + public static StringMessage bldstart(){ return genFZDCMD(cmdMap.get(CMD_TYPE.bldstart)); } public void handleBldstart(Connection connection) { - connection.send(genStringMessage("bldstart",bldstart())); + connection.send(bldstart()); } - public static String wdstart(){ + public static StringMessage wdstart(){ return genFZDCMD(cmdMap.get(CMD_TYPE.wdstart)); } public void handleWdstart(Connection connection,Runtime runtime ,String data) { - connection.send(genStringMessage("wdstart",wdstart())); + connection.send(wdstart()); int freq=Integer.parseInt(data); @@ -536,28 +536,28 @@ public class protocol_fzd { // String temperatureMsg=temp(body_temp); // connection.send(genStringMessage("temp",temperatureMsg)); } - public static String hrtstart(){ + public static StringMessage hrtstart(){ return genFZDCMD(cmdMap.get(CMD_TYPE.hrtstart)); } public void handleHrtstart(Connection connection) { - connection.send(genStringMessage("hrtstart",hrtstart())); + connection.send(hrtstart()); } - public static String FIND(){ + public static StringMessage FIND(){ return genFZDCMD(cmdMap.get(CMD_TYPE.FIND)); } public void handleFIND(Connection connection) { - connection.send(genStringMessage("FIND",FIND())); + connection.send(FIND()); } - public static String SOS(){ + public static StringMessage SOS(){ return genFZDCMD(cmdMap.get(CMD_TYPE.SOS)); } public void handleSOS(Connection connection,Runtime runtime,String cmd,String data) { - connection.send(genStringMessage("SOS",SOS())); + connection.send(SOS()); if (data!=null && data.length()>0) { String list[] = data.split(CMDSPLIT); if (list.length==1){ @@ -588,7 +588,7 @@ public class protocol_fzd { } - public static String PHL(){ + public static StringMessage PHL(){ return genFZDCMD(cmdMap.get(CMD_TYPE.PHL)); } @@ -622,7 +622,7 @@ public class protocol_fzd { }else{ ICLogger.i("没有电话本!执行清除操作!"); } - connection.send(genStringMessage("PHL",PHL())); + connection.send(PHL()); } public void sendBroadcast(String cmd, Runtime dev) { diff --git a/app/src/main/java/com/ic/protocols/protocol_ic.java b/app/src/main/java/com/ic/protocols/protocol_ic.java index ba69aa52..2f17f830 100644 --- a/app/src/main/java/com/ic/protocols/protocol_ic.java +++ b/app/src/main/java/com/ic/protocols/protocol_ic.java @@ -381,9 +381,9 @@ public class protocol_ic { return -1; } /*登录*/ - public static String AP00(Runtime ds) { + public static StringMessage AP00(Runtime ds) { //示例数据:IWAP00867155030001063# - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString(); + return genStringMessage(cmdMap.get(CMD_TYPE.AP00),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString()); } //处理 登录 BP00 @@ -417,7 +417,7 @@ public class protocol_ic { } - public static String AP03(Runtime ds) { + public static StringMessage AP03(Runtime ds) { //示例数据:IWAP03,06000908000102,5555,30# IWAP03,000000null00000,0,0# //IW: 标识符 //AP03:命令字 @@ -433,10 +433,10 @@ public class protocol_ic { //02为工作模式 ,(设防,工作模式如果为00,则代表无或未设置) //5555: 计步步数,每次到达 9999 后重 0 开始计 (此处 9999 为示例,可以为2字节int 然后溢出归零) //30: 翻滚次数 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d",abs(ds.getSignalStrength()))) + return genStringMessage(cmdMap.get(CMD_TYPE.AP03),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d",abs(ds.getSignalStrength()))) .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0") .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT) - .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString(); + .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString()); } //处理 心跳 BP03 public void handleBP03(String cmd){ @@ -445,7 +445,7 @@ public class protocol_ic { } - public static String AP10(Runtime ds){ + public static StringMessage AP10(Runtime ds){ /** * IWAP10080524A2232.9806N11404.9355E000.1061830323.8706000908000502, @@ -456,7 +456,7 @@ public class protocol_ic { * 00:第一个0:是否需要回复地址信息,0:不回复,1回复. * HOME|74-DE-2B-44-88-8C|97&HOME1|74-DE-2B-44-88-8C|97&HOME2|74-DE-2B-44-88-8C|97&HOME3|74-DE-2B-44-88-8C|97# */ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate()) + return genStringMessage(cmdMap.get(CMD_TYPE.AP10),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate()) .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()) .append(String.format("%03d",abs(ds.getSignalStrength()))) .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0") @@ -465,21 +465,21 @@ public class protocol_ic { .append(ds.getAlarmType()).append(CMDSPLIT) .append(ds.getLanguage()).append(CMDSPLIT) .append("00").append(CMDSPLIT) //不回复地址 - .append(ds.getWifiInfo()).append(CMDEND).toString(); + .append(ds.getWifiInfo()).append(CMDEND).toString()); } /*LBS+GPS混合定位*/ - public static String AP01(Runtime ds) { + public static StringMessage AP01(Runtime ds) { //示例数据:IWAP01080524A2232.9806N11404.9355E000.1061830323.8706000908000102, // 460,0,9520,3671, // Home|74-DE-2B-44-88-8C|97& Home1|74-DE-2B-44-88-8C|97&Home2|74-DE-2B-44-88-8C|97& Home3|74-DE-2B-44-88-8C|97# // IWAP01191230A2232.9807N11404.9355E000.1161320000.0006000910000000,460,00,9520,3671,# - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate()) + return genStringMessage(cmdMap.get(CMD_TYPE.AP01),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate()) .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength()))) .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0") .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT) - .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString(); + .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString()); } //处理 定位 BP01 @@ -490,7 +490,7 @@ public class protocol_ic { /*LBS+WiFi混合定位*/ - public static String AP02(Runtime ds) { + public static StringMessage AP02(Runtime ds) { //示例数据:IWAP02, // zh_cn, // 0, @@ -518,11 +518,11 @@ public class protocol_ic { } ICLogger.i("Wifi ap sum "+apsum); - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT) + return genStringMessage(cmdMap.get(CMD_TYPE.AP02),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT) .append(ds.getLanguage()).append(CMDSPLIT) .append(0).append(CMDSPLIT) //为0时不回复地址 .append(ds.getLBSMultiStationData()).append(CMDSPLIT) //基站信息数据 - .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString(); //wifi信息数据 + .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString()); //wifi信息数据 } //处理 定位 BP01 @@ -532,12 +532,12 @@ public class protocol_ic { - public static String APXL(String id){ + public static StringMessage APXL(String id){ //设备响应: IWAPXL,080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL)) + return genStringMessage(cmdMap.get(CMD_TYPE.APXL),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL)) .append(CMDSPLIT).append(id) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } /** @@ -559,19 +559,19 @@ public class protocol_ic { String index=list[2]; String imei=list[1]; ICLogger.i("Handle BPXL IMEI "+imei+",index "+index); - connection.send(genStringMessage("APXL",APXL(index))); + connection.send(APXL(index)); }else{ ICLogger.i("BPXL format error!"); } } - public static String APXY(String id){ + public static StringMessage APXY(String id){ //设备响应: IWAPXY,080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY)) + return genStringMessage(cmdMap.get(CMD_TYPE.APXY),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY)) .append(CMDSPLIT).append(id) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } /** @@ -593,7 +593,7 @@ public class protocol_ic { String index=list[2]; String imei=list[1]; ICLogger.i("Handle BPXY IMEI "+imei+",index "+index); - connection.send(genStringMessage("APXY",APXY(index))); + connection.send(APXY(index)); }else{ ICLogger.i("BPXY format error!"); } @@ -602,17 +602,17 @@ public class protocol_ic { - public static String APJZ(String id,String BPH,String BPL,String Age,String Sex){ + public static StringMessage APJZ(String id,String BPH,String BPL,String Age,String Sex){ //设备响应: IWAPJZ,792997,120,85,42,1# //792997:指令流水号 // 高压120,低压85,年龄42,1 男性 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ)) + return genStringMessage(cmdMap.get(CMD_TYPE.APJZ),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ)) .append(CMDSPLIT).append(id) .append(CMDSPLIT).append(BPH) .append(CMDSPLIT).append(BPL) .append(CMDSPLIT).append(Age) .append(CMDSPLIT).append(Sex) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } /** @@ -643,7 +643,7 @@ public class protocol_ic { String strAge=list[5]; String strSex=list[6]; - connection.send(genStringMessage("APJZ",APJZ(index,strBPH,strBPL,strAge,strSex))); + connection.send(APJZ(index,strBPH,strBPL,strAge,strSex)); runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH),Integer.parseInt(strBPL),Integer.parseInt(strAge),Integer.parseInt(strSex)); ICLogger.i("Handle BPJZ IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", Age "+ strAge +", Sex "+ (strSex.equals("1")?"男":"女")); }else{ @@ -656,10 +656,10 @@ public class protocol_ic { //重启 - public static String AP18(String index){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18)) + public static StringMessage AP18(String index){ + return genStringMessage(cmdMap.get(CMD_TYPE.AP18),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP18(Connection connection,String cmd) { @@ -668,16 +668,16 @@ public class protocol_ic { String[] cmdlist=cmd.split(CMDSPLIT); if (cmdlist.length==3) { - connection.send(genStringMessage("AP18",AP18(cmdlist[2]))); + connection.send(AP18(cmdlist[2])); } } //恢复出厂设置 - public static String AP17(String index){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17)) + public static StringMessage AP17(String index){ + return genStringMessage(cmdMap.get(CMD_TYPE.AP17),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP17(Connection connection,String cmd) { @@ -685,7 +685,7 @@ public class protocol_ic { String[] cmdlist=cmd.split(CMDSPLIT); if (cmdlist.length==3) { - connection.send(genStringMessage("AP17",AP17(cmdlist[2]))); + connection.send(AP17(cmdlist[2])); } } @@ -693,10 +693,10 @@ public class protocol_ic { //关机 - public static String AP31(String index){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31)) + public static StringMessage AP31(String index){ + return genStringMessage("AP31",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP31(Connection connection,String cmd) { @@ -704,19 +704,19 @@ public class protocol_ic { String[] cmdlist=cmd.split(CMDSPLIT); if (cmdlist.length==3) { - connection.send(genStringMessage("AP31",AP31(cmdlist[2]))); + connection.send(AP31(cmdlist[2])); } } //设置SOS号码 - public static String AP12(String index,String phNum1,String phNum2,String phNum3){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12)) + public static StringMessage AP12(String index,String phNum1,String phNum2,String phNum3){ + return genStringMessage("AP12",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(phNum1) .append(CMDSPLIT).append(phNum2) .append(CMDSPLIT).append(phNum3) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置SOS号码 @@ -729,7 +729,7 @@ public class protocol_ic { String phNum2=cmdlist.length>3?(cmdlist.length==4?"":cmdlist[4]):""; String phNum3=(cmdlist.length>4)?(cmdlist.length==5? "":cmdlist[5]):""; ICLogger.i(new StringBuffer().append("get Emegency Numbs "+phNum1+","+phNum2+","+phNum3).toString()); - connection.send(genStringMessage("AP12",AP12(index,phNum1,phNum2,phNum3))); + connection.send(AP12(index,phNum1,phNum2,phNum3)); ArrayList contactArray=new ArrayList(); // if(Config.custom_branch_name.equals("AK")){ @@ -754,8 +754,8 @@ public class protocol_ic { } - public static String AP14(String index,String[] phnumbs){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14)) + public static StringMessage AP14(String index,String[] phnumbs){ + return genStringMessage("AP14",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(phnumbs[0]) .append(CMDSPLIT).append(phnumbs[1]) @@ -767,7 +767,7 @@ public class protocol_ic { .append(CMDSPLIT).append(phnumbs[7]) .append(CMDSPLIT).append(phnumbs[8]) .append(CMDSPLIT).append(phnumbs[9]) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置通讯录,白名单(10个) public void handleBP14(Connection connection,String cmd , Runtime runtime){ @@ -825,7 +825,7 @@ public class protocol_ic { String index=cmdlist[2]; ICLogger.i(sb.toString()); - connection.send(genStringMessage("AP14",AP14(index,phnums))); + connection.send(AP14(index,phnums)); ArrayList contactArray=new ArrayList(); for (int i=0; i< phnums.length;i++){ String[] tmp= phnums[i].split("\\|"); @@ -854,11 +854,11 @@ public class protocol_ic { - public static String AP85(Runtime ds,String cmddata){ + public static StringMessage AP85(Runtime ds,String cmddata){ //示例数据:IWAP49,68## - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85)) + return genStringMessage("AP85",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85)) .append(CMDSPLIT).append(cmddata) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置闹钟 @@ -956,7 +956,7 @@ public class protocol_ic { String replacement=new StringBuilder("IWBP85,").append(imei).append(",").toString(); String replycmd = cmd.replace(replacement,""); ICLogger.i("gen reply "+replacement+" "+replycmd); - connection.send(genStringMessage("AP85",AP85(runtime,replycmd))); + connection.send(AP85(runtime,replycmd)); } @@ -1042,14 +1042,14 @@ public class protocol_ic { - public static String AP33(String cmdindex,int workMode){ + public static StringMessage AP33(String cmdindex,int workMode){ //IWAP33,080835,1# //080835:指令流水号 //1:设置信息,供服务器同步 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33)) + return genStringMessage("AP33",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33)) .append(CMDSPLIT).append(cmdindex) .append(CMDSPLIT).append(workMode) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置工作模式 @@ -1083,9 +1083,9 @@ public class protocol_ic { } - String msg=AP33(cmdlist[2],mod); + StringMessage msg=AP33(cmdlist[2],mod); //设定当前工作模式及循环频率 - connection.send(genStringMessage("AP33",msg)); + connection.send(msg); log("reply msg "+msg); log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod); Config.setLocationMode(runtime.getContextProxy().context,mod); @@ -1099,14 +1099,14 @@ public class protocol_ic { } - public static String AP34(String cmdindex,int workMode){ + public static StringMessage AP34(String cmdindex,int workMode){ //IWAP34,588854,1# //080835:指令流水号 //8:模式 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34)) + return genStringMessage("AP34",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34)) .append(CMDSPLIT).append(cmdindex) .append(CMDSPLIT).append(workMode) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置自定义工作模式 @@ -1128,16 +1128,16 @@ public class protocol_ic { int Cycle=Integer.parseInt(cmdlist[4]); int gpson=Integer.parseInt(cmdlist[5]); - String msg=AP34(cmdlist[2],mod); + StringMessage msg=AP34(cmdlist[2],mod); //设定当前工作模式及循环频率 - connection.send(genStringMessage("AP34",msg)); + connection.send(msg); if(gpson==1){ mod=ICLocation.CUSTOM_MOD8_GPS; }else{ mod=ICLocation.CUSTOM_MOD8_WIFI; } - log("reply msg "+msg); + log("reply msg "+msg.isFromCache()); log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod + ", cycle = "+Cycle+", GPS On= "+gpson); Config.setLocationMode(runtime.getContextProxy().context,mod); Config.setLocationCycle(runtime.getContextProxy().context,Cycle); @@ -1164,9 +1164,9 @@ public class protocol_ic { String txtmsg=cmdlist[3]; txtmsg=Util.UrlGB2312ToUTF8(txtmsg); - String msg=AP40(cmdindex,1); + StringMessage msg=AP40(cmdindex,1); //设定当前工作模式及循环频率 - connection.send(genStringMessage("AP40",msg)); + connection.send(msg); ICLogger.i("received Txt Msg "+txtmsg); runtime.getContextProxy().sendMsgBroadcast(txtmsg,0); runtime.getContextProxy().saveMstToSMSDB(txtmsg); @@ -1174,15 +1174,15 @@ public class protocol_ic { ICLogger.i("BP40 format error!"); } } - public static String AP40(String cmdindex,int success){ + public static StringMessage AP40(String cmdindex,int success){ // IWAP40,080835,1# // 080835:指令流水号 // 1:表示设备接受数据成功,0表示设备接受数据失败 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP40)) + return genStringMessage("AP40",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP40)) .append(CMDSPLIT).append(cmdindex) .append(CMDSPLIT).append(success) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } @@ -1191,11 +1191,11 @@ public class protocol_ic { * @param ds * @return */ - public static String AP49(Runtime ds){ + public static StringMessage AP49(Runtime ds){ //示例数据:IWAP49,68## - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP49),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49)) .append(CMDSPLIT).append(ds.getHRS().getPPG()) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } @@ -1207,7 +1207,7 @@ public class protocol_ic { * @param ds * @return */ - public static String APHT(Runtime ds){ + public static StringMessage APHT(Runtime ds){ //IWAPHT,60,130,85# //说明: //IW:标识符 @@ -1217,13 +1217,13 @@ public class protocol_ic { //85 : 血压低压 [舒张压] //平台响应: IWBPHT# //表示平台已接收,可不作响应 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) + return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) .append(CMDSPLIT).append(ds.getHRS().getPPG()) .append(CMDSPLIT).append(ds.getHRS().getBPH()) .append(CMDSPLIT).append(ds.getHRS().getBPL()) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } - public static String APHT(int ppg,int bph,int bpl){ + public static StringMessage APHT(int ppg,int bph,int bpl){ //IWAPHT,60,130,85# //说明: //IW:标识符 @@ -1233,21 +1233,21 @@ public class protocol_ic { //85 : 血压低压 [舒张压] //平台响应: IWBPHT# //表示平台已接收,可不作响应 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) + return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) .append(CMDSPLIT).append(ppg) .append(CMDSPLIT).append(bph) .append(CMDSPLIT).append(bpl) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //立即定位反馈 - public static String AP16(String cmdindex){ + public static StringMessage AP16(String cmdindex){ //IWAP16,080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP16),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16)) .append(CMDSPLIT).append(cmdindex) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } // 立即定位指令(长链接有效) public void handleBP16(Connection connection,Runtime runtime,String cmd){ @@ -1262,7 +1262,7 @@ public class protocol_ic { if(cmdlist.length==3){ log("imei "+cmdlist[1]+", cmdindex "+cmdlist[2]); - connection.send(genStringMessage("AP16",AP16(cmdlist[2]))); + connection.send(AP16(cmdlist[2])); }else{ log("error BP16 format"); } @@ -1270,7 +1270,7 @@ public class protocol_ic { /*通过基站获取时间和坐标*/ - public static String APTM(Runtime ds){ + public static StringMessage APTM(Runtime ds){ //示例数据:IWAPTM,460,0,9750,3613# //说明: //IW:标识符 @@ -1280,12 +1280,12 @@ public class protocol_ic { //9750: LAC //3613: CID - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM)) + return genStringMessage(cmdMap.get(CMD_TYPE.APTM),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM)) .append(CMDSPLIT).append(ds.getLocationInstance().getMCC()) .append(CMDSPLIT).append(ds.getLocationInstance().getMNC()) .append(CMDSPLIT).append(ds.getLocationInstance().getLAC()) .append(CMDSPLIT).append(ds.getLocationInstance().getGSMStationCID()) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } @@ -1308,12 +1308,12 @@ public class protocol_ic { } - public static String AP15(String index){ + public static StringMessage AP15(String index){ //IWAP15, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15)) + return genStringMessage("AP15",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置定位周期 @@ -1328,7 +1328,7 @@ public class protocol_ic { if(list.length==4){ String index=list[2]; String time=list[3]; - connection.send(genStringMessage("AP15",AP15(index))); + connection.send(AP15(index)); ICLogger.i("BP15 , 定位周期="+time+"秒"); Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS); @@ -1349,15 +1349,15 @@ public class protocol_ic { /*语音下行反馈*/ - public static String AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) { + public static StringMessage AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) { //示例数据:IWAP28,D3590D54,xxxx,6,1,1# - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28)) + return genStringMessage("AP28",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28)) .append(CMDSPLIT).append(name) .append(CMDSPLIT).append(msg) .append(CMDSPLIT).append(packagecount) .append(CMDSPLIT).append(currentpackageindex) .append(CMDSPLIT).append(received_success) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //处理 BP28 语音消息 @@ -1411,7 +1411,7 @@ public class protocol_ic { .append(",packetDatalen = ").append(packetData.length); log( stringBuffer.toString()); - connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,1))); + connection.send(AP28(Name,appendIndex,packetCount,currentId,1)); voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData); log("================"+voicePacket.getInstance().toString()); if (voicePacket.getInstance().isFinished()) @@ -1457,15 +1457,15 @@ public class protocol_ic { } //白名单开关(下行协议号:BP84,响应:AP84) - public static String AP84(String index,int success){ + public static StringMessage AP84(String index,int success){ //设备响应: IWAP80,080835,1# //080835:指令流水号 //1:表示设备执行成功,0 表示设备执行失败 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84)) + return genStringMessage("AP84",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(success) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP84(String cmd,Connection connection){ @@ -1482,7 +1482,7 @@ public class protocol_ic { if (list.length==4){ String index=list[2]; String whitelist_switch=list[3]; - connection.send(genStringMessage("AP84",AP84(index,1))); + connection.send(AP84(index,1)); if (whitelist_switch.equals("1")){ Util.setSystemProperties("persist.sys.whitelist.enable","true"); @@ -1499,14 +1499,14 @@ public class protocol_ic { } //17.绑定解绑(下行协议号:BP68,响应:AP68) - public static String AP68(String index,String cmd){ + public static StringMessage AP68(String index,String cmd){ //设备响应: IWAP86, 080835,1# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP68)) + return genStringMessage("AP86",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP68)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(cmd) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP68(String cmd,Connection connection,Runtime runtime){ @@ -1525,7 +1525,7 @@ public class protocol_ic { if (list.length==4){ String index=list[2]; String type=list[3]; - connection.send(genStringMessage("AP86",AP68(index,type))); + connection.send(AP68(index,type)); ICLogger.i("收到服务器消息:"+(type.equals("1")?"绑定成功 ":"未激活或者解绑")); if (Config.custom_branch_name.equals("YQ")||Config.custom_branch_name.equals("YQ_EN")) {//AK-YQ if (type.equals("1")) { @@ -1551,13 +1551,13 @@ public class protocol_ic { } //17.设置心率/血压测量周期(下行协议号:BP86,响应:AP86) - public static String AP86(String index){ + public static StringMessage AP86(String index){ //设备响应: IWAP86, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86)) + return genStringMessage("AP86",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP86(String cmd,Connection connection,Runtime runtime){ @@ -1578,7 +1578,7 @@ public class protocol_ic { String index=list[2]; String type=list[3]; String cycle=list[4]; - connection.send(genStringMessage("AP86",AP86(index))); + connection.send(AP86(index)); ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟"); //发送重置PPGCycle的广播,会在CoreServer里面执行 @@ -1590,12 +1590,12 @@ public class protocol_ic { } } - public static String AP88(String index){ + public static StringMessage AP88(String index){ //设备响应: IWAP88, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP88)) + return genStringMessage("AP88",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP88)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public static void handleBP88(String cmd,Connection connection){ @@ -1604,7 +1604,7 @@ public class protocol_ic { if (list.length==2){ String index=list[1]; - connection.send(genStringMessage("AP88",AP88(index))); + connection.send(AP88(index)); ICLogger.i("收到服务器消息:查询设备"); }else{ @@ -1613,13 +1613,13 @@ public class protocol_ic { } //18.18.设置心率/血压阀值(下行协议号:BP89,响应:AP89) - public static String AP89(String index){ + public static StringMessage AP89(String index){ //设备响应: IWAP89, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89)) + return genStringMessage("AP89",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP89(String cmd,Connection connection){ @@ -1646,7 +1646,7 @@ public class protocol_ic { String BPH_L=list[6]; String BPL_H=list[7]; String BPL_L=list[8]; - connection.send(genStringMessage("AP89",AP89(index))); + connection.send(AP89(index)); @@ -1658,15 +1658,15 @@ public class protocol_ic { } //体温间隔测量 (后台测试体温)(下行协议号:BPTE,响应:APTE) - public static String APTE(String index,int freq){ + public static StringMessage APTE(String index,int freq){ //设备响应: IWAPTE,080835,60# //080835:指令流水号 //1:表示设备接受数据成功,0表示设备接受数据失败 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTE)) + return genStringMessage("APTE",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTE)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(freq) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBPTE(String cmd,Connection connection,Runtime runtime){ @@ -1684,7 +1684,7 @@ public class protocol_ic { String index=list[2]; String freqstr=list[3]; int freq=Integer.parseInt(freqstr); - connection.send(genStringMessage("APTE",APTE(index,freq))); + connection.send(APTE(index,freq)); ICLogger.i("收到服务器指令:测量体温 "+freq+"分钟一次。"); Config.setTemperatureTestCycle(runtime,freq*60); CoreService.getInstance().setTempAlarm(); @@ -1698,18 +1698,18 @@ public class protocol_ic { } //体温上行(上行协议号:APTP,响应:BPTP) - public static String APTP(double wrist_temp,double body_temp){ + public static StringMessage APTP(double wrist_temp,double body_temp){ //设备: IWAPTP,36.3,33,132# //IW:标识符 //APTP : 命令字符 //35.3:测量体温 (摄氏度) //33,132:温补用的参数,此处不用,可以用0 来代替。 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP)) + return genStringMessage(cmdMap.get(CMD_TYPE.APTP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP)) .append(CMDSPLIT).append(String.format("%1$.2f",wrist_temp)) .append(CMDSPLIT).append(String.format("%1$.2f",body_temp)) .append(CMDSPLIT).append(0) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBPTP(){ @@ -1719,12 +1719,12 @@ public class protocol_ic { } - public static String APX1(String id){ + public static StringMessage APX1(String id){ //设备响应: IWAPX1, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APX1)) + return genStringMessage("APX1",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APX1)) .append(CMDSPLIT).append(id) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } /** @@ -1753,7 +1753,7 @@ public class protocol_ic { String strBPL=list[5]; String strSpO2=list[6]; - connection.send(genStringMessage("APJZ",APX1(index))); + connection.send(APX1(index)); int ppg_adjust,bph_adjust,bpl_adjust,spo2_adjust; ppg_adjust=Integer.parseInt(strXL); @@ -1780,12 +1780,12 @@ public class protocol_ic { - public static String APS4(String id){ + public static StringMessage APS4(String id){ //设备响应: IWAPS4,080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4)) + return genStringMessage("APS4",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4)) .append(CMDSPLIT).append(id) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } /** @@ -1809,7 +1809,7 @@ public class protocol_ic { String index=list[2]; String imei=list[1]; - connection.send(genStringMessage("APS4",APS4(index))); + connection.send(APS4(index)); String setting1; switch(list.length){ @@ -1843,7 +1843,7 @@ public class protocol_ic { } } - public static String APHP(Runtime ds){ + public static StringMessage APHP(Runtime ds){ //IWAPHP,60,130,85,95,90, , , , , , , , # //IW:标识符 //APHT : 命令字符 @@ -1853,7 +1853,7 @@ public class protocol_ic { //95:血氧 //90:血糖 // 本消息适用所有终端,其中需要每项指标不一定全部有值,如果无值,则留空 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP)) + return genStringMessage(cmdMap.get(CMD_TYPE.APHP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP)) .append(CMDSPLIT).append(ds.getHRS().getPPG()) .append(CMDSPLIT).append(ds.getHRS().getBPH()) .append(CMDSPLIT).append(ds.getHRS().getBPL()) @@ -1867,9 +1867,9 @@ public class protocol_ic { .append(CMDSPLIT) .append(CMDSPLIT) .append(CMDSPLIT) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } - public static String APHP(int ppg,int bph, int bpl, int spo2){ + public static StringMessage APHP(int ppg,int bph, int bpl, int spo2){ //IWAPHP,60,130,85,95,90, , , , , , , , # //IW:标识符 //APHT : 命令字符 @@ -1879,7 +1879,7 @@ public class protocol_ic { //95:血氧 //90:血糖 // 本消息适用所有终端,其中需要每项指标不一定全部有值,如果无值,则留空 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP)) + return genStringMessage(cmdMap.get(CMD_TYPE.APHP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP)) .append(CMDSPLIT).append(ppg) .append(CMDSPLIT).append(bph) .append(CMDSPLIT).append(bpl) @@ -1893,7 +1893,7 @@ public class protocol_ic { .append(CMDSPLIT) .append(CMDSPLIT) .append(CMDSPLIT) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } @@ -1903,16 +1903,16 @@ public class protocol_ic { } - public static String APDE(String id){ + public static StringMessage APDE(String id){ /*** * 示例: * 设备响应: IWAPDE,080835# * 080835:指令流水号 * 说明: 本消息适用所有终端 */ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDE)) + return genStringMessage("APDE",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDE)) .append(CMDSPLIT).append(id) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBPDE(Connection connection,String cmd,Runtime runtime){ @@ -1935,7 +1935,7 @@ public class protocol_ic { String index=list[2]; String msg=list[3]; - connection.send(genStringMessage("APDE",APDE(index))); + connection.send(APDE(index)); if ( Integer.parseInt(msg) == 0) { ICLogger.i("Handle BPDE index " + index + ", 进入禁止区域 "); runtime.Fence_Warning_flag=1; @@ -1953,10 +1953,10 @@ public class protocol_ic { } - public static String APDG(String id){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDG)) + public static StringMessage APDG(String id){ + return genStringMessage("APDG",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDG)) .append(CMDSPLIT).append(id) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBPDG(Connection connection,String cmd,Runtime runtime){ @@ -1980,7 +1980,7 @@ public class protocol_ic { String switch_on=list[3]; String min_temp=list[4]; String max_temp=list[5]; - connection.send(genStringMessage("APDG",APDG(index))); + connection.send(APDG(index)); if ( Integer.parseInt(switch_on) == 1) { ICLogger.i("Handle BPDG index " + index + ", 体温报警阈值开 min="+min_temp+",max="+max_temp); runtime.tempInfo.setBodyTempThreshold(Double.valueOf(max_temp),Double.valueOf(min_temp)); @@ -2091,7 +2091,7 @@ public class protocol_ic { } } - public static String APSL(String date,int deepsleep,int lightsleep,int score){ + public static StringMessage APSL(String date,int deepsleep,int lightsleep,int score){ /*** * 示例: * IWAPSL,202008003,240,120,90# @@ -2116,15 +2116,15 @@ public class protocol_ic { .append(CMDSPLIT).append(lightsleep) .append(CMDSPLIT).append(score) .append(CMDEND).toString(); - return sb; + return genStringMessage(cmdMap.get(CMD_TYPE.APSL),sb); } - public static String AP46(String id,String cmd) + public static StringMessage AP46(String id,String cmd) { - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP46)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP46),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP46)) .append(CMDSPLIT).append(id) .append(CMDSPLIT).append(cmd) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP46(String cmd , Connection connection,Runtime runtime) { @@ -2152,7 +2152,7 @@ public class protocol_ic { if (cmdlist.length==5) { String tmp = cmdlist[4]; } - connection.send(genStringMessage("AP46",AP46(id,cdd))); + connection.send(AP46(id,cdd)); if (cdd.equals("1")) { //delay 启动 @@ -2171,12 +2171,12 @@ public class protocol_ic { } - public static String APDH(String id,String cmd) + public static StringMessage APDH(String id,String cmd) { - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDH)) + return genStringMessage("APDH",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDH)) .append(CMDSPLIT).append(id) .append(CMDSPLIT).append(cmd) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } @@ -2207,7 +2207,7 @@ public class protocol_ic { tmp=tmp.replace(CMDEND,"").trim(); if (tmp.isEmpty()) tmp="15"; - connection.send(genStringMessage("APDH",APDH(id,cdd))); + connection.send(APDH(id,cdd)); if (cdd.equals("1")) { //delay 启动 diff --git a/app/src/main/java/com/ic/protocols/protocol_jiai.java b/app/src/main/java/com/ic/protocols/protocol_jiai.java index a0f094bd..57a1953f 100644 --- a/app/src/main/java/com/ic/protocols/protocol_jiai.java +++ b/app/src/main/java/com/ic/protocols/protocol_jiai.java @@ -64,6 +64,8 @@ public class protocol_jiai { BPHT, APTM,//基站校时及获取定位 BPTM, + AP94,//消息已读 + BP94, /* 服务器发起*/ AP12, BP12,//SOS 号码设置 @@ -101,6 +103,8 @@ public class protocol_jiai { BP86,//心率血压测试周期 AP89, BP89,//心率血压阀值设置 + AP93, + BP93,//服务器下发文本 UNKNOWN_CMD, } @@ -130,6 +134,8 @@ public class protocol_jiai { cmdMap.put(CMD_TYPE.BPHT, "BPHT"); cmdMap.put(CMD_TYPE.APTM, "APTM"); cmdMap.put(CMD_TYPE.BPTM, "BPTM"); + cmdMap.put(CMD_TYPE.AP94, "AP94"); + cmdMap.put(CMD_TYPE.BP94, "BP94"); cmdMap.put(CMD_TYPE.AP12, "AP12"); cmdMap.put(CMD_TYPE.BP12, "BP12"); cmdMap.put(CMD_TYPE.AP14, "AP14"); @@ -166,6 +172,8 @@ public class protocol_jiai { cmdMap.put(CMD_TYPE.BP86, "BP86"); cmdMap.put(CMD_TYPE.AP89, "AP89"); cmdMap.put(CMD_TYPE.BP89, "BP89"); + cmdMap.put(CMD_TYPE.AP93, "AP93"); + cmdMap.put(CMD_TYPE.BP93, "BP93"); } private Connection mConnection=null; @@ -309,9 +317,9 @@ public class protocol_jiai { return -1; } /*登录*/ - public static String AP00(Runtime ds) { + public static StringMessage AP00(Runtime ds) { //示例数据:IWAP00867155030001063# - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString(); + return genStringMessage(cmdMap.get(CMD_TYPE.AP00),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString()); } //处理 登录 BP00 @@ -345,12 +353,12 @@ public class protocol_jiai { } - public static String AP03(Runtime ds) { + public static StringMessage AP03(Runtime ds) { //示例数据:IWAP03,06000908000102,5555,30# IWAP03,000000null00000,0,0# - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d",abs(ds.getSignalStrength()))) + return genStringMessage(cmdMap.get(CMD_TYPE.AP03),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d",abs(ds.getSignalStrength()))) .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0") .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT) - .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString(); + .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString()); } //处理 心跳 BP03 public void handleBP03(String cmd){ @@ -359,7 +367,7 @@ public class protocol_jiai { } - public static String AP10(Runtime ds){ + public static StringMessage AP10(Runtime ds){ /** * IWAP10080524A2232.9806N11404.9355E000.1 061830 323.87 060 009 080 0 05 02, @@ -382,7 +390,7 @@ public class protocol_jiai { * zh-cn:设备语言 * 00:第一个0:是否需要回复地址信息,0:不回复,1回复. */ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate()) + return genStringMessage(cmdMap.get(CMD_TYPE.AP10),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate()) .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength()))) .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0") .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT) @@ -390,21 +398,21 @@ public class protocol_jiai { .append(ds.getAlarmType()).append(CMDSPLIT) .append(ds.getLanguage()).append(CMDSPLIT) .append("00").append(CMDSPLIT) //不回复地址 - .append(ds.getWifiInfo()).append(CMDEND).toString(); + .append(ds.getWifiInfo()).append(CMDEND).toString()); } /*LBS+GPS混合定位*/ - public static String AP01(Runtime ds) { + public static StringMessage AP01(Runtime ds) { //示例数据:IWAP01080524A2232.9806N11404.9355E000.1061830323.8706000908000102, // 460,0,9520,3671, // Home|74-DE-2B-44-88-8C|97& Home1|74-DE-2B-44-88-8C|97&Home2|74-DE-2B-44-88-8C|97& Home3|74-DE-2B-44-88-8C|97# // IWAP01191230A2232.9807N11404.9355E000.1161320000.0006000910000000,460,00,9520,3671,# - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate()) + return genStringMessage( cmdMap.get(CMD_TYPE.AP01),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate()) .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength()))) .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0") .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT) - .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString(); + .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString()); } //处理 定位 BP01 @@ -415,7 +423,7 @@ public class protocol_jiai { /*LBS+WiFi混合定位*/ - public static String AP02(Runtime ds) { + public static StringMessage AP02(Runtime ds) { //示例数据:IWAP02, // zh_cn, // 0, @@ -443,11 +451,11 @@ public class protocol_jiai { } ICLogger.i("Wifi ap sum "+apsum); - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT) + return genStringMessage(cmdMap.get(CMD_TYPE.AP02),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT) .append(ds.getLanguage()).append(CMDSPLIT) .append(0).append(CMDSPLIT) //为0时不回复地址 .append(ds.getLBSMultiStationData()).append(CMDSPLIT) //基站信息数据 - .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString(); //wifi信息数据 + .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString()); //wifi信息数据 } //处理 定位 BP01 @@ -457,12 +465,12 @@ public class protocol_jiai { - public static String APXL(String id){ + public static StringMessage APXL(String id){ //设备响应: IWAPXL,080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL)) + return genStringMessage("APXL",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL)) .append(CMDSPLIT).append(id) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } /** @@ -484,19 +492,19 @@ public class protocol_jiai { String index=list[2]; String imei=list[1]; ICLogger.i("Handle BPXL IMEI "+imei+",index "+index); - connection.send(genStringMessage("APXL",APXL(index))); + connection.send(APXL(index)); }else{ ICLogger.i("BPXL format error!"); } } - public static String APXY(String id){ + public static StringMessage APXY(String id){ //设备响应: IWAPXY,080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY)) + return genStringMessage("APXY",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY)) .append(CMDSPLIT).append(id) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } /** @@ -518,7 +526,7 @@ public class protocol_jiai { String index=list[2]; String imei=list[1]; ICLogger.i("Handle BPXY IMEI "+imei+",index "+index); - connection.send(genStringMessage("APXY",APXY(index))); + connection.send(APXY(index)); }else{ ICLogger.i("BPXY format error!"); } @@ -527,17 +535,17 @@ public class protocol_jiai { - public static String APJZ(String id,String BPH,String BPL,String Age,String Sex){ + public static StringMessage APJZ(String id,String BPH,String BPL,String Age,String Sex){ //设备响应: IWAPJZ,792997,120,85,42,1# //792997:指令流水号 // 高压120,低压85,年龄42,1 男性 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ)) + return genStringMessage("APJZ",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ)) .append(CMDSPLIT).append(id) .append(CMDSPLIT).append(BPH) .append(CMDSPLIT).append(BPL) .append(CMDSPLIT).append(Age) .append(CMDSPLIT).append(Sex) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } /** @@ -568,7 +576,7 @@ public class protocol_jiai { String strAge=list[5]; String strSex=list[6]; - connection.send(genStringMessage("APJZ",APJZ(index,strBPH,strBPL,strAge,strSex))); + connection.send(APJZ(index,strBPH,strBPL,strAge,strSex)); runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH),Integer.parseInt(strBPL),Integer.parseInt(strAge),Integer.parseInt(strSex)); ICLogger.i("Handle BPJZ IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", Age "+ strAge +", Sex "+ (strSex.equals("1")?"男":"女")); }else{ @@ -581,10 +589,10 @@ public class protocol_jiai { //重启 - public static String AP18(String index){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18)) + public static StringMessage AP18(String index){ + return genStringMessage("AP18",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP18(Connection connection,String cmd) { @@ -593,16 +601,16 @@ public class protocol_jiai { String[] cmdlist=cmd.split(CMDSPLIT); if (cmdlist.length==3) { - connection.send(genStringMessage("AP18",AP18(cmdlist[2]))); + connection.send(AP18(cmdlist[2])); } } //恢复出厂设置 - public static String AP17(String index){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17)) + public static StringMessage AP17(String index){ + return genStringMessage("AP17",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP17(Connection connection,String cmd) { @@ -610,7 +618,7 @@ public class protocol_jiai { String[] cmdlist=cmd.split(CMDSPLIT); if (cmdlist.length==3) { - connection.send(genStringMessage("AP17",AP17(cmdlist[2]))); + connection.send(AP17(cmdlist[2])); } } @@ -618,10 +626,10 @@ public class protocol_jiai { //关机 - public static String AP31(String index){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31)) + public static StringMessage AP31(String index){ + return genStringMessage("AP31",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP31(Connection connection,String cmd) { @@ -629,19 +637,19 @@ public class protocol_jiai { String[] cmdlist=cmd.split(CMDSPLIT); if (cmdlist.length==3) { - connection.send(genStringMessage("AP31",AP31(cmdlist[2]))); + connection.send(AP31(cmdlist[2])); } } //设置SOS号码 - public static String AP12(String index,String phNum1,String phNum2,String phNum3){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12)) + public static StringMessage AP12(String index,String phNum1,String phNum2,String phNum3){ + return genStringMessage("AP12",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(phNum1) .append(CMDSPLIT).append(phNum2) .append(CMDSPLIT).append(phNum3) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置SOS号码 @@ -654,7 +662,7 @@ public class protocol_jiai { String phNum2=cmdlist.length>3?(cmdlist.length==4?"":cmdlist[4]):""; String phNum3=(cmdlist.length>4)?(cmdlist.length==5? "":cmdlist[5]):""; ICLogger.i(new StringBuffer().append("get Emegency Numbs "+phNum1+","+phNum2+","+phNum3).toString()); - connection.send(genStringMessage("AP12",AP12(index,phNum1,phNum2,phNum3))); + connection.send(AP12(index,phNum1,phNum2,phNum3)); ArrayList contactArray=new ArrayList(); if (!phNum1.isEmpty()) contactArray.add(new Contact(Contact.CATEGORY_SOS,"sos1",phNum1)); @@ -669,8 +677,8 @@ public class protocol_jiai { } - public static String AP14(String index,String[] phnumbs){ - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14)) + public static StringMessage AP14(String index,String[] phnumbs){ + return genStringMessage("AP14",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(phnumbs[0]) .append(CMDSPLIT).append(phnumbs[1]) @@ -682,7 +690,7 @@ public class protocol_jiai { .append(CMDSPLIT).append(phnumbs[7]) .append(CMDSPLIT).append(phnumbs[8]) .append(CMDSPLIT).append(phnumbs[9]) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置通讯录,白名单(10个) public void handleBP14(Connection connection,String cmd , Runtime runtime){ @@ -740,7 +748,7 @@ public class protocol_jiai { String index=cmdlist[2]; ICLogger.i(sb.toString()); - connection.send(genStringMessage("AP14",AP14(index,phnums))); + connection.send(AP14(index,phnums)); ArrayList contactArray=new ArrayList(); for (int i=0; i< phnums.length;i++){ String[] tmp= phnums[i].split("\\|"); @@ -769,11 +777,11 @@ public class protocol_jiai { - public static String AP85(Runtime ds,String cmddata){ + public static StringMessage AP85(Runtime ds,String cmddata){ //示例数据:IWAP49,68## - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85)) + return genStringMessage("AP85",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85)) .append(CMDSPLIT).append(cmddata) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置闹钟 @@ -871,7 +879,7 @@ public class protocol_jiai { String replacement=new StringBuilder("IWBP85,").append(imei).append(",").toString(); String replycmd = cmd.replace(replacement,""); ICLogger.i("gen reply "+replacement+" "+replycmd); - connection.send(genStringMessage("AP85",AP85(runtime,replycmd))); + connection.send(AP85(runtime,replycmd)); } @@ -957,14 +965,14 @@ public class protocol_jiai { - public static String AP33(String cmdindex,int workMode){ + public static StringMessage AP33(String cmdindex,int workMode){ //IWAP33,080835,1# //080835:指令流水号 //1:设置信息,供服务器同步 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33)) + return genStringMessage("AP33",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33)) .append(CMDSPLIT).append(cmdindex) .append(CMDSPLIT).append(workMode) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置工作模式 @@ -998,10 +1006,10 @@ public class protocol_jiai { } - String msg=AP33(cmdlist[2],mod); + StringMessage msg=AP33(cmdlist[2],mod); //设定当前工作模式及循环频率 - connection.send(genStringMessage("AP33",msg)); - log("reply msg "+msg); + connection.send(msg); + log("reply msg "+msg.isFromCache()); log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod); Config.setLocationMode(runtime.getContextProxy().context,mod); Config.setLocationCycle(runtime.getContextProxy().context,Cycle); @@ -1014,14 +1022,14 @@ public class protocol_jiai { } - public static String AP34(String cmdindex,int workMode){ + public static StringMessage AP34(String cmdindex,int workMode){ //IWAP34,588854,1# //080835:指令流水号 //8:模式 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34)) + return genStringMessage("AP34",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34)) .append(CMDSPLIT).append(cmdindex) .append(CMDSPLIT).append(workMode) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置自定义工作模式 @@ -1043,16 +1051,16 @@ public class protocol_jiai { int Cycle=Integer.parseInt(cmdlist[4]); int gpson=Integer.parseInt(cmdlist[5]); - String msg=AP34(cmdlist[2],mod); + StringMessage msg=AP34(cmdlist[2],mod); //设定当前工作模式及循环频率 - connection.send(genStringMessage("AP34",msg)); + connection.send(msg); if(gpson==1){ mod=ICLocation.CUSTOM_MOD8_GPS; }else{ mod=ICLocation.CUSTOM_MOD8_WIFI; } - log("reply msg "+msg); + log("reply msg "+msg.isFromCache()); log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod + ", cycle = "+Cycle+", GPS On= "+gpson); Config.setLocationMode(runtime.getContextProxy().context,mod); Config.setLocationCycle(runtime.getContextProxy().context,Cycle); @@ -1069,11 +1077,11 @@ public class protocol_jiai { * @param ds * @return */ - public static String AP49(Runtime ds){ + public static StringMessage AP49(Runtime ds){ //示例数据:IWAP49,68## - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49)) + return genStringMessage(cmdMap.get(CMD_TYPE.AP49),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49)) .append(CMDSPLIT).append(ds.getHRS().getPPG()) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } @@ -1085,7 +1093,7 @@ public class protocol_jiai { * @param ds * @return */ - public static String APHT(Runtime ds){ + public static StringMessage APHT(Runtime ds){ //IWAPHT,60,130,85# //说明: //IW:标识符 @@ -1095,13 +1103,13 @@ public class protocol_jiai { //85 : 血压低压 [舒张压] //平台响应: IWBPHT# //表示平台已接收,可不作响应 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) + return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) .append(CMDSPLIT).append(ds.getHRS().getPPG()) .append(CMDSPLIT).append(ds.getHRS().getBPH()) .append(CMDSPLIT).append(ds.getHRS().getBPL()) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } - public static String APHT(int ppg,int bph,int bpl){ + public static StringMessage APHT(int ppg,int bph,int bpl){ //IWAPHT,60,130,85# //说明: //IW:标识符 @@ -1111,21 +1119,21 @@ public class protocol_jiai { //85 : 血压低压 [舒张压] //平台响应: IWBPHT# //表示平台已接收,可不作响应 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) + return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT)) .append(CMDSPLIT).append(ppg) .append(CMDSPLIT).append(bph) .append(CMDSPLIT).append(bpl) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //立即定位反馈 - public static String AP16(String cmdindex){ + public static StringMessage AP16(String cmdindex){ //IWAP16,080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16)) + return genStringMessage("AP16",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16)) .append(CMDSPLIT).append(cmdindex) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } // 立即定位指令(长链接有效) public void handleBP16(Connection connection,Runtime runtime,String cmd){ @@ -1140,7 +1148,7 @@ public class protocol_jiai { if(cmdlist.length==3){ log("imei "+cmdlist[1]+", cmdindex "+cmdlist[2]); - connection.send(genStringMessage("AP16",AP16(cmdlist[2]))); + connection.send(AP16(cmdlist[2])); }else{ log("error BP16 format"); } @@ -1148,7 +1156,7 @@ public class protocol_jiai { /*通过基站获取时间和坐标*/ - public static String APTM(Runtime ds){ + public static StringMessage APTM(Runtime ds){ //示例数据:IWAPTM,460,0,9750,3613# //说明: //IW:标识符 @@ -1158,12 +1166,12 @@ public class protocol_jiai { //9750: LAC //3613: CID - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM)) + return genStringMessage(cmdMap.get(CMD_TYPE.APTM),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM)) .append(CMDSPLIT).append(ds.getLocationInstance().getMCC()) .append(CMDSPLIT).append(ds.getLocationInstance().getMNC()) .append(CMDSPLIT).append(ds.getLocationInstance().getLAC()) .append(CMDSPLIT).append(ds.getLocationInstance().getGSMStationCID()) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } @@ -1186,12 +1194,12 @@ public class protocol_jiai { } - public static String AP15(String index){ + public static StringMessage AP15(String index){ //IWAP15, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15)) + return genStringMessage("AP15",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //设置定位周期 @@ -1206,7 +1214,7 @@ public class protocol_jiai { if(list.length==4){ String index=list[2]; String time=list[3]; - connection.send(genStringMessage("AP15",AP15(index))); + connection.send(AP15(index)); ICLogger.i("BP15 , 定位周期="+time+"秒"); Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS); @@ -1227,15 +1235,15 @@ public class protocol_jiai { /*语音下行反馈*/ - public static String AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) { + public static StringMessage AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) { //示例数据:IWAP28,D3590D54,xxxx,6,1,1# - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28)) + return genStringMessage("AP28",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28)) .append(CMDSPLIT).append(name) .append(CMDSPLIT).append(msg) .append(CMDSPLIT).append(packagecount) .append(CMDSPLIT).append(currentpackageindex) .append(CMDSPLIT).append(received_success) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } //处理 BP28 语音消息 @@ -1289,7 +1297,7 @@ public class protocol_jiai { .append(",packetDatalen = ").append(packetData.length); log( stringBuffer.toString()); - connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,1))); + connection.send(AP28(Name,appendIndex,packetCount,currentId,1)); voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData); log("================"+voicePacket.getInstance().toString()); if (voicePacket.getInstance().isFinished()) @@ -1335,15 +1343,15 @@ public class protocol_jiai { } //白名单开关(下行协议号:BP84,响应:AP84) - public static String AP84(String index,int success){ + public static StringMessage AP84(String index,int success){ //设备响应: IWAP80,080835,1# //080835:指令流水号 //1:表示设备执行成功,0 表示设备执行失败 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84)) + return genStringMessage("AP84",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84)) .append(CMDSPLIT).append(index) .append(CMDSPLIT).append(success) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP84(String cmd,Connection connection){ @@ -1360,7 +1368,7 @@ public class protocol_jiai { if (list.length==4){ String index=list[2]; String whitelist_switch=list[3]; - connection.send(genStringMessage("AP84",AP84(index,1))); + connection.send(AP84(index,1)); if (whitelist_switch.equals("1")){ Util.setSystemProperties("persist.sys.whitelist.enable","true"); @@ -1377,13 +1385,13 @@ public class protocol_jiai { } //17.设置心率/血压测量周期(下行协议号:BP86,响应:AP86) - public static String AP86(String index){ + public static StringMessage AP86(String index){ //设备响应: IWAP86, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86)) + return genStringMessage("AP86",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP86(String cmd,Connection connection,Runtime runtime){ @@ -1404,7 +1412,7 @@ public class protocol_jiai { String index=list[2]; String type=list[3]; String cycle=list[4]; - connection.send(genStringMessage("AP86",AP86(index))); + connection.send(AP86(index)); ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟"); //发送重置PPGCycle的广播,会在CoreServer里面执行 @@ -1418,13 +1426,13 @@ public class protocol_jiai { } //18.18.设置心率/血压阀值(下行协议号:BP89,响应:AP89) - public static String AP89(String index){ + public static StringMessage AP89(String index){ //设备响应: IWAP89, 080835# //080835:指令流水号 - return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89)) + return genStringMessage("AP89",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89)) .append(CMDSPLIT).append(index) - .append(CMDEND).toString(); + .append(CMDEND).toString()); } public void handleBP89(String cmd,Connection connection){ @@ -1451,13 +1459,104 @@ public class protocol_jiai { String BPH_L=list[6]; String BPL_H=list[7]; String BPL_L=list[8]; - connection.send(genStringMessage("AP89",AP89(index))); + connection.send(AP89(index)); ICLogger.i("收到服务器指令:心率/血压阀值 "+PPGH+","+PPGL+","+BPH_H+","+BPH_L+","+BPL_H+","+BPL_L); }else{ ICLogger.i("BP89 format error!"); } } + + public static StringMessage AP93(String index){ + /*** + * 20.发送文字到手环(下行协议号:BP93,响应:AP93) + * 示例: + * IWBP93, 353456789012345, 080835,123456, 8fd9662f4f8b5b50,2,3# + * 说明: + * IW:标识符 + * BP93 : 命令字符 + * 353456789012345:IMEI号,设备唯一ID + * 080835 :指令流水号 + * 123456:文字来源系统流水号 + * 8fd9662f4f8b5b50: 这是例子(文字内容) + * 2:语音播报次数,取值范围0-3,0为不播报 + * 3:震动次数,取值范围为0-4, 0为不震动 + * 设备响应: IWAP93,080835# + * 080835: 设备响应的时候带上响应流水号 + * 说明: 本消息适用所有终端 + */ + return genStringMessage("AP93",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP93)) + .append(CMDSPLIT).append(index) + .append(CMDEND).toString()); + + } + + public void handleBP93(Connection connection,Runtime runtime , String cmd){ + /*** + * 20.发送文字到手环(下行协议号:BP93,响应:AP93) + * 示例: + * IWBP93, 353456789012345, 080835,123456, 8fd9662f4f8b5b50,2,3# + * 说明: + * IW:标识符 + * BP93 : 命令字符 + * 353456789012345:IMEI号,设备唯一ID + * 080835 :指令流水号 + * 123456:文字来源系统流水号 + * 8fd9662f4f8b5b50: 这是例子(文字内容) + * 2:语音播报次数,取值范围0-3,0为不播报 + * 3:震动次数,取值范围为0-4, 0为不震动 + * 设备响应: IWAP93,080835# + * 080835: 设备响应的时候带上响应流水号 + * 说明: 本消息适用所有终端 + */ + String[] cmdlist=cmd.split(","); + if (cmdlist.length == 7){ + String cmdindex=cmdlist[2]; + String msg_index_no=cmdlist[3]; + String txtmsg=cmdlist[4]; + String play_time=cmdlist[5]; + String vib_time=cmdlist[6]; + ICLogger.i("收到服务器文本 "+txtmsg+" 序号 "+msg_index_no+" , 播放 "+play_time+" 次,震动 "+vib_time+" 次!"); + txtmsg=Util.UrlGB2312ToUTF8(txtmsg); + StringMessage msg=AP93(cmdindex); + //设定当前工作模式及循环频率 + connection.send(msg); + ICLogger.i("received Txt Msg "+txtmsg); + runtime.getContextProxy().sendMsgBroadcast(txtmsg,0); + runtime.getContextProxy().saveMstToSMSDB(txtmsg); + }else{ + ICLogger.i("BP40 format error!"); + } + + } + + public static StringMessage AP94(Runtime runtime , String index_of_msg ){ + /*** + * 15确认已读文字(上行协议号:AP94,响应:BP94) + * 示例: + * IWAP94,123456,1# + * 说明: + * IWAP94:标识符 + * APHCI: 命令字符 + * 123456: 文字来源系统流水号 + * 1:确认阅读、0:取消阅读 + * 平台响应: IWBP94# + * 表示平台已接收,可不作响应 + * 说明: 本消息适用所有终端 + */ + + //在UI逻辑中,只要有处理就都是已经阅读。所以不存在取消阅读的说法。 + return genStringMessage(cmdMap.get(CMD_TYPE.AP94),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP94)) + .append(CMDSPLIT).append(index_of_msg) + .append(CMDSPLIT).append("1") + .append(CMDEND).toString()); + + } + + public void handleBP94(){ + + } + public boolean handleCmd(CMD_TYPE type, String cmd) { //普通非二进制命令用此函数处理 @@ -1594,6 +1693,14 @@ public class protocol_jiai { //心率/血压阀值 handleBP89(cmd,mConnection); break; + + case BP94: + handleBP94(); + break; + case BP93: + //服务器下发文版 + handleBP93(mConnection,mRuntime,cmd); + break; } return ret; diff --git a/app/src/main/java/com/ic/protocols/protocol_mqtt.java b/app/src/main/java/com/ic/protocols/protocol_mqtt.java index 380afad4..a42384b1 100644 --- a/app/src/main/java/com/ic/protocols/protocol_mqtt.java +++ b/app/src/main/java/com/ic/protocols/protocol_mqtt.java @@ -39,6 +39,7 @@ public class protocol_mqtt { public static final String projName="WBG100"; public static final String protocolVersion="v1"; public static final String mqttKey="QWER15WTF156OQRT1230"; + public static String MQTT_CLIENT_TOPIC_HEADER=""; public enum CMD_TYPE { // cmd_type 含义 // 终端主动上传 @@ -122,11 +123,16 @@ public class protocol_mqtt { public static String isCmdStr(StringMessage msg){ - ICLogger.i("mqtt isCmdStr cmd "+msg.cmd()); + + String imei=""; + if(CoreService.getInstance()!=null) + imei=CoreService.getInstance().getRuntime().IMEI(); + String cmdtype = msg.cmd().replace(projName+"/"+protocolVersion+"/","").replace("/"+imei,""); + ICLogger.i("mqtt isCmdStr topic "+msg.cmd()+" ,cmd "+cmdtype); for (CMD_TYPE key : cmdMap.keySet()) { ICLogger.i("mqtt isCmdStr cmd "+msg.cmd()+" key "+cmdMap.get(key)); - if (cmdMap.get(key).equals(msg.cmd())){ - return msg.cmd(); + if (cmdMap.get(key).equals(cmdtype)){ + return cmdtype; } } return ""; @@ -175,6 +181,7 @@ public class protocol_mqtt { .append("/").append(protocolVersion) .append("/").append(cmdtype) .append("/").append(imei); + return genStringMessage(sbtopic.toString(),sb.toString()); }